@data-client/rest 0.10.0 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -3
- package/dist/index.js +5 -6
- package/dist/index.umd.min.js +1 -1
- package/legacy/NetworkError.js +1 -1
- package/legacy/OptionsToFunction.js +1 -1
- package/legacy/RestEndpoint.js +1 -1
- package/legacy/RestEndpointTypeHelp.js +1 -1
- package/legacy/RestEndpointTypes.js +1 -1
- package/legacy/RestHelpers.js +1 -1
- package/legacy/createResource.js +7 -8
- package/legacy/extractCollection.js +1 -1
- package/legacy/extractObject.js +1 -1
- package/legacy/hookifyResource.js +1 -1
- package/legacy/index.js +1 -1
- package/legacy/mapCollection.js +1 -1
- package/legacy/next/index.js +1 -1
- package/legacy/paginatedCollections.js +1 -1
- package/legacy/paramsToString.js +1 -1
- package/legacy/paramsToString.native.js +1 -1
- package/legacy/pathTypes.js +1 -1
- package/legacy/resourceExtendable.js +1 -1
- package/legacy/resourceExtensionTypes.js +1 -1
- package/legacy/resourceTypes.js +1 -1
- package/legacy/test-fixtures.js +1 -1
- package/legacy/utiltypes.js +1 -1
- package/lib/NetworkError.js +1 -1
- package/lib/OptionsToFunction.js +1 -1
- package/lib/RestEndpoint.js +1 -1
- package/lib/RestEndpointTypeHelp.js +1 -1
- package/lib/RestEndpointTypes.d.ts +3 -1
- package/lib/RestEndpointTypes.d.ts.map +1 -1
- package/lib/RestEndpointTypes.js +1 -1
- package/lib/RestHelpers.js +1 -1
- package/lib/createResource.d.ts.map +1 -1
- package/lib/createResource.js +7 -8
- package/lib/extractCollection.js +1 -1
- package/lib/extractObject.js +1 -1
- package/lib/hookifyResource.js +1 -1
- package/lib/index.js +1 -1
- package/lib/mapCollection.js +1 -1
- package/lib/next/index.js +1 -1
- package/lib/paginatedCollections.js +1 -1
- package/lib/paramsToString.js +1 -1
- package/lib/paramsToString.native.js +1 -1
- package/lib/pathTypes.js +1 -1
- package/lib/resourceExtendable.js +1 -1
- package/lib/resourceExtensionTypes.js +1 -1
- package/lib/resourceTypes.d.ts +4 -8
- package/lib/resourceTypes.d.ts.map +1 -1
- package/lib/resourceTypes.js +1 -1
- package/lib/test-fixtures.js +1 -1
- package/lib/utiltypes.js +1 -1
- package/package.json +2 -2
- package/src/RestEndpointTypes.ts +10 -20
- package/src/__tests__/createResource.test.ts +42 -2
- package/src/createResource.ts +7 -12
- package/src/resourceTypes.ts +16 -15
- package/ts4.0/RestEndpointTypes.d.ts +9 -1
- package/ts4.0/resourceTypes.d.ts +4 -8
- package/ts4.1/RestEndpointTypes.d.ts +9 -1
- package/ts4.1/resourceTypes.d.ts +4 -8
package/README.md
CHANGED
|
@@ -121,13 +121,13 @@ const deleteTodo = data => ctrl.fetch(TodoResource.delete, { id });
|
|
|
121
121
|
### [Programmatic queries](https://dataclient.io/rest/api/Query)
|
|
122
122
|
|
|
123
123
|
```tsx
|
|
124
|
-
const queryRemainingTodos = new Query(
|
|
124
|
+
const queryRemainingTodos = new schema.Query(
|
|
125
125
|
TodoResource.getList.schema,
|
|
126
126
|
(entries) => entries.filter((todo) => !todo.completed).length,
|
|
127
127
|
);
|
|
128
128
|
|
|
129
|
-
const allRemainingTodos =
|
|
130
|
-
const firstUserRemainingTodos =
|
|
129
|
+
const allRemainingTodos = useQuery(queryRemainingTodos);
|
|
130
|
+
const firstUserRemainingTodos = useQuery(queryRemainingTodos, { userId: 1 });
|
|
131
131
|
```
|
|
132
132
|
|
|
133
133
|
### TypeScript requirements
|
|
@@ -153,5 +153,6 @@ supports inferring argument types from the path templates.
|
|
|
153
153
|
- [Values](https://dataclient.io/rest/api/Values)
|
|
154
154
|
- [All](https://dataclient.io/rest/api/All)
|
|
155
155
|
- [Collection](https://dataclient.io/rest/api/Collection)
|
|
156
|
+
- [Query](https://dataclient.io/rest/api/Query)
|
|
156
157
|
- [Union](https://dataclient.io/rest/api/Union)
|
|
157
158
|
- [Invalidate](https://dataclient.io/rest/api/Invalidate)
|
package/dist/index.js
CHANGED
|
@@ -408,7 +408,8 @@ function createResource({
|
|
|
408
408
|
});
|
|
409
409
|
if (optimistic) {
|
|
410
410
|
extraMutateOptions.getOptimisticResponse = optimisticUpdate;
|
|
411
|
-
|
|
411
|
+
// TODO: Check that schema is a queryable, otherwise this doesn't make sense
|
|
412
|
+
extraPartialOptions.getOptimisticResponse = optimisticPartial(schema);
|
|
412
413
|
}
|
|
413
414
|
const getList = new Endpoint({
|
|
414
415
|
...extraMutateOptions,
|
|
@@ -491,12 +492,10 @@ function optimisticUpdate(snap, params, body) {
|
|
|
491
492
|
...ensurePojo(body)
|
|
492
493
|
};
|
|
493
494
|
}
|
|
494
|
-
function optimisticPartial(
|
|
495
|
+
function optimisticPartial(schema) {
|
|
495
496
|
return function (snap, params, body) {
|
|
496
|
-
const
|
|
497
|
-
|
|
498
|
-
} = snap.getResponse(getEndpoint, params);
|
|
499
|
-
if (!data) throw new endpoint.AbortOptimistic();
|
|
497
|
+
const data = snap.get(schema, params);
|
|
498
|
+
if (!data) throw snap.abort;
|
|
500
499
|
return {
|
|
501
500
|
...params,
|
|
502
501
|
...data,
|
package/dist/index.umd.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).Rest={})}(this,(function(e){"use strict";function t(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function n(e,t){return e(t={exports:{}},t.exports),t.exports}var r=t(n((function(e){e.exports=function(e){if(null==e)throw new TypeError("Cannot destructure "+e)},e.exports.__esModule=!0,e.exports.default=e.exports}))),s=t(n((function(e){e.exports=function(e,t){if(!Object.prototype.hasOwnProperty.call(e,t))throw new TypeError("attempted to use private field on non-instance");return e},e.exports.__esModule=!0,e.exports.default=e.exports}))),i=t(n((function(e){var t=0;e.exports=function(e){return"__private_"+t+++"_"+e},e.exports.__esModule=!0,e.exports.default=e.exports})));function o(e){return!("function"!=typeof e.hasOwnProperty||!(Object.hasOwnProperty.call(e,"__ownerID")||e._map&&Object.hasOwnProperty.call(e._map,"__ownerID")))}class c{constructor(e,t){this.schema=void 0,t&&(this._schemaAttribute="string"==typeof t?e=>e[t]:t),this.define(e)}get isSingleSchema(){return!this._schemaAttribute}define(e){"_schemaAttribute"in e&&!this._schemaAttribute?(this.schema=e.schema,this._schemaAttribute=e._schemaAttribute):this.schema=e}getSchemaAttribute(e,t,n){return!this.isSingleSchema&&this._schemaAttribute(e,t,n)}inferSchema(e,t,n){if(this.isSingleSchema)return this.schema;const r=this.getSchemaAttribute(e,t,n);return this.schema[r]}normalizeValue(e,t,n,r,s,i,o,c){if(!e)return e;const a=this.inferSchema(e,t,n);if(!a)return e;const h=r(e,t,n,a,s,i,o,c);return this.isSingleSchema||null==h?h:{id:h,schema:this.getSchemaAttribute(e,t,n)}}denormalizeValue(e,t){const n=!this.isSingleSchema&&e&&(o(e)?e.get("schema"):e.schema);if(!this.isSingleSchema&&!n)return e;return t((this.isSingleSchema?void 0:o(e)?e.get("id"):e.id)||e,this.isSingleSchema?this.schema:this.schema[n])}}class a extends c{normalize(e,t,n,r,s,i,o,c){return Object.keys(e).reduce(((t,n,a)=>{const h=e[n];return null!=h?Object.assign({},t,{[n]:this.normalizeValue(h,e,n,r,s,i,o,c)}):t}),{})}denormalize(e,t,n){return Object.keys(e).reduce(((t,r)=>{const s=e[r],i=this.denormalizeValue(s,n);return i&&"symbol"!=typeof i?Object.assign({},t,{[r]:i}):t}),{})}infer(e,t,n){}}const h=e=>void 0!==e&&"symbol"!=typeof e;class u extends c{normalize(e,t,n,r,s,i,o,c){const a=(e=>Array.isArray(e)?e:Object.keys(e).map((t=>e[t])))(e);return a.map(((e,a)=>this.normalizeValue(e,t,n,r,s,i,o,c)))}denormalize(e,t,n){return e.map?e.map((e=>this.denormalizeValue(e,n))).filter(h):e}infer(e,t,n,r){}toJSON(){return[this.schema]}}function f(e,t,n,r){if(o(t))return function(e,t,n){var r;let s;const i=Object.keys(e).reduce(((t,r)=>{const i=`${r}`,o=n(t.get(i),e[i]);return"symbol"==typeof o&&(s=o),t.has(i)?t.set(i,o):t}),t);return null!=(r=s)?r:i}(e,t,r);const s=Object.assign({},t);for(const t of Object.keys(e)){const n=r(s[t],e[t]);if(void 0!==s[t]&&(s[t]=n),"symbol"==typeof n)return n}return s}class l{constructor(e){this.schema=void 0,this.define(e)}define(e){this.schema=Object.keys(e).reduce(((t,n)=>{const r=e[n];return Object.assign({},t,{[n]:r})}),this.schema||{})}normalize(...e){return((e,t,n,r,s,i,o,c,a)=>{const h=Object.assign({},t);return Object.keys(e).forEach((n=>{const r=e[n],u=s(t[n],t,n,r,i,o,c,a);void 0===u?delete h[n]:h[n]=u})),h})(this.schema,...e)}denormalize(e,t,n){return f(this.schema,e,0,n)}infer(e,t,n,r){return function(e,t,n,r,s){const i={};return Object.keys(e).forEach((o=>{i[o]=r(e[o],t,n,s)})),i}(this.schema,e,t,n,r)}}const p=Symbol("INVALID");const d=Symbol("create"),m=(e,t)=>[...e,...t],y=(e,t)=>[...t,...e],g=(e,t)=>Object.assign({},e,t),b=e=>[...e],v=e=>Object.assign({},e);class O{addWith(e,t){return x(this,e,t)}createCollectionFilter(...e){return t=>Object.entries(t).every((([t,n])=>{var r;return this.nonFilterArgumentKeys(t)||`${e[0][t]}`===n||`${null==(r=e[1])?void 0:r[t]}`===n}))}nonFilterArgumentKeys(e){return e.startsWith("order")}constructor(e,t){if(this.schema=Array.isArray(e)?new u(e[0]):e,t?"nestKey"in t?this.nestKey=t.nestKey:this.argsKey="argsKey"in t?t.argsKey:e=>Object.assign({},e):this.argsKey=e=>Object.assign({},e),this.key=`COLLECT:${this.schema.constructor.name}(${this.schema.schema.key})`,null!=t&&t.nonFilterArgumentKeys){const{nonFilterArgumentKeys:e}=t;"function"==typeof e?this.nonFilterArgumentKeys=e:e instanceof RegExp?this.nonFilterArgumentKeys=t=>e.test(t):this.nonFilterArgumentKeys=t=>e.includes(t)}else null!=t&&t.createCollectionFilter&&(this.createCollectionFilter=t.createCollectionFilter.bind(this));this.schema instanceof u?(this.createIfValid=b,this.push=x(this,m),this.unshift=x(this,y)):e instanceof a&&(this.createIfValid=v,this.assign=x(this,g))}get cacheWith(){return this.schema.schema}toJSON(){return{name:`Collection(${this.schema.schema.name})`,schema:this.schema.schema.toJSON(),key:this.key}}pk(e,t,n,r){const s=this.argsKey?this.argsKey(...r):this.nestKey(t,n);for(const e in s)"string"!=typeof s[e]&&void 0!==s[e]&&(s[e]=`${s[e]}`);return function(e){const t=Object.keys(e).sort(),n={};for(const r of t)n[r]=e[r];return JSON.stringify(n)}(s)}normalize(e,t,n,r,s,i,o,c){const a=this.schema.normalize(e,t,n,r,s,i,o,c),h=this.pk(a,t,n,c);return s(this,a,h),h}merge(e,t){return t}shouldReorder(e,t,n,r){return t.fetchedAt<e.fetchedAt}mergeWithStore(e,t,n,r){return this.shouldReorder(e,t,n,r)?this.merge(r,n):this.merge(n,r)}mergeMetaWithStore(e,t,n,r){return this.shouldReorder(e,t,n,r)?e:t}infer(e,t,n,r){if(this.argsKey){var s;const t=this.pk(void 0,void 0,"",e);if(null!=(s=r[this.key])&&s[t])return t}}denormalize(e,t,n){return this.schema.denormalize(e,t,n)}}function x(e,t,n){const r={merge:{value:t},normalize:{value:E},infer:{value:j}};return e.schema instanceof u&&(r.createIfValid={value:k},r.denormalize={value:w}),n&&(r.createCollectionFilter={value:n}),Object.create(e,r)}function j(){}function E(e,t,n,r,s,i,o,c){i[d]={};const a=this.schema.normalize(this.schema instanceof u&&!Array.isArray(e)?[e]:e,t,n,r,s,i,o,c),h=this.createCollectionFilter(...c);return o[this.key]&&Object.keys(o[this.key]).forEach((e=>{h(JSON.parse(e))&&s(this,a,e)})),a}function k(e){return Array.isArray(e)?[...e]:Object.assign({},e)}function w(e,t,n){return Array.isArray(e)?this.schema.denormalize(e,t,n):this.schema.denormalize([e],t,n)[0]}var S=t(n((function(e){e.exports=function(e,t){if(null==e)return{};var n,r,s={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(s[n]=e[n]);return s},e.exports.__esModule=!0,e.exports.default=e.exports})));const A=["pk","schema","key"];function _(e,t={}){class n extends e{static toString(){return this.key}static toJSON(){return{name:this.name,schema:this.schema,key:this.key}}static pk(e,t,n,r){return this.prototype.pk.call(e,t,n,r)}static useIncoming(e,t,n,r){return!0}static shouldReorder(e,t,n,r){return t.fetchedAt<e.fetchedAt}static merge(e,t){return Object.assign({},e,t)}static mergeWithStore(e,t,n,r){return this.useIncoming(e,t,n,r)?typeof r!=typeof n?r:this.shouldReorder(e,t,n,r)?this.merge(r,n):this.merge(n,r):n}static mergeMetaWithStore(e,t,n,r){return this.shouldReorder(e,t,n,r)?e:t}static fromJS(e={}){const t=new this(e);return Object.assign(t,e),t}static createIfValid(e){if(!this.validate(e))return this.fromJS(e)}static process(e,t,n,r){return Object.assign({},e)}static normalize(e,t,n,r,s,i,o,c){const a=this.process(e,t,n,c);let h=this.pk(a,t,n,c);void 0!==h&&""!==h&&"undefined"!==h||(h=`MISS-${Math.random()}`);const u=this.key;if(u in i||(i[u]={}),h in i[u]||(i[u][h]=[]),i[u][h].some((t=>t===e)))return h;return function(e){if(e){const t=new Error(e);throw t.status=400,t}}(this.validate(a)),i[u][h].push(e),Object.keys(this.schema).forEach((e=>{if(Object.hasOwn(a,e)){const t=this.schema[e];a[e]=r(a[e],a,e,t,s,i,o,c)}})),s(this,a,h),h}static validate(e){}static infer(e,t,n,r){var s;if(!e[0])return;const i=function(e,t,n){if(["string","number"].includes(typeof t[0]))return`${t[0]}`;const r=e.pk(t[0],void 0,"",t);if(void 0!==r&&""!==r)return r;const s=function(e,t){return t?t.find((t=>Object.hasOwn(e,t))):void 0}(t[0],e.indexes);if(s&&n[e.key]){return n[e.key][s][t[0][s]]}}(this,e,t);return null!=(s=r[this.key])&&s[i]?i:void 0}static denormalize(e,t,n){if("symbol"==typeof e)return e;for(const t of Object.keys(this.schema)){const r=this.schema[t],s=n(e[t],r);if("symbol"==typeof s){if(this.defaults[t])return s;e[t]=void 0}else e[t]=s}return e}static get defaults(){return Object.hasOwn(this,"__defaults")||Object.defineProperty(this,"__defaults",{value:new this,writable:!0,configurable:!0}),this.__defaults}}const r=S(t,A);if(Object.assign(n,r),"schema"in t?n.schema=t.schema:e.schema||(n.schema={}),"pk"in t?"function"==typeof t.pk?n.prototype.pk=function(e,n){return t.pk(this,e,n)}:n.prototype.pk=function(){return this[t.pk]}:"function"!=typeof e.prototype.pk&&(n.prototype.pk=function(){return this.id}),"key"in t)Object.defineProperty(n,"key",{value:t.key,configurable:!0,writable:!0,enumerable:!0});else if(!("key"in e)){function s(e){Object.defineProperty(this,"key",{value:e,writable:!0,enumerable:!0,configurable:!0})}const i=function(){return"EntityMixin"===this.name?e.name:this.name},o="undefined"!=typeof document&&document.CLS_MANGLE?function(){return null==document.CLS_MANGLE||document.CLS_MANGLE(this),Object.defineProperty(n,"key",{get:i,set:s,enumerable:!0,configurable:!0}),i.call(this)}:i;Object.defineProperty(n,"key",{get:o,set:s,enumerable:!0,configurable:!0})}return n}var P=Object.freeze({__proto__:null,Union:class extends c{constructor(e,t){if(!t)throw new Error('Expected option "schemaAttribute" not found on UnionSchema.');super(e,t)}normalize(e,t,n,r,s,i,o,c){return this.normalizeValue(e,t,n,r,s,i,o,c)}denormalize(e,t,n){return this.denormalizeValue(e,n)}infer(e,t,n,r){if(!e[0])return;const s=this.getSchemaAttribute(e[0],void 0,""),i=this.schema[s];return void 0!==i?{id:n(i,e,t,r),schema:s}:void 0}},Values:a,Array:u,All:class extends u{constructor(e,t){super(e,t)}normalize(e,t,n,r,s,i,o,c){super.normalize(e,t,n,r,s,i,o,c)}infer(e,t,n,r){if(this.isSingleSchema){const e=r[this.schema.key];if(void 0===e)return;return Object.values(e).map((e=>e&&this.schema.pk(e)))}let s=!1;const i=Object.values(this.schema).flatMap((e=>r[e.key]?(s=!0,Object.values(r[e.key]).map((t=>({id:t&&e.pk(t),schema:this.getSchemaAttribute(t,void 0,void 0)})))):[]));if(s)return i}},Object:l,Invalidate:class{constructor(e){this._entity=e}get key(){return this._entity.key}normalize(e,t,n,r,s,i,o,c){const a=this._entity.process(e,t,n,c),h=this._entity.pk(a,t,n,c);return s(this,p,h),h}merge(e,t){return t}mergeWithStore(e,t,n,r){return this.merge(n,r)}mergeMetaWithStore(e,t,n,r){return t}infer(e,t,n){}denormalize(e,t,n){return n(e,this._entity)}_denormalizeNullable(){return{}}_normalizeNullable(){return{}}},Collection:O,Entity:_});const R=class{};class C extends(_(R)){static process(e,t,n,r){return super.process(e,t,n,r)}}var T;const N="undefined"!=typeof document;let z=N&&!(null!=(T=document.querySelector("meta[http-equiv='Content-Security-Policy']"))&&T.getAttribute("content"));try{z||Function()}catch(e){z=!0,N&&console.error("Content Security Policy: The previous CSP log can be safely ignored - @data-client/endpoint will use setPrototypeOf instead")}var $;class I extends Function{constructor(e,t){let n,r;return z?(n=(...e)=>n.fetch(...e),Object.setPrototypeOf(n,new.target.prototype)):(super("return arguments.callee.fetch.apply(arguments.callee, arguments)"),n=this),e&&(n.fetch=e),t&&"name"in t||!e||!e.name||"anonymous"===e.name||(r=e.name),Object.defineProperty(n,"name",{get(){return r||this.__name},set(e){this.__name=e}}),Object.assign(n,t),n}key(...e){return`${this.name} ${JSON.stringify(e)}`}testKey(e){return e.startsWith(this.name)}bind(e,...t){const n=this.fetch,r=this.key;return this.extend({fetch(){return n.apply(null!=e?e:this,t)},key(){return r.apply(this,t)}})}extend(e){class t extends this.constructor{}return Object.assign(t.prototype,this),new t(e.fetch,e)}}$=I,(()=>{if("undefined"!=typeof document&&document.FUNC_MANGLE){const e=$.prototype.key;$.prototype.key=function(...t){return null==document.FUNC_MANGLE||document.FUNC_MANGLE(this),this.prototype.key=e,e.call(this,...t)}}})();const M=I;class F extends Error{}function K(e,t){void 0===t&&(t={});for(var n=function(e){for(var t=[],n=0;n<e.length;){var r=e[n];if("*"!==r&&"+"!==r&&"?"!==r)if("\\"!==r)if("{"!==r)if("}"!==r)if(":"!==r)if("("!==r)t.push({type:"CHAR",index:n,value:e[n++]});else{var s=1,i="";if("?"===e[c=n+1])throw new TypeError('Pattern cannot start with "?" at '.concat(c));for(;c<e.length;)if("\\"!==e[c]){if(")"===e[c]){if(0==--s){c++;break}}else if("("===e[c]&&(s++,"?"!==e[c+1]))throw new TypeError("Capturing groups are not allowed at ".concat(c));i+=e[c++]}else i+=e[c++]+e[c++];if(s)throw new TypeError("Unbalanced pattern at ".concat(n));if(!i)throw new TypeError("Missing pattern at ".concat(n));t.push({type:"PATTERN",index:n,value:i}),n=c}else{for(var o="",c=n+1;c<e.length;){var a=e.charCodeAt(c);if(!(a>=48&&a<=57||a>=65&&a<=90||a>=97&&a<=122||95===a))break;o+=e[c++]}if(!o)throw new TypeError("Missing parameter name at ".concat(n));t.push({type:"NAME",index:n,value:o}),n=c}else t.push({type:"CLOSE",index:n,value:e[n++]});else t.push({type:"OPEN",index:n,value:e[n++]});else t.push({type:"ESCAPED_CHAR",index:n++,value:e[n++]});else t.push({type:"MODIFIER",index:n,value:e[n++]})}return t.push({type:"END",index:n,value:""}),t}(e),r=t.prefixes,s=void 0===r?"./":r,i="[^".concat(U(t.delimiter||"/#?"),"]+?"),o=[],c=0,a=0,h="",u=function(e){if(a<n.length&&n[a].type===e)return n[a++].value},f=function(e){var t=u(e);if(void 0!==t)return t;var r=n[a],s=r.type,i=r.index;throw new TypeError("Unexpected ".concat(s," at ").concat(i,", expected ").concat(e))},l=function(){for(var e,t="";e=u("CHAR")||u("ESCAPED_CHAR");)t+=e;return t};a<n.length;){var p=u("CHAR"),d=u("NAME"),m=u("PATTERN");if(d||m){var y=p||"";-1===s.indexOf(y)&&(h+=y,y=""),h&&(o.push(h),h=""),o.push({name:d||c++,prefix:y,suffix:"",pattern:m||i,modifier:u("MODIFIER")||""})}else{var g=p||u("ESCAPED_CHAR");if(g)h+=g;else if(h&&(o.push(h),h=""),u("OPEN")){y=l();var b=u("NAME")||"",v=u("PATTERN")||"",O=l();f("CLOSE"),o.push({name:b||(v?c++:""),pattern:b&&!v?i:v,prefix:y,suffix:O,modifier:u("MODIFIER")||""})}else f("END")}}return o}function L(e,t){return function(e,t){void 0===t&&(t={});var n=D(t),r=t.encode,s=void 0===r?function(e){return e}:r,i=t.validate,o=void 0===i||i,c=e.map((function(e){if("object"==typeof e)return new RegExp("^(?:".concat(e.pattern,")$"),n)}));return function(t){for(var n="",r=0;r<e.length;r++){var i=e[r];if("string"!=typeof i){var a=t?t[i.name]:void 0,h="?"===i.modifier||"*"===i.modifier,u="*"===i.modifier||"+"===i.modifier;if(Array.isArray(a)){if(!u)throw new TypeError('Expected "'.concat(i.name,'" to not repeat, but got an array'));if(0===a.length){if(h)continue;throw new TypeError('Expected "'.concat(i.name,'" to not be empty'))}for(var f=0;f<a.length;f++){var l=s(a[f],i);if(o&&!c[r].test(l))throw new TypeError('Expected all "'.concat(i.name,'" to match "').concat(i.pattern,'", but got "').concat(l,'"'));n+=i.prefix+l+i.suffix}}else if("string"!=typeof a&&"number"!=typeof a){if(!h){var p=u?"an array":"a string";throw new TypeError('Expected "'.concat(i.name,'" to be ').concat(p))}}else{l=s(String(a),i);if(o&&!c[r].test(l))throw new TypeError('Expected "'.concat(i.name,'" to match "').concat(i.pattern,'", but got "').concat(l,'"'));n+=i.prefix+l+i.suffix}}else n+=i}return n}}(K(e,t),t)}function U(e){return e.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1")}function D(e){return e&&e.sensitive?"":"i"}function V(e,t,n){return function(e,t,n){void 0===n&&(n={});for(var r=n.strict,s=void 0!==r&&r,i=n.start,o=void 0===i||i,c=n.end,a=void 0===c||c,h=n.encode,u=void 0===h?function(e){return e}:h,f=n.delimiter,l=void 0===f?"/#?":f,p=n.endsWith,d="[".concat(U(void 0===p?"":p),"]|$"),m="[".concat(U(l),"]"),y=o?"^":"",g=0,b=e;g<b.length;g++){var v=b[g];if("string"==typeof v)y+=U(u(v));else{var O=U(u(v.prefix)),x=U(u(v.suffix));if(v.pattern)if(t&&t.push(v),O||x)if("+"===v.modifier||"*"===v.modifier){var j="*"===v.modifier?"?":"";y+="(?:".concat(O,"((?:").concat(v.pattern,")(?:").concat(x).concat(O,"(?:").concat(v.pattern,"))*)").concat(x,")").concat(j)}else y+="(?:".concat(O,"(").concat(v.pattern,")").concat(x,")").concat(v.modifier);else"+"===v.modifier||"*"===v.modifier?y+="((?:".concat(v.pattern,")").concat(v.modifier,")"):y+="(".concat(v.pattern,")").concat(v.modifier);else y+="(?:".concat(O).concat(x,")").concat(v.modifier)}}if(a)s||(y+="".concat(m,"?")),y+=n.endsWith?"(?=".concat(d,")"):"$";else{var E=e[e.length-1],k="string"==typeof E?m.indexOf(E[E.length-1])>-1:void 0===E;s||(y+="(?:".concat(m,"(?=").concat(d,"))?")),k||(y+="(?=".concat(m,"|").concat(d,")"))}return new RegExp(y,D(n))}(K(e,n),t,n)}function W(e,t,n){return e instanceof RegExp?function(e,t){if(!t)return e;for(var n=/\((?:\?<(.*?)>)?(?!\?)/g,r=0,s=n.exec(e.source);s;)t.push({name:s[1]||r++,prefix:"",suffix:"",modifier:"",pattern:""}),s=n.exec(e.source);return e}(e,t):Array.isArray(e)?function(e,t,n){var r=e.map((function(e){return W(e,t,n).source}));return new RegExp("(?:".concat(r.join("|"),")"),D(n))}(e,t,n):V(e,t,n)}function J(e,t){if("object"!=typeof e||void 0===e||Array.isArray(e))return;if(e instanceof O)return t(e);const n=Object.assign({},e instanceof l?e.schema:e);for(const e in n){if(!n[e])continue;const r=J(n[e],t);if(r)return r}}function G(e,t){if("object"!=typeof e||void 0===e)return e;if(e instanceof O)return t(e);const n=Object.assign({},e instanceof l?e.schema:e);for(const e in n)n[e]&&(n[e]=G(n[e],t));return n}class H extends Error{constructor(e){super(e.statusText||`Network response not 'ok': ${e.status}`),this.name="NetworkError",this.status=e.status,this.response=e}}function q(e,t){const n=new Set(e),r=[...e];for(const e of t)n.has(e)||r.push(e);return r}const Q=Object.create(null);function B(e){return e in Q||(Q[e]=L(e,{encode:encodeURIComponent,validate:!1})),Q[e]}const Y=Object.create(null);function X(e){return e in Y||(Y[e]=new Set(K(e).map((e=>"string"==typeof e?e:`${e.name}`)))),Y[e]}const Z=Object.prototype,ee=Object.getPrototypeOf;var te=i("hasBody");class ne extends I{constructor(e){var t;super(null!=(t=e.fetch)?t:async function(...e){const t=s(this,te)[te]&&e.length<2?{}:e[0]||{},n=s(this,te)[te]?e[e.length-1]:void 0;return this.fetchResponse(this.url(t),await this.getRequestInit(n)).then((e=>this.parseResponse(e))).then((t=>this.process(t,...e)))},e),Object.defineProperty(this,te,{writable:!0,value:void 0}),(!("sideEffect"in this)||"method"in e&&!("sideEffect"in e))&&(this.sideEffect="GET"!==e.method&&void 0!==e.method||void 0),void 0===this.method&&(this.method=this.sideEffect?"POST":"GET"),void 0===this.urlPrefix&&(this.urlPrefix=""),s(this,te)[te]=!("body"in this&&void 0===this.body||["GET","DELETE"].includes(this.method)),Object.defineProperty(this,"name",{get(){return"__name"in this?this.__name:this.urlPrefix+this.path}})}key(...e){return`${this.method} ${this.url(s(this,te)[te]&&e.length<2?{}:e[0]||{})}`}url(e={}){const t=B(this.path)(e),n=X(this.path),r={};return Object.keys(e).forEach((t=>{n.has(t)||(r[t]=e[t])})),Object.keys(r).length?`${this.urlPrefix}${t}?${this.searchToString(r)}`:`${this.urlPrefix}${t}`}searchToString(e){return function(e){const t=new URLSearchParams(e);return t.sort(),t.toString()}(e)}getHeaders(e){return e}async getRequestInit(e){const t=null!==(n=e)&&"object"==typeof n&&ee(n)===Z;var n;t&&(e=JSON.stringify(e));const r=Object.assign({},this.requestInit,{method:this.method,signal:this.signal,body:e});return e&&!t||(r.headers=Object.assign({"Content-Type":"application/json"},r.headers)),r.headers=await this.getHeaders(r.headers),r}fetchResponse(e,t){return fetch(e,t).then((e=>{if(!e.ok)throw new H(e);return e})).catch((e=>{throw e instanceof TypeError&&(e.status=500),e}))}parseResponse(e){var t;return 204===e.status?Promise.resolve(null):null!=(t=e.headers.get("content-type"))&&t.includes("json")?e.json().catch((e=>{throw e.status=400,e})):e.text().then((t=>{if(["string","undefined"].includes(typeof this.schema)||null===this.schema||this.process!==ne.prototype.process)return t;const n=new H(e);throw n.status=404,n.message=`Unexpected text response for schema ${this.schema}`,n}))}process(e){return e}errorPolicy(e){return e.status>=500?"soft":void 0}get pathRegex(){return W(this.path)}testKey(e){const t=this.method+" "+this.urlPrefix;if(!e.startsWith(t))return!1;let n=e.lastIndexOf("?");return-1===n&&(n=void 0),this.pathRegex.test(e.substring(t.length,n))}extend(e){class t extends this.constructor{}return Object.assign(t.prototype,this),new t(Object.assign({fetch:this.fetch},e))}paginated(e){if("string"==typeof e){const t=e;e=e=>{let n=Object.assign({},(r(e),e));return delete n[t],[n]}}let t=!1;const n=G(this.schema,(n=>(t=!0,function(e,t){return Object.create(t,{name:{value:`Pagination(${t.schema})`},merge:{value:q},pk:{value:function(n,r,s,i){return t.pk.call(this,n,r,s,e(...i))}}})}(e,n))));if(!t)throw new Error("Missing Collection");const s=this;return this.extend({schema:n,key(...t){return s.key.call(this,...e(...t))},name:this.name+".getPage"})}get getPage(){return this.paginated(this.paginationField)}get push(){return this.extend({method:"POST",schema:J(this.schema,(e=>e.push)),name:this.name+".create"})}get unshift(){return this.extend({method:"POST",schema:J(this.schema,(e=>e.unshift)),name:this.name+".create"})}get assign(){return this.extend({method:"POST",schema:J(this.schema,(e=>e.assign)),name:this.name+".create"})}}const re=["path","schema","Endpoint","Collection","optimistic","paginationField"],{Invalidate:se,Collection:ie}=P;function oe(e,t,n){return Object.assign({},t,ae(n))}function ce(e,t){return t}function ae(e){return e instanceof FormData?Object.fromEntries(e.entries()):e}Object.hasOwn=Object.hasOwn||function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},e.AbortOptimistic=F,e.Endpoint=I,e.Entity=C,e.ExtendableEndpoint=M,e.INVALID=p,e.Index=class{constructor(e,t){this.schema=e,t&&(this.key=t)}key(e){return JSON.stringify(e)}},e.NetworkError=H,e.Query=class{constructor(e,t){this.schema=this.createQuerySchema(e),t?this.process=t:this.process||(this.process=e=>e)}key(...e){return`QUERY ${JSON.stringify(e)}`}createQuerySchema(e){const t=Object.create(e);return t.denormalize=(t,n,r)=>{const s=r(t,e);return"symbol"==typeof s?void 0:this.process(s,...n)},t.pk=void 0,t.infer=(t,n,r,s)=>r(e,t,n,s),t}},e.RestEndpoint=ne,e.createResource=function(e){let{path:t,schema:n,Endpoint:r=ne,Collection:s=ie,optimistic:i,paginationField:o}=e,c=S(e,re);const a=function(e){const t=e.lastIndexOf(":");if(-1===t)throw new Error("Resource path requires at least one :parameter");let n=e.substring(0,t);return"/"===n[n.length-1]&&(n=n.substring(0,n.length-1)),n}(t),h=e=>`${null==n?void 0:n.name}.${e}`;function u(e,t,n){e[t]=e[t].extend(n)}const f=Object.assign({},c),l=Object.assign({},c),p=new r(Object.assign({},c,{path:t,schema:n,name:h("get")}));var d;i&&(f.getOptimisticResponse=oe,l.getOptimisticResponse=(d=p,function(e,t,n){const{data:r}=e.getResponse(d,t);if(!r)throw new F;return Object.assign({},t,r,ae(n))}));const m=new r(Object.assign({},f,{paginationField:o,path:a,schema:new s([n]),name:h("getList")}));return{get:p,getList:m,create:m.push.extend({name:h("create")}),update:new r(Object.assign({},f,{path:t,schema:n,method:"PUT",name:h("update")})),partialUpdate:new r(Object.assign({},l,{path:t,schema:n,method:"PATCH",name:h("partialUpdate")})),delete:new r(Object.assign({},f,{path:t,schema:n.process?new se(n):n,method:"DELETE",name:h("delete"),process:(e,t)=>e&&Object.keys(e).length?e:t,getOptimisticResponse:i?ce:void 0})),extend(...e){if("string"==typeof e[0]){const[t,n]=e;if(t in this){const e=Object.assign({},this);return u(e,t,n),e}return Object.assign({},this,{[t]:this.get.extend(n)})}if("function"==typeof e[0]){const t=e[0](this);return Object.assign({},this,t)}const t=e[0],n=Object.assign({},this);for(const e in t)u(n,e,t[e]);return n}}},e.getUrlBase=B,e.getUrlTokens=X,e.hookifyResource=function(e,t){const n={};return Object.keys(e).forEach((r=>{const s=e[r];var i;void 0!==s.extend&&(n[`use${i=r,i.charAt(0).toUpperCase()+i.slice(1)}`]=()=>{const e=t();return s.extend({requestInit:e})})})),n},e.schema=P,e.validateRequired=function(e,t){let n="";if(Object.keys(t).some((t=>!Object.hasOwn(e,t)&&(n=t,!0))))return`Missing key ${n}`},Object.defineProperty(e,"__esModule",{value:!0})}));
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).Rest={})}(this,(function(e){"use strict";function t(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function n(e,t){return e(t={exports:{}},t.exports),t.exports}var r=t(n((function(e){e.exports=function(e){if(null==e)throw new TypeError("Cannot destructure "+e)},e.exports.__esModule=!0,e.exports.default=e.exports}))),s=t(n((function(e){e.exports=function(e,t){if(!Object.prototype.hasOwnProperty.call(e,t))throw new TypeError("attempted to use private field on non-instance");return e},e.exports.__esModule=!0,e.exports.default=e.exports}))),i=t(n((function(e){var t=0;e.exports=function(e){return"__private_"+t+++"_"+e},e.exports.__esModule=!0,e.exports.default=e.exports})));function o(e){return!("function"!=typeof e.hasOwnProperty||!(Object.hasOwnProperty.call(e,"__ownerID")||e._map&&Object.hasOwnProperty.call(e._map,"__ownerID")))}class a{constructor(e,t){this.schema=void 0,t&&(this._schemaAttribute="string"==typeof t?e=>e[t]:t),this.define(e)}get isSingleSchema(){return!this._schemaAttribute}define(e){"_schemaAttribute"in e&&!this._schemaAttribute?(this.schema=e.schema,this._schemaAttribute=e._schemaAttribute):this.schema=e}getSchemaAttribute(e,t,n){return!this.isSingleSchema&&this._schemaAttribute(e,t,n)}inferSchema(e,t,n){if(this.isSingleSchema)return this.schema;const r=this.getSchemaAttribute(e,t,n);return this.schema[r]}normalizeValue(e,t,n,r,s,i,o,a){if(!e)return e;const c=this.inferSchema(e,t,n);if(!c)return e;const u=r(e,t,n,c,s,i,o,a);return this.isSingleSchema||null==u?u:{id:u,schema:this.getSchemaAttribute(e,t,n)}}denormalizeValue(e,t){const n=!this.isSingleSchema&&e&&(o(e)?e.get("schema"):e.schema);if(!this.isSingleSchema&&!n)return e;return t((this.isSingleSchema?void 0:o(e)?e.get("id"):e.id)||e,this.isSingleSchema?this.schema:this.schema[n])}}class c extends a{normalize(e,t,n,r,s,i,o,a){return Object.keys(e).reduce(((t,n,c)=>{const u=e[n];return null!=u?Object.assign({},t,{[n]:this.normalizeValue(u,e,n,r,s,i,o,a)}):t}),{})}denormalize(e,t,n){return Object.keys(e).reduce(((t,r)=>{const s=e[r],i=this.denormalizeValue(s,n);return i&&"symbol"!=typeof i?Object.assign({},t,{[r]:i}):t}),{})}queryKey(e,t,n,r){}}const u=e=>void 0!==e&&"symbol"!=typeof e;class h extends a{normalize(e,t,n,r,s,i,o,a){const c=(e=>Array.isArray(e)?e:Object.keys(e).map((t=>e[t])))(e);return c.map(((e,c)=>this.normalizeValue(e,t,n,r,s,i,o,a)))}denormalize(e,t,n){return e.map?e.map((e=>this.denormalizeValue(e,n))).filter(u):e}queryKey(e,t,n,r){}toJSON(){return[this.schema]}}const l=Symbol("INVALID");function f(e,t,n,r){if(o(t))return function(e,t,n){var r;let s;const i=Object.keys(e).reduce(((t,r)=>{const i=`${r}`,o=n(t.get(i),e[i]);return"symbol"==typeof o&&(s=o),t.has(i)?t.set(i,o):t}),t);return null!=(r=s)?r:i}(e,t,r);const s=Object.assign({},t);for(const t of Object.keys(e)){const n=r(s[t],e[t]);if(void 0!==s[t]&&(s[t]=n),"symbol"==typeof n)return n}return s}class d{constructor(e){this.schema=void 0,this.define(e)}define(e){this.schema=Object.keys(e).reduce(((t,n)=>{const r=e[n];return Object.assign({},t,{[n]:r})}),this.schema||{})}normalize(...e){return((e,t,n,r,s,i,o,a,c)=>{const u=Object.assign({},t);return Object.keys(e).forEach((n=>{const r=e[n],h=s(t[n],t,n,r,i,o,a,c);void 0===h?delete u[n]:u[n]=h})),u})(this.schema,...e)}denormalize(e,t,n){return f(this.schema,e,0,n)}queryKey(e,t,n,r){return function(e,t,n,r,s){const i={};return Object.keys(e).forEach((o=>{i[o]=n(e[o],t,r,s)})),i}(this.schema,e,t,n,r)}}const p=Symbol("create"),m=(e,t)=>[...e,...t],y=(e,t)=>[...t,...e],g=(e,t)=>Object.assign({},e,t),b=e=>[...e],v=e=>Object.assign({},e);class O{addWith(e,t){return x(this,e,t)}createCollectionFilter(...e){return t=>Object.entries(t).every((([t,n])=>{var r;return this.nonFilterArgumentKeys(t)||`${e[0][t]}`===n||`${null==(r=e[1])?void 0:r[t]}`===n}))}nonFilterArgumentKeys(e){return e.startsWith("order")}constructor(e,t){if(this.schema=Array.isArray(e)?new h(e[0]):e,t?"nestKey"in t?this.nestKey=t.nestKey:this.argsKey="argsKey"in t?t.argsKey:e=>Object.assign({},e):this.argsKey=e=>Object.assign({},e),this.key=`COLLECT:${this.schema.constructor.name}(${this.schema.schema.key})`,null!=t&&t.nonFilterArgumentKeys){const{nonFilterArgumentKeys:e}=t;"function"==typeof e?this.nonFilterArgumentKeys=e:e instanceof RegExp?this.nonFilterArgumentKeys=t=>e.test(t):this.nonFilterArgumentKeys=t=>e.includes(t)}else null!=t&&t.createCollectionFilter&&(this.createCollectionFilter=t.createCollectionFilter.bind(this));this.schema instanceof h?(this.createIfValid=b,this.push=x(this,m),this.unshift=x(this,y)):e instanceof c&&(this.createIfValid=v,this.assign=x(this,g))}get cacheWith(){return this.schema.schema}toJSON(){return{name:`Collection(${this.schema.schema.name})`,schema:this.schema.schema.toJSON(),key:this.key}}pk(e,t,n,r){const s=this.argsKey?this.argsKey(...r):this.nestKey(t,n);for(const e in s)"string"!=typeof s[e]&&void 0!==s[e]&&(s[e]=`${s[e]}`);return function(e){const t=Object.keys(e).sort(),n={};for(const r of t)n[r]=e[r];return JSON.stringify(n)}(s)}normalize(e,t,n,r,s,i,o,a){const c=this.schema.normalize(e,t,n,r,s,i,o,a),u=this.pk(c,t,n,a);return s(this,c,u),u}merge(e,t){return t}shouldReorder(e,t,n,r){return t.fetchedAt<e.fetchedAt}mergeWithStore(e,t,n,r){return this.shouldReorder(e,t,n,r)?this.merge(r,n):this.merge(n,r)}mergeMetaWithStore(e,t,n,r){return this.shouldReorder(e,t,n,r)?e:t}queryKey(e,t,n,r){if(this.argsKey){const t=this.pk(void 0,void 0,"",e);if(n(this.key,t))return t}}denormalize(e,t,n){return this.schema.denormalize(e,t,n)}}function x(e,t,n){const r={merge:{value:t},normalize:{value:E},infer:{value:j}};return e.schema instanceof h&&(r.createIfValid={value:w},r.denormalize={value:k}),n&&(r.createCollectionFilter={value:n}),Object.create(e,r)}function j(){}function E(e,t,n,r,s,i,o,a){i[p]={};const c=this.schema.normalize(this.schema instanceof h&&!Array.isArray(e)?[e]:e,t,n,r,s,i,o,a),u=this.createCollectionFilter(...a);return o[this.key]&&Object.keys(o[this.key]).forEach((e=>{u(JSON.parse(e))&&s(this,c,e)})),c}function w(e){return Array.isArray(e)?[...e]:Object.assign({},e)}function k(e,t,n){return Array.isArray(e)?this.schema.denormalize(e,t,n):this.schema.denormalize([e],t,n)[0]}var S=t(n((function(e){e.exports=function(e,t){if(null==e)return{};var n,r,s={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(s[n]=e[n]);return s},e.exports.__esModule=!0,e.exports.default=e.exports})));const A=["pk","schema","key"];function _(e,t={}){class n extends e{static toString(){return this.key}static toJSON(){return{name:this.name,schema:this.schema,key:this.key}}static pk(e,t,n,r){return this.prototype.pk.call(e,t,n,r)}static shouldUpdate(e,t,n,r){return!0}static shouldReorder(e,t,n,r){return t.fetchedAt<e.fetchedAt}static merge(e,t){return Object.assign({},e,t)}static mergeWithStore(e,t,n,r){return this.shouldUpdate(e,t,n,r)?typeof r!=typeof n?r:this.shouldReorder(e,t,n,r)?this.merge(r,n):this.merge(n,r):n}static mergeMetaWithStore(e,t,n,r){return this.shouldReorder(e,t,n,r)?e:t}static fromJS(e={}){const t=new this(e);return Object.assign(t,e),t}static createIfValid(e){if(!this.validate(e))return this.fromJS(e)}static process(e,t,n,r){return Object.assign({},e)}static normalize(e,t,n,r,s,i,o,a){const c=this.process(e,t,n,a);let u=this.pk(c,t,n,a);u=void 0===u||""===u||"undefined"===u?`MISS-${Math.random()}`:`${u}`;const h=this.key;if(h in i||(i[h]={}),u in i[h]||(i[h][u]=[]),i[h][u].some((t=>t===e)))return u;return function(e){if(e){const t=new Error(e);throw t.status=400,t}}(this.validate(c)),i[h][u].push(e),Object.keys(this.schema).forEach((e=>{Object.hasOwn(c,e)&&(c[e]=r(c[e],c,e,this.schema[e],s,i,o,a))})),s(this,c,u),u}static validate(e){}static queryKey(e,t,n,r){if(!e[0])return;const s=function(e,t,n){if(["string","number"].includes(typeof t[0]))return`${t[0]}`;const r=e.pk(t[0],void 0,"",t);if(void 0!==r&&""!==r)return r;const s=(i=t[0],o=e.indexes,o?o.find((e=>Object.hasOwn(i,e))):void 0);var i,o;if(!s)return;const a=t[0][s];return n(e.key,s,a)[a]}(this,e,r);return n(this.key,s)?s:void 0}static denormalize(e,t,n){if("symbol"==typeof e)return e;for(const t of Object.keys(this.schema)){const r=this.schema[t],s=n(e[t],r);if("symbol"==typeof s){if(this.defaults[t])return s;e[t]=void 0}else e[t]=s}return e}static get defaults(){return Object.hasOwn(this,"__defaults")||Object.defineProperty(this,"__defaults",{value:new this,writable:!0,configurable:!0}),this.__defaults}}const r=S(t,A);if(Object.assign(n,r),"schema"in t?n.schema=t.schema:e.schema||(n.schema={}),"pk"in t?"function"==typeof t.pk?n.prototype.pk=function(e,n){return t.pk(this,e,n)}:n.prototype.pk=function(){return this[t.pk]}:"function"!=typeof e.prototype.pk&&(n.prototype.pk=function(){return this.id}),"key"in t)Object.defineProperty(n,"key",{value:t.key,configurable:!0,writable:!0,enumerable:!0});else if(!("key"in e)){function s(e){Object.defineProperty(this,"key",{value:e,writable:!0,enumerable:!0,configurable:!0})}const i=function(){return"EntityMixin"===this.name?e.name:this.name},o="undefined"!=typeof document&&document.CLS_MANGLE?function(){return null==document.CLS_MANGLE||document.CLS_MANGLE(this),Object.defineProperty(n,"key",{get:i,set:s,enumerable:!0,configurable:!0}),i.call(this)}:i;Object.defineProperty(n,"key",{get:o,set:s,enumerable:!0,configurable:!0})}return n}var P=Object.freeze({__proto__:null,Union:class extends a{constructor(e,t){if(!t)throw new Error('Expected option "schemaAttribute" not found on UnionSchema.');super(e,t)}normalize(e,t,n,r,s,i,o,a){return this.normalizeValue(e,t,n,r,s,i,o,a)}denormalize(e,t,n){return this.denormalizeValue(e,n)}queryKey(e,t,n,r){if(!e[0])return;const s=this.getSchemaAttribute(e[0],void 0,""),i=this.schema[s];if(void 0===i)return;const o=t(i,e,n,r);return void 0!==o?{id:o,schema:s}:void 0}},Values:c,Array:h,All:class extends h{constructor(e,t){super(e,t)}normalize(e,t,n,r,s,i,o,a){super.normalize(e,t,n,r,s,i,o,a)}queryKey(e,t,n,r){if(this.isSingleSchema){const e=n(this.schema.key);return void 0===e?l:Object.values(e).map((e=>e&&this.schema.pk(e)))}let s=!1;const i=Object.values(this.schema).flatMap((e=>{const t=n(e.key);return void 0===t?[]:(s=!0,Object.values(t).map((t=>({id:t&&e.pk(t),schema:this.getSchemaAttribute(t,void 0,void 0)}))))}));return s?i:l}},Object:d,Invalidate:class{constructor(e){this._entity=e}get key(){return this._entity.key}normalize(e,t,n,r,s,i,o,a){const c=this._entity.process(e,t,n,a),u=this._entity.pk(c,t,n,a);return s(this,l,u),u}merge(e,t){return t}mergeWithStore(e,t,n,r){return this.merge(n,r)}mergeMetaWithStore(e,t,n,r){return t}queryKey(e,t,n,r){}denormalize(e,t,n){return n(e,this._entity)}_denormalizeNullable(){return{}}_normalizeNullable(){return{}}},Collection:O,Entity:_,Query:class{constructor(e,t){this.schema=e,this.process=t}normalize(...e){return this.schema.normalize(...e)}denormalize(e,t,n){const r=n(e,this.schema);return"symbol"==typeof r?void 0:this.process(r,...t)}queryKey(e,t,n,r){return t(this.schema,e,n,r)}}});const R=class{};class C extends(_(R)){static process(e,t,n,r){return super.process(e,t,n,r)}}var T;const z="undefined"!=typeof document;let N=z&&!(null!=(T=document.querySelector("meta[http-equiv='Content-Security-Policy']"))&&T.getAttribute("content"));try{N||Function()}catch(e){N=!0,z&&console.error("Content Security Policy: The previous CSP log can be safely ignored - @data-client/endpoint will use setPrototypeOf instead")}var $;class K extends Function{constructor(e,t){let n,r;return N?(n=(...e)=>n.fetch(...e),Object.setPrototypeOf(n,new.target.prototype)):(super("return arguments.callee.fetch.apply(arguments.callee, arguments)"),n=this),e&&(n.fetch=e),t&&"name"in t||!e||!e.name||"anonymous"===e.name||(r=e.name),Object.defineProperty(n,"name",{get(){return r||this.__name},set(e){this.__name=e}}),Object.assign(n,t),n}key(...e){return`${this.name} ${JSON.stringify(e)}`}testKey(e){return e.startsWith(this.name)}bind(e,...t){const n=this.fetch,r=this.key;return this.extend({fetch(){return n.apply(null!=e?e:this,t)},key(){return r.apply(this,t)}})}extend(e){class t extends this.constructor{}return Object.assign(t.prototype,this),new t(e.fetch,e)}}$=K,(()=>{if("undefined"!=typeof document&&document.FUNC_MANGLE){const e=$.prototype.key;$.prototype.key=function(...t){return null==document.FUNC_MANGLE||document.FUNC_MANGLE(this),this.prototype.key=e,e.call(this,...t)}}})();const M=K;function F(e,t){void 0===t&&(t={});for(var n=function(e){for(var t=[],n=0;n<e.length;){var r=e[n];if("*"!==r&&"+"!==r&&"?"!==r)if("\\"!==r)if("{"!==r)if("}"!==r)if(":"!==r)if("("!==r)t.push({type:"CHAR",index:n,value:e[n++]});else{var s=1,i="";if("?"===e[a=n+1])throw new TypeError('Pattern cannot start with "?" at '.concat(a));for(;a<e.length;)if("\\"!==e[a]){if(")"===e[a]){if(0==--s){a++;break}}else if("("===e[a]&&(s++,"?"!==e[a+1]))throw new TypeError("Capturing groups are not allowed at ".concat(a));i+=e[a++]}else i+=e[a++]+e[a++];if(s)throw new TypeError("Unbalanced pattern at ".concat(n));if(!i)throw new TypeError("Missing pattern at ".concat(n));t.push({type:"PATTERN",index:n,value:i}),n=a}else{for(var o="",a=n+1;a<e.length;){var c=e.charCodeAt(a);if(!(c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122||95===c))break;o+=e[a++]}if(!o)throw new TypeError("Missing parameter name at ".concat(n));t.push({type:"NAME",index:n,value:o}),n=a}else t.push({type:"CLOSE",index:n,value:e[n++]});else t.push({type:"OPEN",index:n,value:e[n++]});else t.push({type:"ESCAPED_CHAR",index:n++,value:e[n++]});else t.push({type:"MODIFIER",index:n,value:e[n++]})}return t.push({type:"END",index:n,value:""}),t}(e),r=t.prefixes,s=void 0===r?"./":r,i="[^".concat(L(t.delimiter||"/#?"),"]+?"),o=[],a=0,c=0,u="",h=function(e){if(c<n.length&&n[c].type===e)return n[c++].value},l=function(e){var t=h(e);if(void 0!==t)return t;var r=n[c],s=r.type,i=r.index;throw new TypeError("Unexpected ".concat(s," at ").concat(i,", expected ").concat(e))},f=function(){for(var e,t="";e=h("CHAR")||h("ESCAPED_CHAR");)t+=e;return t};c<n.length;){var d=h("CHAR"),p=h("NAME"),m=h("PATTERN");if(p||m){var y=d||"";-1===s.indexOf(y)&&(u+=y,y=""),u&&(o.push(u),u=""),o.push({name:p||a++,prefix:y,suffix:"",pattern:m||i,modifier:h("MODIFIER")||""})}else{var g=d||h("ESCAPED_CHAR");if(g)u+=g;else if(u&&(o.push(u),u=""),h("OPEN")){y=f();var b=h("NAME")||"",v=h("PATTERN")||"",O=f();l("CLOSE"),o.push({name:b||(v?a++:""),pattern:b&&!v?i:v,prefix:y,suffix:O,modifier:h("MODIFIER")||""})}else l("END")}}return o}function I(e,t){return function(e,t){void 0===t&&(t={});var n=U(t),r=t.encode,s=void 0===r?function(e){return e}:r,i=t.validate,o=void 0===i||i,a=e.map((function(e){if("object"==typeof e)return new RegExp("^(?:".concat(e.pattern,")$"),n)}));return function(t){for(var n="",r=0;r<e.length;r++){var i=e[r];if("string"!=typeof i){var c=t?t[i.name]:void 0,u="?"===i.modifier||"*"===i.modifier,h="*"===i.modifier||"+"===i.modifier;if(Array.isArray(c)){if(!h)throw new TypeError('Expected "'.concat(i.name,'" to not repeat, but got an array'));if(0===c.length){if(u)continue;throw new TypeError('Expected "'.concat(i.name,'" to not be empty'))}for(var l=0;l<c.length;l++){var f=s(c[l],i);if(o&&!a[r].test(f))throw new TypeError('Expected all "'.concat(i.name,'" to match "').concat(i.pattern,'", but got "').concat(f,'"'));n+=i.prefix+f+i.suffix}}else if("string"!=typeof c&&"number"!=typeof c){if(!u){var d=h?"an array":"a string";throw new TypeError('Expected "'.concat(i.name,'" to be ').concat(d))}}else{f=s(String(c),i);if(o&&!a[r].test(f))throw new TypeError('Expected "'.concat(i.name,'" to match "').concat(i.pattern,'", but got "').concat(f,'"'));n+=i.prefix+f+i.suffix}}else n+=i}return n}}(F(e,t),t)}function L(e){return e.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1")}function U(e){return e&&e.sensitive?"":"i"}function q(e,t,n){return function(e,t,n){void 0===n&&(n={});for(var r=n.strict,s=void 0!==r&&r,i=n.start,o=void 0===i||i,a=n.end,c=void 0===a||a,u=n.encode,h=void 0===u?function(e){return e}:u,l=n.delimiter,f=void 0===l?"/#?":l,d=n.endsWith,p="[".concat(L(void 0===d?"":d),"]|$"),m="[".concat(L(f),"]"),y=o?"^":"",g=0,b=e;g<b.length;g++){var v=b[g];if("string"==typeof v)y+=L(h(v));else{var O=L(h(v.prefix)),x=L(h(v.suffix));if(v.pattern)if(t&&t.push(v),O||x)if("+"===v.modifier||"*"===v.modifier){var j="*"===v.modifier?"?":"";y+="(?:".concat(O,"((?:").concat(v.pattern,")(?:").concat(x).concat(O,"(?:").concat(v.pattern,"))*)").concat(x,")").concat(j)}else y+="(?:".concat(O,"(").concat(v.pattern,")").concat(x,")").concat(v.modifier);else"+"===v.modifier||"*"===v.modifier?y+="((?:".concat(v.pattern,")").concat(v.modifier,")"):y+="(".concat(v.pattern,")").concat(v.modifier);else y+="(?:".concat(O).concat(x,")").concat(v.modifier)}}if(c)s||(y+="".concat(m,"?")),y+=n.endsWith?"(?=".concat(p,")"):"$";else{var E=e[e.length-1],w="string"==typeof E?m.indexOf(E[E.length-1])>-1:void 0===E;s||(y+="(?:".concat(m,"(?=").concat(p,"))?")),w||(y+="(?=".concat(m,"|").concat(p,")"))}return new RegExp(y,U(n))}(F(e,n),t,n)}function D(e,t,n){return e instanceof RegExp?function(e,t){if(!t)return e;for(var n=/\((?:\?<(.*?)>)?(?!\?)/g,r=0,s=n.exec(e.source);s;)t.push({name:s[1]||r++,prefix:"",suffix:"",modifier:"",pattern:""}),s=n.exec(e.source);return e}(e,t):Array.isArray(e)?function(e,t,n){var r=e.map((function(e){return D(e,t,n).source}));return new RegExp("(?:".concat(r.join("|"),")"),U(n))}(e,t,n):q(e,t,n)}function V(e,t){if("object"!=typeof e||void 0===e||Array.isArray(e))return;if(e instanceof O)return t(e);const n=Object.assign({},e instanceof d?e.schema:e);for(const e in n){if(!n[e])continue;const r=V(n[e],t);if(r)return r}}function W(e,t){if("object"!=typeof e||void 0===e)return e;if(e instanceof O)return t(e);const n=Object.assign({},e instanceof d?e.schema:e);for(const e in n)n[e]&&(n[e]=W(n[e],t));return n}class J extends Error{constructor(e){super(e.statusText||`Network response not 'ok': ${e.status}`),this.name="NetworkError",this.status=e.status,this.response=e}}function G(e,t){const n=new Set(e),r=[...e];for(const e of t)n.has(e)||r.push(e);return r}const H=Object.create(null);function B(e){return e in H||(H[e]=I(e,{encode:encodeURIComponent,validate:!1})),H[e]}const Q=Object.create(null);function X(e){return e in Q||(Q[e]=new Set(F(e).map((e=>"string"==typeof e?e:`${e.name}`)))),Q[e]}const Y=Object.prototype,Z=Object.getPrototypeOf;var ee=i("hasBody");class te extends K{constructor(e){var t;super(null!=(t=e.fetch)?t:async function(...e){const t=s(this,ee)[ee]&&e.length<2?{}:e[0]||{},n=s(this,ee)[ee]?e[e.length-1]:void 0;return this.fetchResponse(this.url(t),await this.getRequestInit(n)).then((e=>this.parseResponse(e))).then((t=>this.process(t,...e)))},e),Object.defineProperty(this,ee,{writable:!0,value:void 0}),(!("sideEffect"in this)||"method"in e&&!("sideEffect"in e))&&(this.sideEffect="GET"!==e.method&&void 0!==e.method||void 0),void 0===this.method&&(this.method=this.sideEffect?"POST":"GET"),void 0===this.urlPrefix&&(this.urlPrefix=""),s(this,ee)[ee]=!("body"in this&&void 0===this.body||["GET","DELETE"].includes(this.method)),Object.defineProperty(this,"name",{get(){return"__name"in this?this.__name:this.urlPrefix+this.path}})}key(...e){return`${this.method} ${this.url(s(this,ee)[ee]&&e.length<2?{}:e[0]||{})}`}url(e={}){const t=B(this.path)(e),n=X(this.path),r={};return Object.keys(e).forEach((t=>{n.has(t)||(r[t]=e[t])})),Object.keys(r).length?`${this.urlPrefix}${t}?${this.searchToString(r)}`:`${this.urlPrefix}${t}`}searchToString(e){return function(e){const t=new URLSearchParams(e);return t.sort(),t.toString()}(e)}getHeaders(e){return e}async getRequestInit(e){const t=null!==(n=e)&&"object"==typeof n&&Z(n)===Y;var n;t&&(e=JSON.stringify(e));const r=Object.assign({},this.requestInit,{method:this.method,signal:this.signal,body:e});return e&&!t||(r.headers=Object.assign({"Content-Type":"application/json"},r.headers)),r.headers=await this.getHeaders(r.headers),r}fetchResponse(e,t){return fetch(e,t).then((e=>{if(!e.ok)throw new J(e);return e})).catch((e=>{throw e instanceof TypeError&&(e.status=500),e}))}parseResponse(e){var t;return 204===e.status?Promise.resolve(null):null!=(t=e.headers.get("content-type"))&&t.includes("json")?e.json().catch((e=>{throw e.status=400,e})):e.text().then((t=>{if(["string","undefined"].includes(typeof this.schema)||null===this.schema||this.process!==te.prototype.process)return t;const n=new J(e);throw n.status=404,n.message=`Unexpected text response for schema ${this.schema}`,n}))}process(e){return e}errorPolicy(e){return e.status>=500?"soft":void 0}get pathRegex(){return D(this.path)}testKey(e){const t=this.method+" "+this.urlPrefix;if(!e.startsWith(t))return!1;let n=e.lastIndexOf("?");return-1===n&&(n=void 0),this.pathRegex.test(e.substring(t.length,n))}extend(e){class t extends this.constructor{}return Object.assign(t.prototype,this),new t(Object.assign({fetch:this.fetch},e))}paginated(e){if("string"==typeof e){const t=e;e=e=>{let n=Object.assign({},(r(e),e));return delete n[t],[n]}}let t=!1;const n=W(this.schema,(n=>(t=!0,function(e,t){return Object.create(t,{name:{value:`Pagination(${t.schema})`},merge:{value:G},pk:{value:function(n,r,s,i){return t.pk.call(this,n,r,s,e(...i))}}})}(e,n))));if(!t)throw new Error("Missing Collection");const s=this;return this.extend({schema:n,key(...t){return s.key.call(this,...e(...t))},name:this.name+".getPage"})}get getPage(){return this.paginated(this.paginationField)}get push(){return this.extend({method:"POST",schema:V(this.schema,(e=>e.push)),name:this.name+".create"})}get unshift(){return this.extend({method:"POST",schema:V(this.schema,(e=>e.unshift)),name:this.name+".create"})}get assign(){return this.extend({method:"POST",schema:V(this.schema,(e=>e.assign)),name:this.name+".create"})}}const ne=["path","schema","Endpoint","Collection","optimistic","paginationField"],{Invalidate:re,Collection:se}=P;function ie(e,t,n){return Object.assign({},t,ae(n))}function oe(e,t){return t}function ae(e){return e instanceof FormData?Object.fromEntries(e.entries()):e}Object.hasOwn=Object.hasOwn||function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},e.Endpoint=K,e.Entity=C,e.ExtendableEndpoint=M,e.INVALID=l,e.NetworkError=J,e.RestEndpoint=te,e.createResource=function(e){let{path:t,schema:n,Endpoint:r=te,Collection:s=se,optimistic:i,paginationField:o}=e,a=S(e,ne);const c=function(e){const t=e.lastIndexOf(":");if(-1===t)throw new Error("Resource path requires at least one :parameter");let n=e.substring(0,t);return"/"===n[n.length-1]&&(n=n.substring(0,n.length-1)),n}(t),u=e=>`${null==n?void 0:n.name}.${e}`;function h(e,t,n){e[t]=e[t].extend(n)}const l=Object.assign({},a),f=Object.assign({},a),d=new r(Object.assign({},a,{path:t,schema:n,name:u("get")}));i&&(l.getOptimisticResponse=ie,f.getOptimisticResponse=function(e){return function(t,n,r){const s=t.get(e,n);if(!s)throw t.abort;return Object.assign({},n,s,ae(r))}}(n));const p=new r(Object.assign({},l,{paginationField:o,path:c,schema:new s([n]),name:u("getList")}));return{get:d,getList:p,create:p.push.extend({name:u("create")}),update:new r(Object.assign({},l,{path:t,schema:n,method:"PUT",name:u("update")})),partialUpdate:new r(Object.assign({},f,{path:t,schema:n,method:"PATCH",name:u("partialUpdate")})),delete:new r(Object.assign({},l,{path:t,schema:n.process?new re(n):n,method:"DELETE",name:u("delete"),process:(e,t)=>e&&Object.keys(e).length?e:t,getOptimisticResponse:i?oe:void 0})),extend(...e){if("string"==typeof e[0]){const[t,n]=e;if(t in this){const e=Object.assign({},this);return h(e,t,n),e}return Object.assign({},this,{[t]:this.get.extend(n)})}if("function"==typeof e[0]){const t=e[0](this);return Object.assign({},this,t)}const t=e[0],n=Object.assign({},this);for(const e in t)h(n,e,t[e]);return n}}},e.getUrlBase=B,e.getUrlTokens=X,e.hookifyResource=function(e,t){const n={};return Object.keys(e).forEach((r=>{const s=e[r];var i;void 0!==s.extend&&(n[`use${i=r,i.charAt(0).toUpperCase()+i.slice(1)}`]=()=>{const e=t();return s.extend({requestInit:e})})})),n},e.schema=P,e.validateRequired=function(e,t){let n="";if(Object.keys(t).some((t=>!Object.hasOwn(e,t)&&(n=t,!0))))return`Missing key ${n}`},Object.defineProperty(e,"__esModule",{value:!0})}));
|
package/legacy/NetworkError.js
CHANGED
|
@@ -10,4 +10,4 @@ export default class NetworkError extends Error {
|
|
|
10
10
|
this.response = response;
|
|
11
11
|
}
|
|
12
12
|
}
|
|
13
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
13
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJOZXR3b3JrRXJyb3IiLCJFcnJvciIsImNvbnN0cnVjdG9yIiwicmVzcG9uc2UiLCJzdGF0dXNUZXh0Iiwic3RhdHVzIiwibmFtZSJdLCJzb3VyY2VzIjpbIi4uL3NyYy9OZXR3b3JrRXJyb3IudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqIEFuIGVycm9yIHdpdGggYSBSZXN0IEVuZHBvaW50IGZldGNoXG4gKlxuICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvTmV0d29ya0Vycm9yXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE5ldHdvcmtFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgZGVjbGFyZSBzdGF0dXM6IG51bWJlcjtcbiAgZGVjbGFyZSByZXNwb25zZTogUmVzcG9uc2U7XG4gIG5hbWUgPSAnTmV0d29ya0Vycm9yJztcblxuICBjb25zdHJ1Y3RvcihyZXNwb25zZTogUmVzcG9uc2UpIHtcbiAgICBzdXBlcihcbiAgICAgIHJlc3BvbnNlLnN0YXR1c1RleHQgfHwgYE5ldHdvcmsgcmVzcG9uc2Ugbm90ICdvayc6ICR7cmVzcG9uc2Uuc3RhdHVzfWAsXG4gICAgKTtcbiAgICB0aGlzLnN0YXR1cyA9IHJlc3BvbnNlLnN0YXR1cztcbiAgICB0aGlzLnJlc3BvbnNlID0gcmVzcG9uc2U7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLE1BQU1BLFlBQVksU0FBU0MsS0FBSyxDQUFDO0VBSzlDQyxXQUFXQSxDQUFDQyxRQUFrQixFQUFFO0lBQzlCLEtBQUssQ0FDSEEsUUFBUSxDQUFDQyxVQUFVLElBQUssOEJBQTZCRCxRQUFRLENBQUNFLE1BQU8sRUFDdkUsQ0FBQztJQUFDLEtBTEpDLElBQUksR0FBRyxjQUFjO0lBTW5CLElBQUksQ0FBQ0QsTUFBTSxHQUFHRixRQUFRLENBQUNFLE1BQU07SUFDN0IsSUFBSSxDQUFDRixRQUFRLEdBQUdBLFFBQVE7RUFDMUI7QUFDRiIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL09wdGlvbnNUb0Z1bmN0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRmV0Y2hGdW5jdGlvbiwgUmVzb2x2ZVR5cGUgfSBmcm9tICdAZGF0YS1jbGllbnQvZW5kcG9pbnQnO1xuXG5pbXBvcnQgeyBQYXRoQXJncyB9IGZyb20gJy4vcGF0aFR5cGVzLmpzJztcbmltcG9ydCB7IFBhcnRpYWxSZXN0R2VuZXJpY3MsIFJlc3RGZXRjaCB9IGZyb20gJy4vUmVzdEVuZHBvaW50LmpzJztcblxuZXhwb3J0IHR5cGUgT3B0aW9uc1RvRnVuY3Rpb248XG4gIE8gZXh0ZW5kcyBQYXJ0aWFsUmVzdEdlbmVyaWNzLFxuICBFIGV4dGVuZHMgeyBib2R5PzogYW55OyBwYXRoPzogc3RyaW5nOyBtZXRob2Q/OiBzdHJpbmcgfSxcbiAgRiBleHRlbmRzIEZldGNoRnVuY3Rpb24sXG4+ID1cbiAgJ3BhdGgnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgUmVzdEZldGNoPFxuICAgICAgJ3NlYXJjaFBhcmFtcycgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICAgICAgT1snc2VhcmNoUGFyYW1zJ10gJiBQYXRoQXJnczxFeGNsdWRlPE9bJ3BhdGgnXSwgdW5kZWZpbmVkPj5cbiAgICAgIDogUGF0aEFyZ3M8RXhjbHVkZTxPWydwYXRoJ10sIHVuZGVmaW5lZD4+LFxuICAgICAgT3B0aW9uc1RvQm9keUFyZ3VtZW50PFxuICAgICAgICAnYm9keScgZXh0ZW5kcyBrZXlvZiBPID8gTyA6IEUsXG4gICAgICAgICdtZXRob2QnIGV4dGVuZHMga2V5b2YgTyA/IE9bJ21ldGhvZCddIDogRVsnbWV0aG9kJ11cbiAgICAgID4sXG4gICAgICBPWydwcm9jZXNzJ10gZXh0ZW5kcyB7fSA/IFJldHVyblR5cGU8T1sncHJvY2VzcyddPiA6IFJlc29sdmVUeXBlPEY+XG4gICAgPlxuICA6ICdib2R5JyBleHRlbmRzIGtleW9mIE8gP1xuICAgIFJlc3RGZXRjaDxcbiAgICAgICdzZWFyY2hQYXJhbXMnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgICAgIE9bJ3NlYXJjaFBhcmFtcyddICYgUGF0aEFyZ3M8RXhjbHVkZTxFWydwYXRoJ10sIHVuZGVmaW5lZD4+XG4gICAgICA6IFBhdGhBcmdzPEV4Y2x1ZGU8RVsncGF0aCddLCB1bmRlZmluZWQ+PixcbiAgICAgIE9wdGlvbnNUb0JvZHlBcmd1bWVudDxcbiAgICAgICAgTyxcbiAgICAgICAgJ21ldGhvZCcgZXh0ZW5kcyBrZXlvZiBPID8gT1snbWV0aG9kJ10gOiBFWydtZXRob2QnXVxuICAgICAgPixcbiAgICAgIE9bJ3Byb2Nlc3MnXSBleHRlbmRzIHt9ID8gUmV0dXJuVHlwZTxPWydwcm9jZXNzJ10+IDogUmVzb2x2ZVR5cGU8Rj5cbiAgICA+XG4gIDogJ3NlYXJjaFBhcmFtcycgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICBSZXN0RmV0Y2g8XG4gICAgICBPWydzZWFyY2hQYXJhbXMnXSAmIFBhdGhBcmdzPEV4Y2x1ZGU8RVsncGF0aCddLCB1bmRlZmluZWQ+PixcbiAgICAgIE9wdGlvbnNUb0JvZHlBcmd1bWVudDxcbiAgICAgICAgRSxcbiAgICAgICAgJ21ldGhvZCcgZXh0ZW5kcyBrZXlvZiBPID8gT1snbWV0aG9kJ10gOiBFWydtZXRob2QnXVxuICAgICAgPixcbiAgICAgIE9bJ3Byb2Nlc3MnXSBleHRlbmRzIHt9ID8gUmV0dXJuVHlwZTxPWydwcm9jZXNzJ10+IDogUmVzb2x2ZVR5cGU8Rj5cbiAgICA+XG4gIDogKFxuICAgICAgdGhpczogVGhpc1BhcmFtZXRlclR5cGU8Rj4sXG4gICAgICAuLi5hcmdzOiBQYXJhbWV0ZXJzPEY+XG4gICAgKSA9PiBQcm9taXNlPFxuICAgICAgT1sncHJvY2VzcyddIGV4dGVuZHMge30gPyBSZXR1cm5UeXBlPE9bJ3Byb2Nlc3MnXT4gOiBSZXNvbHZlVHlwZTxGPlxuICAgID47XG5cbmV4cG9ydCB0eXBlIE9wdGlvbnNUb0JvZHlBcmd1bWVudDxcbiAgTyBleHRlbmRzIHsgYm9keT86IGFueSB9LFxuICBNZXRob2QgZXh0ZW5kcyBzdHJpbmcgfCB1bmRlZmluZWQsXG4+
|
|
2
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL09wdGlvbnNUb0Z1bmN0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRmV0Y2hGdW5jdGlvbiwgUmVzb2x2ZVR5cGUgfSBmcm9tICdAZGF0YS1jbGllbnQvZW5kcG9pbnQnO1xuXG5pbXBvcnQgeyBQYXRoQXJncyB9IGZyb20gJy4vcGF0aFR5cGVzLmpzJztcbmltcG9ydCB7IFBhcnRpYWxSZXN0R2VuZXJpY3MsIFJlc3RGZXRjaCB9IGZyb20gJy4vUmVzdEVuZHBvaW50LmpzJztcblxuZXhwb3J0IHR5cGUgT3B0aW9uc1RvRnVuY3Rpb248XG4gIE8gZXh0ZW5kcyBQYXJ0aWFsUmVzdEdlbmVyaWNzLFxuICBFIGV4dGVuZHMgeyBib2R5PzogYW55OyBwYXRoPzogc3RyaW5nOyBtZXRob2Q/OiBzdHJpbmcgfSxcbiAgRiBleHRlbmRzIEZldGNoRnVuY3Rpb24sXG4+ID1cbiAgJ3BhdGgnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgUmVzdEZldGNoPFxuICAgICAgJ3NlYXJjaFBhcmFtcycgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICAgICAgT1snc2VhcmNoUGFyYW1zJ10gJiBQYXRoQXJnczxFeGNsdWRlPE9bJ3BhdGgnXSwgdW5kZWZpbmVkPj5cbiAgICAgIDogUGF0aEFyZ3M8RXhjbHVkZTxPWydwYXRoJ10sIHVuZGVmaW5lZD4+LFxuICAgICAgT3B0aW9uc1RvQm9keUFyZ3VtZW50PFxuICAgICAgICAnYm9keScgZXh0ZW5kcyBrZXlvZiBPID8gTyA6IEUsXG4gICAgICAgICdtZXRob2QnIGV4dGVuZHMga2V5b2YgTyA/IE9bJ21ldGhvZCddIDogRVsnbWV0aG9kJ11cbiAgICAgID4sXG4gICAgICBPWydwcm9jZXNzJ10gZXh0ZW5kcyB7fSA/IFJldHVyblR5cGU8T1sncHJvY2VzcyddPiA6IFJlc29sdmVUeXBlPEY+XG4gICAgPlxuICA6ICdib2R5JyBleHRlbmRzIGtleW9mIE8gP1xuICAgIFJlc3RGZXRjaDxcbiAgICAgICdzZWFyY2hQYXJhbXMnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgICAgIE9bJ3NlYXJjaFBhcmFtcyddICYgUGF0aEFyZ3M8RXhjbHVkZTxFWydwYXRoJ10sIHVuZGVmaW5lZD4+XG4gICAgICA6IFBhdGhBcmdzPEV4Y2x1ZGU8RVsncGF0aCddLCB1bmRlZmluZWQ+PixcbiAgICAgIE9wdGlvbnNUb0JvZHlBcmd1bWVudDxcbiAgICAgICAgTyxcbiAgICAgICAgJ21ldGhvZCcgZXh0ZW5kcyBrZXlvZiBPID8gT1snbWV0aG9kJ10gOiBFWydtZXRob2QnXVxuICAgICAgPixcbiAgICAgIE9bJ3Byb2Nlc3MnXSBleHRlbmRzIHt9ID8gUmV0dXJuVHlwZTxPWydwcm9jZXNzJ10+IDogUmVzb2x2ZVR5cGU8Rj5cbiAgICA+XG4gIDogJ3NlYXJjaFBhcmFtcycgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICBSZXN0RmV0Y2g8XG4gICAgICBPWydzZWFyY2hQYXJhbXMnXSAmIFBhdGhBcmdzPEV4Y2x1ZGU8RVsncGF0aCddLCB1bmRlZmluZWQ+PixcbiAgICAgIE9wdGlvbnNUb0JvZHlBcmd1bWVudDxcbiAgICAgICAgRSxcbiAgICAgICAgJ21ldGhvZCcgZXh0ZW5kcyBrZXlvZiBPID8gT1snbWV0aG9kJ10gOiBFWydtZXRob2QnXVxuICAgICAgPixcbiAgICAgIE9bJ3Byb2Nlc3MnXSBleHRlbmRzIHt9ID8gUmV0dXJuVHlwZTxPWydwcm9jZXNzJ10+IDogUmVzb2x2ZVR5cGU8Rj5cbiAgICA+XG4gIDogKFxuICAgICAgdGhpczogVGhpc1BhcmFtZXRlclR5cGU8Rj4sXG4gICAgICAuLi5hcmdzOiBQYXJhbWV0ZXJzPEY+XG4gICAgKSA9PiBQcm9taXNlPFxuICAgICAgT1sncHJvY2VzcyddIGV4dGVuZHMge30gPyBSZXR1cm5UeXBlPE9bJ3Byb2Nlc3MnXT4gOiBSZXNvbHZlVHlwZTxGPlxuICAgID47XG5cbmV4cG9ydCB0eXBlIE9wdGlvbnNUb0JvZHlBcmd1bWVudDxcbiAgTyBleHRlbmRzIHsgYm9keT86IGFueSB9LFxuICBNZXRob2QgZXh0ZW5kcyBzdHJpbmcgfCB1bmRlZmluZWQsXG4+ID1cbiAgTWV0aG9kIGV4dGVuZHMgJ1BPU1QnIHwgJ1BVVCcgfCAnUEFUQ0gnIHwgJ0RFTEVURScgP1xuICAgICdib2R5JyBleHRlbmRzIGtleW9mIE8gP1xuICAgICAgT1snYm9keSddXG4gICAgOiBhbnlcbiAgOiB1bmRlZmluZWQ7XG4iXSwibWFwcGluZ3MiOiIiLCJpZ25vcmVMaXN0IjpbXX0=
|
package/legacy/RestEndpoint.js
CHANGED
|
@@ -232,4 +232,4 @@ const tryParse = input => {
|
|
|
232
232
|
return undefined;
|
|
233
233
|
}
|
|
234
234
|
};
|
|
235
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJFbmRwb2ludCIsInBhdGhUb1JlZ2V4cCIsImV4dHJhY3RDb2xsZWN0aW9uIiwibWFwQ29sbGVjdGlvbiIsIk5ldHdvcmtFcnJvciIsImNyZWF0ZVBhZ2luYXRpb25TY2hlbWEiLCJwYXJhbXNUb1N0cmluZyIsImdldFVybEJhc2UiLCJnZXRVcmxUb2tlbnMiLCJpc1Bvam8iLCJfaGFzQm9keSIsIl9jbGFzc1ByaXZhdGVGaWVsZExvb3NlS2V5IiwiUmVzdEVuZHBvaW50IiwiY29uc3RydWN0b3IiLCJvcHRpb25zIiwiX29wdGlvbnMkZmV0Y2giLCJmZXRjaCIsImFyZ3MiLCJ1cmxQYXJhbXMiLCJfY2xhc3NQcml2YXRlRmllbGRMb29zZUJhc2UiLCJsZW5ndGgiLCJib2R5IiwidW5kZWZpbmVkIiwiZmV0Y2hSZXNwb25zZSIsInVybCIsImdldFJlcXVlc3RJbml0IiwidGhlbiIsInJlc3BvbnNlIiwicGFyc2VSZXNwb25zZSIsInJlcyIsInByb2Nlc3MiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsIndyaXRhYmxlIiwidmFsdWUiLCJzaWRlRWZmZWN0IiwibWV0aG9kIiwidXJsUHJlZml4IiwiaW5jbHVkZXMiLCJnZXQiLCJfX25hbWUiLCJwYXRoIiwia2V5IiwidXJsQmFzZSIsInRva2VucyIsInNlYXJjaFBhcmFtcyIsImtleXMiLCJmb3JFYWNoIiwiayIsImhhcyIsInNlYXJjaFRvU3RyaW5nIiwiZ2V0SGVhZGVycyIsImhlYWRlcnMiLCJib2R5SXNQb2pvIiwiSlNPTiIsInN0cmluZ2lmeSIsImluaXQiLCJhc3NpZ24iLCJyZXF1ZXN0SW5pdCIsInNpZ25hbCIsImlucHV0Iiwib2siLCJjYXRjaCIsImVycm9yIiwiVHlwZUVycm9yIiwic3RhdHVzIiwiX3Jlc3BvbnNlJGhlYWRlcnMkZ2V0IiwiUHJvbWlzZSIsInJlc29sdmUiLCJ0ZXh0Iiwic2NoZW1hIiwicHJvdG90eXBlIiwibWVzc2FnZSIsImVudiIsIk5PREVfRU5WIiwiX3Jlc3BvbnNlJGhlYWRlcnMkZ2V0MiIsInN0YXJ0c1dpdGgiLCJ0cnlQYXJzZSIsInN1YnN0cmluZyIsImpzb24iLCJlcnJvclBvbGljeSIsInBhdGhSZWdleCIsInRlc3RLZXkiLCJwcmVmaXgiLCJsYXN0UXVlc3Rpb24iLCJsYXN0SW5kZXhPZiIsInRlc3QiLCJleHRlbmQiLCJFIiwicGFnaW5hdGVkIiwicmVtb3ZlQ3Vyc29yIiwiZmllbGROYW1lIiwiX3JlZiIsInBhcmFtcyIsIl9vYmplY3REZXN0cnVjdHVyaW5nRW1wdHkiLCJmb3VuZCIsImNyZWF0ZVBhZ2luYXRlZFNjaGVtYSIsImNvbGxlY3Rpb24iLCJuZXdTY2hlbWEiLCJFcnJvciIsInN1cCIsImNhbGwiLCJuYW1lIiwiZ2V0UGFnZSIsInBhZ2luYXRpb25GaWVsZCIsInB1c2giLCJzIiwidW5zaGlmdCIsInBhcnNlIiwiZSJdLCJzb3VyY2VzIjpbIi4uL3NyYy9SZXN0RW5kcG9pbnQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW5kcG9pbnQgfSBmcm9tICdAZGF0YS1jbGllbnQvZW5kcG9pbnQnO1xuaW1wb3J0IHsgcGF0aFRvUmVnZXhwIH0gZnJvbSAncGF0aC10by1yZWdleHAnO1xuXG5pbXBvcnQgZXh0cmFjdENvbGxlY3Rpb24gZnJvbSAnLi9leHRyYWN0Q29sbGVjdGlvbi5qcyc7XG5pbXBvcnQgbWFwQ29sbGVjdGlvbiBmcm9tICcuL21hcENvbGxlY3Rpb24uanMnO1xuaW1wb3J0IE5ldHdvcmtFcnJvciBmcm9tICcuL05ldHdvcmtFcnJvci5qcyc7XG5pbXBvcnQgeyBjcmVhdGVQYWdpbmF0aW9uU2NoZW1hIH0gZnJvbSAnLi9wYWdpbmF0ZWRDb2xsZWN0aW9ucy5qcyc7XG5pbXBvcnQgcGFyYW1zVG9TdHJpbmcgZnJvbSAnLi9wYXJhbXNUb1N0cmluZy5qcyc7XG5pbXBvcnQgeyBnZXRVcmxCYXNlLCBnZXRVcmxUb2tlbnMsIGlzUG9qbyB9IGZyb20gJy4vUmVzdEhlbHBlcnMuanMnO1xuXG4vKiogU2ltcGxpZmllcyBlbmRwb2ludCBkZWZpbml0aW9ucyB0aGF0IGZvbGxvdyBSRVNUIHBhdHRlcm5zXG4gKlxuICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50XG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJlc3RFbmRwb2ludCBleHRlbmRzIEVuZHBvaW50IHtcbiAgI2hhc0JvZHk7XG4gIGNvbnN0cnVjdG9yKG9wdGlvbnMpIHtcbiAgICBzdXBlcihcbiAgICAgIG9wdGlvbnMuZmV0Y2ggPz9cbiAgICAgICAgYXN5bmMgZnVuY3Rpb24gKC4uLmFyZ3MpIHtcbiAgICAgICAgICBjb25zdCB1cmxQYXJhbXMgPVxuICAgICAgICAgICAgdGhpcy4jaGFzQm9keSAmJiBhcmdzLmxlbmd0aCA8IDIgPyB7fSA6IGFyZ3NbMF0gfHwge307XG4gICAgICAgICAgY29uc3QgYm9keSA9IHRoaXMuI2hhc0JvZHkgPyBhcmdzW2FyZ3MubGVuZ3RoIC0gMV0gOiB1bmRlZmluZWQ7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZmV0Y2hSZXNwb25zZShcbiAgICAgICAgICAgIHRoaXMudXJsKHVybFBhcmFtcyksXG4gICAgICAgICAgICBhd2FpdCB0aGlzLmdldFJlcXVlc3RJbml0KGJvZHkpLFxuICAgICAgICAgIClcbiAgICAgICAgICAgIC50aGVuKHJlc3BvbnNlID0+IHRoaXMucGFyc2VSZXNwb25zZShyZXNwb25zZSkpXG4gICAgICAgICAgICAudGhlbihyZXMgPT4gdGhpcy5wcm9jZXNzKHJlcywgLi4uYXJncykpO1xuICAgICAgICB9LFxuICAgICAgb3B0aW9ucyxcbiAgICApO1xuICAgIC8vIHdlIHdhbnQgdG8gdXNlIHRoZSBwcm90b3R5cGUgY2hhaW4gaGVyZVxuICAgIGlmIChcbiAgICAgICEoJ3NpZGVFZmZlY3QnIGluIHRoaXMpIHx8XG4gICAgICAoJ21ldGhvZCcgaW4gb3B0aW9ucyAmJiAhKCdzaWRlRWZmZWN0JyBpbiBvcHRpb25zKSlcbiAgICApIHtcbiAgICAgIHRoaXMuc2lkZUVmZmVjdCA9XG4gICAgICAgIG9wdGlvbnMubWV0aG9kID09PSAnR0VUJyB8fCBvcHRpb25zLm1ldGhvZCA9PT0gdW5kZWZpbmVkID9cbiAgICAgICAgICB1bmRlZmluZWRcbiAgICAgICAgOiB0cnVlO1xuICAgIH1cbiAgICBpZiAodGhpcy5tZXRob2QgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5tZXRob2QgPSB0aGlzLnNpZGVFZmZlY3QgPyAnUE9TVCcgOiAnR0VUJztcbiAgICB9XG4gICAgaWYgKHRoaXMudXJsUHJlZml4ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMudXJsUHJlZml4ID0gJyc7XG4gICAgfVxuICAgIHRoaXMuI2hhc0JvZHkgPVxuICAgICAgKCEoJ2JvZHknIGluIHRoaXMpIHx8IHRoaXMuYm9keSAhPT0gdW5kZWZpbmVkKSAmJlxuICAgICAgIVsnR0VUJywgJ0RFTEVURSddLmluY2x1ZGVzKHRoaXMubWV0aG9kKTtcblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCAnbmFtZScsIHtcbiAgICAgIGdldCgpIHtcbiAgICAgICAgLy8gdXNpbmcgJ2luJyB0byBlbnN1cmUgaW5oZXJpdGFuY2UgbG9va3VwXG4gICAgICAgIGlmICgnX19uYW1lJyBpbiB0aGlzKSByZXR1cm4gdGhpcy5fX25hbWU7XG4gICAgICAgIHJldHVybiB0aGlzLnVybFByZWZpeCArIHRoaXMucGF0aDtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBrZXkoLi4uYXJncykge1xuICAgIHJldHVybiBgJHt0aGlzLm1ldGhvZH0gJHt0aGlzLnVybChcbiAgICAgIHRoaXMuI2hhc0JvZHkgJiYgYXJncy5sZW5ndGggPCAyID8ge30gOiBhcmdzWzBdIHx8IHt9LFxuICAgICl9YDtcbiAgfVxuXG4gIC8qKiBHZXQgdGhlIHVybCAqL1xuICB1cmwodXJsUGFyYW1zID0ge30pIHtcbiAgICBjb25zdCB1cmxCYXNlID0gZ2V0VXJsQmFzZSh0aGlzLnBhdGgpKHVybFBhcmFtcyk7XG4gICAgY29uc3QgdG9rZW5zID0gZ2V0VXJsVG9rZW5zKHRoaXMucGF0aCk7XG4gICAgY29uc3Qgc2VhcmNoUGFyYW1zID0ge307XG4gICAgT2JqZWN0LmtleXModXJsUGFyYW1zKS5mb3JFYWNoKGsgPT4ge1xuICAgICAgaWYgKCF0b2tlbnMuaGFzKGspKSB7XG4gICAgICAgIHNlYXJjaFBhcmFtc1trXSA9IHVybFBhcmFtc1trXTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBpZiAoT2JqZWN0LmtleXMoc2VhcmNoUGFyYW1zKS5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBgJHt0aGlzLnVybFByZWZpeH0ke3VybEJhc2V9PyR7dGhpcy5zZWFyY2hUb1N0cmluZyhzZWFyY2hQYXJhbXMpfWA7XG4gICAgfVxuICAgIHJldHVybiBgJHt0aGlzLnVybFByZWZpeH0ke3VybEJhc2V9YDtcbiAgfVxuXG4gIC8qKiBFbmNvZGUgdGhlIHVybCBzZWFyY2hQYXJhbXMgKi9cbiAgc2VhcmNoVG9TdHJpbmcoc2VhcmNoUGFyYW1zKSB7XG4gICAgcmV0dXJuIHBhcmFtc1RvU3RyaW5nKHNlYXJjaFBhcmFtcyk7XG4gIH1cblxuICBnZXRIZWFkZXJzKGhlYWRlcnMpIHtcbiAgICByZXR1cm4gaGVhZGVycztcbiAgfVxuXG4gIC8qKiBJbml0IG9wdGlvbnMgZm9yIGZldGNoIC0gcnVuIGF0IGZldGNoICovXG4gIGFzeW5jIGdldFJlcXVlc3RJbml0KGJvZHkpIHtcbiAgICBjb25zdCBib2R5SXNQb2pvID0gaXNQb2pvKGJvZHkpO1xuICAgIGlmIChib2R5SXNQb2pvKSB7XG4gICAgICBib2R5ID0gSlNPTi5zdHJpbmdpZnkoYm9keSk7XG4gICAgfVxuICAgIGNvbnN0IGluaXQgPSB7XG4gICAgICAuLi50aGlzLnJlcXVlc3RJbml0LFxuICAgICAgbWV0aG9kOiB0aGlzLm1ldGhvZCxcbiAgICAgIHNpZ25hbDogdGhpcy5zaWduYWwsXG4gICAgICBib2R5LFxuICAgIH07XG4gICAgaWYgKCFib2R5IHx8IGJvZHlJc1Bvam8pIHtcbiAgICAgIGluaXQuaGVhZGVycyA9IHtcbiAgICAgICAgLy8gZGVmYXVsdCB0byBhcHBsaWNhdGlvbi9qc29uIGJ1dCBhbGxvdyB1c2VyIGV4cGxpY2l0IG92ZXJyaWRlc1xuICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAuLi5pbml0LmhlYWRlcnMsXG4gICAgICB9O1xuICAgIH1cbiAgICBpbml0LmhlYWRlcnMgPSBhd2FpdCB0aGlzLmdldEhlYWRlcnMoaW5pdC5oZWFkZXJzKTtcbiAgICByZXR1cm4gaW5pdDtcbiAgfVxuXG4gIC8qKiBQZXJmb3JtIG5ldHdvcmsgcmVxdWVzdCBhbmQgcmVzb2x2ZSB3aXRoIEhUVFAgUmVzcG9uc2UgKi9cbiAgZmV0Y2hSZXNwb25zZShpbnB1dCwgaW5pdCkge1xuICAgIHJldHVybiBmZXRjaChpbnB1dCwgaW5pdClcbiAgICAgIC50aGVuKHJlc3BvbnNlID0+IHtcbiAgICAgICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgICAgIHRocm93IG5ldyBOZXR3b3JrRXJyb3IocmVzcG9uc2UpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goZXJyb3IgPT4ge1xuICAgICAgICAvLyBlbnN1cmUgQ09SUywgbmV0d29yayBkb3duLCBhbmQgcGFyc2UgZXJyb3JzIGFyZSBzdGlsbCBjYXVnaHQgYnkgTmV0d29ya0Vycm9yQm91bmRhcnlcbiAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgVHlwZUVycm9yKSB7XG4gICAgICAgICAgZXJyb3Iuc3RhdHVzID0gNTAwO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgICAgfSk7XG4gIH1cblxuICBwYXJzZVJlc3BvbnNlKHJlc3BvbnNlKSB7XG4gICAgLy8gdGhpcyBzaG91bGQgbm90IGhhdmUgYW55IGNvbnRlbnQgdG8gcmVhZFxuICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT09IDIwNCkgcmV0dXJuIFByb21pc2UucmVzb2x2ZShudWxsKTtcbiAgICBpZiAoIXJlc3BvbnNlLmhlYWRlcnMuZ2V0KCdjb250ZW50LXR5cGUnKT8uaW5jbHVkZXMoJ2pzb24nKSkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLnRleHQoKS50aGVuKHRleHQgPT4ge1xuICAgICAgICAvLyBzdHJpbmcgb3IgJ25vdCBzZXQnIHNjaGVtYSwgYXJlIHZhbGlkXG4gICAgICAgIC8vIHdoZW4gb3ZlcnJpZGluZyBwcm9jZXNzIHRoZXkgbWlnaHQgaGFuZGxlIG90aGVyIGNhc2VzLCBzbyB3ZSBkb24ndCB3YW50IHRvIGJsb2NrIG9uIG91ciBsb2dpY1xuICAgICAgICBpZiAoXG4gICAgICAgICAgWydzdHJpbmcnLCAndW5kZWZpbmVkJ10uaW5jbHVkZXModHlwZW9mIHRoaXMuc2NoZW1hKSB8fFxuICAgICAgICAgIHRoaXMuc2NoZW1hID09PSBudWxsIHx8XG4gICAgICAgICAgdGhpcy5wcm9jZXNzICE9PSBSZXN0RW5kcG9pbnQucHJvdG90eXBlLnByb2Nlc3NcbiAgICAgICAgKVxuICAgICAgICAgIHJldHVybiB0ZXh0O1xuXG4gICAgICAgIGNvbnN0IGVycm9yID0gbmV3IE5ldHdvcmtFcnJvcihyZXNwb25zZSk7XG4gICAgICAgIGVycm9yLnN0YXR1cyA9IDQwNDtcbiAgICAgICAgZXJyb3IubWVzc2FnZSA9IGBVbmV4cGVjdGVkIHRleHQgcmVzcG9uc2UgZm9yIHNjaGVtYSAke3RoaXMuc2NoZW1hfWA7XG4gICAgICAgIC8vIGN1c3RvbSBkZXYtb25seSBtZXNzYWdlcyBmb3IgbW9yZSBkZXRhaWxlZCBjYXVzZVxuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICEoXG4gICAgICAgICAgICAgIHJlc3BvbnNlLmhlYWRlcnMuZ2V0KCdjb250ZW50LXR5cGUnKT8uaW5jbHVkZXMoJ2h0bWwnKSB8fFxuICAgICAgICAgICAgICB0ZXh0LnN0YXJ0c1dpdGgoJzwhZG9jdHlwZSBodG1sPicpXG4gICAgICAgICAgICApXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBpZiAodHJ5UGFyc2UodGV4dCkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICBlcnJvci5tZXNzYWdlID0gYFwiY29udGVudC10eXBlXCIgaGVhZGVyIGRvZXMgbm90IGluY2x1ZGUgXCJqc29uXCIsIGJ1dCBKU09OIHJlc3BvbnNlIGZvdW5kLlxuU2VlIGh0dHBzOi8vd3d3LnJmYy1lZGl0b3Iub3JnL3JmYy9yZmM0NjI3IGZvciBpbmZvcm1hdGlvbiBvbiBKU09OIHJlc3BvbnNlc1xuXG5Vc2luZyBwYXJzZWQgSlNPTi5cbklmIHRleHQgY29udGVudCB3YXMgZXhwZWN0ZWQgc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjcGFyc2VSZXNwb25zZWA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGVycm9yLm1lc3NhZ2UgPSBgVW5leHBlY3RlZCBodG1sIHJlc3BvbnNlIGZvciBzY2hlbWEgJHt0aGlzLnNjaGVtYX1cblRoaXMgbGlrZWx5IG1lYW5zIG5vIEFQSSBlbmRwb2ludCB3YXMgY29uZmlndXJlZCBmb3IgdGhpcyByZXF1ZXN0LCByZXN1bHRpbmcgaW4gYW4gSFRNTCBmYWxsYmFjay5cblxuUmVzcG9uc2UgKGZpcnN0IDMwMCBjaGFyYWN0ZXJzKTogJHt0ZXh0LnN1YnN0cmluZygwLCAzMDApfWA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiByZXNwb25zZS5qc29uKCkuY2F0Y2goZXJyb3IgPT4ge1xuICAgICAgZXJyb3Iuc3RhdHVzID0gNDAwO1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfSk7XG4gIH1cblxuICBwcm9jZXNzKHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgZXJyb3JQb2xpY3koZXJyb3IpIHtcbiAgICByZXR1cm4gZXJyb3Iuc3RhdHVzID49IDUwMCA/ICdzb2Z0JyA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGdldCBwYXRoUmVnZXgoKSB7XG4gICAgcmV0dXJuIHBhdGhUb1JlZ2V4cCh0aGlzLnBhdGgpO1xuICB9XG5cbiAgdGVzdEtleShrZXkpIHtcbiAgICBjb25zdCBwcmVmaXggPSB0aGlzLm1ldGhvZCArICcgJyArIHRoaXMudXJsUHJlZml4O1xuICAgIGlmICgha2V5LnN0YXJ0c1dpdGgocHJlZml4KSkgcmV0dXJuIGZhbHNlO1xuICAgIGxldCBsYXN0UXVlc3Rpb24gPSBrZXkubGFzdEluZGV4T2YoJz8nKTtcbiAgICBpZiAobGFzdFF1ZXN0aW9uID09PSAtMSkgbGFzdFF1ZXN0aW9uID0gdW5kZWZpbmVkO1xuICAgIHJldHVybiB0aGlzLnBhdGhSZWdleC50ZXN0KGtleS5zdWJzdHJpbmcocHJlZml4Lmxlbmd0aCwgbGFzdFF1ZXN0aW9uKSk7XG4gIH1cblxuICBleHRlbmQob3B0aW9ucykge1xuICAgIC8vIG1ha2UgYSBjb25zdHJ1Y3Rvci9wcm90b3R5cGUgYmFzZWQgb2ZmIHRoaXNcbiAgICAvLyBleHRlbmQgZnJvbSBpdCBhbmQgaW5pdCB3aXRoIG9wdGlvbnMgc2VudFxuICAgIGNsYXNzIEUgZXh0ZW5kcyB0aGlzLmNvbnN0cnVjdG9yIHt9XG5cbiAgICBPYmplY3QuYXNzaWduKEUucHJvdG90eXBlLCB0aGlzKTtcblxuICAgIHJldHVybiBuZXcgRShcbiAgICAgIC8vICBmZXRjaCBnZXQgb3ZlcnJpZGRlbiBieSBmdW5jdGlvbiBwcm90b3R5cGUsIHNvIHdlIG11c3Qgc2V0IGl0IGV4cGxpY2l0bHkgZXZlcnkgdGltZVxuICAgICAgeyBmZXRjaDogdGhpcy5mZXRjaCwgLi4ub3B0aW9ucyB9LFxuICAgICk7XG4gIH1cblxuICBwYWdpbmF0ZWQocmVtb3ZlQ3Vyc29yKSB7XG4gICAgaWYgKHR5cGVvZiByZW1vdmVDdXJzb3IgPT09ICdzdHJpbmcnKSB7XG4gICAgICBjb25zdCBmaWVsZE5hbWUgPSByZW1vdmVDdXJzb3I7XG4gICAgICByZW1vdmVDdXJzb3IgPSAoeyAuLi5wYXJhbXMgfSkgPT4ge1xuICAgICAgICBkZWxldGUgcGFyYW1zW2ZpZWxkTmFtZV07XG4gICAgICAgIHJldHVybiBbcGFyYW1zXTtcbiAgICAgIH07XG4gICAgfVxuICAgIGxldCBmb3VuZCA9IGZhbHNlO1xuICAgIGNvbnN0IGNyZWF0ZVBhZ2luYXRlZFNjaGVtYSA9IGNvbGxlY3Rpb24gPT4ge1xuICAgICAgZm91bmQgPSB0cnVlO1xuICAgICAgcmV0dXJuIGNyZWF0ZVBhZ2luYXRpb25TY2hlbWEocmVtb3ZlQ3Vyc29yLCBjb2xsZWN0aW9uKTtcbiAgICB9O1xuICAgIGNvbnN0IG5ld1NjaGVtYSA9IG1hcENvbGxlY3Rpb24odGhpcy5zY2hlbWEsIGNyZWF0ZVBhZ2luYXRlZFNjaGVtYSk7XG5cbiAgICBpZiAoIWZvdW5kKSB0aHJvdyBuZXcgRXJyb3IoJ01pc3NpbmcgQ29sbGVjdGlvbicpO1xuICAgIGNvbnN0IHN1cCA9IHRoaXM7XG5cbiAgICByZXR1cm4gdGhpcy5leHRlbmQoe1xuICAgICAgc2NoZW1hOiBuZXdTY2hlbWEsXG4gICAgICBrZXkoLi4uYXJncykge1xuICAgICAgICByZXR1cm4gc3VwLmtleS5jYWxsKHRoaXMsIC4uLnJlbW92ZUN1cnNvciguLi5hcmdzKSk7XG4gICAgICB9LFxuICAgICAgbmFtZTogdGhpcy5uYW1lICsgJy5nZXRQYWdlJyxcbiAgICB9KTtcbiAgfVxuXG4gIGdldCBnZXRQYWdlKCkge1xuICAgIHJldHVybiB0aGlzLnBhZ2luYXRlZCh0aGlzLnBhZ2luYXRpb25GaWVsZCk7XG4gIH1cblxuICBnZXQgcHVzaCgpIHtcbiAgICByZXR1cm4gdGhpcy5leHRlbmQoe1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBzY2hlbWE6IGV4dHJhY3RDb2xsZWN0aW9uKHRoaXMuc2NoZW1hLCBzID0+IHMucHVzaCksXG4gICAgICBuYW1lOiB0aGlzLm5hbWUgKyAnLmNyZWF0ZScsXG4gICAgfSk7XG4gIH1cblxuICBnZXQgdW5zaGlmdCgpIHtcbiAgICByZXR1cm4gdGhpcy5leHRlbmQoe1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBzY2hlbWE6IGV4dHJhY3RDb2xsZWN0aW9uKHRoaXMuc2NoZW1hLCBzID0+IHMudW5zaGlmdCksXG4gICAgICBuYW1lOiB0aGlzLm5hbWUgKyAnLmNyZWF0ZScsXG4gICAgfSk7XG4gIH1cblxuICBnZXQgYXNzaWduKCkge1xuICAgIHJldHVybiB0aGlzLmV4dGVuZCh7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIHNjaGVtYTogZXh0cmFjdENvbGxlY3Rpb24odGhpcy5zY2hlbWEsIHMgPT4gcy5hc3NpZ24pLFxuICAgICAgbmFtZTogdGhpcy5uYW1lICsgJy5jcmVhdGUnLFxuICAgIH0pO1xuICB9XG59XG5cbmNvbnN0IHRyeVBhcnNlID0gaW5wdXQgPT4ge1xuICB0cnkge1xuICAgIHJldHVybiBKU09OLnBhcnNlKGlucHV0KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn07XG4iXSwibWFwcGluZ3MiOiI7OztBQUFBLFNBQVNBLFFBQVEsUUFBUSx1QkFBdUI7QUFDaEQsU0FBU0MsWUFBWSxRQUFRLGdCQUFnQjtBQUU3QyxPQUFPQyxpQkFBaUIsTUFBTSx3QkFBd0I7QUFDdEQsT0FBT0MsYUFBYSxNQUFNLG9CQUFvQjtBQUM5QyxPQUFPQyxZQUFZLE1BQU0sbUJBQW1CO0FBQzVDLFNBQVNDLHNCQUFzQixRQUFRLDJCQUEyQjtBQUNsRSxPQUFPQyxjQUFjLE1BQU0scUJBQXFCO0FBQ2hELFNBQVNDLFVBQVUsRUFBRUMsWUFBWSxFQUFFQyxNQUFNLFFBQVEsa0JBQWtCOztBQUVuRTtBQUNBO0FBQ0E7QUFDQTtBQUhBLElBQUFDLFFBQUEsZ0JBQUFDLDBCQUFBO0FBSUEsZUFBZSxNQUFNQyxZQUFZLFNBQVNaLFFBQVEsQ0FBQztFQUVqRGEsV0FBV0EsQ0FBQ0MsT0FBTyxFQUFFO0lBQUEsSUFBQUMsY0FBQTtJQUNuQixLQUFLLEVBQUFBLGNBQUEsR0FDSEQsT0FBTyxDQUFDRSxLQUFLLFlBQUFELGNBQUEsR0FDWCxnQkFBZ0IsR0FBR0UsSUFBSSxFQUFFO01BQ3ZCLE1BQU1DLFNBQVMsR0FDYkMsMkJBQUEsS0FBSSxFQUFBVCxRQUFBLEVBQUFBLFFBQUEsS0FBYU8sSUFBSSxDQUFDRyxNQUFNLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHSCxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO01BQ3ZELE1BQU1JLElBQUksR0FBR0YsMkJBQUEsS0FBSSxFQUFBVCxRQUFBLEVBQUFBLFFBQUEsSUFBWU8sSUFBSSxDQUFDQSxJQUFJLENBQUNHLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBR0UsU0FBUztNQUM5RCxPQUFPLElBQUksQ0FBQ0MsYUFBYSxDQUN2QixJQUFJLENBQUNDLEdBQUcsQ0FBQ04sU0FBUyxDQUFDLEVBQ25CLE1BQU0sSUFBSSxDQUFDTyxjQUFjLENBQUNKLElBQUksQ0FDaEMsQ0FBQyxDQUNFSyxJQUFJLENBQUNDLFFBQVEsSUFBSSxJQUFJLENBQUNDLGFBQWEsQ0FBQ0QsUUFBUSxDQUFDLENBQUMsQ0FDOUNELElBQUksQ0FBQ0csR0FBRyxJQUFJLElBQUksQ0FBQ0MsT0FBTyxDQUFDRCxHQUFHLEVBQUUsR0FBR1osSUFBSSxDQUFDLENBQUM7SUFDNUMsQ0FBQyxFQUNISCxPQUNGLENBQUM7SUFDRDtJQUFBaUIsTUFBQSxDQUFBQyxjQUFBLE9BQUF0QixRQUFBO01BQUF1QixRQUFBO01BQUFDLEtBQUE7SUFBQTtJQUNBLElBQ0UsRUFBRSxZQUFZLElBQUksSUFBSSxDQUFDLElBQ3RCLFFBQVEsSUFBSXBCLE9BQU8sSUFBSSxFQUFFLFlBQVksSUFBSUEsT0FBTyxDQUFFLEVBQ25EO01BQ0EsSUFBSSxDQUFDcUIsVUFBVSxHQUNickIsT0FBTyxDQUFDc0IsTUFBTSxLQUFLLEtBQUssSUFBSXRCLE9BQU8sQ0FBQ3NCLE1BQU0sS0FBS2QsU0FBUyxHQUN0REEsU0FBUyxHQUNULElBQUk7SUFDVjtJQUNBLElBQUksSUFBSSxDQUFDYyxNQUFNLEtBQUtkLFNBQVMsRUFBRTtNQUM3QixJQUFJLENBQUNjLE1BQU0sR0FBRyxJQUFJLENBQUNELFVBQVUsR0FBRyxNQUFNLEdBQUcsS0FBSztJQUNoRDtJQUNBLElBQUksSUFBSSxDQUFDRSxTQUFTLEtBQUtmLFNBQVMsRUFBRTtNQUNoQyxJQUFJLENBQUNlLFNBQVMsR0FBRyxFQUFFO0lBQ3JCO0lBQ0FsQiwyQkFBQSxLQUFJLEVBQUFULFFBQUEsRUFBQUEsUUFBQSxJQUNGLENBQUMsRUFBRSxNQUFNLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDVyxJQUFJLEtBQUtDLFNBQVMsS0FDN0MsQ0FBQyxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQ2dCLFFBQVEsQ0FBQyxJQUFJLENBQUNGLE1BQU0sQ0FBQztJQUUxQ0wsTUFBTSxDQUFDQyxjQUFjLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRTtNQUNsQ08sR0FBR0EsQ0FBQSxFQUFHO1FBQ0o7UUFDQSxJQUFJLFFBQVEsSUFBSSxJQUFJLEVBQUUsT0FBTyxJQUFJLENBQUNDLE1BQU07UUFDeEMsT0FBTyxJQUFJLENBQUNILFNBQVMsR0FBRyxJQUFJLENBQUNJLElBQUk7TUFDbkM7SUFDRixDQUFDLENBQUM7RUFDSjtFQUVBQyxHQUFHQSxDQUFDLEdBQUd6QixJQUFJLEVBQUU7SUFDWCxPQUFRLEdBQUUsSUFBSSxDQUFDbUIsTUFBTyxJQUFHLElBQUksQ0FBQ1osR0FBRyxDQUMvQkwsMkJBQUEsS0FBSSxFQUFBVCxRQUFBLEVBQUFBLFFBQUEsS0FBYU8sSUFBSSxDQUFDRyxNQUFNLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHSCxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUN0RCxDQUFFLEVBQUM7RUFDTDs7RUFFQTtFQUNBTyxHQUFHQSxDQUFDTixTQUFTLEdBQUcsQ0FBQyxDQUFDLEVBQUU7SUFDbEIsTUFBTXlCLE9BQU8sR0FBR3BDLFVBQVUsQ0FBQyxJQUFJLENBQUNrQyxJQUFJLENBQUMsQ0FBQ3ZCLFNBQVMsQ0FBQztJQUNoRCxNQUFNMEIsTUFBTSxHQUFHcEMsWUFBWSxDQUFDLElBQUksQ0FBQ2lDLElBQUksQ0FBQztJQUN0QyxNQUFNSSxZQUFZLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZCZCxNQUFNLENBQUNlLElBQUksQ0FBQzVCLFNBQVMsQ0FBQyxDQUFDNkIsT0FBTyxDQUFDQyxDQUFDLElBQUk7TUFDbEMsSUFBSSxDQUFDSixNQUFNLENBQUNLLEdBQUcsQ0FBQ0QsQ0FBQyxDQUFDLEVBQUU7UUFDbEJILFlBQVksQ0FBQ0csQ0FBQyxDQUFDLEdBQUc5QixTQUFTLENBQUM4QixDQUFDLENBQUM7TUFDaEM7SUFDRixDQUFDLENBQUM7SUFDRixJQUFJakIsTUFBTSxDQUFDZSxJQUFJLENBQUNELFlBQVksQ0FBQyxDQUFDekIsTUFBTSxFQUFFO01BQ3BDLE9BQVEsR0FBRSxJQUFJLENBQUNpQixTQUFVLEdBQUVNLE9BQVEsSUFBRyxJQUFJLENBQUNPLGNBQWMsQ0FBQ0wsWUFBWSxDQUFFLEVBQUM7SUFDM0U7SUFDQSxPQUFRLEdBQUUsSUFBSSxDQUFDUixTQUFVLEdBQUVNLE9BQVEsRUFBQztFQUN0Qzs7RUFFQTtFQUNBTyxjQUFjQSxDQUFDTCxZQUFZLEVBQUU7SUFDM0IsT0FBT3ZDLGNBQWMsQ0FBQ3VDLFlBQVksQ0FBQztFQUNyQztFQUVBTSxVQUFVQSxDQUFDQyxPQUFPLEVBQUU7SUFDbEIsT0FBT0EsT0FBTztFQUNoQjs7RUFFQTtFQUNBLE1BQU0zQixjQUFjQSxDQUFDSixJQUFJLEVBQUU7SUFDekIsTUFBTWdDLFVBQVUsR0FBRzVDLE1BQU0sQ0FBQ1ksSUFBSSxDQUFDO0lBQy9CLElBQUlnQyxVQUFVLEVBQUU7TUFDZGhDLElBQUksR0FBR2lDLElBQUksQ0FBQ0MsU0FBUyxDQUFDbEMsSUFBSSxDQUFDO0lBQzdCO0lBQ0EsTUFBTW1DLElBQUksR0FBQXpCLE1BQUEsQ0FBQTBCLE1BQUEsS0FDTCxJQUFJLENBQUNDLFdBQVc7TUFDbkJ0QixNQUFNLEVBQUUsSUFBSSxDQUFDQSxNQUFNO01BQ25CdUIsTUFBTSxFQUFFLElBQUksQ0FBQ0EsTUFBTTtNQUNuQnRDO0lBQUksRUFDTDtJQUNELElBQUksQ0FBQ0EsSUFBSSxJQUFJZ0MsVUFBVSxFQUFFO01BQ3ZCRyxJQUFJLENBQUNKLE9BQU8sR0FBQXJCLE1BQUEsQ0FBQTBCLE1BQUE7UUFDVjtRQUNBLGNBQWMsRUFBRTtNQUFrQixHQUMvQkQsSUFBSSxDQUFDSixPQUFPLENBQ2hCO0lBQ0g7SUFDQUksSUFBSSxDQUFDSixPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUNELFVBQVUsQ0FBQ0ssSUFBSSxDQUFDSixPQUFPLENBQUM7SUFDbEQsT0FBT0ksSUFBSTtFQUNiOztFQUVBO0VBQ0FqQyxhQUFhQSxDQUFDcUMsS0FBSyxFQUFFSixJQUFJLEVBQUU7SUFDekIsT0FBT3hDLEtBQUssQ0FBQzRDLEtBQUssRUFBRUosSUFBSSxDQUFDLENBQ3RCOUIsSUFBSSxDQUFDQyxRQUFRLElBQUk7TUFDaEIsSUFBSSxDQUFDQSxRQUFRLENBQUNrQyxFQUFFLEVBQUU7UUFDaEIsTUFBTSxJQUFJekQsWUFBWSxDQUFDdUIsUUFBUSxDQUFDO01BQ2xDO01BQ0EsT0FBT0EsUUFBUTtJQUNqQixDQUFDLENBQUMsQ0FDRG1DLEtBQUssQ0FBQ0MsS0FBSyxJQUFJO01BQ2Q7TUFDQSxJQUFJQSxLQUFLLFlBQVlDLFNBQVMsRUFBRTtRQUM5QkQsS0FBSyxDQUFDRSxNQUFNLEdBQUcsR0FBRztNQUNwQjtNQUNBLE1BQU1GLEtBQUs7SUFDYixDQUFDLENBQUM7RUFDTjtFQUVBbkMsYUFBYUEsQ0FBQ0QsUUFBUSxFQUFFO0lBQUEsSUFBQXVDLHFCQUFBO0lBQ3RCO0lBQ0EsSUFBSXZDLFFBQVEsQ0FBQ3NDLE1BQU0sS0FBSyxHQUFHLEVBQUUsT0FBT0UsT0FBTyxDQUFDQyxPQUFPLENBQUMsSUFBSSxDQUFDO0lBQ3pELElBQUksR0FBQUYscUJBQUEsR0FBQ3ZDLFFBQVEsQ0FBQ3lCLE9BQU8sQ0FBQ2IsR0FBRyxDQUFDLGNBQWMsQ0FBQyxhQUFwQzJCLHFCQUFBLENBQXNDNUIsUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFFO01BQzNELE9BQU9YLFFBQVEsQ0FBQzBDLElBQUksQ0FBQyxDQUFDLENBQUMzQyxJQUFJLENBQUMyQyxJQUFJLElBQUk7UUFDbEM7UUFDQTtRQUNBLElBQ0UsQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLENBQUMvQixRQUFRLENBQUMsT0FBTyxJQUFJLENBQUNnQyxNQUFNLENBQUMsSUFDcEQsSUFBSSxDQUFDQSxNQUFNLEtBQUssSUFBSSxJQUNwQixJQUFJLENBQUN4QyxPQUFPLEtBQUtsQixZQUFZLENBQUMyRCxTQUFTLENBQUN6QyxPQUFPLEVBRS9DLE9BQU91QyxJQUFJO1FBRWIsTUFBTU4sS0FBSyxHQUFHLElBQUkzRCxZQUFZLENBQUN1QixRQUFRLENBQUM7UUFDeENvQyxLQUFLLENBQUNFLE1BQU0sR0FBRyxHQUFHO1FBQ2xCRixLQUFLLENBQUNTLE9BQU8sR0FBSSx1Q0FBc0MsSUFBSSxDQUFDRixNQUFPLEVBQUM7UUFDcEU7UUFDQTtRQUNBLElBQUl4QyxPQUFPLENBQUMyQyxHQUFHLENBQUNDLFFBQVEsS0FBSyxZQUFZLEVBQUU7VUFBQSxJQUFBQyxzQkFBQTtVQUN6QyxJQUNFLEVBQ0UsQ0FBQUEsc0JBQUEsR0FBQWhELFFBQVEsQ0FBQ3lCLE9BQU8sQ0FBQ2IsR0FBRyxDQUFDLGNBQWMsQ0FBQyxhQUFwQ29DLHNCQUFBLENBQXNDckMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUN0RCtCLElBQUksQ0FBQ08sVUFBVSxDQUFDLGlCQUFpQixDQUFDLENBQ25DLEVBQ0Q7WUFDQSxJQUFJQyxRQUFRLENBQUNSLElBQUksQ0FBQyxLQUFLL0MsU0FBUyxFQUFFO2NBQ2hDeUMsS0FBSyxDQUFDUyxPQUFPLEdBQUk7QUFDL0I7QUFDQTtBQUNBO0FBQ0EsMkZBQTJGO1lBQy9FO1VBQ0YsQ0FBQyxNQUFNO1lBQ0xULEtBQUssQ0FBQ1MsT0FBTyxHQUFJLHVDQUFzQyxJQUFJLENBQUNGLE1BQU87QUFDL0U7QUFDQTtBQUNBLG1DQUFtQ0QsSUFBSSxDQUFDUyxTQUFTLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBRSxFQUFDO1VBQ2pEO1FBQ0Y7UUFDQSxNQUFNZixLQUFLO01BQ2IsQ0FBQyxDQUFDO0lBQ0o7SUFDQSxPQUFPcEMsUUFBUSxDQUFDb0QsSUFBSSxDQUFDLENBQUMsQ0FBQ2pCLEtBQUssQ0FBQ0MsS0FBSyxJQUFJO01BQ3BDQSxLQUFLLENBQUNFLE1BQU0sR0FBRyxHQUFHO01BQ2xCLE1BQU1GLEtBQUs7SUFDYixDQUFDLENBQUM7RUFDSjtFQUVBakMsT0FBT0EsQ0FBQ0ksS0FBSyxFQUFFO0lBQ2IsT0FBT0EsS0FBSztFQUNkO0VBRUE4QyxXQUFXQSxDQUFDakIsS0FBSyxFQUFFO0lBQ2pCLE9BQU9BLEtBQUssQ0FBQ0UsTUFBTSxJQUFJLEdBQUcsR0FBRyxNQUFNLEdBQUczQyxTQUFTO0VBQ2pEO0VBRUEsSUFBSTJELFNBQVNBLENBQUEsRUFBRztJQUNkLE9BQU9oRixZQUFZLENBQUMsSUFBSSxDQUFDd0MsSUFBSSxDQUFDO0VBQ2hDO0VBRUF5QyxPQUFPQSxDQUFDeEMsR0FBRyxFQUFFO0lBQ1gsTUFBTXlDLE1BQU0sR0FBRyxJQUFJLENBQUMvQyxNQUFNLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQ0MsU0FBUztJQUNqRCxJQUFJLENBQUNLLEdBQUcsQ0FBQ2tDLFVBQVUsQ0FBQ08sTUFBTSxDQUFDLEVBQUUsT0FBTyxLQUFLO0lBQ3pDLElBQUlDLFlBQVksR0FBRzFDLEdBQUcsQ0FBQzJDLFdBQVcsQ0FBQyxHQUFHLENBQUM7SUFDdkMsSUFBSUQsWUFBWSxLQUFLLENBQUMsQ0FBQyxFQUFFQSxZQUFZLEdBQUc5RCxTQUFTO0lBQ2pELE9BQU8sSUFBSSxDQUFDMkQsU0FBUyxDQUFDSyxJQUFJLENBQUM1QyxHQUFHLENBQUNvQyxTQUFTLENBQUNLLE1BQU0sQ0FBQy9ELE1BQU0sRUFBRWdFLFlBQVksQ0FBQyxDQUFDO0VBQ3hFO0VBRUFHLE1BQU1BLENBQUN6RSxPQUFPLEVBQUU7SUFDZDtJQUNBO0lBQ0EsTUFBTTBFLENBQUMsU0FBUyxJQUFJLENBQUMzRSxXQUFXLENBQUM7SUFFakNrQixNQUFNLENBQUMwQixNQUFNLENBQUMrQixDQUFDLENBQUNqQixTQUFTLEVBQUUsSUFBSSxDQUFDO0lBRWhDLE9BQU8sSUFBSWlCLENBQUMsRUFDVjtJQUFBekQsTUFBQSxDQUFBMEIsTUFBQTtNQUNFekMsS0FBSyxFQUFFLElBQUksQ0FBQ0E7SUFBSyxHQUFLRixPQUFPLENBQ2pDLENBQUM7RUFDSDtFQUVBMkUsU0FBU0EsQ0FBQ0MsWUFBWSxFQUFFO0lBQ3RCLElBQUksT0FBT0EsWUFBWSxLQUFLLFFBQVEsRUFBRTtNQUNwQyxNQUFNQyxTQUFTLEdBQUdELFlBQVk7TUFDOUJBLFlBQVksR0FBR0UsSUFBQSxJQUFtQjtRQUFBLElBQWJDLE1BQU0sR0FBQTlELE1BQUEsQ0FBQTBCLE1BQUEsTUFBQXFDLHlCQUFBLENBQUFGLElBQUEsR0FBQUEsSUFBQTtRQUN6QixPQUFPQyxNQUFNLENBQUNGLFNBQVMsQ0FBQztRQUN4QixPQUFPLENBQUNFLE1BQU0sQ0FBQztNQUNqQixDQUFDO0lBQ0g7SUFDQSxJQUFJRSxLQUFLLEdBQUcsS0FBSztJQUNqQixNQUFNQyxxQkFBcUIsR0FBR0MsVUFBVSxJQUFJO01BQzFDRixLQUFLLEdBQUcsSUFBSTtNQUNaLE9BQU8xRixzQkFBc0IsQ0FBQ3FGLFlBQVksRUFBRU8sVUFBVSxDQUFDO0lBQ3pELENBQUM7SUFDRCxNQUFNQyxTQUFTLEdBQUcvRixhQUFhLENBQUMsSUFBSSxDQUFDbUUsTUFBTSxFQUFFMEIscUJBQXFCLENBQUM7SUFFbkUsSUFBSSxDQUFDRCxLQUFLLEVBQUUsTUFBTSxJQUFJSSxLQUFLLENBQUMsb0JBQW9CLENBQUM7SUFDakQsTUFBTUMsR0FBRyxHQUFHLElBQUk7SUFFaEIsT0FBTyxJQUFJLENBQUNiLE1BQU0sQ0FBQztNQUNqQmpCLE1BQU0sRUFBRTRCLFNBQVM7TUFDakJ4RCxHQUFHQSxDQUFDLEdBQUd6QixJQUFJLEVBQUU7UUFDWCxPQUFPbUYsR0FBRyxDQUFDMUQsR0FBRyxDQUFDMkQsSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHWCxZQUFZLENBQUMsR0FBR3pFLElBQUksQ0FBQyxDQUFDO01BQ3JELENBQUM7TUFDRHFGLElBQUksRUFBRSxJQUFJLENBQUNBLElBQUksR0FBRztJQUNwQixDQUFDLENBQUM7RUFDSjtFQUVBLElBQUlDLE9BQU9BLENBQUEsRUFBRztJQUNaLE9BQU8sSUFBSSxDQUFDZCxTQUFTLENBQUMsSUFBSSxDQUFDZSxlQUFlLENBQUM7RUFDN0M7RUFFQSxJQUFJQyxJQUFJQSxDQUFBLEVBQUc7SUFDVCxPQUFPLElBQUksQ0FBQ2xCLE1BQU0sQ0FBQztNQUNqQm5ELE1BQU0sRUFBRSxNQUFNO01BQ2RrQyxNQUFNLEVBQUVwRSxpQkFBaUIsQ0FBQyxJQUFJLENBQUNvRSxNQUFNLEVBQUVvQyxDQUFDLElBQUlBLENBQUMsQ0FBQ0QsSUFBSSxDQUFDO01BQ25ESCxJQUFJLEVBQUUsSUFBSSxDQUFDQSxJQUFJLEdBQUc7SUFDcEIsQ0FBQyxDQUFDO0VBQ0o7RUFFQSxJQUFJSyxPQUFPQSxDQUFBLEVBQUc7SUFDWixPQUFPLElBQUksQ0FBQ3BCLE1BQU0sQ0FBQztNQUNqQm5ELE1BQU0sRUFBRSxNQUFNO01BQ2RrQyxNQUFNLEVBQUVwRSxpQkFBaUIsQ0FBQyxJQUFJLENBQUNvRSxNQUFNLEVBQUVvQyxDQUFDLElBQUlBLENBQUMsQ0FBQ0MsT0FBTyxDQUFDO01BQ3RETCxJQUFJLEVBQUUsSUFBSSxDQUFDQSxJQUFJLEdBQUc7SUFDcEIsQ0FBQyxDQUFDO0VBQ0o7RUFFQSxJQUFJN0MsTUFBTUEsQ0FBQSxFQUFHO0lBQ1gsT0FBTyxJQUFJLENBQUM4QixNQUFNLENBQUM7TUFDakJuRCxNQUFNLEVBQUUsTUFBTTtNQUNka0MsTUFBTSxFQUFFcEUsaUJBQWlCLENBQUMsSUFBSSxDQUFDb0UsTUFBTSxFQUFFb0MsQ0FBQyxJQUFJQSxDQUFDLENBQUNqRCxNQUFNLENBQUM7TUFDckQ2QyxJQUFJLEVBQUUsSUFBSSxDQUFDQSxJQUFJLEdBQUc7SUFDcEIsQ0FBQyxDQUFDO0VBQ0o7QUFDRjtBQUVBLE1BQU16QixRQUFRLEdBQUdqQixLQUFLLElBQUk7RUFDeEIsSUFBSTtJQUNGLE9BQU9OLElBQUksQ0FBQ3NELEtBQUssQ0FBQ2hELEtBQUssQ0FBQztFQUMxQixDQUFDLENBQUMsT0FBT2lELENBQUMsRUFBRTtJQUNWLE9BQU92RixTQUFTO0VBQ2xCO0FBQ0YsQ0FBQyJ9
|
|
235
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJFbmRwb2ludCIsInBhdGhUb1JlZ2V4cCIsImV4dHJhY3RDb2xsZWN0aW9uIiwibWFwQ29sbGVjdGlvbiIsIk5ldHdvcmtFcnJvciIsImNyZWF0ZVBhZ2luYXRpb25TY2hlbWEiLCJwYXJhbXNUb1N0cmluZyIsImdldFVybEJhc2UiLCJnZXRVcmxUb2tlbnMiLCJpc1Bvam8iLCJfaGFzQm9keSIsIl9jbGFzc1ByaXZhdGVGaWVsZExvb3NlS2V5IiwiUmVzdEVuZHBvaW50IiwiY29uc3RydWN0b3IiLCJvcHRpb25zIiwiX29wdGlvbnMkZmV0Y2giLCJmZXRjaCIsImFyZ3MiLCJ1cmxQYXJhbXMiLCJfY2xhc3NQcml2YXRlRmllbGRMb29zZUJhc2UiLCJsZW5ndGgiLCJib2R5IiwidW5kZWZpbmVkIiwiZmV0Y2hSZXNwb25zZSIsInVybCIsImdldFJlcXVlc3RJbml0IiwidGhlbiIsInJlc3BvbnNlIiwicGFyc2VSZXNwb25zZSIsInJlcyIsInByb2Nlc3MiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsIndyaXRhYmxlIiwidmFsdWUiLCJzaWRlRWZmZWN0IiwibWV0aG9kIiwidXJsUHJlZml4IiwiaW5jbHVkZXMiLCJnZXQiLCJfX25hbWUiLCJwYXRoIiwia2V5IiwidXJsQmFzZSIsInRva2VucyIsInNlYXJjaFBhcmFtcyIsImtleXMiLCJmb3JFYWNoIiwiayIsImhhcyIsInNlYXJjaFRvU3RyaW5nIiwiZ2V0SGVhZGVycyIsImhlYWRlcnMiLCJib2R5SXNQb2pvIiwiSlNPTiIsInN0cmluZ2lmeSIsImluaXQiLCJhc3NpZ24iLCJyZXF1ZXN0SW5pdCIsInNpZ25hbCIsImlucHV0Iiwib2siLCJjYXRjaCIsImVycm9yIiwiVHlwZUVycm9yIiwic3RhdHVzIiwiX3Jlc3BvbnNlJGhlYWRlcnMkZ2V0IiwiUHJvbWlzZSIsInJlc29sdmUiLCJ0ZXh0Iiwic2NoZW1hIiwicHJvdG90eXBlIiwibWVzc2FnZSIsImVudiIsIk5PREVfRU5WIiwiX3Jlc3BvbnNlJGhlYWRlcnMkZ2V0MiIsInN0YXJ0c1dpdGgiLCJ0cnlQYXJzZSIsInN1YnN0cmluZyIsImpzb24iLCJlcnJvclBvbGljeSIsInBhdGhSZWdleCIsInRlc3RLZXkiLCJwcmVmaXgiLCJsYXN0UXVlc3Rpb24iLCJsYXN0SW5kZXhPZiIsInRlc3QiLCJleHRlbmQiLCJFIiwicGFnaW5hdGVkIiwicmVtb3ZlQ3Vyc29yIiwiZmllbGROYW1lIiwiX3JlZiIsInBhcmFtcyIsIl9vYmplY3REZXN0cnVjdHVyaW5nRW1wdHkiLCJmb3VuZCIsImNyZWF0ZVBhZ2luYXRlZFNjaGVtYSIsImNvbGxlY3Rpb24iLCJuZXdTY2hlbWEiLCJFcnJvciIsInN1cCIsImNhbGwiLCJuYW1lIiwiZ2V0UGFnZSIsInBhZ2luYXRpb25GaWVsZCIsInB1c2giLCJzIiwidW5zaGlmdCIsInBhcnNlIiwiZSJdLCJzb3VyY2VzIjpbIi4uL3NyYy9SZXN0RW5kcG9pbnQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW5kcG9pbnQgfSBmcm9tICdAZGF0YS1jbGllbnQvZW5kcG9pbnQnO1xuaW1wb3J0IHsgcGF0aFRvUmVnZXhwIH0gZnJvbSAncGF0aC10by1yZWdleHAnO1xuXG5pbXBvcnQgZXh0cmFjdENvbGxlY3Rpb24gZnJvbSAnLi9leHRyYWN0Q29sbGVjdGlvbi5qcyc7XG5pbXBvcnQgbWFwQ29sbGVjdGlvbiBmcm9tICcuL21hcENvbGxlY3Rpb24uanMnO1xuaW1wb3J0IE5ldHdvcmtFcnJvciBmcm9tICcuL05ldHdvcmtFcnJvci5qcyc7XG5pbXBvcnQgeyBjcmVhdGVQYWdpbmF0aW9uU2NoZW1hIH0gZnJvbSAnLi9wYWdpbmF0ZWRDb2xsZWN0aW9ucy5qcyc7XG5pbXBvcnQgcGFyYW1zVG9TdHJpbmcgZnJvbSAnLi9wYXJhbXNUb1N0cmluZy5qcyc7XG5pbXBvcnQgeyBnZXRVcmxCYXNlLCBnZXRVcmxUb2tlbnMsIGlzUG9qbyB9IGZyb20gJy4vUmVzdEhlbHBlcnMuanMnO1xuXG4vKiogU2ltcGxpZmllcyBlbmRwb2ludCBkZWZpbml0aW9ucyB0aGF0IGZvbGxvdyBSRVNUIHBhdHRlcm5zXG4gKlxuICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50XG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJlc3RFbmRwb2ludCBleHRlbmRzIEVuZHBvaW50IHtcbiAgI2hhc0JvZHk7XG4gIGNvbnN0cnVjdG9yKG9wdGlvbnMpIHtcbiAgICBzdXBlcihcbiAgICAgIG9wdGlvbnMuZmV0Y2ggPz9cbiAgICAgICAgYXN5bmMgZnVuY3Rpb24gKC4uLmFyZ3MpIHtcbiAgICAgICAgICBjb25zdCB1cmxQYXJhbXMgPVxuICAgICAgICAgICAgdGhpcy4jaGFzQm9keSAmJiBhcmdzLmxlbmd0aCA8IDIgPyB7fSA6IGFyZ3NbMF0gfHwge307XG4gICAgICAgICAgY29uc3QgYm9keSA9IHRoaXMuI2hhc0JvZHkgPyBhcmdzW2FyZ3MubGVuZ3RoIC0gMV0gOiB1bmRlZmluZWQ7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZmV0Y2hSZXNwb25zZShcbiAgICAgICAgICAgIHRoaXMudXJsKHVybFBhcmFtcyksXG4gICAgICAgICAgICBhd2FpdCB0aGlzLmdldFJlcXVlc3RJbml0KGJvZHkpLFxuICAgICAgICAgIClcbiAgICAgICAgICAgIC50aGVuKHJlc3BvbnNlID0+IHRoaXMucGFyc2VSZXNwb25zZShyZXNwb25zZSkpXG4gICAgICAgICAgICAudGhlbihyZXMgPT4gdGhpcy5wcm9jZXNzKHJlcywgLi4uYXJncykpO1xuICAgICAgICB9LFxuICAgICAgb3B0aW9ucyxcbiAgICApO1xuICAgIC8vIHdlIHdhbnQgdG8gdXNlIHRoZSBwcm90b3R5cGUgY2hhaW4gaGVyZVxuICAgIGlmIChcbiAgICAgICEoJ3NpZGVFZmZlY3QnIGluIHRoaXMpIHx8XG4gICAgICAoJ21ldGhvZCcgaW4gb3B0aW9ucyAmJiAhKCdzaWRlRWZmZWN0JyBpbiBvcHRpb25zKSlcbiAgICApIHtcbiAgICAgIHRoaXMuc2lkZUVmZmVjdCA9XG4gICAgICAgIG9wdGlvbnMubWV0aG9kID09PSAnR0VUJyB8fCBvcHRpb25zLm1ldGhvZCA9PT0gdW5kZWZpbmVkID9cbiAgICAgICAgICB1bmRlZmluZWRcbiAgICAgICAgOiB0cnVlO1xuICAgIH1cbiAgICBpZiAodGhpcy5tZXRob2QgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5tZXRob2QgPSB0aGlzLnNpZGVFZmZlY3QgPyAnUE9TVCcgOiAnR0VUJztcbiAgICB9XG4gICAgaWYgKHRoaXMudXJsUHJlZml4ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMudXJsUHJlZml4ID0gJyc7XG4gICAgfVxuICAgIHRoaXMuI2hhc0JvZHkgPVxuICAgICAgKCEoJ2JvZHknIGluIHRoaXMpIHx8IHRoaXMuYm9keSAhPT0gdW5kZWZpbmVkKSAmJlxuICAgICAgIVsnR0VUJywgJ0RFTEVURSddLmluY2x1ZGVzKHRoaXMubWV0aG9kKTtcblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCAnbmFtZScsIHtcbiAgICAgIGdldCgpIHtcbiAgICAgICAgLy8gdXNpbmcgJ2luJyB0byBlbnN1cmUgaW5oZXJpdGFuY2UgbG9va3VwXG4gICAgICAgIGlmICgnX19uYW1lJyBpbiB0aGlzKSByZXR1cm4gdGhpcy5fX25hbWU7XG4gICAgICAgIHJldHVybiB0aGlzLnVybFByZWZpeCArIHRoaXMucGF0aDtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBrZXkoLi4uYXJncykge1xuICAgIHJldHVybiBgJHt0aGlzLm1ldGhvZH0gJHt0aGlzLnVybChcbiAgICAgIHRoaXMuI2hhc0JvZHkgJiYgYXJncy5sZW5ndGggPCAyID8ge30gOiBhcmdzWzBdIHx8IHt9LFxuICAgICl9YDtcbiAgfVxuXG4gIC8qKiBHZXQgdGhlIHVybCAqL1xuICB1cmwodXJsUGFyYW1zID0ge30pIHtcbiAgICBjb25zdCB1cmxCYXNlID0gZ2V0VXJsQmFzZSh0aGlzLnBhdGgpKHVybFBhcmFtcyk7XG4gICAgY29uc3QgdG9rZW5zID0gZ2V0VXJsVG9rZW5zKHRoaXMucGF0aCk7XG4gICAgY29uc3Qgc2VhcmNoUGFyYW1zID0ge307XG4gICAgT2JqZWN0LmtleXModXJsUGFyYW1zKS5mb3JFYWNoKGsgPT4ge1xuICAgICAgaWYgKCF0b2tlbnMuaGFzKGspKSB7XG4gICAgICAgIHNlYXJjaFBhcmFtc1trXSA9IHVybFBhcmFtc1trXTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBpZiAoT2JqZWN0LmtleXMoc2VhcmNoUGFyYW1zKS5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBgJHt0aGlzLnVybFByZWZpeH0ke3VybEJhc2V9PyR7dGhpcy5zZWFyY2hUb1N0cmluZyhzZWFyY2hQYXJhbXMpfWA7XG4gICAgfVxuICAgIHJldHVybiBgJHt0aGlzLnVybFByZWZpeH0ke3VybEJhc2V9YDtcbiAgfVxuXG4gIC8qKiBFbmNvZGUgdGhlIHVybCBzZWFyY2hQYXJhbXMgKi9cbiAgc2VhcmNoVG9TdHJpbmcoc2VhcmNoUGFyYW1zKSB7XG4gICAgcmV0dXJuIHBhcmFtc1RvU3RyaW5nKHNlYXJjaFBhcmFtcyk7XG4gIH1cblxuICBnZXRIZWFkZXJzKGhlYWRlcnMpIHtcbiAgICByZXR1cm4gaGVhZGVycztcbiAgfVxuXG4gIC8qKiBJbml0IG9wdGlvbnMgZm9yIGZldGNoIC0gcnVuIGF0IGZldGNoICovXG4gIGFzeW5jIGdldFJlcXVlc3RJbml0KGJvZHkpIHtcbiAgICBjb25zdCBib2R5SXNQb2pvID0gaXNQb2pvKGJvZHkpO1xuICAgIGlmIChib2R5SXNQb2pvKSB7XG4gICAgICBib2R5ID0gSlNPTi5zdHJpbmdpZnkoYm9keSk7XG4gICAgfVxuICAgIGNvbnN0IGluaXQgPSB7XG4gICAgICAuLi50aGlzLnJlcXVlc3RJbml0LFxuICAgICAgbWV0aG9kOiB0aGlzLm1ldGhvZCxcbiAgICAgIHNpZ25hbDogdGhpcy5zaWduYWwsXG4gICAgICBib2R5LFxuICAgIH07XG4gICAgaWYgKCFib2R5IHx8IGJvZHlJc1Bvam8pIHtcbiAgICAgIGluaXQuaGVhZGVycyA9IHtcbiAgICAgICAgLy8gZGVmYXVsdCB0byBhcHBsaWNhdGlvbi9qc29uIGJ1dCBhbGxvdyB1c2VyIGV4cGxpY2l0IG92ZXJyaWRlc1xuICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAuLi5pbml0LmhlYWRlcnMsXG4gICAgICB9O1xuICAgIH1cbiAgICBpbml0LmhlYWRlcnMgPSBhd2FpdCB0aGlzLmdldEhlYWRlcnMoaW5pdC5oZWFkZXJzKTtcbiAgICByZXR1cm4gaW5pdDtcbiAgfVxuXG4gIC8qKiBQZXJmb3JtIG5ldHdvcmsgcmVxdWVzdCBhbmQgcmVzb2x2ZSB3aXRoIEhUVFAgUmVzcG9uc2UgKi9cbiAgZmV0Y2hSZXNwb25zZShpbnB1dCwgaW5pdCkge1xuICAgIHJldHVybiBmZXRjaChpbnB1dCwgaW5pdClcbiAgICAgIC50aGVuKHJlc3BvbnNlID0+IHtcbiAgICAgICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgICAgIHRocm93IG5ldyBOZXR3b3JrRXJyb3IocmVzcG9uc2UpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goZXJyb3IgPT4ge1xuICAgICAgICAvLyBlbnN1cmUgQ09SUywgbmV0d29yayBkb3duLCBhbmQgcGFyc2UgZXJyb3JzIGFyZSBzdGlsbCBjYXVnaHQgYnkgTmV0d29ya0Vycm9yQm91bmRhcnlcbiAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgVHlwZUVycm9yKSB7XG4gICAgICAgICAgZXJyb3Iuc3RhdHVzID0gNTAwO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgICAgfSk7XG4gIH1cblxuICBwYXJzZVJlc3BvbnNlKHJlc3BvbnNlKSB7XG4gICAgLy8gdGhpcyBzaG91bGQgbm90IGhhdmUgYW55IGNvbnRlbnQgdG8gcmVhZFxuICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT09IDIwNCkgcmV0dXJuIFByb21pc2UucmVzb2x2ZShudWxsKTtcbiAgICBpZiAoIXJlc3BvbnNlLmhlYWRlcnMuZ2V0KCdjb250ZW50LXR5cGUnKT8uaW5jbHVkZXMoJ2pzb24nKSkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLnRleHQoKS50aGVuKHRleHQgPT4ge1xuICAgICAgICAvLyBzdHJpbmcgb3IgJ25vdCBzZXQnIHNjaGVtYSwgYXJlIHZhbGlkXG4gICAgICAgIC8vIHdoZW4gb3ZlcnJpZGluZyBwcm9jZXNzIHRoZXkgbWlnaHQgaGFuZGxlIG90aGVyIGNhc2VzLCBzbyB3ZSBkb24ndCB3YW50IHRvIGJsb2NrIG9uIG91ciBsb2dpY1xuICAgICAgICBpZiAoXG4gICAgICAgICAgWydzdHJpbmcnLCAndW5kZWZpbmVkJ10uaW5jbHVkZXModHlwZW9mIHRoaXMuc2NoZW1hKSB8fFxuICAgICAgICAgIHRoaXMuc2NoZW1hID09PSBudWxsIHx8XG4gICAgICAgICAgdGhpcy5wcm9jZXNzICE9PSBSZXN0RW5kcG9pbnQucHJvdG90eXBlLnByb2Nlc3NcbiAgICAgICAgKVxuICAgICAgICAgIHJldHVybiB0ZXh0O1xuXG4gICAgICAgIGNvbnN0IGVycm9yID0gbmV3IE5ldHdvcmtFcnJvcihyZXNwb25zZSk7XG4gICAgICAgIGVycm9yLnN0YXR1cyA9IDQwNDtcbiAgICAgICAgZXJyb3IubWVzc2FnZSA9IGBVbmV4cGVjdGVkIHRleHQgcmVzcG9uc2UgZm9yIHNjaGVtYSAke3RoaXMuc2NoZW1hfWA7XG4gICAgICAgIC8vIGN1c3RvbSBkZXYtb25seSBtZXNzYWdlcyBmb3IgbW9yZSBkZXRhaWxlZCBjYXVzZVxuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICEoXG4gICAgICAgICAgICAgIHJlc3BvbnNlLmhlYWRlcnMuZ2V0KCdjb250ZW50LXR5cGUnKT8uaW5jbHVkZXMoJ2h0bWwnKSB8fFxuICAgICAgICAgICAgICB0ZXh0LnN0YXJ0c1dpdGgoJzwhZG9jdHlwZSBodG1sPicpXG4gICAgICAgICAgICApXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBpZiAodHJ5UGFyc2UodGV4dCkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICBlcnJvci5tZXNzYWdlID0gYFwiY29udGVudC10eXBlXCIgaGVhZGVyIGRvZXMgbm90IGluY2x1ZGUgXCJqc29uXCIsIGJ1dCBKU09OIHJlc3BvbnNlIGZvdW5kLlxuU2VlIGh0dHBzOi8vd3d3LnJmYy1lZGl0b3Iub3JnL3JmYy9yZmM0NjI3IGZvciBpbmZvcm1hdGlvbiBvbiBKU09OIHJlc3BvbnNlc1xuXG5Vc2luZyBwYXJzZWQgSlNPTi5cbklmIHRleHQgY29udGVudCB3YXMgZXhwZWN0ZWQgc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjcGFyc2VSZXNwb25zZWA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGVycm9yLm1lc3NhZ2UgPSBgVW5leHBlY3RlZCBodG1sIHJlc3BvbnNlIGZvciBzY2hlbWEgJHt0aGlzLnNjaGVtYX1cblRoaXMgbGlrZWx5IG1lYW5zIG5vIEFQSSBlbmRwb2ludCB3YXMgY29uZmlndXJlZCBmb3IgdGhpcyByZXF1ZXN0LCByZXN1bHRpbmcgaW4gYW4gSFRNTCBmYWxsYmFjay5cblxuUmVzcG9uc2UgKGZpcnN0IDMwMCBjaGFyYWN0ZXJzKTogJHt0ZXh0LnN1YnN0cmluZygwLCAzMDApfWA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiByZXNwb25zZS5qc29uKCkuY2F0Y2goZXJyb3IgPT4ge1xuICAgICAgZXJyb3Iuc3RhdHVzID0gNDAwO1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfSk7XG4gIH1cblxuICBwcm9jZXNzKHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgZXJyb3JQb2xpY3koZXJyb3IpIHtcbiAgICByZXR1cm4gZXJyb3Iuc3RhdHVzID49IDUwMCA/ICdzb2Z0JyA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGdldCBwYXRoUmVnZXgoKSB7XG4gICAgcmV0dXJuIHBhdGhUb1JlZ2V4cCh0aGlzLnBhdGgpO1xuICB9XG5cbiAgdGVzdEtleShrZXkpIHtcbiAgICBjb25zdCBwcmVmaXggPSB0aGlzLm1ldGhvZCArICcgJyArIHRoaXMudXJsUHJlZml4O1xuICAgIGlmICgha2V5LnN0YXJ0c1dpdGgocHJlZml4KSkgcmV0dXJuIGZhbHNlO1xuICAgIGxldCBsYXN0UXVlc3Rpb24gPSBrZXkubGFzdEluZGV4T2YoJz8nKTtcbiAgICBpZiAobGFzdFF1ZXN0aW9uID09PSAtMSkgbGFzdFF1ZXN0aW9uID0gdW5kZWZpbmVkO1xuICAgIHJldHVybiB0aGlzLnBhdGhSZWdleC50ZXN0KGtleS5zdWJzdHJpbmcocHJlZml4Lmxlbmd0aCwgbGFzdFF1ZXN0aW9uKSk7XG4gIH1cblxuICBleHRlbmQob3B0aW9ucykge1xuICAgIC8vIG1ha2UgYSBjb25zdHJ1Y3Rvci9wcm90b3R5cGUgYmFzZWQgb2ZmIHRoaXNcbiAgICAvLyBleHRlbmQgZnJvbSBpdCBhbmQgaW5pdCB3aXRoIG9wdGlvbnMgc2VudFxuICAgIGNsYXNzIEUgZXh0ZW5kcyB0aGlzLmNvbnN0cnVjdG9yIHt9XG5cbiAgICBPYmplY3QuYXNzaWduKEUucHJvdG90eXBlLCB0aGlzKTtcblxuICAgIHJldHVybiBuZXcgRShcbiAgICAgIC8vICBmZXRjaCBnZXQgb3ZlcnJpZGRlbiBieSBmdW5jdGlvbiBwcm90b3R5cGUsIHNvIHdlIG11c3Qgc2V0IGl0IGV4cGxpY2l0bHkgZXZlcnkgdGltZVxuICAgICAgeyBmZXRjaDogdGhpcy5mZXRjaCwgLi4ub3B0aW9ucyB9LFxuICAgICk7XG4gIH1cblxuICBwYWdpbmF0ZWQocmVtb3ZlQ3Vyc29yKSB7XG4gICAgaWYgKHR5cGVvZiByZW1vdmVDdXJzb3IgPT09ICdzdHJpbmcnKSB7XG4gICAgICBjb25zdCBmaWVsZE5hbWUgPSByZW1vdmVDdXJzb3I7XG4gICAgICByZW1vdmVDdXJzb3IgPSAoeyAuLi5wYXJhbXMgfSkgPT4ge1xuICAgICAgICBkZWxldGUgcGFyYW1zW2ZpZWxkTmFtZV07XG4gICAgICAgIHJldHVybiBbcGFyYW1zXTtcbiAgICAgIH07XG4gICAgfVxuICAgIGxldCBmb3VuZCA9IGZhbHNlO1xuICAgIGNvbnN0IGNyZWF0ZVBhZ2luYXRlZFNjaGVtYSA9IGNvbGxlY3Rpb24gPT4ge1xuICAgICAgZm91bmQgPSB0cnVlO1xuICAgICAgcmV0dXJuIGNyZWF0ZVBhZ2luYXRpb25TY2hlbWEocmVtb3ZlQ3Vyc29yLCBjb2xsZWN0aW9uKTtcbiAgICB9O1xuICAgIGNvbnN0IG5ld1NjaGVtYSA9IG1hcENvbGxlY3Rpb24odGhpcy5zY2hlbWEsIGNyZWF0ZVBhZ2luYXRlZFNjaGVtYSk7XG5cbiAgICBpZiAoIWZvdW5kKSB0aHJvdyBuZXcgRXJyb3IoJ01pc3NpbmcgQ29sbGVjdGlvbicpO1xuICAgIGNvbnN0IHN1cCA9IHRoaXM7XG5cbiAgICByZXR1cm4gdGhpcy5leHRlbmQoe1xuICAgICAgc2NoZW1hOiBuZXdTY2hlbWEsXG4gICAgICBrZXkoLi4uYXJncykge1xuICAgICAgICByZXR1cm4gc3VwLmtleS5jYWxsKHRoaXMsIC4uLnJlbW92ZUN1cnNvciguLi5hcmdzKSk7XG4gICAgICB9LFxuICAgICAgbmFtZTogdGhpcy5uYW1lICsgJy5nZXRQYWdlJyxcbiAgICB9KTtcbiAgfVxuXG4gIGdldCBnZXRQYWdlKCkge1xuICAgIHJldHVybiB0aGlzLnBhZ2luYXRlZCh0aGlzLnBhZ2luYXRpb25GaWVsZCk7XG4gIH1cblxuICBnZXQgcHVzaCgpIHtcbiAgICByZXR1cm4gdGhpcy5leHRlbmQoe1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBzY2hlbWE6IGV4dHJhY3RDb2xsZWN0aW9uKHRoaXMuc2NoZW1hLCBzID0+IHMucHVzaCksXG4gICAgICBuYW1lOiB0aGlzLm5hbWUgKyAnLmNyZWF0ZScsXG4gICAgfSk7XG4gIH1cblxuICBnZXQgdW5zaGlmdCgpIHtcbiAgICByZXR1cm4gdGhpcy5leHRlbmQoe1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBzY2hlbWE6IGV4dHJhY3RDb2xsZWN0aW9uKHRoaXMuc2NoZW1hLCBzID0+IHMudW5zaGlmdCksXG4gICAgICBuYW1lOiB0aGlzLm5hbWUgKyAnLmNyZWF0ZScsXG4gICAgfSk7XG4gIH1cblxuICBnZXQgYXNzaWduKCkge1xuICAgIHJldHVybiB0aGlzLmV4dGVuZCh7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIHNjaGVtYTogZXh0cmFjdENvbGxlY3Rpb24odGhpcy5zY2hlbWEsIHMgPT4gcy5hc3NpZ24pLFxuICAgICAgbmFtZTogdGhpcy5uYW1lICsgJy5jcmVhdGUnLFxuICAgIH0pO1xuICB9XG59XG5cbmNvbnN0IHRyeVBhcnNlID0gaW5wdXQgPT4ge1xuICB0cnkge1xuICAgIHJldHVybiBKU09OLnBhcnNlKGlucHV0KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn07XG4iXSwibWFwcGluZ3MiOiI7OztBQUFBLFNBQVNBLFFBQVEsUUFBUSx1QkFBdUI7QUFDaEQsU0FBU0MsWUFBWSxRQUFRLGdCQUFnQjtBQUU3QyxPQUFPQyxpQkFBaUIsTUFBTSx3QkFBd0I7QUFDdEQsT0FBT0MsYUFBYSxNQUFNLG9CQUFvQjtBQUM5QyxPQUFPQyxZQUFZLE1BQU0sbUJBQW1CO0FBQzVDLFNBQVNDLHNCQUFzQixRQUFRLDJCQUEyQjtBQUNsRSxPQUFPQyxjQUFjLE1BQU0scUJBQXFCO0FBQ2hELFNBQVNDLFVBQVUsRUFBRUMsWUFBWSxFQUFFQyxNQUFNLFFBQVEsa0JBQWtCOztBQUVuRTtBQUNBO0FBQ0E7QUFDQTtBQUhBLElBQUFDLFFBQUEsZ0JBQUFDLDBCQUFBO0FBSUEsZUFBZSxNQUFNQyxZQUFZLFNBQVNaLFFBQVEsQ0FBQztFQUVqRGEsV0FBV0EsQ0FBQ0MsT0FBTyxFQUFFO0lBQUEsSUFBQUMsY0FBQTtJQUNuQixLQUFLLEVBQUFBLGNBQUEsR0FDSEQsT0FBTyxDQUFDRSxLQUFLLFlBQUFELGNBQUEsR0FDWCxnQkFBZ0IsR0FBR0UsSUFBSSxFQUFFO01BQ3ZCLE1BQU1DLFNBQVMsR0FDYkMsMkJBQUEsS0FBSSxFQUFBVCxRQUFBLEVBQUFBLFFBQUEsS0FBYU8sSUFBSSxDQUFDRyxNQUFNLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHSCxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO01BQ3ZELE1BQU1JLElBQUksR0FBR0YsMkJBQUEsS0FBSSxFQUFBVCxRQUFBLEVBQUFBLFFBQUEsSUFBWU8sSUFBSSxDQUFDQSxJQUFJLENBQUNHLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBR0UsU0FBUztNQUM5RCxPQUFPLElBQUksQ0FBQ0MsYUFBYSxDQUN2QixJQUFJLENBQUNDLEdBQUcsQ0FBQ04sU0FBUyxDQUFDLEVBQ25CLE1BQU0sSUFBSSxDQUFDTyxjQUFjLENBQUNKLElBQUksQ0FDaEMsQ0FBQyxDQUNFSyxJQUFJLENBQUNDLFFBQVEsSUFBSSxJQUFJLENBQUNDLGFBQWEsQ0FBQ0QsUUFBUSxDQUFDLENBQUMsQ0FDOUNELElBQUksQ0FBQ0csR0FBRyxJQUFJLElBQUksQ0FBQ0MsT0FBTyxDQUFDRCxHQUFHLEVBQUUsR0FBR1osSUFBSSxDQUFDLENBQUM7SUFDNUMsQ0FBQyxFQUNISCxPQUNGLENBQUM7SUFDRDtJQUFBaUIsTUFBQSxDQUFBQyxjQUFBLE9BQUF0QixRQUFBO01BQUF1QixRQUFBO01BQUFDLEtBQUE7SUFBQTtJQUNBLElBQ0UsRUFBRSxZQUFZLElBQUksSUFBSSxDQUFDLElBQ3RCLFFBQVEsSUFBSXBCLE9BQU8sSUFBSSxFQUFFLFlBQVksSUFBSUEsT0FBTyxDQUFFLEVBQ25EO01BQ0EsSUFBSSxDQUFDcUIsVUFBVSxHQUNickIsT0FBTyxDQUFDc0IsTUFBTSxLQUFLLEtBQUssSUFBSXRCLE9BQU8sQ0FBQ3NCLE1BQU0sS0FBS2QsU0FBUyxHQUN0REEsU0FBUyxHQUNULElBQUk7SUFDVjtJQUNBLElBQUksSUFBSSxDQUFDYyxNQUFNLEtBQUtkLFNBQVMsRUFBRTtNQUM3QixJQUFJLENBQUNjLE1BQU0sR0FBRyxJQUFJLENBQUNELFVBQVUsR0FBRyxNQUFNLEdBQUcsS0FBSztJQUNoRDtJQUNBLElBQUksSUFBSSxDQUFDRSxTQUFTLEtBQUtmLFNBQVMsRUFBRTtNQUNoQyxJQUFJLENBQUNlLFNBQVMsR0FBRyxFQUFFO0lBQ3JCO0lBQ0FsQiwyQkFBQSxLQUFJLEVBQUFULFFBQUEsRUFBQUEsUUFBQSxJQUNGLENBQUMsRUFBRSxNQUFNLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDVyxJQUFJLEtBQUtDLFNBQVMsS0FDN0MsQ0FBQyxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQ2dCLFFBQVEsQ0FBQyxJQUFJLENBQUNGLE1BQU0sQ0FBQztJQUUxQ0wsTUFBTSxDQUFDQyxjQUFjLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRTtNQUNsQ08sR0FBR0EsQ0FBQSxFQUFHO1FBQ0o7UUFDQSxJQUFJLFFBQVEsSUFBSSxJQUFJLEVBQUUsT0FBTyxJQUFJLENBQUNDLE1BQU07UUFDeEMsT0FBTyxJQUFJLENBQUNILFNBQVMsR0FBRyxJQUFJLENBQUNJLElBQUk7TUFDbkM7SUFDRixDQUFDLENBQUM7RUFDSjtFQUVBQyxHQUFHQSxDQUFDLEdBQUd6QixJQUFJLEVBQUU7SUFDWCxPQUFRLEdBQUUsSUFBSSxDQUFDbUIsTUFBTyxJQUFHLElBQUksQ0FBQ1osR0FBRyxDQUMvQkwsMkJBQUEsS0FBSSxFQUFBVCxRQUFBLEVBQUFBLFFBQUEsS0FBYU8sSUFBSSxDQUFDRyxNQUFNLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHSCxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUN0RCxDQUFFLEVBQUM7RUFDTDs7RUFFQTtFQUNBTyxHQUFHQSxDQUFDTixTQUFTLEdBQUcsQ0FBQyxDQUFDLEVBQUU7SUFDbEIsTUFBTXlCLE9BQU8sR0FBR3BDLFVBQVUsQ0FBQyxJQUFJLENBQUNrQyxJQUFJLENBQUMsQ0FBQ3ZCLFNBQVMsQ0FBQztJQUNoRCxNQUFNMEIsTUFBTSxHQUFHcEMsWUFBWSxDQUFDLElBQUksQ0FBQ2lDLElBQUksQ0FBQztJQUN0QyxNQUFNSSxZQUFZLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZCZCxNQUFNLENBQUNlLElBQUksQ0FBQzVCLFNBQVMsQ0FBQyxDQUFDNkIsT0FBTyxDQUFDQyxDQUFDLElBQUk7TUFDbEMsSUFBSSxDQUFDSixNQUFNLENBQUNLLEdBQUcsQ0FBQ0QsQ0FBQyxDQUFDLEVBQUU7UUFDbEJILFlBQVksQ0FBQ0csQ0FBQyxDQUFDLEdBQUc5QixTQUFTLENBQUM4QixDQUFDLENBQUM7TUFDaEM7SUFDRixDQUFDLENBQUM7SUFDRixJQUFJakIsTUFBTSxDQUFDZSxJQUFJLENBQUNELFlBQVksQ0FBQyxDQUFDekIsTUFBTSxFQUFFO01BQ3BDLE9BQVEsR0FBRSxJQUFJLENBQUNpQixTQUFVLEdBQUVNLE9BQVEsSUFBRyxJQUFJLENBQUNPLGNBQWMsQ0FBQ0wsWUFBWSxDQUFFLEVBQUM7SUFDM0U7SUFDQSxPQUFRLEdBQUUsSUFBSSxDQUFDUixTQUFVLEdBQUVNLE9BQVEsRUFBQztFQUN0Qzs7RUFFQTtFQUNBTyxjQUFjQSxDQUFDTCxZQUFZLEVBQUU7SUFDM0IsT0FBT3ZDLGNBQWMsQ0FBQ3VDLFlBQVksQ0FBQztFQUNyQztFQUVBTSxVQUFVQSxDQUFDQyxPQUFPLEVBQUU7SUFDbEIsT0FBT0EsT0FBTztFQUNoQjs7RUFFQTtFQUNBLE1BQU0zQixjQUFjQSxDQUFDSixJQUFJLEVBQUU7SUFDekIsTUFBTWdDLFVBQVUsR0FBRzVDLE1BQU0sQ0FBQ1ksSUFBSSxDQUFDO0lBQy9CLElBQUlnQyxVQUFVLEVBQUU7TUFDZGhDLElBQUksR0FBR2lDLElBQUksQ0FBQ0MsU0FBUyxDQUFDbEMsSUFBSSxDQUFDO0lBQzdCO0lBQ0EsTUFBTW1DLElBQUksR0FBQXpCLE1BQUEsQ0FBQTBCLE1BQUEsS0FDTCxJQUFJLENBQUNDLFdBQVc7TUFDbkJ0QixNQUFNLEVBQUUsSUFBSSxDQUFDQSxNQUFNO01BQ25CdUIsTUFBTSxFQUFFLElBQUksQ0FBQ0EsTUFBTTtNQUNuQnRDO0lBQUksRUFDTDtJQUNELElBQUksQ0FBQ0EsSUFBSSxJQUFJZ0MsVUFBVSxFQUFFO01BQ3ZCRyxJQUFJLENBQUNKLE9BQU8sR0FBQXJCLE1BQUEsQ0FBQTBCLE1BQUE7UUFDVjtRQUNBLGNBQWMsRUFBRTtNQUFrQixHQUMvQkQsSUFBSSxDQUFDSixPQUFPLENBQ2hCO0lBQ0g7SUFDQUksSUFBSSxDQUFDSixPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUNELFVBQVUsQ0FBQ0ssSUFBSSxDQUFDSixPQUFPLENBQUM7SUFDbEQsT0FBT0ksSUFBSTtFQUNiOztFQUVBO0VBQ0FqQyxhQUFhQSxDQUFDcUMsS0FBSyxFQUFFSixJQUFJLEVBQUU7SUFDekIsT0FBT3hDLEtBQUssQ0FBQzRDLEtBQUssRUFBRUosSUFBSSxDQUFDLENBQ3RCOUIsSUFBSSxDQUFDQyxRQUFRLElBQUk7TUFDaEIsSUFBSSxDQUFDQSxRQUFRLENBQUNrQyxFQUFFLEVBQUU7UUFDaEIsTUFBTSxJQUFJekQsWUFBWSxDQUFDdUIsUUFBUSxDQUFDO01BQ2xDO01BQ0EsT0FBT0EsUUFBUTtJQUNqQixDQUFDLENBQUMsQ0FDRG1DLEtBQUssQ0FBQ0MsS0FBSyxJQUFJO01BQ2Q7TUFDQSxJQUFJQSxLQUFLLFlBQVlDLFNBQVMsRUFBRTtRQUM5QkQsS0FBSyxDQUFDRSxNQUFNLEdBQUcsR0FBRztNQUNwQjtNQUNBLE1BQU1GLEtBQUs7SUFDYixDQUFDLENBQUM7RUFDTjtFQUVBbkMsYUFBYUEsQ0FBQ0QsUUFBUSxFQUFFO0lBQUEsSUFBQXVDLHFCQUFBO0lBQ3RCO0lBQ0EsSUFBSXZDLFFBQVEsQ0FBQ3NDLE1BQU0sS0FBSyxHQUFHLEVBQUUsT0FBT0UsT0FBTyxDQUFDQyxPQUFPLENBQUMsSUFBSSxDQUFDO0lBQ3pELElBQUksR0FBQUYscUJBQUEsR0FBQ3ZDLFFBQVEsQ0FBQ3lCLE9BQU8sQ0FBQ2IsR0FBRyxDQUFDLGNBQWMsQ0FBQyxhQUFwQzJCLHFCQUFBLENBQXNDNUIsUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFFO01BQzNELE9BQU9YLFFBQVEsQ0FBQzBDLElBQUksQ0FBQyxDQUFDLENBQUMzQyxJQUFJLENBQUMyQyxJQUFJLElBQUk7UUFDbEM7UUFDQTtRQUNBLElBQ0UsQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLENBQUMvQixRQUFRLENBQUMsT0FBTyxJQUFJLENBQUNnQyxNQUFNLENBQUMsSUFDcEQsSUFBSSxDQUFDQSxNQUFNLEtBQUssSUFBSSxJQUNwQixJQUFJLENBQUN4QyxPQUFPLEtBQUtsQixZQUFZLENBQUMyRCxTQUFTLENBQUN6QyxPQUFPLEVBRS9DLE9BQU91QyxJQUFJO1FBRWIsTUFBTU4sS0FBSyxHQUFHLElBQUkzRCxZQUFZLENBQUN1QixRQUFRLENBQUM7UUFDeENvQyxLQUFLLENBQUNFLE1BQU0sR0FBRyxHQUFHO1FBQ2xCRixLQUFLLENBQUNTLE9BQU8sR0FBSSx1Q0FBc0MsSUFBSSxDQUFDRixNQUFPLEVBQUM7UUFDcEU7UUFDQTtRQUNBLElBQUl4QyxPQUFPLENBQUMyQyxHQUFHLENBQUNDLFFBQVEsS0FBSyxZQUFZLEVBQUU7VUFBQSxJQUFBQyxzQkFBQTtVQUN6QyxJQUNFLEVBQ0UsQ0FBQUEsc0JBQUEsR0FBQWhELFFBQVEsQ0FBQ3lCLE9BQU8sQ0FBQ2IsR0FBRyxDQUFDLGNBQWMsQ0FBQyxhQUFwQ29DLHNCQUFBLENBQXNDckMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUN0RCtCLElBQUksQ0FBQ08sVUFBVSxDQUFDLGlCQUFpQixDQUFDLENBQ25DLEVBQ0Q7WUFDQSxJQUFJQyxRQUFRLENBQUNSLElBQUksQ0FBQyxLQUFLL0MsU0FBUyxFQUFFO2NBQ2hDeUMsS0FBSyxDQUFDUyxPQUFPLEdBQUk7QUFDL0I7QUFDQTtBQUNBO0FBQ0EsMkZBQTJGO1lBQy9FO1VBQ0YsQ0FBQyxNQUFNO1lBQ0xULEtBQUssQ0FBQ1MsT0FBTyxHQUFJLHVDQUFzQyxJQUFJLENBQUNGLE1BQU87QUFDL0U7QUFDQTtBQUNBLG1DQUFtQ0QsSUFBSSxDQUFDUyxTQUFTLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBRSxFQUFDO1VBQ2pEO1FBQ0Y7UUFDQSxNQUFNZixLQUFLO01BQ2IsQ0FBQyxDQUFDO0lBQ0o7SUFDQSxPQUFPcEMsUUFBUSxDQUFDb0QsSUFBSSxDQUFDLENBQUMsQ0FBQ2pCLEtBQUssQ0FBQ0MsS0FBSyxJQUFJO01BQ3BDQSxLQUFLLENBQUNFLE1BQU0sR0FBRyxHQUFHO01BQ2xCLE1BQU1GLEtBQUs7SUFDYixDQUFDLENBQUM7RUFDSjtFQUVBakMsT0FBT0EsQ0FBQ0ksS0FBSyxFQUFFO0lBQ2IsT0FBT0EsS0FBSztFQUNkO0VBRUE4QyxXQUFXQSxDQUFDakIsS0FBSyxFQUFFO0lBQ2pCLE9BQU9BLEtBQUssQ0FBQ0UsTUFBTSxJQUFJLEdBQUcsR0FBRyxNQUFNLEdBQUczQyxTQUFTO0VBQ2pEO0VBRUEsSUFBSTJELFNBQVNBLENBQUEsRUFBRztJQUNkLE9BQU9oRixZQUFZLENBQUMsSUFBSSxDQUFDd0MsSUFBSSxDQUFDO0VBQ2hDO0VBRUF5QyxPQUFPQSxDQUFDeEMsR0FBRyxFQUFFO0lBQ1gsTUFBTXlDLE1BQU0sR0FBRyxJQUFJLENBQUMvQyxNQUFNLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQ0MsU0FBUztJQUNqRCxJQUFJLENBQUNLLEdBQUcsQ0FBQ2tDLFVBQVUsQ0FBQ08sTUFBTSxDQUFDLEVBQUUsT0FBTyxLQUFLO0lBQ3pDLElBQUlDLFlBQVksR0FBRzFDLEdBQUcsQ0FBQzJDLFdBQVcsQ0FBQyxHQUFHLENBQUM7SUFDdkMsSUFBSUQsWUFBWSxLQUFLLENBQUMsQ0FBQyxFQUFFQSxZQUFZLEdBQUc5RCxTQUFTO0lBQ2pELE9BQU8sSUFBSSxDQUFDMkQsU0FBUyxDQUFDSyxJQUFJLENBQUM1QyxHQUFHLENBQUNvQyxTQUFTLENBQUNLLE1BQU0sQ0FBQy9ELE1BQU0sRUFBRWdFLFlBQVksQ0FBQyxDQUFDO0VBQ3hFO0VBRUFHLE1BQU1BLENBQUN6RSxPQUFPLEVBQUU7SUFDZDtJQUNBO0lBQ0EsTUFBTTBFLENBQUMsU0FBUyxJQUFJLENBQUMzRSxXQUFXLENBQUM7SUFFakNrQixNQUFNLENBQUMwQixNQUFNLENBQUMrQixDQUFDLENBQUNqQixTQUFTLEVBQUUsSUFBSSxDQUFDO0lBRWhDLE9BQU8sSUFBSWlCLENBQUMsRUFDVjtJQUFBekQsTUFBQSxDQUFBMEIsTUFBQTtNQUNFekMsS0FBSyxFQUFFLElBQUksQ0FBQ0E7SUFBSyxHQUFLRixPQUFPLENBQ2pDLENBQUM7RUFDSDtFQUVBMkUsU0FBU0EsQ0FBQ0MsWUFBWSxFQUFFO0lBQ3RCLElBQUksT0FBT0EsWUFBWSxLQUFLLFFBQVEsRUFBRTtNQUNwQyxNQUFNQyxTQUFTLEdBQUdELFlBQVk7TUFDOUJBLFlBQVksR0FBR0UsSUFBQSxJQUFtQjtRQUFBLElBQWJDLE1BQU0sR0FBQTlELE1BQUEsQ0FBQTBCLE1BQUEsTUFBQXFDLHlCQUFBLENBQUFGLElBQUEsR0FBQUEsSUFBQTtRQUN6QixPQUFPQyxNQUFNLENBQUNGLFNBQVMsQ0FBQztRQUN4QixPQUFPLENBQUNFLE1BQU0sQ0FBQztNQUNqQixDQUFDO0lBQ0g7SUFDQSxJQUFJRSxLQUFLLEdBQUcsS0FBSztJQUNqQixNQUFNQyxxQkFBcUIsR0FBR0MsVUFBVSxJQUFJO01BQzFDRixLQUFLLEdBQUcsSUFBSTtNQUNaLE9BQU8xRixzQkFBc0IsQ0FBQ3FGLFlBQVksRUFBRU8sVUFBVSxDQUFDO0lBQ3pELENBQUM7SUFDRCxNQUFNQyxTQUFTLEdBQUcvRixhQUFhLENBQUMsSUFBSSxDQUFDbUUsTUFBTSxFQUFFMEIscUJBQXFCLENBQUM7SUFFbkUsSUFBSSxDQUFDRCxLQUFLLEVBQUUsTUFBTSxJQUFJSSxLQUFLLENBQUMsb0JBQW9CLENBQUM7SUFDakQsTUFBTUMsR0FBRyxHQUFHLElBQUk7SUFFaEIsT0FBTyxJQUFJLENBQUNiLE1BQU0sQ0FBQztNQUNqQmpCLE1BQU0sRUFBRTRCLFNBQVM7TUFDakJ4RCxHQUFHQSxDQUFDLEdBQUd6QixJQUFJLEVBQUU7UUFDWCxPQUFPbUYsR0FBRyxDQUFDMUQsR0FBRyxDQUFDMkQsSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHWCxZQUFZLENBQUMsR0FBR3pFLElBQUksQ0FBQyxDQUFDO01BQ3JELENBQUM7TUFDRHFGLElBQUksRUFBRSxJQUFJLENBQUNBLElBQUksR0FBRztJQUNwQixDQUFDLENBQUM7RUFDSjtFQUVBLElBQUlDLE9BQU9BLENBQUEsRUFBRztJQUNaLE9BQU8sSUFBSSxDQUFDZCxTQUFTLENBQUMsSUFBSSxDQUFDZSxlQUFlLENBQUM7RUFDN0M7RUFFQSxJQUFJQyxJQUFJQSxDQUFBLEVBQUc7SUFDVCxPQUFPLElBQUksQ0FBQ2xCLE1BQU0sQ0FBQztNQUNqQm5ELE1BQU0sRUFBRSxNQUFNO01BQ2RrQyxNQUFNLEVBQUVwRSxpQkFBaUIsQ0FBQyxJQUFJLENBQUNvRSxNQUFNLEVBQUVvQyxDQUFDLElBQUlBLENBQUMsQ0FBQ0QsSUFBSSxDQUFDO01BQ25ESCxJQUFJLEVBQUUsSUFBSSxDQUFDQSxJQUFJLEdBQUc7SUFDcEIsQ0FBQyxDQUFDO0VBQ0o7RUFFQSxJQUFJSyxPQUFPQSxDQUFBLEVBQUc7SUFDWixPQUFPLElBQUksQ0FBQ3BCLE1BQU0sQ0FBQztNQUNqQm5ELE1BQU0sRUFBRSxNQUFNO01BQ2RrQyxNQUFNLEVBQUVwRSxpQkFBaUIsQ0FBQyxJQUFJLENBQUNvRSxNQUFNLEVBQUVvQyxDQUFDLElBQUlBLENBQUMsQ0FBQ0MsT0FBTyxDQUFDO01BQ3RETCxJQUFJLEVBQUUsSUFBSSxDQUFDQSxJQUFJLEdBQUc7SUFDcEIsQ0FBQyxDQUFDO0VBQ0o7RUFFQSxJQUFJN0MsTUFBTUEsQ0FBQSxFQUFHO0lBQ1gsT0FBTyxJQUFJLENBQUM4QixNQUFNLENBQUM7TUFDakJuRCxNQUFNLEVBQUUsTUFBTTtNQUNka0MsTUFBTSxFQUFFcEUsaUJBQWlCLENBQUMsSUFBSSxDQUFDb0UsTUFBTSxFQUFFb0MsQ0FBQyxJQUFJQSxDQUFDLENBQUNqRCxNQUFNLENBQUM7TUFDckQ2QyxJQUFJLEVBQUUsSUFBSSxDQUFDQSxJQUFJLEdBQUc7SUFDcEIsQ0FBQyxDQUFDO0VBQ0o7QUFDRjtBQUVBLE1BQU16QixRQUFRLEdBQUdqQixLQUFLLElBQUk7RUFDeEIsSUFBSTtJQUNGLE9BQU9OLElBQUksQ0FBQ3NELEtBQUssQ0FBQ2hELEtBQUssQ0FBQztFQUMxQixDQUFDLENBQUMsT0FBT2lELENBQUMsRUFBRTtJQUNWLE9BQU92RixTQUFTO0VBQ2xCO0FBQ0YsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL1Jlc3RFbmRwb2ludFR5cGVIZWxwLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgRmV0Y2hGdW5jdGlvbixcbiAgUmVzb2x2ZVR5cGUsXG4gIE5vcm1hbGl6ZSxcbn0gZnJvbSAnQGRhdGEtY2xpZW50L2VuZHBvaW50JztcblxuZXhwb3J0IHR5cGUgRW5kcG9pbnRVcGRhdGVGdW5jdGlvbjxcbiAgU291cmNlIGV4dGVuZHMgRmV0Y2hGdW5jdGlvbixcbiAgU2NoZW1hLFxuICBVcGRhdGVycyBleHRlbmRzIFJlY29yZDxzdHJpbmcsIGFueT4gPSBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuPiA9IChcbiAgc291cmNlOiBSZXN1bHRFbnRyeTxTb3VyY2UgJiB7IHNjaGVtYTogU2NoZW1hIH0+
|
|
2
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL1Jlc3RFbmRwb2ludFR5cGVIZWxwLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgRmV0Y2hGdW5jdGlvbixcbiAgUmVzb2x2ZVR5cGUsXG4gIE5vcm1hbGl6ZSxcbn0gZnJvbSAnQGRhdGEtY2xpZW50L2VuZHBvaW50JztcblxuZXhwb3J0IHR5cGUgRW5kcG9pbnRVcGRhdGVGdW5jdGlvbjxcbiAgU291cmNlIGV4dGVuZHMgRmV0Y2hGdW5jdGlvbixcbiAgU2NoZW1hLFxuICBVcGRhdGVycyBleHRlbmRzIFJlY29yZDxzdHJpbmcsIGFueT4gPSBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuPiA9IChcbiAgc291cmNlOiBSZXN1bHRFbnRyeTxTb3VyY2UgJiB7IHNjaGVtYTogU2NoZW1hIH0+LFxuICAuLi5hcmdzOiBQYXJhbWV0ZXJzPFNvdXJjZT5cbikgPT4ge1xuICBbSyBpbiBrZXlvZiBVcGRhdGVyc106IChyZXN1bHQ6IFVwZGF0ZXJzW0tdKSA9PiBVcGRhdGVyc1tLXTtcbn07XG5leHBvcnQgdHlwZSBSZXN1bHRFbnRyeTxFIGV4dGVuZHMgRmV0Y2hGdW5jdGlvbiAmIHsgc2NoZW1hOiBhbnkgfT4gPVxuICBFWydzY2hlbWEnXSBleHRlbmRzIHVuZGVmaW5lZCB8IG51bGwgPyBSZXNvbHZlVHlwZTxFPlxuICA6IE5vcm1hbGl6ZTxFWydzY2hlbWEnXT47XG4iXSwibWFwcGluZ3MiOiIiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL1Jlc3RFbmRwb2ludFR5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHlwZXMgKi9cbmltcG9ydCB0eXBlIHtcbiAgRW5kcG9pbnRFeHRyYU9wdGlvbnMsXG4gIEVuZHBvaW50SW5zdGFuY2VJbnRlcmZhY2UsXG4gIFNjaGVtYSxcbiAgRmV0Y2hGdW5jdGlvbixcbiAgUmVzb2x2ZVR5cGUsXG59IGZyb20gJ0BkYXRhLWNsaWVudC9lbmRwb2ludCc7XG5cbmltcG9ydCB0eXBlIHsgRXh0cmFjdENvbGxlY3Rpb24gfSBmcm9tICcuL2V4dHJhY3RDb2xsZWN0aW9uLmpzJztcbmltcG9ydCB7XG4gIE9wdGlvbnNUb0JvZHlBcmd1bWVudCxcbiAgT3B0aW9uc1RvRnVuY3Rpb24sXG59IGZyb20gJy4vT3B0aW9uc1RvRnVuY3Rpb24uanMnO1xuaW1wb3J0IHsgUGF0aEFyZ3MgfSBmcm9tICcuL3BhdGhUeXBlcy5qcyc7XG5pbXBvcnQgeyBFbmRwb2ludFVwZGF0ZUZ1bmN0aW9uIH0gZnJvbSAnLi9SZXN0RW5kcG9pbnRUeXBlSGVscC5qcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzdEluc3RhbmNlQmFzZTxcbiAgRiBleHRlbmRzIEZldGNoRnVuY3Rpb24gPSBGZXRjaEZ1bmN0aW9uLFxuICBTIGV4dGVuZHMgU2NoZW1hIHwgdW5kZWZpbmVkID0gYW55LFxuICBNIGV4dGVuZHMgdHJ1ZSB8IHVuZGVmaW5lZCA9IHRydWUgfCB1bmRlZmluZWQsXG4gIE8gZXh0ZW5kcyB7XG4gICAgcGF0aDogc3RyaW5nO1xuICAgIGJvZHk/OiBhbnk7XG4gICAgc2VhcmNoUGFyYW1zPzogYW55O1xuICAgIG1ldGhvZD86IHN0cmluZztcbiAgfSA9IHsgcGF0aDogc3RyaW5nIH0sXG4+IGV4dGVuZHMgRW5kcG9pbnRJbnN0YW5jZUludGVyZmFjZTxGLCBTLCBNPiB7XG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjYm9keSAqL1xuICByZWFkb25seSBib2R5PzogJ2JvZHknIGV4dGVuZHMga2V5b2YgTyA/IE9bJ2JvZHknXSA6IGFueTtcbiAgLyoqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNzZWFyY2hQYXJhbXMgKi9cbiAgcmVhZG9ubHkgc2VhcmNoUGFyYW1zPzogJ3NlYXJjaFBhcmFtcycgZXh0ZW5kcyBrZXlvZiBPID8gT1snc2VhcmNoUGFyYW1zJ11cbiAgOiAvLyB1bmtub3duIGlzIGlkZW50aXR5IHdpdGggJyYnIHR5cGUgb3BlcmF0b3JcbiAgICB1bmtub3duO1xuXG4gIC8qKiBQYXR0ZXJuIHRvIGNvbnN0cnVjdCB1cmwgYmFzZWQgb24gVXJsIFBhcmFtZXRlcnNcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3BhdGhcbiAgICovXG4gIHJlYWRvbmx5IHBhdGg6IE9bJ3BhdGgnXTtcbiAgLyoqIFByZXBlbmRlZCB0byBhbGwgdXJsc1xuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjdXJsUHJlZml4XG4gICAqL1xuICByZWFkb25seSB1cmxQcmVmaXg6IHN0cmluZztcbiAgcmVhZG9ubHkgcmVxdWVzdEluaXQ6IFJlcXVlc3RJbml0O1xuICAvKiogSFRUUCByZXF1ZXN0IG1ldGhvZFxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjbWV0aG9kXG4gICAqL1xuICByZWFkb25seSBtZXRob2Q6IChPICYgeyBtZXRob2Q6IHN0cmluZyB9KVsnbWV0aG9kJ107XG4gIHJlYWRvbmx5IHNpZ25hbDogQWJvcnRTaWduYWwgfCB1bmRlZmluZWQ7XG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjcGFnaW5hdGlvbkZpZWxkICovXG4gIHJlYWRvbmx5IHBhZ2luYXRpb25GaWVsZD86IHN0cmluZztcblxuICAvKiBmZXRjaCBsaWZlY3ljbGVzICovXG4gIC8qIGJlZm9yZS1mZXRjaCAqL1xuICAvKiogQnVpbGRzIHRoZSBVUkwgdG8gZmV0Y2hcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3VybFxuICAgKi9cbiAgdXJsKC4uLmFyZ3M6IFBhcmFtZXRlcnM8Rj4pOiBzdHJpbmc7XG4gIC8qKiBFbmNvZGUgdGhlIHNlYXJjaFBhcmFtcyBjb21wb25lbnQgb2YgdGhlIHVybFxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjc2VhcmNoVG9TdHJpbmdcbiAgICovXG4gIHNlYXJjaFRvU3RyaW5nKHNlYXJjaFBhcmFtczogUmVjb3JkPHN0cmluZywgYW55Pik6IHN0cmluZztcbiAgLyoqIFByZXBhcmVzIFJlcXVlc3RJbml0IHVzZWQgaW4gZmV0Y2guIFRoaXMgaXMgc2VudCB0byBmZXRjaFJlc3BvbnNlKClcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I2dldFJlcXVlc3RJbml0XG4gICAqL1xuICBnZXRSZXF1ZXN0SW5pdChcbiAgICB0aGlzOiBhbnksXG4gICAgYm9keT86IFJlcXVlc3RJbml0Wydib2R5J10gfCBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgKTogUHJvbWlzZTxSZXF1ZXN0SW5pdD4gfCBSZXF1ZXN0SW5pdDtcbiAgLyoqIENhbGxlZCBieSBnZXRSZXF1ZXN0SW5pdCB0byBkZXRlcm1pbmUgSFRUUCBIZWFkZXJzXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNnZXRIZWFkZXJzXG4gICAqL1xuICBnZXRIZWFkZXJzKGhlYWRlcnM6IEhlYWRlcnNJbml0KTogUHJvbWlzZTxIZWFkZXJzSW5pdD4gfCBIZWFkZXJzSW5pdDtcbiAgLyogYWZ0ZXItZmV0Y2ggKi9cbiAgLyoqIFBlcmZvcm1zIHRoZSBmZXRjaCBjYWxsXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNmZXRjaFJlc3BvbnNlXG4gICAqL1xuICBmZXRjaFJlc3BvbnNlKGlucHV0OiBSZXF1ZXN0SW5mbywgaW5pdDogUmVxdWVzdEluaXQpOiBQcm9taXNlPFJlc3BvbnNlPjtcbiAgLyoqIFRha2VzIHRoZSBSZXNwb25zZSBhbmQgcGFyc2VzIHZpYSAudGV4dCgpIG9yIC5qc29uKClcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3BhcnNlUmVzcG9uc2VcbiAgICovXG4gIHBhcnNlUmVzcG9uc2UocmVzcG9uc2U6IFJlc3BvbnNlKTogUHJvbWlzZTxhbnk+O1xuICAvKiogUGVyZm9ybSBhbnkgdHJhbnNmb3JtcyB3aXRoIHRoZSBwYXJzZWQgcmVzdWx0LlxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjcHJvY2Vzc1xuICAgKi9cbiAgcHJvY2Vzcyh2YWx1ZTogYW55LCAuLi5hcmdzOiBQYXJhbWV0ZXJzPEY+KTogUmVzb2x2ZVR5cGU8Rj47XG5cbiAgLyogdXRpbGl0aWVzICovXG4gIC8qKiBSZXR1cm5zIHRydWUgaWYgdGhlIHByb3ZpZGVkIChmZXRjaCkga2V5IG1hdGNoZXMgdGhpcyBlbmRwb2ludC5cbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3Rlc3RLZXlcbiAgICovXG4gIHRlc3RLZXkoa2V5OiBzdHJpbmcpOiBib29sZWFuO1xuXG4gIC8qIGV4dGVuZGVycyAqL1xuICAvLyBUT0RPOiBmaWd1cmUgb3V0IGJldHRlciB3YXkgdGhhbiB3cmFwcGluZyB3aG9sZSBvcHRpb25zIGluIFJlYWRvbmx5PD4gKyBtYWtpbmcgTyBleHRlbmQgZnJvbSB7fVxuICAvLyAgICAgICB0aGlzIGlzIGp1c3QgYSBoYWNrIHRvIGhhbmRsZSB3aGVuIG5vIG1lbWJlcnMgb2YgUGFydGlhbFJlc3RHZW5lcmljcyBhcmUgcHJlc2VudFxuICAvLyAgICAgICBOb3RlOiBVc2luZyBvdmVybG9hZGluZyAobGlrZSBwYWdpbmF0ZWQgZGlkKSBzdHJ1Z2dsZXMgYmVjYXVzZSB0eXBlc2NyaXB0IGRvZXMgbm90IGhhdmUgYSBjbGVhciB3YXkgb2YgZGlzdGluZ3Vpc2hpbmcgb25lXG4gIC8vICAgICAgIHNob3VsZCBiZSB1c2VkIGZyb20gdGhlIG90aGVyIChkdWUgdG8gc2FtZSBwcm9ibGVtIHdpdGggZXZlcnkgbWVtYmVyIGJlaW5nIHBhcnRpYWwpXG4gIC8qKiBDcmVhdGVzIGEgY2hpbGQgZW5kcG9pbnQgdGhhdCBpbmhlcml0cyBmcm9tIHRoaXMgd2hpbGUgb3ZlcnJpZGluZyBwcm92aWRlZCBgb3B0aW9uc2AuXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNleHRlbmRcbiAgICovXG4gIGV4dGVuZDxcbiAgICBFIGV4dGVuZHMgUmVzdEluc3RhbmNlQmFzZSxcbiAgICBFeHRlbmRPcHRpb25zIGV4dGVuZHMgUGFydGlhbFJlc3RHZW5lcmljcyB8IHt9LFxuICA+KFxuICAgIHRoaXM6IEUsXG4gICAgb3B0aW9uczogUmVhZG9ubHk8XG4gICAgICBSZXN0RW5kcG9pbnRFeHRlbmRPcHRpb25zPEV4dGVuZE9wdGlvbnMsIEUsIEY+ICYgRXh0ZW5kT3B0aW9uc1xuICAgID4sXG4gICk6IFJlc3RFeHRlbmRlZEVuZHBvaW50PEV4dGVuZE9wdGlvbnMsIEU+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlc3RJbnN0YW5jZTxcbiAgRiBleHRlbmRzIEZldGNoRnVuY3Rpb24gPSBGZXRjaEZ1bmN0aW9uLFxuICBTIGV4dGVuZHMgU2NoZW1hIHwgdW5kZWZpbmVkID0gYW55LFxuICBNIGV4dGVuZHMgdHJ1ZSB8IHVuZGVmaW5lZCA9IHRydWUgfCB1bmRlZmluZWQsXG4gIE8gZXh0ZW5kcyB7XG4gICAgcGF0aDogc3RyaW5nO1xuICAgIGJvZHk/OiBhbnk7XG4gICAgc2VhcmNoUGFyYW1zPzogYW55O1xuICAgIG1ldGhvZD86IHN0cmluZztcbiAgICBwYWdpbmF0aW9uRmllbGQ/OiBzdHJpbmc7XG4gIH0gPSB7IHBhdGg6IHN0cmluZyB9LFxuPiBleHRlbmRzIFJlc3RJbnN0YW5jZUJhc2U8RiwgUywgTSwgTz4ge1xuICAvKiogQ3JlYXRlcyBhbiBFbmRwb2ludCB0byBhcHBlbmQgdGhlIG5leHQgcGFnZSBleHRlbmRpbmcgYSBsaXN0IGZvciBwYWdpbmF0aW9uXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNwYWdpbmF0ZWRcbiAgICovXG4gIHBhZ2luYXRlZDxcbiAgICBFIGV4dGVuZHMgUmVzdEluc3RhbmNlQmFzZTxGZXRjaEZ1bmN0aW9uLCBhbnksIHVuZGVmaW5lZD4sXG4gICAgQSBleHRlbmRzIGFueVtdLFxuICA+KFxuICAgIHRoaXM6IEUsXG4gICAgcmVtb3ZlQ3Vyc29yOiAoLi4uYXJnczogQSkgPT4gcmVhZG9ubHkgWy4uLlBhcmFtZXRlcnM8RT5dLFxuICApOiBQYWdpbmF0aW9uRW5kcG9pbnQ8RSwgQT47XG4gIHBhZ2luYXRlZDxcbiAgICBFIGV4dGVuZHMgUmVzdEluc3RhbmNlQmFzZTxGZXRjaEZ1bmN0aW9uLCBhbnksIHVuZGVmaW5lZD4sXG4gICAgQyBleHRlbmRzIHN0cmluZyxcbiAgPihcbiAgICB0aGlzOiBFLFxuICAgIGN1cnNvckZpZWxkOiBDLFxuICApOiBQYWdpbmF0aW9uRmllbGRFbmRwb2ludDxFLCBDPjtcbiAgLyoqIEVuZHBvaW50IHRvIGFwcGVuZCB0aGUgbmV4dCBwYWdlIGV4dGVuZGluZyBhIGxpc3QgZm9yIHBhZ2luYXRpb25cbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I2dldFBhZ2VcbiAgICovXG4gIGdldFBhZ2U6ICdwYWdpbmF0aW9uRmllbGQnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgT1sncGFnaW5hdGlvbkZpZWxkJ10gZXh0ZW5kcyBzdHJpbmcgP1xuICAgICAgUGFnaW5hdGlvbkZpZWxkRW5kcG9pbnQ8XG4gICAgICAgIEYgJiB7IHNjaGVtYTogUzsgc2lkZUVmZmVjdDogTSB9ICYgTyxcbiAgICAgICAgT1sncGFnaW5hdGlvbkZpZWxkJ11cbiAgICAgID5cbiAgICA6IHVuZGVmaW5lZFxuICA6IHVuZGVmaW5lZDtcbiAgLyoqIEVuZHBvaW50IHRoYXQgcHVzaGVzIChwbGFjZSBhdCBlbmQpIGEgbmV3bHkgY3JlYXRlZCBlbnRpdHkgdG8gdGhpcyBDb2xsZWN0aW9uXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNwdXNoXG4gICAqL1xuICBwdXNoOiBBZGRFbmRwb2ludDxcbiAgICBGLFxuICAgIEV4dHJhY3RDb2xsZWN0aW9uPFM+WydwdXNoJ10sXG4gICAgRXhjbHVkZTxPLCAnYm9keScgfCAnbWV0aG9kJz4gJiB7XG4gICAgICBib2R5OlxuICAgICAgICB8IE9wdGlvbnNUb0FkZGVyQm9keUFyZ3VtZW50PE8+XG4gICAgICAgIHwgT3B0aW9uc1RvQWRkZXJCb2R5QXJndW1lbnQ8Tz5bXVxuICAgICAgICB8IEZvcm1EYXRhO1xuICAgIH1cbiAgPjtcbiAgLyoqIEVuZHBvaW50IHRoYXQgdW5zaGlmdHMgKHBsYWNlIGF0IHN0YXJ0KSBhIG5ld2x5IGNyZWF0ZWQgZW50aXR5IHRvIHRoaXMgQ29sbGVjdGlvblxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjdW5zaGlmdFxuICAgKi9cbiAgdW5zaGlmdDogQWRkRW5kcG9pbnQ8XG4gICAgRixcbiAgICBFeHRyYWN0Q29sbGVjdGlvbjxTPlsndW5zaGlmdCddLFxuICAgIEV4Y2x1ZGU8TywgJ2JvZHknIHwgJ21ldGhvZCc+ICYge1xuICAgICAgYm9keTpcbiAgICAgICAgfCBPcHRpb25zVG9BZGRlckJvZHlBcmd1bWVudDxPPlxuICAgICAgICB8IE9wdGlvbnNUb0FkZGVyQm9keUFyZ3VtZW50PE8+W11cbiAgICAgICAgfCBGb3JtRGF0YTtcbiAgICB9XG4gID47XG4gIC8qKiBFbmRwb2ludCB0aGF0IGFzc2lnbnMgbmV3bHkgY3JlYXRlZCBlbnRpdGllcyB0byB0aGVpciByZXNwZWN0aXZlIGtleXMgaW4gdGhpcyBDb2xsZWN0aW9uXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNhc3NpZ25cbiAgICovXG4gIGFzc2lnbjogQWRkRW5kcG9pbnQ8XG4gICAgRixcbiAgICBFeHRyYWN0Q29sbGVjdGlvbjxTPixcbiAgICBFeGNsdWRlPE8sICdib2R5JyB8ICdtZXRob2QnPiAmIHtcbiAgICAgIGJvZHk6IFJlY29yZDxzdHJpbmcsIE9wdGlvbnNUb0FkZGVyQm9keUFyZ3VtZW50PE8+PiB8IEZvcm1EYXRhO1xuICAgIH1cbiAgPjtcbn1cblxuZXhwb3J0IHR5cGUgUmVzdEVuZHBvaW50RXh0ZW5kT3B0aW9uczxcbiAgTyBleHRlbmRzIFBhcnRpYWxSZXN0R2VuZXJpY3MsXG4gIEUgZXh0ZW5kcyB7IGJvZHk/OiBhbnk7IHBhdGg/OiBzdHJpbmc7IHNjaGVtYT86IFNjaGVtYTsgbWV0aG9kPzogc3RyaW5nIH0sXG4gIEYgZXh0ZW5kcyBGZXRjaEZ1bmN0aW9uLFxuPiA9IFJlc3RFbmRwb2ludE9wdGlvbnM8XG4gIE9wdGlvbnNUb0Z1bmN0aW9uPE8sIEUsIEY+LFxuICAnc2NoZW1hJyBleHRlbmRzIGtleW9mIE8gPyBFeHRyYWN0PE9bJ3NjaGVtYSddLCBTY2hlbWEgfCB1bmRlZmluZWQ+XG4gIDogRVsnc2NoZW1hJ11cbj4gJlxuICBQYXJ0aWFsPFxuICAgIE9taXQ8XG4gICAgICBFLFxuICAgICAgS2V5b2ZSZXN0RW5kcG9pbnQgfCBrZXlvZiBQYXJ0aWFsUmVzdEdlbmVyaWNzIHwga2V5b2YgUmVzdEVuZHBvaW50T3B0aW9uc1xuICAgID5cbiAgPjtcblxudHlwZSBPcHRpb25zVG9SZXN0RW5kcG9pbnQ8XG4gIE8gZXh0ZW5kcyBQYXJ0aWFsUmVzdEdlbmVyaWNzLFxuICBFIGV4dGVuZHMgUmVzdEluc3RhbmNlQmFzZSAmIHsgYm9keT86IGFueTsgcGFnaW5hdGlvbkZpZWxkPzogc3RyaW5nIH0sXG4gIEYgZXh0ZW5kcyBGZXRjaEZ1bmN0aW9uLFxuPiA9XG4gICdwYXRoJyBleHRlbmRzIGtleW9mIE8gP1xuICAgIFJlc3RUeXBlPFxuICAgICAgJ3NlYXJjaFBhcmFtcycgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICAgICAgT1snc2VhcmNoUGFyYW1zJ10gZXh0ZW5kcyB1bmRlZmluZWQgP1xuICAgICAgICAgIFBhdGhBcmdzPEV4Y2x1ZGU8T1sncGF0aCddLCB1bmRlZmluZWQ+PlxuICAgICAgICA6IE9bJ3NlYXJjaFBhcmFtcyddICYgUGF0aEFyZ3M8RXhjbHVkZTxPWydwYXRoJ10sIHVuZGVmaW5lZD4+XG4gICAgICA6IFBhdGhBcmdzPEV4Y2x1ZGU8T1sncGF0aCddLCB1bmRlZmluZWQ+PixcbiAgICAgIE9wdGlvbnNUb0JvZHlBcmd1bWVudDxcbiAgICAgICAgJ2JvZHknIGV4dGVuZHMga2V5b2YgTyA/IE8gOiBFLFxuICAgICAgICAnbWV0aG9kJyBleHRlbmRzIGtleW9mIE8gPyBPWydtZXRob2QnXSA6IEVbJ21ldGhvZCddXG4gICAgICA+LFxuICAgICAgJ3NjaGVtYScgZXh0ZW5kcyBrZXlvZiBPID8gT1snc2NoZW1hJ10gOiBFWydzY2hlbWEnXSxcbiAgICAgICdtZXRob2QnIGV4dGVuZHMga2V5b2YgTyA/IE1ldGhvZFRvU2lkZTxPWydtZXRob2QnXT4gOiBFWydzaWRlRWZmZWN0J10sXG4gICAgICBPWydwcm9jZXNzJ10gZXh0ZW5kcyB7fSA/IFJldHVyblR5cGU8T1sncHJvY2VzcyddPiA6IFJlc29sdmVUeXBlPEY+LFxuICAgICAge1xuICAgICAgICBwYXRoOiBFeGNsdWRlPE9bJ3BhdGgnXSwgdW5kZWZpbmVkPjtcbiAgICAgICAgYm9keTogJ2JvZHknIGV4dGVuZHMga2V5b2YgTyA/IE9bJ2JvZHknXSA6IEVbJ2JvZHknXTtcbiAgICAgICAgc2VhcmNoUGFyYW1zOiAnc2VhcmNoUGFyYW1zJyBleHRlbmRzIGtleW9mIE8gPyBPWydzZWFyY2hQYXJhbXMnXVxuICAgICAgICA6IEVbJ3NlYXJjaFBhcmFtcyddO1xuICAgICAgICBtZXRob2Q6ICdtZXRob2QnIGV4dGVuZHMga2V5b2YgTyA/IE9bJ21ldGhvZCddIDogRVsnbWV0aG9kJ107XG4gICAgICAgIHBhZ2luYXRpb25GaWVsZDogJ3BhZ2luYXRpb25GaWVsZCcgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICAgICAgICBPWydwYWdpbmF0aW9uRmllbGQnXVxuICAgICAgICA6IEVbJ3BhZ2luYXRpb25GaWVsZCddO1xuICAgICAgfVxuICAgID5cbiAgOiAnYm9keScgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICBSZXN0VHlwZTxcbiAgICAgICdzZWFyY2hQYXJhbXMnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgICAgIE9bJ3NlYXJjaFBhcmFtcyddIGV4dGVuZHMgdW5kZWZpbmVkID9cbiAgICAgICAgICBQYXRoQXJnczxFeGNsdWRlPE9bJ3BhdGgnXSwgdW5kZWZpbmVkPj5cbiAgICAgICAgOiBPWydzZWFyY2hQYXJhbXMnXSAmIFBhdGhBcmdzPEV4Y2x1ZGU8RVsncGF0aCddLCB1bmRlZmluZWQ+PlxuICAgICAgOiBQYXRoQXJnczxFeGNsdWRlPEVbJ3BhdGgnXSwgdW5kZWZpbmVkPj4sXG4gICAgICBPcHRpb25zVG9Cb2R5QXJndW1lbnQ8XG4gICAgICAgIE8sXG4gICAgICAgICdtZXRob2QnIGV4dGVuZHMga2V5b2YgTyA/IE9bJ21ldGhvZCddIDogRVsnbWV0aG9kJ11cbiAgICAgID4sXG4gICAgICAnc2NoZW1hJyBleHRlbmRzIGtleW9mIE8gPyBPWydzY2hlbWEnXSA6IEVbJ3NjaGVtYSddLFxuICAgICAgJ21ldGhvZCcgZXh0ZW5kcyBrZXlvZiBPID8gTWV0aG9kVG9TaWRlPE9bJ21ldGhvZCddPiA6IEVbJ3NpZGVFZmZlY3QnXSxcbiAgICAgIE9bJ3Byb2Nlc3MnXSBleHRlbmRzIHt9ID8gUmV0dXJuVHlwZTxPWydwcm9jZXNzJ10+IDogUmVzb2x2ZVR5cGU8Rj4sXG4gICAgICB7XG4gICAgICAgIHBhdGg6IEVbJ3BhdGgnXTtcbiAgICAgICAgYm9keTogT1snYm9keSddO1xuICAgICAgICBzZWFyY2hQYXJhbXM6ICdzZWFyY2hQYXJhbXMnIGV4dGVuZHMga2V5b2YgTyA/IE9bJ3NlYXJjaFBhcmFtcyddXG4gICAgICAgIDogRVsnc2VhcmNoUGFyYW1zJ107XG4gICAgICAgIG1ldGhvZDogJ21ldGhvZCcgZXh0ZW5kcyBrZXlvZiBPID8gT1snbWV0aG9kJ10gOiBFWydtZXRob2QnXTtcbiAgICAgICAgcGFnaW5hdGlvbkZpZWxkOiAncGFnaW5hdGlvbkZpZWxkJyBleHRlbmRzIGtleW9mIE8gP1xuICAgICAgICAgIE9bJ3BhZ2luYXRpb25GaWVsZCddXG4gICAgICAgIDogRXh0cmFjdDxFWydwYWdpbmF0aW9uRmllbGQnXSwgc3RyaW5nPjtcbiAgICAgIH1cbiAgICA+XG4gIDogJ3NlYXJjaFBhcmFtcycgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICBSZXN0VHlwZTxcbiAgICAgIE9bJ3NlYXJjaFBhcmFtcyddIGV4dGVuZHMgdW5kZWZpbmVkID9cbiAgICAgICAgUGF0aEFyZ3M8RXhjbHVkZTxPWydwYXRoJ10sIHVuZGVmaW5lZD4+XG4gICAgICA6IE9bJ3NlYXJjaFBhcmFtcyddICYgUGF0aEFyZ3M8RXhjbHVkZTxFWydwYXRoJ10sIHVuZGVmaW5lZD4+LFxuICAgICAgT3B0aW9uc1RvQm9keUFyZ3VtZW50PFxuICAgICAgICBFLFxuICAgICAgICAnbWV0aG9kJyBleHRlbmRzIGtleW9mIE8gPyBPWydtZXRob2QnXSA6IEVbJ21ldGhvZCddXG4gICAgICA+LFxuICAgICAgJ3NjaGVtYScgZXh0ZW5kcyBrZXlvZiBPID8gT1snc2NoZW1hJ10gOiBFWydzY2hlbWEnXSxcbiAgICAgICdtZXRob2QnIGV4dGVuZHMga2V5b2YgTyA/IE1ldGhvZFRvU2lkZTxPWydtZXRob2QnXT4gOiBFWydzaWRlRWZmZWN0J10sXG4gICAgICBPWydwcm9jZXNzJ10gZXh0ZW5kcyB7fSA/IFJldHVyblR5cGU8T1sncHJvY2VzcyddPiA6IFJlc29sdmVUeXBlPEY+LFxuICAgICAge1xuICAgICAgICBwYXRoOiBFWydwYXRoJ107XG4gICAgICAgIGJvZHk6IEVbJ2JvZHknXTtcbiAgICAgICAgc2VhcmNoUGFyYW1zOiBPWydzZWFyY2hQYXJhbXMnXTtcbiAgICAgICAgbWV0aG9kOiAnbWV0aG9kJyBleHRlbmRzIGtleW9mIE8gPyBPWydtZXRob2QnXSA6IEVbJ21ldGhvZCddO1xuICAgICAgICBwYWdpbmF0aW9uRmllbGQ6ICdwYWdpbmF0aW9uRmllbGQnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgICAgICAgT1sncGFnaW5hdGlvbkZpZWxkJ11cbiAgICAgICAgOiBFeHRyYWN0PEVbJ3BhZ2luYXRpb25GaWVsZCddLCBzdHJpbmc+O1xuICAgICAgfVxuICAgID5cbiAgOiBSZXN0SW5zdGFuY2U8XG4gICAgICBGLFxuICAgICAgJ3NjaGVtYScgZXh0ZW5kcyBrZXlvZiBPID8gT1snc2NoZW1hJ10gOiBFWydzY2hlbWEnXSxcbiAgICAgICdtZXRob2QnIGV4dGVuZHMga2V5b2YgTyA/IE1ldGhvZFRvU2lkZTxPWydtZXRob2QnXT4gOiBFWydzaWRlRWZmZWN0J10sXG4gICAgICB7XG4gICAgICAgIHBhdGg6ICdwYXRoJyBleHRlbmRzIGtleW9mIE8gPyBFeGNsdWRlPE9bJ3BhdGgnXSwgdW5kZWZpbmVkPlxuICAgICAgICA6IEVbJ3BhdGgnXTtcbiAgICAgICAgYm9keTogJ2JvZHknIGV4dGVuZHMga2V5b2YgTyA/IE9bJ2JvZHknXSA6IEVbJ2JvZHknXTtcbiAgICAgICAgc2VhcmNoUGFyYW1zOiAnc2VhcmNoUGFyYW1zJyBleHRlbmRzIGtleW9mIE8gPyBPWydzZWFyY2hQYXJhbXMnXVxuICAgICAgICA6IEVbJ3NlYXJjaFBhcmFtcyddO1xuICAgICAgICBtZXRob2Q6ICdtZXRob2QnIGV4dGVuZHMga2V5b2YgTyA/IE9bJ21ldGhvZCddIDogRVsnbWV0aG9kJ107XG4gICAgICAgIHBhZ2luYXRpb25GaWVsZDogJ3BhZ2luYXRpb25GaWVsZCcgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICAgICAgICBPWydwYWdpbmF0aW9uRmllbGQnXVxuICAgICAgICA6IEVbJ3BhZ2luYXRpb25GaWVsZCddO1xuICAgICAgfVxuICAgID47XG5cbmV4cG9ydCB0eXBlIFJlc3RFeHRlbmRlZEVuZHBvaW50PFxuICBPIGV4dGVuZHMgUGFydGlhbFJlc3RHZW5lcmljcyxcbiAgRSBleHRlbmRzIFJlc3RJbnN0YW5jZUJhc2UgJiB7IGdldFBhZ2U/OiB1bmtub3duIH0sXG4+ID0gT3B0aW9uc1RvUmVzdEVuZHBvaW50PFxuICBPLFxuICBFICZcbiAgICAoRSBleHRlbmRzIHsgZ2V0UGFnZTogeyBwYWdpbmF0aW9uRmllbGQ6IHN0cmluZyB9IH0gP1xuICAgICAgeyBwYWdpbmF0aW9uRmllbGQ6IEVbJ2dldFBhZ2UnXVsncGFnaW5hdGlvbkZpZWxkJ10gfVxuICAgIDogdW5rbm93biksXG4gIFJlc3RJbnN0YW5jZTxcbiAgICAoXG4gICAgICAuLi5hcmdzOiBQYXJhbWV0ZXJzPEU+XG4gICAgKSA9PiBPWydwcm9jZXNzJ10gZXh0ZW5kcyB7fSA/IFByb21pc2U8UmV0dXJuVHlwZTxPWydwcm9jZXNzJ10+PlxuICAgIDogUmV0dXJuVHlwZTxFPixcbiAgICAnc2NoZW1hJyBleHRlbmRzIGtleW9mIE8gPyBPWydzY2hlbWEnXSA6IEVbJ3NjaGVtYSddLFxuICAgICdtZXRob2QnIGV4dGVuZHMga2V5b2YgTyA/IE1ldGhvZFRvU2lkZTxPWydtZXRob2QnXT4gOiBFWydzaWRlRWZmZWN0J11cbiAgPlxuPiAmXG4gIE9taXQ8TywgS2V5b2ZSZXN0RW5kcG9pbnQ+ICZcbiAgT21pdDxFLCBLZXlvZlJlc3RFbmRwb2ludCB8IGtleW9mIE8+O1xuXG5leHBvcnQgaW50ZXJmYWNlIFBhcnRpYWxSZXN0R2VuZXJpY3Mge1xuICAvKiogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3BhdGggKi9cbiAgcmVhZG9ubHkgcGF0aD86IHN0cmluZztcbiAgLyoqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNzY2hlbWEgKi9cbiAgcmVhZG9ubHkgc2NoZW1hPzogU2NoZW1hIHwgdW5kZWZpbmVkO1xuICAvKiogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I21ldGhvZCAqL1xuICByZWFkb25seSBtZXRob2Q/OiBzdHJpbmc7XG4gIC8qKiBPbmx5IHVzZWQgZm9yIHR5cGVzICovXG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjYm9keSAqL1xuICBib2R5PzogYW55O1xuICAvKiogT25seSB1c2VkIGZvciB0eXBlcyAqL1xuICAvKiogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3NlYXJjaFBhcmFtcyAqL1xuICBzZWFyY2hQYXJhbXM/OiBhbnk7XG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjcGFnaW5hdGlvbmZpZWxkICovXG4gIHJlYWRvbmx5IHBhZ2luYXRpb25GaWVsZD86IHN0cmluZztcbiAgLyoqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNwcm9jZXNzICovXG4gIHByb2Nlc3M/KHZhbHVlOiBhbnksIC4uLmFyZ3M6IGFueSk6IGFueTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUmVzdEdlbmVyaWNzIGV4dGVuZHMgUGFydGlhbFJlc3RHZW5lcmljcyB7XG4gIHJlYWRvbmx5IHBhdGg6IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgUGFnaW5hdGlvbkVuZHBvaW50PFxuICBFIGV4dGVuZHMgRmV0Y2hGdW5jdGlvbiAmIFJlc3RHZW5lcmljcyAmIHsgc2lkZUVmZmVjdD86IHRydWUgfCB1bmRlZmluZWQgfSxcbiAgQSBleHRlbmRzIGFueVtdLFxuPiA9IFJlc3RJbnN0YW5jZUJhc2U8XG4gIFBhcmFtRmV0Y2hOb0JvZHk8QVswXSwgUmVzb2x2ZVR5cGU8RT4+LFxuICBFWydzY2hlbWEnXSxcbiAgRVsnc2lkZUVmZmVjdCddLFxuICBQaWNrPEUsICdwYXRoJyB8ICdzZWFyY2hQYXJhbXMnIHwgJ2JvZHknPiAmIHtcbiAgICBzZWFyY2hQYXJhbXM6IE9taXQ8QVswXSwga2V5b2YgUGF0aEFyZ3M8RVsncGF0aCddPj47XG4gIH1cbj47XG5leHBvcnQgdHlwZSBQYWdpbmF0aW9uRmllbGRFbmRwb2ludDxcbiAgRSBleHRlbmRzIEZldGNoRnVuY3Rpb24gJiBSZXN0R2VuZXJpY3MgJiB7IHNpZGVFZmZlY3Q/OiB0cnVlIHwgdW5kZWZpbmVkIH0sXG4gIEMgZXh0ZW5kcyBzdHJpbmcsXG4+ID0gUmVzdEluc3RhbmNlQmFzZTxcbiAgUGFyYW1GZXRjaE5vQm9keTxcbiAgICB7IFtLIGluIENdOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIH0gJiBFWydzZWFyY2hQYXJhbXMnXSAmXG4gICAgICBQYXRoQXJnczxFeGNsdWRlPEVbJ3BhdGgnXSwgdW5kZWZpbmVkPj4sXG4gICAgUmVzb2x2ZVR5cGU8RT5cbiAgPixcbiAgRVsnc2NoZW1hJ10sXG4gIEVbJ3NpZGVFZmZlY3QnXSxcbiAgUGljazxFLCAncGF0aCcgfCAnc2VhcmNoUGFyYW1zJyB8ICdib2R5Jz4gJiB7XG4gICAgc2VhcmNoUGFyYW1zOiB7IFtLIGluIENdOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIH0gJiBFWydzZWFyY2hQYXJhbXMnXTtcbiAgfVxuPiAmIHsgcGFnaW5hdGlvbkZpZWxkOiBDIH07XG5leHBvcnQgdHlwZSBBZGRFbmRwb2ludDxcbiAgRiBleHRlbmRzIEZldGNoRnVuY3Rpb24gPSBGZXRjaEZ1bmN0aW9uLFxuICBTIGV4dGVuZHMgU2NoZW1hIHwgdW5kZWZpbmVkID0gYW55LFxuICBPIGV4dGVuZHMge1xuICAgIHBhdGg6IHN0cmluZztcbiAgICBib2R5OiBhbnk7XG4gICAgc2VhcmNoUGFyYW1zPzogYW55O1xuICB9ID0geyBwYXRoOiBzdHJpbmc7IGJvZHk6IGFueSB9LFxuPiA9IFJlc3RJbnN0YW5jZUJhc2U8XG4gIFJlc3RGZXRjaDxcbiAgICAnc2VhcmNoUGFyYW1zJyBleHRlbmRzIGtleW9mIE8gP1xuICAgICAgT1snc2VhcmNoUGFyYW1zJ10gZXh0ZW5kcyB1bmRlZmluZWQgP1xuICAgICAgICBQYXRoQXJnczxFeGNsdWRlPE9bJ3BhdGgnXSwgdW5kZWZpbmVkPj5cbiAgICAgIDogT1snc2VhcmNoUGFyYW1zJ10gJiBQYXRoQXJnczxFeGNsdWRlPE9bJ3BhdGgnXSwgdW5kZWZpbmVkPj5cbiAgICA6IFBhdGhBcmdzPEV4Y2x1ZGU8T1sncGF0aCddLCB1bmRlZmluZWQ+PixcbiAgICBPWydib2R5J10sXG4gICAgUmVzb2x2ZVR5cGU8Rj5cbiAgPixcbiAgUyxcbiAgdHJ1ZSxcbiAgT21pdDxPLCAnbWV0aG9kJz4gJiB7IG1ldGhvZDogJ1BPU1QnIH1cbj47XG5cbnR5cGUgT3B0aW9uc0JvZHlEZWZhdWx0PE8gZXh0ZW5kcyBSZXN0R2VuZXJpY3M+ID1cbiAgJ2JvZHknIGV4dGVuZHMga2V5b2YgTyA/IE9cbiAgOiBPWydtZXRob2QnXSBleHRlbmRzICdQT1NUJyB8ICdQVVQnIHwgJ1BBVENIJyA/IE8gJiB7IGJvZHk6IGFueSB9XG4gIDogTyAmIHsgYm9keTogdW5kZWZpbmVkIH07XG5cbnR5cGUgT3B0aW9uc1RvQWRkZXJCb2R5QXJndW1lbnQ8TyBleHRlbmRzIHsgYm9keT86IGFueSB9PiA9XG4gICdib2R5JyBleHRlbmRzIGtleW9mIE8gPyBPWydib2R5J10gOiBhbnk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzdEVuZHBvaW50T3B0aW9uczxcbiAgRiBleHRlbmRzIEZldGNoRnVuY3Rpb24gPSBGZXRjaEZ1bmN0aW9uLFxuICBTIGV4dGVuZHMgU2NoZW1hIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkLFxuPiBleHRlbmRzIEVuZHBvaW50RXh0cmFPcHRpb25zPEY+IHtcbiAgdXJsUHJlZml4Pzogc3RyaW5nO1xuICByZXF1ZXN0SW5pdD86IFJlcXVlc3RJbml0O1xuICBnZXRIZWFkZXJzPyhoZWFkZXJzOiBIZWFkZXJzSW5pdCk6IFByb21pc2U8SGVhZGVyc0luaXQ+IHwgSGVhZGVyc0luaXQ7XG4gIGdldFJlcXVlc3RJbml0Pyhib2R5OiBhbnkpOiBQcm9taXNlPFJlcXVlc3RJbml0PiB8IFJlcXVlc3RJbml0O1xuICBmZXRjaFJlc3BvbnNlPyhpbnB1dDogUmVxdWVzdEluZm8sIGluaXQ6IFJlcXVlc3RJbml0KTogUHJvbWlzZTxhbnk+O1xuICBwYXJzZVJlc3BvbnNlPyhyZXNwb25zZTogUmVzcG9uc2UpOiBQcm9taXNlPGFueT47XG5cbiAgc2lkZUVmZmVjdD86IHRydWUgfCB1bmRlZmluZWQ7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIHNpZ25hbD86IEFib3J0U2lnbmFsO1xuICBmZXRjaD86IEY7XG4gIGtleT8oLi4uYXJnczogUGFyYW1ldGVyczxGPik6IHN0cmluZztcbiAgdXJsPyguLi5hcmdzOiBQYXJhbWV0ZXJzPEY+KTogc3RyaW5nO1xuICB1cGRhdGU/OiBFbmRwb2ludFVwZGF0ZUZ1bmN0aW9uPEYsIFM+O1xufVxuXG5leHBvcnQgdHlwZSBSZXN0RW5kcG9pbnRDb25zdHJ1Y3Rvck9wdGlvbnM8TyBleHRlbmRzIFJlc3RHZW5lcmljcyA9IGFueT4gPVxuICBSZXN0RW5kcG9pbnRPcHRpb25zPFxuICAgIFJlc3RGZXRjaDxcbiAgICAgICdzZWFyY2hQYXJhbXMnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgICAgIE9bJ3NlYXJjaFBhcmFtcyddIGV4dGVuZHMgdW5kZWZpbmVkID9cbiAgICAgICAgICBQYXRoQXJnczxPWydwYXRoJ10+XG4gICAgICAgIDogT1snc2VhcmNoUGFyYW1zJ10gJiBQYXRoQXJnczxPWydwYXRoJ10+XG4gICAgICA6IFBhdGhBcmdzPE9bJ3BhdGgnXT4sXG4gICAgICBPcHRpb25zVG9Cb2R5QXJndW1lbnQ8XG4gICAgICAgIE8sXG4gICAgICAgICdtZXRob2QnIGV4dGVuZHMga2V5b2YgTyA/IE9bJ21ldGhvZCddXG4gICAgICAgIDogTyBleHRlbmRzIHsgc2lkZUVmZmVjdDogdHJ1ZSB9ID8gJ1BPU1QnXG4gICAgICAgIDogJ0dFVCdcbiAgICAgID4sXG4gICAgICBPWydwcm9jZXNzJ10gZXh0ZW5kcyB7fSA/IFJldHVyblR5cGU8T1sncHJvY2VzcyddPlxuICAgICAgOiBhbnkgLypEZW5vcm1hbGl6ZTxPWydzY2hlbWEnXT4qL1xuICAgID4sXG4gICAgT1snc2NoZW1hJ11cbiAgPjtcblxuZXhwb3J0IGludGVyZmFjZSBSZXN0RW5kcG9pbnRDb25zdHJ1Y3RvciB7XG4gIG5ldyA8TyBleHRlbmRzIFJlc3RHZW5lcmljcyA9IGFueT4oe1xuICAgIG1ldGhvZCxcbiAgICBzaWRlRWZmZWN0LFxuICAgIG5hbWUsXG4gICAgLi4ub3B0aW9uc1xuICB9OiBSZXN0RW5kcG9pbnRDb25zdHJ1Y3Rvck9wdGlvbnM8Tz4gJiBSZWFkb25seTxPPik6IFJlc3RJbnN0YW5jZTxcbiAgICBSZXN0RmV0Y2g8XG4gICAgICAnc2VhcmNoUGFyYW1zJyBleHRlbmRzIGtleW9mIE8gP1xuICAgICAgICBPWydzZWFyY2hQYXJhbXMnXSBleHRlbmRzIHVuZGVmaW5lZCA/XG4gICAgICAgICAgUGF0aEFyZ3M8T1sncGF0aCddPlxuICAgICAgICA6IE9bJ3NlYXJjaFBhcmFtcyddICYgUGF0aEFyZ3M8T1sncGF0aCddPlxuICAgICAgOiBQYXRoQXJnczxPWydwYXRoJ10+LFxuICAgICAgT3B0aW9uc1RvQm9keUFyZ3VtZW50PFxuICAgICAgICBPLFxuICAgICAgICAnbWV0aG9kJyBleHRlbmRzIGtleW9mIE8gPyBPWydtZXRob2QnXVxuICAgICAgICA6IE8gZXh0ZW5kcyB7IHNpZGVFZmZlY3Q6IHRydWUgfSA/ICdQT1NUJ1xuICAgICAgICA6ICdHRVQnXG4gICAgICA+LFxuICAgICAgT1sncHJvY2VzcyddIGV4dGVuZHMge30gPyBSZXR1cm5UeXBlPE9bJ3Byb2Nlc3MnXT5cbiAgICAgIDogYW55IC8qRGVub3JtYWxpemU8T1snc2NoZW1hJ10+Ki9cbiAgICA+LFxuICAgICdzY2hlbWEnIGV4dGVuZHMga2V5b2YgTyA/IE9bJ3NjaGVtYSddIDogdW5kZWZpbmVkLFxuICAgICdzaWRlRWZmZWN0JyBleHRlbmRzIGtleW9mIE8gPyBFeHRyYWN0PE9bJ3NpZGVFZmZlY3QnXSwgdW5kZWZpbmVkIHwgdHJ1ZT5cbiAgICA6IE1ldGhvZFRvU2lkZTxPWydtZXRob2QnXT4sXG4gICAgJ21ldGhvZCcgZXh0ZW5kcyBrZXlvZiBPID8gT1xuICAgIDogTyAmIHtcbiAgICAgICAgbWV0aG9kOiBPIGV4dGVuZHMgeyBzaWRlRWZmZWN0OiB0cnVlIH0gPyAnUE9TVCcgOiAnR0VUJztcbiAgICAgIH1cbiAgPjtcbiAgcmVhZG9ubHkgcHJvdG90eXBlOiBSZXN0SW5zdGFuY2VCYXNlO1xufVxuXG5leHBvcnQgdHlwZSBNZXRob2RUb1NpZGU8TT4gPVxuICBNIGV4dGVuZHMgc3RyaW5nID9cbiAgICBNIGV4dGVuZHMgJ0dFVCcgP1xuICAgICAgdW5kZWZpbmVkXG4gICAgOiB0cnVlXG4gIDogdW5kZWZpbmVkO1xuXG4vKiogUmVzdEVuZHBvaW50IHR5cGVzIHNpbXBsaWZpZWQgKi9cbmV4cG9ydCB0eXBlIFJlc3RUeXBlPFxuICBVcmxQYXJhbXMgPSBhbnksXG4gIEJvZHkgPSBhbnksXG4gIFMgZXh0ZW5kcyBTY2hlbWEgfCB1bmRlZmluZWQgPSBTY2hlbWEgfCB1bmRlZmluZWQsXG4gIE0gZXh0ZW5kcyB0cnVlIHwgdW5kZWZpbmVkID0gdHJ1ZSB8IHVuZGVmaW5lZCxcbiAgUiA9IGFueSxcbiAgTyBleHRlbmRzIHtcbiAgICBwYXRoOiBzdHJpbmc7XG4gICAgYm9keT86IGFueTtcbiAgICBzZWFyY2hQYXJhbXM/OiBhbnk7XG4gICAgcGFnaW5hdGlvbkZpZWxkPzogc3RyaW5nO1xuICB9ID0geyBwYXRoOiBzdHJpbmc7IHBhZ2luYXRpb25GaWVsZDogc3RyaW5nIH0sXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXR5cGVzXG4+ID0gSWZUeXBlU2NyaXB0TG9vc2VOdWxsPFxuICBSZXN0SW5zdGFuY2U8XG4gICAga2V5b2YgVXJsUGFyYW1zIGV4dGVuZHMgbmV2ZXIgP1xuICAgICAgKHRoaXM6IEVuZHBvaW50SW5zdGFuY2VJbnRlcmZhY2UsIGJvZHk/OiBCb2R5KSA9PiBQcm9taXNlPFI+XG4gICAgOiAvLyBldmVuIHdpdGggbG9vc2UgbnVsbCwgdGhpcyB3aWxsIG9ubHkgYmUgdHJ1ZSB3aGVuIGFsbCBtZW1iZXJzIGFyZSBvcHRpb25hbFxuICAgIHt9IGV4dGVuZHMgVXJsUGFyYW1zID9cbiAgICAgIHwgKCh0aGlzOiBFbmRwb2ludEluc3RhbmNlSW50ZXJmYWNlLCBib2R5PzogQm9keSkgPT4gUHJvbWlzZTxSPilcbiAgICAgIHwgKChcbiAgICAgICAgICB0aGlzOiBFbmRwb2ludEluc3RhbmNlSW50ZXJmYWNlLFxuICAgICAgICAgIHBhcmFtczogVXJsUGFyYW1zLFxuICAgICAgICAgIGJvZHk/OiBCb2R5LFxuICAgICAgICApID0+IFByb21pc2U8Uj4pXG4gICAgOiAoXG4gICAgICAgIHRoaXM6IEVuZHBvaW50SW5zdGFuY2VJbnRlcmZhY2UsXG4gICAgICAgIHBhcmFtczogVXJsUGFyYW1zLFxuICAgICAgICBib2R5PzogQm9keSxcbiAgICAgICkgPT4gUHJvbWlzZTxSPixcbiAgICBTLFxuICAgIE0sXG4gICAgT1xuICA+LFxuICBCb2R5IGV4dGVuZHMge30gPyBSZXN0VHlwZVdpdGhCb2R5PFVybFBhcmFtcywgUywgTSwgQm9keSwgUiwgTz5cbiAgOiBSZXN0VHlwZU5vQm9keTxVcmxQYXJhbXMsIFMsIE0sIFIsIE8+XG4+O1xuXG5leHBvcnQgdHlwZSBSZXN0VHlwZVdpdGhCb2R5PFxuICBVcmxQYXJhbXMgPSBhbnksXG4gIFMgZXh0ZW5kcyBTY2hlbWEgfCB1bmRlZmluZWQgPSBTY2hlbWEgfCB1bmRlZmluZWQsXG4gIE0gZXh0ZW5kcyB0cnVlIHwgdW5kZWZpbmVkID0gdHJ1ZSB8IHVuZGVmaW5lZCxcbiAgQm9keSA9IGFueSxcbiAgUiA9IGFueSAvKkRlbm9ybWFsaXplPFM+Ki8sXG4gIE8gZXh0ZW5kcyB7XG4gICAgcGF0aDogc3RyaW5nO1xuICAgIGJvZHk/OiBhbnk7XG4gICAgc2VhcmNoUGFyYW1zPzogYW55O1xuICB9ID0geyBwYXRoOiBzdHJpbmc7IGJvZHk6IGFueSB9LFxuPiA9IFJlc3RJbnN0YW5jZTxQYXJhbUZldGNoV2l0aEJvZHk8VXJsUGFyYW1zLCBCb2R5LCBSPiwgUywgTSwgTz47XG5cbmV4cG9ydCB0eXBlIFJlc3RUeXBlTm9Cb2R5PFxuICBVcmxQYXJhbXMgPSBhbnksXG4gIFMgZXh0ZW5kcyBTY2hlbWEgfCB1bmRlZmluZWQgPSBTY2hlbWEgfCB1bmRlZmluZWQsXG4gIE0gZXh0ZW5kcyB0cnVlIHwgdW5kZWZpbmVkID0gdHJ1ZSB8IHVuZGVmaW5lZCxcbiAgUiA9IGFueSAvKkRlbm9ybWFsaXplPFM+Ki8sXG4gIE8gZXh0ZW5kcyB7XG4gICAgcGF0aDogc3RyaW5nO1xuICAgIGJvZHk/OiB1bmRlZmluZWQ7XG4gICAgc2VhcmNoUGFyYW1zPzogYW55O1xuICB9ID0geyBwYXRoOiBzdHJpbmc7IGJvZHk6IHVuZGVmaW5lZCB9LFxuPiA9IFJlc3RJbnN0YW5jZTxQYXJhbUZldGNoTm9Cb2R5PFVybFBhcmFtcywgUj4sIFMsIE0sIE8+O1xuXG4vKiogU2ltcGxlIHBhcmFtZXRlcnMsIGFuZCBib2R5IGZldGNoIGZ1bmN0aW9ucyAqL1xuZXhwb3J0IHR5cGUgUmVzdEZldGNoPFxuICBVcmxQYXJhbXMsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXR5cGVzXG4gIEJvZHkgPSB7fSxcbiAgUmVzb2x2ZSA9IGFueSxcbj4gPSBJZlR5cGVTY3JpcHRMb29zZU51bGw8XG4gIHwgUGFyYW1GZXRjaE5vQm9keTxVcmxQYXJhbXMsIFJlc29sdmU+XG4gIHwgUGFyYW1GZXRjaFdpdGhCb2R5PFVybFBhcmFtcywgQm9keSwgUmVzb2x2ZT4sXG4gIEJvZHkgZXh0ZW5kcyB7fSA/IFBhcmFtRmV0Y2hXaXRoQm9keTxVcmxQYXJhbXMsIEJvZHksIFJlc29sdmU+XG4gIDogUGFyYW1GZXRjaE5vQm9keTxVcmxQYXJhbXMsIFJlc29sdmU+XG4+O1xuXG5leHBvcnQgdHlwZSBQYXJhbUZldGNoV2l0aEJvZHk8UCwgQiA9IHt9LCBSID0gYW55PiA9XG4gIC8vIHdlIG11c3QgYWx3YXlzIGFsbG93IHVuZGVmaW5lZCBpbiBhIHVuaW9uIGFuZCBnaXZlIGl0IGEgdHlwZSB3aXRob3V0IHBhcmFtc1xuICBQIGV4dGVuZHMgdW5kZWZpbmVkID8gKHRoaXM6IEVuZHBvaW50SW5zdGFuY2VJbnRlcmZhY2UsIGJvZHk6IEIpID0+IFByb21pc2U8Uj5cbiAgOiAvLyBldmVuIHdpdGggbG9vc2UgbnVsbCwgdGhpcyB3aWxsIG9ubHkgYmUgdHJ1ZSB3aGVuIGFsbCBtZW1iZXJzIGFyZSBvcHRpb25hbFxuICB7fSBleHRlbmRzIFAgP1xuICAgIC8vIHRoaXMgc2FmZWx5IGhhbmRsZXMgUGF0aEFyZ3Mgd2l0aCBubyBtZW1iZXJzIHRoYXQgcmVzdWx0cyBpbiBhIHNpbXBsZSBgdW5rbm93bmAgdHlwZVxuICAgIGtleW9mIFAgZXh0ZW5kcyBuZXZlciA/XG4gICAgICAodGhpczogRW5kcG9pbnRJbnN0YW5jZUludGVyZmFjZSwgYm9keTogQikgPT4gUHJvbWlzZTxSPlxuICAgIDogfCAoKHRoaXM6IEVuZHBvaW50SW5zdGFuY2VJbnRlcmZhY2UsIHBhcmFtczogUCwgYm9keTogQikgPT4gUHJvbWlzZTxSPilcbiAgICAgIHwgKCh0aGlzOiBFbmRwb2ludEluc3RhbmNlSW50ZXJmYWNlLCBib2R5OiBCKSA9PiBQcm9taXNlPFI+KVxuICA6ICh0aGlzOiBFbmRwb2ludEluc3RhbmNlSW50ZXJmYWNlLCBwYXJhbXM6IFAsIGJvZHk6IEIpID0+IFByb21pc2U8Uj47XG5cbmV4cG9ydCB0eXBlIFBhcmFtRmV0Y2hOb0JvZHk8UCwgUiA9IGFueT4gPVxuICAvLyB3ZSBtdXN0IGFsd2F5cyBhbGxvdyB1bmRlZmluZWQgaW4gYSB1bmlvbiBhbmQgZ2l2ZSBpdCBhIHR5cGUgd2l0aG91dCBwYXJhbXNcbiAgUCBleHRlbmRzIHVuZGVmaW5lZCA/ICh0aGlzOiBFbmRwb2ludEluc3RhbmNlSW50ZXJmYWNlKSA9PiBQcm9taXNlPFI+XG4gIDogLy8gZXZlbiB3aXRoIGxvb3NlIG51bGwsIHRoaXMgd2lsbCBvbmx5IGJlIHRydWUgd2hlbiBhbGwgbWVtYmVycyBhcmUgb3B0aW9uYWxcbiAge30gZXh0ZW5kcyBQID9cbiAgICAvLyB0aGlzIHNhZmVseSBoYW5kbGVzIFBhdGhBcmdzIHdpdGggbm8gbWVtYmVycyB0aGF0IHJlc3VsdHMgaW4gYSBzaW1wbGUgYHVua25vd25gIHR5cGVcbiAgICBrZXlvZiBQIGV4dGVuZHMgbmV2ZXIgP1xuICAgICAgKHRoaXM6IEVuZHBvaW50SW5zdGFuY2VJbnRlcmZhY2UpID0+IFByb21pc2U8Uj5cbiAgICA6IHwgKCh0aGlzOiBFbmRwb2ludEluc3RhbmNlSW50ZXJmYWNlLCBwYXJhbXM6IFApID0+IFByb21pc2U8Uj4pXG4gICAgICB8ICgodGhpczogRW5kcG9pbnRJbnN0YW5jZUludGVyZmFjZSkgPT4gUHJvbWlzZTxSPilcbiAgOiAodGhpczogRW5kcG9pbnRJbnN0YW5jZUludGVyZmFjZSwgcGFyYW1zOiBQKSA9PiBQcm9taXNlPFI+O1xuXG50eXBlIElmVHlwZVNjcmlwdExvb3NlTnVsbDxZLCBOPiA9IDEgfCB1bmRlZmluZWQgZXh0ZW5kcyAxID8gWSA6IE47XG5cbmV4cG9ydCB0eXBlIEtleW9mUmVzdEVuZHBvaW50ID0ga2V5b2YgUmVzdEluc3RhbmNlO1xuXG5leHBvcnQgdHlwZSBGcm9tRmFsbEJhY2s8SyBleHRlbmRzIGtleW9mIEUsIE8sIEU+ID1cbiAgSyBleHRlbmRzIGtleW9mIE8gPyBPW0tdIDogRVtLXTtcblxuZXhwb3J0IHR5cGUgRmV0Y2hNdXRhdGU8XG4gIEEgZXh0ZW5kcyByZWFkb25seSBhbnlbXSA9ICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10eXBlc1xuICAgIHwgW2FueSwge31dXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHlwZXNcbiAgICB8IFt7fV0sXG4gIFIgPSBhbnksXG4+ID0gKHRoaXM6IFJlc3RJbnN0YW5jZSwgLi4uYXJnczogQSkgPT4gUHJvbWlzZTxSPjtcblxuZXhwb3J0IHR5cGUgRmV0Y2hHZXQ8QSBleHRlbmRzIHJlYWRvbmx5IGFueVtdID0gW2FueV0sIFIgPSBhbnk+ID0gKFxuICB0aGlzOiBSZXN0SW5zdGFuY2UsXG4gIC4uLmFyZ3M6IEFcbikgPT4gUHJvbWlzZTxSPjtcblxuZXhwb3J0IHR5cGUgRGVmYXVsdHM8TywgRD4gPSB7XG4gIFtLIGluIGtleW9mIE8gfCBrZXlvZiBEXTogSyBleHRlbmRzIGtleW9mIE8gPyBFeGNsdWRlPE9bS10sIHVuZGVmaW5lZD5cbiAgOiBEW0V4dHJhY3Q8Sywga2V5b2YgRD5dO1xufTtcblxuZXhwb3J0IHR5cGUgR2V0RW5kcG9pbnQ8XG4gIE8gZXh0ZW5kcyB7XG4gICAgcmVhZG9ubHkgcGF0aDogc3RyaW5nO1xuICAgIHJlYWRvbmx5IHNjaGVtYTogU2NoZW1hO1xuICAgIC8qKiBPbmx5IHVzZWQgZm9yIHR5cGVzICovXG4gICAgcmVhZG9ubHkgc2VhcmNoUGFyYW1zPzogYW55O1xuICAgIHJlYWRvbmx5IHBhZ2luYXRpb25GaWVsZD86IHN0cmluZztcbiAgfSA9IHtcbiAgICBwYXRoOiBzdHJpbmc7XG4gICAgc2NoZW1hOiBTY2hlbWE7XG4gIH0sXG4+ID0gUmVzdFR5cGVOb0JvZHk8XG4gICdzZWFyY2hQYXJhbXMnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgT1snc2VhcmNoUGFyYW1zJ10gZXh0ZW5kcyB1bmRlZmluZWQgP1xuICAgICAgUGF0aEFyZ3M8T1sncGF0aCddPlxuICAgIDogT1snc2VhcmNoUGFyYW1zJ10gJiBQYXRoQXJnczxPWydwYXRoJ10+XG4gIDogUGF0aEFyZ3M8T1sncGF0aCddPixcbiAgT1snc2NoZW1hJ10sXG4gIHVuZGVmaW5lZCxcbiAgYW55LFxuICBPICYgeyBtZXRob2Q6ICdHRVQnIH1cbj47XG5cbmV4cG9ydCB0eXBlIE11dGF0ZUVuZHBvaW50PFxuICBPIGV4dGVuZHMge1xuICAgIHJlYWRvbmx5IHBhdGg6IHN0cmluZztcbiAgICByZWFkb25seSBzY2hlbWE6IFNjaGVtYTtcbiAgICAvKiogT25seSB1c2VkIGZvciB0eXBlcyAqL1xuICAgIHJlYWRvbmx5IHNlYXJjaFBhcmFtcz86IGFueTtcbiAgICAvKiogT25seSB1c2VkIGZvciB0eXBlcyAqL1xuICAgIHJlYWRvbmx5IGJvZHk/OiBhbnk7XG4gIH0gPSB7XG4gICAgcGF0aDogc3RyaW5nO1xuICAgIGJvZHk6IGFueTtcbiAgICBzY2hlbWE6IFNjaGVtYTtcbiAgfSxcbj4gPSBSZXN0VHlwZVdpdGhCb2R5PFxuICAnc2VhcmNoUGFyYW1zJyBleHRlbmRzIGtleW9mIE8gP1xuICAgIE9bJ3NlYXJjaFBhcmFtcyddIGV4dGVuZHMgdW5kZWZpbmVkID9cbiAgICAgIFBhdGhBcmdzPE9bJ3BhdGgnXT5cbiAgICA6IE9bJ3NlYXJjaFBhcmFtcyddICYgUGF0aEFyZ3M8T1sncGF0aCddPlxuICA6IFBhdGhBcmdzPE9bJ3BhdGgnXT4sXG4gIE9bJ3NjaGVtYSddLFxuICB0cnVlLFxuICBPWydib2R5J10sXG4gIGFueSxcbiAgTyAmIHsgYm9keTogYW55OyBtZXRob2Q6ICdQT1NUJyB8ICdQVVQnIHwgJ1BBVENIJyB8ICdERUxFVEUnIH1cbj47XG4iXSwibWFwcGluZ3MiOiIifQ==
|
|
2
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL1Jlc3RFbmRwb2ludFR5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHlwZXMgKi9cbmltcG9ydCB0eXBlIHtcbiAgRW5kcG9pbnRFeHRyYU9wdGlvbnMsXG4gIEVuZHBvaW50SW5zdGFuY2VJbnRlcmZhY2UsXG4gIFNjaGVtYSxcbiAgRmV0Y2hGdW5jdGlvbixcbiAgUmVzb2x2ZVR5cGUsXG59IGZyb20gJ0BkYXRhLWNsaWVudC9lbmRwb2ludCc7XG5cbmltcG9ydCB0eXBlIHsgRXh0cmFjdENvbGxlY3Rpb24gfSBmcm9tICcuL2V4dHJhY3RDb2xsZWN0aW9uLmpzJztcbmltcG9ydCB7XG4gIE9wdGlvbnNUb0JvZHlBcmd1bWVudCxcbiAgT3B0aW9uc1RvRnVuY3Rpb24sXG59IGZyb20gJy4vT3B0aW9uc1RvRnVuY3Rpb24uanMnO1xuaW1wb3J0IHsgUGF0aEFyZ3MgfSBmcm9tICcuL3BhdGhUeXBlcy5qcyc7XG5pbXBvcnQgeyBFbmRwb2ludFVwZGF0ZUZ1bmN0aW9uIH0gZnJvbSAnLi9SZXN0RW5kcG9pbnRUeXBlSGVscC5qcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzdEluc3RhbmNlQmFzZTxcbiAgRiBleHRlbmRzIEZldGNoRnVuY3Rpb24gPSBGZXRjaEZ1bmN0aW9uLFxuICBTIGV4dGVuZHMgU2NoZW1hIHwgdW5kZWZpbmVkID0gYW55LFxuICBNIGV4dGVuZHMgdHJ1ZSB8IHVuZGVmaW5lZCA9IHRydWUgfCB1bmRlZmluZWQsXG4gIE8gZXh0ZW5kcyB7XG4gICAgcGF0aDogc3RyaW5nO1xuICAgIGJvZHk/OiBhbnk7XG4gICAgc2VhcmNoUGFyYW1zPzogYW55O1xuICAgIG1ldGhvZD86IHN0cmluZztcbiAgfSA9IHsgcGF0aDogc3RyaW5nIH0sXG4+IGV4dGVuZHMgRW5kcG9pbnRJbnN0YW5jZUludGVyZmFjZTxGLCBTLCBNPiB7XG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjYm9keSAqL1xuICByZWFkb25seSBib2R5PzogJ2JvZHknIGV4dGVuZHMga2V5b2YgTyA/IE9bJ2JvZHknXSA6IGFueTtcbiAgLyoqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNzZWFyY2hQYXJhbXMgKi9cbiAgcmVhZG9ubHkgc2VhcmNoUGFyYW1zPzogJ3NlYXJjaFBhcmFtcycgZXh0ZW5kcyBrZXlvZiBPID8gT1snc2VhcmNoUGFyYW1zJ11cbiAgOiAvLyB1bmtub3duIGlzIGlkZW50aXR5IHdpdGggJyYnIHR5cGUgb3BlcmF0b3JcbiAgICB1bmtub3duO1xuXG4gIC8qKiBQYXR0ZXJuIHRvIGNvbnN0cnVjdCB1cmwgYmFzZWQgb24gVXJsIFBhcmFtZXRlcnNcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3BhdGhcbiAgICovXG4gIHJlYWRvbmx5IHBhdGg6IE9bJ3BhdGgnXTtcbiAgLyoqIFByZXBlbmRlZCB0byBhbGwgdXJsc1xuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjdXJsUHJlZml4XG4gICAqL1xuICByZWFkb25seSB1cmxQcmVmaXg6IHN0cmluZztcbiAgcmVhZG9ubHkgcmVxdWVzdEluaXQ6IFJlcXVlc3RJbml0O1xuICAvKiogSFRUUCByZXF1ZXN0IG1ldGhvZFxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjbWV0aG9kXG4gICAqL1xuICByZWFkb25seSBtZXRob2Q6IChPICYgeyBtZXRob2Q6IHN0cmluZyB9KVsnbWV0aG9kJ107XG4gIHJlYWRvbmx5IHNpZ25hbDogQWJvcnRTaWduYWwgfCB1bmRlZmluZWQ7XG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjcGFnaW5hdGlvbkZpZWxkICovXG4gIHJlYWRvbmx5IHBhZ2luYXRpb25GaWVsZD86IHN0cmluZztcblxuICAvKiBmZXRjaCBsaWZlY3ljbGVzICovXG4gIC8qIGJlZm9yZS1mZXRjaCAqL1xuICAvKiogQnVpbGRzIHRoZSBVUkwgdG8gZmV0Y2hcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3VybFxuICAgKi9cbiAgdXJsKC4uLmFyZ3M6IFBhcmFtZXRlcnM8Rj4pOiBzdHJpbmc7XG4gIC8qKiBFbmNvZGUgdGhlIHNlYXJjaFBhcmFtcyBjb21wb25lbnQgb2YgdGhlIHVybFxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjc2VhcmNoVG9TdHJpbmdcbiAgICovXG4gIHNlYXJjaFRvU3RyaW5nKHNlYXJjaFBhcmFtczogUmVjb3JkPHN0cmluZywgYW55Pik6IHN0cmluZztcbiAgLyoqIFByZXBhcmVzIFJlcXVlc3RJbml0IHVzZWQgaW4gZmV0Y2guIFRoaXMgaXMgc2VudCB0byBmZXRjaFJlc3BvbnNlKClcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I2dldFJlcXVlc3RJbml0XG4gICAqL1xuICBnZXRSZXF1ZXN0SW5pdChcbiAgICB0aGlzOiBhbnksXG4gICAgYm9keT86IFJlcXVlc3RJbml0Wydib2R5J10gfCBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgKTogUHJvbWlzZTxSZXF1ZXN0SW5pdD4gfCBSZXF1ZXN0SW5pdDtcbiAgLyoqIENhbGxlZCBieSBnZXRSZXF1ZXN0SW5pdCB0byBkZXRlcm1pbmUgSFRUUCBIZWFkZXJzXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNnZXRIZWFkZXJzXG4gICAqL1xuICBnZXRIZWFkZXJzKGhlYWRlcnM6IEhlYWRlcnNJbml0KTogUHJvbWlzZTxIZWFkZXJzSW5pdD4gfCBIZWFkZXJzSW5pdDtcbiAgLyogYWZ0ZXItZmV0Y2ggKi9cbiAgLyoqIFBlcmZvcm1zIHRoZSBmZXRjaCBjYWxsXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNmZXRjaFJlc3BvbnNlXG4gICAqL1xuICBmZXRjaFJlc3BvbnNlKGlucHV0OiBSZXF1ZXN0SW5mbywgaW5pdDogUmVxdWVzdEluaXQpOiBQcm9taXNlPFJlc3BvbnNlPjtcbiAgLyoqIFRha2VzIHRoZSBSZXNwb25zZSBhbmQgcGFyc2VzIHZpYSAudGV4dCgpIG9yIC5qc29uKClcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3BhcnNlUmVzcG9uc2VcbiAgICovXG4gIHBhcnNlUmVzcG9uc2UocmVzcG9uc2U6IFJlc3BvbnNlKTogUHJvbWlzZTxhbnk+O1xuICAvKiogUGVyZm9ybSBhbnkgdHJhbnNmb3JtcyB3aXRoIHRoZSBwYXJzZWQgcmVzdWx0LlxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjcHJvY2Vzc1xuICAgKi9cbiAgcHJvY2Vzcyh2YWx1ZTogYW55LCAuLi5hcmdzOiBQYXJhbWV0ZXJzPEY+KTogUmVzb2x2ZVR5cGU8Rj47XG5cbiAgLyogdXRpbGl0aWVzICovXG4gIC8qKiBSZXR1cm5zIHRydWUgaWYgdGhlIHByb3ZpZGVkIChmZXRjaCkga2V5IG1hdGNoZXMgdGhpcyBlbmRwb2ludC5cbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3Rlc3RLZXlcbiAgICovXG4gIHRlc3RLZXkoa2V5OiBzdHJpbmcpOiBib29sZWFuO1xuXG4gIC8qIGV4dGVuZGVycyAqL1xuICAvLyBUT0RPOiBmaWd1cmUgb3V0IGJldHRlciB3YXkgdGhhbiB3cmFwcGluZyB3aG9sZSBvcHRpb25zIGluIFJlYWRvbmx5PD4gKyBtYWtpbmcgTyBleHRlbmQgZnJvbSB7fVxuICAvLyAgICAgICB0aGlzIGlzIGp1c3QgYSBoYWNrIHRvIGhhbmRsZSB3aGVuIG5vIG1lbWJlcnMgb2YgUGFydGlhbFJlc3RHZW5lcmljcyBhcmUgcHJlc2VudFxuICAvLyAgICAgICBOb3RlOiBVc2luZyBvdmVybG9hZGluZyAobGlrZSBwYWdpbmF0ZWQgZGlkKSBzdHJ1Z2dsZXMgYmVjYXVzZSB0eXBlc2NyaXB0IGRvZXMgbm90IGhhdmUgYSBjbGVhciB3YXkgb2YgZGlzdGluZ3Vpc2hpbmcgb25lXG4gIC8vICAgICAgIHNob3VsZCBiZSB1c2VkIGZyb20gdGhlIG90aGVyIChkdWUgdG8gc2FtZSBwcm9ibGVtIHdpdGggZXZlcnkgbWVtYmVyIGJlaW5nIHBhcnRpYWwpXG4gIC8qKiBDcmVhdGVzIGEgY2hpbGQgZW5kcG9pbnQgdGhhdCBpbmhlcml0cyBmcm9tIHRoaXMgd2hpbGUgb3ZlcnJpZGluZyBwcm92aWRlZCBgb3B0aW9uc2AuXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNleHRlbmRcbiAgICovXG4gIGV4dGVuZDxcbiAgICBFIGV4dGVuZHMgUmVzdEluc3RhbmNlQmFzZSxcbiAgICBFeHRlbmRPcHRpb25zIGV4dGVuZHMgUGFydGlhbFJlc3RHZW5lcmljcyB8IHt9LFxuICA+KFxuICAgIHRoaXM6IEUsXG4gICAgb3B0aW9uczogUmVhZG9ubHk8XG4gICAgICBSZXN0RW5kcG9pbnRFeHRlbmRPcHRpb25zPEV4dGVuZE9wdGlvbnMsIEUsIEY+ICYgRXh0ZW5kT3B0aW9uc1xuICAgID4sXG4gICk6IFJlc3RFeHRlbmRlZEVuZHBvaW50PEV4dGVuZE9wdGlvbnMsIEU+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlc3RJbnN0YW5jZTxcbiAgRiBleHRlbmRzIEZldGNoRnVuY3Rpb24gPSBGZXRjaEZ1bmN0aW9uLFxuICBTIGV4dGVuZHMgU2NoZW1hIHwgdW5kZWZpbmVkID0gYW55LFxuICBNIGV4dGVuZHMgdHJ1ZSB8IHVuZGVmaW5lZCA9IHRydWUgfCB1bmRlZmluZWQsXG4gIE8gZXh0ZW5kcyB7XG4gICAgcGF0aDogc3RyaW5nO1xuICAgIGJvZHk/OiBhbnk7XG4gICAgc2VhcmNoUGFyYW1zPzogYW55O1xuICAgIG1ldGhvZD86IHN0cmluZztcbiAgICBwYWdpbmF0aW9uRmllbGQ/OiBzdHJpbmc7XG4gIH0gPSB7IHBhdGg6IHN0cmluZyB9LFxuPiBleHRlbmRzIFJlc3RJbnN0YW5jZUJhc2U8RiwgUywgTSwgTz4ge1xuICAvKiogQ3JlYXRlcyBhbiBFbmRwb2ludCB0byBhcHBlbmQgdGhlIG5leHQgcGFnZSBleHRlbmRpbmcgYSBsaXN0IGZvciBwYWdpbmF0aW9uXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNwYWdpbmF0ZWRcbiAgICovXG4gIHBhZ2luYXRlZDxcbiAgICBFIGV4dGVuZHMgUmVzdEluc3RhbmNlQmFzZTxGZXRjaEZ1bmN0aW9uLCBhbnksIHVuZGVmaW5lZD4sXG4gICAgQSBleHRlbmRzIGFueVtdLFxuICA+KFxuICAgIHRoaXM6IEUsXG4gICAgcmVtb3ZlQ3Vyc29yOiAoLi4uYXJnczogQSkgPT4gcmVhZG9ubHkgWy4uLlBhcmFtZXRlcnM8RT5dLFxuICApOiBQYWdpbmF0aW9uRW5kcG9pbnQ8RSwgQT47XG4gIHBhZ2luYXRlZDxcbiAgICBFIGV4dGVuZHMgUmVzdEluc3RhbmNlQmFzZTxGZXRjaEZ1bmN0aW9uLCBhbnksIHVuZGVmaW5lZD4sXG4gICAgQyBleHRlbmRzIHN0cmluZyxcbiAgPihcbiAgICB0aGlzOiBFLFxuICAgIGN1cnNvckZpZWxkOiBDLFxuICApOiBQYWdpbmF0aW9uRmllbGRFbmRwb2ludDxFLCBDPjtcbiAgLyoqIEVuZHBvaW50IHRvIGFwcGVuZCB0aGUgbmV4dCBwYWdlIGV4dGVuZGluZyBhIGxpc3QgZm9yIHBhZ2luYXRpb25cbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I2dldFBhZ2VcbiAgICovXG4gIGdldFBhZ2U6ICdwYWdpbmF0aW9uRmllbGQnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgT1sncGFnaW5hdGlvbkZpZWxkJ10gZXh0ZW5kcyBzdHJpbmcgP1xuICAgICAgUGFnaW5hdGlvbkZpZWxkRW5kcG9pbnQ8XG4gICAgICAgIEYgJiB7IHNjaGVtYTogUzsgc2lkZUVmZmVjdDogTSB9ICYgTyxcbiAgICAgICAgT1sncGFnaW5hdGlvbkZpZWxkJ11cbiAgICAgID5cbiAgICA6IHVuZGVmaW5lZFxuICA6IHVuZGVmaW5lZDtcbiAgLyoqIEVuZHBvaW50IHRoYXQgcHVzaGVzIChwbGFjZSBhdCBlbmQpIGEgbmV3bHkgY3JlYXRlZCBlbnRpdHkgdG8gdGhpcyBDb2xsZWN0aW9uXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNwdXNoXG4gICAqL1xuICBwdXNoOiBBZGRFbmRwb2ludDxcbiAgICBGLFxuICAgIEV4dHJhY3RDb2xsZWN0aW9uPFM+WydwdXNoJ10sXG4gICAgRXhjbHVkZTxPLCAnYm9keScgfCAnbWV0aG9kJz4gJiB7XG4gICAgICBib2R5OlxuICAgICAgICB8IE9wdGlvbnNUb0FkZGVyQm9keUFyZ3VtZW50PE8+XG4gICAgICAgIHwgT3B0aW9uc1RvQWRkZXJCb2R5QXJndW1lbnQ8Tz5bXVxuICAgICAgICB8IEZvcm1EYXRhO1xuICAgIH1cbiAgPjtcbiAgLyoqIEVuZHBvaW50IHRoYXQgdW5zaGlmdHMgKHBsYWNlIGF0IHN0YXJ0KSBhIG5ld2x5IGNyZWF0ZWQgZW50aXR5IHRvIHRoaXMgQ29sbGVjdGlvblxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjdW5zaGlmdFxuICAgKi9cbiAgdW5zaGlmdDogQWRkRW5kcG9pbnQ8XG4gICAgRixcbiAgICBFeHRyYWN0Q29sbGVjdGlvbjxTPlsndW5zaGlmdCddLFxuICAgIEV4Y2x1ZGU8TywgJ2JvZHknIHwgJ21ldGhvZCc+ICYge1xuICAgICAgYm9keTpcbiAgICAgICAgfCBPcHRpb25zVG9BZGRlckJvZHlBcmd1bWVudDxPPlxuICAgICAgICB8IE9wdGlvbnNUb0FkZGVyQm9keUFyZ3VtZW50PE8+W11cbiAgICAgICAgfCBGb3JtRGF0YTtcbiAgICB9XG4gID47XG4gIC8qKiBFbmRwb2ludCB0aGF0IGFzc2lnbnMgbmV3bHkgY3JlYXRlZCBlbnRpdGllcyB0byB0aGVpciByZXNwZWN0aXZlIGtleXMgaW4gdGhpcyBDb2xsZWN0aW9uXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNhc3NpZ25cbiAgICovXG4gIGFzc2lnbjogQWRkRW5kcG9pbnQ8XG4gICAgRixcbiAgICBFeHRyYWN0Q29sbGVjdGlvbjxTPixcbiAgICBFeGNsdWRlPE8sICdib2R5JyB8ICdtZXRob2QnPiAmIHtcbiAgICAgIGJvZHk6IFJlY29yZDxzdHJpbmcsIE9wdGlvbnNUb0FkZGVyQm9keUFyZ3VtZW50PE8+PiB8IEZvcm1EYXRhO1xuICAgIH1cbiAgPjtcbn1cblxuZXhwb3J0IHR5cGUgUmVzdEVuZHBvaW50RXh0ZW5kT3B0aW9uczxcbiAgTyBleHRlbmRzIFBhcnRpYWxSZXN0R2VuZXJpY3MsXG4gIEUgZXh0ZW5kcyB7IGJvZHk/OiBhbnk7IHBhdGg/OiBzdHJpbmc7IHNjaGVtYT86IFNjaGVtYTsgbWV0aG9kPzogc3RyaW5nIH0sXG4gIEYgZXh0ZW5kcyBGZXRjaEZ1bmN0aW9uLFxuPiA9IFJlc3RFbmRwb2ludE9wdGlvbnM8XG4gIE9wdGlvbnNUb0Z1bmN0aW9uPE8sIEUsIEY+LFxuICAnc2NoZW1hJyBleHRlbmRzIGtleW9mIE8gPyBFeHRyYWN0PE9bJ3NjaGVtYSddLCBTY2hlbWEgfCB1bmRlZmluZWQ+XG4gIDogRVsnc2NoZW1hJ11cbj4gJlxuICBQYXJ0aWFsPFxuICAgIE9taXQ8XG4gICAgICBFLFxuICAgICAgS2V5b2ZSZXN0RW5kcG9pbnQgfCBrZXlvZiBQYXJ0aWFsUmVzdEdlbmVyaWNzIHwga2V5b2YgUmVzdEVuZHBvaW50T3B0aW9uc1xuICAgID5cbiAgPjtcblxudHlwZSBPcHRpb25zVG9SZXN0RW5kcG9pbnQ8XG4gIE8gZXh0ZW5kcyBQYXJ0aWFsUmVzdEdlbmVyaWNzLFxuICBFIGV4dGVuZHMgUmVzdEluc3RhbmNlQmFzZSAmIHsgYm9keT86IGFueTsgcGFnaW5hdGlvbkZpZWxkPzogc3RyaW5nIH0sXG4gIEYgZXh0ZW5kcyBGZXRjaEZ1bmN0aW9uLFxuPiA9XG4gICdwYXRoJyBleHRlbmRzIGtleW9mIE8gP1xuICAgIFJlc3RUeXBlPFxuICAgICAgJ3NlYXJjaFBhcmFtcycgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICAgICAgT1snc2VhcmNoUGFyYW1zJ10gZXh0ZW5kcyB1bmRlZmluZWQgP1xuICAgICAgICAgIFBhdGhBcmdzPEV4Y2x1ZGU8T1sncGF0aCddLCB1bmRlZmluZWQ+PlxuICAgICAgICA6IE9bJ3NlYXJjaFBhcmFtcyddICYgUGF0aEFyZ3M8RXhjbHVkZTxPWydwYXRoJ10sIHVuZGVmaW5lZD4+XG4gICAgICA6IFBhdGhBcmdzPEV4Y2x1ZGU8T1sncGF0aCddLCB1bmRlZmluZWQ+PixcbiAgICAgIE9wdGlvbnNUb0JvZHlBcmd1bWVudDxcbiAgICAgICAgJ2JvZHknIGV4dGVuZHMga2V5b2YgTyA/IE8gOiBFLFxuICAgICAgICAnbWV0aG9kJyBleHRlbmRzIGtleW9mIE8gPyBPWydtZXRob2QnXSA6IEVbJ21ldGhvZCddXG4gICAgICA+LFxuICAgICAgJ3NjaGVtYScgZXh0ZW5kcyBrZXlvZiBPID8gT1snc2NoZW1hJ10gOiBFWydzY2hlbWEnXSxcbiAgICAgICdtZXRob2QnIGV4dGVuZHMga2V5b2YgTyA/IE1ldGhvZFRvU2lkZTxPWydtZXRob2QnXT4gOiBFWydzaWRlRWZmZWN0J10sXG4gICAgICBPWydwcm9jZXNzJ10gZXh0ZW5kcyB7fSA/IFJldHVyblR5cGU8T1sncHJvY2VzcyddPiA6IFJlc29sdmVUeXBlPEY+LFxuICAgICAge1xuICAgICAgICBwYXRoOiBFeGNsdWRlPE9bJ3BhdGgnXSwgdW5kZWZpbmVkPjtcbiAgICAgICAgYm9keTogJ2JvZHknIGV4dGVuZHMga2V5b2YgTyA/IE9bJ2JvZHknXSA6IEVbJ2JvZHknXTtcbiAgICAgICAgc2VhcmNoUGFyYW1zOiAnc2VhcmNoUGFyYW1zJyBleHRlbmRzIGtleW9mIE8gPyBPWydzZWFyY2hQYXJhbXMnXVxuICAgICAgICA6IEVbJ3NlYXJjaFBhcmFtcyddO1xuICAgICAgICBtZXRob2Q6ICdtZXRob2QnIGV4dGVuZHMga2V5b2YgTyA/IE9bJ21ldGhvZCddIDogRVsnbWV0aG9kJ107XG4gICAgICAgIHBhZ2luYXRpb25GaWVsZDogJ3BhZ2luYXRpb25GaWVsZCcgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICAgICAgICBPWydwYWdpbmF0aW9uRmllbGQnXVxuICAgICAgICA6IEVbJ3BhZ2luYXRpb25GaWVsZCddO1xuICAgICAgfVxuICAgID5cbiAgOiAnYm9keScgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICBSZXN0VHlwZTxcbiAgICAgICdzZWFyY2hQYXJhbXMnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgICAgIE9bJ3NlYXJjaFBhcmFtcyddIGV4dGVuZHMgdW5kZWZpbmVkID9cbiAgICAgICAgICBQYXRoQXJnczxFeGNsdWRlPE9bJ3BhdGgnXSwgdW5kZWZpbmVkPj5cbiAgICAgICAgOiBPWydzZWFyY2hQYXJhbXMnXSAmIFBhdGhBcmdzPEV4Y2x1ZGU8RVsncGF0aCddLCB1bmRlZmluZWQ+PlxuICAgICAgOiBQYXRoQXJnczxFeGNsdWRlPEVbJ3BhdGgnXSwgdW5kZWZpbmVkPj4sXG4gICAgICBPcHRpb25zVG9Cb2R5QXJndW1lbnQ8XG4gICAgICAgIE8sXG4gICAgICAgICdtZXRob2QnIGV4dGVuZHMga2V5b2YgTyA/IE9bJ21ldGhvZCddIDogRVsnbWV0aG9kJ11cbiAgICAgID4sXG4gICAgICAnc2NoZW1hJyBleHRlbmRzIGtleW9mIE8gPyBPWydzY2hlbWEnXSA6IEVbJ3NjaGVtYSddLFxuICAgICAgJ21ldGhvZCcgZXh0ZW5kcyBrZXlvZiBPID8gTWV0aG9kVG9TaWRlPE9bJ21ldGhvZCddPiA6IEVbJ3NpZGVFZmZlY3QnXSxcbiAgICAgIE9bJ3Byb2Nlc3MnXSBleHRlbmRzIHt9ID8gUmV0dXJuVHlwZTxPWydwcm9jZXNzJ10+IDogUmVzb2x2ZVR5cGU8Rj4sXG4gICAgICB7XG4gICAgICAgIHBhdGg6IEVbJ3BhdGgnXTtcbiAgICAgICAgYm9keTogT1snYm9keSddO1xuICAgICAgICBzZWFyY2hQYXJhbXM6ICdzZWFyY2hQYXJhbXMnIGV4dGVuZHMga2V5b2YgTyA/IE9bJ3NlYXJjaFBhcmFtcyddXG4gICAgICAgIDogRVsnc2VhcmNoUGFyYW1zJ107XG4gICAgICAgIG1ldGhvZDogJ21ldGhvZCcgZXh0ZW5kcyBrZXlvZiBPID8gT1snbWV0aG9kJ10gOiBFWydtZXRob2QnXTtcbiAgICAgICAgcGFnaW5hdGlvbkZpZWxkOiAncGFnaW5hdGlvbkZpZWxkJyBleHRlbmRzIGtleW9mIE8gP1xuICAgICAgICAgIE9bJ3BhZ2luYXRpb25GaWVsZCddXG4gICAgICAgIDogRXh0cmFjdDxFWydwYWdpbmF0aW9uRmllbGQnXSwgc3RyaW5nPjtcbiAgICAgIH1cbiAgICA+XG4gIDogJ3NlYXJjaFBhcmFtcycgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICBSZXN0VHlwZTxcbiAgICAgIE9bJ3NlYXJjaFBhcmFtcyddIGV4dGVuZHMgdW5kZWZpbmVkID9cbiAgICAgICAgUGF0aEFyZ3M8RXhjbHVkZTxPWydwYXRoJ10sIHVuZGVmaW5lZD4+XG4gICAgICA6IE9bJ3NlYXJjaFBhcmFtcyddICYgUGF0aEFyZ3M8RXhjbHVkZTxFWydwYXRoJ10sIHVuZGVmaW5lZD4+LFxuICAgICAgT3B0aW9uc1RvQm9keUFyZ3VtZW50PFxuICAgICAgICBFLFxuICAgICAgICAnbWV0aG9kJyBleHRlbmRzIGtleW9mIE8gPyBPWydtZXRob2QnXSA6IEVbJ21ldGhvZCddXG4gICAgICA+LFxuICAgICAgJ3NjaGVtYScgZXh0ZW5kcyBrZXlvZiBPID8gT1snc2NoZW1hJ10gOiBFWydzY2hlbWEnXSxcbiAgICAgICdtZXRob2QnIGV4dGVuZHMga2V5b2YgTyA/IE1ldGhvZFRvU2lkZTxPWydtZXRob2QnXT4gOiBFWydzaWRlRWZmZWN0J10sXG4gICAgICBPWydwcm9jZXNzJ10gZXh0ZW5kcyB7fSA/IFJldHVyblR5cGU8T1sncHJvY2VzcyddPiA6IFJlc29sdmVUeXBlPEY+LFxuICAgICAge1xuICAgICAgICBwYXRoOiBFWydwYXRoJ107XG4gICAgICAgIGJvZHk6IEVbJ2JvZHknXTtcbiAgICAgICAgc2VhcmNoUGFyYW1zOiBPWydzZWFyY2hQYXJhbXMnXTtcbiAgICAgICAgbWV0aG9kOiAnbWV0aG9kJyBleHRlbmRzIGtleW9mIE8gPyBPWydtZXRob2QnXSA6IEVbJ21ldGhvZCddO1xuICAgICAgICBwYWdpbmF0aW9uRmllbGQ6ICdwYWdpbmF0aW9uRmllbGQnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgICAgICAgT1sncGFnaW5hdGlvbkZpZWxkJ11cbiAgICAgICAgOiBFeHRyYWN0PEVbJ3BhZ2luYXRpb25GaWVsZCddLCBzdHJpbmc+O1xuICAgICAgfVxuICAgID5cbiAgOiBSZXN0SW5zdGFuY2U8XG4gICAgICBGLFxuICAgICAgJ3NjaGVtYScgZXh0ZW5kcyBrZXlvZiBPID8gT1snc2NoZW1hJ10gOiBFWydzY2hlbWEnXSxcbiAgICAgICdtZXRob2QnIGV4dGVuZHMga2V5b2YgTyA/IE1ldGhvZFRvU2lkZTxPWydtZXRob2QnXT4gOiBFWydzaWRlRWZmZWN0J10sXG4gICAgICB7XG4gICAgICAgIHBhdGg6ICdwYXRoJyBleHRlbmRzIGtleW9mIE8gPyBFeGNsdWRlPE9bJ3BhdGgnXSwgdW5kZWZpbmVkPlxuICAgICAgICA6IEVbJ3BhdGgnXTtcbiAgICAgICAgYm9keTogJ2JvZHknIGV4dGVuZHMga2V5b2YgTyA/IE9bJ2JvZHknXSA6IEVbJ2JvZHknXTtcbiAgICAgICAgc2VhcmNoUGFyYW1zOiAnc2VhcmNoUGFyYW1zJyBleHRlbmRzIGtleW9mIE8gPyBPWydzZWFyY2hQYXJhbXMnXVxuICAgICAgICA6IEVbJ3NlYXJjaFBhcmFtcyddO1xuICAgICAgICBtZXRob2Q6ICdtZXRob2QnIGV4dGVuZHMga2V5b2YgTyA/IE9bJ21ldGhvZCddIDogRVsnbWV0aG9kJ107XG4gICAgICAgIHBhZ2luYXRpb25GaWVsZDogJ3BhZ2luYXRpb25GaWVsZCcgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICAgICAgICBPWydwYWdpbmF0aW9uRmllbGQnXVxuICAgICAgICA6IEVbJ3BhZ2luYXRpb25GaWVsZCddO1xuICAgICAgfVxuICAgID47XG5cbmV4cG9ydCB0eXBlIFJlc3RFeHRlbmRlZEVuZHBvaW50PFxuICBPIGV4dGVuZHMgUGFydGlhbFJlc3RHZW5lcmljcyxcbiAgRSBleHRlbmRzIFJlc3RJbnN0YW5jZUJhc2UgJiB7IGdldFBhZ2U/OiB1bmtub3duIH0sXG4+ID0gT3B0aW9uc1RvUmVzdEVuZHBvaW50PFxuICBPLFxuICBFICZcbiAgICAoRSBleHRlbmRzIHsgZ2V0UGFnZTogeyBwYWdpbmF0aW9uRmllbGQ6IHN0cmluZyB9IH0gP1xuICAgICAgeyBwYWdpbmF0aW9uRmllbGQ6IEVbJ2dldFBhZ2UnXVsncGFnaW5hdGlvbkZpZWxkJ10gfVxuICAgIDogdW5rbm93biksXG4gIFJlc3RJbnN0YW5jZTxcbiAgICAoXG4gICAgICAuLi5hcmdzOiBQYXJhbWV0ZXJzPEU+XG4gICAgKSA9PiBPWydwcm9jZXNzJ10gZXh0ZW5kcyB7fSA/IFByb21pc2U8UmV0dXJuVHlwZTxPWydwcm9jZXNzJ10+PlxuICAgIDogUmV0dXJuVHlwZTxFPixcbiAgICAnc2NoZW1hJyBleHRlbmRzIGtleW9mIE8gPyBPWydzY2hlbWEnXSA6IEVbJ3NjaGVtYSddLFxuICAgICdtZXRob2QnIGV4dGVuZHMga2V5b2YgTyA/IE1ldGhvZFRvU2lkZTxPWydtZXRob2QnXT4gOiBFWydzaWRlRWZmZWN0J11cbiAgPlxuPiAmXG4gIE9taXQ8TywgS2V5b2ZSZXN0RW5kcG9pbnQ+ICZcbiAgT21pdDxFLCBLZXlvZlJlc3RFbmRwb2ludCB8IGtleW9mIE8+O1xuXG5leHBvcnQgaW50ZXJmYWNlIFBhcnRpYWxSZXN0R2VuZXJpY3Mge1xuICAvKiogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3BhdGggKi9cbiAgcmVhZG9ubHkgcGF0aD86IHN0cmluZztcbiAgLyoqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNzY2hlbWEgKi9cbiAgcmVhZG9ubHkgc2NoZW1hPzogU2NoZW1hIHwgdW5kZWZpbmVkO1xuICAvKiogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I21ldGhvZCAqL1xuICByZWFkb25seSBtZXRob2Q/OiBzdHJpbmc7XG4gIC8qKiBPbmx5IHVzZWQgZm9yIHR5cGVzICovXG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjYm9keSAqL1xuICBib2R5PzogYW55O1xuICAvKiogT25seSB1c2VkIGZvciB0eXBlcyAqL1xuICAvKiogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3NlYXJjaFBhcmFtcyAqL1xuICBzZWFyY2hQYXJhbXM/OiBhbnk7XG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjcGFnaW5hdGlvbmZpZWxkICovXG4gIHJlYWRvbmx5IHBhZ2luYXRpb25GaWVsZD86IHN0cmluZztcbiAgLyoqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNwcm9jZXNzICovXG4gIHByb2Nlc3M/KHZhbHVlOiBhbnksIC4uLmFyZ3M6IGFueSk6IGFueTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUmVzdEdlbmVyaWNzIGV4dGVuZHMgUGFydGlhbFJlc3RHZW5lcmljcyB7XG4gIHJlYWRvbmx5IHBhdGg6IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgUGFnaW5hdGlvbkVuZHBvaW50PFxuICBFIGV4dGVuZHMgRmV0Y2hGdW5jdGlvbiAmIFJlc3RHZW5lcmljcyAmIHsgc2lkZUVmZmVjdD86IHRydWUgfCB1bmRlZmluZWQgfSxcbiAgQSBleHRlbmRzIGFueVtdLFxuPiA9IFJlc3RJbnN0YW5jZUJhc2U8XG4gIFBhcmFtRmV0Y2hOb0JvZHk8QVswXSwgUmVzb2x2ZVR5cGU8RT4+LFxuICBFWydzY2hlbWEnXSxcbiAgRVsnc2lkZUVmZmVjdCddLFxuICBQaWNrPEUsICdwYXRoJyB8ICdzZWFyY2hQYXJhbXMnIHwgJ2JvZHknPiAmIHtcbiAgICBzZWFyY2hQYXJhbXM6IE9taXQ8QVswXSwga2V5b2YgUGF0aEFyZ3M8RVsncGF0aCddPj47XG4gIH1cbj47XG5leHBvcnQgdHlwZSBQYWdpbmF0aW9uRmllbGRFbmRwb2ludDxcbiAgRSBleHRlbmRzIEZldGNoRnVuY3Rpb24gJiBSZXN0R2VuZXJpY3MgJiB7IHNpZGVFZmZlY3Q/OiB0cnVlIHwgdW5kZWZpbmVkIH0sXG4gIEMgZXh0ZW5kcyBzdHJpbmcsXG4+ID0gUmVzdEluc3RhbmNlQmFzZTxcbiAgUGFyYW1GZXRjaE5vQm9keTxcbiAgICB7IFtLIGluIENdOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIH0gJiBFWydzZWFyY2hQYXJhbXMnXSAmXG4gICAgICBQYXRoQXJnczxFeGNsdWRlPEVbJ3BhdGgnXSwgdW5kZWZpbmVkPj4sXG4gICAgUmVzb2x2ZVR5cGU8RT5cbiAgPixcbiAgRVsnc2NoZW1hJ10sXG4gIEVbJ3NpZGVFZmZlY3QnXSxcbiAgUGljazxFLCAncGF0aCcgfCAnc2VhcmNoUGFyYW1zJyB8ICdib2R5Jz4gJiB7XG4gICAgc2VhcmNoUGFyYW1zOiB7IFtLIGluIENdOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIH0gJiBFWydzZWFyY2hQYXJhbXMnXTtcbiAgfVxuPiAmIHsgcGFnaW5hdGlvbkZpZWxkOiBDIH07XG5leHBvcnQgdHlwZSBBZGRFbmRwb2ludDxcbiAgRiBleHRlbmRzIEZldGNoRnVuY3Rpb24gPSBGZXRjaEZ1bmN0aW9uLFxuICBTIGV4dGVuZHMgU2NoZW1hIHwgdW5kZWZpbmVkID0gYW55LFxuICBPIGV4dGVuZHMge1xuICAgIHBhdGg6IHN0cmluZztcbiAgICBib2R5OiBhbnk7XG4gICAgc2VhcmNoUGFyYW1zPzogYW55O1xuICB9ID0geyBwYXRoOiBzdHJpbmc7IGJvZHk6IGFueSB9LFxuPiA9IFJlc3RJbnN0YW5jZUJhc2U8XG4gIFJlc3RGZXRjaDxcbiAgICAnc2VhcmNoUGFyYW1zJyBleHRlbmRzIGtleW9mIE8gP1xuICAgICAgT1snc2VhcmNoUGFyYW1zJ10gZXh0ZW5kcyB1bmRlZmluZWQgP1xuICAgICAgICBQYXRoQXJnczxFeGNsdWRlPE9bJ3BhdGgnXSwgdW5kZWZpbmVkPj5cbiAgICAgIDogT1snc2VhcmNoUGFyYW1zJ10gJiBQYXRoQXJnczxFeGNsdWRlPE9bJ3BhdGgnXSwgdW5kZWZpbmVkPj5cbiAgICA6IFBhdGhBcmdzPEV4Y2x1ZGU8T1sncGF0aCddLCB1bmRlZmluZWQ+PixcbiAgICBPWydib2R5J10sXG4gICAgUmVzb2x2ZVR5cGU8Rj5cbiAgPixcbiAgUyxcbiAgdHJ1ZSxcbiAgT21pdDxPLCAnbWV0aG9kJz4gJiB7IG1ldGhvZDogJ1BPU1QnIH1cbj47XG5cbnR5cGUgT3B0aW9uc0JvZHlEZWZhdWx0PE8gZXh0ZW5kcyBSZXN0R2VuZXJpY3M+ID1cbiAgJ2JvZHknIGV4dGVuZHMga2V5b2YgTyA/IE9cbiAgOiBPWydtZXRob2QnXSBleHRlbmRzICdQT1NUJyB8ICdQVVQnIHwgJ1BBVENIJyA/IE8gJiB7IGJvZHk6IGFueSB9XG4gIDogTyAmIHsgYm9keTogdW5kZWZpbmVkIH07XG5cbnR5cGUgT3B0aW9uc1RvQWRkZXJCb2R5QXJndW1lbnQ8TyBleHRlbmRzIHsgYm9keT86IGFueSB9PiA9XG4gICdib2R5JyBleHRlbmRzIGtleW9mIE8gPyBPWydib2R5J10gOiBhbnk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzdEVuZHBvaW50T3B0aW9uczxcbiAgRiBleHRlbmRzIEZldGNoRnVuY3Rpb24gPSBGZXRjaEZ1bmN0aW9uLFxuICBTIGV4dGVuZHMgU2NoZW1hIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkLFxuPiBleHRlbmRzIEVuZHBvaW50RXh0cmFPcHRpb25zPEY+IHtcbiAgdXJsUHJlZml4Pzogc3RyaW5nO1xuICByZXF1ZXN0SW5pdD86IFJlcXVlc3RJbml0O1xuICBnZXRIZWFkZXJzPyhoZWFkZXJzOiBIZWFkZXJzSW5pdCk6IFByb21pc2U8SGVhZGVyc0luaXQ+IHwgSGVhZGVyc0luaXQ7XG4gIGdldFJlcXVlc3RJbml0Pyhib2R5OiBhbnkpOiBQcm9taXNlPFJlcXVlc3RJbml0PiB8IFJlcXVlc3RJbml0O1xuICBmZXRjaFJlc3BvbnNlPyhpbnB1dDogUmVxdWVzdEluZm8sIGluaXQ6IFJlcXVlc3RJbml0KTogUHJvbWlzZTxhbnk+O1xuICBwYXJzZVJlc3BvbnNlPyhyZXNwb25zZTogUmVzcG9uc2UpOiBQcm9taXNlPGFueT47XG5cbiAgc2lkZUVmZmVjdD86IHRydWUgfCB1bmRlZmluZWQ7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIHNpZ25hbD86IEFib3J0U2lnbmFsO1xuICBmZXRjaD86IEY7XG4gIGtleT8oLi4uYXJnczogUGFyYW1ldGVyczxGPik6IHN0cmluZztcbiAgdXJsPyguLi5hcmdzOiBQYXJhbWV0ZXJzPEY+KTogc3RyaW5nO1xuICB1cGRhdGU/OiBFbmRwb2ludFVwZGF0ZUZ1bmN0aW9uPEYsIFM+O1xufVxuXG5leHBvcnQgdHlwZSBSZXN0RW5kcG9pbnRDb25zdHJ1Y3Rvck9wdGlvbnM8TyBleHRlbmRzIFJlc3RHZW5lcmljcyA9IGFueT4gPVxuICBSZXN0RW5kcG9pbnRPcHRpb25zPFxuICAgIFJlc3RGZXRjaDxcbiAgICAgICdzZWFyY2hQYXJhbXMnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgICAgIE9bJ3NlYXJjaFBhcmFtcyddIGV4dGVuZHMgdW5kZWZpbmVkID9cbiAgICAgICAgICBQYXRoQXJnczxPWydwYXRoJ10+XG4gICAgICAgIDogT1snc2VhcmNoUGFyYW1zJ10gJiBQYXRoQXJnczxPWydwYXRoJ10+XG4gICAgICA6IFBhdGhBcmdzPE9bJ3BhdGgnXT4sXG4gICAgICBPcHRpb25zVG9Cb2R5QXJndW1lbnQ8XG4gICAgICAgIE8sXG4gICAgICAgICdtZXRob2QnIGV4dGVuZHMga2V5b2YgTyA/IE9bJ21ldGhvZCddXG4gICAgICAgIDogTyBleHRlbmRzIHsgc2lkZUVmZmVjdDogdHJ1ZSB9ID8gJ1BPU1QnXG4gICAgICAgIDogJ0dFVCdcbiAgICAgID4sXG4gICAgICBPWydwcm9jZXNzJ10gZXh0ZW5kcyB7fSA/IFJldHVyblR5cGU8T1sncHJvY2VzcyddPlxuICAgICAgOiBhbnkgLypEZW5vcm1hbGl6ZTxPWydzY2hlbWEnXT4qL1xuICAgID4sXG4gICAgT1snc2NoZW1hJ11cbiAgPjtcblxuZXhwb3J0IGludGVyZmFjZSBSZXN0RW5kcG9pbnRDb25zdHJ1Y3RvciB7XG4gIG5ldyA8TyBleHRlbmRzIFJlc3RHZW5lcmljcyA9IGFueT4oe1xuICAgIG1ldGhvZCxcbiAgICBzaWRlRWZmZWN0LFxuICAgIG5hbWUsXG4gICAgLi4ub3B0aW9uc1xuICB9OiBSZXN0RW5kcG9pbnRDb25zdHJ1Y3Rvck9wdGlvbnM8Tz4gJiBSZWFkb25seTxPPik6IFJlc3RJbnN0YW5jZTxcbiAgICBSZXN0RmV0Y2g8XG4gICAgICAnc2VhcmNoUGFyYW1zJyBleHRlbmRzIGtleW9mIE8gP1xuICAgICAgICBPWydzZWFyY2hQYXJhbXMnXSBleHRlbmRzIHVuZGVmaW5lZCA/XG4gICAgICAgICAgUGF0aEFyZ3M8T1sncGF0aCddPlxuICAgICAgICA6IE9bJ3NlYXJjaFBhcmFtcyddICYgUGF0aEFyZ3M8T1sncGF0aCddPlxuICAgICAgOiBQYXRoQXJnczxPWydwYXRoJ10+LFxuICAgICAgT3B0aW9uc1RvQm9keUFyZ3VtZW50PFxuICAgICAgICBPLFxuICAgICAgICAnbWV0aG9kJyBleHRlbmRzIGtleW9mIE8gPyBPWydtZXRob2QnXVxuICAgICAgICA6IE8gZXh0ZW5kcyB7IHNpZGVFZmZlY3Q6IHRydWUgfSA/ICdQT1NUJ1xuICAgICAgICA6ICdHRVQnXG4gICAgICA+LFxuICAgICAgT1sncHJvY2VzcyddIGV4dGVuZHMge30gPyBSZXR1cm5UeXBlPE9bJ3Byb2Nlc3MnXT5cbiAgICAgIDogYW55IC8qRGVub3JtYWxpemU8T1snc2NoZW1hJ10+Ki9cbiAgICA+LFxuICAgICdzY2hlbWEnIGV4dGVuZHMga2V5b2YgTyA/IE9bJ3NjaGVtYSddIDogdW5kZWZpbmVkLFxuICAgICdzaWRlRWZmZWN0JyBleHRlbmRzIGtleW9mIE8gPyBFeHRyYWN0PE9bJ3NpZGVFZmZlY3QnXSwgdW5kZWZpbmVkIHwgdHJ1ZT5cbiAgICA6IE1ldGhvZFRvU2lkZTxPWydtZXRob2QnXT4sXG4gICAgJ21ldGhvZCcgZXh0ZW5kcyBrZXlvZiBPID8gT1xuICAgIDogTyAmIHtcbiAgICAgICAgbWV0aG9kOiBPIGV4dGVuZHMgeyBzaWRlRWZmZWN0OiB0cnVlIH0gPyAnUE9TVCcgOiAnR0VUJztcbiAgICAgIH1cbiAgPjtcbiAgcmVhZG9ubHkgcHJvdG90eXBlOiBSZXN0SW5zdGFuY2VCYXNlO1xufVxuXG5leHBvcnQgdHlwZSBNZXRob2RUb1NpZGU8TT4gPVxuICBNIGV4dGVuZHMgc3RyaW5nID9cbiAgICBNIGV4dGVuZHMgJ0dFVCcgP1xuICAgICAgdW5kZWZpbmVkXG4gICAgOiB0cnVlXG4gIDogdW5kZWZpbmVkO1xuXG4vKiogUmVzdEVuZHBvaW50IHR5cGVzIHNpbXBsaWZpZWQgKi9cbmV4cG9ydCB0eXBlIFJlc3RUeXBlPFxuICBVcmxQYXJhbXMgPSBhbnksXG4gIEJvZHkgPSBhbnksXG4gIFMgZXh0ZW5kcyBTY2hlbWEgfCB1bmRlZmluZWQgPSBTY2hlbWEgfCB1bmRlZmluZWQsXG4gIE0gZXh0ZW5kcyB0cnVlIHwgdW5kZWZpbmVkID0gdHJ1ZSB8IHVuZGVmaW5lZCxcbiAgUiA9IGFueSxcbiAgTyBleHRlbmRzIHtcbiAgICBwYXRoOiBzdHJpbmc7XG4gICAgYm9keT86IGFueTtcbiAgICBzZWFyY2hQYXJhbXM/OiBhbnk7XG4gICAgcGFnaW5hdGlvbkZpZWxkPzogc3RyaW5nO1xuICB9ID0geyBwYXRoOiBzdHJpbmc7IHBhZ2luYXRpb25GaWVsZDogc3RyaW5nIH0sXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXR5cGVzXG4+ID0gSWZUeXBlU2NyaXB0TG9vc2VOdWxsPFxuICBSZXN0SW5zdGFuY2U8UmVzdEZldGNoPFVybFBhcmFtcywgQm9keSwgUj4sIFMsIE0sIE8+LFxuICBCb2R5IGV4dGVuZHMge30gPyBSZXN0VHlwZVdpdGhCb2R5PFVybFBhcmFtcywgUywgTSwgQm9keSwgUiwgTz5cbiAgOiBSZXN0VHlwZU5vQm9keTxVcmxQYXJhbXMsIFMsIE0sIFIsIE8+XG4+O1xuXG5leHBvcnQgdHlwZSBSZXN0VHlwZVdpdGhCb2R5PFxuICBVcmxQYXJhbXMgPSBhbnksXG4gIFMgZXh0ZW5kcyBTY2hlbWEgfCB1bmRlZmluZWQgPSBTY2hlbWEgfCB1bmRlZmluZWQsXG4gIE0gZXh0ZW5kcyB0cnVlIHwgdW5kZWZpbmVkID0gdHJ1ZSB8IHVuZGVmaW5lZCxcbiAgQm9keSA9IGFueSxcbiAgUiA9IGFueSAvKkRlbm9ybWFsaXplPFM+Ki8sXG4gIE8gZXh0ZW5kcyB7XG4gICAgcGF0aDogc3RyaW5nO1xuICAgIGJvZHk/OiBhbnk7XG4gICAgc2VhcmNoUGFyYW1zPzogYW55O1xuICB9ID0geyBwYXRoOiBzdHJpbmc7IGJvZHk6IGFueSB9LFxuPiA9IFJlc3RJbnN0YW5jZTxQYXJhbUZldGNoV2l0aEJvZHk8VXJsUGFyYW1zLCBCb2R5LCBSPiwgUywgTSwgTz47XG5cbmV4cG9ydCB0eXBlIFJlc3RUeXBlTm9Cb2R5PFxuICBVcmxQYXJhbXMgPSBhbnksXG4gIFMgZXh0ZW5kcyBTY2hlbWEgfCB1bmRlZmluZWQgPSBTY2hlbWEgfCB1bmRlZmluZWQsXG4gIE0gZXh0ZW5kcyB0cnVlIHwgdW5kZWZpbmVkID0gdHJ1ZSB8IHVuZGVmaW5lZCxcbiAgUiA9IGFueSAvKkRlbm9ybWFsaXplPFM+Ki8sXG4gIE8gZXh0ZW5kcyB7XG4gICAgcGF0aDogc3RyaW5nO1xuICAgIGJvZHk/OiB1bmRlZmluZWQ7XG4gICAgc2VhcmNoUGFyYW1zPzogYW55O1xuICB9ID0geyBwYXRoOiBzdHJpbmc7IGJvZHk6IHVuZGVmaW5lZCB9LFxuPiA9IFJlc3RJbnN0YW5jZTxQYXJhbUZldGNoTm9Cb2R5PFVybFBhcmFtcywgUj4sIFMsIE0sIE8+O1xuXG4vKiogU2ltcGxlIHBhcmFtZXRlcnMsIGFuZCBib2R5IGZldGNoIGZ1bmN0aW9ucyAqL1xuZXhwb3J0IHR5cGUgUmVzdEZldGNoPFxuICBVcmxQYXJhbXMsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXR5cGVzXG4gIEJvZHkgPSB7fSxcbiAgUmVzb2x2ZSA9IGFueSxcbj4gPSBJZlR5cGVTY3JpcHRMb29zZU51bGw8XG4gIHwgUGFyYW1GZXRjaE5vQm9keTxVcmxQYXJhbXMsIFJlc29sdmU+XG4gIHwgUGFyYW1GZXRjaFdpdGhCb2R5PFVybFBhcmFtcywgQm9keSwgUmVzb2x2ZT4sXG4gIEJvZHkgZXh0ZW5kcyB7fSA/IFBhcmFtRmV0Y2hXaXRoQm9keTxVcmxQYXJhbXMsIEJvZHksIFJlc29sdmU+XG4gIDogUGFyYW1GZXRjaE5vQm9keTxVcmxQYXJhbXMsIFJlc29sdmU+XG4+O1xuXG5leHBvcnQgdHlwZSBQYXJhbUZldGNoV2l0aEJvZHk8UCwgQiA9IHt9LCBSID0gYW55PiA9XG4gIC8vIHdlIG11c3QgYWx3YXlzIGFsbG93IHVuZGVmaW5lZCBpbiBhIHVuaW9uIGFuZCBnaXZlIGl0IGEgdHlwZSB3aXRob3V0IHBhcmFtc1xuICBQIGV4dGVuZHMgdW5kZWZpbmVkID8gKHRoaXM6IEVuZHBvaW50SW5zdGFuY2VJbnRlcmZhY2UsIGJvZHk6IEIpID0+IFByb21pc2U8Uj5cbiAgOiAvLyBldmVuIHdpdGggbG9vc2UgbnVsbCwgdGhpcyB3aWxsIG9ubHkgYmUgdHJ1ZSB3aGVuIGFsbCBtZW1iZXJzIGFyZSBvcHRpb25hbFxuICB7fSBleHRlbmRzIFAgP1xuICAgIC8vIHRoaXMgc2FmZWx5IGhhbmRsZXMgUGF0aEFyZ3Mgd2l0aCBubyBtZW1iZXJzIHRoYXQgcmVzdWx0cyBpbiBhIHNpbXBsZSBgdW5rbm93bmAgdHlwZVxuICAgIGtleW9mIFAgZXh0ZW5kcyBuZXZlciA/XG4gICAgICAodGhpczogRW5kcG9pbnRJbnN0YW5jZUludGVyZmFjZSwgYm9keTogQikgPT4gUHJvbWlzZTxSPlxuICAgIDogfCAoKHRoaXM6IEVuZHBvaW50SW5zdGFuY2VJbnRlcmZhY2UsIHBhcmFtczogUCwgYm9keTogQikgPT4gUHJvbWlzZTxSPilcbiAgICAgIHwgKCh0aGlzOiBFbmRwb2ludEluc3RhbmNlSW50ZXJmYWNlLCBib2R5OiBCKSA9PiBQcm9taXNlPFI+KVxuICA6ICh0aGlzOiBFbmRwb2ludEluc3RhbmNlSW50ZXJmYWNlLCBwYXJhbXM6IFAsIGJvZHk6IEIpID0+IFByb21pc2U8Uj47XG5cbmV4cG9ydCB0eXBlIFBhcmFtRmV0Y2hOb0JvZHk8UCwgUiA9IGFueT4gPVxuICAvLyB3ZSBtdXN0IGFsd2F5cyBhbGxvdyB1bmRlZmluZWQgaW4gYSB1bmlvbiBhbmQgZ2l2ZSBpdCBhIHR5cGUgd2l0aG91dCBwYXJhbXNcbiAgUCBleHRlbmRzIHVuZGVmaW5lZCA/ICh0aGlzOiBFbmRwb2ludEluc3RhbmNlSW50ZXJmYWNlKSA9PiBQcm9taXNlPFI+XG4gIDogLy8gZXZlbiB3aXRoIGxvb3NlIG51bGwsIHRoaXMgd2lsbCBvbmx5IGJlIHRydWUgd2hlbiBhbGwgbWVtYmVycyBhcmUgb3B0aW9uYWxcbiAge30gZXh0ZW5kcyBQID9cbiAgICAvLyB0aGlzIHNhZmVseSBoYW5kbGVzIFBhdGhBcmdzIHdpdGggbm8gbWVtYmVycyB0aGF0IHJlc3VsdHMgaW4gYSBzaW1wbGUgYHVua25vd25gIHR5cGVcbiAgICBrZXlvZiBQIGV4dGVuZHMgbmV2ZXIgP1xuICAgICAgKHRoaXM6IEVuZHBvaW50SW5zdGFuY2VJbnRlcmZhY2UpID0+IFByb21pc2U8Uj5cbiAgICA6IHwgKCh0aGlzOiBFbmRwb2ludEluc3RhbmNlSW50ZXJmYWNlLCBwYXJhbXM6IFApID0+IFByb21pc2U8Uj4pXG4gICAgICB8ICgodGhpczogRW5kcG9pbnRJbnN0YW5jZUludGVyZmFjZSkgPT4gUHJvbWlzZTxSPilcbiAgOiAodGhpczogRW5kcG9pbnRJbnN0YW5jZUludGVyZmFjZSwgcGFyYW1zOiBQKSA9PiBQcm9taXNlPFI+O1xuXG4vLyBzYW1lIGFsZ29yaXRobSwgYnV0IGZvciBBcmdzIChha2EgcmVhZG9ubHkgYW55W10pXG5leHBvcnQgdHlwZSBQYXJhbVRvQXJnczxQPiA9XG4gIFAgZXh0ZW5kcyB1bmRlZmluZWQgPyBbXVxuICA6IHt9IGV4dGVuZHMgUCA/XG4gICAga2V5b2YgUCBleHRlbmRzIG5ldmVyID9cbiAgICAgIFtdXG4gICAgOiBbXSB8IFtQXVxuICA6IFtQXTtcblxudHlwZSBJZlR5cGVTY3JpcHRMb29zZU51bGw8WSwgTj4gPSAxIHwgdW5kZWZpbmVkIGV4dGVuZHMgMSA/IFkgOiBOO1xuXG5leHBvcnQgdHlwZSBLZXlvZlJlc3RFbmRwb2ludCA9IGtleW9mIFJlc3RJbnN0YW5jZTtcblxuZXhwb3J0IHR5cGUgRnJvbUZhbGxCYWNrPEsgZXh0ZW5kcyBrZXlvZiBFLCBPLCBFPiA9XG4gIEsgZXh0ZW5kcyBrZXlvZiBPID8gT1tLXSA6IEVbS107XG5cbmV4cG9ydCB0eXBlIEZldGNoTXV0YXRlPFxuICBBIGV4dGVuZHMgcmVhZG9ubHkgYW55W10gPSAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHlwZXNcbiAgICB8IFthbnksIHt9XVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXR5cGVzXG4gICAgfCBbe31dLFxuICBSID0gYW55LFxuPiA9ICh0aGlzOiBSZXN0SW5zdGFuY2UsIC4uLmFyZ3M6IEEpID0+IFByb21pc2U8Uj47XG5cbmV4cG9ydCB0eXBlIEZldGNoR2V0PEEgZXh0ZW5kcyByZWFkb25seSBhbnlbXSA9IFthbnldLCBSID0gYW55PiA9IChcbiAgdGhpczogUmVzdEluc3RhbmNlLFxuICAuLi5hcmdzOiBBXG4pID0+IFByb21pc2U8Uj47XG5cbmV4cG9ydCB0eXBlIERlZmF1bHRzPE8sIEQ+ID0ge1xuICBbSyBpbiBrZXlvZiBPIHwga2V5b2YgRF06IEsgZXh0ZW5kcyBrZXlvZiBPID8gRXhjbHVkZTxPW0tdLCB1bmRlZmluZWQ+XG4gIDogRFtFeHRyYWN0PEssIGtleW9mIEQ+XTtcbn07XG5cbmV4cG9ydCB0eXBlIEdldEVuZHBvaW50PFxuICBPIGV4dGVuZHMge1xuICAgIHJlYWRvbmx5IHBhdGg6IHN0cmluZztcbiAgICByZWFkb25seSBzY2hlbWE6IFNjaGVtYTtcbiAgICAvKiogT25seSB1c2VkIGZvciB0eXBlcyAqL1xuICAgIHJlYWRvbmx5IHNlYXJjaFBhcmFtcz86IGFueTtcbiAgICByZWFkb25seSBwYWdpbmF0aW9uRmllbGQ/OiBzdHJpbmc7XG4gIH0gPSB7XG4gICAgcGF0aDogc3RyaW5nO1xuICAgIHNjaGVtYTogU2NoZW1hO1xuICB9LFxuPiA9IFJlc3RUeXBlTm9Cb2R5PFxuICAnc2VhcmNoUGFyYW1zJyBleHRlbmRzIGtleW9mIE8gP1xuICAgIE9bJ3NlYXJjaFBhcmFtcyddIGV4dGVuZHMgdW5kZWZpbmVkID9cbiAgICAgIFBhdGhBcmdzPE9bJ3BhdGgnXT5cbiAgICA6IE9bJ3NlYXJjaFBhcmFtcyddICYgUGF0aEFyZ3M8T1sncGF0aCddPlxuICA6IFBhdGhBcmdzPE9bJ3BhdGgnXT4sXG4gIE9bJ3NjaGVtYSddLFxuICB1bmRlZmluZWQsXG4gIGFueSxcbiAgTyAmIHsgbWV0aG9kOiAnR0VUJyB9XG4+O1xuXG5leHBvcnQgdHlwZSBNdXRhdGVFbmRwb2ludDxcbiAgTyBleHRlbmRzIHtcbiAgICByZWFkb25seSBwYXRoOiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgc2NoZW1hOiBTY2hlbWE7XG4gICAgLyoqIE9ubHkgdXNlZCBmb3IgdHlwZXMgKi9cbiAgICByZWFkb25seSBzZWFyY2hQYXJhbXM/OiBhbnk7XG4gICAgLyoqIE9ubHkgdXNlZCBmb3IgdHlwZXMgKi9cbiAgICByZWFkb25seSBib2R5PzogYW55O1xuICB9ID0ge1xuICAgIHBhdGg6IHN0cmluZztcbiAgICBib2R5OiBhbnk7XG4gICAgc2NoZW1hOiBTY2hlbWE7XG4gIH0sXG4+ID0gUmVzdFR5cGVXaXRoQm9keTxcbiAgJ3NlYXJjaFBhcmFtcycgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICBPWydzZWFyY2hQYXJhbXMnXSBleHRlbmRzIHVuZGVmaW5lZCA/XG4gICAgICBQYXRoQXJnczxPWydwYXRoJ10+XG4gICAgOiBPWydzZWFyY2hQYXJhbXMnXSAmIFBhdGhBcmdzPE9bJ3BhdGgnXT5cbiAgOiBQYXRoQXJnczxPWydwYXRoJ10+LFxuICBPWydzY2hlbWEnXSxcbiAgdHJ1ZSxcbiAgT1snYm9keSddLFxuICBhbnksXG4gIE8gJiB7IGJvZHk6IGFueTsgbWV0aG9kOiAnUE9TVCcgfCAnUFVUJyB8ICdQQVRDSCcgfCAnREVMRVRFJyB9XG4+O1xuIl0sIm1hcHBpbmdzIjoiIiwiaWdub3JlTGlzdCI6W119
|
package/legacy/RestHelpers.js
CHANGED
|
@@ -32,4 +32,4 @@ export function shortenPath(path) {
|
|
|
32
32
|
if (shortUrlRoot[shortUrlRoot.length - 1] === '/') shortUrlRoot = shortUrlRoot.substring(0, shortUrlRoot.length - 1);
|
|
33
33
|
return shortUrlRoot;
|
|
34
34
|
}
|
|
35
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb21waWxlIiwicGFyc2UiLCJ1cmxCYXNlQ2FjaGUiLCJPYmplY3QiLCJjcmVhdGUiLCJnZXRVcmxCYXNlIiwicGF0aCIsImVuY29kZSIsImVuY29kZVVSSUNvbXBvbmVudCIsInZhbGlkYXRlIiwidXJsVG9rZW5zQ2FjaGUiLCJnZXRVcmxUb2tlbnMiLCJTZXQiLCJtYXAiLCJ0IiwicHJvdG8iLCJwcm90b3R5cGUiLCJncG8iLCJnZXRQcm90b3R5cGVPZiIsImlzUG9qbyIsIm9iaiIsInNob3J0ZW5QYXRoIiwibGFzdENvbG9uSW5kZXgiLCJsYXN0SW5kZXhPZiIsIkVycm9yIiwic2hvcnRVcmxSb290Iiwic3Vic3RyaW5nIiwibGVuZ3RoIl0sInNvdXJjZXMiOlsiLi4vc3JjL1Jlc3RIZWxwZXJzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbXBpbGUsIFBhdGhGdW5jdGlvbiwgcGFyc2UgfSBmcm9tICdwYXRoLXRvLXJlZ2V4cCc7XG5cbmltcG9ydCB7IFNob3J0ZW5QYXRoIH0gZnJvbSAnLi9wYXRoVHlwZXMuanMnO1xuXG5jb25zdCB1cmxCYXNlQ2FjaGU6IFJlY29yZDxzdHJpbmcsIFBhdGhGdW5jdGlvbjxvYmplY3Q+PiA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG5leHBvcnQgZnVuY3Rpb24gZ2V0VXJsQmFzZShwYXRoOiBzdHJpbmcpOiBQYXRoRnVuY3Rpb24ge1xuICBpZiAoIShwYXRoIGluIHVybEJhc2VDYWNoZSkpIHtcbiAgICB1cmxCYXNlQ2FjaGVbcGF0aF0gPSBjb21waWxlKHBhdGgsIHtcbiAgICAgIGVuY29kZTogZW5jb2RlVVJJQ29tcG9uZW50LFxuICAgICAgdmFsaWRhdGU6IGZhbHNlLFxuICAgIH0pO1xuICB9XG4gIHJldHVybiB1cmxCYXNlQ2FjaGVbcGF0aF07XG59XG5cbmNvbnN0IHVybFRva2Vuc0NhY2hlOiBSZWNvcmQ8c3RyaW5nLCBTZXQ8c3RyaW5nPj4gPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuZXhwb3J0IGZ1bmN0aW9uIGdldFVybFRva2VucyhwYXRoOiBzdHJpbmcpOiBTZXQ8c3RyaW5nPiB7XG4gIGlmICghKHBhdGggaW4gdXJsVG9rZW5zQ2FjaGUpKSB7XG4gICAgdXJsVG9rZW5zQ2FjaGVbcGF0aF0gPSBuZXcgU2V0KFxuICAgICAgcGFyc2UocGF0aCkubWFwKHQgPT4gKHR5cGVvZiB0ID09PSAnc3RyaW5nJyA/IHQgOiBgJHt0WyduYW1lJ119YCkpLFxuICAgICk7XG4gIH1cbiAgcmV0dXJuIHVybFRva2Vuc0NhY2hlW3BhdGhdO1xufVxuXG5jb25zdCBwcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5jb25zdCBncG8gPSBPYmplY3QuZ2V0UHJvdG90eXBlT2Y7XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1Bvam8ob2JqOiB1bmtub3duKTogb2JqIGlzIFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICBpZiAob2JqID09PSBudWxsIHx8IHR5cGVvZiBvYmogIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiBncG8ob2JqKSA9PT0gcHJvdG87XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzaG9ydGVuUGF0aDxTIGV4dGVuZHMgc3RyaW5nPihwYXRoOiBTKTogU2hvcnRlblBhdGg8Uz4ge1xuICBjb25zdCBsYXN0Q29sb25JbmRleCA9IHBhdGgubGFzdEluZGV4T2YoJzonKTtcbiAgaWYgKGxhc3RDb2xvbkluZGV4ID09PSAtMSlcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1Jlc291cmNlIHBhdGggcmVxdWlyZXMgYXQgbGVhc3Qgb25lIDpwYXJhbWV0ZXInKTtcbiAgLy8gdGhpcyBpcyBmb3Igd2hlbiBub3Qgc3BlY2lmeWluZyBhIHNwZWNpZmljIGl0ZW0gbGlrZSBjcmVhdGUvbGlzdFxuICBsZXQgc2hvcnRVcmxSb290OiBTaG9ydGVuUGF0aDxTPiA9IHBhdGguc3Vic3RyaW5nKDAsIGxhc3RDb2xvbkluZGV4KSBhcyBhbnk7XG4gIGlmIChzaG9ydFVybFJvb3Rbc2hvcnRVcmxSb290Lmxlbmd0aCAtIDFdID09PSAnLycpXG4gICAgc2hvcnRVcmxSb290ID0gc2hvcnRVcmxSb290LnN1YnN0cmluZyhcbiAgICAgIDAsXG4gICAgICBzaG9ydFVybFJvb3QubGVuZ3RoIC0gMSxcbiAgICApIGFzIFNob3J0ZW5QYXRoPFM+
|
|
35
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb21waWxlIiwicGFyc2UiLCJ1cmxCYXNlQ2FjaGUiLCJPYmplY3QiLCJjcmVhdGUiLCJnZXRVcmxCYXNlIiwicGF0aCIsImVuY29kZSIsImVuY29kZVVSSUNvbXBvbmVudCIsInZhbGlkYXRlIiwidXJsVG9rZW5zQ2FjaGUiLCJnZXRVcmxUb2tlbnMiLCJTZXQiLCJtYXAiLCJ0IiwicHJvdG8iLCJwcm90b3R5cGUiLCJncG8iLCJnZXRQcm90b3R5cGVPZiIsImlzUG9qbyIsIm9iaiIsInNob3J0ZW5QYXRoIiwibGFzdENvbG9uSW5kZXgiLCJsYXN0SW5kZXhPZiIsIkVycm9yIiwic2hvcnRVcmxSb290Iiwic3Vic3RyaW5nIiwibGVuZ3RoIl0sInNvdXJjZXMiOlsiLi4vc3JjL1Jlc3RIZWxwZXJzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbXBpbGUsIFBhdGhGdW5jdGlvbiwgcGFyc2UgfSBmcm9tICdwYXRoLXRvLXJlZ2V4cCc7XG5cbmltcG9ydCB7IFNob3J0ZW5QYXRoIH0gZnJvbSAnLi9wYXRoVHlwZXMuanMnO1xuXG5jb25zdCB1cmxCYXNlQ2FjaGU6IFJlY29yZDxzdHJpbmcsIFBhdGhGdW5jdGlvbjxvYmplY3Q+PiA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG5leHBvcnQgZnVuY3Rpb24gZ2V0VXJsQmFzZShwYXRoOiBzdHJpbmcpOiBQYXRoRnVuY3Rpb24ge1xuICBpZiAoIShwYXRoIGluIHVybEJhc2VDYWNoZSkpIHtcbiAgICB1cmxCYXNlQ2FjaGVbcGF0aF0gPSBjb21waWxlKHBhdGgsIHtcbiAgICAgIGVuY29kZTogZW5jb2RlVVJJQ29tcG9uZW50LFxuICAgICAgdmFsaWRhdGU6IGZhbHNlLFxuICAgIH0pO1xuICB9XG4gIHJldHVybiB1cmxCYXNlQ2FjaGVbcGF0aF07XG59XG5cbmNvbnN0IHVybFRva2Vuc0NhY2hlOiBSZWNvcmQ8c3RyaW5nLCBTZXQ8c3RyaW5nPj4gPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuZXhwb3J0IGZ1bmN0aW9uIGdldFVybFRva2VucyhwYXRoOiBzdHJpbmcpOiBTZXQ8c3RyaW5nPiB7XG4gIGlmICghKHBhdGggaW4gdXJsVG9rZW5zQ2FjaGUpKSB7XG4gICAgdXJsVG9rZW5zQ2FjaGVbcGF0aF0gPSBuZXcgU2V0KFxuICAgICAgcGFyc2UocGF0aCkubWFwKHQgPT4gKHR5cGVvZiB0ID09PSAnc3RyaW5nJyA/IHQgOiBgJHt0WyduYW1lJ119YCkpLFxuICAgICk7XG4gIH1cbiAgcmV0dXJuIHVybFRva2Vuc0NhY2hlW3BhdGhdO1xufVxuXG5jb25zdCBwcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5jb25zdCBncG8gPSBPYmplY3QuZ2V0UHJvdG90eXBlT2Y7XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1Bvam8ob2JqOiB1bmtub3duKTogb2JqIGlzIFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICBpZiAob2JqID09PSBudWxsIHx8IHR5cGVvZiBvYmogIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiBncG8ob2JqKSA9PT0gcHJvdG87XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzaG9ydGVuUGF0aDxTIGV4dGVuZHMgc3RyaW5nPihwYXRoOiBTKTogU2hvcnRlblBhdGg8Uz4ge1xuICBjb25zdCBsYXN0Q29sb25JbmRleCA9IHBhdGgubGFzdEluZGV4T2YoJzonKTtcbiAgaWYgKGxhc3RDb2xvbkluZGV4ID09PSAtMSlcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1Jlc291cmNlIHBhdGggcmVxdWlyZXMgYXQgbGVhc3Qgb25lIDpwYXJhbWV0ZXInKTtcbiAgLy8gdGhpcyBpcyBmb3Igd2hlbiBub3Qgc3BlY2lmeWluZyBhIHNwZWNpZmljIGl0ZW0gbGlrZSBjcmVhdGUvbGlzdFxuICBsZXQgc2hvcnRVcmxSb290OiBTaG9ydGVuUGF0aDxTPiA9IHBhdGguc3Vic3RyaW5nKDAsIGxhc3RDb2xvbkluZGV4KSBhcyBhbnk7XG4gIGlmIChzaG9ydFVybFJvb3Rbc2hvcnRVcmxSb290Lmxlbmd0aCAtIDFdID09PSAnLycpXG4gICAgc2hvcnRVcmxSb290ID0gc2hvcnRVcmxSb290LnN1YnN0cmluZyhcbiAgICAgIDAsXG4gICAgICBzaG9ydFVybFJvb3QubGVuZ3RoIC0gMSxcbiAgICApIGFzIFNob3J0ZW5QYXRoPFM+O1xuICByZXR1cm4gc2hvcnRVcmxSb290O1xufVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxPQUFPLEVBQWdCQyxLQUFLLFFBQVEsZ0JBQWdCO0FBSTdELE1BQU1DLFlBQWtELEdBQUdDLE1BQU0sQ0FBQ0MsTUFBTSxDQUFDLElBQUksQ0FBQztBQUM5RSxPQUFPLFNBQVNDLFVBQVVBLENBQUNDLElBQVksRUFBZ0I7RUFDckQsSUFBSSxFQUFFQSxJQUFJLElBQUlKLFlBQVksQ0FBQyxFQUFFO0lBQzNCQSxZQUFZLENBQUNJLElBQUksQ0FBQyxHQUFHTixPQUFPLENBQUNNLElBQUksRUFBRTtNQUNqQ0MsTUFBTSxFQUFFQyxrQkFBa0I7TUFDMUJDLFFBQVEsRUFBRTtJQUNaLENBQUMsQ0FBQztFQUNKO0VBQ0EsT0FBT1AsWUFBWSxDQUFDSSxJQUFJLENBQUM7QUFDM0I7QUFFQSxNQUFNSSxjQUEyQyxHQUFHUCxNQUFNLENBQUNDLE1BQU0sQ0FBQyxJQUFJLENBQUM7QUFDdkUsT0FBTyxTQUFTTyxZQUFZQSxDQUFDTCxJQUFZLEVBQWU7RUFDdEQsSUFBSSxFQUFFQSxJQUFJLElBQUlJLGNBQWMsQ0FBQyxFQUFFO0lBQzdCQSxjQUFjLENBQUNKLElBQUksQ0FBQyxHQUFHLElBQUlNLEdBQUcsQ0FDNUJYLEtBQUssQ0FBQ0ssSUFBSSxDQUFDLENBQUNPLEdBQUcsQ0FBQ0MsQ0FBQyxJQUFLLE9BQU9BLENBQUMsS0FBSyxRQUFRLEdBQUdBLENBQUMsR0FBSSxHQUFFQSxDQUFDLENBQUMsTUFBTSxDQUFFLEVBQUUsQ0FDbkUsQ0FBQztFQUNIO0VBQ0EsT0FBT0osY0FBYyxDQUFDSixJQUFJLENBQUM7QUFDN0I7QUFFQSxNQUFNUyxLQUFLLEdBQUdaLE1BQU0sQ0FBQ2EsU0FBUztBQUM5QixNQUFNQyxHQUFHLEdBQUdkLE1BQU0sQ0FBQ2UsY0FBYztBQUVqQyxPQUFPLFNBQVNDLE1BQU1BLENBQUNDLEdBQVksRUFBOEI7RUFDL0QsSUFBSUEsR0FBRyxLQUFLLElBQUksSUFBSSxPQUFPQSxHQUFHLEtBQUssUUFBUSxFQUFFO0lBQzNDLE9BQU8sS0FBSztFQUNkO0VBQ0EsT0FBT0gsR0FBRyxDQUFDRyxHQUFHLENBQUMsS0FBS0wsS0FBSztBQUMzQjtBQUVBLE9BQU8sU0FBU00sV0FBV0EsQ0FBbUJmLElBQU8sRUFBa0I7RUFDckUsTUFBTWdCLGNBQWMsR0FBR2hCLElBQUksQ0FBQ2lCLFdBQVcsQ0FBQyxHQUFHLENBQUM7RUFDNUMsSUFBSUQsY0FBYyxLQUFLLENBQUMsQ0FBQyxFQUN2QixNQUFNLElBQUlFLEtBQUssQ0FBQyxnREFBZ0QsQ0FBQztFQUNuRTtFQUNBLElBQUlDLFlBQTRCLEdBQUduQixJQUFJLENBQUNvQixTQUFTLENBQUMsQ0FBQyxFQUFFSixjQUFjLENBQVE7RUFDM0UsSUFBSUcsWUFBWSxDQUFDQSxZQUFZLENBQUNFLE1BQU0sR0FBRyxDQUFDLENBQUMsS0FBSyxHQUFHLEVBQy9DRixZQUFZLEdBQUdBLFlBQVksQ0FBQ0MsU0FBUyxDQUNuQyxDQUFDLEVBQ0RELFlBQVksQ0FBQ0UsTUFBTSxHQUFHLENBQ3hCLENBQW1CO0VBQ3JCLE9BQU9GLFlBQVk7QUFDckIiLCJpZ25vcmVMaXN0IjpbXX0=
|
package/legacy/createResource.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/objectWithoutPropertiesLoose";
|
|
2
2
|
const _excluded = ["path", "schema", "Endpoint", "Collection", "optimistic", "paginationField"];
|
|
3
|
-
import {
|
|
3
|
+
import { schema } from '@data-client/endpoint';
|
|
4
4
|
import RestEndpoint from './RestEndpoint.js';
|
|
5
5
|
import { shortenPath } from './RestHelpers.js';
|
|
6
6
|
const {
|
|
@@ -37,7 +37,8 @@ export default function createResource(_ref) {
|
|
|
37
37
|
}));
|
|
38
38
|
if (optimistic) {
|
|
39
39
|
extraMutateOptions.getOptimisticResponse = optimisticUpdate;
|
|
40
|
-
|
|
40
|
+
// TODO: Check that schema is a queryable, otherwise this doesn't make sense
|
|
41
|
+
extraPartialOptions.getOptimisticResponse = optimisticPartial(schema);
|
|
41
42
|
}
|
|
42
43
|
const getList = new Endpoint(Object.assign({}, extraMutateOptions, {
|
|
43
44
|
paginationField: paginationField,
|
|
@@ -105,12 +106,10 @@ export default function createResource(_ref) {
|
|
|
105
106
|
function optimisticUpdate(snap, params, body) {
|
|
106
107
|
return Object.assign({}, params, ensurePojo(body));
|
|
107
108
|
}
|
|
108
|
-
function optimisticPartial(
|
|
109
|
+
function optimisticPartial(schema) {
|
|
109
110
|
return function (snap, params, body) {
|
|
110
|
-
const
|
|
111
|
-
|
|
112
|
-
} = snap.getResponse(getEndpoint, params);
|
|
113
|
-
if (!data) throw new AbortOptimistic();
|
|
111
|
+
const data = snap.get(schema, params);
|
|
112
|
+
if (!data) throw snap.abort;
|
|
114
113
|
return Object.assign({}, params, data, ensurePojo(body));
|
|
115
114
|
};
|
|
116
115
|
}
|
|
@@ -120,4 +119,4 @@ function optimisticDelete(snap, params) {
|
|
|
120
119
|
function ensurePojo(body) {
|
|
121
120
|
return body instanceof FormData ? Object.fromEntries(body.entries()) : body;
|
|
122
121
|
}
|
|
123
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBYm9ydE9wdGltaXN0aWMiLCJzY2hlbWEiLCJSZXN0RW5kcG9pbnQiLCJzaG9ydGVuUGF0aCIsIkludmFsaWRhdGUiLCJDb2xsZWN0aW9uIiwiQmFzZUNvbGxlY3Rpb24iLCJjcmVhdGVSZXNvdXJjZSIsIl9yZWYiLCJwYXRoIiwiRW5kcG9pbnQiLCJvcHRpbWlzdGljIiwicGFnaW5hdGlvbkZpZWxkIiwiZXh0cmFPcHRpb25zIiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UiLCJfZXhjbHVkZWQiLCJzaG9ydGVuZWRQYXRoIiwiZ2V0TmFtZSIsIm5hbWUiLCJleHRlbmRNZW1iZXIiLCJleHRlbmRlZCIsImtleSIsIm9wdGlvbnMiLCJleHRlbmQiLCJleHRyYU11dGF0ZU9wdGlvbnMiLCJPYmplY3QiLCJhc3NpZ24iLCJleHRyYVBhcnRpYWxPcHRpb25zIiwiZ2V0IiwiZ2V0T3B0aW1pc3RpY1Jlc3BvbnNlIiwib3B0aW1pc3RpY1VwZGF0ZSIsIm9wdGltaXN0aWNQYXJ0aWFsIiwiZ2V0TGlzdCIsInJldCIsImNyZWF0ZSIsInB1c2giLCJ1cGRhdGUiLCJtZXRob2QiLCJwYXJ0aWFsVXBkYXRlIiwiZGVsZXRlIiwicHJvY2VzcyIsInJlcyIsInBhcmFtcyIsImtleXMiLCJsZW5ndGgiLCJvcHRpbWlzdGljRGVsZXRlIiwidW5kZWZpbmVkIiwiYXJncyIsIm92ZXJyaWRlcyIsInNuYXAiLCJib2R5IiwiZW5zdXJlUG9qbyIsImdldEVuZHBvaW50IiwiZGF0YSIsImdldFJlc3BvbnNlIiwiRm9ybURhdGEiLCJmcm9tRW50cmllcyIsImVudHJpZXMiXSwic291cmNlcyI6WyIuLi9zcmMvY3JlYXRlUmVzb3VyY2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWJvcnRPcHRpbWlzdGljLFxuICBTbmFwc2hvdEludGVyZmFjZSxcbiAgc2NoZW1hLFxufSBmcm9tICdAZGF0YS1jbGllbnQvZW5kcG9pbnQnO1xuXG5pbXBvcnQgeyBSZXNvdXJjZVBhdGggfSBmcm9tICcuL3BhdGhUeXBlcy5qcyc7XG5pbXBvcnQge1xuICBSZXNvdXJjZUdlbmVyaWNzLFxuICBSZXNvdXJjZU9wdGlvbnMsXG4gIFJlc291cmNlLFxuICBSZXNvdXJjZUludGVyZmFjZSxcbn0gZnJvbSAnLi9yZXNvdXJjZVR5cGVzLmpzJztcbmltcG9ydCBSZXN0RW5kcG9pbnQsIHtcbiAgR2V0RW5kcG9pbnQsXG4gIFBhcnRpYWxSZXN0R2VuZXJpY3MsXG4gIFJlc3RFbmRwb2ludE9wdGlvbnMsXG4gIFJlc3RJbnN0YW5jZUJhc2UsXG59IGZyb20gJy4vUmVzdEVuZHBvaW50LmpzJztcbmltcG9ydCB7IHNob3J0ZW5QYXRoIH0gZnJvbSAnLi9SZXN0SGVscGVycy5qcyc7XG5cbmNvbnN0IHsgSW52YWxpZGF0ZSwgQ29sbGVjdGlvbjogQmFzZUNvbGxlY3Rpb24gfSA9IHNjaGVtYTtcblxuLyoqIENyZWF0ZXMgY29sbGVjdGlvbiBvZiBFbmRwb2ludHMgZm9yIGNvbW1vbiBvcGVyYXRpb25zIG9uIGEgZ2l2ZW4gZGF0YS9zY2hlbWEuXG4gKlxuICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvY3JlYXRlUmVzb3VyY2VcbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlUmVzb3VyY2U8TyBleHRlbmRzIFJlc291cmNlR2VuZXJpY3M+KHtcbiAgcGF0aCxcbiAgc2NoZW1hLFxuICBFbmRwb2ludCA9IFJlc3RFbmRwb2ludCxcbiAgQ29sbGVjdGlvbiA9IEJhc2VDb2xsZWN0aW9uLFxuICBvcHRpbWlzdGljLFxuICBwYWdpbmF0aW9uRmllbGQsXG4gIC4uLmV4dHJhT3B0aW9uc1xufTogUmVhZG9ubHk8Tz4gJiBSZXNvdXJjZU9wdGlvbnMpOiBSZXNvdXJjZTxPPiB7XG4gIGNvbnN0IHNob3J0ZW5lZFBhdGggPSBzaG9ydGVuUGF0aChwYXRoKTtcbiAgY29uc3QgZ2V0TmFtZSA9IChuYW1lOiBzdHJpbmcpID0+IGAkeyhzY2hlbWEgYXMgYW55KT8ubmFtZX0uJHtuYW1lfWA7XG4gIC8vIHRoaXMgYWNjb3VudHMgZm9yIGRlcml2YXRpdmUgZW5kcG9pbnRzXG4gIGZ1bmN0aW9uIGV4dGVuZE1lbWJlcihleHRlbmRlZDogYW55LCBrZXk6IHN0cmluZywgb3B0aW9uczogYW55KSB7XG4gICAgZXh0ZW5kZWRba2V5XSA9IGV4dGVuZGVkW2tleV0uZXh0ZW5kKG9wdGlvbnMpO1xuICB9XG5cbiAgY29uc3QgZXh0cmFNdXRhdGVPcHRpb25zID0geyAuLi5leHRyYU9wdGlvbnMgfTtcbiAgY29uc3QgZXh0cmFQYXJ0aWFsT3B0aW9ucyA9IHsgLi4uZXh0cmFPcHRpb25zIH07XG4gIGNvbnN0IGdldDogR2V0RW5kcG9pbnQ8eyBwYXRoOiBPWydwYXRoJ107IHNjaGVtYTogT1snc2NoZW1hJ10gfT4gPVxuICAgIG5ldyBFbmRwb2ludCh7XG4gICAgICAuLi5leHRyYU9wdGlvbnMsXG4gICAgICBwYXRoLFxuICAgICAgc2NoZW1hLFxuICAgICAgbmFtZTogZ2V0TmFtZSgnZ2V0JyksXG4gICAgfSkgYXMgYW55O1xuICBpZiAob3B0aW1pc3RpYykge1xuICAgIChleHRyYU11dGF0ZU9wdGlvbnMgYXMgYW55KS5nZXRPcHRpbWlzdGljUmVzcG9uc2UgPSBvcHRpbWlzdGljVXBkYXRlO1xuICAgIChleHRyYVBhcnRpYWxPcHRpb25zIGFzIGFueSkuZ2V0T3B0aW1pc3RpY1Jlc3BvbnNlID0gb3B0aW1pc3RpY1BhcnRpYWwoXG4gICAgICBnZXQgYXMgYW55LFxuICAgICk7XG4gIH1cbiAgY29uc3QgZ2V0TGlzdCA9IG5ldyBFbmRwb2ludCh7XG4gICAgLi4uZXh0cmFNdXRhdGVPcHRpb25zLFxuICAgIHBhZ2luYXRpb25GaWVsZDogcGFnaW5hdGlvbkZpZWxkIGFzIHN0cmluZyxcbiAgICBwYXRoOiBzaG9ydGVuZWRQYXRoLFxuICAgIHNjaGVtYTogbmV3IENvbGxlY3Rpb24oW3NjaGVtYSBhcyBhbnldKSxcbiAgICBuYW1lOiBnZXROYW1lKCdnZXRMaXN0JyksXG4gIH0pO1xuICBjb25zdCByZXQgPSB7XG4gICAgZ2V0LFxuICAgIGdldExpc3QsXG4gICAgLy8gVE9ETyhkZXByZWNhdGVkKTogcmVtb3ZlIHRoaXMgb25jZSB3ZSByZW1vdmUgY3JlYXRlc1xuICAgIGNyZWF0ZTogZ2V0TGlzdC5wdXNoLmV4dGVuZCh7IG5hbWU6IGdldE5hbWUoJ2NyZWF0ZScpIH0pLFxuICAgIHVwZGF0ZTogbmV3IEVuZHBvaW50KHtcbiAgICAgIC4uLmV4dHJhTXV0YXRlT3B0aW9ucyxcbiAgICAgIHBhdGgsXG4gICAgICBzY2hlbWEsXG4gICAgICBtZXRob2Q6ICdQVVQnLFxuICAgICAgbmFtZTogZ2V0TmFtZSgndXBkYXRlJyksXG4gICAgfSksXG4gICAgcGFydGlhbFVwZGF0ZTogbmV3IEVuZHBvaW50KHtcbiAgICAgIC4uLmV4dHJhUGFydGlhbE9wdGlvbnMsXG4gICAgICBwYXRoLFxuICAgICAgc2NoZW1hLFxuICAgICAgbWV0aG9kOiAnUEFUQ0gnLFxuICAgICAgbmFtZTogZ2V0TmFtZSgncGFydGlhbFVwZGF0ZScpLFxuICAgIH0pLFxuICAgIGRlbGV0ZTogbmV3IEVuZHBvaW50KHtcbiAgICAgIC4uLmV4dHJhTXV0YXRlT3B0aW9ucyxcbiAgICAgIHBhdGgsXG4gICAgICBzY2hlbWE6IChzY2hlbWEgYXMgYW55KS5wcm9jZXNzID8gbmV3IEludmFsaWRhdGUoc2NoZW1hIGFzIGFueSkgOiBzY2hlbWEsXG4gICAgICBtZXRob2Q6ICdERUxFVEUnLFxuICAgICAgbmFtZTogZ2V0TmFtZSgnZGVsZXRlJyksXG4gICAgICBwcm9jZXNzKHJlczogYW55LCBwYXJhbXM6IGFueSkge1xuICAgICAgICByZXR1cm4gcmVzICYmIE9iamVjdC5rZXlzKHJlcykubGVuZ3RoID8gcmVzIDogcGFyYW1zO1xuICAgICAgfSxcbiAgICAgIGdldE9wdGltaXN0aWNSZXNwb25zZTogb3B0aW1pc3RpYyA/IChvcHRpbWlzdGljRGVsZXRlIGFzIGFueSkgOiB1bmRlZmluZWQsXG4gICAgfSksXG4gICAgZXh0ZW5kKFxuICAgICAgLi4uYXJnczpcbiAgICAgICAgfCBbc3RyaW5nLCBSZXN0RW5kcG9pbnRPcHRpb25zICYgUGFydGlhbFJlc3RHZW5lcmljc11cbiAgICAgICAgfCBbUmVzdEVuZHBvaW50T3B0aW9ucyAmIFBhcnRpYWxSZXN0R2VuZXJpY3NdXG4gICAgICAgIHwgW1xuICAgICAgICAgICAgKFxuICAgICAgICAgICAgICBiYXNlUmVzb3VyY2U6IFJlc291cmNlSW50ZXJmYWNlLFxuICAgICAgICAgICAgKSA9PiBSZWNvcmQ8c3RyaW5nLCBSZXN0SW5zdGFuY2VCYXNlPixcbiAgICAgICAgICBdXG4gICAgKSB7XG4gICAgICBpZiAodHlwZW9mIGFyZ3NbMF0gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGNvbnN0IFtrZXksIG9wdGlvbnNdID0gYXJncztcbiAgICAgICAgaWYgKGtleSBpbiB0aGlzKSB7XG4gICAgICAgICAgY29uc3QgZXh0ZW5kZWQgPSB7IC4uLnRoaXMgfTtcbiAgICAgICAgICBleHRlbmRNZW1iZXIoZXh0ZW5kZWQsIGtleSwgb3B0aW9ucyk7XG4gICAgICAgICAgcmV0dXJuIGV4dGVuZGVkO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi50aGlzLFxuICAgICAgICAgICAgW2tleV06IHRoaXMuZ2V0LmV4dGVuZChvcHRpb25zKSxcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBhcmdzWzBdID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGNvbnN0IGV4dGVuZGVkID0gYXJnc1swXSh0aGlzKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi50aGlzLFxuICAgICAgICAgIC4uLmV4dGVuZGVkLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgY29uc3Qgb3ZlcnJpZGVzID0gYXJnc1swXTtcbiAgICAgIGNvbnN0IGV4dGVuZGVkID0geyAuLi50aGlzIH07XG4gICAgICBmb3IgKGNvbnN0IGtleSBpbiBvdmVycmlkZXMpIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIGV4dGVuZE1lbWJlcihleHRlbmRlZCwga2V5LCBvdmVycmlkZXNba2V5XSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZXh0ZW5kZWQ7XG4gICAgfSxcbiAgfSBhcyBhbnk7XG4gIHJldHVybiByZXQ7XG59XG5cbmZ1bmN0aW9uIG9wdGltaXN0aWNVcGRhdGUoc25hcDogU25hcHNob3RJbnRlcmZhY2UsIHBhcmFtczogYW55LCBib2R5OiBhbnkpIHtcbiAgcmV0dXJuIHtcbiAgICAuLi5wYXJhbXMsXG4gICAgLi4uZW5zdXJlUG9qbyhib2R5KSxcbiAgfTtcbn1cbmZ1bmN0aW9uIG9wdGltaXN0aWNQYXJ0aWFsKFxuICBnZXRFbmRwb2ludDogR2V0RW5kcG9pbnQ8eyBwYXRoOiBSZXNvdXJjZVBhdGg7IHNjaGVtYTogYW55IH0+LFxuKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoc25hcDogU25hcHNob3RJbnRlcmZhY2UsIHBhcmFtczogYW55LCBib2R5OiBhbnkpIHtcbiAgICBjb25zdCB7IGRhdGEgfSA9IHNuYXAuZ2V0UmVzcG9uc2UoZ2V0RW5kcG9pbnQsIHBhcmFtcykgYXMgeyBkYXRhOiBhbnkgfTtcbiAgICBpZiAoIWRhdGEpIHRocm93IG5ldyBBYm9ydE9wdGltaXN0aWMoKTtcbiAgICByZXR1cm4ge1xuICAgICAgLi4ucGFyYW1zLFxuICAgICAgLi4uZGF0YSxcbiAgICAgIC8vIGV2ZW4gdGhvIHdlIGRvbid0IGFsd2F5cyBoYXZlIHR3byBhcmd1bWVudHMsIHRoZSBleHRyYSBvbmUgd2lsbCBzaW1wbHkgYmUgdW5kZWZpbmVkIHdoaWNoIHNwcmVhZHMgZmluZVxuICAgICAgLi4uZW5zdXJlUG9qbyhib2R5KSxcbiAgICB9O1xuICB9O1xufVxuZnVuY3Rpb24gb3B0aW1pc3RpY0RlbGV0ZShzbmFwOiBTbmFwc2hvdEludGVyZmFjZSwgcGFyYW1zOiBhbnkpIHtcbiAgcmV0dXJuIHBhcmFtcztcbn1cbmZ1bmN0aW9uIGVuc3VyZVBvam8oYm9keTogYW55KSB7XG4gIHJldHVybiBib2R5IGluc3RhbmNlb2YgRm9ybURhdGEgP1xuICAgICAgT2JqZWN0LmZyb21FbnRyaWVzKChib2R5IGFzIGFueSkuZW50cmllcygpKVxuICAgIDogYm9keTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxTQUNFQSxlQUFlLEVBRWZDLE1BQU0sUUFDRCx1QkFBdUI7QUFTOUIsT0FBT0MsWUFBWSxNQUtaLG1CQUFtQjtBQUMxQixTQUFTQyxXQUFXLFFBQVEsa0JBQWtCO0FBRTlDLE1BQU07RUFBRUMsVUFBVTtFQUFFQyxVQUFVLEVBQUVDO0FBQWUsQ0FBQyxHQUFHTCxNQUFNOztBQUV6RDtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsU0FBU00sY0FBY0EsQ0FBQUMsSUFBQSxFQVFTO0VBQUEsSUFSb0I7TUFDakVDLElBQUk7TUFDSlIsTUFBTTtNQUNOUyxRQUFRLEdBQUdSLFlBQVk7TUFDdkJHLFVBQVUsR0FBR0MsY0FBYztNQUMzQkssVUFBVTtNQUNWQztJQUU2QixDQUFDLEdBQUFKLElBQUE7SUFEM0JLLFlBQVksR0FBQUMsNkJBQUEsQ0FBQU4sSUFBQSxFQUFBTyxTQUFBO0VBRWYsTUFBTUMsYUFBYSxHQUFHYixXQUFXLENBQUNNLElBQUksQ0FBQztFQUN2QyxNQUFNUSxPQUFPLEdBQUlDLElBQVksSUFBTSxHQUFHakIsTUFBTSxvQkFBTkEsTUFBTSxDQUFVaUIsSUFBSyxJQUFHQSxJQUFLLEVBQUM7RUFDcEU7RUFDQSxTQUFTQyxZQUFZQSxDQUFDQyxRQUFhLEVBQUVDLEdBQVcsRUFBRUMsT0FBWSxFQUFFO0lBQzlERixRQUFRLENBQUNDLEdBQUcsQ0FBQyxHQUFHRCxRQUFRLENBQUNDLEdBQUcsQ0FBQyxDQUFDRSxNQUFNLENBQUNELE9BQU8sQ0FBQztF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
|
|
122
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzY2hlbWEiLCJSZXN0RW5kcG9pbnQiLCJzaG9ydGVuUGF0aCIsIkludmFsaWRhdGUiLCJDb2xsZWN0aW9uIiwiQmFzZUNvbGxlY3Rpb24iLCJjcmVhdGVSZXNvdXJjZSIsIl9yZWYiLCJwYXRoIiwiRW5kcG9pbnQiLCJvcHRpbWlzdGljIiwicGFnaW5hdGlvbkZpZWxkIiwiZXh0cmFPcHRpb25zIiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UiLCJfZXhjbHVkZWQiLCJzaG9ydGVuZWRQYXRoIiwiZ2V0TmFtZSIsIm5hbWUiLCJleHRlbmRNZW1iZXIiLCJleHRlbmRlZCIsImtleSIsIm9wdGlvbnMiLCJleHRlbmQiLCJleHRyYU11dGF0ZU9wdGlvbnMiLCJPYmplY3QiLCJhc3NpZ24iLCJleHRyYVBhcnRpYWxPcHRpb25zIiwiZ2V0IiwiZ2V0T3B0aW1pc3RpY1Jlc3BvbnNlIiwib3B0aW1pc3RpY1VwZGF0ZSIsIm9wdGltaXN0aWNQYXJ0aWFsIiwiZ2V0TGlzdCIsInJldCIsImNyZWF0ZSIsInB1c2giLCJ1cGRhdGUiLCJtZXRob2QiLCJwYXJ0aWFsVXBkYXRlIiwiZGVsZXRlIiwicHJvY2VzcyIsInJlcyIsInBhcmFtcyIsImtleXMiLCJsZW5ndGgiLCJvcHRpbWlzdGljRGVsZXRlIiwidW5kZWZpbmVkIiwiYXJncyIsIm92ZXJyaWRlcyIsInNuYXAiLCJib2R5IiwiZW5zdXJlUG9qbyIsImRhdGEiLCJhYm9ydCIsIkZvcm1EYXRhIiwiZnJvbUVudHJpZXMiLCJlbnRyaWVzIl0sInNvdXJjZXMiOlsiLi4vc3JjL2NyZWF0ZVJlc291cmNlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNjaGVtYSB9IGZyb20gJ0BkYXRhLWNsaWVudC9lbmRwb2ludCc7XG5pbXBvcnQgdHlwZSB7IFNuYXBzaG90SW50ZXJmYWNlLCBRdWVyeWFibGUgfSBmcm9tICdAZGF0YS1jbGllbnQvZW5kcG9pbnQnO1xuXG5pbXBvcnQge1xuICBSZXNvdXJjZUdlbmVyaWNzLFxuICBSZXNvdXJjZU9wdGlvbnMsXG4gIFJlc291cmNlLFxuICBSZXNvdXJjZUludGVyZmFjZSxcbn0gZnJvbSAnLi9yZXNvdXJjZVR5cGVzLmpzJztcbmltcG9ydCBSZXN0RW5kcG9pbnQsIHtcbiAgR2V0RW5kcG9pbnQsXG4gIFBhcnRpYWxSZXN0R2VuZXJpY3MsXG4gIFJlc3RFbmRwb2ludE9wdGlvbnMsXG4gIFJlc3RJbnN0YW5jZUJhc2UsXG59IGZyb20gJy4vUmVzdEVuZHBvaW50LmpzJztcbmltcG9ydCB7IHNob3J0ZW5QYXRoIH0gZnJvbSAnLi9SZXN0SGVscGVycy5qcyc7XG5cbmNvbnN0IHsgSW52YWxpZGF0ZSwgQ29sbGVjdGlvbjogQmFzZUNvbGxlY3Rpb24gfSA9IHNjaGVtYTtcblxuLyoqIENyZWF0ZXMgY29sbGVjdGlvbiBvZiBFbmRwb2ludHMgZm9yIGNvbW1vbiBvcGVyYXRpb25zIG9uIGEgZ2l2ZW4gZGF0YS9zY2hlbWEuXG4gKlxuICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvY3JlYXRlUmVzb3VyY2VcbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlUmVzb3VyY2U8TyBleHRlbmRzIFJlc291cmNlR2VuZXJpY3M+KHtcbiAgcGF0aCxcbiAgc2NoZW1hLFxuICBFbmRwb2ludCA9IFJlc3RFbmRwb2ludCxcbiAgQ29sbGVjdGlvbiA9IEJhc2VDb2xsZWN0aW9uLFxuICBvcHRpbWlzdGljLFxuICBwYWdpbmF0aW9uRmllbGQsXG4gIC4uLmV4dHJhT3B0aW9uc1xufTogUmVhZG9ubHk8Tz4gJiBSZXNvdXJjZU9wdGlvbnMpOiBSZXNvdXJjZTxPPiB7XG4gIGNvbnN0IHNob3J0ZW5lZFBhdGggPSBzaG9ydGVuUGF0aChwYXRoKTtcbiAgY29uc3QgZ2V0TmFtZSA9IChuYW1lOiBzdHJpbmcpID0+IGAkeyhzY2hlbWEgYXMgYW55KT8ubmFtZX0uJHtuYW1lfWA7XG4gIC8vIHRoaXMgYWNjb3VudHMgZm9yIGRlcml2YXRpdmUgZW5kcG9pbnRzXG4gIGZ1bmN0aW9uIGV4dGVuZE1lbWJlcihleHRlbmRlZDogYW55LCBrZXk6IHN0cmluZywgb3B0aW9uczogYW55KSB7XG4gICAgZXh0ZW5kZWRba2V5XSA9IGV4dGVuZGVkW2tleV0uZXh0ZW5kKG9wdGlvbnMpO1xuICB9XG5cbiAgY29uc3QgZXh0cmFNdXRhdGVPcHRpb25zID0geyAuLi5leHRyYU9wdGlvbnMgfTtcbiAgY29uc3QgZXh0cmFQYXJ0aWFsT3B0aW9ucyA9IHsgLi4uZXh0cmFPcHRpb25zIH07XG4gIGNvbnN0IGdldDogR2V0RW5kcG9pbnQ8eyBwYXRoOiBPWydwYXRoJ107IHNjaGVtYTogT1snc2NoZW1hJ10gfT4gPVxuICAgIG5ldyBFbmRwb2ludCh7XG4gICAgICAuLi5leHRyYU9wdGlvbnMsXG4gICAgICBwYXRoLFxuICAgICAgc2NoZW1hLFxuICAgICAgbmFtZTogZ2V0TmFtZSgnZ2V0JyksXG4gICAgfSkgYXMgYW55O1xuICBpZiAob3B0aW1pc3RpYykge1xuICAgIChleHRyYU11dGF0ZU9wdGlvbnMgYXMgYW55KS5nZXRPcHRpbWlzdGljUmVzcG9uc2UgPSBvcHRpbWlzdGljVXBkYXRlO1xuICAgIC8vIFRPRE86IENoZWNrIHRoYXQgc2NoZW1hIGlzIGEgcXVlcnlhYmxlLCBvdGhlcndpc2UgdGhpcyBkb2Vzbid0IG1ha2Ugc2Vuc2VcbiAgICAoZXh0cmFQYXJ0aWFsT3B0aW9ucyBhcyBhbnkpLmdldE9wdGltaXN0aWNSZXNwb25zZSA9IG9wdGltaXN0aWNQYXJ0aWFsKFxuICAgICAgc2NoZW1hIGFzIGFueSxcbiAgICApO1xuICB9XG4gIGNvbnN0IGdldExpc3QgPSBuZXcgRW5kcG9pbnQoe1xuICAgIC4uLmV4dHJhTXV0YXRlT3B0aW9ucyxcbiAgICBwYWdpbmF0aW9uRmllbGQ6IHBhZ2luYXRpb25GaWVsZCBhcyBzdHJpbmcsXG4gICAgcGF0aDogc2hvcnRlbmVkUGF0aCxcbiAgICBzY2hlbWE6IG5ldyBDb2xsZWN0aW9uKFtzY2hlbWEgYXMgYW55XSksXG4gICAgbmFtZTogZ2V0TmFtZSgnZ2V0TGlzdCcpLFxuICB9KTtcbiAgY29uc3QgcmV0ID0ge1xuICAgIGdldCxcbiAgICBnZXRMaXN0LFxuICAgIC8vIFRPRE8oZGVwcmVjYXRlZCk6IHJlbW92ZSB0aGlzIG9uY2Ugd2UgcmVtb3ZlIGNyZWF0ZXNcbiAgICBjcmVhdGU6IGdldExpc3QucHVzaC5leHRlbmQoeyBuYW1lOiBnZXROYW1lKCdjcmVhdGUnKSB9KSxcbiAgICB1cGRhdGU6IG5ldyBFbmRwb2ludCh7XG4gICAgICAuLi5leHRyYU11dGF0ZU9wdGlvbnMsXG4gICAgICBwYXRoLFxuICAgICAgc2NoZW1hLFxuICAgICAgbWV0aG9kOiAnUFVUJyxcbiAgICAgIG5hbWU6IGdldE5hbWUoJ3VwZGF0ZScpLFxuICAgIH0pLFxuICAgIHBhcnRpYWxVcGRhdGU6IG5ldyBFbmRwb2ludCh7XG4gICAgICAuLi5leHRyYVBhcnRpYWxPcHRpb25zLFxuICAgICAgcGF0aCxcbiAgICAgIHNjaGVtYSxcbiAgICAgIG1ldGhvZDogJ1BBVENIJyxcbiAgICAgIG5hbWU6IGdldE5hbWUoJ3BhcnRpYWxVcGRhdGUnKSxcbiAgICB9KSxcbiAgICBkZWxldGU6IG5ldyBFbmRwb2ludCh7XG4gICAgICAuLi5leHRyYU11dGF0ZU9wdGlvbnMsXG4gICAgICBwYXRoLFxuICAgICAgc2NoZW1hOiAoc2NoZW1hIGFzIGFueSkucHJvY2VzcyA/IG5ldyBJbnZhbGlkYXRlKHNjaGVtYSBhcyBhbnkpIDogc2NoZW1hLFxuICAgICAgbWV0aG9kOiAnREVMRVRFJyxcbiAgICAgIG5hbWU6IGdldE5hbWUoJ2RlbGV0ZScpLFxuICAgICAgcHJvY2VzcyhyZXM6IGFueSwgcGFyYW1zOiBhbnkpIHtcbiAgICAgICAgcmV0dXJuIHJlcyAmJiBPYmplY3Qua2V5cyhyZXMpLmxlbmd0aCA/IHJlcyA6IHBhcmFtcztcbiAgICAgIH0sXG4gICAgICBnZXRPcHRpbWlzdGljUmVzcG9uc2U6IG9wdGltaXN0aWMgPyAob3B0aW1pc3RpY0RlbGV0ZSBhcyBhbnkpIDogdW5kZWZpbmVkLFxuICAgIH0pLFxuICAgIGV4dGVuZChcbiAgICAgIC4uLmFyZ3M6XG4gICAgICAgIHwgW3N0cmluZywgUmVzdEVuZHBvaW50T3B0aW9ucyAmIFBhcnRpYWxSZXN0R2VuZXJpY3NdXG4gICAgICAgIHwgW1Jlc3RFbmRwb2ludE9wdGlvbnMgJiBQYXJ0aWFsUmVzdEdlbmVyaWNzXVxuICAgICAgICB8IFtcbiAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgYmFzZVJlc291cmNlOiBSZXNvdXJjZUludGVyZmFjZSxcbiAgICAgICAgICAgICkgPT4gUmVjb3JkPHN0cmluZywgUmVzdEluc3RhbmNlQmFzZT4sXG4gICAgICAgICAgXVxuICAgICkge1xuICAgICAgaWYgKHR5cGVvZiBhcmdzWzBdID09PSAnc3RyaW5nJykge1xuICAgICAgICBjb25zdCBba2V5LCBvcHRpb25zXSA9IGFyZ3M7XG4gICAgICAgIGlmIChrZXkgaW4gdGhpcykge1xuICAgICAgICAgIGNvbnN0IGV4dGVuZGVkID0geyAuLi50aGlzIH07XG4gICAgICAgICAgZXh0ZW5kTWVtYmVyKGV4dGVuZGVkLCBrZXksIG9wdGlvbnMpO1xuICAgICAgICAgIHJldHVybiBleHRlbmRlZDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4udGhpcyxcbiAgICAgICAgICAgIFtrZXldOiB0aGlzLmdldC5leHRlbmQob3B0aW9ucyksXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgYXJnc1swXSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBjb25zdCBleHRlbmRlZCA9IGFyZ3NbMF0odGhpcyk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4udGhpcyxcbiAgICAgICAgICAuLi5leHRlbmRlZCxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IG92ZXJyaWRlcyA9IGFyZ3NbMF07XG4gICAgICBjb25zdCBleHRlbmRlZCA9IHsgLi4udGhpcyB9O1xuICAgICAgZm9yIChjb25zdCBrZXkgaW4gb3ZlcnJpZGVzKSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnRcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBleHRlbmRNZW1iZXIoZXh0ZW5kZWQsIGtleSwgb3ZlcnJpZGVzW2tleV0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGV4dGVuZGVkO1xuICAgIH0sXG4gIH0gYXMgYW55O1xuICByZXR1cm4gcmV0O1xufVxuXG5mdW5jdGlvbiBvcHRpbWlzdGljVXBkYXRlKHNuYXA6IFNuYXBzaG90SW50ZXJmYWNlLCBwYXJhbXM6IGFueSwgYm9keTogYW55KSB7XG4gIHJldHVybiB7XG4gICAgLi4ucGFyYW1zLFxuICAgIC4uLmVuc3VyZVBvam8oYm9keSksXG4gIH07XG59XG5mdW5jdGlvbiBvcHRpbWlzdGljUGFydGlhbChzY2hlbWE6IFF1ZXJ5YWJsZSkge1xuICByZXR1cm4gZnVuY3Rpb24gKHNuYXA6IFNuYXBzaG90SW50ZXJmYWNlLCBwYXJhbXM6IGFueSwgYm9keTogYW55KSB7XG4gICAgY29uc3QgZGF0YSA9IHNuYXAuZ2V0KHNjaGVtYSwgcGFyYW1zKTtcbiAgICBpZiAoIWRhdGEpIHRocm93IHNuYXAuYWJvcnQ7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnBhcmFtcyxcbiAgICAgIC4uLmRhdGEsXG4gICAgICAvLyBldmVuIHRobyB3ZSBkb24ndCBhbHdheXMgaGF2ZSB0d28gYXJndW1lbnRzLCB0aGUgZXh0cmEgb25lIHdpbGwgc2ltcGx5IGJlIHVuZGVmaW5lZCB3aGljaCBzcHJlYWRzIGZpbmVcbiAgICAgIC4uLmVuc3VyZVBvam8oYm9keSksXG4gICAgfTtcbiAgfTtcbn1cbmZ1bmN0aW9uIG9wdGltaXN0aWNEZWxldGUoc25hcDogU25hcHNob3RJbnRlcmZhY2UsIHBhcmFtczogYW55KSB7XG4gIHJldHVybiBwYXJhbXM7XG59XG5mdW5jdGlvbiBlbnN1cmVQb2pvKGJvZHk6IGFueSkge1xuICByZXR1cm4gYm9keSBpbnN0YW5jZW9mIEZvcm1EYXRhID9cbiAgICAgIE9iamVjdC5mcm9tRW50cmllcygoYm9keSBhcyBhbnkpLmVudHJpZXMoKSlcbiAgICA6IGJvZHk7XG59XG4iXSwibWFwcGluZ3MiOiI7O0FBQUEsU0FBU0EsTUFBTSxRQUFRLHVCQUF1QjtBQVM5QyxPQUFPQyxZQUFZLE1BS1osbUJBQW1CO0FBQzFCLFNBQVNDLFdBQVcsUUFBUSxrQkFBa0I7QUFFOUMsTUFBTTtFQUFFQyxVQUFVO0VBQUVDLFVBQVUsRUFBRUM7QUFBZSxDQUFDLEdBQUdMLE1BQU07O0FBRXpEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSxTQUFTTSxjQUFjQSxDQUFBQyxJQUFBLEVBUVM7RUFBQSxJQVJvQjtNQUNqRUMsSUFBSTtNQUNKUixNQUFNO01BQ05TLFFBQVEsR0FBR1IsWUFBWTtNQUN2QkcsVUFBVSxHQUFHQyxjQUFjO01BQzNCSyxVQUFVO01BQ1ZDO0lBRTZCLENBQUMsR0FBQUosSUFBQTtJQUQzQkssWUFBWSxHQUFBQyw2QkFBQSxDQUFBTixJQUFBLEVBQUFPLFNBQUE7RUFFZixNQUFNQyxhQUFhLEdBQUdiLFdBQVcsQ0FBQ00sSUFBSSxDQUFDO0VBQ3ZDLE1BQU1RLE9BQU8sR0FBSUMsSUFBWSxJQUFNLEdBQUdqQixNQUFNLG9CQUFOQSxNQUFNLENBQVVpQixJQUFLLElBQUdBLElBQUssRUFBQztFQUNwRTtFQUNBLFNBQVNDLFlBQVlBLENBQUNDLFFBQWEsRUFBRUMsR0FBVyxFQUFFQyxPQUFZLEVBQUU7SUFDOURGLFFBQVEsQ0FBQ0MsR0FBRyxDQUFDLEdBQUdELFFBQVEsQ0FBQ0MsR0FBRyxDQUFDLENBQUNFLE1BQU0sQ0FBQ0QsT0FBTyxDQUFDO0VBQy9DO0VBRUEsTUFBTUUsa0JBQWtCLEdBQUFDLE1BQUEsQ0FBQUMsTUFBQSxLQUFRYixZQUFZLENBQUU7RUFDOUMsTUFBTWMsbUJBQW1C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TSxDQUFDRCxPQUFPO1VBQUM7UUFFbkM7TUFDRixDQUFDLE1BQU0sSUFBSSxPQUFPeUIsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLFVBQVUsRUFBRTtRQUN4QyxNQUFNM0IsUUFBUSxHQUFHMkIsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUM5QixPQUFBdEIsTUFBQSxDQUFBQyxNQUFBLEtBQ0ssSUFBSSxFQUNKTixRQUFRO01BRWY7TUFDQSxNQUFNNEIsU0FBUyxHQUFHRCxJQUFJLENBQUMsQ0FBQyxDQUFDO01BQ3pCLE1BQU0zQixRQUFRLEdBQUFLLE1BQUEsQ0FBQUMsTUFBQSxLQUFRLElBQUksQ0FBRTtNQUM1QixLQUFLLE1BQU1MLEdBQUcsSUFBSTJCLFNBQVMsRUFBRTtRQUMzQjtRQUNBO1FBQ0E3QixZQUFZLENBQUNDLFFBQVEsRUFBRUMsR0FBRyxFQUFFMkIsU0FBUyxDQUFDM0IsR0FBRyxDQUFDLENBQUM7TUFDN0M7TUFDQSxPQUFPRCxRQUFRO0lBQ2pCO0VBQ0YsQ0FBUTtFQUNSLE9BQU9hLEdBQUc7QUFDWjtBQUVBLFNBQVNILGdCQUFnQkEsQ0FBQ21CLElBQXVCLEVBQUVQLE1BQVcsRUFBRVEsSUFBUyxFQUFFO0VBQ3pFLE9BQUF6QixNQUFBLENBQUFDLE1BQUEsS0FDS2dCLE1BQU0sRUFDTlMsVUFBVSxDQUFDRCxJQUFJLENBQUM7QUFFdkI7QUFDQSxTQUFTbkIsaUJBQWlCQSxDQUFDOUIsTUFBaUIsRUFBRTtFQUM1QyxPQUFPLFVBQVVnRCxJQUF1QixFQUFFUCxNQUFXLEVBQUVRLElBQVMsRUFBRTtJQUNoRSxNQUFNRSxJQUFJLEdBQUdILElBQUksQ0FBQ3JCLEdBQUcsQ0FBQzNCLE1BQU0sRUFBRXlDLE1BQU0sQ0FBQztJQUNyQyxJQUFJLENBQUNVLElBQUksRUFBRSxNQUFNSCxJQUFJLENBQUNJLEtBQUs7SUFDM0IsT0FBQTVCLE1BQUEsQ0FBQUMsTUFBQSxLQUNLZ0IsTUFBTSxFQUNOVSxJQUFJLEVBRUpELFVBQVUsQ0FBQ0QsSUFBSSxDQUFDO0VBRXZCLENBQUM7QUFDSDtBQUNBLFNBQVNMLGdCQUFnQkEsQ0FBQ0ksSUFBdUIsRUFBRVAsTUFBVyxFQUFFO0VBQzlELE9BQU9BLE1BQU07QUFDZjtBQUNBLFNBQVNTLFVBQVVBLENBQUNELElBQVMsRUFBRTtFQUM3QixPQUFPQSxJQUFJLFlBQVlJLFFBQVEsR0FDM0I3QixNQUFNLENBQUM4QixXQUFXLENBQUVMLElBQUksQ0FBU00sT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUMzQ04sSUFBSTtBQUNWIiwiaWdub3JlTGlzdCI6W119
|