@skyux/text-editor 9.13.1 → 9.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -429,4 +429,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
429
429
  type: HostBinding,
430
430
  args: ['class.sky-form-control']
431
431
  }] } });
432
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RleHQtZWRpdG9yL3NyYy9saWIvbW9kdWxlcy90ZXh0LWVkaXRvci90ZXh0LWVkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGV4dC1lZGl0b3Ivc3JjL2xpYi9tb2R1bGVzL3RleHQtZWRpdG9yL3RleHQtZWRpdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBRVQsV0FBVyxFQUNYLEtBQUssRUFDTCxNQUFNLEVBRU4sV0FBVyxFQUNYLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLFlBQVksRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNsRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDdEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM3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aW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgTmdab25lLFxuICBPbkRlc3Ryb3ksXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFNreUNvcmVBZGFwdGVyU2VydmljZSwgU2t5SWRTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuaW1wb3J0IHsgU2t5SW5wdXRCb3hIb3N0U2VydmljZSB9IGZyb20gJ0Bza3l1eC9mb3Jtcyc7XG5pbXBvcnQgeyBTa3lUb29sYmFyTW9kdWxlIH0gZnJvbSAnQHNreXV4L2xheW91dCc7XG5cbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2t5Rm9ybXNVdGlsaXR5IH0gZnJvbSAnLi4vc2hhcmVkL2Zvcm1zLXV0aWxpdHknO1xuXG5pbXBvcnQgeyBGT05UX0xJU1RfREVGQVVMVFMgfSBmcm9tICcuL2RlZmF1bHRzL2ZvbnQtbGlzdC1kZWZhdWx0cyc7XG5pbXBvcnQgeyBGT05UX1NJWkVfTElTVF9ERUZBVUxUUyB9IGZyb20gJy4vZGVmYXVsdHMvZm9udC1zaXplLWxpc3QtZGVmYXVsdHMnO1xuaW1wb3J0IHsgTElOS19XSU5ET1dfT1BUSU9OU19ERUZBVUxUUyB9IGZyb20gJy4vZGVmYXVsdHMvbGluay13aW5kb3ctb3B0aW9ucy1kZWZhdWx0cyc7XG5pbXBvcnQgeyBNRU5VX0RFRkFVTFRTIH0gZnJvbSAnLi9kZWZhdWx0cy9tZW51LWRlZmF1bHRzJztcbmltcG9ydCB7IFNUWUxFX1NUQVRFX0RFRkFVTFRTIH0gZnJvbSAnLi9kZWZhdWx0cy9zdHlsZS1zdGF0ZS1kZWZhdWx0cyc7XG5pbXBvcnQgeyBUT09MQkFSX0FDVElPTl9ERUZBVUxUUyB9IGZyb20gJy4vZGVmYXVsdHMvdG9vbGJhci1hY3Rpb24tZGVmYXVsdHMnO1xuaW1wb3J0IHsgU2t5VGV4dEVkaXRvck1lbnViYXJDb21wb25lbnQgfSBmcm9tICcuL21lbnViYXIvdGV4dC1lZGl0b3ItbWVudWJhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5VGV4dEVkaXRvckFkYXB0ZXJTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy90ZXh0LWVkaXRvci1hZGFwdGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2t5VGV4dEVkaXRvclNlbGVjdGlvblNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3RleHQtZWRpdG9yLXNlbGVjdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFNreVRleHRFZGl0b3JTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy90ZXh0LWVkaXRvci5zZXJ2aWNlJztcbmltcG9ydCB7IFNreVRleHRTYW5pdGl6YXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy90ZXh0LXNhbml0aXphdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFNreVRleHRFZGl0b3JUb29sYmFyQ29tcG9uZW50IH0gZnJvbSAnLi90b29sYmFyL3RleHQtZWRpdG9yLXRvb2xiYXIuY29tcG9uZW50JztcbmltcG9ydCB7IFNreVRleHRFZGl0b3JGb250IH0gZnJvbSAnLi90eXBlcy9mb250LXN0YXRlJztcbmltcG9ydCB7IFNreVRleHRFZGl0b3JMaW5rV2luZG93T3B0aW9uc1R5cGUgfSBmcm9tICcuL3R5cGVzL2xpbmstd2luZG93LW9wdGlvbnMtdHlwZSc7XG5pbXBvcnQgeyBTa3lUZXh0RWRpdG9yTWVudVR5cGUgfSBmcm9tICcuL3R5cGVzL21lbnUtdHlwZSc7XG5pbXBvcnQgeyBTa3lUZXh0RWRpdG9yU3R5bGVTdGF0ZSB9IGZyb20gJy4vdHlwZXMvc3R5bGUtc3RhdGUnO1xuaW1wb3J0IHsgU2t5VGV4dEVkaXRvck1lcmdlRmllbGQgfSBmcm9tICcuL3R5cGVzL3RleHQtZWRpdG9yLW1lcmdlLWZpZWxkJztcbmltcG9ydCB7IFNreVRleHRFZGl0b3JUb29sYmFyQWN0aW9uVHlwZSB9IGZyb20gJy4vdHlwZXMvdG9vbGJhci1hY3Rpb24tdHlwZSc7XG5cbi8qKlxuICogVGhlIHRleHQgZWRpdG9yIGNvbXBvbmVudCBsZXRzIHVzZXJzIGZvcm1hdCBhbmQgbWFuaXB1bGF0ZSB0ZXh0LlxuICovXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdza3ktdGV4dC1lZGl0b3InLFxuICB0ZW1wbGF0ZVVybDogJy4vdGV4dC1lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90ZXh0LWVkaXRvci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgU2t5VGV4dEVkaXRvclNlcnZpY2UsXG4gICAgU2t5VGV4dEVkaXRvclNlbGVjdGlvblNlcnZpY2UsXG4gICAgU2t5VGV4dEVkaXRvckFkYXB0ZXJTZXJ2aWNlLFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFNreVRleHRFZGl0b3JNZW51YmFyQ29tcG9uZW50LFxuICAgIFNreVRleHRFZGl0b3JUb29sYmFyQ29tcG9uZW50LFxuICAgIFNreVRvb2xiYXJNb2R1bGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNreVRleHRFZGl0b3JDb21wb25lbnRcbiAgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIENvbnRyb2xWYWx1ZUFjY2Vzc29yXG57XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHB1dCBmb2N1cyBvbiB0aGUgZWRpdG9yIGFmdGVyIGl0IHJlbmRlcnMuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgYXV0b2ZvY3VzOiBib29sZWFuIHwgdW5kZWZpbmVkID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZGlzYWJsZSB0aGUgdGV4dCBlZGl0b3Igb24gdGVtcGxhdGUtZHJpdmVuIGZvcm1zLiBEb24ndCB1c2UgdGhpcyBpbnB1dCBvbiByZWFjdGl2ZSBmb3JtcyBiZWNhdXNlIHRoZXkgbWF5IG92ZXJ3cml0ZSB0aGUgaW5wdXQgb3IgbGVhdmUgdGhlIGNvbnRyb2wgb3V0IG9mIHN5bmMuXG4gICAqIFRvIHNldCB0aGUgZGlzYWJsZWQgc3RhdGUgb24gcmVhY3RpdmUgZm9ybXMsIHVzZSB0aGUgYEZvcm1Db250cm9sYCBpbnN0ZWFkLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbiB8IHVuZGVmaW5lZCkge1xuICAgIGNvbnN0IGNvZXJjZWRWYWx1ZSA9IFNreUZvcm1zVXRpbGl0eS5jb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIGlmIChjb2VyY2VkVmFsdWUgIT09IHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuI19kaXNhYmxlZCA9IGNvZXJjZWRWYWx1ZTtcblxuICAgICAgLy8gVXBkYXRlIGZvY3VzYWJsZUNoaWxkcmVuIGluc2lkZSB0aGUgaWZyYW1lLlxuICAgICAgbGV0IGZvY3VzYWJsZUNoaWxkcmVuOiBIVE1MRWxlbWVudFtdO1xuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgIGlmICh0aGlzLmlmcmFtZVJlZikge1xuICAgICAgICBmb2N1c2FibGVDaGlsZHJlbiA9IHRoaXMuI2NvcmVBZGFwdGVyU2VydmljZS5nZXRGb2N1c2FibGVDaGlsZHJlbihcbiAgICAgICAgICB0aGlzLmlmcmFtZVJlZi5uYXRpdmVFbGVtZW50LmNvbnRlbnREb2N1bWVudC5ib2R5LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlnbm9yZVZpc2liaWxpdHk6IHRydWUsXG4gICAgICAgICAgICBpZ25vcmVUYWJJbmRleDogdHJ1ZSxcbiAgICAgICAgICB9XG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKHRoaXMuI19kaXNhYmxlZCkge1xuICAgICAgICAgIHRoaXMuI2FkYXB0ZXJTZXJ2aWNlLmRpc2FibGVFZGl0b3IoXG4gICAgICAgICAgICBmb2N1c2FibGVDaGlsZHJlbixcbiAgICAgICAgICAgIHRoaXMuaWZyYW1lUmVmLm5hdGl2ZUVsZW1lbnRcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuI2FkYXB0ZXJTZXJ2aWNlLmVuYWJsZUVkaXRvcihcbiAgICAgICAgICAgIGZvY3VzYWJsZUNoaWxkcmVuLFxuICAgICAgICAgICAgdGhpcy5pZnJhbWVSZWYubmF0aXZlRWxlbWVudFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy4jX2Rpc2FibGVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBmb250cyB0byBpbmNsdWRlIGluIHRoZSBmb250IHBpY2tlci5cbiAgICogQGRlZmF1bHQgW3tuYW1lOiAnQmxhY2tiYXVkIFNhbnMnLCB2YWx1ZTogJ1wiQmxhY2tiYXVkIFNhbnNcIiwgQXJpYWwsIHNhbnMtc2VyaWYnfSwge25hbWU6ICdBcmlhbCcsIHZhbHVlOiAnQXJpYWwnfSwge25hbWU6ICdBcmlhbCBCbGFjaycsIHZhbHVlOiAnXCJBcmlhbCBCbGFja1wiJ30sIHtuYW1lOiAnQ291cmllciBOZXcnLCB2YWx1ZTogJ1wiQ291cmllciBOZXdcIid9LCB7bmFtZTogJ0dlb3JnaWEnLCB2YWx1ZTogJ0dlb3JnaWEsIHNlcmlmJ30sIHtuYW1lOiAnVGFob21hJywgdmFsdWU6ICdUYWhvbWEsIEdlbmV2YSwgc2Fucy1zZXJpZid9LCB7bmFtZTogJ1RpbWVzIE5ldyBSb21hbicsIHZhbHVlOiAnXCJUaW1lcyBOZXcgUm9tYW5cIid9LCB7bmFtZTogJ1RyZWJ1Y2hldCBNUycsIHZhbHVlOiAnXCJUcmVidWNoZXQgTVNcIiwgc2Fucy1zZXJpZid9LCB7bmFtZTogJ1ZlcmRhbmEnLCB2YWx1ZTogJ1ZlcmRhbmEsIEdlbmV2YSwgc2Fucy1zZXJpZid9XVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBmb250TGlzdCh2YWx1ZTogU2t5VGV4dEVkaXRvckZvbnRbXSB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI19mb250TGlzdCA9IHZhbHVlIHx8IEZPTlRfTElTVF9ERUZBVUxUUztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZm9udExpc3QoKTogU2t5VGV4dEVkaXRvckZvbnRbXSB7XG4gICAgcmV0dXJuIHRoaXMuI19mb250TGlzdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgZm9udCBzaXplcyB0byBpbmNsdWRlIGluIHRoZSBmb250IHNpemUgcGlja2VyLlxuICAgKiBAZGVmYXVsdCBbNiwgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTYsIDE4LCAyMCwgMjIsIDI0LCAyNiwgMjgsIDM2LCA0OF1cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZm9udFNpemVMaXN0KHZhbHVlOiBudW1iZXJbXSB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI19mb250U2l6ZUxpc3QgPSB2YWx1ZSB8fCBGT05UX1NJWkVfTElTVF9ERUZBVUxUUztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZm9udFNpemVMaXN0KCk6IG51bWJlcltdIHtcbiAgICByZXR1cm4gdGhpcy4jX2ZvbnRTaXplTGlzdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgdW5pcXVlIElEIGF0dHJpYnV0ZSBmb3IgdGhlIHRleHQgZWRpdG9yLlxuICAgKiBCeSBkZWZhdWx0LCB0aGUgY29tcG9uZW50IGdlbmVyYXRlcyBhIHJhbmRvbSBJRC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgaWQodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI2lkID0gdmFsdWUgfHwgdGhpcy4jZGVmYXVsdElkO1xuICB9XG5cbiAgcHVibGljIGdldCBpZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLiNpZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgaW5pdGlhbCBzdHlsZXMgZm9yIGFsbCBjb250ZW50LCBpbmNsdWRpbmcgYmFja2dyb3VuZCBjb2xvciwgZm9udCBzaXplLCBhbmQgbGluayBzdGF0ZS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgaW5pdGlhbFN0eWxlU3RhdGUoc3RhdGU6IFNreVRleHRFZGl0b3JTdHlsZVN0YXRlIHwgdW5kZWZpbmVkKSB7XG4gICAgLy8gRG8gbm90IHVwZGF0ZSB0aGUgc3RhdGUgYWZ0ZXIgaW5pdGlhbGl6YXRpb24gaGFzIHRha2VuIHBsYWNlXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAoIXRoaXMuI2luaXRpYWxpemVkKSB7XG4gICAgICB0aGlzLiNfaW5pdGlhbFN0eWxlU3RhdGUgPSB7XG4gICAgICAgIC4uLlNUWUxFX1NUQVRFX0RFRkFVTFRTLFxuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBpbml0aWFsU3R5bGVTdGF0ZSgpOiBTa3lUZXh0RWRpdG9yU3R5bGVTdGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuI19pbml0aWFsU3R5bGVTdGF0ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgbWVudXMgdG8gaW5jbHVkZSBpbiB0aGUgbWVudSBiYXIuXG4gICAqIEBkZWZhdWx0IFsgJ2VkaXQnLCAnZm9ybWF0JyBdXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IG1lbnVzKHZhbHVlOiBTa3lUZXh0RWRpdG9yTWVudVR5cGVbXSB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI19tZW51cyA9IHZhbHVlIHx8IE1FTlVfREVGQVVMVFM7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG1lbnVzKCk6IFNreVRleHRFZGl0b3JNZW51VHlwZVtdIHtcbiAgICByZXR1cm4gdGhpcy4jX21lbnVzO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBtZXJnZSBmaWVsZHMgdG8gaW5jbHVkZSBpbiB0aGUgbWVyZ2UgZmllbGQgbWVudS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgbWVyZ2VGaWVsZHModmFsdWU6IFNreVRleHRFZGl0b3JNZXJnZUZpZWxkW10gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLiNfbWVyZ2VGaWVsZHMgPSB2YWx1ZSB8fCBbXTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbWVyZ2VGaWVsZHMoKTogU2t5VGV4dEVkaXRvck1lcmdlRmllbGRbXSB7XG4gICAgcmV0dXJuIHRoaXMuI19tZXJnZUZpZWxkcztcbiAgfVxuXG4gIC8qKlxuICAgKiBQbGFjZWhvbGRlciB0ZXh0IHRvIGRpc3BsYXkgd2hlbiB0aGUgdGV4dCBlbnRyeSBhcmVhIGlzIGVtcHR5LlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBwbGFjZWhvbGRlcih2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAodmFsdWUgIT09IHRoaXMuI19wbGFjZWhvbGRlcikge1xuICAgICAgdGhpcy4jX3BsYWNlaG9sZGVyID0gdmFsdWUgfHwgJyc7XG4gICAgICBpZiAodGhpcy4jaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgdGhpcy4jYWRhcHRlclNlcnZpY2Uuc2V0UGxhY2Vob2xkZXIodmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgcGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy4jX3BsYWNlaG9sZGVyO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBhY3Rpb25zIHRvIGluY2x1ZGUgaW4gdGhlIHRvb2xiYXIgaW4gdGhlIHNwZWNpZmllZCBvcmRlci5cbiAgICogQGRlZmF1bHQgWyAnZm9udC1mYW1pbHknLCAnZm9udC1zaXplJywgJ2ZvbnQtc3R5bGUnLCAnY29sb3InLCAnbGlzdCcsICdsaW5rIF1cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgdG9vbGJhckFjdGlvbnMoXG4gICAgdmFsdWU6IFNreVRleHRFZGl0b3JUb29sYmFyQWN0aW9uVHlwZVtdIHwgdW5kZWZpbmVkXG4gICkge1xuICAgIHRoaXMuI190b29sYmFyQWN0aW9ucyA9IHZhbHVlIHx8IFRPT0xCQVJfQUNUSU9OX0RFRkFVTFRTO1xuICB9XG5cbiAgcHVibGljIGdldCB0b29sYmFyQWN0aW9ucygpOiBTa3lUZXh0RWRpdG9yVG9vbGJhckFjdGlvblR5cGVbXSB7XG4gICAgcmV0dXJuIHRoaXMuI190b29sYmFyQWN0aW9ucztcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgdGFyZ2V0IHdpbmRvdyBvcHRpb25zIGZvciBhZGRpbmcgYSBoeXBlcmxpbmsuXG4gICAqIEBkZWZhdWx0IFsgJ25ldycsICdleGlzdGluZycgXVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBsaW5rV2luZG93T3B0aW9ucyhcbiAgICB2YWx1ZTogU2t5VGV4dEVkaXRvckxpbmtXaW5kb3dPcHRpb25zVHlwZVtdIHwgdW5kZWZpbmVkXG4gICkge1xuICAgIHRoaXMuI19saW5rV2luZG93T3B0aW9ucyA9IHZhbHVlID8/IExJTktfV0lORE9XX09QVElPTlNfREVGQVVMVFM7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGxpbmtXaW5kb3dPcHRpb25zKCk6IFNreVRleHRFZGl0b3JMaW5rV2luZG93T3B0aW9uc1R5cGVbXSB7XG4gICAgcmV0dXJuIHRoaXMuI19saW5rV2luZG93T3B0aW9ucztcbiAgfVxuXG4gIEBWaWV3Q2hpbGQoJ2lmcmFtZScpXG4gIHB1YmxpYyBpZnJhbWVSZWY6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBpbnRlcm5hbCB2YWx1ZSBvZiB0aGUgY29udHJvbC5cbiAgICovXG4gIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIC8vIE5vcm1hbGl6ZSB2YWx1ZSBhbmQgc2V0IGFueSBlbXB0eSBzdGF0ZSB0byBhbiBlbXB0eSBzdHJpbmcuXG4gICAgbGV0IG5vcm1hbGl6ZWRWYWx1ZTogc3RyaW5nO1xuICAgIGNvbnN0IHZhbHVlVHJpbW1lZCA9IHZhbHVlPy50cmltKCk7XG5cbiAgICBpZiAoXG4gICAgICAhdmFsdWUgfHxcbiAgICAgIHZhbHVlVHJpbW1lZCA9PT0gJzxwPjwvcD4nIHx8XG4gICAgICB2YWx1ZVRyaW1tZWQgPT09ICc8YnI+JyB8fFxuICAgICAgdmFsdWVUcmltbWVkID09PSAnPHA+PGJyPjwvcD4nXG4gICAgKSB7XG4gICAgICBub3JtYWxpemVkVmFsdWUgPSAnJztcbiAgICB9IGVsc2Uge1xuICAgICAgbm9ybWFsaXplZFZhbHVlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgbm9ybWFsaXplZFZhbHVlID0gdGhpcy4jc2FuaXRpemF0aW9uU2VydmljZVxuICAgICAgLnNhbml0aXplKG5vcm1hbGl6ZWRWYWx1ZSlcbiAgICAgIC50cmltKCk7XG5cbiAgICBpZiAodGhpcy4jX3ZhbHVlICE9PSBub3JtYWxpemVkVmFsdWUpIHtcbiAgICAgIHRoaXMuI192YWx1ZSA9IG5vcm1hbGl6ZWRWYWx1ZTtcblxuICAgICAgLy8gVXBkYXRlIGFuZ3VsYXIgZm9ybSBjb250cm9sIGlmIG1vZGVsIGhhcyBiZWVuIG5vcm1hbGl6ZWQuXG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgaWYgKFxuICAgICAgICB0aGlzLiNuZ0NvbnRyb2w/LmNvbnRyb2wgJiZcbiAgICAgICAgbm9ybWFsaXplZFZhbHVlICE9PSB0aGlzLiNuZ0NvbnRyb2wuY29udHJvbC52YWx1ZVxuICAgICAgKSB7XG4gICAgICAgIHRoaXMuI25nQ29udHJvbC5jb250cm9sLnNldFZhbHVlKG5vcm1hbGl6ZWRWYWx1ZSwge1xuICAgICAgICAgIGVtaXRNb2RlbFRvVmlld0NoYW5nZTogZmFsc2UsXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICAvLyBBdXRvZm9jdXMgaXNuJ3QgdGVzdGFibGUgaW4gRmlyZWZveCBhbmQgSUUuXG4gICAgICAvLyBEb24ndCBzZXQgZm9jdXMgb24gdGhlIGVkaXRvciBub3cgaWYgdGhlIGlmcmFtZSBpc24ndCBpbml0aWFsaXplZC5cbiAgICAgIC8vICNpbml0SWZyYW1lKCkgd2lsbCBkbyBhbm90aGVyIGNoZWNrIGxhdGVyIHRvIHNlZSBpZiB0aGUgZWRpdG9yIHNob3VsZFxuICAgICAgLy8gcmVjZWl2ZSBmb2N1cy5cbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICBpZiAodGhpcy5hdXRvZm9jdXMgJiYgdGhpcy4jaW5pdGlhbGl6ZWQgJiYgIXRoaXMuI2ZvY3VzSW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgdGhpcy4jYWRhcHRlclNlcnZpY2UuZm9jdXNFZGl0b3IoKTtcbiAgICAgICAgdGhpcy4jZm9jdXNJbml0aWFsaXplZCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCB2YWx1ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLiNfdmFsdWU7XG4gIH1cblxuICBAVmlld0NoaWxkKCdpbnB1dFRlbXBsYXRlUmVmJywge1xuICAgIHJlYWQ6IFRlbXBsYXRlUmVmLFxuICAgIHN0YXRpYzogdHJ1ZSxcbiAgfSlcbiAgcHVibGljIGlucHV0VGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPHVua25vd24+IHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyBlZGl0b3JGb2N1c1N0cmVhbSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5za3ktZm9ybS1jb250cm9sJylcbiAgcHVibGljIGZvcm1Db250cm9sQ2xhc3MgPSAhIWluamVjdChTa3lJbnB1dEJveEhvc3RTZXJ2aWNlLCB7XG4gICAgb3B0aW9uYWw6IHRydWUsXG4gIH0pO1xuXG4gICNkZWZhdWx0SWQ6IHN0cmluZztcbiAgI2lkOiBzdHJpbmc7XG4gICNmb2N1c0luaXRpYWxpemVkID0gZmFsc2U7XG4gICNpbml0aWFsaXplZCA9IGZhbHNlO1xuICAjbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgI19mb250TGlzdCA9IEZPTlRfTElTVF9ERUZBVUxUUztcbiAgI19mb250U2l6ZUxpc3QgPSBGT05UX1NJWkVfTElTVF9ERUZBVUxUUztcbiAgI19tZXJnZUZpZWxkczogU2t5VGV4dEVkaXRvck1lcmdlRmllbGRbXSA9IFtdO1xuICAjX21lbnVzID0gTUVOVV9ERUZBVUxUUztcbiAgI190b29sYmFyQWN0aW9uczogU2t5VGV4dEVkaXRvclRvb2xiYXJBY3Rpb25UeXBlW10gPSBUT09MQkFSX0FDVElPTl9ERUZBVUxUUztcbiAgI19saW5rV2luZG93T3B0aW9ucyA9IExJTktfV0lORE9XX09QVElPTlNfREVGQVVMVFM7XG4gICNfZGlzYWJsZWQgPSBmYWxzZTtcbiAgI19pbml0aWFsU3R5bGVTdGF0ZSA9IE9iamVjdC5hc3NpZ24oe30sIFNUWUxFX1NUQVRFX0RFRkFVTFRTKTtcbiAgI19wbGFjZWhvbGRlciA9ICcnO1xuICAjX3ZhbHVlID0gJzxwPjwvcD4nO1xuXG4gIHJlYWRvbmx5ICNhZGFwdGVyU2VydmljZSA9IGluamVjdChTa3lUZXh0RWRpdG9yQWRhcHRlclNlcnZpY2UpO1xuICByZWFkb25seSAjY2hhbmdlRGV0ZWN0b3IgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICByZWFkb25seSAjY29yZUFkYXB0ZXJTZXJ2aWNlID0gaW5qZWN0KFNreUNvcmVBZGFwdGVyU2VydmljZSk7XG4gIHJlYWRvbmx5ICNlZGl0b3JTZXJ2aWNlID0gaW5qZWN0KFNreVRleHRFZGl0b3JTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgI2lkU3ZjID0gaW5qZWN0KFNreUlkU2VydmljZSk7XG4gIHJlYWRvbmx5ICNuZ0NvbnRyb2wgPSBpbmplY3QoTmdDb250cm9sKTtcbiAgcmVhZG9ubHkgI3Nhbml0aXphdGlvblNlcnZpY2UgPSBpbmplY3QoU2t5VGV4dFNhbml0aXphdGlvblNlcnZpY2UpO1xuICByZWFkb25seSAjem9uZSA9IGluamVjdChOZ1pvbmUpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuI2lkID0gdGhpcy4jZGVmYXVsdElkID0gdGhpcy4jaWRTdmMuZ2VuZXJhdGVJZCgpO1xuICAgIHRoaXMuI25nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy4jaW5pdElmcmFtZSgpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI2FkYXB0ZXJTZXJ2aWNlLnJlbW92ZU9ic2VydmVycyh0aGlzLiNlZGl0b3JTZXJ2aWNlLmVkaXRvcik7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIG9uSWZyYW1lTG9hZCgpOiB2b2lkIHtcbiAgICAvLyBSZWluaXRpYWxpemUgdGhlIGVkaXRvciBpZiBpdCBhbHJlYWR5IGV4aXN0cyB0byBjb3ZlciBzaXR1YXRpb25zIHdoZXJlIHRoZSB0ZXh0IGVkaXRvciBtaWdodCBoYXZlIGJlZW4gbW92ZWQgaW4gdGhlIERPTS5cbiAgICBpZiAodGhpcy4jZWRpdG9yU2VydmljZS5pc0luaXRpYWxpemVkKSB7XG4gICAgICB0aGlzLiNpbml0SWZyYW1lKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEltcGxlbWVudGVkIGFzIHBhcnQgb2YgQ29udHJvbFZhbHVlQWNjZXNzb3IuXG4gICAqL1xuICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuXG4gICAgLy8gVXBkYXRlIEhUTUwgaWYgbmVjZXNzYXJ5LlxuICAgIGlmICh0aGlzLiNpbml0aWFsaXplZCkge1xuICAgICAgY29uc3QgZWRpdG9yVmFsdWUgPSB0aGlzLiNhZGFwdGVyU2VydmljZS5nZXRFZGl0b3JJbm5lckh0bWwoKTtcbiAgICAgIGlmIChlZGl0b3JWYWx1ZSAhPT0gdGhpcy4jX3ZhbHVlKSB7XG4gICAgICAgIHRoaXMuI2FkYXB0ZXJTZXJ2aWNlLnNldEVkaXRvcklubmVySHRtbCh0aGlzLiNfdmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBsZW1lbnRlZCBhcyBwYXJ0IG9mIENvbnRyb2xWYWx1ZUFjY2Vzc29yLlxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogYW55KSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy4jX29uQ2hhbmdlID0gZm47XG4gIH1cblxuICAvKipcbiAgICogSW1wbGVtZW50ZWQgYXMgcGFydCBvZiBDb250cm9sVmFsdWVBY2Nlc3Nvci5cbiAgICovXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuI19vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBsZW1lbnRlZCBhcyBwYXJ0IG9mIENvbnRyb2xWYWx1ZUFjY2Vzc29yLlxuICAgKi9cbiAgcHVibGljIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICB9XG5cbiAgI3VwZGF0ZVN0eWxlKCk6IHZvaWQge1xuICAgIHRoaXMuI19pbml0aWFsU3R5bGVTdGF0ZSA9IHtcbiAgICAgIC4uLnRoaXMuI19pbml0aWFsU3R5bGVTdGF0ZSxcbiAgICAgIC4uLnRoaXMuI2FkYXB0ZXJTZXJ2aWNlLmdldFN0eWxlU3RhdGUoKSxcbiAgICB9O1xuICB9XG5cbiAgI2luaXRJZnJhbWUoKTogdm9pZCB7XG4gICAgdGhpcy4jYWRhcHRlclNlcnZpY2UuaW5pdEVkaXRvcihcbiAgICAgIHRoaXMuaWQsXG4gICAgICAodGhpcy5pZnJhbWVSZWYgYXMgRWxlbWVudFJlZikubmF0aXZlRWxlbWVudCxcbiAgICAgIHRoaXMuaW5pdGlhbFN0eWxlU3RhdGUsXG4gICAgICB0aGlzLnBsYWNlaG9sZGVyXG4gICAgKTtcblxuICAgIHRoaXMuI2VkaXRvclNlcnZpY2VcbiAgICAgIC5pbnB1dExpc3RlbmVyKClcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAvLyBBbmd1bGFyIGRvZXNuJ3QgcnVuIGNoYW5nZSBkZXRlY3Rpb24gZm9yIGNoYW5nZXMgb3JpZ2luYXRpbmcgaW5zaWRlIGFuIGlmcmFtZSxcbiAgICAgICAgLy8gc28gd2UgaGF2ZSB0byBjYWxsIHRoZSBvbkNoYW5nZSgpIGV2ZW50IGluc2lkZSBOZ1pvbmUgdG8gZm9yY2UgY2hhbmdlIHByb3BhZ2F0aW9uIHRvIGNvbnN1bWluZyBjb21wb25lbnRzLlxuICAgICAgICB0aGlzLiN6b25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgdGhpcy4jdmlld1RvTW9kZWxVcGRhdGUoKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcblxuICAgIHRoaXMuI2VkaXRvclNlcnZpY2VcbiAgICAgIC5zZWxlY3Rpb25DaGFuZ2VMaXN0ZW5lcigpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy4jdXBkYXRlU3R5bGUoKTtcbiAgICAgICAgdGhpcy5lZGl0b3JGb2N1c1N0cmVhbS5uZXh0KCk7XG4gICAgICB9KTtcblxuICAgIHRoaXMuI2VkaXRvclNlcnZpY2VcbiAgICAgIC5jbGlja0xpc3RlbmVyKClcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmVkaXRvckZvY3VzU3RyZWFtLm5leHQoKTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy4jZWRpdG9yU2VydmljZVxuICAgICAgLmJsdXJMaXN0ZW5lcigpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgLy8gQW5ndWxhciBkb2Vzbid0IHJ1biBjaGFuZ2UgZGV0ZWN0aW9uIGZvciBjaGFuZ2VzIG9yaWdpbmF0aW5nIGluc2lkZSBhbiBpZnJhbWUsXG4gICAgICAgIC8vIHNvIHdlIGhhdmUgdG8gcnVuIG1hcmtGb3JDaGVjaygpIGluc2lkZSB0aGUgTmdab25lIHRvIGZvcmNlIGNoYW5nZSBwcm9wYWdhdGlvbiB0byBjb25zdW1pbmcgY29tcG9uZW50cy5cbiAgICAgICAgdGhpcy4jem9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgIHRoaXMuI19vblRvdWNoZWQoKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcblxuICAgIHRoaXMuI2VkaXRvclNlcnZpY2VcbiAgICAgIC5jb21tYW5kQ2hhbmdlTGlzdGVuZXIoKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuI3VwZGF0ZVN0eWxlKCk7XG4gICAgICAgIHRoaXMuI3ZpZXdUb01vZGVsVXBkYXRlKCk7XG4gICAgICB9KTtcblxuICAgIHRoaXMuI2FkYXB0ZXJTZXJ2aWNlLnNldEVkaXRvcklubmVySHRtbCh0aGlzLiNfdmFsdWUpO1xuXG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICBpZiAodGhpcy5hdXRvZm9jdXMpIHtcbiAgICAgIHRoaXMuI2FkYXB0ZXJTZXJ2aWNlLmZvY3VzRWRpdG9yKCk7XG4gICAgfVxuXG4gICAgdGhpcy4jaW5pdGlhbGl6ZWQgPSB0cnVlO1xuICB9XG5cbiAgI3ZpZXdUb01vZGVsVXBkYXRlKGVtaXRDaGFuZ2UgPSB0cnVlKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHRoaXMuI2FkYXB0ZXJTZXJ2aWNlLmdldEVkaXRvcklubmVySHRtbCgpO1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKGVtaXRDaGFuZ2UpIHtcbiAgICAgIHRoaXMuI19vbkNoYW5nZSh0aGlzLiNfdmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICNfb25Ub3VjaGVkID0gKCk6IHZvaWQgPT4ge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgfTtcblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAjX29uQ2hhbmdlOiAoXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICB2YWx1ZTogYW55XG4gICkgPT4gdm9pZCA9ICgpID0+IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gIH07XG59XG4iLCI8ZGl2IGNsYXNzPVwic2t5LXRleHQtZWRpdG9yXCI+XG4gIDxza3ktdG9vbGJhclxuICAgICpuZ0lmPVwiXG4gICAgICAobWVudXMgJiYgbWVudXMubGVuZ3RoKSA+IDAgfHxcbiAgICAgICh0b29sYmFyQWN0aW9ucyAmJiB0b29sYmFyQWN0aW9ucy5sZW5ndGggPiAwKVxuICAgIFwiXG4gICAgY2xhc3M9XCJza3ktdGV4dC1lZGl0b3ItdG9vbGJhclwiXG4gID5cbiAgICA8c2t5LXRvb2xiYXItc2VjdGlvblxuICAgICAgKm5nSWY9XCJtZW51cyAmJiBtZW51cy5sZW5ndGggPiAwXCJcbiAgICAgIGFyaWEtbGFiZWw9XCJUZXh0IGZvcm1hdHRpbmdcIlxuICAgICAgY2xhc3M9XCJtZW51YmFyXCJcbiAgICAgIHJvbGU9XCJ0b29sYmFyXCJcbiAgICA+XG4gICAgICA8c2t5LXRleHQtZWRpdG9yLW1lbnViYXJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgW2VkaXRvckZvY3VzU3RyZWFtXT1cImVkaXRvckZvY3VzU3RyZWFtXCJcbiAgICAgICAgW21lbnVzXT1cIm1lbnVzXCJcbiAgICAgICAgW21lcmdlRmllbGRzXT1cIm1lcmdlRmllbGRzXCJcbiAgICAgID5cbiAgICAgIDwvc2t5LXRleHQtZWRpdG9yLW1lbnViYXI+XG4gICAgPC9za3ktdG9vbGJhci1zZWN0aW9uPlxuICAgIDxza3ktdG9vbGJhci1zZWN0aW9uXG4gICAgICAqbmdJZj1cInRvb2xiYXJBY3Rpb25zICYmIHRvb2xiYXJBY3Rpb25zLmxlbmd0aCA+IDBcIlxuICAgICAgYXJpYS1sYWJlbD1cIlRleHQgZm9ybWF0dGluZ1wiXG4gICAgICBjbGFzcz1cInRvb2xiYXJcIlxuICAgICAgcm9sZT1cInRvb2xiYXJcIlxuICAgID5cbiAgICAgIDxza3ktdGV4dC1lZGl0b3ItdG9vbGJhclxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICBbZWRpdG9yRm9jdXNTdHJlYW1dPVwiZWRpdG9yRm9jdXNTdHJlYW1cIlxuICAgICAgICBbZm9udExpc3RdPVwiZm9udExpc3RcIlxuICAgICAgICBbZm9udFNpemVMaXN0XT1cImZvbnRTaXplTGlzdFwiXG4gICAgICAgIFtsaW5rV2luZG93T3B0aW9uc109XCJsaW5rV2luZG93T3B0aW9uc1wiXG4gICAgICAgIFt0b29sYmFyQWN0aW9uc109XCJ0b29sYmFyQWN0aW9uc1wiXG4gICAgICAgIFtzdHlsZVN0YXRlXT1cImluaXRpYWxTdHlsZVN0YXRlXCJcbiAgICAgID5cbiAgICAgIDwvc2t5LXRleHQtZWRpdG9yLXRvb2xiYXI+XG4gICAgPC9za3ktdG9vbGJhci1zZWN0aW9uPlxuICA8L3NreS10b29sYmFyPlxuICA8aWZyYW1lXG4gICAgY2xhc3M9XCJza3ktdGV4dC1lZGl0b3Itd3JhcHBlclwiXG4gICAgc3JjPVwiYWJvdXQ6YmxhbmtcIlxuICAgIHRpdGxlPVwiVGV4dCBFZGl0b3JcIlxuICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICdza3ktdGV4dC1lZGl0b3Itd3JhcHBlci1kaXNhYmxlZCc6IGRpc2FibGVkXG4gICAgfVwiXG4gICAgKGxvYWQpPVwib25JZnJhbWVMb2FkKClcIlxuICAgICNpZnJhbWVcbiAgPlxuICA8L2lmcmFtZT5cbjwvZGl2PlxuIl19
432
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RleHQtZWRpdG9yL3NyYy9saWIvbW9kdWxlcy90ZXh0LWVkaXRvci90ZXh0LWVkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGV4dC1lZGl0b3Ivc3JjL2xpYi9tb2R1bGVzL3RleHQtZWRpdG9yL3RleHQtZWRpdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBRVQsV0FBVyxFQUNYLEtBQUssRUFDTCxNQUFNLEVBRU4sV0FBVyxFQUNYLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLFlBQVksRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNsRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDdEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM3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aW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgTmdab25lLFxuICBPbkRlc3Ryb3ksXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFNreUNvcmVBZGFwdGVyU2VydmljZSwgU2t5SWRTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuaW1wb3J0IHsgU2t5SW5wdXRCb3hIb3N0U2VydmljZSB9IGZyb20gJ0Bza3l1eC9mb3Jtcyc7XG5pbXBvcnQgeyBTa3lUb29sYmFyTW9kdWxlIH0gZnJvbSAnQHNreXV4L2xheW91dCc7XG5cbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2t5Rm9ybXNVdGlsaXR5IH0gZnJvbSAnLi4vc2hhcmVkL2Zvcm1zLXV0aWxpdHknO1xuXG5pbXBvcnQgeyBGT05UX0xJU1RfREVGQVVMVFMgfSBmcm9tICcuL2RlZmF1bHRzL2ZvbnQtbGlzdC1kZWZhdWx0cyc7XG5pbXBvcnQgeyBGT05UX1NJWkVfTElTVF9ERUZBVUxUUyB9IGZyb20gJy4vZGVmYXVsdHMvZm9udC1zaXplLWxpc3QtZGVmYXVsdHMnO1xuaW1wb3J0IHsgTElOS19XSU5ET1dfT1BUSU9OU19ERUZBVUxUUyB9IGZyb20gJy4vZGVmYXVsdHMvbGluay13aW5kb3ctb3B0aW9ucy1kZWZhdWx0cyc7XG5pbXBvcnQgeyBNRU5VX0RFRkFVTFRTIH0gZnJvbSAnLi9kZWZhdWx0cy9tZW51LWRlZmF1bHRzJztcbmltcG9ydCB7IFNUWUxFX1NUQVRFX0RFRkFVTFRTIH0gZnJvbSAnLi9kZWZhdWx0cy9zdHlsZS1zdGF0ZS1kZWZhdWx0cyc7XG5pbXBvcnQgeyBUT09MQkFSX0FDVElPTl9ERUZBVUxUUyB9IGZyb20gJy4vZGVmYXVsdHMvdG9vbGJhci1hY3Rpb24tZGVmYXVsdHMnO1xuaW1wb3J0IHsgU2t5VGV4dEVkaXRvck1lbnViYXJDb21wb25lbnQgfSBmcm9tICcuL21lbnViYXIvdGV4dC1lZGl0b3ItbWVudWJhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5VGV4dEVkaXRvckFkYXB0ZXJTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy90ZXh0LWVkaXRvci1hZGFwdGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2t5VGV4dEVkaXRvclNlbGVjdGlvblNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3RleHQtZWRpdG9yLXNlbGVjdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFNreVRleHRFZGl0b3JTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy90ZXh0LWVkaXRvci5zZXJ2aWNlJztcbmltcG9ydCB7IFNreVRleHRTYW5pdGl6YXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy90ZXh0LXNhbml0aXphdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFNreVRleHRFZGl0b3JUb29sYmFyQ29tcG9uZW50IH0gZnJvbSAnLi90b29sYmFyL3RleHQtZWRpdG9yLXRvb2xiYXIuY29tcG9uZW50JztcbmltcG9ydCB7IFNreVRleHRFZGl0b3JGb250IH0gZnJvbSAnLi90eXBlcy9mb250LXN0YXRlJztcbmltcG9ydCB7IFNreVRleHRFZGl0b3JMaW5rV2luZG93T3B0aW9uc1R5cGUgfSBmcm9tICcuL3R5cGVzL2xpbmstd2luZG93LW9wdGlvbnMtdHlwZSc7XG5pbXBvcnQgeyBTa3lUZXh0RWRpdG9yTWVudVR5cGUgfSBmcm9tICcuL3R5cGVzL21lbnUtdHlwZSc7XG5pbXBvcnQgeyBTa3lUZXh0RWRpdG9yU3R5bGVTdGF0ZSB9IGZyb20gJy4vdHlwZXMvc3R5bGUtc3RhdGUnO1xuaW1wb3J0IHsgU2t5VGV4dEVkaXRvck1lcmdlRmllbGQgfSBmcm9tICcuL3R5cGVzL3RleHQtZWRpdG9yLW1lcmdlLWZpZWxkJztcbmltcG9ydCB7IFNreVRleHRFZGl0b3JUb29sYmFyQWN0aW9uVHlwZSB9IGZyb20gJy4vdHlwZXMvdG9vbGJhci1hY3Rpb24tdHlwZSc7XG5cbi8qKlxuICogVGhlIHRleHQgZWRpdG9yIGNvbXBvbmVudCBsZXRzIHVzZXJzIGZvcm1hdCBhbmQgbWFuaXB1bGF0ZSB0ZXh0LlxuICovXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdza3ktdGV4dC1lZGl0b3InLFxuICB0ZW1wbGF0ZVVybDogJy4vdGV4dC1lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90ZXh0LWVkaXRvci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgU2t5VGV4dEVkaXRvclNlcnZpY2UsXG4gICAgU2t5VGV4dEVkaXRvclNlbGVjdGlvblNlcnZpY2UsXG4gICAgU2t5VGV4dEVkaXRvckFkYXB0ZXJTZXJ2aWNlLFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFNreVRleHRFZGl0b3JNZW51YmFyQ29tcG9uZW50LFxuICAgIFNreVRleHRFZGl0b3JUb29sYmFyQ29tcG9uZW50LFxuICAgIFNreVRvb2xiYXJNb2R1bGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNreVRleHRFZGl0b3JDb21wb25lbnRcbiAgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIENvbnRyb2xWYWx1ZUFjY2Vzc29yXG57XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHB1dCBmb2N1cyBvbiB0aGUgZWRpdG9yIGFmdGVyIGl0IHJlbmRlcnMuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgYXV0b2ZvY3VzOiBib29sZWFuIHwgdW5kZWZpbmVkID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZGlzYWJsZSB0aGUgdGV4dCBlZGl0b3Igb24gdGVtcGxhdGUtZHJpdmVuIGZvcm1zLiBEb24ndCB1c2UgdGhpcyBpbnB1dCBvbiByZWFjdGl2ZSBmb3JtcyBiZWNhdXNlIHRoZXkgbWF5IG92ZXJ3cml0ZSB0aGUgaW5wdXQgb3IgbGVhdmUgdGhlIGNvbnRyb2wgb3V0IG9mIHN5bmMuXG4gICAqIFRvIHNldCB0aGUgZGlzYWJsZWQgc3RhdGUgb24gcmVhY3RpdmUgZm9ybXMsIHVzZSB0aGUgYEZvcm1Db250cm9sYCBpbnN0ZWFkLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbiB8IHVuZGVmaW5lZCkge1xuICAgIGNvbnN0IGNvZXJjZWRWYWx1ZSA9IFNreUZvcm1zVXRpbGl0eS5jb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIGlmIChjb2VyY2VkVmFsdWUgIT09IHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuI19kaXNhYmxlZCA9IGNvZXJjZWRWYWx1ZTtcblxuICAgICAgLy8gVXBkYXRlIGZvY3VzYWJsZUNoaWxkcmVuIGluc2lkZSB0aGUgaWZyYW1lLlxuICAgICAgbGV0IGZvY3VzYWJsZUNoaWxkcmVuOiBIVE1MRWxlbWVudFtdO1xuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgIGlmICh0aGlzLmlmcmFtZVJlZikge1xuICAgICAgICBmb2N1c2FibGVDaGlsZHJlbiA9IHRoaXMuI2NvcmVBZGFwdGVyU2VydmljZS5nZXRGb2N1c2FibGVDaGlsZHJlbihcbiAgICAgICAgICB0aGlzLmlmcmFtZVJlZi5uYXRpdmVFbGVtZW50LmNvbnRlbnREb2N1bWVudC5ib2R5LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlnbm9yZVZpc2liaWxpdHk6IHRydWUsXG4gICAgICAgICAgICBpZ25vcmVUYWJJbmRleDogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICApO1xuXG4gICAgICAgIGlmICh0aGlzLiNfZGlzYWJsZWQpIHtcbiAgICAgICAgICB0aGlzLiNhZGFwdGVyU2VydmljZS5kaXNhYmxlRWRpdG9yKFxuICAgICAgICAgICAgZm9jdXNhYmxlQ2hpbGRyZW4sXG4gICAgICAgICAgICB0aGlzLmlmcmFtZVJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy4jYWRhcHRlclNlcnZpY2UuZW5hYmxlRWRpdG9yKFxuICAgICAgICAgICAgZm9jdXNhYmxlQ2hpbGRyZW4sXG4gICAgICAgICAgICB0aGlzLmlmcmFtZVJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy4jX2Rpc2FibGVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBmb250cyB0byBpbmNsdWRlIGluIHRoZSBmb250IHBpY2tlci5cbiAgICogQGRlZmF1bHQgW3tuYW1lOiAnQmxhY2tiYXVkIFNhbnMnLCB2YWx1ZTogJ1wiQmxhY2tiYXVkIFNhbnNcIiwgQXJpYWwsIHNhbnMtc2VyaWYnfSwge25hbWU6ICdBcmlhbCcsIHZhbHVlOiAnQXJpYWwnfSwge25hbWU6ICdBcmlhbCBCbGFjaycsIHZhbHVlOiAnXCJBcmlhbCBCbGFja1wiJ30sIHtuYW1lOiAnQ291cmllciBOZXcnLCB2YWx1ZTogJ1wiQ291cmllciBOZXdcIid9LCB7bmFtZTogJ0dlb3JnaWEnLCB2YWx1ZTogJ0dlb3JnaWEsIHNlcmlmJ30sIHtuYW1lOiAnVGFob21hJywgdmFsdWU6ICdUYWhvbWEsIEdlbmV2YSwgc2Fucy1zZXJpZid9LCB7bmFtZTogJ1RpbWVzIE5ldyBSb21hbicsIHZhbHVlOiAnXCJUaW1lcyBOZXcgUm9tYW5cIid9LCB7bmFtZTogJ1RyZWJ1Y2hldCBNUycsIHZhbHVlOiAnXCJUcmVidWNoZXQgTVNcIiwgc2Fucy1zZXJpZid9LCB7bmFtZTogJ1ZlcmRhbmEnLCB2YWx1ZTogJ1ZlcmRhbmEsIEdlbmV2YSwgc2Fucy1zZXJpZid9XVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBmb250TGlzdCh2YWx1ZTogU2t5VGV4dEVkaXRvckZvbnRbXSB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI19mb250TGlzdCA9IHZhbHVlIHx8IEZPTlRfTElTVF9ERUZBVUxUUztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZm9udExpc3QoKTogU2t5VGV4dEVkaXRvckZvbnRbXSB7XG4gICAgcmV0dXJuIHRoaXMuI19mb250TGlzdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgZm9udCBzaXplcyB0byBpbmNsdWRlIGluIHRoZSBmb250IHNpemUgcGlja2VyLlxuICAgKiBAZGVmYXVsdCBbNiwgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTYsIDE4LCAyMCwgMjIsIDI0LCAyNiwgMjgsIDM2LCA0OF1cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZm9udFNpemVMaXN0KHZhbHVlOiBudW1iZXJbXSB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI19mb250U2l6ZUxpc3QgPSB2YWx1ZSB8fCBGT05UX1NJWkVfTElTVF9ERUZBVUxUUztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZm9udFNpemVMaXN0KCk6IG51bWJlcltdIHtcbiAgICByZXR1cm4gdGhpcy4jX2ZvbnRTaXplTGlzdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgdW5pcXVlIElEIGF0dHJpYnV0ZSBmb3IgdGhlIHRleHQgZWRpdG9yLlxuICAgKiBCeSBkZWZhdWx0LCB0aGUgY29tcG9uZW50IGdlbmVyYXRlcyBhIHJhbmRvbSBJRC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgaWQodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI2lkID0gdmFsdWUgfHwgdGhpcy4jZGVmYXVsdElkO1xuICB9XG5cbiAgcHVibGljIGdldCBpZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLiNpZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgaW5pdGlhbCBzdHlsZXMgZm9yIGFsbCBjb250ZW50LCBpbmNsdWRpbmcgYmFja2dyb3VuZCBjb2xvciwgZm9udCBzaXplLCBhbmQgbGluayBzdGF0ZS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgaW5pdGlhbFN0eWxlU3RhdGUoc3RhdGU6IFNreVRleHRFZGl0b3JTdHlsZVN0YXRlIHwgdW5kZWZpbmVkKSB7XG4gICAgLy8gRG8gbm90IHVwZGF0ZSB0aGUgc3RhdGUgYWZ0ZXIgaW5pdGlhbGl6YXRpb24gaGFzIHRha2VuIHBsYWNlXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAoIXRoaXMuI2luaXRpYWxpemVkKSB7XG4gICAgICB0aGlzLiNfaW5pdGlhbFN0eWxlU3RhdGUgPSB7XG4gICAgICAgIC4uLlNUWUxFX1NUQVRFX0RFRkFVTFRTLFxuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBpbml0aWFsU3R5bGVTdGF0ZSgpOiBTa3lUZXh0RWRpdG9yU3R5bGVTdGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuI19pbml0aWFsU3R5bGVTdGF0ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgbWVudXMgdG8gaW5jbHVkZSBpbiB0aGUgbWVudSBiYXIuXG4gICAqIEBkZWZhdWx0IFsgJ2VkaXQnLCAnZm9ybWF0JyBdXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IG1lbnVzKHZhbHVlOiBTa3lUZXh0RWRpdG9yTWVudVR5cGVbXSB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI19tZW51cyA9IHZhbHVlIHx8IE1FTlVfREVGQVVMVFM7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG1lbnVzKCk6IFNreVRleHRFZGl0b3JNZW51VHlwZVtdIHtcbiAgICByZXR1cm4gdGhpcy4jX21lbnVzO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBtZXJnZSBmaWVsZHMgdG8gaW5jbHVkZSBpbiB0aGUgbWVyZ2UgZmllbGQgbWVudS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgbWVyZ2VGaWVsZHModmFsdWU6IFNreVRleHRFZGl0b3JNZXJnZUZpZWxkW10gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLiNfbWVyZ2VGaWVsZHMgPSB2YWx1ZSB8fCBbXTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbWVyZ2VGaWVsZHMoKTogU2t5VGV4dEVkaXRvck1lcmdlRmllbGRbXSB7XG4gICAgcmV0dXJuIHRoaXMuI19tZXJnZUZpZWxkcztcbiAgfVxuXG4gIC8qKlxuICAgKiBQbGFjZWhvbGRlciB0ZXh0IHRvIGRpc3BsYXkgd2hlbiB0aGUgdGV4dCBlbnRyeSBhcmVhIGlzIGVtcHR5LlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBwbGFjZWhvbGRlcih2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAodmFsdWUgIT09IHRoaXMuI19wbGFjZWhvbGRlcikge1xuICAgICAgdGhpcy4jX3BsYWNlaG9sZGVyID0gdmFsdWUgfHwgJyc7XG4gICAgICBpZiAodGhpcy4jaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgdGhpcy4jYWRhcHRlclNlcnZpY2Uuc2V0UGxhY2Vob2xkZXIodmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgcGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy4jX3BsYWNlaG9sZGVyO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBhY3Rpb25zIHRvIGluY2x1ZGUgaW4gdGhlIHRvb2xiYXIgaW4gdGhlIHNwZWNpZmllZCBvcmRlci5cbiAgICogQGRlZmF1bHQgWyAnZm9udC1mYW1pbHknLCAnZm9udC1zaXplJywgJ2ZvbnQtc3R5bGUnLCAnY29sb3InLCAnbGlzdCcsICdsaW5rIF1cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgdG9vbGJhckFjdGlvbnMoXG4gICAgdmFsdWU6IFNreVRleHRFZGl0b3JUb29sYmFyQWN0aW9uVHlwZVtdIHwgdW5kZWZpbmVkLFxuICApIHtcbiAgICB0aGlzLiNfdG9vbGJhckFjdGlvbnMgPSB2YWx1ZSB8fCBUT09MQkFSX0FDVElPTl9ERUZBVUxUUztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdG9vbGJhckFjdGlvbnMoKTogU2t5VGV4dEVkaXRvclRvb2xiYXJBY3Rpb25UeXBlW10ge1xuICAgIHJldHVybiB0aGlzLiNfdG9vbGJhckFjdGlvbnM7XG4gIH1cblxuICAvKipcbiAgICogVGhlIHRhcmdldCB3aW5kb3cgb3B0aW9ucyBmb3IgYWRkaW5nIGEgaHlwZXJsaW5rLlxuICAgKiBAZGVmYXVsdCBbICduZXcnLCAnZXhpc3RpbmcnIF1cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgbGlua1dpbmRvd09wdGlvbnMoXG4gICAgdmFsdWU6IFNreVRleHRFZGl0b3JMaW5rV2luZG93T3B0aW9uc1R5cGVbXSB8IHVuZGVmaW5lZCxcbiAgKSB7XG4gICAgdGhpcy4jX2xpbmtXaW5kb3dPcHRpb25zID0gdmFsdWUgPz8gTElOS19XSU5ET1dfT1BUSU9OU19ERUZBVUxUUztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbGlua1dpbmRvd09wdGlvbnMoKTogU2t5VGV4dEVkaXRvckxpbmtXaW5kb3dPcHRpb25zVHlwZVtdIHtcbiAgICByZXR1cm4gdGhpcy4jX2xpbmtXaW5kb3dPcHRpb25zO1xuICB9XG5cbiAgQFZpZXdDaGlsZCgnaWZyYW1lJylcbiAgcHVibGljIGlmcmFtZVJlZjogRWxlbWVudFJlZiB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIGludGVybmFsIHZhbHVlIG9mIHRoZSBjb250cm9sLlxuICAgKi9cbiAgcHVibGljIHNldCB2YWx1ZSh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgLy8gTm9ybWFsaXplIHZhbHVlIGFuZCBzZXQgYW55IGVtcHR5IHN0YXRlIHRvIGFuIGVtcHR5IHN0cmluZy5cbiAgICBsZXQgbm9ybWFsaXplZFZhbHVlOiBzdHJpbmc7XG4gICAgY29uc3QgdmFsdWVUcmltbWVkID0gdmFsdWU/LnRyaW0oKTtcblxuICAgIGlmIChcbiAgICAgICF2YWx1ZSB8fFxuICAgICAgdmFsdWVUcmltbWVkID09PSAnPHA+PC9wPicgfHxcbiAgICAgIHZhbHVlVHJpbW1lZCA9PT0gJzxicj4nIHx8XG4gICAgICB2YWx1ZVRyaW1tZWQgPT09ICc8cD48YnI+PC9wPidcbiAgICApIHtcbiAgICAgIG5vcm1hbGl6ZWRWYWx1ZSA9ICcnO1xuICAgIH0gZWxzZSB7XG4gICAgICBub3JtYWxpemVkVmFsdWUgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBub3JtYWxpemVkVmFsdWUgPSB0aGlzLiNzYW5pdGl6YXRpb25TZXJ2aWNlXG4gICAgICAuc2FuaXRpemUobm9ybWFsaXplZFZhbHVlKVxuICAgICAgLnRyaW0oKTtcblxuICAgIGlmICh0aGlzLiNfdmFsdWUgIT09IG5vcm1hbGl6ZWRWYWx1ZSkge1xuICAgICAgdGhpcy4jX3ZhbHVlID0gbm9ybWFsaXplZFZhbHVlO1xuXG4gICAgICAvLyBVcGRhdGUgYW5ndWxhciBmb3JtIGNvbnRyb2wgaWYgbW9kZWwgaGFzIGJlZW4gbm9ybWFsaXplZC5cbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMuI25nQ29udHJvbD8uY29udHJvbCAmJlxuICAgICAgICBub3JtYWxpemVkVmFsdWUgIT09IHRoaXMuI25nQ29udHJvbC5jb250cm9sLnZhbHVlXG4gICAgICApIHtcbiAgICAgICAgdGhpcy4jbmdDb250cm9sLmNvbnRyb2wuc2V0VmFsdWUobm9ybWFsaXplZFZhbHVlLCB7XG4gICAgICAgICAgZW1pdE1vZGVsVG9WaWV3Q2hhbmdlOiBmYWxzZSxcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIC8vIEF1dG9mb2N1cyBpc24ndCB0ZXN0YWJsZSBpbiBGaXJlZm94IGFuZCBJRS5cbiAgICAgIC8vIERvbid0IHNldCBmb2N1cyBvbiB0aGUgZWRpdG9yIG5vdyBpZiB0aGUgaWZyYW1lIGlzbid0IGluaXRpYWxpemVkLlxuICAgICAgLy8gI2luaXRJZnJhbWUoKSB3aWxsIGRvIGFub3RoZXIgY2hlY2sgbGF0ZXIgdG8gc2VlIGlmIHRoZSBlZGl0b3Igc2hvdWxkXG4gICAgICAvLyByZWNlaXZlIGZvY3VzLlxuICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgIGlmICh0aGlzLmF1dG9mb2N1cyAmJiB0aGlzLiNpbml0aWFsaXplZCAmJiAhdGhpcy4jZm9jdXNJbml0aWFsaXplZCkge1xuICAgICAgICB0aGlzLiNhZGFwdGVyU2VydmljZS5mb2N1c0VkaXRvcigpO1xuICAgICAgICB0aGlzLiNmb2N1c0luaXRpYWxpemVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuI192YWx1ZTtcbiAgfVxuXG4gIEBWaWV3Q2hpbGQoJ2lucHV0VGVtcGxhdGVSZWYnLCB7XG4gICAgcmVhZDogVGVtcGxhdGVSZWYsXG4gICAgc3RhdGljOiB0cnVlLFxuICB9KVxuICBwdWJsaWMgaW5wdXRUZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8dW5rbm93bj4gfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIGVkaXRvckZvY3VzU3RyZWFtID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnNreS1mb3JtLWNvbnRyb2wnKVxuICBwdWJsaWMgZm9ybUNvbnRyb2xDbGFzcyA9ICEhaW5qZWN0KFNreUlucHV0Qm94SG9zdFNlcnZpY2UsIHtcbiAgICBvcHRpb25hbDogdHJ1ZSxcbiAgfSk7XG5cbiAgI2RlZmF1bHRJZDogc3RyaW5nO1xuICAjaWQ6IHN0cmluZztcbiAgI2ZvY3VzSW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgI2luaXRpYWxpemVkID0gZmFsc2U7XG4gICNuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAjX2ZvbnRMaXN0ID0gRk9OVF9MSVNUX0RFRkFVTFRTO1xuICAjX2ZvbnRTaXplTGlzdCA9IEZPTlRfU0laRV9MSVNUX0RFRkFVTFRTO1xuICAjX21lcmdlRmllbGRzOiBTa3lUZXh0RWRpdG9yTWVyZ2VGaWVsZFtdID0gW107XG4gICNfbWVudXMgPSBNRU5VX0RFRkFVTFRTO1xuICAjX3Rvb2xiYXJBY3Rpb25zOiBTa3lUZXh0RWRpdG9yVG9vbGJhckFjdGlvblR5cGVbXSA9IFRPT0xCQVJfQUNUSU9OX0RFRkFVTFRTO1xuICAjX2xpbmtXaW5kb3dPcHRpb25zID0gTElOS19XSU5ET1dfT1BUSU9OU19ERUZBVUxUUztcbiAgI19kaXNhYmxlZCA9IGZhbHNlO1xuICAjX2luaXRpYWxTdHlsZVN0YXRlID0gT2JqZWN0LmFzc2lnbih7fSwgU1RZTEVfU1RBVEVfREVGQVVMVFMpO1xuICAjX3BsYWNlaG9sZGVyID0gJyc7XG4gICNfdmFsdWUgPSAnPHA+PC9wPic7XG5cbiAgcmVhZG9ubHkgI2FkYXB0ZXJTZXJ2aWNlID0gaW5qZWN0KFNreVRleHRFZGl0b3JBZGFwdGVyU2VydmljZSk7XG4gIHJlYWRvbmx5ICNjaGFuZ2VEZXRlY3RvciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIHJlYWRvbmx5ICNjb3JlQWRhcHRlclNlcnZpY2UgPSBpbmplY3QoU2t5Q29yZUFkYXB0ZXJTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgI2VkaXRvclNlcnZpY2UgPSBpbmplY3QoU2t5VGV4dEVkaXRvclNlcnZpY2UpO1xuICByZWFkb25seSAjaWRTdmMgPSBpbmplY3QoU2t5SWRTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgI25nQ29udHJvbCA9IGluamVjdChOZ0NvbnRyb2wpO1xuICByZWFkb25seSAjc2FuaXRpemF0aW9uU2VydmljZSA9IGluamVjdChTa3lUZXh0U2FuaXRpemF0aW9uU2VydmljZSk7XG4gIHJlYWRvbmx5ICN6b25lID0gaW5qZWN0KE5nWm9uZSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy4jaWQgPSB0aGlzLiNkZWZhdWx0SWQgPSB0aGlzLiNpZFN2Yy5nZW5lcmF0ZUlkKCk7XG4gICAgdGhpcy4jbmdDb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLiNpbml0SWZyYW1lKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy4jYWRhcHRlclNlcnZpY2UucmVtb3ZlT2JzZXJ2ZXJzKHRoaXMuI2VkaXRvclNlcnZpY2UuZWRpdG9yKTtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgb25JZnJhbWVMb2FkKCk6IHZvaWQge1xuICAgIC8vIFJlaW5pdGlhbGl6ZSB0aGUgZWRpdG9yIGlmIGl0IGFscmVhZHkgZXhpc3RzIHRvIGNvdmVyIHNpdHVhdGlvbnMgd2hlcmUgdGhlIHRleHQgZWRpdG9yIG1pZ2h0IGhhdmUgYmVlbiBtb3ZlZCBpbiB0aGUgRE9NLlxuICAgIGlmICh0aGlzLiNlZGl0b3JTZXJ2aWNlLmlzSW5pdGlhbGl6ZWQpIHtcbiAgICAgIHRoaXMuI2luaXRJZnJhbWUoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSW1wbGVtZW50ZWQgYXMgcGFydCBvZiBDb250cm9sVmFsdWVBY2Nlc3Nvci5cbiAgICovXG4gIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG5cbiAgICAvLyBVcGRhdGUgSFRNTCBpZiBuZWNlc3NhcnkuXG4gICAgaWYgKHRoaXMuI2luaXRpYWxpemVkKSB7XG4gICAgICBjb25zdCBlZGl0b3JWYWx1ZSA9IHRoaXMuI2FkYXB0ZXJTZXJ2aWNlLmdldEVkaXRvcklubmVySHRtbCgpO1xuICAgICAgaWYgKGVkaXRvclZhbHVlICE9PSB0aGlzLiNfdmFsdWUpIHtcbiAgICAgICAgdGhpcy4jYWRhcHRlclNlcnZpY2Uuc2V0RWRpdG9ySW5uZXJIdG1sKHRoaXMuI192YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEltcGxlbWVudGVkIGFzIHBhcnQgb2YgQ29udHJvbFZhbHVlQWNjZXNzb3IuXG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBhbnkpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLiNfb25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBsZW1lbnRlZCBhcyBwYXJ0IG9mIENvbnRyb2xWYWx1ZUFjY2Vzc29yLlxuICAgKi9cbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy4jX29uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcGxlbWVudGVkIGFzIHBhcnQgb2YgQ29udHJvbFZhbHVlQWNjZXNzb3IuXG4gICAqL1xuICBwdWJsaWMgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gIH1cblxuICAjdXBkYXRlU3R5bGUoKTogdm9pZCB7XG4gICAgdGhpcy4jX2luaXRpYWxTdHlsZVN0YXRlID0ge1xuICAgICAgLi4udGhpcy4jX2luaXRpYWxTdHlsZVN0YXRlLFxuICAgICAgLi4udGhpcy4jYWRhcHRlclNlcnZpY2UuZ2V0U3R5bGVTdGF0ZSgpLFxuICAgIH07XG4gIH1cblxuICAjaW5pdElmcmFtZSgpOiB2b2lkIHtcbiAgICB0aGlzLiNhZGFwdGVyU2VydmljZS5pbml0RWRpdG9yKFxuICAgICAgdGhpcy5pZCxcbiAgICAgICh0aGlzLmlmcmFtZVJlZiBhcyBFbGVtZW50UmVmKS5uYXRpdmVFbGVtZW50LFxuICAgICAgdGhpcy5pbml0aWFsU3R5bGVTdGF0ZSxcbiAgICAgIHRoaXMucGxhY2Vob2xkZXIsXG4gICAgKTtcblxuICAgIHRoaXMuI2VkaXRvclNlcnZpY2VcbiAgICAgIC5pbnB1dExpc3RlbmVyKClcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAvLyBBbmd1bGFyIGRvZXNuJ3QgcnVuIGNoYW5nZSBkZXRlY3Rpb24gZm9yIGNoYW5nZXMgb3JpZ2luYXRpbmcgaW5zaWRlIGFuIGlmcmFtZSxcbiAgICAgICAgLy8gc28gd2UgaGF2ZSB0byBjYWxsIHRoZSBvbkNoYW5nZSgpIGV2ZW50IGluc2lkZSBOZ1pvbmUgdG8gZm9yY2UgY2hhbmdlIHByb3BhZ2F0aW9uIHRvIGNvbnN1bWluZyBjb21wb25lbnRzLlxuICAgICAgICB0aGlzLiN6b25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgdGhpcy4jdmlld1RvTW9kZWxVcGRhdGUoKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcblxuICAgIHRoaXMuI2VkaXRvclNlcnZpY2VcbiAgICAgIC5zZWxlY3Rpb25DaGFuZ2VMaXN0ZW5lcigpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy4jdXBkYXRlU3R5bGUoKTtcbiAgICAgICAgdGhpcy5lZGl0b3JGb2N1c1N0cmVhbS5uZXh0KCk7XG4gICAgICB9KTtcblxuICAgIHRoaXMuI2VkaXRvclNlcnZpY2VcbiAgICAgIC5jbGlja0xpc3RlbmVyKClcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmVkaXRvckZvY3VzU3RyZWFtLm5leHQoKTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy4jZWRpdG9yU2VydmljZVxuICAgICAgLmJsdXJMaXN0ZW5lcigpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgLy8gQW5ndWxhciBkb2Vzbid0IHJ1biBjaGFuZ2UgZGV0ZWN0aW9uIGZvciBjaGFuZ2VzIG9yaWdpbmF0aW5nIGluc2lkZSBhbiBpZnJhbWUsXG4gICAgICAgIC8vIHNvIHdlIGhhdmUgdG8gcnVuIG1hcmtGb3JDaGVjaygpIGluc2lkZSB0aGUgTmdab25lIHRvIGZvcmNlIGNoYW5nZSBwcm9wYWdhdGlvbiB0byBjb25zdW1pbmcgY29tcG9uZW50cy5cbiAgICAgICAgdGhpcy4jem9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgIHRoaXMuI19vblRvdWNoZWQoKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcblxuICAgIHRoaXMuI2VkaXRvclNlcnZpY2VcbiAgICAgIC5jb21tYW5kQ2hhbmdlTGlzdGVuZXIoKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuI3VwZGF0ZVN0eWxlKCk7XG4gICAgICAgIHRoaXMuI3ZpZXdUb01vZGVsVXBkYXRlKCk7XG4gICAgICB9KTtcblxuICAgIHRoaXMuI2FkYXB0ZXJTZXJ2aWNlLnNldEVkaXRvcklubmVySHRtbCh0aGlzLiNfdmFsdWUpO1xuXG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICBpZiAodGhpcy5hdXRvZm9jdXMpIHtcbiAgICAgIHRoaXMuI2FkYXB0ZXJTZXJ2aWNlLmZvY3VzRWRpdG9yKCk7XG4gICAgfVxuXG4gICAgdGhpcy4jaW5pdGlhbGl6ZWQgPSB0cnVlO1xuICB9XG5cbiAgI3ZpZXdUb01vZGVsVXBkYXRlKGVtaXRDaGFuZ2UgPSB0cnVlKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHRoaXMuI2FkYXB0ZXJTZXJ2aWNlLmdldEVkaXRvcklubmVySHRtbCgpO1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKGVtaXRDaGFuZ2UpIHtcbiAgICAgIHRoaXMuI19vbkNoYW5nZSh0aGlzLiNfdmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICNfb25Ub3VjaGVkID0gKCk6IHZvaWQgPT4ge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgfTtcblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAjX29uQ2hhbmdlOiAoXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICB2YWx1ZTogYW55LFxuICApID0+IHZvaWQgPSAoKSA9PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICB9O1xufVxuIiwiPGRpdiBjbGFzcz1cInNreS10ZXh0LWVkaXRvclwiPlxuICA8c2t5LXRvb2xiYXJcbiAgICAqbmdJZj1cIlxuICAgICAgKG1lbnVzICYmIG1lbnVzLmxlbmd0aCkgPiAwIHx8XG4gICAgICAodG9vbGJhckFjdGlvbnMgJiYgdG9vbGJhckFjdGlvbnMubGVuZ3RoID4gMClcbiAgICBcIlxuICAgIGNsYXNzPVwic2t5LXRleHQtZWRpdG9yLXRvb2xiYXJcIlxuICA+XG4gICAgPHNreS10b29sYmFyLXNlY3Rpb25cbiAgICAgICpuZ0lmPVwibWVudXMgJiYgbWVudXMubGVuZ3RoID4gMFwiXG4gICAgICBhcmlhLWxhYmVsPVwiVGV4dCBmb3JtYXR0aW5nXCJcbiAgICAgIGNsYXNzPVwibWVudWJhclwiXG4gICAgICByb2xlPVwidG9vbGJhclwiXG4gICAgPlxuICAgICAgPHNreS10ZXh0LWVkaXRvci1tZW51YmFyXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIFtlZGl0b3JGb2N1c1N0cmVhbV09XCJlZGl0b3JGb2N1c1N0cmVhbVwiXG4gICAgICAgIFttZW51c109XCJtZW51c1wiXG4gICAgICAgIFttZXJnZUZpZWxkc109XCJtZXJnZUZpZWxkc1wiXG4gICAgICA+XG4gICAgICA8L3NreS10ZXh0LWVkaXRvci1tZW51YmFyPlxuICAgIDwvc2t5LXRvb2xiYXItc2VjdGlvbj5cbiAgICA8c2t5LXRvb2xiYXItc2VjdGlvblxuICAgICAgKm5nSWY9XCJ0b29sYmFyQWN0aW9ucyAmJiB0b29sYmFyQWN0aW9ucy5sZW5ndGggPiAwXCJcbiAgICAgIGFyaWEtbGFiZWw9XCJUZXh0IGZvcm1hdHRpbmdcIlxuICAgICAgY2xhc3M9XCJ0b29sYmFyXCJcbiAgICAgIHJvbGU9XCJ0b29sYmFyXCJcbiAgICA+XG4gICAgICA8c2t5LXRleHQtZWRpdG9yLXRvb2xiYXJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgW2VkaXRvckZvY3VzU3RyZWFtXT1cImVkaXRvckZvY3VzU3RyZWFtXCJcbiAgICAgICAgW2ZvbnRMaXN0XT1cImZvbnRMaXN0XCJcbiAgICAgICAgW2ZvbnRTaXplTGlzdF09XCJmb250U2l6ZUxpc3RcIlxuICAgICAgICBbbGlua1dpbmRvd09wdGlvbnNdPVwibGlua1dpbmRvd09wdGlvbnNcIlxuICAgICAgICBbdG9vbGJhckFjdGlvbnNdPVwidG9vbGJhckFjdGlvbnNcIlxuICAgICAgICBbc3R5bGVTdGF0ZV09XCJpbml0aWFsU3R5bGVTdGF0ZVwiXG4gICAgICA+XG4gICAgICA8L3NreS10ZXh0LWVkaXRvci10b29sYmFyPlxuICAgIDwvc2t5LXRvb2xiYXItc2VjdGlvbj5cbiAgPC9za3ktdG9vbGJhcj5cbiAgPGlmcmFtZVxuICAgIGNsYXNzPVwic2t5LXRleHQtZWRpdG9yLXdyYXBwZXJcIlxuICAgIHNyYz1cImFib3V0OmJsYW5rXCJcbiAgICB0aXRsZT1cIlRleHQgRWRpdG9yXCJcbiAgICBbbmdDbGFzc109XCJ7XG4gICAgICAnc2t5LXRleHQtZWRpdG9yLXdyYXBwZXItZGlzYWJsZWQnOiBkaXNhYmxlZFxuICAgIH1cIlxuICAgIChsb2FkKT1cIm9uSWZyYW1lTG9hZCgpXCJcbiAgICAjaWZyYW1lXG4gID5cbiAgPC9pZnJhbWU+XG48L2Rpdj5cbiJdfQ==
@@ -226,4 +226,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
226
226
  }], disabled: [{
227
227
  type: Input
228
228
  }] } });
229
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1lZGl0b3ItdG9vbGJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGV4dC1lZGl0b3Ivc3JjL2xpYi9tb2R1bGVzL3RleHQtZWRpdG9yL3Rvb2xiYXIvdGV4dC1lZGl0b3ItdG9vbGJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGV4dC1lZGl0b3Ivc3JjL2xpYi9tb2R1bGVzL3RleHQtZWRpdG9yL3Rvb2xiYXIvdGV4dC1lZGl0b3ItdG9vbGJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULEtBQUssRUFFTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFFTCx5QkFBeUIsRUFDekIsb0JBQW9CLEdBRXJCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFxQixlQUFlLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUVMLHNCQUFzQixFQUN0QixpQkFBaUIsR0FDbEIsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTlDLE9BQU8sRUFBRSxPQUFPLEVBQWdCLE1BQU0sTUFBTSxD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QWdCOzsyRkFHUCw2QkFBNkI7a0JBakJ6QyxTQUFTO2lDQUNJLElBQUksWUFDTix5QkFBeUIsbUJBR2xCLHVCQUF1QixDQUFDLE1BQU0sV0FDdEM7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLGlCQUFpQjt3QkFDakIsb0JBQW9CO3dCQUNwQixpQkFBaUI7d0JBQ2pCLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCxnQkFBZ0I7cUJBQ2pCOzhCQUlVLGlCQUFpQjtzQkFEM0IsS0FBSztnQkFXQyxRQUFRO3NCQURkLEtBQUs7Z0JBSUMsWUFBWTtzQkFEbEIsS0FBSztnQkFJQyxjQUFjO3NCQURwQixLQUFLO2dCQUlDLGlCQUFpQjtzQkFEdkIsS0FBSztnQkFJSyxVQUFVO3NCQURwQixLQUFLO2dCQWlCSyxRQUFRO3NCQURsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICBTa3lDb2xvcnBpY2tlck1lc3NhZ2UsXG4gIFNreUNvbG9ycGlja2VyTWVzc2FnZVR5cGUsXG4gIFNreUNvbG9ycGlja2VyTW9kdWxlLFxuICBTa3lDb2xvcnBpY2tlck91dHB1dCxcbn0gZnJvbSAnQHNreXV4L2NvbG9ycGlja2VyJztcbmltcG9ydCB7IFNreUNoZWNrYm94TW9kdWxlIH0gZnJvbSAnQHNreXV4L2Zvcm1zJztcbmltcG9ydCB7IFNreUljb25Nb2R1bGUgfSBmcm9tICdAc2t5dXgvaW5kaWNhdG9ycyc7XG5pbXBvcnQgeyBTa3lUb29sYmFyTW9kdWxlIH0gZnJvbSAnQHNreXV4L2xheW91dCc7XG5pbXBvcnQgeyBTa3lNb2RhbENsb3NlQXJncywgU2t5TW9kYWxTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L21vZGFscyc7XG5pbXBvcnQge1xuICBTa3lEcm9wZG93bk1lc3NhZ2UsXG4gIFNreURyb3Bkb3duTWVzc2FnZVR5cGUsXG4gIFNreURyb3Bkb3duTW9kdWxlLFxufSBmcm9tICdAc2t5dXgvcG9wb3ZlcnMnO1xuaW1wb3J0IHsgU2t5VGhlbWVNb2R1bGUgfSBmcm9tICdAc2t5dXgvdGhlbWUnO1xuXG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2t5Rm9ybXNVdGlsaXR5IH0gZnJvbSAnLi4vLi4vc2hhcmVkL2Zvcm1zLXV0aWxpdHknO1xuaW1wb3J0IHsgU1RZTEVfU1RBVEVfREVGQVVMVFMgfSBmcm9tICcuLi9kZWZhdWx0cy9zdHlsZS1zdGF0ZS1kZWZhdWx0cyc7XG5pbXBvcnQgeyBTa3lUZXh0RWRpdG9yQWRhcHRlclNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy90ZXh0LWVkaXRvci1hZGFwdGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2t5VGV4dEVkaXRvckZvbnQgfSBmcm9tICcuLi90eXBlcy9mb250LXN0YXRlJztcbmltcG9ydCB7IFNreVRleHRFZGl0b3JMaW5rV2luZG93T3B0aW9uc1R5cGUgfSBmcm9tICcuLi90eXBlcy9saW5rLXdpbmRvdy1vcHRpb25zLXR5cGUnO1xuaW1wb3J0IHsgU2t5VGV4dEVkaXRvclN0eWxlU3RhdGUgfSBmcm9tICcuLi90eXBlcy9zdHlsZS1zdGF0ZSc7XG5pbXBvcnQgeyBTa3lUZXh0RWRpdG9yVG9vbGJhckFjdGlvblR5cGUgfSBmcm9tICcuLi90eXBlcy90b29sYmFyLWFjdGlvbi10eXBlJztcbmltcG9ydCB7IFNreVVybE1vZGFsQ29udGV4dCB9IGZyb20gJy4uL3VybC1tb2RhbC90ZXh0LWVkaXRvci11cmwtbW9kYWwtY29udGV4dCc7XG5pbXBvcnQgeyBTa3lUZXh0RWRpdG9yVXJsTW9kYWxDb21wb25lbnQgfSBmcm9tICcuLi91cmwtbW9kYWwvdGV4dC1lZGl0b3ItdXJsLW1vZGFsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVcmxUYXJnZXQgfSBmcm9tICcuLi91cmwtbW9kYWwvdGV4dC1lZGl0b3ItdXJsLXRhcmdldCc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ3NreS10ZXh0LWVkaXRvci10b29sYmFyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RleHQtZWRpdG9yLXRvb2xiYXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90ZXh0LWVkaXRvci10b29sYmFyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFNreUNoZWNrYm94TW9kdWxlLFxuICAgIFNreUNvbG9ycGlja2VyTW9kdWxlLFxuICAgIFNreURyb3Bkb3duTW9kdWxlLFxuICAgIFNreUljb25Nb2R1bGUsXG4gICAgU2t5VGhlbWVNb2R1bGUsXG4gICAgU2t5VG9vbGJhck1vZHVsZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5VGV4dEVkaXRvclRvb2xiYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGVkaXRvckZvY3VzU3RyZWFtKHZhbHVlOiBTdWJqZWN0PHZvaWQ+KSB7XG4gICAgdGhpcy4jX2VkaXRvckZvY3VzU3RyZWFtID0gdmFsdWU7XG4gICAgdGhpcy4jc3Vic2NyaWJlRWRpdG9yRm9jdXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZWRpdG9yRm9jdXNTdHJlYW0oKTogU3ViamVjdDx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuI19lZGl0b3JGb2N1c1N0cmVhbTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmb250TGlzdDogU2t5VGV4dEVkaXRvckZvbnRbXSA9IFtdO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmb250U2l6ZUxpc3Q6IG51bWJlcltdID0gW107XG5cbiAgQElucHV0KClcbiAgcHVibGljIHRvb2xiYXJBY3Rpb25zOiBTa3lUZXh0RWRpdG9yVG9vbGJhckFjdGlvblR5cGVbXSA9IFtdO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBsaW5rV2luZG93T3B0aW9uczogU2t5VGV4dEVkaXRvckxpbmtXaW5kb3dPcHRpb25zVHlwZVtdID0gW107XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBzdHlsZVN0YXRlKHZhbHVlOiBTa3lUZXh0RWRpdG9yU3R5bGVTdGF0ZSkge1xuICAgIHRoaXMuI19zdHlsZVN0YXRlID0gdmFsdWU7XG4gICAgaWYgKHZhbHVlLmZvbnQgIT09IHRoaXMuc3R5bGVTdGF0ZUZvbnROYW1lKSB7XG4gICAgICBpZiAodmFsdWUuZm9udCA9PT0gJ1wiQmxhY2tiYXVkIFNhbnNcIiwgQXJpYWwsIHNhbnMtc2VyaWYnKSB7XG4gICAgICAgIHRoaXMuc3R5bGVTdGF0ZUZvbnROYW1lID0gdGhpcy4jZ2V0Rm9udE5hbWUoJ0JsYWNrYmF1ZCBTYW5zJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnN0eWxlU3RhdGVGb250TmFtZSA9IHRoaXMuI2dldEZvbnROYW1lKHZhbHVlLmZvbnQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgc3R5bGVTdGF0ZSgpOiBTa3lUZXh0RWRpdG9yU3R5bGVTdGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuI19zdHlsZVN0YXRlO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGNvbnN0IGNvZXJjZWRWYWx1ZSA9IFNreUZvcm1zVXRpbGl0eS5jb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIGlmIChjb2VyY2VkVmFsdWUgIT09IHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuI19kaXNhYmxlZCA9IGNvZXJjZWRWYWx1ZTtcbiAgICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuI19kaXNhYmxlZDtcbiAgfVxuXG4gIHB1YmxpYyBiYWNrQ29sb3JwaWNrZXJTdHJlYW0gPSBuZXcgU3ViamVjdDxTa3lDb2xvcnBpY2tlck1lc3NhZ2U+KCk7XG4gIHB1YmxpYyBjb2xvcnBpY2tlclN0cmVhbSA9IG5ldyBTdWJqZWN0PFNreUNvbG9ycGlja2VyTWVzc2FnZT4oKTtcbiAgcHVibGljIGZvbnRQaWNrZXJTdHJlYW0gPSBuZXcgU3ViamVjdDxTa3lEcm9wZG93bk1lc3NhZ2U+KCk7XG4gIHB1YmxpYyBmb250U2l6ZVN0cmVhbSA9IG5ldyBTdWJqZWN0PFNreURyb3Bkb3duTWVzc2FnZT4oKTtcbiAgcHVibGljIHN0eWxlU3RhdGVGb250TmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gICNlZGl0b3JGb2N1c1N0cmVhbVN1YjogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkO1xuICAjbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgI19lZGl0b3JGb2N1c1N0cmVhbSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICNfZGlzYWJsZWQgPSBmYWxzZTtcbiAgI19zdHlsZVN0YXRlID0gU1RZTEVfU1RBVEVfREVGQVVMVFM7XG5cbiAgcmVhZG9ubHkgI2FkYXB0ZXJTZXJ2aWNlID0gaW5qZWN0KFNreVRleHRFZGl0b3JBZGFwdGVyU2VydmljZSk7XG4gIHJlYWRvbmx5ICNjaGFuZ2VEZXRlY3RvciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIHJlYWRvbmx5ICNtb2RhbFNlcnZpY2UgPSBpbmplY3QoU2t5TW9kYWxTZXJ2aWNlKTtcblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy4jc3Vic2NyaWJlRWRpdG9yRm9jdXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBleGVjQ29tbWFuZChjb21tYW5kOiBzdHJpbmcsIHZhbHVlID0gJycpOiB2b2lkIHtcbiAgICB0aGlzLiNhZGFwdGVyU2VydmljZS5leGVjQ29tbWFuZCh7XG4gICAgICBjb21tYW5kOiBjb21tYW5kLFxuICAgICAgdmFsdWU6IHZhbHVlLFxuICAgIH0pO1xuICAgIHRoaXMuc3R5bGVTdGF0ZSA9IHtcbiAgICAgIC4uLnRoaXMuc3R5bGVTdGF0ZSxcbiAgICAgIC4uLnRoaXMuI2FkYXB0ZXJTZXJ2aWNlLmdldFN0eWxlU3RhdGUoKSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIHRvZ2dsZUZvbnRTdHlsZShcbiAgICBjdXJyZW50U3RhdGU6IGJvb2xlYW4sXG4gICAgbmV3U3RhdGU6IGJvb2xlYW4sXG4gICAgY29tbWFuZDogc3RyaW5nXG4gICk6IHZvaWQge1xuICAgIGlmIChjdXJyZW50U3RhdGUgIT09IG5ld1N0YXRlKSB7XG4gICAgICB0aGlzLmV4ZWNDb21tYW5kKGNvbW1hbmQpO1xuICAgIH1cblxuICAgIC8vIEZvcmNlIHNreS1jaGVja2JveCB0byBzaG93IGNoYW5nZXMgb24gdXNlcidzIGluaXRpYWwgY2xpY2suXG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcHVibGljIGxpbmsoKTogdm9pZCB7XG4gICAgY29uc3QgcHJpb3JTZWxlY3Rpb24gPSB0aGlzLiNhZGFwdGVyU2VydmljZS5zYXZlU2VsZWN0aW9uKCk7XG4gICAgY29uc3QgY3VycmVudExpbmsgPSB0aGlzLiNhZGFwdGVyU2VydmljZS5nZXRMaW5rKCk7XG4gICAgY29uc3QgaW5wdXRNb2RhbCA9IHRoaXMuI21vZGFsU2VydmljZS5vcGVuKFNreVRleHRFZGl0b3JVcmxNb2RhbENvbXBvbmVudCwgW1xuICAgICAge1xuICAgICAgICBwcm92aWRlOiBTa3lVcmxNb2RhbENvbnRleHQsXG4gICAgICAgIHVzZUZhY3Rvcnk6ICgpID0+IHtcbiAgICAgICAgICBjb25zdCBjb250ZXh0ID0gbmV3IFNreVVybE1vZGFsQ29udGV4dCgpO1xuICAgICAgICAgIGNvbnRleHQudXJsUmVzdWx0ID0gY3VycmVudExpbms7XG4gICAgICAgICAgY29udGV4dC5saW5rV2luZG93T3B0aW9ucyA9IHRoaXMubGlua1dpbmRvd09wdGlvbnM7XG5cbiAgICAgICAgICByZXR1cm4gY29udGV4dDtcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgXSk7XG4gICAgaW5wdXRNb2RhbC5jbG9zZWQuc3Vic2NyaWJlKChyZXN1bHQ6IFNreU1vZGFsQ2xvc2VBcmdzKSA9PiB7XG4gICAgICBpZiAocmVzdWx0LnJlYXNvbiA9PT0gJ3NhdmUnICYmIHByaW9yU2VsZWN0aW9uKSB7XG4gICAgICAgIGlmIChjdXJyZW50TGluaykge1xuICAgICAgICAgIGNvbnN0IGFuY2hvciA9IHRoaXMuI2FkYXB0ZXJTZXJ2aWNlLmdldFNlbGVjdGVkQW5jaG9yVGFnKCk7XG5cbiAgICAgICAgICBpZiAoYW5jaG9yKSB7XG4gICAgICAgICAgICB0aGlzLiNhZGFwdGVyU2VydmljZS5zZWxlY3RFbGVtZW50KGFuY2hvcik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5leGVjQ29tbWFuZCgndW5saW5rJyk7XG4gICAgICAgIGlmIChyZXN1bHQuZGF0YS50YXJnZXQgPT09IFVybFRhcmdldC5Ob25lKSB7XG4gICAgICAgICAgLy8gQ3VycmVudCB3aW5kb3dcbiAgICAgICAgICB0aGlzLmV4ZWNDb21tYW5kKCdjcmVhdGVMaW5rJywgcmVzdWx0LmRhdGEudXJsKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBOZXcgV2luZG93XG4gICAgICAgICAgY29uc3Qgc1RleHQgPSB0aGlzLiNhZGFwdGVyU2VydmljZS5nZXRDdXJyZW50U2VsZWN0aW9uKCk7XG4gICAgICAgICAgdGhpcy5leGVjQ29tbWFuZChcbiAgICAgICAgICAgICdpbnNlcnRIVE1MJyxcbiAgICAgICAgICAgICc8YSBocmVmPVwiJyArXG4gICAgICAgICAgICAgIHJlc3VsdC5kYXRhLnVybCArXG4gICAgICAgICAgICAgICdcIiByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCI+JyArXG4gICAgICAgICAgICAgIHNUZXh0ICtcbiAgICAgICAgICAgICAgJzwvYT4nXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHVubGluaygpOiB2b2lkIHtcbiAgICBjb25zdCBjdXJyZW50U2VsZWN0aW9uUmFuZ2UgPSB0aGlzLiNhZGFwdGVyU2VydmljZVxuICAgICAgLmdldEN1cnJlbnRTZWxlY3Rpb24oKVxuICAgICAgPy5nZXRSYW5nZUF0KDApO1xuICAgIGlmIChjdXJyZW50U2VsZWN0aW9uUmFuZ2UgJiYgY3VycmVudFNlbGVjdGlvblJhbmdlLnRvU3RyaW5nKCkubGVuZ3RoIDw9IDApIHtcbiAgICAgIGNvbnN0IGFuY2hvclRhZyA9IHRoaXMuI2FkYXB0ZXJTZXJ2aWNlLmdldFNlbGVjdGVkQW5jaG9yVGFnKCk7XG4gICAgICBpZiAoYW5jaG9yVGFnKSB7XG4gICAgICAgIHRoaXMuI2FkYXB0ZXJTZXJ2aWNlLnNlbGVjdEVsZW1lbnQoYW5jaG9yVGFnKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5leGVjQ29tbWFuZCgndW5saW5rJyk7XG4gIH1cblxuICBwdWJsaWMgY2hhbmdlRm9udFNpemUoc2l6ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy4jYWRhcHRlclNlcnZpY2Uuc2V0Rm9udFNpemUoc2l6ZSk7XG4gICAgdGhpcy5zdHlsZVN0YXRlID0ge1xuICAgICAgLi4udGhpcy5zdHlsZVN0YXRlLFxuICAgICAgLi4udGhpcy4jYWRhcHRlclNlcnZpY2UuZ2V0U3R5bGVTdGF0ZSgpLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgb25Db2xvcnBpY2tlckNvbG9yQ2hhbmdlZChcbiAgICBjb2xvcjogU2t5Q29sb3JwaWNrZXJPdXRwdXQsXG4gICAgaXNCYWNrZ3JvdW5kID0gZmFsc2VcbiAgKTogdm9pZCB7XG4gICAgdGhpcy5leGVjQ29tbWFuZChpc0JhY2tncm91bmQgPyAnYmFja0NvbG9yJyA6ICdmb3JlQ29sb3InLCBjb2xvci5oZXgpO1xuICB9XG5cbiAgI3N1YnNjcmliZUVkaXRvckZvY3VzKCk6IHZvaWQge1xuICAgIHRoaXMuI2VkaXRvckZvY3VzU3RyZWFtU3ViPy51bnN1YnNjcmliZSgpO1xuXG4gICAgdGhpcy4jZWRpdG9yRm9jdXNTdHJlYW1TdWIgPSB0aGlzLmVkaXRvckZvY3VzU3RyZWFtXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5zdHlsZVN0YXRlID0ge1xuICAgICAgICAgIC4uLnRoaXMuc3R5bGVTdGF0ZSxcbiAgICAgICAgICAuLi50aGlzLiNhZGFwdGVyU2VydmljZS5nZXRTdHlsZVN0YXRlKCksXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuI2Nsb3NlRHJvcGRvd25zKCk7XG4gICAgICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgI2Nsb3NlRHJvcGRvd25zKCk6IHZvaWQge1xuICAgIGNvbnN0IG1lc3NhZ2U6IFNreUNvbG9ycGlja2VyTWVzc2FnZSA9IHtcbiAgICAgIHR5cGU6IFNreUNvbG9ycGlja2VyTWVzc2FnZVR5cGUuQ2xvc2UsXG4gICAgfTtcbiAgICB0aGlzLmNvbG9ycGlja2VyU3RyZWFtLm5leHQobWVzc2FnZSk7XG4gICAgdGhpcy5iYWNrQ29sb3JwaWNrZXJTdHJlYW0ubmV4dChtZXNzYWdlKTtcbiAgICB0aGlzLmZvbnRQaWNrZXJTdHJlYW0ubmV4dCh7IHR5cGU6IFNreURyb3Bkb3duTWVzc2FnZVR5cGUuQ2xvc2UgfSk7XG4gICAgdGhpcy5mb250U2l6ZVN0cmVhbS5uZXh0KHsgdHlwZTogU2t5RHJvcGRvd25NZXNzYWdlVHlwZS5DbG9zZSB9KTtcbiAgfVxuXG4gICNnZXRGb250TmFtZShmb250TmFtZTogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuZm9udExpc3QubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChmb250TmFtZS5yZXBsYWNlKC9bJ1wiXSsvZywgJycpID09PSB0aGlzLmZvbnRMaXN0W2ldLm5hbWUpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9udExpc3RbaV0ubmFtZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cbiIsIjxza3ktdG9vbGJhci1pdGVtXG4gICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgdG9vbGJhckFjdGlvbnNcIlxuICBjbGFzcz1cInNreS10ZXh0LWVkaXRvci10b29sYmFyLWFjdGlvblwiXG4gIFtuZ0NsYXNzXT1cIidza3ktdGV4dC1lZGl0b3ItdG9vbGJhci1hY3Rpb24tJyArIGFjdGlvblwiXG4+XG4gIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImFjdGlvblwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidmb250LWZhbWlseSdcIj5cbiAgICAgIDxza3ktZHJvcGRvd25cbiAgICAgICAgY2xhc3M9XCJza3ktdGV4dC1lZGl0b3ItZm9udC1waWNrZXJcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICBbbGFiZWxdPVwiJ0ZvbnQ6ICcgKyBzdHlsZVN0YXRlRm9udE5hbWVcIlxuICAgICAgICBbbWVzc2FnZVN0cmVhbV09XCJmb250UGlja2VyU3RyZWFtXCJcbiAgICAgID5cbiAgICAgICAgPHNreS1kcm9wZG93bi1idXR0b25cbiAgICAgICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgICAgICAnZm9udC1mYW1pbHknOiBzdHlsZVN0YXRlLmZvbnRcbiAgICAgICAgICB9XCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IHN0eWxlU3RhdGVGb250TmFtZSB9fVxuICAgICAgICA8L3NreS1kcm9wZG93bi1idXR0b24+XG4gICAgICAgIDxza3ktZHJvcGRvd24tbWVudT5cbiAgICAgICAgICA8c2t5LWRyb3Bkb3duLWl0ZW0gKm5nRm9yPVwibGV0IGZvbnRNb2RlbCBvZiBmb250TGlzdFwiPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAgICAgICAgICdmb250LWZhbWlseSc6IGZvbnRNb2RlbC52YWx1ZVxuICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImV4ZWNDb21tYW5kKCdmb250bmFtZScsIGZvbnRNb2RlbC5uYW1lKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7IGZvbnRNb2RlbC5uYW1lIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L3NreS1kcm9wZG93bi1pdGVtPlxuICAgICAgICA8L3NreS1kcm9wZG93bi1tZW51PlxuICAgICAgPC9za3ktZHJvcGRvd24+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2ZvbnQtc2l6ZSdcIj5cbiAgICAgIDxza3ktZHJvcGRvd25cbiAgICAgICAgY2xhc3M9XCJza3ktdGV4dC1lZGl0b3ItZm9udC1zaXplLXBpY2tlclwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIFtsYWJlbF09XCInRm9udCBzaXplOiAnICsgc3R5bGVTdGF0ZS5mb250U2l6ZSArICdweCdcIlxuICAgICAgICBbbWVzc2FnZVN0cmVhbV09XCJmb250U2l6ZVN0cmVhbVwiXG4gICAgICA+XG4gICAgICAgIDxza3ktZHJvcGRvd24tYnV0dG9uXG4gICAgICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAgICAgJ2ZvbnQtZmFtaWx5Jzogc3R5bGVTdGF0ZS5mb250U2l6ZVxuICAgICAgICAgIH1cIlxuICAgICAgICA+XG4gICAgICAgICAge3sgc3R5bGVTdGF0ZS5mb250U2l6ZSArICdweCcgfX1cbiAgICAgICAgPC9za3ktZHJvcGRvd24tYnV0dG9uPlxuICAgICAgICA8c2t5LWRyb3Bkb3duLW1lbnU+XG4gICAgICAgICAgPHNreS1kcm9wZG93bi1pdGVtICpuZ0Zvcj1cImxldCBzaXplIG9mIGZvbnRTaXplTGlzdFwiPlxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImNoYW5nZUZvbnRTaXplKHNpemUpXCI+XG4gICAgICAgICAgICAgIHt7IHNpemUgKyAncHgnIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L3NreS1kcm9wZG93bi1pdGVtPlxuICAgICAgICA8L3NreS1kcm9wZG93bi1tZW51PlxuICAgICAgPC9za3ktZHJvcGRvd24+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2ZvbnQtc3R5bGUnXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwic2t5LXN3aXRjaC1pY29uLWdyb3VwIHNreS10ZXh0LWVkaXRvci1mb250LXN0eWxlLXBpY2tlclwiPlxuICAgICAgICA8c2t5LWNoZWNrYm94XG4gICAgICAgICAgaWNvbj1cImJvbGRcIlxuICAgICAgICAgIGxhYmVsPVwiQm9sZFwiXG4gICAgICAgICAgdGl0bGU9XCJCb2xkXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgIFtuZ01vZGVsXT1cInN0eWxlU3RhdGUuYm9sZFN0YXRlXCJcbiAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJcbiAgICAgICAgICAgIHRvZ2dsZUZvbnRTdHlsZShzdHlsZVN0YXRlLmJvbGRTdGF0ZSwgJGV2ZW50LCAnYm9sZCcpXG4gICAgICAgICAgXCJcbiAgICAgICAgPlxuICAgICAgICA8L3NreS1jaGVja2JveD5cbiAgICAgICAgPHNreS1jaGVja2JveFxuICAgICAgICAgIGljb249XCJpdGFsaWNcIlxuICAgICAgICAgIGxhYmVsPVwiSXRhbGljaXplZFwiXG4gICAgICAgICAgdGl0bGU9XCJJdGFsaWNpemVkXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgIFtuZ01vZGVsXT1cInN0eWxlU3RhdGUuaXRhbGljU3RhdGVcIlxuICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIlxuICAgICAgICAgICAgdG9nZ2xlRm9udFN0eWxlKHN0eWxlU3RhdGUuaXRhbGljU3RhdGUsICRldmVudCwgJ2l0YWxpYycpXG4gICAgICAgICAgXCJcbiAgICAgICAgPlxuICAgICAgICA8L3NreS1jaGVja2JveD5cbiAgICAgICAgPHNreS1jaGVja2JveFxuICAgICAgICAgIGljb249XCJ1bmRlcmxpbmVcIlxuICAgICAgICAgIGxhYmVsPVwiVW5kZXJsaW5lXCJcbiAgICAgICAgICB0aXRsZT1cIlVuZGVybGluZVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICBbbmdNb2RlbF09XCJzdHlsZVN0YXRlLnVuZGVybGluZVN0YXRlXCJcbiAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJcbiAgICAgICAgICAgIHRvZ2dsZUZvbnRTdHlsZShzdHlsZVN0YXRlLnVuZGVybGluZVN0YXRlLCAkZXZlbnQsICd1bmRlcmxpbmUnKVxuICAgICAgICAgIFwiXG4gICAgICAgID5cbiAgICAgICAgPC9za3ktY2hlY2tib3g+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInY29sb3InXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwic2t5LXRleHQtZWRpdG9yLWNvbG9ycGlja2VyLWdyb3VwXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJza3ktdGV4dC1lZGl0b3ItY29sb3JwaWNrZXItY29udGFpbmVyXCI+XG4gICAgICAgICAgPHNreS1jb2xvcnBpY2tlclxuICAgICAgICAgICAgY2xhc3M9XCJza3ktdGV4dC1lZGl0b3ItZm9udC1jb2xvci1waWNrZXJcIlxuICAgICAgICAgICAgbGFiZWw9XCJGb250IGNvbG9yXCJcbiAgICAgICAgICAgIFttZXNzYWdlU3RyZWFtXT1cImNvbG9ycGlja2VyU3RyZWFtXCJcbiAgICAgICAgICAgIFtzaG93UmVzZXRCdXR0b25dPVwiZmFsc2VcIlxuICAgICAgICAgICAgKHNlbGVjdGVkQ29sb3JDaGFuZ2VkKT1cIm9uQ29sb3JwaWNrZXJDb2xvckNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICBwaWNrZXJCdXR0b25JY29uPVwiaGlnaGxpZ2h0ZXJcIlxuICAgICAgICAgICAgcGlja2VyQnV0dG9uSWNvblR5cGU9XCJza3l1eFwiXG4gICAgICAgICAgICAjY29sb3JQaWNrZXJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgb3V0cHV0Rm9ybWF0PVwiaGV4XCJcbiAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICBbYWxsb3dUcmFuc3BhcmVuY3ldPVwiZmFsc2VcIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgICBbbmdNb2RlbF09XCJzdHlsZVN0YXRlLmZvbnRDb2xvclwiXG4gICAgICAgICAgICAgIFtza3lDb2xvcnBpY2tlcklucHV0XT1cImNvbG9yUGlja2VyXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9za3ktY29sb3JwaWNrZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2t5LXRleHQtZWRpdG9yLWNvbG9ycGlja2VyLWNvbnRhaW5lclwiPlxuICAgICAgICAgIDxza3ktY29sb3JwaWNrZXJcbiAgICAgICAgICAgIGNsYXNzPVwic2t5LXRleHQtZWRpdG9yLWJhY2tncm91bmQtY29sb3ItcGlja2VyXCJcbiAgICAgICAgICAgIGxhYmVsPVwiQmFja2dyb3VuZCBjb2xvclwiXG4gICAgICAgICAgICBbbWVzc2FnZVN0cmVhbV09XCJiYWNrQ29sb3JwaWNrZXJTdHJlYW1cIlxuICAgICAgICAgICAgW3Nob3dSZXNldEJ1dHRvbl09XCJmYWxzZVwiXG4gICAgICAgICAgICAoc2VsZWN0ZWRDb2xvckNoYW5nZWQpPVwib25Db2xvcnBpY2tlckNvbG9yQ2hhbmdlZCgkZXZlbnQsIHRydWUpXCJcbiAgICAgICAgICAgICNiYWNrQ29sb3JQaWNrZXJcbiAgICAgICAgICAgIHBpY2tlckJ1dHRvbkljb249XCJ0ZXh0LWNvbG9yXCJcbiAgICAgICAgICAgIHBpY2tlckJ1dHRvbkljb25UeXBlPVwic2t5dXhcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICBvdXRwdXRGb3JtYXQ9XCJyZ2JhXCJcbiAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICBbYWxsb3dUcmFuc3BhcmVuY3ldPVwidHJ1ZVwiXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICAgIFtuZ01vZGVsXT1cInN0eWxlU3RhdGUuYmFja0NvbG9yXCJcbiAgICAgICAgICAgICAgW3NreUNvbG9ycGlja2VySW5wdXRdPVwiYmFja0NvbG9yUGlja2VyXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9za3ktY29sb3JwaWNrZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2xpc3QnXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwic2t5LXN3aXRjaC1pY29uLWdyb3VwXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBhcmlhLWxhYmVsPVwiQnVsbGV0ZWQgbGlzdFwiXG4gICAgICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS1idG4tZGVmYXVsdCBza3ktYnRuLWljb25cIlxuICAgICAgICAgIHRpdGxlPVwiQnVsbGV0ZWQgbGlzdFwiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAoY2xpY2spPVwiZXhlY0NvbW1hbmQoJ2luc2VydFVub3JkZXJlZExpc3QnKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8c2t5LWljb24gaWNvbj1cImJ1bGxldC1saXN0XCIgLz5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBhcmlhLWxhYmVsPVwiTnVtYmVyZWQgbGlzdFwiXG4gICAgICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS1idG4tZGVmYXVsdCBza3ktYnRuLWljb25cIlxuICAgICAgICAgIHRpdGxlPVwiTnVtYmVyZWQgbGlzdFwiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAoY2xpY2spPVwiZXhlY0NvbW1hbmQoJ2luc2VydE9yZGVyZWRMaXN0JylcIlxuICAgICAgICA+XG4gICAgICAgICAgPHNreS1pY29uIGljb249XCJudW1iZXItbGlzdFwiIC8+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2FsaWdubWVudCdcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJza3ktc3dpdGNoLWljb24tZ3JvdXBcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGFyaWEtbGFiZWw9XCJBbGlnbiBsZWZ0XCJcbiAgICAgICAgICBjbGFzcz1cInNreS1idG4gc2t5LWJ0bi1kZWZhdWx0IHNreS1idG4taWNvblwiXG4gICAgICAgICAgdGl0bGU9XCJBbGlnbiBsZWZ0XCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgIChjbGljayk9XCJleGVjQ29tbWFuZCgnanVzdGlmeUxlZnQnKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8c2t5LWljb24gaWNvbj1cImFsaWduLWxlZnQtdGV4dFwiIC8+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgYXJpYS1sYWJlbD1cIkFsaWduIGNlbnRlclwiXG4gICAgICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS1idG4tZGVmYXVsdCBza3ktYnRuLWljb25cIlxuICAgICAgICAgIHRpdGxlPVwiQWxpZ24gY2VudGVyXCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgIChjbGljayk9XCJleGVjQ29tbWFuZCgnanVzdGlmeUNlbnRlcicpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxza3ktaWNvbiBpY29uPVwiY2VudGVyLXRleHRcIiAvPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGFyaWEtbGFiZWw9XCJBbGlnbiByaWdodFwiXG4gICAgICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS1idG4tZGVmYXVsdCBza3ktYnRuLWljb25cIlxuICAgICAgICAgIHRpdGxlPVwiQWxpZ24gcmlnaHRcIlxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgKGNsaWNrKT1cImV4ZWNDb21tYW5kKCdqdXN0aWZ5UmlnaHQnKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8c2t5LWljb24gaWNvbj1cImFsaWduLXJpZ2h0LXRleHRcIiAvPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidpbmRlbnRhdGlvbidcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJza3ktc3dpdGNoLWljb24tZ3JvdXBcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGFyaWEtbGFiZWw9XCJPdXRkZW50XCJcbiAgICAgICAgICBjbGFzcz1cInNreS1idG4gc2t5LWJ0bi1kZWZhdWx0IHNreS1idG4taWNvblwiXG4gICAgICAgICAgdGl0bGU9XCJPdXRkZW50XCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgIChjbGljayk9XCJleGVjQ29tbWFuZCgnb3V0ZGVudCcpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxza3ktaWNvbiBpY29uPVwib3V0ZGVudFwiIC8+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgYXJpYS1sYWJlbD1cIkluZGVudFwiXG4gICAgICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS1idG4tZGVmYXVsdCBza3ktYnRuLWljb25cIlxuICAgICAgICAgIHRpdGxlPVwiSW5kZW50XCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgIChjbGljayk9XCJleGVjQ29tbWFuZCgnaW5kZW50JylcIlxuICAgICAgICA+XG4gICAgICAgICAgPHNreS1pY29uIGljb249XCJpbmRlbnRcIiAvPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIid1bmRvLXJlZG8nXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwic2t5LXN3aXRjaC1pY29uLWdyb3VwXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBhcmlhLWxhYmVsPVwiVW5kb1wiXG4gICAgICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS1idG4tZGVmYXVsdCBza3ktYnRuLWljb25cIlxuICAgICAgICAgIHRpdGxlPVwiVW5kb1wiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAoY2xpY2spPVwiZXhlY0NvbW1hbmQoJ3VuZG8nKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8c2t5LWljb24gaWNvbj1cInVuZG9cIiAvPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGFyaWEtbGFiZWw9XCJSZWRvXCJcbiAgICAgICAgICBjbGFzcz1cInNreS1idG4gc2t5LWJ0bi1kZWZhdWx0IHNreS1idG4taWNvblwiXG4gICAgICAgICAgdGl0bGU9XCJSZWRvXCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgIChjbGljayk9XCJleGVjQ29tbWFuZCgncmVkbycpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxza3ktaWNvbiBpY29uPVwicmVkb1wiIC8+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2xpbmsnXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwic2t5LXN3aXRjaC1pY29uLWdyb3VwXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBhcmlhLWxhYmVsPVwiTGlua1wiXG4gICAgICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS1idG4tZGVmYXVsdCBza3ktYnRuLWljb25cIlxuICAgICAgICAgIHRpdGxlPVwiTGlua1wiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAnaWNvbi1idG4tYWN0aXZlJzogc3R5bGVTdGF0ZS5saW5rU3RhdGVcbiAgICAgICAgICB9XCJcbiAgICAgICAgICAoY2xpY2spPVwibGluaygpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxza3ktaWNvbiBpY29uPVwibGlua1wiIC8+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgYXJpYS1sYWJlbD1cIlVubGlua1wiXG4gICAgICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS1idG4tZGVmYXVsdCBza3ktYnRuLWljb25cIlxuICAgICAgICAgIHRpdGxlPVwiVW5saW5rXCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiIXN0eWxlU3RhdGUubGlua1N0YXRlIHx8IGRpc2FibGVkXCJcbiAgICAgICAgICAoY2xpY2spPVwidW5saW5rKClcIlxuICAgICAgICA+XG4gICAgICAgICAgPHNreS1pY29uIGljb249XCJ1bmxpbmtcIiAvPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvc2t5LXRvb2xiYXItaXRlbT5cbiJdfQ==
229
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1lZGl0b3ItdG9vbGJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGV4dC1lZGl0b3Ivc3JjL2xpYi9tb2R1bGVzL3RleHQtZWRpdG9yL3Rvb2xiYXIvdGV4dC1lZGl0b3ItdG9vbGJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGV4dC1lZGl0b3Ivc3JjL2xpYi9tb2R1bGVzL3RleHQtZWRpdG9yL3Rvb2xiYXIvdGV4dC1lZGl0b3ItdG9vbGJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULEtBQUssRUFFTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFFTCx5QkFBeUIsRUFDekIsb0JBQW9CLEdBRXJCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFxQixlQUFlLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUVMLHNCQUFzQixFQUN0QixpQkFBaUIsR0FDbEIsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTlDLE9BQU8sRUFBRSxPQUFPLEVBQWdCLE1BQU0sTUFBTSxD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QWdCOzsyRkFHUCw2QkFBNkI7a0JBakJ6QyxTQUFTO2lDQUNJLElBQUksWUFDTix5QkFBeUIsbUJBR2xCLHVCQUF1QixDQUFDLE1BQU0sV0FDdEM7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLGlCQUFpQjt3QkFDakIsb0JBQW9CO3dCQUNwQixpQkFBaUI7d0JBQ2pCLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCxnQkFBZ0I7cUJBQ2pCOzhCQUlVLGlCQUFpQjtzQkFEM0IsS0FBSztnQkFXQyxRQUFRO3NCQURkLEtBQUs7Z0JBSUMsWUFBWTtzQkFEbEIsS0FBSztnQkFJQyxjQUFjO3NCQURwQixLQUFLO2dCQUlDLGlCQUFpQjtzQkFEdkIsS0FBSztnQkFJSyxVQUFVO3NCQURwQixLQUFLO2dCQWlCSyxRQUFRO3NCQURsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICBTa3lDb2xvcnBpY2tlck1lc3NhZ2UsXG4gIFNreUNvbG9ycGlja2VyTWVzc2FnZVR5cGUsXG4gIFNreUNvbG9ycGlja2VyTW9kdWxlLFxuICBTa3lDb2xvcnBpY2tlck91dHB1dCxcbn0gZnJvbSAnQHNreXV4L2NvbG9ycGlja2VyJztcbmltcG9ydCB7IFNreUNoZWNrYm94TW9kdWxlIH0gZnJvbSAnQHNreXV4L2Zvcm1zJztcbmltcG9ydCB7IFNreUljb25Nb2R1bGUgfSBmcm9tICdAc2t5dXgvaW5kaWNhdG9ycyc7XG5pbXBvcnQgeyBTa3lUb29sYmFyTW9kdWxlIH0gZnJvbSAnQHNreXV4L2xheW91dCc7XG5pbXBvcnQgeyBTa3lNb2RhbENsb3NlQXJncywgU2t5TW9kYWxTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L21vZGFscyc7XG5pbXBvcnQge1xuICBTa3lEcm9wZG93bk1lc3NhZ2UsXG4gIFNreURyb3Bkb3duTWVzc2FnZVR5cGUsXG4gIFNreURyb3Bkb3duTW9kdWxlLFxufSBmcm9tICdAc2t5dXgvcG9wb3ZlcnMnO1xuaW1wb3J0IHsgU2t5VGhlbWVNb2R1bGUgfSBmcm9tICdAc2t5dXgvdGhlbWUnO1xuXG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2t5Rm9ybXNVdGlsaXR5IH0gZnJvbSAnLi4vLi4vc2hhcmVkL2Zvcm1zLXV0aWxpdHknO1xuaW1wb3J0IHsgU1RZTEVfU1RBVEVfREVGQVVMVFMgfSBmcm9tICcuLi9kZWZhdWx0cy9zdHlsZS1zdGF0ZS1kZWZhdWx0cyc7XG5pbXBvcnQgeyBTa3lUZXh0RWRpdG9yQWRhcHRlclNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy90ZXh0LWVkaXRvci1hZGFwdGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2t5VGV4dEVkaXRvckZvbnQgfSBmcm9tICcuLi90eXBlcy9mb250LXN0YXRlJztcbmltcG9ydCB7IFNreVRleHRFZGl0b3JMaW5rV2luZG93T3B0aW9uc1R5cGUgfSBmcm9tICcuLi90eXBlcy9saW5rLXdpbmRvdy1vcHRpb25zLXR5cGUnO1xuaW1wb3J0IHsgU2t5VGV4dEVkaXRvclN0eWxlU3RhdGUgfSBmcm9tICcuLi90eXBlcy9zdHlsZS1zdGF0ZSc7XG5pbXBvcnQgeyBTa3lUZXh0RWRpdG9yVG9vbGJhckFjdGlvblR5cGUgfSBmcm9tICcuLi90eXBlcy90b29sYmFyLWFjdGlvbi10eXBlJztcbmltcG9ydCB7IFNreVVybE1vZGFsQ29udGV4dCB9IGZyb20gJy4uL3VybC1tb2RhbC90ZXh0LWVkaXRvci11cmwtbW9kYWwtY29udGV4dCc7XG5pbXBvcnQgeyBTa3lUZXh0RWRpdG9yVXJsTW9kYWxDb21wb25lbnQgfSBmcm9tICcuLi91cmwtbW9kYWwvdGV4dC1lZGl0b3ItdXJsLW1vZGFsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVcmxUYXJnZXQgfSBmcm9tICcuLi91cmwtbW9kYWwvdGV4dC1lZGl0b3ItdXJsLXRhcmdldCc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ3NreS10ZXh0LWVkaXRvci10b29sYmFyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RleHQtZWRpdG9yLXRvb2xiYXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90ZXh0LWVkaXRvci10b29sYmFyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFNreUNoZWNrYm94TW9kdWxlLFxuICAgIFNreUNvbG9ycGlja2VyTW9kdWxlLFxuICAgIFNreURyb3Bkb3duTW9kdWxlLFxuICAgIFNreUljb25Nb2R1bGUsXG4gICAgU2t5VGhlbWVNb2R1bGUsXG4gICAgU2t5VG9vbGJhck1vZHVsZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5VGV4dEVkaXRvclRvb2xiYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGVkaXRvckZvY3VzU3RyZWFtKHZhbHVlOiBTdWJqZWN0PHZvaWQ+KSB7XG4gICAgdGhpcy4jX2VkaXRvckZvY3VzU3RyZWFtID0gdmFsdWU7XG4gICAgdGhpcy4jc3Vic2NyaWJlRWRpdG9yRm9jdXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZWRpdG9yRm9jdXNTdHJlYW0oKTogU3ViamVjdDx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuI19lZGl0b3JGb2N1c1N0cmVhbTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmb250TGlzdDogU2t5VGV4dEVkaXRvckZvbnRbXSA9IFtdO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmb250U2l6ZUxpc3Q6IG51bWJlcltdID0gW107XG5cbiAgQElucHV0KClcbiAgcHVibGljIHRvb2xiYXJBY3Rpb25zOiBTa3lUZXh0RWRpdG9yVG9vbGJhckFjdGlvblR5cGVbXSA9IFtdO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBsaW5rV2luZG93T3B0aW9uczogU2t5VGV4dEVkaXRvckxpbmtXaW5kb3dPcHRpb25zVHlwZVtdID0gW107XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBzdHlsZVN0YXRlKHZhbHVlOiBTa3lUZXh0RWRpdG9yU3R5bGVTdGF0ZSkge1xuICAgIHRoaXMuI19zdHlsZVN0YXRlID0gdmFsdWU7XG4gICAgaWYgKHZhbHVlLmZvbnQgIT09IHRoaXMuc3R5bGVTdGF0ZUZvbnROYW1lKSB7XG4gICAgICBpZiAodmFsdWUuZm9udCA9PT0gJ1wiQmxhY2tiYXVkIFNhbnNcIiwgQXJpYWwsIHNhbnMtc2VyaWYnKSB7XG4gICAgICAgIHRoaXMuc3R5bGVTdGF0ZUZvbnROYW1lID0gdGhpcy4jZ2V0Rm9udE5hbWUoJ0JsYWNrYmF1ZCBTYW5zJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnN0eWxlU3RhdGVGb250TmFtZSA9IHRoaXMuI2dldEZvbnROYW1lKHZhbHVlLmZvbnQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgc3R5bGVTdGF0ZSgpOiBTa3lUZXh0RWRpdG9yU3R5bGVTdGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuI19zdHlsZVN0YXRlO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGNvbnN0IGNvZXJjZWRWYWx1ZSA9IFNreUZvcm1zVXRpbGl0eS5jb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIGlmIChjb2VyY2VkVmFsdWUgIT09IHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuI19kaXNhYmxlZCA9IGNvZXJjZWRWYWx1ZTtcbiAgICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuI19kaXNhYmxlZDtcbiAgfVxuXG4gIHB1YmxpYyBiYWNrQ29sb3JwaWNrZXJTdHJlYW0gPSBuZXcgU3ViamVjdDxTa3lDb2xvcnBpY2tlck1lc3NhZ2U+KCk7XG4gIHB1YmxpYyBjb2xvcnBpY2tlclN0cmVhbSA9IG5ldyBTdWJqZWN0PFNreUNvbG9ycGlja2VyTWVzc2FnZT4oKTtcbiAgcHVibGljIGZvbnRQaWNrZXJTdHJlYW0gPSBuZXcgU3ViamVjdDxTa3lEcm9wZG93bk1lc3NhZ2U+KCk7XG4gIHB1YmxpYyBmb250U2l6ZVN0cmVhbSA9IG5ldyBTdWJqZWN0PFNreURyb3Bkb3duTWVzc2FnZT4oKTtcbiAgcHVibGljIHN0eWxlU3RhdGVGb250TmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gICNlZGl0b3JGb2N1c1N0cmVhbVN1YjogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkO1xuICAjbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgI19lZGl0b3JGb2N1c1N0cmVhbSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICNfZGlzYWJsZWQgPSBmYWxzZTtcbiAgI19zdHlsZVN0YXRlID0gU1RZTEVfU1RBVEVfREVGQVVMVFM7XG5cbiAgcmVhZG9ubHkgI2FkYXB0ZXJTZXJ2aWNlID0gaW5qZWN0KFNreVRleHRFZGl0b3JBZGFwdGVyU2VydmljZSk7XG4gIHJlYWRvbmx5ICNjaGFuZ2VEZXRlY3RvciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIHJlYWRvbmx5ICNtb2RhbFNlcnZpY2UgPSBpbmplY3QoU2t5TW9kYWxTZXJ2aWNlKTtcblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy4jc3Vic2NyaWJlRWRpdG9yRm9jdXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBleGVjQ29tbWFuZChjb21tYW5kOiBzdHJpbmcsIHZhbHVlID0gJycpOiB2b2lkIHtcbiAgICB0aGlzLiNhZGFwdGVyU2VydmljZS5leGVjQ29tbWFuZCh7XG4gICAgICBjb21tYW5kOiBjb21tYW5kLFxuICAgICAgdmFsdWU6IHZhbHVlLFxuICAgIH0pO1xuICAgIHRoaXMuc3R5bGVTdGF0ZSA9IHtcbiAgICAgIC4uLnRoaXMuc3R5bGVTdGF0ZSxcbiAgICAgIC4uLnRoaXMuI2FkYXB0ZXJTZXJ2aWNlLmdldFN0eWxlU3RhdGUoKSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIHRvZ2dsZUZvbnRTdHlsZShcbiAgICBjdXJyZW50U3RhdGU6IGJvb2xlYW4sXG4gICAgbmV3U3RhdGU6IGJvb2xlYW4sXG4gICAgY29tbWFuZDogc3RyaW5nLFxuICApOiB2b2lkIHtcbiAgICBpZiAoY3VycmVudFN0YXRlICE9PSBuZXdTdGF0ZSkge1xuICAgICAgdGhpcy5leGVjQ29tbWFuZChjb21tYW5kKTtcbiAgICB9XG5cbiAgICAvLyBGb3JjZSBza3ktY2hlY2tib3ggdG8gc2hvdyBjaGFuZ2VzIG9uIHVzZXIncyBpbml0aWFsIGNsaWNrLlxuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBsaW5rKCk6IHZvaWQge1xuICAgIGNvbnN0IHByaW9yU2VsZWN0aW9uID0gdGhpcy4jYWRhcHRlclNlcnZpY2Uuc2F2ZVNlbGVjdGlvbigpO1xuICAgIGNvbnN0IGN1cnJlbnRMaW5rID0gdGhpcy4jYWRhcHRlclNlcnZpY2UuZ2V0TGluaygpO1xuICAgIGNvbnN0IGlucHV0TW9kYWwgPSB0aGlzLiNtb2RhbFNlcnZpY2Uub3BlbihTa3lUZXh0RWRpdG9yVXJsTW9kYWxDb21wb25lbnQsIFtcbiAgICAgIHtcbiAgICAgICAgcHJvdmlkZTogU2t5VXJsTW9kYWxDb250ZXh0LFxuICAgICAgICB1c2VGYWN0b3J5OiAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgY29udGV4dCA9IG5ldyBTa3lVcmxNb2RhbENvbnRleHQoKTtcbiAgICAgICAgICBjb250ZXh0LnVybFJlc3VsdCA9IGN1cnJlbnRMaW5rO1xuICAgICAgICAgIGNvbnRleHQubGlua1dpbmRvd09wdGlvbnMgPSB0aGlzLmxpbmtXaW5kb3dPcHRpb25zO1xuXG4gICAgICAgICAgcmV0dXJuIGNvbnRleHQ7XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIF0pO1xuICAgIGlucHV0TW9kYWwuY2xvc2VkLnN1YnNjcmliZSgocmVzdWx0OiBTa3lNb2RhbENsb3NlQXJncykgPT4ge1xuICAgICAgaWYgKHJlc3VsdC5yZWFzb24gPT09ICdzYXZlJyAmJiBwcmlvclNlbGVjdGlvbikge1xuICAgICAgICBpZiAoY3VycmVudExpbmspIHtcbiAgICAgICAgICBjb25zdCBhbmNob3IgPSB0aGlzLiNhZGFwdGVyU2VydmljZS5nZXRTZWxlY3RlZEFuY2hvclRhZygpO1xuXG4gICAgICAgICAgaWYgKGFuY2hvcikge1xuICAgICAgICAgICAgdGhpcy4jYWRhcHRlclNlcnZpY2Uuc2VsZWN0RWxlbWVudChhbmNob3IpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZXhlY0NvbW1hbmQoJ3VubGluaycpO1xuICAgICAgICBpZiAocmVzdWx0LmRhdGEudGFyZ2V0ID09PSBVcmxUYXJnZXQuTm9uZSkge1xuICAgICAgICAgIC8vIEN1cnJlbnQgd2luZG93XG4gICAgICAgICAgdGhpcy5leGVjQ29tbWFuZCgnY3JlYXRlTGluaycsIHJlc3VsdC5kYXRhLnVybCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gTmV3IFdpbmRvd1xuICAgICAgICAgIGNvbnN0IHNUZXh0ID0gdGhpcy4jYWRhcHRlclNlcnZpY2UuZ2V0Q3VycmVudFNlbGVjdGlvbigpO1xuICAgICAgICAgIHRoaXMuZXhlY0NvbW1hbmQoXG4gICAgICAgICAgICAnaW5zZXJ0SFRNTCcsXG4gICAgICAgICAgICAnPGEgaHJlZj1cIicgK1xuICAgICAgICAgICAgICByZXN1bHQuZGF0YS51cmwgK1xuICAgICAgICAgICAgICAnXCIgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiIHRhcmdldD1cIl9ibGFua1wiPicgK1xuICAgICAgICAgICAgICBzVGV4dCArXG4gICAgICAgICAgICAgICc8L2E+JyxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgdW5saW5rKCk6IHZvaWQge1xuICAgIGNvbnN0IGN1cnJlbnRTZWxlY3Rpb25SYW5nZSA9IHRoaXMuI2FkYXB0ZXJTZXJ2aWNlXG4gICAgICAuZ2V0Q3VycmVudFNlbGVjdGlvbigpXG4gICAgICA/LmdldFJhbmdlQXQoMCk7XG4gICAgaWYgKGN1cnJlbnRTZWxlY3Rpb25SYW5nZSAmJiBjdXJyZW50U2VsZWN0aW9uUmFuZ2UudG9TdHJpbmcoKS5sZW5ndGggPD0gMCkge1xuICAgICAgY29uc3QgYW5jaG9yVGFnID0gdGhpcy4jYWRhcHRlclNlcnZpY2UuZ2V0U2VsZWN0ZWRBbmNob3JUYWcoKTtcbiAgICAgIGlmIChhbmNob3JUYWcpIHtcbiAgICAgICAgdGhpcy4jYWRhcHRlclNlcnZpY2Uuc2VsZWN0RWxlbWVudChhbmNob3JUYWcpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmV4ZWNDb21tYW5kKCd1bmxpbmsnKTtcbiAgfVxuXG4gIHB1YmxpYyBjaGFuZ2VGb250U2l6ZShzaXplOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLiNhZGFwdGVyU2VydmljZS5zZXRGb250U2l6ZShzaXplKTtcbiAgICB0aGlzLnN0eWxlU3RhdGUgPSB7XG4gICAgICAuLi50aGlzLnN0eWxlU3RhdGUsXG4gICAgICAuLi50aGlzLiNhZGFwdGVyU2VydmljZS5nZXRTdHlsZVN0YXRlKCksXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBvbkNvbG9ycGlja2VyQ29sb3JDaGFuZ2VkKFxuICAgIGNvbG9yOiBTa3lDb2xvcnBpY2tlck91dHB1dCxcbiAgICBpc0JhY2tncm91bmQgPSBmYWxzZSxcbiAgKTogdm9pZCB7XG4gICAgdGhpcy5leGVjQ29tbWFuZChpc0JhY2tncm91bmQgPyAnYmFja0NvbG9yJyA6ICdmb3JlQ29sb3InLCBjb2xvci5oZXgpO1xuICB9XG5cbiAgI3N1YnNjcmliZUVkaXRvckZvY3VzKCk6IHZvaWQge1xuICAgIHRoaXMuI2VkaXRvckZvY3VzU3RyZWFtU3ViPy51bnN1YnNjcmliZSgpO1xuXG4gICAgdGhpcy4jZWRpdG9yRm9jdXNTdHJlYW1TdWIgPSB0aGlzLmVkaXRvckZvY3VzU3RyZWFtXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5zdHlsZVN0YXRlID0ge1xuICAgICAgICAgIC4uLnRoaXMuc3R5bGVTdGF0ZSxcbiAgICAgICAgICAuLi50aGlzLiNhZGFwdGVyU2VydmljZS5nZXRTdHlsZVN0YXRlKCksXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuI2Nsb3NlRHJvcGRvd25zKCk7XG4gICAgICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgI2Nsb3NlRHJvcGRvd25zKCk6IHZvaWQge1xuICAgIGNvbnN0IG1lc3NhZ2U6IFNreUNvbG9ycGlja2VyTWVzc2FnZSA9IHtcbiAgICAgIHR5cGU6IFNreUNvbG9ycGlja2VyTWVzc2FnZVR5cGUuQ2xvc2UsXG4gICAgfTtcbiAgICB0aGlzLmNvbG9ycGlja2VyU3RyZWFtLm5leHQobWVzc2FnZSk7XG4gICAgdGhpcy5iYWNrQ29sb3JwaWNrZXJTdHJlYW0ubmV4dChtZXNzYWdlKTtcbiAgICB0aGlzLmZvbnRQaWNrZXJTdHJlYW0ubmV4dCh7IHR5cGU6IFNreURyb3Bkb3duTWVzc2FnZVR5cGUuQ2xvc2UgfSk7XG4gICAgdGhpcy5mb250U2l6ZVN0cmVhbS5uZXh0KHsgdHlwZTogU2t5RHJvcGRvd25NZXNzYWdlVHlwZS5DbG9zZSB9KTtcbiAgfVxuXG4gICNnZXRGb250TmFtZShmb250TmFtZTogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuZm9udExpc3QubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChmb250TmFtZS5yZXBsYWNlKC9bJ1wiXSsvZywgJycpID09PSB0aGlzLmZvbnRMaXN0W2ldLm5hbWUpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9udExpc3RbaV0ubmFtZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cbiIsIjxza3ktdG9vbGJhci1pdGVtXG4gICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgdG9vbGJhckFjdGlvbnNcIlxuICBjbGFzcz1cInNreS10ZXh0LWVkaXRvci10b29sYmFyLWFjdGlvblwiXG4gIFtuZ0NsYXNzXT1cIidza3ktdGV4dC1lZGl0b3ItdG9vbGJhci1hY3Rpb24tJyArIGFjdGlvblwiXG4+XG4gIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImFjdGlvblwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidmb250LWZhbWlseSdcIj5cbiAgICAgIDxza3ktZHJvcGRvd25cbiAgICAgICAgY2xhc3M9XCJza3ktdGV4dC1lZGl0b3ItZm9udC1waWNrZXJcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICBbbGFiZWxdPVwiJ0ZvbnQ6ICcgKyBzdHlsZVN0YXRlRm9udE5hbWVcIlxuICAgICAgICBbbWVzc2FnZVN0cmVhbV09XCJmb250UGlja2VyU3RyZWFtXCJcbiAgICAgID5cbiAgICAgICAgPHNreS1kcm9wZG93bi1idXR0b25cbiAgICAgICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgICAgICAnZm9udC1mYW1pbHknOiBzdHlsZVN0YXRlLmZvbnRcbiAgICAgICAgICB9XCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IHN0eWxlU3RhdGVGb250TmFtZSB9fVxuICAgICAgICA8L3NreS1kcm9wZG93bi1idXR0b24+XG4gICAgICAgIDxza3ktZHJvcGRvd24tbWVudT5cbiAgICAgICAgICA8c2t5LWRyb3Bkb3duLWl0ZW0gKm5nRm9yPVwibGV0IGZvbnRNb2RlbCBvZiBmb250TGlzdFwiPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAgICAgICAgICdmb250LWZhbWlseSc6IGZvbnRNb2RlbC52YWx1ZVxuICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImV4ZWNDb21tYW5kKCdmb250bmFtZScsIGZvbnRNb2RlbC5uYW1lKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7IGZvbnRNb2RlbC5uYW1lIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L3NreS1kcm9wZG93bi1pdGVtPlxuICAgICAgICA8L3NreS1kcm9wZG93bi1tZW51PlxuICAgICAgPC9za3ktZHJvcGRvd24+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2ZvbnQtc2l6ZSdcIj5cbiAgICAgIDxza3ktZHJvcGRvd25cbiAgICAgICAgY2xhc3M9XCJza3ktdGV4dC1lZGl0b3ItZm9udC1zaXplLXBpY2tlclwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIFtsYWJlbF09XCInRm9udCBzaXplOiAnICsgc3R5bGVTdGF0ZS5mb250U2l6ZSArICdweCdcIlxuICAgICAgICBbbWVzc2FnZVN0cmVhbV09XCJmb250U2l6ZVN0cmVhbVwiXG4gICAgICA+XG4gICAgICAgIDxza3ktZHJvcGRvd24tYnV0dG9uXG4gICAgICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAgICAgJ2ZvbnQtZmFtaWx5Jzogc3R5bGVTdGF0ZS5mb250U2l6ZVxuICAgICAgICAgIH1cIlxuICAgICAgICA+XG4gICAgICAgICAge3sgc3R5bGVTdGF0ZS5mb250U2l6ZSArICdweCcgfX1cbiAgICAgICAgPC9za3ktZHJvcGRvd24tYnV0dG9uPlxuICAgICAgICA8c2t5LWRyb3Bkb3duLW1lbnU+XG4gICAgICAgICAgPHNreS1kcm9wZG93bi1pdGVtICpuZ0Zvcj1cImxldCBzaXplIG9mIGZvbnRTaXplTGlzdFwiPlxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImNoYW5nZUZvbnRTaXplKHNpemUpXCI+XG4gICAgICAgICAgICAgIHt7IHNpemUgKyAncHgnIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L3NreS1kcm9wZG93bi1pdGVtPlxuICAgICAgICA8L3NreS1kcm9wZG93bi1tZW51PlxuICAgICAgPC9za3ktZHJvcGRvd24+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2ZvbnQtc3R5bGUnXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwic2t5LXN3aXRjaC1pY29uLWdyb3VwIHNreS10ZXh0LWVkaXRvci1mb250LXN0eWxlLXBpY2tlclwiPlxuICAgICAgICA8c2t5LWNoZWNrYm94XG4gICAgICAgICAgaWNvbj1cImJvbGRcIlxuICAgICAgICAgIGxhYmVsPVwiQm9sZFwiXG4gICAgICAgICAgdGl0bGU9XCJCb2xkXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgIFtuZ01vZGVsXT1cInN0eWxlU3RhdGUuYm9sZFN0YXRlXCJcbiAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJcbiAgICAgICAgICAgIHRvZ2dsZUZvbnRTdHlsZShzdHlsZVN0YXRlLmJvbGRTdGF0ZSwgJGV2ZW50LCAnYm9sZCcpXG4gICAgICAgICAgXCJcbiAgICAgICAgPlxuICAgICAgICA8L3NreS1jaGVja2JveD5cbiAgICAgICAgPHNreS1jaGVja2JveFxuICAgICAgICAgIGljb249XCJpdGFsaWNcIlxuICAgICAgICAgIGxhYmVsPVwiSXRhbGljaXplZFwiXG4gICAgICAgICAgdGl0bGU9XCJJdGFsaWNpemVkXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgIFtuZ01vZGVsXT1cInN0eWxlU3RhdGUuaXRhbGljU3RhdGVcIlxuICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIlxuICAgICAgICAgICAgdG9nZ2xlRm9udFN0eWxlKHN0eWxlU3RhdGUuaXRhbGljU3RhdGUsICRldmVudCwgJ2l0YWxpYycpXG4gICAgICAgICAgXCJcbiAgICAgICAgPlxuICAgICAgICA8L3NreS1jaGVja2JveD5cbiAgICAgICAgPHNreS1jaGVja2JveFxuICAgICAgICAgIGljb249XCJ1bmRlcmxpbmVcIlxuICAgICAgICAgIGxhYmVsPVwiVW5kZXJsaW5lXCJcbiAgICAgICAgICB0aXRsZT1cIlVuZGVybGluZVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICBbbmdNb2RlbF09XCJzdHlsZVN0YXRlLnVuZGVybGluZVN0YXRlXCJcbiAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJcbiAgICAgICAgICAgIHRvZ2dsZUZvbnRTdHlsZShzdHlsZVN0YXRlLnVuZGVybGluZVN0YXRlLCAkZXZlbnQsICd1bmRlcmxpbmUnKVxuICAgICAgICAgIFwiXG4gICAgICAgID5cbiAgICAgICAgPC9za3ktY2hlY2tib3g+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInY29sb3InXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwic2t5LXRleHQtZWRpdG9yLWNvbG9ycGlja2VyLWdyb3VwXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJza3ktdGV4dC1lZGl0b3ItY29sb3JwaWNrZXItY29udGFpbmVyXCI+XG4gICAgICAgICAgPHNreS1jb2xvcnBpY2tlclxuICAgICAgICAgICAgY2xhc3M9XCJza3ktdGV4dC1lZGl0b3ItZm9udC1jb2xvci1waWNrZXJcIlxuICAgICAgICAgICAgbGFiZWw9XCJGb250IGNvbG9yXCJcbiAgICAgICAgICAgIFttZXNzYWdlU3RyZWFtXT1cImNvbG9ycGlja2VyU3RyZWFtXCJcbiAgICAgICAgICAgIFtzaG93UmVzZXRCdXR0b25dPVwiZmFsc2VcIlxuICAgICAgICAgICAgKHNlbGVjdGVkQ29sb3JDaGFuZ2VkKT1cIm9uQ29sb3JwaWNrZXJDb2xvckNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICBwaWNrZXJCdXR0b25JY29uPVwiaGlnaGxpZ2h0ZXJcIlxuICAgICAgICAgICAgcGlja2VyQnV0dG9uSWNvblR5cGU9XCJza3l1eFwiXG4gICAgICAgICAgICAjY29sb3JQaWNrZXJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgb3V0cHV0Rm9ybWF0PVwiaGV4XCJcbiAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICBbYWxsb3dUcmFuc3BhcmVuY3ldPVwiZmFsc2VcIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgICBbbmdNb2RlbF09XCJzdHlsZVN0YXRlLmZvbnRDb2xvclwiXG4gICAgICAgICAgICAgIFtza3lDb2xvcnBpY2tlcklucHV0XT1cImNvbG9yUGlja2VyXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9za3ktY29sb3JwaWNrZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2t5LXRleHQtZWRpdG9yLWNvbG9ycGlja2VyLWNvbnRhaW5lclwiPlxuICAgICAgICAgIDxza3ktY29sb3JwaWNrZXJcbiAgICAgICAgICAgIGNsYXNzPVwic2t5LXRleHQtZWRpdG9yLWJhY2tncm91bmQtY29sb3ItcGlja2VyXCJcbiAgICAgICAgICAgIGxhYmVsPVwiQmFja2dyb3VuZCBjb2xvclwiXG4gICAgICAgICAgICBbbWVzc2FnZVN0cmVhbV09XCJiYWNrQ29sb3JwaWNrZXJTdHJlYW1cIlxuICAgICAgICAgICAgW3Nob3dSZXNldEJ1dHRvbl09XCJmYWxzZVwiXG4gICAgICAgICAgICAoc2VsZWN0ZWRDb2xvckNoYW5nZWQpPVwib25Db2xvcnBpY2tlckNvbG9yQ2hhbmdlZCgkZXZlbnQsIHRydWUpXCJcbiAgICAgICAgICAgICNiYWNrQ29sb3JQaWNrZXJcbiAgICAgICAgICAgIHBpY2tlckJ1dHRvbkljb249XCJ0ZXh0LWNvbG9yXCJcbiAgICAgICAgICAgIHBpY2tlckJ1dHRvbkljb25UeXBlPVwic2t5dXhcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICBvdXRwdXRGb3JtYXQ9XCJyZ2JhXCJcbiAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICBbYWxsb3dUcmFuc3BhcmVuY3ldPVwidHJ1ZVwiXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICAgIFtuZ01vZGVsXT1cInN0eWxlU3RhdGUuYmFja0NvbG9yXCJcbiAgICAgICAgICAgICAgW3NreUNvbG9ycGlja2VySW5wdXRdPVwiYmFja0NvbG9yUGlja2VyXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9za3ktY29sb3JwaWNrZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2xpc3QnXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwic2t5LXN3aXRjaC1pY29uLWdyb3VwXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBhcmlhLWxhYmVsPVwiQnVsbGV0ZWQgbGlzdFwiXG4gICAgICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS1idG4tZGVmYXVsdCBza3ktYnRuLWljb25cIlxuICAgICAgICAgIHRpdGxlPVwiQnVsbGV0ZWQgbGlzdFwiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAoY2xpY2spPVwiZXhlY0NvbW1hbmQoJ2luc2VydFVub3JkZXJlZExpc3QnKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8c2t5LWljb24gaWNvbj1cImJ1bGxldC1saXN0XCIgLz5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBhcmlhLWxhYmVsPVwiTnVtYmVyZWQgbGlzdFwiXG4gICAgICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS1idG4tZGVmYXVsdCBza3ktYnRuLWljb25cIlxuICAgICAgICAgIHRpdGxlPVwiTnVtYmVyZWQgbGlzdFwiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAoY2xpY2spPVwiZXhlY0NvbW1hbmQoJ2luc2VydE9yZGVyZWRMaXN0JylcIlxuICAgICAgICA+XG4gICAgICAgICAgPHNreS1pY29uIGljb249XCJudW1iZXItbGlzdFwiIC8+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2FsaWdubWVudCdcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJza3ktc3dpdGNoLWljb24tZ3JvdXBcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGFyaWEtbGFiZWw9XCJBbGlnbiBsZWZ0XCJcbiAgICAgICAgICBjbGFzcz1cInNreS1idG4gc2t5LWJ0bi1kZWZhdWx0IHNreS1idG4taWNvblwiXG4gICAgICAgICAgdGl0bGU9XCJBbGlnbiBsZWZ0XCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgIChjbGljayk9XCJleGVjQ29tbWFuZCgnanVzdGlmeUxlZnQnKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8c2t5LWljb24gaWNvbj1cImFsaWduLWxlZnQtdGV4dFwiIC8+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgYXJpYS1sYWJlbD1cIkFsaWduIGNlbnRlclwiXG4gICAgICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS1idG4tZGVmYXVsdCBza3ktYnRuLWljb25cIlxuICAgICAgICAgIHRpdGxlPVwiQWxpZ24gY2VudGVyXCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgIChjbGljayk9XCJleGVjQ29tbWFuZCgnanVzdGlmeUNlbnRlcicpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxza3ktaWNvbiBpY29uPVwiY2VudGVyLXRleHRcIiAvPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGFyaWEtbGFiZWw9XCJBbGlnbiByaWdodFwiXG4gICAgICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS1idG4tZGVmYXVsdCBza3ktYnRuLWljb25cIlxuICAgICAgICAgIHRpdGxlPVwiQWxpZ24gcmlnaHRcIlxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgKGNsaWNrKT1cImV4ZWNDb21tYW5kKCdqdXN0aWZ5UmlnaHQnKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8c2t5LWljb24gaWNvbj1cImFsaWduLXJpZ2h0LXRleHRcIiAvPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidpbmRlbnRhdGlvbidcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJza3ktc3dpdGNoLWljb24tZ3JvdXBcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGFyaWEtbGFiZWw9XCJPdXRkZW50XCJcbiAgICAgICAgICBjbGFzcz1cInNreS1idG4gc2t5LWJ0bi1kZWZhdWx0IHNreS1idG4taWNvblwiXG4gICAgICAgICAgdGl0bGU9XCJPdXRkZW50XCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgIChjbGljayk9XCJleGVjQ29tbWFuZCgnb3V0ZGVudCcpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxza3ktaWNvbiBpY29uPVwib3V0ZGVudFwiIC8+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgYXJpYS1sYWJlbD1cIkluZGVudFwiXG4gICAgICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS1idG4tZGVmYXVsdCBza3ktYnRuLWljb25cIlxuICAgICAgICAgIHRpdGxlPVwiSW5kZW50XCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgIChjbGljayk9XCJleGVjQ29tbWFuZCgnaW5kZW50JylcIlxuICAgICAgICA+XG4gICAgICAgICAgPHNreS1pY29uIGljb249XCJpbmRlbnRcIiAvPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIid1bmRvLXJlZG8nXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwic2t5LXN3aXRjaC1pY29uLWdyb3VwXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBhcmlhLWxhYmVsPVwiVW5kb1wiXG4gICAgICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS1idG4tZGVmYXVsdCBza3ktYnRuLWljb25cIlxuICAgICAgICAgIHRpdGxlPVwiVW5kb1wiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAoY2xpY2spPVwiZXhlY0NvbW1hbmQoJ3VuZG8nKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8c2t5LWljb24gaWNvbj1cInVuZG9cIiAvPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGFyaWEtbGFiZWw9XCJSZWRvXCJcbiAgICAgICAgICBjbGFzcz1cInNreS1idG4gc2t5LWJ0bi1kZWZhdWx0IHNreS1idG4taWNvblwiXG4gICAgICAgICAgdGl0bGU9XCJSZWRvXCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgIChjbGljayk9XCJleGVjQ29tbWFuZCgncmVkbycpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxza3ktaWNvbiBpY29uPVwicmVkb1wiIC8+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2xpbmsnXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwic2t5LXN3aXRjaC1pY29uLWdyb3VwXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBhcmlhLWxhYmVsPVwiTGlua1wiXG4gICAgICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS1idG4tZGVmYXVsdCBza3ktYnRuLWljb25cIlxuICAgICAgICAgIHRpdGxlPVwiTGlua1wiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAnaWNvbi1idG4tYWN0aXZlJzogc3R5bGVTdGF0ZS5saW5rU3RhdGVcbiAgICAgICAgICB9XCJcbiAgICAgICAgICAoY2xpY2spPVwibGluaygpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxza3ktaWNvbiBpY29uPVwibGlua1wiIC8+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgYXJpYS1sYWJlbD1cIlVubGlua1wiXG4gICAgICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS1idG4tZGVmYXVsdCBza3ktYnRuLWljb25cIlxuICAgICAgICAgIHRpdGxlPVwiVW5saW5rXCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiIXN0eWxlU3RhdGUubGlua1N0YXRlIHx8IGRpc2FibGVkXCJcbiAgICAgICAgICAoY2xpY2spPVwidW5saW5rKClcIlxuICAgICAgICA+XG4gICAgICAgICAgPHNreS1pY29uIGljb249XCJ1bmxpbmtcIiAvPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvc2t5LXRvb2xiYXItaXRlbT5cbiJdfQ==
@@ -146,4 +146,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
146
146
  NgIf,
147
147
  ], template: "<sky-modal>\n <sky-modal-header>\n {{ 'skyux_text_editor_url_modal_header_label' | skyLibResources }}\n </sky-modal-header>\n <sky-modal-content>\n <sky-tabset\n data-sky-id=\"test-tabset\"\n [active]=\"activeTab\"\n (activeChange)=\"activeTabChanged($event)\"\n >\n <sky-tab tabHeading=\"Web page\">\n <div class=\"sky-form-group sky-text-editor-url-modal-first-field\">\n <sky-input-box\n class=\"sky-text-editor-url-input\"\n stacked=\"true\"\n [hintText]=\"\n openLinksInNewWindowOnly\n ? ('skyux_text_editor_url_modal_open_in_new_window_label'\n | skyLibResources)\n : undefined\n \"\n >\n <label\n class=\"sky-control-label sky-control-label-required\"\n [for]=\"urlInput.id\"\n >\n {{ 'skyux_text_editor_url_modal_url_label' | skyLibResources }}\n </label>\n <input\n class=\"sky-form-control\"\n type=\"text\"\n [(ngModel)]=\"url\"\n skyId\n #urlInput=\"skyId\"\n />\n </sky-input-box>\n </div>\n <sky-input-box\n *ngIf=\"allowAllOpenLinkOptions\"\n stacked=\"true\"\n class=\"sky-form-group\"\n >\n <label class=\"sky-control-label\" [for]=\"targetInput.id\">\n {{ 'skyux_text_editor_url_modal_open_label' | skyLibResources }}\n </label>\n <select\n class=\"sky-form-control\"\n [(ngModel)]=\"target\"\n skyId\n #targetInput=\"skyId\"\n >\n <option value=\"0\">\n {{\n 'skyux_text_editor_url_modal_current_option_label'\n | skyLibResources\n }}\n </option>\n <option value=\"1\">\n {{\n 'skyux_text_editor_url_modal_new_option_label' | skyLibResources\n }}\n </option>\n </select>\n </sky-input-box>\n </sky-tab>\n <sky-tab tabHeading=\"Email address\">\n <div class=\"sky-form-group first-field\">\n <sky-input-box stacked=\"true\">\n <label\n class=\"sky-control-label sky-control-label-required\"\n [for]=\"emailAddressInput.id\"\n >\n {{ 'skyux_text_editor_url_modal_email_label' | skyLibResources }}\n </label>\n <input\n class=\"sky-form-control\"\n type=\"text\"\n [(ngModel)]=\"emailAddress\"\n skyId\n #emailAddressInput=\"skyId\"\n />\n </sky-input-box>\n </div>\n <sky-input-box stacked=\"true\" class=\"sky-form-group\">\n <label class=\"sky-control-label\" [for]=\"subjectInput.id\">\n {{ 'skyux_text_editor_url_modal_subject_label' | skyLibResources }}\n </label>\n <input\n class=\"sky-form-control\"\n type=\"text\"\n [(ngModel)]=\"subject\"\n skyId\n #subjectInput=\"skyId\"\n />\n </sky-input-box>\n </sky-tab>\n </sky-tabset>\n </sky-modal-content>\n <sky-modal-footer>\n <button\n type=\"submit\"\n class=\"sky-btn sky-btn-primary\"\n [disabled]=\"!valid\"\n (click)=\"save()\"\n >\n {{ 'skyux_text_editor_url_modal_save_button_label' | skyLibResources }}\n </button>\n <button type=\"button\" class=\"sky-btn sky-btn-link\" (click)=\"cancel()\">\n {{ 'skyux_text_editor_url_modal_cancel_button_label' | skyLibResources }}\n </button>\n </sky-modal-footer>\n</sky-modal>\n", styles: [".sky-text-editor-url-modal-first-field{margin-top:15px}\n"] }]
148
148
  }], ctorParameters: function () { return []; } });
149
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1lZGl0b3ItdXJsLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90ZXh0LWVkaXRvci9zcmMvbGliL21vZHVsZXMvdGV4dC1lZGl0b3IvdXJsLW1vZGFsL3RleHQtZWRpdG9yLXVybC1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGV4dC1lZGl0b3Ivc3JjL2xpYi9tb2R1bGVzL3RleHQtZWRpdG9yL3VybC1tb2RhbC90ZXh0LWVkaXRvci11cmwtbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pFLE9BQU8sRUFBZSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRWxELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBRTdGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRXJFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7Ozs7QUFFckQsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDO0FB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QUNMIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTa3lJZE1vZHVsZSB9IGZyb20gJ0Bza3l1eC9jb3JlJztcbmltcG9ydCB7IFNreUlucHV0Qm94TW9kdWxlIH0gZnJvbSAnQHNreXV4L2Zvcm1zJztcbmltcG9ydCB7IFNreU1vZGFsSW5zdGFuY2UsIFNreU1vZGFsTW9kdWxlIH0gZnJvbSAnQHNreXV4L21vZGFscyc7XG5pbXBvcnQgeyBTa3lUYWJJbmRleCwgU2t5VGFic01vZHVsZSB9IGZyb20gJ0Bza3l1eC90YWJzJztcbmltcG9ydCB7IFNreVZhbGlkYXRpb24gfSBmcm9tICdAc2t5dXgvdmFsaWRhdGlvbic7XG5cbmltcG9ydCB7IFNreVRleHRFZGl0b3JSZXNvdXJjZXNNb2R1bGUgfSBmcm9tICcuLi8uLi9zaGFyZWQvc2t5LXRleHQtZWRpdG9yLXJlc291cmNlcy5tb2R1bGUnO1xuXG5pbXBvcnQgeyBTa3lVcmxNb2RhbENvbnRleHQgfSBmcm9tICcuL3RleHQtZWRpdG9yLXVybC1tb2RhbC1jb250ZXh0JztcbmltcG9ydCB7IFVybE1vZGFsUmVzdWx0IH0gZnJvbSAnLi90ZXh0LWVkaXRvci11cmwtbW9kYWwtcmVzdWx0JztcbmltcG9ydCB7IFVybFRhcmdldCB9IGZyb20gJy4vdGV4dC1lZGl0b3ItdXJsLXRhcmdldCc7XG5cbmNvbnN0IGVtYWlsS2V5ID0gJ21haWx0bzonO1xuY29uc3QgcXVlcnlTdHJpbmdQYXJhbUtleSA9ICc/U3ViamVjdD0nO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdza3ktdGV4dC1lZGl0b3ItdXJsLW1vZGFsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RleHQtZWRpdG9yLXVybC1tb2RhbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RleHQtZWRpdG9yLXVybC1tb2RhbC5jb21wb25lbnQuc2NzcyddLFxuICBpbXBvcnRzOiBbXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgU2t5TW9kYWxNb2R1bGUsXG4gICAgU2t5SWRNb2R1bGUsXG4gICAgU2t5SW5wdXRCb3hNb2R1bGUsXG4gICAgU2t5VGFic01vZHVsZSxcbiAgICBTa3lUZXh0RWRpdG9yUmVzb3VyY2VzTW9kdWxlLFxuICAgIE5nSWYsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNreVRleHRFZGl0b3JVcmxNb2RhbENvbXBvbmVudCB7XG4gIHB1YmxpYyBzZXQgYWN0aXZlVGFiKHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLiNfYWN0aXZlVGFiID0gdmFsdWU7XG4gICAgdGhpcy52YWxpZCA9IHRoaXMuI2lzVmFsaWQoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYWN0aXZlVGFiKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuI19hY3RpdmVUYWI7XG4gIH1cblxuICBwdWJsaWMgc2V0IGVtYWlsQWRkcmVzcyh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy4jX2VtYWlsQWRkcmVzcyA9IHZhbHVlO1xuICAgIHRoaXMudmFsaWQgPSB0aGlzLiNpc1ZhbGlkKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGVtYWlsQWRkcmVzcygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLiNfZW1haWxBZGRyZXNzO1xuICB9XG5cbiAgcHVibGljIHNldCB1cmwodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuI191cmwgPSB2YWx1ZTtcbiAgICB0aGlzLnZhbGlkID0gdGhpcy4jaXNWYWxpZCgpO1xuICB9XG5cbiAgcHVibGljIGdldCB1cmwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy4jX3VybDtcbiAgfVxuXG4gIHB1YmxpYyBlbWFpbEFkZHJlc3NWYWxpZCA9IGZhbHNlO1xuICBwdWJsaWMgYWxsb3dBbGxPcGVuTGlua09wdGlvbnMgPSB0cnVlO1xuICBwdWJsaWMgb3BlbkxpbmtzSW5OZXdXaW5kb3dPbmx5ID0gZmFsc2U7XG4gIHB1YmxpYyBzdWJqZWN0ID0gJyc7XG4gIHB1YmxpYyB0YXJnZXQ6IG51bWJlciB8IHN0cmluZyA9IDA7XG4gIHB1YmxpYyB2YWxpZCA9IGZhbHNlO1xuXG4gICNfYWN0aXZlVGFiID0gMDtcbiAgI19lbWFpbEFkZHJlc3MgPSAnJztcbiAgI191cmwgPSAnaHR0cHM6Ly8nO1xuXG4gIHJlYWRvbmx5ICNtb2RhbENvbnRleHQgPSBpbmplY3QoU2t5VXJsTW9kYWxDb250ZXh0KTtcbiAgcmVhZG9ubHkgI21vZGFsSW5zdGFuY2UgPSBpbmplY3QoU2t5TW9kYWxJbnN0YW5jZSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgY29uc3QgbGlua1dpbmRvd09wdGlvbnMgPSB0aGlzLiNtb2RhbENvbnRleHQubGlua1dpbmRvd09wdGlvbnM7XG5cbiAgICBpZiAobGlua1dpbmRvd09wdGlvbnM/Lmxlbmd0aCA9PT0gMSkge1xuICAgICAgdGhpcy5hbGxvd0FsbE9wZW5MaW5rT3B0aW9ucyA9IGZhbHNlO1xuICAgICAgaWYgKGxpbmtXaW5kb3dPcHRpb25zWzBdID09PSAnbmV3Jykge1xuICAgICAgICB0aGlzLm9wZW5MaW5rc0luTmV3V2luZG93T25seSA9IHRydWU7XG4gICAgICAgIHRoaXMudGFyZ2V0ID0gMTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMudGFyZ2V0ID0gMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy4jbW9kYWxDb250ZXh0LnVybFJlc3VsdCkge1xuICAgICAgaWYgKHRoaXMuI21vZGFsQ29udGV4dC51cmxSZXN1bHQudXJsLnN0YXJ0c1dpdGgoZW1haWxLZXkpKSB7XG4gICAgICAgIHRoaXMuZW1haWxBZGRyZXNzID0gdGhpcy4jbW9kYWxDb250ZXh0LnVybFJlc3VsdC51cmwucmVwbGFjZShcbiAgICAgICAgICBlbWFpbEtleSxcbiAgICAgICAgICAnJ1xuICAgICAgICApO1xuXG4gICAgICAgIGxldCBxdWVyeVN0cmluZ0luZGV4ID0gdGhpcy5lbWFpbEFkZHJlc3MuaW5kZXhPZihxdWVyeVN0cmluZ1BhcmFtS2V5KTtcbiAgICAgICAgcXVlcnlTdHJpbmdJbmRleCA9XG4gICAgICAgICAgcXVlcnlTdHJpbmdJbmRleCA+IC0xXG4gICAgICAgICAgICA/IHF1ZXJ5U3RyaW5nSW5kZXhcbiAgICAgICAgICAgIDogdGhpcy5lbWFpbEFkZHJlc3MuaW5kZXhPZihxdWVyeVN0cmluZ1BhcmFtS2V5LnRvTG93ZXJDYXNlKCkpO1xuXG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgIGlmIChxdWVyeVN0cmluZ0luZGV4ID4gLTEpIHtcbiAgICAgICAgICB0aGlzLnN1YmplY3QgPSBkZWNvZGVVUkkodGhpcy5lbWFpbEFkZHJlc3MpLnNsaWNlKFxuICAgICAgICAgICAgcXVlcnlTdHJpbmdJbmRleCArIHF1ZXJ5U3RyaW5nUGFyYW1LZXkubGVuZ3RoXG4gICAgICAgICAgKTtcbiAgICAgICAgICB0aGlzLmVtYWlsQWRkcmVzcyA9IHRoaXMuZW1haWxBZGRyZXNzLnNsaWNlKDAsIHF1ZXJ5U3RyaW5nSW5kZXgpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2V0IGFjdGl2ZSB0YWIgdG8gZW1haWxcbiAgICAgICAgdGhpcy5hY3RpdmVUYWIgPSAxO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgKHRoaXMudXJsID0gdGhpcy4jbW9kYWxDb250ZXh0LnVybFJlc3VsdC51cmwpLFxuICAgICAgICAgICh0aGlzLnRhcmdldCA9IHRoaXMuI21vZGFsQ29udGV4dC51cmxSZXN1bHQudGFyZ2V0IGFzIGFueSk7XG5cbiAgICAgICAgLy8gc2V0IGFjdGl2ZSB0YWIgdG8gd2ViIHBhZ2VcbiAgICAgICAgdGhpcy5hY3RpdmVUYWIgPSAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhY3RpdmVUYWJDaGFuZ2VkKHZhbHVlOiBTa3lUYWJJbmRleCk6IHZvaWQge1xuICAgIHRoaXMuYWN0aXZlVGFiID0gTnVtYmVyKHZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBzYXZlKCk6IHZvaWQge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHRoaXMuI2lzVmFsaWQoKSkge1xuICAgICAgaWYgKHRoaXMuYWN0aXZlVGFiID09PSAwKSB7XG4gICAgICAgIHRoaXMuI21vZGFsSW5zdGFuY2Uuc2F2ZSh7XG4gICAgICAgICAgdXJsOiB0aGlzLnVybCxcbiAgICAgICAgICB0YXJnZXQ6IHRoaXMudGFyZ2V0XG4gICAgICAgICAgICA/IHBhcnNlSW50KHRoaXMudGFyZ2V0IGFzIHN0cmluZywgdW5kZWZpbmVkKVxuICAgICAgICAgICAgOiBVcmxUYXJnZXQuTm9uZSxcbiAgICAgICAgfSBhcyBVcmxNb2RhbFJlc3VsdCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLiNtb2RhbEluc3RhbmNlLnNhdmUoe1xuICAgICAgICAgIHVybDogdGhpcy4jZ2V0RW1haWxVcmwoKSxcbiAgICAgICAgICB0YXJnZXQ6IFVybFRhcmdldC5Ob25lLFxuICAgICAgICB9IGFzIFVybE1vZGFsUmVzdWx0KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY2FuY2VsKCk6IHZvaWQge1xuICAgIHRoaXMuI21vZGFsSW5zdGFuY2UuY2FuY2VsKCk7XG4gIH1cblxuICAjZ2V0RW1haWxVcmwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gKFxuICAgICAgZW1haWxLZXkgK1xuICAgICAgdGhpcy5lbWFpbEFkZHJlc3MgK1xuICAgICAgKHRoaXMuc3ViamVjdCA/ICc/U3ViamVjdD0nICsgZW5jb2RlVVJJKHRoaXMuc3ViamVjdCkgOiAnJylcbiAgICApO1xuICB9XG5cbiAgI2lzVmFsaWQoKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuYWN0aXZlVGFiID09PSAwKSB7XG4gICAgICByZXR1cm4gISF0aGlzLnVybCAmJiBTa3lWYWxpZGF0aW9uLmlzVXJsKHRoaXMudXJsKTtcbiAgICB9XG4gICAgcmV0dXJuICEhdGhpcy5lbWFpbEFkZHJlc3MgJiYgU2t5VmFsaWRhdGlvbi5pc0VtYWlsKHRoaXMuZW1haWxBZGRyZXNzKTtcbiAgfVxufVxuIiwiPHNreS1tb2RhbD5cbiAgPHNreS1tb2RhbC1oZWFkZXI+XG4gICAge3sgJ3NreXV4X3RleHRfZWRpdG9yX3VybF9tb2RhbF9oZWFkZXJfbGFiZWwnIHwgc2t5TGliUmVzb3VyY2VzIH19XG4gIDwvc2t5LW1vZGFsLWhlYWRlcj5cbiAgPHNreS1tb2RhbC1jb250ZW50PlxuICAgIDxza3ktdGFic2V0XG4gICAgICBkYXRhLXNreS1pZD1cInRlc3QtdGFic2V0XCJcbiAgICAgIFthY3RpdmVdPVwiYWN0aXZlVGFiXCJcbiAgICAgIChhY3RpdmVDaGFuZ2UpPVwiYWN0aXZlVGFiQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICA+XG4gICAgICA8c2t5LXRhYiB0YWJIZWFkaW5nPVwiV2ViIHBhZ2VcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNreS1mb3JtLWdyb3VwIHNreS10ZXh0LWVkaXRvci11cmwtbW9kYWwtZmlyc3QtZmllbGRcIj5cbiAgICAgICAgICA8c2t5LWlucHV0LWJveFxuICAgICAgICAgICAgY2xhc3M9XCJza3ktdGV4dC1lZGl0b3ItdXJsLWlucHV0XCJcbiAgICAgICAgICAgIHN0YWNrZWQ9XCJ0cnVlXCJcbiAgICAgICAgICAgIFtoaW50VGV4dF09XCJcbiAgICAgICAgICAgICAgb3BlbkxpbmtzSW5OZXdXaW5kb3dPbmx5XG4gICAgICAgICAgICAgICAgPyAoJ3NreXV4X3RleHRfZWRpdG9yX3VybF9tb2RhbF9vcGVuX2luX25ld193aW5kb3dfbGFiZWwnXG4gICAgICAgICAgICAgICAgICB8IHNreUxpYlJlc291cmNlcylcbiAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgY2xhc3M9XCJza3ktY29udHJvbC1sYWJlbCBza3ktY29udHJvbC1sYWJlbC1yZXF1aXJlZFwiXG4gICAgICAgICAgICAgIFtmb3JdPVwidXJsSW5wdXQuaWRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyAnc2t5dXhfdGV4dF9lZGl0b3JfdXJsX21vZGFsX3VybF9sYWJlbCcgfCBza3lMaWJSZXNvdXJjZXMgfX1cbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgY2xhc3M9XCJza3ktZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInVybFwiXG4gICAgICAgICAgICAgIHNreUlkXG4gICAgICAgICAgICAgICN1cmxJbnB1dD1cInNreUlkXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9za3ktaW5wdXQtYm94PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHNreS1pbnB1dC1ib3hcbiAgICAgICAgICAqbmdJZj1cImFsbG93QWxsT3BlbkxpbmtPcHRpb25zXCJcbiAgICAgICAgICBzdGFja2VkPVwidHJ1ZVwiXG4gICAgICAgICAgY2xhc3M9XCJza3ktZm9ybS1ncm91cFwiXG4gICAgICAgID5cbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJza3ktY29udHJvbC1sYWJlbFwiIFtmb3JdPVwidGFyZ2V0SW5wdXQuaWRcIj5cbiAgICAgICAgICAgIHt7ICdza3l1eF90ZXh0X2VkaXRvcl91cmxfbW9kYWxfb3Blbl9sYWJlbCcgfCBza3lMaWJSZXNvdXJjZXMgfX1cbiAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgIDxzZWxlY3RcbiAgICAgICAgICAgIGNsYXNzPVwic2t5LWZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cInRhcmdldFwiXG4gICAgICAgICAgICBza3lJZFxuICAgICAgICAgICAgI3RhcmdldElucHV0PVwic2t5SWRcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCIwXCI+XG4gICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgJ3NreXV4X3RleHRfZWRpdG9yX3VybF9tb2RhbF9jdXJyZW50X29wdGlvbl9sYWJlbCdcbiAgICAgICAgICAgICAgICAgIHwgc2t5TGliUmVzb3VyY2VzXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCIxXCI+XG4gICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgJ3NreXV4X3RleHRfZWRpdG9yX3VybF9tb2RhbF9uZXdfb3B0aW9uX2xhYmVsJyB8IHNreUxpYlJlc291cmNlc1xuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgIDwvc2t5LWlucHV0LWJveD5cbiAgICAgIDwvc2t5LXRhYj5cbiAgICAgIDxza3ktdGFiIHRhYkhlYWRpbmc9XCJFbWFpbCBhZGRyZXNzXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJza3ktZm9ybS1ncm91cCBmaXJzdC1maWVsZFwiPlxuICAgICAgICAgIDxza3ktaW5wdXQtYm94IHN0YWNrZWQ9XCJ0cnVlXCI+XG4gICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgY2xhc3M9XCJza3ktY29udHJvbC1sYWJlbCBza3ktY29udHJvbC1sYWJlbC1yZXF1aXJlZFwiXG4gICAgICAgICAgICAgIFtmb3JdPVwiZW1haWxBZGRyZXNzSW5wdXQuaWRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyAnc2t5dXhfdGV4dF9lZGl0b3JfdXJsX21vZGFsX2VtYWlsX2xhYmVsJyB8IHNreUxpYlJlc291cmNlcyB9fVxuICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICBjbGFzcz1cInNreS1mb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZW1haWxBZGRyZXNzXCJcbiAgICAgICAgICAgICAgc2t5SWRcbiAgICAgICAgICAgICAgI2VtYWlsQWRkcmVzc0lucHV0PVwic2t5SWRcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L3NreS1pbnB1dC1ib3g+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8c2t5LWlucHV0LWJveCBzdGFja2VkPVwidHJ1ZVwiIGNsYXNzPVwic2t5LWZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJza3ktY29udHJvbC1sYWJlbFwiIFtmb3JdPVwic3ViamVjdElucHV0LmlkXCI+XG4gICAgICAgICAgICB7eyAnc2t5dXhfdGV4dF9lZGl0b3JfdXJsX21vZGFsX3N1YmplY3RfbGFiZWwnIHwgc2t5TGliUmVzb3VyY2VzIH19XG4gICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIGNsYXNzPVwic2t5LWZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cInN1YmplY3RcIlxuICAgICAgICAgICAgc2t5SWRcbiAgICAgICAgICAgICNzdWJqZWN0SW5wdXQ9XCJza3lJZFwiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9za3ktaW5wdXQtYm94PlxuICAgICAgPC9za3ktdGFiPlxuICAgIDwvc2t5LXRhYnNldD5cbiAgPC9za3ktbW9kYWwtY29udGVudD5cbiAgPHNreS1tb2RhbC1mb290ZXI+XG4gICAgPGJ1dHRvblxuICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICBjbGFzcz1cInNreS1idG4gc2t5LWJ0bi1wcmltYXJ5XCJcbiAgICAgIFtkaXNhYmxlZF09XCIhdmFsaWRcIlxuICAgICAgKGNsaWNrKT1cInNhdmUoKVwiXG4gICAgPlxuICAgICAge3sgJ3NreXV4X3RleHRfZWRpdG9yX3VybF9tb2RhbF9zYXZlX2J1dHRvbl9sYWJlbCcgfCBza3lMaWJSZXNvdXJjZXMgfX1cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cInNreS1idG4gc2t5LWJ0bi1saW5rXCIgKGNsaWNrKT1cImNhbmNlbCgpXCI+XG4gICAgICB7eyAnc2t5dXhfdGV4dF9lZGl0b3JfdXJsX21vZGFsX2NhbmNlbF9idXR0b25fbGFiZWwnIHwgc2t5TGliUmVzb3VyY2VzIH19XG4gICAgPC9idXR0b24+XG4gIDwvc2t5LW1vZGFsLWZvb3Rlcj5cbjwvc2t5LW1vZGFsPlxuIl19
149
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1lZGl0b3ItdXJsLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90ZXh0LWVkaXRvci9zcmMvbGliL21vZHVsZXMvdGV4dC1lZGl0b3IvdXJsLW1vZGFsL3RleHQtZWRpdG9yLXVybC1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGV4dC1lZGl0b3Ivc3JjL2xpYi9tb2R1bGVzL3RleHQtZWRpdG9yL3VybC1tb2RhbC90ZXh0LWVkaXRvci11cmwtbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pFLE9BQU8sRUFBZSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRWxELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBRTdGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRXJFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7Ozs7QUFFckQsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDO0FBQzNCLE1BQU0sbUJBQW1CLEdBQUcsV0FBVyxDQUFDO0FBRXhDOztHQUVHO0FBZ0JILE1BQU0sT0FBTyw4QkFBOEI7SUFDekMsSUFBVyxTQUFTLENBQUMsS0FBYTtRQUNoQyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUN6QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsSUFBVyxTQUFTO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBVyxZQUFZLENBQUMsS0FBYTtRQUNuQyxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztRQUM1QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsSUFBVyxZQUFZO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBVyxHQUFHLENBQUMsS0FBYTtRQUMxQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsSUFBVyxHQUFHO1FBQ1osT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFTRCxXQUFXLENBQUs7SUFDaEIsY0FBYyxDQUFNO0lBQ3BCLEtBQUssQ0FBYztJQUVWLGFBQWEsQ0FBOEI7SUFDM0MsY0FBYyxDQUE0QjtJQUVuRDtRQWRPLHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQUMxQiw0QkFBdUIsR0FBRyxJQUFJLENBQUM7UUFDL0IsNkJBQXdCLEdBQUcsS0FBSyxDQUFDO1FBQ2pDLFlBQU8sR0FBRyxFQUFFLENBQUM7UUFDYixXQUFNLEdBQW9CLENBQUMsQ0FBQztRQUM1QixVQUFLLEdBQUcsS0FBSyxDQUFDO1FBRXJCLGdCQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLG1CQUFjLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLFVBQUssR0FBRyxVQUFVLENBQUM7UUFFVixrQkFBYSxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQzNDLG1CQUFjLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFHakQsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDO1FBRS9ELElBQUksaUJBQWlCLEVBQUUsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUNuQyxJQUFJLENBQUMsdUJBQXVCLEdBQUcsS0FBSyxDQUFDO1lBQ3JDLElBQUksaUJBQWlCLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxFQUFFO2dCQUNsQyxJQUFJLENBQUMsd0JBQXdCLEdBQUcsSUFBSSxDQUFDO2dCQUNyQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQzthQUNqQjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQzthQUNqQjtTQUNGO1FBRUQsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsRUFBRTtZQUNoQyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQ3pELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FDMUQsUUFBUSxFQUNSLEVBQUUsQ0FDSCxDQUFDO2dCQUVGLElBQUksZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FBQztnQkFDdEUsZ0JBQWdCO29CQUNkLGdCQUFnQixHQUFHLENBQUMsQ0FBQzt3QkFDbkIsQ0FBQyxDQUFDLGdCQUFnQjt3QkFDbEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7Z0JBRW5FLDBCQUEwQjtnQkFDMUIsSUFBSSxnQkFBZ0IsR0FBRyxDQUFDLENBQUMsRUFBRTtvQkFDekIsSUFBSSxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLEtBQUssQ0FDL0MsZ0JBQWdCLEdBQUcsbUJBQW1CLENBQUMsTUFBTSxDQUM5QyxDQUFDO29CQUNGLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLGdCQUFnQixDQUFDLENBQUM7aUJBQ2xFO2dCQUVELDBCQUEwQjtnQkFDMUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7YUFDcEI7aUJBQU07Z0JBQ0wsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQztvQkFDM0MsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLE1BQWEsQ0FBQyxDQUFDO2dCQUU3RCw2QkFBNkI7Z0JBQzdCLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDO2FBQ3BCO1NBQ0Y7SUFDSCxDQUFDO0lBRU0sZ0JBQWdCLENBQUMsS0FBa0I7UUFDeEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVNLElBQUk7UUFDVCwwQkFBMEI7UUFDMUIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDbkIsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLENBQUMsRUFBRTtnQkFDeEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUM7b0JBQ3ZCLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRztvQkFDYixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07d0JBQ2pCLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQWdCLEVBQUUsU0FBUyxDQUFDO3dCQUM1QyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUk7aUJBQ0QsQ0FBQyxDQUFDO2FBQ3RCO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDO29CQUN2QixHQUFHLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRTtvQkFDeEIsTUFBTSxFQUFFLFNBQVMsQ0FBQyxJQUFJO2lCQUNMLENBQUMsQ0FBQzthQUN0QjtTQUNGO0lBQ0gsQ0FBQztJQUVNLE1BQU07UUFDWCxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRCxZQUFZO1FBQ1YsT0FBTyxDQUNMLFFBQVE7WUFDUixJQUFJLENBQUMsWUFBWTtZQUNqQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FDNUQsQ0FBQztJQUNKLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLENBQUMsRUFBRTtZQUN4QixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGFBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3BEO1FBQ0QsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksSUFBSSxhQUFhLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN6RSxDQUFDOzhHQWhJVSw4QkFBOEI7a0dBQTlCLDhCQUE4QixxRkNwQzNDLDJ0SEFnSEEsa0hEckZJLFdBQVcseWdDQUNYLGNBQWMsc1hBQ2QsV0FBVyw0R0FDWCxpQkFBaUIsaU9BQ2pCLGFBQWEsaWFBQ2IsNEJBQTRCLHdHQUM1QixJQUFJOzsyRkFHSyw4QkFBOEI7a0JBZjFDLFNBQVM7aUNBQ0ksSUFBSSxZQUNOLDJCQUEyQixXQUc1Qjt3QkFDUCxXQUFXO3dCQUNYLGNBQWM7d0JBQ2QsV0FBVzt3QkFDWCxpQkFBaUI7d0JBQ2pCLGFBQWE7d0JBQ2IsNEJBQTRCO3dCQUM1QixJQUFJO3FCQUNMIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTa3lJZE1vZHVsZSB9IGZyb20gJ0Bza3l1eC9jb3JlJztcbmltcG9ydCB7IFNreUlucHV0Qm94TW9kdWxlIH0gZnJvbSAnQHNreXV4L2Zvcm1zJztcbmltcG9ydCB7IFNreU1vZGFsSW5zdGFuY2UsIFNreU1vZGFsTW9kdWxlIH0gZnJvbSAnQHNreXV4L21vZGFscyc7XG5pbXBvcnQgeyBTa3lUYWJJbmRleCwgU2t5VGFic01vZHVsZSB9IGZyb20gJ0Bza3l1eC90YWJzJztcbmltcG9ydCB7IFNreVZhbGlkYXRpb24gfSBmcm9tICdAc2t5dXgvdmFsaWRhdGlvbic7XG5cbmltcG9ydCB7IFNreVRleHRFZGl0b3JSZXNvdXJjZXNNb2R1bGUgfSBmcm9tICcuLi8uLi9zaGFyZWQvc2t5LXRleHQtZWRpdG9yLXJlc291cmNlcy5tb2R1bGUnO1xuXG5pbXBvcnQgeyBTa3lVcmxNb2RhbENvbnRleHQgfSBmcm9tICcuL3RleHQtZWRpdG9yLXVybC1tb2RhbC1jb250ZXh0JztcbmltcG9ydCB7IFVybE1vZGFsUmVzdWx0IH0gZnJvbSAnLi90ZXh0LWVkaXRvci11cmwtbW9kYWwtcmVzdWx0JztcbmltcG9ydCB7IFVybFRhcmdldCB9IGZyb20gJy4vdGV4dC1lZGl0b3ItdXJsLXRhcmdldCc7XG5cbmNvbnN0IGVtYWlsS2V5ID0gJ21haWx0bzonO1xuY29uc3QgcXVlcnlTdHJpbmdQYXJhbUtleSA9ICc/U3ViamVjdD0nO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdza3ktdGV4dC1lZGl0b3ItdXJsLW1vZGFsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RleHQtZWRpdG9yLXVybC1tb2RhbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RleHQtZWRpdG9yLXVybC1tb2RhbC5jb21wb25lbnQuc2NzcyddLFxuICBpbXBvcnRzOiBbXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgU2t5TW9kYWxNb2R1bGUsXG4gICAgU2t5SWRNb2R1bGUsXG4gICAgU2t5SW5wdXRCb3hNb2R1bGUsXG4gICAgU2t5VGFic01vZHVsZSxcbiAgICBTa3lUZXh0RWRpdG9yUmVzb3VyY2VzTW9kdWxlLFxuICAgIE5nSWYsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNreVRleHRFZGl0b3JVcmxNb2RhbENvbXBvbmVudCB7XG4gIHB1YmxpYyBzZXQgYWN0aXZlVGFiKHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLiNfYWN0aXZlVGFiID0gdmFsdWU7XG4gICAgdGhpcy52YWxpZCA9IHRoaXMuI2lzVmFsaWQoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYWN0aXZlVGFiKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuI19hY3RpdmVUYWI7XG4gIH1cblxuICBwdWJsaWMgc2V0IGVtYWlsQWRkcmVzcyh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy4jX2VtYWlsQWRkcmVzcyA9IHZhbHVlO1xuICAgIHRoaXMudmFsaWQgPSB0aGlzLiNpc1ZhbGlkKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGVtYWlsQWRkcmVzcygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLiNfZW1haWxBZGRyZXNzO1xuICB9XG5cbiAgcHVibGljIHNldCB1cmwodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuI191cmwgPSB2YWx1ZTtcbiAgICB0aGlzLnZhbGlkID0gdGhpcy4jaXNWYWxpZCgpO1xuICB9XG5cbiAgcHVibGljIGdldCB1cmwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy4jX3VybDtcbiAgfVxuXG4gIHB1YmxpYyBlbWFpbEFkZHJlc3NWYWxpZCA9IGZhbHNlO1xuICBwdWJsaWMgYWxsb3dBbGxPcGVuTGlua09wdGlvbnMgPSB0cnVlO1xuICBwdWJsaWMgb3BlbkxpbmtzSW5OZXdXaW5kb3dPbmx5ID0gZmFsc2U7XG4gIHB1YmxpYyBzdWJqZWN0ID0gJyc7XG4gIHB1YmxpYyB0YXJnZXQ6IG51bWJlciB8IHN0cmluZyA9IDA7XG4gIHB1YmxpYyB2YWxpZCA9IGZhbHNlO1xuXG4gICNfYWN0aXZlVGFiID0gMDtcbiAgI19lbWFpbEFkZHJlc3MgPSAnJztcbiAgI191cmwgPSAnaHR0cHM6Ly8nO1xuXG4gIHJlYWRvbmx5ICNtb2RhbENvbnRleHQgPSBpbmplY3QoU2t5VXJsTW9kYWxDb250ZXh0KTtcbiAgcmVhZG9ubHkgI21vZGFsSW5zdGFuY2UgPSBpbmplY3QoU2t5TW9kYWxJbnN0YW5jZSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgY29uc3QgbGlua1dpbmRvd09wdGlvbnMgPSB0aGlzLiNtb2RhbENvbnRleHQubGlua1dpbmRvd09wdGlvbnM7XG5cbiAgICBpZiAobGlua1dpbmRvd09wdGlvbnM/Lmxlbmd0aCA9PT0gMSkge1xuICAgICAgdGhpcy5hbGxvd0FsbE9wZW5MaW5rT3B0aW9ucyA9IGZhbHNlO1xuICAgICAgaWYgKGxpbmtXaW5kb3dPcHRpb25zWzBdID09PSAnbmV3Jykge1xuICAgICAgICB0aGlzLm9wZW5MaW5rc0luTmV3V2luZG93T25seSA9IHRydWU7XG4gICAgICAgIHRoaXMudGFyZ2V0ID0gMTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMudGFyZ2V0ID0gMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy4jbW9kYWxDb250ZXh0LnVybFJlc3VsdCkge1xuICAgICAgaWYgKHRoaXMuI21vZGFsQ29udGV4dC51cmxSZXN1bHQudXJsLnN0YXJ0c1dpdGgoZW1haWxLZXkpKSB7XG4gICAgICAgIHRoaXMuZW1haWxBZGRyZXNzID0gdGhpcy4jbW9kYWxDb250ZXh0LnVybFJlc3VsdC51cmwucmVwbGFjZShcbiAgICAgICAgICBlbWFpbEtleSxcbiAgICAgICAgICAnJyxcbiAgICAgICAgKTtcblxuICAgICAgICBsZXQgcXVlcnlTdHJpbmdJbmRleCA9IHRoaXMuZW1haWxBZGRyZXNzLmluZGV4T2YocXVlcnlTdHJpbmdQYXJhbUtleSk7XG4gICAgICAgIHF1ZXJ5U3RyaW5nSW5kZXggPVxuICAgICAgICAgIHF1ZXJ5U3RyaW5nSW5kZXggPiAtMVxuICAgICAgICAgICAgPyBxdWVyeVN0cmluZ0luZGV4XG4gICAgICAgICAgICA6IHRoaXMuZW1haWxBZGRyZXNzLmluZGV4T2YocXVlcnlTdHJpbmdQYXJhbUtleS50b0xvd2VyQ2FzZSgpKTtcblxuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICBpZiAocXVlcnlTdHJpbmdJbmRleCA+IC0xKSB7XG4gICAgICAgICAgdGhpcy5zdWJqZWN0ID0gZGVjb2RlVVJJKHRoaXMuZW1haWxBZGRyZXNzKS5zbGljZShcbiAgICAgICAgICAgIHF1ZXJ5U3RyaW5nSW5kZXggKyBxdWVyeVN0cmluZ1BhcmFtS2V5Lmxlbmd0aCxcbiAgICAgICAgICApO1xuICAgICAgICAgIHRoaXMuZW1haWxBZGRyZXNzID0gdGhpcy5lbWFpbEFkZHJlc3Muc2xpY2UoMCwgcXVlcnlTdHJpbmdJbmRleCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTZXQgYWN0aXZlIHRhYiB0byBlbWFpbFxuICAgICAgICB0aGlzLmFjdGl2ZVRhYiA9IDE7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAodGhpcy51cmwgPSB0aGlzLiNtb2RhbENvbnRleHQudXJsUmVzdWx0LnVybCksXG4gICAgICAgICAgKHRoaXMudGFyZ2V0ID0gdGhpcy4jbW9kYWxDb250ZXh0LnVybFJlc3VsdC50YXJnZXQgYXMgYW55KTtcblxuICAgICAgICAvLyBzZXQgYWN0aXZlIHRhYiB0byB3ZWIgcGFnZVxuICAgICAgICB0aGlzLmFjdGl2ZVRhYiA9IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFjdGl2ZVRhYkNoYW5nZWQodmFsdWU6IFNreVRhYkluZGV4KTogdm9pZCB7XG4gICAgdGhpcy5hY3RpdmVUYWIgPSBOdW1iZXIodmFsdWUpO1xuICB9XG5cbiAgcHVibGljIHNhdmUoKTogdm9pZCB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAodGhpcy4jaXNWYWxpZCgpKSB7XG4gICAgICBpZiAodGhpcy5hY3RpdmVUYWIgPT09IDApIHtcbiAgICAgICAgdGhpcy4jbW9kYWxJbnN0YW5jZS5zYXZlKHtcbiAgICAgICAgICB1cmw6IHRoaXMudXJsLFxuICAgICAgICAgIHRhcmdldDogdGhpcy50YXJnZXRcbiAgICAgICAgICAgID8gcGFyc2VJbnQodGhpcy50YXJnZXQgYXMgc3RyaW5nLCB1bmRlZmluZWQpXG4gICAgICAgICAgICA6IFVybFRhcmdldC5Ob25lLFxuICAgICAgICB9IGFzIFVybE1vZGFsUmVzdWx0KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuI21vZGFsSW5zdGFuY2Uuc2F2ZSh7XG4gICAgICAgICAgdXJsOiB0aGlzLiNnZXRFbWFpbFVybCgpLFxuICAgICAgICAgIHRhcmdldDogVXJsVGFyZ2V0Lk5vbmUsXG4gICAgICAgIH0gYXMgVXJsTW9kYWxSZXN1bHQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjYW5jZWwoKTogdm9pZCB7XG4gICAgdGhpcy4jbW9kYWxJbnN0YW5jZS5jYW5jZWwoKTtcbiAgfVxuXG4gICNnZXRFbWFpbFVybCgpOiBzdHJpbmcge1xuICAgIHJldHVybiAoXG4gICAgICBlbWFpbEtleSArXG4gICAgICB0aGlzLmVtYWlsQWRkcmVzcyArXG4gICAgICAodGhpcy5zdWJqZWN0ID8gJz9TdWJqZWN0PScgKyBlbmNvZGVVUkkodGhpcy5zdWJqZWN0KSA6ICcnKVxuICAgICk7XG4gIH1cblxuICAjaXNWYWxpZCgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5hY3RpdmVUYWIgPT09IDApIHtcbiAgICAgIHJldHVybiAhIXRoaXMudXJsICYmIFNreVZhbGlkYXRpb24uaXNVcmwodGhpcy51cmwpO1xuICAgIH1cbiAgICByZXR1cm4gISF0aGlzLmVtYWlsQWRkcmVzcyAmJiBTa3lWYWxpZGF0aW9uLmlzRW1haWwodGhpcy5lbWFpbEFkZHJlc3MpO1xuICB9XG59XG4iLCI8c2t5LW1vZGFsPlxuICA8c2t5LW1vZGFsLWhlYWRlcj5cbiAgICB7eyAnc2t5dXhfdGV4dF9lZGl0b3JfdXJsX21vZGFsX2hlYWRlcl9sYWJlbCcgfCBza3lMaWJSZXNvdXJjZXMgfX1cbiAgPC9za3ktbW9kYWwtaGVhZGVyPlxuICA8c2t5LW1vZGFsLWNvbnRlbnQ+XG4gICAgPHNreS10YWJzZXRcbiAgICAgIGRhdGEtc2t5LWlkPVwidGVzdC10YWJzZXRcIlxuICAgICAgW2FjdGl2ZV09XCJhY3RpdmVUYWJcIlxuICAgICAgKGFjdGl2ZUNoYW5nZSk9XCJhY3RpdmVUYWJDaGFuZ2VkKCRldmVudClcIlxuICAgID5cbiAgICAgIDxza3ktdGFiIHRhYkhlYWRpbmc9XCJXZWIgcGFnZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2t5LWZvcm0tZ3JvdXAgc2t5LXRleHQtZWRpdG9yLXVybC1tb2RhbC1maXJzdC1maWVsZFwiPlxuICAgICAgICAgIDxza3ktaW5wdXQtYm94XG4gICAgICAgICAgICBjbGFzcz1cInNreS10ZXh0LWVkaXRvci11cmwtaW5wdXRcIlxuICAgICAgICAgICAgc3RhY2tlZD1cInRydWVcIlxuICAgICAgICAgICAgW2hpbnRUZXh0XT1cIlxuICAgICAgICAgICAgICBvcGVuTGlua3NJbk5ld1dpbmRvd09ubHlcbiAgICAgICAgICAgICAgICA/ICgnc2t5dXhfdGV4dF9lZGl0b3JfdXJsX21vZGFsX29wZW5faW5fbmV3X3dpbmRvd19sYWJlbCdcbiAgICAgICAgICAgICAgICAgIHwgc2t5TGliUmVzb3VyY2VzKVxuICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkXG4gICAgICAgICAgICBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICBjbGFzcz1cInNreS1jb250cm9sLWxhYmVsIHNreS1jb250cm9sLWxhYmVsLXJlcXVpcmVkXCJcbiAgICAgICAgICAgICAgW2Zvcl09XCJ1cmxJbnB1dC5pZFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7ICdza3l1eF90ZXh0X2VkaXRvcl91cmxfbW9kYWxfdXJsX2xhYmVsJyB8IHNreUxpYlJlc291cmNlcyB9fVxuICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICBjbGFzcz1cInNreS1mb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgIFsobmdNb2RlbCldPVwidXJsXCJcbiAgICAgICAgICAgICAgc2t5SWRcbiAgICAgICAgICAgICAgI3VybElucHV0PVwic2t5SWRcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L3NreS1pbnB1dC1ib3g+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8c2t5LWlucHV0LWJveFxuICAgICAgICAgICpuZ0lmPVwiYWxsb3dBbGxPcGVuTGlua09wdGlvbnNcIlxuICAgICAgICAgIHN0YWNrZWQ9XCJ0cnVlXCJcbiAgICAgICAgICBjbGFzcz1cInNreS1mb3JtLWdyb3VwXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInNreS1jb250cm9sLWxhYmVsXCIgW2Zvcl09XCJ0YXJnZXRJbnB1dC5pZFwiPlxuICAgICAgICAgICAge3sgJ3NreXV4X3RleHRfZWRpdG9yX3VybF9tb2RhbF9vcGVuX2xhYmVsJyB8IHNreUxpYlJlc291cmNlcyB9fVxuICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgPHNlbGVjdFxuICAgICAgICAgICAgY2xhc3M9XCJza3ktZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwidGFyZ2V0XCJcbiAgICAgICAgICAgIHNreUlkXG4gICAgICAgICAgICAjdGFyZ2V0SW5wdXQ9XCJza3lJZFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjBcIj5cbiAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAnc2t5dXhfdGV4dF9lZGl0b3JfdXJsX21vZGFsX2N1cnJlbnRfb3B0aW9uX2xhYmVsJ1xuICAgICAgICAgICAgICAgICAgfCBza3lMaWJSZXNvdXJjZXNcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjFcIj5cbiAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAnc2t5dXhfdGV4dF9lZGl0b3JfdXJsX21vZGFsX25ld19vcHRpb25fbGFiZWwnIHwgc2t5TGliUmVzb3VyY2VzXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgPC9za3ktaW5wdXQtYm94PlxuICAgICAgPC9za3ktdGFiPlxuICAgICAgPHNreS10YWIgdGFiSGVhZGluZz1cIkVtYWlsIGFkZHJlc3NcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNreS1mb3JtLWdyb3VwIGZpcnN0LWZpZWxkXCI+XG4gICAgICAgICAgPHNreS1pbnB1dC1ib3ggc3RhY2tlZD1cInRydWVcIj5cbiAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICBjbGFzcz1cInNreS1jb250cm9sLWxhYmVsIHNreS1jb250cm9sLWxhYmVsLXJlcXVpcmVkXCJcbiAgICAgICAgICAgICAgW2Zvcl09XCJlbWFpbEFkZHJlc3NJbnB1dC5pZFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7ICdza3l1eF90ZXh0X2VkaXRvcl91cmxfbW9kYWxfZW1haWxfbGFiZWwnIHwgc2t5TGliUmVzb3VyY2VzIH19XG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgIGNsYXNzPVwic2t5LWZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJlbWFpbEFkZHJlc3NcIlxuICAgICAgICAgICAgICBza3lJZFxuICAgICAgICAgICAgICAjZW1haWxBZGRyZXNzSW5wdXQ9XCJza3lJZFwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvc2t5LWlucHV0LWJveD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxza3ktaW5wdXQtYm94IHN0YWNrZWQ9XCJ0cnVlXCIgY2xhc3M9XCJza3ktZm9ybS1ncm91cFwiPlxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInNreS1jb250cm9sLWxhYmVsXCIgW2Zvcl09XCJzdWJqZWN0SW5wdXQuaWRcIj5cbiAgICAgICAgICAgIHt7ICdza3l1eF90ZXh0X2VkaXRvcl91cmxfbW9kYWxfc3ViamVjdF9sYWJlbCcgfCBza3lMaWJSZXNvdXJjZXMgfX1cbiAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgY2xhc3M9XCJza3ktZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwic3ViamVjdFwiXG4gICAgICAgICAgICBza3lJZFxuICAgICAgICAgICAgI3N1YmplY3RJbnB1dD1cInNreUlkXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L3NreS1pbnB1dC1ib3g+XG4gICAgICA8L3NreS10YWI+XG4gICAgPC9za3ktdGFic2V0PlxuICA8L3NreS1tb2RhbC1jb250ZW50PlxuICA8c2t5LW1vZGFsLWZvb3Rlcj5cbiAgICA8YnV0dG9uXG4gICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgIGNsYXNzPVwic2t5LWJ0biBza3ktYnRuLXByaW1hcnlcIlxuICAgICAgW2Rpc2FibGVkXT1cIiF2YWxpZFwiXG4gICAgICAoY2xpY2spPVwic2F2ZSgpXCJcbiAgICA+XG4gICAgICB7eyAnc2t5dXhfdGV4dF9lZGl0b3JfdXJsX21vZGFsX3NhdmVfYnV0dG9uX2xhYmVsJyB8IHNreUxpYlJlc291cmNlcyB9fVxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwic2t5LWJ0biBza3ktYnRuLWxpbmtcIiAoY2xpY2spPVwiY2FuY2VsKClcIj5cbiAgICAgIHt7ICdza3l1eF90ZXh0X2VkaXRvcl91cmxfbW9kYWxfY2FuY2VsX2J1dHRvbl9sYWJlbCcgfCBza3lMaWJSZXNvdXJjZXMgfX1cbiAgICA8L2J1dHRvbj5cbiAgPC9za3ktbW9kYWwtZm9vdGVyPlxuPC9za3ktbW9kYWw+XG4iXX0=