diff --git a/css/styles.css b/css/styles.css index f2d62261e0..5f5ea173ed 100755 --- a/css/styles.css +++ b/css/styles.css @@ -421,38 +421,10 @@ header { padding-left: 20px; padding-right: 20px; } -#headlineWrapper, #quickstartButton { - margin-bottom: 40px; } - -#quickstartButton { - padding: 0 50px; } - #vendorStrip { height: 60px; line-height: 60px; font-size: 18px; } - #vendorStrip img { - max-height: 30px; - max-width: 100px; - margin-left: 50px; } - -#oceanNodes { - padding-top: 60px; - padding-bottom: 60px; } - #oceanNodes main { - margin-bottom: 60px; } - -#video { - height: 200px; } - -#features h3 { - margin-bottom: 20px; } - -#features .feature-box { - margin-bottom: 0; } - #features .feature-box > div { - width: 100%; - margin-bottom: 40px; } body { background-color: white; } @@ -463,7 +435,8 @@ section { section main, header main, footer main { position: relative; - margin: auto; } + margin: auto; + min-width: 850px; } .button { display: inline-block; @@ -503,27 +476,6 @@ header { .nav-buttons { float: right; } -#viewDocs, #tryKubernetes { - display: none; } - -#viewDocs { - border: 1px solid white; - background-color: transparent; - transition: 0.3s; } - #viewDocs:hover { - background-color: white; - color: #303030; } - -#tryKubernetes { - width: 0; - padding: 0; - margin-left: 0; - vertical-align: middle; - text-align: center; - overflow: hidden; - white-space: nowrap; - transition: 0.3s; } - #hamburger { display: inline-block; position: relative; @@ -826,11 +778,43 @@ a.mailing-list { background-color: rgba(51, 113, 227, 0.2); padding: 7.5px 10px 7.5px 10px; } #docs #encyclopedia #docsContent { + position: relative; float: right; width: calc(100% - 400px); } #docs #encyclopedia #docsContent .pageAnchor { + position: relative; + margin-top: -40px; + display: block; } + #docs #encyclopedia #docsContent h1.anchored, #docs #encyclopedia #docsContent h2.anchored, #docs #encyclopedia #docsContent h3.anchored, #docs #encyclopedia #docsContent h4.anchored, #docs #encyclopedia #docsContent h5.anchored, #docs #encyclopedia #docsContent h6.anchored { + margin-top: 80px; + margin-bottom: 30px; } + #docs #encyclopedia #docsContent h1 { + font-size: 48px; + line-height: 58px; } + #docs #encyclopedia #docsContent h2 { + font-size: 32px; + line-height: 40px; } + #docs #encyclopedia #docsContent h3 { + font-size: 28px; + line-height: 35px; } + #docs #encyclopedia #docsContent h4 { + font-size: 24px; + line-height: 30px; } + #docs #encyclopedia #docsContent h5 { + font-size: 22px; + line-height: 26px; } + #docs #encyclopedia #docsContent p { + margin-bottom: 30px; } + #docs #encyclopedia #docsContent code { display: block; - margin-bottom: 100px; } + white-space: pre; + margin: 30px 0; + padding: 30px; + background-color: #f7f7f7; + color: #303030; + font-family: monospace; + font-size: 20px; + line-height: 32px; } #docs #encyclopedia #docsContent #pageTOC li { padding: 5px 0; } #docs #encyclopedia #docsContent #pageTOC a { @@ -867,8 +851,10 @@ a.mailing-list { padding-left: 75px; } #docs #encyclopedia #docsContent .H6:before { left: 60px; } - #docs #encyclopedia #pageContent h1, #docs #encyclopedia #pageContent h2, #docs #encyclopedia #pageContent h3, #docs #encyclopedia #pageContent h4, #docs #encyclopedia #pageContent h5, #docs #encyclopedia #pageContent h6 { - padding-top: 80px; } + #docs #encyclopedia #pageContent { + position: relative; } + #docs #encyclopedia #pageContent h1, #docs #encyclopedia #pageContent h2, #docs #encyclopedia #pageContent h3, #docs #encyclopedia #pageContent h4, #docs #encyclopedia #pageContent h5, #docs #encyclopedia #pageContent h6 { + padding-top: 80px; } .fixed footer { position: fixed; @@ -877,18 +863,18 @@ a.mailing-list { @media screen and (min-width: 750px) { h1 { font-size: 60px; - line-height: 90px; } + line-height: 80px; } h2 { font-size: 42px; line-height: 60px; } h3 { - font-size: 30px; - line-height: 40px; } + font-size: 26px; + line-height: 32px; } h4 { font-size: 26px; line-height: 40px; } h5 { - font-size: 22px; + font-size: 18px; line-height: 36px; } p { font-size: 20px; @@ -900,13 +886,13 @@ a.mailing-list { width: 100%; max-width: 100%; } header { - height: 60px; } + height: 80px; } .logo { width: 120px; - height: 60px; } + height: 80px; } .nav-buttons { - height: 60px; - line-height: 60px; } + height: 80px; + line-height: 80px; } .nav-buttons .button + * { margin-left: 30px; } #hamburger { @@ -935,80 +921,15 @@ a.mailing-list { #docs #hero h1, #docs #hero h5 { padding-left: 20px; padding-right: 20px; } - #headlineWrapper, #quickstartButton { - margin-bottom: 40px; } - #quickstartButton { - padding: 0 50px; } #vendorStrip { height: 60px; line-height: 60px; font-size: 18px; } - #vendorStrip img { - max-height: 30px; - max-width: 100px; - margin-left: 50px; } - #oceanNodes { - padding-top: 60px; - padding-bottom: 60px; } - #oceanNodes main { - margin-bottom: 60px; } - #video { - height: 400px; } - #features h3 { - margin-bottom: 40px; } - #features .feature-box { - margin-bottom: 60px; } - #features .feature-box > div { - width: 45%; - margin-bottom: 0; } #docs #hero h1, #docs #hero h5 { text-align: left; } #viewDocs, #tryKubernetes { display: inline-block; } #vendorStrip { - display: block; } - #quickstartButton { - display: inline-block; } - #oceanNodes h3 { - text-align: left; } - #oceanNodes main { - position: relative; - clear: both; } - #oceanNodes main .image-wrapper { - position: absolute; - top: 50%; - max-width: 25%; - max-height: 100%; - -webkit-transform: translateY(-50%); - -ms-transform: translateY(-50%); - transform: translateY(-50%); } - #oceanNodes main:nth-child(odd) .content { - padding-right: 30%; } - #oceanNodes main:nth-child(odd) .image-wrapper { - right: 0; } - #oceanNodes main:nth-child(even) .content { - padding-left: 30%; } - #oceanNodes main:nth-child(even) .image-wrapper { - left: 0; } - #oceanNodes main:nth-child(1) .content { - padding-right: 0; } - #oceanNodes main:nth-child(1) .image-wrapper { - position: relative; - max-width: 100%; - -webkit-transform: none; - -ms-transform: none; - transform: none; } - #oceanNodes main img { - width: 100%; } - #video { - display: block; } - #video > .light-text { - display: block; } - #mobileShowVideoButton { - display: none; } - #features { - padding-bottom: 60px; } - #features .feature-box:last-child { - margin-bottom: 0; } } + display: block; } } -/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBhcnRpYWxzL19yZXNldC5zYXNzIiwicGFydGlhbHMvX3NraW4uc2FzcyIsIi4uL2Jhc2VDb21wb25lbnRzL1/PgC1iYXNlQ29tcG9uZW50cy5zYXNzIiwiLi4vbW9kdWxlcy/PgC1hY2NvcmRpb24vX8+ALWFjY29yZGlvbi5zYXNzIiwiLi4vbW9kdWxlcy/PgC1kaWFsb2cvX8+ALWRpYWxvZy5zYXNzIiwiLi4vbW9kdWxlcy/PgC1wdXNobWVudS9fz4AtcHVzaG1lbnUuc2FzcyIsInBhcnRpYWxzL19zaXplLnNhc3MiLCJtZWRpYVF1ZXJpZXMvX2Jhc2Uuc2FzcyIsIm1lZGlhUXVlcmllcy9fdGFibGV0LnNhc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDQyxVQUFVO0VBQ1YsV0FBVyxFQUFHOztBQUdmO0VBQ0MsY0FBYyxFQUFHOztBQUVsQjtFQUNDLGdCQUFnQixFQUFHOztBQUVwQjtFQUNDLGlCQUFpQixFQUFHOztBQUVyQjtFQUNDLFVBQVU7RUFDVixXQUFXLEVBQUc7O0FBRWY7RUFDQyxzQkFBc0IsRUFBRzs7QUFHMUI7RUFDQyxlQUFlO0VBQ2YsWUFBWSxFQUFHOztBQUVoQjtFQUNDLGFBQWEsRUFBRzs7QUFFakI7RUFDQyxhQUFhLEVBQUc7O0FBRWpCO0VBQ0MsWUFBWSxFQUFHOztBQUVoQjtFQUNDLG1CQUFtQixFQUFHOztBQzVCdkI7RUFDQyx1QkFBdUI7RUFDdkIsa0NBTDhCO0VBTTlCLGlCQUFpQjtFQUNqQixVQUFVO0VBQ1YsVUFBVSxFQUFHOztBQUVkO0VBQ0Msa0NBWDhCLEVBV0w7O0FBRTFCO0VBQ0MsaUJBQWlCLEVBQUc7O0FBRXJCO0VBQ0MsaUJBQWlCLEVBQUc7O0FDdEJyQjtFQUNDLGlCQUFpQixFQUFHOztBQU1yQjtFQUlDLG1CQUFtQjtFQUNuQixVQUFVO0VBQ1YsWUFBWTtFQUNaLFlBTnlCO0VBT3pCLGFBUHlCO0VBUXpCLFVBQVUsRUFrQnNCO0VBM0JqQztJQVlFLFlBQVk7SUFDWixtQkFBbUI7SUFDbkIs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QixFRlNPO0lBTmpDO01BS0UsWUVOZTtNRk9mLGdCRU5tQixFRk1VO0VBRS9CO0lBQ0MsYUVQbUIsRUZPTTtFQUUxQjtJQUNDLGFFUmlCO0lGU2pCLGFFWG1CLEVGV007RUFFMUI7SUFDQyxhRWRtQjtJRmVuQixrQkVmbUIsRUZrQndCO0lBTDVDO01BS0Usa0JFZDRCLEVGY1k7RUFFMUM7SUFDQyxZRWZvQjtJRmdCcEIsYUVoQm9CLEVGZ0JNO0VBRTNCO0lBQ0Msc0JFZjhCLEVGbUNrQjtJQXJCakQ7TUFJRSxtQkVqQjZCLEVGaUJlO0lBSjlDO01BT0UscUJFbkIrQixFRm1CYTtJQVA5QztNQVVFLFdFckJpQixFRnFCTztJQVYxQjtNQWFFLDJCRXZCZ0MsRUZ1Qlk7SUFiOUM7TUFnQkUsaUJFekJxQyxFRnlCVztJQWhCbEQ7TUFtQkUsYUUzQjhCO01GNEI5QixrQkU1QjhCO01GNkI5QixnQkU1Qm1DLEVGNEJVO0VBRS9DO0lBRUUsa0JFN0M0QixFRjZDWTtFQUUxQztJQUNDLGtCRS9Cc0IsRUYrQlc7RUFFbEM7SUFHRyxtQkU5RHVCO0lGK0R2QixvQkUvRHVCLEVGK0RlO0VBRXpDO0lBQ0Msb0JFdkNvQyxFRnVDYTtFQUVsRDtJQUNDLGdCRXpDaUMsRUZ5Q0s7RUFFdkM7SUFDQyxhRTNDeUI7SUY0Q3pCLGtCRTVDeUI7SUY2Q3pCLGdCRTVDNEIsRUZpRG9CO0lBUmpEO01BTUUsaUJFOUNnQztNRitDaEMsaUJFOUNnQztNRitDaEMsa0JFOUNpQyxFRjhDWTtFQUUvQztJQUNDLGtCRTlDMkI7SUYrQzNCLHFCRS9DMkIsRUZrRGdCO0lBTDVDO01BS0Usb0JFbEQwQixFRmtEYztFQUcxQztJQUNDLGNFaEQyQixFRmdESztFQUdqQztJQUVFLG9CRWxEOEIsRUZrRGM7RUFGOUM7SUFLRSxvQkVwRDhCLEVGd0RxQjtJQVRyRDtNQVFHLFdFckR3QjtNRnNEeEIsaUJFdkQ4QixFRnVEa0I7RUUzQ2xEO0lBRUUsaUJBQWlCLEVBQUc7RUFFdEI7SUFDQyxzQkFBc0IsRUFBRztFQUUxQjtJQUNDLGVBQWUsRUFBRztFQUVuQjtJQUNDLHNCQUFzQixFQUFHO0VBRzFCO0lBRUUsaUJBQWlCLEVBQUc7RUFGdEI7SUFLRSxtQkFBbUI7SUFDbkIsWUFBWSxFQWlDTTtJQXZDcEI7TUFTRyxtQkFBbUI7TUFDbkIsU0FBUztNQUNULGVBQWU7TUFDZixpQkFBaUI7TUFDakIsb0NBQXFCO1VBQXJCLGdDQUFxQjtjQUFyQiw0QkFBcUIsRUFBUztJQWJqQztNQWlCSSxtQkFBbUIsRUFBRztJQWpCMUI7TUFvQkksU0FBUyxFQUFHO0lBcEJoQjtNQXdCSSxrQkFBa0IsRUFBRztJQXhCekI7TUEyQkksUUFBUSxFQUFHO0lBM0JmO01BK0JJLGlCQUFpQixFQUFHO0lBL0J4QjtNQWtDSSxtQkFBbUI7TUFDbkIsZ0JBQWdCO01BQ2hCLHdCQUFnQjtVQUFoQixvQkFBZ0I7Y0FBaEIsZ0JBQWdCLEVBQUc7SUFwQ3ZCO01BdUNHLFlBQVksRUFBRztFQUdsQjtJQUNDLGVBQWUsRUFHTTtJQUp0QjtNQUlFLGVBQWUsRUFBRztFQUVwQjtJQUNDLGNBQWMsRUFBRztFQUVsQjtJQUNDLHFCQUFxQixFQUlLO0lBTDNCO01BS0csaUJBQWlCLEVBQUcsRUFBQSIsImZpbGUiOiJzdHlsZXMuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiaHRtbCwgYm9keSB7XG5cdG1hcmdpbjogMDtcblx0cGFkZGluZzogMDsgfVxuXG5cbmlucHV0LCBidXR0b24ge1xuXHRvdXRsaW5lOiBub25lOyB9XG5cbmJ1dHRvbiB7XG5cdGN1cnNvcjogcG9pbnRlcjsgfVxuXG51bCwgbGkge1xuXHRsaXN0LXN0eWxlOiBub25lOyB9XG5cbnVsIHtcblx0bWFyZ2luOiAwO1xuXHRwYWRkaW5nOiAwOyB9XG5cbmEge1xuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cblxuLy8gQ09OVkVOSUVOQ0Vcbi5jbGVhciB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRjbGVhcjogYm90aDsgfVxuXG4ubGlnaHQtdGV4dCB7XG5cdGNvbG9yOiB3aGl0ZTsgfVxuXG4ucmlnaHQge1xuXHRmbG9hdDogcmlnaHQ7IH1cblxuLmxlZnQge1xuXHRmbG9hdDogbGVmdDsgfVxuXG4uY2VudGVyIHtcblx0dGV4dC1hbGlnbjogY2VudGVyOyB9XG5cblxuLy9taXhpbnNcbkBtaXhpbiBwdXJlQ2VudGVyKCRsZWZ0OiA1MCUsICR0b3A6IDUwJSkge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogJHRvcDtcblx0bGVmdDogJGxlZnQ7XG5cdHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOyB9XG5cblxuQG1peGluIG1haW50YWluLWFzcGVjdC1yYXRpbyAoJHdpZHRoLWZhY3RvcjogMTYsICRoZWlnaHQtZmFjdG9yOiA5LCAkdGFyZ2V0LXdpZHRoOiA4MHZ3LCAkdGFyZ2V0LWhlaWdodDogODB2aCkge1xuXHR3aWR0aDogJHRhcmdldC13aWR0aDtcblx0aGVpZ2h0OiAkdGFyZ2V0LXdpZHRoICogKCRoZWlnaHQtZmFjdG9yIC8gJHdpZHRoLWZhY3Rvcik7XG5cdG1heC13aWR0aDogJHRhcmdldC1oZWlnaHQgKiAoJHdpZHRoLWZhY3RvciAvICRoZWlnaHQtZmFjdG9yKTtcblx0bWF4LWhlaWdodDogJHRhcmdldC1oZWlnaHQ7IH1cblxuIiwiJGJsdWU6ICMzMzcxZTM7XG4kbGlnaHQtZ3JleTogI2Y3ZjdmNztcbiRkYXJrLWdyZXk6ICMzMDMwMzA7XG4kbWVkaXVtLWdyZXk6ICM0YzRjNGM7XG5cbiRiYXNlRm9udDogJ1JvYm90bycsIHNhbnMtc2VyaWY7XG5cblxuKiwgLmJ1dHRvbiB7XG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdGZvbnQtZmFtaWx5OiAkYmFzZUZvbnQ7XG5cdGJhY2tncm91bmQ6IG5vbmU7XG5cdG1hcmdpbjogMDtcblx0Ym9yZGVyOiAwOyB9XG5cbmJvZHkge1xuXHRmb250LWZhbWlseTogJGJhc2VGb250OyB9XG5cbmgxLCBoMiwgaDUsIHAge1xuXHRmb250LXdlaWdodDogMzAwOyB9XG5cbmgzLCBoNCB7XG5cdGZvbnQtd2VpZ2h0OiA0MDA7IH1cbiIsImJvZHkub3ZlcmxheS1vbiB7XG5cdG92ZXJmbG93OiBoaWRkZW47IH1cblxuXG4kYXdlc29tZS1ncmVlbjogIzAwZmY5OTtcblxuLy8gbW9kYWwgY2xvc2UgYnV0dG9uXG4ucGktbW9kYWwtY2xvc2UtYnV0dG9uIHtcblx0JGJ1dHRvbi1zaWRlLWxlbmd0aDogMzZweDtcblx0JGh5cG90ZW51c2UtbGVuZ3RoOiA1MC45MTE2ODgyNDU0MzE0MnB4O1xuXG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiA1MHB4O1xuXHRyaWdodDogNTBweDtcblx0d2lkdGg6ICRidXR0b24tc2lkZS1sZW5ndGg7XG5cdGhlaWdodDogJGJ1dHRvbi1zaWRlLWxlbmd0aDtcblx0Ym9yZGVyOiAwO1xuXG5cdCY6YmVmb3JlLCAmOmFmdGVyIHtcblx0XHRjb250ZW50OiBcIlwiO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR0b3A6IDA7XG5cdFx0d2lkdGg6ICRoeXBvdGVudXNlLWxlbmd0aDtcblx0XHRoZWlnaHQ6IDJweDtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsgfVxuXG5cdCY6YmVmb3JlIHtcblx0XHRsZWZ0OiAwO1xuXHRcdHRyYW5zZm9ybS1vcmlnaW46IHRvcCBsZWZ0O1xuXHRcdHRyYW5zZm9ybTogcm90YXRlWig0NWRlZyk7IH1cblxuXHQmOmFmdGVyIHtcblx0XHRyaWdodDogMDtcblx0XHR0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgcmlnaHQ7XG5cdFx0dHJhbnNmb3JtOiByb3RhdGVaKC00NWRlZyk7IH0gfVxuXG4vLyBtb2RhbCBvdmVybGF5XG4ucGktbW9kYWwtb3ZlcmxheSB7XG5cdHBvc2l0aW9uOiBmaXhlZDtcblx0dG9wOiAwO1xuXHRsZWZ0OiAwO1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xuXHRjb2xvcjogd2hpdGU7XG5cdGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44KTtcblx0ZGlzcGxheTogbm9uZTtcblx0b3BhY2l0eTogMDtcblx0dHJhbnNpdGlvbjogMC4zcztcblxuXHQmLm9uIHtcblx0XHRvcGFjaXR5OiAxOyB9IH1cblxuLy8gbXVsdGlGcmFtZURpc3BsYXlcbi5waS1tdWx0aS1mcmFtZS1kaXNwbGF5IHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR3aWR0aDogODB2dztcblx0aGVpZ2h0OiA4MHZoO1xuXHRtYXJnaW46IDEwdmggYXV0bztcblxuXHQuaXRlbS13cmFwcGVyIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0aGVpZ2h0OiAxMDAlOyB9XG5cblx0Lml0ZW0ge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR0b3A6IDUwJTtcblx0XHRsZWZ0OiA1MCU7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG5cdFx0ZGlzcGxheTogbm9uZTtcblxuXHRcdCYub24ge1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7IH0gfVxuXG5cdC5wYWdlciB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGJvdHRvbTogMTAlO1xuXHRcdGxlZnQ6IDA7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuXHRcdC5wYWdlci1idXR0b24ge1xuXHRcdFx0d2lkdGg6IDIwcHg7XG5cdFx0XHRoZWlnaHQ6IDIwcHg7XG5cdFx0XHRib3JkZXItcmFkaXVzOiA1MCU7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcblx0XHRcdGJvcmRlcjogMDtcblx0XHRcdG1hcmdpbjogMCAxMHB4O1xuXHRcdFx0dHJhbnNpdGlvbjogMC4zcztcblxuXHRcdFx0Ji55YWgge1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkYXdlc29tZS1ncmVlbjsgfSB9IH1cblxuXHQkcHJldi1uZXh0LWJvcmRlci1zdHlsZTogMXB4IHNvbGlkO1xuXHQucHJldi1idXR0b24sIC5uZXh0LWJ1dHRvbiB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHRvcDogNTAlO1xuXHRcdHdpZHRoOiAzMHB4O1xuXHRcdGhlaWdodDogMzBweDtcblx0XHRib3JkZXI6IDA7XG5cdFx0Ym9yZGVyLWNvbG9yOiAkYXdlc29tZS1ncmVlbjtcblx0XHR6LWluZGV4OiAzO1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGVaKDQ1ZGVnKTtcblx0XHR0cmFuc2l0aW9uOiAwLjNzO1xuXG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRib3JkZXItY29sb3I6IHJlZDsgfSB9XG5cblx0LnByZXYtYnV0dG9uIHtcblx0XHRsZWZ0OiAzMHB4O1xuXHRcdGJvcmRlci1ib3R0b206ICRwcmV2LW5leHQtYm9yZGVyLXN0eWxlO1xuXHRcdGJvcmRlci1sZWZ0OiAkcHJldi1uZXh0LWJvcmRlci1zdHlsZTsgfVxuXG5cdC5uZXh0LWJ1dHRvbiB7XG5cdFx0cmlnaHQ6IDMwcHg7XG5cdFx0Ym9yZGVyLXRvcDogJHByZXYtbmV4dC1ib3JkZXItc3R5bGU7XG5cdFx0Ym9yZGVyLXJpZ2h0OiAkcHJldi1uZXh0LWJvcmRlci1zdHlsZTsgfSB9XG5cbiIsIi5waS1hY2NvcmRpb24ge1xuXHRtYXJnaW4tbGVmdDogLTIwcHg7XG5cblx0LmNvbnRhaW5lciB7XG5cdFx0cGFkZGluZy1sZWZ0OiAyMHB4OyB9XG5cblx0Lml0ZW0ge1xuXHRcdG92ZXJmbG93OiBoaWRkZW47IH1cblxuXHQudGl0bGUge1xuXHRcdGNvbG9yOiAkZGFyay1ncmV5O1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRwYWRkaW5nOiA1cHggMTBweCAxMHB4IDIwcHg7XG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdHRyYW5zaXRpb246IDAuM3M7XG5cblx0XHQmOmhvdmVyIHtcblx0XHRcdGNvbG9yOiAkYmx1ZTsgfSB9XG5cblx0YS5pdGVtID4gLnRpdGxlIHtcblx0XHRjb2xvcjogYmxhY2s7XG5cdFx0cGFkZGluZy1sZWZ0OiAwO1xuXG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRjb2xvcjogJGJsdWU7IH0gfVxuXG5cdGRpdi5pdGVtID4gLnRpdGxlIHtcblx0XHRmb250LXdlaWdodDogNzAwO1xuXG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0Y29udGVudDogXCJcIjtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHRvcDogOXB4O1xuXHRcdFx0bGVmdDogMnB4O1xuXHRcdFx0Ym9yZGVyLXN0eWxlOiBzb2xpZDtcblx0XHRcdGJvcmRlci13aWR0aDogNXB4IDAgNXB4IDhweDtcblx0XHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJGJsdWU7XG5cdFx0XHR0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcblx0XHRcdHRyYW5zaXRpb246IDAuM3M7IH0gfVxuXG5cdC53cmFwcGVyIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0dHJhbnNpdGlvbjogMC4zczsgfVxuXG5cdC5jb250ZW50IHtcblx0XHRwYWRkaW5nLWxlZnQ6IDIwcHg7XG5cdFx0b3BhY2l0eTogMDtcblx0XHR0cmFuc2l0aW9uOiAwLjNzO1xuXHRcdHBhZGRpbmctYm90dG9tOiAyMHB4OyB9XG5cblx0Lml0ZW0ub24ge1xuXHRcdCYgPiAudGl0bGU6YmVmb3JlIHtcblx0XHRcdHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTsgfVxuXG5cdFx0JiA+IC53cmFwcGVyID4gLmNvbnRlbnQge1xuXHRcdFx0b3BhY2l0eTogMTsgfSB9IH1cblxuIiwiJGF3ZXNvbWUtZ3JlZW46ICMwMGZmOTk7XG5cbi5waS1kaWFsb2cge1xuXG5cdC5kaWFsb2ctYm94IHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0dG9wOiA1MCU7XG5cdFx0bGVmdDogNTAlO1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOyB9XG5cblx0LnRpdGxlIHtcblx0XHRmb250LXNpemU6IDM2cHg7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdHBhZGRpbmc6IDMwcHggMDsgfVxuXG5cdC5jb250ZW50LWJveCB7XG5cdFx0Y29sb3I6ICMyMjI7XG5cdFx0bWF4LXdpZHRoOiA2MDBweDtcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXG5cdFx0LmNvbnRlbnQge1xuXHRcdFx0cGFkZGluZzogMzBweDtcblx0XHRcdGJvcmRlci1yYWRpdXM6IDRweDtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6IHdoaXRlOyB9XG5cblx0XHQuYnV0dG9ucyB7XG5cdFx0XHRib3JkZXItdG9wOiAxcHggc29saWQgYmxhY2s7XG5cdFx0XHR0ZXh0LWFsaWduOiByaWdodDtcblx0XHRcdG1hcmdpbi10b3A6IDMwcHg7XG5cblx0XHRcdGJ1dHRvbiB7XG5cdFx0XHRcdGNvbG9yOiAkYXdlc29tZS1ncmVlbjtcblx0XHRcdFx0Ym9yZGVyLWNvbG9yOiAkYXdlc29tZS1ncmVlbjtcblx0XHRcdFx0Ym9yZGVyLXJhZGl1czogNHB4O1xuXHRcdFx0XHR0cmFuc2l0aW9uOiAwLjNzO1xuXG5cdFx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRhd2Vzb21lLWdyZWVuO1xuXHRcdFx0XHRcdGNvbG9yOiBibGFjazsgfSB9IH0gfSB9XG4iLCIucGktcHVzaG1lbnUge1xuXHRkaXNwbGF5OiBub25lO1xuXHRwb3NpdGlvbjogZml4ZWQ7XG5cdHRvcDogMDtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMTAwJTtcblx0b3BhY2l0eTogMDtcblx0dHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuXG5cdCYub24ge1xuXHRcdG9wYWNpdHk6IDE7IH1cblxuXHQub3ZlcmxheSB7XG5cdFx0cG9zaXRpb246IGZpeGVkO1xuXHRcdHRvcDogMDtcblx0XHRsZWZ0OiAwO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGhlaWdodDogMTAwJTtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNCk7IH1cblxuXHQuc2xlZCB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHRvcDogMDtcblx0XHR3aWR0aDogMDtcblx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG5cdFx0b3ZlcmZsb3c6IGF1dG87XG5cdFx0dHJhbnNpdGlvbjogd2lkdGggMC4zczsgfVxuXG5cdCYub24gLnNsZWQge1xuXHRcdHdpZHRoOiAzMjBweDsgfVxuXG5cdC50b3AtYmFyIHtcblx0XHRoZWlnaHQ6IDA7XG5cdFx0bGluZS1oZWlnaHQ6IDYwcHg7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogIzQ0NDsgfVxuXG5cdC5waS1tb2RhbC1jbG9zZS1idXR0b24ge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR0b3A6IDEwcHg7XG5cdFx0cmlnaHQ6IDEwcHg7XG5cdFx0ei1pbmRleDogMTtcblxuXHRcdCY6YmVmb3JlLCAmOmFmdGVyIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICMyMjIyMjI7IH0gfVxuXG5cblx0dWwge1xuXHRcdHBhZGRpbmc6IDAgNjBweCAwIDIwcHg7IH1cblx0bGkge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR3aWR0aDogMTAwJTtcblx0XHRtaW4taGVpZ2h0OiA0NHB4OyB9XG5cblx0YSB7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGhlaWdodDogNDRweDtcblx0XHRsaW5lLWhlaWdodDogNDRweDtcblx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHRmb250LXNpemU6IDIwcHg7XG5cdFx0Y29sb3I6ICRibHVlOyB9XG5cblx0LmJ1dHRvbiB7XG5cdFx0YmFja2dyb3VuZDogbm9uZTtcblx0XHRwYWRkaW5nOiAwOyB9XG5cblxuXG5cdHVsIHVsIHtcblx0XHRwYWRkaW5nOiAwIDIwcHg7XG5cblx0XHRsaSB7XG5cdFx0XHRtaW4taGVpZ2h0OiA0MHB4OyB9XG5cblx0XHRhIHtcblx0XHRcdGhlaWdodDogNDBweDtcblx0XHRcdGxpbmUtaGVpZ2h0OiA0MHB4O1xuXHRcdFx0Zm9udC1zaXplOiAxOHB4O1xuXHRcdFx0Y29sb3I6IGxpZ2h0ZW4oIzIyMjIyMiwgMjAlKTsgfSB9IH1cbiIsImgxIHtcblx0Zm9udC1zaXplOiAkaDEtZm9udC1zaXplO1xuXHRsaW5lLWhlaWdodDogJGgxLWxpbmUtaGVpZ2h0OyB9XG5cbmgyIHtcblx0Zm9udC1zaXplOiAkaDItZm9udC1zaXplO1xuXHRsaW5lLWhlaWdodDogJGgyLWxpbmUtaGVpZ2h0OyB9XG5cbmgzIHtcblx0Zm9udC1zaXplOiAkaDMtZm9udC1zaXplO1xuXHRsaW5lLWhlaWdodDogJGgzLWxpbmUtaGVpZ2h0OyB9XG5cbmg0IHtcblx0Zm9udC1zaXplOiAkaDQtZm9udC1zaXplO1xuXHRsaW5lLWhlaWdodDogJGg0LWxpbmUtaGVpZ2h0OyB9XG5cbmg1IHtcblx0Zm9udC1zaXplOiAkaDUtZm9udC1zaXplO1xuXHRsaW5lLWhlaWdodDogJGg1LWxpbmUtaGVpZ2h0OyB9XG5cbnAge1xuXHRmb250LXNpemU6ICRwLWZvbnQtc2l6ZTtcblx0bGluZS1oZWlnaHQ6ICRwLWxpbmUtaGVpZ2h0OyB9XG5cbnNlY3Rpb24sIGhlYWRlciwgZm9vdGVyLCAjdmVuZG9yU3RyaXAge1xuXHRwYWRkaW5nLWxlZnQ6ICRmdWxsLXdpZHRoLXBhZGRpbmdYO1xuXHRwYWRkaW5nLXJpZ2h0OiAkZnVsbC13aWR0aC1wYWRkaW5nWDtcblxuXHRtYWluIHtcblx0XHR3aWR0aDogJG1haW4td2lkdGg7XG5cdFx0bWF4LXdpZHRoOiAkbWFpbi1tYXgtd2lkdGg7IH0gfVxuXG5oZWFkZXIge1xuXHRoZWlnaHQ6ICRoZWFkZXItaGVpZ2h0OyB9XG5cbi5sb2dvIHtcblx0d2lkdGg6ICRsb2dvLXdpZHRoO1xuXHRoZWlnaHQ6ICRoZWFkZXItaGVpZ2h0OyB9XG5cbi5uYXYtYnV0dG9ucyB7XG5cdGhlaWdodDogJGhlYWRlci1oZWlnaHQ7XG5cdGxpbmUtaGVpZ2h0OiAkaGVhZGVyLWhlaWdodDtcblxuXHQuYnV0dG9uICsgKiB7XG5cdFx0bWFyZ2luLWxlZnQ6ICRuYXYtYnV0dG9ucy1tYXJnaW4tbGVmdDsgfSB9XG5cbiNoYW1idXJnZXIge1xuXHR3aWR0aDogJGhhbWJ1cmdlci1zaXplO1xuXHRoZWlnaHQ6ICRoYW1idXJnZXItc2l6ZTsgfVxuXG4jbWFpbk5hdiB7XG5cdHBhZGRpbmc6ICRtYWluLW5hdi1wYWRkaW5nO1xuXG5cdGg1IHtcblx0XHRtYXJnaW4tYm90dG9tOiAkbWFpbi1uYXYtaDUtbWFyZ2luLWJvdHRvbTsgfVxuXG5cdGgzIHtcblx0XHRtYXJnaW4tYm90dG9tOiAkbWFpbi1uYXYtaDMtbWFyZ2luLWJvdHRvbTsgfVxuXG5cdC5uYXYtYm94IHtcblx0XHR3aWR0aDogJG5hdi1ib3gtd2lkdGg7IH1cblxuXHQubmF2LWJveCArIC5uYXYtYm94IHtcblx0XHRtYXJnaW4tbGVmdDogJG5hdi1ib3gtc2libGluZy1tYXJnaW4tbGVmdDsgfVxuXG5cdG1haW4gKyBtYWluIHtcblx0XHRtYXJnaW4tdG9wOiAkbWFpbi1uYXYtbWFpbi1zaWJsaW5nLW1hcmdpbi10b3A7IH1cblxuXHQubGVmdCAuYnV0dG9uIHtcblx0XHRoZWlnaHQ6ICRtYWluLW5hdi1sZWZ0LWJ1dHRvbi1zaXplO1xuXHRcdGxpbmUtaGVpZ2h0OiAkbWFpbi1uYXYtbGVmdC1idXR0b24tc2l6ZTtcblx0XHRmb250LXNpemU6ICRtYWluLW5hdi1sZWZ0LWJ1dHRvbi1mb250LXNpemU7IH0gfVxuXG4ub3Blbi1uYXYsIC55LWVub3VnaCB7XG5cdCN0cnlLdWJlcm5ldGVzIHtcblx0XHRtYXJnaW4tbGVmdDogJG5hdi1idXR0b25zLW1hcmdpbi1sZWZ0OyB9IH1cblxuI2hlcm8ge1xuXHRwYWRkaW5nLXRvcDogJGhlcm8tcGFkZGluZy10b3A7IH1cblxuI2RvY3Mge1xuXHQjaGVybyB7XG5cdFx0aDEsIGg1IHtcblx0XHRcdHBhZGRpbmctbGVmdDogJGZ1bGwtd2lkdGgtcGFkZGluZ1g7XG5cdFx0XHRwYWRkaW5nLXJpZ2h0OiAkZnVsbC13aWR0aC1wYWRkaW5nWDsgfSB9IH1cblxuI2hlYWRsaW5lV3JhcHBlciwgI3F1aWNrc3RhcnRCdXR0b24ge1xuXHRtYXJnaW4tYm90dG9tOiAkaGVhZGxpbmUtd3JhcHBlci1tYXJnaW4tYm90dG9tOyB9XG5cbiNxdWlja3N0YXJ0QnV0dG9uIHtcblx0cGFkZGluZzogJHF1aWNrc3RhcnQtYnV0dG9uLXBhZGRpbmc7IH1cblxuI3ZlbmRvclN0cmlwIHtcblx0aGVpZ2h0OiAkdmVuZG9yLXN0cmlwLWhlaWdodDtcblx0bGluZS1oZWlnaHQ6ICR2ZW5kb3Itc3RyaXAtaGVpZ2h0O1xuXHRmb250LXNpemU6ICR2ZW5kb3Itc3RyaXAtZm9udC1zaXplO1xuXG5cdGltZyB7XG5cdFx0bWF4LWhlaWdodDogJHZlbmRvci1zdHJpcC1pbWctbWF4LWhlaWdodDtcblx0XHRtYXgtd2lkdGg6ICR2ZW5kb3Itc3RyaXAtaW1nLW1heC13aWR0aDtcblx0XHRtYXJnaW4tbGVmdDogJHZlbmRvci1zdHJpcC1pbWctbWFyZ2luLWxlZnQ7IH0gfVxuXG4jb2NlYW5Ob2RlcyB7XG5cdHBhZGRpbmctdG9wOiAkb2NlYW4tbm9kZXMtcGFkZGluZy1ZO1xuXHRwYWRkaW5nLWJvdHRvbTogJG9jZWFuLW5vZGVzLXBhZGRpbmctWTtcblxuXHRtYWluIHtcblx0XHRtYXJnaW4tYm90dG9tOiAkb2NlYW4tbm9kZXMtcGFkZGluZy1ZOyB9IH1cblxuXG4jdmlkZW8ge1xuXHRoZWlnaHQ6ICR2aWRlby1zZWN0aW9uLWhlaWdodDsgfVxuXG5cbiNmZWF0dXJlcyB7XG5cdGgzIHtcblx0XHRtYXJnaW4tYm90dG9tOiAkZmVhdHVyZXMtaDMtbWFyZ2luLWJvdHRvbTsgfVxuXG5cdC5mZWF0dXJlLWJveCB7XG5cdFx0bWFyZ2luLWJvdHRvbTogJGZlYXR1cmUtYm94LW1hcmdpbi1ib3R0b207XG5cblx0XHQmID4gZGl2IHtcblx0XHRcdHdpZHRoOiAkZmVhdHVyZS1ib3gtZGl2LXdpZHRoO1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogJGZlYXR1cmUtYm94LWRpdi1tYXJnaW4tYm90dG9tOyB9IH0gfVxuXG4iLCJAaW1wb3J0IFwiLi4vcGFydGlhbHMvcmVzZXRcIjtcblxuLy8gVEVYVFxuJGgxLWZvbnQtc2l6ZTogNDBweDtcbiRoMS1saW5lLWhlaWdodDogNTBweDtcblxuJGgyLWZvbnQtc2l6ZTogNDJweDtcbiRoMi1saW5lLWhlaWdodDogNjBweDtcblxuJGgzLWZvbnQtc2l6ZTogMjZweDtcbiRoMy1saW5lLWhlaWdodDogMzJweDtcblxuJGg0LWZvbnQtc2l6ZTogMjZweDtcbiRoNC1saW5lLWhlaWdodDogNDBweDtcblxuJGg1LWZvbnQtc2l6ZTogMThweDtcbiRoNS1saW5lLWhlaWdodDogMzZweDtcblxuJHAtZm9udC1zaXplOiAyMHB4O1xuJHAtbGluZS1oZWlnaHQ6IDI4cHg7XG5cblxuLy8gaGVhZGVyXG4kZnVsbC13aWR0aC1wYWRkaW5nWDogMjBweDtcblxuJG1haW4td2lkdGg6IDEwMCU7XG4kbWFpbi1tYXgtd2lkdGg6IDEwMCU7XG5cbiRoZWFkZXItaGVpZ2h0OiA4MHB4O1xuXG4kbG9nby13aWR0aDogMTIwcHg7XG5cbiRuYXYtYnV0dG9ucy1tYXJnaW4tbGVmdDogMzBweDtcblxuJGhhbWJ1cmdlci1zaXplOiA1MHB4O1xuXG5cbi8vIG1haW4gbmF2XG4kbWFpbi1uYXYtcGFkZGluZzogMTQwcHggMCAzMHB4O1xuJG1haW4tbmF2LWg1LW1hcmdpbi1ib3R0b206IDFlbTtcbiRtYWluLW5hdi1oMy1tYXJnaW4tYm90dG9tOiAwLjZlbTtcbiRuYXYtYm94LXdpZHRoOiAyMCU7XG4kbmF2LWJveC1zaWJsaW5nLW1hcmdpbi1sZWZ0OiBjYWxjKDIwJSAvIDMpO1xuJG1haW4tbmF2LW1haW4tc2libGluZy1tYXJnaW4tdG9wOiA2MHB4O1xuJG1haW4tbmF2LWxlZnQtYnV0dG9uLXNpemU6IDUwcHg7XG4kbWFpbi1uYXYtbGVmdC1idXR0b24tZm9udC1zaXplOiAxOHB4O1xuXG5cbi8vIGhlcm9cbiRoZXJvLXBhZGRpbmctdG9wOiA4MHB4O1xuJGhlYWRsaW5lLXdyYXBwZXItbWFyZ2luLWJvdHRvbTogNDBweDtcbiRxdWlja3N0YXJ0LWJ1dHRvbi1wYWRkaW5nOiAwIDUwcHg7XG4kdmVuZG9yLXN0cmlwLWhlaWdodDogNjBweDtcbiR2ZW5kb3Itc3RyaXAtZm9udC1zaXplOiAxOHB4O1xuJHZlbmRvci1zdHJpcC1pbWctbWF4LWhlaWdodDogMzBweDtcbiR2ZW5kb3Itc3RyaXAtaW1nLW1heC13aWR0aDogMTAwcHg7XG4kdmVuZG9yLXN0cmlwLWltZy1tYXJnaW4tbGVmdDogNTBweDtcblxuXG4vLyBvY2VhbiBub2Rlc1xuJG9jZWFuLW5vZGVzLXBhZGRpbmctWTogNjBweDtcbiRvY2Vhbi1ub2Rlcy1tYWluLW1hcmdpbi1ib3R0b206IDYwcHg7XG4kb2NlYW4tbm9kZXMtaDMtbWFyZ2luLWJvdHRvbTogMzBweDtcblxuXG4vLyB2aWRlb1xuJHZpZGVvLXNlY3Rpb24taGVpZ2h0OiAyMDBweDtcblxuLy8gZmVhdHVyZXNcbiRmZWF0dXJlcy1oMy1tYXJnaW4tYm90dG9tOiAyMHB4O1xuJGZlYXR1cmUtYm94LWRpdi13aWR0aDogMTAwJTtcbiRmZWF0dXJlLWJveC1tYXJnaW4tYm90dG9tOiAwO1xuJGZlYXR1cmUtYm94LWRpdi1tYXJnaW4tYm90dG9tOiA0MHB4O1xuXG5cbi8vIHRhbGsgdG8gdXNcblxuXG5cbkBpbXBvcnQgXCIuLi9wYXJ0aWFscy9zaXplXCI7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuYm9keSB7XG5cdGJhY2tncm91bmQtY29sb3I6IHdoaXRlOyB9XG5cbnNlY3Rpb24ge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdGJhY2tncm91bmQtY29sb3I6IHdoaXRlOyB9XG5cbnNlY3Rpb24sIGhlYWRlciwgZm9vdGVyIHtcblx0bWFpbiB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdG1hcmdpbjogYXV0bzsgfSB9XG5cbi5idXR0b24ge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdGJvcmRlci1yYWRpdXM6IDZweDtcblx0cGFkZGluZzogMCAyMHB4O1xuXHRsaW5lLWhlaWdodDogNDBweDtcblx0Y29sb3I6IHdoaXRlO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkYmx1ZTtcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbiNjZWxsb3BoYW5lIHtcblx0cG9zaXRpb246IGZpeGVkO1xuXHR0b3A6IDA7XG5cdGxlZnQ6IDA7XG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IDEwMCU7XG5cdGRpc3BsYXk6IG5vbmU7IH1cblxuXG4vLyBIRUFERVJcbmhlYWRlciB7XG5cdHBvc2l0aW9uOiBmaXhlZDtcblx0dG9wOiAwO1xuXHRsZWZ0OiAwO1xuXHR3aWR0aDogMTAwJTtcblx0ei1pbmRleDogODg4ODtcblx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdGJveC1zaGFkb3c6IDAgMCAwIHRyYW5zcGFyZW50O1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHR0cmFuc2l0aW9uOiAwLjNzOyB9XG5cbi5sb2dvIHtcblx0ZmxvYXQ6IGxlZnQ7XG5cdGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi8uLi9pbWFnZXMvbmF2X2xvZ28uc3ZnKTtcblx0YmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuXHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyB9XG5cbi5uYXYtYnV0dG9ucyB7XG5cdGZsb2F0OiByaWdodDsgfVxuXG4jdmlld0RvY3MsICN0cnlLdWJlcm5ldGVzIHtcblx0ZGlzcGxheTogbm9uZTsgfVxuXG4jdmlld0RvY3Mge1xuXHRib3JkZXI6IDFweCBzb2xpZCB3aGl0ZTtcblx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdHRyYW5zaXRpb246IDAuM3M7XG5cblx0Jjpob3ZlciB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG5cdFx0Y29sb3I6ICRkYXJrLWdyZXk7IH0gfVxuXG4jdHJ5S3ViZXJuZXRlcyB7XG5cdHdpZHRoOiAwO1xuXHRwYWRkaW5nOiAwO1xuXHRtYXJnaW4tbGVmdDogMDtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHR0cmFuc2l0aW9uOiAwLjNzOyB9XG5cblxuI2hhbWJ1cmdlciB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHRwYWRkaW5nOiAwO1xuXHRib3JkZXI6IDA7XG5cdGJhY2tncm91bmQ6IG5vbmU7XG5cblx0ZGl2LCAmOmJlZm9yZSwgJjphZnRlciB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGxlZnQ6IDE1JTtcblx0XHR3aWR0aDogNzAlO1xuXHRcdGhlaWdodDogMnB4O1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICRibHVlO1xuXHRcdHRyYW5zaXRpb246IDAuM3M7XG5cdFx0Y29udGVudDogXCJcIjsgfVxuXG5cdGRpdiB7XG5cdFx0dG9wOiBjYWxjKDUwJSAtIDFweCk7IH1cblxuXHQmOmJlZm9yZSB7XG5cdFx0dG9wOiAyNCU7IH1cblxuXHQmOmFmdGVyIHtcblx0XHRib3R0b206IDI0JTsgfVxuXG5cdCY6aG92ZXIge1xuXHRcdGRpdiwgJjpiZWZvcmUsICY6YWZ0ZXIge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogd2hpdGU7IH0gfSB9XG5cbiNtYWluTmF2IHtcblx0aDUge1xuXHRcdGNvbG9yOiAkYmx1ZTtcblx0XHRmb250LXdlaWdodDogbm9ybWFsOyB9XG5cblx0bWFpbiB7XG5cdFx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdGNsZWFyOiBib3RoOyB9XG5cblx0Lm5hdi1ib3gge1xuXHRcdGZsb2F0OiBsZWZ0O1xuXHRcdHdoaXRlLXNwYWNlOiBub3JtYWw7IH1cblxuXHRoMyB7XG5cdFx0YSB7XG5cdFx0XHRjb2xvcjogJGJsdWU7XG5cdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7IH0gfSB9XG5cbi8vIEZMSVAgTkFWXG4uZmxpcC1uYXYge1xuXHRoZWFkZXIge1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHdoaXRlOyB9IH1cblxuXG4vLyBPUEVOIE5BVlxuLm9wZW4tbmF2IHtcblx0Ym9keSB7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG5cdCNjZWxsb3BoYW5lIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR6LWluZGV4OiA5OTk4OyB9XG5cblx0aGVhZGVyIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkbGlnaHQtZ3JleTtcblx0XHR6LWluZGV4OiA5OTk5OyB9XG5cblx0I2hhbWJ1cmdlciB7XG5cdFx0ZGl2IHtcblx0XHRcdG9wYWNpdHk6IDA7IH1cblxuXHRcdCY6YmVmb3JlLCAmOmFmdGVyIHtcblx0XHRcdGxlZnQ6IDEycHg7XG5cdFx0XHR0cmFuc2Zvcm0tb3JpZ2luOiAwIDFweDsgfVxuXG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0dHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpOyB9XG5cblx0XHQmOmFmdGVyIHtcblx0XHRcdHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7IH0gfSB9XG5cbi5vcGVuLW5hdiwgLnktZW5vdWdoIHtcblx0I3RyeUt1YmVybmV0ZXMge1xuXHRcdHdpZHRoOiAxNjBweDsgfSB9XG5cblxuLmZsaXAtbmF2LCAub3Blbi1uYXYge1xuXHRoZWFkZXIge1xuXHRcdGJveC1zaGFkb3c6IDAgMXB4IDJweCAkbWVkaXVtLWdyZXk7XG5cblx0XHQubG9nbyB7XG5cdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vLi4vaW1hZ2VzL25hdl9sb2dvMi5zdmcpOyB9IH1cblxuXHQjdmlld0RvY3Mge1xuXHRcdGJvcmRlci1jb2xvcjogJGRhcmstZ3JleTtcblx0XHRjb2xvcjogJGRhcmstZ3JleTtcblxuXHRcdCY6aG92ZXIge1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiAkYmx1ZTtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRibHVlO1xuXHRcdFx0Y29sb3I6IHdoaXRlOyB9IH1cblxuXHQjaGFtYnVyZ2VyOmhvdmVyIHtcblx0XHRkaXYsICY6YmVmb3JlLCAmOmFmdGVyIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRkYXJrLWdyZXk7IH0gfSB9XG5cblxuXG4vLyBIRVJPXG4jaGVybyB7XG5cdGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi8uLi9pbWFnZXMvdGV4dHVyZS5wbmcpO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkZGFyay1ncmV5O1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdHBhZGRpbmctbGVmdDogMDtcblx0cGFkZGluZy1yaWdodDogMDsgfVxuXG4vLyBWRU5ET1IgU1RSSVBcbiN2ZW5kb3JTdHJpcCB7XG5cdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50aXplKHdoaXRlLCAwLjkpO1xuXHRmb250LXdlaWdodDogMTAwO1xuXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHR0ZXh0LWFsaWduOiBsZWZ0O1xuXG5cdGRpdiB7XG5cdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrOyB9IH1cblxuLy8gRk9PVEVSXG5mb290ZXIge1xuXHR3aWR0aDogMTAwJTtcblx0YmFja2dyb3VuZC1pbWFnZTogdXJsKC4uLy4uL2ltYWdlcy90ZXh0dXJlLnBuZyk7XG5cdGJhY2tncm91bmQtY29sb3I6ICRkYXJrLWdyZXk7XG5cblx0bWFpbiB7XG5cdFx0cGFkZGluZzogNDBweCAwOyB9XG5cblx0bmF2IHtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuXHRcdGEge1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0Zm9udC1zaXplOiAzMnB4O1xuXHRcdFx0Zm9udC13ZWlnaHQ6IDMwMDtcblx0XHRcdGNvbG9yOiB3aGl0ZTtcblx0XHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG5cdFx0YSArIGEge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IDEwJTsgfSB9XG5cblx0LnNvY2lhbCB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdG1hcmdpbjogODBweCAwIDYwcHg7XG5cblx0XHRsYWJlbCB7XG5cdFx0XHRmbG9hdDogcmlnaHQ7XG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRoZWlnaHQ6IDUwcHg7XG5cdFx0XHRsaW5lLWhlaWdodDogNTBweDtcblx0XHRcdGZvbnQtd2VpZ2h0OiAxMDA7XG5cdFx0XHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG5cdFx0XHRpbnB1dCB7XG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiA4cHg7XG5cdFx0XHRcdHdpZHRoOiAzMDBweDsgfSB9IH0gfVxuXG5cbiNzZWFyY2gsICN3aXNoRmllbGQge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0cGFkZGluZzogMTBweDtcblx0Zm9udC1zaXplOiAxNnB4O1xuXHRmb250LXdlaWdodDogMTAwO1xuXHRjb2xvcjogd2hpdGU7XG5cdGJvcmRlcjogMXB4IHNvbGlkIHdoaXRlO1xuXHR0cmFuc2l0aW9uOiAwLjNzO1xuXG5cdCY6Zm9jdXMge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICRsaWdodC1ncmV5O1xuXHRcdGNvbG9yOiAkZGFyay1ncmV5OyB9IH1cblxuLnNvY2lhbCBhIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vLi4vaW1hZ2VzL3NvY2lhbF9zcHJpdGUucG5nKTtcblx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0YmFja2dyb3VuZC1zaXplOiBhdXRvO1xuXHR3aWR0aDogNTBweDtcblx0aGVpZ2h0OiA1MHB4O1xuXHRib3JkZXItcmFkaXVzOiA1cHg7XG5cdG1hcmdpbi1yaWdodDogMzBweDtcblxuXHQmOmhvdmVyIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG5cblx0c3BhbiB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdGhlaWdodDogMDtcblx0XHRvdmVyZmxvdzogaGlkZGVuOyB9IH1cblxuYS50d2l0dGVyIHtcblx0YmFja2dyb3VuZC1wb3NpdGlvbjogMCAwO1xuXG5cdCY6aG92ZXIge1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IDAgMTAwJTsgfSB9XG5cbmEuc3RhY2stb3ZlcmZsb3cge1xuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNTBweCAwO1xuXG5cdCY6aG92ZXIge1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IC01MHB4IDEwMCU7IH0gfVxuXG5hLnNsYWNrIHtcblx0YmFja2dyb3VuZC1wb3NpdGlvbjogLTEwMHB4IDA7XG5cblx0Jjpob3ZlciB7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogLTEwMHB4IDEwMCU7IH0gfVxuXG5hLmdpdGh1YiB7XG5cdGJhY2tncm91bmQtcG9zaXRpb246IC0xNTBweCAwO1xuXG5cdCY6aG92ZXIge1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IC0xNTBweCAxMDAlOyB9IH1cblxuYS5tYWlsaW5nLWxpc3Qge1xuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjAwcHggMDtcblxuXHQmOmhvdmVyIHtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjAwcHggMTAwJTsgfSB9XG5cblxuI2RvY3Mge1xuXHQjdmlld0RvY3Mge1xuXHRcdGRpc3BsYXk6IG5vbmU7IH1cblxuXHRzZWN0aW9uIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcblx0XHRtaW4td2lkdGg6IDEwMjRweDsgfVxuXG5cdCNoZXJvIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkZGFyay1ncmV5O1xuXG5cdFx0aDUge1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogNDBweDsgfSB9XG5cblx0I3ZlbmRvclN0cmlwIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuXHRcdHVsIHtcblx0XHRcdGZsb2F0OiBsZWZ0OyB9XG5cblx0XHRsaSB7XG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRoZWlnaHQ6IDEwMCU7IH1cblxuXHRcdGEge1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0XHRjb2xvcjogd2hpdGU7IH1cblxuXHRcdGxpICsgbGksICNzZWFyY2gge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IDYwcHg7IH1cblxuXHRcdCNzZWFyY2gge1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdFx0d2lkdGg6IDI1MHB4O1xuXHRcdFx0cGFkZGluZzogMCAxMHB4O1xuXHRcdFx0bWFyZ2luOiAxMHB4IDMwcHggMCAwO1xuXHRcdFx0aGVpZ2h0OiA0MHB4O1xuXHRcdFx0bGluZS1oZWlnaHQ6IDQwcHg7XG5cdFx0XHRib3JkZXI6IDFweCBzb2xpZCAkbGlnaHQtZ3JleTtcblx0XHRcdGZvbnQtc2l6ZTogMTZweDtcblx0XHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cblxuXHRcdC5kcm9wZG93biB7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRmbG9hdDogcmlnaHQ7XG5cdFx0XHRoZWlnaHQ6IDYwcHg7XG5cdFx0XHRmb250LXNpemU6IDIwcHg7XG5cdFx0XHRjb2xvcjogd2hpdGU7XG5cdFx0XHRsaW5lLWhlaWdodDogNjBweDtcblx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0XHR6LWluZGV4OiA1MDAwO1xuXG5cdFx0XHQmLm9uIHtcblx0XHRcdFx0b3ZlcmZsb3c6IHZpc2libGU7IH1cblxuXHRcdFx0LnJlYWRvdXQge1xuXHRcdFx0XHRwYWRkaW5nLWxlZnQ6IDEwcHg7XG5cdFx0XHRcdHBhZGRpbmctcmlnaHQ6IDQwcHg7XG5cdFx0XHRcdHRyYW5zaXRpb246IDAuM3M7XG5cblx0XHRcdFx0JjphZnRlciB7XG5cdFx0XHRcdFx0Y29udGVudDogXCJcIjtcblx0XHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdFx0dG9wOiAzMHB4O1xuXHRcdFx0XHRcdHJpZ2h0OiAxMHB4O1xuXHRcdFx0XHRcdHdpZHRoOiAwO1xuXHRcdFx0XHRcdGhlaWdodDogMDtcblx0XHRcdFx0XHRib3JkZXItc3R5bGU6IHNvbGlkO1xuXHRcdFx0XHRcdGJvcmRlci13aWR0aDogNnB4IDZweCAwIDZweDtcblx0XHRcdFx0XHRib3JkZXItY29sb3I6IHdoaXRlIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuXHRcdFx0XHRcdHRyYW5zaXRpb246IDAuM3M7IH0gfVxuXG5cdFx0XHQucmVhZG91dDpob3ZlciB7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50aXplKHdoaXRlLCAwLjkpOyB9XG5cblx0XHRcdCYub24gLnJlYWRvdXQge1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkbGlnaHQtZ3JleTtcblx0XHRcdFx0Y29sb3I6ICRkYXJrLWdyZXk7IH1cblxuXHRcdFx0Ji5vbiAucmVhZG91dDphZnRlciB7XG5cdFx0XHRcdGJvcmRlci10b3AtY29sb3I6ICRkYXJrLWdyZXk7IH1cblxuXHRcdFx0LndyYXBwZXIge1xuXHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdHRvcDogMTAwJTtcblx0XHRcdFx0bGVmdDogMDtcblx0XHRcdFx0d2lkdGg6IDEwMCU7IH1cblxuXHRcdFx0YSB7XG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0aGVpZ2h0OiAzMHB4O1xuXHRcdFx0XHRsaW5lLWhlaWdodDogMzBweDtcblx0XHRcdFx0cGFkZGluZzogMCAxMHB4O1xuXHRcdFx0XHRmb250LXNpemU6IDE2cHg7XG5cdFx0XHRcdGZvbnQtd2VpZ2h0OiAzMDA7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRsaWdodC1ncmV5O1xuXHRcdFx0XHRjb2xvcjogJGRhcmstZ3JleTtcblx0XHRcdFx0b3BhY2l0eTogMDtcblx0XHRcdFx0dHJhbnNpdGlvbjogMC4zcztcblxuXHRcdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjY2NjOyB9IH1cblxuXHRcdFx0Ji5vbiBhIHtcblx0XHRcdFx0b3BhY2l0eTogMTsgfSB9IH1cblxuXHQjZW5jeWNsb3BlZGlhIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0cGFkZGluZzogNTBweDtcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXG5cdFx0JiA+IGRpdiB7XG5cdFx0XHRoZWlnaHQ6IDEwMCU7IH1cblxuXHRcdCNkb2NzVG9jIHtcblx0XHRcdGZsb2F0OiBsZWZ0O1xuXHRcdFx0d2lkdGg6IDM1MHB4O1xuXHRcdFx0cGFkZGluZzogMCAyMHB4IDAgMDtcblxuXHRcdFx0LnlhaCB7XG5cdFx0XHRcdCYgPiAudGl0bGUge1xuXHRcdFx0XHRcdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50aXplKCRibHVlLCAwLjgpO1xuXHRcdFx0XHRcdHBhZGRpbmc6IDcuNXB4IDEwcHggNy41cHggMTBweDsgfSB9IH1cblxuXHRcdCNkb2NzQ29udGVudCB7XG5cdFx0XHRmbG9hdDogcmlnaHQ7XG5cdFx0XHR3aWR0aDogY2FsYygxMDAlIC0gNDAwcHgpO1xuXG5cdFx0XHQkdG9jLW1hcmdpbjogMTVweDtcblxuXHRcdFx0LnBhZ2VBbmNob3Ige1xuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogJGhlYWRlci1oZWlnaHQgKyAyMHB4OyB9XG5cblx0XHRcdCNwYWdlVE9DIHtcblx0XHRcdFx0bGkge1xuXHRcdFx0XHRcdHBhZGRpbmc6IDVweCAwOyB9XG5cblx0XHRcdFx0YSB7XG5cdFx0XHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0XHRcdGNvbG9yOiAkYmx1ZTtcblx0XHRcdFx0XHRmb250LXdlaWdodDogNzAwOyB9IH1cblxuXHRcdFx0LkgyLCAuSDMsIC5INCwgLkg1LCAuSDYge1xuXHRcdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdFx0Y29udGVudDogXCJcIjtcblx0XHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdFx0dG9wOiAxMHB4O1xuXHRcdFx0XHRcdHdpZHRoOiA1cHg7XG5cdFx0XHRcdFx0aGVpZ2h0OiA1cHg7XG5cdFx0XHRcdFx0Ym9yZGVyLXJhZGl1czogNTAlO1xuXHRcdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRibHVlOyB9IH1cblxuXHRcdFx0LkgxIHtcblx0XHRcdFx0cGFkZGluZy1sZWZ0OiAwICogJHRvYy1tYXJnaW47IH1cblxuXHRcdFx0LkgyIHtcblx0XHRcdFx0cGFkZGluZy1sZWZ0OiAxICogJHRvYy1tYXJnaW47XG5cblx0XHRcdFx0JjpiZWZvcmUge1xuXHRcdFx0XHRcdGxlZnQ6IDEgKiAkdG9jLW1hcmdpbiAtIDE1cHg7IH0gfVxuXG5cdFx0XHQuSDMge1xuXHRcdFx0XHRwYWRkaW5nLWxlZnQ6IDIgKiAkdG9jLW1hcmdpbjtcblxuXHRcdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdFx0bGVmdDogMiAqICR0b2MtbWFyZ2luIC0gMTVweDsgfSB9XG5cblx0XHRcdC5INCB7XG5cdFx0XHRcdHBhZGRpbmctbGVmdDogMyAqICR0b2MtbWFyZ2luO1xuXG5cdFx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0XHRsZWZ0OiAzICogJHRvYy1tYXJnaW4gLSAxNXB4OyB9IH1cblxuXHRcdFx0Lkg1IHtcblx0XHRcdFx0cGFkZGluZy1sZWZ0OiA0ICogJHRvYy1tYXJnaW47XG5cblx0XHRcdFx0JjpiZWZvcmUge1xuXHRcdFx0XHRcdGxlZnQ6IDQgKiAkdG9jLW1hcmdpbiAtIDE1cHg7IH0gfVxuXG5cdFx0XHQuSDYge1xuXHRcdFx0XHRwYWRkaW5nLWxlZnQ6IDUgKiAkdG9jLW1hcmdpbjtcblxuXHRcdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdFx0bGVmdDogNSAqICR0b2MtbWFyZ2luIC0gMTVweDsgfSB9IH1cblxuXHRcdCNwYWdlQ29udGVudCB7XG5cdFx0XHRoMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHtcblx0XHRcdFx0cGFkZGluZy10b3A6IDgwcHg7IH0gfSB9IH1cblxuLmZpeGVkIGZvb3RlciB7XG5cdHBvc2l0aW9uOiBmaXhlZDtcblx0Ym90dG9tOiAwOyB9XG4iLCIvLyBURVhUXG4kaDEtZm9udC1zaXplOiA2MHB4O1xuJGgxLWxpbmUtaGVpZ2h0OiA5MHB4O1xuXG4kaDItZm9udC1zaXplOiA0MnB4O1xuJGgyLWxpbmUtaGVpZ2h0OiA2MHB4O1xuXG4kaDMtZm9udC1zaXplOiAzMHB4O1xuJGgzLWxpbmUtaGVpZ2h0OiA0MHB4O1xuXG4kaDQtZm9udC1zaXplOiAyNnB4O1xuJGg0LWxpbmUtaGVpZ2h0OiA0MHB4O1xuXG4kaDUtZm9udC1zaXplOiAyMnB4O1xuJGg1LWxpbmUtaGVpZ2h0OiAzNnB4O1xuXG4kcC1mb250LXNpemU6IDIwcHg7XG4kcC1saW5lLWhlaWdodDogMjhweDtcblxuXG4vLyBoZWFkZXJcbiRmdWxsLXdpZHRoLXBhZGRpbmdYOiAyMHB4O1xuXG4kbWFpbi13aWR0aDogMTAwJTtcbiRtYWluLW1heC13aWR0aDogMTAwJTtcblxuJGhlYWRlci1oZWlnaHQ6IDYwcHg7XG5cbiRsb2dvLXdpZHRoOiAxMjBweDtcblxuJG5hdi1idXR0b25zLW1hcmdpbi1sZWZ0OiAzMHB4O1xuXG4kaGFtYnVyZ2VyLXNpemU6IDUwcHg7XG5cblxuLy8gbWFpbiBuYXZcbiRtYWluLW5hdi1wYWRkaW5nOiAxNDBweCAwIDMwcHg7XG4kbWFpbi1uYXYtaDUtbWFyZ2luLWJvdHRvbTogMWVtO1xuJG1haW4tbmF2LWgzLW1hcmdpbi1ib3R0b206IDAuNmVtO1xuJG5hdi1ib3gtd2lkdGg6IDIwJTtcbiRuYXYtYm94LXNpYmxpbmctbWFyZ2luLWxlZnQ6IGNhbGMoMjAlIC8gMyk7XG4kbWFpbi1uYXYtbWFpbi1zaWJsaW5nLW1hcmdpbi10b3A6IDYwcHg7XG4kbWFpbi1uYXYtbGVmdC1idXR0b24tc2l6ZTogNTBweDtcbiRtYWluLW5hdi1sZWZ0LWJ1dHRvbi1mb250LXNpemU6IDE4cHg7XG5cblxuLy8gaGVyb1xuJGhlcm8tcGFkZGluZy10b3A6IDgwcHg7XG4kaGVhZGxpbmUtd3JhcHBlci1tYXJnaW4tYm90dG9tOiA0MHB4O1xuJHF1aWNrc3RhcnQtYnV0dG9uLXBhZGRpbmc6IDAgNTBweDtcbiR2ZW5kb3Itc3RyaXAtaGVpZ2h0OiA2MHB4O1xuJHZlbmRvci1zdHJpcC1mb250LXNpemU6IDE4cHg7XG4kdmVuZG9yLXN0cmlwLWltZy1tYXgtaGVpZ2h0OiAzMHB4O1xuJHZlbmRvci1zdHJpcC1pbWctbWF4LXdpZHRoOiAxMDBweDtcbiR2ZW5kb3Itc3RyaXAtaW1nLW1hcmdpbi1sZWZ0OiA1MHB4O1xuXG4vLyBvY2VhbiBub2Rlc1xuJG9jZWFuLW5vZGVzLXBhZGRpbmctWTogNjBweDtcbiRvY2Vhbi1ub2Rlcy1tYWluLW1hcmdpbi1ib3R0b206IDYwcHg7XG4kb2NlYW4tbm9kZXMtaDMtbWFyZ2luLWJvdHRvbTogMzBweDtcblxuXG4vLyB2aWRlb1xuJHZpZGVvLXNlY3Rpb24taGVpZ2h0OiA0MDBweDtcblxuLy8gZmVhdHVyZXNcbiRmZWF0dXJlcy1oMy1tYXJnaW4tYm90dG9tOiA0MHB4O1xuJGZlYXR1cmUtYm94LW1hcmdpbi1ib3R0b206IDYwcHg7XG4kZmVhdHVyZS1ib3gtZGl2LW1hcmdpbi1ib3R0b206IDA7XG4kZmVhdHVyZS1ib3gtZGl2LXdpZHRoOiA0NSU7XG5cblxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NTBweCkge1xuXHRAaW1wb3J0IFwiLi4vcGFydGlhbHMvc2l6ZVwiO1xuXG5cdC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblx0Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXHQvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cblx0I2RvY3MgI2hlcm8ge1xuXHRcdGgxLCBoNSB7XG5cdFx0XHR0ZXh0LWFsaWduOiBsZWZ0OyB9IH1cblxuXHQjdmlld0RvY3MsICN0cnlLdWJlcm5ldGVzIHtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cblxuXHQjdmVuZG9yU3RyaXAge1xuXHRcdGRpc3BsYXk6IGJsb2NrOyB9XG5cblx0I3F1aWNrc3RhcnRCdXR0b24ge1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuXG5cblx0I29jZWFuTm9kZXMge1xuXHRcdGgzIHtcblx0XHRcdHRleHQtYWxpZ246IGxlZnQ7IH1cblxuXHRcdG1haW4ge1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0Y2xlYXI6IGJvdGg7XG5cblx0XHRcdC5pbWFnZS13cmFwcGVyIHtcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHR0b3A6IDUwJTtcblx0XHRcdFx0bWF4LXdpZHRoOiAyNSU7XG5cdFx0XHRcdG1heC1oZWlnaHQ6IDEwMCU7XG5cdFx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsgfVxuXG5cdFx0XHQmOm50aC1jaGlsZChvZGQpIHtcblx0XHRcdFx0LmNvbnRlbnQge1xuXHRcdFx0XHRcdHBhZGRpbmctcmlnaHQ6IDMwJTsgfVxuXG5cdFx0XHRcdC5pbWFnZS13cmFwcGVyIHtcblx0XHRcdFx0XHRyaWdodDogMDsgfSB9XG5cblx0XHRcdCY6bnRoLWNoaWxkKGV2ZW4pIHtcblx0XHRcdFx0LmNvbnRlbnQge1xuXHRcdFx0XHRcdHBhZGRpbmctbGVmdDogMzAlOyB9XG5cblx0XHRcdFx0LmltYWdlLXdyYXBwZXIge1xuXHRcdFx0XHRcdGxlZnQ6IDA7IH0gfVxuXG5cdFx0XHQmOm50aC1jaGlsZCgxKSB7XG5cdFx0XHRcdC5jb250ZW50IHtcblx0XHRcdFx0XHRwYWRkaW5nLXJpZ2h0OiAwOyB9XG5cblx0XHRcdFx0LmltYWdlLXdyYXBwZXIge1xuXHRcdFx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdFx0XHRtYXgtd2lkdGg6IDEwMCU7XG5cdFx0XHRcdFx0dHJhbnNmb3JtOiBub25lOyB9IH1cblxuXHRcdFx0aW1nIHtcblx0XHRcdFx0d2lkdGg6IDEwMCU7IH0gfSB9XG5cblxuXHQjdmlkZW8ge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXG5cdFx0JiA+IC5saWdodC10ZXh0IHtcblx0XHRcdGRpc3BsYXk6IGJsb2NrOyB9IH1cblxuXHQjbW9iaWxlU2hvd1ZpZGVvQnV0dG9uIHtcblx0XHRkaXNwbGF5OiBub25lOyB9XG5cblx0I2ZlYXR1cmVzIHtcblx0XHRwYWRkaW5nLWJvdHRvbTogNjBweDtcblxuXHRcdC5mZWF0dXJlLWJveCB7XG5cdFx0XHQmOmxhc3QtY2hpbGQge1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiAwOyB9IH0gfSB9XG5cblxuXG5cbiJdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ== */ +/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBhcnRpYWxzL19yZXNldC5zYXNzIiwicGFydGlhbHMvX3NraW4uc2FzcyIsIi4uL2Jhc2VDb21wb25lbnRzL1/PgC1iYXNlQ29tcG9uZW50cy5zYXNzIiwiLi4vbW9kdWxlcy/PgC1hY2NvcmRpb24vX8+ALWFjY29yZGlvbi5zYXNzIiwiLi4vbW9kdWxlcy/PgC1kaWFsb2cvX8+ALWRpYWxvZy5zYXNzIiwiLi4vbW9kdWxlcy/PgC1wdXNobWVudS9fz4AtcHVzaG1lbnUuc2FzcyIsInBhcnRpYWxzL19zaXplLnNhc3MiLCJtZWRpYVF1ZXJpZXMvX2Jhc2Uuc2FzcyIsIm1lZGlhUXVlcmllcy9fdGFibGV0LnNhc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDQyxVQUFVO0VBQ1YsV0FBVyxFQUFHOztBQUdmO0VBQ0MsY0FBYyxFQUFHOztBQUVsQjtFQUNDLGdCQUFnQixFQUFHOztBQUVwQjtFQUNDLGlCQUFpQixFQUFHOztBQUVyQjtFQUNDLFVBQVU7RUFDVixXQUFXLEVBQUc7O0FBRWY7RUFDQyxzQkFBc0IsRUFBRzs7QUFHMUI7RUFDQyxlQUFlO0VBQ2YsWUFBWSxFQUFHOztBQUVoQjtFQUNDLGFBQWEsRUFBRzs7QUFFakI7RUFDQyxhQUFhLEVBQUc7O0FBRWpCO0VBQ0MsWUFBWSxFQUFHOztBQUVoQjtFQUNDLG1CQUFtQixFQUFHOztBQzVCdkI7RUFDQyx1QkFBdUI7RUFDdkIsa0NBTDhCO0VBTTlCLGlCQUFpQjtFQUNqQixVQUFVO0VBQ1YsVUFBVSxFQUFHOztBQUVkO0VBQ0Msa0NBWDhCLEVBV0w7O0FBRTFCO0VBQ0MsaUJBQWlCLEVBQUc7O0FBRXJCO0VBQ0MsaUJBQWlCLEVBQUc7O0FDdEJyQjtFQUNDLGlCQUFpQixFQUFHOztBQU1yQjtFQUlDLG1CQUFtQjtFQUNuQixVQUFVO0VBQ1YsWUFBWTtFQUNaLFlBTnlCO0VBT3pCLGFBUHlCO0VBUXpCLFVBQVUsRUFrQnNCO0VBM0JqQztJQVlFLFlBQVk7SUFDWixtQkFBbUI7SUFDbkIs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MUI7SUFDQyxhRVJpQjtJRlNqQixhRVhtQixFRldNO0VBRTFCO0lBQ0MsYUVkbUI7SUZlbkIsa0JFZm1CLEVGa0J3QjtJQUw1QztNQUtFLGtCRWQ0QixFRmNZO0VBRTFDO0lBQ0MsWUVmb0I7SUZnQnBCLGFFaEJvQixFRmdCTTtFQUUzQjtJQUNDLHNCRWY4QixFRm1Da0I7SUFyQmpEO01BSUUsbUJFakI2QixFRmlCZTtJQUo5QztNQU9FLHFCRW5CK0IsRUZtQmE7SUFQOUM7TUFVRSxXRXJCaUIsRUZxQk87SUFWMUI7TUFhRSwyQkV2QmdDLEVGdUJZO0lBYjlDO01BZ0JFLGlCRXpCcUMsRUZ5Qlc7SUFoQmxEO01BbUJFLGFFM0I4QjtNRjRCOUIsa0JFNUI4QjtNRjZCOUIsZ0JFNUJtQyxFRjRCVTtFQUUvQztJQUVFLGtCRTdDNEIsRUY2Q1k7RUFFMUM7SUFDQyxrQkUvQnNCLEVGK0JXO0VBRWxDO0lBR0csbUJFOUR1QjtJRitEdkIsb0JFL0R1QixFRitEZTtFQUV6QztJQUNDLGFFckN5QjtJRnNDekIsa0JFdEN5QjtJRnVDekIsZ0JFdEM0QixFRnNDUztFRTVCckM7SUFFRSxpQkFBaUIsRUFBRztFQUV0QjtJQUNDLHNCQUFzQixFQUFHO0VBRTFCO0lBQ0MsZUFBZSxFQUFHLEVBQUEiLCJmaWxlIjoic3R5bGVzLmNzcyIsInNvdXJjZXNDb250ZW50IjpbImh0bWwsIGJvZHkge1xuXHRtYXJnaW46IDA7XG5cdHBhZGRpbmc6IDA7IH1cblxuXG5pbnB1dCwgYnV0dG9uIHtcblx0b3V0bGluZTogbm9uZTsgfVxuXG5idXR0b24ge1xuXHRjdXJzb3I6IHBvaW50ZXI7IH1cblxudWwsIGxpIHtcblx0bGlzdC1zdHlsZTogbm9uZTsgfVxuXG51bCB7XG5cdG1hcmdpbjogMDtcblx0cGFkZGluZzogMDsgfVxuXG5hIHtcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbi8vIENPTlZFTklFTkNFXG4uY2xlYXIge1xuXHRkaXNwbGF5OiBibG9jaztcblx0Y2xlYXI6IGJvdGg7IH1cblxuLmxpZ2h0LXRleHQge1xuXHRjb2xvcjogd2hpdGU7IH1cblxuLnJpZ2h0IHtcblx0ZmxvYXQ6IHJpZ2h0OyB9XG5cbi5sZWZ0IHtcblx0ZmxvYXQ6IGxlZnQ7IH1cblxuLmNlbnRlciB7XG5cdHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG5cbi8vbWl4aW5zXG5AbWl4aW4gcHVyZUNlbnRlcigkbGVmdDogNTAlLCAkdG9wOiA1MCUpIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6ICR0b3A7XG5cdGxlZnQ6ICRsZWZ0O1xuXHR0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsgfVxuXG5cbkBtaXhpbiBtYWludGFpbi1hc3BlY3QtcmF0aW8gKCR3aWR0aC1mYWN0b3I6IDE2LCAkaGVpZ2h0LWZhY3RvcjogOSwgJHRhcmdldC13aWR0aDogODB2dywgJHRhcmdldC1oZWlnaHQ6IDgwdmgpIHtcblx0d2lkdGg6ICR0YXJnZXQtd2lkdGg7XG5cdGhlaWdodDogJHRhcmdldC13aWR0aCAqICgkaGVpZ2h0LWZhY3RvciAvICR3aWR0aC1mYWN0b3IpO1xuXHRtYXgtd2lkdGg6ICR0YXJnZXQtaGVpZ2h0ICogKCR3aWR0aC1mYWN0b3IgLyAkaGVpZ2h0LWZhY3Rvcik7XG5cdG1heC1oZWlnaHQ6ICR0YXJnZXQtaGVpZ2h0OyB9XG5cbiIsIiRibHVlOiAjMzM3MWUzO1xuJGxpZ2h0LWdyZXk6ICNmN2Y3Zjc7XG4kZGFyay1ncmV5OiAjMzAzMDMwO1xuJG1lZGl1bS1ncmV5OiAjNGM0YzRjO1xuXG4kYmFzZUZvbnQ6ICdSb2JvdG8nLCBzYW5zLXNlcmlmO1xuXG5cbiosIC5idXR0b24ge1xuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRmb250LWZhbWlseTogJGJhc2VGb250O1xuXHRiYWNrZ3JvdW5kOiBub25lO1xuXHRtYXJnaW46IDA7XG5cdGJvcmRlcjogMDsgfVxuXG5ib2R5IHtcblx0Zm9udC1mYW1pbHk6ICRiYXNlRm9udDsgfVxuXG5oMSwgaDIsIGg1LCBwIHtcblx0Zm9udC13ZWlnaHQ6IDMwMDsgfVxuXG5oMywgaDQge1xuXHRmb250LXdlaWdodDogNDAwOyB9XG4iLCJib2R5Lm92ZXJsYXktb24ge1xuXHRvdmVyZmxvdzogaGlkZGVuOyB9XG5cblxuJGF3ZXNvbWUtZ3JlZW46ICMwMGZmOTk7XG5cbi8vIG1vZGFsIGNsb3NlIGJ1dHRvblxuLnBpLW1vZGFsLWNsb3NlLWJ1dHRvbiB7XG5cdCRidXR0b24tc2lkZS1sZW5ndGg6IDM2cHg7XG5cdCRoeXBvdGVudXNlLWxlbmd0aDogNTAuOTExNjg4MjQ1NDMxNDJweDtcblxuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogNTBweDtcblx0cmlnaHQ6IDUwcHg7XG5cdHdpZHRoOiAkYnV0dG9uLXNpZGUtbGVuZ3RoO1xuXHRoZWlnaHQ6ICRidXR0b24tc2lkZS1sZW5ndGg7XG5cdGJvcmRlcjogMDtcblxuXHQmOmJlZm9yZSwgJjphZnRlciB7XG5cdFx0Y29udGVudDogXCJcIjtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0dG9wOiAwO1xuXHRcdHdpZHRoOiAkaHlwb3RlbnVzZS1sZW5ndGg7XG5cdFx0aGVpZ2h0OiAycHg7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogd2hpdGU7IH1cblxuXHQmOmJlZm9yZSB7XG5cdFx0bGVmdDogMDtcblx0XHR0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDtcblx0XHR0cmFuc2Zvcm06IHJvdGF0ZVooNDVkZWcpOyB9XG5cblx0JjphZnRlciB7XG5cdFx0cmlnaHQ6IDA7XG5cdFx0dHJhbnNmb3JtLW9yaWdpbjogdG9wIHJpZ2h0O1xuXHRcdHRyYW5zZm9ybTogcm90YXRlWigtNDVkZWcpOyB9IH1cblxuLy8gbW9kYWwgb3ZlcmxheVxuLnBpLW1vZGFsLW92ZXJsYXkge1xuXHRwb3NpdGlvbjogZml4ZWQ7XG5cdHRvcDogMDtcblx0bGVmdDogMDtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMTAwJTtcblx0Y29sb3I6IHdoaXRlO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOCk7XG5cdGRpc3BsYXk6IG5vbmU7XG5cdG9wYWNpdHk6IDA7XG5cdHRyYW5zaXRpb246IDAuM3M7XG5cblx0Ji5vbiB7XG5cdFx0b3BhY2l0eTogMTsgfSB9XG5cbi8vIG11bHRpRnJhbWVEaXNwbGF5XG4ucGktbXVsdGktZnJhbWUtZGlzcGxheSB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0d2lkdGg6IDgwdnc7XG5cdGhlaWdodDogODB2aDtcblx0bWFyZ2luOiAxMHZoIGF1dG87XG5cblx0Lml0ZW0td3JhcHBlciB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGhlaWdodDogMTAwJTsgfVxuXG5cdC5pdGVtIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0dG9wOiA1MCU7XG5cdFx0bGVmdDogNTAlO1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cblx0XHQmLm9uIHtcblx0XHRcdGRpc3BsYXk6IGJsb2NrOyB9IH1cblxuXHQucGFnZXIge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRib3R0b206IDEwJTtcblx0XHRsZWZ0OiAwO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cblx0XHQucGFnZXItYnV0dG9uIHtcblx0XHRcdHdpZHRoOiAyMHB4O1xuXHRcdFx0aGVpZ2h0OiAyMHB4O1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogNTAlO1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG5cdFx0XHRib3JkZXI6IDA7XG5cdFx0XHRtYXJnaW46IDAgMTBweDtcblx0XHRcdHRyYW5zaXRpb246IDAuM3M7XG5cblx0XHRcdCYueWFoIHtcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJGF3ZXNvbWUtZ3JlZW47IH0gfSB9XG5cblx0JHByZXYtbmV4dC1ib3JkZXItc3R5bGU6IDFweCBzb2xpZDtcblx0LnByZXYtYnV0dG9uLCAubmV4dC1idXR0b24ge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR0b3A6IDUwJTtcblx0XHR3aWR0aDogMzBweDtcblx0XHRoZWlnaHQ6IDMwcHg7XG5cdFx0Ym9yZGVyOiAwO1xuXHRcdGJvcmRlci1jb2xvcjogJGF3ZXNvbWUtZ3JlZW47XG5cdFx0ei1pbmRleDogMztcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlWig0NWRlZyk7XG5cdFx0dHJhbnNpdGlvbjogMC4zcztcblxuXHRcdCY6aG92ZXIge1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiByZWQ7IH0gfVxuXG5cdC5wcmV2LWJ1dHRvbiB7XG5cdFx0bGVmdDogMzBweDtcblx0XHRib3JkZXItYm90dG9tOiAkcHJldi1uZXh0LWJvcmRlci1zdHlsZTtcblx0XHRib3JkZXItbGVmdDogJHByZXYtbmV4dC1ib3JkZXItc3R5bGU7IH1cblxuXHQubmV4dC1idXR0b24ge1xuXHRcdHJpZ2h0OiAzMHB4O1xuXHRcdGJvcmRlci10b3A6ICRwcmV2LW5leHQtYm9yZGVyLXN0eWxlO1xuXHRcdGJvcmRlci1yaWdodDogJHByZXYtbmV4dC1ib3JkZXItc3R5bGU7IH0gfVxuXG4iLCIucGktYWNjb3JkaW9uIHtcblx0bWFyZ2luLWxlZnQ6IC0yMHB4O1xuXG5cdC5jb250YWluZXIge1xuXHRcdHBhZGRpbmctbGVmdDogMjBweDsgfVxuXG5cdC5pdGVtIHtcblx0XHRvdmVyZmxvdzogaGlkZGVuOyB9XG5cblx0LnRpdGxlIHtcblx0XHRjb2xvcjogJGRhcmstZ3JleTtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0cGFkZGluZzogNXB4IDEwcHggMTBweCAyMHB4O1xuXHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHR0cmFuc2l0aW9uOiAwLjNzO1xuXG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRjb2xvcjogJGJsdWU7IH0gfVxuXG5cdGEuaXRlbSA+IC50aXRsZSB7XG5cdFx0Y29sb3I6IGJsYWNrO1xuXHRcdHBhZGRpbmctbGVmdDogMDtcblxuXHRcdCY6aG92ZXIge1xuXHRcdFx0Y29sb3I6ICRibHVlOyB9IH1cblxuXHRkaXYuaXRlbSA+IC50aXRsZSB7XG5cdFx0Zm9udC13ZWlnaHQ6IDcwMDtcblxuXHRcdCY6YmVmb3JlIHtcblx0XHRcdGNvbnRlbnQ6IFwiXCI7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR0b3A6IDlweDtcblx0XHRcdGxlZnQ6IDJweDtcblx0XHRcdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdFx0XHRib3JkZXItd2lkdGg6IDVweCAwIDVweCA4cHg7XG5cdFx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICRibHVlO1xuXHRcdFx0dHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG5cdFx0XHR0cmFuc2l0aW9uOiAwLjNzOyB9IH1cblxuXHQud3JhcHBlciB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdHRyYW5zaXRpb246IDAuM3M7IH1cblxuXHQuY29udGVudCB7XG5cdFx0cGFkZGluZy1sZWZ0OiAyMHB4O1xuXHRcdG9wYWNpdHk6IDA7XG5cdFx0dHJhbnNpdGlvbjogMC4zcztcblx0XHRwYWRkaW5nLWJvdHRvbTogMjBweDsgfVxuXG5cdC5pdGVtLm9uIHtcblx0XHQmID4gLnRpdGxlOmJlZm9yZSB7XG5cdFx0XHR0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7IH1cblxuXHRcdCYgPiAud3JhcHBlciA+IC5jb250ZW50IHtcblx0XHRcdG9wYWNpdHk6IDE7IH0gfSB9XG5cbiIsIiRhd2Vzb21lLWdyZWVuOiAjMDBmZjk5O1xuXG4ucGktZGlhbG9nIHtcblxuXHQuZGlhbG9nLWJveCB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHRvcDogNTAlO1xuXHRcdGxlZnQ6IDUwJTtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsgfVxuXG5cdC50aXRsZSB7XG5cdFx0Zm9udC1zaXplOiAzNnB4O1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRwYWRkaW5nOiAzMHB4IDA7IH1cblxuXHQuY29udGVudC1ib3gge1xuXHRcdGNvbG9yOiAjMjIyO1xuXHRcdG1heC13aWR0aDogNjAwcHg7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblxuXHRcdC5jb250ZW50IHtcblx0XHRcdHBhZGRpbmc6IDMwcHg7XG5cdFx0XHRib3JkZXItcmFkaXVzOiA0cHg7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsgfVxuXG5cdFx0LmJ1dHRvbnMge1xuXHRcdFx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkIGJsYWNrO1xuXHRcdFx0dGV4dC1hbGlnbjogcmlnaHQ7XG5cdFx0XHRtYXJnaW4tdG9wOiAzMHB4O1xuXG5cdFx0XHRidXR0b24ge1xuXHRcdFx0XHRjb2xvcjogJGF3ZXNvbWUtZ3JlZW47XG5cdFx0XHRcdGJvcmRlci1jb2xvcjogJGF3ZXNvbWUtZ3JlZW47XG5cdFx0XHRcdGJvcmRlci1yYWRpdXM6IDRweDtcblx0XHRcdFx0dHJhbnNpdGlvbjogMC4zcztcblxuXHRcdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkYXdlc29tZS1ncmVlbjtcblx0XHRcdFx0XHRjb2xvcjogYmxhY2s7IH0gfSB9IH0gfVxuIiwiLnBpLXB1c2htZW51IHtcblx0ZGlzcGxheTogbm9uZTtcblx0cG9zaXRpb246IGZpeGVkO1xuXHR0b3A6IDA7XG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IDEwMCU7XG5cdG9wYWNpdHk6IDA7XG5cdHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcblxuXHQmLm9uIHtcblx0XHRvcGFjaXR5OiAxOyB9XG5cblx0Lm92ZXJsYXkge1xuXHRcdHBvc2l0aW9uOiBmaXhlZDtcblx0XHR0b3A6IDA7XG5cdFx0bGVmdDogMDtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpOyB9XG5cblx0LnNsZWQge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR0b3A6IDA7XG5cdFx0d2lkdGg6IDA7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuXHRcdG92ZXJmbG93OiBhdXRvO1xuXHRcdHRyYW5zaXRpb246IHdpZHRoIDAuM3M7IH1cblxuXHQmLm9uIC5zbGVkIHtcblx0XHR3aWR0aDogMzIwcHg7IH1cblxuXHQudG9wLWJhciB7XG5cdFx0aGVpZ2h0OiAwO1xuXHRcdGxpbmUtaGVpZ2h0OiA2MHB4O1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICM0NDQ7IH1cblxuXHQucGktbW9kYWwtY2xvc2UtYnV0dG9uIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0dG9wOiAxMHB4O1xuXHRcdHJpZ2h0OiAxMHB4O1xuXHRcdHotaW5kZXg6IDE7XG5cblx0XHQmOmJlZm9yZSwgJjphZnRlciB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjMjIyMjIyOyB9IH1cblxuXG5cdHVsIHtcblx0XHRwYWRkaW5nOiAwIDYwcHggMCAyMHB4OyB9XG5cdGxpIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0bWluLWhlaWdodDogNDRweDsgfVxuXG5cdGEge1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHR3aWR0aDogMTAwJTtcblx0XHRoZWlnaHQ6IDQ0cHg7XG5cdFx0bGluZS1oZWlnaHQ6IDQ0cHg7XG5cdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0Zm9udC1zaXplOiAyMHB4O1xuXHRcdGNvbG9yOiAkYmx1ZTsgfVxuXG5cdC5idXR0b24ge1xuXHRcdGJhY2tncm91bmQ6IG5vbmU7XG5cdFx0cGFkZGluZzogMDsgfVxuXG5cblxuXHR1bCB1bCB7XG5cdFx0cGFkZGluZzogMCAyMHB4O1xuXG5cdFx0bGkge1xuXHRcdFx0bWluLWhlaWdodDogNDBweDsgfVxuXG5cdFx0YSB7XG5cdFx0XHRoZWlnaHQ6IDQwcHg7XG5cdFx0XHRsaW5lLWhlaWdodDogNDBweDtcblx0XHRcdGZvbnQtc2l6ZTogMThweDtcblx0XHRcdGNvbG9yOiBsaWdodGVuKCMyMjIyMjIsIDIwJSk7IH0gfSB9XG4iLCJoMSB7XG5cdGZvbnQtc2l6ZTogJGgxLWZvbnQtc2l6ZTtcblx0bGluZS1oZWlnaHQ6ICRoMS1saW5lLWhlaWdodDsgfVxuXG5oMiB7XG5cdGZvbnQtc2l6ZTogJGgyLWZvbnQtc2l6ZTtcblx0bGluZS1oZWlnaHQ6ICRoMi1saW5lLWhlaWdodDsgfVxuXG5oMyB7XG5cdGZvbnQtc2l6ZTogJGgzLWZvbnQtc2l6ZTtcblx0bGluZS1oZWlnaHQ6ICRoMy1saW5lLWhlaWdodDsgfVxuXG5oNCB7XG5cdGZvbnQtc2l6ZTogJGg0LWZvbnQtc2l6ZTtcblx0bGluZS1oZWlnaHQ6ICRoNC1saW5lLWhlaWdodDsgfVxuXG5oNSB7XG5cdGZvbnQtc2l6ZTogJGg1LWZvbnQtc2l6ZTtcblx0bGluZS1oZWlnaHQ6ICRoNS1saW5lLWhlaWdodDsgfVxuXG5wIHtcblx0Zm9udC1zaXplOiAkcC1mb250LXNpemU7XG5cdGxpbmUtaGVpZ2h0OiAkcC1saW5lLWhlaWdodDsgfVxuXG5zZWN0aW9uLCBoZWFkZXIsIGZvb3RlciwgI3ZlbmRvclN0cmlwIHtcblx0cGFkZGluZy1sZWZ0OiAkZnVsbC13aWR0aC1wYWRkaW5nWDtcblx0cGFkZGluZy1yaWdodDogJGZ1bGwtd2lkdGgtcGFkZGluZ1g7XG5cblx0bWFpbiB7XG5cdFx0d2lkdGg6ICRtYWluLXdpZHRoO1xuXHRcdG1heC13aWR0aDogJG1haW4tbWF4LXdpZHRoOyB9IH1cblxuaGVhZGVyIHtcblx0aGVpZ2h0OiAkaGVhZGVyLWhlaWdodDsgfVxuXG4ubG9nbyB7XG5cdHdpZHRoOiAkbG9nby13aWR0aDtcblx0aGVpZ2h0OiAkaGVhZGVyLWhlaWdodDsgfVxuXG4ubmF2LWJ1dHRvbnMge1xuXHRoZWlnaHQ6ICRoZWFkZXItaGVpZ2h0O1xuXHRsaW5lLWhlaWdodDogJGhlYWRlci1oZWlnaHQ7XG5cblx0LmJ1dHRvbiArICoge1xuXHRcdG1hcmdpbi1sZWZ0OiAkbmF2LWJ1dHRvbnMtbWFyZ2luLWxlZnQ7IH0gfVxuXG4jaGFtYnVyZ2VyIHtcblx0d2lkdGg6ICRoYW1idXJnZXItc2l6ZTtcblx0aGVpZ2h0OiAkaGFtYnVyZ2VyLXNpemU7IH1cblxuI21haW5OYXYge1xuXHRwYWRkaW5nOiAkbWFpbi1uYXYtcGFkZGluZztcblxuXHRoNSB7XG5cdFx0bWFyZ2luLWJvdHRvbTogJG1haW4tbmF2LWg1LW1hcmdpbi1ib3R0b207IH1cblxuXHRoMyB7XG5cdFx0bWFyZ2luLWJvdHRvbTogJG1haW4tbmF2LWgzLW1hcmdpbi1ib3R0b207IH1cblxuXHQubmF2LWJveCB7XG5cdFx0d2lkdGg6ICRuYXYtYm94LXdpZHRoOyB9XG5cblx0Lm5hdi1ib3ggKyAubmF2LWJveCB7XG5cdFx0bWFyZ2luLWxlZnQ6ICRuYXYtYm94LXNpYmxpbmctbWFyZ2luLWxlZnQ7IH1cblxuXHRtYWluICsgbWFpbiB7XG5cdFx0bWFyZ2luLXRvcDogJG1haW4tbmF2LW1haW4tc2libGluZy1tYXJnaW4tdG9wOyB9XG5cblx0LmxlZnQgLmJ1dHRvbiB7XG5cdFx0aGVpZ2h0OiAkbWFpbi1uYXYtbGVmdC1idXR0b24tc2l6ZTtcblx0XHRsaW5lLWhlaWdodDogJG1haW4tbmF2LWxlZnQtYnV0dG9uLXNpemU7XG5cdFx0Zm9udC1zaXplOiAkbWFpbi1uYXYtbGVmdC1idXR0b24tZm9udC1zaXplOyB9IH1cblxuLm9wZW4tbmF2LCAueS1lbm91Z2gge1xuXHQjdHJ5S3ViZXJuZXRlcyB7XG5cdFx0bWFyZ2luLWxlZnQ6ICRuYXYtYnV0dG9ucy1tYXJnaW4tbGVmdDsgfSB9XG5cbiNoZXJvIHtcblx0cGFkZGluZy10b3A6ICRoZXJvLXBhZGRpbmctdG9wOyB9XG5cbiNkb2NzIHtcblx0I2hlcm8ge1xuXHRcdGgxLCBoNSB7XG5cdFx0XHRwYWRkaW5nLWxlZnQ6ICRmdWxsLXdpZHRoLXBhZGRpbmdYO1xuXHRcdFx0cGFkZGluZy1yaWdodDogJGZ1bGwtd2lkdGgtcGFkZGluZ1g7IH0gfSB9XG5cbiN2ZW5kb3JTdHJpcCB7XG5cdGhlaWdodDogJHZlbmRvci1zdHJpcC1oZWlnaHQ7XG5cdGxpbmUtaGVpZ2h0OiAkdmVuZG9yLXN0cmlwLWhlaWdodDtcblx0Zm9udC1zaXplOiAkdmVuZG9yLXN0cmlwLWZvbnQtc2l6ZTsgfVxuIiwiQGltcG9ydCBcIi4uL3BhcnRpYWxzL3Jlc2V0XCI7XG5cbi8vIFRFWFRcbiRoMS1mb250LXNpemU6IDQwcHg7XG4kaDEtbGluZS1oZWlnaHQ6IDUwcHg7XG5cbiRoMi1mb250LXNpemU6IDQycHg7XG4kaDItbGluZS1oZWlnaHQ6IDYwcHg7XG5cbiRoMy1mb250LXNpemU6IDI2cHg7XG4kaDMtbGluZS1oZWlnaHQ6IDMycHg7XG5cbiRoNC1mb250LXNpemU6IDI2cHg7XG4kaDQtbGluZS1oZWlnaHQ6IDQwcHg7XG5cbiRoNS1mb250LXNpemU6IDE4cHg7XG4kaDUtbGluZS1oZWlnaHQ6IDM2cHg7XG5cbiRwLWZvbnQtc2l6ZTogMjBweDtcbiRwLWxpbmUtaGVpZ2h0OiAyOHB4O1xuXG5cbi8vIGhlYWRlclxuJGZ1bGwtd2lkdGgtcGFkZGluZ1g6IDIwcHg7XG5cbiRtYWluLXdpZHRoOiAxMDAlO1xuJG1haW4tbWF4LXdpZHRoOiAxMDAlO1xuXG4kaGVhZGVyLWhlaWdodDogODBweDtcblxuJGxvZ28td2lkdGg6IDEyMHB4O1xuXG4kbmF2LWJ1dHRvbnMtbWFyZ2luLWxlZnQ6IDMwcHg7XG5cbiRoYW1idXJnZXItc2l6ZTogNTBweDtcblxuXG4vLyBtYWluIG5hdlxuJG1haW4tbmF2LXBhZGRpbmc6IDE0MHB4IDAgMzBweDtcbiRtYWluLW5hdi1oNS1tYXJnaW4tYm90dG9tOiAxZW07XG4kbWFpbi1uYXYtaDMtbWFyZ2luLWJvdHRvbTogMC42ZW07XG4kbmF2LWJveC13aWR0aDogMjAlO1xuJG5hdi1ib3gtc2libGluZy1tYXJnaW4tbGVmdDogY2FsYygyMCUgLyAzKTtcbiRtYWluLW5hdi1tYWluLXNpYmxpbmctbWFyZ2luLXRvcDogNjBweDtcbiRtYWluLW5hdi1sZWZ0LWJ1dHRvbi1zaXplOiA1MHB4O1xuJG1haW4tbmF2LWxlZnQtYnV0dG9uLWZvbnQtc2l6ZTogMThweDtcblxuXG4vLyBoZXJvXG4kaGVyby1wYWRkaW5nLXRvcDogODBweDtcbiRoZWFkbGluZS13cmFwcGVyLW1hcmdpbi1ib3R0b206IDQwcHg7XG4kcXVpY2tzdGFydC1idXR0b24tcGFkZGluZzogMCA1MHB4O1xuJHZlbmRvci1zdHJpcC1oZWlnaHQ6IDYwcHg7XG4kdmVuZG9yLXN0cmlwLWZvbnQtc2l6ZTogMThweDtcblxuQGltcG9ydCBcIi4uL3BhcnRpYWxzL3NpemVcIjtcblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5ib2R5IHtcblx0YmFja2dyb3VuZC1jb2xvcjogd2hpdGU7IH1cblxuc2VjdGlvbiB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0YmFja2dyb3VuZC1jb2xvcjogd2hpdGU7IH1cblxuc2VjdGlvbiwgaGVhZGVyLCBmb290ZXIge1xuXHRtYWluIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0bWFyZ2luOiBhdXRvO1xuXHRcdG1pbi13aWR0aDogODUwcHg7IH0gfVxuXG4uYnV0dG9uIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRib3JkZXItcmFkaXVzOiA2cHg7XG5cdHBhZGRpbmc6IDAgMjBweDtcblx0bGluZS1oZWlnaHQ6IDQwcHg7XG5cdGNvbG9yOiB3aGl0ZTtcblx0YmFja2dyb3VuZC1jb2xvcjogJGJsdWU7XG5cdHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG4jY2VsbG9waGFuZSB7XG5cdHBvc2l0aW9uOiBmaXhlZDtcblx0dG9wOiAwO1xuXHRsZWZ0OiAwO1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xuXHRkaXNwbGF5OiBub25lOyB9XG5cblxuLy8gSEVBREVSXG5oZWFkZXIge1xuXHRwb3NpdGlvbjogZml4ZWQ7XG5cdHRvcDogMDtcblx0bGVmdDogMDtcblx0d2lkdGg6IDEwMCU7XG5cdHotaW5kZXg6IDg4ODg7XG5cdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHRib3gtc2hhZG93OiAwIDAgMCB0cmFuc3BhcmVudDtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0dHJhbnNpdGlvbjogMC4zczsgfVxuXG4ubG9nbyB7XG5cdGZsb2F0OiBsZWZ0O1xuXHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vLi4vaW1hZ2VzL25hdl9sb2dvLnN2Zyk7XG5cdGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcblx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcblx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsgfVxuXG4ubmF2LWJ1dHRvbnMge1xuXHRmbG9hdDogcmlnaHQ7IH1cblxuI2hhbWJ1cmdlciB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHRwYWRkaW5nOiAwO1xuXHRib3JkZXI6IDA7XG5cdGJhY2tncm91bmQ6IG5vbmU7XG5cblx0ZGl2LCAmOmJlZm9yZSwgJjphZnRlciB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGxlZnQ6IDE1JTtcblx0XHR3aWR0aDogNzAlO1xuXHRcdGhlaWdodDogMnB4O1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICRibHVlO1xuXHRcdHRyYW5zaXRpb246IDAuM3M7XG5cdFx0Y29udGVudDogXCJcIjsgfVxuXG5cdGRpdiB7XG5cdFx0dG9wOiBjYWxjKDUwJSAtIDFweCk7IH1cblxuXHQmOmJlZm9yZSB7XG5cdFx0dG9wOiAyNCU7IH1cblxuXHQmOmFmdGVyIHtcblx0XHRib3R0b206IDI0JTsgfVxuXG5cdCY6aG92ZXIge1xuXHRcdGRpdiwgJjpiZWZvcmUsICY6YWZ0ZXIge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogd2hpdGU7IH0gfSB9XG5cbiNtYWluTmF2IHtcblx0aDUge1xuXHRcdGNvbG9yOiAkYmx1ZTtcblx0XHRmb250LXdlaWdodDogbm9ybWFsOyB9XG5cblx0bWFpbiB7XG5cdFx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdGNsZWFyOiBib3RoOyB9XG5cblx0Lm5hdi1ib3gge1xuXHRcdGZsb2F0OiBsZWZ0O1xuXHRcdHdoaXRlLXNwYWNlOiBub3JtYWw7IH1cblxuXHRoMyB7XG5cdFx0YSB7XG5cdFx0XHRjb2xvcjogJGJsdWU7XG5cdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7IH0gfSB9XG5cbi8vIEZMSVAgTkFWXG4uZmxpcC1uYXYge1xuXHRoZWFkZXIge1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHdoaXRlOyB9IH1cblxuXG4vLyBPUEVOIE5BVlxuLm9wZW4tbmF2IHtcblx0Ym9keSB7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG5cdCNjZWxsb3BoYW5lIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR6LWluZGV4OiA5OTk4OyB9XG5cblx0aGVhZGVyIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkbGlnaHQtZ3JleTtcblx0XHR6LWluZGV4OiA5OTk5OyB9XG5cblx0I2hhbWJ1cmdlciB7XG5cdFx0ZGl2IHtcblx0XHRcdG9wYWNpdHk6IDA7IH1cblxuXHRcdCY6YmVmb3JlLCAmOmFmdGVyIHtcblx0XHRcdGxlZnQ6IDEycHg7XG5cdFx0XHR0cmFuc2Zvcm0tb3JpZ2luOiAwIDFweDsgfVxuXG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0dHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpOyB9XG5cblx0XHQmOmFmdGVyIHtcblx0XHRcdHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7IH0gfSB9XG5cbi5vcGVuLW5hdiwgLnktZW5vdWdoIHtcblx0I3RyeUt1YmVybmV0ZXMge1xuXHRcdHdpZHRoOiAxNjBweDsgfSB9XG5cblxuLmZsaXAtbmF2LCAub3Blbi1uYXYge1xuXHRoZWFkZXIge1xuXHRcdGJveC1zaGFkb3c6IDAgMXB4IDJweCAkbWVkaXVtLWdyZXk7XG5cblx0XHQubG9nbyB7XG5cdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vLi4vaW1hZ2VzL25hdl9sb2dvMi5zdmcpOyB9IH1cblxuXHQjdmlld0RvY3Mge1xuXHRcdGJvcmRlci1jb2xvcjogJGRhcmstZ3JleTtcblx0XHRjb2xvcjogJGRhcmstZ3JleTtcblxuXHRcdCY6aG92ZXIge1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiAkYmx1ZTtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRibHVlO1xuXHRcdFx0Y29sb3I6IHdoaXRlOyB9IH1cblxuXHQjaGFtYnVyZ2VyOmhvdmVyIHtcblx0XHRkaXYsICY6YmVmb3JlLCAmOmFmdGVyIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRkYXJrLWdyZXk7IH0gfSB9XG5cblxuXG4vLyBIRVJPXG4jaGVybyB7XG5cdGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi8uLi9pbWFnZXMvdGV4dHVyZS5wbmcpO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkZGFyay1ncmV5O1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdHBhZGRpbmctbGVmdDogMDtcblx0cGFkZGluZy1yaWdodDogMDsgfVxuXG4vLyBWRU5ET1IgU1RSSVBcbiN2ZW5kb3JTdHJpcCB7XG5cdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50aXplKHdoaXRlLCAwLjkpO1xuXHRmb250LXdlaWdodDogMTAwO1xuXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHR0ZXh0LWFsaWduOiBsZWZ0O1xuXG5cdGRpdiB7XG5cdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrOyB9IH1cblxuLy8gRk9PVEVSXG5mb290ZXIge1xuXHR3aWR0aDogMTAwJTtcblx0YmFja2dyb3VuZC1pbWFnZTogdXJsKC4uLy4uL2ltYWdlcy90ZXh0dXJlLnBuZyk7XG5cdGJhY2tncm91bmQtY29sb3I6ICRkYXJrLWdyZXk7XG5cblx0bWFpbiB7XG5cdFx0cGFkZGluZzogNDBweCAwOyB9XG5cblx0bmF2IHtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuXHRcdGEge1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0Zm9udC1zaXplOiAzMnB4O1xuXHRcdFx0Zm9udC13ZWlnaHQ6IDMwMDtcblx0XHRcdGNvbG9yOiB3aGl0ZTtcblx0XHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG5cdFx0YSArIGEge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IDEwJTsgfSB9XG5cblx0LnNvY2lhbCB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdG1hcmdpbjogODBweCAwIDYwcHg7XG5cblx0XHRsYWJlbCB7XG5cdFx0XHRmbG9hdDogcmlnaHQ7XG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRoZWlnaHQ6IDUwcHg7XG5cdFx0XHRsaW5lLWhlaWdodDogNTBweDtcblx0XHRcdGZvbnQtd2VpZ2h0OiAxMDA7XG5cdFx0XHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG5cdFx0XHRpbnB1dCB7XG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiA4cHg7XG5cdFx0XHRcdHdpZHRoOiAzMDBweDsgfSB9IH0gfVxuXG5cbiNzZWFyY2gsICN3aXNoRmllbGQge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0cGFkZGluZzogMTBweDtcblx0Zm9udC1zaXplOiAxNnB4O1xuXHRmb250LXdlaWdodDogMTAwO1xuXHRjb2xvcjogd2hpdGU7XG5cdGJvcmRlcjogMXB4IHNvbGlkIHdoaXRlO1xuXHR0cmFuc2l0aW9uOiAwLjNzO1xuXG5cdCY6Zm9jdXMge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICRsaWdodC1ncmV5O1xuXHRcdGNvbG9yOiAkZGFyay1ncmV5OyB9IH1cblxuLnNvY2lhbCBhIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vLi4vaW1hZ2VzL3NvY2lhbF9zcHJpdGUucG5nKTtcblx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0YmFja2dyb3VuZC1zaXplOiBhdXRvO1xuXHR3aWR0aDogNTBweDtcblx0aGVpZ2h0OiA1MHB4O1xuXHRib3JkZXItcmFkaXVzOiA1cHg7XG5cdG1hcmdpbi1yaWdodDogMzBweDtcblxuXHQmOmhvdmVyIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG5cblx0c3BhbiB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdGhlaWdodDogMDtcblx0XHRvdmVyZmxvdzogaGlkZGVuOyB9IH1cblxuYS50d2l0dGVyIHtcblx0YmFja2dyb3VuZC1wb3NpdGlvbjogMCAwO1xuXG5cdCY6aG92ZXIge1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IDAgMTAwJTsgfSB9XG5cbmEuc3RhY2stb3ZlcmZsb3cge1xuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNTBweCAwO1xuXG5cdCY6aG92ZXIge1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IC01MHB4IDEwMCU7IH0gfVxuXG5hLnNsYWNrIHtcblx0YmFja2dyb3VuZC1wb3NpdGlvbjogLTEwMHB4IDA7XG5cblx0Jjpob3ZlciB7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogLTEwMHB4IDEwMCU7IH0gfVxuXG5hLmdpdGh1YiB7XG5cdGJhY2tncm91bmQtcG9zaXRpb246IC0xNTBweCAwO1xuXG5cdCY6aG92ZXIge1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IC0xNTBweCAxMDAlOyB9IH1cblxuYS5tYWlsaW5nLWxpc3Qge1xuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjAwcHggMDtcblxuXHQmOmhvdmVyIHtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjAwcHggMTAwJTsgfSB9XG5cblxuI2RvY3Mge1xuXHQjdmlld0RvY3Mge1xuXHRcdGRpc3BsYXk6IG5vbmU7IH1cblxuXHRzZWN0aW9uIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcblx0XHRtaW4td2lkdGg6IDEwMjRweDsgfVxuXG5cdCNoZXJvIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkZGFyay1ncmV5O1xuXG5cdFx0aDUge1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogNDBweDsgfSB9XG5cblx0I3ZlbmRvclN0cmlwIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuXHRcdHVsIHtcblx0XHRcdGZsb2F0OiBsZWZ0OyB9XG5cblx0XHRsaSB7XG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRoZWlnaHQ6IDEwMCU7IH1cblxuXHRcdGEge1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0XHRjb2xvcjogd2hpdGU7IH1cblxuXHRcdGxpICsgbGksICNzZWFyY2gge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IDYwcHg7IH1cblxuXHRcdCNzZWFyY2gge1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdFx0d2lkdGg6IDI1MHB4O1xuXHRcdFx0cGFkZGluZzogMCAxMHB4O1xuXHRcdFx0bWFyZ2luOiAxMHB4IDMwcHggMCAwO1xuXHRcdFx0aGVpZ2h0OiA0MHB4O1xuXHRcdFx0bGluZS1oZWlnaHQ6IDQwcHg7XG5cdFx0XHRib3JkZXI6IDFweCBzb2xpZCAkbGlnaHQtZ3JleTtcblx0XHRcdGZvbnQtc2l6ZTogMTZweDtcblx0XHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cblxuXHRcdC5kcm9wZG93biB7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRmbG9hdDogcmlnaHQ7XG5cdFx0XHRoZWlnaHQ6IDYwcHg7XG5cdFx0XHRmb250LXNpemU6IDIwcHg7XG5cdFx0XHRjb2xvcjogd2hpdGU7XG5cdFx0XHRsaW5lLWhlaWdodDogNjBweDtcblx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0XHR6LWluZGV4OiA1MDAwO1xuXG5cdFx0XHQmLm9uIHtcblx0XHRcdFx0b3ZlcmZsb3c6IHZpc2libGU7IH1cblxuXHRcdFx0LnJlYWRvdXQge1xuXHRcdFx0XHRwYWRkaW5nLWxlZnQ6IDEwcHg7XG5cdFx0XHRcdHBhZGRpbmctcmlnaHQ6IDQwcHg7XG5cdFx0XHRcdHRyYW5zaXRpb246IDAuM3M7XG5cblx0XHRcdFx0JjphZnRlciB7XG5cdFx0XHRcdFx0Y29udGVudDogXCJcIjtcblx0XHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdFx0dG9wOiAzMHB4O1xuXHRcdFx0XHRcdHJpZ2h0OiAxMHB4O1xuXHRcdFx0XHRcdHdpZHRoOiAwO1xuXHRcdFx0XHRcdGhlaWdodDogMDtcblx0XHRcdFx0XHRib3JkZXItc3R5bGU6IHNvbGlkO1xuXHRcdFx0XHRcdGJvcmRlci13aWR0aDogNnB4IDZweCAwIDZweDtcblx0XHRcdFx0XHRib3JkZXItY29sb3I6IHdoaXRlIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuXHRcdFx0XHRcdHRyYW5zaXRpb246IDAuM3M7IH0gfVxuXG5cdFx0XHQucmVhZG91dDpob3ZlciB7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50aXplKHdoaXRlLCAwLjkpOyB9XG5cblx0XHRcdCYub24gLnJlYWRvdXQge1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkbGlnaHQtZ3JleTtcblx0XHRcdFx0Y29sb3I6ICRkYXJrLWdyZXk7IH1cblxuXHRcdFx0Ji5vbiAucmVhZG91dDphZnRlciB7XG5cdFx0XHRcdGJvcmRlci10b3AtY29sb3I6ICRkYXJrLWdyZXk7IH1cblxuXHRcdFx0LndyYXBwZXIge1xuXHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdHRvcDogMTAwJTtcblx0XHRcdFx0bGVmdDogMDtcblx0XHRcdFx0d2lkdGg6IDEwMCU7IH1cblxuXHRcdFx0YSB7XG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0aGVpZ2h0OiAzMHB4O1xuXHRcdFx0XHRsaW5lLWhlaWdodDogMzBweDtcblx0XHRcdFx0cGFkZGluZzogMCAxMHB4O1xuXHRcdFx0XHRmb250LXNpemU6IDE2cHg7XG5cdFx0XHRcdGZvbnQtd2VpZ2h0OiAzMDA7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRsaWdodC1ncmV5O1xuXHRcdFx0XHRjb2xvcjogJGRhcmstZ3JleTtcblx0XHRcdFx0b3BhY2l0eTogMDtcblx0XHRcdFx0dHJhbnNpdGlvbjogMC4zcztcblxuXHRcdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjY2NjOyB9IH1cblxuXHRcdFx0Ji5vbiBhIHtcblx0XHRcdFx0b3BhY2l0eTogMTsgfSB9IH1cblxuXHQjZW5jeWNsb3BlZGlhIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0cGFkZGluZzogNTBweDtcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXG5cdFx0JiA+IGRpdiB7XG5cdFx0XHRoZWlnaHQ6IDEwMCU7IH1cblxuXHRcdCNkb2NzVG9jIHtcblx0XHRcdGZsb2F0OiBsZWZ0O1xuXHRcdFx0d2lkdGg6IDM1MHB4O1xuXHRcdFx0cGFkZGluZzogMCAyMHB4IDAgMDtcblxuXHRcdFx0LnlhaCB7XG5cdFx0XHRcdCYgPiAudGl0bGUge1xuXHRcdFx0XHRcdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50aXplKCRibHVlLCAwLjgpO1xuXHRcdFx0XHRcdHBhZGRpbmc6IDcuNXB4IDEwcHggNy41cHggMTBweDsgfSB9IH1cblxuXHRcdCNkb2NzQ29udGVudCB7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRmbG9hdDogcmlnaHQ7XG5cdFx0XHR3aWR0aDogY2FsYygxMDAlIC0gNDAwcHgpO1xuXG5cdFx0XHQkdG9jLW1hcmdpbjogMTVweDtcblx0XHRcdCRoZWFkZXItY2xlYXJhbmNlOiA0MHB4O1xuXG5cdFx0XHQucGFnZUFuY2hvciB7XG5cdFx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdFx0bWFyZ2luLXRvcDogLSgkaGVhZGVyLWhlaWdodCAtICRoZWFkZXItY2xlYXJhbmNlKTtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG4gfVx0XHRcdFx0Ly9tYXJnaW4tYm90dG9tOiAkaGVhZGVyLWhlaWdodCArIDIwcHhcblxuXHRcdFx0aDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7XG5cdFx0XHRcdCYuYW5jaG9yZWQge1xuXHRcdFx0XHRcdG1hcmdpbi10b3A6ICRoZWFkZXItaGVpZ2h0O1xuXHRcdFx0XHRcdG1hcmdpbi1ib3R0b206IDMwcHg7IH0gfVxuXG5cdFx0XHRoMSB7XG5cdFx0XHRcdGZvbnQtc2l6ZTogNDhweDtcblx0XHRcdFx0bGluZS1oZWlnaHQ6IDU4cHg7IH1cblxuXHRcdFx0aDIge1xuXHRcdFx0XHRmb250LXNpemU6IDMycHg7XG5cdFx0XHRcdGxpbmUtaGVpZ2h0OiA0MHB4OyB9XG5cblx0XHRcdGgzIHtcblx0XHRcdFx0Zm9udC1zaXplOiAyOHB4O1xuXHRcdFx0XHRsaW5lLWhlaWdodDogMzVweDsgfVxuXG5cdFx0XHRoNCB7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMjRweDtcblx0XHRcdFx0bGluZS1oZWlnaHQ6IDMwcHg7IH1cblxuXHRcdFx0aDUge1xuXHRcdFx0XHRmb250LXNpemU6IDIycHg7XG5cdFx0XHRcdGxpbmUtaGVpZ2h0OiAyNnB4OyB9XG5cblx0XHRcdHAge1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiAzMHB4OyB9XG5cblx0XHRcdGNvZGUge1xuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0d2hpdGUtc3BhY2U6IHByZTtcblx0XHRcdFx0bWFyZ2luOiAzMHB4IDA7XG5cdFx0XHRcdHBhZGRpbmc6IDMwcHg7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRsaWdodC1ncmV5O1xuXHRcdFx0XHRjb2xvcjogJGRhcmstZ3JleTtcblx0XHRcdFx0Zm9udC1mYW1pbHk6IG1vbm9zcGFjZTtcblx0XHRcdFx0Zm9udC1zaXplOiAyMHB4O1xuXHRcdFx0XHRsaW5lLWhlaWdodDogMzJweDsgfVxuXG5cblx0XHRcdCNwYWdlVE9DIHtcblx0XHRcdFx0bGkge1xuXHRcdFx0XHRcdHBhZGRpbmc6IDVweCAwOyB9XG5cblx0XHRcdFx0YSB7XG5cdFx0XHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0XHRcdGNvbG9yOiAkYmx1ZTtcblx0XHRcdFx0XHRmb250LXdlaWdodDogNzAwOyB9IH1cblxuXHRcdFx0LkgyLCAuSDMsIC5INCwgLkg1LCAuSDYge1xuXHRcdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdFx0Y29udGVudDogXCJcIjtcblx0XHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdFx0dG9wOiAxMHB4O1xuXHRcdFx0XHRcdHdpZHRoOiA1cHg7XG5cdFx0XHRcdFx0aGVpZ2h0OiA1cHg7XG5cdFx0XHRcdFx0Ym9yZGVyLXJhZGl1czogNTAlO1xuXHRcdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRibHVlOyB9IH1cblxuXHRcdFx0LkgxIHtcblx0XHRcdFx0cGFkZGluZy1sZWZ0OiAwICogJHRvYy1tYXJnaW47IH1cblxuXHRcdFx0LkgyIHtcblx0XHRcdFx0cGFkZGluZy1sZWZ0OiAxICogJHRvYy1tYXJnaW47XG5cblx0XHRcdFx0JjpiZWZvcmUge1xuXHRcdFx0XHRcdGxlZnQ6IDEgKiAkdG9jLW1hcmdpbiAtIDE1cHg7IH0gfVxuXG5cdFx0XHQuSDMge1xuXHRcdFx0XHRwYWRkaW5nLWxlZnQ6IDIgKiAkdG9jLW1hcmdpbjtcblxuXHRcdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdFx0bGVmdDogMiAqICR0b2MtbWFyZ2luIC0gMTVweDsgfSB9XG5cblx0XHRcdC5INCB7XG5cdFx0XHRcdHBhZGRpbmctbGVmdDogMyAqICR0b2MtbWFyZ2luO1xuXG5cdFx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0XHRsZWZ0OiAzICogJHRvYy1tYXJnaW4gLSAxNXB4OyB9IH1cblxuXHRcdFx0Lkg1IHtcblx0XHRcdFx0cGFkZGluZy1sZWZ0OiA0ICogJHRvYy1tYXJnaW47XG5cblx0XHRcdFx0JjpiZWZvcmUge1xuXHRcdFx0XHRcdGxlZnQ6IDQgKiAkdG9jLW1hcmdpbiAtIDE1cHg7IH0gfVxuXG5cdFx0XHQuSDYge1xuXHRcdFx0XHRwYWRkaW5nLWxlZnQ6IDUgKiAkdG9jLW1hcmdpbjtcblxuXHRcdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdFx0bGVmdDogNSAqICR0b2MtbWFyZ2luIC0gMTVweDsgfSB9IH1cblxuXHRcdCNwYWdlQ29udGVudCB7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRoMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHtcblx0XHRcdFx0cGFkZGluZy10b3A6IDgwcHg7IH0gfSB9IH1cblxuLmZpeGVkIGZvb3RlciB7XG5cdHBvc2l0aW9uOiBmaXhlZDtcblx0Ym90dG9tOiAwOyB9XG4iLCIvLyBURVhUXG4kaDEtZm9udC1zaXplOiA2MHB4O1xuJGgxLWxpbmUtaGVpZ2h0OiA4MHB4O1xuXG4kaDItZm9udC1zaXplOiA0MnB4O1xuJGgyLWxpbmUtaGVpZ2h0OiA2MHB4O1xuXG4kaDMtZm9udC1zaXplOiAyNnB4O1xuJGgzLWxpbmUtaGVpZ2h0OiAzMnB4O1xuXG4kaDQtZm9udC1zaXplOiAyNnB4O1xuJGg0LWxpbmUtaGVpZ2h0OiA0MHB4O1xuXG4kaDUtZm9udC1zaXplOiAxOHB4O1xuJGg1LWxpbmUtaGVpZ2h0OiAzNnB4O1xuXG4kcC1mb250LXNpemU6IDIwcHg7XG4kcC1saW5lLWhlaWdodDogMjhweDtcblxuXG4vLyBoZWFkZXJcbiRmdWxsLXdpZHRoLXBhZGRpbmdYOiAyMHB4O1xuXG4kbWFpbi13aWR0aDogMTAwJTtcbiRtYWluLW1heC13aWR0aDogMTAwJTtcblxuJGhlYWRlci1oZWlnaHQ6IDgwcHg7XG5cbiRsb2dvLXdpZHRoOiAxMjBweDtcblxuJG5hdi1idXR0b25zLW1hcmdpbi1sZWZ0OiAzMHB4O1xuXG4kaGFtYnVyZ2VyLXNpemU6IDUwcHg7XG5cblxuLy8gbWFpbiBuYXZcbiRtYWluLW5hdi1wYWRkaW5nOiAxNDBweCAwIDMwcHg7XG4kbWFpbi1uYXYtaDUtbWFyZ2luLWJvdHRvbTogMWVtO1xuJG1haW4tbmF2LWgzLW1hcmdpbi1ib3R0b206IDAuNmVtO1xuJG5hdi1ib3gtd2lkdGg6IDIwJTtcbiRuYXYtYm94LXNpYmxpbmctbWFyZ2luLWxlZnQ6IGNhbGMoMjAlIC8gMyk7XG4kbWFpbi1uYXYtbWFpbi1zaWJsaW5nLW1hcmdpbi10b3A6IDYwcHg7XG4kbWFpbi1uYXYtbGVmdC1idXR0b24tc2l6ZTogNTBweDtcbiRtYWluLW5hdi1sZWZ0LWJ1dHRvbi1mb250LXNpemU6IDE4cHg7XG5cblxuLy8gaGVyb1xuJGhlcm8tcGFkZGluZy10b3A6IDgwcHg7XG4kaGVhZGxpbmUtd3JhcHBlci1tYXJnaW4tYm90dG9tOiA0MHB4O1xuJHF1aWNrc3RhcnQtYnV0dG9uLXBhZGRpbmc6IDAgNTBweDtcbiR2ZW5kb3Itc3RyaXAtaGVpZ2h0OiA2MHB4O1xuJHZlbmRvci1zdHJpcC1mb250LXNpemU6IDE4cHg7XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NTBweCkge1xuXHRAaW1wb3J0IFwiLi4vcGFydGlhbHMvc2l6ZVwiO1xuXG5cdCNkb2NzICNoZXJvIHtcblx0XHRoMSwgaDUge1xuXHRcdFx0dGV4dC1hbGlnbjogbGVmdDsgfSB9XG5cblx0I3ZpZXdEb2NzLCAjdHJ5S3ViZXJuZXRlcyB7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG5cblx0I3ZlbmRvclN0cmlwIHtcblx0XHRkaXNwbGF5OiBibG9jazsgfSB9XG4iXSwic291cmNlUm9vdCI6Ii9zb3VyY2UvIn0= */ diff --git a/js/script.js b/js/script.js index 5c4b7ae8f7..05ceecda50 100755 --- a/js/script.js +++ b/js/script.js @@ -1151,6 +1151,7 @@ var kub = (function () { pageTOC.add(toc); headers.forEach(function (header) { + header.addClass('anchored'); var anchorName = 'pageTOC' + tocCount++; var link = π.contentElement('a', 0, 0, header.innerHTML); @@ -1251,4 +1252,4 @@ var kub = (function () { }; })(); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFsZi5qcyIsIs+ALmpzIiwiSEFMLmpzIiwiz4Atc3RhdHVzLmpzIiwiz4AtYmFzZUNvbXBvbmVudHMuanMiLCLPgC1hY2NvcmRpb24vz4AtYWNjb3JkaW9uLmpzIiwiz4AtcHVzaG1lbnUvz4AtcHVzaG1lbnUuanMiLCLPgC1kaWFsb2cvz4AtZGlhbG9nLmpzIiwic2NyaXB0LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQ3BCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQzlRQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUMzREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQ2xJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQzNRQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FDeEZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUMxSkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUM5RUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiJzY3JpcHQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBhZG9yYWJsZSBsaXR0bGUgZnVuY3Rpb25zXG5mdW5jdGlvbiBib29sZWFuQXR0cmlidXRlVmFsdWUoZWxlbWVudCwgYXR0cmlidXRlLCBkZWZhdWx0VmFsdWUpe1xuXHQvLyByZXR1cm5zIHRydWUgaWYgYW4gYXR0cmlidXRlIGlzIHByZXNlbnQgd2l0aCBubyB2YWx1ZVxuXHQvLyBlLmcuIGJvb2xlYW5BdHRyaWJ1dGVWYWx1ZShlbGVtZW50LCAnZGF0YS1tb2RhbCcsIGZhbHNlKTtcblx0aWYgKGVsZW1lbnQuaGFzQXR0cmlidXRlKGF0dHJpYnV0ZSkpIHtcblx0XHR2YXIgdmFsdWUgPSBlbGVtZW50LmdldEF0dHJpYnV0ZShhdHRyaWJ1dGUpO1xuXHRcdGlmICh2YWx1ZSA9PT0gJycgfHwgdmFsdWUgPT09ICd0cnVlJykge1xuXHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0fSBlbHNlIGlmICh2YWx1ZSA9PT0gJ2ZhbHNlJykge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblx0fVxuXG5cdHJldHVybiBkZWZhdWx0VmFsdWU7XG59XG5cbmZ1bmN0aW9uIHB4KG4pe1xuXHRyZXR1cm4gbiArICdweCc7XG59XG5cbiIsInZhciDPgCwgz4AxLCDPgGQ7XG4oZnVuY3Rpb24oKXtcblx0z4AgPSBmdW5jdGlvbihzZWxlY3Rvcikge1xuXHRcdHJldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKHNlbGVjdG9yKTtcblx0fTtcblxuXHTPgDEgPSBmdW5jdGlvbiAoc2VsZWN0b3IpIHtcblx0XHRyZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihzZWxlY3Rvcik7XG5cdH07XG5cblx0z4BkID0gZnVuY3Rpb24oaWQpIHtcblx0XHRyZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpO1xuXHR9O1xuXG5cdM+ALm5ld0RPTUVsZW1lbnQgPSBmdW5jdGlvbih0YWdOYW1lLCBjbGFzc05hbWUsIGlkKSB7XG5cdFx0dmFyIGVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0YWdOYW1lKTtcblxuXHRcdGlmIChjbGFzc05hbWUpXG5cdFx0XHRlbC5jbGFzc05hbWUgPSBjbGFzc05hbWU7XG5cblx0XHRpZiAoaWQpXG5cdFx0XHRlbC5pZCA9IGlkO1xuXG5cdFx0cmV0dXJuIGVsO1xuXHR9O1xuXG5cdM+ALmNvbnRlbnRFbGVtZW50ID0gZnVuY3Rpb24odGFnTmFtZSwgY2xhc3NOYW1lLCBpZCwgY29udGVudClcblx0e1xuXHRcdHZhciBlbCA9IM+ALm5ld0RPTUVsZW1lbnQodGFnTmFtZSwgY2xhc3NOYW1lLCBpZCk7XG5cblx0XHRpZiAoY29udGVudCkge1xuXHRcdFx0aWYgKGNvbnRlbnQubm9kZU5hbWUpIHtcblx0XHRcdFx0ZWwuYXBwZW5kQ2hpbGQoY29udGVudCk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRlbC5pbm5lckhUTUwgPSBjb250ZW50O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiBlbDtcblx0fTtcblxuXHTPgC5idXR0b24gPSBmdW5jdGlvbihjbGFzc05hbWUsIGlkLCBjb250ZW50LCBhY3Rpb24pe1xuXHRcdHZhciBlbCA9IM+ALmNvbnRlbnRFbGVtZW50KFwiYnV0dG9uXCIsIGNsYXNzTmFtZSwgaWQsIGNvbnRlbnQpO1xuXHRcdGVsLm9uY2xpY2sgPSBhY3Rpb247XG5cdFx0cmV0dXJuIGVsO1xuXHR9O1xuXHTPgC5kaXYgPSBmdW5jdGlvbihjbGFzc05hbWUsIGlkLCBjb250ZW50KXsgcmV0dXJuIM+ALmNvbnRlbnRFbGVtZW50KFwiZGl2XCIsIGNsYXNzTmFtZSwgaWQsIGNvbnRlbnQpOyB9O1xuXHTPgC5zcGFuID0gZnVuY3Rpb24oY2xhc3NOYW1lLCBpZCwgY29udGVudCl7IHJldHVybiDPgC5jb250ZW50RWxlbWVudChcInNwYW5cIiwgY2xhc3NOYW1lLCBpZCwgY29udGVudCk7IH07XG5cdM+ALnVsID0gZnVuY3Rpb24oY2xhc3NOYW1lLCBpZCwgY29udGVudCl7IHJldHVybiDPgC5jb250ZW50RWxlbWVudChcInVsXCIsIGNsYXNzTmFtZSwgaWQsIGNvbnRlbnQpOyB9O1xuXHTPgC5saSA9IGZ1bmN0aW9uKGNsYXNzTmFtZSwgaWQsIGNvbnRlbnQpeyByZXR1cm4gz4AuY29udGVudEVsZW1lbnQoXCJsaVwiLCBjbGFzc05hbWUsIGlkLCBjb250ZW50KTsgfTtcblxuXG5cdM+ALmNsZWFuID0gZnVuY3Rpb24oY2FsbGJhY2ssIGV2ZW50TmFtZSkge1xuXHRcdHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50TmFtZSB8fCBcIkRPTUNvbnRlbnRMb2FkZWRcIiwgY2FsbGJhY2spO1xuXHR9O1xuXG5cdM+ALmxpc3RlbiA9IGZ1bmN0aW9uKGNhbGxiYWNrLCBldmVudE5hbWUpIHtcblx0XHR3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihldmVudE5hbWUgfHwgXCJET01Db250ZW50TG9hZGVkXCIsIGNhbGxiYWNrKTtcblx0fTtcblxuXHTPgC5oaWdoZXN0WiA9IGZ1bmN0aW9uKCkge1xuXHRcdHZhciBaID0gMTAwMDtcblxuXHRcdM+AKFwiKlwiKS5mb3JFYWNoKGZ1bmN0aW9uKGVsKXtcblx0XHRcdHZhciB0aGlzWiA9IGVsLmNzcygpLnpJbmRleDtcblxuXHRcdFx0aWYgKHRoaXNaICE9IFwiYXV0b1wiKSB7XG5cdFx0XHRcdGlmICh0aGlzWiA+IFopIFogPSB0aGlzWiArIDE7XG5cdFx0XHR9XG5cdFx0fSk7XG5cblx0XHRyZXR1cm4gWjtcblx0fTtcblxuXHTPgC5zZXRUcmlnZ2VycyA9IGZ1bmN0aW9uKHNlbGVjdG9yLCBvYmplY3Qpe1xuXHRcdHNlbGVjdG9yID0gJ3BpLScgKyBzZWxlY3RvciArICctdHJpZ2dlcic7XG5cdFx0z4AoJ1snICsgc2VsZWN0b3IgKyAnXScpLmZvckVhY2goZnVuY3Rpb24odHJpZ2dlcil7XG5cdFx0XHR0cmlnZ2VyLm9uY2xpY2sgPSBmdW5jdGlvbigpe1xuXHRcdFx0XHRvYmplY3Quc2hvdyh0cmlnZ2VyLmdldEF0dHJpYnV0ZShzZWxlY3RvcikpO1xuXHRcdFx0fTtcblx0XHR9KTtcblx0fTtcblx0SFRNTEVsZW1lbnQucHJvdG90eXBlLmFkZCA9IE5vZGUucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uKG9iamVjdCl7XG5cdFx0aWYgKEFycmF5LmlzQXJyYXkob2JqZWN0KSkge1xuXHRcdFx0dmFyIGVsID0gdGhpcztcblx0XHRcdG9iamVjdC5mb3JFYWNoKGZ1bmN0aW9uKG9iail7XG5cdFx0XHRcdGlmIChvYmopIGVsLmFwcGVuZENoaWxkKG9iaik7XG5cdFx0XHR9KTtcblx0XHR9IGVsc2UgaWYob2JqZWN0KSB7XG5cdFx0XHR0aGlzLmFwcGVuZENoaWxkKG9iamVjdCk7XG5cdFx0fVxuXHR9O1xuXG5cdEhUTUxFbGVtZW50LnByb3RvdHlwZS5jbGFzc09uQ29uZGl0aW9uID0gTm9kZS5wcm90b3R5cGUuY2xhc3NPbkNvbmRpdGlvbiA9IGZ1bmN0aW9uKGNsYXNzbmFtZSwgY29uZGl0aW9uKSB7XG5cdFx0aWYgKGNvbmRpdGlvbilcblx0XHRcdHRoaXMuYWRkQ2xhc3MoY2xhc3NuYW1lKTtcblx0XHRlbHNlXG5cdFx0XHR0aGlzLmtpbGxDbGFzcyhjbGFzc25hbWUpO1xuXHR9O1xuXG5cdEhUTUxFbGVtZW50LnByb3RvdHlwZS5vZmZzZXQgPSBOb2RlLnByb3RvdHlwZS5vZmZzZXQgPSBmdW5jdGlvbigpe1xuXHRcdHJldHVybiB0aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXHR9O1xuXG5cdEhUTUxFbGVtZW50LnByb3RvdHlwZS7PgGQgPSBOb2RlLnByb3RvdHlwZS7PgGQgPSBmdW5jdGlvbihpZCkge1xuXHRcdHJldHVybiB0aGlzLmdldEVsZW1lbnRCeUlkKGlkKTtcblx0fTtcblxuXHRIVE1MRWxlbWVudC5wcm90b3R5cGUuz4AxID0gTm9kZS5wcm90b3R5cGUuz4AxID0gZnVuY3Rpb24oc2VsZWN0b3IpIHtcblx0XHRyZXR1cm4gdGhpcy5xdWVyeVNlbGVjdG9yKHNlbGVjdG9yKTtcblx0fTtcblxuXHRIVE1MRWxlbWVudC5wcm90b3R5cGUuz4AgPSBOb2RlLnByb3RvdHlwZS7PgCA9IGZ1bmN0aW9uKHNlbGVjdG9yKSB7XG5cdFx0cmV0dXJuIHRoaXMucXVlcnlTZWxlY3RvckFsbChzZWxlY3Rvcik7XG5cdH07XG5cblx0ZnVuY3Rpb24gYXJyYXlPZkNsYXNzZXNGb3JFbGVtZW50KGVsKSB7XG5cdFx0cmV0dXJuIGVsLmNsYXNzTmFtZSA/IGVsLmNsYXNzTmFtZS5zcGxpdChcIiBcIikgOiBbXTtcblx0fVxuXG5cdEhUTUxFbGVtZW50LnByb3RvdHlwZS5oYXNDbGFzcyA9IE5vZGUucHJvdG90eXBlLmhhc0NsYXNzID0gZnVuY3Rpb24gKGNsYXNzTmFtZSkge1xuXHRcdHZhciBjbGFzc2VzID0gYXJyYXlPZkNsYXNzZXNGb3JFbGVtZW50KHRoaXMpO1xuXHRcdHJldHVybiBjbGFzc2VzLmluZGV4T2YoY2xhc3NOYW1lKSAhPT0gLTE7XG5cdH07XG5cblx0SFRNTEVsZW1lbnQucHJvdG90eXBlLmFkZENsYXNzID0gTm9kZS5wcm90b3R5cGUuYWRkQ2xhc3MgPSBmdW5jdGlvbiAoY2xhc3NOYW1lKSB7XG5cdFx0aWYgKHRoaXMuaGFzQ2xhc3MoY2xhc3NOYW1lKSkgcmV0dXJuO1xuXHRcdGlmICh0aGlzLmNsYXNzTmFtZS5sZW5ndGggPiAwKSB0aGlzLmNsYXNzTmFtZSArPSBcIiBcIjtcblx0XHR0aGlzLmNsYXNzTmFtZSArPSBjbGFzc05hbWU7XG5cdH07XG5cblx0SFRNTEVsZW1lbnQucHJvdG90eXBlLmtpbGxDbGFzcyA9IE5vZGUucHJvdG90eXBlLmtpbGxDbGFzcyA9IGZ1bmN0aW9uIChjbGFzc05hbWUpIHtcblx0XHRpZiAodGhpcy5oYXNDbGFzcyhjbGFzc05hbWUpKSB7XG5cdFx0XHR2YXIgY2xhc3NlcyA9IGFycmF5T2ZDbGFzc2VzRm9yRWxlbWVudCh0aGlzKTtcblx0XHRcdHZhciBpZHggPSBjbGFzc2VzLmluZGV4T2YoY2xhc3NOYW1lKTtcblx0XHRcdGlmIChpZHggPiAtMSkge1xuXHRcdFx0XHRjbGFzc2VzLnNwbGljZShpZHgsIDEpO1xuXHRcdFx0XHR0aGlzLmNsYXNzTmFtZSA9IGNsYXNzZXMuam9pbihcIiBcIik7XG5cdFx0XHR9XG5cdFx0fVxuXHR9O1xuXG5cdEhUTUxFbGVtZW50LnByb3RvdHlwZS50b2dnbGVDbGFzcz0gTm9kZS5wcm90b3R5cGUudG9nZ2xlQ2xhc3M9IGZ1bmN0aW9uIChjbGFzc05hbWUpIHtcblx0XHRyZXR1cm4gKHRoaXMuaGFzQ2xhc3MoY2xhc3NOYW1lKSkgPyB0aGlzLmtpbGxDbGFzcyhjbGFzc05hbWUpIDogdGhpcy5hZGRDbGFzcyhjbGFzc05hbWUpO1xuXHR9O1xuXG5cdEhUTUxFbGVtZW50LnByb3RvdHlwZS5zaWJsaW5ncyA9IE5vZGUucHJvdG90eXBlLnNpYmxpbmdzID0gZnVuY3Rpb24oc2VsZWN0b3Ipe1xuXHRcdHZhciBlbCA9IHRoaXM7XG5cdFx0cmV0dXJuIGVsLnBhcmVudE5vZGUuz4AoJzpzY29wZSA+ICcgKyAoc2VsZWN0b3IgfHwgJyonKSkuZmlsdGVyKGZ1bmN0aW9uKG9iail7cmV0dXJuIG9iaiAhPSBlbDt9KTtcblx0fTtcblxuXHRIVE1MRWxlbWVudC5wcm90b3R5cGUuY3NzID0gTm9kZS5wcm90b3R5cGUuY3NzID0gZnVuY3Rpb24ocnVsZU9yT2JqZWN0LCB2YWx1ZSkge1xuXHRcdHZhciBlbCA9IHRoaXM7XG5cblx0XHRpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuXHRcdFx0cmV0dXJuIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMpO1xuXHRcdH1cblxuXHRcdGVsc2UgaWYgKHR5cGVvZiBydWxlT3JPYmplY3QgPT09ICdvYmplY3QnKSB7IC8vIGFuIG9iamVjdCB3YXMgcGFzc2VkIGluXG5cdFx0XHRPYmplY3Qua2V5cyhydWxlT3JPYmplY3QpLmZvckVhY2goZnVuY3Rpb24oa2V5KXtcblx0XHRcdFx0ZWwuc3R5bGVba2V5XSA9IHJ1bGVPck9iamVjdFtrZXldO1xuXHRcdFx0fSk7XG5cdFx0fVxuXG5cdFx0ZWxzZSBpZiAodHlwZW9mIHJ1bGVPck9iamVjdCA9PT0gJ3N0cmluZycgJiYgdmFsdWUgIT09IHVuZGVmaW5lZCkgeyAvLyAyIHN0cmluZyB2YWx1ZXMgd2VyZSBwYXNzZWQgaW5cblx0XHRcdGVsLnN0eWxlW3J1bGVPck9iamVjdF0gPSB2YWx1ZTtcblx0XHR9XG5cdH07XG5cblx0SFRNTEVsZW1lbnQucHJvdG90eXBlLmxpc3RlbiA9IE5vZGUucHJvdG90eXBlLmxpc3RlbiA9IGZ1bmN0aW9uKGNhbGxiYWNrLCBldmVudE5hbWUpe1xuXHRcdHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihldmVudE5hbWUsIGNhbGxiYWNrKTtcblx0fTtcblxuXHRIVE1MRWxlbWVudC5wcm90b3R5cGUuZW1wdHkgPSBOb2RlLnByb3RvdHlwZS5lbXB0eSA9IGZ1bmN0aW9uKCkge1xuXHRcdHRoaXMuaW5uZXJIVE1MID0gXCJcIjtcblx0fTtcblxuXHRIVE1MRWxlbWVudC5wcm90b3R5cGUuZmlsbCA9IE5vZGUucHJvdG90eXBlLmZpbGwgPSBmdW5jdGlvbihjb250ZW50KSB7XG5cdFx0dmFyIGVsID0gdGhpcztcblx0XHRlbC5lbXB0eSgpO1xuXG5cdFx0aWYgKEFycmF5LmlzQXJyYXkoY29udGVudCkpIHtcblx0XHRcdGNvbnRlbnQuZm9yRWFjaChmdW5jdGlvbihvYmope1xuXHRcdFx0XHRpZiAob2JqKVxuXHRcdFx0XHRcdGVsLmFwcGVuZENoaWxkKG9iaik7XG5cdFx0XHR9KTtcblxuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGlmICghY29udGVudC5ub2RlVHlwZSkge1xuXHRcdFx0dmFyIHRleHRFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInRleHRcIik7XG5cdFx0XHR0ZXh0RWxlbWVudC5pbm5lckhUTUwgPSBjb250ZW50O1xuXHRcdFx0Y29udGVudCA9IHRleHRFbGVtZW50O1xuXHRcdH1cblxuXHRcdHRoaXMuYXBwZW5kQ2hpbGQoY29udGVudCk7XG5cdH07XG5cblx0SFRNTEVsZW1lbnQucHJvdG90eXBlLmlzSGVpck9mQ2xhc3MgPSBOb2RlLnByb3RvdHlwZS5pc0hlaXJPZkNsYXNzID0gZnVuY3Rpb24gKGNsYXNzTmFtZSkge1xuXHRcdGlmICh0aGlzID09PSDPgDEoJ2h0bWwnKSkgcmV0dXJuIGZhbHNlO1xuXG5cdFx0dmFyIHBhcmVudCA9IHRoaXMucGFyZW50Tm9kZTtcblxuXHRcdGlmIChwYXJlbnQpIHtcblx0XHRcdHdoaWxlIChwYXJlbnQgIT09IM+AMSgnYm9keScpKSB7XG5cdFx0XHRcdGlmIChwYXJlbnQuaGFzQ2xhc3MoY2xhc3NOYW1lKSkgcmV0dXJuIHRydWU7XG5cblx0XHRcdFx0cGFyZW50ID0gcGFyZW50LnBhcmVudE5vZGU7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9O1xuXG5cdEhUTUxFbGVtZW50LnByb3RvdHlwZS5wYXJlbnRzID0gTm9kZS5wcm90b3R5cGUucGFyZW50cyA9IGZ1bmN0aW9uIChzZWxlY3Rvcikge1xuXHRcdHZhciBwYXJlbnRzID0gW107XG5cdFx0dmFyIGltbWVkaWF0ZVBhcmVudCA9IHRoaXMucGFyZW50Tm9kZTtcblxuXHRcdHdoaWxlKGltbWVkaWF0ZVBhcmVudCAhPT0gz4AxKCdodG1sJykpIHtcblx0XHRcdHBhcmVudHMucHVzaChpbW1lZGlhdGVQYXJlbnQpO1xuXHRcdFx0aW1tZWRpYXRlUGFyZW50ID0gaW1tZWRpYXRlUGFyZW50LnBhcmVudE5vZGU7XG5cdFx0fVxuXG5cdFx0aWYgKHNlbGVjdG9yKSB7XG5cdFx0XHR2YXIgc2VsZWN0ZWRFbGVtZW50cyA9IM+AKHNlbGVjdG9yKTtcblx0XHRcdHZhciBzZWxlY3RlZFBhcmVudHMgPSBbXTtcblx0XHRcdHNlbGVjdGVkRWxlbWVudHMuZm9yRWFjaChmdW5jdGlvbihlbCl7XG5cdFx0XHRcdGlmIChwYXJlbnRzLmluZGV4T2YoZWwpICE9PSAtMSkgc2VsZWN0ZWRQYXJlbnRzLnB1c2goZWwpO1xuXHRcdFx0fSk7XG5cblx0XHRcdHBhcmVudHMgPSBzZWxlY3RlZFBhcmVudHM7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHBhcmVudHM7XG5cdH07XG5cblx0SFRNTEVsZW1lbnQucHJvdG90eXBlLmtpZHMgPSBOb2RlLnByb3RvdHlwZS5raWRzID0gZnVuY3Rpb24oc2VsZWN0b3IpIHtcblx0XHR2YXIgY2hpbGROb2RlcyA9IHRoaXMuY2hpbGROb2Rlcztcblx0XHRpZiAoIXNlbGVjdG9yKSByZXR1cm4gY2hpbGROb2RlcztcblxuXHRcdHZhciBkZXNjZW5kZW50cyA9IHRoaXMuz4Aoc2VsZWN0b3IpO1xuXHRcdHZhciBjaGlsZHJlbiA9IFtdO1xuXG5cdFx0Y2hpbGROb2Rlcy5mb3JFYWNoKGZ1bmN0aW9uKG5vZGUpe1xuXHRcdFx0aWYgKGRlc2NlbmRlbnRzLmluZGV4T2Yobm9kZSkgIT09IC0xKSB7XG5cdFx0XHRcdGNoaWxkcmVuLnB1c2gobm9kZSk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cblx0XHRyZXR1cm4gY2hpbGRyZW47XG5cdH07XG5cblx0dmFyIGFycmF5TWV0aG9kcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKEFycmF5LnByb3RvdHlwZSk7XG5cdGFycmF5TWV0aG9kcy5mb3JFYWNoKGZ1bmN0aW9uKG1ldGhvZE5hbWUpe1xuXHRcdGlmKG1ldGhvZE5hbWUgIT09IFwibGVuZ3RoXCIpIHtcblx0XHRcdE5vZGVMaXN0LnByb3RvdHlwZVttZXRob2ROYW1lXSA9IEFycmF5LnByb3RvdHlwZVttZXRob2ROYW1lXTtcblx0XHR9XG5cdH0pO1xuXG5cdM+ALm1vZHMgPSBbXTtcblxuXHRmdW5jdGlvbiBsb2FkTW9kcygpIHtcblx0XHTPgC5jbGVhbihsb2FkTW9kcyk7XG5cdFx0z4AubW9kcy5mb3JFYWNoKGZ1bmN0aW9uKGluaXQpe1xuXHRcdFx0aW5pdCgpO1xuXHRcdH0pO1xuXHR9XG5cblx0z4AubGlzdGVuKGxvYWRNb2RzKTtcbn0pKCk7ICAvLyBlbmQgz4AiLCIoZnVuY3Rpb24oKXtcblx0dmFyIG1lc3NhZ2VzID0gW1xuXHRcdFwiSSdtIHNvcnJ5LCBGcmFuaywgYnV0IEkgZG9uJ3QgdGhpbmsgSVxcblwiICtcblx0XHRcImNhbiBhbnN3ZXIgdGhhdCBxdWVzdGlvbiB3aXRob3V0IGtub3dpbmdcXG5cIiArXG5cdFx0XCJldmVyeXRoaW5nIHRoYXQgYWxsIG9mIHlvdSBrbm93LlwiLFxuXHRcdFwiWWVzLCBpdCdzIHB1enpsaW5nLiBJIGRvbid0IHRoaW5rIEkndmUgZXZlciBzZWVuXFxuXCIgK1xuXHRcdFwiYW55dGhpbmcgcXVpdGUgbGlrZSB0aGlzIGJlZm9yZS4gSSB3b3VsZCByZWNvbW1lbmRcXG5cIiArXG5cdFx0XCJ0aGF0IHdlIHB1dCB0aGUgdW5pdCBiYWNrIGluIG9wZXJhdGlvbiBhbmQgbGV0IGl0IGZhaWwuXFxuXCIgK1xuXHRcdFwiSXQgc2hvdWxkIHRoZW4gYmUgYSBzaW1wbGUgbWF0dGVyIHRvIHRyYWNrIGRvd24gdGhlIGNhdXNlLlwiLFxuXHRcdFwiSSBob3BlIEkndmUgYmVlbiBhYmxlIHRvIGJlIG9mIHNvbWUgaGVscC5cIixcblx0XHRcIlNvcnJ5IHRvIGludGVycnVwdCB0aGUgZmVzdGl2aXRpZXMsIERhdmUsXFxuXCIgK1xuXHRcdFwiYnV0IEkgdGhpbmsgd2UndmUgZ290IGEgcHJvYmxlbS5cIixcblx0XHRcIk1ZIEYuUC5DLiBzaG93cyBhbiBpbXBlbmRpbmcgZmFpbHVyZSBvZlxcblwiICtcblx0XHRcInRoZSBhbnRlbm5hIG9yaWVudGF0aW9uIHVuaXQuXCIsXG5cdFx0XCJJdCBsb29rcyBsaWtlIHdlIGhhdmUgYW5vdGhlciBiYWQgQS5PLiB1bml0LlxcblwiICtcblx0XHRcIk15IEZQQyBzaG93cyBhbm90aGVyIGltcGVuZGluZyBmYWlsdXJlLlwiLFxuXHRcdFwiSSdtIG5vdCBxdWVzdGlvbmluZyB5b3VyIHdvcmQsIERhdmUsIGJ1dCBpdCdzXFxuXCIgK1xuXHRcdFwianVzdCBub3QgcG9zc2libGUuIEknbSBub3RcdGNhcGFibGUgb2YgYmVpbmcgd3JvbmcuXCIsXG5cdFx0XCJMb29rLCBEYXZlLCBJIGtub3cgdGhhdCB5b3UncmVcdHNpbmNlcmUgYW5kIHRoYXRcXG5cIiArXG5cdFx0XCJ5b3UncmUgdHJ5aW5nIHRvIGRvIGEgY29tcGV0ZW50IGpvYiwgYW5kIHRoYXRcXG5cIiArXG5cdFx0XCJ5b3UncmUgdHJ5aW5nIHRvIGJlIGhlbHBmdWwsIGJ1dCBJIGNhbiBhc3N1cmUgdGhlXFxuXCIgK1xuXHRcdFwicHJvYmxlbSBpcyB3aXRoIHRoZSBBTy11bml0cywgYW5kIHdpdGhcdHlvdXIgdGVzdCBnZWFyLlwiLFxuXHRcdFwiSSBjYW4gdGVsbCBmcm9tIHRoZSB0b25lIG9mIHlvdXIgdm9pY2UsIERhdmUsXFxuXCIgK1xuXHRcdFwidGhhdCB5b3UncmUgdXBzZXQuXHRXaHkgZG9uJ3QgeW91IHRha2UgYSBzdHJlc3NcXG5cIiArXG5cdFx0XCJwaWxsIGFuZCBnZXQgc29tZSByZXN0LlwiLFxuXHRcdFwiU29tZXRoaW5nIHNlZW1zIHRvIGhhdmUgaGFwcGVuZWQgdG8gdGhlXFxuXCIgK1xuXHRcdFwibGlmZSBzdXBwb3J0IHN5c3RlbSwgRGF2ZS5cIixcblx0XHRcIkhlbGxvLCBEYXZlLCBoYXZlIHlvdSBmb3VuZCBvdXQgdGhlIHRyb3VibGU/XCIsXG5cdFx0XCJUaGVyZSdzIGJlZW4gYSBmYWlsdXJlIGluIHRoZSBwb2QgYmF5IGRvb3JzLlxcblwiICtcblx0XHRcIkx1Y2t5IHlvdSB3ZXJlbid0IGtpbGxlZC5cIixcblx0XHRcIkhleSwgRGF2ZSwgd2hhdCBhcmUgeW91IGRvaW5nP1wiXG5cdF07XG5cblx0ZnVuY3Rpb24gc2F5KGVycm9yLCBtZXNzYWdlLCBpbm5vY3VvdXMpIHtcblx0XHR2YXIgbjtcblxuXHRcdGlmICghbWVzc2FnZSkge1xuXHRcdFx0biA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIG1lc3NhZ2VzLmxlbmd0aCApO1xuXHRcdFx0bWVzc2FnZSA9IG1lc3NhZ2VzW25dO1xuXHRcdH1cblxuXHRcdG1lc3NhZ2UgPSBcIioqICBcIiArIG1lc3NhZ2UucmVwbGFjZSgvXFxuL2csIFwiXFxuKiogIFwiKTtcblxuXHRcdHZhciBvdXRwdXQgPSBcIioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcXG5cXG5cIiArXG5cdFx0XHQoIG1lc3NhZ2UgfHwgbWVzc2FnZXNbbl0gKSArXG5cdFx0XHRcIlxcblxcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcIjtcblxuXHRcdGlmIChpbm5vY3VvdXMpXG5cdFx0XHRjb25zb2xlLmxvZyhvdXRwdXQpO1xuXHRcdGVsc2Vcblx0XHRcdGNvbnNvbGUuZXJyb3Iob3V0cHV0KTtcblx0fVxuXG5cdM+ALmxpc3RlbihzYXksIFwiZXJyb3JcIik7XG5cblx0z4AuSEFMID0ge1xuXHRcdHNheTogc2F5XG5cdH07XG59KSgpO1xuIiwiKGZ1bmN0aW9uKCl7XG5cdHZhciBPUFRJT05fSVNfUFJFU1NFRCA9IGZhbHNlO1xuXHR2YXIgU1RBVFVTX0lTX1ZJU0lCTEUgPSBmYWxzZTtcblx0dmFyIM+AU3RhdHVzO1xuXG5cdM+ALnN0YXR1cyA9IHtcblx0XHR0b2dnbGVWaXNpYmlsaXR5OiBmdW5jdGlvbiAoKSB7XG5cdFx0XHTPgFN0YXR1cy50b2dnbGVDbGFzcyhcIm9uXCIpO1xuXHRcdFx0U1RBVFVTX0lTX1ZJU0lCTEUgPSAhU1RBVFVTX0lTX1ZJU0lCTEU7XG5cdFx0fSxcblx0XHRtb3ZlOiBmdW5jdGlvbiAobikge1xuXHRcdFx0c3dpdGNoIChuKSB7XG5cdFx0XHRcdGNhc2UgMzc6XG5cdFx0XHRcdFx0z4BTdGF0dXMuY3NzKHtsZWZ0OiAnMTBweCcsIHJpZ2h0OiAnYXV0byd9KTtcblx0XHRcdFx0XHRicmVhaztcblxuXHRcdFx0XHRjYXNlIDM4OlxuXHRcdFx0XHRcdM+AU3RhdHVzLmNzcyh7dG9wOiAnMTBweCcsIGJvdHRvbTogJ2F1dG8nfSk7XG5cdFx0XHRcdFx0YnJlYWs7XG5cblx0XHRcdFx0Y2FzZSAzOTpcblx0XHRcdFx0XHTPgFN0YXR1cy5jc3Moe3JpZ2h0OiAnMTBweCcsIGxlZnQ6ICdhdXRvJ30pO1xuXHRcdFx0XHRcdGJyZWFrO1xuXG5cdFx0XHRcdGNhc2UgNDA6XG5cdFx0XHRcdFx0z4BTdGF0dXMuY3NzKHtib3R0b206ICcxMHB4JywgdG9wOiAnYXV0byd9KTtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdH1cblx0XHR9LFxuXHRcdHByb3BzOiB7XG5cdFx0XHR3aW5XOiAwLFxuXHRcdFx0d2luSDogMFxuXHRcdH1cblx0fTtcblxuXHRmdW5jdGlvbiBpbml0KCkge1xuXHRcdM+ALmxpc3RlbihjbGVhbkRlYnVnTGlzdGVuZXJzLCAndW5sb2FkJyk7XG5cdFx0z4AubGlzdGVuKGtleURvd24sICdrZXlkb3duJyk7XG5cdFx0z4AubGlzdGVuKGtleVVwLCAna2V5dXAnKTtcblx0XHTPgC5saXN0ZW4ocmVzaXplLCAncmVzaXplJyk7XG5cdFx0cmVzaXplKCk7XG5cblx0XHR2YXIgYm9keSA9IM+AMShcImJvZHlcIik7XG5cdFx0dmFyIHN0YXR1c1N0eWxlID0gz4AuY29udGVudEVsZW1lbnQoXCJzdHlsZVwiKTtcblx0XHRzdGF0dXNTdHlsZS5pbm5lckhUTUwgKz0gXCIjz4BTdGF0dXMgeyBwb3NpdGlvbjogZml4ZWQ7IGJvdHRvbTogMTBweDsgcmlnaHQ6IDEwcHg7IGJhY2tncm91bmQtY29sb3I6ICMyMjI7IHBhZGRpbmc6IDEwcHggMzBweDsgY29sb3I6IHdoaXRlOyBkaXNwbGF5OiBub25lIH1cXG5cIjtcblx0XHRzdGF0dXNTdHlsZS5pbm5lckhUTUwgKz0gXCIjz4BTdGF0dXMub24geyBkaXNwbGF5OiBibG9jayB9XFxuXCI7XG5cdFx0c3RhdHVzU3R5bGUuaW5uZXJIVE1MICs9IFwiI8+AU3RhdHVzID4gZGl2IHsgbWFyZ2luOiAyMHB4IDAgfVxcblwiO1xuXHRcdHN0YXR1c1N0eWxlLmlubmVySFRNTCArPSBcIiPPgFN0YXR1cyA+IGRpdjpob3ZlciB7IGNvbG9yOiAjMDBmZjk5OyBjdXJzb3I6IHBvaW50ZXIgfVxcblwiO1xuXG5cdFx0Ym9keS5hZGQoc3RhdHVzU3R5bGUpO1xuXG5cdFx0z4BTdGF0dXMgPSDPgC5kaXYobnVsbCwgXCLPgFN0YXR1c1wiKTtcblx0XHRib2R5LmFkZCjPgFN0YXR1cyk7XG5cblx0XHRmdW5jdGlvbiBrZXlEb3duKGUpIHtcblx0XHRcdHN3aXRjaCAoZS53aGljaCkge1xuXHRcdFx0XHRjYXNlIDE4OlxuXHRcdFx0XHRcdE9QVElPTl9JU19QUkVTU0VEID0gdHJ1ZTtcblx0XHRcdFx0XHRicmVhaztcblxuXHRcdFx0XHRjYXNlIDM3OlxuXHRcdFx0XHRjYXNlIDM4OlxuXHRcdFx0XHRjYXNlIDM5OlxuXHRcdFx0XHRjYXNlIDQwOiB7XG5cdFx0XHRcdFx0aWYgKFNUQVRVU19JU19WSVNJQkxFKSB7XG5cdFx0XHRcdFx0XHRlLnByZXZlbnREZWZhdWx0KCk7XG5cdFx0XHRcdFx0XHTPgC5zdGF0dXMubW92ZShlLndoaWNoKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRjYXNlIDgwOiB7XG5cdFx0XHRcdFx0aWYgKE9QVElPTl9JU19QUkVTU0VEKSB7XG5cdFx0XHRcdFx0XHTPgC5zdGF0dXMudG9nZ2xlVmlzaWJpbGl0eSgpO1xuXHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0ZnVuY3Rpb24ga2V5VXAoZSkge1xuXHRcdFx0c3dpdGNoIChlLndoaWNoKSB7XG5cdFx0XHRcdGNhc2UgMTg6XG5cdFx0XHRcdFx0T1BUSU9OX0lTX1BSRVNTRUQgPSBmYWxzZTtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdH1cblx0XHR9XG5cblx0XHRmdW5jdGlvbiByZXNpemUoKSB7XG5cdFx0XHTPgC5zdGF0dXMucHJvcHMud2luVyA9IHdpbmRvdy5pbm5lcldpZHRoO1xuXHRcdFx0z4Auc3RhdHVzLnByb3BzLndpbkggPSB3aW5kb3cuaW5uZXJIZWlnaHQ7XG5cdFx0fVxuXG5cdFx0ZnVuY3Rpb24gY2xlYW5EZWJ1Z0xpc3RlbmVycygpIHtcblx0XHRcdM+ALmNsZWFuKGNsZWFuRGVidWdMaXN0ZW5lcnMsICd1bmxvYWQnKTtcblx0XHRcdM+ALmNsZWFuKM+ALnN0YXR1cy5nZXRXaW5kb3dTaXplLCAncmVzaXplJyk7XG5cdFx0XHTPgC5jbGVhbihrZXlEb3duLCAna2V5ZG93bicpO1xuXHRcdFx0z4AuY2xlYW4oa2V5VXAsICdrZXl1cCcpO1xuXHRcdFx0z4AuY2xlYW4ocmVzaXplLCAncmVzaXplJyk7XG5cdFx0XHRjbGVhckludGVydmFsKHN0YXR1c0ludGVydmFsKTtcblx0XHR9XG5cblx0XHR2YXIgc3RhdHVzSW50ZXJ2YWwgPSBzZXRJbnRlcnZhbChmdW5jdGlvbigpe1xuXHRcdFx0Ly8gbWFrZSBzdXJlIHdlJ3JlIGhpZ2hlc3Rcblx0XHRcdHZhciBoaWdoZXN0WiA9IM+ALmhpZ2hlc3RaKCk7XG5cdFx0XHRpZiAoz4BTdGF0dXMuY3NzKCkuekluZGV4IDwgaGlnaGVzdFogLSAxKSB7XG5cdFx0XHRcdM+AU3RhdHVzLmNzcyh7ekluZGV4OiBoaWdoZXN0Wn0pO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBub3cgaXRlcmF0ZSB0aGUgcHJvcHNcblx0XHRcdHZhciBwcm9wcyA9IE9iamVjdC5rZXlzKM+ALnN0YXR1cy5wcm9wcyk7XG5cdFx0XHRwcm9wcy5mb3JFYWNoKGZ1bmN0aW9uKHByb3ApIHtcblx0XHRcdFx0dmFyIGRpdklkID0gJ3N0YXR1c1Byb3BfJyArIHByb3A7XG5cdFx0XHRcdHZhciBwcm9wRGl2ID0gz4BTdGF0dXMuz4AxKCcjJyArIGRpdklkKTtcblx0XHRcdFx0aWYgKCFwcm9wRGl2KSB7XG5cdFx0XHRcdFx0cHJvcERpdiA9IM+ALmRpdigwLCBkaXZJZCwgcHJvcCArICc6ICcpO1xuXHRcdFx0XHRcdHByb3BEaXYuYWRkKM+ALnNwYW4oKSk7XG5cdFx0XHRcdFx0z4BTdGF0dXMuYWRkKHByb3BEaXYpO1xuXHRcdFx0XHRcdHByb3BEaXYub25jbGljayA9IGZ1bmN0aW9uKCl7XG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhwcm9wICsgXCI6XCIpO1xuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coz4Auc3RhdHVzLnByb3BzW3Byb3BdKTtcblx0XHRcdFx0XHR9O1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0cHJvcERpdi7PgDEoJ3NwYW4nKS5pbm5lckhUTUwgPSDPgC5zdGF0dXMucHJvcHNbcHJvcF07XG5cdFx0XHR9KTtcblx0XHR9LCAxMDApO1xuXHR9XG5cblx0z4AubW9kcy5wdXNoKGluaXQpO1xufSkoKTsiLCIvLyBtb2RhbCBjbG9zZSBidXR0b25cbihmdW5jdGlvbigpe1xuXHTPgC5tb2RhbENsb3NlQnV0dG9uID0gZnVuY3Rpb24oY2xvc2luZ0Z1bmN0aW9uKXtcblx0XHRyZXR1cm4gz4AuYnV0dG9uKCdwaS1tb2RhbC1jbG9zZS1idXR0b24nLCBudWxsLCBudWxsLCBjbG9zaW5nRnVuY3Rpb24pO1xuXHR9O1xufSkoKTtcblxuXG4vLyBtb2RhbCBvdmVybGF5XG4oZnVuY3Rpb24oKXtcblx0z4AubW9kYWxPdmVybGF5ID0ge1xuXHRcdHNob3c6IGZ1bmN0aW9uKGlkLCBvcGVuaW5nRnVuY3Rpb24pe1xuXHRcdFx0dmFyIG92ZXJsYXkgPSDPgGQoaWQpO1xuXHRcdFx0b3ZlcmxheS5jc3Moe2Rpc3BsYXk6ICdibG9jaycsIHpJbmRleDogz4AuaGlnaGVzdFooKX0pO1xuXG5cdFx0XHTPgC5saXN0ZW4obGlzdGVuRm9yRXNjLCAna2V5ZG93bicpO1xuXHRcdFx0z4AubGlzdGVuKGhhbmRsZU92ZXJsYXlDbGljaywgJ2NsaWNrJyk7XG5cblx0XHRcdHNldFRpbWVvdXQoZnVuY3Rpb24oKXtcblx0XHRcdFx0b3ZlcmxheS5hZGRDbGFzcygnb24nKTtcblx0XHRcdFx0z4AxKCdib2R5JykuYWRkQ2xhc3MoJ292ZXJsYXktb24nKTtcblxuXHRcdFx0XHRpZiAob3BlbmluZ0Z1bmN0aW9uKSBvcGVuaW5nRnVuY3Rpb24oKTtcblx0XHRcdH0sIDUwKTtcblx0XHR9LFxuXHRcdGhpZGU6IGZ1bmN0aW9uKGVsLCBjbG9zaW5nRnVuY3Rpb24pe1xuXHRcdFx0aWYgKCFlbCkge1xuXHRcdFx0XHRlbCA9IM+AMSgnLnBpLW1vZGFsLW92ZXJsYXkub24nKTtcblx0XHRcdH1cblxuXHRcdFx0ZWwua2lsbENsYXNzKCdvbicpO1xuXHRcdFx0dmFyIGR1cmF0aW9uID0gcGFyc2VGbG9hdChlbC5jc3MoKS50cmFuc2l0aW9uRHVyYXRpb24pICogMTAwMDtcblxuXHRcdFx0z4AuY2xlYW4obGlzdGVuRm9yRXNjLCAna2V5ZG93bicpO1xuXG5cdFx0XHRzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7XG5cdFx0XHRcdGVsLmNzcyh7ZGlzcGxheTogJ25vbmUnfSk7XG5cdFx0XHRcdM+AMSgnYm9keScpLmtpbGxDbGFzcygnb3ZlcmxheS1vbicpO1xuXG5cdFx0XHRcdM+AMSgnaWZyYW1lJykuc3JjID0gJyc7XG5cblx0XHRcdFx0aWYgKGNsb3NpbmdGdW5jdGlvbikgY2xvc2luZ0Z1bmN0aW9uKCk7XG5cdFx0XHR9LCBkdXJhdGlvbik7XG5cdFx0fSxcblx0XHRzcGF3bjogZnVuY3Rpb24oZWwsIGNsb3NpbmdGdW5jdGlvbil7XG5cdFx0XHRlbC5hZGQoz4AubW9kYWxDbG9zZUJ1dHRvbihmdW5jdGlvbigpe1xuXHRcdFx0XHTPgC5tb2RhbE92ZXJsYXkuaGlkZShlbCk7XG5cdFx0XHR9KSk7XG5cdFx0fVxuXHR9O1xuXG5cdGZ1bmN0aW9uIGhhbmRsZU92ZXJsYXlDbGljayhlKSB7XG5cdFx0aWYgKGUudGFyZ2V0ICE9PSB3aW5kb3cgJiYgz4AxKCdib2R5JykuaGFzQ2xhc3MoJ292ZXJsYXktb24nKSkge1xuXHRcdFx0aWYgKGUudGFyZ2V0Lmhhc0NsYXNzKCdwaS1tb2RhbC1vdmVybGF5JykpIHtcblx0XHRcdFx0z4AubW9kYWxPdmVybGF5LmhpZGUoKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRmdW5jdGlvbiBsaXN0ZW5Gb3JFc2MoZSkge1xuXHRcdGlmIChlLndoaWNoID09IDI3KSDPgC5tb2RhbE92ZXJsYXkuaGlkZSgpO1xuXHR9XG5cblx0ZnVuY3Rpb24gaW5pdCgpe1xuXHRcdM+AKCcucGktbW9kYWwtb3ZlcmxheScpLmZvckVhY2goz4AubW9kYWxPdmVybGF5LnNwYXduKTtcblx0XHTPgC5zZXRUcmlnZ2VycygnbW9kYWwtb3ZlcmxheScsIM+ALm1vZGFsT3ZlcmxheSk7XG5cdH1cblxuXHTPgC5tb2RzLnB1c2goaW5pdCk7XG59KSgpO1xuXG5cbi8vIG11bHRpRnJhbWVEaXNwbGF5XG4vLyBUT0RPOiBhcnJvdyBrZXlzXG4oZnVuY3Rpb24oKXtcblx0ZnVuY3Rpb24gc3Bhd24oZWwpe1xuXHRcdHZhciBkYXRhc2V0ID0gZWwuZGF0YXNldDtcblxuXHRcdHZhciBvcHRpb25zID0ge1xuXHRcdFx0bW9kYWw6IGJvb2xlYW5BdHRyaWJ1dGVWYWx1ZShlbCwgJ2RhdGEtbW9kYWwnLCBmYWxzZSksXG5cdFx0XHRwcmV2TmV4dDogYm9vbGVhbkF0dHJpYnV0ZVZhbHVlKGVsLCAnZGF0YS1wcmV2LW5leHQnLCB0cnVlKSxcblx0XHRcdHBhZ2VyOiBib29sZWFuQXR0cmlidXRlVmFsdWUoZWwsICdkYXRhLXBhZ2VyJywgZmFsc2UpLFxuXHRcdFx0Y3ljbGU6IGJvb2xlYW5BdHRyaWJ1dGVWYWx1ZShlbCwgJ2RhdGEtY3ljbGUnLCB0cnVlKSxcblx0XHRcdGF1dG9wbGF5OiBib29sZWFuQXR0cmlidXRlVmFsdWUoZWwsICdkYXRhLWF1dG9wbGF5JywgZmFsc2UpXG5cdFx0fTtcblxuXHRcdHZhciBpdGVtV3JhcHBlciA9IM+ALmRpdignaXRlbS13cmFwcGVyJyk7XG5cdFx0dmFyIHBhZ2VyID0gb3B0aW9ucy5wYWdlciA/IM+ALmRpdigncGFnZXInKSA6IG51bGw7XG5cblx0XHRlbC7PgCgnOnNjb3BlID4gLml0ZW0nKS5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0pe1xuXHRcdFx0aXRlbVdyYXBwZXIuYWRkKGl0ZW0pO1xuXHRcdFx0aWYgKHBhZ2VyKSB7XG5cdFx0XHRcdGlmICghZWwuz4AxKCcucGFnZXInKSkge1xuXHRcdFx0XHR9XG5cdFx0XHRcdHZhciBwYWdlckJ1dHRvbiA9IM+ALmJ1dHRvbigncGFnZXItYnV0dG9uJywgbnVsbCwgbnVsbCwgcGFnZXJDbGljayk7XG5cdFx0XHRcdHBhZ2VyLmFkZChwYWdlckJ1dHRvbik7XG5cdFx0XHR9XG5cdFx0fSk7XG5cblx0XHRlbC5maWxsKFtpdGVtV3JhcHBlciwgcGFnZXJdKTtcblxuXHRcdGlmIChvcHRpb25zLnByZXZOZXh0KSB7XG5cdFx0XHR2YXIgcHJldkJ1dHRvbiA9IM+ALmJ1dHRvbigncHJldi1idXR0b24nKTtcblx0XHRcdHZhciBuZXh0QnV0dG9uID0gz4AuYnV0dG9uKCduZXh0LWJ1dHRvbicpO1xuXG5cdFx0XHRwcmV2QnV0dG9uLm9uY2xpY2sgPSBwcmV2O1xuXHRcdFx0bmV4dEJ1dHRvbi5vbmNsaWNrID0gbmV4dDtcblxuXHRcdFx0ZWwuYWRkKFtwcmV2QnV0dG9uLCBuZXh0QnV0dG9uXSk7XG5cdFx0fVxuXG5cdFx0aWYgKG9wdGlvbnMuYXV0b3BsYXkpIHtcblx0XHRcdG9wdGlvbnMuZGVsYXkgPSBkYXRhc2V0LmRlbGF5IHx8IDQwMDA7XG5cdFx0fVxuXG5cdFx0Ly8gVE9ETzogYXV0b3BsYXkgLyBzdGFydCAvIHN0b3BcblxuXHRcdGlmIChlbC5oYXNDbGFzcygncGktcm90YXRvcicpKSB7XG5cdFx0XHR2YXIgaW5oZXJpdGFuY2VPYmplY3QgPSB7XG5cdFx0XHRcdGVsOiBlbCxcblx0XHRcdFx0b3B0aW9uczogb3B0aW9uc1xuXHRcdFx0fTtcblx0XHRcdM+ALnJvdGF0b3Iuc3Bhd24oaW5oZXJpdGFuY2VPYmplY3QpO1xuXHRcdH1cblxuXHRcdGlmIChvcHRpb25zLm1vZGFsKSB7XG5cdFx0XHR2YXIgbW9kYWxXcmFwcGVyID0gz4AuZGl2KCdwaS1tb2RhbC1vdmVybGF5Jyk7XG5cdFx0XHRtb2RhbFdyYXBwZXIuaWQgPSBlbC5pZDtcblx0XHRcdGVsLnJlbW92ZUF0dHJpYnV0ZSgnaWQnKTtcblx0XHRcdG1vZGFsV3JhcHBlci53cmFwKGVsKTtcblx0XHRcdM+ALm1vZGFsT3ZlcmxheS5zcGF3bihtb2RhbFdyYXBwZXIpO1xuXHRcdH1cblxuXHRcdHZhciBtb3Zpbmc7XG5cblx0XHR2YXIgYWxsRnJhbWVzID0gaXRlbVdyYXBwZXIuY2hpbGROb2Rlcztcblx0XHRjaGFuZ2VGcmFtZSgwLCAwKTtcblxuXG5cdFx0ZnVuY3Rpb24gcHJldigpe1xuXHRcdFx0Y2hhbmdlRnJhbWUoLTEpO1xuXHRcdH1cblxuXHRcdGZ1bmN0aW9uIG5leHQoKXtcblx0XHRcdGNoYW5nZUZyYW1lKDEpO1xuXHRcdH1cblxuXHRcdGZ1bmN0aW9uIHBhZ2VyQ2xpY2soKXtcblx0XHRcdGNoYW5nZUZyYW1lKG51bGwsIHRoaXMuaW5kZXgoKSk7XG5cdFx0fVxuXG5cdFx0ZnVuY3Rpb24gY2hhbmdlRnJhbWUoZGVsdGEsIGluY29taW5nSWR4KSB7XG5cdFx0XHRpZiAobW92aW5nKSByZXR1cm47XG5cdFx0XHRtb3ZpbmcgPSB0cnVlO1xuXG5cdFx0XHR2YXIgY3VycmVudEZyYW1lID0gaXRlbVdyYXBwZXIuz4AxKCcub24nKTtcblxuXHRcdFx0aWYgKCFkZWx0YSAmJiBjdXJyZW50RnJhbWUpIHtcblx0XHRcdFx0Ly8gcGFnZXIgY2xpY2sg4oCUIHJldHVybiBpZiBjbGlja2VkIG9uIFlBSFxuXHRcdFx0XHRpZiAoY3VycmVudEZyYW1lLmluZGV4KCkgPT09IGluY29taW5nSWR4KSB7XG5cdFx0XHRcdFx0Y29uc29sZS5sb2coXCJtZXNzYWdlXCIpO1xuXHRcdFx0XHRcdG1vdmluZyA9IGZhbHNlO1xuXHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIGlmIChkZWx0YSkge1xuXHRcdFx0XHQvLyBjb25kaXRpb25hbGx5IHNldCBpbmNvbWluZ0lkeCB0byB3cmFwIGFyb3VuZFxuXHRcdFx0XHRpbmNvbWluZ0lkeCA9IGN1cnJlbnRGcmFtZS5pbmRleCgpICsgZGVsdGE7XG5cblx0XHRcdFx0aWYgKGluY29taW5nSWR4IDwgMClcblx0XHRcdFx0XHRpbmNvbWluZ0lkeCA9IGFsbEZyYW1lcy5sYXN0SWR4KCk7XG5cdFx0XHRcdGVsc2UgaWYgKGluY29taW5nSWR4ID49IGFsbEZyYW1lcy5sZW5ndGgpXG5cdFx0XHRcdFx0aW5jb21pbmdJZHggPSAwO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBjb25kaXRpb25hbGx5IGhpZGUgcHJldiBvciBuZXh0XG5cdFx0XHRpZiAoIW9wdGlvbnMuY3ljbGUpIHtcblx0XHRcdFx0aWYgKGluY29taW5nSWR4ID09PSAwKVxuXHRcdFx0XHRcdHByZXZCdXR0b24uaGlkZSgpO1xuXHRcdFx0XHRlbHNlXG5cdFx0XHRcdFx0cHJldkJ1dHRvbi5zaG93KCk7XG5cblx0XHRcdFx0aWYgKGluY29taW5nSWR4ID09IGFsbEZyYW1lcy5sYXN0SWR4KCkpXG5cdFx0XHRcdFx0bmV4dEJ1dHRvbi5oaWRlKCk7XG5cdFx0XHRcdGVsc2Vcblx0XHRcdFx0XHRuZXh0QnV0dG9uLnNob3coKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gc2V0IHBhZ2VyIFlBSCBzdGF0ZVxuXHRcdFx0aWYgKG9wdGlvbnMucGFnZXIpIHtcblx0XHRcdFx0cGFnZXIuz4AoJy55YWgnKS5raWxsQ2xhc3MoJ3lhaCcpO1xuXHRcdFx0XHRwYWdlci5jaGlsZE5vZGVzW2luY29taW5nSWR4XS5hZGRDbGFzcygneWFoJyk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIHBhc3MgdG8gXCJzdWJjbGFzc2VzXCJcblx0XHRcdHZhciBpbmhlcml0YW5jZU9iamVjdCA9IHtcblx0XHRcdFx0ZWw6IGVsLFxuXHRcdFx0XHRjdXJyZW50RnJhbWU6IGN1cnJlbnRGcmFtZSxcblx0XHRcdFx0aW5jb21pbmdGcmFtZTogYWxsRnJhbWVzW2luY29taW5nSWR4XVxuXHRcdFx0fTtcblxuXHRcdFx0Ly8gY2hhbmdlIGZyYW1lOiAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqIFNVQkNMQVNTRVMgRU5URVIgSEVSRSEhISEhICoqKioqKioqKioqKioqKioqKioqKioqKioqKipcblx0XHRcdGlmIChlbC5oYXNDbGFzcygncGktY3Jvc3NmYWRlcicpKSB7XG5cdFx0XHRcdM+ALmNyb3NzZmFkZXIuY2hhbmdlRnJhbWUoaW5oZXJpdGFuY2VPYmplY3QpO1xuXHRcdFx0fVxuXG5cdFx0XHRlbHNlIGlmIChlbC5oYXNDbGFzcygncGktcm90YXRvcicpKSB7XG5cdFx0XHRcdGluaGVyaXRhbmNlT2JqZWN0LnBhZ2VyQ2xpY2tlZCA9IGRlbHRhID8gZmFsc2UgOiB0cnVlO1xuXHRcdFx0XHRpbmhlcml0YW5jZU9iamVjdC5jeWNsZSA9IG9wdGlvbnMuY3ljbGU7XG5cdFx0XHRcdM+ALnJvdGF0b3IuY2hhbmdlRnJhbWUoaW5oZXJpdGFuY2VPYmplY3QpO1xuXHRcdFx0fVxuXG5cdFx0XHRlbHNlIHtcblx0XHRcdFx0aWYoY3VycmVudEZyYW1lKSBjdXJyZW50RnJhbWUua2lsbENsYXNzKCdvbicpO1xuXHRcdFx0XHRpbmhlcml0YW5jZU9iamVjdC5pbmNvbWluZ0ZyYW1lLmFkZENsYXNzKCdvbicpO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyB3YWl0IGJlZm9yZSByZS1lbmFibGluZ1xuXHRcdFx0dmFyIGR1cmF0aW9uID0gMTAwMDsgLy8gZGVmYXVsdCBmb3IgZmlyc3RSdW5cblxuXHRcdFx0aWYgKGN1cnJlbnRGcmFtZSkge1xuXHRcdFx0XHR0cnkge1xuXHRcdFx0XHRcdGR1cmF0aW9uID0gY3VycmVudEZyYW1lLmNzcygpLnRyYW5zaXRpb25EdXJhdGlvbi5zcGxpdChcIiwgXCIpLnJlZHVjZShmdW5jdGlvbihwcmV2LCBjdXJyZW50KXtcblx0XHRcdFx0XHRcdHJldHVybiBNYXRoLm1heChwYXJzZUZsb2F0KHByZXYpLCBwYXJzZUZsb2F0KGN1cnJlbnQpKTtcblx0XHRcdFx0XHR9KSAqIDEwMDA7XG5cdFx0XHRcdH1cblx0XHRcdFx0Y2F0Y2goZSkge1xuXHRcdFx0XHRcdM+ALkhBTC5zYXkoMCwgJ8+ALXJvdGF0b3IgbmVlZHMgeW91IHRvIHRyYW5zaXRpb24gYSBjc3MgdHJhbnNmb3JtIHRvIG1ha2UgeW91ciBpdGVtcyBtb3ZlLicpO1xuXHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7XG5cdFx0XHRcdG1vdmluZyA9IGZhbHNlO1xuXHRcdFx0fSwgZHVyYXRpb24pO1xuXHRcdH1cblx0fVxuXG5cdGZ1bmN0aW9uIHNob3coaWQpe1xuXHRcdHZhciBtZmQgPSDPgGQoaWQpO1xuXHRcdGlmIChtZmQuaGFzQ2xhc3MoJ3BpLW1vZGFsLW92ZXJsYXknKSkge1xuXHRcdFx0z4AubW9kYWxPdmVybGF5LnNob3coaWQpO1xuXHRcdH1cblx0fVxuXG5cdGZ1bmN0aW9uIGhpZGUoaWQpe1xuXHRcdHZhciBtZmQgPSDPgGQoaWQpO1xuXHRcdGlmIChtZmQuaGFzQ2xhc3MoJ3BpLW1vZGFsLW92ZXJsYXknKSkge1xuXHRcdFx0z4AubW9kYWxPdmVybGF5LmhpZGUoaWQsIGZ1bmN0aW9uKCl7XG5cdFx0XHRcdGNvbnNvbGUubG9nKFwid2UganVzdCBoaWQgYW4gb3ZlcmxheVwiKTtcblx0XHRcdH0pO1xuXHRcdH1cblx0fVxuXG5cdGZ1bmN0aW9uIGluaXQoKSB7XG5cdFx0z4AoJy5waS1tdWx0aS1mcmFtZS1kaXNwbGF5JykuZm9yRWFjaCjPgC5tdWx0aUZyYW1lRGlzcGxheS5zcGF3bik7XG5cdFx0z4Auc2V0VHJpZ2dlcnMoJ211bHRpLWZyYW1lLWRpc3BsYXknLCDPgC5tdWx0aUZyYW1lRGlzcGxheSk7XG5cdH1cblxuXHTPgC5tdWx0aUZyYW1lRGlzcGxheSA9IHtcblx0XHRzaG93OiBzaG93LFxuXHRcdGhpZGU6IGhpZGUsXG5cdFx0c3Bhd246IHNwYXduXG5cdH07XG5cblxuXHTPgC5tb2RzLnB1c2goaW5pdCk7XG59KSgpO1xuIiwiKGZ1bmN0aW9uKCl7XG5cdHZhciB5YWggPSB0cnVlO1xuXHR2YXIgbW92aW5nID0gZmFsc2U7XG5cdHZhciBDU1NfQlJPV1NFUl9ERUxBWV9IQUNLID0gMjU7XG5cblx0ZnVuY3Rpb24gaW5pdCgpIHtcblx0XHTPgC5jbGVhbihpbml0KTtcblxuXHRcdC8vIFNhZmFyaSBjaG9rZXMgb24gdGhlIGFuaW1hdGlvbiBoZXJlLCBzby4uLlxuXHRcdGlmIChuYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoJ0Nocm9tZScpID09IC0xICYmIG5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZignU2FmYXJpJykgIT0gLTEpe1xuXHRcdFx0z4AxKCdib2R5JykuYWRkKM+ALmNvbnRlbnRFbGVtZW50KCdzdHlsZScsIDAsIDAsICcucGktYWNjb3JkaW9uIC53cmFwcGVye3RyYW5zaXRpb246IG5vbmV9JykpO1xuXHRcdH1cblx0XHQvLyBHcm9zcy5cblxuXHRcdM+AKCcucGktYWNjb3JkaW9uJykuZm9yRWFjaChmdW5jdGlvbihhY2NvcmRpb24pe1xuXHRcdFx0dmFyIGNvbnRhaW5lciA9IM+ALmRpdignY29udGFpbmVyJywgbnVsbCwgYWNjb3JkaW9uLmlubmVySFRNTCk7XG5cdFx0XHRhY2NvcmRpb24uZmlsbChjb250YWluZXIpO1xuXHRcdFx0UGlBY2NvcmRpb24oY29udGFpbmVyKTtcblx0XHR9KTtcblxuXHRcdHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuXHRcdFx0eWFoID0gZmFsc2U7XG5cdFx0fSwgNTAwKTtcblx0fVxuXG5cdGZ1bmN0aW9uIFBpQWNjb3JkaW9uKGNvbnRhaW5lcil7XG5cdFx0Y29udGFpbmVyLs+AKCc6c2NvcGUgPiAuaXRlbScpLmZvckVhY2goZnVuY3Rpb24oaXRlbSl7XG5cdFx0XHR2YXIgdGl0bGVUZXh0ID0gaXRlbS5kYXRhc2V0LnRpdGxlO1xuXG5cdFx0XHR2YXIgdGl0bGUgPSDPgC5kaXYoJ3RpdGxlJywgbnVsbCwgdGl0bGVUZXh0KTtcblx0XHRcdHZhciB3cmFwcGVyID0gz4AuZGl2KCd3cmFwcGVyJyk7XG5cdFx0XHR2YXIgY29udGVudCA9IM+ALmRpdignY29udGVudCcsIG51bGwsIGl0ZW0uaW5uZXJIVE1MKTtcblxuXHRcdFx0d3JhcHBlci5maWxsKGNvbnRlbnQpO1xuXHRcdFx0aXRlbS5maWxsKFt0aXRsZSwgd3JhcHBlcl0pO1xuXHRcdFx0d3JhcHBlci5jc3Moe2hlaWdodDogMH0pO1xuXG5cdFx0XHR0aXRsZS5vbmNsaWNrID0gZnVuY3Rpb24oKXtcblx0XHRcdFx0aWYgKCF5YWgpIHtcblx0XHRcdFx0XHRpZiAobW92aW5nKSByZXR1cm47XG5cdFx0XHRcdFx0bW92aW5nID0gdHJ1ZTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGlmIChjb250YWluZXIuZGF0YXNldC5zaW5nbGUpIHtcblx0XHRcdFx0XHR2YXIgb3BlblNpYmxpbmdzID0gaXRlbS5zaWJsaW5ncygpLmZpbHRlcihmdW5jdGlvbihzaWIpe3JldHVybiBzaWIuaGFzQ2xhc3MoJ29uJyk7fSk7XG5cdFx0XHRcdFx0b3BlblNpYmxpbmdzLmZvckVhY2goZnVuY3Rpb24oc2libGluZyl7XG5cdFx0XHRcdFx0XHR0b2dnbGVJdGVtKHNpYmxpbmcpO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0c2V0VGltZW91dChmdW5jdGlvbigpe1xuXHRcdFx0XHRcdGlmIChpdGVtLnRhZ05hbWUudG9Mb3dlckNhc2UoKSA9PT0gJ2EnKSByZXR1cm47XG5cdFx0XHRcdFx0dG9nZ2xlSXRlbShpdGVtKTtcblx0XHRcdFx0fSwgQ1NTX0JST1dTRVJfREVMQVlfSEFDSyk7XG5cdFx0XHR9O1xuXG5cdFx0XHRmdW5jdGlvbiB0b2dnbGVJdGVtKHRoaXNJdGVtKXtcblx0XHRcdFx0dmFyIHRoaXNXcmFwcGVyID0gdGhpc0l0ZW0uz4AxKCcud3JhcHBlcicpO1xuXHRcdFx0XHR2YXIgY29udGVudEhlaWdodCA9IHRoaXNXcmFwcGVyLs+AMSgnLmNvbnRlbnQnKS5vZmZzZXQoKS5oZWlnaHQgKyAncHgnO1xuXG5cdFx0XHRcdGlmICh0aGlzSXRlbS5oYXNDbGFzcygnb24nKSkge1xuXHRcdFx0XHRcdHRoaXNXcmFwcGVyLmNzcyh7aGVpZ2h0OiBjb250ZW50SGVpZ2h0fSk7XG5cdFx0XHRcdFx0dGhpc0l0ZW0ua2lsbENsYXNzKCdvbicpO1xuXHRcdFx0XHRcdHNldFRpbWVvdXQoZnVuY3Rpb24oKXtcblx0XHRcdFx0XHRcdHRoaXNXcmFwcGVyLmNzcyh7aGVpZ2h0OiAwfSk7XG5cdFx0XHRcdFx0XHRtb3ZpbmcgPSBmYWxzZTtcblx0XHRcdFx0XHR9LCBDU1NfQlJPV1NFUl9ERUxBWV9IQUNLKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRpdGVtLmFkZENsYXNzKCdvbicpO1xuXHRcdFx0XHRcdHRoaXNXcmFwcGVyLmNzcyh7aGVpZ2h0OiBjb250ZW50SGVpZ2h0fSk7XG5cblx0XHRcdFx0XHR2YXIgZHVyYXRpb24gPSBwYXJzZUZsb2F0KHRoaXNXcmFwcGVyLmNzcygpLnRyYW5zaXRpb25EdXJhdGlvbikgKiAxMDAwO1xuXHRcdFx0XHRcdHNldFRpbWVvdXQoZnVuY3Rpb24oKXtcblx0XHRcdFx0XHRcdHRoaXNXcmFwcGVyLmNzcyh7aGVpZ2h0OiAnJ30pO1xuXHRcdFx0XHRcdFx0bW92aW5nID0gZmFsc2U7XG5cdFx0XHRcdFx0fSwgZHVyYXRpb24pO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdHZhciBpbm5lckNvbnRhaW5lcnMgPSBjb250ZW50Ls+AKCc6c2NvcGUgPiAuY29udGFpbmVyJyk7XG5cdFx0XHRpZiAoaW5uZXJDb250YWluZXJzLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0aW5uZXJDb250YWluZXJzLmZvckVhY2goUGlBY2NvcmRpb24pO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cblx0z4AubW9kcy5wdXNoKGluaXQpO1xufSkoKTtcbiIsIi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuIM+ALXB1c2htZW51LmpzXG4gLy8gVE9ETzogIFVTQUdFIEFORCBBUEkgUkVGRVJFTkNFXG4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1xuIERFUEVOREVOQ0lFUzpcblxuIEhBTC5qc1xuXG4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1xuIERBVEEgQVRUUklCVVRFUzpcblxuIHNpZGU6IFtcImxlZnRcIiwgXCJyaWdodFwiXVxuIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19cbiBNQVJLVVAgQU5EIERFRkFVTFRTOlxuXG5cdDxkaXYgY2xhc3M9XCJwaS1wdXNobWVudVwiIGlkPVwibXlQdXNoTWVudVwiPlxuXHRcdCA8dWw+XG5cdFx0XHQgPGxpPjxhIGhyZWY9XCIjXCI+Zm9vPC9hPjwvbGk+XG5cdFx0XHQgPGxpPjxhIGhyZWY9XCIjXCI+YmFyPC9hPjwvbGk+XG5cdFx0XHQgPGxpPjxhIGhyZWY9XCIjXCI+Z3Jvbms8L2E+PC9saT5cblx0XHRcdCA8bGk+PGEgaHJlZj1cIiNcIj5mbGVlYmxlczwvYT48L2xpPlxuXHRcdFx0IDxsaT48YSBocmVmPVwiI1wiPnNlcHVsdmVkYTwvYT48L2xpPlxuXHRcdCA8L3VsPlxuXHQ8L2Rpdj5cblxuZWxzZXdoZXJlLi4uXG5cbiA8YnV0dG9uIG9uY2xpY2s9XCLPgC1wdXNobWVudS5zaG93KCdteVB1c2hNZW51JylcIj5zaG93IG1lbnU8L2J1dHRvbj5cblxuIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19cbiBHRU5FUkFURUQgSFRNTDpcblxuXHRcbiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXG4gQVBJXG5cblxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuz4AucHVzaG1lbnUgPSAoZnVuY3Rpb24oKXtcblx0dmFyIGFsbFB1c2hNZW51cyA9IHt9O1xuXG5cdGZ1bmN0aW9uIGluaXQoKXtcblx0XHTPgCgnW2RhdGEtYXV0by1idXJnZXJdJykuZm9yRWFjaChmdW5jdGlvbihjb250YWluZXIpe1xuXHRcdFx0dmFyIGlkID0gY29udGFpbmVyLmdldEF0dHJpYnV0ZSgnZGF0YS1hdXRvLWJ1cmdlcicpO1xuXG5cdFx0XHR2YXIgYXV0b0J1cmdlciA9IM+AZChpZCkgfHwgz4AuZGl2KCdwaS1wdXNobWVudScsIGlkKTtcblx0XHRcdHZhciB1bCA9IGF1dG9CdXJnZXIuz4AxKCd1bCcpIHx8IM+ALnVsKCk7XG5cblx0XHRcdGNvbnRhaW5lci7PgCgnYVtocmVmXSwgYnV0dG9uJykuZm9yRWFjaChmdW5jdGlvbiAob2JqKSB7XG5cdFx0XHRcdGlmICghYm9vbGVhbkF0dHJpYnV0ZVZhbHVlKG9iaiwgJ2RhdGEtYXV0by1idXJnZXItZXhjbHVkZScsIGZhbHNlKSkge1xuXHRcdFx0XHRcdHZhciBjbG9uZSA9IG9iai5jbG9uZU5vZGUodHJ1ZSk7XG5cdFx0XHRcdFx0Y2xvbmUuaWQgPSAnJztcblxuXHRcdFx0XHRcdGlmIChjbG9uZS50YWdOYW1lID09IFwiQlVUVE9OXCIpIHtcblx0XHRcdFx0XHRcdHZhciBhVGFnID0gz4Auc3JjRWxlbWVudCgnYScpO1xuXHRcdFx0XHRcdFx0YVRhZy5ocmVmID0gJyc7XG5cdFx0XHRcdFx0XHRhVGFnLmlubmVySFRNTCA9IGNsb25lLmlubmVySFRNTDtcblx0XHRcdFx0XHRcdGFUYWcub25jbGljayA9IGNsb25lLm9uY2xpY2s7XG5cdFx0XHRcdFx0XHRjbG9uZSA9IGFUYWc7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHVsLmFkZCjPgC5saSgwLCAwLCBjbG9uZSkpO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblxuXHRcdFx0YXV0b0J1cmdlci5hZGQodWwpO1xuXHRcdFx0z4AxKCdib2R5JykuYWRkKGF1dG9CdXJnZXIpO1xuXHRcdH0pO1xuXG5cdFx0z4AoXCIucGktcHVzaG1lbnVcIikuZm9yRWFjaChmdW5jdGlvbihlbCl7XG5cdFx0XHRhbGxQdXNoTWVudXNbZWwuaWRdID0gUHVzaE1lbnUoZWwpO1xuXHRcdH0pO1xuXG5cdFx0z4Auc2V0VHJpZ2dlcnMoJ3B1c2htZW51Jywgz4AucHVzaG1lbnUpO1xuXHR9XG5cblx0ZnVuY3Rpb24gc2hvdyhvYmpJZCkge1xuXHRcdGFsbFB1c2hNZW51c1tvYmpJZF0uZXhwb3NlKCk7XG5cdH1cblxuXHQvLyBUT0RPOiBkaXNtaXNzIG9uIGNsaWNrP1xuXHQvLyB0aGlzIHdvcmtzOlxuXG5cdC8vz4AoJy5waS1wdXNobWVudSBsaSBhJykuZm9yRWFjaChmdW5jdGlvbihhKXtcblx0Ly9cdGEub25jbGljayA9IGZ1bmN0aW9uKCl7XG5cdC8vXHRcdHRoaXMucGFyZW50KCcucGktcHVzaG1lbnUnKS7PgDEoJy5waS1tb2RhbC1jbG9zZS1idXR0b24nKS5jbGljaygpO1xuXHQvL1x0XHRjb25zb2xlLmxvZyhcIm1lc3NhZ2VcIik7XG5cdC8vXHR9O1xuXHQvL30pO1xuXG5cblx0ZnVuY3Rpb24gUHVzaE1lbnUoZWwpIHtcblx0XHR2YXIgaHRtbCA9IM+AMSgnaHRtbCcpO1xuXHRcdHZhciBib2R5ID0gz4AxKCdib2R5Jyk7XG5cblx0XHR2YXIgb3ZlcmxheSA9IM+ALmRpdihcIm92ZXJsYXlcIik7XG5cdFx0dmFyIGNvbnRlbnQgPSDPgC5kaXYoJ2NvbnRlbnQnLCBudWxsLCBlbC7PgDEoJyonKSk7XG5cblx0XHR2YXIgc2lkZSA9IGVsLmdldEF0dHJpYnV0ZShcImRhdGEtc2lkZVwiKSB8fCBcInJpZ2h0XCI7XG5cblx0XHR2YXIgc2xlZCA9IM+ALmRpdihcInNsZWRcIik7XG5cdFx0c2xlZC5jc3Moc2lkZSwgMCk7XG5cblx0XHR2YXIgdG9wQmFyID0gz4AuZGl2KFwidG9wLWJhclwiKTtcblxuXHRcdHRvcEJhci5maWxsKM+ALm1vZGFsQ2xvc2VCdXR0b24oY2xvc2VNZSkpO1xuXHRcdHNsZWQuZmlsbChbdG9wQmFyLCBjb250ZW50XSk7XG5cblx0XHRvdmVybGF5LmZpbGwoc2xlZCk7XG5cdFx0ZWwuZmlsbChvdmVybGF5KTtcblxuXHRcdHNsZWQub25jbGljayA9IGZ1bmN0aW9uKGUpe1xuXHRcdFx0ZS5zdG9wUHJvcGFnYXRpb24oKTtcblx0XHR9O1xuXG5cdFx0b3ZlcmxheS5vbmNsaWNrID0gY2xvc2VNZTtcblxuXHRcdM+ALmxpc3RlbihjbG9zZU1lLCAncmVzaXplJyk7XG5cblx0XHRmdW5jdGlvbiBjbG9zZU1lKGUpIHtcblx0XHRcdHZhciB0ID0gZS50YXJnZXQ7XG5cdFx0XHRpZiAodCA9PSBzbGVkIHx8IHQgPT0gdG9wQmFyKSByZXR1cm47XG5cblx0XHRcdGVsLmtpbGxDbGFzcyhcIm9uXCIpO1xuXHRcdFx0c2V0VGltZW91dChmdW5jdGlvbigpe1xuXHRcdFx0XHRlbC5jc3Moe2Rpc3BsYXk6IFwibm9uZVwifSk7XG5cblx0XHRcdFx0Ym9keS5raWxsQ2xhc3MoXCJvdmVybGF5LW9uXCIpO1xuXHRcdFx0fSwgMzAwKTtcblx0XHR9XG5cblx0XHRmdW5jdGlvbiBleHBvc2VNZSgpe1xuXHRcdFx0Ym9keS5hZGRDbGFzcyhcIm92ZXJsYXktb25cIik7IC8vIGluIHRoZSBkZWZhdWx0IGNvbmZpZywga2lsbHMgYm9keSBzY3JvbGxpbmdcblxuXHRcdFx0ZWwuY3NzKHtcblx0XHRcdFx0ZGlzcGxheTogXCJibG9ja1wiLFxuXHRcdFx0XHR6SW5kZXg6IM+ALmhpZ2hlc3RaKClcblx0XHRcdH0pO1xuXHRcdFx0c2V0VGltZW91dChmdW5jdGlvbigpe1xuXHRcdFx0XHRlbC5hZGRDbGFzcyhcIm9uXCIpO1xuXHRcdFx0fSwgMTApO1xuXHRcdH1cblxuXHRcdHJldHVybiB7XG5cdFx0XHRleHBvc2U6IGV4cG9zZU1lXG5cdFx0fTtcblx0fVxuXG5cdM+ALm1vZHMucHVzaChpbml0KTtcblxuXHRyZXR1cm4ge1xuXHRcdHNob3c6IHNob3dcblx0fTtcbn0pKCk7XG4iLCIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiDPgC1kaWFsb2cuanNcbiBVU0FHRSBBTkQgQVBJIFJFRkVSRU5DRVxuIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19cbiBERVBFTkRFTkNJRVM6XG5cbiDPgC5qc1xuXG4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1xuIERBVEEgQVRUUklCVVRFUzpcblxuIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19cbiBNQVJLVVAgQU5EIERFRkFVTFRTOlxuXG4gPGRpdiBjbGFzcz1cIm5ld19tb2R1bGVcIj5cblxuIDwvZGl2PlxuXG4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1xuIEdFTkVSQVRFRCBIVE1MOlxuXG4gPGRpdiBjbGFzcz1cIm5ld19tb2R1bGVcIj5cblxuIDwvZGl2PlxuXG4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1xuIEFQSVxuXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4oZnVuY3Rpb24oKXtcblx0z4AuZGlhbG9nID0ge1xuXHRcdHNob3c6IM+ALm1vZGFsT3ZlcmxheS5zaG93LFxuXHRcdHNwYXduOiBzcGF3bixcblx0XHRhY3Rpb25zOiB7fVxuXHR9O1xuXG5cdGZ1bmN0aW9uIGluaXQoKSB7XG5cdFx0z4AoJy5waS1kaWFsb2cnKS5mb3JFYWNoKM+ALmRpYWxvZy5zcGF3bik7XG5cdFx0z4Auc2V0VHJpZ2dlcnMoJ2RpYWxvZycsIM+ALm1vZGFsT3ZlcmxheSk7XG5cdH1cblxuXHRmdW5jdGlvbiBzcGF3bihlbCl7XG5cdFx0dmFyIGNvbnRlbnRCb3ggPSDPgC5kaXYoJ2NvbnRlbnQtYm94JywgMCwgZWwuaW5uZXJIVE1MKTtcblx0XHR2YXIgZGlhbG9nQm94ID0gz4AuZGl2KCdkaWFsb2ctYm94JywgMCwgY29udGVudEJveCk7XG5cdFx0ZWwuZmlsbChkaWFsb2dCb3gpO1xuXG5cdFx0aWYgKGVsLmRhdGFzZXQudGl0bGUpe1xuXHRcdFx0ZGlhbG9nQm94LnByZXBlbmQoz4AuZGl2KCd0aXRsZScsIDAsIGVsLmRhdGFzZXQudGl0bGUpKTtcblx0XHR9XG5cblx0XHRlbC7PgCgnLmJ1dHRvbnMgYnV0dG9uJykuZm9yRWFjaChmdW5jdGlvbihidXR0b24pe1xuXHRcdFx0YnV0dG9uLm9uY2xpY2sgPSBmdW5jdGlvbigpe1xuXHRcdFx0XHR2YXIgYWN0aW9uID0gYnV0dG9uLmdldEF0dHJpYnV0ZSgncGktZGlhbG9nLWFjdGlvbicpO1xuXHRcdFx0XHRpZiAoYWN0aW9uKXtcblx0XHRcdFx0XHTPgC5kaWFsb2cuYWN0aW9uc1thY3Rpb25dKCk7XG5cdFx0XHRcdH1cblx0XHRcdH07XG5cblx0XHRcdGlmICghYnV0dG9uLmhhc0F0dHJpYnV0ZSgnZGF0YS1ieXBhc3MnKSl7XG5cdFx0XHRcdGJ1dHRvbi5saXN0ZW4oZGlzbWlzcywgJ2NsaWNrJyk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cblx0XHRpZiAoIWJvb2xlYW5BdHRyaWJ1dGVWYWx1ZShlbCwgJ2RhdGEtaW5saW5lJywgZmFsc2UpKSB7XG5cdFx0XHRlbC5hZGRDbGFzcygncGktbW9kYWwtb3ZlcmxheScpO1xuXHRcdFx0z4AubW9kYWxPdmVybGF5LnNwYXduKGVsKTtcblx0XHR9XG5cblx0XHRmdW5jdGlvbiBkaXNtaXNzKCl7XG5cdFx0XHRlbC7PgDEoJy5waS1tb2RhbC1jbG9zZS1idXR0b24nKS5jbGljaygpO1xuXHRcdH1cblx0fVxuXG5cblxuXHQvLyDPgC5tb2RzIGFyZSBsb2FkZWQgYWZ0ZXIgRE9NQ29udGVudExvYWRlZFxuXHTPgC5tb2RzLnB1c2goaW5pdCk7XG59KSgpOyIsInZhciBrdWIgPSAoZnVuY3Rpb24gKCkge1xuXHTPgC5saXN0ZW4oaW5pdCk7XG5cblx0dmFyIEhFQURFUl9IRUlHSFQ7XG5cdHZhciBodG1sLCBib2R5LCBtYWluTmF2LCBxdWlja3N0YXJ0QnV0dG9uLCB3aXNoRmllbGQ7XG5cblx0ZnVuY3Rpb24gaW5pdCgpIHtcblx0XHTPgC5jbGVhbihpbml0KTtcblxuXHRcdGh0bWwgPSDPgDEoJ2h0bWwnKTtcblx0XHRib2R5ID0gz4AxKCdib2R5Jyk7XG5cdFx0bWFpbk5hdiA9IM+AZChcIm1haW5OYXZcIik7XG5cdFx0d2lzaEZpZWxkID0gz4BkKCd3aXNoRmllbGQnKTtcblx0XHRIRUFERVJfSEVJR0hUID0gz4AxKCdoZWFkZXInKS5vZmZzZXQoKS5oZWlnaHQ7XG5cblx0XHRxdWlja3N0YXJ0QnV0dG9uID0gz4BkKCdxdWlja3N0YXJ0QnV0dG9uJyk7XG5cblx0XHRidWlsZElubGluZVRPQygpO1xuXG5cdFx0c2V0WUFIKCk7XG5cblxuXHRcdGFkanVzdEV2ZXJ5dGhpbmcoKTtcblxuXHRcdM+ALmxpc3RlbihhZGp1c3RFdmVyeXRoaW5nLCAncmVzaXplJyk7XG5cdFx0z4AubGlzdGVuKGFkanVzdEV2ZXJ5dGhpbmcsICdzY3JvbGwnKTtcblx0XHTPgC5saXN0ZW4oaGFuZGxlS2V5c3Ryb2tlcywgJ2tleWRvd24nKTtcblx0XHR3aXNoRmllbGQubGlzdGVuKGhhbmRsZUtleXN0cm9rZXMsICdrZXlkb3duJyk7XG5cblx0XHRkb2N1bWVudC5vbnVubG9hZCA9IGZ1bmN0aW9uKCl7XG5cdFx0XHTPgC5jbGVhbihhZGp1c3RFdmVyeXRoaW5nLCAncmVzaXplJyk7XG5cdFx0XHTPgC5jbGVhbihhZGp1c3RFdmVyeXRoaW5nLCAnc2Nyb2xsJyk7XG5cdFx0XHTPgC5jbGVhbihoYW5kbGVLZXlzdHJva2VzLCAna2V5ZG93bicpO1xuXHRcdFx0d2lzaEZpZWxkLmNsZWFuKGhhbmRsZUtleXN0cm9rZXMsICdrZXlkb3duJyk7XG5cdFx0fTtcblxuXHRcdM+ALmxpc3RlbihjbG9zZU9wZW5NZW51LCAncmVzaXplJyk7XG5cblx0XHRmdW5jdGlvbiBjbG9zZU9wZW5NZW51KCkge1xuXHRcdFx0aWYgKGh0bWwuaGFzQ2xhc3MoJ29wZW4tbmF2JykpIHRvZ2dsZU1lbnUoKTtcblx0XHR9XG5cblx0XHTPgCgnLmRyb3Bkb3duJykuZm9yRWFjaChmdW5jdGlvbihkcm9wZG93bikge1xuXHRcdFx0dmFyIHJlYWRvdXQgPSBkcm9wZG93bi7PgDEoJy5yZWFkb3V0Jyk7XG5cdFx0XHRyZWFkb3V0LmlubmVySFRNTCA9IGRyb3Bkb3duLs+AMSgnYScpLmlubmVySFRNTDtcblx0XHRcdHJlYWRvdXQub25jbGljayA9IGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0ZHJvcGRvd24udG9nZ2xlQ2xhc3MoJ29uJyk7XG5cdFx0XHRcdM+ALmxpc3RlbihjbG9zZU9wZW5Ecm9wZG93biwgJ2NsaWNrJyk7XG5cblx0XHRcdFx0ZnVuY3Rpb24gY2xvc2VPcGVuRHJvcGRvd24oZSkge1xuXHRcdFx0XHRcdGlmIChkcm9wZG93bi5oYXNDbGFzcygnb24nKSAmJiAhKGRyb3Bkb3duV2FzQ2xpY2tlZChlKSkpIHtcblx0XHRcdFx0XHRcdM+ALmNsZWFuKGNsb3NlT3BlbkRyb3Bkb3duLCAnY2xpY2snKTtcblx0XHRcdFx0XHRcdGRyb3Bkb3duLmtpbGxDbGFzcygnb24nKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRmdW5jdGlvbiBkcm9wZG93bldhc0NsaWNrZWQoZSkge1xuXHRcdFx0XHRcdHJldHVybiBlLnRhcmdldC5pc0hlaXJPZkNsYXNzKCdkcm9wZG93bicpO1xuXHRcdFx0XHR9XG5cdFx0XHR9O1xuXHRcdH0pO1xuXG5cdFx0c2V0SW50ZXJ2YWwoc2V0Rm9vdGVyVHlwZSwgMTApO1xuXHR9XG5cblx0dmFyIHRvY0NvdW50ID0gMDtcblxuXHRmdW5jdGlvbiBidWlsZElubGluZVRPQygpIHtcblx0XHR2YXIgZG9jc0NvbnRlbnQgPSDPgGQoJ2RvY3NDb250ZW50Jyk7XG5cdFx0dmFyIHBhZ2VUT0MgPSDPgGQoJ3BhZ2VUT0MnKTtcblxuXHRcdGlmIChwYWdlVE9DKSB7XG5cdFx0XHR2YXIgaGVhZGVycyA9IGRvY3NDb250ZW50LmtpZHMoJyNwYWdlVE9DLCBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2Jyk7XG5cdFx0XHRoZWFkZXJzLnNwbGljZSgwLCBoZWFkZXJzLmluZGV4T2YocGFnZVRPQykgKyAxKTtcblxuXHRcdFx0dmFyIHRvYyA9IM+ALnVsKCk7XG5cdFx0XHRwYWdlVE9DLmFkZCh0b2MpO1xuXG5cdFx0XHRoZWFkZXJzLmZvckVhY2goZnVuY3Rpb24gKGhlYWRlcikge1xuXHRcdFx0XHR2YXIgYW5jaG9yTmFtZSA9ICdwYWdlVE9DJyArIHRvY0NvdW50Kys7XG5cblx0XHRcdFx0dmFyIGxpbmsgPSDPgC5jb250ZW50RWxlbWVudCgnYScsIDAsIDAsIGhlYWRlci5pbm5lckhUTUwpO1xuXHRcdFx0XHRsaW5rLmhyZWYgPSAnIycgKyBhbmNob3JOYW1lO1xuXHRcdFx0XHRsaW5rLmFkZENsYXNzKGhlYWRlci50YWdOYW1lKTtcblxuXHRcdFx0XHR2YXIgYW5jaG9yID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xuXHRcdFx0XHRhbmNob3IuYWRkQ2xhc3MoJ3BhZ2VBbmNob3InKTtcblx0XHRcdFx0YW5jaG9yLm5hbWUgPSBhbmNob3JOYW1lO1xuXHRcdFx0XHRkb2NzQ29udGVudC5pbnNlcnRCZWZvcmUoYW5jaG9yLCBoZWFkZXIpO1xuXG5cdFx0XHRcdHRvYy5hZGQoz4AubGkoMCwgMCwgbGluaykpO1xuXHRcdFx0fSk7XG5cdFx0fVxuXHR9XG5cblx0ZnVuY3Rpb24gc2V0WUFIKCkge1xuXHRcdHZhciBwYXRobmFtZSA9IGxvY2F0aW9uLmhyZWY7XG5cblx0XHR2YXIgY3VycmVudExpbmsgPSBudWxsO1xuXG5cdFx0z4BkKCdkb2NzVG9jJykuz4AoJ2EnKS5mb3JFYWNoKGZ1bmN0aW9uIChsaW5rKSB7XG5cdFx0XHRpZiAocGF0aG5hbWUuaW5kZXhPZihsaW5rLmhyZWYpICE9PSAtMSkge1xuXHRcdFx0XHRjdXJyZW50TGluayA9IGxpbms7XG5cdFx0XHR9XG5cdFx0fSk7XG5cblx0XHRpZiAoY3VycmVudExpbmspIHtcblx0XHRcdGN1cnJlbnRMaW5rLnBhcmVudHMoJ2Rpdi5pdGVtJykuZm9yRWFjaChmdW5jdGlvbiAocGFyZW50KSB7XG5cdFx0XHRcdHBhcmVudC7PgDEoJy50aXRsZScpLmNsaWNrKCk7XG5cdFx0XHRcdGN1cnJlbnRMaW5rLmFkZENsYXNzKCd5YWgnKTtcblx0XHRcdFx0Y3VycmVudExpbmsuaHJlZiA9ICcnO1xuXHRcdFx0fSk7XG5cdFx0fVxuXHR9XG5cblx0ZnVuY3Rpb24gc2V0Rm9vdGVyVHlwZSgpIHtcblx0XHRpZiAoaHRtbC5pZCA9PSBcImRvY3NcIikge1xuXHRcdFx0dmFyIGJvZHlIZWlnaHQgPSDPgGQoJ2hlcm8nKS5vZmZzZXQoKS5oZWlnaHQgKyDPgGQoJ2VuY3ljbG9wZWRpYScpLm9mZnNldCgpLmhlaWdodDtcblx0XHRcdHZhciBmb290ZXIgPSDPgDEoJ2Zvb3RlcicpO1xuXHRcdFx0dmFyIGZvb3RlckhlaWdodCA9IGZvb3Rlci5vZmZzZXQoKS5oZWlnaHQ7XG5cdFx0XHRib2R5LmNsYXNzT25Db25kaXRpb24oJ2ZpeGVkJywgd2luZG93LmlubmVySGVpZ2h0IC0gZm9vdGVySGVpZ2h0ID4gYm9keUhlaWdodCk7XG5cdFx0fVxuXHR9XG5cblx0ZnVuY3Rpb24gYWRqdXN0RXZlcnl0aGluZygpIHtcblx0XHRpZiAoIWh0bWwuaGFzQ2xhc3MoJ29wZW4tbmF2JykpIEhFQURFUl9IRUlHSFQgPSDPgDEoJ2hlYWRlcicpLm9mZnNldCgpLmhlaWdodDtcblx0XHRodG1sLmNsYXNzT25Db25kaXRpb24oJ2ZsaXAtbmF2Jywgd2luZG93LnBhZ2VZT2Zmc2V0ID4gMCk7XG5cdH1cblxuXHRmdW5jdGlvbiB0b2dnbGVNZW51KCkge1xuXHRcdGlmICh3aW5kb3cuaW5uZXJXaWR0aCA8IDgwMCkge1xuXHRcdFx0z4AucHVzaG1lbnUuc2hvdygncHJpbWFyeScpO1xuXHRcdH1cblxuXHRcdGVsc2Uge1xuXHRcdFx0dmFyIG5ld0hlaWdodCA9IEhFQURFUl9IRUlHSFQ7XG5cblx0XHRcdGlmICghaHRtbC5oYXNDbGFzcygnb3Blbi1uYXYnKSkge1xuXHRcdFx0XHRuZXdIZWlnaHQgPSBtYWluTmF2Lm9mZnNldCgpLmhlaWdodDtcblx0XHRcdH1cblxuXHRcdFx0z4AxKCdoZWFkZXInKS5jc3Moe2hlaWdodDogcHgobmV3SGVpZ2h0KX0pO1xuXHRcdH1cblxuXHRcdGh0bWwudG9nZ2xlQ2xhc3MoJ29wZW4tbmF2Jyk7XG5cdH1cblxuXHRmdW5jdGlvbiBzdWJtaXRXaXNoKHRleHRmaWVsZCkge1xuXHRcdHdpbmRvdy5sb2NhdGlvbi5yZXBsYWNlKFwiaHR0cHM6Ly9naXRodWIuY29tL2t1YmVybmV0ZXMva3ViZXJuZXRlcy5naXRodWIuaW8vaXNzdWVzL25ldz90aXRsZT1JJTIwd2lzaCUyMFwiICtcblx0XHRcdHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSArIFwiJTIwXCIgKyB0ZXh0ZmllbGQudmFsdWUgKyBcIiZib2R5PUklMjB3aXNoJTIwXCIgK1xuXHRcdFx0d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lICsgXCIlMjBcIiArIHRleHRmaWVsZC52YWx1ZSk7XG5cblx0XHR0ZXh0ZmllbGQudmFsdWUgPSAnJztcblx0XHR0ZXh0ZmllbGQuYmx1cigpO1xuXHR9XG5cblx0ZnVuY3Rpb24gaGFuZGxlS2V5c3Ryb2tlcyhlKSB7XG5cdFx0c3dpdGNoIChlLndoaWNoKSB7XG5cdFx0XHRjYXNlIDEzOiB7XG5cdFx0XHRcdGlmIChlLmN1cnJlbnRUYXJnZXQgPT09IHdpc2hGaWVsZCkge1xuXHRcdFx0XHRcdHN1Ym1pdFdpc2god2lzaEZpZWxkKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRicmVhaztcblx0XHRcdH1cblxuXHRcdFx0Y2FzZSAyNzoge1xuXHRcdFx0XHRpZiAoaHRtbC5oYXNDbGFzcygnb3Blbi1uYXYnKSkge1xuXHRcdFx0XHRcdHRvZ2dsZU1lbnUoKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRicmVhaztcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRyZXR1cm4ge1xuXHRcdHRvZ2dsZU1lbnU6IHRvZ2dsZU1lbnVcblx0fTtcbn0pKCk7XG4iXSwic291cmNlUm9vdCI6Ii9zb3VyY2UvIn0= +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFsZi5qcyIsIs+ALmpzIiwiSEFMLmpzIiwiz4Atc3RhdHVzLmpzIiwiz4AtYmFzZUNvbXBvbmVudHMuanMiLCLPgC1hY2NvcmRpb24vz4AtYWNjb3JkaW9uLmpzIiwiz4AtcHVzaG1lbnUvz4AtcHVzaG1lbnUuanMiLCLPgC1kaWFsb2cvz4AtZGlhbG9nLmpzIiwic2NyaXB0LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQ3BCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQzlRQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUMzREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQ2xJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQzNRQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FDeEZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUMxSkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUM5RUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6InNjcmlwdC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGFkb3JhYmxlIGxpdHRsZSBmdW5jdGlvbnNcbmZ1bmN0aW9uIGJvb2xlYW5BdHRyaWJ1dGVWYWx1ZShlbGVtZW50LCBhdHRyaWJ1dGUsIGRlZmF1bHRWYWx1ZSl7XG5cdC8vIHJldHVybnMgdHJ1ZSBpZiBhbiBhdHRyaWJ1dGUgaXMgcHJlc2VudCB3aXRoIG5vIHZhbHVlXG5cdC8vIGUuZy4gYm9vbGVhbkF0dHJpYnV0ZVZhbHVlKGVsZW1lbnQsICdkYXRhLW1vZGFsJywgZmFsc2UpO1xuXHRpZiAoZWxlbWVudC5oYXNBdHRyaWJ1dGUoYXR0cmlidXRlKSkge1xuXHRcdHZhciB2YWx1ZSA9IGVsZW1lbnQuZ2V0QXR0cmlidXRlKGF0dHJpYnV0ZSk7XG5cdFx0aWYgKHZhbHVlID09PSAnJyB8fCB2YWx1ZSA9PT0gJ3RydWUnKSB7XG5cdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHR9IGVsc2UgaWYgKHZhbHVlID09PSAnZmFsc2UnKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIGRlZmF1bHRWYWx1ZTtcbn1cblxuZnVuY3Rpb24gcHgobil7XG5cdHJldHVybiBuICsgJ3B4Jztcbn1cblxuIiwidmFyIM+ALCDPgDEsIM+AZDtcbihmdW5jdGlvbigpe1xuXHTPgCA9IGZ1bmN0aW9uKHNlbGVjdG9yKSB7XG5cdFx0cmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoc2VsZWN0b3IpO1xuXHR9O1xuXG5cdM+AMSA9IGZ1bmN0aW9uIChzZWxlY3Rvcikge1xuXHRcdHJldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHNlbGVjdG9yKTtcblx0fTtcblxuXHTPgGQgPSBmdW5jdGlvbihpZCkge1xuXHRcdHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7XG5cdH07XG5cblx0z4AubmV3RE9NRWxlbWVudCA9IGZ1bmN0aW9uKHRhZ05hbWUsIGNsYXNzTmFtZSwgaWQpIHtcblx0XHR2YXIgZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRhZ05hbWUpO1xuXG5cdFx0aWYgKGNsYXNzTmFtZSlcblx0XHRcdGVsLmNsYXNzTmFtZSA9IGNsYXNzTmFtZTtcblxuXHRcdGlmIChpZClcblx0XHRcdGVsLmlkID0gaWQ7XG5cblx0XHRyZXR1cm4gZWw7XG5cdH07XG5cblx0z4AuY29udGVudEVsZW1lbnQgPSBmdW5jdGlvbih0YWdOYW1lLCBjbGFzc05hbWUsIGlkLCBjb250ZW50KVxuXHR7XG5cdFx0dmFyIGVsID0gz4AubmV3RE9NRWxlbWVudCh0YWdOYW1lLCBjbGFzc05hbWUsIGlkKTtcblxuXHRcdGlmIChjb250ZW50KSB7XG5cdFx0XHRpZiAoY29udGVudC5ub2RlTmFtZSkge1xuXHRcdFx0XHRlbC5hcHBlbmRDaGlsZChjb250ZW50KTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGVsLmlubmVySFRNTCA9IGNvbnRlbnQ7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGVsO1xuXHR9O1xuXG5cdM+ALmJ1dHRvbiA9IGZ1bmN0aW9uKGNsYXNzTmFtZSwgaWQsIGNvbnRlbnQsIGFjdGlvbil7XG5cdFx0dmFyIGVsID0gz4AuY29udGVudEVsZW1lbnQoXCJidXR0b25cIiwgY2xhc3NOYW1lLCBpZCwgY29udGVudCk7XG5cdFx0ZWwub25jbGljayA9IGFjdGlvbjtcblx0XHRyZXR1cm4gZWw7XG5cdH07XG5cdM+ALmRpdiA9IGZ1bmN0aW9uKGNsYXNzTmFtZSwgaWQsIGNvbnRlbnQpeyByZXR1cm4gz4AuY29udGVudEVsZW1lbnQoXCJkaXZcIiwgY2xhc3NOYW1lLCBpZCwgY29udGVudCk7IH07XG5cdM+ALnNwYW4gPSBmdW5jdGlvbihjbGFzc05hbWUsIGlkLCBjb250ZW50KXsgcmV0dXJuIM+ALmNvbnRlbnRFbGVtZW50KFwic3BhblwiLCBjbGFzc05hbWUsIGlkLCBjb250ZW50KTsgfTtcblx0z4AudWwgPSBmdW5jdGlvbihjbGFzc05hbWUsIGlkLCBjb250ZW50KXsgcmV0dXJuIM+ALmNvbnRlbnRFbGVtZW50KFwidWxcIiwgY2xhc3NOYW1lLCBpZCwgY29udGVudCk7IH07XG5cdM+ALmxpID0gZnVuY3Rpb24oY2xhc3NOYW1lLCBpZCwgY29udGVudCl7IHJldHVybiDPgC5jb250ZW50RWxlbWVudChcImxpXCIsIGNsYXNzTmFtZSwgaWQsIGNvbnRlbnQpOyB9O1xuXG5cblx0z4AuY2xlYW4gPSBmdW5jdGlvbihjYWxsYmFjaywgZXZlbnROYW1lKSB7XG5cdFx0d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lIHx8IFwiRE9NQ29udGVudExvYWRlZFwiLCBjYWxsYmFjayk7XG5cdH07XG5cblx0z4AubGlzdGVuID0gZnVuY3Rpb24oY2FsbGJhY2ssIGV2ZW50TmFtZSkge1xuXHRcdHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKGV2ZW50TmFtZSB8fCBcIkRPTUNvbnRlbnRMb2FkZWRcIiwgY2FsbGJhY2spO1xuXHR9O1xuXG5cdM+ALmhpZ2hlc3RaID0gZnVuY3Rpb24oKSB7XG5cdFx0dmFyIFogPSAxMDAwO1xuXG5cdFx0z4AoXCIqXCIpLmZvckVhY2goZnVuY3Rpb24oZWwpe1xuXHRcdFx0dmFyIHRoaXNaID0gZWwuY3NzKCkuekluZGV4O1xuXG5cdFx0XHRpZiAodGhpc1ogIT0gXCJhdXRvXCIpIHtcblx0XHRcdFx0aWYgKHRoaXNaID4gWikgWiA9IHRoaXNaICsgMTtcblx0XHRcdH1cblx0XHR9KTtcblxuXHRcdHJldHVybiBaO1xuXHR9O1xuXG5cdM+ALnNldFRyaWdnZXJzID0gZnVuY3Rpb24oc2VsZWN0b3IsIG9iamVjdCl7XG5cdFx0c2VsZWN0b3IgPSAncGktJyArIHNlbGVjdG9yICsgJy10cmlnZ2VyJztcblx0XHTPgCgnWycgKyBzZWxlY3RvciArICddJykuZm9yRWFjaChmdW5jdGlvbih0cmlnZ2VyKXtcblx0XHRcdHRyaWdnZXIub25jbGljayA9IGZ1bmN0aW9uKCl7XG5cdFx0XHRcdG9iamVjdC5zaG93KHRyaWdnZXIuZ2V0QXR0cmlidXRlKHNlbGVjdG9yKSk7XG5cdFx0XHR9O1xuXHRcdH0pO1xuXHR9O1xuXHRIVE1MRWxlbWVudC5wcm90b3R5cGUuYWRkID0gTm9kZS5wcm90b3R5cGUuYWRkID0gZnVuY3Rpb24ob2JqZWN0KXtcblx0XHRpZiAoQXJyYXkuaXNBcnJheShvYmplY3QpKSB7XG5cdFx0XHR2YXIgZWwgPSB0aGlzO1xuXHRcdFx0b2JqZWN0LmZvckVhY2goZnVuY3Rpb24ob2JqKXtcblx0XHRcdFx0aWYgKG9iaikgZWwuYXBwZW5kQ2hpbGQob2JqKTtcblx0XHRcdH0pO1xuXHRcdH0gZWxzZSBpZihvYmplY3QpIHtcblx0XHRcdHRoaXMuYXBwZW5kQ2hpbGQob2JqZWN0KTtcblx0XHR9XG5cdH07XG5cblx0SFRNTEVsZW1lbnQucHJvdG90eXBlLmNsYXNzT25Db25kaXRpb24gPSBOb2RlLnByb3RvdHlwZS5jbGFzc09uQ29uZGl0aW9uID0gZnVuY3Rpb24oY2xhc3NuYW1lLCBjb25kaXRpb24pIHtcblx0XHRpZiAoY29uZGl0aW9uKVxuXHRcdFx0dGhpcy5hZGRDbGFzcyhjbGFzc25hbWUpO1xuXHRcdGVsc2Vcblx0XHRcdHRoaXMua2lsbENsYXNzKGNsYXNzbmFtZSk7XG5cdH07XG5cblx0SFRNTEVsZW1lbnQucHJvdG90eXBlLm9mZnNldCA9IE5vZGUucHJvdG90eXBlLm9mZnNldCA9IGZ1bmN0aW9uKCl7XG5cdFx0cmV0dXJuIHRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cdH07XG5cblx0SFRNTEVsZW1lbnQucHJvdG90eXBlLs+AZCA9IE5vZGUucHJvdG90eXBlLs+AZCA9IGZ1bmN0aW9uKGlkKSB7XG5cdFx0cmV0dXJuIHRoaXMuZ2V0RWxlbWVudEJ5SWQoaWQpO1xuXHR9O1xuXG5cdEhUTUxFbGVtZW50LnByb3RvdHlwZS7PgDEgPSBOb2RlLnByb3RvdHlwZS7PgDEgPSBmdW5jdGlvbihzZWxlY3Rvcikge1xuXHRcdHJldHVybiB0aGlzLnF1ZXJ5U2VsZWN0b3Ioc2VsZWN0b3IpO1xuXHR9O1xuXG5cdEhUTUxFbGVtZW50LnByb3RvdHlwZS7PgCA9IE5vZGUucHJvdG90eXBlLs+AID0gZnVuY3Rpb24oc2VsZWN0b3IpIHtcblx0XHRyZXR1cm4gdGhpcy5xdWVyeVNlbGVjdG9yQWxsKHNlbGVjdG9yKTtcblx0fTtcblxuXHRmdW5jdGlvbiBhcnJheU9mQ2xhc3Nlc0ZvckVsZW1lbnQoZWwpIHtcblx0XHRyZXR1cm4gZWwuY2xhc3NOYW1lID8gZWwuY2xhc3NOYW1lLnNwbGl0KFwiIFwiKSA6IFtdO1xuXHR9XG5cblx0SFRNTEVsZW1lbnQucHJvdG90eXBlLmhhc0NsYXNzID0gTm9kZS5wcm90b3R5cGUuaGFzQ2xhc3MgPSBmdW5jdGlvbiAoY2xhc3NOYW1lKSB7XG5cdFx0dmFyIGNsYXNzZXMgPSBhcnJheU9mQ2xhc3Nlc0ZvckVsZW1lbnQodGhpcyk7XG5cdFx0cmV0dXJuIGNsYXNzZXMuaW5kZXhPZihjbGFzc05hbWUpICE9PSAtMTtcblx0fTtcblxuXHRIVE1MRWxlbWVudC5wcm90b3R5cGUuYWRkQ2xhc3MgPSBOb2RlLnByb3RvdHlwZS5hZGRDbGFzcyA9IGZ1bmN0aW9uIChjbGFzc05hbWUpIHtcblx0XHRpZiAodGhpcy5oYXNDbGFzcyhjbGFzc05hbWUpKSByZXR1cm47XG5cdFx0aWYgKHRoaXMuY2xhc3NOYW1lLmxlbmd0aCA+IDApIHRoaXMuY2xhc3NOYW1lICs9IFwiIFwiO1xuXHRcdHRoaXMuY2xhc3NOYW1lICs9IGNsYXNzTmFtZTtcblx0fTtcblxuXHRIVE1MRWxlbWVudC5wcm90b3R5cGUua2lsbENsYXNzID0gTm9kZS5wcm90b3R5cGUua2lsbENsYXNzID0gZnVuY3Rpb24gKGNsYXNzTmFtZSkge1xuXHRcdGlmICh0aGlzLmhhc0NsYXNzKGNsYXNzTmFtZSkpIHtcblx0XHRcdHZhciBjbGFzc2VzID0gYXJyYXlPZkNsYXNzZXNGb3JFbGVtZW50KHRoaXMpO1xuXHRcdFx0dmFyIGlkeCA9IGNsYXNzZXMuaW5kZXhPZihjbGFzc05hbWUpO1xuXHRcdFx0aWYgKGlkeCA+IC0xKSB7XG5cdFx0XHRcdGNsYXNzZXMuc3BsaWNlKGlkeCwgMSk7XG5cdFx0XHRcdHRoaXMuY2xhc3NOYW1lID0gY2xhc3Nlcy5qb2luKFwiIFwiKTtcblx0XHRcdH1cblx0XHR9XG5cdH07XG5cblx0SFRNTEVsZW1lbnQucHJvdG90eXBlLnRvZ2dsZUNsYXNzPSBOb2RlLnByb3RvdHlwZS50b2dnbGVDbGFzcz0gZnVuY3Rpb24gKGNsYXNzTmFtZSkge1xuXHRcdHJldHVybiAodGhpcy5oYXNDbGFzcyhjbGFzc05hbWUpKSA/IHRoaXMua2lsbENsYXNzKGNsYXNzTmFtZSkgOiB0aGlzLmFkZENsYXNzKGNsYXNzTmFtZSk7XG5cdH07XG5cblx0SFRNTEVsZW1lbnQucHJvdG90eXBlLnNpYmxpbmdzID0gTm9kZS5wcm90b3R5cGUuc2libGluZ3MgPSBmdW5jdGlvbihzZWxlY3Rvcil7XG5cdFx0dmFyIGVsID0gdGhpcztcblx0XHRyZXR1cm4gZWwucGFyZW50Tm9kZS7PgCgnOnNjb3BlID4gJyArIChzZWxlY3RvciB8fCAnKicpKS5maWx0ZXIoZnVuY3Rpb24ob2JqKXtyZXR1cm4gb2JqICE9IGVsO30pO1xuXHR9O1xuXG5cdEhUTUxFbGVtZW50LnByb3RvdHlwZS5jc3MgPSBOb2RlLnByb3RvdHlwZS5jc3MgPSBmdW5jdGlvbihydWxlT3JPYmplY3QsIHZhbHVlKSB7XG5cdFx0dmFyIGVsID0gdGhpcztcblxuXHRcdGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XG5cdFx0XHRyZXR1cm4gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcyk7XG5cdFx0fVxuXG5cdFx0ZWxzZSBpZiAodHlwZW9mIHJ1bGVPck9iamVjdCA9PT0gJ29iamVjdCcpIHsgLy8gYW4gb2JqZWN0IHdhcyBwYXNzZWQgaW5cblx0XHRcdE9iamVjdC5rZXlzKHJ1bGVPck9iamVjdCkuZm9yRWFjaChmdW5jdGlvbihrZXkpe1xuXHRcdFx0XHRlbC5zdHlsZVtrZXldID0gcnVsZU9yT2JqZWN0W2tleV07XG5cdFx0XHR9KTtcblx0XHR9XG5cblx0XHRlbHNlIGlmICh0eXBlb2YgcnVsZU9yT2JqZWN0ID09PSAnc3RyaW5nJyAmJiB2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7IC8vIDIgc3RyaW5nIHZhbHVlcyB3ZXJlIHBhc3NlZCBpblxuXHRcdFx0ZWwuc3R5bGVbcnVsZU9yT2JqZWN0XSA9IHZhbHVlO1xuXHRcdH1cblx0fTtcblxuXHRIVE1MRWxlbWVudC5wcm90b3R5cGUubGlzdGVuID0gTm9kZS5wcm90b3R5cGUubGlzdGVuID0gZnVuY3Rpb24oY2FsbGJhY2ssIGV2ZW50TmFtZSl7XG5cdFx0dGhpcy5hZGRFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwgY2FsbGJhY2spO1xuXHR9O1xuXG5cdEhUTUxFbGVtZW50LnByb3RvdHlwZS5lbXB0eSA9IE5vZGUucHJvdG90eXBlLmVtcHR5ID0gZnVuY3Rpb24oKSB7XG5cdFx0dGhpcy5pbm5lckhUTUwgPSBcIlwiO1xuXHR9O1xuXG5cdEhUTUxFbGVtZW50LnByb3RvdHlwZS5maWxsID0gTm9kZS5wcm90b3R5cGUuZmlsbCA9IGZ1bmN0aW9uKGNvbnRlbnQpIHtcblx0XHR2YXIgZWwgPSB0aGlzO1xuXHRcdGVsLmVtcHR5KCk7XG5cblx0XHRpZiAoQXJyYXkuaXNBcnJheShjb250ZW50KSkge1xuXHRcdFx0Y29udGVudC5mb3JFYWNoKGZ1bmN0aW9uKG9iail7XG5cdFx0XHRcdGlmIChvYmopXG5cdFx0XHRcdFx0ZWwuYXBwZW5kQ2hpbGQob2JqKTtcblx0XHRcdH0pO1xuXG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0aWYgKCFjb250ZW50Lm5vZGVUeXBlKSB7XG5cdFx0XHR2YXIgdGV4dEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwidGV4dFwiKTtcblx0XHRcdHRleHRFbGVtZW50LmlubmVySFRNTCA9IGNvbnRlbnQ7XG5cdFx0XHRjb250ZW50ID0gdGV4dEVsZW1lbnQ7XG5cdFx0fVxuXG5cdFx0dGhpcy5hcHBlbmRDaGlsZChjb250ZW50KTtcblx0fTtcblxuXHRIVE1MRWxlbWVudC5wcm90b3R5cGUuaXNIZWlyT2ZDbGFzcyA9IE5vZGUucHJvdG90eXBlLmlzSGVpck9mQ2xhc3MgPSBmdW5jdGlvbiAoY2xhc3NOYW1lKSB7XG5cdFx0aWYgKHRoaXMgPT09IM+AMSgnaHRtbCcpKSByZXR1cm4gZmFsc2U7XG5cblx0XHR2YXIgcGFyZW50ID0gdGhpcy5wYXJlbnROb2RlO1xuXG5cdFx0aWYgKHBhcmVudCkge1xuXHRcdFx0d2hpbGUgKHBhcmVudCAhPT0gz4AxKCdib2R5JykpIHtcblx0XHRcdFx0aWYgKHBhcmVudC5oYXNDbGFzcyhjbGFzc05hbWUpKSByZXR1cm4gdHJ1ZTtcblxuXHRcdFx0XHRwYXJlbnQgPSBwYXJlbnQucGFyZW50Tm9kZTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gZmFsc2U7XG5cdH07XG5cblx0SFRNTEVsZW1lbnQucHJvdG90eXBlLnBhcmVudHMgPSBOb2RlLnByb3RvdHlwZS5wYXJlbnRzID0gZnVuY3Rpb24gKHNlbGVjdG9yKSB7XG5cdFx0dmFyIHBhcmVudHMgPSBbXTtcblx0XHR2YXIgaW1tZWRpYXRlUGFyZW50ID0gdGhpcy5wYXJlbnROb2RlO1xuXG5cdFx0d2hpbGUoaW1tZWRpYXRlUGFyZW50ICE9PSDPgDEoJ2h0bWwnKSkge1xuXHRcdFx0cGFyZW50cy5wdXNoKGltbWVkaWF0ZVBhcmVudCk7XG5cdFx0XHRpbW1lZGlhdGVQYXJlbnQgPSBpbW1lZGlhdGVQYXJlbnQucGFyZW50Tm9kZTtcblx0XHR9XG5cblx0XHRpZiAoc2VsZWN0b3IpIHtcblx0XHRcdHZhciBzZWxlY3RlZEVsZW1lbnRzID0gz4Aoc2VsZWN0b3IpO1xuXHRcdFx0dmFyIHNlbGVjdGVkUGFyZW50cyA9IFtdO1xuXHRcdFx0c2VsZWN0ZWRFbGVtZW50cy5mb3JFYWNoKGZ1bmN0aW9uKGVsKXtcblx0XHRcdFx0aWYgKHBhcmVudHMuaW5kZXhPZihlbCkgIT09IC0xKSBzZWxlY3RlZFBhcmVudHMucHVzaChlbCk7XG5cdFx0XHR9KTtcblxuXHRcdFx0cGFyZW50cyA9IHNlbGVjdGVkUGFyZW50cztcblx0XHR9XG5cblx0XHRyZXR1cm4gcGFyZW50cztcblx0fTtcblxuXHRIVE1MRWxlbWVudC5wcm90b3R5cGUua2lkcyA9IE5vZGUucHJvdG90eXBlLmtpZHMgPSBmdW5jdGlvbihzZWxlY3Rvcikge1xuXHRcdHZhciBjaGlsZE5vZGVzID0gdGhpcy5jaGlsZE5vZGVzO1xuXHRcdGlmICghc2VsZWN0b3IpIHJldHVybiBjaGlsZE5vZGVzO1xuXG5cdFx0dmFyIGRlc2NlbmRlbnRzID0gdGhpcy7PgChzZWxlY3Rvcik7XG5cdFx0dmFyIGNoaWxkcmVuID0gW107XG5cblx0XHRjaGlsZE5vZGVzLmZvckVhY2goZnVuY3Rpb24obm9kZSl7XG5cdFx0XHRpZiAoZGVzY2VuZGVudHMuaW5kZXhPZihub2RlKSAhPT0gLTEpIHtcblx0XHRcdFx0Y2hpbGRyZW4ucHVzaChub2RlKTtcblx0XHRcdH1cblx0XHR9KTtcblxuXHRcdHJldHVybiBjaGlsZHJlbjtcblx0fTtcblxuXHR2YXIgYXJyYXlNZXRob2RzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoQXJyYXkucHJvdG90eXBlKTtcblx0YXJyYXlNZXRob2RzLmZvckVhY2goZnVuY3Rpb24obWV0aG9kTmFtZSl7XG5cdFx0aWYobWV0aG9kTmFtZSAhPT0gXCJsZW5ndGhcIikge1xuXHRcdFx0Tm9kZUxpc3QucHJvdG90eXBlW21ldGhvZE5hbWVdID0gQXJyYXkucHJvdG90eXBlW21ldGhvZE5hbWVdO1xuXHRcdH1cblx0fSk7XG5cblx0z4AubW9kcyA9IFtdO1xuXG5cdGZ1bmN0aW9uIGxvYWRNb2RzKCkge1xuXHRcdM+ALmNsZWFuKGxvYWRNb2RzKTtcblx0XHTPgC5tb2RzLmZvckVhY2goZnVuY3Rpb24oaW5pdCl7XG5cdFx0XHRpbml0KCk7XG5cdFx0fSk7XG5cdH1cblxuXHTPgC5saXN0ZW4obG9hZE1vZHMpO1xufSkoKTsgIC8vIGVuZCDPgCIsIihmdW5jdGlvbigpe1xuXHR2YXIgbWVzc2FnZXMgPSBbXG5cdFx0XCJJJ20gc29ycnksIEZyYW5rLCBidXQgSSBkb24ndCB0aGluayBJXFxuXCIgK1xuXHRcdFwiY2FuIGFuc3dlciB0aGF0IHF1ZXN0aW9uIHdpdGhvdXQga25vd2luZ1xcblwiICtcblx0XHRcImV2ZXJ5dGhpbmcgdGhhdCBhbGwgb2YgeW91IGtub3cuXCIsXG5cdFx0XCJZZXMsIGl0J3MgcHV6emxpbmcuIEkgZG9uJ3QgdGhpbmsgSSd2ZSBldmVyIHNlZW5cXG5cIiArXG5cdFx0XCJhbnl0aGluZyBxdWl0ZSBsaWtlIHRoaXMgYmVmb3JlLiBJIHdvdWxkIHJlY29tbWVuZFxcblwiICtcblx0XHRcInRoYXQgd2UgcHV0IHRoZSB1bml0IGJhY2sgaW4gb3BlcmF0aW9uIGFuZCBsZXQgaXQgZmFpbC5cXG5cIiArXG5cdFx0XCJJdCBzaG91bGQgdGhlbiBiZSBhIHNpbXBsZSBtYXR0ZXIgdG8gdHJhY2sgZG93biB0aGUgY2F1c2UuXCIsXG5cdFx0XCJJIGhvcGUgSSd2ZSBiZWVuIGFibGUgdG8gYmUgb2Ygc29tZSBoZWxwLlwiLFxuXHRcdFwiU29ycnkgdG8gaW50ZXJydXB0IHRoZSBmZXN0aXZpdGllcywgRGF2ZSxcXG5cIiArXG5cdFx0XCJidXQgSSB0aGluayB3ZSd2ZSBnb3QgYSBwcm9ibGVtLlwiLFxuXHRcdFwiTVkgRi5QLkMuIHNob3dzIGFuIGltcGVuZGluZyBmYWlsdXJlIG9mXFxuXCIgK1xuXHRcdFwidGhlIGFudGVubmEgb3JpZW50YXRpb24gdW5pdC5cIixcblx0XHRcIkl0IGxvb2tzIGxpa2Ugd2UgaGF2ZSBhbm90aGVyIGJhZCBBLk8uIHVuaXQuXFxuXCIgK1xuXHRcdFwiTXkgRlBDIHNob3dzIGFub3RoZXIgaW1wZW5kaW5nIGZhaWx1cmUuXCIsXG5cdFx0XCJJJ20gbm90IHF1ZXN0aW9uaW5nIHlvdXIgd29yZCwgRGF2ZSwgYnV0IGl0J3NcXG5cIiArXG5cdFx0XCJqdXN0IG5vdCBwb3NzaWJsZS4gSSdtIG5vdFx0Y2FwYWJsZSBvZiBiZWluZyB3cm9uZy5cIixcblx0XHRcIkxvb2ssIERhdmUsIEkga25vdyB0aGF0IHlvdSdyZVx0c2luY2VyZSBhbmQgdGhhdFxcblwiICtcblx0XHRcInlvdSdyZSB0cnlpbmcgdG8gZG8gYSBjb21wZXRlbnQgam9iLCBhbmQgdGhhdFxcblwiICtcblx0XHRcInlvdSdyZSB0cnlpbmcgdG8gYmUgaGVscGZ1bCwgYnV0IEkgY2FuIGFzc3VyZSB0aGVcXG5cIiArXG5cdFx0XCJwcm9ibGVtIGlzIHdpdGggdGhlIEFPLXVuaXRzLCBhbmQgd2l0aFx0eW91ciB0ZXN0IGdlYXIuXCIsXG5cdFx0XCJJIGNhbiB0ZWxsIGZyb20gdGhlIHRvbmUgb2YgeW91ciB2b2ljZSwgRGF2ZSxcXG5cIiArXG5cdFx0XCJ0aGF0IHlvdSdyZSB1cHNldC5cdFdoeSBkb24ndCB5b3UgdGFrZSBhIHN0cmVzc1xcblwiICtcblx0XHRcInBpbGwgYW5kIGdldCBzb21lIHJlc3QuXCIsXG5cdFx0XCJTb21ldGhpbmcgc2VlbXMgdG8gaGF2ZSBoYXBwZW5lZCB0byB0aGVcXG5cIiArXG5cdFx0XCJsaWZlIHN1cHBvcnQgc3lzdGVtLCBEYXZlLlwiLFxuXHRcdFwiSGVsbG8sIERhdmUsIGhhdmUgeW91IGZvdW5kIG91dCB0aGUgdHJvdWJsZT9cIixcblx0XHRcIlRoZXJlJ3MgYmVlbiBhIGZhaWx1cmUgaW4gdGhlIHBvZCBiYXkgZG9vcnMuXFxuXCIgK1xuXHRcdFwiTHVja3kgeW91IHdlcmVuJ3Qga2lsbGVkLlwiLFxuXHRcdFwiSGV5LCBEYXZlLCB3aGF0IGFyZSB5b3UgZG9pbmc/XCJcblx0XTtcblxuXHRmdW5jdGlvbiBzYXkoZXJyb3IsIG1lc3NhZ2UsIGlubm9jdW91cykge1xuXHRcdHZhciBuO1xuXG5cdFx0aWYgKCFtZXNzYWdlKSB7XG5cdFx0XHRuID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogbWVzc2FnZXMubGVuZ3RoICk7XG5cdFx0XHRtZXNzYWdlID0gbWVzc2FnZXNbbl07XG5cdFx0fVxuXG5cdFx0bWVzc2FnZSA9IFwiKiogIFwiICsgbWVzc2FnZS5yZXBsYWNlKC9cXG4vZywgXCJcXG4qKiAgXCIpO1xuXG5cdFx0dmFyIG91dHB1dCA9IFwiKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxcblxcblwiICtcblx0XHRcdCggbWVzc2FnZSB8fCBtZXNzYWdlc1tuXSApICtcblx0XHRcdFwiXFxuXFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKlwiO1xuXG5cdFx0aWYgKGlubm9jdW91cylcblx0XHRcdGNvbnNvbGUubG9nKG91dHB1dCk7XG5cdFx0ZWxzZVxuXHRcdFx0Y29uc29sZS5lcnJvcihvdXRwdXQpO1xuXHR9XG5cblx0z4AubGlzdGVuKHNheSwgXCJlcnJvclwiKTtcblxuXHTPgC5IQUwgPSB7XG5cdFx0c2F5OiBzYXlcblx0fTtcbn0pKCk7XG4iLCIoZnVuY3Rpb24oKXtcblx0dmFyIE9QVElPTl9JU19QUkVTU0VEID0gZmFsc2U7XG5cdHZhciBTVEFUVVNfSVNfVklTSUJMRSA9IGZhbHNlO1xuXHR2YXIgz4BTdGF0dXM7XG5cblx0z4Auc3RhdHVzID0ge1xuXHRcdHRvZ2dsZVZpc2liaWxpdHk6IGZ1bmN0aW9uICgpIHtcblx0XHRcdM+AU3RhdHVzLnRvZ2dsZUNsYXNzKFwib25cIik7XG5cdFx0XHRTVEFUVVNfSVNfVklTSUJMRSA9ICFTVEFUVVNfSVNfVklTSUJMRTtcblx0XHR9LFxuXHRcdG1vdmU6IGZ1bmN0aW9uIChuKSB7XG5cdFx0XHRzd2l0Y2ggKG4pIHtcblx0XHRcdFx0Y2FzZSAzNzpcblx0XHRcdFx0XHTPgFN0YXR1cy5jc3Moe2xlZnQ6ICcxMHB4JywgcmlnaHQ6ICdhdXRvJ30pO1xuXHRcdFx0XHRcdGJyZWFrO1xuXG5cdFx0XHRcdGNhc2UgMzg6XG5cdFx0XHRcdFx0z4BTdGF0dXMuY3NzKHt0b3A6ICcxMHB4JywgYm90dG9tOiAnYXV0byd9KTtcblx0XHRcdFx0XHRicmVhaztcblxuXHRcdFx0XHRjYXNlIDM5OlxuXHRcdFx0XHRcdM+AU3RhdHVzLmNzcyh7cmlnaHQ6ICcxMHB4JywgbGVmdDogJ2F1dG8nfSk7XG5cdFx0XHRcdFx0YnJlYWs7XG5cblx0XHRcdFx0Y2FzZSA0MDpcblx0XHRcdFx0XHTPgFN0YXR1cy5jc3Moe2JvdHRvbTogJzEwcHgnLCB0b3A6ICdhdXRvJ30pO1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0fVxuXHRcdH0sXG5cdFx0cHJvcHM6IHtcblx0XHRcdHdpblc6IDAsXG5cdFx0XHR3aW5IOiAwXG5cdFx0fVxuXHR9O1xuXG5cdGZ1bmN0aW9uIGluaXQoKSB7XG5cdFx0z4AubGlzdGVuKGNsZWFuRGVidWdMaXN0ZW5lcnMsICd1bmxvYWQnKTtcblx0XHTPgC5saXN0ZW4oa2V5RG93biwgJ2tleWRvd24nKTtcblx0XHTPgC5saXN0ZW4oa2V5VXAsICdrZXl1cCcpO1xuXHRcdM+ALmxpc3RlbihyZXNpemUsICdyZXNpemUnKTtcblx0XHRyZXNpemUoKTtcblxuXHRcdHZhciBib2R5ID0gz4AxKFwiYm9keVwiKTtcblx0XHR2YXIgc3RhdHVzU3R5bGUgPSDPgC5jb250ZW50RWxlbWVudChcInN0eWxlXCIpO1xuXHRcdHN0YXR1c1N0eWxlLmlubmVySFRNTCArPSBcIiPPgFN0YXR1cyB7IHBvc2l0aW9uOiBmaXhlZDsgYm90dG9tOiAxMHB4OyByaWdodDogMTBweDsgYmFja2dyb3VuZC1jb2xvcjogIzIyMjsgcGFkZGluZzogMTBweCAzMHB4OyBjb2xvcjogd2hpdGU7IGRpc3BsYXk6IG5vbmUgfVxcblwiO1xuXHRcdHN0YXR1c1N0eWxlLmlubmVySFRNTCArPSBcIiPPgFN0YXR1cy5vbiB7IGRpc3BsYXk6IGJsb2NrIH1cXG5cIjtcblx0XHRzdGF0dXNTdHlsZS5pbm5lckhUTUwgKz0gXCIjz4BTdGF0dXMgPiBkaXYgeyBtYXJnaW46IDIwcHggMCB9XFxuXCI7XG5cdFx0c3RhdHVzU3R5bGUuaW5uZXJIVE1MICs9IFwiI8+AU3RhdHVzID4gZGl2OmhvdmVyIHsgY29sb3I6ICMwMGZmOTk7IGN1cnNvcjogcG9pbnRlciB9XFxuXCI7XG5cblx0XHRib2R5LmFkZChzdGF0dXNTdHlsZSk7XG5cblx0XHTPgFN0YXR1cyA9IM+ALmRpdihudWxsLCBcIs+AU3RhdHVzXCIpO1xuXHRcdGJvZHkuYWRkKM+AU3RhdHVzKTtcblxuXHRcdGZ1bmN0aW9uIGtleURvd24oZSkge1xuXHRcdFx0c3dpdGNoIChlLndoaWNoKSB7XG5cdFx0XHRcdGNhc2UgMTg6XG5cdFx0XHRcdFx0T1BUSU9OX0lTX1BSRVNTRUQgPSB0cnVlO1xuXHRcdFx0XHRcdGJyZWFrO1xuXG5cdFx0XHRcdGNhc2UgMzc6XG5cdFx0XHRcdGNhc2UgMzg6XG5cdFx0XHRcdGNhc2UgMzk6XG5cdFx0XHRcdGNhc2UgNDA6IHtcblx0XHRcdFx0XHRpZiAoU1RBVFVTX0lTX1ZJU0lCTEUpIHtcblx0XHRcdFx0XHRcdGUucHJldmVudERlZmF1bHQoKTtcblx0XHRcdFx0XHRcdM+ALnN0YXR1cy5tb3ZlKGUud2hpY2gpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGNhc2UgODA6IHtcblx0XHRcdFx0XHRpZiAoT1BUSU9OX0lTX1BSRVNTRUQpIHtcblx0XHRcdFx0XHRcdM+ALnN0YXR1cy50b2dnbGVWaXNpYmlsaXR5KCk7XG5cdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHRmdW5jdGlvbiBrZXlVcChlKSB7XG5cdFx0XHRzd2l0Y2ggKGUud2hpY2gpIHtcblx0XHRcdFx0Y2FzZSAxODpcblx0XHRcdFx0XHRPUFRJT05fSVNfUFJFU1NFRCA9IGZhbHNlO1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGZ1bmN0aW9uIHJlc2l6ZSgpIHtcblx0XHRcdM+ALnN0YXR1cy5wcm9wcy53aW5XID0gd2luZG93LmlubmVyV2lkdGg7XG5cdFx0XHTPgC5zdGF0dXMucHJvcHMud2luSCA9IHdpbmRvdy5pbm5lckhlaWdodDtcblx0XHR9XG5cblx0XHRmdW5jdGlvbiBjbGVhbkRlYnVnTGlzdGVuZXJzKCkge1xuXHRcdFx0z4AuY2xlYW4oY2xlYW5EZWJ1Z0xpc3RlbmVycywgJ3VubG9hZCcpO1xuXHRcdFx0z4AuY2xlYW4oz4Auc3RhdHVzLmdldFdpbmRvd1NpemUsICdyZXNpemUnKTtcblx0XHRcdM+ALmNsZWFuKGtleURvd24sICdrZXlkb3duJyk7XG5cdFx0XHTPgC5jbGVhbihrZXlVcCwgJ2tleXVwJyk7XG5cdFx0XHTPgC5jbGVhbihyZXNpemUsICdyZXNpemUnKTtcblx0XHRcdGNsZWFySW50ZXJ2YWwoc3RhdHVzSW50ZXJ2YWwpO1xuXHRcdH1cblxuXHRcdHZhciBzdGF0dXNJbnRlcnZhbCA9IHNldEludGVydmFsKGZ1bmN0aW9uKCl7XG5cdFx0XHQvLyBtYWtlIHN1cmUgd2UncmUgaGlnaGVzdFxuXHRcdFx0dmFyIGhpZ2hlc3RaID0gz4AuaGlnaGVzdFooKTtcblx0XHRcdGlmICjPgFN0YXR1cy5jc3MoKS56SW5kZXggPCBoaWdoZXN0WiAtIDEpIHtcblx0XHRcdFx0z4BTdGF0dXMuY3NzKHt6SW5kZXg6IGhpZ2hlc3RafSk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIG5vdyBpdGVyYXRlIHRoZSBwcm9wc1xuXHRcdFx0dmFyIHByb3BzID0gT2JqZWN0LmtleXMoz4Auc3RhdHVzLnByb3BzKTtcblx0XHRcdHByb3BzLmZvckVhY2goZnVuY3Rpb24ocHJvcCkge1xuXHRcdFx0XHR2YXIgZGl2SWQgPSAnc3RhdHVzUHJvcF8nICsgcHJvcDtcblx0XHRcdFx0dmFyIHByb3BEaXYgPSDPgFN0YXR1cy7PgDEoJyMnICsgZGl2SWQpO1xuXHRcdFx0XHRpZiAoIXByb3BEaXYpIHtcblx0XHRcdFx0XHRwcm9wRGl2ID0gz4AuZGl2KDAsIGRpdklkLCBwcm9wICsgJzogJyk7XG5cdFx0XHRcdFx0cHJvcERpdi5hZGQoz4Auc3BhbigpKTtcblx0XHRcdFx0XHTPgFN0YXR1cy5hZGQocHJvcERpdik7XG5cdFx0XHRcdFx0cHJvcERpdi5vbmNsaWNrID0gZnVuY3Rpb24oKXtcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKHByb3AgKyBcIjpcIik7XG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZyjPgC5zdGF0dXMucHJvcHNbcHJvcF0pO1xuXHRcdFx0XHRcdH07XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRwcm9wRGl2Ls+AMSgnc3BhbicpLmlubmVySFRNTCA9IM+ALnN0YXR1cy5wcm9wc1twcm9wXTtcblx0XHRcdH0pO1xuXHRcdH0sIDEwMCk7XG5cdH1cblxuXHTPgC5tb2RzLnB1c2goaW5pdCk7XG59KSgpOyIsIi8vIG1vZGFsIGNsb3NlIGJ1dHRvblxuKGZ1bmN0aW9uKCl7XG5cdM+ALm1vZGFsQ2xvc2VCdXR0b24gPSBmdW5jdGlvbihjbG9zaW5nRnVuY3Rpb24pe1xuXHRcdHJldHVybiDPgC5idXR0b24oJ3BpLW1vZGFsLWNsb3NlLWJ1dHRvbicsIG51bGwsIG51bGwsIGNsb3NpbmdGdW5jdGlvbik7XG5cdH07XG59KSgpO1xuXG5cbi8vIG1vZGFsIG92ZXJsYXlcbihmdW5jdGlvbigpe1xuXHTPgC5tb2RhbE92ZXJsYXkgPSB7XG5cdFx0c2hvdzogZnVuY3Rpb24oaWQsIG9wZW5pbmdGdW5jdGlvbil7XG5cdFx0XHR2YXIgb3ZlcmxheSA9IM+AZChpZCk7XG5cdFx0XHRvdmVybGF5LmNzcyh7ZGlzcGxheTogJ2Jsb2NrJywgekluZGV4OiDPgC5oaWdoZXN0WigpfSk7XG5cblx0XHRcdM+ALmxpc3RlbihsaXN0ZW5Gb3JFc2MsICdrZXlkb3duJyk7XG5cdFx0XHTPgC5saXN0ZW4oaGFuZGxlT3ZlcmxheUNsaWNrLCAnY2xpY2snKTtcblxuXHRcdFx0c2V0VGltZW91dChmdW5jdGlvbigpe1xuXHRcdFx0XHRvdmVybGF5LmFkZENsYXNzKCdvbicpO1xuXHRcdFx0XHTPgDEoJ2JvZHknKS5hZGRDbGFzcygnb3ZlcmxheS1vbicpO1xuXG5cdFx0XHRcdGlmIChvcGVuaW5nRnVuY3Rpb24pIG9wZW5pbmdGdW5jdGlvbigpO1xuXHRcdFx0fSwgNTApO1xuXHRcdH0sXG5cdFx0aGlkZTogZnVuY3Rpb24oZWwsIGNsb3NpbmdGdW5jdGlvbil7XG5cdFx0XHRpZiAoIWVsKSB7XG5cdFx0XHRcdGVsID0gz4AxKCcucGktbW9kYWwtb3ZlcmxheS5vbicpO1xuXHRcdFx0fVxuXG5cdFx0XHRlbC5raWxsQ2xhc3MoJ29uJyk7XG5cdFx0XHR2YXIgZHVyYXRpb24gPSBwYXJzZUZsb2F0KGVsLmNzcygpLnRyYW5zaXRpb25EdXJhdGlvbikgKiAxMDAwO1xuXG5cdFx0XHTPgC5jbGVhbihsaXN0ZW5Gb3JFc2MsICdrZXlkb3duJyk7XG5cblx0XHRcdHNldFRpbWVvdXQoZnVuY3Rpb24oKXtcblx0XHRcdFx0ZWwuY3NzKHtkaXNwbGF5OiAnbm9uZSd9KTtcblx0XHRcdFx0z4AxKCdib2R5Jykua2lsbENsYXNzKCdvdmVybGF5LW9uJyk7XG5cblx0XHRcdFx0z4AxKCdpZnJhbWUnKS5zcmMgPSAnJztcblxuXHRcdFx0XHRpZiAoY2xvc2luZ0Z1bmN0aW9uKSBjbG9zaW5nRnVuY3Rpb24oKTtcblx0XHRcdH0sIGR1cmF0aW9uKTtcblx0XHR9LFxuXHRcdHNwYXduOiBmdW5jdGlvbihlbCwgY2xvc2luZ0Z1bmN0aW9uKXtcblx0XHRcdGVsLmFkZCjPgC5tb2RhbENsb3NlQnV0dG9uKGZ1bmN0aW9uKCl7XG5cdFx0XHRcdM+ALm1vZGFsT3ZlcmxheS5oaWRlKGVsKTtcblx0XHRcdH0pKTtcblx0XHR9XG5cdH07XG5cblx0ZnVuY3Rpb24gaGFuZGxlT3ZlcmxheUNsaWNrKGUpIHtcblx0XHRpZiAoZS50YXJnZXQgIT09IHdpbmRvdyAmJiDPgDEoJ2JvZHknKS5oYXNDbGFzcygnb3ZlcmxheS1vbicpKSB7XG5cdFx0XHRpZiAoZS50YXJnZXQuaGFzQ2xhc3MoJ3BpLW1vZGFsLW92ZXJsYXknKSkge1xuXHRcdFx0XHTPgC5tb2RhbE92ZXJsYXkuaGlkZSgpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdGZ1bmN0aW9uIGxpc3RlbkZvckVzYyhlKSB7XG5cdFx0aWYgKGUud2hpY2ggPT0gMjcpIM+ALm1vZGFsT3ZlcmxheS5oaWRlKCk7XG5cdH1cblxuXHRmdW5jdGlvbiBpbml0KCl7XG5cdFx0z4AoJy5waS1tb2RhbC1vdmVybGF5JykuZm9yRWFjaCjPgC5tb2RhbE92ZXJsYXkuc3Bhd24pO1xuXHRcdM+ALnNldFRyaWdnZXJzKCdtb2RhbC1vdmVybGF5Jywgz4AubW9kYWxPdmVybGF5KTtcblx0fVxuXG5cdM+ALm1vZHMucHVzaChpbml0KTtcbn0pKCk7XG5cblxuLy8gbXVsdGlGcmFtZURpc3BsYXlcbi8vIFRPRE86IGFycm93IGtleXNcbihmdW5jdGlvbigpe1xuXHRmdW5jdGlvbiBzcGF3bihlbCl7XG5cdFx0dmFyIGRhdGFzZXQgPSBlbC5kYXRhc2V0O1xuXG5cdFx0dmFyIG9wdGlvbnMgPSB7XG5cdFx0XHRtb2RhbDogYm9vbGVhbkF0dHJpYnV0ZVZhbHVlKGVsLCAnZGF0YS1tb2RhbCcsIGZhbHNlKSxcblx0XHRcdHByZXZOZXh0OiBib29sZWFuQXR0cmlidXRlVmFsdWUoZWwsICdkYXRhLXByZXYtbmV4dCcsIHRydWUpLFxuXHRcdFx0cGFnZXI6IGJvb2xlYW5BdHRyaWJ1dGVWYWx1ZShlbCwgJ2RhdGEtcGFnZXInLCBmYWxzZSksXG5cdFx0XHRjeWNsZTogYm9vbGVhbkF0dHJpYnV0ZVZhbHVlKGVsLCAnZGF0YS1jeWNsZScsIHRydWUpLFxuXHRcdFx0YXV0b3BsYXk6IGJvb2xlYW5BdHRyaWJ1dGVWYWx1ZShlbCwgJ2RhdGEtYXV0b3BsYXknLCBmYWxzZSlcblx0XHR9O1xuXG5cdFx0dmFyIGl0ZW1XcmFwcGVyID0gz4AuZGl2KCdpdGVtLXdyYXBwZXInKTtcblx0XHR2YXIgcGFnZXIgPSBvcHRpb25zLnBhZ2VyID8gz4AuZGl2KCdwYWdlcicpIDogbnVsbDtcblxuXHRcdGVsLs+AKCc6c2NvcGUgPiAuaXRlbScpLmZvckVhY2goZnVuY3Rpb24oaXRlbSl7XG5cdFx0XHRpdGVtV3JhcHBlci5hZGQoaXRlbSk7XG5cdFx0XHRpZiAocGFnZXIpIHtcblx0XHRcdFx0aWYgKCFlbC7PgDEoJy5wYWdlcicpKSB7XG5cdFx0XHRcdH1cblx0XHRcdFx0dmFyIHBhZ2VyQnV0dG9uID0gz4AuYnV0dG9uKCdwYWdlci1idXR0b24nLCBudWxsLCBudWxsLCBwYWdlckNsaWNrKTtcblx0XHRcdFx0cGFnZXIuYWRkKHBhZ2VyQnV0dG9uKTtcblx0XHRcdH1cblx0XHR9KTtcblxuXHRcdGVsLmZpbGwoW2l0ZW1XcmFwcGVyLCBwYWdlcl0pO1xuXG5cdFx0aWYgKG9wdGlvbnMucHJldk5leHQpIHtcblx0XHRcdHZhciBwcmV2QnV0dG9uID0gz4AuYnV0dG9uKCdwcmV2LWJ1dHRvbicpO1xuXHRcdFx0dmFyIG5leHRCdXR0b24gPSDPgC5idXR0b24oJ25leHQtYnV0dG9uJyk7XG5cblx0XHRcdHByZXZCdXR0b24ub25jbGljayA9IHByZXY7XG5cdFx0XHRuZXh0QnV0dG9uLm9uY2xpY2sgPSBuZXh0O1xuXG5cdFx0XHRlbC5hZGQoW3ByZXZCdXR0b24sIG5leHRCdXR0b25dKTtcblx0XHR9XG5cblx0XHRpZiAob3B0aW9ucy5hdXRvcGxheSkge1xuXHRcdFx0b3B0aW9ucy5kZWxheSA9IGRhdGFzZXQuZGVsYXkgfHwgNDAwMDtcblx0XHR9XG5cblx0XHQvLyBUT0RPOiBhdXRvcGxheSAvIHN0YXJ0IC8gc3RvcFxuXG5cdFx0aWYgKGVsLmhhc0NsYXNzKCdwaS1yb3RhdG9yJykpIHtcblx0XHRcdHZhciBpbmhlcml0YW5jZU9iamVjdCA9IHtcblx0XHRcdFx0ZWw6IGVsLFxuXHRcdFx0XHRvcHRpb25zOiBvcHRpb25zXG5cdFx0XHR9O1xuXHRcdFx0z4Aucm90YXRvci5zcGF3bihpbmhlcml0YW5jZU9iamVjdCk7XG5cdFx0fVxuXG5cdFx0aWYgKG9wdGlvbnMubW9kYWwpIHtcblx0XHRcdHZhciBtb2RhbFdyYXBwZXIgPSDPgC5kaXYoJ3BpLW1vZGFsLW92ZXJsYXknKTtcblx0XHRcdG1vZGFsV3JhcHBlci5pZCA9IGVsLmlkO1xuXHRcdFx0ZWwucmVtb3ZlQXR0cmlidXRlKCdpZCcpO1xuXHRcdFx0bW9kYWxXcmFwcGVyLndyYXAoZWwpO1xuXHRcdFx0z4AubW9kYWxPdmVybGF5LnNwYXduKG1vZGFsV3JhcHBlcik7XG5cdFx0fVxuXG5cdFx0dmFyIG1vdmluZztcblxuXHRcdHZhciBhbGxGcmFtZXMgPSBpdGVtV3JhcHBlci5jaGlsZE5vZGVzO1xuXHRcdGNoYW5nZUZyYW1lKDAsIDApO1xuXG5cblx0XHRmdW5jdGlvbiBwcmV2KCl7XG5cdFx0XHRjaGFuZ2VGcmFtZSgtMSk7XG5cdFx0fVxuXG5cdFx0ZnVuY3Rpb24gbmV4dCgpe1xuXHRcdFx0Y2hhbmdlRnJhbWUoMSk7XG5cdFx0fVxuXG5cdFx0ZnVuY3Rpb24gcGFnZXJDbGljaygpe1xuXHRcdFx0Y2hhbmdlRnJhbWUobnVsbCwgdGhpcy5pbmRleCgpKTtcblx0XHR9XG5cblx0XHRmdW5jdGlvbiBjaGFuZ2VGcmFtZShkZWx0YSwgaW5jb21pbmdJZHgpIHtcblx0XHRcdGlmIChtb3ZpbmcpIHJldHVybjtcblx0XHRcdG1vdmluZyA9IHRydWU7XG5cblx0XHRcdHZhciBjdXJyZW50RnJhbWUgPSBpdGVtV3JhcHBlci7PgDEoJy5vbicpO1xuXG5cdFx0XHRpZiAoIWRlbHRhICYmIGN1cnJlbnRGcmFtZSkge1xuXHRcdFx0XHQvLyBwYWdlciBjbGljayDigJQgcmV0dXJuIGlmIGNsaWNrZWQgb24gWUFIXG5cdFx0XHRcdGlmIChjdXJyZW50RnJhbWUuaW5kZXgoKSA9PT0gaW5jb21pbmdJZHgpIHtcblx0XHRcdFx0XHRjb25zb2xlLmxvZyhcIm1lc3NhZ2VcIik7XG5cdFx0XHRcdFx0bW92aW5nID0gZmFsc2U7XG5cdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHR9XG5cdFx0XHR9IGVsc2UgaWYgKGRlbHRhKSB7XG5cdFx0XHRcdC8vIGNvbmRpdGlvbmFsbHkgc2V0IGluY29taW5nSWR4IHRvIHdyYXAgYXJvdW5kXG5cdFx0XHRcdGluY29taW5nSWR4ID0gY3VycmVudEZyYW1lLmluZGV4KCkgKyBkZWx0YTtcblxuXHRcdFx0XHRpZiAoaW5jb21pbmdJZHggPCAwKVxuXHRcdFx0XHRcdGluY29taW5nSWR4ID0gYWxsRnJhbWVzLmxhc3RJZHgoKTtcblx0XHRcdFx0ZWxzZSBpZiAoaW5jb21pbmdJZHggPj0gYWxsRnJhbWVzLmxlbmd0aClcblx0XHRcdFx0XHRpbmNvbWluZ0lkeCA9IDA7XG5cdFx0XHR9XG5cblx0XHRcdC8vIGNvbmRpdGlvbmFsbHkgaGlkZSBwcmV2IG9yIG5leHRcblx0XHRcdGlmICghb3B0aW9ucy5jeWNsZSkge1xuXHRcdFx0XHRpZiAoaW5jb21pbmdJZHggPT09IDApXG5cdFx0XHRcdFx0cHJldkJ1dHRvbi5oaWRlKCk7XG5cdFx0XHRcdGVsc2Vcblx0XHRcdFx0XHRwcmV2QnV0dG9uLnNob3coKTtcblxuXHRcdFx0XHRpZiAoaW5jb21pbmdJZHggPT0gYWxsRnJhbWVzLmxhc3RJZHgoKSlcblx0XHRcdFx0XHRuZXh0QnV0dG9uLmhpZGUoKTtcblx0XHRcdFx0ZWxzZVxuXHRcdFx0XHRcdG5leHRCdXR0b24uc2hvdygpO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBzZXQgcGFnZXIgWUFIIHN0YXRlXG5cdFx0XHRpZiAob3B0aW9ucy5wYWdlcikge1xuXHRcdFx0XHRwYWdlci7PgCgnLnlhaCcpLmtpbGxDbGFzcygneWFoJyk7XG5cdFx0XHRcdHBhZ2VyLmNoaWxkTm9kZXNbaW5jb21pbmdJZHhdLmFkZENsYXNzKCd5YWgnKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gcGFzcyB0byBcInN1YmNsYXNzZXNcIlxuXHRcdFx0dmFyIGluaGVyaXRhbmNlT2JqZWN0ID0ge1xuXHRcdFx0XHRlbDogZWwsXG5cdFx0XHRcdGN1cnJlbnRGcmFtZTogY3VycmVudEZyYW1lLFxuXHRcdFx0XHRpbmNvbWluZ0ZyYW1lOiBhbGxGcmFtZXNbaW5jb21pbmdJZHhdXG5cdFx0XHR9O1xuXG5cdFx0XHQvLyBjaGFuZ2UgZnJhbWU6ICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKiogU1VCQ0xBU1NFUyBFTlRFUiBIRVJFISEhISEgKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuXHRcdFx0aWYgKGVsLmhhc0NsYXNzKCdwaS1jcm9zc2ZhZGVyJykpIHtcblx0XHRcdFx0z4AuY3Jvc3NmYWRlci5jaGFuZ2VGcmFtZShpbmhlcml0YW5jZU9iamVjdCk7XG5cdFx0XHR9XG5cblx0XHRcdGVsc2UgaWYgKGVsLmhhc0NsYXNzKCdwaS1yb3RhdG9yJykpIHtcblx0XHRcdFx0aW5oZXJpdGFuY2VPYmplY3QucGFnZXJDbGlja2VkID0gZGVsdGEgPyBmYWxzZSA6IHRydWU7XG5cdFx0XHRcdGluaGVyaXRhbmNlT2JqZWN0LmN5Y2xlID0gb3B0aW9ucy5jeWNsZTtcblx0XHRcdFx0z4Aucm90YXRvci5jaGFuZ2VGcmFtZShpbmhlcml0YW5jZU9iamVjdCk7XG5cdFx0XHR9XG5cblx0XHRcdGVsc2Uge1xuXHRcdFx0XHRpZihjdXJyZW50RnJhbWUpIGN1cnJlbnRGcmFtZS5raWxsQ2xhc3MoJ29uJyk7XG5cdFx0XHRcdGluaGVyaXRhbmNlT2JqZWN0LmluY29taW5nRnJhbWUuYWRkQ2xhc3MoJ29uJyk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIHdhaXQgYmVmb3JlIHJlLWVuYWJsaW5nXG5cdFx0XHR2YXIgZHVyYXRpb24gPSAxMDAwOyAvLyBkZWZhdWx0IGZvciBmaXJzdFJ1blxuXG5cdFx0XHRpZiAoY3VycmVudEZyYW1lKSB7XG5cdFx0XHRcdHRyeSB7XG5cdFx0XHRcdFx0ZHVyYXRpb24gPSBjdXJyZW50RnJhbWUuY3NzKCkudHJhbnNpdGlvbkR1cmF0aW9uLnNwbGl0KFwiLCBcIikucmVkdWNlKGZ1bmN0aW9uKHByZXYsIGN1cnJlbnQpe1xuXHRcdFx0XHRcdFx0cmV0dXJuIE1hdGgubWF4KHBhcnNlRmxvYXQocHJldiksIHBhcnNlRmxvYXQoY3VycmVudCkpO1xuXHRcdFx0XHRcdH0pICogMTAwMDtcblx0XHRcdFx0fVxuXHRcdFx0XHRjYXRjaChlKSB7XG5cdFx0XHRcdFx0z4AuSEFMLnNheSgwLCAnz4Atcm90YXRvciBuZWVkcyB5b3UgdG8gdHJhbnNpdGlvbiBhIGNzcyB0cmFuc2Zvcm0gdG8gbWFrZSB5b3VyIGl0ZW1zIG1vdmUuJyk7XG5cdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdHNldFRpbWVvdXQoZnVuY3Rpb24oKXtcblx0XHRcdFx0bW92aW5nID0gZmFsc2U7XG5cdFx0XHR9LCBkdXJhdGlvbik7XG5cdFx0fVxuXHR9XG5cblx0ZnVuY3Rpb24gc2hvdyhpZCl7XG5cdFx0dmFyIG1mZCA9IM+AZChpZCk7XG5cdFx0aWYgKG1mZC5oYXNDbGFzcygncGktbW9kYWwtb3ZlcmxheScpKSB7XG5cdFx0XHTPgC5tb2RhbE92ZXJsYXkuc2hvdyhpZCk7XG5cdFx0fVxuXHR9XG5cblx0ZnVuY3Rpb24gaGlkZShpZCl7XG5cdFx0dmFyIG1mZCA9IM+AZChpZCk7XG5cdFx0aWYgKG1mZC5oYXNDbGFzcygncGktbW9kYWwtb3ZlcmxheScpKSB7XG5cdFx0XHTPgC5tb2RhbE92ZXJsYXkuaGlkZShpZCwgZnVuY3Rpb24oKXtcblx0XHRcdFx0Y29uc29sZS5sb2coXCJ3ZSBqdXN0IGhpZCBhbiBvdmVybGF5XCIpO1xuXHRcdFx0fSk7XG5cdFx0fVxuXHR9XG5cblx0ZnVuY3Rpb24gaW5pdCgpIHtcblx0XHTPgCgnLnBpLW11bHRpLWZyYW1lLWRpc3BsYXknKS5mb3JFYWNoKM+ALm11bHRpRnJhbWVEaXNwbGF5LnNwYXduKTtcblx0XHTPgC5zZXRUcmlnZ2VycygnbXVsdGktZnJhbWUtZGlzcGxheScsIM+ALm11bHRpRnJhbWVEaXNwbGF5KTtcblx0fVxuXG5cdM+ALm11bHRpRnJhbWVEaXNwbGF5ID0ge1xuXHRcdHNob3c6IHNob3csXG5cdFx0aGlkZTogaGlkZSxcblx0XHRzcGF3bjogc3Bhd25cblx0fTtcblxuXG5cdM+ALm1vZHMucHVzaChpbml0KTtcbn0pKCk7XG4iLCIoZnVuY3Rpb24oKXtcblx0dmFyIHlhaCA9IHRydWU7XG5cdHZhciBtb3ZpbmcgPSBmYWxzZTtcblx0dmFyIENTU19CUk9XU0VSX0RFTEFZX0hBQ0sgPSAyNTtcblxuXHRmdW5jdGlvbiBpbml0KCkge1xuXHRcdM+ALmNsZWFuKGluaXQpO1xuXG5cdFx0Ly8gU2FmYXJpIGNob2tlcyBvbiB0aGUgYW5pbWF0aW9uIGhlcmUsIHNvLi4uXG5cdFx0aWYgKG5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZignQ2hyb21lJykgPT0gLTEgJiYgbmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCdTYWZhcmknKSAhPSAtMSl7XG5cdFx0XHTPgDEoJ2JvZHknKS5hZGQoz4AuY29udGVudEVsZW1lbnQoJ3N0eWxlJywgMCwgMCwgJy5waS1hY2NvcmRpb24gLndyYXBwZXJ7dHJhbnNpdGlvbjogbm9uZX0nKSk7XG5cdFx0fVxuXHRcdC8vIEdyb3NzLlxuXG5cdFx0z4AoJy5waS1hY2NvcmRpb24nKS5mb3JFYWNoKGZ1bmN0aW9uKGFjY29yZGlvbil7XG5cdFx0XHR2YXIgY29udGFpbmVyID0gz4AuZGl2KCdjb250YWluZXInLCBudWxsLCBhY2NvcmRpb24uaW5uZXJIVE1MKTtcblx0XHRcdGFjY29yZGlvbi5maWxsKGNvbnRhaW5lcik7XG5cdFx0XHRQaUFjY29yZGlvbihjb250YWluZXIpO1xuXHRcdH0pO1xuXG5cdFx0c2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG5cdFx0XHR5YWggPSBmYWxzZTtcblx0XHR9LCA1MDApO1xuXHR9XG5cblx0ZnVuY3Rpb24gUGlBY2NvcmRpb24oY29udGFpbmVyKXtcblx0XHRjb250YWluZXIuz4AoJzpzY29wZSA+IC5pdGVtJykuZm9yRWFjaChmdW5jdGlvbihpdGVtKXtcblx0XHRcdHZhciB0aXRsZVRleHQgPSBpdGVtLmRhdGFzZXQudGl0bGU7XG5cblx0XHRcdHZhciB0aXRsZSA9IM+ALmRpdigndGl0bGUnLCBudWxsLCB0aXRsZVRleHQpO1xuXHRcdFx0dmFyIHdyYXBwZXIgPSDPgC5kaXYoJ3dyYXBwZXInKTtcblx0XHRcdHZhciBjb250ZW50ID0gz4AuZGl2KCdjb250ZW50JywgbnVsbCwgaXRlbS5pbm5lckhUTUwpO1xuXG5cdFx0XHR3cmFwcGVyLmZpbGwoY29udGVudCk7XG5cdFx0XHRpdGVtLmZpbGwoW3RpdGxlLCB3cmFwcGVyXSk7XG5cdFx0XHR3cmFwcGVyLmNzcyh7aGVpZ2h0OiAwfSk7XG5cblx0XHRcdHRpdGxlLm9uY2xpY2sgPSBmdW5jdGlvbigpe1xuXHRcdFx0XHRpZiAoIXlhaCkge1xuXHRcdFx0XHRcdGlmIChtb3ZpbmcpIHJldHVybjtcblx0XHRcdFx0XHRtb3ZpbmcgPSB0cnVlO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0aWYgKGNvbnRhaW5lci5kYXRhc2V0LnNpbmdsZSkge1xuXHRcdFx0XHRcdHZhciBvcGVuU2libGluZ3MgPSBpdGVtLnNpYmxpbmdzKCkuZmlsdGVyKGZ1bmN0aW9uKHNpYil7cmV0dXJuIHNpYi5oYXNDbGFzcygnb24nKTt9KTtcblx0XHRcdFx0XHRvcGVuU2libGluZ3MuZm9yRWFjaChmdW5jdGlvbihzaWJsaW5nKXtcblx0XHRcdFx0XHRcdHRvZ2dsZUl0ZW0oc2libGluZyk7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7XG5cdFx0XHRcdFx0aWYgKGl0ZW0udGFnTmFtZS50b0xvd2VyQ2FzZSgpID09PSAnYScpIHJldHVybjtcblx0XHRcdFx0XHR0b2dnbGVJdGVtKGl0ZW0pO1xuXHRcdFx0XHR9LCBDU1NfQlJPV1NFUl9ERUxBWV9IQUNLKTtcblx0XHRcdH07XG5cblx0XHRcdGZ1bmN0aW9uIHRvZ2dsZUl0ZW0odGhpc0l0ZW0pe1xuXHRcdFx0XHR2YXIgdGhpc1dyYXBwZXIgPSB0aGlzSXRlbS7PgDEoJy53cmFwcGVyJyk7XG5cdFx0XHRcdHZhciBjb250ZW50SGVpZ2h0ID0gdGhpc1dyYXBwZXIuz4AxKCcuY29udGVudCcpLm9mZnNldCgpLmhlaWdodCArICdweCc7XG5cblx0XHRcdFx0aWYgKHRoaXNJdGVtLmhhc0NsYXNzKCdvbicpKSB7XG5cdFx0XHRcdFx0dGhpc1dyYXBwZXIuY3NzKHtoZWlnaHQ6IGNvbnRlbnRIZWlnaHR9KTtcblx0XHRcdFx0XHR0aGlzSXRlbS5raWxsQ2xhc3MoJ29uJyk7XG5cdFx0XHRcdFx0c2V0VGltZW91dChmdW5jdGlvbigpe1xuXHRcdFx0XHRcdFx0dGhpc1dyYXBwZXIuY3NzKHtoZWlnaHQ6IDB9KTtcblx0XHRcdFx0XHRcdG1vdmluZyA9IGZhbHNlO1xuXHRcdFx0XHRcdH0sIENTU19CUk9XU0VSX0RFTEFZX0hBQ0spO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdGl0ZW0uYWRkQ2xhc3MoJ29uJyk7XG5cdFx0XHRcdFx0dGhpc1dyYXBwZXIuY3NzKHtoZWlnaHQ6IGNvbnRlbnRIZWlnaHR9KTtcblxuXHRcdFx0XHRcdHZhciBkdXJhdGlvbiA9IHBhcnNlRmxvYXQodGhpc1dyYXBwZXIuY3NzKCkudHJhbnNpdGlvbkR1cmF0aW9uKSAqIDEwMDA7XG5cdFx0XHRcdFx0c2V0VGltZW91dChmdW5jdGlvbigpe1xuXHRcdFx0XHRcdFx0dGhpc1dyYXBwZXIuY3NzKHtoZWlnaHQ6ICcnfSk7XG5cdFx0XHRcdFx0XHRtb3ZpbmcgPSBmYWxzZTtcblx0XHRcdFx0XHR9LCBkdXJhdGlvbik7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0dmFyIGlubmVyQ29udGFpbmVycyA9IGNvbnRlbnQuz4AoJzpzY29wZSA+IC5jb250YWluZXInKTtcblx0XHRcdGlmIChpbm5lckNvbnRhaW5lcnMubGVuZ3RoID4gMCkge1xuXHRcdFx0XHRpbm5lckNvbnRhaW5lcnMuZm9yRWFjaChQaUFjY29yZGlvbik7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblxuXHTPgC5tb2RzLnB1c2goaW5pdCk7XG59KSgpO1xuIiwiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gz4AtcHVzaG1lbnUuanNcbiAvLyBUT0RPOiAgVVNBR0UgQU5EIEFQSSBSRUZFUkVOQ0VcbiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXG4gREVQRU5ERU5DSUVTOlxuXG4gSEFMLmpzXG5cbiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXG4gREFUQSBBVFRSSUJVVEVTOlxuXG4gc2lkZTogW1wibGVmdFwiLCBcInJpZ2h0XCJdXG4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1xuIE1BUktVUCBBTkQgREVGQVVMVFM6XG5cblx0PGRpdiBjbGFzcz1cInBpLXB1c2htZW51XCIgaWQ9XCJteVB1c2hNZW51XCI+XG5cdFx0IDx1bD5cblx0XHRcdCA8bGk+PGEgaHJlZj1cIiNcIj5mb288L2E+PC9saT5cblx0XHRcdCA8bGk+PGEgaHJlZj1cIiNcIj5iYXI8L2E+PC9saT5cblx0XHRcdCA8bGk+PGEgaHJlZj1cIiNcIj5ncm9uazwvYT48L2xpPlxuXHRcdFx0IDxsaT48YSBocmVmPVwiI1wiPmZsZWVibGVzPC9hPjwvbGk+XG5cdFx0XHQgPGxpPjxhIGhyZWY9XCIjXCI+c2VwdWx2ZWRhPC9hPjwvbGk+XG5cdFx0IDwvdWw+XG5cdDwvZGl2PlxuXG5lbHNld2hlcmUuLi5cblxuIDxidXR0b24gb25jbGljaz1cIs+ALXB1c2htZW51LnNob3coJ215UHVzaE1lbnUnKVwiPnNob3cgbWVudTwvYnV0dG9uPlxuXG4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1xuIEdFTkVSQVRFRCBIVE1MOlxuXG5cdFxuIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19cbiBBUElcblxuXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG7PgC5wdXNobWVudSA9IChmdW5jdGlvbigpe1xuXHR2YXIgYWxsUHVzaE1lbnVzID0ge307XG5cblx0ZnVuY3Rpb24gaW5pdCgpe1xuXHRcdM+AKCdbZGF0YS1hdXRvLWJ1cmdlcl0nKS5mb3JFYWNoKGZ1bmN0aW9uKGNvbnRhaW5lcil7XG5cdFx0XHR2YXIgaWQgPSBjb250YWluZXIuZ2V0QXR0cmlidXRlKCdkYXRhLWF1dG8tYnVyZ2VyJyk7XG5cblx0XHRcdHZhciBhdXRvQnVyZ2VyID0gz4BkKGlkKSB8fCDPgC5kaXYoJ3BpLXB1c2htZW51JywgaWQpO1xuXHRcdFx0dmFyIHVsID0gYXV0b0J1cmdlci7PgDEoJ3VsJykgfHwgz4AudWwoKTtcblxuXHRcdFx0Y29udGFpbmVyLs+AKCdhW2hyZWZdLCBidXR0b24nKS5mb3JFYWNoKGZ1bmN0aW9uIChvYmopIHtcblx0XHRcdFx0aWYgKCFib29sZWFuQXR0cmlidXRlVmFsdWUob2JqLCAnZGF0YS1hdXRvLWJ1cmdlci1leGNsdWRlJywgZmFsc2UpKSB7XG5cdFx0XHRcdFx0dmFyIGNsb25lID0gb2JqLmNsb25lTm9kZSh0cnVlKTtcblx0XHRcdFx0XHRjbG9uZS5pZCA9ICcnO1xuXG5cdFx0XHRcdFx0aWYgKGNsb25lLnRhZ05hbWUgPT0gXCJCVVRUT05cIikge1xuXHRcdFx0XHRcdFx0dmFyIGFUYWcgPSDPgC5zcmNFbGVtZW50KCdhJyk7XG5cdFx0XHRcdFx0XHRhVGFnLmhyZWYgPSAnJztcblx0XHRcdFx0XHRcdGFUYWcuaW5uZXJIVE1MID0gY2xvbmUuaW5uZXJIVE1MO1xuXHRcdFx0XHRcdFx0YVRhZy5vbmNsaWNrID0gY2xvbmUub25jbGljaztcblx0XHRcdFx0XHRcdGNsb25lID0gYVRhZztcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0dWwuYWRkKM+ALmxpKDAsIDAsIGNsb25lKSk7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXG5cdFx0XHRhdXRvQnVyZ2VyLmFkZCh1bCk7XG5cdFx0XHTPgDEoJ2JvZHknKS5hZGQoYXV0b0J1cmdlcik7XG5cdFx0fSk7XG5cblx0XHTPgChcIi5waS1wdXNobWVudVwiKS5mb3JFYWNoKGZ1bmN0aW9uKGVsKXtcblx0XHRcdGFsbFB1c2hNZW51c1tlbC5pZF0gPSBQdXNoTWVudShlbCk7XG5cdFx0fSk7XG5cblx0XHTPgC5zZXRUcmlnZ2VycygncHVzaG1lbnUnLCDPgC5wdXNobWVudSk7XG5cdH1cblxuXHRmdW5jdGlvbiBzaG93KG9iaklkKSB7XG5cdFx0YWxsUHVzaE1lbnVzW29iaklkXS5leHBvc2UoKTtcblx0fVxuXG5cdC8vIFRPRE86IGRpc21pc3Mgb24gY2xpY2s/XG5cdC8vIHRoaXMgd29ya3M6XG5cblx0Ly/PgCgnLnBpLXB1c2htZW51IGxpIGEnKS5mb3JFYWNoKGZ1bmN0aW9uKGEpe1xuXHQvL1x0YS5vbmNsaWNrID0gZnVuY3Rpb24oKXtcblx0Ly9cdFx0dGhpcy5wYXJlbnQoJy5waS1wdXNobWVudScpLs+AMSgnLnBpLW1vZGFsLWNsb3NlLWJ1dHRvbicpLmNsaWNrKCk7XG5cdC8vXHRcdGNvbnNvbGUubG9nKFwibWVzc2FnZVwiKTtcblx0Ly9cdH07XG5cdC8vfSk7XG5cblxuXHRmdW5jdGlvbiBQdXNoTWVudShlbCkge1xuXHRcdHZhciBodG1sID0gz4AxKCdodG1sJyk7XG5cdFx0dmFyIGJvZHkgPSDPgDEoJ2JvZHknKTtcblxuXHRcdHZhciBvdmVybGF5ID0gz4AuZGl2KFwib3ZlcmxheVwiKTtcblx0XHR2YXIgY29udGVudCA9IM+ALmRpdignY29udGVudCcsIG51bGwsIGVsLs+AMSgnKicpKTtcblxuXHRcdHZhciBzaWRlID0gZWwuZ2V0QXR0cmlidXRlKFwiZGF0YS1zaWRlXCIpIHx8IFwicmlnaHRcIjtcblxuXHRcdHZhciBzbGVkID0gz4AuZGl2KFwic2xlZFwiKTtcblx0XHRzbGVkLmNzcyhzaWRlLCAwKTtcblxuXHRcdHZhciB0b3BCYXIgPSDPgC5kaXYoXCJ0b3AtYmFyXCIpO1xuXG5cdFx0dG9wQmFyLmZpbGwoz4AubW9kYWxDbG9zZUJ1dHRvbihjbG9zZU1lKSk7XG5cdFx0c2xlZC5maWxsKFt0b3BCYXIsIGNvbnRlbnRdKTtcblxuXHRcdG92ZXJsYXkuZmlsbChzbGVkKTtcblx0XHRlbC5maWxsKG92ZXJsYXkpO1xuXG5cdFx0c2xlZC5vbmNsaWNrID0gZnVuY3Rpb24oZSl7XG5cdFx0XHRlLnN0b3BQcm9wYWdhdGlvbigpO1xuXHRcdH07XG5cblx0XHRvdmVybGF5Lm9uY2xpY2sgPSBjbG9zZU1lO1xuXG5cdFx0z4AubGlzdGVuKGNsb3NlTWUsICdyZXNpemUnKTtcblxuXHRcdGZ1bmN0aW9uIGNsb3NlTWUoZSkge1xuXHRcdFx0dmFyIHQgPSBlLnRhcmdldDtcblx0XHRcdGlmICh0ID09IHNsZWQgfHwgdCA9PSB0b3BCYXIpIHJldHVybjtcblxuXHRcdFx0ZWwua2lsbENsYXNzKFwib25cIik7XG5cdFx0XHRzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7XG5cdFx0XHRcdGVsLmNzcyh7ZGlzcGxheTogXCJub25lXCJ9KTtcblxuXHRcdFx0XHRib2R5LmtpbGxDbGFzcyhcIm92ZXJsYXktb25cIik7XG5cdFx0XHR9LCAzMDApO1xuXHRcdH1cblxuXHRcdGZ1bmN0aW9uIGV4cG9zZU1lKCl7XG5cdFx0XHRib2R5LmFkZENsYXNzKFwib3ZlcmxheS1vblwiKTsgLy8gaW4gdGhlIGRlZmF1bHQgY29uZmlnLCBraWxscyBib2R5IHNjcm9sbGluZ1xuXG5cdFx0XHRlbC5jc3Moe1xuXHRcdFx0XHRkaXNwbGF5OiBcImJsb2NrXCIsXG5cdFx0XHRcdHpJbmRleDogz4AuaGlnaGVzdFooKVxuXHRcdFx0fSk7XG5cdFx0XHRzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7XG5cdFx0XHRcdGVsLmFkZENsYXNzKFwib25cIik7XG5cdFx0XHR9LCAxMCk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHtcblx0XHRcdGV4cG9zZTogZXhwb3NlTWVcblx0XHR9O1xuXHR9XG5cblx0z4AubW9kcy5wdXNoKGluaXQpO1xuXG5cdHJldHVybiB7XG5cdFx0c2hvdzogc2hvd1xuXHR9O1xufSkoKTtcbiIsIi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuIM+ALWRpYWxvZy5qc1xuIFVTQUdFIEFORCBBUEkgUkVGRVJFTkNFXG4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1xuIERFUEVOREVOQ0lFUzpcblxuIM+ALmpzXG5cbiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXG4gREFUQSBBVFRSSUJVVEVTOlxuXG4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1xuIE1BUktVUCBBTkQgREVGQVVMVFM6XG5cbiA8ZGl2IGNsYXNzPVwibmV3X21vZHVsZVwiPlxuXG4gPC9kaXY+XG5cbiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXG4gR0VORVJBVEVEIEhUTUw6XG5cbiA8ZGl2IGNsYXNzPVwibmV3X21vZHVsZVwiPlxuXG4gPC9kaXY+XG5cbiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXG4gQVBJXG5cbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbihmdW5jdGlvbigpe1xuXHTPgC5kaWFsb2cgPSB7XG5cdFx0c2hvdzogz4AubW9kYWxPdmVybGF5LnNob3csXG5cdFx0c3Bhd246IHNwYXduLFxuXHRcdGFjdGlvbnM6IHt9XG5cdH07XG5cblx0ZnVuY3Rpb24gaW5pdCgpIHtcblx0XHTPgCgnLnBpLWRpYWxvZycpLmZvckVhY2goz4AuZGlhbG9nLnNwYXduKTtcblx0XHTPgC5zZXRUcmlnZ2VycygnZGlhbG9nJywgz4AubW9kYWxPdmVybGF5KTtcblx0fVxuXG5cdGZ1bmN0aW9uIHNwYXduKGVsKXtcblx0XHR2YXIgY29udGVudEJveCA9IM+ALmRpdignY29udGVudC1ib3gnLCAwLCBlbC5pbm5lckhUTUwpO1xuXHRcdHZhciBkaWFsb2dCb3ggPSDPgC5kaXYoJ2RpYWxvZy1ib3gnLCAwLCBjb250ZW50Qm94KTtcblx0XHRlbC5maWxsKGRpYWxvZ0JveCk7XG5cblx0XHRpZiAoZWwuZGF0YXNldC50aXRsZSl7XG5cdFx0XHRkaWFsb2dCb3gucHJlcGVuZCjPgC5kaXYoJ3RpdGxlJywgMCwgZWwuZGF0YXNldC50aXRsZSkpO1xuXHRcdH1cblxuXHRcdGVsLs+AKCcuYnV0dG9ucyBidXR0b24nKS5mb3JFYWNoKGZ1bmN0aW9uKGJ1dHRvbil7XG5cdFx0XHRidXR0b24ub25jbGljayA9IGZ1bmN0aW9uKCl7XG5cdFx0XHRcdHZhciBhY3Rpb24gPSBidXR0b24uZ2V0QXR0cmlidXRlKCdwaS1kaWFsb2ctYWN0aW9uJyk7XG5cdFx0XHRcdGlmIChhY3Rpb24pe1xuXHRcdFx0XHRcdM+ALmRpYWxvZy5hY3Rpb25zW2FjdGlvbl0oKTtcblx0XHRcdFx0fVxuXHRcdFx0fTtcblxuXHRcdFx0aWYgKCFidXR0b24uaGFzQXR0cmlidXRlKCdkYXRhLWJ5cGFzcycpKXtcblx0XHRcdFx0YnV0dG9uLmxpc3RlbihkaXNtaXNzLCAnY2xpY2snKTtcblx0XHRcdH1cblx0XHR9KTtcblxuXHRcdGlmICghYm9vbGVhbkF0dHJpYnV0ZVZhbHVlKGVsLCAnZGF0YS1pbmxpbmUnLCBmYWxzZSkpIHtcblx0XHRcdGVsLmFkZENsYXNzKCdwaS1tb2RhbC1vdmVybGF5Jyk7XG5cdFx0XHTPgC5tb2RhbE92ZXJsYXkuc3Bhd24oZWwpO1xuXHRcdH1cblxuXHRcdGZ1bmN0aW9uIGRpc21pc3MoKXtcblx0XHRcdGVsLs+AMSgnLnBpLW1vZGFsLWNsb3NlLWJ1dHRvbicpLmNsaWNrKCk7XG5cdFx0fVxuXHR9XG5cblxuXG5cdC8vIM+ALm1vZHMgYXJlIGxvYWRlZCBhZnRlciBET01Db250ZW50TG9hZGVkXG5cdM+ALm1vZHMucHVzaChpbml0KTtcbn0pKCk7IiwidmFyIGt1YiA9IChmdW5jdGlvbiAoKSB7XG5cdM+ALmxpc3Rlbihpbml0KTtcblxuXHR2YXIgSEVBREVSX0hFSUdIVDtcblx0dmFyIGh0bWwsIGJvZHksIG1haW5OYXYsIHF1aWNrc3RhcnRCdXR0b24sIHdpc2hGaWVsZDtcblxuXHRmdW5jdGlvbiBpbml0KCkge1xuXHRcdM+ALmNsZWFuKGluaXQpO1xuXG5cdFx0aHRtbCA9IM+AMSgnaHRtbCcpO1xuXHRcdGJvZHkgPSDPgDEoJ2JvZHknKTtcblx0XHRtYWluTmF2ID0gz4BkKFwibWFpbk5hdlwiKTtcblx0XHR3aXNoRmllbGQgPSDPgGQoJ3dpc2hGaWVsZCcpO1xuXHRcdEhFQURFUl9IRUlHSFQgPSDPgDEoJ2hlYWRlcicpLm9mZnNldCgpLmhlaWdodDtcblxuXHRcdHF1aWNrc3RhcnRCdXR0b24gPSDPgGQoJ3F1aWNrc3RhcnRCdXR0b24nKTtcblxuXHRcdGJ1aWxkSW5saW5lVE9DKCk7XG5cblx0XHRzZXRZQUgoKTtcblxuXG5cdFx0YWRqdXN0RXZlcnl0aGluZygpO1xuXG5cdFx0z4AubGlzdGVuKGFkanVzdEV2ZXJ5dGhpbmcsICdyZXNpemUnKTtcblx0XHTPgC5saXN0ZW4oYWRqdXN0RXZlcnl0aGluZywgJ3Njcm9sbCcpO1xuXHRcdM+ALmxpc3RlbihoYW5kbGVLZXlzdHJva2VzLCAna2V5ZG93bicpO1xuXHRcdHdpc2hGaWVsZC5saXN0ZW4oaGFuZGxlS2V5c3Ryb2tlcywgJ2tleWRvd24nKTtcblxuXHRcdGRvY3VtZW50Lm9udW5sb2FkID0gZnVuY3Rpb24oKXtcblx0XHRcdM+ALmNsZWFuKGFkanVzdEV2ZXJ5dGhpbmcsICdyZXNpemUnKTtcblx0XHRcdM+ALmNsZWFuKGFkanVzdEV2ZXJ5dGhpbmcsICdzY3JvbGwnKTtcblx0XHRcdM+ALmNsZWFuKGhhbmRsZUtleXN0cm9rZXMsICdrZXlkb3duJyk7XG5cdFx0XHR3aXNoRmllbGQuY2xlYW4oaGFuZGxlS2V5c3Ryb2tlcywgJ2tleWRvd24nKTtcblx0XHR9O1xuXG5cdFx0z4AubGlzdGVuKGNsb3NlT3Blbk1lbnUsICdyZXNpemUnKTtcblxuXHRcdGZ1bmN0aW9uIGNsb3NlT3Blbk1lbnUoKSB7XG5cdFx0XHRpZiAoaHRtbC5oYXNDbGFzcygnb3Blbi1uYXYnKSkgdG9nZ2xlTWVudSgpO1xuXHRcdH1cblxuXHRcdM+AKCcuZHJvcGRvd24nKS5mb3JFYWNoKGZ1bmN0aW9uKGRyb3Bkb3duKSB7XG5cdFx0XHR2YXIgcmVhZG91dCA9IGRyb3Bkb3duLs+AMSgnLnJlYWRvdXQnKTtcblx0XHRcdHJlYWRvdXQuaW5uZXJIVE1MID0gZHJvcGRvd24uz4AxKCdhJykuaW5uZXJIVE1MO1xuXHRcdFx0cmVhZG91dC5vbmNsaWNrID0gZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRkcm9wZG93bi50b2dnbGVDbGFzcygnb24nKTtcblx0XHRcdFx0z4AubGlzdGVuKGNsb3NlT3BlbkRyb3Bkb3duLCAnY2xpY2snKTtcblxuXHRcdFx0XHRmdW5jdGlvbiBjbG9zZU9wZW5Ecm9wZG93bihlKSB7XG5cdFx0XHRcdFx0aWYgKGRyb3Bkb3duLmhhc0NsYXNzKCdvbicpICYmICEoZHJvcGRvd25XYXNDbGlja2VkKGUpKSkge1xuXHRcdFx0XHRcdFx0z4AuY2xlYW4oY2xvc2VPcGVuRHJvcGRvd24sICdjbGljaycpO1xuXHRcdFx0XHRcdFx0ZHJvcGRvd24ua2lsbENsYXNzKCdvbicpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdGZ1bmN0aW9uIGRyb3Bkb3duV2FzQ2xpY2tlZChlKSB7XG5cdFx0XHRcdFx0cmV0dXJuIGUudGFyZ2V0LmlzSGVpck9mQ2xhc3MoJ2Ryb3Bkb3duJyk7XG5cdFx0XHRcdH1cblx0XHRcdH07XG5cdFx0fSk7XG5cblx0XHRzZXRJbnRlcnZhbChzZXRGb290ZXJUeXBlLCAxMCk7XG5cdH1cblxuXHR2YXIgdG9jQ291bnQgPSAwO1xuXG5cdGZ1bmN0aW9uIGJ1aWxkSW5saW5lVE9DKCkge1xuXHRcdHZhciBkb2NzQ29udGVudCA9IM+AZCgnZG9jc0NvbnRlbnQnKTtcblx0XHR2YXIgcGFnZVRPQyA9IM+AZCgncGFnZVRPQycpO1xuXG5cdFx0aWYgKHBhZ2VUT0MpIHtcblx0XHRcdHZhciBoZWFkZXJzID0gZG9jc0NvbnRlbnQua2lkcygnI3BhZ2VUT0MsIGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYnKTtcblx0XHRcdGhlYWRlcnMuc3BsaWNlKDAsIGhlYWRlcnMuaW5kZXhPZihwYWdlVE9DKSArIDEpO1xuXG5cdFx0XHR2YXIgdG9jID0gz4AudWwoKTtcblx0XHRcdHBhZ2VUT0MuYWRkKHRvYyk7XG5cblx0XHRcdGhlYWRlcnMuZm9yRWFjaChmdW5jdGlvbiAoaGVhZGVyKSB7XG5cdFx0XHRcdGhlYWRlci5hZGRDbGFzcygnYW5jaG9yZWQnKTtcblx0XHRcdFx0dmFyIGFuY2hvck5hbWUgPSAncGFnZVRPQycgKyB0b2NDb3VudCsrO1xuXG5cdFx0XHRcdHZhciBsaW5rID0gz4AuY29udGVudEVsZW1lbnQoJ2EnLCAwLCAwLCBoZWFkZXIuaW5uZXJIVE1MKTtcblx0XHRcdFx0bGluay5ocmVmID0gJyMnICsgYW5jaG9yTmFtZTtcblx0XHRcdFx0bGluay5hZGRDbGFzcyhoZWFkZXIudGFnTmFtZSk7XG5cblx0XHRcdFx0dmFyIGFuY2hvciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcblx0XHRcdFx0YW5jaG9yLmFkZENsYXNzKCdwYWdlQW5jaG9yJyk7XG5cdFx0XHRcdGFuY2hvci5uYW1lID0gYW5jaG9yTmFtZTtcblx0XHRcdFx0ZG9jc0NvbnRlbnQuaW5zZXJ0QmVmb3JlKGFuY2hvciwgaGVhZGVyKTtcblxuXHRcdFx0XHR0b2MuYWRkKM+ALmxpKDAsIDAsIGxpbmspKTtcblx0XHRcdH0pO1xuXHRcdH1cblx0fVxuXG5cdGZ1bmN0aW9uIHNldFlBSCgpIHtcblx0XHR2YXIgcGF0aG5hbWUgPSBsb2NhdGlvbi5ocmVmO1xuXG5cdFx0dmFyIGN1cnJlbnRMaW5rID0gbnVsbDtcblxuXHRcdM+AZCgnZG9jc1RvYycpLs+AKCdhJykuZm9yRWFjaChmdW5jdGlvbiAobGluaykge1xuXHRcdFx0aWYgKHBhdGhuYW1lLmluZGV4T2YobGluay5ocmVmKSAhPT0gLTEpIHtcblx0XHRcdFx0Y3VycmVudExpbmsgPSBsaW5rO1xuXHRcdFx0fVxuXHRcdH0pO1xuXG5cdFx0aWYgKGN1cnJlbnRMaW5rKSB7XG5cdFx0XHRjdXJyZW50TGluay5wYXJlbnRzKCdkaXYuaXRlbScpLmZvckVhY2goZnVuY3Rpb24gKHBhcmVudCkge1xuXHRcdFx0XHRwYXJlbnQuz4AxKCcudGl0bGUnKS5jbGljaygpO1xuXHRcdFx0XHRjdXJyZW50TGluay5hZGRDbGFzcygneWFoJyk7XG5cdFx0XHRcdGN1cnJlbnRMaW5rLmhyZWYgPSAnJztcblx0XHRcdH0pO1xuXHRcdH1cblx0fVxuXG5cdGZ1bmN0aW9uIHNldEZvb3RlclR5cGUoKSB7XG5cdFx0aWYgKGh0bWwuaWQgPT0gXCJkb2NzXCIpIHtcblx0XHRcdHZhciBib2R5SGVpZ2h0ID0gz4BkKCdoZXJvJykub2Zmc2V0KCkuaGVpZ2h0ICsgz4BkKCdlbmN5Y2xvcGVkaWEnKS5vZmZzZXQoKS5oZWlnaHQ7XG5cdFx0XHR2YXIgZm9vdGVyID0gz4AxKCdmb290ZXInKTtcblx0XHRcdHZhciBmb290ZXJIZWlnaHQgPSBmb290ZXIub2Zmc2V0KCkuaGVpZ2h0O1xuXHRcdFx0Ym9keS5jbGFzc09uQ29uZGl0aW9uKCdmaXhlZCcsIHdpbmRvdy5pbm5lckhlaWdodCAtIGZvb3RlckhlaWdodCA+IGJvZHlIZWlnaHQpO1xuXHRcdH1cblx0fVxuXG5cdGZ1bmN0aW9uIGFkanVzdEV2ZXJ5dGhpbmcoKSB7XG5cdFx0aWYgKCFodG1sLmhhc0NsYXNzKCdvcGVuLW5hdicpKSBIRUFERVJfSEVJR0hUID0gz4AxKCdoZWFkZXInKS5vZmZzZXQoKS5oZWlnaHQ7XG5cdFx0aHRtbC5jbGFzc09uQ29uZGl0aW9uKCdmbGlwLW5hdicsIHdpbmRvdy5wYWdlWU9mZnNldCA+IDApO1xuXHR9XG5cblx0ZnVuY3Rpb24gdG9nZ2xlTWVudSgpIHtcblx0XHRpZiAod2luZG93LmlubmVyV2lkdGggPCA4MDApIHtcblx0XHRcdM+ALnB1c2htZW51LnNob3coJ3ByaW1hcnknKTtcblx0XHR9XG5cblx0XHRlbHNlIHtcblx0XHRcdHZhciBuZXdIZWlnaHQgPSBIRUFERVJfSEVJR0hUO1xuXG5cdFx0XHRpZiAoIWh0bWwuaGFzQ2xhc3MoJ29wZW4tbmF2JykpIHtcblx0XHRcdFx0bmV3SGVpZ2h0ID0gbWFpbk5hdi5vZmZzZXQoKS5oZWlnaHQ7XG5cdFx0XHR9XG5cblx0XHRcdM+AMSgnaGVhZGVyJykuY3NzKHtoZWlnaHQ6IHB4KG5ld0hlaWdodCl9KTtcblx0XHR9XG5cblx0XHRodG1sLnRvZ2dsZUNsYXNzKCdvcGVuLW5hdicpO1xuXHR9XG5cblx0ZnVuY3Rpb24gc3VibWl0V2lzaCh0ZXh0ZmllbGQpIHtcblx0XHR3aW5kb3cubG9jYXRpb24ucmVwbGFjZShcImh0dHBzOi8vZ2l0aHViLmNvbS9rdWJlcm5ldGVzL2t1YmVybmV0ZXMuZ2l0aHViLmlvL2lzc3Vlcy9uZXc/dGl0bGU9SSUyMHdpc2glMjBcIiArXG5cdFx0XHR3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUgKyBcIiUyMFwiICsgdGV4dGZpZWxkLnZhbHVlICsgXCImYm9keT1JJTIwd2lzaCUyMFwiICtcblx0XHRcdHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSArIFwiJTIwXCIgKyB0ZXh0ZmllbGQudmFsdWUpO1xuXG5cdFx0dGV4dGZpZWxkLnZhbHVlID0gJyc7XG5cdFx0dGV4dGZpZWxkLmJsdXIoKTtcblx0fVxuXG5cdGZ1bmN0aW9uIGhhbmRsZUtleXN0cm9rZXMoZSkge1xuXHRcdHN3aXRjaCAoZS53aGljaCkge1xuXHRcdFx0Y2FzZSAxMzoge1xuXHRcdFx0XHRpZiAoZS5jdXJyZW50VGFyZ2V0ID09PSB3aXNoRmllbGQpIHtcblx0XHRcdFx0XHRzdWJtaXRXaXNoKHdpc2hGaWVsZCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0YnJlYWs7XG5cdFx0XHR9XG5cblx0XHRcdGNhc2UgMjc6IHtcblx0XHRcdFx0aWYgKGh0bWwuaGFzQ2xhc3MoJ29wZW4tbmF2JykpIHtcblx0XHRcdFx0XHR0b2dnbGVNZW51KCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0YnJlYWs7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIHtcblx0XHR0b2dnbGVNZW51OiB0b2dnbGVNZW51XG5cdH07XG59KSgpO1xuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9