HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/SBogers10/spire-checkout.komma-mediadesign.nl/wwwroot/css/style.css.map
{"version":3,"sources":["webpack:///./resources/assets/lib/mobius1-selectr/dist/selectr.min.css","webpack:///./resources/assets/sass/site/resources/assets/sass/global/_base.sass","webpack:///./resources/assets/sass/site/style.sass","webpack:///./resources/assets/sass/site/resources/assets/sass/global/grid/_grid.sass","webpack:///./resources/assets/sass/site/resources/assets/sass/global/mixins/_mediaQueries.sass","webpack:///./resources/assets/sass/site/resources/assets/sass/global/grid/_visibleGrid.sass","webpack:///./resources/assets/sass/site/resources/assets/sass/global/partials/_breakpoints.sass","webpack:///./resources/assets/sass/site/resources/assets/sass/site/_base.sass","webpack:///./resources/assets/sass/site/resources/assets/sass/global/mixins/_sprite.sass","webpack:///./resources/assets/sass/site/resources/assets/sass/global/functions/_fonts.sass","webpack:///./resources/assets/sass/site/resources/assets/sass/site/_helpers.sass","webpack:///./resources/assets/sass/site/resources/assets/sass/site/partials/_cookieDialog.sass","webpack:///./resources/assets/sass/site/resources/assets/sass/global/bourbon/addons/_position.scss","webpack:///./resources/assets/sass/site/resources/assets/sass/site/partials/_footer.sass","webpack:///./resources/assets/sass/site/resources/assets/sass/global/mixins/_flex.sass","webpack:///./resources/assets/sass/site/resources/assets/sass/global/bourbon/addons/_prefixer.scss","webpack:///./resources/assets/sass/site/resources/assets/sass/site/partials/_header.sass","webpack:///./resources/assets/sass/site/resources/assets/sass/site/partials/_kmsContent.sass","webpack:///./resources/assets/sass/site/resources/assets/sass/site/partials/_form.sass","webpack:///./resources/assets/sass/site/resources/assets/sass/site/partials/_imageSlider.sass","webpack:///./resources/assets/sass/site/resources/assets/sass/site/partials/_breadcrumb.sass","webpack:///./resources/assets/sass/site/resources/assets/sass/site/partials/dynamic/_dynamic.sass","webpack:///./resources/assets/sass/site/resources/assets/sass/site/partials/dynamic/_twoTextColumn.sass","webpack:///./resources/assets/sass/site/resources/assets/sass/site/partials/dynamic/_fullImageColumn.sass","webpack:///./resources/assets/sass/site/resources/assets/sass/site/partials/dynamic/_contentBlock.sass","webpack:///./resources/assets/sass/site/resources/assets/sass/site/partials/dynamic/_multipleImages.sass","webpack:///./resources/assets/sass/site/resources/assets/sass/site/partials/dynamic/_fullTextBlock.sass","webpack:///./resources/assets/sass/site/resources/assets/sass/site/partials/dynamic/_videoBlock.sass","webpack:///./resources/assets/sass/site/resources/assets/sass/site/partials/mobile/_navigation.sass","webpack:///./resources/assets/sass/site/resources/assets/sass/site/partials/mobile/_contact.sass","webpack:///./resources/assets/sass/site/resources/assets/sass/site/partials/mobile/_stickyNavigation.sass","webpack:///./resources/assets/sass/site/resources/assets/sass/site/pages/_error.sass","webpack:///./resources/assets/sass/site/resources/assets/sass/site/pages/_sitemap.sass","webpack:///./resources/assets/sass/site/resources/assets/sass/site/pages/checkout/_shoppingCart.sass"],"names":[],"mappings":"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CE,UAEF,aACE,gBDyoBH,CEpvBD,oCD+GE,UACE,UAEF,aACE,gBD2oBH,CE9vBD,oCDuHE,UACE,UAEF,aACE,gBD6oBH,CEnwBD,qCD0FE,UACE,mBAEF,aACE,yBD+qBH,CElxBD,qCDuGE,UACE,mBAEF,aACE,yBDirBH,CE5xBD,oCD+GE,UACE,mBAEF,aACE,yBDmrBH,CEtyBD,oCDuHE,UACE,mBAEF,aACE,yBDqrBH,CE3yBD,qCD0FE,UACE,mBAEF,aACE,yBDutBH,CE1zBD,qCDuGE,UACE,mBAEF,aACE,yBDytBH,CEp0BD,oCD+GE,UACE,mBAEF,aACE,yBD2tBH,CE90BD,oCDuHE,UACE,mBAEF,aACE,yBD6tBH,CEn1BD,qCD0FE,UACE,UAEF,aACE,gBD+vBH,CEl2BD,qCDuGE,UACE,UAEF,aACE,gBDiwBH,CE52BD,oCD+GE,UACE,UAEF,aACE,gBDmwBH,CEt3BD,oCDuHE,UACE,UAEF,aACE,gBDqwBH,CE33BD,qCD0FE,WACE,mBAEF,cACE,yBDuyBH,CE14BD,qCDuGE,WACE,mBAEF,cACE,yBDyyBH,CEp5BD,oCD+GE,WACE,mBAEF,cACE,yBD2yBH,CE95BD,oCDuHE,WACE,mBAEF,cACE,yBD6yBH,CEn6BD,qCD0FE,WACE,mBAEF,cACE,yBD+0BH,CEl7BD,qCDuGE,WACE,mBAEF,cACE,yBDi1BH,CE57BD,oCD+GE,WACE,mBAEF,cACE,yBDm1BH,CEt8BD,oCDuHE,WACE,mBAEF,cACE,yBDq1BH,CE38BD,qCD0FE,WACE,WAEF,cACE,iBDu3BH,CE19BD,qCDuGE,WACE,WAEF,cACE,iBDy3BH,CEp+BD,oCD+GE,WACE,WAEF,cACE,iBD23BH,CE9+BD,oCDuHE,WACE,WAEF,cACE,iBD63BH,CEn/BD,qCD0FE,WACE,oBAEF,cACE,0BD+5BH,CElgCD,qCDuGE,WACE,oBAEF,cACE,0BDi6BH,CE5gCD,oCD+GE,WACE,oBAEF,cACE,0BDm6BH,CEthCD,oCDuHE,WACE,oBAEF,cACE,0BDq6BH,CE3hCD,qCD0FE,WACE,oBAEF,cACE,0BDu8BH,CE1iCD,qCDu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CAKA,2DDZN,oDQPF,gCACE,kBACA,0CPYM,4BAKA,mDDXN,4COJF,yCCCI,mBACA,UlBJF,oCkBFF,gCASI,cACA,yCACE,qBACA,SDRN,wDCWQ,mBpB4zEL,CmBv0EH,qCEDI,WACA,aFAJ,2CEEM,cnBJJ,qCmBOI,2CACE,aFNR,4CEQQ,crBk1EL,CE51ED,oCiBEF,4CEYQ,aFZR,2CEcQ,crBs1EL,CmBp2EH,6BGHE,sCVEA,iCCMM,sCAKA,mCAKA,iEALA,4BAKA,oDDZN,oDACA,oEUJA,oCACE,UHDJ,wCGIM,WHJN,8CGOQ,apBTN,oCiBEF,+CGWU,aAEF,8CACE,ctB23EP,CmBz4EH,6CGiBM,mBAEJ,sCTdM,gBAUA,YSMJ,mBAGA,+DTnBI,gBAUA,YMfR,iENKQ,gBAUA,YXjBN,oCoBFF,6BAmCI,cAEA,oCACE,WACA,gCTpBE,YMfR,sCGuCM,WtBu4EH,CmB96EH,+BPHE,oBAEA,iCCMM,sCAKA,mCAKA,iEALA,4BAKA,oDDZN,oDACA,oECCM,uBAUA,0CMfR,sCICI,mBAEA,0CACE,WACA,aJLN,iDIQQ,arBVN,qCiBEF,gDIYU,aJZV,iDIcU,cvB08EP,CE19ED,oCiBEF,gDIkBU,aJlBV,iDIoBU,cvB88EP,CuBz8EK,sEACE,crB5BR,qCiBEF,sEI8BY,aACF,qEACE,cvBg9ET,CEl/ED,oCiBEF,+BImCI,cAEA,sCACE,WACA,oDACE,mBAGA,iDACE,wBJ5CV,gDI8CU,uBvBw9EP,CExgFD,0DqBmDQ,iDACE,aJlDZ,gDIoDY,cvB49ET,CwBnhFD,wCACE,gBACA,YACA,kBLAJ,2BMHE,WACA,gBACA,6BAEA,0CACE,kBACA,qBACA,iBACA,SACA,0GACE,kBACA,MACA,OACA,WACA,YNXN,yDMaM,8BbdJ,iCCMM,+BAKA,4BAKA,sDALA,wBAKA,+CDZN,4CACA,kEaWI,UACA,eACA,8CNjBN,iEMmBQ,UACA,eACA,8CACA,8CACA,qEACE,WAEF,uEZrBA,6BAoBA,qBMzBR,8DM8BQ,UACA,oBACA,8CACA,kDACA,sEACE,8CACA,gDvBtCR,oCwBWF,eAEI,gBACA,kBACA,eACA,W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ACA,iBACA,oQACA,gBACA,gBACA,wExBjOJ,gBwBmOI,WAlQN,8CAqQM,WArQN,yDAwQM,6BAEE,sBACA,uCACA,wBACA,2BAEJ,6CACE,cACA,iBACA,+DxBnPJ,gBwBqPI,gBApRN,gEAuRM,gBACA,WACA,gBACA,+DxB3PJ,gBwB/BF,mDA8RM,UACA,gBAEA,qDACE,gBACA,sCnBnSN,iCCMM,sCAKA,mCAKA,6DALA,wBAKA,gDDZN,oDACA,kEmBgSM,iBACA,gBACA,WAEA,4DACE,aA1SV,4DA6SU,gBACA,wExB/QR,gBwBqRY,mGACE,oCACA,0BAGV,wEACE,kBACA,gBACA,0BACA,eA7TR,0EA+TU,SA/TV,4EAkUQ,kBACA,WACA,YACA,aACA,YACA,WACA,oBACA,yBACA,gBACA,gBACA,WACA,UACA,oBACA,sFACA,wEACA,kRAEA,kFACE,WACA,kBACA,UACA,qBACA,cACA,QACA,SACA,mBACA,uBACA,6CAGF,iFACE,UACA,mBACA,UACA,wDACA,8QArWV,0FAwWU,aAxWV,8EA2WU,cACA,oBACA,iBACA,yBACA,0DxBhVR,gBwBkVQ,kBAjXV,mGAoXU,yBACA,0DxBtVR,gBwB/BF,oDA0XM,kBACA,UACA,qBACA,kBACA,6BACA,kBACA,gBACA,gBACA,wExBnWJ,gBwBsWI,qHACE,WACA,kBACA,WACA,OACA,MACA,cACA,WACA,YACA,kBACA,sDA/YR,2DAkZQ,UACA,gNAnZR,0DAsZQ,UACA,gNAvZR,yDA0ZQ,kBACA,QACA,oFzBrZN,2BACA,WACA,YyBqZM,iBACA,sFACA,kJAhaR,gEAoaU,UAEF,+DACE,oGAEN,mDACE,gBACA,gBACA,iBACA,gBACA,cACA,wExBhZJ,gBwBmZI,qDACE,cACA,kDApbR,2DAubU,WAEN,iDACE,gBAEA,mDACE,gBACA,gBACA,WACA,qBACA,kDAEA,yDACE","file":"css/style.css","sourcesContent":["/*!\r\n * Selectr 2.4.0\r\n * http://mobius.ovh/docs/selectr\r\n *\r\n * Released under the MIT license\r\n */\r\n.selectr-container li,.selectr-option,.selectr-tag{list-style:none}.selectr-container{position:relative}.selectr-hidden{position:absolute;overflow:hidden;clip:rect(0,0,0,0);width:1px;height:1px;margin:-1px;padding:0;border:0}.selectr-visible{position:absolute;left:0;top:0;width:100%;height:100%;opacity:0;z-index:11}.selectr-desktop.multiple .selectr-visible{display:none}.selectr-desktop.multiple.native-open .selectr-visible{top:100%;min-height:200px!important;height:auto;opacity:1;display:block}.selectr-container.multiple.selectr-mobile .selectr-selected{z-index:0}.selectr-selected{position:relative;z-index:1;box-sizing:border-box;width:100%;padding:7px 28px 7px 14px;cursor:pointer;border:1px solid #999;border-radius:3px;background-color:#fff}.selectr-selected::before{position:absolute;top:50%;right:10px;width:0;height:0;content:'';-o-transform:rotate(0) translate3d(0,-50%,0);-ms-transform:rotate(0) translate3d(0,-50%,0);-moz-transform:rotate(0) translate3d(0,-50%,0);-webkit-transform:rotate(0) translate3d(0,-50%,0);transform:rotate(0) translate3d(0,-50%,0);border-width:4px 4px 0;border-style:solid;border-color:#6c7a86 transparent transparent}.selectr-container.native-open .selectr-selected::before,.selectr-container.open .selectr-selected::before{border-width:0 4px 4px;border-style:solid;border-color:transparent transparent #6c7a86}.selectr-label{display:none;overflow:hidden;width:100%;white-space:nowrap;text-overflow:ellipsis}.selectr-placeholder{color:#6c7a86}.selectr-tags{margin:0;padding:0;white-space:normal}.has-selected .selectr-tags{margin:0 0 -2px}.selectr-tag{position:relative;float:left;padding:2px 25px 2px 8px;margin:0 2px 2px 0;cursor:default;color:#fff;border:none;border-radius:10px;background:#acb7bf}.selectr-container.multiple.has-selected .selectr-selected{padding:5px 28px 5px 5px}.selectr-options-container{position:absolute;z-index:10000;top:calc(100% - 1px);left:0;display:none;box-sizing:border-box;width:100%;border-width:0 1px 1px;border-style:solid;border-color:transparent #999 #999;border-radius:0 0 3px 3px;background-color:#fff}.selectr-container.open .selectr-options-container{display:block}.selectr-input-container{position:relative;display:none}.selectr-clear,.selectr-input-clear,.selectr-tag-remove{position:absolute;top:50%;right:22px;width:20px;height:20px;padding:0;cursor:pointer;-o-transform:translate3d(0,-50%,0);-ms-transform:translate3d(0,-50%,0);-moz-transform:translate3d(0,-50%,0);-webkit-transform:translate3d(0,-50%,0);transform:translate3d(0,-50%,0);border:none;background-color:transparent;z-index:11}.selectr-clear,.selectr-input-clear{display:none}.selectr-container.has-selected .selectr-clear,.selectr-input-container.active,.selectr-input-container.active .selectr-clear,.selectr-input-container.active .selectr-input-clear{display:block}.selectr-selected .selectr-tag-remove{right:2px}.selectr-clear::after,.selectr-clear::before,.selectr-input-clear::after,.selectr-input-clear::before,.selectr-tag-remove::after,.selectr-tag-remove::before{position:absolute;top:5px;left:9px;width:2px;height:10px;content:' ';background-color:#6c7a86}.selectr-tag-remove::after,.selectr-tag-remove::before{top:4px;width:3px;height:12px;background-color:#fff}.selectr-clear:before,.selectr-input-clear::before,.selectr-tag-remove::before{-o-transform:rotate(45deg);-ms-transform:rotate(45deg);-moz-transform:rotate(45deg);-webkit-transform:rotate(45deg);transform:rotate(45deg)}.selectr-clear:after,.selectr-input-clear::after,.selectr-tag-remove::after{-o-transform:rotate(-45deg);-ms-transform:rotate(-45deg);-moz-transform:rotate(-45deg);-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.selectr-input{top:5px;left:5px;box-sizing:border-box;width:calc(100% - 30px);margin:10px 15px;padding:7px 30px 7px 9px;border:1px solid #999;border-radius:3px}.selectr-notice{display:none;box-sizing:border-box;width:100%;padding:8px 16px;border-top:1px solid #999;border-radius:0 0 3px 3px;background-color:#fff}.input-tag,.taggable .selectr-label{width:auto}.selectr-container.notice .selectr-notice{display:block}.selectr-container.notice .selectr-selected{border-radius:3px 3px 0 0}.selectr-options{position:relative;top:calc(100% + 2px);display:none;overflow-x:auto;overflow-y:scroll;max-height:200px;margin:0;padding:0}.selectr-container.notice .selectr-options-container,.selectr-container.open .selectr-input-container,.selectr-container.open .selectr-options{display:block}.selectr-option{position:relative;display:block;padding:5px 20px;cursor:pointer;font-weight:400}.has-selected .selectr-placeholder,.selectr-empty,.selectr-option.excluded{display:none}.selectr-options.optgroups>.selectr-option{padding-left:25px}.selectr-optgroup{font-weight:700;padding:0}.selectr-optgroup--label{font-weight:700;margin-top:10px;padding:5px 15px}.selectr-match{text-decoration:underline}.selectr-option.selected{background-color:#ddd}.selectr-option.active{color:#fff;background-color:#5897fb}.selectr-option.disabled{opacity:.4}.selectr-container.open .selectr-selected{border-color:#999 #999 transparent;border-radius:3px 3px 0 0}.selectr-container.open .selectr-selected::after{-o-transform:rotate(180deg) translate3d(0,50%,0);-ms-transform:rotate(180deg) translate3d(0,50%,0);-moz-transform:rotate(180deg) translate3d(0,50%,0);-webkit-transform:rotate(180deg) translate3d(0,50%,0);transform:rotate(180deg) translate3d(0,50%,0)}.selectr-disabled{opacity:.6}.has-selected .selectr-label{display:block}.taggable .selectr-selected{padding:4px 28px 4px 4px}.taggable .selectr-selected::after{display:table;content:\" \";clear:both}.taggable .selectr-tags{float:left;display:block}.taggable .selectr-placeholder{display:none}.input-tag{float:left;min-width:90px}.selectr-tag-input{border:none;padding:3px 10px;width:100%;font-family:inherit;font-weight:inherit;font-size:inherit}.selectr-input-container.loading::after{position:absolute;top:50%;right:20px;width:20px;height:20px;content:'';-o-transform:translate3d(0,-50%,0);-ms-transform:translate3d(0,-50%,0);-moz-transform:translate3d(0,-50%,0);-webkit-transform:translate3d(0,-50%,0);transform:translate3d(0,-50%,0);-o-transform-origin:50% 0 0;-ms-transform-origin:50% 0 0;-moz-transform-origin:50% 0 0;-webkit-transform-origin:50% 0 0;transform-origin:50% 0 0;-moz-animation:.5s linear 0s normal forwards infinite running spin;-webkit-animation:.5s linear 0s normal forwards infinite running spin;animation:.5s linear 0s normal forwards infinite running spin;border-width:3px;border-style:solid;border-color:#aaa #ddd #ddd;border-radius:50%}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0) translate3d(0,-50%,0);transform:rotate(0) translate3d(0,-50%,0)}100%{-webkit-transform:rotate(360deg) translate3d(0,-50%,0);transform:rotate(360deg) translate3d(0,-50%,0)}}@keyframes spin{0%{-webkit-transform:rotate(0) translate3d(0,-50%,0);transform:rotate(0) translate3d(0,-50%,0)}100%{-webkit-transform:rotate(360deg) translate3d(0,-50%,0);transform:rotate(360deg) translate3d(0,-50%,0)}}.selectr-container.open.inverted .selectr-selected{border-color:transparent #999 #999;border-radius:0 0 3px 3px}.selectr-container.inverted .selectr-options-container{border-width:1px 1px 0;border-color:#999 #999 transparent;border-radius:3px 3px 0 0;background-color:#fff;top:auto;bottom:calc(100% - 1px)}.selectr-container ::-webkit-input-placeholder{color:#6c7a86;opacity:1}.selectr-container ::-moz-placeholder{color:#6c7a86;opacity:1}.selectr-container :-ms-input-placeholder{color:#6c7a86;opacity:1}.selectr-container ::placeholder{color:#6c7a86;opacity:1}\n\n\n// WEBPACK FOOTER //\n// ./resources/assets/lib/mobius1-selectr/dist/selectr.min.css","/* ==========================================================================\n   Basic style settings\n   @mixin ========================================================================= */\n\n* {\n  box-sizing: border-box; }\n\n/*\n * Set up the body\n *\n * 1. This is the base for al rem units\n */\nhtml {\n  font-size: 20px /* 1 */;\n  line-height: 1.6; }\n\n/**\n * 1.Default display for images is block to lose the extra margin below the image\n * 2. Remove border / especially on older browsers\n */\nimg {\n  display: block /* 1 */;\n  border: none; }\n\n/**\n  * Add translation to prevent recoloring from autocomplete\n  */\ninput, textarea {\n  @include placeholder {\n    transition: all 9999s linear 9999s; } }\n\n/*\n * Remove default margin around figure\n */\nfigure {\n  margin: 0; }\n\n\n\n// WEBPACK FOOTER //\n// ./resources/assets/sass/site/resources/assets/sass/global/_base.sass","@charset \"UTF-8\";\n/* ==========================================================================\n   Config settings\n   @mixin ========================================================================= */\n/**\n * Define grid columns\n *\n * The inner grid is the section where the content is\n * The outer grid is the inner grid with extra margin columns on each side\n */\n/**\n * Define breakpoint for given formats\n */\n/* Bourbon 4.0.2\n * http://bourbon.io\n * Copyright 2011-2014 thoughtbot, inc.\n * MIT License */\n/* ==========================================================================\n   Font related functions\n   @mixin ========================================================================= */\n/**\n * Add some functions for readability\n * Return font-weight based on name\n */\n/* ==========================================================================\n  Functions used in grid calculation\n  @mixin ========================================================================= */\n/**\n  * This is where the magic happens\n  * Return percentage based on amount of columns\n  * Use parent column size to adjust the origin\n  */\n/**\n  * Default function for columns\n  * Return as percentage\n  */\n/**\n  * Return as viewport width\n  */\n/* ==========================================================================\n   Basic style settings\n   @mixin ========================================================================= */\n@import url(../../lib/mobius1-selectr/dist/selectr.min.css);\n* {\n  box-sizing: border-box;\n}\n\n/*\n * Set up the body\n *\n * 1. This is the base for al rem units\n */\nhtml {\n  font-size: 20px;\n  line-height: 1.6;\n}\n\n/**\n * 1.Default display for images is block to lose the extra margin below the image\n * 2. Remove border / especially on older browsers\n */\nimg {\n  display: block;\n  border: none;\n}\n\n/**\n  * Add translation to prevent recoloring from autocomplete\n  */\ninput::-webkit-input-placeholder, textarea::-webkit-input-placeholder {\n  transition: all 9999s linear 9999s;\n}\n\ninput::-moz-placeholder, textarea::-moz-placeholder {\n  transition: all 9999s linear 9999s;\n}\n\ninput:-ms-input-placeholder, textarea:-ms-input-placeholder {\n  transition: all 9999s linear 9999s;\n}\n\ninput:-moz-placeholder, textarea:-moz-placeholder {\n  transition: all 9999s linear 9999s;\n}\n\n/*\n * Remove default margin around figure\n */\nfigure {\n  margin: 0;\n}\n\n/*==========================================================================\n  Grid\n  @mixin ========================================================================= */\n/**\n  * Grid row\n  *\n  * 1. The outer two columns are just margin\n  * 2. Prevent inline-block cells wrapping\n  * 3. Prevent vertical spacing between inline-blocks\n  */\n.grid-row {\n  width: 85.71428571%;\n  max-width: 982px;\n  margin: 0 auto;\n  font-size: 0;\n  line-height: 0;\n  /**\n   * The full row doesn't have the two outer margin rows\n   * They stretch till both ends of the window\n   */\n}\n\n.grid-row.full-row {\n  width: 100%;\n  max-width: none;\n}\n\n/**\n * Grid column\n *\n * 1. Reset white-space inherited from `.grid`\n * 2. Reset font-size inherited from `.grid`\n * 3. Reset line-height inherited from `.grid`\n */\n.grid-col {\n  position: relative;\n  display: inline-block;\n  overflow: hidden;\n  white-space: normal;\n  font-size: 1rem;\n  line-height: 1.6;\n  /**\n   * Center column\n   *\n   * 1. 'inline-block' doesn't center with margin '0 auto'\n   */\n}\n\n.grid-col.center {\n  display: block;\n  margin: 0 auto;\n}\n\n/* Column dimensions\n   @mixin ========================================================================= */\n/*\n   * Calculate width by dividing a full width into 12 columns\n   * Create a class for each column\n   */\n.col-1, .col-lg-1 {\n  width: 8.33333333%;\n}\n\n.full-row .col-1, .full-row .col-lg-1 {\n  width: 7.14285714%;\n}\n\n/* Column shifts\n   @mixin ========================================================================= */\n.offset-1, .offset-lg-1 {\n  margin-left: 8.33333333%;\n}\n\n/* Column dimensions\n   @mixin ========================================================================= */\n/*\n   * Calculate width by dividing a full width into 12 columns\n   * Create a class for each column\n   */\n.col-2, .col-lg-2 {\n  width: 16.66666667%;\n}\n\n.full-row .col-2, .full-row .col-lg-2 {\n  width: 14.28571429%;\n}\n\n/* Column shifts\n   @mixin ========================================================================= */\n.offset-2, .offset-lg-2 {\n  margin-left: 16.66666667%;\n}\n\n/* Column dimensions\n   @mixin ========================================================================= */\n/*\n   * Calculate width by dividing a full width into 12 columns\n   * Create a class for each column\n   */\n.col-3, .col-lg-3 {\n  width: 25%;\n}\n\n.full-row .col-3, .full-row .col-lg-3 {\n  width: 21.42857143%;\n}\n\n/* Column shifts\n   @mixin ========================================================================= */\n.offset-3, .offset-lg-3 {\n  margin-left: 25%;\n}\n\n/* Column dimensions\n   @mixin ========================================================================= */\n/*\n   * Calculate width by dividing a full width into 12 columns\n   * Create a class for each column\n   */\n.col-4, .col-lg-4 {\n  width: 33.33333333%;\n}\n\n.full-row .col-4, .full-row .col-lg-4 {\n  width: 28.57142857%;\n}\n\n/* Column shifts\n   @mixin ========================================================================= */\n.offset-4, .offset-lg-4 {\n  margin-left: 33.33333333%;\n}\n\n/* Column dimensions\n   @mixin ========================================================================= */\n/*\n   * Calculate width by dividing a full width into 12 columns\n   * Create a class for each column\n   */\n.col-5, .col-lg-5 {\n  width: 41.66666667%;\n}\n\n.full-row .col-5, .full-row .col-lg-5 {\n  width: 35.71428571%;\n}\n\n/* Column shifts\n   @mixin ========================================================================= */\n.offset-5, .offset-lg-5 {\n  margin-left: 41.66666667%;\n}\n\n/* Column dimensions\n   @mixin ========================================================================= */\n/*\n   * Calculate width by dividing a full width into 12 columns\n   * Create a class for each column\n   */\n.col-6, .col-lg-6 {\n  width: 50%;\n}\n\n.full-row .col-6, .full-row .col-lg-6 {\n  width: 42.85714286%;\n}\n\n/* Column shifts\n   @mixin ========================================================================= */\n.offset-6, .offset-lg-6 {\n  margin-left: 50%;\n}\n\n/* Column dimensions\n   @mixin ========================================================================= */\n/*\n   * Calculate width by dividing a full width into 12 columns\n   * Create a class for each column\n   */\n.col-7, .col-lg-7 {\n  width: 58.33333333%;\n}\n\n.full-row .col-7, .full-row .col-lg-7 {\n  width: 50%;\n}\n\n/* Column shifts\n   @mixin ========================================================================= */\n.offset-7, .offset-lg-7 {\n  margin-left: 58.33333333%;\n}\n\n/* Column dimensions\n   @mixin ========================================================================= */\n/*\n   * Calculate width by dividing a full width into 12 columns\n   * Create a class for each column\n   */\n.col-8, .col-lg-8 {\n  width: 66.66666667%;\n}\n\n.full-row .col-8, .full-row .col-lg-8 {\n  width: 57.14285714%;\n}\n\n/* Column shifts\n   @mixin ========================================================================= */\n.offset-8, .offset-lg-8 {\n  margin-left: 66.66666667%;\n}\n\n/* Column dimensions\n   @mixin ========================================================================= */\n/*\n   * Calculate width by dividing a full width into 12 columns\n   * Create a class for each column\n   */\n.col-9, .col-lg-9 {\n  width: 75%;\n}\n\n.full-row .col-9, .full-row .col-lg-9 {\n  width: 64.28571429%;\n}\n\n/* Column shifts\n   @mixin ========================================================================= */\n.offset-9, .offset-lg-9 {\n  margin-left: 75%;\n}\n\n/* Column dimensions\n   @mixin ========================================================================= */\n/*\n   * Calculate width by dividing a full width into 12 columns\n   * Create a class for each column\n   */\n.col-10, .col-lg-10 {\n  width: 83.33333333%;\n}\n\n.full-row .col-10, .full-row .col-lg-10 {\n  width: 71.42857143%;\n}\n\n/* Column shifts\n   @mixin ========================================================================= */\n.offset-10, .offset-lg-10 {\n  margin-left: 83.33333333%;\n}\n\n/* Column dimensions\n   @mixin ========================================================================= */\n/*\n   * Calculate width by dividing a full width into 12 columns\n   * Create a class for each column\n   */\n.col-11, .col-lg-11 {\n  width: 91.66666667%;\n}\n\n.full-row .col-11, .full-row .col-lg-11 {\n  width: 78.57142857%;\n}\n\n/* Column shifts\n   @mixin ========================================================================= */\n.offset-11, .offset-lg-11 {\n  margin-left: 91.66666667%;\n}\n\n/* Column dimensions\n   @mixin ========================================================================= */\n/*\n   * Calculate width by dividing a full width into 12 columns\n   * Create a class for each column\n   */\n.col-12, .col-lg-12 {\n  width: 100%;\n}\n\n.full-row .col-12, .full-row .col-lg-12 {\n  width: 85.71428571%;\n}\n\n/* Column shifts\n   @mixin ========================================================================= */\n.offset-12, .offset-lg-12 {\n  margin-left: 100%;\n}\n\n/* Column dimensions\n   @mixin ========================================================================= */\n/*\n   * Calculate width by dividing a full width into 12 columns\n   * Create a class for each column\n   */\n.col-13, .col-lg-13 {\n  width: 108.33333333%;\n}\n\n.full-row .col-13, .full-row .col-lg-13 {\n  width: 92.85714286%;\n}\n\n/* Column shifts\n   @mixin ========================================================================= */\n.offset-13, .offset-lg-13 {\n  margin-left: 108.33333333%;\n}\n\n/* Column dimensions\n   @mixin ========================================================================= */\n/*\n   * Calculate width by dividing a full width into 12 columns\n   * Create a class for each column\n   */\n.col-14, .col-lg-14 {\n  width: 116.66666667%;\n}\n\n.full-row .col-14, .full-row .col-lg-14 {\n  width: 100%;\n}\n\n/* Column shifts\n   @mixin ========================================================================= */\n.offset-14, .offset-lg-14 {\n  margin-left: 116.66666667%;\n}\n\n/* Media queries\n @mixin ========================================================================= */\n/*\n  * Create a separate loop because of order for css rendering\n  * because else it would overrule a previous media query\n  */\n@media screen and (min-width: 1601px) {\n  .col-xl-1 {\n    width: 8.33333333%;\n  }\n  .offset-xl-1 {\n    margin-left: 8.33333333%;\n  }\n}\n\n@media screen and (max-width: 1080px) {\n  .col-md-1 {\n    width: 8.33333333%;\n  }\n  .offset-md-1 {\n    margin-left: 8.33333333%;\n  }\n}\n\n@media screen and (max-width: 768px) {\n  .col-sm-1 {\n    width: 8.33333333%;\n  }\n  .offset-sm-1 {\n    margin-left: 8.33333333%;\n  }\n}\n\n@media screen and (max-width: 400px) {\n  .col-xs-1 {\n    width: 8.33333333%;\n  }\n  .offset-xs-1 {\n    margin-left: 8.33333333%;\n  }\n}\n\n@media screen and (min-width: 1601px) {\n  .col-xl-2 {\n    width: 16.66666667%;\n  }\n  .offset-xl-2 {\n    margin-left: 16.66666667%;\n  }\n}\n\n@media screen and (max-width: 1080px) {\n  .col-md-2 {\n    width: 16.66666667%;\n  }\n  .offset-md-2 {\n    margin-left: 16.66666667%;\n  }\n}\n\n@media screen and (max-width: 768px) {\n  .col-sm-2 {\n    width: 16.66666667%;\n  }\n  .offset-sm-2 {\n    margin-left: 16.66666667%;\n  }\n}\n\n@media screen and (max-width: 400px) {\n  .col-xs-2 {\n    width: 16.66666667%;\n  }\n  .offset-xs-2 {\n    margin-left: 16.66666667%;\n  }\n}\n\n@media screen and (min-width: 1601px) {\n  .col-xl-3 {\n    width: 25%;\n  }\n  .offset-xl-3 {\n    margin-left: 25%;\n  }\n}\n\n@media screen and (max-width: 1080px) {\n  .col-md-3 {\n    width: 25%;\n  }\n  .offset-md-3 {\n    margin-left: 25%;\n  }\n}\n\n@media screen and (max-width: 768px) {\n  .col-sm-3 {\n    width: 25%;\n  }\n  .offset-sm-3 {\n    margin-left: 25%;\n  }\n}\n\n@media screen and (max-width: 400px) {\n  .col-xs-3 {\n    width: 25%;\n  }\n  .offset-xs-3 {\n    margin-left: 25%;\n  }\n}\n\n@media screen and (min-width: 1601px) {\n  .col-xl-4 {\n    width: 33.33333333%;\n  }\n  .offset-xl-4 {\n    margin-left: 33.33333333%;\n  }\n}\n\n@media screen and (max-width: 1080px) {\n  .col-md-4 {\n    width: 33.33333333%;\n  }\n  .offset-md-4 {\n    margin-left: 33.33333333%;\n  }\n}\n\n@media screen and (max-width: 768px) {\n  .col-sm-4 {\n    width: 33.33333333%;\n  }\n  .offset-sm-4 {\n    margin-left: 33.33333333%;\n  }\n}\n\n@media screen and (max-width: 400px) {\n  .col-xs-4 {\n    width: 33.33333333%;\n  }\n  .offset-xs-4 {\n    margin-left: 33.33333333%;\n  }\n}\n\n@media screen and (min-width: 1601px) {\n  .col-xl-5 {\n    width: 41.66666667%;\n  }\n  .offset-xl-5 {\n    margin-left: 41.66666667%;\n  }\n}\n\n@media screen and (max-width: 1080px) {\n  .col-md-5 {\n    width: 41.66666667%;\n  }\n  .offset-md-5 {\n    margin-left: 41.66666667%;\n  }\n}\n\n@media screen and (max-width: 768px) {\n  .col-sm-5 {\n    width: 41.66666667%;\n  }\n  .offset-sm-5 {\n    margin-left: 41.66666667%;\n  }\n}\n\n@media screen and (max-width: 400px) {\n  .col-xs-5 {\n    width: 41.66666667%;\n  }\n  .offset-xs-5 {\n    margin-left: 41.66666667%;\n  }\n}\n\n@media screen and (min-width: 1601px) {\n  .col-xl-6 {\n    width: 50%;\n  }\n  .offset-xl-6 {\n    margin-left: 50%;\n  }\n}\n\n@media screen and (max-width: 1080px) {\n  .col-md-6 {\n    width: 50%;\n  }\n  .offset-md-6 {\n    margin-left: 50%;\n  }\n}\n\n@media screen and (max-width: 768px) {\n  .col-sm-6 {\n    width: 50%;\n  }\n  .offset-sm-6 {\n    margin-left: 50%;\n  }\n}\n\n@media screen and (max-width: 400px) {\n  .col-xs-6 {\n    width: 50%;\n  }\n  .offset-xs-6 {\n    margin-left: 50%;\n  }\n}\n\n@media screen and (min-width: 1601px) {\n  .col-xl-7 {\n    width: 58.33333333%;\n  }\n  .offset-xl-7 {\n    margin-left: 58.33333333%;\n  }\n}\n\n@media screen and (max-width: 1080px) {\n  .col-md-7 {\n    width: 58.33333333%;\n  }\n  .offset-md-7 {\n    margin-left: 58.33333333%;\n  }\n}\n\n@media screen and (max-width: 768px) {\n  .col-sm-7 {\n    width: 58.33333333%;\n  }\n  .offset-sm-7 {\n    margin-left: 58.33333333%;\n  }\n}\n\n@media screen and (max-width: 400px) {\n  .col-xs-7 {\n    width: 58.33333333%;\n  }\n  .offset-xs-7 {\n    margin-left: 58.33333333%;\n  }\n}\n\n@media screen and (min-width: 1601px) {\n  .col-xl-8 {\n    width: 66.66666667%;\n  }\n  .offset-xl-8 {\n    margin-left: 66.66666667%;\n  }\n}\n\n@media screen and (max-width: 1080px) {\n  .col-md-8 {\n    width: 66.66666667%;\n  }\n  .offset-md-8 {\n    margin-left: 66.66666667%;\n  }\n}\n\n@media screen and (max-width: 768px) {\n  .col-sm-8 {\n    width: 66.66666667%;\n  }\n  .offset-sm-8 {\n    margin-left: 66.66666667%;\n  }\n}\n\n@media screen and (max-width: 400px) {\n  .col-xs-8 {\n    width: 66.66666667%;\n  }\n  .offset-xs-8 {\n    margin-left: 66.66666667%;\n  }\n}\n\n@media screen and (min-width: 1601px) {\n  .col-xl-9 {\n    width: 75%;\n  }\n  .offset-xl-9 {\n    margin-left: 75%;\n  }\n}\n\n@media screen and (max-width: 1080px) {\n  .col-md-9 {\n    width: 75%;\n  }\n  .offset-md-9 {\n    margin-left: 75%;\n  }\n}\n\n@media screen and (max-width: 768px) {\n  .col-sm-9 {\n    width: 75%;\n  }\n  .offset-sm-9 {\n    margin-left: 75%;\n  }\n}\n\n@media screen and (max-width: 400px) {\n  .col-xs-9 {\n    width: 75%;\n  }\n  .offset-xs-9 {\n    margin-left: 75%;\n  }\n}\n\n@media screen and (min-width: 1601px) {\n  .col-xl-10 {\n    width: 83.33333333%;\n  }\n  .offset-xl-10 {\n    margin-left: 83.33333333%;\n  }\n}\n\n@media screen and (max-width: 1080px) {\n  .col-md-10 {\n    width: 83.33333333%;\n  }\n  .offset-md-10 {\n    margin-left: 83.33333333%;\n  }\n}\n\n@media screen and (max-width: 768px) {\n  .col-sm-10 {\n    width: 83.33333333%;\n  }\n  .offset-sm-10 {\n    margin-left: 83.33333333%;\n  }\n}\n\n@media screen and (max-width: 400px) {\n  .col-xs-10 {\n    width: 83.33333333%;\n  }\n  .offset-xs-10 {\n    margin-left: 83.33333333%;\n  }\n}\n\n@media screen and (min-width: 1601px) {\n  .col-xl-11 {\n    width: 91.66666667%;\n  }\n  .offset-xl-11 {\n    margin-left: 91.66666667%;\n  }\n}\n\n@media screen and (max-width: 1080px) {\n  .col-md-11 {\n    width: 91.66666667%;\n  }\n  .offset-md-11 {\n    margin-left: 91.66666667%;\n  }\n}\n\n@media screen and (max-width: 768px) {\n  .col-sm-11 {\n    width: 91.66666667%;\n  }\n  .offset-sm-11 {\n    margin-left: 91.66666667%;\n  }\n}\n\n@media screen and (max-width: 400px) {\n  .col-xs-11 {\n    width: 91.66666667%;\n  }\n  .offset-xs-11 {\n    margin-left: 91.66666667%;\n  }\n}\n\n@media screen and (min-width: 1601px) {\n  .col-xl-12 {\n    width: 100%;\n  }\n  .offset-xl-12 {\n    margin-left: 100%;\n  }\n}\n\n@media screen and (max-width: 1080px) {\n  .col-md-12 {\n    width: 100%;\n  }\n  .offset-md-12 {\n    margin-left: 100%;\n  }\n}\n\n@media screen and (max-width: 768px) {\n  .col-sm-12 {\n    width: 100%;\n  }\n  .offset-sm-12 {\n    margin-left: 100%;\n  }\n}\n\n@media screen and (max-width: 400px) {\n  .col-xs-12 {\n    width: 100%;\n  }\n  .offset-xs-12 {\n    margin-left: 100%;\n  }\n}\n\n@media screen and (min-width: 1601px) {\n  .col-xl-13 {\n    width: 108.33333333%;\n  }\n  .offset-xl-13 {\n    margin-left: 108.33333333%;\n  }\n}\n\n@media screen and (max-width: 1080px) {\n  .col-md-13 {\n    width: 108.33333333%;\n  }\n  .offset-md-13 {\n    margin-left: 108.33333333%;\n  }\n}\n\n@media screen and (max-width: 768px) {\n  .col-sm-13 {\n    width: 108.33333333%;\n  }\n  .offset-sm-13 {\n    margin-left: 108.33333333%;\n  }\n}\n\n@media screen and (max-width: 400px) {\n  .col-xs-13 {\n    width: 108.33333333%;\n  }\n  .offset-xs-13 {\n    margin-left: 108.33333333%;\n  }\n}\n\n@media screen and (min-width: 1601px) {\n  .col-xl-14 {\n    width: 116.66666667%;\n  }\n  .offset-xl-14 {\n    margin-left: 116.66666667%;\n  }\n}\n\n@media screen and (max-width: 1080px) {\n  .col-md-14 {\n    width: 116.66666667%;\n  }\n  .offset-md-14 {\n    margin-left: 116.66666667%;\n  }\n}\n\n@media screen and (max-width: 768px) {\n  .col-sm-14 {\n    width: 116.66666667%;\n  }\n  .offset-sm-14 {\n    margin-left: 116.66666667%;\n  }\n}\n\n@media screen and (max-width: 400px) {\n  .col-xs-14 {\n    width: 116.66666667%;\n  }\n  .offset-xs-14 {\n    margin-left: 116.66666667%;\n  }\n}\n\n/* ==========================================================================\n   This grid can be turned on and off when you want to check\n   if everything is nice in place.\n   @mixin ========================================================================= */\n.visible-grid-container {\n  display: flex;\n  justify-content: center;\n}\n\n/**\n * 1. Makes it able to control the website while grid is shown\n */\n.visible-grid {\n  display: block;\n  position: fixed;\n  z-index: 10000;\n  pointer-events: none;\n}\n\n.visible-grid .grid-col {\n  background: rgba(0, 255, 255, 0.6);\n  height: 100vh;\n}\n\n.visible-grid .grid-col:nth-child(2n) {\n  background: rgba(0, 255, 255, 0.3);\n}\n\n.visible-grid:before, .visible-grid:after {\n  content: '';\n  position: absolute;\n  top: 0;\n  width: calc(100% / 12);\n  height: 100%;\n  background: rgba(0, 255, 0, 0.5);\n}\n\n.visible-grid:before {\n  left: calc(-100% / 12);\n}\n\n.visible-grid:after {\n  right: calc(-100% / 12);\n}\n\n.breakpoint {\n  position: fixed;\n  right: 0;\n  bottom: 0;\n  width: 20px;\n  height: 20px;\n  z-index: 10000;\n  background: #0ABEFF;\n}\n\n@media screen and (min-width: 1601px) {\n  .breakpoint {\n    background: red;\n  }\n}\n\n@media screen and (max-width: 1366px) {\n  .breakpoint {\n    background: blue;\n  }\n}\n\n@media screen and (max-width: 1080px) {\n  .breakpoint {\n    background: green;\n  }\n}\n\n@media screen and (max-width: 768px) {\n  .breakpoint {\n    background: yellow;\n  }\n}\n\n@media screen and (max-width: 400px) {\n  .breakpoint {\n    background: pink;\n  }\n}\n\n/* ==========================================================================\n   Expend Config settings\n   @mixin ========================================================================= */\n/* ==========================================================================\n   Expend Basic style settings\n   @mixin ========================================================================= */\n/*\n * Set up the html\n *\n * 1. Makes sue that some fonts are better rendered\n */\nhtml {\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n  text-rendering: optimizeLegibility;\n}\n\n/*\n * Set up the body\n *\n * 1. Set font to lining figures\n */\nbody {\n  margin: 0;\n  font-family: \"Avenir LT W02 45 Book\", sans-serif;\n  line-height: 1.6;\n  font-feature-settings: \"lnum\";\n  background-color: black;\n  background-image: url(\"/img/background.jpg\");\n  background-position: center top;\n  background-size: 100vw auto;\n  background-repeat: no-repeat;\n}\n\n/*\n * Set default settings for all elements\n *\n * 1. Default selection styling\n *\n */\n* ::selection {\n  background: #4A90E2;\n  color: white;\n}\n\n/*\n * Set default styling for input and textarea\n *\n * 1. Set font because else the agent will overrule them with an ugly font\n */\ninput, textarea {\n  font-family: \"Avenir LT W02 45 Book\", sans-serif;\n}\n\n/*\n * Set default styling for a button\n *\n */\n.button {\n  display: inline-block;\n  padding: 10px 20px;\n  background-color: #00C7FF;\n  border: 1px solid white;\n  border-radius: 10px;\n  text-decoration: none;\n  color: white;\n}\n\n.button .arrow {\n  display: inline-block;\n  margin-left: 25px;\n  background: url(\"/img/spire_sprite.svg\") 35px 1px no-repeat;\n  background-size: 212px 82px;\n  width: 15px;\n  height: 10px;\n  transform: translate3d(0, 0, 0);\n  transition: transform 0.3s;\n}\n\n.button:hover .arrow {\n  transform: translate3d(5px, 0, 0);\n}\n\n.title-placeholder h1 {\n  margin: 30px 0 0;\n  font-size: 1rem;\n  line-height: 1.3;\n  color: white;\n  text-transform: uppercase;\n  font-family: 'Avenir LT W02 95 Black', sans-serif;\n  font-weight: 400;\n}\n\n/* ==========================================================================\n   Helper classes\n   @mixin ========================================================================= */\n/**\n * Use on elements from where the children should not wrap\n */\n.nowrap {\n  white-space: nowrap;\n}\n\n/**\n * Hide elements on different screen sizes\n */\n@media screen and (max-width: 1600px) {\n  .hide-on-xl-or-smaller {\n    display: none;\n  }\n}\n\n@media screen and (min-width: 1601px) {\n  .hide-on-xl-or-larger {\n    display: none;\n  }\n}\n\n@media screen and (max-width: 1366px) {\n  .hide-on-lg-or-smaller {\n    display: none;\n  }\n}\n\n@media screen and (min-width: 1367px) {\n  .hide-on-lg-or-larger {\n    display: none;\n  }\n}\n\n@media screen and (max-width: 1080px) {\n  .hide-on-md-or-smaller {\n    display: none;\n  }\n}\n\n@media screen and (min-width: 1081px) {\n  .hide-on-md-or-larger {\n    display: none;\n  }\n}\n\n@media screen and (max-width: 768px) {\n  .hide-on-sm-or-smaller {\n    display: none;\n  }\n}\n\n@media screen and (min-width: 769px) {\n  .hide-on-sm-or-larger {\n    display: none;\n  }\n}\n\n@media screen and (max-width: 400px) {\n  .hide-on-xs-or-smaller {\n    display: none;\n  }\n}\n\n@media screen and (min-width: 401px) {\n  .hide-on-xs-or-larger {\n    display: none;\n  }\n}\n\n/* ==========================================================================\n   Partial CSS\n   @mixin ========================================================================= */\n/* HTML and navigation\n @mixin ========================================================================= */\nhtml.has-cookie-dialog {\n  padding-top: 60px;\n}\n\nhtml.has-cookie-dialog nav.main,\nhtml.has-cookie-dialog .navigation-drip {\n  top: 60px;\n}\n\n@media screen and (max-width: 1080px) {\n  html.has-cookie-dialog {\n    padding-top: 120px;\n  }\n  html.has-cookie-dialog nav.main,\n  html.has-cookie-dialog .navigation-drip {\n    top: 120px;\n  }\n}\n\n/* Dialog\n @mixin ========================================================================= */\n.cookie-consent {\n  position: fixed;\n  top: 0;\n  left: 0;\n  z-index: 10000;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  height: 60px;\n  width: 100%;\n  border-bottom: 1px solid #eaeaea;\n  background: #fff;\n  color: #1D2433;\n  font-size: 16px;\n}\n\n.cookie-consent .message {\n  display: block;\n  padding: 0 20px;\n  max-width: 75%;\n}\n\n.cookie-consent .message a {\n  display: inline-block;\n  color: #4A90E2;\n  text-decoration: none;\n}\n\n.cookie-consent .message a:hover {\n  text-decoration: underline;\n}\n\n.cookie-consent .button {\n  margin-left: 40px;\n  width: auto;\n  min-width: 0;\n  height: 40px;\n  line-height: 36px;\n  font-size: 16px;\n}\n\n@media screen and (max-width: 1080px) {\n  .cookie-consent {\n    flex-direction: column;\n    text-align: center;\n    height: 120px;\n  }\n  .cookie-consent .message {\n    max-width: none;\n  }\n  .cookie-consent .button {\n    margin-left: 0;\n    margin-top: 10px;\n    position: relative;\n    top: 0;\n    right: 0;\n  }\n}\n\n/* ==========================================================================\n   Footer\n   @mixin ========================================================================= */\nfooter {\n  background: #1D2433;\n  color: #c3cfe6;\n  padding: 100px 0;\n}\n\nfooter .komma {\n  position: relative;\n  display: -ms-flexbox;\n  display: -webkit-flex;\n  display: flex;\n  -webkit-justify-content: space-between;\n  -moz-justify-content: space-between;\n  -ms-justify-content: space-between;\n  -webkit-align-items: center;\n  -moz-align-items: center;\n  -ms-align-items: center;\n  justify-content: space-between;\n  align-items: center;\n  font-size: 0.75rem;\n  line-height: 1;\n  width: 265px;\n  color: #c3cfe6;\n  font-weight: 500;\n  text-decoration: none;\n  transition: color 0.2s;\n}\n\nfooter .komma:hover {\n  color: white;\n}\n\nfooter .komma:hover span {\n  opacity: 1;\n}\n\nfooter .komma span {\n  position: relative;\n  top: 1px;\n  display: inline-block;\n  opacity: 0.4;\n  transition: opacity 0.2s;\n  background: url(\"/img/spire_sprite.svg\") -491px -1px no-repeat;\n  background-size: 212px 82px;\n  width: 93px;\n  height: 31px;\n}\n\n@media screen and (max-width: 400px) {\n  footer .komma {\n    display: block;\n    text-align: center;\n  }\n  footer .komma span {\n    display: block;\n    margin: 10px auto 0;\n  }\n}\n\nheader {\n  background-color: rgba(20, 20, 20, 0.85);\n}\n\nheader .pre-header {\n  position: relative;\n  border-bottom: 1px solid rgba(151, 151, 151, 0.4);\n}\n\nheader .pre-header .grid-row {\n  padding: 8px 0;\n  display: -ms-flexbox;\n  display: -webkit-flex;\n  display: flex;\n  -webkit-justify-content: space-between;\n  -moz-justify-content: space-between;\n  -ms-justify-content: space-between;\n  -webkit-align-items: center;\n  -moz-align-items: center;\n  -ms-align-items: center;\n  justify-content: space-between;\n  align-items: center;\n}\n\nheader .pre-header .reasons {\n  display: -ms-flexbox;\n  display: -webkit-flex;\n  display: flex;\n  -webkit-justify-content: flex-start;\n  -moz-justify-content: flex-start;\n  -ms-justify-content: flex-start;\n  -webkit-align-items: center;\n  -moz-align-items: center;\n  -ms-align-items: center;\n  justify-content: flex-start;\n  align-items: center;\n}\n\nheader .pre-header .reasons p {\n  margin: 0;\n  font-size: 0.65rem;\n  line-height: 1.2;\n  color: rgba(190, 180, 181, 0.75);\n  font-family: 'Avenir LT W02 95 Black', sans-serif;\n  font-weight: 400;\n}\n\nheader .pre-header .reasons p + p {\n  margin-left: 40px;\n}\n\nheader .pre-header .reasons p:before {\n  content: '';\n  display: inline-block;\n  margin-right: 5px;\n  background: url(\"/img/spire_sprite.svg\") -170px -33px no-repeat;\n  background-size: 212px 82px;\n  width: 13px;\n  height: 10px;\n  opacity: 0.75;\n}\n\nheader .pre-header .mail-button {\n  font-size: 0.65rem;\n  line-height: 1.2;\n  color: rgba(190, 180, 181, 0.75);\n  font-family: 'Avenir LT W02 95 Black', sans-serif;\n  font-weight: 400;\n  text-decoration: none;\n  transition: color 0.3s;\n}\n\nheader .pre-header .mail-button:hover {\n  color: #BEB4B5;\n}\n\nheader .pre-header .mail-button:before {\n  content: '';\n  position: relative;\n  top: -1px;\n  display: inline-block;\n  margin-right: 5px;\n  width: 6px;\n  height: 6px;\n  border-radius: 100%;\n  background-color: #68FF6D;\n}\n\nheader .pre-header .mail-button:after {\n  content: '';\n  position: relative;\n  display: inline-block;\n  margin-left: 5px;\n  background: url(\"/img/spire_sprite.svg\") -170px 0 no-repeat;\n  background-size: 212px 82px;\n  width: 10px;\n  height: 11px;\n}\n\nheader .main-row {\n  padding: 20px 0;\n  display: -ms-flexbox;\n  display: -webkit-flex;\n  display: flex;\n  -webkit-justify-content: space-between;\n  -moz-justify-content: space-between;\n  -ms-justify-content: space-between;\n  -webkit-align-items: center;\n  -moz-align-items: center;\n  -ms-align-items: center;\n  justify-content: space-between;\n  align-items: center;\n}\n\nheader .main-row .logo {\n  display: block;\n  background: url(\"/img/spire_sprite.svg\") 0 0 no-repeat;\n  background-size: 212px 82px;\n  width: 168px;\n  height: 80px;\n}\n\nheader .main-row .search-placeholder {\n  display: -ms-flexbox;\n  display: -webkit-flex;\n  display: flex;\n  -webkit-justify-content: center;\n  -moz-justify-content: center;\n  -ms-justify-content: center;\n  -webkit-align-items: center;\n  -moz-align-items: center;\n  -ms-align-items: center;\n  justify-content: center;\n  align-items: center;\n  width: calc(100% - 336px);\n}\n\nheader .main-row .search-placeholder .search {\n  position: relative;\n  width: 100%;\n  max-width: 415px;\n}\n\nheader .main-row .search-placeholder .search .search-input {\n  -webkit-appearance: none;\n  -moz-appearance: none;\n  -ms-appearance: none;\n  -o-appearance: none;\n  appearance: none;\n  width: 100%;\n  display: block;\n  padding: 7px 40px 7px 10px;\n  background-color: white;\n  border: none;\n  font-size: 0.7rem;\n  line-height: 1.2;\n  color: #999192;\n}\n\nheader .main-row .search-placeholder .search .search-input:-webkit-autofill, header .main-row .search-placeholder .search .search-input:-webkit-autofill:hover, header .main-row .search-placeholder .search .search-input:-webkit-autofill:focus, header .main-row .search-placeholder .search .search-input:-webkit-autofill:active {\n  transition: 9999s background-color;\n  -webkit-text-fill-color: #999192;\n  transition-delay: 9999s;\n}\n\nheader .main-row .search-placeholder .search .search-input:focus {\n  outline: none;\n}\n\nheader .main-row .search-placeholder .search .submit {\n  position: absolute;\n  right: 0;\n  top: 0;\n  display: -ms-flexbox;\n  display: -webkit-flex;\n  display: flex;\n  -webkit-justify-content: center;\n  -moz-justify-content: center;\n  -ms-justify-content: center;\n  -webkit-align-items: center;\n  -moz-align-items: center;\n  -ms-align-items: center;\n  justify-content: center;\n  align-items: center;\n  width: 30px;\n  height: 30px;\n  background-color: #757575;\n  cursor: pointer;\n  transition: background-color 0.3s;\n}\n\nheader .main-row .search-placeholder .search .submit .icon {\n  background: url(\"/img/spire_sprite.svg\") -185px 0 no-repeat;\n  background-size: 212px 82px;\n  width: 14px;\n  height: 14px;\n}\n\nheader .main-row .search-placeholder .search .submit input {\n  display: none;\n}\n\nheader .main-row .search-placeholder .search .submit:hover {\n  background-color: rgba(117, 117, 117, 0.75);\n}\n\nheader .main-row .shopping-cart-icon {\n  display: -ms-flexbox;\n  display: -webkit-flex;\n  display: flex;\n  -webkit-justify-content: flex-end;\n  -moz-justify-content: flex-end;\n  -ms-justify-content: flex-end;\n  -webkit-align-items: center;\n  -moz-align-items: center;\n  -ms-align-items: center;\n  justify-content: flex-end;\n  align-items: center;\n  width: 168px;\n  text-decoration: none;\n}\n\nheader .main-row .shopping-cart-icon .icon {\n  position: relative;\n  display: block;\n  width: 24px;\n  height: 24px;\n  margin-right: 8px;\n}\n\nheader .main-row .shopping-cart-icon .icon:before {\n  content: '';\n  display: inline-block;\n  background: url(\"/img/spire_sprite.svg\") -185px -19px no-repeat;\n  background-size: 212px 82px;\n  width: 24px;\n  height: 24px;\n  opacity: 0.5;\n  transition: opacity 0.3s;\n}\n\nheader .main-row .shopping-cart-icon .icon:after {\n  position: absolute;\n  right: -12px;\n  top: -10px;\n  content: attr(data-amount);\n  display: -ms-flexbox;\n  display: -webkit-flex;\n  display: flex;\n  -webkit-justify-content: center;\n  -moz-justify-content: center;\n  -ms-justify-content: center;\n  -webkit-align-items: center;\n  -moz-align-items: center;\n  -ms-align-items: center;\n  justify-content: center;\n  align-items: center;\n  width: 20px;\n  height: 20px;\n  color: white;\n  background-color: #E20A17;\n  border-radius: 100%;\n  font-size: 0.6rem;\n  line-height: 1.2;\n  font-family: 'Avenir LT W02 95 Black', sans-serif;\n  font-weight: 400;\n}\n\nheader .main-row .shopping-cart-icon .icon[data-amount='0']:after {\n  display: none;\n}\n\nheader .main-row .shopping-cart-icon span {\n  font-size: 0.65rem;\n  line-height: 1.2;\n  color: rgba(190, 180, 181, 0.75);\n  transition: color 0.3s;\n  font-family: 'Avenir LT W02 95 Black', sans-serif;\n  font-weight: 400;\n}\n\nheader .main-row .shopping-cart-icon:hover .icon:before {\n  opacity: 1;\n}\n\nheader .main-row .shopping-cart-icon:hover span {\n  color: #BEB4B5;\n}\n\nheader nav {\n  background-color: #282828;\n  border-top: 1px solid #979797;\n  box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.5);\n}\n\nheader nav .grid-row {\n  display: -ms-flexbox;\n  display: -webkit-flex;\n  display: flex;\n  -webkit-justify-content: space-between;\n  -moz-justify-content: space-between;\n  -ms-justify-content: space-between;\n  -webkit-align-items: center;\n  -moz-align-items: center;\n  -ms-align-items: center;\n  justify-content: space-between;\n  align-items: center;\n}\n\nheader nav .grid-row a {\n  display: block;\n  padding: 18px 0;\n  background-color: transparent;\n  text-align: center;\n  text-transform: uppercase;\n  text-decoration: none;\n  font-size: 0.6rem;\n  line-height: 1.2;\n  color: white;\n  font-family: 'Avenir LT W02 95 Black', sans-serif;\n  font-weight: 400;\n  transition: background-color 0.3s, color 0.3s;\n}\n\nheader nav .grid-row a + a {\n  border-left: 1px solid #979797;\n}\n\nheader nav .grid-row a:hover {\n  color: #E50000;\n}\n\n/* ==========================================================================\n   Default styling for KMS content\n   @mixin ========================================================================= */\n.kms-content h1, .kms-content h2, .kms-content h3 {\n  font-size: 1.8rem;\n  line-height: 1.4;\n  color: #00C7FF;\n}\n\n.kms-content h1 strong, .kms-content h2 strong, .kms-content h3 strong {\n  color: #00C7FF;\n  font-weight: 400;\n}\n\n.kms-content h2, .kms-content h3 {\n  font-size: 1.4rem;\n}\n\n.kms-content h3 {\n  color: #00C7FF;\n}\n\n.kms-content h3 strong {\n  color: #4A90E2;\n}\n\n.kms-content h4 {\n  font-size: 0.8rem;\n  line-height: 1.3;\n  color: #4A90E2;\n  text-transform: uppercase;\n}\n\n.kms-content p {\n  font-size: 0.9rem;\n  line-height: 1.4;\n  color: #282828;\n}\n\n.kms-content ul {\n  padding-left: 0;\n  list-style: none;\n}\n\n.kms-content ul li {\n  padding-left: 30px;\n  font-size: 0.9rem;\n  line-height: 1.4;\n  color: #282828;\n}\n\n.kms-content ul li:before {\n  position: absolute;\n  left: 0;\n  content: '•';\n  color: #4A90E2;\n  font-size: 1.3em;\n  line-height: 1;\n}\n\n.kms-content ul li + li {\n  margin-top: 5px;\n}\n\n.kms-content ol {\n  counter-reset: ol-counter;\n  padding-left: 0;\n  list-style: none;\n}\n\n.kms-content ol li {\n  padding-left: 30px;\n  font-size: 0.9rem;\n  line-height: 1.4;\n  color: #282828;\n}\n\n.kms-content ol li:before {\n  counter-increment: ol-counter;\n  content: counter(ol-counter) \".\";\n  position: absolute;\n  left: 0;\n  color: #4A90E2;\n}\n\n.kms-content ol li + li {\n  margin-top: 5px;\n}\n\n.kms-content a {\n  color: #4A90E2;\n  text-decoration: none;\n}\n\n.kms-content a:hover {\n  color: #2275d7;\n  text-decoration: none;\n}\n\n.form {\n  display: block;\n  width: 100%;\n  max-width: 560px;\n  font-size: 1rem;\n  line-height: 1.2;\n}\n\n.form .form-element {\n  position: relative;\n  margin-bottom: 25px;\n}\n\n.form .error-message {\n  display: none;\n  width: 100%;\n  color: #E50000;\n  font-size: 0.75rem;\n  font-weight: bold;\n}\n\n.form .error-message.active {\n  display: block;\n  margin-bottom: 10px;\n}\n\n.form label, .form .label {\n  display: block;\n  margin-bottom: 5px;\n  color: #282828;\n  font-size: 0.8em;\n  font-weight: bold;\n}\n\n.form input, .form textarea {\n  display: block;\n  width: 100%;\n  background-color: white;\n  padding: 15px 20px;\n  border: 1px transparent solid;\n  border-radius: 4px;\n  font-size: 0.9em;\n  color: #282828;\n}\n\n.form input.alert, .form textarea.alert {\n  border-color: #E50000;\n}\n\n.form input:-webkit-autofill, .form input:-webkit-autofill:hover, .form input:-webkit-autofill:focus, .form input:-webkit-autofill:active, .form textarea:-webkit-autofill, .form textarea:-webkit-autofill:hover, .form textarea:-webkit-autofill:focus, .form textarea:-webkit-autofill:active {\n  transition: 9999s background-color;\n  -webkit-text-fill-color: #282828;\n  transition-delay: 9999s;\n}\n\n.form input:focus, .form textarea:focus {\n  box-shadow: none;\n  outline: none;\n}\n\n.form textarea {\n  min-height: 152px;\n  resize: vertical;\n}\n\n.form .select .select-wrapper {\n  position: relative;\n  display: block;\n}\n\n.form .select .icon {\n  position: absolute;\n  right: 10px;\n  top: 26px;\n  display: inline-block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 5px 6px 0 6px;\n  border-color: #282828 transparent transparent transparent;\n  opacity: 0.3;\n  pointer-events: none;\n}\n\n.form .select select {\n  display: block;\n  width: 100%;\n  -webkit-appearance: none;\n  -moz-appearance: none;\n  -ms-appearance: none;\n  -o-appearance: none;\n  appearance: none;\n  font-family: \"Avenir LT W02 45 Book\", sans-serif;\n  background-color: white;\n  padding: 15px 35px 15px 20px;\n  border: 1px transparent solid;\n  border-radius: 4px;\n  font-size: 0.9em;\n  color: #282828;\n}\n\n.form .select select:focus {\n  box-shadow: none;\n  outline: none;\n}\n\n.form .checkbox label {\n  display: -ms-flexbox;\n  display: -webkit-flex;\n  display: flex;\n  -webkit-justify-content: space-between;\n  -moz-justify-content: space-between;\n  -ms-justify-content: space-between;\n  -webkit-align-items: flex-start;\n  -moz-align-items: flex-start;\n  -ms-align-items: flex-start;\n  justify-content: space-between;\n  align-items: flex-start;\n  cursor: pointer;\n}\n\n.form .checkbox label input {\n  -webkit-appearance: none;\n  -moz-appearance: none;\n  -ms-appearance: none;\n  -o-appearance: none;\n  appearance: none;\n  margin: 0;\n  width: 20px;\n  height: 20px;\n  border-radius: 100%;\n  padding: 0;\n  border: none;\n  background-color: rgba(255, 255, 255, 0.3);\n  background-size: contain;\n  background-position: center;\n  background-repeat: no-repeat;\n  transition: background-color 0.3s;\n}\n\n.form .checkbox label input:hover {\n  background-color: rgba(255, 255, 255, 0.5);\n}\n\n.form .checkbox label input:checked {\n  background-image: url(\"/img/check/checked.svg\");\n  background-color: rgba(255, 255, 255, 0.7);\n}\n\n.form .checkbox label span {\n  display: block;\n  margin: 2px 0 0;\n  width: calc(100% - 30px);\n}\n\n.form .submit {\n  margin-top: 20px;\n}\n\n.image-slider {\n  width: 100%;\n  overflow: visible;\n  box-shadow: 0px 0px 40px 0px rgba(0, 0, 0, 0.2);\n}\n\n.image-slider .placeholder {\n  position: relative;\n  width: 100%;\n  cursor: move;\n}\n\n.image-slider .placeholder .controllers {\n  position: relative;\n  z-index: 3;\n  width: 100%;\n  height: 0;\n  padding-bottom: 66.67%;\n}\n\n@media screen and (max-width: 1350px) {\n  .image-slider .placeholder .controllers {\n    padding-bottom: 100%;\n  }\n}\n\n.image-slider .placeholder .controllers .nav-item {\n  position: absolute;\n  display: -ms-flexbox;\n  display: -webkit-flex;\n  display: flex;\n  -webkit-justify-content: center;\n  -moz-justify-content: center;\n  -ms-justify-content: center;\n  -webkit-align-items: center;\n  -moz-align-items: center;\n  -ms-align-items: center;\n  justify-content: center;\n  align-items: center;\n  bottom: -50px;\n  width: 35px;\n  height: 35px;\n  cursor: pointer;\n  border-radius: 100%;\n  transition: background 0.3s;\n}\n\n.image-slider .placeholder .controllers .nav-item span {\n  display: -ms-flexbox;\n  display: -webkit-flex;\n  display: flex;\n  -webkit-justify-content: center;\n  -moz-justify-content: center;\n  -ms-justify-content: center;\n  -webkit-align-items: center;\n  -moz-align-items: center;\n  -ms-align-items: center;\n  justify-content: center;\n  align-items: center;\n  height: 16px;\n  width: 16px;\n  transform-origin: center;\n  transition: transform 0.3s;\n}\n\n.image-slider .placeholder .controllers .nav-item span .arrow-icon {\n  position: relative;\n  width: 10px;\n  height: 16px;\n  transform-origin: center;\n}\n\n.image-slider .placeholder .controllers .nav-item span .arrow-icon .st0 {\n  fill: white;\n}\n\n.image-slider .placeholder .controllers .nav-item.previous {\n  background-color: #00C7FF;\n  right: calc(50% + 3px);\n}\n\n.image-slider .placeholder .controllers .nav-item.previous span .arrow-icon {\n  transform: rotate(90deg);\n}\n\n.image-slider .placeholder .controllers .nav-item.previous:hover {\n  background-color: #1acdff;\n}\n\n.image-slider .placeholder .controllers .nav-item.next {\n  background-color: #E50000;\n  left: calc(50% + 3px);\n}\n\n.image-slider .placeholder .controllers .nav-item.next span .arrow-icon {\n  transform: rotate(270deg);\n}\n\n.image-slider .placeholder .controllers .nav-item.next:hover {\n  background-color: #cc0000;\n}\n\n.image-slider .placeholder figure {\n  position: absolute;\n  z-index: 1;\n  top: 0;\n  left: 0;\n  width: 100%;\n  height: 100%;\n  opacity: 0;\n  transition: opacity 0.4s;\n}\n\n.image-slider .placeholder figure span {\n  position: absolute;\n  top: 0;\n  left: 0;\n  width: 100%;\n  height: 100%;\n  background-size: cover;\n  background-position: center;\n}\n\n.image-slider .placeholder figure span.small {\n  display: none;\n}\n\n@media screen and (max-width: 480px) {\n  .image-slider .placeholder figure span.medium {\n    display: none;\n  }\n  .image-slider .placeholder figure span.small {\n    display: block;\n  }\n}\n\n.image-slider .placeholder figure.active {\n  z-index: 2;\n  opacity: 1;\n}\n\n#breadcrumb {\n  margin-top: 40px;\n  padding: 0 0 4px;\n  border-bottom: 1px solid #979797;\n}\n\n#breadcrumb ol {\n  list-style: none;\n  padding: 0;\n  margin: 0;\n  display: -ms-flexbox;\n  display: -webkit-flex;\n  display: flex;\n  -webkit-justify-content: flex-start;\n  -moz-justify-content: flex-start;\n  -ms-justify-content: flex-start;\n  -webkit-align-items: center;\n  -moz-align-items: center;\n  -ms-align-items: center;\n  justify-content: flex-start;\n  align-items: center;\n}\n\n#breadcrumb ol .divider {\n  display: inline-block;\n  padding: 0 4px;\n  color: #757575;\n  font-size: 0.6rem;\n  line-height: 1.25;\n}\n\n#breadcrumb ol li a {\n  color: #757575;\n  text-transform: uppercase;\n  font-size: 0.6rem;\n  line-height: 1.25;\n  text-decoration: none;\n  opacity: 1;\n  transition: opacity 0.3s;\n}\n\n#breadcrumb ol li a:hover {\n  opacity: 0.75;\n}\n\n#breadcrumb ol li:last-child a {\n  color: white;\n  font-family: 'Avenir LT W02 95 Black', sans-serif;\n  font-weight: 400;\n}\n\n/*==========================================================================\n  Dynamic Blocks\n  @mixin ========================================================================= */\n.dynamic-block + .dynamic-block {\n  margin-top: 60px;\n}\n\n.dynamic-block .grid-row {\n  display: -ms-flexbox;\n  display: -webkit-flex;\n  display: flex;\n  -webkit-justify-content: space-between;\n  -moz-justify-content: space-between;\n  -ms-justify-content: space-between;\n  -webkit-align-items: center;\n  -moz-align-items: center;\n  -ms-align-items: center;\n  justify-content: space-between;\n  align-items: center;\n}\n\n.dynamic-block.two-text-columns {\n  position: relative;\n  z-index: 10;\n  display: -ms-flexbox;\n  display: -webkit-flex;\n  display: flex;\n  -webkit-justify-content: space-between;\n  -moz-justify-content: space-between;\n  -ms-justify-content: space-between;\n  -webkit-align-items: flex-start;\n  -moz-align-items: flex-start;\n  -ms-align-items: flex-start;\n  justify-content: space-between;\n  align-items: flex-start;\n}\n\n.dynamic-block.two-text-columns .content {\n  width: 47.72727273%;\n  padding: 0;\n}\n\n@media screen and (max-width: 900px) {\n  .dynamic-block.two-text-columns {\n    display: block;\n  }\n  .dynamic-block.two-text-columns .content {\n    width: 100% !important;\n    margin: 0;\n  }\n  .dynamic-block.two-text-columns .content p:last-of-type {\n    margin-bottom: 1rem;\n  }\n}\n\n.dynamic-block.full-image-column img {\n  width: 100%;\n  display: none;\n}\n\n.dynamic-block.full-image-column img.large {\n  display: block;\n}\n\n@media screen and (max-width: 1050px) {\n  .dynamic-block.full-image-column img.large {\n    display: none;\n  }\n  .dynamic-block.full-image-column img.medium {\n    display: block;\n  }\n}\n\n@media screen and (max-width: 525px) {\n  .dynamic-block.full-image-column img.medium {\n    display: none;\n  }\n  .dynamic-block.full-image-column img.small {\n    display: block;\n  }\n}\n\n.dynamic-block.content-block {\n  position: relative;\n  display: -ms-flexbox;\n  display: -webkit-flex;\n  display: flex;\n  -webkit-justify-content: space-between;\n  -moz-justify-content: space-between;\n  -ms-justify-content: space-between;\n  -webkit-align-items: flex-start;\n  -moz-align-items: flex-start;\n  -ms-align-items: flex-start;\n  justify-content: space-between;\n  align-items: flex-start;\n}\n\n.dynamic-block.content-block .image {\n  width: 50%;\n}\n\n.dynamic-block.content-block .image img {\n  width: 100%;\n}\n\n.dynamic-block.content-block .image img.small {\n  display: none;\n}\n\n@media screen and (max-width: 450px) {\n  .dynamic-block.content-block .image img.medium {\n    display: none;\n  }\n  .dynamic-block.content-block .image img.small {\n    display: block;\n  }\n}\n\n.dynamic-block.content-block .image .content {\n  width: 41.66666667%;\n}\n\n.dynamic-block.content-block .content {\n  -webkit-order: 1;\n  -ms-order: 1;\n  width: 41.66666667%;\n}\n\n.dynamic-block.content-block[data-image-location='right'] .image {\n  -webkit-order: 2;\n  -ms-order: 2;\n}\n\n.dynamic-block.content-block[data-image-location='right'] .content {\n  -webkit-order: 1;\n  -ms-order: 1;\n}\n\n@media screen and (max-width: 900px) {\n  .dynamic-block.content-block {\n    display: block;\n  }\n  .dynamic-block.content-block .image {\n    width: 100%;\n    margin-top: 40px;\n    -webkit-order: 2;\n    -ms-order: 2;\n  }\n  .dynamic-block.content-block .content {\n    width: 100%;\n  }\n}\n\n.dynamic-block.multiple-images {\n  display: -ms-flexbox;\n  display: -webkit-flex;\n  display: flex;\n  -webkit-justify-content: space-between;\n  -moz-justify-content: space-between;\n  -ms-justify-content: space-between;\n  -webkit-align-items: flex-start;\n  -moz-align-items: flex-start;\n  -ms-align-items: flex-start;\n  justify-content: space-between;\n  align-items: flex-start;\n  -webkit-flex-wrap: wrap;\n  -ms-flex-wrap: wrap;\n  -webkit-flex-direction: row;\n  -ms-flex-direction: row;\n  -webkit-flex-flow: row wrap;\n}\n\n.dynamic-block.multiple-images figure {\n  width: 47.72727273%;\n}\n\n.dynamic-block.multiple-images figure img {\n  width: 100%;\n  display: none;\n}\n\n.dynamic-block.multiple-images figure img.medium {\n  display: none;\n}\n\n@media screen and (max-width: 1100px) {\n  .dynamic-block.multiple-images figure img.large {\n    display: none;\n  }\n  .dynamic-block.multiple-images figure img.medium {\n    display: block;\n  }\n}\n\n@media screen and (max-width: 480px) {\n  .dynamic-block.multiple-images figure img.large {\n    display: none;\n  }\n  .dynamic-block.multiple-images figure img.medium {\n    display: block;\n  }\n}\n\n.dynamic-block.multiple-images[data-size-type='50'] figure img.medium {\n  display: block;\n}\n\n@media screen and (max-width: 1125px) {\n  .dynamic-block.multiple-images[data-size-type='50'] figure img.medium {\n    display: none;\n  }\n  .dynamic-block.multiple-images[data-size-type='50'] figure img.small {\n    display: block;\n  }\n}\n\n@media screen and (max-width: 900px) {\n  .dynamic-block.multiple-images {\n    display: block;\n  }\n  .dynamic-block.multiple-images figure {\n    width: 100%;\n  }\n  .dynamic-block.multiple-images figure:first-of-type {\n    margin-bottom: 40px;\n  }\n  .dynamic-block.multiple-images figure img.medium {\n    display: block !important;\n  }\n  .dynamic-block.multiple-images figure img.small {\n    display: none !important;\n  }\n}\n\n@media screen and (max-width: 900px) and (max-width: 525px) {\n  .dynamic-block.multiple-images figure img.medium {\n    display: none;\n  }\n  .dynamic-block.multiple-images figure img.small {\n    display: block;\n  }\n}\n\n.dynamic-block.full-text-block .content {\n  max-width: 680px;\n  margin: auto;\n  text-align: center;\n}\n\n.dynamic-block.video-block {\n  width: 100%;\n  max-width: 960px;\n  margin: 60px auto 0 !important;\n}\n\n.dynamic-block.video-block .video-wrapper {\n  position: relative;\n  padding-bottom: 53.6%;\n  padding-top: 25px;\n  height: 0;\n}\n\n.dynamic-block.video-block .video-wrapper iframe, .dynamic-block.video-block .video-wrapper .video-overlay {\n  position: absolute;\n  top: 0;\n  left: 0;\n  width: 100%;\n  height: 100%;\n}\n\n.dynamic-block.video-block .video-wrapper .video-overlay {\n  z-index: 2;\n  display: -ms-flexbox;\n  display: -webkit-flex;\n  display: flex;\n  -webkit-justify-content: center;\n  -moz-justify-content: center;\n  -ms-justify-content: center;\n  -webkit-align-items: center;\n  -moz-align-items: center;\n  -ms-align-items: center;\n  justify-content: center;\n  align-items: center;\n  opacity: 1;\n  cursor: pointer;\n  transition: all 0.2s;\n}\n\n.dynamic-block.video-block .video-wrapper .video-overlay .button {\n  width: 25%;\n  max-width: 85px;\n  transform: scale(1);\n  transition: all 0.4s;\n}\n\n.dynamic-block.video-block .video-wrapper .video-overlay .button img {\n  width: 100%;\n}\n\n.dynamic-block.video-block .video-wrapper .video-overlay:hover .button {\n  -webkit-transform: scale(0.85);\n  -moz-transform: scale(0.85);\n  -ms-transform: scale(0.85);\n  -o-transform: scale(0.85);\n  transform: scale(0.85);\n}\n\n.dynamic-block.video-block .video-wrapper .video-overlay.hide {\n  opacity: 0;\n  pointer-events: none;\n  transition: all 0.5s;\n  transition-delay: 0.7s;\n}\n\n.dynamic-block.video-block .video-wrapper .video-overlay.hide .button {\n  transition: all 0.8s;\n  transform: scale(0.3);\n}\n\n@media screen and (max-width: 750px) {\n  .preventScroll {\n    overflow: hidden;\n    overflow-y: scroll;\n    position: fixed;\n    width: 100%;\n  }\n}\n\n#mobile-navigation {\n  position: fixed;\n  z-index: 1000;\n  height: 100vh;\n  overflow: hidden;\n  width: 100%;\n  left: 0;\n  top: 0;\n  pointer-events: none;\n}\n\n#mobile-navigation .bar {\n  display: none;\n  height: 60px;\n  background-color: #4A90E2;\n  box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.11);\n  pointer-events: all;\n  position: relative;\n  z-index: 4;\n  transform: translate3d(0, 0, 0);\n  transition: all 0.3s;\n  transition-delay: 0.4s;\n}\n\n#mobile-navigation .bar .toggle-menu {\n  width: 60px;\n  height: 100%;\n  z-index: 3;\n  cursor: pointer;\n  position: relative;\n  display: -ms-flexbox;\n  display: -webkit-flex;\n  display: flex;\n  -webkit-justify-content: center;\n  -moz-justify-content: center;\n  -ms-justify-content: center;\n  -webkit-align-items: center;\n  -moz-align-items: center;\n  -ms-align-items: center;\n  justify-content: center;\n  align-items: center;\n}\n\n#mobile-navigation .bar .toggle-menu .icon {\n  width: 20px;\n}\n\n#mobile-navigation .bar .toggle-menu .icon span + span {\n  margin-top: 4px;\n}\n\n#mobile-navigation .bar .toggle-menu .icon span {\n  width: 100%;\n  height: 2px;\n  display: block;\n  transform: scale3d(1, 1, 1);\n  transform-origin: 0 50%;\n  background-color: white;\n  transition: transform 0.6s;\n}\n\n#mobile-navigation .bar .toggle-menu .icon span:nth-of-type(2) {\n  transform: scale3d(0.8, 1, 1);\n}\n\n#mobile-navigation .bar .toggle-menu .icon span:nth-of-type(3) {\n  transform: scale3d(0.45, 1, 1);\n}\n\n#mobile-navigation .bar .toggle-menu:hover .icon span {\n  transform: scale3d(1, 1, 1) !important;\n}\n\n#mobile-navigation .bar .logo {\n  height: 100%;\n  width: 100%;\n  position: absolute;\n  left: 0;\n  top: 0;\n  display: -ms-flexbox;\n  display: -webkit-flex;\n  display: flex;\n  -webkit-justify-content: center;\n  -moz-justify-content: center;\n  -ms-justify-content: center;\n  -webkit-align-items: center;\n  -moz-align-items: center;\n  -ms-align-items: center;\n  justify-content: center;\n  align-items: center;\n}\n\n#mobile-navigation .bar .logo a {\n  position: relative;\n  top: 3px;\n  display: block;\n  width: 150px;\n  max-height: 25px;\n  background-position: center;\n  background-size: contain;\n  background-repeat: no-repeat;\n}\n\n#mobile-navigation .bar .logo a img {\n  width: 100%;\n  max-height: 25px;\n}\n\n#mobile-navigation .shader {\n  width: 100%;\n  height: 100%;\n  position: absolute;\n  left: 0;\n  top: 0;\n  background-color: #4A90E2;\n  opacity: 0;\n  transition-delay: 0.4s;\n}\n\n#mobile-navigation .menu {\n  position: absolute;\n  left: 0;\n  top: 0;\n  height: 100%;\n  width: 100%;\n  max-width: 600px;\n  min-width: 275px;\n  padding: 70px 120px;\n  background-color: white;\n  overflow-x: auto;\n  pointer-events: all;\n  z-index: 5;\n  transform: translate3d(-100%, 0, 0);\n}\n\n#mobile-navigation .menu nav {\n  position: relative;\n}\n\n#mobile-navigation .menu nav .close {\n  position: absolute;\n  top: 10px;\n  left: -68px;\n  display: block;\n  width: 16px;\n  height: 16px;\n  cursor: pointer;\n  transform-origin: center;\n  transform: rotate(0deg);\n  transition: transform 0.4s;\n}\n\n#mobile-navigation .menu nav .close:hover {\n  transform: rotate(90deg);\n}\n\n#mobile-navigation .menu nav .close:hover:before, #mobile-navigation .menu nav .close:hover:after {\n  background-color: rgba(29, 36, 51, 0.4);\n}\n\n#mobile-navigation .menu nav .close:before, #mobile-navigation .menu nav .close:after {\n  content: '';\n  position: absolute;\n  display: block;\n  background-color: #1D2433;\n  transform-origin: center;\n  transform: rotate(45deg);\n  transition: background-color 0.3s;\n}\n\n#mobile-navigation .menu nav .close:before {\n  left: 7px;\n  top: 0;\n  width: 2px;\n  height: 100%;\n}\n\n#mobile-navigation .menu nav .close:after {\n  left: 0;\n  top: 7px;\n  width: 100%;\n  height: 2px;\n}\n\n#mobile-navigation .menu nav .logo-wrapper {\n  width: 100%;\n  max-width: 250px;\n}\n\n#mobile-navigation .menu nav .logo-wrapper a {\n  display: block;\n  text-decoration: none;\n}\n\n#mobile-navigation .menu nav .logo-wrapper a img {\n  width: 100%;\n  max-height: 36px;\n}\n\n#mobile-navigation .menu nav .menu-list {\n  margin-top: 40px;\n}\n\n#mobile-navigation .menu nav .menu-list ul {\n  margin: 0;\n  padding: 0;\n  list-style: none;\n  font-size: 1rem;\n  line-height: 1.2;\n}\n\n#mobile-navigation .menu nav .menu-list ul + ul {\n  margin-top: 24px;\n}\n\n#mobile-navigation .menu nav .menu-list ul li a {\n  display: block;\n  padding: 8px 0;\n  color: #1D2433;\n  text-decoration: none;\n  transition: color 0.2s;\n  cursor: pointer;\n}\n\n#mobile-navigation .menu nav .menu-list ul li a:hover {\n  color: rgba(29, 36, 51, 0.7);\n}\n\n#mobile-navigation .menu nav .menu-list ul li ul {\n  font-size: 0.85em;\n}\n\n#mobile-navigation .menu nav .menu-list ul li.active a {\n  color: #4A90E2;\n}\n\n#mobile-navigation.active .bar .toggle-menu .icon span {\n  opacity: 0;\n  transition-delay: 0.4s;\n}\n\n#mobile-navigation.active .bar .toggle-menu .icon span:first-of-type {\n  -webkit-transform: rotate(45deg);\n  -moz-transform: rotate(45deg);\n  -ms-transform: rotate(45deg);\n  -o-transform: rotate(45deg);\n  transform: rotate(45deg);\n  opacity: 1;\n  top: 6px;\n}\n\n#mobile-navigation.active .bar .toggle-menu .icon span:last-of-type {\n  width: 25px;\n  opacity: 1;\n  bottom: 6px;\n  -webkit-transform: rotate(-45deg);\n  -moz-transform: rotate(-45deg);\n  -ms-transform: rotate(-45deg);\n  -o-transform: rotate(-45deg);\n  transform: rotate(-45deg);\n}\n\n#mobile-navigation.active .menu {\n  transform: translate3d(0, 0, 0);\n}\n\n#mobile-navigation.shader-active .shader {\n  opacity: 0.6;\n  pointer-events: all;\n}\n\n#mobile-navigation.allow-animation .shader {\n  transition: all 0.2s;\n}\n\n#mobile-navigation.allow-animation .menu {\n  transition: all 0.3s;\n  transition-timing-function: ease-in-out;\n}\n\n@media screen and (max-width: 750px) {\n  #mobile-navigation {\n    display: block;\n  }\n  #mobile-navigation .bar {\n    display: block;\n  }\n  #mobile-navigation .menu {\n    max-width: none;\n  }\n}\n\n@media screen and (max-width: 400px) {\n  #mobile-navigation nav {\n    padding-left: 30px;\n  }\n  #mobile-navigation nav ul {\n    font-size: 1.2rem;\n  }\n}\n\n.mobile-contact {\n  display: none;\n  opacity: 0;\n  transform: translate3d(0, -100%, 0);\n  padding: 50px 7.14285714%;\n  background-color: white;\n  color: #1D2433;\n  font-size: 0.9rem;\n  transition: opacity 0.4s, transform 0.4s;\n}\n\n.mobile-contact.active {\n  transform: translate3d(0, 0, 0);\n  opacity: 1;\n  pointer-events: all;\n}\n\n.mobile-contact h1, .mobile-contact h2 {\n  font-size: 2rem;\n  line-height: 1.2;\n  max-width: 580px;\n  color: #0032FF;\n  margin: 0 0 40px;\n}\n\n.mobile-contact p {\n  margin: 1rem 0;\n}\n\n.mobile-contact strong {\n  color: #1D2433;\n}\n\n.mobile-contact a:not(.button) {\n  color: #4A90E2;\n  text-decoration: none;\n  transition: color 0.3s, border 0.3s, opacity 0.3s;\n}\n\n.mobile-contact a:not(.button):hover {\n  color: #1f69c1;\n}\n\n.mobile-contact a.button {\n  display: inline-block;\n  margin-top: 20px;\n  padding: 15px 20px;\n  border-radius: 25px;\n  background-color: #4A90E2;\n  text-decoration: none;\n  font-size: 0.9rem;\n  line-height: 1;\n  font-weight: 700;\n  color: white;\n  transition: background-color 0.3s;\n}\n\n.mobile-contact a.button:after {\n  content: '';\n  margin-left: 20px;\n  transform: translate3d(0, 0, 0);\n  transition: transform 0.3s;\n}\n\n.mobile-contact a.button:hover {\n  background-color: #0032FF;\n}\n\n.mobile-contact a.button:hover:after {\n  transform: translate3d(5px, 0, 0);\n}\n\n@media screen and (max-width: 840px) {\n  .mobile-contact {\n    display: block;\n  }\n}\n\n#sticky-navigation {\n  position: fixed;\n  top: 0;\n  left: 0;\n  z-index: 50;\n  background-color: #4A90E2;\n  width: 100%;\n  height: 60px;\n  transform: translate3d(0, -60px, 0);\n  box-shadow: 0 6px 10px -5px rgba(0, 0, 0, 0.1);\n  opacity: 0;\n  transition: transform 0.4s, opacity 0.4s;\n}\n\n#sticky-navigation.active {\n  transform: translate3d(0, 0, 0);\n  opacity: 1;\n}\n\n#sticky-navigation .grid-row {\n  display: -ms-flexbox;\n  display: -webkit-flex;\n  display: flex;\n  -webkit-justify-content: space-between;\n  -moz-justify-content: space-between;\n  -ms-justify-content: space-between;\n  -webkit-align-items: center;\n  -moz-align-items: center;\n  -ms-align-items: center;\n  justify-content: space-between;\n  align-items: center;\n}\n\n#sticky-navigation .menu {\n  display: inline-block;\n  width: 60px;\n}\n\n#sticky-navigation .menu .placeholder {\n  position: relative;\n  width: 100%;\n  padding-bottom: 100%;\n}\n\n#sticky-navigation .menu .placeholder .icon-placeholder {\n  position: absolute;\n  left: 0;\n  top: 0;\n  width: 100%;\n  height: 100%;\n  display: -ms-flexbox;\n  display: -webkit-flex;\n  display: flex;\n  -webkit-justify-content: center;\n  -moz-justify-content: center;\n  -ms-justify-content: center;\n  -webkit-align-items: center;\n  -moz-align-items: center;\n  -ms-align-items: center;\n  justify-content: center;\n  align-items: center;\n  cursor: pointer;\n}\n\n#sticky-navigation .menu .placeholder .icon-placeholder .icon {\n  width: 20px;\n}\n\n#sticky-navigation .menu .placeholder .icon-placeholder .icon span + span {\n  margin-top: 4px;\n}\n\n#sticky-navigation .menu .placeholder .icon-placeholder .icon span {\n  width: 100%;\n  height: 2px;\n  display: block;\n  transform: scale3d(1, 1, 1);\n  transform-origin: 0 50%;\n  background-color: white;\n  transition: transform 0.6s;\n}\n\n#sticky-navigation .menu .placeholder .icon-placeholder .icon span:nth-of-type(2) {\n  transform: scale3d(0.8, 1, 1);\n}\n\n#sticky-navigation .menu .placeholder .icon-placeholder .icon span:nth-of-type(3) {\n  transform: scale3d(0.45, 1, 1);\n}\n\n#sticky-navigation .menu .placeholder .icon-placeholder:hover .icon span {\n  transform: scale3d(1, 1, 1) !important;\n}\n\n#sticky-navigation .logo-wrapper a {\n  font-size: 1rem;\n  line-height: 1;\n  color: white;\n  text-decoration: none;\n  font-weight: bold;\n}\n\n/* ==========================================================================\n   Home page\n   @mixin ========================================================================= */\n/*==========================================================================\n  News overview page\n  @mixin ========================================================================= */\n/*==========================================================================\n  News detail page\n  @mixin ========================================================================= */\n/*==========================================================================\n  Contact page\n  @mixin ========================================================================= */\n#error-page-message {\n  padding: 100px 0 100px;\n  background-color: #979797;\n}\n\n#error-page-message .grid-row .kms-content {\n  width: 100%;\n  text-align: center;\n}\n\n#error-page-message .grid-row .placeholder {\n  max-width: 720px;\n  margin: auto;\n}\n\n/*==========================================================================\n  Sitemap page\n  @mixin ========================================================================= */\n.sitemap ul {\n  padding-left: 40px;\n  padding-bottom: 20px;\n  font-size: 0.85em;\n}\n\n.sitemap > ul {\n  padding-left: 20px;\n}\n\n.sitemap li:before {\n  top: 6px;\n}\n\n.sitemap li a {\n  padding: 3px 0;\n  border-bottom-color: transparent;\n  border-bottom-style: dotted;\n  display: block;\n}\n\n.sitemap li a:hover {\n  border-bottom-color: rgba(29, 36, 51, 0.4);\n}\n\n.shopping-cart {\n  margin-bottom: 40px;\n}\n\n.shopping-cart-row {\n  margin-top: 40px;\n}\n\n.shopping-cart-row .shopping-cart-content {\n  display: inline-block;\n  vertical-align: top;\n  width: calc(100% - 240px);\n  background-color: white;\n}\n\n.shopping-cart-row .shopping-cart-content h2 {\n  margin: 0;\n  padding: 8px 10px;\n  background: linear-gradient(180deg, #141414 0%, #373737 30.81%, #404040 52.15%, #3A3A3A 80.54%, #272727 100%);\n  font-size: 0.6rem;\n  line-height: 1.4;\n  text-transform: uppercase;\n  font-family: 'Avenir LT W02 95 Black', sans-serif;\n  font-weight: 400;\n  color: white;\n}\n\n.shopping-cart-row .shopping-cart-content .no-items {\n  padding: 20px 20px;\n  font-family: 'Avenir LT W02 95 Black', sans-serif;\n  font-weight: 400;\n  font-size: 0.9rem;\n  line-height: 1.4;\n  text-align: center;\n  color: black;\n}\n\n.shopping-cart-row .shopping-cart-content .buttons {\n  border-top: 2px solid rgba(190, 180, 181, 0.5);\n  display: -ms-flexbox;\n  display: -webkit-flex;\n  display: flex;\n  -webkit-justify-content: flex-end;\n  -moz-justify-content: flex-end;\n  -ms-justify-content: flex-end;\n  -webkit-align-items: center;\n  -moz-align-items: center;\n  -ms-align-items: center;\n  justify-content: flex-end;\n  align-items: center;\n  padding: 25px 20px;\n}\n\n.shopping-cart-row .shopping-cart-content .buttons .button {\n  display: inline-block;\n  padding: 10px 15px;\n  border-radius: 8px;\n  font-size: 0.7rem;\n  line-height: 1.4;\n  text-transform: uppercase;\n  font-family: 'Avenir LT W02 95 Black', sans-serif;\n  font-weight: 400;\n}\n\n.shopping-cart-row .shopping-cart-content .buttons .button + .button {\n  margin-left: 20px;\n}\n\n.shopping-cart-row .shopping-cart-content .buttons .button.continue-shopping {\n  border: 1px solid rgba(20, 20, 20, 0.2);\n  background-color: transparent;\n  color: #141414;\n}\n\n.shopping-cart-row .shopping-cart-content .buttons .button.continue-shopping span {\n  position: relative;\n  top: 1px;\n  display: inline-block;\n  background: url(\"/img/spire_sprite.svg\") -170px -56px no-repeat;\n  background-size: 212px 82px;\n  width: 13px;\n  height: 13px;\n  margin-right: 5px;\n  transform: translate3d(0, 0, 0);\n  transition: transform 0.3s;\n}\n\n.shopping-cart-row .shopping-cart-content .buttons .button.continue-shopping:hover span {\n  transform: translate3d(-5px, 0, 0);\n}\n\n.shopping-cart-row .shopping-cart-content .buttons .button.checkout {\n  position: relative;\n  z-index: 2;\n  background-color: transparent;\n}\n\n.shopping-cart-row .shopping-cart-content .buttons .button.checkout:before, .shopping-cart-row .shopping-cart-content .buttons .button.checkout:after {\n  content: '';\n  position: absolute;\n  z-index: -1;\n  left: 0;\n  top: 0;\n  display: block;\n  width: 100%;\n  height: 100%;\n  border-radius: 8px;\n  transition: opacity 0.3s;\n}\n\n.shopping-cart-row .shopping-cart-content .buttons .button.checkout:before {\n  opacity: 1;\n  background: linear-gradient(to bottom, #e20a17 0%, #e20a17 50%, #9d050d 51%, #9d050d 100%);\n}\n\n.shopping-cart-row .shopping-cart-content .buttons .button.checkout:after {\n  opacity: 0;\n  background: linear-gradient(to bottom, #757575 0%, #757575 50%, #515151 51%, #515151 100%);\n}\n\n.shopping-cart-row .shopping-cart-content .buttons .button.checkout span {\n  position: relative;\n  top: 1px;\n  display: inline-block;\n  background: url(\"/img/spire_sprite.svg\") -170px -44px no-repeat;\n  background-size: 212px 82px;\n  width: 13px;\n  height: 13px;\n  margin-left: 5px;\n  transform: translate3d(0, 0, 0) rotate(180deg);\n  transition: transform 0.3s;\n}\n\n.shopping-cart-row .shopping-cart-content .buttons .button.checkout:hover:after {\n  opacity: 1;\n}\n\n.shopping-cart-row .shopping-cart-content .buttons .button.checkout:hover span {\n  transform: translate3d(5px, 0, 0) rotate(180deg);\n}\n\n.shopping-cart-row .shopping-cart-content .items article {\n  position: relative;\n  font-size: 0.9rem;\n  line-height: 1.4;\n  color: #BEB4B5;\n  padding: 20px 50px 20px 20px;\n  display: -ms-flexbox;\n  display: -webkit-flex;\n  display: flex;\n  -webkit-justify-content: space-between;\n  -moz-justify-content: space-between;\n  -ms-justify-content: space-between;\n  -webkit-align-items: center;\n  -moz-align-items: center;\n  -ms-align-items: center;\n  justify-content: space-between;\n  align-items: center;\n}\n\n.shopping-cart-row .shopping-cart-content .items article + article {\n  border-top: 2px solid rgba(190, 180, 181, 0.5);\n}\n\n.shopping-cart-row .shopping-cart-content .items article figure {\n  position: relative;\n  width: 120px;\n  height: 120px;\n}\n\n.shopping-cart-row .shopping-cart-content .items article figure span {\n  position: absolute;\n  left: 0;\n  top: 0;\n  width: 100%;\n  height: 100%;\n  background-size: contain;\n  background-repeat: no-repeat;\n  background-position: center;\n}\n\n.shopping-cart-row .shopping-cart-content .items article .information {\n  width: calc(100% - 120px - 70px - 140px);\n  padding: 0 20px;\n}\n\n.shopping-cart-row .shopping-cart-content .items article .information h3 {\n  margin: 0;\n  color: black;\n  font-size: 0.9rem;\n  line-height: 1.4;\n  font-family: 'Avenir LT W02 95 Black', sans-serif;\n  font-weight: 400;\n}\n\n.shopping-cart-row .shopping-cart-content .items article .information p {\n  margin: 0 0 5px;\n  text-transform: uppercase;\n  color: #AEAEAE;\n  font-size: 0.6rem;\n  line-height: 1.4;\n  font-family: 'Avenir LT W02 95 Black', sans-serif;\n  font-weight: 400;\n}\n\n.shopping-cart-row .shopping-cart-content .items article .information a {\n  color: #E50000;\n  font-size: 0.6rem;\n  line-height: 1.4;\n}\n\n.shopping-cart-row .shopping-cart-content .items article .units {\n  position: relative;\n  width: 70px;\n}\n\n.shopping-cart-row .shopping-cart-content .items article .units input {\n  -webkit-appearance: none;\n  -moz-appearance: none;\n  -ms-appearance: none;\n  -o-appearance: none;\n  appearance: none;\n  width: 40px;\n  height: 40px;\n  display: -ms-flexbox;\n  display: -webkit-flex;\n  display: flex;\n  -webkit-justify-content: center;\n  -moz-justify-content: center;\n  -ms-justify-content: center;\n  -webkit-align-items: center;\n  -moz-align-items: center;\n  -ms-align-items: center;\n  justify-content: center;\n  align-items: center;\n  padding: 5px;\n  background-color: transparent;\n  border: 1px solid rgba(190, 180, 181, 0.5);\n  font-size: 0.65rem;\n  line-height: 1.2;\n  text-align: center;\n  color: black;\n}\n\n.shopping-cart-row .shopping-cart-content .items article .units input:-webkit-autofill, .shopping-cart-row .shopping-cart-content .items article .units input:-webkit-autofill:hover, .shopping-cart-row .shopping-cart-content .items article .units input:-webkit-autofill:focus, .shopping-cart-row .shopping-cart-content .items article .units input:-webkit-autofill:active {\n  transition: 9999s background-color;\n  -webkit-text-fill-color: #999192;\n  transition-delay: 9999s;\n}\n\n.shopping-cart-row .shopping-cart-content .items article .units input:focus {\n  outline-color: #AEAEAE;\n}\n\n.shopping-cart-row .shopping-cart-content .items article .units .changer {\n  position: absolute;\n  right: 0;\n  display: -ms-flexbox;\n  display: -webkit-flex;\n  display: flex;\n  -webkit-justify-content: center;\n  -moz-justify-content: center;\n  -ms-justify-content: center;\n  -webkit-align-items: center;\n  -moz-align-items: center;\n  -ms-align-items: center;\n  justify-content: center;\n  align-items: center;\n  height: 20px;\n  width: 30px;\n  background-color: #757575;\n  color: white;\n  font-size: 0.8rem;\n  line-height: 1.2;\n  font-family: 'Avenir LT W02 95 Black', sans-serif;\n  font-weight: 400;\n  cursor: pointer;\n  opacity: 1;\n  transition: opacity 0.3s;\n}\n\n.shopping-cart-row .shopping-cart-content .items article .units .changer:hover {\n  opacity: 0.8;\n}\n\n.shopping-cart-row .shopping-cart-content .items article .units .changer.increment {\n  top: 0;\n  background-color: #141414;\n}\n\n.shopping-cart-row .shopping-cart-content .items article .units .changer.increment:before {\n  content: '+';\n}\n\n.shopping-cart-row .shopping-cart-content .items article .units .changer.decrement {\n  bottom: 0;\n  font-size: 1.2rem;\n  line-height: 1;\n  background-color: #757575;\n}\n\n.shopping-cart-row .shopping-cart-content .items article .units .changer.decrement:before {\n  position: relative;\n  top: -1px;\n  content: '-';\n}\n\n.shopping-cart-row .shopping-cart-content .items article .price {\n  margin: 0;\n  display: block;\n  width: 140px;\n  color: black;\n  font-size: 0.9rem;\n  line-height: 1.4;\n  font-family: 'Avenir LT W02 95 Black', sans-serif;\n  font-weight: 400;\n  text-align: right;\n}\n\n.shopping-cart-row .shopping-cart-content .items article .remove {\n  position: absolute;\n  right: 20px;\n  top: 20px;\n  display: block;\n  cursor: pointer;\n  width: 13px;\n  height: 13px;\n}\n\n.shopping-cart-row .shopping-cart-content .items article .remove:before {\n  content: '';\n  display: block;\n  background: url(\"/img/spire_sprite.svg\") -170px -19px no-repeat;\n  background-size: 212px 82px;\n  width: 13px;\n  height: 13px;\n}\n\n.shopping-cart-row .shopping-cart-summary {\n  width: 220px;\n  margin-left: 20px;\n  display: inline-block;\n  vertical-align: top;\n}\n\n.shopping-cart-row .shopping-cart-summary h2 {\n  margin: 0;\n  padding: 8px 10px;\n  background: linear-gradient(180deg, #141414 0%, #373737 30.81%, #404040 52.15%, #3A3A3A 80.54%, #272727 100%);\n  font-size: 0.6rem;\n  line-height: 1.4;\n  text-transform: uppercase;\n  font-family: 'Avenir LT W02 95 Black', sans-serif;\n  font-weight: 400;\n  color: white;\n}\n\n.shopping-cart-row .shopping-cart-summary > img {\n  width: 100%;\n}\n\n.shopping-cart-row .shopping-cart-summary .box-container {\n  padding: 30px 30px 100px 45px;\n  background-color: white;\n  background-image: url(\"/img/boxBg.svg\");\n  background-size: contain;\n  background-repeat: repeat-y;\n}\n\n.shopping-cart-row .shopping-cart-summary h4 {\n  color: #E50000;\n  font-size: 0.65rem;\n  line-height: 1.4;\n  font-family: 'Avenir LT W02 95 Black', sans-serif;\n  font-weight: 400;\n  margin: 0 0 10px;\n}\n\n.shopping-cart-row .shopping-cart-summary .shopping-cart-amount {\n  margin: 0 0 10px;\n  color: black;\n  font-size: 0.9rem;\n  line-height: 1.4;\n  font-family: 'Avenir LT W02 95 Black', sans-serif;\n  font-weight: 400;\n}\n\n.shopping-cart-row .shopping-cart-summary .pricing {\n  padding: 0;\n  margin: 0 0 25px;\n}\n\n.shopping-cart-row .shopping-cart-summary .pricing p {\n  margin: 0 0 10px;\n  position: relative;\n  display: -ms-flexbox;\n  display: -webkit-flex;\n  display: flex;\n  -webkit-justify-content: space-between;\n  -moz-justify-content: space-between;\n  -ms-justify-content: space-between;\n  -webkit-align-items: center;\n  -moz-align-items: center;\n  -ms-align-items: center;\n  justify-content: space-between;\n  align-items: center;\n  font-size: 0.75rem;\n  line-height: 1.4;\n  color: black;\n}\n\n.shopping-cart-row .shopping-cart-summary .pricing p.hidden {\n  display: none;\n}\n\n.shopping-cart-row .shopping-cart-summary .pricing p strong {\n  font-size: 0.6rem;\n  text-transform: uppercase;\n  font-family: 'Avenir LT W02 95 Black', sans-serif;\n  font-weight: 400;\n}\n\n.shopping-cart-row .shopping-cart-summary .pricing p.shipping-cost strong .selected-country:before {\n  content: attr(data-shipping-country);\n  text-decoration: underline;\n}\n\n.shopping-cart-row .shopping-cart-summary .pricing .no-shipping-defined {\n  position: relative;\n  margin-top: 20px;\n  text-decoration: underline;\n  cursor: pointer;\n}\n\n.shopping-cart-row .shopping-cart-summary .pricing .no-shipping-defined p {\n  margin: 0;\n}\n\n.shopping-cart-row .shopping-cart-summary .pricing .shipping-country-pop-up {\n  position: absolute;\n  z-index: -1;\n  width: 200px;\n  height: 105px;\n  right: -20px;\n  top: -120px;\n  padding: 0 15px 15px;\n  background-color: #f2f2f2;\n  font-size: 0.7rem;\n  line-height: 1.4;\n  color: black;\n  opacity: 0;\n  pointer-events: none;\n  box-shadow: 0 5px 10px 0 rgba(0, 0, 0, 0.3);\n  transform: translate3d(0, 10px, 0);\n  transition: opacity 0.3s, transform 0.3s, z-index 0s ease 0.3s;\n}\n\n.shopping-cart-row .shopping-cart-summary .pricing .shipping-country-pop-up:after {\n  content: '';\n  position: absolute;\n  top: 105px;\n  left: calc(50% - 8px);\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 8px 8px 0 8px;\n  border-color: #f2f2f2 transparent transparent transparent;\n}\n\n.shopping-cart-row .shopping-cart-summary .pricing .shipping-country-pop-up.show {\n  z-index: 4;\n  pointer-events: all;\n  opacity: 1;\n  transform: translate3d(0, 0, 0);\n  transition: opacity 0.3s, transform 0.3s, z-index 0s ease 0s;\n}\n\n.shopping-cart-row .shopping-cart-summary .pricing .shipping-country-pop-up.select-opened {\n  height: 355px;\n}\n\n.shopping-cart-row .shopping-cart-summary .pricing .shipping-country-pop-up > p {\n  display: block;\n  padding: 15px 0 10px;\n  font-size: 0.55rem;\n  text-transform: uppercase;\n  color: black;\n  font-family: 'Avenir LT W02 95 Black', sans-serif;\n  font-weight: 400;\n  text-align: center;\n}\n\n.shopping-cart-row .shopping-cart-summary .pricing .shipping-country-pop-up .selectr-option.active {\n  background-color: #282828;\n  color: white;\n  font-family: 'Avenir LT W02 95 Black', sans-serif;\n  font-weight: 400;\n}\n\n.shopping-cart-row .shopping-cart-summary .checkout {\n  position: relative;\n  z-index: 2;\n  display: inline-block;\n  padding: 10px 15px;\n  background-color: transparent;\n  border-radius: 8px;\n  font-size: 0.7rem;\n  line-height: 1.4;\n  text-transform: uppercase;\n  font-family: 'Avenir LT W02 95 Black', sans-serif;\n  font-weight: 400;\n}\n\n.shopping-cart-row .shopping-cart-summary .checkout:before, .shopping-cart-row .shopping-cart-summary .checkout:after {\n  content: '';\n  position: absolute;\n  z-index: -1;\n  left: 0;\n  top: 0;\n  display: block;\n  width: 100%;\n  height: 100%;\n  border-radius: 8px;\n  transition: opacity 0.3s;\n}\n\n.shopping-cart-row .shopping-cart-summary .checkout:before {\n  opacity: 1;\n  background: linear-gradient(to bottom, #e20a17 0%, #e20a17 50%, #9d050d 51%, #9d050d 100%);\n}\n\n.shopping-cart-row .shopping-cart-summary .checkout:after {\n  opacity: 0;\n  background: linear-gradient(to bottom, #757575 0%, #757575 50%, #515151 51%, #515151 100%);\n}\n\n.shopping-cart-row .shopping-cart-summary .checkout span {\n  position: relative;\n  top: 1px;\n  display: inline-block;\n  background: url(\"/img/spire_sprite.svg\") -170px -44px no-repeat;\n  background-size: 212px 82px;\n  width: 13px;\n  height: 13px;\n  margin-left: 17px;\n  transform: translate3d(0, 0, 0) rotate(180deg);\n  transition: transform 0.3s;\n}\n\n.shopping-cart-row .shopping-cart-summary .checkout:hover:after {\n  opacity: 1;\n}\n\n.shopping-cart-row .shopping-cart-summary .checkout:hover span {\n  transform: translate3d(5px, 0, 0) rotate(180deg);\n}\n\n.shopping-cart-row .shopping-cart-summary .pay-off {\n  margin: 40px 0 0;\n  margin-top: 50px;\n  font-size: 0.65rem;\n  line-height: 1.4;\n  color: #E50000;\n  text-transform: uppercase;\n  font-family: 'Avenir LT W02 95 Black', sans-serif;\n  font-weight: 400;\n}\n\n.shopping-cart-row .shopping-cart-summary .pay-off a {\n  color: #E50000;\n  transition: color 0.3s;\n}\n\n.shopping-cart-row .shopping-cart-summary .pay-off a:hover {\n  color: black;\n}\n\n.shopping-cart-row .shopping-cart-summary .links {\n  margin-top: 20px;\n}\n\n.shopping-cart-row .shopping-cart-summary .links a {\n  font-size: 0.7rem;\n  line-height: 1.4;\n  color: black;\n  text-decoration: none;\n  transition: color 0.3s;\n}\n\n.shopping-cart-row .shopping-cart-summary .links a:hover {\n  color: rgba(0, 0, 0, 0.6);\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJlc291cmNlcy9hc3NldHMvc2Fzcy9zaXRlL3N0eWxlLnNhc3MiLCJyZXNvdXJjZXMvYXNzZXRzL3Nhc3MvZ2xvYmFsL19nbG9iYWwuc2FzcyIsInJlc291cmNlcy9hc3NldHMvc2Fzcy9nbG9iYWwvX2NvbmZpZy5zYXNzIiwicmVzb3VyY2VzL2Fzc2V0cy9zYXNzL2dsb2JhbC9ib3VyYm9uL19ib3VyYm9uLnNjc3MiLCJyZXNvdXJjZXMvYXNzZXRzL3Nhc3MvZ2xvYmFsL2JvdXJib24vc2V0dGluZ3MvX3ByZWZpeGVyLnNjc3MiLCJyZXNvdXJjZXMvYXNzZXRzL3Nhc3MvZ2xvYmFsL2JvdXJib24vc2V0dGluZ3MvX3B4LXRvLWVtLnNjc3MiLCJyZXNvdXJjZXMvYXNzZXRzL3Nhc3MvZ2xvYmFsL2JvdXJib24vc2V0dGluZ3MvX2Fzc2V0LXBpcGVsaW5lLnNjc3MiLCJyZXNvdXJjZXMvYXNzZXRzL3Nhc3MvZ2xvYmFsL2JvdXJib24vaGVscGVycy9fY29udmVydC11bml0cy5zY3NzIiwicmVzb3VyY2VzL2Fzc2V0cy9zYXNzL2dsb2JhbC9ib3VyYm9uL2hlbHBlcnMvX2ZvbnQtc291cmNlLWRlY2xhcmF0aW9uLnNjc3MiLCJyZXNvdXJjZXMvYXNzZXRzL3Nhc3MvZ2xvYmFsL2JvdXJib24vaGVscGVycy9fZ3JhZGllbnQtcG9zaXRpb25zLXBhcnNlci5zY3NzIiwicmVzb3VyY2VzL2Fzc2V0cy9zYXNzL2dsb2JhbC9ib3VyYm9uL2hlbHBlcnMvX2lzLW51bS5zY3NzIiwicmVzb3VyY2VzL2Fzc2V0cy9zYXNzL2dsb2JhbC9ib3VyYm9uL2hlbHBlcnMvX2xpbmVhci1hbmdsZS1wYXJzZXIuc2NzcyIsInJlc291cmNlcy9hc3NldHMvc2Fzcy9nbG9iYWwvYm91cmJvbi9oZWxwZXJzL19saW5lYXItZ3JhZGllbnQtcGFyc2VyLnNjc3MiLCJyZXNvdXJjZXMvYXNzZXRzL3Nhc3MvZ2xvYmFsL2JvdXJib24vaGVscGVycy9fbGluZWFyLXBvc2l0aW9ucy1wYXJzZXIuc2NzcyIsInJlc291cmNlcy9hc3NldHMvc2Fzcy9nbG9iYWwvYm91cmJvbi9oZWxwZXJzL19saW5lYXItc2lkZS1jb3JuZXItcGFyc2VyLnNjc3MiLCJyZXNvdXJjZXMvYXNzZXRzL3Nhc3MvZ2xvYmFsL2JvdXJib24vaGVscGVycy9fcmFkaWFsLWFyZy1wYXJzZXIuc2NzcyIsInJlc291cmNlcy9hc3NldHMvc2Fzcy9nbG9iYWwvYm91cmJvbi9oZWxwZXJzL19yYWRpYWwtcG9zaXRpb25zLXBhcnNlci5zY3NzIiwicmVzb3VyY2VzL2Fzc2V0cy9zYXNzL2dsb2JhbC9ib3VyYm9uL2hlbHBlcnMvX3JhZGlhbC1ncmFkaWVudC1wYXJzZXIuc2NzcyIsInJlc291cmNlcy9hc3NldHMvc2Fzcy9nbG9iYWwvYm91cmJvbi9oZWxwZXJzL19yZW5kZXItZ3JhZGllbnRzLnNjc3MiLCJyZXNvdXJjZXMvYXNzZXRzL3Nhc3MvZ2xvYmFsL2JvdXJib24vaGVscGVycy9fc2hhcGUtc2l6ZS1zdHJpcHBlci5zY3NzIiwicmVzb3VyY2VzL2Fzc2V0cy9zYXNzL2dsb2JhbC9ib3VyYm9uL2hlbHBlcnMvX3N0ci10by1udW0uc2NzcyIsInJlc291cmNlcy9hc3NldHMvc2Fzcy9nbG9iYWwvYm91cmJvbi9mdW5jdGlvbnMvX2Fzc2lnbi5zY3NzIiwicmVzb3VyY2VzL2Fzc2V0cy9zYXNzL2dsb2JhbC9ib3VyYm9uL2Z1bmN0aW9ucy9fY29sb3ItbGlnaHRuZXNzLnNjc3MiLCJyZXNvdXJjZXMvYXNzZXRzL3Nhc3MvZ2xvYmFsL2JvdXJib24vZnVuY3Rpb25zL19jb250YWlucy5zY3NzIiwicmVzb3VyY2VzL2Fzc2V0cy9zYXNzL2dsb2JhbC9ib3VyYm9uL2Z1bmN0aW9ucy9faXMtbGVuZ3RoLnNjc3MiLCJyZXNvdXJjZXMvYXNzZXRzL3Nhc3MvZ2xvYmFsL2JvdXJib24vZnVuY3Rpb25zL19pcy1zaXplLnNjc3MiLCJyZXNvdXJjZXMvYXNzZXRzL3Nhc3MvZ2xvYmFsL2JvdXJib24vZnVuY3Rpb25zL19weC10by1lbS5zY3NzIiwicmVzb3VyY2VzL2Fzc2V0cy9zYXNzL2dsb2JhbC9ib3VyYm9uL2Z1bmN0aW9ucy9fcHgtdG8tcmVtLnNjc3MiLCJyZXNvdXJjZXMvYXNzZXRzL3Nhc3MvZ2xvYmFsL2JvdXJib24vZnVuY3Rpb25zL19zdHJpcC11bml0cy5zY3NzIiwicmVzb3VyY2VzL2Fzc2V0cy9zYXNzL2dsb2JhbC9ib3VyYm9uL2Z1bmN0aW9ucy9fdGludC1zaGFkZS5zY3NzIiwicmVzb3VyY2VzL2Fzc2V0cy9zYXNzL2dsb2JhbC9ib3VyYm9uL2Z1bmN0aW9ucy9fdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lLnNjc3MiLCJyZXNvdXJjZXMvYXNzZXRzL3Nhc3MvZ2xvYmFsL2JvdXJib24vZnVuY3Rpb25zL191bnBhY2suc2NzcyIsInJlc291cmNlcy9hc3NldHMvc2Fzcy9nbG9iYWwvYm91cmJvbi9mdW5jdGlvbnMvX21vZHVsYXItc2NhbGUuc2NzcyIsInJlc291cmNlcy9hc3NldHMvc2Fzcy9nbG9iYWwvYm91cmJvbi9jc3MzL19hbmltYXRpb24uc2NzcyIsInJlc291cmNlcy9hc3NldHMvc2Fzcy9nbG9iYWwvYm91cmJvbi9jc3MzL19hcHBlYXJhbmNlLnNjc3MiLCJyZXNvdXJjZXMvYXNzZXRzL3Nhc3MvZ2xvYmFsL2JvdXJib24vY3NzMy9fYmFja2ZhY2UtdmlzaWJpbGl0eS5zY3NzIiwicmVzb3VyY2VzL2Fzc2V0cy9zYXNzL2dsb2JhbC9ib3VyYm9uL2NzczMvX2JhY2tncm91bmQuc2NzcyIsInJlc291cmNlcy9hc3NldHMvc2Fzcy9nbG9iYWwvYm91cmJvbi9jc3MzL19iYWNrZ3JvdW5kLWltYWdlLnNjc3MiLCJyZXNvdXJjZXMvYXNzZXRzL3Nhc3MvZ2xvYmFsL2JvdXJib24vY3NzMy9fYm9yZGVyLWltYWdlLnNjc3MiLCJyZXNvdXJjZXMvYXNzZXRzL3Nhc3MvZ2xvYmFsL2JvdXJib24vY3NzMy9fYm9yZGVyLXJhZGl1cy5zY3NzIiwicmVzb3VyY2VzL2Fzc2V0cy9zYXNzL2dsb2JhbC9ib3VyYm9uL2NzczMvX2JveC1zaXppbmcuc2NzcyIsInJlc291cmNlcy9hc3NldHMvc2Fzcy9nbG9iYWwvYm91cmJvbi9jc3MzL19jYWxjLnNjc3MiLCJyZXNvdXJjZXMvYXNzZXRzL3Nhc3MvZ2xvYmFsL2JvdXJib24vY3NzMy9fY29sdW1ucy5zY3NzIiwicmVzb3VyY2VzL2Fzc2V0cy9zYXNzL2dsb2JhbC9ib3VyYm9uL2NzczMvX2ZpbHRlci5zY3NzIiwicmVzb3VyY2VzL2Fzc2V0cy9zYXNzL2dsb2JhbC9ib3VyYm9uL2NzczMvX2ZsZXgtYm94LnNjc3MiLCJyZXNvdXJjZXMvYXNzZXRzL3Nhc3MvZ2xvYmFsL2JvdXJib24vY3NzMy9fZm9udC1mYWNlLnNjc3MiLCJyZXNvdXJjZXMvYXNzZXRzL3Nhc3MvZ2xvYmFsL2JvdXJib24vY3NzMy9fZm9udC1mZWF0dXJlLXNldHRpbmdzLnNjc3MiLCJyZXNvdXJjZXMvYXNzZXRzL3Nhc3MvZ2xvYmFsL2JvdXJib24vY3NzMy9faGlkcGktbWVkaWEtcXVlcnkuc2NzcyIsInJlc291cmNlcy9hc3NldHMvc2Fzcy9nbG9iYWwvYm91cmJvbi9jc3MzL19oeXBoZW5zLnNjc3MiLCJyZXNvdXJjZXMvYXNzZXRzL3Nhc3MvZ2xvYmFsL2JvdXJib24vY3NzMy9faW1hZ2UtcmVuZGVyaW5nLnNjc3MiLCJyZXNvdXJjZXMvYXNzZXRzL3Nhc3MvZ2xvYmFsL2JvdXJib24vY3NzMy9fa2V5ZnJhbWVzLnNjc3MiLCJyZXNvdXJjZXMvYXNzZXRzL3Nhc3MvZ2xvYmFsL2JvdXJib24vY3NzMy9fbGluZWFyLWdyYWRpZW50LnNjc3MiLCJyZXNvdXJjZXMvYXNzZXRzL3Nhc3MvZ2xvYmFsL2JvdXJib24vY3NzMy9fcGVyc3BlY3RpdmUuc2NzcyIsInJlc291cmNlcy9hc3NldHMvc2Fzcy9nbG9iYWwvYm91cmJvbi9jc3MzL19wbGFjZWhvbGRlci5zY3NzIiwicmVzb3VyY2VzL2Fzc2V0cy9zYXNzL2dsb2JhbC9ib3VyYm9uL2NzczMvX3JhZGlhbC1ncmFkaWVudC5zY3NzIiwicmVzb3VyY2VzL2Fzc2V0cy9zYXNzL2dsb2JhbC9ib3VyYm9uL2NzczMvX3NlbGVjdGlvbi5zY3NzIiwicmVzb3VyY2VzL2Fzc2V0cy9zYXNzL2dsb2JhbC9ib3VyYm9uL2NzczMvX3RleHQtZGVjb3JhdGlvbi5zY3NzIiwicmVzb3VyY2VzL2Fzc2V0cy9zYXNzL2dsb2JhbC9ib3VyYm9uL2NzczMvX3RyYW5zZm9ybS5zY3NzIiwicmVzb3VyY2VzL2Fzc2V0cy9zYXNzL2dsb2JhbC9ib3VyYm9uL2NzczMvX3RyYW5zaXRpb24uc2NzcyIsInJlc291cmNlcy9hc3NldHMvc2Fzcy9nbG9iYWwvYm91cmJvbi9jc3MzL191c2VyLXNlbGVjdC5zY3NzIiwicmVzb3VyY2VzL2Fzc2V0cy9zYXNzL2dsb2JhbC9ib3VyYm9uL2FkZG9ucy9fY2xlYXJmaXguc2NzcyIsInJlc291cmNlcy9hc3NldHMvc2Fzcy9nbG9iYWwvYm91cmJvbi9hZGRvbnMvX2RpcmVjdGlvbmFsLXZhbHVlcy5zY3NzIiwicmVzb3VyY2VzL2Fzc2V0cy9zYXNzL2dsb2JhbC9ib3VyYm9uL2FkZG9ucy9fZWxsaXBzaXMuc2NzcyIsInJlc291cmNlcy9hc3NldHMvc2Fzcy9nbG9iYWwvYm91cmJvbi9hZGRvbnMvX2ZvbnQtZmFtaWx5LnNjc3MiLCJyZXNvdXJjZXMvYXNzZXRzL3Nhc3MvZ2xvYmFsL2JvdXJib24vYWRkb25zL19oaWRlLXRleHQuc2NzcyIsInJlc291cmNlcy9hc3NldHMvc2Fzcy9nbG9iYWwvYm91cmJvbi9hZGRvbnMvX2h0bWw1LWlucHV0LXR5cGVzLnNjc3MiLCJyZXNvdXJjZXMvYXNzZXRzL3Nhc3MvZ2xvYmFsL2JvdXJib24vYWRkb25zL19wb3NpdGlvbi5zY3NzIiwicmVzb3VyY2VzL2Fzc2V0cy9zYXNzL2dsb2JhbC9ib3VyYm9uL2FkZG9ucy9fcHJlZml4ZXIuc2NzcyIsInJlc291cmNlcy9hc3NldHMvc2Fzcy9nbG9iYWwvYm91cmJvbi9hZGRvbnMvX3JldGluYS1pbWFnZS5zY3NzIiwicmVzb3VyY2VzL2Fzc2V0cy9zYXNzL2dsb2JhbC9ib3VyYm9uL2FkZG9ucy9fc2l6ZS5zY3NzIiwicmVzb3VyY2VzL2Fzc2V0cy9zYXNzL2dsb2JhbC9ib3VyYm9uL2FkZG9ucy9fdGltaW5nLWZ1bmN0aW9ucy5zY3NzIiwicmVzb3VyY2VzL2Fzc2V0cy9zYXNzL2dsb2JhbC9ib3VyYm9uL2FkZG9ucy9fdHJpYW5nbGUuc2NzcyIsInJlc291cmNlcy9hc3NldHMvc2Fzcy9nbG9iYWwvYm91cmJvbi9hZGRvbnMvX3dvcmQtd3JhcC5zY3NzIiwicmVzb3VyY2VzL2Fzc2V0cy9zYXNzL2dsb2JhbC9ib3VyYm9uL19ib3VyYm9uLWRlcHJlY2F0ZWQtdXBjb21pbmcuc2NzcyIsInJlc291cmNlcy9hc3NldHMvc2Fzcy9nbG9iYWwvZnVuY3Rpb25zL19mdW5jdGlvbnMuc2FzcyIsInJlc291cmNlcy9hc3NldHMvc2Fzcy9nbG9iYWwvZnVuY3Rpb25zL19mb250cy5zYXNzIiwicmVzb3VyY2VzL2Fzc2V0cy9zYXNzL2dsb2JhbC9mdW5jdGlvbnMvX2dyaWQuc2FzcyIsInJlc291cmNlcy9hc3NldHMvc2Fzcy9nbG9iYWwvbWl4aW5zL19taXhpbnMuc2FzcyIsInJlc291cmNlcy9hc3NldHMvc2Fzcy9nbG9iYWwvbWl4aW5zL19zcHJpdGUuc2FzcyIsInJlc291cmNlcy9hc3NldHMvc2Fzcy9nbG9iYWwvbWl4aW5zL19tZWRpYVF1ZXJpZXMuc2FzcyIsInJlc291cmNlcy9hc3NldHMvc2Fzcy9nbG9iYWwvbWl4aW5zL19mbGV4LnNhc3MiLCJyZXNvdXJjZXMvYXNzZXRzL3Nhc3MvZ2xvYmFsL21peGlucy9fcGxhY2Vob2xkZXIuc2FzcyIsInJlc291cmNlcy9hc3NldHMvc2Fzcy9nbG9iYWwvX2Jhc2Uuc2FzcyIsInJlc291cmNlcy9hc3NldHMvc2Fzcy9nbG9iYWwvZ3JpZC9fZ3JpZHMuc2FzcyIsInJlc291cmNlcy9hc3NldHMvc2Fzcy9nbG9iYWwvZ3JpZC9fZ3JpZC5zYXNzIiwicmVzb3VyY2VzL2Fzc2V0cy9zYXNzL2dsb2JhbC9ncmlkL192aXNpYmxlR3JpZC5zYXNzIiwicmVzb3VyY2VzL2Fzc2V0cy9zYXNzL2dsb2JhbC9wYXJ0aWFscy9fYnJlYWtwb2ludHMuc2FzcyIsInJlc291cmNlcy9hc3NldHMvc2Fzcy9zaXRlL19jb25maWcuc2FzcyIsInJlc291cmNlcy9hc3NldHMvc2Fzcy9zaXRlL19iYXNlLnNhc3MiLCJyZXNvdXJjZXMvYXNzZXRzL3Nhc3Mvc2l0ZS9faGVscGVycy5zYXNzIiwicmVzb3VyY2VzL2Fzc2V0cy9zYXNzL3NpdGUvbWl4aW5zL19taXhpbnMuc2FzcyIsInJlc291cmNlcy9hc3NldHMvc2Fzcy9zaXRlL3BhcnRpYWxzL19wYXJ0aWFscy5zYXNzIiwicmVzb3VyY2VzL2Fzc2V0cy9zYXNzL3NpdGUvcGFydGlhbHMvX2Nvb2tpZURpYWxvZy5zYXNzIiwicmVzb3VyY2VzL2Fzc2V0cy9zYXNzL3NpdGUvcGFydGlhbHMvX2Zvb3Rlci5zYXNzIiwicmVzb3VyY2VzL2Fzc2V0cy9zYXNzL3NpdGUvcGFydGlhbHMvX2hlYWRlci5zYXNzIiwicmVzb3VyY2VzL2Fzc2V0cy9zYXNzL3NpdGUvcGFydGlhbHMvX2ttc0NvbnRlbnQuc2FzcyIsInJlc291cmNlcy9hc3NldHMvc2Fzcy9zaXRlL3BhcnRpYWxzL19mb3JtLnNhc3MiLCJyZXNvdXJjZXMvYXNzZXRzL3Nhc3Mvc2l0ZS9wYXJ0aWFscy9faW1hZ2VTbGlkZXIuc2FzcyIsInJlc291cmNlcy9hc3NldHMvc2Fzcy9zaXRlL3BhcnRpYWxzL19icmVhZGNydW1iLnNhc3MiLCJyZXNvdXJjZXMvYXNzZXRzL3Nhc3Mvc2l0ZS9wYXJ0aWFscy9keW5hbWljL19keW5hbWljLnNhc3MiLCJyZXNvdXJjZXMvYXNzZXRzL3Nhc3Mvc2l0ZS9wYXJ0aWFscy9keW5hbWljL190d29UZXh0Q29sdW1uLnNhc3MiLCJyZXNvdXJjZXMvYXNzZXRzL3Nhc3Mvc2l0ZS9wYXJ0aWFscy9keW5hbWljL19mdWxsSW1hZ2VDb2x1bW4uc2FzcyIsInJlc291cmNlcy9hc3NldHMvc2Fzcy9zaXRlL3BhcnRpYWxzL2R5bmFtaWMvX2NvbnRlbnRCbG9jay5zYXNzIiwicmVzb3VyY2VzL2Fzc2V0cy9zYXNzL3NpdGUvcGFydGlhbHMvZHluYW1pYy9fbXVsdGlwbGVJbWFnZXMuc2FzcyIsInJlc291cmNlcy9hc3NldHMvc2Fzcy9zaXRlL3BhcnRpYWxzL2R5bmFtaWMvX2Z1bGxUZXh0QmxvY2suc2FzcyIsInJlc291cmNlcy9hc3NldHMvc2Fzcy9zaXRlL3BhcnRpYWxzL2R5bmFtaWMvX3ZpZGVvQmxvY2suc2FzcyIsInJlc291cmNlcy9hc3NldHMvc2Fzcy9zaXRlL3BhcnRpYWxzL21vYmlsZS9fbW9iaWxlLnNhc3MiLCJyZXNvdXJjZXMvYXNzZXRzL3Nhc3Mvc2l0ZS9wYXJ0aWFscy9tb2JpbGUvX25hdmlnYXRpb24uc2FzcyIsInJlc291cmNlcy9hc3NldHMvc2Fzcy9zaXRlL3BhcnRpYWxzL21vYmlsZS9fY29udGFjdC5zYXNzIiwicmVzb3VyY2VzL2Fzc2V0cy9zYXNzL3NpdGUvcGFydGlhbHMvbW9iaWxlL19zdGlja3lOYXZpZ2F0aW9uLnNhc3MiLCJyZXNvdXJjZXMvYXNzZXRzL3Nhc3Mvc2l0ZS9wYWdlcy9fcGFnZXMuc2FzcyIsInJlc291cmNlcy9hc3NldHMvc2Fzcy9zaXRlL3BhZ2VzL19ob21lLnNhc3MiLCJyZXNvdXJjZXMvYXNzZXRzL3Nhc3Mvc2l0ZS9wYWdlcy9wb3N0cy9fcG9zdHMuc2FzcyIsInJlc291cmNlcy9hc3NldHMvc2Fzcy9zaXRlL3BhZ2VzL3Bvc3RzL19pbmRleC5zYXNzIiwicmVzb3VyY2VzL2Fzc2V0cy9zYXNzL3NpdGUvcGFnZXMvcG9zdHMvX3Nob3cuc2FzcyIsInJlc291cmNlcy9hc3NldHMvc2Fzcy9zaXRlL3BhZ2VzL19jb250YWN0LnNhc3MiLCJyZXNvdXJjZXMvYXNzZXRzL3Nhc3Mvc2l0ZS9wYWdlcy9fZXJyb3Iuc2FzcyIsInJlc291cmNlcy9hc3NldHMvc2Fzcy9zaXRlL3BhZ2VzL19zaXRlbWFwLnNhc3MiLCJyZXNvdXJjZXMvYXNzZXRzL3Nhc3Mvc2l0ZS9wYWdlcy9jaGVja291dC9fY2hlY2tvdXQuc2FzcyIsInJlc291cmNlcy9hc3NldHMvc2Fzcy9zaXRlL3BhZ2VzL2NoZWNrb3V0L19zaG9wcGluZ0NhcnQuc2FzcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMb2FkIGRlZmF1bHQgc2V0dGluZ3MgYW5kIHN0eWxpbmdcbkBpbXBvcnQgXCIuLi9nbG9iYWwvZ2xvYmFsXCI7XG5cbkBpbXBvcnQgXCIuLi8uLi9saWIvbW9iaXVzMS1zZWxlY3RyL2Rpc3Qvc2VsZWN0ci5taW4uY3NzXCI7XG5cbi8vIEV4cGVuZC9vdmVycnVsZSBjb25maWd1cmF0aW9uXG5AaW1wb3J0IFwiY29uZmlnXCI7XG5AaW1wb3J0IFwiYmFzZVwiO1xuQGltcG9ydCBcImhlbHBlcnNcIjtcbkBpbXBvcnQgXCJtaXhpbnMvbWl4aW5zXCI7XG5cblxuLy8gTG9hZCBmaWxlcyB0aGF0IHdyaXRlIGNzc1xuQGltcG9ydCBcInBhcnRpYWxzL3BhcnRpYWxzXCI7XG5AaW1wb3J0IFwicGFnZXMvcGFnZXNcIjtcbiIsIi8vIExvYWQgZGVmYXVsdCBjb25maWd1cmF0aW9uXG5AaW1wb3J0IFwiY29uZmlnXCI7XG5cbi8vIExvYWQgQm91cmJvblxuQGltcG9ydCBcImJvdXJib24vYm91cmJvblwiO1xuXG4vLyBMb2FkIGRlZmF1bHQgY29uZmlndXJhdGlvblxuQGltcG9ydCBcImZ1bmN0aW9ucy9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCJtaXhpbnMvbWl4aW5zXCI7XG5AaW1wb3J0IFwiYmFzZVwiO1xuXG4vLyBMb2FkIGdyaWRzXG5AaW1wb3J0IFwiZ3JpZC9ncmlkc1wiO1xuXG4vLyBMb2FkIGJyZWFrcG9pbnRzXG5AaW1wb3J0IFwicGFydGlhbHMvYnJlYWtwb2ludHNcIjtcbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb25maWcgc2V0dGluZ3NcbiAgIEBtaXhpbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIERlZmluZSBncmlkIGNvbHVtbnNcbiAqXG4gKiBUaGUgaW5uZXIgZ3JpZCBpcyB0aGUgc2VjdGlvbiB3aGVyZSB0aGUgY29udGVudCBpc1xuICogVGhlIG91dGVyIGdyaWQgaXMgdGhlIGlubmVyIGdyaWQgd2l0aCBleHRyYSBtYXJnaW4gY29sdW1ucyBvbiBlYWNoIHNpZGVcbiAqL1xuJGdyaWRDb2x1bW5zIDogMTQ7XG4kZ3JpZE1heFdpZHRoIDogMTY4MHB4O1xuXG4vKipcbiAqIERlZmluZSBicmVha3BvaW50IGZvciBnaXZlbiBmb3JtYXRzXG4gKi9cbiR4bEdyaWRCcmVha3BvaW50OiAxNjAwO1xuJGxnR3JpZEJyZWFrcG9pbnQ6IDEzNjY7XG4kbWRHcmlkQnJlYWtwb2ludDogMTA4MDtcbiRzbUdyaWRCcmVha3BvaW50OiA3Njg7XG4keHNHcmlkQnJlYWtwb2ludDogNDAwO1xuIiwiLyogQm91cmJvbiA0LjAuMlxuICogaHR0cDovL2JvdXJib24uaW9cbiAqIENvcHlyaWdodCAyMDExLTIwMTQgdGhvdWdodGJvdCwgaW5jLlxuICogTUlUIExpY2Vuc2UgKi9cblxuLy8gU2V0dGluZ3NcbkBpbXBvcnQgXCJzZXR0aW5ncy9wcmVmaXhlclwiO1xuQGltcG9ydCBcInNldHRpbmdzL3B4LXRvLWVtXCI7XG5AaW1wb3J0IFwic2V0dGluZ3MvYXNzZXQtcGlwZWxpbmVcIjtcblxuLy8gQ3VzdG9tIEhlbHBlcnNcbkBpbXBvcnQgXCJoZWxwZXJzL2NvbnZlcnQtdW5pdHNcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2ZvbnQtc291cmNlLWRlY2xhcmF0aW9uXCI7XG5AaW1wb3J0IFwiaGVscGVycy9ncmFkaWVudC1wb3NpdGlvbnMtcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9pcy1udW1cIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2xpbmVhci1hbmdsZS1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2xpbmVhci1ncmFkaWVudC1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9saW5lYXItc2lkZS1jb3JuZXItcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9yYWRpYWwtYXJnLXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvcmFkaWFsLXBvc2l0aW9ucy1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL3JhZGlhbC1ncmFkaWVudC1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL3JlbmRlci1ncmFkaWVudHNcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL3NoYXBlLXNpemUtc3RyaXBwZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL3N0ci10by1udW1cIjtcblxuLy8gQ3VzdG9tIEZ1bmN0aW9uc1xuQGltcG9ydCBcImZ1bmN0aW9ucy9hc3NpZ25cIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvY29sb3ItbGlnaHRuZXNzXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2NvbnRhaW5zXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2lzLWxlbmd0aFwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9pcy1zaXplXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3B4LXRvLWVtXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3B4LXRvLXJlbVwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9zdHJpcC11bml0c1wiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy90aW50LXNoYWRlXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3RyYW5zaXRpb24tcHJvcGVydHktbmFtZVwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy91bnBhY2tcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvbW9kdWxhci1zY2FsZVwiO1xuXG4vLyBDU1MzIE1peGluc1xuQGltcG9ydCBcImNzczMvYW5pbWF0aW9uXCI7XG5AaW1wb3J0IFwiY3NzMy9hcHBlYXJhbmNlXCI7XG5AaW1wb3J0IFwiY3NzMy9iYWNrZmFjZS12aXNpYmlsaXR5XCI7XG5AaW1wb3J0IFwiY3NzMy9iYWNrZ3JvdW5kXCI7XG5AaW1wb3J0IFwiY3NzMy9iYWNrZ3JvdW5kLWltYWdlXCI7XG5AaW1wb3J0IFwiY3NzMy9ib3JkZXItaW1hZ2VcIjtcbkBpbXBvcnQgXCJjc3MzL2JvcmRlci1yYWRpdXNcIjtcbkBpbXBvcnQgXCJjc3MzL2JveC1zaXppbmdcIjtcbkBpbXBvcnQgXCJjc3MzL2NhbGNcIjtcbkBpbXBvcnQgXCJjc3MzL2NvbHVtbnNcIjtcbkBpbXBvcnQgXCJjc3MzL2ZpbHRlclwiO1xuQGltcG9ydCBcImNzczMvZmxleC1ib3hcIjtcbkBpbXBvcnQgXCJjc3MzL2ZvbnQtZmFjZVwiO1xuQGltcG9ydCBcImNzczMvZm9udC1mZWF0dXJlLXNldHRpbmdzXCI7XG5AaW1wb3J0IFwiY3NzMy9oaWRwaS1tZWRpYS1xdWVyeVwiO1xuQGltcG9ydCBcImNzczMvaHlwaGVuc1wiO1xuQGltcG9ydCBcImNzczMvaW1hZ2UtcmVuZGVyaW5nXCI7XG5AaW1wb3J0IFwiY3NzMy9rZXlmcmFtZXNcIjtcbkBpbXBvcnQgXCJjc3MzL2xpbmVhci1ncmFkaWVudFwiO1xuQGltcG9ydCBcImNzczMvcGVyc3BlY3RpdmVcIjtcbkBpbXBvcnQgXCJjc3MzL3BsYWNlaG9sZGVyXCI7XG5AaW1wb3J0IFwiY3NzMy9yYWRpYWwtZ3JhZGllbnRcIjtcbkBpbXBvcnQgXCJjc3MzL3NlbGVjdGlvblwiO1xuQGltcG9ydCBcImNzczMvdGV4dC1kZWNvcmF0aW9uXCI7XG5AaW1wb3J0IFwiY3NzMy90cmFuc2Zvcm1cIjtcbkBpbXBvcnQgXCJjc3MzL3RyYW5zaXRpb25cIjtcbkBpbXBvcnQgXCJjc3MzL3VzZXItc2VsZWN0XCI7XG5cbi8vIEFkZG9ucyAmIG90aGVyIG1peGluc1xuQGltcG9ydCBcImFkZG9ucy9jbGVhcmZpeFwiO1xuQGltcG9ydCBcImFkZG9ucy9kaXJlY3Rpb25hbC12YWx1ZXNcIjtcbkBpbXBvcnQgXCJhZGRvbnMvZWxsaXBzaXNcIjtcbkBpbXBvcnQgXCJhZGRvbnMvZm9udC1mYW1pbHlcIjtcbkBpbXBvcnQgXCJhZGRvbnMvaGlkZS10ZXh0XCI7XG5AaW1wb3J0IFwiYWRkb25zL2h0bWw1LWlucHV0LXR5cGVzXCI7XG5AaW1wb3J0IFwiYWRkb25zL3Bvc2l0aW9uXCI7XG5AaW1wb3J0IFwiYWRkb25zL3ByZWZpeGVyXCI7XG5AaW1wb3J0IFwiYWRkb25zL3JldGluYS1pbWFnZVwiO1xuQGltcG9ydCBcImFkZG9ucy9zaXplXCI7XG5AaW1wb3J0IFwiYWRkb25zL3RpbWluZy1mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCJhZGRvbnMvdHJpYW5nbGVcIjtcbkBpbXBvcnQgXCJhZGRvbnMvd29yZC13cmFwXCI7XG5cbi8vIFNvb24gdG8gYmUgZGVwcmVjYXRlZCBNaXhpbnNcbkBpbXBvcnQgXCJib3VyYm9uLWRlcHJlY2F0ZWQtdXBjb21pbmdcIjtcbiIsIi8vIFZhcmlhYmxlIHNldHRpbmdzIGZvciAvYWRkb25zL3ByZWZpeGVyLnNjc3NcbiRwcmVmaXgtZm9yLXdlYmtpdDogICAgdHJ1ZSAhZGVmYXVsdDtcbiRwcmVmaXgtZm9yLW1vemlsbGE6ICAgdHJ1ZSAhZGVmYXVsdDtcbiRwcmVmaXgtZm9yLW1pY3Jvc29mdDogdHJ1ZSAhZGVmYXVsdDtcbiRwcmVmaXgtZm9yLW9wZXJhOiAgICAgdHJ1ZSAhZGVmYXVsdDtcbiRwcmVmaXgtZm9yLXNwZWM6ICAgICAgdHJ1ZSAhZGVmYXVsdDsgLy8gcmVxdWlyZWQgZm9yIGtleWZyYW1lIG1peGluXG4iLCIkZW0tYmFzZTogMTZweCAhZGVmYXVsdDtcbiIsIiRhc3NldC1waXBlbGluZTogZmFsc2UgIWRlZmF1bHQ7XG4iLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4vLyBIZWxwZXIgZnVuY3Rpb24gZm9yIHN0ci10by1udW0gZm4uXG4vLyBTb3VyY2U6IGh0dHA6Ly9zYXNzbWVpc3Rlci5jb20vZ2lzdC85NjQ3NDA4XG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG5AZnVuY3Rpb24gX2NvbnZlcnQtdW5pdHMoJG51bWJlciwgJHVuaXQpIHtcbiAgJHN0cmluZ3M6ICdweCcgJ2NtJyAnbW0nICclJyAnY2gnICdwaWNhJyAnaW4nICdlbScgJ3JlbScgJ3B0JyAncGMnICdleCcgJ3Z3JyAndmgnICd2bWluJyAndm1heCcsICdkZWcnLCAncmFkJywgJ2dyYWQnLCAndHVybic7XG4gICR1bml0czogICAxcHggIDFjbSAgMW1tICAxJSAgMWNoICAxcGljYSAgMWluICAxZW0gIDFyZW0gIDFwdCAgMXBjICAxZXggIDF2dyAgMXZoICAxdm1pbiAgMXZtYXgsICAxZGVnLCAgMXJhZCwgIDFncmFkLCAxdHVybjtcbiAgJGluZGV4OiBpbmRleCgkc3RyaW5ncywgJHVuaXQpO1xuXG4gIEBpZiBub3QgJGluZGV4IHtcbiAgICBAd2FybiBcIlVua25vd24gdW5pdCBgI3skdW5pdH1gLlwiO1xuICAgIEByZXR1cm4gZmFsc2U7XG4gIH1cbiAgQHJldHVybiAkbnVtYmVyICogbnRoKCR1bml0cywgJGluZGV4KTtcbn1cbiIsIi8vIFVzZWQgZm9yIGNyZWF0aW5nIHRoZSBzb3VyY2Ugc3RyaW5nIGZvciBmb250cyB1c2luZyBAZm9udC1mYWNlXG5cbkBmdW5jdGlvbiBmb250LXVybC1wcmVmaXhlcigkYXNzZXQtcGlwZWxpbmUpIHtcbiAgQGlmICRhc3NldC1waXBlbGluZSA9PSB0cnVlIHtcbiAgICBAcmV0dXJuIGZvbnQtdXJsO1xuICB9IEBlbHNlIHtcbiAgICBAcmV0dXJuIHVybDtcbiAgfVxufVxuXG5AZnVuY3Rpb24gZm9udC1zb3VyY2UtZGVjbGFyYXRpb24oXG4gICRmb250LWZhbWlseSxcbiAgJGZpbGUtcGF0aCxcbiAgJGFzc2V0LXBpcGVsaW5lLFxuICAkZmlsZS1mb3JtYXRzLFxuICAkZm9udC11cmwpIHtcblxuICAkc3JjOiBudWxsO1xuXG4gICRmb3JtYXRzLW1hcDogKFxuICAgIGVvdDogIFwiI3skZm9udC11cmx9KCcjeyRmaWxlLXBhdGh9LmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJylcIixcbiAgICB3b2ZmMjogXCIjeyRmb250LXVybH0oJyN7JGZpbGUtcGF0aH0ud29mZjInKSBmb3JtYXQoJ3dvZmYyJylcIixcbiAgICB3b2ZmOiBcIiN7JGZvbnQtdXJsfSgnI3skZmlsZS1wYXRofS53b2ZmJykgZm9ybWF0KCd3b2ZmJylcIixcbiAgICB0dGY6ICBcIiN7JGZvbnQtdXJsfSgnI3skZmlsZS1wYXRofS50dGYnKSBmb3JtYXQoJ3R0ZicpXCIsXG4gICAgc3ZnOiAgXCIjeyRmb250LXVybH0oJyN7JGZpbGUtcGF0aH0uc3ZnIyN7JGZvbnQtZmFtaWx5fScpIGZvcm1hdCgnc3ZnJylcIlxuICApO1xuXG4gIEBlYWNoICRmb3JtYXQsICRmaWxlLXBhdGggaW4gJGZvcm1hdHMtbWFwIHtcbiAgICBAaWYgY29udGFpbnMoJGZpbGUtZm9ybWF0cywgJGZvcm1hdCkge1xuICAgICAgJHNyYzogYXBwZW5kKCRzcmMsICRmaWxlLXBhdGgsIGNvbW1hKTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRzcmM7XG59XG4iLCJAZnVuY3Rpb24gX2dyYWRpZW50LXBvc2l0aW9ucy1wYXJzZXIoJGdyYWRpZW50LXR5cGUsICRncmFkaWVudC1wb3NpdGlvbnMpIHtcbiAgQGlmICRncmFkaWVudC1wb3NpdGlvbnNcbiAgYW5kICgkZ3JhZGllbnQtdHlwZSA9PSBsaW5lYXIpXG4gIGFuZCAodHlwZS1vZigkZ3JhZGllbnQtcG9zaXRpb25zKSAhPSBjb2xvcikge1xuICAgICRncmFkaWVudC1wb3NpdGlvbnM6IF9saW5lYXItcG9zaXRpb25zLXBhcnNlcigkZ3JhZGllbnQtcG9zaXRpb25zKTtcbiAgfVxuICBAZWxzZSBpZiAkZ3JhZGllbnQtcG9zaXRpb25zXG4gIGFuZCAoJGdyYWRpZW50LXR5cGUgPT0gcmFkaWFsKVxuICBhbmQgKHR5cGUtb2YoJGdyYWRpZW50LXBvc2l0aW9ucykgIT0gY29sb3IpIHtcbiAgICAkZ3JhZGllbnQtcG9zaXRpb25zOiBfcmFkaWFsLXBvc2l0aW9ucy1wYXJzZXIoJGdyYWRpZW50LXBvc2l0aW9ucyk7XG4gIH1cbiAgQHJldHVybiAkZ3JhZGllbnQtcG9zaXRpb25zO1xufVxuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8gSGVscGVyIGZvciBsaW5lYXItZ3JhZGllbnQtcGFyc2VyXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG5AZnVuY3Rpb24gX2lzLW51bSgkY2hhcikge1xuICAkdmFsdWVzOiAnMCcgJzEnICcyJyAnMycgJzQnICc1JyAnNicgJzcnICc4JyAnOScgMCAxIDIgMyA0IDUgNiA3IDggOTtcbiAgJGluZGV4OiBpbmRleCgkdmFsdWVzLCAkY2hhcik7XG4gIEByZXR1cm4gaWYoJGluZGV4LCB0cnVlLCBmYWxzZSk7XG59XG4iLCIvLyBQcml2YXRlIGZ1bmN0aW9uIGZvciBsaW5lYXItZ3JhZGllbnQtcGFyc2VyXG5AZnVuY3Rpb24gX2xpbmVhci1hbmdsZS1wYXJzZXIoJGltYWdlLCAkZmlyc3QtdmFsLCAkcHJlZml4LCAkc3VmZml4KSB7XG4gICRvZmZzZXQ6IG51bGw7XG4gICR1bml0LXNob3J0OiAgc3RyLXNsaWNlKCRmaXJzdC12YWwsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkgLSAyLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpKTtcbiAgJHVuaXQtbG9uZzogICBzdHItc2xpY2UoJGZpcnN0LXZhbCwgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSAtIDMsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xuXG4gIEBpZiAoJHVuaXQtbG9uZyA9PSBcImdyYWRcIikgb3JcbiAgICAgICgkdW5pdC1sb25nID09IFwidHVyblwiKSB7XG4gICAgJG9mZnNldDogaWYoJHVuaXQtbG9uZyA9PSBcImdyYWRcIiwgLTEwMGdyYWQgKiAzLCAtMC43NXR1cm4pO1xuICB9XG5cbiAgQGVsc2UgaWYgKCR1bml0LXNob3J0ID09IFwiZGVnXCIpIG9yXG4gICAgICAgICAgICgkdW5pdC1zaG9ydCA9PSBcInJhZFwiKSB7XG4gICAgJG9mZnNldDogaWYoJHVuaXQtc2hvcnQgPT0gXCJkZWdcIiwgLTkwICogMywgMS42cmFkKTtcbiAgfVxuXG4gIEBpZiAkb2Zmc2V0IHtcbiAgICAkbnVtOiBfc3RyLXRvLW51bSgkZmlyc3QtdmFsKTtcblxuICAgIEByZXR1cm4gKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRwcmVmaXggKyAoJG9mZnNldCAtICRudW0pICsgJHN1ZmZpeCxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgICk7XG4gIH1cbn1cbiIsIkBmdW5jdGlvbiBfbGluZWFyLWdyYWRpZW50LXBhcnNlcigkaW1hZ2UpIHtcbiAgJGltYWdlOiB1bnF1b3RlKCRpbWFnZSk7XG4gICRncmFkaWVudHM6ICgpO1xuICAkc3RhcnQ6IHN0ci1pbmRleCgkaW1hZ2UsIFwiKFwiKTtcbiAgJGVuZDogc3RyLWluZGV4KCRpbWFnZSwgXCIsXCIpO1xuICAkZmlyc3QtdmFsOiBzdHItc2xpY2UoJGltYWdlLCAkc3RhcnQgKyAxLCAkZW5kIC0gMSk7XG5cbiAgJHByZWZpeDogc3RyLXNsaWNlKCRpbWFnZSwgMCwgJHN0YXJ0KTtcbiAgJHN1ZmZpeDogc3RyLXNsaWNlKCRpbWFnZSwgJGVuZCwgc3RyLWxlbmd0aCgkaW1hZ2UpKTtcblxuICAkaGFzLW11bHRpcGxlLXZhbHM6IHN0ci1pbmRleCgkZmlyc3QtdmFsLCBcIiBcIik7XG4gICRoYXMtc2luZ2xlLXBvc2l0aW9uOiB1bnF1b3RlKF9wb3NpdGlvbi1mbGlwcGVyKCRmaXJzdC12YWwpICsgXCJcIik7XG4gICRoYXMtYW5nbGU6IF9pcy1udW0oc3RyLXNsaWNlKCRmaXJzdC12YWwsIDAsIDApKTtcblxuICBAaWYgJGhhcy1tdWx0aXBsZS12YWxzIHtcbiAgICAkZ3JhZGllbnRzOiBfbGluZWFyLXNpZGUtY29ybmVyLXBhcnNlcigkaW1hZ2UsICRmaXJzdC12YWwsICRwcmVmaXgsICRzdWZmaXgsICRoYXMtbXVsdGlwbGUtdmFscyk7XG4gIH1cblxuICBAZWxzZSBpZiAkaGFzLXNpbmdsZS1wb3NpdGlvbiAhPSBcIlwiIHtcbiAgICAkcG9zOiB1bnF1b3RlKCRoYXMtc2luZ2xlLXBvc2l0aW9uICsgXCJcIik7XG5cbiAgICAkZ3JhZGllbnRzOiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJGltYWdlLFxuICAgICAgc3BlYy1pbWFnZTogJHByZWZpeCArIFwidG8gXCIgKyAkcG9zICsgJHN1ZmZpeFxuICAgICk7XG4gIH1cblxuICBAZWxzZSBpZiAkaGFzLWFuZ2xlIHtcbiAgICAvLyBSb3RhdGUgZGVncmVlIGZvciB3ZWJraXRcbiAgICAkZ3JhZGllbnRzOiBfbGluZWFyLWFuZ2xlLXBhcnNlcigkaW1hZ2UsICRmaXJzdC12YWwsICRwcmVmaXgsICRzdWZmaXgpO1xuICB9XG5cbiAgQGVsc2Uge1xuICAgICRncmFkaWVudHM6IChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkaW1hZ2UsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApO1xuICB9XG5cbiAgQHJldHVybiAkZ3JhZGllbnRzO1xufVxuIiwiQGZ1bmN0aW9uIF9saW5lYXItcG9zaXRpb25zLXBhcnNlcigkcG9zKSB7XG4gICR0eXBlOiB0eXBlLW9mKG50aCgkcG9zLCAxKSk7XG4gICRzcGVjOiBudWxsO1xuICAkZGVncmVlOiBudWxsO1xuICAkc2lkZTogbnVsbDtcbiAgJGNvcm5lcjogbnVsbDtcbiAgJGxlbmd0aDogbGVuZ3RoKCRwb3MpO1xuICAvLyBQYXJzZSBTaWRlIGFuZCBjb3JuZXIgcG9zaXRpb25zXG4gIEBpZiAoJGxlbmd0aCA+IDEpIHtcbiAgICBAaWYgbnRoKCRwb3MsIDEpID09IFwidG9cIiB7IC8vIE5ld2VyIHN5bnRheFxuICAgICAgJHNpZGU6IG50aCgkcG9zLCAyKTtcblxuICAgICAgQGlmICRsZW5ndGggPT0gMiB7IC8vIGVnLiB0byB0b3BcbiAgICAgICAgLy8gU3dhcCBmb3IgYmFja3dhcmRzIGNvbXBhdGFiaWxpdHlcbiAgICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIobnRoKCRwb3MsIDIpKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmICRsZW5ndGggPT0gMyB7IC8vIGVnLiB0byB0b3AgbGVmdFxuICAgICAgICAkY29ybmVyOiBudGgoJHBvcywgMyk7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIGlmICRsZW5ndGggPT0gMiB7IC8vIE9sZGVyIHN5bnRheCAoXCJ0b3AgbGVmdFwiKVxuICAgICAgJHNpZGU6IF9wb3NpdGlvbi1mbGlwcGVyKG50aCgkcG9zLCAxKSk7XG4gICAgICAkY29ybmVyOiBfcG9zaXRpb24tZmxpcHBlcihudGgoJHBvcywgMikpO1xuICAgIH1cblxuICAgIEBpZiAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJsZWZ0IHRvcFwiKSBvciAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJ0b3AgbGVmdFwiKSB7XG4gICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcigjeyRzaWRlfSkgX3Bvc2l0aW9uLWZsaXBwZXIoI3skY29ybmVyfSk7XG4gICAgfVxuICAgIEBlbHNlIGlmIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcInJpZ2h0IHRvcFwiKSBvciAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJ0b3AgcmlnaHRcIikge1xuICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIoI3skc2lkZX0pIF9wb3NpdGlvbi1mbGlwcGVyKCN7JGNvcm5lcn0pO1xuICAgIH1cbiAgICBAZWxzZSBpZiAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJyaWdodCBib3R0b21cIikgb3IgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwiYm90dG9tIHJpZ2h0XCIpIHtcbiAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKCN7JHNpZGV9KSBfcG9zaXRpb24tZmxpcHBlcigjeyRjb3JuZXJ9KTtcbiAgICB9XG4gICAgQGVsc2UgaWYgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwibGVmdCBib3R0b21cIikgb3IgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwiYm90dG9tIGxlZnRcIikge1xuICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIoI3skc2lkZX0pIF9wb3NpdGlvbi1mbGlwcGVyKCN7JGNvcm5lcn0pO1xuICAgIH1cbiAgICAkc3BlYzogdG8gJHNpZGUgJGNvcm5lcjtcbiAgfVxuICBAZWxzZSBpZiAkbGVuZ3RoID09IDEge1xuICAgIC8vIFN3YXAgZm9yIGJhY2t3YXJkcyBjb21wYXRhYmlsaXR5XG4gICAgQGlmICR0eXBlID09IHN0cmluZyB7XG4gICAgICAkZGVncmVlOiAkcG9zO1xuICAgICAgJHNwZWM6IHRvIF9wb3NpdGlvbi1mbGlwcGVyKCRwb3MpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkZGVncmVlOiAtMjcwIC0gJHBvczsgLy9yb3RhdGUgdGhlIGdyYWRpZW50IG9wcG9zaXRlIGZyb20gc3BlY1xuICAgICAgJHNwZWM6ICRwb3M7XG4gICAgfVxuICB9XG4gICRkZWdyZWU6IHVucXVvdGUoJGRlZ3JlZSArIFwiLFwiKTtcbiAgJHNwZWM6ICAgdW5xdW90ZSgkc3BlYyArIFwiLFwiKTtcbiAgQHJldHVybiAkZGVncmVlICRzcGVjO1xufVxuXG5AZnVuY3Rpb24gX3Bvc2l0aW9uLWZsaXBwZXIoJHBvcykge1xuIEByZXR1cm4gaWYoJHBvcyA9PSBsZWZ0LCByaWdodCwgbnVsbClcbiAgICAgICAgIGlmKCRwb3MgPT0gcmlnaHQsIGxlZnQsIG51bGwpXG4gICAgICAgICBpZigkcG9zID09IHRvcCwgYm90dG9tLCBudWxsKVxuICAgICAgICAgaWYoJHBvcyA9PSBib3R0b20sIHRvcCwgbnVsbCk7XG59XG4iLCIvLyBQcml2YXRlIGZ1bmN0aW9uIGZvciBsaW5lYXItZ3JhZGllbnQtcGFyc2VyXG5AZnVuY3Rpb24gX2xpbmVhci1zaWRlLWNvcm5lci1wYXJzZXIoJGltYWdlLCAkZmlyc3QtdmFsLCAkcHJlZml4LCAkc3VmZml4LCAkaGFzLW11bHRpcGxlLXZhbHMpIHtcbiAgJHZhbC0xOiBzdHItc2xpY2UoJGZpcnN0LXZhbCwgMCwgJGhhcy1tdWx0aXBsZS12YWxzIC0gMSApO1xuICAkdmFsLTI6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAkaGFzLW11bHRpcGxlLXZhbHMgKyAxLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpKTtcbiAgJHZhbC0zOiBudWxsO1xuICAkaGFzLXZhbC0zOiBzdHItaW5kZXgoJHZhbC0yLCBcIiBcIik7XG5cbiAgQGlmICRoYXMtdmFsLTMge1xuICAgICR2YWwtMzogc3RyLXNsaWNlKCR2YWwtMiwgJGhhcy12YWwtMyArIDEsIHN0ci1sZW5ndGgoJHZhbC0yKSk7XG4gICAgJHZhbC0yOiBzdHItc2xpY2UoJHZhbC0yLCAwLCAkaGFzLXZhbC0zIC0gMSk7XG4gIH1cblxuICAkcG9zOiBfcG9zaXRpb24tZmxpcHBlcigkdmFsLTEpIF9wb3NpdGlvbi1mbGlwcGVyKCR2YWwtMikgX3Bvc2l0aW9uLWZsaXBwZXIoJHZhbC0zKTtcbiAgJHBvczogdW5xdW90ZSgkcG9zICsgXCJcIik7XG5cbiAgLy8gVXNlIG9sZCBzcGVjIGZvciB3ZWJraXRcbiAgQGlmICR2YWwtMSA9PSBcInRvXCIge1xuICAgIEByZXR1cm4gKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRwcmVmaXggKyAkcG9zICsgJHN1ZmZpeCxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgICk7XG4gIH1cblxuICAvLyBCcmluZyB0aGUgY29kZSB1cCB0byBzcGVjXG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkaW1hZ2UsXG4gICAgICBzcGVjLWltYWdlOiAkcHJlZml4ICsgXCJ0byBcIiArICRwb3MgKyAkc3VmZml4XG4gICAgKTtcbiAgfVxufVxuIiwiQGZ1bmN0aW9uIF9yYWRpYWwtYXJnLXBhcnNlcigkRzEsICRHMiwgJHBvcywgJHNoYXBlLXNpemUpIHtcbiAgQGVhY2ggJHZhbHVlIGluICRHMSwgJEcyIHtcbiAgICAkZmlyc3QtdmFsOiBudGgoJHZhbHVlLCAxKTtcbiAgICAkcG9zLXR5cGU6ICB0eXBlLW9mKCRmaXJzdC12YWwpO1xuICAgICRzcGVjLWF0LWluZGV4OiBudWxsO1xuXG4gICAgLy8gRGV0ZXJtaW5lIGlmIHNwZWMgd2FzIHBhc3NlZCB0byBtaXhpblxuICAgIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gbGlzdCB7XG4gICAgICAkc3BlYy1hdC1pbmRleDogaWYoaW5kZXgoJHZhbHVlLCBhdCksIGluZGV4KCR2YWx1ZSwgYXQpLCBmYWxzZSk7XG4gICAgfVxuICAgIEBpZiAkc3BlYy1hdC1pbmRleCB7XG4gICAgICBAaWYgJHNwZWMtYXQtaW5kZXggPiAxIHtcbiAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAoJHNwZWMtYXQtaW5kZXggLSAxKSB7XG4gICAgICAgICAgJHNoYXBlLXNpemU6ICRzaGFwZS1zaXplIG50aCgkdmFsdWUsICRpKTtcbiAgICAgICAgfVxuICAgICAgICBAZm9yICRpIGZyb20gKCRzcGVjLWF0LWluZGV4ICsgMSkgdGhyb3VnaCBsZW5ndGgoJHZhbHVlKSB7XG4gICAgICAgICAgJHBvczogJHBvcyBudGgoJHZhbHVlLCAkaSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmICRzcGVjLWF0LWluZGV4ID09IDEge1xuICAgICAgICBAZm9yICRpIGZyb20gKCRzcGVjLWF0LWluZGV4ICsgMSkgdGhyb3VnaCBsZW5ndGgoJHZhbHVlKSB7XG4gICAgICAgICAgJHBvczogJHBvcyBudGgoJHZhbHVlLCAkaSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICRHMTogbnVsbDtcbiAgICB9XG5cbiAgICAvLyBJZiBub3Qgc3BlYyBjYWxjdWxhdGUgY29ycmVjdCB2YWx1ZXNcbiAgICBAZWxzZSB7XG4gICAgICBAaWYgKCRwb3MtdHlwZSAhPSBjb2xvcikgb3IgKCRmaXJzdC12YWwgIT0gXCJ0cmFuc3BhcmVudFwiKSB7XG4gICAgICAgIEBpZiAoJHBvcy10eXBlID09IG51bWJlcilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjZW50ZXJcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJ0b3BcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJyaWdodFwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImJvdHRvbVwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImxlZnRcIikge1xuXG4gICAgICAgICAgJHBvczogJHZhbHVlO1xuXG4gICAgICAgICAgQGlmICRwb3MgPT0gJEcxIHtcbiAgICAgICAgICAgICRHMTogbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWxzZSBpZlxuICAgICAgICAgICAoJGZpcnN0LXZhbCA9PSBcImVsbGlwc2VcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjaXJjbGVcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjbG9zZXN0LXNpZGVcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjbG9zZXN0LWNvcm5lclwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImZhcnRoZXN0LXNpZGVcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJmYXJ0aGVzdC1jb3JuZXJcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjb250YWluXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY292ZXJcIikge1xuXG4gICAgICAgICAgJHNoYXBlLXNpemU6ICR2YWx1ZTtcblxuICAgICAgICAgIEBpZiAkdmFsdWUgPT0gJEcxIHtcbiAgICAgICAgICAgICRHMTogbnVsbDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAZWxzZSBpZiAkdmFsdWUgPT0gJEcyIHtcbiAgICAgICAgICAgICRHMjogbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQHJldHVybiAkRzEsICRHMiwgJHBvcywgJHNoYXBlLXNpemU7XG59XG4iLCJAZnVuY3Rpb24gX3JhZGlhbC1wb3NpdGlvbnMtcGFyc2VyKCRncmFkaWVudC1wb3MpIHtcbiAgJHNoYXBlLXNpemU6IG50aCgkZ3JhZGllbnQtcG9zLCAxKTtcbiAgJHBvczogICAgICAgIG50aCgkZ3JhZGllbnQtcG9zLCAyKTtcbiAgJHNoYXBlLXNpemUtc3BlYzogX3NoYXBlLXNpemUtc3RyaXBwZXIoJHNoYXBlLXNpemUpO1xuXG4gICRwcmUtc3BlYzogdW5xdW90ZShpZigkcG9zLCBcIiN7JHBvc30sIFwiLCBudWxsKSlcbiAgICAgICAgICAgICB1bnF1b3RlKGlmKCRzaGFwZS1zaXplLCBcIiN7JHNoYXBlLXNpemV9LFwiLCBudWxsKSk7XG4gICRwb3Mtc3BlYzogaWYoJHBvcywgXCJhdCAjeyRwb3N9XCIsIG51bGwpO1xuXG4gICRzcGVjOiBcIiN7JHNoYXBlLXNpemUtc3BlY30gI3skcG9zLXNwZWN9XCI7XG5cbiAgLy8gQWRkIGNvbW1hXG4gIEBpZiAoJHNwZWMgIT0gJyAgJykge1xuICAgICRzcGVjOiBcIiN7JHNwZWN9LFwiXG4gIH1cblxuICBAcmV0dXJuICRwcmUtc3BlYyAkc3BlYztcbn1cbiIsIkBmdW5jdGlvbiBfcmFkaWFsLWdyYWRpZW50LXBhcnNlcigkaW1hZ2UpIHtcbiAgJGltYWdlOiB1bnF1b3RlKCRpbWFnZSk7XG4gICRncmFkaWVudHM6ICgpO1xuICAkc3RhcnQ6IHN0ci1pbmRleCgkaW1hZ2UsIFwiKFwiKTtcbiAgJGVuZDogc3RyLWluZGV4KCRpbWFnZSwgXCIsXCIpO1xuICAkZmlyc3QtdmFsOiBzdHItc2xpY2UoJGltYWdlLCAkc3RhcnQgKyAxLCAkZW5kIC0gMSk7XG5cbiAgJHByZWZpeDogc3RyLXNsaWNlKCRpbWFnZSwgMCwgJHN0YXJ0KTtcbiAgJHN1ZmZpeDogc3RyLXNsaWNlKCRpbWFnZSwgJGVuZCwgc3RyLWxlbmd0aCgkaW1hZ2UpKTtcblxuICAkaXMtc3BlYy1zeW50YXg6IHN0ci1pbmRleCgkZmlyc3QtdmFsLCBcImF0XCIpO1xuXG4gIEBpZiAkaXMtc3BlYy1zeW50YXggYW5kICRpcy1zcGVjLXN5bnRheCA+IDEge1xuICAgICRrZXl3b3JkOiBzdHItc2xpY2UoJGZpcnN0LXZhbCwgMSwgJGlzLXNwZWMtc3ludGF4IC0gMik7XG4gICAgJHBvczogc3RyLXNsaWNlKCRmaXJzdC12YWwsICRpcy1zcGVjLXN5bnRheCArIDMsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xuICAgICRwb3M6IGFwcGVuZCgkcG9zLCAka2V5d29yZCwgY29tbWEpO1xuXG4gICAgJGdyYWRpZW50czogKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRwcmVmaXggKyAkcG9zICsgJHN1ZmZpeCxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgIClcbiAgfVxuXG4gIEBlbHNlIGlmICRpcy1zcGVjLXN5bnRheCA9PSAxIHtcbiAgICAkcG9zOiBzdHItc2xpY2UoJGZpcnN0LXZhbCwgJGlzLXNwZWMtc3ludGF4ICsgMywgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XG5cbiAgICAkZ3JhZGllbnRzOiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJHByZWZpeCArICRwb3MgKyAkc3VmZml4LFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKVxuICB9XG5cbiAgQGVsc2UgaWYgc3RyLWluZGV4KCRpbWFnZSwgXCJjb3ZlclwiKSBvciBzdHItaW5kZXgoJGltYWdlLCBcImNvbnRhaW5cIikge1xuICAgIEB3YXJuIFwiUmFkaWFsLWdyYWRpZW50IG5lZWRzIHRvIGJlIHVwZGF0ZWQgdG8gY29uZm9ybSB0byBsYXRlc3Qgc3BlYy5cIjtcblxuICAgICRncmFkaWVudHM6IChcbiAgICAgIHdlYmtpdC1pbWFnZTogbnVsbCxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgIClcbiAgfVxuXG4gIEBlbHNlIHtcbiAgICAkZ3JhZGllbnRzOiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJGltYWdlLFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKVxuICB9XG5cbiAgQHJldHVybiAkZ3JhZGllbnRzO1xufVxuIiwiLy8gVXNlciBmb3IgbGluZWFyIGFuZCByYWRpYWwgZ3JhZGllbnRzIHdpdGhpbiBiYWNrZ3JvdW5kLWltYWdlIG9yIGJvcmRlci1pbWFnZSBwcm9wZXJ0aWVzXG5cbkBmdW5jdGlvbiBfcmVuZGVyLWdyYWRpZW50cygkZ3JhZGllbnQtcG9zaXRpb25zLCAkZ3JhZGllbnRzLCAkZ3JhZGllbnQtdHlwZSwgJHZlbmRvcjogZmFsc2UpIHtcbiAgJHByZS1zcGVjOiBudWxsO1xuICAkc3BlYzogbnVsbDtcbiAgJHZlbmRvci1ncmFkaWVudHM6IG51bGw7XG4gIEBpZiAkZ3JhZGllbnQtdHlwZSA9PSBsaW5lYXIge1xuICAgIEBpZiAkZ3JhZGllbnQtcG9zaXRpb25zIHtcbiAgICAgICRwcmUtc3BlYzogbnRoKCRncmFkaWVudC1wb3NpdGlvbnMsIDEpO1xuICAgICAgJHNwZWM6ICAgICBudGgoJGdyYWRpZW50LXBvc2l0aW9ucywgMik7XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IHJhZGlhbCB7XG4gICAgJHByZS1zcGVjOiBudGgoJGdyYWRpZW50LXBvc2l0aW9ucywgMSk7XG4gICAgJHNwZWM6ICAgICBudGgoJGdyYWRpZW50LXBvc2l0aW9ucywgMik7XG4gIH1cblxuICBAaWYgJHZlbmRvciB7XG4gICAgJHZlbmRvci1ncmFkaWVudHM6IC0jeyR2ZW5kb3J9LSN7JGdyYWRpZW50LXR5cGV9LWdyYWRpZW50KCN7JHByZS1zcGVjfSAkZ3JhZGllbnRzKTtcbiAgfVxuICBAZWxzZSBpZiAkdmVuZG9yID09IGZhbHNlIHtcbiAgICAkdmVuZG9yLWdyYWRpZW50czogXCIjeyRncmFkaWVudC10eXBlfS1ncmFkaWVudCgjeyRzcGVjfSAjeyRncmFkaWVudHN9KVwiO1xuICAgICR2ZW5kb3ItZ3JhZGllbnRzOiB1bnF1b3RlKCR2ZW5kb3ItZ3JhZGllbnRzKTtcbiAgfVxuICBAcmV0dXJuICR2ZW5kb3ItZ3JhZGllbnRzO1xufVxuIiwiQGZ1bmN0aW9uIF9zaGFwZS1zaXplLXN0cmlwcGVyKCRzaGFwZS1zaXplKSB7XG4gICRzaGFwZS1zaXplLXNwZWM6IG51bGw7XG4gIEBlYWNoICR2YWx1ZSBpbiAkc2hhcGUtc2l6ZSB7XG4gICAgQGlmICgkdmFsdWUgPT0gXCJjb3ZlclwiKSBvciAoJHZhbHVlID09IFwiY29udGFpblwiKSB7XG4gICAgICAkdmFsdWU6IG51bGw7XG4gICAgfVxuICAgICRzaGFwZS1zaXplLXNwZWM6IFwiI3skc2hhcGUtc2l6ZS1zcGVjfSAjeyR2YWx1ZX1cIjtcbiAgfVxuICBAcmV0dXJuICRzaGFwZS1zaXplLXNwZWM7XG59XG4iLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4vLyBIZWxwZXIgZnVuY3Rpb24gZm9yIGxpbmVhci9yYWRpYWwtZ3JhZGllbnQtcGFyc2Vycy5cbi8vIFNvdXJjZTogaHR0cDovL3Nhc3NtZWlzdGVyLmNvbS9naXN0Lzk2NDc0MDhcbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbkBmdW5jdGlvbiBfc3RyLXRvLW51bSgkc3RyaW5nKSB7XG4gIC8vIE1hdHJpY2VzXG4gICRzdHJpbmdzOiAnMCcgJzEnICcyJyAnMycgJzQnICc1JyAnNicgJzcnICc4JyAnOSc7XG4gICRudW1iZXJzOiAgMCAgIDEgICAyICAgMyAgIDQgICA1ICAgNiAgIDcgICA4ICAgOTtcblxuICAvLyBSZXN1bHRcbiAgJHJlc3VsdDogMDtcbiAgJGRpdmlkZXI6IDA7XG4gICRtaW51czogZmFsc2U7XG5cbiAgLy8gTG9vcGluZyB0aHJvdWdoIGFsbCBjaGFyYWN0ZXJzXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggc3RyLWxlbmd0aCgkc3RyaW5nKSB7XG4gICAgJGNoYXJhY3Rlcjogc3RyLXNsaWNlKCRzdHJpbmcsICRpLCAkaSk7XG4gICAgJGluZGV4OiBpbmRleCgkc3RyaW5ncywgJGNoYXJhY3Rlcik7XG5cbiAgICBAaWYgJGNoYXJhY3RlciA9PSAnLScge1xuICAgICAgJG1pbnVzOiB0cnVlO1xuICAgIH1cblxuICAgIEBlbHNlIGlmICRjaGFyYWN0ZXIgPT0gJy4nIHtcbiAgICAgICRkaXZpZGVyOiAxO1xuICAgIH1cblxuICAgIEBlbHNlIHtcbiAgICAgIEBpZiBub3QgJGluZGV4IHtcbiAgICAgICAgJHJlc3VsdDogaWYoJG1pbnVzLCAkcmVzdWx0ICogLTEsICRyZXN1bHQpO1xuICAgICAgICBAcmV0dXJuIF9jb252ZXJ0LXVuaXRzKCRyZXN1bHQsIHN0ci1zbGljZSgkc3RyaW5nLCAkaSkpO1xuICAgICAgfVxuXG4gICAgICAkbnVtYmVyOiBudGgoJG51bWJlcnMsICRpbmRleCk7XG5cbiAgICAgIEBpZiAkZGl2aWRlciA9PSAwIHtcbiAgICAgICAgJHJlc3VsdDogJHJlc3VsdCAqIDEwO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSB7XG4gICAgICAgIC8vIE1vdmUgdGhlIGRlY2ltYWwgZG90IHRvIHRoZSBsZWZ0XG4gICAgICAgICRkaXZpZGVyOiAkZGl2aWRlciAqIDEwO1xuICAgICAgICAkbnVtYmVyOiAkbnVtYmVyIC8gJGRpdmlkZXI7XG4gICAgICB9XG5cbiAgICAgICRyZXN1bHQ6ICRyZXN1bHQgKyAkbnVtYmVyO1xuICAgIH1cbiAgfVxuICBAcmV0dXJuIGlmKCRtaW51cywgJHJlc3VsdCAqIC0xLCAkcmVzdWx0KTtcbn1cbiIsIkBmdW5jdGlvbiBhc3NpZ24taW5wdXRzKCRpbnB1dHMsICRwc2V1ZG86IG51bGwpIHtcbiAgJGxpc3QgOiAoKTtcblxuICBAZWFjaCAkaW5wdXQgaW4gJGlucHV0cyB7XG4gICAgJGlucHV0OiB1bnF1b3RlKCRpbnB1dCk7XG4gICAgJGlucHV0OiBpZigkcHNldWRvLCAkaW5wdXQgKyBcIjpcIiArICRwc2V1ZG8sICRpbnB1dCk7XG4gICAgJGxpc3Q6IGFwcGVuZCgkbGlzdCwgJGlucHV0LCBjb21tYSk7XG4gIH1cblxuICBAcmV0dXJuICRsaXN0O1xufSIsIi8vIFByb2dyYW1hdGljYWxseSBkZXRlcm1pbmVzIHdoZXRoZXIgYSBjb2xvciBpcyBsaWdodCBvciBkYXJrXG4vLyBSZXR1cm5zIGEgYm9vbGVhblxuLy8gTW9yZSBkZXRhaWxzIGhlcmUgaHR0cDovL3JvYm90cy50aG91Z2h0Ym90LmNvbS9jbG9zZXItbG9vay1jb2xvci1saWdodG5lc3NcblxuQGZ1bmN0aW9uIGlzLWxpZ2h0KCRoZXgtY29sb3IpIHtcbiAgJC1sb2NhbC1yZWQ6IHJlZChyZ2JhKCRoZXgtY29sb3IsIDEuMCkpO1xuICAkLWxvY2FsLWdyZWVuOiBncmVlbihyZ2JhKCRoZXgtY29sb3IsIDEuMCkpO1xuICAkLWxvY2FsLWJsdWU6IGJsdWUocmdiYSgkaGV4LWNvbG9yLCAxLjApKTtcblxuICAkLWxvY2FsLWxpZ2h0bmVzczogKCQtbG9jYWwtcmVkICogMC4yMTI2ICsgJC1sb2NhbC1ncmVlbiAqIDAuNzE1MiArICQtbG9jYWwtYmx1ZSAqIDAuMDcyMikgLyAyNTU7XG5cbiAgQHJldHVybiAkLWxvY2FsLWxpZ2h0bmVzcyA+IC42O1xufVxuIiwiLy8gVGVzdCBhIFNhc3MgbGlzdCB0byBzZWUgaWYgaXQgY29udGFpbnMgYSBkZWZpbmVkIHZhbHVlXG5cbkBmdW5jdGlvbiBjb250YWlucygkbGlzdCwgJHZhbHVlKSB7XG4gIEByZXR1cm4gbm90IG5vdCBpbmRleCgkbGlzdCwgJHZhbHVlKTtcbn1cbiIsIi8vIENoZWNrIGZvciBhIHZhbGlkIGxlbmd0aFxuXG5AZnVuY3Rpb24gaXMtbGVuZ3RoKCR2YWx1ZSkge1xuICBAcmV0dXJuIGNvbnRhaW5zKDAgXCJhdXRvXCIgXCJpbml0aWFsXCIgXCJpbmhlcml0XCIsICR2YWx1ZSlcbiAgICAgICAgICBvciB0eXBlLW9mKCR2YWx1ZSkgPT0gXCJudW1iZXJcIiBhbmQgbm90IHVuaXRsZXNzKCR2YWx1ZSlcbiAgICAgICAgICBvciBzdHItc2xpY2UoJHZhbHVlICsgXCJcIiwgMSwgNCkgPT0gXCJjYWxjXCI7XG59XG4iLCIvLyBDaGVjayBmb3IgYSB2YWxpZCBzaXplXG5cbkBmdW5jdGlvbiBpcy1zaXplKCR2YWx1ZSkge1xuICBAcmV0dXJuIGlzLWxlbmd0aCgkdmFsdWUpXG4gICAgICAgICAgb3IgY29udGFpbnMoXCJmaWxsXCIgXCJmaXQtY29udGVudFwiIFwibWluLWNvbnRlbnRcIiBcIm1heC1jb250ZW50XCIsICR2YWx1ZSk7XG59XG4iLCIvLyBDb252ZXJ0IHBpeGVscyB0byBlbXNcbi8vIGVnLiBmb3IgYSByZWxhdGlvbmFsIHZhbHVlIG9mIDEycHggd3JpdGUgZW0oMTIpIHdoZW4gdGhlIHBhcmVudCBpcyAxNnB4XG4vLyBpZiB0aGUgcGFyZW50IGlzIGFub3RoZXIgdmFsdWUgc2F5IDI0cHggd3JpdGUgZW0oMTIsIDI0KVxuXG5AZnVuY3Rpb24gZW0oJHB4dmFsLCAkYmFzZTogJGVtLWJhc2UpIHtcbiAgQGlmIG5vdCB1bml0bGVzcygkcHh2YWwpIHtcbiAgICAgICRweHZhbDogc3RyaXAtdW5pdHMoJHB4dmFsKTtcbiAgfVxuICBAaWYgbm90IHVuaXRsZXNzKCRiYXNlKSB7XG4gICAgICAkYmFzZTogc3RyaXAtdW5pdHMoJGJhc2UpO1xuICB9XG4gIEByZXR1cm4gKCRweHZhbCAvICRiYXNlKSAqIDFlbTtcbn1cbiIsIi8vIENvbnZlcnQgcGl4ZWxzIHRvIHJlbXNcbi8vIGVnLiBmb3IgYSByZWxhdGlvbmFsIHZhbHVlIG9mIDEycHggd3JpdGUgcmVtKDEyKVxuLy8gQXNzdW1lcyAkZW0tYmFzZSBpcyB0aGUgZm9udC1zaXplIG9mIDxodG1sPlxuXG5AZnVuY3Rpb24gcmVtKCRweHZhbCkge1xuICBAaWYgbm90IHVuaXRsZXNzKCRweHZhbCkge1xuICAgICAgJHB4dmFsOiBzdHJpcC11bml0cygkcHh2YWwpO1xuICB9XG5cbiAgJGJhc2U6ICRlbS1iYXNlO1xuICBAaWYgbm90IHVuaXRsZXNzKCRiYXNlKSB7XG4gICAgICAkYmFzZTogc3RyaXAtdW5pdHMoJGJhc2UpO1xuICB9XG4gIEByZXR1cm4gKCRweHZhbCAvICRiYXNlKSAqIDFyZW07XG59XG4iLCIvLyBTcnRpcHMgdGhlIHVuaXRzIGZyb20gYSB2YWx1ZS4gZS5nLiAxMnB4IC0+IDEyXG5cbkBmdW5jdGlvbiBzdHJpcC11bml0cygkdmFsKSB7XG4gIEByZXR1cm4gKCR2YWwgLyAoJHZhbCAqIDAgKyAxKSk7XG59XG4iLCIvLyBBZGQgcGVyY2VudGFnZSBvZiB3aGl0ZSB0byBhIGNvbG9yXG5AZnVuY3Rpb24gdGludCgkY29sb3IsICRwZXJjZW50KXtcbiAgQHJldHVybiBtaXgod2hpdGUsICRjb2xvciwgJHBlcmNlbnQpO1xufVxuXG4vLyBBZGQgcGVyY2VudGFnZSBvZiBibGFjayB0byBhIGNvbG9yXG5AZnVuY3Rpb24gc2hhZGUoJGNvbG9yLCAkcGVyY2VudCl7XG4gIEByZXR1cm4gbWl4KGJsYWNrLCAkY29sb3IsICRwZXJjZW50KTtcbn1cbiIsIi8vIFJldHVybiB2ZW5kb3ItcHJlZml4ZWQgcHJvcGVydHkgbmFtZXMgaWYgYXBwcm9wcmlhdGVcbi8vIEV4YW1wbGU6IHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoKHRyYW5zZm9ybSwgY29sb3IsIGJhY2tncm91bmQpLCBtb3opIC0+IC1tb3otdHJhbnNmb3JtLCBjb2xvciwgYmFja2dyb3VuZFxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuQGZ1bmN0aW9uIHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoJHByb3BzLCAkdmVuZG9yOiBmYWxzZSkge1xuXHQkbmV3LXByb3BzOiAoKTtcblx0XG5cdEBlYWNoICRwcm9wIGluICRwcm9wcyB7XG5cdFx0JG5ldy1wcm9wczogYXBwZW5kKCRuZXctcHJvcHMsIHRyYW5zaXRpb24tcHJvcGVydHktbmFtZSgkcHJvcCwgJHZlbmRvciksIGNvbW1hKTtcblx0fVxuXG5cdEByZXR1cm4gJG5ldy1wcm9wcztcbn1cblxuQGZ1bmN0aW9uIHRyYW5zaXRpb24tcHJvcGVydHktbmFtZSgkcHJvcCwgJHZlbmRvcjogZmFsc2UpIHtcblx0Ly8gcHV0IG90aGVyIHByb3BlcnRpZXMgdGhhdCBuZWVkIHRvIGJlIHByZWZpeGVkIGhlcmUgYXN3ZWxsXG5cdEBpZiAkdmVuZG9yIGFuZCAkcHJvcCA9PSB0cmFuc2Zvcm0ge1xuXHRcdEByZXR1cm4gdW5xdW90ZSgnLScrJHZlbmRvcisnLScrJHByb3ApO1xuXHR9XG5cdEBlbHNlIHtcblx0XHRAcmV0dXJuICRwcm9wO1xuXHR9XG59IiwiLy8gQ29udmVydCBzaG9ydGhhbmQgdG8gdGhlIDQtdmFsdWUgc3ludGF4XG5cbkBmdW5jdGlvbiB1bnBhY2soJHNob3J0aGFuZCkge1xuICBAaWYgbGVuZ3RoKCRzaG9ydGhhbmQpID09IDEge1xuICAgIEByZXR1cm4gbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDEpO1xuICB9XG4gIEBlbHNlIGlmIGxlbmd0aCgkc2hvcnRoYW5kKSA9PSAyIHtcbiAgICBAcmV0dXJuIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMikgbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAyKTtcbiAgfVxuICBAZWxzZSBpZiBsZW5ndGgoJHNob3J0aGFuZCkgPT0gMyB7XG4gICAgQHJldHVybiBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDIpIG50aCgkc2hvcnRoYW5kLCAzKSBudGgoJHNob3J0aGFuZCwgMik7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gJHNob3J0aGFuZDtcbiAgfVxufVxuXG4iLCIvLyBTY2FsaW5nIFZhcmlhYmxlc1xuJGdvbGRlbjogICAgICAgICAgIDEuNjE4O1xuJG1pbm9yLXNlY29uZDogICAgIDEuMDY3O1xuJG1ham9yLXNlY29uZDogICAgIDEuMTI1O1xuJG1pbm9yLXRoaXJkOiAgICAgIDEuMjtcbiRtYWpvci10aGlyZDogICAgICAxLjI1O1xuJHBlcmZlY3QtZm91cnRoOiAgIDEuMzMzO1xuJGF1Z21lbnRlZC1mb3VydGg6IDEuNDE0O1xuJHBlcmZlY3QtZmlmdGg6ICAgIDEuNTtcbiRtaW5vci1zaXh0aDogICAgICAxLjY7XG4kbWFqb3Itc2l4dGg6ICAgICAgMS42Njc7XG4kbWlub3Itc2V2ZW50aDogICAgMS43Nzg7XG4kbWFqb3Itc2V2ZW50aDogICAgMS44NzU7XG4kb2N0YXZlOiAgICAgICAgICAgMjtcbiRtYWpvci10ZW50aDogICAgICAyLjU7XG4kbWFqb3ItZWxldmVudGg6ICAgMi42Njc7XG4kbWFqb3ItdHdlbGZ0aDogICAgMztcbiRkb3VibGUtb2N0YXZlOiAgICA0O1xuXG4kbW9kdWxhci1zY2FsZS1yYXRpbzogJHBlcmZlY3QtZm91cnRoICFkZWZhdWx0O1xuJG1vZHVsYXItc2NhbGUtYmFzZTogZW0oJGVtLWJhc2UpICFkZWZhdWx0O1xuXG5AZnVuY3Rpb24gbW9kdWxhci1zY2FsZSgkaW5jcmVtZW50LCAkdmFsdWU6ICRtb2R1bGFyLXNjYWxlLWJhc2UsICRyYXRpbzogJG1vZHVsYXItc2NhbGUtcmF0aW8pIHtcbiAgJHYxOiBudGgoJHZhbHVlLCAxKTtcbiAgJHYyOiBudGgoJHZhbHVlLCBsZW5ndGgoJHZhbHVlKSk7XG4gICR2YWx1ZTogJHYxO1xuXG4gIC8vIHNjYWxlICR2MiB0byBqdXN0IGFib3ZlICR2MVxuICBAd2hpbGUgJHYyID4gJHYxIHtcbiAgICAkdjI6ICgkdjIgLyAkcmF0aW8pOyAvLyB3aWxsIGJlIG9mZi1ieS0xXG4gIH1cbiAgQHdoaWxlICR2MiA8ICR2MSB7XG4gICAgJHYyOiAoJHYyICogJHJhdGlvKTsgLy8gd2lsbCBmaXggb2ZmLWJ5LTFcbiAgfVxuXG4gIC8vIGNoZWNrIEFGVEVSIHNjYWxpbmcgJHYyIHRvIHByZXZlbnQgZG91YmxlLWNvdW50aW5nIGNvcm5lci1jYXNlXG4gICRkb3VibGUtc3RyYW5kZWQ6ICR2MiA+ICR2MTtcblxuICBAaWYgJGluY3JlbWVudCA+IDAge1xuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGluY3JlbWVudCB7XG4gICAgICBAaWYgJGRvdWJsZS1zdHJhbmRlZCBhbmQgKCR2MSAqICRyYXRpbykgPiAkdjIge1xuICAgICAgICAkdmFsdWU6ICR2MjtcbiAgICAgICAgJHYyOiAoJHYyICogJHJhdGlvKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAkdjE6ICgkdjEgKiAkcmF0aW8pO1xuICAgICAgICAkdmFsdWU6ICR2MTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaWYgJGluY3JlbWVudCA8IDAge1xuICAgIC8vIGFkanVzdCAkdjIgdG8ganVzdCBiZWxvdyAkdjFcbiAgICBAaWYgJGRvdWJsZS1zdHJhbmRlZCB7XG4gICAgICAkdjI6ICgkdjIgLyAkcmF0aW8pO1xuICAgIH1cblxuICAgIEBmb3IgJGkgZnJvbSAkaW5jcmVtZW50IHRocm91Z2ggLTEge1xuICAgICAgQGlmICRkb3VibGUtc3RyYW5kZWQgYW5kICgkdjEgLyAkcmF0aW8pIDwgJHYyIHtcbiAgICAgICAgJHZhbHVlOiAkdjI7XG4gICAgICAgICR2MjogKCR2MiAvICRyYXRpbyk7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgJHYxOiAoJHYxIC8gJHJhdGlvKTtcbiAgICAgICAgJHZhbHVlOiAkdjE7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkdmFsdWU7XG59XG4iLCIvLyBodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLWFuaW1hdGlvbnMvI3RoZS1hbmltYXRpb24tbmFtZS1wcm9wZXJ0eS1cbi8vIEVhY2ggb2YgdGhlc2UgbWl4aW5zIHN1cHBvcnQgY29tbWEgc2VwYXJhdGVkIGxpc3RzIG9mIHZhbHVlcywgd2hpY2ggYWxsb3dzIGRpZmZlcmVudCB0cmFuc2l0aW9ucyBmb3IgaW5kaXZpZHVhbCBwcm9wZXJ0aWVzIHRvIGJlIGRlc2NyaWJlZCBpbiBhIHNpbmdsZSBzdHlsZSBydWxlLiBFYWNoIHZhbHVlIGluIHRoZSBsaXN0IGNvcnJlc3BvbmRzIHRvIHRoZSB2YWx1ZSBhdCB0aGF0IHNhbWUgcG9zaXRpb24gaW4gdGhlIG90aGVyIHByb3BlcnRpZXMuXG5cbi8vIE9mZmljaWFsIGFuaW1hdGlvbiBzaG9ydGhhbmQgcHJvcGVydHkuXG5AbWl4aW4gYW5pbWF0aW9uICgkYW5pbWF0aW9ucy4uLikge1xuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24sICRhbmltYXRpb25zLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG4vLyBJbmRpdmlkdWFsIEFuaW1hdGlvbiBQcm9wZXJ0aWVzXG5AbWl4aW4gYW5pbWF0aW9uLW5hbWUgKCRuYW1lcy4uLikge1xuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tbmFtZSwgJG5hbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5cbkBtaXhpbiBhbmltYXRpb24tZHVyYXRpb24gKCR0aW1lcy4uLikge1xuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZHVyYXRpb24sICR0aW1lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuXG5AbWl4aW4gYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbiAoJG1vdGlvbnMuLi4pIHtcbi8vIGVhc2UgfCBsaW5lYXIgfCBlYXNlLWluIHwgZWFzZS1vdXQgfCBlYXNlLWluLW91dFxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uLCAkbW90aW9ucywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuXG5AbWl4aW4gYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCAoJHZhbHVlcy4uLikge1xuLy8gaW5maW5pdGUgfCA8bnVtYmVyPlxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24taXRlcmF0aW9uLWNvdW50LCAkdmFsdWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5cbkBtaXhpbiBhbmltYXRpb24tZGlyZWN0aW9uICgkZGlyZWN0aW9ucy4uLikge1xuLy8gbm9ybWFsIHwgYWx0ZXJuYXRlXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1kaXJlY3Rpb24sICRkaXJlY3Rpb25zLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5cbkBtaXhpbiBhbmltYXRpb24tcGxheS1zdGF0ZSAoJHN0YXRlcy4uLikge1xuLy8gcnVubmluZyB8IHBhdXNlZFxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tcGxheS1zdGF0ZSwgJHN0YXRlcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuXG5AbWl4aW4gYW5pbWF0aW9uLWRlbGF5ICgkdGltZXMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWRlbGF5LCAkdGltZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cblxuQG1peGluIGFuaW1hdGlvbi1maWxsLW1vZGUgKCRtb2Rlcy4uLikge1xuLy8gbm9uZSB8IGZvcndhcmRzIHwgYmFja3dhcmRzIHwgYm90aFxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZmlsbC1tb2RlLCAkbW9kZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG4iLCJAbWl4aW4gYXBwZWFyYW5jZSAoJHZhbHVlKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFwcGVhcmFuY2UsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xufVxuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8gQmFja2ZhY2UtdmlzaWJpbGl0eSBtaXhpblxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuQG1peGluIGJhY2tmYWNlLXZpc2liaWxpdHkoJHZpc2liaWxpdHkpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYmFja2ZhY2UtdmlzaWJpbGl0eSwgJHZpc2liaWxpdHksIHdlYmtpdCBzcGVjKTtcbn1cbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi8vIEJhY2tncm91bmQgcHJvcGVydHkgZm9yIGFkZGluZyBtdWx0aXBsZSBiYWNrZ3JvdW5kcyB1c2luZyBzaG9ydGhhbmRcbi8vIG5vdGF0aW9uLlxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuXG5AbWl4aW4gYmFja2dyb3VuZCgkYmFja2dyb3VuZHMuLi4pIHtcbiAgJHdlYmtpdC1iYWNrZ3JvdW5kczogKCk7XG4gICRzcGVjLWJhY2tncm91bmRzOiAoKTtcblxuICBAZWFjaCAkYmFja2dyb3VuZCBpbiAkYmFja2dyb3VuZHMge1xuICAgICR3ZWJraXQtYmFja2dyb3VuZDogKCk7XG4gICAgJHNwZWMtYmFja2dyb3VuZDogKCk7XG4gICAgJGJhY2tncm91bmQtdHlwZTogdHlwZS1vZigkYmFja2dyb3VuZCk7XG5cbiAgICBAaWYgJGJhY2tncm91bmQtdHlwZSA9PSBzdHJpbmcgb3IgJGJhY2tncm91bmQtdHlwZSA9PSBsaXN0IHtcbiAgICAgICRiYWNrZ3JvdW5kLXN0cjogaWYoJGJhY2tncm91bmQtdHlwZSA9PSBsaXN0LCBudGgoJGJhY2tncm91bmQsIDEpLCAkYmFja2dyb3VuZCk7XG5cbiAgICAgICR1cmwtc3RyOiAgICAgICBzdHItc2xpY2UoJGJhY2tncm91bmQtc3RyLCAwLCAzKTtcbiAgICAgICRncmFkaWVudC10eXBlOiBzdHItc2xpY2UoJGJhY2tncm91bmQtc3RyLCAwLCA2KTtcblxuICAgICAgQGlmICR1cmwtc3RyID09IFwidXJsXCIge1xuICAgICAgICAkd2Via2l0LWJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgICAgICAgICRzcGVjLWJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcImxpbmVhclwiIHtcbiAgICAgICAgJGdyYWRpZW50czogX2xpbmVhci1ncmFkaWVudC1wYXJzZXIoXCIjeyRiYWNrZ3JvdW5kfVwiKTtcbiAgICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XG4gICAgICAgICRzcGVjLWJhY2tncm91bmQ6ICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcbiAgICAgIH1cblxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJyYWRpYWxcIiB7XG4gICAgICAgICRncmFkaWVudHM6IF9yYWRpYWwtZ3JhZGllbnQtcGFyc2VyKFwiI3skYmFja2dyb3VuZH1cIik7XG4gICAgICAgICR3ZWJraXQtYmFja2dyb3VuZDogbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xuICAgICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICAgICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAZWxzZSB7XG4gICAgICAkd2Via2l0LWJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICB9XG5cbiAgICAkd2Via2l0LWJhY2tncm91bmRzOiBhcHBlbmQoJHdlYmtpdC1iYWNrZ3JvdW5kcywgJHdlYmtpdC1iYWNrZ3JvdW5kLCBjb21tYSk7XG4gICAgJHNwZWMtYmFja2dyb3VuZHM6ICAgYXBwZW5kKCRzcGVjLWJhY2tncm91bmRzLCAgICRzcGVjLWJhY2tncm91bmQsICAgY29tbWEpO1xuICB9XG5cbiAgYmFja2dyb3VuZDogJHdlYmtpdC1iYWNrZ3JvdW5kcztcbiAgYmFja2dyb3VuZDogJHNwZWMtYmFja2dyb3VuZHM7XG59XG4iLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4vLyBCYWNrZ3JvdW5kLWltYWdlIHByb3BlcnR5IGZvciBhZGRpbmcgbXVsdGlwbGUgYmFja2dyb3VuZCBpbWFnZXMgd2l0aFxuLy8gZ3JhZGllbnRzLCBvciBmb3Igc3RyaW5naW5nIG11bHRpcGxlIGdyYWRpZW50cyB0b2dldGhlci5cbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cblxuQG1peGluIGJhY2tncm91bmQtaW1hZ2UoJGltYWdlcy4uLikge1xuICAkd2Via2l0LWltYWdlczogKCk7XG4gICRzcGVjLWltYWdlczogKCk7XG5cbiAgQGVhY2ggJGltYWdlIGluICRpbWFnZXMge1xuICAgICR3ZWJraXQtaW1hZ2U6ICgpO1xuICAgICRzcGVjLWltYWdlOiAoKTtcblxuICAgIEBpZiAodHlwZS1vZigkaW1hZ2UpID09IHN0cmluZykge1xuICAgICAgJHVybC1zdHI6ICAgICAgIHN0ci1zbGljZSgkaW1hZ2UsIDAsIDMpO1xuICAgICAgJGdyYWRpZW50LXR5cGU6IHN0ci1zbGljZSgkaW1hZ2UsIDAsIDYpO1xuXG4gICAgICBAaWYgJHVybC1zdHIgPT0gXCJ1cmxcIiB7XG4gICAgICAgICR3ZWJraXQtaW1hZ2U6ICRpbWFnZTtcbiAgICAgICAgICAkc3BlYy1pbWFnZTogJGltYWdlO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcImxpbmVhclwiIHtcbiAgICAgICAgJGdyYWRpZW50czogX2xpbmVhci1ncmFkaWVudC1wYXJzZXIoJGltYWdlKTtcbiAgICAgICAgJHdlYmtpdC1pbWFnZTogIG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcbiAgICAgICAgJHNwZWMtaW1hZ2U6ICAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwicmFkaWFsXCIge1xuICAgICAgICAkZ3JhZGllbnRzOiBfcmFkaWFsLWdyYWRpZW50LXBhcnNlcigkaW1hZ2UpO1xuICAgICAgICAkd2Via2l0LWltYWdlOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XG4gICAgICAgICRzcGVjLWltYWdlOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJHdlYmtpdC1pbWFnZXM6IGFwcGVuZCgkd2Via2l0LWltYWdlcywgJHdlYmtpdC1pbWFnZSwgY29tbWEpO1xuICAgICRzcGVjLWltYWdlczogICBhcHBlbmQoJHNwZWMtaW1hZ2VzLCAgICRzcGVjLWltYWdlLCAgIGNvbW1hKTtcbiAgfVxuXG4gIGJhY2tncm91bmQtaW1hZ2U6ICR3ZWJraXQtaW1hZ2VzO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAkc3BlYy1pbWFnZXM7XG59XG4iLCJAbWl4aW4gYm9yZGVyLWltYWdlKCRib3JkZXJzLi4uKSB7XG4gICR3ZWJraXQtYm9yZGVyczogKCk7XG4gICRzcGVjLWJvcmRlcnM6ICgpO1xuXG4gIEBlYWNoICRib3JkZXIgaW4gJGJvcmRlcnMge1xuICAgICR3ZWJraXQtYm9yZGVyOiAoKTtcbiAgICAkc3BlYy1ib3JkZXI6ICgpO1xuICAgICRib3JkZXItdHlwZTogdHlwZS1vZigkYm9yZGVyKTtcblxuICAgIEBpZiAkYm9yZGVyLXR5cGUgPT0gc3RyaW5nIG9yIGxpc3Qge1xuICAgICAgJGJvcmRlci1zdHI6IGlmKCRib3JkZXItdHlwZSA9PSBsaXN0LCBudGgoJGJvcmRlciwgMSksICRib3JkZXIpO1xuXG4gICAgICAkdXJsLXN0cjogICAgICAgc3RyLXNsaWNlKCRib3JkZXItc3RyLCAwLCAzKTtcbiAgICAgICRncmFkaWVudC10eXBlOiBzdHItc2xpY2UoJGJvcmRlci1zdHIsIDAsIDYpO1xuXG4gICAgICBAaWYgJHVybC1zdHIgPT0gXCJ1cmxcIiB7XG4gICAgICAgICR3ZWJraXQtYm9yZGVyOiAkYm9yZGVyO1xuICAgICAgICAgICRzcGVjLWJvcmRlcjogJGJvcmRlcjtcbiAgICAgIH1cblxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJsaW5lYXJcIiB7XG4gICAgICAgICRncmFkaWVudHM6IF9saW5lYXItZ3JhZGllbnQtcGFyc2VyKFwiI3skYm9yZGVyfVwiKTtcbiAgICAgICAgJHdlYmtpdC1ib3JkZXI6IG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcbiAgICAgICAgJHNwZWMtYm9yZGVyOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwicmFkaWFsXCIge1xuICAgICAgICAkZ3JhZGllbnRzOiBfcmFkaWFsLWdyYWRpZW50LXBhcnNlcihcIiN7JGJvcmRlcn1cIik7XG4gICAgICAgICR3ZWJraXQtYm9yZGVyOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XG4gICAgICAgICRzcGVjLWJvcmRlcjogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSB7XG4gICAgICAgICR3ZWJraXQtYm9yZGVyOiAkYm9yZGVyO1xuICAgICAgICAgICRzcGVjLWJvcmRlcjogJGJvcmRlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAZWxzZSB7XG4gICAgICAkd2Via2l0LWJvcmRlcjogJGJvcmRlcjtcbiAgICAgICAgJHNwZWMtYm9yZGVyOiAkYm9yZGVyO1xuICAgIH1cblxuICAgICR3ZWJraXQtYm9yZGVyczogYXBwZW5kKCR3ZWJraXQtYm9yZGVycywgJHdlYmtpdC1ib3JkZXIsIGNvbW1hKTtcbiAgICAkc3BlYy1ib3JkZXJzOiAgIGFwcGVuZCgkc3BlYy1ib3JkZXJzLCAgICRzcGVjLWJvcmRlciwgICBjb21tYSk7XG4gIH1cblxuICAtd2Via2l0LWJvcmRlci1pbWFnZTogJHdlYmtpdC1ib3JkZXJzO1xuICAgICAgICAgIGJvcmRlci1pbWFnZTogJHNwZWMtYm9yZGVycztcbiAgICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xufVxuXG4vL0V4YW1wbGVzOlxuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKHVybChcImltYWdlLnBuZ1wiKSk7XG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UodXJsKFwiaW1hZ2UucG5nXCIpIDIwIHN0cmV0Y2gpO1xuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKGxpbmVhci1ncmFkaWVudCg0NWRlZywgb3JhbmdlLCB5ZWxsb3cpKTtcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZShsaW5lYXItZ3JhZGllbnQoNDVkZWcsIG9yYW5nZSwgeWVsbG93KSBzdHJldGNoKTtcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZShsaW5lYXItZ3JhZGllbnQoNDVkZWcsIG9yYW5nZSwgeWVsbG93KSAyMCAzMCA0MCA1MCBzdHJldGNoIHJvdW5kKTtcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZShyYWRpYWwtZ3JhZGllbnQodG9wLCBjb3Zlciwgb3JhbmdlLCB5ZWxsb3csIG9yYW5nZSkpO1xuIiwiLy8gQm9yZGVyIFJhZGl1cyAoU2hvcnRoYW5kKVxuLy8gUHJvdmlkZXMgYSBzaG9ydGhhbmQgc3ludGF4IHRvIHRhcmdldCBhbmQgYWRkIGJvcmRlciByYWRpaSB0byBib3RoIGNvcm5lcnMgb24gb25lIHNpZGUgb2YgYSBib3hcblxuQG1peGluIGJvcmRlci10b3AtcmFkaXVzKCRyYWRpaSkge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkcmFkaWk7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkcmFkaWk7XG59XG5cbkBtaXhpbiBib3JkZXItcmlnaHQtcmFkaXVzKCRyYWRpaSkge1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJHJhZGlpO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJHJhZGlpO1xufVxuXG5AbWl4aW4gYm9yZGVyLWJvdHRvbS1yYWRpdXMoJHJhZGlpKSB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRyYWRpaTtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRyYWRpaTtcbn1cblxuQG1peGluIGJvcmRlci1sZWZ0LXJhZGl1cygkcmFkaWkpIHtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJHJhZGlpO1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkcmFkaWk7XG59XG4iLCJAbWl4aW4gYm94LXNpemluZyAoJGJveCkge1xuLy8gIGNvbnRlbnQtYm94IHwgYm9yZGVyLWJveCB8IGluaGVyaXRcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LXNpemluZywgJGJveCwgd2Via2l0IG1veiBzcGVjKTtcbn1cbiIsIkBtaXhpbiBjYWxjKCRwcm9wZXJ0eSwgJHZhbHVlKSB7XG4gICN7JHByb3BlcnR5fTogLXdlYmtpdC1jYWxjKCN7JHZhbHVlfSk7XG4gICN7JHByb3BlcnR5fTogICAgICAgICBjYWxjKCN7JHZhbHVlfSk7XG59XG4iLCJAbWl4aW4gY29sdW1ucygkYXJnOiBhdXRvKSB7XG4vLyA8Y29sdW1uLWNvdW50PiB8fCA8Y29sdW1uLXdpZHRoPlxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW5zLCAkYXJnLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLWNvdW50KCRpbnQ6IGF1dG8pIHtcbi8vIGF1dG8gfHwgaW50ZWdlclxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tY291bnQsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tZ2FwKCRsZW5ndGg6IG5vcm1hbCkge1xuLy8gbm9ybWFsIHx8IGxlbmd0aFxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tZ2FwLCAkbGVuZ3RoLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLWZpbGwoJGFyZzogYXV0bykge1xuLy8gYXV0byB8fCBsZW5ndGhcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLWZpbGwsICRhcmcsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tcnVsZSgkYXJnKSB7XG4vLyA8Ym9yZGVyLXdpZHRoPiB8fCA8Ym9yZGVyLXN0eWxlPiB8fCA8Y29sb3I+XG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1ydWxlLCAkYXJnLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLXJ1bGUtY29sb3IoJGNvbG9yKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1ydWxlLWNvbG9yLCAkY29sb3IsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tcnVsZS1zdHlsZSgkc3R5bGU6IG5vbmUpIHtcbi8vIG5vbmUgfCBoaWRkZW4gfCBkYXNoZWQgfCBkb3R0ZWQgfCBkb3VibGUgfCBncm9vdmUgfCBpbnNldCB8IGluc2V0IHwgb3V0c2V0IHwgcmlkZ2UgfCBzb2xpZFxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tcnVsZS1zdHlsZSwgJHN0eWxlLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLXJ1bGUtd2lkdGggKCR3aWR0aDogbm9uZSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tcnVsZS13aWR0aCwgJHdpZHRoLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLXNwYW4oJGFyZzogbm9uZSkge1xuLy8gbm9uZSB8fCBhbGxcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXNwYW4sICRhcmcsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4td2lkdGgoJGxlbmd0aDogYXV0bykge1xuLy8gYXV0byB8fCBsZW5ndGhcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXdpZHRoLCAkbGVuZ3RoLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuIiwiQG1peGluIGZpbHRlcigkZnVuY3Rpb246IG5vbmUpIHtcbiAgLy8gPGZpbHRlci1mdW5jdGlvbj4gWzxmaWx0ZXItZnVuY3Rpb25dKiB8IG5vbmVcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmlsdGVyLCAkZnVuY3Rpb24sIHdlYmtpdCBzcGVjKTtcbn1cblxuIiwiLy8gQ1NTMyBGbGV4aWJsZSBCb3ggTW9kZWwgYW5kIHByb3BlcnR5IGRlZmF1bHRzXG5cbi8vIEN1c3RvbSBzaG9ydGhhbmQgbm90YXRpb24gZm9yIGZsZXhib3hcbkBtaXhpbiBib3goJG9yaWVudDogaW5saW5lLWF4aXMsICRwYWNrOiBzdGFydCwgJGFsaWduOiBzdHJldGNoKSB7XG4gIEBpbmNsdWRlIGRpc3BsYXktYm94O1xuICBAaW5jbHVkZSBib3gtb3JpZW50KCRvcmllbnQpO1xuICBAaW5jbHVkZSBib3gtcGFjaygkcGFjayk7XG4gIEBpbmNsdWRlIGJveC1hbGlnbigkYWxpZ24pO1xufVxuXG5AbWl4aW4gZGlzcGxheS1ib3gge1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgZGlzcGxheTogLW1vei1ib3g7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94OyAvLyBJRSAxMFxuICBkaXNwbGF5OiBib3g7XG59XG5cbkBtaXhpbiBib3gtb3JpZW50KCRvcmllbnQ6IGlubGluZS1heGlzKSB7XG4vLyBob3Jpem9udGFsfHZlcnRpY2FsfGlubGluZS1heGlzfGJsb2NrLWF4aXN8aW5oZXJpdFxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JpZW50LCAkb3JpZW50LCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYm94LXBhY2soJHBhY2s6IHN0YXJ0KSB7XG4vLyBzdGFydHxlbmR8Y2VudGVyfGp1c3RpZnlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LXBhY2ssICRwYWNrLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1wYWNrOiAkcGFjazsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1hbGlnbigkYWxpZ246IHN0cmV0Y2gpIHtcbi8vIHN0YXJ0fGVuZHxjZW50ZXJ8YmFzZWxpbmV8c3RyZXRjaFxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtYWxpZ24sICRhbGlnbiwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtYWxpZ246ICRhbGlnbjsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1kaXJlY3Rpb24oJGRpcmVjdGlvbjogbm9ybWFsKSB7XG4vLyBub3JtYWx8cmV2ZXJzZXxpbmhlcml0XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1kaXJlY3Rpb24sICRkaXJlY3Rpb24sIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LWRpcmVjdGlvbjogJGRpcmVjdGlvbjsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1saW5lcygkbGluZXM6IHNpbmdsZSkge1xuLy8gc2luZ2xlfG11bHRpcGxlXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1saW5lcywgJGxpbmVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYm94LW9yZGluYWwtZ3JvdXAoJGludDogMSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JkaW5hbC1ncm91cCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtb3JkZXI6ICRpbnQ7IC8vIElFIDEwXG59XG5cbkBtaXhpbiBib3gtZmxleCgkdmFsdWU6IDAuMCkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZmxleCwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleDogJHZhbHVlOyAvLyBJRSAxMFxufVxuXG5AbWl4aW4gYm94LWZsZXgtZ3JvdXAoJGludDogMSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZmxleC1ncm91cCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuLy8gQ1NTMyBGbGV4aWJsZSBCb3ggTW9kZWwgYW5kIHByb3BlcnR5IGRlZmF1bHRzXG4vLyBVbmlmaWVkIGF0dHJpYnV0ZXMgZm9yIDIwMDksIDIwMTEsIGFuZCAyMDEyIGZsYXZvdXJzLlxuXG4vLyAyMDA5IC0gZGlzcGxheSAoYm94IHwgaW5saW5lLWJveClcbi8vIDIwMTEgLSBkaXNwbGF5IChmbGV4Ym94IHwgaW5saW5lLWZsZXhib3gpXG4vLyAyMDEyIC0gZGlzcGxheSAoZmxleCB8IGlubGluZS1mbGV4KVxuQG1peGluIGRpc3BsYXkoJHZhbHVlKSB7XG4vLyBmbGV4IHwgaW5saW5lLWZsZXhcbiAgQGlmICR2YWx1ZSA9PSBcImZsZXhcIiB7XG4gICAgLy8gMjAwOVxuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgIGRpc3BsYXk6IC1tb3otYm94O1xuICAgIGRpc3BsYXk6IGJveDtcblxuICAgIC8vIDIwMTJcbiAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gICAgZGlzcGxheTogLW1vei1mbGV4O1xuICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94OyAvLyAyMDExIChJRSAxMClcbiAgICBkaXNwbGF5OiBmbGV4O1xuICB9XG5cbiAgQGVsc2VpZiAkdmFsdWUgPT0gXCJpbmxpbmUtZmxleFwiIHtcbiAgICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1ib3g7XG4gICAgZGlzcGxheTogLW1vei1pbmxpbmUtYm94O1xuICAgIGRpc3BsYXk6IGlubGluZS1ib3g7XG5cbiAgICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1mbGV4O1xuICAgIGRpc3BsYXk6IC1tb3otaW5saW5lLWZsZXg7XG4gICAgZGlzcGxheTogLW1zLWlubGluZS1mbGV4Ym94O1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICB9XG5cbiAgQGVsc2Uge1xuICAgIGRpc3BsYXk6ICR2YWx1ZTtcbiAgfVxufVxuXG4vLyAyMDA5IC0gYm94LWZsZXggKGludGVnZXIpXG4vLyAyMDExIC0gZmxleCAoZGVjaW1hbCB8IHdpZHRoIGRlY2ltYWwpXG4vLyAyMDEyIC0gZmxleCAoaW50ZWdlciBpbnRlZ2VyIHdpZHRoKVxuQG1peGluIGZsZXgoJHZhbHVlKSB7XG5cbiAgLy8gR3JhYiBmbGV4LWdyb3cgZm9yIG9sZGVyIGJyb3dzZXJzLlxuICAkZmxleC1ncm93OiBudGgoJHZhbHVlLCAxKTtcblxuICAvLyAyMDA5XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1mbGV4LCAkZmxleC1ncm93LCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKSwgMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgc3BlYyk7XG59XG5cbi8vIDIwMDkgLSBib3gtb3JpZW50ICggaG9yaXpvbnRhbCB8IHZlcnRpY2FsIHwgaW5saW5lLWF4aXMgfCBibG9jay1heGlzKVxuLy8gICAgICAtIGJveC1kaXJlY3Rpb24gKG5vcm1hbCB8IHJldmVyc2UpXG4vLyAyMDExIC0gZmxleC1kaXJlY3Rpb24gKHJvdyB8IHJvdy1yZXZlcnNlIHwgY29sdW1uIHwgY29sdW1uLXJldmVyc2UpXG4vLyAyMDEyIC0gZmxleC1kaXJlY3Rpb24gKHJvdyB8IHJvdy1yZXZlcnNlIHwgY29sdW1uIHwgY29sdW1uLXJldmVyc2UpXG5AbWl4aW4gZmxleC1kaXJlY3Rpb24oJHZhbHVlOiByb3cpIHtcblxuICAvLyBBbHQgdmFsdWVzLlxuICAkdmFsdWUtMjAwOTogJHZhbHVlO1xuICAkdmFsdWUtMjAxMTogJHZhbHVlO1xuICAkZGlyZWN0aW9uOiBcIm5vcm1hbFwiO1xuXG4gIEBpZiAkdmFsdWUgPT0gcm93IHtcbiAgICAkdmFsdWUtMjAwOTogaG9yaXpvbnRhbDtcbiAgfVxuXG4gIEBlbHNlaWYgJHZhbHVlID09IFwicm93LXJldmVyc2VcIiB7XG4gICAgJHZhbHVlLTIwMDk6IGhvcml6b250YWw7XG4gICAgJGRpcmVjdGlvbjogcmV2ZXJzZTtcbiAgfVxuXG4gIEBlbHNlaWYgJHZhbHVlID09IGNvbHVtbiB7XG4gICAgJHZhbHVlLTIwMDk6IHZlcnRpY2FsO1xuICB9XG5cbiAgQGVsc2VpZiAkdmFsdWUgPT0gXCJjb2x1bW4tcmV2ZXJzZVwiIHtcbiAgICAkdmFsdWUtMjAwOTogdmVydGljYWw7XG4gICAgJGRpcmVjdGlvbjogcmV2ZXJzZTtcbiAgfVxuXG4gIC8vIDIwMDlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LW9yaWVudCwgJHZhbHVlLTIwMDksIHdlYmtpdCBtb3ogc3BlYyk7XG4gIEBpZiAkZGlyZWN0aW9uID09IFwicmV2ZXJzZVwiIHtcbiAgICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZGlyZWN0aW9uLCAkZGlyZWN0aW9uLCB3ZWJraXQgbW96IHNwZWMpO1xuICB9XG5cbiAgLy8gMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LWRpcmVjdGlvbiwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKVxuICAtbXMtZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbn1cblxuLy8gMjAwOSAtIGJveC1saW5lcyAoc2luZ2xlIHwgbXVsdGlwbGUpXG4vLyAyMDExIC0gZmxleC13cmFwIChub3dyYXAgfCB3cmFwIHwgd3JhcC1yZXZlcnNlKVxuLy8gMjAxMiAtIGZsZXgtd3JhcCAobm93cmFwIHwgd3JhcCB8IHdyYXAtcmV2ZXJzZSlcbkBtaXhpbiBmbGV4LXdyYXAoJHZhbHVlOiBub3dyYXApIHtcblxuICAvLyBBbHQgdmFsdWVzXG4gICRhbHQtdmFsdWU6ICR2YWx1ZTtcbiAgQGlmICR2YWx1ZSA9PSBub3dyYXAge1xuICAgICRhbHQtdmFsdWU6IHNpbmdsZTtcbiAgfVxuXG4gIEBlbHNlaWYgJHZhbHVlID09IHdyYXAge1xuICAgICRhbHQtdmFsdWU6IG11bHRpcGxlO1xuICB9XG5cbiAgQGVsc2VpZiAkdmFsdWUgPT0gXCJ3cmFwLXJldmVyc2VcIiB7XG4gICAgJGFsdC12YWx1ZTogbXVsdGlwbGU7XG4gIH1cblxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtbGluZXMsICRhbHQtdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtd3JhcCwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xufVxuXG4vLyAyMDA5IC0gVE9ETzogcGFyc2UgdmFsdWVzIGludG8gZmxleC1kaXJlY3Rpb24vZmxleC13cmFwXG4vLyAyMDExIC0gVE9ETzogcGFyc2UgdmFsdWVzIGludG8gZmxleC1kaXJlY3Rpb24vZmxleC13cmFwXG4vLyAyMDEyIC0gZmxleC1mbG93IChmbGV4LWRpcmVjdGlvbiB8fCBmbGV4LXdyYXApXG5AbWl4aW4gZmxleC1mbG93KCR2YWx1ZSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LWZsb3csICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuLy8gMjAwOSAtIGJveC1vcmRpbmFsLWdyb3VwIChpbnRlZ2VyKVxuLy8gMjAxMSAtIGZsZXgtb3JkZXIgKGludGVnZXIpXG4vLyAyMDEyIC0gb3JkZXIgKGludGVnZXIpXG5AbWl4aW4gb3JkZXIoJGludDogMCkge1xuICAvLyAyMDA5XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1vcmRpbmFsLWdyb3VwLCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIob3JkZXIsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApXG4gIC1tcy1mbGV4LW9yZGVyOiAkaW50O1xufVxuXG4vLyAyMDEyIC0gZmxleC1ncm93IChudW1iZXIpXG5AbWl4aW4gZmxleC1ncm93KCRudW1iZXI6IDApIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1ncm93LCAkbnVtYmVyLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1wb3NpdGl2ZTogJG51bWJlcjtcbn1cblxuLy8gMjAxMiAtIGZsZXgtc2hyaW5rIChudW1iZXIpXG5AbWl4aW4gZmxleC1zaHJpbmsoJG51bWJlcjogMSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LXNocmluaywgJG51bWJlciwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtbmVnYXRpdmU6ICRudW1iZXI7XG59XG5cbi8vIDIwMTIgLSBmbGV4LWJhc2lzIChudW1iZXIpXG5AbWl4aW4gZmxleC1iYXNpcygkd2lkdGg6IGF1dG8pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1iYXNpcywgJHdpZHRoLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogJHdpZHRoO1xufVxuXG4vLyAyMDA5IC0gYm94LXBhY2sgKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwganVzdGlmeSlcbi8vIDIwMTEgLSBmbGV4LXBhY2sgKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwganVzdGlmeSlcbi8vIDIwMTIgLSBqdXN0aWZ5LWNvbnRlbnQgKGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IHNwYWNlLWJldHdlZW4gfCBzcGFjZS1hcm91bmQpXG5AbWl4aW4ganVzdGlmeS1jb250ZW50KCR2YWx1ZTogZmxleC1zdGFydCkge1xuXG4gIC8vIEFsdCB2YWx1ZXMuXG4gICRhbHQtdmFsdWU6ICR2YWx1ZTtcbiAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XG4gICAgJGFsdC12YWx1ZTogc3RhcnQ7XG4gIH1cblxuICBAZWxzZWlmICR2YWx1ZSA9PSBcImZsZXgtZW5kXCIge1xuICAgICRhbHQtdmFsdWU6IGVuZDtcbiAgfVxuXG4gIEBlbHNlaWYgJHZhbHVlID09IFwic3BhY2UtYmV0d2VlblwiIHtcbiAgICAkYWx0LXZhbHVlOiBqdXN0aWZ5O1xuICB9XG5cbiAgQGVsc2VpZiAkdmFsdWUgPT0gXCJzcGFjZS1hcm91bmRcIiB7XG4gICAgJGFsdC12YWx1ZTogZGlzdHJpYnV0ZTtcbiAgfVxuXG4gIC8vIDIwMDlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LXBhY2ssICRhbHQtdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihqdXN0aWZ5LWNvbnRlbnQsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKVxuICAtbXMtZmxleC1wYWNrOiAkYWx0LXZhbHVlO1xufVxuXG4vLyAyMDA5IC0gYm94LWFsaWduIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcbi8vIDIwMTEgLSBmbGV4LWFsaWduIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcbi8vIDIwMTIgLSBhbGlnbi1pdGVtcyAoZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxuQG1peGluIGFsaWduLWl0ZW1zKCR2YWx1ZTogc3RyZXRjaCkge1xuXG4gICRhbHQtdmFsdWU6ICR2YWx1ZTtcblxuICBAaWYgJHZhbHVlID09IFwiZmxleC1zdGFydFwiIHtcbiAgICAkYWx0LXZhbHVlOiBzdGFydDtcbiAgfVxuXG4gIEBlbHNlaWYgJHZhbHVlID09IFwiZmxleC1lbmRcIiB7XG4gICAgJGFsdC12YWx1ZTogZW5kO1xuICB9XG5cbiAgLy8gMjAwOVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtYWxpZ24sICRhbHQtdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihhbGlnbi1pdGVtcywgJHZhbHVlLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApXG4gIC1tcy1mbGV4LWFsaWduOiAkYWx0LXZhbHVlO1xufVxuXG4vLyAyMDExIC0gZmxleC1pdGVtLWFsaWduIChhdXRvIHwgc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG4vLyAyMDEyIC0gYWxpZ24tc2VsZiAoYXV0byB8IGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcbkBtaXhpbiBhbGlnbi1zZWxmKCR2YWx1ZTogYXV0bykge1xuXG4gICR2YWx1ZS0yMDExOiAkdmFsdWU7XG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xuICAgICR2YWx1ZS0yMDExOiBzdGFydDtcbiAgfVxuXG4gIEBlbHNlaWYgJHZhbHVlID09IFwiZmxleC1lbmRcIiB7XG4gICAgJHZhbHVlLTIwMTE6IGVuZDtcbiAgfVxuXG4gIC8vIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYWxpZ24tc2VsZiwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKVxuICAtbXMtZmxleC1pdGVtLWFsaWduOiAkdmFsdWUtMjAxMTtcbn1cblxuLy8gMjAxMSAtIGZsZXgtbGluZS1wYWNrIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGp1c3RpZnkgfCBkaXN0cmlidXRlIHwgc3RyZXRjaClcbi8vIDIwMTIgLSBhbGlnbi1jb250ZW50IChmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBzcGFjZS1iZXR3ZWVuIHwgc3BhY2UtYXJvdW5kIHwgc3RyZXRjaClcbkBtaXhpbiBhbGlnbi1jb250ZW50KCR2YWx1ZTogc3RyZXRjaCkge1xuXG4gICR2YWx1ZS0yMDExOiAkdmFsdWU7XG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xuICAgICR2YWx1ZS0yMDExOiBzdGFydDtcbiAgfVxuXG4gIEBlbHNlaWYgJHZhbHVlID09IFwiZmxleC1lbmRcIiB7XG4gICAgJHZhbHVlLTIwMTE6IGVuZDtcbiAgfVxuXG4gIEBlbHNlaWYgJHZhbHVlID09IFwic3BhY2UtYmV0d2VlblwiIHtcbiAgICAkdmFsdWUtMjAxMToganVzdGlmeTtcbiAgfVxuXG4gIEBlbHNlaWYgJHZhbHVlID09IFwic3BhY2UtYXJvdW5kXCIge1xuICAgICR2YWx1ZS0yMDExOiBkaXN0cmlidXRlO1xuICB9XG5cbiAgLy8gMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihhbGlnbi1jb250ZW50LCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApXG4gIC1tcy1mbGV4LWxpbmUtcGFjazogJHZhbHVlLTIwMTE7XG59XG4iLCIvLyBPcmRlciBvZiB0aGUgaW5jbHVkZXMgbWF0dGVycywgYW5kIGl0IGlzOiBub3JtYWwsIGJvbGQsIGl0YWxpYywgYm9sZCtpdGFsaWMuXG5cbkBtaXhpbiBmb250LWZhY2UoXG4gICRmb250LWZhbWlseSxcbiAgJGZpbGUtcGF0aCxcbiAgJHdlaWdodDogbm9ybWFsLFxuICAkc3R5bGU6IG5vcm1hbCxcbiAgJGFzc2V0LXBpcGVsaW5lOiAkYXNzZXQtcGlwZWxpbmUsXG4gICRmaWxlLWZvcm1hdHM6IGVvdCB3b2ZmIHR0ZiBzdmcpIHtcblxuICAkZm9udC11cmwtcHJlZml4OiBmb250LXVybC1wcmVmaXhlcigkYXNzZXQtcGlwZWxpbmUpO1xuXG4gIEBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHk7XG4gICAgZm9udC13ZWlnaHQ6ICR3ZWlnaHQ7XG4gICAgZm9udC1zdHlsZTogJHN0eWxlO1xuXG4gICAgQGlmIGNvbnRhaW5zKCRmaWxlLWZvcm1hdHMsIGVvdCkge1xuICAgICAgc3JjOiBcIiN7JGZvbnQtdXJsLXByZWZpeH0oJyN7JGZpbGUtcGF0aH0uZW90JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpXCI7XG4gICAgfVxuXG4gICAgc3JjOiBmb250LXNvdXJjZS1kZWNsYXJhdGlvbihcbiAgICAgICRmb250LWZhbWlseSxcbiAgICAgICRmaWxlLXBhdGgsXG4gICAgICAkYXNzZXQtcGlwZWxpbmUsXG4gICAgICAkZmlsZS1mb3JtYXRzLFxuICAgICAgJGZvbnQtdXJsLXByZWZpeFxuICAgICk7XG4gIH1cbn1cbiIsIi8vIEZvbnQgZmVhdHVyZSBzZXR0aW5ncyBtaXhpbiBhbmQgcHJvcGVydHkgZGVmYXVsdC5cbi8vIEV4YW1wbGVzOiBAaW5jbHVkZSBmb250LWZlYXR1cmUtc2V0dGluZ3MoXCJsaWdhXCIpO1xuLy8gICAgICAgICAgIEBpbmNsdWRlIGZvbnQtZmVhdHVyZS1zZXR0aW5ncyhcImxudW1cIiBmYWxzZSk7XG4vLyAgICAgICAgICAgQGluY2x1ZGUgZm9udC1mZWF0dXJlLXNldHRpbmdzKFwicG51bVwiIDEsIFwia2VyblwiIDApO1xuLy8gICAgICAgICAgIEBpbmNsdWRlIGZvbnQtZmVhdHVyZS1zZXR0aW5ncyhcInNzMDFcIiwgXCJzczAyXCIpO1xuXG5AbWl4aW4gZm9udC1mZWF0dXJlLXNldHRpbmdzKCRzZXR0aW5ncy4uLikge1xuICBAaWYgbGVuZ3RoKCRzZXR0aW5ncykgPT0gMCB7ICRzZXR0aW5nczogbm9uZTsgfVxuICBAaW5jbHVkZSBwcmVmaXhlcihmb250LWZlYXR1cmUtc2V0dGluZ3MsICRzZXR0aW5ncywgd2Via2l0IG1veiBtcyBzcGVjKTtcbn0iLCIvLyBIaURQSSBtaXhpbi4gRGVmYXVsdCB2YWx1ZSBzZXQgdG8gMS4zIHRvIHRhcmdldCBHb29nbGUgTmV4dXMgNyAoaHR0cDovL2JqYW5nby5jb20vYXJ0aWNsZXMvbWluLWRldmljZS1waXhlbC1yYXRpby8pXG5AbWl4aW4gaGlkcGkoJHJhdGlvOiAxLjMpIHtcbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAkcmF0aW8pLFxuICBvbmx5IHNjcmVlbiBhbmQgKG1pbi0tbW96LWRldmljZS1waXhlbC1yYXRpbzogJHJhdGlvKSxcbiAgb25seSBzY3JlZW4gYW5kICgtby1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAjeyRyYXRpb30vMSksXG4gIG9ubHkgc2NyZWVuIGFuZCAobWluLXJlc29sdXRpb246IHJvdW5kKCRyYXRpbyAqIDk2ZHBpKSksXG4gIG9ubHkgc2NyZWVuIGFuZCAobWluLXJlc29sdXRpb246ICRyYXRpbyAqIDFkcHB4KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cbiIsIkBtaXhpbiBoeXBoZW5zKCRoeXBoZW5hdGlvbjogbm9uZSkge1xuLy8gbm9uZSB8IG1hbnVhbCB8IGF1dG9cbiAgQGluY2x1ZGUgcHJlZml4ZXIoaHlwaGVucywgJGh5cGhlbmF0aW9uLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xufSIsIkBtaXhpbiBpbWFnZS1yZW5kZXJpbmcgKCRtb2RlOmF1dG8pIHtcblxuICBAaWYgKCRtb2RlID09IGNyaXNwLWVkZ2VzKSB7XG4gICAgICAtbXMtaW50ZXJwb2xhdGlvbi1tb2RlOiBuZWFyZXN0LW5laWdoYm9yOyAvLyBJRTgrXG4gICAgICBpbWFnZS1yZW5kZXJpbmc6IC1tb3otY3Jpc3AtZWRnZXM7XG4gICAgICBpbWFnZS1yZW5kZXJpbmc6IC1vLWNyaXNwLWVkZ2VzO1xuICAgICAgaW1hZ2UtcmVuZGVyaW5nOiAtd2Via2l0LW9wdGltaXplLWNvbnRyYXN0O1xuICAgICAgaW1hZ2UtcmVuZGVyaW5nOiBjcmlzcC1lZGdlcztcbiAgfVxuXG4gIEBlbHNlIHtcbiAgICAgIGltYWdlLXJlbmRlcmluZzogJG1vZGU7XG4gIH1cbn1cbiIsIi8vIEFkZHMga2V5ZnJhbWVzIGJsb2NrcyBmb3Igc3VwcG9ydGVkIHByZWZpeGVzLCByZW1vdmluZyByZWR1bmRhbnQgcHJlZml4ZXMgaW4gdGhlIGJsb2NrJ3MgY29udGVudFxuQG1peGluIGtleWZyYW1lcygkbmFtZSkge1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci13ZWJraXQ6ICAgICRwcmVmaXgtZm9yLXdlYmtpdDtcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3ItbW96aWxsYTogICAkcHJlZml4LWZvci1tb3ppbGxhO1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci1taWNyb3NvZnQ6ICRwcmVmaXgtZm9yLW1pY3Jvc29mdDtcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3Itb3BlcmE6ICAgICAkcHJlZml4LWZvci1vcGVyYTtcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3Itc3BlYzogICAgICAkcHJlZml4LWZvci1zcGVjO1xuXG4gIEBpZiAkb3JpZ2luYWwtcHJlZml4LWZvci13ZWJraXQge1xuICAgIEBpbmNsdWRlIGRpc2FibGUtcHJlZml4LWZvci1hbGwoKTtcbiAgICAkcHJlZml4LWZvci13ZWJraXQ6IHRydWUgIWdsb2JhbDtcbiAgICBALXdlYmtpdC1rZXlmcmFtZXMgI3skbmFtZX0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG4gIEBpZiAkb3JpZ2luYWwtcHJlZml4LWZvci1tb3ppbGxhIHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlLXByZWZpeC1mb3ItYWxsKCk7XG4gICAgJHByZWZpeC1mb3ItbW96aWxsYTogdHJ1ZSAhZ2xvYmFsO1xuICAgIEAtbW96LWtleWZyYW1lcyAjeyRuYW1lfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cblxuICAkcHJlZml4LWZvci13ZWJraXQ6ICAgICRvcmlnaW5hbC1wcmVmaXgtZm9yLXdlYmtpdCAgICAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1tb3ppbGxhOiAgICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1vemlsbGEgICAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1taWNyb3NvZnQ6ICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1pY3Jvc29mdCAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1vcGVyYTogICAgICRvcmlnaW5hbC1wcmVmaXgtZm9yLW9wZXJhICAgICAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1zcGVjOiAgICAgICRvcmlnaW5hbC1wcmVmaXgtZm9yLXNwZWMgICAgICAhZ2xvYmFsO1xuXG4gIEBpZiAkb3JpZ2luYWwtcHJlZml4LWZvci1zcGVjIHtcbiAgICBAa2V5ZnJhbWVzICN7JG5hbWV9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuIiwiQG1peGluIGxpbmVhci1ncmFkaWVudCgkcG9zLCAkRzEsICRHMjogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJEczOiBudWxsLCAkRzQ6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRHNTogbnVsbCwgJEc2OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkRzc6IG51bGwsICRHODogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJEc5OiBudWxsLCAkRzEwOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZmFsbGJhY2s6IG51bGwpIHtcbiAgLy8gRGV0ZWN0IHdoYXQgdHlwZSBvZiB2YWx1ZSBleGlzdHMgaW4gJHBvc1xuICAkcG9zLXR5cGU6IHR5cGUtb2YobnRoKCRwb3MsIDEpKTtcbiAgJHBvcy1zcGVjOiBudWxsO1xuICAkcG9zLWRlZ3JlZTogbnVsbDtcblxuICAvLyBJZiAkcG9zIGlzIG1pc3NpbmcgZnJvbSBtaXhpbiwgcmVhc3NpZ24gdmFycyBhbmQgYWRkIGRlZmF1bHQgcG9zaXRpb25cbiAgQGlmICgkcG9zLXR5cGUgPT0gY29sb3IpIG9yIChudGgoJHBvcywgMSkgPT0gXCJ0cmFuc3BhcmVudFwiKSAge1xuICAgICRHMTA6ICRHOTsgJEc5OiAkRzg7ICRHODogJEc3OyAkRzc6ICRHNjsgJEc2OiAkRzU7XG4gICAgICRHNTogJEc0OyAkRzQ6ICRHMzsgJEczOiAkRzI7ICRHMjogJEcxOyAkRzE6ICRwb3M7XG4gICAgICRwb3M6IG51bGw7XG4gIH1cblxuICBAaWYgJHBvcyB7XG4gICAgJHBvc2l0aW9uczogX2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyKCRwb3MpO1xuICAgICRwb3MtZGVncmVlOiBudGgoJHBvc2l0aW9ucywgMSk7XG4gICAgJHBvcy1zcGVjOiAgIG50aCgkcG9zaXRpb25zLCAyKTtcbiAgfVxuXG4gICRmdWxsOiAkRzEsICRHMiwgJEczLCAkRzQsICRHNSwgJEc2LCAkRzcsICRHOCwgJEc5LCAkRzEwO1xuXG4gIC8vIFNldCAkRzEgYXMgdGhlIGRlZmF1bHQgZmFsbGJhY2sgY29sb3JcbiAgJGZhbGxiYWNrLWNvbG9yOiBudGgoJEcxLCAxKTtcblxuICAvLyBJZiAkZmFsbGJhY2sgaXMgYSBjb2xvciB1c2UgdGhhdCBjb2xvciBhcyB0aGUgZmFsbGJhY2sgY29sb3JcbiAgQGlmICh0eXBlLW9mKCRmYWxsYmFjaykgPT0gY29sb3IpIG9yICgkZmFsbGJhY2sgPT0gXCJ0cmFuc3BhcmVudFwiKSB7XG4gICAgJGZhbGxiYWNrLWNvbG9yOiAkZmFsbGJhY2s7XG4gIH1cblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZmFsbGJhY2stY29sb3I7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KCRwb3MtZGVncmVlICRmdWxsKTsgLy8gU2FmYXJpIDUuMSssIENocm9tZVxuICBiYWNrZ3JvdW5kLWltYWdlOiB1bnF1b3RlKFwibGluZWFyLWdyYWRpZW50KCN7JHBvcy1zcGVjfSN7JGZ1bGx9KVwiKTtcbn1cbiIsIkBtaXhpbiBwZXJzcGVjdGl2ZSgkZGVwdGg6IG5vbmUpIHtcbiAgLy8gbm9uZSB8IDxsZW5ndGg+XG4gIEBpbmNsdWRlIHByZWZpeGVyKHBlcnNwZWN0aXZlLCAkZGVwdGgsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBwZXJzcGVjdGl2ZS1vcmlnaW4oJHZhbHVlOiA1MCUgNTAlKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKHBlcnNwZWN0aXZlLW9yaWdpbiwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuIiwiQG1peGluIHBsYWNlaG9sZGVyIHtcbiAgJHBsYWNlaG9sZGVyczogXCI6LXdlYmtpdC1pbnB1dFwiIFwiOi1tb3pcIiBcIi1tb3pcIiBcIi1tcy1pbnB1dFwiO1xuICBAZWFjaCAkcGxhY2Vob2xkZXIgaW4gJHBsYWNlaG9sZGVycyB7XG4gICAgJjojeyRwbGFjZWhvbGRlcn0tcGxhY2Vob2xkZXIge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG4iLCIvLyBSZXF1aXJlcyBTYXNzIDMuMStcbkBtaXhpbiByYWRpYWwtZ3JhZGllbnQoJEcxLCAgICAgICAgJEcyLFxuICAgICAgICAgICAgICAgICAgICAgICAkRzM6IG51bGwsICRHNDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJEc1OiBudWxsLCAkRzY6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRHNzogbnVsbCwgJEc4OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkRzk6IG51bGwsICRHMTA6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRwb3M6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRzaGFwZS1zaXplOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZmFsbGJhY2s6IG51bGwpIHtcblxuICAkZGF0YTogX3JhZGlhbC1hcmctcGFyc2VyKCRHMSwgJEcyLCAkcG9zLCAkc2hhcGUtc2l6ZSk7XG4gICRHMTogIG50aCgkZGF0YSwgMSk7XG4gICRHMjogIG50aCgkZGF0YSwgMik7XG4gICRwb3M6IG50aCgkZGF0YSwgMyk7XG4gICRzaGFwZS1zaXplOiBudGgoJGRhdGEsIDQpO1xuXG4gICRmdWxsOiAkRzEsICRHMiwgJEczLCAkRzQsICRHNSwgJEc2LCAkRzcsICRHOCwgJEc5LCAkRzEwO1xuXG4gIC8vIFN0cmlwIGRlcHJlY2F0ZWQgY292ZXIvY29udGFpbiBmb3Igc3BlY1xuICAkc2hhcGUtc2l6ZS1zcGVjOiBfc2hhcGUtc2l6ZS1zdHJpcHBlcigkc2hhcGUtc2l6ZSk7XG5cbiAgLy8gU2V0ICRHMSBhcyB0aGUgZGVmYXVsdCBmYWxsYmFjayBjb2xvclxuICAkZmlyc3QtY29sb3I6IG50aCgkZnVsbCwgMSk7XG4gICRmYWxsYmFjay1jb2xvcjogbnRoKCRmaXJzdC1jb2xvciwgMSk7XG5cbiAgQGlmICh0eXBlLW9mKCRmYWxsYmFjaykgPT0gY29sb3IpIG9yICgkZmFsbGJhY2sgPT0gXCJ0cmFuc3BhcmVudFwiKSB7XG4gICAgJGZhbGxiYWNrLWNvbG9yOiAkZmFsbGJhY2s7XG4gIH1cblxuICAvLyBBZGQgQ29tbWFzIGFuZCBzcGFjZXNcbiAgJHNoYXBlLXNpemU6IGlmKCRzaGFwZS1zaXplLCAnI3skc2hhcGUtc2l6ZX0sICcsIG51bGwpO1xuICAkcG9zOiAgICAgICAgaWYoJHBvcywgJyN7JHBvc30sICcsIG51bGwpO1xuICAkcG9zLXNwZWM6ICAgaWYoJHBvcywgJ2F0ICN7JHBvc30nLCBudWxsKTtcbiAgJHNoYXBlLXNpemUtc3BlYzogaWYoKCRzaGFwZS1zaXplLXNwZWMgIT0gJyAnKSBhbmQgKCRwb3MgPT0gbnVsbCksICcjeyRzaGFwZS1zaXplLXNwZWN9LCAnLCAnI3skc2hhcGUtc2l6ZS1zcGVjfSAnKTtcblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAgJGZhbGxiYWNrLWNvbG9yO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LXJhZGlhbC1ncmFkaWVudCh1bnF1b3RlKCN7JHBvc30jeyRzaGFwZS1zaXplfSN7JGZ1bGx9KSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVucXVvdGUoXCJyYWRpYWwtZ3JhZGllbnQoI3skc2hhcGUtc2l6ZS1zcGVjfSN7JHBvcy1zcGVjfSN7JGZ1bGx9KVwiKTtcbn1cbiIsIkBtaXhpbiBzZWxlY3Rpb24ge1xuICAkYmVmb3JlLWNvbG9uczogXCJcIjtcblxuICBAaWYgJiB7XG4gICAgJGJlZm9yZS1jb2xvbnM6IFwiJlwiXG4gIH1cblxuICAjeyRiZWZvcmUtY29sb25zfTo6c2VsZWN0aW9uIHtcbiAgICBAY29udGVudDtcbiAgfVxuICAjeyRiZWZvcmUtY29sb25zfTo6LW1vei1zZWxlY3Rpb24ge1xuICAgIEBjb250ZW50O1xuICB9XG59IiwiQG1peGluIHRleHQtZGVjb3JhdGlvbigkdmFsdWUpIHtcbi8vIDx0ZXh0LWRlY29yYXRpb24tbGluZT4gfHwgPHRleHQtZGVjb3JhdGlvbi1zdHlsZT4gfHwgPHRleHQtZGVjb3JhdGlvbi1jb2xvcj5cbiAgQGluY2x1ZGUgcHJlZml4ZXIodGV4dC1kZWNvcmF0aW9uLCAkdmFsdWUsIG1veik7XG59XG5cbkBtaXhpbiB0ZXh0LWRlY29yYXRpb24tbGluZSgkbGluZTogbm9uZSkge1xuLy8gbm9uZSB8fCB1bmRlcmxpbmUgfHwgb3ZlcmxpbmUgfHwgbGluZS10aHJvdWdoXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRleHQtZGVjb3JhdGlvbi1saW5lLCAkbGluZSwgbW96KTtcbn1cblxuQG1peGluIHRleHQtZGVjb3JhdGlvbi1zdHlsZSgkc3R5bGU6IHNvbGlkKSB7XG4vLyBzb2xpZCB8fCBkb3VibGUgfHwgZG90dGVkIHx8IGRhc2hlZCB8fCB3YXZ5XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRleHQtZGVjb3JhdGlvbi1zdHlsZSwgJHN0eWxlLCBtb3ogd2Via2l0KTtcbn1cblxuQG1peGluIHRleHQtZGVjb3JhdGlvbi1jb2xvcigkY29sb3I6IGN1cnJlbnRDb2xvcikge1xuLy8gY3VycmVudENvbG9yIHx8IDxjb2xvcj5cbiAgQGluY2x1ZGUgcHJlZml4ZXIodGV4dC1kZWNvcmF0aW9uLWNvbG9yLCAkY29sb3IsIG1veik7XG59XG4iLCJAbWl4aW4gdHJhbnNmb3JtKCRwcm9wZXJ0eTogbm9uZSkge1xuLy8gIG5vbmUgfCA8dHJhbnNmb3JtLWZ1bmN0aW9uPlxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2Zvcm0sICRwcm9wZXJ0eSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xufVxuXG5AbWl4aW4gdHJhbnNmb3JtLW9yaWdpbigkYXhlczogNTAlKSB7XG4vLyB4LWF4aXMgLSBsZWZ0IHwgY2VudGVyIHwgcmlnaHQgIHwgbGVuZ3RoIHwgJVxuLy8geS1heGlzIC0gdG9wICB8IGNlbnRlciB8IGJvdHRvbSB8IGxlbmd0aCB8ICVcbi8vIHotYXhpcyAtICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGhcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNmb3JtLW9yaWdpbiwgJGF4ZXMsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcbn1cblxuQG1peGluIHRyYW5zZm9ybS1zdHlsZSAoJHN0eWxlOiBmbGF0KSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zZm9ybS1zdHlsZSwgJHN0eWxlLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG59XG4iLCIvLyBTaG9ydGhhbmQgbWl4aW4uIFN1cHBvcnRzIG11bHRpcGxlIHBhcmVudGhlc2VzLWRlbGltaW5hdGVkIHZhbHVlcyBmb3IgZWFjaCB2YXJpYWJsZS5cbi8vIEV4YW1wbGU6IEBpbmNsdWRlIHRyYW5zaXRpb24gKGFsbCAycyBlYXNlLWluLW91dCk7XG4vLyAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uIChvcGFjaXR5IDFzIGVhc2UtaW4gMnMsIHdpZHRoIDJzIGVhc2Utb3V0KTtcbi8vICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tcHJvcGVydHkgKHRyYW5zZm9ybSwgb3BhY2l0eSk7XG5cbkBtaXhpbiB0cmFuc2l0aW9uICgkcHJvcGVydGllcy4uLikge1xuICAvLyBGaXggZm9yIHZlbmRvci1wcmVmaXggdHJhbnNmb3JtIHByb3BlcnR5XG4gICRuZWVkcy1wcmVmaXhlczogZmFsc2U7XG4gICR3ZWJraXQ6ICgpO1xuICAkbW96OiAoKTtcbiAgJHNwZWM6ICgpO1xuXG4gIC8vIENyZWF0ZSBsaXN0cyBmb3IgdmVuZG9yLXByZWZpeGVkIHRyYW5zZm9ybVxuICBAZWFjaCAkbGlzdCBpbiAkcHJvcGVydGllcyB7XG4gICAgQGlmIG50aCgkbGlzdCwgMSkgPT0gXCJ0cmFuc2Zvcm1cIiB7XG4gICAgICAkbmVlZHMtcHJlZml4ZXM6IHRydWU7XG4gICAgICAkbGlzdDE6IC13ZWJraXQtdHJhbnNmb3JtO1xuICAgICAgJGxpc3QyOiAtbW96LXRyYW5zZm9ybTtcbiAgICAgICRsaXN0MzogKCk7XG5cbiAgICAgIEBlYWNoICR2YXIgaW4gJGxpc3Qge1xuICAgICAgICAkbGlzdDM6IGpvaW4oJGxpc3QzLCAkdmFyKTtcblxuICAgICAgICBAaWYgJHZhciAhPSBcInRyYW5zZm9ybVwiIHtcbiAgICAgICAgICAkbGlzdDE6IGpvaW4oJGxpc3QxLCAkdmFyKTtcbiAgICAgICAgICAkbGlzdDI6IGpvaW4oJGxpc3QyLCAkdmFyKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAkd2Via2l0OiBhcHBlbmQoJHdlYmtpdCwgJGxpc3QxKTtcbiAgICAgICAgICRtb3o6IGFwcGVuZCgkbW96LCAgICAkbGlzdDIpO1xuICAgICAgICAkc3BlYzogYXBwZW5kKCRzcGVjLCAgICRsaXN0Myk7XG4gICAgfVxuXG4gICAgLy8gQ3JlYXRlIGxpc3RzIGZvciBub24tcHJlZml4ZWQgdHJhbnNpdGlvbiBwcm9wZXJ0aWVzXG4gICAgQGVsc2Uge1xuICAgICAgJHdlYmtpdDogIGFwcGVuZCgkd2Via2l0LCAkbGlzdCwgY29tbWEpO1xuICAgICAgJG1vejogICAgIGFwcGVuZCgkbW96LCAgICAkbGlzdCwgY29tbWEpO1xuICAgICAgJHNwZWM6ICAgIGFwcGVuZCgkc3BlYywgICAkbGlzdCwgY29tbWEpO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkbmVlZHMtcHJlZml4ZXMge1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogJHdlYmtpdDtcbiAgICAgICAtbW96LXRyYW5zaXRpb246ICRtb3o7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiAkc3BlYztcbiAgfVxuICBAZWxzZSB7XG4gICAgQGlmIGxlbmd0aCgkcHJvcGVydGllcykgPj0gMSB7XG4gICAgICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLCAkcHJvcGVydGllcywgd2Via2l0IG1veiBzcGVjKTtcbiAgICB9XG5cbiAgICBAZWxzZSB7XG4gICAgICAkcHJvcGVydGllczogYWxsIDAuMTVzIGVhc2Utb3V0IDBzO1xuICAgICAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbiwgJHByb3BlcnRpZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiB0cmFuc2l0aW9uLXByb3BlcnR5ICgkcHJvcGVydGllcy4uLikge1xuICAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCRwcm9wZXJ0aWVzLCAnd2Via2l0Jyk7XG4gICAgICAtbW96LXRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoJHByb3BlcnRpZXMsICdtb3onKTtcbiAgICAgICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygkcHJvcGVydGllcywgZmFsc2UpO1xufVxuXG5AbWl4aW4gdHJhbnNpdGlvbi1kdXJhdGlvbiAoJHRpbWVzLi4uKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24tZHVyYXRpb24sICR0aW1lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uICgkbW90aW9ucy4uLikge1xuLy8gZWFzZSB8IGxpbmVhciB8IGVhc2UtaW4gfCBlYXNlLW91dCB8IGVhc2UtaW4tb3V0IHwgY3ViaWMtYmV6aWVyKClcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24sICRtb3Rpb25zLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gdHJhbnNpdGlvbi1kZWxheSAoJHRpbWVzLi4uKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24tZGVsYXksICR0aW1lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cbiIsIkBtaXhpbiB1c2VyLXNlbGVjdCgkYXJnOiBub25lKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKHVzZXItc2VsZWN0LCAkYXJnLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xufVxuIiwiLy8gVGhlIGNsZWFyZml4IG1peGluIHByb3ZpZGVzIGFuIGVhc3kgd2F5IHRvIGNvbnRhaW4gZmxvYXRzXG4vL1xuLy8gRXhhbXBsZSB1c2FnZTpcbi8vIC53cmFwcGVyIHtcbi8vICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4vLyB9XG5cbkBtaXhpbiBjbGVhcmZpeCB7XG4gICY6OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICB9XG59XG5cbi8vIEFja25vd2xlZGdlbWVudHM6XG4vLyBUaGllcnJ5IEtvYmxlbnR6LCBjc3Ntb2pvXG4vLyBodHRwOi8vZ29vLmdsL0FRV3Z5SFxuIiwiLy8gZGlyZWN0aW9uYWwtcHJvcGVydHkgbWl4aW5zIGFyZSBzaG9ydGhhbmRzXG4vLyBmb3Igd3JpdGluZyBwcm9wZXJ0aWVzIGxpa2UgdGhlIGZvbGxvd2luZ1xuLy9cbi8vIEBpbmNsdWRlIG1hcmdpbihudWxsIDAgMTBweCk7XG4vLyAtLS0tLS1cbi8vIG1hcmdpbi1yaWdodDogMDtcbi8vIG1hcmdpbi1ib3R0b206IDEwcHg7XG4vLyBtYXJnaW4tbGVmdDogMDtcbi8vXG4vLyAtIG9yIC1cbi8vXG4vLyBAaW5jbHVkZSBib3JkZXItc3R5bGUoZG90dGVkIG51bGwpO1xuLy8gLS0tLS0tXG4vLyBib3JkZXItdG9wLXN0eWxlOiBkb3R0ZWQ7XG4vLyBib3JkZXItYm90dG9tLXN0eWxlOiBkb3R0ZWQ7XG4vL1xuLy8gLS0tLS0tXG4vL1xuLy8gTm90ZTogWW91IGNhbiBhbHNvIHVzZSBmYWxzZSBpbnN0ZWFkIG9mIG51bGxcblxuQGZ1bmN0aW9uIGNvbGxhcHNlLWRpcmVjdGlvbmFscygkdmFscykge1xuICAkb3V0cHV0OiBudWxsO1xuXG4gICRBOiBudGgoICR2YWxzLCAxICk7XG4gICRCOiBpZiggbGVuZ3RoKCR2YWxzKSA8IDIsICRBLCBudGgoJHZhbHMsIDIpKTtcbiAgJEM6IGlmKCBsZW5ndGgoJHZhbHMpIDwgMywgJEEsIG50aCgkdmFscywgMykpO1xuICAkRDogaWYoIGxlbmd0aCgkdmFscykgPCAyLCAkQSwgbnRoKCR2YWxzLCBpZiggbGVuZ3RoKCR2YWxzKSA8IDQsIDIsIDQpICkpO1xuXG4gIEBpZiAkQSA9PSAwIHsgJEE6IDAgfVxuICBAaWYgJEIgPT0gMCB7ICRCOiAwIH1cbiAgQGlmICRDID09IDAgeyAkQzogMCB9XG4gIEBpZiAkRCA9PSAwIHsgJEQ6IDAgfVxuXG4gIEBpZiAkQSA9PSAkQiBhbmQgJEEgPT0gJEMgYW5kICRBID09ICREIHsgJG91dHB1dDogJEEgICAgICAgICAgfVxuICBAZWxzZSBpZiAkQSA9PSAkQyBhbmQgJEIgPT0gJEQgICAgICAgICB7ICRvdXRwdXQ6ICRBICRCICAgICAgIH1cbiAgQGVsc2UgaWYgJEIgPT0gJEQgICAgICAgICAgICAgICAgICAgICAgeyAkb3V0cHV0OiAkQSAkQiAkQyAgICB9XG4gIEBlbHNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJG91dHB1dDogJEEgJEIgJEMgJEQgfVxuXG4gIEByZXR1cm4gJG91dHB1dDtcbn1cblxuQGZ1bmN0aW9uIGNvbnRhaW5zLWZhbHN5KCRsaXN0KSB7XG4gIEBlYWNoICRpdGVtIGluICRsaXN0IHtcbiAgICBAaWYgbm90ICRpdGVtIHtcbiAgICAgIEByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIGZhbHNlO1xufVxuXG5AbWl4aW4gZGlyZWN0aW9uYWwtcHJvcGVydHkoJHByZSwgJHN1ZiwgJHZhbHMpIHtcbiAgLy8gUHJvcGVydHkgTmFtZXNcbiAgJHRvcDogICAgJHByZSArIFwiLXRvcFwiICAgICsgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcbiAgJGJvdHRvbTogJHByZSArIFwiLWJvdHRvbVwiICsgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcbiAgJGxlZnQ6ICAgJHByZSArIFwiLWxlZnRcIiAgICsgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcbiAgJHJpZ2h0OiAgJHByZSArIFwiLXJpZ2h0XCIgICsgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcbiAgJGFsbDogICAgJHByZSArICAgICAgICAgICAgIGlmKCRzdWYsIFwiLSN7JHN1Zn1cIiwgXCJcIik7XG5cbiAgJHZhbHM6IGNvbGxhcHNlLWRpcmVjdGlvbmFscygkdmFscyk7XG5cbiAgQGlmIGNvbnRhaW5zLWZhbHN5KCR2YWxzKSB7XG4gICAgQGlmIG50aCgkdmFscywgMSkgeyAjeyR0b3B9OiBudGgoJHZhbHMsIDEpOyB9XG5cbiAgICBAaWYgbGVuZ3RoKCR2YWxzKSA9PSAxIHtcbiAgICAgIEBpZiBudGgoJHZhbHMsIDEpIHsgI3skcmlnaHR9OiBudGgoJHZhbHMsIDEpOyB9XG4gICAgfSBAZWxzZSB7XG4gICAgICBAaWYgbnRoKCR2YWxzLCAyKSB7ICN7JHJpZ2h0fTogbnRoKCR2YWxzLCAyKTsgfVxuICAgIH1cblxuICAgIC8vIHByb3A6IHRvcC9ib3R0b20gcmlnaHQvbGVmdFxuICAgIEBpZiBsZW5ndGgoJHZhbHMpID09IDIge1xuICAgICAgQGlmIG50aCgkdmFscywgMSkgeyAjeyRib3R0b219OiBudGgoJHZhbHMsIDEpOyB9XG4gICAgICBAaWYgbnRoKCR2YWxzLCAyKSB7ICN7JGxlZnR9OiAgIG50aCgkdmFscywgMik7IH1cblxuICAgIC8vIHByb3A6IHRvcCByaWdodC9sZWZ0IGJvdHRvbVxuICAgIH0gQGVsc2UgaWYgbGVuZ3RoKCR2YWxzKSA9PSAzIHtcbiAgICAgIEBpZiBudGgoJHZhbHMsIDMpIHsgI3skYm90dG9tfTogbnRoKCR2YWxzLCAzKTsgfVxuICAgICAgQGlmIG50aCgkdmFscywgMikgeyAjeyRsZWZ0fTogICBudGgoJHZhbHMsIDIpOyB9XG5cbiAgICAvLyBwcm9wOiB0b3AgcmlnaHQgYm90dG9tIGxlZnRcbiAgICB9IEBlbHNlIGlmIGxlbmd0aCgkdmFscykgPT0gNCB7XG4gICAgICBAaWYgbnRoKCR2YWxzLCAzKSB7ICN7JGJvdHRvbX06IG50aCgkdmFscywgMyk7IH1cbiAgICAgIEBpZiBudGgoJHZhbHMsIDQpIHsgI3skbGVmdH06ICAgbnRoKCR2YWxzLCA0KTsgfVxuICAgIH1cblxuICAvLyBwcm9wOiB0b3AvcmlnaHQvYm90dG9tL2xlZnRcbiAgfSBAZWxzZSB7XG4gICAgI3skYWxsfTogJHZhbHM7XG4gIH1cbn1cblxuQG1peGluIG1hcmdpbigkdmFscy4uLikge1xuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShtYXJnaW4sIGZhbHNlLCAkdmFscy4uLik7XG59XG5cbkBtaXhpbiBwYWRkaW5nKCR2YWxzLi4uKSB7XG4gIEBpbmNsdWRlIGRpcmVjdGlvbmFsLXByb3BlcnR5KHBhZGRpbmcsIGZhbHNlLCAkdmFscy4uLik7XG59XG5cbkBtaXhpbiBib3JkZXItc3R5bGUoJHZhbHMuLi4pIHtcbiAgQGluY2x1ZGUgZGlyZWN0aW9uYWwtcHJvcGVydHkoYm9yZGVyLCBzdHlsZSwgJHZhbHMuLi4pO1xufVxuXG5AbWl4aW4gYm9yZGVyLWNvbG9yKCR2YWxzLi4uKSB7XG4gIEBpbmNsdWRlIGRpcmVjdGlvbmFsLXByb3BlcnR5KGJvcmRlciwgY29sb3IsICR2YWxzLi4uKTtcbn1cblxuQG1peGluIGJvcmRlci13aWR0aCgkdmFscy4uLikge1xuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShib3JkZXIsIHdpZHRoLCAkdmFscy4uLik7XG59XG4iLCJAbWl4aW4gZWxsaXBzaXMoJHdpZHRoOiAxMDAlKSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWF4LXdpZHRoOiAkd2lkdGg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB3b3JkLXdyYXA6IG5vcm1hbDtcbn1cbiIsIiRnZW9yZ2lhOiBHZW9yZ2lhLCBDYW1icmlhLCBcIlRpbWVzIE5ldyBSb21hblwiLCBUaW1lcywgc2VyaWY7XG4kaGVsdmV0aWNhOiBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgUm9ib3RvLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiRsdWNpZGEtZ3JhbmRlOiBcIkx1Y2lkYSBHcmFuZGVcIiwgVGFob21hLCBWZXJkYW5hLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiRtb25vc3BhY2U6IFwiQml0c3RyZWFtIFZlcmEgU2FucyBNb25vXCIsIENvbnNvbGFzLCBDb3VyaWVyLCBtb25vc3BhY2U7XG4kdmVyZGFuYTogVmVyZGFuYSwgR2VuZXZhLCBzYW5zLXNlcmlmO1xuIiwiQG1peGluIGhpZGUtdGV4dCgkaGVpZ2h0OiAxZW0pIHtcbiAgaGVpZ2h0OiAkaGVpZ2h0O1xuICBsaW5lLWhlaWdodDogMS41O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICY6OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIH1cbn1cbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi8vIEdlbmVyYXRlIGEgdmFyaWFibGUgKCRhbGwtdGV4dC1pbnB1dHMpIHdpdGggYSBsaXN0IG9mIGFsbCBodG1sNVxuLy8gaW5wdXQgdHlwZXMgdGhhdCBoYXZlIGEgdGV4dC1iYXNlZCBpbnB1dCwgZXhjbHVkaW5nIHRleHRhcmVhLlxuLy8gaHR0cDovL2RpdmVpbnRvaHRtbDUub3JnL2Zvcm1zLmh0bWxcbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbiRpbnB1dHMtbGlzdDogJ2lucHV0W3R5cGU9XCJlbWFpbFwiXScsXG4gICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwibnVtYmVyXCJdJyxcbiAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJwYXNzd29yZFwiXScsXG4gICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwic2VhcmNoXCJdJyxcbiAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ0ZWxcIl0nLFxuICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInRleHRcIl0nLFxuICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInVybFwiXScsXG5cbiAgICAgICAgICAgICAgLy8gV2Via2l0ICYgR2Vja28gbWF5IGNoYW5nZSB0aGUgZGlzcGxheSBvZiB0aGVzZSBpbiB0aGUgZnV0dXJlXG4gICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiY29sb3JcIl0nLFxuICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cImRhdGVcIl0nLFxuICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdJyxcbiAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXScsXG4gICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwibW9udGhcIl0nLFxuICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInRpbWVcIl0nLFxuICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cIndlZWtcIl0nO1xuXG4vLyBCYXJlIGlucHV0c1xuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuJGFsbC10ZXh0LWlucHV0czogYXNzaWduLWlucHV0cygkaW5wdXRzLWxpc3QpO1xuXG4vLyBIb3ZlciBQc2V1ZG8tY2xhc3Ncbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbiRhbGwtdGV4dC1pbnB1dHMtaG92ZXI6IGFzc2lnbi1pbnB1dHMoJGlucHV0cy1saXN0LCBob3Zlcik7XG5cbi8vIEZvY3VzIFBzZXVkby1jbGFzc1xuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuJGFsbC10ZXh0LWlucHV0cy1mb2N1czogYXNzaWduLWlucHV0cygkaW5wdXRzLWxpc3QsIGZvY3VzKTtcblxuXG5cbi8vIFlvdSBtdXN0IHVzZSBpbnRlcnBvbGF0aW9uIG9uIHRoZSB2YXJpYWJsZTpcbi8vICN7JGFsbC10ZXh0LWlucHV0c31cbi8vICN7JGFsbC10ZXh0LWlucHV0cy1ob3Zlcn1cbi8vICN7JGFsbC10ZXh0LWlucHV0cy1mb2N1c31cblxuLy8gRXhhbXBsZVxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8gICAjeyRhbGwtdGV4dC1pbnB1dHN9LCB0ZXh0YXJlYSB7XG4vLyAgICAgYm9yZGVyOiAxcHggc29saWQgcmVkO1xuLy8gICB9XG5cblxuXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4vLyBHZW5lcmF0ZSBhIHZhcmlhYmxlICgkYWxsLWJ1dHRvbi1pbnB1dHMpIHdpdGggYSBsaXN0IG9mIGFsbCBodG1sNVxuLy8gaW5wdXQgdHlwZXMgdGhhdCBoYXZlIGEgYnV0dG9uLWJhc2VkIGlucHV0LCBleGNsdWRpbmcgYnV0dG9uLlxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuJGlucHV0cy1idXR0b24tbGlzdDogJ2lucHV0W3R5cGU9XCJidXR0b25cIl0nLFxuICAgICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJyZXNldFwiXScsXG4gICAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSc7XG5cbi8vIEJhcmUgaW5wdXRzXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4kYWxsLWJ1dHRvbi1pbnB1dHM6IGFzc2lnbi1pbnB1dHMoJGlucHV0cy1idXR0b24tbGlzdCk7XG5cbi8vIEhvdmVyIFBzZXVkby1jbGFzc1xuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuJGFsbC1idXR0b24taW5wdXRzLWhvdmVyOiBhc3NpZ24taW5wdXRzKCRpbnB1dHMtYnV0dG9uLWxpc3QsIGhvdmVyKTtcblxuLy8gRm9jdXMgUHNldWRvLWNsYXNzXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4kYWxsLWJ1dHRvbi1pbnB1dHMtZm9jdXM6IGFzc2lnbi1pbnB1dHMoJGlucHV0cy1idXR0b24tbGlzdCwgZm9jdXMpO1xuXG4vLyBBY3RpdmUgUHNldWRvLWNsYXNzXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4kYWxsLWJ1dHRvbi1pbnB1dHMtYWN0aXZlOiBhc3NpZ24taW5wdXRzKCRpbnB1dHMtYnV0dG9uLWxpc3QsIGFjdGl2ZSk7XG5cblxuXG4vLyBZb3UgbXVzdCB1c2UgaW50ZXJwb2xhdGlvbiBvbiB0aGUgdmFyaWFibGU6XG4vLyAjeyRhbGwtYnV0dG9uLWlucHV0c31cbi8vICN7JGFsbC1idXR0b24taW5wdXRzLWhvdmVyfVxuLy8gI3skYWxsLWJ1dHRvbi1pbnB1dHMtZm9jdXN9XG4vLyAjeyRhbGwtYnV0dG9uLWlucHV0cy1hY3RpdmV9XG5cbi8vIEV4YW1wbGVcbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi8vICAgI3skYWxsLWJ1dHRvbi1pbnB1dHN9LCBidXR0b24ge1xuLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkIHJlZDtcbi8vICAgfVxuIiwiQG1peGluIHBvc2l0aW9uICgkcG9zaXRpb246IHJlbGF0aXZlLCAkY29vcmRpbmF0ZXM6IG51bGwgbnVsbCBudWxsIG51bGwpIHtcblxuICBAaWYgdHlwZS1vZigkcG9zaXRpb24pID09IGxpc3Qge1xuICAgICRjb29yZGluYXRlczogJHBvc2l0aW9uO1xuICAgICRwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cblxuICAkY29vcmRpbmF0ZXM6IHVucGFjaygkY29vcmRpbmF0ZXMpO1xuXG4gICR0b3A6IG50aCgkY29vcmRpbmF0ZXMsIDEpO1xuICAkcmlnaHQ6IG50aCgkY29vcmRpbmF0ZXMsIDIpO1xuICAkYm90dG9tOiBudGgoJGNvb3JkaW5hdGVzLCAzKTtcbiAgJGxlZnQ6IG50aCgkY29vcmRpbmF0ZXMsIDQpO1xuXG4gIHBvc2l0aW9uOiAkcG9zaXRpb247XG5cbiAgQGlmICgkdG9wIGFuZCAkdG9wID09IGF1dG8pIG9yICh0eXBlLW9mKCR0b3ApID09IG51bWJlcikge1xuICAgIHRvcDogJHRvcDtcbiAgfVxuXG4gIEBpZiAoJHJpZ2h0IGFuZCAkcmlnaHQgPT0gYXV0bykgb3IgKHR5cGUtb2YoJHJpZ2h0KSA9PSBudW1iZXIpIHtcbiAgICByaWdodDogJHJpZ2h0O1xuICB9XG5cbiAgQGlmICgkYm90dG9tIGFuZCAkYm90dG9tID09IGF1dG8pIG9yICh0eXBlLW9mKCRib3R0b20pID09IG51bWJlcikge1xuICAgIGJvdHRvbTogJGJvdHRvbTtcbiAgfVxuXG4gIEBpZiAoJGxlZnQgYW5kICRsZWZ0ID09IGF1dG8pIG9yICh0eXBlLW9mKCRsZWZ0KSA9PSBudW1iZXIpIHtcbiAgICBsZWZ0OiAkbGVmdDtcbiAgfVxufVxuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8gRXhhbXBsZTogQGluY2x1ZGUgcHJlZml4ZXIoYm9yZGVyLXJhZGl1cywgJHJhZGlpLCB3ZWJraXQgbXMgc3BlYyk7XG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4vLyBWYXJpYWJsZXMgbG9jYXRlZCBpbiAvc2V0dGluZ3MvX3ByZWZpeGVyLnNjc3NcblxuQG1peGluIHByZWZpeGVyICgkcHJvcGVydHksICR2YWx1ZSwgJHByZWZpeGVzKSB7XG4gIEBlYWNoICRwcmVmaXggaW4gJHByZWZpeGVzIHtcbiAgICBAaWYgJHByZWZpeCA9PSB3ZWJraXQge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLXdlYmtpdCB7XG4gICAgICAgIC13ZWJraXQtI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIGlmICRwcmVmaXggPT0gbW96IHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci1tb3ppbGxhIHtcbiAgICAgICAgLW1vei0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2UgaWYgJHByZWZpeCA9PSBtcyB7XG4gICAgICBAaWYgJHByZWZpeC1mb3ItbWljcm9zb2Z0IHtcbiAgICAgICAgLW1zLSN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSBpZiAkcHJlZml4ID09IG8ge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLW9wZXJhIHtcbiAgICAgICAgLW8tI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIGlmICRwcmVmaXggPT0gc3BlYyB7XG4gICAgICBAaWYgJHByZWZpeC1mb3Itc3BlYyB7XG4gICAgICAgICN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSAge1xuICAgICAgQHdhcm4gXCJVbnJlY29nbml6ZWQgcHJlZml4OiAjeyRwcmVmaXh9XCI7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBkaXNhYmxlLXByZWZpeC1mb3ItYWxsKCkge1xuICAkcHJlZml4LWZvci13ZWJraXQ6ICAgIGZhbHNlICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW1vemlsbGE6ICAgZmFsc2UgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3ItbWljcm9zb2Z0OiBmYWxzZSAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1vcGVyYTogICAgIGZhbHNlICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLXNwZWM6ICAgICAgZmFsc2UgIWdsb2JhbDtcbn1cbiIsIkBtaXhpbiByZXRpbmEtaW1hZ2UoJGZpbGVuYW1lLCAkYmFja2dyb3VuZC1zaXplLCAkZXh0ZW5zaW9uOiBwbmcsICRyZXRpbmEtZmlsZW5hbWU6IG51bGwsICRyZXRpbmEtc3VmZml4OiBfMngsICRhc3NldC1waXBlbGluZTogJGFzc2V0LXBpcGVsaW5lKSB7XG4gIEBpZiAkYXNzZXQtcGlwZWxpbmUge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IGltYWdlLXVybChcIiN7JGZpbGVuYW1lfS4jeyRleHRlbnNpb259XCIpO1xuICB9XG4gIEBlbHNlIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAgICAgICB1cmwoXCIjeyRmaWxlbmFtZX0uI3skZXh0ZW5zaW9ufVwiKTtcbiAgfVxuXG4gIEBpbmNsdWRlIGhpZHBpIHtcbiAgICBAaWYgJGFzc2V0LXBpcGVsaW5lIHtcbiAgICAgIEBpZiAkcmV0aW5hLWZpbGVuYW1lIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogaW1hZ2UtdXJsKFwiI3skcmV0aW5hLWZpbGVuYW1lfS4jeyRleHRlbnNpb259XCIpO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBpbWFnZS11cmwoXCIjeyRmaWxlbmFtZX0jeyRyZXRpbmEtc3VmZml4fS4jeyRleHRlbnNpb259XCIpO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBlbHNlIHtcbiAgICAgIEBpZiAkcmV0aW5hLWZpbGVuYW1lIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiI3skcmV0aW5hLWZpbGVuYW1lfS4jeyRleHRlbnNpb259XCIpO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIjeyRmaWxlbmFtZX0jeyRyZXRpbmEtc3VmZml4fS4jeyRleHRlbnNpb259XCIpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGJhY2tncm91bmQtc2l6ZTogJGJhY2tncm91bmQtc2l6ZTtcblxuICB9XG59XG4iLCIvLyBTZXQgYHdpZHRoYCBhbmQgYGhlaWdodGAgaW4gYSBzaW5nbGUgc3RhdGVtZW50XG5cbkBtaXhpbiBzaXplKCR2YWx1ZSkge1xuICAkd2lkdGg6IG50aCgkdmFsdWUsIDEpO1xuICAkaGVpZ2h0OiAkd2lkdGg7XG5cbiAgQGlmIGxlbmd0aCgkdmFsdWUpID4gMSB7XG4gICAgJGhlaWdodDogbnRoKCR2YWx1ZSwgMik7XG4gIH1cblxuICBAaWYgaXMtc2l6ZSgkaGVpZ2h0KSB7XG4gICAgaGVpZ2h0OiAkaGVpZ2h0O1xuICB9XG5cbiAgQGVsc2Uge1xuICAgIEB3YXJuIFwiYCN7JGhlaWdodH1gIGlzIG5vdCBhIHZhbGlkIGxlbmd0aCBmb3IgdGhlIGAkaGVpZ2h0YCBwYXJhbWV0ZXIgaW4gdGhlIGBzaXplYCBtaXhpbi5cIjtcbiAgfVxuXG4gIEBpZiBpcy1zaXplKCR3aWR0aCkge1xuICAgIHdpZHRoOiAkd2lkdGg7XG4gIH1cblxuICBAZWxzZSB7XG4gICAgQHdhcm4gXCJgI3skd2lkdGh9YCBpcyBub3QgYSB2YWxpZCBsZW5ndGggZm9yIHRoZSBgJHdpZHRoYCBwYXJhbWV0ZXIgaW4gdGhlIGBzaXplYCBtaXhpbi5cIjtcbiAgfVxufVxuIiwiLy8gQ1NTIGN1YmljLWJlemllciB0aW1pbmcgZnVuY3Rpb25zLiBUaW1pbmcgZnVuY3Rpb25zIGNvdXJ0ZXN5IG9mIGpxdWVyeS5lYXNpZSAoZ2l0aHViLmNvbS9qYXVraWEvZWFzaWUpXG4vLyBUaW1pbmcgZnVuY3Rpb25zIGFyZSB0aGUgc2FtZSBhcyBkZW1vJ2VkIGhlcmU6IGh0dHA6Ly9qcXVlcnl1aS5jb20vcmVzb3VyY2VzL2RlbW9zL2VmZmVjdC9lYXNpbmcuaHRtbFxuXG4vLyBFQVNFIElOXG4kZWFzZS1pbi1xdWFkOiAgICAgIGN1YmljLWJlemllcigwLjU1MCwgIDAuMDg1LCAwLjY4MCwgMC41MzApO1xuJGVhc2UtaW4tY3ViaWM6ICAgICBjdWJpYy1iZXppZXIoMC41NTAsICAwLjA1NSwgMC42NzUsIDAuMTkwKTtcbiRlYXNlLWluLXF1YXJ0OiAgICAgY3ViaWMtYmV6aWVyKDAuODk1LCAgMC4wMzAsIDAuNjg1LCAwLjIyMCk7XG4kZWFzZS1pbi1xdWludDogICAgIGN1YmljLWJlemllcigwLjc1NSwgIDAuMDUwLCAwLjg1NSwgMC4wNjApO1xuJGVhc2UtaW4tc2luZTogICAgICBjdWJpYy1iZXppZXIoMC40NzAsICAwLjAwMCwgMC43NDUsIDAuNzE1KTtcbiRlYXNlLWluLWV4cG86ICAgICAgY3ViaWMtYmV6aWVyKDAuOTUwLCAgMC4wNTAsIDAuNzk1LCAwLjAzNSk7XG4kZWFzZS1pbi1jaXJjOiAgICAgIGN1YmljLWJlemllcigwLjYwMCwgIDAuMDQwLCAwLjk4MCwgMC4zMzUpO1xuJGVhc2UtaW4tYmFjazogICAgICBjdWJpYy1iZXppZXIoMC42MDAsIC0wLjI4MCwgMC43MzUsIDAuMDQ1KTtcblxuLy8gRUFTRSBPVVRcbiRlYXNlLW91dC1xdWFkOiAgICAgY3ViaWMtYmV6aWVyKDAuMjUwLCAgMC40NjAsIDAuNDUwLCAwLjk0MCk7XG4kZWFzZS1vdXQtY3ViaWM6ICAgIGN1YmljLWJlemllcigwLjIxNSwgIDAuNjEwLCAwLjM1NSwgMS4wMDApO1xuJGVhc2Utb3V0LXF1YXJ0OiAgICBjdWJpYy1iZXppZXIoMC4xNjUsICAwLjg0MCwgMC40NDAsIDEuMDAwKTtcbiRlYXNlLW91dC1xdWludDogICAgY3ViaWMtYmV6aWVyKDAuMjMwLCAgMS4wMDAsIDAuMzIwLCAxLjAwMCk7XG4kZWFzZS1vdXQtc2luZTogICAgIGN1YmljLWJlemllcigwLjM5MCwgIDAuNTc1LCAwLjU2NSwgMS4wMDApO1xuJGVhc2Utb3V0LWV4cG86ICAgICBjdWJpYy1iZXppZXIoMC4xOTAsICAxLjAwMCwgMC4yMjAsIDEuMDAwKTtcbiRlYXNlLW91dC1jaXJjOiAgICAgY3ViaWMtYmV6aWVyKDAuMDc1LCAgMC44MjAsIDAuMTY1LCAxLjAwMCk7XG4kZWFzZS1vdXQtYmFjazogICAgIGN1YmljLWJlemllcigwLjE3NSwgIDAuODg1LCAwLjMyMCwgMS4yNzUpO1xuXG4vLyBFQVNFIElOIE9VVFxuJGVhc2UtaW4tb3V0LXF1YWQ6ICBjdWJpYy1iZXppZXIoMC40NTUsICAwLjAzMCwgMC41MTUsIDAuOTU1KTtcbiRlYXNlLWluLW91dC1jdWJpYzogY3ViaWMtYmV6aWVyKDAuNjQ1LCAgMC4wNDUsIDAuMzU1LCAxLjAwMCk7XG4kZWFzZS1pbi1vdXQtcXVhcnQ6IGN1YmljLWJlemllcigwLjc3MCwgIDAuMDAwLCAwLjE3NSwgMS4wMDApO1xuJGVhc2UtaW4tb3V0LXF1aW50OiBjdWJpYy1iZXppZXIoMC44NjAsICAwLjAwMCwgMC4wNzAsIDEuMDAwKTtcbiRlYXNlLWluLW91dC1zaW5lOiAgY3ViaWMtYmV6aWVyKDAuNDQ1LCAgMC4wNTAsIDAuNTUwLCAwLjk1MCk7XG4kZWFzZS1pbi1vdXQtZXhwbzogIGN1YmljLWJlemllcigxLjAwMCwgIDAuMDAwLCAwLjAwMCwgMS4wMDApO1xuJGVhc2UtaW4tb3V0LWNpcmM6ICBjdWJpYy1iZXppZXIoMC43ODUsICAwLjEzNSwgMC4xNTAsIDAuODYwKTtcbiRlYXNlLWluLW91dC1iYWNrOiAgY3ViaWMtYmV6aWVyKDAuNjgwLCAtMC41NTAsIDAuMjY1LCAxLjU1MCk7XG4iLCJAbWl4aW4gdHJpYW5nbGUgKCRzaXplLCAkY29sb3IsICRkaXJlY3Rpb24pIHtcbiAgaGVpZ2h0OiAwO1xuICB3aWR0aDogMDtcblxuICAkd2lkdGg6IG50aCgkc2l6ZSwgMSk7XG4gICRoZWlnaHQ6IG50aCgkc2l6ZSwgbGVuZ3RoKCRzaXplKSk7XG5cbiAgJGZvcmVncm91bmQtY29sb3I6IG50aCgkY29sb3IsIDEpO1xuICAkYmFja2dyb3VuZC1jb2xvcjogaWYobGVuZ3RoKCRjb2xvcikgPT0gMiwgbnRoKCRjb2xvciwgMiksIHRyYW5zcGFyZW50KTtcblxuICBAaWYgKCRkaXJlY3Rpb24gPT0gdXApIG9yICgkZGlyZWN0aW9uID09IGRvd24pIG9yICgkZGlyZWN0aW9uID09IHJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PSBsZWZ0KSB7XG5cbiAgICAkd2lkdGg6ICR3aWR0aCAvIDI7XG4gICAgJGhlaWdodDogaWYobGVuZ3RoKCRzaXplKSA+IDEsICRoZWlnaHQsICRoZWlnaHQvMik7XG5cbiAgICBAaWYgJGRpcmVjdGlvbiA9PSB1cCB7XG4gICAgICBib3JkZXItbGVmdDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItYm90dG9tOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuXG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IHJpZ2h0IHtcbiAgICAgIGJvcmRlci10b3A6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1ib3R0b206ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1sZWZ0OiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuXG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IGRvd24ge1xuICAgICAgYm9yZGVyLWxlZnQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXRvcDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcblxuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBsZWZ0IHtcbiAgICAgIGJvcmRlci10b3A6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1ib3R0b206ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1yaWdodDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICB9XG4gIH1cblxuICBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSB1cC1yaWdodCkgb3IgKCRkaXJlY3Rpb24gPT0gdXAtbGVmdCkge1xuICAgIGJvcmRlci10b3A6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG5cbiAgICBAaWYgJGRpcmVjdGlvbiA9PSB1cC1yaWdodCB7XG4gICAgICBib3JkZXItbGVmdDogICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcblxuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSB1cC1sZWZ0IHtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGRvd24tcmlnaHQpIG9yICgkZGlyZWN0aW9uID09IGRvd24tbGVmdCkge1xuICAgIGJvcmRlci1ib3R0b206ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG5cbiAgICBAaWYgJGRpcmVjdGlvbiA9PSBkb3duLXJpZ2h0IHtcbiAgICAgIGJvcmRlci1sZWZ0OiAgJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuXG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IGRvd24tbGVmdCB7XG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9XG4gIH1cblxuICBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC11cCkge1xuICAgIGJvcmRlci13aWR0aDogJGhlaWdodCAkd2lkdGg7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRmb3JlZ3JvdW5kLWNvbG9yO1xuICB9XG5cbiAgQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtZG93bikge1xuICAgIGJvcmRlci13aWR0aDogJGhlaWdodCAkd2lkdGg7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6ICRmb3JlZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yO1xuICB9XG5cbiAgQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtcmlnaHQpIHtcbiAgICBib3JkZXItd2lkdGg6ICR3aWR0aCAkaGVpZ2h0O1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgfVxuXG4gIEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LWxlZnQpIHtcbiAgICBib3JkZXItd2lkdGg6ICR3aWR0aCAkaGVpZ2h0O1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvciAkZm9yZWdyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvcjtcbiAgfVxufVxuIiwiQG1peGluIHdvcmQtd3JhcCgkd3JhcDogYnJlYWstd29yZCkge1xuICB3b3JkLXdyYXA6ICR3cmFwO1xuXG4gIEBpZiAkd3JhcCA9PSBicmVhay13b3JkIHtcbiAgICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbiAgfVxufVxuIiwiLy8gVGhlIGZvbGxvd2luZyBmZWF0dXJlcyBoYXZlIGJlZW4gZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IE1BSk9SIHZlcnNpb24gcmVsZWFzZVxuXG5AbWl4aW4gaW5saW5lLWJsb2NrIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gIEB3YXJuIFwiVGhlIGlubGluZS1ibG9jayBtaXhpbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlXCI7XG59XG5cbkBtaXhpbiBidXR0b24gKCRzdHlsZTogc2ltcGxlLCAkYmFzZS1jb2xvcjogIzQyOTRmMCwgJHRleHQtc2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XG5cbiAgQGlmIHR5cGUtb2YoJHN0eWxlKSA9PSBzdHJpbmcgYW5kIHR5cGUtb2YoJGJhc2UtY29sb3IpID09IGNvbG9yIHtcbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IHN0cmluZyBhbmQgdHlwZS1vZigkYmFzZS1jb2xvcikgPT0gbnVtYmVyIHtcbiAgICAkcGFkZGluZzogJHRleHQtc2l6ZTtcbiAgICAkdGV4dC1zaXplOiAkYmFzZS1jb2xvcjtcbiAgICAkYmFzZS1jb2xvcjogIzQyOTRmMDtcblxuICAgIEBpZiAkcGFkZGluZyA9PSBpbmhlcml0IHtcbiAgICAgICRwYWRkaW5nOiA3cHggMThweDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IGNvbG9yIGFuZCB0eXBlLW9mKCRiYXNlLWNvbG9yKSA9PSBjb2xvciB7XG4gICAgJGJhc2UtY29sb3I6ICRzdHlsZTtcbiAgICAkc3R5bGU6IHNpbXBsZTtcbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IGNvbG9yIGFuZCB0eXBlLW9mKCRiYXNlLWNvbG9yKSA9PSBudW1iZXIge1xuICAgICRwYWRkaW5nOiAkdGV4dC1zaXplO1xuICAgICR0ZXh0LXNpemU6ICRiYXNlLWNvbG9yO1xuICAgICRiYXNlLWNvbG9yOiAkc3R5bGU7XG4gICAgJHN0eWxlOiBzaW1wbGU7XG5cbiAgICBAaWYgJHBhZGRpbmcgPT0gaW5oZXJpdCB7XG4gICAgICAkcGFkZGluZzogN3B4IDE4cHg7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnV0dG9uc3R5bGUoJHN0eWxlLCAkYmFzZS1jb2xvciwgJHRleHQtc2l6ZSwgJHBhZGRpbmcpO1xuICB9XG5cbiAgQGlmIHR5cGUtb2YoJHN0eWxlKSA9PSBudW1iZXIge1xuICAgICRwYWRkaW5nOiAkYmFzZS1jb2xvcjtcbiAgICAkdGV4dC1zaXplOiAkc3R5bGU7XG4gICAgJGJhc2UtY29sb3I6ICM0Mjk0ZjA7XG4gICAgJHN0eWxlOiBzaW1wbGU7XG5cbiAgICBAaWYgJHBhZGRpbmcgPT0gIzQyOTRmMCB7XG4gICAgICAkcGFkZGluZzogN3B4IDE4cHg7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnV0dG9uc3R5bGUoJHN0eWxlLCAkYmFzZS1jb2xvciwgJHRleHQtc2l6ZSwgJHBhZGRpbmcpO1xuICB9XG5cbiAgJjpkaXNhYmxlZCB7XG4gICAgb3BhY2l0eTogMC41O1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gIH1cblxuICBAd2FybiBcIlRoZSBidXR0b24gbWl4aW4gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZVwiO1xufVxuXG4vLyBTZWxlY3RvciBTdHlsZSBCdXR0b25cbkBtaXhpbiBidXR0b25zdHlsZSgkdHlwZSwgJGItY29sb3IsICR0LXNpemUsICRwYWQpIHtcbiAgLy8gR3JheXNjYWxlIGJ1dHRvblxuICBAaWYgJHR5cGUgPT0gc2ltcGxlIGFuZCAkYi1jb2xvciA9PSBncmF5c2NhbGUoJGItY29sb3IpIHtcbiAgICBAaW5jbHVkZSBzaW1wbGUoJGItY29sb3IsIHRydWUsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgQGlmICR0eXBlID09IHNoaW55IGFuZCAkYi1jb2xvciA9PSBncmF5c2NhbGUoJGItY29sb3IpIHtcbiAgICBAaW5jbHVkZSBzaGlueSgkYi1jb2xvciwgdHJ1ZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICBAaWYgJHR5cGUgPT0gcGlsbCBhbmQgJGItY29sb3IgPT0gZ3JheXNjYWxlKCRiLWNvbG9yKSB7XG4gICAgQGluY2x1ZGUgcGlsbCgkYi1jb2xvciwgdHJ1ZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICBAaWYgJHR5cGUgPT0gZmxhdCBhbmQgJGItY29sb3IgPT0gZ3JheXNjYWxlKCRiLWNvbG9yKSB7XG4gICAgQGluY2x1ZGUgZmxhdCgkYi1jb2xvciwgdHJ1ZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICAvLyBDb2xvcmVkIGJ1dHRvblxuICBAaWYgJHR5cGUgPT0gc2ltcGxlIHtcbiAgICBAaW5jbHVkZSBzaW1wbGUoJGItY29sb3IsIGZhbHNlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIEBlbHNlIGlmICR0eXBlID09IHNoaW55IHtcbiAgICBAaW5jbHVkZSBzaGlueSgkYi1jb2xvciwgZmFsc2UsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgQGVsc2UgaWYgJHR5cGUgPT0gcGlsbCB7XG4gICAgQGluY2x1ZGUgcGlsbCgkYi1jb2xvciwgZmFsc2UsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgQGVsc2UgaWYgJHR5cGUgPT0gZmxhdCB7XG4gICAgQGluY2x1ZGUgZmxhdCgkYi1jb2xvciwgZmFsc2UsICR0LXNpemUsICRwYWQpO1xuICB9XG59XG5cbi8vIFNpbXBsZSBCdXR0b25cbkBtaXhpbiBzaW1wbGUoJGJhc2UtY29sb3IsICRncmF5c2NhbGU6IGZhbHNlLCAkdGV4dHNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xuICAkY29sb3I6ICAgICAgICAgaHNsKDAsIDAsIDEwMCUpO1xuICAkYm9yZGVyOiAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogIDklLCAgJGxpZ2h0bmVzczogLTE0JSk7XG4gICRpbnNldC1zaGFkb3c6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAtOCUsICAkbGlnaHRuZXNzOiAgMTUlKTtcbiAgJHN0b3AtZ3JhZGllbnQ6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246ICA5JSwgICRsaWdodG5lc3M6IC0xMSUpO1xuICAkdGV4dC1zaGFkb3c6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogIDE1JSwgJGxpZ2h0bmVzczogLTE4JSk7XG5cbiAgQGlmIGlzLWxpZ2h0KCRiYXNlLWNvbG9yKSB7XG4gICAgJGNvbG9yOiAgICAgICBoc2woMCwgMCwgMjAlKTtcbiAgICAkdGV4dC1zaGFkb3c6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDEwJSwgJGxpZ2h0bmVzczogNCUpO1xuICB9XG5cbiAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgJGJvcmRlcjogICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyKTtcbiAgICAkaW5zZXQtc2hhZG93OiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3cpO1xuICAgICRzdG9wLWdyYWRpZW50OiBncmF5c2NhbGUoJHN0b3AtZ3JhZGllbnQpO1xuICAgICR0ZXh0LXNoYWRvdzogICBncmF5c2NhbGUoJHRleHQtc2hhZG93KTtcbiAgfVxuXG4gIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3c7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAkdGV4dHNpemU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQgKCRiYXNlLWNvbG9yLCAkc3RvcC1ncmFkaWVudCk7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtc2hhZG93OiAwIDFweCAwICR0ZXh0LXNoYWRvdztcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcblxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogLTQlLCAkbGlnaHRuZXNzOiAtNSUpO1xuICAgICRpbnNldC1zaGFkb3ctaG92ZXI6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAtNyUsICRsaWdodG5lc3M6ICA1JSk7XG4gICAgJHN0b3AtZ3JhZGllbnQtaG92ZXI6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246ICA4JSwgJGxpZ2h0bmVzczogLTE0JSk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRiYXNlLWNvbG9yLWhvdmVyOiAgICBncmF5c2NhbGUoJGJhc2UtY29sb3ItaG92ZXIpO1xuICAgICAgJGluc2V0LXNoYWRvdy1ob3ZlcjogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWhvdmVyKTtcbiAgICAgICRzdG9wLWdyYWRpZW50LWhvdmVyOiBncmF5c2NhbGUoJHN0b3AtZ3JhZGllbnQtaG92ZXIpO1xuICAgIH1cblxuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkaW5zZXQtc2hhZG93LWhvdmVyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQgKCRiYXNlLWNvbG9yLWhvdmVyLCAkc3RvcC1ncmFkaWVudC1ob3Zlcik7XG4gIH1cblxuICAmOmFjdGl2ZTpub3QoOmRpc2FibGVkKSxcbiAgJjpmb2N1czpub3QoOmRpc2FibGVkKSB7XG4gICAgJGJvcmRlci1hY3RpdmU6ICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDklLCAkbGlnaHRuZXNzOiAtMTQlKTtcbiAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogNyUsICRsaWdodG5lc3M6IC0xNyUpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkYm9yZGVyLWFjdGl2ZTogICAgICAgZ3JheXNjYWxlKCRib3JkZXItYWN0aXZlKTtcbiAgICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiBncmF5c2NhbGUoJGluc2V0LXNoYWRvdy1hY3RpdmUpO1xuICAgIH1cblxuICAgIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItYWN0aXZlO1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCA4cHggNHB4ICRpbnNldC1zaGFkb3ctYWN0aXZlLCBpbnNldCAwIDAgOHB4IDRweCAkaW5zZXQtc2hhZG93LWFjdGl2ZTtcbiAgfVxufVxuXG4vLyBTaGlueSBCdXR0b25cbkBtaXhpbiBzaGlueSgkYmFzZS1jb2xvciwgJGdyYXlzY2FsZTogZmFsc2UsICR0ZXh0c2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XG4gICRjb2xvcjogICAgICAgICBoc2woMCwgMCwgMTAwJSk7XG4gICRib3JkZXI6ICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC0xMTcsICRncmVlbjogLTExMSwgJGJsdWU6IC04MSk7XG4gICRib3JkZXItYm90dG9tOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC0xMjYsICRncmVlbjogLTEyNywgJGJsdWU6IC0xMjIpO1xuICAkZm91cnRoLXN0b3A6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtNzksICAkZ3JlZW46IC03MCwgICRibHVlOiAtNDYpO1xuICAkaW5zZXQtc2hhZG93OiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAgMzcsICAkZ3JlZW46ICAyOSwgICRibHVlOiAgMTIpO1xuICAkc2Vjb25kLXN0b3A6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtNTYsICAkZ3JlZW46IC01MCwgICRibHVlOiAtMzMpO1xuICAkdGV4dC1zaGFkb3c6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTQwLCAkZ3JlZW46IC0xNDEsICRibHVlOiAtMTE0KTtcbiAgJHRoaXJkLXN0b3A6ICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTg2LCAgJGdyZWVuOiAtNzUsICAkYmx1ZTogLTQ4KTtcblxuICBAaWYgaXMtbGlnaHQoJGJhc2UtY29sb3IpIHtcbiAgICAkY29sb3I6ICAgICAgIGhzbCgwLCAwLCAyMCUpO1xuICAgICR0ZXh0LXNoYWRvdzogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogMTAlLCAkbGlnaHRuZXNzOiA0JSk7XG4gIH1cblxuICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAkYm9yZGVyOiAgICAgICAgZ3JheXNjYWxlKCRib3JkZXIpO1xuICAgICRib3JkZXItYm90dG9tOiBncmF5c2NhbGUoJGJvcmRlci1ib3R0b20pO1xuICAgICRmb3VydGgtc3RvcDogICBncmF5c2NhbGUoJGZvdXJ0aC1zdG9wKTtcbiAgICAkaW5zZXQtc2hhZG93OiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3cpO1xuICAgICRzZWNvbmQtc3RvcDogICBncmF5c2NhbGUoJHNlY29uZC1zdG9wKTtcbiAgICAkdGV4dC1zaGFkb3c6ICAgZ3JheXNjYWxlKCR0ZXh0LXNoYWRvdyk7XG4gICAgJHRoaXJkLXN0b3A6ICAgIGdyYXlzY2FsZSgkdGhpcmQtc3RvcCk7XG4gIH1cblxuICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGJvcmRlci1ib3R0b207XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3c7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAkdGV4dHNpemU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQodG9wLCAkYmFzZS1jb2xvciAwJSwgJHNlY29uZC1zdG9wIDUwJSwgJHRoaXJkLXN0b3AgNTAlLCAkZm91cnRoLXN0b3AgMTAwJSk7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC1zaGFkb3c6IDAgLTFweCAxcHggJHRleHQtc2hhZG93O1xuXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgICRmaXJzdC1zdG9wLWhvdmVyOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTMsICRncmVlbjogLTE1LCAkYmx1ZTogLTE4KTtcbiAgICAkc2Vjb25kLXN0b3AtaG92ZXI6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTY2LCAkZ3JlZW46IC02MiwgJGJsdWU6IC01MSk7XG4gICAgJHRoaXJkLXN0b3AtaG92ZXI6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC05MywgJGdyZWVuOiAtODUsICRibHVlOiAtNjYpO1xuICAgICRmb3VydGgtc3RvcC1ob3ZlcjogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtODYsICRncmVlbjogLTgwLCAkYmx1ZTogLTYzKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGZpcnN0LXN0b3AtaG92ZXI6ICBncmF5c2NhbGUoJGZpcnN0LXN0b3AtaG92ZXIpO1xuICAgICAgJHNlY29uZC1zdG9wLWhvdmVyOiBncmF5c2NhbGUoJHNlY29uZC1zdG9wLWhvdmVyKTtcbiAgICAgICR0aGlyZC1zdG9wLWhvdmVyOiAgZ3JheXNjYWxlKCR0aGlyZC1zdG9wLWhvdmVyKTtcbiAgICAgICRmb3VydGgtc3RvcC1ob3ZlcjogZ3JheXNjYWxlKCRmb3VydGgtc3RvcC1ob3Zlcik7XG4gICAgfVxuXG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCh0b3AsICRmaXJzdC1zdG9wLWhvdmVyICAwJSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc2Vjb25kLXN0b3AtaG92ZXIgNTAlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlyZC1zdG9wLWhvdmVyICA1MCUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGZvdXJ0aC1zdG9wLWhvdmVyIDEwMCUpO1xuICB9XG5cbiAgJjphY3RpdmU6bm90KDpkaXNhYmxlZCksXG4gICY6Zm9jdXM6bm90KDpkaXNhYmxlZCkge1xuICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC0xMTEsICRncmVlbjogLTExNiwgJGJsdWU6IC0xMjIpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctYWN0aXZlKTtcbiAgICB9XG5cbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMjBweCAwICRpbnNldC1zaGFkb3ctYWN0aXZlO1xuICB9XG59XG5cbi8vIFBpbGwgQnV0dG9uXG5AbWl4aW4gcGlsbCgkYmFzZS1jb2xvciwgJGdyYXlzY2FsZTogZmFsc2UsICR0ZXh0c2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XG4gICRjb2xvcjogICAgICAgICBoc2woMCwgMCwgMTAwJSk7XG4gICRib3JkZXItYm90dG9tOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA4LCAkc2F0dXJhdGlvbjogLTExJSwgJGxpZ2h0bmVzczogLTI2JSk7XG4gICRib3JkZXItc2lkZXM6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA0LCAkc2F0dXJhdGlvbjogLTIxJSwgJGxpZ2h0bmVzczogLTIxJSk7XG4gICRib3JkZXItdG9wOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IC0xLCAkc2F0dXJhdGlvbjogLTMwJSwgJGxpZ2h0bmVzczogLTE1JSk7XG4gICRpbnNldC1zaGFkb3c6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IC0xLCAkc2F0dXJhdGlvbjogLTElLCAgJGxpZ2h0bmVzczogIDclKTtcbiAgJHN0b3AtZ3JhZGllbnQ6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDgsICRzYXR1cmF0aW9uOiAgMTQlLCAkbGlnaHRuZXNzOiAtMTAlKTtcbiAgJHRleHQtc2hhZG93OiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDUsICRzYXR1cmF0aW9uOiAtMTklLCAkbGlnaHRuZXNzOiAtMTUlKTtcblxuICBAaWYgaXMtbGlnaHQoJGJhc2UtY29sb3IpIHtcbiAgICAkY29sb3I6ICAgICAgIGhzbCgwLCAwLCAyMCUpO1xuICAgICR0ZXh0LXNoYWRvdzogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogMTAlLCAkbGlnaHRuZXNzOiA0JSk7XG4gIH1cblxuICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAkYm9yZGVyLWJvdHRvbTogZ3JheXNjYWxlKCRib3JkZXItYm90dG9tKTtcbiAgICAkYm9yZGVyLXNpZGVzOiAgZ3JheXNjYWxlKCRib3JkZXItc2lkZXMpO1xuICAgICRib3JkZXItdG9wOiAgICBncmF5c2NhbGUoJGJvcmRlci10b3ApO1xuICAgICRpbnNldC1zaGFkb3c6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdyk7XG4gICAgJHN0b3AtZ3JhZGllbnQ6IGdyYXlzY2FsZSgkc3RvcC1ncmFkaWVudCk7XG4gICAgJHRleHQtc2hhZG93OiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3cpO1xuICB9XG5cbiAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci10b3A7XG4gIGJvcmRlci1jb2xvcjogJGJvcmRlci10b3AgJGJvcmRlci1zaWRlcyAkYm9yZGVyLWJvdHRvbTtcbiAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3c7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAkdGV4dHNpemU7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQgKCRiYXNlLWNvbG9yLCAkc3RvcC1ncmFkaWVudCk7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC1zaGFkb3c6IDAgLTFweCAxcHggJHRleHQtc2hhZG93O1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgICRiYXNlLWNvbG9yLWhvdmVyOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGlnaHRuZXNzOiAtNC41JSk7XG4gICAgJGJvcmRlci1ib3R0b206ICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDgsICRzYXR1cmF0aW9uOiAgMTMuNSUsICRsaWdodG5lc3M6IC0zMiUpO1xuICAgICRib3JkZXItc2lkZXM6ICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA0LCAkc2F0dXJhdGlvbjogLTIlLCAgICAkbGlnaHRuZXNzOiAtMjclKTtcbiAgICAkYm9yZGVyLXRvcDogICAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAtMSwgJHNhdHVyYXRpb246IC0xNyUsICAgJGxpZ2h0bmVzczogLTIxJSk7XG4gICAgJGluc2V0LXNoYWRvdy1ob3ZlcjogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgICAgICAgICAgICRzYXR1cmF0aW9uOiAtMSUsICAgICRsaWdodG5lc3M6ICAzJSk7XG4gICAgJHN0b3AtZ3JhZGllbnQtaG92ZXI6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDgsICRzYXR1cmF0aW9uOiAtNCUsICAgICRsaWdodG5lc3M6IC0xNS41JSk7XG4gICAgJHRleHQtc2hhZG93LWhvdmVyOiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDUsICRzYXR1cmF0aW9uOiAtNSUsICAgICRsaWdodG5lc3M6IC0yMiUpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgZ3JheXNjYWxlKCRiYXNlLWNvbG9yLWhvdmVyKTtcbiAgICAgICRib3JkZXItYm90dG9tOiAgICAgICBncmF5c2NhbGUoJGJvcmRlci1ib3R0b20pO1xuICAgICAgJGJvcmRlci1zaWRlczogICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyLXNpZGVzKTtcbiAgICAgICRib3JkZXItdG9wOiAgICAgICAgICBncmF5c2NhbGUoJGJvcmRlci10b3ApO1xuICAgICAgJGluc2V0LXNoYWRvdy1ob3ZlcjogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWhvdmVyKTtcbiAgICAgICRzdG9wLWdyYWRpZW50LWhvdmVyOiBncmF5c2NhbGUoJHN0b3AtZ3JhZGllbnQtaG92ZXIpO1xuICAgICAgJHRleHQtc2hhZG93LWhvdmVyOiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3ctaG92ZXIpO1xuICAgIH1cblxuICAgIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItdG9wO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci10b3AgJGJvcmRlci1zaWRlcyAkYm9yZGVyLWJvdHRvbTtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdy1ob3ZlcjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50ICgkYmFzZS1jb2xvci1ob3ZlciwgJHN0b3AtZ3JhZGllbnQtaG92ZXIpO1xuICAgIHRleHQtc2hhZG93OiAwIC0xcHggMXB4ICR0ZXh0LXNoYWRvdy1ob3ZlcjtcbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICB9XG5cbiAgJjphY3RpdmU6bm90KDpkaXNhYmxlZCksXG4gICY6Zm9jdXM6bm90KDpkaXNhYmxlZCkge1xuICAgICRhY3RpdmUtY29sb3I6ICAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiA0LCAgJHNhdHVyYXRpb246IC0xMiUsICAkbGlnaHRuZXNzOiAtMTAlKTtcbiAgICAkYm9yZGVyLWFjdGl2ZTogICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogNiwgICRzYXR1cmF0aW9uOiAtMi41JSwgJGxpZ2h0bmVzczogLTMwJSk7XG4gICAgJGJvcmRlci1ib3R0b20tYWN0aXZlOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDExLCAkc2F0dXJhdGlvbjogIDYlLCAgICRsaWdodG5lc3M6IC0zMSUpO1xuICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiA5LCAgJHNhdHVyYXRpb246ICAyJSwgICAkbGlnaHRuZXNzOiAtMjEuNSUpO1xuICAgICR0ZXh0LXNoYWRvdy1hY3RpdmU6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiA1LCAgJHNhdHVyYXRpb246IC0xMiUsICAkbGlnaHRuZXNzOiAtMjEuNSUpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkYWN0aXZlLWNvbG9yOiAgICAgICAgIGdyYXlzY2FsZSgkYWN0aXZlLWNvbG9yKTtcbiAgICAgICRib3JkZXItYWN0aXZlOiAgICAgICAgZ3JheXNjYWxlKCRib3JkZXItYWN0aXZlKTtcbiAgICAgICRib3JkZXItYm90dG9tLWFjdGl2ZTogZ3JheXNjYWxlKCRib3JkZXItYm90dG9tLWFjdGl2ZSk7XG4gICAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWFjdGl2ZSk7XG4gICAgICAkdGV4dC1zaGFkb3ctYWN0aXZlOiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3ctYWN0aXZlKTtcbiAgICB9XG5cbiAgICBiYWNrZ3JvdW5kOiAkYWN0aXZlLWNvbG9yO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItYWN0aXZlO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYm9yZGVyLWJvdHRvbS1hY3RpdmU7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDZweCAzcHggJGluc2V0LXNoYWRvdy1hY3RpdmU7XG4gICAgdGV4dC1zaGFkb3c6IDAgLTFweCAxcHggJHRleHQtc2hhZG93LWFjdGl2ZTtcbiAgfVxufVxuXG4vLyBGbGF0IEJ1dHRvblxuQG1peGluIGZsYXQoJGJhc2UtY29sb3IsICRncmF5c2NhbGU6IGZhbHNlLCAkdGV4dHNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xuICAkY29sb3I6ICAgICAgICAgaHNsKDAsIDAsIDEwMCUpO1xuXG4gIEBpZiBpcy1saWdodCgkYmFzZS1jb2xvcikge1xuICAgICRjb2xvcjogICAgICAgaHNsKDAsIDAsIDIwJSk7XG4gIH1cblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFzZS1jb2xvcjtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBib3JkZXI6IG5vbmU7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAkdGV4dHNpemU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBwYWRkaW5nOiAkcGFkZGluZztcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCl7XG4gICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDQlLCAkbGlnaHRuZXNzOiA1JSk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRiYXNlLWNvbG9yLWhvdmVyOiBncmF5c2NhbGUoJGJhc2UtY29sb3ItaG92ZXIpO1xuICAgIH1cblxuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYXNlLWNvbG9yLWhvdmVyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gICY6YWN0aXZlOm5vdCg6ZGlzYWJsZWQpLFxuICAmOmZvY3VzOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkYmFzZS1jb2xvci1hY3RpdmU6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IC00JSwgJGxpZ2h0bmVzczogLTUlKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGJhc2UtY29sb3ItYWN0aXZlOiBncmF5c2NhbGUoJGJhc2UtY29sb3ItYWN0aXZlKTtcbiAgICB9XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFzZS1jb2xvci1hY3RpdmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG59XG5cbi8vIEZsZXhpYmxlIGdyaWRcbkBmdW5jdGlvbiBmbGV4LWdyaWQoJGNvbHVtbnMsICRjb250YWluZXItY29sdW1uczogJGZnLW1heC1jb2x1bW5zKSB7XG4gICR3aWR0aDogJGNvbHVtbnMgKiAkZmctY29sdW1uICsgKCRjb2x1bW5zIC0gMSkgKiAkZmctZ3V0dGVyO1xuICAkY29udGFpbmVyLXdpZHRoOiAkY29udGFpbmVyLWNvbHVtbnMgKiAkZmctY29sdW1uICsgKCRjb250YWluZXItY29sdW1ucyAtIDEpICogJGZnLWd1dHRlcjtcbiAgQHJldHVybiBwZXJjZW50YWdlKCR3aWR0aCAvICRjb250YWluZXItd2lkdGgpO1xuXG4gIEB3YXJuIFwiVGhlIGZsZXgtZ3JpZCBmdW5jdGlvbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlXCI7XG59XG5cbi8vIEZsZXhpYmxlIGd1dHRlclxuQGZ1bmN0aW9uIGZsZXgtZ3V0dGVyKCRjb250YWluZXItY29sdW1uczogJGZnLW1heC1jb2x1bW5zLCAkZ3V0dGVyOiAkZmctZ3V0dGVyKSB7XG4gICRjb250YWluZXItd2lkdGg6ICRjb250YWluZXItY29sdW1ucyAqICRmZy1jb2x1bW4gKyAoJGNvbnRhaW5lci1jb2x1bW5zIC0gMSkgKiAkZmctZ3V0dGVyO1xuICBAcmV0dXJuIHBlcmNlbnRhZ2UoJGd1dHRlciAvICRjb250YWluZXItd2lkdGgpO1xuXG4gIEB3YXJuIFwiVGhlIGZsZXgtZ3V0dGVyIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIHJlbGVhc2VcIjtcbn1cblxuQGZ1bmN0aW9uIGdyaWQtd2lkdGgoJG4pIHtcbiAgQHJldHVybiAkbiAqICRndy1jb2x1bW4gKyAoJG4gLSAxKSAqICRndy1ndXR0ZXI7XG5cbiAgQHdhcm4gXCJUaGUgZ3JpZC13aWR0aCBmdW5jdGlvbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlXCI7XG59XG5cbkBmdW5jdGlvbiBnb2xkZW4tcmF0aW8oJHZhbHVlLCAkaW5jcmVtZW50KSB7XG4gIEByZXR1cm4gbW9kdWxhci1zY2FsZSgkaW5jcmVtZW50LCAkdmFsdWUsICRyYXRpbzogJGdvbGRlbik7XG5cbiAgQHdhcm4gXCJUaGUgZ29sZGVuLXJhdGlvIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIHJlbGVhc2UuIFBsZWFzZSB1c2UgdGhlIG1vZHVsYXItc2NhbGUgZnVuY3Rpb24sIGluc3RlYWQuXCI7XG59XG4iLCJAaW1wb3J0IFwiZm9udHNcIjtcbkBpbXBvcnQgXCJncmlkXCI7XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgRm9udCByZWxhdGVkIGZ1bmN0aW9uc1xuICAgQG1peGluID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGQgc29tZSBmdW5jdGlvbnMgZm9yIHJlYWRhYmlsaXR5XG4gKiBSZXR1cm4gZm9udC13ZWlnaHQgYmFzZWQgb24gbmFtZVxuICovXG5AZnVuY3Rpb24gbGlnaHRlc3QoKSB7XG4gIEByZXR1cm4gMTAwOyB9XG5cbkBmdW5jdGlvbiBsaWdodCgpIHtcbiAgQHJldHVybiAzMDA7IH1cblxuQGZ1bmN0aW9uIGJvb2soKSB7XG4gIEByZXR1cm4gNDAwOyB9XG5cbkBmdW5jdGlvbiBtZWRpdW0oKSB7XG4gIEByZXR1cm4gNTAwOyB9XG5cbkBmdW5jdGlvbiBzZW1pYm9sZCgpIHtcbiAgQHJldHVybiA2MDA7IH1cblxuQGZ1bmN0aW9uIGJvbGQoKSB7XG4gIEByZXR1cm4gNzAwOyB9XG5cbkBmdW5jdGlvbiBibGFjaygpIHtcbiAgQHJldHVybiA5MDA7IH1cblxuQG1peGluIGl0YWxpYygpIHtcbiAgZm9udC1mYW1pbHk6ICdBdmVuaXJMVFcwMi00NUJvb2tPYmxpcScsIHNhbnMtc2VyaWY7IH1cblxuQG1peGluIGJvbGQoKSB7XG4gIGZvbnQtZmFtaWx5OiAnQXZlbmlyIExUIFcwMiA5NSBCbGFjaycsIHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gfSAgLy9mb250LXdlaWdodDogYm9sZFxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgRnVuY3Rpb25zIHVzZWQgaW4gZ3JpZCBjYWxjdWxhdGlvblxuICBAbWl4aW4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAgKiBUaGlzIGlzIHdoZXJlIHRoZSBtYWdpYyBoYXBwZW5zXG4gICogUmV0dXJuIHBlcmNlbnRhZ2UgYmFzZWQgb24gYW1vdW50IG9mIGNvbHVtbnNcbiAgKiBVc2UgcGFyZW50IGNvbHVtbiBzaXplIHRvIGFkanVzdCB0aGUgb3JpZ2luXG4gICovXG5AZnVuY3Rpb24gY2FsY3VsYXRlQ29sdW1uU2l6ZSgkY29sdW1uQ291bnQgOiAxLCAkb3JpZ2luIDogJGdyaWRDb2x1bW5zKSB7XG4gIC8vIENhbGN1bGF0ZSB0aGUgd2lkdGggZm9yIGEgc2luZ2xlIGNvbHVtbiBvbiBhIGZ1bGwgZ3JpZFxuICAkc2luZ2xlQ29sdW1uU2l6ZSA6IDEwMCAvICRncmlkQ29sdW1ucztcblxuICAvLyBHZXQgdGhlIG9yaWdpbiBzaXplIGluIHBlcmNlbnRhZ2UgZnJvbSB0aGUgZnVsbCBncmlkXG4gICRvcmlnaW5QZXJjZW50YWdlIDogJG9yaWdpbiAvICRncmlkQ29sdW1ucyAqIDEwMDtcblxuICAvLyBDYWxjdWxhdGUgc2luZ2xlIGNvbHVtbiBmcm9tIG5ldyBvcmlnaW5cbiAgJG5ld1NpbmdsZUNvbHVtblNpemUgOiAkc2luZ2xlQ29sdW1uU2l6ZSAvICRvcmlnaW5QZXJjZW50YWdlICogMTAwO1xuXG4gIC8vIFJldHVybiBhbW91bnQgb2YgY29sdW1ucyBhcyBwZXJjZW50YWdlXG4gIEByZXR1cm4gKCRuZXdTaW5nbGVDb2x1bW5TaXplICogJGNvbHVtbkNvdW50KTsgfVxuXG4vKipcbiAgKiBEZWZhdWx0IGZ1bmN0aW9uIGZvciBjb2x1bW5zXG4gICogUmV0dXJuIGFzIHBlcmNlbnRhZ2VcbiAgKi9cbkBmdW5jdGlvbiBjb2x1bW4oJGNvbHVtbkNvdW50IDogMSwgJG9yaWdpbiA6ICRncmlkQ29sdW1ucykge1xuICBAcmV0dXJuIGNhbGN1bGF0ZUNvbHVtblNpemUoJGNvbHVtbkNvdW50LCRvcmlnaW4pICogMSU7IH1cblxuLyoqXG4gICogUmV0dXJuIGFzIHZpZXdwb3J0IHdpZHRoXG4gICovXG5AZnVuY3Rpb24gY29sdW1uVncoJGNvbHVtbkNvdW50IDogMSwgJG9yaWdpbiA6ICRncmlkQ29sdW1ucykge1xuICBAcmV0dXJuIGNhbGN1bGF0ZUNvbHVtblNpemUoJGNvbHVtbkNvdW50LCRvcmlnaW4pICogMXZ3OyB9XG4iLCJAaW1wb3J0IFwic3ByaXRlXCI7XG5AaW1wb3J0IFwibWVkaWFRdWVyaWVzXCI7XG5AaW1wb3J0IFwiZmxleFwiO1xuQGltcG9ydCBcInBsYWNlaG9sZGVyXCI7XG4iLCIkc3ByaXRlV2lkdGg6IDIxMnB4O1xuJHNwcml0ZUhlaWdodDogODJweDtcblxuXG5AbWl4aW4gc3ByaXRlKCRwb3NpdGlvbiwgJHdpZHRoOiBhdXRvLCAkaGVpZ2h0OiBhdXRvKSB7XG5cbiAgJHBvc2l0aW9uWDogbnRoKCRwb3NpdGlvbiwgMSkgKiAtMTtcbiAgJHBvc2l0aW9uWTogbnRoKCRwb3NpdGlvbiwgMikgKiAtMTtcblxuICBiYWNrZ3JvdW5kOiB1cmwoXCIvaW1nL3NwaXJlX3Nwcml0ZS5zdmdcIikgJHBvc2l0aW9uWCAkcG9zaXRpb25ZIG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiAkc3ByaXRlV2lkdGggJHNwcml0ZUhlaWdodDtcbiAgd2lkdGg6ICR3aWR0aDtcbiAgaGVpZ2h0OiAkaGVpZ2h0OyB9XG4iLCJAbWl4aW4gcmVzcG9uZC10by13aWR0aCgkd2lkdGgpIHtcbiAgJHdpZHRoIDogJHdpZHRoICsgJ3B4JztcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJHdpZHRoKSB7XG4gICAgQGNvbnRlbnQ7IH0gfVxuXG5AbWl4aW4gcmVzcG9uZC10by13aWR0aC1iZXlvbmQoJHdpZHRoKSB7XG4gICR3aWR0aCA6ICgkd2lkdGggKyAxKSAgKyAncHgnO1xuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkd2lkdGgpIHtcbiAgICBAY29udGVudDsgfSB9XG5cbkBtaXhpbiByZXNwb25kLXRvLWhlaWdodCgkaGVpZ2h0KSB7XG4gICRoZWlnaHQgOiAkaGVpZ2h0ICsgJ3B4JztcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC1oZWlnaHQ6ICRoZWlnaHQpIHtcbiAgICBAY29udGVudDsgfSB9XG5cbkBtaXhpbiByZXNwb25kLXRvLXdpZHRoLW9yLWhlaWdodCgkd2lkdGgsICRoZWlnaHQpIHtcbiAgJHdpZHRoIDogJHdpZHRoICsgJ3B4JztcbiAgJGhlaWdodCA6ICRoZWlnaHQgKyAncHgnO1xuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkd2lkdGgpLCBzY3JlZW4gYW5kIChtYXgtaGVpZ2h0OiAkaGVpZ2h0KSB7XG4gICAgQGNvbnRlbnQ7IH0gfVxuIiwiQG1peGluIGZsZXgoJGp1c3RpZnk6IHNwYWNlLWJldHdlZW4sICRhbGlnbkl0ZW06IGluaXRpYWwpIHtcbiAgZGlzcGxheTogLW1zLWZsZXhib3ggICAgICAvKiBUV0VFTkVSIC0gSUUgMTAgKi87XG4gIGRpc3BsYXk6IC13ZWJraXQtZmxleCAgICAgLyogTkVXIC0gQ2hyb21lICovO1xuICBkaXNwbGF5OiBmbGV4O1xuXG4gIEBpbmNsdWRlIHByZWZpeGVyKGp1c3RpZnktY29udGVudCwgJGp1c3RpZnksIHdlYmtpdCBtb3ogbXMpO1xuICBAaW5jbHVkZSBwcmVmaXhlcihhbGlnbi1pdGVtcywgJGFsaWduSXRlbSwgd2Via2l0IG1veiBtcyk7XG4gIGp1c3RpZnktY29udGVudDogJGp1c3RpZnk7XG4gIGFsaWduLWl0ZW1zOiAkYWxpZ25JdGVtOyB9XG5cblxuQG1peGluIGZsZXgtcm93cyB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtd3JhcCwgd3JhcCwgd2Via2l0IG1zKTtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1kaXJlY3Rpb24sIHJvdywgd2Via2l0IG1zKTtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1mbG93LCByb3cgd3JhcCwgd2Via2l0KTsgfVxuXG5AbWl4aW4gb3JkZXIoJHBsYWNlKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKG9yZGVyLCAkcGxhY2UsIHdlYmtpdCBtcyk7IH1cblxuQG1peGluIGFsaWduLWNvbnRlbnQoJGFsaWduKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFsaWduLWNvbnRlbnQsICRhbGlnbiwgd2Via2l0KTsgfVxuXG5AbWl4aW4gYWxpZ24tc2VsZigkYWxpZ24pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYWxpZ24tc2VsZiwgJGFsaWduLCB3ZWJraXQpOyB9XG4iLCJAbWl4aW4gcGxhY2Vob2xkZXIge1xuICAmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIC8qIENocm9tZS9PcGVyYS9TYWZhcmkgKi8ge1xuICAgIEBjb250ZW50OyB9XG4gICY6Oi1tb3otcGxhY2Vob2xkZXIgLyogRmlyZWZveCAxOSsgKi8ge1xuICAgIEBjb250ZW50OyB9XG4gICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyIC8qIElFIDEwKyAqLyB7XG4gICAgQGNvbnRlbnQ7IH1cbiAgJjotbW96LXBsYWNlaG9sZGVyIC8qIEZpcmVmb3ggMTgtICovIHtcbiAgICBAY29udGVudDsgfSB9XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQmFzaWMgc3R5bGUgc2V0dGluZ3NcbiAgIEBtaXhpbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbioge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG5cbi8qXG4gKiBTZXQgdXAgdGhlIGJvZHlcbiAqXG4gKiAxLiBUaGlzIGlzIHRoZSBiYXNlIGZvciBhbCByZW0gdW5pdHNcbiAqL1xuaHRtbCB7XG4gIGZvbnQtc2l6ZTogMjBweCAvKiAxICovO1xuICBsaW5lLWhlaWdodDogMS42OyB9XG5cbi8qKlxuICogMS5EZWZhdWx0IGRpc3BsYXkgZm9yIGltYWdlcyBpcyBibG9jayB0byBsb3NlIHRoZSBleHRyYSBtYXJnaW4gYmVsb3cgdGhlIGltYWdlXG4gKiAyLiBSZW1vdmUgYm9yZGVyIC8gZXNwZWNpYWxseSBvbiBvbGRlciBicm93c2Vyc1xuICovXG5pbWcge1xuICBkaXNwbGF5OiBibG9jayAvKiAxICovO1xuICBib3JkZXI6IG5vbmU7IH1cblxuLyoqXG4gICogQWRkIHRyYW5zbGF0aW9uIHRvIHByZXZlbnQgcmVjb2xvcmluZyBmcm9tIGF1dG9jb21wbGV0ZVxuICAqL1xuaW5wdXQsIHRleHRhcmVhIHtcbiAgQGluY2x1ZGUgcGxhY2Vob2xkZXIge1xuICAgIHRyYW5zaXRpb246IGFsbCA5OTk5cyBsaW5lYXIgOTk5OXM7IH0gfVxuXG4vKlxuICogUmVtb3ZlIGRlZmF1bHQgbWFyZ2luIGFyb3VuZCBmaWd1cmVcbiAqL1xuZmlndXJlIHtcbiAgbWFyZ2luOiAwOyB9XG4iLCJAaW1wb3J0IFwiZ3JpZFwiO1xuQGltcG9ydCBcInZpc2libGVHcmlkXCI7XG4iLCIvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIEdyaWRcbiAgQG1peGluID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gICogR3JpZCByb3dcbiAgKlxuICAqIDEuIFRoZSBvdXRlciB0d28gY29sdW1ucyBhcmUganVzdCBtYXJnaW5cbiAgKiAyLiBQcmV2ZW50IGlubGluZS1ibG9jayBjZWxscyB3cmFwcGluZ1xuICAqIDMuIFByZXZlbnQgdmVydGljYWwgc3BhY2luZyBiZXR3ZWVuIGlubGluZS1ibG9ja3NcbiAgKi9cblxuLmdyaWQtcm93IHtcbiAgd2lkdGg6IGNvbHVtbigxMikgLyogMSAqLztcbiAgLy9tYXgtd2lkdGg6IDE0NDBweFxuICBtYXgtd2lkdGg6IDk4MnB4O1xuICBtYXJnaW46IDAgYXV0bztcbiAgZm9udC1zaXplOiAwIC8qIDIgKi87XG4gIGxpbmUtaGVpZ2h0OiAwIC8qIDMgKi87XG5cbiAgLyoqXG4gICAqIFRoZSBmdWxsIHJvdyBkb2Vzbid0IGhhdmUgdGhlIHR3byBvdXRlciBtYXJnaW4gcm93c1xuICAgKiBUaGV5IHN0cmV0Y2ggdGlsbCBib3RoIGVuZHMgb2YgdGhlIHdpbmRvd1xuICAgKi9cblxuICAmLmZ1bGwtcm93IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IG5vbmU7IH0gfVxuXG4vKipcbiAqIEdyaWQgY29sdW1uXG4gKlxuICogMS4gUmVzZXQgd2hpdGUtc3BhY2UgaW5oZXJpdGVkIGZyb20gYC5ncmlkYFxuICogMi4gUmVzZXQgZm9udC1zaXplIGluaGVyaXRlZCBmcm9tIGAuZ3JpZGBcbiAqIDMuIFJlc2V0IGxpbmUtaGVpZ2h0IGluaGVyaXRlZCBmcm9tIGAuZ3JpZGBcbiAqL1xuXG4uZ3JpZC1jb2wge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsIC8qIDEgKi87XG4gIGZvbnQtc2l6ZTogMXJlbSAvKiAyICovO1xuICBsaW5lLWhlaWdodDogMS42IC8qIDMgKi87XG5cbiAgLyoqXG4gICAqIENlbnRlciBjb2x1bW5cbiAgICpcbiAgICogMS4gJ2lubGluZS1ibG9jaycgZG9lc24ndCBjZW50ZXIgd2l0aCBtYXJnaW4gJzAgYXV0bydcbiAgICovXG5cbiAgJi5jZW50ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrIC8qIDEgKi87XG4gICAgbWFyZ2luOiAwIGF1dG87IH0gfVxuXG5cblxuXG5AZm9yICRpIGZyb20gMSB0aHJvdWdoICRncmlkQ29sdW1ucyB7XG5cbiAgLyogQ29sdW1uIGRpbWVuc2lvbnNcbiAgIEBtaXhpbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgLypcbiAgICogQ2FsY3VsYXRlIHdpZHRoIGJ5IGRpdmlkaW5nIGEgZnVsbCB3aWR0aCBpbnRvIDEyIGNvbHVtbnNcbiAgICogQ3JlYXRlIGEgY2xhc3MgZm9yIGVhY2ggY29sdW1uXG4gICAqL1xuXG4gIC5jb2wtI3skaX0sIC5jb2wtbGctI3skaX0ge1xuICAgIHdpZHRoOiBjb2x1bW4oJGksMTIpO1xuXG5cbiAgICAuZnVsbC1yb3cgJiB7XG4gICAgICB3aWR0aDogY29sdW1uKCRpKTsgfSB9XG5cblxuICAvKiBDb2x1bW4gc2hpZnRzXG4gICBAbWl4aW4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gIC5vZmZzZXQtI3skaX0sIC5vZmZzZXQtbGctI3skaX0ge1xuICAgIG1hcmdpbi1sZWZ0OiBjb2x1bW4oJGksMTIpOyB9IH1cblxuXG5cbi8qIE1lZGlhIHF1ZXJpZXNcbiBAbWl4aW4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gLypcbiAgKiBDcmVhdGUgYSBzZXBhcmF0ZSBsb29wIGJlY2F1c2Ugb2Ygb3JkZXIgZm9yIGNzcyByZW5kZXJpbmdcbiAgKiBiZWNhdXNlIGVsc2UgaXQgd291bGQgb3ZlcnJ1bGUgYSBwcmV2aW91cyBtZWRpYSBxdWVyeVxuICAqL1xuXG5AZm9yICRpIGZyb20gMSB0aHJvdWdoICRncmlkQ29sdW1ucyB7XG5cbiAgLy8gTWVkaWEgcXVlcnkgZm9yIGxhcmdlIGRlc2t0b3BcbiAgQGluY2x1ZGUgcmVzcG9uZC10by13aWR0aC1iZXlvbmQoJHhsR3JpZEJyZWFrcG9pbnQpIHtcbiAgICAuY29sLXhsLSN7JGl9IHtcbiAgICAgIHdpZHRoOiBjb2x1bW4oJGksMTIpOyB9XG5cbiAgICAub2Zmc2V0LXhsLSN7JGl9IHtcbiAgICAgIG1hcmdpbi1sZWZ0OiBjb2x1bW4oJGksMTIpOyB9IH1cblxuICAvLyBNZWRpYSBxdWVyeSBmb3Igbm9ybWFsIGRlc2t0b3BcbiAgQGluY2x1ZGUgcmVzcG9uZC10by13aWR0aCgkbWRHcmlkQnJlYWtwb2ludCkge1xuICAgIC5jb2wtbWQtI3skaX0ge1xuICAgICAgd2lkdGg6IGNvbHVtbigkaSwxMik7IH1cblxuICAgIC5vZmZzZXQtbWQtI3skaX0ge1xuICAgICAgbWFyZ2luLWxlZnQ6IGNvbHVtbigkaSwxMik7IH0gfVxuXG4gIC8vIE1lZGlhIHF1ZXJ5IGZvciB0YWJsZXRzXG4gIEBpbmNsdWRlIHJlc3BvbmQtdG8td2lkdGgoJHNtR3JpZEJyZWFrcG9pbnQpIHtcbiAgICAuY29sLXNtLSN7JGl9IHtcbiAgICAgIHdpZHRoOiBjb2x1bW4oJGksMTIpOyB9XG5cbiAgICAub2Zmc2V0LXNtLSN7JGl9IHtcbiAgICAgIG1hcmdpbi1sZWZ0OiBjb2x1bW4oJGksMTIpOyB9IH1cblxuICAvLyBNZWRpYSBxdWVyeSBmb3IgbW9iaWxlXG4gIEBpbmNsdWRlIHJlc3BvbmQtdG8td2lkdGgoJHhzR3JpZEJyZWFrcG9pbnQpIHtcbiAgICAuY29sLXhzLSN7JGl9IHtcbiAgICAgIHdpZHRoOiBjb2x1bW4oJGksMTIpOyB9XG5cbiAgICAub2Zmc2V0LXhzLSN7JGl9IHtcbiAgICAgIG1hcmdpbi1sZWZ0OiBjb2x1bW4oJGksMTIpOyB9IH0gfVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFRoaXMgZ3JpZCBjYW4gYmUgdHVybmVkIG9uIGFuZCBvZmYgd2hlbiB5b3Ugd2FudCB0byBjaGVja1xuICAgaWYgZXZlcnl0aGluZyBpcyBuaWNlIGluIHBsYWNlLlxuICAgQG1peGluID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnZpc2libGUtZ3JpZC1jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuXG4vKipcbiAqIDEuIE1ha2VzIGl0IGFibGUgdG8gY29udHJvbCB0aGUgd2Vic2l0ZSB3aGlsZSBncmlkIGlzIHNob3duXG4gKi9cbi52aXNpYmxlLWdyaWQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IGZpeGVkO1xuICB6LWluZGV4OiAxMDAwMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmUgLyogMiAqLztcblxuICAuZ3JpZC1jb2wge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwyNTUsMjU1LC42KTtcbiAgICBoZWlnaHQ6IDEwMHZoO1xuXG4gICAgJjpudGgtY2hpbGQoMm4pIHtcbiAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwyNTUsMjU1LC4zKTsgfSB9XG5cbiAgJjpiZWZvcmUsICY6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAvIDEyKTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYmFja2dyb3VuZDogcmdiYSgwLDI1NSwwLC41KTsgfVxuXG4gICY6YmVmb3JlIHtcbiAgICBsZWZ0OiBjYWxjKC0xMDAlIC8gMTIpOyB9XG5cbiAgJjphZnRlciB7XG4gICAgcmlnaHQ6IGNhbGMoLTEwMCUgLyAxMik7IH1cblxuICAvLyY6bnRoLWNoaWxkKDEpLCY6bnRoLWNoaWxkKDE0KVxuIH0gIC8vLy8gIGJhY2tncm91bmQ6IHJnYmEoMCwyNTUsMCwuNSlcbiIsIi5icmVha3BvaW50IHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICB6LWluZGV4OiAxMDAwMDtcbiAgYmFja2dyb3VuZDogIzBBQkVGRjtcblxuICAvLyBMYXJnZXIgdGhlbiB4bEJyZWFrcG9pbnRcbiAgQGluY2x1ZGUgcmVzcG9uZC10by13aWR0aC1iZXlvbmQoJHhsR3JpZEJyZWFrcG9pbnQpIHtcbiAgICBiYWNrZ3JvdW5kOiByZWQ7IH1cblxuICAvLyBMb29wIHRocm91Z2ggb3RoZXIgYnJlYWtwb2ludHNcbiAgJGJyZWFrcG9pbnRzIDogIChibHVlICRsZ0dyaWRCcmVha3BvaW50KSAoZ3JlZW4gJG1kR3JpZEJyZWFrcG9pbnQpICh5ZWxsb3cgJHNtR3JpZEJyZWFrcG9pbnQpIChwaW5rICR4c0dyaWRCcmVha3BvaW50KTtcblxuICBAZWFjaCAkbGlzdCBpbiAkYnJlYWtwb2ludHMge1xuXG4gICAgJGNvbG9yIDogbnRoKCRsaXN0LDEpO1xuICAgICRicmVha3BvaW50IDogbnRoKCRsaXN0LDIpO1xuXG4gICAgQGluY2x1ZGUgcmVzcG9uZC10by13aWR0aCgkYnJlYWtwb2ludCkge1xuICAgICAgYmFja2dyb3VuZDogJGNvbG9yOyB9IH0gfVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEV4cGVuZCBDb25maWcgc2V0dGluZ3NcbiAgIEBtaXhpbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8vIENvbG9yc1xuJGJsYWNrIDogIzFEMjQzMztcbiRibHVlIDogIzRBOTBFMjtcbiRwYXN0ZWxCbHVlIDogIzAwMzJGRjtcbiRicmlnaHRCbHVlIDogIzAwQzdGRjtcbiRsaWdodEJsdWUgOiAjYzNjZmU2O1xuJGdyZXkgOiAjNjQ2NDY0O1xuJHJlZCA6ICNFNTAwMDA7XG4kd2FybmluZyA6ICNmZmI2MDA7XG4kZ3JlZW4gOiAjNjhGRjZEO1xuXG4kYnV0dG9uUmVkIDogI0UyMEExNztcbiRidXR0b25SZWQyIDogIzlEMDUwRDtcblxuXG4kZGFya0Jyb3duOiAjMTQxNDE0O1xuJGdyZXk6ICMyODI4Mjg7XG4kZGFya0dyZXk6ICM3NTc1NzU7XG4kbGlnaHRlckdyZXk6ICNBRUFFQUU7XG4kbGlnaHRHcmV5OiAjQkVCNEI1O1xuXG5cbiRib3JkZXJDb2xvcjogIzk3OTc5NztcblxuJGdyZXlCcm93bjogIzk5OTE5MjtcblxuJGJyb3duR3JleUdyYWRpZW50IDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgIzE0MTQxNCAwJSwgIzM3MzczNyAzMC44MSUsICM0MDQwNDAgNTIuMTUlLCAjM0EzQTNBIDgwLjU0JSwgIzI3MjcyNyAxMDAlKTtcbiRyZWRCdXR0b24gOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKDIyNiwxMCwyMywxKSAwJSxyZ2JhKDIyNiwxMCwyMywxKSA1MCUscmdiYSgxNTcsNSwxMywxKSA1MSUscmdiYSgxNTcsNSwxMywxKSAxMDAlKTtcbiRncmV5QnV0dG9uIDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgcmdiYSgxMTcsMTE3LDExNywxKSAwJSxyZ2JhKDExNywxMTcsMTE3LDEpIDUwJSxyZ2JhKDgxLDgxLDgxLDEpIDUxJSxyZ2JhKDgxLDgxLDgxLDEpIDEwMCUpO1xuXG4kZm9udEZhbWlseTogJ0F2ZW5pciBMVCBXMDIgNDUgQm9vaycsIHNhbnMtc2VyaWY7XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgRXhwZW5kIEJhc2ljIHN0eWxlIHNldHRpbmdzXG4gICBAbWl4aW4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogU2V0IHVwIHRoZSBodG1sXG4gKlxuICogMS4gTWFrZXMgc3VlIHRoYXQgc29tZSBmb250cyBhcmUgYmV0dGVyIHJlbmRlcmVkXG4gKi9cblxuaHRtbCB7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkIC8qIDIgKi87XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7IH1cblxuXG4vKlxuICogU2V0IHVwIHRoZSBib2R5XG4gKlxuICogMS4gU2V0IGZvbnQgdG8gbGluaW5nIGZpZ3VyZXNcbiAqL1xuXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xuXG4gIGZvbnQtZmFtaWx5OiAkZm9udEZhbWlseTtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcblxuICBmb250LWZlYXR1cmUtc2V0dGluZ3M6ICdsbnVtJyAvKiAxICovO1xuXG4gIGJhY2tncm91bmQ6IHtcbiAgICBjb2xvcjogYmxhY2s7XG4gICAgaW1hZ2U6IHVybCgnL2ltZy9iYWNrZ3JvdW5kLmpwZycpO1xuICAgIHBvc2l0aW9uOiBjZW50ZXIgdG9wO1xuICAgIHNpemU6IDEwMHZ3IGF1dG87XG4gICAgcmVwZWF0OiBuby1yZXBlYXQ7IH0gfVxuXG4vKlxuICogU2V0IGRlZmF1bHQgc2V0dGluZ3MgZm9yIGFsbCBlbGVtZW50c1xuICpcbiAqIDEuIERlZmF1bHQgc2VsZWN0aW9uIHN0eWxpbmdcbiAqXG4gKi9cbioge1xuICA6OnNlbGVjdGlvbiAvKiAyICovIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmx1ZTtcbiAgICBjb2xvcjogd2hpdGU7IH0gfVxuXG5cbi8qXG4gKiBTZXQgZGVmYXVsdCBzdHlsaW5nIGZvciBpbnB1dCBhbmQgdGV4dGFyZWFcbiAqXG4gKiAxLiBTZXQgZm9udCBiZWNhdXNlIGVsc2UgdGhlIGFnZW50IHdpbGwgb3ZlcnJ1bGUgdGhlbSB3aXRoIGFuIHVnbHkgZm9udFxuICovXG5pbnB1dCwgdGV4dGFyZWEge1xuICBmb250LWZhbWlseTogJGZvbnRGYW1pbHkgLyogMSAqLzsgfVxuXG4vKlxuICogU2V0IGRlZmF1bHQgc3R5bGluZyBmb3IgYSBidXR0b25cbiAqXG4gKi9cbi5idXR0b24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDEwcHggMjBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJyaWdodEJsdWU7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHdoaXRlO1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbG9yOiB3aGl0ZTtcblxuICAuYXJyb3cge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tbGVmdDogMjVweDtcbiAgICBAaW5jbHVkZSBzcHJpdGUoLTM1cHggLTFweCwgMTVweCwgMTBweCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLDAsMCk7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3M7IH1cblxuICAmOmhvdmVyIHtcbiAgICAuYXJyb3cge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCg1cHgsIDAsIDApOyB9IH0gfVxuXG4udGl0bGUtcGxhY2Vob2xkZXIge1xuICBoMSB7XG4gICAgbWFyZ2luOiAzMHB4IDAgMDtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMztcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBAaW5jbHVkZSBib2xkOyB9IH1cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBIZWxwZXIgY2xhc3Nlc1xuICAgQG1peGluID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBVc2Ugb24gZWxlbWVudHMgZnJvbSB3aGVyZSB0aGUgY2hpbGRyZW4gc2hvdWxkIG5vdCB3cmFwXG4gKi9cbi5ub3dyYXAge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG5cbi8qKlxuICogSGlkZSBlbGVtZW50cyBvbiBkaWZmZXJlbnQgc2NyZWVuIHNpemVzXG4gKi9cbiRicmVha3BvaW50cyA6ICAoJ3hsJyAkeGxHcmlkQnJlYWtwb2ludCkgKCdsZycgJGxnR3JpZEJyZWFrcG9pbnQpICgnbWQnICRtZEdyaWRCcmVha3BvaW50KSAoJ3NtJyAkc21HcmlkQnJlYWtwb2ludCkgKCd4cycgJHhzR3JpZEJyZWFrcG9pbnQpO1xuXG5AZWFjaCAkbGlzdCBpbiAkYnJlYWtwb2ludHMge1xuXG4gICRuYW1lIDogbnRoKCRsaXN0LDEpO1xuICAkYnJlYWtwb2ludCA6IG50aCgkbGlzdCwyKTtcblxuICBAaW5jbHVkZSByZXNwb25kLXRvLXdpZHRoKCRicmVha3BvaW50KSB7XG4gICAgLmhpZGUtb24tI3skbmFtZX0tb3Itc21hbGxlciB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuICBAaW5jbHVkZSByZXNwb25kLXRvLXdpZHRoLWJleW9uZCgkYnJlYWtwb2ludCkge1xuICAgIC5oaWRlLW9uLSN7JG5hbWV9LW9yLWxhcmdlciB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9IH0gfVxuIiwiIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFBhcnRpYWwgQ1NTXG4gICBAbWl4aW4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG5AaW1wb3J0IFwiY29va2llRGlhbG9nXCI7XG5AaW1wb3J0IFwiZm9vdGVyXCI7XG5AaW1wb3J0IFwiaGVhZGVyXCI7XG5AaW1wb3J0IFwia21zQ29udGVudFwiO1xuQGltcG9ydCBcImZvcm1cIjtcbkBpbXBvcnQgXCJpbWFnZVNsaWRlclwiO1xuQGltcG9ydCBcImJyZWFkY3J1bWJcIjtcblxuQGltcG9ydCBcImR5bmFtaWMvZHluYW1pY1wiO1xuQGltcG9ydCBcIm1vYmlsZS9tb2JpbGVcIjtcbiIsIlxuJGNvb2tpZURpYWxvZ0hlaWdodCA6IDYwcHg7XG4kY29va2llTGFyZ2VEaWFsb2dIZWlnaHQgOiAxMjBweDtcblxuLyogSFRNTCBhbmQgbmF2aWdhdGlvblxuIEBtaXhpbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbmh0bWwuaGFzLWNvb2tpZS1kaWFsb2cge1xuICBwYWRkaW5nLXRvcDogJGNvb2tpZURpYWxvZ0hlaWdodDtcblxuICBuYXYubWFpbixcbiAgLm5hdmlnYXRpb24tZHJpcCB7XG4gICAgdG9wOiAkY29va2llRGlhbG9nSGVpZ2h0OyB9XG5cbiAgQGluY2x1ZGUgcmVzcG9uZC10by13aWR0aCgkbWRHcmlkQnJlYWtwb2ludCkge1xuICAgIHBhZGRpbmctdG9wOiAkY29va2llTGFyZ2VEaWFsb2dIZWlnaHQ7XG5cbiAgICBuYXYubWFpbixcbiAgICAubmF2aWdhdGlvbi1kcmlwIHtcbiAgICAgIHRvcDogJGNvb2tpZUxhcmdlRGlhbG9nSGVpZ2h0OyB9IH0gfVxuXG4vKiBEaWFsb2dcbiBAbWl4aW4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4uY29va2llLWNvbnNlbnQge1xuICBAaW5jbHVkZSBwb3NpdGlvbihmaXhlZCwwIG51bGwgbnVsbCAwKTtcbiAgei1pbmRleDogMTAwMDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gIGhlaWdodDogJGNvb2tpZURpYWxvZ0hlaWdodDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWFlYWVhO1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBjb2xvcjogJGJsYWNrO1xuICBmb250LXNpemU6IDE2cHg7XG5cbiAgLm1lc3NhZ2Uge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDAgMjBweDtcbiAgICBtYXgtd2lkdGg6IDc1JTtcblxuICAgIGEge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgY29sb3I6ICRibHVlO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgJjpob3ZlciB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9IH0gfVxuXG4gIC5idXR0b24ge1xuICAgIG1hcmdpbi1sZWZ0OiA0MHB4O1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgbGluZS1oZWlnaHQ6IDM2cHg7XG4gICAgZm9udC1zaXplOiAxNnB4OyB9XG5cbiAgLy8gU2V0IGZsZXggZGlyZWN0IHRvIGNvbHVtbiBhbmQgcHV0IGV2ZXJ5dGhpbmcgYmVsb3cgZWFjaCBvdGhlclxuICBAaW5jbHVkZSByZXNwb25kLXRvLXdpZHRoKCRtZEdyaWRCcmVha3BvaW50KSB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgaGVpZ2h0OiAkY29va2llTGFyZ2VEaWFsb2dIZWlnaHQ7XG5cbiAgICAubWVzc2FnZSB7XG4gICAgICBtYXgtd2lkdGg6IG5vbmU7IH1cbiAgICAuYnV0dG9uIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKHJlbGF0aXZlLCAwIDAgbnVsbCBudWxsKTsgfSB9IH1cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBGb290ZXJcbiAgIEBtaXhpbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbmZvb3RlciB7XG4gIGJhY2tncm91bmQ6ICRibGFjaztcbiAgY29sb3I6ICRsaWdodEJsdWU7XG4gIHBhZGRpbmc6IDEwMHB4IDA7XG5cbiAgLmtvbW1hIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgQGluY2x1ZGUgZmxleChzcGFjZS1iZXR3ZWVuLCBjZW50ZXIpO1xuICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICB3aWR0aDogMjY1cHg7XG4gICAgY29sb3I6ICRsaWdodEJsdWU7XG4gICAgZm9udC13ZWlnaHQ6IG1lZGl1bSgpO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjJzO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgICBzcGFuIHtcbiAgICAgICAgb3BhY2l0eTogMTsgfSB9XG5cbiAgICBzcGFuIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHRvcDogMXB4O1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzO1xuICAgICAgQGluY2x1ZGUgc3ByaXRlKDQ5MXB4IDFweCwgOTNweCwgMzFweCk7IH1cblxuICAgIEBpbmNsdWRlIHJlc3BvbmQtdG8td2lkdGgoNDAwKSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgc3BhbiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW46IDEwcHggYXV0byAwOyB9IH0gfSB9XG4iLCJoZWFkZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRkYXJrQnJvd24sIDAuODUpO1xuXG4gIC5wcmUtaGVhZGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoJGJvcmRlckNvbG9yLCAwLjQpO1xuXG4gICAgLmdyaWQtcm93IHtcbiAgICAgIHBhZGRpbmc6IDhweCAwO1xuICAgICAgQGluY2x1ZGUgZmxleChzcGFjZS1iZXR3ZWVuLCBjZW50ZXIpOyB9XG5cbiAgICAucmVhc29ucyB7XG4gICAgICBAaW5jbHVkZSBmbGV4KGZsZXgtc3RhcnQsIGNlbnRlcik7XG5cbiAgICAgIHAge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMC42NXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICAgICAgY29sb3I6IHJnYmEoJGxpZ2h0R3JleSwgMC43NSk7XG4gICAgICAgIEBpbmNsdWRlIGJvbGQ7XG5cbiAgICAgICAgKyBwIHtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogNDBweDsgfVxuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgICAgICAgQGluY2x1ZGUgc3ByaXRlKDE3MHB4IDMzcHgsIDEzcHgsIDEwcHgpO1xuICAgICAgICAgIG9wYWNpdHk6IDAuNzU7IH0gfSB9XG5cbiAgICAubWFpbC1idXR0b24ge1xuICAgICAgZm9udC1zaXplOiAwLjY1cmVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICAgIGNvbG9yOiByZ2JhKCRsaWdodEdyZXksIDAuNzUpO1xuICAgICAgQGluY2x1ZGUgYm9sZDtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuM3M7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogJGxpZ2h0R3JleTsgfVxuXG4gICAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHRvcDogLTFweDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICAgICAgd2lkdGg6IDZweDtcbiAgICAgICAgaGVpZ2h0OiA2cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRncmVlbjsgfVxuXG4gICAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW4tbGVmdDogNXB4O1xuICAgICAgICBAaW5jbHVkZSBzcHJpdGUoMTcwcHggMCwgMTBweCwgMTFweCk7IH0gfSB9XG5cbiAgLm1haW4tcm93IHtcbiAgICBwYWRkaW5nOiAyMHB4IDA7XG4gICAgQGluY2x1ZGUgZmxleChzcGFjZS1iZXR3ZWVuLCBjZW50ZXIpO1xuXG4gICAgLmxvZ28ge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBAaW5jbHVkZSBzcHJpdGUoMCAwLCAxNjhweCwgODBweCk7IH1cblxuICAgIC5zZWFyY2gtcGxhY2Vob2xkZXIge1xuICAgICAgQGluY2x1ZGUgZmxleChjZW50ZXIsIGNlbnRlcik7XG4gICAgICB3aWR0aDogY2FsYygxMDAlIC0gMzM2cHgpO1xuXG4gICAgICAuc2VhcmNoIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXgtd2lkdGg6IDQxNXB4O1xuXG4gICAgICAgIC5zZWFyY2gtaW5wdXQge1xuICAgICAgICAgIEBpbmNsdWRlIGFwcGVhcmFuY2Uobm9uZSk7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgcGFkZGluZzogN3B4IDQwcHggN3B4IDEwcHg7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMC43cmVtO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgICAgICAgY29sb3I6ICRncmV5QnJvd247XG5cbiAgICAgICAgICAmOi13ZWJraXQtYXV0b2ZpbGwsICY6LXdlYmtpdC1hdXRvZmlsbDpob3ZlciwgJjotd2Via2l0LWF1dG9maWxsOmZvY3VzLCAmOi13ZWJraXQtYXV0b2ZpbGw6YWN0aXZlIHtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IDk5OTlzIGJhY2tncm91bmQtY29sb3I7XG4gICAgICAgICAgICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogJGdyZXlCcm93bjtcbiAgICAgICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDk5OTlzOyB9XG5cbiAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIG91dGxpbmU6IG5vbmU7IH1cbiB9ICAgICAgICAgIC8vICBvdXRsaW5lLWNvbG9yOiAkbGlnaHRlckdyZXlcblxuICAgICAgICAuc3VibWl0IHtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgIEBpbmNsdWRlIGZsZXgoY2VudGVyLCBjZW50ZXIpO1xuICAgICAgICAgIHdpZHRoOiAzMHB4O1xuICAgICAgICAgIGhlaWdodDogMzBweDtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFya0dyZXk7XG4gICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4zcztcblxuICAgICAgICAgIC5pY29uIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNwcml0ZSgxODVweCAwLCAxNHB4LCAxNHB4KTsgfVxuXG4gICAgICAgICAgaW5wdXQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTsgfVxuXG4gICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRkYXJrR3JleSwgMC43NSk7IH0gfSB9IH1cblxuICAgIC5zaG9wcGluZy1jYXJ0LWljb24ge1xuICAgICAgQGluY2x1ZGUgZmxleChmbGV4LWVuZCwgY2VudGVyKTtcbiAgICAgIHdpZHRoOiAxNjhweDtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgLmljb24ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMjRweDtcbiAgICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICBAaW5jbHVkZSBzcHJpdGUoMTg1cHggMTlweCwgMjRweCwgMjRweCk7XG4gICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zczsgfVxuXG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHJpZ2h0OiAtMTJweDtcbiAgICAgICAgICB0b3A6IC0xMHB4O1xuICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1hbW91bnQpO1xuICAgICAgICAgIEBpbmNsdWRlIGZsZXgoY2VudGVyLCBjZW50ZXIpO1xuICAgICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJ1dHRvblJlZDtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMC42cmVtO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgICAgICAgQGluY2x1ZGUgYm9sZDsgfVxuXG4gICAgICAgICZbZGF0YS1hbW91bnQ9JzAnXSB7XG4gICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lOyB9IH0gfVxuXG5cbiAgICAgIHNwYW4ge1xuICAgICAgICBmb250LXNpemU6IDAuNjVyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgICAgIGNvbG9yOiByZ2JhKCRsaWdodEdyZXksIDAuNzUpO1xuICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjNzO1xuICAgICAgICBAaW5jbHVkZSBib2xkOyB9XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICAuaWNvbiB7XG4gICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgb3BhY2l0eTogMTsgfSB9XG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgIGNvbG9yOiAkbGlnaHRHcmV5OyB9IH0gfSB9XG5cblxuICBuYXYge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRncmV5O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkYm9yZGVyQ29sb3I7XG4gICAgYm94LXNoYWRvdzogMCAycHggNHB4IDAgcmdiYSgwLDAsMCwwLjUpO1xuXG4gICAgLmdyaWQtcm93IHtcbiAgICAgIEBpbmNsdWRlIGZsZXgoc3BhY2UtYmV0d2VlbiwgY2VudGVyKTtcblxuICAgICAgYSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAxOHB4IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgZm9udC1zaXplOiAwLjZyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgQGluY2x1ZGUgYm9sZDtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjNzLCBjb2xvciAwLjNzO1xuXG4gICAgICAgICsgYSB7XG4gICAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAkYm9yZGVyQ29sb3I7IH1cblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAvL2JhY2tncm91bmQtY29sb3I6IHJnYmEod2hpdGUsIDAuMilcbiAgICAgICAgICBjb2xvcjogJHJlZDsgfSB9IH0gfSB9XG5cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBEZWZhdWx0IHN0eWxpbmcgZm9yIEtNUyBjb250ZW50XG4gICBAbWl4aW4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4ua21zLWNvbnRlbnQge1xuICBoMSwgaDIsIGgzIHtcbiAgICBmb250LXNpemU6IDEuOHJlbTtcbiAgICBsaW5lLWhlaWdodDogMS40O1xuICAgIGNvbG9yOiAkYnJpZ2h0Qmx1ZTtcbiAgICAvLyticmVlXG5cbiAgICBzdHJvbmcge1xuICAgICAgY29sb3I6ICRicmlnaHRCbHVlO1xuICAgICAgZm9udC13ZWlnaHQ6IDQwMDsgfSB9XG5cbiAgaDIsIGgzIHtcbiAgICBmb250LXNpemU6IDEuNHJlbTsgfVxuXG4gIGgzIHtcbiAgICBjb2xvcjogJGJyaWdodEJsdWU7XG5cbiAgICBzdHJvbmcge1xuICAgICAgY29sb3I6ICRibHVlOyB9IH1cblxuICBoNCB7XG4gICAgZm9udC1zaXplOiAwLjhyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMztcbiAgICBjb2xvcjogJGJsdWU7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuXG4gIHAge1xuICAgIGZvbnQtc2l6ZTogMC45cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgY29sb3I6ICRncmV5OyB9XG5cbiAgdWwge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuXG4gICAgbGkge1xuICAgICAgcGFkZGluZy1sZWZ0OiAzMHB4O1xuICAgICAgZm9udC1zaXplOiAwLjlyZW07XG4gICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgY29sb3I6ICRncmV5O1xuXG4gICAgICAmOmJlZm9yZSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgIGNvbG9yOiAkYmx1ZTtcbiAgICAgICAgZm9udC1zaXplOiAxLjNlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7IH1cblxuICAgICAgKyBsaSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDVweDsgfSB9IH1cblxuICBvbCB7XG4gICAgY291bnRlci1yZXNldDogb2wtY291bnRlciAvKiAyICovO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIGxpIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMzBweDtcbiAgICAgIGZvbnQtc2l6ZTogMC45cmVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgIGNvbG9yOiAkZ3JleTtcblxuICAgICAgJjpiZWZvcmUge1xuICAgICAgICBjb3VudGVyLWluY3JlbWVudDogb2wtY291bnRlcjtcbiAgICAgICAgY29udGVudDogY291bnRlcihvbC1jb3VudGVyKScuJztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBjb2xvcjogJGJsdWU7IH1cblxuICAgICAgKyBsaSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDVweDsgfSB9IH1cblxuICBhIHtcbiAgICBjb2xvcjogJGJsdWU7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogZGFya2VuKCRibHVlLCAxMCUpO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9IH0gfVxuIiwiLmZvcm0ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogNTYwcHg7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcblxuICAuZm9ybS1lbGVtZW50IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luLWJvdHRvbTogMjVweDsgfVxuXG4gIC5lcnJvci1tZXNzYWdlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGNvbG9yOiAkcmVkO1xuICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcblxuICAgICYuYWN0aXZlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsgfSB9XG5cbiAgbGFiZWwsIC5sYWJlbCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgIGNvbG9yOiAkZ3JleTtcbiAgICBmb250LXNpemU6IDAuOGVtO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbiAgaW5wdXQsIHRleHRhcmVhIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICBwYWRkaW5nOiAxNXB4IDIwcHg7XG5cbiAgICBib3JkZXI6IDFweCB0cmFuc3BhcmVudCBzb2xpZDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgZm9udC1zaXplOiAwLjllbTtcbiAgICBjb2xvcjogJGdyZXk7XG5cbiAgICAmLmFsZXJ0IHtcbiAgICAgIGJvcmRlci1jb2xvcjogJHJlZDsgfVxuXG4gICAgJjotd2Via2l0LWF1dG9maWxsLCAmOi13ZWJraXQtYXV0b2ZpbGw6aG92ZXIsICY6LXdlYmtpdC1hdXRvZmlsbDpmb2N1cywgJjotd2Via2l0LWF1dG9maWxsOmFjdGl2ZSB7XG4gICAgICB0cmFuc2l0aW9uOiA5OTk5cyBiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6ICRncmV5O1xuICAgICAgdHJhbnNpdGlvbi1kZWxheTogOTk5OXM7IH1cblxuICAgICY6Zm9jdXMge1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIG91dGxpbmU6IG5vbmU7IH0gfVxuXG4gIHRleHRhcmVhIHtcbiAgICBtaW4taGVpZ2h0OiAxNTJweDtcbiAgICByZXNpemU6IHZlcnRpY2FsOyB9XG5cbiAgLnNlbGVjdCB7XG4gICAgLnNlbGVjdC13cmFwcGVyIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG5cbiAgICAuaWNvbiB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICByaWdodDogMTBweDtcbiAgICAgIHRvcDogMjZweDtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHdpZHRoOiAwO1xuICAgICAgaGVpZ2h0OiAwO1xuICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgIGJvcmRlci13aWR0aDogNXB4IDZweCAwIDZweDtcbiAgICAgIGJvcmRlci1jb2xvcjogJGdyZXkgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgICBvcGFjaXR5OiAwLjM7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuXG4gICAgc2VsZWN0IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBAaW5jbHVkZSBhcHBlYXJhbmNlKG5vbmUpO1xuICAgICAgZm9udC1mYW1pbHk6ICRmb250RmFtaWx5O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICBwYWRkaW5nOiAxNXB4IDM1cHggMTVweCAyMHB4O1xuICAgICAgYm9yZGVyOiAxcHggdHJhbnNwYXJlbnQgc29saWQ7XG4gICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICBmb250LXNpemU6IDAuOWVtO1xuICAgICAgY29sb3I6ICRncmV5O1xuXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgb3V0bGluZTogbm9uZTsgfSB9IH1cblxuXG4gIC5jaGVja2JveCB7XG4gICAgbGFiZWwge1xuICAgICAgQGluY2x1ZGUgZmxleChzcGFjZS1iZXR3ZWVuLCBmbGV4LXN0YXJ0KTtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgaW5wdXQge1xuICAgICAgICBAaW5jbHVkZSBhcHBlYXJhbmNlKG5vbmUpO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSh3aGl0ZSwgMC4zKTtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4zcztcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKHdoaXRlLCAwLjUpOyB9XG5cbiAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIvaW1nL2NoZWNrL2NoZWNrZWQuc3ZnXCIpO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEod2hpdGUsIDAuNyk7IH0gfVxuXG4gICAgICBzcGFuIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbjogMnB4IDAgMDtcbiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDMwcHgpOyB9IH0gfVxuXG4gIC5zdWJtaXQge1xuICAgIG1hcmdpbi10b3A6IDIwcHg7IH1cblxuICAvL2lucHV0XG4gfSAgLy8vL2Rpc3BsYXk6IG5vbmVcbiIsIi5pbWFnZS1zbGlkZXIge1xuICB3aWR0aDogMTAwJTtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggNDBweCAwcHggcmdiYSgwLDAsMCwwLjIpO1xuXG4gIC5wbGFjZWhvbGRlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGN1cnNvcjogbW92ZTtcblxuICAgIC5jb250cm9sbGVycyB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB6LWluZGV4OiAzO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDA7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogNjYuNjclO1xuXG4gICAgICBAaW5jbHVkZSByZXNwb25kLXRvLXdpZHRoKDEzNTApIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDEwMCU7IH1cblxuICAgICAgLm5hdi1pdGVtIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBAaW5jbHVkZSBmbGV4KGNlbnRlciwgY2VudGVyKTtcbiAgICAgICAgYm90dG9tOiAtNTBweDtcbiAgICAgICAgd2lkdGg6IDM1cHg7XG4gICAgICAgIGhlaWdodDogMzVweDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuM3M7XG5cbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgQGluY2x1ZGUgZmxleChjZW50ZXIsIGNlbnRlcik7XG4gICAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcztcblxuICAgICAgICAgIC5hcnJvdy1pY29uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICAgICAgICAgICAgLnN0MCB7XG4gICAgICAgICAgICAgIGZpbGw6IHdoaXRlOyB9IH0gfVxuXG4gICAgICAgICYucHJldmlvdXMge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRicmlnaHRCbHVlO1xuICAgICAgICAgIHJpZ2h0OiBjYWxjKDUwJSArIDNweCk7XG5cbiAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIC5hcnJvdy1pY29uIHtcbiAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpOyB9IH1cblxuICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbigkYnJpZ2h0Qmx1ZSwgNSUpOyB9IH1cblxuICAgICAgICAmLm5leHQge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRyZWQ7XG4gICAgICAgICAgbGVmdDogY2FsYyg1MCUgKyAzcHgpO1xuXG5cbiAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIC5hcnJvdy1pY29uIHtcbiAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMjcwZGVnKTsgfSB9XG5cbiAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkcmVkLCA1JSk7IH0gfSB9IH1cblxuXG5cbiAgICBmaWd1cmUge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgei1pbmRleDogMTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNHM7XG5cbiAgICAgIHNwYW4ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuXG4gICAgICAgICYuc21hbGwge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7IH1cblxuICAgICAgICBAaW5jbHVkZSByZXNwb25kLXRvLXdpZHRoKDQ4MCkge1xuICAgICAgICAgICYubWVkaXVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7IH1cblxuICAgICAgICAgICYuc21hbGwge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7IH0gfSB9XG5cbiAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgei1pbmRleDogMjtcbiAgICAgICAgb3BhY2l0eTogMTsgfSB9IH0gfVxuIiwiI2JyZWFkY3J1bWIge1xuICBtYXJnaW4tdG9wOiA0MHB4O1xuICBwYWRkaW5nOiAwIDAgNHB4O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGJvcmRlckNvbG9yO1xuXG4gIG9sIHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIEBpbmNsdWRlIGZsZXgoZmxleC1zdGFydCwgY2VudGVyKTtcblxuICAgIC5kaXZpZGVyIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHBhZGRpbmc6IDAgNHB4O1xuICAgICAgY29sb3I6ICRkYXJrR3JleTtcbiAgICAgIGZvbnQtc2l6ZTogMC42cmVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMjU7IH1cblxuICAgIGxpIHtcbiAgICAgIGEge1xuICAgICAgICBjb2xvcjogJGRhcmtHcmV5O1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBmb250LXNpemU6IDAuNnJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjU7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIG9wYWNpdHk6IDAuNzU7IH0gfVxuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBhIHtcbiAgICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgICAgQGluY2x1ZGUgYm9sZDsgfSB9IH0gfSB9XG4iLCIvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIER5bmFtaWMgQmxvY2tzXG4gIEBtaXhpbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5keW5hbWljLWJsb2NrIHtcblxuICArIC5keW5hbWljLWJsb2NrIHtcbiAgICBtYXJnaW4tdG9wOiA2MHB4OyB9XG5cbiAgLmdyaWQtcm93IHtcbiAgICBAaW5jbHVkZSBmbGV4KHNwYWNlLWJldHdlZW4sIGNlbnRlcik7IH1cblxuICBAaW1wb3J0IFwidHdvVGV4dENvbHVtblwiO1xuICBAaW1wb3J0IFwiZnVsbEltYWdlQ29sdW1uXCI7XG4gIEBpbXBvcnQgXCJjb250ZW50QmxvY2tcIjtcbiAgQGltcG9ydCBcIm11bHRpcGxlSW1hZ2VzXCI7XG4gIEBpbXBvcnQgXCJmdWxsVGV4dEJsb2NrXCI7XG4gIEBpbXBvcnQgXCJ2aWRlb0Jsb2NrXCI7IH1cbiIsIiYudHdvLXRleHQtY29sdW1ucyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTA7XG4gIEBpbmNsdWRlIGZsZXgoc3BhY2UtYmV0d2VlbiwgZmxleC1zdGFydCk7XG4gIC5jb250ZW50IHtcbiAgICB3aWR0aDogY29sdW1uKDIxLCA0NCk7XG4gICAgcGFkZGluZzogMDsgfVxuXG4gIEBpbmNsdWRlIHJlc3BvbmQtdG8td2lkdGgoOTAwKSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgLmNvbnRlbnQge1xuICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgIG1hcmdpbjogMDtcblxuICAgICAgcDpsYXN0LW9mLXR5cGUge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtOyB9IH0gfSB9XG4iLCImLmZ1bGwtaW1hZ2UtY29sdW1uIHtcblxuICBpbWcge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgJi5sYXJnZSB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfVxuXG4gICAgQGluY2x1ZGUgcmVzcG9uZC10by13aWR0aCgxMDUwKSB7XG4gICAgICAmLmxhcmdlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgICAgJi5tZWRpdW0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jazsgfSB9XG5cbiAgICBAaW5jbHVkZSByZXNwb25kLXRvLXdpZHRoKDUyNSkge1xuICAgICAgJi5tZWRpdW0ge1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgICAmLnNtYWxsIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7IH0gfSB9IH1cblxuIiwiJi5jb250ZW50LWJsb2NrIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBAaW5jbHVkZSBmbGV4KHNwYWNlLWJldHdlZW4sIGZsZXgtc3RhcnQpO1xuXG4gIC5pbWFnZSB7XG4gICAgd2lkdGg6IDUwJTtcblxuICAgIGltZyB7XG4gICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgJi5zbWFsbCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH1cblxuICAgICAgQGluY2x1ZGUgcmVzcG9uZC10by13aWR0aCg0NTApIHtcbiAgICAgICAgJi5tZWRpdW0ge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7IH1cblxuICAgICAgICAmLnNtYWxsIHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jazsgfSB9IH1cblxuICAgIC5jb250ZW50IHtcbiAgICAgIHdpZHRoOiBjb2x1bW4oNSwgMTIpOyB9IH1cblxuICAuY29udGVudCB7XG4gICAgQGluY2x1ZGUgb3JkZXIoMSk7XG4gICAgd2lkdGg6IGNvbHVtbig1LCAxMik7IH1cblxuICAmW2RhdGEtaW1hZ2UtbG9jYXRpb249J3JpZ2h0J10ge1xuICAgIC5pbWFnZSB7XG4gICAgICBAaW5jbHVkZSBvcmRlcigyKTsgfVxuXG4gICAgLmNvbnRlbnQge1xuICAgICAgQGluY2x1ZGUgb3JkZXIoMSk7IH0gfVxuXG4gIEBpbmNsdWRlIHJlc3BvbmQtdG8td2lkdGgoOTAwKSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAuaW1hZ2Uge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXJnaW4tdG9wOiA0MHB4O1xuICAgICAgQGluY2x1ZGUgb3JkZXIoMik7IH1cblxuICAgIC5jb250ZW50IHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9IH0gfVxuIiwiJi5tdWx0aXBsZS1pbWFnZXMge1xuICBAaW5jbHVkZSBmbGV4KHNwYWNlLWJldHdlZW4sIGZsZXgtc3RhcnQpO1xuICBAaW5jbHVkZSBmbGV4LXJvd3M7XG5cbiAgZmlndXJlIHtcbiAgICB3aWR0aDogY29sdW1uKDIxLCA0NCk7XG5cbiAgICBpbWcge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAmLm1lZGl1bSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH1cblxuICAgICAgQGluY2x1ZGUgcmVzcG9uZC10by13aWR0aCgxMTAwKSB7XG4gICAgICAgICYubGFyZ2Uge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAgICAgJi5tZWRpdW0ge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9IH1cblxuICAgICAgQGluY2x1ZGUgcmVzcG9uZC10by13aWR0aCg0ODApIHtcbiAgICAgICAgJi5sYXJnZSB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgICAgICAmLm1lZGl1bSB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7IH0gfSB9IH1cblxuICAmW2RhdGEtc2l6ZS10eXBlPSc1MCddIHtcbiAgICBmaWd1cmUge1xuICAgICAgaW1nIHtcbiAgICAgICAgJi5tZWRpdW0ge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG5cbiAgICAgICAgQGluY2x1ZGUgcmVzcG9uZC10by13aWR0aCgxMTI1KSB7XG4gICAgICAgICAgJi5tZWRpdW0ge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgICAgICAgICYuc21hbGwge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7IH0gfSB9IH0gfVxuXG4gIEBpbmNsdWRlIHJlc3BvbmQtdG8td2lkdGgoOTAwKSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICBmaWd1cmUge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAmOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA0MHB4OyB9XG5cbiAgICAgIGltZyB7XG4gICAgICAgICYubWVkaXVtIHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XG4gICAgICAgICYuc21hbGwge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4gICAgICAgIEBpbmNsdWRlIHJlc3BvbmQtdG8td2lkdGgoNTI1KSB7XG4gICAgICAgICAgJi5tZWRpdW0ge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgICAgICAgICYuc21hbGwge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7IH0gfSB9IH0gfSB9XG4iLCImLmZ1bGwtdGV4dC1ibG9jayB7XG4gIC5jb250ZW50IHtcbiAgICBtYXgtd2lkdGg6IDY4MHB4O1xuICAgIG1hcmdpbjogYXV0bztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH0gfVxuIiwiJi52aWRlby1ibG9jayB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDk2MHB4O1xuICBtYXJnaW46IDYwcHggYXV0byAwICFpbXBvcnRhbnQ7XG5cbiAgLnZpZGVvLXdyYXBwZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nLWJvdHRvbTogNTMuNiUgLyogMTY6OSAqLztcbiAgICBwYWRkaW5nLXRvcDogMjVweDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgaWZyYW1lLCAudmlkZW8tb3ZlcmxheSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgICAudmlkZW8tb3ZlcmxheSB7XG4gICAgICB6LWluZGV4OiAyO1xuICAgICAgQGluY2x1ZGUgZmxleChjZW50ZXIsIGNlbnRlcik7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gICAgICAuYnV0dG9uIHtcbiAgICAgICAgd2lkdGg6IDI1JTtcbiAgICAgICAgbWF4LXdpZHRoOiA4NXB4O1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC40cztcbiAgICAgICAgaW1nIHtcbiAgICAgICAgICB3aWR0aDogMTAwJTsgfSB9XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgLmJ1dHRvbiB7XG4gICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHNjYWxlKDAuODUpKTsgfSB9XG5cbiAgICAgICYuaGlkZSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC41cztcbiAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogMC43cztcbiAgICAgICAgLmJ1dHRvbiB7XG4gICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuOHM7XG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjMpOyB9IH0gfSB9IH1cbiIsIkBpbXBvcnQgXCJuYXZpZ2F0aW9uXCI7XG5AaW1wb3J0IFwiY29udGFjdFwiO1xuQGltcG9ydCBcInN0aWNreU5hdmlnYXRpb25cIjtcbiIsIi8vQ29sb3JzIHVzZWQgaW4gTW9iaWxlIE1lbnVcbiRsaXN0Q29sb3I6ICRibGFjaztcbiRsaXN0SG92ZXJDb2xvcjogcmdiYSgkYmxhY2ssIDAuNyk7XG4kbGlzdEFjdGl2ZUNvbG9yOiAkYmx1ZTtcblxuJGJhckNvbG9yOiAkYmx1ZTtcbiRiYXJNZW51Q29sb3I6IHdoaXRlO1xuJG1lbnVCYWNrZ3JvdW5kOiB3aGl0ZTtcblxuJHNoYWRlckJhY2tncm91bmQ6ICRibHVlO1xuJHNoYWRlck9wYWNpdHk6IDAuNjtcblxuXG4ucHJldmVudFNjcm9sbCB7XG4gIEBpbmNsdWRlIHJlc3BvbmQtdG8td2lkdGgoNzUwKSB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHdpZHRoOiAxMDAlOyB9IH1cblxuXG4jbW9iaWxlLW5hdmlnYXRpb24ge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHotaW5kZXg6IDEwMDA7XG4gIGhlaWdodDogMTAwdmg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdpZHRoOiAxMDAlO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gIC5iYXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgaGVpZ2h0OiA2MHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYXJDb2xvcjtcbiAgICBib3gtc2hhZG93OiAwIDJweCAxMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjExKTtcbiAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiA0O1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwwLDApO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzO1xuICAgIHRyYW5zaXRpb24tZGVsYXk6IDAuNHM7XG5cbiAgICAudG9nZ2xlLW1lbnUge1xuICAgICAgd2lkdGg6IDYwcHg7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB6LWluZGV4OiAzO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgQGluY2x1ZGUgZmxleChjZW50ZXIsIGNlbnRlcik7XG5cbiAgICAgIC5pY29uIHtcbiAgICAgICAgd2lkdGg6IDIwcHg7XG5cbiAgICAgICAgc3BhbiArIHNwYW4ge1xuICAgICAgICAgIG1hcmdpbi10b3A6IDRweDsgfVxuXG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDUwJTtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFyTWVudUNvbG9yO1xuICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjZzO1xuXG4gICAgICAgICAgJjpudGgtb2YtdHlwZSgyKSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMC44LCAxLCAxKTsgfVxuXG4gICAgICAgICAgJjpudGgtb2YtdHlwZSgzKSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMC40NSwgMSwgMSk7IH0gfSB9XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICAuaWNvbiB7XG4gICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSkgIWltcG9ydGFudDsgfSB9IH0gfVxuXG4gICAgLmxvZ28ge1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgdG9wOiAwO1xuICAgICAgQGluY2x1ZGUgZmxleChjZW50ZXIsIGNlbnRlcik7XG5cbiAgICAgIGEge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHRvcDogM3B4O1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDE1MHB4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAyNXB4O1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblxuICAgICAgICBpbWcge1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIG1heC1oZWlnaHQ6IDI1cHg7IH0gfSB9IH1cblxuICAuc2hhZGVyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRzaGFkZXJCYWNrZ3JvdW5kO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNpdGlvbi1kZWxheTogMC40czsgfVxuXG4gIC5tZW51IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogNjAwcHg7XG4gICAgbWluLXdpZHRoOiAyNzVweDtcbiAgICBwYWRkaW5nOiA3MHB4IDEyMHB4O1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJG1lbnVCYWNrZ3JvdW5kO1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgcG9pbnRlci1ldmVudHM6IGFsbDtcbiAgICB6LWluZGV4OiA1O1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApO1xuXG4gICAgbmF2IHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgLmNsb3NlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDEwcHg7XG4gICAgICAgIGxlZnQ6IC02OHB4O1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC40cztcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gICAgICAgICAgJjpiZWZvcmUsICY6YWZ0ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkbGlzdENvbG9yLCAwLjQpOyB9IH1cblxuICAgICAgICAmOmJlZm9yZSwgJjphZnRlciB7XG4gICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRsaXN0Q29sb3I7XG4gICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuM3M7IH1cblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgbGVmdDogN3B4O1xuICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICB3aWR0aDogMnB4O1xuICAgICAgICAgIGhlaWdodDogMTAwJTsgfVxuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgdG9wOiA3cHg7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgaGVpZ2h0OiAycHg7IH0gfVxuXG5cbiAgICAgIC5sb2dvLXdyYXBwZXIge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiAyNTBweDtcblxuICAgICAgICBhIHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzNnB4OyB9IH0gfVxuXG4gICAgICAubWVudS1saXN0IHtcbiAgICAgICAgbWFyZ2luLXRvcDogNDBweDtcblxuICAgICAgICB1bCB7XG4gICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjtcblxuICAgICAgICAgICsgdWwge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMjRweDsgfVxuXG4gICAgICAgICAgbGkge1xuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICBwYWRkaW5nOiA4cHggMDtcbiAgICAgICAgICAgICAgY29sb3I6ICRsaXN0Q29sb3I7XG4gICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4ycztcbiAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkbGlzdEhvdmVyQ29sb3I7IH0gfVxuXG4gICAgICAgICAgICB1bCB7XG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMC44NWVtOyB9XG5cbiAgICAgICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRsaXN0QWN0aXZlQ29sb3I7IH0gfSB9IH0gfSB9IH1cblxuICAmLmFjdGl2ZSB7XG4gICAgLmJhciB7XG4gICAgICAudG9nZ2xlLW1lbnUge1xuICAgICAgICAuaWNvbiB7XG4gICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogMC40cztcbiAgICAgICAgICAgICY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybShyb3RhdGUoNDVkZWcpKTtcbiAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgdG9wOiA2cHg7IH1cbiAgICAgICAgICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgICAgICAgd2lkdGg6IDI1cHg7XG4gICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgIGJvdHRvbTogNnB4O1xuICAgICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRlKC00NWRlZykpOyB9IH0gfSB9IH1cbiAgICAubWVudSB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApOyB9IH1cblxuICAmLnNoYWRlci1hY3RpdmUge1xuICAgIC5zaGFkZXIge1xuICAgICAgb3BhY2l0eTogJHNoYWRlck9wYWNpdHk7XG4gICAgICBwb2ludGVyLWV2ZW50czogYWxsOyB9IH1cblxuICAmLmFsbG93LWFuaW1hdGlvbiB7XG4gICAgLnNoYWRlciB7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC4yczsgfVxuICAgIC5tZW51IHtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzO1xuICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0OyB9IH1cblxuICBAaW5jbHVkZSByZXNwb25kLXRvLXdpZHRoKDc1MCkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgLmJhciB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfVxuXG4gICAgLm1lbnUge1xuICAgICAgbWF4LXdpZHRoOiBub25lOyB9IH1cblxuICBAaW5jbHVkZSByZXNwb25kLXRvLXdpZHRoKDQwMCkge1xuICAgIG5hdiB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDMwcHg7XG5cbiAgICAgIHVsIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjJyZW07IH0gfSB9IH1cbiIsIi5tb2JpbGUtY29udGFjdCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApO1xuXG4gIHBhZGRpbmc6IDUwcHggY29sdW1uKDEpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcblxuICBjb2xvcjogJGJsYWNrO1xuICBmb250LXNpemU6IDAuOXJlbTtcblxuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNHMsIHRyYW5zZm9ybSAwLjRzO1xuXG4gICYuYWN0aXZlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsMCwwKTtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7IH1cblxuXG4gIGgxLCBoMiB7XG4gICAgZm9udC1zaXplOiAycmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgbWF4LXdpZHRoOiA1ODBweDtcbiAgICBjb2xvcjogJHBhc3RlbEJsdWU7XG4gICAgbWFyZ2luOiAwIDAgNDBweDsgfVxuXG4gIHAge1xuICAgIG1hcmdpbjogMXJlbSAwOyB9XG5cbiAgc3Ryb25nIHtcbiAgICBjb2xvcjogJGJsYWNrOyB9XG5cbiAgYTpub3QoLmJ1dHRvbikge1xuICAgIGNvbG9yOiAkYmx1ZTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgMC4zcywgYm9yZGVyIDAuM3MsIG9wYWNpdHkgMC4zcztcbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiBkYXJrZW4oJGJsdWUsIDE1JSk7IH0gfVxuXG5cblxuICBhLmJ1dHRvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgcGFkZGluZzogMTVweCAyMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDI1cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWU7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGZvbnQtc2l6ZTogMC45cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkKCk7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4zcztcblxuICAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBtYXJnaW4tbGVmdDogMjBweDtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwwLDApO1xuICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3M7IH1cblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHBhc3RlbEJsdWU7XG4gICAgICAmOmFmdGVyIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCg1cHgsIDAsIDApOyB9IH0gfVxuXG5cbiAgQGluY2x1ZGUgcmVzcG9uZC10by13aWR0aCg4NDApIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfSB9XG4iLCIjc3RpY2t5LW5hdmlnYXRpb24ge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogNTA7XG4gIGJhY2tncm91bmQtY29sb3I6ICRibHVlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiA2MHB4O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC02MHB4LCAwKTtcbiAgYm94LXNoYWRvdzogMCA2cHggMTBweCAtNXB4IHJnYmEoMCwwLDAsMC4xKTtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNHMsIG9wYWNpdHkgMC40cztcblxuICAmLmFjdGl2ZSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICBvcGFjaXR5OiAxOyB9XG5cbiAgLmdyaWQtcm93IHtcbiAgICBAaW5jbHVkZSBmbGV4KHNwYWNlLWJldHdlZW4sIGNlbnRlcik7IH1cblxuICAubWVudSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiA2MHB4O1xuXG4gICAgLnBsYWNlaG9sZGVyIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgcGFkZGluZy1ib3R0b206IDEwMCU7XG5cbiAgICAgIC5pY29uLXBsYWNlaG9sZGVyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgoY2VudGVyLCBjZW50ZXIpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgLmljb24ge1xuICAgICAgICAgIHdpZHRoOiAyMHB4O1xuXG4gICAgICAgICAgc3BhbiArIHNwYW4ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogNHB4OyB9XG5cbiAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgNTAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC42cztcblxuICAgICAgICAgICAgJjpudGgtb2YtdHlwZSgyKSB7XG4gICAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUzZCgwLjgsIDEsIDEpOyB9XG5cbiAgICAgICAgICAgICY6bnRoLW9mLXR5cGUoMykge1xuICAgICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMC40NSwgMSwgMSk7IH0gfSB9XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgLmljb24ge1xuICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKSAhaW1wb3J0YW50OyB9IH0gfSB9IH0gfVxuXG4gIC5sb2dvLXdyYXBwZXIge1xuICAgIGEge1xuICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBmb250LXdlaWdodDogYm9sZDsgfSB9IH1cbiIsIkBpbXBvcnQgXCJob21lXCI7XG5AaW1wb3J0IFwicG9zdHMvcG9zdHNcIjtcbkBpbXBvcnQgXCJjb250YWN0XCI7XG5cbkBpbXBvcnQgXCJlcnJvclwiO1xuQGltcG9ydCBcInNpdGVtYXBcIjtcblxuQGltcG9ydCBcImNoZWNrb3V0L2NoZWNrb3V0XCI7XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgSG9tZSBwYWdlXG4gICBAbWl4aW4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4iLCJAaW1wb3J0IFwiaW5kZXhcIjtcbkBpbXBvcnQgXCJzaG93XCI7XG4iLCIvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIE5ld3Mgb3ZlcnZpZXcgcGFnZVxuICBAbWl4aW4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLm5ld3Mge31cbiIsIi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgTmV3cyBkZXRhaWwgcGFnZVxuICBAbWl4aW4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLm5ld3MtZGV0YWlsIHt9XG4iLCIvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIENvbnRhY3QgcGFnZVxuICBAbWl4aW4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLmNvbnRhY3Qge31cbiIsIiNlcnJvci1wYWdlLW1lc3NhZ2Uge1xuICBwYWRkaW5nOiAxMDBweCAwIDEwMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYm9yZGVyQ29sb3I7XG5cbiAgLmdyaWQtcm93IHtcbiAgICAua21zLWNvbnRlbnQge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuICAgIC5wbGFjZWhvbGRlciB7XG4gICAgICBtYXgtd2lkdGg6IDcyMHB4O1xuICAgICAgbWFyZ2luOiBhdXRvOyB9XG5cbiAgICAvL3BcbiAgICAvLyAgZm9udC1zaXplOiAxcmVtXG4gICAgLy8gIGxpbmUtaGVpZ2h0OiAxLjdcbiAgICAvLyAgZm9udC13ZWlnaHQ6IGJvbGRcbiAgICAvLyAgY29sb3I6ICRncmV5XG4gICAgLy9cbiAgICAvLyAgK3Jlc3BvbmQtdG8td2lkdGgoNzAwKVxuICAgIC8vICAgIGZvbnQtc2l6ZTogMC45cmVtXG4gICAgLy8gICtyZXNwb25kLXRvLXdpZHRoKDQ1MClcbiB9IH0gICAgLy8gICAgZm9udC1zaXplOiAwLjhyZW1cbiIsIi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgU2l0ZW1hcCBwYWdlXG4gIEBtaXhpbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4uc2l0ZW1hcCB7XG4gIHVsIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDQwcHg7XG4gICAgcGFkZGluZy1ib3R0b206IDIwcHg7XG4gICAgZm9udC1zaXplOiAwLjg1ZW07IH1cblxuICA+dWwge1xuICAgIHBhZGRpbmctbGVmdDogMjBweDsgfVxuXG4gIGxpIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICB0b3A6IDZweDsgfVxuXG4gICAgYSB7XG4gICAgICBwYWRkaW5nOiAzcHggMDtcbiAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogZG90dGVkO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiYSgkYmxhY2ssIDAuNCk7IH0gfSB9IH1cbiIsIkBpbXBvcnQgXCJzaG9wcGluZ0NhcnRcIjtcbiIsIi5zaG9wcGluZy1jYXJ0IHtcbiAgbWFyZ2luLWJvdHRvbTogNDBweDsgfVxuXG4uc2hvcHBpbmctY2FydC1yb3cge1xuICBtYXJnaW4tdG9wOiA0MHB4O1xuXG4gIC5zaG9wcGluZy1jYXJ0LWNvbnRlbnQge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAyNDBweCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG5cbiAgICBoMiB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBwYWRkaW5nOiA4cHggMTBweDtcbiAgICAgIGJhY2tncm91bmQ6ICRicm93bkdyZXlHcmFkaWVudDtcbiAgICAgIGZvbnQtc2l6ZTogMC42cmVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICBAaW5jbHVkZSBib2xkO1xuICAgICAgY29sb3I6IHdoaXRlOyB9XG5cbiAgICAubm8taXRlbXMge1xuICAgICAgcGFkZGluZzogMjBweCAyMHB4O1xuICAgICAgQGluY2x1ZGUgYm9sZDtcbiAgICAgIGZvbnQtc2l6ZTogMC45cmVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGNvbG9yOiBibGFjazsgfVxuXG4gICAgLmJ1dHRvbnMge1xuICAgICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIHJnYmEoJGxpZ2h0R3JleSwgMC41KTtcbiAgICAgIEBpbmNsdWRlIGZsZXgoZmxleC1lbmQsIGNlbnRlcik7XG4gICAgICBwYWRkaW5nOiAyNXB4IDIwcHg7XG5cbiAgICAgIC5idXR0b24ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDEwcHggMTVweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICBmb250LXNpemU6IDAuN3JlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgQGluY2x1ZGUgYm9sZDtcblxuICAgICAgICArIC5idXR0b24ge1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAyMHB4OyB9XG5cbiAgICAgICAgJi5jb250aW51ZS1zaG9wcGluZyB7XG4gICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgkZGFya0Jyb3duLCAwLjIpO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgIGNvbG9yOiAkZGFya0Jyb3duO1xuXG4gICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB0b3A6IDFweDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIEBpbmNsdWRlIHNwcml0ZSgxNzBweCA1NnB4LCAxM3B4LCAxM3B4KTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLDAsMCk7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zczsgfVxuXG4gICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNXB4LDAsMCk7IH0gfSB9XG5cbiAgICAgICAgJi5jaGVja291dCB7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cbiAgICAgICAgICAmOmJlZm9yZSwgJjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6IC0xO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3M7IH1cblxuICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkcmVkQnV0dG9uOyB9XG5cbiAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkZ3JleUJ1dHRvbjsgfVxuXG4gICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB0b3A6IDFweDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIEBpbmNsdWRlIHNwcml0ZSgxNzBweCA0NHB4LCAxM3B4LCAxM3B4KTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsMCwwKSByb3RhdGUoMTgwZGVnKTtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzOyB9XG5cbiAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICBvcGFjaXR5OiAxOyB9XG5cbiAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDVweCwwLDApIHJvdGF0ZSgxODBkZWcpOyB9IH0gfSB9IH1cblxuICAgIC5pdGVtcyB7XG4gICAgICBhcnRpY2xlIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBmb250LXNpemU6IDAuOXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgY29sb3I6ICRsaWdodEdyZXk7XG4gICAgICAgIHBhZGRpbmc6IDIwcHggNTBweCAyMHB4IDIwcHg7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgoc3BhY2UtYmV0d2VlbiwgY2VudGVyKTtcblxuICAgICAgICAkZmlndXJlU2l6ZSA6IDEyMHB4O1xuICAgICAgICAkcHJpY2VTaXplIDogMTQwcHg7XG5cbiAgICAgICAgKyBhcnRpY2xlIHtcbiAgICAgICAgICBib3JkZXItdG9wOiAycHggc29saWQgcmdiYSgkbGlnaHRHcmV5LCAwLjUpOyB9XG5cbiAgICAgICAgZmlndXJlIHtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgd2lkdGg6ICRmaWd1cmVTaXplO1xuICAgICAgICAgIGhlaWdodDogJGZpZ3VyZVNpemU7XG5cbiAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHtcbiAgICAgICAgICAgICAgc2l6ZTogY29udGFpbjtcbiAgICAgICAgICAgICAgcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgICAgICAgIHBvc2l0aW9uOiBjZW50ZXI7IH0gfSB9XG5cblxuICAgICAgICAuaW5mb3JtYXRpb24ge1xuICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAjeyRmaWd1cmVTaXplfSAtIDcwcHggLSAjeyRwcmljZVNpemV9KTtcbiAgICAgICAgICBwYWRkaW5nOiAwIDIwcHg7XG5cbiAgICAgICAgICBoMyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBjb2xvcjogYmxhY2s7XG4gICAgICAgICAgICBmb250LXNpemU6IDAuOXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgICAgICBAaW5jbHVkZSBib2xkOyB9XG5cbiAgICAgICAgICBwIHtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwIDVweDtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICBjb2xvcjogJGxpZ2h0ZXJHcmV5O1xuICAgICAgICAgICAgZm9udC1zaXplOiAwLjZyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICAgICAgQGluY2x1ZGUgYm9sZDsgfVxuXG4gICAgICAgICAgYSB7XG4gICAgICAgICAgICBjb2xvcjogJHJlZDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC42cmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDsgfSB9XG5cblxuICAgICAgICAudW5pdHMge1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICB3aWR0aDogNzBweDtcbiAgICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBhcHBlYXJhbmNlKG5vbmUpO1xuICAgICAgICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICAgICAgICBAaW5jbHVkZSBmbGV4KGNlbnRlciwgY2VudGVyKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDVweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgkbGlnaHRHcmV5LCAwLjUpO1xuICAgICAgICAgICAgZm9udC1zaXplOiAwLjY1cmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGNvbG9yOiBibGFjaztcblxuICAgICAgICAgICAgJjotd2Via2l0LWF1dG9maWxsLCAmOi13ZWJraXQtYXV0b2ZpbGw6aG92ZXIsICY6LXdlYmtpdC1hdXRvZmlsbDpmb2N1cywgJjotd2Via2l0LWF1dG9maWxsOmFjdGl2ZSB7XG4gICAgICAgICAgICAgIHRyYW5zaXRpb246IDk5OTlzIGJhY2tncm91bmQtY29sb3I7XG4gICAgICAgICAgICAgIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiAkZ3JleUJyb3duO1xuICAgICAgICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiA5OTk5czsgfVxuXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgb3V0bGluZS1jb2xvcjogJGxpZ2h0ZXJHcmV5OyB9IH1cblxuICAgICAgICAgIC5jaGFuZ2VyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgQGluY2x1ZGUgZmxleChjZW50ZXIsIGNlbnRlcik7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgICB3aWR0aDogMzBweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRkYXJrR3JleTtcbiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC44cmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJvbGQ7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgb3BhY2l0eTogMC44OyB9XG5cbiAgICAgICAgICAgICYuaW5jcmVtZW50IHtcbiAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFya0Jyb3duO1xuICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnOyB9IH1cbiAgICAgICAgICAgICYuZGVjcmVtZW50IHtcbiAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRkYXJrR3JleTtcbiAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB0b3A6IC0xcHg7XG4gICAgICAgICAgICAgICAgY29udGVudDogJy0nOyB9IH0gfSB9XG5cblxuICAgICAgICAucHJpY2Uge1xuICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICB3aWR0aDogJHByaWNlU2l6ZTtcbiAgICAgICAgICBjb2xvcjogYmxhY2s7XG4gICAgICAgICAgZm9udC1zaXplOiAwLjlyZW07XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgICBAaW5jbHVkZSBib2xkO1xuICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9XG5cblxuICAgICAgICAucmVtb3ZlIHtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgcmlnaHQ6IDIwcHg7XG4gICAgICAgICAgdG9wOiAyMHB4O1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICB3aWR0aDogMTNweDtcbiAgICAgICAgICBoZWlnaHQ6IDEzcHg7XG5cbiAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgQGluY2x1ZGUgc3ByaXRlKDE3MHB4IDE5cHgsIDEzcHgsIDEzcHgpOyB9IH0gfSB9IH1cblxuICAuc2hvcHBpbmctY2FydC1zdW1tYXJ5IHtcbiAgICB3aWR0aDogMjIwcHg7XG4gICAgbWFyZ2luLWxlZnQ6IDIwcHg7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG5cblxuICAgIGgyIHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHBhZGRpbmc6IDhweCAxMHB4O1xuICAgICAgYmFja2dyb3VuZDogJGJyb3duR3JleUdyYWRpZW50O1xuICAgICAgZm9udC1zaXplOiAwLjZyZW07XG4gICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIEBpbmNsdWRlIGJvbGQ7XG4gICAgICBjb2xvcjogd2hpdGU7IH1cblxuICAgID4gaW1nIHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG5cbiAgICAuYm94LWNvbnRhaW5lciB7XG4gICAgICBwYWRkaW5nOiAzMHB4IDMwcHggMTAwcHggNDVweDtcbiAgICAgIGJhY2tncm91bmQ6IHtcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICBpbWFnZTogdXJsKFwiL2ltZy9ib3hCZy5zdmdcIik7XG4gICAgICAgIHNpemU6IGNvbnRhaW47XG4gICAgICAgIHJlcGVhdDogcmVwZWF0LXk7IH0gfVxuXG4gICAgaDQge1xuICAgICAgY29sb3I6ICRyZWQ7XG4gICAgICBmb250LXNpemU6IDAuNjVyZW07XG4gICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgQGluY2x1ZGUgYm9sZDtcbiAgICAgIG1hcmdpbjogMCAwIDEwcHg7IH1cblxuICAgIC5zaG9wcGluZy1jYXJ0LWFtb3VudCB7XG4gICAgICBtYXJnaW46IDAgMCAxMHB4O1xuICAgICAgY29sb3I6IGJsYWNrO1xuICAgICAgZm9udC1zaXplOiAwLjlyZW07XG4gICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgQGluY2x1ZGUgYm9sZDsgfVxuXG4gICAgLnByaWNpbmcge1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIG1hcmdpbjogMCAwIDI1cHg7XG5cbiAgICAgIHAge1xuICAgICAgICBtYXJnaW46IDAgMCAxMHB4O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgoc3BhY2UtYmV0d2VlbiwgY2VudGVyKTtcbiAgICAgICAgZm9udC1zaXplOiAwLjc1cmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICBjb2xvcjogYmxhY2s7XG5cbiAgICAgICAgJi5oaWRkZW4ge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7IH1cblxuICAgICAgICBzdHJvbmcge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMC42cmVtO1xuICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgQGluY2x1ZGUgYm9sZDsgfVxuXG4gICAgICAgICYuc2hpcHBpbmctY29zdCB7XG4gICAgICAgICAgc3Ryb25nIHtcbiAgICAgICAgICAgIC5zZWxlY3RlZC1jb3VudHJ5IHtcbiAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaGlwcGluZy1jb3VudHJ5KTtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfSB9IH0gfSB9XG5cblxuICAgICAgLm5vLXNoaXBwaW5nLWRlZmluZWQge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHAge1xuICAgICAgICAgIG1hcmdpbjogMDsgfSB9XG5cbiAgICAgIC5zaGlwcGluZy1jb3VudHJ5LXBvcC11cCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgei1pbmRleDogLTE7XG4gICAgICAgIHdpZHRoOiAyMDBweDtcbiAgICAgICAgaGVpZ2h0OiAxMDVweDtcbiAgICAgICAgcmlnaHQ6IC0yMHB4O1xuICAgICAgICB0b3A6IC0xMjBweDtcbiAgICAgICAgcGFkZGluZzogMCAxNXB4IDE1cHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbih3aGl0ZSwgNSUpO1xuICAgICAgICBmb250LXNpemU6IDAuN3JlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgY29sb3I6IGJsYWNrO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgYm94LXNoYWRvdzogMCA1cHggMTBweCAwIHJnYmEoMCwwLDAsMC4zKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLDEwcHgsMCk7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcywgdHJhbnNmb3JtIDAuM3MsIHotaW5kZXggMHMgZWFzZSAwLjNzO1xuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICB0b3A6IDEwNXB4O1xuICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gOHB4KTtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgICBib3JkZXItd2lkdGg6IDhweCA4cHggMCA4cHg7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiBkYXJrZW4od2hpdGUsIDUlKSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDsgfVxuXG5cbiAgICAgICAgJi5zaG93IHtcbiAgICAgICAgICB6LWluZGV4OiA0O1xuICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG4gICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsMCwwKTtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MsIHRyYW5zZm9ybSAwLjNzLCB6LWluZGV4IDBzIGVhc2UgMHM7IH1cblxuICAgICAgICAmLnNlbGVjdC1vcGVuZWQge1xuICAgICAgICAgIGhlaWdodDogMzU1cHg7IH1cblxuICAgICAgICA+cCB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgcGFkZGluZzogMTVweCAwIDEwcHg7XG4gICAgICAgICAgZm9udC1zaXplOiAwLjU1cmVtO1xuICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgY29sb3I6IGJsYWNrO1xuICAgICAgICAgIEBpbmNsdWRlIGJvbGQ7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbiAgICAgICAgLnNlbGVjdHItb3B0aW9uLmFjdGl2ZSB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGdyZXk7XG4gICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICAgIEBpbmNsdWRlIGJvbGQ7IH0gfSB9XG5cblxuICAgIC5jaGVja291dCB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB6LWluZGV4OiAyO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgcGFkZGluZzogMTBweCAxNXB4O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICBmb250LXNpemU6IDAuN3JlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgQGluY2x1ZGUgYm9sZDtcblxuICAgICAgJjpiZWZvcmUsICY6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB6LWluZGV4OiAtMTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3M7IH1cblxuICAgICAgJjpiZWZvcmUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkcmVkQnV0dG9uOyB9XG5cbiAgICAgICY6YWZ0ZXIge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkZ3JleUJ1dHRvbjsgfVxuXG4gICAgICBzcGFuIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB0b3A6IDFweDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBAaW5jbHVkZSBzcHJpdGUoMTcwcHggNDRweCwgMTNweCwgMTNweCk7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxN3B4O1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsMCwwKSByb3RhdGUoMTgwZGVnKTtcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3M7IH1cblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgIG9wYWNpdHk6IDE7IH1cblxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDVweCwwLDApIHJvdGF0ZSgxODBkZWcpOyB9IH0gfVxuXG4gICAgLnBheS1vZmYge1xuICAgICAgbWFyZ2luOiA0MHB4IDAgMDtcbiAgICAgIG1hcmdpbi10b3A6IDUwcHg7XG4gICAgICBmb250LXNpemU6IDAuNjVyZW07XG4gICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgY29sb3I6ICRyZWQ7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgQGluY2x1ZGUgYm9sZDtcblxuICAgICAgYSB7XG4gICAgICAgIGNvbG9yOiAkcmVkO1xuICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjNzO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIGNvbG9yOiBibGFjazsgfSB9IH1cblxuICAgIC5saW5rcyB7XG4gICAgICBtYXJnaW4tdG9wOiAyMHB4O1xuXG4gICAgICBhIHtcbiAgICAgICAgZm9udC1zaXplOiAwLjdyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIGNvbG9yOiBibGFjaztcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjNzO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIGNvbG9yOiByZ2JhKGJsYWNrLCAwLjYpOyB9IH0gfSB9IH1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FFQUE7O3NGQUVzRjtBQUN0Rjs7Ozs7R0FLRztBQUlIOztHQUVHO0FDZEg7OztpQkFHaUI7QXdFSGpCOztzRkFFc0Y7QUFFdEY7OztHQUdHO0FDUEg7O3FGQUVxRjtBQUVyRjs7OztJQUlJO0FBY0o7OztJQUdJO0FBSUo7O0lBRUk7QU0vQko7O3NGQUVzRjtBbEZDdEYsT0FBTyxDQUFQLG1EQUFPO0FrRkNQLEFBQUEsQ0FBQyxDQUFDO0VBQ0EsVUFBVSxFQUFFLFVBQVU7Q0FBRzs7QUFFM0I7Ozs7R0FJRztBQUNILEFBQUEsSUFBSSxDQUFDO0VBQ0gsU0FBUyxFQUFFLElBQUk7RUFDZixXQUFXLEVBQUUsR0FBRztDQUFHOztBQUVyQjs7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 */\n\n\n// WEBPACK FOOTER //\n// ./resources/assets/sass/site/style.sass","/*==========================================================================\n  Grid\n  @mixin ========================================================================= */\n\n/**\n  * Grid row\n  *\n  * 1. The outer two columns are just margin\n  * 2. Prevent inline-block cells wrapping\n  * 3. Prevent vertical spacing between inline-blocks\n  */\n\n.grid-row {\n  width: column(12) /* 1 */;\n  //max-width: 1440px\n  max-width: 982px;\n  margin: 0 auto;\n  font-size: 0 /* 2 */;\n  line-height: 0 /* 3 */;\n\n  /**\n   * The full row doesn't have the two outer margin rows\n   * They stretch till both ends of the window\n   */\n\n  &.full-row {\n    width: 100%;\n    max-width: none; } }\n\n/**\n * Grid column\n *\n * 1. Reset white-space inherited from `.grid`\n * 2. Reset font-size inherited from `.grid`\n * 3. Reset line-height inherited from `.grid`\n */\n\n.grid-col {\n  position: relative;\n\n  display: inline-block;\n  overflow: hidden;\n  white-space: normal /* 1 */;\n  font-size: 1rem /* 2 */;\n  line-height: 1.6 /* 3 */;\n\n  /**\n   * Center column\n   *\n   * 1. 'inline-block' doesn't center with margin '0 auto'\n   */\n\n  &.center {\n    display: block /* 1 */;\n    margin: 0 auto; } }\n\n\n\n\n@for $i from 1 through $gridColumns {\n\n  /* Column dimensions\n   @mixin ========================================================================= */\n\n  /*\n   * Calculate width by dividing a full width into 12 columns\n   * Create a class for each column\n   */\n\n  .col-#{$i}, .col-lg-#{$i} {\n    width: column($i,12);\n\n\n    .full-row & {\n      width: column($i); } }\n\n\n  /* Column shifts\n   @mixin ========================================================================= */\n\n  .offset-#{$i}, .offset-lg-#{$i} {\n    margin-left: column($i,12); } }\n\n\n\n/* Media queries\n @mixin ========================================================================= */\n\n /*\n  * Create a separate loop because of order for css rendering\n  * because else it would overrule a previous media query\n  */\n\n@for $i from 1 through $gridColumns {\n\n  // Media query for large desktop\n  @include respond-to-width-beyond($xlGridBreakpoint) {\n    .col-xl-#{$i} {\n      width: column($i,12); }\n\n    .offset-xl-#{$i} {\n      margin-left: column($i,12); } }\n\n  // Media query for normal desktop\n  @include respond-to-width($mdGridBreakpoint) {\n    .col-md-#{$i} {\n      width: column($i,12); }\n\n    .offset-md-#{$i} {\n      margin-left: column($i,12); } }\n\n  // Media query for tablets\n  @include respond-to-width($smGridBreakpoint) {\n    .col-sm-#{$i} {\n      width: column($i,12); }\n\n    .offset-sm-#{$i} {\n      margin-left: column($i,12); } }\n\n  // Media query for mobile\n  @include respond-to-width($xsGridBreakpoint) {\n    .col-xs-#{$i} {\n      width: column($i,12); }\n\n    .offset-xs-#{$i} {\n      margin-left: column($i,12); } } }\n\n\n\n// WEBPACK FOOTER //\n// ./resources/assets/sass/site/resources/assets/sass/global/grid/_grid.sass","@mixin respond-to-width($width) {\n  $width : $width + 'px';\n  @media screen and (max-width: $width) {\n    @content; } }\n\n@mixin respond-to-width-beyond($width) {\n  $width : ($width + 1)  + 'px';\n  @media screen and (min-width: $width) {\n    @content; } }\n\n@mixin respond-to-height($height) {\n  $height : $height + 'px';\n  @media screen and (max-height: $height) {\n    @content; } }\n\n@mixin respond-to-width-or-height($width, $height) {\n  $width : $width + 'px';\n  $height : $height + 'px';\n  @media screen and (max-width: $width), screen and (max-height: $height) {\n    @content; } }\n\n\n\n// WEBPACK FOOTER //\n// ./resources/assets/sass/site/resources/assets/sass/global/mixins/_mediaQueries.sass","/* ==========================================================================\n   This grid can be turned on and off when you want to check\n   if everything is nice in place.\n   @mixin ========================================================================= */\n\n.visible-grid-container {\n  display: flex;\n  justify-content: center; }\n\n/**\n * 1. Makes it able to control the website while grid is shown\n */\n.visible-grid {\n  display: block;\n  position: fixed;\n  z-index: 10000;\n  pointer-events: none /* 2 */;\n\n  .grid-col {\n    background: rgba(0,255,255,.6);\n    height: 100vh;\n\n    &:nth-child(2n) {\n      background: rgba(0,255,255,.3); } }\n\n  &:before, &:after {\n    content: '';\n    position: absolute;\n    top: 0;\n    width: calc(100% / 12);\n    height: 100%;\n    background: rgba(0,255,0,.5); }\n\n  &:before {\n    left: calc(-100% / 12); }\n\n  &:after {\n    right: calc(-100% / 12); }\n\n  //&:nth-child(1),&:nth-child(14)\n }  ////  background: rgba(0,255,0,.5)\n\n\n\n// WEBPACK FOOTER //\n// ./resources/assets/sass/site/resources/assets/sass/global/grid/_visibleGrid.sass",".breakpoint {\n  position: fixed;\n  right: 0;\n  bottom: 0;\n  width: 20px;\n  height: 20px;\n  z-index: 10000;\n  background: #0ABEFF;\n\n  // Larger then xlBreakpoint\n  @include respond-to-width-beyond($xlGridBreakpoint) {\n    background: red; }\n\n  // Loop through other breakpoints\n  $breakpoints :  (blue $lgGridBreakpoint) (green $mdGridBreakpoint) (yellow $smGridBreakpoint) (pink $xsGridBreakpoint);\n\n  @each $list in $breakpoints {\n\n    $color : nth($list,1);\n    $breakpoint : nth($list,2);\n\n    @include respond-to-width($breakpoint) {\n      background: $color; } } }\n\n\n\n// WEBPACK FOOTER //\n// ./resources/assets/sass/site/resources/assets/sass/global/partials/_breakpoints.sass","/* ==========================================================================\n   Expend Basic style settings\n   @mixin ========================================================================= */\n\n/*\n * Set up the html\n *\n * 1. Makes sue that some fonts are better rendered\n */\n\nhtml {\n  -webkit-font-smoothing: antialiased /* 2 */;\n  -moz-osx-font-smoothing: grayscale;\n  text-rendering: optimizeLegibility; }\n\n\n/*\n * Set up the body\n *\n * 1. Set font to lining figures\n */\n\nbody {\n  margin: 0;\n\n  font-family: $fontFamily;\n  line-height: 1.6;\n\n  font-feature-settings: 'lnum' /* 1 */;\n\n  background: {\n    color: black;\n    image: url('/img/background.jpg');\n    position: center top;\n    size: 100vw auto;\n    repeat: no-repeat; } }\n\n/*\n * Set default settings for all elements\n *\n * 1. Default selection styling\n *\n */\n* {\n  ::selection /* 2 */ {\n    background: $blue;\n    color: white; } }\n\n\n/*\n * Set default styling for input and textarea\n *\n * 1. Set font because else the agent will overrule them with an ugly font\n */\ninput, textarea {\n  font-family: $fontFamily /* 1 */; }\n\n/*\n * Set default styling for a button\n *\n */\n.button {\n  display: inline-block;\n  padding: 10px 20px;\n  background-color: $brightBlue;\n  border: 1px solid white;\n  border-radius: 10px;\n  text-decoration: none;\n  color: white;\n\n  .arrow {\n    display: inline-block;\n    margin-left: 25px;\n    @include sprite(-35px -1px, 15px, 10px);\n    transform: translate3d(0,0,0);\n    transition: transform 0.3s; }\n\n  &:hover {\n    .arrow {\n      transform: translate3d(5px, 0, 0); } } }\n\n.title-placeholder {\n  h1 {\n    margin: 30px 0 0;\n    font-size: 1rem;\n    line-height: 1.3;\n    color: white;\n    text-transform: uppercase;\n    @include bold; } }\n\n\n\n// WEBPACK FOOTER //\n// ./resources/assets/sass/site/resources/assets/sass/site/_base.sass","$spriteWidth: 212px;\n$spriteHeight: 82px;\n\n\n@mixin sprite($position, $width: auto, $height: auto) {\n\n  $positionX: nth($position, 1) * -1;\n  $positionY: nth($position, 2) * -1;\n\n  background: url(\"/img/spire_sprite.svg\") $positionX $positionY no-repeat;\n  background-size: $spriteWidth $spriteHeight;\n  width: $width;\n  height: $height; }\n\n\n\n// WEBPACK FOOTER //\n// ./resources/assets/sass/site/resources/assets/sass/global/mixins/_sprite.sass","/* ==========================================================================\n   Font related functions\n   @mixin ========================================================================= */\n\n/**\n * Add some functions for readability\n * Return font-weight based on name\n */\n@function lightest() {\n  @return 100; }\n\n@function light() {\n  @return 300; }\n\n@function book() {\n  @return 400; }\n\n@function medium() {\n  @return 500; }\n\n@function semibold() {\n  @return 600; }\n\n@function bold() {\n  @return 700; }\n\n@function black() {\n  @return 900; }\n\n@mixin italic() {\n  font-family: 'AvenirLTW02-45BookObliq', sans-serif; }\n\n@mixin bold() {\n  font-family: 'Avenir LT W02 95 Black', sans-serif;\n  font-weight: 400;\n }  //font-weight: bold\n\n\n\n// WEBPACK FOOTER //\n// ./resources/assets/sass/site/resources/assets/sass/global/functions/_fonts.sass","/* ==========================================================================\n   Helper classes\n   @mixin ========================================================================= */\n\n/**\n * Use on elements from where the children should not wrap\n */\n.nowrap {\n  white-space: nowrap; }\n\n/**\n * Hide elements on different screen sizes\n */\n$breakpoints :  ('xl' $xlGridBreakpoint) ('lg' $lgGridBreakpoint) ('md' $mdGridBreakpoint) ('sm' $smGridBreakpoint) ('xs' $xsGridBreakpoint);\n\n@each $list in $breakpoints {\n\n  $name : nth($list,1);\n  $breakpoint : nth($list,2);\n\n  @include respond-to-width($breakpoint) {\n    .hide-on-#{$name}-or-smaller {\n      display: none; } }\n\n  @include respond-to-width-beyond($breakpoint) {\n    .hide-on-#{$name}-or-larger {\n      display: none; } } }\n\n\n\n// WEBPACK FOOTER //\n// ./resources/assets/sass/site/resources/assets/sass/site/_helpers.sass","\n$cookieDialogHeight : 60px;\n$cookieLargeDialogHeight : 120px;\n\n/* HTML and navigation\n @mixin ========================================================================= */\n\nhtml.has-cookie-dialog {\n  padding-top: $cookieDialogHeight;\n\n  nav.main,\n  .navigation-drip {\n    top: $cookieDialogHeight; }\n\n  @include respond-to-width($mdGridBreakpoint) {\n    padding-top: $cookieLargeDialogHeight;\n\n    nav.main,\n    .navigation-drip {\n      top: $cookieLargeDialogHeight; } } }\n\n/* Dialog\n @mixin ========================================================================= */\n\n.cookie-consent {\n  @include position(fixed,0 null null 0);\n  z-index: 10000;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n\n  height: $cookieDialogHeight;\n  width: 100%;\n  border-bottom: 1px solid #eaeaea;\n  background: #fff;\n  color: $black;\n  font-size: 16px;\n\n  .message {\n    display: block;\n    padding: 0 20px;\n    max-width: 75%;\n\n    a {\n      display: inline-block;\n      color: $blue;\n      text-decoration: none;\n      &:hover {\n        text-decoration: underline; } } }\n\n  .button {\n    margin-left: 40px;\n    width: auto;\n    min-width: 0;\n    height: 40px;\n    line-height: 36px;\n    font-size: 16px; }\n\n  // Set flex direct to column and put everything below each other\n  @include respond-to-width($mdGridBreakpoint) {\n    flex-direction: column;\n    text-align: center;\n    height: $cookieLargeDialogHeight;\n\n    .message {\n      max-width: none; }\n    .button {\n      margin-left: 0;\n      margin-top: 10px;\n      @include position(relative, 0 0 null null); } } }\n\n\n\n// WEBPACK FOOTER //\n// ./resources/assets/sass/site/resources/assets/sass/site/partials/_cookieDialog.sass","@mixin position ($position: relative, $coordinates: null null null null) {\n\n  @if type-of($position) == list {\n    $coordinates: $position;\n    $position: relative;\n  }\n\n  $coordinates: unpack($coordinates);\n\n  $top: nth($coordinates, 1);\n  $right: nth($coordinates, 2);\n  $bottom: nth($coordinates, 3);\n  $left: nth($coordinates, 4);\n\n  position: $position;\n\n  @if ($top and $top == auto) or (type-of($top) == number) {\n    top: $top;\n  }\n\n  @if ($right and $right == auto) or (type-of($right) == number) {\n    right: $right;\n  }\n\n  @if ($bottom and $bottom == auto) or (type-of($bottom) == number) {\n    bottom: $bottom;\n  }\n\n  @if ($left and $left == auto) or (type-of($left) == number) {\n    left: $left;\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./resources/assets/sass/site/resources/assets/sass/global/bourbon/addons/_position.scss","/* ==========================================================================\n   Footer\n   @mixin ========================================================================= */\n\nfooter {\n  background: $black;\n  color: $lightBlue;\n  padding: 100px 0;\n\n  .komma {\n    position: relative;\n    @include flex(space-between, center);\n    font-size: 0.75rem;\n    line-height: 1;\n    width: 265px;\n    color: $lightBlue;\n    font-weight: medium();\n    text-decoration: none;\n    transition: color 0.2s;\n\n    &:hover {\n      color: white;\n      span {\n        opacity: 1; } }\n\n    span {\n      position: relative;\n      top: 1px;\n      display: inline-block;\n      opacity: 0.4;\n      transition: opacity 0.2s;\n      @include sprite(491px 1px, 93px, 31px); }\n\n    @include respond-to-width(400) {\n      display: block;\n      text-align: center;\n\n      span {\n        display: block;\n        margin: 10px auto 0; } } } }\n\n\n\n// WEBPACK FOOTER //\n// ./resources/assets/sass/site/resources/assets/sass/site/partials/_footer.sass","@mixin flex($justify: space-between, $alignItem: initial) {\n  display: -ms-flexbox      /* TWEENER - IE 10 */;\n  display: -webkit-flex     /* NEW - Chrome */;\n  display: flex;\n\n  @include prefixer(justify-content, $justify, webkit moz ms);\n  @include prefixer(align-items, $alignItem, webkit moz ms);\n  justify-content: $justify;\n  align-items: $alignItem; }\n\n\n@mixin flex-rows {\n  @include prefixer(flex-wrap, wrap, webkit ms);\n  @include prefixer(flex-direction, row, webkit ms);\n  @include prefixer(flex-flow, row wrap, webkit); }\n\n@mixin order($place) {\n  @include prefixer(order, $place, webkit ms); }\n\n@mixin align-content($align) {\n  @include prefixer(align-content, $align, webkit); }\n\n@mixin align-self($align) {\n  @include prefixer(align-self, $align, webkit); }\n\n\n\n// WEBPACK FOOTER //\n// ./resources/assets/sass/site/resources/assets/sass/global/mixins/_flex.sass","//************************************************************************//\n// Example: @include prefixer(border-radius, $radii, webkit ms spec);\n//************************************************************************//\n// Variables located in /settings/_prefixer.scss\n\n@mixin prefixer ($property, $value, $prefixes) {\n  @each $prefix in $prefixes {\n    @if $prefix == webkit {\n      @if $prefix-for-webkit {\n        -webkit-#{$property}: $value;\n      }\n    }\n    @else if $prefix == moz {\n      @if $prefix-for-mozilla {\n        -moz-#{$property}: $value;\n      }\n    }\n    @else if $prefix == ms {\n      @if $prefix-for-microsoft {\n        -ms-#{$property}: $value;\n      }\n    }\n    @else if $prefix == o {\n      @if $prefix-for-opera {\n        -o-#{$property}: $value;\n      }\n    }\n    @else if $prefix == spec {\n      @if $prefix-for-spec {\n        #{$property}: $value;\n      }\n    }\n    @else  {\n      @warn \"Unrecognized prefix: #{$prefix}\";\n    }\n  }\n}\n\n@mixin disable-prefix-for-all() {\n  $prefix-for-webkit:    false !global;\n  $prefix-for-mozilla:   false !global;\n  $prefix-for-microsoft: false !global;\n  $prefix-for-opera:     false !global;\n  $prefix-for-spec:      false !global;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./resources/assets/sass/site/resources/assets/sass/global/bourbon/addons/_prefixer.scss","header {\n  background-color: rgba($darkBrown, 0.85);\n\n  .pre-header {\n    position: relative;\n    border-bottom: 1px solid rgba($borderColor, 0.4);\n\n    .grid-row {\n      padding: 8px 0;\n      @include flex(space-between, center); }\n\n    .reasons {\n      @include flex(flex-start, center);\n\n      p {\n        margin: 0;\n        font-size: 0.65rem;\n        line-height: 1.2;\n        color: rgba($lightGrey, 0.75);\n        @include bold;\n\n        + p {\n          margin-left: 40px; }\n\n        &:before {\n          content: '';\n          display: inline-block;\n          margin-right: 5px;\n          @include sprite(170px 33px, 13px, 10px);\n          opacity: 0.75; } } }\n\n    .mail-button {\n      font-size: 0.65rem;\n      line-height: 1.2;\n      color: rgba($lightGrey, 0.75);\n      @include bold;\n      text-decoration: none;\n      transition: color 0.3s;\n\n      &:hover {\n        color: $lightGrey; }\n\n      &:before {\n        content: '';\n        position: relative;\n        top: -1px;\n        display: inline-block;\n        margin-right: 5px;\n        width: 6px;\n        height: 6px;\n        border-radius: 100%;\n        background-color: $green; }\n\n      &:after {\n        content: '';\n        position: relative;\n        display: inline-block;\n        margin-left: 5px;\n        @include sprite(170px 0, 10px, 11px); } } }\n\n  .main-row {\n    padding: 20px 0;\n    @include flex(space-between, center);\n\n    .logo {\n      display: block;\n      @include sprite(0 0, 168px, 80px); }\n\n    .search-placeholder {\n      @include flex(center, center);\n      width: calc(100% - 336px);\n\n      .search {\n        position: relative;\n\n        width: 100%;\n        max-width: 415px;\n\n        .search-input {\n          @include appearance(none);\n          width: 100%;\n          display: block;\n          padding: 7px 40px 7px 10px;\n          background-color: white;\n          border: none;\n          font-size: 0.7rem;\n          line-height: 1.2;\n          color: $greyBrown;\n\n          &:-webkit-autofill, &:-webkit-autofill:hover, &:-webkit-autofill:focus, &:-webkit-autofill:active {\n            transition: 9999s background-color;\n            -webkit-text-fill-color: $greyBrown;\n            transition-delay: 9999s; }\n\n          &:focus {\n            outline: none; }\n }          //  outline-color: $lighterGrey\n\n        .submit {\n          position: absolute;\n          right: 0;\n          top: 0;\n          @include flex(center, center);\n          width: 30px;\n          height: 30px;\n          background-color: $darkGrey;\n          cursor: pointer;\n          transition: background-color 0.3s;\n\n          .icon {\n            @include sprite(185px 0, 14px, 14px); }\n\n          input {\n            display: none; }\n\n          &:hover {\n            background-color: rgba($darkGrey, 0.75); } } } }\n\n    .shopping-cart-icon {\n      @include flex(flex-end, center);\n      width: 168px;\n      text-decoration: none;\n\n      .icon {\n        position: relative;\n        display: block;\n        width: 24px;\n        height: 24px;\n        margin-right: 8px;\n        &:before {\n          content: '';\n          display: inline-block;\n          @include sprite(185px 19px, 24px, 24px);\n          opacity: 0.5;\n          transition: opacity 0.3s; }\n\n\n        &:after {\n          position: absolute;\n          right: -12px;\n          top: -10px;\n          content: attr(data-amount);\n          @include flex(center, center);\n          width: 20px;\n          height: 20px;\n          color: white;\n          background-color: $buttonRed;\n          border-radius: 100%;\n          font-size: 0.6rem;\n          line-height: 1.2;\n          @include bold; }\n\n        &[data-amount='0'] {\n          &:after {\n            display: none; } } }\n\n\n      span {\n        font-size: 0.65rem;\n        line-height: 1.2;\n        color: rgba($lightGrey, 0.75);\n        transition: color 0.3s;\n        @include bold; }\n\n      &:hover {\n        .icon {\n          &:before {\n            opacity: 1; } }\n        span {\n          color: $lightGrey; } } } }\n\n\n  nav {\n    background-color: $grey;\n    border-top: 1px solid $borderColor;\n    box-shadow: 0 2px 4px 0 rgba(0,0,0,0.5);\n\n    .grid-row {\n      @include flex(space-between, center);\n\n      a {\n        display: block;\n        padding: 18px 0;\n        background-color: transparent;\n        text-align: center;\n        text-transform: uppercase;\n        text-decoration: none;\n        font-size: 0.6rem;\n        line-height: 1.2;\n        color: white;\n        @include bold;\n        transition: background-color 0.3s, color 0.3s;\n\n        + a {\n          border-left: 1px solid $borderColor; }\n\n        &:hover {\n          //background-color: rgba(white, 0.2)\n          color: $red; } } } } }\n\n\n\n\n// WEBPACK FOOTER //\n// ./resources/assets/sass/site/resources/assets/sass/site/partials/_header.sass","/* ==========================================================================\n   Default styling for KMS content\n   @mixin ========================================================================= */\n\n.kms-content {\n  h1, h2, h3 {\n    font-size: 1.8rem;\n    line-height: 1.4;\n    color: $brightBlue;\n    //+bree\n\n    strong {\n      color: $brightBlue;\n      font-weight: 400; } }\n\n  h2, h3 {\n    font-size: 1.4rem; }\n\n  h3 {\n    color: $brightBlue;\n\n    strong {\n      color: $blue; } }\n\n  h4 {\n    font-size: 0.8rem;\n    line-height: 1.3;\n    color: $blue;\n    text-transform: uppercase; }\n\n  p {\n    font-size: 0.9rem;\n    line-height: 1.4;\n    color: $grey; }\n\n  ul {\n    padding-left: 0;\n    list-style: none;\n\n    li {\n      padding-left: 30px;\n      font-size: 0.9rem;\n      line-height: 1.4;\n      color: $grey;\n\n      &:before {\n        position: absolute;\n        left: 0;\n        content: '•';\n        color: $blue;\n        font-size: 1.3em;\n        line-height: 1; }\n\n      + li {\n        margin-top: 5px; } } }\n\n  ol {\n    counter-reset: ol-counter /* 2 */;\n    padding-left: 0;\n    list-style: none;\n    li {\n      padding-left: 30px;\n      font-size: 0.9rem;\n      line-height: 1.4;\n      color: $grey;\n\n      &:before {\n        counter-increment: ol-counter;\n        content: counter(ol-counter)'.';\n        position: absolute;\n        left: 0;\n        color: $blue; }\n\n      + li {\n        margin-top: 5px; } } }\n\n  a {\n    color: $blue;\n    text-decoration: none;\n\n    &:hover {\n      color: darken($blue, 10%);\n      text-decoration: none; } } }\n\n\n\n// WEBPACK FOOTER //\n// ./resources/assets/sass/site/resources/assets/sass/site/partials/_kmsContent.sass",".form {\n  display: block;\n  width: 100%;\n  max-width: 560px;\n  font-size: 1rem;\n  line-height: 1.2;\n\n  .form-element {\n    position: relative;\n    margin-bottom: 25px; }\n\n  .error-message {\n    display: none;\n    width: 100%;\n    color: $red;\n    font-size: 0.75rem;\n    font-weight: bold;\n\n    &.active {\n      display: block;\n      margin-bottom: 10px; } }\n\n  label, .label {\n    display: block;\n    margin-bottom: 5px;\n    color: $grey;\n    font-size: 0.8em;\n    font-weight: bold; }\n\n  input, textarea {\n    display: block;\n    width: 100%;\n    background-color: white;\n    padding: 15px 20px;\n\n    border: 1px transparent solid;\n    border-radius: 4px;\n    font-size: 0.9em;\n    color: $grey;\n\n    &.alert {\n      border-color: $red; }\n\n    &:-webkit-autofill, &:-webkit-autofill:hover, &:-webkit-autofill:focus, &:-webkit-autofill:active {\n      transition: 9999s background-color;\n      -webkit-text-fill-color: $grey;\n      transition-delay: 9999s; }\n\n    &:focus {\n      box-shadow: none;\n      outline: none; } }\n\n  textarea {\n    min-height: 152px;\n    resize: vertical; }\n\n  .select {\n    .select-wrapper {\n      position: relative;\n      display: block; }\n\n    .icon {\n      position: absolute;\n      right: 10px;\n      top: 26px;\n      display: inline-block;\n      width: 0;\n      height: 0;\n      border-style: solid;\n      border-width: 5px 6px 0 6px;\n      border-color: $grey transparent transparent transparent;\n      opacity: 0.3;\n      pointer-events: none; }\n\n    select {\n      display: block;\n      width: 100%;\n      @include appearance(none);\n      font-family: $fontFamily;\n      background-color: white;\n      padding: 15px 35px 15px 20px;\n      border: 1px transparent solid;\n      border-radius: 4px;\n      font-size: 0.9em;\n      color: $grey;\n\n      &:focus {\n        box-shadow: none;\n        outline: none; } } }\n\n\n  .checkbox {\n    label {\n      @include flex(space-between, flex-start);\n      cursor: pointer;\n\n      input {\n        @include appearance(none);\n        margin: 0;\n        width: 20px;\n        height: 20px;\n        border-radius: 100%;\n        padding: 0;\n        border: none;\n        background-color: rgba(white, 0.3);\n        background-size: contain;\n        background-position: center;\n        background-repeat: no-repeat;\n        transition: background-color 0.3s;\n\n        &:hover {\n          background-color: rgba(white, 0.5); }\n\n        &:checked {\n          background-image: url(\"/img/check/checked.svg\");\n          background-color: rgba(white, 0.7); } }\n\n      span {\n        display: block;\n        margin: 2px 0 0;\n        width: calc(100% - 30px); } } }\n\n  .submit {\n    margin-top: 20px; }\n\n  //input\n }  ////display: none\n\n\n\n// WEBPACK FOOTER //\n// ./resources/assets/sass/site/resources/assets/sass/site/partials/_form.sass",".image-slider {\n  width: 100%;\n  overflow: visible;\n  box-shadow: 0px 0px 40px 0px rgba(0,0,0,0.2);\n\n  .placeholder {\n    position: relative;\n    width: 100%;\n    cursor: move;\n\n    .controllers {\n      position: relative;\n      z-index: 3;\n      width: 100%;\n      height: 0;\n      padding-bottom: 66.67%;\n\n      @include respond-to-width(1350) {\n        padding-bottom: 100%; }\n\n      .nav-item {\n        position: absolute;\n        @include flex(center, center);\n        bottom: -50px;\n        width: 35px;\n        height: 35px;\n        cursor: pointer;\n        border-radius: 100%;\n        transition: background 0.3s;\n\n        span {\n          @include flex(center, center);\n          height: 16px;\n          width: 16px;\n          transform-origin: center;\n          transition: transform 0.3s;\n\n          .arrow-icon {\n            position: relative;\n            width: 10px;\n            height: 16px;\n            transform-origin: center;\n            .st0 {\n              fill: white; } } }\n\n        &.previous {\n          background-color: $brightBlue;\n          right: calc(50% + 3px);\n\n          span {\n            .arrow-icon {\n              transform: rotate(90deg); } }\n\n          &:hover {\n            background-color: lighten($brightBlue, 5%); } }\n\n        &.next {\n          background-color: $red;\n          left: calc(50% + 3px);\n\n\n          span {\n            .arrow-icon {\n              transform: rotate(270deg); } }\n\n          &:hover {\n            background-color: darken($red, 5%); } } } }\n\n\n\n    figure {\n      position: absolute;\n      z-index: 1;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      opacity: 0;\n      transition: opacity 0.4s;\n\n      span {\n        position: absolute;\n        top: 0;\n        left: 0;\n        width: 100%;\n        height: 100%;\n        background-size: cover;\n        background-position: center;\n\n        &.small {\n          display: none; }\n\n        @include respond-to-width(480) {\n          &.medium {\n            display: none; }\n\n          &.small {\n            display: block; } } }\n\n      &.active {\n        z-index: 2;\n        opacity: 1; } } } }\n\n\n\n// WEBPACK FOOTER //\n// ./resources/assets/sass/site/resources/assets/sass/site/partials/_imageSlider.sass","#breadcrumb {\n  margin-top: 40px;\n  padding: 0 0 4px;\n  border-bottom: 1px solid $borderColor;\n\n  ol {\n    list-style: none;\n    padding: 0;\n    margin: 0;\n    @include flex(flex-start, center);\n\n    .divider {\n      display: inline-block;\n      padding: 0 4px;\n      color: $darkGrey;\n      font-size: 0.6rem;\n      line-height: 1.25; }\n\n    li {\n      a {\n        color: $darkGrey;\n        text-transform: uppercase;\n        font-size: 0.6rem;\n        line-height: 1.25;\n        text-decoration: none;\n        opacity: 1;\n        transition: opacity 0.3s;\n\n        &:hover {\n          opacity: 0.75; } }\n\n      &:last-child {\n        a {\n          color: white;\n          @include bold; } } } } }\n\n\n\n// WEBPACK FOOTER //\n// ./resources/assets/sass/site/resources/assets/sass/site/partials/_breadcrumb.sass","/*==========================================================================\n  Dynamic Blocks\n  @mixin ========================================================================= */\n\n.dynamic-block {\n\n  + .dynamic-block {\n    margin-top: 60px; }\n\n  .grid-row {\n    @include flex(space-between, center); }\n\n  @import \"twoTextColumn\";\n  @import \"fullImageColumn\";\n  @import \"contentBlock\";\n  @import \"multipleImages\";\n  @import \"fullTextBlock\";\n  @import \"videoBlock\"; }\n\n\n\n// WEBPACK FOOTER //\n// ./resources/assets/sass/site/resources/assets/sass/site/partials/dynamic/_dynamic.sass","&.two-text-columns {\n  position: relative;\n  z-index: 10;\n  @include flex(space-between, flex-start);\n  .content {\n    width: column(21, 44);\n    padding: 0; }\n\n  @include respond-to-width(900) {\n    display: block;\n    .content {\n      width: 100% !important;\n      margin: 0;\n\n      p:last-of-type {\n        margin-bottom: 1rem; } } } }\n\n\n\n// WEBPACK FOOTER //\n// ./resources/assets/sass/site/resources/assets/sass/site/partials/dynamic/_twoTextColumn.sass","&.full-image-column {\n\n  img {\n    width: 100%;\n    display: none;\n    &.large {\n      display: block; }\n\n    @include respond-to-width(1050) {\n      &.large {\n        display: none; }\n      &.medium {\n        display: block; } }\n\n    @include respond-to-width(525) {\n      &.medium {\n        display: none; }\n      &.small {\n        display: block; } } } }\n\n\n\n\n// WEBPACK FOOTER //\n// ./resources/assets/sass/site/resources/assets/sass/site/partials/dynamic/_fullImageColumn.sass","&.content-block {\n  position: relative;\n  @include flex(space-between, flex-start);\n\n  .image {\n    width: 50%;\n\n    img {\n      width: 100%;\n\n      &.small {\n        display: none; }\n\n      @include respond-to-width(450) {\n        &.medium {\n          display: none; }\n\n        &.small {\n          display: block; } } }\n\n    .content {\n      width: column(5, 12); } }\n\n  .content {\n    @include order(1);\n    width: column(5, 12); }\n\n  &[data-image-location='right'] {\n    .image {\n      @include order(2); }\n\n    .content {\n      @include order(1); } }\n\n  @include respond-to-width(900) {\n    display: block;\n\n    .image {\n      width: 100%;\n      margin-top: 40px;\n      @include order(2); }\n\n    .content {\n      width: 100%; } } }\n\n\n\n// WEBPACK FOOTER //\n// ./resources/assets/sass/site/resources/assets/sass/site/partials/dynamic/_contentBlock.sass","&.multiple-images {\n  @include flex(space-between, flex-start);\n  @include flex-rows;\n\n  figure {\n    width: column(21, 44);\n\n    img {\n      width: 100%;\n      display: none;\n\n      &.medium {\n        display: none; }\n\n      @include respond-to-width(1100) {\n        &.large {\n          display: none; }\n        &.medium {\n          display: block; } }\n\n      @include respond-to-width(480) {\n        &.large {\n          display: none; }\n        &.medium {\n          display: block; } } } }\n\n  &[data-size-type='50'] {\n    figure {\n      img {\n        &.medium {\n          display: block; }\n\n        @include respond-to-width(1125) {\n          &.medium {\n            display: none; }\n          &.small {\n            display: block; } } } } }\n\n  @include respond-to-width(900) {\n    display: block;\n\n    figure {\n      width: 100%;\n      &:first-of-type {\n        margin-bottom: 40px; }\n\n      img {\n        &.medium {\n          display: block !important; }\n        &.small {\n          display: none !important; }\n\n        @include respond-to-width(525) {\n          &.medium {\n            display: none; }\n          &.small {\n            display: block; } } } } } }\n\n\n\n// WEBPACK FOOTER //\n// ./resources/assets/sass/site/resources/assets/sass/site/partials/dynamic/_multipleImages.sass","&.full-text-block {\n  .content {\n    max-width: 680px;\n    margin: auto;\n    text-align: center; } }\n\n\n\n// WEBPACK FOOTER //\n// ./resources/assets/sass/site/resources/assets/sass/site/partials/dynamic/_fullTextBlock.sass","&.video-block {\n  width: 100%;\n  max-width: 960px;\n  margin: 60px auto 0 !important;\n\n  .video-wrapper {\n    position: relative;\n    padding-bottom: 53.6% /* 16:9 */;\n    padding-top: 25px;\n    height: 0;\n    iframe, .video-overlay {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%; }\n    .video-overlay {\n      z-index: 2;\n      @include flex(center, center);\n      opacity: 1;\n      cursor: pointer;\n      transition: all 0.2s;\n      .button {\n        width: 25%;\n        max-width: 85px;\n        transform: scale(1);\n        transition: all 0.4s;\n        img {\n          width: 100%; } }\n      &:hover {\n        .button {\n          @include transform(scale(0.85)); } }\n\n      &.hide {\n        opacity: 0;\n        pointer-events: none;\n        transition: all 0.5s;\n        transition-delay: 0.7s;\n        .button {\n          transition: all 0.8s;\n          transform: scale(0.3); } } } } }\n\n\n\n// WEBPACK FOOTER //\n// ./resources/assets/sass/site/resources/assets/sass/site/partials/dynamic/_videoBlock.sass","//Colors used in Mobile Menu\n$listColor: $black;\n$listHoverColor: rgba($black, 0.7);\n$listActiveColor: $blue;\n\n$barColor: $blue;\n$barMenuColor: white;\n$menuBackground: white;\n\n$shaderBackground: $blue;\n$shaderOpacity: 0.6;\n\n\n.preventScroll {\n  @include respond-to-width(750) {\n    overflow: hidden;\n    overflow-y: scroll;\n    position: fixed;\n    width: 100%; } }\n\n\n#mobile-navigation {\n  position: fixed;\n  z-index: 1000;\n  height: 100vh;\n  overflow: hidden;\n  width: 100%;\n  left: 0;\n  top: 0;\n  pointer-events: none;\n\n  .bar {\n    display: none;\n    height: 60px;\n    background-color: $barColor;\n    box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.11);\n    pointer-events: all;\n    position: relative;\n    z-index: 4;\n    transform: translate3d(0,0,0);\n    transition: all 0.3s;\n    transition-delay: 0.4s;\n\n    .toggle-menu {\n      width: 60px;\n      height: 100%;\n      z-index: 3;\n      cursor: pointer;\n      position: relative;\n      @include flex(center, center);\n\n      .icon {\n        width: 20px;\n\n        span + span {\n          margin-top: 4px; }\n\n        span {\n          width: 100%;\n          height: 2px;\n          display: block;\n          transform: scale3d(1, 1, 1);\n          transform-origin: 0 50%;\n          background-color: $barMenuColor;\n          transition: transform 0.6s;\n\n          &:nth-of-type(2) {\n            transform: scale3d(0.8, 1, 1); }\n\n          &:nth-of-type(3) {\n            transform: scale3d(0.45, 1, 1); } } }\n\n      &:hover {\n        .icon {\n          span {\n            transform: scale3d(1, 1, 1) !important; } } } }\n\n    .logo {\n      height: 100%;\n      width: 100%;\n      position: absolute;\n      left: 0;\n      top: 0;\n      @include flex(center, center);\n\n      a {\n        position: relative;\n        top: 3px;\n        display: block;\n        width: 150px;\n        max-height: 25px;\n        background-position: center;\n        background-size: contain;\n        background-repeat: no-repeat;\n\n        img {\n          width: 100%;\n          max-height: 25px; } } } }\n\n  .shader {\n    width: 100%;\n    height: 100%;\n    position: absolute;\n    left: 0;\n    top: 0;\n    background-color: $shaderBackground;\n    opacity: 0;\n    transition-delay: 0.4s; }\n\n  .menu {\n    position: absolute;\n    left: 0;\n    top: 0;\n    height: 100%;\n    width: 100%;\n    max-width: 600px;\n    min-width: 275px;\n    padding: 70px 120px;\n\n    background-color: $menuBackground;\n    overflow-x: auto;\n    pointer-events: all;\n    z-index: 5;\n    transform: translate3d(-100%, 0, 0);\n\n    nav {\n      position: relative;\n\n      .close {\n        position: absolute;\n        top: 10px;\n        left: -68px;\n        display: block;\n        width: 16px;\n        height: 16px;\n        cursor: pointer;\n        transform-origin: center;\n        transform: rotate(0deg);\n        transition: transform 0.4s;\n\n        &:hover {\n          transform: rotate(90deg);\n          &:before, &:after {\n            background-color: rgba($listColor, 0.4); } }\n\n        &:before, &:after {\n          content: '';\n          position: absolute;\n          display: block;\n          background-color: $listColor;\n          transform-origin: center;\n          transform: rotate(45deg);\n          transition: background-color 0.3s; }\n\n        &:before {\n          left: 7px;\n          top: 0;\n          width: 2px;\n          height: 100%; }\n\n        &:after {\n          left: 0;\n          top: 7px;\n          width: 100%;\n          height: 2px; } }\n\n\n      .logo-wrapper {\n        width: 100%;\n        max-width: 250px;\n\n        a {\n          display: block;\n          text-decoration: none;\n\n          img {\n            width: 100%;\n            max-height: 36px; } } }\n\n      .menu-list {\n        margin-top: 40px;\n\n        ul {\n          margin: 0;\n          padding: 0;\n          list-style: none;\n          font-size: 1rem;\n          line-height: 1.2;\n\n          + ul {\n            margin-top: 24px; }\n\n          li {\n            a {\n              display: block;\n              padding: 8px 0;\n              color: $listColor;\n              text-decoration: none;\n              transition: color 0.2s;\n              cursor: pointer;\n\n              &:hover {\n                color: $listHoverColor; } }\n\n            ul {\n              font-size: 0.85em; }\n\n            &.active {\n              a {\n                color: $listActiveColor; } } } } } } }\n\n  &.active {\n    .bar {\n      .toggle-menu {\n        .icon {\n          span {\n            opacity: 0;\n            transition-delay: 0.4s;\n            &:first-of-type {\n              @include transform(rotate(45deg));\n              opacity: 1;\n              top: 6px; }\n            &:last-of-type {\n              width: 25px;\n              opacity: 1;\n              bottom: 6px;\n              @include transform(rotate(-45deg)); } } } } }\n    .menu {\n      transform: translate3d(0, 0, 0); } }\n\n  &.shader-active {\n    .shader {\n      opacity: $shaderOpacity;\n      pointer-events: all; } }\n\n  &.allow-animation {\n    .shader {\n      transition: all 0.2s; }\n    .menu {\n      transition: all 0.3s;\n      transition-timing-function: ease-in-out; } }\n\n  @include respond-to-width(750) {\n    display: block;\n\n    .bar {\n      display: block; }\n\n    .menu {\n      max-width: none; } }\n\n  @include respond-to-width(400) {\n    nav {\n      padding-left: 30px;\n\n      ul {\n        font-size: 1.2rem; } } } }\n\n\n\n// WEBPACK FOOTER //\n// ./resources/assets/sass/site/resources/assets/sass/site/partials/mobile/_navigation.sass",".mobile-contact {\n  display: none;\n  opacity: 0;\n  transform: translate3d(0, -100%, 0);\n\n  padding: 50px column(1);\n  background-color: white;\n\n  color: $black;\n  font-size: 0.9rem;\n\n  transition: opacity 0.4s, transform 0.4s;\n\n  &.active {\n    transform: translate3d(0,0,0);\n    opacity: 1;\n    pointer-events: all; }\n\n\n  h1, h2 {\n    font-size: 2rem;\n    line-height: 1.2;\n    max-width: 580px;\n    color: $pastelBlue;\n    margin: 0 0 40px; }\n\n  p {\n    margin: 1rem 0; }\n\n  strong {\n    color: $black; }\n\n  a:not(.button) {\n    color: $blue;\n    text-decoration: none;\n    transition: color 0.3s, border 0.3s, opacity 0.3s;\n    &:hover {\n      color: darken($blue, 15%); } }\n\n\n\n  a.button {\n    display: inline-block;\n    margin-top: 20px;\n    padding: 15px 20px;\n    border-radius: 25px;\n    background-color: $blue;\n    text-decoration: none;\n    font-size: 0.9rem;\n    line-height: 1;\n    font-weight: bold();\n    color: white;\n    transition: background-color 0.3s;\n\n    &:after {\n      content: '';\n      margin-left: 20px;\n      transform: translate3d(0,0,0);\n      transition: transform 0.3s; }\n\n    &:hover {\n      background-color: $pastelBlue;\n      &:after {\n        transform: translate3d(5px, 0, 0); } } }\n\n\n  @include respond-to-width(840) {\n    display: block; } }\n\n\n\n// WEBPACK FOOTER //\n// ./resources/assets/sass/site/resources/assets/sass/site/partials/mobile/_contact.sass","#sticky-navigation {\n  position: fixed;\n  top: 0;\n  left: 0;\n  z-index: 50;\n  background-color: $blue;\n  width: 100%;\n  height: 60px;\n  transform: translate3d(0, -60px, 0);\n  box-shadow: 0 6px 10px -5px rgba(0,0,0,0.1);\n  opacity: 0;\n  transition: transform 0.4s, opacity 0.4s;\n\n  &.active {\n    transform: translate3d(0, 0, 0);\n    opacity: 1; }\n\n  .grid-row {\n    @include flex(space-between, center); }\n\n  .menu {\n    display: inline-block;\n    width: 60px;\n\n    .placeholder {\n      position: relative;\n      width: 100%;\n      padding-bottom: 100%;\n\n      .icon-placeholder {\n        position: absolute;\n        left: 0;\n        top: 0;\n        width: 100%;\n        height: 100%;\n        @include flex(center, center);\n        cursor: pointer;\n\n        .icon {\n          width: 20px;\n\n          span + span {\n            margin-top: 4px; }\n\n          span {\n            width: 100%;\n            height: 2px;\n            display: block;\n            transform: scale3d(1, 1, 1);\n            transform-origin: 0 50%;\n            background-color: white;\n            transition: transform 0.6s;\n\n            &:nth-of-type(2) {\n              transform: scale3d(0.8, 1, 1); }\n\n            &:nth-of-type(3) {\n              transform: scale3d(0.45, 1, 1); } } }\n\n        &:hover {\n          .icon {\n            span {\n              transform: scale3d(1, 1, 1) !important; } } } } } }\n\n  .logo-wrapper {\n    a {\n      font-size: 1rem;\n      line-height: 1;\n      color: white;\n      text-decoration: none;\n      font-weight: bold; } } }\n\n\n\n// WEBPACK FOOTER //\n// ./resources/assets/sass/site/resources/assets/sass/site/partials/mobile/_stickyNavigation.sass","#error-page-message {\n  padding: 100px 0 100px;\n  background-color: $borderColor;\n\n  .grid-row {\n    .kms-content {\n      width: 100%;\n      text-align: center; }\n\n    .placeholder {\n      max-width: 720px;\n      margin: auto; }\n\n    //p\n    //  font-size: 1rem\n    //  line-height: 1.7\n    //  font-weight: bold\n    //  color: $grey\n    //\n    //  +respond-to-width(700)\n    //    font-size: 0.9rem\n    //  +respond-to-width(450)\n } }    //    font-size: 0.8rem\n\n\n\n// WEBPACK FOOTER //\n// ./resources/assets/sass/site/resources/assets/sass/site/pages/_error.sass","/*==========================================================================\n  Sitemap page\n  @mixin ========================================================================= */\n.sitemap {\n  ul {\n    padding-left: 40px;\n    padding-bottom: 20px;\n    font-size: 0.85em; }\n\n  >ul {\n    padding-left: 20px; }\n\n  li {\n    &:before {\n      top: 6px; }\n\n    a {\n      padding: 3px 0;\n      border-bottom-color: transparent;\n      border-bottom-style: dotted;\n      display: block;\n      &:hover {\n        border-bottom-color: rgba($black, 0.4); } } } }\n\n\n\n// WEBPACK FOOTER //\n// ./resources/assets/sass/site/resources/assets/sass/site/pages/_sitemap.sass",".shopping-cart {\n  margin-bottom: 40px; }\n\n.shopping-cart-row {\n  margin-top: 40px;\n\n  .shopping-cart-content {\n    display: inline-block;\n    vertical-align: top;\n    width: calc(100% - 240px);\n    background-color: white;\n\n    h2 {\n      margin: 0;\n      padding: 8px 10px;\n      background: $brownGreyGradient;\n      font-size: 0.6rem;\n      line-height: 1.4;\n      text-transform: uppercase;\n      @include bold;\n      color: white; }\n\n    .no-items {\n      padding: 20px 20px;\n      @include bold;\n      font-size: 0.9rem;\n      line-height: 1.4;\n      text-align: center;\n      color: black; }\n\n    .buttons {\n      border-top: 2px solid rgba($lightGrey, 0.5);\n      @include flex(flex-end, center);\n      padding: 25px 20px;\n\n      .button {\n        display: inline-block;\n        padding: 10px 15px;\n        border-radius: 8px;\n        font-size: 0.7rem;\n        line-height: 1.4;\n        text-transform: uppercase;\n        @include bold;\n\n        + .button {\n          margin-left: 20px; }\n\n        &.continue-shopping {\n          border: 1px solid rgba($darkBrown, 0.2);\n          background-color: transparent;\n          color: $darkBrown;\n\n          span {\n            position: relative;\n            top: 1px;\n            display: inline-block;\n            @include sprite(170px 56px, 13px, 13px);\n            margin-right: 5px;\n            transform: translate3d(0,0,0);\n            transition: transform 0.3s; }\n\n          &:hover {\n            span {\n              transform: translate3d(-5px,0,0); } } }\n\n        &.checkout {\n          position: relative;\n          z-index: 2;\n          background-color: transparent;\n\n          &:before, &:after {\n            content: '';\n            position: absolute;\n            z-index: -1;\n            left: 0;\n            top: 0;\n            display: block;\n            width: 100%;\n            height: 100%;\n            border-radius: 8px;\n            transition: opacity 0.3s; }\n\n          &:before {\n            opacity: 1;\n            background: $redButton; }\n\n          &:after {\n            opacity: 0;\n            background: $greyButton; }\n\n          span {\n            position: relative;\n            top: 1px;\n            display: inline-block;\n            @include sprite(170px 44px, 13px, 13px);\n            margin-left: 5px;\n            transform: translate3d(0,0,0) rotate(180deg);\n            transition: transform 0.3s; }\n\n          &:hover {\n            &:after {\n              opacity: 1; }\n\n            span {\n              transform: translate3d(5px,0,0) rotate(180deg); } } } } }\n\n    .items {\n      article {\n        position: relative;\n        font-size: 0.9rem;\n        line-height: 1.4;\n        color: $lightGrey;\n        padding: 20px 50px 20px 20px;\n        @include flex(space-between, center);\n\n        $figureSize : 120px;\n        $priceSize : 140px;\n\n        + article {\n          border-top: 2px solid rgba($lightGrey, 0.5); }\n\n        figure {\n          position: relative;\n          width: $figureSize;\n          height: $figureSize;\n\n          span {\n            position: absolute;\n            left: 0;\n            top: 0;\n            width: 100%;\n            height: 100%;\n            background: {\n              size: contain;\n              repeat: no-repeat;\n              position: center; } } }\n\n\n        .information {\n          width: calc(100% - #{$figureSize} - 70px - #{$priceSize});\n          padding: 0 20px;\n\n          h3 {\n            margin: 0;\n            color: black;\n            font-size: 0.9rem;\n            line-height: 1.4;\n            @include bold; }\n\n          p {\n            margin: 0 0 5px;\n            text-transform: uppercase;\n            color: $lighterGrey;\n            font-size: 0.6rem;\n            line-height: 1.4;\n            @include bold; }\n\n          a {\n            color: $red;\n            font-size: 0.6rem;\n            line-height: 1.4; } }\n\n\n        .units {\n          position: relative;\n          width: 70px;\n          input {\n            @include appearance(none);\n            width: 40px;\n            height: 40px;\n            @include flex(center, center);\n            padding: 5px;\n            background-color: transparent;\n            border: 1px solid rgba($lightGrey, 0.5);\n            font-size: 0.65rem;\n            line-height: 1.2;\n            text-align: center;\n            color: black;\n\n            &:-webkit-autofill, &:-webkit-autofill:hover, &:-webkit-autofill:focus, &:-webkit-autofill:active {\n              transition: 9999s background-color;\n              -webkit-text-fill-color: $greyBrown;\n              transition-delay: 9999s; }\n\n            &:focus {\n              outline-color: $lighterGrey; } }\n\n          .changer {\n            position: absolute;\n            right: 0;\n            @include flex(center, center);\n            height: 20px;\n            width: 30px;\n            background-color: $darkGrey;\n            color: white;\n            font-size: 0.8rem;\n            line-height: 1.2;\n            @include bold;\n            cursor: pointer;\n            opacity: 1;\n            transition: opacity 0.3s;\n\n            &:hover {\n              opacity: 0.8; }\n\n            &.increment {\n              top: 0;\n              background-color: $darkBrown;\n              &:before {\n                content: '+'; } }\n            &.decrement {\n              bottom: 0;\n              font-size: 1.2rem;\n              line-height: 1;\n              background-color: $darkGrey;\n              &:before {\n                position: relative;\n                top: -1px;\n                content: '-'; } } } }\n\n\n        .price {\n          margin: 0;\n          display: block;\n          width: $priceSize;\n          color: black;\n          font-size: 0.9rem;\n          line-height: 1.4;\n          @include bold;\n          text-align: right; }\n\n\n        .remove {\n          position: absolute;\n          right: 20px;\n          top: 20px;\n          display: block;\n          cursor: pointer;\n          width: 13px;\n          height: 13px;\n\n          &:before {\n            content: '';\n            display: block;\n            @include sprite(170px 19px, 13px, 13px); } } } } }\n\n  .shopping-cart-summary {\n    width: 220px;\n    margin-left: 20px;\n    display: inline-block;\n    vertical-align: top;\n\n\n    h2 {\n      margin: 0;\n      padding: 8px 10px;\n      background: $brownGreyGradient;\n      font-size: 0.6rem;\n      line-height: 1.4;\n      text-transform: uppercase;\n      @include bold;\n      color: white; }\n\n    > img {\n      width: 100%; }\n\n    .box-container {\n      padding: 30px 30px 100px 45px;\n      background: {\n        color: white;\n        image: url(\"/img/boxBg.svg\");\n        size: contain;\n        repeat: repeat-y; } }\n\n    h4 {\n      color: $red;\n      font-size: 0.65rem;\n      line-height: 1.4;\n      @include bold;\n      margin: 0 0 10px; }\n\n    .shopping-cart-amount {\n      margin: 0 0 10px;\n      color: black;\n      font-size: 0.9rem;\n      line-height: 1.4;\n      @include bold; }\n\n    .pricing {\n      padding: 0;\n      margin: 0 0 25px;\n\n      p {\n        margin: 0 0 10px;\n        position: relative;\n        @include flex(space-between, center);\n        font-size: 0.75rem;\n        line-height: 1.4;\n        color: black;\n\n        &.hidden {\n          display: none; }\n\n        strong {\n          font-size: 0.6rem;\n          text-transform: uppercase;\n          @include bold; }\n\n        &.shipping-cost {\n          strong {\n            .selected-country {\n              &:before {\n                content: attr(data-shipping-country);\n                text-decoration: underline; } } } } }\n\n\n      .no-shipping-defined {\n        position: relative;\n        margin-top: 20px;\n        text-decoration: underline;\n        cursor: pointer;\n        p {\n          margin: 0; } }\n\n      .shipping-country-pop-up {\n        position: absolute;\n        z-index: -1;\n        width: 200px;\n        height: 105px;\n        right: -20px;\n        top: -120px;\n        padding: 0 15px 15px;\n        background-color: darken(white, 5%);\n        font-size: 0.7rem;\n        line-height: 1.4;\n        color: black;\n        opacity: 0;\n        pointer-events: none;\n        box-shadow: 0 5px 10px 0 rgba(0,0,0,0.3);\n        transform: translate3d(0,10px,0);\n        transition: opacity 0.3s, transform 0.3s, z-index 0s ease 0.3s;\n\n        &:after {\n          content: '';\n          position: absolute;\n          top: 105px;\n          left: calc(50% - 8px);\n          display: block;\n          width: 0;\n          height: 0;\n          border-style: solid;\n          border-width: 8px 8px 0 8px;\n          border-color: darken(white, 5%) transparent transparent transparent; }\n\n\n        &.show {\n          z-index: 4;\n          pointer-events: all;\n          opacity: 1;\n          transform: translate3d(0,0,0);\n          transition: opacity 0.3s, transform 0.3s, z-index 0s ease 0s; }\n\n        &.select-opened {\n          height: 355px; }\n\n        >p {\n          display: block;\n          padding: 15px 0 10px;\n          font-size: 0.55rem;\n          text-transform: uppercase;\n          color: black;\n          @include bold;\n          text-align: center; }\n\n        .selectr-option.active {\n          background-color: $grey;\n          color: white;\n          @include bold; } } }\n\n\n    .checkout {\n      position: relative;\n      z-index: 2;\n      display: inline-block;\n      padding: 10px 15px;\n      background-color: transparent;\n      border-radius: 8px;\n      font-size: 0.7rem;\n      line-height: 1.4;\n      text-transform: uppercase;\n      @include bold;\n\n      &:before, &:after {\n        content: '';\n        position: absolute;\n        z-index: -1;\n        left: 0;\n        top: 0;\n        display: block;\n        width: 100%;\n        height: 100%;\n        border-radius: 8px;\n        transition: opacity 0.3s; }\n\n      &:before {\n        opacity: 1;\n        background: $redButton; }\n\n      &:after {\n        opacity: 0;\n        background: $greyButton; }\n\n      span {\n        position: relative;\n        top: 1px;\n        display: inline-block;\n        @include sprite(170px 44px, 13px, 13px);\n        margin-left: 17px;\n        transform: translate3d(0,0,0) rotate(180deg);\n        transition: transform 0.3s; }\n\n      &:hover {\n        &:after {\n          opacity: 1; }\n\n        span {\n          transform: translate3d(5px,0,0) rotate(180deg); } } }\n\n    .pay-off {\n      margin: 40px 0 0;\n      margin-top: 50px;\n      font-size: 0.65rem;\n      line-height: 1.4;\n      color: $red;\n      text-transform: uppercase;\n      @include bold;\n\n      a {\n        color: $red;\n        transition: color 0.3s;\n\n        &:hover {\n          color: black; } } }\n\n    .links {\n      margin-top: 20px;\n\n      a {\n        font-size: 0.7rem;\n        line-height: 1.4;\n        color: black;\n        text-decoration: none;\n        transition: color 0.3s;\n\n        &:hover {\n          color: rgba(black, 0.6); } } } } }\n\n\n\n// WEBPACK FOOTER //\n// ./resources/assets/sass/site/resources/assets/sass/site/pages/checkout/_shoppingCart.sass"],"sourceRoot":""}