@angular/fire 7.1.0-rc.3 → 7.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (183) hide show
  1. package/analytics/analytics.module.d.ts +9 -6
  2. package/analytics/firebase.d.ts +2 -2
  3. package/analytics/overrides.d.ts +1 -0
  4. package/analytics/public_api.d.ts +2 -0
  5. package/analytics/screen-tracking.service.d.ts +40 -0
  6. package/analytics/user-tracking.service.d.ts +11 -0
  7. package/app/app.module.d.ts +3 -3
  8. package/app-check/app-check.module.d.ts +3 -3
  9. package/auth/auth.module.d.ts +3 -3
  10. package/auth-guard/angular-fire-auth-guard.d.ts +5 -0
  11. package/auth-guard/auth-guard.d.ts +29 -0
  12. package/auth-guard/auth-guard.module.d.ts +7 -0
  13. package/auth-guard/package.json +11 -0
  14. package/auth-guard/public_api.d.ts +2 -0
  15. package/bundles/angular-fire-analytics.umd.js +548 -41
  16. package/bundles/angular-fire-analytics.umd.js.map +1 -1
  17. package/bundles/angular-fire-app-check.umd.js +336 -18
  18. package/bundles/angular-fire-app-check.umd.js.map +1 -1
  19. package/bundles/angular-fire-app.umd.js +323 -3
  20. package/bundles/angular-fire-app.umd.js.map +1 -1
  21. package/bundles/angular-fire-auth-guard.umd.js +109 -0
  22. package/bundles/angular-fire-auth-guard.umd.js.map +1 -0
  23. package/bundles/angular-fire-auth.umd.js +324 -9
  24. package/bundles/angular-fire-auth.umd.js.map +1 -1
  25. package/bundles/angular-fire-compat-analytics.umd.js +16 -112
  26. package/bundles/angular-fire-compat-analytics.umd.js.map +1 -1
  27. package/bundles/angular-fire-compat-auth.umd.js +1 -1
  28. package/bundles/angular-fire-compat-auth.umd.js.map +1 -1
  29. package/bundles/angular-fire-compat-database.umd.js +1 -1
  30. package/bundles/angular-fire-compat-database.umd.js.map +1 -1
  31. package/bundles/angular-fire-compat-firestore.umd.js +1 -1
  32. package/bundles/angular-fire-compat-firestore.umd.js.map +1 -1
  33. package/bundles/angular-fire-compat-functions.umd.js +1 -1
  34. package/bundles/angular-fire-compat-functions.umd.js.map +1 -1
  35. package/bundles/angular-fire-compat-messaging.umd.js +5 -5
  36. package/bundles/angular-fire-compat-messaging.umd.js.map +1 -1
  37. package/bundles/angular-fire-compat-performance.umd.js +5 -5
  38. package/bundles/angular-fire-compat-performance.umd.js.map +1 -1
  39. package/bundles/angular-fire-compat-remote-config.umd.js +5 -5
  40. package/bundles/angular-fire-compat-remote-config.umd.js.map +1 -1
  41. package/bundles/angular-fire-compat-storage.umd.js +2 -1
  42. package/bundles/angular-fire-compat-storage.umd.js.map +1 -1
  43. package/bundles/angular-fire-compat.umd.js +38 -2
  44. package/bundles/angular-fire-compat.umd.js.map +1 -1
  45. package/bundles/angular-fire-database.umd.js +323 -6
  46. package/bundles/angular-fire-database.umd.js.map +1 -1
  47. package/bundles/angular-fire-firestore-lite.umd.js +327 -9
  48. package/bundles/angular-fire-firestore-lite.umd.js.map +1 -1
  49. package/bundles/angular-fire-firestore.umd.js +323 -8
  50. package/bundles/angular-fire-firestore.umd.js.map +1 -1
  51. package/bundles/angular-fire-functions.umd.js +323 -6
  52. package/bundles/angular-fire-functions.umd.js.map +1 -1
  53. package/bundles/angular-fire-messaging.umd.js +339 -24
  54. package/bundles/angular-fire-messaging.umd.js.map +1 -1
  55. package/bundles/angular-fire-performance.umd.js +339 -11
  56. package/bundles/angular-fire-performance.umd.js.map +1 -1
  57. package/bundles/angular-fire-remote-config.umd.js +342 -6
  58. package/bundles/angular-fire-remote-config.umd.js.map +1 -1
  59. package/bundles/angular-fire-storage.umd.js +324 -7
  60. package/bundles/angular-fire-storage.umd.js.map +1 -1
  61. package/bundles/angular-fire.umd.js +43 -371
  62. package/bundles/angular-fire.umd.js.map +1 -1
  63. package/compat/analytics/screen-tracking.service.d.ts +2 -2
  64. package/compat/cache.d.ts +1 -0
  65. package/compat/public_api.d.ts +1 -0
  66. package/compat/storage/interfaces.d.ts +1 -0
  67. package/compat/storage/ref.d.ts +2 -1
  68. package/core.d.ts +13 -3
  69. package/database/database.module.d.ts +3 -3
  70. package/docs/deploy/getting-started.md +62 -1
  71. package/docs/version-7-upgrade.md +1 -1
  72. package/esm2015/analytics/analytics.module.js +33 -27
  73. package/esm2015/analytics/firebase.js +3 -3
  74. package/esm2015/analytics/overrides.js +3 -0
  75. package/esm2015/analytics/public_api.js +3 -1
  76. package/esm2015/analytics/screen-tracking.service.js +139 -0
  77. package/esm2015/analytics/user-tracking.service.js +43 -0
  78. package/esm2015/app/app.module.js +12 -7
  79. package/esm2015/app-check/app-check.js +1 -2
  80. package/esm2015/app-check/app-check.module.js +19 -14
  81. package/esm2015/auth/auth.js +1 -2
  82. package/esm2015/auth/auth.module.js +10 -9
  83. package/esm2015/auth-guard/angular-fire-auth-guard.js +5 -0
  84. package/esm2015/auth-guard/auth-guard.js +49 -0
  85. package/esm2015/auth-guard/auth-guard.module.js +20 -0
  86. package/esm2015/auth-guard/public_api.js +3 -0
  87. package/esm2015/compat/analytics/analytics.js +2 -3
  88. package/esm2015/compat/analytics/screen-tracking.service.js +11 -100
  89. package/esm2015/compat/auth/auth.js +2 -3
  90. package/esm2015/compat/cache.js +32 -0
  91. package/esm2015/compat/database/database.js +2 -3
  92. package/esm2015/compat/firestore/firestore.js +2 -3
  93. package/esm2015/compat/functions/functions.js +2 -3
  94. package/esm2015/compat/messaging/messaging.js +3 -3
  95. package/esm2015/compat/performance/performance.js +2 -3
  96. package/esm2015/compat/public_api.js +2 -1
  97. package/esm2015/compat/remote-config/remote-config.js +4 -5
  98. package/esm2015/compat/storage/interfaces.js +1 -1
  99. package/esm2015/compat/storage/ref.js +2 -1
  100. package/esm2015/compat/storage/storage.js +3 -3
  101. package/esm2015/core.js +44 -52
  102. package/esm2015/database/database.module.js +9 -7
  103. package/esm2015/firestore/firestore.module.js +9 -9
  104. package/esm2015/firestore/lite/lite.module.js +11 -7
  105. package/esm2015/functions/functions.module.js +9 -7
  106. package/esm2015/messaging/firebase.js +3 -3
  107. package/esm2015/messaging/messaging.module.js +19 -21
  108. package/esm2015/messaging/overrides.js +3 -0
  109. package/esm2015/performance/performance.module.js +22 -8
  110. package/esm2015/remote-config/firebase.js +2 -1
  111. package/esm2015/remote-config/overrides.js +3 -0
  112. package/esm2015/remote-config/remote-config.module.js +25 -7
  113. package/esm2015/storage/storage.module.js +10 -8
  114. package/esm2015/zones.js +3 -2
  115. package/fesm2015/angular-fire-analytics.js +209 -40
  116. package/fesm2015/angular-fire-analytics.js.map +1 -1
  117. package/fesm2015/angular-fire-app-check.js +18 -14
  118. package/fesm2015/angular-fire-app-check.js.map +1 -1
  119. package/fesm2015/angular-fire-app.js +11 -6
  120. package/fesm2015/angular-fire-app.js.map +1 -1
  121. package/fesm2015/angular-fire-auth-guard.js +72 -0
  122. package/fesm2015/angular-fire-auth-guard.js.map +1 -0
  123. package/fesm2015/angular-fire-auth.js +9 -9
  124. package/fesm2015/angular-fire-auth.js.map +1 -1
  125. package/fesm2015/angular-fire-compat-analytics.js +10 -98
  126. package/fesm2015/angular-fire-compat-analytics.js.map +1 -1
  127. package/fesm2015/angular-fire-compat-auth.js +2 -2
  128. package/fesm2015/angular-fire-compat-auth.js.map +1 -1
  129. package/fesm2015/angular-fire-compat-database.js +2 -2
  130. package/fesm2015/angular-fire-compat-database.js.map +1 -1
  131. package/fesm2015/angular-fire-compat-firestore.js +2 -2
  132. package/fesm2015/angular-fire-compat-firestore.js.map +1 -1
  133. package/fesm2015/angular-fire-compat-functions.js +2 -2
  134. package/fesm2015/angular-fire-compat-functions.js.map +1 -1
  135. package/fesm2015/angular-fire-compat-messaging.js +2 -2
  136. package/fesm2015/angular-fire-compat-messaging.js.map +1 -1
  137. package/fesm2015/angular-fire-compat-performance.js +2 -2
  138. package/fesm2015/angular-fire-compat-performance.js.map +1 -1
  139. package/fesm2015/angular-fire-compat-remote-config.js +4 -4
  140. package/fesm2015/angular-fire-compat-remote-config.js.map +1 -1
  141. package/fesm2015/angular-fire-compat-storage.js +3 -2
  142. package/fesm2015/angular-fire-compat-storage.js.map +1 -1
  143. package/fesm2015/angular-fire-compat.js +34 -3
  144. package/fesm2015/angular-fire-compat.js.map +1 -1
  145. package/fesm2015/angular-fire-database.js +8 -6
  146. package/fesm2015/angular-fire-database.js.map +1 -1
  147. package/fesm2015/angular-fire-firestore-lite.js +10 -6
  148. package/fesm2015/angular-fire-firestore-lite.js.map +1 -1
  149. package/fesm2015/angular-fire-firestore.js +8 -8
  150. package/fesm2015/angular-fire-firestore.js.map +1 -1
  151. package/fesm2015/angular-fire-functions.js +8 -6
  152. package/fesm2015/angular-fire-functions.js.map +1 -1
  153. package/fesm2015/angular-fire-messaging.js +22 -22
  154. package/fesm2015/angular-fire-messaging.js.map +1 -1
  155. package/fesm2015/angular-fire-performance.js +21 -7
  156. package/fesm2015/angular-fire-performance.js.map +1 -1
  157. package/fesm2015/angular-fire-remote-config.js +27 -7
  158. package/fesm2015/angular-fire-remote-config.js.map +1 -1
  159. package/fesm2015/angular-fire-storage.js +9 -7
  160. package/fesm2015/angular-fire-storage.js.map +1 -1
  161. package/fesm2015/angular-fire.js +46 -53
  162. package/fesm2015/angular-fire.js.map +1 -1
  163. package/firestore/firestore.module.d.ts +3 -3
  164. package/firestore/lite/lite.module.d.ts +3 -3
  165. package/functions/functions.module.d.ts +3 -3
  166. package/messaging/firebase.d.ts +2 -2
  167. package/messaging/messaging.module.d.ts +4 -4
  168. package/messaging/overrides.d.ts +1 -0
  169. package/package.json +9 -3
  170. package/performance/performance.module.d.ts +4 -4
  171. package/remote-config/firebase.d.ts +1 -0
  172. package/remote-config/overrides.d.ts +1 -0
  173. package/remote-config/remote-config.module.d.ts +3 -3
  174. package/schematics/deploy/actions.js +40 -26
  175. package/schematics/deploy/schema.json +4 -0
  176. package/schematics/firebaseTools.js +22 -2
  177. package/schematics/setup/index.js +9 -2
  178. package/schematics/setup/prompts.js +1 -1
  179. package/schematics/setup/ssr.js +7 -1
  180. package/schematics/setup/static.js +9 -3
  181. package/schematics/utils.js +1 -1
  182. package/schematics/versions.json +1 -1
  183. package/storage/storage.module.d.ts +3 -3
@@ -2,9 +2,9 @@ import { __awaiter } from "tslib";
2
2
  import { Inject, Injectable, InjectionToken, NgZone, Optional, PLATFORM_ID } from '@angular/core';
3
3
  import { concat, EMPTY, Observable, of } from 'rxjs';
4
4
  import { catchError, defaultIfEmpty, map, mergeMap, observeOn, switchMap, switchMapTo, shareReplay, subscribeOn } from 'rxjs/operators';
5
- import { ɵAngularFireSchedulers, ɵcacheInstance } from '@angular/fire';
5
+ import { ɵAngularFireSchedulers } from '@angular/fire';
6
6
  import { ɵlazySDKProxy, ɵapplyMixins } from '@angular/fire/compat';
7
- import { ɵfirebaseAppFactory, FIREBASE_APP_NAME, FIREBASE_OPTIONS } from '@angular/fire/compat';
7
+ import { ɵfirebaseAppFactory, FIREBASE_APP_NAME, FIREBASE_OPTIONS, ɵcacheInstance } from '@angular/fire/compat';
8
8
  import { proxyPolyfillCompat } from './base';
9
9
  import { isSupported } from 'firebase/messaging';
10
10
  import * as i0 from "@angular/core";
@@ -72,4 +72,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.3", ngImpor
72
72
  args: [SERVICE_WORKER]
73
73
  }] }]; } });
74
74
  ɵapplyMixins(AngularFireMessaging, [proxyPolyfillCompat]);
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBhdC9tZXNzYWdpbmcvbWVzc2FnaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbEcsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4SSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxhQUFhLEVBQWlCLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRWhHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7OztBQUVqRCxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsSUFBSSxjQUFjLENBQVMsa0NBQWtDLENBQUMsQ0FBQztBQUN4RixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQXFDLHFEQUFxRCxDQUFDLENBQUM7QUFRNUksTUFBTSxPQUFPLG9CQUFvQjtJQVMvQixZQUM0QixPQUF3QixFQUNYLElBQStCO0lBQ3RFLHFDQUFxQztJQUNoQixVQUFrQixFQUN2QyxJQUFZ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QyxDQUFDOztpSEFsR1Usb0JBQW9CLGtCQVVyQixnQkFBZ0IsYUFDSixpQkFBaUIsNkJBRTdCLFdBQVcseUVBR0MsU0FBUyw2QkFDVCxjQUFjO3FIQWpCekIsb0JBQW9CLGNBRm5CLEtBQUs7MkZBRU4sb0JBQW9CO2tCQUhoQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxLQUFLO2lCQUNsQjs7MEJBV0ksTUFBTTsyQkFBQyxnQkFBZ0I7OzBCQUN2QixRQUFROzswQkFBSSxNQUFNOzJCQUFDLGlCQUFpQjs4QkFFSixNQUFNOzBCQUF0QyxNQUFNOzJCQUFDLFdBQVc7OzBCQUdsQixRQUFROzswQkFBSSxNQUFNOzJCQUFDLFNBQVM7OzBCQUM1QixRQUFROzswQkFBSSxNQUFNOzJCQUFDLGNBQWM7O0FBcUZ0QyxZQUFZLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIEluamVjdGlvblRva2VuLCBOZ1pvbmUsIE9wdGlvbmFsLCBQTEFURk9STV9JRCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IGZpcmViYXNlIGZyb20gJ2ZpcmViYXNlL2NvbXBhdC9hcHAnO1xuaW1wb3J0IHsgY29uY2F0LCBFTVBUWSwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGRlZmF1bHRJZkVtcHR5LCBtYXAsIG1lcmdlTWFwLCBvYnNlcnZlT24sIHN3aXRjaE1hcCwgc3dpdGNoTWFwVG8sIHNoYXJlUmVwbGF5LCBzdWJzY3JpYmVPbiB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IMm1QW5ndWxhckZpcmVTY2hlZHVsZXJzLCDJtWNhY2hlSW5zdGFuY2UgfSBmcm9tICdAYW5ndWxhci9maXJlJztcbmltcG9ydCB7IMm1bGF6eVNES1Byb3h5LCDJtVByb21pc2VQcm94eSwgybVhcHBseU1peGlucyB9IGZyb20gJ0Bhbmd1bGFyL2ZpcmUvY29tcGF0JztcbmltcG9ydCB7IMm1ZmlyZWJhc2VBcHBGYWN0b3J5LCBGSVJFQkFTRV9BUFBfTkFNRSwgRklSRUJBU0VfT1BUSU9OUyB9IGZyb20gJ0Bhbmd1bGFyL2ZpcmUvY29tcGF0JztcbmltcG9ydCB7IEZpcmViYXNlT3B0aW9ucyB9IGZyb20gJ2ZpcmViYXNlL2FwcCc7XG5pbXBvcnQgeyBwcm94eVBvbHlmaWxsQ29tcGF0IH0gZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7IGlzU3VwcG9ydGVkIH0gZnJvbSAnZmlyZWJhc2UvbWVzc2FnaW5nJztcblxuZXhwb3J0IGNvbnN0IFZBUElEX0tFWSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KCdhbmd1bGFyZmlyZTIubWVzc2FnaW5nLnZhcGlkLWtleScpO1xuZXhwb3J0IGNvbnN0IFNFUlZJQ0VfV09SS0VSID0gbmV3IEluamVjdGlvblRva2VuPFByb21pc2U8U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbj4+KCdhbmd1bGFyZmlyZTIubWVzc2FnaW5nLnNlcnZpY2Utd29ya2VyLXJlZ2lzdGVyYXRpb24nKTtcblxuZXhwb3J0IGludGVyZmFjZSBBbmd1bGFyRmlyZU1lc3NhZ2luZyBleHRlbmRzIE9taXQ8ybVQcm9taXNlUHJveHk8ZmlyZWJhc2UubWVzc2FnaW5nLk1lc3NhZ2luZz4sICdkZWxldGVUb2tlbicgfCAnZ2V0VG9rZW4nIHwgJ3JlcXVlc3RQZXJtaXNzaW9uJz4ge1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdhbnknXG59KVxuZXhwb3J0IGNsYXNzIEFuZ3VsYXJGaXJlTWVzc2FnaW5nIHtcblxuICBwdWJsaWMgcmVhZG9ubHkgcmVxdWVzdFBlcm1pc3Npb246IE9ic2VydmFibGU8Tm90aWZpY2F0aW9uUGVybWlzc2lvbj47XG4gIHB1YmxpYyByZWFkb25seSBnZXRUb2tlbjogT2JzZXJ2YWJsZTxzdHJpbmcgfCBudWxsPjtcbiAgcHVibGljIHJlYWRvbmx5IHRva2VuQ2hhbmdlczogT2JzZXJ2YWJsZTxzdHJpbmcgfCBudWxsPjtcbiAgcHVibGljIHJlYWRvbmx5IG1lc3NhZ2VzOiBPYnNlcnZhYmxlPGZpcmViYXNlLm1lc3NhZ2luZy5NZXNzYWdlUGF5bG9hZD47XG4gIHB1YmxpYyByZWFkb25seSByZXF1ZXN0VG9rZW46IE9ic2VydmFibGU8c3RyaW5nIHwgbnVsbD47XG4gIHB1YmxpYyByZWFkb25seSBkZWxldGVUb2tlbjogKHRva2VuOiBzdHJpbmcpID0+IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChGSVJFQkFTRV9PUFRJT05TKSBvcHRpb25zOiBGaXJlYmFzZU9wdGlvbnMsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChGSVJFQkFTRV9BUFBfTkFNRSkgbmFtZTogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6YmFuLXR5cGVzXG4gICAgQEluamVjdChQTEFURk9STV9JRCkgcGxhdGZvcm1JZDogT2JqZWN0LFxuICAgIHpvbmU6IE5nWm9uZSxcbiAgICBzY2hlZHVsZXJzOiDJtUFuZ3VsYXJGaXJlU2NoZWR1bGVycyxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFZBUElEX0tFWSkgdmFwaWRLZXk6IHN0cmluZ3xudWxsLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoU0VSVklDRV9XT1JLRVIpIF9zZXJ2aWNlV29ya2VyOiBhbnksXG4gICkge1xuICAgIGNvbnN0IHNlcnZpY2VXb3JrZXI6IFByb21pc2U8U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbj4gfCBudWxsID0gX3NlcnZpY2VXb3JrZXI7XG5cbiAgICBjb25zdCBtZXNzYWdpbmcgPSBvZih1bmRlZmluZWQpLnBpcGUoXG4gICAgICBzdWJzY3JpYmVPbihzY2hlZHVsZXJzLm91dHNpZGVBbmd1bGFyKSxcbiAgICAgIG9ic2VydmVPbihzY2hlZHVsZXJzLmluc2lkZUFuZ3VsYXIpLFxuICAgICAgc3dpdGNoTWFwKGlzU3VwcG9ydGVkKSxcbiAgICAgIHN3aXRjaE1hcChzdXBwb3J0ZWQgPT4gc3VwcG9ydGVkID8gaW1wb3J0KCdmaXJlYmFzZS9jb21wYXQvbWVzc2FnaW5nJykgOiBFTVBUWSksXG4gICAgICBtYXAoKCkgPT4gybVmaXJlYmFzZUFwcEZhY3Rvcnkob3B0aW9ucywgem9uZSwgbmFtZSkpLFxuICAgICAgc3dpdGNoTWFwKGFwcCA9PiDJtWNhY2hlSW5zdGFuY2UoYCR7YXBwLm5hbWV9Lm1lc3NhZ2luZ2AsICdBbmd1bGFyRmlyZU1lc3NhZ2luZycsIGFwcC5uYW1lLCBhc3luYyAoKSA9PiB7XG4gICAgICAgIHJldHVybiBhcHAubWVzc2FnaW5nKCk7XG4gICAgICB9LCBbXSkpLFxuICAgICAgc2hhcmVSZXBsYXkoeyBidWZmZXJTaXplOiAxLCByZWZDb3VudDogZmFsc2UgfSlcbiAgICApO1xuXG5cbiAgICB0aGlzLnJlcXVlc3RQZXJtaXNzaW9uID0gbWVzc2FnaW5nLnBpcGUoXG4gICAgICBzdWJzY3JpYmVPbihzY2hlZHVsZXJzLm91dHNpZGVBbmd1bGFyKSxcbiAgICAgIG9ic2VydmVPbihzY2hlZHVsZXJzLmluc2lkZUFuZ3VsYXIpLFxuICAgICAgc3dpdGNoTWFwKCgpID0+IE5vdGlmaWNhdGlvbi5yZXF1ZXN0UGVybWlzc2lvbigpKVxuICAgICk7XG5cbiAgICB0aGlzLmdldFRva2VuID0gbWVzc2FnaW5nLnBpcGUoXG4gICAgICBzdWJzY3JpYmVPbihzY2hlZHVsZXJzLm91dHNpZGVBbmd1bGFyKSxcbiAgICAgIG9ic2VydmVPbihzY2hlZHVsZXJzLmluc2lkZUFuZ3VsYXIpLFxuICAgICAgc3dpdGNoTWFwKGFzeW5jIG1lc3NhZ2luZyA9PiB7XG4gICAgICAgIGlmIChOb3RpZmljYXRpb24ucGVybWlzc2lvbiA9PT0gJ2dyYW50ZWQnKSB7XG4gICAgICAgICAgY29uc3Qgc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiA9IHNlcnZpY2VXb3JrZXIgPyBhd2FpdCBzZXJ2aWNlV29ya2VyIDogbnVsbDtcbiAgICAgICAgICByZXR1cm4gYXdhaXQgbWVzc2FnaW5nLmdldFRva2VuKHsgdmFwaWRLZXksIHNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcblxuICAgIGNvbnN0IG5vdGlmaWNhdGlvblBlcm1pc3Npb24kID0gbmV3IE9ic2VydmFibGU8c3RyaW5nPihlbWl0dGVyID0+IHtcbiAgICAgIG5hdmlnYXRvci5wZXJtaXNzaW9ucy5xdWVyeSh7IG5hbWU6ICdub3RpZmljYXRpb25zJyB9KS50aGVuKG5vdGlmaWNhdGlvblBlcm0gPT4ge1xuICAgICAgICBub3RpZmljYXRpb25QZXJtLm9uY2hhbmdlID0gKCkgPT4gZW1pdHRlci5uZXh0KCk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuXG4gICAgY29uc3QgdG9rZW5DaGFuZ2UkID0gbWVzc2FnaW5nLnBpcGUoXG4gICAgICBzdWJzY3JpYmVPbihzY2hlZHVsZXJzLm91dHNpZGVBbmd1bGFyKSxcbiAgICAgIG9ic2VydmVPbihzY2hlZHVsZXJzLmluc2lkZUFuZ3VsYXIpLFxuICAgICAgc3dpdGNoTWFwVG8obm90aWZpY2F0aW9uUGVybWlzc2lvbiQpLFxuICAgICAgc3dpdGNoTWFwVG8odGhpcy5nZXRUb2tlbilcbiAgICApO1xuXG4gICAgdGhpcy50b2tlbkNoYW5nZXMgPSBtZXNzYWdpbmcucGlwZShcbiAgICAgIHN1YnNjcmliZU9uKHNjaGVkdWxlcnMub3V0c2lkZUFuZ3VsYXIpLFxuICAgICAgb2JzZXJ2ZU9uKHNjaGVkdWxlcnMuaW5zaWRlQW5ndWxhciksXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4gY29uY2F0KHRoaXMuZ2V0VG9rZW4sIHRva2VuQ2hhbmdlJCkpXG4gICAgKTtcblxuXG4gICAgdGhpcy5tZXNzYWdlcyA9IG1lc3NhZ2luZy5waXBlKFxuICAgICAgc3Vic2NyaWJlT24oc2NoZWR1bGVycy5vdXRzaWRlQW5ndWxhciksXG4gICAgICBvYnNlcnZlT24oc2NoZWR1bGVycy5pbnNpZGVBbmd1bGFyKSxcbiAgICAgIHN3aXRjaE1hcChtZXNzYWdpbmcgPT4gbmV3IE9ic2VydmFibGU8ZmlyZWJhc2UubWVzc2FnaW5nLk1lc3NhZ2VQYXlsb2FkPihlbWl0dGVyID0+XG4gICAgICAgIG1lc3NhZ2luZy5vbk1lc3NhZ2UoZW1pdHRlcilcbiAgICAgICkpLFxuICAgICk7XG5cbiAgICB0aGlzLnJlcXVlc3RUb2tlbiA9IG1lc3NhZ2luZy5waXBlKFxuICAgICAgc3Vic2NyaWJlT24oc2NoZWR1bGVycy5vdXRzaWRlQW5ndWxhciksXG4gICAgICBvYnNlcnZlT24oc2NoZWR1bGVycy5pbnNpZGVBbmd1bGFyKSxcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLnJlcXVlc3RQZXJtaXNzaW9uKSxcbiAgICAgIGNhdGNoRXJyb3IoKCkgPT4gb2YobnVsbCkpLFxuICAgICAgbWVyZ2VNYXAoKCkgPT4gdGhpcy50b2tlbkNoYW5nZXMpXG4gICAgKTtcblxuICAgIHRoaXMuZGVsZXRlVG9rZW4gPSAoKSA9PiBtZXNzYWdpbmcucGlwZShcbiAgICAgIHN1YnNjcmliZU9uKHNjaGVkdWxlcnMub3V0c2lkZUFuZ3VsYXIpLFxuICAgICAgb2JzZXJ2ZU9uKHNjaGVkdWxlcnMuaW5zaWRlQW5ndWxhciksXG4gICAgICBzd2l0Y2hNYXAobWVzc2FnaW5nID0+IG1lc3NhZ2luZy5kZWxldGVUb2tlbigpKSxcbiAgICAgIGRlZmF1bHRJZkVtcHR5KGZhbHNlKVxuICAgICk7XG5cbiAgICByZXR1cm4gybVsYXp5U0RLUHJveHkodGhpcywgbWVzc2FnaW5nLCB6b25lKTtcbiAgfVxuXG59XG5cbsm1YXBwbHlNaXhpbnMoQW5ndWxhckZpcmVNZXNzYWdpbmcsIFtwcm94eVBvbHlmaWxsQ29tcGF0XSk7XG4iXX0=
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBhdC9tZXNzYWdpbmcvbWVzc2FnaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbEcsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4SSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBaUIsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRWhILE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7OztBQUVqRCxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsSUFBSSxjQUFjLENBQVMsa0NBQWtDLENBQUMsQ0FBQztBQUN4RixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQXFDLHFEQUFxRCxDQUFDLENBQUM7QUFRNUksTUFBTSxPQUFPLG9CQUFvQjtJQVMvQixZQUM0QixPQUF3QixFQUNYLElBQStCO0lBQ3RFLHFDQUFxQztJQUNoQixVQUFrQixFQUN2QyxJQUFZ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QyxDQUFDOztpSEFsR1Usb0JBQW9CLGtCQVVyQixnQkFBZ0IsYUFDSixpQkFBaUIsNkJBRTdCLFdBQVcseUVBR0MsU0FBUyw2QkFDVCxjQUFjO3FIQWpCekIsb0JBQW9CLGNBRm5CLEtBQUs7MkZBRU4sb0JBQW9CO2tCQUhoQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxLQUFLO2lCQUNsQjs7MEJBV0ksTUFBTTsyQkFBQyxnQkFBZ0I7OzBCQUN2QixRQUFROzswQkFBSSxNQUFNOzJCQUFDLGlCQUFpQjs4QkFFSixNQUFNOzBCQUF0QyxNQUFNOzJCQUFDLFdBQVc7OzBCQUdsQixRQUFROzswQkFBSSxNQUFNOzJCQUFDLFNBQVM7OzBCQUM1QixRQUFROzswQkFBSSxNQUFNOzJCQUFDLGNBQWM7O0FBcUZ0QyxZQUFZLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIEluamVjdGlvblRva2VuLCBOZ1pvbmUsIE9wdGlvbmFsLCBQTEFURk9STV9JRCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IGZpcmViYXNlIGZyb20gJ2ZpcmViYXNlL2NvbXBhdC9hcHAnO1xuaW1wb3J0IHsgY29uY2F0LCBFTVBUWSwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGRlZmF1bHRJZkVtcHR5LCBtYXAsIG1lcmdlTWFwLCBvYnNlcnZlT24sIHN3aXRjaE1hcCwgc3dpdGNoTWFwVG8sIHNoYXJlUmVwbGF5LCBzdWJzY3JpYmVPbiB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IMm1QW5ndWxhckZpcmVTY2hlZHVsZXJzIH0gZnJvbSAnQGFuZ3VsYXIvZmlyZSc7XG5pbXBvcnQgeyDJtWxhenlTREtQcm94eSwgybVQcm9taXNlUHJveHksIMm1YXBwbHlNaXhpbnMgfSBmcm9tICdAYW5ndWxhci9maXJlL2NvbXBhdCc7XG5pbXBvcnQgeyDJtWZpcmViYXNlQXBwRmFjdG9yeSwgRklSRUJBU0VfQVBQX05BTUUsIEZJUkVCQVNFX09QVElPTlMsIMm1Y2FjaGVJbnN0YW5jZSB9IGZyb20gJ0Bhbmd1bGFyL2ZpcmUvY29tcGF0JztcbmltcG9ydCB7IEZpcmViYXNlT3B0aW9ucyB9IGZyb20gJ2ZpcmViYXNlL2FwcCc7XG5pbXBvcnQgeyBwcm94eVBvbHlmaWxsQ29tcGF0IH0gZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7IGlzU3VwcG9ydGVkIH0gZnJvbSAnZmlyZWJhc2UvbWVzc2FnaW5nJztcblxuZXhwb3J0IGNvbnN0IFZBUElEX0tFWSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KCdhbmd1bGFyZmlyZTIubWVzc2FnaW5nLnZhcGlkLWtleScpO1xuZXhwb3J0IGNvbnN0IFNFUlZJQ0VfV09SS0VSID0gbmV3IEluamVjdGlvblRva2VuPFByb21pc2U8U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbj4+KCdhbmd1bGFyZmlyZTIubWVzc2FnaW5nLnNlcnZpY2Utd29ya2VyLXJlZ2lzdGVyYXRpb24nKTtcblxuZXhwb3J0IGludGVyZmFjZSBBbmd1bGFyRmlyZU1lc3NhZ2luZyBleHRlbmRzIE9taXQ8ybVQcm9taXNlUHJveHk8ZmlyZWJhc2UubWVzc2FnaW5nLk1lc3NhZ2luZz4sICdkZWxldGVUb2tlbicgfCAnZ2V0VG9rZW4nIHwgJ3JlcXVlc3RQZXJtaXNzaW9uJz4ge1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdhbnknXG59KVxuZXhwb3J0IGNsYXNzIEFuZ3VsYXJGaXJlTWVzc2FnaW5nIHtcblxuICBwdWJsaWMgcmVhZG9ubHkgcmVxdWVzdFBlcm1pc3Npb246IE9ic2VydmFibGU8Tm90aWZpY2F0aW9uUGVybWlzc2lvbj47XG4gIHB1YmxpYyByZWFkb25seSBnZXRUb2tlbjogT2JzZXJ2YWJsZTxzdHJpbmcgfCBudWxsPjtcbiAgcHVibGljIHJlYWRvbmx5IHRva2VuQ2hhbmdlczogT2JzZXJ2YWJsZTxzdHJpbmcgfCBudWxsPjtcbiAgcHVibGljIHJlYWRvbmx5IG1lc3NhZ2VzOiBPYnNlcnZhYmxlPGZpcmViYXNlLm1lc3NhZ2luZy5NZXNzYWdlUGF5bG9hZD47XG4gIHB1YmxpYyByZWFkb25seSByZXF1ZXN0VG9rZW46IE9ic2VydmFibGU8c3RyaW5nIHwgbnVsbD47XG4gIHB1YmxpYyByZWFkb25seSBkZWxldGVUb2tlbjogKHRva2VuOiBzdHJpbmcpID0+IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChGSVJFQkFTRV9PUFRJT05TKSBvcHRpb25zOiBGaXJlYmFzZU9wdGlvbnMsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChGSVJFQkFTRV9BUFBfTkFNRSkgbmFtZTogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6YmFuLXR5cGVzXG4gICAgQEluamVjdChQTEFURk9STV9JRCkgcGxhdGZvcm1JZDogT2JqZWN0LFxuICAgIHpvbmU6IE5nWm9uZSxcbiAgICBzY2hlZHVsZXJzOiDJtUFuZ3VsYXJGaXJlU2NoZWR1bGVycyxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFZBUElEX0tFWSkgdmFwaWRLZXk6IHN0cmluZ3xudWxsLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoU0VSVklDRV9XT1JLRVIpIF9zZXJ2aWNlV29ya2VyOiBhbnksXG4gICkge1xuICAgIGNvbnN0IHNlcnZpY2VXb3JrZXI6IFByb21pc2U8U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbj4gfCBudWxsID0gX3NlcnZpY2VXb3JrZXI7XG5cbiAgICBjb25zdCBtZXNzYWdpbmcgPSBvZih1bmRlZmluZWQpLnBpcGUoXG4gICAgICBzdWJzY3JpYmVPbihzY2hlZHVsZXJzLm91dHNpZGVBbmd1bGFyKSxcbiAgICAgIG9ic2VydmVPbihzY2hlZHVsZXJzLmluc2lkZUFuZ3VsYXIpLFxuICAgICAgc3dpdGNoTWFwKGlzU3VwcG9ydGVkKSxcbiAgICAgIHN3aXRjaE1hcChzdXBwb3J0ZWQgPT4gc3VwcG9ydGVkID8gaW1wb3J0KCdmaXJlYmFzZS9jb21wYXQvbWVzc2FnaW5nJykgOiBFTVBUWSksXG4gICAgICBtYXAoKCkgPT4gybVmaXJlYmFzZUFwcEZhY3Rvcnkob3B0aW9ucywgem9uZSwgbmFtZSkpLFxuICAgICAgc3dpdGNoTWFwKGFwcCA9PiDJtWNhY2hlSW5zdGFuY2UoYCR7YXBwLm5hbWV9Lm1lc3NhZ2luZ2AsICdBbmd1bGFyRmlyZU1lc3NhZ2luZycsIGFwcC5uYW1lLCBhc3luYyAoKSA9PiB7XG4gICAgICAgIHJldHVybiBhcHAubWVzc2FnaW5nKCk7XG4gICAgICB9LCBbXSkpLFxuICAgICAgc2hhcmVSZXBsYXkoeyBidWZmZXJTaXplOiAxLCByZWZDb3VudDogZmFsc2UgfSlcbiAgICApO1xuXG5cbiAgICB0aGlzLnJlcXVlc3RQZXJtaXNzaW9uID0gbWVzc2FnaW5nLnBpcGUoXG4gICAgICBzdWJzY3JpYmVPbihzY2hlZHVsZXJzLm91dHNpZGVBbmd1bGFyKSxcbiAgICAgIG9ic2VydmVPbihzY2hlZHVsZXJzLmluc2lkZUFuZ3VsYXIpLFxuICAgICAgc3dpdGNoTWFwKCgpID0+IE5vdGlmaWNhdGlvbi5yZXF1ZXN0UGVybWlzc2lvbigpKVxuICAgICk7XG5cbiAgICB0aGlzLmdldFRva2VuID0gbWVzc2FnaW5nLnBpcGUoXG4gICAgICBzdWJzY3JpYmVPbihzY2hlZHVsZXJzLm91dHNpZGVBbmd1bGFyKSxcbiAgICAgIG9ic2VydmVPbihzY2hlZHVsZXJzLmluc2lkZUFuZ3VsYXIpLFxuICAgICAgc3dpdGNoTWFwKGFzeW5jIG1lc3NhZ2luZyA9PiB7XG4gICAgICAgIGlmIChOb3RpZmljYXRpb24ucGVybWlzc2lvbiA9PT0gJ2dyYW50ZWQnKSB7XG4gICAgICAgICAgY29uc3Qgc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiA9IHNlcnZpY2VXb3JrZXIgPyBhd2FpdCBzZXJ2aWNlV29ya2VyIDogbnVsbDtcbiAgICAgICAgICByZXR1cm4gYXdhaXQgbWVzc2FnaW5nLmdldFRva2VuKHsgdmFwaWRLZXksIHNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcblxuICAgIGNvbnN0IG5vdGlmaWNhdGlvblBlcm1pc3Npb24kID0gbmV3IE9ic2VydmFibGU8c3RyaW5nPihlbWl0dGVyID0+IHtcbiAgICAgIG5hdmlnYXRvci5wZXJtaXNzaW9ucy5xdWVyeSh7IG5hbWU6ICdub3RpZmljYXRpb25zJyB9KS50aGVuKG5vdGlmaWNhdGlvblBlcm0gPT4ge1xuICAgICAgICBub3RpZmljYXRpb25QZXJtLm9uY2hhbmdlID0gKCkgPT4gZW1pdHRlci5uZXh0KCk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuXG4gICAgY29uc3QgdG9rZW5DaGFuZ2UkID0gbWVzc2FnaW5nLnBpcGUoXG4gICAgICBzdWJzY3JpYmVPbihzY2hlZHVsZXJzLm91dHNpZGVBbmd1bGFyKSxcbiAgICAgIG9ic2VydmVPbihzY2hlZHVsZXJzLmluc2lkZUFuZ3VsYXIpLFxuICAgICAgc3dpdGNoTWFwVG8obm90aWZpY2F0aW9uUGVybWlzc2lvbiQpLFxuICAgICAgc3dpdGNoTWFwVG8odGhpcy5nZXRUb2tlbilcbiAgICApO1xuXG4gICAgdGhpcy50b2tlbkNoYW5nZXMgPSBtZXNzYWdpbmcucGlwZShcbiAgICAgIHN1YnNjcmliZU9uKHNjaGVkdWxlcnMub3V0c2lkZUFuZ3VsYXIpLFxuICAgICAgb2JzZXJ2ZU9uKHNjaGVkdWxlcnMuaW5zaWRlQW5ndWxhciksXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4gY29uY2F0KHRoaXMuZ2V0VG9rZW4sIHRva2VuQ2hhbmdlJCkpXG4gICAgKTtcblxuXG4gICAgdGhpcy5tZXNzYWdlcyA9IG1lc3NhZ2luZy5waXBlKFxuICAgICAgc3Vic2NyaWJlT24oc2NoZWR1bGVycy5vdXRzaWRlQW5ndWxhciksXG4gICAgICBvYnNlcnZlT24oc2NoZWR1bGVycy5pbnNpZGVBbmd1bGFyKSxcbiAgICAgIHN3aXRjaE1hcChtZXNzYWdpbmcgPT4gbmV3IE9ic2VydmFibGU8ZmlyZWJhc2UubWVzc2FnaW5nLk1lc3NhZ2VQYXlsb2FkPihlbWl0dGVyID0+XG4gICAgICAgIG1lc3NhZ2luZy5vbk1lc3NhZ2UoZW1pdHRlcilcbiAgICAgICkpLFxuICAgICk7XG5cbiAgICB0aGlzLnJlcXVlc3RUb2tlbiA9IG1lc3NhZ2luZy5waXBlKFxuICAgICAgc3Vic2NyaWJlT24oc2NoZWR1bGVycy5vdXRzaWRlQW5ndWxhciksXG4gICAgICBvYnNlcnZlT24oc2NoZWR1bGVycy5pbnNpZGVBbmd1bGFyKSxcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLnJlcXVlc3RQZXJtaXNzaW9uKSxcbiAgICAgIGNhdGNoRXJyb3IoKCkgPT4gb2YobnVsbCkpLFxuICAgICAgbWVyZ2VNYXAoKCkgPT4gdGhpcy50b2tlbkNoYW5nZXMpXG4gICAgKTtcblxuICAgIHRoaXMuZGVsZXRlVG9rZW4gPSAoKSA9PiBtZXNzYWdpbmcucGlwZShcbiAgICAgIHN1YnNjcmliZU9uKHNjaGVkdWxlcnMub3V0c2lkZUFuZ3VsYXIpLFxuICAgICAgb2JzZXJ2ZU9uKHNjaGVkdWxlcnMuaW5zaWRlQW5ndWxhciksXG4gICAgICBzd2l0Y2hNYXAobWVzc2FnaW5nID0+IG1lc3NhZ2luZy5kZWxldGVUb2tlbigpKSxcbiAgICAgIGRlZmF1bHRJZkVtcHR5KGZhbHNlKVxuICAgICk7XG5cbiAgICByZXR1cm4gybVsYXp5U0RLUHJveHkodGhpcywgbWVzc2FnaW5nLCB6b25lKTtcbiAgfVxuXG59XG5cbsm1YXBwbHlNaXhpbnMoQW5ndWxhckZpcmVNZXNzYWdpbmcsIFtwcm94eVBvbHlmaWxsQ29tcGF0XSk7XG4iXX0=
@@ -1,8 +1,7 @@
1
1
  import { Inject, Injectable, InjectionToken, NgZone, Optional, PLATFORM_ID } from '@angular/core';
2
2
  import { EMPTY, Observable, of } from 'rxjs';
3
3
  import { map, shareReplay, switchMap, tap } from 'rxjs/operators';
4
- import { ɵapplyMixins, ɵlazySDKProxy } from '@angular/fire/compat';
5
- import { ɵcacheInstance } from '@angular/fire';
4
+ import { ɵapplyMixins, ɵlazySDKProxy, ɵcacheInstance } from '@angular/fire/compat';
6
5
  import { FirebaseApp } from '@angular/fire/compat';
7
6
  import { isPlatformBrowser } from '@angular/common';
8
7
  import { proxyPolyfillCompat } from './base';
@@ -108,4 +107,4 @@ export const trace = (name) => (source$) => new Observable(subscriber => {
108
107
  }, () => traceSubscription.unsubscribe())).subscribe(subscriber);
109
108
  });
110
109
  ɵapplyMixins(AngularFirePerformance, [proxyPolyfillCompat]);
111
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyZm9ybWFuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcGF0L3BlcmZvcm1hbmNlL3BlcmZvcm1hbmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQzNELE9BQU8sRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBaUIsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxRQUFRLENBQUM7OztBQUU3QyxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxJQUFJLGNBQWMsQ0FBVSxpREFBaUQsQ0FBQyxDQUFDO0FBQ3RILE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLElBQUksY0FBYyxDQUFVLGdEQUFnRCxDQUFDLENBQUM7QUFRckgsTUFBTSxPQUFPLHNCQUFzQjtJQUlqQyxZQUNFLEdBQWdCLEVBQzZCLHNCQUFzQyxFQUN0QyxxQkFBcUMsRUFDMUUsSUFBWTtJQUNwQixxQ0FBcUM7SUFDaEIsVUFBa0I7UUFGL0IsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUtwQixJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMs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O0lBQ3pHLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25ELE9BQU8sT0FBTyxDQUFDLElBQUksQ0FDakIsR0FBRyxDQUNELEdBQUcsRUFBRSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsRUFBRSxFQUNyQyxHQUFHLEVBQUU7SUFDTCxDQUFDLEVBQ0QsR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUMsV0FBVyxFQUFFLENBQ3RDLENBQ0YsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDMUIsQ0FBQyxDQUFDLENBQUM7QUFFSCxZQUFZLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIEluamVjdGlvblRva2VuLCBOZ1pvbmUsIE9wdGlvbmFsLCBQTEFURk9STV9JRCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRU1QVFksIE9ic2VydmFibGUsIG9mLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgc2hhcmVSZXBsYXksIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IGZpcmViYXNlIGZyb20gJ2ZpcmViYXNlL2NvbXBhdC9hcHAnO1xuaW1wb3J0IHsgybVhcHBseU1peGlucywgybVsYXp5U0RLUHJveHksIMm1UHJvbWlzZVByb3h5IH0gZnJvbSAnQGFuZ3VsYXIvZmlyZS9jb21wYXQnO1xuaW1wb3J0IHsgybVjYWNoZUluc3RhbmNlIH0gZnJvbSAnQGFuZ3VsYXIvZmlyZSc7XG5pbXBvcnQgeyBGaXJlYmFzZUFwcCB9IGZyb20gJ0Bhbmd1bGFyL2ZpcmUvY29tcGF0JztcbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IHByb3h5UG9seWZpbGxDb21wYXQgfSBmcm9tICcuL2Jhc2UnO1xuXG5leHBvcnQgY29uc3QgSU5TVFJVTUVOVEFUSU9OX0VOQUJMRUQgPSBuZXcgSW5qZWN0aW9uVG9rZW48Ym9vbGVhbj4oJ2FuZ3VsYXJmaXJlMi5wZXJmb3JtYW5jZS5pbnN0cnVtZW50YXRpb25FbmFibGVkJyk7XG5leHBvcnQgY29uc3QgREFUQV9DT0xMRUNUSU9OX0VOQUJMRUQgPSBuZXcgSW5qZWN0aW9uVG9rZW48Ym9vbGVhbj4oJ2FuZ3VsYXJmaXJlMi5wZXJmb3JtYW5jZS5kYXRhQ29sbGVjdGlvbkVuYWJsZWQnKTtcblxuZXhwb3J0IGludGVyZmFjZSBBbmd1bGFyRmlyZVBlcmZvcm1hbmNlIGV4dGVuZHMgybVQcm9taXNlUHJveHk8ZmlyZWJhc2UucGVyZm9ybWFuY2UuUGVyZm9ybWFuY2U+IHtcbn1cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAnYW55J1xufSlcbmV4cG9ydCBjbGFzcyBBbmd1bGFyRmlyZVBlcmZvcm1hbmNlIHtcblxuICBwcml2YXRlIHJlYWRvbmx5IHBlcmZvcm1hbmNlOiBPYnNlcnZhYmxlPGZpcmViYXNlLnBlcmZvcm1hbmNlLlBlcmZvcm1hbmNlPjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBhcHA6IEZpcmViYXNlQXBwLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoSU5TVFJVTUVOVEFUSU9OX0VOQUJMRUQpIGluc3RydW1lbnRhdGlvbkVuYWJsZWQ6IGJvb2xlYW4gfCBudWxsLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoREFUQV9DT0xMRUNUSU9OX0VOQUJMRUQpIGRhdGFDb2xsZWN0aW9uRW5hYmxlZDogYm9vbGVhbiB8IG51bGwsXG4gICAgcHJpdmF0ZSB6b25lOiBOZ1pvbmUsXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmJhbi10eXBlc1xuICAgIEBJbmplY3QoUExBVEZPUk1fSUQpIHBsYXRmb3JtSWQ6IE9iamVjdFxuICApIHtcblxuICAgIHRoaXMucGVyZm9ybWFuY2UgPSBvZih1bmRlZmluZWQpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4gaXNQbGF0Zm9ybUJyb3dzZXIocGxhdGZvcm1JZCkgPyB6b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IGltcG9ydCgnZmlyZWJhc2UvY29tcGF0L3BlcmZvcm1hbmNlJykpIDogRU1QVFkpLFxuICAgICAgbWFwKCgpID0+IMm1Y2FjaGVJbnN0YW5jZShgcGVyZm9ybWFuY2VgLCAnQW5ndWxhckZpcmVQZXJmb3JtYW5jZScsIGFwcC5uYW1lLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHBlcmZvcm1hbmNlID0gem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiBhcHAucGVyZm9ybWFuY2UoKSk7XG4gICAgICAgIGlmIChpbnN0cnVtZW50YXRpb25FbmFibGVkID09PSBmYWxzZSkge1xuICAgICAgICAgIHBlcmZvcm1hbmNlLmluc3RydW1lbnRhdGlvbkVuYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YUNvbGxlY3Rpb25FbmFibGVkID09PSBmYWxzZSkge1xuICAgICAgICAgIHBlcmZvcm1hbmNlLmRhdGFDb2xsZWN0aW9uRW5hYmxlZCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwZXJmb3JtYW5jZTtcbiAgICAgIH0sIFtpbnN0cnVtZW50YXRpb25FbmFibGVkLCBkYXRhQ29sbGVjdGlvbkVuYWJsZWRdKSksXG4gICAgICBzaGFyZVJlcGxheSh7IGJ1ZmZlclNpemU6IDEsIHJlZkNvdW50OiBmYWxzZSB9KVxuICAgICk7XG5cbiAgICByZXR1cm4gybVsYXp5U0RLUHJveHkodGhpcywgdGhpcy5wZXJmb3JtYW5jZSwgem9uZSk7XG5cbiAgfVxuXG59XG5cbmNvbnN0IHRyYWNlJCA9ICh0cmFjZUlkOiBzdHJpbmcpID0+IHtcbiAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHdpbmRvdy5wZXJmb3JtYW5jZT8ubWFyaykge1xuICAgIGNvbnN0IGVudHJpZXMgPSB3aW5kb3cucGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5TmFtZSh0cmFjZUlkLCAnbWVhc3VyZScpIHx8IFtdO1xuICAgIGNvbnN0IHN0YXJ0TWFya05hbWUgPSBgXyR7dHJhY2VJZH1TdGFydFske2VudHJpZXMubGVuZ3RofV1gO1xuICAgIGNvbnN0IGVuZE1hcmtOYW1lID0gYF8ke3RyYWNlSWR9RW5kWyR7ZW50cmllcy5sZW5ndGh9XWA7XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPHZvaWQ+KGVtaXR0ZXIgPT4ge1xuICAgICAgd2luZG93LnBlcmZvcm1hbmNlLm1hcmsoc3RhcnRNYXJrTmFtZSk7XG4gICAgICBlbWl0dGVyLm5leHQoKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHVuc3Vic2NyaWJlOiAoKSA9PiB7XG4gICAgICAgICAgd2luZG93LnBlcmZvcm1hbmNlLm1hcmsoZW5kTWFya05hbWUpO1xuICAgICAgICAgIHdpbmRvdy5wZXJmb3JtYW5jZS5tZWFzdXJlKHRyYWNlSWQsIHN0YXJ0TWFya05hbWUsIGVuZE1hcmtOYW1lKTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gRU1QVFk7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCB0cmFjZVVudGlsID0gPFQgPSBhbnk+KFxuICBuYW1lOiBzdHJpbmcsXG4gIHRlc3Q6IChhOiBUKSA9PiBib29sZWFuLFxuICBvcHRpb25zPzogeyBvckNvbXBsZXRlPzogYm9vbGVhbiB9XG4pID0+IChzb3VyY2UkOiBPYnNlcnZhYmxlPFQ+KSA9PiBuZXcgT2JzZXJ2YWJsZTxUPihzdWJzY3JpYmVyID0+IHtcbiAgY29uc3QgdHJhY2VTdWJzY3JpcHRpb24gPSB0cmFjZSQobmFtZSkuc3Vic2NyaWJlKCk7XG4gIHJldHVybiBzb3VyY2UkLnBpcGUoXG4gICAgdGFwKFxuICAgICAgYSA9PiB0ZXN0KGEpICYmIHRyYWNlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCksXG4gICAgICAoKSA9PiB7XG4gICAgICB9LFxuICAgICAgKCkgPT4gb3B0aW9ucyAmJiBvcHRpb25zLm9yQ29tcGxldGUgJiYgdHJhY2VTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKVxuICAgIClcbiAgKS5zdWJzY3JpYmUoc3Vic2NyaWJlcik7XG59KTtcblxuZXhwb3J0IGNvbnN0IHRyYWNlV2hpbGUgPSA8VCA9IGFueT4oXG4gIG5hbWU6IHN0cmluZyxcbiAgdGVzdDogKGE6IFQpID0+IGJvb2xlYW4sXG4gIG9wdGlvbnM/OiB7IG9yQ29tcGxldGU/OiBib29sZWFuIH1cbikgPT4gKHNvdXJjZSQ6IE9ic2VydmFibGU8VD4pID0+IG5ldyBPYnNlcnZhYmxlPFQ+KHN1YnNjcmliZXIgPT4ge1xuICBsZXQgdHJhY2VTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiB8IHVuZGVmaW5lZDtcbiAgcmV0dXJuIHNvdXJjZSQucGlwZShcbiAgICB0YXAoXG4gICAgICBhID0+IHtcbiAgICAgICAgaWYgKHRlc3QoYSkpIHtcbiAgICAgICAgICB0cmFjZVN1YnNjcmlwdGlvbiA9IHRyYWNlU3Vic2NyaXB0aW9uIHx8IHRyYWNlJChuYW1lKS5zdWJzY3JpYmUoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAodHJhY2VTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHRyYWNlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdHJhY2VTdWJzY3JpcHRpb24gPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAoKSA9PiB7XG4gICAgICB9LFxuICAgICAgKCkgPT4gb3B0aW9ucyAmJiBvcHRpb25zLm9yQ29tcGxldGUgJiYgdHJhY2VTdWJzY3JpcHRpb24gJiYgdHJhY2VTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKVxuICAgIClcbiAgKS5zdWJzY3JpYmUoc3Vic2NyaWJlcik7XG59KTtcblxuZXhwb3J0IGNvbnN0IHRyYWNlVW50aWxDb21wbGV0ZSA9IDxUID0gYW55PihuYW1lOiBzdHJpbmcpID0+IChzb3VyY2UkOiBPYnNlcnZhYmxlPFQ+KSA9PiBuZXcgT2JzZXJ2YWJsZTxUPihzdWJzY3JpYmVyID0+IHtcbiAgY29uc3QgdHJhY2VTdWJzY3JpcHRpb24gPSB0cmFjZSQobmFtZSkuc3Vic2NyaWJlKCk7XG4gIHJldHVybiBzb3VyY2UkLnBpcGUoXG4gICAgdGFwKFxuICAgICAgKCkgPT4ge1xuICAgICAgfSxcbiAgICAgICgpID0+IHtcbiAgICAgIH0sXG4gICAgICAoKSA9PiB0cmFjZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpXG4gICAgKVxuICApLnN1YnNjcmliZShzdWJzY3JpYmVyKTtcbn0pO1xuXG5leHBvcnQgY29uc3QgdHJhY2VVbnRpbEZpcnN0ID0gPFQgPSBhbnk+KG5hbWU6IHN0cmluZykgPT4gKHNvdXJjZSQ6IE9ic2VydmFibGU8VD4pID0+IG5ldyBPYnNlcnZhYmxlPFQ+KHN1YnNjcmliZXIgPT4ge1xuICBjb25zdCB0cmFjZVN1YnNjcmlwdGlvbiA9IHRyYWNlJChuYW1lKS5zdWJzY3JpYmUoKTtcbiAgcmV0dXJuIHNvdXJjZSQucGlwZShcbiAgICB0YXAoXG4gICAgICAoKSA9PiB0cmFjZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLFxuICAgICAgKCkgPT4ge1xuICAgICAgfSxcbiAgICAgICgpID0+IHtcbiAgICAgIH1cbiAgICApXG4gICkuc3Vic2NyaWJlKHN1YnNjcmliZXIpO1xufSk7XG5cbmV4cG9ydCBjb25zdCB0cmFjZSA9IDxUID0gYW55PihuYW1lOiBzdHJpbmcpID0+IChzb3VyY2UkOiBPYnNlcnZhYmxlPFQ+KSA9PiBuZXcgT2JzZXJ2YWJsZTxUPihzdWJzY3JpYmVyID0+IHtcbiAgY29uc3QgdHJhY2VTdWJzY3JpcHRpb24gPSB0cmFjZSQobmFtZSkuc3Vic2NyaWJlKCk7XG4gIHJldHVybiBzb3VyY2UkLnBpcGUoXG4gICAgdGFwKFxuICAgICAgKCkgPT4gdHJhY2VTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSxcbiAgICAgICgpID0+IHtcbiAgICAgIH0sXG4gICAgICAoKSA9PiB0cmFjZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpXG4gICAgKVxuICApLnN1YnNjcmliZShzdWJzY3JpYmVyKTtcbn0pO1xuXG7JtWFwcGx5TWl4aW5zKEFuZ3VsYXJGaXJlUGVyZm9ybWFuY2UsIFtwcm94eVBvbHlmaWxsQ29tcGF0XSk7XG4iXX0=
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyZm9ybWFuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcGF0L3BlcmZvcm1hbmNlL3BlcmZvcm1hbmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQzNELE9BQU8sRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBaUIsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFFBQVEsQ0FBQzs7O0FBRTdDLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLElBQUksY0FBYyxDQUFVLGlEQUFpRCxDQUFDLENBQUM7QUFDdEgsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxjQUFjLENBQVUsZ0RBQWdELENBQUMsQ0FBQztBQVFySCxNQUFNLE9BQU8sc0JBQXNCO0lBSWpDLFlBQ0UsR0FBZ0IsRUFDNkIsc0JBQXNDLEVBQ3RDLHFCQUFxQyxFQUMxRSxJQUFZO0lBQ3BCLHFDQUFxQztJQUNoQixVQUFrQjtRQUYvQixTQUFJLEdBQUosSUFBSSxDQUFRO1FBS3BCLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FDbkMsU0FBUyxDQUFDLEdBQUcs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QUMsSUFBSSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkQsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUNqQixHQUFHLENBQ0QsR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUMsV0FBVyxFQUFFLEVBQ3JDLEdBQUcsRUFBRTtJQUNMLENBQUMsRUFDRCxHQUFHLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLEVBQUUsQ0FDdEMsQ0FDRixDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUMxQixDQUFDLENBQUMsQ0FBQztBQUVILFlBQVksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4sIE5nWm9uZSwgT3B0aW9uYWwsIFBMQVRGT1JNX0lEIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFTVBUWSwgT2JzZXJ2YWJsZSwgb2YsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCBzaGFyZVJlcGxheSwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgZmlyZWJhc2UgZnJvbSAnZmlyZWJhc2UvY29tcGF0L2FwcCc7XG5pbXBvcnQgeyDJtWFwcGx5TWl4aW5zLCDJtWxhenlTREtQcm94eSwgybVQcm9taXNlUHJveHksIMm1Y2FjaGVJbnN0YW5jZSB9IGZyb20gJ0Bhbmd1bGFyL2ZpcmUvY29tcGF0JztcbmltcG9ydCB7IEZpcmViYXNlQXBwIH0gZnJvbSAnQGFuZ3VsYXIvZmlyZS9jb21wYXQnO1xuaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgcHJveHlQb2x5ZmlsbENvbXBhdCB9IGZyb20gJy4vYmFzZSc7XG5cbmV4cG9ydCBjb25zdCBJTlNUUlVNRU5UQVRJT05fRU5BQkxFRCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxib29sZWFuPignYW5ndWxhcmZpcmUyLnBlcmZvcm1hbmNlLmluc3RydW1lbnRhdGlvbkVuYWJsZWQnKTtcbmV4cG9ydCBjb25zdCBEQVRBX0NPTExFQ1RJT05fRU5BQkxFRCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxib29sZWFuPignYW5ndWxhcmZpcmUyLnBlcmZvcm1hbmNlLmRhdGFDb2xsZWN0aW9uRW5hYmxlZCcpO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFuZ3VsYXJGaXJlUGVyZm9ybWFuY2UgZXh0ZW5kcyDJtVByb21pc2VQcm94eTxmaXJlYmFzZS5wZXJmb3JtYW5jZS5QZXJmb3JtYW5jZT4ge1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdhbnknXG59KVxuZXhwb3J0IGNsYXNzIEFuZ3VsYXJGaXJlUGVyZm9ybWFuY2Uge1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgcGVyZm9ybWFuY2U6IE9ic2VydmFibGU8ZmlyZWJhc2UucGVyZm9ybWFuY2UuUGVyZm9ybWFuY2U+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGFwcDogRmlyZWJhc2VBcHAsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChJTlNUUlVNRU5UQVRJT05fRU5BQkxFRCkgaW5zdHJ1bWVudGF0aW9uRW5hYmxlZDogYm9vbGVhbiB8IG51bGwsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChEQVRBX0NPTExFQ1RJT05fRU5BQkxFRCkgZGF0YUNvbGxlY3Rpb25FbmFibGVkOiBib29sZWFuIHwgbnVsbCxcbiAgICBwcml2YXRlIHpvbmU6IE5nWm9uZSxcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6YmFuLXR5cGVzXG4gICAgQEluamVjdChQTEFURk9STV9JRCkgcGxhdGZvcm1JZDogT2JqZWN0XG4gICkge1xuXG4gICAgdGhpcy5wZXJmb3JtYW5jZSA9IG9mKHVuZGVmaW5lZCkucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiBpc1BsYXRmb3JtQnJvd3NlcihwbGF0Zm9ybUlkKSA/IHpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4gaW1wb3J0KCdmaXJlYmFzZS9jb21wYXQvcGVyZm9ybWFuY2UnKSkgOiBFTVBUWSksXG4gICAgICBtYXAoKCkgPT4gybVjYWNoZUluc3RhbmNlKGBwZXJmb3JtYW5jZWAsICdBbmd1bGFyRmlyZVBlcmZvcm1hbmNlJywgYXBwLm5hbWUsICgpID0+IHtcbiAgICAgICAgY29uc3QgcGVyZm9ybWFuY2UgPSB6b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IGFwcC5wZXJmb3JtYW5jZSgpKTtcbiAgICAgICAgaWYgKGluc3RydW1lbnRhdGlvbkVuYWJsZWQgPT09IGZhbHNlKSB7XG4gICAgICAgICAgcGVyZm9ybWFuY2UuaW5zdHJ1bWVudGF0aW9uRW5hYmxlZCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhQ29sbGVjdGlvbkVuYWJsZWQgPT09IGZhbHNlKSB7XG4gICAgICAgICAgcGVyZm9ybWFuY2UuZGF0YUNvbGxlY3Rpb25FbmFibGVkID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHBlcmZvcm1hbmNlO1xuICAgICAgfSwgW2luc3RydW1lbnRhdGlvbkVuYWJsZWQsIGRhdGFDb2xsZWN0aW9uRW5hYmxlZF0pKSxcbiAgICAgIHNoYXJlUmVwbGF5KHsgYnVmZmVyU2l6ZTogMSwgcmVmQ291bnQ6IGZhbHNlIH0pXG4gICAgKTtcblxuICAgIHJldHVybiDJtWxhenlTREtQcm94eSh0aGlzLCB0aGlzLnBlcmZvcm1hbmNlLCB6b25lKTtcblxuICB9XG5cbn1cblxuY29uc3QgdHJhY2UkID0gKHRyYWNlSWQ6IHN0cmluZykgPT4ge1xuICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93LnBlcmZvcm1hbmNlPy5tYXJrKSB7XG4gICAgY29uc3QgZW50cmllcyA9IHdpbmRvdy5wZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlOYW1lKHRyYWNlSWQsICdtZWFzdXJlJykgfHwgW107XG4gICAgY29uc3Qgc3RhcnRNYXJrTmFtZSA9IGBfJHt0cmFjZUlkfVN0YXJ0WyR7ZW50cmllcy5sZW5ndGh9XWA7XG4gICAgY29uc3QgZW5kTWFya05hbWUgPSBgXyR7dHJhY2VJZH1FbmRbJHtlbnRyaWVzLmxlbmd0aH1dYDtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8dm9pZD4oZW1pdHRlciA9PiB7XG4gICAgICB3aW5kb3cucGVyZm9ybWFuY2UubWFyayhzdGFydE1hcmtOYW1lKTtcbiAgICAgIGVtaXR0ZXIubmV4dCgpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdW5zdWJzY3JpYmU6ICgpID0+IHtcbiAgICAgICAgICB3aW5kb3cucGVyZm9ybWFuY2UubWFyayhlbmRNYXJrTmFtZSk7XG4gICAgICAgICAgd2luZG93LnBlcmZvcm1hbmNlLm1lYXN1cmUodHJhY2VJZCwgc3RhcnRNYXJrTmFtZSwgZW5kTWFya05hbWUpO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBFTVBUWTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IHRyYWNlVW50aWwgPSA8VCA9IGFueT4oXG4gIG5hbWU6IHN0cmluZyxcbiAgdGVzdDogKGE6IFQpID0+IGJvb2xlYW4sXG4gIG9wdGlvbnM/OiB7IG9yQ29tcGxldGU/OiBib29sZWFuIH1cbikgPT4gKHNvdXJjZSQ6IE9ic2VydmFibGU8VD4pID0+IG5ldyBPYnNlcnZhYmxlPFQ+KHN1YnNjcmliZXIgPT4ge1xuICBjb25zdCB0cmFjZVN1YnNjcmlwdGlvbiA9IHRyYWNlJChuYW1lKS5zdWJzY3JpYmUoKTtcbiAgcmV0dXJuIHNvdXJjZSQucGlwZShcbiAgICB0YXAoXG4gICAgICBhID0+IHRlc3QoYSkgJiYgdHJhY2VTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSxcbiAgICAgICgpID0+IHtcbiAgICAgIH0sXG4gICAgICAoKSA9PiBvcHRpb25zICYmIG9wdGlvbnMub3JDb21wbGV0ZSAmJiB0cmFjZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpXG4gICAgKVxuICApLnN1YnNjcmliZShzdWJzY3JpYmVyKTtcbn0pO1xuXG5leHBvcnQgY29uc3QgdHJhY2VXaGlsZSA9IDxUID0gYW55PihcbiAgbmFtZTogc3RyaW5nLFxuICB0ZXN0OiAoYTogVCkgPT4gYm9vbGVhbixcbiAgb3B0aW9ucz86IHsgb3JDb21wbGV0ZT86IGJvb2xlYW4gfVxuKSA9PiAoc291cmNlJDogT2JzZXJ2YWJsZTxUPikgPT4gbmV3IE9ic2VydmFibGU8VD4oc3Vic2NyaWJlciA9PiB7XG4gIGxldCB0cmFjZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkO1xuICByZXR1cm4gc291cmNlJC5waXBlKFxuICAgIHRhcChcbiAgICAgIGEgPT4ge1xuICAgICAgICBpZiAodGVzdChhKSkge1xuICAgICAgICAgIHRyYWNlU3Vic2NyaXB0aW9uID0gdHJhY2VTdWJzY3JpcHRpb24gfHwgdHJhY2UkKG5hbWUpLnN1YnNjcmliZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmICh0cmFjZVN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgdHJhY2VTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0cmFjZVN1YnNjcmlwdGlvbiA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgICgpID0+IHtcbiAgICAgIH0sXG4gICAgICAoKSA9PiBvcHRpb25zICYmIG9wdGlvbnMub3JDb21wbGV0ZSAmJiB0cmFjZVN1YnNjcmlwdGlvbiAmJiB0cmFjZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpXG4gICAgKVxuICApLnN1YnNjcmliZShzdWJzY3JpYmVyKTtcbn0pO1xuXG5leHBvcnQgY29uc3QgdHJhY2VVbnRpbENvbXBsZXRlID0gPFQgPSBhbnk+KG5hbWU6IHN0cmluZykgPT4gKHNvdXJjZSQ6IE9ic2VydmFibGU8VD4pID0+IG5ldyBPYnNlcnZhYmxlPFQ+KHN1YnNjcmliZXIgPT4ge1xuICBjb25zdCB0cmFjZVN1YnNjcmlwdGlvbiA9IHRyYWNlJChuYW1lKS5zdWJzY3JpYmUoKTtcbiAgcmV0dXJuIHNvdXJjZSQucGlwZShcbiAgICB0YXAoXG4gICAgICAoKSA9PiB7XG4gICAgICB9LFxuICAgICAgKCkgPT4ge1xuICAgICAgfSxcbiAgICAgICgpID0+IHRyYWNlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKClcbiAgICApXG4gICkuc3Vic2NyaWJlKHN1YnNjcmliZXIpO1xufSk7XG5cbmV4cG9ydCBjb25zdCB0cmFjZVVudGlsRmlyc3QgPSA8VCA9IGFueT4obmFtZTogc3RyaW5nKSA9PiAoc291cmNlJDogT2JzZXJ2YWJsZTxUPikgPT4gbmV3IE9ic2VydmFibGU8VD4oc3Vic2NyaWJlciA9PiB7XG4gIGNvbnN0IHRyYWNlU3Vic2NyaXB0aW9uID0gdHJhY2UkKG5hbWUpLnN1YnNjcmliZSgpO1xuICByZXR1cm4gc291cmNlJC5waXBlKFxuICAgIHRhcChcbiAgICAgICgpID0+IHRyYWNlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCksXG4gICAgICAoKSA9PiB7XG4gICAgICB9LFxuICAgICAgKCkgPT4ge1xuICAgICAgfVxuICAgIClcbiAgKS5zdWJzY3JpYmUoc3Vic2NyaWJlcik7XG59KTtcblxuZXhwb3J0IGNvbnN0IHRyYWNlID0gPFQgPSBhbnk+KG5hbWU6IHN0cmluZykgPT4gKHNvdXJjZSQ6IE9ic2VydmFibGU8VD4pID0+IG5ldyBPYnNlcnZhYmxlPFQ+KHN1YnNjcmliZXIgPT4ge1xuICBjb25zdCB0cmFjZVN1YnNjcmlwdGlvbiA9IHRyYWNlJChuYW1lKS5zdWJzY3JpYmUoKTtcbiAgcmV0dXJuIHNvdXJjZSQucGlwZShcbiAgICB0YXAoXG4gICAgICAoKSA9PiB0cmFjZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLFxuICAgICAgKCkgPT4ge1xuICAgICAgfSxcbiAgICAgICgpID0+IHRyYWNlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKClcbiAgICApXG4gICkuc3Vic2NyaWJlKHN1YnNjcmliZXIpO1xufSk7XG5cbsm1YXBwbHlNaXhpbnMoQW5ndWxhckZpcmVQZXJmb3JtYW5jZSwgW3Byb3h5UG9seWZpbGxDb21wYXRdKTtcbiJdfQ==
@@ -1,4 +1,5 @@
1
1
  export * from './proxy';
2
2
  export * from './firebase.app';
3
3
  export * from './firebase.app.module';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wYXQvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsdUJBQXVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3Byb3h5JztcbmV4cG9ydCAqIGZyb20gJy4vZmlyZWJhc2UuYXBwJztcbmV4cG9ydCAqIGZyb20gJy4vZmlyZWJhc2UuYXBwLm1vZHVsZSc7XG4iXX0=
4
+ export * from './cache';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wYXQvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3Byb3h5JztcbmV4cG9ydCAqIGZyb20gJy4vZmlyZWJhc2UuYXBwJztcbmV4cG9ydCAqIGZyb20gJy4vZmlyZWJhc2UuYXBwLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2NhY2hlJztcbiJdfQ==
@@ -3,10 +3,9 @@ import { concat, EMPTY, Observable, of, pipe } from 'rxjs';
3
3
  import { debounceTime, distinctUntilChanged, filter, groupBy, map, mergeMap, observeOn, scan, shareReplay, startWith, switchMap, withLatestFrom } from 'rxjs/operators';
4
4
  import { ɵAngularFireSchedulers, keepUnstableUntilFirst } from '@angular/fire';
5
5
  import { ɵlazySDKProxy, ɵapplyMixins } from '@angular/fire/compat';
6
- import { ɵfirebaseAppFactory, FIREBASE_APP_NAME, FIREBASE_OPTIONS } from '@angular/fire/compat';
7
- import { isPlatformBrowser } from '@angular/common';
6
+ import { ɵfirebaseAppFactory, FIREBASE_APP_NAME, FIREBASE_OPTIONS, ɵcacheInstance } from '@angular/fire/compat';
8
7
  import { proxyPolyfillCompat } from './base';
9
- import { ɵcacheInstance } from '@angular/fire';
8
+ import { isSupported } from 'firebase/remote-config';
10
9
  import * as i0 from "@angular/core";
11
10
  import * as i1 from "@angular/fire";
12
11
  export const SETTINGS = new InjectionToken('angularfire2.remoteConfig.settings');
@@ -73,7 +72,7 @@ export class AngularFireRemoteConfig {
73
72
  // tslint:disable-next-line:ban-types
74
73
  platformId) {
75
74
  this.zone = zone;
76
- const remoteConfig$ = of(undefined).pipe(observeOn(schedulers.outsideAngular), switchMap(() => isPlatformBrowser(platformId) ? import('firebase/compat/remote-config') : EMPTY), switchMap(() => import('@firebase/remote-config')), map(() => ɵfirebaseAppFactory(options, zone, name)), map(app => ɵcacheInstance(`${app.name}.remote-config`, 'AngularFireRemoteConfig', app.name, () => {
75
+ const remoteConfig$ = of(undefined).pipe(observeOn(schedulers.outsideAngular), switchMap(() => isSupported()), switchMap(isSupported => isSupported ? import('firebase/compat/remote-config') : EMPTY), map(() => ɵfirebaseAppFactory(options, zone, name)), map(app => ɵcacheInstance(`${app.name}.remote-config`, 'AngularFireRemoteConfig', app.name, () => {
77
76
  const rc = app.remoteConfig();
78
77
  if (settings) {
79
78
  rc.settings = settings;
@@ -191,4 +190,4 @@ export function mapToObject(to = 'strings') {
191
190
  {})), distinctUntilChanged((a, b) => JSON.stringify(a) === JSON.stringify(b)));
192
191
  }
193
192
  ɵapplyMixins(AngularFireRemoteConfig, [proxyPolyfillCompat]);
194
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3RlLWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wYXQvcmVtb3RlLWNvbmZpZy9yZW1vdGUtY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBNEIsVUFBVSxFQUFFLEVBQUUsRUFBb0IsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZHLE9BQU8sRUFDTCxZQUFZLEVBQ1osb0JBQW9CLEVBQ3BCLE1BQU0sRUFDTixPQUFPLEVBQ1AsR0FBRyxFQUNILFFBQVEsRUFDUixTQUFTLEVBQ1QsSUFBSSxFQUNKLFdBQVcsRUFDWCxTQUFTLEVBQ1QsU0FBUyxFQUNULGNBQWMsRUFDZixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsYUFBYSxFQUFpQixZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVsRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUdwRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDN0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBTS9DLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxJQUFJLGNBQWMsQ0FBVyxvQ0FBb0MsQ0FBQyxDQUFDO0FBQzNGLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxJQUFJLGNBQWMsQ0FBaUIseUNB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QUFDLENBQUMsS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQ3hFLENBQUM7QUFDSixDQUFDO0FBRUQsWUFBWSxDQUFDLHVCQUF1QixFQUFFLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiwgTmdab25lLCBPcHRpb25hbCwgUExBVEZPUk1fSUQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNvbmNhdCwgRU1QVFksIE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbiwgT2JzZXJ2YWJsZSwgb2YsIE9wZXJhdG9yRnVuY3Rpb24sIHBpcGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIGRlYm91bmNlVGltZSxcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIGZpbHRlcixcbiAgZ3JvdXBCeSxcbiAgbWFwLFxuICBtZXJnZU1hcCxcbiAgb2JzZXJ2ZU9uLFxuICBzY2FuLFxuICBzaGFyZVJlcGxheSxcbiAgc3RhcnRXaXRoLFxuICBzd2l0Y2hNYXAsXG4gIHdpdGhMYXRlc3RGcm9tXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IMm1QW5ndWxhckZpcmVTY2hlZHVsZXJzLCBrZWVwVW5zdGFibGVVbnRpbEZpcnN0IH0gZnJvbSAnQGFuZ3VsYXIvZmlyZSc7XG5pbXBvcnQgeyDJtWxhenlTREtQcm94eSwgybVQcm9taXNlUHJveHksIMm1YXBwbHlNaXhpbnMgfSBmcm9tICdAYW5ndWxhci9maXJlL2NvbXBhdCc7XG5pbXBvcnQgeyBGaXJlYmFzZU9wdGlvbnMgfSBmcm9tICdmaXJlYmFzZS9hcHAnO1xuaW1wb3J0IHsgybVmaXJlYmFzZUFwcEZhY3RvcnksIEZJUkVCQVNFX0FQUF9OQU1FLCBGSVJFQkFTRV9PUFRJT05TIH0gZnJvbSAnQGFuZ3VsYXIvZmlyZS9jb21wYXQnO1xuaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IGZpcmViYXNlIGZyb20gJ2ZpcmViYXNlL2NvbXBhdC9hcHAnO1xuaW1wb3J0IHsgU2V0dGluZ3MgfSBmcm9tICcuL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgcHJveHlQb2x5ZmlsbENvbXBhdCB9IGZyb20gJy4vYmFzZSc7XG5pbXBvcnQgeyDJtWNhY2hlSW5zdGFuY2UgfSBmcm9tICdAYW5ndWxhci9maXJlJztcblxuZXhwb3J0IGludGVyZmFjZSBDb25maWdUZW1wbGF0ZSB7XG4gIFtrZXk6IHN0cmluZ106IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjb25zdCBTRVRUSU5HUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxTZXR0aW5ncz4oJ2FuZ3VsYXJmaXJlMi5yZW1vdGVDb25maWcuc2V0dGluZ3MnKTtcbmV4cG9ydCBjb25zdCBERUZBVUxUUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxDb25maWdUZW1wbGF0ZT4oJ2FuZ3VsYXJmaXJlMi5yZW1vdGVDb25maWcuZGVmYXVsdENvbmZpZycpO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFuZ3VsYXJGaXJlUmVtb3RlQ29uZmlnIGV4dGVuZHMgybVQcm9taXNlUHJveHk8ZmlyZWJhc2UucmVtb3RlQ29uZmlnLlJlbW90ZUNvbmZpZz4ge1xufVxuXG5jb25zdCBBU19UT19GTiA9IHsgc3RyaW5nczogJ2FzU3RyaW5nJywgbnVtYmVyczogJ2FzTnVtYmVyJywgYm9vbGVhbnM6ICdhc0Jvb2xlYW4nIH07XG5jb25zdCBTVEFUSUNfVkFMVUVTID0geyBudW1iZXJzOiAwLCBib29sZWFuczogZmFsc2UsIHN0cmluZ3M6IHVuZGVmaW5lZCB9O1xuXG4vLyBUT0RPIGxvb2sgaW50byB0aGUgdHlwZXMgaGVyZSwgSSBkb24ndCBsaWtlIHRoZSBhbnlzXG5jb25zdCBwcm94eUFsbCA9IChvYnNlcnZhYmxlOiBPYnNlcnZhYmxlPFBhcmFtZXRlcltdPiwgYXM6ICdudW1iZXJzJyB8ICdib29sZWFucycgfCAnc3RyaW5ncycpID0+IG5ldyBQcm94eShcbiAgb2JzZXJ2YWJsZS5waXBlKG1hcFRvT2JqZWN0KGFzIGFzIGFueSkpLCB7XG4gICAgZ2V0OiAoc2VsZiwgbmFtZTogc3RyaW5nKSA9PiBzZWxmW25hbWVdIHx8IG9ic2VydmFibGUucGlwZShcbiAgICAgIG1hcChhbGwgPT4gYWxsLmZpbmQocCA9PiBwLmtleSA9PT0gbmFtZSkpLFxuICAgICAgbWFwKHBhcmFtID0+IHBhcmFtID8gcGFyYW1bQVNfVE9fRk5bYXNdXSgpIDogU1RBVElDX1ZBTFVFU1thc10pLFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgIClcbiAgfVxuKSBhcyBhbnk7XG5cbi8vIFRPRE8gZXhwb3J0IGFzIGltcGxlbWVudHMgUGFydGlhbDwuLi4+IHNvIG1pbm9yIGRvZXNuJ3QgYnJlYWsgdXNcbmV4cG9ydCBjbGFzcyBWYWx1ZSBpbXBsZW1lbnRzIGZpcmViYXNlLnJlbW90ZUNvbmZpZy5WYWx1ZSB7XG4gIGFzQm9vbGVhbigpIHtcbiAgICByZXR1cm4gWycxJywgJ3RydWUnLCAndCcsICd5JywgJ3llcycsICdvbiddLmluZGV4T2YodGhpcy5fdmFsdWUudG9Mb3dlckNhc2UoKSkgPiAtMTtcbiAgfVxuXG4gIGFzU3RyaW5nKCkge1xuICAgIHJldHVybiB0aGlzLl92YWx1ZTtcbiAgfVxuXG4gIGFzTnVtYmVyKCkge1xuICAgIHJldHVybiBOdW1iZXIodGhpcy5fdmFsdWUpIHx8IDA7XG4gIH1cblxuICBnZXRTb3VyY2UoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NvdXJjZTtcbiAgfVxuXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTp2YXJpYWJsZS1uYW1lXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBfc291cmNlOiBmaXJlYmFzZS5yZW1vdGVDb25maWcuVmFsdWVTb3VyY2UsIHB1YmxpYyBfdmFsdWU6IHN0cmluZykge1xuICB9XG59XG5cbi8vIFNFTVZFUiB1c2UgQ29uc3RydWN0b3JQYXJhbWV0ZXJzIHdoZW4gd2UgY2FuIHN1cHBvcnQgVHlwZXNjcmlwdCAzLjZcbmV4cG9ydCBjbGFzcyBQYXJhbWV0ZXIgZXh0ZW5kcyBWYWx1ZSB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBrZXk6IHN0cmluZywgcHVibGljIGZldGNoVGltZU1pbGxpczogbnVtYmVyLCBzb3VyY2U6IGZpcmViYXNlLnJlbW90ZUNvbmZpZy5WYWx1ZVNvdXJjZSwgdmFsdWU6IHN0cmluZykge1xuICAgIHN1cGVyKHNvdXJjZSwgdmFsdWUpO1xuICB9XG59XG5cbi8vIElmIGl0J3MgYSBQYXJhbWV0ZXIgYXJyYXksIHRlc3QgYW55LCBlbHNlIHRlc3QgdGhlIGluZGl2aWR1YWwgUGFyYW1ldGVyXG5jb25zdCBmaWx0ZXJUZXN0ID0gKGZuOiAocGFyYW06IFBhcmFtZXRlcikgPT4gYm9vbGVhbikgPT4gZmlsdGVyPFBhcmFtZXRlciB8IFBhcmFtZXRlcltdPihpdCA9PiBBcnJheS5pc0FycmF5KGl0KSA/IGl0LnNvbWUoZm4pIDogZm4oaXQpKTtcblxuLy8gQWxsb3cgdGhlIHVzZXIgdG8gYnlwYXNzIHRoZSBkZWZhdWx0IHZhbHVlcyBhbmQgd2FpdCB0aWxsIHRoZXkgZ2V0IHNvbWV0aGluZyBmcm9tIHRoZSBzZXJ2ZXIsIGV2ZW4gaWYgaXQncyBhIGNhY2hlZCBjb3B5O1xuLy8gaWYgdXNlZCBpbiBjb25qdW50aW9uIHdpdGggZmlyc3QoKSBpdCB3aWxsIG9ubHkgZmV0Y2ggUkMgdmFsdWVzIGZyb20gdGhlIHNlcnZlciBpZiB0aGV5IGFyZW4ndCBjYWNoZWQgbG9jYWxseVxuZXhwb3J0IGNvbnN0IGZpbHRlclJlbW90ZSA9ICgpID0+IGZpbHRlclRlc3QocCA9PiBwLmdldFNvdXJjZSgpID09PSAncmVtb3RlJyk7XG5cbi8vIGZpbHRlckZyZXNoIGFsbG93cyB0aGUgZGV2ZWxvcGVyIHRvIGVmZmVjdGl2ZWx5IHNldCB1cCBhIG1heGltdW0gY2FjaGUgdGltZVxuZXhwb3J0IGNvbnN0IGZpbHRlckZyZXNoID0gKGhvd1JlY2VudEluTWlsbGlzOiBudW1iZXIpID0+IGZpbHRlclRlc3QocCA9PiBwLmZldGNoVGltZU1pbGxpcyArIGhvd1JlY2VudEluTWlsbGlzID49IG5ldyBEYXRlKCkuZ2V0VGltZSgpKTtcblxuXG4vLyBJIGRpdGNoZWQgbG9hZGluZyB0aGUgZGVmYXVsdHMgaW50byBSQyBhbmQgYSBzaW1wbGUgbWFwIGZvciBzY2FuIHNpbmNlIHdlIGFscmVhZHkgaGF2ZSBvdXIgb3duIGRlZmF1bHRzIGltcGxlbWVudGF0aW9uLlxuLy8gVGhlIGlkZWEgaGVyZSBiZWluZyB0aGF0IGlmIHRoZXkgaGF2ZSBhIGRlZmF1bHQgdGhhdCBuZXZlciBsb2FkcyBmcm9tIHRoZSBzZXJ2ZXIsIHRoZXkgd2lsbCBiZSBhYmxlIHRvIHRlbGwgdmlhIGZldGNoVGltZU1pbGxpc1xuLy8gb24gdGhlIFBhcmFtZXRlci4gQWxzbyBpZiBpdCBkb2Vzbid0IGNvbWUgZnJvbSB0aGUgc2VydmVyIGl0IHdvbid0IGVtaXQgYWdhaW4gaW4gLmNoYW5nZXMsIGR1ZSB0byB0aGUgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4vLyB3aGljaCB3ZSBjYW4gc2ltcGxpZnkgdG8gPT09IHJhdGhlciB0aGFuIGRlZXAgY29tcGFyaXNvblxuY29uc3Qgc2NhblRvUGFyYW1ldGVyc0FycmF5ID0gKFxuICByZW1vdGVDb25maWc6IE9ic2VydmFibGU8ZmlyZWJhc2UucmVtb3RlQ29uZmlnLlJlbW90ZUNvbmZpZyB8IHVuZGVmaW5lZD5cbik6IE9wZXJhdG9yRnVuY3Rpb248eyBba2V5OiBzdHJpbmddOiBmaXJlYmFzZS5yZW1vdGVDb25maWcuVmFsdWUgfSwgUGFyYW1ldGVyW10+ID0+IHBpcGUoXG4gIHdpdGhMYXRlc3RGcm9tKHJlbW90ZUNvbmZpZyksXG4gIHNjYW4oKGV4aXN0aW5nLCBbYWxsLCByY10pID0+IHtcbiAgICAvLyBTRU1WRVIgdXNlIFwibmV3IFNldFwiIHRvIHVuaXF1ZSBvbmNlIHdlJ3JlIG9ubHkgdGFyZ2V0aW5nIGVzNlxuICAgIC8vIGF0IHRoZSBzY2FsZSB3ZSBleHBlY3QgcmVtb3RlIGNvbmZpZyB0byBiZSBhdCwgd2UgcHJvYmFibHkgd29uJ3Qgc2VlIGEgcGVyZm9ybWFuY2UgaGl0IGZyb20gdGhpcyB1bm9wdGltaXplZCB1bmlxdWVuZXNzXG4gICAgLy8gaW1wbGVtZW50YXRpb24uXG4gICAgLy8gY29uc3QgYWxsS2V5cyA9IFsuLi5uZXcgU2V0KFsuLi5leGlzdGluZy5tYXAocCA9PiBwLmtleSksIC4uLk9iamVjdC5rZXlzKGFsbCldKV07XG4gICAgY29uc3QgYWxsS2V5cyA9IFsuLi5leGlzdGluZy5tYXAocCA9PiBwLmtleSksIC4uLk9iamVjdC5rZXlzKGFsbCldLmZpbHRlcigodiwgaSwgYSkgPT4gYS5pbmRleE9mKHYpID09PSBpKTtcbiAgICByZXR1cm4gYWxsS2V5cy5tYXAoa2V5ID0+IHtcbiAgICAgIGNvbnN0IHVwZGF0ZWRWYWx1ZSA9IGFsbFtrZXldO1xuICAgICAgcmV0dXJuIHVwZGF0ZWRWYWx1ZSA/IG5ldyBQYXJhbWV0ZXIoa2V5LCByYyA/IHJjLmZldGNoVGltZU1pbGxpcyA6IC0xLCB1cGRhdGVkVmFsdWUuZ2V0U291cmNlKCksIHVwZGF0ZWRWYWx1ZS5hc1N0cmluZygpKVxuICAgICAgICA6IGV4aXN0aW5nLmZpbmQocCA9PiBwLmtleSA9PT0ga2V5KTtcbiAgICB9KTtcbiAgfSwgW10gYXMgQXJyYXk8UGFyYW1ldGVyPilcbik7XG5cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAnYW55J1xufSlcbmV4cG9ydCBjbGFzcyBBbmd1bGFyRmlyZVJlbW90ZUNvbmZpZyB7XG5cbiAgcmVhZG9ubHkgY2hhbmdlczogT2JzZXJ2YWJsZTxQYXJhbWV0ZXI+O1xuICByZWFkb25seSBwYXJhbWV0ZXJzOiBPYnNlcnZhYmxlPFBhcmFtZXRlcltdPjtcbiAgcmVhZG9ubHkgbnVtYmVyczogT2JzZXJ2YWJsZTx7IFtrZXk6IHN0cmluZ106IG51bWJlciB8IHVuZGVmaW5lZCB9PiAmIHsgW2tleTogc3RyaW5nXTogT2JzZXJ2YWJsZTxudW1iZXI+IH07XG4gIHJlYWRvbmx5IGJvb2xlYW5zOiBPYnNlcnZhYmxlPHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB8IHVuZGVmaW5lZCB9PiAmIHsgW2tleTogc3RyaW5nXTogT2JzZXJ2YWJsZTxib29sZWFuPiB9O1xuICByZWFkb25seSBzdHJpbmdzOiBPYnNlcnZhYmxlPHsgW2tleTogc3RyaW5nXTogc3RyaW5nIHwgdW5kZWZpbmVkIH0+ICYgeyBba2V5OiBzdHJpbmddOiBPYnNlcnZhYmxlPHN0cmluZyB8IHVuZGVmaW5lZD4gfTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KEZJUkVCQVNFX09QVElPTlMpIG9wdGlvbnM6IEZpcmViYXNlT3B0aW9ucyxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KEZJUkVCQVNFX0FQUF9OQU1FKSBuYW1lOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoU0VUVElOR1MpIHNldHRpbmdzOiBTZXR0aW5ncyB8IG51bGwsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChERUZBVUxUUykgZGVmYXVsdENvbmZpZzogQ29uZmlnVGVtcGxhdGUgfCBudWxsLFxuICAgIHByaXZhdGUgem9uZTogTmdab25lLFxuICAgIHNjaGVkdWxlcnM6IMm1QW5ndWxhckZpcmVTY2hlZHVsZXJzLFxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpiYW4tdHlwZXNcbiAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwbGF0Zm9ybUlkOiBPYmplY3RcbiAgKSB7XG4gICAgY29uc3QgcmVtb3RlQ29uZmlnJCA9IG9mKHVuZGVmaW5lZCkucGlwZShcbiAgICAgIG9ic2VydmVPbihzY2hlZHVsZXJzLm91dHNpZGVBbmd1bGFyKSxcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiBpc1BsYXRmb3JtQnJvd3NlcihwbGF0Zm9ybUlkKSA/IGltcG9ydCgnZmlyZWJhc2UvY29tcGF0L3JlbW90ZS1jb25maWcnKSA6IEVNUFRZKSxcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiBpbXBvcnQoJ0BmaXJlYmFzZS9yZW1vdGUtY29uZmlnJykpLFxuICAgICAgbWFwKCgpID0+IMm1ZmlyZWJhc2VBcHBGYWN0b3J5KG9wdGlvbnMsIHpvbmUsIG5hbWUpKSxcbiAgICAgIG1hcChhcHAgPT4gybVjYWNoZUluc3RhbmNlKGAke2FwcC5uYW1lfS5yZW1vdGUtY29uZmlnYCwgJ0FuZ3VsYXJGaXJlUmVtb3RlQ29uZmlnJywgYXBwLm5hbWUsICgpID0+IHtcbiAgICAgICAgY29uc3QgcmMgPSBhcHAucmVtb3RlQ29uZmlnKCk7XG4gICAgICAgIGlmIChzZXR0aW5ncykge1xuICAgICAgICAgIHJjLnNldHRpbmdzID0gc2V0dGluZ3M7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRlZmF1bHRDb25maWcpIHtcbiAgICAgICAgICByYy5kZWZhdWx0Q29uZmlnID0gZGVmYXVsdENvbmZpZztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmM7XG4gICAgICB9LCBbc2V0dGluZ3MsIGRlZmF1bHRDb25maWddKSksXG4gICAgICBzdGFydFdpdGg8ZmlyZWJhc2UucmVtb3RlQ29uZmlnLlJlbW90ZUNvbmZpZywgdW5kZWZpbmVkPih1bmRlZmluZWQpLFxuICAgICAgc2hhcmVSZXBsYXkoeyBidWZmZXJTaXplOiAxLCByZWZDb3VudDogZmFsc2UgfSlcbiAgICApO1xuXG4gICAgY29uc3QgbG9hZGVkUmVtb3RlQ29uZmlnJCA9IHJlbW90ZUNvbmZpZyQucGlwZShcbiAgICAgIGZpbHRlcjxmaXJlYmFzZS5yZW1vdGVDb25maWcuUmVtb3RlQ29uZmlnPihyYyA9PiAhIXJjKVxuICAgICk7XG5cbiAgICBjb25zdCBkZWZhdWx0JDogT2JzZXJ2YWJsZTx7IFtrZXk6IHN0cmluZ106IGZpcmViYXNlLnJlbW90ZUNvbmZpZy5WYWx1ZSB9PiA9IG9mKE9iamVjdC5rZXlzKGRlZmF1bHRDb25maWcgfHwge30pLnJlZHVjZShcbiAgICAgIChjLCBrKSA9PiAoeyAuLi5jLCBba106IG5ldyBWYWx1ZSgnZGVmYXVsdCcsIGRlZmF1bHRDb25maWdba10udG9TdHJpbmcoKSkgfSksIHt9XG4gICAgKSk7XG5cbiAgICAvLyB3ZSBzaG91bGQgZmlsdGVyIG91dCB0aGUgZGVmYXVsdHMgd2UgcHJvdmlkZWQgdG8gUkMsIHNpbmNlIHdlIGhhdmUgb3VyIG93biBpbXBsZW1lbnRhdGlvblxuICAgIC8vIHRoYXQgZ2l2ZXMgdXMgYSAtMSBmb3IgZmV0Y2hUaW1lTWlsbGlzIChzbyBmaWx0ZXJGcmVzaCBjYW4gZmlsdGVyIHRoZW0gb3V0KVxuICAgIGNvbnN0IGZpbHRlck91dERlZmF1bHRzID0gbWFwPHsgW2tleTogc3RyaW5nXTogZmlyZWJhc2UucmVtb3RlQ29uZmlnLlZhbHVlIH0sIHsgW2tleTogc3RyaW5nXTogZmlyZWJhc2UucmVtb3RlQ29uZmlnLlZhbHVlIH0+KGFsbCA9PlxuICAgICAgT2JqZWN0LmtleXMoYWxsKVxuICAgICAgICAuZmlsdGVyKGtleSA9PiBhbGxba2V5XS5nZXRTb3VyY2UoKSAhPT0gJ2RlZmF1bHQnKVxuICAgICAgICAucmVkdWNlKChhY2MsIGtleSkgPT4gKHsgLi4uYWNjLCBba2V5XTogYWxsW2tleV0gfSksIHt9KVxuICAgICk7XG5cbiAgICBjb25zdCBleGlzdGluZyQgPSBsb2FkZWRSZW1vdGVDb25maWckLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAocmMgPT5cbiAgICAgICAgcmMuYWN0aXZhdGUoKVxuICAgICAgICAgIC50aGVuKCgpID0+IHJjLmVuc3VyZUluaXRpYWxpemVkKCkpXG4gICAgICAgICAgLnRoZW4oKCkgPT4gcmMuZ2V0QWxsKCkpXG4gICAgICApLFxuICAgICAgZmlsdGVyT3V0RGVmYXVsdHNcbiAgICApO1xuXG4gICAgY29uc3QgZnJlc2gkID0gbG9hZGVkUmVtb3RlQ29uZmlnJC5waXBlKFxuICAgICAgc3dpdGNoTWFwKHJjID0+IHpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT5cbiAgICAgICAgcmMuZmV0Y2hBbmRBY3RpdmF0ZSgpXG4gICAgICAgICAgLnRoZW4oKCkgPT4gcmMuZW5zdXJlSW5pdGlhbGl6ZWQoKSlcbiAgICAgICAgICAudGhlbigoKSA9PiByYy5nZXRBbGwoKSlcbiAgICAgICkpLFxuICAgICAgZmlsdGVyT3V0RGVmYXVsdHNcbiAgICApO1xuXG4gICAgdGhpcy5wYXJhbWV0ZXJzID0gY29uY2F0KGRlZmF1bHQkLCBleGlzdGluZyQsIGZyZXNoJCkucGlwZShcbiAgICAgIHNjYW5Ub1BhcmFtZXRlcnNBcnJheShyZW1vdGVDb25maWckKSxcbiAgICAgIGtlZXBVbnN0YWJsZVVudGlsRmlyc3QsXG4gICAgICBzaGFyZVJlcGxheSh7IGJ1ZmZlclNpemU6IDEsIHJlZkNvdW50OiB0cnVlIH0pXG4gICAgKTtcblxuICAgIHRoaXMuY2hhbmdlcyA9IHRoaXMucGFyYW1ldGVycy5waXBlKFxuICAgICAgc3dpdGNoTWFwKHBhcmFtcyA9PiBvZiguLi5wYXJhbXMpKSxcbiAgICAgIGdyb3VwQnkocGFyYW0gPT4gcGFyYW0ua2V5KSxcbiAgICAgIG1lcmdlTWFwKGdyb3VwID0+IGdyb3VwLnBpcGUoXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgICAgICkpXG4gICAgKTtcblxuICAgIHRoaXMuc3RyaW5ncyA9IHByb3h5QWxsKHRoaXMucGFyYW1ldGVycywgJ3N0cmluZ3MnKTtcbiAgICB0aGlzLmJvb2xlYW5zID0gcHJveHlBbGwodGhpcy5wYXJhbWV0ZXJzLCAnYm9vbGVhbnMnKTtcbiAgICB0aGlzLm51bWJlcnMgPSBwcm94eUFsbCh0aGlzLnBhcmFtZXRlcnMsICdudW1iZXJzJyk7XG5cbiAgICByZXR1cm4gybVsYXp5U0RLUHJveHkodGhpcywgbG9hZGVkUmVtb3RlQ29uZmlnJCwgem9uZSk7XG4gIH1cblxufVxuXG5cbmV4cG9ydCBjb25zdCBidWRnZXQgPSA8VD4oaW50ZXJ2YWw6IG51bWJlcik6IE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbjxUPiA9PiAoc291cmNlOiBPYnNlcnZhYmxlPFQ+KSA9PiBuZXcgT2JzZXJ2YWJsZTxUPihvYnNlcnZlciA9PiB7XG4gIGxldCB0aW1lZE91dCA9IGZhbHNlO1xuICAvLyBUT0RPIHVzZSBzY2hlZHVsZXIgdGFzayByYXRoZXIgdGhhbiBzZXR0aW1lb3V0XG4gIGNvbnN0IHRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgIHRpbWVkT3V0ID0gdHJ1ZTtcbiAgfSwgaW50ZXJ2YWwpO1xuICByZXR1cm4gc291cmNlLnN1YnNjcmliZSh7XG4gICAgbmV4dCh2YWwpIHtcbiAgICAgIGlmICghdGltZWRPdXQpIHtcbiAgICAgICAgb2JzZXJ2ZXIubmV4dCh2YWwpO1xuICAgICAgfVxuICAgIH0sXG4gICAgZXJyb3IoZXJyKSB7XG4gICAgICBpZiAoIXRpbWVkT3V0KSB7XG4gICAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0KTtcbiAgICAgICAgb2JzZXJ2ZXIuZXJyb3IoZXJyKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIGNvbXBsZXRlKCkge1xuICAgICAgaWYgKCF0aW1lZE91dCkge1xuICAgICAgICBjbGVhclRpbWVvdXQodGltZW91dCk7XG4gICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICB9XG4gICAgfVxuICB9KTtcbn0pO1xuXG5jb25zdCB0eXBlZE1ldGhvZCA9IChpdDogYW55KSA9PiB7XG4gIHN3aXRjaCAodHlwZW9mIGl0KSB7XG4gICAgY2FzZSAnc3RyaW5nJzpcbiAgICAgIHJldHVybiAnYXNTdHJpbmcnO1xuICAgIGNhc2UgJ2Jvb2xlYW4nOlxuICAgICAgcmV0dXJuICdhc0Jvb2xlYW4nO1xuICAgIGNhc2UgJ251bWJlcic6XG4gICAgICByZXR1cm4gJ2FzTnVtYmVyJztcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuICdhc1N0cmluZyc7XG4gIH1cbn07XG5cblxuZXhwb3J0IGZ1bmN0aW9uIHNjYW5Ub09iamVjdCgpOiBPcGVyYXRvckZ1bmN0aW9uPFBhcmFtZXRlciwgeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfCB1bmRlZmluZWQgfT47XG5leHBvcnQgZnVuY3Rpb24gc2NhblRvT2JqZWN0KHRvOiAnbnVtYmVycycpOiBPcGVyYXRvckZ1bmN0aW9uPFBhcmFtZXRlciwgeyBba2V5OiBzdHJpbmddOiBudW1iZXIgfCB1bmRlZmluZWQgfT47XG5leHBvcnQgZnVuY3Rpb24gc2NhblRvT2JqZWN0KHRvOiAnYm9vbGVhbnMnKTogT3BlcmF0b3JGdW5jdGlvbjxQYXJhbWV0ZXIsIHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB8IHVuZGVmaW5lZCB9Pjtcbi8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTp1bmlmaWVkLXNpZ25hdHVyZXNcbmV4cG9ydCBmdW5jdGlvbiBzY2FuVG9PYmplY3QodG86ICdzdHJpbmdzJyk6IE9wZXJhdG9yRnVuY3Rpb248UGFyYW1ldGVyLCB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB8IHVuZGVmaW5lZCB9PjtcbmV4cG9ydCBmdW5jdGlvbiBzY2FuVG9PYmplY3Q8VCBleHRlbmRzIENvbmZpZ1RlbXBsYXRlPih0ZW1wbGF0ZTogVCk6IE9wZXJhdG9yRnVuY3Rpb248UGFyYW1ldGVyLCBUICYgeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfCB1bmRlZmluZWQgfT47XG5leHBvcnQgZnVuY3Rpb24gc2NhblRvT2JqZWN0PFQgZXh0ZW5kcyBDb25maWdUZW1wbGF0ZT4odG86ICdudW1iZXJzJyB8ICdib29sZWFucycgfCAnc3RyaW5ncycgfCBUID0gJ3N0cmluZ3MnKSB7XG4gIHJldHVybiBwaXBlKFxuICAgIC8vIFRPRE8gY2xlYW51cFxuICAgIHNjYW4oXG4gICAgICAoYywgcDogUGFyYW1ldGVyKSA9PiAoe1xuICAgICAgICAuLi5jLCBbcC5rZXldOiB0eXBlb2YgdG8gPT09ICdvYmplY3QnID9cbiAgICAgICAgICBwW3R5cGVkTWV0aG9kKHRvW3Aua2V5XSldKCkgOlxuICAgICAgICAgIHBbQVNfVE9fRk5bdG9dXSgpXG4gICAgICB9KSxcbiAgICAgIHR5cGVvZiB0byA9PT0gJ29iamVjdCcgP1xuICAgICAgICB0byBhcyBUICYgeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfCB1bmRlZmluZWQgfSA6XG4gICAgICAgIHt9IGFzIHsgW2tleTogc3RyaW5nXTogbnVtYmVyIHwgYm9vbGVhbiB8IHN0cmluZyB9XG4gICAgKSxcbiAgICBkZWJvdW5jZVRpbWUoMSksXG4gICAgYnVkZ2V0KDEwKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgoYSwgYikgPT4gSlNPTi5zdHJpbmdpZnkoYSkgPT09IEpTT04uc3RyaW5naWZ5KGIpKVxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWFwVG9PYmplY3QoKTogT3BlcmF0b3JGdW5jdGlvbjxQYXJhbWV0ZXJbXSwgeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfCB1bmRlZmluZWQgfT47XG5leHBvcnQgZnVuY3Rpb24gbWFwVG9PYmplY3QodG86ICdudW1iZXJzJyk6IE9wZXJhdG9yRnVuY3Rpb248UGFyYW1ldGVyW10sIHsgW2tleTogc3RyaW5nXTogbnVtYmVyIHwgdW5kZWZpbmVkIH0+O1xuZXhwb3J0IGZ1bmN0aW9uIG1hcFRvT2JqZWN0KHRvOiAnYm9vbGVhbnMnKTogT3BlcmF0b3JGdW5jdGlvbjxQYXJhbWV0ZXJbXSwgeyBba2V5OiBzdHJpbmddOiBib29sZWFuIHwgdW5kZWZpbmVkIH0+O1xuLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOnVuaWZpZWQtc2lnbmF0dXJlc1xuZXhwb3J0IGZ1bmN0aW9uIG1hcFRvT2JqZWN0KHRvOiAnc3RyaW5ncycpOiBPcGVyYXRvckZ1bmN0aW9uPFBhcmFtZXRlcltdLCB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB8IHVuZGVmaW5lZCB9PjtcbmV4cG9ydCBmdW5jdGlvbiBtYXBUb09iamVjdDxUIGV4dGVuZHMgQ29uZmlnVGVtcGxhdGU+KHRlbXBsYXRlOiBUKTpcbiAgT3BlcmF0b3JGdW5jdGlvbjxQYXJhbWV0ZXJbXSwgVCAmIHsgW2tleTogc3RyaW5nXTogc3RyaW5nIHwgdW5kZWZpbmVkIH0+O1xuZXhwb3J0IGZ1bmN0aW9uIG1hcFRvT2JqZWN0PFQgZXh0ZW5kcyBDb25maWdUZW1wbGF0ZT4odG86ICdudW1iZXJzJyB8ICdib29sZWFucycgfCAnc3RyaW5ncycgfCBUID0gJ3N0cmluZ3MnKSB7XG4gIHJldHVybiBwaXBlKFxuICAgIC8vIFRPRE8gdGhpcyBpcyBnZXR0aW5nIGEgbGl0dGxlIGxvbmcsIGNsZWFudXBcbiAgICBtYXAoKHBhcmFtczogUGFyYW1ldGVyW10pID0+IHBhcmFtcy5yZWR1Y2UoXG4gICAgICAoYywgcCkgPT4gKHtcbiAgICAgICAgLi4uYywgW3Aua2V5XTogdHlwZW9mIHRvID09PSAnb2JqZWN0JyA/XG4gICAgICAgICAgcFt0eXBlZE1ldGhvZCh0b1twLmtleV0pXSgpIDpcbiAgICAgICAgICBwW0FTX1RPX0ZOW3RvXV0oKVxuICAgICAgfSksXG4gICAgICB0eXBlb2YgdG8gPT09ICdvYmplY3QnID9cbiAgICAgICAgdG8gYXMgVCAmIHsgW2tleTogc3RyaW5nXTogc3RyaW5nIHwgdW5kZWZpbmVkIH0gOlxuICAgICAgICB7fSBhcyB7IFtrZXk6IHN0cmluZ106IG51bWJlciB8IGJvb2xlYW4gfCBzdHJpbmcgfVxuICAgICkpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKChhLCBiKSA9PiBKU09OLnN0cmluZ2lmeShhKSA9PT0gSlNPTi5zdHJpbmdpZnkoYikpXG4gICk7XG59XG5cbsm1YXBwbHlNaXhpbnMoQW5ndWxhckZpcmVSZW1vdGVDb25maWcsIFtwcm94eVBvbHlmaWxsQ29tcGF0XSk7XG4iXX0=
193
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3RlLWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wYXQvcmVtb3RlLWNvbmZpZy9yZW1vdGUtY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBNEIsVUFBVSxFQUFFLEVBQUUsRUFBb0IsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZHLE9BQU8sRUFDTCxZQUFZLEVBQ1osb0JBQW9CLEVBQ3BCLE1BQU0sRUFDTixPQUFPLEVBQ1AsR0FBRyxFQUNILFFBQVEsRUFDUixTQUFTLEVBQ1QsSUFBSSxFQUNKLFdBQVcsRUFDWCxTQUFTLEVBQ1QsU0FBUyxFQUNULGNBQWMsRUFDZixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsYUFBYSxFQUFpQixZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVsRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFHaEgsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7O0FBTXJELE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxJQUFJLGNBQWMsQ0FBVyxvQ0FBb0MsQ0FBQyxDQUFDO0FBQzNGLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxJQUFJLGNBQWMsQ0FBaUIseUNBQXlDLENBQUMsQ0FBQztBQUt0RyxNQUFNLFFBQVEsR0FB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QUM7QUFDSixDQUFDO0FBRUQsWUFBWSxDQUFDLHVCQUF1QixFQUFFLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiwgTmdab25lLCBPcHRpb25hbCwgUExBVEZPUk1fSUQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNvbmNhdCwgRU1QVFksIE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbiwgT2JzZXJ2YWJsZSwgb2YsIE9wZXJhdG9yRnVuY3Rpb24sIHBpcGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIGRlYm91bmNlVGltZSxcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIGZpbHRlcixcbiAgZ3JvdXBCeSxcbiAgbWFwLFxuICBtZXJnZU1hcCxcbiAgb2JzZXJ2ZU9uLFxuICBzY2FuLFxuICBzaGFyZVJlcGxheSxcbiAgc3RhcnRXaXRoLFxuICBzd2l0Y2hNYXAsXG4gIHdpdGhMYXRlc3RGcm9tXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IMm1QW5ndWxhckZpcmVTY2hlZHVsZXJzLCBrZWVwVW5zdGFibGVVbnRpbEZpcnN0IH0gZnJvbSAnQGFuZ3VsYXIvZmlyZSc7XG5pbXBvcnQgeyDJtWxhenlTREtQcm94eSwgybVQcm9taXNlUHJveHksIMm1YXBwbHlNaXhpbnMgfSBmcm9tICdAYW5ndWxhci9maXJlL2NvbXBhdCc7XG5pbXBvcnQgeyBGaXJlYmFzZU9wdGlvbnMgfSBmcm9tICdmaXJlYmFzZS9hcHAnO1xuaW1wb3J0IHsgybVmaXJlYmFzZUFwcEZhY3RvcnksIEZJUkVCQVNFX0FQUF9OQU1FLCBGSVJFQkFTRV9PUFRJT05TLCDJtWNhY2hlSW5zdGFuY2UgfSBmcm9tICdAYW5ndWxhci9maXJlL2NvbXBhdCc7XG5pbXBvcnQgZmlyZWJhc2UgZnJvbSAnZmlyZWJhc2UvY29tcGF0L2FwcCc7XG5pbXBvcnQgeyBTZXR0aW5ncyB9IGZyb20gJy4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBwcm94eVBvbHlmaWxsQ29tcGF0IH0gZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7IGlzU3VwcG9ydGVkIH0gZnJvbSAnZmlyZWJhc2UvcmVtb3RlLWNvbmZpZyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29uZmlnVGVtcGxhdGUge1xuICBba2V5OiBzdHJpbmddOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuO1xufVxuXG5leHBvcnQgY29uc3QgU0VUVElOR1MgPSBuZXcgSW5qZWN0aW9uVG9rZW48U2V0dGluZ3M+KCdhbmd1bGFyZmlyZTIucmVtb3RlQ29uZmlnLnNldHRpbmdzJyk7XG5leHBvcnQgY29uc3QgREVGQVVMVFMgPSBuZXcgSW5qZWN0aW9uVG9rZW48Q29uZmlnVGVtcGxhdGU+KCdhbmd1bGFyZmlyZTIucmVtb3RlQ29uZmlnLmRlZmF1bHRDb25maWcnKTtcblxuZXhwb3J0IGludGVyZmFjZSBBbmd1bGFyRmlyZVJlbW90ZUNvbmZpZyBleHRlbmRzIMm1UHJvbWlzZVByb3h5PGZpcmViYXNlLnJlbW90ZUNvbmZpZy5SZW1vdGVDb25maWc+IHtcbn1cblxuY29uc3QgQVNfVE9fRk4gPSB7IHN0cmluZ3M6ICdhc1N0cmluZycsIG51bWJlcnM6ICdhc051bWJlcicsIGJvb2xlYW5zOiAnYXNCb29sZWFuJyB9O1xuY29uc3QgU1RBVElDX1ZBTFVFUyA9IHsgbnVtYmVyczogMCwgYm9vbGVhbnM6IGZhbHNlLCBzdHJpbmdzOiB1bmRlZmluZWQgfTtcblxuLy8gVE9ETyBsb29rIGludG8gdGhlIHR5cGVzIGhlcmUsIEkgZG9uJ3QgbGlrZSB0aGUgYW55c1xuY29uc3QgcHJveHlBbGwgPSAob2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTxQYXJhbWV0ZXJbXT4sIGFzOiAnbnVtYmVycycgfCAnYm9vbGVhbnMnIHwgJ3N0cmluZ3MnKSA9PiBuZXcgUHJveHkoXG4gIG9ic2VydmFibGUucGlwZShtYXBUb09iamVjdChhcyBhcyBhbnkpKSwge1xuICAgIGdldDogKHNlbGYsIG5hbWU6IHN0cmluZykgPT4gc2VsZltuYW1lXSB8fCBvYnNlcnZhYmxlLnBpcGUoXG4gICAgICBtYXAoYWxsID0+IGFsbC5maW5kKHAgPT4gcC5rZXkgPT09IG5hbWUpKSxcbiAgICAgIG1hcChwYXJhbSA9PiBwYXJhbSA/IHBhcmFtW0FTX1RPX0ZOW2FzXV0oKSA6IFNUQVRJQ19WQUxVRVNbYXNdKSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgICApXG4gIH1cbikgYXMgYW55O1xuXG4vLyBUT0RPIGV4cG9ydCBhcyBpbXBsZW1lbnRzIFBhcnRpYWw8Li4uPiBzbyBtaW5vciBkb2Vzbid0IGJyZWFrIHVzXG5leHBvcnQgY2xhc3MgVmFsdWUgaW1wbGVtZW50cyBmaXJlYmFzZS5yZW1vdGVDb25maWcuVmFsdWUge1xuICBhc0Jvb2xlYW4oKSB7XG4gICAgcmV0dXJuIFsnMScsICd0cnVlJywgJ3QnLCAneScsICd5ZXMnLCAnb24nXS5pbmRleE9mKHRoaXMuX3ZhbHVlLnRvTG93ZXJDYXNlKCkpID4gLTE7XG4gIH1cblxuICBhc1N0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gIH1cblxuICBhc051bWJlcigpIHtcbiAgICByZXR1cm4gTnVtYmVyKHRoaXMuX3ZhbHVlKSB8fCAwO1xuICB9XG5cbiAgZ2V0U291cmNlKCkge1xuICAgIHJldHVybiB0aGlzLl9zb3VyY2U7XG4gIH1cblxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6dmFyaWFibGUtbmFtZVxuICBjb25zdHJ1Y3RvcihwdWJsaWMgX3NvdXJjZTogZmlyZWJhc2UucmVtb3RlQ29uZmlnLlZhbHVlU291cmNlLCBwdWJsaWMgX3ZhbHVlOiBzdHJpbmcpIHtcbiAgfVxufVxuXG4vLyBTRU1WRVIgdXNlIENvbnN0cnVjdG9yUGFyYW1ldGVycyB3aGVuIHdlIGNhbiBzdXBwb3J0IFR5cGVzY3JpcHQgMy42XG5leHBvcnQgY2xhc3MgUGFyYW1ldGVyIGV4dGVuZHMgVmFsdWUge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMga2V5OiBzdHJpbmcsIHB1YmxpYyBmZXRjaFRpbWVNaWxsaXM6IG51bWJlciwgc291cmNlOiBmaXJlYmFzZS5yZW1vdGVDb25maWcuVmFsdWVTb3VyY2UsIHZhbHVlOiBzdHJpbmcpIHtcbiAgICBzdXBlcihzb3VyY2UsIHZhbHVlKTtcbiAgfVxufVxuXG4vLyBJZiBpdCdzIGEgUGFyYW1ldGVyIGFycmF5LCB0ZXN0IGFueSwgZWxzZSB0ZXN0IHRoZSBpbmRpdmlkdWFsIFBhcmFtZXRlclxuY29uc3QgZmlsdGVyVGVzdCA9IChmbjogKHBhcmFtOiBQYXJhbWV0ZXIpID0+IGJvb2xlYW4pID0+IGZpbHRlcjxQYXJhbWV0ZXIgfCBQYXJhbWV0ZXJbXT4oaXQgPT4gQXJyYXkuaXNBcnJheShpdCkgPyBpdC5zb21lKGZuKSA6IGZuKGl0KSk7XG5cbi8vIEFsbG93IHRoZSB1c2VyIHRvIGJ5cGFzcyB0aGUgZGVmYXVsdCB2YWx1ZXMgYW5kIHdhaXQgdGlsbCB0aGV5IGdldCBzb21ldGhpbmcgZnJvbSB0aGUgc2VydmVyLCBldmVuIGlmIGl0J3MgYSBjYWNoZWQgY29weTtcbi8vIGlmIHVzZWQgaW4gY29uanVudGlvbiB3aXRoIGZpcnN0KCkgaXQgd2lsbCBvbmx5IGZldGNoIFJDIHZhbHVlcyBmcm9tIHRoZSBzZXJ2ZXIgaWYgdGhleSBhcmVuJ3QgY2FjaGVkIGxvY2FsbHlcbmV4cG9ydCBjb25zdCBmaWx0ZXJSZW1vdGUgPSAoKSA9PiBmaWx0ZXJUZXN0KHAgPT4gcC5nZXRTb3VyY2UoKSA9PT0gJ3JlbW90ZScpO1xuXG4vLyBmaWx0ZXJGcmVzaCBhbGxvd3MgdGhlIGRldmVsb3BlciB0byBlZmZlY3RpdmVseSBzZXQgdXAgYSBtYXhpbXVtIGNhY2hlIHRpbWVcbmV4cG9ydCBjb25zdCBmaWx0ZXJGcmVzaCA9IChob3dSZWNlbnRJbk1pbGxpczogbnVtYmVyKSA9PiBmaWx0ZXJUZXN0KHAgPT4gcC5mZXRjaFRpbWVNaWxsaXMgKyBob3dSZWNlbnRJbk1pbGxpcyA+PSBuZXcgRGF0ZSgpLmdldFRpbWUoKSk7XG5cblxuLy8gSSBkaXRjaGVkIGxvYWRpbmcgdGhlIGRlZmF1bHRzIGludG8gUkMgYW5kIGEgc2ltcGxlIG1hcCBmb3Igc2NhbiBzaW5jZSB3ZSBhbHJlYWR5IGhhdmUgb3VyIG93biBkZWZhdWx0cyBpbXBsZW1lbnRhdGlvbi5cbi8vIFRoZSBpZGVhIGhlcmUgYmVpbmcgdGhhdCBpZiB0aGV5IGhhdmUgYSBkZWZhdWx0IHRoYXQgbmV2ZXIgbG9hZHMgZnJvbSB0aGUgc2VydmVyLCB0aGV5IHdpbGwgYmUgYWJsZSB0byB0ZWxsIHZpYSBmZXRjaFRpbWVNaWxsaXNcbi8vIG9uIHRoZSBQYXJhbWV0ZXIuIEFsc28gaWYgaXQgZG9lc24ndCBjb21lIGZyb20gdGhlIHNlcnZlciBpdCB3b24ndCBlbWl0IGFnYWluIGluIC5jaGFuZ2VzLCBkdWUgdG8gdGhlIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuLy8gd2hpY2ggd2UgY2FuIHNpbXBsaWZ5IHRvID09PSByYXRoZXIgdGhhbiBkZWVwIGNvbXBhcmlzb25cbmNvbnN0IHNjYW5Ub1BhcmFtZXRlcnNBcnJheSA9IChcbiAgcmVtb3RlQ29uZmlnOiBPYnNlcnZhYmxlPGZpcmViYXNlLnJlbW90ZUNvbmZpZy5SZW1vdGVDb25maWcgfCB1bmRlZmluZWQ+XG4pOiBPcGVyYXRvckZ1bmN0aW9uPHsgW2tleTogc3RyaW5nXTogZmlyZWJhc2UucmVtb3RlQ29uZmlnLlZhbHVlIH0sIFBhcmFtZXRlcltdPiA9PiBwaXBlKFxuICB3aXRoTGF0ZXN0RnJvbShyZW1vdGVDb25maWcpLFxuICBzY2FuKChleGlzdGluZywgW2FsbCwgcmNdKSA9PiB7XG4gICAgLy8gU0VNVkVSIHVzZSBcIm5ldyBTZXRcIiB0byB1bmlxdWUgb25jZSB3ZSdyZSBvbmx5IHRhcmdldGluZyBlczZcbiAgICAvLyBhdCB0aGUgc2NhbGUgd2UgZXhwZWN0IHJlbW90ZSBjb25maWcgdG8gYmUgYXQsIHdlIHByb2JhYmx5IHdvbid0IHNlZSBhIHBlcmZvcm1hbmNlIGhpdCBmcm9tIHRoaXMgdW5vcHRpbWl6ZWQgdW5pcXVlbmVzc1xuICAgIC8vIGltcGxlbWVudGF0aW9uLlxuICAgIC8vIGNvbnN0IGFsbEtleXMgPSBbLi4ubmV3IFNldChbLi4uZXhpc3RpbmcubWFwKHAgPT4gcC5rZXkpLCAuLi5PYmplY3Qua2V5cyhhbGwpXSldO1xuICAgIGNvbnN0IGFsbEtleXMgPSBbLi4uZXhpc3RpbmcubWFwKHAgPT4gcC5rZXkpLCAuLi5PYmplY3Qua2V5cyhhbGwpXS5maWx0ZXIoKHYsIGksIGEpID0+IGEuaW5kZXhPZih2KSA9PT0gaSk7XG4gICAgcmV0dXJuIGFsbEtleXMubWFwKGtleSA9PiB7XG4gICAgICBjb25zdCB1cGRhdGVkVmFsdWUgPSBhbGxba2V5XTtcbiAgICAgIHJldHVybiB1cGRhdGVkVmFsdWUgPyBuZXcgUGFyYW1ldGVyKGtleSwgcmMgPyByYy5mZXRjaFRpbWVNaWxsaXMgOiAtMSwgdXBkYXRlZFZhbHVlLmdldFNvdXJjZSgpLCB1cGRhdGVkVmFsdWUuYXNTdHJpbmcoKSlcbiAgICAgICAgOiBleGlzdGluZy5maW5kKHAgPT4gcC5rZXkgPT09IGtleSk7XG4gICAgfSk7XG4gIH0sIFtdIGFzIEFycmF5PFBhcmFtZXRlcj4pXG4pO1xuXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ2FueSdcbn0pXG5leHBvcnQgY2xhc3MgQW5ndWxhckZpcmVSZW1vdGVDb25maWcge1xuXG4gIHJlYWRvbmx5IGNoYW5nZXM6IE9ic2VydmFibGU8UGFyYW1ldGVyPjtcbiAgcmVhZG9ubHkgcGFyYW1ldGVyczogT2JzZXJ2YWJsZTxQYXJhbWV0ZXJbXT47XG4gIHJlYWRvbmx5IG51bWJlcnM6IE9ic2VydmFibGU8eyBba2V5OiBzdHJpbmddOiBudW1iZXIgfCB1bmRlZmluZWQgfT4gJiB7IFtrZXk6IHN0cmluZ106IE9ic2VydmFibGU8bnVtYmVyPiB9O1xuICByZWFkb25seSBib29sZWFuczogT2JzZXJ2YWJsZTx7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfCB1bmRlZmluZWQgfT4gJiB7IFtrZXk6IHN0cmluZ106IE9ic2VydmFibGU8Ym9vbGVhbj4gfTtcbiAgcmVhZG9ubHkgc3RyaW5nczogT2JzZXJ2YWJsZTx7IFtrZXk6IHN0cmluZ106IHN0cmluZyB8IHVuZGVmaW5lZCB9PiAmIHsgW2tleTogc3RyaW5nXTogT2JzZXJ2YWJsZTxzdHJpbmcgfCB1bmRlZmluZWQ+IH07XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChGSVJFQkFTRV9PUFRJT05TKSBvcHRpb25zOiBGaXJlYmFzZU9wdGlvbnMsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChGSVJFQkFTRV9BUFBfTkFNRSkgbmFtZTogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFNFVFRJTkdTKSBzZXR0aW5nczogU2V0dGluZ3MgfCBudWxsLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoREVGQVVMVFMpIGRlZmF1bHRDb25maWc6IENvbmZpZ1RlbXBsYXRlIHwgbnVsbCxcbiAgICBwcml2YXRlIHpvbmU6IE5nWm9uZSxcbiAgICBzY2hlZHVsZXJzOiDJtUFuZ3VsYXJGaXJlU2NoZWR1bGVycyxcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6YmFuLXR5cGVzXG4gICAgQEluamVjdChQTEFURk9STV9JRCkgcGxhdGZvcm1JZDogT2JqZWN0XG4gICkge1xuICAgIGNvbnN0IHJlbW90ZUNvbmZpZyQgPSBvZih1bmRlZmluZWQpLnBpcGUoXG4gICAgICBvYnNlcnZlT24oc2NoZWR1bGVycy5vdXRzaWRlQW5ndWxhciksXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4gaXNTdXBwb3J0ZWQoKSksXG4gICAgICBzd2l0Y2hNYXAoaXNTdXBwb3J0ZWQgPT4gaXNTdXBwb3J0ZWQgPyBpbXBvcnQoJ2ZpcmViYXNlL2NvbXBhdC9yZW1vdGUtY29uZmlnJykgOiBFTVBUWSksXG4gICAgICBtYXAoKCkgPT4gybVmaXJlYmFzZUFwcEZhY3Rvcnkob3B0aW9ucywgem9uZSwgbmFtZSkpLFxuICAgICAgbWFwKGFwcCA9PiDJtWNhY2hlSW5zdGFuY2UoYCR7YXBwLm5hbWV9LnJlbW90ZS1jb25maWdgLCAnQW5ndWxhckZpcmVSZW1vdGVDb25maWcnLCBhcHAubmFtZSwgKCkgPT4ge1xuICAgICAgICBjb25zdCByYyA9IGFwcC5yZW1vdGVDb25maWcoKTtcbiAgICAgICAgaWYgKHNldHRpbmdzKSB7XG4gICAgICAgICAgcmMuc2V0dGluZ3MgPSBzZXR0aW5ncztcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGVmYXVsdENvbmZpZykge1xuICAgICAgICAgIHJjLmRlZmF1bHRDb25maWcgPSBkZWZhdWx0Q29uZmlnO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByYztcbiAgICAgIH0sIFtzZXR0aW5ncywgZGVmYXVsdENvbmZpZ10pKSxcbiAgICAgIHN0YXJ0V2l0aDxmaXJlYmFzZS5yZW1vdGVDb25maWcuUmVtb3RlQ29uZmlnLCB1bmRlZmluZWQ+KHVuZGVmaW5lZCksXG4gICAgICBzaGFyZVJlcGxheSh7IGJ1ZmZlclNpemU6IDEsIHJlZkNvdW50OiBmYWxzZSB9KVxuICAgICk7XG5cbiAgICBjb25zdCBsb2FkZWRSZW1vdGVDb25maWckID0gcmVtb3RlQ29uZmlnJC5waXBlKFxuICAgICAgZmlsdGVyPGZpcmViYXNlLnJlbW90ZUNvbmZpZy5SZW1vdGVDb25maWc+KHJjID0+ICEhcmMpXG4gICAgKTtcblxuICAgIGNvbnN0IGRlZmF1bHQkOiBPYnNlcnZhYmxlPHsgW2tleTogc3RyaW5nXTogZmlyZWJhc2UucmVtb3RlQ29uZmlnLlZhbHVlIH0+ID0gb2YoT2JqZWN0LmtleXMoZGVmYXVsdENvbmZpZyB8fCB7fSkucmVkdWNlKFxuICAgICAgKGMsIGspID0+ICh7IC4uLmMsIFtrXTogbmV3IFZhbHVlKCdkZWZhdWx0JywgZGVmYXVsdENvbmZpZ1trXS50b1N0cmluZygpKSB9KSwge31cbiAgICApKTtcblxuICAgIC8vIHdlIHNob3VsZCBmaWx0ZXIgb3V0IHRoZSBkZWZhdWx0cyB3ZSBwcm92aWRlZCB0byBSQywgc2luY2Ugd2UgaGF2ZSBvdXIgb3duIGltcGxlbWVudGF0aW9uXG4gICAgLy8gdGhhdCBnaXZlcyB1cyBhIC0xIGZvciBmZXRjaFRpbWVNaWxsaXMgKHNvIGZpbHRlckZyZXNoIGNhbiBmaWx0ZXIgdGhlbSBvdXQpXG4gICAgY29uc3QgZmlsdGVyT3V0RGVmYXVsdHMgPSBtYXA8eyBba2V5OiBzdHJpbmddOiBmaXJlYmFzZS5yZW1vdGVDb25maWcuVmFsdWUgfSwgeyBba2V5OiBzdHJpbmddOiBmaXJlYmFzZS5yZW1vdGVDb25maWcuVmFsdWUgfT4oYWxsID0+XG4gICAgICBPYmplY3Qua2V5cyhhbGwpXG4gICAgICAgIC5maWx0ZXIoa2V5ID0+IGFsbFtrZXldLmdldFNvdXJjZSgpICE9PSAnZGVmYXVsdCcpXG4gICAgICAgIC5yZWR1Y2UoKGFjYywga2V5KSA9PiAoeyAuLi5hY2MsIFtrZXldOiBhbGxba2V5XSB9KSwge30pXG4gICAgKTtcblxuICAgIGNvbnN0IGV4aXN0aW5nJCA9IGxvYWRlZFJlbW90ZUNvbmZpZyQucGlwZShcbiAgICAgIHN3aXRjaE1hcChyYyA9PlxuICAgICAgICByYy5hY3RpdmF0ZSgpXG4gICAgICAgICAgLnRoZW4oKCkgPT4gcmMuZW5zdXJlSW5pdGlhbGl6ZWQoKSlcbiAgICAgICAgICAudGhlbigoKSA9PiByYy5nZXRBbGwoKSlcbiAgICAgICksXG4gICAgICBmaWx0ZXJPdXREZWZhdWx0c1xuICAgICk7XG5cbiAgICBjb25zdCBmcmVzaCQgPSBsb2FkZWRSZW1vdGVDb25maWckLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAocmMgPT4gem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PlxuICAgICAgICByYy5mZXRjaEFuZEFjdGl2YXRlKClcbiAgICAgICAgICAudGhlbigoKSA9PiByYy5lbnN1cmVJbml0aWFsaXplZCgpKVxuICAgICAgICAgIC50aGVuKCgpID0+IHJjLmdldEFsbCgpKVxuICAgICAgKSksXG4gICAgICBmaWx0ZXJPdXREZWZhdWx0c1xuICAgICk7XG5cbiAgICB0aGlzLnBhcmFtZXRlcnMgPSBjb25jYXQoZGVmYXVsdCQsIGV4aXN0aW5nJCwgZnJlc2gkKS5waXBlKFxuICAgICAgc2NhblRvUGFyYW1ldGVyc0FycmF5KHJlbW90ZUNvbmZpZyQpLFxuICAgICAga2VlcFVuc3RhYmxlVW50aWxGaXJzdCxcbiAgICAgIHNoYXJlUmVwbGF5KHsgYnVmZmVyU2l6ZTogMSwgcmVmQ291bnQ6IHRydWUgfSlcbiAgICApO1xuXG4gICAgdGhpcy5jaGFuZ2VzID0gdGhpcy5wYXJhbWV0ZXJzLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAocGFyYW1zID0+IG9mKC4uLnBhcmFtcykpLFxuICAgICAgZ3JvdXBCeShwYXJhbSA9PiBwYXJhbS5rZXkpLFxuICAgICAgbWVyZ2VNYXAoZ3JvdXAgPT4gZ3JvdXAucGlwZShcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgICAgKSlcbiAgICApO1xuXG4gICAgdGhpcy5zdHJpbmdzID0gcHJveHlBbGwodGhpcy5wYXJhbWV0ZXJzLCAnc3RyaW5ncycpO1xuICAgIHRoaXMuYm9vbGVhbnMgPSBwcm94eUFsbCh0aGlzLnBhcmFtZXRlcnMsICdib29sZWFucycpO1xuICAgIHRoaXMubnVtYmVycyA9IHByb3h5QWxsKHRoaXMucGFyYW1ldGVycywgJ251bWJlcnMnKTtcblxuICAgIHJldHVybiDJtWxhenlTREtQcm94eSh0aGlzLCBsb2FkZWRSZW1vdGVDb25maWckLCB6b25lKTtcbiAgfVxuXG59XG5cblxuZXhwb3J0IGNvbnN0IGJ1ZGdldCA9IDxUPihpbnRlcnZhbDogbnVtYmVyKTogTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uPFQ+ID0+IChzb3VyY2U6IE9ic2VydmFibGU8VD4pID0+IG5ldyBPYnNlcnZhYmxlPFQ+KG9ic2VydmVyID0+IHtcbiAgbGV0IHRpbWVkT3V0ID0gZmFsc2U7XG4gIC8vIFRPRE8gdXNlIHNjaGVkdWxlciB0YXNrIHJhdGhlciB0aGFuIHNldHRpbWVvdXRcbiAgY29uc3QgdGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgdGltZWRPdXQgPSB0cnVlO1xuICB9LCBpbnRlcnZhbCk7XG4gIHJldHVybiBzb3VyY2Uuc3Vic2NyaWJlKHtcbiAgICBuZXh0KHZhbCkge1xuICAgICAgaWYgKCF0aW1lZE91dCkge1xuICAgICAgICBvYnNlcnZlci5uZXh0KHZhbCk7XG4gICAgICB9XG4gICAgfSxcbiAgICBlcnJvcihlcnIpIHtcbiAgICAgIGlmICghdGltZWRPdXQpIHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXQpO1xuICAgICAgICBvYnNlcnZlci5lcnJvcihlcnIpO1xuICAgICAgfVxuICAgIH0sXG4gICAgY29tcGxldGUoKSB7XG4gICAgICBpZiAoIXRpbWVkT3V0KSB7XG4gICAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0KTtcbiAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xufSk7XG5cbmNvbnN0IHR5cGVkTWV0aG9kID0gKGl0OiBhbnkpID0+IHtcbiAgc3dpdGNoICh0eXBlb2YgaXQpIHtcbiAgICBjYXNlICdzdHJpbmcnOlxuICAgICAgcmV0dXJuICdhc1N0cmluZyc7XG4gICAgY2FzZSAnYm9vbGVhbic6XG4gICAgICByZXR1cm4gJ2FzQm9vbGVhbic7XG4gICAgY2FzZSAnbnVtYmVyJzpcbiAgICAgIHJldHVybiAnYXNOdW1iZXInO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gJ2FzU3RyaW5nJztcbiAgfVxufTtcblxuXG5leHBvcnQgZnVuY3Rpb24gc2NhblRvT2JqZWN0KCk6IE9wZXJhdG9yRnVuY3Rpb248UGFyYW1ldGVyLCB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB8IHVuZGVmaW5lZCB9PjtcbmV4cG9ydCBmdW5jdGlvbiBzY2FuVG9PYmplY3QodG86ICdudW1iZXJzJyk6IE9wZXJhdG9yRnVuY3Rpb248UGFyYW1ldGVyLCB7IFtrZXk6IHN0cmluZ106IG51bWJlciB8IHVuZGVmaW5lZCB9PjtcbmV4cG9ydCBmdW5jdGlvbiBzY2FuVG9PYmplY3QodG86ICdib29sZWFucycpOiBPcGVyYXRvckZ1bmN0aW9uPFBhcmFtZXRlciwgeyBba2V5OiBzdHJpbmddOiBib29sZWFuIHwgdW5kZWZpbmVkIH0+O1xuLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOnVuaWZpZWQtc2lnbmF0dXJlc1xuZXhwb3J0IGZ1bmN0aW9uIHNjYW5Ub09iamVjdCh0bzogJ3N0cmluZ3MnKTogT3BlcmF0b3JGdW5jdGlvbjxQYXJhbWV0ZXIsIHsgW2tleTogc3RyaW5nXTogc3RyaW5nIHwgdW5kZWZpbmVkIH0+O1xuZXhwb3J0IGZ1bmN0aW9uIHNjYW5Ub09iamVjdDxUIGV4dGVuZHMgQ29uZmlnVGVtcGxhdGU+KHRlbXBsYXRlOiBUKTogT3BlcmF0b3JGdW5jdGlvbjxQYXJhbWV0ZXIsIFQgJiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB8IHVuZGVmaW5lZCB9PjtcbmV4cG9ydCBmdW5jdGlvbiBzY2FuVG9PYmplY3Q8VCBleHRlbmRzIENvbmZpZ1RlbXBsYXRlPih0bzogJ251bWJlcnMnIHwgJ2Jvb2xlYW5zJyB8ICdzdHJpbmdzJyB8IFQgPSAnc3RyaW5ncycpIHtcbiAgcmV0dXJuIHBpcGUoXG4gICAgLy8gVE9ETyBjbGVhbnVwXG4gICAgc2NhbihcbiAgICAgIChjLCBwOiBQYXJhbWV0ZXIpID0+ICh7XG4gICAgICAgIC4uLmMsIFtwLmtleV06IHR5cGVvZiB0byA9PT0gJ29iamVjdCcgP1xuICAgICAgICAgIHBbdHlwZWRNZXRob2QodG9bcC5rZXldKV0oKSA6XG4gICAgICAgICAgcFtBU19UT19GTlt0b11dKClcbiAgICAgIH0pLFxuICAgICAgdHlwZW9mIHRvID09PSAnb2JqZWN0JyA/XG4gICAgICAgIHRvIGFzIFQgJiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB8IHVuZGVmaW5lZCB9IDpcbiAgICAgICAge30gYXMgeyBba2V5OiBzdHJpbmddOiBudW1iZXIgfCBib29sZWFuIHwgc3RyaW5nIH1cbiAgICApLFxuICAgIGRlYm91bmNlVGltZSgxKSxcbiAgICBidWRnZXQoMTApLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKChhLCBiKSA9PiBKU09OLnN0cmluZ2lmeShhKSA9PT0gSlNPTi5zdHJpbmdpZnkoYikpXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXBUb09iamVjdCgpOiBPcGVyYXRvckZ1bmN0aW9uPFBhcmFtZXRlcltdLCB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB8IHVuZGVmaW5lZCB9PjtcbmV4cG9ydCBmdW5jdGlvbiBtYXBUb09iamVjdCh0bzogJ251bWJlcnMnKTogT3BlcmF0b3JGdW5jdGlvbjxQYXJhbWV0ZXJbXSwgeyBba2V5OiBzdHJpbmddOiBudW1iZXIgfCB1bmRlZmluZWQgfT47XG5leHBvcnQgZnVuY3Rpb24gbWFwVG9PYmplY3QodG86ICdib29sZWFucycpOiBPcGVyYXRvckZ1bmN0aW9uPFBhcmFtZXRlcltdLCB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfCB1bmRlZmluZWQgfT47XG4vLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6dW5pZmllZC1zaWduYXR1cmVzXG5leHBvcnQgZnVuY3Rpb24gbWFwVG9PYmplY3QodG86ICdzdHJpbmdzJyk6IE9wZXJhdG9yRnVuY3Rpb248UGFyYW1ldGVyW10sIHsgW2tleTogc3RyaW5nXTogc3RyaW5nIHwgdW5kZWZpbmVkIH0+O1xuZXhwb3J0IGZ1bmN0aW9uIG1hcFRvT2JqZWN0PFQgZXh0ZW5kcyBDb25maWdUZW1wbGF0ZT4odGVtcGxhdGU6IFQpOlxuICBPcGVyYXRvckZ1bmN0aW9uPFBhcmFtZXRlcltdLCBUICYgeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfCB1bmRlZmluZWQgfT47XG5leHBvcnQgZnVuY3Rpb24gbWFwVG9PYmplY3Q8VCBleHRlbmRzIENvbmZpZ1RlbXBsYXRlPih0bzogJ251bWJlcnMnIHwgJ2Jvb2xlYW5zJyB8ICdzdHJpbmdzJyB8IFQgPSAnc3RyaW5ncycpIHtcbiAgcmV0dXJuIHBpcGUoXG4gICAgLy8gVE9ETyB0aGlzIGlzIGdldHRpbmcgYSBsaXR0bGUgbG9uZywgY2xlYW51cFxuICAgIG1hcCgocGFyYW1zOiBQYXJhbWV0ZXJbXSkgPT4gcGFyYW1zLnJlZHVjZShcbiAgICAgIChjLCBwKSA9PiAoe1xuICAgICAgICAuLi5jLCBbcC5rZXldOiB0eXBlb2YgdG8gPT09ICdvYmplY3QnID9cbiAgICAgICAgICBwW3R5cGVkTWV0aG9kKHRvW3Aua2V5XSldKCkgOlxuICAgICAgICAgIHBbQVNfVE9fRk5bdG9dXSgpXG4gICAgICB9KSxcbiAgICAgIHR5cGVvZiB0byA9PT0gJ29iamVjdCcgP1xuICAgICAgICB0byBhcyBUICYgeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfCB1bmRlZmluZWQgfSA6XG4gICAgICAgIHt9IGFzIHsgW2tleTogc3RyaW5nXTogbnVtYmVyIHwgYm9vbGVhbiB8IHN0cmluZyB9XG4gICAgKSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKGEsIGIpID0+IEpTT04uc3RyaW5naWZ5KGEpID09PSBKU09OLnN0cmluZ2lmeShiKSlcbiAgKTtcbn1cblxuybVhcHBseU1peGlucyhBbmd1bGFyRmlyZVJlbW90ZUNvbmZpZywgW3Byb3h5UG9seWZpbGxDb21wYXRdKTtcbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wYXQvc3RvcmFnZS9pbnRlcmZhY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZmlyZWJhc2UgZnJvbSAnZmlyZWJhc2UvY29tcGF0L2FwcCc7XG5cbmV4cG9ydCB0eXBlIFVwbG9hZFRhc2sgPSBmaXJlYmFzZS5zdG9yYWdlLlVwbG9hZFRhc2s7XG5leHBvcnQgdHlwZSBVcGxvYWRUYXNrU25hcHNob3QgPSBmaXJlYmFzZS5zdG9yYWdlLlVwbG9hZFRhc2tTbmFwc2hvdDtcbmV4cG9ydCB0eXBlIFVwbG9hZE1ldGFkYXRhID0gZmlyZWJhc2Uuc3RvcmFnZS5VcGxvYWRNZXRhZGF0YTtcblxuZXhwb3J0IHR5cGUgU2V0dGFibGVNZXRhZGF0YSA9IGZpcmViYXNlLnN0b3JhZ2UuU2V0dGFibGVNZXRhZGF0YTtcbmV4cG9ydCB0eXBlIFJlZmVyZW5jZSA9IGZpcmViYXNlLnN0b3JhZ2UuUmVmZXJlbmNlO1xuZXhwb3J0IHR5cGUgU3RyaW5nRm9ybWF0ID0gZmlyZWJhc2Uuc3RvcmFnZS5TdHJpbmdGb3JtYXQ7XG5leHBvcnQgdHlwZSBMaXN0UmVzdWx0ID0gZmlyZWJhc2Uuc3RvcmFnZS5MaXN0UmVzdWx0O1xuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wYXQvc3RvcmFnZS9pbnRlcmZhY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZmlyZWJhc2UgZnJvbSAnZmlyZWJhc2UvY29tcGF0L2FwcCc7XG5cbmV4cG9ydCB0eXBlIFVwbG9hZFRhc2sgPSBmaXJlYmFzZS5zdG9yYWdlLlVwbG9hZFRhc2s7XG5leHBvcnQgdHlwZSBVcGxvYWRUYXNrU25hcHNob3QgPSBmaXJlYmFzZS5zdG9yYWdlLlVwbG9hZFRhc2tTbmFwc2hvdDtcbmV4cG9ydCB0eXBlIFVwbG9hZE1ldGFkYXRhID0gZmlyZWJhc2Uuc3RvcmFnZS5VcGxvYWRNZXRhZGF0YTtcblxuZXhwb3J0IHR5cGUgU2V0dGFibGVNZXRhZGF0YSA9IGZpcmViYXNlLnN0b3JhZ2UuU2V0dGFibGVNZXRhZGF0YTtcbmV4cG9ydCB0eXBlIFJlZmVyZW5jZSA9IGZpcmViYXNlLnN0b3JhZ2UuUmVmZXJlbmNlO1xuZXhwb3J0IHR5cGUgU3RyaW5nRm9ybWF0ID0gZmlyZWJhc2Uuc3RvcmFnZS5TdHJpbmdGb3JtYXQ7XG5leHBvcnQgdHlwZSBMaXN0UmVzdWx0ID0gZmlyZWJhc2Uuc3RvcmFnZS5MaXN0UmVzdWx0O1xuZXhwb3J0IHR5cGUgTGlzdE9wdGlvbnMgPSBmaXJlYmFzZS5zdG9yYWdlLkxpc3RPcHRpb25zO1xuIl19
@@ -21,7 +21,8 @@ export function createStorageRef(ref) {
21
21
  const task = ref.putString(data, format, metadata);
22
22
  return createUploadTask(task);
23
23
  },
24
+ list: (options) => from(ref.list(options)),
24
25
  listAll: () => from(ref.listAll())
25
26
  };
26
27
  }
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBhdC9zdG9yYWdlL3JlZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQXlCLGdCQUFnQixFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxJQUFJLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFhM0M7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLGdCQUFnQixDQUM5QixHQUFjO0lBRWQsT0FBTztRQUNMLGNBQWMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUN0QyxxQkFBcUIsRUFDckIsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxFQUNyQyxzQkFBc0IsQ0FDdkI7UUFDRCxXQUFXLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FDbkMscUJBQXFCLEVBQ3JCLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUMsRUFDbEMsc0JBQXNCLENBQ3ZCO1FBQ0QsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDaEMsS0FBSyxFQUFFLENBQUMsSUFBWSxFQUFFLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFELGNBQWMsRUFBRSxDQUFDLElBQXNCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFFLEdBQUcsRUFBRSxDQUFDLElBQVMsRUFBRSxRQUF5QixFQUFFLEVBQUU7WUFDNUMsTUFBTSxJQUFJLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDckMsT0FBTyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoQyxDQUFDO1FBQ0QsU0FBUyxFQUFFLENBQUMsSUFBWSxFQUFFLE1BQXFCLEVBQUUsUUFBeUIsRUFBRSxFQUFFO1lBQzVFLE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztZQUNuRCxPQUFPLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hDLENBQUM7UUFDRCxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztLQUNuQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExpc3RSZXN1bHQsIFJlZmVyZW5jZSwgU2V0dGFibGVNZXRhZGF0YSwgU3RyaW5nRm9ybWF0LCBVcGxvYWRNZXRhZGF0YSB9IGZyb20gJy4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBBbmd1bGFyRmlyZVVwbG9hZFRhc2ssIGNyZWF0ZVVwbG9hZFRhc2sgfSBmcm9tICcuL3Rhc2snO1xuaW1wb3J0IHsgZnJvbSwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG9ic2VydmVPdXRzaWRlQW5ndWxhciwga2VlcFVuc3RhYmxlVW50aWxGaXJzdCB9IGZyb20gJ0Bhbmd1bGFyL2ZpcmUnO1xuaW1wb3J0IHsgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFuZ3VsYXJGaXJlU3RvcmFnZVJlZmVyZW5jZSB7XG4gIGdldERvd25sb2FkVVJMKCk6IE9ic2VydmFibGU8YW55PjtcbiAgZ2V0TWV0YWRhdGEoKTogT2JzZXJ2YWJsZTxhbnk+O1xuICBkZWxldGUoKTogT2JzZXJ2YWJsZTxhbnk+O1xuICBjaGlsZChwYXRoOiBzdHJpbmcpOiBBbmd1bGFyRmlyZVN0b3JhZ2VSZWZlcmVuY2U7XG4gIHVwZGF0ZU1ldGFkYXRhKG1ldGE6IFNldHRhYmxlTWV0YWRhdGEpOiBPYnNlcnZhYmxlPGFueT47XG4gIHB1dChkYXRhOiBhbnksIG1ldGFkYXRhPzogVXBsb2FkTWV0YWRhdGEgfCB1bmRlZmluZWQpOiBBbmd1bGFyRmlyZVVwbG9hZFRhc2s7XG4gIHB1dFN0cmluZyhkYXRhOiBzdHJpbmcsIGZvcm1hdD86IHN0cmluZyB8IHVuZGVmaW5lZCwgbWV0YWRhdGE/OiBVcGxvYWRNZXRhZGF0YSB8IHVuZGVmaW5lZCk6IEFuZ3VsYXJGaXJlVXBsb2FkVGFzaztcbiAgbGlzdEFsbCgpOiBPYnNlcnZhYmxlPExpc3RSZXN1bHQ+O1xufVxuXG4vKipcbiAqIENyZWF0ZSBhbiBBbmd1bGFyRmlyZSB3cmFwcGVkIFN0b3JhZ2UgUmVmZXJlbmNlLiBUaGlzIG9iamVjdFxuICogY3JlYXRlcyBvYnNlcnZhYmxlIG1ldGhvZHMgZnJvbSBwcm9taXNlIGJhc2VkIG1ldGhvZHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVTdG9yYWdlUmVmKFxuICByZWY6IFJlZmVyZW5jZVxuKTogQW5ndWxhckZpcmVTdG9yYWdlUmVmZXJlbmNlIHtcbiAgcmV0dXJuIHtcbiAgICBnZXREb3dubG9hZFVSTDogKCkgPT4gb2YodW5kZWZpbmVkKS5waXBlKFxuICAgICAgb2JzZXJ2ZU91dHNpZGVBbmd1bGFyLFxuICAgICAgc3dpdGNoTWFwKCgpID0+IHJlZi5nZXREb3dubG9hZFVSTCgpKSxcbiAgICAgIGtlZXBVbnN0YWJsZVVudGlsRmlyc3RcbiAgICApLFxuICAgIGdldE1ldGFkYXRhOiAoKSA9PiBvZih1bmRlZmluZWQpLnBpcGUoXG4gICAgICBvYnNlcnZlT3V0c2lkZUFuZ3VsYXIsXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4gcmVmLmdldE1ldGFkYXRhKCkpLFxuICAgICAga2VlcFVuc3RhYmxlVW50aWxGaXJzdFxuICAgICksXG4gICAgZGVsZXRlOiAoKSA9PiBmcm9tKHJlZi5kZWxldGUoKSksXG4gICAgY2hpbGQ6IChwYXRoOiBzdHJpbmcpID0+IGNyZWF0ZVN0b3JhZ2VSZWYocmVmLmNoaWxkKHBhdGgpKSxcbiAgICB1cGRhdGVNZXRhZGF0YTogKG1ldGE6IFNldHRhYmxlTWV0YWRhdGEpID0+IGZyb20ocmVmLnVwZGF0ZU1ldGFkYXRhKG1ldGEpKSxcbiAgICBwdXQ6IChkYXRhOiBhbnksIG1ldGFkYXRhPzogVXBsb2FkTWV0YWRhdGEpID0+IHtcbiAgICAgIGNvbnN0IHRhc2sgPSByZWYucHV0KGRhdGEsIG1ldGFkYXRhKTtcbiAgICAgIHJldHVybiBjcmVhdGVVcGxvYWRUYXNrKHRhc2spO1xuICAgIH0sXG4gICAgcHV0U3RyaW5nOiAoZGF0YTogc3RyaW5nLCBmb3JtYXQ/OiBTdHJpbmdGb3JtYXQsIG1ldGFkYXRhPzogVXBsb2FkTWV0YWRhdGEpID0+IHtcbiAgICAgIGNvbnN0IHRhc2sgPSByZWYucHV0U3RyaW5nKGRhdGEsIGZvcm1hdCwgbWV0YWRhdGEpO1xuICAgICAgcmV0dXJuIGNyZWF0ZVVwbG9hZFRhc2sodGFzayk7XG4gICAgfSxcbiAgICBsaXN0QWxsOiAoKSA9PiBmcm9tKHJlZi5saXN0QWxsKCkpXG4gIH07XG59XG4iXX0=
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBhdC9zdG9yYWdlL3JlZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQXlCLGdCQUFnQixFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxJQUFJLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFjM0M7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLGdCQUFnQixDQUM5QixHQUFjO0lBRWQsT0FBTztRQUNMLGNBQWMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUN0QyxxQkFBcUIsRUFDckIsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxFQUNyQyxzQkFBc0IsQ0FDdkI7UUFDRCxXQUFXLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FDbkMscUJBQXFCLEVBQ3JCLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUMsRUFDbEMsc0JBQXNCLENBQ3ZCO1FBQ0QsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDaEMsS0FBSyxFQUFFLENBQUMsSUFBWSxFQUFFLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFELGNBQWMsRUFBRSxDQUFDLElBQXNCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFFLEdBQUcsRUFBRSxDQUFDLElBQVMsRUFBRSxRQUF5QixFQUFFLEVBQUU7WUFDNUMsTUFBTSxJQUFJLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDckMsT0FBTyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoQyxDQUFDO1FBQ0QsU0FBUyxFQUFFLENBQUMsSUFBWSxFQUFFLE1BQXFCLEVBQUUsUUFBeUIsRUFBRSxFQUFFO1lBQzVFLE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztZQUNuRCxPQUFPLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hDLENBQUM7UUFDRCxJQUFJLEVBQUUsQ0FBQyxPQUFxQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN4RCxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztLQUNuQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExpc3RPcHRpb25zLCBMaXN0UmVzdWx0LCBSZWZlcmVuY2UsIFNldHRhYmxlTWV0YWRhdGEsIFN0cmluZ0Zvcm1hdCwgVXBsb2FkTWV0YWRhdGEgfSBmcm9tICcuL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQW5ndWxhckZpcmVVcGxvYWRUYXNrLCBjcmVhdGVVcGxvYWRUYXNrIH0gZnJvbSAnLi90YXNrJztcbmltcG9ydCB7IGZyb20sIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBvYnNlcnZlT3V0c2lkZUFuZ3VsYXIsIGtlZXBVbnN0YWJsZVVudGlsRmlyc3QgfSBmcm9tICdAYW5ndWxhci9maXJlJztcbmltcG9ydCB7IHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuZXhwb3J0IGludGVyZmFjZSBBbmd1bGFyRmlyZVN0b3JhZ2VSZWZlcmVuY2Uge1xuICBnZXREb3dubG9hZFVSTCgpOiBPYnNlcnZhYmxlPGFueT47XG4gIGdldE1ldGFkYXRhKCk6IE9ic2VydmFibGU8YW55PjtcbiAgZGVsZXRlKCk6IE9ic2VydmFibGU8YW55PjtcbiAgY2hpbGQocGF0aDogc3RyaW5nKTogQW5ndWxhckZpcmVTdG9yYWdlUmVmZXJlbmNlO1xuICB1cGRhdGVNZXRhZGF0YShtZXRhOiBTZXR0YWJsZU1ldGFkYXRhKTogT2JzZXJ2YWJsZTxhbnk+O1xuICBwdXQoZGF0YTogYW55LCBtZXRhZGF0YT86IFVwbG9hZE1ldGFkYXRhIHwgdW5kZWZpbmVkKTogQW5ndWxhckZpcmVVcGxvYWRUYXNrO1xuICBwdXRTdHJpbmcoZGF0YTogc3RyaW5nLCBmb3JtYXQ/OiBzdHJpbmcgfCB1bmRlZmluZWQsIG1ldGFkYXRhPzogVXBsb2FkTWV0YWRhdGEgfCB1bmRlZmluZWQpOiBBbmd1bGFyRmlyZVVwbG9hZFRhc2s7XG4gIGxpc3Qob3B0aW9ucz86IExpc3RPcHRpb25zKTogT2JzZXJ2YWJsZTxMaXN0UmVzdWx0PjtcbiAgbGlzdEFsbCgpOiBPYnNlcnZhYmxlPExpc3RSZXN1bHQ+O1xufVxuXG4vKipcbiAqIENyZWF0ZSBhbiBBbmd1bGFyRmlyZSB3cmFwcGVkIFN0b3JhZ2UgUmVmZXJlbmNlLiBUaGlzIG9iamVjdFxuICogY3JlYXRlcyBvYnNlcnZhYmxlIG1ldGhvZHMgZnJvbSBwcm9taXNlIGJhc2VkIG1ldGhvZHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVTdG9yYWdlUmVmKFxuICByZWY6IFJlZmVyZW5jZVxuKTogQW5ndWxhckZpcmVTdG9yYWdlUmVmZXJlbmNlIHtcbiAgcmV0dXJuIHtcbiAgICBnZXREb3dubG9hZFVSTDogKCkgPT4gb2YodW5kZWZpbmVkKS5waXBlKFxuICAgICAgb2JzZXJ2ZU91dHNpZGVBbmd1bGFyLFxuICAgICAgc3dpdGNoTWFwKCgpID0+IHJlZi5nZXREb3dubG9hZFVSTCgpKSxcbiAgICAgIGtlZXBVbnN0YWJsZVVudGlsRmlyc3RcbiAgICApLFxuICAgIGdldE1ldGFkYXRhOiAoKSA9PiBvZih1bmRlZmluZWQpLnBpcGUoXG4gICAgICBvYnNlcnZlT3V0c2lkZUFuZ3VsYXIsXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4gcmVmLmdldE1ldGFkYXRhKCkpLFxuICAgICAga2VlcFVuc3RhYmxlVW50aWxGaXJzdFxuICAgICksXG4gICAgZGVsZXRlOiAoKSA9PiBmcm9tKHJlZi5kZWxldGUoKSksXG4gICAgY2hpbGQ6IChwYXRoOiBzdHJpbmcpID0+IGNyZWF0ZVN0b3JhZ2VSZWYocmVmLmNoaWxkKHBhdGgpKSxcbiAgICB1cGRhdGVNZXRhZGF0YTogKG1ldGE6IFNldHRhYmxlTWV0YWRhdGEpID0+IGZyb20ocmVmLnVwZGF0ZU1ldGFkYXRhKG1ldGEpKSxcbiAgICBwdXQ6IChkYXRhOiBhbnksIG1ldGFkYXRhPzogVXBsb2FkTWV0YWRhdGEpID0+IHtcbiAgICAgIGNvbnN0IHRhc2sgPSByZWYucHV0KGRhdGEsIG1ldGFkYXRhKTtcbiAgICAgIHJldHVybiBjcmVhdGVVcGxvYWRUYXNrKHRhc2spO1xuICAgIH0sXG4gICAgcHV0U3RyaW5nOiAoZGF0YTogc3RyaW5nLCBmb3JtYXQ/OiBTdHJpbmdGb3JtYXQsIG1ldGFkYXRhPzogVXBsb2FkTWV0YWRhdGEpID0+IHtcbiAgICAgIGNvbnN0IHRhc2sgPSByZWYucHV0U3RyaW5nKGRhdGEsIGZvcm1hdCwgbWV0YWRhdGEpO1xuICAgICAgcmV0dXJuIGNyZWF0ZVVwbG9hZFRhc2sodGFzayk7XG4gICAgfSxcbiAgICBsaXN0OiAob3B0aW9ucz86IExpc3RPcHRpb25zKSA9PiBmcm9tKHJlZi5saXN0KG9wdGlvbnMpKSxcbiAgICBsaXN0QWxsOiAoKSA9PiBmcm9tKHJlZi5saXN0QWxsKCkpXG4gIH07XG59XG4iXX0=
@@ -1,7 +1,7 @@
1
1
  import { Inject, Injectable, InjectionToken, NgZone, Optional, PLATFORM_ID } from '@angular/core';
2
2
  import { createStorageRef } from './ref';
3
- import { ɵAngularFireSchedulers, ɵcacheInstance } from '@angular/fire';
4
- import { ɵfirebaseAppFactory, FIREBASE_APP_NAME, FIREBASE_OPTIONS } from '@angular/fire/compat';
3
+ import { ɵAngularFireSchedulers } from '@angular/fire';
4
+ import { ɵfirebaseAppFactory, FIREBASE_APP_NAME, FIREBASE_OPTIONS, ɵcacheInstance } from '@angular/fire/compat';
5
5
  import 'firebase/compat/storage';
6
6
  import { AppCheckInstances } from '@angular/fire/app-check';
7
7
  import * as i0 from "@angular/core";
@@ -91,4 +91,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.3", ngImpor
91
91
  }] }, { type: i2.AppCheckInstances, decorators: [{
92
92
  type: Optional
93
93
  }] }]; } });
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wYXQvc3RvcmFnZS9zdG9yYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDekMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVoRyxPQUFPLHlCQUF5QixDQUFDO0FBRWpDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7O0FBRTVELE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxJQUFJLGNBQWMsQ0FBUyw0QkFBNEIsQ0FBQyxDQUFDO0FBQy9FLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLElBQUksY0FBYyxDQUFTLHlDQUF5QyxDQUFDLENBQUM7QUFDM0csTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsSUFBSSxjQUFjLENBQVMsNENBQTRDLENBQUMsQ0FBQztBQUdqSCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsSUFBSSxjQUFjLENBQXVCLG1DQUFtQyxDQUFDLENBQUM7QUFFMUc7Ozs7OztHQU1HO0FBSUgsTUFBTSxPQUFPLGtCQUFrQjtJQUc3QixZQUM0QixPQUF3QixFQUNYLElBQStCLEVBQzFDLGFBQTRCO0lBQ3hELHFDQUFxQztJQUNoQixVQUFrQixFQUN2QyxJQUFZLEVBQ1osVUFBa0MsRUFDUyxrQkFBZ0MsRUFDN0IscUJBQW1DLEVBQy9DLFlBQWlCLEVBQ3ZDLGtCQUFxQztRQUVqRCxNQUFNLEdBQUcsR0FBRyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxPQUFPLEdBQUcsY0FBYyxDQUFDLEdBQUcsR0FBRyxDQUFDLElBQUksWUFBWSxhQUFhLEVBQUUsRUFBRSxvQkFBb0IsRUFBRSxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRTtZQUN6RyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxhQUFhLElBQUksU0FBUyxDQUFDLENBQUMsQ0FBQztZQUN0RixNQUFNLFdBQVcsR0FBRyxZQUF5QyxDQUFDO1lBQzlELElBQUksV0FBVyxFQUFFO2dCQUNmLE9BQU8sQ0FBQyxXQUFXLENBQUMsR0FBRyxXQUFXLENBQUMsQ0FBQzthQUNyQztZQUNELElBQUksa0JBQWtCLEVBQUU7Z0JBQ3RCLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO2FBQ25EO1lBQ0QsSUFBSSxxQkFBcUIsRUFBRTtnQkFDekIsT0FBTyxDQUFDLHdCQUF3QixDQUFDLHFCQUFxQixDQUFDLENBQUM7YUFDekQ7WUFDRCxPQUFPLE9BQU8sQ0FBQztRQUNqQixDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELEdBQUcsQ0FBQyxJQUFZO1FBQ2QsT0FBTyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxVQUFVLENBQUMsSUFBWTtRQUNyQixPQUFPLGdCQUFnQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELE1BQU0sQ0FBQyxJQUFZLEVBQUUsSUFBUyxFQUFFLFFBQXlCO1FBQ3ZELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFDLE1BQU0sR0FBRyxHQUFHLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3pDLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDakMsQ0FBQzs7K0dBN0NVLGtCQUFrQixrQkFJbkIsZ0JBQWdCLGFBQ0osaUJBQWlCLDZCQUNqQixNQUFNLDZCQUVsQixXQUFXLHlFQUdDLHFCQUFxQiw2QkFDckIsd0JBQXdCLDZCQUN4QixZQUFZO21IQWJ2QixrQkFBa0IsY0FGakIsS0FBSzsyRkFFTixrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLEtBQUs7aUJBQ2xCOzswQkFLSSxNQUFNOzJCQUFDLGdCQUFnQjs7MEJBQ3ZCLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsaUJBQWlCOzswQkFDcEMsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxNQUFNOzhCQUVPLE1BQU07MEJBQXRDLE1BQU07MkJBQUMsV0FBVzs7MEJBR2xCLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMscUJBQXFCOzswQkFDeEMsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyx3QkFBd0I7OzBCQUMzQyxRQUFROzswQkFBSSxNQUFNOzJCQUFDLFlBQVk7OzBCQUMvQixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiwgTmdab25lLCBPcHRpb25hbCwgUExBVEZPUk1fSUQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNyZWF0ZVN0b3JhZ2VSZWYgfSBmcm9tICcuL3JlZic7XG5pbXBvcnQgeyDJtUFuZ3VsYXJGaXJlU2NoZWR1bGVycywgybVjYWNoZUluc3RhbmNlIH0gZnJvbSAnQGFuZ3VsYXIvZmlyZSc7XG5pbXBvcnQgeyBGaXJlYmFzZU9wdGlvbnMgfSBmcm9tICdmaXJlYmFzZS9hcHAnO1xuaW1wb3J0IHsgybVmaXJlYmFzZUFwcEZhY3RvcnksIEZJUkVCQVNFX0FQUF9OQU1FLCBGSVJFQkFTRV9PUFRJT05TIH0gZnJvbSAnQGFuZ3VsYXIvZmlyZS9jb21wYXQnO1xuaW1wb3J0IHsgVXBsb2FkTWV0YWRhdGEgfSBmcm9tICcuL2ludGVyZmFjZXMnO1xuaW1wb3J0ICdmaXJlYmFzZS9jb21wYXQvc3RvcmFnZSc7XG5pbXBvcnQgZmlyZWJhc2UgZnJvbSAnZmlyZWJhc2UvY29tcGF0L2FwcCc7XG5pbXBvcnQgeyBBcHBDaGVja0luc3RhbmNlcyB9IGZyb20gJ0Bhbmd1bGFyL2ZpcmUvYXBwLWNoZWNrJztcblxuZXhwb3J0IGNvbnN0IEJVQ0tFVCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KCdhbmd1bGFyZmlyZTIuc3RvcmFnZUJ1Y2tldCcpO1xuZXhwb3J0IGNvbnN0IE1BWF9VUExPQURfUkVUUllfVElNRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxudW1iZXI+KCdhbmd1bGFyZmlyZTIuc3RvcmFnZS5tYXhVcGxvYWRSZXRyeVRpbWUnKTtcbmV4cG9ydCBjb25zdCBNQVhfT1BFUkFUSU9OX1JFVFJZX1RJTUUgPSBuZXcgSW5qZWN0aW9uVG9rZW48bnVtYmVyPignYW5ndWxhcmZpcmUyLnN0b3JhZ2UubWF4T3BlcmF0aW9uUmV0cnlUaW1lJyk7XG5cbnR5cGUgVXNlRW11bGF0b3JBcmd1bWVudHMgPSBQYXJhbWV0ZXJzPGZpcmViYXNlLnN0b3JhZ2UuU3RvcmFnZVsndXNlRW11bGF0b3InXT47XG5leHBvcnQgY29uc3QgVVNFX0VNVUxBVE9SID0gbmV3IEluamVjdGlvblRva2VuPFVzZUVtdWxhdG9yQXJndW1lbnRzPignYW5ndWxhcmZpcmUyLnN0b3JhZ2UudXNlLWVtdWxhdG9yJyk7XG5cbi8qKlxuICogQW5ndWxhckZpcmVTdG9yYWdlIFNlcnZpY2VcbiAqXG4gKiBUaGlzIHNlcnZpY2UgaXMgdGhlIG1haW4gZW50cnkgcG9pbnQgZm9yIHRoaXMgZmVhdHVyZSBtb2R1bGUuIEl0IHByb3ZpZGVzXG4gKiBhbiBBUEkgZm9yIHVwbG9hZGluZyBhbmQgZG93bmxvYWRpbmcgYmluYXJ5IGZpbGVzIGZyb20gQ2xvdWQgU3RvcmFnZSBmb3JcbiAqIEZpcmViYXNlLlxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdhbnknXG59KVxuZXhwb3J0IGNsYXNzIEFuZ3VsYXJGaXJlU3RvcmFnZSB7XG4gIHB1YmxpYyByZWFkb25seSBzdG9yYWdlOiBmaXJlYmFzZS5zdG9yYWdlLlN0b3JhZ2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChGSVJFQkFTRV9PUFRJT05TKSBvcHRpb25zOiBGaXJlYmFzZU9wdGlvbnMsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChGSVJFQkFTRV9BUFBfTkFNRSkgbmFtZTogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KEJVQ0tFVCkgc3RvcmFnZUJ1Y2tldDogc3RyaW5nIHwgbnVsbCxcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6YmFuLXR5cGVzXG4gICAgQEluamVjdChQTEFURk9STV9JRCkgcGxhdGZvcm1JZDogT2JqZWN0LFxuICAgIHpvbmU6IE5nWm9uZSxcbiAgICBzY2hlZHVsZXJzOiDJtUFuZ3VsYXJGaXJlU2NoZWR1bGVycyxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE1BWF9VUExPQURfUkVUUllfVElNRSkgbWF4VXBsb2FkUmV0cnlUaW1lOiBudW1iZXIgfCBhbnksXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChNQVhfT1BFUkFUSU9OX1JFVFJZX1RJTUUpIG1heE9wZXJhdGlvblJldHJ5VGltZTogbnVtYmVyIHwgYW55LFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoVVNFX0VNVUxBVE9SKSBfdXNlRW11bGF0b3I6IGFueSxcbiAgICBAT3B0aW9uYWwoKSBfYXBwQ2hlY2tJbnN0YW5jZXM6IEFwcENoZWNrSW5zdGFuY2VzLFxuICApIHtcbiAgICBjb25zdCBhcHAgPSDJtWZpcmViYXNlQXBwRmFjdG9yeShvcHRpb25zLCB6b25lLCBuYW1lKTtcbiAgICB0aGlzLnN0b3JhZ2UgPSDJtWNhY2hlSW5zdGFuY2UoYCR7YXBwLm5hbWV9LnN0b3JhZ2UuJHtzdG9yYWdlQnVja2V0fWAsICdBbmd1bGFyRmlyZVN0b3JhZ2UnLCBhcHAubmFtZSwgKCkgPT4ge1xuICAgICAgY29uc3Qgc3RvcmFnZSA9IHpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4gYXBwLnN0b3JhZ2Uoc3RvcmFnZUJ1Y2tldCB8fCB1bmRlZmluZWQpKTtcbiAgICAgIGNvbnN0IHVzZUVtdWxhdG9yID0gX3VzZUVtdWxhdG9yIGFzIFVzZUVtdWxhdG9yQXJndW1lbnRzfG51bGw7XG4gICAgICBpZiAodXNlRW11bGF0b3IpIHtcbiAgICAgICAgc3RvcmFnZS51c2VFbXVsYXRvciguLi51c2VFbXVsYXRvcik7XG4gICAgICB9XG4gICAgICBpZiAobWF4VXBsb2FkUmV0cnlUaW1lKSB7XG4gICAgICAgIHN0b3JhZ2Uuc2V0TWF4VXBsb2FkUmV0cnlUaW1lKG1heFVwbG9hZFJldHJ5VGltZSk7XG4gICAgICB9XG4gICAgICBpZiAobWF4T3BlcmF0aW9uUmV0cnlUaW1lKSB7XG4gICAgICAgIHN0b3JhZ2Uuc2V0TWF4T3BlcmF0aW9uUmV0cnlUaW1lKG1heE9wZXJhdGlvblJldHJ5VGltZSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gc3RvcmFnZTtcbiAgICB9LCBbbWF4VXBsb2FkUmV0cnlUaW1lLCBtYXhPcGVyYXRpb25SZXRyeVRpbWVdKTtcbiAgfVxuXG4gIHJlZihwYXRoOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gY3JlYXRlU3RvcmFnZVJlZih0aGlzLnN0b3JhZ2UucmVmKHBhdGgpKTtcbiAgfVxuXG4gIHJlZkZyb21VUkwocGF0aDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGNyZWF0ZVN0b3JhZ2VSZWYodGhpcy5zdG9yYWdlLnJlZkZyb21VUkwocGF0aCkpO1xuICB9XG5cbiAgdXBsb2FkKHBhdGg6IHN0cmluZywgZGF0YTogYW55LCBtZXRhZGF0YT86IFVwbG9hZE1ldGFkYXRhKSB7XG4gICAgY29uc3Qgc3RvcmFnZVJlZiA9IHRoaXMuc3RvcmFnZS5yZWYocGF0aCk7XG4gICAgY29uc3QgcmVmID0gY3JlYXRlU3RvcmFnZVJlZihzdG9yYWdlUmVmKTtcbiAgICByZXR1cm4gcmVmLnB1dChkYXRhLCBtZXRhZGF0YSk7XG4gIH1cblxufVxuIl19
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wYXQvc3RvcmFnZS9zdG9yYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDekMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVoSCxPQUFPLHlCQUF5QixDQUFDO0FBRWpDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7O0FBRTVELE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxJQUFJLGNBQWMsQ0FBUyw0QkFBNEIsQ0FBQyxDQUFDO0FBQy9FLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLElBQUksY0FBYyxDQUFTLHlDQUF5QyxDQUFDLENBQUM7QUFDM0csTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsSUFBSSxjQUFjLENBQVMsNENBQTRDLENBQUMsQ0FBQztBQUdqSCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsSUFBSSxjQUFjLENBQXVCLG1DQUFtQyxDQUFDLENBQUM7QUFFMUc7Ozs7OztHQU1HO0FBSUgsTUFBTSxPQUFPLGtCQUFrQjtJQUc3QixZQUM0QixPQUF3QixFQUNYLElBQStCLEVBQzFDLGFBQTRCO0lBQ3hELHFDQUFxQztJQUNoQixVQUFrQixFQUN2QyxJQUFZLEVBQ1osVUFBa0MsRUFDUyxrQkFBZ0MsRUFDN0IscUJBQW1DLEVBQy9DLFlBQWlCLEVBQ3ZDLGtCQUFxQztRQUVqRCxNQUFNLEdBQUcsR0FBRyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxPQUFPLEdBQUcsY0FBYyxDQUFDLEdBQUcsR0FBRyxDQUFDLElBQUksWUFBWSxhQUFhLEVBQUUsRUFBRSxvQkFBb0IsRUFBRSxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRTtZQUN6RyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxhQUFhLElBQUksU0FBUyxDQUFDLENBQUMsQ0FBQztZQUN0RixNQUFNLFdBQVcsR0FBRyxZQUF5QyxDQUFDO1lBQzlELElBQUksV0FBVyxFQUFFO2dCQUNmLE9BQU8sQ0FBQyxXQUFXLENBQUMsR0FBRyxXQUFXLENBQUMsQ0FBQzthQUNyQztZQUNELElBQUksa0JBQWtCLEVBQUU7Z0JBQ3RCLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO2FBQ25EO1lBQ0QsSUFBSSxxQkFBcUIsRUFBRTtnQkFDekIsT0FBTyxDQUFDLHdCQUF3QixDQUFDLHFCQUFxQixDQUFDLENBQUM7YUFDekQ7WUFDRCxPQUFPLE9BQU8sQ0FBQztRQUNqQixDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELEdBQUcsQ0FBQyxJQUFZO1FBQ2QsT0FBTyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxVQUFVLENBQUMsSUFBWTtRQUNyQixPQUFPLGdCQUFnQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELE1BQU0sQ0FBQyxJQUFZLEVBQUUsSUFBUyxFQUFFLFFBQXlCO1FBQ3ZELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFDLE1BQU0sR0FBRyxHQUFHLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3pDLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDakMsQ0FBQzs7K0dBN0NVLGtCQUFrQixrQkFJbkIsZ0JBQWdCLGFBQ0osaUJBQWlCLDZCQUNqQixNQUFNLDZCQUVsQixXQUFXLHlFQUdDLHFCQUFxQiw2QkFDckIsd0JBQXdCLDZCQUN4QixZQUFZO21IQWJ2QixrQkFBa0IsY0FGakIsS0FBSzsyRkFFTixrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLEtBQUs7aUJBQ2xCOzswQkFLSSxNQUFNOzJCQUFDLGdCQUFnQjs7MEJBQ3ZCLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsaUJBQWlCOzswQkFDcEMsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxNQUFNOzhCQUVPLE1BQU07MEJBQXRDLE1BQU07MkJBQUMsV0FBVzs7MEJBR2xCLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMscUJBQXFCOzswQkFDeEMsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyx3QkFBd0I7OzBCQUMzQyxRQUFROzswQkFBSSxNQUFNOzJCQUFDLFlBQVk7OzBCQUMvQixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiwgTmdab25lLCBPcHRpb25hbCwgUExBVEZPUk1fSUQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNyZWF0ZVN0b3JhZ2VSZWYgfSBmcm9tICcuL3JlZic7XG5pbXBvcnQgeyDJtUFuZ3VsYXJGaXJlU2NoZWR1bGVycyB9IGZyb20gJ0Bhbmd1bGFyL2ZpcmUnO1xuaW1wb3J0IHsgRmlyZWJhc2VPcHRpb25zIH0gZnJvbSAnZmlyZWJhc2UvYXBwJztcbmltcG9ydCB7IMm1ZmlyZWJhc2VBcHBGYWN0b3J5LCBGSVJFQkFTRV9BUFBfTkFNRSwgRklSRUJBU0VfT1BUSU9OUywgybVjYWNoZUluc3RhbmNlIH0gZnJvbSAnQGFuZ3VsYXIvZmlyZS9jb21wYXQnO1xuaW1wb3J0IHsgVXBsb2FkTWV0YWRhdGEgfSBmcm9tICcuL2ludGVyZmFjZXMnO1xuaW1wb3J0ICdmaXJlYmFzZS9jb21wYXQvc3RvcmFnZSc7XG5pbXBvcnQgZmlyZWJhc2UgZnJvbSAnZmlyZWJhc2UvY29tcGF0L2FwcCc7XG5pbXBvcnQgeyBBcHBDaGVja0luc3RhbmNlcyB9IGZyb20gJ0Bhbmd1bGFyL2ZpcmUvYXBwLWNoZWNrJztcblxuZXhwb3J0IGNvbnN0IEJVQ0tFVCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KCdhbmd1bGFyZmlyZTIuc3RvcmFnZUJ1Y2tldCcpO1xuZXhwb3J0IGNvbnN0IE1BWF9VUExPQURfUkVUUllfVElNRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxudW1iZXI+KCdhbmd1bGFyZmlyZTIuc3RvcmFnZS5tYXhVcGxvYWRSZXRyeVRpbWUnKTtcbmV4cG9ydCBjb25zdCBNQVhfT1BFUkFUSU9OX1JFVFJZX1RJTUUgPSBuZXcgSW5qZWN0aW9uVG9rZW48bnVtYmVyPignYW5ndWxhcmZpcmUyLnN0b3JhZ2UubWF4T3BlcmF0aW9uUmV0cnlUaW1lJyk7XG5cbnR5cGUgVXNlRW11bGF0b3JBcmd1bWVudHMgPSBQYXJhbWV0ZXJzPGZpcmViYXNlLnN0b3JhZ2UuU3RvcmFnZVsndXNlRW11bGF0b3InXT47XG5leHBvcnQgY29uc3QgVVNFX0VNVUxBVE9SID0gbmV3IEluamVjdGlvblRva2VuPFVzZUVtdWxhdG9yQXJndW1lbnRzPignYW5ndWxhcmZpcmUyLnN0b3JhZ2UudXNlLWVtdWxhdG9yJyk7XG5cbi8qKlxuICogQW5ndWxhckZpcmVTdG9yYWdlIFNlcnZpY2VcbiAqXG4gKiBUaGlzIHNlcnZpY2UgaXMgdGhlIG1haW4gZW50cnkgcG9pbnQgZm9yIHRoaXMgZmVhdHVyZSBtb2R1bGUuIEl0IHByb3ZpZGVzXG4gKiBhbiBBUEkgZm9yIHVwbG9hZGluZyBhbmQgZG93bmxvYWRpbmcgYmluYXJ5IGZpbGVzIGZyb20gQ2xvdWQgU3RvcmFnZSBmb3JcbiAqIEZpcmViYXNlLlxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdhbnknXG59KVxuZXhwb3J0IGNsYXNzIEFuZ3VsYXJGaXJlU3RvcmFnZSB7XG4gIHB1YmxpYyByZWFkb25seSBzdG9yYWdlOiBmaXJlYmFzZS5zdG9yYWdlLlN0b3JhZ2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChGSVJFQkFTRV9PUFRJT05TKSBvcHRpb25zOiBGaXJlYmFzZU9wdGlvbnMsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChGSVJFQkFTRV9BUFBfTkFNRSkgbmFtZTogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KEJVQ0tFVCkgc3RvcmFnZUJ1Y2tldDogc3RyaW5nIHwgbnVsbCxcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6YmFuLXR5cGVzXG4gICAgQEluamVjdChQTEFURk9STV9JRCkgcGxhdGZvcm1JZDogT2JqZWN0LFxuICAgIHpvbmU6IE5nWm9uZSxcbiAgICBzY2hlZHVsZXJzOiDJtUFuZ3VsYXJGaXJlU2NoZWR1bGVycyxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE1BWF9VUExPQURfUkVUUllfVElNRSkgbWF4VXBsb2FkUmV0cnlUaW1lOiBudW1iZXIgfCBhbnksXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChNQVhfT1BFUkFUSU9OX1JFVFJZX1RJTUUpIG1heE9wZXJhdGlvblJldHJ5VGltZTogbnVtYmVyIHwgYW55LFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoVVNFX0VNVUxBVE9SKSBfdXNlRW11bGF0b3I6IGFueSxcbiAgICBAT3B0aW9uYWwoKSBfYXBwQ2hlY2tJbnN0YW5jZXM6IEFwcENoZWNrSW5zdGFuY2VzLFxuICApIHtcbiAgICBjb25zdCBhcHAgPSDJtWZpcmViYXNlQXBwRmFjdG9yeShvcHRpb25zLCB6b25lLCBuYW1lKTtcbiAgICB0aGlzLnN0b3JhZ2UgPSDJtWNhY2hlSW5zdGFuY2UoYCR7YXBwLm5hbWV9LnN0b3JhZ2UuJHtzdG9yYWdlQnVja2V0fWAsICdBbmd1bGFyRmlyZVN0b3JhZ2UnLCBhcHAubmFtZSwgKCkgPT4ge1xuICAgICAgY29uc3Qgc3RvcmFnZSA9IHpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4gYXBwLnN0b3JhZ2Uoc3RvcmFnZUJ1Y2tldCB8fCB1bmRlZmluZWQpKTtcbiAgICAgIGNvbnN0IHVzZUVtdWxhdG9yID0gX3VzZUVtdWxhdG9yIGFzIFVzZUVtdWxhdG9yQXJndW1lbnRzfG51bGw7XG4gICAgICBpZiAodXNlRW11bGF0b3IpIHtcbiAgICAgICAgc3RvcmFnZS51c2VFbXVsYXRvciguLi51c2VFbXVsYXRvcik7XG4gICAgICB9XG4gICAgICBpZiAobWF4VXBsb2FkUmV0cnlUaW1lKSB7XG4gICAgICAgIHN0b3JhZ2Uuc2V0TWF4VXBsb2FkUmV0cnlUaW1lKG1heFVwbG9hZFJldHJ5VGltZSk7XG4gICAgICB9XG4gICAgICBpZiAobWF4T3BlcmF0aW9uUmV0cnlUaW1lKSB7XG4gICAgICAgIHN0b3JhZ2Uuc2V0TWF4T3BlcmF0aW9uUmV0cnlUaW1lKG1heE9wZXJhdGlvblJldHJ5VGltZSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gc3RvcmFnZTtcbiAgICB9LCBbbWF4VXBsb2FkUmV0cnlUaW1lLCBtYXhPcGVyYXRpb25SZXRyeVRpbWVdKTtcbiAgfVxuXG4gIHJlZihwYXRoOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gY3JlYXRlU3RvcmFnZVJlZih0aGlzLnN0b3JhZ2UucmVmKHBhdGgpKTtcbiAgfVxuXG4gIHJlZkZyb21VUkwocGF0aDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGNyZWF0ZVN0b3JhZ2VSZWYodGhpcy5zdG9yYWdlLnJlZkZyb21VUkwocGF0aCkpO1xuICB9XG5cbiAgdXBsb2FkKHBhdGg6IHN0cmluZywgZGF0YTogYW55LCBtZXRhZGF0YT86IFVwbG9hZE1ldGFkYXRhKSB7XG4gICAgY29uc3Qgc3RvcmFnZVJlZiA9IHRoaXMuc3RvcmFnZS5yZWYocGF0aCk7XG4gICAgY29uc3QgcmVmID0gY3JlYXRlU3RvcmFnZVJlZihzdG9yYWdlUmVmKTtcbiAgICByZXR1cm4gcmVmLnB1dChkYXRhLCBtZXRhZGF0YSk7XG4gIH1cblxufVxuIl19
package/esm2015/core.js CHANGED
@@ -1,59 +1,51 @@
1
- var _a, _b, _c;
2
- import { isDevMode, Version } from '@angular/core';
1
+ import { Version } from '@angular/core';
3
2
  import { getApps } from 'firebase/app';
4
- export const VERSION = new Version('7.1.0-rc.3');
5
- const IS_HMR = !!module.hot;
6
- const log = (level, ...args) => {
7
- if (isDevMode() && typeof console !== 'undefined') {
8
- console[level](...args);
3
+ import { isSupported as isRemoteConfigSupported } from 'firebase/remote-config';
4
+ import { isSupported as isMessagingSupported } from 'firebase/messaging';
5
+ import { isSupported as isAnalyticsSupported } from 'firebase/analytics';
6
+ export const VERSION = new Version('7.1.1');
7
+ const isAnalyticsSupportedValueSymbol = '__angularfire_symbol__analyticsIsSupportedValue';
8
+ const isAnalyticsSupportedPromiseSymbol = '__angularfire_symbol__analyticsIsSupported';
9
+ const isRemoteConfigSupportedValueSymbol = '__angularfire_symbol__remoteConfigIsSupportedValue';
10
+ const isRemoteConfigSupportedPromiseSymbol = '__angularfire_symbol__remoteConfigIsSupported';
11
+ const isMessagingSupportedValueSymbol = '__angularfire_symbol__messagingIsSupportedValue';
12
+ const isMessagingSupportedPromiseSymbol = '__angularfire_symbol__messagingIsSupported';
13
+ globalThis[isAnalyticsSupportedPromiseSymbol] || (globalThis[isAnalyticsSupportedPromiseSymbol] = isAnalyticsSupported().then(it => globalThis[isAnalyticsSupportedValueSymbol] = it));
14
+ globalThis[isMessagingSupportedPromiseSymbol] || (globalThis[isMessagingSupportedPromiseSymbol] = isMessagingSupported().then(it => globalThis[isMessagingSupportedValueSymbol] = it));
15
+ globalThis[isRemoteConfigSupportedPromiseSymbol] || (globalThis[isRemoteConfigSupportedPromiseSymbol] = isRemoteConfigSupported().then(it => globalThis[isRemoteConfigSupportedValueSymbol] = it));
16
+ const isSupportedError = (module) => `The APP_INITIALIZER that is "making" isSupported() sync for the sake of convenient DI has not resolved in this
17
+ context. Rather than injecting ${module} in the constructor, first ensure that ${module} is supported by calling
18
+ \`await isSupported()\`, then retrieve the instance from the injector manually \`injector.get(${module})\`.`;
19
+ export const ɵisMessagingSupportedFactory = {
20
+ async: () => globalThis[isMessagingSupportedPromiseSymbol],
21
+ sync: () => {
22
+ const ret = globalThis[isMessagingSupportedValueSymbol];
23
+ if (ret === undefined) {
24
+ throw new Error(isSupportedError('Messaging'));
25
+ }
26
+ return ret;
9
27
  }
10
28
  };
11
- export function ɵcacheInstance(cacheKey, moduleName, appName, fn, deps) {
12
- const [, instance, cachedDeps] = globalThis.ɵAngularfireInstanceCache.find((it) => it[0] === cacheKey) || [];
13
- if (instance) {
14
- if (!matchDep(deps, cachedDeps)) {
15
- log('error', `${moduleName} was already initialized on the ${appName} Firebase App with different settings.${IS_HMR ? ' You may need to reload as Firebase is not HMR aware.' : ''}`);
16
- log('warn', { is: deps, was: cachedDeps });
29
+ export const ɵisRemoteConfigSupportedFactory = {
30
+ async: () => globalThis[isRemoteConfigSupportedPromiseSymbol],
31
+ sync: () => {
32
+ const ret = globalThis[isRemoteConfigSupportedValueSymbol];
33
+ if (ret === undefined) {
34
+ throw new Error(isSupportedError('RemoteConfig'));
17
35
  }
18
- return instance;
19
- }
20
- else {
21
- const newInstance = fn();
22
- globalThis.ɵAngularfireInstanceCache.push([cacheKey, newInstance, deps]);
23
- return newInstance;
24
- }
25
- }
26
- globalThis.ɵAngularfireInstanceCache || (globalThis.ɵAngularfireInstanceCache = []);
27
- // HACK HACK HACK
28
- // AppCheck stuff, here so we can get a jump on it. It's too late in the evaluation
29
- // if we do this in the app-check module. globalThis.ngDevMode allows me to test if
30
- // Angular is in DevMode before Angular initializes.
31
- if (typeof process !== 'undefined' && ((_a = process.env) === null || _a === void 0 ? void 0 : _a.FIREBASE_APPCHECK_DEBUG_TOKEN)) {
32
- (_b = globalThis.FIREBASE_APPCHECK_DEBUG_TOKEN) !== null && _b !== void 0 ? _b : (globalThis.FIREBASE_APPCHECK_DEBUG_TOKEN = process.env.FIREBASE_APPCHECK_DEBUG_TOKEN);
33
- }
34
- else if (globalThis.ngDevMode) {
35
- (_c = globalThis.FIREBASE_APPCHECK_DEBUG_TOKEN) !== null && _c !== void 0 ? _c : (globalThis.FIREBASE_APPCHECK_DEBUG_TOKEN = true);
36
- }
37
- export function ɵmemoizeInstance(fn, zone) {
38
- const [, instance] = globalThis.ɵAngularfireInstanceCache.find((it) => matchDep(it[0], fn)) || [];
39
- if (instance) {
40
- return instance;
41
- }
42
- else {
43
- // TODO catch and add HMR warning
44
- const instance = zone.runOutsideAngular(() => fn());
45
- globalThis.ɵAngularfireInstanceCache.push([fn, instance]);
46
- return instance;
36
+ return ret;
47
37
  }
48
- }
49
- function matchDep(a, b) {
50
- try {
51
- return a.toString() === b.toString();
52
- }
53
- catch (_) {
54
- return a === b;
38
+ };
39
+ export const ɵisAnalyticsSupportedFactory = {
40
+ async: () => globalThis[isAnalyticsSupportedPromiseSymbol],
41
+ sync: () => {
42
+ const ret = globalThis[isAnalyticsSupportedValueSymbol];
43
+ if (ret === undefined) {
44
+ throw new Error(isSupportedError('Analytics'));
45
+ }
46
+ return ret;
55
47
  }
56
- }
48
+ };
57
49
  export function ɵgetDefaultInstanceOf(identifier, provided, defaultApp) {
58
50
  if (provided) {
59
51
  // Was provide* only called once? If so grab that
@@ -69,7 +61,7 @@ export function ɵgetDefaultInstanceOf(identifier, provided, defaultApp) {
69
61
  // Grab the default instance from the defaultApp
70
62
  const defaultAppWithContainer = defaultApp;
71
63
  const provider = defaultAppWithContainer.container.getProvider(identifier);
72
- return provider.getImmediate();
64
+ return provider.getImmediate({ optional: true });
73
65
  }
74
66
  export const ɵgetAllInstancesOf = (identifier, app) => {
75
67
  const apps = app ? [app] : getApps();
@@ -84,4 +76,4 @@ export const ɵgetAllInstancesOf = (identifier, app) => {
84
76
  });
85
77
  return instances;
86
78
  };
87
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBQWUsT0FBTyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBR3BELE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxJQUFJLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0FBTzNELE1BQU0sTUFBTSxHQUFHLENBQUMsQ0FBRSxNQUFjLENBQUMsR0FBRyxDQUFDO0FBRXJDLE1BQU0sR0FBRyxHQUFHLENBQUMsS0FBa0MsRUFBRSxHQUFHLElBQVMsRUFBRSxFQUFFO0lBQy9ELElBQUksU0FBUyxFQUFFLElBQUksT0FBTyxPQUFPLEtBQUssV0FBVyxFQUFFO1FBQ2pELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO0tBQ3pCO0FBQ0gsQ0FBQyxDQUFDO0FBRUYsTUFBTSxVQUFVLGNBQWMsQ0FBSSxRQUFhLEVBQUUsVUFBa0IsRUFBRSxPQUFlLEVBQUUsRUFBVyxFQUFFLElBQVM7SUFDMUcsTUFBTSxDQUFDLEVBQUUsUUFBUSxFQUFFLFVBQVUsQ0FBQyxHQUFHLFVBQVUsQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFPLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDbEgsSUFBSSxRQUFRLEVBQUU7UUFDWixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsRUFBRTtZQUMvQixHQUFHLENBQUMsT0FBTyxFQUFFLEdBQUcsVUFBVSxtQ0FBbUMsT0FBTyx5Q0FBeUMsTUFBTSxDQUFDLENBQUMsQ0FBQyx1REFBdUQsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FB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USxDQUFDLFlBQVksRUFBRSxDQUFDO0FBQ2pDLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxDQUFhLFVBQWtCLEVBQUUsR0FBaUIsRUFBWSxFQUFFO0lBQ2hHLE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDckMsTUFBTSxTQUFTLEdBQWUsRUFBRSxDQUFDO0lBQ2pDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUE2QixFQUFFLEVBQUU7UUFDN0MsTUFBTSxRQUFRLEdBQVEsR0FBRyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsVUFBbUIsQ0FBQyxDQUFDO1FBQ3JFLFFBQVEsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBYSxFQUFFLEVBQUU7WUFDM0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQ2pDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDMUI7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNEZXZNb2RlLCBOZ1pvbmUsIFZlcnNpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZpcmViYXNlQXBwLCBnZXRBcHBzIH0gZnJvbSAnZmlyZWJhc2UvYXBwJztcbmltcG9ydCB7IENvbXBvbmVudENvbnRhaW5lciB9IGZyb20gJ0BmaXJlYmFzZS9jb21wb25lbnQnO1xuXG5leHBvcnQgY29uc3QgVkVSU0lPTiA9IG5ldyBWZXJzaW9uKCdBTkdVTEFSRklSRTJfVkVSU0lPTicpO1xuXG4vLyBUT0RPIGlzIHRoZXJlIGEgYmV0dGVyIHdheSB0byBnZXQgYXQgdGhlIGludGVybmFsIHR5cGVzP1xuaW50ZXJmYWNlIEZpcmViYXNlQXBwV2l0aENvbnRhaW5lciBleHRlbmRzIEZpcmViYXNlQXBwIHtcbiAgY29udGFpbmVyOiBDb21wb25lbnRDb250YWluZXI7XG59XG5cbmNvbnN0IElTX0hNUiA9ICEhKG1vZHVsZSBhcyBhbnkpLmhvdDtcblxuY29uc3QgbG9nID0gKGxldmVsOiAnbG9nJ3wnZXJyb3InfCdpbmZvJ3wnd2FybicsIC4uLmFyZ3M6IGFueSkgPT4ge1xuICBpZiAoaXNEZXZNb2RlKCkgJiYgdHlwZW9mIGNvbnNvbGUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgY29uc29sZVtsZXZlbF0oLi4uYXJncyk7XG4gIH1cbn07XG5cbmV4cG9ydCBmdW5jdGlvbiDJtWNhY2hlSW5zdGFuY2U8VD4oY2FjaGVLZXk6IGFueSwgbW9kdWxlTmFtZTogc3RyaW5nLCBhcHBOYW1lOiBzdHJpbmcsIGZuOiAoKSA9PiBULCBkZXBzOiBhbnkpOiBUIHtcbiAgY29uc3QgWywgaW5zdGFuY2UsIGNhY2hlZERlcHNdID0gZ2xvYmFsVGhpcy7JtUFuZ3VsYXJmaXJlSW5zdGFuY2VDYWNoZS5maW5kKChpdDogYW55KSA9PiBpdFswXSA9PT0gY2FjaGVLZXkpIHx8IFtdO1xuICBpZiAoaW5zdGFuY2UpIHtcbiAgICBpZiAoIW1hdGNoRGVwKGRlcHMsIGNhY2hlZERlcHMpKSB7XG4gICAgICBsb2coJ2Vycm9yJywgYCR7bW9kdWxlTmFtZX0gd2FzIGFscmVhZHkgaW5pdGlhbGl6ZWQgb24gdGhlICR7YXBwTmFtZX0gRmlyZWJhc2UgQXBwIHdpdGggZGlmZmVyZW50IHNldHRpbmdzLiR7SVNfSE1SID8gJyBZb3UgbWF5IG5lZWQgdG8gcmVsb2FkIGFzIEZpcmViYXNlIGlzIG5vdCBITVIgYXdhcmUuJyA6ICcnfWApO1xuICAgICAgbG9nKCd3YXJuJywge2lzOiBkZXBzLCB3YXM6IGNhY2hlZERlcHN9KTtcbiAgICB9XG4gICAgcmV0dXJuIGluc3RhbmNlO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IG5ld0luc3RhbmNlID0gZm4oKTtcbiAgICBnbG9iYWxUaGlzLsm1QW5ndWxhcmZpcmVJbnN0YW5jZUNhY2hlLnB1c2goW2NhY2hlS2V5LCBuZXdJbnN0YW5jZSwgZGVwc10pO1xuICAgIHJldHVybiBuZXdJbnN0YW5jZTtcbiAgfVxufVxuXG5nbG9iYWxUaGlzLsm1QW5ndWxhcmZpcmVJbnN0YW5jZUNhY2hlIHx8PSBbXTtcblxuLy8gSEFDSyBIQUNLIEhBQ0tcbi8vIEFwcENoZWNrIHN0dWZmLCBoZXJlIHNvIHdlIGNhbiBnZXQgYSBqdW1wIG9uIGl0LiBJdCdzIHRvbyBsYXRlIGluIHRoZSBldmFsdWF0aW9uXG4vLyBpZiB3ZSBkbyB0aGlzIGluIHRoZSBhcHAtY2hlY2sgbW9kdWxlLiBnbG9iYWxUaGlzLm5nRGV2TW9kZSBhbGxvd3MgbWUgdG8gdGVzdCBpZlxuLy8gQW5ndWxhciBpcyBpbiBEZXZNb2RlIGJlZm9yZSBBbmd1bGFyIGluaXRpYWxpemVzLlxuaWYgKHR5cGVvZiBwcm9jZXNzICE9PSAndW5kZWZpbmVkJyAmJiBwcm9jZXNzLmVudj8uRklSRUJBU0VfQVBQQ0hFQ0tfREVCVUdfVE9LRU4pIHtcbiAgZ2xvYmFsVGhpcy5GSVJFQkFTRV9BUFBDSEVDS19ERUJVR19UT0tFTiA/Pz0gcHJvY2Vzcy5lbnYuRklSRUJBU0VfQVBQQ0hFQ0tfREVCVUdfVE9LRU47XG59IGVsc2UgaWYgKGdsb2JhbFRoaXMubmdEZXZNb2RlKSB7XG4gIGdsb2JhbFRoaXMuRklSRUJBU0VfQVBQQ0hFQ0tfREVCVUdfVE9LRU4gPz89IHRydWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiDJtW1lbW9pemVJbnN0YW5jZTxUPihmbjogKCkgPT4gVCwgem9uZTogTmdab25lKTogVCB7XG4gIGNvbnN0IFssIGluc3RhbmNlXSA9IGdsb2JhbFRoaXMuybVBbmd1bGFyZmlyZUluc3RhbmNlQ2FjaGUuZmluZCgoaXQ6IGFueSkgPT4gbWF0Y2hEZXAoaXRbMF0sIGZuKSkgfHwgW107XG4gIGlmIChpbnN0YW5jZSkge1xuICAgIHJldHVybiBpbnN0YW5jZSBhcyBUO1xuICB9IGVsc2Uge1xuICAgIC8vIFRPRE8gY2F0Y2ggYW5kIGFkZCBITVIgd2FybmluZ1xuICAgIGNvbnN0IGluc3RhbmNlID0gem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiBmbigpKTtcbiAgICBnbG9iYWxUaGlzLsm1QW5ndWxhcmZpcmVJbnN0YW5jZUNhY2hlLnB1c2goW2ZuLCBpbnN0YW5jZV0pO1xuICAgIHJldHVybiBpbnN0YW5jZTtcbiAgfVxufVxuXG5mdW5jdGlvbiBtYXRjaERlcChhOiBhbnksIGI6IGFueSkge1xuICB0cnkge1xuICAgIHJldHVybiBhLnRvU3RyaW5nKCkgPT09IGIudG9TdHJpbmcoKTtcbiAgfSBjYXRjaCAoXykge1xuICAgIHJldHVybiBhID09PSBiO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiDJtWdldERlZmF1bHRJbnN0YW5jZU9mPFQ9IHVua25vd24+KGlkZW50aWZpZXI6IHN0cmluZywgcHJvdmlkZWQ6IFRbXXx1bmRlZmluZWQsIGRlZmF1bHRBcHA6IEZpcmViYXNlQXBwKTogVHx1bmRlZmluZWQgIHtcbiAgaWYgKHByb3ZpZGVkKSB7XG4gICAgLy8gV2FzIHByb3ZpZGUqIG9ubHkgY2FsbGVkIG9uY2U/IElmIHNvIGdyYWIgdGhhdFxuICAgIGlmIChwcm92aWRlZC5sZW5ndGggPT09IDEpIHsgcmV0dXJuIHByb3ZpZGVkWzBdOyB9XG4gICAgY29uc3QgcHJvdmlkZWRVc2luZ0RlZmF1bHRBcHAgPSBwcm92aWRlZC5maWx0ZXIoKGl0OiBhbnkpID0+IGl0LmFwcCA9PT0gZGVmYXVsdEFwcCk7XG4gICAgLy8gV2FzIHByb3ZpZGUqIG9ubHkgY2FsbGVkIG9uY2UsIHVzaW5nIHRoZSBkZWZhdWx0IGFwcD8gSWYgc28gdXNlIHRoYXRcbiAgICBpZiAocHJvdmlkZWRVc2luZ0RlZmF1bHRBcHAubGVuZ3RoID09PSAxKSB7IHJldHVybiBwcm92aWRlZFVzaW5nRGVmYXVsdEFwcFswXTsgfVxuICB9XG4gIC8vIEdyYWIgdGhlIGRlZmF1bHQgaW5zdGFuY2UgZnJvbSB0aGUgZGVmYXVsdEFwcFxuICBjb25zdCBkZWZhdWx0QXBwV2l0aENvbnRhaW5lcjogRmlyZWJhc2VBcHBXaXRoQ29udGFpbmVyID0gZGVmYXVsdEFwcCBhcyBhbnk7XG4gIGNvbnN0IHByb3ZpZGVyID0gZGVmYXVsdEFwcFdpdGhDb250YWluZXIuY29udGFpbmVyLmdldFByb3ZpZGVyKGlkZW50aWZpZXIgYXMgbmV2ZXIpO1xuICByZXR1cm4gcHJvdmlkZXIuZ2V0SW1tZWRpYXRlKCk7XG59XG5cbmV4cG9ydCBjb25zdCDJtWdldEFsbEluc3RhbmNlc09mID0gPFQ9IHVua25vd24+KGlkZW50aWZpZXI6IHN0cmluZywgYXBwPzogRmlyZWJhc2VBcHApOiBBcnJheTxUPiA9PiB7XG4gIGNvbnN0IGFwcHMgPSBhcHAgPyBbYXBwXSA6IGdldEFwcHMoKTtcbiAgY29uc3QgaW5zdGFuY2VzOiBBcnJheTxhbnk+ID0gW107XG4gIGFwcHMuZm9yRWFjaCgoYXBwOiBGaXJlYmFzZUFwcFdpdGhDb250YWluZXIpID0+IHtcbiAgICBjb25zdCBwcm92aWRlcjogYW55ID0gYXBwLmNvbnRhaW5lci5nZXRQcm92aWRlcihpZGVudGlmaWVyIGFzIG5ldmVyKTtcbiAgICBwcm92aWRlci5pbnN0YW5jZXMuZm9yRWFjaCgoaW5zdGFuY2U6IGFueSkgPT4ge1xuICAgICAgaWYgKCFpbnN0YW5jZXMuaW5jbHVkZXMoaW5zdGFuY2UpKSB7XG4gICAgICAgIGluc3RhbmNlcy5wdXNoKGluc3RhbmNlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG4gIHJldHVybiBpbnN0YW5jZXM7XG59O1xuIl19
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxFQUFlLE9BQU8sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVwRCxPQUFPLEVBQUUsV0FBVyxJQUFJLHVCQUF1QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDaEYsT0FBTyxFQUFFLFdBQVcsSUFBSSxvQkFBb0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxXQUFXLElBQUksb0JBQW9CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV6RSxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsSUFBSSxPQUFPLENBQUMsc0JBQXNCLENBQUMsQ0FBQztBQUUzRCxNQUFNLCtCQUErQixHQUFHLGlEQUFpRCxDQUFDO0FBQzFGLE1BQU0saUNBQWlDLEdBQUcsNENBQTRDLENBQUM7QUFDdkYsTUFBTSxrQ0FBa0MsR0FBRyxvREFBb0QsQ0FBQztBQUNoRyxNQUFNLG9DQUFvQyxHQUFHLCtDQUErQyxDQUFDO0FBQzdGLE1BQU0sK0JBQStCLEdBQUcsaURBQWlELENBQUM7QUFDMUYsTUFBTSxpQ0FBaUMsR0FBRyw0Q0FBNEMsQ0FBQztBQUV2RixVQUFVLENBQUMsaUNBQWlDLE1BQTVDLFVBQVUsQ0FBQyxpQ0FBaUMsSUFBTSxvQkFBb0IsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUNqRixVQUFVLENBQUMsK0JBQStCLENBQUMsR0FBRyxFQUFFLENBQ2pELEVBQUM7QUFFRixVQUFVLENBQUMsaUNBQWlDLE1BQTVDLFVBQVUsQ0FBQyxpQ0FBaUMsSUFBTSxvQkFBb0IsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUNqRixVQUFVLENBQUMsK0JBQStCLENBQUMsR0FBRyxFQUFFLENBQ2pE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LENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDckMsTUFBTSxTQUFTLEdBQWUsRUFBRSxDQUFDO0lBQ2pDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUE2QixFQUFFLEVBQUU7UUFDN0MsTUFBTSxRQUFRLEdBQVEsR0FBRyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsVUFBbUIsQ0FBQyxDQUFDO1FBQ3JFLFFBQVEsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBYSxFQUFFLEVBQUU7WUFDM0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQ2pDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDMUI7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmVyc2lvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmlyZWJhc2VBcHAsIGdldEFwcHMgfSBmcm9tICdmaXJlYmFzZS9hcHAnO1xuaW1wb3J0IHsgQ29tcG9uZW50Q29udGFpbmVyIH0gZnJvbSAnQGZpcmViYXNlL2NvbXBvbmVudCc7XG5pbXBvcnQgeyBpc1N1cHBvcnRlZCBhcyBpc1JlbW90ZUNvbmZpZ1N1cHBvcnRlZCB9IGZyb20gJ2ZpcmViYXNlL3JlbW90ZS1jb25maWcnO1xuaW1wb3J0IHsgaXNTdXBwb3J0ZWQgYXMgaXNNZXNzYWdpbmdTdXBwb3J0ZWQgfSBmcm9tICdmaXJlYmFzZS9tZXNzYWdpbmcnO1xuaW1wb3J0IHsgaXNTdXBwb3J0ZWQgYXMgaXNBbmFseXRpY3NTdXBwb3J0ZWQgfSBmcm9tICdmaXJlYmFzZS9hbmFseXRpY3MnO1xuXG5leHBvcnQgY29uc3QgVkVSU0lPTiA9IG5ldyBWZXJzaW9uKCdBTkdVTEFSRklSRTJfVkVSU0lPTicpO1xuXG5jb25zdCBpc0FuYWx5dGljc1N1cHBvcnRlZFZhbHVlU3ltYm9sID0gJ19fYW5ndWxhcmZpcmVfc3ltYm9sX19hbmFseXRpY3NJc1N1cHBvcnRlZFZhbHVlJztcbmNvbnN0IGlzQW5hbHl0aWNzU3VwcG9ydGVkUHJvbWlzZVN5bWJvbCA9ICdfX2FuZ3VsYXJmaXJlX3N5bWJvbF9fYW5hbHl0aWNzSXNTdXBwb3J0ZWQnO1xuY29uc3QgaXNSZW1vdGVDb25maWdTdXBwb3J0ZWRWYWx1ZVN5bWJvbCA9ICdfX2FuZ3VsYXJmaXJlX3N5bWJvbF9fcmVtb3RlQ29uZmlnSXNTdXBwb3J0ZWRWYWx1ZSc7XG5jb25zdCBpc1JlbW90ZUNvbmZpZ1N1cHBvcnRlZFByb21pc2VTeW1ib2wgPSAnX19hbmd1bGFyZmlyZV9zeW1ib2xfX3JlbW90ZUNvbmZpZ0lzU3VwcG9ydGVkJztcbmNvbnN0IGlzTWVzc2FnaW5nU3VwcG9ydGVkVmFsdWVTeW1ib2wgPSAnX19hbmd1bGFyZmlyZV9zeW1ib2xfX21lc3NhZ2luZ0lzU3VwcG9ydGVkVmFsdWUnO1xuY29uc3QgaXNNZXNzYWdpbmdTdXBwb3J0ZWRQcm9taXNlU3ltYm9sID0gJ19fYW5ndWxhcmZpcmVfc3ltYm9sX19tZXNzYWdpbmdJc1N1cHBvcnRlZCc7XG5cbmdsb2JhbFRoaXNbaXNBbmFseXRpY3NTdXBwb3J0ZWRQcm9taXNlU3ltYm9sXSB8fD0gaXNBbmFseXRpY3NTdXBwb3J0ZWQoKS50aGVuKGl0ID0+XG4gIGdsb2JhbFRoaXNbaXNBbmFseXRpY3NTdXBwb3J0ZWRWYWx1ZVN5bWJvbF0gPSBpdFxuKTtcblxuZ2xvYmFsVGhpc1tpc01lc3NhZ2luZ1N1cHBvcnRlZFByb21pc2VTeW1ib2xdIHx8PSBpc01lc3NhZ2luZ1N1cHBvcnRlZCgpLnRoZW4oaXQgPT5cbiAgZ2xvYmFsVGhpc1tpc01lc3NhZ2luZ1N1cHBvcnRlZFZhbHVlU3ltYm9sXSA9IGl0XG4pO1xuXG5nbG9iYWxUaGlzW2lzUmVtb3RlQ29uZmlnU3VwcG9ydGVkUHJvbWlzZVN5bWJvbF0gfHw9IGlzUmVtb3RlQ29uZmlnU3VwcG9ydGVkKCkudGhlbihpdCA9PlxuICBnbG9iYWxUaGlzW2lzUmVtb3RlQ29uZmlnU3VwcG9ydGVkVmFsdWVTeW1ib2xdID0gaXRcbik7XG5cbmNvbnN0IGlzU3VwcG9ydGVkRXJyb3IgPSAobW9kdWxlOiBzdHJpbmcpID0+XG4gIGBUaGUgQVBQX0lOSVRJQUxJWkVSIHRoYXQgaXMgXCJtYWtpbmdcIiBpc1N1cHBvcnRlZCgpIHN5bmMgZm9yIHRoZSBzYWtlIG9mIGNvbnZlbmllbnQgREkgaGFzIG5vdCByZXNvbHZlZCBpbiB0aGlzXG5jb250ZXh0LiBSYXRoZXIgdGhhbiBpbmplY3RpbmcgJHttb2R1bGV9IGluIHRoZSBjb25zdHJ1Y3RvciwgZmlyc3QgZW5zdXJlIHRoYXQgJHttb2R1bGV9IGlzIHN1cHBvcnRlZCBieSBjYWxsaW5nXG5cXGBhd2FpdCBpc1N1cHBvcnRlZCgpXFxgLCB0aGVuIHJldHJpZXZlIHRoZSBpbnN0YW5jZSBmcm9tIHRoZSBpbmplY3RvciBtYW51YWxseSBcXGBpbmplY3Rvci5nZXQoJHttb2R1bGV9KVxcYC5gO1xuXG5leHBvcnQgY29uc3QgybVpc01lc3NhZ2luZ1N1cHBvcnRlZEZhY3RvcnkgPSB7XG4gIGFzeW5jOiAoKSA9PiBnbG9iYWxUaGlzW2lzTWVzc2FnaW5nU3VwcG9ydGVkUHJvbWlzZVN5bWJvbF0sXG4gIHN5bmM6ICgpID0+IHtcbiAgICBjb25zdCByZXQgPSBnbG9iYWxUaGlzW2lzTWVzc2FnaW5nU3VwcG9ydGVkVmFsdWVTeW1ib2xdO1xuICAgIGlmIChyZXQgPT09IHVuZGVmaW5lZCkgeyB0aHJvdyBuZXcgRXJyb3IoaXNTdXBwb3J0ZWRFcnJvcignTWVzc2FnaW5nJykpOyB9XG4gICAgcmV0dXJuIHJldDtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IMm1aXNSZW1vdGVDb25maWdTdXBwb3J0ZWRGYWN0b3J5ID0ge1xuICBhc3luYzogKCkgPT4gZ2xvYmFsVGhpc1tpc1JlbW90ZUNvbmZpZ1N1cHBvcnRlZFByb21pc2VTeW1ib2xdLFxuICBzeW5jOiAoKSA9PiB7XG4gICAgY29uc3QgcmV0ID0gZ2xvYmFsVGhpc1tpc1JlbW90ZUNvbmZpZ1N1cHBvcnRlZFZhbHVlU3ltYm9sXTtcbiAgICBpZiAocmV0ID09PSB1bmRlZmluZWQpIHsgdGhyb3cgbmV3IEVycm9yKGlzU3VwcG9ydGVkRXJyb3IoJ1JlbW90ZUNvbmZpZycpKTsgfVxuICAgIHJldHVybiByZXQ7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCDJtWlzQW5hbHl0aWNzU3VwcG9ydGVkRmFjdG9yeSA9IHtcbiAgYXN5bmM6ICgpID0+IGdsb2JhbFRoaXNbaXNBbmFseXRpY3NTdXBwb3J0ZWRQcm9taXNlU3ltYm9sXSxcbiAgc3luYzogKCkgPT4ge1xuICAgIGNvbnN0IHJldCA9IGdsb2JhbFRoaXNbaXNBbmFseXRpY3NTdXBwb3J0ZWRWYWx1ZVN5bWJvbF07XG4gICAgaWYgKHJldCA9PT0gdW5kZWZpbmVkKSB7IHRocm93IG5ldyBFcnJvcihpc1N1cHBvcnRlZEVycm9yKCdBbmFseXRpY3MnKSk7IH1cbiAgICByZXR1cm4gcmV0O1xuICB9XG59O1xuXG4vLyBUT0RPIGlzIHRoZXJlIGEgYmV0dGVyIHdheSB0byBnZXQgYXQgdGhlIGludGVybmFsIHR5cGVzP1xuaW50ZXJmYWNlIEZpcmViYXNlQXBwV2l0aENvbnRhaW5lciBleHRlbmRzIEZpcmViYXNlQXBwIHtcbiAgY29udGFpbmVyOiBDb21wb25lbnRDb250YWluZXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiDJtWdldERlZmF1bHRJbnN0YW5jZU9mPFQ9IHVua25vd24+KGlkZW50aWZpZXI6IHN0cmluZywgcHJvdmlkZWQ6IFRbXXx1bmRlZmluZWQsIGRlZmF1bHRBcHA6IEZpcmViYXNlQXBwKTogVHx1bmRlZmluZWQgIHtcbiAgaWYgKHByb3ZpZGVkKSB7XG4gICAgLy8gV2FzIHByb3ZpZGUqIG9ubHkgY2FsbGVkIG9uY2U/IElmIHNvIGdyYWIgdGhhdFxuICAgIGlmIChwcm92aWRlZC5sZW5ndGggPT09IDEpIHsgcmV0dXJuIHByb3ZpZGVkWzBdOyB9XG4gICAgY29uc3QgcHJvdmlkZWRVc2luZ0RlZmF1bHRBcHAgPSBwcm92aWRlZC5maWx0ZXIoKGl0OiBhbnkpID0+IGl0LmFwcCA9PT0gZGVmYXVsdEFwcCk7XG4gICAgLy8gV2FzIHByb3ZpZGUqIG9ubHkgY2FsbGVkIG9uY2UsIHVzaW5nIHRoZSBkZWZhdWx0IGFwcD8gSWYgc28gdXNlIHRoYXRcbiAgICBpZiAocHJvdmlkZWRVc2luZ0RlZmF1bHRBcHAubGVuZ3RoID09PSAxKSB7IHJldHVybiBwcm92aWRlZFVzaW5nRGVmYXVsdEFwcFswXTsgfVxuICB9XG4gIC8vIEdyYWIgdGhlIGRlZmF1bHQgaW5zdGFuY2UgZnJvbSB0aGUgZGVmYXVsdEFwcFxuICBjb25zdCBkZWZhdWx0QXBwV2l0aENvbnRhaW5lcjogRmlyZWJhc2VBcHBXaXRoQ29udGFpbmVyID0gZGVmYXVsdEFwcCBhcyBhbnk7XG4gIGNvbnN0IHByb3ZpZGVyID0gZGVmYXVsdEFwcFdpdGhDb250YWluZXIuY29udGFpbmVyLmdldFByb3ZpZGVyKGlkZW50aWZpZXIgYXMgbmV2ZXIpO1xuICByZXR1cm4gcHJvdmlkZXIuZ2V0SW1tZWRpYXRlKHsgb3B0aW9uYWw6IHRydWUgfSk7XG59XG5cbmV4cG9ydCBjb25zdCDJtWdldEFsbEluc3RhbmNlc09mID0gPFQ9IHVua25vd24+KGlkZW50aWZpZXI6IHN0cmluZywgYXBwPzogRmlyZWJhc2VBcHApOiBBcnJheTxUPiA9PiB7XG4gIGNvbnN0IGFwcHMgPSBhcHAgPyBbYXBwXSA6IGdldEFwcHMoKTtcbiAgY29uc3QgaW5zdGFuY2VzOiBBcnJheTxhbnk+ID0gW107XG4gIGFwcHMuZm9yRWFjaCgoYXBwOiBGaXJlYmFzZUFwcFdpdGhDb250YWluZXIpID0+IHtcbiAgICBjb25zdCBwcm92aWRlcjogYW55ID0gYXBwLmNvbnRhaW5lci5nZXRQcm92aWRlcihpZGVudGlmaWVyIGFzIG5ldmVyKTtcbiAgICBwcm92aWRlci5pbnN0YW5jZXMuZm9yRWFjaCgoaW5zdGFuY2U6IGFueSkgPT4ge1xuICAgICAgaWYgKCFpbnN0YW5jZXMuaW5jbHVkZXMoaW5zdGFuY2UpKSB7XG4gICAgICAgIGluc3RhbmNlcy5wdXNoKGluc3RhbmNlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG4gIHJldHVybiBpbnN0YW5jZXM7XG59O1xuIl19