cilog-lib 1.4.0 → 1.4.2

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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdGlvbi5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jaWxvZy1saWIvc3JjL2xpYi9oZWxwZXJzL2ludGVyZmFjZXMvZWRpdGlvbi5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElSb3csIElDb2x1bW4gfSBmcm9tICcuL2dyaWxsZS5pbnRlcmZhY2UnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJRWRpdGlvbiB7XHJcbiAgICByb3c6IElSb3c7XHJcbiAgICBjb2x1bW46IElDb2x1bW47XHJcbiAgICB2YWx1ZTogYW55O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElTdXBwcmVzc2lvbiB7XHJcbiAgICByb3c6IElSb3c7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSVNlbGVjdGlvbiB7XHJcbiAgICByb3c6IElSb3c7XHJcbiAgICBzZWxlY3RlZFJvd3M/OiBJUm93W10gfCBJUm93O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElGaWx0ZXIge1xyXG4gICAgY29sdW1uOiBJQ29sdW1uO1xyXG4gICAgdmFsdWU6IGFueTtcclxuICAgIGZpbHRlcmVkVmFsdWU6IGFueVtdXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSVNvcnQge1xyXG4gICAgY29sdW1uOiBJQ29sdW1uO1xyXG4gICAgb3JkZXI6IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJUGFnZSB7XHJcbiAgICBmaXJzdDogbnVtYmVyO1xyXG4gICAgcm93czogbnVtYmVyO1xyXG59XHJcbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdGlvbi5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jaWxvZy1saWIvc3JjL2xpYi9oZWxwZXJzL2ludGVyZmFjZXMvZWRpdGlvbi5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElSb3csIElDb2x1bW4gfSBmcm9tICcuL2dyaWxsZS5pbnRlcmZhY2UnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJRWRpdGlvbiB7XHJcbiAgICByb3c6IElSb3c7XHJcbiAgICBjb2x1bW46IElDb2x1bW47XHJcbiAgICB2YWx1ZTogYW55O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElTdXBwcmVzc2lvbiB7XHJcbiAgICByb3c6IElSb3c7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSVNlbGVjdGlvbiB7XHJcbiAgICByb3c6IElSb3c7XHJcbiAgICBzZWxlY3RlZFJvd3M/OiBJUm93W10gfCBJUm93O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElGaWx0ZXIge1xyXG4gICAgY29sdW1uOiBJQ29sdW1uO1xyXG4gICAgdmFsdWU6IGFueTtcclxuICAgIGZpbHRlcmVkVmFsdWU6IGFueVtdXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSVNvcnQge1xyXG4gICAgY29sdW1uOiBJQ29sdW1uO1xyXG4gICAgb3JkZXI6IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJU29ydEN1c3RvbSB7XHJcbiAgICB2YWx1ZTE6IGFueTtcclxuICAgIHZhbHVlMjogYW55O1xyXG59XHJcblxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJUGFnZSB7XHJcbiAgICBmaXJzdDogbnVtYmVyO1xyXG4gICAgcm93czogbnVtYmVyO1xyXG59XHJcbiJdfQ==
@@ -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/OiBzdHJpbmc7XHJcbiAgICBkaXNhYmxlRmlsdGVyPzogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJT3B0aW9ucyB7XHJcbiAgICBkZWZhdWx0RmlsdGVycz86IGFueTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJT3B0aW9uc0ZpbGUgZXh0ZW5kcyBJT3B0aW9ucyB7XHJcbiAgICBkb3dubG9hZFBhdGg/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSU9wdGlvbnNEYXRlIGV4dGVuZHMgSU9wdGlvbnMge1xyXG4gICAgY2xlYXI/OiBib29sZWFuO1xyXG4gICAgbWluRGF0ZT86IERhdGU7XHJcbiAgICBtYXhEYXRlPzogRGF0ZTtcclxuICAgIGRlZmF1bHREYXRlPzogRGF0ZTtcclxuICAgIG1vZGU/OiBNb2RlQ2FsZW5kYXJcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJT3B0aW9uc0Ryb3Bkb3duIGV4dGVuZHMgSU9wdGlvbnMge1xyXG4gICAgb3B0aW9uczogYW55W107XHJcbiAgICBvcHRpb25MYWJlbDogc3RyaW5nO1xyXG4gICAgb3B0aW9uVmFsdWU/OiBzdHJpbmc7XHJcbiAgICB2aXJ0dWFsU2Nyb2xsPzogYm9vbGVhbjtcclxuICAgIGZpbHRlcj86IGJvb2xlYW47XHJcbiAgICBiYXNlWkluZGV4PzogbnVtYmVyO1xyXG4gICAgb25seUxpc3RWYWx1ZXM/OiBib29sZWFuXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSU9wdGlvbnNNdWx0aVNlbGVjdCBleHRlbmRzIElPcHRpb25zIHtcclxuICAgIG9wdGlvbnM6IGFueVtdO1xyXG4gICAgb3B0aW9uTGFiZWw6IHN0cmluZztcclxuICAgIG9wdGlvblZhbHVlPzogc3RyaW5nO1xyXG4gICAgdmlydHVhbFNjcm9sbD86IGJvb2xlYW47XHJcbiAgICBmaWx0ZXI/OiBib29sZWFuO1xyXG4gICAgYmFzZVpJbmRleD86IG51bWJlcjtcclxuICAgIG9wdGlvbkdyb3VwTGFiZWw/OiBzdHJpbmc7XHJcbiAgICBvcHRpb25Hcm91cENoaWxkcmVuPzogc3RyaW5nO1xyXG4gICAgb25seUxpc3RWYWx1ZXM/OiBib29sZWFuXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSU9wdGlvbnNOdW1iZXIgZXh0ZW5kcyBJT3B0aW9ucyB7XHJcbiAgICBwcmVmaXg/OiBzdHJpbmc7XHJcbiAgICBzdWZmaXg/OiBzdHJpbmc7XHJcbiAgICBtaW4/OiBudW1iZXI7XHJcbiAgICBtYXg/OiBudW1iZXI7XHJcbiAgICBtaW5EZWNpbWFsZXM/OiBudW1iZXI7XHJcbiAgICBtYXhEZWNpbWFsZXM/OiBudW1iZXI7XHJcbiAgICBzaG93QnV0dG9ucz86IGJvb2xlYW47XHJcbiAgICBtb2RlSW50ZWdlcj86IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSU9wdGlvbnNTZWxlY3RCdXR0b24gZXh0ZW5kcyBJT3B0aW9ucyB7XHJcbiAgICBvcHRpb25zOiBhbnlbXTtcclxuICAgIG9wdGlvbkxhYmVsOiBzdHJpbmc7XHJcbiAgICBvcHRpb25WYWx1ZT86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJT3B0aW9uc1N3aXRjaCBleHRlbmRzIElPcHRpb25zIHtcclxuICAgIGFjdGlvbj86IGFueTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJT3B0aW9uc0J1dHRvbiBleHRlbmRzIElPcHRpb25zIHtcclxuICAgIHNldmVyaXR5OiBTZXZlcml0eTtcclxuICAgIGxhYmVsPzogc3RyaW5nO1xyXG4gICAgaWNvbj86IGFueTtcclxuICAgIGZpbHRlckNvbD86IGJvb2xlYW47XHJcbiAgICBmaWx0ZXJPYmpGaWVsZD86IHN0cmluZztcclxuICAgIGZpbHRlck9ialN1YkZpZWxkPzogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElPcHRpb25zU3RhdGUgZXh0ZW5kcyBJT3B0aW9ucyB7XHJcbiAgICBvcHRpb25zOiBJU3RhdGVbXTtcclxuICAgIG9wdGlvbkxhYmVsOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSVN0YXRlIHtcclxuICAgIElEOiBudW1iZXI7XHJcbiAgICBsYWJlbD86IHN0cmluZztcclxuICAgIGljb24/OiBhbnk7XHJcbiAgICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XHJcbiAgICB0ZXh0Q29sb3I/OiBzdHJpbmc7XHJcbiAgICBzZXZlcml0eT86IFNldmVyaXR5O1xyXG59XHJcbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpbGxlLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NpbG9nLWxpYi9zcmMvbGliL2hlbHBlcnMvaW50ZXJmYWNlcy9ncmlsbGUuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZXZlcml0eSwgQ29sVHlwZSwgTW9kZVNlbGVjdGlvbiwgVGhlbWVHcmlsbGUsIFBvc2l0aW9uLCBNb2RlQ2FsZW5kYXIgfSBmcm9tICcuLi9lbnVtcy9ncmlsbGUuZW51bSc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElHcm91cGluZyB7XHJcbiAgICBvYmo6IGFueSxcclxuICAgIGlkOiBzdHJpbmcsXHJcbiAgICBsaWJlbGxlOiBzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJT3B0aW9uc0dyaWxsZSB7XHJcbiAgICBlZGl0YWJsZT86IGJvb2xlYW47XHJcbiAgICBmaWx0ZXJhYmxlPzogYm9vbGVhbjtcclxuICAgIHNvcnRhYmxlPzogYm9vbGVhbjtcclxuICAgIHNlbGVjdGFibGU/OiBib29sZWFuO1xyXG4gICAgbW9kZVNlbGVjdGlvbj86IE1vZGVTZWxlY3Rpb247XHJcbiAgICByb3dzRGVsZXRhYmxlPzogYm9vbGVhbjtcclxuICAgIG1hbnVhbGx5RGVsZXRhYmxlPzogYm9vbGVhbjtcclxuICAgIGNlbnRlckhlYWRlcnM/OiBib29sZWFuO1xyXG4gICAgdGhlbWVHcmlsbGU/OiBUaGVtZUdyaWxsZTtcclxuICAgIHNjcm9sbEhlaWdodD86IHN0cmluZztcclxuICAgIGdyb3VwaW5nPzogSUdyb3VwaW5nO1xyXG4gICAgdmlydHVhbFNjcm9sbD86IGJvb2xlYW47XHJcbiAgICB2aXJ0dWFsU2Nyb2xsSXRlbVNpemU/OiBudW1iZXI7XHJcbiAgICBwYWdpbmF0b3I/OiBib29sZWFuO1xyXG4gICAgcGFnaW5hdG9yRmlyc3Q/OiBudW1iZXI7XHJcbiAgICBwYWdpbmF0b3JSb3dzPzogbnVtYmVyO1xyXG4gICAgcm93VG90YWw/OiBib29sZWFuO1xyXG4gICAgdG90YWxCeVNlbGVjdGlvbj86IGJvb2xlYW47XHJcbiAgICB0b3RhbEJ5RmlsdGVyPzogYm9vbGVhbjtcclxuICAgIGxhenk/OiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElSb3cge1xyXG4gICAgaWQ6IGFueTtcclxuICAgIG9iaj86IGFueTtcclxuICAgIGRlbGV0YWJsZT86IGJvb2xlYW47XHJcbiAgICByZWFkb25seT86IGJvb2xlYW47XHJcbiAgICBjb2xvcj86IHN0cmluZztcclxuICAgIFtrZXk6IHN0cmluZ106IGFueTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJQ2VsbCB7XHJcbiAgICBpZDogYW55O1xyXG4gICAgb2JqPzogYW55O1xyXG4gICAgdmFsdWU6IGFueTtcclxuICAgIHRvb2x0aXA/OiBzdHJpbmc7XHJcbiAgICByZWFkb25seT86IGJvb2xlYW47XHJcbiAgICBjb2xvcj86IHN0cmluZztcclxuICAgIHRleHRDb2xvcj86IHN0cmluZztcclxuICAgIG9wdGlvbnM/OiBJT3B0aW9ucztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJQ29sdW1uIHtcclxuICAgIGlkOiBhbnk7XHJcbiAgICB0eXBlOiBDb2xUeXBlO1xyXG4gICAgbGliZWxsZTogc3RyaW5nO1xyXG4gICAgY2hhbXBCYXNlPzogc3RyaW5nO1xyXG4gICAgbnVsbGFibGU/OiBib29sZWFuO1xyXG4gICAgdG9vbHRpcD86IGJvb2xlYW47XHJcbiAgICB3aWR0aD86IHN0cmluZztcclxuICAgIGRpc3BsYXlUb3RhbD86IGJvb2xlYW47XHJcbiAgICBwb3NpdGlvbj86IFBvc2l0aW9uO1xyXG4gICAgb3B0aW9ucz86IElPcHRpb25zO1xyXG4gICAgZnJvemVuPzogYm9vbGVhbjtcclxuICAgIGludmlzaWJsZT86IGJvb2xlYW47XHJcbiAgICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XHJcbiAgICB0ZXh0Q29sb3I/OiBzdHJpbmc7XHJcbiAgICBkaXNhYmxlRmlsdGVyPzogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJT3B0aW9ucyB7XHJcbiAgICBkZWZhdWx0RmlsdGVycz86IGFueTtcclxuICAgIGN1c3RvbVNvcnQ/OiBib29sZWFuO1xyXG4gICAgc29ydEZ1bmN0aW9uPzogYW55O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElPcHRpb25zRmlsZSBleHRlbmRzIElPcHRpb25zIHtcclxuICAgIGRvd25sb2FkUGF0aD86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJT3B0aW9uc0RhdGUgZXh0ZW5kcyBJT3B0aW9ucyB7XHJcbiAgICBjbGVhcj86IGJvb2xlYW47XHJcbiAgICBtaW5EYXRlPzogRGF0ZTtcclxuICAgIG1heERhdGU/OiBEYXRlO1xyXG4gICAgZGVmYXVsdERhdGU/OiBEYXRlO1xyXG4gICAgbW9kZT86IE1vZGVDYWxlbmRhclxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElPcHRpb25zRHJvcGRvd24gZXh0ZW5kcyBJT3B0aW9ucyB7XHJcbiAgICBvcHRpb25zOiBhbnlbXTtcclxuICAgIG9wdGlvbkxhYmVsOiBzdHJpbmc7XHJcbiAgICBvcHRpb25WYWx1ZT86IHN0cmluZztcclxuICAgIHZpcnR1YWxTY3JvbGw/OiBib29sZWFuO1xyXG4gICAgZmlsdGVyPzogYm9vbGVhbjtcclxuICAgIGZpbHRlclRleHQ/OiBib29sZWFuO1xyXG4gICAgYmFzZVpJbmRleD86IG51bWJlcjtcclxuICAgIG9ubHlMaXN0VmFsdWVzPzogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJT3B0aW9uc011bHRpU2VsZWN0IGV4dGVuZHMgSU9wdGlvbnMge1xyXG4gICAgb3B0aW9uczogYW55W107XHJcbiAgICBvcHRpb25MYWJlbDogc3RyaW5nO1xyXG4gICAgb3B0aW9uVmFsdWU/OiBzdHJpbmc7XHJcbiAgICB2aXJ0dWFsU2Nyb2xsPzogYm9vbGVhbjtcclxuICAgIGZpbHRlcj86IGJvb2xlYW47XHJcbiAgICBmaWx0ZXJUZXh0PzogYm9vbGVhbjtcclxuICAgIGJhc2VaSW5kZXg/OiBudW1iZXI7XHJcbiAgICBvcHRpb25Hcm91cExhYmVsPzogc3RyaW5nO1xyXG4gICAgb3B0aW9uR3JvdXBDaGlsZHJlbj86IHN0cmluZztcclxuICAgIG9ubHlMaXN0VmFsdWVzPzogYm9vbGVhblxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElPcHRpb25zTnVtYmVyIGV4dGVuZHMgSU9wdGlvbnMge1xyXG4gICAgcHJlZml4Pzogc3RyaW5nO1xyXG4gICAgc3VmZml4Pzogc3RyaW5nO1xyXG4gICAgbWluPzogbnVtYmVyO1xyXG4gICAgbWF4PzogbnVtYmVyO1xyXG4gICAgbWluRGVjaW1hbGVzPzogbnVtYmVyO1xyXG4gICAgbWF4RGVjaW1hbGVzPzogbnVtYmVyO1xyXG4gICAgc2hvd0J1dHRvbnM/OiBib29sZWFuO1xyXG4gICAgbW9kZUludGVnZXI/OiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElPcHRpb25zU2VsZWN0QnV0dG9uIGV4dGVuZHMgSU9wdGlvbnMge1xyXG4gICAgb3B0aW9uczogYW55W107XHJcbiAgICBvcHRpb25MYWJlbDogc3RyaW5nO1xyXG4gICAgb3B0aW9uVmFsdWU/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSU9wdGlvbnNTd2l0Y2ggZXh0ZW5kcyBJT3B0aW9ucyB7XHJcbiAgICBhY3Rpb24/OiBhbnk7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSU9wdGlvbnNCdXR0b24gZXh0ZW5kcyBJT3B0aW9ucyB7XHJcbiAgICBzZXZlcml0eTogU2V2ZXJpdHk7XHJcbiAgICBsYWJlbD86IHN0cmluZztcclxuICAgIGljb24/OiBhbnk7XHJcbiAgICBmaWx0ZXJDb2w/OiBib29sZWFuO1xyXG4gICAgZmlsdGVyT2JqRmllbGQ/OiBzdHJpbmc7XHJcbiAgICBmaWx0ZXJPYmpTdWJGaWVsZD86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJT3B0aW9uc1N0YXRlIGV4dGVuZHMgSU9wdGlvbnMge1xyXG4gICAgb3B0aW9uczogSVN0YXRlW107XHJcbiAgICBvcHRpb25MYWJlbDogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElTdGF0ZSB7XHJcbiAgICBJRDogbnVtYmVyO1xyXG4gICAgbGFiZWw/OiBzdHJpbmc7XHJcbiAgICBpY29uPzogYW55O1xyXG4gICAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xyXG4gICAgdGV4dENvbG9yPzogc3RyaW5nO1xyXG4gICAgc2V2ZXJpdHk/OiBTZXZlcml0eTtcclxufVxyXG4iXX0=
@@ -27,10 +27,12 @@ export class CilogInputNumberComponent {
27
27
  let current = this.cilogInputNumber.nativeElement.value;
28
28
  const positionStart = this.cilogInputNumber.nativeElement.selectionStart;
29
29
  const positionEnd = this.cilogInputNumber.nativeElement.selectionEnd;
30
+ let debut = current.slice(0, positionStart).replace(/\s/g, '');
31
+ let fin = current.slice(positionEnd).replace(/\s/g, '');
30
32
  let next = current;
31
33
  if (event.key === '.') {
32
34
  let positionStartPoint = this.cilogInputNumber.nativeElement.selectionStart;
33
- next = [current.slice(0, positionStart), ',', current.slice(positionEnd)].join('').replace(/\s/g, '');
35
+ next = [debut, ',', fin].join('').replace(/\s/g, '');
34
36
  if (String(next).match(this.regex)) {
35
37
  this.acceptValue(next, false);
36
38
  }
@@ -48,10 +50,11 @@ export class CilogInputNumberComponent {
48
50
  }
49
51
  else {
50
52
  if (this.cilogInputNumber.nativeElement.selectionStart != this.cilogInputNumber.nativeElement.selectionEnd) {
51
- next = [current.slice(0, positionStart), current.slice(positionEnd)].join('').replace(/\s/g, '');
53
+ next = [debut, fin].join('').replace(/\s/g, '');
52
54
  }
53
55
  else {
54
- next = [current.slice(0, positionStart - 1), current.slice(positionEnd)].join('').replace(/\s/g, '');
56
+ debut = current.slice(0, positionStart - 1).replace(/\s/g, '');
57
+ next = [debut, fin].join('').replace(/\s/g, '');
55
58
  }
56
59
  this.checkValue(next, event);
57
60
  }
@@ -61,7 +64,7 @@ export class CilogInputNumberComponent {
61
64
  this.cilogInputNumber.nativeElement.selectionStart += 1;
62
65
  }
63
66
  else {
64
- next = [current.slice(0, positionStart), event.key, current.slice(positionEnd)].join('').replace(/\s/g, '');
67
+ next = [debut, event.key, fin].join('').replace(/\s/g, '');
65
68
  this.checkValue(next, event);
66
69
  }
67
70
  }
@@ -86,12 +89,7 @@ export class CilogInputNumberComponent {
86
89
  const positionStart = this.cilogInputNumber.nativeElement.selectionStart;
87
90
  const positionEnd = this.cilogInputNumber.nativeElement.selectionEnd;
88
91
  if (value != '') {
89
- if (this.maxDecimals != null) {
90
- this.cilogInputNumber.nativeElement.value = (+value.replace(',', '.')).toLocaleString('fr-FR', { maximumFractionDigits: this.maxDecimals });
91
- }
92
- else {
93
- this.cilogInputNumber.nativeElement.value = (+value.replace(',', '.')).toLocaleString('fr-FR');
94
- }
92
+ this.cilogInputNumber.nativeElement.value = (+(value.replace(',', '.'))).toString();
95
93
  if (value.slice(-1) == ',') {
96
94
  this.cilogInputNumber.nativeElement.value += ',';
97
95
  }
@@ -99,14 +97,16 @@ export class CilogInputNumberComponent {
99
97
  else {
100
98
  this.cilogInputNumber.nativeElement.value = '';
101
99
  }
102
- if (positionStart == positionEnd) {
103
- this.cilogInputNumber.nativeElement.selectionStart = event.key != 'Backspace' ? (positionStart + 1) : (positionStart - 1);
104
- this.cilogInputNumber.nativeElement.selectionEnd = event.key != 'Backspace' ? (positionStart + 1) : (positionStart - 1);
105
- }
106
- else {
107
- this.cilogInputNumber.nativeElement.selectionStart = positionStart;
108
- this.cilogInputNumber.nativeElement.selectionEnd = positionStart;
109
- }
100
+ setTimeout(() => {
101
+ if (positionStart == positionEnd) {
102
+ this.cilogInputNumber.nativeElement.selectionStart = event.key != 'Backspace' ? (positionStart + 1) : (positionStart - 1);
103
+ this.cilogInputNumber.nativeElement.selectionEnd = event.key != 'Backspace' ? (positionStart + 1) : (positionStart - 1);
104
+ }
105
+ else {
106
+ this.cilogInputNumber.nativeElement.selectionStart = positionStart;
107
+ this.cilogInputNumber.nativeElement.selectionEnd = positionStart;
108
+ }
109
+ });
110
110
  if (this.cilogInputNumber.nativeElement.value.replace(/\s/g, '') == '' || this.cilogInputNumber.nativeElement.value.replace(/\s/g, '') == '-') {
111
111
  this.writeValue(null);
112
112
  }
@@ -122,11 +122,11 @@ export class CilogInputNumberComponent {
122
122
  this.valueStr = '';
123
123
  }
124
124
  else {
125
- if (this.maxDecimals != null) {
126
- this.valueStr = this.value.toLocaleString('fr-FR', { maximumFractionDigits: this.maxDecimals });
125
+ if (this.maxDecimals != null && this.value.toString().split('.').length > 1 && this.value.toString().split('.')[1].length > this.maxDecimals) {
126
+ this.valueStr = this.value.toFixed(this.maxDecimals).replace('.', ',');
127
127
  }
128
128
  else {
129
- this.valueStr = this.value.toLocaleString('fr-FR');
129
+ this.valueStr = this.value.toString().replace('.', ',');
130
130
  }
131
131
  }
132
132
  }
@@ -191,4 +191,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImpor
191
191
  type: HostListener,
192
192
  args: ['keydown', ['$event']]
193
193
  }] } });
194
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2lsb2ctaW5wdXQtbnVtYmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NpbG9nLWxpYi9zcmMvbGliL3ZpZXdzL2NpbG9nLWlucHV0LW51bWJlci9jaWxvZy1pbnB1dC1udW1iZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2lsb2ctbGliL3NyYy9saWIvdmlld3MvY2lsb2ctaW5wdXQtbnVtYmVyL2NpbG9nLWlucHV0LW51bWJlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hJLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQWN6RSxNQUFNLE9BQU8seUJBQXlCO0lBdUJsQztRQVpVLFlBQU8sR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUMzRCxhQUFRLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFDNUQsWUFBTyxHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO1FBQzNELFdBQU0sR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUVwRSxhQUFRLEdBQVcsRUFBRSxDQUFDO1FBS2QsZ0JBQVcsR0FBa0IsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFFdkUsQ0FBQztJQUVqQixRQUFRO1FBQ0osSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLE1BQU0sQ0FBQyxtQ0FBbUMsSUFBSSxDQUFDLFdBQVcsSUFBSSxRQUFRLHVDQUF1QyxJQUFJLENBQUMsV0FBVyxJQUFJLFFBQVEsSUFBSSxDQUFDLENBQUM7SUFDcEssQ0FBQztJQUdE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QUMsR0FBVyxJQUFJLENBQUM7SUFFOUIsY0FBYyxLQUFLLENBQUM7SUFFcEIsZ0JBQWdCLENBQUMsRUFBYztRQUMzQixJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBYztRQUM1QixJQUFJLENBQUMsY0FBYyxHQUFHLEVBQUUsQ0FBQztJQUM3QixDQUFDOztzSEFyS1EseUJBQXlCOzBHQUF6Qix5QkFBeUIsb1ZBUnZCO1FBQ1A7WUFDSSxPQUFPLEVBQUUsaUJBQWlCO1lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMseUJBQXlCLENBQUM7WUFDeEQsS0FBSyxFQUFFLElBQUk7U0FDZDtLQUNKLGdKQ2JMLHl5QkFzQkE7MkZEUGEseUJBQXlCO2tCQVpyQyxTQUFTOytCQUNJLG9CQUFvQixhQUduQjt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSwwQkFBMEIsQ0FBQzs0QkFDeEQsS0FBSyxFQUFFLElBQUk7eUJBQ2Q7cUJBQ0o7MEVBTVEsR0FBRztzQkFBWCxLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFFSSxPQUFPO3NCQUFoQixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csT0FBTztzQkFBaEIsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU07Z0JBSXdCLGdCQUFnQjtzQkFBOUMsU0FBUzt1QkFBQyxrQkFBa0I7Z0JBWTdCLGNBQWM7c0JBRGIsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgZm9yd2FyZFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnY2lsb2ctaW5wdXQtbnVtYmVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY2lsb2ctaW5wdXQtbnVtYmVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jaWxvZy1pbnB1dC1udW1iZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBDaWxvZ0lucHV0TnVtYmVyQ29tcG9uZW50KSxcclxuICAgICAgICAgICAgbXVsdGk6IHRydWVcclxuICAgICAgICB9XHJcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIENpbG9nSW5wdXROdW1iZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcblxuICAgIHZhbHVlOiBudW1iZXI7XG5cbiAgICBASW5wdXQoKSBtaW46IG51bWJlcjtcclxuICAgIEBJbnB1dCgpIG1heDogbnVtYmVyO1xuICAgIEBJbnB1dCgpIG1heERlY2ltYWxzOiBudW1iZXI7XG4gICAgQElucHV0KCkgcHJlZml4ZTogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHN1ZmZpeGU6IHN0cmluZztcbiAgICBASW5wdXQoKSBpbnB1dFN0eWxlQ2xhc3M6IHN0cmluZztcblxuICAgIEBPdXRwdXQoKSBvbklucHV0OiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuICAgIEBPdXRwdXQoKSBvbkNoYW5nZTogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcbiAgICBAT3V0cHV0KCkgb25Gb2N1czogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcbiAgICBAT3V0cHV0KCkgb25CbHVyOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gICAgdmFsdWVTdHI6IHN0cmluZyA9ICcnO1xuXG4gICAgQFZpZXdDaGlsZCgnY2lsb2dJbnB1dE51bWJlcicpIGNpbG9nSW5wdXROdW1iZXI6IEVsZW1lbnRSZWY7XG5cbiAgICBwcml2YXRlIHJlZ2V4OiBSZWdFeHA7XG4gICAgcHJpdmF0ZSBzcGVjaWFsS2V5czogQXJyYXk8c3RyaW5nPiA9IFsnVGFiJywgJ0VuZCcsICdIb21lJywgJ0Fycm93TGVmdCcsICdBcnJvd1JpZ2h0J107XG5cbiAgICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5yZWdleCA9IG5ldyBSZWdFeHAoYF4tP1xcXFxkezEsM30oPzpcXFxcZHszfSkqKFxcXFwuXFxcXGR7MCwke3RoaXMubWF4RGVjaW1hbHMgfHwgSW5maW5pdHl9fSk/JHxeLT9cXFxcZHsxLDN9KD86XFxcXGR7M30pKlxcXFwsXFxcXGR7MCwke3RoaXMubWF4RGVjaW1hbHMgfHwgSW5maW5pdHl9fSRgKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcbiAgICBvbktleURvd25FdmVudChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuXG4gICAgICAgIGlmICh0aGlzLnNwZWNpYWxLZXlzLmluZGV4T2YoZXZlbnQua2V5KSAhPT0gLTEpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChldmVudC5rZXkgPT0gJ0VudGVyJykge1xyXG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlSW5wdXQodGhpcy52YWx1ZSk7XHJcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cblxuICAgICAgICBsZXQgY3VycmVudDogc3RyaW5nID0gdGhpcy5jaWxvZ0lucHV0TnVtYmVyLm5hdGl2ZUVsZW1lbnQudmFsdWU7XG5cbiAgICAgICAgY29uc3QgcG9zaXRpb25TdGFydCA9IHRoaXMuY2lsb2dJbnB1dE51bWJlci5uYXRpdmVFbGVtZW50LnNlbGVjdGlvblN0YXJ0O1xuICAgICAgICBjb25zdCBwb3NpdGlvbkVuZCA9IHRoaXMuY2lsb2dJbnB1dE51bWJlci5uYXRpdmVFbGVtZW50LnNlbGVjdGlvbkVuZDtcblxuICAgICAgICBsZXQgbmV4dDogc3RyaW5nID0gY3VycmVudDtcbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJy4nKSB7XG4gICAgICAgICAgICBsZXQgcG9zaXRpb25TdGFydFBvaW50OiBudW1iZXIgPSB0aGlzLmNpbG9nSW5wdXROdW1iZXIubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25TdGFydDtcbiAgICAgICAgICAgIG5leHQgPSBbY3VycmVudC5zbGljZSgwLCBwb3NpdGlvblN0YXJ0KSwgJywnLCBjdXJyZW50LnNsaWNlKHBvc2l0aW9uRW5kKV0uam9pbignJykucmVwbGFjZSgvXFxzL2csICcnKTtcbiAgICAgICAgICAgIGlmIChTdHJpbmcobmV4dCkubWF0Y2godGhpcy5yZWdleCkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuYWNjZXB0VmFsdWUobmV4dCwgZmFsc2UpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmIChjdXJyZW50LnNsaWNlKHBvc2l0aW9uU3RhcnQpWzBdID09ICcsJykge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2lsb2dJbnB1dE51bWJlci5uYXRpdmVFbGVtZW50LnNlbGVjdGlvblN0YXJ0ID0gcG9zaXRpb25TdGFydFBvaW50ICsgMTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jaWxvZ0lucHV0TnVtYmVyLm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uRW5kID0gcG9zaXRpb25TdGFydFBvaW50ICsgMTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gJ0JhY2tzcGFjZScpIHtcbiAgICAgICAgICAgIGlmIChwb3NpdGlvblN0YXJ0ID09IHBvc2l0aW9uRW5kICYmIC9cXHMvZy50ZXN0KGN1cnJlbnQuc2xpY2UocG9zaXRpb25TdGFydCAtIDEsIHBvc2l0aW9uU3RhcnQpKSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jaWxvZ0lucHV0TnVtYmVyLm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgPSBwb3NpdGlvblN0YXJ0IC0gMTtcbiAgICAgICAgICAgICAgICB0aGlzLmNpbG9nSW5wdXROdW1iZXIubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25FbmQgPSBwb3NpdGlvblN0YXJ0IC0gMTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jaWxvZ0lucHV0TnVtYmVyLm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgIT0gdGhpcy5jaWxvZ0lucHV0TnVtYmVyLm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uRW5kKSB7XG4gICAgICAgICAgICAgICAgICAgIG5leHQgPSBbY3VycmVudC5zbGljZSgwLCBwb3NpdGlvblN0YXJ0KSwgY3VycmVudC5zbGljZShwb3NpdGlvbkVuZCldLmpvaW4oJycpLnJlcGxhY2UoL1xccy9nLCAnJyk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBuZXh0ID0gW2N1cnJlbnQuc2xpY2UoMCwgcG9zaXRpb25TdGFydCAtIDEpLCBjdXJyZW50LnNsaWNlKHBvc2l0aW9uRW5kKV0uam9pbignJykucmVwbGFjZSgvXFxzL2csICcnKTtcclxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmNoZWNrVmFsdWUobmV4dCwgZXZlbnQpO1xyXG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnLCcgJiYgY3VycmVudC5zbGljZShwb3NpdGlvblN0YXJ0KVswXSA9PSAnLCcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNpbG9nSW5wdXROdW1iZXIubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25TdGFydCArPSAxO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG5leHQgPSBbY3VycmVudC5zbGljZSgwLCBwb3NpdGlvblN0YXJ0KSwgZXZlbnQua2V5LCBjdXJyZW50LnNsaWNlKHBvc2l0aW9uRW5kKV0uam9pbignJykucmVwbGFjZSgvXFxzL2csICcnKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNoZWNrVmFsdWUobmV4dCwgZXZlbnQpO1xyXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICBjaGVja1ZhbHVlKG5leHQ6IHN0cmluZywgZXZlbnQpIHtcbiAgICAgICAgaWYgKCFTdHJpbmcobmV4dCkubWF0Y2godGhpcy5yZWdleCkpIHtcbiAgICAgICAgICAgIGlmIChuZXh0ID09ICcnKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hY2NlcHRWYWx1ZShuZXh0LCBldmVudCk7XHJcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxldCBudW1iZXI6IG51bWJlciA9ICsobmV4dC5yZXBsYWNlKCcsJywgJy4nKSk7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLm1pbiA9PSBudWxsIHx8IG51bWJlciA+PSB0aGlzLm1pbikge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubWF4ID09IG51bGwgfHwgbnVtYmVyIDw9IHRoaXMubWF4KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWNjZXB0VmFsdWUobmV4dCwgZXZlbnQpO1xuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cblxuICAgIGFjY2VwdFZhbHVlKHZhbHVlOiBzdHJpbmcsIGV2ZW50KSB7XG4gICAgICAgIGNvbnN0IHBvc2l0aW9uU3RhcnQgPSB0aGlzLmNpbG9nSW5wdXROdW1iZXIubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25TdGFydDtcbiAgICAgICAgY29uc3QgcG9zaXRpb25FbmQgPSB0aGlzLmNpbG9nSW5wdXROdW1iZXIubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25FbmQ7XG5cbiAgICAgICAgaWYgKHZhbHVlICE9ICcnKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5tYXhEZWNpbWFscyAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNpbG9nSW5wdXROdW1iZXIubmF0aXZlRWxlbWVudC52YWx1ZSA9ICgrdmFsdWUucmVwbGFjZSgnLCcsICcuJykpLnRvTG9jYWxlU3RyaW5nKCdmci1GUicsIHsgbWF4aW11bUZyYWN0aW9uRGlnaXRzOiB0aGlzLm1heERlY2ltYWxzIH0pO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jaWxvZ0lucHV0TnVtYmVyLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAoK3ZhbHVlLnJlcGxhY2UoJywnLCAnLicpKS50b0xvY2FsZVN0cmluZygnZnItRlInKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAodmFsdWUuc2xpY2UoLTEpID09ICcsJykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jaWxvZ0lucHV0TnVtYmVyLm5hdGl2ZUVsZW1lbnQudmFsdWUgKz0gJywnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuY2lsb2dJbnB1dE51bWJlci5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XHJcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwb3NpdGlvblN0YXJ0ID09IHBvc2l0aW9uRW5kKSB7XG5cbiAgICAgICAgICAgIHRoaXMuY2lsb2dJbnB1dE51bWJlci5uYXRpdmVFbGVtZW50LnNlbGVjdGlvblN0YXJ0ID0gZXZlbnQua2V5ICE9ICdCYWNrc3BhY2UnID8gKHBvc2l0aW9uU3RhcnQgKyAxKSA6IChwb3NpdGlvblN0YXJ0IC0gMSk7XHJcbiAgICAgICAgICAgIHRoaXMuY2lsb2dJbnB1dE51bWJlci5uYXRpdmVFbGVtZW50LnNlbGVjdGlvbkVuZCA9IGV2ZW50LmtleSAhPSAnQmFja3NwYWNlJyA/IChwb3NpdGlvblN0YXJ0ICsgMSkgOiAocG9zaXRpb25TdGFydCAtIDEpO1xyXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmNpbG9nSW5wdXROdW1iZXIubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25TdGFydCA9IHBvc2l0aW9uU3RhcnQ7XHJcbiAgICAgICAgICAgIHRoaXMuY2lsb2dJbnB1dE51bWJlci5uYXRpdmVFbGVtZW50LnNlbGVjdGlvbkVuZCA9IHBvc2l0aW9uU3RhcnQ7XHJcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmNpbG9nSW5wdXROdW1iZXIubmF0aXZlRWxlbWVudC52YWx1ZS5yZXBsYWNlKC9cXHMvZywgJycpID09ICcnIHx8IHRoaXMuY2lsb2dJbnB1dE51bWJlci5uYXRpdmVFbGVtZW50LnZhbHVlLnJlcGxhY2UoL1xccy9nLCAnJykgPT0gJy0nKSB7XHJcbiAgICAgICAgICAgIHRoaXMud3JpdGVWYWx1ZShudWxsKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLndyaXRlVmFsdWUoKyh0aGlzLmNpbG9nSW5wdXROdW1iZXIubmF0aXZlRWxlbWVudC52YWx1ZS5yZXBsYWNlKCcsJywgJy4nKS5yZXBsYWNlQWxsKC9cXHMvZywgJycpKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMub25DaGFuZ2VJbnB1dCh0aGlzLnZhbHVlKTtcclxuICAgICAgICB0aGlzLm9uSW5wdXQuZW1pdCh0aGlzLnZhbHVlKTtcclxuICAgIH1cblxuICAgIHdyaXRlVmFsdWUodmFsdWU6IG51bWJlcik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgaWYgKHRoaXMudmFsdWUgPT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy52YWx1ZVN0ciA9ICcnO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLm1heERlY2ltYWxzICE9IG51bGwpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudmFsdWVTdHIgPSB0aGlzLnZhbHVlLnRvTG9jYWxlU3RyaW5nKCdmci1GUicsIHsgbWF4aW11bUZyYWN0aW9uRGlnaXRzOiB0aGlzLm1heERlY2ltYWxzIH0pO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy52YWx1ZVN0ciA9IHRoaXMudmFsdWUudG9Mb2NhbGVTdHJpbmcoJ2ZyLUZSJyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XG5cbiAgICBvbkJsdXJFdmVudChldmVudCkge1xyXG4gICAgICAgIHRoaXMub25DaGFuZ2VJbnB1dCh0aGlzLnZhbHVlKTtcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XHJcbiAgICAgICAgdGhpcy5vbkJsdXIuZW1pdCh0aGlzLnZhbHVlKTtcclxuICAgIH1cblxuICAgIG9uRm9jdXNFdmVudChldmVudCkge1xyXG4gICAgICAgIHRoaXMub25Gb2N1cy5lbWl0KHRoaXMudmFsdWUpO1xyXG4gICAgfVxuXHJcbiAgICBvbkNoYW5nZUlucHV0KHZhbDogbnVtYmVyKSB7IH1cclxuXHJcbiAgICBvblRvdWNoZWRJbnB1dCgpIHsgfVxyXG5cclxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlSW5wdXQgPSBmbjtcclxuICAgIH1cclxuXHJcbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMub25Ub3VjaGVkSW5wdXQgPSBmbjtcclxuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cCB3LWZ1bGxcIj5cclxuXHJcbiAgICA8c3BhbiBjbGFzcz1cImlucHV0LWdyb3VwLWFkZG9uIHByZWZpeGVcIlxyXG4gICAgICAgICAgKm5nSWY9XCJwcmVmaXhlICE9IG51bGxcIj5cclxuICAgICAgICB7eyBwcmVmaXhlIH19XHJcbiAgICA8L3NwYW4+XHJcblxyXG4gICAgPGlucHV0ICNjaWxvZ0lucHV0TnVtYmVyXHJcbiAgICAgICAgICAgcElucHV0VGV4dFxyXG4gICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICBbdmFsdWVdPVwidmFsdWVTdHJcIlxyXG4gICAgICAgICAgIChmb2N1cyk9XCJvbkZvY3VzRXZlbnQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgKGJsdXIpPVwib25CbHVyRXZlbnQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgW2NsYXNzXT1cIid3LWZ1bGwgei0xJyArIChpbnB1dFN0eWxlQ2xhc3MgPT0gbnVsbCA/ICcnIDogJyAnICsgaW5wdXRTdHlsZUNsYXNzKVwiXHJcbiAgICAgICAgICAgW25nQ2xhc3NdPVwic3VmZml4ZSAhPSBudWxsICYmIHByZWZpeGUgIT0gbnVsbCA/ICdib3JkZXItbm9yb3VuZCcgOiBwcmVmaXhlICE9IG51bGwgPyAnYm9yZGVyLW5vcm91bmQtbGVmdCcgOiBzdWZmaXhlICE9IG51bGwgPyAnYm9yZGVyLW5vcm91bmQtcmlnaHQnIDogbnVsbFwiIC8+XHJcblxyXG4gICAgPHNwYW4gY2xhc3M9XCJpbnB1dC1ncm91cC1hZGRvbiBzdWZmaXhlXCJcclxuICAgICAgICAgICpuZ0lmPVwic3VmZml4ZSAhPSBudWxsXCI+XHJcbiAgICAgICAge3sgc3VmZml4ZSB9fVxyXG4gICAgPC9zcGFuPlxyXG5cclxuPC9kaXY+XHJcbiJdfQ==
194
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2lsb2ctaW5wdXQtbnVtYmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NpbG9nLWxpYi9zcmMvbGliL3ZpZXdzL2NpbG9nLWlucHV0LW51bWJlci9jaWxvZy1pbnB1dC1udW1iZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2lsb2ctbGliL3NyYy9saWIvdmlld3MvY2lsb2ctaW5wdXQtbnVtYmVyL2NpbG9nLWlucHV0LW51bWJlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hJLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQWN6RSxNQUFNLE9BQU8seUJBQXlCO0lBdUJsQztRQVpVLFlBQU8sR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUMzRCxhQUFRLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFDNUQsWUFBTyxHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO1FBQzNELFdBQU0sR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUVwRSxhQUFRLEdBQVcsRUFBRSxDQUFDO1FBS2QsZ0JBQVcsR0FBa0IsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFFdkUsQ0FBQztJQUVqQixRQUFRO1FBQ0osSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLE1BQU0sQ0FBQyxtQ0FBbUMsSUFBSSxDQUFDLFdBQVcsSUFBSSxRQUFRLHVDQUF1QyxJQUFJLENBQUMsV0FBVyxJQUFJLFFBQVEsSUFBSSxDQUFDLENBQUM7SUFDcEssQ0FBQztJQUdE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Q29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgZm9yd2FyZFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnY2lsb2ctaW5wdXQtbnVtYmVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY2lsb2ctaW5wdXQtbnVtYmVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jaWxvZy1pbnB1dC1udW1iZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBDaWxvZ0lucHV0TnVtYmVyQ29tcG9uZW50KSxcclxuICAgICAgICAgICAgbXVsdGk6IHRydWVcclxuICAgICAgICB9XHJcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIENpbG9nSW5wdXROdW1iZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcblxuICAgIHZhbHVlOiBudW1iZXI7XG5cbiAgICBASW5wdXQoKSBtaW46IG51bWJlcjtcclxuICAgIEBJbnB1dCgpIG1heDogbnVtYmVyO1xuICAgIEBJbnB1dCgpIG1heERlY2ltYWxzOiBudW1iZXI7XG4gICAgQElucHV0KCkgcHJlZml4ZTogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHN1ZmZpeGU6IHN0cmluZztcbiAgICBASW5wdXQoKSBpbnB1dFN0eWxlQ2xhc3M6IHN0cmluZztcblxuICAgIEBPdXRwdXQoKSBvbklucHV0OiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuICAgIEBPdXRwdXQoKSBvbkNoYW5nZTogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcbiAgICBAT3V0cHV0KCkgb25Gb2N1czogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcbiAgICBAT3V0cHV0KCkgb25CbHVyOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gICAgdmFsdWVTdHI6IHN0cmluZyA9ICcnO1xuXG4gICAgQFZpZXdDaGlsZCgnY2lsb2dJbnB1dE51bWJlcicpIGNpbG9nSW5wdXROdW1iZXI6IEVsZW1lbnRSZWY7XG5cbiAgICBwcml2YXRlIHJlZ2V4OiBSZWdFeHA7XG4gICAgcHJpdmF0ZSBzcGVjaWFsS2V5czogQXJyYXk8c3RyaW5nPiA9IFsnVGFiJywgJ0VuZCcsICdIb21lJywgJ0Fycm93TGVmdCcsICdBcnJvd1JpZ2h0J107XG5cbiAgICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5yZWdleCA9IG5ldyBSZWdFeHAoYF4tP1xcXFxkezEsM30oPzpcXFxcZHszfSkqKFxcXFwuXFxcXGR7MCwke3RoaXMubWF4RGVjaW1hbHMgfHwgSW5maW5pdHl9fSk/JHxeLT9cXFxcZHsxLDN9KD86XFxcXGR7M30pKlxcXFwsXFxcXGR7MCwke3RoaXMubWF4RGVjaW1hbHMgfHwgSW5maW5pdHl9fSRgKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcbiAgICBvbktleURvd25FdmVudChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuXG4gICAgICAgIGlmICh0aGlzLnNwZWNpYWxLZXlzLmluZGV4T2YoZXZlbnQua2V5KSAhPT0gLTEpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChldmVudC5rZXkgPT0gJ0VudGVyJykge1xyXG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlSW5wdXQodGhpcy52YWx1ZSk7XHJcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cblxuICAgICAgICBsZXQgY3VycmVudDogc3RyaW5nID0gdGhpcy5jaWxvZ0lucHV0TnVtYmVyLm5hdGl2ZUVsZW1lbnQudmFsdWU7XG5cbiAgICAgICAgY29uc3QgcG9zaXRpb25TdGFydCA9IHRoaXMuY2lsb2dJbnB1dE51bWJlci5uYXRpdmVFbGVtZW50LnNlbGVjdGlvblN0YXJ0O1xuICAgICAgICBjb25zdCBwb3NpdGlvbkVuZCA9IHRoaXMuY2lsb2dJbnB1dE51bWJlci5uYXRpdmVFbGVtZW50LnNlbGVjdGlvbkVuZDtcblxuICAgICAgICBsZXQgZGVidXQ6IHN0cmluZyA9IGN1cnJlbnQuc2xpY2UoMCwgcG9zaXRpb25TdGFydCkucmVwbGFjZSgvXFxzL2csICcnKTtcbiAgICAgICAgbGV0IGZpbjogc3RyaW5nID0gY3VycmVudC5zbGljZShwb3NpdGlvbkVuZCkucmVwbGFjZSgvXFxzL2csICcnKTtcblxuICAgICAgICBsZXQgbmV4dDogc3RyaW5nID0gY3VycmVudDtcbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJy4nKSB7XG4gICAgICAgICAgICBsZXQgcG9zaXRpb25TdGFydFBvaW50OiBudW1iZXIgPSB0aGlzLmNpbG9nSW5wdXROdW1iZXIubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25TdGFydDtcbiAgICAgICAgICAgIG5leHQgPSBbZGVidXQsICcsJywgZmluXS5qb2luKCcnKS5yZXBsYWNlKC9cXHMvZywgJycpO1xuICAgICAgICAgICAgaWYgKFN0cmluZyhuZXh0KS5tYXRjaCh0aGlzLnJlZ2V4KSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5hY2NlcHRWYWx1ZShuZXh0LCBmYWxzZSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKGN1cnJlbnQuc2xpY2UocG9zaXRpb25TdGFydClbMF0gPT0gJywnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jaWxvZ0lucHV0TnVtYmVyLm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgPSBwb3NpdGlvblN0YXJ0UG9pbnQgKyAxO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNpbG9nSW5wdXROdW1iZXIubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25FbmQgPSBwb3NpdGlvblN0YXJ0UG9pbnQgKyAxO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5ID09PSAnQmFja3NwYWNlJykge1xuICAgICAgICAgICAgaWYgKHBvc2l0aW9uU3RhcnQgPT0gcG9zaXRpb25FbmQgJiYgL1xccy9nLnRlc3QoY3VycmVudC5zbGljZShwb3NpdGlvblN0YXJ0IC0gMSwgcG9zaXRpb25TdGFydCkpKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNpbG9nSW5wdXROdW1iZXIubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25TdGFydCA9IHBvc2l0aW9uU3RhcnQgLSAxO1xuICAgICAgICAgICAgICAgIHRoaXMuY2lsb2dJbnB1dE51bWJlci5uYXRpdmVFbGVtZW50LnNlbGVjdGlvbkVuZCA9IHBvc2l0aW9uU3RhcnQgLSAxO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmNpbG9nSW5wdXROdW1iZXIubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25TdGFydCAhPSB0aGlzLmNpbG9nSW5wdXROdW1iZXIubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25FbmQpIHtcbiAgICAgICAgICAgICAgICAgICAgbmV4dCA9IFtkZWJ1dCwgZmluXS5qb2luKCcnKS5yZXBsYWNlKC9cXHMvZywgJycpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgZGVidXQgPSBjdXJyZW50LnNsaWNlKDAsIHBvc2l0aW9uU3RhcnQgLSAxKS5yZXBsYWNlKC9cXHMvZywgJycpO1xuICAgICAgICAgICAgICAgICAgICBuZXh0ID0gW2RlYnV0LCBmaW5dLmpvaW4oJycpLnJlcGxhY2UoL1xccy9nLCAnJyk7XHJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5jaGVja1ZhbHVlKG5leHQsIGV2ZW50KTtcclxuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJywnICYmIGN1cnJlbnQuc2xpY2UocG9zaXRpb25TdGFydClbMF0gPT0gJywnKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jaWxvZ0lucHV0TnVtYmVyLm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgKz0gMTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBuZXh0ID0gW2RlYnV0LCBldmVudC5rZXksIGZpbl0uam9pbignJykucmVwbGFjZSgvXFxzL2csICcnKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNoZWNrVmFsdWUobmV4dCwgZXZlbnQpO1xyXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cblxuICAgIGNoZWNrVmFsdWUobmV4dDogc3RyaW5nLCBldmVudCkge1xuICAgICAgICBpZiAoIVN0cmluZyhuZXh0KS5tYXRjaCh0aGlzLnJlZ2V4KSkge1xuICAgICAgICAgICAgaWYgKG5leHQgPT0gJycpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFjY2VwdFZhbHVlKG5leHQsIGV2ZW50KTtcclxuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbGV0IG51bWJlcjogbnVtYmVyID0gKyhuZXh0LnJlcGxhY2UoJywnLCAnLicpKTtcclxuICAgICAgICAgICAgaWYgKHRoaXMubWluID09IG51bGwgfHwgbnVtYmVyID49IHRoaXMubWluKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5tYXggPT0gbnVsbCB8fCBudW1iZXIgPD0gdGhpcy5tYXgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hY2NlcHRWYWx1ZShuZXh0LCBldmVudCk7XG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxuXG4gICAgYWNjZXB0VmFsdWUodmFsdWU6IHN0cmluZywgZXZlbnQpIHtcbiAgICAgICAgY29uc3QgcG9zaXRpb25TdGFydCA9IHRoaXMuY2lsb2dJbnB1dE51bWJlci5uYXRpdmVFbGVtZW50LnNlbGVjdGlvblN0YXJ0O1xuICAgICAgICBjb25zdCBwb3NpdGlvbkVuZCA9IHRoaXMuY2lsb2dJbnB1dE51bWJlci5uYXRpdmVFbGVtZW50LnNlbGVjdGlvbkVuZDtcbiAgICAgICAgXG4gICAgICAgIGlmICh2YWx1ZSAhPSAnJykge1xuICAgICAgICAgICAgdGhpcy5jaWxvZ0lucHV0TnVtYmVyLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAoKyh2YWx1ZS5yZXBsYWNlKCcsJywgJy4nKSkpLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgIGlmICh2YWx1ZS5zbGljZSgtMSkgPT0gJywnKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNpbG9nSW5wdXROdW1iZXIubmF0aXZlRWxlbWVudC52YWx1ZSArPSAnLCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jaWxvZ0lucHV0TnVtYmVyLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcclxuICAgICAgICB9XG5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBpZiAocG9zaXRpb25TdGFydCA9PSBwb3NpdGlvbkVuZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuY2lsb2dJbnB1dE51bWJlci5uYXRpdmVFbGVtZW50LnNlbGVjdGlvblN0YXJ0ID0gZXZlbnQua2V5ICE9ICdCYWNrc3BhY2UnID8gKHBvc2l0aW9uU3RhcnQgKyAxKSA6IChwb3NpdGlvblN0YXJ0IC0gMSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNpbG9nSW5wdXROdW1iZXIubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25FbmQgPSBldmVudC5rZXkgIT0gJ0JhY2tzcGFjZScgPyAocG9zaXRpb25TdGFydCArIDEpIDogKHBvc2l0aW9uU3RhcnQgLSAxKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNpbG9nSW5wdXROdW1iZXIubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25TdGFydCA9IHBvc2l0aW9uU3RhcnQ7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNpbG9nSW5wdXROdW1iZXIubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25FbmQgPSBwb3NpdGlvblN0YXJ0O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHRoaXMuY2lsb2dJbnB1dE51bWJlci5uYXRpdmVFbGVtZW50LnZhbHVlLnJlcGxhY2UoL1xccy9nLCAnJykgPT0gJycgfHwgdGhpcy5jaWxvZ0lucHV0TnVtYmVyLm5hdGl2ZUVsZW1lbnQudmFsdWUucmVwbGFjZSgvXFxzL2csICcnKSA9PSAnLScpIHtcclxuICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKG51bGwpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMud3JpdGVWYWx1ZSgrKHRoaXMuY2lsb2dJbnB1dE51bWJlci5uYXRpdmVFbGVtZW50LnZhbHVlLnJlcGxhY2UoJywnLCAnLicpLnJlcGxhY2VBbGwoL1xccy9nLCAnJykpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZUlucHV0KHRoaXMudmFsdWUpO1xyXG4gICAgICAgIHRoaXMub25JbnB1dC5lbWl0KHRoaXMudmFsdWUpO1xyXG4gICAgfVxuXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogbnVtYmVyKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgICAgICBpZiAodGhpcy52YWx1ZSA9PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlU3RyID0gJyc7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMubWF4RGVjaW1hbHMgIT0gbnVsbCAmJiB0aGlzLnZhbHVlLnRvU3RyaW5nKCkuc3BsaXQoJy4nKS5sZW5ndGggPiAxICYmIHRoaXMudmFsdWUudG9TdHJpbmcoKS5zcGxpdCgnLicpWzFdLmxlbmd0aCA+IHRoaXMubWF4RGVjaW1hbHMpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudmFsdWVTdHIgPSB0aGlzLnZhbHVlLnRvRml4ZWQodGhpcy5tYXhEZWNpbWFscykucmVwbGFjZSgnLicsICcsJyk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlU3RyID0gdGhpcy52YWx1ZS50b1N0cmluZygpLnJlcGxhY2UoJy4nLCAnLCcpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxuXG4gICAgb25CbHVyRXZlbnQoZXZlbnQpIHtcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlSW5wdXQodGhpcy52YWx1ZSk7XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZS5lbWl0KHRoaXMudmFsdWUpO1xyXG4gICAgICAgIHRoaXMub25CbHVyLmVtaXQodGhpcy52YWx1ZSk7XHJcbiAgICB9XG5cbiAgICBvbkZvY3VzRXZlbnQoZXZlbnQpIHtcclxuICAgICAgICB0aGlzLm9uRm9jdXMuZW1pdCh0aGlzLnZhbHVlKTtcclxuICAgIH1cblxyXG4gICAgb25DaGFuZ2VJbnB1dCh2YWw6IG51bWJlcikgeyB9XHJcblxyXG4gICAgb25Ub3VjaGVkSW5wdXQoKSB7IH1cclxuXHJcbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZUlucHV0ID0gZm47XHJcbiAgICB9XHJcblxyXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm9uVG91Y2hlZElucHV0ID0gZm47XHJcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAgdy1mdWxsXCI+XHJcblxyXG4gICAgPHNwYW4gY2xhc3M9XCJpbnB1dC1ncm91cC1hZGRvbiBwcmVmaXhlXCJcclxuICAgICAgICAgICpuZ0lmPVwicHJlZml4ZSAhPSBudWxsXCI+XHJcbiAgICAgICAge3sgcHJlZml4ZSB9fVxyXG4gICAgPC9zcGFuPlxyXG5cclxuICAgIDxpbnB1dCAjY2lsb2dJbnB1dE51bWJlclxyXG4gICAgICAgICAgIHBJbnB1dFRleHRcclxuICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgW3ZhbHVlXT1cInZhbHVlU3RyXCJcclxuICAgICAgICAgICAoZm9jdXMpPVwib25Gb2N1c0V2ZW50KCRldmVudClcIlxyXG4gICAgICAgICAgIChibHVyKT1cIm9uQmx1ckV2ZW50KCRldmVudClcIlxyXG4gICAgICAgICAgIFtjbGFzc109XCIndy1mdWxsIHotMScgKyAoaW5wdXRTdHlsZUNsYXNzID09IG51bGwgPyAnJyA6ICcgJyArIGlucHV0U3R5bGVDbGFzcylcIlxyXG4gICAgICAgICAgIFtuZ0NsYXNzXT1cInN1ZmZpeGUgIT0gbnVsbCAmJiBwcmVmaXhlICE9IG51bGwgPyAnYm9yZGVyLW5vcm91bmQnIDogcHJlZml4ZSAhPSBudWxsID8gJ2JvcmRlci1ub3JvdW5kLWxlZnQnIDogc3VmZml4ZSAhPSBudWxsID8gJ2JvcmRlci1ub3JvdW5kLXJpZ2h0JyA6IG51bGxcIiAvPlxyXG5cclxuICAgIDxzcGFuIGNsYXNzPVwiaW5wdXQtZ3JvdXAtYWRkb24gc3VmZml4ZVwiXHJcbiAgICAgICAgICAqbmdJZj1cInN1ZmZpeGUgIT0gbnVsbFwiPlxyXG4gICAgICAgIHt7IHN1ZmZpeGUgfX1cclxuICAgIDwvc3Bhbj5cclxuXHJcbjwvZGl2PlxyXG4iXX0=