carbon-components-angular 5.14.6 → 5.14.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/datepicker/datepicker.component.d.ts +2 -3
- package/docs/documentation/components/DatePicker.html +116 -153
- package/docs/documentation/components/Pagination.html +7 -7
- package/docs/documentation/coverage.html +1 -1
- package/docs/documentation/interfaces/PaginationTranslations.html +3 -3
- package/docs/documentation/js/search/search_index.js +2 -2
- package/docs/documentation/modules/ThemeModule/dependencies.svg +13 -13
- package/docs/documentation/modules/ThemeModule.html +13 -13
- package/docs/documentation/modules/TilesModule/dependencies.svg +98 -98
- package/docs/documentation/modules/TilesModule.html +98 -98
- package/docs/documentation/modules/TimePickerModule/dependencies.svg +42 -38
- package/docs/documentation/modules/TimePickerModule.html +42 -38
- package/docs/documentation/modules/TimePickerSelectModule/dependencies.svg +46 -50
- package/docs/documentation/modules/TimePickerSelectModule.html +46 -50
- package/docs/documentation/modules/ToggleModule/dependencies.svg +8 -8
- package/docs/documentation/modules/ToggleModule.html +8 -8
- package/docs/documentation/modules/ToggletipModule/dependencies.svg +39 -39
- package/docs/documentation/modules/ToggletipModule.html +39 -39
- package/docs/documentation/modules/TooltipModule/dependencies.svg +4 -4
- package/docs/documentation/modules/TooltipModule.html +4 -4
- package/docs/documentation/modules/UIShellModule/dependencies.svg +4 -4
- package/docs/documentation/modules/UIShellModule.html +4 -4
- package/docs/documentation.json +68 -69
- package/docs/storybook/8341.a544f9e9.iframe.bundle.js +1 -0
- package/docs/storybook/datepicker-datepicker-stories.6255884c.iframe.bundle.js +1 -0
- package/docs/storybook/iframe.html +2 -2
- package/docs/storybook/main.7ca5dc3c.iframe.bundle.js +1 -0
- package/docs/storybook/project.json +1 -1
- package/docs/storybook/{runtime~main.226e22a8.iframe.bundle.js → runtime~main.554114ff.iframe.bundle.js} +1 -1
- package/esm2020/datepicker/datepicker.component.mjs +18 -11
- package/esm2020/pagination/pagination.component.mjs +7 -7
- package/fesm2015/carbon-components-angular-datepicker.mjs +19 -10
- package/fesm2015/carbon-components-angular-datepicker.mjs.map +1 -1
- package/fesm2015/carbon-components-angular-pagination.mjs +6 -6
- package/fesm2015/carbon-components-angular-pagination.mjs.map +1 -1
- package/fesm2020/carbon-components-angular-datepicker.mjs +17 -10
- package/fesm2020/carbon-components-angular-datepicker.mjs.map +1 -1
- package/fesm2020/carbon-components-angular-pagination.mjs +6 -6
- package/fesm2020/carbon-components-angular-pagination.mjs.map +1 -1
- package/package.json +1 -1
- package/docs/storybook/8341.83894870.iframe.bundle.js +0 -1
- package/docs/storybook/datepicker-datepicker-stories.178ad9bd.iframe.bundle.js +0 -1
- package/docs/storybook/main.31cef103.iframe.bundle.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"generatedAt":
|
|
1
|
+
{"generatedAt":1692912001899,"hasCustomBabel":false,"hasCustomWebpack":false,"hasStaticDirs":true,"hasStorybookEslint":false,"refCount":0,"packageManager":{"type":"npm","version":"7.24.2"},"framework":{"name":"@storybook/angular","options":{}},"builder":"@storybook/builder-webpack5","renderer":"@storybook/angular","storybookVersion":"7.0.18","storybookVersionSpecifier":"7.0.18","language":"typescript","storybookPackages":{"@storybook/addon-actions":{"version":"7.0.18"},"@storybook/angular":{"version":"7.0.18"},"@storybook/theming":{"version":"7.0.18"},"storybook":{"version":"7.0.18"}},"addons":{"@storybook/addon-links":{"version":"7.0.18"},"@storybook/addon-essentials":{"options":{"backgrounds":false},"version":"7.0.18"},"@storybook/addon-a11y":{"version":"7.0.18"}}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{"use strict";var deferred,leafPrototypes,getProto,inProgress,__webpack_modules__={},__webpack_module_cache__={};function __webpack_require__(moduleId){var cachedModule=__webpack_module_cache__[moduleId];if(void 0!==cachedModule)return cachedModule.exports;var module=__webpack_module_cache__[moduleId]={id:moduleId,loaded:!1,exports:{}};return __webpack_modules__[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.loaded=!0,module.exports}__webpack_require__.m=__webpack_modules__,__webpack_require__.amdO={},deferred=[],__webpack_require__.O=(result,chunkIds,fn,priority)=>{if(!chunkIds){var notFulfilled=1/0;for(i=0;i<deferred.length;i++){for(var[chunkIds,fn,priority]=deferred[i],fulfilled=!0,j=0;j<chunkIds.length;j++)(!1&priority||notFulfilled>=priority)&&Object.keys(__webpack_require__.O).every((key=>__webpack_require__.O[key](chunkIds[j])))?chunkIds.splice(j--,1):(fulfilled=!1,priority<notFulfilled&&(notFulfilled=priority));if(fulfilled){deferred.splice(i--,1);var r=fn();void 0!==r&&(result=r)}}return result}priority=priority||0;for(var i=deferred.length;i>0&&deferred[i-1][2]>priority;i--)deferred[i]=deferred[i-1];deferred[i]=[chunkIds,fn,priority]},__webpack_require__.n=module=>{var getter=module&&module.__esModule?()=>module.default:()=>module;return __webpack_require__.d(getter,{a:getter}),getter},getProto=Object.getPrototypeOf?obj=>Object.getPrototypeOf(obj):obj=>obj.__proto__,__webpack_require__.t=function(value,mode){if(1&mode&&(value=this(value)),8&mode)return value;if("object"==typeof value&&value){if(4&mode&&value.__esModule)return value;if(16&mode&&"function"==typeof value.then)return value}var ns=Object.create(null);__webpack_require__.r(ns);var def={};leafPrototypes=leafPrototypes||[null,getProto({}),getProto([]),getProto(getProto)];for(var current=2&mode&&value;"object"==typeof current&&!~leafPrototypes.indexOf(current);current=getProto(current))Object.getOwnPropertyNames(current).forEach((key=>def[key]=()=>value[key]));return def.default=()=>value,__webpack_require__.d(ns,def),ns},__webpack_require__.d=(exports,definition)=>{for(var key in definition)__webpack_require__.o(definition,key)&&!__webpack_require__.o(exports,key)&&Object.defineProperty(exports,key,{enumerable:!0,get:definition[key]})},__webpack_require__.f={},__webpack_require__.e=chunkId=>Promise.all(Object.keys(__webpack_require__.f).reduce(((promises,key)=>(__webpack_require__.f[key](chunkId,promises),promises)),[])),__webpack_require__.u=chunkId=>(({140:"dialog-overflow-menu-overflow-menu-stories",210:"list-list-stories",384:"grid-css-grid-stories",459:"tabs-tabs-stories",703:"toggletip-toggletip-stories",799:"pagination-pagination-stories",911:"button-button-stories",933:"table-table-stories",972:"patterns-loading-large-loading-stories",1127:"search-search-stories",1928:"accordion-accordion-stories",2218:"inline-loading-inline-loading-stories",2342:"radio-radio-stories",2371:"timepicker-timepicker-stories",2388:"modal-modal-stories",2489:"toggle-toggle-stories",2494:"loading-loading-stories",2573:"grid-grid-stories",2722:"context-menu-context-menu-stories",2969:"pagination-pagination-nav-stories",3280:"tiles-tiles-stories",3314:"patterns-filtering-multiple-categories-stories",3329:"checkbox-checkbox-stories",3402:"tiles-expandable-tile-stories",3610:"patterns-filtering-single-selection-stories",3719:"tiles-clickable-tile-stories",3858:"code-snippet-code-snippet-stories",3867:"tag-tag-stories",4232:"patterns-forms-multi-step-form-stories",4253:"tooltip-tooltip-stories",4277:"patterns-dialogs-modal-with-table-stories",4391:"content-switcher-content-switcher-stories",4731:"icon-icon-stories",4762:"patterns-filtering-multi-selection-stories",5167:"button-icon-button-stories",5368:"number-input-number-stories",5455:"layer-layer-stories",5808:"progress-bar-progress-bar-stories",5980:"select-select-stories",6026:"slider-slider-stories",6115:"theme-theme-stories",6274:"tooltip-definition-tooptip-stories",6310:"file-uploader-file-uploader-stories",6322:"popover-popover-stories",6634:"link-link-stories",6663:"datepicker-datepicker-stories",6842:"breadcrumb-breadcrumb-stories",6943:"input-input-stories",7081:"layout-stack-stories",7235:"index-stories",7291:"structured-list-structured-list-stories",7840:"patterns-loading-progressive-loading-stories",7869:"skeleton-skeleton-stories",7931:"notification-notification-stories",8552:"button-button-set-stories",9211:"dropdown-dropdown-stories",9325:"tiles-tile-group-stories",9552:"timepicker-select-timepicker-select-stories",9619:"progress-indicator-progress-indicator-stories",9660:"ui-shell-ui-shell-stories",9736:"combobox-combobox-stories"}[chunkId]||chunkId)+"."+{140:"15eb7f8e",210:"728ebfa4",384:"bb6a8325",459:"3cea9985",583:"a39f8575",703:"89d3eeb7",799:"ecc4051b",901:"ed9f5b53",909:"8e4d85d5",911:"56fe9922",933:"2c7e06c4",972:"8c04d095",1119:"f42b55a6",1127:"bbb770c2",1470:"39923f01",1895:"a7b85b78",1928:"4a6c54ee",2218:"335b2571",2342:"887c598e",2371:"2bdbb4c7",2388:"163f5671",2489:"758276ec",2494:"89353234",2573:"273ce015",2722:"70d2f130",2969:"37761020",3224:"8b16624b",3259:"52c4e32f",3280:"f99990b8",3314:"558f489b",3329:"74791354",3348:"938f9a5b",3360:"e0c015fc",3384:"0e9a5fed",3402:"5a0ef8e1",3415:"bd5d140d",3610:"8243c4ea",3719:"0261e039",3858:"2d191731",3867:"e525e112",3931:"55f9fea9",4232:"75d0fa39",4253:"3d904274",4277:"494ac5a3",4391:"d8a420bd",4578:"86305077",4731:"7c3f9291",4762:"0ce6568f",4882:"f983a9ec",5069:"eabf32ea",5167:"9a01c5b5",5256:"c463cfe0",5368:"4eb4e5ba",5455:"6f225f07",5808:"4fafc0aa",5868:"9c8a5d5f",5980:"5fd0e38e",6026:"67a7e6a8",6115:"36d20802",6123:"c3572027",6274:"f990c7c0",6310:"ac7b5f6b",6322:"6139628f",6634:"368308ed",6663:"178ad9bd",6842:"8580abca",6943:"56294320",7019:"b8944046",7081:"95acac06",7153:"81ca3a2c",7235:"71fe20a3",7277:"ff367df8",7291:"6c6d8ade",7529:"5272f30b",7773:"6c3cf943",7840:"12f8fbfe",7869:"28637f93",7931:"61a87384",8042:"0aa56439",8341:"83894870",8552:"550078d0",9115:"b37cce0a",9211:"4ea6bced",9325:"b7619538",9552:"5f3de00d",9558:"f4846e0b",9619:"9f002dac",9660:"223e1b41",9672:"655955b8",9736:"fd943402"}[chunkId]+".iframe.bundle.js"),__webpack_require__.miniCssF=chunkId=>{},__webpack_require__.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),__webpack_require__.hmd=module=>((module=Object.create(module)).children||(module.children=[]),Object.defineProperty(module,"exports",{enumerable:!0,set:()=>{throw new Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+module.id)}}),module),__webpack_require__.o=(obj,prop)=>Object.prototype.hasOwnProperty.call(obj,prop),inProgress={},__webpack_require__.l=(url,done,key,chunkId)=>{if(inProgress[url])inProgress[url].push(done);else{var script,needAttach;if(void 0!==key)for(var scripts=document.getElementsByTagName("script"),i=0;i<scripts.length;i++){var s=scripts[i];if(s.getAttribute("src")==url||s.getAttribute("data-webpack")=="carbon-components-angular:"+key){script=s;break}}script||(needAttach=!0,(script=document.createElement("script")).charset="utf-8",script.timeout=120,__webpack_require__.nc&&script.setAttribute("nonce",__webpack_require__.nc),script.setAttribute("data-webpack","carbon-components-angular:"+key),script.src=url),inProgress[url]=[done];var onScriptComplete=(prev,event)=>{script.onerror=script.onload=null,clearTimeout(timeout);var doneFns=inProgress[url];if(delete inProgress[url],script.parentNode&&script.parentNode.removeChild(script),doneFns&&doneFns.forEach((fn=>fn(event))),prev)return prev(event)},timeout=setTimeout(onScriptComplete.bind(null,void 0,{type:"timeout",target:script}),12e4);script.onerror=onScriptComplete.bind(null,script.onerror),script.onload=onScriptComplete.bind(null,script.onload),needAttach&&document.head.appendChild(script)}},__webpack_require__.r=exports=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(exports,"__esModule",{value:!0})},__webpack_require__.nmd=module=>(module.paths=[],module.children||(module.children=[]),module),__webpack_require__.p="",(()=>{var installedChunks={1303:0};__webpack_require__.f.j=(chunkId,promises)=>{var installedChunkData=__webpack_require__.o(installedChunks,chunkId)?installedChunks[chunkId]:void 0;if(0!==installedChunkData)if(installedChunkData)promises.push(installedChunkData[2]);else if(1303!=chunkId){var promise=new Promise(((resolve,reject)=>installedChunkData=installedChunks[chunkId]=[resolve,reject]));promises.push(installedChunkData[2]=promise);var url=__webpack_require__.p+__webpack_require__.u(chunkId),error=new Error;__webpack_require__.l(url,(event=>{if(__webpack_require__.o(installedChunks,chunkId)&&(0!==(installedChunkData=installedChunks[chunkId])&&(installedChunks[chunkId]=void 0),installedChunkData)){var errorType=event&&("load"===event.type?"missing":event.type),realSrc=event&&event.target&&event.target.src;error.message="Loading chunk "+chunkId+" failed.\n("+errorType+": "+realSrc+")",error.name="ChunkLoadError",error.type=errorType,error.request=realSrc,installedChunkData[1](error)}}),"chunk-"+chunkId,chunkId)}else installedChunks[chunkId]=0},__webpack_require__.O.j=chunkId=>0===installedChunks[chunkId];var webpackJsonpCallback=(parentChunkLoadingFunction,data)=>{var moduleId,chunkId,[chunkIds,moreModules,runtime]=data,i=0;if(chunkIds.some((id=>0!==installedChunks[id]))){for(moduleId in moreModules)__webpack_require__.o(moreModules,moduleId)&&(__webpack_require__.m[moduleId]=moreModules[moduleId]);if(runtime)var result=runtime(__webpack_require__)}for(parentChunkLoadingFunction&&parentChunkLoadingFunction(data);i<chunkIds.length;i++)chunkId=chunkIds[i],__webpack_require__.o(installedChunks,chunkId)&&installedChunks[chunkId]&&installedChunks[chunkId][0](),installedChunks[chunkId]=0;return __webpack_require__.O(result)},chunkLoadingGlobal=self.webpackChunkcarbon_components_angular=self.webpackChunkcarbon_components_angular||[];chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null,0)),chunkLoadingGlobal.push=webpackJsonpCallback.bind(null,chunkLoadingGlobal.push.bind(chunkLoadingGlobal))})(),__webpack_require__.nc=void 0})();
|
|
1
|
+
(()=>{"use strict";var deferred,leafPrototypes,getProto,inProgress,__webpack_modules__={},__webpack_module_cache__={};function __webpack_require__(moduleId){var cachedModule=__webpack_module_cache__[moduleId];if(void 0!==cachedModule)return cachedModule.exports;var module=__webpack_module_cache__[moduleId]={id:moduleId,loaded:!1,exports:{}};return __webpack_modules__[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.loaded=!0,module.exports}__webpack_require__.m=__webpack_modules__,__webpack_require__.amdO={},deferred=[],__webpack_require__.O=(result,chunkIds,fn,priority)=>{if(!chunkIds){var notFulfilled=1/0;for(i=0;i<deferred.length;i++){for(var[chunkIds,fn,priority]=deferred[i],fulfilled=!0,j=0;j<chunkIds.length;j++)(!1&priority||notFulfilled>=priority)&&Object.keys(__webpack_require__.O).every((key=>__webpack_require__.O[key](chunkIds[j])))?chunkIds.splice(j--,1):(fulfilled=!1,priority<notFulfilled&&(notFulfilled=priority));if(fulfilled){deferred.splice(i--,1);var r=fn();void 0!==r&&(result=r)}}return result}priority=priority||0;for(var i=deferred.length;i>0&&deferred[i-1][2]>priority;i--)deferred[i]=deferred[i-1];deferred[i]=[chunkIds,fn,priority]},__webpack_require__.n=module=>{var getter=module&&module.__esModule?()=>module.default:()=>module;return __webpack_require__.d(getter,{a:getter}),getter},getProto=Object.getPrototypeOf?obj=>Object.getPrototypeOf(obj):obj=>obj.__proto__,__webpack_require__.t=function(value,mode){if(1&mode&&(value=this(value)),8&mode)return value;if("object"==typeof value&&value){if(4&mode&&value.__esModule)return value;if(16&mode&&"function"==typeof value.then)return value}var ns=Object.create(null);__webpack_require__.r(ns);var def={};leafPrototypes=leafPrototypes||[null,getProto({}),getProto([]),getProto(getProto)];for(var current=2&mode&&value;"object"==typeof current&&!~leafPrototypes.indexOf(current);current=getProto(current))Object.getOwnPropertyNames(current).forEach((key=>def[key]=()=>value[key]));return def.default=()=>value,__webpack_require__.d(ns,def),ns},__webpack_require__.d=(exports,definition)=>{for(var key in definition)__webpack_require__.o(definition,key)&&!__webpack_require__.o(exports,key)&&Object.defineProperty(exports,key,{enumerable:!0,get:definition[key]})},__webpack_require__.f={},__webpack_require__.e=chunkId=>Promise.all(Object.keys(__webpack_require__.f).reduce(((promises,key)=>(__webpack_require__.f[key](chunkId,promises),promises)),[])),__webpack_require__.u=chunkId=>(({140:"dialog-overflow-menu-overflow-menu-stories",210:"list-list-stories",384:"grid-css-grid-stories",459:"tabs-tabs-stories",703:"toggletip-toggletip-stories",799:"pagination-pagination-stories",911:"button-button-stories",933:"table-table-stories",972:"patterns-loading-large-loading-stories",1127:"search-search-stories",1928:"accordion-accordion-stories",2218:"inline-loading-inline-loading-stories",2342:"radio-radio-stories",2371:"timepicker-timepicker-stories",2388:"modal-modal-stories",2489:"toggle-toggle-stories",2494:"loading-loading-stories",2573:"grid-grid-stories",2722:"context-menu-context-menu-stories",2969:"pagination-pagination-nav-stories",3280:"tiles-tiles-stories",3314:"patterns-filtering-multiple-categories-stories",3329:"checkbox-checkbox-stories",3402:"tiles-expandable-tile-stories",3610:"patterns-filtering-single-selection-stories",3719:"tiles-clickable-tile-stories",3858:"code-snippet-code-snippet-stories",3867:"tag-tag-stories",4232:"patterns-forms-multi-step-form-stories",4253:"tooltip-tooltip-stories",4277:"patterns-dialogs-modal-with-table-stories",4391:"content-switcher-content-switcher-stories",4731:"icon-icon-stories",4762:"patterns-filtering-multi-selection-stories",5167:"button-icon-button-stories",5368:"number-input-number-stories",5455:"layer-layer-stories",5808:"progress-bar-progress-bar-stories",5980:"select-select-stories",6026:"slider-slider-stories",6115:"theme-theme-stories",6274:"tooltip-definition-tooptip-stories",6310:"file-uploader-file-uploader-stories",6322:"popover-popover-stories",6634:"link-link-stories",6663:"datepicker-datepicker-stories",6842:"breadcrumb-breadcrumb-stories",6943:"input-input-stories",7081:"layout-stack-stories",7235:"index-stories",7291:"structured-list-structured-list-stories",7840:"patterns-loading-progressive-loading-stories",7869:"skeleton-skeleton-stories",7931:"notification-notification-stories",8552:"button-button-set-stories",9211:"dropdown-dropdown-stories",9325:"tiles-tile-group-stories",9552:"timepicker-select-timepicker-select-stories",9619:"progress-indicator-progress-indicator-stories",9660:"ui-shell-ui-shell-stories",9736:"combobox-combobox-stories"}[chunkId]||chunkId)+"."+{140:"15eb7f8e",210:"728ebfa4",384:"bb6a8325",459:"3cea9985",583:"a39f8575",703:"89d3eeb7",799:"ecc4051b",901:"ed9f5b53",909:"8e4d85d5",911:"56fe9922",933:"2c7e06c4",972:"8c04d095",1119:"f42b55a6",1127:"bbb770c2",1470:"39923f01",1895:"a7b85b78",1928:"4a6c54ee",2218:"335b2571",2342:"887c598e",2371:"2bdbb4c7",2388:"163f5671",2489:"758276ec",2494:"89353234",2573:"273ce015",2722:"70d2f130",2969:"37761020",3224:"8b16624b",3259:"52c4e32f",3280:"f99990b8",3314:"558f489b",3329:"74791354",3348:"938f9a5b",3360:"e0c015fc",3384:"0e9a5fed",3402:"5a0ef8e1",3415:"bd5d140d",3610:"8243c4ea",3719:"0261e039",3858:"2d191731",3867:"e525e112",3931:"55f9fea9",4232:"75d0fa39",4253:"3d904274",4277:"494ac5a3",4391:"d8a420bd",4578:"86305077",4731:"7c3f9291",4762:"0ce6568f",4882:"f983a9ec",5069:"eabf32ea",5167:"9a01c5b5",5256:"c463cfe0",5368:"4eb4e5ba",5455:"6f225f07",5808:"4fafc0aa",5868:"9c8a5d5f",5980:"5fd0e38e",6026:"67a7e6a8",6115:"36d20802",6123:"c3572027",6274:"f990c7c0",6310:"ac7b5f6b",6322:"6139628f",6634:"368308ed",6663:"6255884c",6842:"8580abca",6943:"56294320",7019:"b8944046",7081:"95acac06",7153:"81ca3a2c",7235:"71fe20a3",7277:"ff367df8",7291:"6c6d8ade",7529:"5272f30b",7773:"6c3cf943",7840:"12f8fbfe",7869:"28637f93",7931:"61a87384",8042:"0aa56439",8341:"a544f9e9",8552:"550078d0",9115:"b37cce0a",9211:"4ea6bced",9325:"b7619538",9552:"5f3de00d",9558:"f4846e0b",9619:"9f002dac",9660:"223e1b41",9672:"655955b8",9736:"fd943402"}[chunkId]+".iframe.bundle.js"),__webpack_require__.miniCssF=chunkId=>{},__webpack_require__.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),__webpack_require__.hmd=module=>((module=Object.create(module)).children||(module.children=[]),Object.defineProperty(module,"exports",{enumerable:!0,set:()=>{throw new Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+module.id)}}),module),__webpack_require__.o=(obj,prop)=>Object.prototype.hasOwnProperty.call(obj,prop),inProgress={},__webpack_require__.l=(url,done,key,chunkId)=>{if(inProgress[url])inProgress[url].push(done);else{var script,needAttach;if(void 0!==key)for(var scripts=document.getElementsByTagName("script"),i=0;i<scripts.length;i++){var s=scripts[i];if(s.getAttribute("src")==url||s.getAttribute("data-webpack")=="carbon-components-angular:"+key){script=s;break}}script||(needAttach=!0,(script=document.createElement("script")).charset="utf-8",script.timeout=120,__webpack_require__.nc&&script.setAttribute("nonce",__webpack_require__.nc),script.setAttribute("data-webpack","carbon-components-angular:"+key),script.src=url),inProgress[url]=[done];var onScriptComplete=(prev,event)=>{script.onerror=script.onload=null,clearTimeout(timeout);var doneFns=inProgress[url];if(delete inProgress[url],script.parentNode&&script.parentNode.removeChild(script),doneFns&&doneFns.forEach((fn=>fn(event))),prev)return prev(event)},timeout=setTimeout(onScriptComplete.bind(null,void 0,{type:"timeout",target:script}),12e4);script.onerror=onScriptComplete.bind(null,script.onerror),script.onload=onScriptComplete.bind(null,script.onload),needAttach&&document.head.appendChild(script)}},__webpack_require__.r=exports=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(exports,"__esModule",{value:!0})},__webpack_require__.nmd=module=>(module.paths=[],module.children||(module.children=[]),module),__webpack_require__.p="",(()=>{var installedChunks={1303:0};__webpack_require__.f.j=(chunkId,promises)=>{var installedChunkData=__webpack_require__.o(installedChunks,chunkId)?installedChunks[chunkId]:void 0;if(0!==installedChunkData)if(installedChunkData)promises.push(installedChunkData[2]);else if(1303!=chunkId){var promise=new Promise(((resolve,reject)=>installedChunkData=installedChunks[chunkId]=[resolve,reject]));promises.push(installedChunkData[2]=promise);var url=__webpack_require__.p+__webpack_require__.u(chunkId),error=new Error;__webpack_require__.l(url,(event=>{if(__webpack_require__.o(installedChunks,chunkId)&&(0!==(installedChunkData=installedChunks[chunkId])&&(installedChunks[chunkId]=void 0),installedChunkData)){var errorType=event&&("load"===event.type?"missing":event.type),realSrc=event&&event.target&&event.target.src;error.message="Loading chunk "+chunkId+" failed.\n("+errorType+": "+realSrc+")",error.name="ChunkLoadError",error.type=errorType,error.request=realSrc,installedChunkData[1](error)}}),"chunk-"+chunkId,chunkId)}else installedChunks[chunkId]=0},__webpack_require__.O.j=chunkId=>0===installedChunks[chunkId];var webpackJsonpCallback=(parentChunkLoadingFunction,data)=>{var moduleId,chunkId,[chunkIds,moreModules,runtime]=data,i=0;if(chunkIds.some((id=>0!==installedChunks[id]))){for(moduleId in moreModules)__webpack_require__.o(moreModules,moduleId)&&(__webpack_require__.m[moduleId]=moreModules[moduleId]);if(runtime)var result=runtime(__webpack_require__)}for(parentChunkLoadingFunction&&parentChunkLoadingFunction(data);i<chunkIds.length;i++)chunkId=chunkIds[i],__webpack_require__.o(installedChunks,chunkId)&&installedChunks[chunkId]&&installedChunks[chunkId][0](),installedChunks[chunkId]=0;return __webpack_require__.O(result)},chunkLoadingGlobal=self.webpackChunkcarbon_components_angular=self.webpackChunkcarbon_components_angular||[];chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null,0)),chunkLoadingGlobal.push=webpackJsonpCallback.bind(null,chunkLoadingGlobal.push.bind(chunkLoadingGlobal))})(),__webpack_require__.nc=void 0})();
|
|
@@ -8,6 +8,22 @@ import * as i0 from "@angular/core";
|
|
|
8
8
|
import * as i1 from "carbon-components-angular/i18n";
|
|
9
9
|
import * as i2 from "@angular/common";
|
|
10
10
|
import * as i3 from "carbon-components-angular/datepicker-input";
|
|
11
|
+
/**
|
|
12
|
+
* Due to type error, we have to use square brackets property accessor
|
|
13
|
+
* There is a webpack issue when attempting to access exported languages from flatpickr l10n Angular 14+ apps
|
|
14
|
+
* languages.default[locale] fails in app consuming CCA library but passes in test
|
|
15
|
+
* languages.default.default[locale] fails in test but works in app consuming CCA library.
|
|
16
|
+
*
|
|
17
|
+
* To please both scenarios, we are adding a condition to prevent tests from failing
|
|
18
|
+
*/
|
|
19
|
+
if (languages.default?.default["en"]?.weekdays) {
|
|
20
|
+
languages.default.default["en"].weekdays.shorthand = languages.default.default["en"].weekdays.longhand.map(day => {
|
|
21
|
+
if (day === "Thursday") {
|
|
22
|
+
return "Th";
|
|
23
|
+
}
|
|
24
|
+
return day.charAt(0);
|
|
25
|
+
});
|
|
26
|
+
}
|
|
11
27
|
/**
|
|
12
28
|
* [See demo](../../?path=/story/components-date-picker--single)
|
|
13
29
|
*/
|
|
@@ -140,7 +156,7 @@ export class DatePicker {
|
|
|
140
156
|
mode: this.range ? "range" : "single",
|
|
141
157
|
plugins,
|
|
142
158
|
dateFormat: this.dateFormat,
|
|
143
|
-
locale: languages.default[this.language]
|
|
159
|
+
locale: languages.default?.default[this.language] || languages.default[this.language]
|
|
144
160
|
});
|
|
145
161
|
}
|
|
146
162
|
ngOnInit() {
|
|
@@ -189,15 +205,6 @@ export class DatePicker {
|
|
|
189
205
|
}
|
|
190
206
|
}
|
|
191
207
|
}
|
|
192
|
-
ngAfterContentInit() {
|
|
193
|
-
languages.default.en.weekdays.shorthand
|
|
194
|
-
= languages.default.en.weekdays.longhand.map(day => {
|
|
195
|
-
if (day === "Thursday") {
|
|
196
|
-
return "Th";
|
|
197
|
-
}
|
|
198
|
-
return day.charAt(0);
|
|
199
|
-
});
|
|
200
|
-
}
|
|
201
208
|
onFocus() {
|
|
202
209
|
// Updates the month manually when calendar mode is range because month
|
|
203
210
|
// will not update properly without manually updating them on focus.
|
|
@@ -713,4 +720,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
713
720
|
type: HostListener,
|
|
714
721
|
args: ["focusout"]
|
|
715
722
|
}] } });
|
|
716
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZGF0ZXBpY2tlci9kYXRlcGlja2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUNaLGlCQUFpQixFQUdqQixZQUFZLEVBTVosU0FBUyxFQUlULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sV0FBVyxNQUFNLG9DQUFvQyxDQUFDO0FBQzdELE9BQU8sU0FBUyxNQUFNLFdBQVcsQ0FBQztBQUNsQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNuRixPQUFPLEtBQUssU0FBUyxNQUFNLDJCQUEyQixDQUFDOzs7OztBQUt2RDs7R0FFRztBQW9FSCxNQUFNLE9BQU8sVUFBVTtJQW1MdEIsWUFDVyxVQUFzQixFQUN0QixJQUFVO1FBRFYsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixTQUFJLEdBQUosSUFBSSxDQUFNO1FBNUtyQjs7V0FFRztRQUNNLFVBQUssR0FBRyxLQUFLLENBQUM7UUFFdkI7Ozs7V0FJRztRQUNNLGVBQVUsR0FBRyxPQUFPLENBQUM7UUFFOUI7Ozs7O1dBS0c7UUFDTSxhQUFRLEdBQUcsSUFBSSxDQUFDO1FBT2hCLGdCQUFXLEdBQUcsWUFBWSxDQUFDO1FBRXBDOztXQUVHO1FBQ00sY0FBUyxHQUFHLG9CQUFvQixDQUFDO1FBRTFDOztXQUVHO1FBQ00saUJBQVksR0FBRyw0QkFBNEIsQ0FBQztRQUU1QyxPQUFFLEdBQUcsY0FBYyxVQUFVLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQztRQWEzRDs7O1dBR0c7UUFDTSxVQUFLLEdBQXFCLE1BQU0sQ0FBQztRQUVqQyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FB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QWYsS0FBSztnQkFHRixnQkFBZ0I7c0JBRG5CLEtBQUs7Z0JBaUJnQyxLQUFLO3NCQUExQyxTQUFTO3VCQUFDLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ1gsVUFBVTtzQkFBbEMsU0FBUzt1QkFBQyxZQUFZO2dCQUViLFdBQVc7c0JBQXBCLE1BQU07Z0JBTUcsT0FBTztzQkFBaEIsTUFBTTtnQkFrSFAsT0FBTztzQkFETixZQUFZO3VCQUFDLFNBQVM7Z0JBZ0J2QixVQUFVO3NCQURULFlBQVk7dUJBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdENvbXBvbmVudCxcblx0SW5wdXQsXG5cdE91dHB1dCxcblx0RXZlbnRFbWl0dGVyLFxuXHRWaWV3RW5jYXBzdWxhdGlvbixcblx0RWxlbWVudFJlZixcblx0T25EZXN0cm95LFxuXHRIb3N0TGlzdGVuZXIsXG5cdFRlbXBsYXRlUmVmLFxuXHRPbkNoYW5nZXMsXG5cdFNpbXBsZUNoYW5nZXMsXG5cdEFmdGVyVmlld0NoZWNrZWQsXG5cdEFmdGVyVmlld0luaXQsXG5cdFZpZXdDaGlsZCxcblx0QWZ0ZXJDb250ZW50SW5pdCxcblx0T25Jbml0LFxuXHRTaW1wbGVDaGFuZ2Vcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCByYW5nZVBsdWdpbiBmcm9tIFwiZmxhdHBpY2tyL2Rpc3QvcGx1Z2lucy9yYW5nZVBsdWdpblwiO1xuaW1wb3J0IGZsYXRwaWNrciBmcm9tIFwiZmxhdHBpY2tyXCI7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgY2FyYm9uRmxhdHBpY2tyTW9udGhTZWxlY3RQbHVnaW4gfSBmcm9tIFwiLi9jYXJib24tZmxhdHBpY2tyLW1vbnRoLXNlbGVjdFwiO1xuaW1wb3J0ICogYXMgbGFuZ3VhZ2VzIGZyb20gXCJmbGF0cGlja3IvZGlzdC9sMTBuL2luZGV4XCI7XG5pbXBvcnQgeyBEYXRlUGlja2VySW5wdXQgfSBmcm9tIFwiY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhci9kYXRlcGlja2VyLWlucHV0XCI7XG5pbXBvcnQgeyBFbGVtZW50U2VydmljZSB9IGZyb20gXCJjYXJib24tY29tcG9uZW50cy1hbmd1bGFyL3V0aWxzXCI7XG5pbXBvcnQgeyBJMThuIH0gZnJvbSBcImNhcmJvbi1jb21wb25lbnRzLWFuZ3VsYXIvaTE4blwiO1xuXG4vKipcbiAqIFtTZWUgZGVtb10oLi4vLi4vP3BhdGg9L3N0b3J5L2NvbXBvbmVudHMtZGF0ZS1waWNrZXItLXNpbmdsZSlcbiAqL1xuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiBcImNkcy1kYXRlLXBpY2tlciwgaWJtLWRhdGUtcGlja2VyXCIsXG5cdHRlbXBsYXRlOiBgXG5cdDxkaXYgY2xhc3M9XCJjZHMtLWZvcm0taXRlbVwiPlxuXHRcdDxkaXZcblx0XHRcdGNsYXNzPVwiY2RzLS1kYXRlLXBpY2tlclwiXG5cdFx0XHRbbmdDbGFzc109XCJ7XG5cdFx0XHRcdCdjZHMtLWRhdGUtcGlja2VyLS1yYW5nZScgOiByYW5nZSxcblx0XHRcdFx0J2Nkcy0tZGF0ZS1waWNrZXItLXNpbmdsZScgOiAhcmFuZ2UsXG5cdFx0XHRcdCdjZHMtLWRhdGUtcGlja2VyLS1saWdodCcgOiB0aGVtZSA9PT0gJ2xpZ2h0Jyxcblx0XHRcdFx0J2Nkcy0tc2tlbGV0b24nIDogc2tlbGV0b25cblx0XHRcdH1cIj5cblx0XHRcdDxkaXYgY2xhc3M9XCJjZHMtLWRhdGUtcGlja2VyLWNvbnRhaW5lclwiPlxuXHRcdFx0XHQ8Y2RzLWRhdGUtcGlja2VyLWlucHV0XG5cdFx0XHRcdFx0I2lucHV0XG5cdFx0XHRcdFx0W2xhYmVsXT1cImxhYmVsXCJcblx0XHRcdFx0XHRbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuXHRcdFx0XHRcdFtwYXR0ZXJuXT1cImlucHV0UGF0dGVyblwiXG5cdFx0XHRcdFx0W2lkXT1cImlkICsgJy1pbnB1dCdcIlxuXHRcdFx0XHRcdFtzaXplXT1cInNpemVcIlxuXHRcdFx0XHRcdFt0eXBlXT1cIihyYW5nZSA/ICdyYW5nZScgOiAnc2luZ2xlJylcIlxuXHRcdFx0XHRcdFtoYXNJY29uXT1cIihyYW5nZSA/IGZhbHNlIDogdHJ1ZSlcIlxuXHRcdFx0XHRcdFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG5cdFx0XHRcdFx0W2ludmFsaWRdPVwiaW52YWxpZFwiXG5cdFx0XHRcdFx0W2ludmFsaWRUZXh0XT1cImludmFsaWRUZXh0XCJcblx0XHRcdFx0XHRbd2Fybl09XCJ3YXJuXCJcblx0XHRcdFx0XHRbd2FyblRleHRdPVwid2FyblRleHRcIlxuXHRcdFx0XHRcdFtza2VsZXRvbl09XCJza2VsZXRvblwiXG5cdFx0XHRcdFx0W2hlbHBlclRleHRdPVwiaGVscGVyVGV4dFwiXG5cdFx0XHRcdFx0KHZhbHVlQ2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG5cdFx0XHRcdFx0KGNsaWNrKT1cIm9wZW5DYWxlbmRhcihpbnB1dClcIj5cblx0XHRcdFx0PC9jZHMtZGF0ZS1waWNrZXItaW5wdXQ+XG5cdFx0XHQ8L2Rpdj5cblxuXHRcdFx0PGRpdiAqbmdJZj1cInJhbmdlXCIgY2xhc3M9XCJjZHMtLWRhdGUtcGlja2VyLWNvbnRhaW5lclwiPlxuXHRcdFx0XHQ8Y2RzLWRhdGUtcGlja2VyLWlucHV0XG5cdFx0XHRcdFx0I3JhbmdlSW5wdXRcblx0XHRcdFx0XHRbbGFiZWxdPVwicmFuZ2VMYWJlbFwiXG5cdFx0XHRcdFx0W3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcblx0XHRcdFx0XHRbcGF0dGVybl09XCJpbnB1dFBhdHRlcm5cIlxuXHRcdFx0XHRcdFtpZF09XCJpZCArICctcmFuZ2VJbnB1dCdcIlxuXHRcdFx0XHRcdFtzaXplXT1cInNpemVcIlxuXHRcdFx0XHRcdFt0eXBlXT1cIihyYW5nZSA/ICdyYW5nZScgOiAnc2luZ2xlJylcIlxuXHRcdFx0XHRcdFtoYXNJY29uXT1cIihyYW5nZSA/IHRydWUgOiBudWxsKVwiXG5cdFx0XHRcdFx0W2Rpc2FibGVkXT1cImRpc2FibGVkXCJcblx0XHRcdFx0XHRbaW52YWxpZF09XCJyYW5nZUludmFsaWRcIlxuXHRcdFx0XHRcdFtpbnZhbGlkVGV4dF09XCJyYW5nZUludmFsaWRUZXh0XCJcblx0XHRcdFx0XHRbd2Fybl09XCJyYW5nZVdhcm5cIlxuXHRcdFx0XHRcdFt3YXJuVGV4dF09XCJyYW5nZVdhcm5UZXh0XCJcblx0XHRcdFx0XHRbc2tlbGV0b25dPVwic2tlbGV0b25cIlxuXHRcdFx0XHRcdFtoZWxwZXJUZXh0XT1cInJhbmdlSGVscGVyVGV4dFwiXG5cdFx0XHRcdFx0KHZhbHVlQ2hhbmdlKT1cIm9uUmFuZ2VWYWx1ZUNoYW5nZSgkZXZlbnQpXCJcblx0XHRcdFx0XHQoY2xpY2spPVwib3BlbkNhbGVuZGFyKHJhbmdlSW5wdXQpXCI+XG5cdFx0XHRcdDwvY2RzLWRhdGUtcGlja2VyLWlucHV0PlxuXHRcdFx0PC9kaXY+XG5cdFx0PC9kaXY+XG5cdDwvZGl2PlxuXHRgLFxuXHRwcm92aWRlcnM6IFtcblx0XHR7XG5cdFx0XHRwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcblx0XHRcdHVzZUV4aXN0aW5nOiBEYXRlUGlja2VyLFxuXHRcdFx0bXVsdGk6IHRydWVcblx0XHR9XG5cdF0sXG5cdGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgRGF0ZVBpY2tlciBpbXBsZW1lbnRzXG5cdE9uSW5pdCxcblx0T25EZXN0cm95LFxuXHRPbkNoYW5nZXMsXG5cdEFmdGVyVmlld0NoZWNrZWQsXG5cdEFmdGVyVmlld0luaXQsXG5cdEFmdGVyQ29udGVudEluaXQge1xuXHRwcml2YXRlIHN0YXRpYyBkYXRlUGlja2VyQ291bnQgPSAwO1xuXG5cdC8qKlxuXHQgKiBTZWxlY3QgY2FsZW5kYXIgcmFuZ2UgbW9kZVxuXHQgKi9cblx0QElucHV0KCkgcmFuZ2UgPSBmYWxzZTtcblxuXHQvKipcblx0ICogRm9ybWF0IG9mIGRhdGVcblx0ICpcblx0ICogRm9yIHJlZmVyZW5jZTogaHR0cHM6Ly9mbGF0cGlja3IuanMub3JnL2Zvcm1hdHRpbmcvXG5cdCAqL1xuXHRASW5wdXQoKSBkYXRlRm9ybWF0ID0gXCJtL2QvWVwiO1xuXG5cdC8qKlxuXHQgKiBMYW5ndWFnZSBvZiB0aGUgZmxhdHBpY2tyIGNhbGVuZGFyLlxuXHQgKlxuXHQgKiBGb3IgcmVmZXJlbmNlIG9mIHRoZSBwb3NzaWJsZSBsb2NhbGVzOlxuXHQgKiBodHRwczovL2dpdGh1Yi5jb20vZmxhdHBpY2tyL2ZsYXRwaWNrci9ibG9iL21hc3Rlci9zcmMvbDEwbi9pbmRleC50c1xuXHQgKi9cblx0QElucHV0KCkgbGFuZ3VhZ2UgPSBcImVuXCI7XG5cblx0QElucHV0KCkgbGFiZWw6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT47XG5cdEBJbnB1dCgpIGhlbHBlclRleHQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT47XG5cdEBJbnB1dCgpIHJhbmdlSGVscGVyVGV4dDogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55Pjtcblx0QElucHV0KCkgcmFuZ2VMYWJlbDogc3RyaW5nO1xuXG5cdEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gXCJtbS9kZC95eXl5XCI7XG5cblx0LyoqXG5cdCAqIEFyaWEgbGFiZWwgYWRkZWQgdG8gZGF0ZXBpY2tlcidzIGNhbGVuZGFyIGNvbnRhaW5lci5cblx0ICovXG5cdEBJbnB1dCgpIGFyaWFMYWJlbCA9IFwiY2FsZW5kYXIgY29udGFpbmVyXCI7XG5cblx0LyoqXG5cdCAqIFRoZSBwYXR0ZXJuIGZvciB0aGUgdW5kZXJseWluZyBpbnB1dCBlbGVtZW50XG5cdCAqL1xuXHRASW5wdXQoKSBpbnB1dFBhdHRlcm4gPSBcIl5cXFxcZHsxLDJ9L1xcXFxkezEsMn0vXFxcXGR7NH0kXCI7XG5cblx0QElucHV0KCkgaWQgPSBgZGF0ZXBpY2tlci0ke0RhdGVQaWNrZXIuZGF0ZVBpY2tlckNvdW50Kyt9YDtcblxuXHRASW5wdXQoKSBzZXQgdmFsdWUodjogKERhdGUgfCBzdHJpbmcpW10pIHtcblx0XHRpZiAoIXYpIHtcblx0XHRcdHYgPSBbXTtcblx0XHR9XG5cdFx0dGhpcy5fdmFsdWUgPSB2O1xuXHR9XG5cblx0Z2V0IHZhbHVlKCkge1xuXHRcdHJldHVybiB0aGlzLl92YWx1ZTtcblx0fVxuXG5cdC8qKlxuXHQgKiBAZGVwcmVjYXRlZCBzaW5jZSB2NSAtIFVzZSBgY2RzTGF5ZXJgIGRpcmVjdGl2ZSBpbnN0ZWFkXG5cdCAqIFNldCB0byBgXCJsaWdodFwiYCB0byBhcHBseSB0aGUgbGlnaHQgc3R5bGVcblx0ICovXG5cdEBJbnB1dCgpIHRoZW1lOiBcImxpZ2h0XCIgfCBcImRhcmtcIiA9IFwiZGFya1wiO1xuXG5cdEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG5cdC8qKlxuXHQgKiBTZXQgdG8gYHRydWVgIHRvIGRpc3BsYXkgdGhlIGludmFsaWQgc3RhdGUuXG5cdCAqL1xuXHRASW5wdXQoKSBpbnZhbGlkID0gZmFsc2U7XG5cdC8qKlxuXHQgKiBWYWx1ZSBkaXNwbGF5ZWQgaWYgZGF0ZXBpY2tlciBpcyBpbiBhbiBpbnZhbGlkIHN0YXRlLlxuXHQgKi9cblx0QElucHV0KCkgaW52YWxpZFRleHQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT47XG5cdC8qKlxuXHQgICogU2V0IHRvIGB0cnVlYCB0byBzaG93IGEgd2FybmluZyAoY29udGVudHMgc2V0IGJ5IHdhcm5pbmdUZXh0KVxuXHQgICovXG5cdEBJbnB1dCgpIHdhcm4gPSBmYWxzZTtcblx0LyoqXG5cdCAqIFNldHMgdGhlIHdhcm5pbmcgdGV4dFxuXHQgKi9cblx0QElucHV0KCkgd2FyblRleHQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT47XG5cblx0QElucHV0KCkgc2l6ZTogXCJzbVwiIHwgXCJtZFwiIHwgXCJsZ1wiID0gXCJtZFwiO1xuXHQvKipcblx0ICogU2V0IHRvIGB0cnVlYCB0byBkaXNwbGF5IHRoZSBpbnZhbGlkIHN0YXRlIGZvciB0aGUgc2Vjb25kIGRhdGVwaWNrZXIgaW5wdXQuXG5cdCAqL1xuXHRASW5wdXQoKSByYW5nZUludmFsaWQgPSBmYWxzZTtcblx0LyoqXG5cdCAqIFZhbHVlIGRpc3BsYXllZCBpZiB0aGUgc2Vjb25kIGRhdGVwaWNrZXIgaW5wdXQgaXMgaW4gYW4gaW52YWxpZCBzdGF0ZS5cblx0ICovXG5cdEBJbnB1dCgpIHJhbmdlSW52YWxpZFRleHQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT47XG5cdC8qKlxuXHQgICogU2V0IHRvIGB0cnVlYCB0byBzaG93IGEgd2FybmluZyBpbiB0aGUgc2Vjb25kIGRhdGVwaWNrZXIgaW5wdXQgKGNvbnRlbnRzIHNldCBieSByYW5nZVdhcm5pbmdUZXh0KVxuXHQgICovXG5cdEBJbnB1dCgpIHJhbmdlV2FybiA9IGZhbHNlO1xuXHQvKipcblx0ICogU2V0cyB0aGUgd2FybmluZyB0ZXh0IGZvciB0aGUgc2Vjb25kIGRhdGVwaWNrZXIgaW5wdXRcblx0ICovXG5cdEBJbnB1dCgpIHJhbmdlV2FyblRleHQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT47XG5cblx0QElucHV0KCkgc2tlbGV0b24gPSBmYWxzZTtcblxuXHRASW5wdXQoKSBwbHVnaW5zID0gW107XG5cblx0QElucHV0KClcblx0c2V0IGZsYXRwaWNrck9wdGlvbnMob3B0aW9ucykge1xuXHRcdHRoaXMuX2ZsYXRwaWNrck9wdGlvbnMgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLl9mbGF0cGlja3JPcHRpb25zLCBvcHRpb25zKTtcblx0fVxuXHRnZXQgZmxhdHBpY2tyT3B0aW9ucygpIHtcblx0XHRjb25zdCBwbHVnaW5zID0gWy4uLnRoaXMucGx1Z2lucywgY2FyYm9uRmxhdHBpY2tyTW9udGhTZWxlY3RQbHVnaW5dO1xuXHRcdGlmICh0aGlzLnJhbmdlKSB7XG5cdFx0XHRwbHVnaW5zLnB1c2gocmFuZ2VQbHVnaW4oeyBpbnB1dDogYCMke3RoaXMuaWR9LXJhbmdlSW5wdXRgLCBwb3NpdGlvbjogXCJsZWZ0XCIgfSkpO1xuXHRcdH1cblx0XHRyZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5fZmxhdHBpY2tyT3B0aW9ucywgdGhpcy5mbGF0cGlja3JCYXNlT3B0aW9ucywge1xuXHRcdFx0bW9kZTogdGhpcy5yYW5nZSA/IFwicmFuZ2VcIiA6IFwic2luZ2xlXCIsXG5cdFx0XHRwbHVnaW5zLFxuXHRcdFx0ZGF0ZUZvcm1hdDogdGhpcy5kYXRlRm9ybWF0LFxuXHRcdFx0bG9jYWxlOiBsYW5ndWFnZXMuZGVmYXVsdFt0aGlzLmxhbmd1YWdlXVxuXHRcdH0pO1xuXHR9XG5cblx0QFZpZXdDaGlsZChcImlucHV0XCIsIHsgc3RhdGljOiB0cnVlIH0pIGlucHV0OiBEYXRlUGlja2VySW5wdXQ7XG5cdEBWaWV3Q2hpbGQoXCJyYW5nZUlucHV0XCIpIHJhbmdlSW5wdXQ6IERhdGVQaWNrZXJJbnB1dDtcblxuXHRAT3V0cHV0KCkgdmFsdWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG5cdC8qKlxuXHQgKiBXZSBhcmUgb3ZlcnJpZGluZyBvbkNsb3NlIGV2ZW50IGV2ZW4gaWYgdXNlcnMgcGFzcyBpdCB2aWEgZmxhdHBpY2tyIG9wdGlvbnNcblx0ICogRW1pdHMgYW4gZXZlbnQgd2hlbiBkYXRlIHBpY2tlciBjbG9zZXNcblx0ICovXG5cdEBPdXRwdXQoKSBvbkNsb3NlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuXHRwcm90ZWN0ZWQgX3ZhbHVlID0gW107XG5cblx0cHJvdGVjdGVkIF9mbGF0cGlja3JPcHRpb25zID0ge1xuXHRcdGFsbG93SW5wdXQ6IHRydWVcblx0fTtcblxuXHRwcm90ZWN0ZWQgZmxhdHBpY2tyQmFzZU9wdGlvbnMgPSB7XG5cdFx0bW9kZTogXCJzaW5nbGVcIixcblx0XHRkYXRlRm9ybWF0OiBcIm0vZC9ZXCIsXG5cdFx0cGx1Z2luczogdGhpcy5wbHVnaW5zLFxuXHRcdG9uT3BlbjogKCkgPT4ge1xuXHRcdFx0dGhpcy51cGRhdGVDbGFzc05hbWVzKCk7XG5cdFx0XHR0aGlzLnVwZGF0ZUF0dHJpYnV0ZXMoKTtcblx0XHRcdHRoaXMudXBkYXRlQ2FsZW5kYXJMaXN0ZW5lcnMoKTtcblx0XHR9LFxuXHRcdG9uQ2xvc2U6IChkYXRlKSA9PiB7XG5cdFx0XHQvLyBUaGlzIG1ha2VzIHN1cmUgdGhhdCB0aGUgYGZsYXRwaWNrckluc3RhbmNlIHNlbGVjdGVkRGF0ZXNgIGFyZSBpbiBzeW5jIHdpdGggdGhlIHZhbHVlcyBvZlxuXHRcdFx0Ly8gdGhlIGlucHV0cyB3aGVuIHRoZSBjYWxlbmRhciBjbG9zZXMuXG5cdFx0XHRpZiAodGhpcy5yYW5nZSAmJiB0aGlzLmZsYXRwaWNrckluc3RhbmNlKSB7XG5cdFx0XHRcdGlmICh0aGlzLmZsYXRwaWNrckluc3RhbmNlLnNlbGVjdGVkRGF0ZXMubGVuZ3RoICE9PSAyKSB7XG5cdFx0XHRcdFx0Ly8gd2UgY291bGQgYHRoaXMuZmxhdHBpY2tySW5zdGFuY2UuY2xlYXIoKWAgYnV0IGl0IGluc2lzdHMgb24gb3BlbmluZyB0aGUgc2Vjb25kIHBpY2tlclxuXHRcdFx0XHRcdC8vIGluIHNvbWUgY2FzZXMsIHNvIGluc3RlYWQgd2UgZG8gdGhpc1xuXHRcdFx0XHRcdHRoaXMuc2V0RGF0ZVZhbHVlcyhbXSk7XG5cdFx0XHRcdFx0dGhpcy5kb1NlbGVjdChbXSk7XG5cdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGNvbnN0IGlucHV0VmFsdWUgPSB0aGlzLmlucHV0LmlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWU7XG5cdFx0XHRcdGNvbnN0IHJhbmdlSW5wdXRWYWx1ZSA9IHRoaXMucmFuZ2VJbnB1dC5pbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlO1xuXHRcdFx0XHRpZiAoaW5wdXRWYWx1ZSB8fCByYW5nZUlucHV0VmFsdWUpIHtcblx0XHRcdFx0XHRjb25zdCBwYXJzZURhdGUgPSAoZGF0ZTogc3RyaW5nKSA9PiB0aGlzLmZsYXRwaWNrckluc3RhbmNlLnBhcnNlRGF0ZShkYXRlLCB0aGlzLmRhdGVGb3JtYXQpO1xuXHRcdFx0XHRcdHRoaXMuc2V0RGF0ZVZhbHVlcyhbcGFyc2VEYXRlKGlucHV0VmFsdWUpLCBwYXJzZURhdGUocmFuZ2VJbnB1dFZhbHVlKV0pO1xuXHRcdFx0XHRcdHRoaXMuZG9TZWxlY3QodGhpcy5mbGF0cGlja3JJbnN0YW5jZS5zZWxlY3RlZERhdGVzKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0dGhpcy5vbkNsb3NlLmVtaXQoZGF0ZSk7XG5cdFx0fSxcblx0XHRvbkRheUNyZWF0ZTogKF9kT2JqLCBfZFN0ciwgX2ZwLCBkYXlFbGVtKSA9PiB7XG5cdFx0XHRkYXlFbGVtLmNsYXNzTGlzdC5hZGQoXCJjZHMtLWRhdGUtcGlja2VyX19kYXlcIik7XG5cdFx0fSxcblx0XHRuZXh0QXJyb3c6IHRoaXMucmlnaHRBcnJvd0hUTUwoKSxcblx0XHRwcmV2QXJyb3c6IHRoaXMubGVmdEFycm93SFRNTCgpLFxuXHRcdHZhbHVlOiB0aGlzLnZhbHVlXG5cdH07XG5cblx0cHJvdGVjdGVkIGZsYXRwaWNrckluc3RhbmNlID0gbnVsbDtcblxuXHRjb25zdHJ1Y3Rvcihcblx0XHRwcm90ZWN0ZWQgZWxlbWVudFJlZjogRWxlbWVudFJlZixcblx0XHRwcm90ZWN0ZWQgaTE4bjogSTE4blxuXHQpIHsgfVxuXG5cdG5nT25Jbml0KCkge1xuXHRcdC8vIGlmIGkxOG4gaXMgc2V0IHRvIGFueXRoaW5nIG90aGVyIHRoYW4gZW4gd2UnbGwgd2FudCB0byBjaGFuZ2UgdGhlIGxhbmd1YWdlXG5cdFx0Ly8gb3RoZXJ3aXNlIHdlJ2xsIGp1c3QgdXNlIHRoZSBsb2NhbCBzZXR0aW5nXG5cdFx0aWYgKHRoaXMuaTE4bi5nZXRMb2NhbGUoKSAhPT0gXCJlblwiKSB7XG5cdFx0XHR0aGlzLmkxOG4uZ2V0TG9jYWxlT2JzZXJ2YWJsZSgpLnN1YnNjcmliZShsb2NhbGUgPT4ge1xuXHRcdFx0XHR0aGlzLmxhbmd1YWdlID0gbG9jYWxlO1xuXHRcdFx0XHR0aGlzLnJlc2V0RmxhdHBpY2tySW5zdGFuY2UoKTtcblx0XHRcdH0pO1xuXHRcdH1cblx0fVxuXG5cdG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcblx0XHQvLyBSZXNldCB0aGUgZmxhdHBpY2tyIGluc3RhbmNlIG9uIGlucHV0IGNoYW5nZXMgdGhhdCBhZmZlY3QgZmxhdHBpY2tyLlxuXHRcdGNvbnN0IGZsYXRwaWNrckNoYW5nZUtleXMgPSBbXG5cdFx0XHRcInJhbmdlXCIsXG5cdFx0XHRcImRhdGVGb3JtYXRcIixcblx0XHRcdFwibGFuZ3VhZ2VcIixcblx0XHRcdFwiaWRcIixcblx0XHRcdFwidmFsdWVcIixcblx0XHRcdFwicGx1Z2luc1wiLFxuXHRcdFx0XCJmbGF0cGlja3JPcHRpb25zXCJcblx0XHRdO1xuXHRcdGNvbnN0IGNoYW5nZUtleXMgPSBPYmplY3Qua2V5cyhjaGFuZ2VzKTtcblx0XHRpZiAoY2hhbmdlS2V5cy5zb21lKGtleSA9PiBmbGF0cGlja3JDaGFuZ2VLZXlzLmluY2x1ZGVzKGtleSkpKSB7XG5cdFx0XHR0aGlzLnJlc2V0RmxhdHBpY2tySW5zdGFuY2UoY2hhbmdlcy52YWx1ZSk7XG5cdFx0fVxuXHR9XG5cblx0bmdBZnRlclZpZXdJbml0KCkge1xuXHRcdHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0dGhpcy5hZGRJbnB1dExpc3RlbmVycygpO1xuXHRcdH0sIDApO1xuXHR9XG5cblx0Ly8gYmVjYXVzZSB0aGUgYWN0dWFsIHZpZXcgbWF5IGJlIGRlbGF5ZWQgaW4gbG9hZGluZyAodGhpbmsgcHJvamVjdGlvbiBpbnRvIGEgdGFiIHBhbmUpXG5cdC8vIGFuZCBiZWNhdXNlIHdlIHJlbHkgb24gYSBsaWJyYXJ5IHRoYXQgb3BlcmF0ZXMgb3V0c2lkZSB0aGUgQW5ndWxhciB2aWV3IG9mIHRoZSB3b3JsZFxuXHQvLyB3ZSBuZWVkIHRvIGtlZXAgdHJ5aW5nIHRvIGxvYWQgdGhlIGxpYnJhcnksIHVudGlsIHRoZSByZWxldmFudCBET00gaXMgYWN0dWFsbHkgbGl2ZVxuXHRuZ0FmdGVyVmlld0NoZWNrZWQoKSB7XG5cdFx0aWYgKCF0aGlzLmlzRmxhdHBpY2tyTG9hZGVkKCkpIHtcblx0XHRcdC8vIEB0cy1pZ25vcmUgdHMgaXMgdW5oYXBweSB3aXRoIHRoZSBiZWxvdyBjYWxsIHRvIGBmbGF0cGlja3JgXG5cdFx0XHR0aGlzLmZsYXRwaWNrckluc3RhbmNlID0gZmxhdHBpY2tyKGAjJHt0aGlzLmlkfS1pbnB1dGAsIHRoaXMuZmxhdHBpY2tyT3B0aW9ucyk7XG5cdFx0XHQvLyBpZiAoYW5kIG9ubHkgaWYpIHRoZSBpbml0aWFsaXphdGlvbiBzdWNjZWVkZWQsIHdlIGNhbiBzZXQgdGhlIGRhdGUgdmFsdWVzXG5cdFx0XHRpZiAodGhpcy5pc0ZsYXRwaWNrckxvYWRlZCgpKSB7XG5cdFx0XHRcdGlmICh0aGlzLnZhbHVlLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0XHR0aGlzLnNldERhdGVWYWx1ZXModGhpcy52YWx1ZSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRuZ0FmdGVyQ29udGVudEluaXQoKSB7XG5cdFx0KGxhbmd1YWdlcy5kZWZhdWx0LmVuLndlZWtkYXlzLnNob3J0aGFuZCBhcyBzdHJpbmdbXSlcblx0XHRcdD0gbGFuZ3VhZ2VzLmRlZmF1bHQuZW4ud2Vla2RheXMubG9uZ2hhbmQubWFwKGRheSA9PiB7XG5cdFx0XHRcdGlmIChkYXkgPT09IFwiVGh1cnNkYXlcIikge1xuXHRcdFx0XHRcdHJldHVybiBcIlRoXCI7XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIGRheS5jaGFyQXQoMCk7XG5cdFx0XHR9KTtcblx0fVxuXG5cdEBIb3N0TGlzdGVuZXIoXCJmb2N1c2luXCIpXG5cdG9uRm9jdXMoKSB7XG5cdFx0Ly8gVXBkYXRlcyB0aGUgbW9udGggbWFudWFsbHkgd2hlbiBjYWxlbmRhciBtb2RlIGlzIHJhbmdlIGJlY2F1c2UgbW9udGhcblx0XHQvLyB3aWxsIG5vdCB1cGRhdGUgcHJvcGVybHkgd2l0aG91dCBtYW51YWxseSB1cGRhdGluZyB0aGVtIG9uIGZvY3VzLlxuXHRcdGlmICh0aGlzLnJhbmdlKSB7XG5cdFx0XHRpZiAodGhpcy5yYW5nZUlucHV0LmlucHV0Lm5hdGl2ZUVsZW1lbnQgPT09IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgJiYgdGhpcy5mbGF0cGlja3JJbnN0YW5jZS5zZWxlY3RlZERhdGVzWzFdKSB7XG5cdFx0XHRcdGNvbnN0IGN1cnJlbnRNb250aCA9IHRoaXMuZmxhdHBpY2tySW5zdGFuY2Uuc2VsZWN0ZWREYXRlc1sxXS5nZXRNb250aCgpO1xuXHRcdFx0XHR0aGlzLmZsYXRwaWNrckluc3RhbmNlLmNoYW5nZU1vbnRoKGN1cnJlbnRNb250aCwgZmFsc2UpO1xuXHRcdFx0fSBlbHNlIGlmICh0aGlzLmlucHV0LmlucHV0Lm5hdGl2ZUVsZW1lbnQgPT09IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgJiYgdGhpcy5mbGF0cGlja3JJbnN0YW5jZS5zZWxlY3RlZERhdGVzWzBdKSB7XG5cdFx0XHRcdGNvbnN0IGN1cnJlbnRNb250aCA9IHRoaXMuZmxhdHBpY2tySW5zdGFuY2Uuc2VsZWN0ZWREYXRlc1swXS5nZXRNb250aCgpO1xuXHRcdFx0XHR0aGlzLmZsYXRwaWNrckluc3RhbmNlLmNoYW5nZU1vbnRoKGN1cnJlbnRNb250aCwgZmFsc2UpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdEBIb3N0TGlzdGVuZXIoXCJmb2N1c291dFwiKVxuXHRvbkZvY3VzT3V0KCkge1xuXHRcdHRoaXMub25Ub3VjaGVkKCk7XG5cdH1cblxuXHQvKipcblx0ICogV3JpdGVzIGEgdmFsdWUgZnJvbSB0aGUgbW9kZWwgdG8gdGhlIGNvbXBvbmVudC4gRXhwZWN0cyB0aGUgdmFsdWUgdG8gYmUgYG51bGxgIG9yIGAoRGF0ZSB8IHN0cmluZylbXWBcblx0ICogQHBhcmFtIHZhbHVlIHZhbHVlIHJlY2VpdmVkIGZyb20gdGhlIG1vZGVsXG5cdCAqL1xuXHR3cml0ZVZhbHVlKHZhbHVlOiAoRGF0ZSB8IHN0cmluZylbXSkge1xuXHRcdHRoaXMudmFsdWUgPSB2YWx1ZTtcblx0XHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdGlmICh0aGlzLmlzRmxhdHBpY2tyTG9hZGVkKCkgJiYgdGhpcy5mbGF0cGlja3JJbnN0YW5jZS5jb25maWcpIHtcblx0XHRcdFx0dGhpcy5zZXREYXRlVmFsdWVzKHRoaXMudmFsdWUpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cblx0LyoqXG5cdCAqIGBDb250cm9sVmFsdWVBY2Nlc3NvcmAgbWV0aG9kIHRvIHByb2dyYW1tYXRpY2FsbHkgZGlzYWJsZSB0aGUgRGF0ZVBpY2tlci5cblx0ICpcblx0ICogZXg6IGB0aGlzLmZvcm1Hcm91cC5nZXQoXCJteURhdGVQaWNrZXJcIikuZGlzYWJsZSgpO2Bcblx0ICpcblx0ICogQHBhcmFtIGlzRGlzYWJsZWQgYHRydWVgIHRvIGRpc2FibGUgdGhlIERhdGVQaWNrZXJcblx0ICovXG5cdHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbikge1xuXHRcdHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuXHR9XG5cblx0cmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XG5cdFx0dGhpcy5wcm9wYWdhdGVDaGFuZ2UgPSBmbjtcblx0fVxuXG5cdHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpIHtcblx0XHR0aGlzLm9uVG91Y2hlZCA9IGZuO1xuXHR9XG5cblx0b25Ub3VjaGVkOiAoKSA9PiBhbnkgPSAoKSA9PiB7IH07XG5cblx0cHJvcGFnYXRlQ2hhbmdlID0gKF86IGFueSkgPT4geyB9O1xuXG5cdC8qKlxuXHQgKiBDbGVhbnMgdXAgb3VyIGZsYXRwaWNrciBpbnN0YW5jZVxuXHQgKi9cblx0bmdPbkRlc3Ryb3koKSB7XG5cdFx0aWYgKCF0aGlzLmlzRmxhdHBpY2tyTG9hZGVkKCkpIHsgcmV0dXJuOyB9XG5cdFx0dGhpcy5mbGF0cGlja3JJbnN0YW5jZS5kZXN0cm95KCk7XG5cdH1cblxuXHQvKipcblx0ICogSGFuZGxlcyB0aGUgYHZhbHVlQ2hhbmdlYCBldmVudCBmcm9tIHRoZSBwcmltYXJ5L3NpbmdsZSBpbnB1dFxuXHQgKi9cblx0b25WYWx1ZUNoYW5nZShldmVudDogc3RyaW5nKSB7XG5cdFx0aWYgKHRoaXMuaXNGbGF0cGlja3JMb2FkZWQoKSkge1xuXHRcdFx0Y29uc3QgZGF0ZSA9IHRoaXMuZmxhdHBpY2tySW5zdGFuY2UucGFyc2VEYXRlKGV2ZW50LCB0aGlzLmRhdGVGb3JtYXQpO1xuXHRcdFx0aWYgKHRoaXMucmFuZ2UpIHtcblx0XHRcdFx0dGhpcy5zZXREYXRlVmFsdWVzKFtkYXRlLCB0aGlzLmZsYXRwaWNrckluc3RhbmNlLnNlbGVjdGVkRGF0ZXNbMV1dKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHRoaXMuc2V0RGF0ZVZhbHVlcyhbZGF0ZV0pO1xuXHRcdFx0fVxuXHRcdFx0dGhpcy5kb1NlbGVjdCh0aGlzLmZsYXRwaWNrckluc3RhbmNlLnNlbGVjdGVkRGF0ZXMpO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBIYW5kbGVzIHRoZSBgdmFsdWVDaGFuZ2VgIGV2ZW50IGZyb20gdGhlIHJhbmdlIGlucHV0XG5cdCAqL1xuXHRvblJhbmdlVmFsdWVDaGFuZ2UoZXZlbnQ6IHN0cmluZykge1xuXHRcdGlmICh0aGlzLmlzRmxhdHBpY2tyTG9hZGVkKCkgJiYgdGhpcy5mbGF0cGlja3JJbnN0YW5jZS5pc09wZW4pIHtcblx0XHRcdGNvbnN0IGRhdGUgPSB0aGlzLmZsYXRwaWNrckluc3RhbmNlLnBhcnNlRGF0ZShldmVudCwgdGhpcy5kYXRlRm9ybWF0KTtcblx0XHRcdHRoaXMuc2V0RGF0ZVZhbHVlcyhbdGhpcy5mbGF0cGlja3JJbnN0YW5jZS5zZWxlY3RlZERhdGVzWzBdLCBkYXRlXSk7XG5cdFx0XHR0aGlzLmRvU2VsZWN0KHRoaXMuZmxhdHBpY2tySW5zdGFuY2Uuc2VsZWN0ZWREYXRlcyk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIEhhbmRsZXMgb3BlbmluZyB0aGUgY2FsZW5kYXIgXCJwcm9wZXJseVwiIHdoZW4gdGhlIGNhbGVuZGFyIGljb24gaXMgY2xpY2tlZC5cblx0ICovXG5cdG9wZW5DYWxlbmRhcihkYXRlcGlja2VySW5wdXQ6IERhdGVQaWNrZXJJbnB1dCkge1xuXHRcdGlmICh0aGlzLnJhbmdlKSB7XG5cdFx0XHRkYXRlcGlja2VySW5wdXQuaW5wdXQubmF0aXZlRWxlbWVudC5jbGljaygpO1xuXG5cdFx0XHQvLyBJZiB0aGUgZmlyc3QgaW5wdXQncyBjYWxlbmRhciBpY29uIGlzIGNsaWNrZWQgd2hlbiBjYWxlbmRhciBpcyBpbiByYW5nZSBtb2RlLCB0aGVuXG5cdFx0XHQvLyB0aGUgbW9udGggYW5kIHllYXIgbmVlZHMgdG8gYmUgbWFudWFsbHkgY2hhbmdlZCB0byB0aGUgY3VycmVudCBzZWxlY3RlZCBtb250aCBhbmRcblx0XHRcdC8vIHllYXIgb3RoZXJ3aXNlIHRoZSBjYWxlbmRhciB2aWV3IHdpbGwgbm90IGJlIHVwZGF0ZWQgdXBvbiBvcGVuaW5nLlxuXHRcdFx0aWYgKGRhdGVwaWNrZXJJbnB1dCA9PT0gdGhpcy5pbnB1dCAmJiB0aGlzLmZsYXRwaWNrckluc3RhbmNlLnNlbGVjdGVkRGF0ZXNbMF0pIHtcblx0XHRcdFx0Y29uc3QgY3VycmVudE1vbnRoID0gdGhpcy5mbGF0cGlja3JJbnN0YW5jZS5zZWxlY3RlZERhdGVzWzBdLmdldE1vbnRoKCk7XG5cblx0XHRcdFx0dGhpcy5mbGF0cGlja3JJbnN0YW5jZS5jdXJyZW50WWVhciA9IHRoaXMuZmxhdHBpY2tySW5zdGFuY2Uuc2VsZWN0ZWREYXRlc1swXS5nZXRGdWxsWWVhcigpO1xuXHRcdFx0XHR0aGlzLmZsYXRwaWNrckluc3RhbmNlLmNoYW5nZU1vbnRoKGN1cnJlbnRNb250aCwgZmFsc2UpO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyBTaW5nbGUtbW9kZSBmbGF0cGlja3IgaGFuZGxlcyBtb3VzZWRvd24gYnV0IG5vdCBjbGljaywgc28gbmF0aXZlRWxlbWVudC5jbGljaygpIHdvbid0XG5cdFx0XHQvLyB3b3JrIHdoZW4gdGhlIGNhbGVuZGFyIGljb24gaXMgY2xpY2tlZC4gSW4gdGhpcyBjYXNlIHdlIHNpbXBseSB1c2UgZmxhdHBpY2tyLm9wZW4oKS5cblx0XHRcdHRoaXMuZmxhdHBpY2tySW5zdGFuY2Uub3BlbigpO1xuXHRcdH1cblx0fVxuXG5cdHByb3RlY3RlZCB1cGRhdGVDYWxlbmRhckxpc3RlbmVycygpIHtcblx0XHRjb25zdCBjYWxlbmRhckNvbnRhaW5lciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCIuZmxhdHBpY2tyLWNhbGVuZGFyXCIpO1xuXHRcdEFycmF5LmZyb20oY2FsZW5kYXJDb250YWluZXIpLmZvckVhY2goY2FsZW5kYXIgPT4ge1xuXHRcdFx0Y2FsZW5kYXIucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIHRoaXMucHJldmVudENhbGVuZGFyQ2xvc2UpO1xuXHRcdFx0Y2FsZW5kYXIuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIHRoaXMucHJldmVudENhbGVuZGFyQ2xvc2UpO1xuXHRcdH0pO1xuXHR9XG5cblx0LyoqXG5cdCAqIEhhbmRsZXMgdGhlIGluaXRpYWxpemF0aW9uIG9mIGV2ZW50IGxpc3RlbmVycyBmb3IgdGhlIGRhdGVwaWNrZXIgaW5wdXQgYW5kIHJhbmdlIGlucHV0IGZpZWxkcy5cblx0ICovXG5cdHByb3RlY3RlZCBhZGRJbnB1dExpc3RlbmVycygpIHtcblx0XHRpZiAoIXRoaXMuaXNGbGF0cGlja3JMb2FkZWQoKSkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdC8vIEFsbG93cyBmb2N1cyB0cmFuc2l0aW9uIGZyb20gdGhlIGRhdGVwaWNrZXIgaW5wdXQgb3IgcmFuZ2UgaW5wdXQgZmllbGQgdG9cblx0XHQvLyBmbGF0cGlja3IgY2FsZW5kYXIgdXNpbmcgYSBrZXlib2FyZC5cblx0XHRjb25zdCBhZGRGb2N1c0NhbGVuZGFyTGlzdGVuZXIgPSAoZWxlbWVudDogSFRNTElucHV0RWxlbWVudCkgPT4ge1xuXHRcdFx0ZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLCAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcblx0XHRcdFx0aWYgKGV2ZW50LmtleSA9PT0gXCJBcnJvd0Rvd25cIikge1xuXHRcdFx0XHRcdGlmICghdGhpcy5mbGF0cGlja3JJbnN0YW5jZS5pc09wZW4pIHtcblx0XHRcdFx0XHRcdHRoaXMuZmxhdHBpY2tySW5zdGFuY2Uub3BlbigpO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdGNvbnN0IGNhbGVuZGFyQ29udGFpbmVyID0gdGhpcy5mbGF0cGlja3JJbnN0YW5jZS5jYWxlbmRhckNvbnRhaW5lcjtcblx0XHRcdFx0XHRjb25zdCBkYXlFbGVtZW50ID0gY2FsZW5kYXJDb250YWluZXIgJiYgY2FsZW5kYXJDb250YWluZXIucXVlcnlTZWxlY3RvcihcIi5mbGF0cGlja3ItZGF5W3RhYmluZGV4XVwiKTtcblxuXHRcdFx0XHRcdGlmIChkYXlFbGVtZW50KSB7XG5cdFx0XHRcdFx0XHRkYXlFbGVtZW50LmZvY3VzKCk7XG5cblx0XHRcdFx0XHRcdC8vIElmIHRoZSB1c2VyIG1hbnVhbGx5IGlucHV0cyBhIHZhbHVlIGludG8gdGhlIGRhdGUgZmllbGQgYW5kIHByZXNzZXMgYXJyb3cgZG93bixcblx0XHRcdFx0XHRcdC8vIGRhdGVwaWNrZXIgaW5wdXQgb25jaGFuZ2Ugd2lsbCBiZSB0cmlnZ2VyZWQgd2hlbiBmb2N1cyBpcyByZW1vdmVkIGZyb20gaXQgYW5kXG5cdFx0XHRcdFx0XHQvLyBgZmxhdHBpY2tySW5zdGFuY2Uuc2V0RGF0ZWAgYW5kIGBmbGF0cGlja3JJbnN0YW5jZS5jaGFuZ2VNb250aGAgd2lsbCBiZSBpbnZva2VkXG5cdFx0XHRcdFx0XHQvLyB3aGljaCB3aWxsIGF1dG9tYXRpY2FsbHkgY2hhbmdlIGZvY3VzIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGRvY3VtZW50LlxuXHRcdFx0XHRcdFx0aWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgIT09IGRheUVsZW1lbnQgJiYgdGhpcy5mbGF0cGlja3JJbnN0YW5jZS5zZWxlY3RlZERhdGVFbGVtKSB7XG5cdFx0XHRcdFx0XHRcdHRoaXMuZmxhdHBpY2tySW5zdGFuY2Uuc2VsZWN0ZWREYXRlRWxlbS5mb2N1cygpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0fTtcblxuXHRcdGlmICh0aGlzLmlucHV0ICYmIHRoaXMuaW5wdXQuaW5wdXQpIHtcblx0XHRcdGFkZEZvY3VzQ2FsZW5kYXJMaXN0ZW5lcih0aGlzLmlucHV0LmlucHV0Lm5hdGl2ZUVsZW1lbnQpO1xuXHRcdH1cblxuXHRcdGlmICh0aGlzLnJhbmdlSW5wdXQgJiYgdGhpcy5yYW5nZUlucHV0LmlucHV0KSB7XG5cdFx0XHRhZGRGb2N1c0NhbGVuZGFyTGlzdGVuZXIodGhpcy5yYW5nZUlucHV0LmlucHV0Lm5hdGl2ZUVsZW1lbnQpO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBSZXNldHMgdGhlIGZsYXRwaWNrciBpbnN0YW5jZSB3aGlsZSBrZWVwaW5nIHRoZSBkYXRlIHZhbHVlcyAob3IgdXBkYXRpbmcgdGhlbSBpZiBuZXdEYXRlcyBpcyBwcm92aWRlZClcblx0ICpcblx0ICogVXNlZCB0byBwaWNrIHVwIGlucHV0IGNoYW5nZXMgb3IgbG9jYWxlIGNoYW5nZXMuXG5cdCAqXG5cdCAqIEBwYXJhbSBuZXdEYXRlcyBBbiBvcHRpb25hbCBTaW1wbGVDaGFuZ2Ugb2YgZGF0ZSB2YWx1ZXNcblx0ICovXG5cdHByb3RlY3RlZCByZXNldEZsYXRwaWNrckluc3RhbmNlKG5ld0RhdGVzPzogU2ltcGxlQ2hhbmdlKSB7XG5cdFx0aWYgKHRoaXMuaXNGbGF0cGlja3JMb2FkZWQoKSkge1xuXHRcdFx0bGV0IGRhdGVzID0gdGhpcy5mbGF0cGlja3JJbnN0YW5jZS5zZWxlY3RlZERhdGVzO1xuXHRcdFx0aWYgKG5ld0RhdGVzICYmIHRoaXMuZGlkRGF0ZVZhbHVlQ2hhbmdlKG5ld0RhdGVzLmN1cnJlbnRWYWx1ZSwgbmV3RGF0ZXMucHJldmlvdXNWYWx1ZSkpIHtcblx0XHRcdFx0ZGF0ZXMgPSBuZXdEYXRlcy5jdXJyZW50VmFsdWU7XG5cdFx0XHR9XG5cdFx0XHQvLyBvbmx5IHJlc2V0IHRoZSBmbGF0cGlja3IgaW5zdGFuY2Ugb24gSW5wdXQgY2hhbmdlc1xuXHRcdFx0Ly8gQHRzLWlnbm9yZSB0cyBpcyB1bmhhcHB5IHdpdGggdGhlIGJlbG93IGNhbGwgdG8gYGZsYXRwaWNrcmBcblx0XHRcdHRoaXMuZmxhdHBpY2tySW5zdGFuY2UgPSBmbGF0cGlja3IoYCMke3RoaXMuaWR9LWlucHV0YCwgdGhpcy5mbGF0cGlja3JPcHRpb25zKTtcblx0XHRcdHRoaXMuc2V0RGF0ZVZhbHVlcyhkYXRlcyk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIENhcmJvbiB1c2VzIGEgbnVtYmVyIG9mIHNwZWNpZmljIGNsYXNzbmFtZXMgZm9yIHBhcnRzIG9mIHRoZSBmbGF0cGlja3IgLSB0aGlzIGlkZW1wb3RlbnQgbWV0aG9kIGFwcGxpZXMgdGhlbSBpZiBuZWVkZWQuXG5cdCAqL1xuXHRwcm90ZWN0ZWQgdXBkYXRlQ2xhc3NOYW1lcygpIHtcblx0XHRpZiAoIXRoaXMuZWxlbWVudFJlZikgeyByZXR1cm47IH1cblx0XHQvLyBnZXQgYWxsIHRoZSBwb3NzaWJsZSBmbGF0cGlja3JzIGluIHRoZSBkb2N1bWVudCAtIHdlIG5lZWQgdG8gYWRkIGNsYXNzZXMgdG8gKHBvdGVudGlhbGx5KSBhbGwgb2YgdGhlbVxuXHRcdGNvbnN0IGNhbGVuZGFyQ29udGFpbmVyID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcIi5mbGF0cGlja3ItY2FsZW5kYXJcIik7XG5cdFx0Y29uc3QgbW9udGhDb250YWluZXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiLmZsYXRwaWNrci1tb250aFwiKTtcblx0XHRjb25zdCB3ZWVrZGF5c0NvbnRhaW5lciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCIuZmxhdHBpY2tyLXdlZWtkYXlzXCIpO1xuXHRcdGNvbnN0IHdlZWtkYXlDb250YWluZXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiLmZsYXRwaWNrci13ZWVrZGF5XCIpO1xuXHRcdGNvbnN0IGRheXNDb250YWluZXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiLmZsYXRwaWNrci1kYXlzXCIpO1xuXHRcdGNvbnN0IGRheUNvbnRhaW5lciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCIuZmxhdHBpY2tyLWRheVwiKTtcblxuXHRcdC8vIGFkZCBjbGFzc2VzIHRvIGxpc3RzIG9mIGVsZW1lbnRzXG5cdFx0Y29uc3QgYWRkQ2xhc3NJZk5vdEV4aXN0cyA9IChjbGFzc25hbWU6IHN0cmluZywgZWxlbWVudExpc3Q6IE5vZGVMaXN0T2Y8RWxlbWVudD4pID0+IHtcblx0XHRcdEFycmF5LmZyb20oZWxlbWVudExpc3QpLmZvckVhY2goZWxlbWVudCA9PiB7XG5cdFx0XHRcdGlmICghZWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoY2xhc3NuYW1lKSkge1xuXHRcdFx0XHRcdGVsZW1lbnQuY2xhc3NMaXN0LmFkZChjbGFzc25hbWUpO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9O1xuXG5cdFx0Ly8gYWRkIGNsYXNzZXMgKGJ1dCBvbmx5IGlmIHRoZXkgZG9uJ3QgZXhpc3QsIHNtYWxsIHBlcmYgd2luKVxuXHRcdGFkZENsYXNzSWZOb3RFeGlzdHMoXCJjZHMtLWRhdGUtcGlja2VyX19jYWxlbmRhclwiLCBjYWxlbmRhckNvbnRhaW5lcik7XG5cdFx0YWRkQ2xhc3NJZk5vdEV4aXN0cyhcImNkcy0tZGF0ZS1waWNrZXJfX21vbnRoXCIsIG1vbnRoQ29udGFpbmVyKTtcblx0XHRhZGRDbGFzc0lmTm90RXhpc3RzKFwiY2RzLS1kYXRlLXBpY2tlcl9fd2Vla2RheXNcIiwgd2Vla2RheXNDb250YWluZXIpO1xuXHRcdGFkZENsYXNzSWZOb3RFeGlzdHMoXCJjZHMtLWRhdGUtcGlja2VyX19kYXlzXCIsIGRheXNDb250YWluZXIpO1xuXG5cdFx0Ly8gYWRkIHdlZWtkYXkgY2xhc3NlcyBhbmQgZm9ybWF0IHRoZSB0ZXh0XG5cdFx0QXJyYXkuZnJvbSh3ZWVrZGF5Q29udGFpbmVyKS5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuXHRcdFx0ZWxlbWVudC5pbm5lckhUTUwgPSBlbGVtZW50LmlubmVySFRNTC5yZXBsYWNlKC9cXHMrL2csIFwiXCIpO1xuXHRcdFx0ZWxlbWVudC5jbGFzc0xpc3QuYWRkKFwiY2RzLS1kYXRlLXBpY2tlcl9fd2Vla2RheVwiKTtcblx0XHR9KTtcblxuXHRcdC8vIGFkZCBkYXkgY2xhc3NlcyBhbmQgc3BlY2lhbCBjYXNlIHRoZSBcInRvZGF5XCIgZWxlbWVudCBiYXNlZCBvbiBgdGhpcy52YWx1ZWBcblx0XHRBcnJheS5mcm9tKGRheUNvbnRhaW5lcikuZm9yRWFjaChlbGVtZW50ID0+IHtcblx0XHRcdGVsZW1lbnQuY2xhc3NMaXN0LmFkZChcImNkcy0tZGF0ZS1waWNrZXJfX2RheVwiKTtcblx0XHRcdGlmICghdGhpcy52YWx1ZSkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cdFx0XHRpZiAoZWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoXCJ0b2RheVwiKSAmJiB0aGlzLnZhbHVlLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0ZWxlbWVudC5jbGFzc0xpc3QuYWRkKFwibm8tYm9yZGVyXCIpO1xuXHRcdFx0fSBlbHNlIGlmIChlbGVtZW50LmNsYXNzTGlzdC5jb250YWlucyhcInRvZGF5XCIpICYmIHRoaXMudmFsdWUubGVuZ3RoID09PSAwKSB7XG5cdFx0XHRcdGVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShcIm5vLWJvcmRlclwiKTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdHByb3RlY3RlZCB1cGRhdGVBdHRyaWJ1dGVzKCkge1xuXHRcdGNvbnN0IGNhbGVuZGFyQ29udGFpbmVyID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcIi5mbGF0cGlja3ItY2FsZW5kYXJcIik7XG5cdFx0QXJyYXkuZnJvbShjYWxlbmRhckNvbnRhaW5lcikuZm9yRWFjaChjYWxlbmRhciA9PiB7XG5cdFx0XHRjYWxlbmRhci5zZXRBdHRyaWJ1dGUoXCJyb2xlXCIsIFwicmVnaW9uXCIpO1xuXHRcdFx0Y2FsZW5kYXIuc2V0QXR0cmlidXRlKFwiYXJpYS1sYWJlbFwiLCB0aGlzLmFyaWFMYWJlbCk7XG5cdFx0fSk7XG5cdH1cblxuXHQvKipcblx0ICogQXBwbGllcyB0aGUgZ2l2ZW4gZGF0ZSB2YWx1ZSBhcnJheSB0byBib3RoIHRoZSBmbGF0cGlja3IgaW5zdGFuY2UgYW5kIHRoZSBgaW5wdXRgKHMpXG5cdCAqIEBwYXJhbSBkYXRlcyB0aGUgZGF0ZSB2YWx1ZXMgdG8gYXBwbHlcblx0ICovXG5cdHByb3RlY3RlZCBzZXREYXRlVmFsdWVzKGRhdGVzOiAoRGF0ZSB8IHN0cmluZylbXSkge1xuXHRcdGlmICh0aGlzLmlzRmxhdHBpY2tyTG9hZGVkKCkpIHtcblx0XHRcdGNvbnN0IHNpbmdsZUlucHV0ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihgIyR7dGhpcy5pZH0taW5wdXRgKTtcblx0XHRcdGNvbnN0IHJhbmdlSW5wdXQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKGAjJHt0aGlzLmlkfS1yYW5nZUlucHV0YCk7XG5cblx0XHRcdC8vIGBmbGF0cGlja3JJbnN0YW5jZS5zZXREYXRlYCByZW1vdmVzIHRoZSBmb2N1cyBvbiB0aGUgc2VsZWN0ZWQgZGF0ZSBlbGVtZW50IGFuZCB3aWxsXG5cdFx0XHQvLyBhdXRvbWF0aWNhbGx5IGNoYW5nZSBmb2N1cyB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBkb2N1bWVudC4gSWYgYSBzZWxlY3RlZCBkYXRlIGlzXG5cdFx0XHQvLyBmb2N1c2VkIGJlZm9yZSBgZmxhdHBpY2tySW5zdGFuY2Uuc2V0RGF0ZWAgaXMgaW52b2tlZCB0aGVuIGl0IHNob3VsZCByZW1haW4gZm9jdXNlZC5cblx0XHRcdGxldCBzaG91bGRSZWZvY3VzRGF0ZUVsZW1lbnQgPSB0aGlzLmZsYXRwaWNrckluc3RhbmNlLnNlbGVjdGVkRGF0ZUVsZW0gPT09IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG5cblx0XHRcdC8vIHNldCB0aGUgZGF0ZSBvbiB0aGUgaW5zdGFuY2Vcblx0XHRcdHRoaXMuZmxhdHBpY2tySW5zdGFuY2Uuc2V0RGF0ZShkYXRlcyk7XG5cblx0XHRcdGlmIChzaG91bGRSZWZvY3VzRGF0ZUVsZW1lbnQpIHtcblx0XHRcdFx0dGhpcy5mbGF0cGlja3JJbnN0YW5jZS5zZWxlY3RlZERhdGVFbGVtLmZvY3VzKCk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIHdlIGNhbiBlaXRoZXIgc2V0IGEgZGF0ZSB2YWx1ZSBvciBhbiBlbXB0eSBzdHJpbmcsIHNvIHdlIHN0YXJ0IHdpdGggYW4gZW1wdHkgc3RyaW5nXG5cdFx0XHRsZXQgc2luZ2xlRGF0ZSA9IFwiXCI7XG5cdFx0XHQvLyBpZiBkYXRlIGlzIGEgc3RyaW5nLCBwYXJzZSBhbmQgZm9ybWF0XG5cdFx0XHRpZiAodHlwZW9mIHRoaXMuZmxhdHBpY2tySW5zdGFuY2Uuc2VsZWN0ZWREYXRlc1swXSA9PT0gXCJzdHJpbmdcIikge1xuXHRcdFx0XHRzaW5nbGVEYXRlID0gdGhpcy5mbGF0cGlja3JJbnN0YW5jZS5wYXJzZURhdGUodGhpcy5mbGF0cGlja3JJbnN0YW5jZS5zZWxlY3RlZERhdGVzWzBdLCB0aGlzLmRhdGVGb3JtYXQpO1xuXHRcdFx0XHRzaW5nbGVEYXRlID0gdGhpcy5mbGF0cGlja3JJbnN0YW5jZS5mb3JtYXREYXRlKHNpbmdsZURhdGUsIHRoaXMuZGF0ZUZvcm1hdCk7XG5cdFx0XHQvLyBpZiBkYXRlIGlzIG5vdCBhIHN0cmluZyB3ZSBjYW4gYXNzdW1lIGl0J3MgYSBEYXRlIGFuZCB3ZSBzaG91bGQgZm9ybWF0XG5cdFx0XHR9IGVsc2UgaWYgKCEhdGhpcy5mbGF0cGlja3JJbnN0YW5jZS5zZWxlY3RlZERhdGVzWzBdKSB7XG5cdFx0XHRcdHNpbmdsZURhdGUgPSB0aGlzLmZsYXRwaWNrckluc3RhbmNlLmZvcm1hdERhdGUodGhpcy5mbGF0cGlja3JJbnN0YW5jZS5zZWxlY3RlZERhdGVzWzBdLCB0aGlzLmRhdGVGb3JtYXQpO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAocmFuZ2VJbnB1dCkge1xuXHRcdFx0XHQvLyB3ZSBjYW4gZWl0aGVyIHNldCBhIGRhdGUgdmFsdWUgb3IgYW4gZW1wdHkgc3RyaW5nLCBzbyB3ZSBzdGFydCB3aXRoIGFuIGVtcHR5IHN0cmluZ1xuXHRcdFx0XHRsZXQgcmFuZ2VEYXRlID0gXCJcIjtcblx0XHRcdFx0Ly8gaWYgZGF0ZSBpcyBhIHN0cmluZywgcGFyc2UgYW5kIGZvcm1hdFxuXHRcdFx0XHRpZiAodHlwZW9mIHRoaXMuZmxhdHBpY2tySW5zdGFuY2Uuc2VsZWN0ZWREYXRlc1sxXSA9PT0gXCJzdHJpbmdcIikge1xuXHRcdFx0XHRcdHJhbmdlRGF0ZSA9IHRoaXMuZmxhdHBpY2tySW5zdGFuY2UucGFyc2VEYXRlKHRoaXMuZmxhdHBpY2tySW5zdGFuY2Uuc2VsZWN0ZWREYXRlc1sxXS50b1N0cmluZygpLCB0aGlzLmRhdGVGb3JtYXQpO1xuXHRcdFx0XHRcdHJhbmdlRGF0ZSA9IHRoaXMuZmxhdHBpY2tySW5zdGFuY2UuZm9ybWF0RGF0ZShyYW5nZURhdGUsIHRoaXMuZGF0ZUZvcm1hdCk7XG5cdFx0XHRcdC8vIGlmIGRhdGUgaXMgbm90IGEgc3RyaW5nIHdlIGNhbiBhc3N1bWUgaXQncyBhIERhdGUgYW5kIHdlIHNob3VsZCBmb3JtYXRcblx0XHRcdFx0fSBlbHNlIGlmICghIXRoaXMuZmxhdHBpY2tySW5zdGFuY2Uuc2VsZWN0ZWREYXRlc1sxXSkge1xuXHRcdFx0XHRcdHJhbmdlRGF0ZSA9IHRoaXMuZmxhdHBpY2tySW5zdGFuY2UuZm9ybWF0RGF0ZSh0aGlzLmZsYXRwaWNrckluc3RhbmNlLnNlbGVjdGVkRGF0ZXNbMV0sIHRoaXMuZGF0ZUZvcm1hdCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHRcdFx0Ly8gYXBwbHkgdGhlIHZhbHVlc1xuXHRcdFx0XHRcdHJhbmdlSW5wdXQudmFsdWUgPSByYW5nZURhdGU7XG5cdFx0XHRcdFx0c2luZ2xlSW5wdXQudmFsdWUgPSBzaW5nbGVEYXRlO1xuXHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRwcm90ZWN0ZWQgcHJldmVudENhbGVuZGFyQ2xvc2UgPSBldmVudCA9PiBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuXHRwcm90ZWN0ZWQgZG9TZWxlY3Qoc2VsZWN0ZWRWYWx1ZTogKERhdGUgfCBzdHJpbmcpW10pIHtcblx0XHQvLyBJbiByYW5nZSBtb2RlLCBpZiBhIGRhdGUgaXMgc2VsZWN0ZWQgZnJvbSB0aGUgZmlyc3QgY2FsZW5kYXIgdGhhdCBpcyBmcm9tIHRoZSBwcmV2aW91cyBtb250aCxcblx0XHQvLyB0aGUgbW9udGggd2lsbCBub3QgYmUgdXBkYXRlZCBvbiB0aGUgY2FsZW5kYXIgdW50aWwgdGhlIGNhbGVuZGFyIGlzIHJlLW9wZW5lZC5cblx0XHQvLyBUaGlzIHdpbGwgbWFrZSBzdXJlIHRoZSBjYWxlbmRhciBpcyB1cGRhdGVkIHdpdGggdGhlIGNvcnJlY3QgbW9udGguXG5cdFx0aWYgKHRoaXMucmFuZ2UgJiYgdGhpcy5mbGF0cGlja3JJbnN0YW5jZS5zZWxlY3RlZERhdGVzWzBdKSB7XG5cdFx0XHRjb25zdCBjdXJyZW50TW9udGggPSB0aGlzLmZsYXRwaWNrckluc3RhbmNlLnNlbGVjdGVkRGF0ZXNbMF0uZ2V0TW9udGgoKTtcblxuXHRcdFx0Ly8gYGZsYXRwaWNrckluc3RhbmNlLmNoYW5nZU1vbnRoYCByZW1vdmVzIHRoZSBmb2N1cyBvbiB0aGUgc2VsZWN0ZWQgZGF0ZSBlbGVtZW50IGFuZCB3aWxsXG5cdFx0XHQvLyBhdXRvbWF0aWNhbGx5IGNoYW5nZSBmb2N1cyB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBkb2N1bWVudC4gSWYgYSBzZWxlY3RlZCBkYXRlIGlzXG5cdFx0XHQvLyBmb2N1c2VkIGJlZm9yZSBgZmxhdHBpY2tySW5zdGFuY2UuY2hhbmdlTW9udGhgIGlzIGludm9rZWQgdGhlbiBpdCBzaG91bGQgcmVtYWluIGZvY3VzZWQuXG5cdFx0XHRsZXQgc2hvdWxkUmVmb2N1c0RhdGVFbGVtZW50ID0gdGhpcy5mbGF0cGlja3JJbnN0YW5jZS5zZWxlY3RlZERhdGVFbGVtID09PSBkb2N1bWVudC5hY3RpdmVFbGVtZW50O1xuXG5cdFx0XHR0aGlzLmZsYXRwaWNrckluc3RhbmNlLmNoYW5nZU1vbnRoKGN1cnJlbnRNb250aCwgZmFsc2UpO1xuXG5cdFx0XHRpZiAoc2hvdWxkUmVmb2N1c0RhdGVFbGVtZW50KSB7XG5cdFx0XHRcdHRoaXMuZmxhdHBpY2tySW5zdGFuY2Uuc2VsZWN0ZWREYXRlRWxlbS5mb2N1cygpO1xuXHRcdFx0fVxuXG5cdFx0fVxuXHRcdHRoaXMudmFsdWVDaGFuZ2UuZW1pdChzZWxlY3RlZFZhbHVlKTtcblx0XHR0aGlzLnByb3BhZ2F0ZUNoYW5nZShzZWxlY3RlZFZhbHVlKTtcblx0fVxuXG5cdHByb3RlY3RlZCBkaWREYXRlVmFsdWVDaGFuZ2UoY3VycmVudFZhbHVlLCBwcmV2aW91c1ZhbHVlKSB7XG5cdFx0cmV0dXJuIGN1cnJlbnRWYWx1ZVswXSAhPT0gcHJldmlvdXNWYWx1ZVswXSB8fCBjdXJyZW50VmFsdWVbMV0gIT09IHByZXZpb3VzVmFsdWVbMV07XG5cdH1cblxuXHQvKipcblx0ICogTW9yZSBhZHZhbmNlZCBjaGVja2luZyBvZiB0aGUgbG9hZGVkIHN0YXRlIG9mIGZsYXRwaWNrclxuXHQgKi9cblx0cHJvdGVjdGVkIGlzRmxhdHBpY2tyTG9hZGVkKCkge1xuXHRcdC8vIGNhc3QgdGhlIGluc3RhbmNlIHRvIGEgYm9vbGVhbiwgYW5kIHNvbWUgbWV0aG9kIHRoYXQgaGFzIHRvIGV4aXN0IGZvciB0aGUgbGlicmFyeSB0byBiZSBsb2FkZWQgaW4gdGhpcyBjYXNlIGBzZXREYXRlYFxuXHRcdHJldHVybiAhIXRoaXMuZmxhdHBpY2tySW5zdGFuY2UgJiYgISF0aGlzLmZsYXRwaWNrckluc3RhbmNlLnNldERhdGU7XG5cdH1cblxuXHQvKipcblx0ICogUmlnaHQgYXJyb3cgSFRNTCBwYXNzZWQgdG8gZmxhdHBpY2tyXG5cdCAqL1xuXHRwcm90ZWN0ZWQgcmlnaHRBcnJvd0hUTUwoKSB7XG5cdFx0cmV0dXJuIGBcblx0XHRcdDxzdmcgd2lkdGg9XCIxNnB4XCIgaGVpZ2h0PVwiMTZweFwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIj5cblx0XHRcdFx0PHBvbHlnb24gcG9pbnRzPVwiMTEsOCA2LDEzIDUuMywxMi4zIDkuNiw4IDUuMywzLjcgNiwzIFwiLz5cblx0XHRcdFx0PHJlY3Qgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgc3R5bGU9XCJmaWxsOm5vbmVcIiAvPlxuXHRcdFx0PC9zdmc+YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBMZWZ0IGFycm93IEhUTUwgcGFzc2VkIHRvIGZsYXRwaWNrclxuXHQgKi9cblx0cHJvdGVjdGVkIGxlZnRBcnJvd0hUTUwoKSB7XG5cdFx0cmV0dXJuIGBcblx0XHRcdDxzdmcgd2lkdGg9XCIxNnB4XCIgaGVpZ2h0PVwiMTZweFwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIj5cblx0XHRcdFx0PHBvbHlnb24gcG9pbnRzPVwiNSw4IDEwLDMgMTAuNywzLjcgNi40LDggMTAuNywxMi4zIDEwLDEzIFwiLz5cblx0XHRcdFx0PHJlY3Qgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgc3R5bGU9XCJmaWxsOm5vbmVcIiAvPlxuXHRcdFx0PC9zdmc+YDtcblx0fVxufVxuIl19
|
|
723
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZGF0ZXBpY2tlci9kYXRlcGlja2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUNaLGlCQUFpQixFQUdqQixZQUFZLEVBTVosU0FBUyxFQUdULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sV0FBVyxNQUFNLG9DQUFvQyxDQUFDO0FBQzdELE9BQU8sU0FBUyxNQUFNLFdBQVcsQ0FBQztBQUNsQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNuRixPQUFPLEtBQUssU0FBUyxNQUFNLDJCQUEyQixDQUFDOzs7OztBQUl2RDs7Ozs7OztHQU9HO0FBQ0gsSUFBSSxTQUFTLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxRQUFRLEVBQUU7SUFDOUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLFNBQXNCLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDOUgsSUFBSSxHQUFHLEtBQUssVUFBVSxFQUFFO1lBQ3ZCLE9BQU8sSUFBSSxDQUFDO1NBQ1o7UUFDRCxPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEIsQ0FBQyxDQUFDLENBQUM7Q0FDSDtBQUVEOztHQUVHO0FBb0VILE1BQU0sT0FBTyxVQUFVO0lBa0x0QixZQUNXLFVBQXNCLEVBQ3RCLElBQVU7UUFEVixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLFNBQUksR0FBSixJQUFJLENBQU07UUE1S3JCOztXQUVHO1FBQ00sVUFBSyxHQUFHLEtBQUssQ0FBQztRQUV2Qjs7OztXQUlHO1FBQ00sZUFBVSxHQUFHLE9BQU8sQ0FBQztRQUU5Qjs7Ozs7V0FLRztRQUNNLGFBQVEsR0FBRyxJQUFJLENBQUM7UUFPaEIsZ0JBQVcsR0FBRyxZQUFZLENBQUM7UUFFcEM7O1dBRUc7UUFDTSxjQUFTLEdBQUcsb0JBQW9CLENBQUM7UUFFMUM7O1dBRUc7UUFDTSxpQkFBWSxHQUFHLDRCQUE0QixDQUFDO1FBRTVDLE9BQUUsR0FBRyxjQUFjLFVBQVUsQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDO1FBYTNEOzs7V0FHRztRQUNNLFVBQUssR0FBcUIsTUFBTSxDQUFDO1FBRWpDLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDMUI7O1dBRUc7UUFDTSxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBS3pCOztZQUVJO1FBQ0ssU0FBSSxHQUFHLEtBQUssQ0FBQztRQU1iLFNBQUksR0FBdUIsSUFBSSxDQUFDO1FBQ3pDOztXQUVHO1FBQ00saUJBQVksR0FBRyxLQUFLLENBQUM7UUFLOUI7O1lBRUk7UUFDSyxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBTWxCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFFakIsWUFBTyxHQUFHLEVBQUUsQ0FBQztRQXNCWixnQkFBVyxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTlEOzs7V0FHRztRQUNPLFlBQU8sR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVoRCxXQUFNLEdBQUcsRUFBRSxDQUFDO1FBRVosc0JBQWlCLEdBQUc7WUFDN0IsVUFBVSxFQUFFLElBQUk7U0FDaEIsQ0FBQztRQUVRLHlCQUFvQixHQUFHO1lBQ2hDLElBQUksRUFBRSxRQUFRO1lBQ2QsVUFBVSxFQUFFLE9BQU87WUFDbkIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3JCLE1BQU0sRUFBRSxHQUFHLEVBQUU7Z0JBQ1osSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO2dCQUN4QixJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztZQUNoQyxDQUFDO1lBQ0QsT0FBTyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQ2pCLDRGQUE0RjtnQkFDNUYsdUNBQXVDO2dCQUN2QyxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO29CQUN6QyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTt3QkFDdEQsd0ZBQXdGO3dCQUN4Rix1Q0FBdUM7d0JBQ3ZDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLENBQUM7d0JBQ3ZCLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7d0JBQ2xCLE9BQU87cUJBQ1A7b0JBQ0QsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztvQkFDeEQsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztvQkFDbEUsSUFBSSxVQUFVLElBQUksZUFBZSxFQUFFO3dCQUNsQyxNQUFNLFNBQVMsR0FBRyxDQUFDLElBQVksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO3dCQUM1RixJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7d0JBQ3hFLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxDQUFDO3FCQUNwRDtpQkFDRDtnQkFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN6QixDQUFDO1lBQ0QsV0FBVyxFQUFFLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLEVBQUU7Z0JBQzNDLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDLENBQUM7WUFDaEQsQ0FBQztZQUNELFNBQVMsRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ2hDLFNBQVMsRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQy9CLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztTQUNqQixDQUFDO1FBRVEsc0JBQWlCLEdBQUcsSUFBSSxDQUFDO1FBNkduQyxjQUFTLEdBQWMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBRWpDLG9CQUFlLEdBQUcsQ0FBQyxDQUFNLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztRQStPeEIseUJBQW9CLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7SUF6VjlELENBQUM7SUF0SUwsSUFBYSxLQUFLLENBQUMsQ0FBb0I7UUFDdEMsSUFBSSxDQUFDLENBQUMsRUFBRTtZQUNQLENBQUMsR0FBRyxFQUFFLENBQUM7U0FDUDtRQUNELElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDcEIsQ0FBQztJQWdERCxJQUNJLGdCQUFnQixDQUFDLE9BQU87UUFDM0IsSUFBSSxDQUFDLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBQ0QsSUFBSSxnQkFBZ0I7UUFDbkIsTUFBTSxPQUFPLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsZ0NBQWdDLENBQUMsQ0FBQztRQUNwRSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDZixPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLElBQUksQ0FBQyxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ2pGO1FBQ0QsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixFQUFFO1lBQzNFLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFFBQVE7WUFDckMsT0FBTztZQUNQLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUMzQixNQUFNLEVBQUUsU0FBUyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztTQUNyRixDQUFDLENBQUM7SUFDSixDQUFDO0lBZ0VELFFBQVE7UUFDUCw2RUFBNkU7UUFDN0UsNkNBQTZDO1FBQzdDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDbkMsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDbEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1lBQy9CLENBQUMsQ0FBQyxDQUFDO1NBQ0g7SUFDRixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2pDLHVFQUF1RTtRQUN2RSxNQUFNLG1CQUFtQixHQUFHO1lBQzNCLE9BQU87WUFDUCxZQUFZO1lBQ1osVUFBVTtZQUNWLElBQUk7WUFDSixPQUFPO1lBQ1AsU0FBUztZQUNULGtCQUFrQjtTQUNsQixDQUFDO1FBQ0YsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN4QyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtZQUM5RCxJQUFJLENBQUMsc0JBQXNCLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzNDO0lBQ0YsQ0FBQztJQUVELGVBQWU7UUFDZCxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2YsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDMUIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELHVGQUF1RjtJQUN2Rix1RkFBdUY7SUFDdkYsc0ZBQXNGO0lBQ3RGLGtCQUFrQjtRQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLEVBQUU7WUFDOUIsOERBQThEO1lBQzlELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxTQUFTLENBQUMsSUFBSSxJQUFJLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDL0UsNEVBQTRFO1lBQzVFLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLEVBQUU7Z0JBQzdCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO29CQUMxQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztpQkFDL0I7YUFDRDtTQUNEO0lBQ0YsQ0FBQztJQUdELE9BQU87UUFDTix1RUFBdUU7UUFDdkUsb0VBQW9FO1FBQ3BFLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNmLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsYUFBYSxLQUFLLFFBQVEsQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDOUcsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDeEUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLENBQUM7YUFDeEQ7aUJBQU0sSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxhQUFhLEtBQUssUUFBUSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUNoSCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUN4RSxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsQ0FBQzthQUN4RDtTQUNEO0lBQ0YsQ0FBQztJQUdELFVBQVU7UUFDVCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbEIsQ0FBQztJQUVEOzs7T0FHRztJQUNILFVBQVUsQ0FBQyxLQUF3QjtRQUNsQyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2YsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxFQUFFO2dCQUM5RCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUMvQjtRQUNGLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILGdCQUFnQixDQUFDLFVBQW1CO1FBQ25DLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO0lBQzVCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxFQUFPO1FBQ3ZCLElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFPO1FBQ3hCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFNRDs7T0FFRztJQUNILFdBQVc7UUFDVixJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLEVBQUU7WUFBRSxPQUFPO1NBQUU7UUFDMUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRDs7T0FFRztJQUNILGFBQWEsQ0FBQyxLQUFhO1FBQzFCLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLEVBQUU7WUFDN0IsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3RFLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtnQkFDZixJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3BFO2lCQUFNO2dCQUNOLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2FBQzNCO1lBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDcEQ7SUFDRixDQUFDO0lBRUQ7O09BRUc7SUFDSCxrQkFBa0IsQ0FBQyxLQUFhO1FBQy9CLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sRUFBRTtZQUM5RCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDdEUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNwRSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUNwRDtJQUNGLENBQUM7SUFFRDs7T0FFRztJQUNILFlBQVksQ0FBQyxlQUFnQztRQUM1QyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDZixlQUFlLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUU1QyxxRkFBcUY7WUFDckYsb0ZBQW9GO1lBQ3BGLHFFQUFxRTtZQUNyRSxJQUFJLGVBQWUsS0FBSyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQzlFLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBRXhFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDM0YsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLENBQUM7YUFDeEQ7U0FDRDthQUFNO1lBQ04sd0ZBQXdGO1lBQ3hGLHVGQUF1RjtZQUN2RixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDOUI7SUFDRixDQUFDO0lBRVMsdUJBQXVCO1FBQ2hDLE1BQU0saUJBQWlCLEdBQUcsUUFBUSxDQUFDLGdCQUFnQixDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDM0UsS0FBSyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNoRCxRQUFRLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1lBQ2pFLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDL0QsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDTyxpQkFBaUI7UUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxFQUFFO1lBQzlCLE9BQU87U0FDUDtRQUVELDRFQUE0RTtRQUM1RSx1Q0FBdUM7UUFDdkMsTUFBTSx3QkFBd0IsR0FBRyxDQUFDLE9BQXlCLEVBQUUsRUFBRTtZQUM5RCxPQUFPLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLENBQUMsS0FBb0IsRUFBRSxFQUFFO2dCQUM1RCxJQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssV0FBVyxFQUFFO29CQUM5QixJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sRUFBRTt3QkFDbkMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDO3FCQUM5QjtvQkFFRCxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxpQkFBaUIsQ0FBQztvQkFDbkUsTUFBTSxVQUFVLEdBQUcsaUJBQWlCLElBQUksaUJBQWlCLENBQUMsYUFBYSxDQUFDLDBCQUEwQixDQUFDLENBQUM7b0JBRXBHLElBQUksVUFBVSxFQUFFO3dCQUNmLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQzt3QkFFbkIsa0ZBQWtGO3dCQUNsRixnRkFBZ0Y7d0JBQ2hGLGtGQUFrRjt3QkFDbEYsMEVBQTBFO3dCQUMxRSxJQUFJLFFBQVEsQ0FBQyxhQUFhLEtBQUssVUFBVSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxnQkFBZ0IsRUFBRTs0QkFDckYsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxDQUFDO3lCQUNoRDtxQkFDRDtpQkFDRDtZQUNGLENBQUMsQ0FBQyxDQUFDO1FBQ0osQ0FBQyxDQUFDO1FBRUYsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFO1lBQ25DLHdCQUF3QixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQ3pEO1FBRUQsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFO1lBQzdDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQzlEO0lBQ0YsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNPLHNCQUFzQixDQUFDLFFBQXVCO1FBQ3ZELElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLEVBQUU7WUFDN0IsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQztZQUNqRCxJQUFJLFFBQVEsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsYUFBYSxDQUFDLEVBQUU7Z0JBQ3ZGLEtBQUssR0FBRyxRQUFRLENBQUMsWUFBWSxDQUFDO2FBQzlCO1lBQ0QscURBQXFEO1lBQ3JELDhEQUE4RDtZQUM5RCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsU0FBUyxDQUFDLElBQUksSUFBSSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQy9FLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDMUI7SUFDRixDQUFDO0lBRUQ7O09BRUc7SUFDTyxnQkFBZ0I7UUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFBRSxPQUFPO1NBQUU7UUFDakMsd0dBQXdHO1FBQ3hHLE1BQU0saUJBQWlCLEdBQUcsUUFBUSxDQUFDLGdCQUFnQixDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDM0UsTUFBTSxjQUFjLEdBQUcsUUFBUSxDQUFDLGdCQUFnQixDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDckUsTUFBTSxpQkFBaUIsR0FBRyxRQUFRLENBQUMsZ0JBQWdCLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUMzRSxNQUFNLGdCQUFnQixHQUFHLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3pFLE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ25FLE1BQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRWpFLG1DQUFtQztRQUNuQyxNQUFNLG1CQUFtQixHQUFHLENBQUMsU0FBaUIsRUFBRSxXQUFnQyxFQUFFLEVBQUU7WUFDbkYsS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBRTtvQkFDM0MsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7aUJBQ2pDO1lBQ0YsQ0FBQyxDQUFDLENBQUM7UUFDSixDQUFDLENBQUM7UUFFRiw2REFBNkQ7UUFDN0QsbUJBQW1CLENBQUMsNEJBQTRCLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUNyRSxtQkFBbUIsQ0FBQyx5QkFBeUIsRUFBRSxjQUFjLENBQUMsQ0FBQztRQUMvRCxtQkFBbUIsQ0FBQyw0QkFBNEIsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3JFLG1CQUFtQixDQUFDLHdCQUF3QixFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBRTdELDBDQUEwQztRQUMxQyxLQUFLLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQzlDLE9BQU8sQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzFELE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLDJCQUEyQixDQUFDLENBQUM7UUFDcEQsQ0FBQyxDQUFDLENBQUM7UUFFSCw2RUFBNkU7UUFDN0UsS0FBSyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDMUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsdUJBQXVCLENBQUMsQ0FBQztZQUMvQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtnQkFDaEIsT0FBTzthQUNQO1lBQ0QsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQ2pFLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO2FBQ25DO2lCQUFNLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO2dCQUMxRSxPQUFPLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUN0QztRQUNGLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVTLGdCQUFnQjtRQUN6QixNQUFNLGlCQUFpQixHQUFHLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQzNFLEtBQUssQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDaEQsUUFBUSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDeEMsUUFBUSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3JELENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7T0FHRztJQUNPLGFBQWEsQ0FBQyxLQUF3QjtRQUMvQyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxFQUFFO1lBQzdCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxJQUFJLElBQUksQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQ3JGLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxJQUFJLElBQUksQ0FBQyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1lBRXpGLHNGQUFzRjtZQUN0RixxRkFBcUY7WUFDckYsdUZBQXVGO1lBQ3ZGLElBQUksd0JBQXdCLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGdCQUFnQixLQUFLLFFBQVEsQ0FBQyxhQUFhLENBQUM7WUFFbEcsK0JBQStCO1lBQy9CLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFdEMsSUFBSSx3QkFBd0IsRUFBRTtnQkFDN0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxDQUFDO2FBQ2hEO1lBRUQsc0ZBQXNGO1lBQ3RGLElBQUksVUFBVSxHQUFHLEVBQUUsQ0FBQztZQUNwQix3Q0FBd0M7WUFDeEMsSUFBSSxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEtBQUssUUFBUSxFQUFFO2dCQUNoRSxVQUFVLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDeEcsVUFBVSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDN0UseUVBQXlFO2FBQ3hFO2lCQUFNLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ3JELFVBQVUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQ3pHO1lBRUQsSUFBSSxVQUFVLEVBQUU7Z0JBQ2Ysc0ZBQXNGO2dCQUN0RixJQUFJLFNBQVMsR0FBRyxFQUFFLENBQUM7Z0JBQ25CLHdDQUF3QztnQkFDeEMsSUFBSSxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEtBQUssUUFBUSxFQUFFO29CQUNoRSxTQUFTLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztvQkFDbEgsU0FBUyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztvQkFDM0UseUVBQXlFO2lCQUN4RTtxQkFBTSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFFO29CQUNyRCxTQUFTLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztpQkFDeEc7Z0JBQ0QsVUFBVSxDQUFDLEdBQUcsRUFBRTtvQkFDZixtQkFBbUI7b0JBQ25CLFVBQVUsQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDO29CQUM3QixXQUFXLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQztnQkFDaEMsQ0FBQyxDQUFDLENBQUM7YUFDSDtTQUNEO0lBQ0YsQ0FBQztJQUlTLFFBQVEsQ0FBQyxhQUFnQztRQUNsRCxnR0FBZ0c7UUFDaEcsaUZBQWlGO1FBQ2pGLHNFQUFzRTtRQUN0RSxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUMxRCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBRXhFLDBGQUEwRjtZQUMxRixxRkFBcUY7WUFDckYsMkZBQTJGO1lBQzNGLElBQUksd0JBQXdCLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGdCQUFnQixLQUFLLFFBQVEsQ0FBQyxhQUFhLENBQUM7WUFFbEcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFFeEQsSUFBSSx3QkFBd0IsRUFBRTtnQkFDN0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxDQUFDO2FBQ2hEO1NBRUQ7UUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFUyxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsYUFBYTtRQUN2RCxPQUFPLFlBQVksQ0FBQyxDQUFDLENBQUMsS0FBSyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksWUFBWSxDQUFDLENBQUMsQ0FBQyxLQUFLLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNyRixDQUFDO0lBRUQ7O09BRUc7SUFDTyxpQkFBaUI7UUFDMUIsd0hBQXdIO1FBQ3hILE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQztJQUNyRSxDQUFDO0lBRUQ7O09BRUc7SUFDTyxjQUFjO1FBQ3ZCLE9BQU87Ozs7VUFJQyxDQUFDO0lBQ1YsQ0FBQztJQUVEOztPQUVHO0lBQ08sYUFBYTtRQUN0QixPQUFPOzs7O1VBSUMsQ0FBQztJQUNWLENBQUM7O0FBamtCYywwQkFBZSxHQUFHLENBQUUsQ0FBQTt1R0FOdkIsVUFBVTsyRkFBVixVQUFVLHl6QkFUWDtRQUNWO1lBQ0MsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixXQUFXLEVBQUUsVUFBVTtZQUN2QixLQUFLLEVBQUUsSUFBSTtTQUNYO0tBQ0Qsd1BBOURTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBdURUOzJGQVVXLFVBQVU7a0JBbkV0QixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxrQ0FBa0M7b0JBQzVDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQXVEVDtvQkFDRCxTQUFTLEVBQUU7d0JBQ1Y7NEJBQ0MsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxZQUFZOzRCQUN2QixLQUFLLEVBQUUsSUFBSTt5QkFDWDtxQkFDRDtvQkFDRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtpQkFDckM7b0hBWVMsS0FBSztzQkFBYixLQUFLO2dCQU9HLFVBQVU7c0JBQWxCLEtBQUs7Z0JBUUcsUUFBUTtzQkFBaEIsS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUcsV0FBVztzQkFBbkIsS0FBSztnQkFLRyxTQUFTO3NCQUFqQixLQUFLO2dCQUtHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUcsRUFBRTtzQkFBVixLQUFLO2dCQUVPLEtBQUs7c0JBQWpCLEtBQUs7Z0JBZUcsS0FBSztzQkFBYixLQUFLO2dCQUVHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBSUcsT0FBTztzQkFBZixLQUFLO2dCQUlHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBSUcsSUFBSTtzQkFBWixLQUFLO2dCQUlHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUcsSUFBSTtzQkFBWixLQUFLO2dCQUlHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBSUcsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUlHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBSUcsYUFBYTtzQkFBckIsS0FBSztnQkFFRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLE9BQU87c0JBQWYsS0FBSztnQkFHRixnQkFBZ0I7c0JBRG5CLEtBQUs7Z0JBaUJnQyxLQUFLO3NCQUExQyxTQUFTO3VCQUFDLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ1gsVUFBVTtzQkFBbEMsU0FBUzt1QkFBQyxZQUFZO2dCQUViLFdBQVc7c0JBQXBCLE1BQU07Z0JBTUcsT0FBTztzQkFBaEIsTUFBTTtnQkF3R1AsT0FBTztzQkFETixZQUFZO3VCQUFDLFNBQVM7Z0JBZ0J2QixVQUFVO3NCQURULFlBQVk7dUJBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdENvbXBvbmVudCxcblx0SW5wdXQsXG5cdE91dHB1dCxcblx0RXZlbnRFbWl0dGVyLFxuXHRWaWV3RW5jYXBzdWxhdGlvbixcblx0RWxlbWVudFJlZixcblx0T25EZXN0cm95LFxuXHRIb3N0TGlzdGVuZXIsXG5cdFRlbXBsYXRlUmVmLFxuXHRPbkNoYW5nZXMsXG5cdFNpbXBsZUNoYW5nZXMsXG5cdEFmdGVyVmlld0NoZWNrZWQsXG5cdEFmdGVyVmlld0luaXQsXG5cdFZpZXdDaGlsZCxcblx0T25Jbml0LFxuXHRTaW1wbGVDaGFuZ2Vcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCByYW5nZVBsdWdpbiBmcm9tIFwiZmxhdHBpY2tyL2Rpc3QvcGx1Z2lucy9yYW5nZVBsdWdpblwiO1xuaW1wb3J0IGZsYXRwaWNrciBmcm9tIFwiZmxhdHBpY2tyXCI7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgY2FyYm9uRmxhdHBpY2tyTW9udGhTZWxlY3RQbHVnaW4gfSBmcm9tIFwiLi9jYXJib24tZmxhdHBpY2tyLW1vbnRoLXNlbGVjdFwiO1xuaW1wb3J0ICogYXMgbGFuZ3VhZ2VzIGZyb20gXCJmbGF0cGlja3IvZGlzdC9sMTBuL2luZGV4XCI7XG5pbXBvcnQgeyBEYXRlUGlja2VySW5wdXQgfSBmcm9tIFwiY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhci9kYXRlcGlja2VyLWlucHV0XCI7XG5pbXBvcnQgeyBJMThuIH0gZnJvbSBcImNhcmJvbi1jb21wb25lbnRzLWFuZ3VsYXIvaTE4blwiO1xuXG4vKipcbiAqIER1ZSB0byB0eXBlIGVycm9yLCB3ZSBoYXZlIHRvIHVzZSBzcXVhcmUgYnJhY2tldHMgcHJvcGVydHkgYWNjZXNzb3JcbiAqIFRoZXJlIGlzIGEgd2VicGFjayBpc3N1ZSB3aGVuIGF0dGVtcHRpbmcgdG8gYWNjZXNzIGV4cG9ydGVkIGxhbmd1YWdlcyBmcm9tIGZsYXRwaWNrciBsMTBuIEFuZ3VsYXIgMTQrIGFwcHNcbiAqIGxhbmd1YWdlcy5kZWZhdWx0W2xvY2FsZV0gZmFpbHMgaW4gYXBwIGNvbnN1bWluZyBDQ0EgbGlicmFyeSBidXQgcGFzc2VzIGluIHRlc3RcbiAqIGxhbmd1YWdlcy5kZWZhdWx0LmRlZmF1bHRbbG9jYWxlXSBmYWlscyBpbiB0ZXN0IGJ1dCB3b3JrcyBpbiBhcHAgY29uc3VtaW5nIENDQSBsaWJyYXJ5LlxuICpcbiAqIFRvIHBsZWFzZSBib3RoIHNjZW5hcmlvcywgd2UgYXJlIGFkZGluZyBhIGNvbmRpdGlvbiB0byBwcmV2ZW50IHRlc3RzIGZyb20gZmFpbGluZ1xuICovXG5pZiAobGFuZ3VhZ2VzLmRlZmF1bHQ/LmRlZmF1bHRbXCJlblwiXT8ud2Vla2RheXMpIHtcblx0KGxhbmd1YWdlcy5kZWZhdWx0LmRlZmF1bHRbXCJlblwiXS53ZWVrZGF5cy5zaG9ydGhhbmQgYXMgc3RyaW5nW10pID0gbGFuZ3VhZ2VzLmRlZmF1bHQuZGVmYXVsdFtcImVuXCJdLndlZWtkYXlzLmxvbmdoYW5kLm1hcChkYXkgPT4ge1xuXHRcdGlmIChkYXkgPT09IFwiVGh1cnNkYXlcIikge1xuXHRcdFx0cmV0dXJuIFwiVGhcIjtcblx0XHR9XG5cdFx0cmV0dXJuIGRheS5jaGFyQXQoMCk7XG5cdH0pO1xufVxuXG4vKipcbiAqIFtTZWUgZGVtb10oLi4vLi4vP3BhdGg9L3N0b3J5L2NvbXBvbmVudHMtZGF0ZS1waWNrZXItLXNpbmdsZSlcbiAqL1xuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiBcImNkcy1kYXRlLXBpY2tlciwgaWJtLWRhdGUtcGlja2VyXCIsXG5cdHRlbXBsYXRlOiBgXG5cdDxkaXYgY2xhc3M9XCJjZHMtLWZvcm0taXRlbVwiPlxuXHRcdDxkaXZcblx0XHRcdGNsYXNzPVwiY2RzLS1kYXRlLXBpY2tlclwiXG5cdFx0XHRbbmdDbGFzc109XCJ7XG5cdFx0XHRcdCdjZHMtLWRhdGUtcGlja2VyLS1yYW5nZScgOiByYW5nZSxcblx0XHRcdFx0J2Nkcy0tZGF0ZS1waWNrZXItLXNpbmdsZScgOiAhcmFuZ2UsXG5cdFx0XHRcdCdjZHMtLWRhdGUtcGlja2VyLS1saWdodCcgOiB0aGVtZSA9PT0gJ2xpZ2h0Jyxcblx0XHRcdFx0J2Nkcy0tc2tlbGV0b24nIDogc2tlbGV0b25cblx0XHRcdH1cIj5cblx0XHRcdDxkaXYgY2xhc3M9XCJjZHMtLWRhdGUtcGlja2VyLWNvbnRhaW5lclwiPlxuXHRcdFx0XHQ8Y2RzLWRhdGUtcGlja2VyLWlucHV0XG5cdFx0XHRcdFx0I2lucHV0XG5cdFx0XHRcdFx0W2xhYmVsXT1cImxhYmVsXCJcblx0XHRcdFx0XHRbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuXHRcdFx0XHRcdFtwYXR0ZXJuXT1cImlucHV0UGF0dGVyblwiXG5cdFx0XHRcdFx0W2lkXT1cImlkICsgJy1pbnB1dCdcIlxuXHRcdFx0XHRcdFtzaXplXT1cInNpemVcIlxuXHRcdFx0XHRcdFt0eXBlXT1cIihyYW5nZSA/ICdyYW5nZScgOiAnc2luZ2xlJylcIlxuXHRcdFx0XHRcdFtoYXNJY29uXT1cIihyYW5nZSA/IGZhbHNlIDogdHJ1ZSlcIlxuXHRcdFx0XHRcdFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG5cdFx0XHRcdFx0W2ludmFsaWRdPVwiaW52YWxpZFwiXG5cdFx0XHRcdFx0W2ludmFsaWRUZXh0XT1cImludmFsaWRUZXh0XCJcblx0XHRcdFx0XHRbd2Fybl09XCJ3YXJuXCJcblx0XHRcdFx0XHRbd2FyblRleHRdPVwid2FyblRleHRcIlxuXHRcdFx0XHRcdFtza2VsZXRvbl09XCJza2VsZXRvblwiXG5cdFx0XHRcdFx0W2hlbHBlclRleHRdPVwiaGVscGVyVGV4dFwiXG5cdFx0XHRcdFx0KHZhbHVlQ2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG5cdFx0XHRcdFx0KGNsaWNrKT1cIm9wZW5DYWxlbmRhcihpbnB1dClcIj5cblx0XHRcdFx0PC9jZHMtZGF0ZS1waWNrZXItaW5wdXQ+XG5cdFx0XHQ8L2Rpdj5cblxuXHRcdFx0PGRpdiAqbmdJZj1cInJhbmdlXCIgY2xhc3M9XCJjZHMtLWRhdGUtcGlja2VyLWNvbnRhaW5lclwiPlxuXHRcdFx0XHQ8Y2RzLWRhdGUtcGlja2VyLWlucHV0XG5cdFx0XHRcdFx0I3JhbmdlSW5wdXRcblx0XHRcdFx0XHRbbGFiZWxdPVwicmFuZ2VMYWJlbFwiXG5cdFx0XHRcdFx0W3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcblx0XHRcdFx0XHRbcGF0dGVybl09XCJpbnB1dFBhdHRlcm5cIlxuXHRcdFx0XHRcdFtpZF09XCJpZCArICctcmFuZ2VJbnB1dCdcIlxuXHRcdFx0XHRcdFtzaXplXT1cInNpemVcIlxuXHRcdFx0XHRcdFt0eXBlXT1cIihyYW5nZSA/ICdyYW5nZScgOiAnc2luZ2xlJylcIlxuXHRcdFx0XHRcdFtoYXNJY29uXT1cIihyYW5nZSA/IHRydWUgOiBudWxsKVwiXG5cdFx0XHRcdFx0W2Rpc2FibGVkXT1cImRpc2FibGVkXCJcblx0XHRcdFx0XHRbaW52YWxpZF09XCJyYW5nZUludmFsaWRcIlxuXHRcdFx0XHRcdFtpbnZhbGlkVGV4dF09XCJyYW5nZUludmFsaWRUZXh0XCJcblx0XHRcdFx0XHRbd2Fybl09XCJyYW5nZVdhcm5cIlxuXHRcdFx0XHRcdFt3YXJuVGV4dF09XCJyYW5nZVdhcm5UZXh0XCJcblx0XHRcdFx0XHRbc2tlbGV0b25dPVwic2tlbGV0b25cIlxuXHRcdFx0XHRcdFtoZWxwZXJUZXh0XT1cInJhbmdlSGVscGVyVGV4dFwiXG5cdFx0XHRcdFx0KHZhbHVlQ2hhbmdlKT1cIm9uUmFuZ2VWYWx1ZUNoYW5nZSgkZXZlbnQpXCJcblx0XHRcdFx0XHQoY2xpY2spPVwib3BlbkNhbGVuZGFyKHJhbmdlSW5wdXQpXCI+XG5cdFx0XHRcdDwvY2RzLWRhdGUtcGlja2VyLWlucHV0PlxuXHRcdFx0PC9kaXY+XG5cdFx0PC9kaXY+XG5cdDwvZGl2PlxuXHRgLFxuXHRwcm92aWRlcnM6IFtcblx0XHR7XG5cdFx0XHRwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcblx0XHRcdHVzZUV4aXN0aW5nOiBEYXRlUGlja2VyLFxuXHRcdFx0bXVsdGk6IHRydWVcblx0XHR9XG5cdF0sXG5cdGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgRGF0ZVBpY2tlciBpbXBsZW1lbnRzXG5cdE9uSW5pdCxcblx0T25EZXN0cm95LFxuXHRPbkNoYW5nZXMsXG5cdEFmdGVyVmlld0NoZWNrZWQsXG5cdEFmdGVyVmlld0luaXQge1xuXHRwcml2YXRlIHN0YXRpYyBkYXRlUGlja2VyQ291bnQgPSAwO1xuXG5cdC8qKlxuXHQgKiBTZWxlY3QgY2FsZW5kYXIgcmFuZ2UgbW9kZVxuXHQgKi9cblx0QElucHV0KCkgcmFuZ2UgPSBmYWxzZTtcblxuXHQvKipcblx0ICogRm9ybWF0IG9mIGRhdGVcblx0ICpcblx0ICogRm9yIHJlZmVyZW5jZTogaHR0cHM6Ly9mbGF0cGlja3IuanMub3JnL2Zvcm1hdHRpbmcvXG5cdCAqL1xuXHRASW5wdXQoKSBkYXRlRm9ybWF0ID0gXCJtL2QvWVwiO1xuXG5cdC8qKlxuXHQgKiBMYW5ndWFnZSBvZiB0aGUgZmxhdHBpY2tyIGNhbGVuZGFyLlxuXHQgKlxuXHQgKiBGb3IgcmVmZXJlbmNlIG9mIHRoZSBwb3NzaWJsZSBsb2NhbGVzOlxuXHQgKiBodHRwczovL2dpdGh1Yi5jb20vZmxhdHBpY2tyL2ZsYXRwaWNrci9ibG9iL21hc3Rlci9zcmMvbDEwbi9pbmRleC50c1xuXHQgKi9cblx0QElucHV0KCkgbGFuZ3VhZ2UgPSBcImVuXCI7XG5cblx0QElucHV0KCkgbGFiZWw6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT47XG5cdEBJbnB1dCgpIGhlbHBlclRleHQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT47XG5cdEBJbnB1dCgpIHJhbmdlSGVscGVyVGV4dDogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55Pjtcblx0QElucHV0KCkgcmFuZ2VMYWJlbDogc3RyaW5nO1xuXG5cdEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gXCJtbS9kZC95eXl5XCI7XG5cblx0LyoqXG5cdCAqIEFyaWEgbGFiZWwgYWRkZWQgdG8gZGF0ZXBpY2tlcidzIGNhbGVuZGFyIGNvbnRhaW5lci5cblx0ICovXG5cdEBJbnB1dCgpIGFyaWFMYWJlbCA9IFwiY2FsZW5kYXIgY29udGFpbmVyXCI7XG5cblx0LyoqXG5cdCAqIFRoZSBwYXR0ZXJuIGZvciB0aGUgdW5kZXJseWluZyBpbnB1dCBlbGVtZW50XG5cdCAqL1xuXHRASW5wdXQoKSBpbnB1dFBhdHRlcm4gPSBcIl5cXFxcZHsxLDJ9L1xcXFxkezEsMn0vXFxcXGR7NH0kXCI7XG5cblx0QElucHV0KCkgaWQgPSBgZGF0ZXBpY2tlci0ke0RhdGVQaWNrZXIuZGF0ZVBpY2tlckNvdW50Kyt9YDtcblxuXHRASW5wdXQoKSBzZXQgdmFsdWUodjogKERhdGUgfCBzdHJpbmcpW10pIHtcblx0XHRpZiAoIXYpIHtcblx0XHRcdHYgPSBbXTtcblx0XHR9XG5cdFx0dGhpcy5fdmFsdWUgPSB2O1xuXHR9XG5cblx0Z2V0IHZhbHVlKCkge1xuXHRcdHJldHVybiB0aGlzLl92YWx1ZTtcblx0fVxuXG5cdC8qKlxuXHQgKiBAZGVwcmVjYXRlZCBzaW5jZSB2NSAtIFVzZSBgY2RzTGF5ZXJgIGRpcmVjdGl2ZSBpbnN0ZWFkXG5cdCAqIFNldCB0byBgXCJsaWdodFwiYCB0byBhcHBseSB0aGUgbGlnaHQgc3R5bGVcblx0ICovXG5cdEBJbnB1dCgpIHRoZW1lOiBcImxpZ2h0XCIgfCBcImRhcmtcIiA9IFwiZGFya1wiO1xuXG5cdEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG5cdC8qKlxuXHQgKiBTZXQgdG8gYHRydWVgIHRvIGRpc3BsYXkgdGhlIGludmFsaWQgc3RhdGUuXG5cdCAqL1xuXHRASW5wdXQoKSBpbnZhbGlkID0gZmFsc2U7XG5cdC8qKlxuXHQgKiBWYWx1ZSBkaXNwbGF5ZWQgaWYgZGF0ZXBpY2tlciBpcyBpbiBhbiBpbnZhbGlkIHN0YXRlLlxuXHQgKi9cblx0QElucHV0KCkgaW52YWxpZFRleHQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT47XG5cdC8qKlxuXHQgICogU2V0IHRvIGB0cnVlYCB0byBzaG93IGEgd2FybmluZyAoY29udGVudHMgc2V0IGJ5IHdhcm5pbmdUZXh0KVxuXHQgICovXG5cdEBJbnB1dCgpIHdhcm4gPSBmYWxzZTtcblx0LyoqXG5cdCAqIFNldHMgdGhlIHdhcm5pbmcgdGV4dFxuXHQgKi9cblx0QElucHV0KCkgd2FyblRleHQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT47XG5cblx0QElucHV0KCkgc2l6ZTogXCJzbVwiIHwgXCJtZFwiIHwgXCJsZ1wiID0gXCJtZFwiO1xuXHQvKipcblx0ICogU2V0IHRvIGB0cnVlYCB0byBkaXNwbGF5IHRoZSBpbnZhbGlkIHN0YXRlIGZvciB0aGUgc2Vjb25kIGRhdGVwaWNrZXIgaW5wdXQuXG5cdCAqL1xuXHRASW5wdXQoKSByYW5nZUludmFsaWQgPSBmYWxzZTtcblx0LyoqXG5cdCAqIFZhbHVlIGRpc3BsYXllZCBpZiB0aGUgc2Vjb25kIGRhdGVwaWNrZXIgaW5wdXQgaXMgaW4gYW4gaW52YWxpZCBzdGF0ZS5cblx0ICovXG5cdEBJbnB1dCgpIHJhbmdlSW52YWxpZFRleHQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT47XG5cdC8qKlxuXHQgICogU2V0IHRvIGB0cnVlYCB0byBzaG93IGEgd2FybmluZyBpbiB0aGUgc2Vjb25kIGRhdGVwaWNrZXIgaW5wdXQgKGNvbnRlbnRzIHNldCBieSByYW5nZVdhcm5pbmdUZXh0KVxuXHQgICovXG5cdEBJbnB1dCgpIHJhbmdlV2FybiA9IGZhbHNlO1xuXHQvKipcblx0ICogU2V0cyB0aGUgd2FybmluZyB0ZXh0IGZvciB0aGUgc2Vjb25kIGRhdGVwaWNrZXIgaW5wdXRcblx0ICovXG5cdEBJbnB1dCgpIHJhbmdlV2FyblRleHQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT47XG5cblx0QElucHV0KCkgc2tlbGV0b24gPSBmYWxzZTtcblxuXHRASW5wdXQoKSBwbHVnaW5zID0gW107XG5cblx0QElucHV0KClcblx0c2V0IGZsYXRwaWNrck9wdGlvbnMob3B0aW9ucykge1xuXHRcdHRoaXMuX2ZsYXRwaWNrck9wdGlvbnMgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLl9mbGF0cGlja3JPcHRpb25zLCBvcHRpb25zKTtcblx0fVxuXHRnZXQgZmxhdHBpY2tyT3B0aW9ucygpIHtcblx0XHRjb25zdCBwbHVnaW5zID0gWy4uLnRoaXMucGx1Z2lucywgY2FyYm9uRmxhdHBpY2tyTW9udGhTZWxlY3RQbHVnaW5dO1xuXHRcdGlmICh0aGlzLnJhbmdlKSB7XG5cdFx0XHRwbHVnaW5zLnB1c2gocmFuZ2VQbHVnaW4oeyBpbnB1dDogYCMke3RoaXMuaWR9LXJhbmdlSW5wdXRgLCBwb3NpdGlvbjogXCJsZWZ0XCIgfSkpO1xuXHRcdH1cblx0XHRyZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5fZmxhdHBpY2tyT3B0aW9ucywgdGhpcy5mbGF0cGlja3JCYXNlT3B0aW9ucywge1xuXHRcdFx0bW9kZTogdGhpcy5yYW5nZSA/IFwicmFuZ2VcIiA6IFwic2luZ2xlXCIsXG5cdFx0XHRwbHVnaW5zLFxuXHRcdFx0ZGF0ZUZvcm1hdDogdGhpcy5kYXRlRm9ybWF0LFxuXHRcdFx0bG9jYWxlOiBsYW5ndWFnZXMuZGVmYXVsdD8uZGVmYXVsdFt0aGlzLmxhbmd1YWdlXSB8fCBsYW5ndWFnZXMuZGVmYXVsdFt0aGlzLmxhbmd1YWdlXVxuXHRcdH0pO1xuXHR9XG5cblx0QFZpZXdDaGlsZChcImlucHV0XCIsIHsgc3RhdGljOiB0cnVlIH0pIGlucHV0OiBEYXRlUGlja2VySW5wdXQ7XG5cdEBWaWV3Q2hpbGQoXCJyYW5nZUlucHV0XCIpIHJhbmdlSW5wdXQ6IERhdGVQaWNrZXJJbnB1dDtcblxuXHRAT3V0cHV0KCkgdmFsdWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG5cdC8qKlxuXHQgKiBXZSBhcmUgb3ZlcnJpZGluZyBvbkNsb3NlIGV2ZW50IGV2ZW4gaWYgdXNlcnMgcGFzcyBpdCB2aWEgZmxhdHBpY2tyIG9wdGlvbnNcblx0ICogRW1pdHMgYW4gZXZlbnQgd2hlbiBkYXRlIHBpY2tlciBjbG9zZXNcblx0ICovXG5cdEBPdXRwdXQoKSBvbkNsb3NlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuXHRwcm90ZWN0ZWQgX3ZhbHVlID0gW107XG5cblx0cHJvdGVjdGVkIF9mbGF0cGlja3JPcHRpb25zID0ge1xuXHRcdGFsbG93SW5wdXQ6IHRydWVcblx0fTtcblxuXHRwcm90ZWN0ZWQgZmxhdHBpY2tyQmFzZU9wdGlvbnMgPSB7XG5cdFx0bW9kZTogXCJzaW5nbGVcIixcblx0XHRkYXRlRm9ybWF0OiBcIm0vZC9ZXCIsXG5cdFx0cGx1Z2luczogdGhpcy5wbHVnaW5zLFxuXHRcdG9uT3BlbjogKCkgPT4ge1xuXHRcdFx0dGhpcy51cGRhdGVDbGFzc05hbWVzKCk7XG5cdFx0XHR0aGlzLnVwZGF0ZUF0dHJpYnV0ZXMoKTtcblx0XHRcdHRoaXMudXBkYXRlQ2FsZW5kYXJMaXN0ZW5lcnMoKTtcblx0XHR9LFxuXHRcdG9uQ2xvc2U6IChkYXRlKSA9PiB7XG5cdFx0XHQvLyBUaGlzIG1ha2VzIHN1cmUgdGhhdCB0aGUgYGZsYXRwaWNrckluc3RhbmNlIHNlbGVjdGVkRGF0ZXNgIGFyZSBpbiBzeW5jIHdpdGggdGhlIHZhbHVlcyBvZlxuXHRcdFx0Ly8gdGhlIGlucHV0cyB3aGVuIHRoZSBjYWxlbmRhciBjbG9zZXMuXG5cdFx0XHRpZiAodGhpcy5yYW5nZSAmJiB0aGlzLmZsYXRwaWNrckluc3RhbmNlKSB7XG5cdFx0XHRcdGlmICh0aGlzLmZsYXRwaWNrckluc3RhbmNlLnNlbGVjdGVkRGF0ZXMubGVuZ3RoICE9PSAyKSB7XG5cdFx0XHRcdFx0Ly8gd2UgY291bGQgYHRoaXMuZmxhdHBpY2tySW5zdGFuY2UuY2xlYXIoKWAgYnV0IGl0IGluc2lzdHMgb24gb3BlbmluZyB0aGUgc2Vjb25kIHBpY2tlclxuXHRcdFx0XHRcdC8vIGluIHNvbWUgY2FzZXMsIHNvIGluc3RlYWQgd2UgZG8gdGhpc1xuXHRcdFx0XHRcdHRoaXMuc2V0RGF0ZVZhbHVlcyhbXSk7XG5cdFx0XHRcdFx0dGhpcy5kb1NlbGVjdChbXSk7XG5cdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGNvbnN0IGlucHV0VmFsdWUgPSB0aGlzLmlucHV0LmlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWU7XG5cdFx0XHRcdGNvbnN0IHJhbmdlSW5wdXRWYWx1ZSA9IHRoaXMucmFuZ2VJbnB1dC5pbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlO1xuXHRcdFx0XHRpZiAoaW5wdXRWYWx1ZSB8fCByYW5nZUlucHV0VmFsdWUpIHtcblx0XHRcdFx0XHRjb25zdCBwYXJzZURhdGUgPSAoZGF0ZTogc3RyaW5nKSA9PiB0aGlzLmZsYXRwaWNrckluc3RhbmNlLnBhcnNlRGF0ZShkYXRlLCB0aGlzLmRhdGVGb3JtYXQpO1xuXHRcdFx0XHRcdHRoaXMuc2V0RGF0ZVZhbHVlcyhbcGFyc2VEYXRlKGlucHV0VmFsdWUpLCBwYXJzZURhdGUocmFuZ2VJbnB1dFZhbHVlKV0pO1xuXHRcdFx0XHRcdHRoaXMuZG9TZWxlY3QodGhpcy5mbGF0cGlja3JJbnN0YW5jZS5zZWxlY3RlZERhdGVzKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0dGhpcy5vbkNsb3NlLmVtaXQoZGF0ZSk7XG5cdFx0fSxcblx0XHRvbkRheUNyZWF0ZTogKF9kT2JqLCBfZFN0ciwgX2ZwLCBkYXlFbGVtKSA9PiB7XG5cdFx0XHRkYXlFbGVtLmNsYXNzTGlzdC5hZGQoXCJjZHMtLWRhdGUtcGlja2VyX19kYXlcIik7XG5cdFx0fSxcblx0XHRuZXh0QXJyb3c6IHRoaXMucmlnaHRBcnJvd0hUTUwoKSxcblx0XHRwcmV2QXJyb3c6IHRoaXMubGVmdEFycm93SFRNTCgpLFxuXHRcdHZhbHVlOiB0aGlzLnZhbHVlXG5cdH07XG5cblx0cHJvdGVjdGVkIGZsYXRwaWNrckluc3RhbmNlID0gbnVsbDtcblxuXHRjb25zdHJ1Y3Rvcihcblx0XHRwcm90ZWN0ZWQgZWxlbWVudFJlZjogRWxlbWVudFJlZixcblx0XHRwcm90ZWN0ZWQgaTE4bjogSTE4blxuXHQpIHsgfVxuXG5cdG5nT25Jbml0KCkge1xuXHRcdC8vIGlmIGkxOG4gaXMgc2V0IHRvIGFueXRoaW5nIG90aGVyIHRoYW4gZW4gd2UnbGwgd2FudCB0byBjaGFuZ2UgdGhlIGxhbmd1YWdlXG5cdFx0Ly8gb3RoZXJ3aXNlIHdlJ2xsIGp1c3QgdXNlIHRoZSBsb2NhbCBzZXR0aW5nXG5cdFx0aWYgKHRoaXMuaTE4bi5nZXRMb2NhbGUoKSAhPT0gXCJlblwiKSB7XG5cdFx0XHR0aGlzLmkxOG4uZ2V0TG9jYWxlT2JzZXJ2YWJsZSgpLnN1YnNjcmliZShsb2NhbGUgPT4ge1xuXHRcdFx0XHR0aGlzLmxhbmd1YWdlID0gbG9jYWxlO1xuXHRcdFx0XHR0aGlzLnJlc2V0RmxhdHBpY2tySW5zdGFuY2UoKTtcblx0XHRcdH0pO1xuXHRcdH1cblx0fVxuXG5cdG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcblx0XHQvLyBSZXNldCB0aGUgZmxhdHBpY2tyIGluc3RhbmNlIG9uIGlucHV0IGNoYW5nZXMgdGhhdCBhZmZlY3QgZmxhdHBpY2tyLlxuXHRcdGNvbnN0IGZsYXRwaWNrckNoYW5nZUtleXMgPSBbXG5cdFx0XHRcInJhbmdlXCIsXG5cdFx0XHRcImRhdGVGb3JtYXRcIixcblx0XHRcdFwibGFuZ3VhZ2VcIixcblx0XHRcdFwiaWRcIixcblx0XHRcdFwidmFsdWVcIixcblx0XHRcdFwicGx1Z2luc1wiLFxuXHRcdFx0XCJmbGF0cGlja3JPcHRpb25zXCJcblx0XHRdO1xuXHRcdGNvbnN0IGNoYW5nZUtleXMgPSBPYmplY3Qua2V5cyhjaGFuZ2VzKTtcblx0XHRpZiAoY2hhbmdlS2V5cy5zb21lKGtleSA9PiBmbGF0cGlja3JDaGFuZ2VLZXlzLmluY2x1ZGVzKGtleSkpKSB7XG5cdFx0XHR0aGlzLnJlc2V0RmxhdHBpY2tySW5zdGFuY2UoY2hhbmdlcy52YWx1ZSk7XG5cdFx0fVxuXHR9XG5cblx0bmdBZnRlclZpZXdJbml0KCkge1xuXHRcdHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0dGhpcy5hZGRJbnB1dExpc3RlbmVycygpO1xuXHRcdH0sIDApO1xuXHR9XG5cblx0Ly8gYmVjYXVzZSB0aGUgYWN0dWFsIHZpZXcgbWF5IGJlIGRlbGF5ZWQgaW4gbG9hZGluZyAodGhpbmsgcHJvamVjdGlvbiBpbnRvIGEgdGFiIHBhbmUpXG5cdC8vIGFuZCBiZWNhdXNlIHdlIHJlbHkgb24gYSBsaWJyYXJ5IHRoYXQgb3BlcmF0ZXMgb3V0c2lkZSB0aGUgQW5ndWxhciB2aWV3IG9mIHRoZSB3b3JsZFxuXHQvLyB3ZSBuZWVkIHRvIGtlZXAgdHJ5aW5nIHRvIGxvYWQgdGhlIGxpYnJhcnksIHVudGlsIHRoZSByZWxldmFudCBET00gaXMgYWN0dWFsbHkgbGl2ZVxuXHRuZ0FmdGVyVmlld0NoZWNrZWQoKSB7XG5cdFx0aWYgKCF0aGlzLmlzRmxhdHBpY2tyTG9hZGVkKCkpIHtcblx0XHRcdC8vIEB0cy1pZ25vcmUgdHMgaXMgdW5oYXBweSB3aXRoIHRoZSBiZWxvdyBjYWxsIHRvIGBmbGF0cGlja3JgXG5cdFx0XHR0aGlzLmZsYXRwaWNrckluc3RhbmNlID0gZmxhdHBpY2tyKGAjJHt0aGlzLmlkfS1pbnB1dGAsIHRoaXMuZmxhdHBpY2tyT3B0aW9ucyk7XG5cdFx0XHQvLyBpZiAoYW5kIG9ubHkgaWYpIHRoZSBpbml0aWFsaXphdGlvbiBzdWNjZWVkZWQsIHdlIGNhbiBzZXQgdGhlIGRhdGUgdmFsdWVzXG5cdFx0XHRpZiAodGhpcy5pc0ZsYXRwaWNrckxvYWRlZCgpKSB7XG5cdFx0XHRcdGlmICh0aGlzLnZhbHVlLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0XHR0aGlzLnNldERhdGVWYWx1ZXModGhpcy52YWx1ZSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRASG9zdExpc3RlbmVyKFwiZm9jdXNpblwiKVxuXHRvbkZvY3VzKCkge1xuXHRcdC8vIFVwZGF0ZXMgdGhlIG1vbnRoIG1hbnVhbGx5IHdoZW4gY2FsZW5kYXIgbW9kZSBpcyByYW5nZSBiZWNhdXNlIG1vbnRoXG5cdFx0Ly8gd2lsbCBub3QgdXBkYXRlIHByb3Blcmx5IHdpdGhvdXQgbWFudWFsbHkgdXBkYXRpbmcgdGhlbSBvbiBmb2N1cy5cblx0XHRpZiAodGhpcy5yYW5nZSkge1xuXHRcdFx0aWYgKHRoaXMucmFuZ2VJbnB1dC5pbnB1dC5uYXRpdmVFbGVtZW50ID09PSBkb2N1bWVudC5hY3RpdmVFbGVtZW50ICYmIHRoaXMuZmxhdHBpY2tySW5zdGFuY2Uuc2VsZWN0ZWREYXRlc1sxXSkge1xuXHRcdFx0XHRjb25zdCBjdXJyZW50TW9udGggPSB0aGlzLmZsYXRwaWNrckluc3RhbmNlLnNlbGVjdGVkRGF0ZXNbMV0uZ2V0TW9udGgoKTtcblx0XHRcdFx0dGhpcy5mbGF0cGlja3JJbnN0YW5jZS5jaGFuZ2VNb250aChjdXJyZW50TW9udGgsIGZhbHNlKTtcblx0XHRcdH0gZWxzZSBpZiAodGhpcy5pbnB1dC5pbnB1dC5uYXRpdmVFbGVtZW50ID09PSBkb2N1bWVudC5hY3RpdmVFbGVtZW50ICYmIHRoaXMuZmxhdHBpY2tySW5zdGFuY2Uuc2VsZWN0ZWREYXRlc1swXSkge1xuXHRcdFx0XHRjb25zdCBjdXJyZW50TW9udGggPSB0aGlzLmZsYXRwaWNrckluc3RhbmNlLnNlbGVjdGVkRGF0ZXNbMF0uZ2V0TW9udGgoKTtcblx0XHRcdFx0dGhpcy5mbGF0cGlja3JJbnN0YW5jZS5jaGFuZ2VNb250aChjdXJyZW50TW9udGgsIGZhbHNlKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRASG9zdExpc3RlbmVyKFwiZm9jdXNvdXRcIilcblx0b25Gb2N1c091dCgpIHtcblx0XHR0aGlzLm9uVG91Y2hlZCgpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFdyaXRlcyBhIHZhbHVlIGZyb20gdGhlIG1vZGVsIHRvIHRoZSBjb21wb25lbnQuIEV4cGVjdHMgdGhlIHZhbHVlIHRvIGJlIGBudWxsYCBvciBgKERhdGUgfCBzdHJpbmcpW11gXG5cdCAqIEBwYXJhbSB2YWx1ZSB2YWx1ZSByZWNlaXZlZCBmcm9tIHRoZSBtb2RlbFxuXHQgKi9cblx0d3JpdGVWYWx1ZSh2YWx1ZTogKERhdGUgfCBzdHJpbmcpW10pIHtcblx0XHR0aGlzLnZhbHVlID0gdmFsdWU7XG5cdFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHRpZiAodGhpcy5pc0ZsYXRwaWNrckxvYWRlZCgpICYmIHRoaXMuZmxhdHBpY2tySW5zdGFuY2UuY29uZmlnKSB7XG5cdFx0XHRcdHRoaXMuc2V0RGF0ZVZhbHVlcyh0aGlzLnZhbHVlKTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBgQ29udHJvbFZhbHVlQWNjZXNzb3JgIG1ldGhvZCB0byBwcm9ncmFtbWF0aWNhbGx5IGRpc2FibGUgdGhlIERhdGVQaWNrZXIuXG5cdCAqXG5cdCAqIGV4OiBgdGhpcy5mb3JtR3JvdXAuZ2V0KFwibXlEYXRlUGlja2VyXCIpLmRpc2FibGUoKTtgXG5cdCAqXG5cdCAqIEBwYXJhbSBpc0Rpc2FibGVkIGB0cnVlYCB0byBkaXNhYmxlIHRoZSBEYXRlUGlja2VyXG5cdCAqL1xuXHRzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pIHtcblx0XHR0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcblx0fVxuXG5cdHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xuXHRcdHRoaXMucHJvcGFnYXRlQ2hhbmdlID0gZm47XG5cdH1cblxuXHRyZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KSB7XG5cdFx0dGhpcy5vblRvdWNoZWQgPSBmbjtcblx0fVxuXG5cdG9uVG91Y2hlZDogKCkgPT4gYW55ID0gKCkgPT4geyB9O1xuXG5cdHByb3BhZ2F0ZUNoYW5nZSA9IChfOiBhbnkpID0+IHsgfTtcblxuXHQvKipcblx0ICogQ2xlYW5zIHVwIG91ciBmbGF0cGlja3IgaW5zdGFuY2Vcblx0ICovXG5cdG5nT25EZXN0cm95KCkge1xuXHRcdGlmICghdGhpcy5pc0ZsYXRwaWNrckxvYWRlZCgpKSB7IHJldHVybjsgfVxuXHRcdHRoaXMuZmxhdHBpY2tySW5zdGFuY2UuZGVzdHJveSgpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEhhbmRsZXMgdGhlIGB2YWx1ZUNoYW5nZWAgZXZlbnQgZnJvbSB0aGUgcHJpbWFyeS9zaW5nbGUgaW5wdXRcblx0ICovXG5cdG9uVmFsdWVDaGFuZ2UoZXZlbnQ6IHN0cmluZykge1xuXHRcdGlmICh0aGlzLmlzRmxhdHBpY2tyTG9hZGVkKCkpIHtcblx0XHRcdGNvbnN0IGRhdGUgPSB0aGlzLmZsYXRwaWNrckluc3RhbmNlLnBhcnNlRGF0ZShldmVudCwgdGhpcy5kYXRlRm9ybWF0KTtcblx0XHRcdGlmICh0aGlzLnJhbmdlKSB7XG5cdFx0XHRcdHRoaXMuc2V0RGF0ZVZhbHVlcyhbZGF0ZSwgdGhpcy5mbGF0cGlja3JJbnN0YW5jZS5zZWxlY3RlZERhdGVzWzFdXSk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR0aGlzLnNldERhdGVWYWx1ZXMoW2RhdGVdKTtcblx0XHRcdH1cblx0XHRcdHRoaXMuZG9TZWxlY3QodGhpcy5mbGF0cGlja3JJbnN0YW5jZS5zZWxlY3RlZERhdGVzKTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogSGFuZGxlcyB0aGUgYHZhbHVlQ2hhbmdlYCBldmVudCBmcm9tIHRoZSByYW5nZSBpbnB1dFxuXHQgKi9cblx0b25SYW5nZVZhbHVlQ2hhbmdlKGV2ZW50OiBzdHJpbmcpIHtcblx0XHRpZiAodGhpcy5pc0ZsYXRwaWNrckxvYWRlZCgpICYmIHRoaXMuZmxhdHBpY2tySW5zdGFuY2UuaXNPcGVuKSB7XG5cdFx0XHRjb25zdCBkYXRlID0gdGhpcy5mbGF0cGlja3JJbnN0YW5jZS5wYXJzZURhdGUoZXZlbnQsIHRoaXMuZGF0ZUZvcm1hdCk7XG5cdFx0XHR0aGlzLnNldERhdGVWYWx1ZXMoW3RoaXMuZmxhdHBpY2tySW5zdGFuY2Uuc2VsZWN0ZWREYXRlc1swXSwgZGF0ZV0pO1xuXHRcdFx0dGhpcy5kb1NlbGVjdCh0aGlzLmZsYXRwaWNrckluc3RhbmNlLnNlbGVjdGVkRGF0ZXMpO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBIYW5kbGVzIG9wZW5pbmcgdGhlIGNhbGVuZGFyIFwicHJvcGVybHlcIiB3aGVuIHRoZSBjYWxlbmRhciBpY29uIGlzIGNsaWNrZWQuXG5cdCAqL1xuXHRvcGVuQ2FsZW5kYXIoZGF0ZXBpY2tlcklucHV0OiBEYXRlUGlja2VySW5wdXQpIHtcblx0XHRpZiAodGhpcy5yYW5nZSkge1xuXHRcdFx0ZGF0ZXBpY2tlcklucHV0LmlucHV0Lm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcblxuXHRcdFx0Ly8gSWYgdGhlIGZpcnN0IGlucHV0J3MgY2FsZW5kYXIgaWNvbiBpcyBjbGlja2VkIHdoZW4gY2FsZW5kYXIgaXMgaW4gcmFuZ2UgbW9kZSwgdGhlblxuXHRcdFx0Ly8gdGhlIG1vbnRoIGFuZCB5ZWFyIG5lZWRzIHRvIGJlIG1hbnVhbGx5IGNoYW5nZWQgdG8gdGhlIGN1cnJlbnQgc2VsZWN0ZWQgbW9udGggYW5kXG5cdFx0XHQvLyB5ZWFyIG90aGVyd2lzZSB0aGUgY2FsZW5kYXIgdmlldyB3aWxsIG5vdCBiZSB1cGRhdGVkIHVwb24gb3BlbmluZy5cblx0XHRcdGlmIChkYXRlcGlja2VySW5wdXQgPT09IHRoaXMuaW5wdXQgJiYgdGhpcy5mbGF0cGlja3JJbnN0YW5jZS5zZWxlY3RlZERhdGVzWzBdKSB7XG5cdFx0XHRcdGNvbnN0IGN1cnJlbnRNb250aCA9IHRoaXMuZmxhdHBpY2tySW5zdGFuY2Uuc2VsZWN0ZWREYXRlc1swXS5nZXRNb250aCgpO1xuXG5cdFx0XHRcdHRoaXMuZmxhdHBpY2tySW5zdGFuY2UuY3VycmVudFllYXIgPSB0aGlzLmZsYXRwaWNrckluc3RhbmNlLnNlbGVjdGVkRGF0ZXNbMF0uZ2V0RnVsbFllYXIoKTtcblx0XHRcdFx0dGhpcy5mbGF0cGlja3JJbnN0YW5jZS5jaGFuZ2VNb250aChjdXJyZW50TW9udGgsIGZhbHNlKTtcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0Ly8gU2luZ2xlLW1vZGUgZmxhdHBpY2tyIGhhbmRsZXMgbW91c2Vkb3duIGJ1dCBub3QgY2xpY2ssIHNvIG5hdGl2ZUVsZW1lbnQuY2xpY2soKSB3b24ndFxuXHRcdFx0Ly8gd29yayB3aGVuIHRoZSBjYWxlbmRhciBpY29uIGlzIGNsaWNrZWQuIEluIHRoaXMgY2FzZSB3ZSBzaW1wbHkgdXNlIGZsYXRwaWNrci5vcGVuKCkuXG5cdFx0XHR0aGlzLmZsYXRwaWNrckluc3RhbmNlLm9wZW4oKTtcblx0XHR9XG5cdH1cblxuXHRwcm90ZWN0ZWQgdXBkYXRlQ2FsZW5kYXJMaXN0ZW5lcnMoKSB7XG5cdFx0Y29uc3QgY2FsZW5kYXJDb250YWluZXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiLmZsYXRwaWNrci1jYWxlbmRhclwiKTtcblx0XHRBcnJheS5mcm9tKGNhbGVuZGFyQ29udGFpbmVyKS5mb3JFYWNoKGNhbGVuZGFyID0+IHtcblx0XHRcdGNhbGVuZGFyLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCB0aGlzLnByZXZlbnRDYWxlbmRhckNsb3NlKTtcblx0XHRcdGNhbGVuZGFyLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCB0aGlzLnByZXZlbnRDYWxlbmRhckNsb3NlKTtcblx0XHR9KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBIYW5kbGVzIHRoZSBpbml0aWFsaXphdGlvbiBvZiBldmVudCBsaXN0ZW5lcnMgZm9yIHRoZSBkYXRlcGlja2VyIGlucHV0IGFuZCByYW5nZSBpbnB1dCBmaWVsZHMuXG5cdCAqL1xuXHRwcm90ZWN0ZWQgYWRkSW5wdXRMaXN0ZW5lcnMoKSB7XG5cdFx0aWYgKCF0aGlzLmlzRmxhdHBpY2tyTG9hZGVkKCkpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHQvLyBBbGxvd3MgZm9jdXMgdHJhbnNpdGlvbiBmcm9tIHRoZSBkYXRlcGlja2VyIGlucHV0IG9yIHJhbmdlIGlucHV0IGZpZWxkIHRvXG5cdFx0Ly8gZmxhdHBpY2tyIGNhbGVuZGFyIHVzaW5nIGEga2V5Ym9hcmQuXG5cdFx0Y29uc3QgYWRkRm9jdXNDYWxlbmRhckxpc3RlbmVyID0gKGVsZW1lbnQ6IEhUTUxJbnB1dEVsZW1lbnQpID0+IHtcblx0XHRcdGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIiwgKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG5cdFx0XHRcdGlmIChldmVudC5rZXkgPT09IFwiQXJyb3dEb3duXCIpIHtcblx0XHRcdFx0XHRpZiAoIXRoaXMuZmxhdHBpY2tySW5zdGFuY2UuaXNPcGVuKSB7XG5cdFx0XHRcdFx0XHR0aGlzLmZsYXRwaWNrckluc3RhbmNlLm9wZW4oKTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRjb25zdCBjYWxlbmRhckNvbnRhaW5lciA9IHRoaXMuZmxhdHBpY2tySW5zdGFuY2UuY2FsZW5kYXJDb250YWluZXI7XG5cdFx0XHRcdFx0Y29uc3QgZGF5RWxlbWVudCA9IGNhbGVuZGFyQ29udGFpbmVyICYmIGNhbGVuZGFyQ29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoXCIuZmxhdHBpY2tyLWRheVt0YWJpbmRleF1cIik7XG5cblx0XHRcdFx0XHRpZiAoZGF5RWxlbWVudCkge1xuXHRcdFx0XHRcdFx0ZGF5RWxlbWVudC5mb2N1cygpO1xuXG5cdFx0XHRcdFx0XHQvLyBJZiB0aGUgdXNlciBtYW51YWxseSBpbnB1dHMgYSB2YWx1ZSBpbnRvIHRoZSBkYXRlIGZpZWxkIGFuZCBwcmVzc2VzIGFycm93IGRvd24sXG5cdFx0XHRcdFx0XHQvLyBkYXRlcGlja2VyIGlucHV0IG9uY2hhbmdlIHdpbGwgYmUgdHJpZ2dlcmVkIHdoZW4gZm9jdXMgaXMgcmVtb3ZlZCBmcm9tIGl0IGFuZFxuXHRcdFx0XHRcdFx0Ly8gYGZsYXRwaWNrckluc3RhbmNlLnNldERhdGVgIGFuZCBgZmxhdHBpY2tySW5zdGFuY2UuY2hhbmdlTW9udGhgIHdpbGwgYmUgaW52b2tlZFxuXHRcdFx0XHRcdFx0Ly8gd2hpY2ggd2lsbCBhdXRvbWF0aWNhbGx5IGNoYW5nZSBmb2N1cyB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBkb2N1bWVudC5cblx0XHRcdFx0XHRcdGlmIChkb2N1bWVudC5hY3RpdmVFbGVtZW50ICE9PSBkYXlFbGVtZW50ICYmIHRoaXMuZmxhdHBpY2tySW5zdGFuY2Uuc2VsZWN0ZWREYXRlRWxlbSkge1xuXHRcdFx0XHRcdFx0XHR0aGlzLmZsYXRwaWNrckluc3RhbmNlLnNlbGVjdGVkRGF0ZUVsZW0uZm9jdXMoKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdH07XG5cblx0XHRpZiAodGhpcy5pbnB1dCAmJiB0aGlzLmlucHV0LmlucHV0KSB7XG5cdFx0XHRhZGRGb2N1c0NhbGVuZGFyTGlzdGVuZXIodGhpcy5pbnB1dC5pbnB1dC5uYXRpdmVFbGVtZW50KTtcblx0XHR9XG5cblx0XHRpZiAodGhpcy5yYW5nZUlucHV0ICYmIHRoaXMucmFuZ2VJbnB1dC5pbnB1dCkge1xuXHRcdFx0YWRkRm9jdXNDYWxlbmRhckxpc3RlbmVyKHRoaXMucmFuZ2VJbnB1dC5pbnB1dC5uYXRpdmVFbGVtZW50KTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogUmVzZXRzIHRoZSBmbGF0cGlja3IgaW5zdGFuY2Ugd2hpbGUga2VlcGluZyB0aGUgZGF0ZSB2YWx1ZXMgKG9yIHVwZGF0aW5nIHRoZW0gaWYgbmV3RGF0ZXMgaXMgcHJvdmlkZWQpXG5cdCAqXG5cdCAqIFVzZWQgdG8gcGljayB1cCBpbnB1dCBjaGFuZ2VzIG9yIGxvY2FsZSBjaGFuZ2VzLlxuXHQgKlxuXHQgKiBAcGFyYW0gbmV3RGF0ZXMgQW4gb3B0aW9uYWwgU2ltcGxlQ2hhbmdlIG9mIGRhdGUgdmFsdWVzXG5cdCAqL1xuXHRwcm90ZWN0ZWQgcmVzZXRGbGF0cGlja3JJbnN0YW5jZShuZXdEYXRlcz86IFNpbXBsZUNoYW5nZSkge1xuXHRcdGlmICh0aGlzLmlzRmxhdHBpY2tyTG9hZGVkKCkpIHtcblx0XHRcdGxldCBkYXRlcyA9IHRoaXMuZmxhdHBpY2tySW5zdGFuY2Uuc2VsZWN0ZWREYXRlcztcblx0XHRcdGlmIChuZXdEYXRlcyAmJiB0aGlzLmRpZERhdGVWYWx1ZUNoYW5nZShuZXdEYXRlcy5jdXJyZW50VmFsdWUsIG5ld0RhdGVzLnByZXZpb3VzVmFsdWUpKSB7XG5cdFx0XHRcdGRhdGVzID0gbmV3RGF0ZXMuY3VycmVudFZhbHVlO1xuXHRcdFx0fVxuXHRcdFx0Ly8gb25seSByZXNldCB0aGUgZmxhdHBpY2tyIGluc3RhbmNlIG9uIElucHV0IGNoYW5nZXNcblx0XHRcdC8vIEB0cy1pZ25vcmUgdHMgaXMgdW5oYXBweSB3aXRoIHRoZSBiZWxvdyBjYWxsIHRvIGBmbGF0cGlja3JgXG5cdFx0XHR0aGlzLmZsYXRwaWNrckluc3RhbmNlID0gZmxhdHBpY2tyKGAjJHt0aGlzLmlkfS1pbnB1dGAsIHRoaXMuZmxhdHBpY2tyT3B0aW9ucyk7XG5cdFx0XHR0aGlzLnNldERhdGVWYWx1ZXMoZGF0ZXMpO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBDYXJib24gdXNlcyBhIG51bWJlciBvZiBzcGVjaWZpYyBjbGFzc25hbWVzIGZvciBwYXJ0cyBvZiB0aGUgZmxhdHBpY2tyIC0gdGhpcyBpZGVtcG90ZW50IG1ldGhvZCBhcHBsaWVzIHRoZW0gaWYgbmVlZGVkLlxuXHQgKi9cblx0cHJvdGVjdGVkIHVwZGF0ZUNsYXNzTmFtZXMoKSB7XG5cdFx0aWYgKCF0aGlzLmVsZW1lbnRSZWYpIHsgcmV0dXJuOyB9XG5cdFx0Ly8gZ2V0IGFsbCB0aGUgcG9zc2libGUgZmxhdHBpY2tycyBpbiB0aGUgZG9jdW1lbnQgLSB3ZSBuZWVkIHRvIGFkZCBjbGFzc2VzIHRvIChwb3RlbnRpYWxseSkgYWxsIG9mIHRoZW1cblx0XHRjb25zdCBjYWxlbmRhckNvbnRhaW5lciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCIuZmxhdHBpY2tyLWNhbGVuZGFyXCIpO1xuXHRcdGNvbnN0IG1vbnRoQ29udGFpbmVyID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcIi5mbGF0cGlja3ItbW9udGhcIik7XG5cdFx0Y29uc3Qgd2Vla2RheXNDb250YWluZXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiLmZsYXRwaWNrci13ZWVrZGF5c1wiKTtcblx0XHRjb25zdCB3ZWVrZGF5Q29udGFpbmVyID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcIi5mbGF0cGlja3Itd2Vla2RheVwiKTtcblx0XHRjb25zdCBkYXlzQ29udGFpbmVyID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcIi5mbGF0cGlja3ItZGF5c1wiKTtcblx0XHRjb25zdCBkYXlDb250YWluZXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiLmZsYXRwaWNrci1kYXlcIik7XG5cblx0XHQvLyBhZGQgY2xhc3NlcyB0byBsaXN0cyBvZiBlbGVtZW50c1xuXHRcdGNvbnN0IGFkZENsYXNzSWZOb3RFeGlzdHMgPSAoY2xhc3NuYW1lOiBzdHJpbmcsIGVsZW1lbnRMaXN0OiBOb2RlTGlzdE9mPEVsZW1lbnQ+KSA9PiB7XG5cdFx0XHRBcnJheS5mcm9tKGVsZW1lbnRMaXN0KS5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuXHRcdFx0XHRpZiAoIWVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKGNsYXNzbmFtZSkpIHtcblx0XHRcdFx0XHRlbGVtZW50LmNsYXNzTGlzdC5hZGQoY2xhc3NuYW1lKTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0fTtcblxuXHRcdC8vIGFkZCBjbGFzc2VzIChidXQgb25seSBpZiB0aGV5IGRvbid0IGV4aXN0LCBzbWFsbCBwZXJmIHdpbilcblx0XHRhZGRDbGFzc0lmTm90RXhpc3RzKFwiY2RzLS1kYXRlLXBpY2tlcl9fY2FsZW5kYXJcIiwgY2FsZW5kYXJDb250YWluZXIpO1xuXHRcdGFkZENsYXNzSWZOb3RFeGlzdHMoXCJjZHMtLWRhdGUtcGlja2VyX19tb250aFwiLCBtb250aENvbnRhaW5lcik7XG5cdFx0YWRkQ2xhc3NJZk5vdEV4aXN0cyhcImNkcy0tZGF0ZS1waWNrZXJfX3dlZWtkYXlzXCIsIHdlZWtkYXlzQ29udGFpbmVyKTtcblx0XHRhZGRDbGFzc0lmTm90RXhpc3RzKFwiY2RzLS1kYXRlLXBpY2tlcl9fZGF5c1wiLCBkYXlzQ29udGFpbmVyKTtcblxuXHRcdC8vIGFkZCB3ZWVrZGF5IGNsYXNzZXMgYW5kIGZvcm1hdCB0aGUgdGV4dFxuXHRcdEFycmF5LmZyb20od2Vla2RheUNvbnRhaW5lcikuZm9yRWFjaChlbGVtZW50ID0+IHtcblx0XHRcdGVsZW1lbnQuaW5uZXJIVE1MID0gZWxlbWVudC5pbm5lckhUTUwucmVwbGFjZSgvXFxzKy9nLCBcIlwiKTtcblx0XHRcdGVsZW1lbnQuY2xhc3NMaXN0LmFkZChcImNkcy0tZGF0ZS1waWNrZXJfX3dlZWtkYXlcIik7XG5cdFx0fSk7XG5cblx0XHQvLyBhZGQgZGF5IGNsYXNzZXMgYW5kIHNwZWNpYWwgY2FzZSB0aGUgXCJ0b2RheVwiIGVsZW1lbnQgYmFzZWQgb24gYHRoaXMudmFsdWVgXG5cdFx0QXJyYXkuZnJvbShkYXlDb250YWluZXIpLmZvckVhY2goZWxlbWVudCA9PiB7XG5cdFx0XHRlbGVtZW50LmNsYXNzTGlzdC5hZGQoXCJjZHMtLWRhdGUtcGlja2VyX19kYXlcIik7XG5cdFx0XHRpZiAoIXRoaXMudmFsdWUpIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdFx0aWYgKGVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKFwidG9kYXlcIikgJiYgdGhpcy52YWx1ZS5sZW5ndGggPiAwKSB7XG5cdFx0XHRcdGVsZW1lbnQuY2xhc3NMaXN0LmFkZChcIm5vLWJvcmRlclwiKTtcblx0XHRcdH0gZWxzZSBpZiAoZWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoXCJ0b2RheVwiKSAmJiB0aGlzLnZhbHVlLmxlbmd0aCA9PT0gMCkge1xuXHRcdFx0XHRlbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoXCJuby1ib3JkZXJcIik7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblxuXHRwcm90ZWN0ZWQgdXBkYXRlQXR0cmlidXRlcygpIHtcblx0XHRjb25zdCBjYWxlbmRhckNvbnRhaW5lciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCIuZmxhdHBpY2tyLWNhbGVuZGFyXCIpO1xuXHRcdEFycmF5LmZyb20oY2FsZW5kYXJDb250YWluZXIpLmZvckVhY2goY2FsZW5kYXIgPT4ge1xuXHRcdFx0Y2FsZW5kYXIuc2V0QXR0cmlidXRlKFwicm9sZVwiLCBcInJlZ2lvblwiKTtcblx0XHRcdGNhbGVuZGFyLnNldEF0dHJpYnV0ZShcImFyaWEtbGFiZWxcIiwgdGhpcy5hcmlhTGFiZWwpO1xuXHRcdH0pO1xuXHR9XG5cblx0LyoqXG5cdCAqIEFwcGxpZXMgdGhlIGdpdmVuIGRhdGUgdmFsdWUgYXJyYXkgdG8gYm90aCB0aGUgZmxhdHBpY2tyIGluc3RhbmNlIGFuZCB0aGUgYGlucHV0YChzKVxuXHQgKiBAcGFyYW0gZGF0ZXMgdGhlIGRhdGUgdmFsdWVzIHRvIGFwcGx5XG5cdCAqL1xuXHRwcm90ZWN0ZWQgc2V0RGF0ZVZhbHVlcyhkYXRlczogKERhdGUgfCBzdHJpbmcpW10pIHtcblx0XHRpZiAodGhpcy5pc0ZsYXRwaWNrckxvYWRlZCgpKSB7XG5cdFx0XHRjb25zdCBzaW5nbGVJbnB1dCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoYCMke3RoaXMuaWR9LWlucHV0YCk7XG5cdFx0XHRjb25zdCByYW5nZUlucHV0ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihgIyR7dGhpcy5pZH0tcmFuZ2VJbnB1dGApO1xuXG5cdFx0XHQvLyBgZmxhdHBpY2tySW5zdGFuY2Uuc2V0RGF0ZWAgcmVtb3ZlcyB0aGUgZm9jdXMgb24gdGhlIHNlbGVjdGVkIGRhdGUgZWxlbWVudCBhbmQgd2lsbFxuXHRcdFx0Ly8gYXV0b21hdGljYWxseSBjaGFuZ2UgZm9jdXMgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgZG9jdW1lbnQuIElmIGEgc2VsZWN0ZWQgZGF0ZSBpc1xuXHRcdFx0Ly8gZm9jdXNlZCBiZWZvcmUgYGZsYXRwaWNrckluc3RhbmNlLnNldERhdGVgIGlzIGludm9rZWQgdGhlbiBpdCBzaG91bGQgcmVtYWluIGZvY3VzZWQuXG5cdFx0XHRsZXQgc2hvdWxkUmVmb2N1c0RhdGVFbGVtZW50ID0gdGhpcy5mbGF0cGlja3JJbnN0YW5jZS5zZWxlY3RlZERhdGVFbGVtID09PSBkb2N1bWVudC5hY3RpdmVFbGVtZW50O1xuXG5cdFx0XHQvLyBzZXQgdGhlIGRhdGUgb24gdGhlIGluc3RhbmNlXG5cdFx0XHR0aGlzLmZsYXRwaWNrckluc3RhbmNlLnNldERhdGUoZGF0ZXMpO1xuXG5cdFx0XHRpZiAoc2hvdWxkUmVmb2N1c0RhdGVFbGVtZW50KSB7XG5cdFx0XHRcdHRoaXMuZmxhdHBpY2tySW5zdGFuY2Uuc2VsZWN0ZWREYXRlRWxlbS5mb2N1cygpO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyB3ZSBjYW4gZWl0aGVyIHNldCBhIGRhdGUgdmFsdWUgb3IgYW4gZW1wdHkgc3RyaW5nLCBzbyB3ZSBzdGFydCB3aXRoIGFuIGVtcHR5IHN0cmluZ1xuXHRcdFx0bGV0IHNpbmdsZURhdGUgPSBcIlwiO1xuXHRcdFx0Ly8gaWYgZGF0ZSBpcyBhIHN0cmluZywgcGFyc2UgYW5kIGZvcm1hdFxuXHRcdFx0aWYgKHR5cGVvZiB0aGlzLmZsYXRwaWNrckluc3RhbmNlLnNlbGVjdGVkRGF0ZXNbMF0gPT09IFwic3RyaW5nXCIpIHtcblx0XHRcdFx0c2luZ2xlRGF0ZSA9IHRoaXMuZmxhdHBpY2tySW5zdGFuY2UucGFyc2VEYXRlKHRoaXMuZmxhdHBpY2tySW5zdGFuY2Uuc2VsZWN0ZWREYXRlc1swXSwgdGhpcy5kYXRlRm9ybWF0KTtcblx0XHRcdFx0c2luZ2xlRGF0ZSA9IHRoaXMuZmxhdHBpY2tySW5zdGFuY2UuZm9ybWF0RGF0ZShzaW5nbGVEYXRlLCB0aGlzLmRhdGVGb3JtYXQpO1xuXHRcdFx0Ly8gaWYgZGF0ZSBpcyBub3QgYSBzdHJpbmcgd2UgY2FuIGFzc3VtZSBpdCdzIGEgRGF0ZSBhbmQgd2Ugc2hvdWxkIGZvcm1hdFxuXHRcdFx0fSBlbHNlIGlmICghIXRoaXMuZmxhdHBpY2tySW5zdGFuY2Uuc2VsZWN0ZWREYXRlc1swXSkge1xuXHRcdFx0XHRzaW5nbGVEYXRlID0gdGhpcy5mbGF0cGlja3JJbnN0YW5jZS5mb3JtYXREYXRlKHRoaXMuZmxhdHBpY2tySW5zdGFuY2Uuc2VsZWN0ZWREYXRlc1swXSwgdGhpcy5kYXRlRm9ybWF0KTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKHJhbmdlSW5wdXQpIHtcblx0XHRcdFx0Ly8gd2UgY2FuIGVpdGhlciBzZXQgYSBkYXRlIHZhbHVlIG9yIGFuIGVtcHR5IHN0cmluZywgc28gd2Ugc3RhcnQgd2l0aCBhbiBlbXB0eSBzdHJpbmdcblx0XHRcdFx0bGV0IHJhbmdlRGF0ZSA9IFwiXCI7XG5cdFx0XHRcdC8vIGlmIGRhdGUgaXMgYSBzdHJpbmcsIHBhcnNlIGFuZCBmb3JtYXRcblx0XHRcdFx0aWYgKHR5cGVvZiB0aGlzLmZsYXRwaWNrckluc3RhbmNlLnNlbGVjdGVkRGF0ZXNbMV0gPT09IFwic3RyaW5nXCIpIHtcblx0XHRcdFx0XHRyYW5nZURhdGUgPSB0aGlzLmZsYXRwaWNrckluc3RhbmNlLnBhcnNlRGF0ZSh0aGlzLmZsYXRwaWNrckluc3RhbmNlLnNlbGVjdGVkRGF0ZXNbMV0udG9TdHJpbmcoKSwgdGhpcy5kYXRlRm9ybWF0KTtcblx0XHRcdFx0XHRyYW5nZURhdGUgPSB0aGlzLmZsYXRwaWNrckluc3RhbmNlLmZvcm1hdERhdGUocmFuZ2VEYXRlLCB0aGlzLmRhdGVGb3JtYXQpO1xuXHRcdFx0XHQvLyBpZiBkYXRlIGlzIG5vdCBhIHN0cmluZyB3ZSBjYW4gYXNzdW1lIGl0J3MgYSBEYXRlIGFuZCB3ZSBzaG91bGQgZm9ybWF0XG5cdFx0XHRcdH0gZWxzZSBpZiAoISF0aGlzLmZsYXRwaWNrckluc3RhbmNlLnNlbGVjdGVkRGF0ZXNbMV0pIHtcblx0XHRcdFx0XHRyYW5nZURhdGUgPSB0aGlzLmZsYXRwaWNrckluc3RhbmNlLmZvcm1hdERhdGUodGhpcy5mbGF0cGlja3JJbnN0YW5jZS5zZWxlY3RlZERhdGVzWzFdLCB0aGlzLmRhdGVGb3JtYXQpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0XHRcdC8vIGFwcGx5IHRoZSB2YWx1ZXNcblx0XHRcdFx0XHRyYW5nZUlucHV0LnZhbHVlID0gcmFuZ2VEYXRlO1xuXHRcdFx0XHRcdHNpbmdsZUlucHV0LnZhbHVlID0gc2luZ2xlRGF0ZTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0cHJvdGVjdGVkIHByZXZlbnRDYWxlbmRhckNsb3NlID0gZXZlbnQgPT4gZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cblx0cHJvdGVjdGVkIGRvU2VsZWN0KHNlbGVjdGVkVmFsdWU6IChEYXRlIHwgc3RyaW5nKVtdKSB7XG5cdFx0Ly8gSW4gcmFuZ2UgbW9kZSwgaWYgYSBkYXRlIGlzIHNlbGVjdGVkIGZyb20gdGhlIGZpcnN0IGNhbGVuZGFyIHRoYXQgaXMgZnJvbSB0aGUgcHJldmlvdXMgbW9udGgsXG5cdFx0Ly8gdGhlIG1vbnRoIHdpbGwgbm90IGJlIHVwZGF0ZWQgb24gdGhlIGNhbGVuZGFyIHVudGlsIHRoZSBjYWxlbmRhciBpcyByZS1vcGVuZWQuXG5cdFx0Ly8gVGhpcyB3aWxsIG1ha2Ugc3VyZSB0aGUgY2FsZW5kYXIgaXMgdXBkYXRlZCB3aXRoIHRoZSBjb3JyZWN0IG1vbnRoLlxuXHRcdGlmICh0aGlzLnJhbmdlICYmIHRoaXMuZmxhdHBpY2tySW5zdGFuY2Uuc2VsZWN0ZWREYXRlc1swXSkge1xuXHRcdFx0Y29uc3QgY3VycmVudE1vbnRoID0gdGhpcy5mbGF0cGlja3JJbnN0YW5jZS5zZWxlY3RlZERhdGVzWzBdLmdldE1vbnRoKCk7XG5cblx0XHRcdC8vIGBmbGF0cGlja3JJbnN0YW5jZS5jaGFuZ2VNb250aGAgcmVtb3ZlcyB0aGUgZm9jdXMgb24gdGhlIHNlbGVjdGVkIGRhdGUgZWxlbWVudCBhbmQgd2lsbFxuXHRcdFx0Ly8gYXV0b21hdGljYWxseSBjaGFuZ2UgZm9jdXMgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgZG9jdW1lbnQuIElmIGEgc2VsZWN0ZWQgZGF0ZSBpc1xuXHRcdFx0Ly8gZm9jdXNlZCBiZWZvcmUgYGZsYXRwaWNrckluc3RhbmNlLmNoYW5nZU1vbnRoYCBpcyBpbnZva2VkIHRoZW4gaXQgc2hvdWxkIHJlbWFpbiBmb2N1c2VkLlxuXHRcdFx0bGV0IHNob3VsZFJlZm9jdXNEYXRlRWxlbWVudCA9IHRoaXMuZmxhdHBpY2tySW5zdGFuY2Uuc2VsZWN0ZWREYXRlRWxlbSA9PT0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtcblxuXHRcdFx0dGhpcy5mbGF0cGlja3JJbnN0YW5jZS5jaGFuZ2VNb250aChjdXJyZW50TW9udGgsIGZhbHNlKTtcblxuXHRcdFx0aWYgKHNob3VsZFJlZm9jdXNEYXRlRWxlbWVudCkge1xuXHRcdFx0XHR0aGlzLmZsYXRwaWNrckluc3RhbmNlLnNlbGVjdGVkRGF0ZUVsZW0uZm9jdXMoKTtcblx0XHRcdH1cblxuXHRcdH1cblx0XHR0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoc2VsZWN0ZWRWYWx1ZSk7XG5cdFx0dGhpcy5wcm9wYWdhdGVDaGFuZ2Uoc2VsZWN0ZWRWYWx1ZSk7XG5cdH1cblxuXHRwcm90ZWN0ZWQgZGlkRGF0ZVZhbHVlQ2hhbmdlKGN1cnJlbnRWYWx1ZSwgcHJldmlvdXNWYWx1ZSkge1xuXHRcdHJldHVybiBjdXJyZW50VmFsdWVbMF0gIT09IHByZXZpb3VzVmFsdWVbMF0gfHwgY3VycmVudFZhbHVlWzFdICE9PSBwcmV2aW91c1ZhbHVlWzFdO1xuXHR9XG5cblx0LyoqXG5cdCAqIE1vcmUgYWR2YW5jZWQgY2hlY2tpbmcgb2YgdGhlIGxvYWRlZCBzdGF0ZSBvZiBmbGF0cGlja3Jcblx0ICovXG5cdHByb3RlY3RlZCBpc0ZsYXRwaWNrckxvYWRlZCgpIHtcblx0XHQvLyBjYXN0IHRoZSBpbnN0YW5jZSB0byBhIGJvb2xlYW4sIGFuZCBzb21lIG1ldGhvZCB0aGF0IGhhcyB0byBleGlzdCBmb3IgdGhlIGxpYnJhcnkgdG8gYmUgbG9hZGVkIGluIHRoaXMgY2FzZSBgc2V0RGF0ZWBcblx0XHRyZXR1cm4gISF0aGlzLmZsYXRwaWNrckluc3RhbmNlICYmICEhdGhpcy5mbGF0cGlja3JJbnN0YW5jZS5zZXREYXRlO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJpZ2h0IGFycm93IEhUTUwgcGFzc2VkIHRvIGZsYXRwaWNrclxuXHQgKi9cblx0cHJvdGVjdGVkIHJpZ2h0QXJyb3dIVE1MKCkge1xuXHRcdHJldHVybiBgXG5cdFx0XHQ8c3ZnIHdpZHRoPVwiMTZweFwiIGhlaWdodD1cIjE2cHhcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCI+XG5cdFx0XHRcdDxwb2x5Z29uIHBvaW50cz1cIjExLDggNiwxMyA1LjMsMTIuMyA5LjYsOCA1LjMsMy43IDYsMyBcIi8+XG5cdFx0XHRcdDxyZWN0IHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHN0eWxlPVwiZmlsbDpub25lXCIgLz5cblx0XHRcdDwvc3ZnPmA7XG5cdH1cblxuXHQvKipcblx0ICogTGVmdCBhcnJvdyBIVE1MIHBhc3NlZCB0byBmbGF0cGlja3Jcblx0ICovXG5cdHByb3RlY3RlZCBsZWZ0QXJyb3dIVE1MKCkge1xuXHRcdHJldHVybiBgXG5cdFx0XHQ8c3ZnIHdpZHRoPVwiMTZweFwiIGhlaWdodD1cIjE2cHhcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCI+XG5cdFx0XHRcdDxwb2x5Z29uIHBvaW50cz1cIjUsOCAxMCwzIDEwLjcsMy43IDYuNCw4IDEwLjcsMTIuMyAxMCwxMyBcIi8+XG5cdFx0XHRcdDxyZWN0IHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHN0eWxlPVwiZmlsbDpub25lXCIgLz5cblx0XHRcdDwvc3ZnPmA7XG5cdH1cbn1cbiJdfQ==
|
|
@@ -209,13 +209,13 @@ Pagination.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "1
|
|
|
209
209
|
</svg>
|
|
210
210
|
</div>
|
|
211
211
|
</ng-container>
|
|
212
|
-
<span *ngIf="!pagesUnknown && totalDataLength <= 1" class="cds--pagination__text" [ngStyle]="{'margin-left': showPageInput ? null : 0}">
|
|
212
|
+
<span *ngIf="!pagesUnknown && totalDataLength <= 1" class="cds--pagination__text cds--pagination__items-count" [ngStyle]="{'margin-left': showPageInput ? null : 0}">
|
|
213
213
|
{{totalItemText.subject | i18nReplace:{start: startItemIndex, end: endItemIndex, total: totalDataLength } | async}}
|
|
214
214
|
</span>
|
|
215
|
-
<span *ngIf="!pagesUnknown && totalDataLength > 1" class="cds--pagination__text" [ngStyle]="{'margin-left': showPageInput ? null : 0}">
|
|
215
|
+
<span *ngIf="!pagesUnknown && totalDataLength > 1" class="cds--pagination__text cds--pagination__items-count" [ngStyle]="{'margin-left': showPageInput ? null : 0}">
|
|
216
216
|
{{totalItemsText.subject | i18nReplace:{start: startItemIndex, end: endItemIndex, total: totalDataLength } | async}}
|
|
217
217
|
</span>
|
|
218
|
-
<span *ngIf="pagesUnknown" class="cds--pagination__text" [ngStyle]="{'margin-left': showPageInput ? null : 0}">
|
|
218
|
+
<span *ngIf="pagesUnknown" class="cds--pagination__text cds--pagination__items-count" [ngStyle]="{'margin-left': showPageInput ? null : 0}">
|
|
219
219
|
{{totalItemsUnknownText.subject | i18nReplace:{start: startItemIndex, end: endItemIndex } | async}}
|
|
220
220
|
</span>
|
|
221
221
|
</div>
|
|
@@ -352,13 +352,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
352
352
|
</svg>
|
|
353
353
|
</div>
|
|
354
354
|
</ng-container>
|
|
355
|
-
<span *ngIf="!pagesUnknown && totalDataLength <= 1" class="cds--pagination__text" [ngStyle]="{'margin-left': showPageInput ? null : 0}">
|
|
355
|
+
<span *ngIf="!pagesUnknown && totalDataLength <= 1" class="cds--pagination__text cds--pagination__items-count" [ngStyle]="{'margin-left': showPageInput ? null : 0}">
|
|
356
356
|
{{totalItemText.subject | i18nReplace:{start: startItemIndex, end: endItemIndex, total: totalDataLength } | async}}
|
|
357
357
|
</span>
|
|
358
|
-
<span *ngIf="!pagesUnknown && totalDataLength > 1" class="cds--pagination__text" [ngStyle]="{'margin-left': showPageInput ? null : 0}">
|
|
358
|
+
<span *ngIf="!pagesUnknown && totalDataLength > 1" class="cds--pagination__text cds--pagination__items-count" [ngStyle]="{'margin-left': showPageInput ? null : 0}">
|
|
359
359
|
{{totalItemsText.subject | i18nReplace:{start: startItemIndex, end: endItemIndex, total: totalDataLength } | async}}
|
|
360
360
|
</span>
|
|
361
|
-
<span *ngIf="pagesUnknown" class="cds--pagination__text" [ngStyle]="{'margin-left': showPageInput ? null : 0}">
|
|
361
|
+
<span *ngIf="pagesUnknown" class="cds--pagination__text cds--pagination__items-count" [ngStyle]="{'margin-left': showPageInput ? null : 0}">
|
|
362
362
|
{{totalItemsUnknownText.subject | i18nReplace:{start: startItemIndex, end: endItemIndex } | async}}
|
|
363
363
|
</span>
|
|
364
364
|
</div>
|
|
@@ -470,4 +470,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
470
470
|
}], selectPage: [{
|
|
471
471
|
type: Output
|
|
472
472
|
}] } });
|
|
473
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ04sU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBSXZCLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7Ozs7QUFjeEQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFCRztBQStJSCxNQUFNLE9BQU8sVUFBVTtJQXdKdEIsWUFBc0IsSUFBVSxFQUFZLFlBQWlDO1FBQXZELFNBQUksR0FBSixJQUFJLENBQU07UUFBWSxpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFySjdFOztXQUVHO1FBQ00sYUFBUSxHQUFHLEtBQUssQ0FBQztRQUsxQjs7V0FFRztRQUNNLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDMUI7O1dBRUc7UUFDTSxzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFDbkM7O1dBRUc7UUFDTSxrQkFBYSxHQUFHLElBQUksQ0FBQztRQUM5Qjs7V0FFRztRQUNNLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLHdCQUFtQixHQUFHLElBQUksQ0FBQztRQWlDcEM7Ozs7V0FJRztRQUNNLHdCQUFtQixHQUFhLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRTlEOzs7OztXQUtHO1FBQ08sZUFBVSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUErRGxELHlCQUFvQixHQUFHLG9DQUFvQyxVQUFVLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUMxRix3QkFBbUIsR0FBRyxrQ0FBa0MsVUFBVSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFFdkYscUJBQWdCLEdBQUcsSUFBSSxDQUFDLElBQUks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c0JBQXJCLEtBQUs7Z0JBSUcsWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBbUJGLFlBQVk7c0JBRGYsS0FBSztnQkFvQkcsbUJBQW1CO3NCQUEzQixLQUFLO2dCQVFJLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQYWdpbmF0aW9uTW9kZWwgfSBmcm9tIFwiLi9wYWdpbmF0aW9uLW1vZGVsLmNsYXNzXCI7XG5pbXBvcnQge1xuXHRDb21wb25lbnQsXG5cdElucHV0LFxuXHRPdXRwdXQsXG5cdEV2ZW50RW1pdHRlclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5pbXBvcnQgeyBJMThuLCBPdmVycmlkYWJsZSB9IGZyb20gXCJjYXJib24tY29tcG9uZW50cy1hbmd1bGFyL2kxOG5cIjtcbmltcG9ydCB7IEV4cGVyaW1lbnRhbFNlcnZpY2UgfSBmcm9tIFwiY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhci9leHBlcmltZW50YWxcIjtcbmltcG9ydCB7IG1lcmdlIH0gZnJvbSBcImNhcmJvbi1jb21wb25lbnRzLWFuZ3VsYXIvdXRpbHNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBQYWdpbmF0aW9uVHJhbnNsYXRpb25zIHtcblx0SVRFTVNfUEVSX1BBR0U6IHN0cmluZztcblx0T1BFTl9MSVNUX09GX09QVElPTlM6IHN0cmluZztcblx0QkFDS1dBUkQ6IHN0cmluZztcblx0Rk9SV0FSRDogc3RyaW5nO1xuXHRUT1RBTF9JVEVNU19VTktOT1dOOiBzdHJpbmc7XG5cdFRPVEFMX0lURU1TOiBzdHJpbmc7XG5cdFRPVEFMX0lURU06IHN0cmluZztcblx0T0ZfTEFTVF9QQUdFUzogc3RyaW5nO1xuXHRPRl9MQVNUX1BBR0U6IHN0cmluZztcbn1cblxuLyoqXG4gKiBVc2UgcGFnaW5hdGlvbiB3aGVuIHlvdSBoYXZlIG11bHRpcGxlIHBhZ2VzIG9mIGRhdGEgdG8gaGFuZGxlLlxuICpcbiAqIFtTZWUgZGVtb10oLi4vLi4vP3BhdGg9L3N0b3J5L2NvbXBvbmVudHMtcGFnaW5hdGlvbi0tYmFzaWMpXG4gKlxuICogYGBgaHRtbFxuICpcdDxjZHMtcGFnaW5hdGlvbiBbbW9kZWxdPVwibW9kZWxcIiAoc2VsZWN0UGFnZSk9XCJzZWxlY3RQYWdlKCRldmVudClcIj48L2Nkcy1wYWdpbmF0aW9uPlxuICogYGBgXG4gKlxuICogSW4geW91ciBgc2VsZWN0UGFnZSgpYCBtZXRob2Qgc2V0IHRoZSBgbW9kZWwuY3VycmVudFBhZ2VgIHRvIHNlbGVjdGVkIHBhZ2UsIF9hZnRlcl9cbiAqIHlvdSBsb2FkIHRoZSBwYWdlLlxuICpcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIHNlbGVjdFBhZ2UocGFnZSkge1xuICogXHQvLyAuLi4geW91ciBjb2RlIHRvIGxvYWQgdGhlIHBhZ2UgZ29lcyBoZXJlXG4gKlxuICogXHR0aGlzLm1vZGVsLmN1cnJlbnRQYWdlID0gcGFnZTtcbiAqXG4gKiBcdC8vIC4uLiBhbnl0aGluZyB5b3Ugd2FudCB0byBkbyBhZnRlciBwYWdlIHNlbGVjdGlvbiBjaGFuZ2VzIGdvZXMgaGVyZVxuICogfVxuICogYGBgXG4gKi9cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogXCJjZHMtcGFnaW5hdGlvbiwgaWJtLXBhZ2luYXRpb25cIixcblx0dGVtcGxhdGU6IGBcblx0PGRpdlxuXHRcdGNsYXNzPVwiY2RzLS1wYWdpbmF0aW9uXCJcblx0XHRbbmdDbGFzc109XCJ7XG5cdFx0XHQnY2RzLS1za2VsZXRvbic6IHNrZWxldG9uXG5cdFx0fVwiPlxuXHRcdDwhLS0gbGVmdCBza2VsZXRvbiBkaXYgLS0+XG5cdFx0PGRpdiAqbmdJZj1cInNrZWxldG9uXCIgY2xhc3M9XCJjZHMtLXBhZ2luYXRpb25fX2xlZnRcIj5cblx0XHRcdDxwIGNsYXNzPVwiY2RzLS1za2VsZXRvbl9fdGV4dFwiIHN0eWxlPVwid2lkdGg6IDcwcHhcIj48L3A+XG5cdFx0XHQ8cCBjbGFzcz1cImNkcy0tc2tlbGV0b25fX3RleHRcIiBzdHlsZT1cIndpZHRoOiAzNXB4XCI+PC9wPlxuXHRcdFx0PHAgY2xhc3M9XCJjZHMtLXNrZWxldG9uX190ZXh0XCIgc3R5bGU9XCJ3aWR0aDogMTA1cHhcIj48L3A+XG5cdFx0PC9kaXY+XG5cblx0XHQ8ZGl2ICpuZ0lmPVwiIXNrZWxldG9uXCIgY2xhc3M9XCJjZHMtLXBhZ2luYXRpb25fX2xlZnRcIj5cblx0XHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCJzaG93UGFnZUlucHV0XCI+XG5cdFx0XHRcdDxsYWJlbCBjbGFzcz1cImNkcy0tcGFnaW5hdGlvbl9fdGV4dFwiIFtmb3JdPVwiaXRlbXNQZXJQYWdlU2VsZWN0SWRcIj5cblx0XHRcdFx0XHR7e2l0ZW1zUGVyUGFnZVRleHQuc3ViamVjdCB8IGFzeW5jfX1cblx0XHRcdFx0PC9sYWJlbD5cblx0XHRcdFx0PGRpdlxuXHRcdFx0XHRcdGNsYXNzPVwiY2RzLS1zZWxlY3QgY2RzLS1zZWxlY3QtLWlubGluZSBjZHMtLXNlbGVjdF9faXRlbS1jb3VudFwiXG5cdFx0XHRcdFx0W2NsYXNzLmNkcy0tc2VsZWN0LS1kaXNhYmxlZF09XCJwYWdlSW5wdXREaXNhYmxlZFwiPlxuXHRcdFx0XHRcdDxzZWxlY3Rcblx0XHRcdFx0XHRcdFtpZF09XCJpdGVtc1BlclBhZ2VTZWxlY3RJZFwiXG5cdFx0XHRcdFx0XHRbKG5nTW9kZWwpXT1cIml0ZW1zUGVyUGFnZVwiXG5cdFx0XHRcdFx0XHRbZGlzYWJsZWRdPVwicGFnZUlucHV0RGlzYWJsZWRcIlxuXHRcdFx0XHRcdFx0Y2xhc3M9XCJjZHMtLXNlbGVjdC1pbnB1dFwiPlxuXHRcdFx0XHRcdFx0PG9wdGlvblxuXHRcdFx0XHRcdFx0XHRjbGFzcz1cImNkcy0tc2VsZWN0LW9wdGlvblwiXG5cdFx0XHRcdFx0XHRcdCpuZ0Zvcj1cImxldCBvcHRpb24gb2YgaXRlbXNQZXJQYWdlT3B0aW9uc1wiXG5cdFx0XHRcdFx0XHRcdFt2YWx1ZV09XCJvcHRpb25cIj5cblx0XHRcdFx0XHRcdFx0XHR7eyBvcHRpb24gfX1cblx0XHRcdFx0XHRcdDwvb3B0aW9uPlxuXHRcdFx0XHRcdDwvc2VsZWN0PlxuXHRcdFx0XHRcdDxzdmdcblx0XHRcdFx0XHRcdGNkc0ljb249XCJjaGV2cm9uLS1kb3duXCJcblx0XHRcdFx0XHRcdHNpemU9XCIxNlwiXG5cdFx0XHRcdFx0XHRzdHlsZT1cImRpc3BsYXk6IGluaGVyaXRcIlxuXHRcdFx0XHRcdFx0Y2xhc3M9XCJjZHMtLXNlbGVjdF9fYXJyb3dcIlxuXHRcdFx0XHRcdFx0YXJpYS1oaWRkZW49XCJ0cnVlXCJcblx0XHRcdFx0XHRcdFthdHRyLmFyaWFMYWJlbF09XCJvcHRpb25zTGlzdFRleHQuc3ViamVjdCB8IGFzeW5jXCI+XG5cdFx0XHRcdFx0PC9zdmc+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0PC9uZy1jb250YWluZXI+XG5cdFx0XHQ8c3BhbiAqbmdJZj1cIiFwYWdlc1Vua25vd24gJiYgdG90YWxEYXRhTGVuZ3RoIDw9IDFcIiBjbGFzcz1cImNkcy0tcGFnaW5hdGlvbl9fdGV4dFwiIFtuZ1N0eWxlXT1cInsnbWFyZ2luLWxlZnQnOiBzaG93UGFnZUlucHV0ID8gbnVsbCA6IDB9XCI+XG5cdFx0XHRcdHt7dG90YWxJdGVtVGV4dC5zdWJqZWN0IHwgaTE4blJlcGxhY2U6e3N0YXJ0OiBzdGFydEl0ZW1JbmRleCwgZW5kOiBlbmRJdGVtSW5kZXgsIHRvdGFsOiB0b3RhbERhdGFMZW5ndGggfSB8IGFzeW5jfX1cblx0XHRcdDwvc3Bhbj5cblx0XHRcdDxzcGFuICpuZ0lmPVwiIXBhZ2VzVW5rbm93biAmJiB0b3RhbERhdGFMZW5ndGggPiAxXCIgY2xhc3M9XCJjZHMtLXBhZ2luYXRpb25fX3RleHRcIiBbbmdTdHlsZV09XCJ7J21hcmdpbi1sZWZ0Jzogc2hvd1BhZ2VJbnB1dCA/IG51bGwgOiAwfVwiPlxuXHRcdFx0XHR7e3RvdGFsSXRlbXNUZXh0LnN1YmplY3QgfCBpMThuUmVwbGFjZTp7c3RhcnQ6IHN0YXJ0SXRlbUluZGV4LCBlbmQ6IGVuZEl0ZW1JbmRleCwgdG90YWw6IHRvdGFsRGF0YUxlbmd0aCB9IHwgYXN5bmN9fVxuXHRcdFx0PC9zcGFuPlxuXHRcdFx0PHNwYW4gKm5nSWY9XCJwYWdlc1Vua25vd25cIiBjbGFzcz1cImNkcy0tcGFnaW5hdGlvbl9fdGV4dFwiIFtuZ1N0eWxlXT1cInsnbWFyZ2luLWxlZnQnOiBzaG93UGFnZUlucHV0ID8gbnVsbCA6IDB9XCI+XG5cdFx0XHRcdHt7dG90YWxJdGVtc1Vua25vd25UZXh0LnN1YmplY3QgfCBpMThuUmVwbGFjZTp7c3RhcnQ6IHN0YXJ0SXRlbUluZGV4LCBlbmQ6IGVuZEl0ZW1JbmRleCB9IHwgYXN5bmN9fVxuXHRcdFx0PC9zcGFuPlxuXHRcdDwvZGl2PlxuXG5cdFx0PCEtLSByaWdodCBza2VsZXRvbiBkaXYgLS0+XG5cdFx0PGRpdiAqbmdJZj1cInNrZWxldG9uXCIgY2xhc3M9XCJjZHMtLXBhZ2luYXRpb25fX3JpZ2h0XCI+XG5cdFx0XHQ8cCBjbGFzcz1cImNkcy0tc2tlbGV0b25fX3RleHRcIiBzdHlsZT1cIndpZHRoOiA3MHB4XCI+PC9wPlxuXHRcdDwvZGl2PlxuXG5cdFx0PGRpdiAqbmdJZj1cIiFza2VsZXRvblwiIGNsYXNzPVwiY2RzLS1wYWdpbmF0aW9uX19yaWdodFwiPlxuXHRcdFx0PHNwYW4gKm5nSWY9XCJwYWdlc1Vua25vd25cIiBjbGFzcz1cImNkcy0tcGFnaW5hdGlvbl9fdGV4dCBjZHMtLXBhZ2luYXRpb25fX3BhZ2UtdGV4dFwiPlxuXHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwiIXNob3dQYWdlSW5wdXRcIj57e2N1cnJlbnRQYWdlfX08L25nLWNvbnRhaW5lcj5cblx0XHRcdFx0e3twYWdlVGV4dC5zdWJqZWN0IHwgYXN5bmN9fVxuXHRcdFx0PC9zcGFuPlxuXHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dQYWdlSW5wdXRcIj5cblx0XHRcdFx0PGRpdlxuXHRcdFx0XHRcdGNsYXNzPVwiY2RzLS1zZWxlY3QgY2RzLS1zZWxlY3QtLWlubGluZSBjZHMtLXNlbGVjdF9fcGFnZS1udW1iZXJcIlxuXHRcdFx0XHRcdFtjbGFzcy5jZHMtLXNlbGVjdC0tZGlzYWJsZWRdPVwicGFnZUlucHV0RGlzYWJsZWRcIj5cblx0XHRcdFx0XHQ8bGFiZWwgW2Zvcl09XCJjdXJyZW50UGFnZVNlbGVjdElkXCIgY2xhc3M9XCJjZHMtLWxhYmVsIGNkcy0tdmlzdWFsbHktaGlkZGVuXCI+e3twYWdlVGV4dC5zdWJqZWN0IHwgYXN5bmN9fTwvbGFiZWw+XG5cdFx0XHRcdFx0PGlucHV0XG5cdFx0XHRcdFx0XHQqbmdJZj1cInBhZ2VPcHRpb25zLmxlbmd0aCA+IHBhZ2VTZWxlY3RUaHJlc2hvbGRcIlxuXHRcdFx0XHRcdFx0c3R5bGU9XCJwYWRkaW5nLXJpZ2h0OiAxcmVtOyBtYXJnaW4tcmlnaHQ6IDFyZW07XCJcblx0XHRcdFx0XHRcdFtpZF09XCJjdXJyZW50UGFnZVNlbGVjdElkXCJcblx0XHRcdFx0XHRcdHR5cGU9XCJudW1iZXJcIlxuXHRcdFx0XHRcdFx0bWluPVwiMVwiXG5cdFx0XHRcdFx0XHRbbWF4XT1cInBhZ2VPcHRpb25zLmxlbmd0aFwiXG5cdFx0XHRcdFx0XHRjbGFzcz1cImNkcy0tc2VsZWN0LWlucHV0XCJcblx0XHRcdFx0XHRcdFsobmdNb2RlbCldPVwiY3VycmVudFBhZ2VcIj5cblx0XHRcdFx0XHQ8c2VsZWN0XG5cdFx0XHRcdFx0XHQqbmdJZj1cInBhZ2VPcHRpb25zLmxlbmd0aCA8PSBwYWdlU2VsZWN0VGhyZXNob2xkXCJcblx0XHRcdFx0XHRcdFtpZF09XCJjdXJyZW50UGFnZVNlbGVjdElkXCJcblx0XHRcdFx0XHRcdGNsYXNzPVwiY2RzLS1zZWxlY3QtaW5wdXRcIlxuXHRcdFx0XHRcdFx0W2Rpc2FibGVkXT1cInBhZ2VJbnB1dERpc2FibGVkXCJcblx0XHRcdFx0XHRcdFsobmdNb2RlbCldPVwiY3VycmVudFBhZ2VcIj5cblx0XHRcdFx0XHRcdDxvcHRpb24gKm5nRm9yPVwibGV0IHBhZ2Ugb2YgcGFnZU9wdGlvbnM7IGxldCBpID0gaW5kZXg7XCIgY2xhc3M9XCJjZHMtLXNlbGVjdC1vcHRpb25cIiBbdmFsdWVdPVwiaSArIDFcIj57e2kgKyAxfX08L29wdGlvbj5cblx0XHRcdFx0XHQ8L3NlbGVjdD5cblx0XHRcdFx0XHQ8c3ZnXG5cdFx0XHRcdFx0XHQqbmdJZj1cInBhZ2VPcHRpb25zLmxlbmd0aCA8PSAxMDAwXCJcblx0XHRcdFx0XHRcdGNkc0ljb249XCJjaGV2cm9uLS1kb3duXCJcblx0XHRcdFx0XHRcdHNpemU9XCIxNlwiXG5cdFx0XHRcdFx0XHRzdHlsZT1cImRpc3BsYXk6IGluaGVyaXQ7XCJcblx0XHRcdFx0XHRcdGNsYXNzPVwiY2RzLS1zZWxlY3RfX2Fycm93XCJcblx0XHRcdFx0XHRcdFthdHRyLmFyaWFMYWJlbF09XCJvcHRpb25zTGlzdFRleHQuc3ViamVjdCB8IGFzeW5jXCI+XG5cdFx0XHRcdFx0PC9zdmc+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0PC9uZy1jb250YWluZXI+XG5cblx0XHRcdDxzcGFuICpuZ0lmPVwiIXBhZ2VzVW5rbm93biAmJiBsYXN0UGFnZSA8PSAxXCIgY2xhc3M9XCJjZHMtLXBhZ2luYXRpb25fX3RleHRcIj5cblx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cIiFzaG93UGFnZUlucHV0XCI+e3tjdXJyZW50UGFnZX19PC9uZy1jb250YWluZXI+XG5cdFx0XHRcdHt7b2ZMYXN0UGFnZVRleHQuc3ViamVjdCB8IGkxOG5SZXBsYWNlOiB7bGFzdDogbGFzdFBhZ2V9IHwgYXN5bmN9fVxuXHRcdFx0PC9zcGFuPlxuXHRcdFx0PHNwYW4gKm5nSWY9XCIhcGFnZXNVbmtub3duICYmIGxhc3RQYWdlID4gMVwiIGNsYXNzPVwiY2RzLS1wYWdpbmF0aW9uX190ZXh0XCI+XG5cdFx0XHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCIhc2hvd1BhZ2VJbnB1dFwiPnt7Y3VycmVudFBhZ2V9fTwvbmctY29udGFpbmVyPlxuXHRcdFx0XHR7e29mTGFzdFBhZ2VzVGV4dC5zdWJqZWN0IHwgaTE4blJlcGxhY2U6IHtsYXN0OiBsYXN0UGFnZX0gfCBhc3luY319XG5cdFx0XHQ8L3NwYW4+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwiY2RzLS1wYWdpbmF0aW9uX19jb250cm9sLWJ1dHRvbnNcIj5cblx0XHRcdFx0PGJ1dHRvblxuXHRcdFx0XHRcdGNkc0J1dHRvbj1cImdob3N0XCJcblx0XHRcdFx0XHRpY29uT25seT1cInRydWVcIlxuXHRcdFx0XHRcdGNsYXNzPVwiY2RzLS1wYWdpbmF0aW9uX19idXR0b24gY2RzLS1wYWdpbmF0aW9uX19idXR0b24tLWJhY2t3YXJkXCJcblx0XHRcdFx0XHRbbmdDbGFzc109XCJ7XG5cdFx0XHRcdFx0XHQnY2RzLS1wYWdpbmF0aW9uX19idXR0b24tLW5vLWluZGV4JzogY3VycmVudFBhZ2UgPD0gMSB8fCBkaXNhYmxlZFxuXHRcdFx0XHRcdH1cIlxuXHRcdFx0XHRcdHRhYmluZGV4PVwiMFwiXG5cdFx0XHRcdFx0W2F0dHIuYXJpYS1sYWJlbF09XCJiYWNrd2FyZFRleHQuc3ViamVjdCB8IGFzeW5jXCJcblx0XHRcdFx0XHQoY2xpY2spPVwic2VsZWN0UGFnZS5lbWl0KHByZXZpb3VzUGFnZSlcIlxuXHRcdFx0XHRcdFtkaXNhYmxlZF09XCIoY3VycmVudFBhZ2UgPD0gMSB8fCBkaXNhYmxlZCA/IHRydWUgOiBudWxsKVwiPlxuXHRcdFx0XHRcdDxzdmcgY2RzSWNvbj1cImNhcmV0LS1sZWZ0XCIgc2l6ZT1cIjE2XCIgY2xhc3M9XCJjZHMtLWJ0bl9faWNvblwiPjwvc3ZnPlxuXHRcdFx0XHQ8L2J1dHRvbj5cblxuXHRcdFx0XHQ8YnV0dG9uXG5cdFx0XHRcdFx0Y2RzQnV0dG9uPVwiZ2hvc3RcIlxuXHRcdFx0XHRcdGljb25Pbmx5PVwidHJ1ZVwiXG5cdFx0XHRcdFx0Y2xhc3M9XCJcblx0XHRcdFx0XHRcdGNkcy0tcGFnaW5hdGlvbl9fYnV0dG9uXG5cdFx0XHRcdFx0XHRjZHMtLXBhZ2luYXRpb25fX2J1dHRvbi0tZm9yd2FyZFwiXG5cdFx0XHRcdFx0W25nQ2xhc3NdPVwie1xuXHRcdFx0XHRcdFx0J2Nkcy0tcGFnaW5hdGlvbl9fYnV0dG9uLS1uby1pbmRleCc6IGN1cnJlbnRQYWdlID49IGxhc3RQYWdlIHx8IGRpc2FibGVkXG5cdFx0XHRcdFx0fVwiXG5cdFx0XHRcdFx0dGFiaW5kZXg9XCIwXCJcblx0XHRcdFx0XHRbYXR0ci5hcmlhLWxhYmVsXT1cImZvcndhcmRUZXh0LnN1YmplY3QgfCBhc3luY1wiXG5cdFx0XHRcdFx0KGNsaWNrKT1cInNlbGVjdFBhZ2UuZW1pdChuZXh0UGFnZSlcIlxuXHRcdFx0XHRcdFtkaXNhYmxlZF09XCIoY3VycmVudFBhZ2UgPj0gbGFzdFBhZ2UgfHwgZGlzYWJsZWQgPyB0cnVlIDogbnVsbClcIj5cblx0XHRcdFx0XHQ8c3ZnIGNkc0ljb249XCJjYXJldC0tcmlnaHRcIiBzaXplPVwiMTZcIiBjbGFzcz1cImNkcy0tYnRuX19pY29uXCI+PC9zdmc+XG5cdFx0XHRcdDwvYnV0dG9uPlxuXHRcdFx0PC9kaXY+XG5cdFx0PC9kaXY+XG5cdDwvZGl2PlxuXHRgXG59KVxuZXhwb3J0IGNsYXNzIFBhZ2luYXRpb24ge1xuXHRzdGF0aWMgcGFnaW5hdGlvbkNvdW50ZXIgPSAwO1xuXG5cdC8qKlxuXHQgKiBTZXQgdG8gYHRydWVgIGZvciBhIGxvYWRpbmcgcGFnaW5hdGlvbiBjb21wb25lbnQuXG5cdCAqL1xuXHRASW5wdXQoKSBza2VsZXRvbiA9IGZhbHNlO1xuXHQvKipcblx0ICogYFBhZ2luYXRpb25Nb2RlbGAgd2l0aCB0aGUgaW5mb3JtYXRpb24gYWJvdXQgcGFnZXMgeW91J3JlIGNvbnRyb2xsaW5nLlxuXHQgKi9cblx0QElucHV0KCkgbW9kZWw6IFBhZ2luYXRpb25Nb2RlbDtcblx0LyoqXG4gXHQgKiBTZXQgdG8gYHRydWVgIHRvIGRpc2FibGUgdGhlIGJhY2t3YXJkL2ZvcndhcmQgYnV0dG9ucy5cblx0ICovXG5cdEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG5cdC8qKlxuXHQgKiBTZXQgdG8gYHRydWVgIHRvIGRpc2FibGUgdGhlIHNlbGVjdCBib3ggdGhhdCBjaGFuZ2VzIHRoZSBwYWdlLlxuXHQgKi9cblx0QElucHV0KCkgcGFnZUlucHV0RGlzYWJsZWQgPSBmYWxzZTtcblx0LyoqXG5cdCAqIENvbnRyb2xzIHdldGhlciBvciBub3QgdG8gc2hvdyB0aGUgcGFnZSBzZWxlY3RzXG5cdCAqL1xuXHRASW5wdXQoKSBzaG93UGFnZUlucHV0ID0gdHJ1ZTtcblx0LyoqXG5cdCAqIFNldCB0byBgdHJ1ZWAgaWYgdGhlIHRvdGFsIG51bWJlciBvZiBpdGVtcyBpcyB1bmtub3duLlxuXHQgKi9cblx0QElucHV0KCkgcGFnZXNVbmtub3duID0gZmFsc2U7XG5cdEBJbnB1dCgpIHBhZ2VTZWxlY3RUaHJlc2hvbGQgPSAxMDAwO1xuXG5cdC8qKlxuXHQgKiBFeHBlY3RzIGFuIG9iamVjdCB0aGF0IGNvbnRhaW5zIHNvbWUgb3IgYWxsIG9mOlxuXHQgKiBgYGBcblx0ICoge1xuXHQgKlx0XHRcIklURU1TX1BFUl9QQUdFXCI6IFwiSXRlbXMgcGVyIHBhZ2U6XCIsXG5cdCAqXHRcdFwiT1BFTl9MSVNUX09GX09QVElPTlNcIjogXCJPcGVuIGxpc3Qgb2Ygb3B0aW9uc1wiLFxuXHQgKlx0XHRcIkJBQ0tXQVJEXCI6IFwiQmFja3dhcmRcIixcblx0ICpcdFx0XCJGT1JXQVJEXCI6IFwiRm9yd2FyZFwiLFxuXHQgKlx0XHRcIlRPVEFMX0lURU1TX1VOS05PV05cIjogXCJ7e3N0YXJ0fX0te3tlbmR9fSBpdGVtc1wiLFxuXHQgKlx0XHRcIlRPVEFMX0lURU1TXCI6IFwie3tzdGFydH19LXt7ZW5kfX0gb2Yge3t0b3RhbH19IGl0ZW1zXCIsXG5cdCAqXHRcdFwiVE9UQUxfSVRFTVwiOiBcInt7c3RhcnR9fS17e2VuZH19IG9mIHt7dG90YWx9fSBpdGVtXCIsXG5cdCAqXHRcdFwiT0ZfTEFTVF9QQUdFU1wiOiBcIm9mIHt7bGFzdH19IHBhZ2VzXCIsXG5cdCAqXHRcdFwiT0ZfTEFTVF9QQUdFXCI6IFwib2Yge3tsYXN0fX0gcGFnZVwiXG5cdCAqIH1cblx0ICogYGBgXG5cdCAqL1xuXHRASW5wdXQoKVxuXHRzZXQgdHJhbnNsYXRpb25zICh2YWx1ZTogUGFnaW5hdGlvblRyYW5zbGF0aW9ucykge1xuXHRcdGNvbnN0IHZhbHVlV2l0aERlZmF1bHRzID0gbWVyZ2UodGhpcy5pMThuLmdldE11bHRpcGxlKFwiUEFHSU5BVElPTlwiKSwgdmFsdWUpO1xuXHRcdHRoaXMuaXRlbXNQZXJQYWdlVGV4dC5vdmVycmlkZSh2YWx1ZVdpdGhEZWZhdWx0cy5JVEVNU19QRVJfUEFHRSk7XG5cdFx0dGhpcy5vcHRpb25zTGlzdFRleHQub3ZlcnJpZGUodmFsdWVXaXRoRGVmYXVsdHMuT1BFTl9MSVNUX09GX09QVElPTlMpO1xuXHRcdHRoaXMuYmFja3dhcmRUZXh0Lm92ZXJyaWRlKHZhbHVlV2l0aERlZmF1bHRzLkJBQ0tXQVJEKTtcblx0XHR0aGlzLmZvcndhcmRUZXh0Lm92ZXJyaWRlKHZhbHVlV2l0aERlZmF1bHRzLkZPUldBUkQpO1xuXHRcdHRoaXMudG90YWxJdGVtc1RleHQub3ZlcnJpZGUodmFsdWVXaXRoRGVmYXVsdHMuVE9UQUxfSVRFTVMpO1xuXHRcdHRoaXMudG90YWxJdGVtVGV4dC5vdmVycmlkZSh2YWx1ZVdpdGhEZWZhdWx0cy5UT1RBTF9JVEVNKTtcblx0XHR0aGlzLnRvdGFsSXRlbXNVbmtub3duVGV4dC5vdmVycmlkZSh2YWx1ZVdpdGhEZWZhdWx0cy5UT1RBTF9JVEVNU19VTktOT1dOKTtcblx0XHR0aGlzLnBhZ2VUZXh0Lm92ZXJyaWRlKHZhbHVlV2l0aERlZmF1bHRzLlBBR0UpO1xuXHRcdHRoaXMub2ZMYXN0UGFnZXNUZXh0Lm92ZXJyaWRlKHZhbHVlV2l0aERlZmF1bHRzLk9GX0xBU1RfUEFHRVMpO1xuXHRcdHRoaXMub2ZMYXN0UGFnZVRleHQub3ZlcnJpZGUodmFsdWVXaXRoRGVmYXVsdHMuT0ZfTEFTVF9QQUdFKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBPcHRpb25zIGZvciBpdGVtcyBwZXIgcGFnZSBzZWxlY3Rcblx0ICpcblx0ICogQSBkZWZhdWx0IGFycmF5IG9mIG9wdGlvbnMgd2lsbCBiZSBkZWZpbmVkOiBbMTAsIDIwLCAzMCwgNDAsIDUwXVxuXHQgKi9cblx0QElucHV0KCkgaXRlbXNQZXJQYWdlT3B0aW9uczogbnVtYmVyW10gPSBbMTAsIDIwLCAzMCwgNDAsIDUwXTtcblxuXHQvKipcblx0ICogRW1pdHMgdGhlIG5ldyBwYWdlIG51bWJlci5cblx0ICpcblx0ICogWW91IHNob3VsZCB0aWUgaW50byB0aGlzIGFuZCB1cGRhdGUgYG1vZGVsLmN1cnJlbnRQYWdlYCBvbmNlIHRoZSBmcmVzaFxuXHQgKiBkYXRhIGlzIGZpbmFsbHkgbG9hZGVkLlxuXHQgKi9cblx0QE91dHB1dCgpIHNlbGVjdFBhZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuXHRnZXQgaXRlbXNQZXJQYWdlKCkge1xuXHRcdHJldHVybiB0aGlzLm1vZGVsLnBhZ2VMZW5ndGg7XG5cdH1cblx0c2V0IGl0ZW1zUGVyUGFnZSh2YWx1ZSkge1xuXHRcdHRoaXMubW9kZWwucGFnZUxlbmd0aCA9IE51bWJlcih2YWx1ZSk7XG5cdFx0dGhpcy5jdXJyZW50UGFnZSA9IDE7IC8vIHJlc2V0IHBhZ2Vcblx0fVxuXG5cdGdldCBjdXJyZW50UGFnZSgpIHtcblx0XHRyZXR1cm4gdGhpcy5tb2RlbC5jdXJyZW50UGFnZTtcblx0fVxuXHRzZXQgY3VycmVudFBhZ2UodmFsdWUpIHtcblx0XHR2YWx1ZSA9IE51bWJlcih2YWx1ZSk7XG5cdFx0Ly8gZW1pdHMgdGhlIHZhbHVlIHRvIGFsbG93IHRoZSB1c2VyIHRvIHVwZGF0ZSBjdXJyZW50IHBhZ2Vcblx0XHQvLyBpbiB0aGUgbW9kZWwgb25jZSB0aGUgcGFnZSBpcyBsb2FkZWRcblx0XHR0aGlzLnNlbGVjdFBhZ2UuZW1pdCh2YWx1ZSk7XG5cdH1cblxuXHRnZXQgdG90YWxEYXRhTGVuZ3RoKCkge1xuXHRcdHJldHVybiB0aGlzLm1vZGVsLnRvdGFsRGF0YUxlbmd0aDtcblx0fVxuXHQvKipcblx0ICogVGhlIGxhc3QgcGFnZSBudW1iZXIgdG8gZGlzcGxheSBpbiB0aGUgcGFnaW5hdGlvbiB2aWV3LlxuXHQgKi9cblx0Z2V0IGxhc3RQYWdlKCk6IG51bWJlciB7XG5cdFx0Y29uc3QgbGFzdCA9IE1hdGguY2VpbCh0aGlzLnRvdGFsRGF0YUxlbmd0aCAvIHRoaXMuaXRlbXNQZXJQYWdlKTtcblx0XHRyZXR1cm4gbGFzdCA+IDAgPyBsYXN0IDogMTtcblx0fVxuXG5cdGdldCBzdGFydEl0ZW1JbmRleCgpIHtcblx0XHRyZXR1cm4gdGhpcy5lbmRJdGVtSW5kZXggPiAwID8gKHRoaXMuY3VycmVudFBhZ2UgLSAxKSAqIHRoaXMuaXRlbXNQZXJQYWdlICsgMSA6IDA7XG5cdH1cblxuXHRnZXQgZW5kSXRlbUluZGV4KCkge1xuXHRcdGNvbnN0IHByb2plY3RlZEVuZEl0ZW1JbmRleCA9IHRoaXMuY3VycmVudFBhZ2UgKiB0aGlzLml0ZW1zUGVyUGFnZTtcblxuXHRcdHJldHVybiBwcm9qZWN0ZWRFbmRJdGVtSW5kZXggPCB0aGlzLnRvdGFsRGF0YUxlbmd0aCA/IHByb2plY3RlZEVuZEl0ZW1JbmRleCA6IHRoaXMudG90YWxEYXRhTGVuZ3RoO1xuXHR9XG5cblx0LyoqXG5cdCAqIFRoZSBwcmV2aW91cyBwYWdlIG51bWJlciB0byBuYXZpZ2F0ZSB0bywgZnJvbSB0aGUgY3VycmVudCBwYWdlLlxuXHQgKi9cblx0Z2V0IHByZXZpb3VzUGFnZSgpOiBudW1iZXIge1xuXHRcdHJldHVybiB0aGlzLmN1cnJlbnRQYWdlIDw9IDEgPyAxIDogdGhpcy5jdXJyZW50UGFnZSAtIDE7XG5cdH1cblxuXHQvKipcblx0ICogVGhlIG5leHQgcGFnZSBudW1iZXIgdG8gbmF2aWdhdGUgdG8sIGZyb20gdGhlIGN1cnJlbnQgcGFnZS5cblx0ICovXG5cdGdldCBuZXh0UGFnZSgpOiBudW1iZXIge1xuXHRcdGNvbnN0IGxhc3RQYWdlID0gdGhpcy5sYXN0UGFnZTtcblx0XHRyZXR1cm4gdGhpcy5jdXJyZW50UGFnZSA+PSBsYXN0UGFnZSA/IGxhc3RQYWdlIDogdGhpcy5jdXJyZW50UGFnZSArIDE7XG5cdH1cblxuXHRnZXQgcGFnZU9wdGlvbnMoKSB7XG5cdFx0aWYgKHRoaXMudG90YWxEYXRhTGVuZ3RoICYmIHRoaXMuX3BhZ2VPcHRpb25zLmxlbmd0aCAhPT0gdGhpcy50b3RhbERhdGFMZW5ndGgpIHtcblx0XHRcdHRoaXMuX3BhZ2VPcHRpb25zID0gQXJyYXkoTWF0aC5jZWlsKHRoaXMudG90YWxEYXRhTGVuZ3RoIC8gdGhpcy5pdGVtc1BlclBhZ2UpKTtcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXMuX3BhZ2VPcHRpb25zO1xuXHR9XG5cblx0aXRlbXNQZXJQYWdlU2VsZWN0SWQgPSBgcGFnaW5hdGlvbi1zZWxlY3QtaXRlbXMtcGVyLXBhZ2UtJHtQYWdpbmF0aW9uLnBhZ2luYXRpb25Db3VudGVyfWA7XG5cdGN1cnJlbnRQYWdlU2VsZWN0SWQgPSBgcGFnaW5hdGlvbi1zZWxlY3QtY3VycmVudC1wYWdlLSR7UGFnaW5hdGlvbi5wYWdpbmF0aW9uQ291bnRlcn1gO1xuXG5cdGl0ZW1zUGVyUGFnZVRleHQgPSB0aGlzLmkxOG4uZ2V0T3ZlcnJpZGFibGUoXCJQQUdJTkFUSU9OLklURU1TX1BFUl9QQUdFXCIpO1xuXHRvcHRpb25zTGlzdFRleHQgPSB0aGlzLmkxOG4uZ2V0T3ZlcnJpZGFibGUoXCJQQUdJTkFUSU9OLk9QRU5fTElTVF9PRl9PUFRJT05TXCIpO1xuXHRiYWNrd2FyZFRleHQgPSB0aGlzLmkxOG4uZ2V0T3ZlcnJpZGFibGUoXCJQQUdJTkFUSU9OLkJBQ0tXQVJEXCIpO1xuXHRmb3J3YXJkVGV4dCA9IHRoaXMuaTE4bi5nZXRPdmVycmlkYWJsZShcIlBBR0lOQVRJT04uRk9SV0FSRFwiKTtcblx0dG90YWxJdGVtc1RleHQgPSB0aGlzLmkxOG4uZ2V0T3ZlcnJpZGFibGUoXCJQQUdJTkFUSU9OLlRPVEFMX0lURU1TXCIpO1xuXHR0b3RhbEl0ZW1UZXh0ID0gdGhpcy5pMThuLmdldE92ZXJyaWRhYmxlKFwiUEFHSU5BVElPTi5UT1RBTF9JVEVNXCIpO1xuXHR0b3RhbEl0ZW1zVW5rbm93blRleHQgPSB0aGlzLmkxOG4uZ2V0T3ZlcnJpZGFibGUoXCJQQUdJTkFUSU9OLlRPVEFMX0lURU1TX1VOS05PV05cIik7XG5cdHBhZ2VUZXh0ID0gdGhpcy5pMThuLmdldE92ZXJyaWRhYmxlKFwiUEFHSU5BVElPTi5QQUdFXCIpO1xuXHRvZkxhc3RQYWdlc1RleHQgPSB0aGlzLmkxOG4uZ2V0T3ZlcnJpZGFibGUoXCJQQUdJTkFUSU9OLk9GX0xBU1RfUEFHRVNcIik7XG5cdG9mTGFzdFBhZ2VUZXh0ID0gdGhpcy5pMThuLmdldE92ZXJyaWRhYmxlKFwiUEFHSU5BVElPTi5PRl9MQVNUX1BBR0VcIik7XG5cblx0cHJvdGVjdGVkIF9wYWdlT3B0aW9ucyA9IFtdO1xuXG5cdGNvbnN0cnVjdG9yKHByb3RlY3RlZCBpMThuOiBJMThuLCBwcm90ZWN0ZWQgZXhwZXJpbWVudGFsOiBFeHBlcmltZW50YWxTZXJ2aWNlKSB7XG5cdFx0UGFnaW5hdGlvbi5wYWdpbmF0aW9uQ291bnRlcisrO1xuXHR9XG59XG4iXX0=
|
|
473
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ04sU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBSXZCLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7Ozs7QUFjeEQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFCRztBQStJSCxNQUFNLE9BQU8sVUFBVTtJQXdKdEIsWUFBc0IsSUFBVSxFQUFZLFlBQWlDO1FBQXZELFNBQUksR0FBSixJQUFJLENBQU07UUFBWSxpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFySjdFOztXQUVHO1FBQ00sYUFBUSxHQUFHLEtBQUssQ0FBQztRQUsxQjs7V0FFRztRQUNNLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDMUI7O1dBRUc7UUFDTSxzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFDbkM7O1dBRUc7UUFDTSxrQkFBYSxHQUFHLElBQUksQ0FBQztRQUM5Qjs7V0FFRztRQUNNLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLHdCQUFtQixHQUFHLElBQUksQ0FBQztRQWlDcEM7Ozs7V0FJRztRQUNNLHdCQUFtQixHQUFhLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRTlEOzs7OztXQUtHO1FBQ08sZUFBVSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUErRGxELHlCQUFvQixHQUFHLG9DQUFvQyxVQUFVLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUMxRix3QkFBbUIsR0FBRyxrQ0FBa0MsVUFBVSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFFdkYscUJBQWdCLEdBQUcsSUFBSSxDQUFDLElBQUks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c0JBQXJCLEtBQUs7Z0JBSUcsWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBbUJGLFlBQVk7c0JBRGYsS0FBSztnQkFvQkcsbUJBQW1CO3NCQUEzQixLQUFLO2dCQVFJLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQYWdpbmF0aW9uTW9kZWwgfSBmcm9tIFwiLi9wYWdpbmF0aW9uLW1vZGVsLmNsYXNzXCI7XG5pbXBvcnQge1xuXHRDb21wb25lbnQsXG5cdElucHV0LFxuXHRPdXRwdXQsXG5cdEV2ZW50RW1pdHRlclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5pbXBvcnQgeyBJMThuLCBPdmVycmlkYWJsZSB9IGZyb20gXCJjYXJib24tY29tcG9uZW50cy1hbmd1bGFyL2kxOG5cIjtcbmltcG9ydCB7IEV4cGVyaW1lbnRhbFNlcnZpY2UgfSBmcm9tIFwiY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhci9leHBlcmltZW50YWxcIjtcbmltcG9ydCB7IG1lcmdlIH0gZnJvbSBcImNhcmJvbi1jb21wb25lbnRzLWFuZ3VsYXIvdXRpbHNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBQYWdpbmF0aW9uVHJhbnNsYXRpb25zIHtcblx0SVRFTVNfUEVSX1BBR0U6IHN0cmluZztcblx0T1BFTl9MSVNUX09GX09QVElPTlM6IHN0cmluZztcblx0QkFDS1dBUkQ6IHN0cmluZztcblx0Rk9SV0FSRDogc3RyaW5nO1xuXHRUT1RBTF9JVEVNU19VTktOT1dOOiBzdHJpbmc7XG5cdFRPVEFMX0lURU1TOiBzdHJpbmc7XG5cdFRPVEFMX0lURU06IHN0cmluZztcblx0T0ZfTEFTVF9QQUdFUzogc3RyaW5nO1xuXHRPRl9MQVNUX1BBR0U6IHN0cmluZztcbn1cblxuLyoqXG4gKiBVc2UgcGFnaW5hdGlvbiB3aGVuIHlvdSBoYXZlIG11bHRpcGxlIHBhZ2VzIG9mIGRhdGEgdG8gaGFuZGxlLlxuICpcbiAqIFtTZWUgZGVtb10oLi4vLi4vP3BhdGg9L3N0b3J5L2NvbXBvbmVudHMtcGFnaW5hdGlvbi0tYmFzaWMpXG4gKlxuICogYGBgaHRtbFxuICpcdDxjZHMtcGFnaW5hdGlvbiBbbW9kZWxdPVwibW9kZWxcIiAoc2VsZWN0UGFnZSk9XCJzZWxlY3RQYWdlKCRldmVudClcIj48L2Nkcy1wYWdpbmF0aW9uPlxuICogYGBgXG4gKlxuICogSW4geW91ciBgc2VsZWN0UGFnZSgpYCBtZXRob2Qgc2V0IHRoZSBgbW9kZWwuY3VycmVudFBhZ2VgIHRvIHNlbGVjdGVkIHBhZ2UsIF9hZnRlcl9cbiAqIHlvdSBsb2FkIHRoZSBwYWdlLlxuICpcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIHNlbGVjdFBhZ2UocGFnZSkge1xuICogXHQvLyAuLi4geW91ciBjb2RlIHRvIGxvYWQgdGhlIHBhZ2UgZ29lcyBoZXJlXG4gKlxuICogXHR0aGlzLm1vZGVsLmN1cnJlbnRQYWdlID0gcGFnZTtcbiAqXG4gKiBcdC8vIC4uLiBhbnl0aGluZyB5b3Ugd2FudCB0byBkbyBhZnRlciBwYWdlIHNlbGVjdGlvbiBjaGFuZ2VzIGdvZXMgaGVyZVxuICogfVxuICogYGBgXG4gKi9cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogXCJjZHMtcGFnaW5hdGlvbiwgaWJtLXBhZ2luYXRpb25cIixcblx0dGVtcGxhdGU6IGBcblx0PGRpdlxuXHRcdGNsYXNzPVwiY2RzLS1wYWdpbmF0aW9uXCJcblx0XHRbbmdDbGFzc109XCJ7XG5cdFx0XHQnY2RzLS1za2VsZXRvbic6IHNrZWxldG9uXG5cdFx0fVwiPlxuXHRcdDwhLS0gbGVmdCBza2VsZXRvbiBkaXYgLS0+XG5cdFx0PGRpdiAqbmdJZj1cInNrZWxldG9uXCIgY2xhc3M9XCJjZHMtLXBhZ2luYXRpb25fX2xlZnRcIj5cblx0XHRcdDxwIGNsYXNzPVwiY2RzLS1za2VsZXRvbl9fdGV4dFwiIHN0eWxlPVwid2lkdGg6IDcwcHhcIj48L3A+XG5cdFx0XHQ8cCBjbGFzcz1cImNkcy0tc2tlbGV0b25fX3RleHRcIiBzdHlsZT1cIndpZHRoOiAzNXB4XCI+PC9wPlxuXHRcdFx0PHAgY2xhc3M9XCJjZHMtLXNrZWxldG9uX190ZXh0XCIgc3R5bGU9XCJ3aWR0aDogMTA1cHhcIj48L3A+XG5cdFx0PC9kaXY+XG5cblx0XHQ8ZGl2ICpuZ0lmPVwiIXNrZWxldG9uXCIgY2xhc3M9XCJjZHMtLXBhZ2luYXRpb25fX2xlZnRcIj5cblx0XHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCJzaG93UGFnZUlucHV0XCI+XG5cdFx0XHRcdDxsYWJlbCBjbGFzcz1cImNkcy0tcGFnaW5hdGlvbl9fdGV4dFwiIFtmb3JdPVwiaXRlbXNQZXJQYWdlU2VsZWN0SWRcIj5cblx0XHRcdFx0XHR7e2l0ZW1zUGVyUGFnZVRleHQuc3ViamVjdCB8IGFzeW5jfX1cblx0XHRcdFx0PC9sYWJlbD5cblx0XHRcdFx0PGRpdlxuXHRcdFx0XHRcdGNsYXNzPVwiY2RzLS1zZWxlY3QgY2RzLS1zZWxlY3QtLWlubGluZSBjZHMtLXNlbGVjdF9faXRlbS1jb3VudFwiXG5cdFx0XHRcdFx0W2NsYXNzLmNkcy0tc2VsZWN0LS1kaXNhYmxlZF09XCJwYWdlSW5wdXREaXNhYmxlZFwiPlxuXHRcdFx0XHRcdDxzZWxlY3Rcblx0XHRcdFx0XHRcdFtpZF09XCJpdGVtc1BlclBhZ2VTZWxlY3RJZFwiXG5cdFx0XHRcdFx0XHRbKG5nTW9kZWwpXT1cIml0ZW1zUGVyUGFnZVwiXG5cdFx0XHRcdFx0XHRbZGlzYWJsZWRdPVwicGFnZUlucHV0RGlzYWJsZWRcIlxuXHRcdFx0XHRcdFx0Y2xhc3M9XCJjZHMtLXNlbGVjdC1pbnB1dFwiPlxuXHRcdFx0XHRcdFx0PG9wdGlvblxuXHRcdFx0XHRcdFx0XHRjbGFzcz1cImNkcy0tc2VsZWN0LW9wdGlvblwiXG5cdFx0XHRcdFx0XHRcdCpuZ0Zvcj1cImxldCBvcHRpb24gb2YgaXRlbXNQZXJQYWdlT3B0aW9uc1wiXG5cdFx0XHRcdFx0XHRcdFt2YWx1ZV09XCJvcHRpb25cIj5cblx0XHRcdFx0XHRcdFx0XHR7eyBvcHRpb24gfX1cblx0XHRcdFx0XHRcdDwvb3B0aW9uPlxuXHRcdFx0XHRcdDwvc2VsZWN0PlxuXHRcdFx0XHRcdDxzdmdcblx0XHRcdFx0XHRcdGNkc0ljb249XCJjaGV2cm9uLS1kb3duXCJcblx0XHRcdFx0XHRcdHNpemU9XCIxNlwiXG5cdFx0XHRcdFx0XHRzdHlsZT1cImRpc3BsYXk6IGluaGVyaXRcIlxuXHRcdFx0XHRcdFx0Y2xhc3M9XCJjZHMtLXNlbGVjdF9fYXJyb3dcIlxuXHRcdFx0XHRcdFx0YXJpYS1oaWRkZW49XCJ0cnVlXCJcblx0XHRcdFx0XHRcdFthdHRyLmFyaWFMYWJlbF09XCJvcHRpb25zTGlzdFRleHQuc3ViamVjdCB8IGFzeW5jXCI+XG5cdFx0XHRcdFx0PC9zdmc+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0PC9uZy1jb250YWluZXI+XG5cdFx0XHQ8c3BhbiAqbmdJZj1cIiFwYWdlc1Vua25vd24gJiYgdG90YWxEYXRhTGVuZ3RoIDw9IDFcIiBjbGFzcz1cImNkcy0tcGFnaW5hdGlvbl9fdGV4dCBjZHMtLXBhZ2luYXRpb25fX2l0ZW1zLWNvdW50XCIgW25nU3R5bGVdPVwieydtYXJnaW4tbGVmdCc6IHNob3dQYWdlSW5wdXQgPyBudWxsIDogMH1cIj5cblx0XHRcdFx0e3t0b3RhbEl0ZW1UZXh0LnN1YmplY3QgfCBpMThuUmVwbGFjZTp7c3RhcnQ6IHN0YXJ0SXRlbUluZGV4LCBlbmQ6IGVuZEl0ZW1JbmRleCwgdG90YWw6IHRvdGFsRGF0YUxlbmd0aCB9IHwgYXN5bmN9fVxuXHRcdFx0PC9zcGFuPlxuXHRcdFx0PHNwYW4gKm5nSWY9XCIhcGFnZXNVbmtub3duICYmIHRvdGFsRGF0YUxlbmd0aCA+IDFcIiBjbGFzcz1cImNkcy0tcGFnaW5hdGlvbl9fdGV4dCBjZHMtLXBhZ2luYXRpb25fX2l0ZW1zLWNvdW50XCIgW25nU3R5bGVdPVwieydtYXJnaW4tbGVmdCc6IHNob3dQYWdlSW5wdXQgPyBudWxsIDogMH1cIj5cblx0XHRcdFx0e3t0b3RhbEl0ZW1zVGV4dC5zdWJqZWN0IHwgaTE4blJlcGxhY2U6e3N0YXJ0OiBzdGFydEl0ZW1JbmRleCwgZW5kOiBlbmRJdGVtSW5kZXgsIHRvdGFsOiB0b3RhbERhdGFMZW5ndGggfSB8IGFzeW5jfX1cblx0XHRcdDwvc3Bhbj5cblx0XHRcdDxzcGFuICpuZ0lmPVwicGFnZXNVbmtub3duXCIgY2xhc3M9XCJjZHMtLXBhZ2luYXRpb25fX3RleHQgY2RzLS1wYWdpbmF0aW9uX19pdGVtcy1jb3VudFwiIFtuZ1N0eWxlXT1cInsnbWFyZ2luLWxlZnQnOiBzaG93UGFnZUlucHV0ID8gbnVsbCA6IDB9XCI+XG5cdFx0XHRcdHt7dG90YWxJdGVtc1Vua25vd25UZXh0LnN1YmplY3QgfCBpMThuUmVwbGFjZTp7c3RhcnQ6IHN0YXJ0SXRlbUluZGV4LCBlbmQ6IGVuZEl0ZW1JbmRleCB9IHwgYXN5bmN9fVxuXHRcdFx0PC9zcGFuPlxuXHRcdDwvZGl2PlxuXG5cdFx0PCEtLSByaWdodCBza2VsZXRvbiBkaXYgLS0+XG5cdFx0PGRpdiAqbmdJZj1cInNrZWxldG9uXCIgY2xhc3M9XCJjZHMtLXBhZ2luYXRpb25fX3JpZ2h0XCI+XG5cdFx0XHQ8cCBjbGFzcz1cImNkcy0tc2tlbGV0b25fX3RleHRcIiBzdHlsZT1cIndpZHRoOiA3MHB4XCI+PC9wPlxuXHRcdDwvZGl2PlxuXG5cdFx0PGRpdiAqbmdJZj1cIiFza2VsZXRvblwiIGNsYXNzPVwiY2RzLS1wYWdpbmF0aW9uX19yaWdodFwiPlxuXHRcdFx0PHNwYW4gKm5nSWY9XCJwYWdlc1Vua25vd25cIiBjbGFzcz1cImNkcy0tcGFnaW5hdGlvbl9fdGV4dCBjZHMtLXBhZ2luYXRpb25fX3BhZ2UtdGV4dFwiPlxuXHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwiIXNob3dQYWdlSW5wdXRcIj57e2N1cnJlbnRQYWdlfX08L25nLWNvbnRhaW5lcj5cblx0XHRcdFx0e3twYWdlVGV4dC5zdWJqZWN0IHwgYXN5bmN9fVxuXHRcdFx0PC9zcGFuPlxuXHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dQYWdlSW5wdXRcIj5cblx0XHRcdFx0PGRpdlxuXHRcdFx0XHRcdGNsYXNzPVwiY2RzLS1zZWxlY3QgY2RzLS1zZWxlY3QtLWlubGluZSBjZHMtLXNlbGVjdF9fcGFnZS1udW1iZXJcIlxuXHRcdFx0XHRcdFtjbGFzcy5jZHMtLXNlbGVjdC0tZGlzYWJsZWRdPVwicGFnZUlucHV0RGlzYWJsZWRcIj5cblx0XHRcdFx0XHQ8bGFiZWwgW2Zvcl09XCJjdXJyZW50UGFnZVNlbGVjdElkXCIgY2xhc3M9XCJjZHMtLWxhYmVsIGNkcy0tdmlzdWFsbHktaGlkZGVuXCI+e3twYWdlVGV4dC5zdWJqZWN0IHwgYXN5bmN9fTwvbGFiZWw+XG5cdFx0XHRcdFx0PGlucHV0XG5cdFx0XHRcdFx0XHQqbmdJZj1cInBhZ2VPcHRpb25zLmxlbmd0aCA+IHBhZ2VTZWxlY3RUaHJlc2hvbGRcIlxuXHRcdFx0XHRcdFx0c3R5bGU9XCJwYWRkaW5nLXJpZ2h0OiAxcmVtOyBtYXJnaW4tcmlnaHQ6IDFyZW07XCJcblx0XHRcdFx0XHRcdFtpZF09XCJjdXJyZW50UGFnZVNlbGVjdElkXCJcblx0XHRcdFx0XHRcdHR5cGU9XCJudW1iZXJcIlxuXHRcdFx0XHRcdFx0bWluPVwiMVwiXG5cdFx0XHRcdFx0XHRbbWF4XT1cInBhZ2VPcHRpb25zLmxlbmd0aFwiXG5cdFx0XHRcdFx0XHRjbGFzcz1cImNkcy0tc2VsZWN0LWlucHV0XCJcblx0XHRcdFx0XHRcdFsobmdNb2RlbCldPVwiY3VycmVudFBhZ2VcIj5cblx0XHRcdFx0XHQ8c2VsZWN0XG5cdFx0XHRcdFx0XHQqbmdJZj1cInBhZ2VPcHRpb25zLmxlbmd0aCA8PSBwYWdlU2VsZWN0VGhyZXNob2xkXCJcblx0XHRcdFx0XHRcdFtpZF09XCJjdXJyZW50UGFnZVNlbGVjdElkXCJcblx0XHRcdFx0XHRcdGNsYXNzPVwiY2RzLS1zZWxlY3QtaW5wdXRcIlxuXHRcdFx0XHRcdFx0W2Rpc2FibGVkXT1cInBhZ2VJbnB1dERpc2FibGVkXCJcblx0XHRcdFx0XHRcdFsobmdNb2RlbCldPVwiY3VycmVudFBhZ2VcIj5cblx0XHRcdFx0XHRcdDxvcHRpb24gKm5nRm9yPVwibGV0IHBhZ2Ugb2YgcGFnZU9wdGlvbnM7IGxldCBpID0gaW5kZXg7XCIgY2xhc3M9XCJjZHMtLXNlbGVjdC1vcHRpb25cIiBbdmFsdWVdPVwiaSArIDFcIj57e2kgKyAxfX08L29wdGlvbj5cblx0XHRcdFx0XHQ8L3NlbGVjdD5cblx0XHRcdFx0XHQ8c3ZnXG5cdFx0XHRcdFx0XHQqbmdJZj1cInBhZ2VPcHRpb25zLmxlbmd0aCA8PSAxMDAwXCJcblx0XHRcdFx0XHRcdGNkc0ljb249XCJjaGV2cm9uLS1kb3duXCJcblx0XHRcdFx0XHRcdHNpemU9XCIxNlwiXG5cdFx0XHRcdFx0XHRzdHlsZT1cImRpc3BsYXk6IGluaGVyaXQ7XCJcblx0XHRcdFx0XHRcdGNsYXNzPVwiY2RzLS1zZWxlY3RfX2Fycm93XCJcblx0XHRcdFx0XHRcdFthdHRyLmFyaWFMYWJlbF09XCJvcHRpb25zTGlzdFRleHQuc3ViamVjdCB8IGFzeW5jXCI+XG5cdFx0XHRcdFx0PC9zdmc+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0PC9uZy1jb250YWluZXI+XG5cblx0XHRcdDxzcGFuICpuZ0lmPVwiIXBhZ2VzVW5rbm93biAmJiBsYXN0UGFnZSA8PSAxXCIgY2xhc3M9XCJjZHMtLXBhZ2luYXRpb25fX3RleHRcIj5cblx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cIiFzaG93UGFnZUlucHV0XCI+e3tjdXJyZW50UGFnZX19PC9uZy1jb250YWluZXI+XG5cdFx0XHRcdHt7b2ZMYXN0UGFnZVRleHQuc3ViamVjdCB8IGkxOG5SZXBsYWNlOiB7bGFzdDogbGFzdFBhZ2V9IHwgYXN5bmN9fVxuXHRcdFx0PC9zcGFuPlxuXHRcdFx0PHNwYW4gKm5nSWY9XCIhcGFnZXNVbmtub3duICYmIGxhc3RQYWdlID4gMVwiIGNsYXNzPVwiY2RzLS1wYWdpbmF0aW9uX190ZXh0XCI+XG5cdFx0XHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCIhc2hvd1BhZ2VJbnB1dFwiPnt7Y3VycmVudFBhZ2V9fTwvbmctY29udGFpbmVyPlxuXHRcdFx0XHR7e29mTGFzdFBhZ2VzVGV4dC5zdWJqZWN0IHwgaTE4blJlcGxhY2U6IHtsYXN0OiBsYXN0UGFnZX0gfCBhc3luY319XG5cdFx0XHQ8L3NwYW4+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwiY2RzLS1wYWdpbmF0aW9uX19jb250cm9sLWJ1dHRvbnNcIj5cblx0XHRcdFx0PGJ1dHRvblxuXHRcdFx0XHRcdGNkc0J1dHRvbj1cImdob3N0XCJcblx0XHRcdFx0XHRpY29uT25seT1cInRydWVcIlxuXHRcdFx0XHRcdGNsYXNzPVwiY2RzLS1wYWdpbmF0aW9uX19idXR0b24gY2RzLS1wYWdpbmF0aW9uX19idXR0b24tLWJhY2t3YXJkXCJcblx0XHRcdFx0XHRbbmdDbGFzc109XCJ7XG5cdFx0XHRcdFx0XHQnY2RzLS1wYWdpbmF0aW9uX19idXR0b24tLW5vLWluZGV4JzogY3VycmVudFBhZ2UgPD0gMSB8fCBkaXNhYmxlZFxuXHRcdFx0XHRcdH1cIlxuXHRcdFx0XHRcdHRhYmluZGV4PVwiMFwiXG5cdFx0XHRcdFx0W2F0dHIuYXJpYS1sYWJlbF09XCJiYWNrd2FyZFRleHQuc3ViamVjdCB8IGFzeW5jXCJcblx0XHRcdFx0XHQoY2xpY2spPVwic2VsZWN0UGFnZS5lbWl0KHByZXZpb3VzUGFnZSlcIlxuXHRcdFx0XHRcdFtkaXNhYmxlZF09XCIoY3VycmVudFBhZ2UgPD0gMSB8fCBkaXNhYmxlZCA/IHRydWUgOiBudWxsKVwiPlxuXHRcdFx0XHRcdDxzdmcgY2RzSWNvbj1cImNhcmV0LS1sZWZ0XCIgc2l6ZT1cIjE2XCIgY2xhc3M9XCJjZHMtLWJ0bl9faWNvblwiPjwvc3ZnPlxuXHRcdFx0XHQ8L2J1dHRvbj5cblxuXHRcdFx0XHQ8YnV0dG9uXG5cdFx0XHRcdFx0Y2RzQnV0dG9uPVwiZ2hvc3RcIlxuXHRcdFx0XHRcdGljb25Pbmx5PVwidHJ1ZVwiXG5cdFx0XHRcdFx0Y2xhc3M9XCJcblx0XHRcdFx0XHRcdGNkcy0tcGFnaW5hdGlvbl9fYnV0dG9uXG5cdFx0XHRcdFx0XHRjZHMtLXBhZ2luYXRpb25fX2J1dHRvbi0tZm9yd2FyZFwiXG5cdFx0XHRcdFx0W25nQ2xhc3NdPVwie1xuXHRcdFx0XHRcdFx0J2Nkcy0tcGFnaW5hdGlvbl9fYnV0dG9uLS1uby1pbmRleCc6IGN1cnJlbnRQYWdlID49IGxhc3RQYWdlIHx8IGRpc2FibGVkXG5cdFx0XHRcdFx0fVwiXG5cdFx0XHRcdFx0dGFiaW5kZXg9XCIwXCJcblx0XHRcdFx0XHRbYXR0ci5hcmlhLWxhYmVsXT1cImZvcndhcmRUZXh0LnN1YmplY3QgfCBhc3luY1wiXG5cdFx0XHRcdFx0KGNsaWNrKT1cInNlbGVjdFBhZ2UuZW1pdChuZXh0UGFnZSlcIlxuXHRcdFx0XHRcdFtkaXNhYmxlZF09XCIoY3VycmVudFBhZ2UgPj0gbGFzdFBhZ2UgfHwgZGlzYWJsZWQgPyB0cnVlIDogbnVsbClcIj5cblx0XHRcdFx0XHQ8c3ZnIGNkc0ljb249XCJjYXJldC0tcmlnaHRcIiBzaXplPVwiMTZcIiBjbGFzcz1cImNkcy0tYnRuX19pY29uXCI+PC9zdmc+XG5cdFx0XHRcdDwvYnV0dG9uPlxuXHRcdFx0PC9kaXY+XG5cdFx0PC9kaXY+XG5cdDwvZGl2PlxuXHRgXG59KVxuZXhwb3J0IGNsYXNzIFBhZ2luYXRpb24ge1xuXHRzdGF0aWMgcGFnaW5hdGlvbkNvdW50ZXIgPSAwO1xuXG5cdC8qKlxuXHQgKiBTZXQgdG8gYHRydWVgIGZvciBhIGxvYWRpbmcgcGFnaW5hdGlvbiBjb21wb25lbnQuXG5cdCAqL1xuXHRASW5wdXQoKSBza2VsZXRvbiA9IGZhbHNlO1xuXHQvKipcblx0ICogYFBhZ2luYXRpb25Nb2RlbGAgd2l0aCB0aGUgaW5mb3JtYXRpb24gYWJvdXQgcGFnZXMgeW91J3JlIGNvbnRyb2xsaW5nLlxuXHQgKi9cblx0QElucHV0KCkgbW9kZWw6IFBhZ2luYXRpb25Nb2RlbDtcblx0LyoqXG4gXHQgKiBTZXQgdG8gYHRydWVgIHRvIGRpc2FibGUgdGhlIGJhY2t3YXJkL2ZvcndhcmQgYnV0dG9ucy5cblx0ICovXG5cdEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG5cdC8qKlxuXHQgKiBTZXQgdG8gYHRydWVgIHRvIGRpc2FibGUgdGhlIHNlbGVjdCBib3ggdGhhdCBjaGFuZ2VzIHRoZSBwYWdlLlxuXHQgKi9cblx0QElucHV0KCkgcGFnZUlucHV0RGlzYWJsZWQgPSBmYWxzZTtcblx0LyoqXG5cdCAqIENvbnRyb2xzIHdldGhlciBvciBub3QgdG8gc2hvdyB0aGUgcGFnZSBzZWxlY3RzXG5cdCAqL1xuXHRASW5wdXQoKSBzaG93UGFnZUlucHV0ID0gdHJ1ZTtcblx0LyoqXG5cdCAqIFNldCB0byBgdHJ1ZWAgaWYgdGhlIHRvdGFsIG51bWJlciBvZiBpdGVtcyBpcyB1bmtub3duLlxuXHQgKi9cblx0QElucHV0KCkgcGFnZXNVbmtub3duID0gZmFsc2U7XG5cdEBJbnB1dCgpIHBhZ2VTZWxlY3RUaHJlc2hvbGQgPSAxMDAwO1xuXG5cdC8qKlxuXHQgKiBFeHBlY3RzIGFuIG9iamVjdCB0aGF0IGNvbnRhaW5zIHNvbWUgb3IgYWxsIG9mOlxuXHQgKiBgYGBcblx0ICoge1xuXHQgKlx0XHRcIklURU1TX1BFUl9QQUdFXCI6IFwiSXRlbXMgcGVyIHBhZ2U6XCIsXG5cdCAqXHRcdFwiT1BFTl9MSVNUX09GX09QVElPTlNcIjogXCJPcGVuIGxpc3Qgb2Ygb3B0aW9uc1wiLFxuXHQgKlx0XHRcIkJBQ0tXQVJEXCI6IFwiQmFja3dhcmRcIixcblx0ICpcdFx0XCJGT1JXQVJEXCI6IFwiRm9yd2FyZFwiLFxuXHQgKlx0XHRcIlRPVEFMX0lURU1TX1VOS05PV05cIjogXCJ7e3N0YXJ0fX0te3tlbmR9fSBpdGVtc1wiLFxuXHQgKlx0XHRcIlRPVEFMX0lURU1TXCI6IFwie3tzdGFydH19LXt7ZW5kfX0gb2Yge3t0b3RhbH19IGl0ZW1zXCIsXG5cdCAqXHRcdFwiVE9UQUxfSVRFTVwiOiBcInt7c3RhcnR9fS17e2VuZH19IG9mIHt7dG90YWx9fSBpdGVtXCIsXG5cdCAqXHRcdFwiT0ZfTEFTVF9QQUdFU1wiOiBcIm9mIHt7bGFzdH19IHBhZ2VzXCIsXG5cdCAqXHRcdFwiT0ZfTEFTVF9QQUdFXCI6IFwib2Yge3tsYXN0fX0gcGFnZVwiXG5cdCAqIH1cblx0ICogYGBgXG5cdCAqL1xuXHRASW5wdXQoKVxuXHRzZXQgdHJhbnNsYXRpb25zICh2YWx1ZTogUGFnaW5hdGlvblRyYW5zbGF0aW9ucykge1xuXHRcdGNvbnN0IHZhbHVlV2l0aERlZmF1bHRzID0gbWVyZ2UodGhpcy5pMThuLmdldE11bHRpcGxlKFwiUEFHSU5BVElPTlwiKSwgdmFsdWUpO1xuXHRcdHRoaXMuaXRlbXNQZXJQYWdlVGV4dC5vdmVycmlkZSh2YWx1ZVdpdGhEZWZhdWx0cy5JVEVNU19QRVJfUEFHRSk7XG5cdFx0dGhpcy5vcHRpb25zTGlzdFRleHQub3ZlcnJpZGUodmFsdWVXaXRoRGVmYXVsdHMuT1BFTl9MSVNUX09GX09QVElPTlMpO1xuXHRcdHRoaXMuYmFja3dhcmRUZXh0Lm92ZXJyaWRlKHZhbHVlV2l0aERlZmF1bHRzLkJBQ0tXQVJEKTtcblx0XHR0aGlzLmZvcndhcmRUZXh0Lm92ZXJyaWRlKHZhbHVlV2l0aERlZmF1bHRzLkZPUldBUkQpO1xuXHRcdHRoaXMudG90YWxJdGVtc1RleHQub3ZlcnJpZGUodmFsdWVXaXRoRGVmYXVsdHMuVE9UQUxfSVRFTVMpO1xuXHRcdHRoaXMudG90YWxJdGVtVGV4dC5vdmVycmlkZSh2YWx1ZVdpdGhEZWZhdWx0cy5UT1RBTF9JVEVNKTtcblx0XHR0aGlzLnRvdGFsSXRlbXNVbmtub3duVGV4dC5vdmVycmlkZSh2YWx1ZVdpdGhEZWZhdWx0cy5UT1RBTF9JVEVNU19VTktOT1dOKTtcblx0XHR0aGlzLnBhZ2VUZXh0Lm92ZXJyaWRlKHZhbHVlV2l0aERlZmF1bHRzLlBBR0UpO1xuXHRcdHRoaXMub2ZMYXN0UGFnZXNUZXh0Lm92ZXJyaWRlKHZhbHVlV2l0aERlZmF1bHRzLk9GX0xBU1RfUEFHRVMpO1xuXHRcdHRoaXMub2ZMYXN0UGFnZVRleHQub3ZlcnJpZGUodmFsdWVXaXRoRGVmYXVsdHMuT0ZfTEFTVF9QQUdFKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBPcHRpb25zIGZvciBpdGVtcyBwZXIgcGFnZSBzZWxlY3Rcblx0ICpcblx0ICogQSBkZWZhdWx0IGFycmF5IG9mIG9wdGlvbnMgd2lsbCBiZSBkZWZpbmVkOiBbMTAsIDIwLCAzMCwgNDAsIDUwXVxuXHQgKi9cblx0QElucHV0KCkgaXRlbXNQZXJQYWdlT3B0aW9uczogbnVtYmVyW10gPSBbMTAsIDIwLCAzMCwgNDAsIDUwXTtcblxuXHQvKipcblx0ICogRW1pdHMgdGhlIG5ldyBwYWdlIG51bWJlci5cblx0ICpcblx0ICogWW91IHNob3VsZCB0aWUgaW50byB0aGlzIGFuZCB1cGRhdGUgYG1vZGVsLmN1cnJlbnRQYWdlYCBvbmNlIHRoZSBmcmVzaFxuXHQgKiBkYXRhIGlzIGZpbmFsbHkgbG9hZGVkLlxuXHQgKi9cblx0QE91dHB1dCgpIHNlbGVjdFBhZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuXHRnZXQgaXRlbXNQZXJQYWdlKCkge1xuXHRcdHJldHVybiB0aGlzLm1vZGVsLnBhZ2VMZW5ndGg7XG5cdH1cblx0c2V0IGl0ZW1zUGVyUGFnZSh2YWx1ZSkge1xuXHRcdHRoaXMubW9kZWwucGFnZUxlbmd0aCA9IE51bWJlcih2YWx1ZSk7XG5cdFx0dGhpcy5jdXJyZW50UGFnZSA9IDE7IC8vIHJlc2V0IHBhZ2Vcblx0fVxuXG5cdGdldCBjdXJyZW50UGFnZSgpIHtcblx0XHRyZXR1cm4gdGhpcy5tb2RlbC5jdXJyZW50UGFnZTtcblx0fVxuXHRzZXQgY3VycmVudFBhZ2UodmFsdWUpIHtcblx0XHR2YWx1ZSA9IE51bWJlcih2YWx1ZSk7XG5cdFx0Ly8gZW1pdHMgdGhlIHZhbHVlIHRvIGFsbG93IHRoZSB1c2VyIHRvIHVwZGF0ZSBjdXJyZW50IHBhZ2Vcblx0XHQvLyBpbiB0aGUgbW9kZWwgb25jZSB0aGUgcGFnZSBpcyBsb2FkZWRcblx0XHR0aGlzLnNlbGVjdFBhZ2UuZW1pdCh2YWx1ZSk7XG5cdH1cblxuXHRnZXQgdG90YWxEYXRhTGVuZ3RoKCkge1xuXHRcdHJldHVybiB0aGlzLm1vZGVsLnRvdGFsRGF0YUxlbmd0aDtcblx0fVxuXHQvKipcblx0ICogVGhlIGxhc3QgcGFnZSBudW1iZXIgdG8gZGlzcGxheSBpbiB0aGUgcGFnaW5hdGlvbiB2aWV3LlxuXHQgKi9cblx0Z2V0IGxhc3RQYWdlKCk6IG51bWJlciB7XG5cdFx0Y29uc3QgbGFzdCA9IE1hdGguY2VpbCh0aGlzLnRvdGFsRGF0YUxlbmd0aCAvIHRoaXMuaXRlbXNQZXJQYWdlKTtcblx0XHRyZXR1cm4gbGFzdCA+IDAgPyBsYXN0IDogMTtcblx0fVxuXG5cdGdldCBzdGFydEl0ZW1JbmRleCgpIHtcblx0XHRyZXR1cm4gdGhpcy5lbmRJdGVtSW5kZXggPiAwID8gKHRoaXMuY3VycmVudFBhZ2UgLSAxKSAqIHRoaXMuaXRlbXNQZXJQYWdlICsgMSA6IDA7XG5cdH1cblxuXHRnZXQgZW5kSXRlbUluZGV4KCkge1xuXHRcdGNvbnN0IHByb2plY3RlZEVuZEl0ZW1JbmRleCA9IHRoaXMuY3VycmVudFBhZ2UgKiB0aGlzLml0ZW1zUGVyUGFnZTtcblxuXHRcdHJldHVybiBwcm9qZWN0ZWRFbmRJdGVtSW5kZXggPCB0aGlzLnRvdGFsRGF0YUxlbmd0aCA/IHByb2plY3RlZEVuZEl0ZW1JbmRleCA6IHRoaXMudG90YWxEYXRhTGVuZ3RoO1xuXHR9XG5cblx0LyoqXG5cdCAqIFRoZSBwcmV2aW91cyBwYWdlIG51bWJlciB0byBuYXZpZ2F0ZSB0bywgZnJvbSB0aGUgY3VycmVudCBwYWdlLlxuXHQgKi9cblx0Z2V0IHByZXZpb3VzUGFnZSgpOiBudW1iZXIge1xuXHRcdHJldHVybiB0aGlzLmN1cnJlbnRQYWdlIDw9IDEgPyAxIDogdGhpcy5jdXJyZW50UGFnZSAtIDE7XG5cdH1cblxuXHQvKipcblx0ICogVGhlIG5leHQgcGFnZSBudW1iZXIgdG8gbmF2aWdhdGUgdG8sIGZyb20gdGhlIGN1cnJlbnQgcGFnZS5cblx0ICovXG5cdGdldCBuZXh0UGFnZSgpOiBudW1iZXIge1xuXHRcdGNvbnN0IGxhc3RQYWdlID0gdGhpcy5sYXN0UGFnZTtcblx0XHRyZXR1cm4gdGhpcy5jdXJyZW50UGFnZSA+PSBsYXN0UGFnZSA/IGxhc3RQYWdlIDogdGhpcy5jdXJyZW50UGFnZSArIDE7XG5cdH1cblxuXHRnZXQgcGFnZU9wdGlvbnMoKSB7XG5cdFx0aWYgKHRoaXMudG90YWxEYXRhTGVuZ3RoICYmIHRoaXMuX3BhZ2VPcHRpb25zLmxlbmd0aCAhPT0gdGhpcy50b3RhbERhdGFMZW5ndGgpIHtcblx0XHRcdHRoaXMuX3BhZ2VPcHRpb25zID0gQXJyYXkoTWF0aC5jZWlsKHRoaXMudG90YWxEYXRhTGVuZ3RoIC8gdGhpcy5pdGVtc1BlclBhZ2UpKTtcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXMuX3BhZ2VPcHRpb25zO1xuXHR9XG5cblx0aXRlbXNQZXJQYWdlU2VsZWN0SWQgPSBgcGFnaW5hdGlvbi1zZWxlY3QtaXRlbXMtcGVyLXBhZ2UtJHtQYWdpbmF0aW9uLnBhZ2luYXRpb25Db3VudGVyfWA7XG5cdGN1cnJlbnRQYWdlU2VsZWN0SWQgPSBgcGFnaW5hdGlvbi1zZWxlY3QtY3VycmVudC1wYWdlLSR7UGFnaW5hdGlvbi5wYWdpbmF0aW9uQ291bnRlcn1gO1xuXG5cdGl0ZW1zUGVyUGFnZVRleHQgPSB0aGlzLmkxOG4uZ2V0T3ZlcnJpZGFibGUoXCJQQUdJTkFUSU9OLklURU1TX1BFUl9QQUdFXCIpO1xuXHRvcHRpb25zTGlzdFRleHQgPSB0aGlzLmkxOG4uZ2V0T3ZlcnJpZGFibGUoXCJQQUdJTkFUSU9OLk9QRU5fTElTVF9PRl9PUFRJT05TXCIpO1xuXHRiYWNrd2FyZFRleHQgPSB0aGlzLmkxOG4uZ2V0T3ZlcnJpZGFibGUoXCJQQUdJTkFUSU9OLkJBQ0tXQVJEXCIpO1xuXHRmb3J3YXJkVGV4dCA9IHRoaXMuaTE4bi5nZXRPdmVycmlkYWJsZShcIlBBR0lOQVRJT04uRk9SV0FSRFwiKTtcblx0dG90YWxJdGVtc1RleHQgPSB0aGlzLmkxOG4uZ2V0T3ZlcnJpZGFibGUoXCJQQUdJTkFUSU9OLlRPVEFMX0lURU1TXCIpO1xuXHR0b3RhbEl0ZW1UZXh0ID0gdGhpcy5pMThuLmdldE92ZXJyaWRhYmxlKFwiUEFHSU5BVElPTi5UT1RBTF9JVEVNXCIpO1xuXHR0b3RhbEl0ZW1zVW5rbm93blRleHQgPSB0aGlzLmkxOG4uZ2V0T3ZlcnJpZGFibGUoXCJQQUdJTkFUSU9OLlRPVEFMX0lURU1TX1VOS05PV05cIik7XG5cdHBhZ2VUZXh0ID0gdGhpcy5pMThuLmdldE92ZXJyaWRhYmxlKFwiUEFHSU5BVElPTi5QQUdFXCIpO1xuXHRvZkxhc3RQYWdlc1RleHQgPSB0aGlzLmkxOG4uZ2V0T3ZlcnJpZGFibGUoXCJQQUdJTkFUSU9OLk9GX0xBU1RfUEFHRVNcIik7XG5cdG9mTGFzdFBhZ2VUZXh0ID0gdGhpcy5pMThuLmdldE92ZXJyaWRhYmxlKFwiUEFHSU5BVElPTi5PRl9MQVNUX1BBR0VcIik7XG5cblx0cHJvdGVjdGVkIF9wYWdlT3B0aW9ucyA9IFtdO1xuXG5cdGNvbnN0cnVjdG9yKHByb3RlY3RlZCBpMThuOiBJMThuLCBwcm90ZWN0ZWQgZXhwZXJpbWVudGFsOiBFeHBlcmltZW50YWxTZXJ2aWNlKSB7XG5cdFx0UGFnaW5hdGlvbi5wYWdpbmF0aW9uQ291bnRlcisrO1xuXHR9XG59XG4iXX0=
|
|
@@ -89,6 +89,23 @@ const carbonFlatpickrMonthSelectPlugin = fp => {
|
|
|
89
89
|
};
|
|
90
90
|
};
|
|
91
91
|
|
|
92
|
+
var _a, _b;
|
|
93
|
+
/**
|
|
94
|
+
* Due to type error, we have to use square brackets property accessor
|
|
95
|
+
* There is a webpack issue when attempting to access exported languages from flatpickr l10n Angular 14+ apps
|
|
96
|
+
* languages.default[locale] fails in app consuming CCA library but passes in test
|
|
97
|
+
* languages.default.default[locale] fails in test but works in app consuming CCA library.
|
|
98
|
+
*
|
|
99
|
+
* To please both scenarios, we are adding a condition to prevent tests from failing
|
|
100
|
+
*/
|
|
101
|
+
if ((_b = (_a = languages.default) === null || _a === void 0 ? void 0 : _a.default["en"]) === null || _b === void 0 ? void 0 : _b.weekdays) {
|
|
102
|
+
languages.default.default["en"].weekdays.shorthand = languages.default.default["en"].weekdays.longhand.map(day => {
|
|
103
|
+
if (day === "Thursday") {
|
|
104
|
+
return "Th";
|
|
105
|
+
}
|
|
106
|
+
return day.charAt(0);
|
|
107
|
+
});
|
|
108
|
+
}
|
|
92
109
|
/**
|
|
93
110
|
* [See demo](../../?path=/story/components-date-picker--single)
|
|
94
111
|
*/
|
|
@@ -213,6 +230,7 @@ class DatePicker {
|
|
|
213
230
|
this._flatpickrOptions = Object.assign({}, this._flatpickrOptions, options);
|
|
214
231
|
}
|
|
215
232
|
get flatpickrOptions() {
|
|
233
|
+
var _a;
|
|
216
234
|
const plugins = [...this.plugins, carbonFlatpickrMonthSelectPlugin];
|
|
217
235
|
if (this.range) {
|
|
218
236
|
plugins.push(rangePlugin({ input: `#${this.id}-rangeInput`, position: "left" }));
|
|
@@ -221,7 +239,7 @@ class DatePicker {
|
|
|
221
239
|
mode: this.range ? "range" : "single",
|
|
222
240
|
plugins,
|
|
223
241
|
dateFormat: this.dateFormat,
|
|
224
|
-
locale: languages.default[this.language]
|
|
242
|
+
locale: ((_a = languages.default) === null || _a === void 0 ? void 0 : _a.default[this.language]) || languages.default[this.language]
|
|
225
243
|
});
|
|
226
244
|
}
|
|
227
245
|
ngOnInit() {
|
|
@@ -270,15 +288,6 @@ class DatePicker {
|
|
|
270
288
|
}
|
|
271
289
|
}
|
|
272
290
|
}
|
|
273
|
-
ngAfterContentInit() {
|
|
274
|
-
languages.default.en.weekdays.shorthand
|
|
275
|
-
= languages.default.en.weekdays.longhand.map(day => {
|
|
276
|
-
if (day === "Thursday") {
|
|
277
|
-
return "Th";
|
|
278
|
-
}
|
|
279
|
-
return day.charAt(0);
|
|
280
|
-
});
|
|
281
|
-
}
|
|
282
291
|
onFocus() {
|
|
283
292
|
// Updates the month manually when calendar mode is range because month
|
|
284
293
|
// will not update properly without manually updating them on focus.
|