cilog-lib 1.4.21 → 1.5.1

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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpbGxlLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NpbG9nLWxpYi9zcmMvbGliL2hlbHBlcnMvaW50ZXJmYWNlcy9ncmlsbGUuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZXZlcml0eSwgQ29sVHlwZSwgTW9kZVNlbGVjdGlvbiwgVGhlbWVHcmlsbGUsIFBvc2l0aW9uLCBNb2RlQ2FsZW5kYXIgfSBmcm9tICcuLi9lbnVtcy9ncmlsbGUuZW51bSc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElHcm91cGluZyB7XHJcbiAgICBvYmo6IGFueSxcclxuICAgIGlkOiBzdHJpbmcsXHJcbiAgICBsaWJlbGxlOiBzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJT3B0aW9uc0dyaWxsZSB7XHJcbiAgICBlZGl0YWJsZT86IGJvb2xlYW47XHJcbiAgICBmaWx0ZXJhYmxlPzogYm9vbGVhbjtcclxuICAgIHNvcnRhYmxlPzogYm9vbGVhbjtcclxuICAgIHNlbGVjdGFibGU/OiBib29sZWFuO1xyXG4gICAgbW9kZVNlbGVjdGlvbj86IE1vZGVTZWxlY3Rpb247XHJcbiAgICByb3dzRGVsZXRhYmxlPzogYm9vbGVhbjtcclxuICAgIG1hbnVhbGx5RGVsZXRhYmxlPzogYm9vbGVhbjtcclxuICAgIGNlbnRlckhlYWRlcnM/OiBib29sZWFuO1xyXG4gICAgdGhlbWVHcmlsbGU/OiBUaGVtZUdyaWxsZTtcclxuICAgIHNjcm9sbEhlaWdodD86IHN0cmluZztcclxuICAgIGdyb3VwaW5nPzogSUdyb3VwaW5nO1xyXG4gICAgdmlydHVhbFNjcm9sbD86IGJvb2xlYW47XHJcbiAgICB2aXJ0dWFsU2Nyb2xsSXRlbVNpemU/OiBudW1iZXI7XHJcbiAgICBwYWdpbmF0b3I/OiBib29sZWFuO1xyXG4gICAgcGFnaW5hdG9yRmlyc3Q/OiBudW1iZXI7XHJcbiAgICBwYWdpbmF0b3JSb3dzPzogbnVtYmVyO1xyXG4gICAgcm93VG90YWw/OiBib29sZWFuO1xyXG4gICAgdG90YWxCeVNlbGVjdGlvbj86IGJvb2xlYW47XHJcbiAgICB0b3RhbEJ5RmlsdGVyPzogYm9vbGVhbjtcclxuICAgIGxhenk/OiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElSb3cge1xyXG4gICAgaWQ6IGFueTtcclxuICAgIG9iaj86IGFueTtcclxuICAgIGRlbGV0YWJsZT86IGJvb2xlYW47XHJcbiAgICByZWFkb25seT86IGJvb2xlYW47XHJcbiAgICBjb2xvcj86IHN0cmluZztcclxuICAgIFtrZXk6IHN0cmluZ106IGFueTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJQ2VsbCB7XHJcbiAgICBpZDogYW55O1xyXG4gICAgb2JqPzogYW55O1xyXG4gICAgdmFsdWU6IGFueTtcclxuICAgIHRvb2x0aXA/OiBzdHJpbmc7XHJcbiAgICByZWFkb25seT86IGJvb2xlYW47XHJcbiAgICBjb2xvcj86IHN0cmluZztcclxuICAgIHRleHRDb2xvcj86IHN0cmluZztcclxuICAgIG9wdGlvbnM/OiBJT3B0aW9ucztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJQ29sdW1uIHtcclxuICAgIGlkOiBhbnk7XHJcbiAgICB0eXBlOiBDb2xUeXBlO1xyXG4gICAgbGliZWxsZTogc3RyaW5nO1xyXG4gICAgY2hhbXBCYXNlPzogc3RyaW5nO1xyXG4gICAgbnVsbGFibGU/OiBib29sZWFuO1xyXG4gICAgdG9vbHRpcD86IGJvb2xlYW47XHJcbiAgICB3aWR0aD86IHN0cmluZztcclxuICAgIGRpc3BsYXlUb3RhbD86IGJvb2xlYW47XHJcbiAgICBwb3NpdGlvbj86IFBvc2l0aW9uO1xyXG4gICAgb3B0aW9ucz86IElPcHRpb25zO1xyXG4gICAgZnJvemVuPzogYm9vbGVhbjtcclxuICAgIGludmlzaWJsZT86IGJvb2xlYW47XHJcbiAgICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XHJcbiAgICB0ZXh0Q29sb3I/OiBzdHJpbmc7XHJcbiAgICBkaXNhYmxlRmlsdGVyPzogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJT3B0aW9ucyB7XHJcbiAgICBkZWZhdWx0RmlsdGVycz86IGFueTtcclxuICAgIGN1c3RvbVNvcnQ/OiBib29sZWFuO1xyXG4gICAgc29ydEZ1bmN0aW9uPzogYW55O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElPcHRpb25zRmlsZSBleHRlbmRzIElPcHRpb25zIHtcclxuICAgIGRvd25sb2FkUGF0aD86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJT3B0aW9uc0RhdGUgZXh0ZW5kcyBJT3B0aW9ucyB7XHJcbiAgICBjbGVhcj86IGJvb2xlYW47XHJcbiAgICBtaW5EYXRlPzogRGF0ZTtcclxuICAgIG1heERhdGU/OiBEYXRlO1xyXG4gICAgZGVmYXVsdERhdGU/OiBEYXRlO1xyXG4gICAgbW9kZT86IE1vZGVDYWxlbmRhclxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElPcHRpb25zRHJvcGRvd24gZXh0ZW5kcyBJT3B0aW9ucyB7XHJcbiAgICBvcHRpb25zOiBhbnlbXTtcclxuICAgIG9wdGlvbkxhYmVsOiBzdHJpbmc7XHJcbiAgICBvcHRpb25WYWx1ZT86IHN0cmluZztcclxuICAgIHZpcnR1YWxTY3JvbGw/OiBib29sZWFuO1xyXG4gICAgZmlsdGVyPzogYm9vbGVhbjtcclxuICAgIGZpbHRlclRleHQ/OiBib29sZWFuO1xyXG4gICAgYmFzZVpJbmRleD86IG51bWJlcjtcclxuICAgIG9ubHlMaXN0VmFsdWVzPzogYm9vbGVhbjtcclxuICAgIG9wdGlvbkxhYmVsRmlsdGVyVGV4dD86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJT3B0aW9uc011bHRpU2VsZWN0IGV4dGVuZHMgSU9wdGlvbnMge1xyXG4gICAgb3B0aW9uczogYW55W107XHJcbiAgICBvcHRpb25MYWJlbDogc3RyaW5nO1xyXG4gICAgb3B0aW9uVmFsdWU/OiBzdHJpbmc7XHJcbiAgICB2aXJ0dWFsU2Nyb2xsPzogYm9vbGVhbjtcclxuICAgIGZpbHRlcj86IGJvb2xlYW47XHJcbiAgICBmaWx0ZXJUZXh0PzogYm9vbGVhbjtcclxuICAgIGJhc2VaSW5kZXg/OiBudW1iZXI7XHJcbiAgICBvcHRpb25Hcm91cExhYmVsPzogc3RyaW5nO1xyXG4gICAgb3B0aW9uR3JvdXBDaGlsZHJlbj86IHN0cmluZztcclxuICAgIG9ubHlMaXN0VmFsdWVzPzogYm9vbGVhbjtcclxuICAgIG9wdGlvbkxhYmVsRmlsdGVyVGV4dD86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJT3B0aW9uc051bWJlciBleHRlbmRzIElPcHRpb25zIHtcclxuICAgIHByZWZpeD86IHN0cmluZztcclxuICAgIHN1ZmZpeD86IHN0cmluZztcclxuICAgIG1pbj86IG51bWJlcjtcclxuICAgIG1heD86IG51bWJlcjtcclxuICAgIG1pbkRlY2ltYWxlcz86IG51bWJlcjtcclxuICAgIG1heERlY2ltYWxlcz86IG51bWJlcjtcclxuICAgIHNob3dCdXR0b25zPzogYm9vbGVhbjtcclxuICAgIG1vZGVJbnRlZ2VyPzogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJT3B0aW9uc1NlbGVjdEJ1dHRvbiBleHRlbmRzIElPcHRpb25zIHtcclxuICAgIG9wdGlvbnM6IGFueVtdO1xyXG4gICAgb3B0aW9uTGFiZWw6IHN0cmluZztcclxuICAgIG9wdGlvblZhbHVlPzogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElPcHRpb25zU3dpdGNoIGV4dGVuZHMgSU9wdGlvbnMge1xyXG4gICAgYWN0aW9uPzogYW55O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElPcHRpb25zQnV0dG9uIGV4dGVuZHMgSU9wdGlvbnMge1xyXG4gICAgc2V2ZXJpdHk6IFNldmVyaXR5O1xyXG4gICAgbGFiZWw/OiBzdHJpbmc7XHJcbiAgICBpY29uPzogYW55O1xyXG4gICAgZmlsdGVyQ29sPzogYm9vbGVhbjtcclxuICAgIGZpbHRlck9iakZpZWxkPzogc3RyaW5nO1xyXG4gICAgZmlsdGVyT2JqU3ViRmllbGQ/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSU9wdGlvbnNTdGF0ZSBleHRlbmRzIElPcHRpb25zIHtcclxuICAgIG9wdGlvbnM6IElTdGF0ZVtdO1xyXG4gICAgb3B0aW9uTGFiZWw6IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJU3RhdGUge1xyXG4gICAgSUQ6IG51bWJlcjtcclxuICAgIGxhYmVsPzogc3RyaW5nO1xyXG4gICAgaWNvbj86IGFueTtcclxuICAgIGJhY2tncm91bmRDb2xvcj86IHN0cmluZztcclxuICAgIHRleHRDb2xvcj86IHN0cmluZztcclxuICAgIHNldmVyaXR5PzogU2V2ZXJpdHk7XHJcbn1cclxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpbGxlLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NpbG9nLWxpYi9zcmMvbGliL2hlbHBlcnMvaW50ZXJmYWNlcy9ncmlsbGUuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZXZlcml0eSwgQ29sVHlwZSwgTW9kZVNlbGVjdGlvbiwgVGhlbWVHcmlsbGUsIFBvc2l0aW9uLCBNb2RlQ2FsZW5kYXIgfSBmcm9tICcuLi9lbnVtcy9ncmlsbGUuZW51bSc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElHcm91cGluZyB7XHJcbiAgICBvYmo6IGFueSxcclxuICAgIGlkOiBzdHJpbmcsXHJcbiAgICBsaWJlbGxlOiBzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJT3B0aW9uc0dyaWxsZSB7XHJcbiAgICBlZGl0YWJsZT86IGJvb2xlYW47XHJcbiAgICBmaWx0ZXJhYmxlPzogYm9vbGVhbjtcclxuICAgIHNvcnRhYmxlPzogYm9vbGVhbjtcclxuICAgIHNlbGVjdGFibGU/OiBib29sZWFuO1xyXG4gICAgbW9kZVNlbGVjdGlvbj86IE1vZGVTZWxlY3Rpb247XHJcbiAgICByb3dzRGVsZXRhYmxlPzogYm9vbGVhbjtcclxuICAgIG1hbnVhbGx5RGVsZXRhYmxlPzogYm9vbGVhbjtcclxuICAgIGNlbnRlckhlYWRlcnM/OiBib29sZWFuO1xyXG4gICAgdGhlbWVHcmlsbGU/OiBUaGVtZUdyaWxsZTtcclxuICAgIHNjcm9sbEhlaWdodD86IHN0cmluZztcclxuICAgIGdyb3VwaW5nPzogSUdyb3VwaW5nO1xyXG4gICAgdmlydHVhbFNjcm9sbD86IGJvb2xlYW47XHJcbiAgICB2aXJ0dWFsU2Nyb2xsSXRlbVNpemU/OiBudW1iZXI7XHJcbiAgICBwYWdpbmF0b3I/OiBib29sZWFuO1xyXG4gICAgcGFnaW5hdG9yRmlyc3Q/OiBudW1iZXI7XHJcbiAgICBwYWdpbmF0b3JSb3dzPzogbnVtYmVyO1xyXG4gICAgcm93VG90YWw/OiBib29sZWFuO1xyXG4gICAgdG90YWxCeVNlbGVjdGlvbj86IGJvb2xlYW47XHJcbiAgICB0b3RhbEJ5RmlsdGVyPzogYm9vbGVhbjtcclxuICAgIGxhenk/OiBib29sZWFuO1xyXG4gICAgdG9nZ2xlQWxsPzogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJUm93IHtcclxuICAgIGlkOiBhbnk7XHJcbiAgICBvYmo/OiBhbnk7XHJcbiAgICBkZWxldGFibGU/OiBib29sZWFuO1xyXG4gICAgcmVhZG9ubHk/OiBib29sZWFuO1xyXG4gICAgY29sb3I/OiBzdHJpbmc7XHJcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUNlbGwge1xyXG4gICAgaWQ6IGFueTtcclxuICAgIG9iaj86IGFueTtcclxuICAgIHZhbHVlOiBhbnk7XHJcbiAgICB0b29sdGlwPzogc3RyaW5nO1xyXG4gICAgcmVhZG9ubHk/OiBib29sZWFuO1xyXG4gICAgY29sb3I/OiBzdHJpbmc7XHJcbiAgICB0ZXh0Q29sb3I/OiBzdHJpbmc7XHJcbiAgICBvcHRpb25zPzogSU9wdGlvbnM7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUNvbHVtbiB7XHJcbiAgICBpZDogYW55O1xyXG4gICAgdHlwZTogQ29sVHlwZTtcclxuICAgIGxpYmVsbGU6IHN0cmluZztcclxuICAgIGNoYW1wQmFzZT86IHN0cmluZztcclxuICAgIG51bGxhYmxlPzogYm9vbGVhbjtcclxuICAgIHRvb2x0aXA/OiBib29sZWFuO1xyXG4gICAgd2lkdGg/OiBzdHJpbmc7XHJcbiAgICBkaXNwbGF5VG90YWw/OiBib29sZWFuO1xyXG4gICAgcG9zaXRpb24/OiBQb3NpdGlvbjtcclxuICAgIG9wdGlvbnM/OiBJT3B0aW9ucztcclxuICAgIGZyb3plbj86IGJvb2xlYW47XHJcbiAgICBpbnZpc2libGU/OiBib29sZWFuO1xyXG4gICAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xyXG4gICAgdGV4dENvbG9yPzogc3RyaW5nO1xyXG4gICAgZGlzYWJsZUZpbHRlcj86IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSU9wdGlvbnMge1xyXG4gICAgZGVmYXVsdEZpbHRlcnM/OiBhbnk7XHJcbiAgICBjdXN0b21Tb3J0PzogYm9vbGVhbjtcclxuICAgIHNvcnRGdW5jdGlvbj86IGFueTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJT3B0aW9uc0ZpbGUgZXh0ZW5kcyBJT3B0aW9ucyB7XHJcbiAgICBkb3dubG9hZFBhdGg/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSU9wdGlvbnNEYXRlIGV4dGVuZHMgSU9wdGlvbnMge1xyXG4gICAgY2xlYXI/OiBib29sZWFuO1xyXG4gICAgbWluRGF0ZT86IERhdGU7XHJcbiAgICBtYXhEYXRlPzogRGF0ZTtcclxuICAgIGRlZmF1bHREYXRlPzogRGF0ZTtcclxuICAgIG1vZGU/OiBNb2RlQ2FsZW5kYXJcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJT3B0aW9uc0Ryb3Bkb3duIGV4dGVuZHMgSU9wdGlvbnMge1xyXG4gICAgb3B0aW9uczogYW55W107XHJcbiAgICBvcHRpb25MYWJlbDogc3RyaW5nO1xyXG4gICAgb3B0aW9uVmFsdWU/OiBzdHJpbmc7XHJcbiAgICB2aXJ0dWFsU2Nyb2xsPzogYm9vbGVhbjtcclxuICAgIGZpbHRlcj86IGJvb2xlYW47XHJcbiAgICBmaWx0ZXJUZXh0PzogYm9vbGVhbjtcclxuICAgIGJhc2VaSW5kZXg/OiBudW1iZXI7XHJcbiAgICBvbmx5TGlzdFZhbHVlcz86IGJvb2xlYW47XHJcbiAgICBvcHRpb25MYWJlbEZpbHRlclRleHQ/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSU9wdGlvbnNNdWx0aVNlbGVjdCBleHRlbmRzIElPcHRpb25zIHtcclxuICAgIG9wdGlvbnM6IGFueVtdO1xyXG4gICAgb3B0aW9uTGFiZWw6IHN0cmluZztcclxuICAgIG9wdGlvblZhbHVlPzogc3RyaW5nO1xyXG4gICAgdmlydHVhbFNjcm9sbD86IGJvb2xlYW47XHJcbiAgICBmaWx0ZXI/OiBib29sZWFuO1xyXG4gICAgZmlsdGVyVGV4dD86IGJvb2xlYW47XHJcbiAgICBiYXNlWkluZGV4PzogbnVtYmVyO1xyXG4gICAgb3B0aW9uR3JvdXBMYWJlbD86IHN0cmluZztcclxuICAgIG9wdGlvbkdyb3VwQ2hpbGRyZW4/OiBzdHJpbmc7XHJcbiAgICBvbmx5TGlzdFZhbHVlcz86IGJvb2xlYW47XHJcbiAgICBvcHRpb25MYWJlbEZpbHRlclRleHQ/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSU9wdGlvbnNOdW1iZXIgZXh0ZW5kcyBJT3B0aW9ucyB7XHJcbiAgICBwcmVmaXg/OiBzdHJpbmc7XHJcbiAgICBzdWZmaXg/OiBzdHJpbmc7XHJcbiAgICBtaW4/OiBudW1iZXI7XHJcbiAgICBtYXg/OiBudW1iZXI7XHJcbiAgICBtaW5EZWNpbWFsZXM/OiBudW1iZXI7XHJcbiAgICBtYXhEZWNpbWFsZXM/OiBudW1iZXI7XHJcbiAgICBzaG93QnV0dG9ucz86IGJvb2xlYW47XHJcbiAgICBtb2RlSW50ZWdlcj86IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSU9wdGlvbnNTZWxlY3RCdXR0b24gZXh0ZW5kcyBJT3B0aW9ucyB7XHJcbiAgICBvcHRpb25zOiBhbnlbXTtcclxuICAgIG9wdGlvbkxhYmVsOiBzdHJpbmc7XHJcbiAgICBvcHRpb25WYWx1ZT86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJT3B0aW9uc1N3aXRjaCBleHRlbmRzIElPcHRpb25zIHtcclxuICAgIGFjdGlvbj86IGFueTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJT3B0aW9uc0J1dHRvbiBleHRlbmRzIElPcHRpb25zIHtcclxuICAgIHNldmVyaXR5OiBTZXZlcml0eTtcclxuICAgIGxhYmVsPzogc3RyaW5nO1xyXG4gICAgaWNvbj86IGFueTtcclxuICAgIGZpbHRlckNvbD86IGJvb2xlYW47XHJcbiAgICBmaWx0ZXJPYmpGaWVsZD86IHN0cmluZztcclxuICAgIGZpbHRlck9ialN1YkZpZWxkPzogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElPcHRpb25zU3RhdGUgZXh0ZW5kcyBJT3B0aW9ucyB7XHJcbiAgICBvcHRpb25zOiBJU3RhdGVbXTtcclxuICAgIG9wdGlvbkxhYmVsOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSVN0YXRlIHtcclxuICAgIElEOiBudW1iZXI7XHJcbiAgICBsYWJlbD86IHN0cmluZztcclxuICAgIGljb24/OiBhbnk7XHJcbiAgICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XHJcbiAgICB0ZXh0Q29sb3I/OiBzdHJpbmc7XHJcbiAgICBzZXZlcml0eT86IFNldmVyaXR5O1xyXG59XHJcbiJdfQ==
@@ -57,7 +57,9 @@ export class CilogInputNumberComponent {
57
57
  next = [debut, fin].join('');
58
58
  }
59
59
  else {
60
- debut = current.slice(0, positionStart - 1).replace(/\s/g, '');
60
+ if (positionStart != 0) {
61
+ debut = current.slice(0, positionStart - 1).replace(/\s/g, '');
62
+ }
61
63
  next = [debut, fin].join('');
62
64
  }
63
65
  this.checkValue(next, event);
@@ -75,18 +77,26 @@ export class CilogInputNumberComponent {
75
77
  event.preventDefault();
76
78
  }
77
79
  checkValue(next, event) {
78
- if (String(next), !String(next).match(this.regex)) {
79
- if (next == '') {
80
- this.acceptValue(next, event);
81
- }
80
+ if (next == '-' && (this.min == null || this.min < 0)) {
81
+ this.acceptValue(next, event);
82
+ }
83
+ else if (next.length > 1 && next[0] == ',') {
84
+ this.acceptValue(next.substring(1), event);
82
85
  }
83
86
  else {
84
- let number = +(next.replace(',', '.'));
85
- if (this.min == null || number >= this.min) {
86
- if (this.max == null || number <= this.max) {
87
+ if (String(next), !String(next).match(this.regex)) {
88
+ if (next == '') {
87
89
  this.acceptValue(next, event);
88
90
  }
89
91
  }
92
+ else {
93
+ let number = +(next.replace(',', '.'));
94
+ if (this.min == null || number >= this.min) {
95
+ if (this.max == null || number <= this.max) {
96
+ this.acceptValue(next, event);
97
+ }
98
+ }
99
+ }
90
100
  }
91
101
  }
92
102
  acceptValue(value, event) {
@@ -94,34 +104,57 @@ export class CilogInputNumberComponent {
94
104
  const positionStart = this.cilogInputNumber.nativeElement.selectionStart;
95
105
  const positionEnd = this.cilogInputNumber.nativeElement.selectionEnd;
96
106
  let valEntier = this.cilogInputNumber.nativeElement.value.replace(/\s/g, '').split(',')[0];
107
+ if (valEntier[0] == '-') {
108
+ valEntier = valEntier.substring(1);
109
+ }
97
110
  setTimeout(() => {
98
111
  let positionFinale = positionStart;
99
112
  if (positionStart == positionEnd) {
100
113
  let jump = 1;
114
+ let valEntierNext = value.split(',')[0];
115
+ if (valEntierNext[0] == '-') {
116
+ valEntierNext = valEntierNext.substring(1);
117
+ }
101
118
  if (value.split(',')[0] != valEntier &&
102
119
  ((event.key != 'Backspace' && valEntier.length != 0 && valEntier.length % 3 == 0)
103
120
  || (event.key == 'Backspace' && (valEntier.length - 1) != 0 && (valEntier.length - 1) % 3 == 0))) {
104
121
  jump = 2;
105
122
  }
106
- positionFinale = event.key != 'Backspace' ? (positionStart + jump) : (positionStart - jump);
123
+ // Calcul position finale
124
+ if (event.key == 'Backspace') {
125
+ if (positionStart != 0) {
126
+ positionFinale = positionStart - jump;
127
+ }
128
+ }
129
+ else {
130
+ positionFinale = positionStart + jump;
131
+ }
107
132
  }
108
133
  this.cilogInputNumber.nativeElement.selectionStart = positionFinale;
109
134
  this.cilogInputNumber.nativeElement.selectionEnd = positionFinale;
110
135
  });
111
136
  // Mise à jour de la valeur du champ
112
137
  if (value == '' || value == '-') {
113
- this.writeValue(null);
138
+ this.writeValue(null, value);
114
139
  }
115
140
  else {
116
- this.writeValue(+(value.replace(',', '.')), ((event.key == '.' || event.key == ',') && value.slice(-1) == ','), (event.key == '0' && value.split(',')[0] == valEntier && value.split(',').length == 2), (event.key == '0' && +value.split(',')[1] == 0));
141
+ this.writeValue(+(value.replace(',', '.')), value, ((event.key == '.' || event.key == ',') && value.slice(-1) == ','), (event.key == '0' && value.split(',')[0] == valEntier && value.split(',').length == 2), (event.key == '0' && +value.split(',')[1] == 0));
117
142
  }
118
143
  this.onChangeInput(this.value);
119
144
  this.onInput.emit(this.value);
120
145
  }
121
- writeValue(value, sep = false, zero = false, zeroAfter = false) {
146
+ writeValue(value, valueString = null, sep = false, zero = false, zeroAfter = false) {
122
147
  this.value = value;
123
148
  if (this.value == null) {
124
- this.valueStr = '';
149
+ if (valueString == '-') {
150
+ this.valueStr = '-';
151
+ }
152
+ else {
153
+ this.valueStr = '';
154
+ }
155
+ if (this.cilogInputNumber) {
156
+ this.cilogInputNumber.nativeElement.value = this.valueStr;
157
+ }
125
158
  }
126
159
  else {
127
160
  if (this.maxDecimals != null && this.value.toString().split('.').length > 1 && this.value.toString().split('.')[1].length > this.maxDecimals) {
@@ -202,4 +235,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImpor
202
235
  type: HostListener,
203
236
  args: ['keydown', ['$event']]
204
237
  }] } });
205
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2lsb2ctaW5wdXQtbnVtYmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NpbG9nLWxpYi9zcmMvbGliL3ZpZXdzL2NpbG9nLWlucHV0LW51bWJlci9jaWxvZy1pbnB1dC1udW1iZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2lsb2ctbGliL3NyYy9saWIvdmlld3MvY2lsb2ctaW5wdXQtbnVtYmVyL2NpbG9nLWlucHV0LW51bWJlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hJLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQWN6RSxNQUFNLE9BQU8seUJBQXlCO0lBd0JsQztRQVpVLFlBQU8sR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUMzRCxhQUFRLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFDNUQsWUFBTyxHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO1FBQzNELFdBQU0sR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUVwRSxhQUFRLEdBQVcsRUFBRSxDQUFDO1FBS2QsZ0JBQVcsR0FBa0IsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFFdkUsQ0FBQztJQUVqQixRQUFRO1FBQ0osa0tBQWtLO1FBQ2xLLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxNQUFNLENBQUMsd0NBQXdDLElBQUksQ0FBQyxXQUFXLElBQUksUUFBUSxNQUFNLENBQUMsQ0FBQztJQUN4RyxDQUFDO0lBR0QsY0FBYyxDQUFDLEtBQW9CO1FB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cEIsZ0JBQWdCLENBQUMsRUFBYztRQUMzQixJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBYztRQUM1QixJQUFJLENBQUMsY0FBYyxHQUFHLEVBQUUsQ0FBQztJQUM3QixDQUFDOztzSEE1TFEseUJBQXlCOzBHQUF6Qix5QkFBeUIsMFdBUnZCO1FBQ1A7WUFDSSxPQUFPLEVBQUUsaUJBQWlCO1lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMseUJBQXlCLENBQUM7WUFDeEQsS0FBSyxFQUFFLElBQUk7U0FDZDtLQUNKLGdKQ2JMLCswQkF1QkE7MkZEUmEseUJBQXlCO2tCQVpyQyxTQUFTOytCQUNJLG9CQUFvQixhQUduQjt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSwwQkFBMEIsQ0FBQzs0QkFDeEQsS0FBSyxFQUFFLElBQUk7eUJBQ2Q7cUJBQ0o7MEVBTVEsR0FBRztzQkFBWCxLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVJLE9BQU87c0JBQWhCLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxPQUFPO3NCQUFoQixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTTtnQkFJd0IsZ0JBQWdCO3NCQUE5QyxTQUFTO3VCQUFDLGtCQUFrQjtnQkFhN0IsY0FBYztzQkFEYixZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBmb3J3YXJkUmVmLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdjaWxvZy1pbnB1dC1udW1iZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jaWxvZy1pbnB1dC1udW1iZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2NpbG9nLWlucHV0LW51bWJlci5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IENpbG9nSW5wdXROdW1iZXJDb21wb25lbnQpLFxyXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZVxyXG4gICAgICAgIH1cclxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgQ2lsb2dJbnB1dE51bWJlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuXG4gICAgdmFsdWU6IG51bWJlcjtcblxuICAgIEBJbnB1dCgpIG1pbjogbnVtYmVyO1xyXG4gICAgQElucHV0KCkgbWF4OiBudW1iZXI7XG4gICAgQElucHV0KCkgbWF4RGVjaW1hbHM6IG51bWJlcjtcbiAgICBASW5wdXQoKSBwcmVmaXhlOiBzdHJpbmc7XG4gICAgQElucHV0KCkgc3VmZml4ZTogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGlucHV0U3R5bGVDbGFzczogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuO1xuXG4gICAgQE91dHB1dCgpIG9uSW5wdXQ6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG4gICAgQE91dHB1dCgpIG9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuICAgIEBPdXRwdXQoKSBvbkZvY3VzOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuICAgIEBPdXRwdXQoKSBvbkJsdXI6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgICB2YWx1ZVN0cjogc3RyaW5nID0gJyc7XG5cbiAgICBAVmlld0NoaWxkKCdjaWxvZ0lucHV0TnVtYmVyJykgY2lsb2dJbnB1dE51bWJlcjogRWxlbWVudFJlZjtcblxuICAgIHByaXZhdGUgcmVnZXg6IFJlZ0V4cDtcbiAgICBwcml2YXRlIHNwZWNpYWxLZXlzOiBBcnJheTxzdHJpbmc+ID0gWydUYWInLCAnRW5kJywgJ0hvbWUnLCAnQXJyb3dMZWZ0JywgJ0Fycm93UmlnaHQnXTtcblxuICAgIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICAvL3RoaXMucmVnZXggPSBuZXcgUmVnRXhwKGBeLT9cXFxcZHsxLDN9KD86XFxcXGR7M30pKihcXFxcLlxcXFxkezAsJHt0aGlzLm1heERlY2ltYWxzIHx8IEluZmluaXR5fX0pPyR8Xi0/XFxcXGR7MSwzfSg/OlxcXFxkezN9KSpcXFxcLFxcXFxkezAsJHt0aGlzLm1heERlY2ltYWxzIHx8IEluZmluaXR5fX0kYCk7XG4gICAgICAgIHRoaXMucmVnZXggPSBuZXcgUmVnRXhwKGBeLT9cXFxcZHsxLDN9KD86XFxcXGR7M30pKig/OltcXFxcLixdXFxcXGR7MCwke3RoaXMubWF4RGVjaW1hbHMgfHwgSW5maW5pdHl9fSk/JGApO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICAgIG9uS2V5RG93bkV2ZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG5cbiAgICAgICAgaWYgKHRoaXMuc3BlY2lhbEtleXMuaW5kZXhPZihldmVudC5rZXkpICE9PSAtMSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PSAnRW50ZXInKSB7XHJcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2VJbnB1dCh0aGlzLnZhbHVlKTtcclxuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZS5lbWl0KHRoaXMudmFsdWUpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBjdXJyZW50OiBzdHJpbmcgPSB0aGlzLmNpbG9nSW5wdXROdW1iZXIubmF0aXZlRWxlbWVudC52YWx1ZTtcblxuICAgICAgICBjb25zdCBwb3NpdGlvblN0YXJ0ID0gdGhpcy5jaWxvZ0lucHV0TnVtYmVyLm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQ7XG4gICAgICAgIGNvbnN0IHBvc2l0aW9uRW5kID0gdGhpcy5jaWxvZ0lucHV0TnVtYmVyLm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uRW5kO1xuXG4gICAgICAgIGxldCBkZWJ1dDogc3RyaW5nID0gY3VycmVudC5zbGljZSgwLCBwb3NpdGlvblN0YXJ0KS5yZXBsYWNlKC9cXHMvZywgJycpO1xuICAgICAgICBsZXQgZmluOiBzdHJpbmcgPSBjdXJyZW50LnNsaWNlKHBvc2l0aW9uRW5kKS5yZXBsYWNlKC9cXHMvZywgJycpO1xuXG4gICAgICAgIGxldCBuZXh0OiBzdHJpbmcgPSBjdXJyZW50LnJlcGxhY2UoL1xccy9nLCAnJyk7XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09ICcuJykge1xuICAgICAgICAgICAgbGV0IHBvc2l0aW9uU3RhcnRQb2ludDogbnVtYmVyID0gdGhpcy5jaWxvZ0lucHV0TnVtYmVyLm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQ7XG4gICAgICAgICAgICBuZXh0ID0gW2RlYnV0LCAnLCcsIGZpbl0uam9pbignJyk7XG4gICAgICAgICAgICBpZiAoU3RyaW5nKG5leHQpLm1hdGNoKHRoaXMucmVnZXgpKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmFjY2VwdFZhbHVlKG5leHQsIGV2ZW50KTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAoY3VycmVudC5zbGljZShwb3NpdGlvblN0YXJ0KVswXSA9PSAnLCcpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNpbG9nSW5wdXROdW1iZXIubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25TdGFydCA9IHBvc2l0aW9uU3RhcnRQb2ludCArIDE7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2lsb2dJbnB1dE51bWJlci5uYXRpdmVFbGVtZW50LnNlbGVjdGlvbkVuZCA9IHBvc2l0aW9uU3RhcnRQb2ludCArIDE7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09ICdCYWNrc3BhY2UnKSB7XG4gICAgICAgICAgICBpZiAocG9zaXRpb25TdGFydCA9PSBwb3NpdGlvbkVuZCAmJiAoL1xccy9nLnRlc3QoY3VycmVudC5zbGljZShwb3NpdGlvblN0YXJ0IC0gMSwgcG9zaXRpb25TdGFydCkpIHx8IGN1cnJlbnQuc2xpY2UocG9zaXRpb25TdGFydCAtIDEsIHBvc2l0aW9uU3RhcnQpID09IFwiLFwiKSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jaWxvZ0lucHV0TnVtYmVyLm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgPSBwb3NpdGlvblN0YXJ0IC0gMTtcbiAgICAgICAgICAgICAgICB0aGlzLmNpbG9nSW5wdXROdW1iZXIubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25FbmQgPSBwb3NpdGlvblN0YXJ0IC0gMTtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmNpbG9nSW5wdXROdW1iZXIubmF0aXZlRWxlbWVudC52YWx1ZS5hdCgtMSkgPT0gJywnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jaWxvZ0lucHV0TnVtYmVyLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB0aGlzLmNpbG9nSW5wdXROdW1iZXIubmF0aXZlRWxlbWVudC52YWx1ZS5zdWJzdHJpbmcoMCwgdGhpcy5jaWxvZ0lucHV0TnVtYmVyLm5hdGl2ZUVsZW1lbnQudmFsdWUubGVuZ3RoIC0gMSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuY2lsb2dJbnB1dE51bWJlci5uYXRpdmVFbGVtZW50LnNlbGVjdGlvblN0YXJ0ICE9IHRoaXMuY2lsb2dJbnB1dE51bWJlci5uYXRpdmVFbGVtZW50LnNlbGVjdGlvbkVuZCkge1xuICAgICAgICAgICAgICAgICAgICBuZXh0ID0gW2RlYnV0LCBmaW5dLmpvaW4oJycpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgZGVidXQgPSBjdXJyZW50LnNsaWNlKDAsIHBvc2l0aW9uU3RhcnQgLSAxKS5yZXBsYWNlKC9cXHMvZywgJycpO1xuICAgICAgICAgICAgICAgICAgICBuZXh0ID0gW2RlYnV0LCBmaW5dLmpvaW4oJycpO1xyXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tWYWx1ZShuZXh0LCBldmVudCk7XHJcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChldmVudC5rZXkgPT09ICcsJyAmJiBjdXJyZW50LnNsaWNlKHBvc2l0aW9uU3RhcnQpWzBdID09ICcsJykge1xuICAgICAgICAgICAgICAgIHRoaXMuY2lsb2dJbnB1dE51bWJlci5uYXRpdmVFbGVtZW50LnNlbGVjdGlvblN0YXJ0ICs9IDE7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbmV4dCA9IFtkZWJ1dCwgZXZlbnQua2V5LCBmaW5dLmpvaW4oJycpO1xuICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tWYWx1ZShuZXh0LCBldmVudCk7XHJcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgY2hlY2tWYWx1ZShuZXh0OiBzdHJpbmcsIGV2ZW50KSB7XG4gICAgICAgIGlmIChTdHJpbmcobmV4dCksICFTdHJpbmcobmV4dCkubWF0Y2godGhpcy5yZWdleCkpIHtcbiAgICAgICAgICAgIGlmIChuZXh0ID09ICcnKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hY2NlcHRWYWx1ZShuZXh0LCBldmVudCk7XHJcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxldCBudW1iZXI6IG51bWJlciA9ICsobmV4dC5yZXBsYWNlKCcsJywgJy4nKSk7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLm1pbiA9PSBudWxsIHx8IG51bWJlciA+PSB0aGlzLm1pbikge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubWF4ID09IG51bGwgfHwgbnVtYmVyIDw9IHRoaXMubWF4KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWNjZXB0VmFsdWUobmV4dCwgZXZlbnQpO1xuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cblxuICAgIGFjY2VwdFZhbHVlKHZhbHVlOiBzdHJpbmcsIGV2ZW50KSB7XG4gICAgICAgIC8vIFN0b2NrYWdlIHBvc2l0aW9uIGluaXRpYWxlXG4gICAgICAgIGNvbnN0IHBvc2l0aW9uU3RhcnQgPSB0aGlzLmNpbG9nSW5wdXROdW1iZXIubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25TdGFydDtcbiAgICAgICAgY29uc3QgcG9zaXRpb25FbmQgPSB0aGlzLmNpbG9nSW5wdXROdW1iZXIubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25FbmQ7XG4gICAgICAgIGxldCB2YWxFbnRpZXI6IHN0cmluZyA9IHRoaXMuY2lsb2dJbnB1dE51bWJlci5uYXRpdmVFbGVtZW50LnZhbHVlLnJlcGxhY2UoL1xccy9nLCAnJykuc3BsaXQoJywnKVswXTtcblxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGxldCBwb3NpdGlvbkZpbmFsZTogbnVtYmVyID0gcG9zaXRpb25TdGFydDtcbiAgICAgICAgICAgIGlmIChwb3NpdGlvblN0YXJ0ID09IHBvc2l0aW9uRW5kKSB7XG4gICAgICAgICAgICAgICAgbGV0IGp1bXA6IG51bWJlciA9IDE7XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZS5zcGxpdCgnLCcpWzBdICE9IHZhbEVudGllciAmJlxuICAgICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICAgICAoZXZlbnQua2V5ICE9ICdCYWNrc3BhY2UnICYmIHZhbEVudGllci5sZW5ndGggIT0gMCAmJiB2YWxFbnRpZXIubGVuZ3RoICUgMyA9PSAwKVxuICAgICAgICAgICAgICAgICAgICAgICAgfHwgKGV2ZW50LmtleSA9PSAnQmFja3NwYWNlJyAmJiAodmFsRW50aWVyLmxlbmd0aCAtIDEpICE9IDAgJiYgKHZhbEVudGllci5sZW5ndGggLSAxKSAlIDMgPT0gMClcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICBqdW1wID0gMjtcclxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBwb3NpdGlvbkZpbmFsZSA9IGV2ZW50LmtleSAhPSAnQmFja3NwYWNlJyA/IChwb3NpdGlvblN0YXJ0ICsganVtcCkgOiAocG9zaXRpb25TdGFydCAtIGp1bXApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuY2lsb2dJbnB1dE51bWJlci5uYXRpdmVFbGVtZW50LnNlbGVjdGlvblN0YXJ0ID0gcG9zaXRpb25GaW5hbGU7XHJcbiAgICAgICAgICAgIHRoaXMuY2lsb2dJbnB1dE51bWJlci5uYXRpdmVFbGVtZW50LnNlbGVjdGlvbkVuZCA9IHBvc2l0aW9uRmluYWxlO1xyXG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIE1pc2Ugw6Agam91ciBkZSBsYSB2YWxldXIgZHUgY2hhbXBcbiAgICAgICAgaWYgKHZhbHVlID09ICcnIHx8IHZhbHVlID09ICctJykge1xyXG4gICAgICAgICAgICB0aGlzLndyaXRlVmFsdWUobnVsbCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKFxyXG4gICAgICAgICAgICAgICAgKyh2YWx1ZS5yZXBsYWNlKCcsJywgJy4nKSksXHJcbiAgICAgICAgICAgICAgICAoKGV2ZW50LmtleSA9PSAnLicgfHwgZXZlbnQua2V5ID09ICcsJykgJiYgdmFsdWUuc2xpY2UoLTEpID09ICcsJyksXHJcbiAgICAgICAgICAgICAgICAoZXZlbnQua2V5ID09ICcwJyAmJiB2YWx1ZS5zcGxpdCgnLCcpWzBdID09IHZhbEVudGllciAmJiB2YWx1ZS5zcGxpdCgnLCcpLmxlbmd0aCA9PSAyKSxcclxuICAgICAgICAgICAgICAgIChldmVudC5rZXkgPT0gJzAnICYmICt2YWx1ZS5zcGxpdCgnLCcpWzFdID09IDApXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfVxuXHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZUlucHV0KHRoaXMudmFsdWUpO1xyXG4gICAgICAgIHRoaXMub25JbnB1dC5lbWl0KHRoaXMudmFsdWUpO1xyXG4gICAgfVxuXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogbnVtYmVyLCBzZXA6IGJvb2xlYW4gPSBmYWxzZSwgemVybzogYm9vbGVhbiA9IGZhbHNlLCB6ZXJvQWZ0ZXI6IGJvb2xlYW4gPSBmYWxzZSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgaWYgKHRoaXMudmFsdWUgPT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy52YWx1ZVN0ciA9ICcnO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLm1heERlY2ltYWxzICE9IG51bGwgJiYgdGhpcy52YWx1ZS50b1N0cmluZygpLnNwbGl0KCcuJykubGVuZ3RoID4gMSAmJiB0aGlzLnZhbHVlLnRvU3RyaW5nKCkuc3BsaXQoJy4nKVsxXS5sZW5ndGggPiB0aGlzLm1heERlY2ltYWxzKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlU3RyID0gdGhpcy52YWx1ZS50b0xvY2FsZVN0cmluZygnZnItRlInLCB7IG1heGltdW1GcmFjdGlvbkRpZ2l0czogdGhpcy5tYXhEZWNpbWFscyB9KTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudmFsdWVTdHIgPSB0aGlzLnZhbHVlLnRvTG9jYWxlU3RyaW5nKCdmci1GUicsIHsgbWF4aW11bUZyYWN0aW9uRGlnaXRzOiA2IH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChzZXAgfHwgemVyb0FmdGVyKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlU3RyID0gdGhpcy52YWx1ZVN0ciArICcsJztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoemVybykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy52YWx1ZVN0ciA9IHRoaXMudmFsdWVTdHIgKyAnMCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5jaWxvZ0lucHV0TnVtYmVyLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB0aGlzLnZhbHVlU3RyO1xyXG4gICAgICAgIH1cclxuICAgIH1cblxuICAgIG9uQmx1ckV2ZW50KGV2ZW50KSB7XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZUlucHV0KHRoaXMudmFsdWUpO1xyXG4gICAgICAgIHRoaXMub25DaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcclxuICAgICAgICB0aGlzLm9uQmx1ci5lbWl0KHRoaXMudmFsdWUpO1xyXG4gICAgfVxuXG4gICAgb25Gb2N1c0V2ZW50KGV2ZW50KSB7XHJcbiAgICAgICAgdGhpcy5vbkZvY3VzLmVtaXQodGhpcy52YWx1ZSk7XHJcbiAgICB9XG5cclxuICAgIG9uQ2hhbmdlSW5wdXQodmFsOiBudW1iZXIpIHsgfVxyXG5cclxuICAgIG9uVG91Y2hlZElucHV0KCkgeyB9XHJcblxyXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMub25DaGFuZ2VJbnB1dCA9IGZuO1xyXG4gICAgfVxyXG5cclxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5vblRvdWNoZWRJbnB1dCA9IGZuO1xyXG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwIHctZnVsbFwiPlxyXG5cclxuICAgIDxzcGFuIGNsYXNzPVwiaW5wdXQtZ3JvdXAtYWRkb24gcHJlZml4ZVwiXHJcbiAgICAgICAgICAqbmdJZj1cInByZWZpeGUgIT0gbnVsbFwiPlxyXG4gICAgICAgIHt7IHByZWZpeGUgfX1cclxuICAgIDwvc3Bhbj5cclxuXHJcbiAgICA8aW5wdXQgI2NpbG9nSW5wdXROdW1iZXJcclxuICAgICAgICAgICBwSW5wdXRUZXh0XHJcbiAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICAgICAgICAgW3ZhbHVlXT1cInZhbHVlU3RyXCJcclxuICAgICAgICAgICAoZm9jdXMpPVwib25Gb2N1c0V2ZW50KCRldmVudClcIlxyXG4gICAgICAgICAgIChibHVyKT1cIm9uQmx1ckV2ZW50KCRldmVudClcIlxyXG4gICAgICAgICAgIFtjbGFzc109XCIndy1mdWxsIHotMScgKyAoaW5wdXRTdHlsZUNsYXNzID09IG51bGwgPyAnJyA6ICcgJyArIGlucHV0U3R5bGVDbGFzcylcIlxyXG4gICAgICAgICAgIFtuZ0NsYXNzXT1cInN1ZmZpeGUgIT0gbnVsbCAmJiBwcmVmaXhlICE9IG51bGwgPyAnYm9yZGVyLW5vcm91bmQnIDogcHJlZml4ZSAhPSBudWxsID8gJ2JvcmRlci1ub3JvdW5kLWxlZnQnIDogc3VmZml4ZSAhPSBudWxsID8gJ2JvcmRlci1ub3JvdW5kLXJpZ2h0JyA6IG51bGxcIiAvPlxyXG5cclxuICAgIDxzcGFuIGNsYXNzPVwiaW5wdXQtZ3JvdXAtYWRkb24gc3VmZml4ZVwiXHJcbiAgICAgICAgICAqbmdJZj1cInN1ZmZpeGUgIT0gbnVsbFwiPlxyXG4gICAgICAgIHt7IHN1ZmZpeGUgfX1cclxuICAgIDwvc3Bhbj5cclxuXHJcbjwvZGl2PlxyXG4iXX0=
238
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2lsb2ctaW5wdXQtbnVtYmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NpbG9nLWxpYi9zcmMvbGliL3ZpZXdzL2NpbG9nLWlucHV0LW51bWJlci9jaWxvZy1pbnB1dC1udW1iZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2lsb2ctbGliL3NyYy9saWIvdmlld3MvY2lsb2ctaW5wdXQtbnVtYmVyL2NpbG9nLWlucHV0LW51bWJlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hJLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQWN6RSxNQUFNLE9BQU8seUJBQXlCO0lBd0JsQztRQVpVLFlBQU8sR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUMzRCxhQUFRLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFDNUQsWUFBTyxHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO1FBQzNELFdBQU0sR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUVwRSxhQUFRLEdBQVcsRUFBRSxDQUFDO1FBS2QsZ0JBQVcsR0FBa0IsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFFdkUsQ0FBQztJQUVqQixRQUFRO1FBQ0osa0tBQWtLO1FBQ2xLLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxNQUFNLENBQUMsd0NBQXdDLElBQUksQ0FBQyxXQUFXLElBQUksUUFBUSxNQUFNLENBQUMsQ0FBQztJQUN4RyxDQUFDO0lBR0QsY0FBYyxDQUFDLEtBQW9CO1FBRS9CLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQzVDLE9BQU87U0FDVjtRQUVELElBQUksS0FBSyxDQUFDLEdBQUcsSUFBSSxPQUFPLEVBQUU7WUFDdEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDL0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQy9CLE9BQU87U0FDVjtRQUVELElBQUksT0FBTyxHQUFXLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDO1FBRWhFLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDO1FBQ3pFLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDO1FBRXJFLElBQUksS0FBSyxHQUFXLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDdkUsSUFBSSxHQUFHLEdBQVcsT0FBTyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWhFLElBQUksSUFBSSxHQUFXLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzlDLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxHQUFHLEVBQUU7WUFDbkIsSUFBSSxrQkFBa0IsR0FBVyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQztZQUNwRixJQUFJLEdBQUcsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNsQyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNoQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQzthQUNqQztpQkFBTTtnQkFDSCxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxFQUFFO29CQUN4QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLGNBQWMsR0FBRyxrQkFBa0IsR0FBRyxDQUFDLENBQUM7b0JBQzVFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsWUFBWSxHQUFHLGtCQUFrQixHQUFHLENBQUMsQ0FBQztpQkFDN0U7YUFDSjtTQUNKO2FBQU0sSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLFdBQVcsRUFBRTtZQUNsQyxJQUFJLGFBQWEsSUFBSSxXQUFXLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsYUFBYSxHQUFHLENBQUMsRUFBRSxhQUFhLENBQUMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsYUFBYSxHQUFHLENBQUMsRUFBRSxhQUFhLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRTtnQkFDekosSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxjQUFjLEdBQUcsYUFBYSxHQUFHLENBQUMsQ0FBQztnQkFDdkUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxZQUFZLEdBQUcsYUFBYSxHQUFHLENBQUMsQ0FBQztnQkFDckUsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLEVBQUU7b0JBQ3pELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO2lCQUM1SjthQUNKO2lCQUFNO2dCQUNILElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUU7b0JBQ3hHLElBQUksR0FBRyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7aUJBQ2hDO3FCQUFNO29CQUNILElBQUksYUFBYSxJQUFJLENBQUMsRUFBRTt3QkFDcEIsS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLGFBQWEsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO3FCQUNsRTtvQkFDRCxJQUFJLEdBQUcsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2lCQUNoQztnQkFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQzthQUNoQztTQUNKO2FBQU07WUFDSCxJQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssR0FBRyxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxFQUFFO2dCQUM3RCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLGNBQWMsSUFBSSxDQUFDLENBQUM7YUFDM0Q7aUJBQU07Z0JBQ0gsSUFBSSxHQUFHLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUN4QyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQzthQUNoQztTQUNKO1FBRUQsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxVQUFVLENBQUMsSUFBWSxFQUFFLEtBQUs7UUFDMUIsSUFBSSxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsRUFBRTtZQUNuRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztTQUNqQzthQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsRUFBRTtZQUMxQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDOUM7YUFBTTtZQUNILElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQy9DLElBQUksSUFBSSxJQUFJLEVBQUUsRUFBRTtvQkFDWixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztpQkFDakM7YUFDSjtpQkFBTTtnQkFDSCxJQUFJLE1BQU0sR0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDL0MsSUFBSSxJQUFJLENBQUMsR0FBRyxJQUFJLElBQUksSUFBSSxNQUFNLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRTtvQkFDeEMsSUFBSSxJQUFJLENBQUMsR0FBRyxJQUFJLElBQUksSUFBSSxNQUFNLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRTt3QkFDeEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7cUJBQ2pDO2lCQUNKO2FBQ0o7U0FDSjtJQUNMLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBYSxFQUFFLEtBQUs7UUFDNUIsNkJBQTZCO1FBQzdCLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDO1FBQ3pFLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDO1FBQ3JFLElBQUksU0FBUyxHQUFXLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25HLElBQUksU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsRUFBRTtZQUNyQixTQUFTLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN0QztRQUVELFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDWixJQUFJLGNBQWMsR0FBVyxhQUFhLENBQUM7WUFDM0MsSUFBSSxhQUFhLElBQUksV0FBVyxFQUFFO2dCQUM5QixJQUFJLElBQUksR0FBVyxDQUFDLENBQUM7Z0JBQ3JCLElBQUksYUFBYSxHQUFXLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2hELElBQUksYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsRUFBRTtvQkFDekIsYUFBYSxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQzlDO2dCQUNELElBQ0ksS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxTQUFTO29CQUNoQyxDQUNJLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxXQUFXLElBQUksU0FBUyxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDOzJCQUM3RSxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksV0FBVyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FDbEcsRUFDSDtvQkFDRSxJQUFJLEdBQUcsQ0FBQyxDQUFDO2lCQUNaO2dCQUVELHlCQUF5QjtnQkFDekIsSUFBSSxLQUFLLENBQUMsR0FBRyxJQUFJLFdBQVcsRUFBRTtvQkFDMUIsSUFBSSxhQUFhLElBQUksQ0FBQyxFQUFFO3dCQUNwQixjQUFjLEdBQUcsYUFBYSxHQUFHLElBQUksQ0FBQztxQkFDekM7aUJBQ0o7cUJBQU07b0JBQ0gsY0FBYyxHQUFHLGFBQWEsR0FBRyxJQUFJLENBQUM7aUJBQ3pDO2FBQ0o7WUFDRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUM7WUFDcEUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxZQUFZLEdBQUcsY0FBYyxDQUFDO1FBQ3RFLENBQUMsQ0FBQyxDQUFDO1FBRUgsb0NBQW9DO1FBQ3BDLElBQUksS0FBSyxJQUFJLEVBQUUsSUFBSSxLQUFLLElBQUksR0FBRyxFQUFFO1lBQzdCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQ2hDO2FBQU07WUFDSCxJQUFJLENBQUMsVUFBVSxDQUNYLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUMxQixLQUFLLEVBQ0wsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksR0FBRyxJQUFJLEtBQUssQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUNsRSxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksR0FBRyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksU0FBUyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxFQUN0RixDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FDbEQsQ0FBQztTQUNMO1FBRUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBYSxFQUFFLGNBQXNCLElBQUksRUFBRSxNQUFlLEtBQUssRUFBRSxPQUFnQixLQUFLLEVBQUUsWUFBcUIsS0FBSztRQUN6SCxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUVuQixJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxFQUFFO1lBQ3BCLElBQUksV0FBVyxJQUFJLEdBQUcsRUFBRTtnQkFDcEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUM7YUFDdkI7aUJBQU07Z0JBQ0gsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7YUFDdEI7WUFDRCxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtnQkFDdkIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQzthQUM3RDtTQUNKO2FBQU07WUFDSCxJQUFJLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUU7Z0JBQzFJLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLEVBQUUscUJBQXFCLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7YUFDbkc7aUJBQU07Z0JBQ0gsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxxQkFBcUIsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2FBQ3BGO1lBQ0QsSUFBSSxHQUFHLElBQUksU0FBUyxFQUFFO2dCQUNsQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDO2FBQ3ZDO1lBQ0QsSUFBSSxJQUFJLEVBQUU7Z0JBQ04sSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQzthQUN2QztZQUNELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7U0FDN0Q7SUFDTCxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQUs7UUFDYixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxZQUFZLENBQUMsS0FBSztRQUNkLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsYUFBYSxDQUFDLEdBQVcsSUFBSSxDQUFDO0lBRTlCLGNBQWMsS0FBSyxDQUFDO0lBRXBCLGdCQUFnQixDQUFDLEVBQWM7UUFDM0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQWM7UUFDNUIsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7SUFDN0IsQ0FBQzs7c0hBNU5RLHlCQUF5QjswR0FBekIseUJBQXlCLDBXQVJ2QjtRQUNQO1lBQ0ksT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHlCQUF5QixDQUFDO1lBQ3hELEtBQUssRUFBRSxJQUFJO1NBQ2Q7S0FDSixnSkNiTCwrMEJBdUJBOzJGRFJhLHlCQUF5QjtrQkFackMsU0FBUzsrQkFDSSxvQkFBb0IsYUFHbkI7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsMEJBQTBCLENBQUM7NEJBQ3hELEtBQUssRUFBRSxJQUFJO3lCQUNkO3FCQUNKOzBFQU1RLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFFSSxPQUFPO3NCQUFoQixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csT0FBTztzQkFBaEIsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU07Z0JBSXdCLGdCQUFnQjtzQkFBOUMsU0FBUzt1QkFBQyxrQkFBa0I7Z0JBYTdCLGNBQWM7c0JBRGIsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgZm9yd2FyZFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnY2lsb2ctaW5wdXQtbnVtYmVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY2lsb2ctaW5wdXQtbnVtYmVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jaWxvZy1pbnB1dC1udW1iZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBDaWxvZ0lucHV0TnVtYmVyQ29tcG9uZW50KSxcclxuICAgICAgICAgICAgbXVsdGk6IHRydWVcclxuICAgICAgICB9XHJcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIENpbG9nSW5wdXROdW1iZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcblxuICAgIHZhbHVlOiBudW1iZXI7XG5cbiAgICBASW5wdXQoKSBtaW46IG51bWJlcjtcclxuICAgIEBJbnB1dCgpIG1heDogbnVtYmVyO1xuICAgIEBJbnB1dCgpIG1heERlY2ltYWxzOiBudW1iZXI7XG4gICAgQElucHV0KCkgcHJlZml4ZTogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHN1ZmZpeGU6IHN0cmluZztcbiAgICBASW5wdXQoKSBpbnB1dFN0eWxlQ2xhc3M6IHN0cmluZztcbiAgICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbjtcblxuICAgIEBPdXRwdXQoKSBvbklucHV0OiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuICAgIEBPdXRwdXQoKSBvbkNoYW5nZTogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcbiAgICBAT3V0cHV0KCkgb25Gb2N1czogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcbiAgICBAT3V0cHV0KCkgb25CbHVyOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gICAgdmFsdWVTdHI6IHN0cmluZyA9ICcnO1xuXG4gICAgQFZpZXdDaGlsZCgnY2lsb2dJbnB1dE51bWJlcicpIGNpbG9nSW5wdXROdW1iZXI6IEVsZW1lbnRSZWY7XG5cbiAgICBwcml2YXRlIHJlZ2V4OiBSZWdFeHA7XG4gICAgcHJpdmF0ZSBzcGVjaWFsS2V5czogQXJyYXk8c3RyaW5nPiA9IFsnVGFiJywgJ0VuZCcsICdIb21lJywgJ0Fycm93TGVmdCcsICdBcnJvd1JpZ2h0J107XG5cbiAgICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgLy90aGlzLnJlZ2V4ID0gbmV3IFJlZ0V4cChgXi0/XFxcXGR7MSwzfSg/OlxcXFxkezN9KSooXFxcXC5cXFxcZHswLCR7dGhpcy5tYXhEZWNpbWFscyB8fCBJbmZpbml0eX19KT8kfF4tP1xcXFxkezEsM30oPzpcXFxcZHszfSkqXFxcXCxcXFxcZHswLCR7dGhpcy5tYXhEZWNpbWFscyB8fCBJbmZpbml0eX19JGApO1xuICAgICAgICB0aGlzLnJlZ2V4ID0gbmV3IFJlZ0V4cChgXi0/XFxcXGR7MSwzfSg/OlxcXFxkezN9KSooPzpbXFxcXC4sXVxcXFxkezAsJHt0aGlzLm1heERlY2ltYWxzIHx8IEluZmluaXR5fX0pPyRgKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcbiAgICBvbktleURvd25FdmVudChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuXG4gICAgICAgIGlmICh0aGlzLnNwZWNpYWxLZXlzLmluZGV4T2YoZXZlbnQua2V5KSAhPT0gLTEpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChldmVudC5rZXkgPT0gJ0VudGVyJykge1xyXG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlSW5wdXQodGhpcy52YWx1ZSk7XHJcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cblxuICAgICAgICBsZXQgY3VycmVudDogc3RyaW5nID0gdGhpcy5jaWxvZ0lucHV0TnVtYmVyLm5hdGl2ZUVsZW1lbnQudmFsdWU7XG5cbiAgICAgICAgY29uc3QgcG9zaXRpb25TdGFydCA9IHRoaXMuY2lsb2dJbnB1dE51bWJlci5uYXRpdmVFbGVtZW50LnNlbGVjdGlvblN0YXJ0O1xuICAgICAgICBjb25zdCBwb3NpdGlvbkVuZCA9IHRoaXMuY2lsb2dJbnB1dE51bWJlci5uYXRpdmVFbGVtZW50LnNlbGVjdGlvbkVuZDtcblxuICAgICAgICBsZXQgZGVidXQ6IHN0cmluZyA9IGN1cnJlbnQuc2xpY2UoMCwgcG9zaXRpb25TdGFydCkucmVwbGFjZSgvXFxzL2csICcnKTtcbiAgICAgICAgbGV0IGZpbjogc3RyaW5nID0gY3VycmVudC5zbGljZShwb3NpdGlvbkVuZCkucmVwbGFjZSgvXFxzL2csICcnKTtcblxuICAgICAgICBsZXQgbmV4dDogc3RyaW5nID0gY3VycmVudC5yZXBsYWNlKC9cXHMvZywgJycpO1xuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnLicpIHtcbiAgICAgICAgICAgIGxldCBwb3NpdGlvblN0YXJ0UG9pbnQ6IG51bWJlciA9IHRoaXMuY2lsb2dJbnB1dE51bWJlci5uYXRpdmVFbGVtZW50LnNlbGVjdGlvblN0YXJ0O1xuICAgICAgICAgICAgbmV4dCA9IFtkZWJ1dCwgJywnLCBmaW5dLmpvaW4oJycpO1xuICAgICAgICAgICAgaWYgKFN0cmluZyhuZXh0KS5tYXRjaCh0aGlzLnJlZ2V4KSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5hY2NlcHRWYWx1ZShuZXh0LCBldmVudCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKGN1cnJlbnQuc2xpY2UocG9zaXRpb25TdGFydClbMF0gPT0gJywnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jaWxvZ0lucHV0TnVtYmVyLm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgPSBwb3NpdGlvblN0YXJ0UG9pbnQgKyAxO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNpbG9nSW5wdXROdW1iZXIubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25FbmQgPSBwb3NpdGlvblN0YXJ0UG9pbnQgKyAxO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5ID09PSAnQmFja3NwYWNlJykge1xuICAgICAgICAgICAgaWYgKHBvc2l0aW9uU3RhcnQgPT0gcG9zaXRpb25FbmQgJiYgKC9cXHMvZy50ZXN0KGN1cnJlbnQuc2xpY2UocG9zaXRpb25TdGFydCAtIDEsIHBvc2l0aW9uU3RhcnQpKSB8fCBjdXJyZW50LnNsaWNlKHBvc2l0aW9uU3RhcnQgLSAxLCBwb3NpdGlvblN0YXJ0KSA9PSBcIixcIikpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY2lsb2dJbnB1dE51bWJlci5uYXRpdmVFbGVtZW50LnNlbGVjdGlvblN0YXJ0ID0gcG9zaXRpb25TdGFydCAtIDE7XG4gICAgICAgICAgICAgICAgdGhpcy5jaWxvZ0lucHV0TnVtYmVyLm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uRW5kID0gcG9zaXRpb25TdGFydCAtIDE7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jaWxvZ0lucHV0TnVtYmVyLm5hdGl2ZUVsZW1lbnQudmFsdWUuYXQoLTEpID09ICcsJykge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2lsb2dJbnB1dE51bWJlci5uYXRpdmVFbGVtZW50LnZhbHVlID0gdGhpcy5jaWxvZ0lucHV0TnVtYmVyLm5hdGl2ZUVsZW1lbnQudmFsdWUuc3Vic3RyaW5nKDAsIHRoaXMuY2lsb2dJbnB1dE51bWJlci5uYXRpdmVFbGVtZW50LnZhbHVlLmxlbmd0aCAtIDEpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmNpbG9nSW5wdXROdW1iZXIubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25TdGFydCAhPSB0aGlzLmNpbG9nSW5wdXROdW1iZXIubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25FbmQpIHtcbiAgICAgICAgICAgICAgICAgICAgbmV4dCA9IFtkZWJ1dCwgZmluXS5qb2luKCcnKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChwb3NpdGlvblN0YXJ0ICE9IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlYnV0ID0gY3VycmVudC5zbGljZSgwLCBwb3NpdGlvblN0YXJ0IC0gMSkucmVwbGFjZSgvXFxzL2csICcnKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBuZXh0ID0gW2RlYnV0LCBmaW5dLmpvaW4oJycpO1xyXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tWYWx1ZShuZXh0LCBldmVudCk7XHJcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChldmVudC5rZXkgPT09ICcsJyAmJiBjdXJyZW50LnNsaWNlKHBvc2l0aW9uU3RhcnQpWzBdID09ICcsJykge1xuICAgICAgICAgICAgICAgIHRoaXMuY2lsb2dJbnB1dE51bWJlci5uYXRpdmVFbGVtZW50LnNlbGVjdGlvblN0YXJ0ICs9IDE7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbmV4dCA9IFtkZWJ1dCwgZXZlbnQua2V5LCBmaW5dLmpvaW4oJycpO1xuICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tWYWx1ZShuZXh0LCBldmVudCk7XHJcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgY2hlY2tWYWx1ZShuZXh0OiBzdHJpbmcsIGV2ZW50KSB7XG4gICAgICAgIGlmIChuZXh0ID09ICctJyAmJiAodGhpcy5taW4gPT0gbnVsbCB8fCB0aGlzLm1pbiA8IDApKSB7XG4gICAgICAgICAgICB0aGlzLmFjY2VwdFZhbHVlKG5leHQsIGV2ZW50KTtcclxuICAgICAgICB9IGVsc2UgaWYgKG5leHQubGVuZ3RoID4gMSAmJiBuZXh0WzBdID09ICcsJykge1xyXG4gICAgICAgICAgICB0aGlzLmFjY2VwdFZhbHVlKG5leHQuc3Vic3RyaW5nKDEpLCBldmVudCk7XHJcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChTdHJpbmcobmV4dCksICFTdHJpbmcobmV4dCkubWF0Y2godGhpcy5yZWdleCkpIHtcbiAgICAgICAgICAgICAgICBpZiAobmV4dCA9PSAnJykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFjY2VwdFZhbHVlKG5leHQsIGV2ZW50KTtcclxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbGV0IG51bWJlcjogbnVtYmVyID0gKyhuZXh0LnJlcGxhY2UoJywnLCAnLicpKTtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLm1pbiA9PSBudWxsIHx8IG51bWJlciA+PSB0aGlzLm1pbikge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm1heCA9PSBudWxsIHx8IG51bWJlciA8PSB0aGlzLm1heCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hY2NlcHRWYWx1ZShuZXh0LCBldmVudCk7XG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cblxuICAgIGFjY2VwdFZhbHVlKHZhbHVlOiBzdHJpbmcsIGV2ZW50KSB7XG4gICAgICAgIC8vIFN0b2NrYWdlIHBvc2l0aW9uIGluaXRpYWxlXG4gICAgICAgIGNvbnN0IHBvc2l0aW9uU3RhcnQgPSB0aGlzLmNpbG9nSW5wdXROdW1iZXIubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25TdGFydDtcbiAgICAgICAgY29uc3QgcG9zaXRpb25FbmQgPSB0aGlzLmNpbG9nSW5wdXROdW1iZXIubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25FbmQ7XG4gICAgICAgIGxldCB2YWxFbnRpZXI6IHN0cmluZyA9IHRoaXMuY2lsb2dJbnB1dE51bWJlci5uYXRpdmVFbGVtZW50LnZhbHVlLnJlcGxhY2UoL1xccy9nLCAnJykuc3BsaXQoJywnKVswXTtcbiAgICAgICAgaWYgKHZhbEVudGllclswXSA9PSAnLScpIHtcbiAgICAgICAgICAgIHZhbEVudGllciA9IHZhbEVudGllci5zdWJzdHJpbmcoMSk7XHJcbiAgICAgICAgfVxuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgbGV0IHBvc2l0aW9uRmluYWxlOiBudW1iZXIgPSBwb3NpdGlvblN0YXJ0O1xuICAgICAgICAgICAgaWYgKHBvc2l0aW9uU3RhcnQgPT0gcG9zaXRpb25FbmQpIHtcbiAgICAgICAgICAgICAgICBsZXQganVtcDogbnVtYmVyID0gMTtcbiAgICAgICAgICAgICAgICBsZXQgdmFsRW50aWVyTmV4dDogc3RyaW5nID0gdmFsdWUuc3BsaXQoJywnKVswXTtcbiAgICAgICAgICAgICAgICBpZiAodmFsRW50aWVyTmV4dFswXSA9PSAnLScpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsRW50aWVyTmV4dCA9IHZhbEVudGllck5leHQuc3Vic3RyaW5nKDEpO1xyXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUuc3BsaXQoJywnKVswXSAhPSB2YWxFbnRpZXIgJiZcbiAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgKGV2ZW50LmtleSAhPSAnQmFja3NwYWNlJyAmJiB2YWxFbnRpZXIubGVuZ3RoICE9IDAgJiYgdmFsRW50aWVyLmxlbmd0aCAlIDMgPT0gMClcbiAgICAgICAgICAgICAgICAgICAgICAgIHx8IChldmVudC5rZXkgPT0gJ0JhY2tzcGFjZScgJiYgKHZhbEVudGllci5sZW5ndGggLSAxKSAhPSAwICYmICh2YWxFbnRpZXIubGVuZ3RoIC0gMSkgJSAzID09IDApXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAganVtcCA9IDI7XHJcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyBDYWxjdWwgcG9zaXRpb24gZmluYWxlXG4gICAgICAgICAgICAgICAgaWYgKGV2ZW50LmtleSA9PSAnQmFja3NwYWNlJykge1xuICAgICAgICAgICAgICAgICAgICBpZiAocG9zaXRpb25TdGFydCAhPSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uRmluYWxlID0gcG9zaXRpb25TdGFydCAtIGp1bXA7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb25GaW5hbGUgPSBwb3NpdGlvblN0YXJ0ICsganVtcDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLmNpbG9nSW5wdXROdW1iZXIubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25TdGFydCA9IHBvc2l0aW9uRmluYWxlO1xyXG4gICAgICAgICAgICB0aGlzLmNpbG9nSW5wdXROdW1iZXIubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25FbmQgPSBwb3NpdGlvbkZpbmFsZTtcclxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBNaXNlIMOgIGpvdXIgZGUgbGEgdmFsZXVyIGR1IGNoYW1wXG4gICAgICAgIGlmICh2YWx1ZSA9PSAnJyB8fCB2YWx1ZSA9PSAnLScpIHtcclxuICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKG51bGwsIHZhbHVlKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLndyaXRlVmFsdWUoXHJcbiAgICAgICAgICAgICAgICArKHZhbHVlLnJlcGxhY2UoJywnLCAnLicpKSxcclxuICAgICAgICAgICAgICAgIHZhbHVlLFxyXG4gICAgICAgICAgICAgICAgKChldmVudC5rZXkgPT0gJy4nIHx8IGV2ZW50LmtleSA9PSAnLCcpICYmIHZhbHVlLnNsaWNlKC0xKSA9PSAnLCcpLFxyXG4gICAgICAgICAgICAgICAgKGV2ZW50LmtleSA9PSAnMCcgJiYgdmFsdWUuc3BsaXQoJywnKVswXSA9PSB2YWxFbnRpZXIgJiYgdmFsdWUuc3BsaXQoJywnKS5sZW5ndGggPT0gMiksXHJcbiAgICAgICAgICAgICAgICAoZXZlbnQua2V5ID09ICcwJyAmJiArdmFsdWUuc3BsaXQoJywnKVsxXSA9PSAwKVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH1cblxyXG4gICAgICAgIHRoaXMub25DaGFuZ2VJbnB1dCh0aGlzLnZhbHVlKTtcclxuICAgICAgICB0aGlzLm9uSW5wdXQuZW1pdCh0aGlzLnZhbHVlKTtcclxuICAgIH1cblxuICAgIHdyaXRlVmFsdWUodmFsdWU6IG51bWJlciwgdmFsdWVTdHJpbmc6IHN0cmluZyA9IG51bGwsIHNlcDogYm9vbGVhbiA9IGZhbHNlLCB6ZXJvOiBib29sZWFuID0gZmFsc2UsIHplcm9BZnRlcjogYm9vbGVhbiA9IGZhbHNlKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuXG4gICAgICAgIGlmICh0aGlzLnZhbHVlID09IG51bGwpIHtcbiAgICAgICAgICAgIGlmICh2YWx1ZVN0cmluZyA9PSAnLScpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlU3RyID0gJy0nO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy52YWx1ZVN0ciA9ICcnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmNpbG9nSW5wdXROdW1iZXIpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY2lsb2dJbnB1dE51bWJlci5uYXRpdmVFbGVtZW50LnZhbHVlID0gdGhpcy52YWx1ZVN0cjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLm1heERlY2ltYWxzICE9IG51bGwgJiYgdGhpcy52YWx1ZS50b1N0cmluZygpLnNwbGl0KCcuJykubGVuZ3RoID4gMSAmJiB0aGlzLnZhbHVlLnRvU3RyaW5nKCkuc3BsaXQoJy4nKVsxXS5sZW5ndGggPiB0aGlzLm1heERlY2ltYWxzKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlU3RyID0gdGhpcy52YWx1ZS50b0xvY2FsZVN0cmluZygnZnItRlInLCB7IG1heGltdW1GcmFjdGlvbkRpZ2l0czogdGhpcy5tYXhEZWNpbWFscyB9KTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudmFsdWVTdHIgPSB0aGlzLnZhbHVlLnRvTG9jYWxlU3RyaW5nKCdmci1GUicsIHsgbWF4aW11bUZyYWN0aW9uRGlnaXRzOiA2IH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChzZXAgfHwgemVyb0FmdGVyKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlU3RyID0gdGhpcy52YWx1ZVN0ciArICcsJztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoemVybykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy52YWx1ZVN0ciA9IHRoaXMudmFsdWVTdHIgKyAnMCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5jaWxvZ0lucHV0TnVtYmVyLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB0aGlzLnZhbHVlU3RyO1xyXG4gICAgICAgIH1cclxuICAgIH1cblxuICAgIG9uQmx1ckV2ZW50KGV2ZW50KSB7XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZUlucHV0KHRoaXMudmFsdWUpO1xyXG4gICAgICAgIHRoaXMub25DaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcclxuICAgICAgICB0aGlzLm9uQmx1ci5lbWl0KHRoaXMudmFsdWUpO1xyXG4gICAgfVxuXG4gICAgb25Gb2N1c0V2ZW50KGV2ZW50KSB7XHJcbiAgICAgICAgdGhpcy5vbkZvY3VzLmVtaXQodGhpcy52YWx1ZSk7XHJcbiAgICB9XG5cclxuICAgIG9uQ2hhbmdlSW5wdXQodmFsOiBudW1iZXIpIHsgfVxyXG5cclxuICAgIG9uVG91Y2hlZElucHV0KCkgeyB9XHJcblxyXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMub25DaGFuZ2VJbnB1dCA9IGZuO1xyXG4gICAgfVxyXG5cclxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5vblRvdWNoZWRJbnB1dCA9IGZuO1xyXG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwIHctZnVsbFwiPlxyXG5cclxuICAgIDxzcGFuIGNsYXNzPVwiaW5wdXQtZ3JvdXAtYWRkb24gcHJlZml4ZVwiXHJcbiAgICAgICAgICAqbmdJZj1cInByZWZpeGUgIT0gbnVsbFwiPlxyXG4gICAgICAgIHt7IHByZWZpeGUgfX1cclxuICAgIDwvc3Bhbj5cclxuXHJcbiAgICA8aW5wdXQgI2NpbG9nSW5wdXROdW1iZXJcclxuICAgICAgICAgICBwSW5wdXRUZXh0XHJcbiAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICAgICAgICAgW3ZhbHVlXT1cInZhbHVlU3RyXCJcclxuICAgICAgICAgICAoZm9jdXMpPVwib25Gb2N1c0V2ZW50KCRldmVudClcIlxyXG4gICAgICAgICAgIChibHVyKT1cIm9uQmx1ckV2ZW50KCRldmVudClcIlxyXG4gICAgICAgICAgIFtjbGFzc109XCIndy1mdWxsIHotMScgKyAoaW5wdXRTdHlsZUNsYXNzID09IG51bGwgPyAnJyA6ICcgJyArIGlucHV0U3R5bGVDbGFzcylcIlxyXG4gICAgICAgICAgIFtuZ0NsYXNzXT1cInN1ZmZpeGUgIT0gbnVsbCAmJiBwcmVmaXhlICE9IG51bGwgPyAnYm9yZGVyLW5vcm91bmQnIDogcHJlZml4ZSAhPSBudWxsID8gJ2JvcmRlci1ub3JvdW5kLWxlZnQnIDogc3VmZml4ZSAhPSBudWxsID8gJ2JvcmRlci1ub3JvdW5kLXJpZ2h0JyA6IG51bGxcIiAvPlxyXG5cclxuICAgIDxzcGFuIGNsYXNzPVwiaW5wdXQtZ3JvdXAtYWRkb24gc3VmZml4ZVwiXHJcbiAgICAgICAgICAqbmdJZj1cInN1ZmZpeGUgIT0gbnVsbFwiPlxyXG4gICAgICAgIHt7IHN1ZmZpeGUgfX1cclxuICAgIDwvc3Bhbj5cclxuXHJcbjwvZGl2PlxyXG4iXX0=