angular-three 2.0.0-beta.9 → 2.1.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 +221 -4
- package/esm2022/index.mjs +13 -14
- package/esm2022/lib/canvas.mjs +130 -197
- package/esm2022/lib/directives/args.mjs +46 -20
- package/esm2022/lib/directives/selection.mjs +65 -0
- package/esm2022/lib/dom/events.mjs +2 -2
- package/esm2022/lib/events.mjs +33 -31
- package/esm2022/lib/html.mjs +40 -0
- package/esm2022/lib/instance.mjs +43 -36
- package/esm2022/lib/loader.mjs +72 -36
- package/esm2022/lib/loop.mjs +29 -26
- package/esm2022/lib/pipes/hexify.mjs +67 -0
- package/esm2022/lib/portal.mjs +173 -193
- package/esm2022/lib/renderer/catalogue.mjs +3 -3
- package/esm2022/lib/renderer/constants.mjs +6 -6
- package/esm2022/lib/renderer/index.mjs +356 -217
- package/esm2022/lib/renderer/state.mjs +54 -0
- package/esm2022/lib/renderer/utils.mjs +120 -64
- package/esm2022/lib/roots.mjs +86 -62
- package/esm2022/lib/routed-scene.mjs +11 -8
- package/esm2022/lib/store.mjs +164 -195
- package/esm2022/lib/three-types.mjs +1 -1
- package/esm2022/lib/types.mjs +1 -1
- package/esm2022/lib/utils/apply-props.mjs +31 -28
- package/esm2022/lib/utils/attach.mjs +26 -12
- package/esm2022/lib/utils/before-render.mjs +12 -0
- package/esm2022/lib/utils/is.mjs +6 -5
- package/esm2022/lib/utils/make.mjs +19 -17
- package/esm2022/lib/utils/non-nullish.mjs +7 -0
- package/esm2022/lib/utils/object-events.mjs +91 -0
- package/esm2022/lib/utils/parameters.mjs +70 -0
- package/esm2022/lib/utils/resolve-ref.mjs +8 -0
- package/esm2022/lib/utils/signal-store.mjs +59 -60
- package/esm2022/lib/utils/update.mjs +8 -4
- package/esm2022/nativescript/angular-three-nativescript.mjs +5 -0
- package/esm2022/nativescript/index.mjs +2 -0
- package/esm2022/nativescript/lib/canvas.mjs +127 -0
- package/esm2022/testing/angular-three-testing.mjs +5 -0
- package/esm2022/testing/index.mjs +3 -0
- package/esm2022/testing/lib/test-bed.mjs +130 -0
- package/esm2022/testing/lib/test-canvas.mjs +45 -0
- package/esm2022/testing/lib/utils/mock-canvas.mjs +37 -0
- package/esm2022/testing/lib/utils/web-gl-rendering-context.mjs +752 -0
- package/fesm2022/angular-three-nativescript.mjs +134 -0
- package/fesm2022/angular-three-nativescript.mjs.map +1 -0
- package/fesm2022/angular-three-testing.mjs +966 -0
- package/fesm2022/angular-three-testing.mjs.map +1 -0
- package/fesm2022/angular-three.mjs +2271 -2306
- package/fesm2022/angular-three.mjs.map +1 -1
- package/index.d.ts +14 -14
- package/lib/canvas.d.ts +357 -96
- package/lib/directives/args.d.ts +14 -7
- package/lib/directives/selection.d.ts +17 -0
- package/lib/dom/events.d.ts +2 -3
- package/lib/events.d.ts +4 -80
- package/lib/html.d.ts +17 -0
- package/lib/instance.d.ts +3 -35
- package/lib/loader.d.ts +19 -7
- package/lib/loop.d.ts +11 -59
- package/lib/pipes/hexify.d.ts +20 -0
- package/lib/portal.d.ts +54 -48
- package/lib/renderer/catalogue.d.ts +7 -3
- package/lib/renderer/constants.d.ts +5 -5
- package/lib/renderer/index.d.ts +63 -4
- package/lib/renderer/state.d.ts +25 -0
- package/lib/renderer/utils.d.ts +10 -27
- package/lib/roots.d.ts +9 -7
- package/lib/store.d.ts +13 -141
- package/lib/three-types.d.ts +528 -147
- package/lib/types.d.ts +291 -0
- package/lib/utils/apply-props.d.ts +2 -3
- package/lib/utils/attach.d.ts +4 -6
- package/lib/{before-render.d.ts → utils/before-render.d.ts} +1 -1
- package/lib/utils/is.d.ts +13 -14
- package/lib/utils/make.d.ts +7 -13
- package/lib/utils/non-nullish.d.ts +4 -0
- package/lib/utils/object-events.d.ts +32 -0
- package/lib/utils/parameters.d.ts +20 -0
- package/lib/utils/resolve-ref.d.ts +2 -0
- package/lib/utils/signal-store.d.ts +13 -4
- package/lib/utils/update.d.ts +1 -1
- package/metadata.json +1 -1
- package/nativescript/README.md +5 -0
- package/nativescript/index.d.ts +1 -0
- package/nativescript/lib/canvas.d.ts +359 -0
- package/nativescript/package.json +3 -0
- package/package.json +65 -14
- package/plugin/generators.json +8 -30
- package/plugin/package.json +3 -3
- package/plugin/src/generators/add-soba/compat.js.map +1 -0
- package/plugin/src/generators/add-soba/generator.d.ts +3 -0
- package/plugin/src/generators/add-soba/generator.js +77 -0
- package/plugin/src/generators/add-soba/generator.js.map +1 -0
- package/plugin/src/generators/add-soba/schema.json +4 -0
- package/plugin/src/generators/init/compat.d.ts +1 -1
- package/plugin/src/generators/init/files/experience/experience.component.ts__tmpl__ +29 -0
- package/plugin/src/generators/init/generator.d.ts +5 -1
- package/plugin/src/generators/init/generator.js +131 -25
- package/plugin/src/generators/init/generator.js.map +1 -1
- package/plugin/src/generators/init/schema.json +9 -2
- package/plugin/src/generators/utils.d.ts +2 -0
- package/plugin/src/generators/utils.js +35 -0
- package/plugin/src/generators/utils.js.map +1 -0
- package/plugin/src/generators/version.d.ts +17 -0
- package/plugin/src/generators/version.js +21 -0
- package/plugin/src/generators/version.js.map +1 -0
- package/plugin/src/index.d.ts +0 -3
- package/plugin/src/index.js +0 -9
- package/plugin/src/index.js.map +1 -1
- package/testing/README.md +3 -0
- package/testing/index.d.ts +2 -0
- package/testing/lib/test-bed.d.ts +38 -0
- package/testing/lib/test-canvas.d.ts +11 -0
- package/testing/lib/utils/mock-canvas.d.ts +5 -0
- package/testing/lib/utils/web-gl-rendering-context.d.ts +16 -0
- package/testing/package.json +3 -0
- package/web-types.json +1 -1
- package/esm2022/lib/before-render.mjs +0 -13
- package/esm2022/lib/directives/common.mjs +0 -41
- package/esm2022/lib/directives/key.mjs +0 -29
- package/esm2022/lib/directives/parent.mjs +0 -35
- package/esm2022/lib/directives/repeat.mjs +0 -17
- package/esm2022/lib/ref.mjs +0 -48
- package/esm2022/lib/renderer/store.mjs +0 -405
- package/esm2022/lib/utils/assert-injection-context.mjs +0 -14
- package/esm2022/lib/utils/create-injection-token.mjs +0 -47
- package/esm2022/lib/utils/safe-detect-changes.mjs +0 -17
- package/lib/directives/common.d.ts +0 -15
- package/lib/directives/key.d.ts +0 -10
- package/lib/directives/parent.d.ts +0 -11
- package/lib/directives/repeat.d.ts +0 -7
- package/lib/ref.d.ts +0 -8
- package/lib/renderer/store.d.ts +0 -67
- package/lib/utils/assert-injection-context.d.ts +0 -2
- package/lib/utils/create-injection-token.d.ts +0 -27
- package/lib/utils/safe-detect-changes.d.ts +0 -2
- package/plugin/src/generators/init-cannon/compat.js.map +0 -1
- package/plugin/src/generators/init-cannon/generator.d.ts +0 -2
- package/plugin/src/generators/init-cannon/generator.js +0 -22
- package/plugin/src/generators/init-cannon/generator.js.map +0 -1
- package/plugin/src/generators/init-cannon/schema.json +0 -6
- package/plugin/src/generators/init-postprocessing/compat.d.ts +0 -2
- package/plugin/src/generators/init-postprocessing/compat.js +0 -6
- package/plugin/src/generators/init-postprocessing/compat.js.map +0 -1
- package/plugin/src/generators/init-postprocessing/generator.d.ts +0 -2
- package/plugin/src/generators/init-postprocessing/generator.js +0 -20
- package/plugin/src/generators/init-postprocessing/generator.js.map +0 -1
- package/plugin/src/generators/init-postprocessing/schema.json +0 -6
- package/plugin/src/generators/init-soba/compat.d.ts +0 -2
- package/plugin/src/generators/init-soba/compat.js +0 -6
- package/plugin/src/generators/init-soba/compat.js.map +0 -1
- package/plugin/src/generators/init-soba/generator.d.ts +0 -2
- package/plugin/src/generators/init-soba/generator.js +0 -24
- package/plugin/src/generators/init-soba/generator.js.map +0 -1
- package/plugin/src/generators/init-soba/schema.json +0 -6
- package/plugin/src/generators/versions.d.ts +0 -12
- package/plugin/src/generators/versions.js +0 -16
- package/plugin/src/generators/versions.js.map +0 -1
- /package/plugin/src/generators/{init-cannon → add-soba}/compat.d.ts +0 -0
- /package/plugin/src/generators/{init-cannon → add-soba}/compat.js +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhyZWUtdHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi90aHJlZS10eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuaW1wb3J0IHR5cGUgeyBOZ3RFdmVudEhhbmRsZXJzIH0gZnJvbSAnLi9ldmVudHMnO1xuaW1wb3J0IHR5cGUgeyBOZ3RBZnRlckF0dGFjaCwgTmd0QXR0YWNoRnVuY3Rpb24sIE5ndEluc3RhbmNlTm9kZSB9IGZyb20gJy4vaW5zdGFuY2UnO1xuaW1wb3J0IHR5cGUgeyBOZ3RCZWZvcmVSZW5kZXJFdmVudCB9IGZyb20gJy4vc3RvcmUnO1xuXG50eXBlIE5vRXZlbnQ8VD4gPSBPbWl0PFQsICdhZGRFdmVudExpc3RlbmVyJyB8ICdyZW1vdmVFdmVudExpc3RlbmVyJz47XG5cbmV4cG9ydCB0eXBlIE5ndE5vbkZ1bmN0aW9uS2V5czxUPiA9IHsgW0sgaW4ga2V5b2YgVF0tPzogVFtLXSBleHRlbmRzIEZ1bmN0aW9uID8gbmV2ZXIgOiBLIH1ba2V5b2YgVF07XG5leHBvcnQgdHlwZSBOZ3RPdmVyd3JpdGU8VCwgTz4gPSBPbWl0PFQsIE5ndE5vbkZ1bmN0aW9uS2V5czxPPj4gJiBPO1xuXG5leHBvcnQgdHlwZSBOZ3RFeHRlbmRlZENvbG9yczxUPiA9IHtcblx0W0sgaW4ga2V5b2YgVF06IFRbS10gZXh0ZW5kcyBUSFJFRS5Db2xvciB8IHVuZGVmaW5lZCA/IFRIUkVFLkNvbG9yUmVwcmVzZW50YXRpb24gOiBUW0tdO1xufTtcblxuLyoqXG4gKiBJZiAqKlQqKiBjb250YWlucyBhIGNvbnN0cnVjdG9yLCBAc2VlIENvbnN0cnVjdG9yUGFyYW1ldGVycyBtdXN0IGJlIHVzZWQsIG90aGVyd2lzZSAqKlQqKi5cbiAqL1xudHlwZSBOZ3RBcmdzPFQ+ID0gVCBleHRlbmRzIG5ldyAoLi4uYXJnczogYW55KSA9PiBhbnkgPyBDb25zdHJ1Y3RvclBhcmFtZXRlcnM8VD4gOiBUO1xuXG5leHBvcnQgdHlwZSBOZ3RFdWxlciA9IFRIUkVFLkV1bGVyIHwgUGFyYW1ldGVyczxUSFJFRS5FdWxlclsnc2V0J10+O1xuZXhwb3J0IHR5cGUgTmd0TWF0cml4NCA9IFRIUkVFLk1hdHJpeDQgfCBQYXJhbWV0ZXJzPFRIUkVFLk1hdHJpeDRbJ3NldCddPiB8IFJlYWRvbmx5PFRIUkVFLk1hdHJpeDRbJ3NldCddPjtcblxuLyoqXG4gKiBUdXJuIGFuIGltcGxlbWVudGF0aW9uIG9mIFRIUkVFLlZlY3RvciBpbiB0byB0aGUgdHlwZSB0aGF0IGFuIHIzZiBjb21wb25lbnQgd291bGQgYWNjZXB0IGFzIGEgcHJvcC5cbiAqL1xudHlwZSBOZ3RWZWN0b3JMaWtlPFZlY3RvckNsYXNzIGV4dGVuZHMgVEhSRUUuVmVjdG9yPiA9XG5cdHwgVmVjdG9yQ2xhc3Ncblx0fCBQYXJhbWV0ZXJzPFZlY3RvckNsYXNzWydzZXQnXT5cblx0fCBSZWFkb25seTxQYXJhbWV0ZXJzPFZlY3RvckNsYXNzWydzZXQnXT4+XG5cdHwgUGFyYW1ldGVyczxWZWN0b3JDbGFzc1snc2V0U2NhbGFyJ10+WzBdO1xuXG5leHBvcnQgdHlwZSBOZ3RWZWN0b3IyID0gTmd0VmVjdG9yTGlrZTxUSFJFRS5WZWN0b3IyPjtcbmV4cG9ydCB0eXBlIE5ndFZlY3RvcjMgPSBOZ3RWZWN0b3JMaWtlPFRIUkVFLlZlY3RvcjM+O1xuZXhwb3J0IHR5cGUgTmd0VmVjdG9yNCA9IE5ndFZlY3Rvckxpa2U8VEhSRUUuVmVjdG9yND47XG5leHBvcnQgdHlwZSBOZ3RMYXllcnMgPSBUSFJFRS5MYXllcnMgfCBQYXJhbWV0ZXJzPFRIUkVFLkxheWVyc1snc2V0J10+WzBdO1xuZXhwb3J0IHR5cGUgTmd0UXVhdGVybmlvbiA9IFRIUkVFLlF1YXRlcm5pb24gfCBQYXJhbWV0ZXJzPFRIUkVFLlF1YXRlcm5pb25bJ3NldCddPjtcblxuZXhwb3J0IGludGVyZmFjZSBOZ3ROb2RlRXZlbnRNYXA8VE9yaWdpbmFsPiB7XG5cdGFmdGVyQXR0YWNoOiBOZ3RBZnRlckF0dGFjaDxOZ3RJbnN0YW5jZU5vZGUsIFRPcmlnaW5hbD47XG5cdGFmdGVyVXBkYXRlOiBUT3JpZ2luYWw7XG5cdGJlZm9yZVJlbmRlcjogTmd0QmVmb3JlUmVuZGVyRXZlbnQ8VE9yaWdpbmFsPjtcbn1cblxuZXhwb3J0IHR5cGUgTmd0Tm9kZUVsZW1lbnQ8VE9yaWdpbmFsLCBUQ29uc3RydWN0b3I+ID0ge1xuXHRhdHRhY2g6IHN0cmluZyB8IHN0cmluZ1tdIHwgTmd0QXR0YWNoRnVuY3Rpb247XG5cdC8vIHJlZjogTmd0SW5qZWN0ZWRSZWY8VE9yaWdpbmFsPjtcblx0YWRkRXZlbnRMaXN0ZW5lcjxURXZlbnRLZXkgZXh0ZW5kcyBrZXlvZiBOZ3ROb2RlRXZlbnRNYXA8VE9yaWdpbmFsPj4oXG5cdFx0dHlwZTogVEV2ZW50S2V5LFxuXHRcdGxpc3RlbmVyOiAodGhpczogTmd0Tm9kZUVsZW1lbnQ8VE9yaWdpbmFsLCBUQ29uc3RydWN0b3I+LCBldjogTmd0Tm9kZUV2ZW50TWFwPFRPcmlnaW5hbD5bVEV2ZW50S2V5XSkgPT4gYW55LFxuXHQpOiB2b2lkO1xuXHRyZW1vdmVFdmVudExpc3RlbmVyPFRFdmVudEtleSBleHRlbmRzIGtleW9mIE5ndE5vZGVFdmVudE1hcDxUT3JpZ2luYWw+Pihcblx0XHR0eXBlOiBURXZlbnRLZXksXG5cdFx0bGlzdGVuZXI6ICh0aGlzOiBOZ3ROb2RlRWxlbWVudDxUT3JpZ2luYWwsIFRDb25zdHJ1Y3Rvcj4sIGV2OiBOZ3ROb2RlRXZlbnRNYXA8VE9yaWdpbmFsPltURXZlbnRLZXldKSA9PiBhbnksXG5cdCk6IHZvaWQ7XG5cdF9fbmd0X2FyZ3NfXzogTmd0QXJnczxUQ29uc3RydWN0b3I+O1xufTtcblxuZXhwb3J0IHR5cGUgTmd0Tm9kZTxUT3JpZ2luYWwsIFRDb25zdHJ1Y3RvciwgVE5vRXZlbnQgPSBOb0V2ZW50PFRPcmlnaW5hbD4+ID0gTmd0RXh0ZW5kZWRDb2xvcnM8XG5cdE5ndE92ZXJ3cml0ZTxQYXJ0aWFsPFROb0V2ZW50PiwgTmd0Tm9kZUVsZW1lbnQ8VE9yaWdpbmFsLCBUQ29uc3RydWN0b3I+PlxuPjtcblxuZXhwb3J0IHR5cGUgTmd0T2JqZWN0M0RFdmVudHNNYXAgPSB7XG5cdFtURXZlbnQgaW4ga2V5b2YgTmd0RXZlbnRIYW5kbGVyc10tPzogUGFyYW1ldGVyczxOb25OdWxsYWJsZTxOZ3RFdmVudEhhbmRsZXJzW1RFdmVudF0+PlswXTtcbn07XG5cbmV4cG9ydCB0eXBlIE5ndE9iamVjdDNETm9kZTxUT3JpZ2luYWwsIFRDb25zdHJ1Y3RvciwgVE5vRXZlbnQgPSBOb0V2ZW50PFRPcmlnaW5hbD4+ID0gTmd0T3ZlcndyaXRlPFxuXHROZ3ROb2RlPFRPcmlnaW5hbCwgVENvbnN0cnVjdG9yLCBUTm9FdmVudD4sXG5cdHtcblx0XHRwb3NpdGlvbjogTmd0VmVjdG9yMztcblx0XHR1cDogTmd0VmVjdG9yMztcblx0XHRzY2FsZTogTmd0VmVjdG9yMztcblx0XHRyb3RhdGlvbjogTmd0RXVsZXI7XG5cdFx0bWF0cml4OiBOZ3RNYXRyaXg0O1xuXHRcdHF1YXRlcm5pb246IE5ndFF1YXRlcm5pb247XG5cdFx0bGF5ZXJzOiBOZ3RMYXllcnM7XG5cdFx0ZGlzcG9zZTogKCgpID0+IHZvaWQpIHwgbnVsbDtcblx0XHRhZGRFdmVudExpc3RlbmVyPFRFdmVudEtleSBleHRlbmRzIGtleW9mIE5ndE9iamVjdDNERXZlbnRzTWFwPihcblx0XHRcdHR5cGU6IFRFdmVudEtleSxcblx0XHRcdGxpc3RlbmVyOiAodGhpczogTmd0T2JqZWN0M0ROb2RlPFRPcmlnaW5hbCwgVENvbnN0cnVjdG9yPiwgZXY6IE5ndE9iamVjdDNERXZlbnRzTWFwW1RFdmVudEtleV0pID0+IGFueSxcblx0XHQpOiB2b2lkO1xuXHRcdHJlbW92ZUV2ZW50TGlzdGVuZXI8VEV2ZW50S2V5IGV4dGVuZHMga2V5b2YgTmd0T2JqZWN0M0RFdmVudHNNYXA+KFxuXHRcdFx0dHlwZTogVEV2ZW50S2V5LFxuXHRcdFx0bGlzdGVuZXI6ICh0aGlzOiBOZ3RPYmplY3QzRE5vZGU8VE9yaWdpbmFsLCBUQ29uc3RydWN0b3I+LCBldjogTmd0T2JqZWN0M0RFdmVudHNNYXBbVEV2ZW50S2V5XSkgPT4gYW55LFxuXHRcdCk6IHZvaWQ7XG5cdH1cbj47XG5cbmV4cG9ydCB0eXBlIE5ndEdlb21ldHJ5PFRHZW9tZXRyeSBleHRlbmRzIFRIUkVFLkJ1ZmZlckdlb21ldHJ5LCBUQ29uc3RydWN0b3I+ID0gTmd0Tm9kZTxUR2VvbWV0cnksIFRDb25zdHJ1Y3Rvcj47XG5leHBvcnQgdHlwZSBOZ3RNYXRlcmlhbDxUTWF0ZXJpYWwgZXh0ZW5kcyBUSFJFRS5NYXRlcmlhbCwgVENvbnN0cnVjdG9yPiA9IE5ndE5vZGU8VE1hdGVyaWFsLCBUQ29uc3RydWN0b3I+O1xuZXhwb3J0IHR5cGUgTmd0TGlnaHQ8VCBleHRlbmRzIFRIUkVFLkxpZ2h0LCBQPiA9IE5ndE9iamVjdDNETm9kZTxULCBQPjtcblxuZXhwb3J0IHR5cGUgTmd0T2JqZWN0M0QgPSBOZ3RPYmplY3QzRE5vZGU8VEhSRUUuT2JqZWN0M0QsIHR5cGVvZiBUSFJFRS5PYmplY3QzRD47XG5leHBvcnQgdHlwZSBOZ3RBdWRpbyA9IE5ndE9iamVjdDNETm9kZTxUSFJFRS5BdWRpbywgdHlwZW9mIFRIUkVFLkF1ZGlvPjtcbmV4cG9ydCB0eXBlIE5ndEF1ZGlvTGlzdGVuZXIgPSBOZ3RPYmplY3QzRE5vZGU8VEhSRUUuQXVkaW9MaXN0ZW5lciwgdHlwZW9mIFRIUkVFLkF1ZGlvTGlzdGVuZXI+O1xuZXhwb3J0IHR5cGUgTmd0UG9zaXRpb25hbEF1ZGlvID0gTmd0T2JqZWN0M0ROb2RlPFRIUkVFLlBvc2l0aW9uYWxBdWRpbywgdHlwZW9mIFRIUkVFLlBvc2l0aW9uYWxBdWRpbz47XG5cbmV4cG9ydCB0eXBlIE5ndE1lc2ggPSBOZ3RPYmplY3QzRE5vZGU8VEhSRUUuTWVzaCwgdHlwZW9mIFRIUkVFLk1lc2g+O1xuZXhwb3J0IHR5cGUgTmd0SW5zdGFuY2VkTWVzaCA9IE5ndE9iamVjdDNETm9kZTxUSFJFRS5JbnN0YW5jZWRNZXNoLCB0eXBlb2YgVEhSRUUuSW5zdGFuY2VkTWVzaD47XG5leHBvcnQgdHlwZSBOZ3RTY2VuZSA9IE5ndE9iamVjdDNETm9kZTxUSFJFRS5TY2VuZSwgdHlwZW9mIFRIUkVFLlNjZW5lPjtcbmV4cG9ydCB0eXBlIE5ndFNwcml0ZSA9IE5ndE9iamVjdDNETm9kZTxUSFJFRS5TcHJpdGUsIHR5cGVvZiBUSFJFRS5TcHJpdGU+O1xuZXhwb3J0IHR5cGUgTmd0TE9EID0gTmd0T2JqZWN0M0ROb2RlPFRIUkVFLkxPRCwgdHlwZW9mIFRIUkVFLkxPRD47XG5leHBvcnQgdHlwZSBOZ3RTa2lubmVkTWVzaCA9IE5ndE9iamVjdDNETm9kZTxUSFJFRS5Ta2lubmVkTWVzaCwgdHlwZW9mIFRIUkVFLlNraW5uZWRNZXNoPjtcblxuZXhwb3J0IHR5cGUgTmd0U2tlbGV0b24gPSBOZ3RPYmplY3QzRE5vZGU8VEhSRUUuU2tlbGV0b24sIHR5cGVvZiBUSFJFRS5Ta2VsZXRvbj47XG5leHBvcnQgdHlwZSBOZ3RCb25lID0gTmd0T2JqZWN0M0ROb2RlPFRIUkVFLkJvbmUsIHR5cGVvZiBUSFJFRS5Cb25lPjtcbmV4cG9ydCB0eXBlIE5ndExpbmUgPSBOZ3RPYmplY3QzRE5vZGU8VEhSRUUuTGluZSwgdHlwZW9mIFRIUkVFLkxpbmU+O1xuZXhwb3J0IHR5cGUgTmd0TGluZVNlZ21lbnRzID0gTmd0T2JqZWN0M0ROb2RlPFRIUkVFLkxpbmVTZWdtZW50cywgdHlwZW9mIFRIUkVFLkxpbmVTZWdtZW50cz47XG5leHBvcnQgdHlwZSBOZ3RMaW5lTG9vcCA9IE5ndE9iamVjdDNETm9kZTxUSFJFRS5MaW5lTG9vcCwgdHlwZW9mIFRIUkVFLkxpbmVMb29wPjtcbmV4cG9ydCB0eXBlIE5ndFBvaW50cyA9IE5ndE9iamVjdDNETm9kZTxUSFJFRS5Qb2ludHMsIHR5cGVvZiBUSFJFRS5Qb2ludHM+O1xuZXhwb3J0IHR5cGUgTmd0R3JvdXAgPSBOZ3RPYmplY3QzRE5vZGU8VEhSRUUuR3JvdXAsIHR5cGVvZiBUSFJFRS5Hcm91cD47XG5cbmV4cG9ydCB0eXBlIE5ndENhbWVyYU5vZGUgPSBOZ3RPYmplY3QzRE5vZGU8VEhSRUUuQ2FtZXJhLCB0eXBlb2YgVEhSRUUuQ2FtZXJhPjtcbmV4cG9ydCB0eXBlIE5ndFBlcnNwZWN0aXZlQ2FtZXJhID0gTmd0T2JqZWN0M0ROb2RlPFRIUkVFLlBlcnNwZWN0aXZlQ2FtZXJhLCB0eXBlb2YgVEhSRUUuUGVyc3BlY3RpdmVDYW1lcmE+O1xuZXhwb3J0IHR5cGUgTmd0T3J0aG9ncmFwaGljQ2FtZXJhID0gTmd0T2JqZWN0M0ROb2RlPFRIUkVFLk9ydGhvZ3JhcGhpY0NhbWVyYSwgdHlwZW9mIFRIUkVFLk9ydGhvZ3JhcGhpY0NhbWVyYT47XG5leHBvcnQgdHlwZSBOZ3RDdWJlQ2FtZXJhID0gTmd0T2JqZWN0M0ROb2RlPFRIUkVFLkN1YmVDYW1lcmEsIHR5cGVvZiBUSFJFRS5DdWJlQ2FtZXJhPjtcbmV4cG9ydCB0eXBlIE5ndEFycmF5Q2FtZXJhID0gTmd0T2JqZWN0M0ROb2RlPFRIUkVFLkFycmF5Q2FtZXJhLCB0eXBlb2YgVEhSRUUuQXJyYXlDYW1lcmE+O1xuXG5leHBvcnQgdHlwZSBOZ3RJbnN0YW5jZWRCdWZmZXJHZW9tZXRyeSA9IE5ndEdlb21ldHJ5PFxuXHRUSFJFRS5JbnN0YW5jZWRCdWZmZXJHZW9tZXRyeSxcblx0dHlwZW9mIFRIUkVFLkluc3RhbmNlZEJ1ZmZlckdlb21ldHJ5XG4+O1xuZXhwb3J0IHR5cGUgTmd0QnVmZmVyR2VvbWV0cnkgPSBOZ3RHZW9tZXRyeTxUSFJFRS5CdWZmZXJHZW9tZXRyeSwgdHlwZW9mIFRIUkVFLkJ1ZmZlckdlb21ldHJ5PjtcbmV4cG9ydCB0eXBlIE5ndFdpcmVmcmFtZUdlb21ldHJ5ID0gTmd0R2VvbWV0cnk8VEhSRUUuV2lyZWZyYW1lR2VvbWV0cnksIHR5cGVvZiBUSFJFRS5XaXJlZnJhbWVHZW9tZXRyeT47XG5leHBvcnQgdHlwZSBOZ3RUZXRyYWhlZHJvbkdlb21ldHJ5ID0gTmd0R2VvbWV0cnk8VEhSRUUuVGV0cmFoZWRyb25HZW9tZXRyeSwgdHlwZW9mIFRIUkVFLlRldHJhaGVkcm9uR2VvbWV0cnk+O1xuZXhwb3J0IHR5cGUgTmd0T2N0YWhlZHJvbkdlb21ldHJ5ID0gTmd0R2VvbWV0cnk8VEhSRUUuT2N0YWhlZHJvbkdlb21ldHJ5LCB0eXBlb2YgVEhSRUUuT2N0YWhlZHJvbkdlb21ldHJ5PjtcbmV4cG9ydCB0eXBlIE5ndEljb3NhaGVkcm9uR2VvbWV0cnkgPSBOZ3RHZW9tZXRyeTxUSFJFRS5JY29zYWhlZHJvbkdlb21ldHJ5LCB0eXBlb2YgVEhSRUUuSWNvc2FoZWRyb25HZW9tZXRyeT47XG5leHBvcnQgdHlwZSBOZ3REb2RlY2FoZWRyb25HZW9tZXRyeSA9IE5ndEdlb21ldHJ5PFRIUkVFLkRvZGVjYWhlZHJvbkdlb21ldHJ5LCB0eXBlb2YgVEhSRUUuRG9kZWNhaGVkcm9uR2VvbWV0cnk+O1xuZXhwb3J0IHR5cGUgTmd0UG9seWhlZHJvbkdlb21ldHJ5ID0gTmd0R2VvbWV0cnk8VEhSRUUuUG9seWhlZHJvbkdlb21ldHJ5LCB0eXBlb2YgVEhSRUUuUG9seWhlZHJvbkdlb21ldHJ5PjtcbmV4cG9ydCB0eXBlIE5ndFR1YmVHZW9tZXRyeSA9IE5ndEdlb21ldHJ5PFRIUkVFLlR1YmVHZW9tZXRyeSwgdHlwZW9mIFRIUkVFLlR1YmVHZW9tZXRyeT47XG5leHBvcnQgdHlwZSBOZ3RUb3J1c0tub3RHZW9tZXRyeSA9IE5ndEdlb21ldHJ5PFRIUkVFLlRvcnVzS25vdEdlb21ldHJ5LCB0eXBlb2YgVEhSRUUuVG9ydXNLbm90R2VvbWV0cnk+O1xuZXhwb3J0IHR5cGUgTmd0VG9ydXNHZW9tZXRyeSA9IE5ndEdlb21ldHJ5PFRIUkVFLlRvcnVzR2VvbWV0cnksIHR5cGVvZiBUSFJFRS5Ub3J1c0dlb21ldHJ5PjtcbmV4cG9ydCB0eXBlIE5ndFNwaGVyZUdlb21ldHJ5ID0gTmd0R2VvbWV0cnk8VEhSRUUuU3BoZXJlR2VvbWV0cnksIHR5cGVvZiBUSFJFRS5TcGhlcmVHZW9tZXRyeT47XG5leHBvcnQgdHlwZSBOZ3RSaW5nR2VvbWV0cnkgPSBOZ3RHZW9tZXRyeTxUSFJFRS5SaW5nR2VvbWV0cnksIHR5cGVvZiBUSFJFRS5SaW5nR2VvbWV0cnk+O1xuZXhwb3J0IHR5cGUgTmd0UGxhbmVHZW9tZXRyeSA9IE5ndEdlb21ldHJ5PFRIUkVFLlBsYW5lR2VvbWV0cnksIHR5cGVvZiBUSFJFRS5QbGFuZUdlb21ldHJ5PjtcbmV4cG9ydCB0eXBlIE5ndExhdGhlR2VvbWV0cnkgPSBOZ3RHZW9tZXRyeTxUSFJFRS5MYXRoZUdlb21ldHJ5LCB0eXBlb2YgVEhSRUUuTGF0aGVHZW9tZXRyeT47XG5leHBvcnQgdHlwZSBOZ3RTaGFwZUdlb21ldHJ5ID0gTmd0R2VvbWV0cnk8VEhSRUUuU2hhcGVHZW9tZXRyeSwgdHlwZW9mIFRIUkVFLlNoYXBlR2VvbWV0cnk+O1xuZXhwb3J0IHR5cGUgTmd0RXh0cnVkZUdlb21ldHJ5ID0gTmd0R2VvbWV0cnk8VEhSRUUuRXh0cnVkZUdlb21ldHJ5LCB0eXBlb2YgVEhSRUUuRXh0cnVkZUdlb21ldHJ5PjtcbmV4cG9ydCB0eXBlIE5ndEVkZ2VzR2VvbWV0cnkgPSBOZ3RHZW9tZXRyeTxUSFJFRS5FZGdlc0dlb21ldHJ5LCB0eXBlb2YgVEhSRUUuRWRnZXNHZW9tZXRyeT47XG5leHBvcnQgdHlwZSBOZ3RDb25lR2VvbWV0cnkgPSBOZ3RHZW9tZXRyeTxUSFJFRS5Db25lR2VvbWV0cnksIHR5cGVvZiBUSFJFRS5Db25lR2VvbWV0cnk+O1xuZXhwb3J0IHR5cGUgTmd0Q3lsaW5kZXJHZW9tZXRyeSA9IE5ndEdlb21ldHJ5PFRIUkVFLkN5bGluZGVyR2VvbWV0cnksIHR5cGVvZiBUSFJFRS5DeWxpbmRlckdlb21ldHJ5PjtcbmV4cG9ydCB0eXBlIE5ndENpcmNsZUdlb21ldHJ5ID0gTmd0R2VvbWV0cnk8VEhSRUUuQ2lyY2xlR2VvbWV0cnksIHR5cGVvZiBUSFJFRS5DaXJjbGVHZW9tZXRyeT47XG5leHBvcnQgdHlwZSBOZ3RCb3hHZW9tZXRyeSA9IE5ndEdlb21ldHJ5PFRIUkVFLkJveEdlb21ldHJ5LCB0eXBlb2YgVEhSRUUuQm94R2VvbWV0cnk+O1xuZXhwb3J0IHR5cGUgTmd0Q2Fwc3VsZUdlb21ldHJ5ID0gTmd0R2VvbWV0cnk8VEhSRUUuQ2Fwc3VsZUdlb21ldHJ5LCB0eXBlb2YgVEhSRUUuQ2Fwc3VsZUdlb21ldHJ5PjtcblxuZXhwb3J0IHR5cGUgTmd0U2hhZG93TWF0ZXJpYWwgPSBOZ3RNYXRlcmlhbDxUSFJFRS5TaGFkb3dNYXRlcmlhbCwgW1RIUkVFLlNoYWRlck1hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0U3ByaXRlTWF0ZXJpYWwgPSBOZ3RNYXRlcmlhbDxUSFJFRS5TcHJpdGVNYXRlcmlhbCwgW1RIUkVFLlNwcml0ZU1hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0UmF3U2hhZGVyTWF0ZXJpYWwgPSBOZ3RNYXRlcmlhbDxUSFJFRS5SYXdTaGFkZXJNYXRlcmlhbCwgW1RIUkVFLlNoYWRlck1hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0U2hhZGVyTWF0ZXJpYWwgPSBOZ3RNYXRlcmlhbDxUSFJFRS5TaGFkZXJNYXRlcmlhbCwgW1RIUkVFLlNoYWRlck1hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0UG9pbnRzTWF0ZXJpYWwgPSBOZ3RNYXRlcmlhbDxUSFJFRS5Qb2ludHNNYXRlcmlhbCwgW1RIUkVFLlBvaW50c01hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0TWVzaFBoeXNpY2FsTWF0ZXJpYWwgPSBOZ3RNYXRlcmlhbDxUSFJFRS5NZXNoUGh5c2ljYWxNYXRlcmlhbCwgW1RIUkVFLk1lc2hQaHlzaWNhbE1hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0TWVzaFN0YW5kYXJkTWF0ZXJpYWwgPSBOZ3RNYXRlcmlhbDxUSFJFRS5NZXNoU3RhbmRhcmRNYXRlcmlhbCwgW1RIUkVFLk1lc2hTdGFuZGFyZE1hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0TWVzaFBob25nTWF0ZXJpYWwgPSBOZ3RNYXRlcmlhbDxUSFJFRS5NZXNoUGhvbmdNYXRlcmlhbCwgW1RIUkVFLk1lc2hQaG9uZ01hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0TWVzaFRvb25NYXRlcmlhbCA9IE5ndE1hdGVyaWFsPFRIUkVFLk1lc2hUb29uTWF0ZXJpYWwsIFtUSFJFRS5NZXNoVG9vbk1hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0TWVzaE5vcm1hbE1hdGVyaWFsID0gTmd0TWF0ZXJpYWw8VEhSRUUuTWVzaE5vcm1hbE1hdGVyaWFsLCBbVEhSRUUuTWVzaE5vcm1hbE1hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0TWVzaExhbWJlcnRNYXRlcmlhbCA9IE5ndE1hdGVyaWFsPFRIUkVFLk1lc2hMYW1iZXJ0TWF0ZXJpYWwsIFtUSFJFRS5NZXNoTGFtYmVydE1hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0TWVzaERlcHRoTWF0ZXJpYWwgPSBOZ3RNYXRlcmlhbDxUSFJFRS5NZXNoRGVwdGhNYXRlcmlhbCwgW1RIUkVFLk1lc2hEZXB0aE1hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0TWVzaERpc3RhbmNlTWF0ZXJpYWwgPSBOZ3RNYXRlcmlhbDxUSFJFRS5NZXNoRGlzdGFuY2VNYXRlcmlhbCwgW1RIUkVFLk1lc2hEaXN0YW5jZU1hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0TWVzaEJhc2ljTWF0ZXJpYWwgPSBOZ3RNYXRlcmlhbDxUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCwgW1RIUkVFLk1lc2hCYXNpY01hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0TWVzaE1hdGNhcE1hdGVyaWFsID0gTmd0TWF0ZXJpYWw8VEhSRUUuTWVzaE1hdGNhcE1hdGVyaWFsLCBbVEhSRUUuTWVzaE1hdGNhcE1hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0TGluZURhc2hlZE1hdGVyaWFsID0gTmd0TWF0ZXJpYWw8VEhSRUUuTGluZURhc2hlZE1hdGVyaWFsLCBbVEhSRUUuTGluZURhc2hlZE1hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0TGluZUJhc2ljTWF0ZXJpYWwgPSBOZ3RNYXRlcmlhbDxUSFJFRS5MaW5lQmFzaWNNYXRlcmlhbCwgW1RIUkVFLkxpbmVCYXNpY01hdGVyaWFsUGFyYW1ldGVyc10+O1xuXG5leHBvcnQgdHlwZSBOZ3RQcmltaXRpdmUgPSBOZ3ROb2RlRWxlbWVudDxhbnksIGFueT47XG5leHBvcnQgdHlwZSBOZ3RWYWx1ZSA9IE5ndE5vZGU8eyByYXdWYWx1ZTogYW55IH0sIHt9PjtcblxuZXhwb3J0IHR5cGUgTmd0TGlnaHRTaGFkb3cgPSBOZ3ROb2RlPFRIUkVFLkxpZ2h0U2hhZG93LCB0eXBlb2YgVEhSRUUuTGlnaHRTaGFkb3c+O1xuZXhwb3J0IHR5cGUgTmd0U3BvdExpZ2h0U2hhZG93ID0gTmd0Tm9kZTxUSFJFRS5TcG90TGlnaHRTaGFkb3csIHR5cGVvZiBUSFJFRS5TcG90TGlnaHRTaGFkb3c+O1xuZXhwb3J0IHR5cGUgTmd0RGlyZWN0aW9uYWxMaWdodFNoYWRvdyA9IE5ndE5vZGU8VEhSRUUuRGlyZWN0aW9uYWxMaWdodFNoYWRvdywgdHlwZW9mIFRIUkVFLkRpcmVjdGlvbmFsTGlnaHRTaGFkb3c+O1xuXG5leHBvcnQgdHlwZSBOZ3RTcG90TGlnaHQgPSBOZ3RMaWdodDxUSFJFRS5TcG90TGlnaHQsIHR5cGVvZiBUSFJFRS5TcG90TGlnaHQ+O1xuZXhwb3J0IHR5cGUgTmd0UG9pbnRMaWdodCA9IE5ndExpZ2h0PFRIUkVFLlBvaW50TGlnaHQsIHR5cGVvZiBUSFJFRS5Qb2ludExpZ2h0PjtcbmV4cG9ydCB0eXBlIE5ndFJlY3RBcmVhTGlnaHQgPSBOZ3RMaWdodDxUSFJFRS5SZWN0QXJlYUxpZ2h0LCB0eXBlb2YgVEhSRUUuUmVjdEFyZWFMaWdodD47XG5leHBvcnQgdHlwZSBOZ3RIZW1pc3BoZXJlTGlnaHQgPSBOZ3RMaWdodDxUSFJFRS5IZW1pc3BoZXJlTGlnaHQsIHR5cGVvZiBUSFJFRS5IZW1pc3BoZXJlTGlnaHQ+O1xuZXhwb3J0IHR5cGUgTmd0RGlyZWN0aW9uYWxMaWdodCA9IE5ndExpZ2h0PFRIUkVFLkRpcmVjdGlvbmFsTGlnaHQsIHR5cGVvZiBUSFJFRS5EaXJlY3Rpb25hbExpZ2h0PjtcbmV4cG9ydCB0eXBlIE5ndEFtYmllbnRMaWdodCA9IE5ndExpZ2h0PFRIUkVFLkFtYmllbnRMaWdodCwgdHlwZW9mIFRIUkVFLkFtYmllbnRMaWdodD47XG5leHBvcnQgdHlwZSBOZ3RBbWJpZW50TGlnaHRQcm9iZSA9IE5ndExpZ2h0PFRIUkVFLkFtYmllbnRMaWdodFByb2JlLCB0eXBlb2YgVEhSRUUuQW1iaWVudExpZ2h0UHJvYmU+O1xuZXhwb3J0IHR5cGUgTmd0SGVtaXNwaGVyZUxpZ2h0UHJvYmUgPSBOZ3RMaWdodDxUSFJFRS5IZW1pc3BoZXJlTGlnaHRQcm9iZSwgdHlwZW9mIFRIUkVFLkhlbWlzcGhlcmVMaWdodFByb2JlPjtcbmV4cG9ydCB0eXBlIE5ndExpZ2h0UHJvYmUgPSBOZ3RMaWdodDxUSFJFRS5MaWdodFByb2JlLCB0eXBlb2YgVEhSRUUuTGlnaHRQcm9iZT47XG5cbmV4cG9ydCB0eXBlIE5ndFNwb3RMaWdodEhlbHBlciA9IE5ndE9iamVjdDNETm9kZTxUSFJFRS5TcG90TGlnaHRIZWxwZXIsIHR5cGVvZiBUSFJFRS5TcG90TGlnaHRIZWxwZXI+O1xuZXhwb3J0IHR5cGUgTmd0U2tlbGV0b25IZWxwZXIgPSBOZ3RPYmplY3QzRE5vZGU8VEhSRUUuU2tlbGV0b25IZWxwZXIsIHR5cGVvZiBUSFJFRS5Ta2VsZXRvbkhlbHBlcj47XG5leHBvcnQgdHlwZSBOZ3RQb2ludExpZ2h0SGVscGVyID0gTmd0T2JqZWN0M0ROb2RlPFRIUkVFLlBvaW50TGlnaHRIZWxwZXIsIHR5cGVvZiBUSFJFRS5Qb2ludExpZ2h0SGVscGVyPjtcbmV4cG9ydCB0eXBlIE5ndEhlbWlzcGhlcmVMaWdodEhlbHBlciA9IE5ndE9iamVjdDNETm9kZTxUSFJFRS5IZW1pc3BoZXJlTGlnaHRIZWxwZXIsIHR5cGVvZiBUSFJFRS5IZW1pc3BoZXJlTGlnaHRIZWxwZXI+O1xuZXhwb3J0IHR5cGUgTmd0R3JpZEhlbHBlciA9IE5ndE9iamVjdDNETm9kZTxUSFJFRS5HcmlkSGVscGVyLCB0eXBlb2YgVEhSRUUuR3JpZEhlbHBlcj47XG5leHBvcnQgdHlwZSBOZ3RQb2xhckdyaWRIZWxwZXIgPSBOZ3RPYmplY3QzRE5vZGU8VEhSRUUuUG9sYXJHcmlkSGVscGVyLCB0eXBlb2YgVEhSRUUuUG9sYXJHcmlkSGVscGVyPjtcbmV4cG9ydCB0eXBlIE5ndERpcmVjdGlvbmFsTGlnaHRIZWxwZXIgPSBOZ3RPYmplY3QzRE5vZGU8XG5cdFRIUkVFLkRpcmVjdGlvbmFsTGlnaHRIZWxwZXIsXG5cdHR5cGVvZiBUSFJFRS5EaXJlY3Rpb25hbExpZ2h0SGVscGVyXG4+O1xuZXhwb3J0IHR5cGUgTmd0Q2FtZXJhSGVscGVyID0gTmd0T2JqZWN0M0ROb2RlPFRIUkVFLkNhbWVyYUhlbHBlciwgdHlwZW9mIFRIUkVFLkNhbWVyYUhlbHBlcj47XG5leHBvcnQgdHlwZSBOZ3RCb3hIZWxwZXIgPSBOZ3RPYmplY3QzRE5vZGU8VEhSRUUuQm94SGVscGVyLCB0eXBlb2YgVEhSRUUuQm94SGVscGVyPjtcbmV4cG9ydCB0eXBlIE5ndEJveDNIZWxwZXIgPSBOZ3RPYmplY3QzRE5vZGU8VEhSRUUuQm94M0hlbHBlciwgdHlwZW9mIFRIUkVFLkJveDNIZWxwZXI+O1xuZXhwb3J0IHR5cGUgTmd0UGxhbmVIZWxwZXIgPSBOZ3RPYmplY3QzRE5vZGU8VEhSRUUuUGxhbmVIZWxwZXIsIHR5cGVvZiBUSFJFRS5QbGFuZUhlbHBlcj47XG5leHBvcnQgdHlwZSBOZ3RBcnJvd0hlbHBlciA9IE5ndE9iamVjdDNETm9kZTxUSFJFRS5BcnJvd0hlbHBlciwgdHlwZW9mIFRIUkVFLkFycm93SGVscGVyPjtcbmV4cG9ydCB0eXBlIE5ndEF4ZXNIZWxwZXIgPSBOZ3RPYmplY3QzRE5vZGU8VEhSRUUuQXhlc0hlbHBlciwgdHlwZW9mIFRIUkVFLkF4ZXNIZWxwZXI+O1xuXG5leHBvcnQgdHlwZSBOZ3RUZXh0dXJlID0gTmd0Tm9kZTxUSFJFRS5UZXh0dXJlLCB0eXBlb2YgVEhSRUUuVGV4dHVyZT47XG5leHBvcnQgdHlwZSBOZ3RWaWRlb1RleHR1cmUgPSBOZ3ROb2RlPFRIUkVFLlZpZGVvVGV4dHVyZSwgdHlwZW9mIFRIUkVFLlZpZGVvVGV4dHVyZT47XG5leHBvcnQgdHlwZSBOZ3REYXRhVGV4dHVyZSA9IE5ndE5vZGU8VEhSRUUuRGF0YVRleHR1cmUsIHR5cGVvZiBUSFJFRS5EYXRhVGV4dHVyZT47XG5leHBvcnQgdHlwZSBOZ3REYXRhM0RUZXh0dXJlID0gTmd0Tm9kZTxUSFJFRS5EYXRhM0RUZXh0dXJlLCB0eXBlb2YgVEhSRUUuRGF0YTNEVGV4dHVyZT47XG5leHBvcnQgdHlwZSBOZ3RDb21wcmVzc2VkVGV4dHVyZSA9IE5ndE5vZGU8VEhSRUUuQ29tcHJlc3NlZFRleHR1cmUsIHR5cGVvZiBUSFJFRS5Db21wcmVzc2VkVGV4dHVyZT47XG5leHBvcnQgdHlwZSBOZ3RDdWJlVGV4dHVyZSA9IE5ndE5vZGU8VEhSRUUuQ3ViZVRleHR1cmUsIHR5cGVvZiBUSFJFRS5DdWJlVGV4dHVyZT47XG5leHBvcnQgdHlwZSBOZ3RDYW52YXNUZXh0dXJlID0gTmd0Tm9kZTxUSFJFRS5DYW52YXNUZXh0dXJlLCB0eXBlb2YgVEhSRUUuQ2FudmFzVGV4dHVyZT47XG5leHBvcnQgdHlwZSBOZ3REZXB0aFRleHR1cmUgPSBOZ3ROb2RlPFRIUkVFLkRlcHRoVGV4dHVyZSwgdHlwZW9mIFRIUkVFLkRlcHRoVGV4dHVyZT47XG5cbmV4cG9ydCB0eXBlIE5ndFJheWNhc3RlciA9IE5ndE5vZGU8VEhSRUUuUmF5Y2FzdGVyLCB0eXBlb2YgVEhSRUUuUmF5Y2FzdGVyPjtcbmV4cG9ydCB0eXBlIE5ndFZlY3RvcjJOb2RlID0gTmd0Tm9kZTxUSFJFRS5WZWN0b3IyLCB0eXBlb2YgVEhSRUUuVmVjdG9yMj47XG5leHBvcnQgdHlwZSBOZ3RWZWN0b3IzTm9kZSA9IE5ndE5vZGU8VEhSRUUuVmVjdG9yMywgdHlwZW9mIFRIUkVFLlZlY3RvcjM+O1xuZXhwb3J0IHR5cGUgTmd0VmVjdG9yNE5vZGUgPSBOZ3ROb2RlPFRIUkVFLlZlY3RvcjQsIHR5cGVvZiBUSFJFRS5WZWN0b3I0PjtcbmV4cG9ydCB0eXBlIE5ndEV1bGVyTm9kZSA9IE5ndE5vZGU8VEhSRUUuRXVsZXIsIHR5cGVvZiBUSFJFRS5FdWxlcj47XG5leHBvcnQgdHlwZSBOZ3RNYXRyaXgzTm9kZSA9IE5ndE5vZGU8VEhSRUUuTWF0cml4MywgdHlwZW9mIFRIUkVFLk1hdHJpeDM+O1xuZXhwb3J0IHR5cGUgTmd0TWF0cml4NE5vZGUgPSBOZ3ROb2RlPFRIUkVFLk1hdHJpeDQsIHR5cGVvZiBUSFJFRS5NYXRyaXg0PjtcbmV4cG9ydCB0eXBlIE5ndFF1YXRlcm5pb25Ob2RlID0gTmd0Tm9kZTxUSFJFRS5RdWF0ZXJuaW9uLCB0eXBlb2YgVEhSRUUuUXVhdGVybmlvbj47XG5leHBvcnQgdHlwZSBOZ3RCdWZmZXJBdHRyaWJ1dGUgPSBOZ3ROb2RlPFRIUkVFLkJ1ZmZlckF0dHJpYnV0ZSwgdHlwZW9mIFRIUkVFLkJ1ZmZlckF0dHJpYnV0ZT47XG5leHBvcnQgdHlwZSBOZ3RGbG9hdDE2QnVmZmVyQXR0cmlidXRlID0gTmd0Tm9kZTxUSFJFRS5GbG9hdDE2QnVmZmVyQXR0cmlidXRlLCB0eXBlb2YgVEhSRUUuRmxvYXQxNkJ1ZmZlckF0dHJpYnV0ZT47XG5leHBvcnQgdHlwZSBOZ3RGbG9hdDMyQnVmZmVyQXR0cmlidXRlID0gTmd0Tm9kZTxUSFJFRS5GbG9hdDMyQnVmZmVyQXR0cmlidXRlLCB0eXBlb2YgVEhSRUUuRmxvYXQzMkJ1ZmZlckF0dHJpYnV0ZT47XG5leHBvcnQgdHlwZSBOZ3RGbG9hdDY0QnVmZmVyQXR0cmlidXRlID0gTmd0Tm9kZTxUSFJFRS5GbG9hdDY0QnVmZmVyQXR0cmlidXRlLCB0eXBlb2YgVEhSRUUuRmxvYXQ2NEJ1ZmZlckF0dHJpYnV0ZT47XG5leHBvcnQgdHlwZSBOZ3RJbnQ4QnVmZmVyQXR0cmlidXRlID0gTmd0Tm9kZTxUSFJFRS5JbnQ4QnVmZmVyQXR0cmlidXRlLCB0eXBlb2YgVEhSRUUuSW50OEJ1ZmZlckF0dHJpYnV0ZT47XG5leHBvcnQgdHlwZSBOZ3RJbnQxNkJ1ZmZlckF0dHJpYnV0ZSA9IE5ndE5vZGU8VEhSRUUuSW50MTZCdWZmZXJBdHRyaWJ1dGUsIHR5cGVvZiBUSFJFRS5JbnQxNkJ1ZmZlckF0dHJpYnV0ZT47XG5leHBvcnQgdHlwZSBOZ3RJbnQzMkJ1ZmZlckF0dHJpYnV0ZSA9IE5ndE5vZGU8VEhSRUUuSW50MzJCdWZmZXJBdHRyaWJ1dGUsIHR5cGVvZiBUSFJFRS5JbnQzMkJ1ZmZlckF0dHJpYnV0ZT47XG5leHBvcnQgdHlwZSBOZ3RVaW50OEJ1ZmZlckF0dHJpYnV0ZSA9IE5ndE5vZGU8VEhSRUUuVWludDhCdWZmZXJBdHRyaWJ1dGUsIHR5cGVvZiBUSFJFRS5VaW50OEJ1ZmZlckF0dHJpYnV0ZT47XG5leHBvcnQgdHlwZSBOZ3RVaW50MTZCdWZmZXJBdHRyaWJ1dGUgPSBOZ3ROb2RlPFRIUkVFLlVpbnQxNkJ1ZmZlckF0dHJpYnV0ZSwgdHlwZW9mIFRIUkVFLlVpbnQxNkJ1ZmZlckF0dHJpYnV0ZT47XG5leHBvcnQgdHlwZSBOZ3RVaW50MzJCdWZmZXJBdHRyaWJ1dGUgPSBOZ3ROb2RlPFRIUkVFLlVpbnQzMkJ1ZmZlckF0dHJpYnV0ZSwgdHlwZW9mIFRIUkVFLlVpbnQzMkJ1ZmZlckF0dHJpYnV0ZT47XG5leHBvcnQgdHlwZSBOZ3RJbnN0YW5jZWRCdWZmZXJBdHRyaWJ1dGUgPSBOZ3ROb2RlPFxuXHRUSFJFRS5JbnN0YW5jZWRCdWZmZXJBdHRyaWJ1dGUsXG5cdHR5cGVvZiBUSFJFRS5JbnN0YW5jZWRCdWZmZXJBdHRyaWJ1dGVcbj47XG5leHBvcnQgdHlwZSBOZ3RDb2xvciA9IE5ndE5vZGU8VEhSRUUuQ29sb3IsIFRIUkVFLkNvbG9yUmVwcmVzZW50YXRpb24+O1xuZXhwb3J0IHR5cGUgTmd0Rm9nID0gTmd0Tm9kZTxUSFJFRS5Gb2csIHR5cGVvZiBUSFJFRS5Gb2c+O1xuZXhwb3J0IHR5cGUgTmd0Rm9nRXhwMiA9IE5ndE5vZGU8VEhSRUUuRm9nRXhwMiwgdHlwZW9mIFRIUkVFLkZvZ0V4cDI+O1xuZXhwb3J0IHR5cGUgTmd0U2hhcGUgPSBOZ3ROb2RlPFRIUkVFLlNoYXBlLCB0eXBlb2YgVEhSRUUuU2hhcGU+O1xuXG5leHBvcnQgaW50ZXJmYWNlIFRocmVlRWxlbWVudHMge1xuXHQnbmd0LW9iamVjdDNEJzogTmd0T2JqZWN0M0Q7XG5cblx0Ly8gYGF1ZGlvYCB3b3JrcyBidXQgY29uZmxpY3RzIHdpdGggQHR5cGVzL3JlYWN0LiBUcnkgdXNpbmcgUG9zaXRpb25hbEF1ZGlvIGZyb20gQHJlYWN0LXRocmVlL2RyZWkgaW5zdGVhZFxuXHQnbmd0LWF1ZGlvJzogTmd0QXVkaW87XG5cdCduZ3QtYXVkaW8tbGlzdGVuZXInOiBOZ3RBdWRpb0xpc3RlbmVyO1xuXHQnbmd0LXBvc2l0aW9uYWwtYXVkaW8nOiBOZ3RQb3NpdGlvbmFsQXVkaW87XG5cblx0J25ndC1tZXNoJzogTmd0TWVzaDtcblx0J25ndC1pbnN0YW5jZWQtbWVzaCc6IE5ndEluc3RhbmNlZE1lc2g7XG5cdCduZ3Qtc2NlbmUnOiBOZ3RTY2VuZTtcblx0J25ndC1zcHJpdGUnOiBOZ3RTcHJpdGU7XG5cdCduZ3QtbE9EJzogTmd0TE9EO1xuXHQnbmd0LXNraW5uZWQtbWVzaCc6IE5ndFNraW5uZWRNZXNoO1xuXHQnbmd0LXNrZWxldG9uJzogTmd0U2tlbGV0b247XG5cdCduZ3QtYm9uZSc6IE5ndEJvbmU7XG5cblx0J25ndC1saW5lJzogTmd0TGluZTtcblx0J25ndC1saW5lLXNlZ21lbnRzJzogTmd0TGluZVNlZ21lbnRzO1xuXHQnbmd0LWxpbmUtbG9vcCc6IE5ndExpbmVMb29wO1xuXHQnbmd0LXBvaW50cyc6IE5ndFBvaW50cztcblx0J25ndC1ncm91cCc6IE5ndEdyb3VwO1xuXG5cdC8vIGNhbWVyYXNcblx0J25ndC1jYW1lcmEnOiBOZ3RDYW1lcmFOb2RlO1xuXHQnbmd0LXBlcnNwZWN0aXZlLWNhbWVyYSc6IE5ndFBlcnNwZWN0aXZlQ2FtZXJhO1xuXHQnbmd0LW9ydGhvZ3JhcGhpYy1jYW1lcmEnOiBOZ3RPcnRob2dyYXBoaWNDYW1lcmE7XG5cdCduZ3QtY3ViZS1jYW1lcmEnOiBOZ3RDdWJlQ2FtZXJhO1xuXHQnbmd0LWFycmF5LWNhbWVyYSc6IE5ndEFycmF5Q2FtZXJhO1xuXG5cdC8vIGdlb21ldHJ5XG5cdCduZ3QtaW5zdGFuY2VkLWJ1ZmZlci1nZW9tZXRyeSc6IE5ndEluc3RhbmNlZEJ1ZmZlckdlb21ldHJ5O1xuXHQnbmd0LWJ1ZmZlci1nZW9tZXRyeSc6IE5ndEJ1ZmZlckdlb21ldHJ5O1xuXHQnbmd0LXdpcmVmcmFtZS1nZW9tZXRyeSc6IE5ndFdpcmVmcmFtZUdlb21ldHJ5O1xuXHQnbmd0LXRldHJhaGVkcm9uLWdlb21ldHJ5JzogTmd0VGV0cmFoZWRyb25HZW9tZXRyeTtcblx0J25ndC1vY3RhaGVkcm9uLWdlb21ldHJ5JzogTmd0T2N0YWhlZHJvbkdlb21ldHJ5O1xuXHQnbmd0LWljb3NhaGVkcm9uLWdlb21ldHJ5JzogTmd0SWNvc2FoZWRyb25HZW9tZXRyeTtcblx0J25ndC1wb2x5aGVkcm9uLWdlb21ldHJ5JzogTmd0UG9seWhlZHJvbkdlb21ldHJ5O1xuXHQnbmd0LWRvZGVjYWhlZHJvbi1nZW9tZXRyeSc6IE5ndERvZGVjYWhlZHJvbkdlb21ldHJ5O1xuXHQnbmd0LXR1YmUtZ2VvbWV0cnknOiBOZ3RUdWJlR2VvbWV0cnk7XG5cdCduZ3QtdG9ydXMta25vdC1nZW9tZXRyeSc6IE5ndFRvcnVzS25vdEdlb21ldHJ5O1xuXHQnbmd0LXRvcnVzLWdlb21ldHJ5JzogTmd0VG9ydXNHZW9tZXRyeTtcblx0J25ndC1zcGhlcmUtZ2VvbWV0cnknOiBOZ3RTcGhlcmVHZW9tZXRyeTtcblx0J25ndC1yaW5nLWdlb21ldHJ5JzogTmd0UmluZ0dlb21ldHJ5O1xuXHQnbmd0LXBsYW5lLWdlb21ldHJ5JzogTmd0UGxhbmVHZW9tZXRyeTtcblx0J25ndC1sYXRoZS1nZW9tZXRyeSc6IE5ndExhdGhlR2VvbWV0cnk7XG5cdCduZ3Qtc2hhcGUtZ2VvbWV0cnknOiBOZ3RTaGFwZUdlb21ldHJ5O1xuXHQnbmd0LWV4dHJ1ZGUtZ2VvbWV0cnknOiBOZ3RFeHRydWRlR2VvbWV0cnk7XG5cdCduZ3QtZWRnZXMtZ2VvbWV0cnknOiBOZ3RFZGdlc0dlb21ldHJ5O1xuXHQnbmd0LWNvbmUtZ2VvbWV0cnknOiBOZ3RDb25lR2VvbWV0cnk7XG5cdCduZ3QtY3lsaW5kZXItZ2VvbWV0cnknOiBOZ3RDeWxpbmRlckdlb21ldHJ5O1xuXHQnbmd0LWNpcmNsZS1nZW9tZXRyeSc6IE5ndENpcmNsZUdlb21ldHJ5O1xuXHQnbmd0LWJveC1nZW9tZXRyeSc6IE5ndEJveEdlb21ldHJ5O1xuXHQnbmd0LWNhcHN1bGUtZ2VvbWV0cnknOiBOZ3RDYXBzdWxlR2VvbWV0cnk7XG5cblx0Ly8gbWF0ZXJpYWxzXG5cdCduZ3Qtc2hhZG93LW1hdGVyaWFsJzogTmd0U2hhZG93TWF0ZXJpYWw7XG5cdCduZ3Qtc3ByaXRlLW1hdGVyaWFsJzogTmd0U3ByaXRlTWF0ZXJpYWw7XG5cdCduZ3QtcmF3LXNoYWRlci1tYXRlcmlhbCc6IE5ndFJhd1NoYWRlck1hdGVyaWFsO1xuXHQnbmd0LXNoYWRlci1tYXRlcmlhbCc6IE5ndFNoYWRlck1hdGVyaWFsO1xuXHQnbmd0LXBvaW50cy1tYXRlcmlhbCc6IE5ndFBvaW50c01hdGVyaWFsO1xuXHQnbmd0LW1lc2gtcGh5c2ljYWwtbWF0ZXJpYWwnOiBOZ3RNZXNoUGh5c2ljYWxNYXRlcmlhbDtcblx0J25ndC1tZXNoLXN0YW5kYXJkLW1hdGVyaWFsJzogTmd0TWVzaFN0YW5kYXJkTWF0ZXJpYWw7XG5cdCduZ3QtbWVzaC1waG9uZy1tYXRlcmlhbCc6IE5ndE1lc2hQaG9uZ01hdGVyaWFsO1xuXHQnbmd0LW1lc2gtdG9vbi1tYXRlcmlhbCc6IE5ndE1lc2hUb29uTWF0ZXJpYWw7XG5cdCduZ3QtbWVzaC1ub3JtYWwtbWF0ZXJpYWwnOiBOZ3RNZXNoTm9ybWFsTWF0ZXJpYWw7XG5cdCduZ3QtbWVzaC1sYW1iZXJ0LW1hdGVyaWFsJzogTmd0TWVzaExhbWJlcnRNYXRlcmlhbDtcblx0J25ndC1tZXNoLWRlcHRoLW1hdGVyaWFsJzogTmd0TWVzaERlcHRoTWF0ZXJpYWw7XG5cdCduZ3QtbWVzaC1kaXN0YW5jZS1tYXRlcmlhbCc6IE5ndE1lc2hEaXN0YW5jZU1hdGVyaWFsO1xuXHQnbmd0LW1lc2gtYmFzaWMtbWF0ZXJpYWwnOiBOZ3RNZXNoQmFzaWNNYXRlcmlhbDtcblx0J25ndC1tZXNoLW1hdGNhcC1tYXRlcmlhbCc6IE5ndE1lc2hNYXRjYXBNYXRlcmlhbDtcblx0J25ndC1saW5lLWRhc2hlZC1tYXRlcmlhbCc6IE5ndExpbmVEYXNoZWRNYXRlcmlhbDtcblx0J25ndC1saW5lLWJhc2ljLW1hdGVyaWFsJzogTmd0TGluZUJhc2ljTWF0ZXJpYWw7XG5cblx0Ly8gcHJpbWl0aXZlXG5cdCduZ3QtcHJpbWl0aXZlJzogTmd0UHJpbWl0aXZlO1xuXG5cdC8vIHJhd1ZhbHVlXG5cdCduZ3QtdmFsdWUnOiBOZ3RWYWx1ZTtcblxuXHQvLyBsaWdodHMgYW5kIG90aGVyXG5cdCduZ3Qtc3BvdC1saWdodC1zaGFkb3cnOiBOZ3RTcG90TGlnaHRTaGFkb3c7XG5cdCduZ3Qtc3BvdC1saWdodCc6IE5ndFNwb3RMaWdodDtcblx0J25ndC1wb2ludC1saWdodCc6IE5ndFBvaW50TGlnaHQ7XG5cdCduZ3QtcmVjdC1hcmVhLWxpZ2h0JzogTmd0UmVjdEFyZWFMaWdodDtcblx0J25ndC1oZW1pc3BoZXJlLWxpZ2h0JzogTmd0SGVtaXNwaGVyZUxpZ2h0O1xuXHQnbmd0LWRpcmVjdGlvbmFsLWxpZ2h0LXNoYWRvdyc6IE5ndERpcmVjdGlvbmFsTGlnaHRTaGFkb3c7XG5cdCduZ3QtZGlyZWN0aW9uYWwtbGlnaHQnOiBOZ3REaXJlY3Rpb25hbExpZ2h0O1xuXHQnbmd0LWFtYmllbnQtbGlnaHQnOiBOZ3RBbWJpZW50TGlnaHQ7XG5cdCduZ3QtbGlnaHQtc2hhZG93JzogTmd0TGlnaHRTaGFkb3c7XG5cdCduZ3QtYW1iaWVudC1saWdodC1wcm9iZSc6IE5ndEFtYmllbnRMaWdodFByb2JlO1xuXHQnbmd0LWhlbWlzcGhlcmUtbGlnaHQtcHJvYmUnOiBOZ3RIZW1pc3BoZXJlTGlnaHRQcm9iZTtcblx0J25ndC1saWdodC1wcm9iZSc6IE5ndExpZ2h0UHJvYmU7XG5cblx0Ly8gaGVscGVyc1xuXHQnbmd0LXNwb3QtbGlnaHQtaGVscGVyJzogTmd0U3BvdExpZ2h0SGVscGVyO1xuXHQnbmd0LXNrZWxldG9uLWhlbHBlcic6IE5ndFNrZWxldG9uSGVscGVyO1xuXHQnbmd0LXBvaW50LWxpZ2h0LWhlbHBlcic6IE5ndFBvaW50TGlnaHRIZWxwZXI7XG5cdCduZ3QtaGVtaXNwaGVyZS1saWdodC1oZWxwZXInOiBOZ3RIZW1pc3BoZXJlTGlnaHRIZWxwZXI7XG5cdCduZ3QtZ3JpZC1oZWxwZXInOiBOZ3RHcmlkSGVscGVyO1xuXHQnbmd0LXBvbGFyLWdyaWQtaGVscGVyJzogTmd0UG9sYXJHcmlkSGVscGVyO1xuXHQnbmd0LWRpcmVjdGlvbmFsLWxpZ2h0LWhlbHBlcic6IE5ndERpcmVjdGlvbmFsTGlnaHRIZWxwZXI7XG5cdCduZ3QtY2FtZXJhLWhlbHBlcic6IE5ndENhbWVyYUhlbHBlcjtcblx0J25ndC1ib3gtaGVscGVyJzogTmd0Qm94SGVscGVyO1xuXHQnbmd0LWJveDMtaGVscGVyJzogTmd0Qm94M0hlbHBlcjtcblx0J25ndC1wbGFuZS1oZWxwZXInOiBOZ3RQbGFuZUhlbHBlcjtcblx0J25ndC1hcnJvdy1oZWxwZXInOiBOZ3RBcnJvd0hlbHBlcjtcblx0J25ndC1heGVzLWhlbHBlcic6IE5ndEF4ZXNIZWxwZXI7XG5cblx0Ly8gdGV4dHVyZXNcblx0J25ndC10ZXh0dXJlJzogTmd0VGV4dHVyZTtcblx0J25ndC12aWRlby10ZXh0dXJlJzogTmd0VmlkZW9UZXh0dXJlO1xuXHQnbmd0LWRhdGEtdGV4dHVyZSc6IE5ndERhdGFUZXh0dXJlO1xuXHQnbmd0LWRhdGEzRC10ZXh0dXJlJzogTmd0RGF0YTNEVGV4dHVyZTtcblx0J25ndC1jb21wcmVzc2VkLXRleHR1cmUnOiBOZ3RDb21wcmVzc2VkVGV4dHVyZTtcblx0J25ndC1jdWJlLXRleHR1cmUnOiBOZ3RDdWJlVGV4dHVyZTtcblx0J25ndC1jYW52YXMtdGV4dHVyZSc6IE5ndENhbnZhc1RleHR1cmU7XG5cdCduZ3QtZGVwdGgtdGV4dHVyZSc6IE5ndERlcHRoVGV4dHVyZTtcblxuXHQvLyBtaXNjXG5cdCduZ3QtcmF5Y2FzdGVyJzogTmd0UmF5Y2FzdGVyO1xuXHQnbmd0LXZlY3RvcjInOiBOZ3RWZWN0b3IyTm9kZTtcblx0J25ndC12ZWN0b3IzJzogTmd0VmVjdG9yM05vZGU7XG5cdCduZ3QtdmVjdG9yNCc6IE5ndFZlY3RvcjROb2RlO1xuXHQnbmd0LWV1bGVyJzogTmd0RXVsZXJOb2RlO1xuXHQnbmd0LW1hdHJpeDMnOiBOZ3RNYXRyaXgzTm9kZTtcblx0J25ndC1tYXRyaXg0JzogTmd0TWF0cml4NE5vZGU7XG5cdCduZ3QtcXVhdGVybmlvbic6IE5ndFF1YXRlcm5pb25Ob2RlO1xuXHQnbmd0LWJ1ZmZlci1hdHRyaWJ1dGUnOiBOZ3RCdWZmZXJBdHRyaWJ1dGU7XG5cdCduZ3QtZmxvYXQxNi1idWZmZXItYXR0cmlidXRlJzogTmd0RmxvYXQxNkJ1ZmZlckF0dHJpYnV0ZTtcblx0J25ndC1mbG9hdDMyLWJ1ZmZlci1hdHRyaWJ1dGUnOiBOZ3RGbG9hdDMyQnVmZmVyQXR0cmlidXRlO1xuXHQnbmd0LWZsb2F0NjQtYnVmZmVyLWF0dHJpYnV0ZSc6IE5ndEZsb2F0NjRCdWZmZXJBdHRyaWJ1dGU7XG5cdCduZ3QtaW50OC1idWZmZXItYXR0cmlidXRlJzogTmd0SW50OEJ1ZmZlckF0dHJpYnV0ZTtcblx0J25ndC1pbnQxNi1idWZmZXItYXR0cmlidXRlJzogTmd0SW50MTZCdWZmZXJBdHRyaWJ1dGU7XG5cdCduZ3QtaW50MzItYnVmZmVyLWF0dHJpYnV0ZSc6IE5ndEludDMyQnVmZmVyQXR0cmlidXRlO1xuXHQnbmd0LXVuaXQ4LWJ1ZmZlci1hdHRyaWJ1dGUnOiBOZ3RVaW50OEJ1ZmZlckF0dHJpYnV0ZTtcblx0J25ndC11bml0MTYtYnVmZmVyLWF0dHJpYnV0ZSc6IE5ndFVpbnQxNkJ1ZmZlckF0dHJpYnV0ZTtcblx0J25ndC11bml0MzItYnVmZmVyLWF0dHJpYnV0ZSc6IE5ndFVpbnQzMkJ1ZmZlckF0dHJpYnV0ZTtcblx0J25ndC1pbnN0YW5jZWQtYnVmZmVyLWF0dHJpYnV0ZSc6IE5ndEluc3RhbmNlZEJ1ZmZlckF0dHJpYnV0ZTtcblx0J25ndC1jb2xvcic6IE5ndENvbG9yO1xuXHQnbmd0LWZvZyc6IE5ndEZvZztcblx0J25ndC1mb2ctZXhwMic6IE5ndEZvZ0V4cDI7XG5cdCduZ3Qtc2hhcGUnOiBOZ3RTaGFwZTtcbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuXHRpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIGV4dGVuZHMgVGhyZWVFbGVtZW50cyB7fVxufVxuIl19
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhyZWUtdHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi90aHJlZS10eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0QW1iaWVudExpZ2h0LFxuXHRBcnJheUNhbWVyYSxcblx0QXJyb3dIZWxwZXIsXG5cdEF1ZGlvLFxuXHRBeGVzSGVscGVyLFxuXHRCYXRjaGVkTWVzaCxcblx0Qm9uZSxcblx0Qm94M0hlbHBlcixcblx0Qm94R2VvbWV0cnksXG5cdEJveEhlbHBlcixcblx0QnVmZmVyQXR0cmlidXRlLFxuXHRCdWZmZXJHZW9tZXRyeSxcblx0Q2FtZXJhLFxuXHRDYW1lcmFIZWxwZXIsXG5cdENhbnZhc1RleHR1cmUsXG5cdENhcHN1bGVHZW9tZXRyeSxcblx0Q2lyY2xlR2VvbWV0cnksXG5cdENvbG9yLFxuXHRDb2xvclJlcHJlc2VudGF0aW9uLFxuXHRDb21wcmVzc2VkVGV4dHVyZSxcblx0Q29uZUdlb21ldHJ5LFxuXHRDdWJlQ2FtZXJhLFxuXHRDdWJlVGV4dHVyZSxcblx0Q3lsaW5kZXJHZW9tZXRyeSxcblx0RGF0YTNEVGV4dHVyZSxcblx0RGF0YVRleHR1cmUsXG5cdERlcHRoVGV4dHVyZSxcblx0RGlyZWN0aW9uYWxMaWdodCxcblx0RGlyZWN0aW9uYWxMaWdodEhlbHBlcixcblx0RGlyZWN0aW9uYWxMaWdodFNoYWRvdyxcblx0RG9kZWNhaGVkcm9uR2VvbWV0cnksXG5cdEVkZ2VzR2VvbWV0cnksXG5cdEV1bGVyLFxuXHRFeHRydWRlR2VvbWV0cnksXG5cdEZsb2F0MTZCdWZmZXJBdHRyaWJ1dGUsXG5cdEZsb2F0MzJCdWZmZXJBdHRyaWJ1dGUsXG5cdEZvZyxcblx0Rm9nRXhwMixcblx0R3JpZEhlbHBlcixcblx0R3JvdXAsXG5cdEhlbWlzcGhlcmVMaWdodCxcblx0SGVtaXNwaGVyZUxpZ2h0SGVscGVyLFxuXHRJY29zYWhlZHJvbkdlb21ldHJ5LFxuXHRJbnN0YW5jZWRCdWZmZXJBdHRyaWJ1dGUsXG5cdEluc3RhbmNlZEJ1ZmZlckdlb21ldHJ5LFxuXHRJbnN0YW5jZWRNZXNoLFxuXHRJbnQxNkJ1ZmZlckF0dHJpYnV0ZSxcblx0SW50MzJCdWZmZXJBdHRyaWJ1dGUsXG5cdEludDhCdWZmZXJBdHRyaWJ1dGUsXG5cdExPRCxcblx0TGF0aGVHZW9tZXRyeSxcblx0TGF5ZXJzLFxuXHRMaWdodCxcblx0TGlnaHRQcm9iZSxcblx0TGlnaHRTaGFkb3csXG5cdExpbmUsXG5cdExpbmVCYXNpY01hdGVyaWFsLFxuXHRMaW5lQmFzaWNNYXRlcmlhbFBhcmFtZXRlcnMsXG5cdExpbmVEYXNoZWRNYXRlcmlhbCxcblx0TGluZURhc2hlZE1hdGVyaWFsUGFyYW1ldGVycyxcblx0TGluZUxvb3AsXG5cdExpbmVTZWdtZW50cyxcblx0TWF0ZXJpYWwsXG5cdE1hdHJpeDMsXG5cdE1hdHJpeDQsXG5cdE1lc2gsXG5cdE1lc2hCYXNpY01hdGVyaWFsLFxuXHRNZXNoQmFzaWNNYXRlcmlhbFBhcmFtZXRlcnMsXG5cdE1lc2hEZXB0aE1hdGVyaWFsLFxuXHRNZXNoRGVwdGhNYXRlcmlhbFBhcmFtZXRlcnMsXG5cdE1lc2hEaXN0YW5jZU1hdGVyaWFsLFxuXHRNZXNoRGlzdGFuY2VNYXRlcmlhbFBhcmFtZXRlcnMsXG5cdE1lc2hMYW1iZXJ0TWF0ZXJpYWwsXG5cdE1lc2hMYW1iZXJ0TWF0ZXJpYWxQYXJhbWV0ZXJzLFxuXHRNZXNoTWF0Y2FwTWF0ZXJpYWwsXG5cdE1lc2hNYXRjYXBNYXRlcmlhbFBhcmFtZXRlcnMsXG5cdE1lc2hOb3JtYWxNYXRlcmlhbCxcblx0TWVzaE5vcm1hbE1hdGVyaWFsUGFyYW1ldGVycyxcblx0TWVzaFBob25nTWF0ZXJpYWwsXG5cdE1lc2hQaG9uZ01hdGVyaWFsUGFyYW1ldGVycyxcblx0TWVzaFBoeXNpY2FsTWF0ZXJpYWwsXG5cdE1lc2hQaHlzaWNhbE1hdGVyaWFsUGFyYW1ldGVycyxcblx0TWVzaFN0YW5kYXJkTWF0ZXJpYWwsXG5cdE1lc2hTdGFuZGFyZE1hdGVyaWFsUGFyYW1ldGVycyxcblx0TWVzaFRvb25NYXRlcmlhbCxcblx0TWVzaFRvb25NYXRlcmlhbFBhcmFtZXRlcnMsXG5cdE9iamVjdDNELFxuXHRPY3RhaGVkcm9uR2VvbWV0cnksXG5cdE9ydGhvZ3JhcGhpY0NhbWVyYSxcblx0UGVyc3BlY3RpdmVDYW1lcmEsXG5cdFBsYW5lR2VvbWV0cnksXG5cdFBsYW5lSGVscGVyLFxuXHRQb2ludExpZ2h0LFxuXHRQb2ludExpZ2h0SGVscGVyLFxuXHRQb2ludHMsXG5cdFBvaW50c01hdGVyaWFsLFxuXHRQb2ludHNNYXRlcmlhbFBhcmFtZXRlcnMsXG5cdFBvbGFyR3JpZEhlbHBlcixcblx0UG9seWhlZHJvbkdlb21ldHJ5LFxuXHRQb3NpdGlvbmFsQXVkaW8sXG5cdFF1YXRlcm5pb24sXG5cdFJhd1NoYWRlck1hdGVyaWFsLFxuXHRSYXljYXN0ZXIsXG5cdFJlY3RBcmVhTGlnaHQsXG5cdFJpbmdHZW9tZXRyeSxcblx0U2NlbmUsXG5cdFNoYWRlck1hdGVyaWFsLFxuXHRTaGFkZXJNYXRlcmlhbFBhcmFtZXRlcnMsXG5cdFNoYWRvd01hdGVyaWFsLFxuXHRTaGFwZSxcblx0U2hhcGVHZW9tZXRyeSxcblx0U2tlbGV0b24sXG5cdFNrZWxldG9uSGVscGVyLFxuXHRTa2lubmVkTWVzaCxcblx0U3BoZXJlR2VvbWV0cnksXG5cdFNwb3RMaWdodCxcblx0U3BvdExpZ2h0SGVscGVyLFxuXHRTcG90TGlnaHRTaGFkb3csXG5cdFNwcml0ZSxcblx0U3ByaXRlTWF0ZXJpYWwsXG5cdFNwcml0ZU1hdGVyaWFsUGFyYW1ldGVycyxcblx0VGV0cmFoZWRyb25HZW9tZXRyeSxcblx0VGV4dHVyZSxcblx0VG9ydXNHZW9tZXRyeSxcblx0VG9ydXNLbm90R2VvbWV0cnksXG5cdFR1YmVHZW9tZXRyeSxcblx0VWludDE2QnVmZmVyQXR0cmlidXRlLFxuXHRVaW50MzJCdWZmZXJBdHRyaWJ1dGUsXG5cdFVpbnQ4QnVmZmVyQXR0cmlidXRlLFxuXHRWZWN0b3IyLFxuXHRWZWN0b3IzLFxuXHRWZWN0b3I0LFxuXHRWaWRlb1RleHR1cmUsXG5cdFdpcmVmcmFtZUdlb21ldHJ5LFxufSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBOZ3RBZnRlckF0dGFjaCwgTmd0QXR0YWNoRnVuY3Rpb24sIE5ndEJlZm9yZVJlbmRlckV2ZW50LCBOZ3RFdmVudEhhbmRsZXJzLCBOZ3RJbnN0YW5jZU5vZGUgfSBmcm9tICcuL3R5cGVzJztcblxudHlwZSBFeHBhbmQ8VD4gPSBUIGV4dGVuZHMgaW5mZXIgTyA/IHsgW0sgaW4ga2V5b2YgT106IE9bS10gfSA6IG5ldmVyO1xudHlwZSBOb0V2ZW50PFQ+ID0gT21pdDxULCAnYWRkRXZlbnRMaXN0ZW5lcicgfCAncmVtb3ZlRXZlbnRMaXN0ZW5lcic+O1xuXG5leHBvcnQgdHlwZSBOZ3ROb25GdW5jdGlvbktleXM8VD4gPSB7IFtLIGluIGtleW9mIFRdLT86IFRbS10gZXh0ZW5kcyBGdW5jdGlvbiA/IG5ldmVyIDogSyB9W2tleW9mIFRdO1xuZXhwb3J0IHR5cGUgTmd0T3ZlcndyaXRlPFQsIE8+ID0gT21pdDxULCBOZ3ROb25GdW5jdGlvbktleXM8Tz4+ICYgTztcblxuZXhwb3J0IHR5cGUgTmd0RXh0ZW5kZWRDb2xvcnM8VD4gPSB7XG5cdFtLIGluIGtleW9mIFRdOiBUW0tdIGV4dGVuZHMgQ29sb3IgfCB1bmRlZmluZWQgPyBDb2xvclJlcHJlc2VudGF0aW9uIDogVFtLXTtcbn07XG5cbi8qKlxuICogSWYgKipUKiogY29udGFpbnMgYSBjb25zdHJ1Y3RvciwgQHNlZSBDb25zdHJ1Y3RvclBhcmFtZXRlcnMgbXVzdCBiZSB1c2VkLCBvdGhlcndpc2UgKipUKiouXG4gKi9cbnR5cGUgTmd0QXJndW1lbnRzPFQ+ID0gVCBleHRlbmRzIG5ldyAoLi4uYXJnczogYW55KSA9PiBhbnkgPyBDb25zdHJ1Y3RvclBhcmFtZXRlcnM8VD4gOiBUO1xuXG5leHBvcnQgdHlwZSBOZ3RFdWxlciA9IEV1bGVyIHwgUGFyYW1ldGVyczxFdWxlclsnc2V0J10+O1xuZXhwb3J0IHR5cGUgTmd0TWF0cml4NCA9IE1hdHJpeDQgfCBQYXJhbWV0ZXJzPE1hdHJpeDRbJ3NldCddPiB8IFJlYWRvbmx5PE1hdHJpeDRbJ3NldCddPjtcblxuLyoqXG4gKiBUdXJuIGFuIGltcGxlbWVudGF0aW9uIG9mIFZlY3RvciBpbiB0byB0aGUgdHlwZSB0aGF0IGFuIHIzZiBjb21wb25lbnQgd291bGQgYWNjZXB0IGFzIGEgcHJvcC5cbiAqL1xudHlwZSBOZ3RWZWN0b3JMaWtlPFZlY3RvckNsYXNzIGV4dGVuZHMgVmVjdG9yMiB8IFZlY3RvcjMgfCBWZWN0b3I0PiA9XG5cdHwgVmVjdG9yQ2xhc3Ncblx0fCBQYXJhbWV0ZXJzPFZlY3RvckNsYXNzWydzZXQnXT5cblx0fCBSZWFkb25seTxQYXJhbWV0ZXJzPFZlY3RvckNsYXNzWydzZXQnXT4+XG5cdHwgUGFyYW1ldGVyczxWZWN0b3JDbGFzc1snc2V0U2NhbGFyJ10+WzBdO1xuXG5leHBvcnQgdHlwZSBOZ3RWZWN0b3IyID0gTmd0VmVjdG9yTGlrZTxWZWN0b3IyPjtcbmV4cG9ydCB0eXBlIE5ndFZlY3RvcjMgPSBOZ3RWZWN0b3JMaWtlPFZlY3RvcjM+O1xuZXhwb3J0IHR5cGUgTmd0VmVjdG9yNCA9IE5ndFZlY3Rvckxpa2U8VmVjdG9yND47XG5leHBvcnQgdHlwZSBOZ3RMYXllcnMgPSBMYXllcnMgfCBQYXJhbWV0ZXJzPExheWVyc1snc2V0J10+WzBdO1xuZXhwb3J0IHR5cGUgTmd0UXVhdGVybmlvbiA9IFF1YXRlcm5pb24gfCBQYXJhbWV0ZXJzPFF1YXRlcm5pb25bJ3NldCddPjtcblxuZXhwb3J0IHR5cGUgVGhyZWVEaXNwb3NlRXZlbnQgPSB7IHR5cGU6ICdkaXNwb3NlJzsgdGFyZ2V0OiBOZ3RJbnN0YW5jZU5vZGUgfTtcbmV4cG9ydCB0eXBlIFRocmVlQWRkZWRFdmVudCA9IHsgdHlwZTogJ2FkZGVkJzsgdGFyZ2V0OiBOZ3RJbnN0YW5jZU5vZGUgfTtcbmV4cG9ydCB0eXBlIFRocmVlUmVtb3ZlZEV2ZW50ID0geyB0eXBlOiAncmVtb3ZlZCc7IHRhcmdldDogTmd0SW5zdGFuY2VOb2RlIH07XG5leHBvcnQgdHlwZSBUaHJlZUNoaWxkQWRkZWRFdmVudCA9IHsgdHlwZTogJ2NoaWxkYWRkZWQnOyB0YXJnZXQ6IE5ndEluc3RhbmNlTm9kZTsgY2hpbGQ6IE5ndEluc3RhbmNlTm9kZSB9O1xuZXhwb3J0IHR5cGUgVGhyZWVDaGlsZFJlbW92ZWRFdmVudCA9IHsgdHlwZTogJ2NoaWxkcmVtb3ZlZCc7IHRhcmdldDogTmd0SW5zdGFuY2VOb2RlOyBjaGlsZDogTmd0SW5zdGFuY2VOb2RlIH07XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmd0Tm9kZUV2ZW50TWFwPFRPcmlnaW5hbD4ge1xuXHRhdHRhY2hlZDogTmd0QWZ0ZXJBdHRhY2g8Tmd0SW5zdGFuY2VOb2RlLCBUT3JpZ2luYWw+O1xuXHR1cGRhdGVkOiBUT3JpZ2luYWw7XG5cdGJlZm9yZVJlbmRlcjogTmd0QmVmb3JlUmVuZGVyRXZlbnQ8VE9yaWdpbmFsPjtcblx0Ly8gTk9URTogdGhpcyBpcyBuYW1lZCBcImRpc3Bvc2VkXCIgdG8gZGlmZmVyZW50aWF0ZSBpdCBmcm9tIFtkaXNwb3NlXSBwcm9wZXJ0eS5cblx0ZGlzcG9zZWQ6IFRocmVlRGlzcG9zZUV2ZW50O1xufVxuXG5leHBvcnQgdHlwZSBOZ3ROb2RlRWxlbWVudDxUT3JpZ2luYWwsIFRDb25zdHJ1Y3Rvcj4gPSB7XG5cdGF0dGFjaDogc3RyaW5nIHwgc3RyaW5nW10gfCBOZ3RBdHRhY2hGdW5jdGlvbjtcblx0YWRkRXZlbnRMaXN0ZW5lcjxURXZlbnRLZXkgZXh0ZW5kcyBrZXlvZiBOZ3ROb2RlRXZlbnRNYXA8VE9yaWdpbmFsPj4oXG5cdFx0dHlwZTogVEV2ZW50S2V5LFxuXHRcdGxpc3RlbmVyOiAodGhpczogTmd0Tm9kZUVsZW1lbnQ8VE9yaWdpbmFsLCBUQ29uc3RydWN0b3I+LCBldjogTmd0Tm9kZUV2ZW50TWFwPFRPcmlnaW5hbD5bVEV2ZW50S2V5XSkgPT4gYW55LFxuXHQpOiB2b2lkO1xuXHRyZW1vdmVFdmVudExpc3RlbmVyPFRFdmVudEtleSBleHRlbmRzIGtleW9mIE5ndE5vZGVFdmVudE1hcDxUT3JpZ2luYWw+Pihcblx0XHR0eXBlOiBURXZlbnRLZXksXG5cdFx0bGlzdGVuZXI6ICh0aGlzOiBOZ3ROb2RlRWxlbWVudDxUT3JpZ2luYWwsIFRDb25zdHJ1Y3Rvcj4sIGV2OiBOZ3ROb2RlRXZlbnRNYXA8VE9yaWdpbmFsPltURXZlbnRLZXldKSA9PiBhbnksXG5cdCk6IHZvaWQ7XG5cdF9fbmd0X2FyZ3NfXzogTmd0QXJndW1lbnRzPFRDb25zdHJ1Y3Rvcj47XG59O1xuXG5leHBvcnQgdHlwZSBOZ3ROb2RlPFRPcmlnaW5hbCwgVENvbnN0cnVjdG9yLCBUTm9FdmVudCA9IE5vRXZlbnQ8VE9yaWdpbmFsPj4gPSBFeHBhbmQ8XG5cdE5ndEV4dGVuZGVkQ29sb3JzPE5ndE92ZXJ3cml0ZTxQYXJ0aWFsPFROb0V2ZW50PiwgTmd0Tm9kZUVsZW1lbnQ8VE9yaWdpbmFsLCBUQ29uc3RydWN0b3I+Pj5cbj47XG5cbmV4cG9ydCB0eXBlIE5ndE9iamVjdDNERXZlbnRzTWFwID0ge1xuXHRbVEV2ZW50IGluIGtleW9mIE5ndEV2ZW50SGFuZGxlcnNdLT86IFBhcmFtZXRlcnM8Tm9uTnVsbGFibGU8Tmd0RXZlbnRIYW5kbGVyc1tURXZlbnRdPj5bMF07XG59ICYge1xuXHRhZGRlZDogVGhyZWVBZGRlZEV2ZW50O1xuXHRyZW1vdmVkOiBUaHJlZVJlbW92ZWRFdmVudDtcblx0Y2hpbGRhZGRlZDogVGhyZWVDaGlsZEFkZGVkRXZlbnQ7XG5cdGNoaWxkcmVtb3ZlZDogVGhyZWVDaGlsZFJlbW92ZWRFdmVudDtcbn07XG5cbmV4cG9ydCB0eXBlIE5ndEFsbE9iamVjdDNERXZlbnRzTWFwID0gTmd0T2JqZWN0M0RFdmVudHNNYXAgJiBOZ3ROb2RlRXZlbnRNYXA8Tmd0SW5zdGFuY2VOb2RlPjtcblxuZXhwb3J0IHR5cGUgTmd0T2JqZWN0M0ROb2RlPFRPcmlnaW5hbCwgVENvbnN0cnVjdG9yLCBUTm9FdmVudCA9IE5vRXZlbnQ8VE9yaWdpbmFsPj4gPSBFeHBhbmQ8XG5cdE5ndE92ZXJ3cml0ZTxcblx0XHROZ3ROb2RlPFRPcmlnaW5hbCwgVENvbnN0cnVjdG9yLCBUTm9FdmVudD4sXG5cdFx0e1xuXHRcdFx0cG9zaXRpb246IE5ndFZlY3RvcjM7XG5cdFx0XHR1cDogTmd0VmVjdG9yMztcblx0XHRcdHNjYWxlOiBOZ3RWZWN0b3IzO1xuXHRcdFx0cm90YXRpb246IE5ndEV1bGVyO1xuXHRcdFx0bWF0cml4OiBOZ3RNYXRyaXg0O1xuXHRcdFx0cXVhdGVybmlvbjogTmd0UXVhdGVybmlvbjtcblx0XHRcdGxheWVyczogTmd0TGF5ZXJzO1xuXHRcdFx0ZGlzcG9zZTogKCgpID0+IHZvaWQpIHwgbnVsbDtcblx0XHRcdHJheWNhc3Q6IE9iamVjdDNEWydyYXljYXN0J10gfCBudWxsO1xuXHRcdFx0YWRkRXZlbnRMaXN0ZW5lcjxURXZlbnRLZXkgZXh0ZW5kcyBrZXlvZiBOZ3RBbGxPYmplY3QzREV2ZW50c01hcD4oXG5cdFx0XHRcdHR5cGU6IFRFdmVudEtleSxcblx0XHRcdFx0bGlzdGVuZXI6ICh0aGlzOiBOZ3RPYmplY3QzRE5vZGU8VE9yaWdpbmFsLCBUQ29uc3RydWN0b3I+LCBldjogTmd0QWxsT2JqZWN0M0RFdmVudHNNYXBbVEV2ZW50S2V5XSkgPT4gYW55LFxuXHRcdFx0KTogdm9pZDtcblx0XHRcdHJlbW92ZUV2ZW50TGlzdGVuZXI8VEV2ZW50S2V5IGV4dGVuZHMga2V5b2YgTmd0QWxsT2JqZWN0M0RFdmVudHNNYXA+KFxuXHRcdFx0XHR0eXBlOiBURXZlbnRLZXksXG5cdFx0XHRcdGxpc3RlbmVyOiAodGhpczogTmd0T2JqZWN0M0ROb2RlPFRPcmlnaW5hbCwgVENvbnN0cnVjdG9yPiwgZXY6IE5ndEFsbE9iamVjdDNERXZlbnRzTWFwW1RFdmVudEtleV0pID0+IGFueSxcblx0XHRcdCk6IHZvaWQ7XG5cdFx0fVxuXHQ+XG4+O1xuXG5leHBvcnQgdHlwZSBOZ3RHZW9tZXRyeTxUR2VvbWV0cnkgZXh0ZW5kcyBCdWZmZXJHZW9tZXRyeSwgVENvbnN0cnVjdG9yPiA9IE5ndE5vZGU8VEdlb21ldHJ5LCBUQ29uc3RydWN0b3I+O1xuZXhwb3J0IHR5cGUgTmd0TWF0ZXJpYWw8VE1hdGVyaWFsIGV4dGVuZHMgTWF0ZXJpYWwsIFRDb25zdHJ1Y3Rvcj4gPSBOZ3ROb2RlPFRNYXRlcmlhbCwgVENvbnN0cnVjdG9yPjtcbmV4cG9ydCB0eXBlIE5ndExpZ2h0PFQgZXh0ZW5kcyBMaWdodCwgUD4gPSBOZ3RPYmplY3QzRE5vZGU8VCwgUD47XG5cbmV4cG9ydCB0eXBlIE5ndE9iamVjdDNEID0gTmd0T2JqZWN0M0ROb2RlPE9iamVjdDNELCB0eXBlb2YgT2JqZWN0M0Q+O1xuZXhwb3J0IHR5cGUgTmd0QXVkaW8gPSBOZ3RPYmplY3QzRE5vZGU8QXVkaW8sIHR5cGVvZiBBdWRpbz47XG5leHBvcnQgdHlwZSBOZ3RBdWRpb0xpc3RlbmVyID0gTmd0T2JqZWN0M0ROb2RlPEF1ZGlvTGlzdGVuZXIsIHR5cGVvZiBBdWRpb0xpc3RlbmVyPjtcbmV4cG9ydCB0eXBlIE5ndFBvc2l0aW9uYWxBdWRpbyA9IE5ndE9iamVjdDNETm9kZTxQb3NpdGlvbmFsQXVkaW8sIHR5cGVvZiBQb3NpdGlvbmFsQXVkaW8+O1xuXG5leHBvcnQgdHlwZSBOZ3RNZXNoID0gTmd0T2JqZWN0M0ROb2RlPE1lc2gsIHR5cGVvZiBNZXNoPjtcbmV4cG9ydCB0eXBlIE5ndEluc3RhbmNlZE1lc2ggPSBOZ3RPYmplY3QzRE5vZGU8SW5zdGFuY2VkTWVzaCwgdHlwZW9mIEluc3RhbmNlZE1lc2g+O1xuZXhwb3J0IHR5cGUgTmd0QmF0Y2hlZE1lc2ggPSBOZ3RPYmplY3QzRE5vZGU8QmF0Y2hlZE1lc2gsIHR5cGVvZiBCYXRjaGVkTWVzaD47XG5leHBvcnQgdHlwZSBOZ3RTY2VuZSA9IE5ndE9iamVjdDNETm9kZTxTY2VuZSwgdHlwZW9mIFNjZW5lPjtcbmV4cG9ydCB0eXBlIE5ndFNwcml0ZSA9IE5ndE9iamVjdDNETm9kZTxTcHJpdGUsIHR5cGVvZiBTcHJpdGU+O1xuZXhwb3J0IHR5cGUgTmd0TE9EID0gTmd0T2JqZWN0M0ROb2RlPExPRCwgdHlwZW9mIExPRD47XG5leHBvcnQgdHlwZSBOZ3RTa2lubmVkTWVzaCA9IE5ndE9iamVjdDNETm9kZTxTa2lubmVkTWVzaCwgdHlwZW9mIFNraW5uZWRNZXNoPjtcblxuZXhwb3J0IHR5cGUgTmd0U2tlbGV0b24gPSBOZ3RPYmplY3QzRE5vZGU8U2tlbGV0b24sIHR5cGVvZiBTa2VsZXRvbj47XG5leHBvcnQgdHlwZSBOZ3RCb25lID0gTmd0T2JqZWN0M0ROb2RlPEJvbmUsIHR5cGVvZiBCb25lPjtcbmV4cG9ydCB0eXBlIE5ndExpbmUgPSBOZ3RPYmplY3QzRE5vZGU8TGluZSwgdHlwZW9mIExpbmU+O1xuZXhwb3J0IHR5cGUgTmd0TGluZVNlZ21lbnRzID0gTmd0T2JqZWN0M0ROb2RlPExpbmVTZWdtZW50cywgdHlwZW9mIExpbmVTZWdtZW50cz47XG5leHBvcnQgdHlwZSBOZ3RMaW5lTG9vcCA9IE5ndE9iamVjdDNETm9kZTxMaW5lTG9vcCwgdHlwZW9mIExpbmVMb29wPjtcbmV4cG9ydCB0eXBlIE5ndFBvaW50cyA9IE5ndE9iamVjdDNETm9kZTxQb2ludHMsIHR5cGVvZiBQb2ludHM+O1xuZXhwb3J0IHR5cGUgTmd0R3JvdXAgPSBOZ3RPYmplY3QzRE5vZGU8R3JvdXAsIHR5cGVvZiBHcm91cD47XG5cbmV4cG9ydCB0eXBlIE5ndENhbWVyYU5vZGUgPSBOZ3RPYmplY3QzRE5vZGU8Q2FtZXJhLCB0eXBlb2YgQ2FtZXJhPjtcbmV4cG9ydCB0eXBlIE5ndFBlcnNwZWN0aXZlQ2FtZXJhID0gTmd0T2JqZWN0M0ROb2RlPFBlcnNwZWN0aXZlQ2FtZXJhLCB0eXBlb2YgUGVyc3BlY3RpdmVDYW1lcmE+O1xuZXhwb3J0IHR5cGUgTmd0T3J0aG9ncmFwaGljQ2FtZXJhID0gTmd0T2JqZWN0M0ROb2RlPE9ydGhvZ3JhcGhpY0NhbWVyYSwgdHlwZW9mIE9ydGhvZ3JhcGhpY0NhbWVyYT47XG5leHBvcnQgdHlwZSBOZ3RDdWJlQ2FtZXJhID0gTmd0T2JqZWN0M0ROb2RlPEN1YmVDYW1lcmEsIHR5cGVvZiBDdWJlQ2FtZXJhPjtcbmV4cG9ydCB0eXBlIE5ndEFycmF5Q2FtZXJhID0gTmd0T2JqZWN0M0ROb2RlPEFycmF5Q2FtZXJhLCB0eXBlb2YgQXJyYXlDYW1lcmE+O1xuXG5leHBvcnQgdHlwZSBOZ3RJbnN0YW5jZWRCdWZmZXJHZW9tZXRyeSA9IE5ndEdlb21ldHJ5PEluc3RhbmNlZEJ1ZmZlckdlb21ldHJ5LCB0eXBlb2YgSW5zdGFuY2VkQnVmZmVyR2VvbWV0cnk+O1xuZXhwb3J0IHR5cGUgTmd0QnVmZmVyR2VvbWV0cnkgPSBOZ3RHZW9tZXRyeTxCdWZmZXJHZW9tZXRyeSwgdHlwZW9mIEJ1ZmZlckdlb21ldHJ5PjtcbmV4cG9ydCB0eXBlIE5ndFdpcmVmcmFtZUdlb21ldHJ5ID0gTmd0R2VvbWV0cnk8V2lyZWZyYW1lR2VvbWV0cnksIHR5cGVvZiBXaXJlZnJhbWVHZW9tZXRyeT47XG5leHBvcnQgdHlwZSBOZ3RUZXRyYWhlZHJvbkdlb21ldHJ5ID0gTmd0R2VvbWV0cnk8VGV0cmFoZWRyb25HZW9tZXRyeSwgdHlwZW9mIFRldHJhaGVkcm9uR2VvbWV0cnk+O1xuZXhwb3J0IHR5cGUgTmd0T2N0YWhlZHJvbkdlb21ldHJ5ID0gTmd0R2VvbWV0cnk8T2N0YWhlZHJvbkdlb21ldHJ5LCB0eXBlb2YgT2N0YWhlZHJvbkdlb21ldHJ5PjtcbmV4cG9ydCB0eXBlIE5ndEljb3NhaGVkcm9uR2VvbWV0cnkgPSBOZ3RHZW9tZXRyeTxJY29zYWhlZHJvbkdlb21ldHJ5LCB0eXBlb2YgSWNvc2FoZWRyb25HZW9tZXRyeT47XG5leHBvcnQgdHlwZSBOZ3REb2RlY2FoZWRyb25HZW9tZXRyeSA9IE5ndEdlb21ldHJ5PERvZGVjYWhlZHJvbkdlb21ldHJ5LCB0eXBlb2YgRG9kZWNhaGVkcm9uR2VvbWV0cnk+O1xuZXhwb3J0IHR5cGUgTmd0UG9seWhlZHJvbkdlb21ldHJ5ID0gTmd0R2VvbWV0cnk8UG9seWhlZHJvbkdlb21ldHJ5LCB0eXBlb2YgUG9seWhlZHJvbkdlb21ldHJ5PjtcbmV4cG9ydCB0eXBlIE5ndFR1YmVHZW9tZXRyeSA9IE5ndEdlb21ldHJ5PFR1YmVHZW9tZXRyeSwgdHlwZW9mIFR1YmVHZW9tZXRyeT47XG5leHBvcnQgdHlwZSBOZ3RUb3J1c0tub3RHZW9tZXRyeSA9IE5ndEdlb21ldHJ5PFRvcnVzS25vdEdlb21ldHJ5LCB0eXBlb2YgVG9ydXNLbm90R2VvbWV0cnk+O1xuZXhwb3J0IHR5cGUgTmd0VG9ydXNHZW9tZXRyeSA9IE5ndEdlb21ldHJ5PFRvcnVzR2VvbWV0cnksIHR5cGVvZiBUb3J1c0dlb21ldHJ5PjtcbmV4cG9ydCB0eXBlIE5ndFNwaGVyZUdlb21ldHJ5ID0gTmd0R2VvbWV0cnk8U3BoZXJlR2VvbWV0cnksIHR5cGVvZiBTcGhlcmVHZW9tZXRyeT47XG5leHBvcnQgdHlwZSBOZ3RSaW5nR2VvbWV0cnkgPSBOZ3RHZW9tZXRyeTxSaW5nR2VvbWV0cnksIHR5cGVvZiBSaW5nR2VvbWV0cnk+O1xuZXhwb3J0IHR5cGUgTmd0UGxhbmVHZW9tZXRyeSA9IE5ndEdlb21ldHJ5PFBsYW5lR2VvbWV0cnksIHR5cGVvZiBQbGFuZUdlb21ldHJ5PjtcbmV4cG9ydCB0eXBlIE5ndExhdGhlR2VvbWV0cnkgPSBOZ3RHZW9tZXRyeTxMYXRoZUdlb21ldHJ5LCB0eXBlb2YgTGF0aGVHZW9tZXRyeT47XG5leHBvcnQgdHlwZSBOZ3RTaGFwZUdlb21ldHJ5ID0gTmd0R2VvbWV0cnk8U2hhcGVHZW9tZXRyeSwgdHlwZW9mIFNoYXBlR2VvbWV0cnk+O1xuZXhwb3J0IHR5cGUgTmd0RXh0cnVkZUdlb21ldHJ5ID0gTmd0R2VvbWV0cnk8RXh0cnVkZUdlb21ldHJ5LCB0eXBlb2YgRXh0cnVkZUdlb21ldHJ5PjtcbmV4cG9ydCB0eXBlIE5ndEVkZ2VzR2VvbWV0cnkgPSBOZ3RHZW9tZXRyeTxFZGdlc0dlb21ldHJ5LCB0eXBlb2YgRWRnZXNHZW9tZXRyeT47XG5leHBvcnQgdHlwZSBOZ3RDb25lR2VvbWV0cnkgPSBOZ3RHZW9tZXRyeTxDb25lR2VvbWV0cnksIHR5cGVvZiBDb25lR2VvbWV0cnk+O1xuZXhwb3J0IHR5cGUgTmd0Q3lsaW5kZXJHZW9tZXRyeSA9IE5ndEdlb21ldHJ5PEN5bGluZGVyR2VvbWV0cnksIHR5cGVvZiBDeWxpbmRlckdlb21ldHJ5PjtcbmV4cG9ydCB0eXBlIE5ndENpcmNsZUdlb21ldHJ5ID0gTmd0R2VvbWV0cnk8Q2lyY2xlR2VvbWV0cnksIHR5cGVvZiBDaXJjbGVHZW9tZXRyeT47XG5leHBvcnQgdHlwZSBOZ3RCb3hHZW9tZXRyeSA9IE5ndEdlb21ldHJ5PEJveEdlb21ldHJ5LCB0eXBlb2YgQm94R2VvbWV0cnk+O1xuZXhwb3J0IHR5cGUgTmd0Q2Fwc3VsZUdlb21ldHJ5ID0gTmd0R2VvbWV0cnk8Q2Fwc3VsZUdlb21ldHJ5LCB0eXBlb2YgQ2Fwc3VsZUdlb21ldHJ5PjtcblxuZXhwb3J0IHR5cGUgTmd0U2hhZG93TWF0ZXJpYWwgPSBOZ3RNYXRlcmlhbDxTaGFkb3dNYXRlcmlhbCwgW1NoYWRlck1hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0U3ByaXRlTWF0ZXJpYWwgPSBOZ3RNYXRlcmlhbDxTcHJpdGVNYXRlcmlhbCwgW1Nwcml0ZU1hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0UmF3U2hhZGVyTWF0ZXJpYWwgPSBOZ3RNYXRlcmlhbDxSYXdTaGFkZXJNYXRlcmlhbCwgW1NoYWRlck1hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0U2hhZGVyTWF0ZXJpYWwgPSBOZ3RNYXRlcmlhbDxTaGFkZXJNYXRlcmlhbCwgW1NoYWRlck1hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0UG9pbnRzTWF0ZXJpYWwgPSBOZ3RNYXRlcmlhbDxQb2ludHNNYXRlcmlhbCwgW1BvaW50c01hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0TWVzaFBoeXNpY2FsTWF0ZXJpYWwgPSBOZ3RNYXRlcmlhbDxNZXNoUGh5c2ljYWxNYXRlcmlhbCwgW01lc2hQaHlzaWNhbE1hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0TWVzaFN0YW5kYXJkTWF0ZXJpYWwgPSBOZ3RNYXRlcmlhbDxNZXNoU3RhbmRhcmRNYXRlcmlhbCwgW01lc2hTdGFuZGFyZE1hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0TWVzaFBob25nTWF0ZXJpYWwgPSBOZ3RNYXRlcmlhbDxNZXNoUGhvbmdNYXRlcmlhbCwgW01lc2hQaG9uZ01hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0TWVzaFRvb25NYXRlcmlhbCA9IE5ndE1hdGVyaWFsPE1lc2hUb29uTWF0ZXJpYWwsIFtNZXNoVG9vbk1hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0TWVzaE5vcm1hbE1hdGVyaWFsID0gTmd0TWF0ZXJpYWw8TWVzaE5vcm1hbE1hdGVyaWFsLCBbTWVzaE5vcm1hbE1hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0TWVzaExhbWJlcnRNYXRlcmlhbCA9IE5ndE1hdGVyaWFsPE1lc2hMYW1iZXJ0TWF0ZXJpYWwsIFtNZXNoTGFtYmVydE1hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0TWVzaERlcHRoTWF0ZXJpYWwgPSBOZ3RNYXRlcmlhbDxNZXNoRGVwdGhNYXRlcmlhbCwgW01lc2hEZXB0aE1hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0TWVzaERpc3RhbmNlTWF0ZXJpYWwgPSBOZ3RNYXRlcmlhbDxNZXNoRGlzdGFuY2VNYXRlcmlhbCwgW01lc2hEaXN0YW5jZU1hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0TWVzaEJhc2ljTWF0ZXJpYWwgPSBOZ3RNYXRlcmlhbDxNZXNoQmFzaWNNYXRlcmlhbCwgW01lc2hCYXNpY01hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0TWVzaE1hdGNhcE1hdGVyaWFsID0gTmd0TWF0ZXJpYWw8TWVzaE1hdGNhcE1hdGVyaWFsLCBbTWVzaE1hdGNhcE1hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0TGluZURhc2hlZE1hdGVyaWFsID0gTmd0TWF0ZXJpYWw8TGluZURhc2hlZE1hdGVyaWFsLCBbTGluZURhc2hlZE1hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0TGluZUJhc2ljTWF0ZXJpYWwgPSBOZ3RNYXRlcmlhbDxMaW5lQmFzaWNNYXRlcmlhbCwgW0xpbmVCYXNpY01hdGVyaWFsUGFyYW1ldGVyc10+O1xuXG5leHBvcnQgdHlwZSBOZ3RQcmltaXRpdmUgPSBOZ3ROb2RlRWxlbWVudDxhbnksIGFueT47XG5leHBvcnQgdHlwZSBOZ3RWYWx1ZSA9IE5ndE5vZGU8eyByYXdWYWx1ZTogYW55IH0sIHt9PjtcblxuZXhwb3J0IHR5cGUgTmd0TGlnaHRTaGFkb3cgPSBOZ3ROb2RlPExpZ2h0U2hhZG93LCB0eXBlb2YgTGlnaHRTaGFkb3c+O1xuZXhwb3J0IHR5cGUgTmd0U3BvdExpZ2h0U2hhZG93ID0gTmd0Tm9kZTxTcG90TGlnaHRTaGFkb3csIHR5cGVvZiBTcG90TGlnaHRTaGFkb3c+O1xuZXhwb3J0IHR5cGUgTmd0RGlyZWN0aW9uYWxMaWdodFNoYWRvdyA9IE5ndE5vZGU8RGlyZWN0aW9uYWxMaWdodFNoYWRvdywgdHlwZW9mIERpcmVjdGlvbmFsTGlnaHRTaGFkb3c+O1xuXG5leHBvcnQgdHlwZSBOZ3RTcG90TGlnaHQgPSBOZ3RMaWdodDxTcG90TGlnaHQsIHR5cGVvZiBTcG90TGlnaHQ+O1xuZXhwb3J0IHR5cGUgTmd0UG9pbnRMaWdodCA9IE5ndExpZ2h0PFBvaW50TGlnaHQsIHR5cGVvZiBQb2ludExpZ2h0PjtcbmV4cG9ydCB0eXBlIE5ndFJlY3RBcmVhTGlnaHQgPSBOZ3RMaWdodDxSZWN0QXJlYUxpZ2h0LCB0eXBlb2YgUmVjdEFyZWFMaWdodD47XG5leHBvcnQgdHlwZSBOZ3RIZW1pc3BoZXJlTGlnaHQgPSBOZ3RMaWdodDxIZW1pc3BoZXJlTGlnaHQsIHR5cGVvZiBIZW1pc3BoZXJlTGlnaHQ+O1xuZXhwb3J0IHR5cGUgTmd0RGlyZWN0aW9uYWxMaWdodCA9IE5ndExpZ2h0PERpcmVjdGlvbmFsTGlnaHQsIHR5cGVvZiBEaXJlY3Rpb25hbExpZ2h0PjtcbmV4cG9ydCB0eXBlIE5ndEFtYmllbnRMaWdodCA9IE5ndExpZ2h0PEFtYmllbnRMaWdodCwgdHlwZW9mIEFtYmllbnRMaWdodD47XG5leHBvcnQgdHlwZSBOZ3RMaWdodFByb2JlID0gTmd0TGlnaHQ8TGlnaHRQcm9iZSwgdHlwZW9mIExpZ2h0UHJvYmU+O1xuXG5leHBvcnQgdHlwZSBOZ3RTcG90TGlnaHRIZWxwZXIgPSBOZ3RPYmplY3QzRE5vZGU8U3BvdExpZ2h0SGVscGVyLCB0eXBlb2YgU3BvdExpZ2h0SGVscGVyPjtcbmV4cG9ydCB0eXBlIE5ndFNrZWxldG9uSGVscGVyID0gTmd0T2JqZWN0M0ROb2RlPFNrZWxldG9uSGVscGVyLCB0eXBlb2YgU2tlbGV0b25IZWxwZXI+O1xuZXhwb3J0IHR5cGUgTmd0UG9pbnRMaWdodEhlbHBlciA9IE5ndE9iamVjdDNETm9kZTxQb2ludExpZ2h0SGVscGVyLCB0eXBlb2YgUG9pbnRMaWdodEhlbHBlcj47XG5leHBvcnQgdHlwZSBOZ3RIZW1pc3BoZXJlTGlnaHRIZWxwZXIgPSBOZ3RPYmplY3QzRE5vZGU8SGVtaXNwaGVyZUxpZ2h0SGVscGVyLCB0eXBlb2YgSGVtaXNwaGVyZUxpZ2h0SGVscGVyPjtcbmV4cG9ydCB0eXBlIE5ndEdyaWRIZWxwZXIgPSBOZ3RPYmplY3QzRE5vZGU8R3JpZEhlbHBlciwgdHlwZW9mIEdyaWRIZWxwZXI+O1xuZXhwb3J0IHR5cGUgTmd0UG9sYXJHcmlkSGVscGVyID0gTmd0T2JqZWN0M0ROb2RlPFBvbGFyR3JpZEhlbHBlciwgdHlwZW9mIFBvbGFyR3JpZEhlbHBlcj47XG5leHBvcnQgdHlwZSBOZ3REaXJlY3Rpb25hbExpZ2h0SGVscGVyID0gTmd0T2JqZWN0M0ROb2RlPERpcmVjdGlvbmFsTGlnaHRIZWxwZXIsIHR5cGVvZiBEaXJlY3Rpb25hbExpZ2h0SGVscGVyPjtcbmV4cG9ydCB0eXBlIE5ndENhbWVyYUhlbHBlciA9IE5ndE9iamVjdDNETm9kZTxDYW1lcmFIZWxwZXIsIHR5cGVvZiBDYW1lcmFIZWxwZXI+O1xuZXhwb3J0IHR5cGUgTmd0Qm94SGVscGVyID0gTmd0T2JqZWN0M0ROb2RlPEJveEhlbHBlciwgdHlwZW9mIEJveEhlbHBlcj47XG5leHBvcnQgdHlwZSBOZ3RCb3gzSGVscGVyID0gTmd0T2JqZWN0M0ROb2RlPEJveDNIZWxwZXIsIHR5cGVvZiBCb3gzSGVscGVyPjtcbmV4cG9ydCB0eXBlIE5ndFBsYW5lSGVscGVyID0gTmd0T2JqZWN0M0ROb2RlPFBsYW5lSGVscGVyLCB0eXBlb2YgUGxhbmVIZWxwZXI+O1xuZXhwb3J0IHR5cGUgTmd0QXJyb3dIZWxwZXIgPSBOZ3RPYmplY3QzRE5vZGU8QXJyb3dIZWxwZXIsIHR5cGVvZiBBcnJvd0hlbHBlcj47XG5leHBvcnQgdHlwZSBOZ3RBeGVzSGVscGVyID0gTmd0T2JqZWN0M0ROb2RlPEF4ZXNIZWxwZXIsIHR5cGVvZiBBeGVzSGVscGVyPjtcblxuZXhwb3J0IHR5cGUgTmd0VGV4dHVyZSA9IE5ndE5vZGU8VGV4dHVyZSwgdHlwZW9mIFRleHR1cmU+O1xuZXhwb3J0IHR5cGUgTmd0VmlkZW9UZXh0dXJlID0gTmd0Tm9kZTxWaWRlb1RleHR1cmUsIHR5cGVvZiBWaWRlb1RleHR1cmU+O1xuZXhwb3J0IHR5cGUgTmd0RGF0YVRleHR1cmUgPSBOZ3ROb2RlPERhdGFUZXh0dXJlLCB0eXBlb2YgRGF0YVRleHR1cmU+O1xuZXhwb3J0IHR5cGUgTmd0RGF0YTNEVGV4dHVyZSA9IE5ndE5vZGU8RGF0YTNEVGV4dHVyZSwgdHlwZW9mIERhdGEzRFRleHR1cmU+O1xuZXhwb3J0IHR5cGUgTmd0Q29tcHJlc3NlZFRleHR1cmUgPSBOZ3ROb2RlPENvbXByZXNzZWRUZXh0dXJlLCB0eXBlb2YgQ29tcHJlc3NlZFRleHR1cmU+O1xuZXhwb3J0IHR5cGUgTmd0Q3ViZVRleHR1cmUgPSBOZ3ROb2RlPEN1YmVUZXh0dXJlLCB0eXBlb2YgQ3ViZVRleHR1cmU+O1xuZXhwb3J0IHR5cGUgTmd0Q2FudmFzVGV4dHVyZSA9IE5ndE5vZGU8Q2FudmFzVGV4dHVyZSwgdHlwZW9mIENhbnZhc1RleHR1cmU+O1xuZXhwb3J0IHR5cGUgTmd0RGVwdGhUZXh0dXJlID0gTmd0Tm9kZTxEZXB0aFRleHR1cmUsIHR5cGVvZiBEZXB0aFRleHR1cmU+O1xuXG5leHBvcnQgdHlwZSBOZ3RSYXljYXN0ZXIgPSBOZ3ROb2RlPFJheWNhc3RlciwgdHlwZW9mIFJheWNhc3Rlcj47XG5leHBvcnQgdHlwZSBOZ3RWZWN0b3IyTm9kZSA9IE5ndE5vZGU8VmVjdG9yMiwgdHlwZW9mIFZlY3RvcjI+O1xuZXhwb3J0IHR5cGUgTmd0VmVjdG9yM05vZGUgPSBOZ3ROb2RlPFZlY3RvcjMsIHR5cGVvZiBWZWN0b3IzPjtcbmV4cG9ydCB0eXBlIE5ndFZlY3RvcjROb2RlID0gTmd0Tm9kZTxWZWN0b3I0LCB0eXBlb2YgVmVjdG9yND47XG5leHBvcnQgdHlwZSBOZ3RFdWxlck5vZGUgPSBOZ3ROb2RlPEV1bGVyLCB0eXBlb2YgRXVsZXI+O1xuZXhwb3J0IHR5cGUgTmd0TWF0cml4M05vZGUgPSBOZ3ROb2RlPE1hdHJpeDMsIHR5cGVvZiBNYXRyaXgzPjtcbmV4cG9ydCB0eXBlIE5ndE1hdHJpeDROb2RlID0gTmd0Tm9kZTxNYXRyaXg0LCB0eXBlb2YgTWF0cml4ND47XG5leHBvcnQgdHlwZSBOZ3RRdWF0ZXJuaW9uTm9kZSA9IE5ndE5vZGU8UXVhdGVybmlvbiwgdHlwZW9mIFF1YXRlcm5pb24+O1xuZXhwb3J0IHR5cGUgTmd0QnVmZmVyQXR0cmlidXRlID0gTmd0Tm9kZTxCdWZmZXJBdHRyaWJ1dGUsIHR5cGVvZiBCdWZmZXJBdHRyaWJ1dGU+O1xuZXhwb3J0IHR5cGUgTmd0RmxvYXQxNkJ1ZmZlckF0dHJpYnV0ZSA9IE5ndE5vZGU8RmxvYXQxNkJ1ZmZlckF0dHJpYnV0ZSwgdHlwZW9mIEZsb2F0MTZCdWZmZXJBdHRyaWJ1dGU+O1xuZXhwb3J0IHR5cGUgTmd0RmxvYXQzMkJ1ZmZlckF0dHJpYnV0ZSA9IE5ndE5vZGU8RmxvYXQzMkJ1ZmZlckF0dHJpYnV0ZSwgdHlwZW9mIEZsb2F0MzJCdWZmZXJBdHRyaWJ1dGU+O1xuZXhwb3J0IHR5cGUgTmd0SW50OEJ1ZmZlckF0dHJpYnV0ZSA9IE5ndE5vZGU8SW50OEJ1ZmZlckF0dHJpYnV0ZSwgdHlwZW9mIEludDhCdWZmZXJBdHRyaWJ1dGU+O1xuZXhwb3J0IHR5cGUgTmd0SW50MTZCdWZmZXJBdHRyaWJ1dGUgPSBOZ3ROb2RlPEludDE2QnVmZmVyQXR0cmlidXRlLCB0eXBlb2YgSW50MTZCdWZmZXJBdHRyaWJ1dGU+O1xuZXhwb3J0IHR5cGUgTmd0SW50MzJCdWZmZXJBdHRyaWJ1dGUgPSBOZ3ROb2RlPEludDMyQnVmZmVyQXR0cmlidXRlLCB0eXBlb2YgSW50MzJCdWZmZXJBdHRyaWJ1dGU+O1xuZXhwb3J0IHR5cGUgTmd0VWludDhCdWZmZXJBdHRyaWJ1dGUgPSBOZ3ROb2RlPFVpbnQ4QnVmZmVyQXR0cmlidXRlLCB0eXBlb2YgVWludDhCdWZmZXJBdHRyaWJ1dGU+O1xuZXhwb3J0IHR5cGUgTmd0VWludDE2QnVmZmVyQXR0cmlidXRlID0gTmd0Tm9kZTxVaW50MTZCdWZmZXJBdHRyaWJ1dGUsIHR5cGVvZiBVaW50MTZCdWZmZXJBdHRyaWJ1dGU+O1xuZXhwb3J0IHR5cGUgTmd0VWludDMyQnVmZmVyQXR0cmlidXRlID0gTmd0Tm9kZTxVaW50MzJCdWZmZXJBdHRyaWJ1dGUsIHR5cGVvZiBVaW50MzJCdWZmZXJBdHRyaWJ1dGU+O1xuZXhwb3J0IHR5cGUgTmd0SW5zdGFuY2VkQnVmZmVyQXR0cmlidXRlID0gTmd0Tm9kZTxJbnN0YW5jZWRCdWZmZXJBdHRyaWJ1dGUsIHR5cGVvZiBJbnN0YW5jZWRCdWZmZXJBdHRyaWJ1dGU+O1xuZXhwb3J0IHR5cGUgTmd0Q29sb3IgPSBOZ3ROb2RlPENvbG9yLCBDb2xvclJlcHJlc2VudGF0aW9uPjtcbmV4cG9ydCB0eXBlIE5ndEZvZyA9IE5ndE5vZGU8Rm9nLCB0eXBlb2YgRm9nPjtcbmV4cG9ydCB0eXBlIE5ndEZvZ0V4cDIgPSBOZ3ROb2RlPEZvZ0V4cDIsIHR5cGVvZiBGb2dFeHAyPjtcbmV4cG9ydCB0eXBlIE5ndFNoYXBlID0gTmd0Tm9kZTxTaGFwZSwgdHlwZW9mIFNoYXBlPjtcblxuZXhwb3J0IGludGVyZmFjZSBUaHJlZUVsZW1lbnRzIHtcblx0LyoqXG5cdCAqIEBmcm9tIG5vZGVfbW9kdWxlcy9AdHlwZXMvdGhyZWUvc3JjL2NvcmUvT2JqZWN0M0QuZC50c1xuXHQgKi9cblx0J25ndC1vYmplY3QzRCc6IE5ndE9iamVjdDNEO1xuXG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy9hdWRpby9BdWRpby5kLnRzXG5cdCAqL1xuXHQnbmd0LWF1ZGlvJzogTmd0QXVkaW87XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy9hdWRpby9BdWRpb0xpc3RlbmVyLmQudHNcblx0ICovXG5cdCduZ3QtYXVkaW8tbGlzdGVuZXInOiBOZ3RBdWRpb0xpc3RlbmVyO1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvYXVkaW8vUG9zaXRpb25hbEF1ZGlvLmQudHNcblx0ICovXG5cdCduZ3QtcG9zaXRpb25hbC1hdWRpbyc6IE5ndFBvc2l0aW9uYWxBdWRpbztcblxuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvb2JqZWN0cy9NZXNoLmQudHNcblx0ICovXG5cdCduZ3QtbWVzaCc6IE5ndE1lc2g7XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy9vYmplY3RzL0luc3RhbmNlZE1lc2guZC50c1xuXHQgKi9cblx0J25ndC1pbnN0YW5jZWQtbWVzaCc6IE5ndEluc3RhbmNlZE1lc2g7XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy9zY2VuZXMvU2NlbmUuZC50c1xuXHQgKi9cblx0J25ndC1zY2VuZSc6IE5ndFNjZW5lO1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvb2JqZWN0cy9TcHJpdGUuZC50c1xuXHQgKi9cblx0J25ndC1zcHJpdGUnOiBOZ3RTcHJpdGU7XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy9vYmplY3RzL0xPRC5kLnRzXG5cdCAqL1xuXHQnbmd0LWxPRCc6IE5ndExPRDtcblx0LyoqXG5cdCAqIEBmcm9tIG5vZGVfbW9kdWxlcy9AdHlwZXMvdGhyZWUvc3JjL29iamVjdHMvU2tpbm5lZE1lc2guZC50c1xuXHQgKi9cblx0J25ndC1za2lubmVkLW1lc2gnOiBOZ3RTa2lubmVkTWVzaDtcblx0LyoqXG5cdCAqIEBmcm9tIG5vZGVfbW9kdWxlcy9AdHlwZXMvdGhyZWUvc3JjL29iamVjdHMvU2tlbGV0b24uZC50c1xuXHQgKi9cblx0J25ndC1za2VsZXRvbic6IE5ndFNrZWxldG9uO1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvb2JqZWN0cy9Cb25lLmQudHNcblx0ICovXG5cdCduZ3QtYm9uZSc6IE5ndEJvbmU7XG5cblx0LyoqXG5cdCAqIEBmcm9tIG5vZGVfbW9kdWxlcy9AdHlwZXMvdGhyZWUvc3JjL29iamVjdHMvTGluZS5kLnRzXG5cdCAqL1xuXHQnbmd0LWxpbmUnOiBOZ3RMaW5lO1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvb2JqZWN0cy9MaW5lU2VnbWVudHMuZC50c1xuXHQgKi9cblx0J25ndC1saW5lLXNlZ21lbnRzJzogTmd0TGluZVNlZ21lbnRzO1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvb2JqZWN0cy9MaW5lTG9vcC5kLnRzXG5cdCAqL1xuXHQnbmd0LWxpbmUtbG9vcCc6IE5ndExpbmVMb29wO1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvb2JqZWN0cy9Qb2ludHMuZC50c1xuXHQgKi9cblx0J25ndC1wb2ludHMnOiBOZ3RQb2ludHM7XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy9vYmplY3RzL0dyb3VwLmQudHNcblx0ICovXG5cdCduZ3QtZ3JvdXAnOiBOZ3RHcm91cDtcblxuXHQvLyBjYW1lcmFzXG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy9jYW1lcmFzL0NhbWVyYS5kLnRzXG5cdCAqL1xuXHQnbmd0LWNhbWVyYSc6IE5ndENhbWVyYU5vZGU7XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy9jYW1lcmFzL1BlcnNwZWN0aXZlQ2FtZXJhLmQudHNcblx0ICovXG5cdCduZ3QtcGVyc3BlY3RpdmUtY2FtZXJhJzogTmd0UGVyc3BlY3RpdmVDYW1lcmE7XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy9jYW1lcmFzL09ydGhvZ3JhcGhpY0NhbWVyYS5kLnRzXG5cdCAqL1xuXHQnbmd0LW9ydGhvZ3JhcGhpYy1jYW1lcmEnOiBOZ3RPcnRob2dyYXBoaWNDYW1lcmE7XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy9jYW1lcmFzL0N1YmVDYW1lcmEuZC50c1xuXHQgKi9cblx0J25ndC1jdWJlLWNhbWVyYSc6IE5ndEN1YmVDYW1lcmE7XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy9jYW1lcmFzL0FycmF5Q2FtZXJhLmQudHNcblx0ICovXG5cdCduZ3QtYXJyYXktY2FtZXJhJzogTmd0QXJyYXlDYW1lcmE7XG5cblx0Ly8gZ2VvbWV0cnlcblx0LyoqXG5cdCAqIEBmcm9tIG5vZGVfbW9kdWxlcy9AdHlwZXMvdGhyZWUvc3JjL2NvcmUvSW5zdGFuY2VkQnVmZmVyR2VvbWV0cnkuZC50c1xuXHQgKi9cblx0J25ndC1pbnN0YW5jZWQtYnVmZmVyLWdlb21ldHJ5JzogTmd0SW5zdGFuY2VkQnVmZmVyR2VvbWV0cnk7XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy9jb3JlL0J1ZmZlckdlb21ldHJ5LmQudHNcblx0ICovXG5cdCduZ3QtYnVmZmVyLWdlb21ldHJ5JzogTmd0QnVmZmVyR2VvbWV0cnk7XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy9nZW9tZXRyaWVzL1dpcmVmcmFtZUdlb21ldHJ5LmQudHNcblx0ICovXG5cdCduZ3Qtd2lyZWZyYW1lLWdlb21ldHJ5JzogTmd0V2lyZWZyYW1lR2VvbWV0cnk7XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy9nZW9tZXRyaWVzL1RldHJhaGVkcm9uR2VvbWV0cnkuZC50c1xuXHQgKi9cblx0J25ndC10ZXRyYWhlZHJvbi1nZW9tZXRyeSc6IE5ndFRldHJhaGVkcm9uR2VvbWV0cnk7XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy9nZW9tZXRyaWVzL09jdGFoZWRyb25HZW9tZXRyeS5kLnRzXG5cdCAqL1xuXHQnbmd0LW9jdGFoZWRyb24tZ2VvbWV0cnknOiBOZ3RPY3RhaGVkcm9uR2VvbWV0cnk7XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy9nZW9tZXRyaWVzL0ljb3NhaGVkcm9uR2VvbWV0cnkuZC50c1xuXHQgKi9cblx0J25ndC1pY29zYWhlZHJvbi1nZW9tZXRyeSc6IE5ndEljb3NhaGVkcm9uR2VvbWV0cnk7XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy9nZW9tZXRyaWVzL1BvbHloZWRyb25HZW9tZXRyeS5kLnRzXG5cdCAqL1xuXHQnbmd0LXBvbHloZWRyb24tZ2VvbWV0cnknOiBOZ3RQb2x5aGVkcm9uR2VvbWV0cnk7XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy9nZW9tZXRyaWVzL0RvZGVjYWhlZHJvbkdlb21ldHJ5LmQudHNcblx0ICovXG5cdCduZ3QtZG9kZWNhaGVkcm9uLWdlb21ldHJ5JzogTmd0RG9kZWNhaGVkcm9uR2VvbWV0cnk7XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy9nZW9tZXRyaWVzL1R1YmVHZW9tZXRyeS5kLnRzXG5cdCAqL1xuXHQnbmd0LXR1YmUtZ2VvbWV0cnknOiBOZ3RUdWJlR2VvbWV0cnk7XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy9nZW9tZXRyaWVzL1RvcnVzS25vdEdlb21ldHJ5LmQudHNcblx0ICovXG5cdCduZ3QtdG9ydXMta25vdC1nZW9tZXRyeSc6IE5ndFRvcnVzS25vdEdlb21ldHJ5O1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvZ2VvbWV0cmllcy9Ub3J1c0dlb21ldHJ5LmQudHNcblx0ICovXG5cdCduZ3QtdG9ydXMtZ2VvbWV0cnknOiBOZ3RUb3J1c0dlb21ldHJ5O1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvZ2VvbWV0cmllcy9TcGhlcmVHZW9tZXRyeS5kLnRzXG5cdCAqL1xuXHQnbmd0LXNwaGVyZS1nZW9tZXRyeSc6IE5ndFNwaGVyZUdlb21ldHJ5O1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvZ2VvbWV0cmllcy9SaW5nR2VvbWV0cnkuZC50c1xuXHQgKi9cblx0J25ndC1yaW5nLWdlb21ldHJ5JzogTmd0UmluZ0dlb21ldHJ5O1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvZ2VvbWV0cmllcy9QbGFuZUdlb21ldHJ5LmQudHNcblx0ICovXG5cdCduZ3QtcGxhbmUtZ2VvbWV0cnknOiBOZ3RQbGFuZUdlb21ldHJ5O1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvZ2VvbWV0cmllcy9MYXRoZUdlb21ldHJ5LmQudHNcblx0ICovXG5cdCduZ3QtbGF0aGUtZ2VvbWV0cnknOiBOZ3RMYXRoZUdlb21ldHJ5O1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvZ2VvbWV0cmllcy9TaGFwZUdlb21ldHJ5LmQudHNcblx0ICovXG5cdCduZ3Qtc2hhcGUtZ2VvbWV0cnknOiBOZ3RTaGFwZUdlb21ldHJ5O1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvZ2VvbWV0cmllcy9FeHRydWRlR2VvbWV0cnkuZC50c1xuXHQgKi9cblx0J25ndC1leHRydWRlLWdlb21ldHJ5JzogTmd0RXh0cnVkZUdlb21ldHJ5O1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvZ2VvbWV0cmllcy9FZGdlc0dlb21ldHJ5LmQudHNcblx0ICovXG5cdCduZ3QtZWRnZXMtZ2VvbWV0cnknOiBOZ3RFZGdlc0dlb21ldHJ5O1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvZ2VvbWV0cmllcy9Db25lR2VvbWV0cnkuZC50c1xuXHQgKi9cblx0J25ndC1jb25lLWdlb21ldHJ5JzogTmd0Q29uZUdlb21ldHJ5O1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvZ2VvbWV0cmllcy9DeWxpbmRlckdlb21ldHJ5LmQudHNcblx0ICovXG5cdCduZ3QtY3lsaW5kZXItZ2VvbWV0cnknOiBOZ3RDeWxpbmRlckdlb21ldHJ5O1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvZ2VvbWV0cmllcy9DaXJjbGVHZW9tZXRyeS5kLnRzXG5cdCAqL1xuXHQnbmd0LWNpcmNsZS1nZW9tZXRyeSc6IE5ndENpcmNsZUdlb21ldHJ5O1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvZ2VvbWV0cmllcy9Cb3hHZW9tZXRyeS5kLnRzXG5cdCAqL1xuXHQnbmd0LWJveC1nZW9tZXRyeSc6IE5ndEJveEdlb21ldHJ5O1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvZ2VvbWV0cmllcy9DYXBzdWxlR2VvbWV0cnkuZC50c1xuXHQgKi9cblx0J25ndC1jYXBzdWxlLWdlb21ldHJ5JzogTmd0Q2Fwc3VsZUdlb21ldHJ5O1xuXG5cdC8vIG1hdGVyaWFsc1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvbWF0ZXJpYWxzL1NoYWRvd01hdGVyaWFsLmQudHNcblx0ICovXG5cdCduZ3Qtc2hhZG93LW1hdGVyaWFsJzogTmd0U2hhZG93TWF0ZXJpYWw7XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy9tYXRlcmlhbHMvU3ByaXRlTWF0ZXJpYWwuZC50c1xuXHQgKi9cblx0J25ndC1zcHJpdGUtbWF0ZXJpYWwnOiBOZ3RTcHJpdGVNYXRlcmlhbDtcblx0LyoqXG5cdCAqIEBmcm9tIG5vZGVfbW9kdWxlcy9AdHlwZXMvdGhyZWUvc3JjL21hdGVyaWFscy9SYXdTaGFkZXJNYXRlcmlhbC5kLnRzXG5cdCAqL1xuXHQnbmd0LXJhdy1zaGFkZXItbWF0ZXJpYWwnOiBOZ3RSYXdTaGFkZXJNYXRlcmlhbDtcblx0LyoqXG5cdCAqIEBmcm9tIG5vZGVfbW9kdWxlcy9AdHlwZXMvdGhyZWUvc3JjL21hdGVyaWFscy9TaGFkZXJNYXRlcmlhbC5kLnRzXG5cdCAqL1xuXHQnbmd0LXNoYWRlci1tYXRlcmlhbCc6IE5ndFNoYWRlck1hdGVyaWFsO1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvbWF0ZXJpYWxzL1BvaW50c01hdGVyaWFsLmQudHNcblx0ICovXG5cdCduZ3QtcG9pbnRzLW1hdGVyaWFsJzogTmd0UG9pbnRzTWF0ZXJpYWw7XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy9tYXRlcmlhbHMvTWVzaFBoeXNpY2FsTWF0ZXJpYWwuZC50c1xuXHQgKi9cblx0J25ndC1tZXNoLXBoeXNpY2FsLW1hdGVyaWFsJzogTmd0TWVzaFBoeXNpY2FsTWF0ZXJpYWw7XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy9tYXRlcmlhbHMvTWVzaFN0YW5kYXJkTWF0ZXJpYWwuZC50c1xuXHQgKi9cblx0J25ndC1tZXNoLXN0YW5kYXJkLW1hdGVyaWFsJzogTmd0TWVzaFN0YW5kYXJkTWF0ZXJpYWw7XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy9tYXRlcmlhbHMvTWVzaFBob25nTWF0ZXJpYWwuZC50c1xuXHQgKi9cblx0J25ndC1tZXNoLXBob25nLW1hdGVyaWFsJzogTmd0TWVzaFBob25nTWF0ZXJpYWw7XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy9tYXRlcmlhbHMvTWVzaFRvb25NYXRlcmlhbC5kLnRzXG5cdCAqL1xuXHQnbmd0LW1lc2gtdG9vbi1tYXRlcmlhbCc6IE5ndE1lc2hUb29uTWF0ZXJpYWw7XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy9tYXRlcmlhbHMvTWVzaE5vcm1hbE1hdGVyaWFsLmQudHNcblx0ICovXG5cdCduZ3QtbWVzaC1ub3JtYWwtbWF0ZXJpYWwnOiBOZ3RNZXNoTm9ybWFsTWF0ZXJpYWw7XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy9tYXRlcmlhbHMvTWVzaExhbWJlcnRNYXRlcmlhbC5kLnRzXG5cdCAqL1xuXHQnbmd0LW1lc2gtbGFtYmVydC1tYXRlcmlhbCc6IE5ndE1lc2hMYW1iZXJ0TWF0ZXJpYWw7XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy9tYXRlcmlhbHMvTWVzaERlcHRoTWF0ZXJpYWwuZC50c1xuXHQgKi9cblx0J25ndC1tZXNoLWRlcHRoLW1hdGVyaWFsJzogTmd0TWVzaERlcHRoTWF0ZXJpYWw7XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy9tYXRlcmlhbHMvTWVzaERpc3RhbmNlTWF0ZXJpYWwuZC50c1xuXHQgKi9cblx0J25ndC1tZXNoLWRpc3RhbmNlLW1hdGVyaWFsJzogTmd0TWVzaERpc3RhbmNlTWF0ZXJpYWw7XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy9tYXRlcmlhbHMvTWVzaEJhc2ljTWF0ZXJpYWwuZC50c1xuXHQgKi9cblx0J25ndC1tZXNoLWJhc2ljLW1hdGVyaWFsJzogTmd0TWVzaEJhc2ljTWF0ZXJpYWw7XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy9tYXRlcmlhbHMvTWVzaE1hdGNhcE1hdGVyaWFsLmQudHNcblx0ICovXG5cdCduZ3QtbWVzaC1tYXRjYXAtbWF0ZXJpYWwnOiBOZ3RNZXNoTWF0Y2FwTWF0ZXJpYWw7XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy9tYXRlcmlhbHMvTGluZURhc2hlZE1hdGVyaWFsLmQudHNcblx0ICovXG5cdCduZ3QtbGluZS1kYXNoZWQtbWF0ZXJpYWwnOiBOZ3RMaW5lRGFzaGVkTWF0ZXJpYWw7XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy9tYXRlcmlhbHMvTGluZUJhc2ljTWF0ZXJpYWwuZC50c1xuXHQgKi9cblx0J25ndC1saW5lLWJhc2ljLW1hdGVyaWFsJzogTmd0TGluZUJhc2ljTWF0ZXJpYWw7XG5cblx0Ly8gcHJpbWl0aXZlXG5cdCduZ3QtcHJpbWl0aXZlJzogTmd0UHJpbWl0aXZlO1xuXG5cdC8vIHJhd1ZhbHVlXG5cdCduZ3QtdmFsdWUnOiBOZ3RWYWx1ZTtcblxuXHQvLyBsaWdodHMgYW5kIG90aGVyXG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy9saWdodHMvU3BvdExpZ2h0U2hhZG93LmQudHNcblx0ICovXG5cdCduZ3Qtc3BvdC1saWdodC1zaGFkb3cnOiBOZ3RTcG90TGlnaHRTaGFkb3c7XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy9saWdodHMvU3BvdExpZ2h0LmQudHNcblx0ICovXG5cdCduZ3Qtc3BvdC1saWdodCc6IE5ndFNwb3RMaWdodDtcblx0LyoqXG5cdCAqIEBmcm9tIG5vZGVfbW9kdWxlcy9AdHlwZXMvdGhyZWUvc3JjL2xpZ2h0cy9Qb2ludExpZ2h0LmQudHNcblx0ICovXG5cdCduZ3QtcG9pbnQtbGlnaHQnOiBOZ3RQb2ludExpZ2h0O1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvbGlnaHRzL1JlY3RBcmVhTGlnaHQuZC50c1xuXHQgKi9cblx0J25ndC1yZWN0LWFyZWEtbGlnaHQnOiBOZ3RSZWN0QXJlYUxpZ2h0O1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvbGlnaHRzL0hlbWlzcGhlcmVMaWdodC5kLnRzXG5cdCAqL1xuXHQnbmd0LWhlbWlzcGhlcmUtbGlnaHQnOiBOZ3RIZW1pc3BoZXJlTGlnaHQ7XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy9saWdodHMvRGlyZWN0aW9uYWxMaWdodFNoYWRvdy5kLnRzXG5cdCAqL1xuXHQnbmd0LWRpcmVjdGlvbmFsLWxpZ2h0LXNoYWRvdyc6IE5ndERpcmVjdGlvbmFsTGlnaHRTaGFkb3c7XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy9saWdodHMvRGlyZWN0aW9uYWxMaWdodC5kLnRzXG5cdCAqL1xuXHQnbmd0LWRpcmVjdGlvbmFsLWxpZ2h0JzogTmd0RGlyZWN0aW9uYWxMaWdodDtcblx0LyoqXG5cdCAqIEBmcm9tIG5vZGVfbW9kdWxlcy9AdHlwZXMvdGhyZWUvc3JjL2xpZ2h0cy9BbWJpZW50TGlnaHQuZC50c1xuXHQgKi9cblx0J25ndC1hbWJpZW50LWxpZ2h0JzogTmd0QW1iaWVudExpZ2h0O1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvbGlnaHRzL0xpZ2h0U2hhZG93XG5cdCAqL1xuXHQnbmd0LWxpZ2h0LXNoYWRvdyc6IE5ndExpZ2h0U2hhZG93O1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvbGlnaHRzL0xpZ2h0UHJvYmUuZC50c1xuXHQgKi9cblx0J25ndC1saWdodC1wcm9iZSc6IE5ndExpZ2h0UHJvYmU7XG5cblx0Ly8gaGVscGVyc1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvaGVscGVycy9TcG90TGlnaHRIZWxwZXIuZC50c1xuXHQgKi9cblx0J25ndC1zcG90LWxpZ2h0LWhlbHBlcic6IE5ndFNwb3RMaWdodEhlbHBlcjtcblx0LyoqXG5cdCAqIEBmcm9tIG5vZGVfbW9kdWxlcy9AdHlwZXMvdGhyZWUvc3JjL2hlbHBlcnMvU2tlbGV0b25IZWxwZXIuZC50c1xuXHQgKi9cblx0J25ndC1za2VsZXRvbi1oZWxwZXInOiBOZ3RTa2VsZXRvbkhlbHBlcjtcblx0LyoqXG5cdCAqIEBmcm9tIG5vZGVfbW9kdWxlcy9AdHlwZXMvdGhyZWUvc3JjL2hlbHBlcnMvUG9pbnRMaWdodEhlbHBlci5kLnRzXG5cdCAqL1xuXHQnbmd0LXBvaW50LWxpZ2h0LWhlbHBlcic6IE5ndFBvaW50TGlnaHRIZWxwZXI7XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy9oZWxwZXJzL0hlbWlzcGhlcmVMaWdodEhlbHBlci5kLnRzXG5cdCAqL1xuXHQnbmd0LWhlbWlzcGhlcmUtbGlnaHQtaGVscGVyJzogTmd0SGVtaXNwaGVyZUxpZ2h0SGVscGVyO1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvaGVscGVycy9HcmlkSGVscGVyLmQudHNcblx0ICovXG5cdCduZ3QtZ3JpZC1oZWxwZXInOiBOZ3RHcmlkSGVscGVyO1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvaGVscGVycy9Qb2xhckdyaWRIZWxwZXIuZC50c1xuXHQgKi9cblx0J25ndC1wb2xhci1ncmlkLWhlbHBlcic6IE5ndFBvbGFyR3JpZEhlbHBlcjtcblx0LyoqXG5cdCAqIEBmcm9tIG5vZGVfbW9kdWxlcy9AdHlwZXMvdGhyZWUvc3JjL2hlbHBlcnMvRGlyZWN0aW9uYWxMaWdodEhlbHBlci5kLnRzXG5cdCAqL1xuXHQnbmd0LWRpcmVjdGlvbmFsLWxpZ2h0LWhlbHBlcic6IE5ndERpcmVjdGlvbmFsTGlnaHRIZWxwZXI7XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy9oZWxwZXJzL0NhbWVyYUhlbHBlci5kLnRzXG5cdCAqL1xuXHQnbmd0LWNhbWVyYS1oZWxwZXInOiBOZ3RDYW1lcmFIZWxwZXI7XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy9oZWxwZXJzL0JveEhlbHBlci5kLnRzXG5cdCAqL1xuXHQnbmd0LWJveC1oZWxwZXInOiBOZ3RCb3hIZWxwZXI7XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy9oZWxwZXJzL0JveDNIZWxwZXIuZC50c1xuXHQgKi9cblx0J25ndC1ib3gzLWhlbHBlcic6IE5ndEJveDNIZWxwZXI7XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy9oZWxwZXJzL1BsYW5lSGVscGVyLmQudHNcblx0ICovXG5cdCduZ3QtcGxhbmUtaGVscGVyJzogTmd0UGxhbmVIZWxwZXI7XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy9oZWxwZXJzL0Fycm93SGVscGVyLmQudHNcblx0ICovXG5cdCduZ3QtYXJyb3ctaGVscGVyJzogTmd0QXJyb3dIZWxwZXI7XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy9oZWxwZXJzL0F4ZXNIZWxwZXIuZC50c1xuXHQgKi9cblx0J25ndC1heGVzLWhlbHBlcic6IE5ndEF4ZXNIZWxwZXI7XG5cblx0Ly8gdGV4dHVyZXNcblx0LyoqXG5cdCAqIEBmcm9tIG5vZGVfbW9kdWxlcy9AdHlwZXMvdGhyZWUvc3JjL3RleHR1cmVzL1RleHR1cmUuZC50c1xuXHQgKi9cblx0J25ndC10ZXh0dXJlJzogTmd0VGV4dHVyZTtcblx0LyoqXG5cdCAqIEBmcm9tIG5vZGVfbW9kdWxlcy9AdHlwZXMvdGhyZWUvc3JjL3RleHR1cmVzL1ZpZGVvVGV4dHVyZS5kLnRzXG5cdCAqL1xuXHQnbmd0LXZpZGVvLXRleHR1cmUnOiBOZ3RWaWRlb1RleHR1cmU7XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy90ZXh0dXJlcy9EYXRhVGV4dHVyZS5kLnRzXG5cdCAqL1xuXHQnbmd0LWRhdGEtdGV4dHVyZSc6IE5ndERhdGFUZXh0dXJlO1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvdGV4dHVyZXMvRGF0YTNEVGV4dHVyZS5kLnRzXG5cdCAqL1xuXHQnbmd0LWRhdGEzRC10ZXh0dXJlJzogTmd0RGF0YTNEVGV4dHVyZTtcblx0LyoqXG5cdCAqIEBmcm9tIG5vZGVfbW9kdWxlcy9AdHlwZXMvdGhyZWUvc3JjL3RleHR1cmVzL0NvbXByZXNzZWRUZXh0dXJlLmQudHNcblx0ICovXG5cdCduZ3QtY29tcHJlc3NlZC10ZXh0dXJlJzogTmd0Q29tcHJlc3NlZFRleHR1cmU7XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy90ZXh0dXJlcy9DdWJlVGV4dHVyZS5kLnRzXG5cdCAqL1xuXHQnbmd0LWN1YmUtdGV4dHVyZSc6IE5ndEN1YmVUZXh0dXJlO1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvdGV4dHVyZXMvQ2FudmFzVGV4dHVyZS5kLnRzXG5cdCAqL1xuXHQnbmd0LWNhbnZhcy10ZXh0dXJlJzogTmd0Q2FudmFzVGV4dHVyZTtcblx0LyoqXG5cdCAqIEBmcm9tIG5vZGVfbW9kdWxlcy9AdHlwZXMvdGhyZWUvc3JjL3RleHR1cmVzL0RlcHRoVGV4dHVyZS5kLnRzXG5cdCAqL1xuXHQnbmd0LWRlcHRoLXRleHR1cmUnOiBOZ3REZXB0aFRleHR1cmU7XG5cblx0Ly8gbWlzY1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvY29yZS9SYXljYXN0ZXIuZC50c1xuXHQgKi9cblx0J25ndC1yYXljYXN0ZXInOiBOZ3RSYXljYXN0ZXI7XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy9tYXRoL1ZlY3RvcjIuZC50c1xuXHQgKi9cblx0J25ndC12ZWN0b3IyJzogTmd0VmVjdG9yMk5vZGU7XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy9tYXRoL1ZlY3RvcjMuZC50c1xuXHQgKi9cblx0J25ndC12ZWN0b3IzJzogTmd0VmVjdG9yM05vZGU7XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy9tYXRoL1ZlY3RvcjQuZC50c1xuXHQgKi9cblx0J25ndC12ZWN0b3I0JzogTmd0VmVjdG9yNE5vZGU7XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy9tYXRoL0V1bGVyLmQudHNcblx0ICovXG5cdCduZ3QtZXVsZXInOiBOZ3RFdWxlck5vZGU7XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy9tYXRoL01hdHJpeDMuZC50c1xuXHQgKi9cblx0J25ndC1tYXRyaXgzJzogTmd0TWF0cml4M05vZGU7XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy9tYXRoL01hdHJpeDQuZC50c1xuXHQgKi9cblx0J25ndC1tYXRyaXg0JzogTmd0TWF0cml4NE5vZGU7XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy9tYXRoL1F1YXRlcm5pb24uZC50c1xuXHQgKi9cblx0J25ndC1xdWF0ZXJuaW9uJzogTmd0UXVhdGVybmlvbk5vZGU7XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy9jb3JlL0J1ZmZlckF0dHJpYnV0ZS5kLnRzXG5cdCAqL1xuXHQnbmd0LWJ1ZmZlci1hdHRyaWJ1dGUnOiBOZ3RCdWZmZXJBdHRyaWJ1dGU7XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy9jb3JlL0J1ZmZlckF0dHJpYnV0ZS5kLnRzXG5cdCAqIEBzeW1ib2wgRmxvYXQxNkJ1ZmZlckF0dHJpYnV0ZVxuXHQgKi9cblx0J25ndC1mbG9hdDE2LWJ1ZmZlci1hdHRyaWJ1dGUnOiBOZ3RGbG9hdDE2QnVmZmVyQXR0cmlidXRlO1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvY29yZS9CdWZmZXJBdHRyaWJ1dGUuZC50c1xuXHQgKiBAc3ltYm9sIEZsb2F0MzJCdWZmZXJBdHRyaWJ1dGVcblx0ICovXG5cdCduZ3QtZmxvYXQzMi1idWZmZXItYXR0cmlidXRlJzogTmd0RmxvYXQzMkJ1ZmZlckF0dHJpYnV0ZTtcblx0LyoqXG5cdCAqIEBmcm9tIG5vZGVfbW9kdWxlcy9AdHlwZXMvdGhyZWUvc3JjL2NvcmUvQnVmZmVyQXR0cmlidXRlLmQudHNcblx0ICogQHN5bWJvbCBJbnQ4QnVmZmVyQXR0cmlidXRlXG5cdCAqL1xuXHQnbmd0LWludDgtYnVmZmVyLWF0dHJpYnV0ZSc6IE5ndEludDhCdWZmZXJBdHRyaWJ1dGU7XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy9jb3JlL0J1ZmZlckF0dHJpYnV0ZS5kLnRzXG5cdCAqIEBzeW1ib2wgSW50MTZCdWZmZXJBdHRyaWJ1dGVcblx0ICovXG5cdCduZ3QtaW50MTYtYnVmZmVyLWF0dHJpYnV0ZSc6IE5ndEludDE2QnVmZmVyQXR0cmlidXRlO1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvY29yZS9CdWZmZXJBdHRyaWJ1dGUuZC50c1xuXHQgKiBAc3ltYm9sIEludDMyQnVmZmVyQXR0cmlidXRlXG5cdCAqL1xuXHQnbmd0LWludDMyLWJ1ZmZlci1hdHRyaWJ1dGUnOiBOZ3RJbnQzMkJ1ZmZlckF0dHJpYnV0ZTtcblx0LyoqXG5cdCAqIEBmcm9tIG5vZGVfbW9kdWxlcy9AdHlwZXMvdGhyZWUvc3JjL2NvcmUvQnVmZmVyQXR0cmlidXRlLmQudHNcblx0ICogQHN5bWJvbCBVaW50OEJ1ZmZlckF0dHJpYnV0ZVxuXHQgKi9cblx0J25ndC11bml0OC1idWZmZXItYXR0cmlidXRlJzogTmd0VWludDhCdWZmZXJBdHRyaWJ1dGU7XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy9jb3JlL0J1ZmZlckF0dHJpYnV0ZS5kLnRzXG5cdCAqIEBzeW1ib2wgVWludDE2QnVmZmVyQXR0cmlidXRlXG5cdCAqL1xuXHQnbmd0LXVuaXQxNi1idWZmZXItYXR0cmlidXRlJzogTmd0VWludDE2QnVmZmVyQXR0cmlidXRlO1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvY29yZS9CdWZmZXJBdHRyaWJ1dGUuZC50c1xuXHQgKiBAc3ltYm9sIFVpbnQzMkJ1ZmZlckF0dHJpYnV0ZVxuXHQgKi9cblx0J25ndC11bml0MzItYnVmZmVyLWF0dHJpYnV0ZSc6IE5ndFVpbnQzMkJ1ZmZlckF0dHJpYnV0ZTtcblx0LyoqXG5cdCAqIEBmcm9tIG5vZGVfbW9kdWxlcy9AdHlwZXMvdGhyZWUvc3JjL2NvcmUvSW5zdGFuY2VkQnVmZmVyQXR0cmlidXRlLmQudHNcblx0ICovXG5cdCduZ3QtaW5zdGFuY2VkLWJ1ZmZlci1hdHRyaWJ1dGUnOiBOZ3RJbnN0YW5jZWRCdWZmZXJBdHRyaWJ1dGU7XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy9tYXRoL0NvbG9yLmQudHNcblx0ICovXG5cdCduZ3QtY29sb3InOiBOZ3RDb2xvcjtcblx0LyoqXG5cdCAqIEBmcm9tIG5vZGVfbW9kdWxlcy9AdHlwZXMvdGhyZWUvc3JjL3NjZW5lcy9Gb2cuZC50c1xuXHQgKi9cblx0J25ndC1mb2cnOiBOZ3RGb2c7XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy9zY2VuZXMvRm9nRXhwMi5kLnRzXG5cdCAqL1xuXHQnbmd0LWZvZy1leHAyJzogTmd0Rm9nRXhwMjtcblx0LyoqXG5cdCAqIEBmcm9tIG5vZGVfbW9kdWxlcy9AdHlwZXMvdGhyZWUvc3JjL2V4dHJhcy9jb3JlL1NoYXBlLmQudHNcblx0ICovXG5cdCduZ3Qtc2hhcGUnOiBOZ3RTaGFwZTtcbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuXHRpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIGV4dGVuZHMgVGhyZWVFbGVtZW50cyB7fVxuXHRpbnRlcmZhY2UgSFRNTEVsZW1lbnRFdmVudE1hcCBleHRlbmRzIE5ndEFsbE9iamVjdDNERXZlbnRzTWFwIHt9XG59XG4iXX0=
|
package/esm2022/lib/types.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgTmd0UHJvcGVydGllczxUPiA9IFBpY2s8VCwgeyBbSyBpbiBrZXlvZiBUXTogVFtLXSBleHRlbmRzIChfOiBhbnkpID0+IGFueSA/IG5ldmVyIDogSyB9W2tleW9mIFRdPjtcbmV4cG9ydCB0eXBlIE5ndEFueVJlY29yZCA9IFJlY29yZDxzdHJpbmcsIGFueT47XG5cbmV4cG9ydCB0eXBlIE5ndEVxdUNvbmZpZyA9IHtcblx0LyoqIENvbXBhcmUgYXJyYXlzIGJ5IHJlZmVyZW5jZSBlcXVhbGl0eSBhID09PSBiIChkZWZhdWx0KSwgb3IgYnkgc2hhbGxvdyBlcXVhbGl0eSAqL1xuXHRhcnJheXM/OiAncmVmZXJlbmNlJyB8ICdzaGFsbG93Jztcblx0LyoqIENvbXBhcmUgb2JqZWN0cyBieSByZWZlcmVuY2UgZXF1YWxpdHkgYSA9PT0gYiAoZGVmYXVsdCksIG9yIGJ5IHNoYWxsb3cgZXF1YWxpdHkgKi9cblx0b2JqZWN0cz86ICdyZWZlcmVuY2UnIHwgJ3NoYWxsb3cnO1xuXHQvKiogSWYgdHJ1ZSB0aGUga2V5cyBpbiBib3RoIGEgYW5kIGIgbXVzdCBtYXRjaCAxOjEgKGRlZmF1bHQpLCBpZiBmYWxzZSBhJ3Mga2V5cyBtdXN0IGludGVyc2VjdCBiJ3MgKi9cblx0c3RyaWN0PzogYm9vbGVhbjtcbn07XG4iXX0=
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudFJlZiwgU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuXHRDYW1lcmEsXG5cdENsb2NrLFxuXHRFdmVudERpc3BhdGNoZXIsXG5cdEludGVyc2VjdGlvbixcblx0T2JqZWN0M0QsXG5cdE9ydGhvZ3JhcGhpY0NhbWVyYSxcblx0UGVyc3BlY3RpdmVDYW1lcmEsXG5cdFJheSxcblx0UmF5Y2FzdGVyLFxuXHRTY2VuZSxcblx0VmVjdG9yMixcblx0VmVjdG9yMyxcblx0V2ViR0xSZW5kZXJlcixcblx0V2ViR0xSZW5kZXJlclBhcmFtZXRlcnMsXG5cdFdlYkdMU2hhZG93TWFwLFxufSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBOZ3RPYmplY3QzRE5vZGUgfSBmcm9tICcuL3RocmVlLXR5cGVzJztcbmltcG9ydCB7IE5ndFNpZ25hbFN0b3JlIH0gZnJvbSAnLi91dGlscy9zaWduYWwtc3RvcmUnO1xuXG5leHBvcnQgdHlwZSBOZ3RQcm9wZXJ0aWVzPFQ+ID0gUGljazxULCB7IFtLIGluIGtleW9mIFRdOiBUW0tdIGV4dGVuZHMgKF86IGFueSkgPT4gYW55ID8gbmV2ZXIgOiBLIH1ba2V5b2YgVF0+O1xuZXhwb3J0IHR5cGUgTmd0QW55UmVjb3JkID0gUmVjb3JkPHN0cmluZywgYW55PjtcblxuZXhwb3J0IHR5cGUgTmd0RXF1Q29uZmlnID0ge1xuXHQvKiogQ29tcGFyZSBhcnJheXMgYnkgcmVmZXJlbmNlIGVxdWFsaXR5IGEgPT09IGIgKGRlZmF1bHQpLCBvciBieSBzaGFsbG93IGVxdWFsaXR5ICovXG5cdGFycmF5cz86ICdyZWZlcmVuY2UnIHwgJ3NoYWxsb3cnO1xuXHQvKiogQ29tcGFyZSBvYmplY3RzIGJ5IHJlZmVyZW5jZSBlcXVhbGl0eSBhID09PSBiIChkZWZhdWx0KSwgb3IgYnkgc2hhbGxvdyBlcXVhbGl0eSAqL1xuXHRvYmplY3RzPzogJ3JlZmVyZW5jZScgfCAnc2hhbGxvdyc7XG5cdC8qKiBJZiB0cnVlIHRoZSBrZXlzIGluIGJvdGggYSBhbmQgYiBtdXN0IG1hdGNoIDE6MSAoZGVmYXVsdCksIGlmIGZhbHNlIGEncyBrZXlzIG11c3QgaW50ZXJzZWN0IGIncyAqL1xuXHRzdHJpY3Q/OiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgTmd0R0xPcHRpb25zID1cblx0fCBOZ3RSZW5kZXJlckxpa2Vcblx0fCAoKGNhbnZhczogTmd0Q2FudmFzRWxlbWVudCkgPT4gTmd0UmVuZGVyZXJMaWtlKVxuXHR8IFBhcnRpYWw8Tmd0UHJvcGVydGllczxXZWJHTFJlbmRlcmVyPiB8IFdlYkdMUmVuZGVyZXJQYXJhbWV0ZXJzPlxuXHR8IHVuZGVmaW5lZDtcblxuZXhwb3J0IGludGVyZmFjZSBOZ3RDYW52YXNPcHRpb25zIHtcblx0LyoqIEEgdGhyZWVqcyByZW5kZXJlciBpbnN0YW5jZSBvciBwcm9wcyB0aGF0IGdvIGludG8gdGhlIGRlZmF1bHQgcmVuZGVyZXIgKi9cblx0Z2w/OiBOZ3RHTE9wdGlvbnM7XG5cdC8qKiBEaW1lbnNpb25zIHRvIGZpdCB0aGUgcmVuZGVyZXIgdG8uIFdpbGwgbWVhc3VyZSBjYW52YXMgZGltZW5zaW9ucyBpZiBvbWl0dGVkICovXG5cdHNpemU/OiBOZ3RTaXplO1xuXHQvKipcblx0ICogRW5hYmxlcyBzaGFkb3dzIChieSBkZWZhdWx0IFBDRnNvZnQpLiBDYW4gYWNjZXB0IGBnbC5zaGFkb3dNYXBgIG9wdGlvbnMgZm9yIGZpbmUtdHVuaW5nLFxuXHQgKiBidXQgYWxzbyBzdHJpbmdzOiAnYmFzaWMnIHwgJ3BlcmNlbnRhZ2UnIHwgJ3NvZnQnIHwgJ3ZhcmlhbmNlJy5cblx0ICogQHNlZSBodHRwczovL3RocmVlanMub3JnL2RvY3MvI2FwaS9lbi9yZW5kZXJlcnMvV2ViR0xSZW5kZXJlci5zaGFkb3dNYXBcblx0ICovXG5cdHNoYWRvd3M/OiBib29sZWFuIHwgJ2Jhc2ljJyB8ICdwZXJjZW50YWdlJyB8ICdzb2Z0JyB8ICd2YXJpYW5jZScgfCBQYXJ0aWFsPFdlYkdMU2hhZG93TWFwPjtcblx0LyoqXG5cdCAqIERpc2FibGVzIHRocmVlIHIxMzkgY29sb3IgbWFuYWdlbWVudC5cblx0ICogQHNlZSBodHRwczovL3RocmVlanMub3JnL2RvY3MvI21hbnVhbC9lbi9pbnRyb2R1Y3Rpb24vQ29sb3ItbWFuYWdlbWVudFxuXHQgKi9cblx0bGVnYWN5PzogYm9vbGVhbjtcblx0LyoqIFN3aXRjaCBvZmYgYXV0b21hdGljIHNSR0IgY29sb3Igc3BhY2UgYW5kIGdhbW1hIGNvcnJlY3Rpb24gKi9cblx0bGluZWFyPzogYm9vbGVhbjtcblx0LyoqIFVzZSBgVEhSRUUuTm9Ub25lTWFwcGluZ2AgaW5zdGVhZCBvZiBgVEhSRUUuQUNFU0ZpbG1pY1RvbmVNYXBwaW5nYCAqL1xuXHRmbGF0PzogYm9vbGVhbjtcblx0LyoqIENyZWF0ZXMgYW4gb3J0aG9ncmFwaGljIGNhbWVyYSAqL1xuXHRvcnRob2dyYXBoaWM/OiBib29sZWFuO1xuXHQvKipcblx0ICogUjNGJ3MgcmVuZGVyIG1vZGUuIFNldCB0byBgZGVtYW5kYCB0byBvbmx5IHJlbmRlciBvbiBzdGF0ZSBjaGFuZ2Ugb3IgYG5ldmVyYCB0byB0YWtlIGNvbnRyb2wuXG5cdCAqIEBzZWUgaHR0cHM6Ly9kb2NzLnBtbmQucnMvcmVhY3QtdGhyZWUtZmliZXIvYWR2YW5jZWQvc2NhbGluZy1wZXJmb3JtYW5jZSNvbi1kZW1hbmQtcmVuZGVyaW5nXG5cdCAqL1xuXHRmcmFtZWxvb3A/OiAnYWx3YXlzJyB8ICdkZW1hbmQnIHwgJ25ldmVyJztcblx0LyoqXG5cdCAqIFIzRiBwZXJmb3JtYW5jZSBvcHRpb25zIGZvciBhZGFwdGl2ZSBwZXJmb3JtYW5jZS5cblx0ICogQHNlZSBodHRwczovL2RvY3MucG1uZC5ycy9yZWFjdC10aHJlZS1maWJlci9hZHZhbmNlZC9zY2FsaW5nLXBlcmZvcm1hbmNlI21vdmVtZW50LXJlZ3Jlc3Npb25cblx0ICovXG5cdHBlcmZvcm1hbmNlPzogUGFydGlhbDxPbWl0PE5ndFBlcmZvcm1hbmNlLCAncmVncmVzcyc+Pjtcblx0LyoqIFRhcmdldCBwaXhlbCByYXRpby4gQ2FuIGNsYW1wIGJldHdlZW4gYSByYW5nZTogYFttaW4sIG1heF1gICovXG5cdGRwcj86IE5ndERwcjtcblx0LyoqIFByb3BzIHRoYXQgZ28gaW50byB0aGUgZGVmYXVsdCByYXljYXN0ZXIgKi9cblx0cmF5Y2FzdGVyPzogUGFydGlhbDxSYXljYXN0ZXI+O1xuXHQvKiogQSBgU2NlbmVgIGluc3RhbmNlIG9yIHByb3BzIHRoYXQgZ28gaW50byB0aGUgZGVmYXVsdCBzY2VuZSAqL1xuXHRzY2VuZT86IFNjZW5lIHwgUGFydGlhbDxTY2VuZT47XG5cdC8qKiBBIGBDYW1lcmFgIGluc3RhbmNlIG9yIHByb3BzIHRoYXQgZ28gaW50byB0aGUgZGVmYXVsdCBjYW1lcmEgKi9cblx0Y2FtZXJhPzogKFxuXHRcdHwgTmd0Q2FtZXJhXG5cdFx0fCBQYXJ0aWFsPFxuXHRcdFx0XHROZ3RPYmplY3QzRE5vZGU8Q2FtZXJhLCB0eXBlb2YgQ2FtZXJhPiAmXG5cdFx0XHRcdFx0Tmd0T2JqZWN0M0ROb2RlPFBlcnNwZWN0aXZlQ2FtZXJhLCB0eXBlb2YgUGVyc3BlY3RpdmVDYW1lcmE+ICZcblx0XHRcdFx0XHROZ3RPYmplY3QzRE5vZGU8T3J0aG9ncmFwaGljQ2FtZXJhLCB0eXBlb2YgT3J0aG9ncmFwaGljQ2FtZXJhPlxuXHRcdCAgPlxuXHQpICYge1xuXHRcdC8qKiBGbGFncyB0aGUgY2FtZXJhIGFzIG1hbnVhbCwgcHV0dGluZyBwcm9qZWN0aW9uIGludG8geW91ciBvd24gaGFuZHMgKi9cblx0XHRtYW51YWw/OiBib29sZWFuO1xuXHR9O1xuXHQvKiogQW4gUjNGIGV2ZW50IG1hbmFnZXIgdG8gbWFuYWdlIGVsZW1lbnRzJyBwb2ludGVyIGV2ZW50cyAqL1xuXHRldmVudHM/OiAoc3RvcmU6IE5ndFNpZ25hbFN0b3JlPE5ndFN0YXRlPikgPT4gTmd0RXZlbnRNYW5hZ2VyPEhUTUxFbGVtZW50Pjtcblx0LyoqIFRoZSB0YXJnZXQgd2hlcmUgZXZlbnRzIGFyZSBiZWluZyBzdWJzY3JpYmVkIHRvLCBkZWZhdWx0OiB0aGUgZGl2IHRoYXQgd3JhcHMgY2FudmFzICovXG5cdGV2ZW50U291cmNlPzogSFRNTEVsZW1lbnQgfCBFbGVtZW50UmVmPEhUTUxFbGVtZW50Pjtcblx0LyoqIFRoZSBldmVudCBwcmVmaXggdGhhdCBpcyBjYXN0IGludG8gY2FudmFzIHBvaW50ZXIgeC95IGV2ZW50cywgZGVmYXVsdDogXCJvZmZzZXRcIiAqL1xuXHRldmVudFByZWZpeD86ICdvZmZzZXQnIHwgJ2NsaWVudCcgfCAncGFnZScgfCAnbGF5ZXInIHwgJ3NjcmVlbic7XG5cdC8qKiBEZWZhdWx0IGNvb3JkaW5hdGUgZm9yIHRoZSBjYW1lcmEgdG8gbG9vayBhdCAqL1xuXHRsb29rQXQ/OiBWZWN0b3IzIHwgUGFyYW1ldGVyczxWZWN0b3IzWydzZXQnXT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmd0SW50ZXJzZWN0aW9uIGV4dGVuZHMgSW50ZXJzZWN0aW9uIHtcblx0LyoqIFRoZSBldmVudCBzb3VyY2UgKHRoZSBvYmplY3Qgd2hpY2ggcmVnaXN0ZXJlZCB0aGUgaGFuZGxlcikgKi9cblx0ZXZlbnRPYmplY3Q6IE9iamVjdDNEO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5ndEludGVyc2VjdGlvbkV2ZW50PFRTb3VyY2VFdmVudD4gZXh0ZW5kcyBOZ3RJbnRlcnNlY3Rpb24ge1xuXHQvKiogVGhlIGV2ZW50IHNvdXJjZSAodGhlIG9iamVjdCB3aGljaCByZWdpc3RlcmVkIHRoZSBoYW5kbGVyKSAqL1xuXHRldmVudE9iamVjdDogT2JqZWN0M0Q7XG5cdC8qKiBBbiBhcnJheSBvZiBpbnRlcnNlY3Rpb25zICovXG5cdGludGVyc2VjdGlvbnM6IE5ndEludGVyc2VjdGlvbltdO1xuXHQvKiogdmVjMy5zZXQocG9pbnRlci54LCBwb2ludGVyLnksIDApLnVucHJvamVjdChjYW1lcmEpICovXG5cdHVucHJvamVjdGVkUG9pbnQ6IFZlY3RvcjM7XG5cdC8qKiBOb3JtYWxpemVkIGV2ZW50IGNvb3JkaW5hdGVzICovXG5cdHBvaW50ZXI6IFZlY3RvcjI7XG5cdC8qKiBEZWx0YSBiZXR3ZWVuIGZpcnN0IGNsaWNrIGFuZCB0aGlzIGV2ZW50ICovXG5cdGRlbHRhOiBudW1iZXI7XG5cdC8qKiBUaGUgcmF5IHRoYXQgcGllcmNlZCBpdCAqL1xuXHRyYXk6IFJheTtcblx0LyoqIFRoZSBjYW1lcmEgdGhhdCB3YXMgdXNlZCBieSB0aGUgcmF5Y2FzdGVyICovXG5cdGNhbWVyYTogTmd0Q2FtZXJhO1xuXHQvKiogc3RvcFByb3BhZ2F0aW9uIHdpbGwgc3RvcCB1bmRlcmx5aW5nIGhhbmRsZXJzIGZyb20gZmlyaW5nICovXG5cdHN0b3BQcm9wYWdhdGlvbjogKCkgPT4gdm9pZDtcblx0LyoqIFRoZSBvcmlnaW5hbCBob3N0IGV2ZW50ICovXG5cdG5hdGl2ZUV2ZW50OiBUU291cmNlRXZlbnQ7XG5cdC8qKiBJZiB0aGUgZXZlbnQgd2FzIHN0b3BwZWQgYnkgY2FsbGluZyBzdG9wUHJvcGFnYXRpb24gKi9cblx0c3RvcHBlZDogYm9vbGVhbjtcbn1cblxuZXhwb3J0IHR5cGUgTmd0Q2FtZXJhID0gT3J0aG9ncmFwaGljQ2FtZXJhIHwgUGVyc3BlY3RpdmVDYW1lcmE7XG5leHBvcnQgdHlwZSBOZ3RUaHJlZUV2ZW50PFRFdmVudD4gPSBOZ3RJbnRlcnNlY3Rpb25FdmVudDxURXZlbnQ+ICYgTmd0UHJvcGVydGllczxURXZlbnQ+O1xuZXhwb3J0IHR5cGUgTmd0RG9tRXZlbnQgPSBQb2ludGVyRXZlbnQgfCBNb3VzZUV2ZW50IHwgV2hlZWxFdmVudDtcblxuZXhwb3J0IHR5cGUgTmd0RXZlbnRIYW5kbGVycyA9IHtcblx0Y2xpY2s/OiAoZXZlbnQ6IE5ndFRocmVlRXZlbnQ8TW91c2VFdmVudD4pID0+IHZvaWQ7XG5cdGNvbnRleHRtZW51PzogKGV2ZW50OiBOZ3RUaHJlZUV2ZW50PE1vdXNlRXZlbnQ+KSA9PiB2b2lkO1xuXHRkYmxjbGljaz86IChldmVudDogTmd0VGhyZWVFdmVudDxNb3VzZUV2ZW50PikgPT4gdm9pZDtcblx0cG9pbnRlcnVwPzogKGV2ZW50OiBOZ3RUaHJlZUV2ZW50PFBvaW50ZXJFdmVudD4pID0+IHZvaWQ7XG5cdHBvaW50ZXJkb3duPzogKGV2ZW50OiBOZ3RUaHJlZUV2ZW50PFBvaW50ZXJFdmVudD4pID0+IHZvaWQ7XG5cdHBvaW50ZXJvdmVyPzogKGV2ZW50OiBOZ3RUaHJlZUV2ZW50PFBvaW50ZXJFdmVudD4pID0+IHZvaWQ7XG5cdHBvaW50ZXJvdXQ/OiAoZXZlbnQ6IE5ndFRocmVlRXZlbnQ8UG9pbnRlckV2ZW50PikgPT4gdm9pZDtcblx0cG9pbnRlcmVudGVyPzogKGV2ZW50OiBOZ3RUaHJlZUV2ZW50PFBvaW50ZXJFdmVudD4pID0+IHZvaWQ7XG5cdHBvaW50ZXJsZWF2ZT86IChldmVudDogTmd0VGhyZWVFdmVudDxQb2ludGVyRXZlbnQ+KSA9PiB2b2lkO1xuXHRwb2ludGVybW92ZT86IChldmVudDogTmd0VGhyZWVFdmVudDxQb2ludGVyRXZlbnQ+KSA9PiB2b2lkO1xuXHRwb2ludGVybWlzc2VkPzogKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB2b2lkO1xuXHRwb2ludGVyY2FuY2VsPzogKGV2ZW50OiBOZ3RUaHJlZUV2ZW50PFBvaW50ZXJFdmVudD4pID0+IHZvaWQ7XG5cdHdoZWVsPzogKGV2ZW50OiBOZ3RUaHJlZUV2ZW50PFdoZWVsRXZlbnQ+KSA9PiB2b2lkO1xufTtcblxuZXhwb3J0IHR5cGUgTmd0RXZlbnRzID0ge1xuXHRbVEV2ZW50IGluIGtleW9mIE5ndEV2ZW50SGFuZGxlcnNdLT86IEV2ZW50TGlzdGVuZXI7XG59O1xuXG5leHBvcnQgdHlwZSBOZ3RGaWx0ZXJGdW5jdGlvbiA9IChpdGVtczogSW50ZXJzZWN0aW9uW10sIHN0b3JlOiBOZ3RTaWduYWxTdG9yZTxOZ3RTdGF0ZT4pID0+IEludGVyc2VjdGlvbltdO1xuZXhwb3J0IHR5cGUgTmd0Q29tcHV0ZUZ1bmN0aW9uID0gKFxuXHRldmVudDogTmd0RG9tRXZlbnQsXG5cdHJvb3Q6IE5ndFNpZ25hbFN0b3JlPE5ndFN0YXRlPixcblx0cHJldmlvdXM6IE5ndFNpZ25hbFN0b3JlPE5ndFN0YXRlPiB8IG51bGwsXG4pID0+IHZvaWQ7XG5cbmV4cG9ydCB0eXBlIE5ndEV2ZW50TWFuYWdlcjxUVGFyZ2V0PiA9IHtcblx0LyoqIERldGVybWluZXMgaWYgdGhlIGV2ZW50IGxheWVyIGlzIGFjdGl2ZSAqL1xuXHRlbmFibGVkOiBib29sZWFuO1xuXHQvKiogRXZlbnQgbGF5ZXIgcHJpb3JpdHksIGhpZ2hlciBwcmlvcml0aXplZCBsYXllcnMgY29tZSBmaXJzdCBhbmQgbWF5IHN0b3AoLXByb3BhZ2F0ZSkgbG93ZXIgbGF5ZXIgICovXG5cdHByaW9yaXR5OiBudW1iZXI7XG5cdC8qKiBUaGUgY29tcHV0ZSBmdW5jdGlvbiBuZWVkcyB0byBzZXQgdXAgdGhlIHJheWNhc3RlciBhbmQgYW4geHktIHBvaW50ZXIgICovXG5cdGNvbXB1dGU/OiBOZ3RDb21wdXRlRnVuY3Rpb247XG5cdC8qKiBUaGUgZmlsdGVyIGNhbiByZS1vcmRlciBvciByZS1zdHJ1Y3R1cmUgdGhlIGludGVyc2VjdGlvbnMgICovXG5cdGZpbHRlcj86IE5ndEZpbHRlckZ1bmN0aW9uO1xuXHQvKiogVGhlIHRhcmdldCBub2RlIHRoZSBldmVudCBsYXllciBpcyB0aWVkIHRvICovXG5cdGNvbm5lY3RlZD86IFRUYXJnZXQ7XG5cdC8qKiBBbGwgdGhlIHBvaW50ZXIgZXZlbnQgaGFuZGxlcnMgdGhyb3VnaCB3aGljaCB0aGUgaG9zdCBmb3J3YXJkcyBuYXRpdmUgZXZlbnRzICovXG5cdGhhbmRsZXJzPzogTmd0RXZlbnRzO1xuXHQvKiogQWxsb3dzIHJlLWNvbm5lY3RpbmcgdG8gYW5vdGhlciB0YXJnZXQgKi9cblx0Y29ubmVjdD86ICh0YXJnZXQ6IFRUYXJnZXQpID0+IHZvaWQ7XG5cdC8qKiBSZW1vdmVzIGFsbCBleGlzdGluZyBldmVudHMgaGFuZGxlcnMgZnJvbSB0aGUgdGFyZ2V0ICovXG5cdGRpc2Nvbm5lY3Q/OiAoKSA9PiB2b2lkO1xuXHQvKiogVHJpZ2dlcnMgYSBvblBvaW50ZXJNb3ZlIHdpdGggdGhlIGxhc3Qga25vd24gZXZlbnQuIFRoaXMgY2FuIGJlIHVzZWZ1bCB0byBlbmFibGUgcmF5Y2FzdGluZyB3aXRob3V0XG5cdCAqICBleHBsaWNpdCB1c2VyIGludGVyYWN0aW9uLCBmb3IgaW5zdGFuY2Ugd2hlbiB0aGUgY2FtZXJhIG1vdmVzIGEgaG92ZXJhYmxlIG9iamVjdCB1bmRlcm5lYXRoIHRoZSBjdXJzb3IuXG5cdCAqL1xuXHR1cGRhdGU/OiAoKSA9PiB2b2lkO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBOZ3RQb2ludGVyQ2FwdHVyZVRhcmdldCB7XG5cdGludGVyc2VjdGlvbjogTmd0SW50ZXJzZWN0aW9uO1xuXHR0YXJnZXQ6IEVsZW1lbnQ7XG59XG5cbmV4cG9ydCB0eXBlIE5ndEF0dGFjaEZ1bmN0aW9uPFRDaGlsZCA9IGFueSwgVFBhcmVudCA9IGFueT4gPSAoXG5cdHBhcmVudDogVFBhcmVudCxcblx0Y2hpbGQ6IFRDaGlsZCxcblx0c3RvcmU6IE5ndFNpZ25hbFN0b3JlPE5ndFN0YXRlPixcbikgPT4gdm9pZCB8ICgoKSA9PiB2b2lkKTtcblxuZXhwb3J0IHR5cGUgTmd0QXR0YWNoYWJsZTxUQ2hpbGQgPSBhbnksIFRQYXJlbnQgPSBhbnk+ID0gTmd0QXR0YWNoRnVuY3Rpb248VENoaWxkLCBUUGFyZW50PiB8IHN0cmluZyB8IHN0cmluZ1tdO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5ndEFmdGVyQXR0YWNoPFxuXHRUQ2hpbGQgZXh0ZW5kcyBOZ3RJbnN0YW5jZU5vZGUgPSBOZ3RJbnN0YW5jZU5vZGUsXG5cdFRQYXJlbnQgZXh0ZW5kcyBOZ3RJbnN0YW5jZU5vZGUgPSBOZ3RJbnN0YW5jZU5vZGUsXG4+IHtcblx0cGFyZW50OiBUUGFyZW50O1xuXHRub2RlOiBUQ2hpbGQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmd0TG9jYWxJbnN0YW5jZVN0YXRlIHtcblx0b2JqZWN0czogTmd0SW5zdGFuY2VOb2RlW107XG5cdG5vbk9iamVjdHM6IE5ndEluc3RhbmNlTm9kZVtdO1xuXHRwYXJlbnQ6IE5ndEluc3RhbmNlTm9kZSB8IG51bGw7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmd0TG9jYWxTdGF0ZSB7XG5cdC8qKiB0aGUgc3RvcmUgb2YgdGhlIGNhbnZhcyB0aGF0IHRoZSBpbnN0YW5jZSBpcyBiZWluZyByZW5kZXJlZCB0byAqL1xuXHRzdG9yZTogTmd0U2lnbmFsU3RvcmU8Tmd0U3RhdGU+O1xuXHQvLyBvYmplY3RzIHJlbGF0ZWQgdG8gdGhpcyBpbnN0YW5jZVxuXHRpbnN0YW5jZVN0b3JlOiBOZ3RTaWduYWxTdG9yZTxOZ3RMb2NhbEluc3RhbmNlU3RhdGU+O1xuXHQvLyBzaG9ydGN1dCB0byBzaWduYWxzXG5cdHBhcmVudDogU2lnbmFsPE5ndExvY2FsSW5zdGFuY2VTdGF0ZVsncGFyZW50J10+O1xuXHRvYmplY3RzOiBTaWduYWw8Tmd0TG9jYWxJbnN0YW5jZVN0YXRlWydvYmplY3RzJ10+O1xuXHRub25PYmplY3RzOiBTaWduYWw8Tmd0TG9jYWxJbnN0YW5jZVN0YXRlWydub25PYmplY3RzJ10+O1xuXHQvLyBzaG9ydGN1dCB0byBhZGQvcmVtb3ZlIG9iamVjdCB0byBsaXN0XG5cdGFkZDogKGluc3RhbmNlOiBOZ3RJbnN0YW5jZU5vZGUsIHR5cGU6ICdvYmplY3RzJyB8ICdub25PYmplY3RzJykgPT4gdm9pZDtcblx0cmVtb3ZlOiAoaW5zdGFuY2U6IE5ndEluc3RhbmNlTm9kZSwgdHlwZTogJ29iamVjdHMnIHwgJ25vbk9iamVjdHMnKSA9PiB2b2lkO1xuXHRzZXRQYXJlbnQ6IChwYXJlbnQ6IE5ndEluc3RhbmNlTm9kZSB8IG51bGwpID0+IHZvaWQ7XG5cdC8vIGlmIHRoaXMgVEhSRUUgaW5zdGFuY2UgaXMgYSBuZ3QtcHJpbWl0aXZlXG5cdHByaW1pdGl2ZT86IGJvb2xlYW47XG5cdC8vIGlmIHRoaXMgVEhSRUUgb2JqZWN0IGhhcyBhbnkgZXZlbnRzIGJvdW5kIHRvIGl0XG5cdGV2ZW50Q291bnQ6IG51bWJlcjtcblx0Ly8gbGlzdCBvZiBoYW5kbGVycyB0byBoYW5kbGUgdGhlIGV2ZW50c1xuXHRoYW5kbGVyczogUGFydGlhbDxOZ3RFdmVudEhhbmRsZXJzPjtcblx0Ly8gYXR0YWNoIGluZm9ybWF0aW9uIHNvIHRoYXQgd2UgY2FuIGRldGFjaCBhcyB3ZWxsIGFzIHJlc2V0XG5cdGF0dGFjaD86IHN0cmluZ1tdIHwgTmd0QXR0YWNoRnVuY3Rpb247XG5cdC8vIHByZXZpb3VzbHkgYXR0YWNoIGluZm9ybWF0aW9uIHNvIHdlIGNhbiByZXNldCBhcyB3ZWxsIGFzIGNsZWFuIHVwXG5cdHByZXZpb3VzQXR0YWNoPzogdW5rbm93biB8ICgoKSA9PiB2b2lkKTtcblx0Ly8gaXMgcmF3IHZhbHVlXG5cdGlzUmF3PzogYm9vbGVhbjtcblx0Ly8gcHJpb3JpdHkgZm9yIGJlZm9yZSByZW5kZXJcblx0cHJpb3JpdHk/OiBudW1iZXI7XG5cdG9uVXBkYXRlPzogKG5vZGU6IE5ndEluc3RhbmNlTm9kZSkgPT4gdm9pZDtcblx0b25BdHRhY2g/OiAoYWZ0ZXJBdHRhY2g6IE5ndEFmdGVyQXR0YWNoKSA9PiB2b2lkO1xufVxuXG5leHBvcnQgdHlwZSBOZ3RJbnN0YW5jZU5vZGU8VE5vZGUgPSBhbnk+ID0geyBfX25ndF9fOiBOZ3RMb2NhbFN0YXRlIH0gJiBOZ3RBbnlSZWNvcmQgJiBUTm9kZTtcblxuZXhwb3J0IHR5cGUgTmd0Q2FudmFzRWxlbWVudCA9IEhUTUxDYW52YXNFbGVtZW50IHwgT2Zmc2NyZWVuQ2FudmFzO1xuZXhwb3J0IHR5cGUgTmd0R2xvYmFsUmVuZGVyQ2FsbGJhY2sgPSAodGltZVN0YW1wOiBudW1iZXIpID0+IHZvaWQ7XG5cbmV4cG9ydCB0eXBlIE5ndFJlbmRlcmVyTGlrZSA9IHsgcmVuZGVyOiAoc2NlbmU6IFNjZW5lLCBjYW1lcmE6IENhbWVyYSkgPT4gYW55IH07XG5leHBvcnQgdHlwZSBOZ3RDYW1lcmFNYW51YWwgPSBOZ3RDYW1lcmEgJiB7IG1hbnVhbD86IGJvb2xlYW4gfTtcbmV4cG9ydCB0eXBlIE5ndERwciA9IG51bWJlciB8IFttaW46IG51bWJlciwgbWF4OiBudW1iZXJdO1xuZXhwb3J0IHR5cGUgTmd0U2l6ZSA9IHsgd2lkdGg6IG51bWJlcjsgaGVpZ2h0OiBudW1iZXI7IHRvcDogbnVtYmVyOyBsZWZ0OiBudW1iZXIgfTtcblxuZXhwb3J0IHR5cGUgTmd0Vmlld3BvcnQgPSBOZ3RTaXplICYge1xuXHQvKiogVGhlIGluaXRpYWwgcGl4ZWwgcmF0aW8gKi9cblx0aW5pdGlhbERwcjogbnVtYmVyO1xuXHQvKiogQ3VycmVudCBwaXhlbCByYXRpbyAqL1xuXHRkcHI6IG51bWJlcjtcblx0LyoqIHNpemUud2lkdGggLyB2aWV3cG9ydC53aWR0aCAqL1xuXHRmYWN0b3I6IG51bWJlcjtcblx0LyoqIENhbWVyYSBkaXN0YW5jZSAqL1xuXHRkaXN0YW5jZTogbnVtYmVyO1xuXHQvKiogQ2FtZXJhIGFzcGVjdCByYXRpbzogd2lkdGggLyBoZWlnaHQgKi9cblx0YXNwZWN0OiBudW1iZXI7XG59O1xuXG5leHBvcnQgdHlwZSBOZ3RQZXJmb3JtYW5jZSA9IHtcblx0LyoqIEN1cnJlbnQgcGVyZm9ybWFuY2Ugbm9ybWFsLCBiZXR3ZWVuIG1pbiBhbmQgbWF4ICovXG5cdGN1cnJlbnQ6IG51bWJlcjtcblx0LyoqIEhvdyBsb3cgdGhlIHBlcmZvcm1hbmNlIGNhbiBnbywgYmV0d2VlbiAwIGFuZCBtYXggKi9cblx0bWluOiBudW1iZXI7XG5cdC8qKiBIb3cgaGlnaCB0aGUgcGVyZm9ybWFuY2UgY2FuIGdvLCBiZXR3ZWVuIG1pbiBhbmQgbWF4ICovXG5cdG1heDogbnVtYmVyO1xuXHQvKiogVGltZSB1bnRpbCBjdXJyZW50IHJldHVybnMgdG8gbWF4IGluIG1zICovXG5cdGRlYm91bmNlOiBudW1iZXI7XG5cdC8qKiBTZXRzIGN1cnJlbnQgdG8gbWluLCBwdXRzIHRoZSBzeXN0ZW0gaW4gcmVncmVzc2lvbiAqL1xuXHRyZWdyZXNzOiAoKSA9PiB2b2lkO1xufTtcblxuZXhwb3J0IHR5cGUgTmd0UmVuZGVyU3RhdGUgPSBOZ3RTdGF0ZSAmIHsgZGVsdGE6IG51bWJlcjsgZnJhbWU/OiBYUkZyYW1lIH07XG5cbmV4cG9ydCB0eXBlIE5ndEJlZm9yZVJlbmRlckV2ZW50PFRPYmplY3QgZXh0ZW5kcyBOZ3RJbnN0YW5jZU5vZGUgPSBOZ3RJbnN0YW5jZU5vZGU+ID0ge1xuXHRzdGF0ZTogTmd0UmVuZGVyU3RhdGU7XG5cdG9iamVjdDogVE9iamVjdDtcbn07XG5cbmV4cG9ydCB0eXBlIE5ndEJlZm9yZVJlbmRlclJlY29yZCA9IHtcblx0Y2FsbGJhY2s6IChzdGF0ZTogTmd0UmVuZGVyU3RhdGUpID0+IHZvaWQ7XG5cdHN0b3JlOiBOZ3RTaWduYWxTdG9yZTxOZ3RTdGF0ZT47XG5cdHByaW9yaXR5PzogbnVtYmVyO1xufTtcblxuZXhwb3J0IHR5cGUgTmd0SW50ZXJuYWxTdGF0ZSA9IHtcblx0YWN0aXZlOiBib29sZWFuO1xuXHRwcmlvcml0eTogbnVtYmVyO1xuXHRmcmFtZXM6IG51bWJlcjtcblx0bGFzdEV2ZW50OiBFbGVtZW50UmVmPE5ndERvbUV2ZW50IHwgbnVsbD47XG5cdGludGVyYWN0aW9uOiBPYmplY3QzRFtdO1xuXHRob3ZlcmVkOiBNYXA8c3RyaW5nLCBOZ3RUaHJlZUV2ZW50PE5ndERvbUV2ZW50Pj47XG5cdGNhcHR1cmVkTWFwOiBNYXA8bnVtYmVyLCBNYXA8T2JqZWN0M0QsIE5ndFBvaW50ZXJDYXB0dXJlVGFyZ2V0Pj47XG5cdGluaXRpYWxDbGljazogW3g6IG51bWJlciwgeTogbnVtYmVyXTtcblx0aW5pdGlhbEhpdHM6IE9iamVjdDNEW107XG5cdHN1YnNjcmliZXJzOiBOZ3RCZWZvcmVSZW5kZXJSZWNvcmRbXTtcblx0c3Vic2NyaWJlOiAoXG5cdFx0Y2FsbGJhY2s6IE5ndEJlZm9yZVJlbmRlclJlY29yZFsnY2FsbGJhY2snXSxcblx0XHRwcmlvcml0eT86IG51bWJlcixcblx0XHRzdG9yZT86IE5ndFNpZ25hbFN0b3JlPE5ndFN0YXRlPixcblx0KSA9PiAoKSA9PiB2b2lkO1xufTtcblxuZXhwb3J0IHR5cGUgTmd0U3RhdGUgPSB7XG5cdC8qKiBUaGUgaW5zdGFuY2Ugb2YgdGhlIHJlbmRlcmVyICovXG5cdGdsOiBXZWJHTFJlbmRlcmVyO1xuXHQvKiogRGVmYXVsdCBjYW1lcmEgKi9cblx0Y2FtZXJhOiBOZ3RDYW1lcmFNYW51YWw7XG5cdC8qKiBEZWZhdWx0IHNjZW5lICovXG5cdHNjZW5lOiBTY2VuZTtcblx0LyoqIERlZmF1bHQgcmF5Y2FzdGVyICovXG5cdHJheWNhc3RlcjogUmF5Y2FzdGVyO1xuXHQvKiogRGVmYXVsdCBjbG9jayAqL1xuXHRjbG9jazogQ2xvY2s7XG5cdC8qKiBFdmVudCBsYXllciBpbnRlcmZhY2UsIGNvbnRhaW5zIHRoZSBldmVudCBoYW5kbGVyIGFuZCB0aGUgbm9kZSB0aGV5J3JlIGNvbm5lY3RlZCB0byAqL1xuXHRldmVudHM6IE5ndEV2ZW50TWFuYWdlcjxhbnk+O1xuXHQvKiogWFIgaW50ZXJmYWNlICovXG5cdHhyOiB7IGNvbm5lY3Q6ICgpID0+IHZvaWQ7IGRpc2Nvbm5lY3Q6ICgpID0+IHZvaWQgfTtcblx0LyoqIEN1cnJlbnRseSB1c2VkIGNvbnRyb2xzICovXG5cdGNvbnRyb2xzOiBFdmVudERpc3BhdGNoZXIgfCBudWxsO1xuXHQvKiogTm9ybWFsaXplZCBldmVudCBjb29yZGluYXRlcyAqL1xuXHRwb2ludGVyOiBWZWN0b3IyO1xuXHQvKiBXaGV0aGVyIHRvIGVuYWJsZSByMTM5J3MgQ29sb3JNYW5hZ2VtZW50ICovXG5cdGxlZ2FjeTogYm9vbGVhbjtcblx0LyoqIFNob3J0Y3V0IHRvIGdsLm91dHB1dENvbG9yU3BhY2UgPSBMaW5lYXJTUkdCQ29sb3JTcGFjZSAqL1xuXHRsaW5lYXI6IGJvb2xlYW47XG5cdC8qKiBTaG9ydGN1dCB0byBnbC50b25lTWFwcGluZyA9IE5vVG9uZW1hcHBpbmcgKi9cblx0ZmxhdDogYm9vbGVhbjtcblx0LyoqIFJlbmRlciBsb29wIGZsYWdzICovXG5cdGZyYW1lbG9vcDogJ2Fsd2F5cycgfCAnZGVtYW5kJyB8ICduZXZlcic7XG5cdC8qKiBBZGFwdGl2ZSBwZXJmb3JtYW5jZSBpbnRlcmZhY2UgKi9cblx0cGVyZm9ybWFuY2U6IE5ndFBlcmZvcm1hbmNlO1xuXHQvKiogUmVhY3RpdmUgcGl4ZWwtc2l6ZSBvZiB0aGUgY2FudmFzICovXG5cdHNpemU6IE5ndFNpemU7XG5cdC8qKiBSZWFjdGl2ZSBzaXplIG9mIHRoZSB2aWV3cG9ydCBpbiB0aHJlZWpzIHVuaXRzICovXG5cdHZpZXdwb3J0OiBOZ3RWaWV3cG9ydCAmIHtcblx0XHRnZXRDdXJyZW50Vmlld3BvcnQ6IChcblx0XHRcdGNhbWVyYT86IE5ndENhbWVyYSxcblx0XHRcdHRhcmdldD86IFZlY3RvcjMgfCBQYXJhbWV0ZXJzPFZlY3RvcjNbJ3NldCddPixcblx0XHRcdHNpemU/OiBOZ3RTaXplLFxuXHRcdCkgPT4gT21pdDxOZ3RWaWV3cG9ydCwgJ2RwcicgfCAnaW5pdGlhbERwcic+O1xuXHR9O1xuXHQvKiogRmxhZ3MgdGhlIGNhbnZhcyBmb3IgcmVuZGVyLCBidXQgZG9lc24ndCByZW5kZXIgaW4gaXRzZWxmICovXG5cdGludmFsaWRhdGU6IChmcmFtZXM/OiBudW1iZXIpID0+IHZvaWQ7XG5cdC8qKiBBZHZhbmNlIChyZW5kZXIpIG9uZSBzdGVwICovXG5cdGFkdmFuY2U6ICh0aW1lc3RhbXA6IG51bWJlciwgcnVuR2xvYmFsRWZmZWN0cz86IGJvb2xlYW4pID0+IHZvaWQ7XG5cdC8qKiBTaG9ydGN1dCB0byBzZXR0aW5nIHRoZSBldmVudCBsYXllciAqL1xuXHRzZXRFdmVudHM6IChldmVudHM6IFBhcnRpYWw8Tmd0RXZlbnRNYW5hZ2VyPGFueT4+KSA9PiB2b2lkO1xuXHQvKipcblx0ICogU2hvcnRjdXQgdG8gbWFudWFsIHNpemluZ1xuXHQgKi9cblx0c2V0U2l6ZTogKHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyLCB0b3A/OiBudW1iZXIsIGxlZnQ/OiBudW1iZXIpID0+IHZvaWQ7XG5cdC8qKiBTaG9ydGN1dCB0byBtYW51YWwgc2V0dGluZyB0aGUgcGl4ZWwgcmF0aW8gKi9cblx0c2V0RHByOiAoZHByOiBOZ3REcHIpID0+IHZvaWQ7XG5cdC8qKiBTaG9ydGN1dCB0byBmcmFtZWxvb3AgZmxhZ3MgKi9cblx0c2V0RnJhbWVsb29wOiAoZnJhbWVsb29wPzogJ2Fsd2F5cycgfCAnZGVtYW5kJyB8ICduZXZlcicpID0+IHZvaWQ7XG5cdC8qKiBXaGVuIHRoZSBjYW52YXMgd2FzIGNsaWNrZWQgYnV0IG5vdGhpbmcgd2FzIGhpdCAqL1xuXHQvKiogUG9pbnRlck1pc3NlZCBPYnNlcnZhYmxlICovXG5cdHBvaW50ZXJNaXNzZWQkOiBPYnNlcnZhYmxlPE1vdXNlRXZlbnQ+O1xuXHQvKiogSWYgdGhpcyBzdGF0ZSBtb2RlbCBpcyBsYXllcmVkICh2aWEgY3JlYXRlUG9ydGFsKSB0aGVuIHRoaXMgY29udGFpbnMgdGhlIHByZXZpb3VzIGxheWVyICovXG5cdHByZXZpb3VzUm9vdDogTmd0U2lnbmFsU3RvcmU8Tmd0U3RhdGU+IHwgbnVsbDtcblx0LyoqIEludGVybmFscyAqL1xuXHRpbnRlcm5hbDogTmd0SW50ZXJuYWxTdGF0ZTtcbn07XG4iXX0=
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import * as THREE from 'three';
|
|
1
|
+
import { Color, ColorManagement, Layers, RGBAFormat, Texture, UnsignedByteType } from 'three';
|
|
3
2
|
import { getLocalState, invalidateInstance } from '../instance';
|
|
4
3
|
import { is } from './is';
|
|
5
4
|
import { checkUpdate } from './update';
|
|
6
5
|
// This function prepares a set of changes to be applied to the instance
|
|
7
|
-
|
|
6
|
+
function diffProps(instance, props) {
|
|
8
7
|
const propsEntries = Object.entries(props);
|
|
9
8
|
const changes = [];
|
|
10
9
|
for (const [propKey, propValue] of propsEntries) {
|
|
@@ -23,15 +22,17 @@ export function diffProps(instance, props) {
|
|
|
23
22
|
}
|
|
24
23
|
return changes;
|
|
25
24
|
}
|
|
25
|
+
// NOTE: this is a workaround to give the instance a change to have the store from the parent.
|
|
26
|
+
// we clear this property after the applyProps is done
|
|
27
|
+
export const NGT_APPLY_PROPS = '__ngt_apply_props__';
|
|
26
28
|
// This function applies a set of changes to the instance
|
|
27
29
|
export function applyProps(instance, props) {
|
|
28
30
|
// if props is empty
|
|
29
31
|
if (!Object.keys(props).length)
|
|
30
32
|
return instance;
|
|
31
|
-
//
|
|
32
|
-
// filter equals, events , and reserved props
|
|
33
|
+
// filter equals, and reserved props
|
|
33
34
|
const localState = getLocalState(instance);
|
|
34
|
-
const rootState = localState
|
|
35
|
+
const rootState = localState?.store?.snapshot ?? instance[NGT_APPLY_PROPS]?.snapshot ?? {};
|
|
35
36
|
const changes = diffProps(instance, props);
|
|
36
37
|
for (let i = 0; i < changes.length; i++) {
|
|
37
38
|
let [key, value] = changes[i];
|
|
@@ -53,52 +54,50 @@ export function applyProps(instance, props) {
|
|
|
53
54
|
const currentInstance = instance;
|
|
54
55
|
const targetProp = currentInstance[key];
|
|
55
56
|
// special treatmen for objects with support for set/copy, and layers
|
|
56
|
-
if (targetProp && targetProp['set'] && (targetProp['copy'] || targetProp instanceof
|
|
57
|
-
const isColor = targetProp instanceof
|
|
57
|
+
if (targetProp && targetProp['set'] && (targetProp['copy'] || targetProp instanceof Layers)) {
|
|
58
|
+
const isColor = targetProp instanceof Color;
|
|
58
59
|
// if value is an array
|
|
59
60
|
if (Array.isArray(value)) {
|
|
60
61
|
if (targetProp['fromArray'])
|
|
61
62
|
targetProp['fromArray'](value);
|
|
62
63
|
else
|
|
63
64
|
targetProp['set'](...value);
|
|
64
|
-
}
|
|
65
|
-
// test again target.copy
|
|
65
|
+
} // test again target.copy
|
|
66
66
|
else if (targetProp['copy'] &&
|
|
67
67
|
value &&
|
|
68
68
|
value.constructor &&
|
|
69
69
|
targetProp.constructor.name === value.constructor.name) {
|
|
70
70
|
targetProp['copy'](value);
|
|
71
|
-
if (!
|
|
71
|
+
if (!ColorManagement && !rootState.linear && isColor)
|
|
72
72
|
targetProp['convertSRGBToLinear']();
|
|
73
|
-
}
|
|
74
|
-
// if nothing else fits, just set the single value, ignore undefined
|
|
73
|
+
} // if nothing else fits, just set the single value, ignore undefined
|
|
75
74
|
else if (value !== undefined) {
|
|
76
|
-
const isColor = targetProp instanceof
|
|
75
|
+
const isColor = targetProp instanceof Color;
|
|
77
76
|
// allow setting array scalars
|
|
78
77
|
if (!isColor && targetProp['setScalar'])
|
|
79
78
|
targetProp['setScalar'](value);
|
|
80
79
|
// layers have no copy function, copy the mask
|
|
81
|
-
else if (targetProp instanceof
|
|
80
|
+
else if (targetProp instanceof Layers && value instanceof Layers)
|
|
82
81
|
targetProp.mask = value.mask;
|
|
83
82
|
// otherwise just set ...
|
|
84
83
|
else
|
|
85
84
|
targetProp['set'](value);
|
|
86
85
|
// auto-convert srgb
|
|
87
|
-
if (!
|
|
86
|
+
if (!ColorManagement && !rootState?.linear && isColor)
|
|
88
87
|
targetProp.convertSRGBToLinear();
|
|
89
88
|
}
|
|
90
|
-
}
|
|
91
|
-
// else just overwrite the value
|
|
89
|
+
} // else just overwrite the value
|
|
92
90
|
else {
|
|
93
91
|
currentInstance[key] = value;
|
|
94
92
|
// auto-convert srgb textures
|
|
95
|
-
if (currentInstance[key] instanceof
|
|
96
|
-
currentInstance[key].format ===
|
|
97
|
-
currentInstance[key].type ===
|
|
93
|
+
if (currentInstance[key] instanceof Texture &&
|
|
94
|
+
currentInstance[key].format === RGBAFormat &&
|
|
95
|
+
currentInstance[key].type === UnsignedByteType) {
|
|
98
96
|
const texture = currentInstance[key];
|
|
99
97
|
if (rootState?.gl) {
|
|
100
98
|
if (is.colorSpaceExist(texture) && is.colorSpaceExist(rootState.gl))
|
|
101
99
|
texture.colorSpace = rootState.gl.outputColorSpace;
|
|
100
|
+
// @ts-expect-error - old version of threejs
|
|
102
101
|
else
|
|
103
102
|
texture.encoding = rootState.gl.outputEncoding;
|
|
104
103
|
}
|
|
@@ -108,20 +107,24 @@ export function applyProps(instance, props) {
|
|
|
108
107
|
checkUpdate(targetProp);
|
|
109
108
|
invalidateInstance(instance);
|
|
110
109
|
}
|
|
111
|
-
const
|
|
112
|
-
const parent = localState
|
|
113
|
-
if (parent && rootState.internal && instance['raycast'] &&
|
|
110
|
+
const instanceHandlersCount = localState?.eventCount;
|
|
111
|
+
const parent = localState?.instanceStore?.get('parent');
|
|
112
|
+
if (parent && rootState.internal && instance['raycast'] && instanceHandlersCount !== localState?.eventCount) {
|
|
114
113
|
// Pre-emptively remove the instance from the interaction manager
|
|
115
114
|
const index = rootState.internal.interaction.indexOf(instance);
|
|
116
115
|
if (index > -1)
|
|
117
116
|
rootState.internal.interaction.splice(index, 1);
|
|
118
117
|
// Add the instance to the interaction manager only when it has handlers
|
|
119
|
-
if (localState
|
|
118
|
+
if (localState?.eventCount)
|
|
120
119
|
rootState.internal.interaction.push(instance);
|
|
121
120
|
}
|
|
122
|
-
if (parent && localState
|
|
123
|
-
localState.
|
|
121
|
+
if (parent && localState?.onUpdate && changes.length) {
|
|
122
|
+
localState.onUpdate(instance);
|
|
123
|
+
}
|
|
124
|
+
// clearing the intermediate store from the instance
|
|
125
|
+
if (instance[NGT_APPLY_PROPS]) {
|
|
126
|
+
delete instance[NGT_APPLY_PROPS];
|
|
124
127
|
}
|
|
125
128
|
return instance;
|
|
126
129
|
}
|
|
127
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbHktcHJvcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi91dGlscy9hcHBseS1wcm9wcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQy9CLE9BQU8sRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQXdCLE1BQU0sYUFBYSxDQUFDO0FBRXRGLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUV2Qyx3RUFBd0U7QUFDeEUsTUFBTSxVQUFVLFNBQVMsQ0FBQyxRQUFzQixFQUFFLEtBQW1CO0lBQ3BFLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0MsTUFBTSxPQUFPLEdBQW9DLEVBQUUsQ0FBQztJQUVwRCxLQUFLLE1BQU0sQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLElBQUksWUFBWSxFQUFFO1FBQ2hELElBQUksR0FBRyxHQUFHLE9BQU8sQ0FBQztRQUNsQixJQUFJLEVBQUUsQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDakMsSUFBSSxPQUFPLEtBQUssVUFBVSxFQUFFO2dCQUMzQixHQUFHLEdBQUcsWUFBWSxDQUFDO2FBQ25CO2lCQUFNLElBQUksT0FBTyxLQUFLLGdCQUFnQixFQUFFO2dCQUN4QyxHQUFHLEdBQUcsa0JBQWtCLENBQUM7YUFDekI7U0FDRDtRQUNELElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQUUsU0FBUztRQUMvQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxD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QUN0QztJQUVELE9BQU8sUUFBUSxDQUFDO0FBQ2pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1bnRyYWNrZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB7IGdldExvY2FsU3RhdGUsIGludmFsaWRhdGVJbnN0YW5jZSwgdHlwZSBOZ3RJbnN0YW5jZU5vZGUgfSBmcm9tICcuLi9pbnN0YW5jZSc7XG5pbXBvcnQgdHlwZSB7IE5ndEFueVJlY29yZCB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IGlzIH0gZnJvbSAnLi9pcyc7XG5pbXBvcnQgeyBjaGVja1VwZGF0ZSB9IGZyb20gJy4vdXBkYXRlJztcblxuLy8gVGhpcyBmdW5jdGlvbiBwcmVwYXJlcyBhIHNldCBvZiBjaGFuZ2VzIHRvIGJlIGFwcGxpZWQgdG8gdGhlIGluc3RhbmNlXG5leHBvcnQgZnVuY3Rpb24gZGlmZlByb3BzKGluc3RhbmNlOiBOZ3RBbnlSZWNvcmQsIHByb3BzOiBOZ3RBbnlSZWNvcmQpIHtcblx0Y29uc3QgcHJvcHNFbnRyaWVzID0gT2JqZWN0LmVudHJpZXMocHJvcHMpO1xuXHRjb25zdCBjaGFuZ2VzOiBba2V5OiBzdHJpbmcsIHZhbHVlOiB1bmtub3duXVtdID0gW107XG5cblx0Zm9yIChjb25zdCBbcHJvcEtleSwgcHJvcFZhbHVlXSBvZiBwcm9wc0VudHJpZXMpIHtcblx0XHRsZXQga2V5ID0gcHJvcEtleTtcblx0XHRpZiAoaXMuY29sb3JTcGFjZUV4aXN0KGluc3RhbmNlKSkge1xuXHRcdFx0aWYgKHByb3BLZXkgPT09ICdlbmNvZGluZycpIHtcblx0XHRcdFx0a2V5ID0gJ2NvbG9yU3BhY2UnO1xuXHRcdFx0fSBlbHNlIGlmIChwcm9wS2V5ID09PSAnb3V0cHV0RW5jb2RpbmcnKSB7XG5cdFx0XHRcdGtleSA9ICdvdXRwdXRDb2xvclNwYWNlJztcblx0XHRcdH1cblx0XHR9XG5cdFx0aWYgKGlzLmVxdShwcm9wVmFsdWUsIGluc3RhbmNlW2tleV0pKSBjb250aW51ZTtcblx0XHRjaGFuZ2VzLnB1c2goW3Byb3BLZXksIHByb3BWYWx1ZV0pO1xuXHR9XG5cblx0cmV0dXJuIGNoYW5nZXM7XG59XG5cbi8vIFRoaXMgZnVuY3Rpb24gYXBwbGllcyBhIHNldCBvZiBjaGFuZ2VzIHRvIHRoZSBpbnN0YW5jZVxuZXhwb3J0IGZ1bmN0aW9uIGFwcGx5UHJvcHMoaW5zdGFuY2U6IE5ndEluc3RhbmNlTm9kZSwgcHJvcHM6IE5ndEFueVJlY29yZCkge1xuXHQvLyBpZiBwcm9wcyBpcyBlbXB0eVxuXHRpZiAoIU9iamVjdC5rZXlzKHByb3BzKS5sZW5ndGgpIHJldHVybiBpbnN0YW5jZTtcblxuXHQvLyBGaWx0ZXIgZXF1YWxzLCBldmVudHMgYW5kIHJlc2VydmVkIHByb3BzXG5cdC8vIGZpbHRlciBlcXVhbHMsIGV2ZW50cyAsIGFuZCByZXNlcnZlZCBwcm9wc1xuXHRjb25zdCBsb2NhbFN0YXRlID0gZ2V0TG9jYWxTdGF0ZShpbnN0YW5jZSk7XG5cdGNvbnN0IHJvb3RTdGF0ZSA9IGxvY2FsU3RhdGUuc3RvcmU/LmdldCgpO1xuXHRjb25zdCBjaGFuZ2VzID0gZGlmZlByb3BzKGluc3RhbmNlLCBwcm9wcyk7XG5cblx0Zm9yIChsZXQgaSA9IDA7IGkgPCBjaGFuZ2VzLmxlbmd0aDsgaSsrKSB7XG5cdFx0bGV0IFtrZXksIHZhbHVlXSA9IGNoYW5nZXNbaV07XG5cblx0XHQvLyBBbGlhcyAob3V0cHV0KWVuY29kaW5nID0+IChvdXRwdXQpY29sb3JTcGFjZSAoc2luY2UgcjE1Milcblx0XHQvLyBodHRwczovL2dpdGh1Yi5jb20vcG1uZHJzL3JlYWN0LXRocmVlLWZpYmVyL3B1bGwvMjgyOVxuXHRcdGlmIChpcy5jb2xvclNwYWNlRXhpc3QoaW5zdGFuY2UpKSB7XG5cdFx0XHRjb25zdCBzUkdCRW5jb2RpbmcgPSAzMDAxO1xuXHRcdFx0Y29uc3QgU1JHQkNvbG9yU3BhY2UgPSAnc3JnYic7XG5cdFx0XHRjb25zdCBMaW5lYXJTUkdCQ29sb3JTcGFjZSA9ICdzcmdiLWxpbmVhcic7XG5cblx0XHRcdGlmIChrZXkgPT09ICdlbmNvZGluZycpIHtcblx0XHRcdFx0a2V5ID0gJ2NvbG9yU3BhY2UnO1xuXHRcdFx0XHR2YWx1ZSA9IHZhbHVlID09PSBzUkdCRW5jb2RpbmcgPyBTUkdCQ29sb3JTcGFjZSA6IExpbmVhclNSR0JDb2xvclNwYWNlO1xuXHRcdFx0fSBlbHNlIGlmIChrZXkgPT09ICdvdXRwdXRFbmNvZGluZycpIHtcblx0XHRcdFx0a2V5ID0gJ291dHB1dENvbG9yU3BhY2UnO1xuXHRcdFx0XHR2YWx1ZSA9IHZhbHVlID09PSBzUkdCRW5jb2RpbmcgPyBTUkdCQ29sb3JTcGFjZSA6IExpbmVhclNSR0JDb2xvclNwYWNlO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGNvbnN0IGN1cnJlbnRJbnN0YW5jZSA9IGluc3RhbmNlO1xuXHRcdGNvbnN0IHRhcmdldFByb3AgPSBjdXJyZW50SW5zdGFuY2Vba2V5XSBhcyBOZ3RBbnlSZWNvcmQ7XG5cblx0XHQvLyBzcGVjaWFsIHRyZWF0bWVuIGZvciBvYmplY3RzIHdpdGggc3VwcG9ydCBmb3Igc2V0L2NvcHksIGFuZCBsYXllcnNcblx0XHRpZiAodGFyZ2V0UHJvcCAmJiB0YXJnZXRQcm9wWydzZXQnXSAmJiAodGFyZ2V0UHJvcFsnY29weSddIHx8IHRhcmdldFByb3AgaW5zdGFuY2VvZiBUSFJFRS5MYXllcnMpKSB7XG5cdFx0XHRjb25zdCBpc0NvbG9yID0gdGFyZ2V0UHJvcCBpbnN0YW5jZW9mIFRIUkVFLkNvbG9yO1xuXHRcdFx0Ly8gaWYgdmFsdWUgaXMgYW4gYXJyYXlcblx0XHRcdGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuXHRcdFx0XHRpZiAoKHRhcmdldFByb3AgYXMgTmd0QW55UmVjb3JkKVsnZnJvbUFycmF5J10pICh0YXJnZXRQcm9wIGFzIE5ndEFueVJlY29yZClbJ2Zyb21BcnJheSddKHZhbHVlKTtcblx0XHRcdFx0ZWxzZSB0YXJnZXRQcm9wWydzZXQnXSguLi52YWx1ZSk7XG5cdFx0XHR9XG5cdFx0XHQvLyB0ZXN0IGFnYWluIHRhcmdldC5jb3B5XG5cdFx0XHRlbHNlIGlmIChcblx0XHRcdFx0KHRhcmdldFByb3AgYXMgTmd0QW55UmVjb3JkKVsnY29weSddICYmXG5cdFx0XHRcdHZhbHVlICYmXG5cdFx0XHRcdHZhbHVlLmNvbnN0cnVjdG9yICYmXG5cdFx0XHRcdHRhcmdldFByb3AuY29uc3RydWN0b3IubmFtZSA9PT0gdmFsdWUuY29uc3RydWN0b3IubmFtZVxuXHRcdFx0KSB7XG5cdFx0XHRcdCh0YXJnZXRQcm9wIGFzIE5ndEFueVJlY29yZClbJ2NvcHknXSh2YWx1ZSk7XG5cdFx0XHRcdGlmICghVEhSRUUuQ29sb3JNYW5hZ2VtZW50ICYmICFyb290U3RhdGUubGluZWFyICYmIGlzQ29sb3IpIHRhcmdldFByb3BbJ2NvbnZlcnRTUkdCVG9MaW5lYXInXSgpO1xuXHRcdFx0fVxuXHRcdFx0Ly8gaWYgbm90aGluZyBlbHNlIGZpdHMsIGp1c3Qgc2V0IHRoZSBzaW5nbGUgdmFsdWUsIGlnbm9yZSB1bmRlZmluZWRcblx0XHRcdGVsc2UgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0Y29uc3QgaXNDb2xvciA9IHRhcmdldFByb3AgaW5zdGFuY2VvZiBUSFJFRS5Db2xvcjtcblx0XHRcdFx0Ly8gYWxsb3cgc2V0dGluZyBhcnJheSBzY2FsYXJzXG5cdFx0XHRcdGlmICghaXNDb2xvciAmJiAodGFyZ2V0UHJvcCBhcyBOZ3RBbnlSZWNvcmQpWydzZXRTY2FsYXInXSlcblx0XHRcdFx0XHQodGFyZ2V0UHJvcCBhcyBOZ3RBbnlSZWNvcmQpWydzZXRTY2FsYXInXSh2YWx1ZSk7XG5cdFx0XHRcdC8vIGxheWVycyBoYXZlIG5vIGNvcHkgZnVuY3Rpb24sIGNvcHkgdGhlIG1hc2tcblx0XHRcdFx0ZWxzZSBpZiAodGFyZ2V0UHJvcCBpbnN0YW5jZW9mIFRIUkVFLkxheWVycyAmJiB2YWx1ZSBpbnN0YW5jZW9mIFRIUkVFLkxheWVycylcblx0XHRcdFx0XHR0YXJnZXRQcm9wLm1hc2sgPSB2YWx1ZS5tYXNrO1xuXHRcdFx0XHQvLyBvdGhlcndpc2UganVzdCBzZXQgLi4uXG5cdFx0XHRcdGVsc2UgdGFyZ2V0UHJvcFsnc2V0J10odmFsdWUpO1xuXG5cdFx0XHRcdC8vIGF1dG8tY29udmVydCBzcmdiXG5cdFx0XHRcdGlmICghVEhSRUUuQ29sb3JNYW5hZ2VtZW50ICYmICFyb290U3RhdGU/LmxpbmVhciAmJiBpc0NvbG9yKSB0YXJnZXRQcm9wLmNvbnZlcnRTUkdCVG9MaW5lYXIoKTtcblx0XHRcdH1cblx0XHR9XG5cdFx0Ly8gZWxzZSBqdXN0IG92ZXJ3cml0ZSB0aGUgdmFsdWVcblx0XHRlbHNlIHtcblx0XHRcdGN1cnJlbnRJbnN0YW5jZVtrZXldID0gdmFsdWU7XG5cdFx0XHQvLyBhdXRvLWNvbnZlcnQgc3JnYiB0ZXh0dXJlc1xuXHRcdFx0aWYgKFxuXHRcdFx0XHRjdXJyZW50SW5zdGFuY2Vba2V5XSBpbnN0YW5jZW9mIFRIUkVFLlRleHR1cmUgJiZcblx0XHRcdFx0Y3VycmVudEluc3RhbmNlW2tleV0uZm9ybWF0ID09PSBUSFJFRS5SR0JBRm9ybWF0ICYmXG5cdFx0XHRcdGN1cnJlbnRJbnN0YW5jZVtrZXldLnR5cGUgPT09IFRIUkVFLlVuc2lnbmVkQnl0ZVR5cGVcblx0XHRcdCkge1xuXHRcdFx0XHRjb25zdCB0ZXh0dXJlID0gY3VycmVudEluc3RhbmNlW2tleV0gYXMgVEhSRUUuVGV4dHVyZTtcblxuXHRcdFx0XHRpZiAocm9vdFN0YXRlPy5nbCkge1xuXHRcdFx0XHRcdGlmIChpcy5jb2xvclNwYWNlRXhpc3QodGV4dHVyZSkgJiYgaXMuY29sb3JTcGFjZUV4aXN0KHJvb3RTdGF0ZS5nbCkpXG5cdFx0XHRcdFx0XHR0ZXh0dXJlLmNvbG9yU3BhY2UgPSByb290U3RhdGUuZ2wub3V0cHV0Q29sb3JTcGFjZTtcblx0XHRcdFx0XHRlbHNlIHRleHR1cmUuZW5jb2RpbmcgPSByb290U3RhdGUuZ2wub3V0cHV0RW5jb2Rpbmc7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHRjaGVja1VwZGF0ZShjdXJyZW50SW5zdGFuY2Vba2V5XSk7XG5cdFx0Y2hlY2tVcGRhdGUodGFyZ2V0UHJvcCk7XG5cdFx0aW52YWxpZGF0ZUluc3RhbmNlKGluc3RhbmNlKTtcblx0fVxuXG5cdGNvbnN0IGluc3RhbmNlSGFuZGxlcnMgPSBsb2NhbFN0YXRlLmV2ZW50Q291bnQ7XG5cdGNvbnN0IHBhcmVudCA9IGxvY2FsU3RhdGUucGFyZW50ID8gdW50cmFja2VkKGxvY2FsU3RhdGUucGFyZW50KSA6IG51bGw7XG5cblx0aWYgKHBhcmVudCAmJiByb290U3RhdGUuaW50ZXJuYWwgJiYgaW5zdGFuY2VbJ3JheWNhc3QnXSAmJiBpbnN0YW5jZUhhbmRsZXJzICE9PSBsb2NhbFN0YXRlLmV2ZW50Q291bnQpIHtcblx0XHQvLyBQcmUtZW1wdGl2ZWx5IHJlbW92ZSB0aGUgaW5zdGFuY2UgZnJvbSB0aGUgaW50ZXJhY3Rpb24gbWFuYWdlclxuXHRcdGNvbnN0IGluZGV4ID0gcm9vdFN0YXRlLmludGVybmFsLmludGVyYWN0aW9uLmluZGV4T2YoaW5zdGFuY2UpO1xuXHRcdGlmIChpbmRleCA+IC0xKSByb290U3RhdGUuaW50ZXJuYWwuaW50ZXJhY3Rpb24uc3BsaWNlKGluZGV4LCAxKTtcblx0XHQvLyBBZGQgdGhlIGluc3RhbmNlIHRvIHRoZSBpbnRlcmFjdGlvbiBtYW5hZ2VyIG9ubHkgd2hlbiBpdCBoYXMgaGFuZGxlcnNcblx0XHRpZiAobG9jYWxTdGF0ZS5ldmVudENvdW50KSByb290U3RhdGUuaW50ZXJuYWwuaW50ZXJhY3Rpb24ucHVzaChpbnN0YW5jZSk7XG5cdH1cblxuXHRpZiAocGFyZW50ICYmIGxvY2FsU3RhdGUuYWZ0ZXJVcGRhdGUgJiYgbG9jYWxTdGF0ZS5hZnRlclVwZGF0ZS5vYnNlcnZlZCAmJiBjaGFuZ2VzLmxlbmd0aCkge1xuXHRcdGxvY2FsU3RhdGUuYWZ0ZXJVcGRhdGUuZW1pdChpbnN0YW5jZSk7XG5cdH1cblxuXHRyZXR1cm4gaW5zdGFuY2U7XG59XG4iXX0=
|
|
130
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbHktcHJvcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi91dGlscy9hcHBseS1wcm9wcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUM5RixPQUFPLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRWhFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUV2Qyx3RUFBd0U7QUFDeEUsU0FBUyxTQUFTLENBQUMsUUFBc0IsRUFBRSxLQUFtQjtJQUM3RCxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNDLE1BQU0sT0FBTyxHQUFvQyxFQUFFLENBQUM7SUFFcEQsS0FBSyxNQUFNLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2pELElBQUksR0FBRyxHQUFHLE9BQU8sQ0FBQztRQUNsQixJQUFJLEVBQUUsQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUNsQyxJQUFJLE9BQU8sS0FBSyxVQUFVLEVBQUUsQ0FBQztnQkFDNUIsR0FBRyxHQUFHLFlBQVksQ0FBQztZQUNwQixDQUFDO2lCQUFNLElBQUksT0FBTyxLQUFLLGdCQUFnQixFQUFFLENBQUM7Z0JBQ3pDLEdBQUcsR0FBRyxrQkFBa0IsQ0FBQztZQUMxQixDQUFDO1FBQ0YsQ0FBQztRQUNELElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQUUsU0FBUztRQUMvQyxP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QU0sSUFBSSxVQUFVLEVBQUUsUUFBUSxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUN0RCxVQUFVLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxvREFBb0Q7SUFDcEQsSUFBSSxRQUFRLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQztRQUMvQixPQUFPLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsT0FBTyxRQUFRLENBQUM7QUFDakIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbG9yLCBDb2xvck1hbmFnZW1lbnQsIExheWVycywgUkdCQUZvcm1hdCwgVGV4dHVyZSwgVW5zaWduZWRCeXRlVHlwZSB9IGZyb20gJ3RocmVlJztcbmltcG9ydCB7IGdldExvY2FsU3RhdGUsIGludmFsaWRhdGVJbnN0YW5jZSB9IGZyb20gJy4uL2luc3RhbmNlJztcbmltcG9ydCB7IE5ndEFueVJlY29yZCwgTmd0SW5zdGFuY2VOb2RlLCBOZ3RTdGF0ZSB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IGlzIH0gZnJvbSAnLi9pcyc7XG5pbXBvcnQgeyBjaGVja1VwZGF0ZSB9IGZyb20gJy4vdXBkYXRlJztcblxuLy8gVGhpcyBmdW5jdGlvbiBwcmVwYXJlcyBhIHNldCBvZiBjaGFuZ2VzIHRvIGJlIGFwcGxpZWQgdG8gdGhlIGluc3RhbmNlXG5mdW5jdGlvbiBkaWZmUHJvcHMoaW5zdGFuY2U6IE5ndEFueVJlY29yZCwgcHJvcHM6IE5ndEFueVJlY29yZCkge1xuXHRjb25zdCBwcm9wc0VudHJpZXMgPSBPYmplY3QuZW50cmllcyhwcm9wcyk7XG5cdGNvbnN0IGNoYW5nZXM6IFtrZXk6IHN0cmluZywgdmFsdWU6IHVua25vd25dW10gPSBbXTtcblxuXHRmb3IgKGNvbnN0IFtwcm9wS2V5LCBwcm9wVmFsdWVdIG9mIHByb3BzRW50cmllcykge1xuXHRcdGxldCBrZXkgPSBwcm9wS2V5O1xuXHRcdGlmIChpcy5jb2xvclNwYWNlRXhpc3QoaW5zdGFuY2UpKSB7XG5cdFx0XHRpZiAocHJvcEtleSA9PT0gJ2VuY29kaW5nJykge1xuXHRcdFx0XHRrZXkgPSAnY29sb3JTcGFjZSc7XG5cdFx0XHR9IGVsc2UgaWYgKHByb3BLZXkgPT09ICdvdXRwdXRFbmNvZGluZycpIHtcblx0XHRcdFx0a2V5ID0gJ291dHB1dENvbG9yU3BhY2UnO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRpZiAoaXMuZXF1KHByb3BWYWx1ZSwgaW5zdGFuY2Vba2V5XSkpIGNvbnRpbnVlO1xuXHRcdGNoYW5nZXMucHVzaChbcHJvcEtleSwgcHJvcFZhbHVlXSk7XG5cdH1cblxuXHRyZXR1cm4gY2hhbmdlcztcbn1cblxuLy8gTk9URTogdGhpcyBpcyBhIHdvcmthcm91bmQgdG8gZ2l2ZSB0aGUgaW5zdGFuY2UgYSBjaGFuZ2UgdG8gaGF2ZSB0aGUgc3RvcmUgZnJvbSB0aGUgcGFyZW50LlxuLy8gIHdlIGNsZWFyIHRoaXMgcHJvcGVydHkgYWZ0ZXIgdGhlIGFwcGx5UHJvcHMgaXMgZG9uZVxuZXhwb3J0IGNvbnN0IE5HVF9BUFBMWV9QUk9QUyA9ICdfX25ndF9hcHBseV9wcm9wc19fJztcblxuLy8gVGhpcyBmdW5jdGlvbiBhcHBsaWVzIGEgc2V0IG9mIGNoYW5nZXMgdG8gdGhlIGluc3RhbmNlXG5leHBvcnQgZnVuY3Rpb24gYXBwbHlQcm9wcyhpbnN0YW5jZTogTmd0SW5zdGFuY2VOb2RlLCBwcm9wczogTmd0QW55UmVjb3JkKSB7XG5cdC8vIGlmIHByb3BzIGlzIGVtcHR5XG5cdGlmICghT2JqZWN0LmtleXMocHJvcHMpLmxlbmd0aCkgcmV0dXJuIGluc3RhbmNlO1xuXG5cdC8vIGZpbHRlciBlcXVhbHMsIGFuZCByZXNlcnZlZCBwcm9wc1xuXHRjb25zdCBsb2NhbFN0YXRlID0gZ2V0TG9jYWxTdGF0ZShpbnN0YW5jZSk7XG5cdGNvbnN0IHJvb3RTdGF0ZSA9IGxvY2FsU3RhdGU/LnN0b3JlPy5zbmFwc2hvdCA/PyBpbnN0YW5jZVtOR1RfQVBQTFlfUFJPUFNdPy5zbmFwc2hvdCA/PyAoe30gYXMgTmd0U3RhdGUpO1xuXHRjb25zdCBjaGFuZ2VzID0gZGlmZlByb3BzKGluc3RhbmNlLCBwcm9wcyk7XG5cblx0Zm9yIChsZXQgaSA9IDA7IGkgPCBjaGFuZ2VzLmxlbmd0aDsgaSsrKSB7XG5cdFx0bGV0IFtrZXksIHZhbHVlXSA9IGNoYW5nZXNbaV07XG5cblx0XHQvLyBBbGlhcyAob3V0cHV0KWVuY29kaW5nID0+IChvdXRwdXQpY29sb3JTcGFjZSAoc2luY2UgcjE1Milcblx0XHQvLyBodHRwczovL2dpdGh1Yi5jb20vcG1uZHJzL3JlYWN0LXRocmVlLWZpYmVyL3B1bGwvMjgyOVxuXHRcdGlmIChpcy5jb2xvclNwYWNlRXhpc3QoaW5zdGFuY2UpKSB7XG5cdFx0XHRjb25zdCBzUkdCRW5jb2RpbmcgPSAzMDAxO1xuXHRcdFx0Y29uc3QgU1JHQkNvbG9yU3BhY2UgPSAnc3JnYic7XG5cdFx0XHRjb25zdCBMaW5lYXJTUkdCQ29sb3JTcGFjZSA9ICdzcmdiLWxpbmVhcic7XG5cblx0XHRcdGlmIChrZXkgPT09ICdlbmNvZGluZycpIHtcblx0XHRcdFx0a2V5ID0gJ2NvbG9yU3BhY2UnO1xuXHRcdFx0XHR2YWx1ZSA9IHZhbHVlID09PSBzUkdCRW5jb2RpbmcgPyBTUkdCQ29sb3JTcGFjZSA6IExpbmVhclNSR0JDb2xvclNwYWNlO1xuXHRcdFx0fSBlbHNlIGlmIChrZXkgPT09ICdvdXRwdXRFbmNvZGluZycpIHtcblx0XHRcdFx0a2V5ID0gJ291dHB1dENvbG9yU3BhY2UnO1xuXHRcdFx0XHR2YWx1ZSA9IHZhbHVlID09PSBzUkdCRW5jb2RpbmcgPyBTUkdCQ29sb3JTcGFjZSA6IExpbmVhclNSR0JDb2xvclNwYWNlO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGNvbnN0IGN1cnJlbnRJbnN0YW5jZSA9IGluc3RhbmNlO1xuXHRcdGNvbnN0IHRhcmdldFByb3AgPSBjdXJyZW50SW5zdGFuY2Vba2V5XTtcblxuXHRcdC8vIHNwZWNpYWwgdHJlYXRtZW4gZm9yIG9iamVjdHMgd2l0aCBzdXBwb3J0IGZvciBzZXQvY29weSwgYW5kIGxheWVyc1xuXHRcdGlmICh0YXJnZXRQcm9wICYmIHRhcmdldFByb3BbJ3NldCddICYmICh0YXJnZXRQcm9wWydjb3B5J10gfHwgdGFyZ2V0UHJvcCBpbnN0YW5jZW9mIExheWVycykpIHtcblx0XHRcdGNvbnN0IGlzQ29sb3IgPSB0YXJnZXRQcm9wIGluc3RhbmNlb2YgQ29sb3I7XG5cdFx0XHQvLyBpZiB2YWx1ZSBpcyBhbiBhcnJheVxuXHRcdFx0aWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG5cdFx0XHRcdGlmICh0YXJnZXRQcm9wWydmcm9tQXJyYXknXSkgdGFyZ2V0UHJvcFsnZnJvbUFycmF5J10odmFsdWUpO1xuXHRcdFx0XHRlbHNlIHRhcmdldFByb3BbJ3NldCddKC4uLnZhbHVlKTtcblx0XHRcdH0gLy8gdGVzdCBhZ2FpbiB0YXJnZXQuY29weVxuXHRcdFx0ZWxzZSBpZiAoXG5cdFx0XHRcdHRhcmdldFByb3BbJ2NvcHknXSAmJlxuXHRcdFx0XHR2YWx1ZSAmJlxuXHRcdFx0XHR2YWx1ZS5jb25zdHJ1Y3RvciAmJlxuXHRcdFx0XHR0YXJnZXRQcm9wLmNvbnN0cnVjdG9yLm5hbWUgPT09IHZhbHVlLmNvbnN0cnVjdG9yLm5hbWVcblx0XHRcdCkge1xuXHRcdFx0XHR0YXJnZXRQcm9wWydjb3B5J10odmFsdWUpO1xuXHRcdFx0XHRpZiAoIUNvbG9yTWFuYWdlbWVudCAmJiAhcm9vdFN0YXRlLmxpbmVhciAmJiBpc0NvbG9yKSB0YXJnZXRQcm9wWydjb252ZXJ0U1JHQlRvTGluZWFyJ10oKTtcblx0XHRcdH0gLy8gaWYgbm90aGluZyBlbHNlIGZpdHMsIGp1c3Qgc2V0IHRoZSBzaW5nbGUgdmFsdWUsIGlnbm9yZSB1bmRlZmluZWRcblx0XHRcdGVsc2UgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0Y29uc3QgaXNDb2xvciA9IHRhcmdldFByb3AgaW5zdGFuY2VvZiBDb2xvcjtcblx0XHRcdFx0Ly8gYWxsb3cgc2V0dGluZyBhcnJheSBzY2FsYXJzXG5cdFx0XHRcdGlmICghaXNDb2xvciAmJiB0YXJnZXRQcm9wWydzZXRTY2FsYXInXSkgdGFyZ2V0UHJvcFsnc2V0U2NhbGFyJ10odmFsdWUpO1xuXHRcdFx0XHQvLyBsYXllcnMgaGF2ZSBubyBjb3B5IGZ1bmN0aW9uLCBjb3B5IHRoZSBtYXNrXG5cdFx0XHRcdGVsc2UgaWYgKHRhcmdldFByb3AgaW5zdGFuY2VvZiBMYXllcnMgJiYgdmFsdWUgaW5zdGFuY2VvZiBMYXllcnMpIHRhcmdldFByb3AubWFzayA9IHZhbHVlLm1hc2s7XG5cdFx0XHRcdC8vIG90aGVyd2lzZSBqdXN0IHNldCAuLi5cblx0XHRcdFx0ZWxzZSB0YXJnZXRQcm9wWydzZXQnXSh2YWx1ZSk7XG5cblx0XHRcdFx0Ly8gYXV0by1jb252ZXJ0IHNyZ2Jcblx0XHRcdFx0aWYgKCFDb2xvck1hbmFnZW1lbnQgJiYgIXJvb3RTdGF0ZT8ubGluZWFyICYmIGlzQ29sb3IpIHRhcmdldFByb3AuY29udmVydFNSR0JUb0xpbmVhcigpO1xuXHRcdFx0fVxuXHRcdH0gLy8gZWxzZSBqdXN0IG92ZXJ3cml0ZSB0aGUgdmFsdWVcblx0XHRlbHNlIHtcblx0XHRcdGN1cnJlbnRJbnN0YW5jZVtrZXldID0gdmFsdWU7XG5cdFx0XHQvLyBhdXRvLWNvbnZlcnQgc3JnYiB0ZXh0dXJlc1xuXHRcdFx0aWYgKFxuXHRcdFx0XHRjdXJyZW50SW5zdGFuY2Vba2V5XSBpbnN0YW5jZW9mIFRleHR1cmUgJiZcblx0XHRcdFx0Y3VycmVudEluc3RhbmNlW2tleV0uZm9ybWF0ID09PSBSR0JBRm9ybWF0ICYmXG5cdFx0XHRcdGN1cnJlbnRJbnN0YW5jZVtrZXldLnR5cGUgPT09IFVuc2lnbmVkQnl0ZVR5cGVcblx0XHRcdCkge1xuXHRcdFx0XHRjb25zdCB0ZXh0dXJlID0gY3VycmVudEluc3RhbmNlW2tleV0gYXMgVGV4dHVyZTtcblx0XHRcdFx0aWYgKHJvb3RTdGF0ZT8uZ2wpIHtcblx0XHRcdFx0XHRpZiAoaXMuY29sb3JTcGFjZUV4aXN0KHRleHR1cmUpICYmIGlzLmNvbG9yU3BhY2VFeGlzdChyb290U3RhdGUuZ2wpKVxuXHRcdFx0XHRcdFx0dGV4dHVyZS5jb2xvclNwYWNlID0gcm9vdFN0YXRlLmdsLm91dHB1dENvbG9yU3BhY2U7XG5cdFx0XHRcdFx0Ly8gQHRzLWV4cGVjdC1lcnJvciAtIG9sZCB2ZXJzaW9uIG9mIHRocmVlanNcblx0XHRcdFx0XHRlbHNlIHRleHR1cmUuZW5jb2RpbmcgPSByb290U3RhdGUuZ2wub3V0cHV0RW5jb2Rpbmc7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHRjaGVja1VwZGF0ZShjdXJyZW50SW5zdGFuY2Vba2V5XSk7XG5cdFx0Y2hlY2tVcGRhdGUodGFyZ2V0UHJvcCk7XG5cdFx0aW52YWxpZGF0ZUluc3RhbmNlKGluc3RhbmNlKTtcblx0fVxuXG5cdGNvbnN0IGluc3RhbmNlSGFuZGxlcnNDb3VudCA9IGxvY2FsU3RhdGU/LmV2ZW50Q291bnQ7XG5cdGNvbnN0IHBhcmVudCA9IGxvY2FsU3RhdGU/Lmluc3RhbmNlU3RvcmU/LmdldCgncGFyZW50Jyk7XG5cblx0aWYgKHBhcmVudCAmJiByb290U3RhdGUuaW50ZXJuYWwgJiYgaW5zdGFuY2VbJ3JheWNhc3QnXSAmJiBpbnN0YW5jZUhhbmRsZXJzQ291bnQgIT09IGxvY2FsU3RhdGU/LmV2ZW50Q291bnQpIHtcblx0XHQvLyBQcmUtZW1wdGl2ZWx5IHJlbW92ZSB0aGUgaW5zdGFuY2UgZnJvbSB0aGUgaW50ZXJhY3Rpb24gbWFuYWdlclxuXHRcdGNvbnN0IGluZGV4ID0gcm9vdFN0YXRlLmludGVybmFsLmludGVyYWN0aW9uLmluZGV4T2YoaW5zdGFuY2UpO1xuXHRcdGlmIChpbmRleCA+IC0xKSByb290U3RhdGUuaW50ZXJuYWwuaW50ZXJhY3Rpb24uc3BsaWNlKGluZGV4LCAxKTtcblx0XHQvLyBBZGQgdGhlIGluc3RhbmNlIHRvIHRoZSBpbnRlcmFjdGlvbiBtYW5hZ2VyIG9ubHkgd2hlbiBpdCBoYXMgaGFuZGxlcnNcblx0XHRpZiAobG9jYWxTdGF0ZT8uZXZlbnRDb3VudCkgcm9vdFN0YXRlLmludGVybmFsLmludGVyYWN0aW9uLnB1c2goaW5zdGFuY2UpO1xuXHR9XG5cblx0aWYgKHBhcmVudCAmJiBsb2NhbFN0YXRlPy5vblVwZGF0ZSAmJiBjaGFuZ2VzLmxlbmd0aCkge1xuXHRcdGxvY2FsU3RhdGUub25VcGRhdGUoaW5zdGFuY2UpO1xuXHR9XG5cblx0Ly8gY2xlYXJpbmcgdGhlIGludGVybWVkaWF0ZSBzdG9yZSBmcm9tIHRoZSBpbnN0YW5jZVxuXHRpZiAoaW5zdGFuY2VbTkdUX0FQUExZX1BST1BTXSkge1xuXHRcdGRlbGV0ZSBpbnN0YW5jZVtOR1RfQVBQTFlfUFJPUFNdO1xuXHR9XG5cblx0cmV0dXJuIGluc3RhbmNlO1xufVxuIl19
|
|
@@ -1,32 +1,46 @@
|
|
|
1
1
|
import { getLocalState } from '../instance';
|
|
2
|
-
import { applyProps } from './apply-props';
|
|
3
|
-
export function attach(object, value, paths = []) {
|
|
2
|
+
import { applyProps, NGT_APPLY_PROPS } from './apply-props';
|
|
3
|
+
export function attach(object, value, paths = [], useApplyProps = false) {
|
|
4
4
|
const [base, ...remaining] = paths;
|
|
5
5
|
if (!base)
|
|
6
6
|
return;
|
|
7
7
|
if (remaining.length === 0) {
|
|
8
|
-
|
|
8
|
+
if (useApplyProps)
|
|
9
|
+
applyProps(object, { [base]: value });
|
|
10
|
+
else
|
|
11
|
+
object[base] = value;
|
|
9
12
|
}
|
|
10
13
|
else {
|
|
11
|
-
assignEmpty(object, base);
|
|
12
|
-
attach(object[base], value, remaining);
|
|
14
|
+
assignEmpty(object, base, useApplyProps);
|
|
15
|
+
attach(object[base], value, remaining, useApplyProps);
|
|
13
16
|
}
|
|
14
17
|
}
|
|
15
18
|
export function detach(parent, child, attachProp) {
|
|
16
19
|
const childLocalState = getLocalState(child);
|
|
17
|
-
if (
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
if (childLocalState) {
|
|
21
|
+
if (Array.isArray(attachProp))
|
|
22
|
+
attach(parent, childLocalState.previousAttach, attachProp, childLocalState.isRaw);
|
|
23
|
+
else
|
|
24
|
+
childLocalState.previousAttach();
|
|
22
25
|
}
|
|
23
26
|
}
|
|
24
|
-
function assignEmpty(obj, base) {
|
|
27
|
+
function assignEmpty(obj, base, shouldAssignStoreForApplyProps = false) {
|
|
25
28
|
if ((!Object.hasOwn(obj, base) && Reflect && !!Reflect.has && !Reflect.has(obj, base)) || obj[base] === undefined) {
|
|
26
29
|
obj[base] = {};
|
|
27
30
|
}
|
|
31
|
+
if (shouldAssignStoreForApplyProps) {
|
|
32
|
+
const localState = getLocalState(obj[base]);
|
|
33
|
+
// if we already have local state, bail out
|
|
34
|
+
if (localState)
|
|
35
|
+
return;
|
|
36
|
+
const parentLocalState = getLocalState(obj);
|
|
37
|
+
// if parent doesn't have local state, bail out
|
|
38
|
+
if (!parentLocalState)
|
|
39
|
+
return;
|
|
40
|
+
Object.assign(obj[base], { [NGT_APPLY_PROPS]: parentLocalState.store });
|
|
41
|
+
}
|
|
28
42
|
}
|
|
29
43
|
export function createAttachFunction(cb) {
|
|
30
44
|
return (parent, child, store) => cb({ parent, child, store });
|
|
31
45
|
}
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0YWNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvdXRpbHMvYXR0YWNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFNUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHNUQsTUFBTSxVQUFVLE1BQU0sQ0FBQyxNQUFvQixFQUFFLEtBQWMsRUFBRSxRQUFrQixFQUFFLEVBQUUsYUFBYSxHQUFHLEtBQUs7SUFDdkcsTUFBTSxDQUFDLElBQUksRUFBRSxHQUFHLFNBQVMsQ0FBQyxHQUFHLEtBQUssQ0FBQztJQUNuQyxJQUFJLENBQUMsSUFBSTtRQUFFLE9BQU87SUFFbEIsSUFBSSxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQzVCLElBQUksYUFBYTtZQUFFLFVBQVUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7O1lBQ3BELE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUM7SUFDM0IsQ0FBQztTQUFNLENBQUM7UUFDUCxXQUFXLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxhQUFhLENBQUMsQ0FBQztRQUN6QyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDdkQsQ0FBQztBQUNGLENBQUM7QUFFRCxNQUFNLFVBQVUsTUFBTSxDQUFDLE1BQW9CLEVBQUUsS0FBbUIsRUFBRSxVQUF3QztJQUN6RyxNQUFNLGVBQWUsR0FBRyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0MsSUFBSSxlQUFlLEVBQUUsQ0FBQztRQUNyQixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDO1lBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxlQUFlLENBQUMsY0FBYyxFQUFFLFVBQVUsRUFBRSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7O1lBQzNHLGVBQWUsQ0FBQyxjQUE2QixFQUFFLENBQUM7SUFDdkQsQ0FBQztBQUNGLENBQUM7QUFFRCxTQUFTLFdBQVcsQ0FBQyxHQUFpQixFQUFFLElBQVksRUFBRSw4QkFBOEIsR0FBRyxLQUFLO0lBQzNGLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxJQUFJLE9BQU8sSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ25ILEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDaEIsQ0FBQztJQUVELElBQUksOEJBQThCLEVBQUUsQ0FBQztRQUNwQyxNQUFNLFVBQVUsR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDNUMsMkNBQTJDO1FBQzNDLElBQUksVUFBVTtZQUFFLE9BQU87UUFFdkIsTUFBTSxnQkFBZ0IsR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUMsK0NBQStDO1FBQy9DLElBQUksQ0FBQyxnQkFBZ0I7WUFBRSxPQUFPO1FBRTlCLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxlQUFlLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7QUFDRixDQUFDO0FBRUQsTUFBTSxVQUFVLG9CQUFvQixDQUNuQyxFQUF3RztJQUV4RyxPQUFPLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztBQUMvRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0TG9jYWxTdGF0ZSB9IGZyb20gJy4uL2luc3RhbmNlJztcbmltcG9ydCB7IE5ndEFueVJlY29yZCwgTmd0QXR0YWNoRnVuY3Rpb24sIE5ndFN0YXRlIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgYXBwbHlQcm9wcywgTkdUX0FQUExZX1BST1BTIH0gZnJvbSAnLi9hcHBseS1wcm9wcyc7XG5pbXBvcnQgeyBOZ3RTaWduYWxTdG9yZSB9IGZyb20gJy4vc2lnbmFsLXN0b3JlJztcblxuZXhwb3J0IGZ1bmN0aW9uIGF0dGFjaChvYmplY3Q6IE5ndEFueVJlY29yZCwgdmFsdWU6IHVua25vd24sIHBhdGhzOiBzdHJpbmdbXSA9IFtdLCB1c2VBcHBseVByb3BzID0gZmFsc2UpOiB2b2lkIHtcblx0Y29uc3QgW2Jhc2UsIC4uLnJlbWFpbmluZ10gPSBwYXRocztcblx0aWYgKCFiYXNlKSByZXR1cm47XG5cblx0aWYgKHJlbWFpbmluZy5sZW5ndGggPT09IDApIHtcblx0XHRpZiAodXNlQXBwbHlQcm9wcykgYXBwbHlQcm9wcyhvYmplY3QsIHsgW2Jhc2VdOiB2YWx1ZSB9KTtcblx0XHRlbHNlIG9iamVjdFtiYXNlXSA9IHZhbHVlO1xuXHR9IGVsc2Uge1xuXHRcdGFzc2lnbkVtcHR5KG9iamVjdCwgYmFzZSwgdXNlQXBwbHlQcm9wcyk7XG5cdFx0YXR0YWNoKG9iamVjdFtiYXNlXSwgdmFsdWUsIHJlbWFpbmluZywgdXNlQXBwbHlQcm9wcyk7XG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRldGFjaChwYXJlbnQ6IE5ndEFueVJlY29yZCwgY2hpbGQ6IE5ndEFueVJlY29yZCwgYXR0YWNoUHJvcDogc3RyaW5nW10gfCBOZ3RBdHRhY2hGdW5jdGlvbikge1xuXHRjb25zdCBjaGlsZExvY2FsU3RhdGUgPSBnZXRMb2NhbFN0YXRlKGNoaWxkKTtcblx0aWYgKGNoaWxkTG9jYWxTdGF0ZSkge1xuXHRcdGlmIChBcnJheS5pc0FycmF5KGF0dGFjaFByb3ApKSBhdHRhY2gocGFyZW50LCBjaGlsZExvY2FsU3RhdGUucHJldmlvdXNBdHRhY2gsIGF0dGFjaFByb3AsIGNoaWxkTG9jYWxTdGF0ZS5pc1Jhdyk7XG5cdFx0ZWxzZSAoY2hpbGRMb2NhbFN0YXRlLnByZXZpb3VzQXR0YWNoIGFzICgpID0+IHZvaWQpKCk7XG5cdH1cbn1cblxuZnVuY3Rpb24gYXNzaWduRW1wdHkob2JqOiBOZ3RBbnlSZWNvcmQsIGJhc2U6IHN0cmluZywgc2hvdWxkQXNzaWduU3RvcmVGb3JBcHBseVByb3BzID0gZmFsc2UpIHtcblx0aWYgKCghT2JqZWN0Lmhhc093bihvYmosIGJhc2UpICYmIFJlZmxlY3QgJiYgISFSZWZsZWN0LmhhcyAmJiAhUmVmbGVjdC5oYXMob2JqLCBiYXNlKSkgfHwgb2JqW2Jhc2VdID09PSB1bmRlZmluZWQpIHtcblx0XHRvYmpbYmFzZV0gPSB7fTtcblx0fVxuXG5cdGlmIChzaG91bGRBc3NpZ25TdG9yZUZvckFwcGx5UHJvcHMpIHtcblx0XHRjb25zdCBsb2NhbFN0YXRlID0gZ2V0TG9jYWxTdGF0ZShvYmpbYmFzZV0pO1xuXHRcdC8vIGlmIHdlIGFscmVhZHkgaGF2ZSBsb2NhbCBzdGF0ZSwgYmFpbCBvdXRcblx0XHRpZiAobG9jYWxTdGF0ZSkgcmV0dXJuO1xuXG5cdFx0Y29uc3QgcGFyZW50TG9jYWxTdGF0ZSA9IGdldExvY2FsU3RhdGUob2JqKTtcblx0XHQvLyBpZiBwYXJlbnQgZG9lc24ndCBoYXZlIGxvY2FsIHN0YXRlLCBiYWlsIG91dFxuXHRcdGlmICghcGFyZW50TG9jYWxTdGF0ZSkgcmV0dXJuO1xuXG5cdFx0T2JqZWN0LmFzc2lnbihvYmpbYmFzZV0sIHsgW05HVF9BUFBMWV9QUk9QU106IHBhcmVudExvY2FsU3RhdGUuc3RvcmUgfSk7XG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUF0dGFjaEZ1bmN0aW9uPFRDaGlsZCA9IGFueSwgVFBhcmVudCA9IGFueT4oXG5cdGNiOiAocGFyYW1zOiB7IHBhcmVudDogVFBhcmVudDsgY2hpbGQ6IFRDaGlsZDsgc3RvcmU6IE5ndFNpZ25hbFN0b3JlPE5ndFN0YXRlPiB9KSA9PiAoKCkgPT4gdm9pZCkgfCB2b2lkLFxuKTogTmd0QXR0YWNoRnVuY3Rpb248VENoaWxkLCBUUGFyZW50PiB7XG5cdHJldHVybiAocGFyZW50LCBjaGlsZCwgc3RvcmUpID0+IGNiKHsgcGFyZW50LCBjaGlsZCwgc3RvcmUgfSk7XG59XG4iXX0=
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { DestroyRef, inject } from '@angular/core';
|
|
2
|
+
import { assertInjector } from 'ngxtension/assert-injector';
|
|
3
|
+
import { injectStore } from '../store';
|
|
4
|
+
export function injectBeforeRender(cb, { priority = 0, injector } = {}) {
|
|
5
|
+
return assertInjector(injectBeforeRender, injector, () => {
|
|
6
|
+
const store = injectStore();
|
|
7
|
+
const sub = store.get('internal').subscribe(cb, priority, store);
|
|
8
|
+
inject(DestroyRef).onDestroy(() => void sub());
|
|
9
|
+
return sub;
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVmb3JlLXJlbmRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3V0aWxzL2JlZm9yZS1yZW5kZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBWSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFHdkMsTUFBTSxVQUFVLGtCQUFrQixDQUNqQyxFQUFxQyxFQUNyQyxFQUFFLFFBQVEsR0FBRyxDQUFDLEVBQUUsUUFBUSxLQUFpRCxFQUFFO0lBRTNFLE9BQU8sY0FBYyxDQUFDLGtCQUFrQixFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUU7UUFDeEQsTUFBTSxLQUFLLEdBQUcsV0FBVyxFQUFFLENBQUM7UUFDNUIsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNqRSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUMsQ0FBQztRQUMvQyxPQUFPLEdBQUcsQ0FBQztJQUNaLENBQUMsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlc3Ryb3lSZWYsIEluamVjdG9yLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGFzc2VydEluamVjdG9yIH0gZnJvbSAnbmd4dGVuc2lvbi9hc3NlcnQtaW5qZWN0b3InO1xuaW1wb3J0IHsgaW5qZWN0U3RvcmUgfSBmcm9tICcuLi9zdG9yZSc7XG5pbXBvcnQgeyBOZ3RCZWZvcmVSZW5kZXJSZWNvcmQgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RCZWZvcmVSZW5kZXIoXG5cdGNiOiBOZ3RCZWZvcmVSZW5kZXJSZWNvcmRbJ2NhbGxiYWNrJ10sXG5cdHsgcHJpb3JpdHkgPSAwLCBpbmplY3RvciB9OiB7IHByaW9yaXR5PzogbnVtYmVyOyBpbmplY3Rvcj86IEluamVjdG9yIH0gPSB7fSxcbikge1xuXHRyZXR1cm4gYXNzZXJ0SW5qZWN0b3IoaW5qZWN0QmVmb3JlUmVuZGVyLCBpbmplY3RvciwgKCkgPT4ge1xuXHRcdGNvbnN0IHN0b3JlID0gaW5qZWN0U3RvcmUoKTtcblx0XHRjb25zdCBzdWIgPSBzdG9yZS5nZXQoJ2ludGVybmFsJykuc3Vic2NyaWJlKGNiLCBwcmlvcml0eSwgc3RvcmUpO1xuXHRcdGluamVjdChEZXN0cm95UmVmKS5vbkRlc3Ryb3koKCkgPT4gdm9pZCBzdWIoKSk7XG5cdFx0cmV0dXJuIHN1Yjtcblx0fSk7XG59XG4iXX0=
|
package/esm2022/lib/utils/is.mjs
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { ElementRef } from '@angular/core';
|
|
2
|
-
import * as THREE from 'three';
|
|
3
2
|
export const is = {
|
|
4
3
|
obj: (a) => a === Object(a) && !Array.isArray(a) && typeof a !== 'function',
|
|
5
4
|
material: (a) => !!a && a.isMaterial,
|
|
@@ -7,11 +6,13 @@ export const is = {
|
|
|
7
6
|
orthographicCamera: (a) => !!a && a.isOrthographicCamera,
|
|
8
7
|
perspectiveCamera: (a) => !!a && a.isPerspectiveCamera,
|
|
9
8
|
camera: (a) => !!a && a.isCamera,
|
|
10
|
-
renderer: (a) => !!a && a
|
|
9
|
+
renderer: (a) => !!a && typeof a === 'object' && 'render' in a && typeof a['render'] === 'function',
|
|
11
10
|
scene: (a) => !!a && a.isScene,
|
|
12
|
-
object3D: (a) => !!a && a.isObject3D,
|
|
13
|
-
instance: (a) => !!a && !!a['__ngt__'],
|
|
14
11
|
ref: (a) => a instanceof ElementRef,
|
|
12
|
+
instance: (a) => !!a && !!a['__ngt__'],
|
|
13
|
+
object3D: (a) => !!a && a.isObject3D,
|
|
14
|
+
// instance: (a: unknown): a is NgtInstanceNode => !!a && !!(a as NgtAnyRecord)['__ngt__'],
|
|
15
|
+
// ref: (a: unknown): a is ElementRef => a instanceof ElementRef,
|
|
15
16
|
colorSpaceExist: (object) => 'colorSpace' in object || 'outputColorSpace' in object,
|
|
16
17
|
equ(a, b, { arrays = 'shallow', objects = 'reference', strict = true } = {}) {
|
|
17
18
|
// Wrong type or one of the two undefined, doesn't match
|
|
@@ -48,4 +49,4 @@ export const is = {
|
|
|
48
49
|
return true;
|
|
49
50
|
},
|
|
50
51
|
};
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi91dGlscy9pcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBYTNDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsR0FBRztJQUNqQixHQUFHLEVBQUUsQ0FBQyxDQUFVLEVBQWUsRUFBRSxDQUFDLENBQUMsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxLQUFLLFVBQVU7SUFDakcsUUFBUSxFQUFFLENBQUMsQ0FBVSxFQUFpQixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSyxDQUFjLENBQUMsVUFBVTtJQUMxRSxRQUFRLEVBQUUsQ0FBQyxDQUFVLEVBQXVCLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFLLENBQW9CLENBQUMsZ0JBQWdCO0lBQzVGLGtCQUFrQixFQUFFLENBQUMsQ0FBVSxFQUEyQixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSyxDQUF3QixDQUFDLG9CQUFvQjtJQUNsSCxpQkFBaUIsRUFBRSxDQUFDLENBQVUsRUFBMEIsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUssQ0FBdUIsQ0FBQyxtQkFBbUI7SUFDOUcsTUFBTSxFQUFFLENBQUMsQ0FBVSxFQUFlLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFLLENBQVksQ0FBQyxRQUFRO0lBQ2xFLFFBQVEsRUFBRSxDQUFDLENBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxPQUFPLENBQUMsS0FBSyxRQUFRLElBQUksUUFBUSxJQUFJLENBQUMsSUFBSSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxVQUFVO0lBQzVHLEtBQUssRUFBRSxDQUFDLENBQVUsRUFBYyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSyxDQUFXLENBQUMsT0FBTztJQUM5RCxHQUFHLEVBQUUsQ0FBQyxDQUFVLEVBQW1CLEVBQUUsQ0FBQyxDQUFDLFlBQVksVUFBVTtJQUM3RCxRQUFRLEVBQUUsQ0FBQyxDQUFVLEVBQXdCLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBRSxDQUFrQixDQUFDLFNBQVMsQ0FBQztJQUN2RixRQUFRLEVBQUUsQ0FBQyxDQUFVLEVBQWlCLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFLLENBQWMsQ0FBQyxVQUFVO0lBQzFFLDJGQUEyRjtJQUMzRixpRUFBaUU7SUFDakUsZUFBZSxFQUFFLENBSWhCLE1BQVMsRUFDUyxFQUFFLENBQUMsWUFBWSxJQUFJLE1BQU0sSUFBSSxrQkFBa0IsSUFBSSxNQUFNO0lBQzVFLEdBQUcsQ0FBQyxDQUFNLEVBQUUsQ0FBTSxFQUFFLEVBQUUsTUFBTSxHQUFHLFNBQVMsRUFBRSxPQUFPLEdBQUcsV0FBVyxFQUFFLE1BQU0sR0FBRyxJQUFJLEtBQW1CLEVBQUU7UUFDbEcsd0RBQXdEO1FBQ3hELElBQUksT0FBTyxDQUFDLEtBQUssT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ3ZELG1DQUFtQztRQUNuQyxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsSUFBSSxPQUFPLENBQUMsS0FBSyxRQUFRO1lBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25FLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEIsSUFBSSxLQUFLLElBQUksT0FBTyxLQUFLLFdBQVc7WUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckQsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMvQixJQUFJLEtBQUssSUFBSSxNQUFNLEtBQUssV0FBVztZQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwRCxnRUFBZ0U7UUFDaEUsSUFBSSxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQzdDLCtCQUErQjtRQUMvQixJQUFJLENBQUMsQ0FBQztRQUNOLEtBQUssQ0FBQyxJQUFJLENBQUM7WUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ3pDLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFBRSxPQUFPLEtBQUssQ0FBQztRQUMxRCxJQUFJLENBQUMsS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2xCLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQztnQkFBRSxPQUFPLElBQUksQ0FBQztZQUMzRCxJQUFJLEtBQUssSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQztnQkFBRSxPQUFPLElBQUksQ0FBQztZQUNyRixJQUFJLENBQUMsS0FBSyxDQUFDO2dCQUFFLE9BQU8sS0FBSyxDQUFDO1FBQzNCLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNiLENBQUM7Q0FDRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcblx0QnVmZmVyR2VvbWV0cnksXG5cdENhbWVyYSxcblx0TWF0ZXJpYWwsXG5cdE9iamVjdDNELFxuXHRPcnRob2dyYXBoaWNDYW1lcmEsXG5cdFBlcnNwZWN0aXZlQ2FtZXJhLFxuXHRTY2VuZSxcblx0VGV4dHVyZSxcbn0gZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgTmd0QW55UmVjb3JkLCBOZ3RFcXVDb25maWcsIE5ndEluc3RhbmNlTm9kZSwgTmd0UmVuZGVyZXJMaWtlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgaXMgPSB7XG5cdG9iajogKGE6IHVua25vd24pOiBhIGlzIG9iamVjdCA9PiBhID09PSBPYmplY3QoYSkgJiYgIUFycmF5LmlzQXJyYXkoYSkgJiYgdHlwZW9mIGEgIT09ICdmdW5jdGlvbicsXG5cdG1hdGVyaWFsOiAoYTogdW5rbm93bik6IGEgaXMgTWF0ZXJpYWwgPT4gISFhICYmIChhIGFzIE1hdGVyaWFsKS5pc01hdGVyaWFsLFxuXHRnZW9tZXRyeTogKGE6IHVua25vd24pOiBhIGlzIEJ1ZmZlckdlb21ldHJ5ID0+ICEhYSAmJiAoYSBhcyBCdWZmZXJHZW9tZXRyeSkuaXNCdWZmZXJHZW9tZXRyeSxcblx0b3J0aG9ncmFwaGljQ2FtZXJhOiAoYTogdW5rbm93bik6IGEgaXMgT3J0aG9ncmFwaGljQ2FtZXJhID0+ICEhYSAmJiAoYSBhcyBPcnRob2dyYXBoaWNDYW1lcmEpLmlzT3J0aG9ncmFwaGljQ2FtZXJhLFxuXHRwZXJzcGVjdGl2ZUNhbWVyYTogKGE6IHVua25vd24pOiBhIGlzIFBlcnNwZWN0aXZlQ2FtZXJhID0+ICEhYSAmJiAoYSBhcyBQZXJzcGVjdGl2ZUNhbWVyYSkuaXNQZXJzcGVjdGl2ZUNhbWVyYSxcblx0Y2FtZXJhOiAoYTogdW5rbm93bik6IGEgaXMgQ2FtZXJhID0+ICEhYSAmJiAoYSBhcyBDYW1lcmEpLmlzQ2FtZXJhLFxuXHRyZW5kZXJlcjogKGE6IHVua25vd24pID0+ICEhYSAmJiB0eXBlb2YgYSA9PT0gJ29iamVjdCcgJiYgJ3JlbmRlcicgaW4gYSAmJiB0eXBlb2YgYVsncmVuZGVyJ10gPT09ICdmdW5jdGlvbicsXG5cdHNjZW5lOiAoYTogdW5rbm93bik6IGEgaXMgU2NlbmUgPT4gISFhICYmIChhIGFzIFNjZW5lKS5pc1NjZW5lLFxuXHRyZWY6IChhOiB1bmtub3duKTogYSBpcyBFbGVtZW50UmVmID0+IGEgaW5zdGFuY2VvZiBFbGVtZW50UmVmLFxuXHRpbnN0YW5jZTogKGE6IHVua25vd24pOiBhIGlzIE5ndEluc3RhbmNlTm9kZSA9PiAhIWEgJiYgISEoYSBhcyBOZ3RBbnlSZWNvcmQpWydfX25ndF9fJ10sXG5cdG9iamVjdDNEOiAoYTogdW5rbm93bik6IGEgaXMgT2JqZWN0M0QgPT4gISFhICYmIChhIGFzIE9iamVjdDNEKS5pc09iamVjdDNELFxuXHQvLyBpbnN0YW5jZTogKGE6IHVua25vd24pOiBhIGlzIE5ndEluc3RhbmNlTm9kZSA9PiAhIWEgJiYgISEoYSBhcyBOZ3RBbnlSZWNvcmQpWydfX25ndF9fJ10sXG5cdC8vIHJlZjogKGE6IHVua25vd24pOiBhIGlzIEVsZW1lbnRSZWYgPT4gYSBpbnN0YW5jZW9mIEVsZW1lbnRSZWYsXG5cdGNvbG9yU3BhY2VFeGlzdDogPFxuXHRcdFQgZXh0ZW5kcyBOZ3RSZW5kZXJlckxpa2UgfCBUZXh0dXJlIHwgb2JqZWN0LFxuXHRcdFAgPSBUIGV4dGVuZHMgTmd0UmVuZGVyZXJMaWtlID8geyBvdXRwdXRDb2xvclNwYWNlOiBzdHJpbmcgfSA6IHsgY29sb3JTcGFjZTogc3RyaW5nIH0sXG5cdD4oXG5cdFx0b2JqZWN0OiBULFxuXHQpOiBvYmplY3QgaXMgVCAmIFAgPT4gJ2NvbG9yU3BhY2UnIGluIG9iamVjdCB8fCAnb3V0cHV0Q29sb3JTcGFjZScgaW4gb2JqZWN0LFxuXHRlcXUoYTogYW55LCBiOiBhbnksIHsgYXJyYXlzID0gJ3NoYWxsb3cnLCBvYmplY3RzID0gJ3JlZmVyZW5jZScsIHN0cmljdCA9IHRydWUgfTogTmd0RXF1Q29uZmlnID0ge30pIHtcblx0XHQvLyBXcm9uZyB0eXBlIG9yIG9uZSBvZiB0aGUgdHdvIHVuZGVmaW5lZCwgZG9lc24ndCBtYXRjaFxuXHRcdGlmICh0eXBlb2YgYSAhPT0gdHlwZW9mIGIgfHwgISFhICE9PSAhIWIpIHJldHVybiBmYWxzZTtcblx0XHQvLyBBdG9taWMsIGp1c3QgY29tcGFyZSBhIGFnYWluc3QgYlxuXHRcdGlmICh0eXBlb2YgYSA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIGEgPT09ICdudW1iZXInKSByZXR1cm4gYSA9PT0gYjtcblx0XHRjb25zdCBpc09iaiA9IGlzLm9iaihhKTtcblx0XHRpZiAoaXNPYmogJiYgb2JqZWN0cyA9PT0gJ3JlZmVyZW5jZScpIHJldHVybiBhID09PSBiO1xuXHRcdGNvbnN0IGlzQXJyID0gQXJyYXkuaXNBcnJheShhKTtcblx0XHRpZiAoaXNBcnIgJiYgYXJyYXlzID09PSAncmVmZXJlbmNlJykgcmV0dXJuIGEgPT09IGI7XG5cdFx0Ly8gQXJyYXkgb3IgT2JqZWN0LCBzaGFsbG93IGNvbXBhcmUgZmlyc3QgdG8gc2VlIGlmIGl0J3MgYSBtYXRjaFxuXHRcdGlmICgoaXNBcnIgfHwgaXNPYmopICYmIGEgPT09IGIpIHJldHVybiB0cnVlO1xuXHRcdC8vIExhc3QgcmVzb3J0LCBnbyB0aHJvdWdoIGtleXNcblx0XHRsZXQgaTtcblx0XHRmb3IgKGkgaW4gYSkgaWYgKCEoaSBpbiBiKSkgcmV0dXJuIGZhbHNlO1xuXHRcdGZvciAoaSBpbiBzdHJpY3QgPyBiIDogYSkgaWYgKGFbaV0gIT09IGJbaV0pIHJldHVybiBmYWxzZTtcblx0XHRpZiAoaSA9PT0gdm9pZCAwKSB7XG5cdFx0XHRpZiAoaXNBcnIgJiYgYS5sZW5ndGggPT09IDAgJiYgYi5sZW5ndGggPT09IDApIHJldHVybiB0cnVlO1xuXHRcdFx0aWYgKGlzT2JqICYmIE9iamVjdC5rZXlzKGEpLmxlbmd0aCA9PT0gMCAmJiBPYmplY3Qua2V5cyhiKS5sZW5ndGggPT09IDApIHJldHVybiB0cnVlO1xuXHRcdFx0aWYgKGEgIT09IGIpIHJldHVybiBmYWxzZTtcblx0XHR9XG5cdFx0cmV0dXJuIHRydWU7XG5cdH0sXG59O1xuIl19
|