gitlab-ci-local 4.65.1 → 4.66.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,3190 +0,0 @@
1
- export const schema = {
2
- "$schema": "http://json-schema.org/draft-07/schema#",
3
- "$id": "https://gitlab.com/.gitlab-ci.yml",
4
- "markdownDescription": "GitLab has a built-in solution for doing CI called GitLab CI. It is configured by supplying a file called `.gitlab-ci.yml`, which will list all the jobs that are going to run for the project. A full list of all options can be found [here](https://docs.gitlab.com/ci/yaml/). [Learn More](https://docs.gitlab.com/ci/).",
5
- "type": "object",
6
- "properties": {
7
- "$schema": {
8
- "type": "string",
9
- "format": "uri",
10
- },
11
- "spec": {
12
- "type": "object",
13
- "markdownDescription": "Specification for pipeline configuration. Must be declared at the top of a configuration file, in a header section separated from the rest of the configuration with `---`. [Learn More](https://docs.gitlab.com/ci/yaml/#spec).",
14
- "properties": {
15
- "inputs": {
16
- "$ref": "#/definitions/configInputs",
17
- },
18
- },
19
- "additionalProperties": false,
20
- },
21
- "image": {
22
- "$ref": "#/definitions/image",
23
- "markdownDescription": "Defining `image` globally is deprecated. Use [`default`](https://docs.gitlab.com/ci/yaml/#default) instead. [Learn more](https://docs.gitlab.com/ci/yaml/#globally-defined-image-services-cache-before_script-after_script).",
24
- },
25
- "services": {
26
- "$ref": "#/definitions/services",
27
- "markdownDescription": "Defining `services` globally is deprecated. Use [`default`](https://docs.gitlab.com/ci/yaml/#default) instead. [Learn more](https://docs.gitlab.com/ci/yaml/#globally-defined-image-services-cache-before_script-after_script).",
28
- },
29
- "before_script": {
30
- "$ref": "#/definitions/before_script",
31
- "markdownDescription": "Defining `before_script` globally is deprecated. Use [`default`](https://docs.gitlab.com/ci/yaml/#default) instead. [Learn more](https://docs.gitlab.com/ci/yaml/#globally-defined-image-services-cache-before_script-after_script).",
32
- },
33
- "after_script": {
34
- "$ref": "#/definitions/after_script",
35
- "markdownDescription": "Defining `after_script` globally is deprecated. Use [`default`](https://docs.gitlab.com/ci/yaml/#default) instead. [Learn more](https://docs.gitlab.com/ci/yaml/#globally-defined-image-services-cache-before_script-after_script).",
36
- },
37
- "variables": {
38
- "$ref": "#/definitions/globalVariables",
39
- },
40
- "cache": {
41
- "$ref": "#/definitions/cache",
42
- "markdownDescription": "Defining `cache` globally is deprecated. Use [`default`](https://docs.gitlab.com/ci/yaml/#default) instead. [Learn more](https://docs.gitlab.com/ci/yaml/#globally-defined-image-services-cache-before_script-after_script).",
43
- },
44
- "!reference": {
45
- "$ref": "#/definitions/!reference",
46
- },
47
- "default": {
48
- "type": "object",
49
- "properties": {
50
- "after_script": {
51
- "$ref": "#/definitions/after_script",
52
- },
53
- "artifacts": {
54
- "$ref": "#/definitions/artifacts",
55
- },
56
- "before_script": {
57
- "$ref": "#/definitions/before_script",
58
- },
59
- "hooks": {
60
- "$ref": "#/definitions/hooks",
61
- },
62
- "cache": {
63
- "$ref": "#/definitions/cache",
64
- },
65
- "image": {
66
- "$ref": "#/definitions/image",
67
- },
68
- "interruptible": {
69
- "$ref": "#/definitions/interruptible",
70
- },
71
- "id_tokens": {
72
- "$ref": "#/definitions/id_tokens",
73
- },
74
- "identity": {
75
- "$ref": "#/definitions/identity",
76
- },
77
- "retry": {
78
- "$ref": "#/definitions/retry",
79
- },
80
- "services": {
81
- "$ref": "#/definitions/services",
82
- },
83
- "tags": {
84
- "$ref": "#/definitions/tags",
85
- },
86
- "timeout": {
87
- "$ref": "#/definitions/timeout",
88
- },
89
- "!reference": {
90
- "$ref": "#/definitions/!reference",
91
- },
92
- },
93
- "additionalProperties": false,
94
- },
95
- "stages": {
96
- "type": "array",
97
- "markdownDescription": "Groups jobs into stages. All jobs in one stage must complete before next stage is executed. Defaults to ['build', 'test', 'deploy']. [Learn More](https://docs.gitlab.com/ci/yaml/#stages).",
98
- "default": [
99
- "build",
100
- "test",
101
- "deploy",
102
- ],
103
- "items": {
104
- "anyOf": [
105
- {
106
- "type": "string",
107
- },
108
- {
109
- "type": "array",
110
- "items": {
111
- "type": "string",
112
- },
113
- },
114
- ],
115
- },
116
- "uniqueItems": true,
117
- "minItems": 1,
118
- },
119
- "include": {
120
- "markdownDescription": "Can be `IncludeItem` or `IncludeItem[]`. Each `IncludeItem` will be a string, or an object with properties for the method if including external YAML file. The external content will be fetched, included and evaluated along the `.gitlab-ci.yml`. [Learn More](https://docs.gitlab.com/ci/yaml/#include).",
121
- "oneOf": [
122
- {
123
- "$ref": "#/definitions/include_item",
124
- },
125
- {
126
- "type": "array",
127
- "items": {
128
- "$ref": "#/definitions/include_item",
129
- },
130
- },
131
- ],
132
- },
133
- "pages": {
134
- "$ref": "#/definitions/job",
135
- "markdownDescription": "A special job used to upload static sites to GitLab pages. Requires a `public/` directory with `artifacts.path` pointing to it. [Learn More](https://docs.gitlab.com/ci/yaml/#pages).",
136
- },
137
- "workflow": {
138
- "type": "object",
139
- "properties": {
140
- "name": {
141
- "$ref": "#/definitions/workflowName",
142
- },
143
- "auto_cancel": {
144
- "$ref": "#/definitions/workflowAutoCancel",
145
- },
146
- "rules": {
147
- "type": "array",
148
- "items": {
149
- "anyOf": [
150
- {
151
- "type": "object",
152
- },
153
- {
154
- "type": "array",
155
- "minItems": 1,
156
- "items": {
157
- "type": "string",
158
- },
159
- },
160
- ],
161
- "properties": {
162
- "if": {
163
- "$ref": "#/definitions/if",
164
- },
165
- "changes": {
166
- "$ref": "#/definitions/changes",
167
- },
168
- "exists": {
169
- "$ref": "#/definitions/exists",
170
- },
171
- "variables": {
172
- "$ref": "#/definitions/rulesVariables",
173
- },
174
- "when": {
175
- "type": "string",
176
- "enum": [
177
- "always",
178
- "never",
179
- ],
180
- },
181
- "auto_cancel": {
182
- "$ref": "#/definitions/workflowAutoCancel",
183
- },
184
- },
185
- "additionalProperties": false,
186
- },
187
- },
188
- },
189
- },
190
- },
191
- "patternProperties": {
192
- "^[.]": {
193
- "description": "Hidden keys.",
194
- "anyOf": [
195
- {
196
- "$ref": "#/definitions/job_template",
197
- },
198
- {
199
- "description": "Arbitrary YAML anchor.",
200
- },
201
- ],
202
- },
203
- },
204
- "additionalProperties": {
205
- "$ref": "#/definitions/job",
206
- },
207
- "definitions": {
208
- "artifacts": {
209
- "type": [
210
- "object",
211
- "null",
212
- ],
213
- "markdownDescription": "Used to specify a list of files and directories that should be attached to the job if it succeeds. Artifacts are sent to GitLab where they can be downloaded. [Learn More](https://docs.gitlab.com/ci/yaml/#artifacts).",
214
- "additionalProperties": false,
215
- "properties": {
216
- "paths": {
217
- "type": "array",
218
- "markdownDescription": "A list of paths to files/folders that should be included in the artifact. [Learn More](https://docs.gitlab.com/ci/yaml/#artifactspaths).",
219
- "items": {
220
- "type": "string",
221
- },
222
- "minItems": 1,
223
- },
224
- "exclude": {
225
- "type": "array",
226
- "markdownDescription": "A list of paths to files/folders that should be excluded in the artifact. [Learn More](https://docs.gitlab.com/ci/yaml/#artifactsexclude).",
227
- "items": {
228
- "type": "string",
229
- },
230
- "minItems": 1,
231
- },
232
- "expose_as": {
233
- "type": "string",
234
- "markdownDescription": "Can be used to expose job artifacts in the merge request UI. GitLab will add a link <expose_as> to the relevant merge request that points to the artifact. [Learn More](https://docs.gitlab.com/ci/yaml/#artifactsexpose_as).",
235
- },
236
- "name": {
237
- "type": "string",
238
- "markdownDescription": "Name for the archive created on job success. Can use variables in the name, e.g. '$CI_JOB_NAME' [Learn More](https://docs.gitlab.com/ci/yaml/#artifactsname).",
239
- },
240
- "untracked": {
241
- "type": "boolean",
242
- "markdownDescription": "Whether to add all untracked files (along with 'artifacts.paths') to the artifact. [Learn More](https://docs.gitlab.com/ci/yaml/#artifactsuntracked).",
243
- "default": false,
244
- },
245
- "when": {
246
- "markdownDescription": "Configure when artifacts are uploaded depended on job status. [Learn More](https://docs.gitlab.com/ci/yaml/#artifactswhen).",
247
- "default": "on_success",
248
- "type": "string",
249
- "enum": [
250
- "on_success",
251
- "on_failure",
252
- "always",
253
- ],
254
- },
255
- "access": {
256
- "markdownDescription": "Configure who can access the artifacts. [Learn More](https://docs.gitlab.com/ci/yaml/#artifactsaccess).",
257
- "default": "all",
258
- "type": "string",
259
- "enum": [
260
- "none",
261
- "developer",
262
- "all",
263
- ],
264
- },
265
- "expire_in": {
266
- "type": "string",
267
- "markdownDescription": "How long artifacts should be kept. They are saved 30 days by default. Artifacts that have expired are removed periodically via cron job. Supports a wide variety of formats, e.g. '1 week', '3 mins 4 sec', '2 hrs 20 min', '2h20min', '6 mos 1 day', '47 yrs 6 mos and 4d', '3 weeks and 2 days'. [Learn More](https://docs.gitlab.com/ci/yaml/#artifactsexpire_in).",
268
- "default": "30 days",
269
- },
270
- "reports": {
271
- "type": "object",
272
- "markdownDescription": "Reports will be uploaded as artifacts, and often displayed in the GitLab UI, such as in merge requests. [Learn More](https://docs.gitlab.com/ci/yaml/#artifactsreports).",
273
- "additionalProperties": false,
274
- "properties": {
275
- "accessibility": {
276
- "type": "string",
277
- "description": "Path to JSON file with accessibility report.",
278
- },
279
- "annotations": {
280
- "type": "string",
281
- "description": "Path to JSON file with annotations report.",
282
- },
283
- "junit": {
284
- "description": "Path for file(s) that should be parsed as JUnit XML result",
285
- "oneOf": [
286
- {
287
- "type": "string",
288
- "description": "Path to a single XML file",
289
- },
290
- {
291
- "type": "array",
292
- "description": "A list of paths to XML files that will automatically be concatenated into a single file",
293
- "items": {
294
- "type": "string",
295
- },
296
- "minItems": 1,
297
- },
298
- ],
299
- },
300
- "browser_performance": {
301
- "type": "string",
302
- "description": "Path to a single file with browser performance metric report(s).",
303
- },
304
- "coverage_report": {
305
- "type": [
306
- "object",
307
- "null",
308
- ],
309
- "description": "Used to collect coverage reports from the job.",
310
- "properties": {
311
- "coverage_format": {
312
- "description": "Code coverage format used by the test framework.",
313
- "enum": [
314
- "cobertura",
315
- "jacoco",
316
- ],
317
- },
318
- "path": {
319
- "description": "Path to the coverage report file that should be parsed.",
320
- "type": "string",
321
- "minLength": 1,
322
- },
323
- },
324
- },
325
- "codequality": {
326
- "$ref": "#/definitions/string_file_list",
327
- "description": "Path to file or list of files with code quality report(s) (such as Code Climate).",
328
- },
329
- "dotenv": {
330
- "$ref": "#/definitions/string_file_list",
331
- "description": "Path to file or list of files containing runtime-created variables for this job.",
332
- },
333
- "lsif": {
334
- "$ref": "#/definitions/string_file_list",
335
- "description": "Path to file or list of files containing code intelligence (Language Server Index Format).",
336
- },
337
- "sast": {
338
- "$ref": "#/definitions/string_file_list",
339
- "description": "Path to file or list of files with SAST vulnerabilities report(s).",
340
- },
341
- "dependency_scanning": {
342
- "$ref": "#/definitions/string_file_list",
343
- "description": "Path to file or list of files with Dependency scanning vulnerabilities report(s).",
344
- },
345
- "container_scanning": {
346
- "$ref": "#/definitions/string_file_list",
347
- "description": "Path to file or list of files with Container scanning vulnerabilities report(s).",
348
- },
349
- "dast": {
350
- "$ref": "#/definitions/string_file_list",
351
- "description": "Path to file or list of files with DAST vulnerabilities report(s).",
352
- },
353
- "license_management": {
354
- "$ref": "#/definitions/string_file_list",
355
- "description": "Deprecated in 12.8: Path to file or list of files with license report(s).",
356
- },
357
- "license_scanning": {
358
- "$ref": "#/definitions/string_file_list",
359
- "description": "Path to file or list of files with license report(s).",
360
- },
361
- "requirements": {
362
- "$ref": "#/definitions/string_file_list",
363
- "description": "Path to file or list of files with requirements report(s).",
364
- },
365
- "secret_detection": {
366
- "$ref": "#/definitions/string_file_list",
367
- "description": "Path to file or list of files with secret detection report(s).",
368
- },
369
- "metrics": {
370
- "$ref": "#/definitions/string_file_list",
371
- "description": "Path to file or list of files with custom metrics report(s).",
372
- },
373
- "terraform": {
374
- "$ref": "#/definitions/string_file_list",
375
- "description": "Path to file or list of files with terraform plan(s).",
376
- },
377
- "cyclonedx": {
378
- "$ref": "#/definitions/string_file_list",
379
- "markdownDescription": "Path to file or list of files with cyclonedx report(s). [Learn More](https://docs.gitlab.com/ci/yaml/artifacts_reports/#artifactsreportscyclonedx).",
380
- },
381
- "load_performance": {
382
- "$ref": "#/definitions/string_file_list",
383
- "markdownDescription": "Path to file or list of files with load performance testing report(s). [Learn More](https://docs.gitlab.com/ci/yaml/artifacts_reports/#artifactsreportsload_performance).",
384
- },
385
- "repository_xray": {
386
- "$ref": "#/definitions/string_file_list",
387
- "description": "Path to file or list of files with Repository X-Ray report(s).",
388
- },
389
- },
390
- },
391
- },
392
- },
393
- "string_file_list": {
394
- "oneOf": [
395
- {
396
- "type": "string",
397
- },
398
- {
399
- "type": "array",
400
- "items": {
401
- "type": "string",
402
- },
403
- },
404
- ],
405
- },
406
- "baseInput": {
407
- "type": "object",
408
- "properties": {
409
- "type": {
410
- "type": "string",
411
- "markdownDescription": "Input type. Defaults to 'string' when not specified.",
412
- "enum": [
413
- "array",
414
- "boolean",
415
- "number",
416
- "string",
417
- ],
418
- "default": "string",
419
- },
420
- "description": {
421
- "type": "string",
422
- "markdownDescription": "Human-readable explanation of the parameter.",
423
- "maxLength": 1024,
424
- },
425
- "options": {
426
- "type": "array",
427
- "markdownDescription": "List of allowed values for this input.",
428
- "items": {
429
- "oneOf": [
430
- {
431
- "type": "string",
432
- },
433
- {
434
- "type": "number",
435
- },
436
- {
437
- "type": "boolean",
438
- },
439
- ],
440
- },
441
- },
442
- "regex": {
443
- "type": "string",
444
- "markdownDescription": "Regular expression that string values must match.",
445
- },
446
- "default": {
447
- "markdownDescription": "Default value for this input.",
448
- },
449
- },
450
- "additionalProperties": false,
451
- },
452
- "configInputs": {
453
- "type": "object",
454
- "markdownDescription": "Define input parameters for reusable CI/CD configuration. Config inputs can optionally specify defaults. [Learn More](https://docs.gitlab.com/ci/inputs/).",
455
- "patternProperties": {
456
- ".*": {
457
- "oneOf": [
458
- {
459
- "allOf": [
460
- {
461
- "$ref": "#/definitions/baseInput",
462
- },
463
- {
464
- "properties": {
465
- "rules": {
466
- "type": "array",
467
- "markdownDescription": "Conditional rules for this input.",
468
- "items": {
469
- "type": "object",
470
- },
471
- },
472
- },
473
- },
474
- {
475
- "allOf": [
476
- {
477
- "if": {
478
- "properties": {
479
- "type": {
480
- "enum": [
481
- "string",
482
- ],
483
- },
484
- },
485
- },
486
- "then": {
487
- "properties": {
488
- "default": {
489
- "type": [
490
- "string",
491
- "null",
492
- ],
493
- },
494
- },
495
- },
496
- },
497
- {
498
- "if": {
499
- "properties": {
500
- "type": {
501
- "enum": [
502
- "number",
503
- ],
504
- },
505
- },
506
- },
507
- "then": {
508
- "properties": {
509
- "default": {
510
- "type": [
511
- "number",
512
- "null",
513
- ],
514
- },
515
- },
516
- },
517
- },
518
- {
519
- "if": {
520
- "properties": {
521
- "type": {
522
- "enum": [
523
- "boolean",
524
- ],
525
- },
526
- },
527
- },
528
- "then": {
529
- "properties": {
530
- "default": {
531
- "type": [
532
- "boolean",
533
- "null",
534
- ],
535
- },
536
- },
537
- },
538
- },
539
- {
540
- "if": {
541
- "properties": {
542
- "type": {
543
- "enum": [
544
- "array",
545
- ],
546
- },
547
- },
548
- },
549
- "then": {
550
- "properties": {
551
- "default": {
552
- "oneOf": [
553
- {
554
- "type": "array",
555
- },
556
- {
557
- "type": "null",
558
- },
559
- ],
560
- },
561
- },
562
- },
563
- },
564
- ],
565
- },
566
- ],
567
- },
568
- {
569
- "type": "null",
570
- },
571
- ],
572
- },
573
- },
574
- },
575
- "jobInputs": {
576
- "type": "object",
577
- "markdownDescription": "Define input parameters for a job. Job inputs must always include a `default` value. [Learn More](https://docs.gitlab.com/ci/yaml/#inputs).",
578
- "maxProperties": 50,
579
- "patternProperties": {
580
- ".*": {
581
- "allOf": [
582
- {
583
- "$ref": "#/definitions/baseInput",
584
- },
585
- {
586
- "required": [
587
- "default",
588
- ],
589
- },
590
- {
591
- "allOf": [
592
- {
593
- "if": {
594
- "properties": {
595
- "type": {
596
- "enum": [
597
- "string",
598
- ],
599
- },
600
- },
601
- },
602
- "then": {
603
- "properties": {
604
- "default": {
605
- "type": "string",
606
- },
607
- },
608
- },
609
- },
610
- {
611
- "if": {
612
- "properties": {
613
- "type": {
614
- "enum": [
615
- "number",
616
- ],
617
- },
618
- },
619
- },
620
- "then": {
621
- "properties": {
622
- "default": {
623
- "type": "number",
624
- },
625
- },
626
- },
627
- },
628
- {
629
- "if": {
630
- "properties": {
631
- "type": {
632
- "enum": [
633
- "boolean",
634
- ],
635
- },
636
- },
637
- },
638
- "then": {
639
- "properties": {
640
- "default": {
641
- "type": "boolean",
642
- },
643
- },
644
- },
645
- },
646
- {
647
- "if": {
648
- "properties": {
649
- "type": {
650
- "enum": [
651
- "array",
652
- ],
653
- },
654
- },
655
- },
656
- "then": {
657
- "properties": {
658
- "default": {
659
- "type": "array",
660
- },
661
- },
662
- },
663
- },
664
- ],
665
- },
666
- ],
667
- },
668
- },
669
- },
670
- "include_item": {
671
- "oneOf": [
672
- {
673
- "description": "Will infer the method based on the value. E.g. `https://...` strings will be of type `include:remote`, and `/templates/...` or `templates/...` will be of type `include:local`.",
674
- "type": "string",
675
- "format": "uri-reference",
676
- "anyOf": [
677
- {},
678
- {
679
- "not": {},
680
- },
681
- ],
682
- },
683
- {
684
- "type": "object",
685
- "additionalProperties": false,
686
- "properties": {
687
- "local": {
688
- "description": "Relative path from local repository root (`/`) to the `yaml`/`yml` file template. The file must be on the same branch, and does not work across git submodules.",
689
- "type": "string",
690
- "format": "uri-reference",
691
- },
692
- "rules": {
693
- "$ref": "#/definitions/includeRules",
694
- },
695
- "inputs": {
696
- "$ref": "#/definitions/inputs",
697
- },
698
- },
699
- "required": [
700
- "local",
701
- ],
702
- },
703
- {
704
- "type": "object",
705
- "additionalProperties": false,
706
- "properties": {
707
- "project": {
708
- "description": "Path to the project, e.g. `group/project`, or `group/sub-group/project` [Learn more](https://docs.gitlab.com/ci/yaml/#includeproject).",
709
- "type": "string",
710
- },
711
- "ref": {
712
- "description": "Branch/Tag/Commit-hash for the target project.",
713
- "type": "string",
714
- },
715
- "file": {
716
- "oneOf": [
717
- {
718
- "description": "Relative path from project root (`/`) to the `yaml`/`yml` file template.",
719
- "type": "string",
720
- },
721
- {
722
- "description": "List of files by relative path from project root (`/`) to the `yaml`/`yml` file template.",
723
- "type": "array",
724
- "items": {
725
- "type": "string",
726
- },
727
- },
728
- ],
729
- },
730
- "rules": {
731
- "$ref": "#/definitions/includeRules",
732
- },
733
- "inputs": {
734
- "$ref": "#/definitions/inputs",
735
- },
736
- },
737
- "required": [
738
- "project",
739
- "file",
740
- ],
741
- },
742
- {
743
- "type": "object",
744
- "additionalProperties": false,
745
- "properties": {
746
- "template": {
747
- "description": "Use a `.gitlab-ci.yml` template as a base, e.g. `Nodejs.gitlab-ci.yml`.",
748
- "type": "string",
749
- "format": "uri-reference",
750
- },
751
- "rules": {
752
- "$ref": "#/definitions/includeRules",
753
- },
754
- "inputs": {
755
- "$ref": "#/definitions/inputs",
756
- },
757
- },
758
- "required": [
759
- "template",
760
- ],
761
- },
762
- {
763
- "type": "object",
764
- "additionalProperties": false,
765
- "properties": {
766
- "component": {
767
- "description": "Local path to component directory or full path to external component directory.",
768
- "type": "string",
769
- "format": "uri-reference",
770
- },
771
- "rules": {
772
- "$ref": "#/definitions/includeRules",
773
- },
774
- "inputs": {
775
- "$ref": "#/definitions/inputs",
776
- },
777
- },
778
- "required": [
779
- "component",
780
- ],
781
- },
782
- {
783
- "type": "object",
784
- "additionalProperties": false,
785
- "properties": {
786
- "remote": {
787
- "description": "URL to a `yaml`/`yml` template file using HTTP/HTTPS.",
788
- "type": "string",
789
- "format": "uri-reference",
790
- },
791
- "integrity": {
792
- "description": "SHA256 integrity hash of the remote file content.",
793
- "type": "string",
794
- },
795
- "rules": {
796
- "$ref": "#/definitions/includeRules",
797
- },
798
- "inputs": {
799
- "$ref": "#/definitions/inputs",
800
- },
801
- },
802
- "required": [
803
- "remote",
804
- ],
805
- },
806
- ],
807
- },
808
- "!reference": {
809
- "type": "array",
810
- "items": {
811
- "type": "string",
812
- "minLength": 1,
813
- },
814
- },
815
- "image": {
816
- "oneOf": [
817
- {
818
- "type": "string",
819
- "minLength": 1,
820
- "description": "Full name of the image that should be used. It should contain the Registry part if needed.",
821
- },
822
- {
823
- "type": "object",
824
- "description": "Specifies the docker image to use for the job or globally for all jobs. Job configuration takes precedence over global setting. Requires a certain kind of GitLab runner executor.",
825
- "additionalProperties": false,
826
- "properties": {
827
- "name": {
828
- "type": "string",
829
- "minLength": 1,
830
- "description": "Full name of the image that should be used. It should contain the Registry part if needed.",
831
- },
832
- "entrypoint": {
833
- "type": "array",
834
- "description": "Command or script that should be executed as the container's entrypoint. It will be translated to Docker's --entrypoint option while creating the container. The syntax is similar to Dockerfile's ENTRYPOINT directive, where each shell token is a separate string in the array.",
835
- "minItems": 1,
836
- },
837
- "docker": {
838
- "type": "object",
839
- "markdownDescription": "Options to pass to Runners Docker Executor. [Learn More](https://docs.gitlab.com/ci/yaml/#imagedocker)",
840
- "additionalProperties": false,
841
- "properties": {
842
- "platform": {
843
- "type": "string",
844
- "minLength": 1,
845
- "description": "Image architecture to pull.",
846
- },
847
- "user": {
848
- "type": "string",
849
- "minLength": 1,
850
- "maxLength": 255,
851
- "description": "Username or UID to use for the container.",
852
- },
853
- },
854
- },
855
- "kubernetes": {
856
- "type": "object",
857
- "markdownDescription": "Options to pass to Runners Kubernetes Executor. [Learn More](https://docs.gitlab.com/ci/yaml/#imagekubernetes)",
858
- "additionalProperties": false,
859
- "properties": {
860
- "user": {
861
- "type": [
862
- "string",
863
- "integer",
864
- ],
865
- "minLength": 1,
866
- "maxLength": 255,
867
- "description": "Username or UID to use for the container. It also supports the UID:GID format.",
868
- },
869
- },
870
- },
871
- "pull_policy": {
872
- "markdownDescription": "Specifies how to pull the image in Runner. It can be one of `always`, `never` or `if-not-present`. The default value is `always`. [Learn more](https://docs.gitlab.com/ci/yaml/#imagepull_policy).",
873
- "default": "always",
874
- "oneOf": [
875
- {
876
- "type": "string",
877
- "enum": [
878
- "always",
879
- "never",
880
- "if-not-present",
881
- ],
882
- },
883
- {
884
- "type": "array",
885
- "items": {
886
- "type": "string",
887
- "enum": [
888
- "always",
889
- "never",
890
- "if-not-present",
891
- ],
892
- },
893
- "minItems": 1,
894
- "uniqueItems": true,
895
- },
896
- ],
897
- },
898
- },
899
- "required": [
900
- "name",
901
- ],
902
- },
903
- ],
904
- "markdownDescription": "Specifies the docker image to use for the job or globally for all jobs. Job configuration takes precedence over global setting. Requires a certain kind of GitLab runner executor. [Learn More](https://docs.gitlab.com/ci/yaml/#image).",
905
- },
906
- "services": {
907
- "type": "array",
908
- "markdownDescription": "Similar to `image` property, but will link the specified services to the `image` container. [Learn More](https://docs.gitlab.com/ci/yaml/#services).",
909
- "items": {
910
- "oneOf": [
911
- {
912
- "type": "string",
913
- "minLength": 1,
914
- "description": "Full name of the image that should be used. It should contain the Registry part if needed.",
915
- },
916
- {
917
- "type": "object",
918
- "description": "",
919
- "additionalProperties": false,
920
- "properties": {
921
- "name": {
922
- "type": "string",
923
- "description": "Full name of the image that should be used. It should contain the Registry part if needed.",
924
- "minLength": 1,
925
- },
926
- "entrypoint": {
927
- "type": "array",
928
- "markdownDescription": "Command or script that should be executed as the container's entrypoint. It will be translated to Docker's --entrypoint option while creating the container. The syntax is similar to Dockerfile's ENTRYPOINT directive, where each shell token is a separate string in the array. [Learn More](https://docs.gitlab.com/ci/services/#available-settings-for-services)",
929
- "minItems": 1,
930
- "items": {
931
- "type": "string",
932
- },
933
- },
934
- "docker": {
935
- "type": "object",
936
- "markdownDescription": "Options to pass to Runners Docker Executor. [Learn More](https://docs.gitlab.com/ci/yaml/#servicesdocker)",
937
- "additionalProperties": false,
938
- "properties": {
939
- "platform": {
940
- "type": "string",
941
- "minLength": 1,
942
- "description": "Image architecture to pull.",
943
- },
944
- "user": {
945
- "type": "string",
946
- "minLength": 1,
947
- "maxLength": 255,
948
- "description": "Username or UID to use for the container.",
949
- },
950
- },
951
- },
952
- "kubernetes": {
953
- "type": "object",
954
- "markdownDescription": "Options to pass to Runners Kubernetes Executor. [Learn More](https://docs.gitlab.com/ci/yaml/#imagekubernetes)",
955
- "additionalProperties": false,
956
- "properties": {
957
- "user": {
958
- "type": [
959
- "string",
960
- "integer",
961
- ],
962
- "minLength": 1,
963
- "maxLength": 255,
964
- "description": "Username or UID to use for the container. It also supports the UID:GID format.",
965
- },
966
- },
967
- },
968
- "pull_policy": {
969
- "markdownDescription": "Specifies how to pull the image in Runner. It can be one of `always`, `never` or `if-not-present`. The default value is `always`. [Learn more](https://docs.gitlab.com/ci/yaml/#servicespull_policy).",
970
- "default": "always",
971
- "oneOf": [
972
- {
973
- "type": "string",
974
- "enum": [
975
- "always",
976
- "never",
977
- "if-not-present",
978
- ],
979
- },
980
- {
981
- "type": "array",
982
- "items": {
983
- "type": "string",
984
- "enum": [
985
- "always",
986
- "never",
987
- "if-not-present",
988
- ],
989
- },
990
- "minItems": 1,
991
- "uniqueItems": true,
992
- },
993
- ],
994
- },
995
- "command": {
996
- "markdownDescription": "Command or script that should be used as the container's command. It will be translated to arguments passed to Docker after the image's name. The syntax is similar to Dockerfile's CMD directive, where each shell token is a separate string in the array. [Learn More](https://docs.gitlab.com/ci/services/#available-settings-for-services)",
997
- "$ref": "#/definitions/script",
998
- },
999
- "alias": {
1000
- "type": "string",
1001
- "markdownDescription": "Additional alias that can be used to access the service from the job's container. Read Accessing the services for more information. [Learn More](https://docs.gitlab.com/ci/services/#available-settings-for-services)",
1002
- "minLength": 1,
1003
- },
1004
- "variables": {
1005
- "$ref": "#/definitions/jobVariables",
1006
- "markdownDescription": "Additional environment variables that are passed exclusively to the service. Service variables cannot reference themselves. [Learn More](https://docs.gitlab.com/ci/services/#available-settings-for-services)",
1007
- },
1008
- },
1009
- "required": [
1010
- "name",
1011
- ],
1012
- },
1013
- ],
1014
- },
1015
- },
1016
- "id_tokens": {
1017
- "type": "object",
1018
- "markdownDescription": "Defines JWTs to be injected as environment variables.",
1019
- "patternProperties": {
1020
- ".*": {
1021
- "type": "object",
1022
- "properties": {
1023
- "aud": {
1024
- "oneOf": [
1025
- {
1026
- "type": "string",
1027
- },
1028
- {
1029
- "type": "array",
1030
- "items": {
1031
- "type": "string",
1032
- },
1033
- "minItems": 1,
1034
- "uniqueItems": true,
1035
- },
1036
- ],
1037
- },
1038
- },
1039
- "required": [
1040
- "aud",
1041
- ],
1042
- "additionalProperties": false,
1043
- },
1044
- },
1045
- },
1046
- "identity": {
1047
- "type": "string",
1048
- "markdownDescription": "Sets a workload identity (experimental), allowing automatic authentication with the external system. [Learn More](https://docs.gitlab.com/ci/yaml/#identity).",
1049
- "enum": [
1050
- "google_cloud",
1051
- ],
1052
- },
1053
- "secrets": {
1054
- "type": "object",
1055
- "markdownDescription": "Defines secrets to be injected as environment variables. [Learn More](https://docs.gitlab.com/ci/yaml/#secrets).",
1056
- "patternProperties": {
1057
- ".*": {
1058
- "type": "object",
1059
- "properties": {
1060
- "vault": {
1061
- "oneOf": [
1062
- {
1063
- "type": "string",
1064
- "markdownDescription": "The secret to be fetched from Vault (e.g. 'production/db/password@ops' translates to secret 'ops/data/production/db', field `password`). [Learn More](https://docs.gitlab.com/ci/yaml/#secretsvault)",
1065
- },
1066
- {
1067
- "type": "object",
1068
- "properties": {
1069
- "engine": {
1070
- "type": "object",
1071
- "properties": {
1072
- "name": {
1073
- "type": "string",
1074
- },
1075
- "path": {
1076
- "type": "string",
1077
- },
1078
- },
1079
- "required": [
1080
- "name",
1081
- "path",
1082
- ],
1083
- },
1084
- "path": {
1085
- "type": "string",
1086
- },
1087
- "field": {
1088
- "type": "string",
1089
- },
1090
- },
1091
- "required": [
1092
- "engine",
1093
- "path",
1094
- "field",
1095
- ],
1096
- "additionalProperties": false,
1097
- },
1098
- ],
1099
- },
1100
- "gcp_secret_manager": {
1101
- "type": "object",
1102
- "markdownDescription": "Defines the secret version to be fetched from GCP Secret Manager. Name refers to the secret name in GCP secret manager. Version refers to the desired secret version (defaults to 'latest').",
1103
- "properties": {
1104
- "name": {
1105
- "type": "string",
1106
- },
1107
- "version": {
1108
- "oneOf": [
1109
- {
1110
- "type": "string",
1111
- },
1112
- {
1113
- "type": "integer",
1114
- },
1115
- ],
1116
- "default": "version",
1117
- },
1118
- },
1119
- "required": [
1120
- "name",
1121
- ],
1122
- "additionalProperties": false,
1123
- },
1124
- "azure_key_vault": {
1125
- "type": "object",
1126
- "properties": {
1127
- "name": {
1128
- "type": "string",
1129
- },
1130
- "version": {
1131
- "type": "string",
1132
- },
1133
- },
1134
- "required": [
1135
- "name",
1136
- ],
1137
- "additionalProperties": false,
1138
- },
1139
- "aws_secrets_manager": {
1140
- "oneOf": [
1141
- {
1142
- "type": "string",
1143
- "description": "The ARN or name of the secret to retrieve. To retrieve a secret from another account, you must use an ARN.",
1144
- },
1145
- {
1146
- "type": "object",
1147
- "markdownDescription": "Defines the secret to be fetched from AWS Secrets Manager. The secret_id refers to the ARN or name of the secret in AWS Secrets Manager. Version_id and version_stage are optional parameters that can be used to specify a specific version of the secret, else AWSCURRENT version will be returned.",
1148
- "properties": {
1149
- "secret_id": {
1150
- "type": "string",
1151
- "description": "The ARN or name of the secret to retrieve. To retrieve a secret from another account, you must use an ARN.",
1152
- },
1153
- "version_id": {
1154
- "type": "string",
1155
- "description": "The unique identifier of the version of the secret to retrieve. If you include both this parameter and VersionStage, the two parameters must refer to the same secret version. If you don't specify either a VersionStage or VersionId, Secrets Manager returns the AWSCURRENT version.",
1156
- },
1157
- "version_stage": {
1158
- "type": "string",
1159
- "description": "The staging label of the version of the secret to retrieve. If you include both this parameter and VersionStage, the two parameters must refer to the same secret version. If you don't specify either a VersionStage or VersionId, Secrets Manager returns the AWSCURRENT version.",
1160
- },
1161
- "region": {
1162
- "type": "string",
1163
- "description": "The AWS region where the secret is stored. Use this to override the region for a specific secret. Defaults to AWS_REGION variable.",
1164
- },
1165
- "role_arn": {
1166
- "type": "string",
1167
- "description": "The ARN of the IAM role to assume before retrieving the secret. Use this to override the ARN. Defaults to AWS_ROLE_ARN variable.",
1168
- },
1169
- "role_session_name": {
1170
- "type": "string",
1171
- "description": "The name of the session to use when assuming the role. Use this to override the session name. Defaults to AWS_ROLE_SESSION_NAME variable.",
1172
- },
1173
- "field": {
1174
- "type": "string",
1175
- "description": "The name of the field to retrieve from the secret. If not specified, the entire secret is retrieved.",
1176
- },
1177
- },
1178
- "required": [
1179
- "secret_id",
1180
- ],
1181
- "additionalProperties": false,
1182
- },
1183
- ],
1184
- },
1185
- "file": {
1186
- "type": "boolean",
1187
- "default": true,
1188
- "markdownDescription": "Configures the secret to be stored as either a file or variable type CI/CD variable. [Learn More](https://docs.gitlab.com/ci/yaml/#secretsfile)",
1189
- },
1190
- "token": {
1191
- "type": "string",
1192
- "description": "Specifies the JWT variable that should be used to authenticate with the secret provider.",
1193
- },
1194
- },
1195
- "anyOf": [
1196
- {
1197
- "required": [
1198
- "vault",
1199
- ],
1200
- },
1201
- {
1202
- "required": [
1203
- "azure_key_vault",
1204
- ],
1205
- },
1206
- {
1207
- "required": [
1208
- "gcp_secret_manager",
1209
- ],
1210
- },
1211
- {
1212
- "required": [
1213
- "aws_secrets_manager",
1214
- ],
1215
- },
1216
- ],
1217
- "dependencies": {
1218
- "gcp_secret_manager": [
1219
- "token",
1220
- ],
1221
- },
1222
- "additionalProperties": false,
1223
- },
1224
- },
1225
- },
1226
- "script": {
1227
- "oneOf": [
1228
- {
1229
- "type": "string",
1230
- "minLength": 1,
1231
- },
1232
- {
1233
- "type": "array",
1234
- "items": {
1235
- "anyOf": [
1236
- {
1237
- "type": "string",
1238
- },
1239
- {
1240
- "type": "array",
1241
- "items": {
1242
- "type": "string",
1243
- },
1244
- },
1245
- ],
1246
- },
1247
- "minItems": 1,
1248
- },
1249
- ],
1250
- },
1251
- "steps": {
1252
- "type": "array",
1253
- "items": {
1254
- "$ref": "#/definitions/step",
1255
- },
1256
- },
1257
- "optional_script": {
1258
- "oneOf": [
1259
- {
1260
- "type": "string",
1261
- },
1262
- {
1263
- "type": "array",
1264
- "items": {
1265
- "anyOf": [
1266
- {
1267
- "type": "string",
1268
- },
1269
- {
1270
- "type": "array",
1271
- "items": {
1272
- "type": "string",
1273
- },
1274
- },
1275
- ],
1276
- },
1277
- },
1278
- ],
1279
- },
1280
- "before_script": {
1281
- "$ref": "#/definitions/optional_script",
1282
- "markdownDescription": "Defines scripts that should run *before* the job. Can be set globally or per job. [Learn More](https://docs.gitlab.com/ci/yaml/#before_script).",
1283
- },
1284
- "after_script": {
1285
- "$ref": "#/definitions/optional_script",
1286
- "markdownDescription": "Defines scripts that should run *after* the job. Can be set globally or per job. [Learn More](https://docs.gitlab.com/ci/yaml/#after_script).",
1287
- },
1288
- "rules": {
1289
- "type": [
1290
- "array",
1291
- "null",
1292
- ],
1293
- "markdownDescription": "Rules allows for an array of individual rule objects to be evaluated in order, until one matches and dynamically provides attributes to the job. [Learn More](https://docs.gitlab.com/ci/yaml/#rules).",
1294
- "items": {
1295
- "anyOf": [
1296
- {
1297
- "type": "object",
1298
- "additionalProperties": false,
1299
- "properties": {
1300
- "if": {
1301
- "$ref": "#/definitions/if",
1302
- },
1303
- "changes": {
1304
- "$ref": "#/definitions/changes",
1305
- },
1306
- "exists": {
1307
- "$ref": "#/definitions/exists",
1308
- },
1309
- "variables": {
1310
- "$ref": "#/definitions/rulesVariables",
1311
- },
1312
- "when": {
1313
- "$ref": "#/definitions/when",
1314
- },
1315
- "start_in": {
1316
- "$ref": "#/definitions/start_in",
1317
- },
1318
- "allow_failure": {
1319
- "$ref": "#/definitions/allow_failure",
1320
- },
1321
- "needs": {
1322
- "$ref": "#/definitions/rulesNeeds",
1323
- },
1324
- "interruptible": {
1325
- "$ref": "#/definitions/interruptible",
1326
- },
1327
- },
1328
- },
1329
- {
1330
- "type": "string",
1331
- "minLength": 1,
1332
- },
1333
- {
1334
- "type": "array",
1335
- "minItems": 1,
1336
- "items": {
1337
- "type": "string",
1338
- },
1339
- },
1340
- ],
1341
- },
1342
- },
1343
- "includeRules": {
1344
- "type": [
1345
- "array",
1346
- "null",
1347
- ],
1348
- "markdownDescription": "You can use rules to conditionally include other configuration files. [Learn More](https://docs.gitlab.com/ci/yaml/includes/#use-rules-with-include).",
1349
- "items": {
1350
- "anyOf": [
1351
- {
1352
- "type": "object",
1353
- "additionalProperties": false,
1354
- "properties": {
1355
- "if": {
1356
- "$ref": "#/definitions/if",
1357
- },
1358
- "changes": {
1359
- "$ref": "#/definitions/changes",
1360
- },
1361
- "exists": {
1362
- "$ref": "#/definitions/exists",
1363
- },
1364
- "when": {
1365
- "markdownDescription": "Use `when: never` to exclude the configuration file if the condition matches. [Learn More](https://docs.gitlab.com/ci/yaml/includes/#include-with-rulesif).",
1366
- "oneOf": [
1367
- {
1368
- "type": "string",
1369
- "enum": [
1370
- "never",
1371
- "always",
1372
- ],
1373
- },
1374
- {
1375
- "type": "null",
1376
- },
1377
- ],
1378
- },
1379
- },
1380
- },
1381
- {
1382
- "type": "string",
1383
- "minLength": 1,
1384
- },
1385
- {
1386
- "type": "array",
1387
- "minItems": 1,
1388
- "items": {
1389
- "type": "string",
1390
- },
1391
- },
1392
- ],
1393
- },
1394
- },
1395
- "workflowName": {
1396
- "type": "string",
1397
- "markdownDescription": "Defines the pipeline name. [Learn More](https://docs.gitlab.com/ci/yaml/#workflowname).",
1398
- "minLength": 1,
1399
- "maxLength": 255,
1400
- },
1401
- "workflowAutoCancel": {
1402
- "type": "object",
1403
- "description": "Define the rules for when pipeline should be automatically cancelled.",
1404
- "additionalProperties": false,
1405
- "properties": {
1406
- "on_job_failure": {
1407
- "markdownDescription": "Define which jobs to stop after a job fails.",
1408
- "default": "none",
1409
- "type": "string",
1410
- "enum": [
1411
- "none",
1412
- "all",
1413
- ],
1414
- },
1415
- "on_new_commit": {
1416
- "markdownDescription": "Configure the behavior of the auto-cancel redundant pipelines feature. [Learn More](https://docs.gitlab.com/ci/yaml/#workflowauto_cancelon_new_commit)",
1417
- "type": "string",
1418
- "enum": [
1419
- "conservative",
1420
- "interruptible",
1421
- "none",
1422
- ],
1423
- },
1424
- },
1425
- },
1426
- "globalVariables": {
1427
- "markdownDescription": "Defines default variables for all jobs. Job level property overrides global variables. [Learn More](https://docs.gitlab.com/ci/yaml/#variables).",
1428
- "type": "object",
1429
- "patternProperties": {
1430
- ".*": {
1431
- "oneOf": [
1432
- {
1433
- "type": [
1434
- "boolean",
1435
- "number",
1436
- "string",
1437
- ],
1438
- },
1439
- {
1440
- "type": "object",
1441
- "properties": {
1442
- "value": {
1443
- "type": "string",
1444
- "markdownDescription": "Default value of the variable. If used with `options`, `value` must be included in the array. [Learn More](https://docs.gitlab.com/ci/yaml/#variablesvalue)",
1445
- },
1446
- "options": {
1447
- "type": "array",
1448
- "items": {
1449
- "type": "string",
1450
- },
1451
- "minItems": 1,
1452
- "uniqueItems": true,
1453
- "markdownDescription": "A list of predefined values that users can select from in the **Run pipeline** page when running a pipeline manually. [Learn More](https://docs.gitlab.com/ci/yaml/#variablesoptions)",
1454
- },
1455
- "description": {
1456
- "type": "string",
1457
- "markdownDescription": "Explains what the variable is used for, what the acceptable values are. Variables with `description` are prefilled when running a pipeline manually. [Learn More](https://docs.gitlab.com/ci/yaml/#variablesdescription).",
1458
- },
1459
- "expand": {
1460
- "type": "boolean",
1461
- "markdownDescription": "If the variable is expandable or not. [Learn More](https://docs.gitlab.com/ci/yaml/#variablesexpand).",
1462
- },
1463
- },
1464
- "additionalProperties": false,
1465
- },
1466
- ],
1467
- },
1468
- },
1469
- },
1470
- "jobVariables": {
1471
- "markdownDescription": "Defines variables for a job. [Learn More](https://docs.gitlab.com/ci/yaml/#variables).",
1472
- "type": "object",
1473
- "patternProperties": {
1474
- ".*": {
1475
- "oneOf": [
1476
- {
1477
- "type": [
1478
- "boolean",
1479
- "number",
1480
- "string",
1481
- ],
1482
- },
1483
- {
1484
- "type": "object",
1485
- "properties": {
1486
- "value": {
1487
- "type": "string",
1488
- },
1489
- "expand": {
1490
- "type": "boolean",
1491
- "markdownDescription": "Defines if the variable is expandable or not. [Learn More](https://docs.gitlab.com/ci/yaml/#variablesexpand).",
1492
- },
1493
- },
1494
- "additionalProperties": false,
1495
- },
1496
- ],
1497
- },
1498
- },
1499
- },
1500
- "rulesVariables": {
1501
- "markdownDescription": "Defines variables for a rule result. [Learn More](https://docs.gitlab.com/ci/yaml/#rulesvariables).",
1502
- "type": "object",
1503
- "patternProperties": {
1504
- ".*": {
1505
- "type": [
1506
- "boolean",
1507
- "number",
1508
- "string",
1509
- ],
1510
- },
1511
- },
1512
- },
1513
- "if": {
1514
- "type": "string",
1515
- "markdownDescription": "Expression to evaluate whether additional attributes should be provided to the job. [Learn More](https://docs.gitlab.com/ci/yaml/#rulesif).",
1516
- },
1517
- "changes": {
1518
- "markdownDescription": "Additional attributes will be provided to job if any of the provided paths matches a modified file. [Learn More](https://docs.gitlab.com/ci/yaml/#ruleschanges).",
1519
- "anyOf": [
1520
- {
1521
- "type": "object",
1522
- "additionalProperties": false,
1523
- "required": [
1524
- "paths",
1525
- ],
1526
- "properties": {
1527
- "paths": {
1528
- "type": "array",
1529
- "description": "List of file paths.",
1530
- "items": {
1531
- "type": "string",
1532
- },
1533
- },
1534
- "compare_to": {
1535
- "type": "string",
1536
- "description": "Ref for comparing changes.",
1537
- },
1538
- },
1539
- },
1540
- {
1541
- "type": "array",
1542
- "items": {
1543
- "type": "string",
1544
- },
1545
- },
1546
- ],
1547
- },
1548
- "exists": {
1549
- "markdownDescription": "Additional attributes will be provided to job if any of the provided paths matches an existing file in the repository. [Learn More](https://docs.gitlab.com/ci/yaml/#rulesexists).",
1550
- "anyOf": [
1551
- {
1552
- "type": "array",
1553
- "items": {
1554
- "type": "string",
1555
- },
1556
- },
1557
- {
1558
- "type": "object",
1559
- "additionalProperties": false,
1560
- "required": [
1561
- "paths",
1562
- ],
1563
- "properties": {
1564
- "paths": {
1565
- "type": "array",
1566
- "description": "List of file paths.",
1567
- "items": {
1568
- "type": "string",
1569
- },
1570
- },
1571
- "project": {
1572
- "type": "string",
1573
- "description": "Path of the project to search in.",
1574
- },
1575
- },
1576
- },
1577
- {
1578
- "type": "object",
1579
- "additionalProperties": false,
1580
- "required": [
1581
- "paths",
1582
- "project",
1583
- ],
1584
- "properties": {
1585
- "paths": {
1586
- "type": "array",
1587
- "description": "List of file paths.",
1588
- "items": {
1589
- "type": "string",
1590
- },
1591
- },
1592
- "project": {
1593
- "type": "string",
1594
- "description": "Path of the project to search in.",
1595
- },
1596
- "ref": {
1597
- "type": "string",
1598
- "description": "Ref of the project to search in.",
1599
- },
1600
- },
1601
- },
1602
- ],
1603
- },
1604
- "timeout": {
1605
- "type": "string",
1606
- "markdownDescription": "Allows you to configure a timeout for a specific job (e.g. `1 minute`, `1h 30m 12s`). [Learn More](https://docs.gitlab.com/ci/yaml/#timeout).",
1607
- "minLength": 1,
1608
- },
1609
- "start_in": {
1610
- "type": "string",
1611
- "markdownDescription": "Used in conjunction with 'when: delayed' to set how long to delay before starting a job. e.g. '5', 5 seconds, 30 minutes, 1 week, etc. [Learn More](https://docs.gitlab.com/ci/jobs/job_control/#run-a-job-after-a-delay).",
1612
- "minLength": 1,
1613
- },
1614
- "rulesNeeds": {
1615
- "markdownDescription": "Use needs in rules to update job needs for specific conditions. When a condition matches a rule, the job's needs configuration is completely replaced with the needs in the rule. [Learn More](https://docs.gitlab.com/ci/yaml/#rulesneeds).",
1616
- "type": "array",
1617
- "items": {
1618
- "oneOf": [
1619
- {
1620
- "type": "string",
1621
- },
1622
- {
1623
- "type": "object",
1624
- "additionalProperties": false,
1625
- "properties": {
1626
- "job": {
1627
- "type": "string",
1628
- "minLength": 1,
1629
- "description": "Name of a job that is defined in the pipeline.",
1630
- },
1631
- "artifacts": {
1632
- "type": "boolean",
1633
- "description": "Download artifacts of the job in needs.",
1634
- },
1635
- "optional": {
1636
- "type": "boolean",
1637
- "description": "Whether the job needs to be present in the pipeline to run ahead of the current job.",
1638
- },
1639
- },
1640
- "required": [
1641
- "job",
1642
- ],
1643
- },
1644
- ],
1645
- },
1646
- },
1647
- "allow_failure": {
1648
- "markdownDescription": "Allow job to fail. A failed job does not cause the pipeline to fail. [Learn More](https://docs.gitlab.com/ci/yaml/#allow_failure).",
1649
- "oneOf": [
1650
- {
1651
- "description": "Setting this option to true will allow the job to fail while still letting the pipeline pass.",
1652
- "type": "boolean",
1653
- "default": false,
1654
- },
1655
- {
1656
- "description": "Exit code that are not considered failure. The job fails for any other exit code.",
1657
- "type": "object",
1658
- "additionalProperties": false,
1659
- "required": [
1660
- "exit_codes",
1661
- ],
1662
- "properties": {
1663
- "exit_codes": {
1664
- "type": "integer",
1665
- },
1666
- },
1667
- },
1668
- {
1669
- "description": "You can list which exit codes are not considered failures. The job fails for any other exit code.",
1670
- "type": "object",
1671
- "additionalProperties": false,
1672
- "required": [
1673
- "exit_codes",
1674
- ],
1675
- "properties": {
1676
- "exit_codes": {
1677
- "type": "array",
1678
- "minItems": 1,
1679
- "uniqueItems": true,
1680
- "items": {
1681
- "type": "integer",
1682
- },
1683
- },
1684
- },
1685
- },
1686
- ],
1687
- },
1688
- "parallel": {
1689
- "description": "Splits up a single job into multiple that run in parallel. Provides `CI_NODE_INDEX` and `CI_NODE_TOTAL` environment variables to the jobs.",
1690
- "oneOf": [
1691
- {
1692
- "type": "integer",
1693
- "description": "Creates N instances of the job that run in parallel.",
1694
- "default": 0,
1695
- "minimum": 1,
1696
- "maximum": 200,
1697
- },
1698
- {
1699
- "type": "object",
1700
- "properties": {
1701
- "matrix": {
1702
- "type": "array",
1703
- "description": "Defines different variables for jobs that are running in parallel.",
1704
- "items": {
1705
- "type": "object",
1706
- "description": "Defines the variables for a specific job.",
1707
- "additionalProperties": {
1708
- "type": [
1709
- "string",
1710
- "number",
1711
- "array",
1712
- ],
1713
- },
1714
- },
1715
- "maxItems": 200,
1716
- },
1717
- },
1718
- "additionalProperties": false,
1719
- "required": [
1720
- "matrix",
1721
- ],
1722
- },
1723
- ],
1724
- },
1725
- "parallel_matrix": {
1726
- "description": "Use the `needs:parallel:matrix` keyword to specify parallelized jobs needed to be completed for the job to run. [Learn More](https://docs.gitlab.com/ci/yaml/#needsparallelmatrix)",
1727
- "oneOf": [
1728
- {
1729
- "type": "object",
1730
- "properties": {
1731
- "matrix": {
1732
- "type": "array",
1733
- "description": "Defines different variables for jobs that are running in parallel.",
1734
- "items": {
1735
- "type": "object",
1736
- "description": "Defines the variables for a specific job.",
1737
- "additionalProperties": {
1738
- "type": [
1739
- "string",
1740
- "number",
1741
- "array",
1742
- ],
1743
- },
1744
- },
1745
- "maxItems": 200,
1746
- },
1747
- },
1748
- "additionalProperties": false,
1749
- "required": [
1750
- "matrix",
1751
- ],
1752
- },
1753
- ],
1754
- },
1755
- "when": {
1756
- "markdownDescription": "Describes the conditions for when to run the job. Defaults to 'on_success'. [Learn More](https://docs.gitlab.com/ci/yaml/#when).",
1757
- "default": "on_success",
1758
- "type": "string",
1759
- "enum": [
1760
- "on_success",
1761
- "on_failure",
1762
- "always",
1763
- "never",
1764
- "manual",
1765
- "delayed",
1766
- ],
1767
- },
1768
- "cache": {
1769
- "markdownDescription": "Use `cache` to specify a list of files and directories to cache between jobs. You can only use paths that are in the local working copy. [Learn More](https://docs.gitlab.com/ci/yaml/#cache)",
1770
- "oneOf": [
1771
- {
1772
- "$ref": "#/definitions/cache_item",
1773
- },
1774
- {
1775
- "type": "array",
1776
- "items": {
1777
- "$ref": "#/definitions/cache_item",
1778
- },
1779
- },
1780
- ],
1781
- },
1782
- "cache_item": {
1783
- "type": "object",
1784
- "properties": {
1785
- "key": {
1786
- "markdownDescription": "Use the `cache:key` keyword to give each cache a unique identifying key. All jobs that use the same cache key use the same cache, including in different pipelines. Must be used with `cache:path`, or nothing is cached. [Learn More](https://docs.gitlab.com/ci/yaml/#cachekey).",
1787
- "oneOf": [
1788
- {
1789
- "type": "string",
1790
- },
1791
- {
1792
- "type": "object",
1793
- "properties": {
1794
- "files": {
1795
- "markdownDescription": "Use the `cache:key:files` keyword to generate a new cache key when specified file content changes. Cache keys remain stable across branches with identical file content. [Learn More](https://docs.gitlab.com/ci/yaml/#cachekeyfiles)",
1796
- "type": "array",
1797
- "items": {
1798
- "type": "string",
1799
- },
1800
- "minItems": 1,
1801
- "maxItems": 2,
1802
- },
1803
- "files_commits": {
1804
- "markdownDescription": "Use the `cache:key:files_commits` keyword to generate a new cache key when the latest commit changes for the specified files. [Learn More](https://docs.gitlab.com/ci/yaml/#cachekeyfiles_commits)",
1805
- "type": "array",
1806
- "items": {
1807
- "type": "string",
1808
- },
1809
- "minItems": 1,
1810
- "maxItems": 2,
1811
- },
1812
- "prefix": {
1813
- "markdownDescription": "Use `cache:key:prefix` to combine a prefix with the SHA computed for `cache:key:files` or `cache:key:files_commits`. [Learn More](https://docs.gitlab.com/ci/yaml/#cachekeyprefix)",
1814
- "type": "string",
1815
- },
1816
- },
1817
- },
1818
- ],
1819
- },
1820
- "paths": {
1821
- "type": "array",
1822
- "markdownDescription": "Use the `cache:paths` keyword to choose which files or directories to cache. [Learn More](https://docs.gitlab.com/ci/yaml/#cachepaths)",
1823
- "items": {
1824
- "type": "string",
1825
- },
1826
- },
1827
- "policy": {
1828
- "type": "string",
1829
- "markdownDescription": "Determines the strategy for downloading and updating the cache. [Learn More](https://docs.gitlab.com/ci/yaml/#cachepolicy)",
1830
- "default": "pull-push",
1831
- },
1832
- "unprotect": {
1833
- "type": "boolean",
1834
- "markdownDescription": "Use `unprotect: true` to set a cache to be shared between protected and unprotected branches.",
1835
- "default": false,
1836
- },
1837
- "untracked": {
1838
- "type": "boolean",
1839
- "markdownDescription": "Use `untracked: true` to cache all files that are untracked in your Git repository. [Learn More](https://docs.gitlab.com/ci/yaml/#cacheuntracked)",
1840
- "default": false,
1841
- },
1842
- "when": {
1843
- "type": "string",
1844
- "markdownDescription": "Defines when to save the cache, based on the status of the job. [Learn More](https://docs.gitlab.com/ci/yaml/#cachewhen).",
1845
- "default": "on_success",
1846
- "enum": [
1847
- "on_success",
1848
- "on_failure",
1849
- "always",
1850
- ],
1851
- },
1852
- "fallback_keys": {
1853
- "type": "array",
1854
- "markdownDescription": "List of keys to download cache from if no cache hit occurred for key",
1855
- "items": {
1856
- "type": "string",
1857
- },
1858
- "maxItems": 5,
1859
- },
1860
- },
1861
- },
1862
- "filter_refs": {
1863
- "type": "array",
1864
- "description": "Filter job by different keywords that determine origin or state, or by supplying string/regex to check against branch/tag names.",
1865
- "items": {
1866
- "anyOf": [
1867
- {
1868
- "oneOf": [
1869
- {
1870
- "enum": [
1871
- "branches",
1872
- ],
1873
- "description": "When a branch is pushed.",
1874
- },
1875
- {
1876
- "enum": [
1877
- "tags",
1878
- ],
1879
- "description": "When a tag is pushed.",
1880
- },
1881
- {
1882
- "enum": [
1883
- "api",
1884
- ],
1885
- "description": "When a pipeline has been triggered by a second pipelines API (not triggers API).",
1886
- },
1887
- {
1888
- "enum": [
1889
- "external",
1890
- ],
1891
- "description": "When using CI services other than GitLab",
1892
- },
1893
- {
1894
- "enum": [
1895
- "pipelines",
1896
- ],
1897
- "description": "For multi-project triggers, created using the API with 'CI_JOB_TOKEN'.",
1898
- },
1899
- {
1900
- "enum": [
1901
- "pushes",
1902
- ],
1903
- "description": "Pipeline is triggered by a `git push` by the user",
1904
- },
1905
- {
1906
- "enum": [
1907
- "schedules",
1908
- ],
1909
- "description": "For scheduled pipelines.",
1910
- },
1911
- {
1912
- "enum": [
1913
- "triggers",
1914
- ],
1915
- "description": "For pipelines created using a trigger token.",
1916
- },
1917
- {
1918
- "enum": [
1919
- "web",
1920
- ],
1921
- "description": "For pipelines created using *Run pipeline* button in GitLab UI (under your project's *Pipelines*).",
1922
- },
1923
- ],
1924
- },
1925
- {
1926
- "type": "string",
1927
- "description": "String or regular expression to match against tag or branch names.",
1928
- },
1929
- ],
1930
- },
1931
- },
1932
- "filter": {
1933
- "oneOf": [
1934
- {
1935
- "type": "null",
1936
- },
1937
- {
1938
- "$ref": "#/definitions/filter_refs",
1939
- },
1940
- {
1941
- "type": "object",
1942
- "additionalProperties": false,
1943
- "properties": {
1944
- "refs": {
1945
- "$ref": "#/definitions/filter_refs",
1946
- },
1947
- "kubernetes": {
1948
- "enum": [
1949
- "active",
1950
- ],
1951
- "description": "Filter job based on if Kubernetes integration is active.",
1952
- },
1953
- "variables": {
1954
- "type": "array",
1955
- "markdownDescription": "Filter job by checking comparing values of CI/CD variables. [Learn More](https://docs.gitlab.com/ci/jobs/job_control/#cicd-variable-expressions).",
1956
- "items": {
1957
- "type": "string",
1958
- },
1959
- },
1960
- "changes": {
1961
- "type": "array",
1962
- "description": "Filter job creation based on files that were modified in a git push.",
1963
- "items": {
1964
- "type": "string",
1965
- },
1966
- },
1967
- },
1968
- },
1969
- ],
1970
- },
1971
- "retry": {
1972
- "markdownDescription": "Retry a job if it fails. Can be a simple integer or object definition. [Learn More](https://docs.gitlab.com/ci/yaml/#retry).",
1973
- "oneOf": [
1974
- {
1975
- "$ref": "#/definitions/retry_max",
1976
- },
1977
- {
1978
- "type": "object",
1979
- "additionalProperties": false,
1980
- "properties": {
1981
- "max": {
1982
- "$ref": "#/definitions/retry_max",
1983
- },
1984
- "when": {
1985
- "markdownDescription": "Either a single or array of error types to trigger job retry. [Learn More](https://docs.gitlab.com/ci/yaml/#retrywhen).",
1986
- "oneOf": [
1987
- {
1988
- "$ref": "#/definitions/retry_errors",
1989
- },
1990
- {
1991
- "type": "array",
1992
- "items": {
1993
- "$ref": "#/definitions/retry_errors",
1994
- },
1995
- },
1996
- ],
1997
- },
1998
- "exit_codes": {
1999
- "markdownDescription": "Either a single or array of exit codes to trigger job retry on. [Learn More](https://docs.gitlab.com/ci/yaml/#retryexit_codes).",
2000
- "oneOf": [
2001
- {
2002
- "description": "Retry when the job exit code is included in the array's values.",
2003
- "type": "array",
2004
- "minItems": 1,
2005
- "uniqueItems": true,
2006
- "items": {
2007
- "type": "integer",
2008
- },
2009
- },
2010
- {
2011
- "description": "Retry when the job exit code is equal to.",
2012
- "type": "integer",
2013
- },
2014
- ],
2015
- },
2016
- },
2017
- },
2018
- ],
2019
- },
2020
- "retry_max": {
2021
- "type": "integer",
2022
- "description": "The number of times the job will be retried if it fails. Defaults to 0 and can max be retried 2 times (3 times total).",
2023
- "default": 0,
2024
- "minimum": 0,
2025
- "maximum": 2,
2026
- },
2027
- "retry_errors": {
2028
- "oneOf": [
2029
- {
2030
- "const": "always",
2031
- "description": "Retry on any failure (default).",
2032
- },
2033
- {
2034
- "const": "unknown_failure",
2035
- "description": "Retry when the failure reason is unknown.",
2036
- },
2037
- {
2038
- "const": "script_failure",
2039
- "description": "Retry when the script failed.",
2040
- },
2041
- {
2042
- "const": "api_failure",
2043
- "description": "Retry on API failure.",
2044
- },
2045
- {
2046
- "const": "stuck_or_timeout_failure",
2047
- "description": "Retry when the job got stuck or timed out.",
2048
- },
2049
- {
2050
- "const": "runner_system_failure",
2051
- "description": "Retry if there is a runner system failure (for example, job setup failed).",
2052
- },
2053
- {
2054
- "const": "runner_unsupported",
2055
- "description": "Retry if the runner is unsupported.",
2056
- },
2057
- {
2058
- "const": "stale_schedule",
2059
- "description": "Retry if a delayed job could not be executed.",
2060
- },
2061
- {
2062
- "const": "job_execution_timeout",
2063
- "description": "Retry if the script exceeded the maximum execution time set for the job.",
2064
- },
2065
- {
2066
- "const": "archived_failure",
2067
- "description": "Retry if the job is archived and can’t be run.",
2068
- },
2069
- {
2070
- "const": "unmet_prerequisites",
2071
- "description": "Retry if the job failed to complete prerequisite tasks.",
2072
- },
2073
- {
2074
- "const": "scheduler_failure",
2075
- "description": "Retry if the scheduler failed to assign the job to a runner.",
2076
- },
2077
- {
2078
- "const": "data_integrity_failure",
2079
- "description": "Retry if there is an unknown job problem.",
2080
- },
2081
- ],
2082
- },
2083
- "interruptible": {
2084
- "type": "boolean",
2085
- "markdownDescription": "Interruptible is used to indicate that a job should be canceled if made redundant by a newer pipeline run. [Learn More](https://docs.gitlab.com/ci/yaml/#interruptible).",
2086
- "default": false,
2087
- },
2088
- "inputs": {
2089
- "markdownDescription": "Used to pass input values to included templates, components, downstream pipelines, or child pipelines. [Learn More](https://docs.gitlab.com/ci/inputs/).",
2090
- "type": "object",
2091
- "patternProperties": {
2092
- "^[a-zA-Z0-9_-]+$": {
2093
- "description": "Input parameter value that matches parameter names defined in spec:inputs of the included configuration.",
2094
- "oneOf": [
2095
- {
2096
- "type": "string",
2097
- "maxLength": 1024,
2098
- },
2099
- {
2100
- "type": "number",
2101
- },
2102
- {
2103
- "type": "boolean",
2104
- },
2105
- {
2106
- "type": "array",
2107
- "items": {
2108
- "oneOf": [
2109
- {
2110
- "type": "string",
2111
- },
2112
- {
2113
- "type": "number",
2114
- },
2115
- {
2116
- "type": "boolean",
2117
- },
2118
- {
2119
- "type": "object",
2120
- "additionalProperties": true,
2121
- },
2122
- {
2123
- "type": "array",
2124
- "items": {
2125
- "additionalProperties": true,
2126
- },
2127
- },
2128
- ],
2129
- },
2130
- },
2131
- {
2132
- "type": "object",
2133
- "additionalProperties": true,
2134
- },
2135
- {
2136
- "type": "null",
2137
- },
2138
- ],
2139
- },
2140
- },
2141
- "additionalProperties": false,
2142
- },
2143
- "job": {
2144
- "allOf": [
2145
- {
2146
- "$ref": "#/definitions/job_template",
2147
- },
2148
- ],
2149
- },
2150
- "job_template": {
2151
- "type": "object",
2152
- "additionalProperties": false,
2153
- "properties": {
2154
- "image": {
2155
- "$ref": "#/definitions/image",
2156
- },
2157
- "services": {
2158
- "$ref": "#/definitions/services",
2159
- },
2160
- "before_script": {
2161
- "$ref": "#/definitions/before_script",
2162
- },
2163
- "after_script": {
2164
- "$ref": "#/definitions/after_script",
2165
- },
2166
- "hooks": {
2167
- "$ref": "#/definitions/hooks",
2168
- },
2169
- "rules": {
2170
- "$ref": "#/definitions/rules",
2171
- },
2172
- "variables": {
2173
- "$ref": "#/definitions/jobVariables",
2174
- },
2175
- "cache": {
2176
- "$ref": "#/definitions/cache",
2177
- },
2178
- "id_tokens": {
2179
- "$ref": "#/definitions/id_tokens",
2180
- },
2181
- "identity": {
2182
- "$ref": "#/definitions/identity",
2183
- },
2184
- "inputs": {
2185
- "$ref": "#/definitions/jobInputs",
2186
- },
2187
- "secrets": {
2188
- "$ref": "#/definitions/secrets",
2189
- },
2190
- "script": {
2191
- "$ref": "#/definitions/script",
2192
- "markdownDescription": "Shell scripts executed by the Runner. The only required property of jobs. Be careful with special characters (e.g. `:`, `{`, `}`, `&`) and use single or double quotes to avoid issues. [Learn More](https://docs.gitlab.com/ci/yaml/#script)",
2193
- },
2194
- "run": {
2195
- "$ref": "#/definitions/steps",
2196
- "markdownDescription": "Specifies a list of steps to execute in the job. The `run` keyword is an alternative to `script` and allows for more advanced job configuration. Each step is an object that defines a single task or command. Use either `run` or `script` in a job, but not both, otherwise the pipeline will error out.",
2197
- },
2198
- "stage": {
2199
- "description": "Define what stage the job will run in.",
2200
- "anyOf": [
2201
- {
2202
- "type": "string",
2203
- "minLength": 1,
2204
- },
2205
- {
2206
- "type": "array",
2207
- "minItems": 1,
2208
- "items": {
2209
- "type": "string",
2210
- },
2211
- },
2212
- ],
2213
- },
2214
- "only": {
2215
- "$ref": "#/definitions/filter",
2216
- "description": "Job will run *only* when these filtering options match.",
2217
- },
2218
- "extends": {
2219
- "description": "The name of one or more jobs to inherit configuration from.",
2220
- "oneOf": [
2221
- {
2222
- "type": "string",
2223
- },
2224
- {
2225
- "type": "array",
2226
- "items": {
2227
- "type": "string",
2228
- },
2229
- "minItems": 1,
2230
- },
2231
- ],
2232
- },
2233
- "needs": {
2234
- "description": "The list of jobs in previous stages whose sole completion is needed to start the current job.",
2235
- "type": "array",
2236
- "items": {
2237
- "oneOf": [
2238
- {
2239
- "type": "string",
2240
- },
2241
- {
2242
- "type": "object",
2243
- "additionalProperties": false,
2244
- "properties": {
2245
- "job": {
2246
- "type": "string",
2247
- },
2248
- "artifacts": {
2249
- "type": "boolean",
2250
- },
2251
- "optional": {
2252
- "type": "boolean",
2253
- },
2254
- "parallel": {
2255
- "$ref": "#/definitions/parallel_matrix",
2256
- },
2257
- },
2258
- "required": [
2259
- "job",
2260
- ],
2261
- },
2262
- {
2263
- "type": "object",
2264
- "additionalProperties": false,
2265
- "properties": {
2266
- "pipeline": {
2267
- "type": "string",
2268
- },
2269
- "job": {
2270
- "type": "string",
2271
- },
2272
- "artifacts": {
2273
- "type": "boolean",
2274
- },
2275
- "parallel": {
2276
- "$ref": "#/definitions/parallel_matrix",
2277
- },
2278
- },
2279
- "required": [
2280
- "job",
2281
- "pipeline",
2282
- ],
2283
- },
2284
- {
2285
- "type": "object",
2286
- "additionalProperties": false,
2287
- "properties": {
2288
- "job": {
2289
- "type": "string",
2290
- },
2291
- "project": {
2292
- "type": "string",
2293
- },
2294
- "ref": {
2295
- "type": "string",
2296
- },
2297
- "artifacts": {
2298
- "type": "boolean",
2299
- },
2300
- "parallel": {
2301
- "$ref": "#/definitions/parallel_matrix",
2302
- },
2303
- },
2304
- "required": [
2305
- "job",
2306
- "project",
2307
- "ref",
2308
- ],
2309
- },
2310
- {
2311
- "$ref": "#/definitions/!reference",
2312
- },
2313
- ],
2314
- },
2315
- },
2316
- "except": {
2317
- "$ref": "#/definitions/filter",
2318
- "description": "Job will run *except* for when these filtering options match.",
2319
- },
2320
- "tags": {
2321
- "$ref": "#/definitions/tags",
2322
- },
2323
- "allow_failure": {
2324
- "$ref": "#/definitions/allow_failure",
2325
- },
2326
- "timeout": {
2327
- "$ref": "#/definitions/timeout",
2328
- },
2329
- "when": {
2330
- "$ref": "#/definitions/when",
2331
- },
2332
- "start_in": {
2333
- "$ref": "#/definitions/start_in",
2334
- },
2335
- "manual_confirmation": {
2336
- "markdownDescription": "Describes the Custom confirmation message for a manual job [Learn More](https://docs.gitlab.com/ci/yaml/#when).",
2337
- "type": "string",
2338
- },
2339
- "dependencies": {
2340
- "type": "array",
2341
- "description": "Specify a list of job names from earlier stages from which artifacts should be loaded. By default, all previous artifacts are passed. Use an empty array to skip downloading artifacts.",
2342
- "items": {
2343
- "type": "string",
2344
- },
2345
- },
2346
- "artifacts": {
2347
- "$ref": "#/definitions/artifacts",
2348
- },
2349
- "environment": {
2350
- "description": "Used to associate environment metadata with a deploy. Environment can have a name and URL attached to it, and will be displayed under /environments under the project.",
2351
- "oneOf": [
2352
- {
2353
- "type": "string",
2354
- },
2355
- {
2356
- "type": "object",
2357
- "additionalProperties": false,
2358
- "properties": {
2359
- "name": {
2360
- "type": "string",
2361
- "description": "The name of the environment, e.g. 'qa', 'staging', 'production'.",
2362
- "minLength": 1,
2363
- },
2364
- "url": {
2365
- "type": "string",
2366
- "description": "When set, this will expose buttons in various places for the current environment in GitLab, that will take you to the defined URL.",
2367
- "format": "uri",
2368
- },
2369
- "on_stop": {
2370
- "type": "string",
2371
- "description": "The name of a job to execute when the environment is about to be stopped.",
2372
- },
2373
- "action": {
2374
- "enum": [
2375
- "start",
2376
- "prepare",
2377
- "stop",
2378
- "verify",
2379
- "access",
2380
- ],
2381
- "description": "Specifies what this job will do. 'start' (default) indicates the job will start the deployment. 'prepare'/'verify'/'access' indicates this will not affect the deployment. 'stop' indicates this will stop the deployment.",
2382
- "default": "start",
2383
- },
2384
- "auto_stop_in": {
2385
- "type": "string",
2386
- "description": "The amount of time it should take before GitLab will automatically stop the environment. Supports a wide variety of formats, e.g. '1 week', '3 mins 4 sec', '2 hrs 20 min', '2h20min', '6 mos 1 day', '47 yrs 6 mos and 4d', '3 weeks and 2 days'.",
2387
- },
2388
- "kubernetes": {
2389
- "type": "object",
2390
- "description": "Used to configure the kubernetes deployment for this environment. This is currently not supported for kubernetes clusters that are managed by GitLab.",
2391
- "properties": {
2392
- "agent": {
2393
- "type": "string",
2394
- "description": "Specifies the GitLab Agent for Kubernetes. The format is `path/to/agent/project:agent-name`.",
2395
- },
2396
- "namespace": {
2397
- "type": "string",
2398
- "description": "Deprecated. Use `dashboard.namespace` instead. The kubernetes namespace where this environment's dashboard should be deployed to.",
2399
- "minLength": 1,
2400
- },
2401
- "flux_resource_path": {
2402
- "type": "string",
2403
- "description": "Deprecated. Use `dashboard.flux_resource_path` instead. The Flux resource path to associate with this environment. This must be the full resource path. For example, 'helm.toolkit.fluxcd.io/v2/namespaces/gitlab-agent/helmreleases/gitlab-agent'.",
2404
- },
2405
- "managed_resources": {
2406
- "type": "object",
2407
- "description": "Used to configure the managed resources for this environment.",
2408
- "properties": {
2409
- "enabled": {
2410
- "type": "boolean",
2411
- "description": "Indicates whether the managed resources are enabled for this environment.",
2412
- "default": true,
2413
- },
2414
- },
2415
- },
2416
- "dashboard": {
2417
- "type": "object",
2418
- "description": "Used to configure the dashboard for this environment.",
2419
- "properties": {
2420
- "namespace": {
2421
- "type": "string",
2422
- "description": "The kubernetes namespace where the dashboard for this environment should be deployed to.",
2423
- "minLength": 1,
2424
- },
2425
- "flux_resource_path": {
2426
- "type": "string",
2427
- "description": "The Flux resource path to associate with this environment. This must be the full resource path. For example, 'helm.toolkit.fluxcd.io/v2/namespaces/gitlab-agent/helmreleases/gitlab-agent'.",
2428
- },
2429
- },
2430
- },
2431
- },
2432
- },
2433
- "deployment_tier": {
2434
- "type": "string",
2435
- "description": "Explicitly specifies the tier of the deployment environment if non-standard environment name is used.",
2436
- },
2437
- },
2438
- "required": [
2439
- "name",
2440
- ],
2441
- },
2442
- ],
2443
- },
2444
- "release": {
2445
- "type": "object",
2446
- "description": "Indicates that the job creates a Release.",
2447
- "additionalProperties": false,
2448
- "properties": {
2449
- "tag_name": {
2450
- "type": "string",
2451
- "description": "The tag_name must be specified. It can refer to an existing Git tag or can be specified by the user.",
2452
- "minLength": 1,
2453
- },
2454
- "tag_message": {
2455
- "type": "string",
2456
- "description": "Message to use if creating a new annotated tag.",
2457
- },
2458
- "description": {
2459
- "type": "string",
2460
- "description": "Specifies the longer description of the Release.",
2461
- "minLength": 1,
2462
- },
2463
- "name": {
2464
- "type": "string",
2465
- "description": "The Release name. If omitted, it is populated with the value of release: tag_name.",
2466
- },
2467
- "ref": {
2468
- "type": "string",
2469
- "description": "If the release: tag_name doesn’t exist yet, the release is created from ref. ref can be a commit SHA, another tag name, or a branch name.",
2470
- },
2471
- "milestones": {
2472
- "type": "array",
2473
- "description": "The title of each milestone the release is associated with.",
2474
- "items": {
2475
- "type": "string",
2476
- },
2477
- },
2478
- "released_at": {
2479
- "type": "string",
2480
- "description": "The date and time when the release is ready. Defaults to the current date and time if not defined. Should be enclosed in quotes and expressed in ISO 8601 format.",
2481
- "format": "date-time",
2482
- },
2483
- "assets": {
2484
- "type": "object",
2485
- "additionalProperties": false,
2486
- "properties": {
2487
- "links": {
2488
- "type": "array",
2489
- "description": "Include asset links in the release.",
2490
- "items": {
2491
- "type": "object",
2492
- "additionalProperties": false,
2493
- "properties": {
2494
- "name": {
2495
- "type": "string",
2496
- "description": "The name of the link.",
2497
- "minLength": 1,
2498
- },
2499
- "url": {
2500
- "type": "string",
2501
- "description": "The URL to download a file.",
2502
- "minLength": 1,
2503
- },
2504
- "filepath": {
2505
- "type": "string",
2506
- "description": "The redirect link to the url.",
2507
- },
2508
- "link_type": {
2509
- "type": "string",
2510
- "description": "The content kind of what users can download via url.",
2511
- "enum": [
2512
- "runbook",
2513
- "package",
2514
- "image",
2515
- "other",
2516
- ],
2517
- },
2518
- },
2519
- "required": [
2520
- "name",
2521
- "url",
2522
- ],
2523
- },
2524
- "minItems": 1,
2525
- },
2526
- },
2527
- "required": [
2528
- "links",
2529
- ],
2530
- },
2531
- },
2532
- "required": [
2533
- "tag_name",
2534
- "description",
2535
- ],
2536
- },
2537
- "coverage": {
2538
- "type": "string",
2539
- "description": "Must be a regular expression, optionally but recommended to be quoted, and must be surrounded with '/'. Example: '/Code coverage: \\d+\\.\\d+/'",
2540
- "format": "regex",
2541
- },
2542
- "retry": {
2543
- "$ref": "#/definitions/retry",
2544
- },
2545
- "parallel": {
2546
- "$ref": "#/definitions/parallel",
2547
- },
2548
- "interruptible": {
2549
- "$ref": "#/definitions/interruptible",
2550
- },
2551
- "resource_group": {
2552
- "type": "string",
2553
- "description": "Limit job concurrency. Can be used to ensure that the Runner will not run certain jobs simultaneously.",
2554
- },
2555
- "trigger": {
2556
- "markdownDescription": "Trigger allows you to define downstream pipeline trigger. When a job created from trigger definition is started by GitLab, a downstream pipeline gets created. [Learn More](https://docs.gitlab.com/ci/yaml/#trigger).",
2557
- "oneOf": [
2558
- {
2559
- "type": "object",
2560
- "markdownDescription": "Trigger a multi-project pipeline. [Learn More](https://docs.gitlab.com/ci/pipelines/downstream_pipelines/#multi-project-pipelines).",
2561
- "additionalProperties": false,
2562
- "properties": {
2563
- "project": {
2564
- "description": "Path to the project, e.g. `group/project`, or `group/sub-group/project`.",
2565
- "type": "string",
2566
- },
2567
- "branch": {
2568
- "description": "The branch name that a downstream pipeline will use",
2569
- "type": "string",
2570
- },
2571
- "strategy": {
2572
- "description": "You can mirror or depend on the pipeline status from the triggered pipeline to the source bridge job by using strategy: `depend` or `mirror`",
2573
- "type": "string",
2574
- "enum": [
2575
- "depend",
2576
- "mirror",
2577
- ],
2578
- },
2579
- "inputs": {
2580
- "$ref": "#/definitions/inputs",
2581
- },
2582
- "forward": {
2583
- "description": "Specify what to forward to the downstream pipeline.",
2584
- "type": "object",
2585
- "additionalProperties": false,
2586
- "properties": {
2587
- "yaml_variables": {
2588
- "type": "boolean",
2589
- "description": "Variables defined in the trigger job are passed to downstream pipelines.",
2590
- "default": true,
2591
- },
2592
- "pipeline_variables": {
2593
- "type": "boolean",
2594
- "description": "Variables added for manual pipeline runs and scheduled pipelines are passed to downstream pipelines.",
2595
- "default": false,
2596
- },
2597
- },
2598
- },
2599
- },
2600
- "required": [
2601
- "project",
2602
- ],
2603
- "dependencies": {
2604
- "branch": [
2605
- "project",
2606
- ],
2607
- },
2608
- },
2609
- {
2610
- "type": "object",
2611
- "description": "Trigger a child pipeline. [Learn More](https://docs.gitlab.com/ci/pipelines/downstream_pipelines/#parent-child-pipelines).",
2612
- "additionalProperties": false,
2613
- "properties": {
2614
- "include": {
2615
- "oneOf": [
2616
- {
2617
- "description": "Relative path from local repository root (`/`) to the local YAML file to define the pipeline configuration.",
2618
- "type": "string",
2619
- "format": "uri-reference",
2620
- },
2621
- {
2622
- "type": "array",
2623
- "description": "References a local file or an artifact from another job to define the pipeline configuration.",
2624
- "maxItems": 3,
2625
- "items": {
2626
- "oneOf": [
2627
- {
2628
- "type": "object",
2629
- "additionalProperties": false,
2630
- "properties": {
2631
- "local": {
2632
- "description": "Relative path from local repository root (`/`) to the local YAML file to define the pipeline configuration.",
2633
- "type": "string",
2634
- "format": "uri-reference",
2635
- },
2636
- "inputs": {
2637
- "$ref": "#/definitions/inputs",
2638
- },
2639
- },
2640
- "required": [
2641
- "local",
2642
- ],
2643
- },
2644
- {
2645
- "type": "object",
2646
- "additionalProperties": false,
2647
- "properties": {
2648
- "template": {
2649
- "description": "Name of the template YAML file to use in the pipeline configuration.",
2650
- "type": "string",
2651
- "format": "uri-reference",
2652
- },
2653
- "inputs": {
2654
- "$ref": "#/definitions/inputs",
2655
- },
2656
- },
2657
- "required": [
2658
- "template",
2659
- ],
2660
- },
2661
- {
2662
- "type": "object",
2663
- "additionalProperties": false,
2664
- "properties": {
2665
- "artifact": {
2666
- "description": "Relative path to the generated YAML file which is extracted from the artifacts and used as the configuration for triggering the child pipeline.",
2667
- "type": "string",
2668
- "format": "uri-reference",
2669
- },
2670
- "job": {
2671
- "description": "Job name which generates the artifact",
2672
- "type": "string",
2673
- },
2674
- "inputs": {
2675
- "$ref": "#/definitions/inputs",
2676
- },
2677
- },
2678
- "required": [
2679
- "artifact",
2680
- "job",
2681
- ],
2682
- },
2683
- {
2684
- "type": "object",
2685
- "additionalProperties": false,
2686
- "properties": {
2687
- "project": {
2688
- "description": "Path to another private project under the same GitLab instance, like `group/project` or `group/sub-group/project`.",
2689
- "type": "string",
2690
- },
2691
- "ref": {
2692
- "description": "Branch/Tag/Commit hash for the target project.",
2693
- "minLength": 1,
2694
- "type": "string",
2695
- },
2696
- "file": {
2697
- "description": "Relative path from repository root (`/`) to the pipeline configuration YAML file.",
2698
- "type": "string",
2699
- "format": "uri-reference",
2700
- },
2701
- "inputs": {
2702
- "$ref": "#/definitions/inputs",
2703
- },
2704
- },
2705
- "required": [
2706
- "project",
2707
- "file",
2708
- ],
2709
- },
2710
- {
2711
- "type": "object",
2712
- "additionalProperties": false,
2713
- "properties": {
2714
- "component": {
2715
- "description": "Local path to component directory or full path to external component directory.",
2716
- "type": "string",
2717
- "format": "uri-reference",
2718
- },
2719
- "inputs": {
2720
- "$ref": "#/definitions/inputs",
2721
- },
2722
- },
2723
- "required": [
2724
- "component",
2725
- ],
2726
- },
2727
- {
2728
- "type": "object",
2729
- "additionalProperties": false,
2730
- "properties": {
2731
- "remote": {
2732
- "description": "URL to a `yaml`/`yml` template file using HTTP/HTTPS.",
2733
- "type": "string",
2734
- "format": "uri-reference",
2735
- },
2736
- "inputs": {
2737
- "$ref": "#/definitions/inputs",
2738
- },
2739
- },
2740
- "required": [
2741
- "remote",
2742
- ],
2743
- },
2744
- ],
2745
- },
2746
- },
2747
- ],
2748
- },
2749
- "strategy": {
2750
- "description": "You can mirror or depend on the pipeline status from the triggered pipeline to the source bridge job by using strategy: `depend` or `mirror`",
2751
- "type": "string",
2752
- "enum": [
2753
- "depend",
2754
- "mirror",
2755
- ],
2756
- },
2757
- "forward": {
2758
- "description": "Specify what to forward to the downstream pipeline.",
2759
- "type": "object",
2760
- "additionalProperties": false,
2761
- "properties": {
2762
- "yaml_variables": {
2763
- "type": "boolean",
2764
- "description": "Variables defined in the trigger job are passed to downstream pipelines.",
2765
- "default": true,
2766
- },
2767
- "pipeline_variables": {
2768
- "type": "boolean",
2769
- "description": "Variables added for manual pipeline runs and scheduled pipelines are passed to downstream pipelines.",
2770
- "default": false,
2771
- },
2772
- },
2773
- },
2774
- },
2775
- },
2776
- {
2777
- "markdownDescription": "Path to the project, e.g. `group/project`, or `group/sub-group/project`. [Learn More](https://docs.gitlab.com/ci/yaml/#trigger).",
2778
- "type": "string",
2779
- },
2780
- ],
2781
- },
2782
- "inherit": {
2783
- "type": "object",
2784
- "markdownDescription": "Controls inheritance of globally-defined defaults and variables. Boolean values control inheritance of all default: or variables: keywords. To inherit only a subset of default: or variables: keywords, specify what you wish to inherit. Anything not listed is not inherited. [Learn More](https://docs.gitlab.com/ci/yaml/#inherit).",
2785
- "properties": {
2786
- "default": {
2787
- "markdownDescription": "Whether to inherit all globally-defined defaults or not. Or subset of inherited defaults. [Learn more](https://docs.gitlab.com/ci/yaml/#inheritdefault).",
2788
- "oneOf": [
2789
- {
2790
- "type": "boolean",
2791
- },
2792
- {
2793
- "type": "array",
2794
- "items": {
2795
- "type": "string",
2796
- "enum": [
2797
- "after_script",
2798
- "artifacts",
2799
- "before_script",
2800
- "cache",
2801
- "image",
2802
- "interruptible",
2803
- "retry",
2804
- "services",
2805
- "tags",
2806
- "timeout",
2807
- ],
2808
- },
2809
- },
2810
- ],
2811
- },
2812
- "variables": {
2813
- "markdownDescription": "Whether to inherit all globally-defined variables or not. Or subset of inherited variables. [Learn More](https://docs.gitlab.com/ci/yaml/#inheritvariables).",
2814
- "oneOf": [
2815
- {
2816
- "type": "boolean",
2817
- },
2818
- {
2819
- "type": "array",
2820
- "items": {
2821
- "type": "string",
2822
- },
2823
- },
2824
- ],
2825
- },
2826
- },
2827
- "additionalProperties": false,
2828
- },
2829
- "publish": {
2830
- "description": "Deprecated. Use `pages.publish` instead. A path to a directory that contains the files to be published with Pages.",
2831
- "type": "string",
2832
- },
2833
- "pages": {
2834
- "oneOf": [
2835
- {
2836
- "type": "object",
2837
- "additionalProperties": false,
2838
- "properties": {
2839
- "path_prefix": {
2840
- "type": "string",
2841
- "markdownDescription": "The GitLab Pages URL path prefix used in this version of pages. The given value is converted to lowercase, shortened to 63 bytes, and everything except alphanumeric characters is replaced with a hyphen. Leading and trailing hyphens are not permitted.",
2842
- },
2843
- "expire_in": {
2844
- "type": "string",
2845
- "markdownDescription": "How long the deployment should be active. Deployments that have expired are no longer available on the web. Supports a wide variety of formats, e.g. '1 week', '3 mins 4 sec', '2 hrs 20 min', '2h20min', '6 mos 1 day', '47 yrs 6 mos and 4d', '3 weeks and 2 days'. Set to 'never' to prevent extra deployments from expiring. [Learn More](https://docs.gitlab.com/ci/yaml/#pagesexpire_in).",
2846
- },
2847
- "publish": {
2848
- "type": "string",
2849
- "markdownDescription": "A path to a directory that contains the files to be published with Pages.",
2850
- },
2851
- },
2852
- },
2853
- {
2854
- "type": "boolean",
2855
- "markdownDescription": "Whether this job should trigger a Pages deploy (Replaces the need to name the job `pages`)",
2856
- "default": false,
2857
- },
2858
- ],
2859
- },
2860
- },
2861
- "oneOf": [
2862
- {
2863
- "properties": {
2864
- "when": {
2865
- "enum": [
2866
- "delayed",
2867
- ],
2868
- },
2869
- },
2870
- "required": [
2871
- "when",
2872
- "start_in",
2873
- ],
2874
- },
2875
- {
2876
- "properties": {
2877
- "when": {
2878
- "not": {
2879
- "enum": [
2880
- "delayed",
2881
- ],
2882
- },
2883
- },
2884
- },
2885
- },
2886
- ],
2887
- },
2888
- "tags": {
2889
- "type": "array",
2890
- "minItems": 1,
2891
- "markdownDescription": "Used to select runners from the list of available runners. A runner must have all tags listed here to run the job. [Learn More](https://docs.gitlab.com/ci/yaml/#tags).",
2892
- "items": {
2893
- "anyOf": [
2894
- {
2895
- "type": "string",
2896
- "minLength": 1,
2897
- },
2898
- {
2899
- "type": "array",
2900
- "minItems": 1,
2901
- "items": {
2902
- "type": "string",
2903
- },
2904
- },
2905
- ],
2906
- },
2907
- },
2908
- "hooks": {
2909
- "type": "object",
2910
- "markdownDescription": "Specifies lists of commands to execute on the runner at certain stages of job execution. [Learn More](https://docs.gitlab.com/ci/yaml/#hooks).",
2911
- "properties": {
2912
- "pre_get_sources_script": {
2913
- "$ref": "#/definitions/optional_script",
2914
- "markdownDescription": "Specifies a list of commands to execute on the runner before updating the Git repository and any submodules. [Learn More](https://docs.gitlab.com/ci/yaml/#hookspre_get_sources_script).",
2915
- },
2916
- },
2917
- "additionalProperties": false,
2918
- },
2919
- "step": {
2920
- "description": "Any of these step use cases are valid.",
2921
- "oneOf": [
2922
- {
2923
- "description": "Run a referenced step.",
2924
- "type": "object",
2925
- "additionalProperties": false,
2926
- "required": [
2927
- "name",
2928
- "step",
2929
- ],
2930
- "properties": {
2931
- "name": {
2932
- "$ref": "#/definitions/stepName",
2933
- },
2934
- "env": {
2935
- "$ref": "#/definitions/stepNamedStrings",
2936
- },
2937
- "inputs": {
2938
- "$ref": "#/definitions/stepNamedValues",
2939
- },
2940
- "step": {
2941
- "oneOf": [
2942
- {
2943
- "type": "string",
2944
- },
2945
- {
2946
- "$ref": "#/definitions/stepGitReference",
2947
- },
2948
- {
2949
- "$ref": "#/definitions/stepOciReference",
2950
- },
2951
- ],
2952
- },
2953
- },
2954
- },
2955
- {
2956
- "description": "Run a sequence of steps.",
2957
- "oneOf": [
2958
- {
2959
- "type": "object",
2960
- "additionalProperties": false,
2961
- "required": [
2962
- "run",
2963
- ],
2964
- "properties": {
2965
- "env": {
2966
- "$ref": "#/definitions/stepNamedStrings",
2967
- },
2968
- "run": {
2969
- "type": "array",
2970
- "items": {
2971
- "$ref": "#/definitions/step",
2972
- },
2973
- },
2974
- "outputs": {
2975
- "$ref": "#/definitions/stepNamedValues",
2976
- },
2977
- "delegate": {
2978
- "type": "string",
2979
- },
2980
- },
2981
- },
2982
- ],
2983
- },
2984
- {
2985
- "description": "Run an action.",
2986
- "type": "object",
2987
- "additionalProperties": false,
2988
- "required": [
2989
- "name",
2990
- "action",
2991
- ],
2992
- "properties": {
2993
- "name": {
2994
- "$ref": "#/definitions/stepName",
2995
- },
2996
- "env": {
2997
- "$ref": "#/definitions/stepNamedStrings",
2998
- },
2999
- "inputs": {
3000
- "$ref": "#/definitions/stepNamedValues",
3001
- },
3002
- "action": {
3003
- "type": "string",
3004
- "minLength": 1,
3005
- },
3006
- },
3007
- },
3008
- {
3009
- "description": "Run a script.",
3010
- "type": "object",
3011
- "additionalProperties": false,
3012
- "required": [
3013
- "name",
3014
- "script",
3015
- ],
3016
- "properties": {
3017
- "name": {
3018
- "$ref": "#/definitions/stepName",
3019
- },
3020
- "env": {
3021
- "$ref": "#/definitions/stepNamedStrings",
3022
- },
3023
- "script": {
3024
- "type": "string",
3025
- "minLength": 1,
3026
- },
3027
- },
3028
- },
3029
- {
3030
- "description": "Exec a binary.",
3031
- "type": "object",
3032
- "additionalProperties": false,
3033
- "required": [
3034
- "exec",
3035
- ],
3036
- "properties": {
3037
- "env": {
3038
- "$ref": "#/definitions/stepNamedStrings",
3039
- },
3040
- "exec": {
3041
- "description": "Exec is a command to run.",
3042
- "$ref": "#/definitions/stepExec",
3043
- },
3044
- },
3045
- },
3046
- ],
3047
- },
3048
- "stepName": {
3049
- "type": "string",
3050
- },
3051
- "stepNamedStrings": {
3052
- "type": "object",
3053
- "patternProperties": {
3054
- "^[a-zA-Z_][a-zA-Z0-9_]*$": {
3055
- "type": "string",
3056
- },
3057
- },
3058
- "additionalProperties": false,
3059
- },
3060
- "stepNamedValues": {
3061
- "type": "object",
3062
- "patternProperties": {
3063
- "^[a-zA-Z_][a-zA-Z0-9_]*$": {
3064
- "type": [
3065
- "string",
3066
- "number",
3067
- "boolean",
3068
- "null",
3069
- "array",
3070
- "object",
3071
- ],
3072
- },
3073
- },
3074
- "additionalProperties": false,
3075
- },
3076
- "stepGitReference": {
3077
- "type": "object",
3078
- "description": "GitReference is a reference to a step in a Git repository.",
3079
- "additionalProperties": false,
3080
- "required": [
3081
- "git",
3082
- ],
3083
- "properties": {
3084
- "git": {
3085
- "type": "object",
3086
- "additionalProperties": false,
3087
- "required": [
3088
- "url",
3089
- "rev",
3090
- ],
3091
- "properties": {
3092
- "url": {
3093
- "type": "string",
3094
- },
3095
- "dir": {
3096
- "type": "string",
3097
- },
3098
- "rev": {
3099
- "type": "string",
3100
- },
3101
- "file": {
3102
- "type": "string",
3103
- },
3104
- },
3105
- },
3106
- },
3107
- },
3108
- "stepOciReference": {
3109
- "type": "object",
3110
- "description": "OCIReference is a reference to a step hosted in an OCI repository.",
3111
- "additionalProperties": false,
3112
- "required": [
3113
- "oci",
3114
- ],
3115
- "properties": {
3116
- "oci": {
3117
- "type": "object",
3118
- "additionalProperties": false,
3119
- "required": [
3120
- "registry",
3121
- "repository",
3122
- "tag",
3123
- ],
3124
- "properties": {
3125
- "registry": {
3126
- "type": "string",
3127
- "description": "The <host>[:<port>] of the container registry server.",
3128
- "examples": [
3129
- "registry.gitlab.com",
3130
- ],
3131
- },
3132
- "repository": {
3133
- "type": "string",
3134
- "description": "A path within the registry containing related OCI images. Typically the namespace, project, and image name.",
3135
- "examples": [
3136
- "my_group/my_project/image",
3137
- ],
3138
- },
3139
- "tag": {
3140
- "type": "string",
3141
- "description": "A pointer to the image manifest hosted in the OCI repository.",
3142
- "examples": [
3143
- "latest",
3144
- "1",
3145
- "1.5",
3146
- "1.5.0",
3147
- ],
3148
- },
3149
- "dir": {
3150
- "type": "string",
3151
- "description": "A directory inside the OCI image where the step can be found.",
3152
- "examples": [
3153
- "/my_steps/hello_world",
3154
- ],
3155
- },
3156
- "file": {
3157
- "type": "string",
3158
- "description": "The name of the file that defines the step, defaults to step.yml.",
3159
- "examples": [
3160
- "step.yml",
3161
- ],
3162
- },
3163
- },
3164
- },
3165
- },
3166
- },
3167
- "stepExec": {
3168
- "type": "object",
3169
- "additionalProperties": false,
3170
- "required": [
3171
- "command",
3172
- ],
3173
- "properties": {
3174
- "command": {
3175
- "type": "array",
3176
- "description": "Command are the parameters to the system exec API. It does not invoke a shell.",
3177
- "items": {
3178
- "type": "string",
3179
- },
3180
- "minItems": 1,
3181
- },
3182
- "work_dir": {
3183
- "type": "string",
3184
- "description": "WorkDir is the working directly in which `command` will be exec'ed.",
3185
- },
3186
- },
3187
- },
3188
- },
3189
- };
3190
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRztJQUNsQixTQUFTLEVBQUUseUNBQXlDO0lBQ3BELEtBQUssRUFBRSxtQ0FBbUM7SUFDMUMscUJBQXFCLEVBQUUsOFRBQThUO0lBQ3JWLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLFlBQVksRUFBRTtRQUNWLFNBQVMsRUFBRTtZQUNQLE1BQU0sRUFBRSxRQUFRO1lBQ2hCLFFBQVEsRUFBRSxLQUFLO1NBQ2xCO1FBQ0QsTUFBTSxFQUFFO1lBQ0osTUFBTSxFQUFFLFFBQVE7WUFDaEIscUJBQXFCLEVBQUUsa09BQWtPO1lBQ3pQLFlBQVksRUFBRTtnQkFDVixRQUFRLEVBQUU7b0JBQ04sTUFBTSxFQUFFLDRCQUE0QjtpQkFDdkM7YUFDSjtZQUNELHNCQUFzQixFQUFFLEtBQUs7U0FDaEM7UUFDRCxPQUFPLEVBQUU7WUFDTCxNQUFNLEVBQUUscUJBQXFCO1lBQzdCLHFCQUFxQixFQUFFLDhOQUE4TjtTQUN4UDtRQUNELFVBQVUsRUFBRTtZQUNSLE1BQU0sRUFBRSx3QkFBd0I7WUFDaEMscUJBQXFCLEVBQUUsaU9BQWlPO1NBQzNQO1FBQ0QsZUFBZSxFQUFFO1lBQ2IsTUFBTSxFQUFFLDZCQUE2QjtZQUNyQyxxQkFBcUIsRUFBRSxzT0FBc087U0FDaFE7UUFDRCxjQUFjLEVBQUU7WUFDWixNQUFNLEVBQUUsNEJBQTRCO1lBQ3BDLHFCQUFxQixFQUFFLHFPQUFxTztTQUMvUDtRQUNELFdBQVcsRUFBRTtZQUNULE1BQU0sRUFBRSwrQkFBK0I7U0FDMUM7UUFDRCxPQUFPLEVBQUU7WUFDTCxNQUFNLEVBQUUscUJBQXFCO1lBQzdCLHFCQUFxQixFQUFFLDhOQUE4TjtTQUN4UDtRQUNELFlBQVksRUFBRTtZQUNWLE1BQU0sRUFBRSwwQkFBMEI7U0FDckM7UUFDRCxTQUFTLEVBQUU7WUFDUCxNQUFN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aEIsYUFBYSxFQUFFLCtEQUErRDs0QkFDOUUsVUFBVSxFQUFFO2dDQUNSLFFBQVE7Z0NBQ1IsR0FBRztnQ0FDSCxLQUFLO2dDQUNMLE9BQU87NkJBQ1Y7eUJBQ0o7d0JBQ0QsS0FBSyxFQUFFOzRCQUNILE1BQU0sRUFBRSxRQUFROzRCQUNoQixhQUFhLEVBQUUsK0RBQStEOzRCQUM5RSxVQUFVLEVBQUU7Z0NBQ1IsdUJBQXVCOzZCQUMxQjt5QkFDSjt3QkFDRCxNQUFNLEVBQUU7NEJBQ0osTUFBTSxFQUFFLFFBQVE7NEJBQ2hCLGFBQWEsRUFBRSxtRUFBbUU7NEJBQ2xGLFVBQVUsRUFBRTtnQ0FDUixVQUFVOzZCQUNiO3lCQUNKO3FCQUNKO2lCQUNKO2FBQ0o7U0FDSjtRQUNELFVBQVUsRUFBRTtZQUNSLE1BQU0sRUFBRSxRQUFRO1lBQ2hCLHNCQUFzQixFQUFFLEtBQUs7WUFDN0IsVUFBVSxFQUFFO2dCQUNSLFNBQVM7YUFDWjtZQUNELFlBQVksRUFBRTtnQkFDVixTQUFTLEVBQUU7b0JBQ1AsTUFBTSxFQUFFLE9BQU87b0JBQ2YsYUFBYSxFQUFFLGdGQUFnRjtvQkFDL0YsT0FBTyxFQUFFO3dCQUNMLE1BQU0sRUFBRSxRQUFRO3FCQUNuQjtvQkFDRCxVQUFVLEVBQUUsQ0FBQztpQkFDaEI7Z0JBQ0QsVUFBVSxFQUFFO29CQUNSLE1BQU0sRUFBRSxRQUFRO29CQUNoQixhQUFhLEVBQUUscUVBQXFFO2lCQUN2RjthQUNKO1NBQ0o7S0FDSjtDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3Qgc2NoZW1hID0ge1xuICAgIFwiJHNjaGVtYVwiOiBcImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDcvc2NoZW1hI1wiLFxuICAgIFwiJGlkXCI6IFwiaHR0cHM6Ly9naXRsYWIuY29tLy5naXRsYWItY2kueW1sXCIsXG4gICAgXCJtYXJrZG93bkRlc2NyaXB0aW9uXCI6IFwiR2l0TGFiIGhhcyBhIGJ1aWx0LWluIHNvbHV0aW9uIGZvciBkb2luZyBDSSBjYWxsZWQgR2l0TGFiIENJLiBJdCBpcyBjb25maWd1cmVkIGJ5IHN1cHBseWluZyBhIGZpbGUgY2FsbGVkIGAuZ2l0bGFiLWNpLnltbGAsIHdoaWNoIHdpbGwgbGlzdCBhbGwgdGhlIGpvYnMgdGhhdCBhcmUgZ29pbmcgdG8gcnVuIGZvciB0aGUgcHJvamVjdC4gQSBmdWxsIGxpc3Qgb2YgYWxsIG9wdGlvbnMgY2FuIGJlIGZvdW5kIFtoZXJlXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9jaS95YW1sLykuIFtMZWFybiBNb3JlXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9jaS8pLlwiLFxuICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiJHNjaGVtYVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZm9ybWF0XCI6IFwidXJpXCIsXG4gICAgICAgIH0sXG4gICAgICAgIFwic3BlY1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIlNwZWNpZmljYXRpb24gZm9yIHBpcGVsaW5lIGNvbmZpZ3VyYXRpb24uIE11c3QgYmUgZGVjbGFyZWQgYXQgdGhlIHRvcCBvZiBhIGNvbmZpZ3VyYXRpb24gZmlsZSwgaW4gYSBoZWFkZXIgc2VjdGlvbiBzZXBhcmF0ZWQgZnJvbSB0aGUgcmVzdCBvZiB0aGUgY29uZmlndXJhdGlvbiB3aXRoIGAtLS1gLiBbTGVhcm4gTW9yZV0oaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vY2kveWFtbC8jc3BlYykuXCIsXG4gICAgICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgIFwiaW5wdXRzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9jb25maWdJbnB1dHNcIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICAgIH0sXG4gICAgICAgIFwiaW1hZ2VcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9pbWFnZVwiLFxuICAgICAgICAgICAgXCJtYXJrZG93bkRlc2NyaXB0aW9uXCI6IFwiRGVmaW5pbmcgYGltYWdlYCBnbG9iYWxseSBpcyBkZXByZWNhdGVkLiBVc2UgW2BkZWZhdWx0YF0oaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vY2kveWFtbC8jZGVmYXVsdCkgaW5zdGVhZC4gW0xlYXJuIG1vcmVdKGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2NpL3lhbWwvI2dsb2JhbGx5LWRlZmluZWQtaW1hZ2Utc2VydmljZXMtY2FjaGUtYmVmb3JlX3NjcmlwdC1hZnRlcl9zY3JpcHQpLlwiLFxuICAgICAgICB9LFxuICAgICAgICBcInNlcnZpY2VzXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvc2VydmljZXNcIixcbiAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIkRlZmluaW5nIGBzZXJ2aWNlc2AgZ2xvYmFsbHkgaXMgZGVwcmVjYXRlZC4gVXNlIFtgZGVmYXVsdGBdKGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2NpL3lhbWwvI2RlZmF1bHQpIGluc3RlYWQuIFtMZWFybiBtb3JlXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9jaS95YW1sLyNnbG9iYWxseS1kZWZpbmVkLWltYWdlLXNlcnZpY2VzLWNhY2hlLWJlZm9yZV9zY3JpcHQtYWZ0ZXJfc2NyaXB0KS5cIixcbiAgICAgICAgfSxcbiAgICAgICAgXCJiZWZvcmVfc2NyaXB0XCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvYmVmb3JlX3NjcmlwdFwiLFxuICAgICAgICAgICAgXCJtYXJrZG93bkRlc2NyaXB0aW9uXCI6IFwiRGVmaW5pbmcgYGJlZm9yZV9zY3JpcHRgIGdsb2JhbGx5IGlzIGRlcHJlY2F0ZWQuIFVzZSBbYGRlZmF1bHRgXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9jaS95YW1sLyNkZWZhdWx0KSBpbnN0ZWFkLiBbTGVhcm4gbW9yZV0oaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vY2kveWFtbC8jZ2xvYmFsbHktZGVmaW5lZC1pbWFnZS1zZXJ2aWNlcy1jYWNoZS1iZWZvcmVfc2NyaXB0LWFmdGVyX3NjcmlwdCkuXCIsXG4gICAgICAgIH0sXG4gICAgICAgIFwiYWZ0ZXJfc2NyaXB0XCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvYWZ0ZXJfc2NyaXB0XCIsXG4gICAgICAgICAgICBcIm1hcmtkb3duRGVzY3JpcHRpb25cIjogXCJEZWZpbmluZyBgYWZ0ZXJfc2NyaXB0YCBnbG9iYWxseSBpcyBkZXByZWNhdGVkLiBVc2UgW2BkZWZhdWx0YF0oaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vY2kveWFtbC8jZGVmYXVsdCkgaW5zdGVhZC4gW0xlYXJuIG1vcmVdKGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2NpL3lhbWwvI2dsb2JhbGx5LWRlZmluZWQtaW1hZ2Utc2VydmljZXMtY2FjaGUtYmVmb3JlX3NjcmlwdC1hZnRlcl9zY3JpcHQpLlwiLFxuICAgICAgICB9LFxuICAgICAgICBcInZhcmlhYmxlc1wiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2dsb2JhbFZhcmlhYmxlc1wiLFxuICAgICAgICB9LFxuICAgICAgICBcImNhY2hlXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvY2FjaGVcIixcbiAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIkRlZmluaW5nIGBjYWNoZWAgZ2xvYmFsbHkgaXMgZGVwcmVjYXRlZC4gVXNlIFtgZGVmYXVsdGBdKGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2NpL3lhbWwvI2RlZmF1bHQpIGluc3RlYWQuIFtMZWFybiBtb3JlXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9jaS95YW1sLyNnbG9iYWxseS1kZWZpbmVkLWltYWdlLXNlcnZpY2VzLWNhY2hlLWJlZm9yZV9zY3JpcHQtYWZ0ZXJfc2NyaXB0KS5cIixcbiAgICAgICAgfSxcbiAgICAgICAgXCIhcmVmZXJlbmNlXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvIXJlZmVyZW5jZVwiLFxuICAgICAgICB9LFxuICAgICAgICBcImRlZmF1bHRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgIFwiYWZ0ZXJfc2NyaXB0XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9hZnRlcl9zY3JpcHRcIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiYXJ0aWZhY3RzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9hcnRpZmFjdHNcIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiYmVmb3JlX3NjcmlwdFwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvYmVmb3JlX3NjcmlwdFwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJob29rc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvaG9va3NcIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiY2FjaGVcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2NhY2hlXCIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcImltYWdlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9pbWFnZVwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJpbnRlcnJ1cHRpYmxlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9pbnRlcnJ1cHRpYmxlXCIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcImlkX3Rva2Vuc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvaWRfdG9rZW5zXCIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcImlkZW50aXR5XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9pZGVudGl0eVwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJyZXRyeVwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvcmV0cnlcIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwic2VydmljZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3NlcnZpY2VzXCIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcInRhZ3NcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3RhZ3NcIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwidGltZW91dFwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvdGltZW91dFwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCIhcmVmZXJlbmNlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy8hcmVmZXJlbmNlXCIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgICBcInN0YWdlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgXCJtYXJrZG93bkRlc2NyaXB0aW9uXCI6IFwiR3JvdXBzIGpvYnMgaW50byBzdGFnZXMuIEFsbCBqb2JzIGluIG9uZSBzdGFnZSBtdXN0IGNvbXBsZXRlIGJlZm9yZSBuZXh0IHN0YWdlIGlzIGV4ZWN1dGVkLiBEZWZhdWx0cyB0byBbJ2J1aWxkJywgJ3Rlc3QnLCAnZGVwbG95J10uIFtMZWFybiBNb3JlXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9jaS95YW1sLyNzdGFnZXMpLlwiLFxuICAgICAgICAgICAgXCJkZWZhdWx0XCI6IFtcbiAgICAgICAgICAgICAgICBcImJ1aWxkXCIsXG4gICAgICAgICAgICAgICAgXCJ0ZXN0XCIsXG4gICAgICAgICAgICAgICAgXCJkZXBsb3lcIixcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICBcImFueU9mXCI6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcInVuaXF1ZUl0ZW1zXCI6IHRydWUsXG4gICAgICAgICAgICBcIm1pbkl0ZW1zXCI6IDEsXG4gICAgICAgIH0sXG4gICAgICAgIFwiaW5jbHVkZVwiOiB7XG4gICAgICAgICAgICBcIm1hcmtkb3duRGVzY3JpcHRpb25cIjogXCJDYW4gYmUgYEluY2x1ZGVJdGVtYCBvciBgSW5jbHVkZUl0ZW1bXWAuIEVhY2ggYEluY2x1ZGVJdGVtYCB3aWxsIGJlIGEgc3RyaW5nLCBvciBhbiBvYmplY3Qgd2l0aCBwcm9wZXJ0aWVzIGZvciB0aGUgbWV0aG9kIGlmIGluY2x1ZGluZyBleHRlcm5hbCBZQU1MIGZpbGUuIFRoZSBleHRlcm5hbCBjb250ZW50IHdpbGwgYmUgZmV0Y2hlZCwgaW5jbHVkZWQgYW5kIGV2YWx1YXRlZCBhbG9uZyB0aGUgYC5naXRsYWItY2kueW1sYC4gW0xlYXJuIE1vcmVdKGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2NpL3lhbWwvI2luY2x1ZGUpLlwiLFxuICAgICAgICAgICAgXCJvbmVPZlwiOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2luY2x1ZGVfaXRlbVwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvaW5jbHVkZV9pdGVtXCIsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICAgIFwicGFnZXNcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9qb2JcIixcbiAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIkEgc3BlY2lhbCBqb2IgdXNlZCB0byB1cGxvYWQgc3RhdGljIHNpdGVzIHRvIEdpdExhYiBwYWdlcy4gUmVxdWlyZXMgYSBgcHVibGljL2AgZGlyZWN0b3J5IHdpdGggYGFydGlmYWN0cy5wYXRoYCBwb2ludGluZyB0byBpdC4gW0xlYXJuIE1vcmVdKGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2NpL3lhbWwvI3BhZ2VzKS5cIixcbiAgICAgICAgfSxcbiAgICAgICAgXCJ3b3JrZmxvd1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJuYW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy93b3JrZmxvd05hbWVcIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiYXV0b19jYW5jZWxcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3dvcmtmbG93QXV0b0NhbmNlbFwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJydWxlc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJhbnlPZlwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtaW5JdGVtc1wiOiAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImlmXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9pZlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjaGFuZ2VzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9jaGFuZ2VzXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImV4aXN0c1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvZXhpc3RzXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInZhcmlhYmxlc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvcnVsZXNWYXJpYWJsZXNcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwid2hlblwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJhbHdheXNcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibmV2ZXJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYXV0b19jYW5jZWxcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3dvcmtmbG93QXV0b0NhbmNlbFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIFwicGF0dGVyblByb3BlcnRpZXNcIjoge1xuICAgICAgICBcIl5bLl1cIjoge1xuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkhpZGRlbiBrZXlzLlwiLFxuICAgICAgICAgICAgXCJhbnlPZlwiOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2pvYl90ZW1wbGF0ZVwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiQXJiaXRyYXJ5IFlBTUwgYW5jaG9yLlwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvam9iXCIsXG4gICAgfSxcbiAgICBcImRlZmluaXRpb25zXCI6IHtcbiAgICAgICAgXCJhcnRpZmFjdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFtcbiAgICAgICAgICAgICAgICBcIm9iamVjdFwiLFxuICAgICAgICAgICAgICAgIFwibnVsbFwiLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIlVzZWQgdG8gc3BlY2lmeSBhIGxpc3Qgb2YgZmlsZXMgYW5kIGRpcmVjdG9yaWVzIHRoYXQgc2hvdWxkIGJlIGF0dGFjaGVkIHRvIHRoZSBqb2IgaWYgaXQgc3VjY2VlZHMuIEFydGlmYWN0cyBhcmUgc2VudCB0byBHaXRMYWIgd2hlcmUgdGhleSBjYW4gYmUgZG93bmxvYWRlZC4gW0xlYXJuIE1vcmVdKGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2NpL3lhbWwvI2FydGlmYWN0cykuXCIsXG4gICAgICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICBcInBhdGhzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgICAgICAgICAgXCJtYXJrZG93bkRlc2NyaXB0aW9uXCI6IFwiQSBsaXN0IG9mIHBhdGhzIHRvIGZpbGVzL2ZvbGRlcnMgdGhhdCBzaG91bGQgYmUgaW5jbHVkZWQgaW4gdGhlIGFydGlmYWN0LiBbTGVhcm4gTW9yZV0oaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vY2kveWFtbC8jYXJ0aWZhY3RzcGF0aHMpLlwiLFxuICAgICAgICAgICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIm1pbkl0ZW1zXCI6IDEsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcImV4Y2x1ZGVcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgICAgICAgICBcIm1hcmtkb3duRGVzY3JpcHRpb25cIjogXCJBIGxpc3Qgb2YgcGF0aHMgdG8gZmlsZXMvZm9sZGVycyB0aGF0IHNob3VsZCBiZSBleGNsdWRlZCBpbiB0aGUgYXJ0aWZhY3QuIFtMZWFybiBNb3JlXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9jaS95YW1sLyNhcnRpZmFjdHNleGNsdWRlKS5cIixcbiAgICAgICAgICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJtaW5JdGVtc1wiOiAxLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJleHBvc2VfYXNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgXCJtYXJrZG93bkRlc2NyaXB0aW9uXCI6IFwiQ2FuIGJlIHVzZWQgdG8gZXhwb3NlIGpvYiBhcnRpZmFjdHMgaW4gdGhlIG1lcmdlIHJlcXVlc3QgVUkuIEdpdExhYiB3aWxsIGFkZCBhIGxpbmsgPGV4cG9zZV9hcz4gdG8gdGhlIHJlbGV2YW50IG1lcmdlIHJlcXVlc3QgdGhhdCBwb2ludHMgdG8gdGhlIGFydGlmYWN0LiBbTGVhcm4gTW9yZV0oaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vY2kveWFtbC8jYXJ0aWZhY3RzZXhwb3NlX2FzKS5cIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwibmFtZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICBcIm1hcmtkb3duRGVzY3JpcHRpb25cIjogXCJOYW1lIGZvciB0aGUgYXJjaGl2ZSBjcmVhdGVkIG9uIGpvYiBzdWNjZXNzLiBDYW4gdXNlIHZhcmlhYmxlcyBpbiB0aGUgbmFtZSwgZS5nLiAnJENJX0pPQl9OQU1FJyBbTGVhcm4gTW9yZV0oaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vY2kveWFtbC8jYXJ0aWZhY3RzbmFtZSkuXCIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcInVudHJhY2tlZFwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgICAgICAgICAgXCJtYXJrZG93bkRlc2NyaXB0aW9uXCI6IFwiV2hldGhlciB0byBhZGQgYWxsIHVudHJhY2tlZCBmaWxlcyAoYWxvbmcgd2l0aCAnYXJ0aWZhY3RzLnBhdGhzJykgdG8gdGhlIGFydGlmYWN0LiBbTGVhcm4gTW9yZV0oaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vY2kveWFtbC8jYXJ0aWZhY3RzdW50cmFja2VkKS5cIixcbiAgICAgICAgICAgICAgICAgICAgXCJkZWZhdWx0XCI6IGZhbHNlLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJ3aGVuXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJtYXJrZG93bkRlc2NyaXB0aW9uXCI6IFwiQ29uZmlndXJlIHdoZW4gYXJ0aWZhY3RzIGFyZSB1cGxvYWRlZCBkZXBlbmRlZCBvbiBqb2Igc3RhdHVzLiBbTGVhcm4gTW9yZV0oaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vY2kveWFtbC8jYXJ0aWZhY3Rzd2hlbikuXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiZGVmYXVsdFwiOiBcIm9uX3N1Y2Nlc3NcIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICBcIm9uX3N1Y2Nlc3NcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwib25fZmFpbHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJhbHdheXNcIixcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiYWNjZXNzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJtYXJrZG93bkRlc2NyaXB0aW9uXCI6IFwiQ29uZmlndXJlIHdobyBjYW4gYWNjZXNzIHRoZSBhcnRpZmFjdHMuIFtMZWFybiBNb3JlXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9jaS95YW1sLyNhcnRpZmFjdHNhY2Nlc3MpLlwiLFxuICAgICAgICAgICAgICAgICAgICBcImRlZmF1bHRcIjogXCJhbGxcIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICBcIm5vbmVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiZGV2ZWxvcGVyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcImFsbFwiLFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJleHBpcmVfaW5cIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgXCJtYXJrZG93bkRlc2NyaXB0aW9uXCI6IFwiSG93IGxvbmcgYXJ0aWZhY3RzIHNob3VsZCBiZSBrZXB0LiBUaGV5IGFyZSBzYXZlZCAzMCBkYXlzIGJ5IGRlZmF1bHQuIEFydGlmYWN0cyB0aGF0IGhhdmUgZXhwaXJlZCBhcmUgcmVtb3ZlZCBwZXJpb2RpY2FsbHkgdmlhIGNyb24gam9iLiBTdXBwb3J0cyBhIHdpZGUgdmFyaWV0eSBvZiBmb3JtYXRzLCBlLmcuICcxIHdlZWsnLCAnMyBtaW5zIDQgc2VjJywgJzIgaHJzIDIwIG1pbicsICcyaDIwbWluJywgJzYgbW9zIDEgZGF5JywgJzQ3IHlycyA2IG1vcyBhbmQgNGQnLCAnMyB3ZWVrcyBhbmQgMiBkYXlzJy4gW0xlYXJuIE1vcmVdKGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2NpL3lhbWwvI2FydGlmYWN0c2V4cGlyZV9pbikuXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiZGVmYXVsdFwiOiBcIjMwIGRheXNcIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwicmVwb3J0c1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICBcIm1hcmtkb3duRGVzY3JpcHRpb25cIjogXCJSZXBvcnRzIHdpbGwgYmUgdXBsb2FkZWQgYXMgYXJ0aWZhY3RzLCBhbmQgb2Z0ZW4gZGlzcGxheWVkIGluIHRoZSBHaXRMYWIgVUksIHN1Y2ggYXMgaW4gbWVyZ2UgcmVxdWVzdHMuIFtMZWFybiBNb3JlXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9jaS95YW1sLyNhcnRpZmFjdHNyZXBvcnRzKS5cIixcbiAgICAgICAgICAgICAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiYWNjZXNzaWJpbGl0eVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlBhdGggdG8gSlNPTiBmaWxlIHdpdGggYWNjZXNzaWJpbGl0eSByZXBvcnQuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJhbm5vdGF0aW9uc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlBhdGggdG8gSlNPTiBmaWxlIHdpdGggYW5ub3RhdGlvbnMgcmVwb3J0LlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwianVuaXRcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJQYXRoIGZvciBmaWxlKHMpIHRoYXQgc2hvdWxkIGJlIHBhcnNlZCBhcyBKVW5pdCBYTUwgcmVzdWx0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJvbmVPZlwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlBhdGggdG8gYSBzaW5nbGUgWE1MIGZpbGVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJBIGxpc3Qgb2YgcGF0aHMgdG8gWE1MIGZpbGVzIHRoYXQgd2lsbCBhdXRvbWF0aWNhbGx5IGJlIGNvbmNhdGVuYXRlZCBpbnRvIGEgc2luZ2xlIGZpbGVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWluSXRlbXNcIjogMSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiYnJvd3Nlcl9wZXJmb3JtYW5jZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlBhdGggdG8gYSBzaW5nbGUgZmlsZSB3aXRoIGJyb3dzZXIgcGVyZm9ybWFuY2UgbWV0cmljIHJlcG9ydChzKS5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcImNvdmVyYWdlX3JlcG9ydFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJvYmplY3RcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJudWxsXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiVXNlZCB0byBjb2xsZWN0IGNvdmVyYWdlIHJlcG9ydHMgZnJvbSB0aGUgam9iLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY292ZXJhZ2VfZm9ybWF0XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJDb2RlIGNvdmVyYWdlIGZvcm1hdCB1c2VkIGJ5IHRoZSB0ZXN0IGZyYW1ld29yay5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjb2JlcnR1cmFcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImphY29jb1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJwYXRoXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJQYXRoIHRvIHRoZSBjb3ZlcmFnZSByZXBvcnQgZmlsZSB0aGF0IHNob3VsZCBiZSBwYXJzZWQuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWluTGVuZ3RoXCI6IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcImNvZGVxdWFsaXR5XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3N0cmluZ19maWxlX2xpc3RcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiUGF0aCB0byBmaWxlIG9yIGxpc3Qgb2YgZmlsZXMgd2l0aCBjb2RlIHF1YWxpdHkgcmVwb3J0KHMpIChzdWNoIGFzIENvZGUgQ2xpbWF0ZSkuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJkb3RlbnZcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvc3RyaW5nX2ZpbGVfbGlzdFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJQYXRoIHRvIGZpbGUgb3IgbGlzdCBvZiBmaWxlcyBjb250YWluaW5nIHJ1bnRpbWUtY3JlYXRlZCB2YXJpYWJsZXMgZm9yIHRoaXMgam9iLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwibHNpZlwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9zdHJpbmdfZmlsZV9saXN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlBhdGggdG8gZmlsZSBvciBsaXN0IG9mIGZpbGVzIGNvbnRhaW5pbmcgY29kZSBpbnRlbGxpZ2VuY2UgKExhbmd1YWdlIFNlcnZlciBJbmRleCBGb3JtYXQpLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwic2FzdFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9zdHJpbmdfZmlsZV9saXN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlBhdGggdG8gZmlsZSBvciBsaXN0IG9mIGZpbGVzIHdpdGggU0FTVCB2dWxuZXJhYmlsaXRpZXMgcmVwb3J0KHMpLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVwZW5kZW5jeV9zY2FubmluZ1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9zdHJpbmdfZmlsZV9saXN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlBhdGggdG8gZmlsZSBvciBsaXN0IG9mIGZpbGVzIHdpdGggRGVwZW5kZW5jeSBzY2FubmluZyB2dWxuZXJhYmlsaXRpZXMgcmVwb3J0KHMpLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiY29udGFpbmVyX3NjYW5uaW5nXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3N0cmluZ19maWxlX2xpc3RcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiUGF0aCB0byBmaWxlIG9yIGxpc3Qgb2YgZmlsZXMgd2l0aCBDb250YWluZXIgc2Nhbm5pbmcgdnVsbmVyYWJpbGl0aWVzIHJlcG9ydChzKS5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcImRhc3RcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvc3RyaW5nX2ZpbGVfbGlzdFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJQYXRoIHRvIGZpbGUgb3IgbGlzdCBvZiBmaWxlcyB3aXRoIERBU1QgdnVsbmVyYWJpbGl0aWVzIHJlcG9ydChzKS5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcImxpY2Vuc2VfbWFuYWdlbWVudFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9zdHJpbmdfZmlsZV9saXN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkRlcHJlY2F0ZWQgaW4gMTIuODogUGF0aCB0byBmaWxlIG9yIGxpc3Qgb2YgZmlsZXMgd2l0aCBsaWNlbnNlIHJlcG9ydChzKS5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcImxpY2Vuc2Vfc2Nhbm5pbmdcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvc3RyaW5nX2ZpbGVfbGlzdFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJQYXRoIHRvIGZpbGUgb3IgbGlzdCBvZiBmaWxlcyB3aXRoIGxpY2Vuc2UgcmVwb3J0KHMpLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwicmVxdWlyZW1lbnRzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3N0cmluZ19maWxlX2xpc3RcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiUGF0aCB0byBmaWxlIG9yIGxpc3Qgb2YgZmlsZXMgd2l0aCByZXF1aXJlbWVudHMgcmVwb3J0KHMpLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwic2VjcmV0X2RldGVjdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9zdHJpbmdfZmlsZV9saXN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlBhdGggdG8gZmlsZSBvciBsaXN0IG9mIGZpbGVzIHdpdGggc2VjcmV0IGRldGVjdGlvbiByZXBvcnQocykuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJtZXRyaWNzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3N0cmluZ19maWxlX2xpc3RcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiUGF0aCB0byBmaWxlIG9yIGxpc3Qgb2YgZmlsZXMgd2l0aCBjdXN0b20gbWV0cmljcyByZXBvcnQocykuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0ZXJyYWZvcm1cIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvc3RyaW5nX2ZpbGVfbGlzdFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJQYXRoIHRvIGZpbGUgb3IgbGlzdCBvZiBmaWxlcyB3aXRoIHRlcnJhZm9ybSBwbGFuKHMpLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiY3ljbG9uZWR4XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3N0cmluZ19maWxlX2xpc3RcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1hcmtkb3duRGVzY3JpcHRpb25cIjogXCJQYXRoIHRvIGZpbGUgb3IgbGlzdCBvZiBmaWxlcyB3aXRoIGN5Y2xvbmVkeCByZXBvcnQocykuIFtMZWFybiBNb3JlXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9jaS95YW1sL2FydGlmYWN0c19yZXBvcnRzLyNhcnRpZmFjdHNyZXBvcnRzY3ljbG9uZWR4KS5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcImxvYWRfcGVyZm9ybWFuY2VcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvc3RyaW5nX2ZpbGVfbGlzdFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIlBhdGggdG8gZmlsZSBvciBsaXN0IG9mIGZpbGVzIHdpdGggbG9hZCBwZXJmb3JtYW5jZSB0ZXN0aW5nIHJlcG9ydChzKS4gW0xlYXJuIE1vcmVdKGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2NpL3lhbWwvYXJ0aWZhY3RzX3JlcG9ydHMvI2FydGlmYWN0c3JlcG9ydHNsb2FkX3BlcmZvcm1hbmNlKS5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcInJlcG9zaXRvcnlfeHJheVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9zdHJpbmdfZmlsZV9saXN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlBhdGggdG8gZmlsZSBvciBsaXN0IG9mIGZpbGVzIHdpdGggUmVwb3NpdG9yeSBYLVJheSByZXBvcnQocykuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBcInN0cmluZ19maWxlX2xpc3RcIjoge1xuICAgICAgICAgICAgXCJvbmVPZlwiOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgICAgXCJiYXNlSW5wdXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICBcIm1hcmtkb3duRGVzY3JpcHRpb25cIjogXCJJbnB1dCB0eXBlLiBEZWZhdWx0cyB0byAnc3RyaW5nJyB3aGVuIG5vdCBzcGVjaWZpZWQuXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICBcImFycmF5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcImJvb2xlYW5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwibnVtYmVyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICBcImRlZmF1bHRcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgXCJtYXJrZG93bkRlc2NyaXB0aW9uXCI6IFwiSHVtYW4tcmVhZGFibGUgZXhwbGFuYXRpb24gb2YgdGhlIHBhcmFtZXRlci5cIixcbiAgICAgICAgICAgICAgICAgICAgXCJtYXhMZW5ndGhcIjogMTAyNCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwib3B0aW9uc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIkxpc3Qgb2YgYWxsb3dlZCB2YWx1ZXMgZm9yIHRoaXMgaW5wdXQuXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJvbmVPZlwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibnVtYmVyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwicmVnZXhcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgXCJtYXJrZG93bkRlc2NyaXB0aW9uXCI6IFwiUmVndWxhciBleHByZXNzaW9uIHRoYXQgc3RyaW5nIHZhbHVlcyBtdXN0IG1hdGNoLlwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJkZWZhdWx0XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJtYXJrZG93bkRlc2NyaXB0aW9uXCI6IFwiRGVmYXVsdCB2YWx1ZSBmb3IgdGhpcyBpbnB1dC5cIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICAgIH0sXG4gICAgICAgIFwiY29uZmlnSW5wdXRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgXCJtYXJrZG93bkRlc2NyaXB0aW9uXCI6IFwiRGVmaW5lIGlucHV0IHBhcmFtZXRlcnMgZm9yIHJldXNhYmxlIENJL0NEIGNvbmZpZ3VyYXRpb24uIENvbmZpZyBpbnB1dHMgY2FuIG9wdGlvbmFsbHkgc3BlY2lmeSBkZWZhdWx0cy4gW0xlYXJuIE1vcmVdKGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2NpL2lucHV0cy8pLlwiLFxuICAgICAgICAgICAgXCJwYXR0ZXJuUHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgXCIuKlwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwib25lT2ZcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYWxsT2ZcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2Jhc2VJbnB1dFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicnVsZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1hcmtkb3duRGVzY3JpcHRpb25cIjogXCJDb25kaXRpb25hbCBydWxlcyBmb3IgdGhpcyBpbnB1dC5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJhbGxPZlwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImlmXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidGhlblwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVmYXVsdFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJudWxsXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaWZcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJudW1iZXJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0aGVuXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZWZhdWx0XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibnVtYmVyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm51bGxcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpZlwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImJvb2xlYW5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0aGVuXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZWZhdWx0XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJudWxsXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaWZcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJhcnJheVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInRoZW5cIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlZmF1bHRcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm9uZU9mXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJudWxsXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcIm51bGxcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIFwiam9iSW5wdXRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgXCJtYXJrZG93bkRlc2NyaXB0aW9uXCI6IFwiRGVmaW5lIGlucHV0IHBhcmFtZXRlcnMgZm9yIGEgam9iLiBKb2IgaW5wdXRzIG11c3QgYWx3YXlzIGluY2x1ZGUgYSBgZGVmYXVsdGAgdmFsdWUuIFtMZWFybiBNb3JlXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9jaS95YW1sLyNpbnB1dHMpLlwiLFxuICAgICAgICAgICAgXCJtYXhQcm9wZXJ0aWVzXCI6IDUwLFxuICAgICAgICAgICAgXCJwYXR0ZXJuUHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgXCIuKlwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiYWxsT2ZcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvYmFzZUlucHV0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlZmF1bHRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImFsbE9mXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpZlwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInRoZW5cIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVmYXVsdFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpZlwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJudW1iZXJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInRoZW5cIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVmYXVsdFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJudW1iZXJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpZlwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJib29sZWFuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0aGVuXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlZmF1bHRcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImlmXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImFycmF5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0aGVuXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlZmF1bHRcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgXCJpbmNsdWRlX2l0ZW1cIjoge1xuICAgICAgICAgICAgXCJvbmVPZlwiOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiV2lsbCBpbmZlciB0aGUgbWV0aG9kIGJhc2VkIG9uIHRoZSB2YWx1ZS4gRS5nLiBgaHR0cHM6Ly8uLi5gIHN0cmluZ3Mgd2lsbCBiZSBvZiB0eXBlIGBpbmNsdWRlOnJlbW90ZWAsIGFuZCBgL3RlbXBsYXRlcy8uLi5gIG9yIGB0ZW1wbGF0ZXMvLi4uYCB3aWxsIGJlIG9mIHR5cGUgYGluY2x1ZGU6bG9jYWxgLlwiLFxuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgXCJmb3JtYXRcIjogXCJ1cmktcmVmZXJlbmNlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiYW55T2ZcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAge30sXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJub3RcIjoge30sXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgICAgICAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwibG9jYWxcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJSZWxhdGl2ZSBwYXRoIGZyb20gbG9jYWwgcmVwb3NpdG9yeSByb290IChgL2ApIHRvIHRoZSBgeWFtbGAvYHltbGAgZmlsZSB0ZW1wbGF0ZS4gVGhlIGZpbGUgbXVzdCBiZSBvbiB0aGUgc2FtZSBicmFuY2gsIGFuZCBkb2VzIG5vdCB3b3JrIGFjcm9zcyBnaXQgc3VibW9kdWxlcy5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImZvcm1hdFwiOiBcInVyaS1yZWZlcmVuY2VcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcInJ1bGVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2luY2x1ZGVSdWxlc1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiaW5wdXRzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2lucHV0c1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICBcImxvY2FsXCIsXG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJwcm9qZWN0XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiUGF0aCB0byB0aGUgcHJvamVjdCwgZS5nLiBgZ3JvdXAvcHJvamVjdGAsIG9yIGBncm91cC9zdWItZ3JvdXAvcHJvamVjdGAgW0xlYXJuIG1vcmVdKGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2NpL3lhbWwvI2luY2x1ZGVwcm9qZWN0KS5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcInJlZlwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkJyYW5jaC9UYWcvQ29tbWl0LWhhc2ggZm9yIHRoZSB0YXJnZXQgcHJvamVjdC5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcImZpbGVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwib25lT2ZcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiUmVsYXRpdmUgcGF0aCBmcm9tIHByb2plY3Qgcm9vdCAoYC9gKSB0byB0aGUgYHlhbWxgL2B5bWxgIGZpbGUgdGVtcGxhdGUuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkxpc3Qgb2YgZmlsZXMgYnkgcmVsYXRpdmUgcGF0aCBmcm9tIHByb2plY3Qgcm9vdCAoYC9gKSB0byB0aGUgYHlhbWxgL2B5bWxgIGZpbGUgdGVtcGxhdGUuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJydWxlc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9pbmNsdWRlUnVsZXNcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcImlucHV0c1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9pbnB1dHNcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJwcm9qZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcImZpbGVcIixcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcInRlbXBsYXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiVXNlIGEgYC5naXRsYWItY2kueW1sYCB0ZW1wbGF0ZSBhcyBhIGJhc2UsIGUuZy4gYE5vZGVqcy5naXRsYWItY2kueW1sYC5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImZvcm1hdFwiOiBcInVyaS1yZWZlcmVuY2VcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcInJ1bGVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2luY2x1ZGVSdWxlc1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiaW5wdXRzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2lucHV0c1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICBcInRlbXBsYXRlXCIsXG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJjb21wb25lbnRcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJMb2NhbCBwYXRoIHRvIGNvbXBvbmVudCBkaXJlY3Rvcnkgb3IgZnVsbCBwYXRoIHRvIGV4dGVybmFsIGNvbXBvbmVudCBkaXJlY3RvcnkuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJmb3JtYXRcIjogXCJ1cmktcmVmZXJlbmNlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJydWxlc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9pbmNsdWRlUnVsZXNcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcImlucHV0c1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9pbnB1dHNcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJjb21wb25lbnRcIixcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcInJlbW90ZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlVSTCB0byBhIGB5YW1sYC9geW1sYCB0ZW1wbGF0ZSBmaWxlIHVzaW5nIEhUVFAvSFRUUFMuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJmb3JtYXRcIjogXCJ1cmktcmVmZXJlbmNlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJpbnRlZ3JpdHlcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJTSEEyNTYgaW50ZWdyaXR5IGhhc2ggb2YgdGhlIHJlbW90ZSBmaWxlIGNvbnRlbnQuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJydWxlc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9pbmNsdWRlUnVsZXNcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcImlucHV0c1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9pbnB1dHNcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJyZW1vdGVcIixcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgICAgXCIhcmVmZXJlbmNlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICBcIm1pbkxlbmd0aFwiOiAxLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgXCJpbWFnZVwiOiB7XG4gICAgICAgICAgICBcIm9uZU9mXCI6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICBcIm1pbkxlbmd0aFwiOiAxLFxuICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiRnVsbCBuYW1lIG9mIHRoZSBpbWFnZSB0aGF0IHNob3VsZCBiZSB1c2VkLiBJdCBzaG91bGQgY29udGFpbiB0aGUgUmVnaXN0cnkgcGFydCBpZiBuZWVkZWQuXCIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiU3BlY2lmaWVzIHRoZSBkb2NrZXIgaW1hZ2UgdG8gdXNlIGZvciB0aGUgam9iIG9yIGdsb2JhbGx5IGZvciBhbGwgam9icy4gSm9iIGNvbmZpZ3VyYXRpb24gdGFrZXMgcHJlY2VkZW5jZSBvdmVyIGdsb2JhbCBzZXR0aW5nLiBSZXF1aXJlcyBhIGNlcnRhaW4ga2luZCBvZiBHaXRMYWIgcnVubmVyIGV4ZWN1dG9yLlwiLFxuICAgICAgICAgICAgICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJuYW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1pbkxlbmd0aFwiOiAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJGdWxsIG5hbWUgb2YgdGhlIGltYWdlIHRoYXQgc2hvdWxkIGJlIHVzZWQuIEl0IHNob3VsZCBjb250YWluIHRoZSBSZWdpc3RyeSBwYXJ0IGlmIG5lZWRlZC5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcImVudHJ5cG9pbnRcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkNvbW1hbmQgb3Igc2NyaXB0IHRoYXQgc2hvdWxkIGJlIGV4ZWN1dGVkIGFzIHRoZSBjb250YWluZXIncyBlbnRyeXBvaW50LiBJdCB3aWxsIGJlIHRyYW5zbGF0ZWQgdG8gRG9ja2VyJ3MgLS1lbnRyeXBvaW50IG9wdGlvbiB3aGlsZSBjcmVhdGluZyB0aGUgY29udGFpbmVyLiBUaGUgc3ludGF4IGlzIHNpbWlsYXIgdG8gRG9ja2VyZmlsZSdzIEVOVFJZUE9JTlQgZGlyZWN0aXZlLCB3aGVyZSBlYWNoIHNoZWxsIHRva2VuIGlzIGEgc2VwYXJhdGUgc3RyaW5nIGluIHRoZSBhcnJheS5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1pbkl0ZW1zXCI6IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJkb2NrZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIk9wdGlvbnMgdG8gcGFzcyB0byBSdW5uZXJzIERvY2tlciBFeGVjdXRvci4gW0xlYXJuIE1vcmVdKGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2NpL3lhbWwvI2ltYWdlZG9ja2VyKVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJwbGF0Zm9ybVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWluTGVuZ3RoXCI6IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiSW1hZ2UgYXJjaGl0ZWN0dXJlIHRvIHB1bGwuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidXNlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWluTGVuZ3RoXCI6IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1heExlbmd0aFwiOiAyNTUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiVXNlcm5hbWUgb3IgVUlEIHRvIHVzZSBmb3IgdGhlIGNvbnRhaW5lci5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwia3ViZXJuZXRlc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtYXJrZG93bkRlc2NyaXB0aW9uXCI6IFwiT3B0aW9ucyB0byBwYXNzIHRvIFJ1bm5lcnMgS3ViZXJuZXRlcyBFeGVjdXRvci4gW0xlYXJuIE1vcmVdKGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2NpL3lhbWwvI2ltYWdla3ViZXJuZXRlcylcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidXNlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpbnRlZ2VyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtaW5MZW5ndGhcIjogMSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWF4TGVuZ3RoXCI6IDI1NSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJVc2VybmFtZSBvciBVSUQgdG8gdXNlIGZvciB0aGUgY29udGFpbmVyLiBJdCBhbHNvIHN1cHBvcnRzIHRoZSBVSUQ6R0lEIGZvcm1hdC5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwicHVsbF9wb2xpY3lcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIlNwZWNpZmllcyBob3cgdG8gcHVsbCB0aGUgaW1hZ2UgaW4gUnVubmVyLiBJdCBjYW4gYmUgb25lIG9mIGBhbHdheXNgLCBgbmV2ZXJgIG9yIGBpZi1ub3QtcHJlc2VudGAuIFRoZSBkZWZhdWx0IHZhbHVlIGlzIGBhbHdheXNgLiBbTGVhcm4gbW9yZV0oaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vY2kveWFtbC8jaW1hZ2VwdWxsX3BvbGljeSkuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZWZhdWx0XCI6IFwiYWx3YXlzXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJvbmVPZlwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImFsd2F5c1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibmV2ZXJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImlmLW5vdC1wcmVzZW50XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJhbHdheXNcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJuZXZlclwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImlmLW5vdC1wcmVzZW50XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1pbkl0ZW1zXCI6IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInVuaXF1ZUl0ZW1zXCI6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJuYW1lXCIsXG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcIm1hcmtkb3duRGVzY3JpcHRpb25cIjogXCJTcGVjaWZpZXMgdGhlIGRvY2tlciBpbWFnZSB0byB1c2UgZm9yIHRoZSBqb2Igb3IgZ2xvYmFsbHkgZm9yIGFsbCBqb2JzLiBKb2IgY29uZmlndXJhdGlvbiB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgZ2xvYmFsIHNldHRpbmcuIFJlcXVpcmVzIGEgY2VydGFpbiBraW5kIG9mIEdpdExhYiBydW5uZXIgZXhlY3V0b3IuIFtMZWFybiBNb3JlXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9jaS95YW1sLyNpbWFnZSkuXCIsXG4gICAgICAgIH0sXG4gICAgICAgIFwic2VydmljZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIlNpbWlsYXIgdG8gYGltYWdlYCBwcm9wZXJ0eSwgYnV0IHdpbGwgbGluayB0aGUgc3BlY2lmaWVkIHNlcnZpY2VzIHRvIHRoZSBgaW1hZ2VgIGNvbnRhaW5lci4gW0xlYXJuIE1vcmVdKGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2NpL3lhbWwvI3NlcnZpY2VzKS5cIixcbiAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICAgIFwib25lT2ZcIjogW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwibWluTGVuZ3RoXCI6IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiRnVsbCBuYW1lIG9mIHRoZSBpbWFnZSB0aGF0IHNob3VsZCBiZSB1c2VkLiBJdCBzaG91bGQgY29udGFpbiB0aGUgUmVnaXN0cnkgcGFydCBpZiBuZWVkZWQuXCIsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJuYW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJGdWxsIG5hbWUgb2YgdGhlIGltYWdlIHRoYXQgc2hvdWxkIGJlIHVzZWQuIEl0IHNob3VsZCBjb250YWluIHRoZSBSZWdpc3RyeSBwYXJ0IGlmIG5lZWRlZC5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtaW5MZW5ndGhcIjogMSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZW50cnlwb2ludFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIkNvbW1hbmQgb3Igc2NyaXB0IHRoYXQgc2hvdWxkIGJlIGV4ZWN1dGVkIGFzIHRoZSBjb250YWluZXIncyBlbnRyeXBvaW50LiBJdCB3aWxsIGJlIHRyYW5zbGF0ZWQgdG8gRG9ja2VyJ3MgLS1lbnRyeXBvaW50IG9wdGlvbiB3aGlsZSBjcmVhdGluZyB0aGUgY29udGFpbmVyLiBUaGUgc3ludGF4IGlzIHNpbWlsYXIgdG8gRG9ja2VyZmlsZSdzIEVOVFJZUE9JTlQgZGlyZWN0aXZlLCB3aGVyZSBlYWNoIHNoZWxsIHRva2VuIGlzIGEgc2VwYXJhdGUgc3RyaW5nIGluIHRoZSBhcnJheS4gW0xlYXJuIE1vcmVdKGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2NpL3NlcnZpY2VzLyNhdmFpbGFibGUtc2V0dGluZ3MtZm9yLXNlcnZpY2VzKVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1pbkl0ZW1zXCI6IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRvY2tlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1hcmtkb3duRGVzY3JpcHRpb25cIjogXCJPcHRpb25zIHRvIHBhc3MgdG8gUnVubmVycyBEb2NrZXIgRXhlY3V0b3IuIFtMZWFybiBNb3JlXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9jaS95YW1sLyNzZXJ2aWNlc2RvY2tlcilcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicGxhdGZvcm1cIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWluTGVuZ3RoXCI6IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkltYWdlIGFyY2hpdGVjdHVyZSB0byBwdWxsLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidXNlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtaW5MZW5ndGhcIjogMSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1heExlbmd0aFwiOiAyNTUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlVzZXJuYW1lIG9yIFVJRCB0byB1c2UgZm9yIHRoZSBjb250YWluZXIuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJrdWJlcm5ldGVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIk9wdGlvbnMgdG8gcGFzcyB0byBSdW5uZXJzIEt1YmVybmV0ZXMgRXhlY3V0b3IuIFtMZWFybiBNb3JlXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9jaS95YW1sLyNpbWFnZWt1YmVybmV0ZXMpXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInVzZXJcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaW50ZWdlclwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtaW5MZW5ndGhcIjogMSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1heExlbmd0aFwiOiAyNTUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlVzZXJuYW1lIG9yIFVJRCB0byB1c2UgZm9yIHRoZSBjb250YWluZXIuIEl0IGFsc28gc3VwcG9ydHMgdGhlIFVJRDpHSUQgZm9ybWF0LlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicHVsbF9wb2xpY3lcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1hcmtkb3duRGVzY3JpcHRpb25cIjogXCJTcGVjaWZpZXMgaG93IHRvIHB1bGwgdGhlIGltYWdlIGluIFJ1bm5lci4gSXQgY2FuIGJlIG9uZSBvZiBgYWx3YXlzYCwgYG5ldmVyYCBvciBgaWYtbm90LXByZXNlbnRgLiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBgYWx3YXlzYC4gW0xlYXJuIG1vcmVdKGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2NpL3lhbWwvI3NlcnZpY2VzcHVsbF9wb2xpY3kpLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlZmF1bHRcIjogXCJhbHdheXNcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJvbmVPZlwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJhbHdheXNcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJuZXZlclwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImlmLW5vdC1wcmVzZW50XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImFsd2F5c1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJuZXZlclwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpZi1ub3QtcHJlc2VudFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtaW5JdGVtc1wiOiAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidW5pcXVlSXRlbXNcIjogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImNvbW1hbmRcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1hcmtkb3duRGVzY3JpcHRpb25cIjogXCJDb21tYW5kIG9yIHNjcmlwdCB0aGF0IHNob3VsZCBiZSB1c2VkIGFzIHRoZSBjb250YWluZXIncyBjb21tYW5kLiBJdCB3aWxsIGJlIHRyYW5zbGF0ZWQgdG8gYXJndW1lbnRzIHBhc3NlZCB0byBEb2NrZXIgYWZ0ZXIgdGhlIGltYWdlJ3MgbmFtZS4gVGhlIHN5bnRheCBpcyBzaW1pbGFyIHRvIERvY2tlcmZpbGUncyBDTUQgZGlyZWN0aXZlLCB3aGVyZSBlYWNoIHNoZWxsIHRva2VuIGlzIGEgc2VwYXJhdGUgc3RyaW5nIGluIHRoZSBhcnJheS4gW0xlYXJuIE1vcmVdKGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2NpL3NlcnZpY2VzLyNhdmFpbGFibGUtc2V0dGluZ3MtZm9yLXNlcnZpY2VzKVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3NjcmlwdFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJhbGlhc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1hcmtkb3duRGVzY3JpcHRpb25cIjogXCJBZGRpdGlvbmFsIGFsaWFzIHRoYXQgY2FuIGJlIHVzZWQgdG8gYWNjZXNzIHRoZSBzZXJ2aWNlIGZyb20gdGhlIGpvYidzIGNvbnRhaW5lci4gUmVhZCBBY2Nlc3NpbmcgdGhlIHNlcnZpY2VzIGZvciBtb3JlIGluZm9ybWF0aW9uLiBbTGVhcm4gTW9yZV0oaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vY2kvc2VydmljZXMvI2F2YWlsYWJsZS1zZXR0aW5ncy1mb3Itc2VydmljZXMpXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWluTGVuZ3RoXCI6IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInZhcmlhYmxlc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvam9iVmFyaWFibGVzXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIkFkZGl0aW9uYWwgZW52aXJvbm1lbnQgdmFyaWFibGVzIHRoYXQgYXJlIHBhc3NlZCBleGNsdXNpdmVseSB0byB0aGUgc2VydmljZS4gU2VydmljZSB2YXJpYWJsZXMgY2Fubm90IHJlZmVyZW5jZSB0aGVtc2VsdmVzLiBbTGVhcm4gTW9yZV0oaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vY2kvc2VydmljZXMvI2F2YWlsYWJsZS1zZXR0aW5ncy1mb3Itc2VydmljZXMpXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm5hbWVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIFwiaWRfdG9rZW5zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgXCJtYXJrZG93bkRlc2NyaXB0aW9uXCI6IFwiRGVmaW5lcyBKV1RzIHRvIGJlIGluamVjdGVkIGFzIGVudmlyb25tZW50IHZhcmlhYmxlcy5cIixcbiAgICAgICAgICAgIFwicGF0dGVyblByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgIFwiLipcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiYXVkXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm9uZU9mXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1pbkl0ZW1zXCI6IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInVuaXF1ZUl0ZW1zXCI6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJhdWRcIixcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgXCJpZGVudGl0eVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIlNldHMgYSB3b3JrbG9hZCBpZGVudGl0eSAoZXhwZXJpbWVudGFsKSwgYWxsb3dpbmcgYXV0b21hdGljIGF1dGhlbnRpY2F0aW9uIHdpdGggdGhlIGV4dGVybmFsIHN5c3RlbS4gW0xlYXJuIE1vcmVdKGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2NpL3lhbWwvI2lkZW50aXR5KS5cIixcbiAgICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICAgICAgXCJnb29nbGVfY2xvdWRcIixcbiAgICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICAgIFwic2VjcmV0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIkRlZmluZXMgc2VjcmV0cyB0byBiZSBpbmplY3RlZCBhcyBlbnZpcm9ubWVudCB2YXJpYWJsZXMuIFtMZWFybiBNb3JlXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9jaS95YW1sLyNzZWNyZXRzKS5cIixcbiAgICAgICAgICAgIFwicGF0dGVyblByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgIFwiLipcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidmF1bHRcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwib25lT2ZcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIlRoZSBzZWNyZXQgdG8gYmUgZmV0Y2hlZCBmcm9tIFZhdWx0IChlLmcuICdwcm9kdWN0aW9uL2RiL3Bhc3N3b3JkQG9wcycgdHJhbnNsYXRlcyB0byBzZWNyZXQgJ29wcy9kYXRhL3Byb2R1Y3Rpb24vZGInLCBmaWVsZCBgcGFzc3dvcmRgKS4gW0xlYXJuIE1vcmVdKGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2NpL3lhbWwvI3NlY3JldHN2YXVsdClcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZW5naW5lXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm5hbWVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicGF0aFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibmFtZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJwYXRoXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInBhdGhcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZmllbGRcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZW5naW5lXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJwYXRoXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJmaWVsZFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcImdjcF9zZWNyZXRfbWFuYWdlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtYXJrZG93bkRlc2NyaXB0aW9uXCI6IFwiRGVmaW5lcyB0aGUgc2VjcmV0IHZlcnNpb24gdG8gYmUgZmV0Y2hlZCBmcm9tIEdDUCBTZWNyZXQgTWFuYWdlci4gTmFtZSByZWZlcnMgdG8gdGhlIHNlY3JldCBuYW1lIGluIEdDUCBzZWNyZXQgbWFuYWdlci4gVmVyc2lvbiByZWZlcnMgdG8gdGhlIGRlc2lyZWQgc2VjcmV0IHZlcnNpb24gKGRlZmF1bHRzIHRvICdsYXRlc3QnKS5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm5hbWVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidmVyc2lvblwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm9uZU9mXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlZmF1bHRcIjogXCJ2ZXJzaW9uXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJuYW1lXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiYXp1cmVfa2V5X3ZhdWx0XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm5hbWVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidmVyc2lvblwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm5hbWVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJhd3Nfc2VjcmV0c19tYW5hZ2VyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm9uZU9mXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiVGhlIEFSTiBvciBuYW1lIG9mIHRoZSBzZWNyZXQgdG8gcmV0cmlldmUuIFRvIHJldHJpZXZlIGEgc2VjcmV0IGZyb20gYW5vdGhlciBhY2NvdW50LCB5b3UgbXVzdCB1c2UgYW4gQVJOLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIkRlZmluZXMgdGhlIHNlY3JldCB0byBiZSBmZXRjaGVkIGZyb20gQVdTIFNlY3JldHMgTWFuYWdlci4gVGhlIHNlY3JldF9pZCByZWZlcnMgdG8gdGhlIEFSTiBvciBuYW1lIG9mIHRoZSBzZWNyZXQgaW4gQVdTIFNlY3JldHMgTWFuYWdlci4gVmVyc2lvbl9pZCBhbmQgdmVyc2lvbl9zdGFnZSBhcmUgb3B0aW9uYWwgcGFyYW1ldGVycyB0aGF0IGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgYSBzcGVjaWZpYyB2ZXJzaW9uIG9mIHRoZSBzZWNyZXQsIGVsc2UgQVdTQ1VSUkVOVCB2ZXJzaW9uIHdpbGwgYmUgcmV0dXJuZWQuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwic2VjcmV0X2lkXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJUaGUgQVJOIG9yIG5hbWUgb2YgdGhlIHNlY3JldCB0byByZXRyaWV2ZS4gVG8gcmV0cmlldmUgYSBzZWNyZXQgZnJvbSBhbm90aGVyIGFjY291bnQsIHlvdSBtdXN0IHVzZSBhbiBBUk4uXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInZlcnNpb25faWRcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgdmVyc2lvbiBvZiB0aGUgc2VjcmV0IHRvIHJldHJpZXZlLiBJZiB5b3UgaW5jbHVkZSBib3RoIHRoaXMgcGFyYW1ldGVyIGFuZCBWZXJzaW9uU3RhZ2UsIHRoZSB0d28gcGFyYW1ldGVycyBtdXN0IHJlZmVyIHRvIHRoZSBzYW1lIHNlY3JldCB2ZXJzaW9uLiBJZiB5b3UgZG9uJ3Qgc3BlY2lmeSBlaXRoZXIgYSBWZXJzaW9uU3RhZ2Ugb3IgVmVyc2lvbklkLCBTZWNyZXRzIE1hbmFnZXIgcmV0dXJucyB0aGUgQVdTQ1VSUkVOVCB2ZXJzaW9uLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ2ZXJzaW9uX3N0YWdlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJUaGUgc3RhZ2luZyBsYWJlbCBvZiB0aGUgdmVyc2lvbiBvZiB0aGUgc2VjcmV0IHRvIHJldHJpZXZlLiBJZiB5b3UgaW5jbHVkZSBib3RoIHRoaXMgcGFyYW1ldGVyIGFuZCBWZXJzaW9uU3RhZ2UsIHRoZSB0d28gcGFyYW1ldGVycyBtdXN0IHJlZmVyIHRvIHRoZSBzYW1lIHNlY3JldCB2ZXJzaW9uLiBJZiB5b3UgZG9uJ3Qgc3BlY2lmeSBlaXRoZXIgYSBWZXJzaW9uU3RhZ2Ugb3IgVmVyc2lvbklkLCBTZWNyZXRzIE1hbmFnZXIgcmV0dXJucyB0aGUgQVdTQ1VSUkVOVCB2ZXJzaW9uLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJyZWdpb25cIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlRoZSBBV1MgcmVnaW9uIHdoZXJlIHRoZSBzZWNyZXQgaXMgc3RvcmVkLiBVc2UgdGhpcyB0byBvdmVycmlkZSB0aGUgcmVnaW9uIGZvciBhIHNwZWNpZmljIHNlY3JldC4gRGVmYXVsdHMgdG8gQVdTX1JFR0lPTiB2YXJpYWJsZS5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicm9sZV9hcm5cIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlRoZSBBUk4gb2YgdGhlIElBTSByb2xlIHRvIGFzc3VtZSBiZWZvcmUgcmV0cmlldmluZyB0aGUgc2VjcmV0LiBVc2UgdGhpcyB0byBvdmVycmlkZSB0aGUgQVJOLiBEZWZhdWx0cyB0byBBV1NfUk9MRV9BUk4gdmFyaWFibGUuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInJvbGVfc2Vzc2lvbl9uYW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJUaGUgbmFtZSBvZiB0aGUgc2Vzc2lvbiB0byB1c2Ugd2hlbiBhc3N1bWluZyB0aGUgcm9sZS4gVXNlIHRoaXMgdG8gb3ZlcnJpZGUgdGhlIHNlc3Npb24gbmFtZS4gRGVmYXVsdHMgdG8gQVdTX1JPTEVfU0VTU0lPTl9OQU1FIHZhcmlhYmxlLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJmaWVsZFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiVGhlIG5hbWUgb2YgdGhlIGZpZWxkIHRvIHJldHJpZXZlIGZyb20gdGhlIHNlY3JldC4gSWYgbm90IHNwZWNpZmllZCwgdGhlIGVudGlyZSBzZWNyZXQgaXMgcmV0cmlldmVkLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJzZWNyZXRfaWRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJmaWxlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZWZhdWx0XCI6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtYXJrZG93bkRlc2NyaXB0aW9uXCI6IFwiQ29uZmlndXJlcyB0aGUgc2VjcmV0IHRvIGJlIHN0b3JlZCBhcyBlaXRoZXIgYSBmaWxlIG9yIHZhcmlhYmxlIHR5cGUgQ0kvQ0QgdmFyaWFibGUuIFtMZWFybiBNb3JlXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9jaS95YW1sLyNzZWNyZXRzZmlsZSlcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcInRva2VuXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiU3BlY2lmaWVzIHRoZSBKV1QgdmFyaWFibGUgdGhhdCBzaG91bGQgYmUgdXNlZCB0byBhdXRoZW50aWNhdGUgd2l0aCB0aGUgc2VjcmV0IHByb3ZpZGVyLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJhbnlPZlwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidmF1bHRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJhenVyZV9rZXlfdmF1bHRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJnY3Bfc2VjcmV0X21hbmFnZXJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJhd3Nfc2VjcmV0c19tYW5hZ2VyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgIFwiZGVwZW5kZW5jaWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiZ2NwX3NlY3JldF9tYW5hZ2VyXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInRva2VuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBcInNjcmlwdFwiOiB7XG4gICAgICAgICAgICBcIm9uZU9mXCI6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICBcIm1pbkxlbmd0aFwiOiAxLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiYW55T2ZcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwibWluSXRlbXNcIjogMSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgICAgXCJzdGVwc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9zdGVwXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBcIm9wdGlvbmFsX3NjcmlwdFwiOiB7XG4gICAgICAgICAgICBcIm9uZU9mXCI6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiYW55T2ZcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICAgIFwiYmVmb3JlX3NjcmlwdFwiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29wdGlvbmFsX3NjcmlwdFwiLFxuICAgICAgICAgICAgXCJtYXJrZG93bkRlc2NyaXB0aW9uXCI6IFwiRGVmaW5lcyBzY3JpcHRzIHRoYXQgc2hvdWxkIHJ1biAqYmVmb3JlKiB0aGUgam9iLiBDYW4gYmUgc2V0IGdsb2JhbGx5IG9yIHBlciBqb2IuIFtMZWFybiBNb3JlXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9jaS95YW1sLyNiZWZvcmVfc2NyaXB0KS5cIixcbiAgICAgICAgfSxcbiAgICAgICAgXCJhZnRlcl9zY3JpcHRcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vcHRpb25hbF9zY3JpcHRcIixcbiAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIkRlZmluZXMgc2NyaXB0cyB0aGF0IHNob3VsZCBydW4gKmFmdGVyKiB0aGUgam9iLiBDYW4gYmUgc2V0IGdsb2JhbGx5IG9yIHBlciBqb2IuIFtMZWFybiBNb3JlXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9jaS95YW1sLyNhZnRlcl9zY3JpcHQpLlwiLFxuICAgICAgICB9LFxuICAgICAgICBcInJ1bGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBbXG4gICAgICAgICAgICAgICAgXCJhcnJheVwiLFxuICAgICAgICAgICAgICAgIFwibnVsbFwiLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIlJ1bGVzIGFsbG93cyBmb3IgYW4gYXJyYXkgb2YgaW5kaXZpZHVhbCBydWxlIG9iamVjdHMgdG8gYmUgZXZhbHVhdGVkIGluIG9yZGVyLCB1bnRpbCBvbmUgbWF0Y2hlcyBhbmQgZHluYW1pY2FsbHkgcHJvdmlkZXMgYXR0cmlidXRlcyB0byB0aGUgam9iLiBbTGVhcm4gTW9yZV0oaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vY2kveWFtbC8jcnVsZXMpLlwiLFxuICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJhbnlPZlwiOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpZlwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvaWZcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY2hhbmdlc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvY2hhbmdlc1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJleGlzdHNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2V4aXN0c1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ2YXJpYWJsZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3J1bGVzVmFyaWFibGVzXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIndoZW5cIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3doZW5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwic3RhcnRfaW5cIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3N0YXJ0X2luXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImFsbG93X2ZhaWx1cmVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2FsbG93X2ZhaWx1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibmVlZHNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3J1bGVzTmVlZHNcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaW50ZXJydXB0aWJsZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvaW50ZXJydXB0aWJsZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwibWluTGVuZ3RoXCI6IDEsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcIm1pbkl0ZW1zXCI6IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIFwiaW5jbHVkZVJ1bGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBbXG4gICAgICAgICAgICAgICAgXCJhcnJheVwiLFxuICAgICAgICAgICAgICAgIFwibnVsbFwiLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIllvdSBjYW4gdXNlIHJ1bGVzIHRvIGNvbmRpdGlvbmFsbHkgaW5jbHVkZSBvdGhlciBjb25maWd1cmF0aW9uIGZpbGVzLiBbTGVhcm4gTW9yZV0oaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vY2kveWFtbC9pbmNsdWRlcy8jdXNlLXJ1bGVzLXdpdGgtaW5jbHVkZSkuXCIsXG4gICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICBcImFueU9mXCI6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImlmXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9pZlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjaGFuZ2VzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9jaGFuZ2VzXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImV4aXN0c1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvZXhpc3RzXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIndoZW5cIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1hcmtkb3duRGVzY3JpcHRpb25cIjogXCJVc2UgYHdoZW46IG5ldmVyYCB0byBleGNsdWRlIHRoZSBjb25maWd1cmF0aW9uIGZpbGUgaWYgdGhlIGNvbmRpdGlvbiBtYXRjaGVzLiBbTGVhcm4gTW9yZV0oaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vY2kveWFtbC9pbmNsdWRlcy8jaW5jbHVkZS13aXRoLXJ1bGVzaWYpLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm9uZU9mXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm5ldmVyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYWx3YXlzXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibnVsbFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcIm1pbkxlbmd0aFwiOiAxLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJtaW5JdGVtc1wiOiAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBcIndvcmtmbG93TmFtZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIkRlZmluZXMgdGhlIHBpcGVsaW5lIG5hbWUuIFtMZWFybiBNb3JlXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9jaS95YW1sLyN3b3JrZmxvd25hbWUpLlwiLFxuICAgICAgICAgICAgXCJtaW5MZW5ndGhcIjogMSxcbiAgICAgICAgICAgIFwibWF4TGVuZ3RoXCI6IDI1NSxcbiAgICAgICAgfSxcbiAgICAgICAgXCJ3b3JrZmxvd0F1dG9DYW5jZWxcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiRGVmaW5lIHRoZSBydWxlcyBmb3Igd2hlbiBwaXBlbGluZSBzaG91bGQgYmUgYXV0b21hdGljYWxseSBjYW5jZWxsZWQuXCIsXG4gICAgICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICBcIm9uX2pvYl9mYWlsdXJlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJtYXJrZG93bkRlc2NyaXB0aW9uXCI6IFwiRGVmaW5lIHdoaWNoIGpvYnMgdG8gc3RvcCBhZnRlciBhIGpvYiBmYWlscy5cIixcbiAgICAgICAgICAgICAgICAgICAgXCJkZWZhdWx0XCI6IFwibm9uZVwiLFxuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwibm9uZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJhbGxcIixcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwib25fbmV3X2NvbW1pdFwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIkNvbmZpZ3VyZSB0aGUgYmVoYXZpb3Igb2YgdGhlIGF1dG8tY2FuY2VsIHJlZHVuZGFudCBwaXBlbGluZXMgZmVhdHVyZS4gW0xlYXJuIE1vcmVdKGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2NpL3lhbWwvI3dvcmtmbG93YXV0b19jYW5jZWxvbl9uZXdfY29tbWl0KVwiLFxuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiY29uc2VydmF0aXZlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcImludGVycnVwdGlibGVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwibm9uZVwiLFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBcImdsb2JhbFZhcmlhYmxlc1wiOiB7XG4gICAgICAgICAgICBcIm1hcmtkb3duRGVzY3JpcHRpb25cIjogXCJEZWZpbmVzIGRlZmF1bHQgdmFyaWFibGVzIGZvciBhbGwgam9icy4gSm9iIGxldmVsIHByb3BlcnR5IG92ZXJyaWRlcyBnbG9iYWwgdmFyaWFibGVzLiBbTGVhcm4gTW9yZV0oaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vY2kveWFtbC8jdmFyaWFibGVzKS5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgXCJwYXR0ZXJuUHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgXCIuKlwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwib25lT2ZcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm51bWJlclwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidmFsdWVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1hcmtkb3duRGVzY3JpcHRpb25cIjogXCJEZWZhdWx0IHZhbHVlIG9mIHRoZSB2YXJpYWJsZS4gSWYgdXNlZCB3aXRoIGBvcHRpb25zYCwgYHZhbHVlYCBtdXN0IGJlIGluY2x1ZGVkIGluIHRoZSBhcnJheS4gW0xlYXJuIE1vcmVdKGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2NpL3lhbWwvI3ZhcmlhYmxlc3ZhbHVlKVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm9wdGlvbnNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWluSXRlbXNcIjogMSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidW5pcXVlSXRlbXNcIjogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIkEgbGlzdCBvZiBwcmVkZWZpbmVkIHZhbHVlcyB0aGF0IHVzZXJzIGNhbiBzZWxlY3QgZnJvbSBpbiB0aGUgKipSdW4gcGlwZWxpbmUqKiBwYWdlIHdoZW4gcnVubmluZyBhIHBpcGVsaW5lIG1hbnVhbGx5LiBbTGVhcm4gTW9yZV0oaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vY2kveWFtbC8jdmFyaWFibGVzb3B0aW9ucylcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIkV4cGxhaW5zIHdoYXQgdGhlIHZhcmlhYmxlIGlzIHVzZWQgZm9yLCB3aGF0IHRoZSBhY2NlcHRhYmxlIHZhbHVlcyBhcmUuIFZhcmlhYmxlcyB3aXRoIGBkZXNjcmlwdGlvbmAgYXJlIHByZWZpbGxlZCB3aGVuIHJ1bm5pbmcgYSBwaXBlbGluZSBtYW51YWxseS4gW0xlYXJuIE1vcmVdKGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2NpL3lhbWwvI3ZhcmlhYmxlc2Rlc2NyaXB0aW9uKS5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJleHBhbmRcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtYXJrZG93bkRlc2NyaXB0aW9uXCI6IFwiSWYgdGhlIHZhcmlhYmxlIGlzIGV4cGFuZGFibGUgb3Igbm90LiBbTGVhcm4gTW9yZV0oaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vY2kveWFtbC8jdmFyaWFibGVzZXhwYW5kKS5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBcImpvYlZhcmlhYmxlc1wiOiB7XG4gICAgICAgICAgICBcIm1hcmtkb3duRGVzY3JpcHRpb25cIjogXCJEZWZpbmVzIHZhcmlhYmxlcyBmb3IgYSBqb2IuIFtMZWFybiBNb3JlXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9jaS95YW1sLyN2YXJpYWJsZXMpLlwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICBcInBhdHRlcm5Qcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICBcIi4qXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJvbmVPZlwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJib29sZWFuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibnVtYmVyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ2YWx1ZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJleHBhbmRcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtYXJrZG93bkRlc2NyaXB0aW9uXCI6IFwiRGVmaW5lcyBpZiB0aGUgdmFyaWFibGUgaXMgZXhwYW5kYWJsZSBvciBub3QuIFtMZWFybiBNb3JlXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9jaS95YW1sLyN2YXJpYWJsZXNleHBhbmQpLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIFwicnVsZXNWYXJpYWJsZXNcIjoge1xuICAgICAgICAgICAgXCJtYXJrZG93bkRlc2NyaXB0aW9uXCI6IFwiRGVmaW5lcyB2YXJpYWJsZXMgZm9yIGEgcnVsZSByZXN1bHQuIFtMZWFybiBNb3JlXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9jaS95YW1sLyNydWxlc3ZhcmlhYmxlcykuXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgICAgIFwicGF0dGVyblByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgIFwiLipcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJib29sZWFuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcIm51bWJlclwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgXCJpZlwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIkV4cHJlc3Npb24gdG8gZXZhbHVhdGUgd2hldGhlciBhZGRpdGlvbmFsIGF0dHJpYnV0ZXMgc2hvdWxkIGJlIHByb3ZpZGVkIHRvIHRoZSBqb2IuIFtMZWFybiBNb3JlXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9jaS95YW1sLyNydWxlc2lmKS5cIixcbiAgICAgICAgfSxcbiAgICAgICAgXCJjaGFuZ2VzXCI6IHtcbiAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIkFkZGl0aW9uYWwgYXR0cmlidXRlcyB3aWxsIGJlIHByb3ZpZGVkIHRvIGpvYiBpZiBhbnkgb2YgdGhlIHByb3ZpZGVkIHBhdGhzIG1hdGNoZXMgYSBtb2RpZmllZCBmaWxlLiBbTGVhcm4gTW9yZV0oaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vY2kveWFtbC8jcnVsZXNjaGFuZ2VzKS5cIixcbiAgICAgICAgICAgIFwiYW55T2ZcIjogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJwYXRoc1wiLFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJwYXRoc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiTGlzdCBvZiBmaWxlIHBhdGhzLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiY29tcGFyZV90b1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlJlZiBmb3IgY29tcGFyaW5nIGNoYW5nZXMuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgICBcImV4aXN0c1wiOiB7XG4gICAgICAgICAgICBcIm1hcmtkb3duRGVzY3JpcHRpb25cIjogXCJBZGRpdGlvbmFsIGF0dHJpYnV0ZXMgd2lsbCBiZSBwcm92aWRlZCB0byBqb2IgaWYgYW55IG9mIHRoZSBwcm92aWRlZCBwYXRocyBtYXRjaGVzIGFuIGV4aXN0aW5nIGZpbGUgaW4gdGhlIHJlcG9zaXRvcnkuIFtMZWFybiBNb3JlXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9jaS95YW1sLyNydWxlc2V4aXN0cykuXCIsXG4gICAgICAgICAgICBcImFueU9mXCI6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwicGF0aHNcIixcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwicGF0aHNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkxpc3Qgb2YgZmlsZSBwYXRocy5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcInByb2plY3RcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJQYXRoIG9mIHRoZSBwcm9qZWN0IHRvIHNlYXJjaCBpbi5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwicGF0aHNcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwicHJvamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJwYXRoc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiTGlzdCBvZiBmaWxlIHBhdGhzLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwicHJvamVjdFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlBhdGggb2YgdGhlIHByb2plY3QgdG8gc2VhcmNoIGluLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwicmVmXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiUmVmIG9mIHRoZSBwcm9qZWN0IHRvIHNlYXJjaCBpbi5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICAgIFwidGltZW91dFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIkFsbG93cyB5b3UgdG8gY29uZmlndXJlIGEgdGltZW91dCBmb3IgYSBzcGVjaWZpYyBqb2IgKGUuZy4gYDEgbWludXRlYCwgYDFoIDMwbSAxMnNgKS4gW0xlYXJuIE1vcmVdKGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2NpL3lhbWwvI3RpbWVvdXQpLlwiLFxuICAgICAgICAgICAgXCJtaW5MZW5ndGhcIjogMSxcbiAgICAgICAgfSxcbiAgICAgICAgXCJzdGFydF9pblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIlVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCAnd2hlbjogZGVsYXllZCcgdG8gc2V0IGhvdyBsb25nIHRvIGRlbGF5IGJlZm9yZSBzdGFydGluZyBhIGpvYi4gZS5nLiAnNScsIDUgc2Vjb25kcywgMzAgbWludXRlcywgMSB3ZWVrLCBldGMuIFtMZWFybiBNb3JlXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9jaS9qb2JzL2pvYl9jb250cm9sLyNydW4tYS1qb2ItYWZ0ZXItYS1kZWxheSkuXCIsXG4gICAgICAgICAgICBcIm1pbkxlbmd0aFwiOiAxLFxuICAgICAgICB9LFxuICAgICAgICBcInJ1bGVzTmVlZHNcIjoge1xuICAgICAgICAgICAgXCJtYXJrZG93bkRlc2NyaXB0aW9uXCI6IFwiVXNlIG5lZWRzIGluIHJ1bGVzIHRvIHVwZGF0ZSBqb2IgbmVlZHMgZm9yIHNwZWNpZmljIGNvbmRpdGlvbnMuIFdoZW4gYSBjb25kaXRpb24gbWF0Y2hlcyBhIHJ1bGUsIHRoZSBqb2IncyBuZWVkcyBjb25maWd1cmF0aW9uIGlzIGNvbXBsZXRlbHkgcmVwbGFjZWQgd2l0aCB0aGUgbmVlZHMgaW4gdGhlIHJ1bGUuIFtMZWFybiBNb3JlXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9jaS95YW1sLyNydWxlc25lZWRzKS5cIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICBcIm9uZU9mXCI6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJqb2JcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtaW5MZW5ndGhcIjogMSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIk5hbWUgb2YgYSBqb2IgdGhhdCBpcyBkZWZpbmVkIGluIHRoZSBwaXBlbGluZS5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYXJ0aWZhY3RzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiRG93bmxvYWQgYXJ0aWZhY3RzIG9mIHRoZSBqb2IgaW4gbmVlZHMuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm9wdGlvbmFsXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiV2hldGhlciB0aGUgam9iIG5lZWRzIHRvIGJlIHByZXNlbnQgaW4gdGhlIHBpcGVsaW5lIHRvIHJ1biBhaGVhZCBvZiB0aGUgY3VycmVudCBqb2IuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImpvYlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgXCJhbGxvd19mYWlsdXJlXCI6IHtcbiAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIkFsbG93IGpvYiB0byBmYWlsLiBBIGZhaWxlZCBqb2IgZG9lcyBub3QgY2F1c2UgdGhlIHBpcGVsaW5lIHRvIGZhaWwuIFtMZWFybiBNb3JlXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9jaS95YW1sLyNhbGxvd19mYWlsdXJlKS5cIixcbiAgICAgICAgICAgIFwib25lT2ZcIjogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlNldHRpbmcgdGhpcyBvcHRpb24gdG8gdHJ1ZSB3aWxsIGFsbG93IHRoZSBqb2IgdG8gZmFpbCB3aGlsZSBzdGlsbCBsZXR0aW5nIHRoZSBwaXBlbGluZSBwYXNzLlwiLFxuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiZGVmYXVsdFwiOiBmYWxzZSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkV4aXQgY29kZSB0aGF0IGFyZSBub3QgY29uc2lkZXJlZCBmYWlsdXJlLiBUaGUgam9iIGZhaWxzIGZvciBhbnkgb3RoZXIgZXhpdCBjb2RlLlwiLFxuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgICAgICAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICBcImV4aXRfY29kZXNcIixcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiZXhpdF9jb2Rlc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIllvdSBjYW4gbGlzdCB3aGljaCBleGl0IGNvZGVzIGFyZSBub3QgY29uc2lkZXJlZCBmYWlsdXJlcy4gVGhlIGpvYiBmYWlscyBmb3IgYW55IG90aGVyIGV4aXQgY29kZS5cIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJleGl0X2NvZGVzXCIsXG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcImV4aXRfY29kZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtaW5JdGVtc1wiOiAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidW5pcXVlSXRlbXNcIjogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgICBcInBhcmFsbGVsXCI6IHtcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJTcGxpdHMgdXAgYSBzaW5nbGUgam9iIGludG8gbXVsdGlwbGUgdGhhdCBydW4gaW4gcGFyYWxsZWwuIFByb3ZpZGVzIGBDSV9OT0RFX0lOREVYYCBhbmQgYENJX05PREVfVE9UQUxgIGVudmlyb25tZW50IHZhcmlhYmxlcyB0byB0aGUgam9icy5cIixcbiAgICAgICAgICAgIFwib25lT2ZcIjogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiLFxuICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiQ3JlYXRlcyBOIGluc3RhbmNlcyBvZiB0aGUgam9iIHRoYXQgcnVuIGluIHBhcmFsbGVsLlwiLFxuICAgICAgICAgICAgICAgICAgICBcImRlZmF1bHRcIjogMCxcbiAgICAgICAgICAgICAgICAgICAgXCJtaW5pbXVtXCI6IDEsXG4gICAgICAgICAgICAgICAgICAgIFwibWF4aW11bVwiOiAyMDAsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJtYXRyaXhcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkRlZmluZXMgZGlmZmVyZW50IHZhcmlhYmxlcyBmb3Igam9icyB0aGF0IGFyZSBydW5uaW5nIGluIHBhcmFsbGVsLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkRlZmluZXMgdGhlIHZhcmlhYmxlcyBmb3IgYSBzcGVjaWZpYyBqb2IuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibnVtYmVyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJhcnJheVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWF4SXRlbXNcIjogMjAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICBcIm1hdHJpeFwiLFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgICBcInBhcmFsbGVsX21hdHJpeFwiOiB7XG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiVXNlIHRoZSBgbmVlZHM6cGFyYWxsZWw6bWF0cml4YCBrZXl3b3JkIHRvIHNwZWNpZnkgcGFyYWxsZWxpemVkIGpvYnMgbmVlZGVkIHRvIGJlIGNvbXBsZXRlZCBmb3IgdGhlIGpvYiB0byBydW4uIFtMZWFybiBNb3JlXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9jaS95YW1sLyNuZWVkc3BhcmFsbGVsbWF0cml4KVwiLFxuICAgICAgICAgICAgXCJvbmVPZlwiOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwibWF0cml4XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJEZWZpbmVzIGRpZmZlcmVudCB2YXJpYWJsZXMgZm9yIGpvYnMgdGhhdCBhcmUgcnVubmluZyBpbiBwYXJhbGxlbC5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJEZWZpbmVzIHRoZSB2YXJpYWJsZXMgZm9yIGEgc3BlY2lmaWMgam9iLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm51bWJlclwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYXJyYXlcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1heEl0ZW1zXCI6IDIwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJtYXRyaXhcIixcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgICAgXCJ3aGVuXCI6IHtcbiAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIkRlc2NyaWJlcyB0aGUgY29uZGl0aW9ucyBmb3Igd2hlbiB0byBydW4gdGhlIGpvYi4gRGVmYXVsdHMgdG8gJ29uX3N1Y2Nlc3MnLiBbTGVhcm4gTW9yZV0oaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vY2kveWFtbC8jd2hlbikuXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogXCJvbl9zdWNjZXNzXCIsXG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICAgICAgXCJvbl9zdWNjZXNzXCIsXG4gICAgICAgICAgICAgICAgXCJvbl9mYWlsdXJlXCIsXG4gICAgICAgICAgICAgICAgXCJhbHdheXNcIixcbiAgICAgICAgICAgICAgICBcIm5ldmVyXCIsXG4gICAgICAgICAgICAgICAgXCJtYW51YWxcIixcbiAgICAgICAgICAgICAgICBcImRlbGF5ZWRcIixcbiAgICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICAgIFwiY2FjaGVcIjoge1xuICAgICAgICAgICAgXCJtYXJrZG93bkRlc2NyaXB0aW9uXCI6IFwiVXNlIGBjYWNoZWAgdG8gc3BlY2lmeSBhIGxpc3Qgb2YgZmlsZXMgYW5kIGRpcmVjdG9yaWVzIHRvIGNhY2hlIGJldHdlZW4gam9icy4gWW91IGNhbiBvbmx5IHVzZSBwYXRocyB0aGF0IGFyZSBpbiB0aGUgbG9jYWwgd29ya2luZyBjb3B5LiBbTGVhcm4gTW9yZV0oaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vY2kveWFtbC8jY2FjaGUpXCIsXG4gICAgICAgICAgICBcIm9uZU9mXCI6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvY2FjaGVfaXRlbVwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvY2FjaGVfaXRlbVwiLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgICBcImNhY2hlX2l0ZW1cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgIFwia2V5XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJtYXJrZG93bkRlc2NyaXB0aW9uXCI6IFwiVXNlIHRoZSBgY2FjaGU6a2V5YCBrZXl3b3JkIHRvIGdpdmUgZWFjaCBjYWNoZSBhIHVuaXF1ZSBpZGVudGlmeWluZyBrZXkuIEFsbCBqb2JzIHRoYXQgdXNlIHRoZSBzYW1lIGNhY2hlIGtleSB1c2UgdGhlIHNhbWUgY2FjaGUsIGluY2x1ZGluZyBpbiBkaWZmZXJlbnQgcGlwZWxpbmVzLiBNdXN0IGJlIHVzZWQgd2l0aCBgY2FjaGU6cGF0aGAsIG9yIG5vdGhpbmcgaXMgY2FjaGVkLiBbTGVhcm4gTW9yZV0oaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vY2kveWFtbC8jY2FjaGVrZXkpLlwiLFxuICAgICAgICAgICAgICAgICAgICBcIm9uZU9mXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJmaWxlc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1hcmtkb3duRGVzY3JpcHRpb25cIjogXCJVc2UgdGhlIGBjYWNoZTprZXk6ZmlsZXNgIGtleXdvcmQgdG8gZ2VuZXJhdGUgYSBuZXcgY2FjaGUga2V5IHdoZW4gc3BlY2lmaWVkIGZpbGUgY29udGVudCBjaGFuZ2VzLiBDYWNoZSBrZXlzIHJlbWFpbiBzdGFibGUgYWNyb3NzIGJyYW5jaGVzIHdpdGggaWRlbnRpY2FsIGZpbGUgY29udGVudC4gW0xlYXJuIE1vcmVdKGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2NpL3lhbWwvI2NhY2hla2V5ZmlsZXMpXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtaW5JdGVtc1wiOiAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtYXhJdGVtc1wiOiAyLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImZpbGVzX2NvbW1pdHNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtYXJrZG93bkRlc2NyaXB0aW9uXCI6IFwiVXNlIHRoZSBgY2FjaGU6a2V5OmZpbGVzX2NvbW1pdHNgIGtleXdvcmQgdG8gZ2VuZXJhdGUgYSBuZXcgY2FjaGUga2V5IHdoZW4gdGhlIGxhdGVzdCBjb21taXQgY2hhbmdlcyBmb3IgdGhlIHNwZWNpZmllZCBmaWxlcy4gW0xlYXJuIE1vcmVdKGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2NpL3lhbWwvI2NhY2hla2V5ZmlsZXNfY29tbWl0cylcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1pbkl0ZW1zXCI6IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1heEl0ZW1zXCI6IDIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicHJlZml4XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIlVzZSBgY2FjaGU6a2V5OnByZWZpeGAgdG8gY29tYmluZSBhIHByZWZpeCB3aXRoIHRoZSBTSEEgY29tcHV0ZWQgZm9yIGBjYWNoZTprZXk6ZmlsZXNgIG9yIGBjYWNoZTprZXk6ZmlsZXNfY29tbWl0c2AuIFtMZWFybiBNb3JlXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9jaS95YW1sLyNjYWNoZWtleXByZWZpeClcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJwYXRoc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIlVzZSB0aGUgYGNhY2hlOnBhdGhzYCBrZXl3b3JkIHRvIGNob29zZSB3aGljaCBmaWxlcyBvciBkaXJlY3RvcmllcyB0byBjYWNoZS4gW0xlYXJuIE1vcmVdKGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2NpL3lhbWwvI2NhY2hlcGF0aHMpXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcInBvbGljeVwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICBcIm1hcmtkb3duRGVzY3JpcHRpb25cIjogXCJEZXRlcm1pbmVzIHRoZSBzdHJhdGVneSBmb3IgZG93bmxvYWRpbmcgYW5kIHVwZGF0aW5nIHRoZSBjYWNoZS4gW0xlYXJuIE1vcmVdKGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2NpL3lhbWwvI2NhY2hlcG9saWN5KVwiLFxuICAgICAgICAgICAgICAgICAgICBcImRlZmF1bHRcIjogXCJwdWxsLXB1c2hcIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwidW5wcm90ZWN0XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgICAgICAgICBcIm1hcmtkb3duRGVzY3JpcHRpb25cIjogXCJVc2UgYHVucHJvdGVjdDogdHJ1ZWAgdG8gc2V0IGEgY2FjaGUgdG8gYmUgc2hhcmVkIGJldHdlZW4gcHJvdGVjdGVkIGFuZCB1bnByb3RlY3RlZCBicmFuY2hlcy5cIixcbiAgICAgICAgICAgICAgICAgICAgXCJkZWZhdWx0XCI6IGZhbHNlLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJ1bnRyYWNrZWRcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCIsXG4gICAgICAgICAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIlVzZSBgdW50cmFja2VkOiB0cnVlYCB0byBjYWNoZSBhbGwgZmlsZXMgdGhhdCBhcmUgdW50cmFja2VkIGluIHlvdXIgR2l0IHJlcG9zaXRvcnkuIFtMZWFybiBNb3JlXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9jaS95YW1sLyNjYWNoZXVudHJhY2tlZClcIixcbiAgICAgICAgICAgICAgICAgICAgXCJkZWZhdWx0XCI6IGZhbHNlLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJ3aGVuXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIkRlZmluZXMgd2hlbiB0byBzYXZlIHRoZSBjYWNoZSwgYmFzZWQgb24gdGhlIHN0YXR1cyBvZiB0aGUgam9iLiBbTGVhcm4gTW9yZV0oaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vY2kveWFtbC8jY2FjaGV3aGVuKS5cIixcbiAgICAgICAgICAgICAgICAgICAgXCJkZWZhdWx0XCI6IFwib25fc3VjY2Vzc1wiLFxuICAgICAgICAgICAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJvbl9zdWNjZXNzXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcIm9uX2ZhaWx1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiYWx3YXlzXCIsXG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcImZhbGxiYWNrX2tleXNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgICAgICAgICBcIm1hcmtkb3duRGVzY3JpcHRpb25cIjogXCJMaXN0IG9mIGtleXMgdG8gZG93bmxvYWQgY2FjaGUgZnJvbSBpZiBubyBjYWNoZSBoaXQgb2NjdXJyZWQgZm9yIGtleVwiLFxuICAgICAgICAgICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIm1heEl0ZW1zXCI6IDUsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIFwiZmlsdGVyX3JlZnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJGaWx0ZXIgam9iIGJ5IGRpZmZlcmVudCBrZXl3b3JkcyB0aGF0IGRldGVybWluZSBvcmlnaW4gb3Igc3RhdGUsIG9yIGJ5IHN1cHBseWluZyBzdHJpbmcvcmVnZXggdG8gY2hlY2sgYWdhaW5zdCBicmFuY2gvdGFnIG5hbWVzLlwiLFxuICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJhbnlPZlwiOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwib25lT2ZcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYnJhbmNoZXNcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIldoZW4gYSBicmFuY2ggaXMgcHVzaGVkLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0YWdzXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJXaGVuIGEgdGFnIGlzIHB1c2hlZC5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYXBpXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJXaGVuIGEgcGlwZWxpbmUgaGFzIGJlZW4gdHJpZ2dlcmVkIGJ5IGEgc2Vjb25kIHBpcGVsaW5lcyBBUEkgKG5vdCB0cmlnZ2VycyBBUEkpLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJleHRlcm5hbFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiV2hlbiB1c2luZyBDSSBzZXJ2aWNlcyBvdGhlciB0aGFuIEdpdExhYlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJwaXBlbGluZXNcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkZvciBtdWx0aS1wcm9qZWN0IHRyaWdnZXJzLCBjcmVhdGVkIHVzaW5nIHRoZSBBUEkgd2l0aCAnQ0lfSk9CX1RPS0VOJy5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicHVzaGVzXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJQaXBlbGluZSBpcyB0cmlnZ2VyZWQgYnkgYSBgZ2l0IHB1c2hgIGJ5IHRoZSB1c2VyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInNjaGVkdWxlc1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiRm9yIHNjaGVkdWxlZCBwaXBlbGluZXMuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInRyaWdnZXJzXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJGb3IgcGlwZWxpbmVzIGNyZWF0ZWQgdXNpbmcgYSB0cmlnZ2VyIHRva2VuLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ3ZWJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkZvciBwaXBlbGluZXMgY3JlYXRlZCB1c2luZyAqUnVuIHBpcGVsaW5lKiBidXR0b24gaW4gR2l0TGFiIFVJICh1bmRlciB5b3VyIHByb2plY3QncyAqUGlwZWxpbmVzKikuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlN0cmluZyBvciByZWd1bGFyIGV4cHJlc3Npb24gdG8gbWF0Y2ggYWdhaW5zdCB0YWcgb3IgYnJhbmNoIG5hbWVzLlwiLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBcImZpbHRlclwiOiB7XG4gICAgICAgICAgICBcIm9uZU9mXCI6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcIm51bGxcIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9maWx0ZXJfcmVmc1wiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgICAgICAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwicmVmc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9maWx0ZXJfcmVmc1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwia3ViZXJuZXRlc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJhY3RpdmVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJGaWx0ZXIgam9iIGJhc2VkIG9uIGlmIEt1YmVybmV0ZXMgaW50ZWdyYXRpb24gaXMgYWN0aXZlLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidmFyaWFibGVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIkZpbHRlciBqb2IgYnkgY2hlY2tpbmcgY29tcGFyaW5nIHZhbHVlcyBvZiBDSS9DRCB2YXJpYWJsZXMuIFtMZWFybiBNb3JlXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9jaS9qb2JzL2pvYl9jb250cm9sLyNjaWNkLXZhcmlhYmxlLWV4cHJlc3Npb25zKS5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcImNoYW5nZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkZpbHRlciBqb2IgY3JlYXRpb24gYmFzZWQgb24gZmlsZXMgdGhhdCB3ZXJlIG1vZGlmaWVkIGluIGEgZ2l0IHB1c2guXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgICBcInJldHJ5XCI6IHtcbiAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIlJldHJ5IGEgam9iIGlmIGl0IGZhaWxzLiBDYW4gYmUgYSBzaW1wbGUgaW50ZWdlciBvciBvYmplY3QgZGVmaW5pdGlvbi4gW0xlYXJuIE1vcmVdKGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2NpL3lhbWwvI3JldHJ5KS5cIixcbiAgICAgICAgICAgIFwib25lT2ZcIjogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9yZXRyeV9tYXhcIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcIm1heFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9yZXRyeV9tYXhcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcIndoZW5cIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIkVpdGhlciBhIHNpbmdsZSBvciBhcnJheSBvZiBlcnJvciB0eXBlcyB0byB0cmlnZ2VyIGpvYiByZXRyeS4gW0xlYXJuIE1vcmVdKGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2NpL3lhbWwvI3JldHJ5d2hlbikuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJvbmVPZlwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvcmV0cnlfZXJyb3JzXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3JldHJ5X2Vycm9yc1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiZXhpdF9jb2Rlc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtYXJrZG93bkRlc2NyaXB0aW9uXCI6IFwiRWl0aGVyIGEgc2luZ2xlIG9yIGFycmF5IG9mIGV4aXQgY29kZXMgdG8gdHJpZ2dlciBqb2IgcmV0cnkgb24uIFtMZWFybiBNb3JlXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9jaS95YW1sLyNyZXRyeWV4aXRfY29kZXMpLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwib25lT2ZcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiUmV0cnkgd2hlbiB0aGUgam9iIGV4aXQgY29kZSBpcyBpbmNsdWRlZCBpbiB0aGUgYXJyYXkncyB2YWx1ZXMuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtaW5JdGVtc1wiOiAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ1bmlxdWVJdGVtc1wiOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlJldHJ5IHdoZW4gdGhlIGpvYiBleGl0IGNvZGUgaXMgZXF1YWwgdG8uXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICAgIFwicmV0cnlfbWF4XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJUaGUgbnVtYmVyIG9mIHRpbWVzIHRoZSBqb2Igd2lsbCBiZSByZXRyaWVkIGlmIGl0IGZhaWxzLiBEZWZhdWx0cyB0byAwIGFuZCBjYW4gbWF4IGJlIHJldHJpZWQgMiB0aW1lcyAoMyB0aW1lcyB0b3RhbCkuXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogMCxcbiAgICAgICAgICAgIFwibWluaW11bVwiOiAwLFxuICAgICAgICAgICAgXCJtYXhpbXVtXCI6IDIsXG4gICAgICAgIH0sXG4gICAgICAgIFwicmV0cnlfZXJyb3JzXCI6IHtcbiAgICAgICAgICAgIFwib25lT2ZcIjogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgXCJjb25zdFwiOiBcImFsd2F5c1wiLFxuICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiUmV0cnkgb24gYW55IGZhaWx1cmUgKGRlZmF1bHQpLlwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcImNvbnN0XCI6IFwidW5rbm93bl9mYWlsdXJlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJSZXRyeSB3aGVuIHRoZSBmYWlsdXJlIHJlYXNvbiBpcyB1bmtub3duLlwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcImNvbnN0XCI6IFwic2NyaXB0X2ZhaWx1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlJldHJ5IHdoZW4gdGhlIHNjcmlwdCBmYWlsZWQuXCIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIFwiY29uc3RcIjogXCJhcGlfZmFpbHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiUmV0cnkgb24gQVBJIGZhaWx1cmUuXCIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIFwiY29uc3RcIjogXCJzdHVja19vcl90aW1lb3V0X2ZhaWx1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlJldHJ5IHdoZW4gdGhlIGpvYiBnb3Qgc3R1Y2sgb3IgdGltZWQgb3V0LlwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcImNvbnN0XCI6IFwicnVubmVyX3N5c3RlbV9mYWlsdXJlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJSZXRyeSBpZiB0aGVyZSBpcyBhIHJ1bm5lciBzeXN0ZW0gZmFpbHVyZSAoZm9yIGV4YW1wbGUsIGpvYiBzZXR1cCBmYWlsZWQpLlwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcImNvbnN0XCI6IFwicnVubmVyX3Vuc3VwcG9ydGVkXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJSZXRyeSBpZiB0aGUgcnVubmVyIGlzIHVuc3VwcG9ydGVkLlwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcImNvbnN0XCI6IFwic3RhbGVfc2NoZWR1bGVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlJldHJ5IGlmIGEgZGVsYXllZCBqb2IgY291bGQgbm90IGJlIGV4ZWN1dGVkLlwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcImNvbnN0XCI6IFwiam9iX2V4ZWN1dGlvbl90aW1lb3V0XCIsXG4gICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJSZXRyeSBpZiB0aGUgc2NyaXB0IGV4Y2VlZGVkIHRoZSBtYXhpbXVtIGV4ZWN1dGlvbiB0aW1lIHNldCBmb3IgdGhlIGpvYi5cIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgXCJjb25zdFwiOiBcImFyY2hpdmVkX2ZhaWx1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlJldHJ5IGlmIHRoZSBqb2IgaXMgYXJjaGl2ZWQgYW5kIGNhbuKAmXQgYmUgcnVuLlwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcImNvbnN0XCI6IFwidW5tZXRfcHJlcmVxdWlzaXRlc1wiLFxuICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiUmV0cnkgaWYgdGhlIGpvYiBmYWlsZWQgdG8gY29tcGxldGUgcHJlcmVxdWlzaXRlIHRhc2tzLlwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcImNvbnN0XCI6IFwic2NoZWR1bGVyX2ZhaWx1cmVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlJldHJ5IGlmIHRoZSBzY2hlZHVsZXIgZmFpbGVkIHRvIGFzc2lnbiB0aGUgam9iIHRvIGEgcnVubmVyLlwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcImNvbnN0XCI6IFwiZGF0YV9pbnRlZ3JpdHlfZmFpbHVyZVwiLFxuICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiUmV0cnkgaWYgdGhlcmUgaXMgYW4gdW5rbm93biBqb2IgcHJvYmxlbS5cIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgICAgXCJpbnRlcnJ1cHRpYmxlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIkludGVycnVwdGlibGUgaXMgdXNlZCB0byBpbmRpY2F0ZSB0aGF0IGEgam9iIHNob3VsZCBiZSBjYW5jZWxlZCBpZiBtYWRlIHJlZHVuZGFudCBieSBhIG5ld2VyIHBpcGVsaW5lIHJ1bi4gW0xlYXJuIE1vcmVdKGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2NpL3lhbWwvI2ludGVycnVwdGlibGUpLlwiLFxuICAgICAgICAgICAgXCJkZWZhdWx0XCI6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgICBcImlucHV0c1wiOiB7XG4gICAgICAgICAgICBcIm1hcmtkb3duRGVzY3JpcHRpb25cIjogXCJVc2VkIHRvIHBhc3MgaW5wdXQgdmFsdWVzIHRvIGluY2x1ZGVkIHRlbXBsYXRlcywgY29tcG9uZW50cywgZG93bnN0cmVhbSBwaXBlbGluZXMsIG9yIGNoaWxkIHBpcGVsaW5lcy4gW0xlYXJuIE1vcmVdKGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2NpL2lucHV0cy8pLlwiLFxuICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICBcInBhdHRlcm5Qcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICBcIl5bYS16QS1aMC05Xy1dKyRcIjoge1xuICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiSW5wdXQgcGFyYW1ldGVyIHZhbHVlIHRoYXQgbWF0Y2hlcyBwYXJhbWV0ZXIgbmFtZXMgZGVmaW5lZCBpbiBzcGVjOmlucHV0cyBvZiB0aGUgaW5jbHVkZWQgY29uZmlndXJhdGlvbi5cIixcbiAgICAgICAgICAgICAgICAgICAgXCJvbmVPZlwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtYXhMZW5ndGhcIjogMTAyNCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibnVtYmVyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJvbmVPZlwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcIm51bWJlclwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwibnVsbFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICAgIH0sXG4gICAgICAgIFwiam9iXCI6IHtcbiAgICAgICAgICAgIFwiYWxsT2ZcIjogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9qb2JfdGVtcGxhdGVcIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgICAgXCJqb2JfdGVtcGxhdGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICBcImltYWdlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9pbWFnZVwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJzZXJ2aWNlc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvc2VydmljZXNcIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiYmVmb3JlX3NjcmlwdFwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvYmVmb3JlX3NjcmlwdFwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJhZnRlcl9zY3JpcHRcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2FmdGVyX3NjcmlwdFwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJob29rc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvaG9va3NcIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwicnVsZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3J1bGVzXCIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcInZhcmlhYmxlc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvam9iVmFyaWFibGVzXCIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcImNhY2hlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9jYWNoZVwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJpZF90b2tlbnNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2lkX3Rva2Vuc1wiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJpZGVudGl0eVwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvaWRlbnRpdHlcIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiaW5wdXRzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9qb2JJbnB1dHNcIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwic2VjcmV0c1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvc2VjcmV0c1wiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJzY3JpcHRcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3NjcmlwdFwiLFxuICAgICAgICAgICAgICAgICAgICBcIm1hcmtkb3duRGVzY3JpcHRpb25cIjogXCJTaGVsbCBzY3JpcHRzIGV4ZWN1dGVkIGJ5IHRoZSBSdW5uZXIuIFRoZSBvbmx5IHJlcXVpcmVkIHByb3BlcnR5IG9mIGpvYnMuIEJlIGNhcmVmdWwgd2l0aCBzcGVjaWFsIGNoYXJhY3RlcnMgKGUuZy4gYDpgLCBge2AsIGB9YCwgYCZgKSBhbmQgdXNlIHNpbmdsZSBvciBkb3VibGUgcXVvdGVzIHRvIGF2b2lkIGlzc3Vlcy4gW0xlYXJuIE1vcmVdKGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2NpL3lhbWwvI3NjcmlwdClcIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwicnVuXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9zdGVwc1wiLFxuICAgICAgICAgICAgICAgICAgICBcIm1hcmtkb3duRGVzY3JpcHRpb25cIjogXCJTcGVjaWZpZXMgYSBsaXN0IG9mIHN0ZXBzIHRvIGV4ZWN1dGUgaW4gdGhlIGpvYi4gVGhlIGBydW5gIGtleXdvcmQgaXMgYW4gYWx0ZXJuYXRpdmUgdG8gYHNjcmlwdGAgYW5kIGFsbG93cyBmb3IgbW9yZSBhZHZhbmNlZCBqb2IgY29uZmlndXJhdGlvbi4gRWFjaCBzdGVwIGlzIGFuIG9iamVjdCB0aGF0IGRlZmluZXMgYSBzaW5nbGUgdGFzayBvciBjb21tYW5kLiBVc2UgZWl0aGVyIGBydW5gIG9yIGBzY3JpcHRgIGluIGEgam9iLCBidXQgbm90IGJvdGgsIG90aGVyd2lzZSB0aGUgcGlwZWxpbmUgd2lsbCBlcnJvciBvdXQuXCIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcInN0YWdlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkRlZmluZSB3aGF0IHN0YWdlIHRoZSBqb2Igd2lsbCBydW4gaW4uXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiYW55T2ZcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWluTGVuZ3RoXCI6IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtaW5JdGVtc1wiOiAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwib25seVwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvZmlsdGVyXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJKb2Igd2lsbCBydW4gKm9ubHkqIHdoZW4gdGhlc2UgZmlsdGVyaW5nIG9wdGlvbnMgbWF0Y2guXCIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcImV4dGVuZHNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiVGhlIG5hbWUgb2Ygb25lIG9yIG1vcmUgam9icyB0byBpbmhlcml0IGNvbmZpZ3VyYXRpb24gZnJvbS5cIixcbiAgICAgICAgICAgICAgICAgICAgXCJvbmVPZlwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtaW5JdGVtc1wiOiAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwibmVlZHNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiVGhlIGxpc3Qgb2Ygam9icyBpbiBwcmV2aW91cyBzdGFnZXMgd2hvc2Ugc29sZSBjb21wbGV0aW9uIGlzIG5lZWRlZCB0byBzdGFydCB0aGUgY3VycmVudCBqb2IuXCIsXG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJvbmVPZlwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImpvYlwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJhcnRpZmFjdHNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm9wdGlvbmFsXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJwYXJhbGxlbFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9wYXJhbGxlbF9tYXRyaXhcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJqb2JcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInBpcGVsaW5lXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImpvYlwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJhcnRpZmFjdHNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInBhcmFsbGVsXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3BhcmFsbGVsX21hdHJpeFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImpvYlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJwaXBlbGluZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiam9iXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInByb2plY3RcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicmVmXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImFydGlmYWN0c1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicGFyYWxsZWxcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvcGFyYWxsZWxfbWF0cml4XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiam9iXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInByb2plY3RcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicmVmXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvIXJlZmVyZW5jZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJleGNlcHRcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2ZpbHRlclwiLFxuICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiSm9iIHdpbGwgcnVuICpleGNlcHQqIGZvciB3aGVuIHRoZXNlIGZpbHRlcmluZyBvcHRpb25zIG1hdGNoLlwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJ0YWdzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy90YWdzXCIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcImFsbG93X2ZhaWx1cmVcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2FsbG93X2ZhaWx1cmVcIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwidGltZW91dFwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvdGltZW91dFwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJ3aGVuXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy93aGVuXCIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcInN0YXJ0X2luXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9zdGFydF9pblwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJtYW51YWxfY29uZmlybWF0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJtYXJrZG93bkRlc2NyaXB0aW9uXCI6IFwiRGVzY3JpYmVzIHRoZSBDdXN0b20gY29uZmlybWF0aW9uIG1lc3NhZ2UgZm9yIGEgbWFudWFsIGpvYiBbTGVhcm4gTW9yZV0oaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vY2kveWFtbC8jd2hlbikuXCIsXG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJkZXBlbmRlbmNpZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiU3BlY2lmeSBhIGxpc3Qgb2Ygam9iIG5hbWVzIGZyb20gZWFybGllciBzdGFnZXMgZnJvbSB3aGljaCBhcnRpZmFjdHMgc2hvdWxkIGJlIGxvYWRlZC4gQnkgZGVmYXVsdCwgYWxsIHByZXZpb3VzIGFydGlmYWN0cyBhcmUgcGFzc2VkLiBVc2UgYW4gZW1wdHkgYXJyYXkgdG8gc2tpcCBkb3dubG9hZGluZyBhcnRpZmFjdHMuXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcImFydGlmYWN0c1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvYXJ0aWZhY3RzXCIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcImVudmlyb25tZW50XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlVzZWQgdG8gYXNzb2NpYXRlIGVudmlyb25tZW50IG1ldGFkYXRhIHdpdGggYSBkZXBsb3kuIEVudmlyb25tZW50IGNhbiBoYXZlIGEgbmFtZSBhbmQgVVJMIGF0dGFjaGVkIHRvIGl0LCBhbmQgd2lsbCBiZSBkaXNwbGF5ZWQgdW5kZXIgL2Vudmlyb25tZW50cyB1bmRlciB0aGUgcHJvamVjdC5cIixcbiAgICAgICAgICAgICAgICAgICAgXCJvbmVPZlwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJuYW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlRoZSBuYW1lIG9mIHRoZSBlbnZpcm9ubWVudCwgZS5nLiAncWEnLCAnc3RhZ2luZycsICdwcm9kdWN0aW9uJy5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWluTGVuZ3RoXCI6IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidXJsXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIldoZW4gc2V0LCB0aGlzIHdpbGwgZXhwb3NlIGJ1dHRvbnMgaW4gdmFyaW91cyBwbGFjZXMgZm9yIHRoZSBjdXJyZW50IGVudmlyb25tZW50IGluIEdpdExhYiwgdGhhdCB3aWxsIHRha2UgeW91IHRvIHRoZSBkZWZpbmVkIFVSTC5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZm9ybWF0XCI6IFwidXJpXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwib25fc3RvcFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJUaGUgbmFtZSBvZiBhIGpvYiB0byBleGVjdXRlIHdoZW4gdGhlIGVudmlyb25tZW50IGlzIGFib3V0IHRvIGJlIHN0b3BwZWQuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYWN0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJzdGFydFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicHJlcGFyZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwic3RvcFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidmVyaWZ5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJhY2Nlc3NcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiU3BlY2lmaWVzIHdoYXQgdGhpcyBqb2Igd2lsbCBkby4gJ3N0YXJ0JyAoZGVmYXVsdCkgaW5kaWNhdGVzIHRoZSBqb2Igd2lsbCBzdGFydCB0aGUgZGVwbG95bWVudC4gJ3ByZXBhcmUnLyd2ZXJpZnknLydhY2Nlc3MnIGluZGljYXRlcyB0aGlzIHdpbGwgbm90IGFmZmVjdCB0aGUgZGVwbG95bWVudC4gJ3N0b3AnIGluZGljYXRlcyB0aGlzIHdpbGwgc3RvcCB0aGUgZGVwbG95bWVudC5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVmYXVsdFwiOiBcInN0YXJ0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYXV0b19zdG9wX2luXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlRoZSBhbW91bnQgb2YgdGltZSBpdCBzaG91bGQgdGFrZSBiZWZvcmUgR2l0TGFiIHdpbGwgYXV0b21hdGljYWxseSBzdG9wIHRoZSBlbnZpcm9ubWVudC4gU3VwcG9ydHMgYSB3aWRlIHZhcmlldHkgb2YgZm9ybWF0cywgZS5nLiAnMSB3ZWVrJywgJzMgbWlucyA0IHNlYycsICcyIGhycyAyMCBtaW4nLCAnMmgyMG1pbicsICc2IG1vcyAxIGRheScsICc0NyB5cnMgNiBtb3MgYW5kIDRkJywgJzMgd2Vla3MgYW5kIDIgZGF5cycuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwia3ViZXJuZXRlc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJVc2VkIHRvIGNvbmZpZ3VyZSB0aGUga3ViZXJuZXRlcyBkZXBsb3ltZW50IGZvciB0aGlzIGVudmlyb25tZW50LiBUaGlzIGlzIGN1cnJlbnRseSBub3Qgc3VwcG9ydGVkIGZvciBrdWJlcm5ldGVzIGNsdXN0ZXJzIHRoYXQgYXJlIG1hbmFnZWQgYnkgR2l0TGFiLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImFnZW50XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJTcGVjaWZpZXMgdGhlIEdpdExhYiBBZ2VudCBmb3IgS3ViZXJuZXRlcy4gVGhlIGZvcm1hdCBpcyBgcGF0aC90by9hZ2VudC9wcm9qZWN0OmFnZW50LW5hbWVgLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJuYW1lc3BhY2VcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkRlcHJlY2F0ZWQuIFVzZSBgZGFzaGJvYXJkLm5hbWVzcGFjZWAgaW5zdGVhZC4gVGhlIGt1YmVybmV0ZXMgbmFtZXNwYWNlIHdoZXJlIHRoaXMgZW52aXJvbm1lbnQncyBkYXNoYm9hcmQgc2hvdWxkIGJlIGRlcGxveWVkIHRvLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1pbkxlbmd0aFwiOiAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJmbHV4X3Jlc291cmNlX3BhdGhcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkRlcHJlY2F0ZWQuIFVzZSBgZGFzaGJvYXJkLmZsdXhfcmVzb3VyY2VfcGF0aGAgaW5zdGVhZC4gVGhlIEZsdXggcmVzb3VyY2UgcGF0aCB0byBhc3NvY2lhdGUgd2l0aCB0aGlzIGVudmlyb25tZW50LiBUaGlzIG11c3QgYmUgdGhlIGZ1bGwgcmVzb3VyY2UgcGF0aC4gRm9yIGV4YW1wbGUsICdoZWxtLnRvb2xraXQuZmx1eGNkLmlvL3YyL25hbWVzcGFjZXMvZ2l0bGFiLWFnZW50L2hlbG1yZWxlYXNlcy9naXRsYWItYWdlbnQnLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtYW5hZ2VkX3Jlc291cmNlc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiVXNlZCB0byBjb25maWd1cmUgdGhlIG1hbmFnZWQgcmVzb3VyY2VzIGZvciB0aGlzIGVudmlyb25tZW50LlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJlbmFibGVkXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkluZGljYXRlcyB3aGV0aGVyIHRoZSBtYW5hZ2VkIHJlc291cmNlcyBhcmUgZW5hYmxlZCBmb3IgdGhpcyBlbnZpcm9ubWVudC5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlZmF1bHRcIjogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRhc2hib2FyZFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiVXNlZCB0byBjb25maWd1cmUgdGhlIGRhc2hib2FyZCBmb3IgdGhpcyBlbnZpcm9ubWVudC5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibmFtZXNwYWNlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiVGhlIGt1YmVybmV0ZXMgbmFtZXNwYWNlIHdoZXJlIHRoZSBkYXNoYm9hcmQgZm9yIHRoaXMgZW52aXJvbm1lbnQgc2hvdWxkIGJlIGRlcGxveWVkIHRvLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWluTGVuZ3RoXCI6IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJmbHV4X3Jlc291cmNlX3BhdGhcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJUaGUgRmx1eCByZXNvdXJjZSBwYXRoIHRvIGFzc29jaWF0ZSB3aXRoIHRoaXMgZW52aXJvbm1lbnQuIFRoaXMgbXVzdCBiZSB0aGUgZnVsbCByZXNvdXJjZSBwYXRoLiBGb3IgZXhhbXBsZSwgJ2hlbG0udG9vbGtpdC5mbHV4Y2QuaW8vdjIvbmFtZXNwYWNlcy9naXRsYWItYWdlbnQvaGVsbXJlbGVhc2VzL2dpdGxhYi1hZ2VudCcuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlcGxveW1lbnRfdGllclwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJFeHBsaWNpdGx5IHNwZWNpZmllcyB0aGUgdGllciBvZiB0aGUgZGVwbG95bWVudCBlbnZpcm9ubWVudCBpZiBub24tc3RhbmRhcmQgZW52aXJvbm1lbnQgbmFtZSBpcyB1c2VkLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibmFtZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJyZWxlYXNlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJJbmRpY2F0ZXMgdGhhdCB0aGUgam9iIGNyZWF0ZXMgYSBSZWxlYXNlLlwiLFxuICAgICAgICAgICAgICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0YWdfbmFtZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlRoZSB0YWdfbmFtZSBtdXN0IGJlIHNwZWNpZmllZC4gSXQgY2FuIHJlZmVyIHRvIGFuIGV4aXN0aW5nIEdpdCB0YWcgb3IgY2FuIGJlIHNwZWNpZmllZCBieSB0aGUgdXNlci5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1pbkxlbmd0aFwiOiAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidGFnX21lc3NhZ2VcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJNZXNzYWdlIHRvIHVzZSBpZiBjcmVhdGluZyBhIG5ldyBhbm5vdGF0ZWQgdGFnLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJTcGVjaWZpZXMgdGhlIGxvbmdlciBkZXNjcmlwdGlvbiBvZiB0aGUgUmVsZWFzZS5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1pbkxlbmd0aFwiOiAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwibmFtZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlRoZSBSZWxlYXNlIG5hbWUuIElmIG9taXR0ZWQsIGl0IGlzIHBvcHVsYXRlZCB3aXRoIHRoZSB2YWx1ZSBvZiByZWxlYXNlOiB0YWdfbmFtZS5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcInJlZlwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIklmIHRoZSByZWxlYXNlOiB0YWdfbmFtZSBkb2VzbuKAmXQgZXhpc3QgeWV0LCB0aGUgcmVsZWFzZSBpcyBjcmVhdGVkIGZyb20gcmVmLiByZWYgY2FuIGJlIGEgY29tbWl0IFNIQSwgYW5vdGhlciB0YWcgbmFtZSwgb3IgYSBicmFuY2ggbmFtZS5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcIm1pbGVzdG9uZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlRoZSB0aXRsZSBvZiBlYWNoIG1pbGVzdG9uZSB0aGUgcmVsZWFzZSBpcyBhc3NvY2lhdGVkIHdpdGguXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJyZWxlYXNlZF9hdFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlRoZSBkYXRlIGFuZCB0aW1lIHdoZW4gdGhlIHJlbGVhc2UgaXMgcmVhZHkuIERlZmF1bHRzIHRvIHRoZSBjdXJyZW50IGRhdGUgYW5kIHRpbWUgaWYgbm90IGRlZmluZWQuIFNob3VsZCBiZSBlbmNsb3NlZCBpbiBxdW90ZXMgYW5kIGV4cHJlc3NlZCBpbiBJU08gODYwMSBmb3JtYXQuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJmb3JtYXRcIjogXCJkYXRlLXRpbWVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcImFzc2V0c1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImxpbmtzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiSW5jbHVkZSBhc3NldCBsaW5rcyBpbiB0aGUgcmVsZWFzZS5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJuYW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlRoZSBuYW1lIG9mIHRoZSBsaW5rLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtaW5MZW5ndGhcIjogMSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ1cmxcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiVGhlIFVSTCB0byBkb3dubG9hZCBhIGZpbGUuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1pbkxlbmd0aFwiOiAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImZpbGVwYXRoXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlRoZSByZWRpcmVjdCBsaW5rIHRvIHRoZSB1cmwuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibGlua190eXBlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlRoZSBjb250ZW50IGtpbmQgb2Ygd2hhdCB1c2VycyBjYW4gZG93bmxvYWQgdmlhIHVybC5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJydW5ib29rXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJwYWNrYWdlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpbWFnZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwib3RoZXJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJuYW1lXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidXJsXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1pbkl0ZW1zXCI6IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJsaW5rc1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidGFnX25hbWVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIixcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiY292ZXJhZ2VcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIk11c3QgYmUgYSByZWd1bGFyIGV4cHJlc3Npb24sIG9wdGlvbmFsbHkgYnV0IHJlY29tbWVuZGVkIHRvIGJlIHF1b3RlZCwgYW5kIG11c3QgYmUgc3Vycm91bmRlZCB3aXRoICcvJy4gRXhhbXBsZTogJy9Db2RlIGNvdmVyYWdlOiBcXFxcZCtcXFxcLlxcXFxkKy8nXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiZm9ybWF0XCI6IFwicmVnZXhcIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwicmV0cnlcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3JldHJ5XCIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcInBhcmFsbGVsXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9wYXJhbGxlbFwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXCJpbnRlcnJ1cHRpYmxlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9pbnRlcnJ1cHRpYmxlXCIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcInJlc291cmNlX2dyb3VwXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJMaW1pdCBqb2IgY29uY3VycmVuY3kuIENhbiBiZSB1c2VkIHRvIGVuc3VyZSB0aGF0IHRoZSBSdW5uZXIgd2lsbCBub3QgcnVuIGNlcnRhaW4gam9icyBzaW11bHRhbmVvdXNseS5cIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwidHJpZ2dlclwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIlRyaWdnZXIgYWxsb3dzIHlvdSB0byBkZWZpbmUgZG93bnN0cmVhbSBwaXBlbGluZSB0cmlnZ2VyLiBXaGVuIGEgam9iIGNyZWF0ZWQgZnJvbSB0cmlnZ2VyIGRlZmluaXRpb24gaXMgc3RhcnRlZCBieSBHaXRMYWIsIGEgZG93bnN0cmVhbSBwaXBlbGluZSBnZXRzIGNyZWF0ZWQuIFtMZWFybiBNb3JlXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9jaS95YW1sLyN0cmlnZ2VyKS5cIixcbiAgICAgICAgICAgICAgICAgICAgXCJvbmVPZlwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtYXJrZG93bkRlc2NyaXB0aW9uXCI6IFwiVHJpZ2dlciBhIG11bHRpLXByb2plY3QgcGlwZWxpbmUuIFtMZWFybiBNb3JlXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9jaS9waXBlbGluZXMvZG93bnN0cmVhbV9waXBlbGluZXMvI211bHRpLXByb2plY3QtcGlwZWxpbmVzKS5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicHJvamVjdFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiUGF0aCB0byB0aGUgcHJvamVjdCwgZS5nLiBgZ3JvdXAvcHJvamVjdGAsIG9yIGBncm91cC9zdWItZ3JvdXAvcHJvamVjdGAuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJicmFuY2hcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlRoZSBicmFuY2ggbmFtZSB0aGF0IGEgZG93bnN0cmVhbSBwaXBlbGluZSB3aWxsIHVzZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwic3RyYXRlZ3lcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIllvdSBjYW4gbWlycm9yIG9yIGRlcGVuZCBvbiB0aGUgcGlwZWxpbmUgc3RhdHVzIGZyb20gdGhlIHRyaWdnZXJlZCBwaXBlbGluZSB0byB0aGUgc291cmNlIGJyaWRnZSBqb2IgYnkgdXNpbmcgc3RyYXRlZ3k6IGBkZXBlbmRgIG9yIGBtaXJyb3JgXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXBlbmRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1pcnJvclwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpbnB1dHNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9pbnB1dHNcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJmb3J3YXJkXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJTcGVjaWZ5IHdoYXQgdG8gZm9yd2FyZCB0byB0aGUgZG93bnN0cmVhbSBwaXBlbGluZS5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ5YW1sX3ZhcmlhYmxlc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlZhcmlhYmxlcyBkZWZpbmVkIGluIHRoZSB0cmlnZ2VyIGpvYiBhcmUgcGFzc2VkIHRvIGRvd25zdHJlYW0gcGlwZWxpbmVzLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlZmF1bHRcIjogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicGlwZWxpbmVfdmFyaWFibGVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiVmFyaWFibGVzIGFkZGVkIGZvciBtYW51YWwgcGlwZWxpbmUgcnVucyBhbmQgc2NoZWR1bGVkIHBpcGVsaW5lcyBhcmUgcGFzc2VkIHRvIGRvd25zdHJlYW0gcGlwZWxpbmVzLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlZmF1bHRcIjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJwcm9qZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlcGVuZGVuY2llc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYnJhbmNoXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicHJvamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJUcmlnZ2VyIGEgY2hpbGQgcGlwZWxpbmUuIFtMZWFybiBNb3JlXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9jaS9waXBlbGluZXMvZG93bnN0cmVhbV9waXBlbGluZXMvI3BhcmVudC1jaGlsZC1waXBlbGluZXMpLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpbmNsdWRlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwib25lT2ZcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlJlbGF0aXZlIHBhdGggZnJvbSBsb2NhbCByZXBvc2l0b3J5IHJvb3QgKGAvYCkgdG8gdGhlIGxvY2FsIFlBTUwgZmlsZSB0byBkZWZpbmUgdGhlIHBpcGVsaW5lIGNvbmZpZ3VyYXRpb24uXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImZvcm1hdFwiOiBcInVyaS1yZWZlcmVuY2VcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlJlZmVyZW5jZXMgYSBsb2NhbCBmaWxlIG9yIGFuIGFydGlmYWN0IGZyb20gYW5vdGhlciBqb2IgdG8gZGVmaW5lIHRoZSBwaXBlbGluZSBjb25maWd1cmF0aW9uLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1heEl0ZW1zXCI6IDMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJvbmVPZlwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibG9jYWxcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJSZWxhdGl2ZSBwYXRoIGZyb20gbG9jYWwgcmVwb3NpdG9yeSByb290IChgL2ApIHRvIHRoZSBsb2NhbCBZQU1MIGZpbGUgdG8gZGVmaW5lIHRoZSBwaXBlbGluZSBjb25maWd1cmF0aW9uLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZm9ybWF0XCI6IFwidXJpLXJlZmVyZW5jZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaW5wdXRzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2lucHV0c1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImxvY2FsXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0ZW1wbGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIk5hbWUgb2YgdGhlIHRlbXBsYXRlIFlBTUwgZmlsZSB0byB1c2UgaW4gdGhlIHBpcGVsaW5lIGNvbmZpZ3VyYXRpb24uXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJmb3JtYXRcIjogXCJ1cmktcmVmZXJlbmNlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpbnB1dHNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvaW5wdXRzXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidGVtcGxhdGVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImFydGlmYWN0XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiUmVsYXRpdmUgcGF0aCB0byB0aGUgZ2VuZXJhdGVkIFlBTUwgZmlsZSB3aGljaCBpcyBleHRyYWN0ZWQgZnJvbSB0aGUgYXJ0aWZhY3RzIGFuZCB1c2VkIGFzIHRoZSBjb25maWd1cmF0aW9uIGZvciB0cmlnZ2VyaW5nIHRoZSBjaGlsZCBwaXBlbGluZS5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImZvcm1hdFwiOiBcInVyaS1yZWZlcmVuY2VcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImpvYlwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkpvYiBuYW1lIHdoaWNoIGdlbmVyYXRlcyB0aGUgYXJ0aWZhY3RcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImlucHV0c1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9pbnB1dHNcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJhcnRpZmFjdFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJqb2JcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInByb2plY3RcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJQYXRoIHRvIGFub3RoZXIgcHJpdmF0ZSBwcm9qZWN0IHVuZGVyIHRoZSBzYW1lIEdpdExhYiBpbnN0YW5jZSwgbGlrZSBgZ3JvdXAvcHJvamVjdGAgb3IgYGdyb3VwL3N1Yi1ncm91cC9wcm9qZWN0YC5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInJlZlwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkJyYW5jaC9UYWcvQ29tbWl0IGhhc2ggZm9yIHRoZSB0YXJnZXQgcHJvamVjdC5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1pbkxlbmd0aFwiOiAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZmlsZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlJlbGF0aXZlIHBhdGggZnJvbSByZXBvc2l0b3J5IHJvb3QgKGAvYCkgdG8gdGhlIHBpcGVsaW5lIGNvbmZpZ3VyYXRpb24gWUFNTCBmaWxlLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZm9ybWF0XCI6IFwidXJpLXJlZmVyZW5jZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaW5wdXRzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2lucHV0c1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInByb2plY3RcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZmlsZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY29tcG9uZW50XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiTG9jYWwgcGF0aCB0byBjb21wb25lbnQgZGlyZWN0b3J5IG9yIGZ1bGwgcGF0aCB0byBleHRlcm5hbCBjb21wb25lbnQgZGlyZWN0b3J5LlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZm9ybWF0XCI6IFwidXJpLXJlZmVyZW5jZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaW5wdXRzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2lucHV0c1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImNvbXBvbmVudFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicmVtb3RlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiVVJMIHRvIGEgYHlhbWxgL2B5bWxgIHRlbXBsYXRlIGZpbGUgdXNpbmcgSFRUUC9IVFRQUy5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImZvcm1hdFwiOiBcInVyaS1yZWZlcmVuY2VcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImlucHV0c1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9pbnB1dHNcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJyZW1vdGVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJzdHJhdGVneVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiWW91IGNhbiBtaXJyb3Igb3IgZGVwZW5kIG9uIHRoZSBwaXBlbGluZSBzdGF0dXMgZnJvbSB0aGUgdHJpZ2dlcmVkIHBpcGVsaW5lIHRvIHRoZSBzb3VyY2UgYnJpZGdlIGpvYiBieSB1c2luZyBzdHJhdGVneTogYGRlcGVuZGAgb3IgYG1pcnJvcmBcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlcGVuZFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWlycm9yXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImZvcndhcmRcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlNwZWNpZnkgd2hhdCB0byBmb3J3YXJkIHRvIHRoZSBkb3duc3RyZWFtIHBpcGVsaW5lLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInlhbWxfdmFyaWFibGVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiVmFyaWFibGVzIGRlZmluZWQgaW4gdGhlIHRyaWdnZXIgam9iIGFyZSBwYXNzZWQgdG8gZG93bnN0cmVhbSBwaXBlbGluZXMuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVmYXVsdFwiOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJwaXBlbGluZV92YXJpYWJsZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJWYXJpYWJsZXMgYWRkZWQgZm9yIG1hbnVhbCBwaXBlbGluZSBydW5zIGFuZCBzY2hlZHVsZWQgcGlwZWxpbmVzIGFyZSBwYXNzZWQgdG8gZG93bnN0cmVhbSBwaXBlbGluZXMuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVmYXVsdFwiOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1hcmtkb3duRGVzY3JpcHRpb25cIjogXCJQYXRoIHRvIHRoZSBwcm9qZWN0LCBlLmcuIGBncm91cC9wcm9qZWN0YCwgb3IgYGdyb3VwL3N1Yi1ncm91cC9wcm9qZWN0YC4gW0xlYXJuIE1vcmVdKGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2NpL3lhbWwvI3RyaWdnZXIpLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiaW5oZXJpdFwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICBcIm1hcmtkb3duRGVzY3JpcHRpb25cIjogXCJDb250cm9scyBpbmhlcml0YW5jZSBvZiBnbG9iYWxseS1kZWZpbmVkIGRlZmF1bHRzIGFuZCB2YXJpYWJsZXMuIEJvb2xlYW4gdmFsdWVzIGNvbnRyb2wgaW5oZXJpdGFuY2Ugb2YgYWxsIGRlZmF1bHQ6IG9yIHZhcmlhYmxlczoga2V5d29yZHMuIFRvIGluaGVyaXQgb25seSBhIHN1YnNldCBvZiBkZWZhdWx0OiBvciB2YXJpYWJsZXM6IGtleXdvcmRzLCBzcGVjaWZ5IHdoYXQgeW91IHdpc2ggdG8gaW5oZXJpdC4gQW55dGhpbmcgbm90IGxpc3RlZCBpcyBub3QgaW5oZXJpdGVkLiBbTGVhcm4gTW9yZV0oaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vY2kveWFtbC8jaW5oZXJpdCkuXCIsXG4gICAgICAgICAgICAgICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcImRlZmF1bHRcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIldoZXRoZXIgdG8gaW5oZXJpdCBhbGwgZ2xvYmFsbHktZGVmaW5lZCBkZWZhdWx0cyBvciBub3QuIE9yIHN1YnNldCBvZiBpbmhlcml0ZWQgZGVmYXVsdHMuIFtMZWFybiBtb3JlXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9jaS95YW1sLyNpbmhlcml0ZGVmYXVsdCkuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJvbmVPZlwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYWZ0ZXJfc2NyaXB0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYXJ0aWZhY3RzXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYmVmb3JlX3NjcmlwdFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImNhY2hlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaW1hZ2VcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpbnRlcnJ1cHRpYmxlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicmV0cnlcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJzZXJ2aWNlc1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInRhZ3NcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0aW1lb3V0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcInZhcmlhYmxlc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtYXJrZG93bkRlc2NyaXB0aW9uXCI6IFwiV2hldGhlciB0byBpbmhlcml0IGFsbCBnbG9iYWxseS1kZWZpbmVkIHZhcmlhYmxlcyBvciBub3QuIE9yIHN1YnNldCBvZiBpbmhlcml0ZWQgdmFyaWFibGVzLiBbTGVhcm4gTW9yZV0oaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vY2kveWFtbC8jaW5oZXJpdHZhcmlhYmxlcykuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJvbmVPZlwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwicHVibGlzaFwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJEZXByZWNhdGVkLiBVc2UgYHBhZ2VzLnB1Ymxpc2hgIGluc3RlYWQuIEEgcGF0aCB0byBhIGRpcmVjdG9yeSB0aGF0IGNvbnRhaW5zIHRoZSBmaWxlcyB0byBiZSBwdWJsaXNoZWQgd2l0aCBQYWdlcy5cIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcInBhZ2VzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJvbmVPZlwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInBhdGhfcHJlZml4XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtYXJrZG93bkRlc2NyaXB0aW9uXCI6IFwiVGhlIEdpdExhYiBQYWdlcyBVUkwgcGF0aCBwcmVmaXggdXNlZCBpbiB0aGlzIHZlcnNpb24gb2YgcGFnZXMuIFRoZSBnaXZlbiB2YWx1ZSBpcyBjb252ZXJ0ZWQgdG8gbG93ZXJjYXNlLCBzaG9ydGVuZWQgdG8gNjMgYnl0ZXMsIGFuZCBldmVyeXRoaW5nIGV4Y2VwdCBhbHBoYW51bWVyaWMgY2hhcmFjdGVycyBpcyByZXBsYWNlZCB3aXRoIGEgaHlwaGVuLiBMZWFkaW5nIGFuZCB0cmFpbGluZyBoeXBoZW5zIGFyZSBub3QgcGVybWl0dGVkLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImV4cGlyZV9pblwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIkhvdyBsb25nIHRoZSBkZXBsb3ltZW50IHNob3VsZCBiZSBhY3RpdmUuIERlcGxveW1lbnRzIHRoYXQgaGF2ZSBleHBpcmVkIGFyZSBubyBsb25nZXIgYXZhaWxhYmxlIG9uIHRoZSB3ZWIuIFN1cHBvcnRzIGEgd2lkZSB2YXJpZXR5IG9mIGZvcm1hdHMsIGUuZy4gJzEgd2VlaycsICczIG1pbnMgNCBzZWMnLCAnMiBocnMgMjAgbWluJywgJzJoMjBtaW4nLCAnNiBtb3MgMSBkYXknLCAnNDcgeXJzIDYgbW9zIGFuZCA0ZCcsICczIHdlZWtzIGFuZCAyIGRheXMnLiBTZXQgdG8gJ25ldmVyJyB0byBwcmV2ZW50IGV4dHJhIGRlcGxveW1lbnRzIGZyb20gZXhwaXJpbmcuIFtMZWFybiBNb3JlXShodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9jaS95YW1sLyNwYWdlc2V4cGlyZV9pbikuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicHVibGlzaFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIkEgcGF0aCB0byBhIGRpcmVjdG9yeSB0aGF0IGNvbnRhaW5zIHRoZSBmaWxlcyB0byBiZSBwdWJsaXNoZWQgd2l0aCBQYWdlcy5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtYXJrZG93bkRlc2NyaXB0aW9uXCI6IFwiV2hldGhlciB0aGlzIGpvYiBzaG91bGQgdHJpZ2dlciBhIFBhZ2VzIGRlcGxveSAoUmVwbGFjZXMgdGhlIG5lZWQgdG8gbmFtZSB0aGUgam9iIGBwYWdlc2ApXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZWZhdWx0XCI6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwib25lT2ZcIjogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwid2hlblwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZWxheWVkXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJ3aGVuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcInN0YXJ0X2luXCIsXG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcIndoZW5cIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibm90XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGVsYXllZFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgICBcInRhZ3NcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgIFwibWluSXRlbXNcIjogMSxcbiAgICAgICAgICAgIFwibWFya2Rvd25EZXNjcmlwdGlvblwiOiBcIlVzZWQgdG8gc2VsZWN0IHJ1bm5lcnMgZnJvbSB0aGUgbGlzdCBvZiBhdmFpbGFibGUgcnVubmVycy4gQSBydW5uZXIgbXVzdCBoYXZlIGFsbCB0YWdzIGxpc3RlZCBoZXJlIHRvIHJ1biB0aGUgam9iLiBbTGVhcm4gTW9yZV0oaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vY2kveWFtbC8jdGFncykuXCIsXG4gICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICBcImFueU9mXCI6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcIm1pbkxlbmd0aFwiOiAxLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJtaW5JdGVtc1wiOiAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBcImhvb2tzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgXCJtYXJrZG93bkRlc2NyaXB0aW9uXCI6IFwiU3BlY2lmaWVzIGxpc3RzIG9mIGNvbW1hbmRzIHRvIGV4ZWN1dGUgb24gdGhlIHJ1bm5lciBhdCBjZXJ0YWluIHN0YWdlcyBvZiBqb2IgZXhlY3V0aW9uLiBbTGVhcm4gTW9yZV0oaHR0cHM6Ly9kb2NzLmdpdGxhYi5jb20vY2kveWFtbC8jaG9va3MpLlwiLFxuICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICBcInByZV9nZXRfc291cmNlc19zY3JpcHRcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29wdGlvbmFsX3NjcmlwdFwiLFxuICAgICAgICAgICAgICAgICAgICBcIm1hcmtkb3duRGVzY3JpcHRpb25cIjogXCJTcGVjaWZpZXMgYSBsaXN0IG9mIGNvbW1hbmRzIHRvIGV4ZWN1dGUgb24gdGhlIHJ1bm5lciBiZWZvcmUgdXBkYXRpbmcgdGhlIEdpdCByZXBvc2l0b3J5IGFuZCBhbnkgc3VibW9kdWxlcy4gW0xlYXJuIE1vcmVdKGh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2NpL3lhbWwvI2hvb2tzcHJlX2dldF9zb3VyY2VzX3NjcmlwdCkuXCIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgICBcInN0ZXBcIjoge1xuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkFueSBvZiB0aGVzZSBzdGVwIHVzZSBjYXNlcyBhcmUgdmFsaWQuXCIsXG4gICAgICAgICAgICBcIm9uZU9mXCI6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJSdW4gYSByZWZlcmVuY2VkIHN0ZXAuXCIsXG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwibmFtZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJzdGVwXCIsXG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcIm5hbWVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvc3RlcE5hbWVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcImVudlwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9zdGVwTmFtZWRTdHJpbmdzXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJpbnB1dHNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvc3RlcE5hbWVkVmFsdWVzXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJzdGVwXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm9uZU9mXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvc3RlcEdpdFJlZmVyZW5jZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3N0ZXBPY2lSZWZlcmVuY2VcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlJ1biBhIHNlcXVlbmNlIG9mIHN0ZXBzLlwiLFxuICAgICAgICAgICAgICAgICAgICBcIm9uZU9mXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInJ1blwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJlbnZcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9zdGVwTmFtZWRTdHJpbmdzXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicnVuXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3N0ZXBcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwib3V0cHV0c1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3N0ZXBOYW1lZFZhbHVlc1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlbGVnYXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiUnVuIGFuIGFjdGlvbi5cIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJuYW1lXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcImFjdGlvblwiLFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJuYW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3N0ZXBOYW1lXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJlbnZcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvc3RlcE5hbWVkU3RyaW5nc1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiaW5wdXRzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3N0ZXBOYW1lZFZhbHVlc1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiYWN0aW9uXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1pbkxlbmd0aFwiOiAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlJ1biBhIHNjcmlwdC5cIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJuYW1lXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcInNjcmlwdFwiLFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJuYW1lXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3N0ZXBOYW1lXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJlbnZcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvc3RlcE5hbWVkU3RyaW5nc1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwic2NyaXB0XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1pbkxlbmd0aFwiOiAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkV4ZWMgYSBiaW5hcnkuXCIsXG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiZXhlY1wiLFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJlbnZcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvc3RlcE5hbWVkU3RyaW5nc1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiZXhlY1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkV4ZWMgaXMgYSBjb21tYW5kIHRvIHJ1bi5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3N0ZXBFeGVjXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgICBcInN0ZXBOYW1lXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICB9LFxuICAgICAgICBcInN0ZXBOYW1lZFN0cmluZ3NcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICBcInBhdHRlcm5Qcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICBcIl5bYS16QS1aX11bYS16QS1aMC05X10qJFwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgICAgXCJzdGVwTmFtZWRWYWx1ZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICBcInBhdHRlcm5Qcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICBcIl5bYS16QS1aX11bYS16QS1aMC05X10qJFwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJudW1iZXJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJudWxsXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcImFycmF5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcIm9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgICAgXCJzdGVwR2l0UmVmZXJlbmNlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkdpdFJlZmVyZW5jZSBpcyBhIHJlZmVyZW5jZSB0byBhIHN0ZXAgaW4gYSBHaXQgcmVwb3NpdG9yeS5cIixcbiAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IFtcbiAgICAgICAgICAgICAgICBcImdpdFwiLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJnaXRcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgICAgICAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICBcInVybFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJyZXZcIixcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidXJsXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcImRpclwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJyZXZcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiZmlsZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBcInN0ZXBPY2lSZWZlcmVuY2VcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiT0NJUmVmZXJlbmNlIGlzIGEgcmVmZXJlbmNlIHRvIGEgc3RlcCBob3N0ZWQgaW4gYW4gT0NJIHJlcG9zaXRvcnkuXCIsXG4gICAgICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IGZhbHNlLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiBbXG4gICAgICAgICAgICAgICAgXCJvY2lcIixcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgIFwib2NpXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJyZWdpc3RyeVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJyZXBvc2l0b3J5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcInRhZ1wiLFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJyZWdpc3RyeVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlRoZSA8aG9zdD5bOjxwb3J0Pl0gb2YgdGhlIGNvbnRhaW5lciByZWdpc3RyeSBzZXJ2ZXIuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJleGFtcGxlc1wiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicmVnaXN0cnkuZ2l0bGFiLmNvbVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJyZXBvc2l0b3J5XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiQSBwYXRoIHdpdGhpbiB0aGUgcmVnaXN0cnkgY29udGFpbmluZyByZWxhdGVkIE9DSSBpbWFnZXMuIFR5cGljYWxseSB0aGUgbmFtZXNwYWNlLCBwcm9qZWN0LCBhbmQgaW1hZ2UgbmFtZS5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImV4YW1wbGVzXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJteV9ncm91cC9teV9wcm9qZWN0L2ltYWdlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcInRhZ1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkEgcG9pbnRlciB0byB0aGUgaW1hZ2UgbWFuaWZlc3QgaG9zdGVkIGluIHRoZSBPQ0kgcmVwb3NpdG9yeS5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImV4YW1wbGVzXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJsYXRlc3RcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMS41XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMS41LjBcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiZGlyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiQSBkaXJlY3RvcnkgaW5zaWRlIHRoZSBPQ0kgaW1hZ2Ugd2hlcmUgdGhlIHN0ZXAgY2FuIGJlIGZvdW5kLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZXhhbXBsZXNcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIi9teV9zdGVwcy9oZWxsb193b3JsZFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJmaWxlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiVGhlIG5hbWUgb2YgdGhlIGZpbGUgdGhhdCBkZWZpbmVzIHRoZSBzdGVwLCBkZWZhdWx0cyB0byBzdGVwLnltbC5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImV4YW1wbGVzXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJzdGVwLnltbFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBcInN0ZXBFeGVjXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiBmYWxzZSxcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogW1xuICAgICAgICAgICAgICAgIFwiY29tbWFuZFwiLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJjb21tYW5kXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkNvbW1hbmQgYXJlIHRoZSBwYXJhbWV0ZXJzIHRvIHRoZSBzeXN0ZW0gZXhlYyBBUEkuIEl0IGRvZXMgbm90IGludm9rZSBhIHNoZWxsLlwiLFxuICAgICAgICAgICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIm1pbkl0ZW1zXCI6IDEsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIndvcmtfZGlyXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJXb3JrRGlyIGlzIHRoZSB3b3JraW5nIGRpcmVjdGx5IGluIHdoaWNoIGBjb21tYW5kYCB3aWxsIGJlIGV4ZWMnZWQuXCIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgfSxcbn07XG4iXX0=