@net7/boilerplate-arianna 5.2.5 → 5.2.6

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.
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL243LWJvaWxlcnBsYXRlLWFyaWFubmEvc3JjL2xpYi9jb25maWctdHlwZXMvYXJpYW5uYS9sYXlvdXRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktaW50ZXJmYWNlICovXG5pbXBvcnQgeyBIZXJvRGF0YSwgSXRlbVByZXZpZXdEYXRhIH0gZnJvbSAnQG5ldDcvY29tcG9uZW50cyc7XG5cbmludGVyZmFjZSBIb21lSGVyb0RhdGEgZXh0ZW5kcyBPbWl0PEhlcm9EYXRhLCAnaW5wdXQnPiB7XG4gIC8qKiBhZHZhbmNlZCBzZWFyY2ggZmFsbGJhY2sgdGV4dCAqL1xuICBmYWxsYmFjaz86IHN0cmluZztcbiAgLyoqIGhlcm8gdGV4dCBpbnB1dCAqL1xuICBpbnB1dD86IHtcbiAgICBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgICBpY29uPzogc3RyaW5nO1xuICAgIHBheWxvYWQ/OiBhbnk7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29uZmlnQXJpYW5uYUxheW91dCB7XG4gIHBhZ2VOYW1lPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbmZpZ0FyaWFubmFIb21lTGF5b3V0IGV4dGVuZHMgQ29uZmlnQXJpYW5uYUxheW91dCB7XG4gIC8qKiBob21lIHRvcCBoZXJvICovXG4gICd0b3AtaGVybyc/OiBIb21lSGVyb0RhdGE7XG4gIC8qKiBob21lIGJvdHRvbSBoZXJvICovXG4gICdib3R0b20taGVybyc/OiBIb21lSGVyb0RhdGE7XG4gIC8qKiBob21lIGV4dGVybmFsIGxpbmtzICovXG4gICdvdXRlci1saW5rcyc/OiB7XG4gICAgdGl0bGU/OiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gICAgdGVzdDogSXRlbVByZXZpZXdEYXRhW107XG4gIH07XG4gIC8qKiBmYWNldHMgd3JhcHBlciBhdXRvY29tcGxldGUgcmVzdWx0cyBsaW1pdCAqL1xuICAncmVzdWx0cy1saW1pdCc6IG51bWJlcjtcbiAgLyoqIGZhY2V0cyB3cmFwcGVyIGF1dG9jb21wbGV0ZSBpdGVtIGxlbmd0aCAqL1xuICAnbWF4LWl0ZW0tbGVuZ3RoJzogbnVtYmVyO1xuICAvKiogZmFjZXRzIHdyYXBwZXIgYXV0b2NvbXBsZXRlIGZhbGxiYWNrIHRleHQgKi9cbiAgJ2F1dG9jb21wbGV0ZS1mYWxsYmFjayc6IHN0cmluZztcbiAgLyoqIGl0ZW0gcHJldmlldyAocmlnaHQgc2lkZWJhcikgZmFsbGJhY2sgdGV4dCAqL1xuICAnbGlua2VkLW9iamVjdHMtZmFsbGJhY2snOiBzdHJpbmc7XG4gIC8qKiBmYWNldHMgdmlldyBhbGwgbGlua3MgKi9cbiAgJ3ZpZXctYWxsLWxpbmtzJz86IHtcbiAgICBsYWJlbD86IHN0cmluZztcbiAgICBlbmFibGVkPzogYm9vbGVhbjtcbiAgfTtcbn1cblxudHlwZSBTdHJpbmdMaW1pdENvbmZpZyA9IHtcbiAgLyoqIHRleHQgbGltaXQgKi9cbiAgbWF4TGVuZ3RoPzogbnVtYmVyO1xuICAvKiogZWxsaXBzaXMgc3RyaW5nICovXG4gIGNoYXI/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29uZmlnQXJpYW5uYUNvbGxlY3Rpb25MYXlvdXQgZXh0ZW5kcyBDb25maWdBcmlhbm5hTGF5b3V0IHtcbiAgLyoqIHBhZ2UgaGVhZGVyICovXG4gIGhlYWRlcjogU3RyaW5nTGltaXRDb25maWc7XG4gIC8qKiBwYWdlIGRlc2NyaXB0aW9uICovXG4gIGRlc2NyaXB0aW9uOiBTdHJpbmdMaW1pdENvbmZpZztcbiAgLyoqIGl0ZW0gd2F0ZXJtYXJrIHBhdGggKi9cbiAgd2F0ZXJtYXJrPzogc3RyaW5nO1xuICAvKiogY29sbGVjdGlvbiBpdGVtICovXG4gIGl0ZW06IHtcbiAgICAvKiogaXRlbSB0aXRsZSAqL1xuICAgIHRpdGxlOiBTdHJpbmdMaW1pdENvbmZpZztcbiAgICAvKiogaXRlbSBkZXNjcmlwdGlvbiAqL1xuICAgIGRlc2NyaXB0aW9uOiBTdHJpbmdMaW1pdENvbmZpZztcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb25maWdBcmlhbm5hRW50aXRhTGF5b3V0IGV4dGVuZHMgQ29uZmlnQXJpYW5uYUxheW91dCB7XG4gIC8qKiBvdmVydmlldyB0YWIgKi9cbiAgb3ZlcnZpZXc6IHtcbiAgICAvKiogYWxsb3dlZCBtZXRhZGF0YSBrZXlzICovXG4gICAgaW5mb3JtYXppb25pOiBzdHJpbmdbXTtcbiAgICAvKiogYnViYmxlIGNoYXJ0IHNpemUgKi9cbiAgICBzbWFsbENoYXJ0U2l6ZTogbnVtYmVyO1xuICB9O1xuICAvKiogbm8gaW5mbyBmYWxsYmFjayB0ZXh0ICovXG4gIGZhbGxiYWNrOiBzdHJpbmc7XG4gIC8qKiBERVBSRUNBVEVEOiBlbnRpdGllcyByZXF1ZXN0IGxpbWl0ICovXG4gIGVudGl0aWVzUXVlcnlTaXplOiBudW1iZXI7XG4gIC8qKiBpbmZvIHRhYiBhbGxvd2VkIG1ldGFkYXRhIGtleXMgKi9cbiAgJ21ldGFkYXRhLXRvLXNob3cnOiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb25maWdBcmlhbm5hTWFwTGF5b3V0IGV4dGVuZHMgQ29uZmlnQXJpYW5uYUxheW91dCB7XG4gIC8vIG5vdGhpbmcgaGVyZSFcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb25maWdBcmlhbm5hVGltZWxpbmVMYXlvdXQgZXh0ZW5kcyBDb25maWdBcmlhbm5hTGF5b3V0IHtcbiAgLyoqIE9wdGlvbnMgZm9yIHRoZSB0aW1lbGluZSBjb21wb25lbnQgKi9cbiAgdGltZWxpbmU6IHtcbiAgICAvKiogRm9yY2VzIHRoZSB0aW1lbGluZSB0byByZW5kZXIgYWxsIGRhdGVzIGFzIHNpbmdsZSBtb21lbnRzICovXG4gICAgZGlzYWJsZUVuZERhdGVzOiBib29sZWFuO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbmZpZ0FyaWFubmFTY2hlZGFMYXlvdXQgZXh0ZW5kcyBDb25maWdBcmlhbm5hTGF5b3V0IHtcbiAgLyoqIG5vIGl0ZW0gaW5mb3JtYXRpb24gZmFsbGJhY2sgdGV4dCAqL1xuICAnZW1wdHktaHRtbCc6IHN0cmluZztcbiAgLyoqIGluaXRpYWwgcGFnZSB0ZXh0IG5vIGl0ZW0gc2VsZWN0ZWQgKi9cbiAgJ2VtcHR5LWxhYmVsJzogc3RyaW5nO1xuICAvKiogZGVmYXVsdCB0ZXh0IGZvciBleHRlcm5hbCBsaW5rc3xyZXNvdXJjZXMgKi9cbiAgJ2V4dGVybmFsLXVybC10ZXh0Jzogc3RyaW5nO1xuICAvKiogcmVsYXRlZCBlbnRpdGllcyBzZWN0aW9uICovXG4gICdyZWxhdGVkLWVudGl0aWVzJzoge1xuICAgIC8qKiByZWxhdGVkIGVudGl0aWVzIHNlY3Rpb24gdGl0bGUgKi9cbiAgICB0aXRsZTogc3RyaW5nO1xuICB9O1xuICAvKiogcmVsYXRlZCBpdGVtcyBzZWN0aW9uICovXG4gICdyZWxhdGVkLWl0ZW1zJzoge1xuICAgIC8qKiByZWxhdGVkIGl0ZW1zIHNlY3Rpb24gdGl0bGUgKi9cbiAgICB0aXRsZTogc3RyaW5nO1xuICAgIC8qKiBob3cgbWFueSByZWxhdGVkIGl0ZW1zICovXG4gICAgJ21heC1yZWxhdGVkLWl0ZW1zJzogbnVtYmVyO1xuICB9O1xuICAvKiogZXh0ZW5kZWQgdHJlZSBzZWN0aW9uICovXG4gICdleHRlbmRlZC10cmVlJz86IHtcbiAgICAvKiogZXh0ZW5kZWQgdHJlZSBzZWN0aW9uIHRpdGxlICovXG4gICAgdGl0bGU6IHN0cmluZztcbiAgICAvKiogZXh0ZW5kZWQgdHJlZSBzZWFyY2ggaW5wdXQgKi9cbiAgICBzZWFyY2g6IHtcbiAgICAgIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG4gICAgfVxuICAgIC8qKiBleHRlbmRlZCB0cmVlIGxpdGUgdmVyc2lvbj8gKi9cbiAgICBsaXRlPzogYm9vbGVhbjtcbiAgICAvKiogZXh0ZW5kZWQgdHJlZSBlbXB0eSBzdGF0ZSBmYWxsYmFjayB0ZXh0ICovXG4gICAgZmFsbGJhY2s/OiBzdHJpbmc7XG4gIH07XG4gIC8qKiBpbnRlcm5hbCBzZWFyY2ggc2VjdGlvbiAqL1xuICAnaW50ZXJuYWwtc2VhcmNoJz86IHtcbiAgICAvKiogaW50ZXJuYWwgc2VhcmNoIHNlY3Rpb24gdGl0bGUgKi9cbiAgICB0aXRsZTogc3RyaW5nO1xuICAgIC8qKiBpbnRlcm5hbCBzZWFyY2ggc2VhcmNoIGlucHV0ICovXG4gICAgc2VhcmNoOiB7XG4gICAgICBwbGFjZWhvbGRlcjogc3RyaW5nO1xuICAgIH1cbiAgICAvKiogaW50ZXJuYWwgc2VhcmNoIGxpdGUgdmVyc2lvbj8gKi9cbiAgICBsaXRlPzogYm9vbGVhbjtcbiAgICAvKiogaW50ZXJuYWwgc2VhcmNoIGVtcHR5IHN0YXRlIGZhbGxiYWNrIHRleHQgKi9cbiAgICBmYWxsYmFjaz86IHN0cmluZztcbiAgfTtcbiAgLyoqIGltYWdlIHZpZXdlciBuYXZpZ2F0aW9uICovXG4gICdpbWFnZS12aWV3ZXItbmF2Jz86IHtcbiAgICBlbmFibGVkOiBib29sZWFuO1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgYnV0dG9uVGV4dDogc3RyaW5nO1xuICB9O1xuICAvKiogdGl0bGUgcHJldi9uZXh0IG5hdmlnYXRpb24gKi9cbiAgJ3RpdGxlLW5hdic/OiB7XG4gICAgZW5hYmxlZDogYm9vbGVhbjtcbiAgfTtcbiAgLyoqIG1ldGFkYXRhIHNlY3Rpb24gKi9cbiAgbWV0YWRhdGE6IHtcbiAgICAvKiogbWV0YWRhdGEgc2VjdGlvbiB0aXRsZSAqL1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gIH07XG4gIC8qKiB0cmVlIGNvbmZpZyAqL1xuICB0cmVlOiB7XG4gICAgLyoqIHRyZWUgbGl0ZSB2ZXJzaW9uPyAqL1xuICAgIGxpdGU/OiBib29sZWFuO1xuICAgIC8qKiB0cmVlIHNpZGViYXIgY29sbGFwc2VkPyAqL1xuICAgIGNvbGxhcHNlZEJ5RGVmYXVsdD86IGJvb2xlYW47XG4gICAgLyoqIGljb24gZXhwYW5kIGNsYXNzICovXG4gICAgJ2ljb24tZXhwYW5kJzogc3RyaW5nO1xuICAgIC8qKiBpY29uIGNvbGxhcHNlIGNsYXNzICovXG4gICAgJ2ljb24tY29sbGFwc2UnOiBzdHJpbmc7XG4gICAgLyoqIGRlZmF1bHQgaW1hZ2UgaWNvbiBjbGFzcyAqL1xuICAgICdpY29uLWltYWdlJzogc3RyaW5nO1xuICAgIC8qKiB0eXBlcyBpY29uIG1hcCAqL1xuICAgICdpY29uLW1hcCc6IHtcbiAgICAgIC8qKiB0eXBlaWQgPT4gaWNvbiBjbGFzcyAqL1xuICAgICAgW3R5cGVLZXk6IHN0cmluZ106IHN0cmluZztcbiAgICB9W107XG4gIH07XG4gIC8qKiBpbWFnZSB2aWV3ZXIgb3B0aW9ucyAqL1xuICAnaW1hZ2Utdmlld2VyJz86IHtcbiAgICAvKiogaXMgbW91c2UgY29udGV4dCBtZW51IChyaWdodCBjbGljaykgZGlzYWJsZWQ/ICovXG4gICAgJ2NvbnRleHQtbWVudSc/OiBib29sZWFuO1xuICB9O1xuICAvKiogcGRmIHZpZXdlciBvcHRpb25zICovXG4gICdwZGYtdmlld2VyJz86IHtcbiAgICAvKiogcGRmIGxpYiAobmd4LWV4dGVuZGVkLXBkZi12aWV3ZXIpIG9wdGlvbnMgKi9cbiAgICBsaWJPcHRpb25zPzoge1xuICAgICAgc2hvd1Rvb2xiYXI/OiBib29sZWFuO1xuICAgICAgc2hvd1NpZGViYXJCdXR0b24/OiBib29sZWFuO1xuICAgICAgc2hvd0ZpbmRCdXR0b24/OiBib29sZWFuO1xuICAgICAgc2hvd1BhZ2luZ0J1dHRvbnM/OiBib29sZWFuO1xuICAgICAgc2hvd1pvb21CdXR0b25zPzogYm9vbGVhbjtcbiAgICAgIHNob3dQcmVzZW50YXRpb25Nb2RlQnV0dG9uPzogYm9vbGVhbjtcbiAgICAgIHNob3dPcGVuRmlsZUJ1dHRvbj86IGJvb2xlYW47XG4gICAgICBzaG93UHJpbnRCdXR0b24/OiBib29sZWFuO1xuICAgICAgc2hvd0Rvd25sb2FkQnV0dG9uPzogYm9vbGVhbjtcbiAgICAgIHNob3dCb29rbWFya0J1dHRvbj86IGJvb2xlYW47XG4gICAgICBzaG93U2Vjb25kYXJ5VG9vbGJhckJ1dHRvbj86IGJvb2xlYW47XG4gICAgICBzaG93Um90YXRlQnV0dG9uPzogYm9vbGVhbjtcbiAgICAgIHNob3dIYW5kVG9vbEJ1dHRvbj86IGJvb2xlYW47XG4gICAgICBzaG93U2Nyb2xsaW5nQnV0dG9uPzogYm9vbGVhbjtcbiAgICAgIHNob3dTcHJlYWRCdXR0b24/OiBib29sZWFuO1xuICAgICAgc2hvd1Byb3BlcnRpZXNCdXR0b24/OiBib29sZWFuO1xuICAgIH07XG4gIH07XG4gIC8qKiBhbGxvd2VkIG1ldGFkYXRhICovXG4gICdtZXRhZGF0YS10by1zaG93Jzoge1xuICAgIC8qKiB0eXBlIGtleSA9PiBBcnJheTxtZXRhZGF0YSBrZXlzPiAqL1xuICAgIFt0eXBlOiBzdHJpbmddOiBzdHJpbmdbXTtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb25maWdBcmlhbm5hU2VhcmNoTGF5b3V0IGV4dGVuZHMgQ29uZmlnQXJpYW5uYUxheW91dCB7XG4gIC8qKiBwYWdlIHRpdGxlICovXG4gIHRpdGxlOiBzdHJpbmc7XG4gIC8qKiByZXN1bHRzIGxhYmVsczogMCBpdGVtcyB8IDEgaXRlbSB8IG4gaXRlbXMgKi9cbiAgcmVzdWx0czogW3N0cmluZywgc3RyaW5nLCBzdHJpbmddO1xuICAvKiogYWxsb3dlZCBlbnRpdGllcyBrZXlzICovXG4gIGVuYWJsZWRFbnRpdGllczogc3RyaW5nW107XG4gIC8qKiBubyByZXN1bHRzIGZhbGxiYWNrIHRleHQgKi9cbiAgZmFsbGJhY2s6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb25maWdBcmlhbm5hR2FsbGVyeUxheW91dCBleHRlbmRzIENvbmZpZ0FyaWFubmFTZWFyY2hMYXlvdXQge1xuICBicmVhZGNydW1ic1Rvb2x0aXA/OiB7XG4gICAgZGlzYWJsZT86IGJvb2xlYW47XG4gICAgbGliT3B0aW9ucz86IHtcbiAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICB9O1xuICB9XG59XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL243LWJvaWxlcnBsYXRlLWFyaWFubmEvc3JjL2xpYi9jb25maWctdHlwZXMvYXJpYW5uYS9sYXlvdXRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktaW50ZXJmYWNlICovXG5pbXBvcnQgeyBIZXJvRGF0YSwgSXRlbVByZXZpZXdEYXRhIH0gZnJvbSAnQG5ldDcvY29tcG9uZW50cyc7XG5cbmludGVyZmFjZSBIb21lSGVyb0RhdGEgZXh0ZW5kcyBPbWl0PEhlcm9EYXRhLCAnaW5wdXQnPiB7XG4gIC8qKiBhZHZhbmNlZCBzZWFyY2ggZmFsbGJhY2sgdGV4dCAqL1xuICBmYWxsYmFjaz86IHN0cmluZztcbiAgLyoqIGhlcm8gdGV4dCBpbnB1dCAqL1xuICBpbnB1dD86IHtcbiAgICBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgICBpY29uPzogc3RyaW5nO1xuICAgIHBheWxvYWQ/OiBhbnk7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29uZmlnQXJpYW5uYUxheW91dCB7XG4gIHBhZ2VOYW1lPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbmZpZ0FyaWFubmFIb21lTGF5b3V0IGV4dGVuZHMgQ29uZmlnQXJpYW5uYUxheW91dCB7XG4gIC8qKiBob21lIHRvcCBoZXJvICovXG4gICd0b3AtaGVybyc/OiBIb21lSGVyb0RhdGE7XG4gIC8qKiBob21lIGJvdHRvbSBoZXJvICovXG4gICdib3R0b20taGVybyc/OiBIb21lSGVyb0RhdGE7XG4gIC8qKiBob21lIGV4dGVybmFsIGxpbmtzICovXG4gICdvdXRlci1saW5rcyc/OiB7XG4gICAgdGl0bGU/OiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gICAgdGVzdDogSXRlbVByZXZpZXdEYXRhW107XG4gIH07XG4gIC8qKiBmYWNldHMgd3JhcHBlciBhdXRvY29tcGxldGUgcmVzdWx0cyBsaW1pdCAqL1xuICAncmVzdWx0cy1saW1pdCc6IG51bWJlcjtcbiAgLyoqIGZhY2V0cyB3cmFwcGVyIGF1dG9jb21wbGV0ZSBpdGVtIGxlbmd0aCAqL1xuICAnbWF4LWl0ZW0tbGVuZ3RoJzogbnVtYmVyO1xuICAvKiogZmFjZXRzIHdyYXBwZXIgYXV0b2NvbXBsZXRlIGZhbGxiYWNrIHRleHQgKi9cbiAgJ2F1dG9jb21wbGV0ZS1mYWxsYmFjayc6IHN0cmluZztcbiAgLyoqIGl0ZW0gcHJldmlldyAocmlnaHQgc2lkZWJhcikgZmFsbGJhY2sgdGV4dCAqL1xuICAnbGlua2VkLW9iamVjdHMtZmFsbGJhY2snOiBzdHJpbmc7XG4gIC8qKiBmYWNldHMgdmlldyBhbGwgbGlua3MgKi9cbiAgJ3ZpZXctYWxsLWxpbmtzJz86IHtcbiAgICBsYWJlbD86IHN0cmluZztcbiAgICBlbmFibGVkPzogYm9vbGVhbjtcbiAgfTtcbn1cblxudHlwZSBTdHJpbmdMaW1pdENvbmZpZyA9IHtcbiAgLyoqIHRleHQgbGltaXQgKi9cbiAgbWF4TGVuZ3RoPzogbnVtYmVyO1xuICAvKiogZWxsaXBzaXMgc3RyaW5nICovXG4gIGNoYXI/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29uZmlnQXJpYW5uYUNvbGxlY3Rpb25MYXlvdXQgZXh0ZW5kcyBDb25maWdBcmlhbm5hTGF5b3V0IHtcbiAgLyoqIHBhZ2UgaGVhZGVyICovXG4gIGhlYWRlcjogU3RyaW5nTGltaXRDb25maWc7XG4gIC8qKiBwYWdlIGRlc2NyaXB0aW9uICovXG4gIGRlc2NyaXB0aW9uOiBTdHJpbmdMaW1pdENvbmZpZztcbiAgLyoqIGl0ZW0gd2F0ZXJtYXJrIHBhdGggKi9cbiAgd2F0ZXJtYXJrPzogc3RyaW5nO1xuICAvKiogY29sbGVjdGlvbiBpdGVtICovXG4gIGl0ZW06IHtcbiAgICAvKiogaXRlbSB0aXRsZSAqL1xuICAgIHRpdGxlOiBTdHJpbmdMaW1pdENvbmZpZztcbiAgICAvKiogaXRlbSBkZXNjcmlwdGlvbiAqL1xuICAgIGRlc2NyaXB0aW9uOiBTdHJpbmdMaW1pdENvbmZpZztcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb25maWdBcmlhbm5hRW50aXRhTGF5b3V0IGV4dGVuZHMgQ29uZmlnQXJpYW5uYUxheW91dCB7XG4gIC8qKiBvdmVydmlldyB0YWIgKi9cbiAgb3ZlcnZpZXc6IHtcbiAgICAvKiogYWxsb3dlZCBtZXRhZGF0YSBrZXlzICovXG4gICAgaW5mb3JtYXppb25pOiBzdHJpbmdbXTtcbiAgICAvKiogYnViYmxlIGNoYXJ0IHNpemUgKi9cbiAgICBzbWFsbENoYXJ0U2l6ZTogbnVtYmVyO1xuICB9O1xuICAvKiogbm8gaW5mbyBmYWxsYmFjayB0ZXh0ICovXG4gIGZhbGxiYWNrOiBzdHJpbmc7XG4gIC8qKiBERVBSRUNBVEVEOiBlbnRpdGllcyByZXF1ZXN0IGxpbWl0ICovXG4gIGVudGl0aWVzUXVlcnlTaXplOiBudW1iZXI7XG4gIC8qKiBpbmZvIHRhYiBhbGxvd2VkIG1ldGFkYXRhIGtleXMgKi9cbiAgJ21ldGFkYXRhLXRvLXNob3cnOiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb25maWdBcmlhbm5hTWFwTGF5b3V0IGV4dGVuZHMgQ29uZmlnQXJpYW5uYUxheW91dCB7XG4gIC8vIG5vdGhpbmcgaGVyZSFcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb25maWdBcmlhbm5hVGltZWxpbmVMYXlvdXQgZXh0ZW5kcyBDb25maWdBcmlhbm5hTGF5b3V0IHtcbiAgLyoqIE9wdGlvbnMgZm9yIHRoZSB0aW1lbGluZSBjb21wb25lbnQgKi9cbiAgdGltZWxpbmU6IHtcbiAgICAvKiogRm9yY2VzIHRoZSB0aW1lbGluZSB0byByZW5kZXIgYWxsIGRhdGVzIGFzIHNpbmdsZSBtb21lbnRzICovXG4gICAgZGlzYWJsZUVuZERhdGVzOiBib29sZWFuO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbmZpZ0FyaWFubmFTY2hlZGFMYXlvdXQgZXh0ZW5kcyBDb25maWdBcmlhbm5hTGF5b3V0IHtcbiAgLyoqIG5vIGl0ZW0gaW5mb3JtYXRpb24gZmFsbGJhY2sgdGV4dCAqL1xuICAnZW1wdHktaHRtbCc6IHN0cmluZztcbiAgLyoqIGluaXRpYWwgcGFnZSB0ZXh0IG5vIGl0ZW0gc2VsZWN0ZWQgKi9cbiAgJ2VtcHR5LWxhYmVsJzogc3RyaW5nO1xuICAvKiogZGVmYXVsdCB0ZXh0IGZvciBleHRlcm5hbCBsaW5rc3xyZXNvdXJjZXMgKi9cbiAgJ2V4dGVybmFsLXVybC10ZXh0Jzogc3RyaW5nO1xuICAvKiogcmVsYXRlZCBlbnRpdGllcyBzZWN0aW9uICovXG4gICdyZWxhdGVkLWVudGl0aWVzJzoge1xuICAgIC8qKiByZWxhdGVkIGVudGl0aWVzIHNlY3Rpb24gdGl0bGUgKi9cbiAgICB0aXRsZTogc3RyaW5nO1xuICB9O1xuICAvKiogcmVsYXRlZCBpdGVtcyBzZWN0aW9uICovXG4gICdyZWxhdGVkLWl0ZW1zJzoge1xuICAgIC8qKiByZWxhdGVkIGl0ZW1zIHNlY3Rpb24gdGl0bGUgKi9cbiAgICB0aXRsZTogc3RyaW5nO1xuICAgIC8qKiBob3cgbWFueSByZWxhdGVkIGl0ZW1zICovXG4gICAgJ21heC1yZWxhdGVkLWl0ZW1zJzogbnVtYmVyO1xuICB9O1xuICAvKiogZXh0ZW5kZWQgdHJlZSBzZWN0aW9uICovXG4gICdleHRlbmRlZC10cmVlJz86IHtcbiAgICAvKiogZXh0ZW5kZWQgdHJlZSBzZWN0aW9uIHRpdGxlICovXG4gICAgdGl0bGU6IHN0cmluZztcbiAgICAvKiogZXh0ZW5kZWQgdHJlZSBzZWFyY2ggaW5wdXQgKi9cbiAgICBzZWFyY2g6IHtcbiAgICAgIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG4gICAgfVxuICAgIC8qKiBleHRlbmRlZCB0cmVlIGxpdGUgdmVyc2lvbj8gKi9cbiAgICBsaXRlPzogYm9vbGVhbjtcbiAgICAvKiogZXh0ZW5kZWQgdHJlZSBlbXB0eSBzdGF0ZSBmYWxsYmFjayB0ZXh0ICovXG4gICAgZmFsbGJhY2s/OiBzdHJpbmc7XG4gIH07XG4gIC8qKiBpbnRlcm5hbCBzZWFyY2ggc2VjdGlvbiAqL1xuICAnaW50ZXJuYWwtc2VhcmNoJz86IHtcbiAgICAvKiogaW50ZXJuYWwgc2VhcmNoIHNlY3Rpb24gdGl0bGUgKi9cbiAgICB0aXRsZTogc3RyaW5nO1xuICAgIC8qKiBpbnRlcm5hbCBzZWFyY2ggc2VhcmNoIGlucHV0ICovXG4gICAgc2VhcmNoOiB7XG4gICAgICBwbGFjZWhvbGRlcjogc3RyaW5nO1xuICAgIH1cbiAgICAvKiogaW50ZXJuYWwgc2VhcmNoIGxpdGUgdmVyc2lvbj8gKi9cbiAgICBsaXRlPzogYm9vbGVhbjtcbiAgICAvKiogaW50ZXJuYWwgc2VhcmNoIGVtcHR5IHN0YXRlIGZhbGxiYWNrIHRleHQgKi9cbiAgICBmYWxsYmFjaz86IHN0cmluZztcbiAgfTtcbiAgLyoqIGltYWdlIHZpZXdlciBuYXZpZ2F0aW9uICovXG4gICdpbWFnZS12aWV3ZXItbmF2Jz86IHtcbiAgICBlbmFibGVkOiBib29sZWFuO1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgYnV0dG9uVGV4dDogc3RyaW5nO1xuICB9O1xuICAvKiogdGl0bGUgcHJldi9uZXh0IG5hdmlnYXRpb24gKi9cbiAgJ3RpdGxlLW5hdic/OiB7XG4gICAgZW5hYmxlZDogYm9vbGVhbjtcbiAgfTtcbiAgLyoqIG1ldGFkYXRhIHNlY3Rpb24gKi9cbiAgbWV0YWRhdGE6IHtcbiAgICAvKiogbWV0YWRhdGEgc2VjdGlvbiB0aXRsZSAqL1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gIH07XG4gIC8qKiB0cmVlIGNvbmZpZyAqL1xuICB0cmVlOiB7XG4gICAgLyoqIHRyZWUgbGl0ZSB2ZXJzaW9uPyAqL1xuICAgIGxpdGU/OiBib29sZWFuO1xuICAgIC8qKiB0cmVlIHNpZGViYXIgY29sbGFwc2VkPyAqL1xuICAgIGNvbGxhcHNlZEJ5RGVmYXVsdD86IGJvb2xlYW47XG4gICAgLyoqIGljb24gZXhwYW5kIGNsYXNzICovXG4gICAgJ2ljb24tZXhwYW5kJzogc3RyaW5nO1xuICAgIC8qKiBpY29uIGNvbGxhcHNlIGNsYXNzICovXG4gICAgJ2ljb24tY29sbGFwc2UnOiBzdHJpbmc7XG4gICAgLyoqIGRlZmF1bHQgaW1hZ2UgaWNvbiBjbGFzcyAqL1xuICAgICdpY29uLWltYWdlJzogc3RyaW5nO1xuICAgIC8qKiB0eXBlcyBpY29uIG1hcCAqL1xuICAgICdpY29uLW1hcCc6IHtcbiAgICAgIC8qKiB0eXBlaWQgPT4gaWNvbiBjbGFzcyAqL1xuICAgICAgW3R5cGVLZXk6IHN0cmluZ106IHN0cmluZztcbiAgICB9W107XG4gIH07XG4gIC8qKiBpbWFnZSB2aWV3ZXIgb3B0aW9ucyAqL1xuICAnaW1hZ2Utdmlld2VyJz86IHtcbiAgICAvKiogaXMgbW91c2UgY29udGV4dCBtZW51IChyaWdodCBjbGljaykgZGlzYWJsZWQ/ICovXG4gICAgJ2NvbnRleHQtbWVudSc/OiBib29sZWFuO1xuICB9O1xuICAvKiogaW1hZ2Ugdmlld2VyIG9wdGlvbnMgKi9cbiAgJ2lpaWYtdmlld2VyJz86IHtcbiAgICBsaWJPcHRpb25zPzoge1xuICAgICAgd2luZG93Pzoge1xuICAgICAgICBzaWRlQmFyT3BlbkJ5RGVmYXVsdD86IGJvb2xlYW47XG4gICAgICAgIGFsbG93Q2xvc2U/OiBib29sZWFuO1xuICAgICAgICBhbGxvd01heGltaXplPzogYm9vbGVhbjtcbiAgICAgICAgZGVmYXVsdFNpZGVCYXJQYW5lbD86IHN0cmluZztcbiAgICAgICAgdmlld3M/OiBhbnk7XG4gICAgICAgIHdvcmtzcGFjZUNvbnRyb2xQYW5lbD86IGFueTtcbiAgICAgIH07XG4gICAgICBpZDogc3RyaW5nO1xuICAgIH1cbiAgfTtcbiAgLyoqIHBkZiB2aWV3ZXIgb3B0aW9ucyAqL1xuICAncGRmLXZpZXdlcic/OiB7XG4gICAgLyoqIHBkZiBsaWIgKG5neC1leHRlbmRlZC1wZGYtdmlld2VyKSBvcHRpb25zICovXG4gICAgbGliT3B0aW9ucz86IHtcbiAgICAgIHNob3dUb29sYmFyPzogYm9vbGVhbjtcbiAgICAgIHNob3dTaWRlYmFyQnV0dG9uPzogYm9vbGVhbjtcbiAgICAgIHNob3dGaW5kQnV0dG9uPzogYm9vbGVhbjtcbiAgICAgIHNob3dQYWdpbmdCdXR0b25zPzogYm9vbGVhbjtcbiAgICAgIHNob3dab29tQnV0dG9ucz86IGJvb2xlYW47XG4gICAgICBzaG93UHJlc2VudGF0aW9uTW9kZUJ1dHRvbj86IGJvb2xlYW47XG4gICAgICBzaG93T3BlbkZpbGVCdXR0b24/OiBib29sZWFuO1xuICAgICAgc2hvd1ByaW50QnV0dG9uPzogYm9vbGVhbjtcbiAgICAgIHNob3dEb3dubG9hZEJ1dHRvbj86IGJvb2xlYW47XG4gICAgICBzaG93Qm9va21hcmtCdXR0b24/OiBib29sZWFuO1xuICAgICAgc2hvd1NlY29uZGFyeVRvb2xiYXJCdXR0b24/OiBib29sZWFuO1xuICAgICAgc2hvd1JvdGF0ZUJ1dHRvbj86IGJvb2xlYW47XG4gICAgICBzaG93SGFuZFRvb2xCdXR0b24/OiBib29sZWFuO1xuICAgICAgc2hvd1Njcm9sbGluZ0J1dHRvbj86IGJvb2xlYW47XG4gICAgICBzaG93U3ByZWFkQnV0dG9uPzogYm9vbGVhbjtcbiAgICAgIHNob3dQcm9wZXJ0aWVzQnV0dG9uPzogYm9vbGVhbjtcbiAgICB9O1xuICB9O1xuICAvKiogYWxsb3dlZCBtZXRhZGF0YSAqL1xuICAnbWV0YWRhdGEtdG8tc2hvdyc6IHtcbiAgICAvKiogdHlwZSBrZXkgPT4gQXJyYXk8bWV0YWRhdGEga2V5cz4gKi9cbiAgICBbdHlwZTogc3RyaW5nXTogc3RyaW5nW107XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29uZmlnQXJpYW5uYVNlYXJjaExheW91dCBleHRlbmRzIENvbmZpZ0FyaWFubmFMYXlvdXQge1xuICAvKiogcGFnZSB0aXRsZSAqL1xuICB0aXRsZTogc3RyaW5nO1xuICAvKiogcmVzdWx0cyBsYWJlbHM6IDAgaXRlbXMgfCAxIGl0ZW0gfCBuIGl0ZW1zICovXG4gIHJlc3VsdHM6IFtzdHJpbmcsIHN0cmluZywgc3RyaW5nXTtcbiAgLyoqIGFsbG93ZWQgZW50aXRpZXMga2V5cyAqL1xuICBlbmFibGVkRW50aXRpZXM6IHN0cmluZ1tdO1xuICAvKiogbm8gcmVzdWx0cyBmYWxsYmFjayB0ZXh0ICovXG4gIGZhbGxiYWNrOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29uZmlnQXJpYW5uYUdhbGxlcnlMYXlvdXQgZXh0ZW5kcyBDb25maWdBcmlhbm5hU2VhcmNoTGF5b3V0IHtcbiAgYnJlYWRjcnVtYnNUb29sdGlwPzoge1xuICAgIGRpc2FibGU/OiBib29sZWFuO1xuICAgIGxpYk9wdGlvbnM/OiB7XG4gICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgfTtcbiAgfVxufVxuIl19
@@ -20,6 +20,7 @@ export * from './scheda-breadcrumbs.ds';
20
20
  export * from './scheda-dropdown.ds';
21
21
  export * from './sidebar-header.ds';
22
22
  export * from './scheda-image.ds';
23
+ export * from './scheda-image-iiif.ds';
23
24
  export * from './scheda-inner-title.ds';
24
25
  export * from './scheda-metadata.ds';
25
26
  export * from './scheda-pdf.ds';
@@ -36,4 +37,4 @@ export * from './gallery-results.ds';
36
37
  export * from './map.ds';
37
38
  // Timeline Layout
38
39
  export * from './timeline.ds';
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uNy1ib2lsZXJwbGF0ZS1hcmlhbm5hL3NyYy9saWIvZGF0YS1zb3VyY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU07QUFDTixjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLGtCQUFrQixDQUFDO0FBRWpDLGNBQWM7QUFDZCxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHdCQUF3QixDQUFDO0FBRXZDLGdCQUFnQjtBQUNoQixjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsNkJBQTZCLENBQUM7QUFFNUMsZ0JBQWdCO0FBQ2hCLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxvQkFBb0IsQ0FBQztBQUVuQyxnQkFBZ0I7QUFDaEIsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHdCQUF3QixDQUFDO0FBRXZDLGlCQUFpQjtBQUNqQixjQUFjLHNCQUFzQixDQUFDO0FBRXJDLGFBQWE7QUFDYixjQUFjLFVBQVUsQ0FBQztBQUV6QixrQkFBa0I7QUFDbEIsY0FBYyxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbnlcbmV4cG9ydCAqIGZyb20gJy4vbGlua2VkLW9iamVjdHMuZHMnO1xuZXhwb3J0ICogZnJvbSAnLi9hdXRvY29tcGxldGUtd3JhcHBlci5kcyc7XG5leHBvcnQgKiBmcm9tICcuL2J1YmJsZS1jaGFydC5kcyc7XG5leHBvcnQgKiBmcm9tICcuL2NoYXJ0LXRpcHB5LmRzJztcblxuLy8gSG9tZSBMYXlvdXRcbmV4cG9ydCAqIGZyb20gJy4vY2Fyb3VzZWwuZHMnO1xuZXhwb3J0ICogZnJvbSAnLi9oZXJvLmRzJztcbmV4cG9ydCAqIGZyb20gJy4vdGFibGUuZHMnO1xuZXhwb3J0ICogZnJvbSAnLi9ob21lLWhlcm8tcGF0cmltb25pby5kcyc7XG5leHBvcnQgKiBmcm9tICcuL2hvbWUtZmFjZXRzLXdyYXBwZXIuZHMnO1xuZXhwb3J0ICogZnJvbSAnLi9ob21lLWl0ZW0tdGFncy13cmFwcGVyLmRzJztcbmV4cG9ydCAqIGZyb20gJy4vaG9tZS1hdXRvY29tcGxldGUuZHMnO1xuXG4vLyBFbnRpdGEgTGF5b3V0XG5leHBvcnQgKiBmcm9tICcuL2VudGl0YS1uYXYuZHMnO1xuZXhwb3J0ICogZnJvbSAnLi9lbnRpdGEtbWV0YWRhdGEtdmlld2VyLmRzJztcblxuLy8gU2NoZWRhIExheW91dFxuZXhwb3J0ICogZnJvbSAnLi9yZWxhdGVkLWVudGl0aWVzLmRzJztcbmV4cG9ydCAqIGZyb20gJy4vc2NoZWRhLWJyZWFkY3J1bWJzLmRzJztcbmV4cG9ydCAqIGZyb20gJy4vc2NoZWRhLWRyb3Bkb3duLmRzJztcbmV4cG9ydCAqIGZyb20gJy4vc2lkZWJhci1oZWFkZXIuZHMnO1xuZXhwb3J0ICogZnJvbSAnLi9zY2hlZGEtaW1hZ2UuZHMnO1xuZXhwb3J0ICogZnJvbSAnLi9zY2hlZGEtaW5uZXItdGl0bGUuZHMnO1xuZXhwb3J0ICogZnJvbSAnLi9zY2hlZGEtbWV0YWRhdGEuZHMnO1xuZXhwb3J0ICogZnJvbSAnLi9zY2hlZGEtcGRmLmRzJztcbmV4cG9ydCAqIGZyb20gJy4vdHJlZS5kcyc7XG5leHBvcnQgKiBmcm9tICcuL2V4dGVuZGVkLXRyZWUuZHMnO1xuZXhwb3J0ICogZnJvbSAnLi9zY2hlZGEtaW1hZ2UtbmF2aWdhdG9yLmRzJztcbmV4cG9ydCAqIGZyb20gJy4vc2NoZWRhLXNlYXJjaC5kcyc7XG5cbi8vIFNlYXJjaCBsYXlvdXRcbmV4cG9ydCAqIGZyb20gJy4vc2VhcmNoLWxheW91dC10YWJzLmRzJztcbmV4cG9ydCAqIGZyb20gJy4vYXctZmFjZXRzLXdyYXBwZXIuZHMnO1xuXG4vLyBHYWxsZXJ5IExheW91dFxuZXhwb3J0ICogZnJvbSAnLi9nYWxsZXJ5LXJlc3VsdHMuZHMnO1xuXG4vLyBNYXAgTGF5b3V0XG5leHBvcnQgKiBmcm9tICcuL21hcC5kcyc7XG5cbi8vIFRpbWVsaW5lIExheW91dFxuZXhwb3J0ICogZnJvbSAnLi90aW1lbGluZS5kcyc7XG4iXX0=
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uNy1ib2lsZXJwbGF0ZS1hcmlhbm5hL3NyYy9saWIvZGF0YS1zb3VyY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU07QUFDTixjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLGtCQUFrQixDQUFDO0FBRWpDLGNBQWM7QUFDZCxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHdCQUF3QixDQUFDO0FBRXZDLGdCQUFnQjtBQUNoQixjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsNkJBQTZCLENBQUM7QUFFNUMsZ0JBQWdCO0FBQ2hCLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLG9CQUFvQixDQUFDO0FBRW5DLGdCQUFnQjtBQUNoQixjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsd0JBQXdCLENBQUM7QUFFdkMsaUJBQWlCO0FBQ2pCLGNBQWMsc0JBQXNCLENBQUM7QUFFckMsYUFBYTtBQUNiLGNBQWMsVUFBVSxDQUFDO0FBRXpCLGtCQUFrQjtBQUNsQixjQUFjLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEFueVxuZXhwb3J0ICogZnJvbSAnLi9saW5rZWQtb2JqZWN0cy5kcyc7XG5leHBvcnQgKiBmcm9tICcuL2F1dG9jb21wbGV0ZS13cmFwcGVyLmRzJztcbmV4cG9ydCAqIGZyb20gJy4vYnViYmxlLWNoYXJ0LmRzJztcbmV4cG9ydCAqIGZyb20gJy4vY2hhcnQtdGlwcHkuZHMnO1xuXG4vLyBIb21lIExheW91dFxuZXhwb3J0ICogZnJvbSAnLi9jYXJvdXNlbC5kcyc7XG5leHBvcnQgKiBmcm9tICcuL2hlcm8uZHMnO1xuZXhwb3J0ICogZnJvbSAnLi90YWJsZS5kcyc7XG5leHBvcnQgKiBmcm9tICcuL2hvbWUtaGVyby1wYXRyaW1vbmlvLmRzJztcbmV4cG9ydCAqIGZyb20gJy4vaG9tZS1mYWNldHMtd3JhcHBlci5kcyc7XG5leHBvcnQgKiBmcm9tICcuL2hvbWUtaXRlbS10YWdzLXdyYXBwZXIuZHMnO1xuZXhwb3J0ICogZnJvbSAnLi9ob21lLWF1dG9jb21wbGV0ZS5kcyc7XG5cbi8vIEVudGl0YSBMYXlvdXRcbmV4cG9ydCAqIGZyb20gJy4vZW50aXRhLW5hdi5kcyc7XG5leHBvcnQgKiBmcm9tICcuL2VudGl0YS1tZXRhZGF0YS12aWV3ZXIuZHMnO1xuXG4vLyBTY2hlZGEgTGF5b3V0XG5leHBvcnQgKiBmcm9tICcuL3JlbGF0ZWQtZW50aXRpZXMuZHMnO1xuZXhwb3J0ICogZnJvbSAnLi9zY2hlZGEtYnJlYWRjcnVtYnMuZHMnO1xuZXhwb3J0ICogZnJvbSAnLi9zY2hlZGEtZHJvcGRvd24uZHMnO1xuZXhwb3J0ICogZnJvbSAnLi9zaWRlYmFyLWhlYWRlci5kcyc7XG5leHBvcnQgKiBmcm9tICcuL3NjaGVkYS1pbWFnZS5kcyc7XG5leHBvcnQgKiBmcm9tICcuL3NjaGVkYS1pbWFnZS1paWlmLmRzJztcbmV4cG9ydCAqIGZyb20gJy4vc2NoZWRhLWlubmVyLXRpdGxlLmRzJztcbmV4cG9ydCAqIGZyb20gJy4vc2NoZWRhLW1ldGFkYXRhLmRzJztcbmV4cG9ydCAqIGZyb20gJy4vc2NoZWRhLXBkZi5kcyc7XG5leHBvcnQgKiBmcm9tICcuL3RyZWUuZHMnO1xuZXhwb3J0ICogZnJvbSAnLi9leHRlbmRlZC10cmVlLmRzJztcbmV4cG9ydCAqIGZyb20gJy4vc2NoZWRhLWltYWdlLW5hdmlnYXRvci5kcyc7XG5leHBvcnQgKiBmcm9tICcuL3NjaGVkYS1zZWFyY2guZHMnO1xuXG4vLyBTZWFyY2ggbGF5b3V0XG5leHBvcnQgKiBmcm9tICcuL3NlYXJjaC1sYXlvdXQtdGFicy5kcyc7XG5leHBvcnQgKiBmcm9tICcuL2F3LWZhY2V0cy13cmFwcGVyLmRzJztcblxuLy8gR2FsbGVyeSBMYXlvdXRcbmV4cG9ydCAqIGZyb20gJy4vZ2FsbGVyeS1yZXN1bHRzLmRzJztcblxuLy8gTWFwIExheW91dFxuZXhwb3J0ICogZnJvbSAnLi9tYXAuZHMnO1xuXG4vLyBUaW1lbGluZSBMYXlvdXRcbmV4cG9ydCAqIGZyb20gJy4vdGltZWxpbmUuZHMnO1xuIl19
@@ -0,0 +1,21 @@
1
+ import { DataSource } from '@net7/core';
2
+ export class AwSchedaImageIiifDS extends DataSource {
3
+ transform(data) {
4
+ if (!data)
5
+ return null;
6
+ const { window, id } = this.options.libOptions;
7
+ const iiifManifestsList = data.items;
8
+ const windows = iiifManifestsList.map((manifest) => ({
9
+ imageToolsEnabled: (manifest.imageToolsEnabled) ? manifest.imageToolsEnabled : true,
10
+ manifestId: manifest.url,
11
+ }));
12
+ return {
13
+ libOptions: {
14
+ window,
15
+ id,
16
+ windows
17
+ },
18
+ };
19
+ }
20
+ }
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWRhLWltYWdlLWlpaWYuZHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uNy1ib2lsZXJwbGF0ZS1hcmlhbm5hL3NyYy9saWIvZGF0YS1zb3VyY2VzL3NjaGVkYS1pbWFnZS1paWlmLmRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFeEMsTUFBTSxPQUFPLG1CQUFvQixTQUFRLFVBQVU7SUFDdkMsU0FBUyxDQUFDLElBQUk7UUFDdEIsSUFBSSxDQUFDLElBQUk7WUFBRSxPQUFPLElBQUksQ0FBQztRQUN2QixNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDO1FBQy9DLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUNyQyxNQUFNLE9BQU8sR0FBRyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDbkQsaUJBQWlCLEVBQUUsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxJQUFJO1lBQ25GLFVBQVUsRUFBRSxRQUFRLENBQUMsR0FBRztTQUN6QixDQUFDLENBQUMsQ0FBQztRQUNKLE9BQU87WUFDTCxVQUFVLEVBQUU7Z0JBQ1YsTUFBTTtnQkFDTixFQUFFO2dCQUNGLE9BQU87YUFDUjtTQUNGLENBQUM7SUFDSixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRhU291cmNlIH0gZnJvbSAnQG5ldDcvY29yZSc7XG5cbmV4cG9ydCBjbGFzcyBBd1NjaGVkYUltYWdlSWlpZkRTIGV4dGVuZHMgRGF0YVNvdXJjZSB7XG4gIHByb3RlY3RlZCB0cmFuc2Zvcm0oZGF0YSkge1xuICAgIGlmICghZGF0YSkgcmV0dXJuIG51bGw7XG4gICAgY29uc3QgeyB3aW5kb3csIGlkIH0gPSB0aGlzLm9wdGlvbnMubGliT3B0aW9ucztcbiAgICBjb25zdCBpaWlmTWFuaWZlc3RzTGlzdCA9IGRhdGEuaXRlbXM7XG4gICAgY29uc3Qgd2luZG93cyA9IGlpaWZNYW5pZmVzdHNMaXN0Lm1hcCgobWFuaWZlc3QpID0+ICh7XG4gICAgICBpbWFnZVRvb2xzRW5hYmxlZDogKG1hbmlmZXN0LmltYWdlVG9vbHNFbmFibGVkKSA/IG1hbmlmZXN0LmltYWdlVG9vbHNFbmFibGVkIDogdHJ1ZSxcbiAgICAgIG1hbmlmZXN0SWQ6IG1hbmlmZXN0LnVybCxcbiAgICB9KSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxpYk9wdGlvbnM6IHtcbiAgICAgICAgd2luZG93LFxuICAgICAgICBpZCxcbiAgICAgICAgd2luZG93c1xuICAgICAgfSxcbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -17,6 +17,7 @@ export const AwPatrimonioLayoutConfig = {
17
17
  { id: 'aw-scheda-image' },
18
18
  { id: 'aw-scheda-image-navigator' },
19
19
  { id: 'aw-scheda-pdf' },
20
+ { id: 'aw-scheda-image-iiif' },
20
21
  { id: 'aw-scheda-inner-title' },
21
22
  { id: 'aw-related-entities' },
22
23
  { id: 'aw-chart-tippy' },
@@ -32,4 +33,4 @@ export const AwPatrimonioLayoutConfig = {
32
33
  // TODO
33
34
  },
34
35
  };
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWRhLWxheW91dC5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uNy1ib2lsZXJwbGF0ZS1hcmlhbm5hL3NyYy9saWIvbGF5b3V0cy9zY2hlZGEtbGF5b3V0L3NjaGVkYS1sYXlvdXQuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RELE9BQU8sS0FBSyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDekMsT0FBTyxLQUFLLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUUzQyxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRztJQUN0QyxRQUFRLEVBQUUsa0JBQWtCO0lBQzVCOzs7T0FHRztJQUNILE9BQU8sRUFBRTtRQUNQLEVBQUUsRUFBRSxFQUFFLG1CQUFtQixFQUFFO1FBQzNCLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRTtRQUNqQixFQUFFLEVBQUUsRUFBRSx1QkFBdUIsRUFBRTtRQUMvQixFQUFFLEVBQUUsRUFBRSxvQkFBb0IsRUFBRTtRQUM1QixFQUFFLEVBQUUsRUFBRSxvQkFBb0IsRUFBRTtRQUM1QixFQUFFLEVBQUUsRUFBRSxpQkFBaUIsRUFBRTtRQUN6QixFQUFFLEVBQUUsRUFBRSwyQkFBMkIsRUFBRTtRQUNuQyxFQUFFLEVBQUUsRUFBRSxlQUFlLEVBQUU7UUFDdkIsRUFBRSxFQUFFLEVBQUUsdUJBQXVCLEVBQUU7UUFDL0IsRUFBRSxFQUFFLEVBQUUscUJBQXFCLEVBQUU7UUFDN0IsRUFBRSxFQUFFLEVBQUUsZ0JBQWdCLEVBQUU7UUFDeEIsRUFBRSxFQUFFLEVBQUUsbUJBQW1CLEVBQUU7UUFDM0IsRUFBRSxFQUFFLEVBQUUsa0JBQWtCLEVBQUU7UUFDMUIsRUFBRSxFQUFFLEVBQUUsa0JBQWtCLEVBQUU7S0FDM0I7SUFDRCxRQUFRLEVBQUUsZ0JBQWdCO0lBQzFCLFFBQVEsRUFBRSxnQkFBZ0I7SUFDMUIsa0JBQWtCLEVBQUUsRUFBRTtJQUN0QixvQkFBb0IsRUFBRSxFQUFFO0lBQ3hCLE9BQU8sRUFBRTtJQUNQLE9BQU87S0FDUjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBd1NjaGVkYUxheW91dERTIH0gZnJvbSAnLi9zY2hlZGEtbGF5b3V0LmRzJztcbmltcG9ydCB7IEF3U2NoZWRhTGF5b3V0RUggfSBmcm9tICcuL3NjaGVkYS1sYXlvdXQuZWgnO1xuaW1wb3J0ICogYXMgRFMgZnJvbSAnLi4vLi4vZGF0YS1zb3VyY2VzJztcbmltcG9ydCAqIGFzIEVIIGZyb20gJy4uLy4uL2V2ZW50LWhhbmRsZXJzJztcblxuZXhwb3J0IGNvbnN0IEF3UGF0cmltb25pb0xheW91dENvbmZpZyA9IHtcbiAgbGF5b3V0SWQ6ICdhdy1zY2hlZGEtbGF5b3V0JyxcbiAgLyoqXG4gICAqIEFycmF5IG9mIGNvbXBvbmVudHMgeW91IHdhbnQgdG8gdXNlXG4gICAqIGluIHRoaXMgbGV5b3V0XG4gICAqL1xuICB3aWRnZXRzOiBbXG4gICAgeyBpZDogJ2F3LXNpZGViYXItaGVhZGVyJyB9LFxuICAgIHsgaWQ6ICdhdy10cmVlJyB9LFxuICAgIHsgaWQ6ICdhdy1zY2hlZGEtYnJlYWRjcnVtYnMnIH0sXG4gICAgeyBpZDogJ2F3LXNjaGVkYS1tZXRhZGF0YScgfSxcbiAgICB7IGlkOiAnYXctc2NoZWRhLWRyb3Bkb3duJyB9LFxuICAgIHsgaWQ6ICdhdy1zY2hlZGEtaW1hZ2UnIH0sXG4gICAgeyBpZDogJ2F3LXNjaGVkYS1pbWFnZS1uYXZpZ2F0b3InIH0sXG4gICAgeyBpZDogJ2F3LXNjaGVkYS1wZGYnIH0sXG4gICAgeyBpZDogJ2F3LXNjaGVkYS1pbm5lci10aXRsZScgfSxcbiAgICB7IGlkOiAnYXctcmVsYXRlZC1lbnRpdGllcycgfSxcbiAgICB7IGlkOiAnYXctY2hhcnQtdGlwcHknIH0sXG4gICAgeyBpZDogJ2F3LWxpbmtlZC1vYmplY3RzJyB9LFxuICAgIHsgaWQ6ICdhdy1leHRlbmRlZC10cmVlJyB9LFxuICAgIHsgaWQ6ICdhdy1zY2hlZGEtc2VhcmNoJyB9LFxuICBdLFxuICBsYXlvdXREUzogQXdTY2hlZGFMYXlvdXREUyxcbiAgbGF5b3V0RUg6IEF3U2NoZWRhTGF5b3V0RUgsXG4gIHdpZGdldHNEYXRhU291cmNlczogRFMsXG4gIHdpZGdldHNFdmVudEhhbmRsZXJzOiBFSCxcbiAgb3B0aW9uczoge1xuICAgIC8vIFRPRE9cbiAgfSxcbn07XG4iXX0=
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWRhLWxheW91dC5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uNy1ib2lsZXJwbGF0ZS1hcmlhbm5hL3NyYy9saWIvbGF5b3V0cy9zY2hlZGEtbGF5b3V0L3NjaGVkYS1sYXlvdXQuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RELE9BQU8sS0FBSyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDekMsT0FBTyxLQUFLLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUUzQyxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRztJQUN0QyxRQUFRLEVBQUUsa0JBQWtCO0lBQzVCOzs7T0FHRztJQUNILE9BQU8sRUFBRTtRQUNQLEVBQUUsRUFBRSxFQUFFLG1CQUFtQixFQUFFO1FBQzNCLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRTtRQUNqQixFQUFFLEVBQUUsRUFBRSx1QkFBdUIsRUFBRTtRQUMvQixFQUFFLEVBQUUsRUFBRSxvQkFBb0IsRUFBRTtRQUM1QixFQUFFLEVBQUUsRUFBRSxvQkFBb0IsRUFBRTtRQUM1QixFQUFFLEVBQUUsRUFBRSxpQkFBaUIsRUFBRTtRQUN6QixFQUFFLEVBQUUsRUFBRSwyQkFBMkIsRUFBRTtRQUNuQyxFQUFFLEVBQUUsRUFBRSxlQUFlLEVBQUU7UUFDdkIsRUFBRSxFQUFFLEVBQUUsc0JBQXNCLEVBQUU7UUFDOUIsRUFBRSxFQUFFLEVBQUUsdUJBQXVCLEVBQUU7UUFDL0IsRUFBRSxFQUFFLEVBQUUscUJBQXFCLEVBQUU7UUFDN0IsRUFBRSxFQUFFLEVBQUUsZ0JBQWdCLEVBQUU7UUFDeEIsRUFBRSxFQUFFLEVBQUUsbUJBQW1CLEVBQUU7UUFDM0IsRUFBRSxFQUFFLEVBQUUsa0JBQWtCLEVBQUU7UUFDMUIsRUFBRSxFQUFFLEVBQUUsa0JBQWtCLEVBQUU7S0FDM0I7SUFDRCxRQUFRLEVBQUUsZ0JBQWdCO0lBQzFCLFFBQVEsRUFBRSxnQkFBZ0I7SUFDMUIsa0JBQWtCLEVBQUUsRUFBRTtJQUN0QixvQkFBb0IsRUFBRSxFQUFFO0lBQ3hCLE9BQU8sRUFBRTtJQUNQLE9BQU87S0FDUjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBd1NjaGVkYUxheW91dERTIH0gZnJvbSAnLi9zY2hlZGEtbGF5b3V0LmRzJztcbmltcG9ydCB7IEF3U2NoZWRhTGF5b3V0RUggfSBmcm9tICcuL3NjaGVkYS1sYXlvdXQuZWgnO1xuaW1wb3J0ICogYXMgRFMgZnJvbSAnLi4vLi4vZGF0YS1zb3VyY2VzJztcbmltcG9ydCAqIGFzIEVIIGZyb20gJy4uLy4uL2V2ZW50LWhhbmRsZXJzJztcblxuZXhwb3J0IGNvbnN0IEF3UGF0cmltb25pb0xheW91dENvbmZpZyA9IHtcbiAgbGF5b3V0SWQ6ICdhdy1zY2hlZGEtbGF5b3V0JyxcbiAgLyoqXG4gICAqIEFycmF5IG9mIGNvbXBvbmVudHMgeW91IHdhbnQgdG8gdXNlXG4gICAqIGluIHRoaXMgbGV5b3V0XG4gICAqL1xuICB3aWRnZXRzOiBbXG4gICAgeyBpZDogJ2F3LXNpZGViYXItaGVhZGVyJyB9LFxuICAgIHsgaWQ6ICdhdy10cmVlJyB9LFxuICAgIHsgaWQ6ICdhdy1zY2hlZGEtYnJlYWRjcnVtYnMnIH0sXG4gICAgeyBpZDogJ2F3LXNjaGVkYS1tZXRhZGF0YScgfSxcbiAgICB7IGlkOiAnYXctc2NoZWRhLWRyb3Bkb3duJyB9LFxuICAgIHsgaWQ6ICdhdy1zY2hlZGEtaW1hZ2UnIH0sXG4gICAgeyBpZDogJ2F3LXNjaGVkYS1pbWFnZS1uYXZpZ2F0b3InIH0sXG4gICAgeyBpZDogJ2F3LXNjaGVkYS1wZGYnIH0sXG4gICAgeyBpZDogJ2F3LXNjaGVkYS1pbWFnZS1paWlmJyB9LFxuICAgIHsgaWQ6ICdhdy1zY2hlZGEtaW5uZXItdGl0bGUnIH0sXG4gICAgeyBpZDogJ2F3LXJlbGF0ZWQtZW50aXRpZXMnIH0sXG4gICAgeyBpZDogJ2F3LWNoYXJ0LXRpcHB5JyB9LFxuICAgIHsgaWQ6ICdhdy1saW5rZWQtb2JqZWN0cycgfSxcbiAgICB7IGlkOiAnYXctZXh0ZW5kZWQtdHJlZScgfSxcbiAgICB7IGlkOiAnYXctc2NoZWRhLXNlYXJjaCcgfSxcbiAgXSxcbiAgbGF5b3V0RFM6IEF3U2NoZWRhTGF5b3V0RFMsXG4gIGxheW91dEVIOiBBd1NjaGVkYUxheW91dEVILFxuICB3aWRnZXRzRGF0YVNvdXJjZXM6IERTLFxuICB3aWRnZXRzRXZlbnRIYW5kbGVyczogRUgsXG4gIG9wdGlvbnM6IHtcbiAgICAvLyBUT0RPXG4gIH0sXG59O1xuIl19
@@ -71,6 +71,8 @@ export class AwSchedaLayoutDS extends LayoutDataSource {
71
71
  this.hasContextMenu = () => !!imageViewerConfig['context-menu'];
72
72
  // pdf viewer options
73
73
  this.one('aw-scheda-pdf').updateOptions(this.configuration.get(this.configId)['pdf-viewer'] || {});
74
+ // iiif viewer options
75
+ this.one('aw-scheda-image-iiif').updateOptions(this.configuration.get(this.configId)['iiif-viewer'] || {});
74
76
  // check section collapse state
75
77
  Object.keys(this.sectionCollapseState).forEach((key) => {
76
78
  const storageKey = `${LOCAL_STORAGE_PREFIX}.${key}`;
@@ -417,7 +419,10 @@ export class AwSchedaLayoutDS extends LayoutDataSource {
417
419
  schedaImageDS.reset();
418
420
  this.currentDigitalObjectIndex = payload;
419
421
  this.currentDigitalObject = this.digitalObjects[payload];
420
- if (this.currentDigitalObject.type.includes('images')) {
422
+ if (this.currentDigitalObject.type === 'images-iiif') {
423
+ this.one('aw-scheda-image-iiif').update(this.currentDigitalObject);
424
+ }
425
+ else if (this.currentDigitalObject.type.includes('images')) {
421
426
  if (schedaImageDS.hasInstance()) {
422
427
  schedaImageDS.updateImages(this.currentDigitalObject);
423
428
  }
@@ -469,4 +474,4 @@ export class AwSchedaLayoutDS extends LayoutDataSource {
469
474
  }));
470
475
  }
471
476
  }
472
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWRhLWxheW91dC5kcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL243LWJvaWxlcnBsYXRlLWFyaWFubmEvc3JjL2xpYi9sYXlvdXRzL3NjaGVkYS1sYXlvdXQvc2NoZWRhLWxheW91dC5kcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDOUMsT0FBTyxFQUNMLFNBQVMsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFDOUIsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQ0wsS0FBSyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQ3hCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLElBQUksSUFBSSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVuRCxPQUFPLGNBQWMsTUFBTSwrQkFBK0IsQ0FBQztBQUMzRCxPQUFPLFVBQVUsTUFBTSwyQkFBMkIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFMUQsTUFBTSxvQkFBb0IsR0FBRyxXQUFXLENBQUM7QUFFekMsTUFBTSxPQUFPLGdCQUFpQixTQUFRLGdCQUFnQjtJQUF0RDs7UUFHVSxlQUFVLEdBQWtCLElBQUksT0FBTyxFQUFFLENBQUM7UUFFMUMsMEJBQXFCLEdBQWtCLElBQUksT0FBTyxFQUFFLENBQUM7UUFZdEQsYUFBUSxHQUFHLGVBQWUsQ0FBQztRQVUzQixpQkFBWSxHQUFRLEVBQUUsQ0FBQztRQWdDdkIsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFFeEIsa0JBQWEsR0FBRyxNQUFNLENBQUM7UUFFdkIscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBRXpCLGNBQVMsR0FBa0IsSUFBSSxDQUFDO1FBSXZDLG9EQUFvRDtRQUM3QyxlQUFVLEdBQUcsSUFBSSxDQUFDO1FBU2xCLHVCQUFrQixHQUVyQixFQUFFLENBQUM7UUFFQSx5QkFBb0IsR0FFdkIsRUFBRSxDQUFDO1FBSVAsMkRBQTJEO1FBQ25ELGlCQUFZLEdBQThCLFNBQVMsQ0FBQztRQUVyRCxvQkFBZSxHQUdsQixJQUFJLENBQUM7UUFFRix5QkFBb0IsR0FBRztZQUM1QixRQUFRLEVBQUUsS0FBSztZQUNmLGVBQWUsRUFBRSxLQUFLO1lBQ3RCLGVBQWUsRUFBRSxLQUFLO1lBQ3RCLGtCQUFrQixFQUFFLEtBQUs7U0FDMUIsQ0FBQztRQUVLLGlCQUFZLEdBR2YsSUFBSSxDQUFDO1FBbUZULFlBQU8sR0FBRyxHQUFHLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUM7SUF5YXhDLENBQUM7YUF0bUJRLFNBQUksR0FBUSxJQUFJLEFBQVosQ0FBYTtJQTRHeEIsTUFBTSxDQUFDLEVBQ0wsYUFBYSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxhQUFhLEdBQ3ZFO1FBQ0MsSUFBSSxhQUFhLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztZQUNuQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM1RCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDM0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7UUFDakMsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7UUFDbkMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxLQUFLLENBQUM7UUFDN0UsQ0FBQztRQUNELElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLGtCQUFrQixDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ3pFLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUN6RSxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7UUFDM0QsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7UUFDN0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLGFBQWEsQ0FBQztZQUN2QyxRQUFRLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsY0FBYztTQUN6RCxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxhQUFhLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRXJGLDRDQUE0QztRQUM1QyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxZQUFZLEdBQUcsYUFBYSxDQUFDO1FBQ3BDLENBQUM7UUFFRCxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFFeEQsYUFBYTtRQUNiLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUVwQixrQ0FBa0M7UUFDbEMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3RGLElBQUksQ0FBQyxjQUFjLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRWhFLHFCQUFxQjtRQUNyQixJQUFJLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFFbkcsK0JBQStCO1FBQy9CLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDckQsTUFBTSxVQUFVLEdBQUcsR0FBRyxvQkFBb0IsSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUNwRCxNQUFNLFlBQVksR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3RELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUNuRixDQUFDLENBQUMsQ0FBQztRQUVILHlCQUF5QjtRQUN6QixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsU0FBUztRQUNQLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELHVCQUF1QjtRQUNyQixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDM0QsTUFBTSxjQUFjLEdBQUcsWUFBWSxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUM7UUFDbkQsT0FBTyxjQUFjLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQztJQUN0QyxDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDMUIsT0FBTyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkMsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNwRCxPQUFPLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO1lBQ3hDLE1BQU0sRUFBRTtnQkFDTixNQUFNLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDO2FBQzdDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE9BQU8sQ0FBQyxJQUFJO1FBQ1YsZ0JBQWdCLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUMvQixDQUFDO0lBSUQsZ0JBQWdCLENBQUMsSUFBSTtRQUNuQixJQUFJLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7SUFDckYsQ0FBQztJQUVELFFBQVEsQ0FBQyxFQUFFO1FBQ1QsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDcEcsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUU7WUFDNUMsT0FBTyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztZQUN4QyxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsZUFBZSxFQUFFO1NBQ2hDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7O09BR0c7SUFDSCxXQUFXLENBQUMsUUFBUTtRQUNsQixJQUFJLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQztRQUM3QixJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ2IsUUFBUTtZQUNSLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUM7WUFDakMsSUFBSSxDQUFDLHlCQUF5QixHQUFHLElBQUksQ0FBQztZQUV0QyxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2hELElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsSUFBSSxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDOUUsSUFBSSxDQUFDLGVBQWUsR0FBRyxDQUNyQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDO21CQUNoQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUM7bUJBQ3BDLFFBQVEsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUNoQyxDQUFDO1lBQ0YsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxRQUFRLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQztZQUN4RixJQUFJLENBQUMsaUJBQWlCLEdBQUcsQ0FDdkIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDO21CQUNuQyxRQUFRLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FDbEMsQ0FBQztZQUNGLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxDQUN4QixLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUM7bUJBQ3BDLFFBQVEsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUNuQyxDQUFDO1lBQ0YsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsQ0FDbEIsSUFBSSxDQUFDLFdBQVc7bUJBQ2IsSUFBSSxDQUFDLGVBQWU7bUJBQ3BCLElBQUksQ0FBQyxrQkFBa0I7bUJBQ3ZCLElBQUksQ0FBQyxpQkFBaUIsQ0FDMUIsQ0FBQztZQUVGLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO1lBQ3ZCLE1BQU0sT0FBTyxHQUFHLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO1lBRWxDLElBQUksUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNsQixPQUFPLENBQUMsT0FBTyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUM7WUFDbEMsQ0FBQztZQUNELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRWhDLGtCQUFrQjtZQUNsQixJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO2dCQUMzQixRQUFRLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7Z0JBQ2hGLHlFQUF5RTtnQkFDekUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDaEQsSUFBSSxDQUFDLGNBQWMsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDO2dCQUM5QyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUIsQ0FBQztZQUVELE1BQU0sUUFBUSxHQUFHO2dCQUNmLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSTtnQkFDbkIsS0FBSyxFQUFFO29CQUNMLElBQUksRUFBRTt3QkFDSixJQUFJLEVBQUUsUUFBUSxDQUFDLEtBQUssSUFBSSxRQUFRLENBQUMsS0FBSzt3QkFDdEMsT0FBTyxFQUFFLE1BQU07cUJBQ2hCO2lCQUNGO2dCQUNELEtBQUssRUFBRSxRQUFRLENBQUMsUUFBUTtnQkFDeEIsT0FBTyxFQUFFLEVBQUU7YUFDWixDQUFDO1lBRUYsSUFBSSxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNuRCxJQUFJLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBRXRELHFCQUFxQjtZQUNyQixNQUFNLFdBQVcsR0FBRztnQkFDbEIsS0FBSyxFQUFFLEVBQUU7YUFDVixDQUFDO1lBRUYsSUFBSSxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ3pCLFFBQVEsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7b0JBQ3ZDLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO3dCQUNyQixLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUs7d0JBQ3BCLE1BQU0sRUFBRTs0QkFDTixJQUFJLEVBQUU7Z0NBQ0osSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsY0FBYztnQ0FDOUMsR0FBRyxPQUFPLENBQUMsSUFBSSxHQUFHO2dDQUNsQixPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7NkJBQy9CLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQzt5QkFDWDtxQkFDRixDQUFDLENBQUM7Z0JBQ0wsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsSUFBSSxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN4RCxDQUFDO1lBRUQsK0JBQStCO1lBQy9CLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBRTNCLG9DQUFvQztZQUNwQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUV4QixvQkFBb0I7WUFDcEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsS0FBSyxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN0RCxDQUFDO1FBRUQsSUFBSSxRQUFRLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1lBQy9GLElBQUksQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDakQsQ0FBQztRQUNELElBQUksUUFBUSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQzdCLFFBQVEsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUU7Z0JBQ3RDLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxLQUFLLElBQUksUUFBUSxDQUFDLEtBQUssQ0FBQztnQkFDL0MsRUFBRSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUMsTUFBTSxHQUFHLEVBQUU7b0JBQ2pDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNO29CQUM5QixDQUFDLENBQUMsS0FBSyxDQUFDO1lBQ1osQ0FBQyxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLENBQUMsYUFBYSxDQUFDO2dCQUM1QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsUUFBUSxDQUFDLEtBQUs7YUFDOUYsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDbkUsQ0FBQztRQUVELGlCQUFpQjtRQUNqQixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGdCQUFnQjtRQUNkLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7UUFFekMsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7WUFDdkMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDekQsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUN6RCxNQUFNLE1BQU0sR0FBUTtnQkFDbEIsRUFBRSxFQUFFLGNBQWMsQ0FBQyxFQUFFO2dCQUNyQixJQUFJLEVBQUUsQ0FBQztnQkFDUCxLQUFLLEVBQUUsRUFBRTtnQkFDVCxLQUFLLEVBQUUsSUFBSTtnQkFDWCxHQUFHLElBQUksQ0FBQyxrQkFBa0I7YUFDM0IsQ0FBQztZQUNGLE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUVuQyxtQkFBbUI7WUFDbkIsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztZQUNqRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUM7WUFFbkIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsY0FBYyxDQUFDO1lBQ2hFLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLGlCQUFpQixFQUFFO2dCQUM5RCxNQUFNO2dCQUNOLE9BQU8sRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7YUFDekMsQ0FBQyxDQUFDO1lBQ0gsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLGFBQWEsRUFBRSxFQUFFO2dCQUNuQyxJQUFJLENBQUMsZUFBZSxHQUFHLENBQ3JCLE1BQU0sQ0FBQyxLQUFLO3VCQUNULFlBQVksQ0FBQyxJQUFJLEdBQUcsQ0FBQzt1QkFDckIsQ0FBQyxDQUFDLGFBQWEsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUNsQyxDQUFDO2dCQUNGLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO29CQUN6QixJQUFJLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUMsYUFBYSxDQUFDO3dCQUN6QyxRQUFRO3dCQUNSLFVBQVU7d0JBQ1YsTUFBTSxFQUFFLFlBQVk7d0JBQ3BCLEdBQUcsYUFBYTtxQkFDakIsQ0FBQyxDQUFDO29CQUNILElBQUksQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxNQUFNLENBQUM7d0JBQ2xDLE1BQU0sRUFBRSxjQUFjO3dCQUN0QixLQUFLLEVBQUUsYUFBYTtxQkFDckIsQ0FBQyxDQUFDO29CQUVILHlCQUF5QjtvQkFDekIsVUFBVSxDQUFDLEdBQUcsRUFBRTt3QkFDZCxNQUFNLFVBQVUsR0FBcUIsUUFBUTs2QkFDMUMsYUFBYSxDQUFDLHVEQUF1RCxDQUFDLENBQUM7d0JBQzFFLElBQUksVUFBVSxFQUFFLENBQUM7NEJBQ2YsVUFBVSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQzt3QkFDeEMsQ0FBQztvQkFDSCxDQUFDLENBQUMsQ0FBQztnQkFDTCxDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO1FBQy9CLENBQUM7SUFDSCxDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7UUFFekMsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQztZQUN6QyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO1lBQzlCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ3pELE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUMzRCxNQUFNLFNBQVMsR0FBUTtnQkFDckIsRUFBRSxFQUFFLGNBQWMsQ0FBQyxFQUFFO2dCQUNyQixhQUFhLEVBQUUsQ0FBQztnQkFDaEIsY0FBYyxFQUFFLEVBQUU7Z0JBQ2xCLGNBQWMsRUFBRSxJQUFJO2dCQUNwQixRQUFRLEVBQUUsSUFBSTtnQkFDZCxHQUFHLElBQUksQ0FBQyxvQkFBb0I7YUFDN0IsQ0FBQztZQUVGLDZDQUE2QztZQUM3QyxNQUFNLE1BQU0sR0FBVyxFQUFFLENBQUM7WUFDMUIsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtnQkFDMUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2hFLENBQUMsQ0FBQyxDQUFDO1lBRUgsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBRW5DLG1CQUFtQjtZQUNuQixNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO1lBQ2pELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQztZQUVuQixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxjQUFjLENBQUM7WUFDaEUsSUFBSSxRQUFRLEdBQW9CLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN6QyxJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDakIsUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLGlCQUFpQixFQUFFO29CQUN4RCxNQUFNO29CQUNOLE9BQU8sRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7aUJBQ3pDLENBQUMsQ0FBQztZQUNMLENBQUM7WUFFRCxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsYUFBYSxFQUFFLEVBQUU7Z0JBQ25DLElBQUksQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxhQUFhLENBQUM7b0JBQ3pDLFFBQVE7b0JBQ1IsVUFBVTtvQkFDVixNQUFNLEVBQUUsWUFBWTtvQkFDcEIsR0FBRyxhQUFhO2lCQUNqQixDQUFDLENBQUM7Z0JBQ0gsSUFBSSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztnQkFFbkQseUJBQXlCO2dCQUN6QixVQUFVLENBQUMsR0FBRyxFQUFFO29CQUNkLE1BQU0sVUFBVSxHQUFxQixRQUFRO3lCQUMxQyxhQUFhLENBQUMsNkNBQTZDLENBQUMsQ0FBQztvQkFDaEUsSUFBSSxVQUFVLEVBQUUsQ0FBQzt3QkFDZixVQUFVLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO29CQUN4QyxDQUFDO2dCQUNILENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFDakMsQ0FBQztJQUNILENBQUM7SUFFRCxtQkFBbUI7UUFDakIsUUFBUTtRQUNSLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO1FBRTVCLE1BQU0sV0FBVyxHQUFHLENBQ2xCLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxFQUFFLE9BQU87ZUFDdEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLEtBQUssbUJBQW1CLENBQzNELENBQUM7UUFDRixJQUFJLENBQUMsV0FBVztZQUFFLE9BQU87UUFFekIsSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDO1FBQ2xELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLGNBQWMsQ0FBQztRQUNoRSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUMvQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3BDLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSTtnQkFDOUIsQ0FBQyxDQUFDO29CQUNBLElBQUksRUFBRSxHQUFHLFFBQVEsSUFBSSxJQUFJLENBQUMsRUFBRSxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO29CQUM3RCxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7aUJBQ2xCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNiLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGdCQUFnQjtRQUNkLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3pELE1BQU0sRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUNsRCxNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDbkUsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsWUFBWSxHQUFHO2dCQUNsQixJQUFJO2dCQUNKLEtBQUssRUFBRSxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsZ0JBQWdCLENBQUM7YUFDMUMsQ0FBQztRQUNKLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDM0IsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILGVBQWU7UUFDYiw2RUFBNkU7UUFDN0UsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztRQUN2RixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7UUFDL0MsSUFBSSxDQUFDLG1CQUFtQixDQUFDLG1CQUFtQixDQUFDLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDaEUsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQVU7UUFDMUIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRS9ELGlCQUFpQjtRQUNqQixNQUFNLFVBQVUsR0FBRyxHQUFHLG9CQUFvQixJQUFJLEVBQUUsRUFBRSxDQUFDO1FBQ25ELFlBQVksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFTyxxQkFBcUI7UUFDM0Isa0NBQWtDO1FBQ2xDLElBQUksT0FBTyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7WUFDMUIsT0FBTztRQUNULENBQUM7UUFDRCxNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBRTVDLEtBQUssQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUMsSUFBSSxDQUM3QyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUMzQixDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDZixNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDO1lBQ3JDLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQztZQUN6RCxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsc0JBQXNCLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFnQixDQUFDO1lBQ25GLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUM7WUFDckMsTUFBTSxhQUFhLEdBQUcsVUFBVSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUM7WUFFeEQsSUFBSSxDQUFDLGVBQWUsR0FBRyxVQUFVLElBQUksU0FBUyxDQUFDO1lBRS9DLHNCQUFzQjtZQUN0QixJQUFJLElBQUksQ0FBQyxlQUFlLElBQUksWUFBWSxHQUFHLGFBQWEsRUFBRSxDQUFDO2dCQUN6RCxJQUFJLENBQUMsYUFBYSxHQUFHLEdBQUcsWUFBWSxHQUFHLFNBQVMsR0FBRyxFQUFFLElBQUksQ0FBQztZQUM1RCxDQUFDO2lCQUFNLElBQUksSUFBSSxDQUFDLGVBQWUsSUFBSSxZQUFZLElBQUksYUFBYSxFQUFFLENBQUM7Z0JBQ2pFLElBQUksQ0FBQyxhQUFhLEdBQUcsR0FBRyxhQUFhLEdBQUcsU0FBUyxHQUFHLEVBQUUsSUFBSSxDQUFDO1lBQzdELENBQUM7aUJBQU0sSUFBSSxZQUFZLEdBQUcsYUFBYSxFQUFFLENBQUM7Z0JBQ3hDLElBQUksQ0FBQyxhQUFhLEdBQUcsR0FBRyxZQUFZLEdBQUcsVUFBVSxHQUFHLEVBQUUsSUFBSSxDQUFDO1lBQzdELENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLENBQUMsYUFBYSxHQUFHLEdBQUcsYUFBYSxHQUFHLFVBQVUsR0FBRyxFQUFFLElBQUksQ0FBQztZQUM5RCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sU0FBUyxDQUFDLFFBQVE7UUFDdkIsTUFBTSxFQUNKLE1BQU0sRUFDTixhQUFhLEVBQUUsRUFBRSxFQUNqQix1QkFBdUIsRUFBRSxFQUFFLEVBQzVCLEdBQUcsUUFBUSxDQUFDO1FBQ2IsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDOUMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDaEQsTUFBTSxVQUFVLEdBQUcsT0FBTyxFQUFFLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDL0QsTUFBTSxhQUFhLEdBQUcsVUFBVSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDeEQsSUFBSSxjQUFjLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxrQkFBa0IsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN6RixjQUFjLEdBQUcsY0FBYyxDQUFDLGFBQWEsQ0FBQyxJQUFJLGNBQWMsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFM0UsT0FBTyxjQUFjLENBQUMsU0FBUyxDQUFDO1lBQzlCLE1BQU07WUFDTixLQUFLO1lBQ0wsTUFBTTtZQUNOLGNBQWM7WUFDZCxJQUFJLEVBQUUsRUFBRTtTQUNULENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxtQkFBbUIsQ0FBQyxPQUFPO1FBQ2hDLElBQUksSUFBSSxDQUFDLHlCQUF5QixLQUFLLE9BQU8sRUFBRSxDQUFDO1lBQy9DLGFBQWE7WUFDYixJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxLQUFLLFVBQVUsSUFBSSxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztnQkFDbEYsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQztZQUMxRCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sNEJBQTRCO2dCQUM1QixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsaUJBQWlCLENBQUMsQ0FBQztnQkFDbEUsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUV0QixJQUFJLENBQUMseUJBQXlCLEdBQUcsT0FBTyxDQUFDO2dCQUN6QyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDekQsSUFBSSxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO29CQUN0RCxJQUFJLGFBQWEsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO3dCQUNoQyxhQUFhLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO29CQUN4RCxDQUFDO3lCQUFNLENBQUM7d0JBQ04sSUFBSSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztvQkFDaEUsQ0FBQztvQkFFRCx5QkFBeUI7b0JBQ3pCLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUMsQ0FBQztvQkFDOUQsSUFBSSxlQUFlLEVBQUUsT0FBTyxFQUFFLENBQUM7d0JBQzdCLGFBQWEsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUNoQyxLQUFLLEVBQUUsRUFDUCxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsd0NBQXdDO3lCQUNwRCxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFOzRCQUNyQixJQUFJLENBQUMsR0FBRyxDQUFDLDJCQUEyQixDQUFDLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxDQUFDOzRCQUNyRSxJQUFJLENBQUMsR0FBRyxDQUFDLDJCQUEyQixDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO3dCQUN2RCxDQUFDLENBQUMsQ0FBQztvQkFDTCxDQUFDO2dCQUNILENBQUM7cUJBQU0sSUFBSSxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxLQUFLLEtBQUssRUFBRSxDQUFDO29CQUNwRCxJQUFJLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztnQkFDOUQsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVPLHVCQUF1QixDQUFDLGNBQWM7UUFDNUMsT0FBTyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDaEMsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO2dCQUNoQyxPQUFPO29CQUNMLEVBQUUsRUFBRSxzQkFBc0I7b0JBQzFCLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSTtvQkFDZCxLQUFLLEVBQUUsR0FBRyxDQUFDLEtBQUs7b0JBQ2hCLEtBQUssRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO3dCQUM3QyxHQUFHO3dCQUNILFVBQVU7d0JBQ1YsSUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJO3FCQUNmLENBQUMsQ0FBQztpQkFDSixDQUFDO1lBQ0osQ0FBQztZQUNELE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sZUFBZSxDQUFDLEtBQUs7UUFDM0IsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRU8sWUFBWSxDQUFDLEtBQWM7UUFDakMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLFlBQVksQ0FBQztZQUM5QyxLQUFLO1lBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQztZQUN4QyxRQUFRLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLFFBQVE7WUFDekQsV0FBVyxFQUFFLFlBQVk7U0FDMUIsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTGF5b3V0RGF0YVNvdXJjZSB9IGZyb20gJ0BuZXQ3L2NvcmUnO1xuaW1wb3J0IHtcbiAgZnJvbUV2ZW50LCBTdWJqZWN0LCBvZiwgbWVyZ2UsIE9ic2VydmFibGVcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBkZWxheSwgZmlyc3QsIHRha2VVbnRpbFxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBjbG9uZSwgZ2V0IGFzIF9nZXQgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgaGVscGVycyB9IGZyb20gJ0BuZXQ3L2JvaWxlcnBsYXRlLWNvbW1vbic7XG5pbXBvcnQgeyBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IG1ldGFkYXRhSGVscGVyIGZyb20gJy4uLy4uL2hlbHBlcnMvbWV0YWRhdGEuaGVscGVyJztcbmltcG9ydCBub2RlSGVscGVyIGZyb20gJy4uLy4uL2hlbHBlcnMvbm9kZS5oZWxwZXInO1xuaW1wb3J0IHsgZ2V0SGVhZFRpdGxlIH0gZnJvbSAnLi4vLi4vaGVscGVycy90aXRsZS5oZWxwZXInO1xuXG5jb25zdCBMT0NBTF9TVE9SQUdFX1BSRUZJWCA9ICdhdy5zY2hlZGEnO1xuXG5leHBvcnQgY2xhc3MgQXdTY2hlZGFMYXlvdXREUyBleHRlbmRzIExheW91dERhdGFTb3VyY2Uge1xuICBzdGF0aWMgdHJlZTogYW55ID0gbnVsbDtcblxuICBwcml2YXRlIGRlc3Ryb3llZCQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xuXG4gIHByaXZhdGUgc3RpY2t5Q29udHJvbFRyaWdnZXIkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcblxuICBwcml2YXRlIGNvbW11bmljYXRpb246IGFueTtcblxuICBwcm90ZWN0ZWQgY29uZmlndXJhdGlvbjogYW55O1xuXG4gIHByb3RlY3RlZCBtYWluU3RhdGU6IGFueTtcblxuICBwcm90ZWN0ZWQgcm91dGVyOiBhbnk7XG5cbiAgcHJvdGVjdGVkIHRpdGxlU2VydmljZTogYW55O1xuXG4gIHB1YmxpYyBjb25maWdJZCA9ICdzY2hlZGEtbGF5b3V0JztcblxuICBwdWJsaWMgb3B0aW9uczogYW55O1xuXG4gIHByaXZhdGUgbGF5b3V0Q29uZmlnO1xuXG4gIHB1YmxpYyBwYWdlVGl0bGU6IHN0cmluZztcblxuICBwdWJsaWMgaGFzQnJlYWRjcnVtYjogYm9vbGVhbjtcblxuICBwdWJsaWMgY29udGVudFBhcnRzOiBhbnkgPSB7fTtcblxuICBwdWJsaWMgdHJlZTogYW55O1xuXG4gIHB1YmxpYyBzaWRlYmFyQ29sbGFwc2VkOiBib29sZWFuO1xuXG4gIHB1YmxpYyByZWxhdGVkRW50aXRpZXNIZWFkZXI6IHN0cmluZztcblxuICBwdWJsaWMgc2ltaWxhckl0ZW1zU2VjdGlvblRpdGxlOiBzdHJpbmc7XG5cbiAgcHVibGljIG1ldGFkYXRhU2VjdGlvblRpdGxlOiBzdHJpbmc7XG5cbiAgcHVibGljIGhhc01ldGFkYXRhOiBib29sZWFuO1xuXG4gIHB1YmxpYyBoYXNSZWxhdGVkRW50aXRpZXM6IGJvb2xlYW47XG5cbiAgcHVibGljIGhhc1NpbWlsYXJJdGVtczogYm9vbGVhbjtcblxuICBwdWJsaWMgaGFzRXh0ZW5kZWRUcmVlOiBib29sZWFuO1xuXG4gIHB1YmxpYyBoYXNJbnRlcm5hbFNlYXJjaDogYm9vbGVhbjtcblxuICBwdWJsaWMgaGFzRGlnaXRhbE9iamVjdHM6IGJvb2xlYW47XG5cbiAgcHVibGljIGRpZ2l0YWxPYmplY3RzOiBhbnk7XG5cbiAgcHVibGljIGN1cnJlbnREaWdpdGFsT2JqZWN0OiBhbnk7XG5cbiAgcHVibGljIGN1cnJlbnREaWdpdGFsT2JqZWN0SW5kZXg6IG51bWJlcjtcblxuICBwdWJsaWMgaW1hZ2VWaWV3ZXJJc3RhbmNlOiBhbnk7XG5cbiAgcHVibGljIHNpZGViYXJJc1N0aWNreSA9IGZhbHNlO1xuXG4gIHB1YmxpYyB0cmVlTWF4SGVpZ2h0ID0gJzEwMCUnO1xuXG4gIHB1YmxpYyBjb250ZW50SXNMb2FkaW5nID0gZmFsc2U7XG5cbiAgcHVibGljIGN1cnJlbnRJZDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgcHVibGljIGVtcHR5TGFiZWw6IHN0cmluZztcblxuICAvKiogU3dpdGNoIGxvYWRlZC1jb250ZW50IGFuZCBsb2FkZWQtZW1wdHkgc3RhdGVzICovXG4gIHB1YmxpYyBoYXNDb250ZW50ID0gdHJ1ZTtcblxuICAvKiogU3RyaW5nIHRvIHJlbmRlciBpbiB0aGUgbG9hZGVkLWVtcHR5IHN0YXRlICovXG4gIHB1YmxpYyBlbXB0eVN0YXRlU3RyaW5nOiBzdHJpbmc7XG5cbiAgcHVibGljIGV4dGVybmFsVXJsVGV4dDogc3RyaW5nO1xuXG4gIHB1YmxpYyBoYXNDb250ZXh0TWVudTogKCkgPT4gYm9vbGVhbjtcblxuICBwdWJsaWMgZXh0ZW5kZWRUcmVlUGFyYW1zOiB7XG4gICAgW2tleTogc3RyaW5nXTogc3RyaW5nO1xuICB9ID0ge307XG5cbiAgcHVibGljIGludGVybmFsU2VhcmNoUGFyYW1zOiB7XG4gICAgW2tleTogc3RyaW5nXTogc3RyaW5nO1xuICB9ID0ge307XG5cbiAgcHVibGljIGxhc3RSZXNwb25zZTtcblxuICAvKiogTmFtZSBvZiBxdWVyeSB0aGF0IHNob3VsZCBiZSB1c2VkIChjaG9zZW4gaW4gY29uZmlnKSAqL1xuICBwcml2YXRlIGdldFRyZWVRdWVyeTogJ2dldFRyZWUnIHwgJ2dldFRyZWVMaXRlJyA9ICdnZXRUcmVlJztcblxuICBwdWJsaWMgdGl0bGVOYXZpZ2F0aW9uOiB7XG4gICAgcHJldjogeyBocmVmOiBzdHJpbmc7IGxhYmVsOiBzdHJpbmc7IH07XG4gICAgbmV4dDogeyBocmVmOiBzdHJpbmc7IGxhYmVsOiBzdHJpbmc7IH07XG4gIH0gPSBudWxsO1xuXG4gIHB1YmxpYyBzZWN0aW9uQ29sbGFwc2VTdGF0ZSA9IHtcbiAgICBtZXRhZGF0YTogZmFsc2UsXG4gICAgJ2V4dGVuZGVkLXRyZWUnOiBmYWxzZSxcbiAgICAnc2ltaWxhci1pdGVtcyc6IGZhbHNlLFxuICAgICdyZWxhdGVkLWVudGl0aWVzJzogZmFsc2VcbiAgfTtcblxuICBwdWJsaWMgZG9jdW1lbnRUeXBlOiB7XG4gICAgaWNvbjogc3RyaW5nO1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gIH0gPSBudWxsO1xuXG4gIG9uSW5pdCh7XG4gICAgY29uZmlndXJhdGlvbiwgbWFpblN0YXRlLCByb3V0ZXIsIG9wdGlvbnMsIHRpdGxlU2VydmljZSwgY29tbXVuaWNhdGlvbixcbiAgfSkge1xuICAgIGlmIChjb25maWd1cmF0aW9uKSB7XG4gICAgICB0aGlzLmNvbmZpZ3VyYXRpb24gPSBjb25maWd1cmF0aW9uO1xuICAgICAgdGhpcy5sYXlvdXRDb25maWcgPSB0aGlzLmNvbmZpZ3VyYXRpb24uZ2V0KHRoaXMuY29uZmlnSWQpO1xuICAgIH1cbiAgICB0aGlzLm1haW5TdGF0ZSA9IG1haW5TdGF0ZTtcbiAgICB0aGlzLnJvdXRlciA9IHJvdXRlcjtcbiAgICB0aGlzLnRpdGxlU2VydmljZSA9IHRpdGxlU2VydmljZTtcbiAgICB0aGlzLmNvbW11bmljYXRpb24gPSBjb21tdW5pY2F0aW9uO1xuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgaWYgKCF0aGlzLnNpZGViYXJDb2xsYXBzZWQpIHtcbiAgICAgIHRoaXMuc2lkZWJhckNvbGxhcHNlZCA9IHRoaXMubGF5b3V0Q29uZmlnLnRyZWUuY29sbGFwc2VkQnlEZWZhdWx0ID8/IGZhbHNlO1xuICAgIH1cbiAgICB0aGlzLnJlbGF0ZWRFbnRpdGllc0hlYWRlciA9IHRoaXMubGF5b3V0Q29uZmlnWydyZWxhdGVkLWVudGl0aWVzJ10udGl0bGU7XG4gICAgdGhpcy5zaW1pbGFySXRlbXNTZWN0aW9uVGl0bGUgPSB0aGlzLmxheW91dENvbmZpZ1sncmVsYXRlZC1pdGVtcyddLnRpdGxlO1xuICAgIHRoaXMuZXh0ZXJuYWxVcmxUZXh0ID0gdGhpcy5sYXlvdXRDb25maWdbJ2V4dGVybmFsLXVybC10ZXh0J107XG4gICAgdGhpcy5tZXRhZGF0YVNlY3Rpb25UaXRsZSA9IHRoaXMuZ2V0TWV0YWRhdGFTZWN0aW9uVGl0bGUoKTtcbiAgICB0aGlzLmhhc1NpbWlsYXJJdGVtcyA9IGZhbHNlO1xuICAgIHRoaXMub25lKCdhdy1jaGFydC10aXBweScpLnVwZGF0ZU9wdGlvbnMoe1xuICAgICAgYmFzZVBhdGg6IHRoaXMuY29uZmlndXJhdGlvbi5nZXQoJ3BhdGhzJykuZW50aXRhQmFzZVBhdGgsXG4gICAgfSk7XG4gICAgdGhpcy5lbXB0eUxhYmVsID0gdGhpcy5sYXlvdXRDb25maWdbJ2VtcHR5LWxhYmVsJ107XG4gICAgdGhpcy5lbXB0eVN0YXRlU3RyaW5nID0gdGhpcy5sYXlvdXRDb25maWdbJ2VtcHR5LWh0bWwnXTtcbiAgICB0aGlzLm9uZSgnYXctdHJlZScpLnVwZGF0ZU9wdGlvbnMoeyBjb25maWc6IHRoaXMuY29uZmlndXJhdGlvbi5nZXQoJ2NvbmZpZy1rZXlzJykgfSk7XG5cbiAgICAvLyBzd2l0Y2ggdGhlIHRyZWUgcXVlcnkgdG8gdGhlIHNsaW0gdmVyc2lvblxuICAgIGlmICh0aGlzLmxheW91dENvbmZpZz8udHJlZT8ubGl0ZSkge1xuICAgICAgdGhpcy5nZXRUcmVlUXVlcnkgPSAnZ2V0VHJlZUxpdGUnO1xuICAgIH1cblxuICAgIHRoaXMubWFpblN0YXRlLnVwZGF0ZUN1c3RvbSgnY3VycmVudE5hdicsICdwYXRyaW1vbmlvJyk7XG5cbiAgICAvLyBoZWFkIHRpdGxlXG4gICAgdGhpcy5zZXRIZWFkVGl0bGUoKTtcblxuICAgIC8vIGltYWdlIHZpZXdlciBjb250ZXh0LW1lbnUgY2hlY2tcbiAgICBjb25zdCBpbWFnZVZpZXdlckNvbmZpZyA9IHRoaXMuY29uZmlndXJhdGlvbi5nZXQodGhpcy5jb25maWdJZClbJ2ltYWdlLXZpZXdlciddIHx8IHt9O1xuICAgIHRoaXMuaGFzQ29udGV4dE1lbnUgPSAoKSA9PiAhIWltYWdlVmlld2VyQ29uZmlnWydjb250ZXh0LW1lbnUnXTtcblxuICAgIC8vIHBkZiB2aWV3ZXIgb3B0aW9uc1xuICAgIHRoaXMub25lKCdhdy1zY2hlZGEtcGRmJykudXBkYXRlT3B0aW9ucyh0aGlzLmNvbmZpZ3VyYXRpb24uZ2V0KHRoaXMuY29uZmlnSWQpWydwZGYtdmlld2VyJ10gfHwge30pO1xuXG4gICAgLy8gY2hlY2sgc2VjdGlvbiBjb2xsYXBzZSBzdGF0ZVxuICAgIE9iamVjdC5rZXlzKHRoaXMuc2VjdGlvbkNvbGxhcHNlU3RhdGUpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgY29uc3Qgc3RvcmFnZUtleSA9IGAke0xPQ0FMX1NUT1JBR0VfUFJFRklYfS4ke2tleX1gO1xuICAgICAgY29uc3Qgc3RvcmFnZVZhbHVlID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oc3RvcmFnZUtleSk7XG4gICAgICB0aGlzLnNlY3Rpb25Db2xsYXBzZVN0YXRlW2tleV0gPSBzdG9yYWdlVmFsdWUgPyBKU09OLnBhcnNlKHN0b3JhZ2VWYWx1ZSkgOiBmYWxzZTtcbiAgICB9KTtcblxuICAgIC8vIHNpZGViYXIgc3RpY2t5IGNvbnRyb2xcbiAgICB0aGlzLl9zaWRlYmFyU3RpY2t5Q29udHJvbCgpO1xuICB9XG5cbiAgb25EZXN0cm95KCkge1xuICAgIHRoaXMuZGVzdHJveWVkJC5uZXh0KCk7XG4gIH1cblxuICBnZXRNZXRhZGF0YVNlY3Rpb25UaXRsZSgpIHtcbiAgICBjb25zdCBsYXlvdXRDb25maWcgPSB0aGlzLmNvbmZpZ3VyYXRpb24uZ2V0KHRoaXMuY29uZmlnSWQpO1xuICAgIGNvbnN0IG1ldGFkYXRhQ29uZmlnID0gbGF5b3V0Q29uZmlnLm1ldGFkYXRhIHx8IHt9O1xuICAgIHJldHVybiBtZXRhZGF0YUNvbmZpZy50aXRsZSB8fCBudWxsO1xuICB9XG5cbiAgZ2V0TmF2aWdhdGlvbigpIHtcbiAgICBpZiAoQXdTY2hlZGFMYXlvdXREUy50cmVlKSB7XG4gICAgICByZXR1cm4gb2YoQXdTY2hlZGFMYXlvdXREUy50cmVlKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY29tbXVuaWNhdGlvbi5yZXF1ZXN0JCh0aGlzLmdldFRyZWVRdWVyeSwge1xuICAgICAgb25FcnJvcjogKGVycm9yKSA9PiBjb25zb2xlLmVycm9yKGVycm9yKSxcbiAgICAgIHBhcmFtczoge1xuICAgICAgICBvbmx5QWw6ICEhdGhpcy5sYXlvdXRDb25maWdbJ2V4dGVuZGVkLXRyZWUnXVxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHNldFRyZWUodHJlZSkge1xuICAgIEF3U2NoZWRhTGF5b3V0RFMudHJlZSA9IHRyZWU7XG4gIH1cblxuICBnZXRUcmVlID0gKCkgPT4gQXdTY2hlZGFMYXlvdXREUy50cmVlO1xuXG4gIHVwZGF0ZU5hdmlnYXRpb24odGV4dCkge1xuICAgIHRoaXMub25lKCdhdy1zaWRlYmFyLWhlYWRlcicpLnVwZGF0ZSh7IHRleHQsIGlzRXhwYW5kZWQ6ICF0aGlzLnNpZGViYXJDb2xsYXBzZWQgfSk7XG4gIH1cblxuICBsb2FkSXRlbShpZCkge1xuICAgIGNvbnN0IG1heFNpbWlsYXJJdGVtcyA9IHRoaXMuY29uZmlndXJhdGlvbi5nZXQodGhpcy5jb25maWdJZClbJ3JlbGF0ZWQtaXRlbXMnXVsnbWF4LXJlbGF0ZWQtaXRlbXMnXTtcbiAgICByZXR1cm4gdGhpcy5jb21tdW5pY2F0aW9uLnJlcXVlc3QkKCdnZXROb2RlJywge1xuICAgICAgb25FcnJvcjogKGVycm9yKSA9PiBjb25zb2xlLmVycm9yKGVycm9yKSxcbiAgICAgIHBhcmFtczogeyBpZCwgbWF4U2ltaWxhckl0ZW1zIH0sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogTG9hZHMgdGhlIGNvbnRlbnQgb2YgdGhlIHNlbGVjdGVkIHRyZWUgaXRlbSBpbiB0aGUgcmlnaHQgcG9ydGlvbiBvZiB0aGUgdmlldy5cbiAgICogQHBhcmFtIHJlc3BvbnNlIGh0dHAgcmVzcG9uc2UgZm9yIHRoZSB0cmVlIGl0ZW1cbiAgICovXG4gIGxvYWRDb250ZW50KHJlc3BvbnNlKSB7XG4gICAgdGhpcy5sYXN0UmVzcG9uc2UgPSByZXNwb25zZTtcbiAgICBpZiAocmVzcG9uc2UpIHtcbiAgICAgIC8vIHJlc2V0XG4gICAgICB0aGlzLmN1cnJlbnREaWdpdGFsT2JqZWN0ID0gbnVsbDtcbiAgICAgIHRoaXMuY3VycmVudERpZ2l0YWxPYmplY3RJbmRleCA9IG51bGw7XG5cbiAgICAgIGNvbnN0IG1ldGFkYXRhRmllbGRzID0gdGhpcy5nZXRGaWVsZHMocmVzcG9uc2UpO1xuICAgICAgdGhpcy5oYXNNZXRhZGF0YSA9ICEhKEFycmF5LmlzQXJyYXkobWV0YWRhdGFGaWVsZHMpICYmIG1ldGFkYXRhRmllbGRzLmxlbmd0aCk7XG4gICAgICB0aGlzLmhhc1NpbWlsYXJJdGVtcyA9IChcbiAgICAgICAgIXRoaXMubGF5b3V0Q29uZmlnWydleHRlbmRlZC10cmVlJ11cbiAgICAgICAgJiYgQXJyYXkuaXNBcnJheShyZXNwb25zZS5yZWxhdGVkSXRlbXMpXG4gICAgICAgICYmIHJlc3BvbnNlLnJlbGF0ZWRJdGVtcy5sZW5ndGhcbiAgICAgICk7XG4gICAgICB0aGlzLmhhc0JyZWFkY3J1bWIgPSBBcnJheS5pc0FycmF5KHJlc3BvbnNlLmJyZWFkY3J1bWJzKSAmJiByZXNwb25zZS5icmVhZGNydW1icy5sZW5ndGg7XG4gICAgICB0aGlzLmhhc0RpZ2l0YWxPYmplY3RzID0gKFxuICAgICAgICBBcnJheS5pc0FycmF5KHJlc3BvbnNlLmRpZ2l0YWxPYmplY3RzKVxuICAgICAgICAmJiByZXNwb25zZS5kaWdpdGFsT2JqZWN0cy5sZW5ndGhcbiAgICAgICk7XG4gICAgICB0aGlzLmhhc1JlbGF0ZWRFbnRpdGllcyA9IChcbiAgICAgICAgQXJyYXkuaXNBcnJheShyZXNwb25zZS5yZWxhdGVkRW50aXRpZXMpXG4gICAgICAgICYmIHJlc3BvbnNlLnJlbGF0ZWRFbnRpdGllcy5sZW5ndGhcbiAgICAgICk7XG4gICAgICB0aGlzLmhhc0NvbnRlbnQgPSAhIShcbiAgICAgICAgdGhpcy5oYXNNZXRhZGF0YVxuICAgICAgICB8fCB0aGlzLmhhc1NpbWlsYXJJdGVtc1xuICAgICAgICB8fCB0aGlzLmhhc1JlbGF0ZWRFbnRpdGllc1xuICAgICAgICB8fCB0aGlzLmhhc0RpZ2l0YWxPYmplY3RzXG4gICAgICApO1xuXG4gICAgICB0aGlzLmNvbnRlbnRQYXJ0cyA9IFtdO1xuICAgICAgY29uc3QgY29udGVudCA9IHsgY29udGVudDogbnVsbCB9O1xuXG4gICAgICBpZiAocmVzcG9uc2UudGV4dCkge1xuICAgICAgICBjb250ZW50LmNvbnRlbnQgPSByZXNwb25zZS50ZXh0O1xuICAgICAgfVxuICAgICAgdGhpcy5jb250ZW50UGFydHMucHVzaChjb250ZW50KTtcblxuICAgICAgLy8gZGlnaXRhbCBvYmplY3RzXG4gICAgICBpZiAodGhpcy5oYXNEaWdpdGFsT2JqZWN0cykge1xuICAgICAgICByZXNwb25zZS5kaWdpdGFsT2JqZWN0cyA9IHRoaXMubm9ybWFsaXplRGlnaXRhbE9iamVjdHMocmVzcG9uc2UuZGlnaXRhbE9iamVjdHMpO1xuICAgICAgICAvLyB0aGlzLm9uZSgnYXctc2NoZWRhLWRpZ2l0YWwtb2JqZWN0cycpLnVwZGF0ZShyZXNwb25zZS5kaWdpdGFsT2JqZWN0cyk7XG4gICAgICAgIHRoaXMub25lKCdhdy1zY2hlZGEtZHJvcGRvd24nKS51cGRhdGUocmVzcG9uc2UpO1xuICAgICAgICB0aGlzLmRpZ2l0YWxPYmplY3RzID0gcmVzcG9uc2UuZGlnaXRhbE9iamVjdHM7XG4gICAgICAgIHRoaXMuY2hhbmdlRGlnaXRhbE9iamVjdCgwKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgdGl0bGVPYmogPSB7XG4gICAgICAgIGljb246IHJlc3BvbnNlLmljb24sXG4gICAgICAgIHRpdGxlOiB7XG4gICAgICAgICAgbWFpbjoge1xuICAgICAgICAgICAgdGV4dDogcmVzcG9uc2UudGl0bGUgfHwgcmVzcG9uc2UubGFiZWwsXG4gICAgICAgICAgICBjbGFzc2VzOiAnYm9sZCcsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgdG9vbHM6IHJlc3BvbnNlLnN1YlRpdGxlLFxuICAgICAgICBhY3Rpb25zOiB7fSxcbiAgICAgIH07XG5cbiAgICAgIHRoaXMub25lKCdhdy1zY2hlZGEtaW5uZXItdGl0bGUnKS51cGRhdGUodGl0bGVPYmopO1xuICAgICAgdGhpcy5vbmUoJ2F3LXNjaGVkYS1tZXRhZGF0YScpLnVwZGF0ZShtZXRhZGF0YUZpZWxkcyk7XG5cbiAgICAgIC8vIEJyZWFkY3J1bWIgc2VjdGlvblxuICAgICAgY29uc3QgYnJlYWRjcnVtYnMgPSB7XG4gICAgICAgIGl0ZW1zOiBbXSxcbiAgICAgIH07XG5cbiAgICAgIGlmIChyZXNwb25zZS5icmVhZGNydW1icykge1xuICAgICAgICByZXNwb25zZS5icmVhZGNydW1icy5mb3JFYWNoKChlbGVtZW50KSA9PiB7XG4gICAgICAgICAgYnJlYWRjcnVtYnMuaXRlbXMucHVzaCh7XG4gICAgICAgICAgICBsYWJlbDogZWxlbWVudC5sYWJlbCxcbiAgICAgICAgICAgIGFuY2hvcjoge1xuICAgICAgICAgICAgICBocmVmOiBbXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWd1cmF0aW9uLmdldCgncGF0aHMnKS5zY2hlZGFCYXNlUGF0aCxcbiAgICAgICAgICAgICAgICBgJHtlbGVtZW50Lmxpbmt9L2AsXG4gICAgICAgICAgICAgICAgaGVscGVycy5zbHVnaWZ5KGVsZW1lbnQubGFiZWwpLFxuICAgICAgICAgICAgICBdLmpvaW4oJycpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMub25lKCdhdy1zY2hlZGEtYnJlYWRjcnVtYnMnKS51cGRhdGUoYnJlYWRjcnVtYnMpO1xuICAgICAgfVxuXG4gICAgICAvLyB0aXRsZSBwcmV2IC8gbmV4dCBuYXZpZ2F0aW9uXG4gICAgICB0aGlzLmxvYWRUaXRsZU5hdmlnYXRpb24oKTtcblxuICAgICAgLy8gZG9jdW1lbnQgdGl0bGUgdHlwZSAoaWNvbiwgbGFiZWwpXG4gICAgICB0aGlzLmxvYWREb2N1bWVudFR5cGUoKTtcblxuICAgICAgLy8gdXBkYXRlIGhlYWQgdGl0bGVcbiAgICAgIHRoaXMuc2V0SGVhZFRpdGxlKHJlc3BvbnNlLnRpdGxlIHx8IHJlc3BvbnNlLmxhYmVsKTtcbiAgICB9XG5cbiAgICBpZiAocmVzcG9uc2UucmVsYXRlZEl0ZW1zKSB7XG4gICAgICB0aGlzLm9uZSgnYXctbGlua2VkLW9iamVjdHMnKS51cGRhdGVPcHRpb25zKHsgY29udGV4dDogJ3NjaGVkYScsIGNvbmZpZzogdGhpcy5jb25maWd1cmF0aW9uIH0pO1xuICAgICAgdGhpcy5vbmUoJ2F3LWxpbmtlZC1vYmplY3RzJykudXBkYXRlKHJlc3BvbnNlKTtcbiAgICB9XG4gICAgaWYgKHJlc3BvbnNlLnJlbGF0ZWRFbnRpdGllcykge1xuICAgICAgcmVzcG9uc2UucmVsYXRlZEVudGl0aWVzLmZvckVhY2goKGVsKSA9PiB7XG4gICAgICAgIGNvbnN0IGxhYmVsID0gcmVzcG9uc2UudGl0bGUgfHwgcmVzcG9uc2UubGFiZWw7XG4gICAgICAgIGVsLnJlbGF0aW9uTmFtZSA9IGxhYmVsLmxlbmd0aCA+IDMwXG4gICAgICAgICAgPyBgJHtsYWJlbC5zdWJzdHIoMCwgMzApfS4uLiBgXG4gICAgICAgICAgOiBsYWJlbDtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5vbmUoJ2F3LXJlbGF0ZWQtZW50aXRpZXMnKS51cGRhdGVPcHRpb25zKHtcbiAgICAgICAgY29udGV4dDogJ3NjaGVkYScsIGNvbmZpZzogdGhpcy5jb25maWd1cmF0aW9uLCBsaXN0OiAncmVsYXRlZEVudGl0aWVzJywgdGl0bGU6IHJlc3BvbnNlLnRpdGxlXG4gICAgICB9KTtcbiAgICAgIHRoaXMub25lKCdhdy1yZWxhdGVkLWVudGl0aWVzJykudXBkYXRlKHJlc3BvbnNlLnJlbGF0ZWRFbnRpdGllcyk7XG4gICAgfVxuXG4gICAgLy8gY29udHJvbCBzdGlja3lcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuc3RpY2t5Q29udHJvbFRyaWdnZXIkLm5leHQoKTtcbiAgICB9KTtcbiAgfVxuXG4gIGxvYWRFeHRlbmRlZFRyZWUoKSB7XG4gICAgY29uc3QgcGFyZW50UmVzcG9uc2UgPSB0aGlzLmxhc3RSZXNwb25zZTtcblxuICAgIGlmICh0aGlzLmxheW91dENvbmZpZ1snZXh0ZW5kZWQtdHJlZSddKSB7XG4gICAgICBjb25zdCBjb25maWdLZXlzID0gdGhpcy5jb25maWd1cmF0aW9uLmdldCgnY29uZmlnLWtleXMnKTtcbiAgICAgIGNvbnN0IHdpZGdldE9wdGlvbnMgPSB0aGlzLmxheW91dENvbmZpZ1snZXh0ZW5kZWQtdHJlZSddO1xuICAgICAgY29uc3QgcGFyYW1zOiBhbnkgPSB7XG4gICAgICAgIGlkOiBwYXJlbnRSZXNwb25zZS5pZCxcbiAgICAgICAgcGFnZTogMSxcbiAgICAgICAgbGltaXQ6IDEwLFxuICAgICAgICBxdWVyeTogbnVsbCxcbiAgICAgICAgLi4udGhpcy5leHRlbmRlZFRyZWVQYXJhbXMsXG4gICAgICB9O1xuICAgICAgY29uc3Qgd2lkZ2V0UGFyYW1zID0gY2xvbmUocGFyYW1zKTtcblxuICAgICAgLy8gbm9ybWFsaXplIHBhcmFtc1xuICAgICAgcGFyYW1zLm9mZnNldCA9IChwYXJhbXMucGFnZSAtIDEpICogcGFyYW1zLmxpbWl0O1xuICAgICAgZGVsZXRlIHBhcmFtcy5wYWdlO1xuXG4gICAgICBjb25zdCBiYXNlUGF0aCA9IHRoaXMuY29uZmlndXJhdGlvbi5nZXQoJ3BhdGhzJykuc2NoZWRhQmFzZVBhdGg7XG4gICAgICBjb25zdCByZXF1ZXN0JCA9IHRoaXMuY29tbXVuaWNhdGlvbi5yZXF1ZXN0JCgnZ2V0Tm9kZUNoaWxkcmVuJywge1xuICAgICAgICBwYXJhbXMsXG4gICAgICAgIG9uRXJyb3I6IChlcnJvcikgPT4gY29uc29sZS5lcnJvcihlcnJvciksXG4gICAgICB9KTtcbiAgICAgIHJlcXVlc3QkLnN1YnNjcmliZSgobm9kZXNSZXNwb25zZSkgPT4ge1xuICAgICAgICB0aGlzLmhhc0V4dGVuZGVkVHJlZSA9IChcbiAgICAgICAgICBwYXJhbXMucXVlcnlcbiAgICAgICAgICB8fCB3aWRnZXRQYXJhbXMucGFnZSA+IDFcbiAgICAgICAgICB8fCAhIW5vZGVzUmVzcG9uc2U/Lml0ZW1zPy5sZW5ndGhcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKHRoaXMuaGFzRXh0ZW5kZWRUcmVlKSB7XG4gICAgICAgICAgdGhpcy5vbmUoJ2F3LWV4dGVuZGVkLXRyZWUnKS51cGRhdGVPcHRpb25zKHtcbiAgICAgICAgICAgIGJhc2VQYXRoLFxuICAgICAgICAgICAgY29uZmlnS2V5cyxcbiAgICAgICAgICAgIHBhcmFtczogd2lkZ2V0UGFyYW1zLFxuICAgICAgICAgICAgLi4ud2lkZ2V0T3B0aW9ucyxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICB0aGlzLm9uZSgnYXctZXh0ZW5kZWQtdHJlZScpLnVwZGF0ZSh7XG4gICAgICAgICAgICBwYXJlbnQ6IHBhcmVudFJlc3BvbnNlLFxuICAgICAgICAgICAgbm9kZXM6IG5vZGVzUmVzcG9uc2VcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIC8vIGZpeCBxdWVyeSBpbnB1dCB1cGRhdGVcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHF1ZXJ5SW5wdXQ6IEhUTUxJbnB1dEVsZW1lbnQgPSBkb2N1bWVudFxuICAgICAgICAgICAgICAucXVlcnlTZWxlY3RvcignLmF3LWV4dGVuZGVkLXRyZWVfX2hlYWRlciAubjctaW5uZXItdGl0bGVfX3NlYXJjaC1iYXInKTtcbiAgICAgICAgICAgIGlmIChxdWVyeUlucHV0KSB7XG4gICAgICAgICAgICAgIHF1ZXJ5SW5wdXQudmFsdWUgPSBwYXJhbXMucXVlcnkgfHwgJyc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmhhc0V4dGVuZGVkVHJlZSA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGxvYWRJbnRlcm5hbFNlYXJjaCgpIHtcbiAgICBjb25zdCBwYXJlbnRSZXNwb25zZSA9IHRoaXMubGFzdFJlc3BvbnNlO1xuXG4gICAgaWYgKHRoaXMubGF5b3V0Q29uZmlnWydpbnRlcm5hbC1zZWFyY2gnXSkge1xuICAgICAgdGhpcy5oYXNJbnRlcm5hbFNlYXJjaCA9IHRydWU7XG4gICAgICBjb25zdCBjb25maWdLZXlzID0gdGhpcy5jb25maWd1cmF0aW9uLmdldCgnY29uZmlnLWtleXMnKTtcbiAgICAgIGNvbnN0IHdpZGdldE9wdGlvbnMgPSB0aGlzLmxheW91dENvbmZpZ1snaW50ZXJuYWwtc2VhcmNoJ107XG4gICAgICBjb25zdCByYXdQYXJhbXM6IGFueSA9IHtcbiAgICAgICAgaWQ6IHBhcmVudFJlc3BvbnNlLmlkLFxuICAgICAgICAnc2VhcmNoLXBhZ2UnOiAxLFxuICAgICAgICAnc2VhcmNoLWxpbWl0JzogMTAsXG4gICAgICAgICdzZWFyY2gtcXVlcnknOiBudWxsLFxuICAgICAgICBhbmNlc3RvcjogdHJ1ZSxcbiAgICAgICAgLi4udGhpcy5pbnRlcm5hbFNlYXJjaFBhcmFtcyxcbiAgICAgIH07XG5cbiAgICAgIC8vIHNldCBwYXJhbXMgb2JqZWN0IHdpdGhvdXQgXCJzZWFyY2gtXCIgcHJlZml4XG4gICAgICBjb25zdCBwYXJhbXM6IFBhcmFtcyA9IHt9O1xuICAgICAgT2JqZWN0LmtleXMocmF3UGFyYW1zKS5mb3JFYWNoKChwYXJhbUtleSkgPT4ge1xuICAgICAgICBwYXJhbXNbcGFyYW1LZXkucmVwbGFjZSgnc2VhcmNoLScsICcnKV0gPSByYXdQYXJhbXNbcGFyYW1LZXldO1xuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IHdpZGdldFBhcmFtcyA9IGNsb25lKHBhcmFtcyk7XG5cbiAgICAgIC8vIG5vcm1hbGl6ZSBwYXJhbXNcbiAgICAgIHBhcmFtcy5vZmZzZXQgPSAocGFyYW1zLnBhZ2UgLSAxKSAqIHBhcmFtcy5saW1pdDtcbiAgICAgIGRlbGV0ZSBwYXJhbXMucGFnZTtcblxuICAgICAgY29uc3QgYmFzZVBhdGggPSB0aGlzLmNvbmZpZ3VyYXRpb24uZ2V0KCdwYXRocycpLnNjaGVkYUJhc2VQYXRoO1xuICAgICAgbGV0IHJlcXVlc3QkOiBPYnNlcnZhYmxlPGFueT4gPSBvZihudWxsKTtcbiAgICAgIGlmIChwYXJhbXMucXVlcnkpIHtcbiAgICAgICAgcmVxdWVzdCQgPSB0aGlzLmNvbW11bmljYXRpb24ucmVxdWVzdCQoJ2dldE5vZGVDaGlsZHJlbicsIHtcbiAgICAgICAgICBwYXJhbXMsXG4gICAgICAgICAgb25FcnJvcjogKGVycm9yKSA9PiBjb25zb2xlLmVycm9yKGVycm9yKSxcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHJlcXVlc3QkLnN1YnNjcmliZSgobm9kZXNSZXNwb25zZSkgPT4ge1xuICAgICAgICB0aGlzLm9uZSgnYXctc2NoZWRhLXNlYXJjaCcpLnVwZGF0ZU9wdGlvbnMoe1xuICAgICAgICAgIGJhc2VQYXRoLFxuICAgICAgICAgIGNvbmZpZ0tleXMsXG4gICAgICAgICAgcGFyYW1zOiB3aWRnZXRQYXJhbXMsXG4gICAgICAgICAgLi4ud2lkZ2V0T3B0aW9ucyxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMub25lKCdhdy1zY2hlZGEtc2VhcmNoJykudXBkYXRlKG5vZGVzUmVzcG9uc2UpO1xuXG4gICAgICAgIC8vIGZpeCBxdWVyeSBpbnB1dCB1cGRhdGVcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgY29uc3QgcXVlcnlJbnB1dDogSFRNTElucHV0RWxlbWVudCA9IGRvY3VtZW50XG4gICAgICAgICAgICAucXVlcnlTZWxlY3RvcignLmF3LXNjaGVkYS1zZWFyY2hfX2lucHV0IGlucHV0W3R5cGU9XCJ0ZXh0XCJdJyk7XG4gICAgICAgICAgaWYgKHF1ZXJ5SW5wdXQpIHtcbiAgICAgICAgICAgIHF1ZXJ5SW5wdXQudmFsdWUgPSBwYXJhbXMucXVlcnkgfHwgJyc7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmhhc0ludGVybmFsU2VhcmNoID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgbG9hZFRpdGxlTmF2aWdhdGlvbigpIHtcbiAgICAvLyByZXNldFxuICAgIHRoaXMudGl0bGVOYXZpZ2F0aW9uID0gbnVsbDtcblxuICAgIGNvbnN0IGhhc1RpdGxlTmF2ID0gKFxuICAgICAgISF0aGlzLmxheW91dENvbmZpZ1sndGl0bGUtbmF2J10/LmVuYWJsZWRcbiAgICAgICYmIHRoaXMubGFzdFJlc3BvbnNlLmRvY3VtZW50X3R5cGUgPT09ICdvZ2dldHRvLWN1bHR1cmFsZSdcbiAgICApO1xuICAgIGlmICghaGFzVGl0bGVOYXYpIHJldHVybjtcblxuICAgIHRoaXMudGl0bGVOYXZpZ2F0aW9uID0geyBwcmV2OiBudWxsLCBuZXh0OiBudWxsIH07XG4gICAgY29uc3QgYmFzZVBhdGggPSB0aGlzLmNvbmZpZ3VyYXRpb24uZ2V0KCdwYXRocycpLnNjaGVkYUJhc2VQYXRoO1xuICAgIFsncHJldicsICduZXh0J10uZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICBjb25zdCBpdGVtID0gdGhpcy5sYXN0UmVzcG9uc2Vba2V5XTtcbiAgICAgIHRoaXMudGl0bGVOYXZpZ2F0aW9uW2tleV0gPSBpdGVtXG4gICAgICAgID8ge1xuICAgICAgICAgIGhyZWY6IGAke2Jhc2VQYXRofS8ke2l0ZW0uaWR9LyR7aGVscGVycy5zbHVnaWZ5KGl0ZW0ubGFiZWwpfWAsXG4gICAgICAgICAgbGFiZWw6IGl0ZW0ubGFiZWwsXG4gICAgICAgIH0gOiBudWxsO1xuICAgIH0pO1xuICB9XG5cbiAgbG9hZERvY3VtZW50VHlwZSgpIHtcbiAgICBjb25zdCBjb25maWdLZXlzID0gdGhpcy5jb25maWd1cmF0aW9uLmdldCgnY29uZmlnLWtleXMnKTtcbiAgICBjb25zdCB7IGRvY3VtZW50X3R5cGU6IHR5cGUgfSA9IHRoaXMubGFzdFJlc3BvbnNlO1xuICAgIGNvbnN0IGljb24gPSBub2RlSGVscGVyLmdldE5vZGVJY29uKGNvbmZpZ0tleXMsIHRoaXMubGFzdFJlc3BvbnNlKTtcbiAgICBpZiAoY29uZmlnS2V5c1t0eXBlXSkge1xuICAgICAgdGhpcy5kb2N1bWVudFR5cGUgPSB7XG4gICAgICAgIGljb24sXG4gICAgICAgIGxhYmVsOiBjb25maWdLZXlzW3R5cGVdWydzaW5ndWxhci1sYWJlbCddXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRvY3VtZW50VHlwZSA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRvZ2dsZSBiZXR3ZWVuIHRoZSB0cmVlJ3MgY29sbGFwc2VkIG9yIGV4cGFuZGVkIHN0YXRlLlxuICAgKi9cbiAgY29sbGFwc2VTaWRlYmFyKCkge1xuICAgIC8vIG92ZXJ3cml0ZSB0aGUgY29uZmlndXJhdGlvbiB0byBwcmV2ZW50IHVud2FudGVkIGNoYW5nZXMgdG8gdGhlIHRyZWUgc3RhdGUuXG4gICAgdGhpcy5sYXlvdXRDb25maWcudHJlZS5jb2xsYXBzZWRCeURlZmF1bHQgPSAhdGhpcy5sYXlvdXRDb25maWcudHJlZS5jb2xsYXBzZWRCeURlZmF1bHQ7XG4gICAgdGhpcy5zaWRlYmFyQ29sbGFwc2VkID0gIXRoaXMuc2lkZWJhckNvbGxhcHNlZDtcbiAgICB0aGlzLmdldFdpZGdldERhdGFTb3VyY2UoJ2F3LXNpZGViYXItaGVhZGVyJykudG9nZ2xlU2lkZWJhcigpO1xuICB9XG5cbiAgb25TZWN0aW9uQ29sbGFwc2UoaWQ6IHN0cmluZykge1xuICAgIHRoaXMuc2VjdGlvbkNvbGxhcHNlU3RhdGVbaWRdID0gIXRoaXMuc2VjdGlvbkNvbGxhcHNlU3RhdGVbaWRdO1xuXG4gICAgLy8gdXBkYXRlIHN0b3JhZ2VcbiAgICBjb25zdCBzdG9yYWdlS2V5ID0gYCR7TE9DQUxfU1RPUkFHRV9QUkVGSVh9LiR7aWR9YDtcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShzdG9yYWdlS2V5LCB0aGlzLnNlY3Rpb25Db2xsYXBzZVN0YXRlW2lkXSk7XG4gIH1cblxuICBwcml2YXRlIF9zaWRlYmFyU3RpY2t5Q29udHJvbCgpIHtcbiAgICAvLyBubyBzdGlja3kgZm9yIEludGVybmV0IEV4cGxvcmVyXG4gICAgaWYgKGhlbHBlcnMuYnJvd3NlcklzSUUoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBzb3VyY2UkID0gZnJvbUV2ZW50KHdpbmRvdywgJ3Njcm9sbCcpO1xuXG4gICAgbWVyZ2Uoc291cmNlJCwgdGhpcy5zdGlja3lDb250cm9sVHJpZ2dlciQpLnBpcGUoXG4gICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSxcbiAgICApLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBjb25zdCB3aW5kb3dUb3AgPSB3aW5kb3cucGFnZVlPZmZzZXQ7XG4gICAgICBjb25zdCB3aW5kb3dCb3R0b20gPSB3aW5kb3cuc2Nyb2xsWSArIHdpbmRvdy5pbm5lckhlaWdodDtcbiAgICAgIGNvbnN0IHdyYXBwZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdzdGlja3ktcGFyZW50JylbMF0gYXMgSFRNTEVsZW1lbnQ7XG4gICAgICBjb25zdCB3cmFwcGVyVG9wID0gd3JhcHBlci5vZmZzZXRUb3A7XG4gICAgICBjb25zdCB3cmFwcGVyQm90dG9tID0gd3JhcHBlclRvcCArIHdyYXBwZXIuY2xpZW50SGVpZ2h0O1xuXG4gICAgICB0aGlzLnNpZGViYXJJc1N0aWNreSA9IHdyYXBwZXJUb3AgPD0gd2luZG93VG9wO1xuXG4gICAgICAvLyB0cmVlIGhlaWdodCBjb250cm9sXG4gICAgICBpZiAodGhpcy5zaWRlYmFySXNTdGlja3kgJiYgd2luZG93Qm90dG9tIDwgd3JhcHBlckJvdHRvbSkge1xuICAgICAgICB0aGlzLnRyZWVNYXhIZWlnaHQgPSBgJHt3aW5kb3dCb3R0b20gLSB3aW5kb3dUb3AgLSA1MH1weGA7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuc2lkZWJhcklzU3RpY2t5ICYmIHdpbmRvd0JvdHRvbSA+PSB3cmFwcGVyQm90dG9tKSB7XG4gICAgICAgIHRoaXMudHJlZU1heEhlaWdodCA9IGAke3dyYXBwZXJCb3R0b20gLSB3aW5kb3dUb3AgLSA1MH1weGA7XG4gICAgICB9IGVsc2UgaWYgKHdpbmRvd0JvdHRvbSA8IHdyYXBwZXJCb3R0b20pIHtcbiAgICAgICAgdGhpcy50cmVlTWF4SGVpZ2h0ID0gYCR7d2luZG93Qm90dG9tIC0gd3JhcHBlclRvcCAtIDUwfXB4YDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMudHJlZU1heEhlaWdodCA9IGAke3dyYXBwZXJCb3R0b20gLSB3cmFwcGVyVG9wIC0gNTB9cHhgO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldEZpZWxkcyhyZXNwb25zZSkge1xuICAgIGNvbnN0IHtcbiAgICAgIGZpZWxkcyxcbiAgICAgIGRvY3VtZW50X3R5cGU6IGR0LFxuICAgICAgZG9jdW1lbnRfY2xhc3NpZmljYXRpb246IGRjXG4gICAgfSA9IHJlc3BvbnNlO1xuICAgIGNvbnN0IHBhdGhzID0gdGhpcy5jb25maWd1cmF0aW9uLmdldCgncGF0aHMnKTtcbiAgICBjb25zdCBsYWJlbHMgPSB0aGlzLmNvbmZpZ3VyYXRpb24uZ2V0KCdsYWJlbHMnKTtcbiAgICBjb25zdCBkY1NlZ21lbnRzID0gdHlwZW9mIGRjID09PSAnc3RyaW5nJyA/IGRjLnNwbGl0KCcuJykgOiBbXTtcbiAgICBjb25zdCBkY0xhc3RTZWdtZW50ID0gZGNTZWdtZW50c1tkY1NlZ21lbnRzLmxlbmd0aCAtIDFdO1xuICAgIGxldCBtZXRhZGF0YVRvU2hvdyA9IF9nZXQodGhpcy5jb25maWd1cmF0aW9uLmdldCh0aGlzLmNvbmZpZ0lkKSwgJ21ldGFkYXRhLXRvLXNob3cnLCB7fSk7XG4gICAgbWV0YWRhdGFUb1Nob3cgPSBtZXRhZGF0YVRvU2hvd1tkY0xhc3RTZWdtZW50XSB8fCBtZXRhZGF0YVRvU2hvd1tkdF0gfHwgW107XG5cbiAgICByZXR1cm4gbWV0YWRhdGFIZWxwZXIubm9ybWFsaXplKHtcbiAgICAgIGZpZWxkcyxcbiAgICAgIHBhdGhzLFxuICAgICAgbGFiZWxzLFxuICAgICAgbWV0YWRhdGFUb1Nob3csXG4gICAgICB0eXBlOiBkdFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGNoYW5nZURpZ2l0YWxPYmplY3QocGF5bG9hZCkge1xuICAgIGlmICh0aGlzLmN1cnJlbnREaWdpdGFsT2JqZWN0SW5kZXggIT09IHBheWxvYWQpIHtcbiAgICAgIC8vIGxpbmsgY2hlY2tcbiAgICAgIGlmICh0aGlzLmRpZ2l0YWxPYmplY3RzW3BheWxvYWRdLnR5cGUgPT09ICdleHRlcm5hbCcgJiYgdGhpcy5jdXJyZW50RGlnaXRhbE9iamVjdCkge1xuICAgICAgICB3aW5kb3cub3Blbih0aGlzLmRpZ2l0YWxPYmplY3RzW3BheWxvYWRdLnVybCwgJ19ibGFuaycpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gYWx3YXlzIHJlc2V0IGltYWdlIHZpZXdlclxuICAgICAgICBjb25zdCBzY2hlZGFJbWFnZURTID0gdGhpcy5nZXRXaWRnZXREYXRhU291cmNlKCdhdy1zY2hlZGEtaW1hZ2UnKTtcbiAgICAgICAgc2NoZWRhSW1hZ2VEUy5yZXNldCgpO1xuXG4gICAgICAgIHRoaXMuY3VycmVudERpZ2l0YWxPYmplY3RJbmRleCA9IHBheWxvYWQ7XG4gICAgICAgIHRoaXMuY3VycmVudERpZ2l0YWxPYmplY3QgPSB0aGlzLmRpZ2l0YWxPYmplY3RzW3BheWxvYWRdO1xuICAgICAgICBpZiAodGhpcy5jdXJyZW50RGlnaXRhbE9iamVjdC50eXBlLmluY2x1ZGVzKCdpbWFnZXMnKSkge1xuICAgICAgICAgIGlmIChzY2hlZGFJbWFnZURTLmhhc0luc3RhbmNlKCkpIHtcbiAgICAgICAgICAgIHNjaGVkYUltYWdlRFMudXBkYXRlSW1hZ2VzKHRoaXMuY3VycmVudERpZ2l0YWxPYmplY3QpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm9uZSgnYXctc2NoZWRhLWltYWdlJykudXBkYXRlKHRoaXMuY3VycmVudERpZ2l0YWxPYmplY3QpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIGltYWdlIHZpZXdlciBuYXZpZ2F0b3JcbiAgICAgICAgICBjb25zdCBuYXZpZ2F0b3JDb25maWcgPSB0aGlzLmxheW91dENvbmZpZ1snaW1hZ2Utdmlld2VyLW5hdiddO1xuICAgICAgICAgIGlmIChuYXZpZ2F0b3JDb25maWc/LmVuYWJsZWQpIHtcbiAgICAgICAgICAgIHNjaGVkYUltYWdlRFMuaW5zdGFuY2VMb2FkZWQkLnBpcGUoXG4gICAgICAgICAgICAgIGZpcnN0KCksXG4gICAgICAgICAgICAgIGRlbGF5KDEwMCkgLy8gd2FpdGluZyBmb3Igdmlld2VyIGluc3RhbmNlIHRvIHVwZGF0ZVxuICAgICAgICAgICAgKS5zdWJzY3JpYmUoKHZpZXdlcikgPT4ge1xuICAgICAgICAgICAgICB0aGlzLm9uZSgnYXctc2NoZWRhLWltYWdlLW5hdmlnYXRvcicpLnVwZGF0ZU9wdGlvbnMobmF2aWdhdG9yQ29uZmlnKTtcbiAgICAgICAgICAgICAgdGhpcy5vbmUoJ2F3LXNjaGVkYS1pbWFnZS1uYXZpZ2F0b3InKS51cGRhdGUodmlld2VyKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmN1cnJlbnREaWdpdGFsT2JqZWN0LnR5cGUgPT09ICdwZGYnKSB7XG4gICAgICAgICAgdGhpcy5vbmUoJ2F3LXNjaGVkYS1wZGYnKS51cGRhdGUodGhpcy5jdXJyZW50RGlnaXRhbE9iamVjdCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG5vcm1hbGl6ZURpZ2l0YWxPYmplY3RzKGRpZ2l0YWxPYmplY3RzKSB7XG4gICAgcmV0dXJuIGRpZ2l0YWxPYmplY3RzLm1hcCgoJGRvKSA9PiB7XG4gICAgICBpZiAoJGRvLnR5cGUuaW5jbHVkZXMoJ2ltYWdlcycpKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgaWQ6ICdzY2hlZGEtbGF5b3V0LXZpZXdlcicsXG4gICAgICAgICAgdHlwZTogJGRvLnR5cGUsXG4gICAgICAgICAgbGFiZWw6ICRkby5sYWJlbCxcbiAgICAgICAgICBpdGVtczogJGRvLml0ZW1zLm1hcCgoeyB1cmwsIGlpaWZJbWFnZXMgfSkgPT4gKHtcbiAgICAgICAgICAgIHVybCxcbiAgICAgICAgICAgIGlpaWZJbWFnZXMsXG4gICAgICAgICAgICB0eXBlOiAkZG8udHlwZSxcbiAgICAgICAgICB9KSlcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIHJldHVybiAkZG87XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9ub3JtYWxpemVJdGVtcyhpdGVtcykge1xuICAgIHJldHVybiBpdGVtcy5tYXAoKHNpbmdsZUl0ZW0pID0+ICh7IGl0ZW06IHsgLi4uc2luZ2xlSXRlbSB9IH0pKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0SGVhZFRpdGxlKGxhYmVsPzogc3RyaW5nKSB7XG4gICAgdGhpcy5tYWluU3RhdGUudXBkYXRlKCdoZWFkVGl0bGUnLCBnZXRIZWFkVGl0bGUoe1xuICAgICAgbGFiZWwsXG4gICAgICBuYW1lOiB0aGlzLmNvbmZpZ3VyYXRpb24uZ2V0KCdjdXN0b21lcicpLFxuICAgICAgcGFnZU5hbWU6IHRoaXMuY29uZmlndXJhdGlvbi5nZXQodGhpcy5jb25maWdJZCk/LnBhZ2VOYW1lLFxuICAgICAgcGFnZURlZmF1bHQ6ICdQYXRyaW1vbmlvJyxcbiAgICB9KSk7XG4gIH1cbn1cbiJdfQ==
477
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWRhLWxheW91dC5kcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL243LWJvaWxlcnBsYXRlLWFyaWFubmEvc3JjL2xpYi9sYXlvdXRzL3NjaGVkYS1sYXlvdXQvc2NoZWRhLWxheW91dC5kcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDOUMsT0FBTyxFQUNMLFNBQVMsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFDOUIsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQ0wsS0FBSyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQ3hCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLElBQUksSUFBSSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVuRCxPQUFPLGNBQWMsTUFBTSwrQkFBK0IsQ0FBQztBQUMzRCxPQUFPLFVBQVUsTUFBTSwyQkFBMkIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFMUQsTUFBTSxvQkFBb0IsR0FBRyxXQUFXLENBQUM7QUFFekMsTUFBTSxPQUFPLGdCQUFpQixTQUFRLGdCQUFnQjtJQUF0RDs7UUFHVSxlQUFVLEdBQWtCLElBQUksT0FBTyxFQUFFLENBQUM7UUFFMUMsMEJBQXFCLEdBQWtCLElBQUksT0FBTyxFQUFFLENBQUM7UUFZdEQsYUFBUSxHQUFHLGVBQWUsQ0FBQztRQVUzQixpQkFBWSxHQUFRLEVBQUUsQ0FBQztRQWdDdkIsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFFeEIsa0JBQWEsR0FBRyxNQUFNLENBQUM7UUFFdkIscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBRXpCLGNBQVMsR0FBa0IsSUFBSSxDQUFDO1FB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LENBQUM7SUFFTyxlQUFlLENBQUMsS0FBSztRQUMzQixPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFTyxZQUFZLENBQUMsS0FBYztRQUNqQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsWUFBWSxDQUFDO1lBQzlDLEtBQUs7WUFDTCxJQUFJLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDO1lBQ3hDLFFBQVEsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsUUFBUTtZQUN6RCxXQUFXLEVBQUUsWUFBWTtTQUMxQixDQUFDLENBQUMsQ0FBQztJQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMYXlvdXREYXRhU291cmNlIH0gZnJvbSAnQG5ldDcvY29yZSc7XG5pbXBvcnQge1xuICBmcm9tRXZlbnQsIFN1YmplY3QsIG9mLCBtZXJnZSwgT2JzZXJ2YWJsZVxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIGRlbGF5LCBmaXJzdCwgdGFrZVVudGlsXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IGNsb25lLCBnZXQgYXMgX2dldCB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBoZWxwZXJzIH0gZnJvbSAnQG5ldDcvYm9pbGVycGxhdGUtY29tbW9uJztcbmltcG9ydCB7IFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgbWV0YWRhdGFIZWxwZXIgZnJvbSAnLi4vLi4vaGVscGVycy9tZXRhZGF0YS5oZWxwZXInO1xuaW1wb3J0IG5vZGVIZWxwZXIgZnJvbSAnLi4vLi4vaGVscGVycy9ub2RlLmhlbHBlcic7XG5pbXBvcnQgeyBnZXRIZWFkVGl0bGUgfSBmcm9tICcuLi8uLi9oZWxwZXJzL3RpdGxlLmhlbHBlcic7XG5cbmNvbnN0IExPQ0FMX1NUT1JBR0VfUFJFRklYID0gJ2F3LnNjaGVkYSc7XG5cbmV4cG9ydCBjbGFzcyBBd1NjaGVkYUxheW91dERTIGV4dGVuZHMgTGF5b3V0RGF0YVNvdXJjZSB7XG4gIHN0YXRpYyB0cmVlOiBhbnkgPSBudWxsO1xuXG4gIHByaXZhdGUgZGVzdHJveWVkJDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgcHJpdmF0ZSBzdGlja3lDb250cm9sVHJpZ2dlciQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xuXG4gIHByaXZhdGUgY29tbXVuaWNhdGlvbjogYW55O1xuXG4gIHByb3RlY3RlZCBjb25maWd1cmF0aW9uOiBhbnk7XG5cbiAgcHJvdGVjdGVkIG1haW5TdGF0ZTogYW55O1xuXG4gIHByb3RlY3RlZCByb3V0ZXI6IGFueTtcblxuICBwcm90ZWN0ZWQgdGl0bGVTZXJ2aWNlOiBhbnk7XG5cbiAgcHVibGljIGNvbmZpZ0lkID0gJ3NjaGVkYS1sYXlvdXQnO1xuXG4gIHB1YmxpYyBvcHRpb25zOiBhbnk7XG5cbiAgcHJpdmF0ZSBsYXlvdXRDb25maWc7XG5cbiAgcHVibGljIHBhZ2VUaXRsZTogc3RyaW5nO1xuXG4gIHB1YmxpYyBoYXNCcmVhZGNydW1iOiBib29sZWFuO1xuXG4gIHB1YmxpYyBjb250ZW50UGFydHM6IGFueSA9IHt9O1xuXG4gIHB1YmxpYyB0cmVlOiBhbnk7XG5cbiAgcHVibGljIHNpZGViYXJDb2xsYXBzZWQ6IGJvb2xlYW47XG5cbiAgcHVibGljIHJlbGF0ZWRFbnRpdGllc0hlYWRlcjogc3RyaW5nO1xuXG4gIHB1YmxpYyBzaW1pbGFySXRlbXNTZWN0aW9uVGl0bGU6IHN0cmluZztcblxuICBwdWJsaWMgbWV0YWRhdGFTZWN0aW9uVGl0bGU6IHN0cmluZztcblxuICBwdWJsaWMgaGFzTWV0YWRhdGE6IGJvb2xlYW47XG5cbiAgcHVibGljIGhhc1JlbGF0ZWRFbnRpdGllczogYm9vbGVhbjtcblxuICBwdWJsaWMgaGFzU2ltaWxhckl0ZW1zOiBib29sZWFuO1xuXG4gIHB1YmxpYyBoYXNFeHRlbmRlZFRyZWU6IGJvb2xlYW47XG5cbiAgcHVibGljIGhhc0ludGVybmFsU2VhcmNoOiBib29sZWFuO1xuXG4gIHB1YmxpYyBoYXNEaWdpdGFsT2JqZWN0czogYm9vbGVhbjtcblxuICBwdWJsaWMgZGlnaXRhbE9iamVjdHM6IGFueTtcblxuICBwdWJsaWMgY3VycmVudERpZ2l0YWxPYmplY3Q6IGFueTtcblxuICBwdWJsaWMgY3VycmVudERpZ2l0YWxPYmplY3RJbmRleDogbnVtYmVyO1xuXG4gIHB1YmxpYyBpbWFnZVZpZXdlcklzdGFuY2U6IGFueTtcblxuICBwdWJsaWMgc2lkZWJhcklzU3RpY2t5ID0gZmFsc2U7XG5cbiAgcHVibGljIHRyZWVNYXhIZWlnaHQgPSAnMTAwJSc7XG5cbiAgcHVibGljIGNvbnRlbnRJc0xvYWRpbmcgPSBmYWxzZTtcblxuICBwdWJsaWMgY3VycmVudElkOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICBwdWJsaWMgZW1wdHlMYWJlbDogc3RyaW5nO1xuXG4gIC8qKiBTd2l0Y2ggbG9hZGVkLWNvbnRlbnQgYW5kIGxvYWRlZC1lbXB0eSBzdGF0ZXMgKi9cbiAgcHVibGljIGhhc0NvbnRlbnQgPSB0cnVlO1xuXG4gIC8qKiBTdHJpbmcgdG8gcmVuZGVyIGluIHRoZSBsb2FkZWQtZW1wdHkgc3RhdGUgKi9cbiAgcHVibGljIGVtcHR5U3RhdGVTdHJpbmc6IHN0cmluZztcblxuICBwdWJsaWMgZXh0ZXJuYWxVcmxUZXh0OiBzdHJpbmc7XG5cbiAgcHVibGljIGhhc0NvbnRleHRNZW51OiAoKSA9PiBib29sZWFuO1xuXG4gIHB1YmxpYyBleHRlbmRlZFRyZWVQYXJhbXM6IHtcbiAgICBba2V5OiBzdHJpbmddOiBzdHJpbmc7XG4gIH0gPSB7fTtcblxuICBwdWJsaWMgaW50ZXJuYWxTZWFyY2hQYXJhbXM6IHtcbiAgICBba2V5OiBzdHJpbmddOiBzdHJpbmc7XG4gIH0gPSB7fTtcblxuICBwdWJsaWMgbGFzdFJlc3BvbnNlO1xuXG4gIC8qKiBOYW1lIG9mIHF1ZXJ5IHRoYXQgc2hvdWxkIGJlIHVzZWQgKGNob3NlbiBpbiBjb25maWcpICovXG4gIHByaXZhdGUgZ2V0VHJlZVF1ZXJ5OiAnZ2V0VHJlZScgfCAnZ2V0VHJlZUxpdGUnID0gJ2dldFRyZWUnO1xuXG4gIHB1YmxpYyB0aXRsZU5hdmlnYXRpb246IHtcbiAgICBwcmV2OiB7IGhyZWY6IHN0cmluZzsgbGFiZWw6IHN0cmluZzsgfTtcbiAgICBuZXh0OiB7IGhyZWY6IHN0cmluZzsgbGFiZWw6IHN0cmluZzsgfTtcbiAgfSA9IG51bGw7XG5cbiAgcHVibGljIHNlY3Rpb25Db2xsYXBzZVN0YXRlID0ge1xuICAgIG1ldGFkYXRhOiBmYWxzZSxcbiAgICAnZXh0ZW5kZWQtdHJlZSc6IGZhbHNlLFxuICAgICdzaW1pbGFyLWl0ZW1zJzogZmFsc2UsXG4gICAgJ3JlbGF0ZWQtZW50aXRpZXMnOiBmYWxzZVxuICB9O1xuXG4gIHB1YmxpYyBkb2N1bWVudFR5cGU6IHtcbiAgICBpY29uOiBzdHJpbmc7XG4gICAgbGFiZWw6IHN0cmluZztcbiAgfSA9IG51bGw7XG5cbiAgb25Jbml0KHtcbiAgICBjb25maWd1cmF0aW9uLCBtYWluU3RhdGUsIHJvdXRlciwgb3B0aW9ucywgdGl0bGVTZXJ2aWNlLCBjb21tdW5pY2F0aW9uLFxuICB9KSB7XG4gICAgaWYgKGNvbmZpZ3VyYXRpb24pIHtcbiAgICAgIHRoaXMuY29uZmlndXJhdGlvbiA9IGNvbmZpZ3VyYXRpb247XG4gICAgICB0aGlzLmxheW91dENvbmZpZyA9IHRoaXMuY29uZmlndXJhdGlvbi5nZXQodGhpcy5jb25maWdJZCk7XG4gICAgfVxuICAgIHRoaXMubWFpblN0YXRlID0gbWFpblN0YXRlO1xuICAgIHRoaXMucm91dGVyID0gcm91dGVyO1xuICAgIHRoaXMudGl0bGVTZXJ2aWNlID0gdGl0bGVTZXJ2aWNlO1xuICAgIHRoaXMuY29tbXVuaWNhdGlvbiA9IGNvbW11bmljYXRpb247XG4gICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgICBpZiAoIXRoaXMuc2lkZWJhckNvbGxhcHNlZCkge1xuICAgICAgdGhpcy5zaWRlYmFyQ29sbGFwc2VkID0gdGhpcy5sYXlvdXRDb25maWcudHJlZS5jb2xsYXBzZWRCeURlZmF1bHQgPz8gZmFsc2U7XG4gICAgfVxuICAgIHRoaXMucmVsYXRlZEVudGl0aWVzSGVhZGVyID0gdGhpcy5sYXlvdXRDb25maWdbJ3JlbGF0ZWQtZW50aXRpZXMnXS50aXRsZTtcbiAgICB0aGlzLnNpbWlsYXJJdGVtc1NlY3Rpb25UaXRsZSA9IHRoaXMubGF5b3V0Q29uZmlnWydyZWxhdGVkLWl0ZW1zJ10udGl0bGU7XG4gICAgdGhpcy5leHRlcm5hbFVybFRleHQgPSB0aGlzLmxheW91dENvbmZpZ1snZXh0ZXJuYWwtdXJsLXRleHQnXTtcbiAgICB0aGlzLm1ldGFkYXRhU2VjdGlvblRpdGxlID0gdGhpcy5nZXRNZXRhZGF0YVNlY3Rpb25UaXRsZSgpO1xuICAgIHRoaXMuaGFzU2ltaWxhckl0ZW1zID0gZmFsc2U7XG4gICAgdGhpcy5vbmUoJ2F3LWNoYXJ0LXRpcHB5JykudXBkYXRlT3B0aW9ucyh7XG4gICAgICBiYXNlUGF0aDogdGhpcy5jb25maWd1cmF0aW9uLmdldCgncGF0aHMnKS5lbnRpdGFCYXNlUGF0aCxcbiAgICB9KTtcbiAgICB0aGlzLmVtcHR5TGFiZWwgPSB0aGlzLmxheW91dENvbmZpZ1snZW1wdHktbGFiZWwnXTtcbiAgICB0aGlzLmVtcHR5U3RhdGVTdHJpbmcgPSB0aGlzLmxheW91dENvbmZpZ1snZW1wdHktaHRtbCddO1xuICAgIHRoaXMub25lKCdhdy10cmVlJykudXBkYXRlT3B0aW9ucyh7IGNvbmZpZzogdGhpcy5jb25maWd1cmF0aW9uLmdldCgnY29uZmlnLWtleXMnKSB9KTtcblxuICAgIC8vIHN3aXRjaCB0aGUgdHJlZSBxdWVyeSB0byB0aGUgc2xpbSB2ZXJzaW9uXG4gICAgaWYgKHRoaXMubGF5b3V0Q29uZmlnPy50cmVlPy5saXRlKSB7XG4gICAgICB0aGlzLmdldFRyZWVRdWVyeSA9ICdnZXRUcmVlTGl0ZSc7XG4gICAgfVxuXG4gICAgdGhpcy5tYWluU3RhdGUudXBkYXRlQ3VzdG9tKCdjdXJyZW50TmF2JywgJ3BhdHJpbW9uaW8nKTtcblxuICAgIC8vIGhlYWQgdGl0bGVcbiAgICB0aGlzLnNldEhlYWRUaXRsZSgpO1xuXG4gICAgLy8gaW1hZ2Ugdmlld2VyIGNvbnRleHQtbWVudSBjaGVja1xuICAgIGNvbnN0IGltYWdlVmlld2VyQ29uZmlnID0gdGhpcy5jb25maWd1cmF0aW9uLmdldCh0aGlzLmNvbmZpZ0lkKVsnaW1hZ2Utdmlld2VyJ10gfHwge307XG4gICAgdGhpcy5oYXNDb250ZXh0TWVudSA9ICgpID0+ICEhaW1hZ2VWaWV3ZXJDb25maWdbJ2NvbnRleHQtbWVudSddO1xuXG4gICAgLy8gcGRmIHZpZXdlciBvcHRpb25zXG4gICAgdGhpcy5vbmUoJ2F3LXNjaGVkYS1wZGYnKS51cGRhdGVPcHRpb25zKHRoaXMuY29uZmlndXJhdGlvbi5nZXQodGhpcy5jb25maWdJZClbJ3BkZi12aWV3ZXInXSB8fCB7fSk7XG5cbiAgICAvLyBpaWlmIHZpZXdlciBvcHRpb25zXG4gICAgdGhpcy5vbmUoJ2F3LXNjaGVkYS1pbWFnZS1paWlmJykudXBkYXRlT3B0aW9ucyh0aGlzLmNvbmZpZ3VyYXRpb24uZ2V0KHRoaXMuY29uZmlnSWQpWydpaWlmLXZpZXdlciddIHx8IHt9KTtcblxuICAgIC8vIGNoZWNrIHNlY3Rpb24gY29sbGFwc2Ugc3RhdGVcbiAgICBPYmplY3Qua2V5cyh0aGlzLnNlY3Rpb25Db2xsYXBzZVN0YXRlKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgIGNvbnN0IHN0b3JhZ2VLZXkgPSBgJHtMT0NBTF9TVE9SQUdFX1BSRUZJWH0uJHtrZXl9YDtcbiAgICAgIGNvbnN0IHN0b3JhZ2VWYWx1ZSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHN0b3JhZ2VLZXkpO1xuICAgICAgdGhpcy5zZWN0aW9uQ29sbGFwc2VTdGF0ZVtrZXldID0gc3RvcmFnZVZhbHVlID8gSlNPTi5wYXJzZShzdG9yYWdlVmFsdWUpIDogZmFsc2U7XG4gICAgfSk7XG5cbiAgICAvLyBzaWRlYmFyIHN0aWNreSBjb250cm9sXG4gICAgdGhpcy5fc2lkZWJhclN0aWNreUNvbnRyb2woKTtcbiAgfVxuXG4gIG9uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3llZCQubmV4dCgpO1xuICB9XG5cbiAgZ2V0TWV0YWRhdGFTZWN0aW9uVGl0bGUoKSB7XG4gICAgY29uc3QgbGF5b3V0Q29uZmlnID0gdGhpcy5jb25maWd1cmF0aW9uLmdldCh0aGlzLmNvbmZpZ0lkKTtcbiAgICBjb25zdCBtZXRhZGF0YUNvbmZpZyA9IGxheW91dENvbmZpZy5tZXRhZGF0YSB8fCB7fTtcbiAgICByZXR1cm4gbWV0YWRhdGFDb25maWcudGl0bGUgfHwgbnVsbDtcbiAgfVxuXG4gIGdldE5hdmlnYXRpb24oKSB7XG4gICAgaWYgKEF3U2NoZWRhTGF5b3V0RFMudHJlZSkge1xuICAgICAgcmV0dXJuIG9mKEF3U2NoZWRhTGF5b3V0RFMudHJlZSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmNvbW11bmljYXRpb24ucmVxdWVzdCQodGhpcy5nZXRUcmVlUXVlcnksIHtcbiAgICAgIG9uRXJyb3I6IChlcnJvcikgPT4gY29uc29sZS5lcnJvcihlcnJvciksXG4gICAgICBwYXJhbXM6IHtcbiAgICAgICAgb25seUFsOiAhIXRoaXMubGF5b3V0Q29uZmlnWydleHRlbmRlZC10cmVlJ11cbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBzZXRUcmVlKHRyZWUpIHtcbiAgICBBd1NjaGVkYUxheW91dERTLnRyZWUgPSB0cmVlO1xuICB9XG5cbiAgZ2V0VHJlZSA9ICgpID0+IEF3U2NoZWRhTGF5b3V0RFMudHJlZTtcblxuICB1cGRhdGVOYXZpZ2F0aW9uKHRleHQpIHtcbiAgICB0aGlzLm9uZSgnYXctc2lkZWJhci1oZWFkZXInKS51cGRhdGUoeyB0ZXh0LCBpc0V4cGFuZGVkOiAhdGhpcy5zaWRlYmFyQ29sbGFwc2VkIH0pO1xuICB9XG5cbiAgbG9hZEl0ZW0oaWQpIHtcbiAgICBjb25zdCBtYXhTaW1pbGFySXRlbXMgPSB0aGlzLmNvbmZpZ3VyYXRpb24uZ2V0KHRoaXMuY29uZmlnSWQpWydyZWxhdGVkLWl0ZW1zJ11bJ21heC1yZWxhdGVkLWl0ZW1zJ107XG4gICAgcmV0dXJuIHRoaXMuY29tbXVuaWNhdGlvbi5yZXF1ZXN0JCgnZ2V0Tm9kZScsIHtcbiAgICAgIG9uRXJyb3I6IChlcnJvcikgPT4gY29uc29sZS5lcnJvcihlcnJvciksXG4gICAgICBwYXJhbXM6IHsgaWQsIG1heFNpbWlsYXJJdGVtcyB9LFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIExvYWRzIHRoZSBjb250ZW50IG9mIHRoZSBzZWxlY3RlZCB0cmVlIGl0ZW0gaW4gdGhlIHJpZ2h0IHBvcnRpb24gb2YgdGhlIHZpZXcuXG4gICAqIEBwYXJhbSByZXNwb25zZSBodHRwIHJlc3BvbnNlIGZvciB0aGUgdHJlZSBpdGVtXG4gICAqL1xuICBsb2FkQ29udGVudChyZXNwb25zZSkge1xuICAgIHRoaXMubGFzdFJlc3BvbnNlID0gcmVzcG9uc2U7XG4gICAgaWYgKHJlc3BvbnNlKSB7XG4gICAgICAvLyByZXNldFxuICAgICAgdGhpcy5jdXJyZW50RGlnaXRhbE9iamVjdCA9IG51bGw7XG4gICAgICB0aGlzLmN1cnJlbnREaWdpdGFsT2JqZWN0SW5kZXggPSBudWxsO1xuXG4gICAgICBjb25zdCBtZXRhZGF0YUZpZWxkcyA9IHRoaXMuZ2V0RmllbGRzKHJlc3BvbnNlKTtcbiAgICAgIHRoaXMuaGFzTWV0YWRhdGEgPSAhIShBcnJheS5pc0FycmF5KG1ldGFkYXRhRmllbGRzKSAmJiBtZXRhZGF0YUZpZWxkcy5sZW5ndGgpO1xuICAgICAgdGhpcy5oYXNTaW1pbGFySXRlbXMgPSAoXG4gICAgICAgICF0aGlzLmxheW91dENvbmZpZ1snZXh0ZW5kZWQtdHJlZSddXG4gICAgICAgICYmIEFycmF5LmlzQXJyYXkocmVzcG9uc2UucmVsYXRlZEl0ZW1zKVxuICAgICAgICAmJiByZXNwb25zZS5yZWxhdGVkSXRlbXMubGVuZ3RoXG4gICAgICApO1xuICAgICAgdGhpcy5oYXNCcmVhZGNydW1iID0gQXJyYXkuaXNBcnJheShyZXNwb25zZS5icmVhZGNydW1icykgJiYgcmVzcG9uc2UuYnJlYWRjcnVtYnMubGVuZ3RoO1xuICAgICAgdGhpcy5oYXNEaWdpdGFsT2JqZWN0cyA9IChcbiAgICAgICAgQXJyYXkuaXNBcnJheShyZXNwb25zZS5kaWdpdGFsT2JqZWN0cylcbiAgICAgICAgJiYgcmVzcG9uc2UuZGlnaXRhbE9iamVjdHMubGVuZ3RoXG4gICAgICApO1xuICAgICAgdGhpcy5oYXNSZWxhdGVkRW50aXRpZXMgPSAoXG4gICAgICAgIEFycmF5LmlzQXJyYXkocmVzcG9uc2UucmVsYXRlZEVudGl0aWVzKVxuICAgICAgICAmJiByZXNwb25zZS5yZWxhdGVkRW50aXRpZXMubGVuZ3RoXG4gICAgICApO1xuICAgICAgdGhpcy5oYXNDb250ZW50ID0gISEoXG4gICAgICAgIHRoaXMuaGFzTWV0YWRhdGFcbiAgICAgICAgfHwgdGhpcy5oYXNTaW1pbGFySXRlbXNcbiAgICAgICAgfHwgdGhpcy5oYXNSZWxhdGVkRW50aXRpZXNcbiAgICAgICAgfHwgdGhpcy5oYXNEaWdpdGFsT2JqZWN0c1xuICAgICAgKTtcblxuICAgICAgdGhpcy5jb250ZW50UGFydHMgPSBbXTtcbiAgICAgIGNvbnN0IGNvbnRlbnQgPSB7IGNvbnRlbnQ6IG51bGwgfTtcblxuICAgICAgaWYgKHJlc3BvbnNlLnRleHQpIHtcbiAgICAgICAgY29udGVudC5jb250ZW50ID0gcmVzcG9uc2UudGV4dDtcbiAgICAgIH1cbiAgICAgIHRoaXMuY29udGVudFBhcnRzLnB1c2goY29udGVudCk7XG5cbiAgICAgIC8vIGRpZ2l0YWwgb2JqZWN0c1xuICAgICAgaWYgKHRoaXMuaGFzRGlnaXRhbE9iamVjdHMpIHtcbiAgICAgICAgcmVzcG9uc2UuZGlnaXRhbE9iamVjdHMgPSB0aGlzLm5vcm1hbGl6ZURpZ2l0YWxPYmplY3RzKHJlc3BvbnNlLmRpZ2l0YWxPYmplY3RzKTtcbiAgICAgICAgLy8gdGhpcy5vbmUoJ2F3LXNjaGVkYS1kaWdpdGFsLW9iamVjdHMnKS51cGRhdGUocmVzcG9uc2UuZGlnaXRhbE9iamVjdHMpO1xuICAgICAgICB0aGlzLm9uZSgnYXctc2NoZWRhLWRyb3Bkb3duJykudXBkYXRlKHJlc3BvbnNlKTtcbiAgICAgICAgdGhpcy5kaWdpdGFsT2JqZWN0cyA9IHJlc3BvbnNlLmRpZ2l0YWxPYmplY3RzO1xuICAgICAgICB0aGlzLmNoYW5nZURpZ2l0YWxPYmplY3QoMCk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHRpdGxlT2JqID0ge1xuICAgICAgICBpY29uOiByZXNwb25zZS5pY29uLFxuICAgICAgICB0aXRsZToge1xuICAgICAgICAgIG1haW46IHtcbiAgICAgICAgICAgIHRleHQ6IHJlc3BvbnNlLnRpdGxlIHx8IHJlc3BvbnNlLmxhYmVsLFxuICAgICAgICAgICAgY2xhc3NlczogJ2JvbGQnLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHRvb2xzOiByZXNwb25zZS5zdWJUaXRsZSxcbiAgICAgICAgYWN0aW9uczoge30sXG4gICAgICB9O1xuXG4gICAgICB0aGlzLm9uZSgnYXctc2NoZWRhLWlubmVyLXRpdGxlJykudXBkYXRlKHRpdGxlT2JqKTtcbiAgICAgIHRoaXMub25lKCdhdy1zY2hlZGEtbWV0YWRhdGEnKS51cGRhdGUobWV0YWRhdGFGaWVsZHMpO1xuXG4gICAgICAvLyBCcmVhZGNydW1iIHNlY3Rpb25cbiAgICAgIGNvbnN0IGJyZWFkY3J1bWJzID0ge1xuICAgICAgICBpdGVtczogW10sXG4gICAgICB9O1xuXG4gICAgICBpZiAocmVzcG9uc2UuYnJlYWRjcnVtYnMpIHtcbiAgICAgICAgcmVzcG9uc2UuYnJlYWRjcnVtYnMuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xuICAgICAgICAgIGJyZWFkY3J1bWJzLml0ZW1zLnB1c2goe1xuICAgICAgICAgICAgbGFiZWw6IGVsZW1lbnQubGFiZWwsXG4gICAgICAgICAgICBhbmNob3I6IHtcbiAgICAgICAgICAgICAgaHJlZjogW1xuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlndXJhdGlvbi5nZXQoJ3BhdGhzJykuc2NoZWRhQmFzZVBhdGgsXG4gICAgICAgICAgICAgICAgYCR7ZWxlbWVudC5saW5rfS9gLFxuICAgICAgICAgICAgICAgIGhlbHBlcnMuc2x1Z2lmeShlbGVtZW50LmxhYmVsKSxcbiAgICAgICAgICAgICAgXS5qb2luKCcnKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLm9uZSgnYXctc2NoZWRhLWJyZWFkY3J1bWJzJykudXBkYXRlKGJyZWFkY3J1bWJzKTtcbiAgICAgIH1cblxuICAgICAgLy8gdGl0bGUgcHJldiAvIG5leHQgbmF2aWdhdGlvblxuICAgICAgdGhpcy5sb2FkVGl0bGVOYXZpZ2F0aW9uKCk7XG5cbiAgICAgIC8vIGRvY3VtZW50IHRpdGxlIHR5cGUgKGljb24sIGxhYmVsKVxuICAgICAgdGhpcy5sb2FkRG9jdW1lbnRUeXBlKCk7XG5cbiAgICAgIC8vIHVwZGF0ZSBoZWFkIHRpdGxlXG4gICAgICB0aGlzLnNldEhlYWRUaXRsZShyZXNwb25zZS50aXRsZSB8fCByZXNwb25zZS5sYWJlbCk7XG4gICAgfVxuXG4gICAgaWYgKHJlc3BvbnNlLnJlbGF0ZWRJdGVtcykge1xuICAgICAgdGhpcy5vbmUoJ2F3LWxpbmtlZC1vYmplY3RzJykudXBkYXRlT3B0aW9ucyh7IGNvbnRleHQ6ICdzY2hlZGEnLCBjb25maWc6IHRoaXMuY29uZmlndXJhdGlvbiB9KTtcbiAgICAgIHRoaXMub25lKCdhdy1saW5rZWQtb2JqZWN0cycpLnVwZGF0ZShyZXNwb25zZSk7XG4gICAgfVxuICAgIGlmIChyZXNwb25zZS5yZWxhdGVkRW50aXRpZXMpIHtcbiAgICAgIHJlc3BvbnNlLnJlbGF0ZWRFbnRpdGllcy5mb3JFYWNoKChlbCkgPT4ge1xuICAgICAgICBjb25zdCBsYWJlbCA9IHJlc3BvbnNlLnRpdGxlIHx8IHJlc3BvbnNlLmxhYmVsO1xuICAgICAgICBlbC5yZWxhdGlvbk5hbWUgPSBsYWJlbC5sZW5ndGggPiAzMFxuICAgICAgICAgID8gYCR7bGFiZWwuc3Vic3RyKDAsIDMwKX0uLi4gYFxuICAgICAgICAgIDogbGFiZWw7XG4gICAgICB9KTtcbiAgICAgIHRoaXMub25lKCdhdy1yZWxhdGVkLWVudGl0aWVzJykudXBkYXRlT3B0aW9ucyh7XG4gICAgICAgIGNvbnRleHQ6ICdzY2hlZGEnLCBjb25maWc6IHRoaXMuY29uZmlndXJhdGlvbiwgbGlzdDogJ3JlbGF0ZWRFbnRpdGllcycsIHRpdGxlOiByZXNwb25zZS50aXRsZVxuICAgICAgfSk7XG4gICAgICB0aGlzLm9uZSgnYXctcmVsYXRlZC1lbnRpdGllcycpLnVwZGF0ZShyZXNwb25zZS5yZWxhdGVkRW50aXRpZXMpO1xuICAgIH1cblxuICAgIC8vIGNvbnRyb2wgc3RpY2t5XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnN0aWNreUNvbnRyb2xUcmlnZ2VyJC5uZXh0KCk7XG4gICAgfSk7XG4gIH1cblxuICBsb2FkRXh0ZW5kZWRUcmVlKCkge1xuICAgIGNvbnN0IHBhcmVudFJlc3BvbnNlID0gdGhpcy5sYXN0UmVzcG9uc2U7XG5cbiAgICBpZiAodGhpcy5sYXlvdXRDb25maWdbJ2V4dGVuZGVkLXRyZWUnXSkge1xuICAgICAgY29uc3QgY29uZmlnS2V5cyA9IHRoaXMuY29uZmlndXJhdGlvbi5nZXQoJ2NvbmZpZy1rZXlzJyk7XG4gICAgICBjb25zdCB3aWRnZXRPcHRpb25zID0gdGhpcy5sYXlvdXRDb25maWdbJ2V4dGVuZGVkLXRyZWUnXTtcbiAgICAgIGNvbnN0IHBhcmFtczogYW55ID0ge1xuICAgICAgICBpZDogcGFyZW50UmVzcG9uc2UuaWQsXG4gICAgICAgIHBhZ2U6IDEsXG4gICAgICAgIGxpbWl0OiAxMCxcbiAgICAgICAgcXVlcnk6IG51bGwsXG4gICAgICAgIC4uLnRoaXMuZXh0ZW5kZWRUcmVlUGFyYW1zLFxuICAgICAgfTtcbiAgICAgIGNvbnN0IHdpZGdldFBhcmFtcyA9IGNsb25lKHBhcmFtcyk7XG5cbiAgICAgIC8vIG5vcm1hbGl6ZSBwYXJhbXNcbiAgICAgIHBhcmFtcy5vZmZzZXQgPSAocGFyYW1zLnBhZ2UgLSAxKSAqIHBhcmFtcy5saW1pdDtcbiAgICAgIGRlbGV0ZSBwYXJhbXMucGFnZTtcblxuICAgICAgY29uc3QgYmFzZVBhdGggPSB0aGlzLmNvbmZpZ3VyYXRpb24uZ2V0KCdwYXRocycpLnNjaGVkYUJhc2VQYXRoO1xuICAgICAgY29uc3QgcmVxdWVzdCQgPSB0aGlzLmNvbW11bmljYXRpb24ucmVxdWVzdCQoJ2dldE5vZGVDaGlsZHJlbicsIHtcbiAgICAgICAgcGFyYW1zLFxuICAgICAgICBvbkVycm9yOiAoZXJyb3IpID0+IGNvbnNvbGUuZXJyb3IoZXJyb3IpLFxuICAgICAgfSk7XG4gICAgICByZXF1ZXN0JC5zdWJzY3JpYmUoKG5vZGVzUmVzcG9uc2UpID0+IHtcbiAgICAgICAgdGhpcy5oYXNFeHRlbmRlZFRyZWUgPSAoXG4gICAgICAgICAgcGFyYW1zLnF1ZXJ5XG4gICAgICAgICAgfHwgd2lkZ2V0UGFyYW1zLnBhZ2UgPiAxXG4gICAgICAgICAgfHwgISFub2Rlc1Jlc3BvbnNlPy5pdGVtcz8ubGVuZ3RoXG4gICAgICAgICk7XG4gICAgICAgIGlmICh0aGlzLmhhc0V4dGVuZGVkVHJlZSkge1xuICAgICAgICAgIHRoaXMub25lKCdhdy1leHRlbmRlZC10cmVlJykudXBkYXRlT3B0aW9ucyh7XG4gICAgICAgICAgICBiYXNlUGF0aCxcbiAgICAgICAgICAgIGNvbmZpZ0tleXMsXG4gICAgICAgICAgICBwYXJhbXM6IHdpZGdldFBhcmFtcyxcbiAgICAgICAgICAgIC4uLndpZGdldE9wdGlvbnMsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgdGhpcy5vbmUoJ2F3LWV4dGVuZGVkLXRyZWUnKS51cGRhdGUoe1xuICAgICAgICAgICAgcGFyZW50OiBwYXJlbnRSZXNwb25zZSxcbiAgICAgICAgICAgIG5vZGVzOiBub2Rlc1Jlc3BvbnNlXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICAvLyBmaXggcXVlcnkgaW5wdXQgdXBkYXRlXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBxdWVyeUlucHV0OiBIVE1MSW5wdXRFbGVtZW50ID0gZG9jdW1lbnRcbiAgICAgICAgICAgICAgLnF1ZXJ5U2VsZWN0b3IoJy5hdy1leHRlbmRlZC10cmVlX19oZWFkZXIgLm43LWlubmVyLXRpdGxlX19zZWFyY2gtYmFyJyk7XG4gICAgICAgICAgICBpZiAocXVlcnlJbnB1dCkge1xuICAgICAgICAgICAgICBxdWVyeUlucHV0LnZhbHVlID0gcGFyYW1zLnF1ZXJ5IHx8ICcnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5oYXNFeHRlbmRlZFRyZWUgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBsb2FkSW50ZXJuYWxTZWFyY2goKSB7XG4gICAgY29uc3QgcGFyZW50UmVzcG9uc2UgPSB0aGlzLmxhc3RSZXNwb25zZTtcblxuICAgIGlmICh0aGlzLmxheW91dENvbmZpZ1snaW50ZXJuYWwtc2VhcmNoJ10pIHtcbiAgICAgIHRoaXMuaGFzSW50ZXJuYWxTZWFyY2ggPSB0cnVlO1xuICAgICAgY29uc3QgY29uZmlnS2V5cyA9IHRoaXMuY29uZmlndXJhdGlvbi5nZXQoJ2NvbmZpZy1rZXlzJyk7XG4gICAgICBjb25zdCB3aWRnZXRPcHRpb25zID0gdGhpcy5sYXlvdXRDb25maWdbJ2ludGVybmFsLXNlYXJjaCddO1xuICAgICAgY29uc3QgcmF3UGFyYW1zOiBhbnkgPSB7XG4gICAgICAgIGlkOiBwYXJlbnRSZXNwb25zZS5pZCxcbiAgICAgICAgJ3NlYXJjaC1wYWdlJzogMSxcbiAgICAgICAgJ3NlYXJjaC1saW1pdCc6IDEwLFxuICAgICAgICAnc2VhcmNoLXF1ZXJ5JzogbnVsbCxcbiAgICAgICAgYW5jZXN0b3I6IHRydWUsXG4gICAgICAgIC4uLnRoaXMuaW50ZXJuYWxTZWFyY2hQYXJhbXMsXG4gICAgICB9O1xuXG4gICAgICAvLyBzZXQgcGFyYW1zIG9iamVjdCB3aXRob3V0IFwic2VhcmNoLVwiIHByZWZpeFxuICAgICAgY29uc3QgcGFyYW1zOiBQYXJhbXMgPSB7fTtcbiAgICAgIE9iamVjdC5rZXlzKHJhd1BhcmFtcykuZm9yRWFjaCgocGFyYW1LZXkpID0+IHtcbiAgICAgICAgcGFyYW1zW3BhcmFtS2V5LnJlcGxhY2UoJ3NlYXJjaC0nLCAnJyldID0gcmF3UGFyYW1zW3BhcmFtS2V5XTtcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCB3aWRnZXRQYXJhbXMgPSBjbG9uZShwYXJhbXMpO1xuXG4gICAgICAvLyBub3JtYWxpemUgcGFyYW1zXG4gICAgICBwYXJhbXMub2Zmc2V0ID0gKHBhcmFtcy5wYWdlIC0gMSkgKiBwYXJhbXMubGltaXQ7XG4gICAgICBkZWxldGUgcGFyYW1zLnBhZ2U7XG5cbiAgICAgIGNvbnN0IGJhc2VQYXRoID0gdGhpcy5jb25maWd1cmF0aW9uLmdldCgncGF0aHMnKS5zY2hlZGFCYXNlUGF0aDtcbiAgICAgIGxldCByZXF1ZXN0JDogT2JzZXJ2YWJsZTxhbnk+ID0gb2YobnVsbCk7XG4gICAgICBpZiAocGFyYW1zLnF1ZXJ5KSB7XG4gICAgICAgIHJlcXVlc3QkID0gdGhpcy5jb21tdW5pY2F0aW9uLnJlcXVlc3QkKCdnZXROb2RlQ2hpbGRyZW4nLCB7XG4gICAgICAgICAgcGFyYW1zLFxuICAgICAgICAgIG9uRXJyb3I6IChlcnJvcikgPT4gY29uc29sZS5lcnJvcihlcnJvciksXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICByZXF1ZXN0JC5zdWJzY3JpYmUoKG5vZGVzUmVzcG9uc2UpID0+IHtcbiAgICAgICAgdGhpcy5vbmUoJ2F3LXNjaGVkYS1zZWFyY2gnKS51cGRhdGVPcHRpb25zKHtcbiAgICAgICAgICBiYXNlUGF0aCxcbiAgICAgICAgICBjb25maWdLZXlzLFxuICAgICAgICAgIHBhcmFtczogd2lkZ2V0UGFyYW1zLFxuICAgICAgICAgIC4uLndpZGdldE9wdGlvbnMsXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLm9uZSgnYXctc2NoZWRhLXNlYXJjaCcpLnVwZGF0ZShub2Rlc1Jlc3BvbnNlKTtcblxuICAgICAgICAvLyBmaXggcXVlcnkgaW5wdXQgdXBkYXRlXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHF1ZXJ5SW5wdXQ6IEhUTUxJbnB1dEVsZW1lbnQgPSBkb2N1bWVudFxuICAgICAgICAgICAgLnF1ZXJ5U2VsZWN0b3IoJy5hdy1zY2hlZGEtc2VhcmNoX19pbnB1dCBpbnB1dFt0eXBlPVwidGV4dFwiXScpO1xuICAgICAgICAgIGlmIChxdWVyeUlucHV0KSB7XG4gICAgICAgICAgICBxdWVyeUlucHV0LnZhbHVlID0gcGFyYW1zLnF1ZXJ5IHx8ICcnO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5oYXNJbnRlcm5hbFNlYXJjaCA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGxvYWRUaXRsZU5hdmlnYXRpb24oKSB7XG4gICAgLy8gcmVzZXRcbiAgICB0aGlzLnRpdGxlTmF2aWdhdGlvbiA9IG51bGw7XG5cbiAgICBjb25zdCBoYXNUaXRsZU5hdiA9IChcbiAgICAgICEhdGhpcy5sYXlvdXRDb25maWdbJ3RpdGxlLW5hdiddPy5lbmFibGVkXG4gICAgICAmJiB0aGlzLmxhc3RSZXNwb25zZS5kb2N1bWVudF90eXBlID09PSAnb2dnZXR0by1jdWx0dXJhbGUnXG4gICAgKTtcbiAgICBpZiAoIWhhc1RpdGxlTmF2KSByZXR1cm47XG5cbiAgICB0aGlzLnRpdGxlTmF2aWdhdGlvbiA9IHsgcHJldjogbnVsbCwgbmV4dDogbnVsbCB9O1xuICAgIGNvbnN0IGJhc2VQYXRoID0gdGhpcy5jb25maWd1cmF0aW9uLmdldCgncGF0aHMnKS5zY2hlZGFCYXNlUGF0aDtcbiAgICBbJ3ByZXYnLCAnbmV4dCddLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgY29uc3QgaXRlbSA9IHRoaXMubGFzdFJlc3BvbnNlW2tleV07XG4gICAgICB0aGlzLnRpdGxlTmF2aWdhdGlvbltrZXldID0gaXRlbVxuICAgICAgICA/IHtcbiAgICAgICAgICBocmVmOiBgJHtiYXNlUGF0aH0vJHtpdGVtLmlkfS8ke2hlbHBlcnMuc2x1Z2lmeShpdGVtLmxhYmVsKX1gLFxuICAgICAgICAgIGxhYmVsOiBpdGVtLmxhYmVsLFxuICAgICAgICB9IDogbnVsbDtcbiAgICB9KTtcbiAgfVxuXG4gIGxvYWREb2N1bWVudFR5cGUoKSB7XG4gICAgY29uc3QgY29uZmlnS2V5cyA9IHRoaXMuY29uZmlndXJhdGlvbi5nZXQoJ2NvbmZpZy1rZXlzJyk7XG4gICAgY29uc3QgeyBkb2N1bWVudF90eXBlOiB0eXBlIH0gPSB0aGlzLmxhc3RSZXNwb25zZTtcbiAgICBjb25zdCBpY29uID0gbm9kZUhlbHBlci5nZXROb2RlSWNvbihjb25maWdLZXlzLCB0aGlzLmxhc3RSZXNwb25zZSk7XG4gICAgaWYgKGNvbmZpZ0tleXNbdHlwZV0pIHtcbiAgICAgIHRoaXMuZG9jdW1lbnRUeXBlID0ge1xuICAgICAgICBpY29uLFxuICAgICAgICBsYWJlbDogY29uZmlnS2V5c1t0eXBlXVsnc2luZ3VsYXItbGFiZWwnXVxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kb2N1bWVudFR5cGUgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUb2dnbGUgYmV0d2VlbiB0aGUgdHJlZSdzIGNvbGxhcHNlZCBvciBleHBhbmRlZCBzdGF0ZS5cbiAgICovXG4gIGNvbGxhcHNlU2lkZWJhcigpIHtcbiAgICAvLyBvdmVyd3JpdGUgdGhlIGNvbmZpZ3VyYXRpb24gdG8gcHJldmVudCB1bndhbnRlZCBjaGFuZ2VzIHRvIHRoZSB0cmVlIHN0YXRlLlxuICAgIHRoaXMubGF5b3V0Q29uZmlnLnRyZWUuY29sbGFwc2VkQnlEZWZhdWx0ID0gIXRoaXMubGF5b3V0Q29uZmlnLnRyZWUuY29sbGFwc2VkQnlEZWZhdWx0O1xuICAgIHRoaXMuc2lkZWJhckNvbGxhcHNlZCA9ICF0aGlzLnNpZGViYXJDb2xsYXBzZWQ7XG4gICAgdGhpcy5nZXRXaWRnZXREYXRhU291cmNlKCdhdy1zaWRlYmFyLWhlYWRlcicpLnRvZ2dsZVNpZGViYXIoKTtcbiAgfVxuXG4gIG9uU2VjdGlvbkNvbGxhcHNlKGlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNlY3Rpb25Db2xsYXBzZVN0YXRlW2lkXSA9ICF0aGlzLnNlY3Rpb25Db2xsYXBzZVN0YXRlW2lkXTtcblxuICAgIC8vIHVwZGF0ZSBzdG9yYWdlXG4gICAgY29uc3Qgc3RvcmFnZUtleSA9IGAke0xPQ0FMX1NUT1JBR0VfUFJFRklYfS4ke2lkfWA7XG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oc3RvcmFnZUtleSwgdGhpcy5zZWN0aW9uQ29sbGFwc2VTdGF0ZVtpZF0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2lkZWJhclN0aWNreUNvbnRyb2woKSB7XG4gICAgLy8gbm8gc3RpY2t5IGZvciBJbnRlcm5ldCBFeHBsb3JlclxuICAgIGlmIChoZWxwZXJzLmJyb3dzZXJJc0lFKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3Qgc291cmNlJCA9IGZyb21FdmVudCh3aW5kb3csICdzY3JvbGwnKTtcblxuICAgIG1lcmdlKHNvdXJjZSQsIHRoaXMuc3RpY2t5Q29udHJvbFRyaWdnZXIkKS5waXBlKFxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCksXG4gICAgKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgY29uc3Qgd2luZG93VG9wID0gd2luZG93LnBhZ2VZT2Zmc2V0O1xuICAgICAgY29uc3Qgd2luZG93Qm90dG9tID0gd2luZG93LnNjcm9sbFkgKyB3aW5kb3cuaW5uZXJIZWlnaHQ7XG4gICAgICBjb25zdCB3cmFwcGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnc3RpY2t5LXBhcmVudCcpWzBdIGFzIEhUTUxFbGVtZW50O1xuICAgICAgY29uc3Qgd3JhcHBlclRvcCA9IHdyYXBwZXIub2Zmc2V0VG9wO1xuICAgICAgY29uc3Qgd3JhcHBlckJvdHRvbSA9IHdyYXBwZXJUb3AgKyB3cmFwcGVyLmNsaWVudEhlaWdodDtcblxuICAgICAgdGhpcy5zaWRlYmFySXNTdGlja3kgPSB3cmFwcGVyVG9wIDw9IHdpbmRvd1RvcDtcblxuICAgICAgLy8gdHJlZSBoZWlnaHQgY29udHJvbFxuICAgICAgaWYgKHRoaXMuc2lkZWJhcklzU3RpY2t5ICYmIHdpbmRvd0JvdHRvbSA8IHdyYXBwZXJCb3R0b20pIHtcbiAgICAgICAgdGhpcy50cmVlTWF4SGVpZ2h0ID0gYCR7d2luZG93Qm90dG9tIC0gd2luZG93VG9wIC0gNTB9cHhgO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLnNpZGViYXJJc1N0aWNreSAmJiB3aW5kb3dCb3R0b20gPj0gd3JhcHBlckJvdHRvbSkge1xuICAgICAgICB0aGlzLnRyZWVNYXhIZWlnaHQgPSBgJHt3cmFwcGVyQm90dG9tIC0gd2luZG93VG9wIC0gNTB9cHhgO1xuICAgICAgfSBlbHNlIGlmICh3aW5kb3dCb3R0b20gPCB3cmFwcGVyQm90dG9tKSB7XG4gICAgICAgIHRoaXMudHJlZU1heEhlaWdodCA9IGAke3dpbmRvd0JvdHRvbSAtIHdyYXBwZXJUb3AgLSA1MH1weGA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnRyZWVNYXhIZWlnaHQgPSBgJHt3cmFwcGVyQm90dG9tIC0gd3JhcHBlclRvcCAtIDUwfXB4YDtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRGaWVsZHMocmVzcG9uc2UpIHtcbiAgICBjb25zdCB7XG4gICAgICBmaWVsZHMsXG4gICAgICBkb2N1bWVudF90eXBlOiBkdCxcbiAgICAgIGRvY3VtZW50X2NsYXNzaWZpY2F0aW9uOiBkY1xuICAgIH0gPSByZXNwb25zZTtcbiAgICBjb25zdCBwYXRocyA9IHRoaXMuY29uZmlndXJhdGlvbi5nZXQoJ3BhdGhzJyk7XG4gICAgY29uc3QgbGFiZWxzID0gdGhpcy5jb25maWd1cmF0aW9uLmdldCgnbGFiZWxzJyk7XG4gICAgY29uc3QgZGNTZWdtZW50cyA9IHR5cGVvZiBkYyA9PT0gJ3N0cmluZycgPyBkYy5zcGxpdCgnLicpIDogW107XG4gICAgY29uc3QgZGNMYXN0U2VnbWVudCA9IGRjU2VnbWVudHNbZGNTZWdtZW50cy5sZW5ndGggLSAxXTtcbiAgICBsZXQgbWV0YWRhdGFUb1Nob3cgPSBfZ2V0KHRoaXMuY29uZmlndXJhdGlvbi5nZXQodGhpcy5jb25maWdJZCksICdtZXRhZGF0YS10by1zaG93Jywge30pO1xuICAgIG1ldGFkYXRhVG9TaG93ID0gbWV0YWRhdGFUb1Nob3dbZGNMYXN0U2VnbWVudF0gfHwgbWV0YWRhdGFUb1Nob3dbZHRdIHx8IFtdO1xuXG4gICAgcmV0dXJuIG1ldGFkYXRhSGVscGVyLm5vcm1hbGl6ZSh7XG4gICAgICBmaWVsZHMsXG4gICAgICBwYXRocyxcbiAgICAgIGxhYmVscyxcbiAgICAgIG1ldGFkYXRhVG9TaG93LFxuICAgICAgdHlwZTogZHRcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBjaGFuZ2VEaWdpdGFsT2JqZWN0KHBheWxvYWQpIHtcbiAgICBpZiAodGhpcy5jdXJyZW50RGlnaXRhbE9iamVjdEluZGV4ICE9PSBwYXlsb2FkKSB7XG4gICAgICAvLyBsaW5rIGNoZWNrXG4gICAgICBpZiAodGhpcy5kaWdpdGFsT2JqZWN0c1twYXlsb2FkXS50eXBlID09PSAnZXh0ZXJuYWwnICYmIHRoaXMuY3VycmVudERpZ2l0YWxPYmplY3QpIHtcbiAgICAgICAgd2luZG93Lm9wZW4odGhpcy5kaWdpdGFsT2JqZWN0c1twYXlsb2FkXS51cmwsICdfYmxhbmsnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIGFsd2F5cyByZXNldCBpbWFnZSB2aWV3ZXJcbiAgICAgICAgY29uc3Qgc2NoZWRhSW1hZ2VEUyA9IHRoaXMuZ2V0V2lkZ2V0RGF0YVNvdXJjZSgnYXctc2NoZWRhLWltYWdlJyk7XG4gICAgICAgIHNjaGVkYUltYWdlRFMucmVzZXQoKTtcblxuICAgICAgICB0aGlzLmN1cnJlbnREaWdpdGFsT2JqZWN0SW5kZXggPSBwYXlsb2FkO1xuICAgICAgICB0aGlzLmN1cnJlbnREaWdpdGFsT2JqZWN0ID0gdGhpcy5kaWdpdGFsT2JqZWN0c1twYXlsb2FkXTtcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudERpZ2l0YWxPYmplY3QudHlwZSA9PT0gJ2ltYWdlcy1paWlmJykge1xuICAgICAgICAgIHRoaXMub25lKCdhdy1zY2hlZGEtaW1hZ2UtaWlpZicpLnVwZGF0ZSh0aGlzLmN1cnJlbnREaWdpdGFsT2JqZWN0KTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmN1cnJlbnREaWdpdGFsT2JqZWN0LnR5cGUuaW5jbHVkZXMoJ2ltYWdlcycpKSB7XG4gICAgICAgICAgaWYgKHNjaGVkYUltYWdlRFMuaGFzSW5zdGFuY2UoKSkge1xuICAgICAgICAgICAgc2NoZWRhSW1hZ2VEUy51cGRhdGVJbWFnZXModGhpcy5jdXJyZW50RGlnaXRhbE9iamVjdCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMub25lKCdhdy1zY2hlZGEtaW1hZ2UnKS51cGRhdGUodGhpcy5jdXJyZW50RGlnaXRhbE9iamVjdCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gaW1hZ2Ugdmlld2VyIG5hdmlnYXRvclxuICAgICAgICAgIGNvbnN0IG5hdmlnYXRvckNvbmZpZyA9IHRoaXMubGF5b3V0Q29uZmlnWydpbWFnZS12aWV3ZXItbmF2J107XG4gICAgICAgICAgaWYgKG5hdmlnYXRvckNvbmZpZz8uZW5hYmxlZCkge1xuICAgICAgICAgICAgc2NoZWRhSW1hZ2VEUy5pbnN0YW5jZUxvYWRlZCQucGlwZShcbiAgICAgICAgICAgICAgZmlyc3QoKSxcbiAgICAgICAgICAgICAgZGVsYXkoMTAwKSAvLyB3YWl0aW5nIGZvciB2aWV3ZXIgaW5zdGFuY2UgdG8gdXBkYXRlXG4gICAgICAgICAgICApLnN1YnNjcmliZSgodmlld2VyKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMub25lKCdhdy1zY2hlZGEtaW1hZ2UtbmF2aWdhdG9yJykudXBkYXRlT3B0aW9ucyhuYXZpZ2F0b3JDb25maWcpO1xuICAgICAgICAgICAgICB0aGlzLm9uZSgnYXctc2NoZWRhLWltYWdlLW5hdmlnYXRvcicpLnVwZGF0ZSh2aWV3ZXIpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuY3VycmVudERpZ2l0YWxPYmplY3QudHlwZSA9PT0gJ3BkZicpIHtcbiAgICAgICAgICB0aGlzLm9uZSgnYXctc2NoZWRhLXBkZicpLnVwZGF0ZSh0aGlzLmN1cnJlbnREaWdpdGFsT2JqZWN0KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbm9ybWFsaXplRGlnaXRhbE9iamVjdHMoZGlnaXRhbE9iamVjdHMpIHtcbiAgICByZXR1cm4gZGlnaXRhbE9iamVjdHMubWFwKCgkZG8pID0+IHtcbiAgICAgIGlmICgkZG8udHlwZS5pbmNsdWRlcygnaW1hZ2VzJykpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBpZDogJ3NjaGVkYS1sYXlvdXQtdmlld2VyJyxcbiAgICAgICAgICB0eXBlOiAkZG8udHlwZSxcbiAgICAgICAgICBsYWJlbDogJGRvLmxhYmVsLFxuICAgICAgICAgIGl0ZW1zOiAkZG8uaXRlbXMubWFwKCh7IHVybCwgaWlpZkltYWdlcyB9KSA9PiAoe1xuICAgICAgICAgICAgdXJsLFxuICAgICAgICAgICAgaWlpZkltYWdlcyxcbiAgICAgICAgICAgIHR5cGU6ICRkby50eXBlLFxuICAgICAgICAgIH0pKVxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgcmV0dXJuICRkbztcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX25vcm1hbGl6ZUl0ZW1zKGl0ZW1zKSB7XG4gICAgcmV0dXJuIGl0ZW1zLm1hcCgoc2luZ2xlSXRlbSkgPT4gKHsgaXRlbTogeyAuLi5zaW5nbGVJdGVtIH0gfSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRIZWFkVGl0bGUobGFiZWw/OiBzdHJpbmcpIHtcbiAgICB0aGlzLm1haW5TdGF0ZS51cGRhdGUoJ2hlYWRUaXRsZScsIGdldEhlYWRUaXRsZSh7XG4gICAgICBsYWJlbCxcbiAgICAgIG5hbWU6IHRoaXMuY29uZmlndXJhdGlvbi5nZXQoJ2N1c3RvbWVyJyksXG4gICAgICBwYWdlTmFtZTogdGhpcy5jb25maWd1cmF0aW9uLmdldCh0aGlzLmNvbmZpZ0lkKT8ucGFnZU5hbWUsXG4gICAgICBwYWdlRGVmYXVsdDogJ1BhdHJpbW9uaW8nLFxuICAgIH0pKTtcbiAgfVxufVxuIl19