malcolmrey commited on
Commit
9d79e84
·
1 Parent(s): 302fe8e

Initial version

Browse files
3rdpartylicenses.txt ADDED
@@ -0,0 +1,412 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ --------------------------------------------------------------------------------
3
+ Package: jszip
4
+ License: "(MIT OR GPL-3.0-or-later)"
5
+
6
+
7
+ --------------------------------------------------------------------------------
8
+ Package: @angular/core
9
+ License: "MIT"
10
+
11
+ The MIT License
12
+
13
+ Copyright (c) 2010-2025 Google LLC. https://angular.dev/license
14
+
15
+ Permission is hereby granted, free of charge, to any person obtaining a copy
16
+ of this software and associated documentation files (the "Software"), to deal
17
+ in the Software without restriction, including without limitation the rights
18
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
19
+ copies of the Software, and to permit persons to whom the Software is
20
+ furnished to do so, subject to the following conditions:
21
+
22
+ The above copyright notice and this permission notice shall be included in
23
+ all copies or substantial portions of the Software.
24
+
25
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
26
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
27
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
28
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
29
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
30
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
31
+ THE SOFTWARE.
32
+
33
+ --------------------------------------------------------------------------------
34
+ Package: rxjs
35
+ License: "Apache-2.0"
36
+
37
+ Apache License
38
+ Version 2.0, January 2004
39
+ http://www.apache.org/licenses/
40
+
41
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
42
+
43
+ 1. Definitions.
44
+
45
+ "License" shall mean the terms and conditions for use, reproduction,
46
+ and distribution as defined by Sections 1 through 9 of this document.
47
+
48
+ "Licensor" shall mean the copyright owner or entity authorized by
49
+ the copyright owner that is granting the License.
50
+
51
+ "Legal Entity" shall mean the union of the acting entity and all
52
+ other entities that control, are controlled by, or are under common
53
+ control with that entity. For the purposes of this definition,
54
+ "control" means (i) the power, direct or indirect, to cause the
55
+ direction or management of such entity, whether by contract or
56
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
57
+ outstanding shares, or (iii) beneficial ownership of such entity.
58
+
59
+ "You" (or "Your") shall mean an individual or Legal Entity
60
+ exercising permissions granted by this License.
61
+
62
+ "Source" form shall mean the preferred form for making modifications,
63
+ including but not limited to software source code, documentation
64
+ source, and configuration files.
65
+
66
+ "Object" form shall mean any form resulting from mechanical
67
+ transformation or translation of a Source form, including but
68
+ not limited to compiled object code, generated documentation,
69
+ and conversions to other media types.
70
+
71
+ "Work" shall mean the work of authorship, whether in Source or
72
+ Object form, made available under the License, as indicated by a
73
+ copyright notice that is included in or attached to the work
74
+ (an example is provided in the Appendix below).
75
+
76
+ "Derivative Works" shall mean any work, whether in Source or Object
77
+ form, that is based on (or derived from) the Work and for which the
78
+ editorial revisions, annotations, elaborations, or other modifications
79
+ represent, as a whole, an original work of authorship. For the purposes
80
+ of this License, Derivative Works shall not include works that remain
81
+ separable from, or merely link (or bind by name) to the interfaces of,
82
+ the Work and Derivative Works thereof.
83
+
84
+ "Contribution" shall mean any work of authorship, including
85
+ the original version of the Work and any modifications or additions
86
+ to that Work or Derivative Works thereof, that is intentionally
87
+ submitted to Licensor for inclusion in the Work by the copyright owner
88
+ or by an individual or Legal Entity authorized to submit on behalf of
89
+ the copyright owner. For the purposes of this definition, "submitted"
90
+ means any form of electronic, verbal, or written communication sent
91
+ to the Licensor or its representatives, including but not limited to
92
+ communication on electronic mailing lists, source code control systems,
93
+ and issue tracking systems that are managed by, or on behalf of, the
94
+ Licensor for the purpose of discussing and improving the Work, but
95
+ excluding communication that is conspicuously marked or otherwise
96
+ designated in writing by the copyright owner as "Not a Contribution."
97
+
98
+ "Contributor" shall mean Licensor and any individual or Legal Entity
99
+ on behalf of whom a Contribution has been received by Licensor and
100
+ subsequently incorporated within the Work.
101
+
102
+ 2. Grant of Copyright License. Subject to the terms and conditions of
103
+ this License, each Contributor hereby grants to You a perpetual,
104
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
105
+ copyright license to reproduce, prepare Derivative Works of,
106
+ publicly display, publicly perform, sublicense, and distribute the
107
+ Work and such Derivative Works in Source or Object form.
108
+
109
+ 3. Grant of Patent License. Subject to the terms and conditions of
110
+ this License, each Contributor hereby grants to You a perpetual,
111
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
112
+ (except as stated in this section) patent license to make, have made,
113
+ use, offer to sell, sell, import, and otherwise transfer the Work,
114
+ where such license applies only to those patent claims licensable
115
+ by such Contributor that are necessarily infringed by their
116
+ Contribution(s) alone or by combination of their Contribution(s)
117
+ with the Work to which such Contribution(s) was submitted. If You
118
+ institute patent litigation against any entity (including a
119
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
120
+ or a Contribution incorporated within the Work constitutes direct
121
+ or contributory patent infringement, then any patent licenses
122
+ granted to You under this License for that Work shall terminate
123
+ as of the date such litigation is filed.
124
+
125
+ 4. Redistribution. You may reproduce and distribute copies of the
126
+ Work or Derivative Works thereof in any medium, with or without
127
+ modifications, and in Source or Object form, provided that You
128
+ meet the following conditions:
129
+
130
+ (a) You must give any other recipients of the Work or
131
+ Derivative Works a copy of this License; and
132
+
133
+ (b) You must cause any modified files to carry prominent notices
134
+ stating that You changed the files; and
135
+
136
+ (c) You must retain, in the Source form of any Derivative Works
137
+ that You distribute, all copyright, patent, trademark, and
138
+ attribution notices from the Source form of the Work,
139
+ excluding those notices that do not pertain to any part of
140
+ the Derivative Works; and
141
+
142
+ (d) If the Work includes a "NOTICE" text file as part of its
143
+ distribution, then any Derivative Works that You distribute must
144
+ include a readable copy of the attribution notices contained
145
+ within such NOTICE file, excluding those notices that do not
146
+ pertain to any part of the Derivative Works, in at least one
147
+ of the following places: within a NOTICE text file distributed
148
+ as part of the Derivative Works; within the Source form or
149
+ documentation, if provided along with the Derivative Works; or,
150
+ within a display generated by the Derivative Works, if and
151
+ wherever such third-party notices normally appear. The contents
152
+ of the NOTICE file are for informational purposes only and
153
+ do not modify the License. You may add Your own attribution
154
+ notices within Derivative Works that You distribute, alongside
155
+ or as an addendum to the NOTICE text from the Work, provided
156
+ that such additional attribution notices cannot be construed
157
+ as modifying the License.
158
+
159
+ You may add Your own copyright statement to Your modifications and
160
+ may provide additional or different license terms and conditions
161
+ for use, reproduction, or distribution of Your modifications, or
162
+ for any such Derivative Works as a whole, provided Your use,
163
+ reproduction, and distribution of the Work otherwise complies with
164
+ the conditions stated in this License.
165
+
166
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
167
+ any Contribution intentionally submitted for inclusion in the Work
168
+ by You to the Licensor shall be under the terms and conditions of
169
+ this License, without any additional terms or conditions.
170
+ Notwithstanding the above, nothing herein shall supersede or modify
171
+ the terms of any separate license agreement you may have executed
172
+ with Licensor regarding such Contributions.
173
+
174
+ 6. Trademarks. This License does not grant permission to use the trade
175
+ names, trademarks, service marks, or product names of the Licensor,
176
+ except as required for reasonable and customary use in describing the
177
+ origin of the Work and reproducing the content of the NOTICE file.
178
+
179
+ 7. Disclaimer of Warranty. Unless required by applicable law or
180
+ agreed to in writing, Licensor provides the Work (and each
181
+ Contributor provides its Contributions) on an "AS IS" BASIS,
182
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
183
+ implied, including, without limitation, any warranties or conditions
184
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
185
+ PARTICULAR PURPOSE. You are solely responsible for determining the
186
+ appropriateness of using or redistributing the Work and assume any
187
+ risks associated with Your exercise of permissions under this License.
188
+
189
+ 8. Limitation of Liability. In no event and under no legal theory,
190
+ whether in tort (including negligence), contract, or otherwise,
191
+ unless required by applicable law (such as deliberate and grossly
192
+ negligent acts) or agreed to in writing, shall any Contributor be
193
+ liable to You for damages, including any direct, indirect, special,
194
+ incidental, or consequential damages of any character arising as a
195
+ result of this License or out of the use or inability to use the
196
+ Work (including but not limited to damages for loss of goodwill,
197
+ work stoppage, computer failure or malfunction, or any and all
198
+ other commercial damages or losses), even if such Contributor
199
+ has been advised of the possibility of such damages.
200
+
201
+ 9. Accepting Warranty or Additional Liability. While redistributing
202
+ the Work or Derivative Works thereof, You may choose to offer,
203
+ and charge a fee for, acceptance of support, warranty, indemnity,
204
+ or other liability obligations and/or rights consistent with this
205
+ License. However, in accepting such obligations, You may act only
206
+ on Your own behalf and on Your sole responsibility, not on behalf
207
+ of any other Contributor, and only if You agree to indemnify,
208
+ defend, and hold each Contributor harmless for any liability
209
+ incurred by, or claims asserted against, such Contributor by reason
210
+ of your accepting any such warranty or additional liability.
211
+
212
+ END OF TERMS AND CONDITIONS
213
+
214
+ APPENDIX: How to apply the Apache License to your work.
215
+
216
+ To apply the Apache License to your work, attach the following
217
+ boilerplate notice, with the fields enclosed by brackets "[]"
218
+ replaced with your own identifying information. (Don't include
219
+ the brackets!) The text should be enclosed in the appropriate
220
+ comment syntax for the file format. We also recommend that a
221
+ file or class name and description of purpose be included on the
222
+ same "printed page" as the copyright notice for easier
223
+ identification within third-party archives.
224
+
225
+ Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors
226
+
227
+ Licensed under the Apache License, Version 2.0 (the "License");
228
+ you may not use this file except in compliance with the License.
229
+ You may obtain a copy of the License at
230
+
231
+ http://www.apache.org/licenses/LICENSE-2.0
232
+
233
+ Unless required by applicable law or agreed to in writing, software
234
+ distributed under the License is distributed on an "AS IS" BASIS,
235
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
236
+ See the License for the specific language governing permissions and
237
+ limitations under the License.
238
+
239
+
240
+ --------------------------------------------------------------------------------
241
+ Package: tslib
242
+ License: "0BSD"
243
+
244
+ Copyright (c) Microsoft Corporation.
245
+
246
+ Permission to use, copy, modify, and/or distribute this software for any
247
+ purpose with or without fee is hereby granted.
248
+
249
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
250
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
251
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
252
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
253
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
254
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
255
+ PERFORMANCE OF THIS SOFTWARE.
256
+ --------------------------------------------------------------------------------
257
+ Package: @angular/common
258
+ License: "MIT"
259
+
260
+ The MIT License
261
+
262
+ Copyright (c) 2010-2025 Google LLC. https://angular.dev/license
263
+
264
+ Permission is hereby granted, free of charge, to any person obtaining a copy
265
+ of this software and associated documentation files (the "Software"), to deal
266
+ in the Software without restriction, including without limitation the rights
267
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
268
+ copies of the Software, and to permit persons to whom the Software is
269
+ furnished to do so, subject to the following conditions:
270
+
271
+ The above copyright notice and this permission notice shall be included in
272
+ all copies or substantial portions of the Software.
273
+
274
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
275
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
276
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
277
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
278
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
279
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
280
+ THE SOFTWARE.
281
+
282
+ --------------------------------------------------------------------------------
283
+ Package: @angular/platform-browser
284
+ License: "MIT"
285
+
286
+ The MIT License
287
+
288
+ Copyright (c) 2010-2025 Google LLC. https://angular.dev/license
289
+
290
+ Permission is hereby granted, free of charge, to any person obtaining a copy
291
+ of this software and associated documentation files (the "Software"), to deal
292
+ in the Software without restriction, including without limitation the rights
293
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
294
+ copies of the Software, and to permit persons to whom the Software is
295
+ furnished to do so, subject to the following conditions:
296
+
297
+ The above copyright notice and this permission notice shall be included in
298
+ all copies or substantial portions of the Software.
299
+
300
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
301
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
302
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
303
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
304
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
305
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
306
+ THE SOFTWARE.
307
+
308
+ --------------------------------------------------------------------------------
309
+ Package: @ngx-translate/core
310
+ License: "MIT"
311
+
312
+ Copyright (c) 2018 Olivier Combe
313
+ Copyright (c) 2024 Andreas Löw / CodeAndWeb GmbH
314
+
315
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
316
+
317
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
318
+
319
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
320
+
321
+ --------------------------------------------------------------------------------
322
+ Package: @ngx-translate/http-loader
323
+ License: "MIT"
324
+
325
+ Copyright (c) 2018 Olivier Combe
326
+ Copyright (c) 2024 Andreas Löw / CodeAndWeb GmbH
327
+
328
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
329
+
330
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
331
+
332
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
333
+
334
+ --------------------------------------------------------------------------------
335
+ Package: ngx-image-cropper
336
+ License: "MIT"
337
+
338
+ MIT License
339
+
340
+ Copyright (c) 2019 Martijn Willekens
341
+
342
+ Permission is hereby granted, free of charge, to any person obtaining a copy
343
+ of this software and associated documentation files (the "Software"), to deal
344
+ in the Software without restriction, including without limitation the rights
345
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
346
+ copies of the Software, and to permit persons to whom the Software is
347
+ furnished to do so, subject to the following conditions:
348
+
349
+ The above copyright notice and this permission notice shall be included in all
350
+ copies or substantial portions of the Software.
351
+
352
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
353
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
354
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
355
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
356
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
357
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
358
+ SOFTWARE.
359
+
360
+ --------------------------------------------------------------------------------
361
+ Package: @angular/forms
362
+ License: "MIT"
363
+
364
+ The MIT License
365
+
366
+ Copyright (c) 2010-2025 Google LLC. https://angular.dev/license
367
+
368
+ Permission is hereby granted, free of charge, to any person obtaining a copy
369
+ of this software and associated documentation files (the "Software"), to deal
370
+ in the Software without restriction, including without limitation the rights
371
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
372
+ copies of the Software, and to permit persons to whom the Software is
373
+ furnished to do so, subject to the following conditions:
374
+
375
+ The above copyright notice and this permission notice shall be included in
376
+ all copies or substantial portions of the Software.
377
+
378
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
379
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
380
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
381
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
382
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
383
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
384
+ THE SOFTWARE.
385
+
386
+ --------------------------------------------------------------------------------
387
+ Package: zone.js
388
+ License: "MIT"
389
+
390
+ The MIT License
391
+
392
+ Copyright (c) 2010-2025 Google LLC. https://angular.dev/license
393
+
394
+ Permission is hereby granted, free of charge, to any person obtaining a copy
395
+ of this software and associated documentation files (the "Software"), to deal
396
+ in the Software without restriction, including without limitation the rights
397
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
398
+ copies of the Software, and to permit persons to whom the Software is
399
+ furnished to do so, subject to the following conditions:
400
+
401
+ The above copyright notice and this permission notice shall be included in
402
+ all copies or substantial portions of the Software.
403
+
404
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
405
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
406
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
407
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
408
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
409
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
410
+ THE SOFTWARE.
411
+
412
+ --------------------------------------------------------------------------------
browser/assets/i18n/en.json ADDED
@@ -0,0 +1,421 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "APP": {
3
+ "TITLE": "Stabilis Web UI"
4
+ },
5
+ "MENU": {
6
+ "LIST_MODELS": "List Models",
7
+ "MALS_MODELS": "Mal's Models",
8
+ "COMFYUI_OUTPUTS": "ComfyUI Outputs",
9
+ "COMFYUI_PROMPTS": "ComfyUI Prompts",
10
+ "DATASETS": "Datasets",
11
+ "TRAINING": "Training",
12
+ "IMAGE_PROCESSING": "Image Processing",
13
+ "CIVITAI": "CivitAI",
14
+ "REDDIT": "Reddit FAQ"
15
+ },
16
+ "IMAGE_PROCESSING": {
17
+ "TITLE": "Dataset preparation",
18
+ "SETTINGS": {
19
+ "BUCKET_SIZE": "Bucket Size",
20
+ "ALLOW_NON_SQUARE": "Allow Non-Square",
21
+ "RENAME_DATASET": "Rename dataset",
22
+ "DATASET_PREFIX": "Dataset prefix"
23
+ },
24
+ "ACTIONS": {
25
+ "UPLOAD": "Upload Images",
26
+ "DOWNLOAD_DATASET": "Download Dataset",
27
+ "RESET": "Reset All",
28
+ "MOVE": "Move to training",
29
+ "DUPLICATE": "Duplicate",
30
+ "REMOVE": "Remove",
31
+ "ROTATE": "Rotate",
32
+ "SCALE_UP": "Scale Up",
33
+ "SCALE_DOWN": "Scale Down"
34
+ },
35
+ "CROPPER": {
36
+ "SNAP_TO_RATIO": "Snap to closest ratio",
37
+ "RESOLUTION": "Resolution: {{width}}x{{height}}",
38
+ "FILE": "File: {{name}}"
39
+ },
40
+ "UPLOADING": "Uploading {{count}} images...",
41
+ "PROCESSING": "Processing {{current}} of {{total}} images...",
42
+ "NO_IMAGES": "No images uploaded yet. Drag and drop or click to upload."
43
+ },
44
+ "TRAINING": {
45
+ "TARGET_LABEL": "Training Target",
46
+ "TARGET_META": "Target",
47
+ "TABS": {
48
+ "UPLOAD": "Upload & Train",
49
+ "JOBS": "Jobs Queue",
50
+ "STATUS": "Status"
51
+ },
52
+ "UPLOAD": {
53
+ "TITLE": "Upload & Train",
54
+ "MODEL_NAME": "Model Name",
55
+ "TOKEN": "Token",
56
+ "CLASS": "Class",
57
+ "TYPES": "Training Types",
58
+ "IMAGES": "Images",
59
+ "IMAGES_HINT": "Drop images here or choose files",
60
+ "SELECTED": "Selected",
61
+ "CLEAR": "Clear",
62
+ "REMOVE": "Remove",
63
+ "UPLOADING": "Uploading...",
64
+ "SUBMIT": "Upload & Train"
65
+ },
66
+ "DATASET_MODE": {
67
+ "TITLE": "Train from existing datasets (missing models)",
68
+ "MODEL_TYPE": "Model Type",
69
+ "SEARCH": "Search",
70
+ "MISSING_DATASETS": "Missing datasets",
71
+ "FOUND": "Found",
72
+ "SELECTED": "Selected",
73
+ "SELECT_ALL": "Select all",
74
+ "CLEAR_SELECTION": "Clear selection",
75
+ "TRAINING": "Training...",
76
+ "TRAIN_SELECTED": "Train selected",
77
+ "FILES": "Files"
78
+ },
79
+ "JOBS": {
80
+ "TITLE": "Jobs Queue",
81
+ "ESTIMATED_TOTAL": "Estimated total",
82
+ "ESTIMATED_FINISH": "Estimated finish",
83
+ "STARTS_IN": "Starts in",
84
+ "MOVE_TOP": "Move to top",
85
+ "MOVE_UP": "Move up",
86
+ "MOVE_DOWN": "Move down",
87
+ "MOVE_BOTTOM": "Move to bottom",
88
+ "REMOVE": "Remove from queue"
89
+ }
90
+ },
91
+ "CIVITAI": {
92
+ "TITLE": "CivitAI Integration",
93
+ "TABS": {
94
+ "BROWSER": "Browser",
95
+ "LOCAL": "Local Browser",
96
+ "DOWNLOADS": "Downloads"
97
+ },
98
+ "BROWSER": {
99
+ "SEARCH": "Search models...",
100
+ "USERNAME": "Username",
101
+ "QUERY": "Query",
102
+ "SORT": "Sort",
103
+ "PERIOD": "Period",
104
+ "TYPE": "Type",
105
+ "LIMIT": "Limit",
106
+ "PAGE": "Page",
107
+ "DOWNLOAD": "Download",
108
+ "QUEUED": "In Queue",
109
+ "DOWNLOAD_SAMPLES": "Download Samples",
110
+ "DETAILS": "Details",
111
+ "RESET": "Reset",
112
+ "MODEL_TYPES": "Model types:",
113
+ "BASE_MODEL": "Base model:",
114
+ "FIRST": "First",
115
+ "PREV": "Prev",
116
+ "NEXT": "Next",
117
+ "JUMP_X": "Jump {{count}}",
118
+ "DOWNLOADED": "Downloaded",
119
+ "UPDATE": "Update",
120
+ "NO_IMAGE": "No Image",
121
+ "DESCRIPTION": "Description",
122
+ "DETAILS_TYPE": "Type:",
123
+ "DETAILS_CREATOR": "Creator:",
124
+ "DETAILS_BASE_MODEL": "Base Model:",
125
+ "DETAILS_PUBLISHED": "Published:",
126
+ "DETAILS_DOWNLOADS": "Downloads:",
127
+ "OPEN_ON_CIVITAI": "Open on CivitAI",
128
+ "LOCAL_PATH": "Local Folder",
129
+ "FILENAME": "Local Filename",
130
+ "COPY": "Copy",
131
+ "NO_IMAGES": "No images available",
132
+ "SORT_NEWEST": "Newest",
133
+ "SORT_HIGHEST_RATED": "Highest Rated",
134
+ "SORT_MOST_DOWNLOADED": "Most Downloaded",
135
+ "NSFW": "NSFW",
136
+ "PERIOD_ALL": "All Time",
137
+ "PERIOD_YEAR": "Year",
138
+ "PERIOD_MONTH": "Month",
139
+ "PERIOD_WEEK": "Week",
140
+ "PERIOD_DAY": "Day"
141
+ },
142
+ "DOWNLOADS": {
143
+ "TITLE": "Download Queue",
144
+ "BULK_LABEL": "Bulk Download (one link per line)",
145
+ "BULK_SUBMIT": "Schedule Bulk Download",
146
+ "EMPTY_QUEUE": "No downloads in progress",
147
+ "IMAGE_QUEUE": "Real-time Image Queue",
148
+ "WAITING": "Waiting",
149
+ "ACTIVE": "Active",
150
+ "ERRORED": "Errored",
151
+ "ERRORS": "Errors",
152
+ "RESUME": "Resume",
153
+ "PAUSE": "Pause",
154
+ "TRY": "Try",
155
+ "CLEAR_QUEUE": "Clear Queue",
156
+ "REQUEUE_ERRORED": "Add Errored to Waiting",
157
+ "RESET_ACTIVE": "Reset Active",
158
+ "PAUSED": "PAUSED",
159
+ "CONCURRENCY_SETTINGS": "Concurrency Settings",
160
+ "MODEL_DOWNLOADS": "Model Downloads",
161
+ "IMAGE_DOWNLOADS": "Image Downloads",
162
+ "IN_QUEUE": "{{count}} in queue",
163
+ "LIVE_UPDATES": "Live Updates",
164
+ "REFRESH": "Refresh",
165
+ "CURRENTLY_ACTIVE": "Currently Active",
166
+ "RUNNING": "Running",
167
+ "PROCESSING": "Processing...",
168
+ "RETRY": "Retry",
169
+ "DELETE": "Delete",
170
+ "FORCE_START": "Force Start"
171
+ }
172
+ },
173
+ "DATASETS": {
174
+ "TITLE": "Dataset Management",
175
+ "REFRESH": "Refresh Comparison",
176
+ "SCANNING": "Scanning datasets...",
177
+ "FILES": "files",
178
+ "COPY_LINK_TO": "Copy link to",
179
+ "COPY_LINK_TO_TITLE": "Copy link to {{name}}",
180
+ "LINK_COPIED": "Link copied!",
181
+ "ERROR_LOAD": "Failed to load dataset comparison",
182
+ "SUMMARY": {
183
+ "MISSING": "Missing in AI-Toolkit",
184
+ "BOTH": "In Both Locations",
185
+ "TARGET_ONLY": "Only in AI-Toolkit"
186
+ },
187
+ "PREPARE_TOOLKIT": "Prepare AI Toolkit dataset",
188
+ "PREPARE_MODAL": {
189
+ "TITLE": "Prepare AI Toolkit dataset: {{name}}",
190
+ "SELECTED": "{{count}} images selected",
191
+ "SELECT_ALL": "Select All",
192
+ "DESELECT_ALL": "Deselect All",
193
+ "NO_IMAGES": "No training images found in this dataset.",
194
+ "SUBMIT": "Create Dataset"
195
+ },
196
+ "SECTIONS": {
197
+ "MISSING": {
198
+ "TITLE": "Missing in AI-Toolkit",
199
+ "DESC": "These datasets exist in the source but not in ai-toolkit/datasets"
200
+ },
201
+ "BOTH": {
202
+ "TITLE": "In Both Locations",
203
+ "DESC": "These datasets exist in both source and ai-toolkit/datasets"
204
+ },
205
+ "TARGET_ONLY": {
206
+ "TITLE": "Only in AI-Toolkit",
207
+ "DESC": "These datasets exist only in ai-toolkit/datasets"
208
+ }
209
+ }
210
+ },
211
+ "MODELS": {
212
+ "TITLE": "Models",
213
+ "SEARCH_PLACEHOLDER": "Search models...",
214
+ "NO_MODELS": "No models found",
215
+ "SCANNING": "Scanning...",
216
+ "GENERATE_LIST": "Generate List",
217
+ "SORT_BY": "Sort by:",
218
+ "SORT": {
219
+ "NAME": "Name (A-Z)",
220
+ "CREATED_DESC": "Date Created (Newest)",
221
+ "CREATED_ASC": "Date Created (Oldest)",
222
+ "UPDATED_DESC": "Date Updated (Newest)",
223
+ "UPDATED_ASC": "Date Updated (Oldest)"
224
+ },
225
+ "SHOW_ISSUES": "Show Issues Only",
226
+ "SHOW_DUPLICATES": "Show Duplicates Only",
227
+ "DETAILS": {
228
+ "TYPE": "Type:",
229
+ "LOCATION": "Location:",
230
+ "COPY_PATH": "Copy Path",
231
+ "CIVITAI": "Civitai:",
232
+ "COPY_LINK": "Copy Link",
233
+ "DOWNLOAD": "Download",
234
+ "DOWNLOAD_SAMPLES": "Download Samples",
235
+ "ISSUE": "Issue:",
236
+ "BROKEN_FILES": "Contains {{count}} broken files (< 17 bytes)",
237
+ "CLEAN_BROKEN": "Clean Broken Files",
238
+ "CLEANING": "Cleaning...",
239
+ "NO_SAFETENSOR": "No .safetensors file found",
240
+ "NO_SAMPLES": "No sample images/videos found",
241
+ "SET_AS_COVER": "Set as Cover",
242
+ "CURRENT_COVER": "Current Cover"
243
+ }
244
+ },
245
+ "MEDIA": {
246
+ "VIDEO_NOT_SUPPORTED": "Your browser does not support the video tag.",
247
+ "FILENAME": "Filename",
248
+ "PROMPT": "Prompt",
249
+ "NEGATIVE_PROMPT": "Negative Prompt",
250
+ "RESOURCES": "Resources",
251
+ "SAMPLE_TYPE": {
252
+ "COMMUNITY": "Community",
253
+ "GENERATED": "Generated"
254
+ }
255
+ },
256
+ "README": {
257
+ "TITLE": "README",
258
+ "NO_README": "No README file found"
259
+ },
260
+ "COMFYUI": {
261
+ "TITLE": "ComfyUI Outputs",
262
+ "REFRESH": "Refresh",
263
+ "LOADING": "Loading outputs...",
264
+ "NO_FILES": "No output files found"
265
+ },
266
+ "COMFYUI_OUTPUTS": {
267
+ "IMAGE_METADATA": "Image Metadata",
268
+ "PROMPT": "Prompt",
269
+ "WORKFLOW": "Workflow",
270
+ "NO_METADATA": "No metadata available for this image"
271
+ },
272
+ "COMFYUI_PROMPTS": {
273
+ "WORKFLOW_TYPE": "Workflow Type",
274
+ "PROMPT": "Prompt",
275
+ "PROMPT_PLACEHOLDER": "Enter your prompt here...",
276
+ "SEED": "Seed",
277
+ "RANDOMIZE": "Randomize",
278
+ "AUTO_REGENERATE_SEED": "Auto-regenerate seed on submit",
279
+ "LORA": "LoRA Path",
280
+ "LORA_MODE_REGULAR": "Regular",
281
+ "LORA_MODE_RANDOM_FRIEND": "Random Friend",
282
+ "LORA_MODE_RANDOM_CELEB": "Random Celeb",
283
+ "LORA_MODE_ONE_PER_CELEB": "One per each Celeb",
284
+ "LORA_MODE_MISSING_CELEBS": "Missing Celebs",
285
+ "LORA_MODE_ONE_PER_PRESET": "One per each Preset",
286
+ "LORA_MODE_RANDOM_PRESET": "Random Preset",
287
+ "LORA_PLACEHOLDER": "WAN\\friends7\\wan_kwiaciarka_v1.safetensors",
288
+ "LORA_STRENGTH": "LoRA Strength",
289
+ "LORA_FILTER_PLACEHOLDER": "Type to filter LoRAs...",
290
+ "NO_LORAS": "No LoRAs found",
291
+ "QUANTITY": "Quantity",
292
+ "ONE_PER_CELEB_INFO": "In \"One per each Celeb\" mode, all celebrity LoRAs will be used",
293
+ "MISSING_CELEBS_INFO": "In \"Missing Celebs\" mode, only celebrities without samples for the selected workflow type will be generated",
294
+ "ONE_PER_PRESET_INFO": "Will submit one prompt for each of the {{count}} persona presets",
295
+ "RANDOM_PRESET_INFO": "Will submit with a randomly selected persona preset",
296
+ "MULTI_LORA_MODE": "MultiLora Mode",
297
+ "PERSONA_PRESET": "Persona Preset",
298
+ "SELECT_PERSONA": "-- Select a persona --",
299
+ "SELECT_LORA": "-- Select a LoRA --",
300
+ "ADD_LORA": "Add LoRA",
301
+ "EQUALIZE_STRENGTHS": "Equalize Strengths",
302
+ "RANDOMIZE_LORAS": "Randomize",
303
+ "CREATE_PRESET": "Create New Preset",
304
+ "SAVE_PRESET": "Save changes to preset",
305
+ "SAVE": "Save",
306
+ "PRESET_CODE_PLACEHOLDER": "Code (e.g. magdolata)",
307
+ "PRESET_NAME_PLACEHOLDER": "Name (e.g. Magdolata v2)",
308
+ "CREATE": "Create",
309
+ "LORAS_FOUND": "{{count}} LoRAs found",
310
+ "NEED_AT_LEAST_2": "Need at least 2",
311
+ "QUEUE": "Queue",
312
+ "EMPTY": "empty",
313
+ "TASK": "task",
314
+ "TASKS": "tasks",
315
+ "SUBMIT": "Submit Prompt",
316
+ "SUBMITTING": "Submitting...",
317
+ "PROMPT_FILE": "Prompt File (Boilerplates)",
318
+ "SELECT_FILE": "-- Select a file --",
319
+ "SELECT_PROMPT": "-- Select a prompt --",
320
+ "PROMPTS_AVAILABLE": "prompts available",
321
+ "BATCH_MODE": "Batch Mode",
322
+ "BATCH_SINGLE": "Single (use textarea)",
323
+ "BATCH_RANDOM_X": "Random X",
324
+ "BATCH_FIRST_X": "First X",
325
+ "BATCH_ALL": "All prompts",
326
+ "BATCH_QUANTITY": "Quantity:",
327
+ "BATCH_RANDOM_X_INFO": "Will submit {{count}} random unique prompts from the file",
328
+ "BATCH_FIRST_X_INFO": "Will submit the first {{count}} prompts from the file",
329
+ "BATCH_ALL_INFO": "Will submit all {{count}} prompts from the file",
330
+ "BATCH_DISABLED_MISSING_CELEBS": "Batch modes are disabled with \"Missing Celebs\". The selected prompt from the dropdown will be used for all missing celebs.",
331
+ "BATCH_CONFIRM": "You are about to submit {{promptCount}} prompt(s) × {{loraCount}} LoRA(s) = {{totalCount}} total submissions. Continue?",
332
+ "FOREVER_ON": "Forever ON",
333
+ "FOREVER_OFF": "Forever",
334
+ "FOREVER_DISABLED_HINT": "Cannot use Forever with 'All prompts', 'One per Celeb', or 'Missing Celebs' modes",
335
+ "CONSOLE": "Console",
336
+ "CONSOLE_TITLE": "Developer Console",
337
+ "CONSOLE_EMPTY": "No logs yet. Start generating to see activity.",
338
+ "CLEAR": "Clear"
339
+ },
340
+ "COMMON": {
341
+ "EXPAND": "Expand",
342
+ "COLLAPSE": "Collapse",
343
+ "LOADING": "Loading...",
344
+ "ERROR": "Error",
345
+ "IDS": "IDs",
346
+ "CLOSE": "Close",
347
+ "COPY": "Copy"
348
+ },
349
+ "LANGUAGE": {
350
+ "SELECT": "Select Language",
351
+ "ENGLISH": "English",
352
+ "POLISH": "Polish"
353
+ },
354
+ "MALS": {
355
+ "TITLE": "Mal's Models",
356
+ "SEARCH": "Search models...",
357
+ "CLEAR": "Clear",
358
+ "MODE": {
359
+ "TRAINED": "Trained",
360
+ "NOT_TRAINED": "Not trained"
361
+ },
362
+ "STATS": {
363
+ "FOUND": "Found:"
364
+ },
365
+ "UPDATES": {
366
+ "RECENT": "Recent Updates",
367
+ "UPDATED": "Updated:"
368
+ },
369
+ "SORT": {
370
+ "LABEL": "Sort by:",
371
+ "NAME_ASC": "Name (A-Z)",
372
+ "NAME_DESC": "Name (Z-A)",
373
+ "DATE_DESC": "Update Date (Newest)",
374
+ "DATE_ASC": "Update Date (Oldest)"
375
+ },
376
+ "PERIOD": {
377
+ "LABEL": "Period:",
378
+ "ALL": "All Time",
379
+ "TODAY": "Today",
380
+ "WEEK": "This Week",
381
+ "MONTH": "This Month"
382
+ },
383
+ "PER_PAGE": "Per page:",
384
+ "ALL": "All",
385
+ "TYPES": {
386
+ "LORA": "SD LoRA",
387
+ "LOCON": "SD LoCon",
388
+ "EMBEDDING": "SD Embedding",
389
+ "FLUX": "Flux",
390
+ "WAN": "WAN",
391
+ "SDXL": "SDXL",
392
+ "QWEN": "Qwen",
393
+ "ZIMAGE": "Z Image"
394
+ },
395
+ "PAGINATION": {
396
+ "FIRST": "First",
397
+ "PREV": "Previous",
398
+ "PAGE_OF": "Page {{current}} of {{total}}",
399
+ "NEXT": "Next",
400
+ "LAST": "Last"
401
+ },
402
+ "LOADING": "Loading models...",
403
+ "NO_FILES": "No files found",
404
+ "DAILY": {
405
+ "PEOPLE": "People",
406
+ "MODELS": "Models",
407
+ "NO_UPDATES": "No updates found for this date.",
408
+ "NO_DATA": "No update data available. Run the update scan first."
409
+ }
410
+ },
411
+ "PAGINATION": {
412
+ "SHOWING": "Showing",
413
+ "OF": "of",
414
+ "PAGE": "Page",
415
+ "ITEMS_PER_PAGE": "Items per page",
416
+ "SAMPLES": "samples",
417
+ "SHOW": "Show:",
418
+ "PREV": "Prev",
419
+ "NEXT": "Next"
420
+ }
421
+ }
browser/assets/i18n/pl.json ADDED
@@ -0,0 +1,369 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "APP": {
3
+ "TITLE": "Stabilis Web UI"
4
+ },
5
+ "MENU": {
6
+ "LIST_MODELS": "Lista Modeli",
7
+ "MALS_MODELS": "Modele Mala",
8
+ "COMFYUI_OUTPUTS": "Wyjścia ComfyUI",
9
+ "COMFYUI_PROMPTS": "Prompty ComfyUI",
10
+ "DATASETS": "Zbiory Danych",
11
+ "TRAINING": "Trening",
12
+ "CIVITAI": "CivitAI",
13
+ "REDDIT": "Reddit FAQ"
14
+ },
15
+ "TRAINING": {
16
+ "TARGET_LABEL": "Cel trenowania",
17
+ "TARGET_META": "Cel",
18
+ "TABS": {
19
+ "UPLOAD": "Wgraj i trenuj",
20
+ "JOBS": "Kolejka zadań",
21
+ "STATUS": "Status"
22
+ },
23
+ "UPLOAD": {
24
+ "TITLE": "Wgraj i trenuj",
25
+ "MODEL_NAME": "Nazwa modelu",
26
+ "TOKEN": "Token",
27
+ "CLASS": "Klasa",
28
+ "TYPES": "Typy treningu",
29
+ "IMAGES": "Obrazy",
30
+ "IMAGES_HINT": "Upuść obrazy tutaj lub wybierz pliki",
31
+ "SELECTED": "Wybrane",
32
+ "CLEAR": "Wyczyść",
33
+ "REMOVE": "Usuń",
34
+ "UPLOADING": "Wysyłanie...",
35
+ "SUBMIT": "Wgraj i trenuj"
36
+ },
37
+ "DATASET_MODE": {
38
+ "TITLE": "Trenuj z istniejących datasetów (brakujące modele)",
39
+ "MODEL_TYPE": "Typ modelu",
40
+ "SEARCH": "Szukaj",
41
+ "MISSING_DATASETS": "Brakujące datasety",
42
+ "FOUND": "Znaleziono",
43
+ "SELECTED": "Wybrane",
44
+ "SELECT_ALL": "Zaznacz wszystkie",
45
+ "CLEAR_SELECTION": "Wyczyść zaznaczenie",
46
+ "TRAINING": "Trenowanie...",
47
+ "TRAIN_SELECTED": "Trenuj zaznaczone",
48
+ "FILES": "Pliki"
49
+ },
50
+ "JOBS": {
51
+ "TITLE": "Kolejka zadań",
52
+ "ESTIMATED_TOTAL": "Szacowany czas",
53
+ "ESTIMATED_FINISH": "Szacowany koniec",
54
+ "STARTS_IN": "Start za",
55
+ "MOVE_TOP": "Przenieś na górę",
56
+ "MOVE_UP": "Przesuń w górę",
57
+ "MOVE_DOWN": "Przesuń w dół",
58
+ "MOVE_BOTTOM": "Przenieś na dół",
59
+ "REMOVE": "Usuń z kolejki"
60
+ }
61
+ },
62
+ "DATASETS": {
63
+ "TITLE": "Zarządzanie datasetami",
64
+ "REFRESH": "Odśwież porównanie",
65
+ "SCANNING": "Skanowanie datasetów...",
66
+ "FILES": "plików",
67
+ "COPY_LINK_TO": "Skopiuj link do",
68
+ "COPY_LINK_TO_TITLE": "Skopiuj link do {{name}}",
69
+ "LINK_COPIED": "Link skopiowany!",
70
+ "ERROR_LOAD": "Nie udało się załadować porównania datasetów",
71
+ "SUMMARY": {
72
+ "MISSING": "Brakujące w AI-Toolkit",
73
+ "BOTH": "W obu lokalizacjach",
74
+ "TARGET_ONLY": "Tylko w AI-Toolkit"
75
+ },
76
+ "PREPARE_TOOLKIT": "Przygotuj dataset AI Toolkit",
77
+ "PREPARE_MODAL": {
78
+ "TITLE": "Przygotuj dataset AI Toolkit: {{name}}",
79
+ "SELECTED": "Wybrano {{count}} zdjęć",
80
+ "SELECT_ALL": "Zaznacz wszystkie",
81
+ "DESELECT_ALL": "Odznacz wszystkie",
82
+ "NO_IMAGES": "Nie znaleziono zdjęć treningowych w tym datasiecie.",
83
+ "SUBMIT": "Utwórz dataset"
84
+ },
85
+ "SECTIONS": {
86
+ "MISSING": {
87
+ "TITLE": "Brakujące w AI-Toolkit",
88
+ "DESC": "Te datasety są w źródle, ale nie ma ich w ai-toolkit/datasets"
89
+ },
90
+ "BOTH": {
91
+ "TITLE": "W obu lokalizacjach",
92
+ "DESC": "Te datasety są zarówno w źródle jak i w ai-toolkit/datasets"
93
+ },
94
+ "TARGET_ONLY": {
95
+ "TITLE": "Tylko w AI-Toolkit",
96
+ "DESC": "Te datasety są tylko w ai-toolkit/datasets"
97
+ }
98
+ }
99
+ },
100
+ "CIVITAI": {
101
+ "TITLE": "Integracja CivitAI",
102
+ "TABS": {
103
+ "BROWSER": "Przeglądarka",
104
+ "LOCAL": "Lokalna Przeglądarka",
105
+ "DOWNLOADS": "Pobieranie"
106
+ },
107
+ "BROWSER": {
108
+ "SEARCH": "Szukaj modeli...",
109
+ "USERNAME": "Użytkownik",
110
+ "QUERY": "Szukaj",
111
+ "SORT": "Sortowanie",
112
+ "PERIOD": "Okres",
113
+ "TYPE": "Typ",
114
+ "LIMIT": "Limit",
115
+ "PAGE": "Strona",
116
+ "DOWNLOAD": "Pobierz",
117
+ "QUEUED": "W kolejce",
118
+ "DETAILS": "Szczegóły",
119
+ "RESET": "Resetuj",
120
+ "MODEL_TYPES": "Typy modeli:",
121
+ "BASE_MODEL": "Bazowy model:",
122
+ "FIRST": "Pierwsza",
123
+ "PREV": "Poprzednia",
124
+ "NEXT": "Następna",
125
+ "JUMP_X": "Skocz o {{count}}",
126
+ "DOWNLOADED": "Pobrany",
127
+ "UPDATE": "Aktualizuj",
128
+ "NO_IMAGE": "Brak obrazu",
129
+ "DESCRIPTION": "Opis",
130
+ "DETAILS_TYPE": "Typ:",
131
+ "DETAILS_CREATOR": "Autor:",
132
+ "DETAILS_BASE_MODEL": "Model Bazowy:",
133
+ "DETAILS_PUBLISHED": "Opublikowano:",
134
+ "DETAILS_DOWNLOADS": "Pobrania:",
135
+ "OPEN_ON_CIVITAI": "Otwórz w CivitAI",
136
+ "LOCAL_PATH": "Folder lokalny",
137
+ "FILENAME": "Nazwa pliku",
138
+ "COPY": "Kopiuj",
139
+ "NO_IMAGES": "Brak dostępnych obrazów",
140
+ "SORT_NEWEST": "Najnowsze",
141
+ "SORT_HIGHEST_RATED": "Najwyżej oceniane",
142
+ "SORT_MOST_DOWNLOADED": "Najczęściej pobierane",
143
+ "NSFW": "NSFW",
144
+ "PERIOD_ALL": "Cały czas",
145
+ "PERIOD_YEAR": "Rok",
146
+ "PERIOD_MONTH": "Miesiąc",
147
+ "PERIOD_WEEK": "Tydzień",
148
+ "PERIOD_DAY": "Dzień"
149
+ },
150
+ "DOWNLOADS": {
151
+ "TITLE": "Kolejka pobierania",
152
+ "BULK_LABEL": "Masowe pobieranie (jeden link na linię)",
153
+ "BULK_SUBMIT": "Zaplanuj masowe pobieranie",
154
+ "EMPTY_QUEUE": "Brak aktywnych pobrań",
155
+ "IMAGE_QUEUE": "Kolejka obrazów w czasie rzeczywistym",
156
+ "WAITING": "Oczekujące",
157
+ "ACTIVE": "Aktywne",
158
+ "ERRORS": "Błędy",
159
+ "RESUME": "Wznów",
160
+ "PAUSE": "Wstrzymaj",
161
+ "TRY": "Spróbuj",
162
+ "CLEAR_QUEUE": "Wyczyść kolejkę",
163
+ "RESET_ACTIVE": "Resetuj aktywne",
164
+ "PAUSED": "WSTRZYMANO",
165
+ "CONCURRENCY_SETTINGS": "Ustawienia współbieżności",
166
+ "MODEL_DOWNLOADS": "Pobieranie modeli",
167
+ "IMAGE_DOWNLOADS": "Pobieranie obrazów",
168
+ "IN_QUEUE": "{{count}} w kolejce",
169
+ "LIVE_UPDATES": "Aktualizacje na żywo",
170
+ "REFRESH": "Odśwież",
171
+ "CURRENTLY_ACTIVE": "Obecnie aktywne",
172
+ "RUNNING": "Uruchomione",
173
+ "PROCESSING": "Przetwarzanie...",
174
+ "RETRY": "Ponów",
175
+ "DELETE": "Usuń",
176
+ "FORCE_START": "Wymuś start"
177
+ }
178
+ },
179
+ "MODELS": {
180
+ "TITLE": "Modele",
181
+ "SEARCH_PLACEHOLDER": "Szukaj modeli...",
182
+ "NO_MODELS": "Nie znaleziono modeli",
183
+ "SCANNING": "Skanowanie...",
184
+ "GENERATE_LIST": "Generuj listę",
185
+ "SORT_BY": "Sortuj według:",
186
+ "SORT": {
187
+ "NAME": "Nazwa (A-Z)",
188
+ "CREATED_DESC": "Data utworzenia (Najnowsze)",
189
+ "CREATED_ASC": "Data utworzenia (Najstarsze)",
190
+ "UPDATED_DESC": "Data aktualizacji (Najnowsze)",
191
+ "UPDATED_ASC": "Data aktualizacji (Najstarsze)"
192
+ },
193
+ "SHOW_ISSUES": "Tylko z problemami",
194
+ "SHOW_DUPLICATES": "Tylko duplikaty",
195
+ "DETAILS": {
196
+ "TYPE": "Typ:",
197
+ "LOCATION": "Lokalizacja:",
198
+ "COPY_PATH": "Kopiuj ścieżkę",
199
+ "CIVITAI": "Civitai:",
200
+ "COPY_LINK": "Kopiuj link",
201
+ "DOWNLOAD": "Pobierz",
202
+ "ISSUE": "Problem:",
203
+ "BROKEN_FILES": "Zawiera {{count}} uszkodzone pliki (< 17 bajtów)",
204
+ "CLEAN_BROKEN": "Wyczyść uszkodzone pliki",
205
+ "CLEANING": "Czyszczenie...",
206
+ "NO_SAFETENSOR": "Brak pliku .safetensors",
207
+ "NO_SAMPLES": "Brak przykładowych obrazów/wideo",
208
+ "SET_AS_COVER": "Ustaw jako okładkę",
209
+ "CURRENT_COVER": "Aktualna okładka"
210
+ }
211
+ },
212
+ "MEDIA": {
213
+ "VIDEO_NOT_SUPPORTED": "Twoja przeglądarka nie obsługuje tagu wideo.",
214
+ "FILENAME": "Nazwa pliku",
215
+ "PROMPT": "Prompt",
216
+ "NEGATIVE_PROMPT": "Negatywny Prompt",
217
+ "RESOURCES": "Zasoby",
218
+ "SAMPLE_TYPE": {
219
+ "COMMUNITY": "Społeczność",
220
+ "GENERATED": "Wygenerowane"
221
+ }
222
+ },
223
+ "README": {
224
+ "TITLE": "README",
225
+ "NO_README": "Nie znaleziono pliku README"
226
+ },
227
+ "COMFYUI": {
228
+ "TITLE": "Wyjścia ComfyUI",
229
+ "REFRESH": "Odśwież",
230
+ "LOADING": "Ładowanie wyjść...",
231
+ "NO_FILES": "Nie znaleziono plików wyjściowych"
232
+ },
233
+ "COMFYUI_OUTPUTS": {
234
+ "IMAGE_METADATA": "Metadane Obrazu",
235
+ "PROMPT": "Prompt",
236
+ "WORKFLOW": "Przepływ Pracy",
237
+ "NO_METADATA": "Brak metadanych dla tego obrazu"
238
+ },
239
+ "COMFYUI_PROMPTS": {
240
+ "WORKFLOW_TYPE": "Typ Przepływu",
241
+ "PROMPT": "Prompt",
242
+ "PROMPT_PLACEHOLDER": "Wprowadź swój prompt tutaj...",
243
+ "SEED": "Ziarno",
244
+ "RANDOMIZE": "Losuj",
245
+ "AUTO_REGENERATE_SEED": "Automatycznie regeneruj ziarno przy wysłaniu",
246
+ "LORA": "Ścieżka LoRA",
247
+ "LORA_MODE_REGULAR": "Zwykły",
248
+ "LORA_MODE_RANDOM_FRIEND": "Losowy Przyjaciel",
249
+ "LORA_MODE_RANDOM_CELEB": "Losowa Celebrytka",
250
+ "LORA_MODE_ONE_PER_CELEB": "Po jednym na każdą celebrytkę",
251
+ "LORA_MODE_MISSING_CELEBS": "Brakujące celebrytki",
252
+ "LORA_PLACEHOLDER": "WAN\\friends7\\wan_kwiaciarka_v1.safetensors",
253
+ "LORA_STRENGTH": "Siła LoRA",
254
+ "LORA_FILTER_PLACEHOLDER": "Wpisz aby filtrować LoRA...",
255
+ "NO_LORAS": "Nie znaleziono LoRA",
256
+ "QUANTITY": "Ilość",
257
+ "ONE_PER_CELEB_INFO": "W trybie \"Po jednym dla każdej celebrytki\" wszystkie LoRA celebrytek będą użyte",
258
+ "MISSING_CELEBS_INFO": "W trybie \"Brakujące celebrytki\" będą wygenerowane tylko celebrytki bez próbek dla wybranego typu przepływu pracy",
259
+ "QUEUE": "Kolejka",
260
+ "EMPTY": "pusta",
261
+ "TASK": "zadanie",
262
+ "TASKS": "zadań",
263
+ "SUBMIT": "Wyślij Prompt",
264
+ "SUBMITTING": "Wysyłanie...",
265
+ "PROMPT_FILE": "Plik Promptów (Szablony)",
266
+ "SELECT_FILE": "-- Wybierz plik --",
267
+ "SELECT_PROMPT": "-- Wybierz prompt --",
268
+ "PROMPTS_AVAILABLE": "promptów dostępnych",
269
+ "BATCH_MODE": "Tryb Wsadowy",
270
+ "BATCH_SINGLE": "Pojedynczy (użyj pola tekstowego)",
271
+ "BATCH_RANDOM_X": "Losowe X",
272
+ "BATCH_FIRST_X": "Pierwsze X",
273
+ "BATCH_ALL": "Wszystkie prompty",
274
+ "BATCH_QUANTITY": "Ilość:",
275
+ "BATCH_RANDOM_X_INFO": "Wyśle {{count}} losowych unikalnych promptów z pliku",
276
+ "BATCH_FIRST_X_INFO": "Wyśle pierwszych {{count}} promptów z pliku",
277
+ "BATCH_ALL_INFO": "Wyśle wszystkie {{count}} promptów z pliku",
278
+ "BATCH_DISABLED_MISSING_CELEBS": "Tryby wsadowe są wyłączone z \"Brakującymi celebrytkami\". Wybrany prompt z listy rozwijanej będzie użyty dla wszystkich brakujących celebrytek.",
279
+ "BATCH_CONFIRM": "Zamierzasz wysłać {{promptCount}} prompt(ów) × {{loraCount}} LoRA = {{totalCount}} łącznie. Kontynuować?",
280
+ "FOREVER_ON": "Ciągle WŁ",
281
+ "FOREVER_OFF": "Ciągle",
282
+ "FOREVER_DISABLED_HINT": "Nie można używać trybu 'Ciągle' z 'Wszystkie prompty', 'Po jednym na celebrytkę' lub 'Brakujące celebrytki'",
283
+ "CONSOLE": "Konsola",
284
+ "CONSOLE_TITLE": "Konsola deweloperska",
285
+ "CONSOLE_EMPTY": "Brak logów. Zacznij generować, aby zobaczyć aktywność.",
286
+ "CLEAR": "Wyczyść"
287
+ },
288
+ "COMMON": {
289
+ "EXPAND": "Rozwiń",
290
+ "COLLAPSE": "Zwiń",
291
+ "LOADING": "Ładowanie...",
292
+ "ERROR": "Błąd",
293
+ "IDS": "ID",
294
+ "CLOSE": "Zamknij",
295
+ "COPY": "Kopiuj"
296
+ },
297
+ "LANGUAGE": {
298
+ "SELECT": "Wybierz Język",
299
+ "ENGLISH": "Angielski",
300
+ "POLISH": "Polski"
301
+ },
302
+ "MALS": {
303
+ "TITLE": "Modele Mala",
304
+ "SEARCH": "Szukaj modeli...",
305
+ "CLEAR": "Wyczyść",
306
+ "MODE": {
307
+ "TRAINED": "Wytrenowane",
308
+ "NOT_TRAINED": "Niewytrenowane"
309
+ },
310
+ "STATS": {
311
+ "FOUND": "Znaleziono:"
312
+ },
313
+ "UPDATES": {
314
+ "RECENT": "Ostatnie Aktualizacje",
315
+ "UPDATED": "Zaktualizowano:"
316
+ },
317
+ "SORT": {
318
+ "LABEL": "Sortuj według:",
319
+ "NAME_ASC": "Nazwa (A-Z)",
320
+ "NAME_DESC": "Nazwa (Z-A)",
321
+ "DATE_DESC": "Data aktualizacji (Najnowsze)",
322
+ "DATE_ASC": "Data aktualizacji (Najstarsze)"
323
+ },
324
+ "PERIOD": {
325
+ "LABEL": "Okres:",
326
+ "ALL": "Wszystko",
327
+ "TODAY": "Dzisiaj",
328
+ "WEEK": "Ten tydzień",
329
+ "MONTH": "Ten miesiąc"
330
+ },
331
+ "PER_PAGE": "Na stronę:",
332
+ "ALL": "Wszystko",
333
+ "TYPES": {
334
+ "LORA": "SD LoRA",
335
+ "LOCON": "SD LoCon",
336
+ "EMBEDDING": "SD Embedding",
337
+ "FLUX": "Flux",
338
+ "WAN": "WAN",
339
+ "SDXL": "SDXL",
340
+ "QWEN": "Qwen",
341
+ "ZIMAGE": "Z Image"
342
+ },
343
+ "PAGINATION": {
344
+ "FIRST": "Pierwsza",
345
+ "PREV": "Poprzednia",
346
+ "PAGE_OF": "Strona {{current}} z {{total}}",
347
+ "NEXT": "Następna",
348
+ "LAST": "Ostatnia"
349
+ },
350
+ "LOADING": "Ładowanie modeli...",
351
+ "NO_FILES": "Nie znaleziono plików",
352
+ "DAILY": {
353
+ "PEOPLE": "Ludzie",
354
+ "MODELS": "Modele",
355
+ "NO_UPDATES": "Nie znaleziono aktualizacji dla tej daty.",
356
+ "NO_DATA": "Brak danych o aktualizacjach. Najpierw uruchom skanowanie."
357
+ }
358
+ },
359
+ "PAGINATION": {
360
+ "SHOWING": "Wyświetlanie",
361
+ "OF": "z",
362
+ "PAGE": "Strona",
363
+ "ITEMS_PER_PAGE": "Elementów na stronie",
364
+ "SAMPLES": "próbek",
365
+ "SHOW": "Pokaż:",
366
+ "PREV": "Poprzednia",
367
+ "NEXT": "Następna"
368
+ }
369
+ }
browser/favicon.ico ADDED
browser/index.html ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!doctype html>
2
+ <html lang="en" data-beasties-container>
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <title>Image Cropper</title>
6
+ <base href="/">
7
+ <meta name="viewport" content="width=device-width, initial-scale=1">
8
+ <link rel="icon" type="image/x-icon" href="favicon.ico">
9
+ <style>html,body{margin:0;padding:0;height:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background-color:#f8fafc;color:#0f172a}</style><link rel="stylesheet" href="styles-CKTKRBG3.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles-CKTKRBG3.css"></noscript></head>
10
+ <body>
11
+ <app-root></app-root>
12
+ <script src="polyfills-5CFQRCPP.js" type="module"></script><script src="main-I7P7HWZN.js" type="module"></script></body>
13
+ </html>
14
+
browser/main-I7P7HWZN.js ADDED
The diff for this file is too large to render. See raw diff
 
browser/polyfills-5CFQRCPP.js ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ var ce=globalThis;function te(t){return(ce.__Zone_symbol_prefix||"__zone_symbol__")+t}function ht(){let t=ce.performance;function n(I){t&&t.mark&&t.mark(I)}function a(I,s){t&&t.measure&&t.measure(I,s)}n("Zone");class e{static __symbol__=te;static assertZonePatched(){if(ce.Promise!==S.ZoneAwarePromise)throw new Error("Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)")}static get root(){let s=e.current;for(;s.parent;)s=s.parent;return s}static get current(){return b.zone}static get currentTask(){return D}static __load_patch(s,i,r=!1){if(S.hasOwnProperty(s)){let E=ce[te("forceDuplicateZoneCheck")]===!0;if(!r&&E)throw Error("Already loaded patch: "+s)}else if(!ce["__Zone_disable_"+s]){let E="Zone:"+s;n(E),S[s]=i(ce,e,R),a(E,E)}}get parent(){return this._parent}get name(){return this._name}_parent;_name;_properties;_zoneDelegate;constructor(s,i){this._parent=s,this._name=i?i.name||"unnamed":"<root>",this._properties=i&&i.properties||{},this._zoneDelegate=new f(this,this._parent&&this._parent._zoneDelegate,i)}get(s){let i=this.getZoneWith(s);if(i)return i._properties[s]}getZoneWith(s){let i=this;for(;i;){if(i._properties.hasOwnProperty(s))return i;i=i._parent}return null}fork(s){if(!s)throw new Error("ZoneSpec required!");return this._zoneDelegate.fork(this,s)}wrap(s,i){if(typeof s!="function")throw new Error("Expecting function got: "+s);let r=this._zoneDelegate.intercept(this,s,i),E=this;return function(){return E.runGuarded(r,this,arguments,i)}}run(s,i,r,E){b={parent:b,zone:this};try{return this._zoneDelegate.invoke(this,s,i,r,E)}finally{b=b.parent}}runGuarded(s,i=null,r,E){b={parent:b,zone:this};try{try{return this._zoneDelegate.invoke(this,s,i,r,E)}catch(x){if(this._zoneDelegate.handleError(this,x))throw x}}finally{b=b.parent}}runTask(s,i,r){if(s.zone!=this)throw new Error("A task can only be run in the zone of creation! (Creation: "+(s.zone||J).name+"; Execution: "+this.name+")");let E=s,{type:x,data:{isPeriodic:ee=!1,isRefreshable:M=!1}={}}=s;if(s.state===q&&(x===U||x===k))return;let he=s.state!=A;he&&E._transitionTo(A,d);let _e=D;D=E,b={parent:b,zone:this};try{x==k&&s.data&&!ee&&!M&&(s.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,E,i,r)}catch(Q){if(this._zoneDelegate.handleError(this,Q))throw Q}}finally{let Q=s.state;if(Q!==q&&Q!==X)if(x==U||ee||M&&Q===p)he&&E._transitionTo(d,A,p);else{let Te=E._zoneDelegates;this._updateTaskCount(E,-1),he&&E._transitionTo(q,A,q),M&&(E._zoneDelegates=Te)}b=b.parent,D=_e}}scheduleTask(s){if(s.zone&&s.zone!==this){let r=this;for(;r;){if(r===s.zone)throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${s.zone.name}`);r=r.parent}}s._transitionTo(p,q);let i=[];s._zoneDelegates=i,s._zone=this;try{s=this._zoneDelegate.scheduleTask(this,s)}catch(r){throw s._transitionTo(X,p,q),this._zoneDelegate.handleError(this,r),r}return s._zoneDelegates===i&&this._updateTaskCount(s,1),s.state==p&&s._transitionTo(d,p),s}scheduleMicroTask(s,i,r,E){return this.scheduleTask(new g(F,s,i,r,E,void 0))}scheduleMacroTask(s,i,r,E,x){return this.scheduleTask(new g(k,s,i,r,E,x))}scheduleEventTask(s,i,r,E,x){return this.scheduleTask(new g(U,s,i,r,E,x))}cancelTask(s){if(s.zone!=this)throw new Error("A task can only be cancelled in the zone of creation! (Creation: "+(s.zone||J).name+"; Execution: "+this.name+")");if(!(s.state!==d&&s.state!==A)){s._transitionTo(V,d,A);try{this._zoneDelegate.cancelTask(this,s)}catch(i){throw s._transitionTo(X,V),this._zoneDelegate.handleError(this,i),i}return this._updateTaskCount(s,-1),s._transitionTo(q,V),s.runCount=-1,s}}_updateTaskCount(s,i){let r=s._zoneDelegates;i==-1&&(s._zoneDelegates=null);for(let E=0;E<r.length;E++)r[E]._updateTaskCount(s.type,i)}}let c={name:"",onHasTask:(I,s,i,r)=>I.hasTask(i,r),onScheduleTask:(I,s,i,r)=>I.scheduleTask(i,r),onInvokeTask:(I,s,i,r,E,x)=>I.invokeTask(i,r,E,x),onCancelTask:(I,s,i,r)=>I.cancelTask(i,r)};class f{get zone(){return this._zone}_zone;_taskCounts={microTask:0,macroTask:0,eventTask:0};_parentDelegate;_forkDlgt;_forkZS;_forkCurrZone;_interceptDlgt;_interceptZS;_interceptCurrZone;_invokeDlgt;_invokeZS;_invokeCurrZone;_handleErrorDlgt;_handleErrorZS;_handleErrorCurrZone;_scheduleTaskDlgt;_scheduleTaskZS;_scheduleTaskCurrZone;_invokeTaskDlgt;_invokeTaskZS;_invokeTaskCurrZone;_cancelTaskDlgt;_cancelTaskZS;_cancelTaskCurrZone;_hasTaskDlgt;_hasTaskDlgtOwner;_hasTaskZS;_hasTaskCurrZone;constructor(s,i,r){this._zone=s,this._parentDelegate=i,this._forkZS=r&&(r&&r.onFork?r:i._forkZS),this._forkDlgt=r&&(r.onFork?i:i._forkDlgt),this._forkCurrZone=r&&(r.onFork?this._zone:i._forkCurrZone),this._interceptZS=r&&(r.onIntercept?r:i._interceptZS),this._interceptDlgt=r&&(r.onIntercept?i:i._interceptDlgt),this._interceptCurrZone=r&&(r.onIntercept?this._zone:i._interceptCurrZone),this._invokeZS=r&&(r.onInvoke?r:i._invokeZS),this._invokeDlgt=r&&(r.onInvoke?i:i._invokeDlgt),this._invokeCurrZone=r&&(r.onInvoke?this._zone:i._invokeCurrZone),this._handleErrorZS=r&&(r.onHandleError?r:i._handleErrorZS),this._handleErrorDlgt=r&&(r.onHandleError?i:i._handleErrorDlgt),this._handleErrorCurrZone=r&&(r.onHandleError?this._zone:i._handleErrorCurrZone),this._scheduleTaskZS=r&&(r.onScheduleTask?r:i._scheduleTaskZS),this._scheduleTaskDlgt=r&&(r.onScheduleTask?i:i._scheduleTaskDlgt),this._scheduleTaskCurrZone=r&&(r.onScheduleTask?this._zone:i._scheduleTaskCurrZone),this._invokeTaskZS=r&&(r.onInvokeTask?r:i._invokeTaskZS),this._invokeTaskDlgt=r&&(r.onInvokeTask?i:i._invokeTaskDlgt),this._invokeTaskCurrZone=r&&(r.onInvokeTask?this._zone:i._invokeTaskCurrZone),this._cancelTaskZS=r&&(r.onCancelTask?r:i._cancelTaskZS),this._cancelTaskDlgt=r&&(r.onCancelTask?i:i._cancelTaskDlgt),this._cancelTaskCurrZone=r&&(r.onCancelTask?this._zone:i._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;let E=r&&r.onHasTask,x=i&&i._hasTaskZS;(E||x)&&(this._hasTaskZS=E?r:c,this._hasTaskDlgt=i,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=this._zone,r.onScheduleTask||(this._scheduleTaskZS=c,this._scheduleTaskDlgt=i,this._scheduleTaskCurrZone=this._zone),r.onInvokeTask||(this._invokeTaskZS=c,this._invokeTaskDlgt=i,this._invokeTaskCurrZone=this._zone),r.onCancelTask||(this._cancelTaskZS=c,this._cancelTaskDlgt=i,this._cancelTaskCurrZone=this._zone))}fork(s,i){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,s,i):new e(s,i)}intercept(s,i,r){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,s,i,r):i}invoke(s,i,r,E,x){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,s,i,r,E,x):i.apply(r,E)}handleError(s,i){return this._handleErrorZS?this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,s,i):!0}scheduleTask(s,i){let r=i;if(this._scheduleTaskZS)this._hasTaskZS&&r._zoneDelegates.push(this._hasTaskDlgtOwner),r=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,s,i),r||(r=i);else if(i.scheduleFn)i.scheduleFn(i);else if(i.type==F)z(i);else throw new Error("Task is missing scheduleFn.");return r}invokeTask(s,i,r,E){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,s,i,r,E):i.callback.apply(r,E)}cancelTask(s,i){let r;if(this._cancelTaskZS)r=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,s,i);else{if(!i.cancelFn)throw Error("Task is not cancelable");r=i.cancelFn(i)}return r}hasTask(s,i){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,s,i)}catch(r){this.handleError(s,r)}}_updateTaskCount(s,i){let r=this._taskCounts,E=r[s],x=r[s]=E+i;if(x<0)throw new Error("More tasks executed then were scheduled.");if(E==0||x==0){let ee={microTask:r.microTask>0,macroTask:r.macroTask>0,eventTask:r.eventTask>0,change:s};this.hasTask(this._zone,ee)}}}class g{type;source;invoke;callback;data;scheduleFn;cancelFn;_zone=null;runCount=0;_zoneDelegates=null;_state="notScheduled";constructor(s,i,r,E,x,ee){if(this.type=s,this.source=i,this.data=E,this.scheduleFn=x,this.cancelFn=ee,!r)throw new Error("callback is not defined");this.callback=r;let M=this;s===U&&E&&E.useG?this.invoke=g.invokeTask:this.invoke=function(){return g.invokeTask.call(ce,M,this,arguments)}}static invokeTask(s,i,r){s||(s=this),K++;try{return s.runCount++,s.zone.runTask(s,i,r)}finally{K==1&&$(),K--}}get zone(){return this._zone}get state(){return this._state}cancelScheduleRequest(){this._transitionTo(q,p)}_transitionTo(s,i,r){if(this._state===i||this._state===r)this._state=s,s==q&&(this._zoneDelegates=null);else throw new Error(`${this.type} '${this.source}': can not transition to '${s}', expecting state '${i}'${r?" or '"+r+"'":""}, was '${this._state}'.`)}toString(){return this.data&&typeof this.data.handleId<"u"?this.data.handleId.toString():Object.prototype.toString.call(this)}toJSON(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}}let T=te("setTimeout"),y=te("Promise"),w=te("then"),_=[],P=!1,L;function H(I){if(L||ce[y]&&(L=ce[y].resolve(0)),L){let s=L[w];s||(s=L.then),s.call(L,I)}else ce[T](I,0)}function z(I){K===0&&_.length===0&&H($),I&&_.push(I)}function $(){if(!P){for(P=!0;_.length;){let I=_;_=[];for(let s=0;s<I.length;s++){let i=I[s];try{i.zone.runTask(i,null,null)}catch(r){R.onUnhandledError(r)}}}R.microtaskDrainDone(),P=!1}}let J={name:"NO ZONE"},q="notScheduled",p="scheduling",d="scheduled",A="running",V="canceling",X="unknown",F="microTask",k="macroTask",U="eventTask",S={},R={symbol:te,currentZoneFrame:()=>b,onUnhandledError:W,microtaskDrainDone:W,scheduleMicroTask:z,showUncaughtError:()=>!e[te("ignoreConsoleErrorUncaughtError")],patchEventTarget:()=>[],patchOnProperties:W,patchMethod:()=>W,bindArguments:()=>[],patchThen:()=>W,patchMacroTask:()=>W,patchEventPrototype:()=>W,isIEOrEdge:()=>!1,getGlobalObjects:()=>{},ObjectDefineProperty:()=>W,ObjectGetOwnPropertyDescriptor:()=>{},ObjectCreate:()=>{},ArraySlice:()=>[],patchClass:()=>W,wrapWithCurrentZone:()=>W,filterProperties:()=>[],attachOriginToPatched:()=>W,_redefineProperty:()=>W,patchCallbacks:()=>W,nativeScheduleMicroTask:H},b={parent:null,zone:new e(null,null)},D=null,K=0;function W(){}return a("Zone","Zone"),e}function dt(){let t=globalThis,n=t[te("forceDuplicateZoneCheck")]===!0;if(t.Zone&&(n||typeof t.Zone.__symbol__!="function"))throw new Error("Zone already loaded.");return t.Zone??=ht(),t.Zone}var pe=Object.getOwnPropertyDescriptor,Me=Object.defineProperty,Ae=Object.getPrototypeOf,_t=Object.create,Tt=Array.prototype.slice,je="addEventListener",He="removeEventListener",Ne=te(je),Ze=te(He),ae="true",le="false",ve=te("");function Ve(t,n){return Zone.current.wrap(t,n)}function xe(t,n,a,e,c){return Zone.current.scheduleMacroTask(t,n,a,e,c)}var j=te,we=typeof window<"u",be=we?window:void 0,Y=we&&be||globalThis,Et="removeAttribute";function Fe(t,n){for(let a=t.length-1;a>=0;a--)typeof t[a]=="function"&&(t[a]=Ve(t[a],n+"_"+a));return t}function gt(t,n){let a=t.constructor.name;for(let e=0;e<n.length;e++){let c=n[e],f=t[c];if(f){let g=pe(t,c);if(!et(g))continue;t[c]=(T=>{let y=function(){return T.apply(this,Fe(arguments,a+"."+c))};return fe(y,T),y})(f)}}}function et(t){return t?t.writable===!1?!1:!(typeof t.get=="function"&&typeof t.set>"u"):!0}var tt=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope,De=!("nw"in Y)&&typeof Y.process<"u"&&Y.process.toString()==="[object process]",Ge=!De&&!tt&&!!(we&&be.HTMLElement),nt=typeof Y.process<"u"&&Y.process.toString()==="[object process]"&&!tt&&!!(we&&be.HTMLElement),Ce={},kt=j("enable_beforeunload"),Xe=function(t){if(t=t||Y.event,!t)return;let n=Ce[t.type];n||(n=Ce[t.type]=j("ON_PROPERTY"+t.type));let a=this||t.target||Y,e=a[n],c;if(Ge&&a===be&&t.type==="error"){let f=t;c=e&&e.call(this,f.message,f.filename,f.lineno,f.colno,f.error),c===!0&&t.preventDefault()}else c=e&&e.apply(this,arguments),t.type==="beforeunload"&&Y[kt]&&typeof c=="string"?t.returnValue=c:c!=null&&!c&&t.preventDefault();return c};function Ye(t,n,a){let e=pe(t,n);if(!e&&a&&pe(a,n)&&(e={enumerable:!0,configurable:!0}),!e||!e.configurable)return;let c=j("on"+n+"patched");if(t.hasOwnProperty(c)&&t[c])return;delete e.writable,delete e.value;let f=e.get,g=e.set,T=n.slice(2),y=Ce[T];y||(y=Ce[T]=j("ON_PROPERTY"+T)),e.set=function(w){let _=this;if(!_&&t===Y&&(_=Y),!_)return;typeof _[y]=="function"&&_.removeEventListener(T,Xe),g?.call(_,null),_[y]=w,typeof w=="function"&&_.addEventListener(T,Xe,!1)},e.get=function(){let w=this;if(!w&&t===Y&&(w=Y),!w)return null;let _=w[y];if(_)return _;if(f){let P=f.call(this);if(P)return e.set.call(this,P),typeof w[Et]=="function"&&w.removeAttribute(n),P}return null},Me(t,n,e),t[c]=!0}function rt(t,n,a){if(n)for(let e=0;e<n.length;e++)Ye(t,"on"+n[e],a);else{let e=[];for(let c in t)c.slice(0,2)=="on"&&e.push(c);for(let c=0;c<e.length;c++)Ye(t,e[c],a)}}var oe=j("originalInstance");function ye(t){let n=Y[t];if(!n)return;Y[j(t)]=n,Y[t]=function(){let c=Fe(arguments,t);switch(c.length){case 0:this[oe]=new n;break;case 1:this[oe]=new n(c[0]);break;case 2:this[oe]=new n(c[0],c[1]);break;case 3:this[oe]=new n(c[0],c[1],c[2]);break;case 4:this[oe]=new n(c[0],c[1],c[2],c[3]);break;default:throw new Error("Arg list too long.")}},fe(Y[t],n);let a=new n(function(){}),e;for(e in a)t==="XMLHttpRequest"&&e==="responseBlob"||(function(c){typeof a[c]=="function"?Y[t].prototype[c]=function(){return this[oe][c].apply(this[oe],arguments)}:Me(Y[t].prototype,c,{set:function(f){typeof f=="function"?(this[oe][c]=Ve(f,t+"."+c),fe(this[oe][c],f)):this[oe][c]=f},get:function(){return this[oe][c]}})})(e);for(e in n)e!=="prototype"&&n.hasOwnProperty(e)&&(Y[t][e]=n[e])}function ue(t,n,a){let e=t;for(;e&&!e.hasOwnProperty(n);)e=Ae(e);!e&&t[n]&&(e=t);let c=j(n),f=null;if(e&&(!(f=e[c])||!e.hasOwnProperty(c))){f=e[c]=e[n];let g=e&&pe(e,n);if(et(g)){let T=a(f,c,n);e[n]=function(){return T(this,arguments)},fe(e[n],f)}}return f}function mt(t,n,a){let e=null;function c(f){let g=f.data;return g.args[g.cbIdx]=function(){f.invoke.apply(this,arguments)},e.apply(g.target,g.args),f}e=ue(t,n,f=>function(g,T){let y=a(g,T);return y.cbIdx>=0&&typeof T[y.cbIdx]=="function"?xe(y.name,T[y.cbIdx],y,c):f.apply(g,T)})}function fe(t,n){t[j("OriginalDelegate")]=n}var $e=!1,Le=!1;function yt(){if($e)return Le;$e=!0;try{let t=be.navigator.userAgent;(t.indexOf("MSIE ")!==-1||t.indexOf("Trident/")!==-1||t.indexOf("Edge/")!==-1)&&(Le=!0)}catch{}return Le}function Je(t){return typeof t=="function"}function Ke(t){return typeof t=="number"}var pt={useG:!0},ne={},ot={},st=new RegExp("^"+ve+"(\\w+)(true|false)$"),it=j("propagationStopped");function ct(t,n){let a=(n?n(t):t)+le,e=(n?n(t):t)+ae,c=ve+a,f=ve+e;ne[t]={},ne[t][le]=c,ne[t][ae]=f}function vt(t,n,a,e){let c=e&&e.add||je,f=e&&e.rm||He,g=e&&e.listeners||"eventListeners",T=e&&e.rmAll||"removeAllListeners",y=j(c),w="."+c+":",_="prependListener",P="."+_+":",L=function(p,d,A){if(p.isRemoved)return;let V=p.callback;typeof V=="object"&&V.handleEvent&&(p.callback=k=>V.handleEvent(k),p.originalDelegate=V);let X;try{p.invoke(p,d,[A])}catch(k){X=k}let F=p.options;if(F&&typeof F=="object"&&F.once){let k=p.originalDelegate?p.originalDelegate:p.callback;d[f].call(d,A.type,k,F)}return X};function H(p,d,A){if(d=d||t.event,!d)return;let V=p||d.target||t,X=V[ne[d.type][A?ae:le]];if(X){let F=[];if(X.length===1){let k=L(X[0],V,d);k&&F.push(k)}else{let k=X.slice();for(let U=0;U<k.length&&!(d&&d[it]===!0);U++){let S=L(k[U],V,d);S&&F.push(S)}}if(F.length===1)throw F[0];for(let k=0;k<F.length;k++){let U=F[k];n.nativeScheduleMicroTask(()=>{throw U})}}}let z=function(p){return H(this,p,!1)},$=function(p){return H(this,p,!0)};function J(p,d){if(!p)return!1;let A=!0;d&&d.useG!==void 0&&(A=d.useG);let V=d&&d.vh,X=!0;d&&d.chkDup!==void 0&&(X=d.chkDup);let F=!1;d&&d.rt!==void 0&&(F=d.rt);let k=p;for(;k&&!k.hasOwnProperty(c);)k=Ae(k);if(!k&&p[c]&&(k=p),!k||k[y])return!1;let U=d&&d.eventNameToString,S={},R=k[y]=k[c],b=k[j(f)]=k[f],D=k[j(g)]=k[g],K=k[j(T)]=k[T],W;d&&d.prepend&&(W=k[j(d.prepend)]=k[d.prepend]);function I(o,u){return u?typeof o=="boolean"?{capture:o,passive:!0}:o?typeof o=="object"&&o.passive!==!1?{...o,passive:!0}:o:{passive:!0}:o}let s=function(o){if(!S.isExisting)return R.call(S.target,S.eventName,S.capture?$:z,S.options)},i=function(o){if(!o.isRemoved){let u=ne[o.eventName],v;u&&(v=u[o.capture?ae:le]);let C=v&&o.target[v];if(C){for(let m=0;m<C.length;m++)if(C[m]===o){C.splice(m,1),o.isRemoved=!0,o.removeAbortListener&&(o.removeAbortListener(),o.removeAbortListener=null),C.length===0&&(o.allRemoved=!0,o.target[v]=null);break}}}if(o.allRemoved)return b.call(o.target,o.eventName,o.capture?$:z,o.options)},r=function(o){return R.call(S.target,S.eventName,o.invoke,S.options)},E=function(o){return W.call(S.target,S.eventName,o.invoke,S.options)},x=function(o){return b.call(o.target,o.eventName,o.invoke,o.options)},ee=A?s:r,M=A?i:x,he=function(o,u){let v=typeof u;return v==="function"&&o.callback===u||v==="object"&&o.originalDelegate===u},_e=d?.diff||he,Q=Zone[j("UNPATCHED_EVENTS")],Te=t[j("PASSIVE_EVENTS")];function h(o){if(typeof o=="object"&&o!==null){let u={...o};return o.signal&&(u.signal=o.signal),u}return o}let l=function(o,u,v,C,m=!1,O=!1){return function(){let N=this||t,Z=arguments[0];d&&d.transferEventName&&(Z=d.transferEventName(Z));let G=arguments[1];if(!G)return o.apply(this,arguments);if(De&&Z==="uncaughtException")return o.apply(this,arguments);let B=!1;if(typeof G!="function"){if(!G.handleEvent)return o.apply(this,arguments);B=!0}if(V&&!V(o,G,N,arguments))return;let de=!!Te&&Te.indexOf(Z)!==-1,se=h(I(arguments[2],de)),Ee=se?.signal;if(Ee?.aborted)return;if(Q){for(let ie=0;ie<Q.length;ie++)if(Z===Q[ie])return de?o.call(N,Z,G,se):o.apply(this,arguments)}let Se=se?typeof se=="boolean"?!0:se.capture:!1,Be=se&&typeof se=="object"?se.once:!1,ft=Zone.current,Oe=ne[Z];Oe||(ct(Z,U),Oe=ne[Z]);let ze=Oe[Se?ae:le],ge=N[ze],Ue=!1;if(ge){if(Ue=!0,X){for(let ie=0;ie<ge.length;ie++)if(_e(ge[ie],G))return}}else ge=N[ze]=[];let Pe,We=N.constructor.name,qe=ot[We];qe&&(Pe=qe[Z]),Pe||(Pe=We+u+(U?U(Z):Z)),S.options=se,Be&&(S.options.once=!1),S.target=N,S.capture=Se,S.eventName=Z,S.isExisting=Ue;let me=A?pt:void 0;me&&(me.taskData=S),Ee&&(S.options.signal=void 0);let re=ft.scheduleEventTask(Pe,G,me,v,C);if(Ee){S.options.signal=Ee;let ie=()=>re.zone.cancelTask(re);o.call(Ee,"abort",ie,{once:!0}),re.removeAbortListener=()=>Ee.removeEventListener("abort",ie)}if(S.target=null,me&&(me.taskData=null),Be&&(S.options.once=!0),typeof re.options!="boolean"&&(re.options=se),re.target=N,re.capture=Se,re.eventName=Z,B&&(re.originalDelegate=G),O?ge.unshift(re):ge.push(re),m)return N}};return k[c]=l(R,w,ee,M,F),W&&(k[_]=l(W,P,E,M,F,!0)),k[f]=function(){let o=this||t,u=arguments[0];d&&d.transferEventName&&(u=d.transferEventName(u));let v=arguments[2],C=v?typeof v=="boolean"?!0:v.capture:!1,m=arguments[1];if(!m)return b.apply(this,arguments);if(V&&!V(b,m,o,arguments))return;let O=ne[u],N;O&&(N=O[C?ae:le]);let Z=N&&o[N];if(Z)for(let G=0;G<Z.length;G++){let B=Z[G];if(_e(B,m)){if(Z.splice(G,1),B.isRemoved=!0,Z.length===0&&(B.allRemoved=!0,o[N]=null,!C&&typeof u=="string")){let de=ve+"ON_PROPERTY"+u;o[de]=null}return B.zone.cancelTask(B),F?o:void 0}}return b.apply(this,arguments)},k[g]=function(){let o=this||t,u=arguments[0];d&&d.transferEventName&&(u=d.transferEventName(u));let v=[],C=at(o,U?U(u):u);for(let m=0;m<C.length;m++){let O=C[m],N=O.originalDelegate?O.originalDelegate:O.callback;v.push(N)}return v},k[T]=function(){let o=this||t,u=arguments[0];if(u){d&&d.transferEventName&&(u=d.transferEventName(u));let v=ne[u];if(v){let C=v[le],m=v[ae],O=o[C],N=o[m];if(O){let Z=O.slice();for(let G=0;G<Z.length;G++){let B=Z[G],de=B.originalDelegate?B.originalDelegate:B.callback;this[f].call(this,u,de,B.options)}}if(N){let Z=N.slice();for(let G=0;G<Z.length;G++){let B=Z[G],de=B.originalDelegate?B.originalDelegate:B.callback;this[f].call(this,u,de,B.options)}}}}else{let v=Object.keys(o);for(let C=0;C<v.length;C++){let m=v[C],O=st.exec(m),N=O&&O[1];N&&N!=="removeListener"&&this[T].call(this,N)}this[T].call(this,"removeListener")}if(F)return this},fe(k[c],R),fe(k[f],b),K&&fe(k[T],K),D&&fe(k[g],D),!0}let q=[];for(let p=0;p<a.length;p++)q[p]=J(a[p],e);return q}function at(t,n){if(!n){let f=[];for(let g in t){let T=st.exec(g),y=T&&T[1];if(y&&(!n||y===n)){let w=t[g];if(w)for(let _=0;_<w.length;_++)f.push(w[_])}}return f}let a=ne[n];a||(ct(n),a=ne[n]);let e=t[a[le]],c=t[a[ae]];return e?c?e.concat(c):e.slice():c?c.slice():[]}function bt(t,n){let a=t.Event;a&&a.prototype&&n.patchMethod(a.prototype,"stopImmediatePropagation",e=>function(c,f){c[it]=!0,e&&e.apply(c,f)})}function Pt(t,n){n.patchMethod(t,"queueMicrotask",a=>function(e,c){Zone.current.scheduleMicroTask("queueMicrotask",c[0])})}var Re=j("zoneTask");function ke(t,n,a,e){let c=null,f=null;n+=e,a+=e;let g={};function T(w){let _=w.data;_.args[0]=function(){return w.invoke.apply(this,arguments)};let P=c.apply(t,_.args);return Ke(P)?_.handleId=P:(_.handle=P,_.isRefreshable=Je(P.refresh)),w}function y(w){let{handle:_,handleId:P}=w.data;return f.call(t,_??P)}c=ue(t,n,w=>function(_,P){if(Je(P[0])){let L={isRefreshable:!1,isPeriodic:e==="Interval",delay:e==="Timeout"||e==="Interval"?P[1]||0:void 0,args:P},H=P[0];P[0]=function(){try{return H.apply(this,arguments)}finally{let{handle:A,handleId:V,isPeriodic:X,isRefreshable:F}=L;!X&&!F&&(V?delete g[V]:A&&(A[Re]=null))}};let z=xe(n,P[0],L,T,y);if(!z)return z;let{handleId:$,handle:J,isRefreshable:q,isPeriodic:p}=z.data;if($)g[$]=z;else if(J&&(J[Re]=z,q&&!p)){let d=J.refresh;J.refresh=function(){let{zone:A,state:V}=z;return V==="notScheduled"?(z._state="scheduled",A._updateTaskCount(z,1)):V==="running"&&(z._state="scheduling"),d.call(this)}}return J??$??z}else return w.apply(t,P)}),f=ue(t,a,w=>function(_,P){let L=P[0],H;Ke(L)?(H=g[L],delete g[L]):(H=L?.[Re],H?L[Re]=null:H=L),H?.type?H.cancelFn&&H.zone.cancelTask(H):w.apply(t,P)})}function Rt(t,n){let{isBrowser:a,isMix:e}=n.getGlobalObjects();if(!a&&!e||!t.customElements||!("customElements"in t))return;let c=["connectedCallback","disconnectedCallback","adoptedCallback","attributeChangedCallback","formAssociatedCallback","formDisabledCallback","formResetCallback","formStateRestoreCallback"];n.patchCallbacks(n,t.customElements,"customElements","define",c)}function Ct(t,n){if(Zone[n.symbol("patchEventTarget")])return;let{eventNames:a,zoneSymbolEventNames:e,TRUE_STR:c,FALSE_STR:f,ZONE_SYMBOL_PREFIX:g}=n.getGlobalObjects();for(let y=0;y<a.length;y++){let w=a[y],_=w+f,P=w+c,L=g+_,H=g+P;e[w]={},e[w][f]=L,e[w][c]=H}let T=t.EventTarget;if(!(!T||!T.prototype))return n.patchEventTarget(t,n,[T&&T.prototype]),!0}function wt(t,n){n.patchEventPrototype(t,n)}function lt(t,n,a){if(!a||a.length===0)return n;let e=a.filter(f=>f.target===t);if(e.length===0)return n;let c=e[0].ignoreProperties;return n.filter(f=>c.indexOf(f)===-1)}function Qe(t,n,a,e){if(!t)return;let c=lt(t,n,a);rt(t,c,e)}function Ie(t){return Object.getOwnPropertyNames(t).filter(n=>n.startsWith("on")&&n.length>2).map(n=>n.substring(2))}function Dt(t,n){if(De&&!nt||Zone[t.symbol("patchEvents")])return;let a=n.__Zone_ignore_on_properties,e=[];if(Ge){let c=window;e=e.concat(["Document","SVGElement","Element","HTMLElement","HTMLBodyElement","HTMLMediaElement","HTMLFrameSetElement","HTMLFrameElement","HTMLIFrameElement","HTMLMarqueeElement","Worker"]);let f=[];Qe(c,Ie(c),a&&a.concat(f),Ae(c))}e=e.concat(["XMLHttpRequest","XMLHttpRequestEventTarget","IDBIndex","IDBRequest","IDBOpenDBRequest","IDBDatabase","IDBTransaction","IDBCursor","WebSocket"]);for(let c=0;c<e.length;c++){let f=n[e[c]];f?.prototype&&Qe(f.prototype,Ie(f.prototype),a)}}function St(t){t.__load_patch("legacy",n=>{let a=n[t.__symbol__("legacyPatch")];a&&a()}),t.__load_patch("timers",n=>{let e="clear";ke(n,"set",e,"Timeout"),ke(n,"set",e,"Interval"),ke(n,"set",e,"Immediate")}),t.__load_patch("requestAnimationFrame",n=>{ke(n,"request","cancel","AnimationFrame"),ke(n,"mozRequest","mozCancel","AnimationFrame"),ke(n,"webkitRequest","webkitCancel","AnimationFrame")}),t.__load_patch("blocking",(n,a)=>{let e=["alert","prompt","confirm"];for(let c=0;c<e.length;c++){let f=e[c];ue(n,f,(g,T,y)=>function(w,_){return a.current.run(g,n,_,y)})}}),t.__load_patch("EventTarget",(n,a,e)=>{wt(n,e),Ct(n,e);let c=n.XMLHttpRequestEventTarget;c&&c.prototype&&e.patchEventTarget(n,e,[c.prototype])}),t.__load_patch("MutationObserver",(n,a,e)=>{ye("MutationObserver"),ye("WebKitMutationObserver")}),t.__load_patch("IntersectionObserver",(n,a,e)=>{ye("IntersectionObserver")}),t.__load_patch("FileReader",(n,a,e)=>{ye("FileReader")}),t.__load_patch("on_property",(n,a,e)=>{Dt(e,n)}),t.__load_patch("customElements",(n,a,e)=>{Rt(n,e)}),t.__load_patch("XHR",(n,a)=>{w(n);let e=j("xhrTask"),c=j("xhrSync"),f=j("xhrListener"),g=j("xhrScheduled"),T=j("xhrURL"),y=j("xhrErrorBeforeScheduled");function w(_){let P=_.XMLHttpRequest;if(!P)return;let L=P.prototype;function H(R){return R[e]}let z=L[Ne],$=L[Ze];if(!z){let R=_.XMLHttpRequestEventTarget;if(R){let b=R.prototype;z=b[Ne],$=b[Ze]}}let J="readystatechange",q="scheduled";function p(R){let b=R.data,D=b.target;D[g]=!1,D[y]=!1;let K=D[f];z||(z=D[Ne],$=D[Ze]),K&&$.call(D,J,K);let W=D[f]=()=>{if(D.readyState===D.DONE)if(!b.aborted&&D[g]&&R.state===q){let s=D[a.__symbol__("loadfalse")];if(D.status!==0&&s&&s.length>0){let i=R.invoke;R.invoke=function(){let r=D[a.__symbol__("loadfalse")];for(let E=0;E<r.length;E++)r[E]===R&&r.splice(E,1);!b.aborted&&R.state===q&&i.call(R)},s.push(R)}else R.invoke()}else!b.aborted&&D[g]===!1&&(D[y]=!0)};return z.call(D,J,W),D[e]||(D[e]=R),U.apply(D,b.args),D[g]=!0,R}function d(){}function A(R){let b=R.data;return b.aborted=!0,S.apply(b.target,b.args)}let V=ue(L,"open",()=>function(R,b){return R[c]=b[2]==!1,R[T]=b[1],V.apply(R,b)}),X="XMLHttpRequest.send",F=j("fetchTaskAborting"),k=j("fetchTaskScheduling"),U=ue(L,"send",()=>function(R,b){if(a.current[k]===!0||R[c])return U.apply(R,b);{let D={target:R,url:R[T],isPeriodic:!1,args:b,aborted:!1},K=xe(X,d,D,p,A);R&&R[y]===!0&&!D.aborted&&K.state===q&&K.invoke()}}),S=ue(L,"abort",()=>function(R,b){let D=H(R);if(D&&typeof D.type=="string"){if(D.cancelFn==null||D.data&&D.data.aborted)return;D.zone.cancelTask(D)}else if(a.current[F]===!0)return S.apply(R,b)})}}),t.__load_patch("geolocation",n=>{n.navigator&&n.navigator.geolocation&&gt(n.navigator.geolocation,["getCurrentPosition","watchPosition"])}),t.__load_patch("PromiseRejectionEvent",(n,a)=>{function e(c){return function(f){at(n,c).forEach(T=>{let y=n.PromiseRejectionEvent;if(y){let w=new y(c,{promise:f.promise,reason:f.rejection});T.invoke(w)}})}}n.PromiseRejectionEvent&&(a[j("unhandledPromiseRejectionHandler")]=e("unhandledrejection"),a[j("rejectionHandledHandler")]=e("rejectionhandled"))}),t.__load_patch("queueMicrotask",(n,a,e)=>{Pt(n,e)})}function Ot(t){t.__load_patch("ZoneAwarePromise",(n,a,e)=>{let c=Object.getOwnPropertyDescriptor,f=Object.defineProperty;function g(h){if(h&&h.toString===Object.prototype.toString){let l=h.constructor&&h.constructor.name;return(l||"")+": "+JSON.stringify(h)}return h?h.toString():Object.prototype.toString.call(h)}let T=e.symbol,y=[],w=n[T("DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION")]!==!1,_=T("Promise"),P=T("then"),L="__creationTrace__";e.onUnhandledError=h=>{if(e.showUncaughtError()){let l=h&&h.rejection;l?console.error("Unhandled Promise rejection:",l instanceof Error?l.message:l,"; Zone:",h.zone.name,"; Task:",h.task&&h.task.source,"; Value:",l,l instanceof Error?l.stack:void 0):console.error(h)}},e.microtaskDrainDone=()=>{for(;y.length;){let h=y.shift();try{h.zone.runGuarded(()=>{throw h.throwOriginal?h.rejection:h})}catch(l){z(l)}}};let H=T("unhandledPromiseRejectionHandler");function z(h){e.onUnhandledError(h);try{let l=a[H];typeof l=="function"&&l.call(this,h)}catch{}}function $(h){return h&&typeof h.then=="function"}function J(h){return h}function q(h){return M.reject(h)}let p=T("state"),d=T("value"),A=T("finally"),V=T("parentPromiseValue"),X=T("parentPromiseState"),F="Promise.then",k=null,U=!0,S=!1,R=0;function b(h,l){return o=>{try{I(h,l,o)}catch(u){I(h,!1,u)}}}let D=function(){let h=!1;return function(o){return function(){h||(h=!0,o.apply(null,arguments))}}},K="Promise resolved with itself",W=T("currentTaskTrace");function I(h,l,o){let u=D();if(h===o)throw new TypeError(K);if(h[p]===k){let v=null;try{(typeof o=="object"||typeof o=="function")&&(v=o&&o.then)}catch(C){return u(()=>{I(h,!1,C)})(),h}if(l!==S&&o instanceof M&&o.hasOwnProperty(p)&&o.hasOwnProperty(d)&&o[p]!==k)i(o),I(h,o[p],o[d]);else if(l!==S&&typeof v=="function")try{v.call(o,u(b(h,l)),u(b(h,!1)))}catch(C){u(()=>{I(h,!1,C)})()}else{h[p]=l;let C=h[d];if(h[d]=o,h[A]===A&&l===U&&(h[p]=h[X],h[d]=h[V]),l===S&&o instanceof Error){let m=a.currentTask&&a.currentTask.data&&a.currentTask.data[L];m&&f(o,W,{configurable:!0,enumerable:!1,writable:!0,value:m})}for(let m=0;m<C.length;)r(h,C[m++],C[m++],C[m++],C[m++]);if(C.length==0&&l==S){h[p]=R;let m=o;try{throw new Error("Uncaught (in promise): "+g(o)+(o&&o.stack?`
2
+ `+o.stack:""))}catch(O){m=O}w&&(m.throwOriginal=!0),m.rejection=o,m.promise=h,m.zone=a.current,m.task=a.currentTask,y.push(m),e.scheduleMicroTask()}}}return h}let s=T("rejectionHandledHandler");function i(h){if(h[p]===R){try{let l=a[s];l&&typeof l=="function"&&l.call(this,{rejection:h[d],promise:h})}catch{}h[p]=S;for(let l=0;l<y.length;l++)h===y[l].promise&&y.splice(l,1)}}function r(h,l,o,u,v){i(h);let C=h[p],m=C?typeof u=="function"?u:J:typeof v=="function"?v:q;l.scheduleMicroTask(F,()=>{try{let O=h[d],N=!!o&&A===o[A];N&&(o[V]=O,o[X]=C);let Z=l.run(m,void 0,N&&m!==q&&m!==J?[]:[O]);I(o,!0,Z)}catch(O){I(o,!1,O)}},o)}let E="function ZoneAwarePromise() { [native code] }",x=function(){},ee=n.AggregateError;class M{static toString(){return E}static resolve(l){return l instanceof M?l:I(new this(null),U,l)}static reject(l){return I(new this(null),S,l)}static withResolvers(){let l={};return l.promise=new M((o,u)=>{l.resolve=o,l.reject=u}),l}static any(l){if(!l||typeof l[Symbol.iterator]!="function")return Promise.reject(new ee([],"All promises were rejected"));let o=[],u=0;try{for(let m of l)u++,o.push(M.resolve(m))}catch{return Promise.reject(new ee([],"All promises were rejected"))}if(u===0)return Promise.reject(new ee([],"All promises were rejected"));let v=!1,C=[];return new M((m,O)=>{for(let N=0;N<o.length;N++)o[N].then(Z=>{v||(v=!0,m(Z))},Z=>{C.push(Z),u--,u===0&&(v=!0,O(new ee(C,"All promises were rejected")))})})}static race(l){let o,u,v=new this((O,N)=>{o=O,u=N});function C(O){o(O)}function m(O){u(O)}for(let O of l)$(O)||(O=this.resolve(O)),O.then(C,m);return v}static all(l){return M.allWithCallback(l)}static allSettled(l){return(this&&this.prototype instanceof M?this:M).allWithCallback(l,{thenCallback:u=>({status:"fulfilled",value:u}),errorCallback:u=>({status:"rejected",reason:u})})}static allWithCallback(l,o){let u,v,C=new this((Z,G)=>{u=Z,v=G}),m=2,O=0,N=[];for(let Z of l){$(Z)||(Z=this.resolve(Z));let G=O;try{Z.then(B=>{N[G]=o?o.thenCallback(B):B,m--,m===0&&u(N)},B=>{o?(N[G]=o.errorCallback(B),m--,m===0&&u(N)):v(B)})}catch(B){v(B)}m++,O++}return m-=2,m===0&&u(N),C}constructor(l){let o=this;if(!(o instanceof M))throw new Error("Must be an instanceof Promise.");o[p]=k,o[d]=[];try{let u=D();l&&l(u(b(o,U)),u(b(o,S)))}catch(u){I(o,!1,u)}}get[Symbol.toStringTag](){return"Promise"}get[Symbol.species](){return M}then(l,o){let u=this.constructor?.[Symbol.species];(!u||typeof u!="function")&&(u=this.constructor||M);let v=new u(x),C=a.current;return this[p]==k?this[d].push(C,v,l,o):r(this,C,v,l,o),v}catch(l){return this.then(null,l)}finally(l){let o=this.constructor?.[Symbol.species];(!o||typeof o!="function")&&(o=M);let u=new o(x);u[A]=A;let v=a.current;return this[p]==k?this[d].push(v,u,l,l):r(this,v,u,l,l),u}}M.resolve=M.resolve,M.reject=M.reject,M.race=M.race,M.all=M.all;let he=n[_]=n.Promise;n.Promise=M;let _e=T("thenPatched");function Q(h){let l=h.prototype,o=c(l,"then");if(o&&(o.writable===!1||!o.configurable))return;let u=l.then;l[P]=u,h.prototype.then=function(v,C){return new M((O,N)=>{u.call(this,O,N)}).then(v,C)},h[_e]=!0}e.patchThen=Q;function Te(h){return function(l,o){let u=h.apply(l,o);if(u instanceof M)return u;let v=u.constructor;return v[_e]||Q(v),u}}return he&&(Q(he),ue(n,"fetch",h=>Te(h))),Promise[a.__symbol__("uncaughtPromiseErrors")]=y,M})}function Nt(t){t.__load_patch("toString",n=>{let a=Function.prototype.toString,e=j("OriginalDelegate"),c=j("Promise"),f=j("Error"),g=function(){if(typeof this=="function"){let _=this[e];if(_)return typeof _=="function"?a.call(_):Object.prototype.toString.call(_);if(this===Promise){let P=n[c];if(P)return a.call(P)}if(this===Error){let P=n[f];if(P)return a.call(P)}}return a.call(this)};g[e]=a,Function.prototype.toString=g;let T=Object.prototype.toString,y="[object Promise]";Object.prototype.toString=function(){return typeof Promise=="function"&&this instanceof Promise?y:T.call(this)}})}function Zt(t,n,a,e,c){let f=Zone.__symbol__(e);if(n[f])return;let g=n[f]=n[e];n[e]=function(T,y,w){return y&&y.prototype&&c.forEach(function(_){let P=`${a}.${e}::`+_,L=y.prototype;try{if(L.hasOwnProperty(_)){let H=t.ObjectGetOwnPropertyDescriptor(L,_);H&&H.value?(H.value=t.wrapWithCurrentZone(H.value,P),t._redefineProperty(y.prototype,_,H)):L[_]&&(L[_]=t.wrapWithCurrentZone(L[_],P))}else L[_]&&(L[_]=t.wrapWithCurrentZone(L[_],P))}catch{}}),g.call(n,T,y,w)},t.attachOriginToPatched(n[e],g)}function Lt(t){t.__load_patch("util",(n,a,e)=>{let c=Ie(n);e.patchOnProperties=rt,e.patchMethod=ue,e.bindArguments=Fe,e.patchMacroTask=mt;let f=a.__symbol__("BLACK_LISTED_EVENTS"),g=a.__symbol__("UNPATCHED_EVENTS");n[g]&&(n[f]=n[g]),n[f]&&(a[f]=a[g]=n[f]),e.patchEventPrototype=bt,e.patchEventTarget=vt,e.isIEOrEdge=yt,e.ObjectDefineProperty=Me,e.ObjectGetOwnPropertyDescriptor=pe,e.ObjectCreate=_t,e.ArraySlice=Tt,e.patchClass=ye,e.wrapWithCurrentZone=Ve,e.filterProperties=lt,e.attachOriginToPatched=fe,e._redefineProperty=Object.defineProperty,e.patchCallbacks=Zt,e.getGlobalObjects=()=>({globalSources:ot,zoneSymbolEventNames:ne,eventNames:c,isBrowser:Ge,isMix:nt,isNode:De,TRUE_STR:ae,FALSE_STR:le,ZONE_SYMBOL_PREFIX:ve,ADD_EVENT_LISTENER_STR:je,REMOVE_EVENT_LISTENER_STR:He})})}function It(t){Ot(t),Nt(t),Lt(t)}var ut=dt();It(ut);St(ut);
browser/styles-CKTKRBG3.css ADDED
@@ -0,0 +1 @@
 
 
1
+ html,body{margin:0;padding:0;height:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background-color:#f8fafc;color:#0f172a}.app-container{display:flex;flex-direction:column;height:100vh}.app-header{padding:1rem 2rem;background-color:#fff;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;justify-content:space-between;gap:1rem}.app-header h1{margin:0;font-size:1.5rem;color:#0ea5e9}.title-row{display:inline-flex;align-items:center;gap:.5rem;min-width:0}.title-info{position:relative}.title-info-trigger{list-style:none;width:22px;height:22px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;border:1px solid #cbd5e1;background:#fff;color:#0f172a;font-weight:800;font-size:.85rem;cursor:pointer;-webkit-user-select:none;user-select:none}details.title-info>summary::-webkit-details-marker{display:none}.title-info-popover{position:absolute;top:calc(100% + 8px);left:0;z-index:50;width:min(520px,80vw);padding:.75rem .9rem;border-radius:10px;border:1px solid #e2e8f0;background:#fff;box-shadow:0 10px 24px #0f172a1f;color:#0f172a}.title-info-popover ul{margin:0;padding-left:1.1rem;display:grid;gap:.4rem}.legend-green{color:#059669;font-weight:800}.legend-red{color:#dc2626;font-weight:800}.profile-links{display:inline-flex;align-items:center;gap:.5rem;flex-wrap:wrap}.profile-link{display:inline-flex;align-items:center;justify-content:center;height:32px;min-width:32px;padding:0 10px;border-radius:999px;border:1px solid #cbd5e1;background:#fff;color:#0f172a;text-decoration:none;font-weight:700;letter-spacing:.2px}.profile-link:hover{border-color:#0ea5e9;background:#f1f5f9}.profile-icon{font-size:.85rem;line-height:1}.profile-link.buymeacoffee{border-color:#f59e0b;background:#fff7ed;color:#7c2d12;padding:0 12px;gap:8px}.profile-link.buymeacoffee:hover{background:#ffedd5}.buymeacoffee-text{font-size:.85rem;font-weight:800}.main-content{flex:1;overflow-y:auto;padding:2rem}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.5rem 1rem;border-radius:.375rem;font-weight:500;cursor:pointer;transition:all .2s;border:1px solid transparent;gap:.5rem}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background-color:#0284c7;color:#fff}.btn-primary:hover:not(:disabled){background-color:#0369a1}.btn-secondary{background-color:#475569;color:#fff}.btn-secondary:hover:not(:disabled){background-color:#334155}.btn-danger{background-color:#dc2626;color:#fff}.btn-danger:hover:not(:disabled){background-color:#b91c1c}input[type=text],select{background-color:#fff;border:1px solid #cbd5e1;color:#0f172a;padding:.375rem .75rem;border-radius:.375rem}input[type=checkbox]{width:1rem;height:1rem;cursor:pointer}
prerendered-routes.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ {
2
+ "routes": {}
3
+ }