@geoit/ui 0.1.0 → 0.2.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.
@@ -150,6 +150,18 @@ export const GEO_MAP_DEFAULT_TOOLBAR_ACTIONS = [
150
150
  tooltip: 'Chụp ảnh bản đồ',
151
151
  },
152
152
  ];
153
+ /**
154
+ * Built-in "Vị trí của tôi" toolbar action — pair with `id: 'locate'` handling that
155
+ * `geo-map-shell` already resolves internally (geolocate + emit `located`/`locateError`).
156
+ * Not included in `GEO_MAP_DEFAULT_TOOLBAR_ACTIONS`; host apps opt in explicitly.
157
+ */
158
+ export const GEO_MAP_LOCATE_TOOLBAR_ACTION = {
159
+ id: 'locate',
160
+ label: 'Vị trí của tôi',
161
+ icon: 'aim',
162
+ iconOnly: true,
163
+ tooltip: 'Vị trí của tôi',
164
+ };
153
165
  /**
154
166
  * Demo thematic overlays for Storybook (offline-friendly GeoJSON).
155
167
  * Groups match portal layers popover: QHSDD · địa chính · hiện trạng.
@@ -494,4 +506,4 @@ export const GEO_MAP_DEFAULT_PLANNING_LAYERS = [
494
506
  features: [],
495
507
  },
496
508
  ];
497
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvLW1hcC5jb25zdGFudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9nZW8tdWkvc3JjL2xpYi9maWdtYS9nZW8tbWFwL2dlby1tYXAuY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVNBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRWhFLHNFQUFzRTtBQUN0RSxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQVUsQ0FBQztBQUUvRTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBOEIsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDckYsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsRUFBRSxDQUFDO0FBQ3ZDLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLENBQUMsQ0FBQztBQUMxQyxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxFQUFFLENBQUM7QUFDM0MsTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQUcsV0FBVyxDQUFDO0FBQzNELE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLE9BQU8sQ0FBQztBQUU5QyxtRUFBbUU7QUFDbkUsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsZUFBZSxDQUFDO0FBRXhELDJFQUEyRTtBQUMzRSxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyxpQkFBaUIsQ0FBQztBQUM1RCxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxlQUFlLENBQUM7QUFDeEQsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsaUJBQWlCLENBQUM7QUFFNUQ7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sb0NBQW9DLEdBSzdDLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFFbEMseUVBQXlFO0FBQ3pF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LElBQUk7UUFDYixPQUFPLEVBQUUsQ0FBQztRQUNWLE1BQU0sRUFBRSxHQUFHO1FBQ1gsS0FBSyxFQUFFLFFBQVE7UUFDZixRQUFRLEVBQUUsRUFBRTtLQUNiO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgR2VvTWFwQmFzZW1hcE9wdGlvbixcbiAgR2VvTWFwTGF5ZXJDb25maWcsXG4gIEdlb01hcExlZ2VuZEl0ZW0sXG4gIEdlb01hcFBhcmNlbERldGFpbCxcbiAgR2VvTWFwVG9vbGJhckFjdGlvbixcbiAgR2VvTWFwWHl6TGF5ZXJDb25maWcsXG59IGZyb20gJy4vZ2VvLW1hcC50eXBlcyc7XG5pbXBvcnQgdHlwZSB7IEdlb1RyZWVOb2RlIH0gZnJvbSAnLi4vZ2VvLXRyZWUvZ2VvLXRyZWUudHlwZXMnO1xuaW1wb3J0IHsgR0VPX01BUF9UT09MQkFSX0lDT05TIH0gZnJvbSAnLi9nZW8tbWFwLXRvb2xiYXIuaWNvbnMnO1xuXG4vKiogQnVpbHQtaW4gQ1JTIGNvZGVzIGF2YWlsYWJsZSB3aXRob3V0IGN1c3RvbSBwcm9qNCByZWdpc3RyYXRpb24uICovXG5leHBvcnQgY29uc3QgR0VPX01BUF9CVUlMVElOX1BST0pFQ1RJT05TID0gWydFUFNHOjQzMjYnLCAnRVBTRzozODU3J10gYXMgY29uc3Q7XG5cbi8qKlxuICogRGVmYXVsdCB2aWV3IOKAlCBXZWIgTWVyY2F0b3IgYXJvdW5kIMSQw6AgTOG6oXQgKEzDom0gxJDhu5NuZykuXG4gKiBDZW50ZXIgaXMgYWxyZWFkeSBpbiBFUFNHOjM4NTcgKGRvIG5vdCB0cmVhdCBhcyBsb24vbGF0KS5cbiAqL1xuZXhwb3J0IGNvbnN0IEdFT19NQVBfREVGQVVMVF9DRU5URVI6IHJlYWRvbmx5IFtudW1iZXIsIG51bWJlcl0gPSBbMTIwNTIwMDAsIDEzMzAwMDBdO1xuZXhwb3J0IGNvbnN0IEdFT19NQVBfREVGQVVMVF9aT09NID0gMTE7XG5leHBvcnQgY29uc3QgR0VPX01BUF9ERUZBVUxUX01JTl9aT09NID0gMjtcbmV4cG9ydCBjb25zdCBHRU9fTUFQX0RFRkFVTFRfTUFYX1pPT00gPSAyMDtcbmV4cG9ydCBjb25zdCBHRU9fTUFQX0RFRkFVTFRfVklFV19QUk9KRUNUSU9OID0gJ0VQU0c6Mzg1Nyc7XG5leHBvcnQgY29uc3QgR0VPX01BUF9ERUZBVUxUX0hFSUdIVCA9ICc0ODBweCc7XG5cbi8qKiBJbnRlcm5hbCBsYXllciBpZCByZXNlcnZlZCBmb3IgdGhlIGBiYXNlbWFwYCBpbnB1dCBzaG9ydGN1dC4gKi9cbmV4cG9ydCBjb25zdCBHRU9fTUFQX0JBU0VNQVBfTEFZRVJfSUQgPSAnX19nZW9fYmFzZW1hcCc7XG5cbi8qKiBJbnRlcm5hbCB2ZWN0b3IgbGF5ZXJzIHJlc2VydmVkIGZvciBzZWxlY3Rpb24gLyBtZWFzdXJlIC8gaGlnaGxpZ2h0LiAqL1xuZXhwb3J0IGNvbnN0IEdFT19NQVBfU0VMRUNUSU9OX0xBWUVSX0lEID0gJ19fZ2VvX3NlbGVjdGlvbic7XG5leHBvcnQgY29uc3QgR0VPX01BUF9NRUFTVVJFX0xBWUVSX0lEID0gJ19fZ2VvX21lYXN1cmUnO1xuZXhwb3J0IGNvbnN0IEdFT19NQVBfSElHSExJR0hUX0xBWUVSX0lEID0gJ19fZ2VvX2hpZ2hsaWdodCc7XG5cbi8qKlxuICogRGVmYXVsdCBwcm92aW5jZSBleHRlbnQgKEzDom0gxJDhu5NuZyBhcHByb3gsIEVQU0c6NDMyNikgZm9yIOKAnHhlbSB0b8OgbiB04buJbmjigJ0gKFRDUUguMTQgR0Q1KS5cbiAqIEhvc3QgYXBwcyBzaG91bGQgb3ZlcnJpZGUgd2l0aCBhdXRob3JpdGF0aXZlIGJvdW5kYXJ5IGV4dGVudCBmcm9tIEFQSS5cbiAqL1xuZXhwb3J0IGNvbnN0IEdFT19NQVBfREVGQVVMVF9QUk9WSU5DRV9FWFRFTlRfNDMyNjogcmVhZG9ubHkgW1xuICBudW1iZXIsXG4gIG51bWJlcixcbiAgbnVtYmVyLFxuICBudW1iZXIsXG5dID0gWzEwNy4yLCAxMS4xNSwgMTA4Ljc1LCAxMi4zNV07XG5cbi8qKiBPcHRpb25hbCB0cmFmZmljIC8gcm9hZHMgcmVmZXJlbmNlIG92ZXJsYXkgKG5vdCBhIHBsYW5uaW5nIGxheWVyKS4gKi9cbmV4cG9ydCBjb25zdCBHRU9fTUFQX1RSQUZGSUNfTEFZRVJfSUQgPSAnX19nZW9fdHJhZmZpYyc7XG5cbmV4cG9ydCBjb25zdCBHRU9fTUFQX0VTUklfSU1BR0VSWV9VUkwgPVxuICAnaHR0cHM6Ly9zZXJ2ZXIuYXJjZ2lzb25saW5lLmNvbS9BcmNHSVMvcmVzdC9zZXJ2aWNlcy9Xb3JsZF9JbWFnZXJ5L01hcFNlcnZlci90aWxlL3t6fS97eX0ve3h9JztcblxuZXhwb3J0IGNvbnN0IEdFT19NQVBfRVNSSV9TVFJFRVRTX1VSTCA9XG4gICdodHRwczovL3NlcnZlci5hcmNnaXNvbmxpbmUuY29tL0FyY0dJUy9yZXN0L3NlcnZpY2VzL1dvcmxkX1N0cmVldF9NYXAvTWFwU2VydmVyL3RpbGUve3p9L3t5fS97eH0nO1xuXG5leHBvcnQgY29uc3QgR0VPX01BUF9FU1JJX1RSQU5TUE9SVF9VUkwgPVxuICAnaHR0cHM6Ly9zZXJ2ZXIuYXJjZ2lzb25saW5lLmNvbS9BcmNHSVMvcmVzdC9zZXJ2aWNlcy9SZWZlcmVuY2UvV29ybGRfVHJhbnNwb3J0YXRpb24vTWFwU2VydmVyL3RpbGUve3p9L3t5fS97eH0nO1xuXG4vKiogRGVmYXVsdCBiYXNlbWFwIHBpY2tlciBvcHRpb25zICjEkcaw4budbmcgcGjhu5EgLyB24buHIHRpbmgpLiAqL1xuZXhwb3J0IGNvbnN0IEdFT19NQVBfREVGQVVMVF9CQVNFTUFQX09QVElPTlM6IEdlb01hcEJhc2VtYXBPcHRpb25bXSA9IFtcbiAge1xuICAgIGlkOiAnb3NtJyxcbiAgICBsYWJlbDogJ8SQxrDhu51uZyBwaOG7kScsXG4gICAgYmFzZW1hcDogJ29zbScsXG4gICAgcHJldmlld1VybDogJ2h0dHBzOi8vdGlsZS5vcGVuc3RyZWV0bWFwLm9yZy82LzUwLzMwLnBuZycsXG4gIH0sXG4gIHtcbiAgICBpZDogJ3NhdGVsbGl0ZScsXG4gICAgbGFiZWw6ICdW4buHIHRpbmgnLFxuICAgIGJhc2VtYXA6IHtcbiAgICAgIHR5cGU6ICd4eXonLFxuICAgICAgdXJsOiBHRU9fTUFQX0VTUklfSU1BR0VSWV9VUkwsXG4gICAgICBhdHRyaWJ1dGlvbnM6ICdFc3JpLCBNYXhhciwgRWFydGhzdGFyIEdlb2dyYXBoaWNzJyxcbiAgICAgIHRpdGxlOiAn4bqibmggduG7hyB0aW5oJyxcbiAgICB9LFxuICAgIHByZXZpZXdVcmw6XG4gICAgICAnaHR0cHM6Ly9zZXJ2ZXIuYXJjZ2lzb25saW5lLmNvbS9BcmNHSVMvcmVzdC9zZXJ2aWNlcy9Xb3JsZF9JbWFnZXJ5L01hcFNlcnZlci90aWxlLzYvMzAvNTAnLFxuICB9LFxuXTtcblxuLyoqIFRyYW5zcG9ydGF0aW9uIHJlZmVyZW5jZSBvdmVybGF5IOKAlCB0b2dnbGUgaW5kZXBlbmRlbnRseSBvZiBiYXNlbWFwLiAqL1xuZXhwb3J0IGNvbnN0IEdFT19NQVBfVFJBRkZJQ19PVkVSTEFZOiBHZW9NYXBYeXpMYXllckNvbmZpZyA9IHtcbiAgaWQ6IEdFT19NQVBfVFJBRkZJQ19MQVlFUl9JRCxcbiAgdGl0bGU6ICdM4bubcCBnaWFvIHRow7RuZycsXG4gIHR5cGU6ICd4eXonLFxuICB1cmw6IEdFT19NQVBfRVNSSV9UUkFOU1BPUlRfVVJMLFxuICBhdHRyaWJ1dGlvbnM6ICdFc3JpJyxcbiAgdmlzaWJsZTogZmFsc2UsXG4gIG9wYWNpdHk6IDAuOSxcbiAgekluZGV4OiA1LFxuICBiYXNlbWFwOiBmYWxzZSxcbiAgZ3JvdXA6ICdiYXNlLW1hcCcsXG59O1xuXG4vKiogQnVpbHQtaW4gdG9vbGJhciBhY3Rpb25zIOKAlCBGaWdtYSBtYXAgY2hyb21lIChEYXQgRGFpIExhbSBEb25nIDIwMjYpLiAqL1xuZXhwb3J0IGNvbnN0IEdFT19NQVBfREVGQVVMVF9UT09MQkFSX0FDVElPTlM6IEdlb01hcFRvb2xiYXJBY3Rpb25bXSA9IFtcbiAge1xuICAgIGlkOiAnaG9tZScsXG4gICAgbGFiZWw6ICdUcmFuZyBjaOG7pycsXG4gICAgaWNvbjogJ2hvbWUnLFxuICAgIGljb25TcmM6IEdFT19NQVBfVE9PTEJBUl9JQ09OUy5ob21lLFxuICAgIGljb25Pbmx5OiB0cnVlLFxuICAgIHRvb2x0aXA6ICdUcmFuZyBjaOG7pycsXG4gICAgdmFyaWFudDogJ3ByaW1hcnknLFxuICB9LFxuICB7XG4gICAgaWQ6ICdzZWFyY2gnLFxuICAgIGxhYmVsOiAnVHJhIGPhu6l1JyxcbiAgICBpY29uOiAnc2VhcmNoJyxcbiAgICBpY29uU3JjOiBHRU9fTUFQX1RPT0xCQVJfSUNPTlMuc2VhcmNoLFxuICAgIGljb25Pbmx5OiB0cnVlLFxuICAgIHRvb2x0aXA6ICdUcmEgY+G7qXUgdGjhu61hIMSR4bqldCcsXG4gIH0sXG4gIHtcbiAgICBpZDogJ3BhbicsXG4gICAgbGFiZWw6ICdEaSBjaHV54buDbicsXG4gICAgaWNvbjogJ2RyYWcnLFxuICAgIGljb25TcmM6IEdFT19NQVBfVE9PTEJBUl9JQ09OUy5wYW4sXG4gICAgaWNvbk9ubHk6IHRydWUsXG4gICAgdG9vbHRpcDogJ0RpIGNodXnhu4NuIGLhuqNuIMSR4buTJyxcbiAgfSxcbiAge1xuICAgIGlkOiAnem9vbS1pbicsXG4gICAgbGFiZWw6ICdQaMOzbmcgdG8nLFxuICAgIGljb246ICdwbHVzJyxcbiAgICBpY29uU3JjOiBHRU9fTUFQX1RPT0xCQVJfSUNPTlMuem9vbUluLFxuICAgIGljb25Pbmx5OiB0cnVlLFxuICAgIHRvb2x0aXA6ICdQaMOzbmcgdG8nLFxuICB9LFxuICB7XG4gICAgaWQ6ICd6b29tLW91dCcsXG4gICAgbGFiZWw6ICdUaHUgbmjhu48nLFxuICAgIGljb246ICdtaW51cycsXG4gICAgaWNvblNyYzogR0VPX01BUF9UT09MQkFSX0lDT05TLnpvb21PdXQsXG4gICAgaWNvbk9ubHk6IHRydWUsXG4gICAgdG9vbHRpcDogJ1RodSBuaOG7jycsXG4gIH0sXG4gIHtcbiAgICBpZDogJ2Z1bGxzY3JlZW4nLFxuICAgIGxhYmVsOiAnVG/DoG4gbcOgbiBow6xuaCcsXG4gICAgaWNvbjogJ2Z1bGxzY3JlZW4nLFxuICAgIGljb25TcmM6IEdFT19NQVBfVE9PTEJBUl9JQ09OUy5mdWxsc2NyZWVuLFxuICAgIGljb25Pbmx5OiB0cnVlLFxuICAgIHRvb2x0aXA6ICdYZW0gdG/DoG4gYuG6o24gxJHhu5MnLFxuICB9LFxuICB7XG4gICAgaWQ6ICdtZWFzdXJlLWRpc3RhbmNlJyxcbiAgICBsYWJlbDogJ8SQbyBraG/huqNuZyBjw6FjaCcsXG4gICAgaWNvbjogJ2NvbHVtbi13aWR0aCcsXG4gICAgaWNvblNyYzogR0VPX01BUF9UT09MQkFSX0lDT05TLm1lYXN1cmVEaXN0YW5jZSxcbiAgICBpY29uT25seTogdHJ1ZSxcbiAgICB0b29sdGlwOiAnxJBvIGtob+G6o25nIGPDoWNoJyxcbiAgfSxcbiAge1xuICAgIGlkOiAnbWVhc3VyZS1hcmVhJyxcbiAgICBsYWJlbDogJ8SQbyBkaeG7h24gdMOtY2gnLFxuICAgIGljb246ICdib3JkZXItb3V0ZXInLFxuICAgIGljb25TcmM6IEdFT19NQVBfVE9PTEJBUl9JQ09OUy5tZWFzdXJlQXJlYSxcbiAgICBpY29uT25seTogdHJ1ZSxcbiAgICB0b29sdGlwOiAnxJBvIGRp4buHbiB0w61jaCcsXG4gIH0sXG4gIHtcbiAgICBpZDogJ2xheWVycycsXG4gICAgbGFiZWw6ICdM4bubcCBi4bqjbiDEkeG7kycsXG4gICAgaWNvbjogJ2FwcHN0b3JlJyxcbiAgICBpY29uU3JjOiBHRU9fTUFQX1RPT0xCQVJfSUNPTlMubGF5ZXJzLFxuICAgIGljb25Pbmx5OiB0cnVlLFxuICAgIHRvb2x0aXA6ICdC4bqtdC904bqvdCBs4bubcCBi4bqjbiDEkeG7kycsXG4gIH0sXG4gIHtcbiAgICBpZDogJ2xlZ2VuZCcsXG4gICAgbGFiZWw6ICdDaMO6IGdp4bqjaScsXG4gICAgaWNvbjogJ3Vub3JkZXJlZC1saXN0JyxcbiAgICBpY29uT25seTogdHJ1ZSxcbiAgICB0b29sdGlwOiAnWGVtIGNow7ogZ2nhuqNpJyxcbiAgfSxcbiAge1xuICAgIGlkOiAnc25hcHNob3QnLFxuICAgIGxhYmVsOiAnQ2jhu6VwIOG6o25oJyxcbiAgICBpY29uOiAnY2FtZXJhJyxcbiAgICBpY29uT25seTogdHJ1ZSxcbiAgICB0b29sdGlwOiAnQ2jhu6VwIOG6o25oIGLhuqNuIMSR4buTJyxcbiAgfSxcbl07XG5cbi8qKlxuICogRGVtbyB0aGVtYXRpYyBvdmVybGF5cyBmb3IgU3Rvcnlib29rIChvZmZsaW5lLWZyaWVuZGx5IEdlb0pTT04pLlxuICogR3JvdXBzIG1hdGNoIHBvcnRhbCBsYXllcnMgcG9wb3ZlcjogUUhTREQgwrcgxJHhu4thIGNow61uaCDCtyBoaeG7h24gdHLhuqFuZy5cbiAqL1xuZXhwb3J0IGNvbnN0IEdFT19NQVBfREVNT19USEVNQVRJQ19MQVlFUlM6IEdlb01hcExheWVyQ29uZmlnW10gPSBbXG4gIHtcbiAgICBpZDogJ2RlbW8tcWhzZGQtMjAyMCcsXG4gICAgdGl0bGU6ICdRSFNERCB04buJbmggTMOibSDEkOG7k25nIDIwMjAtMjAyNScsXG4gICAgdHlwZTogJ2dlb2pzb24nLFxuICAgIHZpc2libGU6IHRydWUsXG4gICAgb3BhY2l0eTogMC40LFxuICAgIHpJbmRleDogMTAsXG4gICAgZ3JvdXA6ICdxaHNkZCcsXG4gICAgZ3JvdXBMYWJlbDogJ0LhuqNuIMSR4buTIFFIU0REJyxcbiAgICBncm91cFNlbGVjdGlvbjogJ3NpbmdsZScsXG4gICAgYmFzZW1hcDogZmFsc2UsXG4gICAgZGF0YVByb2plY3Rpb246ICdFUFNHOjQzMjYnLFxuICAgIGZlYXR1cmVQcm9qZWN0aW9uOiAnRVBTRzozODU3JyxcbiAgICBkYXRhOiB7XG4gICAgICB0eXBlOiAnRmVhdHVyZUNvbGxlY3Rpb24nLFxuICAgICAgZmVhdHVyZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICdGZWF0dXJlJyxcbiAgICAgICAgICBwcm9wZXJ0aWVzOiB7IGNvZGU6ICdPRFQnLCBuYW1lOiAnxJDhuqV0IOG7nyDEkcO0IHRo4buLIChRSCAyMDIwLTIwMjUpJyB9LFxuICAgICAgICAgIGdlb21ldHJ5OiB7XG4gICAgICAgICAgICB0eXBlOiAnUG9seWdvbicsXG4gICAgICAgICAgICBjb29yZGluYXRlczogW1xuICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgWzEwOC40MiwgMTEuOTNdLFxuICAgICAgICAgICAgICAgIFsxMDguNDgsIDExLjkzXSxcbiAgICAgICAgICAgICAgICBbMTA4LjQ4LCAxMS45N10sXG4gICAgICAgICAgICAgICAgWzEwOC40MiwgMTEuOTddLFxuICAgICAgICAgICAgICAgIFsxMDguNDIsIDExLjkzXSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgfSxcbiAge1xuICAgIGlkOiAnZGVtby1xaHNkZC0yMDI1JyxcbiAgICB0aXRsZTogJ1FIU0REIHThu4luaCBMw6JtIMSQ4buTbmcgMjAyNS0yMDMwJyxcbiAgICB0eXBlOiAnZ2VvanNvbicsXG4gICAgdmlzaWJsZTogZmFsc2UsXG4gICAgb3BhY2l0eTogMC40LFxuICAgIHpJbmRleDogMTEsXG4gICAgZ3JvdXA6ICdxaHNkZCcsXG4gICAgZ3JvdXBMYWJlbDogJ0LhuqNuIMSR4buTIFFIU0REJyxcbiAgICBncm91cFNlbGVjdGlvbjogJ3NpbmdsZScsXG4gICAgYmFzZW1hcDogZmFsc2UsXG4gICAgZGF0YVByb2plY3Rpb246ICdFUFNHOjQzMjYnLFxuICAgIGZlYXR1cmVQcm9qZWN0aW9uOiAnRVBTRzozODU3JyxcbiAgICBkYXRhOiB7XG4gICAgICB0eXBlOiAnRmVhdHVyZUNvbGxlY3Rpb24nLFxuICAgICAgZmVhdHVyZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICdGZWF0dXJlJyxcbiAgICAgICAgICBwcm9wZXJ0aWVzOiB7IGNvZGU6ICdPRFQnLCBuYW1lOiAnxJDhuqV0IOG7nyDEkcO0IHRo4buLIChRSCAyMDI1LTIwMzApJyB9LFxuICAgICAgICAgIGdlb21ldHJ5OiB7XG4gICAgICAgICAgICB0eXBlOiAnUG9seWdvbicsXG4gICAgICAgICAgICBjb29yZGluYXRlczogW1xuICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgWzEwOC40MywgMTEuOTI1XSxcbiAgICAgICAgICAgICAgICBbMTA4LjQ5LCAxMS45MjVdLFxuICAgICAgICAgICAgICAgIFsxMDguNDksIDExLjk2NV0sXG4gICAgICAgICAgICAgICAgWzEwOC40MywgMTEuOTY1XSxcbiAgICAgICAgICAgICAgICBbMTA4LjQzLCAxMS45MjVdLFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICB9LFxuICB7XG4gICAgaWQ6ICdkZW1vLXBhcmNlbCcsXG4gICAgdGl0bGU6ICdU4buJbmggTMOibSDEkOG7k25nJyxcbiAgICB0eXBlOiAnZ2VvanNvbicsXG4gICAgdmlzaWJsZTogdHJ1ZSxcbiAgICBvcGFjaXR5OiAwLjQsXG4gICAgekluZGV4OiAyMCxcbiAgICBncm91cDogJ2NhZGFzdHJlJyxcbiAgICBncm91cExhYmVsOiAnQuG6o24gxJHhu5MgxJHhu4thIGNow61uaCcsXG4gICAgZ3JvdXBTZWxlY3Rpb246ICdtdWx0aScsXG4gICAgYmFzZW1hcDogZmFsc2UsXG4gICAgcXVlcnlhYmxlOiB0cnVlLFxuICAgIGRhdGFQcm9qZWN0aW9uOiAnRVBTRzo0MzI2JyxcbiAgICBmZWF0dXJlUHJvamVjdGlvbjogJ0VQU0c6Mzg1NycsXG4gICAgZGF0YToge1xuICAgICAgdHlwZTogJ0ZlYXR1cmVDb2xsZWN0aW9uJyxcbiAgICAgIGZlYXR1cmVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiAnRmVhdHVyZScsXG4gICAgICAgICAgcHJvcGVydGllczogeyBwYXJjZWw6ICcxMicsIHNoZWV0OiAnNDUnIH0sXG4gICAgICAgICAgZ2VvbWV0cnk6IHtcbiAgICAgICAgICAgIHR5cGU6ICdQb2x5Z29uJyxcbiAgICAgICAgICAgIGNvb3JkaW5hdGVzOiBbXG4gICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICBbMTA4LjQ1LCAxMS45NF0sXG4gICAgICAgICAgICAgICAgWzEwOC40NjUsIDExLjk0XSxcbiAgICAgICAgICAgICAgICBbMTA4LjQ2NSwgMTEuOTUyXSxcbiAgICAgICAgICAgICAgICBbMTA4LjQ1LCAxMS45NTJdLFxuICAgICAgICAgICAgICAgIFsxMDguNDUsIDExLjk0XSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgfSxcbiAge1xuICAgIGlkOiAnZGVtby1jdXJyZW50LTIwMjAnLFxuICAgIHRpdGxlOiAnUUhTREQgdOG7iW5oIEzDom0gxJDhu5NuZyAyMDIwLTIwMjUnLFxuICAgIHR5cGU6ICdnZW9qc29uJyxcbiAgICB2aXNpYmxlOiB0cnVlLFxuICAgIG9wYWNpdHk6IDAuNCxcbiAgICB6SW5kZXg6IDEyLFxuICAgIGdyb3VwOiAnY3VycmVudCcsXG4gICAgZ3JvdXBMYWJlbDogJ0LhuqNuIMSR4buTIGhp4buHbiB0cuG6oW5nJyxcbiAgICBncm91cFNlbGVjdGlvbjogJ3NpbmdsZScsXG4gICAgYmFzZW1hcDogZmFsc2UsXG4gICAgZGF0YVByb2plY3Rpb246ICdFUFNHOjQzMjYnLFxuICAgIGZlYXR1cmVQcm9qZWN0aW9uOiAnRVBTRzozODU3JyxcbiAgICBkYXRhOiB7XG4gICAgICB0eXBlOiAnRmVhdHVyZUNvbGxlY3Rpb24nLFxuICAgICAgZmVhdHVyZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICdGZWF0dXJlJyxcbiAgICAgICAgICBwcm9wZXJ0aWVzOiB7IGNvZGU6ICdPTlQnLCBuYW1lOiAnxJDhuqV0IOG7nyB04bqhaSBuw7RuZyB0aMO0biAoSFQgMjAyMC0yMDI1KScgfSxcbiAgICAgICAgICBnZW9tZXRyeToge1xuICAgICAgICAgICAgdHlwZTogJ1BvbHlnb24nLFxuICAgICAgICAgICAgY29vcmRpbmF0ZXM6IFtcbiAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgIFsxMDguNDQsIDExLjkyXSxcbiAgICAgICAgICAgICAgICBbMTA4LjUsIDExLjkyXSxcbiAgICAgICAgICAgICAgICBbMTA4LjUsIDExLjk2XSxcbiAgICAgICAgICAgICAgICBbMTA4LjQ0LCAxMS45Nl0sXG4gICAgICAgICAgICAgICAgWzEwOC40NCwgMTEuOTJdLFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICB9LFxuICB7XG4gICAgaWQ6ICdkZW1vLWN1cnJlbnQtMjAyNScsXG4gICAgdGl0bGU6ICdRSFNERCB04buJbmggTMOibSDEkOG7k25nIDIwMjUtMjAzMCcsXG4gICAgdHlwZTogJ2dlb2pzb24nLFxuICAgIHZpc2libGU6IGZhbHNlLFxuICAgIG9wYWNpdHk6IDAuNCxcbiAgICB6SW5kZXg6IDEzLFxuICAgIGdyb3VwOiAnY3VycmVudCcsXG4gICAgZ3JvdXBMYWJlbDogJ0LhuqNuIMSR4buTIGhp4buHbiB0cuG6oW5nJyxcbiAgICBncm91cFNlbGVjdGlvbjogJ3NpbmdsZScsXG4gICAgYmFzZW1hcDogZmFsc2UsXG4gICAgZGF0YVByb2plY3Rpb246ICdFUFNHOjQzMjYnLFxuICAgIGZlYXR1cmVQcm9qZWN0aW9uOiAnRVBTRzozODU3JyxcbiAgICBkYXRhOiB7XG4gICAgICB0eXBlOiAnRmVhdHVyZUNvbGxlY3Rpb24nLFxuICAgICAgZmVhdHVyZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICdGZWF0dXJlJyxcbiAgICAgICAgICBwcm9wZXJ0aWVzOiB7IGNvZGU6ICdPTlQnLCBuYW1lOiAnxJDhuqV0IOG7nyB04bqhaSBuw7RuZyB0aMO0biAoSFQgMjAyNS0yMDMwKScgfSxcbiAgICAgICAgICBnZW9tZXRyeToge1xuICAgICAgICAgICAgdHlwZTogJ1BvbHlnb24nLFxuICAgICAgICAgICAgY29vcmRpbmF0ZXM6IFtcbiAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgIFsxMDguNDM1LCAxMS45MTVdLFxuICAgICAgICAgICAgICAgIFsxMDguNDk1LCAxMS45MTVdLFxuICAgICAgICAgICAgICAgIFsxMDguNDk1LCAxMS45NTVdLFxuICAgICAgICAgICAgICAgIFsxMDguNDM1LCAxMS45NTVdLFxuICAgICAgICAgICAgICAgIFsxMDguNDM1LCAxMS45MTVdLFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICB9LFxuXTtcblxuLyoqXG4gKiBTYW1wbGUgbGVnZW5kIOKAlCBwbGFjZWhvbGRlciBjb2xvcnMgdW50aWwgVGjDtG5nIHTGsCAwOS8yMDI0IHBhbGV0dGUgaXMgY29tcGxldGUgKFExM+KAk1ExNSkuXG4gKiBEbyBub3QgdHJlYXQgYXMgbGVnYWxseSBhdXRob3JpdGF0aXZlLlxuICovXG5leHBvcnQgY29uc3QgR0VPX01BUF9ERU1PX0xFR0VORF9JVEVNUzogR2VvTWFwTGVnZW5kSXRlbVtdID0gW1xuICB7IGNvZGU6ICdPRFQnLCBsYWJlbDogJ8SQ4bqldCDhu58gxJHDtCB0aOG7iycsIGNvbG9yOiAnI0U4N0IzNScgfSxcbiAgeyBjb2RlOiAnT05UJywgbGFiZWw6ICfEkOG6pXQg4bufIHThuqFpIG7DtG5nIHRow7RuJywgY29sb3I6ICcjRjJDMTRFJyB9LFxuICB7IGNvZGU6ICdTS0MnLCBsYWJlbDogJ8SQ4bqldCBjxqEgc+G7nyBz4bqjbiB4deG6pXQga2luaCBkb2FuaCcsIGNvbG9yOiAnI0M0NUMyNicgfSxcbiAgeyBjb2RlOiAnREdUJywgbGFiZWw6ICfEkOG6pXQgZ2lhbyB0aMO0bmcnLCBjb2xvcjogJyM2QjcyODAnIH0sXG4gIHsgY29kZTogJ1RNRCcsIGxhYmVsOiAnxJDhuqV0IHRoxrDGoW5nIG3huqFpIGThu4tjaCB24bulJywgY29sb3I6ICcjREIyNzc3JyB9LFxuICB7IGNvZGU6ICdDTE4nLCBsYWJlbDogJ8SQ4bqldCB0cuG7k25nIGPDonkgbMOidSBuxINtJywgY29sb3I6ICcjMTZBMzRBJyB9LFxuXTtcblxuZXhwb3J0IGNvbnN0IEdFT19NQVBfREVGQVVMVF9IRUxQX1NFQ1RJT05TOiBBcnJheTx7IHRpdGxlOiBzdHJpbmc7IGJvZHk6IHN0cmluZyB9PiA9IFtcbiAge1xuICAgIHRpdGxlOiAnRGkgY2h1eeG7g24gYuG6o24gxJHhu5MnLFxuICAgIGJvZHk6ICdLw6lvIGNodeG7mXQgxJHhu4MgcGFuLiBDdeG7mW4gY2h14buZdCBob+G6t2MgZMO5bmcgbsO6dCArLy0gxJHhu4MgdGh1IHBow7NuZy4gRMO5bmcg4oCcUGjDs25nIHRvIHRoZW8gdsO5bmfigJ0gLyDigJxUaHUgbmjhu48gdGhlbyB2w7luZ+KAnSDEkeG7gyBraG9hbmggdsO5bmcgdHLDqm4gYuG6o24gxJHhu5MuIOKAnFhlbSB0b8OgbiB04buJbmjigJ0gY8SDbiBraHVuZyBuaMOsbiB24buBIHBo4bqhbSB2aSB04buJbmguJyxcbiAgfSxcbiAge1xuICAgIHRpdGxlOiAnVHJhIGPhu6l1IHRo4butYSDEkeG6pXQnLFxuICAgIGJvZHk6ICdN4bufIOKAnFRyYSBj4bupdeKAnSDEkeG7gyB0w6xtIHRoZW8gY2jhu6cgc+G7rSBk4bulbmcsIEdDTiwgdOG7jWEgxJHhu5ksIMSR4buLYSBjaOG7iSBob+G6t2Mgc+G7kSB04budL3Ro4butYS4gS+G6v3QgcXXhuqMgaGnhu4NuIHRo4buLIGRhbmggc8OhY2ggdsOgIGhpZ2hsaWdodCB0csOqbiBi4bqjbiDEkeG7ky4nLFxuICB9LFxuICB7XG4gICAgdGl0bGU6ICdM4bubcCBi4bqjbiDEkeG7kycsXG4gICAgYm9keTogJ03hu58g4oCcTOG7m3AgYuG6o24gxJHhu5PigJ0gxJHhu4MgYuG6rXQvdOG6r3QgcXV5IGhv4bqhY2ggU0TEkCwgaGnhu4duIHRy4bqhbmcgU0TEkCwgdGjhu61hIMSR4bqldC4gQ2jhu41uIHbhu4cgdGluaCDhu58gYuG7mSBjaHV54buDbiBs4bubcCBu4buBbi4gQuG6rXQgbmhp4buBdSBs4bubcCBjw7luZyBsw7pjIMSR4buDIGNo4buTbmcgeOG6v3Agc28gc8OhbmguJyxcbiAgfSxcbiAge1xuICAgIHRpdGxlOiAnxJDGoW4gduG7iyBow6BuaCBjaMOtbmgnLFxuICAgIGJvZHk6ICdN4bufIGLhu5kgbOG7jWMgxJBWSEMgY+G6pXAgeMOjIMSR4buDIHRodSBo4bq5cCBraHVuZyBuaMOsbiB0aGVvIHjDoyDEkcOjIGNo4buNbi4g4oCcWGVtIHRvw6BuIHThu4luaOKAnSDEkcawYSBi4bqjbiDEkeG7kyB24buBIHRvw6BuIGPhuqNuaCB04buJbmguJyxcbiAgfSxcbiAge1xuICAgIHRpdGxlOiAnxJBvIMSR4bqhYyAmIHRp4buHbiDDrWNoJyxcbiAgICBib2R5OiAnxJBvIGtob+G6o25nIGPDoWNoIC8gZGnhu4duIHTDrWNoIGLhurFuZyBjw6FjaCBuaOG6pXAgY8OhYyDEkWnhu4NtIHRyw6puIGLhuqNuIMSR4buTIChuaMOheSDEkcO6cCDEkeG7gyBr4bq/dCB0aMO6YykuIETDuW5nIOKAnMSQ4buZIHRyb25nIHN14buRdOKAnSDEkeG7gyBuaMOsbiB4dXnDqm4gbOG7m3AuIOKAnENo4bulcCDhuqNuaOKAnSB04bqjaSBQTkcga2h1bmcgbmjDrG4gaGnhu4duIHThuqFpLicsXG4gIH0sXG4gIHtcbiAgICB0aXRsZTogJ1bhu4sgdHLDrSBj4bunYSB0w7RpJyxcbiAgICBib2R5OiAnQ2hvIHBow6lwIHRyw6xuaCBkdXnhu4d0IGNoaWEgc+G6uyB24buLIHRyw60gxJHhu4MgY8SDbiBnaeG7r2EgYuG6o24gxJHhu5MgdOG6oWkgduG7iyB0csOtIHRoaeG6v3QgYuG7iyBj4bunYSBi4bqhbi4nLFxuICB9LFxuXTtcblxuLyoqIERlbW8gYWRtaW4gdHJlZSAoeMOjKSBmb3IgU3Rvcnlib29rIOKAlCByZXBsYWNlIHZpYSBBUEkgaW4gcHJvZHVjdGlvbi4gKi9cbmV4cG9ydCBjb25zdCBHRU9fTUFQX0RFTU9fQURNSU5fTk9ERVM6IEdlb1RyZWVOb2RlW10gPSBbXG4gIHtcbiAgICBrZXk6ICdsYW0tZG9uZycsXG4gICAgdGl0bGU6ICdU4buJbmggTMOibSDEkOG7k25nJyxcbiAgICBleHBhbmRlZDogdHJ1ZSxcbiAgICBjaGlsZHJlbjogW1xuICAgICAgeyBrZXk6ICd4YS0xJywgdGl0bGU6ICdYw6MgxJDhuqEgVOG6u2gnLCBpc0xlYWY6IHRydWUgfSxcbiAgICAgIHsga2V5OiAneGEtMicsIHRpdGxlOiAnWMOjIMSQ4bqhIEh1b2FpJywgaXNMZWFmOiB0cnVlIH0sXG4gICAgICB7IGtleTogJ3hhLTMnLCB0aXRsZTogJ1jDoyDEkOG6oSBLaG8nLCBpc0xlYWY6IHRydWUgfSxcbiAgICAgIHsga2V5OiAneGEtNCcsIHRpdGxlOiAnUGjGsOG7nW5nIDEgKMSQw6AgTOG6oXQpJywgaXNMZWFmOiB0cnVlIH0sXG4gICAgICB7IGtleTogJ3hhLTUnLCB0aXRsZTogJ1BoxrDhu51uZyAyICjEkMOgIEzhuqF0KScsIGlzTGVhZjogdHJ1ZSB9LFxuICAgIF0sXG4gIH0sXG5dO1xuXG4vKiogRGVtbyBwYXJjZWwgZGV0YWlsIGZvciBTdG9yeWJvb2sgc2VhcmNoL3BvcHVwIChUQ1FILjEyKS4gKi9cbmV4cG9ydCBjb25zdCBHRU9fTUFQX0RFTU9fUEFSQ0VMX0RFVEFJTDogR2VvTWFwUGFyY2VsRGV0YWlsID0ge1xuICBwYXJjZWxDb2RlOiAnMDEwMDAwMTIzNCcsXG4gIHBhcmNlbE51bWJlcjogJzIwMjMnLFxuICBzaGVldE51bWJlcjogJzE1MycsXG4gIHdhcmQ6ICdQaMaw4budbmcgMScsXG4gIHByb3ZpbmNlOiAnTMOibSDEkOG7k25nJyxcbiAgYXJlYTogJzI1MDAgbcKyJyxcbiAgbGVnYWxBcmVhOiAnMjUwMCBtwrInLFxuICBsYW5kVXNlOiAnTFVDIC0gxJDhuqV0IGNodXnDqm4gdHLhu5NuZyBsw7phIG7GsOG7m2MnLFxuICBhZGRyZXNzOiAnU+G7kSAxMCwgxJHGsOG7nW5nIFRy4bqnbiBQaMO6JyxcbiAgdXNlRm9ybTogJ1Phu60gZOG7pW5nIHJpw6puZycsXG4gIHJlZ2lzdHJhdGlvblN0YXR1czogJ8SQw6MgY+G6pXAgZ2nhuqV5IGNo4bupbmcgbmjhuq1uJyxcbiAgbGFuZFByaWNlOiAnxJBhbmcgY+G6rXAgbmjhuq10JyxcbiAgc2hhcGVJbmZvOiAnSMOsbmggY2jhu68gbmjhuq10JyxcbiAgcGxhbm5pbmdJbmZvOiAnTuG6sW0gdHJvbmcgcXV5IGhv4bqhY2ggxJHhuqV0IOG7nyDEkcO0IHRo4buLIGdpYWkgxJFv4bqhbiAyMDIx4oCTMjAzMCcsXG59O1xuXG4vKipcbiAqIFBsYWNlaG9sZGVyIGVuZHBvaW50cyDigJQgcmVwbGFjZSB2aWEgZW52aXJvbm1lbnQgLyBBUEkuXG4gKiBEbyBub3QgaGFyZC1jb2RlIHByb2R1Y3Rpb24gZG9tYWlucyBoZXJlLlxuICovXG5leHBvcnQgY29uc3QgR0VPX01BUF9FTlZfUExBQ0VIT0xERVJTID0ge1xuICB3bXNVcmw6ICdodHRwczovL3tNQVBfQVBJX0hPU1R9L2dlb3NlcnZlci93bXMnLFxuICB4eXpTYXRlbGxpdGVVcmw6XG4gICAgJ2h0dHBzOi8ve1RJTEVfSE9TVH0vc2F0ZWxsaXRlL3t6fS97eH0ve3l9LnBuZycsXG4gIGdlb2pzb25QYXJjZWxVcmw6ICdodHRwczovL3tNQVBfQVBJX0hPU1R9L2FwaS92MS9wYXJjZWxzLmdlb2pzb24nLFxufSBhcyBjb25zdDtcblxuLyoqXG4gKiBFeGFtcGxlIG11bHRpLWxheWVyIHN0YWNrIGZvciBsYW5kLXVzZSBwbGFubmluZyBkZW1vcyAvIFN0b3J5Ym9vay5cbiAqIFVSTHMgYXJlIHBsYWNlaG9sZGVyczsgV01TL1hZWiB0aWxlcyB3aWxsIGZhaWwgdW50aWwgZW52IGlzIHdpcmVkLlxuICovXG5leHBvcnQgY29uc3QgR0VPX01BUF9ERUZBVUxUX1BMQU5OSU5HX0xBWUVSUzogR2VvTWFwTGF5ZXJDb25maWdbXSA9IFtcbiAge1xuICAgIGlkOiAnb3NtJyxcbiAgICB0aXRsZTogJ0LhuqNuIMSR4buTIMSRxrDhu51uZyBwaOG7kScsXG4gICAgdHlwZTogJ29zbScsXG4gICAgdmlzaWJsZTogdHJ1ZSxcbiAgICBvcGFjaXR5OiAxLFxuICAgIHpJbmRleDogMCxcbiAgICBiYXNlbWFwOiB0cnVlLFxuICAgIGdyb3VwOiAnYmFzZS1tYXAnLFxuICB9LFxuICB7XG4gICAgaWQ6ICdzYXRlbGxpdGUnLFxuICAgIHRpdGxlOiAn4bqibmggduG7hyB0aW5oJyxcbiAgICB0eXBlOiAneHl6JyxcbiAgICB1cmw6IEdFT19NQVBfRU5WX1BMQUNFSE9MREVSUy54eXpTYXRlbGxpdGVVcmwsXG4gICAgdmlzaWJsZTogZmFsc2UsXG4gICAgb3BhY2l0eTogMSxcbiAgICB6SW5kZXg6IDAsXG4gICAgYmFzZW1hcDogdHJ1ZSxcbiAgICBncm91cDogJ2Jhc2UtbWFwJyxcbiAgICBhdHRyaWJ1dGlvbnM6ICdTYXRlbGxpdGUgKHBsYWNlaG9sZGVyKScsXG4gIH0sXG4gIHtcbiAgICBpZDogJ2xhbmQtdXNlLXBsYW5uaW5nJyxcbiAgICB0aXRsZTogJ1F1eSBob+G6oWNoIHPhu60gZOG7pW5nIMSR4bqldCcsXG4gICAgdHlwZTogJ3dtcycsXG4gICAgdXJsOiBHRU9fTUFQX0VOVl9QTEFDRUhPTERFUlMud21zVXJsLFxuICAgIGxheWVyTmFtZTogJ3dvcmtzcGFjZTpsYW5kX3VzZV9wbGFubmluZycsXG4gICAgcGFyYW1zOiB7XG4gICAgICBMQVlFUlM6ICd3b3Jrc3BhY2U6bGFuZF91c2VfcGxhbm5pbmcnLFxuICAgICAgVElMRUQ6IHRydWUsXG4gICAgfSxcbiAgICB2aXNpYmxlOiB0cnVlLFxuICAgIG9wYWNpdHk6IDAuNyxcbiAgICB6SW5kZXg6IDEwLFxuICAgIHByb2plY3Rpb246ICdFUFNHOjM4NTcnLFxuICAgIHF1ZXJ5YWJsZTogdHJ1ZSxcbiAgICBncm91cDogJ3BsYW5uaW5nJyxcbiAgICBzZXJ2ZXJUeXBlOiAnZ2Vvc2VydmVyJyxcbiAgfSxcbiAge1xuICAgIGlkOiAncGFyY2VsLWJvdW5kYXJ5JyxcbiAgICB0aXRsZTogJ1JhbmggZ2nhu5tpIHRo4butYSDEkeG6pXQnLFxuICAgIHR5cGU6ICd3bXMnLFxuICAgIHVybDogR0VPX01BUF9FTlZfUExBQ0VIT0xERVJTLndtc1VybCxcbiAgICBsYXllck5hbWU6ICd3b3Jrc3BhY2U6cGFyY2VsX2JvdW5kYXJ5JyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIExBWUVSUzogJ3dvcmtzcGFjZTpwYXJjZWxfYm91bmRhcnknLFxuICAgICAgVElMRUQ6IHRydWUsXG4gICAgfSxcbiAgICB2aXNpYmxlOiB0cnVlLFxuICAgIG9wYWNpdHk6IDAuOSxcbiAgICB6SW5kZXg6IDIwLFxuICAgIHF1ZXJ5YWJsZTogdHJ1ZSxcbiAgICBncm91cDogJ3BsYW5uaW5nJyxcbiAgICBzZXJ2ZXJUeXBlOiAnZ2Vvc2VydmVyJyxcbiAgfSxcbiAge1xuICAgIGlkOiBHRU9fTUFQX1NFTEVDVElPTl9MQVlFUl9JRCxcbiAgICB0aXRsZTogJ8SQ4buRaSB0xrDhu6NuZyDEkWFuZyBjaOG7jW4nLFxuICAgIHR5cGU6ICd2ZWN0b3InLFxuICAgIHZpc2libGU6IHRydWUsXG4gICAgb3BhY2l0eTogMSxcbiAgICB6SW5kZXg6IDEwMCxcbiAgICBncm91cDogJ3N5c3RlbScsXG4gICAgZmVhdHVyZXM6IFtdLFxuICB9LFxuICB7XG4gICAgaWQ6IEdFT19NQVBfTUVBU1VSRV9MQVlFUl9JRCxcbiAgICB0aXRsZTogJ0vhur90IHF14bqjIMSRbycsXG4gICAgdHlwZTogJ3ZlY3RvcicsXG4gICAgdmlzaWJsZTogdHJ1ZSxcbiAgICBvcGFjaXR5OiAxLFxuICAgIHpJbmRleDogMTEwLFxuICAgIGdyb3VwOiAnc3lzdGVtJyxcbiAgICBmZWF0dXJlczogW10sXG4gIH0sXG5dO1xuIl19
509
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvLW1hcC5jb25zdGFudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9nZW8tdWkvc3JjL2xpYi9maWdtYS9nZW8tbWFwL2dlby1tYXAuY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVNBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRWhFLHNFQUFzRTtBQUN0RSxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQVUsQ0FBQztBQUUvRTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBOEIsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDckYsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsRUFBRSxDQUFDO0FBQ3ZDLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLENBQUMsQ0FBQztBQUMxQyxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxFQUFFLENBQUM7QUFDM0MsTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQUcsV0FBVyxDQUFDO0FBQzNELE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLE9BQU8sQ0FBQztBQUU5QyxtRUFBbUU7QUFDbkUsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsZUFBZSxDQUFDO0FBRXhELDJFQUEyRTtBQUMzRSxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyxpQkFBaUIsQ0FBQztBQUM1RCxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxlQUFlLENBQUM7QUFDeEQsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsaUJBQWlCLENBQUM7QUFFNUQ7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sb0NBQW9DLEdBSzdDLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFFbEMseUVBQXlFO0FBQ3pF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T0FBTyxFQUFFLENBQUM7UUFDVixNQUFNLEVBQUUsR0FBRztRQUNYLEtBQUssRUFBRSxRQUFRO1FBQ2YsUUFBUSxFQUFFLEVBQUU7S0FDYjtJQUNEO1FBQ0UsRUFBRSxFQUFFLHdCQUF3QjtRQUM1QixLQUFLLEVBQUUsWUFBWTtRQUNuQixJQUFJLEVBQUUsUUFBUTtRQUNkLE9BQU8sRUFBRSxJQUFJO1FBQ2IsT0FBTyxFQUFFLENBQUM7UUFDVixNQUFNLEVBQUUsR0FBRztRQUNYLEtBQUssRUFBRSxRQUFRO1FBQ2YsUUFBUSxFQUFFLEVBQUU7S0FDYjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7XG4gIEdlb01hcEJhc2VtYXBPcHRpb24sXG4gIEdlb01hcExheWVyQ29uZmlnLFxuICBHZW9NYXBMZWdlbmRJdGVtLFxuICBHZW9NYXBQYXJjZWxEZXRhaWwsXG4gIEdlb01hcFRvb2xiYXJBY3Rpb24sXG4gIEdlb01hcFh5ekxheWVyQ29uZmlnLFxufSBmcm9tICcuL2dlby1tYXAudHlwZXMnO1xuaW1wb3J0IHR5cGUgeyBHZW9UcmVlTm9kZSB9IGZyb20gJy4uL2dlby10cmVlL2dlby10cmVlLnR5cGVzJztcbmltcG9ydCB7IEdFT19NQVBfVE9PTEJBUl9JQ09OUyB9IGZyb20gJy4vZ2VvLW1hcC10b29sYmFyLmljb25zJztcblxuLyoqIEJ1aWx0LWluIENSUyBjb2RlcyBhdmFpbGFibGUgd2l0aG91dCBjdXN0b20gcHJvajQgcmVnaXN0cmF0aW9uLiAqL1xuZXhwb3J0IGNvbnN0IEdFT19NQVBfQlVJTFRJTl9QUk9KRUNUSU9OUyA9IFsnRVBTRzo0MzI2JywgJ0VQU0c6Mzg1NyddIGFzIGNvbnN0O1xuXG4vKipcbiAqIERlZmF1bHQgdmlldyDigJQgV2ViIE1lcmNhdG9yIGFyb3VuZCDEkMOgIEzhuqF0IChMw6JtIMSQ4buTbmcpLlxuICogQ2VudGVyIGlzIGFscmVhZHkgaW4gRVBTRzozODU3IChkbyBub3QgdHJlYXQgYXMgbG9uL2xhdCkuXG4gKi9cbmV4cG9ydCBjb25zdCBHRU9fTUFQX0RFRkFVTFRfQ0VOVEVSOiByZWFkb25seSBbbnVtYmVyLCBudW1iZXJdID0gWzEyMDUyMDAwLCAxMzMwMDAwXTtcbmV4cG9ydCBjb25zdCBHRU9fTUFQX0RFRkFVTFRfWk9PTSA9IDExO1xuZXhwb3J0IGNvbnN0IEdFT19NQVBfREVGQVVMVF9NSU5fWk9PTSA9IDI7XG5leHBvcnQgY29uc3QgR0VPX01BUF9ERUZBVUxUX01BWF9aT09NID0gMjA7XG5leHBvcnQgY29uc3QgR0VPX01BUF9ERUZBVUxUX1ZJRVdfUFJPSkVDVElPTiA9ICdFUFNHOjM4NTcnO1xuZXhwb3J0IGNvbnN0IEdFT19NQVBfREVGQVVMVF9IRUlHSFQgPSAnNDgwcHgnO1xuXG4vKiogSW50ZXJuYWwgbGF5ZXIgaWQgcmVzZXJ2ZWQgZm9yIHRoZSBgYmFzZW1hcGAgaW5wdXQgc2hvcnRjdXQuICovXG5leHBvcnQgY29uc3QgR0VPX01BUF9CQVNFTUFQX0xBWUVSX0lEID0gJ19fZ2VvX2Jhc2VtYXAnO1xuXG4vKiogSW50ZXJuYWwgdmVjdG9yIGxheWVycyByZXNlcnZlZCBmb3Igc2VsZWN0aW9uIC8gbWVhc3VyZSAvIGhpZ2hsaWdodC4gKi9cbmV4cG9ydCBjb25zdCBHRU9fTUFQX1NFTEVDVElPTl9MQVlFUl9JRCA9ICdfX2dlb19zZWxlY3Rpb24nO1xuZXhwb3J0IGNvbnN0IEdFT19NQVBfTUVBU1VSRV9MQVlFUl9JRCA9ICdfX2dlb19tZWFzdXJlJztcbmV4cG9ydCBjb25zdCBHRU9fTUFQX0hJR0hMSUdIVF9MQVlFUl9JRCA9ICdfX2dlb19oaWdobGlnaHQnO1xuXG4vKipcbiAqIERlZmF1bHQgcHJvdmluY2UgZXh0ZW50IChMw6JtIMSQ4buTbmcgYXBwcm94LCBFUFNHOjQzMjYpIGZvciDigJx4ZW0gdG/DoG4gdOG7iW5o4oCdIChUQ1FILjE0IEdENSkuXG4gKiBIb3N0IGFwcHMgc2hvdWxkIG92ZXJyaWRlIHdpdGggYXV0aG9yaXRhdGl2ZSBib3VuZGFyeSBleHRlbnQgZnJvbSBBUEkuXG4gKi9cbmV4cG9ydCBjb25zdCBHRU9fTUFQX0RFRkFVTFRfUFJPVklOQ0VfRVhURU5UXzQzMjY6IHJlYWRvbmx5IFtcbiAgbnVtYmVyLFxuICBudW1iZXIsXG4gIG51bWJlcixcbiAgbnVtYmVyLFxuXSA9IFsxMDcuMiwgMTEuMTUsIDEwOC43NSwgMTIuMzVdO1xuXG4vKiogT3B0aW9uYWwgdHJhZmZpYyAvIHJvYWRzIHJlZmVyZW5jZSBvdmVybGF5IChub3QgYSBwbGFubmluZyBsYXllcikuICovXG5leHBvcnQgY29uc3QgR0VPX01BUF9UUkFGRklDX0xBWUVSX0lEID0gJ19fZ2VvX3RyYWZmaWMnO1xuXG5leHBvcnQgY29uc3QgR0VPX01BUF9FU1JJX0lNQUdFUllfVVJMID1cbiAgJ2h0dHBzOi8vc2VydmVyLmFyY2dpc29ubGluZS5jb20vQXJjR0lTL3Jlc3Qvc2VydmljZXMvV29ybGRfSW1hZ2VyeS9NYXBTZXJ2ZXIvdGlsZS97en0ve3l9L3t4fSc7XG5cbmV4cG9ydCBjb25zdCBHRU9fTUFQX0VTUklfU1RSRUVUU19VUkwgPVxuICAnaHR0cHM6Ly9zZXJ2ZXIuYXJjZ2lzb25saW5lLmNvbS9BcmNHSVMvcmVzdC9zZXJ2aWNlcy9Xb3JsZF9TdHJlZXRfTWFwL01hcFNlcnZlci90aWxlL3t6fS97eX0ve3h9JztcblxuZXhwb3J0IGNvbnN0IEdFT19NQVBfRVNSSV9UUkFOU1BPUlRfVVJMID1cbiAgJ2h0dHBzOi8vc2VydmVyLmFyY2dpc29ubGluZS5jb20vQXJjR0lTL3Jlc3Qvc2VydmljZXMvUmVmZXJlbmNlL1dvcmxkX1RyYW5zcG9ydGF0aW9uL01hcFNlcnZlci90aWxlL3t6fS97eX0ve3h9JztcblxuLyoqIERlZmF1bHQgYmFzZW1hcCBwaWNrZXIgb3B0aW9ucyAoxJHGsOG7nW5nIHBo4buRIC8gduG7hyB0aW5oKS4gKi9cbmV4cG9ydCBjb25zdCBHRU9fTUFQX0RFRkFVTFRfQkFTRU1BUF9PUFRJT05TOiBHZW9NYXBCYXNlbWFwT3B0aW9uW10gPSBbXG4gIHtcbiAgICBpZDogJ29zbScsXG4gICAgbGFiZWw6ICfEkMaw4budbmcgcGjhu5EnLFxuICAgIGJhc2VtYXA6ICdvc20nLFxuICAgIHByZXZpZXdVcmw6ICdodHRwczovL3RpbGUub3BlbnN0cmVldG1hcC5vcmcvNi81MC8zMC5wbmcnLFxuICB9LFxuICB7XG4gICAgaWQ6ICdzYXRlbGxpdGUnLFxuICAgIGxhYmVsOiAnVuG7hyB0aW5oJyxcbiAgICBiYXNlbWFwOiB7XG4gICAgICB0eXBlOiAneHl6JyxcbiAgICAgIHVybDogR0VPX01BUF9FU1JJX0lNQUdFUllfVVJMLFxuICAgICAgYXR0cmlidXRpb25zOiAnRXNyaSwgTWF4YXIsIEVhcnRoc3RhciBHZW9ncmFwaGljcycsXG4gICAgICB0aXRsZTogJ+G6om5oIHbhu4cgdGluaCcsXG4gICAgfSxcbiAgICBwcmV2aWV3VXJsOlxuICAgICAgJ2h0dHBzOi8vc2VydmVyLmFyY2dpc29ubGluZS5jb20vQXJjR0lTL3Jlc3Qvc2VydmljZXMvV29ybGRfSW1hZ2VyeS9NYXBTZXJ2ZXIvdGlsZS82LzMwLzUwJyxcbiAgfSxcbl07XG5cbi8qKiBUcmFuc3BvcnRhdGlvbiByZWZlcmVuY2Ugb3ZlcmxheSDigJQgdG9nZ2xlIGluZGVwZW5kZW50bHkgb2YgYmFzZW1hcC4gKi9cbmV4cG9ydCBjb25zdCBHRU9fTUFQX1RSQUZGSUNfT1ZFUkxBWTogR2VvTWFwWHl6TGF5ZXJDb25maWcgPSB7XG4gIGlkOiBHRU9fTUFQX1RSQUZGSUNfTEFZRVJfSUQsXG4gIHRpdGxlOiAnTOG7m3AgZ2lhbyB0aMO0bmcnLFxuICB0eXBlOiAneHl6JyxcbiAgdXJsOiBHRU9fTUFQX0VTUklfVFJBTlNQT1JUX1VSTCxcbiAgYXR0cmlidXRpb25zOiAnRXNyaScsXG4gIHZpc2libGU6IGZhbHNlLFxuICBvcGFjaXR5OiAwLjksXG4gIHpJbmRleDogNSxcbiAgYmFzZW1hcDogZmFsc2UsXG4gIGdyb3VwOiAnYmFzZS1tYXAnLFxufTtcblxuLyoqIEJ1aWx0LWluIHRvb2xiYXIgYWN0aW9ucyDigJQgRmlnbWEgbWFwIGNocm9tZSAoRGF0IERhaSBMYW0gRG9uZyAyMDI2KS4gKi9cbmV4cG9ydCBjb25zdCBHRU9fTUFQX0RFRkFVTFRfVE9PTEJBUl9BQ1RJT05TOiBHZW9NYXBUb29sYmFyQWN0aW9uW10gPSBbXG4gIHtcbiAgICBpZDogJ2hvbWUnLFxuICAgIGxhYmVsOiAnVHJhbmcgY2jhu6cnLFxuICAgIGljb246ICdob21lJyxcbiAgICBpY29uU3JjOiBHRU9fTUFQX1RPT0xCQVJfSUNPTlMuaG9tZSxcbiAgICBpY29uT25seTogdHJ1ZSxcbiAgICB0b29sdGlwOiAnVHJhbmcgY2jhu6cnLFxuICAgIHZhcmlhbnQ6ICdwcmltYXJ5JyxcbiAgfSxcbiAge1xuICAgIGlkOiAnc2VhcmNoJyxcbiAgICBsYWJlbDogJ1RyYSBj4bupdScsXG4gICAgaWNvbjogJ3NlYXJjaCcsXG4gICAgaWNvblNyYzogR0VPX01BUF9UT09MQkFSX0lDT05TLnNlYXJjaCxcbiAgICBpY29uT25seTogdHJ1ZSxcbiAgICB0b29sdGlwOiAnVHJhIGPhu6l1IHRo4butYSDEkeG6pXQnLFxuICB9LFxuICB7XG4gICAgaWQ6ICdwYW4nLFxuICAgIGxhYmVsOiAnRGkgY2h1eeG7g24nLFxuICAgIGljb246ICdkcmFnJyxcbiAgICBpY29uU3JjOiBHRU9fTUFQX1RPT0xCQVJfSUNPTlMucGFuLFxuICAgIGljb25Pbmx5OiB0cnVlLFxuICAgIHRvb2x0aXA6ICdEaSBjaHV54buDbiBi4bqjbiDEkeG7kycsXG4gIH0sXG4gIHtcbiAgICBpZDogJ3pvb20taW4nLFxuICAgIGxhYmVsOiAnUGjDs25nIHRvJyxcbiAgICBpY29uOiAncGx1cycsXG4gICAgaWNvblNyYzogR0VPX01BUF9UT09MQkFSX0lDT05TLnpvb21JbixcbiAgICBpY29uT25seTogdHJ1ZSxcbiAgICB0b29sdGlwOiAnUGjDs25nIHRvJyxcbiAgfSxcbiAge1xuICAgIGlkOiAnem9vbS1vdXQnLFxuICAgIGxhYmVsOiAnVGh1IG5o4buPJyxcbiAgICBpY29uOiAnbWludXMnLFxuICAgIGljb25TcmM6IEdFT19NQVBfVE9PTEJBUl9JQ09OUy56b29tT3V0LFxuICAgIGljb25Pbmx5OiB0cnVlLFxuICAgIHRvb2x0aXA6ICdUaHUgbmjhu48nLFxuICB9LFxuICB7XG4gICAgaWQ6ICdmdWxsc2NyZWVuJyxcbiAgICBsYWJlbDogJ1Rvw6BuIG3DoG4gaMOsbmgnLFxuICAgIGljb246ICdmdWxsc2NyZWVuJyxcbiAgICBpY29uU3JjOiBHRU9fTUFQX1RPT0xCQVJfSUNPTlMuZnVsbHNjcmVlbixcbiAgICBpY29uT25seTogdHJ1ZSxcbiAgICB0b29sdGlwOiAnWGVtIHRvw6BuIGLhuqNuIMSR4buTJyxcbiAgfSxcbiAge1xuICAgIGlkOiAnbWVhc3VyZS1kaXN0YW5jZScsXG4gICAgbGFiZWw6ICfEkG8ga2hv4bqjbmcgY8OhY2gnLFxuICAgIGljb246ICdjb2x1bW4td2lkdGgnLFxuICAgIGljb25TcmM6IEdFT19NQVBfVE9PTEJBUl9JQ09OUy5tZWFzdXJlRGlzdGFuY2UsXG4gICAgaWNvbk9ubHk6IHRydWUsXG4gICAgdG9vbHRpcDogJ8SQbyBraG/huqNuZyBjw6FjaCcsXG4gIH0sXG4gIHtcbiAgICBpZDogJ21lYXN1cmUtYXJlYScsXG4gICAgbGFiZWw6ICfEkG8gZGnhu4duIHTDrWNoJyxcbiAgICBpY29uOiAnYm9yZGVyLW91dGVyJyxcbiAgICBpY29uU3JjOiBHRU9fTUFQX1RPT0xCQVJfSUNPTlMubWVhc3VyZUFyZWEsXG4gICAgaWNvbk9ubHk6IHRydWUsXG4gICAgdG9vbHRpcDogJ8SQbyBkaeG7h24gdMOtY2gnLFxuICB9LFxuICB7XG4gICAgaWQ6ICdsYXllcnMnLFxuICAgIGxhYmVsOiAnTOG7m3AgYuG6o24gxJHhu5MnLFxuICAgIGljb246ICdhcHBzdG9yZScsXG4gICAgaWNvblNyYzogR0VPX01BUF9UT09MQkFSX0lDT05TLmxheWVycyxcbiAgICBpY29uT25seTogdHJ1ZSxcbiAgICB0b29sdGlwOiAnQuG6rXQvdOG6r3QgbOG7m3AgYuG6o24gxJHhu5MnLFxuICB9LFxuICB7XG4gICAgaWQ6ICdsZWdlbmQnLFxuICAgIGxhYmVsOiAnQ2jDuiBnaeG6o2knLFxuICAgIGljb246ICd1bm9yZGVyZWQtbGlzdCcsXG4gICAgaWNvbk9ubHk6IHRydWUsXG4gICAgdG9vbHRpcDogJ1hlbSBjaMO6IGdp4bqjaScsXG4gIH0sXG4gIHtcbiAgICBpZDogJ3NuYXBzaG90JyxcbiAgICBsYWJlbDogJ0No4bulcCDhuqNuaCcsXG4gICAgaWNvbjogJ2NhbWVyYScsXG4gICAgaWNvbk9ubHk6IHRydWUsXG4gICAgdG9vbHRpcDogJ0No4bulcCDhuqNuaCBi4bqjbiDEkeG7kycsXG4gIH0sXG5dO1xuXG4vKipcbiAqIEJ1aWx0LWluIFwiVuG7iyB0csOtIGPhu6dhIHTDtGlcIiB0b29sYmFyIGFjdGlvbiDigJQgcGFpciB3aXRoIGBpZDogJ2xvY2F0ZSdgIGhhbmRsaW5nIHRoYXRcbiAqIGBnZW8tbWFwLXNoZWxsYCBhbHJlYWR5IHJlc29sdmVzIGludGVybmFsbHkgKGdlb2xvY2F0ZSArIGVtaXQgYGxvY2F0ZWRgL2Bsb2NhdGVFcnJvcmApLlxuICogTm90IGluY2x1ZGVkIGluIGBHRU9fTUFQX0RFRkFVTFRfVE9PTEJBUl9BQ1RJT05TYDsgaG9zdCBhcHBzIG9wdCBpbiBleHBsaWNpdGx5LlxuICovXG5leHBvcnQgY29uc3QgR0VPX01BUF9MT0NBVEVfVE9PTEJBUl9BQ1RJT046IEdlb01hcFRvb2xiYXJBY3Rpb24gPSB7XG4gIGlkOiAnbG9jYXRlJyxcbiAgbGFiZWw6ICdW4buLIHRyw60gY+G7p2EgdMO0aScsXG4gIGljb246ICdhaW0nLFxuICBpY29uT25seTogdHJ1ZSxcbiAgdG9vbHRpcDogJ1bhu4sgdHLDrSBj4bunYSB0w7RpJyxcbn07XG5cbi8qKlxuICogRGVtbyB0aGVtYXRpYyBvdmVybGF5cyBmb3IgU3Rvcnlib29rIChvZmZsaW5lLWZyaWVuZGx5IEdlb0pTT04pLlxuICogR3JvdXBzIG1hdGNoIHBvcnRhbCBsYXllcnMgcG9wb3ZlcjogUUhTREQgwrcgxJHhu4thIGNow61uaCDCtyBoaeG7h24gdHLhuqFuZy5cbiAqL1xuZXhwb3J0IGNvbnN0IEdFT19NQVBfREVNT19USEVNQVRJQ19MQVlFUlM6IEdlb01hcExheWVyQ29uZmlnW10gPSBbXG4gIHtcbiAgICBpZDogJ2RlbW8tcWhzZGQtMjAyMCcsXG4gICAgdGl0bGU6ICdRSFNERCB04buJbmggTMOibSDEkOG7k25nIDIwMjAtMjAyNScsXG4gICAgdHlwZTogJ2dlb2pzb24nLFxuICAgIHZpc2libGU6IHRydWUsXG4gICAgb3BhY2l0eTogMC40LFxuICAgIHpJbmRleDogMTAsXG4gICAgZ3JvdXA6ICdxaHNkZCcsXG4gICAgZ3JvdXBMYWJlbDogJ0LhuqNuIMSR4buTIFFIU0REJyxcbiAgICBncm91cFNlbGVjdGlvbjogJ3NpbmdsZScsXG4gICAgYmFzZW1hcDogZmFsc2UsXG4gICAgZGF0YVByb2plY3Rpb246ICdFUFNHOjQzMjYnLFxuICAgIGZlYXR1cmVQcm9qZWN0aW9uOiAnRVBTRzozODU3JyxcbiAgICBkYXRhOiB7XG4gICAgICB0eXBlOiAnRmVhdHVyZUNvbGxlY3Rpb24nLFxuICAgICAgZmVhdHVyZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICdGZWF0dXJlJyxcbiAgICAgICAgICBwcm9wZXJ0aWVzOiB7IGNvZGU6ICdPRFQnLCBuYW1lOiAnxJDhuqV0IOG7nyDEkcO0IHRo4buLIChRSCAyMDIwLTIwMjUpJyB9LFxuICAgICAgICAgIGdlb21ldHJ5OiB7XG4gICAgICAgICAgICB0eXBlOiAnUG9seWdvbicsXG4gICAgICAgICAgICBjb29yZGluYXRlczogW1xuICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgWzEwOC40MiwgMTEuOTNdLFxuICAgICAgICAgICAgICAgIFsxMDguNDgsIDExLjkzXSxcbiAgICAgICAgICAgICAgICBbMTA4LjQ4LCAxMS45N10sXG4gICAgICAgICAgICAgICAgWzEwOC40MiwgMTEuOTddLFxuICAgICAgICAgICAgICAgIFsxMDguNDIsIDExLjkzXSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgfSxcbiAge1xuICAgIGlkOiAnZGVtby1xaHNkZC0yMDI1JyxcbiAgICB0aXRsZTogJ1FIU0REIHThu4luaCBMw6JtIMSQ4buTbmcgMjAyNS0yMDMwJyxcbiAgICB0eXBlOiAnZ2VvanNvbicsXG4gICAgdmlzaWJsZTogZmFsc2UsXG4gICAgb3BhY2l0eTogMC40LFxuICAgIHpJbmRleDogMTEsXG4gICAgZ3JvdXA6ICdxaHNkZCcsXG4gICAgZ3JvdXBMYWJlbDogJ0LhuqNuIMSR4buTIFFIU0REJyxcbiAgICBncm91cFNlbGVjdGlvbjogJ3NpbmdsZScsXG4gICAgYmFzZW1hcDogZmFsc2UsXG4gICAgZGF0YVByb2plY3Rpb246ICdFUFNHOjQzMjYnLFxuICAgIGZlYXR1cmVQcm9qZWN0aW9uOiAnRVBTRzozODU3JyxcbiAgICBkYXRhOiB7XG4gICAgICB0eXBlOiAnRmVhdHVyZUNvbGxlY3Rpb24nLFxuICAgICAgZmVhdHVyZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICdGZWF0dXJlJyxcbiAgICAgICAgICBwcm9wZXJ0aWVzOiB7IGNvZGU6ICdPRFQnLCBuYW1lOiAnxJDhuqV0IOG7nyDEkcO0IHRo4buLIChRSCAyMDI1LTIwMzApJyB9LFxuICAgICAgICAgIGdlb21ldHJ5OiB7XG4gICAgICAgICAgICB0eXBlOiAnUG9seWdvbicsXG4gICAgICAgICAgICBjb29yZGluYXRlczogW1xuICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgWzEwOC40MywgMTEuOTI1XSxcbiAgICAgICAgICAgICAgICBbMTA4LjQ5LCAxMS45MjVdLFxuICAgICAgICAgICAgICAgIFsxMDguNDksIDExLjk2NV0sXG4gICAgICAgICAgICAgICAgWzEwOC40MywgMTEuOTY1XSxcbiAgICAgICAgICAgICAgICBbMTA4LjQzLCAxMS45MjVdLFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICB9LFxuICB7XG4gICAgaWQ6ICdkZW1vLXBhcmNlbCcsXG4gICAgdGl0bGU6ICdU4buJbmggTMOibSDEkOG7k25nJyxcbiAgICB0eXBlOiAnZ2VvanNvbicsXG4gICAgdmlzaWJsZTogdHJ1ZSxcbiAgICBvcGFjaXR5OiAwLjQsXG4gICAgekluZGV4OiAyMCxcbiAgICBncm91cDogJ2NhZGFzdHJlJyxcbiAgICBncm91cExhYmVsOiAnQuG6o24gxJHhu5MgxJHhu4thIGNow61uaCcsXG4gICAgZ3JvdXBTZWxlY3Rpb246ICdtdWx0aScsXG4gICAgYmFzZW1hcDogZmFsc2UsXG4gICAgcXVlcnlhYmxlOiB0cnVlLFxuICAgIGRhdGFQcm9qZWN0aW9uOiAnRVBTRzo0MzI2JyxcbiAgICBmZWF0dXJlUHJvamVjdGlvbjogJ0VQU0c6Mzg1NycsXG4gICAgZGF0YToge1xuICAgICAgdHlwZTogJ0ZlYXR1cmVDb2xsZWN0aW9uJyxcbiAgICAgIGZlYXR1cmVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiAnRmVhdHVyZScsXG4gICAgICAgICAgcHJvcGVydGllczogeyBwYXJjZWw6ICcxMicsIHNoZWV0OiAnNDUnIH0sXG4gICAgICAgICAgZ2VvbWV0cnk6IHtcbiAgICAgICAgICAgIHR5cGU6ICdQb2x5Z29uJyxcbiAgICAgICAgICAgIGNvb3JkaW5hdGVzOiBbXG4gICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICBbMTA4LjQ1LCAxMS45NF0sXG4gICAgICAgICAgICAgICAgWzEwOC40NjUsIDExLjk0XSxcbiAgICAgICAgICAgICAgICBbMTA4LjQ2NSwgMTEuOTUyXSxcbiAgICAgICAgICAgICAgICBbMTA4LjQ1LCAxMS45NTJdLFxuICAgICAgICAgICAgICAgIFsxMDguNDUsIDExLjk0XSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgfSxcbiAge1xuICAgIGlkOiAnZGVtby1jdXJyZW50LTIwMjAnLFxuICAgIHRpdGxlOiAnUUhTREQgdOG7iW5oIEzDom0gxJDhu5NuZyAyMDIwLTIwMjUnLFxuICAgIHR5cGU6ICdnZW9qc29uJyxcbiAgICB2aXNpYmxlOiB0cnVlLFxuICAgIG9wYWNpdHk6IDAuNCxcbiAgICB6SW5kZXg6IDEyLFxuICAgIGdyb3VwOiAnY3VycmVudCcsXG4gICAgZ3JvdXBMYWJlbDogJ0LhuqNuIMSR4buTIGhp4buHbiB0cuG6oW5nJyxcbiAgICBncm91cFNlbGVjdGlvbjogJ3NpbmdsZScsXG4gICAgYmFzZW1hcDogZmFsc2UsXG4gICAgZGF0YVByb2plY3Rpb246ICdFUFNHOjQzMjYnLFxuICAgIGZlYXR1cmVQcm9qZWN0aW9uOiAnRVBTRzozODU3JyxcbiAgICBkYXRhOiB7XG4gICAgICB0eXBlOiAnRmVhdHVyZUNvbGxlY3Rpb24nLFxuICAgICAgZmVhdHVyZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICdGZWF0dXJlJyxcbiAgICAgICAgICBwcm9wZXJ0aWVzOiB7IGNvZGU6ICdPTlQnLCBuYW1lOiAnxJDhuqV0IOG7nyB04bqhaSBuw7RuZyB0aMO0biAoSFQgMjAyMC0yMDI1KScgfSxcbiAgICAgICAgICBnZW9tZXRyeToge1xuICAgICAgICAgICAgdHlwZTogJ1BvbHlnb24nLFxuICAgICAgICAgICAgY29vcmRpbmF0ZXM6IFtcbiAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgIFsxMDguNDQsIDExLjkyXSxcbiAgICAgICAgICAgICAgICBbMTA4LjUsIDExLjkyXSxcbiAgICAgICAgICAgICAgICBbMTA4LjUsIDExLjk2XSxcbiAgICAgICAgICAgICAgICBbMTA4LjQ0LCAxMS45Nl0sXG4gICAgICAgICAgICAgICAgWzEwOC40NCwgMTEuOTJdLFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICB9LFxuICB7XG4gICAgaWQ6ICdkZW1vLWN1cnJlbnQtMjAyNScsXG4gICAgdGl0bGU6ICdRSFNERCB04buJbmggTMOibSDEkOG7k25nIDIwMjUtMjAzMCcsXG4gICAgdHlwZTogJ2dlb2pzb24nLFxuICAgIHZpc2libGU6IGZhbHNlLFxuICAgIG9wYWNpdHk6IDAuNCxcbiAgICB6SW5kZXg6IDEzLFxuICAgIGdyb3VwOiAnY3VycmVudCcsXG4gICAgZ3JvdXBMYWJlbDogJ0LhuqNuIMSR4buTIGhp4buHbiB0cuG6oW5nJyxcbiAgICBncm91cFNlbGVjdGlvbjogJ3NpbmdsZScsXG4gICAgYmFzZW1hcDogZmFsc2UsXG4gICAgZGF0YVByb2plY3Rpb246ICdFUFNHOjQzMjYnLFxuICAgIGZlYXR1cmVQcm9qZWN0aW9uOiAnRVBTRzozODU3JyxcbiAgICBkYXRhOiB7XG4gICAgICB0eXBlOiAnRmVhdHVyZUNvbGxlY3Rpb24nLFxuICAgICAgZmVhdHVyZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICdGZWF0dXJlJyxcbiAgICAgICAgICBwcm9wZXJ0aWVzOiB7IGNvZGU6ICdPTlQnLCBuYW1lOiAnxJDhuqV0IOG7nyB04bqhaSBuw7RuZyB0aMO0biAoSFQgMjAyNS0yMDMwKScgfSxcbiAgICAgICAgICBnZW9tZXRyeToge1xuICAgICAgICAgICAgdHlwZTogJ1BvbHlnb24nLFxuICAgICAgICAgICAgY29vcmRpbmF0ZXM6IFtcbiAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgIFsxMDguNDM1LCAxMS45MTVdLFxuICAgICAgICAgICAgICAgIFsxMDguNDk1LCAxMS45MTVdLFxuICAgICAgICAgICAgICAgIFsxMDguNDk1LCAxMS45NTVdLFxuICAgICAgICAgICAgICAgIFsxMDguNDM1LCAxMS45NTVdLFxuICAgICAgICAgICAgICAgIFsxMDguNDM1LCAxMS45MTVdLFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICB9LFxuXTtcblxuLyoqXG4gKiBTYW1wbGUgbGVnZW5kIOKAlCBwbGFjZWhvbGRlciBjb2xvcnMgdW50aWwgVGjDtG5nIHTGsCAwOS8yMDI0IHBhbGV0dGUgaXMgY29tcGxldGUgKFExM+KAk1ExNSkuXG4gKiBEbyBub3QgdHJlYXQgYXMgbGVnYWxseSBhdXRob3JpdGF0aXZlLlxuICovXG5leHBvcnQgY29uc3QgR0VPX01BUF9ERU1PX0xFR0VORF9JVEVNUzogR2VvTWFwTGVnZW5kSXRlbVtdID0gW1xuICB7IGNvZGU6ICdPRFQnLCBsYWJlbDogJ8SQ4bqldCDhu58gxJHDtCB0aOG7iycsIGNvbG9yOiAnI0U4N0IzNScgfSxcbiAgeyBjb2RlOiAnT05UJywgbGFiZWw6ICfEkOG6pXQg4bufIHThuqFpIG7DtG5nIHRow7RuJywgY29sb3I6ICcjRjJDMTRFJyB9LFxuICB7IGNvZGU6ICdTS0MnLCBsYWJlbDogJ8SQ4bqldCBjxqEgc+G7nyBz4bqjbiB4deG6pXQga2luaCBkb2FuaCcsIGNvbG9yOiAnI0M0NUMyNicgfSxcbiAgeyBjb2RlOiAnREdUJywgbGFiZWw6ICfEkOG6pXQgZ2lhbyB0aMO0bmcnLCBjb2xvcjogJyM2QjcyODAnIH0sXG4gIHsgY29kZTogJ1RNRCcsIGxhYmVsOiAnxJDhuqV0IHRoxrDGoW5nIG3huqFpIGThu4tjaCB24bulJywgY29sb3I6ICcjREIyNzc3JyB9LFxuICB7IGNvZGU6ICdDTE4nLCBsYWJlbDogJ8SQ4bqldCB0cuG7k25nIGPDonkgbMOidSBuxINtJywgY29sb3I6ICcjMTZBMzRBJyB9LFxuXTtcblxuZXhwb3J0IGNvbnN0IEdFT19NQVBfREVGQVVMVF9IRUxQX1NFQ1RJT05TOiBBcnJheTx7IHRpdGxlOiBzdHJpbmc7IGJvZHk6IHN0cmluZyB9PiA9IFtcbiAge1xuICAgIHRpdGxlOiAnRGkgY2h1eeG7g24gYuG6o24gxJHhu5MnLFxuICAgIGJvZHk6ICdLw6lvIGNodeG7mXQgxJHhu4MgcGFuLiBDdeG7mW4gY2h14buZdCBob+G6t2MgZMO5bmcgbsO6dCArLy0gxJHhu4MgdGh1IHBow7NuZy4gRMO5bmcg4oCcUGjDs25nIHRvIHRoZW8gdsO5bmfigJ0gLyDigJxUaHUgbmjhu48gdGhlbyB2w7luZ+KAnSDEkeG7gyBraG9hbmggdsO5bmcgdHLDqm4gYuG6o24gxJHhu5MuIOKAnFhlbSB0b8OgbiB04buJbmjigJ0gY8SDbiBraHVuZyBuaMOsbiB24buBIHBo4bqhbSB2aSB04buJbmguJyxcbiAgfSxcbiAge1xuICAgIHRpdGxlOiAnVHJhIGPhu6l1IHRo4butYSDEkeG6pXQnLFxuICAgIGJvZHk6ICdN4bufIOKAnFRyYSBj4bupdeKAnSDEkeG7gyB0w6xtIHRoZW8gY2jhu6cgc+G7rSBk4bulbmcsIEdDTiwgdOG7jWEgxJHhu5ksIMSR4buLYSBjaOG7iSBob+G6t2Mgc+G7kSB04budL3Ro4butYS4gS+G6v3QgcXXhuqMgaGnhu4NuIHRo4buLIGRhbmggc8OhY2ggdsOgIGhpZ2hsaWdodCB0csOqbiBi4bqjbiDEkeG7ky4nLFxuICB9LFxuICB7XG4gICAgdGl0bGU6ICdM4bubcCBi4bqjbiDEkeG7kycsXG4gICAgYm9keTogJ03hu58g4oCcTOG7m3AgYuG6o24gxJHhu5PigJ0gxJHhu4MgYuG6rXQvdOG6r3QgcXV5IGhv4bqhY2ggU0TEkCwgaGnhu4duIHRy4bqhbmcgU0TEkCwgdGjhu61hIMSR4bqldC4gQ2jhu41uIHbhu4cgdGluaCDhu58gYuG7mSBjaHV54buDbiBs4bubcCBu4buBbi4gQuG6rXQgbmhp4buBdSBs4bubcCBjw7luZyBsw7pjIMSR4buDIGNo4buTbmcgeOG6v3Agc28gc8OhbmguJyxcbiAgfSxcbiAge1xuICAgIHRpdGxlOiAnxJDGoW4gduG7iyBow6BuaCBjaMOtbmgnLFxuICAgIGJvZHk6ICdN4bufIGLhu5kgbOG7jWMgxJBWSEMgY+G6pXAgeMOjIMSR4buDIHRodSBo4bq5cCBraHVuZyBuaMOsbiB0aGVvIHjDoyDEkcOjIGNo4buNbi4g4oCcWGVtIHRvw6BuIHThu4luaOKAnSDEkcawYSBi4bqjbiDEkeG7kyB24buBIHRvw6BuIGPhuqNuaCB04buJbmguJyxcbiAgfSxcbiAge1xuICAgIHRpdGxlOiAnxJBvIMSR4bqhYyAmIHRp4buHbiDDrWNoJyxcbiAgICBib2R5OiAnxJBvIGtob+G6o25nIGPDoWNoIC8gZGnhu4duIHTDrWNoIGLhurFuZyBjw6FjaCBuaOG6pXAgY8OhYyDEkWnhu4NtIHRyw6puIGLhuqNuIMSR4buTIChuaMOheSDEkcO6cCDEkeG7gyBr4bq/dCB0aMO6YykuIETDuW5nIOKAnMSQ4buZIHRyb25nIHN14buRdOKAnSDEkeG7gyBuaMOsbiB4dXnDqm4gbOG7m3AuIOKAnENo4bulcCDhuqNuaOKAnSB04bqjaSBQTkcga2h1bmcgbmjDrG4gaGnhu4duIHThuqFpLicsXG4gIH0sXG4gIHtcbiAgICB0aXRsZTogJ1bhu4sgdHLDrSBj4bunYSB0w7RpJyxcbiAgICBib2R5OiAnQ2hvIHBow6lwIHRyw6xuaCBkdXnhu4d0IGNoaWEgc+G6uyB24buLIHRyw60gxJHhu4MgY8SDbiBnaeG7r2EgYuG6o24gxJHhu5MgdOG6oWkgduG7iyB0csOtIHRoaeG6v3QgYuG7iyBj4bunYSBi4bqhbi4nLFxuICB9LFxuXTtcblxuLyoqIERlbW8gYWRtaW4gdHJlZSAoeMOjKSBmb3IgU3Rvcnlib29rIOKAlCByZXBsYWNlIHZpYSBBUEkgaW4gcHJvZHVjdGlvbi4gKi9cbmV4cG9ydCBjb25zdCBHRU9fTUFQX0RFTU9fQURNSU5fTk9ERVM6IEdlb1RyZWVOb2RlW10gPSBbXG4gIHtcbiAgICBrZXk6ICdsYW0tZG9uZycsXG4gICAgdGl0bGU6ICdU4buJbmggTMOibSDEkOG7k25nJyxcbiAgICBleHBhbmRlZDogdHJ1ZSxcbiAgICBjaGlsZHJlbjogW1xuICAgICAgeyBrZXk6ICd4YS0xJywgdGl0bGU6ICdYw6MgxJDhuqEgVOG6u2gnLCBpc0xlYWY6IHRydWUgfSxcbiAgICAgIHsga2V5OiAneGEtMicsIHRpdGxlOiAnWMOjIMSQ4bqhIEh1b2FpJywgaXNMZWFmOiB0cnVlIH0sXG4gICAgICB7IGtleTogJ3hhLTMnLCB0aXRsZTogJ1jDoyDEkOG6oSBLaG8nLCBpc0xlYWY6IHRydWUgfSxcbiAgICAgIHsga2V5OiAneGEtNCcsIHRpdGxlOiAnUGjGsOG7nW5nIDEgKMSQw6AgTOG6oXQpJywgaXNMZWFmOiB0cnVlIH0sXG4gICAgICB7IGtleTogJ3hhLTUnLCB0aXRsZTogJ1BoxrDhu51uZyAyICjEkMOgIEzhuqF0KScsIGlzTGVhZjogdHJ1ZSB9LFxuICAgIF0sXG4gIH0sXG5dO1xuXG4vKiogRGVtbyBwYXJjZWwgZGV0YWlsIGZvciBTdG9yeWJvb2sgc2VhcmNoL3BvcHVwIChUQ1FILjEyKS4gKi9cbmV4cG9ydCBjb25zdCBHRU9fTUFQX0RFTU9fUEFSQ0VMX0RFVEFJTDogR2VvTWFwUGFyY2VsRGV0YWlsID0ge1xuICBwYXJjZWxDb2RlOiAnMDEwMDAwMTIzNCcsXG4gIHBhcmNlbE51bWJlcjogJzIwMjMnLFxuICBzaGVldE51bWJlcjogJzE1MycsXG4gIHdhcmQ6ICdQaMaw4budbmcgMScsXG4gIHByb3ZpbmNlOiAnTMOibSDEkOG7k25nJyxcbiAgYXJlYTogJzI1MDAgbcKyJyxcbiAgbGVnYWxBcmVhOiAnMjUwMCBtwrInLFxuICBsYW5kVXNlOiAnTFVDIC0gxJDhuqV0IGNodXnDqm4gdHLhu5NuZyBsw7phIG7GsOG7m2MnLFxuICBhZGRyZXNzOiAnU+G7kSAxMCwgxJHGsOG7nW5nIFRy4bqnbiBQaMO6JyxcbiAgdXNlRm9ybTogJ1Phu60gZOG7pW5nIHJpw6puZycsXG4gIHJlZ2lzdHJhdGlvblN0YXR1czogJ8SQw6MgY+G6pXAgZ2nhuqV5IGNo4bupbmcgbmjhuq1uJyxcbiAgbGFuZFByaWNlOiAnxJBhbmcgY+G6rXAgbmjhuq10JyxcbiAgc2hhcGVJbmZvOiAnSMOsbmggY2jhu68gbmjhuq10JyxcbiAgcGxhbm5pbmdJbmZvOiAnTuG6sW0gdHJvbmcgcXV5IGhv4bqhY2ggxJHhuqV0IOG7nyDEkcO0IHRo4buLIGdpYWkgxJFv4bqhbiAyMDIx4oCTMjAzMCcsXG59O1xuXG4vKipcbiAqIFBsYWNlaG9sZGVyIGVuZHBvaW50cyDigJQgcmVwbGFjZSB2aWEgZW52aXJvbm1lbnQgLyBBUEkuXG4gKiBEbyBub3QgaGFyZC1jb2RlIHByb2R1Y3Rpb24gZG9tYWlucyBoZXJlLlxuICovXG5leHBvcnQgY29uc3QgR0VPX01BUF9FTlZfUExBQ0VIT0xERVJTID0ge1xuICB3bXNVcmw6ICdodHRwczovL3tNQVBfQVBJX0hPU1R9L2dlb3NlcnZlci93bXMnLFxuICB4eXpTYXRlbGxpdGVVcmw6XG4gICAgJ2h0dHBzOi8ve1RJTEVfSE9TVH0vc2F0ZWxsaXRlL3t6fS97eH0ve3l9LnBuZycsXG4gIGdlb2pzb25QYXJjZWxVcmw6ICdodHRwczovL3tNQVBfQVBJX0hPU1R9L2FwaS92MS9wYXJjZWxzLmdlb2pzb24nLFxufSBhcyBjb25zdDtcblxuLyoqXG4gKiBFeGFtcGxlIG11bHRpLWxheWVyIHN0YWNrIGZvciBsYW5kLXVzZSBwbGFubmluZyBkZW1vcyAvIFN0b3J5Ym9vay5cbiAqIFVSTHMgYXJlIHBsYWNlaG9sZGVyczsgV01TL1hZWiB0aWxlcyB3aWxsIGZhaWwgdW50aWwgZW52IGlzIHdpcmVkLlxuICovXG5leHBvcnQgY29uc3QgR0VPX01BUF9ERUZBVUxUX1BMQU5OSU5HX0xBWUVSUzogR2VvTWFwTGF5ZXJDb25maWdbXSA9IFtcbiAge1xuICAgIGlkOiAnb3NtJyxcbiAgICB0aXRsZTogJ0LhuqNuIMSR4buTIMSRxrDhu51uZyBwaOG7kScsXG4gICAgdHlwZTogJ29zbScsXG4gICAgdmlzaWJsZTogdHJ1ZSxcbiAgICBvcGFjaXR5OiAxLFxuICAgIHpJbmRleDogMCxcbiAgICBiYXNlbWFwOiB0cnVlLFxuICAgIGdyb3VwOiAnYmFzZS1tYXAnLFxuICB9LFxuICB7XG4gICAgaWQ6ICdzYXRlbGxpdGUnLFxuICAgIHRpdGxlOiAn4bqibmggduG7hyB0aW5oJyxcbiAgICB0eXBlOiAneHl6JyxcbiAgICB1cmw6IEdFT19NQVBfRU5WX1BMQUNFSE9MREVSUy54eXpTYXRlbGxpdGVVcmwsXG4gICAgdmlzaWJsZTogZmFsc2UsXG4gICAgb3BhY2l0eTogMSxcbiAgICB6SW5kZXg6IDAsXG4gICAgYmFzZW1hcDogdHJ1ZSxcbiAgICBncm91cDogJ2Jhc2UtbWFwJyxcbiAgICBhdHRyaWJ1dGlvbnM6ICdTYXRlbGxpdGUgKHBsYWNlaG9sZGVyKScsXG4gIH0sXG4gIHtcbiAgICBpZDogJ2xhbmQtdXNlLXBsYW5uaW5nJyxcbiAgICB0aXRsZTogJ1F1eSBob+G6oWNoIHPhu60gZOG7pW5nIMSR4bqldCcsXG4gICAgdHlwZTogJ3dtcycsXG4gICAgdXJsOiBHRU9fTUFQX0VOVl9QTEFDRUhPTERFUlMud21zVXJsLFxuICAgIGxheWVyTmFtZTogJ3dvcmtzcGFjZTpsYW5kX3VzZV9wbGFubmluZycsXG4gICAgcGFyYW1zOiB7XG4gICAgICBMQVlFUlM6ICd3b3Jrc3BhY2U6bGFuZF91c2VfcGxhbm5pbmcnLFxuICAgICAgVElMRUQ6IHRydWUsXG4gICAgfSxcbiAgICB2aXNpYmxlOiB0cnVlLFxuICAgIG9wYWNpdHk6IDAuNyxcbiAgICB6SW5kZXg6IDEwLFxuICAgIHByb2plY3Rpb246ICdFUFNHOjM4NTcnLFxuICAgIHF1ZXJ5YWJsZTogdHJ1ZSxcbiAgICBncm91cDogJ3BsYW5uaW5nJyxcbiAgICBzZXJ2ZXJUeXBlOiAnZ2Vvc2VydmVyJyxcbiAgfSxcbiAge1xuICAgIGlkOiAncGFyY2VsLWJvdW5kYXJ5JyxcbiAgICB0aXRsZTogJ1JhbmggZ2nhu5tpIHRo4butYSDEkeG6pXQnLFxuICAgIHR5cGU6ICd3bXMnLFxuICAgIHVybDogR0VPX01BUF9FTlZfUExBQ0VIT0xERVJTLndtc1VybCxcbiAgICBsYXllck5hbWU6ICd3b3Jrc3BhY2U6cGFyY2VsX2JvdW5kYXJ5JyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIExBWUVSUzogJ3dvcmtzcGFjZTpwYXJjZWxfYm91bmRhcnknLFxuICAgICAgVElMRUQ6IHRydWUsXG4gICAgfSxcbiAgICB2aXNpYmxlOiB0cnVlLFxuICAgIG9wYWNpdHk6IDAuOSxcbiAgICB6SW5kZXg6IDIwLFxuICAgIHF1ZXJ5YWJsZTogdHJ1ZSxcbiAgICBncm91cDogJ3BsYW5uaW5nJyxcbiAgICBzZXJ2ZXJUeXBlOiAnZ2Vvc2VydmVyJyxcbiAgfSxcbiAge1xuICAgIGlkOiBHRU9fTUFQX1NFTEVDVElPTl9MQVlFUl9JRCxcbiAgICB0aXRsZTogJ8SQ4buRaSB0xrDhu6NuZyDEkWFuZyBjaOG7jW4nLFxuICAgIHR5cGU6ICd2ZWN0b3InLFxuICAgIHZpc2libGU6IHRydWUsXG4gICAgb3BhY2l0eTogMSxcbiAgICB6SW5kZXg6IDEwMCxcbiAgICBncm91cDogJ3N5c3RlbScsXG4gICAgZmVhdHVyZXM6IFtdLFxuICB9LFxuICB7XG4gICAgaWQ6IEdFT19NQVBfTUVBU1VSRV9MQVlFUl9JRCxcbiAgICB0aXRsZTogJ0vhur90IHF14bqjIMSRbycsXG4gICAgdHlwZTogJ3ZlY3RvcicsXG4gICAgdmlzaWJsZTogdHJ1ZSxcbiAgICBvcGFjaXR5OiAxLFxuICAgIHpJbmRleDogMTEwLFxuICAgIGdyb3VwOiAnc3lzdGVtJyxcbiAgICBmZWF0dXJlczogW10sXG4gIH0sXG5dO1xuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvLW1hcC50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dlby11aS9zcmMvbGliL2ZpZ21hL2dlby1tYXAvZ2VvLW1hcC50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgRmVhdHVyZSBmcm9tICdvbC9GZWF0dXJlJztcbmltcG9ydCB0eXBlIEdlb21ldHJ5IGZyb20gJ29sL2dlb20vR2VvbWV0cnknO1xuXG4vKiogU3VwcG9ydGVkIG1hcCBsYXllciBzb3VyY2Uga2luZHMuICovXG5leHBvcnQgdHlwZSBHZW9NYXBMYXllclR5cGUgPVxuICB8ICdvc20nXG4gIHwgJ3h5eidcbiAgfCAnd21zJ1xuICB8ICd3bXRzJ1xuICB8ICd2ZWN0b3InXG4gIHwgJ2dlb2pzb24nO1xuXG4vKiogTGF5ZXIgbG9hZCBsaWZlY3ljbGUgZm9yIHBhbmVsIC8gY2hyb21lLiAqL1xuZXhwb3J0IHR5cGUgR2VvTWFwTGF5ZXJTdGF0dXMgPSAnaWRsZScgfCAnbG9hZGluZycgfCAncmVhZHknIHwgJ2Vycm9yJztcblxuZXhwb3J0IGludGVyZmFjZSBQcm9qZWN0aW9uQ29uZmlnIHtcbiAgY29kZTogc3RyaW5nO1xuICAvKiogRnVsbCBwcm9qNCBkZWZpbml0aW9uIHN0cmluZy4gTXVzdCBiZSBzdXBwbGllZCBieSBlbnYvQVBJIOKAlCBuZXZlciBpbnZlbnQgVk4tMjAwMCBwYXJhbXMuICovXG4gIGRlZmluaXRpb246IHN0cmluZztcbiAgZXh0ZW50PzogW251bWJlciwgbnVtYmVyLCBudW1iZXIsIG51bWJlcl07XG4gIHVuaXRzPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdlb01hcExheWVyQmFzZSB7XG4gIGlkOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIHZpc2libGU/OiBib29sZWFuO1xuICAvKiogMOKAkzEgKi9cbiAgb3BhY2l0eT86IG51bWJlcjtcbiAgekluZGV4PzogbnVtYmVyO1xuICBtaW5ab29tPzogbnVtYmVyO1xuICBtYXhab29tPzogbnVtYmVyO1xuICAvKiogVHJlYXQgYXMgYmFzZW1hcCAob25seSBvbmUgYWN0aXZlIGF0IGEgdGltZSkuICovXG4gIGJhc2VtYXA/OiBib29sZWFuO1xuICAvKiogR3JvdXAga2V5IGZvciBsYXllciBwYW5lbCBzZWN0aW9ucyAoYGJhc2UtbWFwYCwgYHFoc2RkYCwg4oCmKS4gKi9cbiAgZ3JvdXA/OiBzdHJpbmc7XG4gIC8qKiBEaXNwbGF5IHRpdGxlIGZvciB0aGUgZ3JvdXAgYWNjb3JkaW9uIChmYWxscyBiYWNrIHRvIGdyb3VwIGtleSkuICovXG4gIGdyb3VwTGFiZWw/OiBzdHJpbmc7XG4gIC8qKiBTZWxlY3Rpb24gVVggd2l0aGluIHRoZSBncm91cDogcmFkaW8gKGBzaW5nbGVgKSBvciBjaGVja2JveCAoYG11bHRpYCkuICovXG4gIGdyb3VwU2VsZWN0aW9uPzogJ3NpbmdsZScgfCAnbXVsdGknO1xuICAvKiogRWxpZ2libGUgZm9yIGlkZW50aWZ5IC8gR2V0RmVhdHVyZUluZm8uICovXG4gIHF1ZXJ5YWJsZT86IGJvb2xlYW47XG4gIGxlZ2VuZFVybD86IHN0cmluZztcbiAgcHJvamVjdGlvbj86IHN0cmluZztcbiAgbWV0YWRhdGE/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZW9NYXBPc21MYXllckNvbmZpZyBleHRlbmRzIEdlb01hcExheWVyQmFzZSB7XG4gIHR5cGU6ICdvc20nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdlb01hcFh5ekxheWVyQ29uZmlnIGV4dGVuZHMgR2VvTWFwTGF5ZXJCYXNlIHtcbiAgdHlwZTogJ3h5eic7XG4gIHVybDogc3RyaW5nO1xuICBhdHRyaWJ1dGlvbnM/OiBzdHJpbmcgfCBzdHJpbmdbXTtcbiAgbWF4Wm9vbT86IG51bWJlcjtcbiAgY3Jvc3NPcmlnaW4/OiBzdHJpbmcgfCBudWxsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdlb01hcFdtc0xheWVyQ29uZmlnIGV4dGVuZHMgR2VvTWFwTGF5ZXJCYXNlIHtcbiAgdHlwZTogJ3dtcyc7XG4gIHVybDogc3RyaW5nO1xuICBwYXJhbXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4+O1xuICBzZXJ2ZXJUeXBlPzogJ2dlb3NlcnZlcicgfCAnbWFwc2VydmVyJyB8ICdxZ2lzJyB8ICdjYXJtZW50YXNlcnZlcic7XG4gIGNyb3NzT3JpZ2luPzogc3RyaW5nIHwgbnVsbDtcbiAgLyoqIE9wdGlvbmFsIFdNUyBsYXllciBuYW1lIHdoZW4gbm90IG9ubHkgaW4gYHBhcmFtcy5MQVlFUlNgLiAqL1xuICBsYXllck5hbWU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2VvTWFwV210c0xheWVyQ29uZmlnIGV4dGVuZHMgR2VvTWFwTGF5ZXJCYXNlIHtcbiAgdHlwZTogJ3dtdHMnO1xuICB1cmw6IHN0cmluZztcbiAgbGF5ZXI6IHN0cmluZztcbiAgbWF0cml4U2V0OiBzdHJpbmc7XG4gIGZvcm1hdD86IHN0cmluZztcbiAgc3R5bGU/OiBzdHJpbmc7XG4gIHByb2plY3Rpb24/OiBzdHJpbmc7XG4gIGNyb3NzT3JpZ2luPzogc3RyaW5nIHwgbnVsbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZW9NYXBHZW9Kc29uTGF5ZXJDb25maWcgZXh0ZW5kcyBHZW9NYXBMYXllckJhc2Uge1xuICB0eXBlOiAnZ2VvanNvbic7XG4gIC8qKiBJbmxpbmUgR2VvSlNPTiBvYmplY3Qgb3IgVVJMIHN0cmluZy4gKi9cbiAgZGF0YTogb2JqZWN0IHwgc3RyaW5nO1xuICBkYXRhUHJvamVjdGlvbj86IHN0cmluZztcbiAgZmVhdHVyZVByb2plY3Rpb24/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2VvTWFwVmVjdG9yTGF5ZXJDb25maWcgZXh0ZW5kcyBHZW9NYXBMYXllckJhc2Uge1xuICB0eXBlOiAndmVjdG9yJztcbiAgLyoqIFByZS1idWlsdCBPTCBmZWF0dXJlcyAoYXBwLW93bmVkKS4gKi9cbiAgZmVhdHVyZXM/OiBGZWF0dXJlPEdlb21ldHJ5PltdO1xufVxuXG5leHBvcnQgdHlwZSBHZW9NYXBMYXllckNvbmZpZyA9XG4gIHwgR2VvTWFwT3NtTGF5ZXJDb25maWdcbiAgfCBHZW9NYXBYeXpMYXllckNvbmZpZ1xuICB8IEdlb01hcFdtc0xheWVyQ29uZmlnXG4gIHwgR2VvTWFwV210c0xheWVyQ29uZmlnXG4gIHwgR2VvTWFwR2VvSnNvbkxheWVyQ29uZmlnXG4gIHwgR2VvTWFwVmVjdG9yTGF5ZXJDb25maWc7XG5cbmV4cG9ydCB0eXBlIEdlb01hcEJhc2VtYXBJbnB1dCA9XG4gIHwgJ29zbSdcbiAgfCB7XG4gICAgICB0eXBlOiAneHl6JztcbiAgICAgIHVybDogc3RyaW5nO1xuICAgICAgYXR0cmlidXRpb25zPzogc3RyaW5nIHwgc3RyaW5nW107XG4gICAgICBtYXhab29tPzogbnVtYmVyO1xuICAgICAgdGl0bGU/OiBzdHJpbmc7XG4gICAgfTtcblxuLyoqIEFsaWFzIHVzZWQgYnkgYmFzZW1hcCBzd2l0Y2hlciBvdXRwdXQuICovXG5leHBvcnQgdHlwZSBHZW9NYXBCYXNlbWFwID0gR2VvTWFwQmFzZW1hcElucHV0O1xuXG5leHBvcnQgaW50ZXJmYWNlIEdlb01hcEJhc2VtYXBPcHRpb24ge1xuICBpZDogc3RyaW5nO1xuICBsYWJlbDogc3RyaW5nO1xuICBiYXNlbWFwOiBHZW9NYXBCYXNlbWFwO1xuICBwcmV2aWV3VXJsPzogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBHZW9NYXBMb2NhdGVFcnJvclJlYXNvbiA9XG4gIHwgJ3Vuc3VwcG9ydGVkJ1xuICB8ICdkZW5pZWQnXG4gIHwgJ3VuYXZhaWxhYmxlJ1xuICB8ICd0aW1lb3V0J1xuICB8ICd1bmtub3duJztcblxuZXhwb3J0IGludGVyZmFjZSBHZW9NYXBDbGlja0V2ZW50IHtcbiAgLyoqIENvb3JkaW5hdGUgaW4gdmlldyBwcm9qZWN0aW9uLiAqL1xuICBjb29yZGluYXRlOiBudW1iZXJbXTtcbiAgLyoqIExvbi9sYXQgKEVQU0c6NDMyNikgYXMgW2xvbmdpdHVkZSwgbGF0aXR1ZGVdLiAqL1xuICBsb25MYXQ6IFtudW1iZXIsIG51bWJlcl07XG4gIHBpeGVsOiBbbnVtYmVyLCBudW1iZXJdO1xuICBvcmlnaW5hbEV2ZW50OiBVSUV2ZW50O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdlb01hcFZpZXdDaGFuZ2VFdmVudCB7XG4gIGNlbnRlcjogbnVtYmVyW107XG4gIHpvb206IG51bWJlcjtcbiAgcmVzb2x1dGlvbjogbnVtYmVyO1xuICByb3RhdGlvbjogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdlb01hcExheWVyVmlzaWJpbGl0eUNoYW5nZSB7XG4gIGxheWVySWQ6IHN0cmluZztcbiAgdmlzaWJsZTogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZW9NYXBMYXllck9wYWNpdHlDaGFuZ2Uge1xuICBsYXllcklkOiBzdHJpbmc7XG4gIG9wYWNpdHk6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZW9NYXBMYXllclJ1bnRpbWVTdGF0ZSB7XG4gIGlkOiBzdHJpbmc7XG4gIHN0YXR1czogR2VvTWFwTGF5ZXJTdGF0dXM7XG4gIGVycm9yTWVzc2FnZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZW9NYXBDb29yZGluYXRlIHtcbiAgLyoqIFt4LCB5XSBvciBbbG9uZ2l0dWRlLCBsYXRpdHVkZV0gaW4gYHByb2plY3Rpb25gLiAqL1xuICBjb29yZGluYXRlczogW251bWJlciwgbnVtYmVyXTtcbiAgcHJvamVjdGlvbjogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1hcEluaXRPcHRpb25zIHtcbiAgdGFyZ2V0OiBIVE1MRWxlbWVudDtcbiAgY2VudGVyOiBudW1iZXJbXTtcbiAgem9vbTogbnVtYmVyO1xuICBtaW5ab29tOiBudW1iZXI7XG4gIG1heFpvb206IG51bWJlcjtcbiAgdmlld1Byb2plY3Rpb246IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZW9NYXBMZWdlbmRJdGVtIHtcbiAgbGFiZWw6IHN0cmluZztcbiAgLyoqIE9wdGlvbmFsIGxhbmQtdXNlIGNvZGUgKGUuZy4gT05ULCBTS0MpLiAqL1xuICBjb2RlPzogc3RyaW5nO1xuICAvKiogQ1NTIGNvbG9yIGZvciBzd2F0Y2gg4oCUIHByZWZlciBkZXNpZ24gdG9rZW5zIHdoZW4gcG9zc2libGUuICovXG4gIGNvbG9yPzogc3RyaW5nO1xuICBzd2F0Y2hVcmw/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIEdlb01hcE1lYXN1cmVNb2RlID0gJ25vbmUnIHwgJ2Rpc3RhbmNlJyB8ICdhcmVhJztcblxuZXhwb3J0IGludGVyZmFjZSBHZW9NYXBNZWFzdXJlUmVzdWx0IHtcbiAgbW9kZTogRXhjbHVkZTxHZW9NYXBNZWFzdXJlTW9kZSwgJ25vbmUnPjtcbiAgLyoqIFJhdyB2YWx1ZSBpbiBtZXRlcnMgKGRpc3RhbmNlKSBvciBtwrIgKGFyZWEpLiAqL1xuICB2YWx1ZTogbnVtYmVyO1xuICAvKiogSHVtYW4tcmVhZGFibGUgbGFiZWwgKG0va20gb3IgbcKyL2hhKS4gKi9cbiAgbGFiZWw6IHN0cmluZztcbiAgZ2VvbWV0cnk6IEdlb21ldHJ5IHwgbnVsbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZW9NYXBUb29sYmFyQWN0aW9uIHtcbiAgaWQ6IHN0cmluZztcbiAgbGFiZWw/OiBzdHJpbmc7XG4gIC8qKiBuZy16b3JybyAvIGdlby1pY29uIHR5cGUgKGZhbGxiYWNrIHdoZW4gYGljb25TcmNgIGlzIG9taXR0ZWQpLiAqL1xuICBpY29uPzogc3RyaW5nO1xuICAvKiogRXhwb3J0ZWQgRmlnbWEgLyBzdGF0aWMgYXNzZXQgVVJMIChwcmVmZXIgb3ZlciBgaWNvbmApLiAqL1xuICBpY29uU3JjPzogc3RyaW5nO1xuICBhY3RpdmU/OiBib29sZWFuO1xuICBjaGVja2VkPzogYm9vbGVhbjtcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICBpY29uT25seT86IGJvb2xlYW47XG4gIHRvb2x0aXA/OiBzdHJpbmc7XG4gIC8qKiBGaWxsZWQgcHJpbWFyeSBjb250cm9sIChlLmcuIEhvbWUpLiAqL1xuICB2YXJpYW50PzogJ2RlZmF1bHQnIHwgJ3ByaW1hcnknO1xufVxuXG4vKiogU2VhcmNoIG1vZGVzIGZvciBwb3J0YWwgdHJhIGPhu6l1IChUQ1FILjfigJMxMSkuICovXG5leHBvcnQgdHlwZSBHZW9NYXBTZWFyY2hNb2RlID1cbiAgfCAnb3duZXInXG4gIHwgJ2NlcnRpZmljYXRlJ1xuICB8ICdjb29yZGluYXRlcydcbiAgfCAnYWRkcmVzcydcbiAgfCAncGFyY2VsJztcblxuZXhwb3J0IGludGVyZmFjZSBHZW9NYXBTZWFyY2hRdWVyeSB7XG4gIG1vZGU6IEdlb01hcFNlYXJjaE1vZGU7XG4gIC8qKiBGaWVsZCB2YWx1ZXMga2V5ZWQgYnkgbW9kZS1zcGVjaWZpYyBpbnB1dCBpZHMuICovXG4gIHZhbHVlczogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZW9NYXBTZWFyY2hSZXN1bHRJdGVtIHtcbiAgaWQ6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgc3VidGl0bGU/OiBzdHJpbmc7XG4gIC8qKiBMb24vbGF0IGNlbnRlciBmb3IgcGFuIChFUFNHOjQzMjYpLiAqL1xuICBjZW50ZXI0MzI2PzogW251bWJlciwgbnVtYmVyXTtcbiAgLyoqIExvbi9sYXQgZXh0ZW50IGZvciBmaXQgKEVQU0c6NDMyNikuICovXG4gIGV4dGVudDQzMjY/OiBbbnVtYmVyLCBudW1iZXIsIG51bWJlciwgbnVtYmVyXTtcbiAgLyoqIE9wdGlvbmFsIEdlb0pTT04gRmVhdHVyZSAvIEZlYXR1cmVDb2xsZWN0aW9uIGZvciBtYXAgaGlnaGxpZ2h0LiAqL1xuICBnZW9qc29uPzogb2JqZWN0O1xuICAvKiogRGV0YWlsIHBheWxvYWQgZm9yIGBnZW8tbWFwLXBhcmNlbC1wb3B1cGAuICovXG4gIHBhcmNlbD86IEdlb01hcFBhcmNlbERldGFpbDtcbn1cblxuLyoqIEF1ZGllbmNlIGNvbnRyb2xzIHdoaWNoIHBhcmNlbCBmaWVsZHMgYXJlIHNob3duIChUQ1FILjEyKS4gKi9cbmV4cG9ydCB0eXBlIEdlb01hcFBhcmNlbEF1ZGllbmNlID0gJ2NpdGl6ZW4nIHwgJ3NwZWNpYWxpc3QnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEdlb01hcFBhcmNlbERldGFpbCB7XG4gIC8qKiBNw6MgdGjhu61hIMSR4bqldCAoaGnhu4NuIHRo4buLIOG7nyBUaMO0bmcgdGluIGNodW5nKS4gKi9cbiAgcGFyY2VsQ29kZT86IHN0cmluZztcbiAgcGFyY2VsTnVtYmVyPzogc3RyaW5nO1xuICBzaGVldE51bWJlcj86IHN0cmluZztcbiAgd2FyZD86IHN0cmluZztcbiAgcHJvdmluY2U/OiBzdHJpbmc7XG4gIGFyZWE/OiBzdHJpbmc7XG4gIGxlZ2FsQXJlYT86IHN0cmluZztcbiAgbGFuZFVzZT86IHN0cmluZztcbiAgYWRkcmVzcz86IHN0cmluZztcbiAgdXNlRm9ybT86IHN0cmluZztcbiAgcmVnaXN0cmF0aW9uU3RhdHVzPzogc3RyaW5nO1xuICAvKiogQ2h1ecOqbiB2acOqbiAvIG3hu58gcuG7mW5nLiAqL1xuICBzaGFwZUluZm8/OiBzdHJpbmc7XG4gIHBsYW5uaW5nSW5mbz86IHN0cmluZztcbiAgLyoqIEdpw6EgxJHhuqV0IOKAlCBt4bq3YyDEkeG7i25oIFVJIGhp4buHbiDCq8SQYW5nIGPhuq1wIG5o4bqtdMK7IG7hur91IHRy4buRbmcuICovXG4gIGxhbmRQcmljZT86IHN0cmluZztcbiAgLyoqIFVSTCDhuqNuaCBzxqEgxJHhu5MgdGjhu61hICh0deG7syBjaOG7jW4pLiAqL1xuICBkaWFncmFtVXJsPzogc3RyaW5nO1xuICAvKiogRXh0cmEgcm93cyB3aGVuIGhvc3QgbmVlZHMgbW9yZSBmaWVsZHMuICovXG4gIGV4dHJhRmllbGRzPzogQXJyYXk8eyBsYWJlbDogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH0+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdlb01hcEhpZ2hsaWdodE9wdGlvbnMge1xuICBkYXRhUHJvamVjdGlvbj86IHN0cmluZztcbiAgLyoqIEZpdCB2aWV3IHRvIGhpZ2hsaWdodCBleHRlbnQgKGRlZmF1bHQgdHJ1ZSB3aGVuIGZlYXR1cmVzIGV4aXN0KS4gKi9cbiAgZml0PzogYm9vbGVhbjtcbiAgZml0T3B0aW9ucz86IHsgcGFkZGluZz86IG51bWJlcltdOyBtYXhab29tPzogbnVtYmVyOyBkdXJhdGlvbj86IG51bWJlciB9O1xufVxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvLW1hcC50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dlby11aS9zcmMvbGliL2ZpZ21hL2dlby1tYXAvZ2VvLW1hcC50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgRmVhdHVyZSBmcm9tICdvbC9GZWF0dXJlJztcbmltcG9ydCB0eXBlIEdlb21ldHJ5IGZyb20gJ29sL2dlb20vR2VvbWV0cnknO1xuXG4vKiogU3VwcG9ydGVkIG1hcCBsYXllciBzb3VyY2Uga2luZHMuICovXG5leHBvcnQgdHlwZSBHZW9NYXBMYXllclR5cGUgPVxuICB8ICdvc20nXG4gIHwgJ3h5eidcbiAgfCAnd21zJ1xuICB8ICd3bXRzJ1xuICB8ICd2ZWN0b3InXG4gIHwgJ2dlb2pzb24nXG4gIHwgJ21hcGJveC1zdHlsZSc7XG5cbi8qKiBMYXllciBsb2FkIGxpZmVjeWNsZSBmb3IgcGFuZWwgLyBjaHJvbWUuICovXG5leHBvcnQgdHlwZSBHZW9NYXBMYXllclN0YXR1cyA9ICdpZGxlJyB8ICdsb2FkaW5nJyB8ICdyZWFkeScgfCAnZXJyb3InO1xuXG5leHBvcnQgaW50ZXJmYWNlIFByb2plY3Rpb25Db25maWcge1xuICBjb2RlOiBzdHJpbmc7XG4gIC8qKiBGdWxsIHByb2o0IGRlZmluaXRpb24gc3RyaW5nLiBNdXN0IGJlIHN1cHBsaWVkIGJ5IGVudi9BUEkg4oCUIG5ldmVyIGludmVudCBWTi0yMDAwIHBhcmFtcy4gKi9cbiAgZGVmaW5pdGlvbjogc3RyaW5nO1xuICBleHRlbnQ/OiBbbnVtYmVyLCBudW1iZXIsIG51bWJlciwgbnVtYmVyXTtcbiAgdW5pdHM/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2VvTWFwTGF5ZXJCYXNlIHtcbiAgaWQ6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgdmlzaWJsZT86IGJvb2xlYW47XG4gIC8qKiAw4oCTMSAqL1xuICBvcGFjaXR5PzogbnVtYmVyO1xuICB6SW5kZXg/OiBudW1iZXI7XG4gIG1pblpvb20/OiBudW1iZXI7XG4gIG1heFpvb20/OiBudW1iZXI7XG4gIC8qKiBUcmVhdCBhcyBiYXNlbWFwIChvbmx5IG9uZSBhY3RpdmUgYXQgYSB0aW1lKS4gKi9cbiAgYmFzZW1hcD86IGJvb2xlYW47XG4gIC8qKiBHcm91cCBrZXkgZm9yIGxheWVyIHBhbmVsIHNlY3Rpb25zIChgYmFzZS1tYXBgLCBgcWhzZGRgLCDigKYpLiAqL1xuICBncm91cD86IHN0cmluZztcbiAgLyoqIERpc3BsYXkgdGl0bGUgZm9yIHRoZSBncm91cCBhY2NvcmRpb24gKGZhbGxzIGJhY2sgdG8gZ3JvdXAga2V5KS4gKi9cbiAgZ3JvdXBMYWJlbD86IHN0cmluZztcbiAgLyoqIFNlbGVjdGlvbiBVWCB3aXRoaW4gdGhlIGdyb3VwOiByYWRpbyAoYHNpbmdsZWApIG9yIGNoZWNrYm94IChgbXVsdGlgKS4gKi9cbiAgZ3JvdXBTZWxlY3Rpb24/OiAnc2luZ2xlJyB8ICdtdWx0aSc7XG4gIC8qKiBFbGlnaWJsZSBmb3IgaWRlbnRpZnkgLyBHZXRGZWF0dXJlSW5mby4gKi9cbiAgcXVlcnlhYmxlPzogYm9vbGVhbjtcbiAgbGVnZW5kVXJsPzogc3RyaW5nO1xuICBwcm9qZWN0aW9uPzogc3RyaW5nO1xuICBtZXRhZGF0YT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdlb01hcE9zbUxheWVyQ29uZmlnIGV4dGVuZHMgR2VvTWFwTGF5ZXJCYXNlIHtcbiAgdHlwZTogJ29zbSc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2VvTWFwWHl6TGF5ZXJDb25maWcgZXh0ZW5kcyBHZW9NYXBMYXllckJhc2Uge1xuICB0eXBlOiAneHl6JztcbiAgdXJsOiBzdHJpbmc7XG4gIGF0dHJpYnV0aW9ucz86IHN0cmluZyB8IHN0cmluZ1tdO1xuICBtYXhab29tPzogbnVtYmVyO1xuICBjcm9zc09yaWdpbj86IHN0cmluZyB8IG51bGw7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2VvTWFwV21zTGF5ZXJDb25maWcgZXh0ZW5kcyBHZW9NYXBMYXllckJhc2Uge1xuICB0eXBlOiAnd21zJztcbiAgdXJsOiBzdHJpbmc7XG4gIHBhcmFtczogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbj47XG4gIHNlcnZlclR5cGU/OiAnZ2Vvc2VydmVyJyB8ICdtYXBzZXJ2ZXInIHwgJ3FnaXMnIHwgJ2Nhcm1lbnRhc2VydmVyJztcbiAgY3Jvc3NPcmlnaW4/OiBzdHJpbmcgfCBudWxsO1xuICAvKiogT3B0aW9uYWwgV01TIGxheWVyIG5hbWUgd2hlbiBub3Qgb25seSBpbiBgcGFyYW1zLkxBWUVSU2AuICovXG4gIGxheWVyTmFtZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZW9NYXBXbXRzTGF5ZXJDb25maWcgZXh0ZW5kcyBHZW9NYXBMYXllckJhc2Uge1xuICB0eXBlOiAnd210cyc7XG4gIHVybDogc3RyaW5nO1xuICBsYXllcjogc3RyaW5nO1xuICBtYXRyaXhTZXQ6IHN0cmluZztcbiAgZm9ybWF0Pzogc3RyaW5nO1xuICBzdHlsZT86IHN0cmluZztcbiAgcHJvamVjdGlvbj86IHN0cmluZztcbiAgY3Jvc3NPcmlnaW4/OiBzdHJpbmcgfCBudWxsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdlb01hcEdlb0pzb25MYXllckNvbmZpZyBleHRlbmRzIEdlb01hcExheWVyQmFzZSB7XG4gIHR5cGU6ICdnZW9qc29uJztcbiAgLyoqIElubGluZSBHZW9KU09OIG9iamVjdCBvciBVUkwgc3RyaW5nLiAqL1xuICBkYXRhOiBvYmplY3QgfCBzdHJpbmc7XG4gIGRhdGFQcm9qZWN0aW9uPzogc3RyaW5nO1xuICBmZWF0dXJlUHJvamVjdGlvbj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZW9NYXBWZWN0b3JMYXllckNvbmZpZyBleHRlbmRzIEdlb01hcExheWVyQmFzZSB7XG4gIHR5cGU6ICd2ZWN0b3InO1xuICAvKiogUHJlLWJ1aWx0IE9MIGZlYXR1cmVzIChhcHAtb3duZWQpLiAqL1xuICBmZWF0dXJlcz86IEZlYXR1cmU8R2VvbWV0cnk+W107XG59XG5cbi8qKlxuICogVmVjdG9yIGJhc2VtYXAgZHJpdmVuIGJ5IGEgTWFwYm94L01hcExpYnJlIHN0eWxlIGRvY3VtZW50LCBhcHBsaWVkIHZpYSBgb2wtbWFwYm94LXN0eWxlYC5cbiAqIE9uZSBvZiBgc3R5bGVKc29uYC9gc3R5bGVVcmxgIGlzIHJlcXVpcmVkLiBgdHJhbnNmb3JtUmVxdWVzdGAgaXMgZm9yd2FyZGVkIHZlcmJhdGltIHRvXG4gKiBgb2wtbWFwYm94LXN0eWxlYCDigJQgdGhlIGxpYnJhcnkgbmV2ZXIgaW5zcGVjdHMgb3Igc3RvcmVzIGl0LCBzbyBob3N0LWFwcCBhdXRoIGhlYWRlcnNcbiAqIChlLmcuIGFuIEFQSSBrZXkpIHN0YXkgb3duZWQgYnkgdGhlIGFwcCwgbm90IHRoZSBsaWJyYXJ5LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdlb01hcE1hcGJveFN0eWxlTGF5ZXJDb25maWcgZXh0ZW5kcyBHZW9NYXBMYXllckJhc2Uge1xuICB0eXBlOiAnbWFwYm94LXN0eWxlJztcbiAgc3R5bGVKc29uPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIHN0eWxlVXJsPzogc3RyaW5nO1xuICB0cmFuc2Zvcm1SZXF1ZXN0PzogKHVybDogc3RyaW5nLCByZXNvdXJjZVR5cGU6IHN0cmluZykgPT4gUmVxdWVzdCB8IHZvaWQ7XG59XG5cbmV4cG9ydCB0eXBlIEdlb01hcExheWVyQ29uZmlnID1cbiAgfCBHZW9NYXBPc21MYXllckNvbmZpZ1xuICB8IEdlb01hcFh5ekxheWVyQ29uZmlnXG4gIHwgR2VvTWFwV21zTGF5ZXJDb25maWdcbiAgfCBHZW9NYXBXbXRzTGF5ZXJDb25maWdcbiAgfCBHZW9NYXBHZW9Kc29uTGF5ZXJDb25maWdcbiAgfCBHZW9NYXBWZWN0b3JMYXllckNvbmZpZ1xuICB8IEdlb01hcE1hcGJveFN0eWxlTGF5ZXJDb25maWc7XG5cbmV4cG9ydCB0eXBlIEdlb01hcEJhc2VtYXBJbnB1dCA9XG4gIHwgJ29zbSdcbiAgfCB7XG4gICAgICB0eXBlOiAneHl6JztcbiAgICAgIHVybDogc3RyaW5nO1xuICAgICAgYXR0cmlidXRpb25zPzogc3RyaW5nIHwgc3RyaW5nW107XG4gICAgICBtYXhab29tPzogbnVtYmVyO1xuICAgICAgdGl0bGU/OiBzdHJpbmc7XG4gICAgfVxuICB8IHtcbiAgICAgIHR5cGU6ICdtYXBib3gtc3R5bGUnO1xuICAgICAgc3R5bGVKc29uPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gICAgICBzdHlsZVVybD86IHN0cmluZztcbiAgICAgIHRpdGxlPzogc3RyaW5nO1xuICAgICAgdHJhbnNmb3JtUmVxdWVzdD86ICh1cmw6IHN0cmluZywgcmVzb3VyY2VUeXBlOiBzdHJpbmcpID0+IFJlcXVlc3QgfCB2b2lkO1xuICAgIH07XG5cbi8qKiBBbGlhcyB1c2VkIGJ5IGJhc2VtYXAgc3dpdGNoZXIgb3V0cHV0LiAqL1xuZXhwb3J0IHR5cGUgR2VvTWFwQmFzZW1hcCA9IEdlb01hcEJhc2VtYXBJbnB1dDtcblxuZXhwb3J0IGludGVyZmFjZSBHZW9NYXBCYXNlbWFwT3B0aW9uIHtcbiAgaWQ6IHN0cmluZztcbiAgbGFiZWw6IHN0cmluZztcbiAgYmFzZW1hcDogR2VvTWFwQmFzZW1hcDtcbiAgcHJldmlld1VybD86IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgR2VvTWFwTG9jYXRlRXJyb3JSZWFzb24gPVxuICB8ICd1bnN1cHBvcnRlZCdcbiAgfCAnZGVuaWVkJ1xuICB8ICd1bmF2YWlsYWJsZSdcbiAgfCAndGltZW91dCdcbiAgfCAndW5rbm93bic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2VvTWFwQ2xpY2tFdmVudCB7XG4gIC8qKiBDb29yZGluYXRlIGluIHZpZXcgcHJvamVjdGlvbi4gKi9cbiAgY29vcmRpbmF0ZTogbnVtYmVyW107XG4gIC8qKiBMb24vbGF0IChFUFNHOjQzMjYpIGFzIFtsb25naXR1ZGUsIGxhdGl0dWRlXS4gKi9cbiAgbG9uTGF0OiBbbnVtYmVyLCBudW1iZXJdO1xuICBwaXhlbDogW251bWJlciwgbnVtYmVyXTtcbiAgb3JpZ2luYWxFdmVudDogVUlFdmVudDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZW9NYXBWaWV3Q2hhbmdlRXZlbnQge1xuICBjZW50ZXI6IG51bWJlcltdO1xuICB6b29tOiBudW1iZXI7XG4gIHJlc29sdXRpb246IG51bWJlcjtcbiAgcm90YXRpb246IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZW9NYXBMYXllclZpc2liaWxpdHlDaGFuZ2Uge1xuICBsYXllcklkOiBzdHJpbmc7XG4gIHZpc2libGU6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2VvTWFwTGF5ZXJPcGFjaXR5Q2hhbmdlIHtcbiAgbGF5ZXJJZDogc3RyaW5nO1xuICBvcGFjaXR5OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2VvTWFwTGF5ZXJSdW50aW1lU3RhdGUge1xuICBpZDogc3RyaW5nO1xuICBzdGF0dXM6IEdlb01hcExheWVyU3RhdHVzO1xuICBlcnJvck1lc3NhZ2U/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2VvTWFwQ29vcmRpbmF0ZSB7XG4gIC8qKiBbeCwgeV0gb3IgW2xvbmdpdHVkZSwgbGF0aXR1ZGVdIGluIGBwcm9qZWN0aW9uYC4gKi9cbiAgY29vcmRpbmF0ZXM6IFtudW1iZXIsIG51bWJlcl07XG4gIHByb2plY3Rpb246IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNYXBJbml0T3B0aW9ucyB7XG4gIHRhcmdldDogSFRNTEVsZW1lbnQ7XG4gIGNlbnRlcjogbnVtYmVyW107XG4gIHpvb206IG51bWJlcjtcbiAgbWluWm9vbTogbnVtYmVyO1xuICBtYXhab29tOiBudW1iZXI7XG4gIHZpZXdQcm9qZWN0aW9uOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2VvTWFwTGVnZW5kSXRlbSB7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIC8qKiBPcHRpb25hbCBsYW5kLXVzZSBjb2RlIChlLmcuIE9OVCwgU0tDKS4gKi9cbiAgY29kZT86IHN0cmluZztcbiAgLyoqIENTUyBjb2xvciBmb3Igc3dhdGNoIOKAlCBwcmVmZXIgZGVzaWduIHRva2VucyB3aGVuIHBvc3NpYmxlLiAqL1xuICBjb2xvcj86IHN0cmluZztcbiAgc3dhdGNoVXJsPzogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBHZW9NYXBNZWFzdXJlTW9kZSA9ICdub25lJyB8ICdkaXN0YW5jZScgfCAnYXJlYSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2VvTWFwTWVhc3VyZVJlc3VsdCB7XG4gIG1vZGU6IEV4Y2x1ZGU8R2VvTWFwTWVhc3VyZU1vZGUsICdub25lJz47XG4gIC8qKiBSYXcgdmFsdWUgaW4gbWV0ZXJzIChkaXN0YW5jZSkgb3IgbcKyIChhcmVhKS4gKi9cbiAgdmFsdWU6IG51bWJlcjtcbiAgLyoqIEh1bWFuLXJlYWRhYmxlIGxhYmVsIChtL2ttIG9yIG3Csi9oYSkuICovXG4gIGxhYmVsOiBzdHJpbmc7XG4gIGdlb21ldHJ5OiBHZW9tZXRyeSB8IG51bGw7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2VvTWFwVG9vbGJhckFjdGlvbiB7XG4gIGlkOiBzdHJpbmc7XG4gIGxhYmVsPzogc3RyaW5nO1xuICAvKiogbmctem9ycm8gLyBnZW8taWNvbiB0eXBlIChmYWxsYmFjayB3aGVuIGBpY29uU3JjYCBpcyBvbWl0dGVkKS4gKi9cbiAgaWNvbj86IHN0cmluZztcbiAgLyoqIEV4cG9ydGVkIEZpZ21hIC8gc3RhdGljIGFzc2V0IFVSTCAocHJlZmVyIG92ZXIgYGljb25gKS4gKi9cbiAgaWNvblNyYz86IHN0cmluZztcbiAgYWN0aXZlPzogYm9vbGVhbjtcbiAgY2hlY2tlZD86IGJvb2xlYW47XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgaWNvbk9ubHk/OiBib29sZWFuO1xuICB0b29sdGlwPzogc3RyaW5nO1xuICAvKiogRmlsbGVkIHByaW1hcnkgY29udHJvbCAoZS5nLiBIb21lKS4gKi9cbiAgdmFyaWFudD86ICdkZWZhdWx0JyB8ICdwcmltYXJ5Jztcbn1cblxuLyoqIFNlYXJjaCBtb2RlcyBmb3IgcG9ydGFsIHRyYSBj4bupdSAoVENRSC434oCTMTEpLiAqL1xuZXhwb3J0IHR5cGUgR2VvTWFwU2VhcmNoTW9kZSA9XG4gIHwgJ293bmVyJ1xuICB8ICdjZXJ0aWZpY2F0ZSdcbiAgfCAnY29vcmRpbmF0ZXMnXG4gIHwgJ2FkZHJlc3MnXG4gIHwgJ3BhcmNlbCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2VvTWFwU2VhcmNoUXVlcnkge1xuICBtb2RlOiBHZW9NYXBTZWFyY2hNb2RlO1xuICAvKiogRmllbGQgdmFsdWVzIGtleWVkIGJ5IG1vZGUtc3BlY2lmaWMgaW5wdXQgaWRzLiAqL1xuICB2YWx1ZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2VvTWFwU2VhcmNoUmVzdWx0SXRlbSB7XG4gIGlkOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIHN1YnRpdGxlPzogc3RyaW5nO1xuICAvKiogTG9uL2xhdCBjZW50ZXIgZm9yIHBhbiAoRVBTRzo0MzI2KS4gKi9cbiAgY2VudGVyNDMyNj86IFtudW1iZXIsIG51bWJlcl07XG4gIC8qKiBMb24vbGF0IGV4dGVudCBmb3IgZml0IChFUFNHOjQzMjYpLiAqL1xuICBleHRlbnQ0MzI2PzogW251bWJlciwgbnVtYmVyLCBudW1iZXIsIG51bWJlcl07XG4gIC8qKiBPcHRpb25hbCBHZW9KU09OIEZlYXR1cmUgLyBGZWF0dXJlQ29sbGVjdGlvbiBmb3IgbWFwIGhpZ2hsaWdodC4gKi9cbiAgZ2VvanNvbj86IG9iamVjdDtcbiAgLyoqIERldGFpbCBwYXlsb2FkIGZvciBgZ2VvLW1hcC1wYXJjZWwtcG9wdXBgLiAqL1xuICBwYXJjZWw/OiBHZW9NYXBQYXJjZWxEZXRhaWw7XG59XG5cbi8qKiBBdWRpZW5jZSBjb250cm9scyB3aGljaCBwYXJjZWwgZmllbGRzIGFyZSBzaG93biAoVENRSC4xMikuICovXG5leHBvcnQgdHlwZSBHZW9NYXBQYXJjZWxBdWRpZW5jZSA9ICdjaXRpemVuJyB8ICdzcGVjaWFsaXN0JztcblxuZXhwb3J0IGludGVyZmFjZSBHZW9NYXBQYXJjZWxEZXRhaWwge1xuICAvKiogTcOjIHRo4butYSDEkeG6pXQgKGhp4buDbiB0aOG7iyDhu58gVGjDtG5nIHRpbiBjaHVuZykuICovXG4gIHBhcmNlbENvZGU/OiBzdHJpbmc7XG4gIHBhcmNlbE51bWJlcj86IHN0cmluZztcbiAgc2hlZXROdW1iZXI/OiBzdHJpbmc7XG4gIHdhcmQ/OiBzdHJpbmc7XG4gIHByb3ZpbmNlPzogc3RyaW5nO1xuICBhcmVhPzogc3RyaW5nO1xuICBsZWdhbEFyZWE/OiBzdHJpbmc7XG4gIGxhbmRVc2U/OiBzdHJpbmc7XG4gIGFkZHJlc3M/OiBzdHJpbmc7XG4gIHVzZUZvcm0/OiBzdHJpbmc7XG4gIHJlZ2lzdHJhdGlvblN0YXR1cz86IHN0cmluZztcbiAgLyoqIENodXnDqm4gdmnDqm4gLyBt4bufIHLhu5luZy4gKi9cbiAgc2hhcGVJbmZvPzogc3RyaW5nO1xuICBwbGFubmluZ0luZm8/OiBzdHJpbmc7XG4gIC8qKiBHacOhIMSR4bqldCDigJQgbeG6t2MgxJHhu4tuaCBVSSBoaeG7h24gwqvEkGFuZyBj4bqtcCBuaOG6rXTCuyBu4bq/dSB0cuG7kW5nLiAqL1xuICBsYW5kUHJpY2U/OiBzdHJpbmc7XG4gIC8qKiBVUkwg4bqjbmggc8ahIMSR4buTIHRo4butYSAodHXhu7MgY2jhu41uKS4gKi9cbiAgZGlhZ3JhbVVybD86IHN0cmluZztcbiAgLyoqIEV4dHJhIHJvd3Mgd2hlbiBob3N0IG5lZWRzIG1vcmUgZmllbGRzLiAqL1xuICBleHRyYUZpZWxkcz86IEFycmF5PHsgbGFiZWw6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZW9NYXBIaWdobGlnaHRPcHRpb25zIHtcbiAgZGF0YVByb2plY3Rpb24/OiBzdHJpbmc7XG4gIC8qKiBGaXQgdmlldyB0byBoaWdobGlnaHQgZXh0ZW50IChkZWZhdWx0IHRydWUgd2hlbiBmZWF0dXJlcyBleGlzdCkuICovXG4gIGZpdD86IGJvb2xlYW47XG4gIGZpdE9wdGlvbnM/OiB7IHBhZGRpbmc/OiBudW1iZXJbXTsgbWF4Wm9vbT86IG51bWJlcjsgZHVyYXRpb24/OiBudW1iZXIgfTtcbn1cbiJdfQ==
@@ -1,5 +1,6 @@
1
1
  import { Injectable, inject } from '@angular/core';
2
2
  import GeoJSON from 'ol/format/GeoJSON';
3
+ import LayerGroup from 'ol/layer/Group';
3
4
  import TileLayer from 'ol/layer/Tile';
4
5
  import VectorLayer from 'ol/layer/Vector';
5
6
  import OSM from 'ol/source/OSM';
@@ -10,6 +11,7 @@ import WMTS from 'ol/source/WMTS';
10
11
  import WMTSTileGrid from 'ol/tilegrid/WMTS';
11
12
  import { get as getProjection } from 'ol/proj';
12
13
  import { getTopLeft, getWidth } from 'ol/extent';
14
+ import { apply as applyMapboxStyle } from 'ol-mapbox-style';
13
15
  import { GEO_MAP_BASEMAP_LAYER_ID } from '../geo-map.constants';
14
16
  import { GeoMapProjectionService } from './geo-map-projection.service';
15
17
  import * as i0 from "@angular/core";
@@ -44,6 +46,22 @@ export class GeoMapLayerService {
44
46
  };
45
47
  return this.createLayer(config);
46
48
  }
49
+ if (basemap.type === 'mapbox-style') {
50
+ const config = {
51
+ id: GEO_MAP_BASEMAP_LAYER_ID,
52
+ title: basemap.title ?? 'Mapbox style basemap',
53
+ type: 'mapbox-style',
54
+ styleJson: basemap.styleJson,
55
+ styleUrl: basemap.styleUrl,
56
+ transformRequest: basemap.transformRequest,
57
+ visible: true,
58
+ opacity: 1,
59
+ zIndex: 0,
60
+ basemap: true,
61
+ group: 'base-map',
62
+ };
63
+ return this.createLayer(config);
64
+ }
47
65
  const config = {
48
66
  id: GEO_MAP_BASEMAP_LAYER_ID,
49
67
  title: basemap.title ?? 'XYZ basemap',
@@ -83,6 +101,9 @@ export class GeoMapLayerService {
83
101
  case 'vector':
84
102
  layer = this.createVectorLayer(config);
85
103
  break;
104
+ case 'mapbox-style':
105
+ layer = this.createMapboxStyleLayer(config);
106
+ break;
86
107
  default: {
87
108
  const _exhaustive = config;
88
109
  throw new Error(`Unsupported layer type: ${JSON.stringify(_exhaustive)}`);
@@ -138,6 +159,10 @@ export class GeoMapLayerService {
138
159
  previous.dataProjection !== next.dataProjection);
139
160
  case 'vector':
140
161
  return previous.features !== next.features;
162
+ case 'mapbox-style':
163
+ return (previous.styleUrl !== next.styleUrl ||
164
+ JSON.stringify(previous.styleJson) !==
165
+ JSON.stringify(next.styleJson));
141
166
  default:
142
167
  return true;
143
168
  }
@@ -207,6 +232,9 @@ export class GeoMapLayerService {
207
232
  if (config.type === 'geojson' && config.data == null) {
208
233
  throw new Error(`GeoJSON layer "${config.id}" is missing data.`);
209
234
  }
235
+ if (config.type === 'mapbox-style' && !config.styleJson && !config.styleUrl?.trim()) {
236
+ throw new Error(`Mapbox-style layer "${config.id}" requires styleJson or styleUrl.`);
237
+ }
210
238
  }
211
239
  applyCommonOptions(layer, config) {
212
240
  layer.set(LAYER_ID_KEY, config.id);
@@ -359,10 +387,30 @@ export class GeoMapLayerService {
359
387
  });
360
388
  return new VectorLayer({ source });
361
389
  }
390
+ createMapboxStyleLayer(config) {
391
+ const group = new LayerGroup({ layers: [] });
392
+ const styleInput = config.styleJson ?? config.styleUrl;
393
+ if (!styleInput) {
394
+ throw new Error(`Mapbox-style layer "${config.id}" is missing styleJson/styleUrl.`);
395
+ }
396
+ applyMapboxStyle(group, styleInput, { transformRequest: config.transformRequest })
397
+ .then(() => {
398
+ this.runtime.set(config.id, { id: config.id, status: 'ready' });
399
+ })
400
+ .catch((err) => {
401
+ console.error(`[GeoMapLayerService] Mapbox style apply error "${config.id}"`, err);
402
+ this.runtime.set(config.id, {
403
+ id: config.id,
404
+ status: 'error',
405
+ errorMessage: 'Không áp được style bản đồ nền.',
406
+ });
407
+ });
408
+ return group;
409
+ }
362
410
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoMapLayerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
363
411
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoMapLayerService });
364
412
  }
365
413
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoMapLayerService, decorators: [{
366
414
  type: Injectable
367
415
  }] });
368
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvLW1hcC1sYXllci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2VvLXVpL3NyYy9saWIvZmlnbWEvZ2VvLW1hcC9zZXJ2aWNlcy9nZW8tbWFwLWxheWVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxPQUFPLE1BQU0sbUJBQW1CLENBQUM7QUFHeEMsT0FBTyxTQUFTLE1BQU0sZUFBZSxDQUFDO0FBQ3RDLE9BQU8sV0FBVyxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sR0FBRyxNQUFNLGVBQWUsQ0FBQztBQUNoQyxPQUFPLE9BQU8sTUFBTSxtQkFBbUIsQ0FBQztBQUN4QyxPQUFPLFlBQVksTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLEdBQUcsTUFBTSxlQUFlLENBQUM7QUFFaEMsT0FBTyxJQUFJLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEMsT0FBTyxZQUFZLE1BQU0sa0JBQWtCLENBQUM7QUFDNUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxhQUFhLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDL0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDakQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFZaEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBRXZFLE1BQU0sWUFBWSxHQUFHLFlBQVksQ0FBQztBQUNsQyxNQUFNLGlCQUFpQixHQUFHLFlBQVksQ0FBQztBQUN2QyxNQUFNLGVBQWUsR0FBRyxVQUFVLENBQUM7QUFDbkMsTUFBTSxtQkFBbUIsR0FBRyxjQUFjLENBQUM7QUFRM0M7OztHQUdHO0FBRUgsTUFBTSxPQUFPLGtCQUFrQjtJQUNaLFVBQVUsR0FBRyxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUM3QyxPQUFPLEdBQUcsSUFBSSxHQUFHLEVBQW1DLENBQUM7SUFFdEUsZUFBZSxDQUFDLE9BQWU7UUFDN0IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsbUJBQW1CO1FBQ2pCLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsc0JBQXNCLENBQUMsT0FBMkI7UUFDaEQsSUFBSSxPQUFPLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDdEIsTUFBTSxNQUFNLEdBQXlCO2dCQUNuQyxFQUFFLEVBQUUsd0JBQXdCO2dCQUM1QixLQUFLLEVBQUUsZUFBZTtnQkFDdEIsSUFBSSxFQUFFLEtBQUs7Z0JBQ1gsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsT0FBTyxFQUFFLENBQUM7Z0JBQ1YsTUFBTSxFQUFFLENBQUM7Z0JBQ1QsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsS0FBSyxFQUFFLFVBQVU7YUFDbEIsQ0FBQztZQUNGLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNsQyxDQUFDO1FBRUQsTUFBTSxNQUFNLEdBQXlCO1lBQ25DLEVBQUUsRUFBRSx3QkFBd0I7WUFDNUIsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLLElBQUksYUFBYTtZQUNyQyxJQUFJLEVBQUUsS0FBSztZQUNYLEdBQUcsRUFBRSxPQUFPLENBQUMsR0FBRztZQUNoQixZQUFZLEVBQUUsT0FBTyxDQUFDLFlBQVk7WUFDbEMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPO1lBQ3hCLE9BQU8sRUFBRSxJQUFJO1lBQ2IsT0FBTyxFQUFFLENBQUM7WUFDVixNQUFNLEVBQUUsQ0FBQztZQUNULE9BQU8sRUFBRSxJQUFJO1lBQ2IsS0FBSyxFQUFFLFVBQVU7U0FDbEIsQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsV0FBVyxDQUFDLE1BQXlCO1FBQ25DLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUVsRSxJQUFJLEtBQWdCLENBQUM7UUFDckIsSUFBSSxDQUFDO1lBQ0gsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM1QixRQUFRLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDcEIsS0FBSyxLQUFLO29CQUNSLEtBQUssR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUNwQyxNQUFNO2dCQUNSLEtBQUssS0FBSztvQkFDUixLQUFLLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDcEMsTUFBTTtnQkFDUixLQUFLLEtBQUs7b0JBQ1IsS0FBSyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ3BDLE1BQU07Z0JBQ1IsS0FBSyxNQUFNO29CQUNULEtBQUssR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUNyQyxNQUFNO2dCQUNSLEtBQUssU0FBUztvQkFDWixLQUFLLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUN4QyxNQUFNO2dCQUNSLEtBQUssUUFBUTtvQkFDWCxLQUFLLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUN2QyxNQUFNO2dCQUNSLE9BQU8sQ0FBQyxDQUFDLENBQUM7b0JBQ1IsTUFBTSxXQUFXLEdBQVUsTUFBTSxDQUFDO29CQUNsQyxNQUFNLElBQUksS0FBSyxDQUFDLDJCQUEyQixJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDNUUsQ0FBQztZQUNILENBQUM7WUFDRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3hDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNsRSxDQUFDO1FBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztZQUNiLE1BQU0sT0FBTyxHQUFHLEdBQUcsWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNqRSxPQUFPLENBQUMsS0FBSyxDQUFDLGdEQUFnRCxNQUFNLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDakYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRTtnQkFDMUIsRUFBRSxFQUFFLE1BQU0sQ0FBQyxFQUFFO2dCQUNiLE1BQU0sRUFBRSxPQUFPO2dCQUNmLFlBQVksRUFBRSxPQUFPO2FBQ3RCLENBQUMsQ0FBQztZQUNILDREQUE0RDtZQUM1RCxLQUFLLEdBQUcsSUFBSSxXQUFXLENBQUM7Z0JBQ3RCLE1BQU0sRUFBRSxJQUFJLFlBQVksRUFBRTtnQkFDMUIsT0FBTyxFQUFFLEtBQUs7YUFDZixDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxFQUFFLEVBQUUsR0FBRyxNQUFNLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDaEUsQ0FBQztRQUVELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUVEOzs7T0FHRztJQUNILGFBQWEsQ0FBQyxRQUEyQixFQUFFLElBQXVCO1FBQ2hFLElBQUksUUFBUSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxJQUFJLFFBQVEsQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQzNELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUNELFFBQVEsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2xCLEtBQUssS0FBSztnQkFDUixPQUFPLEtBQUssQ0FBQztZQUNmLEtBQUssS0FBSztnQkFDUixPQUFPLENBQ0osUUFBaUMsQ0FBQyxHQUFHLEtBQUssSUFBSSxDQUFDLEdBQUc7b0JBQ2xELFFBQWlDLENBQUMsT0FBTyxLQUFLLElBQUksQ0FBQyxPQUFPLENBQzVELENBQUM7WUFDSixLQUFLLEtBQUs7Z0JBQ1IsT0FBTyxDQUNKLFFBQWlDLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxHQUFHO29CQUNuRCxJQUFJLENBQUMsU0FBUyxDQUFFLFFBQWlDLENBQUMsTUFBTSxDQUFDO3dCQUN2RCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7b0JBQzVCLFFBQWlDLENBQUMsU0FBUyxLQUFLLElBQUksQ0FBQyxTQUFTLENBQ2hFLENBQUM7WUFDSixLQUFLLE1BQU07Z0JBQ1QsT0FBTyxDQUNKLFFBQWtDLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxHQUFHO29CQUNuRCxRQUFrQyxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsS0FBSztvQkFDdkQsUUFBa0MsQ0FBQyxTQUFTLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FDakUsQ0FBQztZQUNKLEtBQUssU0FBUztnQkFDWixPQUFPLENBQ0wsSUFBSSxDQUFDLFNBQVMsQ0FBRSxRQUFxQyxDQUFDLElBQUksQ0FBQztvQkFDekQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO29CQUMxQixRQUFxQyxDQUFDLGNBQWMsS0FBSyxJQUFJLENBQUMsY0FBYyxDQUM5RSxDQUFDO1lBQ0osS0FBSyxRQUFRO2dCQUNYLE9BQVEsUUFBb0MsQ0FBQyxRQUFRLEtBQUssSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUMxRTtnQkFDRSxPQUFPLElBQUksQ0FBQztRQUNoQixDQUFDO0lBQ0gsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFnQixFQUFFLE1BQXlCO1FBQ3BELEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsQ0FBQztRQUN6QyxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDdEMsSUFBSSxNQUFNLENBQUMsTUFBTSxJQUFJLElBQUksRUFBRSxDQUFDO1lBQzFCLEtBQUssQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2pDLENBQUM7UUFDRCxJQUFJLE1BQU0sQ0FBQyxPQUFPLElBQUksSUFBSSxFQUFFLENBQUM7WUFDM0IsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbkMsQ0FBQztRQUNELElBQUksTUFBTSxDQUFDLE9BQU8sSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUMzQixLQUFLLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNuQyxDQUFDO1FBQ0QsS0FBSyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQy9DLEtBQUssQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLE1BQU0sQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUM7UUFDL0MsS0FBSyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxVQUFVLENBQUMsS0FBZ0IsRUFBRSxPQUFnQjtRQUMzQyxLQUFLLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBZ0IsRUFBRSxPQUFlO1FBQzFDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDbEQsS0FBSyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQWdCO1FBQ3pCLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDbkMsT0FBTyxPQUFPLEVBQUUsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ2pELENBQUM7SUFFRCxTQUFTLENBQUMsS0FBZ0I7UUFDeEIsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCx1QkFBdUIsQ0FDckIsTUFBeUIsRUFDekIsZUFBdUI7UUFFdkIsS0FBSyxNQUFNLElBQUksSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDekIsU0FBUztZQUNYLENBQUM7WUFDRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsRUFBRSxLQUFLLGVBQWUsQ0FBQztZQUM1QyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMvQixJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxDQUFDO1FBQzVDLENBQUM7SUFDSCxDQUFDO0lBRU8sY0FBYyxDQUFDLE1BQXlCO1FBQzlDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUM7WUFDdkIsTUFBTSxJQUFJLEtBQUssQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO1FBQzNELENBQUM7UUFDRCxJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssS0FBSyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ2pELE1BQU0sSUFBSSxLQUFLLENBQUMsY0FBYyxNQUFNLENBQUMsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO1FBQzlELENBQUM7UUFDRCxJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQztnQkFDeEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxjQUFjLE1BQU0sQ0FBQyxFQUFFLG1CQUFtQixDQUFDLENBQUM7WUFDOUQsQ0FBQztZQUNELE1BQU0sV0FBVyxHQUNmLE1BQU0sQ0FBQyxTQUFTO2dCQUNoQixDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUMzRSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQ2IsY0FBYyxNQUFNLENBQUMsRUFBRSxxQ0FBcUMsQ0FDN0QsQ0FBQztZQUNKLENBQUM7UUFDSCxDQUFDO1FBQ0QsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQztnQkFDOUUsTUFBTSxJQUFJLEtBQUssQ0FDYixlQUFlLE1BQU0sQ0FBQyxFQUFFLHVDQUF1QyxDQUNoRSxDQUFDO1lBQ0osQ0FBQztRQUNILENBQUM7UUFDRCxJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssU0FBUyxJQUFJLE1BQU0sQ0FBQyxJQUFJLElBQUksSUFBSSxFQUFFLENBQUM7WUFDckQsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsTUFBTSxDQUFDLEVBQUUsb0JBQW9CLENBQUMsQ0FBQztRQUNuRSxDQUFDO0lBQ0gsQ0FBQztJQUVPLGtCQUFrQixDQUFDLEtBQWdCLEVBQUUsTUFBeUI7UUFDcEUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ25DLEtBQUssQ0FBQyxHQUFHLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMvQyxLQUFLLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxNQUFNLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQy9DLEtBQUssQ0FBQyxHQUFHLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNuRCxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLENBQUM7UUFDekMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3RDLElBQUksTUFBTSxDQUFDLE1BQU0sSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUMxQixLQUFLLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNqQyxDQUFDO1FBQ0QsSUFBSSxNQUFNLENBQUMsT0FBTyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQzNCLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ25DLENBQUM7UUFDRCxJQUFJLE1BQU0sQ0FBQyxPQUFPLElBQUksSUFBSSxFQUFFLENBQUM7WUFDM0IsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbkMsQ0FBQztJQUNILENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxPQUFlLEVBQUUsS0FBZ0I7UUFDeEQsSUFBSSxDQUFDLENBQUMsS0FBSyxZQUFZLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDbEMsT0FBTztRQUNULENBQUM7UUFDRCxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ1osT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLENBQUMsRUFBRSxDQUFDLGVBQWUsRUFBRSxHQUFHLEVBQUU7WUFDOUIsT0FBTyxDQUFDLElBQUksQ0FBQyw2Q0FBNkMsT0FBTyxHQUFHLENBQUMsQ0FBQztZQUN0RSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUU7Z0JBQ3hCLEVBQUUsRUFBRSxPQUFPO2dCQUNYLE1BQU0sRUFBRSxPQUFPO2dCQUNmLFlBQVksRUFBRSxvQ0FBb0M7YUFDbkQsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxHQUFHLEVBQUU7WUFDNUIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDMUMsSUFBSSxPQUFPLEVBQUUsTUFBTSxLQUFLLE9BQU8sRUFBRSxDQUFDO2dCQUNoQyxPQUFPO1lBQ1QsQ0FBQztZQUNELElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDOUQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sY0FBYyxDQUFDLE9BQTZCO1FBQ2xELE9BQU8sSUFBSSxTQUFTLENBQUM7WUFDbkIsTUFBTSxFQUFFLElBQUksR0FBRyxFQUFFO1NBQ2xCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxjQUFjLENBQUMsTUFBNEI7UUFDakQsT0FBTyxJQUFJLFNBQVMsQ0FBQztZQUNuQixNQUFNLEVBQUUsSUFBSSxHQUFHLENBQUM7Z0JBQ2QsR0FBRyxFQUFFLE1BQU0sQ0FBQyxHQUFHO2dCQUNmLFlBQVksRUFBRSxNQUFNLENBQUMsWUFBWTtnQkFDakMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPO2dCQUN2QixXQUFXLEVBQUUsTUFBTSxDQUFDLFdBQVcsSUFBSSxXQUFXO2FBQy9DLENBQUM7U0FDSCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sY0FBYyxDQUFDLE1BQTRCO1FBQ2pELE1BQU0sTUFBTSxHQUNWLE1BQU0sQ0FBQyxTQUFTO1lBQ2hCLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzNFLE1BQU0sTUFBTSxHQUE4QztZQUN4RCxHQUFHLE1BQU0sQ0FBQyxNQUFNO1lBQ2hCLE1BQU0sRUFBRSxNQUFNO1NBQ2YsQ0FBQztRQUNGLE9BQU8sSUFBSSxTQUFTLENBQUM7WUFDbkIsTUFBTSxFQUFFLElBQUksT0FBTyxDQUFDO2dCQUNsQixHQUFHLEVBQUUsTUFBTSxDQUFDLEdBQUc7Z0JBQ2YsTUFBTTtnQkFDTixVQUFVLEVBQUUsTUFBTSxDQUFDLFVBQVU7Z0JBQzdCLFdBQVcsRUFBRSxNQUFNLENBQUMsV0FBVyxJQUFJLFdBQVc7Z0JBQzlDLFVBQVUsRUFBRSxNQUFNLENBQUMsVUFBd0M7YUFDNUQsQ0FBQztTQUNILENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxlQUFlLENBQUMsTUFBNkI7UUFDbkQsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLFVBQVUsSUFBSSxXQUFXLENBQUM7UUFDeEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNqRCxNQUFNLFVBQVUsR0FBRyxhQUFhLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMsb0JBQW9CLGNBQWMscUJBQXFCLENBQUMsQ0FBQztRQUMzRSxDQUFDO1FBQ0QsTUFBTSxnQkFBZ0IsR0FBRyxVQUFVLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDaEQsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDdEIsTUFBTSxJQUFJLEtBQUssQ0FDYixvQkFBb0IsY0FBYywrREFBK0QsQ0FDbEcsQ0FBQztRQUNKLENBQUM7UUFDRCxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxHQUFHLENBQUM7UUFDOUMsTUFBTSxXQUFXLEdBQWEsRUFBRSxDQUFDO1FBQ2pDLE1BQU0sU0FBUyxHQUFhLEVBQUUsQ0FBQztRQUMvQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUMvQixXQUFXLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3ZDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0IsQ0FBQztRQUVELE9BQU8sSUFBSSxTQUFTLENBQUM7WUFDbkIsTUFBTSxFQUFFLElBQUksSUFBSSxDQUFDO2dCQUNmLEdBQUcsRUFBRSxNQUFNLENBQUMsR0FBRztnQkFDZixLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUs7Z0JBQ25CLFNBQVMsRUFBRSxNQUFNLENBQUMsU0FBUztnQkFDM0IsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLElBQUksV0FBVztnQkFDcEMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLLElBQUksRUFBRTtnQkFDekIsVUFBVSxFQUFFLGNBQWM7Z0JBQzFCLFdBQVcsRUFBRSxNQUFNLENBQUMsV0FBVyxJQUFJLFdBQVc7Z0JBQzlDLFFBQVEsRUFBRSxJQUFJLFlBQVksQ0FBQztvQkFDekIsTUFBTSxFQUFFLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQztvQkFDcEMsV0FBVztvQkFDWCxTQUFTO2lCQUNWLENBQUM7YUFDSCxDQUFDO1NBQ0gsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLGtCQUFrQixDQUFDLE1BQWdDO1FBQ3pELE1BQU0sTUFBTSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFDN0IsTUFBTSxNQUFNLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNsQyxNQUFNLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsSUFBSSxXQUFXLENBQUM7UUFDbEUsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLGNBQWMsSUFBSSxXQUFXLENBQUM7UUFFNUQsSUFBSSxPQUFPLE1BQU0sQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDcEMsNkNBQTZDO1lBQzdDLE1BQU0sU0FBUyxHQUFHLElBQUksWUFBWSxDQUFDO2dCQUNqQyxHQUFHLEVBQUUsTUFBTSxDQUFDLElBQUk7Z0JBQ2hCLE1BQU0sRUFBRSxJQUFJLE9BQU8sQ0FBQztvQkFDbEIsY0FBYztvQkFDZCxpQkFBaUI7aUJBQ2xCLENBQUM7YUFDSCxDQUFDLENBQUM7WUFDSCxTQUFTLENBQUMsRUFBRSxDQUFDLG1CQUFtQixFQUFFLEdBQUcsRUFBRTtnQkFDckMsT0FBTyxDQUFDLEtBQUssQ0FBQyw0Q0FBNEMsTUFBTSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQ3hFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUU7b0JBQzFCLEVBQUUsRUFBRSxNQUFNLENBQUMsRUFBRTtvQkFDYixNQUFNLEVBQUUsT0FBTztvQkFDZixZQUFZLEVBQUUseUJBQXlCO2lCQUN4QyxDQUFDLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztZQUNILE9BQU8sSUFBSSxXQUFXLENBQUMsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUNoRCxDQUFDO1FBRUQsSUFBSSxDQUFDO1lBQ0gsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFO2dCQUNoRCxjQUFjO2dCQUNkLGlCQUFpQjthQUNsQixDQUF3QixDQUFDO1lBQzFCLE1BQU0sQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDL0IsQ0FBQztRQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDYixPQUFPLENBQUMsS0FBSyxDQUFDLDZDQUE2QyxNQUFNLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDOUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQ0FBaUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDbEUsQ0FBQztRQUVELE9BQU8sSUFBSSxXQUFXLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxNQUErQjtRQUN2RCxNQUFNLE1BQU0sR0FBRyxJQUFJLFlBQVksQ0FBQztZQUM5QixRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVEsSUFBSSxFQUFFO1NBQ2hDLENBQUMsQ0FBQztRQUNILE9BQU8sSUFBSSxXQUFXLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7d0dBL1hVLGtCQUFrQjs0R0FBbEIsa0JBQWtCOzs0RkFBbEIsa0JBQWtCO2tCQUQ5QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgRmVhdHVyZSBmcm9tICdvbC9GZWF0dXJlJztcbmltcG9ydCBHZW9KU09OIGZyb20gJ29sL2Zvcm1hdC9HZW9KU09OJztcbmltcG9ydCB0eXBlIEdlb21ldHJ5IGZyb20gJ29sL2dlb20vR2VvbWV0cnknO1xuaW1wb3J0IHR5cGUgQmFzZUxheWVyIGZyb20gJ29sL2xheWVyL0Jhc2UnO1xuaW1wb3J0IFRpbGVMYXllciBmcm9tICdvbC9sYXllci9UaWxlJztcbmltcG9ydCBWZWN0b3JMYXllciBmcm9tICdvbC9sYXllci9WZWN0b3InO1xuaW1wb3J0IE9TTSBmcm9tICdvbC9zb3VyY2UvT1NNJztcbmltcG9ydCBUaWxlV01TIGZyb20gJ29sL3NvdXJjZS9UaWxlV01TJztcbmltcG9ydCBWZWN0b3JTb3VyY2UgZnJvbSAnb2wvc291cmNlL1ZlY3Rvcic7XG5pbXBvcnQgWFlaIGZyb20gJ29sL3NvdXJjZS9YWVonO1xuaW1wb3J0IHR5cGUgeyBQcm9qZWN0aW9uTGlrZSB9IGZyb20gJ29sL3Byb2onO1xuaW1wb3J0IFdNVFMgZnJvbSAnb2wvc291cmNlL1dNVFMnO1xuaW1wb3J0IFdNVFNUaWxlR3JpZCBmcm9tICdvbC90aWxlZ3JpZC9XTVRTJztcbmltcG9ydCB7IGdldCBhcyBnZXRQcm9qZWN0aW9uIH0gZnJvbSAnb2wvcHJvaic7XG5pbXBvcnQgeyBnZXRUb3BMZWZ0LCBnZXRXaWR0aCB9IGZyb20gJ29sL2V4dGVudCc7XG5pbXBvcnQgeyBHRU9fTUFQX0JBU0VNQVBfTEFZRVJfSUQgfSBmcm9tICcuLi9nZW8tbWFwLmNvbnN0YW50cyc7XG5pbXBvcnQgdHlwZSB7XG4gIEdlb01hcEJhc2VtYXBJbnB1dCxcbiAgR2VvTWFwR2VvSnNvbkxheWVyQ29uZmlnLFxuICBHZW9NYXBMYXllckNvbmZpZyxcbiAgR2VvTWFwTGF5ZXJSdW50aW1lU3RhdGUsXG4gIEdlb01hcE9zbUxheWVyQ29uZmlnLFxuICBHZW9NYXBWZWN0b3JMYXllckNvbmZpZyxcbiAgR2VvTWFwV21zTGF5ZXJDb25maWcsXG4gIEdlb01hcFdtdHNMYXllckNvbmZpZyxcbiAgR2VvTWFwWHl6TGF5ZXJDb25maWcsXG59IGZyb20gJy4uL2dlby1tYXAudHlwZXMnO1xuaW1wb3J0IHsgR2VvTWFwUHJvamVjdGlvblNlcnZpY2UgfSBmcm9tICcuL2dlby1tYXAtcHJvamVjdGlvbi5zZXJ2aWNlJztcblxuY29uc3QgTEFZRVJfSURfS0VZID0gJ2dlb0xheWVySWQnO1xuY29uc3QgTEFZRVJfQkFTRU1BUF9LRVkgPSAnZ2VvQmFzZW1hcCc7XG5jb25zdCBMQVlFUl9HUk9VUF9LRVkgPSAnZ2VvR3JvdXAnO1xuY29uc3QgTEFZRVJfUVVFUllBQkxFX0tFWSA9ICdnZW9RdWVyeWFibGUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZWRNYXBMYXllciB7XG4gIGlkOiBzdHJpbmc7XG4gIGNvbmZpZzogR2VvTWFwTGF5ZXJDb25maWc7XG4gIGxheWVyOiBCYXNlTGF5ZXI7XG59XG5cbi8qKlxuICogQnVpbGRzIGFuZCBpbmNyZW1lbnRhbGx5IHBhdGNoZXMgT3BlbkxheWVycyBsYXllcnMgZnJvbSB0eXBlZCBjb25maWdzLlxuICogVmlzaWJpbGl0eSAvIG9wYWNpdHkgdXBkYXRlcyBtdXN0IG5vdCByZWNyZWF0ZSBzb3VyY2VzLlxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgR2VvTWFwTGF5ZXJTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBwcm9qZWN0aW9uID0gaW5qZWN0KEdlb01hcFByb2plY3Rpb25TZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBydW50aW1lID0gbmV3IE1hcDxzdHJpbmcsIEdlb01hcExheWVyUnVudGltZVN0YXRlPigpO1xuXG4gIGdldFJ1bnRpbWVTdGF0ZShsYXllcklkOiBzdHJpbmcpOiBHZW9NYXBMYXllclJ1bnRpbWVTdGF0ZSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMucnVudGltZS5nZXQobGF5ZXJJZCk7XG4gIH1cblxuICBnZXRBbGxSdW50aW1lU3RhdGVzKCk6IEdlb01hcExheWVyUnVudGltZVN0YXRlW10ge1xuICAgIHJldHVybiBbLi4udGhpcy5ydW50aW1lLnZhbHVlcygpXTtcbiAgfVxuXG4gIGNyZWF0ZUZyb21CYXNlbWFwSW5wdXQoYmFzZW1hcDogR2VvTWFwQmFzZW1hcElucHV0KTogQ3JlYXRlZE1hcExheWVyIHtcbiAgICBpZiAoYmFzZW1hcCA9PT0gJ29zbScpIHtcbiAgICAgIGNvbnN0IGNvbmZpZzogR2VvTWFwT3NtTGF5ZXJDb25maWcgPSB7XG4gICAgICAgIGlkOiBHRU9fTUFQX0JBU0VNQVBfTEFZRVJfSUQsXG4gICAgICAgIHRpdGxlOiAnT3BlblN0cmVldE1hcCcsXG4gICAgICAgIHR5cGU6ICdvc20nLFxuICAgICAgICB2aXNpYmxlOiB0cnVlLFxuICAgICAgICBvcGFjaXR5OiAxLFxuICAgICAgICB6SW5kZXg6IDAsXG4gICAgICAgIGJhc2VtYXA6IHRydWUsXG4gICAgICAgIGdyb3VwOiAnYmFzZS1tYXAnLFxuICAgICAgfTtcbiAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUxheWVyKGNvbmZpZyk7XG4gICAgfVxuXG4gICAgY29uc3QgY29uZmlnOiBHZW9NYXBYeXpMYXllckNvbmZpZyA9IHtcbiAgICAgIGlkOiBHRU9fTUFQX0JBU0VNQVBfTEFZRVJfSUQsXG4gICAgICB0aXRsZTogYmFzZW1hcC50aXRsZSA/PyAnWFlaIGJhc2VtYXAnLFxuICAgICAgdHlwZTogJ3h5eicsXG4gICAgICB1cmw6IGJhc2VtYXAudXJsLFxuICAgICAgYXR0cmlidXRpb25zOiBiYXNlbWFwLmF0dHJpYnV0aW9ucyxcbiAgICAgIG1heFpvb206IGJhc2VtYXAubWF4Wm9vbSxcbiAgICAgIHZpc2libGU6IHRydWUsXG4gICAgICBvcGFjaXR5OiAxLFxuICAgICAgekluZGV4OiAwLFxuICAgICAgYmFzZW1hcDogdHJ1ZSxcbiAgICAgIGdyb3VwOiAnYmFzZS1tYXAnLFxuICAgIH07XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlTGF5ZXIoY29uZmlnKTtcbiAgfVxuXG4gIGNyZWF0ZUxheWVyKGNvbmZpZzogR2VvTWFwTGF5ZXJDb25maWcpOiBDcmVhdGVkTWFwTGF5ZXIge1xuICAgIHRoaXMucnVudGltZS5zZXQoY29uZmlnLmlkLCB7IGlkOiBjb25maWcuaWQsIHN0YXR1czogJ2xvYWRpbmcnIH0pO1xuXG4gICAgbGV0IGxheWVyOiBCYXNlTGF5ZXI7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMudmFsaWRhdGVDb25maWcoY29uZmlnKTtcbiAgICAgIHN3aXRjaCAoY29uZmlnLnR5cGUpIHtcbiAgICAgICAgY2FzZSAnb3NtJzpcbiAgICAgICAgICBsYXllciA9IHRoaXMuY3JlYXRlT3NtTGF5ZXIoY29uZmlnKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAneHl6JzpcbiAgICAgICAgICBsYXllciA9IHRoaXMuY3JlYXRlWHl6TGF5ZXIoY29uZmlnKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnd21zJzpcbiAgICAgICAgICBsYXllciA9IHRoaXMuY3JlYXRlV21zTGF5ZXIoY29uZmlnKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnd210cyc6XG4gICAgICAgICAgbGF5ZXIgPSB0aGlzLmNyZWF0ZVdtdHNMYXllcihjb25maWcpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdnZW9qc29uJzpcbiAgICAgICAgICBsYXllciA9IHRoaXMuY3JlYXRlR2VvSnNvbkxheWVyKGNvbmZpZyk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3ZlY3Rvcic6XG4gICAgICAgICAgbGF5ZXIgPSB0aGlzLmNyZWF0ZVZlY3RvckxheWVyKGNvbmZpZyk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICBjb25zdCBfZXhoYXVzdGl2ZTogbmV2ZXIgPSBjb25maWc7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCBsYXllciB0eXBlOiAke0pTT04uc3RyaW5naWZ5KF9leGhhdXN0aXZlKX1gKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy5hcHBseUNvbW1vbk9wdGlvbnMobGF5ZXIsIGNvbmZpZyk7XG4gICAgICB0aGlzLndpcmVTb3VyY2VTdGF0dXMoY29uZmlnLmlkLCBsYXllcik7XG4gICAgICB0aGlzLnJ1bnRpbWUuc2V0KGNvbmZpZy5pZCwgeyBpZDogY29uZmlnLmlkLCBzdGF0dXM6ICdyZWFkeScgfSk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gZXJyIGluc3RhbmNlb2YgRXJyb3IgPyBlcnIubWVzc2FnZSA6IFN0cmluZyhlcnIpO1xuICAgICAgY29uc29sZS5lcnJvcihgW0dlb01hcExheWVyU2VydmljZV0gRmFpbGVkIHRvIGNyZWF0ZSBsYXllciBcIiR7Y29uZmlnLmlkfVwiYCwgZXJyKTtcbiAgICAgIHRoaXMucnVudGltZS5zZXQoY29uZmlnLmlkLCB7XG4gICAgICAgIGlkOiBjb25maWcuaWQsXG4gICAgICAgIHN0YXR1czogJ2Vycm9yJyxcbiAgICAgICAgZXJyb3JNZXNzYWdlOiBtZXNzYWdlLFxuICAgICAgfSk7XG4gICAgICAvLyBQbGFjZWhvbGRlciBpbnZpc2libGUgbGF5ZXIgc28gY2FsbGVycyBjYW4gc3RpbGwgdHJhY2sgaWRcbiAgICAgIGxheWVyID0gbmV3IFZlY3RvckxheWVyKHtcbiAgICAgICAgc291cmNlOiBuZXcgVmVjdG9yU291cmNlKCksXG4gICAgICAgIHZpc2libGU6IGZhbHNlLFxuICAgICAgfSk7XG4gICAgICB0aGlzLmFwcGx5Q29tbW9uT3B0aW9ucyhsYXllciwgeyAuLi5jb25maWcsIHZpc2libGU6IGZhbHNlIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB7IGlkOiBjb25maWcuaWQsIGNvbmZpZywgbGF5ZXIgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBcHBseSB2aXNpYmlsaXR5L29wYWNpdHkvekluZGV4IHdpdGhvdXQgcmVjcmVhdGluZyB0aGUgT0wgbGF5ZXIuXG4gICAqIFJldHVybnMgdHJ1ZSB3aGVuIHN0cnVjdHVyYWwgZmllbGRzIGNoYW5nZWQgYW5kIHRoZSBsYXllciBzaG91bGQgYmUgcmVjcmVhdGVkLlxuICAgKi9cbiAgbmVlZHNSZWNyZWF0ZShwcmV2aW91czogR2VvTWFwTGF5ZXJDb25maWcsIG5leHQ6IEdlb01hcExheWVyQ29uZmlnKTogYm9vbGVhbiB7XG4gICAgaWYgKHByZXZpb3VzLnR5cGUgIT09IG5leHQudHlwZSB8fCBwcmV2aW91cy5pZCAhPT0gbmV4dC5pZCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHN3aXRjaCAobmV4dC50eXBlKSB7XG4gICAgICBjYXNlICdvc20nOlxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICBjYXNlICd4eXonOlxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIChwcmV2aW91cyBhcyBHZW9NYXBYeXpMYXllckNvbmZpZykudXJsICE9PSBuZXh0LnVybCB8fFxuICAgICAgICAgIChwcmV2aW91cyBhcyBHZW9NYXBYeXpMYXllckNvbmZpZykubWF4Wm9vbSAhPT0gbmV4dC5tYXhab29tXG4gICAgICAgICk7XG4gICAgICBjYXNlICd3bXMnOlxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIChwcmV2aW91cyBhcyBHZW9NYXBXbXNMYXllckNvbmZpZykudXJsICE9PSBuZXh0LnVybCB8fFxuICAgICAgICAgIEpTT04uc3RyaW5naWZ5KChwcmV2aW91cyBhcyBHZW9NYXBXbXNMYXllckNvbmZpZykucGFyYW1zKSAhPT1cbiAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KG5leHQucGFyYW1zKSB8fFxuICAgICAgICAgIChwcmV2aW91cyBhcyBHZW9NYXBXbXNMYXllckNvbmZpZykubGF5ZXJOYW1lICE9PSBuZXh0LmxheWVyTmFtZVxuICAgICAgICApO1xuICAgICAgY2FzZSAnd210cyc6XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgKHByZXZpb3VzIGFzIEdlb01hcFdtdHNMYXllckNvbmZpZykudXJsICE9PSBuZXh0LnVybCB8fFxuICAgICAgICAgIChwcmV2aW91cyBhcyBHZW9NYXBXbXRzTGF5ZXJDb25maWcpLmxheWVyICE9PSBuZXh0LmxheWVyIHx8XG4gICAgICAgICAgKHByZXZpb3VzIGFzIEdlb01hcFdtdHNMYXllckNvbmZpZykubWF0cml4U2V0ICE9PSBuZXh0Lm1hdHJpeFNldFxuICAgICAgICApO1xuICAgICAgY2FzZSAnZ2VvanNvbic6XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgSlNPTi5zdHJpbmdpZnkoKHByZXZpb3VzIGFzIEdlb01hcEdlb0pzb25MYXllckNvbmZpZykuZGF0YSkgIT09XG4gICAgICAgICAgICBKU09OLnN0cmluZ2lmeShuZXh0LmRhdGEpIHx8XG4gICAgICAgICAgKHByZXZpb3VzIGFzIEdlb01hcEdlb0pzb25MYXllckNvbmZpZykuZGF0YVByb2plY3Rpb24gIT09IG5leHQuZGF0YVByb2plY3Rpb25cbiAgICAgICAgKTtcbiAgICAgIGNhc2UgJ3ZlY3Rvcic6XG4gICAgICAgIHJldHVybiAocHJldmlvdXMgYXMgR2VvTWFwVmVjdG9yTGF5ZXJDb25maWcpLmZlYXR1cmVzICE9PSBuZXh0LmZlYXR1cmVzO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgcGF0Y2hMYXllcihsYXllcjogQmFzZUxheWVyLCBjb25maWc6IEdlb01hcExheWVyQ29uZmlnKTogdm9pZCB7XG4gICAgbGF5ZXIuc2V0VmlzaWJsZShjb25maWcudmlzaWJsZSA/PyB0cnVlKTtcbiAgICBsYXllci5zZXRPcGFjaXR5KGNvbmZpZy5vcGFjaXR5ID8/IDEpO1xuICAgIGlmIChjb25maWcuekluZGV4ICE9IG51bGwpIHtcbiAgICAgIGxheWVyLnNldFpJbmRleChjb25maWcuekluZGV4KTtcbiAgICB9XG4gICAgaWYgKGNvbmZpZy5taW5ab29tICE9IG51bGwpIHtcbiAgICAgIGxheWVyLnNldE1pblpvb20oY29uZmlnLm1pblpvb20pO1xuICAgIH1cbiAgICBpZiAoY29uZmlnLm1heFpvb20gIT0gbnVsbCkge1xuICAgICAgbGF5ZXIuc2V0TWF4Wm9vbShjb25maWcubWF4Wm9vbSk7XG4gICAgfVxuICAgIGxheWVyLnNldChMQVlFUl9CQVNFTUFQX0tFWSwgISFjb25maWcuYmFzZW1hcCk7XG4gICAgbGF5ZXIuc2V0KExBWUVSX0dST1VQX0tFWSwgY29uZmlnLmdyb3VwID8/ICcnKTtcbiAgICBsYXllci5zZXQoTEFZRVJfUVVFUllBQkxFX0tFWSwgISFjb25maWcucXVlcnlhYmxlKTtcbiAgfVxuXG4gIHNldFZpc2libGUobGF5ZXI6IEJhc2VMYXllciwgdmlzaWJsZTogYm9vbGVhbik6IHZvaWQge1xuICAgIGxheWVyLnNldFZpc2libGUodmlzaWJsZSk7XG4gIH1cblxuICBzZXRPcGFjaXR5KGxheWVyOiBCYXNlTGF5ZXIsIG9wYWNpdHk6IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IGNsYW1wZWQgPSBNYXRoLm1pbigxLCBNYXRoLm1heCgwLCBvcGFjaXR5KSk7XG4gICAgbGF5ZXIuc2V0T3BhY2l0eShjbGFtcGVkKTtcbiAgfVxuXG4gIGdldExheWVySWQobGF5ZXI6IEJhc2VMYXllcik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgaWQgPSBsYXllci5nZXQoTEFZRVJfSURfS0VZKTtcbiAgICByZXR1cm4gdHlwZW9mIGlkID09PSAnc3RyaW5nJyA/IGlkIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgaXNCYXNlbWFwKGxheWVyOiBCYXNlTGF5ZXIpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISFsYXllci5nZXQoTEFZRVJfQkFTRU1BUF9LRVkpO1xuICB9XG5cbiAgcmVzb2x2ZUJhc2VtYXBFeGNsdXNpdmUoXG4gICAgbGF5ZXJzOiBDcmVhdGVkTWFwTGF5ZXJbXSxcbiAgICBhY3RpdmVCYXNlbWFwSWQ6IHN0cmluZyxcbiAgKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBpdGVtIG9mIGxheWVycykge1xuICAgICAgaWYgKCFpdGVtLmNvbmZpZy5iYXNlbWFwKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgY29uc3QgdmlzaWJsZSA9IGl0ZW0uaWQgPT09IGFjdGl2ZUJhc2VtYXBJZDtcbiAgICAgIGl0ZW0ubGF5ZXIuc2V0VmlzaWJsZSh2aXNpYmxlKTtcbiAgICAgIGl0ZW0uY29uZmlnID0geyAuLi5pdGVtLmNvbmZpZywgdmlzaWJsZSB9O1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVDb25maWcoY29uZmlnOiBHZW9NYXBMYXllckNvbmZpZyk6IHZvaWQge1xuICAgIGlmICghY29uZmlnLmlkPy50cmltKCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTGF5ZXIgY29uZmlnIHJlcXVpcmVzIGEgbm9uLWVtcHR5IGlkLicpO1xuICAgIH1cbiAgICBpZiAoY29uZmlnLnR5cGUgPT09ICd4eXonICYmICFjb25maWcudXJsPy50cmltKCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgWFlaIGxheWVyIFwiJHtjb25maWcuaWR9XCIgaXMgbWlzc2luZyB1cmwuYCk7XG4gICAgfVxuICAgIGlmIChjb25maWcudHlwZSA9PT0gJ3dtcycpIHtcbiAgICAgIGlmICghY29uZmlnLnVybD8udHJpbSgpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgV01TIGxheWVyIFwiJHtjb25maWcuaWR9XCIgaXMgbWlzc2luZyB1cmwuYCk7XG4gICAgICB9XG4gICAgICBjb25zdCBsYXllcnNQYXJhbSA9XG4gICAgICAgIGNvbmZpZy5sYXllck5hbWUgPz9cbiAgICAgICAgKGNvbmZpZy5wYXJhbXNbJ0xBWUVSUyddICE9IG51bGwgPyBTdHJpbmcoY29uZmlnLnBhcmFtc1snTEFZRVJTJ10pIDogJycpO1xuICAgICAgaWYgKCFsYXllcnNQYXJhbSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYFdNUyBsYXllciBcIiR7Y29uZmlnLmlkfVwiIG5lZWRzIGxheWVyTmFtZSBvciBwYXJhbXMuTEFZRVJTLmAsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChjb25maWcudHlwZSA9PT0gJ3dtdHMnKSB7XG4gICAgICBpZiAoIWNvbmZpZy51cmw/LnRyaW0oKSB8fCAhY29uZmlnLmxheWVyPy50cmltKCkgfHwgIWNvbmZpZy5tYXRyaXhTZXQ/LnRyaW0oKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYFdNVFMgbGF5ZXIgXCIke2NvbmZpZy5pZH1cIiByZXF1aXJlcyB1cmwsIGxheWVyLCBhbmQgbWF0cml4U2V0LmAsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChjb25maWcudHlwZSA9PT0gJ2dlb2pzb24nICYmIGNvbmZpZy5kYXRhID09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgR2VvSlNPTiBsYXllciBcIiR7Y29uZmlnLmlkfVwiIGlzIG1pc3NpbmcgZGF0YS5gKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFwcGx5Q29tbW9uT3B0aW9ucyhsYXllcjogQmFzZUxheWVyLCBjb25maWc6IEdlb01hcExheWVyQ29uZmlnKTogdm9pZCB7XG4gICAgbGF5ZXIuc2V0KExBWUVSX0lEX0tFWSwgY29uZmlnLmlkKTtcbiAgICBsYXllci5zZXQoTEFZRVJfQkFTRU1BUF9LRVksICEhY29uZmlnLmJhc2VtYXApO1xuICAgIGxheWVyLnNldChMQVlFUl9HUk9VUF9LRVksIGNvbmZpZy5ncm91cCA/PyAnJyk7XG4gICAgbGF5ZXIuc2V0KExBWUVSX1FVRVJZQUJMRV9LRVksICEhY29uZmlnLnF1ZXJ5YWJsZSk7XG4gICAgbGF5ZXIuc2V0VmlzaWJsZShjb25maWcudmlzaWJsZSA/PyB0cnVlKTtcbiAgICBsYXllci5zZXRPcGFjaXR5KGNvbmZpZy5vcGFjaXR5ID8/IDEpO1xuICAgIGlmIChjb25maWcuekluZGV4ICE9IG51bGwpIHtcbiAgICAgIGxheWVyLnNldFpJbmRleChjb25maWcuekluZGV4KTtcbiAgICB9XG4gICAgaWYgKGNvbmZpZy5taW5ab29tICE9IG51bGwpIHtcbiAgICAgIGxheWVyLnNldE1pblpvb20oY29uZmlnLm1pblpvb20pO1xuICAgIH1cbiAgICBpZiAoY29uZmlnLm1heFpvb20gIT0gbnVsbCkge1xuICAgICAgbGF5ZXIuc2V0TWF4Wm9vbShjb25maWcubWF4Wm9vbSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB3aXJlU291cmNlU3RhdHVzKGxheWVySWQ6IHN0cmluZywgbGF5ZXI6IEJhc2VMYXllcik6IHZvaWQge1xuICAgIGlmICghKGxheWVyIGluc3RhbmNlb2YgVGlsZUxheWVyKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBzb3VyY2UgPSBsYXllci5nZXRTb3VyY2UoKTtcbiAgICBpZiAoIXNvdXJjZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHNvdXJjZS5vbigndGlsZWxvYWRlcnJvcicsICgpID0+IHtcbiAgICAgIGNvbnNvbGUud2FybihgW0dlb01hcExheWVyU2VydmljZV0gVGlsZSBlcnJvciBvbiBsYXllciBcIiR7bGF5ZXJJZH1cImApO1xuICAgICAgdGhpcy5ydW50aW1lLnNldChsYXllcklkLCB7XG4gICAgICAgIGlkOiBsYXllcklkLFxuICAgICAgICBzdGF0dXM6ICdlcnJvcicsXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ0tow7RuZyB04bqjaSDEkcaw4bujYyBk4buvIGxp4buHdSBs4bubcCBi4bqjbiDEkeG7ky4nLFxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBzb3VyY2Uub24oJ3RpbGVsb2FkZW5kJywgKCkgPT4ge1xuICAgICAgY29uc3QgY3VycmVudCA9IHRoaXMucnVudGltZS5nZXQobGF5ZXJJZCk7XG4gICAgICBpZiAoY3VycmVudD8uc3RhdHVzID09PSAnZXJyb3InKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMucnVudGltZS5zZXQobGF5ZXJJZCwgeyBpZDogbGF5ZXJJZCwgc3RhdHVzOiAncmVhZHknIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVPc21MYXllcihfY29uZmlnOiBHZW9NYXBPc21MYXllckNvbmZpZyk6IFRpbGVMYXllcjxPU00+IHtcbiAgICByZXR1cm4gbmV3IFRpbGVMYXllcih7XG4gICAgICBzb3VyY2U6IG5ldyBPU00oKSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlWHl6TGF5ZXIoY29uZmlnOiBHZW9NYXBYeXpMYXllckNvbmZpZyk6IFRpbGVMYXllcjxYWVo+IHtcbiAgICByZXR1cm4gbmV3IFRpbGVMYXllcih7XG4gICAgICBzb3VyY2U6IG5ldyBYWVooe1xuICAgICAgICB1cmw6IGNvbmZpZy51cmwsXG4gICAgICAgIGF0dHJpYnV0aW9uczogY29uZmlnLmF0dHJpYnV0aW9ucyxcbiAgICAgICAgbWF4Wm9vbTogY29uZmlnLm1heFpvb20sXG4gICAgICAgIGNyb3NzT3JpZ2luOiBjb25maWcuY3Jvc3NPcmlnaW4gPz8gJ2Fub255bW91cycsXG4gICAgICB9KSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlV21zTGF5ZXIoY29uZmlnOiBHZW9NYXBXbXNMYXllckNvbmZpZyk6IFRpbGVMYXllcjxUaWxlV01TPiB7XG4gICAgY29uc3QgbGF5ZXJzID1cbiAgICAgIGNvbmZpZy5sYXllck5hbWUgPz9cbiAgICAgIChjb25maWcucGFyYW1zWydMQVlFUlMnXSAhPSBudWxsID8gU3RyaW5nKGNvbmZpZy5wYXJhbXNbJ0xBWUVSUyddKSA6ICcnKTtcbiAgICBjb25zdCBwYXJhbXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4+ID0ge1xuICAgICAgLi4uY29uZmlnLnBhcmFtcyxcbiAgICAgIExBWUVSUzogbGF5ZXJzLFxuICAgIH07XG4gICAgcmV0dXJuIG5ldyBUaWxlTGF5ZXIoe1xuICAgICAgc291cmNlOiBuZXcgVGlsZVdNUyh7XG4gICAgICAgIHVybDogY29uZmlnLnVybCxcbiAgICAgICAgcGFyYW1zLFxuICAgICAgICBzZXJ2ZXJUeXBlOiBjb25maWcuc2VydmVyVHlwZSxcbiAgICAgICAgY3Jvc3NPcmlnaW46IGNvbmZpZy5jcm9zc09yaWdpbiA/PyAnYW5vbnltb3VzJyxcbiAgICAgICAgcHJvamVjdGlvbjogY29uZmlnLnByb2plY3Rpb24gYXMgUHJvamVjdGlvbkxpa2UgfCB1bmRlZmluZWQsXG4gICAgICB9KSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlV210c0xheWVyKGNvbmZpZzogR2VvTWFwV210c0xheWVyQ29uZmlnKTogVGlsZUxheWVyPFdNVFM+IHtcbiAgICBjb25zdCBwcm9qZWN0aW9uQ29kZSA9IGNvbmZpZy5wcm9qZWN0aW9uID8/ICdFUFNHOjM4NTcnO1xuICAgIHRoaXMucHJvamVjdGlvbi5lbnN1cmVSZWdpc3RlcmVkKHByb2plY3Rpb25Db2RlKTtcbiAgICBjb25zdCBwcm9qZWN0aW9uID0gZ2V0UHJvamVjdGlvbihwcm9qZWN0aW9uQ29kZSk7XG4gICAgaWYgKCFwcm9qZWN0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFdNVFMgcHJvamVjdGlvbiBcIiR7cHJvamVjdGlvbkNvZGV9XCIgaXMgbm90IGF2YWlsYWJsZS5gKTtcbiAgICB9XG4gICAgY29uc3QgcHJvamVjdGlvbkV4dGVudCA9IHByb2plY3Rpb24uZ2V0RXh0ZW50KCk7XG4gICAgaWYgKCFwcm9qZWN0aW9uRXh0ZW50KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBXTVRTIHByb2plY3Rpb24gXCIke3Byb2plY3Rpb25Db2RlfVwiIGhhcyBubyBleHRlbnQ7IHByb3ZpZGUgYSBjdXN0b20gdGlsZSBncmlkIGluIGEgbGF0ZXIgcGhhc2UuYCxcbiAgICAgICk7XG4gICAgfVxuICAgIGNvbnN0IHNpemUgPSBnZXRXaWR0aChwcm9qZWN0aW9uRXh0ZW50KSAvIDI1NjtcbiAgICBjb25zdCByZXNvbHV0aW9uczogbnVtYmVyW10gPSBbXTtcbiAgICBjb25zdCBtYXRyaXhJZHM6IHN0cmluZ1tdID0gW107XG4gICAgZm9yIChsZXQgeiA9IDA7IHogPCAyMDsgeiArPSAxKSB7XG4gICAgICByZXNvbHV0aW9uc1t6XSA9IHNpemUgLyBNYXRoLnBvdygyLCB6KTtcbiAgICAgIG1hdHJpeElkc1t6XSA9IFN0cmluZyh6KTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IFRpbGVMYXllcih7XG4gICAgICBzb3VyY2U6IG5ldyBXTVRTKHtcbiAgICAgICAgdXJsOiBjb25maWcudXJsLFxuICAgICAgICBsYXllcjogY29uZmlnLmxheWVyLFxuICAgICAgICBtYXRyaXhTZXQ6IGNvbmZpZy5tYXRyaXhTZXQsXG4gICAgICAgIGZvcm1hdDogY29uZmlnLmZvcm1hdCA/PyAnaW1hZ2UvcG5nJyxcbiAgICAgICAgc3R5bGU6IGNvbmZpZy5zdHlsZSA/PyAnJyxcbiAgICAgICAgcHJvamVjdGlvbjogcHJvamVjdGlvbkNvZGUsXG4gICAgICAgIGNyb3NzT3JpZ2luOiBjb25maWcuY3Jvc3NPcmlnaW4gPz8gJ2Fub255bW91cycsXG4gICAgICAgIHRpbGVHcmlkOiBuZXcgV01UU1RpbGVHcmlkKHtcbiAgICAgICAgICBvcmlnaW46IGdldFRvcExlZnQocHJvamVjdGlvbkV4dGVudCksXG4gICAgICAgICAgcmVzb2x1dGlvbnMsXG4gICAgICAgICAgbWF0cml4SWRzLFxuICAgICAgICB9KSxcbiAgICAgIH0pLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVHZW9Kc29uTGF5ZXIoY29uZmlnOiBHZW9NYXBHZW9Kc29uTGF5ZXJDb25maWcpOiBWZWN0b3JMYXllcjxWZWN0b3JTb3VyY2U+IHtcbiAgICBjb25zdCBmb3JtYXQgPSBuZXcgR2VvSlNPTigpO1xuICAgIGNvbnN0IHNvdXJjZSA9IG5ldyBWZWN0b3JTb3VyY2UoKTtcbiAgICBjb25zdCBmZWF0dXJlUHJvamVjdGlvbiA9IGNvbmZpZy5mZWF0dXJlUHJvamVjdGlvbiA/PyAnRVBTRzozODU3JztcbiAgICBjb25zdCBkYXRhUHJvamVjdGlvbiA9IGNvbmZpZy5kYXRhUHJvamVjdGlvbiA/PyAnRVBTRzo0MzI2JztcblxuICAgIGlmICh0eXBlb2YgY29uZmlnLmRhdGEgPT09ICdzdHJpbmcnKSB7XG4gICAgICAvLyBVUkwg4oCUIGxldCBWZWN0b3JTb3VyY2UgbG9hZCBhc3luY2hyb25vdXNseVxuICAgICAgY29uc3QgdXJsU291cmNlID0gbmV3IFZlY3RvclNvdXJjZSh7XG4gICAgICAgIHVybDogY29uZmlnLmRhdGEsXG4gICAgICAgIGZvcm1hdDogbmV3IEdlb0pTT04oe1xuICAgICAgICAgIGRhdGFQcm9qZWN0aW9uLFxuICAgICAgICAgIGZlYXR1cmVQcm9qZWN0aW9uLFxuICAgICAgICB9KSxcbiAgICAgIH0pO1xuICAgICAgdXJsU291cmNlLm9uKCdmZWF0dXJlc2xvYWRlcnJvcicsICgpID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcihgW0dlb01hcExheWVyU2VydmljZV0gR2VvSlNPTiBsb2FkIGVycm9yIFwiJHtjb25maWcuaWR9XCJgKTtcbiAgICAgICAgdGhpcy5ydW50aW1lLnNldChjb25maWcuaWQsIHtcbiAgICAgICAgICBpZDogY29uZmlnLmlkLFxuICAgICAgICAgIHN0YXR1czogJ2Vycm9yJyxcbiAgICAgICAgICBlcnJvck1lc3NhZ2U6ICdLaMO0bmcgdOG6o2kgxJHGsOG7o2MgR2VvSlNPTi4nLFxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIG5ldyBWZWN0b3JMYXllcih7IHNvdXJjZTogdXJsU291cmNlIH0pO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBmZWF0dXJlcyA9IGZvcm1hdC5yZWFkRmVhdHVyZXMoY29uZmlnLmRhdGEsIHtcbiAgICAgICAgZGF0YVByb2plY3Rpb24sXG4gICAgICAgIGZlYXR1cmVQcm9qZWN0aW9uLFxuICAgICAgfSkgYXMgRmVhdHVyZTxHZW9tZXRyeT5bXTtcbiAgICAgIHNvdXJjZS5hZGRGZWF0dXJlcyhmZWF0dXJlcyk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBbR2VvTWFwTGF5ZXJTZXJ2aWNlXSBJbnZhbGlkIEdlb0pTT04gZm9yIFwiJHtjb25maWcuaWR9XCJgLCBlcnIpO1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBHZW9KU09OIGtow7RuZyBo4bujcCBs4buHIGNobyBs4bubcCBcIiR7Y29uZmlnLmlkfVwiLmApO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgVmVjdG9yTGF5ZXIoeyBzb3VyY2UgfSk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVZlY3RvckxheWVyKGNvbmZpZzogR2VvTWFwVmVjdG9yTGF5ZXJDb25maWcpOiBWZWN0b3JMYXllcjxWZWN0b3JTb3VyY2U+IHtcbiAgICBjb25zdCBzb3VyY2UgPSBuZXcgVmVjdG9yU291cmNlKHtcbiAgICAgIGZlYXR1cmVzOiBjb25maWcuZmVhdHVyZXMgPz8gW10sXG4gICAgfSk7XG4gICAgcmV0dXJuIG5ldyBWZWN0b3JMYXllcih7IHNvdXJjZSB9KTtcbiAgfVxufVxuIl19
416
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvLW1hcC1sYXllci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2VvLXVpL3NyYy9saWIvZmlnbWEvZ2VvLW1hcC9zZXJ2aWNlcy9nZW8tbWFwLWxheWVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxPQUFPLE1BQU0sbUJBQW1CLENBQUM7QUFHeEMsT0FBTyxVQUFVLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxTQUFTLE1BQU0sZUFBZSxDQUFDO0FBQ3RDLE9BQU8sV0FBVyxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sR0FBRyxNQUFNLGVBQWUsQ0FBQztBQUNoQyxPQUFPLE9BQU8sTUFBTSxtQkFBbUIsQ0FBQztBQUN4QyxPQUFPLFlBQVksTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLEdBQUcsTUFBTSxlQUFlLENBQUM7QUFFaEMsT0FBTyxJQUFJLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEMsT0FBTyxZQUFZLE1BQU0sa0JBQWtCLENBQUM7QUFDNUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxhQUFhLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDL0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDakQsT0FBTyxFQUFFLEtBQUssSUFBSSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBYWhFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDOztBQUV2RSxNQUFNLFlBQVksR0FBRyxZQUFZLENBQUM7QUFDbEMsTUFBTSxpQkFBaUIsR0FBRyxZQUFZLENBQUM7QUFDdkMsTUFBTSxlQUFlLEdBQUcs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aEIsTUFBTSxJQUFJLEtBQUssQ0FBQyx1QkFBdUIsTUFBTSxDQUFDLEVBQUUsa0NBQWtDLENBQUMsQ0FBQztRQUN0RixDQUFDO1FBQ0QsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLFVBQW9CLEVBQUUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQzthQUN6RixJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ2xFLENBQUMsQ0FBQzthQUNELEtBQUssQ0FBQyxDQUFDLEdBQVksRUFBRSxFQUFFO1lBQ3RCLE9BQU8sQ0FBQyxLQUFLLENBQUMsa0RBQWtELE1BQU0sQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUNuRixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFO2dCQUMxQixFQUFFLEVBQUUsTUFBTSxDQUFDLEVBQUU7Z0JBQ2IsTUFBTSxFQUFFLE9BQU87Z0JBQ2YsWUFBWSxFQUFFLGlDQUFpQzthQUNoRCxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUNMLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzt3R0FqYlUsa0JBQWtCOzRHQUFsQixrQkFBa0I7OzRGQUFsQixrQkFBa0I7a0JBRDlCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCBGZWF0dXJlIGZyb20gJ29sL0ZlYXR1cmUnO1xuaW1wb3J0IEdlb0pTT04gZnJvbSAnb2wvZm9ybWF0L0dlb0pTT04nO1xuaW1wb3J0IHR5cGUgR2VvbWV0cnkgZnJvbSAnb2wvZ2VvbS9HZW9tZXRyeSc7XG5pbXBvcnQgdHlwZSBCYXNlTGF5ZXIgZnJvbSAnb2wvbGF5ZXIvQmFzZSc7XG5pbXBvcnQgTGF5ZXJHcm91cCBmcm9tICdvbC9sYXllci9Hcm91cCc7XG5pbXBvcnQgVGlsZUxheWVyIGZyb20gJ29sL2xheWVyL1RpbGUnO1xuaW1wb3J0IFZlY3RvckxheWVyIGZyb20gJ29sL2xheWVyL1ZlY3Rvcic7XG5pbXBvcnQgT1NNIGZyb20gJ29sL3NvdXJjZS9PU00nO1xuaW1wb3J0IFRpbGVXTVMgZnJvbSAnb2wvc291cmNlL1RpbGVXTVMnO1xuaW1wb3J0IFZlY3RvclNvdXJjZSBmcm9tICdvbC9zb3VyY2UvVmVjdG9yJztcbmltcG9ydCBYWVogZnJvbSAnb2wvc291cmNlL1hZWic7XG5pbXBvcnQgdHlwZSB7IFByb2plY3Rpb25MaWtlIH0gZnJvbSAnb2wvcHJvaic7XG5pbXBvcnQgV01UUyBmcm9tICdvbC9zb3VyY2UvV01UUyc7XG5pbXBvcnQgV01UU1RpbGVHcmlkIGZyb20gJ29sL3RpbGVncmlkL1dNVFMnO1xuaW1wb3J0IHsgZ2V0IGFzIGdldFByb2plY3Rpb24gfSBmcm9tICdvbC9wcm9qJztcbmltcG9ydCB7IGdldFRvcExlZnQsIGdldFdpZHRoIH0gZnJvbSAnb2wvZXh0ZW50JztcbmltcG9ydCB7IGFwcGx5IGFzIGFwcGx5TWFwYm94U3R5bGUgfSBmcm9tICdvbC1tYXBib3gtc3R5bGUnO1xuaW1wb3J0IHsgR0VPX01BUF9CQVNFTUFQX0xBWUVSX0lEIH0gZnJvbSAnLi4vZ2VvLW1hcC5jb25zdGFudHMnO1xuaW1wb3J0IHR5cGUge1xuICBHZW9NYXBCYXNlbWFwSW5wdXQsXG4gIEdlb01hcEdlb0pzb25MYXllckNvbmZpZyxcbiAgR2VvTWFwTGF5ZXJDb25maWcsXG4gIEdlb01hcExheWVyUnVudGltZVN0YXRlLFxuICBHZW9NYXBNYXBib3hTdHlsZUxheWVyQ29uZmlnLFxuICBHZW9NYXBPc21MYXllckNvbmZpZyxcbiAgR2VvTWFwVmVjdG9yTGF5ZXJDb25maWcsXG4gIEdlb01hcFdtc0xheWVyQ29uZmlnLFxuICBHZW9NYXBXbXRzTGF5ZXJDb25maWcsXG4gIEdlb01hcFh5ekxheWVyQ29uZmlnLFxufSBmcm9tICcuLi9nZW8tbWFwLnR5cGVzJztcbmltcG9ydCB7IEdlb01hcFByb2plY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi9nZW8tbWFwLXByb2plY3Rpb24uc2VydmljZSc7XG5cbmNvbnN0IExBWUVSX0lEX0tFWSA9ICdnZW9MYXllcklkJztcbmNvbnN0IExBWUVSX0JBU0VNQVBfS0VZID0gJ2dlb0Jhc2VtYXAnO1xuY29uc3QgTEFZRVJfR1JPVVBfS0VZID0gJ2dlb0dyb3VwJztcbmNvbnN0IExBWUVSX1FVRVJZQUJMRV9LRVkgPSAnZ2VvUXVlcnlhYmxlJztcblxuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVkTWFwTGF5ZXIge1xuICBpZDogc3RyaW5nO1xuICBjb25maWc6IEdlb01hcExheWVyQ29uZmlnO1xuICBsYXllcjogQmFzZUxheWVyO1xufVxuXG4vKipcbiAqIEJ1aWxkcyBhbmQgaW5jcmVtZW50YWxseSBwYXRjaGVzIE9wZW5MYXllcnMgbGF5ZXJzIGZyb20gdHlwZWQgY29uZmlncy5cbiAqIFZpc2liaWxpdHkgLyBvcGFjaXR5IHVwZGF0ZXMgbXVzdCBub3QgcmVjcmVhdGUgc291cmNlcy5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEdlb01hcExheWVyU2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgcHJvamVjdGlvbiA9IGluamVjdChHZW9NYXBQcm9qZWN0aW9uU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgcnVudGltZSA9IG5ldyBNYXA8c3RyaW5nLCBHZW9NYXBMYXllclJ1bnRpbWVTdGF0ZT4oKTtcblxuICBnZXRSdW50aW1lU3RhdGUobGF5ZXJJZDogc3RyaW5nKTogR2VvTWFwTGF5ZXJSdW50aW1lU3RhdGUgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnJ1bnRpbWUuZ2V0KGxheWVySWQpO1xuICB9XG5cbiAgZ2V0QWxsUnVudGltZVN0YXRlcygpOiBHZW9NYXBMYXllclJ1bnRpbWVTdGF0ZVtdIHtcbiAgICByZXR1cm4gWy4uLnRoaXMucnVudGltZS52YWx1ZXMoKV07XG4gIH1cblxuICBjcmVhdGVGcm9tQmFzZW1hcElucHV0KGJhc2VtYXA6IEdlb01hcEJhc2VtYXBJbnB1dCk6IENyZWF0ZWRNYXBMYXllciB7XG4gICAgaWYgKGJhc2VtYXAgPT09ICdvc20nKSB7XG4gICAgICBjb25zdCBjb25maWc6IEdlb01hcE9zbUxheWVyQ29uZmlnID0ge1xuICAgICAgICBpZDogR0VPX01BUF9CQVNFTUFQX0xBWUVSX0lELFxuICAgICAgICB0aXRsZTogJ09wZW5TdHJlZXRNYXAnLFxuICAgICAgICB0eXBlOiAnb3NtJyxcbiAgICAgICAgdmlzaWJsZTogdHJ1ZSxcbiAgICAgICAgb3BhY2l0eTogMSxcbiAgICAgICAgekluZGV4OiAwLFxuICAgICAgICBiYXNlbWFwOiB0cnVlLFxuICAgICAgICBncm91cDogJ2Jhc2UtbWFwJyxcbiAgICAgIH07XG4gICAgICByZXR1cm4gdGhpcy5jcmVhdGVMYXllcihjb25maWcpO1xuICAgIH1cblxuICAgIGlmIChiYXNlbWFwLnR5cGUgPT09ICdtYXBib3gtc3R5bGUnKSB7XG4gICAgICBjb25zdCBjb25maWc6IEdlb01hcE1hcGJveFN0eWxlTGF5ZXJDb25maWcgPSB7XG4gICAgICAgIGlkOiBHRU9fTUFQX0JBU0VNQVBfTEFZRVJfSUQsXG4gICAgICAgIHRpdGxlOiBiYXNlbWFwLnRpdGxlID8/ICdNYXBib3ggc3R5bGUgYmFzZW1hcCcsXG4gICAgICAgIHR5cGU6ICdtYXBib3gtc3R5bGUnLFxuICAgICAgICBzdHlsZUpzb246IGJhc2VtYXAuc3R5bGVKc29uLFxuICAgICAgICBzdHlsZVVybDogYmFzZW1hcC5zdHlsZVVybCxcbiAgICAgICAgdHJhbnNmb3JtUmVxdWVzdDogYmFzZW1hcC50cmFuc2Zvcm1SZXF1ZXN0LFxuICAgICAgICB2aXNpYmxlOiB0cnVlLFxuICAgICAgICBvcGFjaXR5OiAxLFxuICAgICAgICB6SW5kZXg6IDAsXG4gICAgICAgIGJhc2VtYXA6IHRydWUsXG4gICAgICAgIGdyb3VwOiAnYmFzZS1tYXAnLFxuICAgICAgfTtcbiAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUxheWVyKGNvbmZpZyk7XG4gICAgfVxuXG4gICAgY29uc3QgY29uZmlnOiBHZW9NYXBYeXpMYXllckNvbmZpZyA9IHtcbiAgICAgIGlkOiBHRU9fTUFQX0JBU0VNQVBfTEFZRVJfSUQsXG4gICAgICB0aXRsZTogYmFzZW1hcC50aXRsZSA/PyAnWFlaIGJhc2VtYXAnLFxuICAgICAgdHlwZTogJ3h5eicsXG4gICAgICB1cmw6IGJhc2VtYXAudXJsLFxuICAgICAgYXR0cmlidXRpb25zOiBiYXNlbWFwLmF0dHJpYnV0aW9ucyxcbiAgICAgIG1heFpvb206IGJhc2VtYXAubWF4Wm9vbSxcbiAgICAgIHZpc2libGU6IHRydWUsXG4gICAgICBvcGFjaXR5OiAxLFxuICAgICAgekluZGV4OiAwLFxuICAgICAgYmFzZW1hcDogdHJ1ZSxcbiAgICAgIGdyb3VwOiAnYmFzZS1tYXAnLFxuICAgIH07XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlTGF5ZXIoY29uZmlnKTtcbiAgfVxuXG4gIGNyZWF0ZUxheWVyKGNvbmZpZzogR2VvTWFwTGF5ZXJDb25maWcpOiBDcmVhdGVkTWFwTGF5ZXIge1xuICAgIHRoaXMucnVudGltZS5zZXQoY29uZmlnLmlkLCB7IGlkOiBjb25maWcuaWQsIHN0YXR1czogJ2xvYWRpbmcnIH0pO1xuXG4gICAgbGV0IGxheWVyOiBCYXNlTGF5ZXI7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMudmFsaWRhdGVDb25maWcoY29uZmlnKTtcbiAgICAgIHN3aXRjaCAoY29uZmlnLnR5cGUpIHtcbiAgICAgICAgY2FzZSAnb3NtJzpcbiAgICAgICAgICBsYXllciA9IHRoaXMuY3JlYXRlT3NtTGF5ZXIoY29uZmlnKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAneHl6JzpcbiAgICAgICAgICBsYXllciA9IHRoaXMuY3JlYXRlWHl6TGF5ZXIoY29uZmlnKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnd21zJzpcbiAgICAgICAgICBsYXllciA9IHRoaXMuY3JlYXRlV21zTGF5ZXIoY29uZmlnKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnd210cyc6XG4gICAgICAgICAgbGF5ZXIgPSB0aGlzLmNyZWF0ZVdtdHNMYXllcihjb25maWcpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdnZW9qc29uJzpcbiAgICAgICAgICBsYXllciA9IHRoaXMuY3JlYXRlR2VvSnNvbkxheWVyKGNvbmZpZyk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3ZlY3Rvcic6XG4gICAgICAgICAgbGF5ZXIgPSB0aGlzLmNyZWF0ZVZlY3RvckxheWVyKGNvbmZpZyk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ21hcGJveC1zdHlsZSc6XG4gICAgICAgICAgbGF5ZXIgPSB0aGlzLmNyZWF0ZU1hcGJveFN0eWxlTGF5ZXIoY29uZmlnKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgIGNvbnN0IF9leGhhdXN0aXZlOiBuZXZlciA9IGNvbmZpZztcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIGxheWVyIHR5cGU6ICR7SlNPTi5zdHJpbmdpZnkoX2V4aGF1c3RpdmUpfWApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aGlzLmFwcGx5Q29tbW9uT3B0aW9ucyhsYXllciwgY29uZmlnKTtcbiAgICAgIHRoaXMud2lyZVNvdXJjZVN0YXR1cyhjb25maWcuaWQsIGxheWVyKTtcbiAgICAgIHRoaXMucnVudGltZS5zZXQoY29uZmlnLmlkLCB7IGlkOiBjb25maWcuaWQsIHN0YXR1czogJ3JlYWR5JyB9KTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBlcnIgaW5zdGFuY2VvZiBFcnJvciA/IGVyci5tZXNzYWdlIDogU3RyaW5nKGVycik7XG4gICAgICBjb25zb2xlLmVycm9yKGBbR2VvTWFwTGF5ZXJTZXJ2aWNlXSBGYWlsZWQgdG8gY3JlYXRlIGxheWVyIFwiJHtjb25maWcuaWR9XCJgLCBlcnIpO1xuICAgICAgdGhpcy5ydW50aW1lLnNldChjb25maWcuaWQsIHtcbiAgICAgICAgaWQ6IGNvbmZpZy5pZCxcbiAgICAgICAgc3RhdHVzOiAnZXJyb3InLFxuICAgICAgICBlcnJvck1lc3NhZ2U6IG1lc3NhZ2UsXG4gICAgICB9KTtcbiAgICAgIC8vIFBsYWNlaG9sZGVyIGludmlzaWJsZSBsYXllciBzbyBjYWxsZXJzIGNhbiBzdGlsbCB0cmFjayBpZFxuICAgICAgbGF5ZXIgPSBuZXcgVmVjdG9yTGF5ZXIoe1xuICAgICAgICBzb3VyY2U6IG5ldyBWZWN0b3JTb3VyY2UoKSxcbiAgICAgICAgdmlzaWJsZTogZmFsc2UsXG4gICAgICB9KTtcbiAgICAgIHRoaXMuYXBwbHlDb21tb25PcHRpb25zKGxheWVyLCB7IC4uLmNvbmZpZywgdmlzaWJsZTogZmFsc2UgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgaWQ6IGNvbmZpZy5pZCwgY29uZmlnLCBsYXllciB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEFwcGx5IHZpc2liaWxpdHkvb3BhY2l0eS96SW5kZXggd2l0aG91dCByZWNyZWF0aW5nIHRoZSBPTCBsYXllci5cbiAgICogUmV0dXJucyB0cnVlIHdoZW4gc3RydWN0dXJhbCBmaWVsZHMgY2hhbmdlZCBhbmQgdGhlIGxheWVyIHNob3VsZCBiZSByZWNyZWF0ZWQuXG4gICAqL1xuICBuZWVkc1JlY3JlYXRlKHByZXZpb3VzOiBHZW9NYXBMYXllckNvbmZpZywgbmV4dDogR2VvTWFwTGF5ZXJDb25maWcpOiBib29sZWFuIHtcbiAgICBpZiAocHJldmlvdXMudHlwZSAhPT0gbmV4dC50eXBlIHx8IHByZXZpb3VzLmlkICE9PSBuZXh0LmlkKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgc3dpdGNoIChuZXh0LnR5cGUpIHtcbiAgICAgIGNhc2UgJ29zbSc6XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIGNhc2UgJ3h5eic6XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgKHByZXZpb3VzIGFzIEdlb01hcFh5ekxheWVyQ29uZmlnKS51cmwgIT09IG5leHQudXJsIHx8XG4gICAgICAgICAgKHByZXZpb3VzIGFzIEdlb01hcFh5ekxheWVyQ29uZmlnKS5tYXhab29tICE9PSBuZXh0Lm1heFpvb21cbiAgICAgICAgKTtcbiAgICAgIGNhc2UgJ3dtcyc6XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgKHByZXZpb3VzIGFzIEdlb01hcFdtc0xheWVyQ29uZmlnKS51cmwgIT09IG5leHQudXJsIHx8XG4gICAgICAgICAgSlNPTi5zdHJpbmdpZnkoKHByZXZpb3VzIGFzIEdlb01hcFdtc0xheWVyQ29uZmlnKS5wYXJhbXMpICE9PVxuICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkobmV4dC5wYXJhbXMpIHx8XG4gICAgICAgICAgKHByZXZpb3VzIGFzIEdlb01hcFdtc0xheWVyQ29uZmlnKS5sYXllck5hbWUgIT09IG5leHQubGF5ZXJOYW1lXG4gICAgICAgICk7XG4gICAgICBjYXNlICd3bXRzJzpcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAocHJldmlvdXMgYXMgR2VvTWFwV210c0xheWVyQ29uZmlnKS51cmwgIT09IG5leHQudXJsIHx8XG4gICAgICAgICAgKHByZXZpb3VzIGFzIEdlb01hcFdtdHNMYXllckNvbmZpZykubGF5ZXIgIT09IG5leHQubGF5ZXIgfHxcbiAgICAgICAgICAocHJldmlvdXMgYXMgR2VvTWFwV210c0xheWVyQ29uZmlnKS5tYXRyaXhTZXQgIT09IG5leHQubWF0cml4U2V0XG4gICAgICAgICk7XG4gICAgICBjYXNlICdnZW9qc29uJzpcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICBKU09OLnN0cmluZ2lmeSgocHJldmlvdXMgYXMgR2VvTWFwR2VvSnNvbkxheWVyQ29uZmlnKS5kYXRhKSAhPT1cbiAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KG5leHQuZGF0YSkgfHxcbiAgICAgICAgICAocHJldmlvdXMgYXMgR2VvTWFwR2VvSnNvbkxheWVyQ29uZmlnKS5kYXRhUHJvamVjdGlvbiAhPT0gbmV4dC5kYXRhUHJvamVjdGlvblxuICAgICAgICApO1xuICAgICAgY2FzZSAndmVjdG9yJzpcbiAgICAgICAgcmV0dXJuIChwcmV2aW91cyBhcyBHZW9NYXBWZWN0b3JMYXllckNvbmZpZykuZmVhdHVyZXMgIT09IG5leHQuZmVhdHVyZXM7XG4gICAgICBjYXNlICdtYXBib3gtc3R5bGUnOlxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIChwcmV2aW91cyBhcyBHZW9NYXBNYXBib3hTdHlsZUxheWVyQ29uZmlnKS5zdHlsZVVybCAhPT0gbmV4dC5zdHlsZVVybCB8fFxuICAgICAgICAgIEpTT04uc3RyaW5naWZ5KChwcmV2aW91cyBhcyBHZW9NYXBNYXBib3hTdHlsZUxheWVyQ29uZmlnKS5zdHlsZUpzb24pICE9PVxuICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkobmV4dC5zdHlsZUpzb24pXG4gICAgICAgICk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBwYXRjaExheWVyKGxheWVyOiBCYXNlTGF5ZXIsIGNvbmZpZzogR2VvTWFwTGF5ZXJDb25maWcpOiB2b2lkIHtcbiAgICBsYXllci5zZXRWaXNpYmxlKGNvbmZpZy52aXNpYmxlID8/IHRydWUpO1xuICAgIGxheWVyLnNldE9wYWNpdHkoY29uZmlnLm9wYWNpdHkgPz8gMSk7XG4gICAgaWYgKGNvbmZpZy56SW5kZXggIT0gbnVsbCkge1xuICAgICAgbGF5ZXIuc2V0WkluZGV4KGNvbmZpZy56SW5kZXgpO1xuICAgIH1cbiAgICBpZiAoY29uZmlnLm1pblpvb20gIT0gbnVsbCkge1xuICAgICAgbGF5ZXIuc2V0TWluWm9vbShjb25maWcubWluWm9vbSk7XG4gICAgfVxuICAgIGlmIChjb25maWcubWF4Wm9vbSAhPSBudWxsKSB7XG4gICAgICBsYXllci5zZXRNYXhab29tKGNvbmZpZy5tYXhab29tKTtcbiAgICB9XG4gICAgbGF5ZXIuc2V0KExBWUVSX0JBU0VNQVBfS0VZLCAhIWNvbmZpZy5iYXNlbWFwKTtcbiAgICBsYXllci5zZXQoTEFZRVJfR1JPVVBfS0VZLCBjb25maWcuZ3JvdXAgPz8gJycpO1xuICAgIGxheWVyLnNldChMQVlFUl9RVUVSWUFCTEVfS0VZLCAhIWNvbmZpZy5xdWVyeWFibGUpO1xuICB9XG5cbiAgc2V0VmlzaWJsZShsYXllcjogQmFzZUxheWVyLCB2aXNpYmxlOiBib29sZWFuKTogdm9pZCB7XG4gICAgbGF5ZXIuc2V0VmlzaWJsZSh2aXNpYmxlKTtcbiAgfVxuXG4gIHNldE9wYWNpdHkobGF5ZXI6IEJhc2VMYXllciwgb3BhY2l0eTogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgY2xhbXBlZCA9IE1hdGgubWluKDEsIE1hdGgubWF4KDAsIG9wYWNpdHkpKTtcbiAgICBsYXllci5zZXRPcGFjaXR5KGNsYW1wZWQpO1xuICB9XG5cbiAgZ2V0TGF5ZXJJZChsYXllcjogQmFzZUxheWVyKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBpZCA9IGxheWVyLmdldChMQVlFUl9JRF9LRVkpO1xuICAgIHJldHVybiB0eXBlb2YgaWQgPT09ICdzdHJpbmcnID8gaWQgOiB1bmRlZmluZWQ7XG4gIH1cblxuICBpc0Jhc2VtYXAobGF5ZXI6IEJhc2VMYXllcik6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIWxheWVyLmdldChMQVlFUl9CQVNFTUFQX0tFWSk7XG4gIH1cblxuICByZXNvbHZlQmFzZW1hcEV4Y2x1c2l2ZShcbiAgICBsYXllcnM6IENyZWF0ZWRNYXBMYXllcltdLFxuICAgIGFjdGl2ZUJhc2VtYXBJZDogc3RyaW5nLFxuICApOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgbGF5ZXJzKSB7XG4gICAgICBpZiAoIWl0ZW0uY29uZmlnLmJhc2VtYXApIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBjb25zdCB2aXNpYmxlID0gaXRlbS5pZCA9PT0gYWN0aXZlQmFzZW1hcElkO1xuICAgICAgaXRlbS5sYXllci5zZXRWaXNpYmxlKHZpc2libGUpO1xuICAgICAgaXRlbS5jb25maWcgPSB7IC4uLml0ZW0uY29uZmlnLCB2aXNpYmxlIH07XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZUNvbmZpZyhjb25maWc6IEdlb01hcExheWVyQ29uZmlnKTogdm9pZCB7XG4gICAgaWYgKCFjb25maWcuaWQ/LnRyaW0oKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdMYXllciBjb25maWcgcmVxdWlyZXMgYSBub24tZW1wdHkgaWQuJyk7XG4gICAgfVxuICAgIGlmIChjb25maWcudHlwZSA9PT0gJ3h5eicgJiYgIWNvbmZpZy51cmw/LnRyaW0oKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBYWVogbGF5ZXIgXCIke2NvbmZpZy5pZH1cIiBpcyBtaXNzaW5nIHVybC5gKTtcbiAgICB9XG4gICAgaWYgKGNvbmZpZy50eXBlID09PSAnd21zJykge1xuICAgICAgaWYgKCFjb25maWcudXJsPy50cmltKCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBXTVMgbGF5ZXIgXCIke2NvbmZpZy5pZH1cIiBpcyBtaXNzaW5nIHVybC5gKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGxheWVyc1BhcmFtID1cbiAgICAgICAgY29uZmlnLmxheWVyTmFtZSA/P1xuICAgICAgICAoY29uZmlnLnBhcmFtc1snTEFZRVJTJ10gIT0gbnVsbCA/IFN0cmluZyhjb25maWcucGFyYW1zWydMQVlFUlMnXSkgOiAnJyk7XG4gICAgICBpZiAoIWxheWVyc1BhcmFtKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgV01TIGxheWVyIFwiJHtjb25maWcuaWR9XCIgbmVlZHMgbGF5ZXJOYW1lIG9yIHBhcmFtcy5MQVlFUlMuYCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGNvbmZpZy50eXBlID09PSAnd210cycpIHtcbiAgICAgIGlmICghY29uZmlnLnVybD8udHJpbSgpIHx8ICFjb25maWcubGF5ZXI/LnRyaW0oKSB8fCAhY29uZmlnLm1hdHJpeFNldD8udHJpbSgpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgV01UUyBsYXllciBcIiR7Y29uZmlnLmlkfVwiIHJlcXVpcmVzIHVybCwgbGF5ZXIsIGFuZCBtYXRyaXhTZXQuYCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGNvbmZpZy50eXBlID09PSAnZ2VvanNvbicgJiYgY29uZmlnLmRhdGEgPT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBHZW9KU09OIGxheWVyIFwiJHtjb25maWcuaWR9XCIgaXMgbWlzc2luZyBkYXRhLmApO1xuICAgIH1cbiAgICBpZiAoY29uZmlnLnR5cGUgPT09ICdtYXBib3gtc3R5bGUnICYmICFjb25maWcuc3R5bGVKc29uICYmICFjb25maWcuc3R5bGVVcmw/LnRyaW0oKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBNYXBib3gtc3R5bGUgbGF5ZXIgXCIke2NvbmZpZy5pZH1cIiByZXF1aXJlcyBzdHlsZUpzb24gb3Igc3R5bGVVcmwuYCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhcHBseUNvbW1vbk9wdGlvbnMobGF5ZXI6IEJhc2VMYXllciwgY29uZmlnOiBHZW9NYXBMYXllckNvbmZpZyk6IHZvaWQge1xuICAgIGxheWVyLnNldChMQVlFUl9JRF9LRVksIGNvbmZpZy5pZCk7XG4gICAgbGF5ZXIuc2V0KExBWUVSX0JBU0VNQVBfS0VZLCAhIWNvbmZpZy5iYXNlbWFwKTtcbiAgICBsYXllci5zZXQoTEFZRVJfR1JPVVBfS0VZLCBjb25maWcuZ3JvdXAgPz8gJycpO1xuICAgIGxheWVyLnNldChMQVlFUl9RVUVSWUFCTEVfS0VZLCAhIWNvbmZpZy5xdWVyeWFibGUpO1xuICAgIGxheWVyLnNldFZpc2libGUoY29uZmlnLnZpc2libGUgPz8gdHJ1ZSk7XG4gICAgbGF5ZXIuc2V0T3BhY2l0eShjb25maWcub3BhY2l0eSA/PyAxKTtcbiAgICBpZiAoY29uZmlnLnpJbmRleCAhPSBudWxsKSB7XG4gICAgICBsYXllci5zZXRaSW5kZXgoY29uZmlnLnpJbmRleCk7XG4gICAgfVxuICAgIGlmIChjb25maWcubWluWm9vbSAhPSBudWxsKSB7XG4gICAgICBsYXllci5zZXRNaW5ab29tKGNvbmZpZy5taW5ab29tKTtcbiAgICB9XG4gICAgaWYgKGNvbmZpZy5tYXhab29tICE9IG51bGwpIHtcbiAgICAgIGxheWVyLnNldE1heFpvb20oY29uZmlnLm1heFpvb20pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgd2lyZVNvdXJjZVN0YXR1cyhsYXllcklkOiBzdHJpbmcsIGxheWVyOiBCYXNlTGF5ZXIpOiB2b2lkIHtcbiAgICBpZiAoIShsYXllciBpbnN0YW5jZW9mIFRpbGVMYXllcikpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3Qgc291cmNlID0gbGF5ZXIuZ2V0U291cmNlKCk7XG4gICAgaWYgKCFzb3VyY2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzb3VyY2Uub24oJ3RpbGVsb2FkZXJyb3InLCAoKSA9PiB7XG4gICAgICBjb25zb2xlLndhcm4oYFtHZW9NYXBMYXllclNlcnZpY2VdIFRpbGUgZXJyb3Igb24gbGF5ZXIgXCIke2xheWVySWR9XCJgKTtcbiAgICAgIHRoaXMucnVudGltZS5zZXQobGF5ZXJJZCwge1xuICAgICAgICBpZDogbGF5ZXJJZCxcbiAgICAgICAgc3RhdHVzOiAnZXJyb3InLFxuICAgICAgICBlcnJvck1lc3NhZ2U6ICdLaMO0bmcgdOG6o2kgxJHGsOG7o2MgZOG7ryBsaeG7h3UgbOG7m3AgYuG6o24gxJHhu5MuJyxcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgc291cmNlLm9uKCd0aWxlbG9hZGVuZCcsICgpID0+IHtcbiAgICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLnJ1bnRpbWUuZ2V0KGxheWVySWQpO1xuICAgICAgaWYgKGN1cnJlbnQ/LnN0YXR1cyA9PT0gJ2Vycm9yJykge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLnJ1bnRpbWUuc2V0KGxheWVySWQsIHsgaWQ6IGxheWVySWQsIHN0YXR1czogJ3JlYWR5JyB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlT3NtTGF5ZXIoX2NvbmZpZzogR2VvTWFwT3NtTGF5ZXJDb25maWcpOiBUaWxlTGF5ZXI8T1NNPiB7XG4gICAgcmV0dXJuIG5ldyBUaWxlTGF5ZXIoe1xuICAgICAgc291cmNlOiBuZXcgT1NNKCksXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVh5ekxheWVyKGNvbmZpZzogR2VvTWFwWHl6TGF5ZXJDb25maWcpOiBUaWxlTGF5ZXI8WFlaPiB7XG4gICAgcmV0dXJuIG5ldyBUaWxlTGF5ZXIoe1xuICAgICAgc291cmNlOiBuZXcgWFlaKHtcbiAgICAgICAgdXJsOiBjb25maWcudXJsLFxuICAgICAgICBhdHRyaWJ1dGlvbnM6IGNvbmZpZy5hdHRyaWJ1dGlvbnMsXG4gICAgICAgIG1heFpvb206IGNvbmZpZy5tYXhab29tLFxuICAgICAgICBjcm9zc09yaWdpbjogY29uZmlnLmNyb3NzT3JpZ2luID8/ICdhbm9ueW1vdXMnLFxuICAgICAgfSksXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVdtc0xheWVyKGNvbmZpZzogR2VvTWFwV21zTGF5ZXJDb25maWcpOiBUaWxlTGF5ZXI8VGlsZVdNUz4ge1xuICAgIGNvbnN0IGxheWVycyA9XG4gICAgICBjb25maWcubGF5ZXJOYW1lID8/XG4gICAgICAoY29uZmlnLnBhcmFtc1snTEFZRVJTJ10gIT0gbnVsbCA/IFN0cmluZyhjb25maWcucGFyYW1zWydMQVlFUlMnXSkgOiAnJyk7XG4gICAgY29uc3QgcGFyYW1zOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuPiA9IHtcbiAgICAgIC4uLmNvbmZpZy5wYXJhbXMsXG4gICAgICBMQVlFUlM6IGxheWVycyxcbiAgICB9O1xuICAgIHJldHVybiBuZXcgVGlsZUxheWVyKHtcbiAgICAgIHNvdXJjZTogbmV3IFRpbGVXTVMoe1xuICAgICAgICB1cmw6IGNvbmZpZy51cmwsXG4gICAgICAgIHBhcmFtcyxcbiAgICAgICAgc2VydmVyVHlwZTogY29uZmlnLnNlcnZlclR5cGUsXG4gICAgICAgIGNyb3NzT3JpZ2luOiBjb25maWcuY3Jvc3NPcmlnaW4gPz8gJ2Fub255bW91cycsXG4gICAgICAgIHByb2plY3Rpb246IGNvbmZpZy5wcm9qZWN0aW9uIGFzIFByb2plY3Rpb25MaWtlIHwgdW5kZWZpbmVkLFxuICAgICAgfSksXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVdtdHNMYXllcihjb25maWc6IEdlb01hcFdtdHNMYXllckNvbmZpZyk6IFRpbGVMYXllcjxXTVRTPiB7XG4gICAgY29uc3QgcHJvamVjdGlvbkNvZGUgPSBjb25maWcucHJvamVjdGlvbiA/PyAnRVBTRzozODU3JztcbiAgICB0aGlzLnByb2plY3Rpb24uZW5zdXJlUmVnaXN0ZXJlZChwcm9qZWN0aW9uQ29kZSk7XG4gICAgY29uc3QgcHJvamVjdGlvbiA9IGdldFByb2plY3Rpb24ocHJvamVjdGlvbkNvZGUpO1xuICAgIGlmICghcHJvamVjdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBXTVRTIHByb2plY3Rpb24gXCIke3Byb2plY3Rpb25Db2RlfVwiIGlzIG5vdCBhdmFpbGFibGUuYCk7XG4gICAgfVxuICAgIGNvbnN0IHByb2plY3Rpb25FeHRlbnQgPSBwcm9qZWN0aW9uLmdldEV4dGVudCgpO1xuICAgIGlmICghcHJvamVjdGlvbkV4dGVudCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgV01UUyBwcm9qZWN0aW9uIFwiJHtwcm9qZWN0aW9uQ29kZX1cIiBoYXMgbm8gZXh0ZW50OyBwcm92aWRlIGEgY3VzdG9tIHRpbGUgZ3JpZCBpbiBhIGxhdGVyIHBoYXNlLmAsXG4gICAgICApO1xuICAgIH1cbiAgICBjb25zdCBzaXplID0gZ2V0V2lkdGgocHJvamVjdGlvbkV4dGVudCkgLyAyNTY7XG4gICAgY29uc3QgcmVzb2x1dGlvbnM6IG51bWJlcltdID0gW107XG4gICAgY29uc3QgbWF0cml4SWRzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGZvciAobGV0IHogPSAwOyB6IDwgMjA7IHogKz0gMSkge1xuICAgICAgcmVzb2x1dGlvbnNbel0gPSBzaXplIC8gTWF0aC5wb3coMiwgeik7XG4gICAgICBtYXRyaXhJZHNbel0gPSBTdHJpbmcoeik7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBUaWxlTGF5ZXIoe1xuICAgICAgc291cmNlOiBuZXcgV01UUyh7XG4gICAgICAgIHVybDogY29uZmlnLnVybCxcbiAgICAgICAgbGF5ZXI6IGNvbmZpZy5sYXllcixcbiAgICAgICAgbWF0cml4U2V0OiBjb25maWcubWF0cml4U2V0LFxuICAgICAgICBmb3JtYXQ6IGNvbmZpZy5mb3JtYXQgPz8gJ2ltYWdlL3BuZycsXG4gICAgICAgIHN0eWxlOiBjb25maWcuc3R5bGUgPz8gJycsXG4gICAgICAgIHByb2plY3Rpb246IHByb2plY3Rpb25Db2RlLFxuICAgICAgICBjcm9zc09yaWdpbjogY29uZmlnLmNyb3NzT3JpZ2luID8/ICdhbm9ueW1vdXMnLFxuICAgICAgICB0aWxlR3JpZDogbmV3IFdNVFNUaWxlR3JpZCh7XG4gICAgICAgICAgb3JpZ2luOiBnZXRUb3BMZWZ0KHByb2plY3Rpb25FeHRlbnQpLFxuICAgICAgICAgIHJlc29sdXRpb25zLFxuICAgICAgICAgIG1hdHJpeElkcyxcbiAgICAgICAgfSksXG4gICAgICB9KSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlR2VvSnNvbkxheWVyKGNvbmZpZzogR2VvTWFwR2VvSnNvbkxheWVyQ29uZmlnKTogVmVjdG9yTGF5ZXI8VmVjdG9yU291cmNlPiB7XG4gICAgY29uc3QgZm9ybWF0ID0gbmV3IEdlb0pTT04oKTtcbiAgICBjb25zdCBzb3VyY2UgPSBuZXcgVmVjdG9yU291cmNlKCk7XG4gICAgY29uc3QgZmVhdHVyZVByb2plY3Rpb24gPSBjb25maWcuZmVhdHVyZVByb2plY3Rpb24gPz8gJ0VQU0c6Mzg1Nyc7XG4gICAgY29uc3QgZGF0YVByb2plY3Rpb24gPSBjb25maWcuZGF0YVByb2plY3Rpb24gPz8gJ0VQU0c6NDMyNic7XG5cbiAgICBpZiAodHlwZW9mIGNvbmZpZy5kYXRhID09PSAnc3RyaW5nJykge1xuICAgICAgLy8gVVJMIOKAlCBsZXQgVmVjdG9yU291cmNlIGxvYWQgYXN5bmNocm9ub3VzbHlcbiAgICAgIGNvbnN0IHVybFNvdXJjZSA9IG5ldyBWZWN0b3JTb3VyY2Uoe1xuICAgICAgICB1cmw6IGNvbmZpZy5kYXRhLFxuICAgICAgICBmb3JtYXQ6IG5ldyBHZW9KU09OKHtcbiAgICAgICAgICBkYXRhUHJvamVjdGlvbixcbiAgICAgICAgICBmZWF0dXJlUHJvamVjdGlvbixcbiAgICAgICAgfSksXG4gICAgICB9KTtcbiAgICAgIHVybFNvdXJjZS5vbignZmVhdHVyZXNsb2FkZXJyb3InLCAoKSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYFtHZW9NYXBMYXllclNlcnZpY2VdIEdlb0pTT04gbG9hZCBlcnJvciBcIiR7Y29uZmlnLmlkfVwiYCk7XG4gICAgICAgIHRoaXMucnVudGltZS5zZXQoY29uZmlnLmlkLCB7XG4gICAgICAgICAgaWQ6IGNvbmZpZy5pZCxcbiAgICAgICAgICBzdGF0dXM6ICdlcnJvcicsXG4gICAgICAgICAgZXJyb3JNZXNzYWdlOiAnS2jDtG5nIHThuqNpIMSRxrDhu6NjIEdlb0pTT04uJyxcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBuZXcgVmVjdG9yTGF5ZXIoeyBzb3VyY2U6IHVybFNvdXJjZSB9KTtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgZmVhdHVyZXMgPSBmb3JtYXQucmVhZEZlYXR1cmVzKGNvbmZpZy5kYXRhLCB7XG4gICAgICAgIGRhdGFQcm9qZWN0aW9uLFxuICAgICAgICBmZWF0dXJlUHJvamVjdGlvbixcbiAgICAgIH0pIGFzIEZlYXR1cmU8R2VvbWV0cnk+W107XG4gICAgICBzb3VyY2UuYWRkRmVhdHVyZXMoZmVhdHVyZXMpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgY29uc29sZS5lcnJvcihgW0dlb01hcExheWVyU2VydmljZV0gSW52YWxpZCBHZW9KU09OIGZvciBcIiR7Y29uZmlnLmlkfVwiYCwgZXJyKTtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgR2VvSlNPTiBraMO0bmcgaOG7o3AgbOG7hyBjaG8gbOG7m3AgXCIke2NvbmZpZy5pZH1cIi5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IFZlY3RvckxheWVyKHsgc291cmNlIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVWZWN0b3JMYXllcihjb25maWc6IEdlb01hcFZlY3RvckxheWVyQ29uZmlnKTogVmVjdG9yTGF5ZXI8VmVjdG9yU291cmNlPiB7XG4gICAgY29uc3Qgc291cmNlID0gbmV3IFZlY3RvclNvdXJjZSh7XG4gICAgICBmZWF0dXJlczogY29uZmlnLmZlYXR1cmVzID8/IFtdLFxuICAgIH0pO1xuICAgIHJldHVybiBuZXcgVmVjdG9yTGF5ZXIoeyBzb3VyY2UgfSk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZU1hcGJveFN0eWxlTGF5ZXIoY29uZmlnOiBHZW9NYXBNYXBib3hTdHlsZUxheWVyQ29uZmlnKTogTGF5ZXJHcm91cCB7XG4gICAgY29uc3QgZ3JvdXAgPSBuZXcgTGF5ZXJHcm91cCh7IGxheWVyczogW10gfSk7XG4gICAgY29uc3Qgc3R5bGVJbnB1dCA9IGNvbmZpZy5zdHlsZUpzb24gPz8gY29uZmlnLnN0eWxlVXJsO1xuICAgIGlmICghc3R5bGVJbnB1dCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBNYXBib3gtc3R5bGUgbGF5ZXIgXCIke2NvbmZpZy5pZH1cIiBpcyBtaXNzaW5nIHN0eWxlSnNvbi9zdHlsZVVybC5gKTtcbiAgICB9XG4gICAgYXBwbHlNYXBib3hTdHlsZShncm91cCwgc3R5bGVJbnB1dCBhcyBvYmplY3QsIHsgdHJhbnNmb3JtUmVxdWVzdDogY29uZmlnLnRyYW5zZm9ybVJlcXVlc3QgfSlcbiAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgdGhpcy5ydW50aW1lLnNldChjb25maWcuaWQsIHsgaWQ6IGNvbmZpZy5pZCwgc3RhdHVzOiAncmVhZHknIH0pO1xuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoZXJyOiB1bmtub3duKSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYFtHZW9NYXBMYXllclNlcnZpY2VdIE1hcGJveCBzdHlsZSBhcHBseSBlcnJvciBcIiR7Y29uZmlnLmlkfVwiYCwgZXJyKTtcbiAgICAgICAgdGhpcy5ydW50aW1lLnNldChjb25maWcuaWQsIHtcbiAgICAgICAgICBpZDogY29uZmlnLmlkLFxuICAgICAgICAgIHN0YXR1czogJ2Vycm9yJyxcbiAgICAgICAgICBlcnJvck1lc3NhZ2U6ICdLaMO0bmcgw6FwIMSRxrDhu6NjIHN0eWxlIGLhuqNuIMSR4buTIG7hu4FuLicsXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgcmV0dXJuIGdyb3VwO1xuICB9XG59XG4iXX0=