Socket
Socket
Sign inDemoInstall

@filestack/loader

Package Overview
Dependencies
0
Maintainers
3
Versions
9
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 1.0.5 to 1.0.6

8

CHANGELOG.md

@@ -5,2 +5,10 @@ # Changelog

### [1.0.6](https://github.com/filestack/filestack-loader-js/compare/v1.0.5...v1.0.6) (2020-03-25)
### Bug Fixes
* **node:** disable register module method when window is missing ([13f57f5](https://github.com/filestack/filestack-loader-js/commit/13f57f5da2f12cad91e92e3375bd356262e667ff))
* **nodejs:** window is not defined in node env ([293bbdd](https://github.com/filestack/filestack-loader-js/commit/293bbddcaa4665d6402ddb884253e9ab93c752ef))
### [1.0.5](https://github.com/filestack/filestack-loader-js/compare/v1.0.4...v1.0.5) (2020-03-25)

@@ -7,0 +15,0 @@

4

dist/index.esm.js

@@ -1,2 +0,2 @@

var FilestackLoader=function(e){var t={};function r(o){if(t[o])return t[o].exports;var n=t[o]={i:o,l:!1,exports:{}};return e[o].call(n.exports,n,n.exports,r),n.l=!0,n.exports}return r.m=e,r.c=t,r.d=function(e,t,o){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(r.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)r.d(o,n,function(t){return e[t]}.bind(null,n));return o},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=0)}([function(e,t,r){"use strict";r.r(t),r.d(t,"loadModules",(function(){return s})),r.d(t,"loadModule",(function(){return l})),r.d(t,"registerModule",(function(){return i})),r.d(t,"loadCss",(function(){return u})),r.d(t,"FILESTACK_MODULES",(function(){return c}));const o={},n=(()=>{let e=window;"object"!=typeof e&&(e=o);let t=e.filestackInternals;return t||(t={modules:{}},window.filestackInternals=t),t.modules||(t.modules={}),t})(),a=n&&n.modules,d=(e,t,r)=>{e.detachEvent?e.detachEvent("onreadystatechange",t):e.removeEventListener(r,t,!1)},s=e=>Promise.all(e.map(({id:e,url:t})=>l(e,t))).then(t=>{const r={};return t.forEach((t,o)=>{const n=e[o];r[n.id]=t}),r}),l=(e,t)=>{if(!e)throw new Error("Module id is required");let r=a[e];return e="fs-loader-"+e,r||(a[e]={},r=a[e]),r.instance?Promise.resolve(r.instance):r.promise?r.promise:r.promise=new Promise((r,o)=>{const n=t=>{if("load"===t.type||/^(complete|loaded)$/.test((t.currentTarget||t.srcElement).readyState)){const s=t.currentTarget||t.srcElement;d(s,n,"load"),d(s,o,"error"),setTimeout(()=>r(a[e]?a[e].instance:void 0),10)}},s=document.createElement("script");s.id=e,!s.attachEvent||s.attachEvent.toString&&s.attachEvent.toString().indexOf("[native code")<0?(s.addEventListener("load",n,!1),s.addEventListener("onerror",o,!1)):s.attachEvent("onreadystatechange",n),s.setAttribute("crossorigin","anonymous"),s.setAttribute("charset","utf-8"),s.setAttribute("async","true"),s.src=t,document.body.appendChild(s)})},i=(e,t,r)=>{if(!e)throw new Error("Module id is required");if(!a)throw new Error("Loader is not initialized");a[e="fs-loader-"+e]&&(a[e]={instance:t,metadata:r})},u=e=>null!==document.querySelector(`link[href="${e}"]`)?Promise.resolve():new Promise(t=>{const r=document.getElementsByTagName("head")[0],o=document.createElement("link"),n=()=>{t(),o.removeEventListener("load",n)};o.rel="stylesheet",o.href=e,o.addEventListener("load",n),r.appendChild(o)});var c;!function(e){e.FILESTACK_SDK="filestack-sdk",e.TRANSFORMS_UI="transforms-ui",e.PICKER="picker"}(c||(c={}))}]);const _FilestackLoader$loadModules=FilestackLoader.loadModules,_FilestackLoader$loadModule=FilestackLoader.loadModule,_FilestackLoader$registerModule=FilestackLoader.registerModule,_FilestackLoader$loadCss=FilestackLoader.loadCss,_FilestackLoader$FILESTACK_MODULES=FilestackLoader.FILESTACK_MODULES;export{_FilestackLoader$loadModules as loadModules,_FilestackLoader$loadModule as loadModule,_FilestackLoader$registerModule as registerModule,_FilestackLoader$loadCss as loadCss,_FilestackLoader$FILESTACK_MODULES as FILESTACK_MODULES};
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9GaWxlc3RhY2tMb2FkZXIvd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vRmlsZXN0YWNrTG9hZGVyLy4vZGlzdC9tb2R1bGUvaW5kZXguanMiXSwibmFtZXMiOlsiaW5zdGFsbGVkTW9kdWxlcyIsIl9fd2VicGFja19yZXF1aXJlX18iLCJtb2R1bGVJZCIsImV4cG9ydHMiLCJtb2R1bGUiLCJpIiwibCIsIm1vZHVsZXMiLCJjYWxsIiwibSIsImMiLCJkIiwibmFtZSIsImdldHRlciIsIm8iLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImVudW1lcmFibGUiLCJnZXQiLCJyIiwiU3ltYm9sIiwidG9TdHJpbmdUYWciLCJ2YWx1ZSIsInQiLCJtb2RlIiwiX19lc01vZHVsZSIsIm5zIiwiY3JlYXRlIiwia2V5IiwiYmluZCIsIm4iLCJvYmplY3QiLCJwcm9wZXJ0eSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwicCIsInMiLCJnbG9iYWxIb2xkZXIiLCJmaWxlc3RhY2tJbnRlcm5hbHMiLCJob2xkZXIiLCJ3aW5kb3ciLCJuYW1lc3BhY2UiLCJpbml0aWFsaXplR2xvYmFsTmFtZXNwYWNlIiwicmVtb3ZlTGlzdGVuZXIiLCJub2RlIiwiZnVuYyIsImRldGFjaEV2ZW50IiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImxvYWRNb2R1bGVzIiwibW9kdWxlc0xpc3QiLCJQcm9taXNlIiwiYWxsIiwibWFwIiwiaWQiLCJ1cmwiLCJsb2FkTW9kdWxlIiwidGhlbiIsInJlcyIsInRvUmV0dXJuIiwiZm9yRWFjaCIsIm1vZCIsImlkeCIsImVsIiwiRXJyb3IiLCJtb2R1bGVEZWZpbml0aW9uIiwiaW5zdGFuY2UiLCJyZXNvbHZlIiwicHJvbWlzZSIsInJlamVjdCIsInJlYWR5U3RhdGVDaGFuZ2UiLCJldnQiLCJ0eXBlIiwidGVzdCIsImN1cnJlbnRUYXJnZXQiLCJzcmNFbGVtZW50IiwicmVhZHlTdGF0ZSIsInNldFRpbWVvdXQiLCJ1bmRlZmluZWQiLCJzY3JpcHQiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJhdHRhY2hFdmVudCIsInRvU3RyaW5nIiwiaW5kZXhPZiIsImFkZEV2ZW50TGlzdGVuZXIiLCJzZXRBdHRyaWJ1dGUiLCJzcmMiLCJib2R5IiwiYXBwZW5kQ2hpbGQiLCJyZWdpc3Rlck1vZHVsZSIsIm1ldGFkYXRhIiwibG9hZENzcyIsInF1ZXJ5U2VsZWN0b3IiLCJoZWFkIiwiZ2V0RWxlbWVudHNCeVRhZ05hbWUiLCJsaW5rIiwibG9hZGVkIiwicmVsIiwiaHJlZiIsIkZJTEVTVEFDS19NT0RVTEVTIl0sIm1hcHBpbmdzIjoiZ0NBQ0UsSUFBSUEsRUFBbUIsR0FHdkIsU0FBU0MsRUFBb0JDLEdBRzVCLEdBQUdGLEVBQWlCRSxHQUNuQixPQUFPRixFQUFpQkUsR0FBVUMsUUFHbkMsSUFBSUMsRUFBU0osRUFBaUJFLEdBQVksQ0FDekNHLEVBQUdILEVBQ0hJLEdBQUcsRUFDSEgsUUFBUyxJQVVWLE9BTkFJLEVBQVFMLEdBQVVNLEtBQUtKLEVBQU9ELFFBQVNDLEVBQVFBLEVBQU9ELFFBQVNGLEdBRy9ERyxFQUFPRSxHQUFJLEVBR0pGLEVBQU9ELFFBMERmLE9BckRBRixFQUFvQlEsRUFBSUYsRUFHeEJOLEVBQW9CUyxFQUFJVixFQUd4QkMsRUFBb0JVLEVBQUksU0FBU1IsRUFBU1MsRUFBTUMsR0FDM0NaLEVBQW9CYSxFQUFFWCxFQUFTUyxJQUNsQ0csT0FBT0MsZUFBZWIsRUFBU1MsRUFBTSxDQUFFSyxZQUFZLEVBQU1DLElBQUtMLEtBS2hFWixFQUFvQmtCLEVBQUksU0FBU2hCLEdBQ1gsb0JBQVhpQixRQUEwQkEsT0FBT0MsYUFDMUNOLE9BQU9DLGVBQWViLEVBQVNpQixPQUFPQyxZQUFhLENBQUVDLE1BQU8sV0FFN0RQLE9BQU9DLGVBQWViLEVBQVMsYUFBYyxDQUFFbUIsT0FBTyxLQVF2RHJCLEVBQW9Cc0IsRUFBSSxTQUFTRCxFQUFPRSxHQUV2QyxHQURVLEVBQVBBLElBQVVGLEVBQVFyQixFQUFvQnFCLElBQy9CLEVBQVBFLEVBQVUsT0FBT0YsRUFDcEIsR0FBVyxFQUFQRSxHQUE4QixpQkFBVkYsR0FBc0JBLEdBQVNBLEVBQU1HLFdBQVksT0FBT0gsRUFDaEYsSUFBSUksRUFBS1gsT0FBT1ksT0FBTyxNQUd2QixHQUZBMUIsRUFBb0JrQixFQUFFTyxHQUN0QlgsT0FBT0MsZUFBZVUsRUFBSSxVQUFXLENBQUVULFlBQVksRUFBTUssTUFBT0EsSUFDdEQsRUFBUEUsR0FBNEIsaUJBQVRGLEVBQW1CLElBQUksSUFBSU0sS0FBT04sRUFBT3JCLEVBQW9CVSxFQUFFZSxFQUFJRSxFQUFLLFNBQVNBLEdBQU8sT0FBT04sRUFBTU0sSUFBUUMsS0FBSyxLQUFNRCxJQUM5SSxPQUFPRixHQUlSekIsRUFBb0I2QixFQUFJLFNBQVMxQixHQUNoQyxJQUFJUyxFQUFTVCxHQUFVQSxFQUFPcUIsV0FDN0IsV0FBd0IsT0FBT3JCLEVBQWdCLFNBQy9DLFdBQThCLE9BQU9BLEdBRXRDLE9BREFILEVBQW9CVSxFQUFFRSxFQUFRLElBQUtBLEdBQzVCQSxHQUlSWixFQUFvQmEsRUFBSSxTQUFTaUIsRUFBUUMsR0FBWSxPQUFPakIsT0FBT2tCLFVBQVVDLGVBQWUxQixLQUFLdUIsRUFBUUMsSUFHekcvQixFQUFvQmtDLEVBQUksR0FJakJsQyxFQUFvQkEsRUFBb0JtQyxFQUFJLEcsK0JDbEZyRCw2T0FDTUMsRUFBZSxHQXFCZkMsRUFwQjRCLE1BQzlCLElBQUlDLEVBQVNDLE9BRVMsaUJBQVhELElBQ1BBLEVBQVNGLEdBR2IsSUFBSUksRUFBWUYsRUFBT0QsbUJBV3ZCLE9BVktHLElBQ0RBLEVBQVksQ0FDUmxDLFFBQVMsSUFHYmlDLE9BQU9GLG1CQUFxQkcsR0FFM0JBLEVBQVVsQyxVQUNYa0MsRUFBVWxDLFFBQVUsSUFFakJrQyxHQUVnQkMsR0FDckJuQyxFQUFVK0IsR0FBc0JBLEVBQW1CL0IsUUFRbkRvQyxFQUFpQixDQUFDQyxFQUFNQyxFQUFNakMsS0FDNUJnQyxFQUFLRSxZQUNMRixFQUFLRSxZQUFZLHFCQUFzQkQsR0FHdkNELEVBQUtHLG9CQUFvQm5DLEVBQU1pQyxHQUFNLElBUWhDRyxFQUFlQyxHQUFnQkMsUUFBUUMsSUFBSUYsRUFBWUcsSUFBSSxFQUFHQyxLQUFJQyxTQUFVQyxFQUFXRixFQUFJQyxLQUFPRSxLQUFNQyxJQUNqSCxNQUFNQyxFQUFXLEdBS2pCLE9BSkFELEVBQUlFLFFBQVEsQ0FBQ0MsRUFBS0MsS0FDZCxNQUFNQyxFQUFLYixFQUFZWSxHQUN2QkgsRUFBU0ksRUFBR1QsSUFBTU8sSUFFZkYsSUFRRUgsRUFBYSxDQUFDRixFQUFJQyxLQUMzQixJQUFLRCxFQUNELE1BQU0sSUFBSVUsTUFBTSx5QkFFcEIsSUFBSUMsRUFBbUJ6RCxFQUFROEMsR0FNL0IsT0FMQUEsRUEvRGtCLGFBK0RHQSxFQUNoQlcsSUFDRHpELEVBQVE4QyxHQUFNLEdBQ2RXLEVBQW1CekQsRUFBUThDLElBRTNCVyxFQUFpQkMsU0FDVmYsUUFBUWdCLFFBQVFGLEVBQWlCQyxVQUV4Q0QsRUFBaUJHLFFBQ1ZILEVBQWlCRyxRQUVyQkgsRUFBaUJHLFFBQVUsSUFBSWpCLFFBQVEsQ0FBQ2dCLEVBQVNFLEtBQ3BELE1BQU1DLEVBQW9CQyxJQUN0QixHQUFpQixTQUFiQSxFQUFJQyxNQUFvQixzQkFBc0JDLE1BQU1GLEVBQUlHLGVBQWlCSCxFQUFJSSxZQUFZQyxZQUFjLENBQ3ZHLE1BQU0vQixFQUFPMEIsRUFBSUcsZUFBaUJILEVBQUlJLFdBQ3RDL0IsRUFBZUMsRUFBTXlCLEVBQWtCLFFBQ3ZDMUIsRUFBZUMsRUFBTXdCLEVBQVEsU0FFN0JRLFdBQVcsSUFBTVYsRUFBUTNELEVBQVE4QyxHQUFNOUMsRUFBUThDLEdBQUlZLGNBQVdZLEdBQVksTUFHNUVDLEVBQVNDLFNBQVNDLGNBQWMsVUFDdENGLEVBQU96QixHQUFLQSxHQUVSeUIsRUFBT0csYUFBaUJILEVBQU9HLFlBQVlDLFVBQVlKLEVBQU9HLFlBQVlDLFdBQVdDLFFBQVEsZ0JBQWtCLEdBSy9HTCxFQUFPTSxpQkFBaUIsT0FBUWYsR0FBa0IsR0FDbERTLEVBQU9NLGlCQUFpQixVQUFXaEIsR0FBUSxJQUozQ1UsRUFBT0csWUFBWSxxQkFBc0JaLEdBTTdDUyxFQUFPTyxhQUFhLGNBQWUsYUFDbkNQLEVBQU9PLGFBQWEsVUFBVyxTQUMvQlAsRUFBT08sYUFBYSxRQUFTLFFBQzdCUCxFQUFPUSxJQUFNaEMsRUFDYnlCLFNBQVNRLEtBQUtDLFlBQVlWLE1BVXJCVyxFQUFpQixDQUFDcEMsRUFBSVksRUFBVXlCLEtBQ3pDLElBQUtyQyxFQUNELE1BQU0sSUFBSVUsTUFBTSx5QkFFcEIsSUFBS3hELEVBQ0QsTUFBTSxJQUFJd0QsTUFBTSw2QkFHaEJ4RCxFQURKOEMsRUFwSGtCLGFBb0hHQSxLQUVqQjlDLEVBQVE4QyxHQUFNLENBQUVZLFdBQVV5QixjQVFyQkMsRUFBV3JDLEdBRVEsT0FEQXlCLFNBQVNhLGNBQWMsY0FBY3RDLE9BRXRESixRQUFRZ0IsVUFFWixJQUFJaEIsUUFBU2dCLElBQ2hCLE1BQU0yQixFQUFPZCxTQUFTZSxxQkFBcUIsUUFBUSxHQUM3Q0MsRUFBT2hCLFNBQVNDLGNBQWMsUUFDOUJnQixFQUFTLEtBQ1g5QixJQUNBNkIsRUFBS2hELG9CQUFvQixPQUFRaUQsSUFFckNELEVBQUtFLElBQU0sYUFDWEYsRUFBS0csS0FBTzVDLEVBQ1p5QyxFQUFLWCxpQkFBaUIsT0FBUVksR0FDOUJILEVBQUtMLFlBQVlPLEtBTWxCLElBQUlJLEdBQ1gsU0FBV0EsR0FDUEEsRUFBaUMsY0FBSSxnQkFDckNBLEVBQWlDLGNBQUksZ0JBQ3JDQSxFQUEwQixPQUFJLFNBSGxDLENBSUdBLElBQXNCQSxFQUFvQixRIiwiZmlsZSI6ImluZGV4LmVzbS5qcyIsInNvdXJjZXNDb250ZW50IjpbIiBcdC8vIFRoZSBtb2R1bGUgY2FjaGVcbiBcdHZhciBpbnN0YWxsZWRNb2R1bGVzID0ge307XG5cbiBcdC8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG4gXHRmdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cbiBcdFx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG4gXHRcdGlmKGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdKSB7XG4gXHRcdFx0cmV0dXJuIGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdLmV4cG9ydHM7XG4gXHRcdH1cbiBcdFx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcbiBcdFx0dmFyIG1vZHVsZSA9IGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdID0ge1xuIFx0XHRcdGk6IG1vZHVsZUlkLFxuIFx0XHRcdGw6IGZhbHNlLFxuIFx0XHRcdGV4cG9ydHM6IHt9XG4gXHRcdH07XG5cbiBcdFx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG4gXHRcdG1vZHVsZXNbbW9kdWxlSWRdLmNhbGwobW9kdWxlLmV4cG9ydHMsIG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG4gXHRcdC8vIEZsYWcgdGhlIG1vZHVsZSBhcyBsb2FkZWRcbiBcdFx0bW9kdWxlLmwgPSB0cnVlO1xuXG4gXHRcdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG4gXHRcdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbiBcdH1cblxuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZXMgb2JqZWN0IChfX3dlYnBhY2tfbW9kdWxlc19fKVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5tID0gbW9kdWxlcztcblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGUgY2FjaGVcbiBcdF9fd2VicGFja19yZXF1aXJlX18uYyA9IGluc3RhbGxlZE1vZHVsZXM7XG5cbiBcdC8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb24gZm9yIGhhcm1vbnkgZXhwb3J0c1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kID0gZnVuY3Rpb24oZXhwb3J0cywgbmFtZSwgZ2V0dGVyKSB7XG4gXHRcdGlmKCFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywgbmFtZSkpIHtcbiBcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgbmFtZSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGdldHRlciB9KTtcbiBcdFx0fVxuIFx0fTtcblxuIFx0Ly8gZGVmaW5lIF9fZXNNb2R1bGUgb24gZXhwb3J0c1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5yID0gZnVuY3Rpb24oZXhwb3J0cykge1xuIFx0XHRpZih0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZpbmVkJyAmJiBTeW1ib2wudG9TdHJpbmdUYWcpIHtcbiBcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgU3ltYm9sLnRvU3RyaW5nVGFnLCB7IHZhbHVlOiAnTW9kdWxlJyB9KTtcbiBcdFx0fVxuIFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuIFx0fTtcblxuIFx0Ly8gY3JlYXRlIGEgZmFrZSBuYW1lc3BhY2Ugb2JqZWN0XG4gXHQvLyBtb2RlICYgMTogdmFsdWUgaXMgYSBtb2R1bGUgaWQsIHJlcXVpcmUgaXRcbiBcdC8vIG1vZGUgJiAyOiBtZXJnZSBhbGwgcHJvcGVydGllcyBvZiB2YWx1ZSBpbnRvIHRoZSBuc1xuIFx0Ly8gbW9kZSAmIDQ6IHJldHVybiB2YWx1ZSB3aGVuIGFscmVhZHkgbnMgb2JqZWN0XG4gXHQvLyBtb2RlICYgOHwxOiBiZWhhdmUgbGlrZSByZXF1aXJlXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnQgPSBmdW5jdGlvbih2YWx1ZSwgbW9kZSkge1xuIFx0XHRpZihtb2RlICYgMSkgdmFsdWUgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKHZhbHVlKTtcbiBcdFx0aWYobW9kZSAmIDgpIHJldHVybiB2YWx1ZTtcbiBcdFx0aWYoKG1vZGUgJiA0KSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlICYmIHZhbHVlLl9fZXNNb2R1bGUpIHJldHVybiB2YWx1ZTtcbiBcdFx0dmFyIG5zID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5yKG5zKTtcbiBcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KG5zLCAnZGVmYXVsdCcsIHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IHZhbHVlIH0pO1xuIFx0XHRpZihtb2RlICYgMiAmJiB0eXBlb2YgdmFsdWUgIT0gJ3N0cmluZycpIGZvcih2YXIga2V5IGluIHZhbHVlKSBfX3dlYnBhY2tfcmVxdWlyZV9fLmQobnMsIGtleSwgZnVuY3Rpb24oa2V5KSB7IHJldHVybiB2YWx1ZVtrZXldOyB9LmJpbmQobnVsbCwga2V5KSk7XG4gXHRcdHJldHVybiBucztcbiBcdH07XG5cbiBcdC8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSBmdW5jdGlvbihtb2R1bGUpIHtcbiBcdFx0dmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/XG4gXHRcdFx0ZnVuY3Rpb24gZ2V0RGVmYXVsdCgpIHsgcmV0dXJuIG1vZHVsZVsnZGVmYXVsdCddOyB9IDpcbiBcdFx0XHRmdW5jdGlvbiBnZXRNb2R1bGVFeHBvcnRzKCkgeyByZXR1cm4gbW9kdWxlOyB9O1xuIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCAnYScsIGdldHRlcik7XG4gXHRcdHJldHVybiBnZXR0ZXI7XG4gXHR9O1xuXG4gXHQvLyBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGxcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubyA9IGZ1bmN0aW9uKG9iamVjdCwgcHJvcGVydHkpIHsgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIHByb3BlcnR5KTsgfTtcblxuIFx0Ly8gX193ZWJwYWNrX3B1YmxpY19wYXRoX19cbiBcdF9fd2VicGFja19yZXF1aXJlX18ucCA9IFwiXCI7XG5cblxuIFx0Ly8gTG9hZCBlbnRyeSBtb2R1bGUgYW5kIHJldHVybiBleHBvcnRzXG4gXHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXyhfX3dlYnBhY2tfcmVxdWlyZV9fLnMgPSAwKTtcbiIsImNvbnN0IE1PRFVMRV9QUkVGSVggPSAnZnMtbG9hZGVyLSc7XG5jb25zdCBnbG9iYWxIb2xkZXIgPSB7fTtcbmNvbnN0IGluaXRpYWxpemVHbG9iYWxOYW1lc3BhY2UgPSAoKSA9PiB7XG4gICAgbGV0IGhvbGRlciA9IHdpbmRvdztcbiAgICAvLyBpZiB0aGVyZSBpcyBubyB3aW5kb3cgb2JqIHVzZSBub2RlanMgZ2xvYmFsIGxpYiB2YXJpYWJsZVxuICAgIGlmICh0eXBlb2YgaG9sZGVyICE9PSAnb2JqZWN0Jykge1xuICAgICAgICBob2xkZXIgPSBnbG9iYWxIb2xkZXI7XG4gICAgfVxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBsZXQgbmFtZXNwYWNlID0gaG9sZGVyLmZpbGVzdGFja0ludGVybmFscztcbiAgICBpZiAoIW5hbWVzcGFjZSkge1xuICAgICAgICBuYW1lc3BhY2UgPSB7XG4gICAgICAgICAgICBtb2R1bGVzOiB7fSxcbiAgICAgICAgfTtcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICB3aW5kb3cuZmlsZXN0YWNrSW50ZXJuYWxzID0gbmFtZXNwYWNlO1xuICAgIH1cbiAgICBpZiAoIW5hbWVzcGFjZS5tb2R1bGVzKSB7XG4gICAgICAgIG5hbWVzcGFjZS5tb2R1bGVzID0ge307XG4gICAgfVxuICAgIHJldHVybiBuYW1lc3BhY2U7XG59O1xuY29uc3QgZmlsZXN0YWNrSW50ZXJuYWxzID0gaW5pdGlhbGl6ZUdsb2JhbE5hbWVzcGFjZSgpO1xuY29uc3QgbW9kdWxlcyA9IGZpbGVzdGFja0ludGVybmFscyAmJiBmaWxlc3RhY2tJbnRlcm5hbHMubW9kdWxlcztcbi8qKlxuICogUmVtb3ZlIGxpc3RlbmVycyAoYnJvd3NlciBjb21wYXRpYmxlKVxuICpcbiAqIEBwYXJhbSBub2RlXG4gKiBAcGFyYW0gZnVuY1xuICogQHBhcmFtIG5hbWVcbiAqL1xuY29uc3QgcmVtb3ZlTGlzdGVuZXIgPSAobm9kZSwgZnVuYywgbmFtZSkgPT4ge1xuICAgIGlmIChub2RlLmRldGFjaEV2ZW50KSB7XG4gICAgICAgIG5vZGUuZGV0YWNoRXZlbnQoJ29ucmVhZHlzdGF0ZWNoYW5nZScsIGZ1bmMpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgbm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKG5hbWUsIGZ1bmMsIGZhbHNlKTtcbiAgICB9XG59O1xuLyoqXG4gKiBMb2FkIG11bHRpcGxlIG1vZHVsZXNcbiAqXG4gKiBAcGFyYW0geyp9IG1vZHVsZXNcbiAqL1xuZXhwb3J0IGNvbnN0IGxvYWRNb2R1bGVzID0gKG1vZHVsZXNMaXN0KSA9PiBQcm9taXNlLmFsbChtb2R1bGVzTGlzdC5tYXAoKHsgaWQsIHVybCB9KSA9PiBsb2FkTW9kdWxlKGlkLCB1cmwpKSkudGhlbigocmVzKSA9PiB7XG4gICAgY29uc3QgdG9SZXR1cm4gPSB7fTtcbiAgICByZXMuZm9yRWFjaCgobW9kLCBpZHgpID0+IHtcbiAgICAgICAgY29uc3QgZWwgPSBtb2R1bGVzTGlzdFtpZHhdO1xuICAgICAgICB0b1JldHVybltlbC5pZF0gPSBtb2Q7XG4gICAgfSk7XG4gICAgcmV0dXJuIHRvUmV0dXJuO1xufSk7XG4vKipcbiAqIExvYWQgc2luZ2xlIG1vZHVsZSBmcm9tIHVybCB3aXRoIGdpdmVuIGlkXG4gKlxuICogQHBhcmFtIHsqfSBpZCAtIG1vZHVsZSBpZFxuICogQHBhcmFtIHsqfSB1cmxcbiAqL1xuZXhwb3J0IGNvbnN0IGxvYWRNb2R1bGUgPSAoaWQsIHVybCkgPT4ge1xuICAgIGlmICghaWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdNb2R1bGUgaWQgaXMgcmVxdWlyZWQnKTtcbiAgICB9XG4gICAgbGV0IG1vZHVsZURlZmluaXRpb24gPSBtb2R1bGVzW2lkXTtcbiAgICBpZCA9IE1PRFVMRV9QUkVGSVggKyBpZDtcbiAgICBpZiAoIW1vZHVsZURlZmluaXRpb24pIHtcbiAgICAgICAgbW9kdWxlc1tpZF0gPSB7fTtcbiAgICAgICAgbW9kdWxlRGVmaW5pdGlvbiA9IG1vZHVsZXNbaWRdO1xuICAgIH1cbiAgICBpZiAobW9kdWxlRGVmaW5pdGlvbi5pbnN0YW5jZSkge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG1vZHVsZURlZmluaXRpb24uaW5zdGFuY2UpO1xuICAgIH1cbiAgICBpZiAobW9kdWxlRGVmaW5pdGlvbi5wcm9taXNlKSB7XG4gICAgICAgIHJldHVybiBtb2R1bGVEZWZpbml0aW9uLnByb21pc2U7XG4gICAgfVxuICAgIHJldHVybiBtb2R1bGVEZWZpbml0aW9uLnByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIGNvbnN0IHJlYWR5U3RhdGVDaGFuZ2UgPSAoZXZ0KSA9PiB7XG4gICAgICAgICAgICBpZiAoZXZ0LnR5cGUgPT09ICdsb2FkJyB8fCAoL14oY29tcGxldGV8bG9hZGVkKSQvLnRlc3QoKGV2dC5jdXJyZW50VGFyZ2V0IHx8IGV2dC5zcmNFbGVtZW50KS5yZWFkeVN0YXRlKSkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBub2RlID0gZXZ0LmN1cnJlbnRUYXJnZXQgfHwgZXZ0LnNyY0VsZW1lbnQ7XG4gICAgICAgICAgICAgICAgcmVtb3ZlTGlzdGVuZXIobm9kZSwgcmVhZHlTdGF0ZUNoYW5nZSwgJ2xvYWQnKTtcbiAgICAgICAgICAgICAgICByZW1vdmVMaXN0ZW5lcihub2RlLCByZWplY3QsICdlcnJvcicpO1xuICAgICAgICAgICAgICAgIC8vIHNsb3cgZG93IGNoZWNraW5nIGlmIG1vZHVsZSBpcyBsb2FkZWQgdG8gZW5zdXJlIHRoYXQgc2NyaXB0IHRoYXQgIHJlZ2lzdGVyIG1vZHVsZSBpcyBjYWxsZWRcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHJlc29sdmUobW9kdWxlc1tpZF0gPyBtb2R1bGVzW2lkXS5pbnN0YW5jZSA6IHVuZGVmaW5lZCksIDEwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgY29uc3Qgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XG4gICAgICAgIHNjcmlwdC5pZCA9IGlkO1xuICAgICAgICAvLyBAdHMtaWdub3JlIGZpeCBmb3IgSUVcbiAgICAgICAgaWYgKHNjcmlwdC5hdHRhY2hFdmVudCAmJiAhKHNjcmlwdC5hdHRhY2hFdmVudC50b1N0cmluZyAmJiBzY3JpcHQuYXR0YWNoRXZlbnQudG9TdHJpbmcoKS5pbmRleE9mKCdbbmF0aXZlIGNvZGUnKSA8IDApKSB7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICBzY3JpcHQuYXR0YWNoRXZlbnQoJ29ucmVhZHlzdGF0ZWNoYW5nZScsIHJlYWR5U3RhdGVDaGFuZ2UpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgc2NyaXB0LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCByZWFkeVN0YXRlQ2hhbmdlLCBmYWxzZSk7XG4gICAgICAgICAgICBzY3JpcHQuYWRkRXZlbnRMaXN0ZW5lcignb25lcnJvcicsIHJlamVjdCwgZmFsc2UpO1xuICAgICAgICB9XG4gICAgICAgIHNjcmlwdC5zZXRBdHRyaWJ1dGUoJ2Nyb3Nzb3JpZ2luJywgJ2Fub255bW91cycpO1xuICAgICAgICBzY3JpcHQuc2V0QXR0cmlidXRlKCdjaGFyc2V0JywgJ3V0Zi04Jyk7XG4gICAgICAgIHNjcmlwdC5zZXRBdHRyaWJ1dGUoJ2FzeW5jJywgJ3RydWUnKTtcbiAgICAgICAgc2NyaXB0LnNyYyA9IHVybDtcbiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzY3JpcHQpO1xuICAgIH0pO1xufTtcbi8qKlxuICogUmVnaXN0ZXIgdGhhdCBtb2R1bGUgaXMgcmVhZHlcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gaWRcbiAqIEBwYXJhbSB7YW55fSBpbnN0YW5jZVxuICogQHBhcmFtIHthbnl9IG1ldGFkYXRhIC0gYWRkaXRpb25hbCBtb2R1bGUgbWV0YWRhdGEgbGlrZSB2ZXJzaW9uXG4gKi9cbmV4cG9ydCBjb25zdCByZWdpc3Rlck1vZHVsZSA9IChpZCwgaW5zdGFuY2UsIG1ldGFkYXRhKSA9PiB7XG4gICAgaWYgKCFpZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ01vZHVsZSBpZCBpcyByZXF1aXJlZCcpO1xuICAgIH1cbiAgICBpZiAoIW1vZHVsZXMpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdMb2FkZXIgaXMgbm90IGluaXRpYWxpemVkJyk7XG4gICAgfVxuICAgIGlkID0gTU9EVUxFX1BSRUZJWCArIGlkO1xuICAgIGlmIChtb2R1bGVzW2lkXSkge1xuICAgICAgICBtb2R1bGVzW2lkXSA9IHsgaW5zdGFuY2UsIG1ldGFkYXRhIH07XG4gICAgfVxufTtcbi8qKlxuICogTG9hZCBleHRlcm5hbCBjc3MgZnJvbSBnaXZlbiB1cmxcbiAqXG4gKiBAcGFyYW0geyp9IHVybFxuICovXG5leHBvcnQgY29uc3QgbG9hZENzcyA9ICh1cmwpID0+IHtcbiAgICBjb25zdCBhbHJlYWR5QWRkZWRUaGlzVGFnID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgbGlua1tocmVmPVwiJHt1cmx9XCJdYCk7XG4gICAgaWYgKGFscmVhZHlBZGRlZFRoaXNUYWcgIT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgICAgY29uc3QgaGVhZCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF07XG4gICAgICAgIGNvbnN0IGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaW5rJyk7XG4gICAgICAgIGNvbnN0IGxvYWRlZCA9ICgpID0+IHtcbiAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICAgIGxpbmsucmVtb3ZlRXZlbnRMaXN0ZW5lcignbG9hZCcsIGxvYWRlZCk7XG4gICAgICAgIH07XG4gICAgICAgIGxpbmsucmVsID0gJ3N0eWxlc2hlZXQnO1xuICAgICAgICBsaW5rLmhyZWYgPSB1cmw7XG4gICAgICAgIGxpbmsuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGxvYWRlZCk7XG4gICAgICAgIGhlYWQuYXBwZW5kQ2hpbGQobGluayk7XG4gICAgfSk7XG59O1xuLyoqXG4gKiBFbnVtIGp1c3QgZm9yIHVuaWZ5IGZpbGVzdGFjayBtb2R1bGUgbmFtZXNcbiAqL1xuZXhwb3J0IHZhciBGSUxFU1RBQ0tfTU9EVUxFUztcbihmdW5jdGlvbiAoRklMRVNUQUNLX01PRFVMRVMpIHtcbiAgICBGSUxFU1RBQ0tfTU9EVUxFU1tcIkZJTEVTVEFDS19TREtcIl0gPSBcImZpbGVzdGFjay1zZGtcIjtcbiAgICBGSUxFU1RBQ0tfTU9EVUxFU1tcIlRSQU5TRk9STVNfVUlcIl0gPSBcInRyYW5zZm9ybXMtdWlcIjtcbiAgICBGSUxFU1RBQ0tfTU9EVUxFU1tcIlBJQ0tFUlwiXSA9IFwicGlja2VyXCI7XG59KShGSUxFU1RBQ0tfTU9EVUxFUyB8fCAoRklMRVNUQUNLX01PRFVMRVMgPSB7fSkpO1xuO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pYVc1a1pYZ3Vhbk1pTENKemIzVnlZMlZTYjI5MElqb2lJaXdpYzI5MWNtTmxjeUk2V3lJdUxpOHVMaTlzYVdJdmFXNWtaWGd1ZEhNaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWtGQlFVRXNUVUZCVFN4aFFVRmhMRWRCUVVjc1dVRkJXU3hEUVVGRE8wRkJRMjVETEUxQlFVMHNXVUZCV1N4SFFVRlJMRVZCUVVVc1EwRkJRenRCUVdVM1FpeE5RVUZOTEhsQ1FVRjVRaXhIUVVGSExFZEJRVWNzUlVGQlJUdEpRVU55UXl4SlFVRkpMRTFCUVUwc1IwRkJSeXhOUVVGTkxFTkJRVU03U1VGRmNFSXNNa1JCUVRKRU8wbEJRek5FTEVsQlFVa3NUMEZCVHl4TlFVRk5MRXRCUVVzc1VVRkJVU3hGUVVGRk8xRkJRemxDTEUxQlFVMHNSMEZCUnl4WlFVRlpMRU5CUVVNN1MwRkRka0k3U1VGRlJDeGhRVUZoTzBsQlEySXNTVUZCU1N4VFFVRlRMRWRCUVdNc1RVRkJUU3hEUVVGRExHdENRVUZyUWl4RFFVRkRPMGxCUlhKRUxFbEJRVWtzUTBGQlF5eFRRVUZUTEVWQlFVVTdVVUZEWkN4VFFVRlRMRWRCUVVjN1dVRkRWaXhQUVVGUExFVkJRVVVzUlVGQlJUdFRRVU5hTEVOQlFVTTdVVUZGUml4aFFVRmhPMUZCUTJJc1RVRkJUU3hEUVVGRExHdENRVUZyUWl4SFFVRkhMRk5CUVZNc1EwRkJRenRMUVVOMlF6dEpRVVZFTEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1QwRkJUeXhGUVVGRk8xRkJRM1JDTEZOQlFWTXNRMEZCUXl4UFFVRlBMRWRCUVVjc1JVRkJSU3hEUVVGRE8wdEJRM2hDTzBsQlJVUXNUMEZCVHl4VFFVRlRMRU5CUVVNN1FVRkRia0lzUTBGQlF5eERRVUZETzBGQlJVWXNUVUZCVFN4clFrRkJhMElzUjBGQlJ5eDVRa0ZCZVVJc1JVRkJSU3hEUVVGRE8wRkJRM1pFTEUxQlFVMHNUMEZCVHl4SFFVRkhMR3RDUVVGclFpeEpRVUZKTEd0Q1FVRnJRaXhEUVVGRExFOUJRVThzUTBGQlF6dEJRVVZxUlRzN096czdPMGRCVFVjN1FVRkRTQ3hOUVVGTkxHTkJRV01zUjBGQlJ5eERRVUZETEVsQlFVa3NSVUZCUlN4SlFVRkpMRVZCUVVVc1NVRkJTU3hGUVVGSkxFVkJRVVU3U1VGRE5VTXNTVUZCU1N4SlFVRkpMRU5CUVVNc1YwRkJWeXhGUVVGRk8xRkJRM0JDTEVsQlFVa3NRMEZCUXl4WFFVRlhMRU5CUVVNc2IwSkJRVzlDTEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUVVNN1MwRkRPVU03VTBGQlRUdFJRVU5NTEVsQlFVa3NRMEZCUXl4dFFrRkJiVUlzUTBGQlF5eEpRVUZKTEVWQlFVVXNTVUZCU1N4RlFVRkZMRXRCUVVzc1EwRkJReXhEUVVGRE8wdEJRemRETzBGQlEwZ3NRMEZCUXl4RFFVRkJPMEZCUlVRN096czdSMEZKUnp0QlFVTklMRTFCUVUwc1EwRkJReXhOUVVGTkxGZEJRVmNzUjBGQlJ5eERRVUZETEZkQlFWY3NSVUZCUlN4RlFVRkZMRU5CUVVNc1QwRkJUeXhEUVVGRExFZEJRVWNzUTBGQlF5eFhRVUZYTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRkxFVkJRVVVzUjBGQlJ5eEZRVUZGTEVWQlFVVXNSVUZCUlN4RFFVRkRMRlZCUVZVc1EwRkJReXhGUVVGRkxFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFZEJRVWNzUlVGQlJTeEZRVUZGTzBsQlF6RklMRTFCUVUwc1VVRkJVU3hIUVVGSExFVkJRVVVzUTBGQlF6dEpRVVZ3UWl4SFFVRkhMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zUjBGQlJ5eEZRVUZGTEVkQlFVY3NSVUZCUlN4RlFVRkZPMUZCUTNaQ0xFMUJRVTBzUlVGQlJTeEhRVUZITEZkQlFWY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRSUVVNMVFpeFJRVUZSTEVOQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExFZEJRVWNzUTBGQlF6dEpRVU40UWl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVWSUxFOUJRVThzVVVGQlVTeERRVUZETzBGQlEyeENMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJSVWc3T3pzN08wZEJTMGM3UVVGRFNDeE5RVUZOTEVOQlFVTXNUVUZCVFN4VlFVRlZMRWRCUVVjc1EwRkJReXhGUVVGVkxFVkJRVVVzUjBGQlZ5eEZRVUZGTEVWQlFVVTdTVUZEY0VRc1NVRkJTU3hEUVVGRExFVkJRVVVzUlVGQlJUdFJRVU5RTEUxQlFVMHNTVUZCU1N4TFFVRkxMRU5CUVVNc2RVSkJRWFZDTEVOQlFVTXNRMEZCUVR0TFFVTjZRenRKUVVWRUxFbEJRVWtzWjBKQlFXZENMRWRCUVVjc1QwRkJUeXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETzBsQlJXNURMRVZCUVVVc1IwRkJTU3hoUVVGaExFZEJRVWNzUlVGQlJTeERRVUZETzBsQlJYcENMRWxCUVVrc1EwRkJReXhuUWtGQlowSXNSVUZCUlR0UlFVTnlRaXhQUVVGUExFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NSVUZCUlN4RFFVRkRPMUZCUTJwQ0xHZENRVUZuUWl4SFFVRkhMRTlCUVU4c1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF6dExRVU5vUXp0SlFVVkVMRWxCUVVrc1owSkJRV2RDTEVOQlFVTXNVVUZCVVN4RlFVRkZPMUZCUXpkQ0xFOUJRVThzVDBGQlR5eERRVUZETEU5QlFVOHNRMEZCUXl4blFrRkJaMElzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXp0TFFVTnVSRHRKUVVWRUxFbEJRVWtzWjBKQlFXZENMRU5CUVVNc1QwRkJUeXhGUVVGRk8xRkJRelZDTEU5QlFVOHNaMEpCUVdkQ0xFTkJRVU1zVDBGQlR5eERRVUZETzB0QlEycERPMGxCUlVRc1QwRkJUeXhuUWtGQlowSXNRMEZCUXl4UFFVRlBMRWRCUVVjc1NVRkJTU3hQUVVGUExFTkJRVU1zUTBGQlF5eFBRVUZQTEVWQlFVVXNUVUZCVFN4RlFVRkZMRVZCUVVVN1VVRkRhRVVzVFVGQlRTeG5Ra0ZCWjBJc1IwRkJSeXhEUVVGRExFZEJRVkVzUlVGQlJTeEZRVUZGTzFsQlEzQkRMRWxCUVVrc1IwRkJSeXhEUVVGRExFbEJRVWtzUzBGQlN5eE5RVUZOTEVsQlFVa3NRMEZCUXl4eFFrRkJjVUlzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1lVRkJZU3hKUVVGSkxFZEJRVWNzUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZCUXl4VlFVRlZMRU5CUVVNc1EwRkJReXhGUVVGRk8yZENRVU42Unl4TlFVRk5MRWxCUVVrc1IwRkJTU3hIUVVGSExFTkJRVU1zWVVGQllTeEpRVUZKTEVkQlFVY3NRMEZCUXl4VlFVRlZMRU5CUVVNN1owSkJSV3hFTEdOQlFXTXNRMEZCUXl4SlFVRkpMRVZCUVVVc1owSkJRV2RDTEVWQlFVVXNUVUZCVFN4RFFVRkRMRU5CUVVNN1owSkJReTlETEdOQlFXTXNRMEZCUXl4SlFVRkpMRVZCUVVVc1RVRkJUU3hGUVVGRkxFOUJRVThzUTBGQlF5eERRVUZETzJkQ1FVVjBReXc0UmtGQk9FWTdaMEpCUXpsR0xGVkJRVlVzUTBGQlF5eEhRVUZITEVWQlFVVXNRMEZCUXl4UFFVRlBMRU5CUVVNc1QwRkJUeXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4UFFVRlBMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTXNRMEZCUXl4VFFVRlRMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGQlF6dGhRVU12UlR0UlFVTklMRU5CUVVNc1EwRkJRVHRSUVVWRUxFMUJRVTBzVFVGQlRTeEhRVUZITEZGQlFWRXNRMEZCUXl4aFFVRmhMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU03VVVGRmFFUXNUVUZCVFN4RFFVRkRMRVZCUVVVc1IwRkJSeXhGUVVGRkxFTkJRVU03VVVGRlppeDNRa0ZCZDBJN1VVRkRlRUlzU1VGQlNTeE5RVUZOTEVOQlFVTXNWMEZCVnl4SlFVRkpMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU1zVjBGQlZ5eERRVUZETEZGQlFWRXNTVUZCU1N4TlFVRk5MRU5CUVVNc1YwRkJWeXhEUVVGRExGRkJRVkVzUlVGQlJTeERRVUZETEU5QlFVOHNRMEZCUXl4alFVRmpMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUlVGQlJUdFpRVU55U0N4aFFVRmhPMWxCUTJJc1RVRkJUU3hEUVVGRExGZEJRVmNzUTBGQlF5eHZRa0ZCYjBJc1JVRkJSU3huUWtGQlowSXNRMEZCUXl4RFFVRkRPMU5CUXpWRU8yRkJRVTA3V1VGRFRDeE5RVUZOTEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU1zVFVGQlRTeEZRVUZGTEdkQ1FVRm5RaXhGUVVGRkxFdEJRVXNzUTBGQlF5eERRVUZETzFsQlEzcEVMRTFCUVUwc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4VFFVRlRMRVZCUVVVc1RVRkJUU3hGUVVGRkxFdEJRVXNzUTBGQlF5eERRVUZETzFOQlEyNUVPMUZCUlVRc1RVRkJUU3hEUVVGRExGbEJRVmtzUTBGQlF5eGhRVUZoTEVWQlFVVXNWMEZCVnl4RFFVRkRMRU5CUVVNN1VVRkRhRVFzVFVGQlRTeERRVUZETEZsQlFWa3NRMEZCUXl4VFFVRlRMRVZCUVVVc1QwRkJUeXhEUVVGRExFTkJRVU03VVVGRGVFTXNUVUZCVFN4RFFVRkRMRmxCUVZrc1EwRkJReXhQUVVGUExFVkJRVVVzVFVGQlRTeERRVUZETEVOQlFVTTdVVUZGY2tNc1RVRkJUU3hEUVVGRExFZEJRVWNzUjBGQlJ5eEhRVUZITEVOQlFVTTdVVUZGYWtJc1VVRkJVU3hEUVVGRExFbEJRVWtzUTBGQlF5eFhRVUZYTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN1NVRkRjRU1zUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEVEN4RFFVRkRMRU5CUVVNN1FVRkZSanM3T3pzN08wZEJUVWM3UVVGRFNDeE5RVUZOTEVOQlFVTXNUVUZCVFN4alFVRmpMRWRCUVVjc1EwRkJReXhGUVVGVkxFVkJRVVVzVVVGQllTeEZRVUZGTEZGQlFXTXNSVUZCUlN4RlFVRkZPMGxCUXpGRkxFbEJRVWtzUTBGQlF5eEZRVUZGTEVWQlFVVTdVVUZEVUN4TlFVRk5MRWxCUVVrc1MwRkJTeXhEUVVGRExIVkNRVUYxUWl4RFFVRkRMRU5CUVVFN1MwRkRla003U1VGRlJDeEpRVUZKTEVOQlFVTXNUMEZCVHl4RlFVRkZPMUZCUTFvc1RVRkJUU3hKUVVGSkxFdEJRVXNzUTBGQlF5d3lRa0ZCTWtJc1EwRkJReXhEUVVGQk8wdEJRemRETzBsQlJVUXNSVUZCUlN4SFFVRkhMR0ZCUVdFc1IwRkJSeXhGUVVGRkxFTkJRVU03U1VGRmVFSXNTVUZCU1N4UFFVRlBMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVU3VVVGRFppeFBRVUZQTEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1JVRkJSU3hSUVVGUkxFVkJRVVVzVVVGQlVTeEZRVUZGTEVOQlFVRTdTMEZEY2tNN1FVRkRTQ3hEUVVGRExFTkJRVU03UVVGRlJqczdPenRIUVVsSE8wRkJRMGdzVFVGQlRTeERRVUZETEUxQlFVMHNUMEZCVHl4SFFVRkhMRU5CUVVNc1IwRkJSeXhGUVVGRkxFVkJRVVU3U1VGRE4wSXNUVUZCVFN4dFFrRkJiVUlzUjBGQlJ5eFJRVUZSTEVOQlFVTXNZVUZCWVN4RFFVRkRMR05CUVdNc1IwRkJSeXhKUVVGSkxFTkJRVU1zUTBGQlF6dEpRVU14UlN4SlFVRkpMRzFDUVVGdFFpeExRVUZMTEVsQlFVa3NSVUZCUlR0UlFVTm9ReXhQUVVGUExFOUJRVThzUTBGQlF5eFBRVUZQTEVWQlFVVXNRMEZCUXp0TFFVTXhRanRKUVVWRUxFOUJRVThzU1VGQlNTeFBRVUZQTEVOQlFVTXNRMEZCUXl4UFFVRlBMRVZCUVVVc1JVRkJSVHRSUVVNM1FpeE5RVUZOTEVsQlFVa3NSMEZCUnl4UlFVRlJMRU5CUVVNc2IwSkJRVzlDTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRGRFUXNUVUZCVFN4SlFVRkpMRWRCUVVjc1VVRkJVU3hEUVVGRExHRkJRV0VzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXp0UlFVVTFReXhOUVVGTkxFMUJRVTBzUjBGQlJ5eEhRVUZITEVWQlFVVTdXVUZEYkVJc1QwRkJUeXhGUVVGRkxFTkJRVU03V1VGRFZpeEpRVUZKTEVOQlFVTXNiVUpCUVcxQ0xFTkJRVU1zVFVGQlRTeEZRVUZGTEUxQlFVMHNRMEZCUXl4RFFVRkRPMUZCUXpORExFTkJRVU1zUTBGQlF6dFJRVVZHTEVsQlFVa3NRMEZCUXl4SFFVRkhMRWRCUVVjc1dVRkJXU3hEUVVGRE8xRkJRM2hDTEVsQlFVa3NRMEZCUXl4SlFVRkpMRWRCUVVjc1IwRkJSeXhEUVVGRE8xRkJRMmhDTEVsQlFVa3NRMEZCUXl4blFrRkJaMElzUTBGQlF5eE5RVUZOTEVWQlFVVXNUVUZCVFN4RFFVRkRMRU5CUVVNN1VVRkRkRU1zU1VGQlNTeERRVUZETEZkQlFWY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRKUVVONlFpeERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTk1MRU5CUVVNc1EwRkJRenRCUVVWR096dEhRVVZITzBGQlEwZ3NUVUZCVFN4RFFVRk9MRWxCUVZrc2FVSkJTVmc3UVVGS1JDeFhRVUZaTEdsQ1FVRnBRanRKUVVNelFpeHZSRUZCSzBJc1EwRkJRVHRKUVVNdlFpeHZSRUZCSzBJc1EwRkJRVHRKUVVNdlFpeHpRMEZCYVVJc1EwRkJRVHRCUVVOdVFpeERRVUZETEVWQlNsY3NhVUpCUVdsQ0xFdEJRV3BDTEdsQ1FVRnBRaXhSUVVrMVFqdEJRVUZCTEVOQlFVTWlMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUpqYjI1emRDQk5UMFJWVEVWZlVGSkZSa2xZSUQwZ0oyWnpMV3h2WVdSbGNpMG5PMXh1WTI5dWMzUWdaMnh2WW1Gc1NHOXNaR1Z5T2lCaGJua2dQU0I3ZlR0Y2JseHVaWGh3YjNKMElIUjVjR1VnVFc5a2RXeGxSR1ZtSUQwZ2UxeHVJQ0J3Y205dGFYTmxQem9nVUhKdmJXbHpaVHhoYm5rK1hHNGdJSEpsYzI5c2RtVlFjbTl0YVhObFB6b2dZVzU1TzF4dUlDQnBibk4wWVc1alpUODZJR0Z1ZVR0Y2JpQWdiV1YwWVdSaGRHRS9PaUJoYm5rN1hHNTlYRzVjYm1WNGNHOXlkQ0IwZVhCbElFNWhiV1Z6Y0dGalpTQTlJSHRjYmlBZ0lDQnRiMlIxYkdWek9pQjdYRzRnSUNBZ0lGdHJaWGs2SUhOMGNtbHVaMTA2SUUxdlpIVnNaVVJsWmx4dUlDQWdJSDFjYm4wN1hHNWNibU52Ym5OMElHbHVhWFJwWVd4cGVtVkhiRzlpWVd4T1lXMWxjM0JoWTJVZ1BTQW9LU0E5UGlCN1hHNGdJR3hsZENCb2IyeGtaWElnUFNCM2FXNWtiM2M3WEc1Y2JpQWdMeThnYVdZZ2RHaGxjbVVnYVhNZ2JtOGdkMmx1Wkc5M0lHOWlhaUIxYzJVZ2JtOWtaV3B6SUdkc2IySmhiQ0JzYVdJZ2RtRnlhV0ZpYkdWY2JpQWdhV1lnS0hSNWNHVnZaaUJvYjJ4a1pYSWdJVDA5SUNkdlltcGxZM1FuS1NCN1hHNGdJQ0FnYUc5c1pHVnlJRDBnWjJ4dlltRnNTRzlzWkdWeU8xeHVJQ0I5WEc1Y2JpQWdMeThnUUhSekxXbG5ibTl5WlZ4dUlDQnNaWFFnYm1GdFpYTndZV05sT2lCT1lXMWxjM0JoWTJVZ1BTQm9iMnhrWlhJdVptbHNaWE4wWVdOclNXNTBaWEp1WVd4ek8xeHVYRzRnSUdsbUlDZ2hibUZ0WlhOd1lXTmxLU0I3WEc0Z0lDQWdibUZ0WlhOd1lXTmxJRDBnZTF4dUlDQWdJQ0FnYlc5a2RXeGxjem9nZTMwc1hHNGdJQ0FnZlR0Y2JseHVJQ0FnSUM4dklFQjBjeTFwWjI1dmNtVmNiaUFnSUNCM2FXNWtiM2N1Wm1sc1pYTjBZV05yU1c1MFpYSnVZV3h6SUQwZ2JtRnRaWE53WVdObE8xeHVJQ0I5WEc1Y2JpQWdhV1lnS0NGdVlXMWxjM0JoWTJVdWJXOWtkV3hsY3lrZ2UxeHVJQ0FnSUc1aGJXVnpjR0ZqWlM1dGIyUjFiR1Z6SUQwZ2UzMDdYRzRnSUgxY2JpQWdYRzRnSUhKbGRIVnliaUJ1WVcxbGMzQmhZMlU3WEc1OU8xeHVYRzVqYjI1emRDQm1hV3hsYzNSaFkydEpiblJsY201aGJITWdQU0JwYm1sMGFXRnNhWHBsUjJ4dlltRnNUbUZ0WlhOd1lXTmxLQ2s3WEc1amIyNXpkQ0J0YjJSMWJHVnpJRDBnWm1sc1pYTjBZV05yU1c1MFpYSnVZV3h6SUNZbUlHWnBiR1Z6ZEdGamEwbHVkR1Z5Ym1Gc2N5NXRiMlIxYkdWek8xeHVYRzR2S2lwY2JpQXFJRkpsYlc5MlpTQnNhWE4wWlc1bGNuTWdLR0p5YjNkelpYSWdZMjl0Y0dGMGFXSnNaU2xjYmlBcUlGeHVJQ29nUUhCaGNtRnRJRzV2WkdVZ1hHNGdLaUJBY0dGeVlXMGdablZ1WXlCY2JpQXFJRUJ3WVhKaGJTQnVZVzFsSUZ4dUlDb3ZYRzVqYjI1emRDQnlaVzF2ZG1WTWFYTjBaVzVsY2lBOUlDaHViMlJsTENCbWRXNWpMQ0J1WVcxbExDQXBJRDArSUh0Y2JpQWdhV1lnS0c1dlpHVXVaR1YwWVdOb1JYWmxiblFwSUh0Y2JpQWdJQ0J1YjJSbExtUmxkR0ZqYUVWMlpXNTBLQ2R2Ym5KbFlXUjVjM1JoZEdWamFHRnVaMlVuTENCbWRXNWpLVHRjYmlBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0J1YjJSbExuSmxiVzkyWlVWMlpXNTBUR2x6ZEdWdVpYSW9ibUZ0WlN3Z1puVnVZeXdnWm1Gc2MyVXBPMXh1SUNCOVhHNTlYRzVjYmk4cUtseHVJQ29nVEc5aFpDQnRkV3gwYVhCc1pTQnRiMlIxYkdWelhHNGdLaUJjYmlBcUlFQndZWEpoYlNCN0tuMGdiVzlrZFd4bGN5QmNiaUFxTDF4dVpYaHdiM0owSUdOdmJuTjBJR3h2WVdSTmIyUjFiR1Z6SUQwZ0tHMXZaSFZzWlhOTWFYTjBLU0E5UGlCUWNtOXRhWE5sTG1Gc2JDaHRiMlIxYkdWelRHbHpkQzV0WVhBb0tIc2dhV1FzSUhWeWJDQjlLU0E5UGlCc2IyRmtUVzlrZFd4bEtHbGtMQ0IxY213cEtTa3VkR2hsYmlnb2NtVnpLU0E5UGlCN1hHNGdJR052Ym5OMElIUnZVbVYwZFhKdUlEMGdlMzA3WEc1Y2JpQWdjbVZ6TG1admNrVmhZMmdvS0cxdlpDd2dhV1I0S1NBOVBpQjdYRzRnSUNBZ1kyOXVjM1FnWld3Z1BTQnRiMlIxYkdWelRHbHpkRnRwWkhoZE8xeHVJQ0FnSUhSdlVtVjBkWEp1VzJWc0xtbGtYU0E5SUcxdlpEdGNiaUFnZlNrN1hHNWNiaUFnY21WMGRYSnVJSFJ2VW1WMGRYSnVPMXh1ZlNrN1hHNWNiaThxS2x4dUlDb2dURzloWkNCemFXNW5iR1VnYlc5a2RXeGxJR1p5YjIwZ2RYSnNJSGRwZEdnZ1oybDJaVzRnYVdSY2JpQXFYRzRnS2lCQWNHRnlZVzBnZXlwOUlHbGtJQzBnYlc5a2RXeGxJR2xrSUZ4dUlDb2dRSEJoY21GdElIc3FmU0IxY214Y2JpQXFMMXh1Wlhod2IzSjBJR052Ym5OMElHeHZZV1JOYjJSMWJHVWdQU0FvYVdRNklITjBjbWx1Wnl3Z2RYSnNPaUJ6ZEhKcGJtY3BJRDArSUh0Y2JpQWdhV1lnS0NGcFpDa2dlMXh1SUNBZ0lIUm9jbTkzSUc1bGR5QkZjbkp2Y2lnblRXOWtkV3hsSUdsa0lHbHpJSEpsY1hWcGNtVmtKeWxjYmlBZ2ZWeHVYRzRnSUd4bGRDQnRiMlIxYkdWRVpXWnBibWwwYVc5dUlEMGdiVzlrZFd4bGMxdHBaRjA3WEc1Y2JpQWdhV1FnUFNBZ1RVOUVWVXhGWDFCU1JVWkpXQ0FySUdsa08xeHVYRzRnSUdsbUlDZ2hiVzlrZFd4bFJHVm1hVzVwZEdsdmJpa2dlMXh1SUNBZ0lHMXZaSFZzWlhOYmFXUmRJRDBnZTMwN1hHNGdJQ0FnYlc5a2RXeGxSR1ZtYVc1cGRHbHZiaUE5SUcxdlpIVnNaWE5iYVdSZE8xeHVJQ0I5WEc1Y2JpQWdhV1lnS0cxdlpIVnNaVVJsWm1sdWFYUnBiMjR1YVc1emRHRnVZMlVwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdVSEp2YldselpTNXlaWE52YkhabEtHMXZaSFZzWlVSbFptbHVhWFJwYjI0dWFXNXpkR0Z1WTJVcE8xeHVJQ0I5WEc1Y2JpQWdhV1lnS0cxdlpIVnNaVVJsWm1sdWFYUnBiMjR1Y0hKdmJXbHpaU2tnZTF4dUlDQWdJSEpsZEhWeWJpQnRiMlIxYkdWRVpXWnBibWwwYVc5dUxuQnliMjFwYzJVN1hHNGdJSDFjYmx4dUlDQnlaWFIxY200Z2JXOWtkV3hsUkdWbWFXNXBkR2x2Ymk1d2NtOXRhWE5sSUQwZ2JtVjNJRkJ5YjIxcGMyVW9LSEpsYzI5c2RtVXNJSEpsYW1WamRDa2dQVDRnZTF4dUlDQWdJR052Ym5OMElISmxZV1I1VTNSaGRHVkRhR0Z1WjJVZ1BTQW9aWFowT2lCaGJua3BJRDArSUh0Y2JpQWdJQ0FnSUdsbUlDaGxkblF1ZEhsd1pTQTlQVDBnSjJ4dllXUW5JSHg4SUNndlhpaGpiMjF3YkdWMFpYeHNiMkZrWldRcEpDOHVkR1Z6ZENnb1pYWjBMbU4xY25KbGJuUlVZWEpuWlhRZ2ZId2daWFowTG5OeVkwVnNaVzFsYm5RcExuSmxZV1I1VTNSaGRHVXBLU2tnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0J1YjJSbElEMGdJR1YyZEM1amRYSnlaVzUwVkdGeVoyVjBJSHg4SUdWMmRDNXpjbU5GYkdWdFpXNTBPMXh1WEc0Z0lDQWdJQ0FnSUhKbGJXOTJaVXhwYzNSbGJtVnlLRzV2WkdVc0lISmxZV1I1VTNSaGRHVkRhR0Z1WjJVc0lDZHNiMkZrSnlrN1hHNGdJQ0FnSUNBZ0lISmxiVzkyWlV4cGMzUmxibVZ5S0c1dlpHVXNJSEpsYW1WamRDd2dKMlZ5Y205eUp5azdYRzVjYmlBZ0lDQWdJQ0FnTHk4Z2MyeHZkeUJrYjNjZ1kyaGxZMnRwYm1jZ2FXWWdiVzlrZFd4bElHbHpJR3h2WVdSbFpDQjBieUJsYm5OMWNtVWdkR2hoZENCelkzSnBjSFFnZEdoaGRDQWdjbVZuYVhOMFpYSWdiVzlrZFd4bElHbHpJR05oYkd4bFpGeHVJQ0FnSUNBZ0lDQnpaWFJVYVcxbGIzVjBLQ2dwSUQwK0lISmxjMjlzZG1Vb2JXOWtkV3hsYzF0cFpGMGdQeUJ0YjJSMWJHVnpXMmxrWFM1cGJuTjBZVzVqWlNBNklIVnVaR1ZtYVc1bFpDa3NJREV3S1R0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0I5WEc1Y2JpQWdJQ0JqYjI1emRDQnpZM0pwY0hRZ1BTQmtiMk4xYldWdWRDNWpjbVZoZEdWRmJHVnRaVzUwS0NkelkzSnBjSFFuS1R0Y2JpQWdJQ0JjYmlBZ0lDQnpZM0pwY0hRdWFXUWdQU0JwWkR0Y2JseHVJQ0FnSUM4dklFQjBjeTFwWjI1dmNtVWdabWw0SUdadmNpQkpSVnh1SUNBZ0lHbG1JQ2h6WTNKcGNIUXVZWFIwWVdOb1JYWmxiblFnSmlZZ0lTaHpZM0pwY0hRdVlYUjBZV05vUlhabGJuUXVkRzlUZEhKcGJtY2dKaVlnYzJOeWFYQjBMbUYwZEdGamFFVjJaVzUwTG5SdlUzUnlhVzVuS0NrdWFXNWtaWGhQWmlnblcyNWhkR2wyWlNCamIyUmxKeWtnUENBd0tTa2dlMXh1SUNBZ0lDQWdMeThnUUhSekxXbG5ibTl5WlZ4dUlDQWdJQ0FnYzJOeWFYQjBMbUYwZEdGamFFVjJaVzUwS0NkdmJuSmxZV1I1YzNSaGRHVmphR0Z1WjJVbkxDQnlaV0ZrZVZOMFlYUmxRMmhoYm1kbEtUdGNiaUFnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnYzJOeWFYQjBMbUZrWkVWMlpXNTBUR2x6ZEdWdVpYSW9KMnh2WVdRbkxDQnlaV0ZrZVZOMFlYUmxRMmhoYm1kbExDQm1ZV3h6WlNrN1hHNGdJQ0FnSUNCelkzSnBjSFF1WVdSa1JYWmxiblJNYVhOMFpXNWxjaWduYjI1bGNuSnZjaWNzSUhKbGFtVmpkQ3dnWm1Gc2MyVXBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lITmpjbWx3ZEM1elpYUkJkSFJ5YVdKMWRHVW9KMk55YjNOemIzSnBaMmx1Snl3Z0oyRnViMjU1Ylc5MWN5Y3BPMXh1SUNBZ0lITmpjbWx3ZEM1elpYUkJkSFJ5YVdKMWRHVW9KMk5vWVhKelpYUW5MQ0FuZFhSbUxUZ25LVHRjYmlBZ0lDQnpZM0pwY0hRdWMyVjBRWFIwY21saWRYUmxLQ2RoYzNsdVl5Y3NJQ2QwY25WbEp5azdYRzVjYmlBZ0lDQnpZM0pwY0hRdWMzSmpJRDBnZFhKc08xeHVYRzRnSUNBZ1pHOWpkVzFsYm5RdVltOWtlUzVoY0hCbGJtUkRhR2xzWkNoelkzSnBjSFFwTzF4dUlDQjlLVHRjYm4wN1hHNWNiaThxS2x4dUlDb2dVbVZuYVhOMFpYSWdkR2hoZENCdGIyUjFiR1VnYVhNZ2NtVmhaSGxjYmlBcUlGeHVJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJR2xrSUZ4dUlDb2dRSEJoY21GdElIdGhibmw5SUdsdWMzUmhibU5sSUZ4dUlDb2dRSEJoY21GdElIdGhibmw5SUcxbGRHRmtZWFJoSUMwZ1lXUmthWFJwYjI1aGJDQnRiMlIxYkdVZ2JXVjBZV1JoZEdFZ2JHbHJaU0IyWlhKemFXOXVYRzRnS2k5Y2JtVjRjRzl5ZENCamIyNXpkQ0J5WldkcGMzUmxjazF2WkhWc1pTQTlJQ2hwWkRvZ2MzUnlhVzVuTENCcGJuTjBZVzVqWlRvZ1lXNTVMQ0J0WlhSaFpHRjBZVDg2SUdGdWVTa2dQVDRnZTF4dUlDQnBaaUFvSVdsa0tTQjdYRzRnSUNBZ2RHaHliM2NnYm1WM0lFVnljbTl5S0NkTmIyUjFiR1VnYVdRZ2FYTWdjbVZ4ZFdseVpXUW5LVnh1SUNCOVhHNWNiaUFnYVdZZ0tDRnRiMlIxYkdWektTQjdYRzRnSUNBZ2RHaHliM2NnYm1WM0lFVnljbTl5S0NkTWIyRmtaWElnYVhNZ2JtOTBJR2x1YVhScFlXeHBlbVZrSnlsY2JpQWdmVnh1WEc0Z0lHbGtJRDBnVFU5RVZVeEZYMUJTUlVaSldDQXJJR2xrTzF4dVhHNGdJR2xtSUNodGIyUjFiR1Z6VzJsa1hTa2dlMXh1SUNBZ0lHMXZaSFZzWlhOYmFXUmRJRDBnZXlCcGJuTjBZVzVqWlN3Z2JXVjBZV1JoZEdFZ2ZWeHVJQ0I5WEc1OU8xeHVYRzR2S2lwY2JpQXFJRXh2WVdRZ1pYaDBaWEp1WVd3Z1kzTnpJR1p5YjIwZ1oybDJaVzRnZFhKc1hHNGdLaUJjYmlBcUlFQndZWEpoYlNCN0tuMGdkWEpzSUZ4dUlDb3ZYRzVsZUhCdmNuUWdZMjl1YzNRZ2JHOWhaRU56Y3lBOUlDaDFjbXdwSUQwK0lIdGNiaUFnWTI5dWMzUWdZV3h5WldGa2VVRmtaR1ZrVkdocGMxUmhaeUE5SUdSdlkzVnRaVzUwTG5GMVpYSjVVMlZzWldOMGIzSW9ZR3hwYm10YmFISmxaajFjSWlSN2RYSnNmVndpWFdBcE8xeHVJQ0JwWmlBb1lXeHlaV0ZrZVVGa1pHVmtWR2hwYzFSaFp5QWhQVDBnYm5Wc2JDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCUWNtOXRhWE5sTG5KbGMyOXNkbVVvS1R0Y2JpQWdmVnh1WEc0Z0lISmxkSFZ5YmlCdVpYY2dVSEp2YldselpTZ29jbVZ6YjJ4MlpTa2dQVDRnZTF4dUlDQWdJR052Ym5OMElHaGxZV1FnUFNCa2IyTjFiV1Z1ZEM1blpYUkZiR1Z0Wlc1MGMwSjVWR0ZuVG1GdFpTZ25hR1ZoWkNjcFd6QmRPMXh1SUNBZ0lHTnZibk4wSUd4cGJtc2dQU0JrYjJOMWJXVnVkQzVqY21WaGRHVkZiR1Z0Wlc1MEtDZHNhVzVySnlrN1hHNWNiaUFnSUNCamIyNXpkQ0JzYjJGa1pXUWdQU0FvS1NBOVBpQjdYRzRnSUNBZ0lDQnlaWE52YkhabEtDazdYRzRnSUNBZ0lDQnNhVzVyTG5KbGJXOTJaVVYyWlc1MFRHbHpkR1Z1WlhJb0oyeHZZV1FuTENCc2IyRmtaV1FwTzF4dUlDQWdJSDA3WEc1Y2JpQWdJQ0JzYVc1ckxuSmxiQ0E5SUNkemRIbHNaWE5vWldWMEp6dGNiaUFnSUNCc2FXNXJMbWh5WldZZ1BTQjFjbXc3WEc0Z0lDQWdiR2x1YXk1aFpHUkZkbVZ1ZEV4cGMzUmxibVZ5S0Nkc2IyRmtKeXdnYkc5aFpHVmtLVHRjYmlBZ0lDQm9aV0ZrTG1Gd2NHVnVaRU5vYVd4a0tHeHBibXNwTzF4dUlDQjlLVHRjYm4wN1hHNWNiaThxS2x4dUlDb2dSVzUxYlNCcWRYTjBJR1p2Y2lCMWJtbG1lU0JtYVd4bGMzUmhZMnNnYlc5a2RXeGxJRzVoYldWelhHNGdLaTljYm1WNGNHOXlkQ0JsYm5WdElFWkpURVZUVkVGRFMxOU5UMFJWVEVWVElIdGNiaUFnUmtsTVJWTlVRVU5MWDFORVN5QTlJQ2RtYVd4bGMzUmhZMnN0YzJSckp5eGNiaUFnVkZKQlRsTkdUMUpOVTE5VlNTQTlJQ2QwY21GdWMyWnZjbTF6TFhWcEp5eGNiaUFnVUVsRFMwVlNJRDBnSjNCcFkydGxjaWNzWEc1OU8xeHVJbDE5Il0sInNvdXJjZVJvb3QiOiIifQ==
var FilestackLoader=function(e){var t={};function r(o){if(t[o])return t[o].exports;var n=t[o]={i:o,l:!1,exports:{}};return e[o].call(n.exports,n,n.exports,r),n.l=!0,n.exports}return r.m=e,r.c=t,r.d=function(e,t,o){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(r.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)r.d(o,n,function(t){return e[t]}.bind(null,n));return o},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=0)}([function(e,t,r){"use strict";r.r(t),r.d(t,"loadModules",(function(){return i})),r.d(t,"loadModule",(function(){return s})),r.d(t,"registerModule",(function(){return l})),r.d(t,"loadCss",(function(){return u})),r.d(t,"FILESTACK_MODULES",(function(){return c}));const o={},n=(()=>{let e;e=window&&"object"!=typeof window?o:window;let t=e.filestackInternals;return t||(t={modules:{}},window.filestackInternals=t),t.modules||(t.modules={}),t})(),a=n&&n.modules,d=(e,t,r)=>{e.detachEvent?e.detachEvent("onreadystatechange",t):e.removeEventListener(r,t,!1)},i=e=>Promise.all(e.map(({id:e,url:t})=>s(e,t))).then(t=>{const r={};return t.forEach((t,o)=>{const n=e[o];r[n.id]=t}),r}),s=(e,t)=>{if(window&&"object"!=typeof window)return Promise.reject(new Error("Load module is working only on browser env"));if(!e)throw new Error("Module id is required");let r=a[e];return e="fs-loader-"+e,r||(a[e]={},r=a[e]),r.instance?Promise.resolve(r.instance):r.promise?r.promise:r.promise=new Promise((r,o)=>{const n=t=>{if("load"===t.type||/^(complete|loaded)$/.test((t.currentTarget||t.srcElement).readyState)){const i=t.currentTarget||t.srcElement;d(i,n,"load"),d(i,o,"error"),setTimeout(()=>r(a[e]?a[e].instance:void 0),10)}},i=document.createElement("script");i.id=e,!i.attachEvent||i.attachEvent.toString&&i.attachEvent.toString().indexOf("[native code")<0?(i.addEventListener("load",n,!1),i.addEventListener("onerror",o,!1)):i.attachEvent("onreadystatechange",n),i.setAttribute("crossorigin","anonymous"),i.setAttribute("charset","utf-8"),i.setAttribute("async","true"),i.src=t,document.body.appendChild(i)})},l=(e,t,r)=>{if(!window||"object"==typeof window){if(!e)throw new Error("Module id is required");if(!a)throw new Error("Loader is not initialized");a[e="fs-loader-"+e]&&(a[e]={instance:t,metadata:r})}},u=e=>null!==document.querySelector(`link[href="${e}"]`)?Promise.resolve():new Promise(t=>{const r=document.getElementsByTagName("head")[0],o=document.createElement("link"),n=()=>{t(),o.removeEventListener("load",n)};o.rel="stylesheet",o.href=e,o.addEventListener("load",n),r.appendChild(o)});var c;!function(e){e.FILESTACK_SDK="filestack-sdk",e.TRANSFORMS_UI="transforms-ui",e.PICKER="picker"}(c||(c={}))}]);const _FilestackLoader$loadModules=FilestackLoader.loadModules,_FilestackLoader$loadModule=FilestackLoader.loadModule,_FilestackLoader$registerModule=FilestackLoader.registerModule,_FilestackLoader$loadCss=FilestackLoader.loadCss,_FilestackLoader$FILESTACK_MODULES=FilestackLoader.FILESTACK_MODULES;export{_FilestackLoader$loadModules as loadModules,_FilestackLoader$loadModule as loadModule,_FilestackLoader$registerModule as registerModule,_FilestackLoader$loadCss as loadCss,_FilestackLoader$FILESTACK_MODULES as FILESTACK_MODULES};
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9GaWxlc3RhY2tMb2FkZXIvd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vRmlsZXN0YWNrTG9hZGVyLy4vZGlzdC9tb2R1bGUvaW5kZXguanMiXSwibmFtZXMiOlsiaW5zdGFsbGVkTW9kdWxlcyIsIl9fd2VicGFja19yZXF1aXJlX18iLCJtb2R1bGVJZCIsImV4cG9ydHMiLCJtb2R1bGUiLCJpIiwibCIsIm1vZHVsZXMiLCJjYWxsIiwibSIsImMiLCJkIiwibmFtZSIsImdldHRlciIsIm8iLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImVudW1lcmFibGUiLCJnZXQiLCJyIiwiU3ltYm9sIiwidG9TdHJpbmdUYWciLCJ2YWx1ZSIsInQiLCJtb2RlIiwiX19lc01vZHVsZSIsIm5zIiwiY3JlYXRlIiwia2V5IiwiYmluZCIsIm4iLCJvYmplY3QiLCJwcm9wZXJ0eSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwicCIsInMiLCJnbG9iYWxIb2xkZXIiLCJmaWxlc3RhY2tJbnRlcm5hbHMiLCJob2xkZXIiLCJ3aW5kb3ciLCJuYW1lc3BhY2UiLCJpbml0aWFsaXplR2xvYmFsTmFtZXNwYWNlIiwicmVtb3ZlTGlzdGVuZXIiLCJub2RlIiwiZnVuYyIsImRldGFjaEV2ZW50IiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImxvYWRNb2R1bGVzIiwibW9kdWxlc0xpc3QiLCJQcm9taXNlIiwiYWxsIiwibWFwIiwiaWQiLCJ1cmwiLCJsb2FkTW9kdWxlIiwidGhlbiIsInJlcyIsInRvUmV0dXJuIiwiZm9yRWFjaCIsIm1vZCIsImlkeCIsImVsIiwicmVqZWN0IiwiRXJyb3IiLCJtb2R1bGVEZWZpbml0aW9uIiwiaW5zdGFuY2UiLCJyZXNvbHZlIiwicHJvbWlzZSIsInJlYWR5U3RhdGVDaGFuZ2UiLCJldnQiLCJ0eXBlIiwidGVzdCIsImN1cnJlbnRUYXJnZXQiLCJzcmNFbGVtZW50IiwicmVhZHlTdGF0ZSIsInNldFRpbWVvdXQiLCJ1bmRlZmluZWQiLCJzY3JpcHQiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJhdHRhY2hFdmVudCIsInRvU3RyaW5nIiwiaW5kZXhPZiIsImFkZEV2ZW50TGlzdGVuZXIiLCJzZXRBdHRyaWJ1dGUiLCJzcmMiLCJib2R5IiwiYXBwZW5kQ2hpbGQiLCJyZWdpc3Rlck1vZHVsZSIsIm1ldGFkYXRhIiwibG9hZENzcyIsInF1ZXJ5U2VsZWN0b3IiLCJoZWFkIiwiZ2V0RWxlbWVudHNCeVRhZ05hbWUiLCJsaW5rIiwibG9hZGVkIiwicmVsIiwiaHJlZiIsIkZJTEVTVEFDS19NT0RVTEVTIl0sIm1hcHBpbmdzIjoiZ0NBQ0UsSUFBSUEsRUFBbUIsR0FHdkIsU0FBU0MsRUFBb0JDLEdBRzVCLEdBQUdGLEVBQWlCRSxHQUNuQixPQUFPRixFQUFpQkUsR0FBVUMsUUFHbkMsSUFBSUMsRUFBU0osRUFBaUJFLEdBQVksQ0FDekNHLEVBQUdILEVBQ0hJLEdBQUcsRUFDSEgsUUFBUyxJQVVWLE9BTkFJLEVBQVFMLEdBQVVNLEtBQUtKLEVBQU9ELFFBQVNDLEVBQVFBLEVBQU9ELFFBQVNGLEdBRy9ERyxFQUFPRSxHQUFJLEVBR0pGLEVBQU9ELFFBMERmLE9BckRBRixFQUFvQlEsRUFBSUYsRUFHeEJOLEVBQW9CUyxFQUFJVixFQUd4QkMsRUFBb0JVLEVBQUksU0FBU1IsRUFBU1MsRUFBTUMsR0FDM0NaLEVBQW9CYSxFQUFFWCxFQUFTUyxJQUNsQ0csT0FBT0MsZUFBZWIsRUFBU1MsRUFBTSxDQUFFSyxZQUFZLEVBQU1DLElBQUtMLEtBS2hFWixFQUFvQmtCLEVBQUksU0FBU2hCLEdBQ1gsb0JBQVhpQixRQUEwQkEsT0FBT0MsYUFDMUNOLE9BQU9DLGVBQWViLEVBQVNpQixPQUFPQyxZQUFhLENBQUVDLE1BQU8sV0FFN0RQLE9BQU9DLGVBQWViLEVBQVMsYUFBYyxDQUFFbUIsT0FBTyxLQVF2RHJCLEVBQW9Cc0IsRUFBSSxTQUFTRCxFQUFPRSxHQUV2QyxHQURVLEVBQVBBLElBQVVGLEVBQVFyQixFQUFvQnFCLElB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V0FBV0MsUUFBUSxnQkFBa0IsR0FLL0dMLEVBQU9NLGlCQUFpQixPQUFRZixHQUFrQixHQUNsRFMsRUFBT00saUJBQWlCLFVBQVdyQixHQUFRLElBSjNDZSxFQUFPRyxZQUFZLHFCQUFzQlosR0FNN0NTLEVBQU9PLGFBQWEsY0FBZSxhQUNuQ1AsRUFBT08sYUFBYSxVQUFXLFNBQy9CUCxFQUFPTyxhQUFhLFFBQVMsUUFDN0JQLEVBQU9RLElBQU1oQyxFQUNieUIsU0FBU1EsS0FBS0MsWUFBWVYsTUFVckJXLEVBQWlCLENBQUNwQyxFQUFJYSxFQUFVd0IsS0FFekMsSUFBSWxELFFBQTRCLGlCQUFYQSxPQUFyQixDQUdBLElBQUthLEVBQ0QsTUFBTSxJQUFJVyxNQUFNLHlCQUVwQixJQUFLekQsRUFDRCxNQUFNLElBQUl5RCxNQUFNLDZCQUdoQnpELEVBREo4QyxFQTlIa0IsYUE4SEdBLEtBRWpCOUMsRUFBUThDLEdBQU0sQ0FBRWEsV0FBVXdCLGVBUXJCQyxFQUFXckMsR0FFUSxPQURBeUIsU0FBU2EsY0FBYyxjQUFjdEMsT0FFdERKLFFBQVFpQixVQUVaLElBQUlqQixRQUFTaUIsSUFDaEIsTUFBTTBCLEVBQU9kLFNBQVNlLHFCQUFxQixRQUFRLEdBQzdDQyxFQUFPaEIsU0FBU0MsY0FBYyxRQUM5QmdCLEVBQVMsS0FDWDdCLElBQ0E0QixFQUFLaEQsb0JBQW9CLE9BQVFpRCxJQUVyQ0QsRUFBS0UsSUFBTSxhQUNYRixFQUFLRyxLQUFPNUMsRUFDWnlDLEVBQUtYLGlCQUFpQixPQUFRWSxHQUM5QkgsRUFBS0wsWUFBWU8sS0FNbEIsSUFBSUksR0FDWCxTQUFXQSxHQUNQQSxFQUFpQyxjQUFJLGdCQUNyQ0EsRUFBaUMsY0FBSSxnQkFDckNBLEVBQTBCLE9BQUksU0FIbEMsQ0FJR0EsSUFBc0JBLEVBQW9CLFEiLCJmaWxlIjoiaW5kZXguZXNtLmpzIiwic291cmNlc0NvbnRlbnQiOlsiIFx0Ly8gVGhlIG1vZHVsZSBjYWNoZVxuIFx0dmFyIGluc3RhbGxlZE1vZHVsZXMgPSB7fTtcblxuIFx0Ly8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbiBcdGZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblxuIFx0XHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcbiBcdFx0aWYoaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0pIHtcbiBcdFx0XHRyZXR1cm4gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0uZXhwb3J0cztcbiBcdFx0fVxuIFx0XHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuIFx0XHR2YXIgbW9kdWxlID0gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0gPSB7XG4gXHRcdFx0aTogbW9kdWxlSWQsXG4gXHRcdFx0bDogZmFsc2UsXG4gXHRcdFx0ZXhwb3J0czoge31cbiBcdFx0fTtcblxuIFx0XHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cbiBcdFx0bW9kdWxlc1ttb2R1bGVJZF0uY2FsbChtb2R1bGUuZXhwb3J0cywgbW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cbiBcdFx0Ly8gRmxhZyB0aGUgbW9kdWxlIGFzIGxvYWRlZFxuIFx0XHRtb2R1bGUubCA9IHRydWU7XG5cbiBcdFx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcbiBcdFx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xuIFx0fVxuXG5cbiBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlcyBvYmplY3QgKF9fd2VicGFja19tb2R1bGVzX18pXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm0gPSBtb2R1bGVzO1xuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZSBjYWNoZVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5jID0gaW5zdGFsbGVkTW9kdWxlcztcblxuIFx0Ly8gZGVmaW5lIGdldHRlciBmdW5jdGlvbiBmb3IgaGFybW9ueSBleHBvcnRzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSBmdW5jdGlvbihleHBvcnRzLCBuYW1lLCBnZXR0ZXIpIHtcbiBcdFx0aWYoIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBuYW1lKSkge1xuIFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBuYW1lLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZ2V0dGVyIH0pO1xuIFx0XHR9XG4gXHR9O1xuXG4gXHQvLyBkZWZpbmUgX19lc01vZHVsZSBvbiBleHBvcnRzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnIgPSBmdW5jdGlvbihleHBvcnRzKSB7XG4gXHRcdGlmKHR5cGVvZiBTeW1ib2wgIT09ICd1bmRlZmluZWQnICYmIFN5bWJvbC50b1N0cmluZ1RhZykge1xuIFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBTeW1ib2wudG9TdHJpbmdUYWcsIHsgdmFsdWU6ICdNb2R1bGUnIH0pO1xuIFx0XHR9XG4gXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG4gXHR9O1xuXG4gXHQvLyBjcmVhdGUgYSBmYWtlIG5hbWVzcGFjZSBvYmplY3RcbiBcdC8vIG1vZGUgJiAxOiB2YWx1ZSBpcyBhIG1vZHVsZSBpZCwgcmVxdWlyZSBpdFxuIFx0Ly8gbW9kZSAmIDI6IG1lcmdlIGFsbCBwcm9wZXJ0aWVzIG9mIHZhbHVlIGludG8gdGhlIG5zXG4gXHQvLyBtb2RlICYgNDogcmV0dXJuIHZhbHVlIHdoZW4gYWxyZWFkeSBucyBvYmplY3RcbiBcdC8vIG1vZGUgJiA4fDE6IGJlaGF2ZSBsaWtlIHJlcXVpcmVcbiBcdF9fd2VicGFja19yZXF1aXJlX18udCA9IGZ1bmN0aW9uKHZhbHVlLCBtb2RlKSB7XG4gXHRcdGlmKG1vZGUgJiAxKSB2YWx1ZSA9IF9fd2VicGFja19yZXF1aXJlX18odmFsdWUpO1xuIFx0XHRpZihtb2RlICYgOCkgcmV0dXJuIHZhbHVlO1xuIFx0XHRpZigobW9kZSAmIDQpICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgJiYgdmFsdWUuX19lc01vZHVsZSkgcmV0dXJuIHZhbHVlO1xuIFx0XHR2YXIgbnMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLnIobnMpO1xuIFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkobnMsICdkZWZhdWx0JywgeyBlbnVtZXJhYmxlOiB0cnVlLCB2YWx1ZTogdmFsdWUgfSk7XG4gXHRcdGlmKG1vZGUgJiAyICYmIHR5cGVvZiB2YWx1ZSAhPSAnc3RyaW5nJykgZm9yKHZhciBrZXkgaW4gdmFsdWUpIF9fd2VicGFja19yZXF1aXJlX18uZChucywga2V5LCBmdW5jdGlvbihrZXkpIHsgcmV0dXJuIHZhbHVlW2tleV07IH0uYmluZChudWxsLCBrZXkpKTtcbiBcdFx0cmV0dXJuIG5zO1xuIFx0fTtcblxuIFx0Ly8gZ2V0RGVmYXVsdEV4cG9ydCBmdW5jdGlvbiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG5vbi1oYXJtb255IG1vZHVsZXNcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubiA9IGZ1bmN0aW9uKG1vZHVsZSkge1xuIFx0XHR2YXIgZ2V0dGVyID0gbW9kdWxlICYmIG1vZHVsZS5fX2VzTW9kdWxlID9cbiBcdFx0XHRmdW5jdGlvbiBnZXREZWZhdWx0KCkgeyByZXR1cm4gbW9kdWxlWydkZWZhdWx0J107IH0gOlxuIFx0XHRcdGZ1bmN0aW9uIGdldE1vZHVsZUV4cG9ydHMoKSB7IHJldHVybiBtb2R1bGU7IH07XG4gXHRcdF9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsICdhJywgZ2V0dGVyKTtcbiBcdFx0cmV0dXJuIGdldHRlcjtcbiBcdH07XG5cbiBcdC8vIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbFxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5vID0gZnVuY3Rpb24ob2JqZWN0LCBwcm9wZXJ0eSkgeyByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwgcHJvcGVydHkpOyB9O1xuXG4gXHQvLyBfX3dlYnBhY2tfcHVibGljX3BhdGhfX1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5wID0gXCJcIjtcblxuXG4gXHQvLyBMb2FkIGVudHJ5IG1vZHVsZSBhbmQgcmV0dXJuIGV4cG9ydHNcbiBcdHJldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fKF9fd2VicGFja19yZXF1aXJlX18ucyA9IDApO1xuIiwiY29uc3QgTU9EVUxFX1BSRUZJWCA9ICdmcy1sb2FkZXItJztcbmNvbnN0IGdsb2JhbEhvbGRlciA9IHt9O1xuY29uc3QgaW5pdGlhbGl6ZUdsb2JhbE5hbWVzcGFjZSA9ICgpID0+IHtcbiAgICBsZXQgaG9sZGVyO1xuICAgIC8vIGlmIHRoZXJlIGlzIG5vIHdpbmRvdyBvYmogdXNlIG5vZGVqcyBnbG9iYWwgbGliIHZhcmlhYmxlXG4gICAgaWYgKHdpbmRvdyAmJiB0eXBlb2Ygd2luZG93ICE9PSAnb2JqZWN0Jykge1xuICAgICAgICBob2xkZXIgPSBnbG9iYWxIb2xkZXI7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBob2xkZXIgPSB3aW5kb3c7XG4gICAgfVxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBsZXQgbmFtZXNwYWNlID0gaG9sZGVyLmZpbGVzdGFja0ludGVybmFscztcbiAgICBpZiAoIW5hbWVzcGFjZSkge1xuICAgICAgICBuYW1lc3BhY2UgPSB7XG4gICAgICAgICAgICBtb2R1bGVzOiB7fSxcbiAgICAgICAgfTtcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICB3aW5kb3cuZmlsZXN0YWNrSW50ZXJuYWxzID0gbmFtZXNwYWNlO1xuICAgIH1cbiAgICBpZiAoIW5hbWVzcGFjZS5tb2R1bGVzKSB7XG4gICAgICAgIG5hbWVzcGFjZS5tb2R1bGVzID0ge307XG4gICAgfVxuICAgIHJldHVybiBuYW1lc3BhY2U7XG59O1xuY29uc3QgZmlsZXN0YWNrSW50ZXJuYWxzID0gaW5pdGlhbGl6ZUdsb2JhbE5hbWVzcGFjZSgpO1xuY29uc3QgbW9kdWxlcyA9IGZpbGVzdGFja0ludGVybmFscyAmJiBmaWxlc3RhY2tJbnRlcm5hbHMubW9kdWxlcztcbi8qKlxuICogUmVtb3ZlIGxpc3RlbmVycyAoYnJvd3NlciBjb21wYXRpYmxlKVxuICpcbiAqIEBwYXJhbSBub2RlXG4gKiBAcGFyYW0gZnVuY1xuICogQHBhcmFtIG5hbWVcbiAqL1xuY29uc3QgcmVtb3ZlTGlzdGVuZXIgPSAobm9kZSwgZnVuYywgbmFtZSkgPT4ge1xuICAgIGlmIChub2RlLmRldGFjaEV2ZW50KSB7XG4gICAgICAgIG5vZGUuZGV0YWNoRXZlbnQoJ29ucmVhZHlzdGF0ZWNoYW5nZScsIGZ1bmMpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgbm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKG5hbWUsIGZ1bmMsIGZhbHNlKTtcbiAgICB9XG59O1xuLyoqXG4gKiBMb2FkIG11bHRpcGxlIG1vZHVsZXNcbiAqXG4gKiBAcGFyYW0geyp9IG1vZHVsZXNcbiAqL1xuZXhwb3J0IGNvbnN0IGxvYWRNb2R1bGVzID0gKG1vZHVsZXNMaXN0KSA9PiBQcm9taXNlLmFsbChtb2R1bGVzTGlzdC5tYXAoKHsgaWQsIHVybCB9KSA9PiBsb2FkTW9kdWxlKGlkLCB1cmwpKSkudGhlbigocmVzKSA9PiB7XG4gICAgY29uc3QgdG9SZXR1cm4gPSB7fTtcbiAgICByZXMuZm9yRWFjaCgobW9kLCBpZHgpID0+IHtcbiAgICAgICAgY29uc3QgZWwgPSBtb2R1bGVzTGlzdFtpZHhdO1xuICAgICAgICB0b1JldHVybltlbC5pZF0gPSBtb2Q7XG4gICAgfSk7XG4gICAgcmV0dXJuIHRvUmV0dXJuO1xufSk7XG4vKipcbiAqIExvYWQgc2luZ2xlIG1vZHVsZSBmcm9tIHVybCB3aXRoIGdpdmVuIGlkXG4gKlxuICogQHBhcmFtIHsqfSBpZCAtIG1vZHVsZSBpZFxuICogQHBhcmFtIHsqfSB1cmxcbiAqL1xuZXhwb3J0IGNvbnN0IGxvYWRNb2R1bGUgPSAoaWQsIHVybCkgPT4ge1xuICAgIGlmICh3aW5kb3cgJiYgdHlwZW9mIHdpbmRvdyAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBFcnJvcignTG9hZCBtb2R1bGUgaXMgd29ya2luZyBvbmx5IG9uIGJyb3dzZXIgZW52JykpO1xuICAgIH1cbiAgICBpZiAoIWlkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTW9kdWxlIGlkIGlzIHJlcXVpcmVkJyk7XG4gICAgfVxuICAgIGxldCBtb2R1bGVEZWZpbml0aW9uID0gbW9kdWxlc1tpZF07XG4gICAgaWQgPSBNT0RVTEVfUFJFRklYICsgaWQ7XG4gICAgaWYgKCFtb2R1bGVEZWZpbml0aW9uKSB7XG4gICAgICAgIG1vZHVsZXNbaWRdID0ge307XG4gICAgICAgIG1vZHVsZURlZmluaXRpb24gPSBtb2R1bGVzW2lkXTtcbiAgICB9XG4gICAgaWYgKG1vZHVsZURlZmluaXRpb24uaW5zdGFuY2UpIHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShtb2R1bGVEZWZpbml0aW9uLmluc3RhbmNlKTtcbiAgICB9XG4gICAgaWYgKG1vZHVsZURlZmluaXRpb24ucHJvbWlzZSkge1xuICAgICAgICByZXR1cm4gbW9kdWxlRGVmaW5pdGlvbi5wcm9taXNlO1xuICAgIH1cbiAgICByZXR1cm4gbW9kdWxlRGVmaW5pdGlvbi5wcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICBjb25zdCByZWFkeVN0YXRlQ2hhbmdlID0gKGV2dCkgPT4ge1xuICAgICAgICAgICAgaWYgKGV2dC50eXBlID09PSAnbG9hZCcgfHwgKC9eKGNvbXBsZXRlfGxvYWRlZCkkLy50ZXN0KChldnQuY3VycmVudFRhcmdldCB8fCBldnQuc3JjRWxlbWVudCkucmVhZHlTdGF0ZSkpKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgbm9kZSA9IGV2dC5jdXJyZW50VGFyZ2V0IHx8IGV2dC5zcmNFbGVtZW50O1xuICAgICAgICAgICAgICAgIHJlbW92ZUxpc3RlbmVyKG5vZGUsIHJlYWR5U3RhdGVDaGFuZ2UsICdsb2FkJyk7XG4gICAgICAgICAgICAgICAgcmVtb3ZlTGlzdGVuZXIobm9kZSwgcmVqZWN0LCAnZXJyb3InKTtcbiAgICAgICAgICAgICAgICAvLyBzbG93IGRvdyBjaGVja2luZyBpZiBtb2R1bGUgaXMgbG9hZGVkIHRvIGVuc3VyZSB0aGF0IHNjcmlwdCB0aGF0ICByZWdpc3RlciBtb2R1bGUgaXMgY2FsbGVkXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiByZXNvbHZlKG1vZHVsZXNbaWRdID8gbW9kdWxlc1tpZF0uaW5zdGFuY2UgOiB1bmRlZmluZWQpLCAxMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgICAgICBzY3JpcHQuaWQgPSBpZDtcbiAgICAgICAgLy8gQHRzLWlnbm9yZSBmaXggZm9yIElFXG4gICAgICAgIGlmIChzY3JpcHQuYXR0YWNoRXZlbnQgJiYgIShzY3JpcHQuYXR0YWNoRXZlbnQudG9TdHJpbmcgJiYgc2NyaXB0LmF0dGFjaEV2ZW50LnRvU3RyaW5nKCkuaW5kZXhPZignW25hdGl2ZSBjb2RlJykgPCAwKSkge1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgc2NyaXB0LmF0dGFjaEV2ZW50KCdvbnJlYWR5c3RhdGVjaGFuZ2UnLCByZWFkeVN0YXRlQ2hhbmdlKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHNjcmlwdC5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgcmVhZHlTdGF0ZUNoYW5nZSwgZmFsc2UpO1xuICAgICAgICAgICAgc2NyaXB0LmFkZEV2ZW50TGlzdGVuZXIoJ29uZXJyb3InLCByZWplY3QsIGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgICBzY3JpcHQuc2V0QXR0cmlidXRlKCdjcm9zc29yaWdpbicsICdhbm9ueW1vdXMnKTtcbiAgICAgICAgc2NyaXB0LnNldEF0dHJpYnV0ZSgnY2hhcnNldCcsICd1dGYtOCcpO1xuICAgICAgICBzY3JpcHQuc2V0QXR0cmlidXRlKCdhc3luYycsICd0cnVlJyk7XG4gICAgICAgIHNjcmlwdC5zcmMgPSB1cmw7XG4gICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2NyaXB0KTtcbiAgICB9KTtcbn07XG4vKipcbiAqIFJlZ2lzdGVyIHRoYXQgbW9kdWxlIGlzIHJlYWR5XG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGlkXG4gKiBAcGFyYW0ge2FueX0gaW5zdGFuY2VcbiAqIEBwYXJhbSB7YW55fSBtZXRhZGF0YSAtIGFkZGl0aW9uYWwgbW9kdWxlIG1ldGFkYXRhIGxpa2UgdmVyc2lvblxuICovXG5leHBvcnQgY29uc3QgcmVnaXN0ZXJNb2R1bGUgPSAoaWQsIGluc3RhbmNlLCBtZXRhZGF0YSkgPT4ge1xuICAgIC8vIGxvYWRlciBub3Qgd29ya2luZyBvbiBub2RlanMgZW52c1xuICAgIGlmICh3aW5kb3cgJiYgdHlwZW9mIHdpbmRvdyAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIWlkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTW9kdWxlIGlkIGlzIHJlcXVpcmVkJyk7XG4gICAgfVxuICAgIGlmICghbW9kdWxlcykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0xvYWRlciBpcyBub3QgaW5pdGlhbGl6ZWQnKTtcbiAgICB9XG4gICAgaWQgPSBNT0RVTEVfUFJFRklYICsgaWQ7XG4gICAgaWYgKG1vZHVsZXNbaWRdKSB7XG4gICAgICAgIG1vZHVsZXNbaWRdID0geyBpbnN0YW5jZSwgbWV0YWRhdGEgfTtcbiAgICB9XG59O1xuLyoqXG4gKiBMb2FkIGV4dGVybmFsIGNzcyBmcm9tIGdpdmVuIHVybFxuICpcbiAqIEBwYXJhbSB7Kn0gdXJsXG4gKi9cbmV4cG9ydCBjb25zdCBsb2FkQ3NzID0gKHVybCkgPT4ge1xuICAgIGNvbnN0IGFscmVhZHlBZGRlZFRoaXNUYWcgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGBsaW5rW2hyZWY9XCIke3VybH1cIl1gKTtcbiAgICBpZiAoYWxyZWFkeUFkZGVkVGhpc1RhZyAhPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgICBjb25zdCBoZWFkID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2hlYWQnKVswXTtcbiAgICAgICAgY29uc3QgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKTtcbiAgICAgICAgY29uc3QgbG9hZGVkID0gKCkgPT4ge1xuICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgICAgbGluay5yZW1vdmVFdmVudExpc3RlbmVyKCdsb2FkJywgbG9hZGVkKTtcbiAgICAgICAgfTtcbiAgICAgICAgbGluay5yZWwgPSAnc3R5bGVzaGVldCc7XG4gICAgICAgIGxpbmsuaHJlZiA9IHVybDtcbiAgICAgICAgbGluay5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgbG9hZGVkKTtcbiAgICAgICAgaGVhZC5hcHBlbmRDaGlsZChsaW5rKTtcbiAgICB9KTtcbn07XG4vKipcbiAqIEVudW0ganVzdCBmb3IgdW5pZnkgZmlsZXN0YWNrIG1vZHVsZSBuYW1lc1xuICovXG5leHBvcnQgdmFyIEZJTEVTVEFDS19NT0RVTEVTO1xuKGZ1bmN0aW9uIChGSUxFU1RBQ0tfTU9EVUxFUykge1xuICAgIEZJTEVTVEFDS19NT0RVTEVTW1wiRklMRVNUQUNLX1NES1wiXSA9IFwiZmlsZXN0YWNrLXNka1wiO1xuICAgIEZJTEVTVEFDS19NT0RVTEVTW1wiVFJBTlNGT1JNU19VSVwiXSA9IFwidHJhbnNmb3Jtcy11aVwiO1xuICAgIEZJTEVTVEFDS19NT0RVTEVTW1wiUElDS0VSXCJdID0gXCJwaWNrZXJcIjtcbn0pKEZJTEVTVEFDS19NT0RVTEVTIHx8IChGSUxFU1RBQ0tfTU9EVUxFUyA9IHt9KSk7XG47XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lhVzVrWlhndWFuTWlMQ0p6YjNWeVkyVlNiMjkwSWpvaUlpd2ljMjkxY21ObGN5STZXeUl1TGk4dUxpOXNhV0l2YVc1a1pYZ3VkSE1pWFN3aWJtRnRaWE1pT2x0ZExDSnRZWEJ3YVc1bmN5STZJa0ZCUVVFc1RVRkJUU3hoUVVGaExFZEJRVWNzV1VGQldTeERRVUZETzBGQlEyNURMRTFCUVUwc1dVRkJXU3hIUVVGUkxFVkJRVVVzUTBGQlF6dEJRV1UzUWl4TlFVRk5MSGxDUVVGNVFpeEhRVUZITEVkQlFVY3NSVUZCUlR0SlFVTnlReXhKUVVGSkxFMUJRVlVzUTBGQlF6dEpRVVZtTERKRVFVRXlSRHRKUVVNelJDeEpRVUZKTEUxQlFVMHNTVUZCU1N4UFFVRlBMRTFCUVUwc1MwRkJTeXhSUVVGUkxFVkJRVVU3VVVGRGVFTXNUVUZCVFN4SFFVRkhMRmxCUVZrc1EwRkJRenRMUVVOMlFqdFRRVUZOTzFGQlEwd3NUVUZCVFN4SFFVRkhMRTFCUVUwc1EwRkJRVHRMUVVOb1FqdEpRVVZFTEdGQlFXRTdTVUZEWWl4SlFVRkpMRk5CUVZNc1IwRkJZeXhOUVVGTkxFTkJRVU1zYTBKQlFXdENMRU5CUVVNN1NVRkZja1FzU1VGQlNTeERRVUZETEZOQlFWTXNSVUZCUlR0UlFVTmtMRk5CUVZNc1IwRkJSenRaUVVOV0xFOUJRVThzUlVGQlJTeEZRVUZGTzFOQlExb3NRMEZCUXp0UlFVVkdMR0ZCUVdFN1VVRkRZaXhOUVVGTkxFTkJRVU1zYTBKQlFXdENMRWRCUVVjc1UwRkJVeXhEUVVGRE8wdEJRM1pETzBsQlJVUXNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhQUVVGUExFVkJRVVU3VVVGRGRFSXNVMEZCVXl4RFFVRkRMRTlCUVU4c1IwRkJSeXhGUVVGRkxFTkJRVU03UzBGRGVFSTdTVUZGUkN4UFFVRlBMRk5CUVZNc1EwRkJRenRCUVVOdVFpeERRVUZETEVOQlFVTTdRVUZGUml4TlFVRk5MR3RDUVVGclFpeEhRVUZITEhsQ1FVRjVRaXhGUVVGRkxFTkJRVU03UVVGRGRrUXNUVUZCVFN4UFFVRlBMRWRCUVVjc2EwSkJRV3RDTEVsQlFVa3NhMEpCUVd0Q0xFTkJRVU1zVDBGQlR5eERRVUZETzBGQlJXcEZPenM3T3pzN1IwRk5SenRCUVVOSUxFMUJRVTBzWTBGQll5eEhRVUZITEVOQlFVTXNTVUZCU1N4RlFVRkZMRWxCUVVrc1JVRkJSU3hKUVVGSkxFVkJRVWtzUlVGQlJUdEpRVU0xUXl4SlFVRkpMRWxCUVVrc1EwRkJReXhYUVVGWExFVkJRVVU3VVVGRGNFSXNTVUZCU1N4RFFVRkRMRmRCUVZjc1EwRkJReXh2UWtGQmIwSXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJRenRMUVVNNVF6dFRRVUZOTzFGQlEwd3NTVUZCU1N4RFFVRkRMRzFDUVVGdFFpeERRVUZETEVsQlFVa3NSVUZCUlN4SlFVRkpMRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU03UzBGRE4wTTdRVUZEU0N4RFFVRkRMRU5CUVVFN1FVRkZSRHM3T3p0SFFVbEhPMEZCUTBnc1RVRkJUU3hEUVVGRExFMUJRVTBzVjBGQlZ5eEhRVUZITEVOQlFVTXNWMEZCVnl4RlFVRkZMRVZCUVVVc1EwRkJReXhQUVVGUExFTkJRVU1zUjBGQlJ5eERRVUZETEZkQlFWY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhGUVVGRkxFVkJRVVVzUlVGQlJTeEhRVUZITEVWQlFVVXNSVUZCUlN4RlFVRkZMRU5CUVVNc1ZVRkJWU3hEUVVGRExFVkJRVVVzUlVGQlJTeEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUjBGQlJ5eEZRVUZGTEVWQlFVVTdTVUZETVVnc1RVRkJUU3hSUVVGUkxFZEJRVWNzUlVGQlJTeERRVUZETzBsQlJYQkNMRWRCUVVjc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRVZCUVVVN1VVRkRka0lzVFVGQlRTeEZRVUZGTEVkQlFVY3NWMEZCVnl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8xRkJRelZDTEZGQlFWRXNRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzUjBGQlJ5eERRVUZETzBsQlEzaENMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJSVWdzVDBGQlR5eFJRVUZSTEVOQlFVTTdRVUZEYkVJc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRlNEczdPenM3UjBGTFJ6dEJRVU5JTEUxQlFVMHNRMEZCUXl4TlFVRk5MRlZCUVZVc1IwRkJSeXhEUVVGRExFVkJRVlVzUlVGQlJTeEhRVUZYTEVWQlFVVXNSVUZCUlR0SlFVTndSQ3hKUVVGSkxFMUJRVTBzU1VGQlNTeFBRVUZQTEUxQlFVMHNTMEZCU3l4UlFVRlJMRVZCUVVVN1VVRkRlRU1zVDBGQlR5eFBRVUZQTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1MwRkJTeXhEUVVGRExEUkRRVUUwUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRMUVVOb1JqdEpRVVZFTEVsQlFVa3NRMEZCUXl4RlFVRkZMRVZCUVVVN1VVRkRVQ3hOUVVGTkxFbEJRVWtzUzBGQlN5eERRVUZETEhWQ1FVRjFRaXhEUVVGRExFTkJRVUU3UzBGRGVrTTdTVUZGUkN4SlFVRkpMR2RDUVVGblFpeEhRVUZITEU5QlFVOHNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJRenRKUVVWdVF5eEZRVUZGTEVkQlFVa3NZVUZCWVN4SFFVRkhMRVZCUVVVc1EwRkJRenRKUVVWNlFpeEpRVUZKTEVOQlFVTXNaMEpCUVdkQ0xFVkJRVVU3VVVGRGNrSXNUMEZCVHl4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExFVkJRVVVzUTBGQlF6dFJRVU5xUWl4blFrRkJaMElzUjBGQlJ5eFBRVUZQTEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNN1MwRkRhRU03U1VGRlJDeEpRVUZKTEdkQ1FVRm5RaXhEUVVGRExGRkJRVkVzUlVGQlJUdFJRVU0zUWl4UFFVRlBMRTlCUVU4c1EwRkJReXhQUVVGUExFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU03UzBGRGJrUTdTVUZGUkN4SlFVRkpMR2RDUVVGblFpeERRVUZETEU5QlFVOHNSVUZCUlR0UlFVTTFRaXhQUVVGUExHZENRVUZuUWl4RFFVRkRMRTlCUVU4c1EwRkJRenRMUVVOcVF6dEpRVVZFTEU5QlFVOHNaMEpCUVdkQ0xFTkJRVU1zVDBGQlR5eEhRVUZITEVsQlFVa3NUMEZCVHl4RFFVRkRMRU5CUVVNc1QwRkJUeXhGUVVGRkxFMUJRVTBzUlVGQlJTeEZRVUZGTzFGQlEyaEZMRTFCUVUwc1owSkJRV2RDTEVkQlFVY3NRMEZCUXl4SFFVRlJMRVZCUVVVc1JVRkJSVHRaUVVOd1F5eEpRVUZKTEVkQlFVY3NRMEZCUXl4SlFVRkpMRXRCUVVzc1RVRkJUU3hKUVVGSkxFTkJRVU1zY1VKQlFYRkNMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEdGQlFXRXNTVUZCU1N4SFFVRkhMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU1zVlVGQlZTeERRVUZETEVOQlFVTXNSVUZCUlR0blFrRkRla2NzVFVGQlRTeEpRVUZKTEVkQlFVa3NSMEZCUnl4RFFVRkRMR0ZCUVdFc1NVRkJTU3hIUVVGSExFTkJRVU1zVlVGQlZTeERRVUZETzJkQ1FVVnNSQ3hqUVVGakxFTkJRVU1zU1VGQlNTeEZRVUZGTEdkQ1FVRm5RaXhGUVVGRkxFMUJRVTBzUTBGQlF5eERRVUZETzJkQ1FVTXZReXhqUVVGakxFTkJRVU1zU1VGQlNTeEZRVUZGTEUxQlFVMHNSVUZCUlN4UFFVRlBMRU5CUVVNc1EwRkJRenRuUWtGRmRFTXNPRVpCUVRoR08yZENRVU01Uml4VlFVRlZMRU5CUVVNc1IwRkJSeXhGUVVGRkxFTkJRVU1zVDBGQlR5eERRVUZETEU5QlFVOHNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVDBGQlR5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRExFTkJRVU1zVTBGQlV5eERRVUZETEVWQlFVVXNSVUZCUlN4RFFVRkRMRU5CUVVNN1lVRkRMMFU3VVVGRFNDeERRVUZETEVOQlFVRTdVVUZGUkN4TlFVRk5MRTFCUVUwc1IwRkJSeXhSUVVGUkxFTkJRVU1zWVVGQllTeERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRPMUZCUldoRUxFMUJRVTBzUTBGQlF5eEZRVUZGTEVkQlFVY3NSVUZCUlN4RFFVRkRPMUZCUldZc2QwSkJRWGRDTzFGQlEzaENMRWxCUVVrc1RVRkJUU3hEUVVGRExGZEJRVmNzU1VGQlNTeERRVUZETEVOQlFVTXNUVUZCVFN4RFFVRkRMRmRCUVZjc1EwRkJReXhSUVVGUkxFbEJRVWtzVFVGQlRTeERRVUZETEZkQlFWY3NRMEZCUXl4UlFVRlJMRVZCUVVVc1EwRkJReXhQUVVGUExFTkJRVU1zWTBGQll5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRVZCUVVVN1dVRkRja2dzWVVGQllUdFpRVU5pTEUxQlFVMHNRMEZCUXl4WFFVRlhMRU5CUVVNc2IwSkJRVzlDTEVWQlFVVXNaMEpCUVdkQ0xFTkJRVU1zUTBGQlF6dFRRVU0xUkR0aFFVRk5PMWxCUTB3c1RVRkJUU3hEUVVGRExHZENRVUZuUWl4RFFVRkRMRTFCUVUwc1JVRkJSU3huUWtGQlowSXNSVUZCUlN4TFFVRkxMRU5CUVVNc1EwRkJRenRaUVVONlJDeE5RVUZOTEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU1zVTBGQlV5eEZRVUZGTEUxQlFVMHNSVUZCUlN4TFFVRkxMRU5CUVVNc1EwRkJRenRUUVVOdVJEdFJRVVZFTEUxQlFVMHNRMEZCUXl4WlFVRlpMRU5CUVVNc1lVRkJZU3hGUVVGRkxGZEJRVmNzUTBGQlF5eERRVUZETzFGQlEyaEVMRTFCUVUwc1EwRkJReXhaUVVGWkxFTkJRVU1zVTBGQlV5eEZRVUZGTEU5QlFVOHNRMEZCUXl4RFFVRkRPMUZCUTNoRExFMUJRVTBzUTBGQlF5eFpRVUZaTEVOQlFVTXNUMEZCVHl4RlFVRkZMRTFCUVUwc1EwRkJReXhEUVVGRE8xRkJSWEpETEUxQlFVMHNRMEZCUXl4SFFVRkhMRWRCUVVjc1IwRkJSeXhEUVVGRE8xRkJSV3BDTEZGQlFWRXNRMEZCUXl4SlFVRkpMRU5CUVVNc1YwRkJWeXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETzBsQlEzQkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRMHdzUTBGQlF5eERRVUZETzBGQlJVWTdPenM3T3p0SFFVMUhPMEZCUTBnc1RVRkJUU3hEUVVGRExFMUJRVTBzWTBGQll5eEhRVUZITEVOQlFVTXNSVUZCVlN4RlFVRkZMRkZCUVdFc1JVRkJSU3hSUVVGakxFVkJRVVVzUlVGQlJUdEpRVU14UlN4dlEwRkJiME03U1VGRGNFTXNTVUZCU1N4TlFVRk5MRWxCUVVrc1QwRkJUeXhOUVVGTkxFdEJRVXNzVVVGQlVTeEZRVUZGTzFGQlEzaERMRTlCUVU4N1MwRkRVanRKUVVWRUxFbEJRVWtzUTBGQlF5eEZRVUZGTEVWQlFVVTdVVUZEVUN4TlFVRk5MRWxCUVVrc1MwRkJTeXhEUVVGRExIVkNRVUYxUWl4RFFVRkRMRU5CUVVFN1MwRkRla003U1VGRlJDeEpRVUZKTEVOQlFVTXNUMEZCVHl4RlFVRkZPMUZCUTFvc1RVRkJUU3hKUVVGSkxFdEJRVXNzUTBGQlF5d3lRa0ZCTWtJc1EwRkJReXhEUVVGQk8wdEJRemRETzBsQlJVUXNSVUZCUlN4SFFVRkhMR0ZCUVdFc1IwRkJSeXhGUVVGRkxFTkJRVU03U1VGRmVFSXNTVUZCU1N4UFFVRlBMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVU3VVVGRFppeFBRVUZQTEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1JVRkJSU3hSUVVGUkxFVkJRVVVzVVVGQlVTeEZRVUZGTEVOQlFVRTdTMEZEY2tNN1FVRkRTQ3hEUVVGRExFTkJRVU03UVVGRlJqczdPenRIUVVsSE8wRkJRMGdzVFVGQlRTeERRVUZETEUxQlFVMHNUMEZCVHl4SFFVRkhMRU5CUVVNc1IwRkJSeXhGUVVGRkxFVkJRVVU3U1VGRE4wSXNUVUZCVFN4dFFrRkJiVUlzUjBGQlJ5eFJRVUZSTEVOQlFVTXNZVUZCWVN4RFFVRkRMR05CUVdNc1IwRkJSeXhKUVVGSkxFTkJRVU1zUTBGQlF6dEpRVU14UlN4SlFVRkpMRzFDUVVGdFFpeExRVUZMTEVsQlFVa3NSVUZCUlR0UlFVTm9ReXhQUVVGUExFOUJRVThzUTBGQlF5eFBRVUZQTEVWQlFVVXNRMEZCUXp0TFFVTXhRanRKUVVWRUxFOUJRVThzU1VGQlNTeFBRVUZQTEVOQlFVTXNRMEZCUXl4UFFVRlBMRVZCUVVVc1JVRkJSVHRSUVVNM1FpeE5RVUZOTEVsQlFVa3NSMEZCUnl4UlFVRlJMRU5CUVVNc2IwSkJRVzlDTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRGRFUXNUVUZCVFN4SlFVRkpMRWRCUVVjc1VVRkJVU3hEUVVGRExHRkJRV0VzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXp0UlFVVTFReXhOUVVGTkxFMUJRVTBzUjBGQlJ5eEhRVUZITEVWQlFVVTdXVUZEYkVJc1QwRkJUeXhGUVVGRkxFTkJRVU03V1VGRFZpeEpRVUZKTEVOQlFVTXNiVUpCUVcxQ0xFTkJRVU1zVFVGQlRTeEZRVUZGTEUxQlFVMHNRMEZCUXl4RFFVRkRPMUZCUXpORExFTkJRVU1zUTBGQlF6dFJRVVZHTEVsQlFVa3NRMEZCUXl4SFFVRkhMRWRCUVVjc1dVRkJXU3hEUVVGRE8xRkJRM2hDTEVsQlFVa3NRMEZCUXl4SlFVRkpMRWRCUVVjc1IwRkJSeXhEUVVGRE8xRkJRMmhDTEVsQlFVa3NRMEZCUXl4blFrRkJaMElzUTBGQlF5eE5RVUZOTEVWQlFVVXNUVUZCVFN4RFFVRkRMRU5CUVVNN1VVRkRkRU1zU1VGQlNTeERRVUZETEZkQlFWY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRKUVVONlFpeERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTk1MRU5CUVVNc1EwRkJRenRCUVVWR096dEhRVVZITzBGQlEwZ3NUVUZCVFN4RFFVRk9MRWxCUVZrc2FVSkJTVmc3UVVGS1JDeFhRVUZaTEdsQ1FVRnBRanRKUVVNelFpeHZSRUZCSzBJc1EwRkJRVHRKUVVNdlFpeHZSRUZCSzBJc1EwRkJRVHRKUVVNdlFpeHpRMEZCYVVJc1EwRkJRVHRCUVVOdVFpeERRVUZETEVWQlNsY3NhVUpCUVdsQ0xFdEJRV3BDTEdsQ1FVRnBRaXhSUVVrMVFqdEJRVUZCTEVOQlFVTWlMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUpqYjI1emRDQk5UMFJWVEVWZlVGSkZSa2xZSUQwZ0oyWnpMV3h2WVdSbGNpMG5PMXh1WTI5dWMzUWdaMnh2WW1Gc1NHOXNaR1Z5T2lCaGJua2dQU0I3ZlR0Y2JseHVaWGh3YjNKMElIUjVjR1VnVFc5a2RXeGxSR1ZtSUQwZ2UxeHVJQ0J3Y205dGFYTmxQem9nVUhKdmJXbHpaVHhoYm5rK1hHNGdJSEpsYzI5c2RtVlFjbTl0YVhObFB6b2dZVzU1TzF4dUlDQnBibk4wWVc1alpUODZJR0Z1ZVR0Y2JpQWdiV1YwWVdSaGRHRS9PaUJoYm5rN1hHNTlYRzVjYm1WNGNHOXlkQ0IwZVhCbElFNWhiV1Z6Y0dGalpTQTlJSHRjYmlBZ0lDQnRiMlIxYkdWek9pQjdYRzRnSUNBZ0lGdHJaWGs2SUhOMGNtbHVaMTA2SUUxdlpIVnNaVVJsWmx4dUlDQWdJSDFjYm4wN1hHNWNibU52Ym5OMElHbHVhWFJwWVd4cGVtVkhiRzlpWVd4T1lXMWxjM0JoWTJVZ1BTQW9LU0E5UGlCN1hHNGdJR3hsZENCb2IyeGtaWEk2WVc1NU8xeHVYRzRnSUM4dklHbG1JSFJvWlhKbElHbHpJRzV2SUhkcGJtUnZkeUJ2WW1vZ2RYTmxJRzV2WkdWcWN5Qm5iRzlpWVd3Z2JHbGlJSFpoY21saFlteGxYRzRnSUdsbUlDaDNhVzVrYjNjZ0ppWWdkSGx3Wlc5bUlIZHBibVJ2ZHlBaFBUMGdKMjlpYW1WamRDY3BJSHRjYmlBZ0lDQm9iMnhrWlhJZ1BTQm5iRzlpWVd4SWIyeGtaWEk3WEc0Z0lIMGdaV3h6WlNCN1hHNGdJQ0FnYUc5c1pHVnlJRDBnZDJsdVpHOTNYRzRnSUgxY2JseHVJQ0F2THlCQWRITXRhV2R1YjNKbFhHNGdJR3hsZENCdVlXMWxjM0JoWTJVNklFNWhiV1Z6Y0dGalpTQTlJR2h2YkdSbGNpNW1hV3hsYzNSaFkydEpiblJsY201aGJITTdYRzVjYmlBZ2FXWWdLQ0Z1WVcxbGMzQmhZMlVwSUh0Y2JpQWdJQ0J1WVcxbGMzQmhZMlVnUFNCN1hHNGdJQ0FnSUNCdGIyUjFiR1Z6T2lCN2ZTeGNiaUFnSUNCOU8xeHVYRzRnSUNBZ0x5OGdRSFJ6TFdsbmJtOXlaVnh1SUNBZ0lIZHBibVJ2ZHk1bWFXeGxjM1JoWTJ0SmJuUmxjbTVoYkhNZ1BTQnVZVzFsYzNCaFkyVTdYRzRnSUgxY2JseHVJQ0JwWmlBb0lXNWhiV1Z6Y0dGalpTNXRiMlIxYkdWektTQjdYRzRnSUNBZ2JtRnRaWE53WVdObExtMXZaSFZzWlhNZ1BTQjdmVHRjYmlBZ2ZWeHVJQ0JjYmlBZ2NtVjBkWEp1SUc1aGJXVnpjR0ZqWlR0Y2JuMDdYRzVjYm1OdmJuTjBJR1pwYkdWemRHRmphMGx1ZEdWeWJtRnNjeUE5SUdsdWFYUnBZV3hwZW1WSGJHOWlZV3hPWVcxbGMzQmhZMlVvS1R0Y2JtTnZibk4wSUcxdlpIVnNaWE1nUFNCbWFXeGxjM1JoWTJ0SmJuUmxjbTVoYkhNZ0ppWWdabWxzWlhOMFlXTnJTVzUwWlhKdVlXeHpMbTF2WkhWc1pYTTdYRzVjYmk4cUtseHVJQ29nVW1WdGIzWmxJR3hwYzNSbGJtVnljeUFvWW5KdmQzTmxjaUJqYjIxd1lYUnBZbXhsS1Z4dUlDb2dYRzRnS2lCQWNHRnlZVzBnYm05a1pTQmNiaUFxSUVCd1lYSmhiU0JtZFc1aklGeHVJQ29nUUhCaGNtRnRJRzVoYldVZ1hHNGdLaTljYm1OdmJuTjBJSEpsYlc5MlpVeHBjM1JsYm1WeUlEMGdLRzV2WkdVc0lHWjFibU1zSUc1aGJXVXNJQ2tnUFQ0Z2UxeHVJQ0JwWmlBb2JtOWtaUzVrWlhSaFkyaEZkbVZ1ZENrZ2UxeHVJQ0FnSUc1dlpHVXVaR1YwWVdOb1JYWmxiblFvSjI5dWNtVmhaSGx6ZEdGMFpXTm9ZVzVuWlNjc0lHWjFibU1wTzF4dUlDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUc1dlpHVXVjbVZ0YjNabFJYWmxiblJNYVhOMFpXNWxjaWh1WVcxbExDQm1kVzVqTENCbVlXeHpaU2s3WEc0Z0lIMWNibjFjYmx4dUx5b3FYRzRnS2lCTWIyRmtJRzExYkhScGNHeGxJRzF2WkhWc1pYTmNiaUFxSUZ4dUlDb2dRSEJoY21GdElIc3FmU0J0YjJSMWJHVnpJRnh1SUNvdlhHNWxlSEJ2Y25RZ1kyOXVjM1FnYkc5aFpFMXZaSFZzWlhNZ1BTQW9iVzlrZFd4bGMweHBjM1FwSUQwK0lGQnliMjFwYzJVdVlXeHNLRzF2WkhWc1pYTk1hWE4wTG0xaGNDZ29leUJwWkN3Z2RYSnNJSDBwSUQwK0lHeHZZV1JOYjJSMWJHVW9hV1FzSUhWeWJDa3BLUzUwYUdWdUtDaHlaWE1wSUQwK0lIdGNiaUFnWTI5dWMzUWdkRzlTWlhSMWNtNGdQU0I3ZlR0Y2JseHVJQ0J5WlhNdVptOXlSV0ZqYUNnb2JXOWtMQ0JwWkhncElEMCtJSHRjYmlBZ0lDQmpiMjV6ZENCbGJDQTlJRzF2WkhWc1pYTk1hWE4wVzJsa2VGMDdYRzRnSUNBZ2RHOVNaWFIxY201YlpXd3VhV1JkSUQwZ2JXOWtPMXh1SUNCOUtUdGNibHh1SUNCeVpYUjFjbTRnZEc5U1pYUjFjbTQ3WEc1OUtUdGNibHh1THlvcVhHNGdLaUJNYjJGa0lITnBibWRzWlNCdGIyUjFiR1VnWm5KdmJTQjFjbXdnZDJsMGFDQm5hWFpsYmlCcFpGeHVJQ3BjYmlBcUlFQndZWEpoYlNCN0tuMGdhV1FnTFNCdGIyUjFiR1VnYVdRZ1hHNGdLaUJBY0dGeVlXMGdleXA5SUhWeWJGeHVJQ292WEc1bGVIQnZjblFnWTI5dWMzUWdiRzloWkUxdlpIVnNaU0E5SUNocFpEb2djM1J5YVc1bkxDQjFjbXc2SUhOMGNtbHVaeWtnUFQ0Z2UxeHVJQ0JwWmlBb2QybHVaRzkzSUNZbUlIUjVjR1Z2WmlCM2FXNWtiM2NnSVQwOUlDZHZZbXBsWTNRbktTQjdYRzRnSUNBZ2NtVjBkWEp1SUZCeWIyMXBjMlV1Y21WcVpXTjBLRzVsZHlCRmNuSnZjaWduVEc5aFpDQnRiMlIxYkdVZ2FYTWdkMjl5YTJsdVp5QnZibXg1SUc5dUlHSnliM2R6WlhJZ1pXNTJKeWtwTzF4dUlDQjlYRzVjYmlBZ2FXWWdLQ0ZwWkNrZ2UxeHVJQ0FnSUhSb2NtOTNJRzVsZHlCRmNuSnZjaWduVFc5a2RXeGxJR2xrSUdseklISmxjWFZwY21Wa0p5bGNiaUFnZlZ4dVhHNGdJR3hsZENCdGIyUjFiR1ZFWldacGJtbDBhVzl1SUQwZ2JXOWtkV3hsYzF0cFpGMDdYRzVjYmlBZ2FXUWdQU0FnVFU5RVZVeEZYMUJTUlVaSldDQXJJR2xrTzF4dVhHNGdJR2xtSUNnaGJXOWtkV3hsUkdWbWFXNXBkR2x2YmlrZ2UxeHVJQ0FnSUcxdlpIVnNaWE5iYVdSZElEMGdlMzA3WEc0Z0lDQWdiVzlrZFd4bFJHVm1hVzVwZEdsdmJpQTlJRzF2WkhWc1pYTmJhV1JkTzF4dUlDQjlYRzVjYmlBZ2FXWWdLRzF2WkhWc1pVUmxabWx1YVhScGIyNHVhVzV6ZEdGdVkyVXBJSHRjYmlBZ0lDQnlaWFIxY200Z1VISnZiV2x6WlM1eVpYTnZiSFpsS0cxdlpIVnNaVVJsWm1sdWFYUnBiMjR1YVc1emRHRnVZMlVwTzF4dUlDQjlYRzVjYmlBZ2FXWWdLRzF2WkhWc1pVUmxabWx1YVhScGIyNHVjSEp2YldselpTa2dlMXh1SUNBZ0lISmxkSFZ5YmlCdGIyUjFiR1ZFWldacGJtbDBhVzl1TG5CeWIyMXBjMlU3WEc0Z0lIMWNibHh1SUNCeVpYUjFjbTRnYlc5a2RXeGxSR1ZtYVc1cGRHbHZiaTV3Y205dGFYTmxJRDBnYm1WM0lGQnliMjFwYzJVb0tISmxjMjlzZG1Vc0lISmxhbVZqZENrZ1BUNGdlMXh1SUNBZ0lHTnZibk4wSUhKbFlXUjVVM1JoZEdWRGFHRnVaMlVnUFNBb1pYWjBPaUJoYm5rcElEMCtJSHRjYmlBZ0lDQWdJR2xtSUNobGRuUXVkSGx3WlNBOVBUMGdKMnh2WVdRbklIeDhJQ2d2WGloamIyMXdiR1YwWlh4c2IyRmtaV1FwSkM4dWRHVnpkQ2dvWlhaMExtTjFjbkpsYm5SVVlYSm5aWFFnZkh3Z1pYWjBMbk55WTBWc1pXMWxiblFwTG5KbFlXUjVVM1JoZEdVcEtTa2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQnViMlJsSUQwZ0lHVjJkQzVqZFhKeVpXNTBWR0Z5WjJWMElIeDhJR1YyZEM1emNtTkZiR1Z0Wlc1ME8xeHVYRzRnSUNBZ0lDQWdJSEpsYlc5MlpVeHBjM1JsYm1WeUtHNXZaR1VzSUhKbFlXUjVVM1JoZEdWRGFHRnVaMlVzSUNkc2IyRmtKeWs3WEc0Z0lDQWdJQ0FnSUhKbGJXOTJaVXhwYzNSbGJtVnlLRzV2WkdVc0lISmxhbVZqZEN3Z0oyVnljbTl5SnlrN1hHNWNiaUFnSUNBZ0lDQWdMeThnYzJ4dmR5QmtiM2NnWTJobFkydHBibWNnYVdZZ2JXOWtkV3hsSUdseklHeHZZV1JsWkNCMGJ5Qmxibk4xY21VZ2RHaGhkQ0J6WTNKcGNIUWdkR2hoZENBZ2NtVm5hWE4wWlhJZ2JXOWtkV3hsSUdseklHTmhiR3hsWkZ4dUlDQWdJQ0FnSUNCelpYUlVhVzFsYjNWMEtDZ3BJRDArSUhKbGMyOXNkbVVvYlc5a2RXeGxjMXRwWkYwZ1B5QnRiMlIxYkdWelcybGtYUzVwYm5OMFlXNWpaU0E2SUhWdVpHVm1hVzVsWkNrc0lERXdLVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlYRzVjYmlBZ0lDQmpiMjV6ZENCelkzSnBjSFFnUFNCa2IyTjFiV1Z1ZEM1amNtVmhkR1ZGYkdWdFpXNTBLQ2R6WTNKcGNIUW5LVHRjYmlBZ0lDQmNiaUFnSUNCelkzSnBjSFF1YVdRZ1BTQnBaRHRjYmx4dUlDQWdJQzh2SUVCMGN5MXBaMjV2Y21VZ1ptbDRJR1p2Y2lCSlJWeHVJQ0FnSUdsbUlDaHpZM0pwY0hRdVlYUjBZV05vUlhabGJuUWdKaVlnSVNoelkzSnBjSFF1WVhSMFlXTm9SWFpsYm5RdWRHOVRkSEpwYm1jZ0ppWWdjMk55YVhCMExtRjBkR0ZqYUVWMlpXNTBMblJ2VTNSeWFXNW5LQ2t1YVc1a1pYaFBaaWduVzI1aGRHbDJaU0JqYjJSbEp5a2dQQ0F3S1NrZ2UxeHVJQ0FnSUNBZ0x5OGdRSFJ6TFdsbmJtOXlaVnh1SUNBZ0lDQWdjMk55YVhCMExtRjBkR0ZqYUVWMlpXNTBLQ2R2Ym5KbFlXUjVjM1JoZEdWamFHRnVaMlVuTENCeVpXRmtlVk4wWVhSbFEyaGhibWRsS1R0Y2JpQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdjMk55YVhCMExtRmtaRVYyWlc1MFRHbHpkR1Z1WlhJb0oyeHZZV1FuTENCeVpXRmtlVk4wWVhSbFEyaGhibWRsTENCbVlXeHpaU2s3WEc0Z0lDQWdJQ0J6WTNKcGNIUXVZV1JrUlhabGJuUk1hWE4wWlc1bGNpZ25iMjVsY25KdmNpY3NJSEpsYW1WamRDd2dabUZzYzJVcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUhOamNtbHdkQzV6WlhSQmRIUnlhV0oxZEdVb0oyTnliM056YjNKcFoybHVKeXdnSjJGdWIyNTViVzkxY3ljcE8xeHVJQ0FnSUhOamNtbHdkQzV6WlhSQmRIUnlhV0oxZEdVb0oyTm9ZWEp6WlhRbkxDQW5kWFJtTFRnbktUdGNiaUFnSUNCelkzSnBjSFF1YzJWMFFYUjBjbWxpZFhSbEtDZGhjM2x1WXljc0lDZDBjblZsSnlrN1hHNWNiaUFnSUNCelkzSnBjSFF1YzNKaklEMGdkWEpzTzF4dVhHNGdJQ0FnWkc5amRXMWxiblF1WW05a2VTNWhjSEJsYm1SRGFHbHNaQ2h6WTNKcGNIUXBPMXh1SUNCOUtUdGNibjA3WEc1Y2JpOHFLbHh1SUNvZ1VtVm5hWE4wWlhJZ2RHaGhkQ0J0YjJSMWJHVWdhWE1nY21WaFpIbGNiaUFxSUZ4dUlDb2dRSEJoY21GdElIdHpkSEpwYm1kOUlHbGtJRnh1SUNvZ1FIQmhjbUZ0SUh0aGJubDlJR2x1YzNSaGJtTmxJRnh1SUNvZ1FIQmhjbUZ0SUh0aGJubDlJRzFsZEdGa1lYUmhJQzBnWVdSa2FYUnBiMjVoYkNCdGIyUjFiR1VnYldWMFlXUmhkR0VnYkdsclpTQjJaWEp6YVc5dVhHNGdLaTljYm1WNGNHOXlkQ0JqYjI1emRDQnlaV2RwYzNSbGNrMXZaSFZzWlNBOUlDaHBaRG9nYzNSeWFXNW5MQ0JwYm5OMFlXNWpaVG9nWVc1NUxDQnRaWFJoWkdGMFlUODZJR0Z1ZVNrZ1BUNGdlMXh1SUNBdkx5QnNiMkZrWlhJZ2JtOTBJSGR2Y210cGJtY2diMjRnYm05a1pXcHpJR1Z1ZG5OY2JpQWdhV1lnS0hkcGJtUnZkeUFtSmlCMGVYQmxiMllnZDJsdVpHOTNJQ0U5UFNBbmIySnFaV04wSnlrZ2UxeHVJQ0FnSUhKbGRIVnlianRjYmlBZ2ZWeHVYRzRnSUdsbUlDZ2hhV1FwSUh0Y2JpQWdJQ0IwYUhKdmR5QnVaWGNnUlhKeWIzSW9KMDF2WkhWc1pTQnBaQ0JwY3lCeVpYRjFhWEpsWkNjcFhHNGdJSDFjYmx4dUlDQnBaaUFvSVcxdlpIVnNaWE1wSUh0Y2JpQWdJQ0IwYUhKdmR5QnVaWGNnUlhKeWIzSW9KMHh2WVdSbGNpQnBjeUJ1YjNRZ2FXNXBkR2xoYkdsNlpXUW5LVnh1SUNCOVhHNWNiaUFnYVdRZ1BTQk5UMFJWVEVWZlVGSkZSa2xZSUNzZ2FXUTdYRzVjYmlBZ2FXWWdLRzF2WkhWc1pYTmJhV1JkS1NCN1hHNGdJQ0FnYlc5a2RXeGxjMXRwWkYwZ1BTQjdJR2x1YzNSaGJtTmxMQ0J0WlhSaFpHRjBZU0I5WEc0Z0lIMWNibjA3WEc1Y2JpOHFLbHh1SUNvZ1RHOWhaQ0JsZUhSbGNtNWhiQ0JqYzNNZ1puSnZiU0JuYVhabGJpQjFjbXhjYmlBcUlGeHVJQ29nUUhCaGNtRnRJSHNxZlNCMWNtd2dYRzRnS2k5Y2JtVjRjRzl5ZENCamIyNXpkQ0JzYjJGa1EzTnpJRDBnS0hWeWJDa2dQVDRnZTF4dUlDQmpiMjV6ZENCaGJISmxZV1I1UVdSa1pXUlVhR2x6VkdGbklEMGdaRzlqZFcxbGJuUXVjWFZsY25sVFpXeGxZM1J2Y2loZ2JHbHVhMXRvY21WbVBWd2lKSHQxY214OVhDSmRZQ2s3WEc0Z0lHbG1JQ2hoYkhKbFlXUjVRV1JrWldSVWFHbHpWR0ZuSUNFOVBTQnVkV3hzS1NCN1hHNGdJQ0FnY21WMGRYSnVJRkJ5YjIxcGMyVXVjbVZ6YjJ4MlpTZ3BPMXh1SUNCOVhHNWNiaUFnY21WMGRYSnVJRzVsZHlCUWNtOXRhWE5sS0NoeVpYTnZiSFpsS1NBOVBpQjdYRzRnSUNBZ1kyOXVjM1FnYUdWaFpDQTlJR1J2WTNWdFpXNTBMbWRsZEVWc1pXMWxiblJ6UW5sVVlXZE9ZVzFsS0Nkb1pXRmtKeWxiTUYwN1hHNGdJQ0FnWTI5dWMzUWdiR2x1YXlBOUlHUnZZM1Z0Wlc1MExtTnlaV0YwWlVWc1pXMWxiblFvSjJ4cGJtc25LVHRjYmx4dUlDQWdJR052Ym5OMElHeHZZV1JsWkNBOUlDZ3BJRDArSUh0Y2JpQWdJQ0FnSUhKbGMyOXNkbVVvS1R0Y2JpQWdJQ0FnSUd4cGJtc3VjbVZ0YjNabFJYWmxiblJNYVhOMFpXNWxjaWduYkc5aFpDY3NJR3h2WVdSbFpDazdYRzRnSUNBZ2ZUdGNibHh1SUNBZ0lHeHBibXN1Y21Wc0lEMGdKM04wZVd4bGMyaGxaWFFuTzF4dUlDQWdJR3hwYm1zdWFISmxaaUE5SUhWeWJEdGNiaUFnSUNCc2FXNXJMbUZrWkVWMlpXNTBUR2x6ZEdWdVpYSW9KMnh2WVdRbkxDQnNiMkZrWldRcE8xeHVJQ0FnSUdobFlXUXVZWEJ3Wlc1a1EyaHBiR1FvYkdsdWF5azdYRzRnSUgwcE8xeHVmVHRjYmx4dUx5b3FYRzRnS2lCRmJuVnRJR3AxYzNRZ1ptOXlJSFZ1YVdaNUlHWnBiR1Z6ZEdGamF5QnRiMlIxYkdVZ2JtRnRaWE5jYmlBcUwxeHVaWGh3YjNKMElHVnVkVzBnUmtsTVJWTlVRVU5MWDAxUFJGVk1SVk1nZTF4dUlDQkdTVXhGVTFSQlEwdGZVMFJMSUQwZ0oyWnBiR1Z6ZEdGamF5MXpaR3NuTEZ4dUlDQlVVa0ZPVTBaUFVrMVRYMVZKSUQwZ0ozUnlZVzV6Wm05eWJYTXRkV2tuTEZ4dUlDQlFTVU5MUlZJZ1BTQW5jR2xqYTJWeUp5eGNibjA3WEc0aVhYMD0iXSwic291cmNlUm9vdCI6IiJ9

@@ -6,7 +6,10 @@ "use strict";

var initializeGlobalNamespace = function () {
var holder = window;
var holder;
// if there is no window obj use nodejs global lib variable
if (typeof holder !== 'object') {
if (window && typeof window !== 'object') {
holder = globalHolder;
}
else {
holder = window;
}
// @ts-ignore

@@ -66,2 +69,5 @@ var namespace = holder.filestackInternals;

exports.loadModule = function (id, url) {
if (window && typeof window !== 'object') {
return Promise.reject(new Error('Load module is working only on browser env'));
}
if (!id) {

@@ -118,2 +124,6 @@ throw new Error('Module id is required');

exports.registerModule = function (id, instance, metadata) {
// loader not working on nodejs envs
if (window && typeof window !== 'object') {
return;
}
if (!id) {

@@ -163,2 +173,2 @@ throw new Error('Module id is required');

;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9saWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxJQUFNLGFBQWEsR0FBRyxZQUFZLENBQUM7QUFDbkMsSUFBTSxZQUFZLEdBQVEsRUFBRSxDQUFDO0FBZTdCLElBQU0seUJBQXlCLEdBQUc7SUFDaEMsSUFBSSxNQUFNLEdBQUcsTUFBTSxDQUFDO0lBRXBCLDJEQUEyRDtJQUMzRCxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsRUFBRTtRQUM5QixNQUFNLEdBQUcsWUFBWSxDQUFDO0tBQ3ZCO0lBRUQsYUFBYTtJQUNiLElBQUksU0FBUyxHQUFjLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQztJQUVyRCxJQUFJLENBQUMsU0FBUyxFQUFFO1FBQ2QsU0FBUyxHQUFHO1lBQ1YsT0FBTyxFQUFFLEVBQUU7U0FDWixDQUFDO1FBRUYsYUFBYTtRQUNiLE1BQU0sQ0FBQyxrQkFBa0IsR0FBRyxTQUFTLENBQUM7S0FDdkM7SUFFRCxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRTtRQUN0QixTQUFTLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztLQUN4QjtJQUVELE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUMsQ0FBQztBQUVGLElBQU0sa0JBQWtCLEdBQUcseUJBQXlCLEVBQUUsQ0FBQztBQUN2RCxJQUFNLE9BQU8sR0FBRyxrQkFBa0IsSUFBSSxrQkFBa0IsQ0FBQyxPQUFPLENBQUM7QUFFakU7Ozs7OztHQU1HO0FBQ0gsSUFBTSxjQUFjLEdBQUcsVUFBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUk7SUFDdEMsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1FBQ3BCLElBQUksQ0FBQyxXQUFXLENBQUMsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLENBQUM7S0FDOUM7U0FBTTtRQUNMLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxD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QUFDVSxRQUFBLE9BQU8sR0FBRyxVQUFDLEdBQUc7SUFDekIsSUFBTSxtQkFBbUIsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLGlCQUFjLEdBQUcsUUFBSSxDQUFDLENBQUM7SUFDMUUsSUFBSSxtQkFBbUIsS0FBSyxJQUFJLEVBQUU7UUFDaEMsT0FBTyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7S0FDMUI7SUFFRCxPQUFPLElBQUksT0FBTyxDQUFDLFVBQUMsT0FBTztRQUN6QixJQUFNLElBQUksR0FBRyxRQUFRLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEQsSUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUU1QyxJQUFNLE1BQU0sR0FBRztZQUNiLE9BQU8sRUFBRSxDQUFDO1lBQ1YsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUMzQyxDQUFDLENBQUM7UUFFRixJQUFJLENBQUMsR0FBRyxHQUFHLFlBQVksQ0FBQztRQUN4QixJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQztRQUNoQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekIsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUM7QUFFRjs7R0FFRztBQUNILElBQVksaUJBSVg7QUFKRCxXQUFZLGlCQUFpQjtJQUMzQixvREFBK0IsQ0FBQTtJQUMvQixvREFBK0IsQ0FBQTtJQUMvQixzQ0FBaUIsQ0FBQTtBQUNuQixDQUFDLEVBSlcsaUJBQWlCLEdBQWpCLHlCQUFpQixLQUFqQix5QkFBaUIsUUFJNUI7QUFBQSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgTU9EVUxFX1BSRUZJWCA9ICdmcy1sb2FkZXItJztcbmNvbnN0IGdsb2JhbEhvbGRlcjogYW55ID0ge307XG5cbmV4cG9ydCB0eXBlIE1vZHVsZURlZiA9IHtcbiAgcHJvbWlzZT86IFByb21pc2U8YW55PlxuICByZXNvbHZlUHJvbWlzZT86IGFueTtcbiAgaW5zdGFuY2U/OiBhbnk7XG4gIG1ldGFkYXRhPzogYW55O1xufVxuXG5leHBvcnQgdHlwZSBOYW1lc3BhY2UgPSB7XG4gICAgbW9kdWxlczoge1xuICAgICBba2V5OiBzdHJpbmddOiBNb2R1bGVEZWZcbiAgICB9XG59O1xuXG5jb25zdCBpbml0aWFsaXplR2xvYmFsTmFtZXNwYWNlID0gKCkgPT4ge1xuICBsZXQgaG9sZGVyID0gd2luZG93O1xuXG4gIC8vIGlmIHRoZXJlIGlzIG5vIHdpbmRvdyBvYmogdXNlIG5vZGVqcyBnbG9iYWwgbGliIHZhcmlhYmxlXG4gIGlmICh0eXBlb2YgaG9sZGVyICE9PSAnb2JqZWN0Jykge1xuICAgIGhvbGRlciA9IGdsb2JhbEhvbGRlcjtcbiAgfVxuXG4gIC8vIEB0cy1pZ25vcmVcbiAgbGV0IG5hbWVzcGFjZTogTmFtZXNwYWNlID0gaG9sZGVyLmZpbGVzdGFja0ludGVybmFscztcblxuICBpZiAoIW5hbWVzcGFjZSkge1xuICAgIG5hbWVzcGFjZSA9IHtcbiAgICAgIG1vZHVsZXM6IHt9LFxuICAgIH07XG5cbiAgICAvLyBAdHMtaWdub3JlXG4gICAgd2luZG93LmZpbGVzdGFja0ludGVybmFscyA9IG5hbWVzcGFjZTtcbiAgfVxuXG4gIGlmICghbmFtZXNwYWNlLm1vZHVsZXMpIHtcbiAgICBuYW1lc3BhY2UubW9kdWxlcyA9IHt9O1xuICB9XG4gIFxuICByZXR1cm4gbmFtZXNwYWNlO1xufTtcblxuY29uc3QgZmlsZXN0YWNrSW50ZXJuYWxzID0gaW5pdGlhbGl6ZUdsb2JhbE5hbWVzcGFjZSgpO1xuY29uc3QgbW9kdWxlcyA9IGZpbGVzdGFja0ludGVybmFscyAmJiBmaWxlc3RhY2tJbnRlcm5hbHMubW9kdWxlcztcblxuLyoqXG4gKiBSZW1vdmUgbGlzdGVuZXJzIChicm93c2VyIGNvbXBhdGlibGUpXG4gKiBcbiAqIEBwYXJhbSBub2RlIFxuICogQHBhcmFtIGZ1bmMgXG4gKiBAcGFyYW0gbmFtZSBcbiAqL1xuY29uc3QgcmVtb3ZlTGlzdGVuZXIgPSAobm9kZSwgZnVuYywgbmFtZSwgKSA9PiB7XG4gIGlmIChub2RlLmRldGFjaEV2ZW50KSB7XG4gICAgbm9kZS5kZXRhY2hFdmVudCgnb25yZWFkeXN0YXRlY2hhbmdlJywgZnVuYyk7XG4gIH0gZWxzZSB7XG4gICAgbm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKG5hbWUsIGZ1bmMsIGZhbHNlKTtcbiAgfVxufVxuXG4vKipcbiAqIExvYWQgbXVsdGlwbGUgbW9kdWxlc1xuICogXG4gKiBAcGFyYW0geyp9IG1vZHVsZXMgXG4gKi9cbmV4cG9ydCBjb25zdCBsb2FkTW9kdWxlcyA9IChtb2R1bGVzTGlzdCkgPT4gUHJvbWlzZS5hbGwobW9kdWxlc0xpc3QubWFwKCh7IGlkLCB1cmwgfSkgPT4gbG9hZE1vZHVsZShpZCwgdXJsKSkpLnRoZW4oKHJlcykgPT4ge1xuICBjb25zdCB0b1JldHVybiA9IHt9O1xuXG4gIHJlcy5mb3JFYWNoKChtb2QsIGlkeCkgPT4ge1xuICAgIGNvbnN0IGVsID0gbW9kdWxlc0xpc3RbaWR4XTtcbiAgICB0b1JldHVybltlbC5pZF0gPSBtb2Q7XG4gIH0pO1xuXG4gIHJldHVybiB0b1JldHVybjtcbn0pO1xuXG4vKipcbiAqIExvYWQgc2luZ2xlIG1vZHVsZSBmcm9tIHVybCB3aXRoIGdpdmVuIGlkXG4gKlxuICogQHBhcmFtIHsqfSBpZCAtIG1vZHVsZSBpZCBcbiAqIEBwYXJhbSB7Kn0gdXJsXG4gKi9cbmV4cG9ydCBjb25zdCBsb2FkTW9kdWxlID0gKGlkOiBzdHJpbmcsIHVybDogc3RyaW5nKSA9PiB7XG4gIGlmICghaWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01vZHVsZSBpZCBpcyByZXF1aXJlZCcpXG4gIH1cblxuICBsZXQgbW9kdWxlRGVmaW5pdGlvbiA9IG1vZHVsZXNbaWRdO1xuXG4gIGlkID0gIE1PRFVMRV9QUkVGSVggKyBpZDtcblxuICBpZiAoIW1vZHVsZURlZmluaXRpb24pIHtcbiAgICBtb2R1bGVzW2lkXSA9IHt9O1xuICAgIG1vZHVsZURlZmluaXRpb24gPSBtb2R1bGVzW2lkXTtcbiAgfVxuXG4gIGlmIChtb2R1bGVEZWZpbml0aW9uLmluc3RhbmNlKSB7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShtb2R1bGVEZWZpbml0aW9uLmluc3RhbmNlKTtcbiAgfVxuXG4gIGlmIChtb2R1bGVEZWZpbml0aW9uLnByb21pc2UpIHtcbiAgICByZXR1cm4gbW9kdWxlRGVmaW5pdGlvbi5wcm9taXNlO1xuICB9XG5cbiAgcmV0dXJuIG1vZHVsZURlZmluaXRpb24ucHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBjb25zdCByZWFkeVN0YXRlQ2hhbmdlID0gKGV2dDogYW55KSA9PiB7XG4gICAgICBpZiAoZXZ0LnR5cGUgPT09ICdsb2FkJyB8fCAoL14oY29tcGxldGV8bG9hZGVkKSQvLnRlc3QoKGV2dC5jdXJyZW50VGFyZ2V0IHx8IGV2dC5zcmNFbGVtZW50KS5yZWFkeVN0YXRlKSkpIHtcbiAgICAgICAgY29uc3Qgbm9kZSA9ICBldnQuY3VycmVudFRhcmdldCB8fCBldnQuc3JjRWxlbWVudDtcblxuICAgICAgICByZW1vdmVMaXN0ZW5lcihub2RlLCByZWFkeVN0YXRlQ2hhbmdlLCAnbG9hZCcpO1xuICAgICAgICByZW1vdmVMaXN0ZW5lcihub2RlLCByZWplY3QsICdlcnJvcicpO1xuXG4gICAgICAgIC8vIHNsb3cgZG93IGNoZWNraW5nIGlmIG1vZHVsZSBpcyBsb2FkZWQgdG8gZW5zdXJlIHRoYXQgc2NyaXB0IHRoYXQgIHJlZ2lzdGVyIG1vZHVsZSBpcyBjYWxsZWRcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiByZXNvbHZlKG1vZHVsZXNbaWRdID8gbW9kdWxlc1tpZF0uaW5zdGFuY2UgOiB1bmRlZmluZWQpLCAxMCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3Qgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XG4gICAgXG4gICAgc2NyaXB0LmlkID0gaWQ7XG5cbiAgICAvLyBAdHMtaWdub3JlIGZpeCBmb3IgSUVcbiAgICBpZiAoc2NyaXB0LmF0dGFjaEV2ZW50ICYmICEoc2NyaXB0LmF0dGFjaEV2ZW50LnRvU3RyaW5nICYmIHNjcmlwdC5hdHRhY2hFdmVudC50b1N0cmluZygpLmluZGV4T2YoJ1tuYXRpdmUgY29kZScpIDwgMCkpIHtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIHNjcmlwdC5hdHRhY2hFdmVudCgnb25yZWFkeXN0YXRlY2hhbmdlJywgcmVhZHlTdGF0ZUNoYW5nZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNjcmlwdC5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgcmVhZHlTdGF0ZUNoYW5nZSwgZmFsc2UpO1xuICAgICAgc2NyaXB0LmFkZEV2ZW50TGlzdGVuZXIoJ29uZXJyb3InLCByZWplY3QsIGZhbHNlKTtcbiAgICB9XG5cbiAgICBzY3JpcHQuc2V0QXR0cmlidXRlKCdjcm9zc29yaWdpbicsICdhbm9ueW1vdXMnKTtcbiAgICBzY3JpcHQuc2V0QXR0cmlidXRlKCdjaGFyc2V0JywgJ3V0Zi04Jyk7XG4gICAgc2NyaXB0LnNldEF0dHJpYnV0ZSgnYXN5bmMnLCAndHJ1ZScpO1xuXG4gICAgc2NyaXB0LnNyYyA9IHVybDtcblxuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2NyaXB0KTtcbiAgfSk7XG59O1xuXG4vKipcbiAqIFJlZ2lzdGVyIHRoYXQgbW9kdWxlIGlzIHJlYWR5XG4gKiBcbiAqIEBwYXJhbSB7c3RyaW5nfSBpZCBcbiAqIEBwYXJhbSB7YW55fSBpbnN0YW5jZSBcbiAqIEBwYXJhbSB7YW55fSBtZXRhZGF0YSAtIGFkZGl0aW9uYWwgbW9kdWxlIG1ldGFkYXRhIGxpa2UgdmVyc2lvblxuICovXG5leHBvcnQgY29uc3QgcmVnaXN0ZXJNb2R1bGUgPSAoaWQ6IHN0cmluZywgaW5zdGFuY2U6IGFueSwgbWV0YWRhdGE/OiBhbnkpID0+IHtcbiAgaWYgKCFpZCkge1xuICAgIHRocm93IG5ldyBFcnJvcignTW9kdWxlIGlkIGlzIHJlcXVpcmVkJylcbiAgfVxuXG4gIGlmICghbW9kdWxlcykge1xuICAgIHRocm93IG5ldyBFcnJvcignTG9hZGVyIGlzIG5vdCBpbml0aWFsaXplZCcpXG4gIH1cblxuICBpZCA9IE1PRFVMRV9QUkVGSVggKyBpZDtcblxuICBpZiAobW9kdWxlc1tpZF0pIHtcbiAgICBtb2R1bGVzW2lkXSA9IHsgaW5zdGFuY2UsIG1ldGFkYXRhIH1cbiAgfVxufTtcblxuLyoqXG4gKiBMb2FkIGV4dGVybmFsIGNzcyBmcm9tIGdpdmVuIHVybFxuICogXG4gKiBAcGFyYW0geyp9IHVybCBcbiAqL1xuZXhwb3J0IGNvbnN0IGxvYWRDc3MgPSAodXJsKSA9PiB7XG4gIGNvbnN0IGFscmVhZHlBZGRlZFRoaXNUYWcgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGBsaW5rW2hyZWY9XCIke3VybH1cIl1gKTtcbiAgaWYgKGFscmVhZHlBZGRlZFRoaXNUYWcgIT09IG51bGwpIHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gIH1cblxuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICBjb25zdCBoZWFkID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2hlYWQnKVswXTtcbiAgICBjb25zdCBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGluaycpO1xuXG4gICAgY29uc3QgbG9hZGVkID0gKCkgPT4ge1xuICAgICAgcmVzb2x2ZSgpO1xuICAgICAgbGluay5yZW1vdmVFdmVudExpc3RlbmVyKCdsb2FkJywgbG9hZGVkKTtcbiAgICB9O1xuXG4gICAgbGluay5yZWwgPSAnc3R5bGVzaGVldCc7XG4gICAgbGluay5ocmVmID0gdXJsO1xuICAgIGxpbmsuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGxvYWRlZCk7XG4gICAgaGVhZC5hcHBlbmRDaGlsZChsaW5rKTtcbiAgfSk7XG59O1xuXG4vKipcbiAqIEVudW0ganVzdCBmb3IgdW5pZnkgZmlsZXN0YWNrIG1vZHVsZSBuYW1lc1xuICovXG5leHBvcnQgZW51bSBGSUxFU1RBQ0tfTU9EVUxFUyB7XG4gIEZJTEVTVEFDS19TREsgPSAnZmlsZXN0YWNrLXNkaycsXG4gIFRSQU5TRk9STVNfVUkgPSAndHJhbnNmb3Jtcy11aScsXG4gIFBJQ0tFUiA9ICdwaWNrZXInLFxufTtcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9saWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxJQUFNLGFBQWEsR0FBRyxZQUFZLENBQUM7QUFDbkMsSUFBTSxZQUFZLEdBQVEsRUFBRSxDQUFDO0FBZTdCLElBQU0seUJBQXlCLEdBQUc7SUFDaEMsSUFBSSxNQUFVLENBQUM7SUFFZiwyREFBMkQ7SUFDM0QsSUFBSSxNQUFNLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxFQUFFO1FBQ3hDLE1BQU0sR0FBRyxZQUFZLENBQUM7S0FDdkI7U0FBTTtRQUNMLE1BQU0sR0FBRyxNQUFNLENBQUE7S0FDaEI7SUFFRCxhQUFhO0lBQ2IsSUFBSSxTQUFTLEdBQWMsTUFBTSxDQUFDLGtCQUFrQixDQUFDO0lBRXJELElBQUksQ0FBQyxTQUFTLEVBQUU7UUFDZCxTQUFTLEdBQUc7WUFDVixPQUFPLEVBQUUsRUFBRTtTQUNaLENBQUM7UUFFRixhQUFhO1FBQ2IsTUFBTSxDQUFDLGtCQUFrQixHQUFHLFNBQVMsQ0FBQztLQUN2QztJQUVELElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFO1FBQ3RCLFNBQVMsQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO0tBQ3hCO0lBRUQsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyxDQUFDO0FBRUYsSUFBTSxrQkFBa0IsR0FBRyx5QkFBeUIsRUFBRSxDQUFDO0FBQ3ZELElBQU0sT0FBTyxHQUFHLGtCQUFrQixJQUFJLGtCQUFrQixDQUFDLE9BQU8sQ0FBQztBQUVqRTs7Ozs7O0dBTUc7QUFDSCxJQUFNLGNBQWMsR0FBRyxVQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSTtJQUN0QyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7UUFDcEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxvQkFBb0IsRUFBRSxJQUFJLENBQUMsQ0FBQztLQUM5QztTQUFNO1FBQ0wsSUFBSSxDQUFDLG1CQUFtQixD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SVg7QUFKRCxXQUFZLGlCQUFpQjtJQUMzQixvREFBK0IsQ0FBQTtJQUMvQixvREFBK0IsQ0FBQTtJQUMvQixzQ0FBaUIsQ0FBQTtBQUNuQixDQUFDLEVBSlcsaUJBQWlCLEdBQWpCLHlCQUFpQixLQUFqQix5QkFBaUIsUUFJNUI7QUFBQSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgTU9EVUxFX1BSRUZJWCA9ICdmcy1sb2FkZXItJztcbmNvbnN0IGdsb2JhbEhvbGRlcjogYW55ID0ge307XG5cbmV4cG9ydCB0eXBlIE1vZHVsZURlZiA9IHtcbiAgcHJvbWlzZT86IFByb21pc2U8YW55PlxuICByZXNvbHZlUHJvbWlzZT86IGFueTtcbiAgaW5zdGFuY2U/OiBhbnk7XG4gIG1ldGFkYXRhPzogYW55O1xufVxuXG5leHBvcnQgdHlwZSBOYW1lc3BhY2UgPSB7XG4gICAgbW9kdWxlczoge1xuICAgICBba2V5OiBzdHJpbmddOiBNb2R1bGVEZWZcbiAgICB9XG59O1xuXG5jb25zdCBpbml0aWFsaXplR2xvYmFsTmFtZXNwYWNlID0gKCkgPT4ge1xuICBsZXQgaG9sZGVyOmFueTtcblxuICAvLyBpZiB0aGVyZSBpcyBubyB3aW5kb3cgb2JqIHVzZSBub2RlanMgZ2xvYmFsIGxpYiB2YXJpYWJsZVxuICBpZiAod2luZG93ICYmIHR5cGVvZiB3aW5kb3cgIT09ICdvYmplY3QnKSB7XG4gICAgaG9sZGVyID0gZ2xvYmFsSG9sZGVyO1xuICB9IGVsc2Uge1xuICAgIGhvbGRlciA9IHdpbmRvd1xuICB9XG5cbiAgLy8gQHRzLWlnbm9yZVxuICBsZXQgbmFtZXNwYWNlOiBOYW1lc3BhY2UgPSBob2xkZXIuZmlsZXN0YWNrSW50ZXJuYWxzO1xuXG4gIGlmICghbmFtZXNwYWNlKSB7XG4gICAgbmFtZXNwYWNlID0ge1xuICAgICAgbW9kdWxlczoge30sXG4gICAgfTtcblxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICB3aW5kb3cuZmlsZXN0YWNrSW50ZXJuYWxzID0gbmFtZXNwYWNlO1xuICB9XG5cbiAgaWYgKCFuYW1lc3BhY2UubW9kdWxlcykge1xuICAgIG5hbWVzcGFjZS5tb2R1bGVzID0ge307XG4gIH1cbiAgXG4gIHJldHVybiBuYW1lc3BhY2U7XG59O1xuXG5jb25zdCBmaWxlc3RhY2tJbnRlcm5hbHMgPSBpbml0aWFsaXplR2xvYmFsTmFtZXNwYWNlKCk7XG5jb25zdCBtb2R1bGVzID0gZmlsZXN0YWNrSW50ZXJuYWxzICYmIGZpbGVzdGFja0ludGVybmFscy5tb2R1bGVzO1xuXG4vKipcbiAqIFJlbW92ZSBsaXN0ZW5lcnMgKGJyb3dzZXIgY29tcGF0aWJsZSlcbiAqIFxuICogQHBhcmFtIG5vZGUgXG4gKiBAcGFyYW0gZnVuYyBcbiAqIEBwYXJhbSBuYW1lIFxuICovXG5jb25zdCByZW1vdmVMaXN0ZW5lciA9IChub2RlLCBmdW5jLCBuYW1lLCApID0+IHtcbiAgaWYgKG5vZGUuZGV0YWNoRXZlbnQpIHtcbiAgICBub2RlLmRldGFjaEV2ZW50KCdvbnJlYWR5c3RhdGVjaGFuZ2UnLCBmdW5jKTtcbiAgfSBlbHNlIHtcbiAgICBub2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIobmFtZSwgZnVuYywgZmFsc2UpO1xuICB9XG59XG5cbi8qKlxuICogTG9hZCBtdWx0aXBsZSBtb2R1bGVzXG4gKiBcbiAqIEBwYXJhbSB7Kn0gbW9kdWxlcyBcbiAqL1xuZXhwb3J0IGNvbnN0IGxvYWRNb2R1bGVzID0gKG1vZHVsZXNMaXN0KSA9PiBQcm9taXNlLmFsbChtb2R1bGVzTGlzdC5tYXAoKHsgaWQsIHVybCB9KSA9PiBsb2FkTW9kdWxlKGlkLCB1cmwpKSkudGhlbigocmVzKSA9PiB7XG4gIGNvbnN0IHRvUmV0dXJuID0ge307XG5cbiAgcmVzLmZvckVhY2goKG1vZCwgaWR4KSA9PiB7XG4gICAgY29uc3QgZWwgPSBtb2R1bGVzTGlzdFtpZHhdO1xuICAgIHRvUmV0dXJuW2VsLmlkXSA9IG1vZDtcbiAgfSk7XG5cbiAgcmV0dXJuIHRvUmV0dXJuO1xufSk7XG5cbi8qKlxuICogTG9hZCBzaW5nbGUgbW9kdWxlIGZyb20gdXJsIHdpdGggZ2l2ZW4gaWRcbiAqXG4gKiBAcGFyYW0geyp9IGlkIC0gbW9kdWxlIGlkIFxuICogQHBhcmFtIHsqfSB1cmxcbiAqL1xuZXhwb3J0IGNvbnN0IGxvYWRNb2R1bGUgPSAoaWQ6IHN0cmluZywgdXJsOiBzdHJpbmcpID0+IHtcbiAgaWYgKHdpbmRvdyAmJiB0eXBlb2Ygd2luZG93ICE9PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiBQcm9taXNlLnJlamVjdChuZXcgRXJyb3IoJ0xvYWQgbW9kdWxlIGlzIHdvcmtpbmcgb25seSBvbiBicm93c2VyIGVudicpKTtcbiAgfVxuXG4gIGlmICghaWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01vZHVsZSBpZCBpcyByZXF1aXJlZCcpXG4gIH1cblxuICBsZXQgbW9kdWxlRGVmaW5pdGlvbiA9IG1vZHVsZXNbaWRdO1xuXG4gIGlkID0gIE1PRFVMRV9QUkVGSVggKyBpZDtcblxuICBpZiAoIW1vZHVsZURlZmluaXRpb24pIHtcbiAgICBtb2R1bGVzW2lkXSA9IHt9O1xuICAgIG1vZHVsZURlZmluaXRpb24gPSBtb2R1bGVzW2lkXTtcbiAgfVxuXG4gIGlmIChtb2R1bGVEZWZpbml0aW9uLmluc3RhbmNlKSB7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShtb2R1bGVEZWZpbml0aW9uLmluc3RhbmNlKTtcbiAgfVxuXG4gIGlmIChtb2R1bGVEZWZpbml0aW9uLnByb21pc2UpIHtcbiAgICByZXR1cm4gbW9kdWxlRGVmaW5pdGlvbi5wcm9taXNlO1xuICB9XG5cbiAgcmV0dXJuIG1vZHVsZURlZmluaXRpb24ucHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBjb25zdCByZWFkeVN0YXRlQ2hhbmdlID0gKGV2dDogYW55KSA9PiB7XG4gICAgICBpZiAoZXZ0LnR5cGUgPT09ICdsb2FkJyB8fCAoL14oY29tcGxldGV8bG9hZGVkKSQvLnRlc3QoKGV2dC5jdXJyZW50VGFyZ2V0IHx8IGV2dC5zcmNFbGVtZW50KS5yZWFkeVN0YXRlKSkpIHtcbiAgICAgICAgY29uc3Qgbm9kZSA9ICBldnQuY3VycmVudFRhcmdldCB8fCBldnQuc3JjRWxlbWVudDtcblxuICAgICAgICByZW1vdmVMaXN0ZW5lcihub2RlLCByZWFkeVN0YXRlQ2hhbmdlLCAnbG9hZCcpO1xuICAgICAgICByZW1vdmVMaXN0ZW5lcihub2RlLCByZWplY3QsICdlcnJvcicpO1xuXG4gICAgICAgIC8vIHNsb3cgZG93IGNoZWNraW5nIGlmIG1vZHVsZSBpcyBsb2FkZWQgdG8gZW5zdXJlIHRoYXQgc2NyaXB0IHRoYXQgIHJlZ2lzdGVyIG1vZHVsZSBpcyBjYWxsZWRcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiByZXNvbHZlKG1vZHVsZXNbaWRdID8gbW9kdWxlc1tpZF0uaW5zdGFuY2UgOiB1bmRlZmluZWQpLCAxMCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3Qgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XG4gICAgXG4gICAgc2NyaXB0LmlkID0gaWQ7XG5cbiAgICAvLyBAdHMtaWdub3JlIGZpeCBmb3IgSUVcbiAgICBpZiAoc2NyaXB0LmF0dGFjaEV2ZW50ICYmICEoc2NyaXB0LmF0dGFjaEV2ZW50LnRvU3RyaW5nICYmIHNjcmlwdC5hdHRhY2hFdmVudC50b1N0cmluZygpLmluZGV4T2YoJ1tuYXRpdmUgY29kZScpIDwgMCkpIHtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIHNjcmlwdC5hdHRhY2hFdmVudCgnb25yZWFkeXN0YXRlY2hhbmdlJywgcmVhZHlTdGF0ZUNoYW5nZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNjcmlwdC5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgcmVhZHlTdGF0ZUNoYW5nZSwgZmFsc2UpO1xuICAgICAgc2NyaXB0LmFkZEV2ZW50TGlzdGVuZXIoJ29uZXJyb3InLCByZWplY3QsIGZhbHNlKTtcbiAgICB9XG5cbiAgICBzY3JpcHQuc2V0QXR0cmlidXRlKCdjcm9zc29yaWdpbicsICdhbm9ueW1vdXMnKTtcbiAgICBzY3JpcHQuc2V0QXR0cmlidXRlKCdjaGFyc2V0JywgJ3V0Zi04Jyk7XG4gICAgc2NyaXB0LnNldEF0dHJpYnV0ZSgnYXN5bmMnLCAndHJ1ZScpO1xuXG4gICAgc2NyaXB0LnNyYyA9IHVybDtcblxuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2NyaXB0KTtcbiAgfSk7XG59O1xuXG4vKipcbiAqIFJlZ2lzdGVyIHRoYXQgbW9kdWxlIGlzIHJlYWR5XG4gKiBcbiAqIEBwYXJhbSB7c3RyaW5nfSBpZCBcbiAqIEBwYXJhbSB7YW55fSBpbnN0YW5jZSBcbiAqIEBwYXJhbSB7YW55fSBtZXRhZGF0YSAtIGFkZGl0aW9uYWwgbW9kdWxlIG1ldGFkYXRhIGxpa2UgdmVyc2lvblxuICovXG5leHBvcnQgY29uc3QgcmVnaXN0ZXJNb2R1bGUgPSAoaWQ6IHN0cmluZywgaW5zdGFuY2U6IGFueSwgbWV0YWRhdGE/OiBhbnkpID0+IHtcbiAgLy8gbG9hZGVyIG5vdCB3b3JraW5nIG9uIG5vZGVqcyBlbnZzXG4gIGlmICh3aW5kb3cgJiYgdHlwZW9mIHdpbmRvdyAhPT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAoIWlkKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNb2R1bGUgaWQgaXMgcmVxdWlyZWQnKVxuICB9XG5cbiAgaWYgKCFtb2R1bGVzKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdMb2FkZXIgaXMgbm90IGluaXRpYWxpemVkJylcbiAgfVxuXG4gIGlkID0gTU9EVUxFX1BSRUZJWCArIGlkO1xuXG4gIGlmIChtb2R1bGVzW2lkXSkge1xuICAgIG1vZHVsZXNbaWRdID0geyBpbnN0YW5jZSwgbWV0YWRhdGEgfVxuICB9XG59O1xuXG4vKipcbiAqIExvYWQgZXh0ZXJuYWwgY3NzIGZyb20gZ2l2ZW4gdXJsXG4gKiBcbiAqIEBwYXJhbSB7Kn0gdXJsIFxuICovXG5leHBvcnQgY29uc3QgbG9hZENzcyA9ICh1cmwpID0+IHtcbiAgY29uc3QgYWxyZWFkeUFkZGVkVGhpc1RhZyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYGxpbmtbaHJlZj1cIiR7dXJsfVwiXWApO1xuICBpZiAoYWxyZWFkeUFkZGVkVGhpc1RhZyAhPT0gbnVsbCkge1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgfVxuXG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgIGNvbnN0IGhlYWQgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpWzBdO1xuICAgIGNvbnN0IGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaW5rJyk7XG5cbiAgICBjb25zdCBsb2FkZWQgPSAoKSA9PiB7XG4gICAgICByZXNvbHZlKCk7XG4gICAgICBsaW5rLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBsb2FkZWQpO1xuICAgIH07XG5cbiAgICBsaW5rLnJlbCA9ICdzdHlsZXNoZWV0JztcbiAgICBsaW5rLmhyZWYgPSB1cmw7XG4gICAgbGluay5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgbG9hZGVkKTtcbiAgICBoZWFkLmFwcGVuZENoaWxkKGxpbmspO1xuICB9KTtcbn07XG5cbi8qKlxuICogRW51bSBqdXN0IGZvciB1bmlmeSBmaWxlc3RhY2sgbW9kdWxlIG5hbWVzXG4gKi9cbmV4cG9ydCBlbnVtIEZJTEVTVEFDS19NT0RVTEVTIHtcbiAgRklMRVNUQUNLX1NESyA9ICdmaWxlc3RhY2stc2RrJyxcbiAgVFJBTlNGT1JNU19VSSA9ICd0cmFuc2Zvcm1zLXVpJyxcbiAgUElDS0VSID0gJ3BpY2tlcicsXG59O1xuIl19

@@ -1,2 +0,2 @@

!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.FilestackLoader=t():e.FilestackLoader=t()}(window,(function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=0)}([function(e,t,r){"use strict";r.r(t),r.d(t,"loadModules",(function(){return a})),r.d(t,"loadModule",(function(){return u})),r.d(t,"registerModule",(function(){return s})),r.d(t,"loadCss",(function(){return c})),r.d(t,"FILESTACK_MODULES",(function(){return l}));const n={},o=(()=>{let e=window;"object"!=typeof e&&(e=n);let t=e.filestackInternals;return t||(t={modules:{}},window.filestackInternals=t),t.modules||(t.modules={}),t})(),i=o&&o.modules,d=(e,t,r)=>{e.detachEvent?e.detachEvent("onreadystatechange",t):e.removeEventListener(r,t,!1)},a=e=>Promise.all(e.map(({id:e,url:t})=>u(e,t))).then(t=>{const r={};return t.forEach((t,n)=>{const o=e[n];r[o.id]=t}),r}),u=(e,t)=>{if(!e)throw new Error("Module id is required");let r=i[e];return e="fs-loader-"+e,r||(i[e]={},r=i[e]),r.instance?Promise.resolve(r.instance):r.promise?r.promise:r.promise=new Promise((r,n)=>{const o=t=>{if("load"===t.type||/^(complete|loaded)$/.test((t.currentTarget||t.srcElement).readyState)){const a=t.currentTarget||t.srcElement;d(a,o,"load"),d(a,n,"error"),setTimeout(()=>r(i[e]?i[e].instance:void 0),10)}},a=document.createElement("script");a.id=e,!a.attachEvent||a.attachEvent.toString&&a.attachEvent.toString().indexOf("[native code")<0?(a.addEventListener("load",o,!1),a.addEventListener("onerror",n,!1)):a.attachEvent("onreadystatechange",o),a.setAttribute("crossorigin","anonymous"),a.setAttribute("charset","utf-8"),a.setAttribute("async","true"),a.src=t,document.body.appendChild(a)})},s=(e,t,r)=>{if(!e)throw new Error("Module id is required");if(!i)throw new Error("Loader is not initialized");i[e="fs-loader-"+e]&&(i[e]={instance:t,metadata:r})},c=e=>null!==document.querySelector(`link[href="${e}"]`)?Promise.resolve():new Promise(t=>{const r=document.getElementsByTagName("head")[0],n=document.createElement("link"),o=()=>{t(),n.removeEventListener("load",o)};n.rel="stylesheet",n.href=e,n.addEventListener("load",o),r.appendChild(n)});var l;!function(e){e.FILESTACK_SDK="filestack-sdk",e.TRANSFORMS_UI="transforms-ui",e.PICKER="picker"}(l||(l={}))}])}));
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9GaWxlc3RhY2tMb2FkZXIvd2VicGFjay91bml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uIiwid2VicGFjazovL0ZpbGVzdGFja0xvYWRlci93ZWJwYWNrL2Jvb3RzdHJhcCIsIndlYnBhY2s6Ly9GaWxlc3RhY2tMb2FkZXIvLi9kaXN0L21vZHVsZS9pbmRleC5qcyJdLCJuYW1lcyI6WyJyb290IiwiZmFjdG9yeSIsImV4cG9ydHMiLCJtb2R1bGUiLCJkZWZpbmUiLCJhbWQiLCJ3aW5kb3ciLCJpbnN0YWxsZWRNb2R1bGVzIiwiX193ZWJwYWNrX3JlcXVpcmVfXyIsIm1vZHVsZUlkIiwiaSIsImwiLCJtb2R1bGVzIiwiY2FsbCIsIm0iLCJjIiwiZCIsIm5hbWUiLCJnZXR0ZXIiLCJvIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJlbnVtZXJhYmxlIiwiZ2V0IiwiciIsIlN5bWJvbCIsInRvU3RyaW5nVGFnIiwidmFsdWUiLCJ0IiwibW9kZSIsIl9fZXNNb2R1bGUiLCJucyIsImNyZWF0ZSIsImtleSIsImJpbmQiLCJuIiwib2JqZWN0IiwicHJvcGVydHkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsInAiLCJzIiwiZ2xvYmFsSG9sZGVyIiwiZmlsZXN0YWNrSW50ZXJuYWxzIiwiaG9sZGVyIiwibmFtZXNwYWNlIiwiaW5pdGlhbGl6ZUdsb2JhbE5hbWVzcGFjZSIsInJlbW92ZUxpc3RlbmVyIiwibm9kZSIsImZ1bmMiLCJkZXRhY2hFdmVudCIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJsb2FkTW9kdWxlcyIsIm1vZHVsZXNMaXN0IiwiUHJvbWlzZSIsImFsbCIsIm1hcCIsImlkIiwidXJsIiwibG9hZE1vZHVsZSIsInRoZW4iLCJyZXMiLCJ0b1JldHVybiIsImZvckVhY2giLCJtb2QiLCJpZHgiLCJlbCIsIkVycm9yIiwibW9kdWxlRGVmaW5pdGlvbiIsImluc3RhbmNlIiwicmVzb2x2ZSIsInByb21pc2UiLCJyZWplY3QiLCJyZWFkeVN0YXRlQ2hhbmdlIiwiZXZ0IiwidHlwZSIsInRlc3QiLCJjdXJyZW50VGFyZ2V0Iiwic3JjRWxlbWVudCIsInJlYWR5U3RhdGUiLCJzZXRUaW1lb3V0IiwidW5kZWZpbmVkIiwic2NyaXB0IiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50IiwiYXR0YWNoRXZlbnQiLCJ0b1N0cmluZyIsImluZGV4T2YiLCJhZGRFdmVudExpc3RlbmVyIiwic2V0QXR0cmlidXRlIiwic3JjIiwiYm9keSIsImFwcGVuZENoaWxkIiwicmVnaXN0ZXJNb2R1bGUiLCJtZXRhZGF0YSIsImxvYWRDc3MiLCJxdWVyeVNlbGVjdG9yIiwiaGVhZCIsImdldEVsZW1lbnRzQnlUYWdOYW1lIiwibGluayIsImxvYWRlZCIsInJlbCIsImhyZWYiLCJGSUxFU1RBQ0tfTU9EVUxFUyJdLCJtYXBwaW5ncyI6IkNBQUEsU0FBMkNBLEVBQU1DLEdBQzFCLGlCQUFaQyxTQUEwQyxpQkFBWEMsT0FDeENBLE9BQU9ELFFBQVVELElBQ1EsbUJBQVhHLFFBQXlCQSxPQUFPQyxJQUM5Q0QsT0FBTyxHQUFJSCxHQUNlLGlCQUFaQyxRQUNkQSxRQUF5QixnQkFBSUQsSUFFN0JELEVBQXNCLGdCQUFJQyxJQVI1QixDQVNHSyxRQUFRLFdBQ1gsTyxZQ1RFLElBQUlDLEVBQW1CLEdBR3ZCLFNBQVNDLEVBQW9CQyxHQUc1QixHQUFHRixFQUFpQkUsR0FDbkIsT0FBT0YsRUFBaUJFLEdBQVVQLFFBR25DLElBQUlDLEVBQVNJLEVBQWlCRSxHQUFZLENBQ3pDQyxFQUFHRCxFQUNIRSxHQUFHLEVBQ0hULFFBQVMsSUFVVixPQU5BVSxFQUFRSCxHQUFVSSxLQUFLVixFQUFPRCxRQUFTQyxFQUFRQSxFQUFPRCxRQUFTTSxHQUcvREwsRUFBT1EsR0FBSSxFQUdKUixFQUFPRCxRQTBEZixPQXJEQU0sRUFBb0JNLEVBQUlGLEVBR3hCSixFQUFvQk8sRUFBSVIsRUFHeEJDLEVBQW9CUSxFQUFJLFNBQVNkLEVBQVNlLEVBQU1DLEdBQzNDVixFQUFvQlcsRUFBRWpC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QWlDLGNBQUksZ0JBQ3JDQSxFQUFpQyxjQUFJLGdCQUNyQ0EsRUFBMEIsT0FBSSxTQUhsQyxDQUlHQSxJQUFzQkEsRUFBb0IiLCJmaWxlIjoiaW5kZXgudW1kLmpzIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uIHdlYnBhY2tVbml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uKHJvb3QsIGZhY3RvcnkpIHtcblx0aWYodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgPT09ICdvYmplY3QnKVxuXHRcdG1vZHVsZS5leHBvcnRzID0gZmFjdG9yeSgpO1xuXHRlbHNlIGlmKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZClcblx0XHRkZWZpbmUoW10sIGZhY3RvcnkpO1xuXHRlbHNlIGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0Jylcblx0XHRleHBvcnRzW1wiRmlsZXN0YWNrTG9hZGVyXCJdID0gZmFjdG9yeSgpO1xuXHRlbHNlXG5cdFx0cm9vdFtcIkZpbGVzdGFja0xvYWRlclwiXSA9IGZhY3RvcnkoKTtcbn0pKHdpbmRvdywgZnVuY3Rpb24oKSB7XG5yZXR1cm4gIiwiIFx0Ly8gVGhlIG1vZHVsZSBjYWNoZVxuIFx0dmFyIGluc3RhbGxlZE1vZHVsZXMgPSB7fTtcblxuIFx0Ly8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbiBcdGZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblxuIFx0XHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcbiBcdFx0aWYoaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0pIHtcbiBcdFx0XHRyZXR1cm4gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0uZXhwb3J0cztcbiBcdFx0fVxuIFx0XHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuIFx0XHR2YXIgbW9kdWxlID0gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0gPSB7XG4gXHRcdFx0aTogbW9kdWxlSWQsXG4gXHRcdFx0bDogZmFsc2UsXG4gXHRcdFx0ZXhwb3J0czoge31cbiBcdFx0fTtcblxuIFx0XHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cbiBcdFx0bW9kdWxlc1ttb2R1bGVJZF0uY2FsbChtb2R1bGUuZXhwb3J0cywgbW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cbiBcdFx0Ly8gRmxhZyB0aGUgbW9kdWxlIGFzIGxvYWRlZFxuIFx0XHRtb2R1bGUubCA9IHRydWU7XG5cbiBcdFx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcbiBcdFx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xuIFx0fVxuXG5cbiBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlcyBvYmplY3QgKF9fd2VicGFja19tb2R1bGVzX18pXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm0gPSBtb2R1bGVzO1xuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZSBjYWNoZVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5jID0gaW5zdGFsbGVkTW9kdWxlcztcblxuIFx0Ly8gZGVmaW5lIGdldHRlciBmdW5jdGlvbiBmb3IgaGFybW9ueSBleHBvcnRzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSBmdW5jdGlvbihleHBvcnRzLCBuYW1lLCBnZXR0ZXIpIHtcbiBcdFx0aWYoIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBuYW1lKSkge1xuIFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBuYW1lLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZ2V0dGVyIH0pO1xuIFx0XHR9XG4gXHR9O1xuXG4gXHQvLyBkZWZpbmUgX19lc01vZHVsZSBvbiBleHBvcnRzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnIgPSBmdW5jdGlvbihleHBvcnRzKSB7XG4gXHRcdGlmKHR5cGVvZiBTeW1ib2wgIT09ICd1bmRlZmluZWQnICYmIFN5bWJvbC50b1N0cmluZ1RhZykge1xuIFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBTeW1ib2wudG9TdHJpbmdUYWcsIHsgdmFsdWU6ICdNb2R1bGUnIH0pO1xuIFx0XHR9XG4gXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG4gXHR9O1xuXG4gXHQvLyBjcmVhdGUgYSBmYWtlIG5hbWVzcGFjZSBvYmplY3RcbiBcdC8vIG1vZGUgJiAxOiB2YWx1ZSBpcyBhIG1vZHVsZSBpZCwgcmVxdWlyZSBpdFxuIFx0Ly8gbW9kZSAmIDI6IG1lcmdlIGFsbCBwcm9wZXJ0aWVzIG9mIHZhbHVlIGludG8gdGhlIG5zXG4gXHQvLyBtb2RlICYgNDogcmV0dXJuIHZhbHVlIHdoZW4gYWxyZWFkeSBucyBvYmplY3RcbiBcdC8vIG1vZGUgJiA4fDE6IGJlaGF2ZSBsaWtlIHJlcXVpcmVcbiBcdF9fd2VicGFja19yZXF1aXJlX18udCA9IGZ1bmN0aW9uKHZhbHVlLCBtb2RlKSB7XG4gXHRcdGlmKG1vZGUgJiAxKSB2YWx1ZSA9IF9fd2VicGFja19yZXF1aXJlX18odmFsdWUpO1xuIFx0XHRpZihtb2RlICYgOCkgcmV0dXJuIHZhbHVlO1xuIFx0XHRpZigobW9kZSAmIDQpICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgJiYgdmFsdWUuX19lc01vZHVsZSkgcmV0dXJuIHZhbHVlO1xuIFx0XHR2YXIgbnMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLnIobnMpO1xuIFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkobnMsICdkZWZhdWx0JywgeyBlbnVtZXJhYmxlOiB0cnVlLCB2YWx1ZTogdmFsdWUgfSk7XG4gXHRcdGlmKG1vZGUgJiAyICYmIHR5cGVvZiB2YWx1ZSAhPSAnc3RyaW5nJykgZm9yKHZhciBrZXkgaW4gdmFsdWUpIF9fd2VicGFja19yZXF1aXJlX18uZChucywga2V5LCBmdW5jdGlvbihrZXkpIHsgcmV0dXJuIHZhbHVlW2tleV07IH0uYmluZChudWxsLCBrZXkpKTtcbiBcdFx0cmV0dXJuIG5zO1xuIFx0fTtcblxuIFx0Ly8gZ2V0RGVmYXVsdEV4cG9ydCBmdW5jdGlvbiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG5vbi1oYXJtb255IG1vZHVsZXNcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubiA9IGZ1bmN0aW9uKG1vZHVsZSkge1xuIFx0XHR2YXIgZ2V0dGVyID0gbW9kdWxlICYmIG1vZHVsZS5fX2VzTW9kdWxlID9cbiBcdFx0XHRmdW5jdGlvbiBnZXREZWZhdWx0KCkgeyByZXR1cm4gbW9kdWxlWydkZWZhdWx0J107IH0gOlxuIFx0XHRcdGZ1bmN0aW9uIGdldE1vZHVsZUV4cG9ydHMoKSB7IHJldHVybiBtb2R1bGU7IH07XG4gXHRcdF9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsICdhJywgZ2V0dGVyKTtcbiBcdFx0cmV0dXJuIGdldHRlcjtcbiBcdH07XG5cbiBcdC8vIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbFxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5vID0gZnVuY3Rpb24ob2JqZWN0LCBwcm9wZXJ0eSkgeyByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwgcHJvcGVydHkpOyB9O1xuXG4gXHQvLyBfX3dlYnBhY2tfcHVibGljX3BhdGhfX1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5wID0gXCJcIjtcblxuXG4gXHQvLyBMb2FkIGVudHJ5IG1vZHVsZSBhbmQgcmV0dXJuIGV4cG9ydHNcbiBcdHJldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fKF9fd2VicGFja19yZXF1aXJlX18ucyA9IDApO1xuIiwiY29uc3QgTU9EVUxFX1BSRUZJWCA9ICdmcy1sb2FkZXItJztcbmNvbnN0IGdsb2JhbEhvbGRlciA9IHt9O1xuY29uc3QgaW5pdGlhbGl6ZUdsb2JhbE5hbWVzcGFjZSA9ICgpID0+IHtcbiAgICBsZXQgaG9sZGVyID0gd2luZG93O1xuICAgIC8vIGlmIHRoZXJlIGlzIG5vIHdpbmRvdyBvYmogdXNlIG5vZGVqcyBnbG9iYWwgbGliIHZhcmlhYmxlXG4gICAgaWYgKHR5cGVvZiBob2xkZXIgIT09ICdvYmplY3QnKSB7XG4gICAgICAgIGhvbGRlciA9IGdsb2JhbEhvbGRlcjtcbiAgICB9XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGxldCBuYW1lc3BhY2UgPSBob2xkZXIuZmlsZXN0YWNrSW50ZXJuYWxzO1xuICAgIGlmICghbmFtZXNwYWNlKSB7XG4gICAgICAgIG5hbWVzcGFjZSA9IHtcbiAgICAgICAgICAgIG1vZHVsZXM6IHt9LFxuICAgICAgICB9O1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIHdpbmRvdy5maWxlc3RhY2tJbnRlcm5hbHMgPSBuYW1lc3BhY2U7XG4gICAgfVxuICAgIGlmICghbmFtZXNwYWNlLm1vZHVsZXMpIHtcbiAgICAgICAgbmFtZXNwYWNlLm1vZHVsZXMgPSB7fTtcbiAgICB9XG4gICAgcmV0dXJuIG5hbWVzcGFjZTtcbn07XG5jb25zdCBmaWxlc3RhY2tJbnRlcm5hbHMgPSBpbml0aWFsaXplR2xvYmFsTmFtZXNwYWNlKCk7XG5jb25zdCBtb2R1bGVzID0gZmlsZXN0YWNrSW50ZXJuYWxzICYmIGZpbGVzdGFja0ludGVybmFscy5tb2R1bGVzO1xuLyoqXG4gKiBSZW1vdmUgbGlzdGVuZXJzIChicm93c2VyIGNvbXBhdGlibGUpXG4gKlxuICogQHBhcmFtIG5vZGVcbiAqIEBwYXJhbSBmdW5jXG4gKiBAcGFyYW0gbmFtZVxuICovXG5jb25zdCByZW1vdmVMaXN0ZW5lciA9IChub2RlLCBmdW5jLCBuYW1lKSA9PiB7XG4gICAgaWYgKG5vZGUuZGV0YWNoRXZlbnQpIHtcbiAgICAgICAgbm9kZS5kZXRhY2hFdmVudCgnb25yZWFkeXN0YXRlY2hhbmdlJywgZnVuYyk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBub2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIobmFtZSwgZnVuYywgZmFsc2UpO1xuICAgIH1cbn07XG4vKipcbiAqIExvYWQgbXVsdGlwbGUgbW9kdWxlc1xuICpcbiAqIEBwYXJhbSB7Kn0gbW9kdWxlc1xuICovXG5leHBvcnQgY29uc3QgbG9hZE1vZHVsZXMgPSAobW9kdWxlc0xpc3QpID0+IFByb21pc2UuYWxsKG1vZHVsZXNMaXN0Lm1hcCgoeyBpZCwgdXJsIH0pID0+IGxvYWRNb2R1bGUoaWQsIHVybCkpKS50aGVuKChyZXMpID0+IHtcbiAgICBjb25zdCB0b1JldHVybiA9IHt9O1xuICAgIHJlcy5mb3JFYWNoKChtb2QsIGlkeCkgPT4ge1xuICAgICAgICBjb25zdCBlbCA9IG1vZHVsZXNMaXN0W2lkeF07XG4gICAgICAgIHRvUmV0dXJuW2VsLmlkXSA9IG1vZDtcbiAgICB9KTtcbiAgICByZXR1cm4gdG9SZXR1cm47XG59KTtcbi8qKlxuICogTG9hZCBzaW5nbGUgbW9kdWxlIGZyb20gdXJsIHdpdGggZ2l2ZW4gaWRcbiAqXG4gKiBAcGFyYW0geyp9IGlkIC0gbW9kdWxlIGlkXG4gKiBAcGFyYW0geyp9IHVybFxuICovXG5leHBvcnQgY29uc3QgbG9hZE1vZHVsZSA9IChpZCwgdXJsKSA9PiB7XG4gICAgaWYgKCFpZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ01vZHVsZSBpZCBpcyByZXF1aXJlZCcpO1xuICAgIH1cbiAgICBsZXQgbW9kdWxlRGVmaW5pdGlvbiA9IG1vZHVsZXNbaWRdO1xuICAgIGlkID0gTU9EVUxFX1BSRUZJWCArIGlkO1xuICAgIGlmICghbW9kdWxlRGVmaW5pdGlvbikge1xuICAgICAgICBtb2R1bGVzW2lkXSA9IHt9O1xuICAgICAgICBtb2R1bGVEZWZpbml0aW9uID0gbW9kdWxlc1tpZF07XG4gICAgfVxuICAgIGlmIChtb2R1bGVEZWZpbml0aW9uLmluc3RhbmNlKSB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUobW9kdWxlRGVmaW5pdGlvbi5pbnN0YW5jZSk7XG4gICAgfVxuICAgIGlmIChtb2R1bGVEZWZpbml0aW9uLnByb21pc2UpIHtcbiAgICAgICAgcmV0dXJuIG1vZHVsZURlZmluaXRpb24ucHJvbWlzZTtcbiAgICB9XG4gICAgcmV0dXJuIG1vZHVsZURlZmluaXRpb24ucHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgY29uc3QgcmVhZHlTdGF0ZUNoYW5nZSA9IChldnQpID0+IHtcbiAgICAgICAgICAgIGlmIChldnQudHlwZSA9PT0gJ2xvYWQnIHx8ICgvXihjb21wbGV0ZXxsb2FkZWQpJC8udGVzdCgoZXZ0LmN1cnJlbnRUYXJnZXQgfHwgZXZ0LnNyY0VsZW1lbnQpLnJlYWR5U3RhdGUpKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5vZGUgPSBldnQuY3VycmVudFRhcmdldCB8fCBldnQuc3JjRWxlbWVudDtcbiAgICAgICAgICAgICAgICByZW1vdmVMaXN0ZW5lcihub2RlLCByZWFkeVN0YXRlQ2hhbmdlLCAnbG9hZCcpO1xuICAgICAgICAgICAgICAgIHJlbW92ZUxpc3RlbmVyKG5vZGUsIHJlamVjdCwgJ2Vycm9yJyk7XG4gICAgICAgICAgICAgICAgLy8gc2xvdyBkb3cgY2hlY2tpbmcgaWYgbW9kdWxlIGlzIGxvYWRlZCB0byBlbnN1cmUgdGhhdCBzY3JpcHQgdGhhdCAgcmVnaXN0ZXIgbW9kdWxlIGlzIGNhbGxlZFxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gcmVzb2x2ZShtb2R1bGVzW2lkXSA/IG1vZHVsZXNbaWRdLmluc3RhbmNlIDogdW5kZWZpbmVkKSwgMTApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcbiAgICAgICAgc2NyaXB0LmlkID0gaWQ7XG4gICAgICAgIC8vIEB0cy1pZ25vcmUgZml4IGZvciBJRVxuICAgICAgICBpZiAoc2NyaXB0LmF0dGFjaEV2ZW50ICYmICEoc2NyaXB0LmF0dGFjaEV2ZW50LnRvU3RyaW5nICYmIHNjcmlwdC5hdHRhY2hFdmVudC50b1N0cmluZygpLmluZGV4T2YoJ1tuYXRpdmUgY29kZScpIDwgMCkpIHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHNjcmlwdC5hdHRhY2hFdmVudCgnb25yZWFkeXN0YXRlY2hhbmdlJywgcmVhZHlTdGF0ZUNoYW5nZSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBzY3JpcHQuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIHJlYWR5U3RhdGVDaGFuZ2UsIGZhbHNlKTtcbiAgICAgICAgICAgIHNjcmlwdC5hZGRFdmVudExpc3RlbmVyKCdvbmVycm9yJywgcmVqZWN0LCBmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgICAgc2NyaXB0LnNldEF0dHJpYnV0ZSgnY3Jvc3NvcmlnaW4nLCAnYW5vbnltb3VzJyk7XG4gICAgICAgIHNjcmlwdC5zZXRBdHRyaWJ1dGUoJ2NoYXJzZXQnLCAndXRmLTgnKTtcbiAgICAgICAgc2NyaXB0LnNldEF0dHJpYnV0ZSgnYXN5bmMnLCAndHJ1ZScpO1xuICAgICAgICBzY3JpcHQuc3JjID0gdXJsO1xuICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHNjcmlwdCk7XG4gICAgfSk7XG59O1xuLyoqXG4gKiBSZWdpc3RlciB0aGF0IG1vZHVsZSBpcyByZWFkeVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBpZFxuICogQHBhcmFtIHthbnl9IGluc3RhbmNlXG4gKiBAcGFyYW0ge2FueX0gbWV0YWRhdGEgLSBhZGRpdGlvbmFsIG1vZHVsZSBtZXRhZGF0YSBsaWtlIHZlcnNpb25cbiAqL1xuZXhwb3J0IGNvbnN0IHJlZ2lzdGVyTW9kdWxlID0gKGlkLCBpbnN0YW5jZSwgbWV0YWRhdGEpID0+IHtcbiAgICBpZiAoIWlkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTW9kdWxlIGlkIGlzIHJlcXVpcmVkJyk7XG4gICAgfVxuICAgIGlmICghbW9kdWxlcykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0xvYWRlciBpcyBub3QgaW5pdGlhbGl6ZWQnKTtcbiAgICB9XG4gICAgaWQgPSBNT0RVTEVfUFJFRklYICsgaWQ7XG4gICAgaWYgKG1vZHVsZXNbaWRdKSB7XG4gICAgICAgIG1vZHVsZXNbaWRdID0geyBpbnN0YW5jZSwgbWV0YWRhdGEgfTtcbiAgICB9XG59O1xuLyoqXG4gKiBMb2FkIGV4dGVybmFsIGNzcyBmcm9tIGdpdmVuIHVybFxuICpcbiAqIEBwYXJhbSB7Kn0gdXJsXG4gKi9cbmV4cG9ydCBjb25zdCBsb2FkQ3NzID0gKHVybCkgPT4ge1xuICAgIGNvbnN0IGFscmVhZHlBZGRlZFRoaXNUYWcgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGBsaW5rW2hyZWY9XCIke3VybH1cIl1gKTtcbiAgICBpZiAoYWxyZWFkeUFkZGVkVGhpc1RhZyAhPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgICBjb25zdCBoZWFkID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2hlYWQnKVswXTtcbiAgICAgICAgY29uc3QgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKTtcbiAgICAgICAgY29uc3QgbG9hZGVkID0gKCkgPT4ge1xuICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgICAgbGluay5yZW1vdmVFdmVudExpc3RlbmVyKCdsb2FkJywgbG9hZGVkKTtcbiAgICAgICAgfTtcbiAgICAgICAgbGluay5yZWwgPSAnc3R5bGVzaGVldCc7XG4gICAgICAgIGxpbmsuaHJlZiA9IHVybDtcbiAgICAgICAgbGluay5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgbG9hZGVkKTtcbiAgICAgICAgaGVhZC5hcHBlbmRDaGlsZChsaW5rKTtcbiAgICB9KTtcbn07XG4vKipcbiAqIEVudW0ganVzdCBmb3IgdW5pZnkgZmlsZXN0YWNrIG1vZHVsZSBuYW1lc1xuICovXG5leHBvcnQgdmFyIEZJTEVTVEFDS19NT0RVTEVTO1xuKGZ1bmN0aW9uIChGSUxFU1RBQ0tfTU9EVUxFUykge1xuICAgIEZJTEVTVEFDS19NT0RVTEVTW1wiRklMRVNUQUNLX1NES1wiXSA9IFwiZmlsZXN0YWNrLXNka1wiO1xuICAgIEZJTEVTVEFDS19NT0RVTEVTW1wiVFJBTlNGT1JNU19VSVwiXSA9IFwidHJhbnNmb3Jtcy11aVwiO1xuICAgIEZJTEVTVEFDS19NT0RVTEVTW1wiUElDS0VSXCJdID0gXCJwaWNrZXJcIjtcbn0pKEZJTEVTVEFDS19NT0RVTEVTIHx8IChGSUxFU1RBQ0tfTU9EVUxFUyA9IHt9KSk7XG47XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lhVzVrWlhndWFuTWlMQ0p6YjNWeVkyVlNiMjkwSWpvaUlpd2ljMjkxY21ObGN5STZXeUl1TGk4dUxpOXNhV0l2YVc1a1pYZ3VkSE1pWFN3aWJtRnRaWE1pT2x0ZExDSnRZWEJ3YVc1bmN5STZJa0ZCUVVFc1RVRkJUU3hoUVVGaExFZEJRVWNzV1VGQldTeERRVUZETzBGQlEyNURMRTFCUVUwc1dVRkJXU3hIUVVGUkxFVkJRVVVzUTBGQlF6dEJRV1UzUWl4TlFVRk5MSGxDUVVGNVFpeEhRVUZITEVkQlFVY3NSVUZCUlR0SlFVTnlReXhKUVVGSkxFMUJRVTBzUjBGQlJ5eE5RVUZOTEVOQlFVTTdTVUZGY0VJc01rUkJRVEpFTzBsQlF6TkVMRWxCUVVrc1QwRkJUeXhOUVVGTkxFdEJRVXNzVVVGQlVTeEZRVUZGTzFGQlF6bENMRTFCUVUwc1IwRkJSeXhaUVVGWkxFTkJRVU03UzBGRGRrSTdTVUZGUkN4aFFVRmhPMGxCUTJJc1NVRkJTU3hUUVVGVExFZEJRV01zVFVGQlRTeERRVUZETEd0Q1FVRnJRaXhEUVVGRE8wbEJSWEpFTEVsQlFVa3NRMEZCUXl4VFFVRlRMRVZCUVVVN1VVRkRaQ3hUUVVGVExFZEJRVWM3V1VGRFZpeFBRVUZQTEVWQlFVVXNSVUZCUlR0VFFVTmFMRU5CUVVNN1VVRkZSaXhoUVVGaE8xRkJRMklzVFVGQlRTeERRVUZETEd0Q1FVRnJRaXhIUVVGSExGTkJRVk1zUTBGQlF6dExRVU4yUXp0SlFVVkVMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zVDBGQlR5eEZRVUZGTzFGQlEzUkNMRk5CUVZNc1EwRkJReXhQUVVGUExFZEJRVWNzUlVGQlJTeERRVUZETzB0QlEzaENPMGxCUlVRc1QwRkJUeXhUUVVGVExFTkJRVU03UVVGRGJrSXNRMEZCUXl4RFFVRkRPMEZCUlVZc1RVRkJUU3hyUWtGQmEwSXNSMEZCUnl4NVFrRkJlVUlzUlVGQlJTeERRVUZETzBGQlEzWkVMRTFCUVUwc1QwRkJUeXhIUVVGSExHdENRVUZyUWl4SlFVRkpMR3RDUVVGclFpeERRVUZETEU5QlFVOHNRMEZCUXp0QlFVVnFSVHM3T3pzN08wZEJUVWM3UVVGRFNDeE5RVUZOTEdOQlFXTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1JVRkJSU3hKUVVGSkxFVkJRVVVzU1VGQlNTeEZRVUZKTEVWQlFVVTdTVUZETlVNc1NVRkJTU3hKUVVGSkxFTkJRVU1zVjBGQlZ5eEZRVUZGTzFGQlEzQkNMRWxCUVVrc1EwRkJReXhYUVVGWExFTkJRVU1zYjBKQlFXOUNMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRVU03UzBGRE9VTTdVMEZCVFR0UlFVTk1MRWxCUVVrc1EwRkJReXh0UWtGQmJVSXNRMEZCUXl4SlFVRkpMRVZCUVVVc1NVRkJTU3hGUVVGRkxFdEJRVXNzUTBGQlF5eERRVUZETzB0QlF6ZERPMEZCUTBnc1EwRkJReXhEUVVGQk8wRkJSVVE3T3pzN1IwRkpSenRCUVVOSUxFMUJRVTBzUTBGQlF5eE5RVUZOTEZkQlFWY3NSMEZCUnl4RFFVRkRMRmRCUVZjc1JVRkJSU3hGUVVGRkxFTkJRVU1zVDBGQlR5eERRVUZETEVkQlFVY3NRMEZCUXl4WFFVRlhMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUlVGQlJTeEZRVUZGTEVWQlFVVXNSMEZCUnl4RlFVRkZMRVZCUVVVc1JVRkJSU3hEUVVGRExGVkJRVlVzUTBGQlF5eEZRVUZGTEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVkQlFVY3NSVUZCUlN4RlFVRkZPMGxCUXpGSUxFMUJRVTBzVVVGQlVTeEhRVUZITEVWQlFVVXNRMEZCUXp0SlFVVndRaXhIUVVGSExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNSMEZCUnl4RlFVRkZMRWRCUVVjc1JVRkJSU3hGUVVGRk8xRkJRM1pDTEUxQlFVMHNSVUZCUlN4SFFVRkhMRmRCUVZjc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dFJRVU0xUWl4UlFVRlJMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEVkQlFVY3NRMEZCUXp0SlFVTjRRaXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVVZJTEU5QlFVOHNVVUZCVVN4RFFVRkRPMEZCUTJ4Q0xFTkJRVU1zUTBGQlF5eERRVUZETzBGQlJVZzdPenM3TzBkQlMwYzdRVUZEU0N4TlFVRk5MRU5CUVVNc1RVRkJUU3hWUVVGVkxFZEJRVWNzUTBGQlF5eEZRVUZWTEVWQlFVVXNSMEZCVnl4RlFVRkZMRVZCUVVVN1NVRkRjRVFzU1VGQlNTeERRVUZETEVWQlFVVXNSVUZCUlR0UlFVTlFMRTFCUVUwc1NVRkJTU3hMUVVGTExFTkJRVU1zZFVKQlFYVkNMRU5CUVVNc1EwRkJRVHRMUVVONlF6dEpRVVZFTEVsQlFVa3NaMEpCUVdkQ0xFZEJRVWNzVDBGQlR5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRPMGxCUlc1RExFVkJRVVVzUjBGQlNTeGhRVUZoTEVkQlFVY3NSVUZCUlN4RFFVRkRPMGxCUlhwQ0xFbEJRVWtzUTBGQlF5eG5Ra0ZCWjBJc1JVRkJSVHRSUVVOeVFpeFBRVUZQTEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1JVRkJSU3hEUVVGRE8xRkJRMnBDTEdkQ1FVRm5RaXhIUVVGSExFOUJRVThzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXp0TFFVTm9RenRKUVVWRUxFbEJRVWtzWjBKQlFXZENMRU5CUVVNc1VVRkJVU3hGUVVGRk8xRkJRemRDTEU5QlFVOHNUMEZCVHl4RFFVRkRMRTlCUVU4c1EwRkJReXhuUWtGQlowSXNRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJRenRMUVVOdVJEdEpRVVZFTEVsQlFVa3NaMEpCUVdkQ0xFTkJRVU1zVDBGQlR5eEZRVUZGTzFGQlF6VkNMRTlCUVU4c1owSkJRV2RDTEVOQlFVTXNUMEZCVHl4RFFVRkRPMHRCUTJwRE8wbEJSVVFzVDBGQlR5eG5Ra0ZCWjBJc1EwRkJReXhQUVVGUExFZEJRVWNzU1VGQlNTeFBRVUZQTEVOQlFVTXNRMEZCUXl4UFFVRlBMRVZCUVVVc1RVRkJUU3hGUVVGRkxFVkJRVVU3VVVGRGFFVXNUVUZCVFN4blFrRkJaMElzUjBGQlJ5eERRVUZETEVkQlFWRXNSVUZCUlN4RlFVRkZPMWxCUTNCRExFbEJRVWtzUjBGQlJ5eERRVUZETEVsQlFVa3NTMEZCU3l4TlFVRk5MRWxCUVVrc1EwRkJReXh4UWtGQmNVSXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zWVVGQllTeEpRVUZKTEVkQlFVY3NRMEZCUXl4VlFVRlZMRU5CUVVNc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF5eEZRVUZGTzJkQ1FVTjZSeXhOUVVGTkxFbEJRVWtzUjBGQlNTeEhRVUZITEVOQlFVTXNZVUZCWVN4SlFVRkpMRWRCUVVjc1EwRkJReXhWUVVGVkxFTkJRVU03WjBKQlJXeEVMR05CUVdNc1EwRkJReXhKUVVGSkxFVkJRVVVzWjBKQlFXZENMRVZCUVVVc1RVRkJUU3hEUVVGRExFTkJRVU03WjBKQlF5OURMR05CUVdNc1EwRkJReXhKUVVGSkxFVkJRVVVzVFVGQlRTeEZRVUZGTEU5QlFVOHNRMEZCUXl4RFFVRkRPMmRDUVVWMFF5dzRSa0ZCT0VZN1owSkJRemxHTEZWQlFWVXNRMEZCUXl4SFFVRkhMRVZCUVVVc1EwRkJReXhQUVVGUExFTkJRVU1zVDBGQlR5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhQUVVGUExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNc1EwRkJReXhUUVVGVExFTkJRVU1zUlVGQlJTeEZRVUZGTEVOQlFVTXNRMEZCUXp0aFFVTXZSVHRSUVVOSUxFTkJRVU1zUTBGQlFUdFJRVVZFTEUxQlFVMHNUVUZCVFN4SFFVRkhMRkZCUVZFc1EwRkJReXhoUVVGaExFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTTdVVUZGYUVRc1RVRkJUU3hEUVVGRExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVOQlFVTTdVVUZGWml4M1FrRkJkMEk3VVVGRGVFSXNTVUZCU1N4TlFVRk5MRU5CUVVNc1YwRkJWeXhKUVVGSkxFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTXNWMEZCVnl4RFFVRkRMRkZCUVZFc1NVRkJTU3hOUVVGTkxFTkJRVU1zVjBGQlZ5eERRVUZETEZGQlFWRXNSVUZCUlN4RFFVRkRMRTlCUVU4c1EwRkJReXhqUVVGakxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNSVUZCUlR0WlFVTnlTQ3hoUVVGaE8xbEJRMklzVFVGQlRTeERRVUZETEZkQlFWY3NRMEZCUXl4dlFrRkJiMElzUlVGQlJTeG5Ra0ZCWjBJc1EwRkJReXhEUVVGRE8xTkJRelZFTzJGQlFVMDdXVUZEVEN4TlFVRk5MRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNUVUZCVFN4RlFVRkZMR2RDUVVGblFpeEZRVUZGTEV0QlFVc3NRMEZCUXl4RFFVRkRPMWxCUTNwRUxFMUJRVTBzUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXhUUVVGVExFVkJRVVVzVFVGQlRTeEZRVUZGTEV0QlFVc3NRMEZCUXl4RFFVRkRPMU5CUTI1RU8xRkJSVVFzVFVGQlRTeERRVUZETEZsQlFWa3NRMEZCUXl4aFFVRmhMRVZCUVVVc1YwRkJWeXhEUVVGRExFTkJRVU03VVVGRGFFUXNUVUZCVFN4RFFVRkRMRmxCUVZrc1EwRkJReXhUUVVGVExFVkJRVVVzVDBGQlR5eERRVUZETEVOQlFVTTdVVUZEZUVNc1RVRkJUU3hEUVVGRExGbEJRVmtzUTBGQlF5eFBRVUZQTEVWQlFVVXNUVUZCVFN4RFFVRkRMRU5CUVVNN1VVRkZja01zVFVGQlRTeERRVUZETEVkQlFVY3NSMEZCUnl4SFFVRkhMRU5CUVVNN1VVRkZha0lzVVVGQlVTeERRVUZETEVsQlFVa3NRMEZCUXl4WFFVRlhMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03U1VGRGNFTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRUQ3hEUVVGRExFTkJRVU03UVVGRlJqczdPenM3TzBkQlRVYzdRVUZEU0N4TlFVRk5MRU5CUVVNc1RVRkJUU3hqUVVGakxFZEJRVWNzUTBGQlF5eEZRVUZWTEVWQlFVVXNVVUZCWVN4RlFVRkZMRkZCUVdNc1JVRkJSU3hGUVVGRk8wbEJRekZGTEVsQlFVa3NRMEZCUXl4RlFVRkZMRVZCUVVVN1VVRkRVQ3hOUVVGTkxFbEJRVWtzUzBGQlN5eERRVUZETEhWQ1FVRjFRaXhEUVVGRExFTkJRVUU3UzBGRGVrTTdTVUZGUkN4SlFVRkpMRU5CUVVNc1QwRkJUeXhGUVVGRk8xRkJRMW9zVFVGQlRTeEpRVUZKTEV0QlFVc3NRMEZCUXl3eVFrRkJNa0lzUTBGQlF5eERRVUZCTzB0QlF6ZERPMGxCUlVRc1JVRkJSU3hIUVVGSExHRkJRV0VzUjBGQlJ5eEZRVUZGTEVOQlFVTTdTVUZGZUVJc1NVRkJTU3hQUVVGUExFTkJRVU1zUlVGQlJTeERRVUZETEVWQlFVVTdVVUZEWml4UFFVRlBMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzUlVGQlJTeFJRVUZSTEVWQlFVVXNVVUZCVVN4RlFVRkZMRU5CUVVFN1MwRkRja003UVVGRFNDeERRVUZETEVOQlFVTTdRVUZGUmpzN096dEhRVWxITzBGQlEwZ3NUVUZCVFN4RFFVRkRMRTFCUVUwc1QwRkJUeXhIUVVGSExFTkJRVU1zUjBGQlJ5eEZRVUZGTEVWQlFVVTdTVUZETjBJc1RVRkJUU3h0UWtGQmJVSXNSMEZCUnl4UlFVRlJMRU5CUVVNc1lVRkJZU3hEUVVGRExHTkJRV01zUjBGQlJ5eEpRVUZKTEVOQlFVTXNRMEZCUXp0SlFVTXhSU3hKUVVGSkxHMUNRVUZ0UWl4TFFVRkxMRWxCUVVrc1JVRkJSVHRSUVVOb1F5eFBRVUZQTEU5QlFVOHNRMEZCUXl4UFFVRlBMRVZCUVVVc1EwRkJRenRMUVVNeFFqdEpRVVZFTEU5QlFVOHNTVUZCU1N4UFFVRlBMRU5CUVVNc1EwRkJReXhQUVVGUExFVkJRVVVzUlVGQlJUdFJRVU0zUWl4TlFVRk5MRWxCUVVrc1IwRkJSeXhSUVVGUkxFTkJRVU1zYjBKQlFXOUNMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdVVUZEZEVRc1RVRkJUU3hKUVVGSkxFZEJRVWNzVVVGQlVTeERRVUZETEdGQlFXRXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJRenRSUVVVMVF5eE5RVUZOTEUxQlFVMHNSMEZCUnl4SFFVRkhMRVZCUVVVN1dVRkRiRUlzVDBGQlR5eEZRVUZGTEVOQlFVTTdXVUZEVml4SlFVRkpMRU5CUVVNc2JVSkJRVzFDTEVOQlFVTXNUVUZCVFN4RlFVRkZMRTFCUVUwc1EwRkJReXhEUVVGRE8xRkJRek5ETEVOQlFVTXNRMEZCUXp0UlFVVkdMRWxCUVVrc1EwRkJReXhIUVVGSExFZEJRVWNzV1VGQldTeERRVUZETzFGQlEzaENMRWxCUVVrc1EwRkJReXhKUVVGSkxFZEJRVWNzUjBGQlJ5eERRVUZETzFGQlEyaENMRWxCUVVrc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4TlFVRk5MRVZCUVVVc1RVRkJUU3hEUVVGRExFTkJRVU03VVVGRGRFTXNTVUZCU1N4RFFVRkRMRmRCUVZjc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dEpRVU42UWl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOTUxFTkJRVU1zUTBGQlF6dEJRVVZHT3p0SFFVVkhPMEZCUTBnc1RVRkJUU3hEUVVGT0xFbEJRVmtzYVVKQlNWZzdRVUZLUkN4WFFVRlpMR2xDUVVGcFFqdEpRVU16UWl4dlJFRkJLMElzUTBGQlFUdEpRVU12UWl4dlJFRkJLMElzUTBGQlFUdEpRVU12UWl4elEwRkJhVUlzUTBGQlFUdEJRVU51UWl4RFFVRkRMRVZCU2xjc2FVSkJRV2xDTEV0QlFXcENMR2xDUVVGcFFpeFJRVWsxUWp0QlFVRkJMRU5CUVVNaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SmpiMjV6ZENCTlQwUlZURVZmVUZKRlJrbFlJRDBnSjJaekxXeHZZV1JsY2kwbk8xeHVZMjl1YzNRZ1oyeHZZbUZzU0c5c1pHVnlPaUJoYm5rZ1BTQjdmVHRjYmx4dVpYaHdiM0owSUhSNWNHVWdUVzlrZFd4bFJHVm1JRDBnZTF4dUlDQndjbTl0YVhObFB6b2dVSEp2YldselpUeGhibmsrWEc0Z0lISmxjMjlzZG1WUWNtOXRhWE5sUHpvZ1lXNTVPMXh1SUNCcGJuTjBZVzVqWlQ4NklHRnVlVHRjYmlBZ2JXVjBZV1JoZEdFL09pQmhibms3WEc1OVhHNWNibVY0Y0c5eWRDQjBlWEJsSUU1aGJXVnpjR0ZqWlNBOUlIdGNiaUFnSUNCdGIyUjFiR1Z6T2lCN1hHNGdJQ0FnSUZ0clpYazZJSE4wY21sdVoxMDZJRTF2WkhWc1pVUmxabHh1SUNBZ0lIMWNibjA3WEc1Y2JtTnZibk4wSUdsdWFYUnBZV3hwZW1WSGJHOWlZV3hPWVcxbGMzQmhZMlVnUFNBb0tTQTlQaUI3WEc0Z0lHeGxkQ0JvYjJ4a1pYSWdQU0IzYVc1a2IzYzdYRzVjYmlBZ0x5OGdhV1lnZEdobGNtVWdhWE1nYm04Z2QybHVaRzkzSUc5aWFpQjFjMlVnYm05a1pXcHpJR2RzYjJKaGJDQnNhV0lnZG1GeWFXRmliR1ZjYmlBZ2FXWWdLSFI1Y0dWdlppQm9iMnhrWlhJZ0lUMDlJQ2R2WW1wbFkzUW5LU0I3WEc0Z0lDQWdhRzlzWkdWeUlEMGdaMnh2WW1Gc1NHOXNaR1Z5TzF4dUlDQjlYRzVjYmlBZ0x5OGdRSFJ6TFdsbmJtOXlaVnh1SUNCc1pYUWdibUZ0WlhOd1lXTmxPaUJPWVcxbGMzQmhZMlVnUFNCb2IyeGtaWEl1Wm1sc1pYTjBZV05yU1c1MFpYSnVZV3h6TzF4dVhHNGdJR2xtSUNnaGJtRnRaWE53WVdObEtTQjdYRzRnSUNBZ2JtRnRaWE53WVdObElEMGdlMXh1SUNBZ0lDQWdiVzlrZFd4bGN6b2dlMzBzWEc0Z0lDQWdmVHRjYmx4dUlDQWdJQzh2SUVCMGN5MXBaMjV2Y21WY2JpQWdJQ0IzYVc1a2IzY3VabWxzWlhOMFlXTnJTVzUwWlhKdVlXeHpJRDBnYm1GdFpYTndZV05sTzF4dUlDQjlYRzVjYmlBZ2FXWWdLQ0Z1WVcxbGMzQmhZMlV1Ylc5a2RXeGxjeWtnZTF4dUlDQWdJRzVoYldWemNHRmpaUzV0YjJSMWJHVnpJRDBnZTMwN1hHNGdJSDFjYmlBZ1hHNGdJSEpsZEhWeWJpQnVZVzFsYzNCaFkyVTdYRzU5TzF4dVhHNWpiMjV6ZENCbWFXeGxjM1JoWTJ0SmJuUmxjbTVoYkhNZ1BTQnBibWwwYVdGc2FYcGxSMnh2WW1Gc1RtRnRaWE53WVdObEtDazdYRzVqYjI1emRDQnRiMlIxYkdWeklEMGdabWxzWlhOMFlXTnJTVzUwWlhKdVlXeHpJQ1ltSUdacGJHVnpkR0ZqYTBsdWRHVnlibUZzY3k1dGIyUjFiR1Z6TzF4dVhHNHZLaXBjYmlBcUlGSmxiVzkyWlNCc2FYTjBaVzVsY25NZ0tHSnliM2R6WlhJZ1kyOXRjR0YwYVdKc1pTbGNiaUFxSUZ4dUlDb2dRSEJoY21GdElHNXZaR1VnWEc0Z0tpQkFjR0Z5WVcwZ1puVnVZeUJjYmlBcUlFQndZWEpoYlNCdVlXMWxJRnh1SUNvdlhHNWpiMjV6ZENCeVpXMXZkbVZNYVhOMFpXNWxjaUE5SUNodWIyUmxMQ0JtZFc1akxDQnVZVzFsTENBcElEMCtJSHRjYmlBZ2FXWWdLRzV2WkdVdVpHVjBZV05vUlhabGJuUXBJSHRjYmlBZ0lDQnViMlJsTG1SbGRHRmphRVYyWlc1MEtDZHZibkpsWVdSNWMzUmhkR1ZqYUdGdVoyVW5MQ0JtZFc1aktUdGNiaUFnZlNCbGJITmxJSHRjYmlBZ0lDQnViMlJsTG5KbGJXOTJaVVYyWlc1MFRHbHpkR1Z1WlhJb2JtRnRaU3dnWm5WdVl5d2dabUZzYzJVcE8xeHVJQ0I5WEc1OVhHNWNiaThxS2x4dUlDb2dURzloWkNCdGRXeDBhWEJzWlNCdGIyUjFiR1Z6WEc0Z0tpQmNiaUFxSUVCd1lYSmhiU0I3S24wZ2JXOWtkV3hsY3lCY2JpQXFMMXh1Wlhod2IzSjBJR052Ym5OMElHeHZZV1JOYjJSMWJHVnpJRDBnS0cxdlpIVnNaWE5NYVhOMEtTQTlQaUJRY205dGFYTmxMbUZzYkNodGIyUjFiR1Z6VEdsemRDNXRZWEFvS0hzZ2FXUXNJSFZ5YkNCOUtTQTlQaUJzYjJGa1RXOWtkV3hsS0dsa0xDQjFjbXdwS1NrdWRHaGxiaWdvY21WektTQTlQaUI3WEc0Z0lHTnZibk4wSUhSdlVtVjBkWEp1SUQwZ2UzMDdYRzVjYmlBZ2NtVnpMbVp2Y2tWaFkyZ29LRzF2WkN3Z2FXUjRLU0E5UGlCN1hHNGdJQ0FnWTI5dWMzUWdaV3dnUFNCdGIyUjFiR1Z6VEdsemRGdHBaSGhkTzF4dUlDQWdJSFJ2VW1WMGRYSnVXMlZzTG1sa1hTQTlJRzF2WkR0Y2JpQWdmU2s3WEc1Y2JpQWdjbVYwZFhKdUlIUnZVbVYwZFhKdU8xeHVmU2s3WEc1Y2JpOHFLbHh1SUNvZ1RHOWhaQ0J6YVc1bmJHVWdiVzlrZFd4bElHWnliMjBnZFhKc0lIZHBkR2dnWjJsMlpXNGdhV1JjYmlBcVhHNGdLaUJBY0dGeVlXMGdleXA5SUdsa0lDMGdiVzlrZFd4bElHbGtJRnh1SUNvZ1FIQmhjbUZ0SUhzcWZTQjFjbXhjYmlBcUwxeHVaWGh3YjNKMElHTnZibk4wSUd4dllXUk5iMlIxYkdVZ1BTQW9hV1E2SUhOMGNtbHVaeXdnZFhKc09pQnpkSEpwYm1jcElEMCtJSHRjYmlBZ2FXWWdLQ0ZwWkNrZ2UxeHVJQ0FnSUhSb2NtOTNJRzVsZHlCRmNuSnZjaWduVFc5a2RXeGxJR2xrSUdseklISmxjWFZwY21Wa0p5bGNiaUFnZlZ4dVhHNGdJR3hsZENCdGIyUjFiR1ZFWldacGJtbDBhVzl1SUQwZ2JXOWtkV3hsYzF0cFpGMDdYRzVjYmlBZ2FXUWdQU0FnVFU5RVZVeEZYMUJTUlVaSldDQXJJR2xrTzF4dVhHNGdJR2xtSUNnaGJXOWtkV3hsUkdWbWFXNXBkR2x2YmlrZ2UxeHVJQ0FnSUcxdlpIVnNaWE5iYVdSZElEMGdlMzA3WEc0Z0lDQWdiVzlrZFd4bFJHVm1hVzVwZEdsdmJpQTlJRzF2WkhWc1pYTmJhV1JkTzF4dUlDQjlYRzVjYmlBZ2FXWWdLRzF2WkhWc1pVUmxabWx1YVhScGIyNHVhVzV6ZEdGdVkyVXBJSHRjYmlBZ0lDQnlaWFIxY200Z1VISnZiV2x6WlM1eVpYTnZiSFpsS0cxdlpIVnNaVVJsWm1sdWFYUnBiMjR1YVc1emRHRnVZMlVwTzF4dUlDQjlYRzVjYmlBZ2FXWWdLRzF2WkhWc1pVUmxabWx1YVhScGIyNHVjSEp2YldselpTa2dlMXh1SUNBZ0lISmxkSFZ5YmlCdGIyUjFiR1ZFWldacGJtbDBhVzl1TG5CeWIyMXBjMlU3WEc0Z0lIMWNibHh1SUNCeVpYUjFjbTRnYlc5a2RXeGxSR1ZtYVc1cGRHbHZiaTV3Y205dGFYTmxJRDBnYm1WM0lGQnliMjFwYzJVb0tISmxjMjlzZG1Vc0lISmxhbVZqZENrZ1BUNGdlMXh1SUNBZ0lHTnZibk4wSUhKbFlXUjVVM1JoZEdWRGFHRnVaMlVnUFNBb1pYWjBPaUJoYm5rcElEMCtJSHRjYmlBZ0lDQWdJR2xtSUNobGRuUXVkSGx3WlNBOVBUMGdKMnh2WVdRbklIeDhJQ2d2WGloamIyMXdiR1YwWlh4c2IyRmtaV1FwSkM4dWRHVnpkQ2dvWlhaMExtTjFjbkpsYm5SVVlYSm5aWFFnZkh3Z1pYWjBMbk55WTBWc1pXMWxiblFwTG5KbFlXUjVVM1JoZEdVcEtTa2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQnViMlJsSUQwZ0lHVjJkQzVqZFhKeVpXNTBWR0Z5WjJWMElIeDhJR1YyZEM1emNtTkZiR1Z0Wlc1ME8xeHVYRzRnSUNBZ0lDQWdJSEpsYlc5MlpVeHBjM1JsYm1WeUtHNXZaR1VzSUhKbFlXUjVVM1JoZEdWRGFHRnVaMlVzSUNkc2IyRmtKeWs3WEc0Z0lDQWdJQ0FnSUhKbGJXOTJaVXhwYzNSbGJtVnlLRzV2WkdVc0lISmxhbVZqZEN3Z0oyVnljbTl5SnlrN1hHNWNiaUFnSUNBZ0lDQWdMeThnYzJ4dmR5QmtiM2NnWTJobFkydHBibWNnYVdZZ2JXOWtkV3hsSUdseklHeHZZV1JsWkNCMGJ5Qmxibk4xY21VZ2RHaGhkQ0J6WTNKcGNIUWdkR2hoZENBZ2NtVm5hWE4wWlhJZ2JXOWtkV3hsSUdseklHTmhiR3hsWkZ4dUlDQWdJQ0FnSUNCelpYUlVhVzFsYjNWMEtDZ3BJRDArSUhKbGMyOXNkbVVvYlc5a2RXeGxjMXRwWkYwZ1B5QnRiMlIxYkdWelcybGtYUzVwYm5OMFlXNWpaU0E2SUhWdVpHVm1hVzVsWkNrc0lERXdLVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlYRzVjYmlBZ0lDQmpiMjV6ZENCelkzSnBjSFFnUFNCa2IyTjFiV1Z1ZEM1amNtVmhkR1ZGYkdWdFpXNTBLQ2R6WTNKcGNIUW5LVHRjYmlBZ0lDQmNiaUFnSUNCelkzSnBjSFF1YVdRZ1BTQnBaRHRjYmx4dUlDQWdJQzh2SUVCMGN5MXBaMjV2Y21VZ1ptbDRJR1p2Y2lCSlJWeHVJQ0FnSUdsbUlDaHpZM0pwY0hRdVlYUjBZV05vUlhabGJuUWdKaVlnSVNoelkzSnBjSFF1WVhSMFlXTm9SWFpsYm5RdWRHOVRkSEpwYm1jZ0ppWWdjMk55YVhCMExtRjBkR0ZqYUVWMlpXNTBMblJ2VTNSeWFXNW5LQ2t1YVc1a1pYaFBaaWduVzI1aGRHbDJaU0JqYjJSbEp5a2dQQ0F3S1NrZ2UxeHVJQ0FnSUNBZ0x5OGdRSFJ6TFdsbmJtOXlaVnh1SUNBZ0lDQWdjMk55YVhCMExtRjBkR0ZqYUVWMlpXNTBLQ2R2Ym5KbFlXUjVjM1JoZEdWamFHRnVaMlVuTENCeVpXRmtlVk4wWVhSbFEyaGhibWRsS1R0Y2JpQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdjMk55YVhCMExtRmtaRVYyWlc1MFRHbHpkR1Z1WlhJb0oyeHZZV1FuTENCeVpXRmtlVk4wWVhSbFEyaGhibWRsTENCbVlXeHpaU2s3WEc0Z0lDQWdJQ0J6WTNKcGNIUXVZV1JrUlhabGJuUk1hWE4wWlc1bGNpZ25iMjVsY25KdmNpY3NJSEpsYW1WamRDd2dabUZzYzJVcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUhOamNtbHdkQzV6WlhSQmRIUnlhV0oxZEdVb0oyTnliM056YjNKcFoybHVKeXdnSjJGdWIyNTViVzkxY3ljcE8xeHVJQ0FnSUhOamNtbHdkQzV6WlhSQmRIUnlhV0oxZEdVb0oyTm9ZWEp6WlhRbkxDQW5kWFJtTFRnbktUdGNiaUFnSUNCelkzSnBjSFF1YzJWMFFYUjBjbWxpZFhSbEtDZGhjM2x1WXljc0lDZDBjblZsSnlrN1hHNWNiaUFnSUNCelkzSnBjSFF1YzNKaklEMGdkWEpzTzF4dVhHNGdJQ0FnWkc5amRXMWxiblF1WW05a2VTNWhjSEJsYm1SRGFHbHNaQ2h6WTNKcGNIUXBPMXh1SUNCOUtUdGNibjA3WEc1Y2JpOHFLbHh1SUNvZ1VtVm5hWE4wWlhJZ2RHaGhkQ0J0YjJSMWJHVWdhWE1nY21WaFpIbGNiaUFxSUZ4dUlDb2dRSEJoY21GdElIdHpkSEpwYm1kOUlHbGtJRnh1SUNvZ1FIQmhjbUZ0SUh0aGJubDlJR2x1YzNSaGJtTmxJRnh1SUNvZ1FIQmhjbUZ0SUh0aGJubDlJRzFsZEdGa1lYUmhJQzBnWVdSa2FYUnBiMjVoYkNCdGIyUjFiR1VnYldWMFlXUmhkR0VnYkdsclpTQjJaWEp6YVc5dVhHNGdLaTljYm1WNGNHOXlkQ0JqYjI1emRDQnlaV2RwYzNSbGNrMXZaSFZzWlNBOUlDaHBaRG9nYzNSeWFXNW5MQ0JwYm5OMFlXNWpaVG9nWVc1NUxDQnRaWFJoWkdGMFlUODZJR0Z1ZVNrZ1BUNGdlMXh1SUNCcFppQW9JV2xrS1NCN1hHNGdJQ0FnZEdoeWIzY2dibVYzSUVWeWNtOXlLQ2ROYjJSMWJHVWdhV1FnYVhNZ2NtVnhkV2x5WldRbktWeHVJQ0I5WEc1Y2JpQWdhV1lnS0NGdGIyUjFiR1Z6S1NCN1hHNGdJQ0FnZEdoeWIzY2dibVYzSUVWeWNtOXlLQ2RNYjJGa1pYSWdhWE1nYm05MElHbHVhWFJwWVd4cGVtVmtKeWxjYmlBZ2ZWeHVYRzRnSUdsa0lEMGdUVTlFVlV4RlgxQlNSVVpKV0NBcklHbGtPMXh1WEc0Z0lHbG1JQ2h0YjJSMWJHVnpXMmxrWFNrZ2UxeHVJQ0FnSUcxdlpIVnNaWE5iYVdSZElEMGdleUJwYm5OMFlXNWpaU3dnYldWMFlXUmhkR0VnZlZ4dUlDQjlYRzU5TzF4dVhHNHZLaXBjYmlBcUlFeHZZV1FnWlhoMFpYSnVZV3dnWTNOeklHWnliMjBnWjJsMlpXNGdkWEpzWEc0Z0tpQmNiaUFxSUVCd1lYSmhiU0I3S24wZ2RYSnNJRnh1SUNvdlhHNWxlSEJ2Y25RZ1kyOXVjM1FnYkc5aFpFTnpjeUE5SUNoMWNtd3BJRDArSUh0Y2JpQWdZMjl1YzNRZ1lXeHlaV0ZrZVVGa1pHVmtWR2hwYzFSaFp5QTlJR1J2WTNWdFpXNTBMbkYxWlhKNVUyVnNaV04wYjNJb1lHeHBibXRiYUhKbFpqMWNJaVI3ZFhKc2ZWd2lYV0FwTzF4dUlDQnBaaUFvWVd4eVpXRmtlVUZrWkdWa1ZHaHBjMVJoWnlBaFBUMGdiblZzYkNrZ2UxeHVJQ0FnSUhKbGRIVnliaUJRY205dGFYTmxMbkpsYzI5c2RtVW9LVHRjYmlBZ2ZWeHVYRzRnSUhKbGRIVnliaUJ1WlhjZ1VISnZiV2x6WlNnb2NtVnpiMngyWlNrZ1BUNGdlMXh1SUNBZ0lHTnZibk4wSUdobFlXUWdQU0JrYjJOMWJXVnVkQzVuWlhSRmJHVnRaVzUwYzBKNVZHRm5UbUZ0WlNnbmFHVmhaQ2NwV3pCZE8xeHVJQ0FnSUdOdmJuTjBJR3hwYm1zZ1BTQmtiMk4xYldWdWRDNWpjbVZoZEdWRmJHVnRaVzUwS0Nkc2FXNXJKeWs3WEc1Y2JpQWdJQ0JqYjI1emRDQnNiMkZrWldRZ1BTQW9LU0E5UGlCN1hHNGdJQ0FnSUNCeVpYTnZiSFpsS0NrN1hHNGdJQ0FnSUNCc2FXNXJMbkpsYlc5MlpVVjJaVzUwVEdsemRHVnVaWElvSjJ4dllXUW5MQ0JzYjJGa1pXUXBPMXh1SUNBZ0lIMDdYRzVjYmlBZ0lDQnNhVzVyTG5KbGJDQTlJQ2R6ZEhsc1pYTm9aV1YwSnp0Y2JpQWdJQ0JzYVc1ckxtaHlaV1lnUFNCMWNtdzdYRzRnSUNBZ2JHbHVheTVoWkdSRmRtVnVkRXhwYzNSbGJtVnlLQ2RzYjJGa0p5d2diRzloWkdWa0tUdGNiaUFnSUNCb1pXRmtMbUZ3Y0dWdVpFTm9hV3hrS0d4cGJtc3BPMXh1SUNCOUtUdGNibjA3WEc1Y2JpOHFLbHh1SUNvZ1JXNTFiU0JxZFhOMElHWnZjaUIxYm1sbWVTQm1hV3hsYzNSaFkyc2diVzlrZFd4bElHNWhiV1Z6WEc0Z0tpOWNibVY0Y0c5eWRDQmxiblZ0SUVaSlRFVlRWRUZEUzE5TlQwUlZURVZUSUh0Y2JpQWdSa2xNUlZOVVFVTkxYMU5FU3lBOUlDZG1hV3hsYzNSaFkyc3RjMlJySnl4Y2JpQWdWRkpCVGxOR1QxSk5VMTlWU1NBOUlDZDBjbUZ1YzJadmNtMXpMWFZwSnl4Y2JpQWdVRWxEUzBWU0lEMGdKM0JwWTJ0bGNpY3NYRzU5TzF4dUlsMTkiXSwic291cmNlUm9vdCI6IiJ9
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.FilestackLoader=t():e.FilestackLoader=t()}(window,(function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=0)}([function(e,t,r){"use strict";r.r(t),r.d(t,"loadModules",(function(){return a})),r.d(t,"loadModule",(function(){return u})),r.d(t,"registerModule",(function(){return s})),r.d(t,"loadCss",(function(){return c})),r.d(t,"FILESTACK_MODULES",(function(){return l}));const n={},o=(()=>{let e;e=window&&"object"!=typeof window?n:window;let t=e.filestackInternals;return t||(t={modules:{}},window.filestackInternals=t),t.modules||(t.modules={}),t})(),i=o&&o.modules,d=(e,t,r)=>{e.detachEvent?e.detachEvent("onreadystatechange",t):e.removeEventListener(r,t,!1)},a=e=>Promise.all(e.map(({id:e,url:t})=>u(e,t))).then(t=>{const r={};return t.forEach((t,n)=>{const o=e[n];r[o.id]=t}),r}),u=(e,t)=>{if(window&&"object"!=typeof window)return Promise.reject(new Error("Load module is working only on browser env"));if(!e)throw new Error("Module id is required");let r=i[e];return e="fs-loader-"+e,r||(i[e]={},r=i[e]),r.instance?Promise.resolve(r.instance):r.promise?r.promise:r.promise=new Promise((r,n)=>{const o=t=>{if("load"===t.type||/^(complete|loaded)$/.test((t.currentTarget||t.srcElement).readyState)){const a=t.currentTarget||t.srcElement;d(a,o,"load"),d(a,n,"error"),setTimeout(()=>r(i[e]?i[e].instance:void 0),10)}},a=document.createElement("script");a.id=e,!a.attachEvent||a.attachEvent.toString&&a.attachEvent.toString().indexOf("[native code")<0?(a.addEventListener("load",o,!1),a.addEventListener("onerror",n,!1)):a.attachEvent("onreadystatechange",o),a.setAttribute("crossorigin","anonymous"),a.setAttribute("charset","utf-8"),a.setAttribute("async","true"),a.src=t,document.body.appendChild(a)})},s=(e,t,r)=>{if(!window||"object"==typeof window){if(!e)throw new Error("Module id is required");if(!i)throw new Error("Loader is not initialized");i[e="fs-loader-"+e]&&(i[e]={instance:t,metadata:r})}},c=e=>null!==document.querySelector(`link[href="${e}"]`)?Promise.resolve():new Promise(t=>{const r=document.getElementsByTagName("head")[0],n=document.createElement("link"),o=()=>{t(),n.removeEventListener("load",o)};n.rel="stylesheet",n.href=e,n.addEventListener("load",o),r.appendChild(n)});var l;!function(e){e.FILESTACK_SDK="filestack-sdk",e.TRANSFORMS_UI="transforms-ui",e.PICKER="picker"}(l||(l={}))}])}));
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9GaWxlc3RhY2tMb2FkZXIvd2VicGFjay91bml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uIiwid2VicGFjazovL0ZpbGVzdGFja0xvYWRlci93ZWJwYWNrL2Jvb3RzdHJhcCIsIndlYnBhY2s6Ly9GaWxlc3RhY2tMb2FkZXIvLi9kaXN0L21vZHVsZS9pbmRleC5qcyJdLCJuYW1lcyI6WyJyb290IiwiZmFjdG9yeSIsImV4cG9ydHMiLCJtb2R1bGUiLCJkZWZpbmUiLCJhbWQiLCJ3aW5kb3ciLCJpbnN0YWxsZWRNb2R1bGVzIiwiX193ZWJwYWNrX3JlcXVpcmVfXyIsIm1vZHVsZUlkIiwiaSIsImwiLCJtb2R1bGVzIiwiY2FsbCIsIm0iLCJjIiwiZCIsIm5hbWUiLCJnZXR0ZXIiLCJvIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJlbnVtZXJhYmxlIiwiZ2V0IiwiciIsIlN5bWJvbCIsInRvU3RyaW5nVGFnIiwidmFsdWUiLCJ0IiwibW9kZSIsIl9fZXNNb2R1bGUiLCJucyIsImNyZWF0ZSIsImtleSIsImJpbmQiLCJuIiwib2JqZWN0IiwicHJvcGVydHkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsInAiLCJzIiwiZ2xvYmFsSG9sZGVyIiwiZmlsZXN0YWNrSW50ZXJuYWxzIiwiaG9sZGVyIiwibmFtZXNwYWNlIiwiaW5pdGlhbGl6ZUdsb2JhbE5hbWVzcGFjZSIsInJlbW92ZUxpc3RlbmVyIiwibm9kZSIsImZ1bmMiLCJkZXRhY2hFdmVudCIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJsb2FkTW9kdWxlcyIsIm1vZHVsZXNMaXN0IiwiUHJvbWlzZSIsImFsbCIsIm1hcCIsImlkIiwidXJsIiwibG9hZE1vZHVsZSIsInRoZW4iLCJyZXMiLCJ0b1JldHVybiIsImZvckVhY2giLCJtb2QiLCJpZHgiLCJlbCIsInJlamVjdCIsIkVycm9yIiwibW9kdWxlRGVmaW5pdGlvbiIsImluc3RhbmNlIiwicmVzb2x2ZSIsInByb21pc2UiLCJyZWFkeVN0YXRlQ2hhbmdlIiwiZXZ0IiwidHlwZSIsInRlc3QiLCJjdXJyZW50VGFyZ2V0Iiwic3JjRWxlbWVudCIsInJlYWR5U3RhdGUiLCJzZXRUaW1lb3V0IiwidW5kZWZpbmVkIiwic2NyaXB0IiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50IiwiYXR0YWNoRXZlbnQiLCJ0b1N0cmluZyIsImluZGV4T2YiLCJhZGRFdmVudExpc3RlbmVyIiwic2V0QXR0cmlidXRlIiwic3JjIiwiYm9keSIsImFwcGVuZENoaWxkIiwicmVnaXN0ZXJNb2R1bGUiLCJtZXRhZGF0YSIsImxvYWRDc3MiLCJxdWVyeVNlbGVjdG9yIiwiaGVhZCIsImdldEVsZW1lbnRzQnlUYWdOYW1lIiwibGluayIsImxvYWRlZCIsInJlbCIsImhyZWYiLCJGSUxFU1RBQ0tfTU9EVUxFUyJdLCJtYXBwaW5ncyI6IkNBQUEsU0FBMkNBLEVBQU1DLEdBQzFCLGlCQUFaQyxTQUEwQyxpQkFBWEMsT0FDeENBLE9BQU9ELFFBQVVELElBQ1EsbUJBQVhHLFFBQXlCQSxPQUFPQyxJQUM5Q0QsT0FBTyxHQUFJSCxHQUNlLGlCQUFaQyxRQUNkQSxRQUF5QixnQkFBSUQsSUFFN0JELEVBQXNCLGdCQUFJQyxJQVI1QixDQVNHSyxRQUFRLFdBQ1gsTyxZQ1RFLElBQUlDLEVBQW1CLEdBR3ZCLFNBQVNDLEVBQW9CQyxHQUc1QixHQUFHRixFQUFpQkUsR0FDbkIsT0FBT0YsRUFBaUJFLEdBQVVQLFFBR25DLElBQUlDLEVBQVNJLEVBQWlCRSxHQUFZLENBQ3pDQyxFQUFHRCxFQUNIRSxHQUFHLEVBQ0hULFFBQVMsSUFVVixPQU5BVSxFQUFRSCxHQUFVSSxLQUFLVixFQUFPRCxRQUFTQyxFQUFRQSxFQUFPRCxRQUFTTSxHQUcvREwsRUFBT1EsR0FBSSxFQUdKUixFQUFPRCxRQTBEZixPQXJEQU0sRUFBb0JNLEVBQUlGLEVBR3hCSixFQUFvQk8sRUFBSVIsRUFHeEJDLEVBQW9CUSxFQUFJLFNBQVNkLEVBQVNlLEVBQU1DLEdBQzNDVixFQUFvQlcsRUFBRWpC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S0UsSUFBTSxhQUNYRixFQUFLRyxLQUFPNUMsRUFDWnlDLEVBQUtYLGlCQUFpQixPQUFRWSxHQUM5QkgsRUFBS0wsWUFBWU8sS0FNbEIsSUFBSUksR0FDWCxTQUFXQSxHQUNQQSxFQUFpQyxjQUFJLGdCQUNyQ0EsRUFBaUMsY0FBSSxnQkFDckNBLEVBQTBCLE9BQUksU0FIbEMsQ0FJR0EsSUFBc0JBLEVBQW9CIiwiZmlsZSI6ImluZGV4LnVtZC5qcyIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiB3ZWJwYWNrVW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbihyb290LCBmYWN0b3J5KSB7XG5cdGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlID09PSAnb2JqZWN0Jylcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGZhY3RvcnkoKTtcblx0ZWxzZSBpZih0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpXG5cdFx0ZGVmaW5lKFtdLCBmYWN0b3J5KTtcblx0ZWxzZSBpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcpXG5cdFx0ZXhwb3J0c1tcIkZpbGVzdGFja0xvYWRlclwiXSA9IGZhY3RvcnkoKTtcblx0ZWxzZVxuXHRcdHJvb3RbXCJGaWxlc3RhY2tMb2FkZXJcIl0gPSBmYWN0b3J5KCk7XG59KSh3aW5kb3csIGZ1bmN0aW9uKCkge1xucmV0dXJuICIsIiBcdC8vIFRoZSBtb2R1bGUgY2FjaGVcbiBcdHZhciBpbnN0YWxsZWRNb2R1bGVzID0ge307XG5cbiBcdC8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG4gXHRmdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cbiBcdFx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG4gXHRcdGlmKGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdKSB7XG4gXHRcdFx0cmV0dXJuIGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdLmV4cG9ydHM7XG4gXHRcdH1cbiBcdFx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcbiBcdFx0dmFyIG1vZHVsZSA9IGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdID0ge1xuIFx0XHRcdGk6IG1vZHVsZUlkLFxuIFx0XHRcdGw6IGZhbHNlLFxuIFx0XHRcdGV4cG9ydHM6IHt9XG4gXHRcdH07XG5cbiBcdFx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG4gXHRcdG1vZHVsZXNbbW9kdWxlSWRdLmNhbGwobW9kdWxlLmV4cG9ydHMsIG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG4gXHRcdC8vIEZsYWcgdGhlIG1vZHVsZSBhcyBsb2FkZWRcbiBcdFx0bW9kdWxlLmwgPSB0cnVlO1xuXG4gXHRcdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG4gXHRcdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbiBcdH1cblxuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZXMgb2JqZWN0IChfX3dlYnBhY2tfbW9kdWxlc19fKVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5tID0gbW9kdWxlcztcblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGUgY2FjaGVcbiBcdF9fd2VicGFja19yZXF1aXJlX18uYyA9IGluc3RhbGxlZE1vZHVsZXM7XG5cbiBcdC8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb24gZm9yIGhhcm1vbnkgZXhwb3J0c1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kID0gZnVuY3Rpb24oZXhwb3J0cywgbmFtZSwgZ2V0dGVyKSB7XG4gXHRcdGlmKCFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywgbmFtZSkpIHtcbiBcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgbmFtZSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGdldHRlciB9KTtcbiBcdFx0fVxuIFx0fTtcblxuIFx0Ly8gZGVmaW5lIF9fZXNNb2R1bGUgb24gZXhwb3J0c1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5yID0gZnVuY3Rpb24oZXhwb3J0cykge1xuIFx0XHRpZih0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZpbmVkJyAmJiBTeW1ib2wudG9TdHJpbmdUYWcpIHtcbiBcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgU3ltYm9sLnRvU3RyaW5nVGFnLCB7IHZhbHVlOiAnTW9kdWxlJyB9KTtcbiBcdFx0fVxuIFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuIFx0fTtcblxuIFx0Ly8gY3JlYXRlIGEgZmFrZSBuYW1lc3BhY2Ugb2JqZWN0XG4gXHQvLyBtb2RlICYgMTogdmFsdWUgaXMgYSBtb2R1bGUgaWQsIHJlcXVpcmUgaXRcbiBcdC8vIG1vZGUgJiAyOiBtZXJnZSBhbGwgcHJvcGVydGllcyBvZiB2YWx1ZSBpbnRvIHRoZSBuc1xuIFx0Ly8gbW9kZSAmIDQ6IHJldHVybiB2YWx1ZSB3aGVuIGFscmVhZHkgbnMgb2JqZWN0XG4gXHQvLyBtb2RlICYgOHwxOiBiZWhhdmUgbGlrZSByZXF1aXJlXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnQgPSBmdW5jdGlvbih2YWx1ZSwgbW9kZSkge1xuIFx0XHRpZihtb2RlICYgMSkgdmFsdWUgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKHZhbHVlKTtcbiBcdFx0aWYobW9kZSAmIDgpIHJldHVybiB2YWx1ZTtcbiBcdFx0aWYoKG1vZGUgJiA0KSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlICYmIHZhbHVlLl9fZXNNb2R1bGUpIHJldHVybiB2YWx1ZTtcbiBcdFx0dmFyIG5zID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5yKG5zKTtcbiBcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KG5zLCAnZGVmYXVsdCcsIHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IHZhbHVlIH0pO1xuIFx0XHRpZihtb2RlICYgMiAmJiB0eXBlb2YgdmFsdWUgIT0gJ3N0cmluZycpIGZvcih2YXIga2V5IGluIHZhbHVlKSBfX3dlYnBhY2tfcmVxdWlyZV9fLmQobnMsIGtleSwgZnVuY3Rpb24oa2V5KSB7IHJldHVybiB2YWx1ZVtrZXldOyB9LmJpbmQobnVsbCwga2V5KSk7XG4gXHRcdHJldHVybiBucztcbiBcdH07XG5cbiBcdC8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSBmdW5jdGlvbihtb2R1bGUpIHtcbiBcdFx0dmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/XG4gXHRcdFx0ZnVuY3Rpb24gZ2V0RGVmYXVsdCgpIHsgcmV0dXJuIG1vZHVsZVsnZGVmYXVsdCddOyB9IDpcbiBcdFx0XHRmdW5jdGlvbiBnZXRNb2R1bGVFeHBvcnRzKCkgeyByZXR1cm4gbW9kdWxlOyB9O1xuIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCAnYScsIGdldHRlcik7XG4gXHRcdHJldHVybiBnZXR0ZXI7XG4gXHR9O1xuXG4gXHQvLyBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGxcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubyA9IGZ1bmN0aW9uKG9iamVjdCwgcHJvcGVydHkpIHsgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIHByb3BlcnR5KTsgfTtcblxuIFx0Ly8gX193ZWJwYWNrX3B1YmxpY19wYXRoX19cbiBcdF9fd2VicGFja19yZXF1aXJlX18ucCA9IFwiXCI7XG5cblxuIFx0Ly8gTG9hZCBlbnRyeSBtb2R1bGUgYW5kIHJldHVybiBleHBvcnRzXG4gXHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXyhfX3dlYnBhY2tfcmVxdWlyZV9fLnMgPSAwKTtcbiIsImNvbnN0IE1PRFVMRV9QUkVGSVggPSAnZnMtbG9hZGVyLSc7XG5jb25zdCBnbG9iYWxIb2xkZXIgPSB7fTtcbmNvbnN0IGluaXRpYWxpemVHbG9iYWxOYW1lc3BhY2UgPSAoKSA9PiB7XG4gICAgbGV0IGhvbGRlcjtcbiAgICAvLyBpZiB0aGVyZSBpcyBubyB3aW5kb3cgb2JqIHVzZSBub2RlanMgZ2xvYmFsIGxpYiB2YXJpYWJsZVxuICAgIGlmICh3aW5kb3cgJiYgdHlwZW9mIHdpbmRvdyAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgaG9sZGVyID0gZ2xvYmFsSG9sZGVyO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgaG9sZGVyID0gd2luZG93O1xuICAgIH1cbiAgICAvLyBAdHMtaWdub3JlXG4gICAgbGV0IG5hbWVzcGFjZSA9IGhvbGRlci5maWxlc3RhY2tJbnRlcm5hbHM7XG4gICAgaWYgKCFuYW1lc3BhY2UpIHtcbiAgICAgICAgbmFtZXNwYWNlID0ge1xuICAgICAgICAgICAgbW9kdWxlczoge30sXG4gICAgICAgIH07XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgd2luZG93LmZpbGVzdGFja0ludGVybmFscyA9IG5hbWVzcGFjZTtcbiAgICB9XG4gICAgaWYgKCFuYW1lc3BhY2UubW9kdWxlcykge1xuICAgICAgICBuYW1lc3BhY2UubW9kdWxlcyA9IHt9O1xuICAgIH1cbiAgICByZXR1cm4gbmFtZXNwYWNlO1xufTtcbmNvbnN0IGZpbGVzdGFja0ludGVybmFscyA9IGluaXRpYWxpemVHbG9iYWxOYW1lc3BhY2UoKTtcbmNvbnN0IG1vZHVsZXMgPSBmaWxlc3RhY2tJbnRlcm5hbHMgJiYgZmlsZXN0YWNrSW50ZXJuYWxzLm1vZHVsZXM7XG4vKipcbiAqIFJlbW92ZSBsaXN0ZW5lcnMgKGJyb3dzZXIgY29tcGF0aWJsZSlcbiAqXG4gKiBAcGFyYW0gbm9kZVxuICogQHBhcmFtIGZ1bmNcbiAqIEBwYXJhbSBuYW1lXG4gKi9cbmNvbnN0IHJlbW92ZUxpc3RlbmVyID0gKG5vZGUsIGZ1bmMsIG5hbWUpID0+IHtcbiAgICBpZiAobm9kZS5kZXRhY2hFdmVudCkge1xuICAgICAgICBub2RlLmRldGFjaEV2ZW50KCdvbnJlYWR5c3RhdGVjaGFuZ2UnLCBmdW5jKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIG5vZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcihuYW1lLCBmdW5jLCBmYWxzZSk7XG4gICAgfVxufTtcbi8qKlxuICogTG9hZCBtdWx0aXBsZSBtb2R1bGVzXG4gKlxuICogQHBhcmFtIHsqfSBtb2R1bGVzXG4gKi9cbmV4cG9ydCBjb25zdCBsb2FkTW9kdWxlcyA9IChtb2R1bGVzTGlzdCkgPT4gUHJvbWlzZS5hbGwobW9kdWxlc0xpc3QubWFwKCh7IGlkLCB1cmwgfSkgPT4gbG9hZE1vZHVsZShpZCwgdXJsKSkpLnRoZW4oKHJlcykgPT4ge1xuICAgIGNvbnN0IHRvUmV0dXJuID0ge307XG4gICAgcmVzLmZvckVhY2goKG1vZCwgaWR4KSA9PiB7XG4gICAgICAgIGNvbnN0IGVsID0gbW9kdWxlc0xpc3RbaWR4XTtcbiAgICAgICAgdG9SZXR1cm5bZWwuaWRdID0gbW9kO1xuICAgIH0pO1xuICAgIHJldHVybiB0b1JldHVybjtcbn0pO1xuLyoqXG4gKiBMb2FkIHNpbmdsZSBtb2R1bGUgZnJvbSB1cmwgd2l0aCBnaXZlbiBpZFxuICpcbiAqIEBwYXJhbSB7Kn0gaWQgLSBtb2R1bGUgaWRcbiAqIEBwYXJhbSB7Kn0gdXJsXG4gKi9cbmV4cG9ydCBjb25zdCBsb2FkTW9kdWxlID0gKGlkLCB1cmwpID0+IHtcbiAgICBpZiAod2luZG93ICYmIHR5cGVvZiB3aW5kb3cgIT09ICdvYmplY3QnKSB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChuZXcgRXJyb3IoJ0xvYWQgbW9kdWxlIGlzIHdvcmtpbmcgb25seSBvbiBicm93c2VyIGVudicpKTtcbiAgICB9XG4gICAgaWYgKCFpZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ01vZHVsZSBpZCBpcyByZXF1aXJlZCcpO1xuICAgIH1cbiAgICBsZXQgbW9kdWxlRGVmaW5pdGlvbiA9IG1vZHVsZXNbaWRdO1xuICAgIGlkID0gTU9EVUxFX1BSRUZJWCArIGlkO1xuICAgIGlmICghbW9kdWxlRGVmaW5pdGlvbikge1xuICAgICAgICBtb2R1bGVzW2lkXSA9IHt9O1xuICAgICAgICBtb2R1bGVEZWZpbml0aW9uID0gbW9kdWxlc1tpZF07XG4gICAgfVxuICAgIGlmIChtb2R1bGVEZWZpbml0aW9uLmluc3RhbmNlKSB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUobW9kdWxlRGVmaW5pdGlvbi5pbnN0YW5jZSk7XG4gICAgfVxuICAgIGlmIChtb2R1bGVEZWZpbml0aW9uLnByb21pc2UpIHtcbiAgICAgICAgcmV0dXJuIG1vZHVsZURlZmluaXRpb24ucHJvbWlzZTtcbiAgICB9XG4gICAgcmV0dXJuIG1vZHVsZURlZmluaXRpb24ucHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgY29uc3QgcmVhZHlTdGF0ZUNoYW5nZSA9IChldnQpID0+IHtcbiAgICAgICAgICAgIGlmIChldnQudHlwZSA9PT0gJ2xvYWQnIHx8ICgvXihjb21wbGV0ZXxsb2FkZWQpJC8udGVzdCgoZXZ0LmN1cnJlbnRUYXJnZXQgfHwgZXZ0LnNyY0VsZW1lbnQpLnJlYWR5U3RhdGUpKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5vZGUgPSBldnQuY3VycmVudFRhcmdldCB8fCBldnQuc3JjRWxlbWVudDtcbiAgICAgICAgICAgICAgICByZW1vdmVMaXN0ZW5lcihub2RlLCByZWFkeVN0YXRlQ2hhbmdlLCAnbG9hZCcpO1xuICAgICAgICAgICAgICAgIHJlbW92ZUxpc3RlbmVyKG5vZGUsIHJlamVjdCwgJ2Vycm9yJyk7XG4gICAgICAgICAgICAgICAgLy8gc2xvdyBkb3cgY2hlY2tpbmcgaWYgbW9kdWxlIGlzIGxvYWRlZCB0byBlbnN1cmUgdGhhdCBzY3JpcHQgdGhhdCAgcmVnaXN0ZXIgbW9kdWxlIGlzIGNhbGxlZFxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gcmVzb2x2ZShtb2R1bGVzW2lkXSA/IG1vZHVsZXNbaWRdLmluc3RhbmNlIDogdW5kZWZpbmVkKSwgMTApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcbiAgICAgICAgc2NyaXB0LmlkID0gaWQ7XG4gICAgICAgIC8vIEB0cy1pZ25vcmUgZml4IGZvciBJRVxuICAgICAgICBpZiAoc2NyaXB0LmF0dGFjaEV2ZW50ICYmICEoc2NyaXB0LmF0dGFjaEV2ZW50LnRvU3RyaW5nICYmIHNjcmlwdC5hdHRhY2hFdmVudC50b1N0cmluZygpLmluZGV4T2YoJ1tuYXRpdmUgY29kZScpIDwgMCkpIHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHNjcmlwdC5hdHRhY2hFdmVudCgnb25yZWFkeXN0YXRlY2hhbmdlJywgcmVhZHlTdGF0ZUNoYW5nZSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBzY3JpcHQuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIHJlYWR5U3RhdGVDaGFuZ2UsIGZhbHNlKTtcbiAgICAgICAgICAgIHNjcmlwdC5hZGRFdmVudExpc3RlbmVyKCdvbmVycm9yJywgcmVqZWN0LCBmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgICAgc2NyaXB0LnNldEF0dHJpYnV0ZSgnY3Jvc3NvcmlnaW4nLCAnYW5vbnltb3VzJyk7XG4gICAgICAgIHNjcmlwdC5zZXRBdHRyaWJ1dGUoJ2NoYXJzZXQnLCAndXRmLTgnKTtcbiAgICAgICAgc2NyaXB0LnNldEF0dHJpYnV0ZSgnYXN5bmMnLCAndHJ1ZScpO1xuICAgICAgICBzY3JpcHQuc3JjID0gdXJsO1xuICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHNjcmlwdCk7XG4gICAgfSk7XG59O1xuLyoqXG4gKiBSZWdpc3RlciB0aGF0IG1vZHVsZSBpcyByZWFkeVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBpZFxuICogQHBhcmFtIHthbnl9IGluc3RhbmNlXG4gKiBAcGFyYW0ge2FueX0gbWV0YWRhdGEgLSBhZGRpdGlvbmFsIG1vZHVsZSBtZXRhZGF0YSBsaWtlIHZlcnNpb25cbiAqL1xuZXhwb3J0IGNvbnN0IHJlZ2lzdGVyTW9kdWxlID0gKGlkLCBpbnN0YW5jZSwgbWV0YWRhdGEpID0+IHtcbiAgICAvLyBsb2FkZXIgbm90IHdvcmtpbmcgb24gbm9kZWpzIGVudnNcbiAgICBpZiAod2luZG93ICYmIHR5cGVvZiB3aW5kb3cgIT09ICdvYmplY3QnKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCFpZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ01vZHVsZSBpZCBpcyByZXF1aXJlZCcpO1xuICAgIH1cbiAgICBpZiAoIW1vZHVsZXMpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdMb2FkZXIgaXMgbm90IGluaXRpYWxpemVkJyk7XG4gICAgfVxuICAgIGlkID0gTU9EVUxFX1BSRUZJWCArIGlkO1xuICAgIGlmIChtb2R1bGVzW2lkXSkge1xuICAgICAgICBtb2R1bGVzW2lkXSA9IHsgaW5zdGFuY2UsIG1ldGFkYXRhIH07XG4gICAgfVxufTtcbi8qKlxuICogTG9hZCBleHRlcm5hbCBjc3MgZnJvbSBnaXZlbiB1cmxcbiAqXG4gKiBAcGFyYW0geyp9IHVybFxuICovXG5leHBvcnQgY29uc3QgbG9hZENzcyA9ICh1cmwpID0+IHtcbiAgICBjb25zdCBhbHJlYWR5QWRkZWRUaGlzVGFnID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgbGlua1tocmVmPVwiJHt1cmx9XCJdYCk7XG4gICAgaWYgKGFscmVhZHlBZGRlZFRoaXNUYWcgIT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgICAgY29uc3QgaGVhZCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF07XG4gICAgICAgIGNvbnN0IGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaW5rJyk7XG4gICAgICAgIGNvbnN0IGxvYWRlZCA9ICgpID0+IHtcbiAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICAgIGxpbmsucmVtb3ZlRXZlbnRMaXN0ZW5lcignbG9hZCcsIGxvYWRlZCk7XG4gICAgICAgIH07XG4gICAgICAgIGxpbmsucmVsID0gJ3N0eWxlc2hlZXQnO1xuICAgICAgICBsaW5rLmhyZWYgPSB1cmw7XG4gICAgICAgIGxpbmsuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGxvYWRlZCk7XG4gICAgICAgIGhlYWQuYXBwZW5kQ2hpbGQobGluayk7XG4gICAgfSk7XG59O1xuLyoqXG4gKiBFbnVtIGp1c3QgZm9yIHVuaWZ5IGZpbGVzdGFjayBtb2R1bGUgbmFtZXNcbiAqL1xuZXhwb3J0IHZhciBGSUxFU1RBQ0tfTU9EVUxFUztcbihmdW5jdGlvbiAoRklMRVNUQUNLX01PRFVMRVMpIHtcbiAgICBGSUxFU1RBQ0tfTU9EVUxFU1tcIkZJTEVTVEFDS19TREtcIl0gPSBcImZpbGVzdGFjay1zZGtcIjtcbiAgICBGSUxFU1RBQ0tfTU9EVUxFU1tcIlRSQU5TRk9STVNfVUlcIl0gPSBcInRyYW5zZm9ybXMtdWlcIjtcbiAgICBGSUxFU1RBQ0tfTU9EVUxFU1tcIlBJQ0tFUlwiXSA9IFwicGlja2VyXCI7XG59KShGSUxFU1RBQ0tfTU9EVUxFUyB8fCAoRklMRVNUQUNLX01PRFVMRVMgPSB7fSkpO1xuO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pYVc1a1pYZ3Vhbk1pTENKemIzVnlZMlZTYjI5MElqb2lJaXdpYzI5MWNtTmxjeUk2V3lJdUxpOHVMaTlzYVdJdmFXNWtaWGd1ZEhNaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWtGQlFVRXNUVUZCVFN4aFFVRmhMRWRCUVVjc1dVRkJXU3hEUVVGRE8wRkJRMjVETEUxQlFVMHNXVUZCV1N4SFFVRlJMRVZCUVVVc1EwRkJRenRCUVdVM1FpeE5RVUZOTEhsQ1FVRjVRaXhIUVVGSExFZEJRVWNzUlVGQlJUdEpRVU55UXl4SlFVRkpMRTFCUVZVc1EwRkJRenRKUVVWbUxESkVRVUV5UkR0SlFVTXpSQ3hKUVVGSkxFMUJRVTBzU1VGQlNTeFBRVUZQTEUxQlFVMHNTMEZCU3l4UlFVRlJMRVZCUVVVN1VVRkRlRU1zVFVGQlRTeEhRVUZITEZsQlFWa3NRMEZCUXp0TFFVTjJRanRUUVVGTk8xRkJRMHdzVFVGQlRTeEhRVUZITEUxQlFVMHNRMEZCUVR0TFFVTm9RanRKUVVWRUxHRkJRV0U3U1VGRFlpeEpRVUZKTEZOQlFWTXNSMEZCWXl4TlFVRk5MRU5CUVVNc2EwSkJRV3RDTEVOQlFVTTdTVUZGY2tRc1NVRkJTU3hEUVVGRExGTkJRVk1zUlVGQlJUdFJRVU5rTEZOQlFWTXNSMEZCUnp0WlFVTldMRTlCUVU4c1JVRkJSU3hGUVVGRk8xTkJRMW9zUTBGQlF6dFJRVVZHTEdGQlFXRTdVVUZEWWl4TlFVRk5MRU5CUVVNc2EwSkJRV3RDTEVkQlFVY3NVMEZCVXl4RFFVRkRPMHRCUTNaRE8wbEJSVVFzU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4UFFVRlBMRVZCUVVVN1VVRkRkRUlzVTBGQlV5eERRVUZETEU5QlFVOHNSMEZCUnl4RlFVRkZMRU5CUVVNN1MwRkRlRUk3U1VGRlJDeFBRVUZQTEZOQlFWTXNRMEZCUXp0QlFVTnVRaXhEUVVGRExFTkJRVU03UVVGRlJpeE5RVUZOTEd0Q1FVRnJRaXhIUVVGSExIbENRVUY1UWl4RlFVRkZMRU5CUVVNN1FVRkRka1FzVFVGQlRTeFBRVUZQTEVkQlFVY3NhMEpCUVd0Q0xFbEJRVWtzYTBKQlFXdENMRU5CUVVNc1QwRkJUeXhEUVVGRE8wRkJSV3BGT3pzN096czdSMEZOUnp0QlFVTklMRTFCUVUwc1kwRkJZeXhIUVVGSExFTkJRVU1zU1VGQlNTeEZRVUZGTEVsQlFVa3NSVUZCUlN4SlFVRkpMRVZCUVVrc1JVRkJSVHRKUVVNMVF5eEpRVUZKTEVsQlFVa3NRMEZCUXl4WFFVRlhMRVZCUVVVN1VVRkRjRUlzU1VGQlNTeERRVUZETEZkQlFWY3NRMEZCUXl4dlFrRkJiMElzUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZCUXp0TFFVTTVRenRUUVVGTk8xRkJRMHdzU1VGQlNTeERRVUZETEcxQ1FVRnRRaXhEUVVGRExFbEJRVWtzUlVGQlJTeEpRVUZKTEVWQlFVVXNTMEZCU3l4RFFVRkRMRU5CUVVNN1MwRkROME03UVVGRFNDeERRVUZETEVOQlFVRTdRVUZGUkRzN096dEhRVWxITzBGQlEwZ3NUVUZCVFN4RFFVRkRMRTFCUVUwc1YwRkJWeXhIUVVGSExFTkJRVU1zVjBGQlZ5eEZRVUZGTEVWQlFVVXNRMEZCUXl4UFFVRlBMRU5CUVVNc1IwRkJSeXhEUVVGRExGZEJRVmNzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RlFVRkZMRVZCUVVVc1JVRkJSU3hIUVVGSExFVkJRVVVzUlVGQlJTeEZRVUZGTEVOQlFVTXNWVUZCVlN4RFFVRkRMRVZCUVVVc1JVRkJSU3hIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1IwRkJSeXhGUVVGRkxFVkJRVVU3U1VGRE1VZ3NUVUZCVFN4UlFVRlJMRWRCUVVjc1JVRkJSU3hEUVVGRE8wbEJSWEJDTEVkQlFVY3NRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhIUVVGSExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVWQlFVVTdVVUZEZGtJc1RVRkJUU3hGUVVGRkxFZEJRVWNzVjBGQlZ5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMUZCUXpWQ0xGRkJRVkVzUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1IwRkJSeXhEUVVGRE8wbEJRM2hDTEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUlVnc1QwRkJUeXhSUVVGUkxFTkJRVU03UVVGRGJFSXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkZTRHM3T3pzN1IwRkxSenRCUVVOSUxFMUJRVTBzUTBGQlF5eE5RVUZOTEZWQlFWVXNSMEZCUnl4RFFVRkRMRVZCUVZVc1JVRkJSU3hIUVVGWExFVkJRVVVzUlVGQlJUdEpRVU53UkN4SlFVRkpMRTFCUVUwc1NVRkJTU3hQUVVGUExFMUJRVTBzUzBGQlN5eFJRVUZSTEVWQlFVVTdVVUZEZUVNc1QwRkJUeXhQUVVGUExFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NTMEZCU3l4RFFVRkRMRFJEUVVFMFF5eERRVUZETEVOQlFVTXNRMEZCUXp0TFFVTm9SanRKUVVWRUxFbEJRVWtzUTBGQlF5eEZRVUZGTEVWQlFVVTdVVUZEVUN4TlFVRk5MRWxCUVVrc1MwRkJTeXhEUVVGRExIVkNRVUYxUWl4RFFVRkRMRU5CUVVFN1MwRkRla003U1VGRlJDeEpRVUZKTEdkQ1FVRm5RaXhIUVVGSExFOUJRVThzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXp0SlFVVnVReXhGUVVGRkxFZEJRVWtzWVVGQllTeEhRVUZITEVWQlFVVXNRMEZCUXp0SlFVVjZRaXhKUVVGSkxFTkJRVU1zWjBKQlFXZENMRVZCUVVVN1VVRkRja0lzVDBGQlR5eERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMRVZCUVVVc1EwRkJRenRSUVVOcVFpeG5Ra0ZCWjBJc1IwRkJSeXhQUVVGUExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTTdTMEZEYUVNN1NVRkZSQ3hKUVVGSkxHZENRVUZuUWl4RFFVRkRMRkZCUVZFc1JVRkJSVHRSUVVNM1FpeFBRVUZQTEU5QlFVOHNRMEZCUXl4UFFVRlBMRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNN1MwRkRia1E3U1VGRlJDeEpRVUZKTEdkQ1FVRm5RaXhEUVVGRExFOUJRVThzUlVGQlJUdFJRVU0xUWl4UFFVRlBMR2RDUVVGblFpeERRVUZETEU5QlFVOHNRMEZCUXp0TFFVTnFRenRKUVVWRUxFOUJRVThzWjBKQlFXZENMRU5CUVVNc1QwRkJUeXhIUVVGSExFbEJRVWtzVDBGQlR5eERRVUZETEVOQlFVTXNUMEZCVHl4RlFVRkZMRTFCUVUwc1JVRkJSU3hGUVVGRk8xRkJRMmhGTEUxQlFVMHNaMEpCUVdkQ0xFZEJRVWNzUTBGQlF5eEhRVUZSTEVWQlFVVXNSVUZCUlR0WlFVTndReXhKUVVGSkxFZEJRVWNzUTBGQlF5eEpRVUZKTEV0QlFVc3NUVUZCVFN4SlFVRkpMRU5CUVVNc2NVSkJRWEZDTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExHRkJRV0VzU1VGQlNTeEhRVUZITEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU1zUlVGQlJUdG5Ra0ZEZWtjc1RVRkJUU3hKUVVGSkxFZEJRVWtzUjBGQlJ5eERRVUZETEdGQlFXRXNTVUZCU1N4SFFVRkhMRU5CUVVNc1ZVRkJWU3hEUVVGRE8yZENRVVZzUkN4alFVRmpMRU5CUVVNc1NVRkJTU3hGUVVGRkxHZENRVUZuUWl4RlFVRkZMRTFCUVUwc1EwRkJReXhEUVVGRE8yZENRVU12UXl4alFVRmpMRU5CUVVNc1NVRkJTU3hGUVVGRkxFMUJRVTBzUlVGQlJTeFBRVUZQTEVOQlFVTXNRMEZCUXp0blFrRkZkRU1zT0VaQlFUaEdPMmRDUVVNNVJpeFZRVUZWTEVOQlFVTXNSMEZCUnl4RlFVRkZMRU5CUVVNc1QwRkJUeXhEUVVGRExFOUJRVThzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1QwRkJUeXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1UwRkJVeXhEUVVGRExFVkJRVVVzUlVGQlJTeERRVUZETEVOQlFVTTdZVUZETDBVN1VVRkRTQ3hEUVVGRExFTkJRVUU3VVVGRlJDeE5RVUZOTEUxQlFVMHNSMEZCUnl4UlFVRlJMRU5CUVVNc1lVRkJZU3hEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETzFGQlJXaEVMRTFCUVUwc1EwRkJReXhGUVVGRkxFZEJRVWNzUlVGQlJTeERRVUZETzFGQlJXWXNkMEpCUVhkQ08xRkJRM2hDTEVsQlFVa3NUVUZCVFN4RFFVRkRMRmRCUVZjc1NVRkJTU3hEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETEZkQlFWY3NRMEZCUXl4UlFVRlJMRWxCUVVrc1RVRkJUU3hEUVVGRExGZEJRVmNzUTBGQlF5eFJRVUZSTEVWQlFVVXNRMEZCUXl4UFFVRlBMRU5CUVVNc1kwRkJZeXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVWQlFVVTdXVUZEY2tnc1lVRkJZVHRaUVVOaUxFMUJRVTBzUTBGQlF5eFhRVUZYTEVOQlFVTXNiMEpCUVc5Q0xFVkJRVVVzWjBKQlFXZENMRU5CUVVNc1EwRkJRenRUUVVNMVJEdGhRVUZOTzFsQlEwd3NUVUZCVFN4RFFVRkRMR2RDUVVGblFpeERRVUZETEUxQlFVMHNSVUZCUlN4blFrRkJaMElzUlVGQlJTeExRVUZMTEVOQlFVTXNRMEZCUXp0WlFVTjZSQ3hOUVVGTkxFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1UwRkJVeXhGUVVGRkxFMUJRVTBzUlVGQlJTeExRVUZMTEVOQlFVTXNRMEZCUXp0VFFVTnVSRHRSUVVWRUxFMUJRVTBzUTBGQlF5eFpRVUZaTEVOQlFVTXNZVUZCWVN4RlFVRkZMRmRCUVZjc1EwRkJReXhEUVVGRE8xRkJRMmhFTEUxQlFVMHNRMEZCUXl4WlFVRlpMRU5CUVVNc1UwRkJVeXhGUVVGRkxFOUJRVThzUTBGQlF5eERRVUZETzFGQlEzaERMRTFCUVUwc1EwRkJReXhaUVVGWkxFTkJRVU1zVDBGQlR5eEZRVUZGTEUxQlFVMHNRMEZCUXl4RFFVRkRPMUZCUlhKRExFMUJRVTBzUTBGQlF5eEhRVUZITEVkQlFVY3NSMEZCUnl4RFFVRkRPMUZCUldwQ0xGRkJRVkVzUTBGQlF5eEpRVUZKTEVOQlFVTXNWMEZCVnl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRE8wbEJRM0JETEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTB3c1EwRkJReXhEUVVGRE8wRkJSVVk3T3pzN096dEhRVTFITzBGQlEwZ3NUVUZCVFN4RFFVRkRMRTFCUVUwc1kwRkJZeXhIUVVGSExFTkJRVU1zUlVGQlZTeEZRVUZGTEZGQlFXRXNSVUZCUlN4UlFVRmpMRVZCUVVVc1JVRkJSVHRKUVVNeFJTeHZRMEZCYjBNN1NVRkRjRU1zU1VGQlNTeE5RVUZOTEVsQlFVa3NUMEZCVHl4TlFVRk5MRXRCUVVzc1VVRkJVU3hGUVVGRk8xRkJRM2hETEU5QlFVODdTMEZEVWp0SlFVVkVMRWxCUVVrc1EwRkJReXhGUVVGRkxFVkJRVVU3VVVGRFVDeE5RVUZOTEVsQlFVa3NTMEZCU3l4RFFVRkRMSFZDUVVGMVFpeERRVUZETEVOQlFVRTdTMEZEZWtNN1NVRkZSQ3hKUVVGSkxFTkJRVU1zVDBGQlR5eEZRVUZGTzFGQlExb3NUVUZCVFN4SlFVRkpMRXRCUVVzc1EwRkJReXd5UWtGQk1rSXNRMEZCUXl4RFFVRkJPMHRCUXpkRE8wbEJSVVFzUlVGQlJTeEhRVUZITEdGQlFXRXNSMEZCUnl4RlFVRkZMRU5CUVVNN1NVRkZlRUlzU1VGQlNTeFBRVUZQTEVOQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVVN1VVRkRaaXhQUVVGUExFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NSVUZCUlN4UlFVRlJMRVZCUVVVc1VVRkJVU3hGUVVGRkxFTkJRVUU3UzBGRGNrTTdRVUZEU0N4RFFVRkRMRU5CUVVNN1FVRkZSanM3T3p0SFFVbEhPMEZCUTBnc1RVRkJUU3hEUVVGRExFMUJRVTBzVDBGQlR5eEhRVUZITEVOQlFVTXNSMEZCUnl4RlFVRkZMRVZCUVVVN1NVRkROMElzVFVGQlRTeHRRa0ZCYlVJc1IwRkJSeXhSUVVGUkxFTkJRVU1zWVVGQllTeERRVUZETEdOQlFXTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1EwRkJRenRKUVVNeFJTeEpRVUZKTEcxQ1FVRnRRaXhMUVVGTExFbEJRVWtzUlVGQlJUdFJRVU5vUXl4UFFVRlBMRTlCUVU4c1EwRkJReXhQUVVGUExFVkJRVVVzUTBGQlF6dExRVU14UWp0SlFVVkVMRTlCUVU4c1NVRkJTU3hQUVVGUExFTkJRVU1zUTBGQlF5eFBRVUZQTEVWQlFVVXNSVUZCUlR0UlFVTTNRaXhOUVVGTkxFbEJRVWtzUjBGQlJ5eFJRVUZSTEVOQlFVTXNiMEpCUVc5Q0xFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRkRVFzVFVGQlRTeEpRVUZKTEVkQlFVY3NVVUZCVVN4RFFVRkRMR0ZCUVdFc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF6dFJRVVUxUXl4TlFVRk5MRTFCUVUwc1IwRkJSeXhIUVVGSExFVkJRVVU3V1VGRGJFSXNUMEZCVHl4RlFVRkZMRU5CUVVNN1dVRkRWaXhKUVVGSkxFTkJRVU1zYlVKQlFXMUNMRU5CUVVNc1RVRkJUU3hGUVVGRkxFMUJRVTBzUTBGQlF5eERRVUZETzFGQlF6TkRMRU5CUVVNc1EwRkJRenRSUVVWR0xFbEJRVWtzUTBGQlF5eEhRVUZITEVkQlFVY3NXVUZCV1N4RFFVRkRPMUZCUTNoQ0xFbEJRVWtzUTBGQlF5eEpRVUZKTEVkQlFVY3NSMEZCUnl4RFFVRkRPMUZCUTJoQ0xFbEJRVWtzUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXhOUVVGTkxFVkJRVVVzVFVGQlRTeERRVUZETEVOQlFVTTdVVUZEZEVNc1NVRkJTU3hEUVVGRExGZEJRVmNzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0SlFVTjZRaXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU5NTEVOQlFVTXNRMEZCUXp0QlFVVkdPenRIUVVWSE8wRkJRMGdzVFVGQlRTeERRVUZPTEVsQlFWa3NhVUpCU1ZnN1FVRktSQ3hYUVVGWkxHbENRVUZwUWp0SlFVTXpRaXh2UkVGQkswSXNRMEZCUVR0SlFVTXZRaXh2UkVGQkswSXNRMEZCUVR0SlFVTXZRaXh6UTBGQmFVSXNRMEZCUVR0QlFVTnVRaXhEUVVGRExFVkJTbGNzYVVKQlFXbENMRXRCUVdwQ0xHbENRVUZwUWl4UlFVazFRanRCUVVGQkxFTkJRVU1pTENKemIzVnlZMlZ6UTI5dWRHVnVkQ0k2V3lKamIyNXpkQ0JOVDBSVlRFVmZVRkpGUmtsWUlEMGdKMlp6TFd4dllXUmxjaTBuTzF4dVkyOXVjM1FnWjJ4dlltRnNTRzlzWkdWeU9pQmhibmtnUFNCN2ZUdGNibHh1Wlhod2IzSjBJSFI1Y0dVZ1RXOWtkV3hsUkdWbUlEMGdlMXh1SUNCd2NtOXRhWE5sUHpvZ1VISnZiV2x6WlR4aGJuaytYRzRnSUhKbGMyOXNkbVZRY205dGFYTmxQem9nWVc1NU8xeHVJQ0JwYm5OMFlXNWpaVDg2SUdGdWVUdGNiaUFnYldWMFlXUmhkR0UvT2lCaGJuazdYRzU5WEc1Y2JtVjRjRzl5ZENCMGVYQmxJRTVoYldWemNHRmpaU0E5SUh0Y2JpQWdJQ0J0YjJSMWJHVnpPaUI3WEc0Z0lDQWdJRnRyWlhrNklITjBjbWx1WjEwNklFMXZaSFZzWlVSbFpseHVJQ0FnSUgxY2JuMDdYRzVjYm1OdmJuTjBJR2x1YVhScFlXeHBlbVZIYkc5aVlXeE9ZVzFsYzNCaFkyVWdQU0FvS1NBOVBpQjdYRzRnSUd4bGRDQm9iMnhrWlhJNllXNTVPMXh1WEc0Z0lDOHZJR2xtSUhSb1pYSmxJR2x6SUc1dklIZHBibVJ2ZHlCdlltb2dkWE5sSUc1dlpHVnFjeUJuYkc5aVlXd2diR2xpSUhaaGNtbGhZbXhsWEc0Z0lHbG1JQ2gzYVc1a2IzY2dKaVlnZEhsd1pXOW1JSGRwYm1SdmR5QWhQVDBnSjI5aWFtVmpkQ2NwSUh0Y2JpQWdJQ0JvYjJ4a1pYSWdQU0JuYkc5aVlXeEliMnhrWlhJN1hHNGdJSDBnWld4elpTQjdYRzRnSUNBZ2FHOXNaR1Z5SUQwZ2QybHVaRzkzWEc0Z0lIMWNibHh1SUNBdkx5QkFkSE10YVdkdWIzSmxYRzRnSUd4bGRDQnVZVzFsYzNCaFkyVTZJRTVoYldWemNHRmpaU0E5SUdodmJHUmxjaTVtYVd4bGMzUmhZMnRKYm5SbGNtNWhiSE03WEc1Y2JpQWdhV1lnS0NGdVlXMWxjM0JoWTJVcElIdGNiaUFnSUNCdVlXMWxjM0JoWTJVZ1BTQjdYRzRnSUNBZ0lDQnRiMlIxYkdWek9pQjdmU3hjYmlBZ0lDQjlPMXh1WEc0Z0lDQWdMeThnUUhSekxXbG5ibTl5WlZ4dUlDQWdJSGRwYm1SdmR5NW1hV3hsYzNSaFkydEpiblJsY201aGJITWdQU0J1WVcxbGMzQmhZMlU3WEc0Z0lIMWNibHh1SUNCcFppQW9JVzVoYldWemNHRmpaUzV0YjJSMWJHVnpLU0I3WEc0Z0lDQWdibUZ0WlhOd1lXTmxMbTF2WkhWc1pYTWdQU0I3ZlR0Y2JpQWdmVnh1SUNCY2JpQWdjbVYwZFhKdUlHNWhiV1Z6Y0dGalpUdGNibjA3WEc1Y2JtTnZibk4wSUdacGJHVnpkR0ZqYTBsdWRHVnlibUZzY3lBOUlHbHVhWFJwWVd4cGVtVkhiRzlpWVd4T1lXMWxjM0JoWTJVb0tUdGNibU52Ym5OMElHMXZaSFZzWlhNZ1BTQm1hV3hsYzNSaFkydEpiblJsY201aGJITWdKaVlnWm1sc1pYTjBZV05yU1c1MFpYSnVZV3h6TG0xdlpIVnNaWE03WEc1Y2JpOHFLbHh1SUNvZ1VtVnRiM1psSUd4cGMzUmxibVZ5Y3lBb1luSnZkM05sY2lCamIyMXdZWFJwWW14bEtWeHVJQ29nWEc0Z0tpQkFjR0Z5WVcwZ2JtOWtaU0JjYmlBcUlFQndZWEpoYlNCbWRXNWpJRnh1SUNvZ1FIQmhjbUZ0SUc1aGJXVWdYRzRnS2k5Y2JtTnZibk4wSUhKbGJXOTJaVXhwYzNSbGJtVnlJRDBnS0c1dlpHVXNJR1oxYm1Nc0lHNWhiV1VzSUNrZ1BUNGdlMXh1SUNCcFppQW9ibTlrWlM1a1pYUmhZMmhGZG1WdWRDa2dlMXh1SUNBZ0lHNXZaR1V1WkdWMFlXTm9SWFpsYm5Rb0oyOXVjbVZoWkhsemRHRjBaV05vWVc1blpTY3NJR1oxYm1NcE8xeHVJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lHNXZaR1V1Y21WdGIzWmxSWFpsYm5STWFYTjBaVzVsY2lodVlXMWxMQ0JtZFc1akxDQm1ZV3h6WlNrN1hHNGdJSDFjYm4xY2JseHVMeW9xWEc0Z0tpQk1iMkZrSUcxMWJIUnBjR3hsSUcxdlpIVnNaWE5jYmlBcUlGeHVJQ29nUUhCaGNtRnRJSHNxZlNCdGIyUjFiR1Z6SUZ4dUlDb3ZYRzVsZUhCdmNuUWdZMjl1YzNRZ2JHOWhaRTF2WkhWc1pYTWdQU0FvYlc5a2RXeGxjMHhwYzNRcElEMCtJRkJ5YjIxcGMyVXVZV3hzS0cxdlpIVnNaWE5NYVhOMExtMWhjQ2dvZXlCcFpDd2dkWEpzSUgwcElEMCtJR3h2WVdSTmIyUjFiR1VvYVdRc0lIVnliQ2twS1M1MGFHVnVLQ2h5WlhNcElEMCtJSHRjYmlBZ1kyOXVjM1FnZEc5U1pYUjFjbTRnUFNCN2ZUdGNibHh1SUNCeVpYTXVabTl5UldGamFDZ29iVzlrTENCcFpIZ3BJRDArSUh0Y2JpQWdJQ0JqYjI1emRDQmxiQ0E5SUcxdlpIVnNaWE5NYVhOMFcybGtlRjA3WEc0Z0lDQWdkRzlTWlhSMWNtNWJaV3d1YVdSZElEMGdiVzlrTzF4dUlDQjlLVHRjYmx4dUlDQnlaWFIxY200Z2RHOVNaWFIxY200N1hHNTlLVHRjYmx4dUx5b3FYRzRnS2lCTWIyRmtJSE5wYm1kc1pTQnRiMlIxYkdVZ1puSnZiU0IxY213Z2QybDBhQ0JuYVhabGJpQnBaRnh1SUNwY2JpQXFJRUJ3WVhKaGJTQjdLbjBnYVdRZ0xTQnRiMlIxYkdVZ2FXUWdYRzRnS2lCQWNHRnlZVzBnZXlwOUlIVnliRnh1SUNvdlhHNWxlSEJ2Y25RZ1kyOXVjM1FnYkc5aFpFMXZaSFZzWlNBOUlDaHBaRG9nYzNSeWFXNW5MQ0IxY213NklITjBjbWx1WnlrZ1BUNGdlMXh1SUNCcFppQW9kMmx1Wkc5M0lDWW1JSFI1Y0dWdlppQjNhVzVrYjNjZ0lUMDlJQ2R2WW1wbFkzUW5LU0I3WEc0Z0lDQWdjbVYwZFhKdUlGQnliMjFwYzJVdWNtVnFaV04wS0c1bGR5QkZjbkp2Y2lnblRHOWhaQ0J0YjJSMWJHVWdhWE1nZDI5eWEybHVaeUJ2Ym14NUlHOXVJR0p5YjNkelpYSWdaVzUySnlrcE8xeHVJQ0I5WEc1Y2JpQWdhV1lnS0NGcFpDa2dlMXh1SUNBZ0lIUm9jbTkzSUc1bGR5QkZjbkp2Y2lnblRXOWtkV3hsSUdsa0lHbHpJSEpsY1hWcGNtVmtKeWxjYmlBZ2ZWeHVYRzRnSUd4bGRDQnRiMlIxYkdWRVpXWnBibWwwYVc5dUlEMGdiVzlrZFd4bGMxdHBaRjA3WEc1Y2JpQWdhV1FnUFNBZ1RVOUVWVXhGWDFCU1JVWkpXQ0FySUdsa08xeHVYRzRnSUdsbUlDZ2hiVzlrZFd4bFJHVm1hVzVwZEdsdmJpa2dlMXh1SUNBZ0lHMXZaSFZzWlhOYmFXUmRJRDBnZTMwN1hHNGdJQ0FnYlc5a2RXeGxSR1ZtYVc1cGRHbHZiaUE5SUcxdlpIVnNaWE5iYVdSZE8xeHVJQ0I5WEc1Y2JpQWdhV1lnS0cxdlpIVnNaVVJsWm1sdWFYUnBiMjR1YVc1emRHRnVZMlVwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdVSEp2YldselpTNXlaWE52YkhabEtHMXZaSFZzWlVSbFptbHVhWFJwYjI0dWFXNXpkR0Z1WTJVcE8xeHVJQ0I5WEc1Y2JpQWdhV1lnS0cxdlpIVnNaVVJsWm1sdWFYUnBiMjR1Y0hKdmJXbHpaU2tnZTF4dUlDQWdJSEpsZEhWeWJpQnRiMlIxYkdWRVpXWnBibWwwYVc5dUxuQnliMjFwYzJVN1hHNGdJSDFjYmx4dUlDQnlaWFIxY200Z2JXOWtkV3hsUkdWbWFXNXBkR2x2Ymk1d2NtOXRhWE5sSUQwZ2JtVjNJRkJ5YjIxcGMyVW9LSEpsYzI5c2RtVXNJSEpsYW1WamRDa2dQVDRnZTF4dUlDQWdJR052Ym5OMElISmxZV1I1VTNSaGRHVkRhR0Z1WjJVZ1BTQW9aWFowT2lCaGJua3BJRDArSUh0Y2JpQWdJQ0FnSUdsbUlDaGxkblF1ZEhsd1pTQTlQVDBnSjJ4dllXUW5JSHg4SUNndlhpaGpiMjF3YkdWMFpYeHNiMkZrWldRcEpDOHVkR1Z6ZENnb1pYWjBMbU4xY25KbGJuUlVZWEpuWlhRZ2ZId2daWFowTG5OeVkwVnNaVzFsYm5RcExuSmxZV1I1VTNSaGRHVXBLU2tnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0J1YjJSbElEMGdJR1YyZEM1amRYSnlaVzUwVkdGeVoyVjBJSHg4SUdWMmRDNXpjbU5GYkdWdFpXNTBPMXh1WEc0Z0lDQWdJQ0FnSUhKbGJXOTJaVXhwYzNSbGJtVnlLRzV2WkdVc0lISmxZV1I1VTNSaGRHVkRhR0Z1WjJVc0lDZHNiMkZrSnlrN1hHNGdJQ0FnSUNBZ0lISmxiVzkyWlV4cGMzUmxibVZ5S0c1dlpHVXNJSEpsYW1WamRDd2dKMlZ5Y205eUp5azdYRzVjYmlBZ0lDQWdJQ0FnTHk4Z2MyeHZkeUJrYjNjZ1kyaGxZMnRwYm1jZ2FXWWdiVzlrZFd4bElHbHpJR3h2WVdSbFpDQjBieUJsYm5OMWNtVWdkR2hoZENCelkzSnBjSFFnZEdoaGRDQWdjbVZuYVhOMFpYSWdiVzlrZFd4bElHbHpJR05oYkd4bFpGeHVJQ0FnSUNBZ0lDQnpaWFJVYVcxbGIzVjBLQ2dwSUQwK0lISmxjMjlzZG1Vb2JXOWtkV3hsYzF0cFpGMGdQeUJ0YjJSMWJHVnpXMmxrWFM1cGJuTjBZVzVqWlNBNklIVnVaR1ZtYVc1bFpDa3NJREV3S1R0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0I5WEc1Y2JpQWdJQ0JqYjI1emRDQnpZM0pwY0hRZ1BTQmtiMk4xYldWdWRDNWpjbVZoZEdWRmJHVnRaVzUwS0NkelkzSnBjSFFuS1R0Y2JpQWdJQ0JjYmlBZ0lDQnpZM0pwY0hRdWFXUWdQU0JwWkR0Y2JseHVJQ0FnSUM4dklFQjBjeTFwWjI1dmNtVWdabWw0SUdadmNpQkpSVnh1SUNBZ0lHbG1JQ2h6WTNKcGNIUXVZWFIwWVdOb1JYWmxiblFnSmlZZ0lTaHpZM0pwY0hRdVlYUjBZV05vUlhabGJuUXVkRzlUZEhKcGJtY2dKaVlnYzJOeWFYQjBMbUYwZEdGamFFVjJaVzUwTG5SdlUzUnlhVzVuS0NrdWFXNWtaWGhQWmlnblcyNWhkR2wyWlNCamIyUmxKeWtnUENBd0tTa2dlMXh1SUNBZ0lDQWdMeThnUUhSekxXbG5ibTl5WlZ4dUlDQWdJQ0FnYzJOeWFYQjBMbUYwZEdGamFFVjJaVzUwS0NkdmJuSmxZV1I1YzNSaGRHVmphR0Z1WjJVbkxDQnlaV0ZrZVZOMFlYUmxRMmhoYm1kbEtUdGNiaUFnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnYzJOeWFYQjBMbUZrWkVWMlpXNTBUR2x6ZEdWdVpYSW9KMnh2WVdRbkxDQnlaV0ZrZVZOMFlYUmxRMmhoYm1kbExDQm1ZV3h6WlNrN1hHNGdJQ0FnSUNCelkzSnBjSFF1WVdSa1JYWmxiblJNYVhOMFpXNWxjaWduYjI1bGNuSnZjaWNzSUhKbGFtVmpkQ3dnWm1Gc2MyVXBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lITmpjbWx3ZEM1elpYUkJkSFJ5YVdKMWRHVW9KMk55YjNOemIzSnBaMmx1Snl3Z0oyRnViMjU1Ylc5MWN5Y3BPMXh1SUNBZ0lITmpjbWx3ZEM1elpYUkJkSFJ5YVdKMWRHVW9KMk5vWVhKelpYUW5MQ0FuZFhSbUxUZ25LVHRjYmlBZ0lDQnpZM0pwY0hRdWMyVjBRWFIwY21saWRYUmxLQ2RoYzNsdVl5Y3NJQ2QwY25WbEp5azdYRzVjYmlBZ0lDQnpZM0pwY0hRdWMzSmpJRDBnZFhKc08xeHVYRzRnSUNBZ1pHOWpkVzFsYm5RdVltOWtlUzVoY0hCbGJtUkRhR2xzWkNoelkzSnBjSFFwTzF4dUlDQjlLVHRjYm4wN1hHNWNiaThxS2x4dUlDb2dVbVZuYVhOMFpYSWdkR2hoZENCdGIyUjFiR1VnYVhNZ2NtVmhaSGxjYmlBcUlGeHVJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJR2xrSUZ4dUlDb2dRSEJoY21GdElIdGhibmw5SUdsdWMzUmhibU5sSUZ4dUlDb2dRSEJoY21GdElIdGhibmw5SUcxbGRHRmtZWFJoSUMwZ1lXUmthWFJwYjI1aGJDQnRiMlIxYkdVZ2JXVjBZV1JoZEdFZ2JHbHJaU0IyWlhKemFXOXVYRzRnS2k5Y2JtVjRjRzl5ZENCamIyNXpkQ0J5WldkcGMzUmxjazF2WkhWc1pTQTlJQ2hwWkRvZ2MzUnlhVzVuTENCcGJuTjBZVzVqWlRvZ1lXNTVMQ0J0WlhSaFpHRjBZVDg2SUdGdWVTa2dQVDRnZTF4dUlDQXZMeUJzYjJGa1pYSWdibTkwSUhkdmNtdHBibWNnYjI0Z2JtOWtaV3B6SUdWdWRuTmNiaUFnYVdZZ0tIZHBibVJ2ZHlBbUppQjBlWEJsYjJZZ2QybHVaRzkzSUNFOVBTQW5iMkpxWldOMEp5a2dlMXh1SUNBZ0lISmxkSFZ5Ymp0Y2JpQWdmVnh1WEc0Z0lHbG1JQ2doYVdRcElIdGNiaUFnSUNCMGFISnZkeUJ1WlhjZ1JYSnliM0lvSjAxdlpIVnNaU0JwWkNCcGN5QnlaWEYxYVhKbFpDY3BYRzRnSUgxY2JseHVJQ0JwWmlBb0lXMXZaSFZzWlhNcElIdGNiaUFnSUNCMGFISnZkeUJ1WlhjZ1JYSnliM0lvSjB4dllXUmxjaUJwY3lCdWIzUWdhVzVwZEdsaGJHbDZaV1FuS1Z4dUlDQjlYRzVjYmlBZ2FXUWdQU0JOVDBSVlRFVmZVRkpGUmtsWUlDc2dhV1E3WEc1Y2JpQWdhV1lnS0cxdlpIVnNaWE5iYVdSZEtTQjdYRzRnSUNBZ2JXOWtkV3hsYzF0cFpGMGdQU0I3SUdsdWMzUmhibU5sTENCdFpYUmhaR0YwWVNCOVhHNGdJSDFjYm4wN1hHNWNiaThxS2x4dUlDb2dURzloWkNCbGVIUmxjbTVoYkNCamMzTWdabkp2YlNCbmFYWmxiaUIxY214Y2JpQXFJRnh1SUNvZ1FIQmhjbUZ0SUhzcWZTQjFjbXdnWEc0Z0tpOWNibVY0Y0c5eWRDQmpiMjV6ZENCc2IyRmtRM056SUQwZ0tIVnliQ2tnUFQ0Z2UxeHVJQ0JqYjI1emRDQmhiSEpsWVdSNVFXUmtaV1JVYUdselZHRm5JRDBnWkc5amRXMWxiblF1Y1hWbGNubFRaV3hsWTNSdmNpaGdiR2x1YTF0b2NtVm1QVndpSkh0MWNteDlYQ0pkWUNrN1hHNGdJR2xtSUNoaGJISmxZV1I1UVdSa1pXUlVhR2x6VkdGbklDRTlQU0J1ZFd4c0tTQjdYRzRnSUNBZ2NtVjBkWEp1SUZCeWIyMXBjMlV1Y21WemIyeDJaU2dwTzF4dUlDQjlYRzVjYmlBZ2NtVjBkWEp1SUc1bGR5QlFjbTl0YVhObEtDaHlaWE52YkhabEtTQTlQaUI3WEc0Z0lDQWdZMjl1YzNRZ2FHVmhaQ0E5SUdSdlkzVnRaVzUwTG1kbGRFVnNaVzFsYm5SelFubFVZV2RPWVcxbEtDZG9aV0ZrSnlsYk1GMDdYRzRnSUNBZ1kyOXVjM1FnYkdsdWF5QTlJR1J2WTNWdFpXNTBMbU55WldGMFpVVnNaVzFsYm5Rb0oyeHBibXNuS1R0Y2JseHVJQ0FnSUdOdmJuTjBJR3h2WVdSbFpDQTlJQ2dwSUQwK0lIdGNiaUFnSUNBZ0lISmxjMjlzZG1Vb0tUdGNiaUFnSUNBZ0lHeHBibXN1Y21WdGIzWmxSWFpsYm5STWFYTjBaVzVsY2lnbmJHOWhaQ2NzSUd4dllXUmxaQ2s3WEc0Z0lDQWdmVHRjYmx4dUlDQWdJR3hwYm1zdWNtVnNJRDBnSjNOMGVXeGxjMmhsWlhRbk8xeHVJQ0FnSUd4cGJtc3VhSEpsWmlBOUlIVnliRHRjYmlBZ0lDQnNhVzVyTG1Ga1pFVjJaVzUwVEdsemRHVnVaWElvSjJ4dllXUW5MQ0JzYjJGa1pXUXBPMXh1SUNBZ0lHaGxZV1F1WVhCd1pXNWtRMmhwYkdRb2JHbHVheWs3WEc0Z0lIMHBPMXh1ZlR0Y2JseHVMeW9xWEc0Z0tpQkZiblZ0SUdwMWMzUWdabTl5SUhWdWFXWjVJR1pwYkdWemRHRmpheUJ0YjJSMWJHVWdibUZ0WlhOY2JpQXFMMXh1Wlhod2IzSjBJR1Z1ZFcwZ1JrbE1SVk5VUVVOTFgwMVBSRlZNUlZNZ2UxeHVJQ0JHU1V4RlUxUkJRMHRmVTBSTElEMGdKMlpwYkdWemRHRmpheTF6WkdzbkxGeHVJQ0JVVWtGT1UwWlBVazFUWDFWSklEMGdKM1J5WVc1elptOXliWE10ZFdrbkxGeHVJQ0JRU1VOTFJWSWdQU0FuY0dsamEyVnlKeXhjYm4wN1hHNGlYWDA9Il0sInNvdXJjZVJvb3QiOiIifQ==
const MODULE_PREFIX = 'fs-loader-';
const globalHolder = {};
const initializeGlobalNamespace = () => {
let holder = window;
let holder;
// if there is no window obj use nodejs global lib variable
if (typeof holder !== 'object') {
if (window && typeof window !== 'object') {
holder = globalHolder;
}
else {
holder = window;
}
// @ts-ignore

@@ -60,2 +63,5 @@ let namespace = holder.filestackInternals;

export const loadModule = (id, url) => {
if (window && typeof window !== 'object') {
return Promise.reject(new Error('Load module is working only on browser env'));
}
if (!id) {

@@ -112,2 +118,6 @@ throw new Error('Module id is required');

export const registerModule = (id, instance, metadata) => {
// loader not working on nodejs envs
if (window && typeof window !== 'object') {
return;
}
if (!id) {

@@ -157,2 +167,2 @@ throw new Error('Module id is required');

;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxhQUFhLEdBQUcsWUFBWSxDQUFDO0FBQ25DLE1BQU0sWUFBWSxHQUFRLEVBQUUsQ0FBQztBQWU3QixNQUFNLHlCQUF5QixHQUFHLEdBQUcsRUFBRTtJQUNyQyxJQUFJLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFFcEIsMkRBQTJEO0lBQzNELElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxFQUFFO1FBQzlCLE1BQU0sR0FBRyxZQUFZLENBQUM7S0FDdkI7SUFFRCxhQUFhO0lBQ2IsSUFBSSxTQUFTLEdBQWMsTUFBTSxDQUFDLGtCQUFrQixDQUFDO0lBRXJELElBQUksQ0FBQyxTQUFTLEVBQUU7UUFDZCxTQUFTLEdBQUc7WUFDVixPQUFPLEVBQUUsRUFBRTtTQUNaLENBQUM7UUFFRixhQUFhO1FBQ2IsTUFBTSxDQUFDLGtCQUFrQixHQUFHLFNBQVMsQ0FBQztLQUN2QztJQUVELElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFO1FBQ3RCLFNBQVMsQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO0tBQ3hCO0lBRUQsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxrQkFBa0IsR0FBRyx5QkFBeUIsRUFBRSxDQUFDO0FBQ3ZELE1BQU0sT0FBTyxHQUFHLGtCQUFrQixJQUFJLGtCQUFrQixDQUFDLE9BQU8sQ0FBQztBQUVqRTs7Ozs7O0dBTUc7QUFDSCxNQUFNLGNBQWMsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFJLEVBQUU7SUFDNUMsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1FBQ3BCLElBQUksQ0FBQyxXQUFXLENBQUMsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLENBQUM7S0FDOUM7U0FBTTtRQUNMLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUs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QWpCLGlCQUFpQixRQUk1QjtBQUFBLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBNT0RVTEVfUFJFRklYID0gJ2ZzLWxvYWRlci0nO1xuY29uc3QgZ2xvYmFsSG9sZGVyOiBhbnkgPSB7fTtcblxuZXhwb3J0IHR5cGUgTW9kdWxlRGVmID0ge1xuICBwcm9taXNlPzogUHJvbWlzZTxhbnk+XG4gIHJlc29sdmVQcm9taXNlPzogYW55O1xuICBpbnN0YW5jZT86IGFueTtcbiAgbWV0YWRhdGE/OiBhbnk7XG59XG5cbmV4cG9ydCB0eXBlIE5hbWVzcGFjZSA9IHtcbiAgICBtb2R1bGVzOiB7XG4gICAgIFtrZXk6IHN0cmluZ106IE1vZHVsZURlZlxuICAgIH1cbn07XG5cbmNvbnN0IGluaXRpYWxpemVHbG9iYWxOYW1lc3BhY2UgPSAoKSA9PiB7XG4gIGxldCBob2xkZXIgPSB3aW5kb3c7XG5cbiAgLy8gaWYgdGhlcmUgaXMgbm8gd2luZG93IG9iaiB1c2Ugbm9kZWpzIGdsb2JhbCBsaWIgdmFyaWFibGVcbiAgaWYgKHR5cGVvZiBob2xkZXIgIT09ICdvYmplY3QnKSB7XG4gICAgaG9sZGVyID0gZ2xvYmFsSG9sZGVyO1xuICB9XG5cbiAgLy8gQHRzLWlnbm9yZVxuICBsZXQgbmFtZXNwYWNlOiBOYW1lc3BhY2UgPSBob2xkZXIuZmlsZXN0YWNrSW50ZXJuYWxzO1xuXG4gIGlmICghbmFtZXNwYWNlKSB7XG4gICAgbmFtZXNwYWNlID0ge1xuICAgICAgbW9kdWxlczoge30sXG4gICAgfTtcblxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICB3aW5kb3cuZmlsZXN0YWNrSW50ZXJuYWxzID0gbmFtZXNwYWNlO1xuICB9XG5cbiAgaWYgKCFuYW1lc3BhY2UubW9kdWxlcykge1xuICAgIG5hbWVzcGFjZS5tb2R1bGVzID0ge307XG4gIH1cbiAgXG4gIHJldHVybiBuYW1lc3BhY2U7XG59O1xuXG5jb25zdCBmaWxlc3RhY2tJbnRlcm5hbHMgPSBpbml0aWFsaXplR2xvYmFsTmFtZXNwYWNlKCk7XG5jb25zdCBtb2R1bGVzID0gZmlsZXN0YWNrSW50ZXJuYWxzICYmIGZpbGVzdGFja0ludGVybmFscy5tb2R1bGVzO1xuXG4vKipcbiAqIFJlbW92ZSBsaXN0ZW5lcnMgKGJyb3dzZXIgY29tcGF0aWJsZSlcbiAqIFxuICogQHBhcmFtIG5vZGUgXG4gKiBAcGFyYW0gZnVuYyBcbiAqIEBwYXJhbSBuYW1lIFxuICovXG5jb25zdCByZW1vdmVMaXN0ZW5lciA9IChub2RlLCBmdW5jLCBuYW1lLCApID0+IHtcbiAgaWYgKG5vZGUuZGV0YWNoRXZlbnQpIHtcbiAgICBub2RlLmRldGFjaEV2ZW50KCdvbnJlYWR5c3RhdGVjaGFuZ2UnLCBmdW5jKTtcbiAgfSBlbHNlIHtcbiAgICBub2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIobmFtZSwgZnVuYywgZmFsc2UpO1xuICB9XG59XG5cbi8qKlxuICogTG9hZCBtdWx0aXBsZSBtb2R1bGVzXG4gKiBcbiAqIEBwYXJhbSB7Kn0gbW9kdWxlcyBcbiAqL1xuZXhwb3J0IGNvbnN0IGxvYWRNb2R1bGVzID0gKG1vZHVsZXNMaXN0KSA9PiBQcm9taXNlLmFsbChtb2R1bGVzTGlzdC5tYXAoKHsgaWQsIHVybCB9KSA9PiBsb2FkTW9kdWxlKGlkLCB1cmwpKSkudGhlbigocmVzKSA9PiB7XG4gIGNvbnN0IHRvUmV0dXJuID0ge307XG5cbiAgcmVzLmZvckVhY2goKG1vZCwgaWR4KSA9PiB7XG4gICAgY29uc3QgZWwgPSBtb2R1bGVzTGlzdFtpZHhdO1xuICAgIHRvUmV0dXJuW2VsLmlkXSA9IG1vZDtcbiAgfSk7XG5cbiAgcmV0dXJuIHRvUmV0dXJuO1xufSk7XG5cbi8qKlxuICogTG9hZCBzaW5nbGUgbW9kdWxlIGZyb20gdXJsIHdpdGggZ2l2ZW4gaWRcbiAqXG4gKiBAcGFyYW0geyp9IGlkIC0gbW9kdWxlIGlkIFxuICogQHBhcmFtIHsqfSB1cmxcbiAqL1xuZXhwb3J0IGNvbnN0IGxvYWRNb2R1bGUgPSAoaWQ6IHN0cmluZywgdXJsOiBzdHJpbmcpID0+IHtcbiAgaWYgKCFpZCkge1xuICAgIHRocm93IG5ldyBFcnJvcignTW9kdWxlIGlkIGlzIHJlcXVpcmVkJylcbiAgfVxuXG4gIGxldCBtb2R1bGVEZWZpbml0aW9uID0gbW9kdWxlc1tpZF07XG5cbiAgaWQgPSAgTU9EVUxFX1BSRUZJWCArIGlkO1xuXG4gIGlmICghbW9kdWxlRGVmaW5pdGlvbikge1xuICAgIG1vZHVsZXNbaWRdID0ge307XG4gICAgbW9kdWxlRGVmaW5pdGlvbiA9IG1vZHVsZXNbaWRdO1xuICB9XG5cbiAgaWYgKG1vZHVsZURlZmluaXRpb24uaW5zdGFuY2UpIHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG1vZHVsZURlZmluaXRpb24uaW5zdGFuY2UpO1xuICB9XG5cbiAgaWYgKG1vZHVsZURlZmluaXRpb24ucHJvbWlzZSkge1xuICAgIHJldHVybiBtb2R1bGVEZWZpbml0aW9uLnByb21pc2U7XG4gIH1cblxuICByZXR1cm4gbW9kdWxlRGVmaW5pdGlvbi5wcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGNvbnN0IHJlYWR5U3RhdGVDaGFuZ2UgPSAoZXZ0OiBhbnkpID0+IHtcbiAgICAgIGlmIChldnQudHlwZSA9PT0gJ2xvYWQnIHx8ICgvXihjb21wbGV0ZXxsb2FkZWQpJC8udGVzdCgoZXZ0LmN1cnJlbnRUYXJnZXQgfHwgZXZ0LnNyY0VsZW1lbnQpLnJlYWR5U3RhdGUpKSkge1xuICAgICAgICBjb25zdCBub2RlID0gIGV2dC5jdXJyZW50VGFyZ2V0IHx8IGV2dC5zcmNFbGVtZW50O1xuXG4gICAgICAgIHJlbW92ZUxpc3RlbmVyKG5vZGUsIHJlYWR5U3RhdGVDaGFuZ2UsICdsb2FkJyk7XG4gICAgICAgIHJlbW92ZUxpc3RlbmVyKG5vZGUsIHJlamVjdCwgJ2Vycm9yJyk7XG5cbiAgICAgICAgLy8gc2xvdyBkb3cgY2hlY2tpbmcgaWYgbW9kdWxlIGlzIGxvYWRlZCB0byBlbnN1cmUgdGhhdCBzY3JpcHQgdGhhdCAgcmVnaXN0ZXIgbW9kdWxlIGlzIGNhbGxlZFxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHJlc29sdmUobW9kdWxlc1tpZF0gPyBtb2R1bGVzW2lkXS5pbnN0YW5jZSA6IHVuZGVmaW5lZCksIDEwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcbiAgICBcbiAgICBzY3JpcHQuaWQgPSBpZDtcblxuICAgIC8vIEB0cy1pZ25vcmUgZml4IGZvciBJRVxuICAgIGlmIChzY3JpcHQuYXR0YWNoRXZlbnQgJiYgIShzY3JpcHQuYXR0YWNoRXZlbnQudG9TdHJpbmcgJiYgc2NyaXB0LmF0dGFjaEV2ZW50LnRvU3RyaW5nKCkuaW5kZXhPZignW25hdGl2ZSBjb2RlJykgPCAwKSkge1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgc2NyaXB0LmF0dGFjaEV2ZW50KCdvbnJlYWR5c3RhdGVjaGFuZ2UnLCByZWFkeVN0YXRlQ2hhbmdlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2NyaXB0LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCByZWFkeVN0YXRlQ2hhbmdlLCBmYWxzZSk7XG4gICAgICBzY3JpcHQuYWRkRXZlbnRMaXN0ZW5lcignb25lcnJvcicsIHJlamVjdCwgZmFsc2UpO1xuICAgIH1cblxuICAgIHNjcmlwdC5zZXRBdHRyaWJ1dGUoJ2Nyb3Nzb3JpZ2luJywgJ2Fub255bW91cycpO1xuICAgIHNjcmlwdC5zZXRBdHRyaWJ1dGUoJ2NoYXJzZXQnLCAndXRmLTgnKTtcbiAgICBzY3JpcHQuc2V0QXR0cmlidXRlKCdhc3luYycsICd0cnVlJyk7XG5cbiAgICBzY3JpcHQuc3JjID0gdXJsO1xuXG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzY3JpcHQpO1xuICB9KTtcbn07XG5cbi8qKlxuICogUmVnaXN0ZXIgdGhhdCBtb2R1bGUgaXMgcmVhZHlcbiAqIFxuICogQHBhcmFtIHtzdHJpbmd9IGlkIFxuICogQHBhcmFtIHthbnl9IGluc3RhbmNlIFxuICogQHBhcmFtIHthbnl9IG1ldGFkYXRhIC0gYWRkaXRpb25hbCBtb2R1bGUgbWV0YWRhdGEgbGlrZSB2ZXJzaW9uXG4gKi9cbmV4cG9ydCBjb25zdCByZWdpc3Rlck1vZHVsZSA9IChpZDogc3RyaW5nLCBpbnN0YW5jZTogYW55LCBtZXRhZGF0YT86IGFueSkgPT4ge1xuICBpZiAoIWlkKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNb2R1bGUgaWQgaXMgcmVxdWlyZWQnKVxuICB9XG5cbiAgaWYgKCFtb2R1bGVzKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdMb2FkZXIgaXMgbm90IGluaXRpYWxpemVkJylcbiAgfVxuXG4gIGlkID0gTU9EVUxFX1BSRUZJWCArIGlkO1xuXG4gIGlmIChtb2R1bGVzW2lkXSkge1xuICAgIG1vZHVsZXNbaWRdID0geyBpbnN0YW5jZSwgbWV0YWRhdGEgfVxuICB9XG59O1xuXG4vKipcbiAqIExvYWQgZXh0ZXJuYWwgY3NzIGZyb20gZ2l2ZW4gdXJsXG4gKiBcbiAqIEBwYXJhbSB7Kn0gdXJsIFxuICovXG5leHBvcnQgY29uc3QgbG9hZENzcyA9ICh1cmwpID0+IHtcbiAgY29uc3QgYWxyZWFkeUFkZGVkVGhpc1RhZyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYGxpbmtbaHJlZj1cIiR7dXJsfVwiXWApO1xuICBpZiAoYWxyZWFkeUFkZGVkVGhpc1RhZyAhPT0gbnVsbCkge1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgfVxuXG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgIGNvbnN0IGhlYWQgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpWzBdO1xuICAgIGNvbnN0IGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaW5rJyk7XG5cbiAgICBjb25zdCBsb2FkZWQgPSAoKSA9PiB7XG4gICAgICByZXNvbHZlKCk7XG4gICAgICBsaW5rLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBsb2FkZWQpO1xuICAgIH07XG5cbiAgICBsaW5rLnJlbCA9ICdzdHlsZXNoZWV0JztcbiAgICBsaW5rLmhyZWYgPSB1cmw7XG4gICAgbGluay5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgbG9hZGVkKTtcbiAgICBoZWFkLmFwcGVuZENoaWxkKGxpbmspO1xuICB9KTtcbn07XG5cbi8qKlxuICogRW51bSBqdXN0IGZvciB1bmlmeSBmaWxlc3RhY2sgbW9kdWxlIG5hbWVzXG4gKi9cbmV4cG9ydCBlbnVtIEZJTEVTVEFDS19NT0RVTEVTIHtcbiAgRklMRVNUQUNLX1NESyA9ICdmaWxlc3RhY2stc2RrJyxcbiAgVFJBTlNGT1JNU19VSSA9ICd0cmFuc2Zvcm1zLXVpJyxcbiAgUElDS0VSID0gJ3BpY2tlcicsXG59O1xuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxhQUFhLEdBQUcsWUFBWSxDQUFDO0FBQ25DLE1BQU0sWUFBWSxHQUFRLEVBQUUsQ0FBQztBQWU3QixNQUFNLHlCQUF5QixHQUFHLEdBQUcsRUFBRTtJQUNyQyxJQUFJLE1BQVUsQ0FBQztJQUVmLDJEQUEyRDtJQUMzRCxJQUFJLE1BQU0sSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLEVBQUU7UUFDeEMsTUFBTSxHQUFHLFlBQVksQ0FBQztLQUN2QjtTQUFNO1FBQ0wsTUFBTSxHQUFHLE1BQU0sQ0FBQTtLQUNoQjtJQUVELGFBQWE7SUFDYixJQUFJLFNBQVMsR0FBYyxNQUFNLENBQUMsa0JBQWtCLENBQUM7SUFFckQsSUFBSSxDQUFDLFNBQVMsRUFBRTtRQUNkLFNBQVMsR0FBRztZQUNWLE9BQU8sRUFBRSxFQUFFO1NBQ1osQ0FBQztRQUVGLGFBQWE7UUFDYixNQUFNLENBQUMsa0JBQWtCLEdBQUcsU0FBUyxDQUFDO0tBQ3ZDO0lBRUQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUU7UUFDdEIsU0FBUyxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7S0FDeEI7SUFFRCxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDLENBQUM7QUFFRixNQUFNLGtCQUFrQixHQUFHLHlCQUF5QixFQUFFLENBQUM7QUFDdkQsTUFBTSxPQUFPLEdBQUcsa0JBQWtCLElBQUksa0JBQWtCLENBQUMsT0FBTyxDQUFDO0FBRWpFOzs7Ozs7R0FNRztBQUNILE1BQU0sY0FBYyxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUksRUFBRTtJQUM1QyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7UUFDcEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxvQkFBb0IsRUFBRSxJQUFJLENBQUMsQ0FBQztLQUM5QztTQUFNO1FB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QUUsTUFBTSxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxDQUFOLElBQVksaUJBSVg7QUFKRCxXQUFZLGlCQUFpQjtJQUMzQixvREFBK0IsQ0FBQTtJQUMvQixvREFBK0IsQ0FBQTtJQUMvQixzQ0FBaUIsQ0FBQTtBQUNuQixDQUFDLEVBSlcsaUJBQWlCLEtBQWpCLGlCQUFpQixRQUk1QjtBQUFBLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBNT0RVTEVfUFJFRklYID0gJ2ZzLWxvYWRlci0nO1xuY29uc3QgZ2xvYmFsSG9sZGVyOiBhbnkgPSB7fTtcblxuZXhwb3J0IHR5cGUgTW9kdWxlRGVmID0ge1xuICBwcm9taXNlPzogUHJvbWlzZTxhbnk+XG4gIHJlc29sdmVQcm9taXNlPzogYW55O1xuICBpbnN0YW5jZT86IGFueTtcbiAgbWV0YWRhdGE/OiBhbnk7XG59XG5cbmV4cG9ydCB0eXBlIE5hbWVzcGFjZSA9IHtcbiAgICBtb2R1bGVzOiB7XG4gICAgIFtrZXk6IHN0cmluZ106IE1vZHVsZURlZlxuICAgIH1cbn07XG5cbmNvbnN0IGluaXRpYWxpemVHbG9iYWxOYW1lc3BhY2UgPSAoKSA9PiB7XG4gIGxldCBob2xkZXI6YW55O1xuXG4gIC8vIGlmIHRoZXJlIGlzIG5vIHdpbmRvdyBvYmogdXNlIG5vZGVqcyBnbG9iYWwgbGliIHZhcmlhYmxlXG4gIGlmICh3aW5kb3cgJiYgdHlwZW9mIHdpbmRvdyAhPT0gJ29iamVjdCcpIHtcbiAgICBob2xkZXIgPSBnbG9iYWxIb2xkZXI7XG4gIH0gZWxzZSB7XG4gICAgaG9sZGVyID0gd2luZG93XG4gIH1cblxuICAvLyBAdHMtaWdub3JlXG4gIGxldCBuYW1lc3BhY2U6IE5hbWVzcGFjZSA9IGhvbGRlci5maWxlc3RhY2tJbnRlcm5hbHM7XG5cbiAgaWYgKCFuYW1lc3BhY2UpIHtcbiAgICBuYW1lc3BhY2UgPSB7XG4gICAgICBtb2R1bGVzOiB7fSxcbiAgICB9O1xuXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIHdpbmRvdy5maWxlc3RhY2tJbnRlcm5hbHMgPSBuYW1lc3BhY2U7XG4gIH1cblxuICBpZiAoIW5hbWVzcGFjZS5tb2R1bGVzKSB7XG4gICAgbmFtZXNwYWNlLm1vZHVsZXMgPSB7fTtcbiAgfVxuICBcbiAgcmV0dXJuIG5hbWVzcGFjZTtcbn07XG5cbmNvbnN0IGZpbGVzdGFja0ludGVybmFscyA9IGluaXRpYWxpemVHbG9iYWxOYW1lc3BhY2UoKTtcbmNvbnN0IG1vZHVsZXMgPSBmaWxlc3RhY2tJbnRlcm5hbHMgJiYgZmlsZXN0YWNrSW50ZXJuYWxzLm1vZHVsZXM7XG5cbi8qKlxuICogUmVtb3ZlIGxpc3RlbmVycyAoYnJvd3NlciBjb21wYXRpYmxlKVxuICogXG4gKiBAcGFyYW0gbm9kZSBcbiAqIEBwYXJhbSBmdW5jIFxuICogQHBhcmFtIG5hbWUgXG4gKi9cbmNvbnN0IHJlbW92ZUxpc3RlbmVyID0gKG5vZGUsIGZ1bmMsIG5hbWUsICkgPT4ge1xuICBpZiAobm9kZS5kZXRhY2hFdmVudCkge1xuICAgIG5vZGUuZGV0YWNoRXZlbnQoJ29ucmVhZHlzdGF0ZWNoYW5nZScsIGZ1bmMpO1xuICB9IGVsc2Uge1xuICAgIG5vZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcihuYW1lLCBmdW5jLCBmYWxzZSk7XG4gIH1cbn1cblxuLyoqXG4gKiBMb2FkIG11bHRpcGxlIG1vZHVsZXNcbiAqIFxuICogQHBhcmFtIHsqfSBtb2R1bGVzIFxuICovXG5leHBvcnQgY29uc3QgbG9hZE1vZHVsZXMgPSAobW9kdWxlc0xpc3QpID0+IFByb21pc2UuYWxsKG1vZHVsZXNMaXN0Lm1hcCgoeyBpZCwgdXJsIH0pID0+IGxvYWRNb2R1bGUoaWQsIHVybCkpKS50aGVuKChyZXMpID0+IHtcbiAgY29uc3QgdG9SZXR1cm4gPSB7fTtcblxuICByZXMuZm9yRWFjaCgobW9kLCBpZHgpID0+IHtcbiAgICBjb25zdCBlbCA9IG1vZHVsZXNMaXN0W2lkeF07XG4gICAgdG9SZXR1cm5bZWwuaWRdID0gbW9kO1xuICB9KTtcblxuICByZXR1cm4gdG9SZXR1cm47XG59KTtcblxuLyoqXG4gKiBMb2FkIHNpbmdsZSBtb2R1bGUgZnJvbSB1cmwgd2l0aCBnaXZlbiBpZFxuICpcbiAqIEBwYXJhbSB7Kn0gaWQgLSBtb2R1bGUgaWQgXG4gKiBAcGFyYW0geyp9IHVybFxuICovXG5leHBvcnQgY29uc3QgbG9hZE1vZHVsZSA9IChpZDogc3RyaW5nLCB1cmw6IHN0cmluZykgPT4ge1xuICBpZiAod2luZG93ICYmIHR5cGVvZiB3aW5kb3cgIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBFcnJvcignTG9hZCBtb2R1bGUgaXMgd29ya2luZyBvbmx5IG9uIGJyb3dzZXIgZW52JykpO1xuICB9XG5cbiAgaWYgKCFpZCkge1xuICAgIHRocm93IG5ldyBFcnJvcignTW9kdWxlIGlkIGlzIHJlcXVpcmVkJylcbiAgfVxuXG4gIGxldCBtb2R1bGVEZWZpbml0aW9uID0gbW9kdWxlc1tpZF07XG5cbiAgaWQgPSAgTU9EVUxFX1BSRUZJWCArIGlkO1xuXG4gIGlmICghbW9kdWxlRGVmaW5pdGlvbikge1xuICAgIG1vZHVsZXNbaWRdID0ge307XG4gICAgbW9kdWxlRGVmaW5pdGlvbiA9IG1vZHVsZXNbaWRdO1xuICB9XG5cbiAgaWYgKG1vZHVsZURlZmluaXRpb24uaW5zdGFuY2UpIHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG1vZHVsZURlZmluaXRpb24uaW5zdGFuY2UpO1xuICB9XG5cbiAgaWYgKG1vZHVsZURlZmluaXRpb24ucHJvbWlzZSkge1xuICAgIHJldHVybiBtb2R1bGVEZWZpbml0aW9uLnByb21pc2U7XG4gIH1cblxuICByZXR1cm4gbW9kdWxlRGVmaW5pdGlvbi5wcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGNvbnN0IHJlYWR5U3RhdGVDaGFuZ2UgPSAoZXZ0OiBhbnkpID0+IHtcbiAgICAgIGlmIChldnQudHlwZSA9PT0gJ2xvYWQnIHx8ICgvXihjb21wbGV0ZXxsb2FkZWQpJC8udGVzdCgoZXZ0LmN1cnJlbnRUYXJnZXQgfHwgZXZ0LnNyY0VsZW1lbnQpLnJlYWR5U3RhdGUpKSkge1xuICAgICAgICBjb25zdCBub2RlID0gIGV2dC5jdXJyZW50VGFyZ2V0IHx8IGV2dC5zcmNFbGVtZW50O1xuXG4gICAgICAgIHJlbW92ZUxpc3RlbmVyKG5vZGUsIHJlYWR5U3RhdGVDaGFuZ2UsICdsb2FkJyk7XG4gICAgICAgIHJlbW92ZUxpc3RlbmVyKG5vZGUsIHJlamVjdCwgJ2Vycm9yJyk7XG5cbiAgICAgICAgLy8gc2xvdyBkb3cgY2hlY2tpbmcgaWYgbW9kdWxlIGlzIGxvYWRlZCB0byBlbnN1cmUgdGhhdCBzY3JpcHQgdGhhdCAgcmVnaXN0ZXIgbW9kdWxlIGlzIGNhbGxlZFxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHJlc29sdmUobW9kdWxlc1tpZF0gPyBtb2R1bGVzW2lkXS5pbnN0YW5jZSA6IHVuZGVmaW5lZCksIDEwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcbiAgICBcbiAgICBzY3JpcHQuaWQgPSBpZDtcblxuICAgIC8vIEB0cy1pZ25vcmUgZml4IGZvciBJRVxuICAgIGlmIChzY3JpcHQuYXR0YWNoRXZlbnQgJiYgIShzY3JpcHQuYXR0YWNoRXZlbnQudG9TdHJpbmcgJiYgc2NyaXB0LmF0dGFjaEV2ZW50LnRvU3RyaW5nKCkuaW5kZXhPZignW25hdGl2ZSBjb2RlJykgPCAwKSkge1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgc2NyaXB0LmF0dGFjaEV2ZW50KCdvbnJlYWR5c3RhdGVjaGFuZ2UnLCByZWFkeVN0YXRlQ2hhbmdlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2NyaXB0LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCByZWFkeVN0YXRlQ2hhbmdlLCBmYWxzZSk7XG4gICAgICBzY3JpcHQuYWRkRXZlbnRMaXN0ZW5lcignb25lcnJvcicsIHJlamVjdCwgZmFsc2UpO1xuICAgIH1cblxuICAgIHNjcmlwdC5zZXRBdHRyaWJ1dGUoJ2Nyb3Nzb3JpZ2luJywgJ2Fub255bW91cycpO1xuICAgIHNjcmlwdC5zZXRBdHRyaWJ1dGUoJ2NoYXJzZXQnLCAndXRmLTgnKTtcbiAgICBzY3JpcHQuc2V0QXR0cmlidXRlKCdhc3luYycsICd0cnVlJyk7XG5cbiAgICBzY3JpcHQuc3JjID0gdXJsO1xuXG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzY3JpcHQpO1xuICB9KTtcbn07XG5cbi8qKlxuICogUmVnaXN0ZXIgdGhhdCBtb2R1bGUgaXMgcmVhZHlcbiAqIFxuICogQHBhcmFtIHtzdHJpbmd9IGlkIFxuICogQHBhcmFtIHthbnl9IGluc3RhbmNlIFxuICogQHBhcmFtIHthbnl9IG1ldGFkYXRhIC0gYWRkaXRpb25hbCBtb2R1bGUgbWV0YWRhdGEgbGlrZSB2ZXJzaW9uXG4gKi9cbmV4cG9ydCBjb25zdCByZWdpc3Rlck1vZHVsZSA9IChpZDogc3RyaW5nLCBpbnN0YW5jZTogYW55LCBtZXRhZGF0YT86IGFueSkgPT4ge1xuICAvLyBsb2FkZXIgbm90IHdvcmtpbmcgb24gbm9kZWpzIGVudnNcbiAgaWYgKHdpbmRvdyAmJiB0eXBlb2Ygd2luZG93ICE9PSAnb2JqZWN0Jykge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmICghaWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01vZHVsZSBpZCBpcyByZXF1aXJlZCcpXG4gIH1cblxuICBpZiAoIW1vZHVsZXMpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0xvYWRlciBpcyBub3QgaW5pdGlhbGl6ZWQnKVxuICB9XG5cbiAgaWQgPSBNT0RVTEVfUFJFRklYICsgaWQ7XG5cbiAgaWYgKG1vZHVsZXNbaWRdKSB7XG4gICAgbW9kdWxlc1tpZF0gPSB7IGluc3RhbmNlLCBtZXRhZGF0YSB9XG4gIH1cbn07XG5cbi8qKlxuICogTG9hZCBleHRlcm5hbCBjc3MgZnJvbSBnaXZlbiB1cmxcbiAqIFxuICogQHBhcmFtIHsqfSB1cmwgXG4gKi9cbmV4cG9ydCBjb25zdCBsb2FkQ3NzID0gKHVybCkgPT4ge1xuICBjb25zdCBhbHJlYWR5QWRkZWRUaGlzVGFnID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgbGlua1tocmVmPVwiJHt1cmx9XCJdYCk7XG4gIGlmIChhbHJlYWR5QWRkZWRUaGlzVGFnICE9PSBudWxsKSB7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICB9XG5cbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgY29uc3QgaGVhZCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF07XG4gICAgY29uc3QgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKTtcblxuICAgIGNvbnN0IGxvYWRlZCA9ICgpID0+IHtcbiAgICAgIHJlc29sdmUoKTtcbiAgICAgIGxpbmsucmVtb3ZlRXZlbnRMaXN0ZW5lcignbG9hZCcsIGxvYWRlZCk7XG4gICAgfTtcblxuICAgIGxpbmsucmVsID0gJ3N0eWxlc2hlZXQnO1xuICAgIGxpbmsuaHJlZiA9IHVybDtcbiAgICBsaW5rLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBsb2FkZWQpO1xuICAgIGhlYWQuYXBwZW5kQ2hpbGQobGluayk7XG4gIH0pO1xufTtcblxuLyoqXG4gKiBFbnVtIGp1c3QgZm9yIHVuaWZ5IGZpbGVzdGFjayBtb2R1bGUgbmFtZXNcbiAqL1xuZXhwb3J0IGVudW0gRklMRVNUQUNLX01PRFVMRVMge1xuICBGSUxFU1RBQ0tfU0RLID0gJ2ZpbGVzdGFjay1zZGsnLFxuICBUUkFOU0ZPUk1TX1VJID0gJ3RyYW5zZm9ybXMtdWknLFxuICBQSUNLRVIgPSAncGlja2VyJyxcbn07XG4iXX0=
{
"name": "@filestack/loader",
"version": "1.0.5",
"version": "1.0.6",
"license": "SEE LICENSE IN LICENSE",

@@ -5,0 +5,0 @@ "main": "dist/index.js",

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc