diff --git a/d.ts/kubernetes/ts/schema.d.ts b/d.ts/kubernetes/ts/schema.d.ts
index b63b28f..083f850 100644
--- a/d.ts/kubernetes/ts/schema.d.ts
+++ b/d.ts/kubernetes/ts/schema.d.ts
@@ -4,6 +4,22 @@ declare module Kubernetes {
"id": string;
"$schema": string;
"definitions": {
+ "api_RootPaths": {
+ "type": string;
+ "description": string;
+ "properties": {
+ "paths": {
+ "type": string;
+ "description": string;
+ "items": {
+ "type": string;
+ "description": string;
+ };
+ };
+ };
+ "additionalProperties": boolean;
+ "javaType": string;
+ };
"kubernetes_AWSElasticBlockStoreVolumeSource": {
"type": string;
"description": string;
@@ -52,6 +68,38 @@ declare module Kubernetes {
"additionalProperties": boolean;
"javaType": string;
};
+ "kubernetes_CephFSVolumeSource": {
+ "type": string;
+ "description": string;
+ "properties": {
+ "monitors": {
+ "type": string;
+ "description": string;
+ "items": {
+ "type": string;
+ "description": string;
+ };
+ };
+ "readOnly": {
+ "type": string;
+ "description": string;
+ };
+ "secretFile": {
+ "type": string;
+ "description": string;
+ };
+ "secretRef": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "user": {
+ "type": string;
+ "description": string;
+ };
+ };
+ "additionalProperties": boolean;
+ "javaType": string;
+ };
"kubernetes_Container": {
"type": string;
"description": string;
@@ -122,10 +170,18 @@ declare module Kubernetes {
"$ref": string;
"javaType": string;
};
+ "stdin": {
+ "type": string;
+ "description": string;
+ };
"terminationMessagePath": {
"type": string;
"description": string;
};
+ "tty": {
+ "type": string;
+ "description": string;
+ };
"volumeMounts": {
"type": string;
"description": string;
@@ -178,7 +234,7 @@ declare module Kubernetes {
"$ref": string;
"javaType": string;
};
- "termination": {
+ "terminated": {
"$ref": string;
"javaType": string;
};
@@ -467,6 +523,110 @@ declare module Kubernetes {
"additionalProperties": boolean;
"javaType": string;
};
+ "kubernetes_Event": {
+ "type": string;
+ "description": string;
+ "properties": {
+ "apiVersion": {
+ "type": string;
+ "description": string;
+ "default": string;
+ "required": boolean;
+ "enum": string[];
+ };
+ "count": {
+ "type": string;
+ "description": string;
+ };
+ "firstTimestamp": {
+ "type": string;
+ "description": string;
+ };
+ "involvedObject": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "kind": {
+ "type": string;
+ "description": string;
+ "default": string;
+ "required": boolean;
+ };
+ "lastTimestamp": {
+ "type": string;
+ "description": string;
+ };
+ "message": {
+ "type": string;
+ "description": string;
+ };
+ "metadata": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "reason": {
+ "type": string;
+ "description": string;
+ };
+ "source": {
+ "$ref": string;
+ "javaType": string;
+ };
+ };
+ "additionalProperties": boolean;
+ "javaType": string;
+ "javaInterfaces": string[];
+ };
+ "kubernetes_EventList": {
+ "type": string;
+ "description": string;
+ "properties": {
+ "apiVersion": {
+ "type": string;
+ "description": string;
+ "default": string;
+ "required": boolean;
+ "enum": string[];
+ };
+ "items": {
+ "type": string;
+ "description": string;
+ "items": {
+ "$ref": string;
+ "javaType": string;
+ };
+ };
+ "kind": {
+ "type": string;
+ "description": string;
+ "default": string;
+ "required": boolean;
+ };
+ "metadata": {
+ "$ref": string;
+ "javaType": string;
+ };
+ };
+ "additionalProperties": boolean;
+ "javaType": string;
+ "javaInterfaces": string[];
+ };
+ "kubernetes_EventSource": {
+ "type": string;
+ "description": string;
+ "properties": {
+ "component": {
+ "type": string;
+ "description": string;
+ };
+ "host": {
+ "type": string;
+ "description": string;
+ };
+ };
+ "additionalProperties": boolean;
+ "javaType": string;
+ };
"kubernetes_ExecAction": {
"type": string;
"description": string;
@@ -559,6 +719,10 @@ declare module Kubernetes {
"$ref": string;
"javaType": string;
};
+ "scheme": {
+ "type": string;
+ "description": string;
+ };
};
"additionalProperties": boolean;
"javaType": string;
@@ -733,6 +897,38 @@ declare module Kubernetes {
"additionalProperties": boolean;
"javaType": string;
};
+ "kubernetes_MetadataFile": {
+ "type": string;
+ "description": string;
+ "properties": {
+ "fieldRef": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "name": {
+ "type": string;
+ "description": string;
+ };
+ };
+ "additionalProperties": boolean;
+ "javaType": string;
+ };
+ "kubernetes_MetadataVolumeSource": {
+ "type": string;
+ "description": string;
+ "properties": {
+ "items": {
+ "type": string;
+ "description": string;
+ "items": {
+ "$ref": string;
+ "javaType": string;
+ };
+ };
+ };
+ "additionalProperties": boolean;
+ "javaType": string;
+ };
"kubernetes_NFSVolumeSource": {
"type": string;
"description": string;
@@ -977,6 +1173,10 @@ declare module Kubernetes {
"type": string;
"description": string;
};
+ "providerID": {
+ "type": string;
+ "description": string;
+ };
"unschedulable": {
"type": string;
"description": string;
@@ -1107,6 +1307,11 @@ declare module Kubernetes {
"type": string;
"description": string;
};
+ "generation": {
+ "type": string;
+ "description": string;
+ "javaType": string;
+ };
"labels": {
"type": string;
"description": string;
@@ -1180,6 +1385,161 @@ declare module Kubernetes {
"additionalProperties": boolean;
"javaType": string;
};
+ "kubernetes_PersistentVolume": {
+ "type": string;
+ "description": string;
+ "properties": {
+ "apiVersion": {
+ "type": string;
+ "description": string;
+ "default": string;
+ "required": boolean;
+ "enum": string[];
+ };
+ "kind": {
+ "type": string;
+ "description": string;
+ "default": string;
+ "required": boolean;
+ };
+ "metadata": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "spec": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "status": {
+ "$ref": string;
+ "javaType": string;
+ };
+ };
+ "additionalProperties": boolean;
+ "javaType": string;
+ "javaInterfaces": string[];
+ };
+ "kubernetes_PersistentVolumeClaim": {
+ "type": string;
+ "description": string;
+ "properties": {
+ "apiVersion": {
+ "type": string;
+ "description": string;
+ "default": string;
+ "required": boolean;
+ "enum": string[];
+ };
+ "kind": {
+ "type": string;
+ "description": string;
+ "default": string;
+ "required": boolean;
+ };
+ "metadata": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "spec": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "status": {
+ "$ref": string;
+ "javaType": string;
+ };
+ };
+ "additionalProperties": boolean;
+ "javaType": string;
+ "javaInterfaces": string[];
+ };
+ "kubernetes_PersistentVolumeClaimList": {
+ "type": string;
+ "description": string;
+ "properties": {
+ "apiVersion": {
+ "type": string;
+ "description": string;
+ "default": string;
+ "required": boolean;
+ "enum": string[];
+ };
+ "items": {
+ "type": string;
+ "description": string;
+ "items": {
+ "$ref": string;
+ "javaType": string;
+ };
+ };
+ "kind": {
+ "type": string;
+ "description": string;
+ "default": string;
+ "required": boolean;
+ };
+ "metadata": {
+ "$ref": string;
+ "javaType": string;
+ };
+ };
+ "additionalProperties": boolean;
+ "javaType": string;
+ "javaInterfaces": string[];
+ };
+ "kubernetes_PersistentVolumeClaimSpec": {
+ "type": string;
+ "description": string;
+ "properties": {
+ "accessModes": {
+ "type": string;
+ "description": string;
+ "items": {
+ "type": string;
+ "description": string;
+ };
+ };
+ "resources": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "volumeName": {
+ "type": string;
+ "description": string;
+ };
+ };
+ "additionalProperties": boolean;
+ "javaType": string;
+ };
+ "kubernetes_PersistentVolumeClaimStatus": {
+ "type": string;
+ "description": string;
+ "properties": {
+ "accessModes": {
+ "type": string;
+ "description": string;
+ "items": {
+ "type": string;
+ "description": string;
+ };
+ };
+ "capacity": {
+ "type": string;
+ "description": string;
+ "additionalProperties": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "javaType": string;
+ };
+ "phase": {
+ "type": string;
+ "description": string;
+ };
+ };
+ "additionalProperties": boolean;
+ "javaType": string;
+ };
"kubernetes_PersistentVolumeClaimVolumeSource": {
"type": string;
"description": string;
@@ -1196,6 +1556,165 @@ declare module Kubernetes {
"additionalProperties": boolean;
"javaType": string;
};
+ "kubernetes_PersistentVolumeList": {
+ "type": string;
+ "description": string;
+ "properties": {
+ "apiVersion": {
+ "type": string;
+ "description": string;
+ "default": string;
+ "required": boolean;
+ "enum": string[];
+ };
+ "items": {
+ "type": string;
+ "description": string;
+ "items": {
+ "$ref": string;
+ "javaType": string;
+ };
+ };
+ "kind": {
+ "type": string;
+ "description": string;
+ "default": string;
+ "required": boolean;
+ };
+ "metadata": {
+ "$ref": string;
+ "javaType": string;
+ };
+ };
+ "additionalProperties": boolean;
+ "javaType": string;
+ "javaInterfaces": string[];
+ };
+ "kubernetes_PersistentVolumeSource": {
+ "type": string;
+ "description": string;
+ "properties": {
+ "awsElasticBlockStore": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "cephfs": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "gcePersistentDisk": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "glusterfs": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "hostPath": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "iscsi": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "nfs": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "rbd": {
+ "$ref": string;
+ "javaType": string;
+ };
+ };
+ "additionalProperties": boolean;
+ "javaType": string;
+ };
+ "kubernetes_PersistentVolumeSpec": {
+ "type": string;
+ "description": string;
+ "properties": {
+ "accessModes": {
+ "type": string;
+ "description": string;
+ "items": {
+ "type": string;
+ "description": string;
+ };
+ };
+ "awsElasticBlockStore": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "capacity": {
+ "type": string;
+ "description": string;
+ "additionalProperties": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "javaType": string;
+ };
+ "cephfs": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "claimRef": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "gcePersistentDisk": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "glusterfs": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "hostPath": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "iscsi": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "nfs": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "persistentVolumeReclaimPolicy": {
+ "type": string;
+ "description": string;
+ };
+ "rbd": {
+ "$ref": string;
+ "javaType": string;
+ };
+ };
+ "additionalProperties": boolean;
+ "javaType": string;
+ };
+ "kubernetes_PersistentVolumeStatus": {
+ "type": string;
+ "description": string;
+ "properties": {
+ "message": {
+ "type": string;
+ "description": string;
+ };
+ "phase": {
+ "type": string;
+ "description": string;
+ };
+ "reason": {
+ "type": string;
+ "description": string;
+ };
+ };
+ "additionalProperties": boolean;
+ "javaType": string;
+ };
"kubernetes_Pod": {
"type": string;
"description": string;
@@ -1317,6 +1836,10 @@ declare module Kubernetes {
"javaType": string;
};
};
+ "nodeName": {
+ "type": string;
+ "description": string;
+ };
"nodeSelector": {
"type": string;
"description": string;
@@ -1334,6 +1857,10 @@ declare module Kubernetes {
"type": string;
"description": string;
};
+ "serviceAccountName": {
+ "type": string;
+ "description": string;
+ };
"terminationGracePeriodSeconds": {
"type": string;
"description": string;
@@ -1387,6 +1914,10 @@ declare module Kubernetes {
"type": string;
"description": string;
};
+ "reason": {
+ "type": string;
+ "description": string;
+ };
"startTime": {
"type": string;
"description": string;
@@ -1574,10 +2105,6 @@ declare module Kubernetes {
"$ref": string;
"javaType": string;
};
- "templateRef": {
- "$ref": string;
- "javaType": string;
- };
};
"additionalProperties": boolean;
"javaType": string;
@@ -1586,6 +2113,11 @@ declare module Kubernetes {
"type": string;
"description": string;
"properties": {
+ "observedGeneration": {
+ "type": string;
+ "description": string;
+ "javaType": string;
+ };
"replicas": {
"type": string;
"description": string;
@@ -1594,6 +2126,117 @@ declare module Kubernetes {
"additionalProperties": boolean;
"javaType": string;
};
+ "kubernetes_ResourceQuota": {
+ "type": string;
+ "description": string;
+ "properties": {
+ "apiVersion": {
+ "type": string;
+ "description": string;
+ "default": string;
+ "required": boolean;
+ "enum": string[];
+ };
+ "kind": {
+ "type": string;
+ "description": string;
+ "default": string;
+ "required": boolean;
+ };
+ "metadata": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "spec": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "status": {
+ "$ref": string;
+ "javaType": string;
+ };
+ };
+ "additionalProperties": boolean;
+ "javaType": string;
+ "javaInterfaces": string[];
+ };
+ "kubernetes_ResourceQuotaList": {
+ "type": string;
+ "description": string;
+ "properties": {
+ "apiVersion": {
+ "type": string;
+ "description": string;
+ "default": string;
+ "required": boolean;
+ "enum": string[];
+ };
+ "items": {
+ "type": string;
+ "description": string;
+ "items": {
+ "$ref": string;
+ "javaType": string;
+ };
+ };
+ "kind": {
+ "type": string;
+ "description": string;
+ "default": string;
+ "required": boolean;
+ };
+ "metadata": {
+ "$ref": string;
+ "javaType": string;
+ };
+ };
+ "additionalProperties": boolean;
+ "javaType": string;
+ "javaInterfaces": string[];
+ };
+ "kubernetes_ResourceQuotaSpec": {
+ "type": string;
+ "description": string;
+ "properties": {
+ "hard": {
+ "type": string;
+ "description": string;
+ "additionalProperties": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "javaType": string;
+ };
+ };
+ "additionalProperties": boolean;
+ "javaType": string;
+ };
+ "kubernetes_ResourceQuotaStatus": {
+ "type": string;
+ "description": string;
+ "properties": {
+ "hard": {
+ "type": string;
+ "description": string;
+ "additionalProperties": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "javaType": string;
+ };
+ "used": {
+ "type": string;
+ "description": string;
+ "additionalProperties": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "javaType": string;
+ };
+ };
+ "additionalProperties": boolean;
+ "javaType": string;
+ };
"kubernetes_ResourceRequirements": {
"type": string;
"description": string;
@@ -1620,6 +2263,49 @@ declare module Kubernetes {
"additionalProperties": boolean;
"javaType": string;
};
+ "kubernetes_RunAsUserStrategyOptions": {
+ "type": string;
+ "description": string;
+ "properties": {
+ "type": {
+ "type": string;
+ "description": string;
+ };
+ "uid": {
+ "type": string;
+ "description": string;
+ "javaType": string;
+ };
+ "uidRangeMax": {
+ "type": string;
+ "description": string;
+ "javaType": string;
+ };
+ "uidRangeMin": {
+ "type": string;
+ "description": string;
+ "javaType": string;
+ };
+ };
+ "additionalProperties": boolean;
+ "javaType": string;
+ };
+ "kubernetes_SELinuxContextStrategyOptions": {
+ "type": string;
+ "description": string;
+ "properties": {
+ "seLinuxOptions": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "type": {
+ "type": string;
+ "description": string;
+ };
+ };
+ "additionalProperties": boolean;
+ "javaType": string;
+ };
"kubernetes_SELinuxOptions": {
"type": string;
"description": string;
@@ -1741,6 +2427,10 @@ declare module Kubernetes {
"type": string;
"description": string;
};
+ "runAsNonRoot": {
+ "type": string;
+ "description": string;
+ };
"runAsUser": {
"type": string;
"description": string;
@@ -1754,6 +2444,114 @@ declare module Kubernetes {
"additionalProperties": boolean;
"javaType": string;
};
+ "kubernetes_SecurityContextConstraints": {
+ "type": string;
+ "description": string;
+ "properties": {
+ "allowHostDirVolumePlugin": {
+ "type": string;
+ "description": string;
+ };
+ "allowHostNetwork": {
+ "type": string;
+ "description": string;
+ };
+ "allowHostPorts": {
+ "type": string;
+ "description": string;
+ };
+ "allowPrivilegedContainer": {
+ "type": string;
+ "description": string;
+ };
+ "allowedCapabilities": {
+ "type": string;
+ "description": string;
+ "items": {
+ "type": string;
+ "description": string;
+ };
+ };
+ "apiVersion": {
+ "type": string;
+ "description": string;
+ "default": string;
+ "required": boolean;
+ "enum": string[];
+ };
+ "groups": {
+ "type": string;
+ "description": string;
+ "items": {
+ "type": string;
+ "description": string;
+ };
+ };
+ "kind": {
+ "type": string;
+ "description": string;
+ "default": string;
+ "required": boolean;
+ };
+ "metadata": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "runAsUser": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "seLinuxContext": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "users": {
+ "type": string;
+ "description": string;
+ "items": {
+ "type": string;
+ "description": string;
+ };
+ };
+ };
+ "additionalProperties": boolean;
+ "javaType": string;
+ "javaInterfaces": string[];
+ };
+ "kubernetes_SecurityContextConstraintsList": {
+ "type": string;
+ "description": string;
+ "properties": {
+ "apiVersion": {
+ "type": string;
+ "description": string;
+ "default": string;
+ "required": boolean;
+ "enum": string[];
+ };
+ "items": {
+ "type": string;
+ "description": string;
+ "items": {
+ "$ref": string;
+ "javaType": string;
+ };
+ };
+ "kind": {
+ "type": string;
+ "description": string;
+ "default": string;
+ "required": boolean;
+ };
+ "metadata": {
+ "$ref": string;
+ "javaType": string;
+ };
+ };
+ "additionalProperties": boolean;
+ "javaType": string;
+ "javaInterfaces": string[];
+ };
"kubernetes_Service": {
"type": string;
"description": string;
@@ -1799,6 +2597,14 @@ declare module Kubernetes {
"required": boolean;
"enum": string[];
};
+ "imagePullSecrets": {
+ "type": string;
+ "description": string;
+ "items": {
+ "$ref": string;
+ "javaType": string;
+ };
+ };
"kind": {
"type": string;
"description": string;
@@ -1924,6 +2730,10 @@ declare module Kubernetes {
"type": string;
"description": string;
"properties": {
+ "clusterIP": {
+ "type": string;
+ "description": string;
+ };
"deprecatedPublicIPs": {
"type": string;
"description": string;
@@ -1977,6 +2787,99 @@ declare module Kubernetes {
"additionalProperties": boolean;
"javaType": string;
};
+ "kubernetes_Status": {
+ "type": string;
+ "description": string;
+ "properties": {
+ "apiVersion": {
+ "type": string;
+ "description": string;
+ "default": string;
+ "required": boolean;
+ "enum": string[];
+ };
+ "code": {
+ "type": string;
+ "description": string;
+ };
+ "details": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "kind": {
+ "type": string;
+ "description": string;
+ "default": string;
+ "required": boolean;
+ };
+ "message": {
+ "type": string;
+ "description": string;
+ };
+ "metadata": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "reason": {
+ "type": string;
+ "description": string;
+ };
+ "status": {
+ "type": string;
+ "description": string;
+ };
+ };
+ "additionalProperties": boolean;
+ "javaType": string;
+ };
+ "kubernetes_StatusCause": {
+ "type": string;
+ "description": string;
+ "properties": {
+ "field": {
+ "type": string;
+ "description": string;
+ };
+ "message": {
+ "type": string;
+ "description": string;
+ };
+ "reason": {
+ "type": string;
+ "description": string;
+ };
+ };
+ "additionalProperties": boolean;
+ "javaType": string;
+ };
+ "kubernetes_StatusDetails": {
+ "type": string;
+ "description": string;
+ "properties": {
+ "causes": {
+ "type": string;
+ "description": string;
+ "items": {
+ "$ref": string;
+ "javaType": string;
+ };
+ };
+ "kind": {
+ "type": string;
+ "description": string;
+ };
+ "name": {
+ "type": string;
+ "description": string;
+ };
+ "retryAfterSeconds": {
+ "type": string;
+ "description": string;
+ };
+ };
+ "additionalProperties": boolean;
+ "javaType": string;
+ };
"kubernetes_TCPSocketAction": {
"type": string;
"description": string;
@@ -2013,6 +2916,10 @@ declare module Kubernetes {
"$ref": string;
"javaType": string;
};
+ "cephfs": {
+ "$ref": string;
+ "javaType": string;
+ };
"emptyDir": {
"$ref": string;
"javaType": string;
@@ -2037,6 +2944,10 @@ declare module Kubernetes {
"$ref": string;
"javaType": string;
};
+ "metadata": {
+ "$ref": string;
+ "javaType": string;
+ };
"name": {
"type": string;
"description": string;
@@ -2091,6 +3002,10 @@ declare module Kubernetes {
"$ref": string;
"javaType": string;
};
+ "cephfs": {
+ "$ref": string;
+ "javaType": string;
+ };
"emptyDir": {
"$ref": string;
"javaType": string;
@@ -2115,6 +3030,10 @@ declare module Kubernetes {
"$ref": string;
"javaType": string;
};
+ "metadata": {
+ "$ref": string;
+ "javaType": string;
+ };
"nfs": {
"$ref": string;
"javaType": string;
@@ -2135,131 +3054,6 @@ declare module Kubernetes {
"additionalProperties": boolean;
"javaType": string;
};
- "kubernetes_base_ListMeta": {
- "type": string;
- "description": string;
- "properties": {
- "resourceVersion": {
- "type": string;
- "description": string;
- };
- "selfLink": {
- "type": string;
- "description": string;
- };
- };
- "additionalProperties": boolean;
- "javaType": string;
- };
- "kubernetes_base_Status": {
- "type": string;
- "description": string;
- "properties": {
- "apiVersion": {
- "type": string;
- "description": string;
- "default": string;
- "required": boolean;
- "enum": string[];
- };
- "code": {
- "type": string;
- "description": string;
- };
- "details": {
- "$ref": string;
- "javaType": string;
- };
- "kind": {
- "type": string;
- "description": string;
- "default": string;
- "required": boolean;
- };
- "message": {
- "type": string;
- "description": string;
- };
- "metadata": {
- "$ref": string;
- "javaType": string;
- };
- "reason": {
- "type": string;
- "description": string;
- };
- "status": {
- "type": string;
- "description": string;
- };
- };
- "additionalProperties": boolean;
- "javaType": string;
- };
- "kubernetes_base_StatusCause": {
- "type": string;
- "description": string;
- "properties": {
- "field": {
- "type": string;
- "description": string;
- };
- "message": {
- "type": string;
- "description": string;
- };
- "reason": {
- "type": string;
- "description": string;
- };
- };
- "additionalProperties": boolean;
- "javaType": string;
- };
- "kubernetes_base_StatusDetails": {
- "type": string;
- "description": string;
- "properties": {
- "causes": {
- "type": string;
- "description": string;
- "items": {
- "$ref": string;
- "javaType": string;
- };
- };
- "id": {
- "type": string;
- "description": string;
- };
- "kind": {
- "type": string;
- "description": string;
- };
- "retryAfterSeconds": {
- "type": string;
- "description": string;
- };
- };
- "additionalProperties": boolean;
- "javaType": string;
- };
- "kubernetes_base_TypeMeta": {
- "type": string;
- "description": string;
- "properties": {
- "apiVersion": {
- "type": string;
- "description": string;
- };
- "kind": {
- "type": string;
- "description": string;
- };
- };
- "additionalProperties": boolean;
- "javaType": string;
- };
"kubernetes_config_AuthInfo": {
"type": string;
"description": string;
@@ -2508,18 +3302,6 @@ declare module Kubernetes {
"additionalProperties": boolean;
"javaType": string;
};
- "kubernetes_errors_StatusError": {
- "type": string;
- "description": string;
- "properties": {
- "ErrStatus": {
- "$ref": string;
- "javaType": string;
- };
- };
- "additionalProperties": boolean;
- "javaType": string;
- };
"kubernetes_resource_Quantity": {
"type": string;
"description": string;
@@ -2584,6 +3366,846 @@ declare module Kubernetes {
"additionalProperties": boolean;
"javaType": string;
};
+ "os_authorization_AuthorizationAttributes": {
+ "type": string;
+ "description": string;
+ "properties": {
+ "content": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "namespace": {
+ "type": string;
+ "description": string;
+ };
+ "resource": {
+ "type": string;
+ "description": string;
+ };
+ "resourceName": {
+ "type": string;
+ "description": string;
+ };
+ "verb": {
+ "type": string;
+ "description": string;
+ };
+ };
+ "additionalProperties": boolean;
+ "javaType": string;
+ };
+ "os_authorization_ClusterPolicy": {
+ "type": string;
+ "description": string;
+ "properties": {
+ "apiVersion": {
+ "type": string;
+ "description": string;
+ "default": string;
+ "required": boolean;
+ "enum": string[];
+ };
+ "kind": {
+ "type": string;
+ "description": string;
+ "default": string;
+ "required": boolean;
+ };
+ "lastModified": {
+ "type": string;
+ "description": string;
+ };
+ "metadata": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "roles": {
+ "type": string;
+ "description": string;
+ "items": {
+ "$ref": string;
+ "javaType": string;
+ };
+ };
+ };
+ "additionalProperties": boolean;
+ "javaType": string;
+ "javaInterfaces": string[];
+ };
+ "os_authorization_ClusterPolicyBinding": {
+ "type": string;
+ "description": string;
+ "properties": {
+ "apiVersion": {
+ "type": string;
+ "description": string;
+ "default": string;
+ "required": boolean;
+ "enum": string[];
+ };
+ "kind": {
+ "type": string;
+ "description": string;
+ "default": string;
+ "required": boolean;
+ };
+ "lastModified": {
+ "type": string;
+ "description": string;
+ };
+ "metadata": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "policyRef": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "roleBindings": {
+ "type": string;
+ "description": string;
+ "items": {
+ "$ref": string;
+ "javaType": string;
+ };
+ };
+ };
+ "additionalProperties": boolean;
+ "javaType": string;
+ "javaInterfaces": string[];
+ };
+ "os_authorization_ClusterPolicyBindingList": {
+ "type": string;
+ "description": string;
+ "properties": {
+ "apiVersion": {
+ "type": string;
+ "description": string;
+ "default": string;
+ "required": boolean;
+ "enum": string[];
+ };
+ "items": {
+ "type": string;
+ "description": string;
+ "items": {
+ "$ref": string;
+ "javaType": string;
+ };
+ };
+ "kind": {
+ "type": string;
+ "description": string;
+ "default": string;
+ "required": boolean;
+ };
+ "metadata": {
+ "$ref": string;
+ "javaType": string;
+ };
+ };
+ "additionalProperties": boolean;
+ "javaType": string;
+ "javaInterfaces": string[];
+ };
+ "os_authorization_ClusterPolicyList": {
+ "type": string;
+ "description": string;
+ "properties": {
+ "apiVersion": {
+ "type": string;
+ "description": string;
+ "default": string;
+ "required": boolean;
+ "enum": string[];
+ };
+ "items": {
+ "type": string;
+ "description": string;
+ "items": {
+ "$ref": string;
+ "javaType": string;
+ };
+ };
+ "kind": {
+ "type": string;
+ "description": string;
+ "default": string;
+ "required": boolean;
+ };
+ "metadata": {
+ "$ref": string;
+ "javaType": string;
+ };
+ };
+ "additionalProperties": boolean;
+ "javaType": string;
+ "javaInterfaces": string[];
+ };
+ "os_authorization_ClusterRole": {
+ "type": string;
+ "description": string;
+ "properties": {
+ "apiVersion": {
+ "type": string;
+ "description": string;
+ "default": string;
+ "required": boolean;
+ "enum": string[];
+ };
+ "kind": {
+ "type": string;
+ "description": string;
+ "default": string;
+ "required": boolean;
+ };
+ "metadata": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "rules": {
+ "type": string;
+ "description": string;
+ "items": {
+ "$ref": string;
+ "javaType": string;
+ };
+ };
+ };
+ "additionalProperties": boolean;
+ "javaType": string;
+ "javaInterfaces": string[];
+ };
+ "os_authorization_ClusterRoleBinding": {
+ "type": string;
+ "description": string;
+ "properties": {
+ "apiVersion": {
+ "type": string;
+ "description": string;
+ "default": string;
+ "required": boolean;
+ "enum": string[];
+ };
+ "groupNames": {
+ "type": string;
+ "description": string;
+ "items": {
+ "type": string;
+ "description": string;
+ };
+ };
+ "kind": {
+ "type": string;
+ "description": string;
+ "default": string;
+ "required": boolean;
+ };
+ "metadata": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "roleRef": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "subjects": {
+ "type": string;
+ "description": string;
+ "items": {
+ "$ref": string;
+ "javaType": string;
+ };
+ };
+ "userNames": {
+ "type": string;
+ "description": string;
+ "items": {
+ "type": string;
+ "description": string;
+ };
+ };
+ };
+ "additionalProperties": boolean;
+ "javaType": string;
+ "javaInterfaces": string[];
+ };
+ "os_authorization_ClusterRoleBindingList": {
+ "type": string;
+ "description": string;
+ "properties": {
+ "apiVersion": {
+ "type": string;
+ "description": string;
+ "default": string;
+ "required": boolean;
+ "enum": string[];
+ };
+ "items": {
+ "type": string;
+ "description": string;
+ "items": {
+ "$ref": string;
+ "javaType": string;
+ };
+ };
+ "kind": {
+ "type": string;
+ "description": string;
+ "default": string;
+ "required": boolean;
+ };
+ "metadata": {
+ "$ref": string;
+ "javaType": string;
+ };
+ };
+ "additionalProperties": boolean;
+ "javaType": string;
+ "javaInterfaces": string[];
+ };
+ "os_authorization_LocalSubjectAccessReview": {
+ "type": string;
+ "description": string;
+ "properties": {
+ "TypeMeta": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "content": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "groups": {
+ "type": string;
+ "description": string;
+ "items": {
+ "type": string;
+ "description": string;
+ };
+ };
+ "namespace": {
+ "type": string;
+ "description": string;
+ };
+ "resource": {
+ "type": string;
+ "description": string;
+ };
+ "resourceName": {
+ "type": string;
+ "description": string;
+ };
+ "user": {
+ "type": string;
+ "description": string;
+ };
+ "verb": {
+ "type": string;
+ "description": string;
+ };
+ };
+ "additionalProperties": boolean;
+ "javaType": string;
+ };
+ "os_authorization_NamedClusterRole": {
+ "type": string;
+ "description": string;
+ "properties": {
+ "name": {
+ "type": string;
+ "description": string;
+ };
+ "role": {
+ "$ref": string;
+ "javaType": string;
+ };
+ };
+ "additionalProperties": boolean;
+ "javaType": string;
+ };
+ "os_authorization_NamedClusterRoleBinding": {
+ "type": string;
+ "description": string;
+ "properties": {
+ "name": {
+ "type": string;
+ "description": string;
+ };
+ "roleBinding": {
+ "$ref": string;
+ "javaType": string;
+ };
+ };
+ "additionalProperties": boolean;
+ "javaType": string;
+ };
+ "os_authorization_NamedRole": {
+ "type": string;
+ "description": string;
+ "properties": {
+ "name": {
+ "type": string;
+ "description": string;
+ };
+ "role": {
+ "$ref": string;
+ "javaType": string;
+ };
+ };
+ "additionalProperties": boolean;
+ "javaType": string;
+ };
+ "os_authorization_NamedRoleBinding": {
+ "type": string;
+ "description": string;
+ "properties": {
+ "name": {
+ "type": string;
+ "description": string;
+ };
+ "roleBinding": {
+ "$ref": string;
+ "javaType": string;
+ };
+ };
+ "additionalProperties": boolean;
+ "javaType": string;
+ };
+ "os_authorization_Policy": {
+ "type": string;
+ "description": string;
+ "properties": {
+ "apiVersion": {
+ "type": string;
+ "description": string;
+ "default": string;
+ "required": boolean;
+ "enum": string[];
+ };
+ "kind": {
+ "type": string;
+ "description": string;
+ "default": string;
+ "required": boolean;
+ };
+ "lastModified": {
+ "type": string;
+ "description": string;
+ };
+ "metadata": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "roles": {
+ "type": string;
+ "description": string;
+ "items": {
+ "$ref": string;
+ "javaType": string;
+ };
+ };
+ };
+ "additionalProperties": boolean;
+ "javaType": string;
+ "javaInterfaces": string[];
+ };
+ "os_authorization_PolicyBinding": {
+ "type": string;
+ "description": string;
+ "properties": {
+ "apiVersion": {
+ "type": string;
+ "description": string;
+ "default": string;
+ "required": boolean;
+ "enum": string[];
+ };
+ "kind": {
+ "type": string;
+ "description": string;
+ "default": string;
+ "required": boolean;
+ };
+ "lastModified": {
+ "type": string;
+ "description": string;
+ };
+ "metadata": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "policyRef": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "roleBindings": {
+ "type": string;
+ "description": string;
+ "items": {
+ "$ref": string;
+ "javaType": string;
+ };
+ };
+ };
+ "additionalProperties": boolean;
+ "javaType": string;
+ "javaInterfaces": string[];
+ };
+ "os_authorization_PolicyBindingList": {
+ "type": string;
+ "description": string;
+ "properties": {
+ "apiVersion": {
+ "type": string;
+ "description": string;
+ "default": string;
+ "required": boolean;
+ "enum": string[];
+ };
+ "items": {
+ "type": string;
+ "description": string;
+ "items": {
+ "$ref": string;
+ "javaType": string;
+ };
+ };
+ "kind": {
+ "type": string;
+ "description": string;
+ "default": string;
+ "required": boolean;
+ };
+ "metadata": {
+ "$ref": string;
+ "javaType": string;
+ };
+ };
+ "additionalProperties": boolean;
+ "javaType": string;
+ "javaInterfaces": string[];
+ };
+ "os_authorization_PolicyList": {
+ "type": string;
+ "description": string;
+ "properties": {
+ "apiVersion": {
+ "type": string;
+ "description": string;
+ "default": string;
+ "required": boolean;
+ "enum": string[];
+ };
+ "items": {
+ "type": string;
+ "description": string;
+ "items": {
+ "$ref": string;
+ "javaType": string;
+ };
+ };
+ "kind": {
+ "type": string;
+ "description": string;
+ "default": string;
+ "required": boolean;
+ };
+ "metadata": {
+ "$ref": string;
+ "javaType": string;
+ };
+ };
+ "additionalProperties": boolean;
+ "javaType": string;
+ "javaInterfaces": string[];
+ };
+ "os_authorization_PolicyRule": {
+ "type": string;
+ "description": string;
+ "properties": {
+ "attributeRestrictions": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "nonResourceURLs": {
+ "type": string;
+ "description": string;
+ "items": {
+ "type": string;
+ "description": string;
+ };
+ };
+ "resourceNames": {
+ "type": string;
+ "description": string;
+ "items": {
+ "type": string;
+ "description": string;
+ };
+ };
+ "resources": {
+ "type": string;
+ "description": string;
+ "items": {
+ "type": string;
+ "description": string;
+ };
+ };
+ "verbs": {
+ "type": string;
+ "description": string;
+ "items": {
+ "type": string;
+ "description": string;
+ };
+ };
+ };
+ "additionalProperties": boolean;
+ "javaType": string;
+ };
+ "os_authorization_Role": {
+ "type": string;
+ "description": string;
+ "properties": {
+ "apiVersion": {
+ "type": string;
+ "description": string;
+ "default": string;
+ "required": boolean;
+ "enum": string[];
+ };
+ "kind": {
+ "type": string;
+ "description": string;
+ "default": string;
+ "required": boolean;
+ };
+ "metadata": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "rules": {
+ "type": string;
+ "description": string;
+ "items": {
+ "$ref": string;
+ "javaType": string;
+ };
+ };
+ };
+ "additionalProperties": boolean;
+ "javaType": string;
+ "javaInterfaces": string[];
+ };
+ "os_authorization_RoleBinding": {
+ "type": string;
+ "description": string;
+ "properties": {
+ "apiVersion": {
+ "type": string;
+ "description": string;
+ "default": string;
+ "required": boolean;
+ "enum": string[];
+ };
+ "groupNames": {
+ "type": string;
+ "description": string;
+ "items": {
+ "type": string;
+ "description": string;
+ };
+ };
+ "kind": {
+ "type": string;
+ "description": string;
+ "default": string;
+ "required": boolean;
+ };
+ "metadata": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "roleRef": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "subjects": {
+ "type": string;
+ "description": string;
+ "items": {
+ "$ref": string;
+ "javaType": string;
+ };
+ };
+ "userNames": {
+ "type": string;
+ "description": string;
+ "items": {
+ "type": string;
+ "description": string;
+ };
+ };
+ };
+ "additionalProperties": boolean;
+ "javaType": string;
+ "javaInterfaces": string[];
+ };
+ "os_authorization_RoleBindingList": {
+ "type": string;
+ "description": string;
+ "properties": {
+ "apiVersion": {
+ "type": string;
+ "description": string;
+ "default": string;
+ "required": boolean;
+ "enum": string[];
+ };
+ "items": {
+ "type": string;
+ "description": string;
+ "items": {
+ "$ref": string;
+ "javaType": string;
+ };
+ };
+ "kind": {
+ "type": string;
+ "description": string;
+ "default": string;
+ "required": boolean;
+ };
+ "metadata": {
+ "$ref": string;
+ "javaType": string;
+ };
+ };
+ "additionalProperties": boolean;
+ "javaType": string;
+ "javaInterfaces": string[];
+ };
+ "os_authorization_RoleList": {
+ "type": string;
+ "description": string;
+ "properties": {
+ "apiVersion": {
+ "type": string;
+ "description": string;
+ "default": string;
+ "required": boolean;
+ "enum": string[];
+ };
+ "items": {
+ "type": string;
+ "description": string;
+ "items": {
+ "$ref": string;
+ "javaType": string;
+ };
+ };
+ "kind": {
+ "type": string;
+ "description": string;
+ "default": string;
+ "required": boolean;
+ };
+ "metadata": {
+ "$ref": string;
+ "javaType": string;
+ };
+ };
+ "additionalProperties": boolean;
+ "javaType": string;
+ "javaInterfaces": string[];
+ };
+ "os_authorization_SubjectAccessReview": {
+ "type": string;
+ "description": string;
+ "properties": {
+ "apiVersion": {
+ "type": string;
+ "description": string;
+ "default": string;
+ "required": boolean;
+ "enum": string[];
+ };
+ "content": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "groups": {
+ "type": string;
+ "description": string;
+ "items": {
+ "type": string;
+ "description": string;
+ };
+ };
+ "kind": {
+ "type": string;
+ "description": string;
+ "default": string;
+ "required": boolean;
+ };
+ "namespace": {
+ "type": string;
+ "description": string;
+ };
+ "resource": {
+ "type": string;
+ "description": string;
+ };
+ "resourceName": {
+ "type": string;
+ "description": string;
+ };
+ "user": {
+ "type": string;
+ "description": string;
+ };
+ "verb": {
+ "type": string;
+ "description": string;
+ };
+ };
+ "additionalProperties": boolean;
+ "javaType": string;
+ };
+ "os_authorization_SubjectAccessReviewResponse": {
+ "type": string;
+ "description": string;
+ "properties": {
+ "allowed": {
+ "type": string;
+ "description": string;
+ };
+ "apiVersion": {
+ "type": string;
+ "description": string;
+ "default": string;
+ "required": boolean;
+ "enum": string[];
+ };
+ "kind": {
+ "type": string;
+ "description": string;
+ "default": string;
+ "required": boolean;
+ };
+ "namespace": {
+ "type": string;
+ "description": string;
+ };
+ "reason": {
+ "type": string;
+ "description": string;
+ };
+ };
+ "additionalProperties": boolean;
+ "javaType": string;
+ };
"os_build_Build": {
"type": string;
"description": string;
@@ -2799,12 +4421,20 @@ declare module Kubernetes {
"required": boolean;
"enum": string[];
};
+ "from": {
+ "$ref": string;
+ "javaType": string;
+ };
"kind": {
"type": string;
"description": string;
"default": string;
"required": boolean;
};
+ "lastVersion": {
+ "type": string;
+ "description": string;
+ };
"metadata": {
"$ref": string;
"javaType": string;
@@ -2979,6 +4609,10 @@ declare module Kubernetes {
"type": string;
"description": string;
};
+ "forcePull": {
+ "type": string;
+ "description": string;
+ };
"from": {
"$ref": string;
"javaType": string;
@@ -2995,6 +4629,18 @@ declare module Kubernetes {
"type": string;
"description": string;
"properties": {
+ "env": {
+ "type": string;
+ "description": string;
+ "items": {
+ "$ref": string;
+ "javaType": string;
+ };
+ };
+ "forcePull": {
+ "type": string;
+ "description": string;
+ };
"from": {
"$ref": string;
"javaType": string;
@@ -3015,6 +4661,14 @@ declare module Kubernetes {
"type": string;
"description": string;
"properties": {
+ "httpProxy": {
+ "type": string;
+ "description": string;
+ };
+ "httpsProxy": {
+ "type": string;
+ "description": string;
+ };
"ref": {
"type": string;
"description": string;
@@ -3055,6 +4709,10 @@ declare module Kubernetes {
"type": string;
"description": string;
"properties": {
+ "from": {
+ "$ref": string;
+ "javaType": string;
+ };
"lastTriggeredImageID": {
"type": string;
"description": string;
@@ -3075,6 +4733,10 @@ declare module Kubernetes {
"javaType": string;
};
};
+ "forcePull": {
+ "type": string;
+ "description": string;
+ };
"from": {
"$ref": string;
"javaType": string;
@@ -3288,10 +4950,6 @@ declare module Kubernetes {
"$ref": string;
"javaType": string;
};
- "templateRef": {
- "$ref": string;
- "javaType": string;
- };
"triggers": {
"type": string;
"description": string;
@@ -3494,6 +5152,10 @@ declare module Kubernetes {
"description": string;
"javaType": string;
};
+ "updatePercent": {
+ "type": string;
+ "description": string;
+ };
"updatePeriodSeconds": {
"type": string;
"description": string;
@@ -3706,7 +5368,6 @@ declare module Kubernetes {
};
"additionalProperties": boolean;
"javaType": string;
- "javaInterfaces": string[];
};
"os_image_NamedTagReference": {
"type": string;
@@ -4099,6 +5760,136 @@ declare module Kubernetes {
"javaType": string;
"javaInterfaces": string[];
};
+ "os_project_Project": {
+ "type": string;
+ "description": string;
+ "properties": {
+ "apiVersion": {
+ "type": string;
+ "description": string;
+ "default": string;
+ "required": boolean;
+ "enum": string[];
+ };
+ "kind": {
+ "type": string;
+ "description": string;
+ "default": string;
+ "required": boolean;
+ };
+ "metadata": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "spec": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "status": {
+ "$ref": string;
+ "javaType": string;
+ };
+ };
+ "additionalProperties": boolean;
+ "javaType": string;
+ "javaInterfaces": string[];
+ };
+ "os_project_ProjectList": {
+ "type": string;
+ "description": string;
+ "properties": {
+ "apiVersion": {
+ "type": string;
+ "description": string;
+ "default": string;
+ "required": boolean;
+ "enum": string[];
+ };
+ "items": {
+ "type": string;
+ "description": string;
+ "items": {
+ "$ref": string;
+ "javaType": string;
+ };
+ };
+ "kind": {
+ "type": string;
+ "description": string;
+ "default": string;
+ "required": boolean;
+ };
+ "metadata": {
+ "$ref": string;
+ "javaType": string;
+ };
+ };
+ "additionalProperties": boolean;
+ "javaType": string;
+ "javaInterfaces": string[];
+ };
+ "os_project_ProjectRequest": {
+ "type": string;
+ "description": string;
+ "properties": {
+ "apiVersion": {
+ "type": string;
+ "description": string;
+ "default": string;
+ "required": boolean;
+ "enum": string[];
+ };
+ "description": {
+ "type": string;
+ "description": string;
+ };
+ "displayName": {
+ "type": string;
+ "description": string;
+ };
+ "kind": {
+ "type": string;
+ "description": string;
+ "default": string;
+ "required": boolean;
+ };
+ "metadata": {
+ "$ref": string;
+ "javaType": string;
+ };
+ };
+ "additionalProperties": boolean;
+ "javaType": string;
+ "javaInterfaces": string[];
+ };
+ "os_project_ProjectSpec": {
+ "type": string;
+ "description": string;
+ "properties": {
+ "finalizers": {
+ "type": string;
+ "description": string;
+ "items": {
+ "type": string;
+ "description": string;
+ };
+ };
+ };
+ "additionalProperties": boolean;
+ "javaType": string;
+ };
+ "os_project_ProjectStatus": {
+ "type": string;
+ "description": string;
+ "properties": {
+ "phase": {
+ "type": string;
+ "description": string;
+ };
+ };
+ "additionalProperties": boolean;
+ "javaType": string;
+ };
"os_route_Route": {
"type": string;
"description": string;
@@ -4245,6 +6036,10 @@ declare module Kubernetes {
"type": string;
"description": string;
};
+ "required": {
+ "type": string;
+ "description": string;
+ };
"value": {
"type": string;
"description": string;
@@ -4338,6 +6133,235 @@ declare module Kubernetes {
"javaType": string;
"javaInterfaces": string[];
};
+ "os_user_Group": {
+ "type": string;
+ "description": string;
+ "properties": {
+ "apiVersion": {
+ "type": string;
+ "description": string;
+ "default": string;
+ "required": boolean;
+ "enum": string[];
+ };
+ "kind": {
+ "type": string;
+ "description": string;
+ "default": string;
+ "required": boolean;
+ };
+ "metadata": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "users": {
+ "type": string;
+ "description": string;
+ "items": {
+ "type": string;
+ "description": string;
+ };
+ };
+ };
+ "additionalProperties": boolean;
+ "javaType": string;
+ "javaInterfaces": string[];
+ };
+ "os_user_GroupList": {
+ "type": string;
+ "description": string;
+ "properties": {
+ "apiVersion": {
+ "type": string;
+ "description": string;
+ "default": string;
+ "required": boolean;
+ "enum": string[];
+ };
+ "items": {
+ "type": string;
+ "description": string;
+ "items": {
+ "$ref": string;
+ "javaType": string;
+ };
+ };
+ "kind": {
+ "type": string;
+ "description": string;
+ "default": string;
+ "required": boolean;
+ };
+ "metadata": {
+ "$ref": string;
+ "javaType": string;
+ };
+ };
+ "additionalProperties": boolean;
+ "javaType": string;
+ "javaInterfaces": string[];
+ };
+ "os_user_Identity": {
+ "type": string;
+ "description": string;
+ "properties": {
+ "apiVersion": {
+ "type": string;
+ "description": string;
+ "default": string;
+ "required": boolean;
+ "enum": string[];
+ };
+ "extra": {
+ "type": string;
+ "description": string;
+ "additionalProperties": {
+ "type": string;
+ "description": string;
+ };
+ "javaType": string;
+ };
+ "kind": {
+ "type": string;
+ "description": string;
+ "default": string;
+ "required": boolean;
+ };
+ "metadata": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "providerName": {
+ "type": string;
+ "description": string;
+ };
+ "providerUserName": {
+ "type": string;
+ "description": string;
+ };
+ "user": {
+ "$ref": string;
+ "javaType": string;
+ };
+ };
+ "additionalProperties": boolean;
+ "javaType": string;
+ "javaInterfaces": string[];
+ };
+ "os_user_IdentityList": {
+ "type": string;
+ "description": string;
+ "properties": {
+ "apiVersion": {
+ "type": string;
+ "description": string;
+ "default": string;
+ "required": boolean;
+ "enum": string[];
+ };
+ "items": {
+ "type": string;
+ "description": string;
+ "items": {
+ "$ref": string;
+ "javaType": string;
+ };
+ };
+ "kind": {
+ "type": string;
+ "description": string;
+ "default": string;
+ "required": boolean;
+ };
+ "metadata": {
+ "$ref": string;
+ "javaType": string;
+ };
+ };
+ "additionalProperties": boolean;
+ "javaType": string;
+ "javaInterfaces": string[];
+ };
+ "os_user_User": {
+ "type": string;
+ "description": string;
+ "properties": {
+ "apiVersion": {
+ "type": string;
+ "description": string;
+ "default": string;
+ "required": boolean;
+ "enum": string[];
+ };
+ "fullName": {
+ "type": string;
+ "description": string;
+ };
+ "groups": {
+ "type": string;
+ "description": string;
+ "items": {
+ "type": string;
+ "description": string;
+ };
+ };
+ "identities": {
+ "type": string;
+ "description": string;
+ "items": {
+ "type": string;
+ "description": string;
+ };
+ };
+ "kind": {
+ "type": string;
+ "description": string;
+ "default": string;
+ "required": boolean;
+ };
+ "metadata": {
+ "$ref": string;
+ "javaType": string;
+ };
+ };
+ "additionalProperties": boolean;
+ "javaType": string;
+ "javaInterfaces": string[];
+ };
+ "os_user_UserList": {
+ "type": string;
+ "description": string;
+ "properties": {
+ "apiVersion": {
+ "type": string;
+ "description": string;
+ "default": string;
+ "required": boolean;
+ "enum": string[];
+ };
+ "items": {
+ "type": string;
+ "description": string;
+ "items": {
+ "$ref": string;
+ "javaType": string;
+ };
+ };
+ "kind": {
+ "type": string;
+ "description": string;
+ "default": string;
+ "required": boolean;
+ };
+ "metadata": {
+ "$ref": string;
+ "javaType": string;
+ };
+ };
+ "additionalProperties": boolean;
+ "javaType": string;
+ "javaInterfaces": string[];
+ };
"speter_inf_Dec": {
"type": string;
"description": string;
@@ -4363,6 +6387,30 @@ declare module Kubernetes {
"$ref": string;
"javaType": string;
};
+ "ClusterPolicy": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "ClusterPolicyBinding": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "ClusterPolicyBindingList": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "ClusterPolicyList": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "ClusterRoleBinding": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "ClusterRoleBindingList": {
+ "$ref": string;
+ "javaType": string;
+ };
"Config": {
"$ref": string;
"javaType": string;
@@ -4387,6 +6435,26 @@ declare module Kubernetes {
"$ref": string;
"javaType": string;
};
+ "EventList": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "Group": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "GroupList": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "Identity": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "IdentityList": {
+ "$ref": string;
+ "javaType": string;
+ };
"ImageList": {
"$ref": string;
"javaType": string;
@@ -4395,6 +6463,10 @@ declare module Kubernetes {
"$ref": string;
"javaType": string;
};
+ "LocalSubjectAccessReview": {
+ "$ref": string;
+ "javaType": string;
+ };
"Namespace": {
"$ref": string;
"javaType": string;
@@ -4447,10 +6519,54 @@ declare module Kubernetes {
"$ref": string;
"javaType": string;
};
+ "PersistentVolume": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "PersistentVolumeClaim": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "PersistentVolumeClaimList": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "PersistentVolumeList": {
+ "$ref": string;
+ "javaType": string;
+ };
"PodList": {
"$ref": string;
"javaType": string;
};
+ "Policy": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "PolicyBinding": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "PolicyBindingList": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "PolicyList": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "Project": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "ProjectList": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "ProjectRequest": {
+ "$ref": string;
+ "javaType": string;
+ };
"Quantity": {
"$ref": string;
"javaType": string;
@@ -4459,6 +6575,34 @@ declare module Kubernetes {
"$ref": string;
"javaType": string;
};
+ "ResourceQuota": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "ResourceQuotaList": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "Role": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "RoleBinding": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "RoleBindingList": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "RoleList": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "RootPaths": {
+ "$ref": string;
+ "javaType": string;
+ };
"RouteList": {
"$ref": string;
"javaType": string;
@@ -4471,6 +6615,14 @@ declare module Kubernetes {
"$ref": string;
"javaType": string;
};
+ "SecurityContextConstraints": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "SecurityContextConstraintsList": {
+ "$ref": string;
+ "javaType": string;
+ };
"ServiceAccount": {
"$ref": string;
"javaType": string;
@@ -4483,7 +6635,15 @@ declare module Kubernetes {
"$ref": string;
"javaType": string;
};
- "StatusError": {
+ "Status": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "SubjectAccessReview": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "SubjectAccessReviewResponse": {
"$ref": string;
"javaType": string;
};
@@ -4499,6 +6659,14 @@ declare module Kubernetes {
"$ref": string;
"javaType": string;
};
+ "User": {
+ "$ref": string;
+ "javaType": string;
+ };
+ "UserList": {
+ "$ref": string;
+ "javaType": string;
+ };
"WatchEvent": {
"$ref": string;
"javaType": string;
diff --git a/defs.d.ts b/defs.d.ts
index 21e18dd..ca5735d 100644
--- a/defs.d.ts
+++ b/defs.d.ts
@@ -1,4 +1,3 @@
-///
///
///
///
diff --git a/dist/hawtio-kubernetes.js b/dist/hawtio-kubernetes.js
index 72e74ac..f4a776f 100644
--- a/dist/hawtio-kubernetes.js
+++ b/dist/hawtio-kubernetes.js
@@ -3712,6 +3712,9 @@ var Kubernetes;
angular.forEach([Kubernetes.context, "/workspaces/:workspace/projects/:project"], function (context) {
$routeProvider.when(UrlHelpers.join(context, '/namespace/:namespace/podCreate'), Kubernetes.route('podCreate.html', false)).when(UrlHelpers.join(context, '/namespace/:namespace/podEdit/:id'), Kubernetes.route('podEdit.html', false)).when(UrlHelpers.join(context, '/namespace/:namespace/pods'), Kubernetes.route('pods.html', false)).when(UrlHelpers.join(context, '/namespace/:namespace/pods/:id'), Kubernetes.route('pod.html', false)).when(UrlHelpers.join(context, '/namespace/:namespace/replicationControllers'), Kubernetes.route('replicationControllers.html', false)).when(UrlHelpers.join(context, '/namespace/:namespace/replicationControllers/:id'), Kubernetes.route('replicationController.html', false)).when(UrlHelpers.join(context, '/namespace/:namespace/replicationControllerCreate'), Kubernetes.route('replicationControllerCreate.html', false)).when(UrlHelpers.join(context, '/namespace/:namespace/replicationControllerEdit/:id'), Kubernetes.route('replicationControllerEdit.html', false)).when(UrlHelpers.join(context, '/namespace/:namespace/services'), Kubernetes.route('services.html', false)).when(UrlHelpers.join(context, '/namespace/:namespace/services/:id'), Kubernetes.route('service.html', false)).when(UrlHelpers.join(context, '/namespace/:namespace/serviceCreate'), Kubernetes.route('serviceCreate.html', false)).when(UrlHelpers.join(context, '/namespace/:namespace/serviceEdit/:id'), Kubernetes.route('serviceEdit.html', false)).when(UrlHelpers.join(context, '/namespace/:namespace/events'), Kubernetes.route('events.html', false)).when(UrlHelpers.join(context, '/namespace/:namespace/apps'), Kubernetes.route('apps.html', false)).when(UrlHelpers.join(context, '/namespace/:namespace/templates/:targetNamespace'), Kubernetes.route('templates.html', false)).when(UrlHelpers.join(context, '/namespace/:namespace'), Kubernetes.route('apps.html', false)).when(UrlHelpers.join(context, 'builds'), Kubernetes.route('builds.html', false)).when(UrlHelpers.join(context, 'builds/:id'), Kubernetes.route('build.html', true)).when(UrlHelpers.join(context, 'buildLogs/:id'), Kubernetes.route('buildLogs.html', true)).when(UrlHelpers.join(context, 'buildConfigs'), Kubernetes.route('buildConfigs.html', false)).when(UrlHelpers.join(context, 'buildConfigs/:id'), Kubernetes.route('buildConfig.html', true)).when(UrlHelpers.join(context, 'buildConfigEdit/:id'), Kubernetes.route('buildConfigEdit.html', true)).when(UrlHelpers.join(context, 'buildConfigCreate'), Kubernetes.route('buildConfigCreate.html', true)).when(UrlHelpers.join(context, 'deploymentConfigs'), Kubernetes.route('deploymentConfigs.html', false)).when(UrlHelpers.join(context, 'deploymentConfigs/:id'), Kubernetes.route('deploymentConfig.html', true)).when(UrlHelpers.join(context, 'imageRepositories'), Kubernetes.route('imageRepositories.html', false));
});
+ angular.forEach([Kubernetes.context, "/workspaces/:workspace", "/workspaces/:workspace/projects/:project"], function (context) {
+ $routeProvider.when(UrlHelpers.join(context, 'buildConfigEdit'), Kubernetes.route('buildConfigEdit.html', true)).when(UrlHelpers.join(context, 'buildConfigEdit/:id'), Kubernetes.route('buildConfigEdit.html', true));
+ });
}]);
Kubernetes._module.factory('AppLibraryURL', ['$rootScope', function ($rootScope) {
return UrlHelpers.join(Kubernetes.kubernetesApiUrl(), "/proxy", Kubernetes.kubernetesNamespacePath(), "/services/app-library");
@@ -4193,20 +4196,44 @@ var Kubernetes;
///
var Kubernetes;
(function (Kubernetes) {
- Kubernetes.BuildConfigEditController = Kubernetes.controller("BuildConfigEditController", ["$scope", "KubernetesModel", "KubernetesState", "KubernetesSchema", "$templateCache", "$location", "$routeParams", "$http", "$timeout", "KubernetesApiURL", function ($scope, KubernetesModel, KubernetesState, KubernetesSchema, $templateCache, $location, $routeParams, $http, $timeout, KubernetesApiURL) {
+ Kubernetes.BuildConfigEditController = Kubernetes.controller("BuildConfigEditController", ["$scope", "KubernetesModel", "KubernetesState", "KubernetesSchema", "$templateCache", "$location", "$routeParams", "$http", "$timeout", "KubernetesApiURL", "K8SClientFactory", function ($scope, KubernetesModel, KubernetesState, KubernetesSchema, $templateCache, $location, $routeParams, $http, $timeout, KubernetesApiURL, K8SClientFactory) {
$scope.kubernetes = KubernetesState;
$scope.model = KubernetesModel;
$scope.id = $routeParams["id"];
$scope.schema = KubernetesSchema;
$scope.config = KubernetesSchema.definitions.os_build_BuildConfig;
+ $scope.specConfig = KubernetesSchema.definitions.os_build_BuildConfigSpec;
Kubernetes.initShared($scope, $location, $http, $timeout, $routeParams, KubernetesModel, KubernetesState, KubernetesApiURL);
- $scope.$on('kubernetesModelUpdated', function () {
- updateData();
- });
+ $scope.buildConfigClient = K8SClientFactory.create("buildconfigs", $scope.namespace);
+ /*
+ $scope.$on('kubernetesModelUpdated', function () {
+ updateData();
+ });
+
+ */
$scope.$on('$routeUpdate', function ($event) {
updateData();
});
+ $scope.save = function () {
+ Kubernetes.log.info("Saving!");
+ var entity = $scope.entity;
+ var spec = (entity || {}).spec || {};
+ // TODO update the jenkins job name!
+ // lets delete lots of cruft
+ var strategy = spec.strategy || {};
+ delete strategy["dockerStrategy"];
+ delete strategy["sourceStrategy"];
+ delete spec["revision"];
+ delete spec["output"];
+ delete spec["resources"];
+ Kubernetes.log.info(angular.toJson(entity, true));
+ $scope.buildConfigClient.put(entity, function (obj) {
+ Kubernetes.log.info("build config created!");
+ });
+ };
updateData();
+ var jenkinsUrl = Developer.jenkinsLink();
+ var jobName = "";
function updateData() {
$scope.item = null;
if ($scope.id) {
@@ -4215,6 +4242,7 @@ var Kubernetes;
if (data) {
$scope.entity = data;
}
+ $scope.spec = ($scope.entity || {}).spec || {};
$scope.fetched = true;
Core.$apply($scope);
}).error(function (data, status, headers, config) {
@@ -4223,37 +4251,39 @@ var Kubernetes;
}
else {
$scope.fetched = true;
- // TODO default to the right registry URL...
- var defaultRegistry = "172.30.17.189:5000";
$scope.entity = {
"apiVersion": "v1",
"kind": "BuildConfig",
"metadata": {
"name": "",
- "labels": {
- "name": ""
- }
+ "labels": {}
},
- "parameters": {
- "output": {
- "imageTag": "",
- "registry": defaultRegistry
- },
+ "spec": {
"source": {
- "git": {
- "uri": ""
- },
"type": "Git"
},
"strategy": {
- "stiStrategy": {
- "builderImage": "fabric8/base-sti"
- },
- "type": "STI"
+ "type": "Custom",
+ "customStrategy": {
+ "from": {
+ "kind": "DockerImage",
+ "name": "fabric8/openshift-s2i-jenkins-trigger"
+ },
+ "env": [
+ {
+ "name": "BASE_URI",
+ "value": jenkinsUrl
+ },
+ {
+ "name": "JOB_NAME",
+ "value": jobName
+ }
+ ]
+ }
}
- },
- "triggers": []
+ }
};
+ $scope.spec = $scope.entity.spec;
Core.$apply($scope);
}
}
@@ -5673,6 +5703,22 @@ var Kubernetes;
"id": "http://fabric8.io/fabric8/v2/Schema#",
"$schema": "http://json-schema.org/schema#",
"definitions": {
+ "api_RootPaths": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "paths": {
+ "type": "array",
+ "description": "",
+ "items": {
+ "type": "string",
+ "description": ""
+ }
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.RootPaths"
+ },
"kubernetes_AWSElasticBlockStoreVolumeSource": {
"type": "object",
"description": "",
@@ -5691,7 +5737,7 @@ var Kubernetes;
},
"volumeID": {
"type": "string",
- "description": "unique id of the PD resource in AWS"
+ "description": "unique id of the PD resource in AWS; see http://releases.k8s.io/HEAD/docs/user-guide/volumes.md#awselasticblockstore"
}
},
"additionalProperties": true,
@@ -5721,24 +5767,56 @@ var Kubernetes;
"additionalProperties": true,
"javaType": "io.fabric8.kubernetes.api.model.Capabilities"
},
+ "kubernetes_CephFSVolumeSource": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "monitors": {
+ "type": "array",
+ "description": "a collection of Ceph monitors",
+ "items": {
+ "type": "string",
+ "description": "a collection of Ceph monitors"
+ }
+ },
+ "readOnly": {
+ "type": "boolean",
+ "description": "Ceph fs to be mounted with read-only permissions"
+ },
+ "secretFile": {
+ "type": "string",
+ "description": "path to secret for rados user; default is /etc/ceph/user.secret; optional"
+ },
+ "secretRef": {
+ "$ref": "#/definitions/kubernetes_LocalObjectReference",
+ "javaType": "io.fabric8.kubernetes.api.model.LocalObjectReference"
+ },
+ "user": {
+ "type": "string",
+ "description": "rados user name; default is admin; optional"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.CephFSVolumeSource"
+ },
"kubernetes_Container": {
"type": "object",
"description": "",
"properties": {
"args": {
"type": "array",
- "description": "command array; the docker image's cmd is used if this is not provided; arguments to the entrypoint; cannot be updated",
+ "description": "command array; the docker image's cmd is used if this is not provided; arguments to the entrypoint; cannot be updated; variable references $(VAR_NAME) are expanded using the container's environment variables; if a variable cannot be resolved",
"items": {
"type": "string",
- "description": "command array; the docker image's cmd is used if this is not provided; arguments to the entrypoint; cannot be updated"
+ "description": "command array; the docker image's cmd is used if this is not provided; arguments to the entrypoint; cannot be updated; variable references $(VAR_NAME) are expanded using the container's environment variables; if a variable cannot be resolved"
}
},
"command": {
"type": "array",
- "description": "entrypoint array; not executed within a shell; the docker image's entrypoint is used if this is not provided; cannot be updated",
+ "description": "entrypoint array; not executed within a shell; the docker image's entrypoint is used if this is not provided; cannot be updated; variable references $(VAR_NAME) are expanded using the container's environment variables; if a variable cannot be resolved",
"items": {
"type": "string",
- "description": "entrypoint array; not executed within a shell; the docker image's entrypoint is used if this is not provided; cannot be updated"
+ "description": "entrypoint array; not executed within a shell; the docker image's entrypoint is used if this is not provided; cannot be updated; variable references $(VAR_NAME) are expanded using the container's environment variables; if a variable cannot be resolved"
}
},
"env": {
@@ -5751,7 +5829,7 @@ var Kubernetes;
},
"image": {
"type": "string",
- "description": "Docker image name"
+ "description": "Docker image name; see http://releases.k8s.io/HEAD/docs/user-guide/images.md"
},
"imagePullPolicy": {
"type": "string",
@@ -5791,10 +5869,18 @@ var Kubernetes;
"$ref": "#/definitions/kubernetes_SecurityContext",
"javaType": "io.fabric8.kubernetes.api.model.SecurityContext"
},
+ "stdin": {
+ "type": "boolean",
+ "description": "Whether this container should allocate a buffer for stdin in the container runtime; default is false"
+ },
"terminationMessagePath": {
"type": "string",
"description": "path at which the file to which the container's termination message will be written is mounted into the container's filesystem; message written is intended to be brief final status"
},
+ "tty": {
+ "type": "boolean",
+ "description": "Whether this container should allocate a TTY for itself"
+ },
"volumeMounts": {
"type": "array",
"description": "pod volumes to mount into the container's filesyste; cannot be updated",
@@ -5829,7 +5915,7 @@ var Kubernetes;
},
"name": {
"type": "string",
- "description": "name for the port that can be referred to by services; must be a DNS_LABEL and unique without the pod"
+ "description": "name for the port that can be referred to by services; must be an IANA_SVC_NAME and unique within the pod"
},
"protocol": {
"type": "string",
@@ -5847,7 +5933,7 @@ var Kubernetes;
"$ref": "#/definitions/kubernetes_ContainerStateRunning",
"javaType": "io.fabric8.kubernetes.api.model.ContainerStateRunning"
},
- "termination": {
+ "terminated": {
"$ref": "#/definitions/kubernetes_ContainerStateTerminated",
"javaType": "io.fabric8.kubernetes.api.model.ContainerStateTerminated"
},
@@ -5925,11 +6011,11 @@ var Kubernetes;
"properties": {
"containerID": {
"type": "string",
- "description": "container's ID in the format 'docker://\u003ccontainer_id\u003e'"
+ "description": "container's ID in the format 'docker://\u003ccontainer_id\u003e'; see http://releases.k8s.io/HEAD/docs/user-guide/container-environment.md#container-information"
},
"image": {
"type": "string",
- "description": "image of the container"
+ "description": "image of the container; see http://releases.k8s.io/HEAD/docs/user-guide/images.md"
},
"imageID": {
"type": "string",
@@ -5967,7 +6053,7 @@ var Kubernetes;
"properties": {
"medium": {
"type": "string",
- "description": "type of storage used to back the volume; must be an empty string (default) or Memory"
+ "description": "type of storage used to back the volume; must be an empty string (default) or Memory; see http://releases.k8s.io/HEAD/docs/user-guide/volumes.md#emptydir"
}
},
"additionalProperties": true,
@@ -6108,7 +6194,8 @@ var Kubernetes;
"additionalProperties": true,
"javaType": "io.fabric8.kubernetes.api.model.EndpointsList",
"javaInterfaces": [
- "io.fabric8.kubernetes.api.model.KubernetesResource"
+ "io.fabric8.kubernetes.api.model.KubernetesResource",
+ "io.fabric8.kubernetes.api.model.KubernetesResourceList"
]
},
"kubernetes_EnvVar": {
@@ -6122,7 +6209,7 @@ var Kubernetes;
},
"value": {
"type": "string",
- "description": "value of the environment variable; defaults to empty string"
+ "description": "value of the environment variable; defaults to empty string; variable references $(VAR_NAME) are expanded using the previously defined environment varibles in the container and any service environment variables; if a variable cannot be resolved"
},
"valueFrom": {
"$ref": "#/definitions/kubernetes_EnvVarSource",
@@ -6144,6 +6231,119 @@ var Kubernetes;
"additionalProperties": true,
"javaType": "io.fabric8.kubernetes.api.model.EnvVarSource"
},
+ "kubernetes_Event": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "count": {
+ "type": "integer",
+ "description": "the number of times this event has occurred"
+ },
+ "firstTimestamp": {
+ "type": "string",
+ "description": "the time at which the event was first recorded"
+ },
+ "involvedObject": {
+ "$ref": "#/definitions/kubernetes_ObjectReference",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectReference"
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "Event",
+ "required": true
+ },
+ "lastTimestamp": {
+ "type": "string",
+ "description": "the time at which the most recent occurrence of this event was recorded"
+ },
+ "message": {
+ "type": "string",
+ "description": "human-readable description of the status of this operation"
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ObjectMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
+ },
+ "reason": {
+ "type": "string",
+ "description": "short"
+ },
+ "source": {
+ "$ref": "#/definitions/kubernetes_EventSource",
+ "javaType": "io.fabric8.kubernetes.api.model.EventSource"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.Event",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.HasMetadata"
+ ]
+ },
+ "kubernetes_EventList": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "items": {
+ "type": "array",
+ "description": "list of events",
+ "items": {
+ "$ref": "#/definitions/kubernetes_Event",
+ "javaType": "io.fabric8.kubernetes.api.model.Event"
+ }
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "EventList",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ListMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.EventList",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.KubernetesResource",
+ "io.fabric8.kubernetes.api.model.KubernetesResourceList"
+ ]
+ },
+ "kubernetes_EventSource": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "component": {
+ "type": "string",
+ "description": "component that generated the event"
+ },
+ "host": {
+ "type": "string",
+ "description": "name of the host where the event is generated"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.EventSource"
+ },
"kubernetes_ExecAction": {
"type": "object",
"description": "",
@@ -6174,7 +6374,7 @@ var Kubernetes;
},
"pdName": {
"type": "string",
- "description": "unique name of the PD resource in GCE"
+ "description": "unique name of the PD resource in GCE; see http://releases.k8s.io/HEAD/docs/user-guide/volumes.md#gcepersistentdisk"
},
"readOnly": {
"type": "boolean",
@@ -6206,15 +6406,15 @@ var Kubernetes;
"properties": {
"endpoints": {
"type": "string",
- "description": "gluster hosts endpoints name"
+ "description": "gluster hosts endpoints name; see http://releases.k8s.io/HEAD/examples/glusterfs/README.md#create-a-pod"
},
"path": {
"type": "string",
- "description": "path to gluster volume"
+ "description": "path to gluster volume; see http://releases.k8s.io/HEAD/examples/glusterfs/README.md#create-a-pod"
},
"readOnly": {
"type": "boolean",
- "description": "glusterfs volume to be mounted with read-only permissions"
+ "description": "glusterfs volume to be mounted with read-only permissions; see http://releases.k8s.io/HEAD/examples/glusterfs/README.md#create-a-pod"
}
},
"additionalProperties": true,
@@ -6234,7 +6434,11 @@ var Kubernetes;
},
"port": {
"$ref": "#/definitions/kubernetes_util_IntOrString",
- "javaType": "io.fabric8.kubernetes.api.model.util.IntOrString"
+ "javaType": "io.fabric8.kubernetes.api.model.IntOrString"
+ },
+ "scheme": {
+ "type": "string",
+ "description": "scheme to connect with"
}
},
"additionalProperties": true,
@@ -6266,7 +6470,7 @@ var Kubernetes;
"properties": {
"path": {
"type": "string",
- "description": "path of the directory on the host"
+ "description": "path of the directory on the host; see http://releases.k8s.io/HEAD/docs/user-guide/volumes.md#hostpath"
}
},
"additionalProperties": true,
@@ -6351,7 +6555,8 @@ var Kubernetes;
"additionalProperties": true,
"javaType": "io.fabric8.kubernetes.api.model.BaseKubernetesList",
"javaInterfaces": [
- "io.fabric8.kubernetes.api.model.KubernetesResource"
+ "io.fabric8.kubernetes.api.model.KubernetesResource",
+ "io.fabric8.kubernetes.api.model.KubernetesResourceList"
]
},
"kubernetes_ListMeta": {
@@ -6408,27 +6613,59 @@ var Kubernetes;
"properties": {
"name": {
"type": "string",
- "description": "name of the referent"
+ "description": "name of the referent; see http://releases.k8s.io/HEAD/docs/user-guide/identifiers.md#names"
}
},
"additionalProperties": true,
"javaType": "io.fabric8.kubernetes.api.model.LocalObjectReference"
},
+ "kubernetes_MetadataFile": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "fieldRef": {
+ "$ref": "#/definitions/kubernetes_ObjectFieldSelector",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectFieldSelector"
+ },
+ "name": {
+ "type": "string",
+ "description": "the name of the file to be created"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.MetadataFile"
+ },
+ "kubernetes_MetadataVolumeSource": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "items": {
+ "type": "array",
+ "description": "list of metadata files",
+ "items": {
+ "$ref": "#/definitions/kubernetes_MetadataFile",
+ "javaType": "io.fabric8.kubernetes.api.model.MetadataFile"
+ }
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.MetadataVolumeSource"
+ },
"kubernetes_NFSVolumeSource": {
"type": "object",
"description": "",
"properties": {
"path": {
"type": "string",
- "description": "the path that is exported by the NFS server"
+ "description": "the path that is exported by the NFS server; see http://releases.k8s.io/HEAD/docs/user-guide/volumes.md#nfs"
},
"readOnly": {
"type": "boolean",
- "description": "forces the NFS export to be mounted with read-only permissions"
+ "description": "forces the NFS export to be mounted with read-only permissions; see http://releases.k8s.io/HEAD/docs/user-guide/volumes.md#nfs"
},
"server": {
"type": "string",
- "description": "the hostname or IP address of the NFS server"
+ "description": "the hostname or IP address of the NFS server; see http://releases.k8s.io/HEAD/docs/user-guide/volumes.md#nfs"
}
},
"additionalProperties": true,
@@ -6487,7 +6724,7 @@ var Kubernetes;
},
"items": {
"type": "array",
- "description": "items is the list of Namespace objects in the list",
+ "description": "items is the list of Namespace objects in the list; see http://releases.k8s.io/HEAD/docs/user-guide/namespaces.md",
"items": {
"$ref": "#/definitions/kubernetes_Namespace",
"javaType": "io.fabric8.kubernetes.api.model.Namespace"
@@ -6507,7 +6744,8 @@ var Kubernetes;
"additionalProperties": true,
"javaType": "io.fabric8.kubernetes.api.model.NamespaceList",
"javaInterfaces": [
- "io.fabric8.kubernetes.api.model.KubernetesResource"
+ "io.fabric8.kubernetes.api.model.KubernetesResource",
+ "io.fabric8.kubernetes.api.model.KubernetesResourceList"
]
},
"kubernetes_NamespaceSpec": {
@@ -6516,10 +6754,10 @@ var Kubernetes;
"properties": {
"finalizers": {
"type": "array",
- "description": "an opaque list of values that must be empty to permanently remove object from storage",
+ "description": "an opaque list of values that must be empty to permanently remove object from storage; see http://releases.k8s.io/HEAD/docs/design/namespaces.md#finalizers",
"items": {
"type": "string",
- "description": "an opaque list of values that must be empty to permanently remove object from storage"
+ "description": "an opaque list of values that must be empty to permanently remove object from storage; see http://releases.k8s.io/HEAD/docs/design/namespaces.md#finalizers"
}
}
},
@@ -6532,7 +6770,7 @@ var Kubernetes;
"properties": {
"phase": {
"type": "string",
- "description": "phase is the current lifecycle phase of the namespace"
+ "description": "phase is the current lifecycle phase of the namespace; see http://releases.k8s.io/HEAD/docs/design/namespaces.md#phases"
}
},
"additionalProperties": true,
@@ -6659,7 +6897,8 @@ var Kubernetes;
"additionalProperties": true,
"javaType": "io.fabric8.kubernetes.api.model.NodeList",
"javaInterfaces": [
- "io.fabric8.kubernetes.api.model.KubernetesResource"
+ "io.fabric8.kubernetes.api.model.KubernetesResource",
+ "io.fabric8.kubernetes.api.model.KubernetesResourceList"
]
},
"kubernetes_NodeSpec": {
@@ -6668,15 +6907,19 @@ var Kubernetes;
"properties": {
"externalID": {
"type": "string",
- "description": "external ID assigned to the node by some machine database (e.g. a cloud provider). Defaults to node name when empty."
+ "description": "deprecated. External ID assigned to the node by some machine database (e.g. a cloud provider). Defaults to node name when empty."
},
"podCIDR": {
"type": "string",
"description": "pod IP range assigned to the node"
},
+ "providerID": {
+ "type": "string",
+ "description": "ID of the node assigned by the cloud provider in the format: \u003cProviderName\u003e://\u003cProviderSpecificNodeID\u003e"
+ },
"unschedulable": {
"type": "boolean",
- "description": "disable pod scheduling on the node"
+ "description": "disable pod scheduling on the node; see http://releases.k8s.io/HEAD/docs/admin/node.md#manual-node-administration"
}
},
"additionalProperties": true,
@@ -6688,7 +6931,7 @@ var Kubernetes;
"properties": {
"addresses": {
"type": "array",
- "description": "list of addresses reachable to the node",
+ "description": "list of addresses reachable to the node; see http://releases.k8s.io/HEAD/docs/admin/node.md#node-addresses",
"items": {
"$ref": "#/definitions/kubernetes_NodeAddress",
"javaType": "io.fabric8.kubernetes.api.model.NodeAddress"
@@ -6696,16 +6939,16 @@ var Kubernetes;
},
"capacity": {
"type": "object",
- "description": "compute resource capacity of the node; http://docs.k8s.io/resources.md",
+ "description": "compute resource capacity of the node; see http://releases.k8s.io/HEAD/docs/user-guide/compute-resources.md",
"additionalProperties": {
"$ref": "#/definitions/kubernetes_resource_Quantity",
- "javaType": "io.fabric8.kubernetes.api.model.resource.Quantity"
+ "javaType": "io.fabric8.kubernetes.api.model.Quantity"
},
- "javaType": "java.util.Map\u003cString,io.fabric8.kubernetes.api.model.resource.Quantity\u003e"
+ "javaType": "java.util.Map\u003cString,io.fabric8.kubernetes.api.model.Quantity\u003e"
},
"conditions": {
"type": "array",
- "description": "list of node conditions observed",
+ "description": "list of node conditions observed; see http://releases.k8s.io/HEAD/docs/admin/node.md#node-condition",
"items": {
"$ref": "#/definitions/kubernetes_NodeCondition",
"javaType": "io.fabric8.kubernetes.api.model.NodeCondition"
@@ -6717,7 +6960,7 @@ var Kubernetes;
},
"phase": {
"type": "string",
- "description": "most recently observed lifecycle phase of the node"
+ "description": "most recently observed lifecycle phase of the node; see http://releases.k8s.io/HEAD/docs/admin/node.md#node-phase"
}
},
"additionalProperties": true,
@@ -6785,10 +7028,10 @@ var Kubernetes;
"properties": {
"annotations": {
"type": "object",
- "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about objects",
+ "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about objects; see http://releases.k8s.io/HEAD/docs/user-guide/annotations.md",
"additionalProperties": {
"type": "string",
- "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about objects"
+ "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about objects; see http://releases.k8s.io/HEAD/docs/user-guide/annotations.md"
},
"javaType": "java.util.Map\u003cString,String\u003e"
},
@@ -6804,24 +7047,29 @@ var Kubernetes;
"type": "string",
"description": "an optional prefix to use to generate a unique name; has the same validation rules as name; optional"
},
+ "generation": {
+ "type": "integer",
+ "description": "a sequence number representing a specific generation of the desired state; populated by the system; read-only",
+ "javaType": "Long"
+ },
"labels": {
"type": "object",
- "description": "map of string keys and values that can be used to organize and categorize objects; may match selectors of replication controllers and services",
+ "description": "map of string keys and values that can be used to organize and categorize objects; may match selectors of replication controllers and services; see http://releases.k8s.io/HEAD/docs/user-guide/labels.md",
"additionalProperties": {
"type": "string",
- "description": "map of string keys and values that can be used to organize and categorize objects; may match selectors of replication controllers and services"
+ "description": "map of string keys and values that can be used to organize and categorize objects; may match selectors of replication controllers and services; see http://releases.k8s.io/HEAD/docs/user-guide/labels.md"
},
"javaType": "java.util.Map\u003cString,String\u003e"
},
"name": {
"type": "string",
- "description": "string that identifies an object. Must be unique within a namespace; cannot be updated",
+ "description": "string that identifies an object. Must be unique within a namespace; cannot be updated; see http://releases.k8s.io/HEAD/docs/user-guide/identifiers.md#names",
"maxLength": 63,
"pattern": "^[a-z0-9]([-a-z0-9]*[a-z0-9])?$"
},
"namespace": {
"type": "string",
- "description": "namespace of the object; must be a DNS_LABEL; cannot be updated",
+ "description": "namespace of the object; must be a DNS_LABEL; cannot be updated; see http://releases.k8s.io/HEAD/docs/user-guide/namespaces.md",
"maxLength": 253,
"pattern": "^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$"
},
@@ -6835,7 +7083,7 @@ var Kubernetes;
},
"uid": {
"type": "string",
- "description": "unique UUID across space and time; populated by the system; read-only"
+ "description": "unique UUID across space and time; populated by the system; read-only; see http://releases.k8s.io/HEAD/docs/user-guide/identifiers.md#uids"
}
},
"additionalProperties": true,
@@ -6855,15 +7103,15 @@ var Kubernetes;
},
"kind": {
"type": "string",
- "description": "kind of the referent"
+ "description": "kind of the referent; see http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds"
},
"name": {
"type": "string",
- "description": "name of the referent"
+ "description": "name of the referent; see http://releases.k8s.io/HEAD/docs/user-guide/identifiers.md#names"
},
"namespace": {
"type": "string",
- "description": "namespace of the referent"
+ "description": "namespace of the referent; see http://releases.k8s.io/HEAD/docs/user-guide/namespaces.md"
},
"resourceVersion": {
"type": "string",
@@ -6871,19 +7119,187 @@ var Kubernetes;
},
"uid": {
"type": "string",
- "description": "uid of the referent"
+ "description": "uid of the referent; see http://releases.k8s.io/HEAD/docs/user-guide/identifiers.md#uids"
}
},
"additionalProperties": true,
"javaType": "io.fabric8.kubernetes.api.model.ObjectReference"
},
+ "kubernetes_PersistentVolume": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "PersistentVolume",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ObjectMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
+ },
+ "spec": {
+ "$ref": "#/definitions/kubernetes_PersistentVolumeSpec",
+ "javaType": "io.fabric8.kubernetes.api.model.PersistentVolumeSpec"
+ },
+ "status": {
+ "$ref": "#/definitions/kubernetes_PersistentVolumeStatus",
+ "javaType": "io.fabric8.kubernetes.api.model.PersistentVolumeStatus"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.PersistentVolume",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.HasMetadata"
+ ]
+ },
+ "kubernetes_PersistentVolumeClaim": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "PersistentVolumeClaim",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ObjectMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
+ },
+ "spec": {
+ "$ref": "#/definitions/kubernetes_PersistentVolumeClaimSpec",
+ "javaType": "io.fabric8.kubernetes.api.model.PersistentVolumeClaimSpec"
+ },
+ "status": {
+ "$ref": "#/definitions/kubernetes_PersistentVolumeClaimStatus",
+ "javaType": "io.fabric8.kubernetes.api.model.PersistentVolumeClaimStatus"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.PersistentVolumeClaim",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.HasMetadata"
+ ]
+ },
+ "kubernetes_PersistentVolumeClaimList": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "items": {
+ "type": "array",
+ "description": "a list of persistent volume claims; see http://releases.k8s.io/HEAD/docs/user-guide/persistent-volumes.md#persistentvolumeclaims",
+ "items": {
+ "$ref": "#/definitions/kubernetes_PersistentVolumeClaim",
+ "javaType": "io.fabric8.kubernetes.api.model.PersistentVolumeClaim"
+ }
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "PersistentVolumeClaimList",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ListMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.PersistentVolumeClaimList",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.KubernetesResource",
+ "io.fabric8.kubernetes.api.model.KubernetesResourceList"
+ ]
+ },
+ "kubernetes_PersistentVolumeClaimSpec": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "accessModes": {
+ "type": "array",
+ "description": "the desired access modes the volume should have; see http://releases.k8s.io/HEAD/docs/user-guide/persistent-volumes.md#access-modes-1",
+ "items": {
+ "type": "string",
+ "description": "the desired access modes the volume should have; see http://releases.k8s.io/HEAD/docs/user-guide/persistent-volumes.md#access-modes-1"
+ }
+ },
+ "resources": {
+ "$ref": "#/definitions/kubernetes_ResourceRequirements",
+ "javaType": "io.fabric8.kubernetes.api.model.ResourceRequirements"
+ },
+ "volumeName": {
+ "type": "string",
+ "description": "the binding reference to the persistent volume backing this claim"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.PersistentVolumeClaimSpec"
+ },
+ "kubernetes_PersistentVolumeClaimStatus": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "accessModes": {
+ "type": "array",
+ "description": "the actual access modes the volume has; see http://releases.k8s.io/HEAD/docs/user-guide/persistent-volumes.md#access-modes-1",
+ "items": {
+ "type": "string",
+ "description": "the actual access modes the volume has; see http://releases.k8s.io/HEAD/docs/user-guide/persistent-volumes.md#access-modes-1"
+ }
+ },
+ "capacity": {
+ "type": "object",
+ "description": "the actual resources the volume has",
+ "additionalProperties": {
+ "$ref": "#/definitions/kubernetes_resource_Quantity",
+ "javaType": "io.fabric8.kubernetes.api.model.Quantity"
+ },
+ "javaType": "java.util.Map\u003cString,io.fabric8.kubernetes.api.model.Quantity\u003e"
+ },
+ "phase": {
+ "type": "string",
+ "description": "the current phase of the claim"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.PersistentVolumeClaimStatus"
+ },
"kubernetes_PersistentVolumeClaimVolumeSource": {
"type": "object",
"description": "",
"properties": {
"claimName": {
"type": "string",
- "description": "the name of the claim in the same namespace to be mounted as a volume"
+ "description": "the name of the claim in the same namespace to be mounted as a volume; see http://releases.k8s.io/HEAD/docs/user-guide/persistent-volumes.md#persistentvolumeclaims"
},
"readOnly": {
"type": "boolean",
@@ -6893,6 +7309,170 @@ var Kubernetes;
"additionalProperties": true,
"javaType": "io.fabric8.kubernetes.api.model.PersistentVolumeClaimVolumeSource"
},
+ "kubernetes_PersistentVolumeList": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "items": {
+ "type": "array",
+ "description": "list of persistent volumes; see http://releases.k8s.io/HEAD/docs/user-guide/persistent-volumes.md",
+ "items": {
+ "$ref": "#/definitions/kubernetes_PersistentVolume",
+ "javaType": "io.fabric8.kubernetes.api.model.PersistentVolume"
+ }
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "PersistentVolumeList",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ListMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.PersistentVolumeList",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.KubernetesResource",
+ "io.fabric8.kubernetes.api.model.KubernetesResourceList"
+ ]
+ },
+ "kubernetes_PersistentVolumeSource": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "awsElasticBlockStore": {
+ "$ref": "#/definitions/kubernetes_AWSElasticBlockStoreVolumeSource",
+ "javaType": "io.fabric8.kubernetes.api.model.AWSElasticBlockStoreVolumeSource"
+ },
+ "cephfs": {
+ "$ref": "#/definitions/kubernetes_CephFSVolumeSource",
+ "javaType": "io.fabric8.kubernetes.api.model.CephFSVolumeSource"
+ },
+ "gcePersistentDisk": {
+ "$ref": "#/definitions/kubernetes_GCEPersistentDiskVolumeSource",
+ "javaType": "io.fabric8.kubernetes.api.model.GCEPersistentDiskVolumeSource"
+ },
+ "glusterfs": {
+ "$ref": "#/definitions/kubernetes_GlusterfsVolumeSource",
+ "javaType": "io.fabric8.kubernetes.api.model.GlusterfsVolumeSource"
+ },
+ "hostPath": {
+ "$ref": "#/definitions/kubernetes_HostPathVolumeSource",
+ "javaType": "io.fabric8.kubernetes.api.model.HostPathVolumeSource"
+ },
+ "iscsi": {
+ "$ref": "#/definitions/kubernetes_ISCSIVolumeSource",
+ "javaType": "io.fabric8.kubernetes.api.model.ISCSIVolumeSource"
+ },
+ "nfs": {
+ "$ref": "#/definitions/kubernetes_NFSVolumeSource",
+ "javaType": "io.fabric8.kubernetes.api.model.NFSVolumeSource"
+ },
+ "rbd": {
+ "$ref": "#/definitions/kubernetes_RBDVolumeSource",
+ "javaType": "io.fabric8.kubernetes.api.model.RBDVolumeSource"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.PersistentVolumeSource"
+ },
+ "kubernetes_PersistentVolumeSpec": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "accessModes": {
+ "type": "array",
+ "description": "all ways the volume can be mounted; see http://releases.k8s.io/HEAD/docs/user-guide/persistent-volumes.md#access-modes",
+ "items": {
+ "type": "string",
+ "description": "all ways the volume can be mounted; see http://releases.k8s.io/HEAD/docs/user-guide/persistent-volumes.md#access-modes"
+ }
+ },
+ "awsElasticBlockStore": {
+ "$ref": "#/definitions/kubernetes_AWSElasticBlockStoreVolumeSource",
+ "javaType": "io.fabric8.kubernetes.api.model.AWSElasticBlockStoreVolumeSource"
+ },
+ "capacity": {
+ "type": "object",
+ "description": "a description of the persistent volume's resources and capacityr; see http://releases.k8s.io/HEAD/docs/user-guide/persistent-volumes.md#capacity",
+ "additionalProperties": {
+ "$ref": "#/definitions/kubernetes_resource_Quantity",
+ "javaType": "io.fabric8.kubernetes.api.model.Quantity"
+ },
+ "javaType": "java.util.Map\u003cString,io.fabric8.kubernetes.api.model.Quantity\u003e"
+ },
+ "cephfs": {
+ "$ref": "#/definitions/kubernetes_CephFSVolumeSource",
+ "javaType": "io.fabric8.kubernetes.api.model.CephFSVolumeSource"
+ },
+ "claimRef": {
+ "$ref": "#/definitions/kubernetes_ObjectReference",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectReference"
+ },
+ "gcePersistentDisk": {
+ "$ref": "#/definitions/kubernetes_GCEPersistentDiskVolumeSource",
+ "javaType": "io.fabric8.kubernetes.api.model.GCEPersistentDiskVolumeSource"
+ },
+ "glusterfs": {
+ "$ref": "#/definitions/kubernetes_GlusterfsVolumeSource",
+ "javaType": "io.fabric8.kubernetes.api.model.GlusterfsVolumeSource"
+ },
+ "hostPath": {
+ "$ref": "#/definitions/kubernetes_HostPathVolumeSource",
+ "javaType": "io.fabric8.kubernetes.api.model.HostPathVolumeSource"
+ },
+ "iscsi": {
+ "$ref": "#/definitions/kubernetes_ISCSIVolumeSource",
+ "javaType": "io.fabric8.kubernetes.api.model.ISCSIVolumeSource"
+ },
+ "nfs": {
+ "$ref": "#/definitions/kubernetes_NFSVolumeSource",
+ "javaType": "io.fabric8.kubernetes.api.model.NFSVolumeSource"
+ },
+ "persistentVolumeReclaimPolicy": {
+ "type": "string",
+ "description": "what happens to a volume when released from its claim; Valid options are Retain (default) and Recycle. Recyling must be supported by the volume plugin underlying this persistent volume. See http://releases.k8s.io/HEAD/docs/user-guide/persistent-volumes.md#recycling-policy"
+ },
+ "rbd": {
+ "$ref": "#/definitions/kubernetes_RBDVolumeSource",
+ "javaType": "io.fabric8.kubernetes.api.model.RBDVolumeSource"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.PersistentVolumeSpec"
+ },
+ "kubernetes_PersistentVolumeStatus": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "message": {
+ "type": "string",
+ "description": "human-readable message indicating details about why the volume is in this state"
+ },
+ "phase": {
+ "type": "string",
+ "description": "the current phase of a persistent volume; see http://releases.k8s.io/HEAD/docs/user-guide/persistent-volumes.md#phase"
+ },
+ "reason": {
+ "type": "string",
+ "description": "(brief) reason the volume is not is not available"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.PersistentVolumeStatus"
+ },
"kubernetes_Pod": {
"type": "object",
"description": "",
@@ -6962,7 +7542,7 @@ var Kubernetes;
},
"items": {
"type": "array",
- "description": "list of pods",
+ "description": "list of pods; see http://releases.k8s.io/HEAD/docs/user-guide/pods.md",
"items": {
"$ref": "#/definitions/kubernetes_Pod",
"javaType": "io.fabric8.kubernetes.api.model.Pod"
@@ -6982,7 +7562,8 @@ var Kubernetes;
"additionalProperties": true,
"javaType": "io.fabric8.kubernetes.api.model.PodList",
"javaInterfaces": [
- "io.fabric8.kubernetes.api.model.KubernetesResource"
+ "io.fabric8.kubernetes.api.model.KubernetesResource",
+ "io.fabric8.kubernetes.api.model.KubernetesResourceList"
]
},
"kubernetes_PodSpec": {
@@ -6996,7 +7577,7 @@ var Kubernetes;
},
"containers": {
"type": "array",
- "description": "list of containers belonging to the pod; cannot be updated; containers cannot currently be added or removed; there must be at least one container in a Pod",
+ "description": "list of containers belonging to the pod; cannot be updated; containers cannot currently be added or removed; there must be at least one container in a Pod; see http://releases.k8s.io/HEAD/docs/user-guide/containers.md",
"items": {
"$ref": "#/definitions/kubernetes_Container",
"javaType": "io.fabric8.kubernetes.api.model.Container"
@@ -7008,7 +7589,7 @@ var Kubernetes;
},
"host": {
"type": "string",
- "description": "host requested for this pod"
+ "description": "deprecated"
},
"hostNetwork": {
"type": "boolean",
@@ -7016,28 +7597,36 @@ var Kubernetes;
},
"imagePullSecrets": {
"type": "array",
- "description": "list of references to secrets in the same namespace available for pulling the container images",
+ "description": "list of references to secrets in the same namespace available for pulling the container images; see http://releases.k8s.io/HEAD/docs/user-guide/images.md#specifying-imagepullsecrets-on-a-pod",
"items": {
"$ref": "#/definitions/kubernetes_LocalObjectReference",
"javaType": "io.fabric8.kubernetes.api.model.LocalObjectReference"
}
},
+ "nodeName": {
+ "type": "string",
+ "description": "node requested for this pod"
+ },
"nodeSelector": {
"type": "object",
- "description": "selector which must match a node's labels for the pod to be scheduled on that node",
+ "description": "selector which must match a node's labels for the pod to be scheduled on that node; see http://releases.k8s.io/HEAD/docs/user-guide/node-selection/README.md",
"additionalProperties": {
"type": "string",
- "description": "selector which must match a node's labels for the pod to be scheduled on that node"
+ "description": "selector which must match a node's labels for the pod to be scheduled on that node; see http://releases.k8s.io/HEAD/docs/user-guide/node-selection/README.md"
},
"javaType": "java.util.Map\u003cString,String\u003e"
},
"restartPolicy": {
"type": "string",
- "description": "restart policy for all containers within the pod; one of RestartPolicyAlways"
+ "description": "restart policy for all containers within the pod; one of Always"
},
"serviceAccount": {
"type": "string",
- "description": "name of the ServiceAccount to use to run this pod"
+ "description": "deprecated; use serviceAccountName instead"
+ },
+ "serviceAccountName": {
+ "type": "string",
+ "description": "name of the ServiceAccount to use to run this pod; see http://releases.k8s.io/HEAD/docs/design/service_accounts.md"
},
"terminationGracePeriodSeconds": {
"type": "integer",
@@ -7046,7 +7635,7 @@ var Kubernetes;
},
"volumes": {
"type": "array",
- "description": "list of volumes that can be mounted by containers belonging to the pod",
+ "description": "list of volumes that can be mounted by containers belonging to the pod; see http://releases.k8s.io/HEAD/docs/user-guide/volumes.md",
"items": {
"$ref": "#/definitions/kubernetes_Volume",
"javaType": "io.fabric8.kubernetes.api.model.Volume"
@@ -7062,7 +7651,7 @@ var Kubernetes;
"properties": {
"conditions": {
"type": "array",
- "description": "current service state of pod",
+ "description": "current service state of pod; see http://releases.k8s.io/HEAD/docs/user-guide/pod-states.md#pod-conditions",
"items": {
"$ref": "#/definitions/kubernetes_PodCondition",
"javaType": "io.fabric8.kubernetes.api.model.PodCondition"
@@ -7070,7 +7659,7 @@ var Kubernetes;
},
"containerStatuses": {
"type": "array",
- "description": "list of container statuses",
+ "description": "list of container statuses; see http://releases.k8s.io/HEAD/docs/user-guide/pod-states.md#container-statuses",
"items": {
"$ref": "#/definitions/kubernetes_ContainerStatus",
"javaType": "io.fabric8.kubernetes.api.model.ContainerStatus"
@@ -7086,12 +7675,16 @@ var Kubernetes;
},
"phase": {
"type": "string",
- "description": "current condition of the pod."
+ "description": "current condition of the pod; see http://releases.k8s.io/HEAD/docs/user-guide/pod-states.md#pod-phase"
},
"podIP": {
"type": "string",
"description": "IP address allocated to the pod; routable at least within the cluster; empty if not yet allocated"
},
+ "reason": {
+ "type": "string",
+ "description": "(brief-CamelCase) reason indicating details about why the pod is in this condition"
+ },
"startTime": {
"type": "string",
"description": "RFC 3339 date and time at which the object was acknowledged by the Kubelet. This is before the Kubelet pulled the container image(s) for the pod."
@@ -7130,7 +7723,7 @@ var Kubernetes;
},
"initialDelaySeconds": {
"type": "integer",
- "description": "number of seconds after the container has started before liveness probes are initiated",
+ "description": "number of seconds after the container has started before liveness probes are initiated; see http://releases.k8s.io/HEAD/docs/user-guide/pod-states.md#container-probes",
"javaType": "Long"
},
"tcpSocket": {
@@ -7139,7 +7732,7 @@ var Kubernetes;
},
"timeoutSeconds": {
"type": "integer",
- "description": "number of seconds after which liveness probes timeout; defaults to 1 second",
+ "description": "number of seconds after which liveness probes timeout; defaults to 1 second; see http://releases.k8s.io/HEAD/docs/user-guide/pod-states.md#container-probes",
"javaType": "Long"
}
},
@@ -7156,27 +7749,27 @@ var Kubernetes;
},
"image": {
"type": "string",
- "description": "rados image name"
+ "description": "rados image name; see http://releases.k8s.io/HEAD/examples/rbd/README.md#how-to-use-it"
},
"keyring": {
"type": "string",
- "description": "keyring is the path to key ring for rados user; default is /etc/ceph/keyring; optional"
+ "description": "keyring is the path to key ring for rados user; default is /etc/ceph/keyring; optional; see http://releases.k8s.io/HEAD/examples/rbd/README.md#how-to-use-it"
},
"monitors": {
"type": "array",
- "description": "a collection of Ceph monitors",
+ "description": "a collection of Ceph monitors; see http://releases.k8s.io/HEAD/examples/rbd/README.md#how-to-use-it",
"items": {
"type": "string",
- "description": "a collection of Ceph monitors"
+ "description": "a collection of Ceph monitors; see http://releases.k8s.io/HEAD/examples/rbd/README.md#how-to-use-it"
}
},
"pool": {
"type": "string",
- "description": "rados pool name; default is rbd; optional"
+ "description": "rados pool name; default is rbd; optional; see http://releases.k8s.io/HEAD/examples/rbd/README.md#how-to-use-it"
},
"readOnly": {
"type": "boolean",
- "description": "rbd volume to be mounted with read-only permissions"
+ "description": "rbd volume to be mounted with read-only permissions; see http://releases.k8s.io/HEAD/examples/rbd/README.md#how-to-use-it"
},
"secretRef": {
"$ref": "#/definitions/kubernetes_LocalObjectReference",
@@ -7184,7 +7777,7 @@ var Kubernetes;
},
"user": {
"type": "string",
- "description": "rados user name; default is admin; optional"
+ "description": "rados user name; default is admin; optional; see http://releases.k8s.io/HEAD/examples/rbd/README.md#how-to-use-it"
}
},
"additionalProperties": true,
@@ -7243,7 +7836,7 @@ var Kubernetes;
},
"items": {
"type": "array",
- "description": "list of replication controllers",
+ "description": "list of replication controllers; see http://releases.k8s.io/HEAD/docs/user-guide/replication-controller.md",
"items": {
"$ref": "#/definitions/kubernetes_ReplicationController",
"javaType": "io.fabric8.kubernetes.api.model.ReplicationController"
@@ -7263,7 +7856,8 @@ var Kubernetes;
"additionalProperties": true,
"javaType": "io.fabric8.kubernetes.api.model.ReplicationControllerList",
"javaInterfaces": [
- "io.fabric8.kubernetes.api.model.KubernetesResource"
+ "io.fabric8.kubernetes.api.model.KubernetesResource",
+ "io.fabric8.kubernetes.api.model.KubernetesResourceList"
]
},
"kubernetes_ReplicationControllerSpec": {
@@ -7272,7 +7866,7 @@ var Kubernetes;
"properties": {
"replicas": {
"type": "integer",
- "description": "number of replicas desired; defaults to 1"
+ "description": "number of replicas desired; defaults to 1; see http://releases.k8s.io/HEAD/docs/user-guide/replication-controller.md#what-is-a-replication-controller"
},
"selector": {
"type": "object",
@@ -7286,10 +7880,6 @@ var Kubernetes;
"template": {
"$ref": "#/definitions/kubernetes_PodTemplateSpec",
"javaType": "io.fabric8.kubernetes.api.model.PodTemplateSpec"
- },
- "templateRef": {
- "$ref": "#/definitions/kubernetes_ObjectReference",
- "javaType": "io.fabric8.kubernetes.api.model.ObjectReference"
}
},
"additionalProperties": true,
@@ -7299,59 +7889,227 @@ var Kubernetes;
"type": "object",
"description": "",
"properties": {
+ "observedGeneration": {
+ "type": "integer",
+ "description": "reflects the generation of the most recently observed replication controller",
+ "javaType": "Long"
+ },
"replicas": {
"type": "integer",
- "description": "most recently oberved number of replicas"
+ "description": "most recently oberved number of replicas; see http://releases.k8s.io/HEAD/docs/user-guide/replication-controller.md#what-is-a-replication-controller"
}
},
"additionalProperties": true,
"javaType": "io.fabric8.kubernetes.api.model.ReplicationControllerStatus"
},
+ "kubernetes_ResourceQuota": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "ResourceQuota",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ObjectMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
+ },
+ "spec": {
+ "$ref": "#/definitions/kubernetes_ResourceQuotaSpec",
+ "javaType": "io.fabric8.kubernetes.api.model.ResourceQuotaSpec"
+ },
+ "status": {
+ "$ref": "#/definitions/kubernetes_ResourceQuotaStatus",
+ "javaType": "io.fabric8.kubernetes.api.model.ResourceQuotaStatus"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.ResourceQuota",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.HasMetadata"
+ ]
+ },
+ "kubernetes_ResourceQuotaList": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "items": {
+ "type": "array",
+ "description": "items is a list of ResourceQuota objects; see http://releases.k8s.io/HEAD/docs/design/admission_control_resource_quota.md#admissioncontrol-plugin-resourcequota",
+ "items": {
+ "$ref": "#/definitions/kubernetes_ResourceQuota",
+ "javaType": "io.fabric8.kubernetes.api.model.ResourceQuota"
+ }
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "ResourceQuotaList",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ListMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.ResourceQuotaList",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.KubernetesResource",
+ "io.fabric8.kubernetes.api.model.KubernetesResourceList"
+ ]
+ },
+ "kubernetes_ResourceQuotaSpec": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "hard": {
+ "type": "object",
+ "description": "hard is the set of desired hard limits for each named resource; see http://releases.k8s.io/HEAD/docs/design/admission_control_resource_quota.md#admissioncontrol-plugin-resourcequota",
+ "additionalProperties": {
+ "$ref": "#/definitions/kubernetes_resource_Quantity",
+ "javaType": "io.fabric8.kubernetes.api.model.Quantity"
+ },
+ "javaType": "java.util.Map\u003cString,io.fabric8.kubernetes.api.model.Quantity\u003e"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.ResourceQuotaSpec"
+ },
+ "kubernetes_ResourceQuotaStatus": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "hard": {
+ "type": "object",
+ "description": "hard is the set of enforced hard limits for each named resource; see http://releases.k8s.io/HEAD/docs/design/admission_control_resource_quota.md#admissioncontrol-plugin-resourcequota",
+ "additionalProperties": {
+ "$ref": "#/definitions/kubernetes_resource_Quantity",
+ "javaType": "io.fabric8.kubernetes.api.model.Quantity"
+ },
+ "javaType": "java.util.Map\u003cString,io.fabric8.kubernetes.api.model.Quantity\u003e"
+ },
+ "used": {
+ "type": "object",
+ "description": "used is the current observed total usage of the resource in the namespace",
+ "additionalProperties": {
+ "$ref": "#/definitions/kubernetes_resource_Quantity",
+ "javaType": "io.fabric8.kubernetes.api.model.Quantity"
+ },
+ "javaType": "java.util.Map\u003cString,io.fabric8.kubernetes.api.model.Quantity\u003e"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.ResourceQuotaStatus"
+ },
"kubernetes_ResourceRequirements": {
"type": "object",
"description": "",
"properties": {
"limits": {
"type": "object",
- "description": "Maximum amount of compute resources allowed",
+ "description": "Maximum amount of compute resources allowed; see http://releases.k8s.io/HEAD/docs/design/resources.md#resource-specifications",
"additionalProperties": {
"$ref": "#/definitions/kubernetes_resource_Quantity",
- "javaType": "io.fabric8.kubernetes.api.model.resource.Quantity"
+ "javaType": "io.fabric8.kubernetes.api.model.Quantity"
},
- "javaType": "java.util.Map\u003cString,io.fabric8.kubernetes.api.model.resource.Quantity\u003e"
+ "javaType": "java.util.Map\u003cString,io.fabric8.kubernetes.api.model.Quantity\u003e"
},
"requests": {
"type": "object",
- "description": "Minimum amount of resources requested; requests are honored only for persistent volumes as of now",
+ "description": "Minimum amount of resources requested; if Requests is omitted for a container",
"additionalProperties": {
"$ref": "#/definitions/kubernetes_resource_Quantity",
- "javaType": "io.fabric8.kubernetes.api.model.resource.Quantity"
+ "javaType": "io.fabric8.kubernetes.api.model.Quantity"
},
- "javaType": "java.util.Map\u003cString,io.fabric8.kubernetes.api.model.resource.Quantity\u003e"
+ "javaType": "java.util.Map\u003cString,io.fabric8.kubernetes.api.model.Quantity\u003e"
}
},
"additionalProperties": true,
"javaType": "io.fabric8.kubernetes.api.model.ResourceRequirements"
},
+ "kubernetes_RunAsUserStrategyOptions": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "type": {
+ "type": "string",
+ "description": "strategy used to generate RunAsUser"
+ },
+ "uid": {
+ "type": "integer",
+ "description": "the uid to always run as; required for MustRunAs",
+ "javaType": "Long"
+ },
+ "uidRangeMax": {
+ "type": "integer",
+ "description": "max value for range based allocators",
+ "javaType": "Long"
+ },
+ "uidRangeMin": {
+ "type": "integer",
+ "description": "min value for range based allocators",
+ "javaType": "Long"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.RunAsUserStrategyOptions"
+ },
+ "kubernetes_SELinuxContextStrategyOptions": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "seLinuxOptions": {
+ "$ref": "#/definitions/kubernetes_SELinuxOptions",
+ "javaType": "io.fabric8.kubernetes.api.model.SELinuxOptions"
+ },
+ "type": {
+ "type": "string",
+ "description": "strategy used to generate the SELinux context"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.SELinuxContextStrategyOptions"
+ },
"kubernetes_SELinuxOptions": {
"type": "object",
"description": "",
"properties": {
"level": {
"type": "string",
- "description": "the level label to apply to the container"
+ "description": "the level label to apply to the container; see http://releases.k8s.io/HEAD/docs/user-guide/labels.md"
},
"role": {
"type": "string",
- "description": "the role label to apply to the container"
+ "description": "the role label to apply to the container; see http://releases.k8s.io/HEAD/docs/user-guide/labels.md"
},
"type": {
"type": "string",
- "description": "the type label to apply to the container"
+ "description": "the type label to apply to the container; see http://releases.k8s.io/HEAD/docs/user-guide/labels.md"
},
"user": {
"type": "string",
- "description": "the user label to apply to the container"
+ "description": "the user label to apply to the container; see http://releases.k8s.io/HEAD/docs/user-guide/labels.md"
}
},
"additionalProperties": true,
@@ -7415,7 +8173,7 @@ var Kubernetes;
},
"items": {
"type": "array",
- "description": "items is a list of secret objects",
+ "description": "items is a list of secret objects; see http://releases.k8s.io/HEAD/docs/user-guide/secrets.md",
"items": {
"$ref": "#/definitions/kubernetes_Secret",
"javaType": "io.fabric8.kubernetes.api.model.Secret"
@@ -7435,7 +8193,8 @@ var Kubernetes;
"additionalProperties": true,
"javaType": "io.fabric8.kubernetes.api.model.SecretList",
"javaInterfaces": [
- "io.fabric8.kubernetes.api.model.KubernetesResource"
+ "io.fabric8.kubernetes.api.model.KubernetesResource",
+ "io.fabric8.kubernetes.api.model.KubernetesResourceList"
]
},
"kubernetes_SecretVolumeSource": {
@@ -7444,7 +8203,7 @@ var Kubernetes;
"properties": {
"secretName": {
"type": "string",
- "description": "secretName is the name of a secret in the pod's namespace"
+ "description": "secretName is the name of a secret in the pod's namespace; see http://releases.k8s.io/HEAD/docs/user-guide/volumes.md#secrets"
}
},
"additionalProperties": true,
@@ -7460,11 +8219,15 @@ var Kubernetes;
},
"privileged": {
"type": "boolean",
- "description": "run the container in privileged mode"
+ "description": "run the container in privileged mode; see http://releases.k8s.io/HEAD/docs/design/security_context.md#security-context"
+ },
+ "runAsNonRoot": {
+ "type": "boolean",
+ "description": "indicates the container must be run as a non-root user either by specifying the runAsUser or in the image specification"
},
"runAsUser": {
"type": "integer",
- "description": "the user id that runs the first process in the container",
+ "description": "the user id that runs the first process in the container; see http://releases.k8s.io/HEAD/docs/design/security_context.md#security-context",
"javaType": "Long"
},
"seLinuxOptions": {
@@ -7475,6 +8238,123 @@ var Kubernetes;
"additionalProperties": true,
"javaType": "io.fabric8.kubernetes.api.model.SecurityContext"
},
+ "kubernetes_SecurityContextConstraints": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "allowHostDirVolumePlugin": {
+ "type": "boolean",
+ "description": "allow the use of the host dir volume plugin"
+ },
+ "allowHostNetwork": {
+ "type": "boolean",
+ "description": "allow the use of the hostNetwork in the pod spec"
+ },
+ "allowHostPorts": {
+ "type": "boolean",
+ "description": "allow the use of the host ports in the containers"
+ },
+ "allowPrivilegedContainer": {
+ "type": "boolean",
+ "description": "allow containers to run as privileged"
+ },
+ "allowedCapabilities": {
+ "type": "array",
+ "description": "capabilities that are allowed to be added",
+ "items": {
+ "type": "string",
+ "description": "capabilities that are allowed to be added"
+ }
+ },
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "groups": {
+ "type": "array",
+ "description": "groups allowed to use this SecurityContextConstraints",
+ "items": {
+ "type": "string",
+ "description": "groups allowed to use this SecurityContextConstraints"
+ }
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "SecurityContextConstraints",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ObjectMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
+ },
+ "runAsUser": {
+ "$ref": "#/definitions/kubernetes_RunAsUserStrategyOptions",
+ "javaType": "io.fabric8.kubernetes.api.model.RunAsUserStrategyOptions"
+ },
+ "seLinuxContext": {
+ "$ref": "#/definitions/kubernetes_SELinuxContextStrategyOptions",
+ "javaType": "io.fabric8.kubernetes.api.model.SELinuxContextStrategyOptions"
+ },
+ "users": {
+ "type": "array",
+ "description": "users allowed to use this SecurityContextConstraints",
+ "items": {
+ "type": "string",
+ "description": "users allowed to use this SecurityContextConstraints"
+ }
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.SecurityContextConstraints",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.HasMetadata"
+ ]
+ },
+ "kubernetes_SecurityContextConstraintsList": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "items": {
+ "type": "array",
+ "description": "",
+ "items": {
+ "$ref": "#/definitions/kubernetes_SecurityContextConstraints",
+ "javaType": "io.fabric8.kubernetes.api.model.SecurityContextConstraints"
+ }
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "SecurityContextConstraintsList",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ListMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.SecurityContextConstraintsList",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.KubernetesResource",
+ "io.fabric8.kubernetes.api.model.KubernetesResourceList"
+ ]
+ },
"kubernetes_Service": {
"type": "object",
"description": "",
@@ -7526,6 +8406,14 @@ var Kubernetes;
"v1"
]
},
+ "imagePullSecrets": {
+ "type": "array",
+ "description": "list of references to secrets in the same namespace available for pulling container images; see http://releases.k8s.io/HEAD/docs/user-guide/secrets.md#manually-specifying-an-imagepullsecret",
+ "items": {
+ "$ref": "#/definitions/kubernetes_LocalObjectReference",
+ "javaType": "io.fabric8.kubernetes.api.model.LocalObjectReference"
+ }
+ },
"kind": {
"type": "string",
"description": "",
@@ -7538,7 +8426,7 @@ var Kubernetes;
},
"secrets": {
"type": "array",
- "description": "list of secrets that can be used by pods running as this service account",
+ "description": "list of secrets that can be used by pods running as this service account; see http://releases.k8s.io/HEAD/docs/user-guide/secrets.md",
"items": {
"$ref": "#/definitions/kubernetes_ObjectReference",
"javaType": "io.fabric8.kubernetes.api.model.ObjectReference"
@@ -7566,7 +8454,7 @@ var Kubernetes;
},
"items": {
"type": "array",
- "description": "list of ServiceAccounts",
+ "description": "list of ServiceAccounts; see http://releases.k8s.io/HEAD/docs/design/service_accounts.md#service-accounts",
"items": {
"$ref": "#/definitions/kubernetes_ServiceAccount",
"javaType": "io.fabric8.kubernetes.api.model.ServiceAccount"
@@ -7586,7 +8474,8 @@ var Kubernetes;
"additionalProperties": true,
"javaType": "io.fabric8.kubernetes.api.model.ServiceAccountList",
"javaInterfaces": [
- "io.fabric8.kubernetes.api.model.KubernetesResource"
+ "io.fabric8.kubernetes.api.model.KubernetesResource",
+ "io.fabric8.kubernetes.api.model.KubernetesResourceList"
]
},
"kubernetes_ServiceList": {
@@ -7624,7 +8513,8 @@ var Kubernetes;
"additionalProperties": true,
"javaType": "io.fabric8.kubernetes.api.model.ServiceList",
"javaInterfaces": [
- "io.fabric8.kubernetes.api.model.KubernetesResource"
+ "io.fabric8.kubernetes.api.model.KubernetesResource",
+ "io.fabric8.kubernetes.api.model.KubernetesResourceList"
]
},
"kubernetes_ServicePort": {
@@ -7639,7 +8529,7 @@ var Kubernetes;
},
"nodePort": {
"type": "integer",
- "description": "the port on each node on which this service is exposed"
+ "description": "the port on each node on which this service is exposed when type=NodePort or LoadBalancer; usually assigned by the system; if specified"
},
"port": {
"type": "integer",
@@ -7651,7 +8541,7 @@ var Kubernetes;
},
"targetPort": {
"$ref": "#/definitions/kubernetes_util_IntOrString",
- "javaType": "io.fabric8.kubernetes.api.model.util.IntOrString"
+ "javaType": "io.fabric8.kubernetes.api.model.IntOrString"
}
},
"additionalProperties": true,
@@ -7661,6 +8551,10 @@ var Kubernetes;
"type": "object",
"description": "",
"properties": {
+ "clusterIP": {
+ "type": "string",
+ "description": "IP address of the service; usually assigned by the system; if specified"
+ },
"deprecatedPublicIPs": {
"type": "array",
"description": "deprecated. externally visible IPs (e.g. load balancers) that should be proxied to this service",
@@ -7671,11 +8565,11 @@ var Kubernetes;
},
"portalIP": {
"type": "string",
- "description": ""
+ "description": "deprecated"
},
"ports": {
"type": "array",
- "description": "ports exposed by the service",
+ "description": "ports exposed by the service; see http://releases.k8s.io/HEAD/docs/user-guide/services.md#virtual-ips-and-service-proxies",
"items": {
"$ref": "#/definitions/kubernetes_ServicePort",
"javaType": "io.fabric8.kubernetes.api.model.ServicePort"
@@ -7692,7 +8586,7 @@ var Kubernetes;
},
"sessionAffinity": {
"type": "string",
- "description": "enable client IP based session affinity; must be ClientIP or None; defaults to None"
+ "description": "enable client IP based session affinity; must be ClientIP or None; defaults to None; see http://releases.k8s.io/HEAD/docs/user-guide/services.md#virtual-ips-and-service-proxies"
},
"type": {
"type": "string",
@@ -7714,13 +8608,108 @@ var Kubernetes;
"additionalProperties": true,
"javaType": "io.fabric8.kubernetes.api.model.ServiceStatus"
},
+ "kubernetes_Status": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "code": {
+ "type": "integer",
+ "description": "suggested HTTP return code for this status; 0 if not set"
+ },
+ "details": {
+ "$ref": "#/definitions/kubernetes_StatusDetails",
+ "javaType": "io.fabric8.kubernetes.api.model.StatusDetails"
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "Status",
+ "required": true
+ },
+ "message": {
+ "type": "string",
+ "description": "human-readable description of the status of this operation"
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ListMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
+ },
+ "reason": {
+ "type": "string",
+ "description": "machine-readable description of why this operation is in the 'Failure' status; if this value is empty there is no information available; a reason clarifies an HTTP status code but does not override it"
+ },
+ "status": {
+ "type": "string",
+ "description": "status of the operation; either Success"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.Status"
+ },
+ "kubernetes_StatusCause": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "field": {
+ "type": "string",
+ "description": "field of the resource that has caused this error"
+ },
+ "message": {
+ "type": "string",
+ "description": "human-readable description of the cause of the error; this field may be presented as-is to a reader"
+ },
+ "reason": {
+ "type": "string",
+ "description": "machine-readable description of the cause of the error; if this value is empty there is no information available"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.StatusCause"
+ },
+ "kubernetes_StatusDetails": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "causes": {
+ "type": "array",
+ "description": "the Causes array includes more details associated with the StatusReason failure; not all StatusReasons may provide detailed causes",
+ "items": {
+ "$ref": "#/definitions/kubernetes_StatusCause",
+ "javaType": "io.fabric8.kubernetes.api.model.StatusCause"
+ }
+ },
+ "kind": {
+ "type": "string",
+ "description": "the kind attribute of the resource associated with the status StatusReason; on some operations may differ from the requested resource Kind; see http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds"
+ },
+ "name": {
+ "type": "string",
+ "description": "the name attribute of the resource associated with the status StatusReason (when there is a single name which can be described)"
+ },
+ "retryAfterSeconds": {
+ "type": "integer",
+ "description": "the number of seconds before the client should attempt to retry this operation"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.StatusDetails"
+ },
"kubernetes_TCPSocketAction": {
"type": "object",
"description": "",
"properties": {
"port": {
"$ref": "#/definitions/kubernetes_util_IntOrString",
- "javaType": "io.fabric8.kubernetes.api.model.util.IntOrString"
+ "javaType": "io.fabric8.kubernetes.api.model.IntOrString"
}
},
"additionalProperties": true,
@@ -7732,7 +8721,7 @@ var Kubernetes;
"properties": {
"apiVersion": {
"type": "string",
- "description": "version of the schema the object should have"
+ "description": "version of the schema the object should have; see http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources"
},
"kind": {
"type": "string",
@@ -7750,6 +8739,10 @@ var Kubernetes;
"$ref": "#/definitions/kubernetes_AWSElasticBlockStoreVolumeSource",
"javaType": "io.fabric8.kubernetes.api.model.AWSElasticBlockStoreVolumeSource"
},
+ "cephfs": {
+ "$ref": "#/definitions/kubernetes_CephFSVolumeSource",
+ "javaType": "io.fabric8.kubernetes.api.model.CephFSVolumeSource"
+ },
"emptyDir": {
"$ref": "#/definitions/kubernetes_EmptyDirVolumeSource",
"javaType": "io.fabric8.kubernetes.api.model.EmptyDirVolumeSource"
@@ -7774,9 +8767,13 @@ var Kubernetes;
"$ref": "#/definitions/kubernetes_ISCSIVolumeSource",
"javaType": "io.fabric8.kubernetes.api.model.ISCSIVolumeSource"
},
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_MetadataVolumeSource",
+ "javaType": "io.fabric8.kubernetes.api.model.MetadataVolumeSource"
+ },
"name": {
"type": "string",
- "description": "volume name; must be a DNS_LABEL and unique within the pod",
+ "description": "volume name; must be a DNS_LABEL and unique within the pod; see http://releases.k8s.io/HEAD/docs/user-guide/identifiers.md#names",
"maxLength": 63,
"pattern": "^[a-z0-9]([-a-z0-9]*[a-z0-9])?$"
},
@@ -7828,6 +8825,10 @@ var Kubernetes;
"$ref": "#/definitions/kubernetes_AWSElasticBlockStoreVolumeSource",
"javaType": "io.fabric8.kubernetes.api.model.AWSElasticBlockStoreVolumeSource"
},
+ "cephfs": {
+ "$ref": "#/definitions/kubernetes_CephFSVolumeSource",
+ "javaType": "io.fabric8.kubernetes.api.model.CephFSVolumeSource"
+ },
"emptyDir": {
"$ref": "#/definitions/kubernetes_EmptyDirVolumeSource",
"javaType": "io.fabric8.kubernetes.api.model.EmptyDirVolumeSource"
@@ -7852,6 +8853,10 @@ var Kubernetes;
"$ref": "#/definitions/kubernetes_ISCSIVolumeSource",
"javaType": "io.fabric8.kubernetes.api.model.ISCSIVolumeSource"
},
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_MetadataVolumeSource",
+ "javaType": "io.fabric8.kubernetes.api.model.MetadataVolumeSource"
+ },
"nfs": {
"$ref": "#/definitions/kubernetes_NFSVolumeSource",
"javaType": "io.fabric8.kubernetes.api.model.NFSVolumeSource"
@@ -7872,133 +8877,6 @@ var Kubernetes;
"additionalProperties": true,
"javaType": "io.fabric8.kubernetes.api.model.VolumeSource"
},
- "kubernetes_base_ListMeta": {
- "type": "object",
- "description": "",
- "properties": {
- "resourceVersion": {
- "type": "string",
- "description": ""
- },
- "selfLink": {
- "type": "string",
- "description": ""
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.base.ListMeta"
- },
- "kubernetes_base_Status": {
- "type": "object",
- "description": "",
- "properties": {
- "apiVersion": {
- "type": "string",
- "description": "",
- "default": "v1",
- "required": true,
- "enum": [
- "v1"
- ]
- },
- "code": {
- "type": "integer",
- "description": ""
- },
- "details": {
- "$ref": "#/definitions/kubernetes_base_StatusDetails",
- "javaType": "io.fabric8.kubernetes.api.model.base.StatusDetails"
- },
- "kind": {
- "type": "string",
- "description": "",
- "default": "Status",
- "required": true
- },
- "message": {
- "type": "string",
- "description": ""
- },
- "metadata": {
- "$ref": "#/definitions/kubernetes_base_ListMeta",
- "javaType": "io.fabric8.kubernetes.api.model.base.ListMeta"
- },
- "reason": {
- "type": "string",
- "description": ""
- },
- "status": {
- "type": "string",
- "description": ""
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.base.Status"
- },
- "kubernetes_base_StatusCause": {
- "type": "object",
- "description": "",
- "properties": {
- "field": {
- "type": "string",
- "description": ""
- },
- "message": {
- "type": "string",
- "description": ""
- },
- "reason": {
- "type": "string",
- "description": ""
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.base.StatusCause"
- },
- "kubernetes_base_StatusDetails": {
- "type": "object",
- "description": "",
- "properties": {
- "causes": {
- "type": "array",
- "description": "",
- "items": {
- "$ref": "#/definitions/kubernetes_base_StatusCause",
- "javaType": "io.fabric8.kubernetes.api.model.base.StatusCause"
- }
- },
- "id": {
- "type": "string",
- "description": ""
- },
- "kind": {
- "type": "string",
- "description": ""
- },
- "retryAfterSeconds": {
- "type": "integer",
- "description": ""
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.base.StatusDetails"
- },
- "kubernetes_base_TypeMeta": {
- "type": "object",
- "description": "",
- "properties": {
- "apiVersion": {
- "type": "string",
- "description": ""
- },
- "kind": {
- "type": "string",
- "description": ""
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.base.TypeMeta"
- },
"kubernetes_config_AuthInfo": {
"type": "object",
"description": "",
@@ -8024,7 +8902,7 @@ var Kubernetes;
"description": "",
"items": {
"$ref": "#/definitions/kubernetes_config_NamedExtension",
- "javaType": "io.fabric8.kubernetes.api.model.config.NamedExtension"
+ "javaType": "io.fabric8.kubernetes.api.model.NamedExtension"
}
},
"password": {
@@ -8041,7 +8919,7 @@ var Kubernetes;
}
},
"additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.config.AuthInfo"
+ "javaType": "io.fabric8.kubernetes.api.model.AuthInfo"
},
"kubernetes_config_Cluster": {
"type": "object",
@@ -8064,7 +8942,7 @@ var Kubernetes;
"description": "",
"items": {
"$ref": "#/definitions/kubernetes_config_NamedExtension",
- "javaType": "io.fabric8.kubernetes.api.model.config.NamedExtension"
+ "javaType": "io.fabric8.kubernetes.api.model.NamedExtension"
}
},
"insecure-skip-tls-verify": {
@@ -8077,7 +8955,7 @@ var Kubernetes;
}
},
"additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.config.Cluster"
+ "javaType": "io.fabric8.kubernetes.api.model.Cluster"
},
"kubernetes_config_Config": {
"type": "object",
@@ -8092,7 +8970,7 @@ var Kubernetes;
"description": "",
"items": {
"$ref": "#/definitions/kubernetes_config_NamedCluster",
- "javaType": "io.fabric8.kubernetes.api.model.config.NamedCluster"
+ "javaType": "io.fabric8.kubernetes.api.model.NamedCluster"
}
},
"contexts": {
@@ -8100,7 +8978,7 @@ var Kubernetes;
"description": "",
"items": {
"$ref": "#/definitions/kubernetes_config_NamedContext",
- "javaType": "io.fabric8.kubernetes.api.model.config.NamedContext"
+ "javaType": "io.fabric8.kubernetes.api.model.NamedContext"
}
},
"current-context": {
@@ -8112,7 +8990,7 @@ var Kubernetes;
"description": "",
"items": {
"$ref": "#/definitions/kubernetes_config_NamedExtension",
- "javaType": "io.fabric8.kubernetes.api.model.config.NamedExtension"
+ "javaType": "io.fabric8.kubernetes.api.model.NamedExtension"
}
},
"kind": {
@@ -8121,19 +8999,19 @@ var Kubernetes;
},
"preferences": {
"$ref": "#/definitions/kubernetes_config_Preferences",
- "javaType": "io.fabric8.kubernetes.api.model.config.Preferences"
+ "javaType": "io.fabric8.kubernetes.api.model.Preferences"
},
"users": {
"type": "array",
"description": "",
"items": {
"$ref": "#/definitions/kubernetes_config_NamedAuthInfo",
- "javaType": "io.fabric8.kubernetes.api.model.config.NamedAuthInfo"
+ "javaType": "io.fabric8.kubernetes.api.model.NamedAuthInfo"
}
}
},
"additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.config.Config"
+ "javaType": "io.fabric8.kubernetes.api.model.Config"
},
"kubernetes_config_Context": {
"type": "object",
@@ -8148,7 +9026,7 @@ var Kubernetes;
"description": "",
"items": {
"$ref": "#/definitions/kubernetes_config_NamedExtension",
- "javaType": "io.fabric8.kubernetes.api.model.config.NamedExtension"
+ "javaType": "io.fabric8.kubernetes.api.model.NamedExtension"
}
},
"namespace": {
@@ -8161,7 +9039,7 @@ var Kubernetes;
}
},
"additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.config.Context"
+ "javaType": "io.fabric8.kubernetes.api.model.Context"
},
"kubernetes_config_NamedAuthInfo": {
"type": "object",
@@ -8173,11 +9051,11 @@ var Kubernetes;
},
"user": {
"$ref": "#/definitions/kubernetes_config_AuthInfo",
- "javaType": "io.fabric8.kubernetes.api.model.config.AuthInfo"
+ "javaType": "io.fabric8.kubernetes.api.model.AuthInfo"
}
},
"additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.config.NamedAuthInfo"
+ "javaType": "io.fabric8.kubernetes.api.model.NamedAuthInfo"
},
"kubernetes_config_NamedCluster": {
"type": "object",
@@ -8185,7 +9063,7 @@ var Kubernetes;
"properties": {
"cluster": {
"$ref": "#/definitions/kubernetes_config_Cluster",
- "javaType": "io.fabric8.kubernetes.api.model.config.Cluster"
+ "javaType": "io.fabric8.kubernetes.api.model.Cluster"
},
"name": {
"type": "string",
@@ -8193,7 +9071,7 @@ var Kubernetes;
}
},
"additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.config.NamedCluster"
+ "javaType": "io.fabric8.kubernetes.api.model.NamedCluster"
},
"kubernetes_config_NamedContext": {
"type": "object",
@@ -8201,7 +9079,7 @@ var Kubernetes;
"properties": {
"context": {
"$ref": "#/definitions/kubernetes_config_Context",
- "javaType": "io.fabric8.kubernetes.api.model.config.Context"
+ "javaType": "io.fabric8.kubernetes.api.model.Context"
},
"name": {
"type": "string",
@@ -8209,7 +9087,7 @@ var Kubernetes;
}
},
"additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.config.NamedContext"
+ "javaType": "io.fabric8.kubernetes.api.model.NamedContext"
},
"kubernetes_config_NamedExtension": {
"type": "object",
@@ -8225,7 +9103,7 @@ var Kubernetes;
}
},
"additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.config.NamedExtension"
+ "javaType": "io.fabric8.kubernetes.api.model.NamedExtension"
},
"kubernetes_config_Preferences": {
"type": "object",
@@ -8240,24 +9118,12 @@ var Kubernetes;
"description": "",
"items": {
"$ref": "#/definitions/kubernetes_config_NamedExtension",
- "javaType": "io.fabric8.kubernetes.api.model.config.NamedExtension"
+ "javaType": "io.fabric8.kubernetes.api.model.NamedExtension"
}
}
},
"additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.config.Preferences"
- },
- "kubernetes_errors_StatusError": {
- "type": "object",
- "description": "",
- "properties": {
- "ErrStatus": {
- "$ref": "#/definitions/kubernetes_base_Status",
- "javaType": "io.fabric8.kubernetes.api.model.base.Status"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.errors.StatusError"
+ "javaType": "io.fabric8.kubernetes.api.model.Preferences"
},
"kubernetes_resource_Quantity": {
"type": "object",
@@ -8265,7 +9131,7 @@ var Kubernetes;
"properties": {
"Amount": {
"$ref": "#/definitions/speter_inf_Dec",
- "javaType": "io.fabric8.openshift.client.util.Dec"
+ "javaType": "io.fabric8.openshift.api.model.Dec"
},
"Format": {
"type": "string",
@@ -8273,7 +9139,7 @@ var Kubernetes;
}
},
"additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.resource.Quantity"
+ "javaType": "io.fabric8.kubernetes.api.model.Quantity"
},
"kubernetes_runtime_RawExtension": {
"type": "object",
@@ -8305,7 +9171,7 @@ var Kubernetes;
}
},
"additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.util.IntOrString"
+ "javaType": "io.fabric8.kubernetes.api.model.IntOrString"
},
"kubernetes_watch_WatchEvent": {
"type": "object",
@@ -8321,7 +9187,918 @@ var Kubernetes;
}
},
"additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.watch.WatchEvent"
+ "javaType": "io.fabric8.kubernetes.api.model.WatchEvent"
+ },
+ "os_authorization_AuthorizationAttributes": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "content": {
+ "$ref": "#/definitions/kubernetes_runtime_RawExtension",
+ "javaType": "io.fabric8.kubernetes.api.model.HasMetadata"
+ },
+ "namespace": {
+ "type": "string",
+ "description": "namespace of the action being requested"
+ },
+ "resource": {
+ "type": "string",
+ "description": "one of the existing resource types"
+ },
+ "resourceName": {
+ "type": "string",
+ "description": "name of the resource being requested for a get or delete"
+ },
+ "verb": {
+ "type": "string",
+ "description": "one of get"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.AuthorizationAttributes"
+ },
+ "os_authorization_ClusterPolicy": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "ClusterPolicy",
+ "required": true
+ },
+ "lastModified": {
+ "type": "string",
+ "description": "last time any part of the object was created"
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ObjectMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
+ },
+ "roles": {
+ "type": "array",
+ "description": "all the roles held by this policy",
+ "items": {
+ "$ref": "#/definitions/os_authorization_NamedClusterRole",
+ "javaType": "io.fabric8.openshift.api.model.NamedClusterRole"
+ }
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.ClusterPolicy",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.HasMetadata"
+ ]
+ },
+ "os_authorization_ClusterPolicyBinding": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "ClusterPolicyBinding",
+ "required": true
+ },
+ "lastModified": {
+ "type": "string",
+ "description": "last time any part of the object was created"
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ObjectMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
+ },
+ "policyRef": {
+ "$ref": "#/definitions/kubernetes_ObjectReference",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectReference"
+ },
+ "roleBindings": {
+ "type": "array",
+ "description": "all the role bindings held by this policy",
+ "items": {
+ "$ref": "#/definitions/os_authorization_NamedClusterRoleBinding",
+ "javaType": "io.fabric8.openshift.api.model.NamedClusterRoleBinding"
+ }
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.ClusterPolicyBinding",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.HasMetadata"
+ ]
+ },
+ "os_authorization_ClusterPolicyBindingList": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "items": {
+ "type": "array",
+ "description": "list of cluster policy bindings",
+ "items": {
+ "$ref": "#/definitions/os_authorization_ClusterPolicyBinding",
+ "javaType": "io.fabric8.openshift.api.model.ClusterPolicyBinding"
+ }
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "ClusterPolicyBindingList",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ListMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.ClusterPolicyBindingList",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.KubernetesResource",
+ "io.fabric8.kubernetes.api.model.KubernetesResourceList"
+ ]
+ },
+ "os_authorization_ClusterPolicyList": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "items": {
+ "type": "array",
+ "description": "list of cluster policies",
+ "items": {
+ "$ref": "#/definitions/os_authorization_ClusterPolicy",
+ "javaType": "io.fabric8.openshift.api.model.ClusterPolicy"
+ }
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "ClusterPolicyList",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ListMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.ClusterPolicyList",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.KubernetesResource",
+ "io.fabric8.kubernetes.api.model.KubernetesResourceList"
+ ]
+ },
+ "os_authorization_ClusterRole": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "ClusterRole",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ObjectMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
+ },
+ "rules": {
+ "type": "array",
+ "description": "list of policy rules",
+ "items": {
+ "$ref": "#/definitions/os_authorization_PolicyRule",
+ "javaType": "io.fabric8.openshift.api.model.PolicyRule"
+ }
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.ClusterRole",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.HasMetadata"
+ ]
+ },
+ "os_authorization_ClusterRoleBinding": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "groupNames": {
+ "type": "array",
+ "description": "all the groups directly bound to the role",
+ "items": {
+ "type": "string",
+ "description": "all the groups directly bound to the role"
+ }
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "ClusterRoleBinding",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ObjectMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
+ },
+ "roleRef": {
+ "$ref": "#/definitions/kubernetes_ObjectReference",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectReference"
+ },
+ "subjects": {
+ "type": "array",
+ "description": "references to subjects bound to the role. Only User",
+ "items": {
+ "$ref": "#/definitions/kubernetes_ObjectReference",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectReference"
+ }
+ },
+ "userNames": {
+ "type": "array",
+ "description": "all user names directly bound to the role",
+ "items": {
+ "type": "string",
+ "description": "all user names directly bound to the role"
+ }
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.ClusterRoleBinding",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.HasMetadata"
+ ]
+ },
+ "os_authorization_ClusterRoleBindingList": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "items": {
+ "type": "array",
+ "description": "list of cluster role bindings",
+ "items": {
+ "$ref": "#/definitions/os_authorization_ClusterRoleBinding",
+ "javaType": "io.fabric8.openshift.api.model.ClusterRoleBinding"
+ }
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "ClusterRoleBindingList",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ListMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.ClusterRoleBindingList",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.KubernetesResource",
+ "io.fabric8.kubernetes.api.model.KubernetesResourceList"
+ ]
+ },
+ "os_authorization_LocalSubjectAccessReview": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "TypeMeta": {
+ "$ref": "#/definitions/kubernetes_TypeMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.TypeMeta"
+ },
+ "content": {
+ "$ref": "#/definitions/kubernetes_runtime_RawExtension",
+ "javaType": "io.fabric8.kubernetes.api.model.HasMetadata"
+ },
+ "groups": {
+ "type": "array",
+ "description": "optional",
+ "items": {
+ "type": "string",
+ "description": "optional"
+ }
+ },
+ "namespace": {
+ "type": "string",
+ "description": "namespace of the action being requested"
+ },
+ "resource": {
+ "type": "string",
+ "description": "one of the existing resource types"
+ },
+ "resourceName": {
+ "type": "string",
+ "description": "name of the resource being requested for a get or delete"
+ },
+ "user": {
+ "type": "string",
+ "description": "optional"
+ },
+ "verb": {
+ "type": "string",
+ "description": "one of get"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.LocalSubjectAccessReview"
+ },
+ "os_authorization_NamedClusterRole": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "name of the cluster role"
+ },
+ "role": {
+ "$ref": "#/definitions/os_authorization_ClusterRole",
+ "javaType": "io.fabric8.openshift.api.model.ClusterRole"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.NamedClusterRole"
+ },
+ "os_authorization_NamedClusterRoleBinding": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "name of the cluster role binding"
+ },
+ "roleBinding": {
+ "$ref": "#/definitions/os_authorization_ClusterRoleBinding",
+ "javaType": "io.fabric8.openshift.api.model.ClusterRoleBinding"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.NamedClusterRoleBinding"
+ },
+ "os_authorization_NamedRole": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "name of the role"
+ },
+ "role": {
+ "$ref": "#/definitions/os_authorization_Role",
+ "javaType": "io.fabric8.openshift.api.model.Role"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.NamedRole"
+ },
+ "os_authorization_NamedRoleBinding": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "name of the roleBinding"
+ },
+ "roleBinding": {
+ "$ref": "#/definitions/os_authorization_RoleBinding",
+ "javaType": "io.fabric8.openshift.api.model.RoleBinding"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.NamedRoleBinding"
+ },
+ "os_authorization_Policy": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "Policy",
+ "required": true
+ },
+ "lastModified": {
+ "type": "string",
+ "description": "last time that any part of the policy was created"
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ObjectMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
+ },
+ "roles": {
+ "type": "array",
+ "description": "roles held by this policy",
+ "items": {
+ "$ref": "#/definitions/os_authorization_NamedRole",
+ "javaType": "io.fabric8.openshift.api.model.NamedRole"
+ }
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.Policy",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.HasMetadata"
+ ]
+ },
+ "os_authorization_PolicyBinding": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "PolicyBinding",
+ "required": true
+ },
+ "lastModified": {
+ "type": "string",
+ "description": "last time that any part of the object was created"
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ObjectMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
+ },
+ "policyRef": {
+ "$ref": "#/definitions/kubernetes_ObjectReference",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectReference"
+ },
+ "roleBindings": {
+ "type": "array",
+ "description": "all roleBindings held by this policyBinding",
+ "items": {
+ "$ref": "#/definitions/os_authorization_NamedRoleBinding",
+ "javaType": "io.fabric8.openshift.api.model.NamedRoleBinding"
+ }
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.PolicyBinding",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.HasMetadata"
+ ]
+ },
+ "os_authorization_PolicyBindingList": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "items": {
+ "type": "array",
+ "description": "list of policy bindings",
+ "items": {
+ "$ref": "#/definitions/os_authorization_PolicyBinding",
+ "javaType": "io.fabric8.openshift.api.model.PolicyBinding"
+ }
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "PolicyBindingList",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ListMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.PolicyBindingList",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.KubernetesResource",
+ "io.fabric8.kubernetes.api.model.KubernetesResourceList"
+ ]
+ },
+ "os_authorization_PolicyList": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "items": {
+ "type": "array",
+ "description": "list of policies",
+ "items": {
+ "$ref": "#/definitions/os_authorization_Policy",
+ "javaType": "io.fabric8.openshift.api.model.Policy"
+ }
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "PolicyList",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ListMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.PolicyList",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.KubernetesResource",
+ "io.fabric8.kubernetes.api.model.KubernetesResourceList"
+ ]
+ },
+ "os_authorization_PolicyRule": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "attributeRestrictions": {
+ "$ref": "#/definitions/kubernetes_runtime_RawExtension",
+ "javaType": "io.fabric8.kubernetes.api.model.HasMetadata"
+ },
+ "nonResourceURLs": {
+ "type": "array",
+ "description": "set of partial urls that a user should have access to. *s are allowed",
+ "items": {
+ "type": "string",
+ "description": "set of partial urls that a user should have access to. *s are allowed"
+ }
+ },
+ "resourceNames": {
+ "type": "array",
+ "description": "optional white list of names that the rule applies to. An empty set means that everything is allowed.",
+ "items": {
+ "type": "string",
+ "description": "optional white list of names that the rule applies to. An empty set means that everything is allowed."
+ }
+ },
+ "resources": {
+ "type": "array",
+ "description": "list of resources this rule applies to. * represents all resources.",
+ "items": {
+ "type": "string",
+ "description": "list of resources this rule applies to. * represents all resources."
+ }
+ },
+ "verbs": {
+ "type": "array",
+ "description": "list of verbs that apply to ALL the resourceKinds and attributeRestrictions contained in this rule. The verb * represents all kinds.",
+ "items": {
+ "type": "string",
+ "description": "list of verbs that apply to ALL the resourceKinds and attributeRestrictions contained in this rule. The verb * represents all kinds."
+ }
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.PolicyRule"
+ },
+ "os_authorization_Role": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "Role",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ObjectMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
+ },
+ "rules": {
+ "type": "array",
+ "description": "all the rules for this role",
+ "items": {
+ "$ref": "#/definitions/os_authorization_PolicyRule",
+ "javaType": "io.fabric8.openshift.api.model.PolicyRule"
+ }
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.Role",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.HasMetadata"
+ ]
+ },
+ "os_authorization_RoleBinding": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "groupNames": {
+ "type": "array",
+ "description": "all the groups directly bound to the role",
+ "items": {
+ "type": "string",
+ "description": "all the groups directly bound to the role"
+ }
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "RoleBinding",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ObjectMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
+ },
+ "roleRef": {
+ "$ref": "#/definitions/kubernetes_ObjectReference",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectReference"
+ },
+ "subjects": {
+ "type": "array",
+ "description": "references to subjects bound to the role. Only User",
+ "items": {
+ "$ref": "#/definitions/kubernetes_ObjectReference",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectReference"
+ }
+ },
+ "userNames": {
+ "type": "array",
+ "description": "all the usernames directly bound to the role",
+ "items": {
+ "type": "string",
+ "description": "all the usernames directly bound to the role"
+ }
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.RoleBinding",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.HasMetadata"
+ ]
+ },
+ "os_authorization_RoleBindingList": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "items": {
+ "type": "array",
+ "description": "list of role bindings",
+ "items": {
+ "$ref": "#/definitions/os_authorization_RoleBinding",
+ "javaType": "io.fabric8.openshift.api.model.RoleBinding"
+ }
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "RoleBindingList",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ListMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.RoleBindingList",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.KubernetesResource",
+ "io.fabric8.kubernetes.api.model.KubernetesResourceList"
+ ]
+ },
+ "os_authorization_RoleList": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "items": {
+ "type": "array",
+ "description": "list of roles",
+ "items": {
+ "$ref": "#/definitions/os_authorization_Role",
+ "javaType": "io.fabric8.openshift.api.model.Role"
+ }
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "RoleList",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ListMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.RoleList",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.KubernetesResource",
+ "io.fabric8.kubernetes.api.model.KubernetesResourceList"
+ ]
+ },
+ "os_authorization_SubjectAccessReview": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "content": {
+ "$ref": "#/definitions/kubernetes_runtime_RawExtension",
+ "javaType": "io.fabric8.kubernetes.api.model.HasMetadata"
+ },
+ "groups": {
+ "type": "array",
+ "description": "optional",
+ "items": {
+ "type": "string",
+ "description": "optional"
+ }
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "SubjectAccessReview",
+ "required": true
+ },
+ "namespace": {
+ "type": "string",
+ "description": "namespace of the action being requested"
+ },
+ "resource": {
+ "type": "string",
+ "description": "one of the existing resource types"
+ },
+ "resourceName": {
+ "type": "string",
+ "description": "name of the resource being requested for a get or delete"
+ },
+ "user": {
+ "type": "string",
+ "description": "optional"
+ },
+ "verb": {
+ "type": "string",
+ "description": "one of get"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.SubjectAccessReview"
+ },
+ "os_authorization_SubjectAccessReviewResponse": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "allowed": {
+ "type": "boolean",
+ "description": "true if the action would be allowed"
+ },
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "SubjectAccessReviewResponse",
+ "required": true
+ },
+ "namespace": {
+ "type": "string",
+ "description": "the namespace used for the access review"
+ },
+ "reason": {
+ "type": "string",
+ "description": "reason is optional"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.SubjectAccessReviewResponse"
},
"os_build_Build": {
"type": "object",
@@ -8434,7 +10211,8 @@ var Kubernetes;
"additionalProperties": true,
"javaType": "io.fabric8.openshift.api.model.BuildConfigList",
"javaInterfaces": [
- "io.fabric8.kubernetes.api.model.KubernetesResource"
+ "io.fabric8.kubernetes.api.model.KubernetesResource",
+ "io.fabric8.kubernetes.api.model.KubernetesResourceList"
]
},
"os_build_BuildConfigSpec": {
@@ -8524,7 +10302,8 @@ var Kubernetes;
"additionalProperties": true,
"javaType": "io.fabric8.openshift.api.model.BuildList",
"javaInterfaces": [
- "io.fabric8.kubernetes.api.model.KubernetesResource"
+ "io.fabric8.kubernetes.api.model.KubernetesResource",
+ "io.fabric8.kubernetes.api.model.KubernetesResourceList"
]
},
"os_build_BuildOutput": {
@@ -8556,12 +10335,20 @@ var Kubernetes;
"v1"
]
},
+ "from": {
+ "$ref": "#/definitions/kubernetes_ObjectReference",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectReference"
+ },
"kind": {
"type": "string",
"description": "",
"default": "BuildRequest",
"required": true
},
+ "lastVersion": {
+ "type": "integer",
+ "description": "LastVersion of the BuildConfig that triggered this build"
+ },
"metadata": {
"$ref": "#/definitions/kubernetes_ObjectMeta",
"javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
@@ -8738,6 +10525,10 @@ var Kubernetes;
"type": "boolean",
"description": "allow running Docker commands (and build Docker images) from inside the container"
},
+ "forcePull": {
+ "type": "boolean",
+ "description": "forces pulling of builder image from remote registry if true"
+ },
"from": {
"$ref": "#/definitions/kubernetes_ObjectReference",
"javaType": "io.fabric8.kubernetes.api.model.ObjectReference"
@@ -8754,6 +10545,18 @@ var Kubernetes;
"type": "object",
"description": "",
"properties": {
+ "env": {
+ "type": "array",
+ "description": "additional environment variables you want to pass into a builder container",
+ "items": {
+ "$ref": "#/definitions/kubernetes_EnvVar",
+ "javaType": "io.fabric8.kubernetes.api.model.EnvVar"
+ }
+ },
+ "forcePull": {
+ "type": "boolean",
+ "description": "forces the source build to pull the image if true"
+ },
"from": {
"$ref": "#/definitions/kubernetes_ObjectReference",
"javaType": "io.fabric8.kubernetes.api.model.ObjectReference"
@@ -8774,6 +10577,14 @@ var Kubernetes;
"type": "object",
"description": "",
"properties": {
+ "httpProxy": {
+ "type": "string",
+ "description": "specifies a http proxy to be used during git clone operations"
+ },
+ "httpsProxy": {
+ "type": "string",
+ "description": "specifies a https proxy to be used during git clone operations"
+ },
"ref": {
"type": "string",
"description": "identifies the branch/tag/ref to build"
@@ -8814,6 +10625,10 @@ var Kubernetes;
"type": "object",
"description": "",
"properties": {
+ "from": {
+ "$ref": "#/definitions/kubernetes_ObjectReference",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectReference"
+ },
"lastTriggeredImageID": {
"type": "string",
"description": "used internally to save last used image ID for build"
@@ -8834,6 +10649,10 @@ var Kubernetes;
"javaType": "io.fabric8.kubernetes.api.model.EnvVar"
}
},
+ "forcePull": {
+ "type": "boolean",
+ "description": "forces the source build to pull the image if true"
+ },
"from": {
"$ref": "#/definitions/kubernetes_ObjectReference",
"javaType": "io.fabric8.kubernetes.api.model.ObjectReference"
@@ -9027,7 +10846,8 @@ var Kubernetes;
"additionalProperties": true,
"javaType": "io.fabric8.openshift.api.model.DeploymentConfigList",
"javaInterfaces": [
- "io.fabric8.kubernetes.api.model.KubernetesResource"
+ "io.fabric8.kubernetes.api.model.KubernetesResource",
+ "io.fabric8.kubernetes.api.model.KubernetesResourceList"
]
},
"os_deploy_DeploymentConfigSpec": {
@@ -9055,10 +10875,6 @@ var Kubernetes;
"$ref": "#/definitions/kubernetes_PodTemplateSpec",
"javaType": "io.fabric8.kubernetes.api.model.PodTemplateSpec"
},
- "templateRef": {
- "$ref": "#/definitions/kubernetes_ObjectReference",
- "javaType": "io.fabric8.kubernetes.api.model.ObjectReference"
- },
"triggers": {
"type": "array",
"description": "how new deployments are triggered",
@@ -9261,6 +11077,10 @@ var Kubernetes;
"description": "the time to wait for updates before giving up",
"javaType": "Long"
},
+ "updatePercent": {
+ "type": "integer",
+ "description": "the percentage of replicas to scale up or down each interval (negative value switches scale order to down/up instead of up/down)"
+ },
"updatePeriodSeconds": {
"type": "integer",
"description": "the time to wait between individual pod updates",
@@ -9351,7 +11171,8 @@ var Kubernetes;
"additionalProperties": true,
"javaType": "io.fabric8.openshift.api.model.ImageList",
"javaInterfaces": [
- "io.fabric8.kubernetes.api.model.KubernetesResource"
+ "io.fabric8.kubernetes.api.model.KubernetesResource",
+ "io.fabric8.kubernetes.api.model.KubernetesResourceList"
]
},
"os_image_ImageStream": {
@@ -9427,7 +11248,8 @@ var Kubernetes;
"additionalProperties": true,
"javaType": "io.fabric8.openshift.api.model.ImageStreamList",
"javaInterfaces": [
- "io.fabric8.kubernetes.api.model.KubernetesResource"
+ "io.fabric8.kubernetes.api.model.KubernetesResource",
+ "io.fabric8.kubernetes.api.model.KubernetesResourceList"
]
},
"os_image_ImageStreamSpec": {
@@ -9488,10 +11310,7 @@ var Kubernetes;
}
},
"additionalProperties": true,
- "javaType": "io.fabric8.openshift.api.model.NamedTagEventList",
- "javaInterfaces": [
- "io.fabric8.kubernetes.api.model.KubernetesResource"
- ]
+ "javaType": "io.fabric8.openshift.api.model.NamedTagEventList"
},
"os_image_NamedTagReference": {
"type": "object",
@@ -9640,7 +11459,8 @@ var Kubernetes;
"additionalProperties": true,
"javaType": "io.fabric8.openshift.api.model.OAuthAccessTokenList",
"javaInterfaces": [
- "io.fabric8.kubernetes.api.model.KubernetesResource"
+ "io.fabric8.kubernetes.api.model.KubernetesResource",
+ "io.fabric8.kubernetes.api.model.KubernetesResourceList"
]
},
"os_oauth_OAuthAuthorizeToken": {
@@ -9741,7 +11561,8 @@ var Kubernetes;
"additionalProperties": true,
"javaType": "io.fabric8.openshift.api.model.OAuthAuthorizeTokenList",
"javaInterfaces": [
- "io.fabric8.kubernetes.api.model.KubernetesResource"
+ "io.fabric8.kubernetes.api.model.KubernetesResource",
+ "io.fabric8.kubernetes.api.model.KubernetesResourceList"
]
},
"os_oauth_OAuthClient": {
@@ -9875,7 +11696,8 @@ var Kubernetes;
"additionalProperties": true,
"javaType": "io.fabric8.openshift.api.model.OAuthClientAuthorizationList",
"javaInterfaces": [
- "io.fabric8.kubernetes.api.model.KubernetesResource"
+ "io.fabric8.kubernetes.api.model.KubernetesResource",
+ "io.fabric8.kubernetes.api.model.KubernetesResourceList"
]
},
"os_oauth_OAuthClientList": {
@@ -9913,9 +11735,153 @@ var Kubernetes;
"additionalProperties": true,
"javaType": "io.fabric8.openshift.api.model.OAuthClientList",
"javaInterfaces": [
- "io.fabric8.kubernetes.api.model.KubernetesResource"
+ "io.fabric8.kubernetes.api.model.KubernetesResource",
+ "io.fabric8.kubernetes.api.model.KubernetesResourceList"
]
},
+ "os_project_Project": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "Project",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ObjectMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
+ },
+ "spec": {
+ "$ref": "#/definitions/os_project_ProjectSpec",
+ "javaType": "io.fabric8.openshift.api.model.ProjectSpec"
+ },
+ "status": {
+ "$ref": "#/definitions/os_project_ProjectStatus",
+ "javaType": "io.fabric8.openshift.api.model.ProjectStatus"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.Project",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.HasMetadata"
+ ]
+ },
+ "os_project_ProjectList": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "items": {
+ "type": "array",
+ "description": "list of projects",
+ "items": {
+ "$ref": "#/definitions/os_project_Project",
+ "javaType": "io.fabric8.openshift.api.model.Project"
+ }
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "ProjectList",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ListMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.ProjectList",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.KubernetesResource",
+ "io.fabric8.kubernetes.api.model.KubernetesResourceList"
+ ]
+ },
+ "os_project_ProjectRequest": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "description": {
+ "type": "string",
+ "description": "description to apply to a project"
+ },
+ "displayName": {
+ "type": "string",
+ "description": "display name to apply to a project"
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "ProjectRequest",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ObjectMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.ProjectRequest",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.HasMetadata"
+ ]
+ },
+ "os_project_ProjectSpec": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "finalizers": {
+ "type": "array",
+ "description": "an opaque list of values that must be empty to permanently remove object from storage",
+ "items": {
+ "type": "string",
+ "description": "an opaque list of values that must be empty to permanently remove object from storage"
+ }
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.ProjectSpec"
+ },
+ "os_project_ProjectStatus": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "phase": {
+ "type": "string",
+ "description": "phase is the current lifecycle phase of the project"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.ProjectStatus"
+ },
"os_route_Route": {
"type": "object",
"description": "",
@@ -9989,7 +11955,8 @@ var Kubernetes;
"additionalProperties": true,
"javaType": "io.fabric8.openshift.api.model.RouteList",
"javaInterfaces": [
- "io.fabric8.kubernetes.api.model.KubernetesResource"
+ "io.fabric8.kubernetes.api.model.KubernetesResource",
+ "io.fabric8.kubernetes.api.model.KubernetesResourceList"
]
},
"os_route_RouteSpec": {
@@ -10070,13 +12037,17 @@ var Kubernetes;
"type": "string",
"description": "name of the parameter"
},
+ "required": {
+ "type": "boolean",
+ "description": "indicates the parameter must have a non-empty value or be generated"
+ },
"value": {
"type": "string",
"description": "optional: holds the parameter data. if specified"
}
},
"additionalProperties": true,
- "javaType": "io.fabric8.openshift.api.model.template.Parameter"
+ "javaType": "io.fabric8.openshift.api.model.Parameter"
},
"os_template_Template": {
"type": "object",
@@ -10123,12 +12094,12 @@ var Kubernetes;
"description": "optional: list of parameters used during template to config transformation",
"items": {
"$ref": "#/definitions/os_template_Parameter",
- "javaType": "io.fabric8.openshift.api.model.template.Parameter"
+ "javaType": "io.fabric8.openshift.api.model.Parameter"
}
}
},
"additionalProperties": true,
- "javaType": "io.fabric8.openshift.api.model.template.Template",
+ "javaType": "io.fabric8.openshift.api.model.Template",
"javaInterfaces": [
"io.fabric8.kubernetes.api.model.HasMetadata"
]
@@ -10151,7 +12122,7 @@ var Kubernetes;
"description": "list of templates",
"items": {
"$ref": "#/definitions/os_template_Template",
- "javaType": "io.fabric8.openshift.api.model.template.Template"
+ "javaType": "io.fabric8.openshift.api.model.Template"
}
},
"kind": {
@@ -10166,16 +12137,273 @@ var Kubernetes;
}
},
"additionalProperties": true,
- "javaType": "io.fabric8.openshift.api.model.template.TemplateList",
+ "javaType": "io.fabric8.openshift.api.model.TemplateList",
"javaInterfaces": [
- "io.fabric8.kubernetes.api.model.KubernetesResource"
+ "io.fabric8.kubernetes.api.model.KubernetesResource",
+ "io.fabric8.kubernetes.api.model.KubernetesResourceList"
+ ]
+ },
+ "os_user_Group": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "Group",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ObjectMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
+ },
+ "users": {
+ "type": "array",
+ "description": "list of users in this group",
+ "items": {
+ "type": "string",
+ "description": "list of users in this group"
+ }
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.Group",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.HasMetadata"
+ ]
+ },
+ "os_user_GroupList": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "items": {
+ "type": "array",
+ "description": "list of groups",
+ "items": {
+ "$ref": "#/definitions/os_user_Group",
+ "javaType": "io.fabric8.openshift.api.model.Group"
+ }
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "GroupList",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ListMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.GroupList",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.KubernetesResource",
+ "io.fabric8.kubernetes.api.model.KubernetesResourceList"
+ ]
+ },
+ "os_user_Identity": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "extra": {
+ "type": "object",
+ "description": "extra information for this identity",
+ "additionalProperties": {
+ "type": "string",
+ "description": "extra information for this identity"
+ },
+ "javaType": "java.util.Map\u003cString,String\u003e"
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "Identity",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ObjectMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
+ },
+ "providerName": {
+ "type": "string",
+ "description": "source of identity information"
+ },
+ "providerUserName": {
+ "type": "string",
+ "description": "uniquely represents this identity in the scope of the provider"
+ },
+ "user": {
+ "$ref": "#/definitions/kubernetes_ObjectReference",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectReference"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.Identity",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.HasMetadata"
+ ]
+ },
+ "os_user_IdentityList": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "items": {
+ "type": "array",
+ "description": "list of identities",
+ "items": {
+ "$ref": "#/definitions/os_user_Identity",
+ "javaType": "io.fabric8.openshift.api.model.Identity"
+ }
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "IdentityList",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ListMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.IdentityList",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.KubernetesResource",
+ "io.fabric8.kubernetes.api.model.KubernetesResourceList"
+ ]
+ },
+ "os_user_User": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "fullName": {
+ "type": "string",
+ "description": "full name of user"
+ },
+ "groups": {
+ "type": "array",
+ "description": "list of groups",
+ "items": {
+ "type": "string",
+ "description": "list of groups"
+ }
+ },
+ "identities": {
+ "type": "array",
+ "description": "list of identities",
+ "items": {
+ "type": "string",
+ "description": "list of identities"
+ }
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "User",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ObjectMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.User",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.HasMetadata"
+ ]
+ },
+ "os_user_UserList": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "items": {
+ "type": "array",
+ "description": "list of users",
+ "items": {
+ "$ref": "#/definitions/os_user_User",
+ "javaType": "io.fabric8.openshift.api.model.User"
+ }
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "UserList",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ListMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.UserList",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.KubernetesResource",
+ "io.fabric8.kubernetes.api.model.KubernetesResourceList"
]
},
"speter_inf_Dec": {
"type": "object",
"description": "",
"additionalProperties": true,
- "javaType": "io.fabric8.openshift.client.util.Dec"
+ "javaType": "io.fabric8.openshift.api.model.Dec"
}
},
"type": "object",
@@ -10196,9 +12424,33 @@ var Kubernetes;
"$ref": "#/definitions/os_build_BuildRequest",
"javaType": "io.fabric8.openshift.api.model.BuildRequest"
},
+ "ClusterPolicy": {
+ "$ref": "#/definitions/os_authorization_ClusterPolicy",
+ "javaType": "io.fabric8.openshift.api.model.ClusterPolicy"
+ },
+ "ClusterPolicyBinding": {
+ "$ref": "#/definitions/os_authorization_ClusterPolicyBinding",
+ "javaType": "io.fabric8.openshift.api.model.ClusterPolicyBinding"
+ },
+ "ClusterPolicyBindingList": {
+ "$ref": "#/definitions/os_authorization_ClusterPolicyBindingList",
+ "javaType": "io.fabric8.openshift.api.model.ClusterPolicyBindingList"
+ },
+ "ClusterPolicyList": {
+ "$ref": "#/definitions/os_authorization_ClusterPolicyList",
+ "javaType": "io.fabric8.openshift.api.model.ClusterPolicyList"
+ },
+ "ClusterRoleBinding": {
+ "$ref": "#/definitions/os_authorization_ClusterRoleBinding",
+ "javaType": "io.fabric8.openshift.api.model.ClusterRoleBinding"
+ },
+ "ClusterRoleBindingList": {
+ "$ref": "#/definitions/os_authorization_ClusterRoleBindingList",
+ "javaType": "io.fabric8.openshift.api.model.ClusterRoleBindingList"
+ },
"Config": {
"$ref": "#/definitions/kubernetes_config_Config",
- "javaType": "io.fabric8.kubernetes.api.model.config.Config"
+ "javaType": "io.fabric8.kubernetes.api.model.Config"
},
"ContainerStatus": {
"$ref": "#/definitions/kubernetes_ContainerStatus",
@@ -10220,6 +12472,26 @@ var Kubernetes;
"$ref": "#/definitions/kubernetes_EnvVar",
"javaType": "io.fabric8.kubernetes.api.model.EnvVar"
},
+ "EventList": {
+ "$ref": "#/definitions/kubernetes_EventList",
+ "javaType": "io.fabric8.kubernetes.api.model.EventList"
+ },
+ "Group": {
+ "$ref": "#/definitions/os_user_Group",
+ "javaType": "io.fabric8.openshift.api.model.Group"
+ },
+ "GroupList": {
+ "$ref": "#/definitions/os_user_GroupList",
+ "javaType": "io.fabric8.openshift.api.model.GroupList"
+ },
+ "Identity": {
+ "$ref": "#/definitions/os_user_Identity",
+ "javaType": "io.fabric8.openshift.api.model.Identity"
+ },
+ "IdentityList": {
+ "$ref": "#/definitions/os_user_IdentityList",
+ "javaType": "io.fabric8.openshift.api.model.IdentityList"
+ },
"ImageList": {
"$ref": "#/definitions/os_image_ImageList",
"javaType": "io.fabric8.openshift.api.model.ImageList"
@@ -10228,6 +12500,10 @@ var Kubernetes;
"$ref": "#/definitions/os_image_ImageStreamList",
"javaType": "io.fabric8.openshift.api.model.ImageStreamList"
},
+ "LocalSubjectAccessReview": {
+ "$ref": "#/definitions/os_authorization_LocalSubjectAccessReview",
+ "javaType": "io.fabric8.openshift.api.model.LocalSubjectAccessReview"
+ },
"Namespace": {
"$ref": "#/definitions/kubernetes_Namespace",
"javaType": "io.fabric8.kubernetes.api.model.Namespace"
@@ -10280,18 +12556,90 @@ var Kubernetes;
"$ref": "#/definitions/kubernetes_ObjectMeta",
"javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
},
+ "PersistentVolume": {
+ "$ref": "#/definitions/kubernetes_PersistentVolume",
+ "javaType": "io.fabric8.kubernetes.api.model.PersistentVolume"
+ },
+ "PersistentVolumeClaim": {
+ "$ref": "#/definitions/kubernetes_PersistentVolumeClaim",
+ "javaType": "io.fabric8.kubernetes.api.model.PersistentVolumeClaim"
+ },
+ "PersistentVolumeClaimList": {
+ "$ref": "#/definitions/kubernetes_PersistentVolumeClaimList",
+ "javaType": "io.fabric8.kubernetes.api.model.PersistentVolumeClaimList"
+ },
+ "PersistentVolumeList": {
+ "$ref": "#/definitions/kubernetes_PersistentVolumeList",
+ "javaType": "io.fabric8.kubernetes.api.model.PersistentVolumeList"
+ },
"PodList": {
"$ref": "#/definitions/kubernetes_PodList",
"javaType": "io.fabric8.kubernetes.api.model.PodList"
},
+ "Policy": {
+ "$ref": "#/definitions/os_authorization_Policy",
+ "javaType": "io.fabric8.openshift.api.model.Policy"
+ },
+ "PolicyBinding": {
+ "$ref": "#/definitions/os_authorization_PolicyBinding",
+ "javaType": "io.fabric8.openshift.api.model.PolicyBinding"
+ },
+ "PolicyBindingList": {
+ "$ref": "#/definitions/os_authorization_PolicyBindingList",
+ "javaType": "io.fabric8.openshift.api.model.PolicyBindingList"
+ },
+ "PolicyList": {
+ "$ref": "#/definitions/os_authorization_PolicyList",
+ "javaType": "io.fabric8.openshift.api.model.PolicyList"
+ },
+ "Project": {
+ "$ref": "#/definitions/os_project_Project",
+ "javaType": "io.fabric8.openshift.api.model.Project"
+ },
+ "ProjectList": {
+ "$ref": "#/definitions/os_project_ProjectList",
+ "javaType": "io.fabric8.openshift.api.model.ProjectList"
+ },
+ "ProjectRequest": {
+ "$ref": "#/definitions/os_project_ProjectRequest",
+ "javaType": "io.fabric8.openshift.api.model.ProjectRequest"
+ },
"Quantity": {
"$ref": "#/definitions/kubernetes_resource_Quantity",
- "javaType": "io.fabric8.kubernetes.api.model.resource.Quantity"
+ "javaType": "io.fabric8.kubernetes.api.model.Quantity"
},
"ReplicationControllerList": {
"$ref": "#/definitions/kubernetes_ReplicationControllerList",
"javaType": "io.fabric8.kubernetes.api.model.ReplicationControllerList"
},
+ "ResourceQuota": {
+ "$ref": "#/definitions/kubernetes_ResourceQuota",
+ "javaType": "io.fabric8.kubernetes.api.model.ResourceQuota"
+ },
+ "ResourceQuotaList": {
+ "$ref": "#/definitions/kubernetes_ResourceQuotaList",
+ "javaType": "io.fabric8.kubernetes.api.model.ResourceQuotaList"
+ },
+ "Role": {
+ "$ref": "#/definitions/os_authorization_Role",
+ "javaType": "io.fabric8.openshift.api.model.Role"
+ },
+ "RoleBinding": {
+ "$ref": "#/definitions/os_authorization_RoleBinding",
+ "javaType": "io.fabric8.openshift.api.model.RoleBinding"
+ },
+ "RoleBindingList": {
+ "$ref": "#/definitions/os_authorization_RoleBindingList",
+ "javaType": "io.fabric8.openshift.api.model.RoleBindingList"
+ },
+ "RoleList": {
+ "$ref": "#/definitions/os_authorization_RoleList",
+ "javaType": "io.fabric8.openshift.api.model.RoleList"
+ },
+ "RootPaths": {
+ "$ref": "#/definitions/api_RootPaths",
+ "javaType": "io.fabric8.kubernetes.api.model.RootPaths"
+ },
"RouteList": {
"$ref": "#/definitions/os_route_RouteList",
"javaType": "io.fabric8.openshift.api.model.RouteList"
@@ -10304,6 +12652,14 @@ var Kubernetes;
"$ref": "#/definitions/kubernetes_SecretList",
"javaType": "io.fabric8.kubernetes.api.model.SecretList"
},
+ "SecurityContextConstraints": {
+ "$ref": "#/definitions/kubernetes_SecurityContextConstraints",
+ "javaType": "io.fabric8.kubernetes.api.model.SecurityContextConstraints"
+ },
+ "SecurityContextConstraintsList": {
+ "$ref": "#/definitions/kubernetes_SecurityContextConstraintsList",
+ "javaType": "io.fabric8.kubernetes.api.model.SecurityContextConstraintsList"
+ },
"ServiceAccount": {
"$ref": "#/definitions/kubernetes_ServiceAccount",
"javaType": "io.fabric8.kubernetes.api.model.ServiceAccount"
@@ -10316,9 +12672,17 @@ var Kubernetes;
"$ref": "#/definitions/kubernetes_ServiceList",
"javaType": "io.fabric8.kubernetes.api.model.ServiceList"
},
- "StatusError": {
- "$ref": "#/definitions/kubernetes_errors_StatusError",
- "javaType": "io.fabric8.kubernetes.api.model.errors.StatusError"
+ "Status": {
+ "$ref": "#/definitions/kubernetes_Status",
+ "javaType": "io.fabric8.kubernetes.api.model.Status"
+ },
+ "SubjectAccessReview": {
+ "$ref": "#/definitions/os_authorization_SubjectAccessReview",
+ "javaType": "io.fabric8.openshift.api.model.SubjectAccessReview"
+ },
+ "SubjectAccessReviewResponse": {
+ "$ref": "#/definitions/os_authorization_SubjectAccessReviewResponse",
+ "javaType": "io.fabric8.openshift.api.model.SubjectAccessReviewResponse"
},
"TagEvent": {
"$ref": "#/definitions/os_image_TagEvent",
@@ -10326,15 +12690,23 @@ var Kubernetes;
},
"Template": {
"$ref": "#/definitions/os_template_Template",
- "javaType": "io.fabric8.openshift.api.model.template.Template"
+ "javaType": "io.fabric8.openshift.api.model.Template"
},
"TemplateList": {
"$ref": "#/definitions/os_template_TemplateList",
- "javaType": "io.fabric8.openshift.api.model.template.TemplateList"
+ "javaType": "io.fabric8.openshift.api.model.TemplateList"
+ },
+ "User": {
+ "$ref": "#/definitions/os_user_User",
+ "javaType": "io.fabric8.openshift.api.model.User"
+ },
+ "UserList": {
+ "$ref": "#/definitions/os_user_UserList",
+ "javaType": "io.fabric8.openshift.api.model.UserList"
},
"WatchEvent": {
"$ref": "#/definitions/kubernetes_watch_WatchEvent",
- "javaType": "io.fabric8.kubernetes.api.watch.WatchEvent"
+ "javaType": "io.fabric8.kubernetes.api.model.WatchEvent"
}
},
"additionalProperties": true
@@ -12453,13 +14825,13 @@ var Kubernetes;
}]);
})(Kubernetes || (Kubernetes = {}));
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi93b3Jrc3BhY2UvamF2YS9oYXd0aW8ta3ViZXJuZXRlcy9pbmNsdWRlcy50cyIsIi93b3Jrc3BhY2UvamF2YS9oYXd0aW8ta3ViZXJuZXRlcy9kZXZlbG9wZXIvdHMvZGV2ZWxvcGVyRW5yaWNoZXJzLnRzIiwiL3dvcmtzcGFjZS9qYXZhL2hhd3Rpby1rdWJlcm5ldGVzL2RldmVsb3Blci90cy9kZXZlbG9wZXJIZWxwZXJzLnRzIiwiL3dvcmtzcGFjZS9qYXZhL2hhd3Rpby1rdWJlcm5ldGVzL2RldmVsb3Blci90cy9kZXZlbG9wZXJOYXZpZ2F0aW9uLnRzIiwiL3dvcmtzcGFjZS9qYXZhL2hhd3Rpby1rdWJlcm5ldGVzL2RldmVsb3Blci90cy9kZXZlbG9wZXJQbHVnaW4udHMiLCIvd29ya3NwYWNlL2phdmEvaGF3dGlvLWt1YmVybmV0ZXMva3ViZXJuZXRlcy90cy9rdWJlcm5ldGVzSW50ZXJmYWNlcy50cyIsIi93b3Jrc3BhY2UvamF2YS9oYXd0aW8ta3ViZXJuZXRlcy9rdWJlcm5ldGVzL3RzL2t1YmVybmV0ZXNIZWxwZXJzLnRzIiwiL3dvcmtzcGFjZS9qYXZhL2hhd3Rpby1rdWJlcm5ldGVzL2RldmVsb3Blci90cy9ob21lLnRzIiwiL3dvcmtzcGFjZS9qYXZhL2hhd3Rpby1rdWJlcm5ldGVzL2RldmVsb3Blci90cy9qZW5raW5zSm9iLnRzIiwiL3dvcmtzcGFjZS9qYXZhL2hhd3Rpby1rdWJlcm5ldGVzL2RldmVsb3Blci90cy9qZW5raW5zSm9icy50cyIsIi93b3Jrc3BhY2UvamF2YS9oYXd0aW8ta3ViZXJuZXRlcy9kZXZlbG9wZXIvdHMvamVua2luc0xvZy50cyIsIi93b3Jrc3BhY2UvamF2YS9oYXd0aW8ta3ViZXJuZXRlcy9kZXZlbG9wZXIvdHMvamVua2luc01ldHJpY3MudHMiLCIvd29ya3NwYWNlL2phdmEvaGF3dGlvLWt1YmVybmV0ZXMvZGV2ZWxvcGVyL3RzL25hdmJhci50cyIsIi93b3Jrc3BhY2UvamF2YS9oYXd0aW8ta3ViZXJuZXRlcy9kZXZlbG9wZXIvdHMvcGlwZWxpbmUudHMiLCIvd29ya3NwYWNlL2phdmEvaGF3dGlvLWt1YmVybmV0ZXMvZGV2ZWxvcGVyL3RzL3BpcGVsaW5lRGlyZWN0aXZlLnRzIiwiL3dvcmtzcGFjZS9qYXZhL2hhd3Rpby1rdWJlcm5ldGVzL2RldmVsb3Blci90cy9waXBlbGluZXMudHMiLCIvd29ya3NwYWNlL2phdmEvaGF3dGlvLWt1YmVybmV0ZXMvZGV2ZWxvcGVyL3RzL3Byb2plY3QudHMiLCIvd29ya3NwYWNlL2phdmEvaGF3dGlvLWt1YmVybmV0ZXMvZGV2ZWxvcGVyL3RzL3Byb2plY3RzLnRzIiwiL3dvcmtzcGFjZS9qYXZhL2hhd3Rpby1rdWJlcm5ldGVzL2RldmVsb3Blci90cy93b3Jrc3BhY2UudHMiLCIvd29ya3NwYWNlL2phdmEvaGF3dGlvLWt1YmVybmV0ZXMvZGV2ZWxvcGVyL3RzL3dvcmtzcGFjZXMudHMiLCIvd29ya3NwYWNlL2phdmEvaGF3dGlvLWt1YmVybmV0ZXMva3ViZXJuZXRlcy90cy9rdWJlcm5ldGVzUGx1Z2luLnRzIiwiL3dvcmtzcGFjZS9qYXZhL2hhd3Rpby1rdWJlcm5ldGVzL2t1YmVybmV0ZXMvdHMvYXBwcy50cyIsIi93b3Jrc3BhY2UvamF2YS9oYXd0aW8ta3ViZXJuZXRlcy9rdWJlcm5ldGVzL3RzL2JyZWFkY3J1bWJzLnRzIiwiL3dvcmtzcGFjZS9qYXZhL2hhd3Rpby1rdWJlcm5ldGVzL2t1YmVybmV0ZXMvdHMvYnVpbGQudHMiLCIvd29ya3NwYWNlL2phdmEvaGF3dGlvLWt1YmVybmV0ZXMva3ViZXJuZXRlcy90cy9idWlsZENvbmZpZy50cyIsIi93b3Jrc3BhY2UvamF2YS9oYXd0aW8ta3ViZXJuZXRlcy9rdWJlcm5ldGVzL3RzL2J1aWxkQ29uZmlnRWRpdC50cyIsIi93b3Jrc3BhY2UvamF2YS9oYXd0aW8ta3ViZXJuZXRlcy9rdWJlcm5ldGVzL3RzL2J1aWxkQ29uZmlncy50cyIsIi93b3Jrc3BhY2UvamF2YS9oYXd0aW8ta3ViZXJuZXRlcy9rdWJlcm5ldGVzL3RzL2J1aWxkTG9ncy50cyIsIi93b3Jrc3BhY2UvamF2YS9oYXd0aW8ta3ViZXJuZXRlcy9rdWJlcm5ldGVzL3RzL2J1aWxkcy50cyIsIi93b3Jrc3BhY2UvamF2YS9oYXd0aW8ta3ViZXJuZXRlcy9rdWJlcm5ldGVzL3RzL2Nvbm5lY3QudHMiLCIvd29ya3NwYWNlL2phdmEvaGF3dGlvLWt1YmVybmV0ZXMva3ViZXJuZXRlcy90cy9kZXBsb3ltZW50Q29uZmlnLnRzIiwiL3dvcmtzcGFjZS9qYXZhL2hhd3Rpby1rdWJlcm5ldGVzL2t1YmVybmV0ZXMvdHMvZGVwbG95bWVudENvbmZpZ3MudHMiLCIvd29ya3NwYWNlL2phdmEvaGF3dGlvLWt1YmVybmV0ZXMva3ViZXJuZXRlcy90cy9ldmVudHMudHMiLCIvd29ya3NwYWNlL2phdmEvaGF3dGlvLWt1YmVybmV0ZXMva3ViZXJuZXRlcy90cy9rdWJlcm5ldGVzTW9kZWwudHMiLCIvd29ya3NwYWNlL2phdmEvaGF3dGlvLWt1YmVybmV0ZXMva3ViZXJuZXRlcy90cy9ob3N0LnRzIiwiL3dvcmtzcGFjZS9qYXZhL2hhd3Rpby1rdWJlcm5ldGVzL2t1YmVybmV0ZXMvdHMvdXRpbEhlbHBlcnMudHMiLCIvd29ya3NwYWNlL2phdmEvaGF3dGlvLWt1YmVybmV0ZXMva3ViZXJuZXRlcy90cy9ob3N0cy50cyIsIi93b3Jrc3BhY2UvamF2YS9oYXd0aW8ta3ViZXJuZXRlcy9rdWJlcm5ldGVzL3RzL2ltYWdlUmVwb3NpdG9yaWVzLnRzIiwiL3dvcmtzcGFjZS9qYXZhL2hhd3Rpby1rdWJlcm5ldGVzL2t1YmVybmV0ZXMvdHMvc2NoZW1hLnRzIiwiL3dvcmtzcGFjZS9qYXZhL2hhd3Rpby1rdWJlcm5ldGVzL2t1YmVybmV0ZXMvdHMva3ViZXJuZXRlc1NjaGVtYS50cyIsIi93b3Jrc3BhY2UvamF2YS9oYXd0aW8ta3ViZXJuZXRlcy9rdWJlcm5ldGVzL3RzL2t1YmVybmV0ZXNTZXJ2aWNlcy50cyIsIi93b3Jrc3BhY2UvamF2YS9oYXd0aW8ta3ViZXJuZXRlcy9rdWJlcm5ldGVzL3RzL2t1YmVybmV0ZXNUb3BMZXZlbC50cyIsIi93b3Jrc3BhY2UvamF2YS9oYXd0aW8ta3ViZXJuZXRlcy9rdWJlcm5ldGVzL3RzL25hbWVzcGFjZS50cyIsIi93b3Jrc3BhY2UvamF2YS9oYXd0aW8ta3ViZXJuZXRlcy9rdWJlcm5ldGVzL3RzL292ZXJ2aWV3LnRzIiwiL3dvcmtzcGFjZS9qYXZhL2hhd3Rpby1rdWJlcm5ldGVzL2t1YmVybmV0ZXMvdHMvcGlwZWxpbmVzLnRzIiwiL3dvcmtzcGFjZS9qYXZhL2hhd3Rpby1rdWJlcm5ldGVzL2t1YmVybmV0ZXMvdHMvcG9kLnRzIiwiL3dvcmtzcGFjZS9qYXZhL2hhd3Rpby1rdWJlcm5ldGVzL2t1YmVybmV0ZXMvdHMvcG9kRWRpdC50cyIsIi93b3Jrc3BhY2UvamF2YS9oYXd0aW8ta3ViZXJuZXRlcy9rdWJlcm5ldGVzL3RzL3BvZHMudHMiLCIvd29ya3NwYWNlL2phdmEvaGF3dGlvLWt1YmVybmV0ZXMva3ViZXJuZXRlcy90cy9yZXBsaWNhdGlvbkNvbnRyb2xsZXIudHMiLCIvd29ya3NwYWNlL2phdmEvaGF3dGlvLWt1YmVybmV0ZXMva3ViZXJuZXRlcy90cy9yZXBsaWNhdGlvbkNvbnRyb2xsZXJFZGl0LnRzIiwiL3dvcmtzcGFjZS9qYXZhL2hhd3Rpby1rdWJlcm5ldGVzL2t1YmVybmV0ZXMvdHMvcmVwbGljYXRpb25Db250cm9sbGVycy50cyIsIi93b3Jrc3BhY2UvamF2YS9oYXd0aW8ta3ViZXJuZXRlcy9rdWJlcm5ldGVzL3RzL3NlcnZpY2UudHMiLCIvd29ya3NwYWNlL2phdmEvaGF3dGlvLWt1YmVybmV0ZXMva3ViZXJuZXRlcy90cy9zZXJ2aWNlRWRpdC50cyIsIi93b3Jrc3BhY2UvamF2YS9oYXd0aW8ta3ViZXJuZXRlcy9rdWJlcm5ldGVzL3RzL3NlcnZpY2VSZWdpc3RyeS50cyIsIi93b3Jrc3BhY2UvamF2YS9oYXd0aW8ta3ViZXJuZXRlcy9rdWJlcm5ldGVzL3RzL3NlcnZpY2VzLnRzIiwiL3dvcmtzcGFjZS9qYXZhL2hhd3Rpby1rdWJlcm5ldGVzL2t1YmVybmV0ZXMvdHMvc2hhcmVkQ29udHJvbGxlcnMudHMiLCIvd29ya3NwYWNlL2phdmEvaGF3dGlvLWt1YmVybmV0ZXMva3ViZXJuZXRlcy90cy90YWJzLnRzIiwiL3dvcmtzcGFjZS9qYXZhL2hhd3Rpby1rdWJlcm5ldGVzL2t1YmVybmV0ZXMvdHMvdGVtcGxhdGVzLnRzIiwiL3dvcmtzcGFjZS9qYXZhL2hhd3Rpby1rdWJlcm5ldGVzL2t1YmVybmV0ZXMvdHMvd2F0Y2hlci50cyIsIi93b3Jrc3BhY2UvamF2YS9oYXd0aW8ta3ViZXJuZXRlcy9rdWJlcm5ldGVzL3RzL3Rlcm0udHMiXSwibmFtZXMiOlsiRGV2ZWxvcGVyIiwiRGV2ZWxvcGVyLmVucmljaFdvcmtzcGFjZXMiLCJEZXZlbG9wZXIuZW5yaWNoV29ya3NwYWNlIiwiRGV2ZWxvcGVyLmFzRGF0ZSIsIkRldmVsb3Blci5lbnJpY2hKZW5raW5zSm9icyIsIkRldmVsb3Blci5lbnJpY2hKZW5raW5zSm9iIiwiRGV2ZWxvcGVyLmNyZWF0ZUJ1aWxkU3RhdHVzSWNvbkNsYXNzIiwiRGV2ZWxvcGVyLmNyZWF0ZUJ1aWxkU3RhdHVzQmFja2dyb3VuZENsYXNzIiwiRGV2ZWxvcGVyLmVucmljaEplbmtpbnNCdWlsZCIsIkRldmVsb3Blci5qZW5raW5zTGluayIsIkRldmVsb3Blci5mb3JnZVJlYWR5TGluayIsIkRldmVsb3Blci5lbnJpY2hKZW5raW5zUGlwZWxpbmVKb2IiLCJEZXZlbG9wZXIuZW5yaWNoSmVua2luc1N0YWdlcyIsIkRldmVsb3Blci5lbnJpY2hKZW5raW5zU3RhZ2UiLCJEZXZlbG9wZXIuaGFzT2JqZWN0Q2hhbmdlZCIsIkRldmVsb3Blci5sb2FkUHJvamVjdFZlcnNpb25zIiwiRGV2ZWxvcGVyLmxvYWRQcm9qZWN0UG9kQ291bnRlcnMiLCJEZXZlbG9wZXIuZGV2ZWxvcEJyZWFkY3J1bWIiLCJEZXZlbG9wZXIub3BlcmF0ZUJyZWFkY3J1bWIiLCJEZXZlbG9wZXIud29ya3NwYWNlTGluayIsIkRldmVsb3Blci5wcm9qZWN0TGluayIsIkRldmVsb3Blci5jcmVhdGVXb3Jrc3BhY2VzQnJlYWRjcnVtYnMiLCJEZXZlbG9wZXIuY3JlYXRlV29ya3NwYWNlc1N1Yk5hdkJhcnMiLCJEZXZlbG9wZXIuY3JlYXRlV29ya3NwYWNlQnJlYWRjcnVtYnMiLCJEZXZlbG9wZXIuY3JlYXRlRW52aXJvbm1lbnRCcmVhZGNydW1icyIsIkRldmVsb3Blci5jcmVhdGVQcm9qZWN0QnJlYWRjcnVtYnMiLCJEZXZlbG9wZXIuY3JlYXRlV29ya3NwYWNlU3ViTmF2QmFycyIsIkRldmVsb3Blci5jcmVhdGVCdWlsZHNMaW5rIiwiRGV2ZWxvcGVyLmNyZWF0ZVByb2plY3RTdWJOYXZCYXJzIiwiRGV2ZWxvcGVyLmNyZWF0ZVByb2plY3RTdWJOYXZCYXJzLmlzSmVua2luc0J1aWxkIiwiRGV2ZWxvcGVyLmNyZWF0ZUplbmtpbnNCcmVhZGNydW1icyIsIkRldmVsb3Blci5jcmVhdGVKZW5raW5zU3ViTmF2QmFycyIsIkRldmVsb3Blci5jcmVhdGVFbnZpcm9ubWVudFN1Yk5hdkJhcnMiLCJEZXZlbG9wZXIudHJpbVF1ZXJ5IiwiRGV2ZWxvcGVyLmFjdGl2YXRlQ3VycmVudCIsIkRldmVsb3Blci5wcm9jZXNzQ2hpbGRyZW4iLCJLdWJlcm5ldGVzIiwiS3ViZXJuZXRlcy5jb25zdHMiLCJLdWJlcm5ldGVzLmNvbnN0cy5jb25zdHJ1Y3RvciIsIkt1YmVybmV0ZXMuY29uc3RzLk5BTUVTUEFDRV9TVE9SQUdFX0tFWSIsIkt1YmVybmV0ZXMuV2F0Y2hUeXBlcyIsIkt1YmVybmV0ZXMuV2F0Y2hUeXBlcy5jb25zdHJ1Y3RvciIsIkt1YmVybmV0ZXMuV2F0Y2hUeXBlcy5FTkRQT0lOVFMiLCJLdWJlcm5ldGVzLldhdGNoVHlwZXMuRVZFTlRTIiwiS3ViZXJuZXRlcy5XYXRjaFR5cGVzLk5BTUVTUEFDRVMiLCJLdWJlcm5ldGVzLldhdGNoVHlwZXMuTk9ERVMiLCJLdWJlcm5ldGVzLldhdGNoVHlwZXMuUEVSU0lTVEVOVF9WT0xVTUVTIiwiS3ViZXJuZXRlcy5XYXRjaFR5cGVzLlBFUlNJU1RFTlRfVk9MVU1FX0NMQUlNUyIsIkt1YmVybmV0ZXMuV2F0Y2hUeXBlcy5QT0RTIiwiS3ViZXJuZXRlcy5XYXRjaFR5cGVzLlJFUExJQ0FUSU9OX0NPTlRST0xMRVJTIiwiS3ViZXJuZXRlcy5XYXRjaFR5cGVzLlJFU09VUkNFX1FVT1RBUyIsIkt1YmVybmV0ZXMuV2F0Y2hUeXBlcy5PQVVUSF9DTElFTlRTIiwiS3ViZXJuZXRlcy5XYXRjaFR5cGVzLlNFQ1JFVFMiLCJLdWJlcm5ldGVzLldhdGNoVHlwZXMuU0VSVklDRVMiLCJLdWJlcm5ldGVzLldhdGNoVHlwZXMuU0VSVklDRV9BQ0NPVU5UUyIsIkt1YmVybmV0ZXMuV2F0Y2hUeXBlcy5URU1QTEFURVMiLCJLdWJlcm5ldGVzLldhdGNoVHlwZXMuUk9VVEVTIiwiS3ViZXJuZXRlcy5XYXRjaFR5cGVzLkJVSUxEX0NPTkZJR1MiLCJLdWJlcm5ldGVzLldhdGNoVHlwZXMuQlVJTERTIiwiS3ViZXJuZXRlcy5XYXRjaFR5cGVzLkRFUExPWU1FTlRfQ09ORklHUyIsIkt1YmVybmV0ZXMuV2F0Y2hUeXBlcy5JTUFHRV9TVFJFQU1TIiwiS3ViZXJuZXRlcy5XYXRjaFR5cGVzLlBPTElDSUVTIiwiS3ViZXJuZXRlcy5XYXRjaFR5cGVzLlBPTElDWV9CSU5ESU5HUyIsIkt1YmVybmV0ZXMuV2F0Y2hUeXBlcy5QUk9KRUNUUyIsIkt1YmVybmV0ZXMuV2F0Y2hUeXBlcy5ST0xFX0JJTkRJTkdTIiwiS3ViZXJuZXRlcy5XYXRjaFR5cGVzLlJPTEVTIiwiS3ViZXJuZXRlcy5OYW1lc3BhY2VkVHlwZXMiLCJLdWJlcm5ldGVzLk5hbWVzcGFjZWRUeXBlcy5jb25zdHJ1Y3RvciIsIkt1YmVybmV0ZXMuTmFtZXNwYWNlZFR5cGVzLms4c1R5cGVzIiwiS3ViZXJuZXRlcy5OYW1lc3BhY2VkVHlwZXMub3NUeXBlcyIsIkt1YmVybmV0ZXMuV2F0Y2hBY3Rpb25zIiwiS3ViZXJuZXRlcy5XYXRjaEFjdGlvbnMuY29uc3RydWN0b3IiLCJLdWJlcm5ldGVzLldhdGNoQWN0aW9ucy5BTlkiLCJLdWJlcm5ldGVzLldhdGNoQWN0aW9ucy5BRERFRCIsIkt1YmVybmV0ZXMuV2F0Y2hBY3Rpb25zLk1PRElGSUVEIiwiS3ViZXJuZXRlcy5XYXRjaEFjdGlvbnMuREVMRVRFRCIsIkt1YmVybmV0ZXMua3ViZXJuZXRlc05hbWVzcGFjZVBhdGgiLCJLdWJlcm5ldGVzLmFwaVByZWZpeCIsIkt1YmVybmV0ZXMub3NBcGlQcmVmaXgiLCJLdWJlcm5ldGVzLm1hc3RlckFwaVVybCIsIkt1YmVybmV0ZXMua3ViZXJuZXRlc0FwaVByZWZpeCIsIkt1YmVybmV0ZXMub3BlbnNoaWZ0QXBpUHJlZml4IiwiS3ViZXJuZXRlcy5wcmVmaXhGb3JUeXBlIiwiS3ViZXJuZXRlcy5rdWJlcm5ldGVzQXBpVXJsIiwiS3ViZXJuZXRlcy5vcGVuc2hpZnRBcGlVcmwiLCJLdWJlcm5ldGVzLnJlc291cmNlc1VyaUZvcktpbmQiLCJLdWJlcm5ldGVzLnVyaVRlbXBsYXRlRm9yS3ViZXJuZXRlc0tpbmQiLCJLdWJlcm5ldGVzLm5hbWVzcGFjZVBhdGhGb3JLaW5kIiwiS3ViZXJuZXRlcy51cGRhdGVPckNyZWF0ZU9iamVjdCIsIkt1YmVybmV0ZXMuaW5qZWN0IiwiS3ViZXJuZXRlcy5jcmVhdGVSZXNvdXJjZSIsIkt1YmVybmV0ZXMuaW1hZ2VSZXBvc2l0b3JpZXNSZXN0VVJMIiwiS3ViZXJuZXRlcy5kZXBsb3ltZW50Q29uZmlnc1Jlc3RVUkwiLCJLdWJlcm5ldGVzLmJ1aWxkc1Jlc3RVUkwiLCJLdWJlcm5ldGVzLmJ1aWxkQ29uZmlnSG9va3NSZXN0VVJMIiwiS3ViZXJuZXRlcy5idWlsZENvbmZpZ3NSZXN0VVJMIiwiS3ViZXJuZXRlcy5yb3V0ZXNSZXN0VVJMIiwiS3ViZXJuZXRlcy50ZW1wbGF0ZXNSZXN0VVJMIiwiS3ViZXJuZXRlcy5nZXROYW1lc3BhY2UiLCJLdWJlcm5ldGVzLmdldExhYmVscyIsIkt1YmVybmV0ZXMuZ2V0TmFtZSIsIkt1YmVybmV0ZXMuZ2V0S2luZCIsIkt1YmVybmV0ZXMuZ2V0U2VsZWN0b3IiLCJLdWJlcm5ldGVzLmdldEhvc3QiLCJLdWJlcm5ldGVzLmdldFN0YXR1cyIsIkt1YmVybmV0ZXMuZ2V0UG9ydHMiLCJLdWJlcm5ldGVzLmdldENyZWF0aW9uVGltZXN0YW1wIiwiS3ViZXJuZXRlcy5pc0t1YmVybmV0ZXMiLCJLdWJlcm5ldGVzLmlzS3ViZXJuZXRlc1RlbXBsYXRlTWFuYWdlciIsIkt1YmVybmV0ZXMuaXNBcHBWaWV3IiwiS3ViZXJuZXRlcy5nZXRTdHJpcHBlZFBhdGhOYW1lIiwiS3ViZXJuZXRlcy5saW5rQ29udGFpbnMiLCJLdWJlcm5ldGVzLmlzTGlua0FjdGl2ZSIsIkt1YmVybmV0ZXMuc2V0SnNvbiIsIkt1YmVybmV0ZXMubGFiZWxzVG9TdHJpbmciLCJLdWJlcm5ldGVzLmluaXRTaGFyZWQiLCJLdWJlcm5ldGVzLmluaXRTaGFyZWQuaGFzU2VydmljZSIsIkt1YmVybmV0ZXMucmVhZHlQb2RDb3VudCIsIkt1YmVybmV0ZXMuc2VydmljZUxpbmtVcmwiLCJLdWJlcm5ldGVzLmNyZWF0ZVBvZENvdW50ZXJzIiwiS3ViZXJuZXRlcy5jb252ZXJ0S3ViZXJuZXRlc0pzb25Ub0l0ZW1zIiwiS3ViZXJuZXRlcy5pc1YxYmV0YTFPcjIiLCJLdWJlcm5ldGVzLmVudGl0eVBhZ2VMaW5rIiwiS3ViZXJuZXRlcy5yZXNvdXJjZUtpbmRUb1VyaVBhdGgiLCJLdWJlcm5ldGVzLmlzSWdub3JlTmFtZXNwYWNlS2luZCIsIkt1YmVybmV0ZXMua3ViZXJuZXRlc1VybEZvcktpbmQiLCJLdWJlcm5ldGVzLmt1YmVybmV0ZXNVcmxGb3JJdGVtS2luZCIsIkt1YmVybmV0ZXMua3ViZXJuZXRlc1Byb3h5VXJsRm9yU2VydmljZSIsIkt1YmVybmV0ZXMua3ViZXJuZXRlc1Byb3h5VXJsRm9yU2VydmljZUN1cnJlbnROYW1lc3BhY2UiLCJLdWJlcm5ldGVzLmJ1aWxkQ29uZmlnUmVzdFVybCIsIkt1YmVybmV0ZXMuZGVwbG95bWVudENvbmZpZ1Jlc3RVcmwiLCJLdWJlcm5ldGVzLmltYWdlUmVwb3NpdG9yeVJlc3RVcmwiLCJLdWJlcm5ldGVzLmJ1aWxkUmVzdFVybCIsIkt1YmVybmV0ZXMuYnVpbGRMb2dzUmVzdFVybCIsIkt1YmVybmV0ZXMucnVuQXBwIiwiS3ViZXJuZXRlcy5pc1J1bm5pbmciLCJLdWJlcm5ldGVzLnNlbGVjdG9yTWF0Y2hlcyIsIkt1YmVybmV0ZXMuZ2V0U2VydmljZVJlZ2lzdHJ5IiwiS3ViZXJuZXRlcy5raWJhbmFMb2dzTGluayIsIkt1YmVybmV0ZXMub3BlbkxvZ3NGb3JQb2RzIiwiS3ViZXJuZXRlcy5yZXNpemVDb250cm9sbGVyIiwiS3ViZXJuZXRlcy5zdGF0dXNUZXh0VG9Dc3NDbGFzcyIsIkt1YmVybmV0ZXMucG9kU3RhdHVzIiwiS3ViZXJuZXRlcy5pc1JlYWR5IiwiS3ViZXJuZXRlcy5jcmVhdGVBcHBWaWV3UG9kQ291bnRlcnMiLCJLdWJlcm5ldGVzLmNyZWF0ZUFwcFZpZXdTZXJ2aWNlVmlld3MiLCJLdWJlcm5ldGVzLmdpdFBhdGhUb1VybCIsIkt1YmVybmV0ZXMuYXNEYXRlIiwiS3ViZXJuZXRlcy5lbnJpY2hCdWlsZENvbmZpZyIsIkt1YmVybmV0ZXMuZW5yaWNoQnVpbGRDb25maWcuZGVmYXVsdFByb3BlcnRpZXNJZk5vdEV4aXN0IiwiS3ViZXJuZXRlcy5lbnJpY2hCdWlsZENvbmZpZy5kZWZhdWx0UHJvcGVydGllc0lmTm90RXhpc3RTdGFydHNXaXRoIiwiS3ViZXJuZXRlcy5lbnJpY2hCdWlsZENvbmZpZ3MiLCJLdWJlcm5ldGVzLmVucmljaEJ1aWxkcyIsIkt1YmVybmV0ZXMuZW5yaWNoQnVpbGQiLCJLdWJlcm5ldGVzLmVucmljaERlcGxveW1lbnRDb25maWciLCJLdWJlcm5ldGVzLmVucmljaERlcGxveW1lbnRDb25maWdzIiwiS3ViZXJuZXRlcy5lbnJpY2hFdmVudCIsIkt1YmVybmV0ZXMuZW5yaWNoRXZlbnRzIiwiS3ViZXJuZXRlcy5lbnJpY2hFdmVudHMuY2xlYXJFdmVudHMiLCJLdWJlcm5ldGVzLmVucmljaEV2ZW50cy51cGRhdGVFdmVudCIsIkt1YmVybmV0ZXMuZW5yaWNoSW1hZ2VSZXBvc2l0b3J5IiwiS3ViZXJuZXRlcy5lbnJpY2hJbWFnZVJlcG9zaXRvcmllcyIsIkt1YmVybmV0ZXMuY29udGFpbmVyTGFiZWxDbGFzcyIsIkt1YmVybmV0ZXMuaXNGb3JnZUVuYWJsZWQiLCJLdWJlcm5ldGVzLmN1cnJlbnRLdWJlcm5ldGVzTmFtZXNwYWNlIiwiS3ViZXJuZXRlcy5jb25maWd1cmVTY2hlbWEiLCJLdWJlcm5ldGVzLnRvUmF3SnNvbiIsIkRldmVsb3Blci51cGRhdGVEYXRhIiwiRGV2ZWxvcGVyLnVwZGF0ZUplbmtpbnNMaW5rIiwiRGV2ZWxvcGVyLnJlcGxhY2VDbHVzdGVySXBGdW5jdGlvbiIsIkRldmVsb3Blci5yZXBsYWNlQ2x1c3RlcklwRnVuY3Rpb24uY3JlYXRlUmVwbGFjZUZ1bmN0aW9uIiwiRGV2ZWxvcGVyLnJlcGxhY2VDbHVzdGVySXBGdW5jdGlvbi5hZGRSZXBsYWNlRm4iLCJEZXZlbG9wZXIucmVwbGFjZVRleHQiLCJEZXZlbG9wZXIuYmFyQ29sb3VyRm9yQnVpbGRSZXN1bHQiLCJEZXZlbG9wZXIudXBkYXRlQ2hhcnREYXRhIiwiRGV2ZWxvcGVyLnVwZGF0ZUVudmlyb25tZW50V2F0Y2giLCJEZXZlbG9wZXIuZGVsZXRlU2VsZWN0ZWQiLCJEZXZlbG9wZXIuZGVsZXRlRW50aXR5IiwiS3ViZXJuZXRlcy5hcHBNYXRjaGVzIiwiS3ViZXJuZXRlcy5hcHBSdW5uaW5nIiwiS3ViZXJuZXRlcy5kZWxldGVBcHAiLCJLdWJlcm5ldGVzLmRlbGV0ZUFwcC5kZWxldGVTZXJ2aWNlcyIsIkt1YmVybmV0ZXMuZGVsZXRlQXBwLmRlbGV0ZVJlcGxpY2F0aW9uQ29udHJvbGxlcnMiLCJLdWJlcm5ldGVzLmRlbGV0ZUFwcC5kZWxldGVQb2RzIiwiS3ViZXJuZXRlcy5kZWxldGVTZWxlY3RlZCIsIkt1YmVybmV0ZXMudXBkYXRlRGF0YSIsIkt1YmVybmV0ZXMuZGVsZXRlRW50aXR5IiwiS3ViZXJuZXRlcy5ieUlkIiwiS3ViZXJuZXRlcy5jcmVhdGVLZXkiLCJLdWJlcm5ldGVzLnBvcHVsYXRlS2V5IiwiS3ViZXJuZXRlcy5wb3B1bGF0ZUtleXMiLCJLdWJlcm5ldGVzLnNlbGVjdFBvZHMiLCJLdWJlcm5ldGVzLkt1YmVybmV0ZXNNb2RlbFNlcnZpY2UiLCJLdWJlcm5ldGVzLkt1YmVybmV0ZXNNb2RlbFNlcnZpY2UuY29uc3RydWN0b3IiLCJLdWJlcm5ldGVzLkt1YmVybmV0ZXNNb2RlbFNlcnZpY2UucmVwbGljYXRpb25Db250cm9sbGVycyIsIkt1YmVybmV0ZXMuS3ViZXJuZXRlc01vZGVsU2VydmljZS5uYW1lc3BhY2VzIiwiS3ViZXJuZXRlcy5LdWJlcm5ldGVzTW9kZWxTZXJ2aWNlLnNlcnZpY2VBcHBzIiwiS3ViZXJuZXRlcy5LdWJlcm5ldGVzTW9kZWxTZXJ2aWNlLiRrZWVwUG9sbGluZyIsIkt1YmVybmV0ZXMuS3ViZXJuZXRlc01vZGVsU2VydmljZS5vclJlZHJhdyIsIkt1YmVybmV0ZXMuS3ViZXJuZXRlc01vZGVsU2VydmljZS5nZXRTZXJ2aWNlIiwiS3ViZXJuZXRlcy5LdWJlcm5ldGVzTW9kZWxTZXJ2aWNlLmdldFJlcGxpY2F0aW9uQ29udHJvbGxlciIsIkt1YmVybmV0ZXMuS3ViZXJuZXRlc01vZGVsU2VydmljZS5nZXRQb2QiLCJLdWJlcm5ldGVzLkt1YmVybmV0ZXNNb2RlbFNlcnZpY2UucG9kc0Zvck5hbWVzcGFjZSIsIkt1YmVybmV0ZXMuS3ViZXJuZXRlc01vZGVsU2VydmljZS5nZXRCdWlsZENvbmZpZyIsIkt1YmVybmV0ZXMuS3ViZXJuZXRlc01vZGVsU2VydmljZS5nZXRQcm9qZWN0IiwiS3ViZXJuZXRlcy5LdWJlcm5ldGVzTW9kZWxTZXJ2aWNlLnNldFByb2plY3QiLCJLdWJlcm5ldGVzLkt1YmVybmV0ZXNNb2RlbFNlcnZpY2UuY3VycmVudE5hbWVzcGFjZSIsIkt1YmVybmV0ZXMuS3ViZXJuZXRlc01vZGVsU2VydmljZS51cGRhdGVJY29uVXJsQW5kQXBwSW5mbyIsIkt1YmVybmV0ZXMuS3ViZXJuZXRlc01vZGVsU2VydmljZS5tYXliZUluaXQiLCJLdWJlcm5ldGVzLkt1YmVybmV0ZXNNb2RlbFNlcnZpY2UudXBkYXRlQXBwcyIsIkt1YmVybmV0ZXMuS3ViZXJuZXRlc01vZGVsU2VydmljZS5kaXNjb3ZlclBvZENvbm5lY3Rpb25zIiwiS3ViZXJuZXRlcy5zb3J0QnlQb2RJcCIsIkt1YmVybmV0ZXMud2l0aFByb3BlcnR5IiwiS3ViZXJuZXRlcy5oaWRlUHJvcGVydGllcyIsIkt1YmVybmV0ZXMuS3ViZXJuZXRlc1N0YXRlSW1wbCIsIkt1YmVybmV0ZXMuS3ViZXJuZXRlc1N0YXRlSW1wbC5jb25zdHJ1Y3RvciIsIkt1YmVybmV0ZXMuS3ViZXJuZXRlc1N0YXRlSW1wbC5uYW1lc3BhY2VzIiwiS3ViZXJuZXRlcy5LdWJlcm5ldGVzU3RhdGVJbXBsLnNlbGVjdGVkTmFtZXNwYWNlIiwiS3ViZXJuZXRlcy5pbnRlcnBvbGF0ZSIsIkt1YmVybmV0ZXMuY3JlYXRlRWxlbWVudCIsIkt1YmVybmV0ZXMuY3JlYXRlRWxlbWVudHMiLCJLdWJlcm5ldGVzLmFwcGVuZE5ld0VsZW1lbnRzIiwiS3ViZXJuZXRlcy5uYW1lc3BhY2VGaWx0ZXIiLCJLdWJlcm5ldGVzLmZpcnN0RHJhdyIsIkt1YmVybmV0ZXMudXBkYXRlIiwiS3ViZXJuZXRlcy5yZWZyZXNoRHJhd2luZyIsIkt1YmVybmV0ZXMuY3JlYXRlUGlwZWxpbmVLZXkiLCJLdWJlcm5ldGVzLm1heWJlTmV4dCIsIkt1YmVybmV0ZXMuU2VydmljZVJlZ2lzdHJ5U2VydmljZSIsIkt1YmVybmV0ZXMuU2VydmljZVJlZ2lzdHJ5U2VydmljZS5jb25zdHJ1Y3RvciIsIkt1YmVybmV0ZXMuU2VydmljZVJlZ2lzdHJ5U2VydmljZS5oYXNTZXJ2aWNlIiwiS3ViZXJuZXRlcy5TZXJ2aWNlUmVnaXN0cnlTZXJ2aWNlLmZpbmRTZXJ2aWNlIiwiS3ViZXJuZXRlcy5TZXJ2aWNlUmVnaXN0cnlTZXJ2aWNlLnNlcnZpY2VMaW5rIiwiS3ViZXJuZXRlcy5TZXJ2aWNlUmVnaXN0cnlTZXJ2aWNlLnNlcnZpY2VSZWFkeUxpbmsiLCJLdWJlcm5ldGVzLlNlcnZpY2VSZWdpc3RyeVNlcnZpY2UuZ2V0TW9kZWwiLCJLdWJlcm5ldGVzLmdldFdlaWdodCIsIkt1YmVybmV0ZXMuZ29CYWNrIiwiS3ViZXJuZXRlcy5nZXRBbm5vdGF0aW9ucyIsIkt1YmVybmV0ZXMuZ2V0VmFsdWVGb3IiLCJLdWJlcm5ldGVzLnN1YnN0aXR1dGUiLCJLdWJlcm5ldGVzLmFwcGx5T2JqZWN0cyIsIkt1YmVybmV0ZXMucmVsb2FkRGF0YUlmTm9XYXRjaCIsIkt1YmVybmV0ZXMud2F0Y2hOYW1lc3BhY2VzIiwiS3ViZXJuZXRlcy5nZXRXU1VybCIsIkt1YmVybmV0ZXMuY3JlYXRlV2F0Y2giLCJLdWJlcm5ldGVzLkN1c3RvbVdlYlNvY2tldCIsIkt1YmVybmV0ZXMucG9zaXRpb25UZXJtaW5hbHMiXSwibWFwcGluZ3MiOiJBQUFBLHNEQUFzRDtBQUN0RCxtREFBbUQ7QUFDbkQsMERBQTBEO0FBQzFELHNEQUFzRDs7QUNIdEQsQUFDQSx5Q0FEeUM7QUFDekMsSUFBTyxTQUFTLENBcVBmO0FBclBELFdBQU8sU0FBUyxFQUFDLENBQUM7SUFFaEJBLFNBQWdCQSxnQkFBZ0JBLENBQUNBLFFBQVFBO1FBQ3ZDQyxPQUFPQSxDQUFDQSxPQUFPQSxDQUFDQSxRQUFRQSxFQUFFQSxVQUFDQSxPQUFPQTtZQUNoQ0EsZUFBZUEsQ0FBQ0EsT0FBT0EsQ0FBQ0EsQ0FBQ0E7UUFDM0JBLENBQUNBLENBQUNBLENBQUNBO1FBQ0hBLE1BQU1BLENBQUNBLFFBQVFBLENBQUNBO0lBQ2xCQSxDQUFDQTtJQUxlRCwwQkFBZ0JBLEdBQWhCQSxnQkFLZkEsQ0FBQUE7SUFFREEsU0FBZ0JBLGVBQWVBLENBQUNBLEtBQUtBO1FBQ25DRSxFQUFFQSxDQUFDQSxDQUFDQSxLQUFLQSxDQUFDQSxDQUFDQSxDQUFDQTtZQUNWQSxJQUFJQSxJQUFJ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QUFDQSxFQUFFQSxlQUFLQSxDQUFDQSxZQUFZQSxFQUFFQSxLQUFLQSxDQUFDQSxDQUFDQSxDQUM1RkEsSUFBSUEsQ0FBQ0EsVUFBVUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsaUJBQU9BLEVBQUVBLHVEQUF1REEsQ0FBQ0EsRUFBRUEsZUFBS0EsQ0FBQ0Esa0JBQWtCQSxFQUFFQSxLQUFLQSxDQUFDQSxDQUFDQSxDQUN6SEEsSUFBSUEsQ0FBQ0EsVUFBVUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsaUJBQU9BLEVBQUVBLHVEQUF1REEsQ0FBQ0EsRUFBRUEsZUFBS0EsQ0FBQ0Esa0JBQWtCQSxFQUFFQSxLQUFLQSxDQUFDQSxDQUFDQSxDQUN6SEEsU0FBU0EsQ0FBQ0EsYUFBYUEsQ0FBQ0EsQ0FBQ0E7SUFDMUNBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO0lBR0pBLGlCQUFPQSxDQUFDQSxHQUFHQSxDQUFDQSxDQUFDQSxjQUFjQSxFQUFFQSxpQkFBaUJBLEVBQUVBLFdBQVdBLEVBQUVBLGlCQUFpQkEsRUFBRUEsZ0JBQWdCQSxFQUFFQSxVQUFDQSxZQUFZQSxFQUFFQSxlQUFlQSxFQUFFQSxTQUFTQSxFQUFFQSxlQUFlQSxFQUFFQSxjQUFjQTtRQUMxS0EsYUFBR0EsQ0FBQ0EsS0FBS0EsQ0FBQ0EsU0FBU0EsQ0FBQ0EsQ0FBQ0E7UUFDckJBLFlBQVlBLENBQUNBLFlBQVlBLENBQUNBLEdBQUdBLFVBQVVBLENBQUNBLFlBQVlBLEdBQUdBLHVCQUF1QkEsQ0FBQ0E7UUFDL0VBLFlBQVlBLENBQUNBLFlBQVlBLENBQUNBLEdBQUdBLFVBQVVBLENBQUNBLFlBQVlBLEdBQUdBLHVCQUF1QkEsQ0FBQ0E7UUFFL0VBLElBQUlBLE9BQU9BLEdBQUdBLFNBQVNBLENBQUNBLE9BQU9BLEVBQUVBLENBQUNBO1FBQ2xDQSxJQUFJQSxVQUFVQSxHQUFHQSxPQUFPQSxDQUFDQSxFQUFFQSxDQUFDQSxZQUFZQSxDQUFDQSxDQUN0QkEsSUFBSUEsQ0FBQ0EsY0FBTUEsd0JBQU9BLEVBQVBBLENBQU9BLENBQUNBLENBQ25CQSxLQUFL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RUEsQ0FBQ0EsQ0FBQ0EsTUFBTUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7WUFDWEEsSUFBSUEsUUFBUUEsR0FBR0EsTUFBTUEsQ0FBQ0EsV0FBV0EsQ0FBQ0EsQ0FBQ0E7WUFDbkNBLEVBQUVBLENBQUNBLENBQUNBLFFBQVFBLENBQUNBLENBQUNBLENBQUNBO2dCQUNiQSxNQUFNQSxDQUFDQSxRQUFRQSxDQUFDQTtZQUNsQkEsQ0FBQ0E7WUFDREEsSUFBSUEsRUFBRUEsR0FBR0EsT0FBT0EsQ0FBQ0EsTUFBTUEsQ0FBQ0EsQ0FBQ0E7WUFDekJBLElBQUlBLElBQUlBLEdBQUdBLE9BQU9BLENBQUNBLE1BQU1BLENBQUNBLENBQUNBO1lBQzNCQSxFQUFFQSxDQUFDQSxDQUFDQSxJQUFJQSxJQUFJQSxFQUFFQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFDZkEsSUFBSUEsSUFBSUEsR0FBR0EsSUFBSUEsQ0FBQ0EsU0FBU0EsQ0FBQ0EsQ0FBQ0EsRUFBRUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsV0FBV0EsRUFBRUEsR0FBR0EsSUFBSUEsQ0FBQ0EsU0FBU0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsR0FBR0EsR0FBR0EsQ0FBQ0E7Z0JBQ3hFQSxJQUFJQSxTQUFTQSxHQUFHQSxZQUFZQSxDQUFDQSxNQUFNQSxDQUFDQSxDQUFDQTtnQkFDckNBLEVBQUVBLENBQUNBLENBQUNBLFNBQVNBLElBQUlBLENBQUNBLHFCQUFxQkEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7b0JBQzlDQSxNQUFNQSxDQUFDQSxJQUFJQSxDQUFDQSxHQUFHQSxDQUFDQSxVQUFVQSxDQUFDQSxJQUFJQSxDQUFDQSx1QkFBdUJBLEVBQUVBLFNBQVNBLEVBQUVBLElBQUlBLEVBQUVBLEVBQUVBLENBQUNBLENBQUNBLENBQUNBO2dCQUNqRkEsQ0FBQ0E7Z0JBQUNBLElBQUlBLENBQUNBLENBQUNBO29CQUNOQSxNQUFNQSxDQUFDQSxJQUFJQSxDQUFDQSxHQUFHQSxDQUFDQSxVQUFVQSxDQUFDQSxJQUFJQSxDQUFDQSxhQUFhQSxFQUFFQSxJ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Q0EsSUFBSUEsWUFBWUEsQ0FBQ0E7WUFDNUNBLElBQUlBLE9BQU9BLEdBQUdBLElBQUlBLENBQUNBLE9BQU9BLENBQUNBLE9BQU9BLEVBQUVBLENBQUNBLE1BQU1BLEVBQUVBLFVBQVVBLENBQUNBLENBQUNBLENBQUNBO1lBQzFEQSxFQUFFQSxDQUFDQSxDQUFDQSxDQUFDQSxJQUFJQSxJQUFJQSxJQUFJQSxDQUFDQSxNQUFNQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFDekJBLElBQUlBLEdBQUdBLElBQUlBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLFFBQVFBLENBQUNBO1lBQzFCQSxDQUFDQTtZQUNEQSxFQUFFQSxDQUFDQSxDQUFDQSxDQUFDQSxPQUFPQSxDQUFDQSxLQUFLQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFDeEJBLE9BQU9BLENBQUNBLEtBQUtBLENBQUNBLElBQUlBLEdBQUdBLElBQUlBLENBQUNBO1lBQzVCQSxDQUFDQTtZQUNEQSxFQUFFQSxDQUFDQSxDQUFDQSxDQUFDQSxPQUFPQSxDQUFDQSxFQUFFQSxJQUFJQSxJQUFJQSxDQUFDQSxNQUFNQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFDL0JBLE9BQU9BLENBQUNBLEVBQUVBLEdBQUdBLE9BQU9BLENBQUNBLElBQUlBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO1lBQ2hDQSxDQUFDQTtZQUNEQSxFQUFFQSxDQUFDQSxDQUFDQSxDQUFDQSxHQUFHQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFDVkEsT0FBT0EsR0FBR0EsSUFBSUEsQ0FBQ0E7WUFDakJBLENBQUNBO1lBQ0RBLElBQUlBLFFBQVFBLEdBQUdBLElBQUlBLENBQUNBLE1BQU1BLENBQUNBO1lBQzNCQSxJQUFJQSxZQUFZQSxHQUFHQSxRQUFRQSxHQUFHQSxNQUFNQSxHQUFHQSxDQUFDQSxRQUFRQSxHQUFHQSxDQUFDQSxHQUFHQSxHQUFHQSxHQUFHQSxFQUFFQSxDQUFDQSxDQUFDQTtZQUNqRUEsSUFBSUEsSUFBSUEsR0FBR0E7Z0JBQ1RB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QkFDdENBLENBQUNBO2dCQUNEQSxJQUFJQSxVQUFVQSxHQUFHQSxFQUFFQSxDQUFDQTtnQkFDcEJBLE9BQU9BLENBQUNBLE9BQU9BLENBQUNBLElBQUlBLENBQUNBLE9BQU9BLENBQUNBLEdBQUdBLEVBQUVBLENBQUNBLE1BQU1BLEVBQUVBLFlBQVlBLENBQUNBLENBQUNBLEVBQUVBLFVBQUNBLFNBQVNBO29CQUNuRUEsSUFBSUEsS0FBS0EsR0FBR0EsU0FBU0EsQ0FBQ0EsS0FBS0EsQ0FBQ0E7b0JBQzVCQSxFQUFFQSxDQUFDQSxDQUFDQSxLQUFLQSxDQUFDQSxDQUFDQSxDQUFDQTt3QkFDVkEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsVUFBVUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7NEJBQ2hCQSxVQUFVQSxHQUFHQSxLQUFLQSxDQUFDQTt3QkFDckJBLENBQUNBO3dCQUFDQSxJQUFJQSxDQUFDQSxDQUFDQTs0QkFDTkEsVUFBVUEsR0FBR0EsVUFBVUEsR0FBR0EsR0FBR0EsR0FBR0EsS0FBS0EsQ0FBQ0E7d0JBQ3hDQSxDQUFDQTt3QkFDREEsSUFBSUEsR0FBR0EsR0FBR0EsS0FBS0EsQ0FBQ0EsV0FBV0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsQ0FBQ0E7d0JBQ2pDQSxFQUFFQSxDQUFDQSxDQUFDQSxHQUFHQSxHQUFHQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTs0QkFDWkEsS0FBS0EsR0FBR0EsS0FBS0EsQ0FBQ0EsU0FBU0EsQ0FBQ0EsQ0FBQ0EsRUFBRUEsR0FBR0EsQ0FBQ0EsQ0FBQ0E7d0JBQ2xDQSxDQUFDQTt3QkFDREEsSUFBSUEsS0FBS0EsR0FBR0EsS0FBS0EsQ0FBQ0EsS0FBS0EsQ0FBQ0EsR0FBR0EsRUFBRUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7d0JBQ2hDQSxFQUFFQSxDQUFDQSxDQUFDQSxLQUFLQSxDQUFDQSxNQUFNQSxDQUFDQSxDQUFDQSxDQUFDQTs0QkFDakJBLElBQUlBLE1BQU1BLEdBQUdBLElBQUlBLENBQUNBOzRCQUNsQkEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsS0FBS0EsQ0FBQ0EsTUFBTUEsSUFBSUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7Z0NBQ3RCQSxNQUFNQSxHQUFHQSxLQUFLQSxDQUFDQSxDQUFDQSxDQUFDQSxHQUFHQSxHQUFHQSxHQUFHQSxLQUFLQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTs0QkFDckNBLENBQUNBOzRCQUFDQSxJQUFJQSxDQUFDQSxFQUFFQSxDQUFDQSxDQUFDQSxLQUFLQSxDQUFDQSxNQUFNQSxJQUFJQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtnQ0FDN0JBLE1BQU1BLEdBQUdBLEtBQUtBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLEdBQUdBLEdBQUdBLEtBQUtBLENBQUNBLENBQUNBLENBQUNBLENBQUNBOzRCQUNyQ0EsQ0FBQ0E7NEJBQUNBLElBQUlBLENBQUNBLENBQUNBO2dDQUNOQSxNQUFNQSxHQUFHQSxLQUFLQSxDQUFDQSxDQUFDQSxDQUFDQSxHQUFHQSxHQUFHQSxHQUFHQSxLQUFLQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTs0QkFDckNBLENBQUNBOzRCQUNEQSxTQUFTQSxDQUFDQSxVQUFVQSxHQUFHQSxVQUFVQSxDQUFDQSxJQUFJQSxDQUFDQSxvQ0FBb0NBLEVBQUVBLE1BQU1BLENBQUNBLENBQUNBO3dCQUN2RkEsQ0FBQ0E7b0JBQ0hBLENBQUNBO29CQUNEQSxPQUFPQSxDQUFDQSxPQUFPQSxDQUFDQSxTQUFTQSxDQUFDQSxLQUFLQSxFQUFFQSxVQUFDQSxJQUFJQTt3QkFDcENBLElBQUlBLGFBQWFBLEdBQUdBLElBQUlBLENBQUNBLGFBQWFBLENBQUNBO3dCQUN2Q0EsRUFBRUEsQ0FBQ0EsQ0FBQ0EsYUFBYUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7NEJBQ2xCQSxHQUFHQSxDQUFDQSxlQUFlQSxDQUFDQSxJQUFJQSxDQUFDQSxhQUFhQSxDQUFDQSxDQUFDQTt3QkFDMUNBLENBQUNBO29CQUNIQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFDTEEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7Z0JBQ0hBLEdBQUdBLENBQUNBLFdBQVdBLEdBQUdBLFVBQVVBLENBQUNBO2dCQUM3QkEsSUFBSUEsU0FBU0EsR0FBR0EsU0FBU0EsQ0FBQ0E7Z0JBQzFCQSxJQUFJQSxPQUFPQSxHQUFHQSxDQUFDQSxHQUFHQSxDQUFDQSxJQUFJQSxJQUFJQSxFQUFFQSxDQUFDQSxDQUFDQTtnQkFDL0JBLEdBQUdBLENBQUNBLE1BQU1BLEdBQUdBLFNBQVNBLENBQUNBLEtBQUtBLENBQUNBO2dCQUM3QkEsR0FBR0EsQ0FBQ0EsS0FBS0EsR0FBR0EsT0FBT0EsQ0FBQ0EsSUFBSUEsSUFBSUEsT0FBT0EsQ0FBQ0EsUUFBUUEsSUFBSUEsU0FBU0EsQ0FBQ0EsTUFBTUEsQ0FBQ0E7WUFDbkVBLENBQUNBLENBQUNBLENBQUNBO1lBRUhBLElBQUlBLENBQUNBLFFBQVFBLENBQUNBLE9BQU9BLENBQUNBLFVBQUNBLE9BQU9BO2dCQUM1QkEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsT0FBT0EsQ0FBQ0EsSUFBSUEsQ0FBQ0E7b0JBQUNBLE9BQU9BLENBQUNBLElBQUlBLEdBQUdBLFNBQVNBLENBQUNBO2dCQUM1Q0EsS0FBSUEsQ0FBQ0EsYUFBYUEsQ0FBQ0EsT0FBT0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsR0FBR0EsT0FBT0EsQ0FBQ0E7Z0JBQzNDQSxJQUFJQSxRQUFRQSxHQUFHQSxzQkFBV0EsQ0FBQ0EsT0FBT0EsQ0FBQ0EsQ0FBQ0E7Z0JBQ3BDQSxPQUFPQSxDQUFDQSxLQUFLQSxHQUFHQSxFQUFFQSxDQUFDQTtnQkFDbkJBLEVBQUVBLENBQUNBLENBQUNBLENBQUNBLE9BQU9BLENBQUNBLFlBQVlBLENBQUNBLENBQUNBLENBQUNBO29CQUMxQkEsT0FBT0EsQ0FBQ0EsWUFBWUEsR0FBR0EsRUFBRUEsQ0FBQ0E7Z0JBQzVCQSxDQUFDQTtnQkFDREEsQ0FBQ0EsQ0FBQ0EsTUFBTUEsQ0FBQ0EsT0FBT0EsQ0FBQ0EsWUFBWUEsRUFBRUEsUUFBUUEsR0FBR0EsNEJBQWlCQSxDQUFDQSxRQUFRQSxFQUFFQSxLQUFJQSxDQUFDQSxJQUFJQSxFQUFFQSxPQUFPQSxDQUFDQSxLQUFLQSxDQUFDQSxHQUFHQSxFQUFFQSxDQUFDQSxDQUFDQTtnQkFDdEdBLE9BQU9BLENBQUNBLFNBQVNBLEdBQUdBLE9BQU9BLENBQUNBLEtBQUtBLENBQUNBLE1BQU1BLENBQUNBO2dCQUV6Q0EsSUFBSUEsWUFBWUEsR0FBR0EsT0FBT0EsQ0FBQ0EsS0FBS0EsQ0FBQ0E7Z0JBQ2pDQSxPQUFPQSxDQUFDQSxTQUFTQSxHQUFHQSxZQUFZQSxDQUFDQSxHQUFHQSxDQUFDQSxVQUFDQSxHQUFHQTtvQkFDdkNBLE1BQU1BLENBQUNBLEdBQUdBLENBQUNBLElBQUlBLENBQUNBO2dCQUNsQkEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsR0FBR0EsQ0FBQ0EsQ0FBQ0E7Z0JBQ2JBLE9BQU9BLENBQUNBLFdBQVdBLEdBQUdBLFVBQVVBLENBQUNBLGNBQWNBLENBQUNBLG9CQUFTQSxDQUFDQSxPQUFPQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFDcEVBLEtBQUlBLENBQUNBLHVCQUF1QkEsQ0FBQ0EsT0FBT0EsRUFBRUEsY0FBY0EsQ0FBQ0EsQ0FBQ0E7Z0JBQ3REQSxJQUFJQSxJQUFJQSxHQUFHQSxPQUFPQSxDQUFDQSxJQUFJQSxJQUFJQSxFQUFFQSxDQUFDQTtnQkFDOUJBLE9BQU9BLENBQUNBLFNBQVNBLEdBQUdBLElBQUlBLENBQUNBLFFBQVFBLENBQUNBO2dCQUNsQ0EsT0FBT0EsQ0FBQ0EsYUFBYUEsR0FBR0EsVUFBVUEsQ0FBQ0EsY0FBY0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsUUFBUUEsQ0FBQ0EsQ0FBQ0E7Z0JBQ2pFQSxJQUFJQSxLQUFLQSxHQUFHQSxDQUFDQSxDQUFDQSxHQUFHQSxDQUFDQSxJQUFJQSxDQUFDQSxLQUFLQSxJQUFJQSxFQUFFQSxFQUFFQSxNQUFNQSxDQUFDQSxDQUFDQTtnQkFDNUNBLE9BQU9BLENBQUNBLE1BQU1BLEdBQUdBLEtBQUtBLENBQUNBO2dCQUN2QkEsT0FBT0EsQ0FBQ0EsVUFBVUEsR0FBR0EsS0FBS0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0E7Z0JBQ3RDQSxJQUFJQSxPQUFPQSxHQUFHQSxPQUFPQSxDQUFDQSxRQUFRQSxDQUFDQTtnQkFDL0JBLEVBQUVBLENBQUNBLENBQUNBLE9BQU9BLElBQUlBLFlBQVlBLENBQUNBLENBQUNBLENBQUNBO29CQUM1QkEsWUFBWUEsQ0FBQ0EsT0FBT0EsQ0FBQ0EsVUFBQ0EsR0FBR0E7d0JBQ3ZCQSxHQUFHQSxDQUFDQSxRQUFRQSxHQUFHQSxPQUFPQSxDQUFDQTtvQkFDekJBLENBQUNBLENBQUNBLENBQUNBO2dCQUNMQSxDQUFDQTtnQkFDREEsT0FBT0EsQ0FBQ0EsV0FBV0EsR0FBR0EseUJBQWNBLENBQUNBLE9BQU9BLENBQUNBLENBQUNBO1lBQ2hEQSxDQUFDQSxDQUFDQSxDQUFDQTtZQUVIQSxJQUFJQSxDQUFDQSxzQkFBc0JBLENBQUNBLE9BQU9BLENBQUNBLFVBQUNBLHFCQUFxQkE7Z0JBQ3hEQSxFQUFFQSxDQUFDQSxDQUFDQSxDQUFDQSxxQkFBcUJBLENBQUNBLElBQUlBLENBQUNBO29CQUFDQSxxQkFBcUJBLENBQUNBLElBQUlBLEdBQUdBLHVCQUF1QkEsQ0FBQ0E7Z0JBQ3RGQSxLQUFJQSxDQUFDQSwyQkFBMkJBLENBQUNBLHFCQUFxQkEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsR0FBR0EscUJBQXFCQSxDQUFBQTtnQkFDbEZBLElBQUlBLFFBQVFBLEdBQUdBLHNCQUFXQSxDQUFDQSxxQkFBcUJBLENBQUNBLENBQUNBO2dCQUNwREEscUJBQXFCQSxDQUFDQSxLQUFLQSxHQUFHQSxFQUFFQSxDQUFDQTtnQkFDakNBLHFCQUFxQkEsQ0FBQ0EsWUFBWUEsR0FBR0EsUUFBUUEsR0FBR0EsNEJBQWlCQSxDQUFDQSxRQUFRQSxFQUFFQSxLQUFJQSxDQUFDQSxJQUFJQSxFQUFFQSxxQkFBcUJBLENBQUNBLEtBQUtBLENBQUNBLEdBQUdBLElBQUlBLENBQUNBO2dCQUMzSEEscUJBQXFCQSxDQUFDQSxTQUFTQSxHQUFHQSxxQkFBcUJBLENBQUNBLEtBQUtBLENBQUNBLE1BQU1BLENBQUNBO2dCQUNyRUEscUJBQXFCQSxDQUFDQSxTQUFTQSxHQUFHQSxDQUFDQSxxQkFBcUJBLENBQUNBLElBQUlBLElBQUlBLEVBQUVBLENBQUNBLENBQUNBLFFBQVFBLENBQUNBO2dCQUU5RUEsSUFBSUEsWUFBWUEsR0FBR0EscUJBQXFCQSxDQUFDQSxLQUFLQSxDQUFDQTtnQkFDL0NBLHFCQUFxQkEsQ0FBQ0EsU0FBU0EsR0FBR0EsWUFBWUEsQ0FBQ0EsR0FBR0EsQ0FBQ0EsVUFBQ0EsR0FBR0E7b0JBQ3JEQSxNQUFNQSxDQUFDQSxHQUFHQSxDQUFDQSxJQUFJQSxDQUFDQTtnQkFDbEJBLENBQUNBLENBQUNBLENBQUNBLElBQUlBLENBQUNBLEdBQUdBLENBQUNBLENBQUNBO2dCQUNiQSxxQkFBcUJBLENBQUNBLFdBQVdBLEdBQUdBLFVBQVVBLENBQUNBLGNBQWNBLENBQUNBLG9CQUFTQSxDQUFDQSxxQkFBcUJBLENBQUNBLENBQUNBLENBQUNBO2dCQUNoR0EsS0FBSUEsQ0FBQ0EsdUJBQXVCQSxDQUFDQSxxQkFBcUJBLEVBQUVBLDRCQUE0QkEsQ0FBQ0EsQ0FBQ0E7Z0JBQ2xGQSxJQUFJQSxPQUFPQSxHQUFJQSxxQkFBcUJBLENBQUNBLFFBQVFBLENBQUNBO2dCQUM5Q0EsRUFBRUEsQ0FBQ0EsQ0FBQ0EsT0FBT0EsSUFBSUEsWUFBWUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7b0JBQzVCQSxZQUFZQSxDQUFDQSxPQUFPQSxDQUFDQSxVQUFDQSxHQUFHQTt3QkFDdkJBLEdBQUdBLENBQUNBLFFBQVFBLEdBQUdBLE9BQU9BLENBQUNBO29CQUN6QkEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7Z0JBQ0xBLENBQUNBO1lBQ0hBLENBQUNBLENBQUNBLENBQUNBO1lBRUhBLEFBRUFBLG1FQUZtRUE7WUFDbkVBLHdCQUF3QkE7WUFDeEJBLElBQUlBLENBQUNBLFFBQVFBLENBQUNBLE9BQU9BLENBQUNBLFVBQUNBLE9BQU9BO2dCQUM1QkEsSUFBSUEsT0FBT0EsR0FBR0EsT0FBT0EsQ0FBQ0EsUUFBUUEsQ0FBQ0E7Z0JBQy9CQSxJQUFJQSxZQUFZQSxHQUFHQSxPQUFPQSxDQUFDQSxLQUFLQSxDQUFDQTtnQkFDakNBLEVBQUVBLENBQUNBLENBQUNBLFlBQVlBLENBQUNBLENBQUNBLENBQUNBO29CQUNqQkEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsT0FBT0EsSUFBSUEsT0FBT0EsS0FBS0EseUJBQWNBLENBQUNBLENBQUNBLENBQUNBO3dCQUMzQ0EsT0FBT0EsR0FBR0EsSUFBSUEsQ0FBQ0E7d0JBQ2ZBLFlBQVlBLENBQUNBLE9BQU9BLENBQUNBLFVBQUNBLEdBQUdBOzRCQUN2QkEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsT0FBT0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7Z0NBQ2JBLE9BQU9BLEdBQUdBLEdBQUdBLENBQUNBLFFBQVFBLENBQUNBO2dDQUN2QkEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsT0FBT0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7b0NBQ1pBLE9BQU9BLENBQUNBLFFBQVFBLEdBQUdBLE9BQU9BLENBQUNBO2dDQUM3QkEsQ0FBQ0E7NEJBQ0hBLENBQUNBO3dCQUNIQSxDQUFDQSxDQUFDQSxDQUFDQTtvQkFDTEEsQ0FBQ0E7Z0JBQ0hBLENBQUNBO1lBQ0hBLENBQUNBLENBQUNBLENBQUNBO1lBRUhBLElBQUlBLENBQUNBLFVBQVVBLEVBQUVBLENBQUNBO1lBRWxCQSxJQUFJQSxVQUFVQSxHQUFHQSxFQUFFQSxDQUFDQTtZQUNwQkEsSUFBSUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsT0FBT0EsQ0FBQ0EsVUFBQ0EsR0FBR0E7Z0JBQ3BCQSxJQUFJQSxJQUFJQSxHQUFHQSxrQkFBT0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsQ0FBQ0E7Z0JBQ3hCQSxJQUFJQSxXQUFXQSxHQUFHQSxVQUFVQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQTtnQkFDbkNBLEVBQUVBLENBQUNBLENBQUNBLENBQUNBLFdBQVdBLENBQUNBLENBQUNBLENBQUNBO29CQUNqQkEsV0FBV0EsR0FBR0EsRUFBRUEsQ0FBQ0E7b0JBQ2pCQSxVQUFVQSxDQUFDQSxJQUFJQSxDQUFDQSxHQUFHQSxXQUFXQSxDQUFDQTtnQkFDakNBLENBQUNBO2dCQUNEQSxXQUFXQSxDQUFDQSxJQUFJQSxDQUFDQSxHQUFHQSxDQUFDQSxDQUFDQTtZQUN4QkEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7WUFDSEEsSUFBSUEsQ0FBQ0EsVUFBVUEsR0FBR0EsVUFBVUEsQ0FBQ0E7WUFFN0JBLElBQUlBLFFBQVFBLEdBQUdBLEVBQUVBLENBQUNBO1lBQ2xCQSxHQUFHQSxDQUFDQSxDQUFDQSxHQUFHQSxDQUFDQSxPQUFPQSxJQUFJQSxVQUFVQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFDL0JBLElBQUlBLFFBQVFBLEdBQUdBLEVBQUVBLENBQUNBO2dCQUNsQkEsSUFBSUEsV0FBV0EsR0FBR0EsNEJBQWlCQSxDQUFDQSxVQUFDQSxHQUFHQSxJQUFLQSxPQUFBQSxrQkFBT0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsS0FBS0EsT0FBT0EsRUFBeEJBLENBQXdCQSxFQUFFQSxJQUFJQSxDQUFDQSxJQUFJQSxFQUFFQSxRQUFRQSxFQUFFQSxPQUFPQSxHQUFHQSxPQUFPQSxDQUFDQSxDQUFDQTtnQkFDL0dBLElBQUlBLE1BQU1BLEdBQUdBLElBQUlBLENBQUNBO2dCQUNsQkEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsUUFBUUEsQ0FBQ0EsTUFBTUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7b0JBQ3BCQSxJQUFJQSxHQUFHQSxHQUFHQSxRQUFRQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtvQkFDdEJBLElBQUlBLFlBQVlBLEdBQUdBLEdBQUdBLENBQUNBLE1BQU1BLENBQUNBO29CQUM5QkEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsWUFBWUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7d0JBQ2pCQSxNQUFNQSxHQUFHQSxZQUFZQSxDQUFDQSxNQUFNQSxDQUFDQTtvQkFDL0JBLENBQUNBO2dCQUNIQSxDQUFDQTtnQkFDREEsSUFBSUEsV0FBV0EsR0FBR0E7b0JBQ2hCQSxJQUFJQSxFQUFFQSxPQUFPQTtvQkFDYkEsRUFBRUEsRUFBRUEsT0FBT0E7b0JBQ1hBLFNBQVNBLEVBQUVBLE9BQU9BLENBQUNBLE9BQU9BLENBQUNBLEtBQUtBLEVBQUVBLEdBQUdBLENBQUNBO29CQUN0Q0EsTUFBTUEsRUFBRUEsTUFBTUE7b0JBQ2RBLElBQUlBLEVBQUVBLFFBQVFBO29CQUNkQSxJQUFJQSxFQUFFQSxNQUFNQTtvQkFDVkEsWUFBWUEsRUFBRUEsV0FBV0E7b0JBQ3pCQSxRQUFRQSxFQUFFQSxzQkFBV0E7aUJBQ3hCQSxDQUFDQTtnQkFDRkEsUUFBUUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsV0FBV0EsQ0FBQ0EsQ0FBQ0E7WUFDN0JBLENBQUNBO1lBRURBLElBQUlBLENBQUNBLEtBQUtBLEdBQUdBLFFBQVFBLENBQUNBO1lBRXRCQSw2QkFBa0JBLENBQUNBLElBQUlBLENBQUNBLFlBQVlBLENBQUNBLENBQUNBO1lBQ3RDQSx1QkFBWUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsTUFBTUEsRUFBRUEsSUFBSUEsQ0FBQ0EsQ0FBQ0E7UUFDbENBLENBQUNBO1FBRVNoQiwyQ0FBVUEsR0FBcEJBO1lBQUFpQixpQkF1TUNBO1lBdE1DQSxJQUFBQSxDQUFDQTtnQkFDQ0EsQUFDQUEsNkZBRDZGQTtvQkFDekZBLFFBQVFBLEdBQUdBLEVBQUVBLENBQUNBO2dCQUVsQkEsSUFBSUEsQ0FBQ0Esc0JBQXNCQSxDQUFDQSxPQUFPQSxDQUFDQSxVQUFDQSxxQkFBcUJBO29CQUN4REEsSUFBSUEsSUFBSUEsR0FBR0Esa0JBQU9BLENBQUNBLHFCQUFxQkEsQ0FBQ0EsQ0FBQ0E7b0JBQzFDQSxJQUFJQSxRQUFRQSxHQUFHQSxxQkFBcUJBLENBQUNBLFFBQVFBLENBQUNBO29CQUM5Q0EsUUFBUUEsQ0FBQ0EsSUFBSUEsQ0FBQ0E7d0JBQ1pBLE9BQU9BLEVBQUVBLGFBQWFBLEdBQUdBLElBQUlBO3dCQUM3QkEsS0FBS0EsRUFBRUEsSUFBSUE7d0JBQ1hBLEtBQUtBLEVBQUVBOzRCQUNMQSxRQUFRQSxFQUFFQSxRQUFRQTt5QkFDbkJBO3dCQUNEQSxRQUFRQSxFQUFFQSxRQUFRQTt3QkFDbEJBLHNCQUFzQkEsRUFBRUEsQ0FBQ0EscUJBQXFCQSxDQUFDQTt3QkFDL0NBLElBQUlBLEVBQUVBLHFCQUFxQkEsQ0FBQ0EsS0FBS0EsSUFBSUEsRUFBRUE7d0JBQ3ZDQSxRQUFRQSxFQUFFQSxFQUFFQTtxQkFDYkEsQ0FBQ0EsQ0FBQ0E7Z0JBQ0xBLENBQUNBLENBQUNBLENBQUNBO2dCQUVIQSxJQUFJQSxtQkFBbUJBLEdBQUdBLHNCQUFXQSxDQUFDQTtnQkFDdENBLElBQUlBLFNBQVNBLEdBQUdBLEVBQUVBLENBQUNBO2dCQUNuQkEsSUFBSUEsQ0FBQ0EsUUFBUUEsQ0FBQ0EsT0FBT0EsQ0FBQ0EsVUFBQ0EsT0FBT0E7b0JBQzVCQSxJQUFJQSxJQUFJQSxHQUFHQSxrQkFBT0EsQ0FBQ0EsT0FBT0EsQ0FBQ0EsQ0FBQ0E7b0JBQzVCQSxFQUFFQSxDQUFDQSxDQUFDQSxJQUFJQSxLQUFLQSxXQUFXQSxDQUFDQSxDQUFDQSxDQUFDQTt3QkFDekJBLElBQUlBLFdBQVdBLEdBQUdBLE9BQU9BLENBQUNBLFlBQVlBLENBQUNBO3dCQUN2Q0EsRUFBRUEsQ0FBQ0EsQ0FBQ0EsV0FBV0EsSUFBSUEsV0FBV0EsQ0FBQ0EsS0FBS0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7NEJBQ3JDQSxtQkFBbUJBLEdBQUdBLElBQUlBLENBQUNBO3dCQUM3QkEsQ0FBQ0E7b0JBQ0hBLENBQUNBO29CQUNEQSxBQUNBQSxxRUFEcUVBO3dCQUNqRUEsVUFBVUEsR0FBR0EsSUFBSUEsQ0FBQ0E7b0JBQ3RCQSxRQUFRQSxDQUFDQSxPQUFPQSxDQUFDQSxVQUFDQSxPQUFPQTt3QkFDdkJBLE9BQU9BLENBQUNBLHNCQUFzQkEsQ0FBQ0EsT0FBT0EsQ0FBQ0EsVUFBQ0EscUJBQXFCQTs0QkFDM0RBLElBQUlBLFdBQVdBLEdBQUdBLHNCQUFXQSxDQUFDQSxxQkFBcUJBLENBQUNBLENBQUNBOzRCQUNyREEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsV0FBV0EsSUFDWEEsMEJBQWVBLENBQUNBLFdBQVdBLEVBQUVBLHNCQUFXQSxDQUFDQSxPQUFPQSxDQUFDQSxDQUFDQSxJQUNsREEsdUJBQVlBLENBQUNBLE9BQU9BLENBQUNBLEtBQUtBLHVCQUFZQSxDQUFDQSxxQkFBcUJBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO2dDQUNsRUEsVUFBVUEsR0FBR0EsT0FBT0EsQ0FBQ0E7NEJBQ3ZCQSxDQUFDQTt3QkFDSEEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7b0JBQ0xBLENBQUNBLENBQUNBLENBQUNBO29CQUVIQSxFQUFFQSxDQUFDQSxDQUFDQSxVQUFVQSxDQUFDQSxDQUFDQSxDQUFDQTt3QkFDZkEsVUFBVUEsQ0FBQ0EsUUFBUUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsT0FBT0EsQ0FBQ0EsQ0FBQ0E7b0JBQ3BDQSxDQUFDQTtvQkFBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0E7d0JBQ05BLFNBQVNBLENBQUNBLElBQUlBLENBQUNBLE9BQU9BLENBQUNBLENBQUNBO29CQUMxQkEsQ0FBQ0E7Z0JBQ0hBLENBQUNBLENBQUNBLENBQUNBO2dCQUNIQSxjQUFHQSxDQUFDQSxLQUFLQSxDQUFDQSxjQUFjQSxFQUFFQSxTQUFTQSxDQUFDQSxDQUFDQTtnQkFDckNBLFNBQVNBLENBQUNBLE9BQU9BLENBQUNBLFVBQUNBLE9BQU9BO29CQUN4QkEsSUFBSUEsT0FBT0EsR0FBR0EsQ0FBQ0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsUUFBUUEsRUFBRUEsVUFBQ0EsT0FBT0E7d0JBQ3JDQSxNQUFNQSxDQUFDQSxDQUFDQSxDQUFDQSxHQUFHQSxDQUFDQSxPQUFPQSxDQUFDQSxzQkFBc0JBLEVBQUVBLFVBQUNBLEVBQUVBOzRCQUM5Q0EsTUFBTUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsVUFBVUEsQ0FBQ0Esa0JBQU9BLENBQUNBLEVBQUVBLENBQUNBLEVBQUVBLGtCQUFPQSxDQUFDQSxPQUFPQSxDQUFDQSxDQUFDQSxDQUFDQTt3QkFDckRBLENBQUNBLENBQUNBLENBQUNBO29CQUNMQSxDQUFDQSxDQUFDQSxDQUFDQTtvQkFDSEEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsT0FBT0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7d0JBQ1pBLE9BQU9BLENBQUNBLFFBQVFBLENBQUNBLElBQUlBLENBQUNBLE9BQU9BLENBQUNBLENBQUNBO29CQUNqQ0EsQ0FBQ0E7b0JBQUNBLElBQUlBLENBQUNBLENBQUNBO3dCQUNOQSxJQUFJQSxRQUFRQSxHQUFHQSxPQUFPQSxDQUFDQSxRQUFRQSxDQUFDQTt3QkFDaENBLFFBQVFBLENBQUNBLElBQUlBLENBQUNBOzRCQUNaQSxPQUFPQSxFQUFFQSxhQUFhQSxHQUFHQSxJQUFJQTs0QkFDN0JBLEtBQUtBLEVBQUVBLElBQUlBOzRCQUNYQSxLQUFLQSxFQUFFQTtnQ0FDTEEsUUFBUUEsRUFBRUEsUUFBUUE7NkJBQ25CQTs0QkFDQ0EsUUFBUUEsRUFBRUEsUUFBUUE7NEJBQ3BCQSxzQkFBc0JBLEVBQUVBLEVBQUVBOzRCQUMxQkEsSUFBSUEsRUFBRUEsT0FBT0EsQ0FBQ0EsS0FBS0EsSUFBSUEsRUFBRUE7NEJBQ3pCQSxRQUFRQSxFQUFFQSxDQUFDQSxPQUFPQSxDQUFDQTt5QkFDcEJBLENBQUNBLENBQUNBO29CQUNMQSxDQUFDQTtnQkFDSEEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7Z0JBRUhBLElBQUlBLENBQUNBLGFBQWFBLEdBQUdBLG1CQUFtQkEsQ0FBQ0E7Z0JBRXpDQSxPQUFPQSxDQUFDQSxPQUFPQSxDQUFDQSxJQUFJQSxDQUFDQSxNQUFNQSxFQUFFQSxVQUFDQSxLQUFLQTtvQkFDakNBLElBQUlBLFFBQVFBLEdBQUdBLEtBQUtBLENBQUNBLFFBQVFBLElBQUlBLEVBQUVBLENBQUNBO29CQUNwQ0EsSUFBSUEsSUFBSUEsR0FBR0EsS0FBS0EsQ0FBQ0EsSUFBSUEsSUFBSUEsRUFBRUEsQ0FBQ0E7b0JBQzVCQSxJQUFJQSxXQUFXQSxHQUFHQSxJQUFJQSxDQUFDQSxPQUFPQSxDQUFDQSxJQUFJQSxFQUFFQSxDQUFDQSxJQUFJQSxFQUFFQSxNQUFNQSxDQUFDQSxDQUFDQSxDQUFDQTtvQkFDckRBLElBQUlBLElBQUlBLEdBQUdBLElBQUlBLENBQUNBLElBQUlBLENBQUNBO29CQUNyQkEsSUFBSUEsU0FBU0EsR0FBR0EsdUJBQVlBLENBQUNBLEtBQUtBLENBQUNBLENBQUNBO29CQUNwQ0EsRUFBRUEsQ0FBQ0EsQ0FBQ0EsV0FBV0EsSUFBSUEsSUFBSUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7d0JBQ3hCQSxJQUFJQSxPQUFPQSxHQUFHQSxLQUFJQSxDQUFDQSxVQUFVQSxDQUFDQSxTQUFTQSxFQUFFQSxXQUFXQSxDQUFDQSxDQUFDQTt3QkFDdERBLEVBQUVBLENBQUNBLENBQUNBLE9BQU9BLENBQUNBLENBQUNBLENBQUNBOzRCQUNaQSxPQUFPQSxDQUFDQSxLQUFLQSxHQUFHQSxJQUFJQSxDQUFDQTs0QkFFckJBLEFBR0FBLDhGQUg4RkE7NEJBQzlGQSx3REFBd0RBOzRCQUV4REEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7Z0NBQ1RBLElBQUlBLE9BQU9BLEdBQUlBLElBQUlBLENBQUNBO2dDQUNwQkEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsT0FBT0EsQ0FBQ0EsT0FBT0EsQ0FBQ0EsS0FBS0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7b0NBQy9CQSxPQUFPQSxHQUFHQSxTQUFTQSxHQUFHQSxJQUFJQSxDQUFDQTtnQ0FDN0JBLENBQUNBO2dDQUNEQSxPQUFPQSxDQUFDQSxXQUFXQSxHQUFHQSxVQUFVQSxDQUFDQSxJQUFJQSxDQUFDQSxPQUFPQSxFQUFHQSxHQUFHQSxDQUFDQSxDQUFDQTs0QkFDdkRBLENBQUNBOzRCQUVEQSxBQUNBQSxrRUFEa0VBOzRCQUNsRUEsRUFBRUEsQ0FBQ0EsQ0FBQ0Esa0JBQU9BLENBQUNBLE9BQU9BLENBQUNBLEtBQUtBLFFBQVFBLElBQUlBLElBQUlBLENBQUNBLENBQUNBLENBQUNBO2dDQUMxQ0EsT0FBT0EsQ0FBQ0EsV0FBV0EsR0FBVUEsSUFBSUEsR0FBR0EsRUFBRUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsT0FBT0EsQ0FBQ0EsS0FBS0EsQ0FBQ0EsQ0FDakNBLElBQUlBLENBQUNBLHFCQUFxQkEsQ0FBRUEsQ0FDNUJBLEtBQUtBLENBQUNBLEVBQUVBLENBQUNBLENBQ1RBLElBQUlBLENBQUNBLEdBQUdBLENBQUNBLE1BQU1BLENBQUNBLE9BQU9BLENBQUNBLE1BQU1BLENBQUNBO29DQUM5QkEsTUFBTUEsRUFBRUEsSUFBSUEsR0FBR0EsRUFBRUEsQ0FBQ0EsUUFBUUEsRUFBRUE7b0NBQzVCQSxLQUFLQSxFQUFFQSxXQUFXQSxDQUFDQSxhQUFhQSxFQUFFQTtpQ0FDbkNBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLFFBQVFBLEVBQUVBLENBQUNBOzRCQUUxQ0EsQ0FBQ0E7d0JBQ0hBLENBQUNBO3dCQUFDQSxJQUFJQSxDQUFDQSxDQUFDQTs0QkFDTkEsY0FBR0EsQ0FBQ0EsS0FBS0EsQ0FBQ0EseUJBQXlCQSxHQUFHQSxXQUFXQSxHQUFHQSxhQUFhQSxHQUFHQSxTQUFTQSxHQUFHQSxjQUFjQSxHQUFHQSxRQUFRQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQTt3QkFDbEhBLENBQUNBO29CQUNIQSxDQUFDQTtnQkFDSEEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7Z0JBRUhBLFFBQVFBLEdBQUdBLFlBQVlBLENBQUNBLFFBQVFBLENBQUNBLENBQUNBLE1BQU1BLENBQUNBLFVBQUNBLE9BQU9BLElBQUtBLE9BQUFBLE9BQU9BLENBQUNBLElBQUlBLEVBQVpBLENBQVlBLENBQUNBLENBQUNBO2dCQUVwRUEsWUFBWUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsUUFBUUEsRUFBRUEsUUFBUUEsRUFBRUEsT0FBT0EsQ0FBQ0EsQ0FBQ0E7Z0JBRXBEQSxFQUFFQSxDQUFDQSxDQUFDQSxJQUFJQSxDQUFDQSxRQUFRQSxJQUFJQSxJQUFJQSxDQUFDQSxRQUFRQSxDQUFDQSxDQUFDQSxDQUFDQTtvQkFDbkNBLElBQUlBLFNBQVNBLEdBQUdBLEVBQUVBLENBQUNBO29CQUNuQkEsSUFBSUEsT0FBT0EsR0FBR0EsRUFBRUEsQ0FBQ0E7b0JBQ2pCQSxJQUFJQSxNQUFNQSxHQUFHQSxFQUFFQSxDQUFDQTtvQkFDaEJBLE9BQU9BLENBQUNBLE9BQU9BLENBQUNBLElBQUlBLENBQUNBLFFBQVFBLEVBQUVBLFVBQUNBLE9BQU9BO3dCQUNyQ0EsRUFBRUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsT0FBT0EsQ0FBQ0EsUUFBUUEsSUFBSUEsT0FBT0EsQ0FBQ0EsUUFBUUEsSUFBSUEsT0FBT0EsQ0FBQ0EsUUFBUUEsS0FBS0EsTUFBTUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7NEJBQ3pFQSxPQUFPQSxDQUFDQSxRQUFRQSxHQUFHQSx1QkFBWUEsQ0FBQ0EsT0FBT0EsQ0FBQ0EsUUFBUUEsQ0FBQ0EsQ0FBQ0E7d0JBQ3BEQSxDQUFDQTt3QkFDREEsSUFBSUEsT0FBT0EsR0FBR0EsT0FBT0EsQ0FBQ0EsT0FBT0EsQ0FBQ0E7d0JBQzlCQSxFQUFFQSxDQUFDQSxDQUFDQSxPQUFPQSxDQUFDQSxDQUFDQSxDQUFDQTs0QkFDWkEsTUFBTUEsQ0FBQ0EsT0FBT0EsQ0FBQ0EsR0FBR0EsT0FBT0EsQ0FBQ0E7NEJBQzFCQSxJQUFJQSxHQUFHQSxHQUFHQSxPQUFPQSxDQUFDQSxXQUFXQSxDQUFDQSxHQUFHQSxDQUFDQSxDQUFDQTs0QkFDbkNBLElBQUlBLFVBQVVBLEdBQUdBLEVBQUVBLENBQUNBOzRCQUNwQkEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsR0FBR0EsSUFBSUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7Z0NBQ2JBLFVBQVVBLEdBQUdBLE9BQU9BLENBQUNBLFNBQVNBLENBQUNBLENBQUNBLEVBQUVBLEdBQUdBLENBQUNBLENBQUNBOzRCQUN6Q0EsQ0FBQ0E7NEJBQ0RBLFVBQVVBLEdBQUdBLElBQUlBLENBQUNBLFdBQVdBLENBQUNBLFVBQVVBLEVBQUVBLEdBQUdBLENBQUNBLENBQUNBOzRCQUMvQ0EsSUFBSUEsTUFBTUEsR0FBR0EsU0FBU0EsQ0FBQ0EsVUFBVUEsQ0FBQ0EsQ0FBQ0E7NEJBQ25DQSxFQUFFQSxDQUFDQSxDQUFDQSxDQUFDQSxNQUFNQSxDQUFDQSxDQUFDQSxDQUFDQTtnQ0FDWkEsTUFBTUEsR0FBR0E7b0NBQ1BBLElBQUlBLEVBQUVBLFVBQVVBO29DQUNoQkEsUUFBUUEsRUFBRUEsSUFBSUE7b0NBQ2RBLElBQUlBLEVBQUVBLEVBQUVBO2lDQUNUQSxDQUFDQTtnQ0FDRkEsT0FBT0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsTUFBTUEsQ0FBQ0EsQ0FBQ0E7Z0NBQ3JCQSxTQUFTQSxDQUFDQSxVQUFVQSxDQUFDQSxHQUFHQSxNQUFNQSxDQUFDQTs0QkFDakNBLENBQUNBOzRCQUNEQSxNQUFNQSxDQUFDQSxJQUFJQSxDQUFDQSxJQUFJQSxDQUFDQSxPQUFPQSxDQUFDQSxDQUFDQTt3QkFDNUJBLENBQUNBO29CQUNIQSxDQUFDQSxDQUFDQSxDQUFDQTtvQkFDSEEsSUFBSUEsQ0FBQ0EsVUFBVUEsR0FBR0EsT0FBT0EsQ0FBQ0EsTUFBTUEsQ0FBQ0EsTUFBTUEsQ0FBQ0EsQ0FBQ0E7b0JBRXpDQSxJQUFJQSxJQUFJQSxHQUFHQSxFQUFFQSxDQUFDQTtvQkFDZEEsSUFBSUEsV0FBV0EsR0FBR0E7d0JBQ2hCQSxRQUFRQSxFQUFFQSx5QkFBY0E7cUJBQ3pCQSxDQUFDQTtvQkFFRkEsT0FBT0EsQ0FBQ0EsT0FBT0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsUUFBUUEsRUFBRUEsVUFBQ0EsT0FBT0E7d0JBQ3JDQSxJQUFBQSxDQUFDQTs0QkFDQ0EsSUFBSUEsT0FBT0EsR0FBR0EsT0FBT0EsQ0FBQ0EsT0FBT0EsQ0FBQ0E7NEJBRTlCQSxBQU9BQTs7Ozs7K0JBRkdBO2dDQUVDQSxPQUFPQSxHQUFHQSxPQUFPQSxDQUFDQSxJQUFJQSxDQUFDQSxXQUFXQSxDQUFDQSxDQUFDQTs0QkFDeENBLEVBQUVBLENBQUNBLENBQUNBLE9BQU9BLENBQUNBLENBQUNBLENBQUNBO2dDQUNaQSxPQUFPQSxHQUFHQSxNQUFNQSxDQUFDQSxPQUFPQSxDQUFDQSxJQUFJQSxPQUFPQSxDQUFDQTs0QkFDdkNBLENBQUNBOzRCQUNEQSxFQUFFQSxDQUFDQSxDQUFDQSxDQUFDQSxPQUFPQSxDQUFDQSxLQUFLQSxDQUFDQSxDQUFDQSxDQUFDQTtnQ0FDbkJBLE9BQU9BLENBQUNBLEtBQUtBLEdBQUdBLFdBQVdBLENBQUNBO2dDQUM1QkEsT0FBT0EsQ0FBQ0EsS0FBS0EsR0FBR0EsT0FBT0EsQ0FBQ0E7NEJBQzFCQSxDQUFDQTs0QkFDREEsT0FBT0EsQ0FBQ0EsRUFBRUEsR0FBR0EsT0FBT0EsQ0FBQ0E7NEJBQ3JCQSxFQUFFQSxDQUFDQSxDQUFDQSxDQUFDQSxPQUFPQSxDQUFDQSxLQUFLQSxDQUFDQSxDQUFDQSxDQUFDQTtnQ0FDbkJBLE9BQU9BLENBQUNBLEtBQUtBLEdBQUdBLE9BQU9BLENBQUNBLElBQUlBLElBQUlBLE9BQU9BLENBQUNBLEtBQUtBLENBQUNBOzRCQUNoREEsQ0FBQ0E7NEJBQ0RBLEVBQUVBLENBQUNBLENBQUNBLENBQUNBLE9BQU9BLENBQUNBLFFBQVFBLENBQUNBLENBQUNBLENBQUNBO2dDQUN0QkEsT0FBT0EsQ0FBQ0EsUUFBUUEsR0FBR0EsT0FBT0EsQ0FBQ0EsUUFBUUEsQ0FBQ0E7NEJBQ3RDQSxDQUFDQTs0QkFDREEsSUFBSUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsT0FBT0EsQ0FBQ0EsQ0FBQ0E7NEJBQ25CQSxPQUFPQSxDQUFDQSxZQUFZQSxHQUFHQSxtQ0FBd0JBLENBQUNBLE9BQU9BLENBQUNBLENBQUNBOzRCQUN6REEsT0FBT0EsQ0FBQ0EsU0FBU0EsR0FBR0EsQ0FBQ0EsT0FBT0EsQ0FBQ0EsSUFBSUEsSUFBSUEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsTUFBTUEsQ0FBQ0E7NEJBQ2hEQSxPQUFPQSxDQUFDQSwyQkFBMkJBLEdBQUdBLENBQUNBLE9BQU9BLENBQUNBLHNCQUFzQkEsSUFBSUEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsTUFBTUEsQ0FBQ0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsR0FBR0EsQ0FBQ0EsQ0FBQ0E7NEJBQ25HQSxPQUFPQSxDQUFDQSxhQUFhQSxHQUFFQSxDQUFDQSxPQUFPQSxDQUFDQSxRQUFRQSxJQUFJQSxFQUFFQSxDQUFDQSxDQUFDQSxHQUFHQSxDQUFDQSxNQUFNQSxDQUFDQSxDQUFDQSxJQUFJQSxDQUFDQSxHQUFHQSxDQUFDQSxDQUFDQTs0QkFDdEVBLE9BQU9BLENBQUNBLGFBQWFBLEdBQUdBLG9DQUF5QkEsQ0FBQ0EsT0FBT0EsQ0FBQ0EsQ0FBQ0E7d0JBQzdEQSxDQUFFQTt3QkFBQUEsS0FBS0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7NEJBQ1hBLGNBQUdBLENBQUNBLElBQUlBLENBQUNBLDZCQUE2QkEsR0FBR0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7d0JBQzlDQSxDQUFDQTtvQkFDSEEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7b0JBQ0hBLEFBQ0FBLG1CQURtQkE7b0JBQ25CQSxJQUFJQSxDQUFDQSxJQUFJQSxHQUFHQSxJQUFJQSxDQUFDQSxRQUFRQSxDQUFDQTtnQkFDNUJBLENBQUNBO1lBQ0hBLENBQUVBO1lBQUFBLEtBQUtBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO2dCQUNYQSxjQUFHQSxDQUFDQSxJQUFJQSxDQUFDQSxnQkFBZ0JBLEdBQUdBLENBQUNBLENBQUNBLENBQUNBO1lBQ2pDQSxDQUFDQTtRQUNIQSxDQUFDQTtRQUVTakIsdURBQXNCQSxHQUFoQ0EsVUFBaUNBLE1BQU1BO1lBQ3JDa0IsSUFBSUEsSUFBSUEsR0FBR0EsSUFBSUEsQ0FBQ0EsT0FBT0EsQ0FBQ0EsTUFBTUEsRUFBRUEsQ0FBQ0EsUUFBUUEsRUFBRUEsTUFBTUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7WUFDcERBLElBQUlBLFFBQVFBLEdBQUdBLElBQUlBLENBQUNBO1lBQ3BCQSxJQUFJQSxZQUFZQSxHQUFHQSxNQUFNQSxDQUFDQSxNQUFNQSxJQUFJQSxFQUFFQSxDQUFDQTtZQUN2Q0EsSUFBSUEsWUFBWUEsR0FBR0EsTUFBTUEsQ0FBQ0EsSUFBSUEsSUFBSUEsRUFBRUEsQ0FBQ0E7WUFDckNBLElBQUlBLEtBQUtBLEdBQUdBLGtCQUFPQSxDQUFDQSxNQUFNQSxDQUFDQSxDQUFDQTtZQUM1QkEsSUFBSUEsSUFBSUEsR0FBR0EsWUFBWUEsQ0FBQ0EsUUFBUUEsQ0FBQ0EsQ0FBQ0E7WUFDbENBLElBQUlBLEtBQUtBLEdBQUdBLFlBQVlBLENBQUNBLE9BQU9BLENBQUNBLENBQUNBO1lBQ2xDQSxJQUFJQSxTQUFTQSxHQUFHQSxLQUFLQSxDQUFDQTtZQUN0QkEsSUFBSUEsa0JBQWtCQSxHQUFHQSxJQUFJQSxDQUFDQTtZQUM5QkEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsWUFBWUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7Z0JBQ2pCQSxJQUFJQSxVQUFVQSxHQUFHQSxZQUFZQSxDQUFDQSxVQUFVQSxDQUFDQTtnQkFDekNBLE9BQU9BLENBQUNBLE9BQU9BLENBQUNBLFVBQVVBLEVBQUVBLFVBQUNBLFNBQVNBO29CQUNwQ0EsRUFBRUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsUUFBUUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7d0JBQ2RBLElBQUlBLEtBQUtBLEdBQUdBLFNBQVNBLENBQUNBLEtBQUtBLENBQUNBO3dCQUM1QkEsT0FBT0EsQ0FBQ0EsT0FBT0EsQ0FBQ0EsS0FBS0EsRUFBRUEsVUFBQ0EsSUFBSUE7NEJBQzFCQSxFQUFFQSxDQUFDQSxDQUFDQSxDQUFDQSxRQUFRQSxDQUFDQSxDQUFDQSxDQUFDQTtnQ0FDZEEsSUFBSUEsYUFBYUEsR0FBR0EsSUFBSUEsQ0FBQ0EsYUFBYUEsQ0FBQ0E7Z0NBQ3ZDQSxJQUFJQSxRQUFRQSxHQUFHQSxJQUFJQSxDQUFDQSxJQUFJQSxDQUFDQTtnQ0FDekJBLElBQUlBLGlCQUFpQkEsR0FBR0EsSUFBSUEsQ0FBQ0EsUUFBUUEsQ0FBQ0E7Z0NBQ3RDQSxFQUFFQSxDQUFDQSxDQUFDQSxhQUFhQSxLQUFLQSxJQUFJQSxJQUFJQSxTQUFTQSxLQUFLQSxRQUFRQSxDQUFDQSxDQUFDQSxDQUFDQTtvQ0FDckRBLEVBQUVBLENBQUNBLENBQUNBLGFBQWFBLENBQUNBLENBQUNBLENBQUNBO3dDQUNsQkEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsS0FBS0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7NENBQ1ZBLGtCQUFrQkEsR0FBR0EsYUFBYUEsQ0FBQ0E7d0NBQ3JDQSxDQUFDQTt3Q0FDREEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsaUJBQWlCQSxDQUFDQSxDQUFDQSxDQUFDQTs0Q0FDdEJBLFFBQVFBLEdBQUdBLGlCQUFpQkEsQ0FBQ0E7d0NBQy9CQSxDQUFDQTtvQ0FDSEEsQ0FBQ0E7Z0NBQ0hBLENBQUNBOzRCQUNIQSxDQUFDQTt3QkFDSEEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7b0JBQ0xBLENBQUNBO2dCQUNIQSxDQUFDQSxDQUFDQSxDQUFDQTtZQUNMQSxDQUFDQTtZQUNEQSxFQUFFQSxDQUFDQSxDQUFDQSxrQkFBa0JBLElBQUlBLEtBQUtBLElBQUlBLG9CQUFTQSxDQUFDQSxZQUFZQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFDM0RBLE1BQU1BLENBQUNBLFdBQVdBLEdBQUdBLFVBQVVBLENBQUNBLElBQUlBLENBQUNBLFVBQVVBLENBQUNBLFlBQVlBLEVBQUVBLEVBQUVBLE9BQU9BLEVBQUVBLFVBQVVBLENBQUNBLGlCQUFpQkEsRUFBRUEsWUFBWUEsRUFBRUEsTUFBTUEsQ0FBQ0EsUUFBUUEsQ0FBQ0EsU0FBU0EsRUFBR0EsUUFBUUEsRUFDbkhBLEtBQUtBLEdBQUdBLEdBQUdBLEdBQUdBLGtCQUFrQkEsRUFBRUEsaUJBQWlCQSxDQUFDQSxDQUFDQTtZQUM3RkEsQ0FBQ0E7UUFDSEEsQ0FBQ0E7UUFDSGxCLDZCQUFDQTtJQUFEQSxDQWptQkE1SixBQWltQkM0SixJQUFBNUo7SUFqbUJZQSxpQ0FBc0JBLEdBQXRCQSxzQkFpbUJaQSxDQUFBQTtJQUdEQSxBQUlBQTs7O09BREdBO0lBQ0hBLGtCQUFPQSxDQUFDQSxPQUFPQSxDQUFDQSxpQkFBaUJBLEVBQUVBLENBQUNBLFlBQVlBLEVBQUVBLE9BQU9BLEVBQUVBLGtCQUFrQkEsRUFBRUEsaUJBQWlCQSxFQUFFQSxnQkFBZ0JBLEVBQUVBLFdBQVdBLEVBQUVBLFdBQVdBLEVBQUVBLFVBQUNBLFVBQVVBLEVBQUVBLEtBQUtBLEVBQUVBLGFBQWFBLEVBQUVBLGVBQWVBLEVBQUVBLE9BQXNCQSxFQUFFQSxTQUE2QkEsRUFBRUEsU0FBc0NBO1FBRTdSQSxJQUFJQSxNQUFNQSxHQUFHQSxJQUFJQSxzQkFBc0JBLEVBQUVBLENBQUNBO1FBQzFDQSxNQUFNQSxDQUFDQSxVQUFVQSxHQUFHQSxlQUFlQSxDQUFDQTtRQUVwQ0EsQUFDQUEscUNBRHFDQTtZQUNqQ0EsU0FBU0EsR0FBR0EsT0FBT0EsQ0FBQ0EsUUFBUUEsRUFBRUEsQ0FBQ0E7UUFDbkNBLENBQUNBLENBQUNBLE9BQU9BLENBQUNBLFNBQVNBLEVBQUVBLFVBQUNBLElBQVdBO1lBQy9CQSxJQUFJQSxXQUFXQSxHQUFHQSx1Q0FBNEJBLENBQUNBLElBQUlBLENBQUNBLENBQUNBO1lBQ3JEQSxNQUFNQSxDQUFDQSxJQUFJQSxHQUFHQSxVQUFVQSxDQUFDQSxHQUFHQSx5QkFBY0EsQ0FBQ0EsSUFBSUEsRUFBRUEsV0FBV0EsRUFBRUEsU0FBU0EsRUFBRUEsTUFBTUEsQ0FBQ0EsQ0FBQ0E7UUFDbkZBLENBQUNBLENBQUNBLENBQUNBO1FBRUhBLEFBQ0ZBLHNDQUR3Q0E7UUFDeENBLE9BQU9BLENBQUNBLGdCQUFnQkEsQ0FBQ0EsVUFBQ0EsT0FBaUJBO1lBQzFDQSxJQUFJQSxLQUFLQSxHQUFHQSxPQUFPQSxDQUFDQSxRQUFRQSxFQUFFQSxDQUFDQTtZQUMvQkEsQ0FBQ0EsQ0FBQ0EsT0FBT0EsQ0FBQ0EsS0FBS0EsRUFBRUEsVUFBQ0EsSUFBV0E7Z0JBQzVCQSxNQUFNQSxDQUFDQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQSxDQUFDQTtvQkFDZEEsS0FBS0EscUJBQVVBLENBQUNBLFFBQVFBO3dCQUN2QkEsSUFBSUEsS0FBS0EsR0FBR0EsWUFBWUEsQ0FBQ0EsT0FBT0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7d0JBQ3hDQSxPQUFPQSxDQUFDQSxPQUFPQSxDQUFDQSxLQUFLQSxFQUFFQSxVQUFDQSxJQUFJQTs0QkFDcEJBLElBQUlBLENBQUNBLFFBQVFBLEdBQUdBLHVDQUE0QkEsQ0FBQ0EsdUJBQVlBLEVBQUVBLEVBQUVBLElBQUlBLENBQUNBLENBQUNBO3dCQUNyRUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7d0JBQ1RBLE1BQU1BLENBQUNBLElBQUlBLENBQUNBLEdBQUdBLEtBQUtBLENBQUNBO3dCQUNyQkEsS0FBS0EsQ0FBQ0E7b0JBQ0ZBLEtBQUtBLHFCQUFVQSxDQUFDQSxTQUFTQSxDQUFDQTtvQkFDMUJBLEtBQUtBLHFCQUFVQSxDQUFDQSxNQUFNQSxDQUFDQTtvQkFDdkJBLEtBQUtBLHFCQUFVQSxDQUFDQSxNQUFNQSxDQUFDQTtvQkFDdkJBLEtBQUtBLHFCQUFVQSxDQUFDQSxhQUFhQSxDQUFDQTtvQkFDOUJBLEtBQUtBLHFCQUFVQSxDQUFDQSxhQUFhQSxDQUFDQTtvQkFFbkNBO3dCQUNDQSxNQUFNQSxDQUFDQSxJQUFJQSxDQUFDQSxHQUFHQSxZQUFZQSxDQUFDQSxPQUFPQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFDN0NBLENBQUNBO2dCQUNHQSxjQUFHQSxDQUFDQSxLQUFLQSxDQUFDQSxRQUFRQSxFQUFFQSxJQUFJQSxFQUFFQSxXQUFXQSxFQUFFQSxNQUFNQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQSxDQUFDQTtZQUMxREEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7WUFDSEEsTUFBTUEsQ0FBQ0EsU0FBU0EsRUFBRUEsQ0FBQ0E7WUFDaEJBLFVBQVVBLENBQUNBLFVBQVVBLENBQUNBLHdCQUF3QkEsRUFBRUEsTUFBTUEsQ0FBQ0EsQ0FBQ0E7WUFDeERBLElBQUlBLENBQUNBLE1BQU1BLENBQUNBLFVBQVVBLENBQUNBLENBQUNBO1FBQzVCQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUVEQSxBQUdBQSx3REFId0RBO1FBQ3hEQSwwREFBMERBO1FBQzFEQSxZQUFZQTtZQUNSQSxNQUFNQSxHQUFHQSxTQUFTQSxDQUFDQSxNQUFNQSxFQUFFQSxDQUFDQTtRQUNoQ0EsRUFBRUEsQ0FBQ0EsQ0FBQ0EsV0FBV0EsSUFBSUEsTUFBTUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7WUFDMUJBLE9BQU9BLENBQUNBLFlBQVlBLENBQUNBLE1BQU1BLENBQUNBLFdBQVdBLENBQUNBLENBQUNBLENBQUNBO1FBQzVDQSxDQUFDQTtRQUVEQSxTQUFTQSxVQUFVQSxDQUFDQSxJQUFJQSxFQUFFQSxTQUFTQSxFQUFFQSxNQUFNQTtZQUN6QzJKLE1BQU1BLENBQUNBLElBQUlBLENBQUNBLE1BQU1BLENBQUNBLFVBQUNBLEdBQUdBO2dCQUNyQkEsTUFBTUEsQ0FBQ0EsdUJBQVlBLENBQUNBLEdBQUdBLENBQUNBLEtBQUtBLFNBQVNBLElBQUlBLDBCQUFlQSxDQUFDQSxNQUFNQSxFQUFFQSxvQkFBU0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7WUFDcEZBLENBQUNBLENBQUNBLENBQUNBO1FBQ0xBLENBQUNBO1FBQ0QzSixNQUFNQSxDQUFDQSxNQUFNQSxDQUFDQTtJQUNoQkEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7QUFFTkEsQ0FBQ0EsRUFuc0JNLFVBQVUsS0FBVixVQUFVLFFBbXNCaEI7O0FDdHNCRCx5Q0FBeUM7QUFDekMsNENBQTRDO0FBQzVDLDJDQUEyQztBQUMzQywwQ0FBMEM7QUFFMUMsSUFBTyxVQUFVLENBeURoQjtBQXpERCxXQUFPLFVBQVUsRUFBQyxDQUFDO0lBRU5BLHlCQUFjQSxHQUFHQSxxQkFBVUEsQ0FBQ0EsZ0JBQWdCQSxFQUNyREEsQ0FBQ0EsUUFBUUEsRUFBRUEsaUJBQWlCQSxFQUFFQSxpQkFBaUJBLEVBQUVBLGdCQUFnQkEsRUFBRUEsV0FBV0EsRUFBRUEsY0FBY0EsRUFBRUEsT0FBT0EsRUFBRUEsVUFBVUEsRUFBRUEsa0JBQWtCQSxFQUNySUEsVUFBQ0EsTUFBTUEsRUFBRUEsZUFBaURBLEVBQUVBLGVBQWVBLEVBQzFFQSxjQUF1Q0EsRUFBRUEsU0FBNkJBLEVBQUVBLFlBQVlBLEVBQUVBLEtBQUtBLEVBQUVBLFFBQVFBLEVBQUVBLGdCQUFnQkE7UUFFdEhBLE1BQU1BLENBQUNBLFVBQVVBLEdBQUdBLGVBQWVBLENBQUNBO1FBQ3BDQSxNQUFNQSxDQUFDQSxLQUFLQSxHQUFHQSxlQUFlQSxDQUFDQTtRQUMvQkEsTUFBTUEsQ0FBQ0EsT0FBT0EsR0FBR0EsS0FBS0EsQ0FBQ0E7UUFDdkJBLE1BQU1BLENBQUNBLFFBQVFBLEdBQUdBLElBQUlBLENBQUNBO1FBRXZCQSxNQUFNQSxDQUFDQSxVQUFVQSxHQUFHQTtZQUNsQkEsVUFBVUEsRUFBRUEsRUFBRUE7U0FDZkEsQ0FBQ0E7UUFFRkEsVUFBVUEsQ0FBQ0EsVUFBVUEsQ0FBQ0EsTUFBTUEsRUFBRUEsU0FBU0EsRUFBRUEsS0FBS0EsRUFBRUEsUUFBUUEsRUFBRUEsWUFBWUEsRUFBRUEsZUFBZUEsRUFBRUEsZUFBZUEsRUFBRUEsZ0JBQWdCQSxDQUFDQSxDQUFDQTtRQUU1SEEsTUFBTUEsQ0FBQ0EsR0FBR0EsQ0FBQ0Esd0JBQXdCQSxFQUFFQTtZQUNuQyxVQUFVLEVBQUUsQ0FBQztRQUNmLENBQUMsQ0FBQ0EsQ0FBQ0E7UUFFSEEsTUFBTUEsQ0FBQ0EsR0FBR0EsQ0FBQ0EsY0FBY0EsRUFBRUEsVUFBQ0EsTUFBTUE7WUFDaENBLFVBQVVBLEVBQUVBLENBQUNBO1FBQ2ZBLENBQUNBLENBQUNBLENBQUNBO1FBRUhBLE1BQU1BLENBQUNBLE9BQU9BLEdBQUdBO1lBQ2ZBLE1BQU1BLENBQUNBLE9BQU9BLEdBQUdBLENBQUNBLE1BQU1BLENBQUNBLE9BQU9BLENBQUNBO1lBQ2pDQSxJQUFJQSxDQUFDQSxNQUFNQSxDQUFDQSxNQUFNQSxDQUFDQSxDQUFDQTtRQUN0QkEsQ0FBQ0EsQ0FBQ0E7UUFFRkEsVUFBVUEsRUFBRUEsQ0FBQ0E7UUFFYkEsU0FBU0EsVUFBVUE7WUFDakJxSixNQUFNQSxDQUFDQSxFQUFFQSxHQUFHQSxZQUFZQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQTtZQUMvQkEsTUFBTUEsQ0FBQ0EsSUFBSUEsR0FBR0EsSUFBSUEsQ0FBQ0E7WUFDbkJBLEVBQUVBLENBQUNBLENBQUNBLE1BQU1BLENBQUNBLEVBQUVBLENBQUNBLENBQUNBLENBQUNBO2dCQUNkQSxJQUFJQSxHQUFHQSxHQUFHQSxVQUFVQSxDQUFDQSxJQUFJQSxDQUFDQSxnQkFBZ0JBLEVBQUVBLE9BQU9BLEVBQUVBLE1BQU1BLENBQUNBLEVBQUVBLENBQUNBLENBQUNBO2dCQUNoRUEsS0FBS0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsQ0FDWkEsT0FBT0EsQ0FBQ0EsVUFBVUEsSUFBSUEsRUFBRUEsTUFBTUEsRUFBRUEsT0FBT0EsRUFBRUEsTUFBTUE7b0JBQzdDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7d0JBQ1QsTUFBTSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7b0JBQ3JCLENBQUM7b0JBQ0QsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7d0JBQ2hCLE1BQU0sQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxvQkFBb0I7b0JBQzlFLENBQUMsR0FEd0Q7b0JBRXpELElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3RCLENBQUMsQ0FBQ0EsQ0FDSkEsS0FBS0EsQ0FBQ0EsVUFBVUEsSUFBSUEsRUFBRUEsTUFBTUEsRUFBRUEsT0FBT0EsRUFBRUEsTUFBTUE7b0JBQzNDLGNBQUcsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxJQUFJLEdBQUcsR0FBRyxHQUFHLE1BQU0sQ0FBQyxDQUFDO2dCQUNoRSxDQUFDLENBQUNBLENBQUNBO1lBQ0xBLENBQUNBO1lBQUNBLElBQUlBLENBQUNBLENBQUNBO2dCQUNOQSxNQUFNQSxDQUFDQSxRQUFRQSxHQUFHQSxJQUFJQSxDQUFDQTtnQkFDdkJBLElBQUlBLENBQUNBLE1BQU1BLENBQUNBLE1BQU1BLENBQUNBLENBQUNBO1lBQ3RCQSxDQUFDQTtRQUNIQSxDQUFDQTtJQUNIckosQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7QUFDVkEsQ0FBQ0EsRUF6RE0sVUFBVSxLQUFWLFVBQVUsUUF5RGhCOztBQzlERCxBQUNBLHlDQUR5QztBQUN6QyxJQUFPLFVBQVUsQ0F3QmhCO0FBeEJELFdBQU8sVUFBVSxFQUFDLENBQUM7SUFFakJBLEFBTUFBOzs7OztPQURHQTthQUNhQSxXQUFXQSxDQUFDQSxFQUFFQTtRQUM1QitLLEFBQ0FBLDZFQUQ2RUE7WUFDekVBLEtBQUtBLEdBQUdBLDRDQUE0Q0EsQ0FBQ0E7UUFDekRBLElBQUlBLE1BQU1BLEdBQUdBLEtBQUtBLENBQUNBLElBQUlBLENBQUNBLEVBQUVBLENBQUNBLENBQUNBO1FBQzVCQSxFQUFFQSxDQUFDQSxDQUFDQSxPQUFPQSxDQUFDQSxTQUFTQSxDQUFDQSxNQUFNQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtZQUM5QkEsSUFBSUEsRUFBRUEsR0FBR0EsQ0FBQ0EsSUFBSUEsR0FBR0EsTUFBTUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsS0FBS0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7WUFDdENBLElBQUlBLEVBQUVBLEdBQUdBLENBQUNBLElBQUlBLEdBQUdBLE1BQU1BLENBQUNBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLEtBQUtBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO1lBQ3RDQSxJQUFJQSxFQUFFQSxHQUFHQSxDQUFDQSxJQUFJQSxHQUFHQSxNQUFNQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQSxLQUFLQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtZQUN0Q0EsSUFBSUEsRUFBRUEsR0FBR0EsQ0FBQ0EsSUFBSUEsR0FBR0EsTUFBTUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsS0FBS0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7WUFDdENBLElBQUlBLE1BQU1BLEdBQUdBLEVBQUVBLEdBQUdBLEVBQUVBLEdBQUdBLEVBQUVBLEdBQUdBLEVBQUVBLENBQUNBO1lBQy9CQSxNQUFNQSxDQUFDQSxNQUFNQSxDQUFDQTtRQUNoQkEsQ0FBQ0E7UUFBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0E7WUFDTkEsTUFBTUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7UUFDWEEsQ0FBQ0E7SUFDSEEsQ0FBQ0E7SUFkZS9LLHNCQUFXQSxHQUFYQSxXQWNmQSxDQUFBQTtBQUVIQSxDQUFDQSxFQXhCTSxVQUFVLEtBQVYsVUFBVSxRQXdCaEI7O0FDekJELHlDQUF5QztBQUN6QywyQ0FBMkM7QUFDM0MsMENBQTBDO0FBQzFDLHNDQUFzQztBQUV0QyxJQUFPLFVBQVUsQ0FvRGhCO0FBcERELFdBQU8sVUFBVSxFQUFDLENBQUM7SUFFTkEsMEJBQWVBLEdBQUdBLHFCQUFVQSxDQUFDQSxpQkFBaUJBLEVBQUVBLENBQUNBLFFBQVFBLEVBQUVBLGlCQUFpQkEsRUFBRUEsZ0JBQWdCQSxFQUFFQSxpQkFBaUJBLEVBQUVBLGlCQUFpQkEsRUFBRUEsU0FBU0EsRUFBRUEsU0FBU0EsRUFBRUEsZ0JBQWdCQSxFQUFFQSxjQUFjQSxFQUFFQSxXQUFXQSxFQUFFQSxjQUFjQSxFQUFFQSxPQUFPQSxFQUFFQSxVQUFVQSxFQUFFQSxrQkFBa0JBLEVBQzNRQSxVQUFDQSxNQUFNQSxFQUFFQSxlQUFrREEsRUFBRUEsY0FBc0RBLEVBQUVBLGVBQWVBLEVBQUVBLGVBQWVBLEVBQUVBLE9BQU9BLEVBQUVBLE9BQU9BLEVBQUVBLGNBQWNBLEVBQUVBLFlBQVlBLEVBQUVBLFNBQTZCQSxFQUFFQSxZQUFZQSxFQUFFQSxLQUFLQSxFQUFFQSxRQUFRQSxFQUFFQSxnQkFBZ0JBO1FBRXJSQSxNQUFNQSxDQUFDQSxVQUFVQSxHQUFHQSxlQUFlQSxDQUFDQTtRQUNwQ0EsTUFBTUEsQ0FBQ0EsS0FBS0EsR0FBR0EsZUFBZUEsQ0FBQ0E7UUFDL0JBLE1BQU1BLENBQUNBLEdBQUdBLENBQUNBLHdCQUF3QkEsRUFBRUE7WUFDbkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN0QixDQUFDLENBQUNBLENBQUNBO1FBRUhBLE1BQU1BLENBQUNBLFdBQVdBLEdBQUdBO1lBQ25CQSxJQUFJQSxFQUFFQSxhQUFhQTtZQUNuQkEscUJBQXFCQSxFQUFFQSxLQUFLQTtZQUM1QkEsdUJBQXVCQSxFQUFFQSxLQUFLQTtZQUM5QkEsV0FBV0EsRUFBRUEsS0FBS0E7WUFDbEJBLGFBQWFBLEVBQUVBLEVBQUVBO1lBQ2pCQSxhQUFhQSxFQUFFQTtnQkFDYkEsVUFBVUEsRUFBRUEsU0FBU0EsQ0FBQ0EsTUFBTUEsRUFBRUEsQ0FBQ0EsR0FBR0EsQ0FBQ0EsSUFBSUEsRUFBRUE7YUFDMUNBO1lBQ0RBLFVBQVVBLEVBQUVBO2dCQUNWQTtvQkFDRUEsS0FBS0EsRUFBRUEsSUFBSUE7b0JBQ1hBLFdBQVdBLEVBQUVBLE1BQU1BO29CQUNuQkEsV0FBV0EsRUFBRUEsSUFBSUE7b0JBQ2pCQSxZQUFZQSxFQUFFQSxjQUFjQSxDQUFDQSxHQUFHQSxDQUFDQSxpQkFBaUJBLENBQUNBO2lCQUNwREE7Z0JBQ0RBO29CQUNFQSxLQUFLQSxFQUFFQSxRQUFRQTtvQkFDZkEsV0FBV0EsRUFBRUEsSUFBSUE7b0JBQ2pCQSxlQUFlQSxFQUFFQSxVQUFDQSxLQUFLQTt3QkFDckJBLEFBQ0FBLHVDQUR1Q0E7d0JBQ3ZDQSxNQUFNQSxDQUFDQSxVQUFVQSxDQUFDQSxXQUFXQSxDQUFDQSxLQUFLQSxDQUFDQSxNQUFNQSxDQUFDQSxDQUFDQTtvQkFDOUNBLENBQUNBO2lCQUNGQTtnQkFDREEsRUFBRUEsS0FBS0EsRUFBRUEsV0FBV0EsRUFDbEJBLFdBQVdBLEVBQUVBLE1BQU1BLEVBQ25CQSxZQUFZQSxFQUFFQSxjQUFjQSxDQUFDQSxHQUFHQSxDQUFDQSwrQkFBK0JBLENBQUNBLEVBQ2pFQSxlQUFlQSxFQUFFQSxVQUFDQSxLQUFLQTtvQkFDckJBLEFBQ0FBLHNDQURzQ0E7d0JBQ2xDQSxLQUFLQSxHQUFHQSxLQUFLQSxDQUFDQSxZQUFZQSxDQUFDQSxLQUFLQSxJQUFJQSxDQUFDQSxDQUFDQTtvQkFDMUNBLElBQUlBLEtBQUtBLEdBQUdBLEtBQUtBLENBQUNBLFlBQVlBLENBQUNBLEtBQUtBLElBQUlBLENBQUNBLENBQUNBO29CQUMxQ0EsSUFBSUEsT0FBT0EsR0FBR0EsS0FBS0EsQ0FBQ0EsWUFBWUEsQ0FBQ0EsT0FBT0EsSUFBSUEsQ0FBQ0EsQ0FBQ0E7b0JBQzlDQSxJQUFJQSxLQUFLQSxHQUFHQSxLQUFLQSxDQUFDQSxZQUFZQSxDQUFDQSxLQUFLQSxJQUFJQSxDQUFDQSxDQUFDQTtvQkFDMUNBLE1BQU1BLENBQUNBLEtBQUtBLEdBQUdBLEtBQUtBLEdBQUdBLE9BQU9BLEdBQUdBLEtBQUtBLENBQUNBO2dCQUN6Q0EsQ0FBQ0EsRUFDRkE7YUFDRkE7U0FDRkEsQ0FBQ0E7UUFFRkEsVUFBVUEsQ0FBQ0EsVUFBVUEsQ0FBQ0EsTUFBTUEsRUFBRUEsU0FBU0EsRUFBRUEsS0FBS0EsRUFBRUEsUUFBUUEsRUFBRUEsWUFBWUEsRUFBRUEsZUFBZUEsRUFBRUEsZUFBZUEsRUFBRUEsZ0JBQWdCQSxDQUFDQSxDQUFDQTtJQUM5SEEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7QUFDTkEsQ0FBQ0EsRUFwRE0sVUFBVSxLQUFWLFVBQVUsUUFvRGhCOztBQ3pERCx5Q0FBeUM7QUFDekMsMkNBQTJDO0FBRTNDLElBQU8sVUFBVSxDQXVIaEI7QUF2SEQsV0FBTyxVQUFVLEVBQUMsQ0FBQztJQUVOQSxzQ0FBMkJBLEdBQUdBLHFCQUFVQSxDQUFDQSw2QkFBNkJBLEVBQUVBLENBQUNBLFFBQVFBLEVBQUVBLGlCQUFpQkEsRUFBRUEsa0JBQWtCQSxFQUFFQSxpQkFBaUJBLEVBQUVBLFNBQVNBLEVBQUVBLFNBQVNBLEVBQUVBLGdCQUFnQkEsRUFBRUEsY0FBY0EsRUFBRUEsV0FBV0EsRUFBRUEsY0FBY0EsRUFBRUEsT0FBT0EsRUFBRUEsVUFBVUEsRUFBRUEsa0JBQWtCQSxFQUNsUkEsVUFBQ0EsTUFBTUEsRUFBRUEsZUFBaURBLEVBQUVBLGdCQUFnQkEsRUFBRUEsZUFBZUEsRUFBRUEsT0FBT0EsRUFBRUEsT0FBT0EsRUFBRUEsY0FBY0EsRUFBRUEsWUFBWUEsRUFBRUEsU0FBNkJBLEVBQUVBLFlBQVlBLEVBQUVBLEtBQUtBLEVBQUVBLFFBQVFBLEVBQUVBLGdCQUFnQkE7UUFFM05BLE1BQU1BLENBQUNBLFVBQVVBLEdBQUdBLGVBQWVBLENBQUNBO1FBQ3BDQSxNQUFNQSxDQUFDQSxLQUFLQSxHQUFHQSxlQUFlQSxDQUFDQTtRQUMvQkEsTUFBTUEsQ0FBQ0EsZ0JBQWdCQSxHQUFHQSxnQkFBZ0JBLENBQUNBO1FBQzNDQSxNQUFNQSxDQUFDQSxHQUFHQSxDQUFDQSx3QkFBd0JBLEVBQUVBO1lBQ25DLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdEIsQ0FBQyxDQUFDQSxDQUFDQTtRQUVIQSxNQUFNQSxDQUFDQSxXQUFXQSxHQUFHQTtZQUNuQkEsSUFBSUEsRUFBRUEsbUJBQW1CQTtZQUN6QkEscUJBQXFCQSxFQUFFQSxJQUFJQTtZQUMzQkEsdUJBQXVCQSxFQUFFQSxLQUFLQTtZQUM5QkEsV0FBV0EsRUFBRUEsSUFBSUE7WUFDakJBLGFBQWFBLEVBQUVBLEVBQUVBO1lBQ2pCQSxhQUFhQSxFQUFFQTtnQkFDYkEsVUFBVUEsRUFBRUEsU0FBU0EsQ0FBQ0EsTUFBTUEsRUFBRUEsQ0FBQ0EsR0FBR0EsQ0FBQ0EsSUFBSUEsRUFBRUE7YUFDMUNBO1lBQ0RBLFVBQVVBLEVBQUVBO2dCQUNWQTtvQkFDRUEsS0FBS0EsRUFBRUEsZUFBZUE7b0JBQ3RCQSxXQUFXQSxFQUFFQSxNQUFNQTtpQkFDcEJBO2dCQUNEQTtvQkFDRUEsS0FBS0EsRUFBRUEsb0JBQW9CQTtvQkFDM0JBLFdBQVdBLEVBQUVBLFdBQVdBO2lCQUN6QkE7Z0JBQ0RBO29CQUNFQSxLQUFLQSxFQUFFQSw4QkFBOEJBO29CQUNyQ0EsV0FBV0EsRUFBRUEsaUJBQWlCQTtpQkFDL0JBO2dCQUNEQTtvQkFDRUEsS0FBS0EsRUFBRUEsTUFBTUE7b0JBQ2JBLFdBQVdBLEVBQUVBLE1BQU1BO29CQUNuQkEsWUFBWUEsRUFBRUEsY0FBY0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsaUNBQWlDQSxDQUFDQTtpQkFDcEVBO2FBQ0ZBO1NBQ0ZBLENBQUNBO1FBRUZBLElBQUlBLFdBQVdBLEdBQUdBO1lBQ2hCQSxNQUFNQSxFQUFFQSxpQkFBaUJBO1lBQ3pCQSxPQUFPQSxFQUFFQSx3QkFBd0JBO1lBQ2pDQSxNQUFNQSxFQUFFQSx1QkFBdUJBO1NBQ2hDQSxDQUFDQTtRQUNGQSxNQUFNQSxDQUFDQSxVQUFVQSxHQUFHQSxVQUFDQSxTQUFnQkE7WUFDbkNBLEVBQUVBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLFNBQVNBLElBQUlBLFdBQVdBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO2dCQUNoQ0EsTUFBTUEsQ0FBQ0EsZUFBZUEsQ0FBQ0E7WUFDekJBLENBQUNBO1lBQ0RBLElBQUlBO2dCQUFDQSxNQUFNQSxDQUFDQSxXQUFXQSxDQUFDQSxTQUFTQSxDQUFDQSxHQUFHQSxnQkFBZ0JBLENBQUNBO1FBQ3hEQSxDQUFDQSxDQUFBQTtRQUVEQSxVQUFVQSxDQUFDQSxVQUFVQSxDQUFDQSxNQUFNQSxFQUFFQSxTQUFTQSxFQUFFQSxLQUFLQSxFQUFFQSxRQUFRQSxFQUFFQSxZQUFZQSxFQUFFQSxlQUFlQSxFQUFFQSxlQUFlQSxFQUFFQSxnQkFBZ0JBLENBQUNBLENBQUNBO1FBRTVIQSxNQUFNQSxDQUFDQSxZQUFZQSxHQUFHQSxVQUFDQSxRQUFRQTtZQUM3QkEsRUFBRUEsQ0FBQ0EsNEJBQTRCQSxDQUFtQ0E7Z0JBQ2hFQSxVQUFVQSxFQUFFQSxRQUFRQTtnQkFDcEJBLEtBQUtBLEVBQUVBLE9BQU9BO2dCQUNkQSxPQUFPQSxFQUFFQSxVQUFDQSxNQUFjQTtvQkFDdEJBLEVBQUVBLENBQUNBLENBQUNBLE1BQU1BLENBQUNBLENBQUNBLENBQUNBO3dCQUNYQSxTQUFTQSxjQUFjQSxDQUFDQSxRQUFRQSxFQUFFQSxJQUFJQTs0QkFDcENvSixFQUFFQSxDQUFDQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQSxDQUFDQTtnQ0FDVEEsWUFBWUEsQ0FBQ0EsSUFBSUEsRUFBRUE7b0NBQ2pCQSxjQUFjQSxDQUFDQSxRQUFRQSxFQUFFQSxRQUFRQSxDQUFDQSxLQUFLQSxFQUFFQSxDQUFDQSxDQUFDQTtnQ0FDN0NBLENBQUNBLENBQUNBLENBQUNBOzRCQUNMQSxDQUFDQTs0QkFBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0E7Z0NBQ05BLFVBQVVBLEVBQUVBLENBQUNBOzRCQUNmQSxDQUFDQTt3QkFDSEEsQ0FBQ0E7d0JBRURwSixjQUFjQSxDQUFDQSxRQUFRQSxFQUFFQSxRQUFRQSxDQUFDQSxLQUFLQSxFQUFFQSxDQUFDQSxDQUFDQTtvQkFDN0NBLENBQUNBO2dCQUNIQSxDQUFDQTtnQkFDREEsS0FBS0EsRUFBRUEsMEJBQTBCQTtnQkFDakNBLE1BQU1BLEVBQUVBLG1EQUFtREE7Z0JBQzNEQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLE9BQU9BLEVBQUVBLFlBQVlBO2dCQUNyQkEsTUFBTUEsRUFBRUEsNkNBQTZDQTtnQkFDckRBLFdBQVdBLEVBQUVBLHFCQUFxQkE7YUFDbkNBLENBQUNBLENBQUNBLElBQUlBLEVBQUVBLENBQUNBO1FBQ1pBLENBQUNBLENBQUNBO1FBRUZBLFNBQVNBLFlBQVlBLENBQUNBLFNBQVNBLEVBQUVBLFlBQVlBO1lBQzNDc0osSUFBSUEsSUFBSUEsR0FBR0EsQ0FBQ0EsU0FBU0EsSUFBSUEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsS0FBS0EsQ0FBQ0E7WUFDbkNBLEVBQUVBLENBQUNBLENBQUNBLElBQUlBLENBQUNBLENBQUNBLENBQUNBO2dCQUNUQSxPQUFPQSxDQUFDQSxHQUFHQSxDQUFDQSxvQ0FBb0NBLEdBQUdBLElBQUlBLENBQUNBLENBQUNBO2dCQUN6REEsSUFBSUEsR0FBR0EsR0FBR0EsaUNBQXNCQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQTtnQkFDdkNBLEtBQUtBLENBQUNBLE1BQU1BLENBQUNBLEdBQUdBLENBQUNBLENBQ2ZBLE9BQU9BLENBQUNBLFVBQVVBLElBQUlBLEVBQUVBLE1BQU1BLEVBQUVBLE9BQU9BLEVBQUVBLE1BQU1BO29CQUM3QyxZQUFZLEVBQUUsQ0FBQztnQkFDakIsQ0FBQyxDQUFDQSxDQUNGQSxLQUFLQSxDQUFDQSxVQUFVQSxJQUFJQSxFQUFFQSxNQUFNQSxFQUFFQSxPQUFPQSxFQUFFQSxNQUFNQTtvQkFDM0MsY0FBRyxDQUFDLElBQUksQ0FBQyx1Q0FBdUMsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLElBQUksR0FBRyxHQUFHLEdBQUcsTUFBTSxDQUFDLENBQUM7Z0JBQ3RGLENBQUMsQ0FBQ0EsQ0FBQ0E7WUFDUEEsQ0FBQ0E7WUFBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0E7Z0JBQ05BLE9BQU9BLENBQUNBLEdBQUdBLENBQUNBLGtDQUFrQ0EsR0FBR0EsT0FBT0EsQ0FBQ0EsTUFBTUEsQ0FBQ0EsU0FBU0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7WUFDOUVBLENBQUNBO1FBQ0hBLENBQUNBO1FBRUR0SixTQUFTQSxVQUFVQTtZQUNqQnFKLElBQUlBLEdBQUdBLEdBQUdBLG1DQUF3QkEsRUFBRUEsQ0FBQ0E7WUFDckNBLEtBQUtBLENBQUNBLEdBQUdBLENBQUNBLEdBQUdBLENBQUNBLENBQ1pBLE9BQU9BLENBQUNBLFVBQVVBLElBQUlBLEVBQUVBLE1BQU1BLEVBQUVBLE9BQU9BLEVBQUVBLE1BQU1BO2dCQUM3QyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO29CQUNULEFBQ0Esd0RBRHdEO29CQUN4RCxNQUFNLENBQUMsaUJBQWlCLEdBQUcsa0NBQXVCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUMvRCxNQUFNLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztvQkFDdEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDdEIsQ0FBQztZQUNILENBQUMsQ0FBQ0EsQ0FDRkEsS0FBS0EsQ0FBQ0EsVUFBVUEsSUFBSUEsRUFBRUEsTUFBTUEsRUFBRUEsT0FBT0EsRUFBRUEsTUFBTUE7Z0JBQzNDLGNBQUcsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxJQUFJLEdBQUcsR0FBRyxHQUFHLE1BQU0sQ0FBQyxDQUFDO1lBQ2hFLENBQUMsQ0FBQ0EsQ0FBQ0E7UUFDUEEsQ0FBQ0E7UUFFRHJKLFVBQVVBLEVBQUVBLENBQUNBO0lBQ2ZBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO0FBQ1JBLENBQUNBLEVBdkhNLFVBQVUsS0FBVixVQUFVLFFBdUhoQjs7QUMxSEQseUNBQXlDO0FBRXpDLElBQU8sVUFBVSxDQWtrSmhCO0FBbGtKRCxXQUFPLFVBQVUsRUFBQyxDQUFDO0lBRU5BLGlCQUFNQSxHQUNuQkE7UUFDRUEsSUFBSUEsRUFBRUEsc0NBQXNDQTtRQUM1Q0EsU0FBU0EsRUFBRUEsZ0NBQWdDQTtRQUMzQ0EsYUFBYUEsRUFBRUE7WUFDYkEsNkNBQTZDQSxFQUFFQTtnQkFDN0NBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsUUFBUUEsRUFBRUE7d0JBQ1JBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsMkJBQTJCQTtxQkFDM0NBO29CQUNEQSxXQUFXQSxFQUFFQTt3QkFDWEEsTUFBTUEsRUFBRUEsU0FBU0E7d0JBQ2pCQSxhQUFhQSxFQUFFQSxzQ0FBc0NBO3FCQUN0REE7b0JBQ0RBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSxTQUFTQTt3QkFDakJBLGFBQWFBLEVBQUVBLG1CQUFtQkE7cUJBQ25DQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEscUNBQXFDQTtxQkFDckRBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLGtFQUFrRUE7YUFDL0VBO1lBQ0RBLHlCQUF5QkEsRUFBRUE7Z0JBQ3pCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLEtBQUtBLEVBQUVBO3dCQUNMQSxNQUFNQSxFQUFFQSxPQUFPQTt3QkFDZkEsYUFBYUEsRUFBRUEsb0JBQW9CQTt3QkFDbkNBLE9BQU9BLEVBQUVBOzRCQUNQQSxNQUFNQSxFQUFFQSxRQUFRQTs0QkFDaEJBLGFBQWFBLEVBQUVBLG9CQUFvQkE7eUJBQ3BDQTtxQkFDRkE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxPQUFPQTt3QkFDZkEsYUFBYUEsRUFBRUEscUJBQXFCQTt3QkFDcENBLE9BQU9BLEVBQUVBOzRCQUNQQSxNQUFNQSxFQUFFQSxRQUFRQTs0QkFDaEJBLGFBQWFBLEVBQUVBLHFCQUFxQkE7eUJBQ3JDQTtxQkFDRkE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsOENBQThDQTthQUMzREE7WUFDREEsc0JBQXNCQSxFQUFFQTtnQkFDdEJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLE9BQU9BO3dCQUNmQSxhQUFhQSxFQUFFQSx1SEFBdUhBO3dCQUN0SUEsT0FBT0EsRUFBRUE7NEJBQ1BBLE1BQU1BLEVBQUVBLFFBQVFBOzRCQUNoQkEsYUFBYUEsRUFBRUEsdUhBQXVIQTt5QkFDdklBO3FCQUNGQTtvQkFDREEsU0FBU0EsRUFBRUE7d0JBQ1RBLE1BQU1BLEVBQUVBLE9BQU9BO3dCQUNmQSxhQUFhQSxFQUFFQSxpSUFBaUlBO3dCQUNoSkEsT0FBT0EsRUFBRUE7NEJBQ1BBLE1BQU1BLEVBQUVBLFFBQVFBOzRCQUNoQkEsYUFBYUEsRUFBRUEsaUlBQWlJQTt5QkFDakpBO3FCQUNGQTtvQkFDREEsS0FBS0EsRUFBRUE7d0JBQ0xBLE1BQU1BLEVBQUVBLE9BQU9BO3dCQUNmQSxhQUFhQSxFQUFFQSwwRUFBMEVBO3dCQUN6RkEsT0FBT0EsRUFBRUE7NEJBQ1BBLE1BQU1BLEVBQUVBLGlDQUFpQ0E7NEJBQ3pDQSxVQUFVQSxFQUFFQSx3Q0FBd0NBO3lCQUNyREE7cUJBQ0ZBO29CQUNEQSxPQUFPQSxFQUFFQTt3QkFDUEEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxtQkFBbUJBO3FCQUNuQ0E7b0JBQ0RBLGlCQUFpQkEsRUFBRUE7d0JBQ2pCQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLGtDQUFrQ0E7cUJBQ2xEQTtvQkFDREEsV0FBV0EsRUFBRUE7d0JBQ1hBLE1BQU1BLEVBQUVBLG9DQUFvQ0E7d0JBQzVDQSxVQUFVQSxFQUFFQSwyQ0FBMkNBO3FCQUN4REE7b0JBQ0RBLGVBQWVBLEVBQUVBO3dCQUNmQSxNQUFNQSxFQUFFQSxnQ0FBZ0NBO3dCQUN4Q0EsVUFBVUEsRUFBRUEsdUNBQXVDQTtxQkFDcERBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSx5RkFBeUZBO3dCQUN4R0EsV0FBV0EsRUFBRUEsRUFBRUE7d0JBQ2ZBLFNBQVNBLEVBQUVBLGlDQUFpQ0E7cUJBQzdDQTtvQkFDREEsT0FBT0EsRUFBRUE7d0JBQ1BBLE1BQU1BLEVBQUVBLE9BQU9BO3dCQUNmQSxhQUFhQSxFQUFFQSwrREFBK0RBO3dCQUM5RUEsT0FBT0EsRUFBRUE7NEJBQ1BBLE1BQU1BLEVBQUVBLHdDQUF3Q0E7NEJBQ2hEQSxVQUFVQSxFQUFFQSwrQ0FBK0NBO3lCQUM1REE7cUJBQ0ZBO29CQUNEQSxnQkFBZ0JBLEVBQUVBO3dCQUNoQkEsTUFBTUEsRUFBRUEsZ0NBQWdDQTt3QkFDeENBLFVBQVVBLEVBQUVBLHVDQUF1Q0E7cUJBQ3BEQTtvQkFDREEsV0FBV0EsRUFBRUE7d0JBQ1hBLE1BQU1BLEVBQUVBLCtDQUErQ0E7d0JBQ3ZEQSxVQUFVQSxFQUFFQSxzREFBc0RBO3FCQUNuRUE7b0JBQ0RBLGlCQUFpQkEsRUFBRUE7d0JBQ2pCQSxNQUFNQSxFQUFFQSwwQ0FBMENBO3dCQUNsREEsVUFBVUEsRUFBRUEsaURBQWlEQTtxQkFDOURBO29CQUNEQSx3QkFBd0JBLEVBQUVBO3dCQUN4QkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxzTEFBc0xBO3FCQUN0TUE7b0JBQ0RBLGNBQWNBLEVBQUVBO3dCQUNkQSxNQUFNQSxFQUFFQSxPQUFPQTt3QkFDZkEsYUFBYUEsRUFBRUEsd0VBQXdFQTt3QkFDdkZBLE9BQU9BLEVBQUVBOzRCQUNQQSxNQUFNQSxFQUFFQSxzQ0FBc0NBOzRCQUM5Q0EsVUFBVUEsRUFBRUEsNkNBQTZDQTt5QkFDMURBO3FCQUNGQTtvQkFDREEsWUFBWUEsRUFBRUE7d0JBQ1pBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsK0VBQStFQTtxQkFDL0ZBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLDJDQUEyQ0E7YUFDeERBO1lBQ0RBLDBCQUEwQkEsRUFBRUE7Z0JBQzFCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLGVBQWVBLEVBQUVBO3dCQUNmQSxNQUFNQSxFQUFFQSxTQUFTQTt3QkFDakJBLGFBQWFBLEVBQUVBLGtEQUFrREE7cUJBQ2xFQTtvQkFDREEsUUFBUUEsRUFBRUE7d0JBQ1JBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsNkJBQTZCQTtxQkFDN0NBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEsU0FBU0E7d0JBQ2pCQSxhQUFhQSxFQUFFQSx3RUFBd0VBO3FCQUN4RkE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLHVHQUF1R0E7cUJBQ3ZIQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsMkRBQTJEQTtxQkFDM0VBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLCtDQUErQ0E7YUFDNURBO1lBQ0RBLDJCQUEyQkEsRUFBRUE7Z0JBQzNCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFNBQVNBLEVBQUVBO3dCQUNUQSxNQUFNQSxFQUFFQSxnREFBZ0RBO3dCQUN4REEsVUFBVUEsRUFBRUEsdURBQXVEQTtxQkFDcEVBO29CQUNEQSxhQUFhQSxFQUFFQTt3QkFDYkEsTUFBTUEsRUFBRUEsbURBQW1EQTt3QkFDM0RBLFVBQVVBLEVBQUVBLDBEQUEwREE7cUJBQ3ZFQTtvQkFDREEsU0FBU0EsRUFBRUE7d0JBQ1RBLE1BQU1BLEVBQUVBLGdEQUFnREE7d0JBQ3hEQSxVQUFVQSxFQUFFQSx1REFBdURBO3FCQUNwRUE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsZ0RBQWdEQTthQUM3REE7WUFDREEsa0NBQWtDQSxFQUFFQTtnQkFDbENBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsV0FBV0EsRUFBRUE7d0JBQ1hBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsbURBQW1EQTtxQkFDbkVBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLHVEQUF1REE7YUFDcEVBO1lBQ0RBLHFDQUFxQ0EsRUFBRUE7Z0JBQ3JDQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLGFBQWFBLEVBQUVBO3dCQUNiQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLGtFQUFrRUE7cUJBQ2xGQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLFNBQVNBO3dCQUNqQkEsYUFBYUEsRUFBRUEsd0RBQXdEQTtxQkFDeEVBO29CQUNEQSxZQUFZQSxFQUFFQTt3QkFDWkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSw2Q0FBNkNBO3FCQUM3REE7b0JBQ0RBLFNBQVNBLEVBQUVBO3dCQUNUQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLHlEQUF5REE7cUJBQ3pFQTtvQkFDREEsUUFBUUEsRUFBRUE7d0JBQ1JBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsMkRBQTJEQTtxQkFDM0VBO29CQUNEQSxRQUFRQSxFQUFFQTt3QkFDUkEsTUFBTUEsRUFBRUEsU0FBU0E7d0JBQ2pCQSxhQUFhQSxFQUFFQSxtREFBbURBO3FCQUNuRUE7b0JBQ0RBLFdBQVdBLEVBQUVBO3dCQUNYQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLDJEQUEyREE7cUJBQzNFQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSwwREFBMERBO2FBQ3ZFQTtZQUNEQSxrQ0FBa0NBLEVBQUVBO2dCQUNsQ0EsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxRQUFRQSxFQUFFQTt3QkFDUkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxpREFBaURBO3FCQUNqRUE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsdURBQXVEQTthQUNwRUE7WUFDREEsNEJBQTRCQSxFQUFFQTtnQkFDNUJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsYUFBYUEsRUFBRUE7d0JBQ2JBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsa0VBQWtFQTtxQkFDbEZBO29CQUNEQSxPQUFPQSxFQUFFQTt3QkFDUEEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSx3QkFBd0JBO3FCQUN4Q0E7b0JBQ0RBLFNBQVNBLEVBQUVBO3dCQUNUQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLDZCQUE2QkE7cUJBQzdDQTtvQkFDREEsV0FBV0EsRUFBRUE7d0JBQ1hBLE1BQU1BLEVBQUVBLHlDQUF5Q0E7d0JBQ2pEQSxVQUFVQSxFQUFFQSxnREFBZ0RBO3FCQUM3REE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLHlGQUF5RkE7d0JBQ3hHQSxXQUFXQSxFQUFFQSxFQUFFQTt3QkFDZkEsU0FBU0EsRUFBRUEsaUNBQWlDQTtxQkFDN0NBO29CQUNEQSxPQUFPQSxFQUFFQTt3QkFDUEEsTUFBTUEsRUFBRUEsU0FBU0E7d0JBQ2pCQSxhQUFhQSxFQUFFQSxnRUFBZ0VBO3FCQUNoRkE7b0JBQ0RBLGNBQWNBLEVBQUVBO3dCQUNkQSxNQUFNQSxFQUFFQSxTQUFTQTt3QkFDakJBLGFBQWFBLEVBQUVBLHNEQUFzREE7cUJBQ3RFQTtvQkFDREEsT0FBT0EsRUFBRUE7d0JBQ1BBLE1BQU1BLEVBQUVBLHlDQUF5Q0E7d0JBQ2pEQSxVQUFVQSxFQUFFQSxnREFBZ0RBO3FCQUM3REE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsaURBQWlEQTthQUM5REE7WUFDREEsaUNBQWlDQSxFQUFFQTtnQkFDakNBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsUUFBUUEsRUFBRUE7d0JBQ1JBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsc0ZBQXNGQTtxQkFDdEdBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLHNEQUFzREE7YUFDbkVBO1lBQ0RBLDRCQUE0QkEsRUFBRUE7Z0JBQzVCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLElBQUlBLEVBQUVBO3dCQUNKQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLDRCQUE0QkE7cUJBQzVDQTtvQkFDREEsV0FBV0EsRUFBRUE7d0JBQ1hBLE1BQU1BLEVBQUVBLDBDQUEwQ0E7d0JBQ2xEQSxVQUFVQSxFQUFFQSxpREFBaURBO3FCQUM5REE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsaURBQWlEQTthQUM5REE7WUFDREEseUJBQXlCQSxFQUFFQTtnQkFDekJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsbUJBQW1CQTt3QkFDbENBLFdBQVdBLEVBQUVBLEVBQUVBO3dCQUNmQSxTQUFTQSxFQUFFQSxpQ0FBaUNBO3FCQUM3Q0E7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxTQUFTQTt3QkFDakJBLGFBQWFBLEVBQUVBLDZCQUE2QkE7cUJBQzdDQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsZ0VBQWdFQTtxQkFDaEZBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLDhDQUE4Q0E7YUFDM0RBO1lBQ0RBLDJCQUEyQkEsRUFBRUE7Z0JBQzNCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFdBQVdBLEVBQUVBO3dCQUNYQSxNQUFNQSxFQUFFQSxPQUFPQTt3QkFDZkEsYUFBYUEsRUFBRUEsNENBQTRDQTt3QkFDM0RBLE9BQU9BLEVBQUVBOzRCQUNQQSxNQUFNQSxFQUFFQSwwQ0FBMENBOzRCQUNsREEsVUFBVUEsRUFBRUEsaURBQWlEQTt5QkFDOURBO3FCQUNGQTtvQkFDREEsT0FBT0EsRUFBRUE7d0JBQ1BBLE1BQU1BLEVBQUVBLE9BQU9BO3dCQUNmQSxhQUFhQSxFQUFFQSxvREFBb0RBO3dCQUNuRUEsT0FBT0EsRUFBRUE7NEJBQ1BBLE1BQU1BLEVBQUVBLHVDQUF1Q0E7NEJBQy9DQSxVQUFVQSxFQUFFQSw4Q0FBOENBO3lCQUMzREE7cUJBQ0ZBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLGdEQUFnREE7YUFDN0RBO1lBQ0RBLHNCQUFzQkEsRUFBRUE7Z0JBQ3RCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFlBQVlBLEVBQUVBO3dCQUNaQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsSUFBSUE7d0JBQ2ZBLFVBQVVBLEVBQUVBLElBQUlBO3dCQUNoQkEsTUFBTUEsRUFBRUE7NEJBQ05BLElBQUlBO3lCQUNMQTtxQkFDRkE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsV0FBV0E7d0JBQ3RCQSxVQUFVQSxFQUFFQSxJQUFJQTtxQkFDakJBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEscUNBQXFDQTt3QkFDN0NBLFVBQVVBLEVBQUVBLDRDQUE0Q0E7cUJBQ3pEQTtvQkFDREEsU0FBU0EsRUFBRUE7d0JBQ1RBLE1BQU1BLEVBQUVBLE9BQU9BO3dCQUNmQSxhQUFhQSxFQUFFQSxxREFBcURBO3dCQUNwRUEsT0FBT0EsRUFBRUE7NEJBQ1BBLE1BQU1BLEVBQUVBLHlDQUF5Q0E7NEJBQ2pEQSxVQUFVQSxFQUFFQSxnREFBZ0RBO3lCQUM3REE7cUJBQ0ZBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLDJDQUEyQ0E7Z0JBQ3ZEQSxnQkFBZ0JBLEVBQUVBO29CQUNoQkEsNkNBQTZDQTtpQkFDOUNBO2FBQ0ZBO1lBQ0RBLDBCQUEwQkEsRUFBRUE7Z0JBQzFCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFlBQVlBLEVBQUVBO3dCQUNaQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsSUFBSUE7d0JBQ2ZBLFVBQVVBLEVBQUVBLElBQUlBO3dCQUNoQkEsTUFBTUEsRUFBRUE7NEJBQ05BLElBQUlBO3lCQUNMQTtxQkFDRkE7b0JBQ0RBLE9BQU9BLEVBQUVBO3dCQUNQQSxNQUFNQSxFQUFFQSxPQUFPQTt3QkFDZkEsYUFBYUEsRUFBRUEsbUJBQW1CQTt3QkFDbENBLE9BQU9BLEVBQUVBOzRCQUNQQSxNQUFNQSxFQUFFQSxvQ0FBb0NBOzRCQUM1Q0EsVUFBVUEsRUFBRUEsMkNBQTJDQTt5QkFDeERBO3FCQUNGQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxlQUFlQTt3QkFDMUJBLFVBQVVBLEVBQUVBLElBQUlBO3FCQUNqQkE7b0JBQ0RBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSxtQ0FBbUNBO3dCQUMzQ0EsVUFBVUEsRUFBRUEsMENBQTBDQTtxQkFDdkRBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLCtDQUErQ0E7Z0JBQzNEQSxnQkFBZ0JBLEVBQUVBO29CQUNoQkEsb0RBQW9EQTtpQkFDckRBO2FBQ0ZBO1lBQ0RBLG1CQUFtQkEsRUFBRUE7Z0JBQ25CQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLDBEQUEwREE7d0JBQ3pFQSxTQUFTQSxFQUFFQSwwQkFBMEJBO3FCQUN0Q0E7b0JBQ0RBLE9BQU9BLEVBQUVBO3dCQUNQQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLDZEQUE2REE7cUJBQzdFQTtvQkFDREEsV0FBV0EsRUFBRUE7d0JBQ1hBLE1BQU1BLEVBQUVBLHVDQUF1Q0E7d0JBQy9DQSxVQUFVQSxFQUFFQSw4Q0FBOENBO3FCQUMzREE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsd0NBQXdDQTthQUNyREE7WUFDREEseUJBQXlCQSxFQUFFQTtnQkFDekJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLDhDQUE4Q0E7d0JBQ3REQSxVQUFVQSxFQUFFQSxxREFBcURBO3FCQUNsRUE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsOENBQThDQTthQUMzREE7WUFDREEsdUJBQXVCQSxFQUFFQTtnQkFDdkJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsU0FBU0EsRUFBRUE7d0JBQ1RBLE1BQU1BLEVBQUVBLE9BQU9BO3dCQUNmQSxhQUFhQSxFQUFFQSxxSkFBcUpBO3dCQUNwS0EsT0FBT0EsRUFBRUE7NEJBQ1BBLE1BQU1BLEVBQUVBLFFBQVFBOzRCQUNoQkEsYUFBYUEsRUFBRUEscUpBQXFKQTt5QkFDcktBO3FCQUNGQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSw0Q0FBNENBO2FBQ3pEQTtZQUNEQSwwQ0FBMENBLEVBQUVBO2dCQUMxQ0EsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxRQUFRQSxFQUFFQTt3QkFDUkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSwyQkFBMkJBO3FCQUMzQ0E7b0JBQ0RBLFdBQVdBLEVBQUVBO3dCQUNYQSxNQUFNQSxFQUFFQSxTQUFTQTt3QkFDakJBLGFBQWFBLEVBQUVBLHNDQUFzQ0E7cUJBQ3REQTtvQkFDREEsUUFBUUEsRUFBRUE7d0JBQ1JBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsdUNBQXVDQTtxQkFDdkRBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEsU0FBU0E7d0JBQ2pCQSxhQUFhQSxFQUFFQSxtQkFBbUJBO3FCQUNuQ0E7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsK0RBQStEQTthQUM1RUE7WUFDREEsZ0NBQWdDQSxFQUFFQTtnQkFDaENBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsWUFBWUEsRUFBRUE7d0JBQ1pBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsZ0JBQWdCQTtxQkFDaENBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSx3Q0FBd0NBO3FCQUN4REE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEscURBQXFEQTthQUNsRUE7WUFDREEsa0NBQWtDQSxFQUFFQTtnQkFDbENBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsV0FBV0EsRUFBRUE7d0JBQ1hBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsOEJBQThCQTtxQkFDOUNBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSx3QkFBd0JBO3FCQUN4Q0E7b0JBQ0RBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSxTQUFTQTt3QkFDakJBLGFBQWFBLEVBQUVBLDJEQUEyREE7cUJBQzNFQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSx1REFBdURBO2FBQ3BFQTtZQUNEQSwwQkFBMEJBLEVBQUVBO2dCQUMxQkEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSw0Q0FBNENBO3FCQUM1REE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLG1DQUFtQ0E7cUJBQ25EQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLDJDQUEyQ0E7d0JBQ25EQSxVQUFVQSxFQUFFQSxrREFBa0RBO3FCQUMvREE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsK0NBQStDQTthQUM1REE7WUFDREEsb0JBQW9CQSxFQUFFQTtnQkFDcEJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLHFDQUFxQ0E7d0JBQzdDQSxVQUFVQSxFQUFFQSw0Q0FBNENBO3FCQUN6REE7b0JBQ0RBLFNBQVNBLEVBQUVBO3dCQUNUQSxNQUFNQSxFQUFFQSx3Q0FBd0NBO3dCQUNoREEsVUFBVUEsRUFBRUEsK0NBQStDQTtxQkFDNURBO29CQUNEQSxXQUFXQSxFQUFFQTt3QkFDWEEsTUFBTUEsRUFBRUEsMENBQTBDQTt3QkFDbERBLFVBQVVBLEVBQUVBLGlEQUFpREE7cUJBQzlEQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSx5Q0FBeUNBO2FBQ3REQTtZQUNEQSxpQ0FBaUNBLEVBQUVBO2dCQUNqQ0EsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxtQ0FBbUNBO3FCQUNuREE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsc0RBQXNEQTthQUNuRUE7WUFDREEsOEJBQThCQSxFQUFFQTtnQkFDOUJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsUUFBUUEsRUFBRUE7d0JBQ1JBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsMkJBQTJCQTtxQkFDM0NBO29CQUNEQSxLQUFLQSxFQUFFQTt3QkFDTEEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxzQkFBc0JBO3FCQUN0Q0E7b0JBQ0RBLEtBQUtBLEVBQUVBO3dCQUNMQSxNQUFNQSxFQUFFQSxTQUFTQTt3QkFDakJBLGFBQWFBLEVBQUVBLHlCQUF5QkE7cUJBQ3pDQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLFNBQVNBO3dCQUNqQkEsYUFBYUEsRUFBRUEsbUJBQW1CQTtxQkFDbkNBO29CQUNEQSxjQUFjQSxFQUFFQTt3QkFDZEEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxxQkFBcUJBO3FCQUNyQ0E7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsbURBQW1EQTthQUNoRUE7WUFDREEsc0JBQXNCQSxFQUFFQTtnQkFDdEJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsV0FBV0EsRUFBRUE7d0JBQ1hBLE1BQU1BLEVBQUVBLGtDQUFrQ0E7d0JBQzFDQSxVQUFVQSxFQUFFQSx5Q0FBeUNBO3FCQUN0REE7b0JBQ0RBLFNBQVNBLEVBQUVBO3dCQUNUQSxNQUFNQSxFQUFFQSxrQ0FBa0NBO3dCQUMxQ0EsVUFBVUEsRUFBRUEseUNBQXlDQTtxQkFDdERBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLDJDQUEyQ0E7YUFDeERBO1lBQ0RBLGlCQUFpQkEsRUFBRUE7Z0JBQ2pCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFlBQVlBLEVBQUVBO3dCQUNaQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsSUFBSUE7d0JBQ2ZBLFVBQVVBLEVBQUVBLElBQUlBO3dCQUNoQkEsTUFBTUEsRUFBRUE7NEJBQ05BLElBQUlBO3lCQUNMQTtxQkFDRkE7b0JBQ0RBLE9BQU9BLEVBQUVBO3dCQUNQQSxNQUFNQSxFQUFFQSxPQUFPQTt3QkFDZkEsYUFBYUEsRUFBRUEsaUJBQWlCQTt3QkFDaENBLE9BQU9BLEVBQUVBOzRCQUNQQSxNQUFNQSxFQUFFQSwrQ0FBK0NBOzRCQUN2REEsVUFBVUEsRUFBRUEsNkNBQTZDQTt5QkFDMURBO3FCQUNGQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxNQUFNQTt3QkFDakJBLFVBQVVBLEVBQUVBLElBQUlBO3FCQUNqQkE7b0JBQ0RBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSxtQ0FBbUNBO3dCQUMzQ0EsVUFBVUEsRUFBRUEsMENBQTBDQTtxQkFDdkRBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLG9EQUFvREE7Z0JBQ2hFQSxnQkFBZ0JBLEVBQUVBO29CQUNoQkEsb0RBQW9EQTtpQkFDckRBO2FBQ0ZBO1lBQ0RBLHFCQUFxQkEsRUFBRUE7Z0JBQ3JCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLGlCQUFpQkEsRUFBRUE7d0JBQ2pCQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLHdKQUF3SkE7cUJBQ3hLQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsNkNBQTZDQTtxQkFDN0RBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLDBDQUEwQ0E7YUFDdkRBO1lBQ0RBLGdDQUFnQ0EsRUFBRUE7Z0JBQ2hDQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLDJCQUEyQkE7cUJBQzNDQTtvQkFDREEsSUFBSUEsRUFBRUE7d0JBQ0pBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsNkJBQTZCQTtxQkFDN0NBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLHFEQUFxREE7YUFDbEVBO1lBQ0RBLCtCQUErQkEsRUFBRUE7Z0JBQy9CQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFNBQVNBLEVBQUVBO3dCQUNUQSxNQUFNQSxFQUFFQSxPQUFPQTt3QkFDZkEsYUFBYUEsRUFBRUEsOEJBQThCQTt3QkFDN0NBLE9BQU9BLEVBQUVBOzRCQUNQQSxNQUFNQSxFQUFFQSw4Q0FBOENBOzRCQUN0REEsVUFBVUEsRUFBRUEscURBQXFEQTt5QkFDbEVBO3FCQUNGQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSxvREFBb0RBO2FBQ2pFQTtZQUNEQSxpQ0FBaUNBLEVBQUVBO2dCQUNqQ0EsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxzQkFBc0JBO3FCQUN0Q0E7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsc0RBQXNEQTthQUNuRUE7WUFDREEsNEJBQTRCQSxFQUFFQTtnQkFDNUJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsNkNBQTZDQTtxQkFDN0RBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEsU0FBU0E7d0JBQ2pCQSxhQUFhQSxFQUFFQSxnRUFBZ0VBO3FCQUNoRkE7b0JBQ0RBLFFBQVFBLEVBQUVBO3dCQUNSQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLDhDQUE4Q0E7cUJBQzlEQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSxpREFBaURBO2FBQzlEQTtZQUNEQSxzQkFBc0JBLEVBQUVBO2dCQUN0QkEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxZQUFZQSxFQUFFQTt3QkFDWkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLFNBQVNBLEVBQUVBLElBQUlBO3dCQUNmQSxVQUFVQSxFQUFFQSxJQUFJQTt3QkFDaEJBLE1BQU1BLEVBQUVBOzRCQUNOQSxJQUFJQTt5QkFDTEE7cUJBQ0ZBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLFNBQVNBLEVBQUVBLFdBQVdBO3dCQUN0QkEsVUFBVUEsRUFBRUEsSUFBSUE7cUJBQ2pCQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLHFDQUFxQ0E7d0JBQzdDQSxVQUFVQSxFQUFFQSw0Q0FBNENBO3FCQUN6REE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSx3Q0FBd0NBO3dCQUNoREEsVUFBVUEsRUFBRUEsK0NBQStDQTtxQkFDNURBO29CQUNEQSxRQUFRQSxFQUFFQTt3QkFDUkEsTUFBTUEsRUFBRUEsMENBQTBDQTt3QkFDbERBLFVBQVVBLEVBQUVBLGlEQUFpREE7cUJBQzlEQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSwyQ0FBMkNBO2dCQUN2REEsZ0JBQWdCQSxFQUFFQTtvQkFDaEJBLDZDQUE2Q0E7aUJBQzlDQTthQUNGQTtZQUNEQSwwQkFBMEJBLEVBQUVBO2dCQUMxQkEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxZQUFZQSxFQUFFQTt3QkFDWkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLFNBQVNBLEVBQUVBLElBQUlBO3dCQUNmQSxVQUFVQSxFQUFFQSxJQUFJQTt3QkFDaEJBLE1BQU1BLEVBQUVBOzRCQUNOQSxJQUFJQTt5QkFDTEE7cUJBQ0ZBO29CQUNEQSxPQUFPQSxFQUFFQTt3QkFDUEEsTUFBTUEsRUFBRUEsT0FBT0E7d0JBQ2ZBLGFBQWFBLEVBQUVBLG9EQUFvREE7d0JBQ25FQSxPQUFPQSxFQUFFQTs0QkFDUEEsTUFBTUEsRUFBRUEsb0NBQW9DQTs0QkFDNUNBLFVBQVVBLEVBQUVBLDJDQUEyQ0E7eUJBQ3hEQTtxQkFDRkE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsZUFBZUE7d0JBQzFCQSxVQUFVQSxFQUFFQSxJQUFJQTtxQkFDakJBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEsbUNBQW1DQTt3QkFDM0NBLFVBQVVBLEVBQUVBLDBDQUEwQ0E7cUJBQ3ZEQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSwrQ0FBK0NBO2dCQUMzREEsZ0JBQWdCQSxFQUFFQTtvQkFDaEJBLG9EQUFvREE7aUJBQ3JEQTthQUNGQTtZQUNEQSwwQkFBMEJBLEVBQUVBO2dCQUMxQkEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxZQUFZQSxFQUFFQTt3QkFDWkEsTUFBTUEsRUFBRUEsT0FBT0E7d0JBQ2ZBLGFBQWFBLEVBQUVBLHVGQUF1RkE7d0JBQ3RHQSxPQUFPQSxFQUFFQTs0QkFDUEEsTUFBTUEsRUFBRUEsUUFBUUE7NEJBQ2hCQSxhQUFhQSxFQUFFQSx1RkFBdUZBO3lCQUN2R0E7cUJBQ0ZBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLCtDQUErQ0E7YUFDNURBO1lBQ0RBLDRCQUE0QkEsRUFBRUE7Z0JBQzVCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLE9BQU9BLEVBQUVBO3dCQUNQQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLHVEQUF1REE7cUJBQ3ZFQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSxpREFBaURBO2FBQzlEQTtZQUNEQSxpQkFBaUJBLEVBQUVBO2dCQUNqQkEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxZQUFZQSxFQUFFQTt3QkFDWkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLFNBQVNBLEVBQUVBLElBQUlBO3dCQUNmQSxVQUFVQSxFQUFFQSxJQUFJQTt3QkFDaEJBLE1BQU1BLEVBQUVBOzRCQUNOQSxJQUFJQTt5QkFDTEE7cUJBQ0ZBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLFNBQVNBLEVBQUVBLE1BQU1BO3dCQUNqQkEsVUFBVUEsRUFBRUEsSUFBSUE7cUJBQ2pCQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLHFDQUFxQ0E7d0JBQzdDQSxVQUFVQSxFQUFFQSw0Q0FBNENBO3FCQUN6REE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxtQ0FBbUNBO3dCQUMzQ0EsVUFBVUEsRUFBRUEsMENBQTBDQTtxQkFDdkRBO29CQUNEQSxRQUFRQSxFQUFFQTt3QkFDUkEsTUFBTUEsRUFBRUEscUNBQXFDQTt3QkFDN0NBLFVBQVVBLEVBQUVBLDRDQUE0Q0E7cUJBQ3pEQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSxzQ0FBc0NBO2dCQUNsREEsZ0JBQWdCQSxFQUFFQTtvQkFDaEJBLDZDQUE2Q0E7aUJBQzlDQTthQUNGQTtZQUNEQSx3QkFBd0JBLEVBQUVBO2dCQUN4QkEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxTQUFTQSxFQUFFQTt3QkFDVEEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxrQkFBa0JBO3FCQUNsQ0E7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLG1CQUFtQkE7cUJBQ25DQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSw2Q0FBNkNBO2FBQzFEQTtZQUNEQSwwQkFBMEJBLEVBQUVBO2dCQUMxQkEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxtQkFBbUJBLEVBQUVBO3dCQUNuQkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxpREFBaURBO3FCQUNqRUE7b0JBQ0RBLG9CQUFvQkEsRUFBRUE7d0JBQ3BCQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLDREQUE0REE7cUJBQzVFQTtvQkFDREEsU0FBU0EsRUFBRUE7d0JBQ1RBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsaUVBQWlFQTtxQkFDakZBO29CQUNEQSxRQUFRQSxFQUFFQTt3QkFDUkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxvREFBb0RBO3FCQUNwRUE7b0JBQ0RBLFFBQVFBLEVBQUVBO3dCQUNSQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLHlCQUF5QkE7cUJBQ3pDQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsd0JBQXdCQTtxQkFDeENBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLCtDQUErQ0E7YUFDNURBO1lBQ0RBLHFCQUFxQkEsRUFBRUE7Z0JBQ3JCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFlBQVlBLEVBQUVBO3dCQUNaQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsSUFBSUE7d0JBQ2ZBLFVBQVVBLEVBQUVBLElBQUlBO3dCQUNoQkEsTUFBTUEsRUFBRUE7NEJBQ05BLElBQUlBO3lCQUNMQTtxQkFDRkE7b0JBQ0RBLE9BQU9BLEVBQUVBO3dCQUNQQSxNQUFNQSxFQUFFQSxPQUFPQTt3QkFDZkEsYUFBYUEsRUFBRUEsZUFBZUE7d0JBQzlCQSxPQUFPQSxFQUFFQTs0QkFDUEEsTUFBTUEsRUFBRUEsK0JBQStCQTs0QkFDdkNBLFVBQVVBLEVBQUVBLHNDQUFzQ0E7eUJBQ25EQTtxQkFDRkE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsVUFBVUE7d0JBQ3JCQSxVQUFVQSxFQUFFQSxJQUFJQTtxQkFDakJBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEsbUNBQW1DQTt3QkFDM0NBLFVBQVVBLEVBQUVBLDBDQUEwQ0E7cUJBQ3ZEQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSwwQ0FBMENBO2dCQUN0REEsZ0JBQWdCQSxFQUFFQTtvQkFDaEJBLG9EQUFvREE7aUJBQ3JEQTthQUNGQTtZQUNEQSxxQkFBcUJBLEVBQUVBO2dCQUNyQkEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxZQUFZQSxFQUFFQTt3QkFDWkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxzSEFBc0hBO3FCQUN0SUE7b0JBQ0RBLFNBQVNBLEVBQUVBO3dCQUNUQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLG1DQUFtQ0E7cUJBQ25EQTtvQkFDREEsZUFBZUEsRUFBRUE7d0JBQ2ZBLE1BQU1BLEVBQUVBLFNBQVNBO3dCQUNqQkEsYUFBYUEsRUFBRUEsb0NBQW9DQTtxQkFDcERBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLDBDQUEwQ0E7YUFDdkRBO1lBQ0RBLHVCQUF1QkEsRUFBRUE7Z0JBQ3ZCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFdBQVdBLEVBQUVBO3dCQUNYQSxNQUFNQSxFQUFFQSxPQUFPQTt3QkFDZkEsYUFBYUEsRUFBRUEseUNBQXlDQTt3QkFDeERBLE9BQU9BLEVBQUVBOzRCQUNQQSxNQUFNQSxFQUFFQSxzQ0FBc0NBOzRCQUM5Q0EsVUFBVUEsRUFBRUEsNkNBQTZDQTt5QkFDMURBO3FCQUNGQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsd0VBQXdFQTt3QkFDdkZBLHNCQUFzQkEsRUFBRUE7NEJBQ3RCQSxNQUFNQSxFQUFFQSw0Q0FBNENBOzRCQUNwREEsVUFBVUEsRUFBRUEsbURBQW1EQTt5QkFDaEVBO3dCQUNEQSxVQUFVQSxFQUFFQSxtRkFBbUZBO3FCQUNoR0E7b0JBQ0RBLFlBQVlBLEVBQUVBO3dCQUNaQSxNQUFNQSxFQUFFQSxPQUFPQTt3QkFDZkEsYUFBYUEsRUFBRUEsa0NBQWtDQTt3QkFDakRBLE9BQU9BLEVBQUVBOzRCQUNQQSxNQUFNQSxFQUFFQSx3Q0FBd0NBOzRCQUNoREEsVUFBVUEsRUFBRUEsK0NBQStDQTt5QkFDNURBO3FCQUNGQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLHlDQUF5Q0E7d0JBQ2pEQSxVQUFVQSxFQUFFQSxnREFBZ0RBO3FCQUM3REE7b0JBQ0RBLE9BQU9BLEVBQUVBO3dCQUNQQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLG9EQUFvREE7cUJBQ3BFQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSw0Q0FBNENBO2FBQ3pEQTtZQUNEQSwyQkFBMkJBLEVBQUVBO2dCQUMzQkEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxRQUFRQSxFQUFFQTt3QkFDUkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSw2Q0FBNkNBO3FCQUM3REE7b0JBQ0RBLHlCQUF5QkEsRUFBRUE7d0JBQ3pCQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLGlHQUFpR0E7cUJBQ2pIQTtvQkFDREEsZUFBZUEsRUFBRUE7d0JBQ2ZBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsaUZBQWlGQTtxQkFDakdBO29CQUNEQSxrQkFBa0JBLEVBQUVBO3dCQUNsQkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSx5Q0FBeUNBO3FCQUN6REE7b0JBQ0RBLGdCQUFnQkEsRUFBRUE7d0JBQ2hCQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLHNDQUFzQ0E7cUJBQ3REQTtvQkFDREEsV0FBV0EsRUFBRUE7d0JBQ1hBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsaUNBQWlDQTtxQkFDakRBO29CQUNEQSxTQUFTQSxFQUFFQTt3QkFDVEEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSw0RkFBNEZBO3FCQUM1R0E7b0JBQ0RBLFlBQVlBLEVBQUVBO3dCQUNaQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLGtDQUFrQ0E7cUJBQ2xEQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSxnREFBZ0RBO2FBQzdEQTtZQUNEQSxnQ0FBZ0NBLEVBQUVBO2dCQUNoQ0EsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxZQUFZQSxFQUFFQTt3QkFDWkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSw2RUFBNkVBO3FCQUM3RkE7b0JBQ0RBLFdBQVdBLEVBQUVBO3dCQUNYQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLDBEQUEwREE7cUJBQzFFQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSxxREFBcURBO2FBQ2xFQTtZQUNEQSx1QkFBdUJBLEVBQUVBO2dCQUN2QkEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxhQUFhQSxFQUFFQTt3QkFDYkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSwySEFBMkhBO3dCQUMxSUEsc0JBQXNCQSxFQUFFQTs0QkFDdEJBLE1BQU1BLEVBQUVBLFFBQVFBOzRCQUNoQkEsYUFBYUEsRUFBRUEsMkhBQTJIQTt5QkFDM0lBO3dCQUNEQSxVQUFVQSxFQUFFQSx3Q0FBd0NBO3FCQUNyREE7b0JBQ0RBLG1CQUFtQkEsRUFBRUE7d0JBQ25CQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLGlGQUFpRkE7cUJBQ2pHQTtvQkFDREEsbUJBQW1CQSxFQUFFQTt3QkFDbkJBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsMkhBQTJIQTtxQkFDM0lBO29CQUNEQSxjQUFjQSxFQUFFQTt3QkFDZEEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxzR0FBc0dBO3FCQUN0SEE7b0JBQ0RBLFFBQVFBLEVBQUVBO3dCQUNSQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLGdKQUFnSkE7d0JBQy9KQSxzQkFBc0JBLEVBQUVBOzRCQUN0QkEsTUFBTUEsRUFBRUEsUUFBUUE7NEJBQ2hCQSxhQUFhQSxFQUFFQSxnSkFBZ0pBO3lCQUNoS0E7d0JBQ0RBLFVBQVVBLEVBQUVBLHdDQUF3Q0E7cUJBQ3JEQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsd0ZBQXdGQTt3QkFDdkdBLFdBQVdBLEVBQUVBLEVBQUVBO3dCQUNmQSxTQUFTQSxFQUFFQSxpQ0FBaUNBO3FCQUM3Q0E7b0JBQ0RBLFdBQVdBLEVBQUVBO3dCQUNYQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLGlFQUFpRUE7d0JBQ2hGQSxXQUFXQSxFQUFFQSxHQUFHQTt3QkFDaEJBLFNBQVNBLEVBQUVBLG9FQUFvRUE7cUJBQ2hGQTtvQkFDREEsaUJBQWlCQSxFQUFFQTt3QkFDakJBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsd0pBQXdKQTtxQkFDeEtBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSw2Q0FBNkNBO3FCQUM3REE7b0JBQ0RBLEtBQUtBLEVBQUVBO3dCQUNMQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLHVFQUF1RUE7cUJBQ3ZGQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSw0Q0FBNENBO2FBQ3pEQTtZQUNEQSw0QkFBNEJBLEVBQUVBO2dCQUM1QkEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxZQUFZQSxFQUFFQTt3QkFDWkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSw2QkFBNkJBO3FCQUM3Q0E7b0JBQ0RBLFdBQVdBLEVBQUVBO3dCQUNYQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLGtFQUFrRUE7cUJBQ2xGQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsc0JBQXNCQTtxQkFDdENBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxzQkFBc0JBO3FCQUN0Q0E7b0JBQ0RBLFdBQVdBLEVBQUVBO3dCQUNYQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLDJCQUEyQkE7cUJBQzNDQTtvQkFDREEsaUJBQWlCQSxFQUFFQTt3QkFDakJBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsMERBQTBEQTtxQkFDMUVBO29CQUNEQSxLQUFLQSxFQUFFQTt3QkFDTEEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxxQkFBcUJBO3FCQUNyQ0E7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsaURBQWlEQTthQUM5REE7WUFDREEsOENBQThDQSxFQUFFQTtnQkFDOUNBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsV0FBV0EsRUFBRUE7d0JBQ1hBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsdUVBQXVFQTtxQkFDdkZBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEsU0FBU0E7d0JBQ2pCQSxhQUFhQSxFQUFFQSxvREFBb0RBO3FCQUNwRUE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsbUVBQW1FQTthQUNoRkE7WUFDREEsZ0JBQWdCQSxFQUFFQTtnQkFDaEJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsWUFBWUEsRUFBRUE7d0JBQ1pBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxJQUFJQTt3QkFDZkEsVUFBVUEsRUFBRUEsSUFBSUE7d0JBQ2hCQSxNQUFNQSxFQUFFQTs0QkFDTkEsSUFBSUE7eUJBQ0xBO3FCQUNGQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxLQUFLQTt3QkFDaEJBLFVBQVVBLEVBQUVBLElBQUlBO3FCQUNqQkE7b0JBQ0RBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSxxQ0FBcUNBO3dCQUM3Q0EsVUFBVUEsRUFBRUEsNENBQTRDQTtxQkFDekRBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsa0NBQWtDQTt3QkFDMUNBLFVBQVVBLEVBQUVBLHlDQUF5Q0E7cUJBQ3REQTtvQkFDREEsUUFBUUEsRUFBRUE7d0JBQ1JBLE1BQU1BLEVBQUVBLG9DQUFvQ0E7d0JBQzVDQSxVQUFVQSxFQUFFQSwyQ0FBMkNBO3FCQUN4REE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEscUNBQXFDQTtnQkFDakRBLGdCQUFnQkEsRUFBRUE7b0JBQ2hCQSw2Q0FBNkNBO2lCQUM5Q0E7YUFDRkE7WUFDREEseUJBQXlCQSxFQUFFQTtnQkFDekJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsUUFBUUEsRUFBRUE7d0JBQ1JBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEseUJBQXlCQTtxQkFDekNBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSx1QkFBdUJBO3FCQUN2Q0E7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsOENBQThDQTthQUMzREE7WUFDREEsb0JBQW9CQSxFQUFFQTtnQkFDcEJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsWUFBWUEsRUFBRUE7d0JBQ1pBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxJQUFJQTt3QkFDZkEsVUFBVUEsRUFBRUEsSUFBSUE7d0JBQ2hCQSxNQUFNQSxFQUFFQTs0QkFDTkEsSUFBSUE7eUJBQ0xBO3FCQUNGQTtvQkFDREEsT0FBT0EsRUFBRUE7d0JBQ1BBLE1BQU1BLEVBQUVBLE9BQU9BO3dCQUNmQSxhQUFhQSxFQUFFQSxjQUFjQTt3QkFDN0JBLE9BQU9BLEVBQUVBOzRCQUNQQSxNQUFNQSxFQUFFQSw4QkFBOEJBOzRCQUN0Q0EsVUFBVUEsRUFBRUEscUNBQXFDQTt5QkFDbERBO3FCQUNGQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxTQUFTQTt3QkFDcEJBLFVBQVVBLEVBQUVBLElBQUlBO3FCQUNqQkE7b0JBQ0RBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSxtQ0FBbUNBO3dCQUMzQ0EsVUFBVUEsRUFBRUEsMENBQTBDQTtxQkFDdkRBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLHlDQUF5Q0E7Z0JBQ3JEQSxnQkFBZ0JBLEVBQUVBO29CQUNoQkEsb0RBQW9EQTtpQkFDckRBO2FBQ0ZBO1lBQ0RBLG9CQUFvQkEsRUFBRUE7Z0JBQ3BCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLHVCQUF1QkEsRUFBRUE7d0JBQ3ZCQSxNQUFNQSxFQUFFQSxTQUFTQTt3QkFDakJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsVUFBVUEsRUFBRUEsTUFBTUE7cUJBQ25CQTtvQkFDREEsWUFBWUEsRUFBRUE7d0JBQ1pBLE1BQU1BLEVBQUVBLE9BQU9BO3dCQUNmQSxhQUFhQSxFQUFFQSw0SkFBNEpBO3dCQUMzS0EsT0FBT0EsRUFBRUE7NEJBQ1BBLE1BQU1BLEVBQUVBLG9DQUFvQ0E7NEJBQzVDQSxVQUFVQSxFQUFFQSwyQ0FBMkNBO3lCQUN4REE7cUJBQ0ZBO29CQUNEQSxXQUFXQSxFQUFFQTt3QkFDWEEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSw4RUFBOEVBO3FCQUM5RkE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLDZCQUE2QkE7cUJBQzdDQTtvQkFDREEsYUFBYUEsRUFBRUE7d0JBQ2JBLE1BQU1BLEVBQUVBLFNBQVNBO3dCQUNqQkEsYUFBYUEsRUFBRUEsd0NBQXdDQTtxQkFDeERBO29CQUNEQSxrQkFBa0JBLEVBQUVBO3dCQUNsQkEsTUFBTUEsRUFBRUEsT0FBT0E7d0JBQ2ZBLGFBQWFBLEVBQUVBLGdHQUFnR0E7d0JBQy9HQSxPQUFPQSxFQUFFQTs0QkFDUEEsTUFBTUEsRUFBRUEsK0NBQStDQTs0QkFDdkRBLFVBQVVBLEVBQUVBLHNEQUFzREE7eUJBQ25FQTtxQkFDRkE7b0JBQ0RBLGNBQWNBLEVBQUVBO3dCQUNkQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLG9GQUFvRkE7d0JBQ25HQSxzQkFBc0JBLEVBQUVBOzRCQUN0QkEsTUFBTUEsRUFBRUEsUUFBUUE7NEJBQ2hCQSxhQUFhQSxFQUFFQSxvRkFBb0ZBO3lCQUNwR0E7d0JBQ0RBLFVBQVVBLEVBQUVBLHdDQUF3Q0E7cUJBQ3JEQTtvQkFDREEsZUFBZUEsRUFBRUE7d0JBQ2ZBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsOEVBQThFQTtxQkFDOUZBO29CQUNEQSxnQkFBZ0JBLEVBQUVBO3dCQUNoQkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxtREFBbURBO3FCQUNuRUE7b0JBQ0RBLCtCQUErQkEsRUFBRUE7d0JBQy9CQSxNQUFNQSxFQUFFQSxTQUFTQTt3QkFDakJBLGFBQWFBLEVBQUVBLG1OQUFtTkE7d0JBQ2xPQSxVQUFVQSxFQUFFQSxNQUFNQTtxQkFDbkJBO29CQUNEQSxTQUFTQSxFQUFFQTt3QkFDVEEsTUFBTUEsRUFBRUEsT0FBT0E7d0JBQ2ZBLGFBQWFBLEVBQUVBLHdFQUF3RUE7d0JBQ3ZGQSxPQUFPQSxFQUFFQTs0QkFDUEEsTUFBTUEsRUFBRUEsaUNBQWlDQTs0QkFDekNBLFVBQVVBLEVBQUVBLHdDQUF3Q0E7eUJBQ3JEQTtxQkFDRkE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEseUNBQXlDQTthQUN0REE7WUFDREEsc0JBQXNCQSxFQUFFQTtnQkFDdEJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsWUFBWUEsRUFBRUE7d0JBQ1pBLE1BQU1BLEVBQUVBLE9BQU9BO3dCQUNmQSxhQUFhQSxFQUFFQSw4QkFBOEJBO3dCQUM3Q0EsT0FBT0EsRUFBRUE7NEJBQ1BBLE1BQU1BLEVBQUVBLHVDQUF1Q0E7NEJBQy9DQSxVQUFVQSxFQUFFQSw4Q0FBOENBO3lCQUMzREE7cUJBQ0ZBO29CQUNEQSxtQkFBbUJBLEVBQUVBO3dCQUNuQkEsTUFBTUEsRUFBRUEsT0FBT0E7d0JBQ2ZBLGFBQWFBLEVBQUVBLDRCQUE0QkE7d0JBQzNDQSxPQUFPQSxFQUFFQTs0QkFDUEEsTUFBTUEsRUFBRUEsMENBQTBDQTs0QkFDbERBLFVBQVVBLEVBQUVBLGlEQUFpREE7eUJBQzlEQTtxQkFDRkE7b0JBQ0RBLFFBQVFBLEVBQUVBO3dCQUNSQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLGlGQUFpRkE7cUJBQ2pHQTtvQkFDREEsU0FBU0EsRUFBRUE7d0JBQ1RBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsa0ZBQWtGQTtxQkFDbEdBO29CQUNEQSxPQUFPQSxFQUFFQTt3QkFDUEEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSwrQkFBK0JBO3FCQUMvQ0E7b0JBQ0RBLE9BQU9BLEVBQUVBO3dCQUNQQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLG1HQUFtR0E7cUJBQ25IQTtvQkFDREEsV0FBV0EsRUFBRUE7d0JBQ1hBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsb0pBQW9KQTtxQkFDcEtBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLDJDQUEyQ0E7YUFDeERBO1lBQ0RBLDRCQUE0QkEsRUFBRUE7Z0JBQzVCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSxxQ0FBcUNBO3dCQUM3Q0EsVUFBVUEsRUFBRUEsNENBQTRDQTtxQkFDekRBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsa0NBQWtDQTt3QkFDMUNBLFVBQVVBLEVBQUVBLHlDQUF5Q0E7cUJBQ3REQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSxpREFBaURBO2FBQzlEQTtZQUNEQSxrQkFBa0JBLEVBQUVBO2dCQUNsQkEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEscUNBQXFDQTt3QkFDN0NBLFVBQVVBLEVBQUVBLDRDQUE0Q0E7cUJBQ3pEQTtvQkFDREEsU0FBU0EsRUFBRUE7d0JBQ1RBLE1BQU1BLEVBQUVBLHdDQUF3Q0E7d0JBQ2hEQSxVQUFVQSxFQUFFQSwrQ0FBK0NBO3FCQUM1REE7b0JBQ0RBLHFCQUFxQkEsRUFBRUE7d0JBQ3JCQSxNQUFNQSxFQUFFQSxTQUFTQTt3QkFDakJBLGFBQWFBLEVBQUVBLHdGQUF3RkE7d0JBQ3ZHQSxVQUFVQSxFQUFFQSxNQUFNQTtxQkFDbkJBO29CQUNEQSxXQUFXQSxFQUFFQTt3QkFDWEEsTUFBTUEsRUFBRUEsMENBQTBDQTt3QkFDbERBLFVBQVVBLEVBQUVBLGlEQUFpREE7cUJBQzlEQTtvQkFDREEsZ0JBQWdCQSxFQUFFQTt3QkFDaEJBLE1BQU1BLEVBQUVBLFNBQVNBO3dCQUNqQkEsYUFBYUEsRUFBRUEsNkVBQTZFQTt3QkFDNUZBLFVBQVVBLEVBQUVBLE1BQU1BO3FCQUNuQkE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsdUNBQXVDQTthQUNwREE7WUFDREEsNEJBQTRCQSxFQUFFQTtnQkFDNUJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsUUFBUUEsRUFBRUE7d0JBQ1JBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsMkJBQTJCQTtxQkFDM0NBO29CQUNEQSxPQUFPQSxFQUFFQTt3QkFDUEEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxrQkFBa0JBO3FCQUNsQ0E7b0JBQ0RBLFNBQVNBLEVBQUVBO3dCQUNUQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLHdGQUF3RkE7cUJBQ3hHQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLE9BQU9BO3dCQUNmQSxhQUFhQSxFQUFFQSwrQkFBK0JBO3dCQUM5Q0EsT0FBT0EsRUFBRUE7NEJBQ1BBLE1BQU1BLEVBQUVBLFFBQVFBOzRCQUNoQkEsYUFBYUEsRUFBRUEsK0JBQStCQTt5QkFDL0NBO3FCQUNGQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsMkNBQTJDQTtxQkFDM0RBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEsU0FBU0E7d0JBQ2pCQSxhQUFhQSxFQUFFQSxxREFBcURBO3FCQUNyRUE7b0JBQ0RBLFdBQVdBLEVBQUVBO3dCQUNYQSxNQUFNQSxFQUFFQSwrQ0FBK0NBO3dCQUN2REEsVUFBVUEsRUFBRUEsc0RBQXNEQTtxQkFDbkVBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSw2Q0FBNkNBO3FCQUM3REE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsaURBQWlEQTthQUM5REE7WUFDREEsa0NBQWtDQSxFQUFFQTtnQkFDbENBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsWUFBWUEsRUFBRUE7d0JBQ1pBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxJQUFJQTt3QkFDZkEsVUFBVUEsRUFBRUEsSUFBSUE7d0JBQ2hCQSxNQUFNQSxFQUFFQTs0QkFDTkEsSUFBSUE7eUJBQ0xBO3FCQUNGQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSx1QkFBdUJBO3dCQUNsQ0EsVUFBVUEsRUFBRUEsSUFBSUE7cUJBQ2pCQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLHFDQUFxQ0E7d0JBQzdDQSxVQUFVQSxFQUFFQSw0Q0FBNENBO3FCQUN6REE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxvREFBb0RBO3dCQUM1REEsVUFBVUEsRUFBRUEsMkRBQTJEQTtxQkFDeEVBO29CQUNEQSxRQUFRQSxFQUFFQTt3QkFDUkEsTUFBTUEsRUFBRUEsc0RBQXNEQTt3QkFDOURBLFVBQVVBLEVBQUVBLDZEQUE2REE7cUJBQzFFQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSx1REFBdURBO2dCQUNuRUEsZ0JBQWdCQSxFQUFFQTtvQkFDaEJBLDZDQUE2Q0E7aUJBQzlDQTthQUNGQTtZQUNEQSxzQ0FBc0NBLEVBQUVBO2dCQUN0Q0EsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxZQUFZQSxFQUFFQTt3QkFDWkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLFNBQVNBLEVBQUVBLElBQUlBO3dCQUNmQSxVQUFVQSxFQUFFQSxJQUFJQTt3QkFDaEJBLE1BQU1BLEVBQUVBOzRCQUNOQSxJQUFJQTt5QkFDTEE7cUJBQ0ZBO29CQUNEQSxPQUFPQSxFQUFFQTt3QkFDUEEsTUFBTUEsRUFBRUEsT0FBT0E7d0JBQ2ZBLGFBQWFBLEVBQUVBLGlDQUFpQ0E7d0JBQ2hEQSxPQUFPQSxFQUFFQTs0QkFDUEEsTUFBTUEsRUFBRUEsZ0RBQWdEQTs0QkFDeERBLFVBQVVBLEVBQUVBLHVEQUF1REE7eUJBQ3BFQTtxQkFDRkE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsMkJBQTJCQTt3QkFDdENBLFVBQVVBLEVBQUVBLElBQUlBO3FCQUNqQkE7b0JBQ0RBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSxtQ0FBbUNBO3dCQUMzQ0EsVUFBVUEsRUFBRUEsMENBQTBDQTtxQkFDdkRBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLDJEQUEyREE7Z0JBQ3ZFQSxnQkFBZ0JBLEVBQUVBO29CQUNoQkEsb0RBQW9EQTtpQkFDckRBO2FBQ0ZBO1lBQ0RBLHNDQUFzQ0EsRUFBRUE7Z0JBQ3RDQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSxTQUFTQTt3QkFDakJBLGFBQWFBLEVBQUVBLDJDQUEyQ0E7cUJBQzNEQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsZ0dBQWdHQTt3QkFDL0dBLHNCQUFzQkEsRUFBRUE7NEJBQ3RCQSxNQUFNQSxFQUFFQSxRQUFRQTs0QkFDaEJBLGFBQWFBLEVBQUVBLGdHQUFnR0E7eUJBQ2hIQTt3QkFDREEsVUFBVUEsRUFBRUEsd0NBQXdDQTtxQkFDckRBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEsMENBQTBDQTt3QkFDbERBLFVBQVVBLEVBQUVBLGlEQUFpREE7cUJBQzlEQTtvQkFDREEsYUFBYUEsRUFBRUE7d0JBQ2JBLE1BQU1BLEVBQUVBLDBDQUEwQ0E7d0JBQ2xEQSxVQUFVQSxFQUFFQSxpREFBaURBO3FCQUM5REE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsMkRBQTJEQTthQUN4RUE7WUFDREEsd0NBQXdDQSxFQUFFQTtnQkFDeENBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLFNBQVNBO3dCQUNqQkEsYUFBYUEsRUFBRUEsMENBQTBDQTtxQkFDMURBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLDZEQUE2REE7YUFDMUVBO1lBQ0RBLGlDQUFpQ0EsRUFBRUE7Z0JBQ2pDQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFFBQVFBLEVBQUVBO3dCQUNSQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLDZDQUE2Q0E7d0JBQzVEQSxzQkFBc0JBLEVBQUVBOzRCQUN0QkEsTUFBTUEsRUFBRUEsNENBQTRDQTs0QkFDcERBLFVBQVVBLEVBQUVBLG1EQUFtREE7eUJBQ2hFQTt3QkFDREEsVUFBVUEsRUFBRUEsbUZBQW1GQTtxQkFDaEdBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxtR0FBbUdBO3dCQUNsSEEsc0JBQXNCQSxFQUFFQTs0QkFDdEJBLE1BQU1BLEVBQUVBLDRDQUE0Q0E7NEJBQ3BEQSxVQUFVQSxFQUFFQSxtREFBbURBO3lCQUNoRUE7d0JBQ0RBLFVBQVVBLEVBQUVBLG1GQUFtRkE7cUJBQ2hHQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSxzREFBc0RBO2FBQ25FQTtZQUNEQSwyQkFBMkJBLEVBQUVBO2dCQUMzQkEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxPQUFPQSxFQUFFQTt3QkFDUEEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSwyQ0FBMkNBO3FCQUMzREE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLDBDQUEwQ0E7cUJBQzFEQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsMENBQTBDQTtxQkFDMURBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSwwQ0FBMENBO3FCQUMxREE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsZ0RBQWdEQTthQUM3REE7WUFDREEsbUJBQW1CQSxFQUFFQTtnQkFDbkJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsWUFBWUEsRUFBRUE7d0JBQ1pBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxJQUFJQTt3QkFDZkEsVUFBVUEsRUFBRUEsSUFBSUE7d0JBQ2hCQSxNQUFNQSxFQUFFQTs0QkFDTkEsSUFBSUE7eUJBQ0xBO3FCQUNGQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsa09BQWtPQTt3QkFDalBBLHNCQUFzQkEsRUFBRUE7NEJBQ3RCQSxNQUFNQSxFQUFFQSxRQUFRQTs0QkFDaEJBLGFBQWFBLEVBQUVBLGtPQUFrT0E7eUJBQ2xQQTt3QkFDREEsVUFBVUEsRUFBRUEsd0NBQXdDQTtxQkFDckRBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLFNBQVNBLEVBQUVBLFFBQVFBO3dCQUNuQkEsVUFBVUEsRUFBRUEsSUFBSUE7cUJBQ2pCQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLHFDQUFxQ0E7d0JBQzdDQSxVQUFVQSxFQUFFQSw0Q0FBNENBO3FCQUN6REE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLHVEQUF1REE7cUJBQ3ZFQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSx3Q0FBd0NBO2dCQUNwREEsZ0JBQWdCQSxFQUFFQTtvQkFDaEJBLDZDQUE2Q0E7aUJBQzlDQTthQUNGQTtZQUNEQSx1QkFBdUJBLEVBQUVBO2dCQUN2QkEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxZQUFZQSxFQUFFQTt3QkFDWkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLFNBQVNBLEVBQUVBLElBQUlBO3dCQUNmQSxVQUFVQSxFQUFFQSxJQUFJQTt3QkFDaEJBLE1BQU1BLEVBQUVBOzRCQUNOQSxJQUFJQTt5QkFDTEE7cUJBQ0ZBO29CQUNEQSxPQUFPQSxFQUFFQTt3QkFDUEEsTUFBTUEsRUFBRUEsT0FBT0E7d0JBQ2ZBLGFBQWFBLEVBQUVBLG1DQUFtQ0E7d0JBQ2xEQSxPQUFPQSxFQUFFQTs0QkFDUEEsTUFBTUEsRUFBRUEsaUNBQWlDQTs0QkFDekNBLFVBQVVBLEVBQUVBLHdDQUF3Q0E7eUJBQ3JEQTtxQkFDRkE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsWUFBWUE7d0JBQ3ZCQSxVQUFVQSxFQUFFQSxJQUFJQTtxQkFDakJBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEsbUNBQW1DQTt3QkFDM0NBLFVBQVVBLEVBQUVBLDBDQUEwQ0E7cUJBQ3ZEQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSw0Q0FBNENBO2dCQUN4REEsZ0JBQWdCQSxFQUFFQTtvQkFDaEJBLG9EQUFvREE7aUJBQ3JEQTthQUNGQTtZQUNEQSwrQkFBK0JBLEVBQUVBO2dCQUMvQkEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxZQUFZQSxFQUFFQTt3QkFDWkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSwyREFBMkRBO3FCQUMzRUE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsb0RBQW9EQTthQUNqRUE7WUFDREEsNEJBQTRCQSxFQUFFQTtnQkFDNUJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsY0FBY0EsRUFBRUE7d0JBQ2RBLE1BQU1BLEVBQUVBLHVDQUF1Q0E7d0JBQy9DQSxVQUFVQSxFQUFFQSw4Q0FBOENBO3FCQUMzREE7b0JBQ0RBLFlBQVlBLEVBQUVBO3dCQUNaQSxNQUFNQSxFQUFFQSxTQUFTQTt3QkFDakJBLGFBQWFBLEVBQUVBLHNDQUFzQ0E7cUJBQ3REQTtvQkFDREEsV0FBV0EsRUFBRUE7d0JBQ1hBLE1BQU1BLEVBQUVBLFNBQVNBO3dCQUNqQkEsYUFBYUEsRUFBRUEsMERBQTBEQTt3QkFDekVBLFVBQVVBLEVBQUVBLE1BQU1BO3FCQUNuQkE7b0JBQ0RBLGdCQUFnQkEsRUFBRUE7d0JBQ2hCQSxNQUFNQSxFQUFFQSx5Q0FBeUNBO3dCQUNqREEsVUFBVUEsRUFBRUEsZ0RBQWdEQTtxQkFDN0RBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLGlEQUFpREE7YUFDOURBO1lBQ0RBLG9CQUFvQkEsRUFBRUE7Z0JBQ3BCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFlBQVlBLEVBQUVBO3dCQUNaQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsSUFBSUE7d0JBQ2ZBLFVBQVVBLEVBQUVBLElBQUlBO3dCQUNoQkEsTUFBTUEsRUFBRUE7NEJBQ05BLElBQUlBO3lCQUNMQTtxQkFDRkE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsU0FBU0E7d0JBQ3BCQSxVQUFVQSxFQUFFQSxJQUFJQTtxQkFDakJBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEscUNBQXFDQTt3QkFDN0NBLFVBQVVBLEVBQUVBLDRDQUE0Q0E7cUJBQ3pEQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLHNDQUFzQ0E7d0JBQzlDQSxVQUFVQSxFQUFFQSw2Q0FBNkNBO3FCQUMxREE7b0JBQ0RBLFFBQVFBLEVBQUVBO3dCQUNSQSxNQUFNQSxFQUFFQSx3Q0FBd0NBO3dCQUNoREEsVUFBVUEsRUFBRUEsK0NBQStDQTtxQkFDNURBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLHlDQUF5Q0E7Z0JBQ3JEQSxnQkFBZ0JBLEVBQUVBO29CQUNoQkEsNkNBQTZDQTtpQkFDOUNBO2FBQ0ZBO1lBQ0RBLDJCQUEyQkEsRUFBRUE7Z0JBQzNCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFlBQVlBLEVBQUVBO3dCQUNaQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsSUFBSUE7d0JBQ2ZBLFVBQVVBLEVBQUVBLElBQUlBO3dCQUNoQkEsTUFBTUEsRUFBRUE7NEJBQ05BLElBQUlBO3lCQUNMQTtxQkFDRkE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsZ0JBQWdCQTt3QkFDM0JBLFVBQVVBLEVBQUVBLElBQUlBO3FCQUNqQkE7b0JBQ0RBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSxxQ0FBcUNBO3dCQUM3Q0EsVUFBVUEsRUFBRUEsNENBQTRDQTtxQkFDekRBO29CQUNEQSxTQUFTQSxFQUFFQTt3QkFDVEEsTUFBTUEsRUFBRUEsT0FBT0E7d0JBQ2ZBLGFBQWFBLEVBQUVBLDBFQUEwRUE7d0JBQ3pGQSxPQUFPQSxFQUFFQTs0QkFDUEEsTUFBTUEsRUFBRUEsMENBQTBDQTs0QkFDbERBLFVBQVVBLEVBQUVBLGlEQUFpREE7eUJBQzlEQTtxQkFDRkE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsZ0RBQWdEQTtnQkFDNURBLGdCQUFnQkEsRUFBRUE7b0JBQ2hCQSw2Q0FBNkNBO2lCQUM5Q0E7YUFDRkE7WUFDREEsK0JBQStCQSxFQUFFQTtnQkFDL0JBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsWUFBWUEsRUFBRUE7d0JBQ1pBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxJQUFJQTt3QkFDZkEsVUFBVUEsRUFBRUEsSUFBSUE7d0JBQ2hCQSxNQUFNQSxFQUFFQTs0QkFDTkEsSUFBSUE7eUJBQ0xBO3FCQUNGQTtvQkFDREEsT0FBT0EsRUFBRUE7d0JBQ1BBLE1BQU1BLEVBQUVBLE9BQU9BO3dCQUNmQSxhQUFhQSxFQUFFQSx5QkFBeUJBO3dCQUN4Q0EsT0FBT0EsRUFBRUE7NEJBQ1BBLE1BQU1BLEVBQUVBLHlDQUF5Q0E7NEJBQ2pEQSxVQUFVQSxFQUFFQSxnREFBZ0RBO3lCQUM3REE7cUJBQ0ZBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLFNBQVNBLEVBQUVBLG9CQUFvQkE7d0JBQy9CQSxVQUFVQSxFQUFFQSxJQUFJQTtxQkFDakJBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEsbUNBQW1DQTt3QkFDM0NBLFVBQVVBLEVBQUVBLDBDQUEwQ0E7cUJBQ3ZEQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSxvREFBb0RBO2dCQUNoRUEsZ0JBQWdCQSxFQUFFQTtvQkFDaEJBLG9EQUFvREE7aUJBQ3JEQTthQUNGQTtZQUNEQSx3QkFBd0JBLEVBQUVBO2dCQUN4QkEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxZQUFZQSxFQUFFQTt3QkFDWkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLFNBQVNBLEVBQUVBLElBQUlBO3dCQUNmQSxVQUFVQSxFQUFFQSxJQUFJQTt3QkFDaEJBLE1BQU1BLEVBQUVBOzRCQUNOQSxJQUFJQTt5QkFDTEE7cUJBQ0ZBO29CQUNEQSxPQUFPQSxFQUFFQTt3QkFDUEEsTUFBTUEsRUFBRUEsT0FBT0E7d0JBQ2ZBLGFBQWFBLEVBQUVBLGtCQUFrQkE7d0JBQ2pDQSxPQUFPQSxFQUFFQTs0QkFDUEEsTUFBTUEsRUFBRUEsa0NBQWtDQTs0QkFDMUNBLFVBQVVBLEVBQUVBLHlDQUF5Q0E7eUJBQ3REQTtxQkFDRkE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsYUFBYUE7d0JBQ3hCQSxVQUFVQSxFQUFFQSxJQUFJQTtxQkFDakJBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEsbUNBQW1DQTt3QkFDM0NBLFVBQVVBLEVBQUVBLDBDQUEwQ0E7cUJBQ3ZEQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSw2Q0FBNkNBO2dCQUN6REEsZ0JBQWdCQSxFQUFFQTtvQkFDaEJBLG9EQUFvREE7aUJBQ3JEQTthQUNGQTtZQUNEQSx3QkFBd0JBLEVBQUVBO2dCQUN4QkEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSw2REFBNkRBO3dCQUM1RUEsV0FBV0EsRUFBRUEsRUFBRUE7d0JBQ2ZBLFNBQVNBLEVBQUVBLGlDQUFpQ0E7cUJBQzdDQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLFNBQVNBO3dCQUNqQkEsYUFBYUEsRUFBRUEsd0RBQXdEQTtxQkFDeEVBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsU0FBU0E7d0JBQ2pCQSxhQUFhQSxFQUFFQSxpQ0FBaUNBO3FCQUNqREE7b0JBQ0RBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLHdFQUF3RUE7cUJBQ3hGQTtvQkFDREEsWUFBWUEsRUFBRUE7d0JBQ1pBLE1BQU1BLEVBQUVBLDJDQUEyQ0E7d0JBQ25EQSxVQUFVQSxFQUFFQSxrREFBa0RBO3FCQUMvREE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsNkNBQTZDQTthQUMxREE7WUFDREEsd0JBQXdCQSxFQUFFQTtnQkFDeEJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEscUJBQXFCQSxFQUFFQTt3QkFDckJBLE1BQU1BLEVBQUVBLE9BQU9BO3dCQUNmQSxhQUFhQSxFQUFFQSxpR0FBaUdBO3dCQUNoSEEsT0FBT0EsRUFBRUE7NEJBQ1BBLE1BQU1BLEVBQUVBLFFBQVFBOzRCQUNoQkEsYUFBYUEsRUFBRUEsaUdBQWlHQTt5QkFDakhBO3FCQUNGQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7cUJBQ2xCQTtvQkFDREEsT0FBT0EsRUFBRUE7d0JBQ1BBLE1BQU1BLEVBQUVBLE9BQU9BO3dCQUNmQSxhQUFhQSxFQUFFQSw4QkFBOEJBO3dCQUM3Q0EsT0FBT0EsRUFBRUE7NEJBQ1BBLE1BQU1BLEVBQUVBLHNDQUFzQ0E7NEJBQzlDQSxVQUFVQSxFQUFFQSw2Q0FBNkNBO3lCQUMxREE7cUJBQ0ZBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSw4RkFBOEZBO3dCQUM3R0Esc0JBQXNCQSxFQUFFQTs0QkFDdEJBLE1BQU1BLEVBQUVBLFFBQVFBOzRCQUNoQkEsYUFBYUEsRUFBRUEsOEZBQThGQTt5QkFDOUdBO3dCQUNEQSxVQUFVQSxFQUFFQSx3Q0FBd0NBO3FCQUNyREE7b0JBQ0RBLGlCQUFpQkEsRUFBRUE7d0JBQ2pCQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLHFGQUFxRkE7cUJBQ3JHQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEseUNBQXlDQTtxQkFDekRBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLDZDQUE2Q0E7YUFDMURBO1lBQ0RBLDBCQUEwQkEsRUFBRUE7Z0JBQzFCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLGNBQWNBLEVBQUVBO3dCQUNkQSxNQUFNQSxFQUFFQSw2Q0FBNkNBO3dCQUNyREEsVUFBVUEsRUFBRUEsb0RBQW9EQTtxQkFDakVBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLCtDQUErQ0E7YUFDNURBO1lBQ0RBLDRCQUE0QkEsRUFBRUE7Z0JBQzVCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSwyQ0FBMkNBO3dCQUNuREEsVUFBVUEsRUFBRUEsa0RBQWtEQTtxQkFDL0RBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLGlEQUFpREE7YUFDOURBO1lBQ0RBLHFCQUFxQkEsRUFBRUE7Z0JBQ3JCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFlBQVlBLEVBQUVBO3dCQUNaQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLDhDQUE4Q0E7cUJBQzlEQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsZ0JBQWdCQTtxQkFDaENBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLDBDQUEwQ0E7YUFDdkRBO1lBQ0RBLG1CQUFtQkEsRUFBRUE7Z0JBQ25CQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLHNCQUFzQkEsRUFBRUE7d0JBQ3RCQSxNQUFNQSxFQUFFQSwyREFBMkRBO3dCQUNuRUEsVUFBVUEsRUFBRUEsa0VBQWtFQTtxQkFDL0VBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEsK0NBQStDQTt3QkFDdkRBLFVBQVVBLEVBQUVBLHNEQUFzREE7cUJBQ25FQTtvQkFDREEsbUJBQW1CQSxFQUFFQTt3QkFDbkJBLE1BQU1BLEVBQUVBLHdEQUF3REE7d0JBQ2hFQSxVQUFVQSxFQUFFQSwrREFBK0RBO3FCQUM1RUE7b0JBQ0RBLFNBQVNBLEVBQUVBO3dCQUNUQSxNQUFNQSxFQUFFQSw4Q0FBOENBO3dCQUN0REEsVUFBVUEsRUFBRUEscURBQXFEQTtxQkFDbEVBO29CQUNEQSxXQUFXQSxFQUFFQTt3QkFDWEEsTUFBTUEsRUFBRUEsZ0RBQWdEQTt3QkFDeERBLFVBQVVBLEVBQUVBLHVEQUF1REE7cUJBQ3BFQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLCtDQUErQ0E7d0JBQ3ZEQSxVQUFVQSxFQUFFQSxzREFBc0RBO3FCQUNuRUE7b0JBQ0RBLE9BQU9BLEVBQUVBO3dCQUNQQSxNQUFNQSxFQUFFQSw0Q0FBNENBO3dCQUNwREEsVUFBVUEsRUFBRUEsbURBQW1EQTtxQkFDaEVBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSw0REFBNERBO3dCQUMzRUEsV0FBV0EsRUFBRUEsRUFBRUE7d0JBQ2ZBLFNBQVNBLEVBQUVBLGlDQUFpQ0E7cUJBQzdDQTtvQkFDREEsS0FBS0EsRUFBRUE7d0JBQ0xBLE1BQU1BLEVBQUVBLDBDQUEwQ0E7d0JBQ2xEQSxVQUFVQSxFQUFFQSxpREFBaURBO3FCQUM5REE7b0JBQ0RBLHVCQUF1QkEsRUFBRUE7d0JBQ3ZCQSxNQUFNQSxFQUFFQSw0REFBNERBO3dCQUNwRUEsVUFBVUEsRUFBRUEsbUVBQW1FQTtxQkFDaEZBO29CQUNEQSxLQUFLQSxFQUFFQTt3QkFDTEEsTUFBTUEsRUFBRUEsMENBQTBDQTt3QkFDbERBLFVBQVVBLEVBQUVBLGlEQUFpREE7cUJBQzlEQTtvQkFDREEsUUFBUUEsRUFBRUE7d0JBQ1JBLE1BQU1BLEVBQUVBLDZDQUE2Q0E7d0JBQ3JEQSxVQUFVQSxFQUFFQSxvREFBb0RBO3FCQUNqRUE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsd0NBQXdDQTthQUNyREE7WUFDREEsd0JBQXdCQSxFQUFFQTtnQkFDeEJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsV0FBV0EsRUFBRUE7d0JBQ1hBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsaUVBQWlFQTtxQkFDakZBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSw2QkFBNkJBO3FCQUM3Q0E7b0JBQ0RBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSxTQUFTQTt3QkFDakJBLGFBQWFBLEVBQUVBLDJCQUEyQkE7cUJBQzNDQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSw2Q0FBNkNBO2FBQzFEQTtZQUNEQSx5QkFBeUJBLEVBQUVBO2dCQUN6QkEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxzQkFBc0JBLEVBQUVBO3dCQUN0QkEsTUFBTUEsRUFBRUEsMkRBQTJEQTt3QkFDbkVBLFVBQVVBLEVBQUVBLGtFQUFrRUE7cUJBQy9FQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLCtDQUErQ0E7d0JBQ3ZEQSxVQUFVQSxFQUFFQSxzREFBc0RBO3FCQUNuRUE7b0JBQ0RBLG1CQUFtQkEsRUFBRUE7d0JBQ25CQSxNQUFNQSxFQUFFQSx3REFBd0RBO3dCQUNoRUEsVUFBVUEsRUFBRUEsK0RBQStEQTtxQkFDNUVBO29CQUNEQSxTQUFTQSxFQUFFQTt3QkFDVEEsTUFBTUEsRUFBRUEsOENBQThDQTt3QkFDdERBLFVBQVVBLEVBQUVBLHFEQUFxREE7cUJBQ2xFQTtvQkFDREEsV0FBV0EsRUFBRUE7d0JBQ1hBLE1BQU1BLEVBQUVBLGdEQUFnREE7d0JBQ3hEQSxVQUFVQSxFQUFFQSx1REFBdURBO3FCQUNwRUE7b0JBQ0RBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSwrQ0FBK0NBO3dCQUN2REEsVUFBVUEsRUFBRUEsc0RBQXNEQTtxQkFDbkVBO29CQUNEQSxPQUFPQSxFQUFFQTt3QkFDUEEsTUFBTUEsRUFBRUEsNENBQTRDQTt3QkFDcERBLFVBQVVBLEVBQUVBLG1EQUFtREE7cUJBQ2hFQTtvQkFDREEsS0FBS0EsRUFBRUE7d0JBQ0xBLE1BQU1BLEVBQUVBLDBDQUEwQ0E7d0JBQ2xEQSxVQUFVQSxFQUFFQSxpREFBaURBO3FCQUM5REE7b0JBQ0RBLHVCQUF1QkEsRUFBRUE7d0JBQ3ZCQSxNQUFNQSxFQUFFQSw0REFBNERBO3dCQUNwRUEsVUFBVUEsRUFBRUEsbUVBQW1FQTtxQkFDaEZBO29CQUNEQSxLQUFLQSxFQUFFQTt3QkFDTEEsTUFBTUEsRUFBRUEsMENBQTBDQTt3QkFDbERBLFVBQVVBLEVBQUVBLGlEQUFpREE7cUJBQzlEQTtvQkFDREEsUUFBUUEsRUFBRUE7d0JBQ1JBLE1BQU1BLEVBQUVBLDZDQUE2Q0E7d0JBQ3JEQSxVQUFVQSxFQUFFQSxvREFBb0RBO3FCQUNqRUE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsOENBQThDQTthQUMzREE7WUFDREEsMEJBQTBCQSxFQUFFQTtnQkFDMUJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsaUJBQWlCQSxFQUFFQTt3QkFDakJBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7cUJBQ2xCQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7cUJBQ2xCQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSwrQ0FBK0NBO2FBQzVEQTtZQUNEQSx3QkFBd0JBLEVBQUVBO2dCQUN4QkEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxZQUFZQSxFQUFFQTt3QkFDWkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLFNBQVNBLEVBQUVBLElBQUlBO3dCQUNmQSxVQUFVQSxFQUFFQSxJQUFJQTt3QkFDaEJBLE1BQU1BLEVBQUVBOzRCQUNOQSxJQUFJQTt5QkFDTEE7cUJBQ0ZBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsU0FBU0E7d0JBQ2pCQSxhQUFhQSxFQUFFQSxFQUFFQTtxQkFDbEJBO29CQUNEQSxTQUFTQSxFQUFFQTt3QkFDVEEsTUFBTUEsRUFBRUEsNkNBQTZDQTt3QkFDckRBLFVBQVVBLEVBQUVBLG9EQUFvREE7cUJBQ2pFQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxRQUFRQTt3QkFDbkJBLFVBQVVBLEVBQUVBLElBQUlBO3FCQUNqQkE7b0JBQ0RBLFNBQVNBLEVBQUVBO3dCQUNUQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3FCQUNsQkE7b0JBQ0RBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSx3Q0FBd0NBO3dCQUNoREEsVUFBVUEsRUFBRUEsK0NBQStDQTtxQkFDNURBO29CQUNEQSxRQUFRQSxFQUFFQTt3QkFDUkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtxQkFDbEJBO29CQUNEQSxRQUFRQSxFQUFFQTt3QkFDUkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtxQkFDbEJBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLDZDQUE2Q0E7YUFDMURBO1lBQ0RBLDZCQUE2QkEsRUFBRUE7Z0JBQzdCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLE9BQU9BLEVBQUVBO3dCQUNQQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3FCQUNsQkE7b0JBQ0RBLFNBQVNBLEVBQUVBO3dCQUNUQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3FCQUNsQkE7b0JBQ0RBLFFBQVFBLEVBQUVBO3dCQUNSQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3FCQUNsQkE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsa0RBQWtEQTthQUMvREE7WUFDREEsK0JBQStCQSxFQUFFQTtnQkFDL0JBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsUUFBUUEsRUFBRUE7d0JBQ1JBLE1BQU1BLEVBQUVBLE9BQU9BO3dCQUNmQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLE9BQU9BLEVBQUVBOzRCQUNQQSxNQUFNQSxFQUFFQSwyQ0FBMkNBOzRCQUNuREEsVUFBVUEsRUFBRUEsa0RBQWtEQTt5QkFDL0RBO3FCQUNGQTtvQkFDREEsSUFBSUEsRUFBRUE7d0JBQ0pBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7cUJBQ2xCQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7cUJBQ2xCQTtvQkFDREEsbUJBQW1CQSxFQUFFQTt3QkFDbkJBLE1BQU1BLEVBQUVBLFNBQVNBO3dCQUNqQkEsYUFBYUEsRUFBRUEsRUFBRUE7cUJBQ2xCQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSxvREFBb0RBO2FBQ2pFQTtZQUNEQSwwQkFBMEJBLEVBQUVBO2dCQUMxQkEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxZQUFZQSxFQUFFQTt3QkFDWkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtxQkFDbEJBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtxQkFDbEJBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLCtDQUErQ0E7YUFDNURBO1lBQ0RBLDRCQUE0QkEsRUFBRUE7Z0JBQzVCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLG9CQUFvQkEsRUFBRUE7d0JBQ3BCQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3FCQUNsQkE7b0JBQ0RBLHlCQUF5QkEsRUFBRUE7d0JBQ3pCQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3FCQUNsQkE7b0JBQ0RBLFlBQVlBLEVBQUVBO3dCQUNaQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3FCQUNsQkE7b0JBQ0RBLGlCQUFpQkEsRUFBRUE7d0JBQ2pCQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3FCQUNsQkE7b0JBQ0RBLFlBQVlBLEVBQUVBO3dCQUNaQSxNQUFNQSxFQUFFQSxPQUFPQTt3QkFDZkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxPQUFPQSxFQUFFQTs0QkFDUEEsTUFBTUEsRUFBRUEsZ0RBQWdEQTs0QkFDeERBLFVBQVVBLEVBQUVBLHVEQUF1REE7eUJBQ3BFQTtxQkFDRkE7b0JBQ0RBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3FCQUNsQkE7b0JBQ0RBLE9BQU9BLEVBQUVBO3dCQUNQQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3FCQUNsQkE7b0JBQ0RBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3FCQUNsQkE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsaURBQWlEQTthQUM5REE7WUFDREEsMkJBQTJCQSxFQUFFQTtnQkFDM0JBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsYUFBYUEsRUFBRUE7d0JBQ2JBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7cUJBQ2xCQTtvQkFDREEsdUJBQXVCQSxFQUFFQTt3QkFDdkJBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7cUJBQ2xCQTtvQkFDREEsNEJBQTRCQSxFQUFFQTt3QkFDNUJBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7cUJBQ2xCQTtvQkFDREEsWUFBWUEsRUFBRUE7d0JBQ1pBLE1BQU1BLEVBQUVBLE9BQU9BO3dCQUNmQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLE9BQU9BLEVBQUVBOzRCQUNQQSxNQUFNQSxFQUFFQSxnREFBZ0RBOzRCQUN4REEsVUFBVUEsRUFBRUEsdURBQXVEQTt5QkFDcEVBO3FCQUNGQTtvQkFDREEsMEJBQTBCQSxFQUFFQTt3QkFDMUJBLE1BQU1BLEVBQUVBLFNBQVNBO3dCQUNqQkEsYUFBYUEsRUFBRUEsRUFBRUE7cUJBQ2xCQTtvQkFDREEsUUFBUUEsRUFBRUE7d0JBQ1JBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7cUJBQ2xCQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSxnREFBZ0RBO2FBQzdEQTtZQUNEQSwwQkFBMEJBLEVBQUVBO2dCQUMxQkEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxZQUFZQSxFQUFFQTt3QkFDWkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtxQkFDbEJBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEsT0FBT0E7d0JBQ2ZBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsT0FBT0EsRUFBRUE7NEJBQ1BBLE1BQU1BLEVBQUVBLDhDQUE4Q0E7NEJBQ3REQSxVQUFVQSxFQUFFQSxxREFBcURBO3lCQUNsRUE7cUJBQ0ZBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEsT0FBT0E7d0JBQ2ZBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsT0FBT0EsRUFBRUE7NEJBQ1BBLE1BQU1BLEVBQUVBLDhDQUE4Q0E7NEJBQ3REQSxVQUFVQSxFQUFFQSxxREFBcURBO3lCQUNsRUE7cUJBQ0ZBO29CQUNEQSxpQkFBaUJBLEVBQUVBO3dCQUNqQkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtxQkFDbEJBO29CQUNEQSxZQUFZQSxFQUFFQTt3QkFDWkEsTUFBTUEsRUFBRUEsT0FBT0E7d0JBQ2ZBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsT0FBT0EsRUFBRUE7NEJBQ1BBLE1BQU1BLEVBQUVBLGdEQUFnREE7NEJBQ3hEQSxVQUFVQSxFQUFFQSx1REFBdURBO3lCQUNwRUE7cUJBQ0ZBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtxQkFDbEJBO29CQUNEQSxhQUFhQSxFQUFFQTt3QkFDYkEsTUFBTUEsRUFBRUEsNkNBQTZDQTt3QkFDckRBLFVBQVVBLEVBQUVBLG9EQUFvREE7cUJBQ2pFQTtvQkFDREEsT0FBT0EsRUFBRUE7d0JBQ1BBLE1BQU1BLEVBQUVBLE9BQU9BO3dCQUNmQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLE9BQU9BLEVBQUVBOzRCQUNQQSxNQUFNQSxFQUFFQSwrQ0FBK0NBOzRCQUN2REEsVUFBVUEsRUFBRUEsc0RBQXNEQTt5QkFDbkVBO3FCQUNGQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSwrQ0FBK0NBO2FBQzVEQTtZQUNEQSwyQkFBMkJBLEVBQUVBO2dCQUMzQkEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxTQUFTQSxFQUFFQTt3QkFDVEEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtxQkFDbEJBO29CQUNEQSxZQUFZQSxFQUFFQTt3QkFDWkEsTUFBTUEsRUFBRUEsT0FBT0E7d0JBQ2ZBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsT0FBT0EsRUFBRUE7NEJBQ1BBLE1BQU1BLEVBQUVBLGdEQUFnREE7NEJBQ3hEQSxVQUFVQSxFQUFFQSx1REFBdURBO3lCQUNwRUE7cUJBQ0ZBO29CQUNEQSxXQUFXQSxFQUFFQTt3QkFDWEEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtxQkFDbEJBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtxQkFDbEJBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLGdEQUFnREE7YUFDN0RBO1lBQ0RBLGlDQUFpQ0EsRUFBRUE7Z0JBQ2pDQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3FCQUNsQkE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSwwQ0FBMENBO3dCQUNsREEsVUFBVUEsRUFBRUEsaURBQWlEQTtxQkFDOURBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLHNEQUFzREE7YUFDbkVBO1lBQ0RBLGdDQUFnQ0EsRUFBRUE7Z0JBQ2hDQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFNBQVNBLEVBQUVBO3dCQUNUQSxNQUFNQSxFQUFFQSx5Q0FBeUNBO3dCQUNqREEsVUFBVUEsRUFBRUEsZ0RBQWdEQTtxQkFDN0RBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtxQkFDbEJBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLHFEQUFxREE7YUFDbEVBO1lBQ0RBLGdDQUFnQ0EsRUFBRUE7Z0JBQ2hDQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFNBQVNBLEVBQUVBO3dCQUNUQSxNQUFNQSxFQUFFQSx5Q0FBeUNBO3dCQUNqREEsVUFBVUEsRUFBRUEsZ0RBQWdEQTtxQkFDN0RBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtxQkFDbEJBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLHFEQUFxREE7YUFDbEVBO1lBQ0RBLGtDQUFrQ0EsRUFBRUE7Z0JBQ2xDQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFdBQVdBLEVBQUVBO3dCQUNYQSxNQUFNQSxFQUFFQSwrQ0FBK0NBO3dCQUN2REEsVUFBVUEsRUFBRUEsNkNBQTZDQTtxQkFDMURBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtxQkFDbEJBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLHVEQUF1REE7YUFDcEVBO1lBQ0RBLCtCQUErQkEsRUFBRUE7Z0JBQy9CQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFFBQVFBLEVBQUVBO3dCQUNSQSxNQUFNQSxFQUFFQSxTQUFTQTt3QkFDakJBLGFBQWFBLEVBQUVBLEVBQUVBO3FCQUNsQkE7b0JBQ0RBLFlBQVlBLEVBQUVBO3dCQUNaQSxNQUFNQSxFQUFFQSxPQUFPQTt3QkFDZkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxPQUFPQSxFQUFFQTs0QkFDUEEsTUFBTUEsRUFBRUEsZ0RBQWdEQTs0QkFDeERBLFVBQVVBLEVBQUVBLHVEQUF1REE7eUJBQ3BFQTtxQkFDRkE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsb0RBQW9EQTthQUNqRUE7WUFDREEsK0JBQStCQSxFQUFFQTtnQkFDL0JBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsV0FBV0EsRUFBRUE7d0JBQ1hBLE1BQU1BLEVBQUVBLHNDQUFzQ0E7d0JBQzlDQSxVQUFVQSxFQUFFQSw2Q0FBNkNBO3FCQUMxREE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsb0RBQW9EQTthQUNqRUE7WUFDREEsOEJBQThCQSxFQUFFQTtnQkFDOUJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsUUFBUUEsRUFBRUE7d0JBQ1JBLE1BQU1BLEVBQUVBLDhCQUE4QkE7d0JBQ3RDQSxVQUFVQSxFQUFFQSxzQ0FBc0NBO3FCQUNuREE7b0JBQ0RBLFFBQVFBLEVBQUVBO3dCQUNSQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3FCQUNsQkE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsbURBQW1EQTthQUNoRUE7WUFDREEsaUNBQWlDQSxFQUFFQTtnQkFDakNBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsU0FBU0EsRUFBRUE7d0JBQ1RBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7cUJBQ2xCQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSw2Q0FBNkNBO2FBQzFEQTtZQUNEQSw2QkFBNkJBLEVBQUVBO2dCQUM3QkEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxRQUFRQSxFQUFFQTt3QkFDUkEsTUFBTUEsRUFBRUEsU0FBU0E7d0JBQ2pCQSxhQUFhQSxFQUFFQSxFQUFFQTtxQkFDbEJBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsU0FBU0E7d0JBQ2pCQSxhQUFhQSxFQUFFQSxFQUFFQTtxQkFDbEJBO29CQUNEQSxRQUFRQSxFQUFFQTt3QkFDUkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtxQkFDbEJBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLGtEQUFrREE7YUFDL0RBO1lBQ0RBLDZCQUE2QkEsRUFBRUE7Z0JBQzdCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFFBQVFBLEVBQUVBO3dCQUNSQSxNQUFNQSxFQUFFQSwrQ0FBK0NBO3dCQUN2REEsVUFBVUEsRUFBRUEsNkNBQTZDQTtxQkFDMURBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSx1Q0FBdUNBO3FCQUN2REE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsNENBQTRDQTthQUN6REE7WUFDREEsZ0JBQWdCQSxFQUFFQTtnQkFDaEJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsWUFBWUEsRUFBRUE7d0JBQ1pBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxJQUFJQTt3QkFDZkEsVUFBVUEsRUFBRUEsSUFBSUE7d0JBQ2hCQSxNQUFNQSxFQUFFQTs0QkFDTkEsSUFBSUE7eUJBQ0xBO3FCQUNGQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxPQUFPQTt3QkFDbEJBLFVBQVVBLEVBQUVBLElBQUlBO3FCQUNqQkE7b0JBQ0RBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSxxQ0FBcUNBO3dCQUM3Q0EsVUFBVUEsRUFBRUEsNENBQTRDQTtxQkFDekRBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsa0NBQWtDQTt3QkFDMUNBLFVBQVVBLEVBQUVBLDBDQUEwQ0E7cUJBQ3ZEQTtvQkFDREEsUUFBUUEsRUFBRUE7d0JBQ1JBLE1BQU1BLEVBQUVBLG9DQUFvQ0E7d0JBQzVDQSxVQUFVQSxFQUFFQSw0Q0FBNENBO3FCQUN6REE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsc0NBQXNDQTtnQkFDbERBLGdCQUFnQkEsRUFBRUE7b0JBQ2hCQSw2Q0FBNkNBO2lCQUM5Q0E7YUFDRkE7WUFDREEsc0JBQXNCQSxFQUFFQTtnQkFDdEJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsWUFBWUEsRUFBRUE7d0JBQ1pBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxJQUFJQTt3QkFDZkEsVUFBVUEsRUFBRUEsSUFBSUE7d0JBQ2hCQSxNQUFNQSxFQUFFQTs0QkFDTkEsSUFBSUE7eUJBQ0xBO3FCQUNGQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxhQUFhQTt3QkFDeEJBLFVBQVVBLEVBQUVBLElBQUlBO3FCQUNqQkE7b0JBQ0RBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSxxQ0FBcUNBO3dCQUM3Q0EsVUFBVUEsRUFBRUEsNENBQTRDQTtxQkFDekRBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsd0NBQXdDQTt3QkFDaERBLFVBQVVBLEVBQUVBLGdEQUFnREE7cUJBQzdEQTtvQkFDREEsUUFBUUEsRUFBRUE7d0JBQ1JBLE1BQU1BLEVBQUVBLDBDQUEwQ0E7d0JBQ2xEQSxVQUFVQSxFQUFFQSxrREFBa0RBO3FCQUMvREE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsNENBQTRDQTtnQkFDeERBLGdCQUFnQkEsRUFBRUE7b0JBQ2hCQSw2Q0FBNkNBO2lCQUM5Q0E7YUFDRkE7WUFDREEsMEJBQTBCQSxFQUFFQTtnQkFDMUJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsWUFBWUEsRUFBRUE7d0JBQ1pBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxJQUFJQTt3QkFDZkEsVUFBVUEsRUFBRUEsSUFBSUE7d0JBQ2hCQSxNQUFNQSxFQUFFQTs0QkFDTkEsSUFBSUE7eUJBQ0xBO3FCQUNGQTtvQkFDREEsT0FBT0EsRUFBRUE7d0JBQ1BBLE1BQU1BLEVBQUVBLE9BQU9BO3dCQUNmQSxhQUFhQSxFQUFFQSx1QkFBdUJBO3dCQUN0Q0EsT0FBT0EsRUFBRUE7NEJBQ1BBLE1BQU1BLEVBQUVBLG9DQUFvQ0E7NEJBQzVDQSxVQUFVQSxFQUFFQSw0Q0FBNENBO3lCQUN6REE7cUJBQ0ZBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLFNBQVNBLEVBQUVBLGlCQUFpQkE7d0JBQzVCQSxVQUFVQSxFQUFFQSxJQUFJQTtxQkFDakJBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEsbUNBQW1DQTt3QkFDM0NBLFVBQVVBLEVBQUVBLDBDQUEwQ0E7cUJBQ3ZEQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSxnREFBZ0RBO2dCQUM1REEsZ0JBQWdCQSxFQUFFQTtvQkFDaEJBLG9EQUFvREE7aUJBQ3JEQTthQUNGQTtZQUNEQSwwQkFBMEJBLEVBQUVBO2dCQUMxQkEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxRQUFRQSxFQUFFQTt3QkFDUkEsTUFBTUEsRUFBRUEsb0NBQW9DQTt3QkFDNUNBLFVBQVVBLEVBQUVBLDRDQUE0Q0E7cUJBQ3pEQTtvQkFDREEsV0FBV0EsRUFBRUE7d0JBQ1hBLE1BQU1BLEVBQUVBLCtDQUErQ0E7d0JBQ3ZEQSxVQUFVQSxFQUFFQSxzREFBc0RBO3FCQUNuRUE7b0JBQ0RBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSx1Q0FBdUNBO3dCQUMvQ0EsVUFBVUEsRUFBRUEsK0NBQStDQTtxQkFDNURBO29CQUNEQSxnQkFBZ0JBLEVBQUVBO3dCQUNoQkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSx5RUFBeUVBO3FCQUN6RkE7b0JBQ0RBLFFBQVFBLEVBQUVBO3dCQUNSQSxNQUFNQSxFQUFFQSxvQ0FBb0NBO3dCQUM1Q0EsVUFBVUEsRUFBRUEsNENBQTRDQTtxQkFDekRBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEsc0NBQXNDQTt3QkFDOUNBLFVBQVVBLEVBQUVBLDhDQUE4Q0E7cUJBQzNEQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLE9BQU9BO3dCQUNmQSxhQUFhQSxFQUFFQSw0RkFBNEZBO3dCQUMzR0EsT0FBT0EsRUFBRUE7NEJBQ1BBLE1BQU1BLEVBQUVBLDJDQUEyQ0E7NEJBQ25EQSxVQUFVQSxFQUFFQSxtREFBbURBO3lCQUNoRUE7cUJBQ0ZBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLGdEQUFnREE7YUFDN0RBO1lBQ0RBLDRCQUE0QkEsRUFBRUE7Z0JBQzVCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLGFBQWFBLEVBQUVBO3dCQUNiQSxNQUFNQSxFQUFFQSxTQUFTQTt3QkFDakJBLGFBQWFBLEVBQUVBLHFEQUFxREE7cUJBQ3JFQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSxrREFBa0RBO2FBQy9EQTtZQUNEQSxvQkFBb0JBLEVBQUVBO2dCQUNwQkEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxZQUFZQSxFQUFFQTt3QkFDWkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLFNBQVNBLEVBQUVBLElBQUlBO3dCQUNmQSxVQUFVQSxFQUFFQSxJQUFJQTt3QkFDaEJBLE1BQU1BLEVBQUVBOzRCQUNOQSxJQUFJQTt5QkFDTEE7cUJBQ0ZBO29CQUNEQSxPQUFPQSxFQUFFQTt3QkFDUEEsTUFBTUEsRUFBRUEsT0FBT0E7d0JBQ2ZBLGFBQWFBLEVBQUVBLGdCQUFnQkE7d0JBQy9CQSxPQUFPQSxFQUFFQTs0QkFDUEEsTUFBTUEsRUFBRUEsOEJBQThCQTs0QkFDdENBLFVBQVVBLEVBQUVBLHNDQUFzQ0E7eUJBQ25EQTtxQkFDRkE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsV0FBV0E7d0JBQ3RCQSxVQUFVQSxFQUFFQSxJQUFJQTtxQkFDakJBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEsbUNBQW1DQTt3QkFDM0NBLFVBQVVBLEVBQUVBLDBDQUEwQ0E7cUJBQ3ZEQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSwwQ0FBMENBO2dCQUN0REEsZ0JBQWdCQSxFQUFFQTtvQkFDaEJBLG9EQUFvREE7aUJBQ3JEQTthQUNGQTtZQUNEQSxzQkFBc0JBLEVBQUVBO2dCQUN0QkEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxZQUFZQSxFQUFFQTt3QkFDWkEsTUFBTUEsRUFBRUEsK0NBQStDQTt3QkFDdkRBLFVBQVVBLEVBQUVBLHNEQUFzREE7cUJBQ25FQTtvQkFDREEsSUFBSUEsRUFBRUE7d0JBQ0pBLE1BQU1BLEVBQUVBLDBDQUEwQ0E7d0JBQ2xEQSxVQUFVQSxFQUFFQSxpREFBaURBO3FCQUM5REE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsNENBQTRDQTthQUN6REE7WUFDREEsdUJBQXVCQSxFQUFFQTtnQkFDdkJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsWUFBWUEsRUFBRUE7d0JBQ1pBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxJQUFJQTt3QkFDZkEsVUFBVUEsRUFBRUEsSUFBSUE7d0JBQ2hCQSxNQUFNQSxFQUFFQTs0QkFDTkEsSUFBSUE7eUJBQ0xBO3FCQUNGQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxjQUFjQTt3QkFDekJBLFVBQVVBLEVBQUVBLElBQUlBO3FCQUNqQkE7b0JBQ0RBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSxxQ0FBcUNBO3dCQUM3Q0EsVUFBVUEsRUFBRUEsNENBQTRDQTtxQkFDekRBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEsdUNBQXVDQTt3QkFDL0NBLFVBQVVBLEVBQUVBLCtDQUErQ0E7cUJBQzVEQTtvQkFDREEsa0JBQWtCQSxFQUFFQTt3QkFDbEJBLE1BQU1BLEVBQUVBLDBDQUEwQ0E7d0JBQ2xEQSxVQUFVQSxFQUFFQSxpREFBaURBO3FCQUM5REE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsNkNBQTZDQTtnQkFDekRBLGdCQUFnQkEsRUFBRUE7b0JBQ2hCQSw2Q0FBNkNBO2lCQUM5Q0E7YUFDRkE7WUFDREEsc0JBQXNCQSxFQUFFQTtnQkFDdEJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsWUFBWUEsRUFBRUE7d0JBQ1pBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsMEVBQTBFQTtxQkFDMUZBO29CQUNEQSxLQUFLQSxFQUFFQTt3QkFDTEEsTUFBTUEsRUFBRUEsdUNBQXVDQTt3QkFDL0NBLFVBQVVBLEVBQUVBLCtDQUErQ0E7cUJBQzVEQTtvQkFDREEsY0FBY0EsRUFBRUE7d0JBQ2RBLE1BQU1BLEVBQUVBLCtDQUErQ0E7d0JBQ3ZEQSxVQUFVQSxFQUFFQSxzREFBc0RBO3FCQUNuRUE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLDBDQUEwQ0E7cUJBQzFEQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSw0Q0FBNENBO2FBQ3pEQTtZQUNEQSxvQkFBb0JBLEVBQUVBO2dCQUNwQkEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxRQUFRQSxFQUFFQTt3QkFDUkEsTUFBTUEsRUFBRUEsb0NBQW9DQTt3QkFDNUNBLFVBQVVBLEVBQUVBLDRDQUE0Q0E7cUJBQ3pEQTtvQkFDREEsV0FBV0EsRUFBRUE7d0JBQ1hBLE1BQU1BLEVBQUVBLCtDQUErQ0E7d0JBQ3ZEQSxVQUFVQSxFQUFFQSxzREFBc0RBO3FCQUNuRUE7b0JBQ0RBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSx1Q0FBdUNBO3dCQUMvQ0EsVUFBVUEsRUFBRUEsK0NBQStDQTtxQkFDNURBO29CQUNEQSxnQkFBZ0JBLEVBQUVBO3dCQUNoQkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSx5RUFBeUVBO3FCQUN6RkE7b0JBQ0RBLFFBQVFBLEVBQUVBO3dCQUNSQSxNQUFNQSxFQUFFQSxvQ0FBb0NBO3dCQUM1Q0EsVUFBVUEsRUFBRUEsNENBQTRDQTtxQkFDekRBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEsc0NBQXNDQTt3QkFDOUNBLFVBQVVBLEVBQUVBLDhDQUE4Q0E7cUJBQzNEQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSwwQ0FBMENBO2FBQ3ZEQTtZQUNEQSxzQkFBc0JBLEVBQUVBO2dCQUN0QkEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxXQUFXQSxFQUFFQTt3QkFDWEEsTUFBTUEsRUFBRUEsU0FBU0E7d0JBQ2pCQSxhQUFhQSxFQUFFQSw0REFBNERBO3FCQUM1RUE7b0JBQ0RBLHFCQUFxQkEsRUFBRUE7d0JBQ3JCQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLDZEQUE2REE7cUJBQzdFQTtvQkFDREEsUUFBUUEsRUFBRUE7d0JBQ1JBLE1BQU1BLEVBQUVBLDBDQUEwQ0E7d0JBQ2xEQSxVQUFVQSxFQUFFQSxpREFBaURBO3FCQUM5REE7b0JBQ0RBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSxTQUFTQTt3QkFDakJBLGFBQWFBLEVBQUVBLDJDQUEyQ0E7d0JBQzFEQSxVQUFVQSxFQUFFQSxNQUFNQTtxQkFDbkJBO29CQUNEQSxTQUFTQSxFQUFFQTt3QkFDVEEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSwrRUFBK0VBO3FCQUMvRkE7b0JBQ0RBLE9BQU9BLEVBQUVBO3dCQUNQQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLHVDQUF1Q0E7cUJBQ3ZEQTtvQkFDREEsZ0JBQWdCQSxFQUFFQTt3QkFDaEJBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsc0RBQXNEQTtxQkFDdEVBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLDRDQUE0Q0E7YUFDekRBO1lBQ0RBLHdCQUF3QkEsRUFBRUE7Z0JBQ3hCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLGdCQUFnQkEsRUFBRUE7d0JBQ2hCQSxNQUFNQSxFQUFFQSw0Q0FBNENBO3dCQUNwREEsVUFBVUEsRUFBRUEsb0RBQW9EQTtxQkFDakVBO29CQUNEQSxnQkFBZ0JBLEVBQUVBO3dCQUNoQkEsTUFBTUEsRUFBRUEsNENBQTRDQTt3QkFDcERBLFVBQVVBLEVBQUVBLG9EQUFvREE7cUJBQ2pFQTtvQkFDREEsZ0JBQWdCQSxFQUFFQTt3QkFDaEJBLE1BQU1BLEVBQUVBLDRDQUE0Q0E7d0JBQ3BEQSxVQUFVQSxFQUFFQSxvREFBb0RBO3FCQUNqRUE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLHVDQUF1Q0E7cUJBQ3ZEQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSw4Q0FBOENBO2FBQzNEQTtZQUNEQSw2QkFBNkJBLEVBQUVBO2dCQUM3QkEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxTQUFTQSxFQUFFQTt3QkFDVEEsTUFBTUEsRUFBRUEsdUNBQXVDQTt3QkFDL0NBLFVBQVVBLEVBQUVBLCtDQUErQ0E7cUJBQzVEQTtvQkFDREEsUUFBUUEsRUFBRUE7d0JBQ1JBLE1BQU1BLEVBQUVBLHVDQUF1Q0E7d0JBQy9DQSxVQUFVQSxFQUFFQSwrQ0FBK0NBO3FCQUM1REE7b0JBQ0RBLGFBQWFBLEVBQUVBO3dCQUNiQSxNQUFNQSxFQUFFQSwyQ0FBMkNBO3dCQUNuREEsVUFBVUEsRUFBRUEsbURBQW1EQTtxQkFDaEVBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSx1QkFBdUJBO3FCQUN2Q0E7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsbURBQW1EQTthQUNoRUE7WUFDREEsOEJBQThCQSxFQUFFQTtnQkFDOUJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsS0FBS0EsRUFBRUE7d0JBQ0xBLE1BQU1BLEVBQUVBLE9BQU9BO3dCQUNmQSxhQUFhQSxFQUFFQSw0RUFBNEVBO3dCQUMzRkEsT0FBT0EsRUFBRUE7NEJBQ1BBLE1BQU1BLEVBQUVBLGlDQUFpQ0E7NEJBQ3pDQSxVQUFVQSxFQUFFQSx3Q0FBd0NBO3lCQUNyREE7cUJBQ0ZBO29CQUNEQSxvQkFBb0JBLEVBQUVBO3dCQUNwQkEsTUFBTUEsRUFBRUEsU0FBU0E7d0JBQ2pCQSxhQUFhQSxFQUFFQSxtRkFBbUZBO3FCQUNuR0E7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSwwQ0FBMENBO3dCQUNsREEsVUFBVUEsRUFBRUEsaURBQWlEQTtxQkFDOURBO29CQUNEQSxZQUFZQSxFQUFFQTt3QkFDWkEsTUFBTUEsRUFBRUEsK0NBQStDQTt3QkFDdkRBLFVBQVVBLEVBQUVBLHNEQUFzREE7cUJBQ25FQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSxvREFBb0RBO2FBQ2pFQTtZQUNEQSw4QkFBOEJBLEVBQUVBO2dCQUM5QkEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsMENBQTBDQTt3QkFDbERBLFVBQVVBLEVBQUVBLGlEQUFpREE7cUJBQzlEQTtvQkFDREEsU0FBU0EsRUFBRUE7d0JBQ1RBLE1BQU1BLEVBQUVBLFNBQVNBO3dCQUNqQkEsYUFBYUEsRUFBRUEsU0FBU0E7cUJBQ3pCQTtvQkFDREEsWUFBWUEsRUFBRUE7d0JBQ1pBLE1BQU1BLEVBQUVBLCtDQUErQ0E7d0JBQ3ZEQSxVQUFVQSxFQUFFQSxzREFBc0RBO3FCQUNuRUE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsb0RBQW9EQTthQUNqRUE7WUFDREEseUJBQXlCQSxFQUFFQTtnQkFDekJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsS0FBS0EsRUFBRUE7d0JBQ0xBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsd0NBQXdDQTtxQkFDeERBO29CQUNEQSxLQUFLQSxFQUFFQTt3QkFDTEEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSx5Q0FBeUNBO3FCQUN6REE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsK0NBQStDQTthQUM1REE7WUFDREEsNEJBQTRCQSxFQUFFQTtnQkFDNUJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsUUFBUUEsRUFBRUE7d0JBQ1JBLE1BQU1BLEVBQUVBLDBDQUEwQ0E7d0JBQ2xEQSxVQUFVQSxFQUFFQSxrREFBa0RBO3FCQUMvREE7b0JBQ0RBLFFBQVFBLEVBQUVBO3dCQUNSQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLG9DQUFvQ0E7cUJBQ3BEQTtvQkFDREEsV0FBV0EsRUFBRUE7d0JBQ1hBLE1BQU1BLEVBQUVBLDBDQUEwQ0E7d0JBQ2xEQSxVQUFVQSxFQUFFQSxrREFBa0RBO3FCQUMvREE7b0JBQ0RBLFNBQVNBLEVBQUVBO3dCQUNUQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLGtDQUFrQ0E7cUJBQ2xEQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSxrREFBa0RBO2FBQy9EQTtZQUNEQSw2QkFBNkJBLEVBQUVBO2dCQUM3QkEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxzQkFBc0JBLEVBQUVBO3dCQUN0QkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxzREFBc0RBO3FCQUN0RUE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsbURBQW1EQTthQUNoRUE7WUFDREEsOEJBQThCQSxFQUFFQTtnQkFDOUJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsS0FBS0EsRUFBRUE7d0JBQ0xBLE1BQU1BLEVBQUVBLE9BQU9BO3dCQUNmQSxhQUFhQSxFQUFFQSw0RUFBNEVBO3dCQUMzRkEsT0FBT0EsRUFBRUE7NEJBQ1BBLE1BQU1BLEVBQUVBLGlDQUFpQ0E7NEJBQ3pDQSxVQUFVQSxFQUFFQSx3Q0FBd0NBO3lCQUNyREE7cUJBQ0ZBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsMENBQTBDQTt3QkFDbERBLFVBQVVBLEVBQUVBLGlEQUFpREE7cUJBQzlEQTtvQkFDREEsYUFBYUEsRUFBRUE7d0JBQ2JBLE1BQU1BLEVBQUVBLFNBQVNBO3dCQUNqQkEsYUFBYUEsRUFBRUEsMERBQTBEQTtxQkFDMUVBO29CQUNEQSxZQUFZQSxFQUFFQTt3QkFDWkEsTUFBTUEsRUFBRUEsK0NBQStDQTt3QkFDdkRBLFVBQVVBLEVBQUVBLHNEQUFzREE7cUJBQ25FQTtvQkFDREEsU0FBU0EsRUFBRUE7d0JBQ1RBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsZ0NBQWdDQTtxQkFDaERBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLG9EQUFvREE7YUFDakVBO1lBQ0RBLDRCQUE0QkEsRUFBRUE7Z0JBQzVCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLE9BQU9BLEVBQUVBO3dCQUNQQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLG1DQUFtQ0E7cUJBQ25EQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsaUNBQWlDQTtxQkFDakRBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLGtEQUFrREE7YUFDL0RBO1lBQ0RBLHlCQUF5QkEsRUFBRUE7Z0JBQ3pCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLEtBQUtBLEVBQUVBO3dCQUNMQSxNQUFNQSxFQUFFQSwwQ0FBMENBO3dCQUNsREEsVUFBVUEsRUFBRUEsa0RBQWtEQTtxQkFDL0RBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSwwQkFBMEJBO3FCQUMxQ0E7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsK0NBQStDQTthQUM1REE7WUFDREEseUJBQXlCQSxFQUFFQTtnQkFDekJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsUUFBUUEsRUFBRUE7d0JBQ1JBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsa0NBQWtDQTtxQkFDbERBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLCtDQUErQ0E7YUFDNURBO1lBQ0RBLDBDQUEwQ0EsRUFBRUE7Z0JBQzFDQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFNBQVNBLEVBQUVBO3dCQUNUQSxNQUFNQSxFQUFFQSxPQUFPQTt3QkFDZkEsYUFBYUEsRUFBRUEsZ0ZBQWdGQTt3QkFDL0ZBLE9BQU9BLEVBQUVBOzRCQUNQQSxNQUFNQSxFQUFFQSxRQUFRQTs0QkFDaEJBLGFBQWFBLEVBQUVBLGdGQUFnRkE7eUJBQ2hHQTtxQkFDRkE7b0JBQ0RBLGFBQWFBLEVBQUVBO3dCQUNiQSxNQUFNQSxFQUFFQSxPQUFPQTt3QkFDZkEsYUFBYUEsRUFBRUEsb0VBQW9FQTt3QkFDbkZBLE9BQU9BLEVBQUVBOzRCQUNQQSxNQUFNQSxFQUFFQSxpQ0FBaUNBOzRCQUN6Q0EsVUFBVUEsRUFBRUEsd0NBQXdDQTt5QkFDckRBO3FCQUNGQTtvQkFDREEsT0FBT0EsRUFBRUE7d0JBQ1BBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsaURBQWlEQTtxQkFDakVBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLCtEQUErREE7YUFDNUVBO1lBQ0RBLDJCQUEyQkEsRUFBRUE7Z0JBQzNCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLGNBQWNBLEVBQUVBO3dCQUNkQSxNQUFNQSxFQUFFQSxxREFBcURBO3dCQUM3REEsVUFBVUEsRUFBRUEsNERBQTREQTtxQkFDekVBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSx1REFBdURBO3FCQUN2RUE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsZ0RBQWdEQTthQUM3REE7WUFDREEsdUNBQXVDQSxFQUFFQTtnQkFDdkNBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLDBDQUEwQ0E7d0JBQ2xEQSxVQUFVQSxFQUFFQSxpREFBaURBO3FCQUM5REE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsNERBQTREQTthQUN6RUE7WUFDREEsNEJBQTRCQSxFQUFFQTtnQkFDNUJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsWUFBWUEsRUFBRUE7d0JBQ1pBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxJQUFJQTt3QkFDZkEsVUFBVUEsRUFBRUEsSUFBSUE7d0JBQ2hCQSxNQUFNQSxFQUFFQTs0QkFDTkEsSUFBSUE7eUJBQ0xBO3FCQUNGQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxrQkFBa0JBO3dCQUM3QkEsVUFBVUEsRUFBRUEsSUFBSUE7cUJBQ2pCQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLHFDQUFxQ0E7d0JBQzdDQSxVQUFVQSxFQUFFQSw0Q0FBNENBO3FCQUN6REE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSw4Q0FBOENBO3dCQUN0REEsVUFBVUEsRUFBRUEscURBQXFEQTtxQkFDbEVBO29CQUNEQSxRQUFRQSxFQUFFQTt3QkFDUkEsTUFBTUEsRUFBRUEsZ0RBQWdEQTt3QkFDeERBLFVBQVVBLEVBQUVBLHVEQUF1REE7cUJBQ3BFQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSxpREFBaURBO2dCQUM3REEsZ0JBQWdCQSxFQUFFQTtvQkFDaEJBLDZDQUE2Q0E7aUJBQzlDQTthQUNGQTtZQUNEQSxnQ0FBZ0NBLEVBQUVBO2dCQUNoQ0EsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxZQUFZQSxFQUFFQTt3QkFDWkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLFNBQVNBLEVBQUVBLElBQUlBO3dCQUNmQSxVQUFVQSxFQUFFQSxJQUFJQTt3QkFDaEJBLE1BQU1BLEVBQUVBOzRCQUNOQSxJQUFJQTt5QkFDTEE7cUJBQ0ZBO29CQUNEQSxPQUFPQSxFQUFFQTt3QkFDUEEsTUFBTUEsRUFBRUEsT0FBT0E7d0JBQ2ZBLGFBQWFBLEVBQUVBLDhCQUE4QkE7d0JBQzdDQSxPQUFPQSxFQUFFQTs0QkFDUEEsTUFBTUEsRUFBRUEsMENBQTBDQTs0QkFDbERBLFVBQVVBLEVBQUVBLGlEQUFpREE7eUJBQzlEQTtxQkFDRkE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsc0JBQXNCQTt3QkFDakNBLFVBQVVBLEVBQUVBLElBQUlBO3FCQUNqQkE7b0JBQ0RBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSxtQ0FBbUNBO3dCQUMzQ0EsVUFBVUEsRUFBRUEsMENBQTBDQTtxQkFDdkRBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLHFEQUFxREE7Z0JBQ2pFQSxnQkFBZ0JBLEVBQUVBO29CQUNoQkEsb0RBQW9EQTtpQkFDckRBO2FBQ0ZBO1lBQ0RBLGdDQUFnQ0EsRUFBRUE7Z0JBQ2hDQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSxTQUFTQTt3QkFDakJBLGFBQWFBLEVBQUVBLGdDQUFnQ0E7cUJBQ2hEQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsOERBQThEQTt3QkFDN0VBLHNCQUFzQkEsRUFBRUE7NEJBQ3RCQSxNQUFNQSxFQUFFQSxRQUFRQTs0QkFDaEJBLGFBQWFBLEVBQUVBLDhEQUE4REE7eUJBQzlFQTt3QkFDREEsVUFBVUEsRUFBRUEsd0NBQXdDQTtxQkFDckRBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEsNENBQTRDQTt3QkFDcERBLFVBQVVBLEVBQUVBLG1EQUFtREE7cUJBQ2hFQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLDBDQUEwQ0E7d0JBQ2xEQSxVQUFVQSxFQUFFQSxpREFBaURBO3FCQUM5REE7b0JBQ0RBLGFBQWFBLEVBQUVBO3dCQUNiQSxNQUFNQSxFQUFFQSwwQ0FBMENBO3dCQUNsREEsVUFBVUEsRUFBRUEsaURBQWlEQTtxQkFDOURBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEsT0FBT0E7d0JBQ2ZBLGFBQWFBLEVBQUVBLG1DQUFtQ0E7d0JBQ2xEQSxPQUFPQSxFQUFFQTs0QkFDUEEsTUFBTUEsRUFBRUEsaURBQWlEQTs0QkFDekRBLFVBQVVBLEVBQUVBLHdEQUF3REE7eUJBQ3JFQTtxQkFDRkE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEscURBQXFEQTthQUNsRUE7WUFDREEsa0NBQWtDQSxFQUFFQTtnQkFDbENBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsU0FBU0EsRUFBRUE7d0JBQ1RBLE1BQU1BLEVBQUVBLDJDQUEyQ0E7d0JBQ25EQSxVQUFVQSxFQUFFQSxrREFBa0RBO3FCQUMvREE7b0JBQ0RBLGVBQWVBLEVBQUVBO3dCQUNmQSxNQUFNQSxFQUFFQSxTQUFTQTt3QkFDakJBLGFBQWFBLEVBQUVBLGlFQUFpRUE7cUJBQ2pGQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSx1REFBdURBO2FBQ3BFQTtZQUNEQSw2QkFBNkJBLEVBQUVBO2dCQUM3QkEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxRQUFRQSxFQUFFQTt3QkFDUkEsTUFBTUEsRUFBRUEsT0FBT0E7d0JBQ2ZBLGFBQWFBLEVBQUVBLDRFQUE0RUE7d0JBQzNGQSxPQUFPQSxFQUFFQTs0QkFDUEEsTUFBTUEsRUFBRUEseUNBQXlDQTs0QkFDakRBLFVBQVVBLEVBQUVBLGdEQUFnREE7eUJBQzdEQTtxQkFDRkE7b0JBQ0RBLFNBQVNBLEVBQUVBO3dCQUNUQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLGlDQUFpQ0E7cUJBQ2pEQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSxrREFBa0RBO2FBQy9EQTtZQUNEQSw4QkFBOEJBLEVBQUVBO2dCQUM5QkEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxjQUFjQSxFQUFFQTt3QkFDZEEsTUFBTUEsRUFBRUEsd0RBQXdEQTt3QkFDaEVBLFVBQVVBLEVBQUVBLCtEQUErREE7cUJBQzVFQTtvQkFDREEsZ0JBQWdCQSxFQUFFQTt3QkFDaEJBLE1BQU1BLEVBQUVBLDBEQUEwREE7d0JBQ2xFQSxVQUFVQSxFQUFFQSxpRUFBaUVBO3FCQUM5RUE7b0JBQ0RBLFdBQVdBLEVBQUVBO3dCQUNYQSxNQUFNQSxFQUFFQSwrQ0FBK0NBO3dCQUN2REEsVUFBVUEsRUFBRUEsc0RBQXNEQTtxQkFDbkVBO29CQUNEQSxlQUFlQSxFQUFFQTt3QkFDZkEsTUFBTUEsRUFBRUEseURBQXlEQTt3QkFDakVBLFVBQVVBLEVBQUVBLGdFQUFnRUE7cUJBQzdFQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsbUNBQW1DQTtxQkFDbkRBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLG1EQUFtREE7YUFDaEVBO1lBQ0RBLDhDQUE4Q0EsRUFBRUE7Z0JBQzlDQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFdBQVdBLEVBQUVBO3dCQUNYQSxNQUFNQSxFQUFFQSxTQUFTQTt3QkFDakJBLGFBQWFBLEVBQUVBLGtFQUFrRUE7cUJBQ2xGQTtvQkFDREEsZ0JBQWdCQSxFQUFFQTt3QkFDaEJBLE1BQU1BLEVBQUVBLE9BQU9BO3dCQUNmQSxhQUFhQSxFQUFFQSw4REFBOERBO3dCQUM3RUEsT0FBT0EsRUFBRUE7NEJBQ1BBLE1BQU1BLEVBQUVBLFFBQVFBOzRCQUNoQkEsYUFBYUEsRUFBRUEsOERBQThEQTt5QkFDOUVBO3FCQUNGQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLDBDQUEwQ0E7d0JBQ2xEQSxVQUFVQSxFQUFFQSxpREFBaURBO3FCQUM5REE7b0JBQ0RBLG9CQUFvQkEsRUFBRUE7d0JBQ3BCQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLGdDQUFnQ0E7cUJBQ2hEQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSxtRUFBbUVBO2FBQ2hGQTtZQUNEQSxtQ0FBbUNBLEVBQUVBO2dCQUNuQ0EsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxtQkFBbUJBLEVBQUVBO3dCQUNuQkEsTUFBTUEsRUFBRUEsNERBQTREQTt3QkFDcEVBLFVBQVVBLEVBQUVBLG1FQUFtRUE7cUJBQ2hGQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEseUJBQXlCQTtxQkFDekNBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLHdEQUF3REE7YUFDckVBO1lBQ0RBLDBCQUEwQkEsRUFBRUE7Z0JBQzFCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFNBQVNBLEVBQUVBO3dCQUNUQSxNQUFNQSxFQUFFQSxPQUFPQTt3QkFDZkEsYUFBYUEsRUFBRUEsb0NBQW9DQTt3QkFDbkRBLE9BQU9BLEVBQUVBOzRCQUNQQSxNQUFNQSxFQUFFQSxRQUFRQTs0QkFDaEJBLGFBQWFBLEVBQUVBLG9DQUFvQ0E7eUJBQ3BEQTtxQkFDRkE7b0JBQ0RBLGVBQWVBLEVBQUVBO3dCQUNmQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLCtGQUErRkE7cUJBQy9HQTtvQkFDREEsS0FBS0EsRUFBRUE7d0JBQ0xBLE1BQU1BLEVBQUVBLE9BQU9BO3dCQUNmQSxhQUFhQSxFQUFFQSxzREFBc0RBO3dCQUNyRUEsT0FBT0EsRUFBRUE7NEJBQ1BBLE1BQU1BLEVBQUVBLGlDQUFpQ0E7NEJBQ3pDQSxVQUFVQSxFQUFFQSx3Q0FBd0NBO3lCQUNyREE7cUJBQ0ZBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLCtDQUErQ0E7YUFDNURBO1lBQ0RBLHlCQUF5QkEsRUFBRUE7Z0JBQ3pCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFlBQVlBLEVBQUVBO3dCQUNaQSxNQUFNQSxFQUFFQSx3Q0FBd0NBO3dCQUNoREEsVUFBVUEsRUFBRUEsK0NBQStDQTtxQkFDNURBO29CQUNEQSxlQUFlQSxFQUFFQTt3QkFDZkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSx1Q0FBdUNBO3FCQUN2REE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsOENBQThDQTthQUMzREE7WUFDREEsNENBQTRDQSxFQUFFQTtnQkFDNUNBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLHVDQUF1Q0E7d0JBQy9DQSxVQUFVQSxFQUFFQSw4Q0FBOENBO3FCQUMzREE7b0JBQ0RBLEtBQUtBLEVBQUVBO3dCQUNMQSxNQUFNQSxFQUFFQSx1Q0FBdUNBO3dCQUMvQ0EsVUFBVUEsRUFBRUEsOENBQThDQTtxQkFDM0RBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLGlFQUFpRUE7YUFDOUVBO1lBQ0RBLDJDQUEyQ0EsRUFBRUE7Z0JBQzNDQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLGlCQUFpQkEsRUFBRUE7d0JBQ2pCQSxNQUFNQSxFQUFFQSxTQUFTQTt3QkFDakJBLGFBQWFBLEVBQUVBLGlFQUFpRUE7d0JBQ2hGQSxVQUFVQSxFQUFFQSxNQUFNQTtxQkFDbkJBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsdUNBQXVDQTt3QkFDL0NBLFVBQVVBLEVBQUVBLDhDQUE4Q0E7cUJBQzNEQTtvQkFDREEsS0FBS0EsRUFBRUE7d0JBQ0xBLE1BQU1BLEVBQUVBLHVDQUF1Q0E7d0JBQy9DQSxVQUFVQSxFQUFFQSw4Q0FBOENBO3FCQUMzREE7b0JBQ0RBLGdCQUFnQkEsRUFBRUE7d0JBQ2hCQSxNQUFNQSxFQUFFQSxTQUFTQTt3QkFDakJBLGFBQWFBLEVBQUVBLCtDQUErQ0E7d0JBQzlEQSxVQUFVQSxFQUFFQSxNQUFNQTtxQkFDbkJBO29CQUNEQSxxQkFBcUJBLEVBQUVBO3dCQUNyQkEsTUFBTUEsRUFBRUEsU0FBU0E7d0JBQ2pCQSxhQUFhQSxFQUFFQSxpREFBaURBO3dCQUNoRUEsVUFBVUEsRUFBRUEsTUFBTUE7cUJBQ25CQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSxnRUFBZ0VBO2FBQzdFQTtZQUNEQSxnQkFBZ0JBLEVBQUVBO2dCQUNoQkEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxZQUFZQSxFQUFFQTt3QkFDWkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLFNBQVNBLEVBQUVBLElBQUlBO3dCQUNmQSxVQUFVQSxFQUFFQSxJQUFJQTt3QkFDaEJBLE1BQU1BLEVBQUVBOzRCQUNOQSxJQUFJQTt5QkFDTEE7cUJBQ0ZBO29CQUNEQSxxQkFBcUJBLEVBQUVBO3dCQUNyQkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSwwQkFBMEJBO3FCQUMxQ0E7b0JBQ0RBLHFCQUFxQkEsRUFBRUE7d0JBQ3JCQSxNQUFNQSxFQUFFQSwrQ0FBK0NBO3dCQUN2REEsVUFBVUEsRUFBRUEsNkNBQTZDQTtxQkFDMURBO29CQUNEQSw0QkFBNEJBLEVBQUVBO3dCQUM1QkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSwrQkFBK0JBO3FCQUMvQ0E7b0JBQ0RBLHNCQUFzQkEsRUFBRUE7d0JBQ3RCQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLDRDQUE0Q0E7cUJBQzVEQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxPQUFPQTt3QkFDbEJBLFVBQVVBLEVBQUVBLElBQUlBO3FCQUNqQkE7b0JBQ0RBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSxxQ0FBcUNBO3dCQUM3Q0EsVUFBVUEsRUFBRUEsNENBQTRDQTtxQkFDekRBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLHNDQUFzQ0E7Z0JBQ2xEQSxnQkFBZ0JBLEVBQUVBO29CQUNoQkEsNkNBQTZDQTtpQkFDOUNBO2FBQ0ZBO1lBQ0RBLG9CQUFvQkEsRUFBRUE7Z0JBQ3BCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFlBQVlBLEVBQUVBO3dCQUNaQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsSUFBSUE7d0JBQ2ZBLFVBQVVBLEVBQUVBLElBQUlBO3dCQUNoQkEsTUFBTUEsRUFBRUE7NEJBQ05BLElBQUlBO3lCQUNMQTtxQkFDRkE7b0JBQ0RBLE9BQU9BLEVBQUVBO3dCQUNQQSxNQUFNQSxFQUFFQSxPQUFPQTt3QkFDZkEsYUFBYUEsRUFBRUEsdUJBQXVCQTt3QkFDdENBLE9BQU9BLEVBQUVBOzRCQUNQQSxNQUFNQSxFQUFFQSw4QkFBOEJBOzRCQUN0Q0EsVUFBVUEsRUFBRUEsc0NBQXNDQTt5QkFDbkRBO3FCQUNGQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxXQUFXQTt3QkFDdEJBLFVBQVVBLEVBQUVBLElBQUlBO3FCQUNqQkE7b0JBQ0RBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSxtQ0FBbUNBO3dCQUMzQ0EsVUFBVUEsRUFBRUEsMENBQTBDQTtxQkFDdkRBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLDBDQUEwQ0E7Z0JBQ3REQSxnQkFBZ0JBLEVBQUVBO29CQUNoQkEsb0RBQW9EQTtpQkFDckRBO2FBQ0ZBO1lBQ0RBLHNCQUFzQkEsRUFBRUE7Z0JBQ3RCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFlBQVlBLEVBQUVBO3dCQUNaQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsSUFBSUE7d0JBQ2ZBLFVBQVVBLEVBQUVBLElBQUlBO3dCQUNoQkEsTUFBTUEsRUFBRUE7NEJBQ05BLElBQUlBO3lCQUNMQTtxQkFDRkE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsYUFBYUE7d0JBQ3hCQSxVQUFVQSxFQUFFQSxJQUFJQTtxQkFDakJBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEscUNBQXFDQTt3QkFDN0NBLFVBQVVBLEVBQUVBLDRDQUE0Q0E7cUJBQ3pEQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLHdDQUF3Q0E7d0JBQ2hEQSxVQUFVQSxFQUFFQSxnREFBZ0RBO3FCQUM3REE7b0JBQ0RBLFFBQVFBLEVBQUVBO3dCQUNSQSxNQUFNQSxFQUFFQSwwQ0FBMENBO3dCQUNsREEsVUFBVUEsRUFBRUEsa0RBQWtEQTtxQkFDL0RBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLDRDQUE0Q0E7Z0JBQ3hEQSxnQkFBZ0JBLEVBQUVBO29CQUNoQkEsNkNBQTZDQTtpQkFDOUNBO2FBQ0ZBO1lBQ0RBLDBCQUEwQkEsRUFBRUE7Z0JBQzFCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFlBQVlBLEVBQUVBO3dCQUNaQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsSUFBSUE7d0JBQ2ZBLFVBQVVBLEVBQUVBLElBQUlBO3dCQUNoQkEsTUFBTUEsRUFBRUE7NEJBQ05BLElBQUlBO3lCQUNMQTtxQkFDRkE7b0JBQ0RBLE9BQU9BLEVBQUVBO3dCQUNQQSxNQUFNQSxFQUFFQSxPQUFPQTt3QkFDZkEsYUFBYUEsRUFBRUEsOEJBQThCQTt3QkFDN0NBLE9BQU9BLEVBQUVBOzRCQUNQQSxNQUFNQSxFQUFFQSxvQ0FBb0NBOzRCQUM1Q0EsVUFBVUEsRUFBRUEsNENBQTRDQTt5QkFDekRBO3FCQUNGQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxpQkFBaUJBO3dCQUM1QkEsVUFBVUEsRUFBRUEsSUFBSUE7cUJBQ2pCQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLG1DQUFtQ0E7d0JBQzNDQSxVQUFVQSxFQUFFQSwwQ0FBMENBO3FCQUN2REE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsZ0RBQWdEQTtnQkFDNURBLGdCQUFnQkEsRUFBRUE7b0JBQ2hCQSxvREFBb0RBO2lCQUNyREE7YUFDRkE7WUFDREEsMEJBQTBCQSxFQUFFQTtnQkFDMUJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsdUJBQXVCQSxFQUFFQTt3QkFDdkJBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEseUZBQXlGQTtxQkFDekdBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsT0FBT0E7d0JBQ2ZBLGFBQWFBLEVBQUVBLHdEQUF3REE7d0JBQ3ZFQSxPQUFPQSxFQUFFQTs0QkFDUEEsTUFBTUEsRUFBRUEsMENBQTBDQTs0QkFDbERBLFVBQVVBLEVBQUVBLGtEQUFrREE7eUJBQy9EQTtxQkFDRkE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsZ0RBQWdEQTthQUM3REE7WUFDREEsNEJBQTRCQSxFQUFFQTtnQkFDNUJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsdUJBQXVCQSxFQUFFQTt3QkFDdkJBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsa0VBQWtFQTtxQkFDbEZBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsT0FBT0E7d0JBQ2ZBLGFBQWFBLEVBQUVBLHNEQUFzREE7d0JBQ3JFQSxPQUFPQSxFQUFFQTs0QkFDUEEsTUFBTUEsRUFBRUEsMENBQTBDQTs0QkFDbERBLFVBQVVBLEVBQUVBLGtEQUFrREE7eUJBQy9EQTtxQkFDRkE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsa0RBQWtEQTthQUMvREE7WUFDREEsNEJBQTRCQSxFQUFFQTtnQkFDNUJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsT0FBT0EsRUFBRUE7d0JBQ1BBLE1BQU1BLEVBQUVBLE9BQU9BO3dCQUNmQSxhQUFhQSxFQUFFQSx1Q0FBdUNBO3dCQUN0REEsT0FBT0EsRUFBRUE7NEJBQ1BBLE1BQU1BLEVBQUVBLGlDQUFpQ0E7NEJBQ3pDQSxVQUFVQSxFQUFFQSx5Q0FBeUNBO3lCQUN0REE7cUJBQ0ZBO29CQUNEQSxLQUFLQSxFQUFFQTt3QkFDTEEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxTQUFTQTtxQkFDekJBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLGtEQUFrREE7Z0JBQzlEQSxnQkFBZ0JBLEVBQUVBO29CQUNoQkEsb0RBQW9EQTtpQkFDckRBO2FBQ0ZBO1lBQ0RBLDRCQUE0QkEsRUFBRUE7Z0JBQzVCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLGFBQWFBLEVBQUVBO3dCQUNiQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLG1EQUFtREE7d0JBQ2xFQSxzQkFBc0JBLEVBQUVBOzRCQUN0QkEsTUFBTUEsRUFBRUEsUUFBUUE7NEJBQ2hCQSxhQUFhQSxFQUFFQSxtREFBbURBO3lCQUNuRUE7d0JBQ0RBLFVBQVVBLEVBQUVBLHdDQUF3Q0E7cUJBQ3JEQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLDBDQUEwQ0E7d0JBQ2xEQSxVQUFVQSxFQUFFQSxpREFBaURBO3FCQUM5REE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLGFBQWFBO3FCQUM3QkE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsa0RBQWtEQTthQUMvREE7WUFDREEsbUJBQW1CQSxFQUFFQTtnQkFDbkJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsU0FBU0EsRUFBRUE7d0JBQ1RBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsNEJBQTRCQTtxQkFDNUNBO29CQUNEQSxzQkFBc0JBLEVBQUVBO3dCQUN0QkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxnREFBZ0RBO3FCQUNoRUE7b0JBQ0RBLE9BQU9BLEVBQUVBO3dCQUNQQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLFdBQVdBO3FCQUMzQkE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEseUNBQXlDQTthQUN0REE7WUFDREEsMkJBQTJCQSxFQUFFQTtnQkFDM0JBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsWUFBWUEsRUFBRUE7d0JBQ1pBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxJQUFJQTt3QkFDZkEsVUFBVUEsRUFBRUEsSUFBSUE7d0JBQ2hCQSxNQUFNQSxFQUFFQTs0QkFDTkEsSUFBSUE7eUJBQ0xBO3FCQUNGQTtvQkFDREEsZ0JBQWdCQSxFQUFFQTt3QkFDaEJBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsK0NBQStDQTtxQkFDL0RBO29CQUNEQSxZQUFZQSxFQUFFQTt3QkFDWkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSwrQ0FBK0NBO3FCQUMvREE7b0JBQ0RBLFdBQVdBLEVBQUVBO3dCQUNYQSxNQUFNQSxFQUFFQSxTQUFTQTt3QkFDakJBLGFBQWFBLEVBQUVBLDZEQUE2REE7d0JBQzVFQSxVQUFVQSxFQUFFQSxNQUFNQTtxQkFDbkJBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLFNBQVNBLEVBQUVBLGtCQUFrQkE7d0JBQzdCQSxVQUFVQSxFQUFFQSxJQUFJQTtxQkFDakJBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEscUNBQXFDQTt3QkFDN0NBLFVBQVVBLEVBQUVBLDRDQUE0Q0E7cUJBQ3pEQTtvQkFDREEsYUFBYUEsRUFBRUE7d0JBQ2JBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsMkNBQTJDQTtxQkFDM0RBO29CQUNEQSxjQUFjQSxFQUFFQTt3QkFDZEEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxtREFBbURBO3FCQUNuRUE7b0JBQ0RBLFFBQVFBLEVBQUVBO3dCQUNSQSxNQUFNQSxFQUFFQSxPQUFPQTt3QkFDZkEsYUFBYUEsRUFBRUEsMEJBQTBCQTt3QkFDekNBLE9BQU9BLEVBQUVBOzRCQUNQQSxNQUFNQSxFQUFFQSxRQUFRQTs0QkFDaEJBLGFBQWFBLEVBQUVBLDBCQUEwQkE7eUJBQzFDQTtxQkFDRkE7b0JBQ0RBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLHNDQUFzQ0E7cUJBQ3REQTtvQkFDREEsU0FBU0EsRUFBRUE7d0JBQ1RBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsdUNBQXVDQTtxQkFDdkRBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLGlEQUFpREE7Z0JBQzdEQSxnQkFBZ0JBLEVBQUVBO29CQUNoQkEsNkNBQTZDQTtpQkFDOUNBO2FBQ0ZBO1lBQ0RBLCtCQUErQkEsRUFBRUE7Z0JBQy9CQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFlBQVlBLEVBQUVBO3dCQUNaQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsSUFBSUE7d0JBQ2ZBLFVBQVVBLEVBQUVBLElBQUlBO3dCQUNoQkEsTUFBTUEsRUFBRUE7NEJBQ05BLElBQUlBO3lCQUNMQTtxQkFDRkE7b0JBQ0RBLE9BQU9BLEVBQUVBO3dCQUNQQSxNQUFNQSxFQUFFQSxPQUFPQTt3QkFDZkEsYUFBYUEsRUFBRUEsNkJBQTZCQTt3QkFDNUNBLE9BQU9BLEVBQUVBOzRCQUNQQSxNQUFNQSxFQUFFQSx5Q0FBeUNBOzRCQUNqREEsVUFBVUEsRUFBRUEsaURBQWlEQTt5QkFDOURBO3FCQUNGQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxzQkFBc0JBO3dCQUNqQ0EsVUFBVUEsRUFBRUEsSUFBSUE7cUJBQ2pCQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLG1DQUFtQ0E7d0JBQzNDQSxVQUFVQSxFQUFFQSwwQ0FBMENBO3FCQUN2REE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEscURBQXFEQTtnQkFDakVBLGdCQUFnQkEsRUFBRUE7b0JBQ2hCQSxvREFBb0RBO2lCQUNyREE7YUFDRkE7WUFDREEsOEJBQThCQSxFQUFFQTtnQkFDOUJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsWUFBWUEsRUFBRUE7d0JBQ1pBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxJQUFJQTt3QkFDZkEsVUFBVUEsRUFBRUEsSUFBSUE7d0JBQ2hCQSxNQUFNQSxFQUFFQTs0QkFDTkEsSUFBSUE7eUJBQ0xBO3FCQUNGQTtvQkFDREEsWUFBWUEsRUFBRUE7d0JBQ1pBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsK0NBQStDQTtxQkFDL0RBO29CQUNEQSxXQUFXQSxFQUFFQTt3QkFDWEEsTUFBTUEsRUFBRUEsU0FBU0E7d0JBQ2pCQSxhQUFhQSxFQUFFQSxzREFBc0RBO3dCQUNyRUEsVUFBVUEsRUFBRUEsTUFBTUE7cUJBQ25CQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxxQkFBcUJBO3dCQUNoQ0EsVUFBVUEsRUFBRUEsSUFBSUE7cUJBQ2pCQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLHFDQUFxQ0E7d0JBQzdDQSxVQUFVQSxFQUFFQSw0Q0FBNENBO3FCQUN6REE7b0JBQ0RBLGFBQWFBLEVBQUVBO3dCQUNiQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLDJDQUEyQ0E7cUJBQzNEQTtvQkFDREEsUUFBUUEsRUFBRUE7d0JBQ1JBLE1BQU1BLEVBQUVBLE9BQU9BO3dCQUNmQSxhQUFhQSxFQUFFQSwwQkFBMEJBO3dCQUN6Q0EsT0FBT0EsRUFBRUE7NEJBQ1BBLE1BQU1BLEVBQUVBLFFBQVFBOzRCQUNoQkEsYUFBYUEsRUFBRUEsMEJBQTBCQTt5QkFDMUNBO3FCQUNGQTtvQkFDREEsT0FBT0EsRUFBRUE7d0JBQ1BBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEseUJBQXlCQTtxQkFDekNBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxzQ0FBc0NBO3FCQUN0REE7b0JBQ0RBLFNBQVNBLEVBQUVBO3dCQUNUQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLHlHQUF5R0E7cUJBQ3pIQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSxvREFBb0RBO2dCQUNoRUEsZ0JBQWdCQSxFQUFFQTtvQkFDaEJBLDZDQUE2Q0E7aUJBQzlDQTthQUNGQTtZQUNEQSxrQ0FBa0NBLEVBQUVBO2dCQUNsQ0EsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxZQUFZQSxFQUFFQTt3QkFDWkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLFNBQVNBLEVBQUVBLElBQUlBO3dCQUNmQSxVQUFVQSxFQUFFQSxJQUFJQTt3QkFDaEJBLE1BQU1BLEVBQUVBOzRCQUNOQSxJQUFJQTt5QkFDTEE7cUJBQ0ZBO29CQUNEQSxPQUFPQSxFQUFFQTt3QkFDUEEsTUFBTUEsRUFBRUEsT0FBT0E7d0JBQ2ZBLGFBQWFBLEVBQUVBLG9DQUFvQ0E7d0JBQ25EQSxPQUFPQSxFQUFFQTs0QkFDUEEsTUFBTUEsRUFBRUEsNENBQTRDQTs0QkFDcERBLFVBQVVBLEVBQUVBLG9EQUFvREE7eUJBQ2pFQTtxQkFDRkE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEseUJBQXlCQTt3QkFDcENBLFVBQVVBLEVBQUVBLElBQUlBO3FCQUNqQkE7b0JBQ0RBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSxtQ0FBbUNBO3dCQUMzQ0EsVUFBVUEsRUFBRUEsMENBQTBDQTtxQkFDdkRBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLHdEQUF3REE7Z0JBQ3BFQSxnQkFBZ0JBLEVBQUVBO29CQUNoQkEsb0RBQW9EQTtpQkFDckRBO2FBQ0ZBO1lBQ0RBLHNCQUFzQkEsRUFBRUE7Z0JBQ3RCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFlBQVlBLEVBQUVBO3dCQUNaQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsSUFBSUE7d0JBQ2ZBLFVBQVVBLEVBQUVBLElBQUlBO3dCQUNoQkEsTUFBTUEsRUFBRUE7NEJBQ05BLElBQUlBO3lCQUNMQTtxQkFDRkE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsYUFBYUE7d0JBQ3hCQSxVQUFVQSxFQUFFQSxJQUFJQTtxQkFDakJBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEscUNBQXFDQTt3QkFDN0NBLFVBQVVBLEVBQUVBLDRDQUE0Q0E7cUJBQ3pEQTtvQkFDREEsY0FBY0EsRUFBRUE7d0JBQ2RBLE1BQU1BLEVBQUVBLE9BQU9BO3dCQUNmQSxhQUFhQSxFQUFFQSxpREFBaURBO3dCQUNoRUEsT0FBT0EsRUFBRUE7NEJBQ1BBLE1BQU1BLEVBQUVBLFFBQVFBOzRCQUNoQkEsYUFBYUEsRUFBRUEsaURBQWlEQTt5QkFDakVBO3FCQUNGQTtvQkFDREEsdUJBQXVCQSxFQUFFQTt3QkFDdkJBLE1BQU1BLEVBQUVBLFNBQVNBO3dCQUNqQkEsYUFBYUEsRUFBRUEsd0hBQXdIQTtxQkFDeElBO29CQUNEQSxRQUFRQSxFQUFFQTt3QkFDUkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSx3Q0FBd0NBO3FCQUN4REE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsNENBQTRDQTtnQkFDeERBLGdCQUFnQkEsRUFBRUE7b0JBQ2hCQSw2Q0FBNkNBO2lCQUM5Q0E7YUFDRkE7WUFDREEsbUNBQW1DQSxFQUFFQTtnQkFDbkNBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsWUFBWUEsRUFBRUE7d0JBQ1pBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxJQUFJQTt3QkFDZkEsVUFBVUEsRUFBRUEsSUFBSUE7d0JBQ2hCQSxNQUFNQSxFQUFFQTs0QkFDTkEsSUFBSUE7eUJBQ0xBO3FCQUNGQTtvQkFDREEsWUFBWUEsRUFBRUE7d0JBQ1pBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsdURBQXVEQTtxQkFDdkVBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLFNBQVNBLEVBQUVBLDBCQUEwQkE7d0JBQ3JDQSxVQUFVQSxFQUFFQSxJQUFJQTtxQkFDakJBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEscUNBQXFDQTt3QkFDN0NBLFVBQVVBLEVBQUVBLDRDQUE0Q0E7cUJBQ3pEQTtvQkFDREEsUUFBUUEsRUFBRUE7d0JBQ1JBLE1BQU1BLEVBQUVBLE9BQU9BO3dCQUNmQSxhQUFhQSxFQUFFQSx3QkFBd0JBO3dCQUN2Q0EsT0FBT0EsRUFBRUE7NEJBQ1BBLE1BQU1BLEVBQUVBLFFBQVFBOzRCQUNoQkEsYUFBYUEsRUFBRUEsd0JBQXdCQTt5QkFDeENBO3FCQUNGQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsdUNBQXVDQTtxQkFDdkRBO29CQUNEQSxTQUFTQSxFQUFFQTt3QkFDVEEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSx3SEFBd0hBO3FCQUN4SUE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEseURBQXlEQTtnQkFDckVBLGdCQUFnQkEsRUFBRUE7b0JBQ2hCQSw2Q0FBNkNBO2lCQUM5Q0E7YUFDRkE7WUFDREEsdUNBQXVDQSxFQUFFQTtnQkFDdkNBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsWUFBWUEsRUFBRUE7d0JBQ1pBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxJQUFJQTt3QkFDZkEsVUFBVUEsRUFBRUEsSUFBSUE7d0JBQ2hCQSxNQUFNQSxFQUFFQTs0QkFDTkEsSUFBSUE7eUJBQ0xBO3FCQUNGQTtvQkFDREEsT0FBT0EsRUFBRUE7d0JBQ1BBLE1BQU1BLEVBQUVBLE9BQU9BO3dCQUNmQSxhQUFhQSxFQUFFQSxxQ0FBcUNBO3dCQUNwREEsT0FBT0EsRUFBRUE7NEJBQ1BBLE1BQU1BLEVBQUVBLGlEQUFpREE7NEJBQ3pEQSxVQUFVQSxFQUFFQSx5REFBeURBO3lCQUN0RUE7cUJBQ0ZBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLFNBQVNBLEVBQUVBLDhCQUE4QkE7d0JBQ3pDQSxVQUFVQSxFQUFFQSxJQUFJQTtxQkFDakJBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEsbUNBQW1DQTt3QkFDM0NBLFVBQVVBLEVBQUVBLDBDQUEwQ0E7cUJBQ3ZEQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSw2REFBNkRBO2dCQUN6RUEsZ0JBQWdCQSxFQUFFQTtvQkFDaEJBLG9EQUFvREE7aUJBQ3JEQTthQUNGQTtZQUNEQSwwQkFBMEJBLEVBQUVBO2dCQUMxQkEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxZQUFZQSxFQUFFQTt3QkFDWkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLFNBQVNBLEVBQUVBLElBQUlBO3dCQUNmQSxVQUFVQSxFQUFFQSxJQUFJQTt3QkFDaEJBLE1BQU1BLEVBQUVBOzRCQUNOQSxJQUFJQTt5QkFDTEE7cUJBQ0ZBO29CQUNEQSxPQUFPQSxFQUFFQTt3QkFDUEEsTUFBTUEsRUFBRUEsT0FBT0E7d0JBQ2ZBLGFBQWFBLEVBQUVBLHVCQUF1QkE7d0JBQ3RDQSxPQUFPQSxFQUFFQTs0QkFDUEEsTUFBTUEsRUFBRUEsb0NBQW9DQTs0QkFDNUNBLFVBQVVBLEVBQUVBLDRDQUE0Q0E7eUJBQ3pEQTtxQkFDRkE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsaUJBQWlCQTt3QkFDNUJBLFVBQVVBLEVBQUVBLElBQUlBO3FCQUNqQkE7b0JBQ0RBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSxtQ0FBbUNBO3dCQUMzQ0EsVUFBVUEsRUFBRUEsMENBQTBDQTtxQkFDdkRBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLGdEQUFnREE7Z0JBQzVEQSxnQkFBZ0JBLEVBQUVBO29CQUNoQkEsb0RBQW9EQTtpQkFDckRBO2FBQ0ZBO1lBQ0RBLGdCQUFnQkEsRUFBRUE7Z0JBQ2hCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFlBQVlBLEVBQUVBO3dCQUNaQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsSUFBSUE7d0JBQ2ZBLFVBQVVBLEVBQUVBLElBQUlBO3dCQUNoQkEsTUFBTUEsRUFBRUE7NEJBQ05BLElBQUlBO3lCQUNMQTtxQkFDRkE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsT0FBT0E7d0JBQ2xCQSxVQUFVQSxFQUFFQSxJQUFJQTtxQkFDakJBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEscUNBQXFDQTt3QkFDN0NBLFVBQVVBLEVBQUVBLDRDQUE0Q0E7cUJBQ3pEQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLGtDQUFrQ0E7d0JBQzFDQSxVQUFVQSxFQUFFQSwwQ0FBMENBO3FCQUN2REE7b0JBQ0RBLFFBQVFBLEVBQUVBO3dCQUNSQSxNQUFNQSxFQUFFQSxvQ0FBb0NBO3dCQUM1Q0EsVUFBVUEsRUFBRUEsNENBQTRDQTtxQkFDekRBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLHNDQUFzQ0E7Z0JBQ2xEQSxnQkFBZ0JBLEVBQUVBO29CQUNoQkEsNkNBQTZDQTtpQkFDOUNBO2FBQ0ZBO1lBQ0RBLG9CQUFvQkEsRUFBRUE7Z0JBQ3BCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFlBQVlBLEVBQUVBO3dCQUNaQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsSUFBSUE7d0JBQ2ZBLFVBQVVBLEVBQUVBLElBQUlBO3dCQUNoQkEsTUFBTUEsRUFBRUE7NEJBQ05BLElBQUlBO3lCQUNMQTtxQkFDRkE7b0JBQ0RBLE9BQU9BLEVBQUVBO3dCQUNQQSxNQUFNQSxFQUFFQSxPQUFPQTt3QkFDZkEsYUFBYUEsRUFBRUEsZ0JBQWdCQTt3QkFDL0JBLE9BQU9BLEVBQUVBOzRCQUNQQSxNQUFNQSxFQUFFQSw4QkFBOEJBOzRCQUN0Q0EsVUFBVUEsRUFBRUEsc0NBQXNDQTt5QkFDbkRBO3FCQUNGQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxXQUFXQTt3QkFDdEJBLFVBQVVBLEVBQUVBLElBQUlBO3FCQUNqQkE7b0JBQ0RBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSxtQ0FBbUNBO3dCQUMzQ0EsVUFBVUEsRUFBRUEsMENBQTBDQTtxQkFDdkRBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLDBDQUEwQ0E7Z0JBQ3REQSxnQkFBZ0JBLEVBQUVBO29CQUNoQkEsb0RBQW9EQTtpQkFDckRBO2FBQ0ZBO1lBQ0RBLG9CQUFvQkEsRUFBRUE7Z0JBQ3BCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLGdEQUFnREE7cUJBQ2hFQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsd0VBQXdFQTtxQkFDeEZBO29CQUNEQSxLQUFLQSxFQUFFQTt3QkFDTEEsTUFBTUEsRUFBRUEsa0NBQWtDQTt3QkFDMUNBLFVBQVVBLEVBQUVBLDBDQUEwQ0E7cUJBQ3ZEQTtvQkFDREEsSUFBSUEsRUFBRUE7d0JBQ0pBLE1BQU1BLEVBQUVBLDBDQUEwQ0E7d0JBQ2xEQSxVQUFVQSxFQUFFQSxpREFBaURBO3FCQUM5REE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsMENBQTBDQTthQUN2REE7WUFDREEsc0JBQXNCQSxFQUFFQTtnQkFDdEJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsNENBQTRDQTthQUN6REE7WUFDREEsb0JBQW9CQSxFQUFFQTtnQkFDcEJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsZUFBZUEsRUFBRUE7d0JBQ2ZBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsa0RBQWtEQTtxQkFDbEVBO29CQUNEQSxhQUFhQSxFQUFFQTt3QkFDYkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSwrQkFBK0JBO3FCQUMvQ0E7b0JBQ0RBLDBCQUEwQkEsRUFBRUE7d0JBQzFCQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLGtOQUFrTkE7cUJBQ2xPQTtvQkFDREEsS0FBS0EsRUFBRUE7d0JBQ0xBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsNEJBQTRCQTtxQkFDNUNBO29CQUNEQSxhQUFhQSxFQUFFQTt3QkFDYkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSx5Q0FBeUNBO3FCQUN6REE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsMENBQTBDQTthQUN2REE7WUFDREEsdUJBQXVCQSxFQUFFQTtnQkFDdkJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsYUFBYUEsRUFBRUE7d0JBQ2JBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsbUNBQW1DQTtxQkFDbkRBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSwrQkFBK0JBO3FCQUMvQ0E7b0JBQ0RBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLG9NQUFvTUE7cUJBQ3BOQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsdUJBQXVCQTtxQkFDdkNBO29CQUNEQSxPQUFPQSxFQUFFQTt3QkFDUEEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxtREFBbURBO3FCQUNuRUE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsbURBQW1EQTthQUNoRUE7WUFDREEsc0JBQXNCQSxFQUFFQTtnQkFDdEJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsWUFBWUEsRUFBRUE7d0JBQ1pBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxJQUFJQTt3QkFDZkEsVUFBVUEsRUFBRUEsSUFBSUE7d0JBQ2hCQSxNQUFNQSxFQUFFQTs0QkFDTkEsSUFBSUE7eUJBQ0xBO3FCQUNGQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxVQUFVQTt3QkFDckJBLFVBQVVBLEVBQUVBLElBQUlBO3FCQUNqQkE7b0JBQ0RBLFFBQVFBLEVBQUVBO3dCQUNSQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLHdHQUF3R0E7d0JBQ3ZIQSxzQkFBc0JBLEVBQUVBOzRCQUN0QkEsTUFBTUEsRUFBRUEsUUFBUUE7NEJBQ2hCQSxhQUFhQSxFQUFFQSx3R0FBd0dBO3lCQUN4SEE7d0JBQ0RBLFVBQVVBLEVBQUVBLHdDQUF3Q0E7cUJBQ3JEQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLHFDQUFxQ0E7d0JBQzdDQSxVQUFVQSxFQUFFQSw0Q0FBNENBO3FCQUN6REE7b0JBQ0RBLFNBQVNBLEVBQUVBO3dCQUNUQSxNQUFNQSxFQUFFQSxPQUFPQTt3QkFDZkEsYUFBYUEsRUFBRUEsNENBQTRDQTt3QkFDM0RBLE9BQU9BLEVBQUVBOzRCQUNQQSxNQUFNQSxFQUFFQSwrQ0FBK0NBOzRCQUN2REEsVUFBVUEsRUFBRUEsNkNBQTZDQTt5QkFDMURBO3FCQUNGQTtvQkFDREEsWUFBWUEsRUFBRUE7d0JBQ1pBLE1BQU1BLEVBQUVBLE9BQU9BO3dCQUNmQSxhQUFhQSxFQUFFQSw0RUFBNEVBO3dCQUMzRkEsT0FBT0EsRUFBRUE7NEJBQ1BBLE1BQU1BLEVBQUVBLHFDQUFxQ0E7NEJBQzdDQSxVQUFVQSxFQUFFQSxtREFBbURBO3lCQUNoRUE7cUJBQ0ZBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLGtEQUFrREE7Z0JBQzlEQSxnQkFBZ0JBLEVBQUVBO29CQUNoQkEsNkNBQTZDQTtpQkFDOUNBO2FBQ0ZBO1lBQ0RBLDBCQUEwQkEsRUFBRUE7Z0JBQzFCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFlBQVlBLEVBQUVBO3dCQUNaQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsSUFBSUE7d0JBQ2ZBLFVBQVVBLEVBQUVBLElBQUlBO3dCQUNoQkEsTUFBTUEsRUFBRUE7NEJBQ05BLElBQUlBO3lCQUNMQTtxQkFDRkE7b0JBQ0RBLE9BQU9BLEVBQUVBO3dCQUNQQSxNQUFNQSxFQUFFQSxPQUFPQTt3QkFDZkEsYUFBYUEsRUFBRUEsbUJBQW1CQTt3QkFDbENBLE9BQU9BLEVBQUVBOzRCQUNQQSxNQUFNQSxFQUFFQSxvQ0FBb0NBOzRCQUM1Q0EsVUFBVUEsRUFBRUEsa0RBQWtEQTt5QkFDL0RBO3FCQUNGQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxjQUFjQTt3QkFDekJBLFVBQVVBLEVBQUVBLElBQUlBO3FCQUNqQkE7b0JBQ0RBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSxtQ0FBbUNBO3dCQUMzQ0EsVUFBVUEsRUFBRUEsMENBQTBDQTtxQkFDdkRBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLHNEQUFzREE7Z0JBQ2xFQSxnQkFBZ0JBLEVBQUVBO29CQUNoQkEsb0RBQW9EQTtpQkFDckRBO2FBQ0ZBO1lBQ0RBLGdCQUFnQkEsRUFBRUE7Z0JBQ2hCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLHNDQUFzQ0E7YUFDbkRBO1NBQ0ZBO1FBQ0RBLE1BQU1BLEVBQUVBLFFBQVFBO1FBQ2hCQSxZQUFZQSxFQUFFQTtZQUNaQSxvQkFBb0JBLEVBQUVBO2dCQUNwQkEsTUFBTUEsRUFBRUEsK0JBQStCQTtnQkFDdkNBLFVBQVVBLEVBQUVBLG9EQUFvREE7YUFDakVBO1lBQ0RBLGlCQUFpQkEsRUFBRUE7Z0JBQ2pCQSxNQUFNQSxFQUFFQSx3Q0FBd0NBO2dCQUNoREEsVUFBVUEsRUFBRUEsZ0RBQWdEQTthQUM3REE7WUFDREEsV0FBV0EsRUFBRUE7Z0JBQ1hBLE1BQU1BLEVBQUVBLGtDQUFrQ0E7Z0JBQzFDQSxVQUFVQSxFQUFFQSwwQ0FBMENBO2FBQ3ZEQTtZQUNEQSxjQUFjQSxFQUFFQTtnQkFDZEEsTUFBTUEsRUFBRUEscUNBQXFDQTtnQkFDN0NBLFVBQVVBLEVBQUVBLDZDQUE2Q0E7YUFDMURBO1lBQ0RBLFFBQVFBLEVBQUVBO2dCQUNSQSxNQUFNQSxFQUFFQSx3Q0FBd0NBO2dCQUNoREEsVUFBVUEsRUFBRUEsK0NBQStDQTthQUM1REE7WUFDREEsaUJBQWlCQSxFQUFFQTtnQkFDakJBLE1BQU1BLEVBQUVBLDBDQUEwQ0E7Z0JBQ2xEQSxVQUFVQSxFQUFFQSxpREFBaURBO2FBQzlEQTtZQUNEQSxzQkFBc0JBLEVBQUVBO2dCQUN0QkEsTUFBTUEsRUFBRUEsOENBQThDQTtnQkFDdERBLFVBQVVBLEVBQUVBLHFEQUFxREE7YUFDbEVBO1lBQ0RBLFdBQVdBLEVBQUVBO2dCQUNYQSxNQUFNQSxFQUFFQSxvQ0FBb0NBO2dCQUM1Q0EsVUFBVUEsRUFBRUEsMkNBQTJDQTthQUN4REE7WUFDREEsZUFBZUEsRUFBRUE7Z0JBQ2ZBLE1BQU1BLEVBQUVBLHdDQUF3Q0E7Z0JBQ2hEQSxVQUFVQSxFQUFFQSwrQ0FBK0NBO2FBQzVEQTtZQUNEQSxRQUFRQSxFQUFFQTtnQkFDUkEsTUFBTUEsRUFBRUEsaUNBQWlDQTtnQkFDekNBLFVBQVVBLEVBQUVBLHdDQUF3Q0E7YUFDckRBO1lBQ0RBLFdBQVdBLEVBQUVBO2dCQUNYQSxNQUFNQSxFQUFFQSxrQ0FBa0NBO2dCQUMxQ0EsVUFBVUEsRUFBRUEsMENBQTBDQTthQUN2REE7WUFDREEsaUJBQWlCQSxFQUFFQTtnQkFDakJBLE1BQU1BLEVBQUVBLHdDQUF3Q0E7Z0JBQ2hEQSxVQUFVQSxFQUFFQSxnREFBZ0RBO2FBQzdEQTtZQUNEQSxXQUFXQSxFQUFFQTtnQkFDWEEsTUFBTUEsRUFBRUEsb0NBQW9DQTtnQkFDNUNBLFVBQVVBLEVBQUVBLDJDQUEyQ0E7YUFDeERBO1lBQ0RBLGVBQWVBLEVBQUVBO2dCQUNmQSxNQUFNQSxFQUFFQSx3Q0FBd0NBO2dCQUNoREEsVUFBVUEsRUFBRUEsK0NBQStDQTthQUM1REE7WUFDREEsTUFBTUEsRUFBRUE7Z0JBQ05BLE1BQU1BLEVBQUVBLCtCQUErQkE7Z0JBQ3ZDQSxVQUFVQSxFQUFFQSxzQ0FBc0NBO2FBQ25EQTtZQUNEQSxVQUFVQSxFQUFFQTtnQkFDVkEsTUFBTUEsRUFBRUEsbUNBQW1DQTtnQkFDM0NBLFVBQVVBLEVBQUVBLDBDQUEwQ0E7YUFDdkRBO1lBQ0RBLGtCQUFrQkEsRUFBRUE7Z0JBQ2xCQSxNQUFNQSxFQUFFQSx5Q0FBeUNBO2dCQUNqREEsVUFBVUEsRUFBRUEsaURBQWlEQTthQUM5REE7WUFDREEsc0JBQXNCQSxFQUFFQTtnQkFDdEJBLE1BQU1BLEVBQUVBLDZDQUE2Q0E7Z0JBQ3JEQSxVQUFVQSxFQUFFQSxxREFBcURBO2FBQ2xFQTtZQUNEQSxxQkFBcUJBLEVBQUVBO2dCQUNyQkEsTUFBTUEsRUFBRUEsNENBQTRDQTtnQkFDcERBLFVBQVVBLEVBQUVBLG9EQUFvREE7YUFDakVBO1lBQ0RBLHlCQUF5QkEsRUFBRUE7Z0JBQ3pCQSxNQUFNQSxFQUFFQSxnREFBZ0RBO2dCQUN4REEsVUFBVUEsRUFBRUEsd0RBQXdEQTthQUNyRUE7WUFDREEsYUFBYUEsRUFBRUE7Z0JBQ2JBLE1BQU1BLEVBQUVBLG9DQUFvQ0E7Z0JBQzVDQSxVQUFVQSxFQUFFQSw0Q0FBNENBO2FBQ3pEQTtZQUNEQSwwQkFBMEJBLEVBQUVBO2dCQUMxQkEsTUFBTUEsRUFBRUEsaURBQWlEQTtnQkFDekRBLFVBQVVBLEVBQUVBLHlEQUF5REE7YUFDdEVBO1lBQ0RBLDhCQUE4QkEsRUFBRUE7Z0JBQzlCQSxNQUFNQSxFQUFFQSxxREFBcURBO2dCQUM3REEsVUFBVUEsRUFBRUEsNkRBQTZEQTthQUMxRUE7WUFDREEsaUJBQWlCQSxFQUFFQTtnQkFDakJBLE1BQU1BLEVBQUVBLHdDQUF3Q0E7Z0JBQ2hEQSxVQUFVQSxFQUFFQSxnREFBZ0RBO2FBQzdEQTtZQUNEQSxZQUFZQSxFQUFFQTtnQkFDWkEsTUFBTUEsRUFBRUEscUNBQXFDQTtnQkFDN0NBLFVBQVVBLEVBQUVBLDRDQUE0Q0E7YUFDekRBO1lBQ0RBLFNBQVNBLEVBQUVBO2dCQUNUQSxNQUFNQSxFQUFFQSxrQ0FBa0NBO2dCQUMxQ0EsVUFBVUEsRUFBRUEseUNBQXlDQTthQUN0REE7WUFDREEsVUFBVUEsRUFBRUE7Z0JBQ1ZBLE1BQU1BLEVBQUVBLDRDQUE0Q0E7Z0JBQ3BEQSxVQUFVQSxFQUFFQSxtREFBbURBO2FBQ2hFQTtZQUNEQSwyQkFBMkJBLEVBQUVBO2dCQUMzQkEsTUFBTUEsRUFBRUEsb0RBQW9EQTtnQkFDNURBLFVBQVVBLEVBQUVBLDJEQUEyREE7YUFDeEVBO1lBQ0RBLFdBQVdBLEVBQUVBO2dCQUNYQSxNQUFNQSxFQUFFQSxrQ0FBa0NBO2dCQUMxQ0EsVUFBVUEsRUFBRUEsMENBQTBDQTthQUN2REE7WUFDREEsUUFBUUEsRUFBRUE7Z0JBQ1JBLE1BQU1BLEVBQUVBLGlDQUFpQ0E7Z0JBQ3pDQSxVQUFVQSxFQUFFQSx3Q0FBd0NBO2FBQ3JEQTtZQUNEQSxZQUFZQSxFQUFFQTtnQkFDWkEsTUFBTUEsRUFBRUEscUNBQXFDQTtnQkFDN0NBLFVBQVVBLEVBQUVBLDRDQUE0Q0E7YUFDekRBO1lBQ0RBLGdCQUFnQkEsRUFBRUE7Z0JBQ2hCQSxNQUFNQSxFQUFFQSx5Q0FBeUNBO2dCQUNqREEsVUFBVUEsRUFBRUEsZ0RBQWdEQTthQUM3REE7WUFDREEsb0JBQW9CQSxFQUFFQTtnQkFDcEJBLE1BQU1BLEVBQUVBLDZDQUE2Q0E7Z0JBQ3JEQSxVQUFVQSxFQUFFQSxvREFBb0RBO2FBQ2pFQTtZQUNEQSxhQUFhQSxFQUFFQTtnQkFDYkEsTUFBTUEsRUFBRUEsc0NBQXNDQTtnQkFDOUNBLFVBQVVBLEVBQUVBLDZDQUE2Q0E7YUFDMURBO1lBQ0RBLGFBQWFBLEVBQUVBO2dCQUNiQSxNQUFNQSxFQUFFQSw2Q0FBNkNBO2dCQUNyREEsVUFBVUEsRUFBRUEsb0RBQW9EQTthQUNqRUE7WUFDREEsVUFBVUEsRUFBRUE7Z0JBQ1ZBLE1BQU1BLEVBQUVBLGlDQUFpQ0E7Z0JBQ3pDQSxVQUFVQSxFQUFFQSx5Q0FBeUNBO2FBQ3REQTtZQUNEQSxVQUFVQSxFQUFFQTtnQkFDVkEsTUFBTUEsRUFBRUEsb0NBQW9DQTtnQkFDNUNBLFVBQVVBLEVBQUVBLGtEQUFrREE7YUFDL0RBO1lBQ0RBLGNBQWNBLEVBQUVBO2dCQUNkQSxNQUFNQSxFQUFFQSx3Q0FBd0NBO2dCQUNoREEsVUFBVUEsRUFBRUEsc0RBQXNEQTthQUNuRUE7WUFDREEsWUFBWUEsRUFBRUE7Z0JBQ1pBLE1BQU1BLEVBQUVBLDJDQUEyQ0E7Z0JBQ25EQSxVQUFVQSxFQUFFQSw0Q0FBNENBO2FBQ3pEQTtTQUNGQTtRQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO0tBQzdCQSxDQUFBQTtBQUVEQSxDQUFDQSxFQWxrSk0sVUFBVSxLQUFWLFVBQVUsUUFra0poQjs7QUNwa0pELEFBRUEsaUNBRmlDO0FBQ2pDLDJDQUEyQztBQUMzQyxJQUFPLFVBQVUsQ0EwRWhCO0FBMUVELFdBQU8sVUFBVSxFQUFDLENBQUM7SUFHakJBLElBQUlBLGdCQUFnQkEsR0FBR0EsQ0FBQ0EsUUFBUUEsRUFBRUEsbUJBQW1CQSxDQUFDQSxDQUFDQTtJQUV2REEsU0FBU0EsWUFBWUEsQ0FBQ0EsTUFBVUEsRUFBRUEsSUFBV0EsRUFBRUEsTUFBb0JBO1FBQ2pFZ0wsRUFBRUEsQ0FBQ0EsQ0FBQ0EsTUFBTUEsQ0FBQ0EsVUFBVUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7WUFDNUJBLE1BQU1BLENBQUNBLE1BQU1BLENBQUNBLFVBQVVBLENBQUNBLElBQUlBLENBQUNBLENBQUNBLENBQUNBO1FBQ2xDQSxDQUFDQTtJQUNIQSxDQUFDQTtJQUVEaEwsU0FBU0EsY0FBY0EsQ0FBQ0EsTUFBTUE7UUFDNUJpTCxDQUFDQSxDQUFDQSxPQUFPQSxDQUFDQSxnQkFBZ0JBLEVBQUVBLFVBQUNBLFFBQVFBO1lBQ25DQSxZQUFZQSxDQUFDQSxNQUFNQSxFQUFFQSxRQUFRQSxFQUFFQSxVQUFDQSxRQUFRQTtnQkFDdENBLFFBQVFBLENBQUNBLE1BQU1BLEdBQUdBLElBQUlBLENBQUNBO1lBQ3pCQSxDQUFDQSxDQUFDQSxDQUFBQTtRQUNKQSxDQUFDQSxDQUFDQSxDQUFDQTtJQUNMQSxDQUFDQTtJQUVEakwsa0JBQU9BLENBQUNBLE9BQU9BLENBQUNBLGtCQUFrQkEsRUFBRUEsQ0FBQ0EsZ0JBQWdCQSxFQUFFQSxVQUFDQSxPQUFrQ0E7UUFDeEZBLDBCQUFlQSxFQUFFQSxDQUFDQTtRQUVsQkEsT0FBT0EsQ0FBQ0EsV0FBV0EsQ0FBQ0EsdUJBQXVCQSxFQUFFQSxVQUFDQSxJQUFJQSxFQUFFQSxNQUFNQTtZQUN4REEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsTUFBTUEsQ0FBQ0EsVUFBVUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7Z0JBQ3RCQSxFQUFFQSxDQUFDQSxDQUFDQSxNQUFNQSxDQUFDQSxVQUFVQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQSxDQUFDQTtvQkFDM0JBLE1BQU1BLENBQUNBLFFBQVFBLEdBQUdBLENBQUNBLE1BQU1BLEVBQUVBLEdBQUdBLENBQUNBLENBQUNBO2dCQUNsQ0EsQ0FBQ0E7Z0JBQ0RBLFlBQVlBLENBQUNBLE1BQU1BLEVBQUVBLFVBQVVBLEVBQUVBLFVBQUNBLFFBQVFBO29CQUN4Q0EsUUFBUUEsQ0FBQ0EsS0FBS0EsR0FBR0EsV0FBV0EsQ0FBQUE7Z0JBQzlCQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFDSEEsWUFBWUEsQ0FBQ0EsTUFBTUEsRUFBRUEsV0FBV0EsRUFBRUEsVUFBQ0EsUUFBUUE7b0JBQ3pDQSxRQUFRQSxDQUFDQSxLQUFLQSxHQUFHQSxZQUFZQSxDQUFBQTtnQkFDL0JBLENBQUNBLENBQUNBLENBQUNBO2dCQUNIQSxZQUFZQSxDQUFDQSxNQUFNQSxFQUFFQSxNQUFNQSxFQUFFQSxVQUFDQSxRQUFRQTtvQkFDcENBLFFBQVFBLENBQUNBLEtBQUtBLEdBQUdBLE9BQU9BLENBQUNBO2dCQUMzQkEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7Z0JBQ0hBLFlBQVlBLENBQUNBLE1BQU1BLEVBQUVBLFVBQVVBLEVBQUVBLFVBQUNBLFFBQVFBO29CQUN4Q0EsUUFBUUEsQ0FBQ0EsS0FBS0EsR0FBR0EsT0FBT0EsQ0FBQ0E7Z0JBQzNCQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFDSEEsY0FBY0EsQ0FBQ0EsTUFBTUEsQ0FBQ0EsQ0FBQ0E7WUFDekJBLENBQUNBO1lBRURBLEVBQUVBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLFFBQVFBLENBQUNBLElBQUlBLEVBQUVBLGFBQWFBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO2dCQUNwQ0EsTUFBTUEsQ0FBQ0EsUUFBUUEsR0FBR0EsQ0FBQ0EsVUFBVUEsRUFBRUEsNEJBQTRCQSxFQUFFQSxpQkFBaUJBLEVBQUVBLFdBQVdBLEVBQUVBLE9BQU9BLEVBQUVBLFVBQVVBLEVBQUVBLEdBQUdBLENBQUNBLENBQUNBO2dCQUN2SEEsWUFBWUEsQ0FBQ0EsTUFBTUEsRUFBRUEsaUJBQWlCQSxFQUFFQSxVQUFDQSxRQUFRQTtvQkFDL0NBLGNBQUdBLENBQUNBLEtBQUtBLENBQUNBLFVBQVVBLEVBQUVBLE1BQU1BLENBQUNBLENBQUNBO29CQUM5QkEsUUFBUUEsQ0FBQ0EsSUFBSUEsR0FBR0EsQ0FBQ0EsTUFBTUEsRUFBRUEsVUFBVUEsQ0FBQ0EsQ0FBQ0E7b0JBQ3JDQSxRQUFRQSxDQUFDQSxPQUFPQSxHQUFHQSxNQUFNQSxDQUFDQTtnQkFDNUJBLENBQUNBLENBQUNBLENBQUNBO1lBQ0xBLENBQUNBO1lBRURBLEVBQUVBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLFFBQVFBLENBQUNBLElBQUlBLEVBQUVBLFNBQVNBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO2dCQUNoQ0EsTUFBTUEsQ0FBQ0EsUUFBUUEsR0FBR0EsU0FBU0EsQ0FBQ0E7Z0JBQzVCQSxNQUFNQSxDQUFDQSxJQUFJQSxHQUFHQTtvQkFDWkEsbUJBQW1CQSxFQUFFQSxDQUFDQSxVQUFVQSxDQUFDQTtvQkFDakNBLFNBQVNBLEVBQUVBLENBQUNBLEdBQUdBLENBQUNBO2lCQUNqQkEsQ0FBQUE7Z0JBQ0RBLGNBQUdBLENBQUNBLEtBQUtBLENBQUNBLFFBQVFBLEVBQUVBLElBQUlBLEVBQUVBLFdBQVdBLEVBQUVBLE1BQU1BLENBQUNBLENBQUNBO1lBQ2pEQSxDQUFDQTtRQUVIQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUdIQSxPQUFPQSxDQUFDQSxTQUFTQSxDQUFDQSxZQUFZQSxFQUFRQSxpQkFBTUEsQ0FBQ0EsQ0FBQ0E7UUFDOUNBLEFBQ0FBLG1EQURtREE7UUFDbkRBLE9BQU9BLENBQUNBLE9BQU9BLENBQUNBLGlCQUFNQSxDQUFDQSxXQUFXQSxFQUFFQSxVQUFDQSxVQUFVQSxFQUFFQSxRQUFRQTtZQUN2REEsQUFDQUEsMENBRDBDQTtZQUMxQ0EsT0FBT0EsQ0FBQ0EsU0FBU0EsQ0FBQ0EsZ0JBQWdCQSxHQUFHQSxRQUFRQSxFQUFFQSxVQUFVQSxDQUFDQSxDQUFDQTtRQUM3REEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7UUFDSEEsTUFBTUEsQ0FBQ0EsaUJBQU1BLENBQUNBO0lBQ2hCQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtBQUlOQSxDQUFDQSxFQTFFTSxVQUFVLEtBQVYsVUFBVSxRQTBFaEI7O0FDNUVELDJDQUEyQztBQUUzQyxJQUFPLFVBQVUsQ0FrRGhCO0FBbERELFdBQU8sVUFBVSxFQUFDLENBQUM7SUFFakJBLEFBQ0FBLHFDQURxQ0E7UUFDL0JBLG1CQUFtQkE7UUFDdkJrTCxTQURJQSxtQkFBbUJBLENBQ0hBLE9BQXNCQTtZQUF0QkMsWUFBT0EsR0FBUEEsT0FBT0EsQ0FBZUE7UUFDMUNBLENBQUNBO1FBQ0RELHNCQUFJQSwyQ0FBVUE7aUJBQWRBO2dCQUNFRSxNQUFNQSxDQUFDQSxDQUFDQSxDQUFDQSxHQUFHQSxDQUFDQSxJQUFJQSxDQUFDQSxPQUFPQSxDQUFDQSxVQUFVQSxDQUFDQSxxQkFBVUEsQ0FBQ0EsVUFBVUEsQ0FBQ0EsRUFBRUEsVUFBQ0EsU0FBU0E7b0JBQ3JFQSxNQUFNQSxDQUFDQSxTQUFTQSxDQUFDQSxRQUFRQSxDQUFDQSxJQUFJQSxDQUFDQTtnQkFDakNBLENBQUNBLENBQUNBLENBQUNBO1lBQ0xBLENBQUNBOzs7V0FBQUY7UUFDREEsc0JBQUlBLGtEQUFpQkE7aUJBQXJCQTtnQkFDRUcsTUFBTUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsT0FBT0EsQ0FBQ0EsWUFBWUEsRUFBRUEsQ0FBQ0E7WUFDckNBLENBQUNBO2lCQUNESCxVQUFzQkEsU0FBZ0JBO2dCQUNwQ0csSUFBSUEsQ0FBQ0EsT0FBT0EsQ0FBQ0EsWUFBWUEsQ0FBQ0EsU0FBU0EsQ0FBQ0EsQ0FBQ0E7WUFDdkNBLENBQUNBOzs7V0FIQUg7UUFJSEEsMEJBQUNBO0lBQURBLENBZEFsTCxBQWNDa0wsSUFBQWxMO0lBRURBLGtCQUFPQSxDQUFDQSxPQUFPQSxDQUFDQSxpQkFBaUJBLEVBQUVBLENBQUNBLGdCQUFnQkEsRUFBRUEsVUFBQ0EsT0FBc0JBO1FBQzNFQSxNQUFNQSxDQUFDQSxJQUFJQSxtQkFBbUJBLENBQUNBLE9BQU9BLENBQUNBLENBQUNBO0lBQzFDQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtJQUVKQSxBQUNBQSxnREFEZ0RBO0lBQ2hEQSxrQkFBT0EsQ0FBQ0EsT0FBT0EsQ0FBQ0Esa0JBQWtCQSxFQUFFQSxjQUFNQSxPQUFBQSwyQkFBZ0JBLEVBQUVBLEVBQWxCQSxDQUFrQkEsQ0FBQ0EsQ0FBQ0E7SUFFOURBLEFBQ0FBLGdDQURnQ0E7SUFDaENBLGtCQUFPQSxDQUFDQSxPQUFPQSxDQUFDQSxtQkFBbUJBLEVBQUVBLENBQUNBO1FBQ3BDQSxNQUFNQSxDQUFDQTtZQUNMQSxLQUFLQSxFQUFFQSxjQUFNQSxXQUFJQSxFQUFKQSxDQUFJQTtTQUNsQkEsQ0FBQUE7SUFDSEEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7SUFFSkEsQUFDQUEsaUdBRGlHQTtJQUNqR0Esa0JBQU9BLENBQUNBLE9BQU9BLENBQUNBLGdCQUFnQkEsRUFBRUEsQ0FBQ0EsaUJBQWlCQSxFQUFFQSxVQUFDQSxlQUFlQTtRQUNwRUEsTUFBTUEsQ0FBQ0EsZUFBZUEsQ0FBQ0EsY0FBY0EsQ0FBQ0EsQ0FBQ0E7SUFDekNBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO0lBRUpBLGtCQUFPQSxDQUFDQSxPQUFPQSxDQUFDQSxrQ0FBa0NBLEVBQUVBLENBQUNBLGlCQUFpQkEsRUFBRUEsVUFBQ0EsZUFBZUE7UUFDdEZBLE1BQU1BLENBQUNBLGVBQWVBLENBQUNBLGdDQUFnQ0EsQ0FBQ0EsQ0FBQ0E7SUFDM0RBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO0lBRUpBLGtCQUFPQSxDQUFDQSxPQUFPQSxDQUFDQSxvQkFBb0JBLEVBQUVBLENBQUNBLGlCQUFpQkEsRUFBRUEsVUFBQ0EsZUFBZUE7UUFDeEVBLE1BQU1BLENBQUNBLGVBQWVBLENBQUNBLGtCQUFrQkEsQ0FBQ0EsQ0FBQ0E7SUFDN0NBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO0lBRUpBLGtCQUFPQSxDQUFDQSxPQUFPQSxDQUFDQSxrQkFBa0JBLEVBQUVBLENBQUNBLFNBQVNBLEVBQUVBLFVBQUNBLE9BQU9BO1FBQ3REQSxNQUFNQSxDQUFDQSxPQUFPQSxDQUFDQSxLQUFLQSxDQUFDQSw4QkFBbUJBLEVBQUVBLENBQUNBLENBQUNBO0lBQzlDQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtBQUVOQSxDQUFDQSxFQWxETSxVQUFVLEtBQVYsVUFBVSxRQWtEaEI7O0FDcERELEFBSUEseUNBSnlDO0FBQ3pDLDRDQUE0QztBQUM1QywyQ0FBMkM7QUFDM0MsMENBQTBDO0FBQzFDLElBQU8sVUFBVSxDQStFaEI7QUEvRUQsV0FBTyxVQUFVLEVBQUMsQ0FBQztJQUVOQSw2QkFBa0JBLEdBQUdBLHFCQUFVQSxDQUFDQSxvQkFBb0JBLEVBQUVBLENBQUNBLFFBQVFBLEVBQUVBLGlCQUFpQkEsRUFBRUEsY0FBY0EsRUFBRUEsT0FBT0EsRUFBRUEsVUFBQ0EsTUFBTUEsRUFBRUEsS0FBNEJBLEVBQUVBLFlBQVlBLEVBQUVBLEtBQXFCQTtRQUU5TEEsSUFBSUEsUUFBUUEsR0FBR0EsTUFBTUEsQ0FBQ0EsUUFBUUEsR0FBNkJBLElBQUlBLFlBQVlBLENBQXNCQTtZQUMvRkEsVUFBVUEsRUFBRUEsS0FBS0E7WUFDakJBLGlCQUFpQkEsRUFBRUEsSUFBSUE7WUFDdkJBLEdBQUdBLEVBQUVBLDJCQUFnQkEsRUFBRUE7U0FDeEJBLENBQUNBLENBQUNBO1FBRUhBLE1BQU1BLENBQUNBLFFBQVFBLENBQUNBLGlCQUFpQkEsR0FBR0EsVUFBQ0EsSUFBSUE7WUFDdkNBLElBQUlBLE1BQU1BLEdBQUdBLElBQUlBLFVBQVVBLEVBQUVBLENBQUNBO1lBQzlCQSxNQUFNQSxDQUFDQSxNQUFNQSxHQUFHQTtnQkFDZEEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsTUFBTUEsQ0FBQ0EsVUFBVUEsS0FBS0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7b0JBQzVCQSxjQUFHQSxDQUFDQSxLQUFLQSxDQUFDQSxjQUFjQSxFQUFFQSxJQUFJQSxDQUFDQSxDQUFDQTtvQkFDaENBLElBQUlBLElBQUlBLEdBQUdBLE1BQU1BLENBQUNBLE1BQU1BLENBQUNBO29CQUN6QkEsSUFBSUEsR0FBR0EsR0FBR0EsSUFBSUEsQ0FBQ0E7b0JBQ2ZBLElBQUFBLENBQUNBO3dCQUNDQSxHQUFHQSxHQUFHQSxPQUFPQSxDQUFDQSxRQUFRQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQTtvQkFDL0JBLENBQUVBO29CQUFBQSxLQUFLQSxDQUFDQSxDQUFDQSxHQUFHQSxDQUFDQSxDQUFDQSxDQUFDQTt3QkFDYkEsY0FBR0EsQ0FBQ0EsS0FBS0EsQ0FBQ0EsOEJBQThCQSxFQUFFQSxJQUFJQSxDQUFDQSxLQUFLQSxDQUFDQSxJQUFJQSxFQUFFQSxJQUFJQSxFQUFFQSxHQUFHQSxDQUFDQSxDQUFDQTt3QkFDdEVBLE1BQU1BLENBQUNBO29CQUNUQSxDQUFDQTtvQkFDREEsY0FBR0EsQ0FBQ0EsS0FBS0EsQ0FBQ0Esa0JBQWtCQSxFQUFFQSxHQUFHQSxDQUFDQSxDQUFDQTtvQkFDbkNBLCtCQUFvQkEsQ0FBQ0EsR0FBR0EsRUFBRUEsS0FBS0EsQ0FBQ0EsQ0FBQ0E7Z0JBQ25DQSxDQUFDQTtZQUNIQSxDQUFDQSxDQUFBQTtZQUNEQSxNQUFNQSxDQUFDQSxVQUFVQSxDQUFDQSxJQUFJQSxDQUFDQSxLQUFLQSxDQUFDQSxDQUFDQTtRQUNoQ0EsQ0FBQ0EsQ0FBQ0E7UUFFRkEsTUFBTUEsQ0FBQ0EsUUFBUUEsQ0FBQ0Esa0JBQWtCQSxHQUFHQSxVQUFDQSxJQUFJQTtZQUN4Q0EsY0FBR0EsQ0FBQ0EsS0FBS0EsQ0FBQ0EsYUFBYUEsRUFBRUEsSUFBSUEsQ0FBQ0EsQ0FBQ0E7WUFDL0JBLGlEQUFpREE7UUFDbkRBLENBQUNBLENBQUNBO1FBRUZBLE1BQU1BLENBQUNBLFFBQVFBLENBQUNBLGFBQWFBLEdBQUdBLFVBQUNBLElBQXlCQTtZQUN4REEsY0FBR0EsQ0FBQ0EsS0FBS0EsQ0FBQ0EsaUJBQWlCQSxFQUFFQSxJQUFJQSxDQUFDQSxDQUFDQTtRQUNyQ0EsQ0FBQ0EsQ0FBQ0E7UUFFRkEsTUFBTUEsQ0FBQ0EsUUFBUUEsQ0FBQ0EsV0FBV0EsR0FBR0EsVUFBQ0EsSUFBSUEsRUFBRUEsUUFBUUEsRUFBRUEsTUFBTUE7WUFDbkRBLGNBQUdBLENBQUNBLEtBQUtBLENBQUNBLDZCQUE2QkEsRUFBRUEsUUFBUUEsRUFBRUEsV0FBV0EsRUFBRUEsTUFBTUEsQ0FBQ0EsQ0FBQ0E7UUFDMUVBLENBQUNBLENBQUFBO0lBRUxBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO0lBRU1BLDhCQUFtQkEsR0FBR0EscUJBQVVBLENBQUNBLHFCQUFxQkEsRUFBRUEsQ0FBQ0EsUUFBUUEsRUFBRUEsZ0JBQWdCQSxFQUFFQSxVQUFDQSxNQUFNQSxFQUFFQSxPQUFzQkE7UUFDOUhBLE1BQU1BLENBQUNBLFVBQVVBLEdBQUdBLE9BQU9BLENBQUNBLFVBQVVBLENBQUNBLFlBQVlBLENBQUNBLENBQUNBO1FBQ3JEQSxNQUFNQSxDQUFDQSxnQkFBZ0JBLENBQUNBLFlBQVlBLEVBQUVBLFVBQUNBLFFBQVFBLEVBQUVBLFFBQVFBO1lBQ3hEQSxFQUFFQSxDQUFDQSxDQUFDQSxRQUFRQSxLQUFLQSxRQUFRQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFDM0JBLE1BQU1BLENBQUNBLFNBQVNBLEdBQUdBLE9BQU9BLENBQUNBLFlBQVlBLEVBQUVBLENBQUNBO1lBQzNDQSxDQUFDQTtRQUNGQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUNIQSxNQUFNQSxDQUFDQSxNQUFNQSxDQUFDQSxXQUFXQSxFQUFFQSxVQUFDQSxRQUFRQSxFQUFFQSxRQUFRQTtZQUM3Q0EsRUFBRUEsQ0FBQ0EsQ0FBQ0EsUUFBUUEsS0FBS0EsUUFBUUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7Z0JBQzNCQSxFQUFFQSxDQUFDQSxDQUFDQSxRQUFRQSxLQUFLQSxRQUFRQSxDQUFDQSxDQUFDQSxDQUFDQTtvQkFDM0JBLE9BQU9BLENBQUNBLFlBQVlBLENBQUNBLFFBQVFBLENBQUNBLENBQUNBO2dCQUNoQ0EsQ0FBQ0E7WUFDRkEsQ0FBQ0E7UUFDRkEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7SUFDSkEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7SUFFUUEsbUJBQVFBLEdBQUdBLHFCQUFVQSxDQUFDQSxVQUFVQSxFQUFFQSxDQUFDQSxRQUFRQSxFQUFFQSxtQkFBbUJBLEVBQUVBLGlCQUFpQkEsRUFBRUEsVUFBQ0EsTUFBTUEsRUFBRUEsaUJBQTRDQSxFQUFFQSxlQUFlQTtRQUVwS0EsTUFBTUEsQ0FBQ0EsT0FBT0EsR0FBR0EsU0FBU0EsQ0FBQ0E7UUFFM0JBLE1BQU1BLENBQUNBLFdBQVdBLEdBQUdBLG9CQUFTQSxFQUFFQSxDQUFDQTtRQUVqQ0EsTUFBTUEsQ0FBQ0EsUUFBUUEsR0FBR0EsVUFBQ0EsSUFBSUE7WUFDckJBLE1BQU1BLENBQUNBLHVCQUFZQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQTtRQUM1QkEsQ0FBQ0EsQ0FBQ0E7UUFFRkEsTUFBTUEsQ0FBQ0EsVUFBVUEsR0FBR0EsZUFBZUEsQ0FBQ0E7UUFFcENBLGlCQUFpQkEsQ0FBQ0EsS0FBS0EsQ0FBQ0EsVUFBQ0EsUUFBUUE7WUFDL0JBLE1BQU1BLENBQUNBLE9BQU9BLEdBQUdBLFFBQVFBLENBQUNBO1FBQzVCQSxDQUFDQSxDQUFDQSxDQUFDQTtJQUVMQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtBQUVOQSxDQUFDQSxFQS9FTSxVQUFVLEtBQVYsVUFBVSxRQStFaEI7O0FDbkZELEFBQ0EsMkNBRDJDO0FBQzNDLElBQU8sVUFBVSxDQXNCaEI7QUF0QkQsV0FBTyxVQUFVLEVBQUMsQ0FBQztJQUVQQSw4QkFBbUJBLEdBQUdBLHFCQUFVQSxDQUFDQSxxQkFBcUJBLEVBQUVBLENBQUNBLFFBQVFBLEVBQUVBLGdCQUFnQkEsRUFBRUEsVUFBQ0EsTUFBTUEsRUFBRUEsT0FBc0JBO1FBQzlIQSxNQUFNQSxDQUFDQSxPQUFPQSxHQUFHQSxPQUFPQSxDQUFDQTtRQUN6QkEsTUFBTUEsQ0FBQ0EsZ0JBQWdCQSxHQUFHQSxPQUFPQSxDQUFDQSxVQUFVQSxDQUFDQSxZQUFZQSxDQUFDQSxDQUFDQTtRQUMzREEsTUFBTUEsQ0FBQ0EsU0FBU0EsR0FBR0EsT0FBT0EsQ0FBQ0EsWUFBWUEsRUFBRUEsQ0FBQ0E7UUFDMUNBLE1BQU1BLENBQUNBLFVBQVVBLEdBQUdBLEVBQUVBLENBQUNBO1FBQ3ZCQSxNQUFNQSxDQUFDQSxNQUFNQSxDQUFDQSxXQUFXQSxFQUFFQSxVQUFDQSxRQUFRQSxFQUFFQSxRQUFRQTtZQUM3Q0EsRUFBRUEsQ0FBQ0EsQ0FBQ0EsUUFBUUEsS0FBS0EsUUFBUUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7Z0JBQzNCQSxPQUFPQSxDQUFDQSxZQUFZQSxDQUFDQSxRQUFRQSxDQUFDQSxDQUFDQTtZQUNoQ0EsQ0FBQ0E7UUFDRkEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7UUFDSEEsTUFBTUEsQ0FBQ0EsTUFBTUEsQ0FBQ0Esd0JBQXdCQSxFQUFFQSxVQUFDQSxRQUFRQSxFQUFFQSxRQUFRQTtZQUMxREEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsUUFBUUEsS0FBS0EsUUFBUUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7Z0JBQzNCQSxNQUFNQSxDQUFDQSxTQUFTQSxHQUFHQSxRQUFRQSxDQUFDQTtZQUM3QkEsQ0FBQ0E7UUFDRkEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7UUFDSEEsTUFBTUEsQ0FBQ0EsZ0JBQWdCQSxDQUFDQSxrQkFBa0JBLEVBQUVBLFVBQUNBLGdCQUFnQkE7WUFDNURBLE1BQU1BLENBQUNBLFVBQVVBLEdBQUdBLENBQUNBLENBQUNBLEdBQUdBLENBQUNBLGdCQUFnQkEsRUFBRUEsVUFBQ0EsU0FBYUEsSUFBS0EsT0FBQUEsU0FBU0EsQ0FBQ0EsUUFBUUEsQ0FBQ0EsSUFBSUEsRUFBdkJBLENBQXVCQSxDQUFDQSxDQUFDQTtRQUN6RkEsQ0FBQ0EsQ0FBQ0EsQ0FBQUE7SUFDSEEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7QUFFTEEsQ0FBQ0EsRUF0Qk0sVUFBVSxLQUFWLFVBQVUsUUFzQmhCOztBQ3ZCRCx5Q0FBeUM7QUFDekMsNENBQTRDO0FBQzVDLDJDQUEyQztBQUUzQyxJQUFPLFVBQVUsQ0FvUmhCO0FBcFJELFdBQU8sVUFBVSxFQUFDLENBQUM7SUFFakJBLElBQUlBLGlCQUFpQkEsR0FBR0Esa0JBQU9BLENBQUNBLFNBQVNBLENBQUNBLG9CQUFvQkEsRUFBRUEsQ0FBQ0EsZ0JBQWdCQSxFQUFFQSxVQUFVQSxFQUFFQSxjQUFjQSxFQUFFQSxVQUFVQSxFQUFFQSxTQUFTQSxFQUFFQSxpQkFBaUJBLEVBQUVBLGlCQUFpQkEsRUFBRUEsVUFBQ0EsY0FBdUNBLEVBQUVBLFFBQTJCQSxFQUFFQSxZQUFtQ0EsRUFBRUEsUUFBMkJBLEVBQUVBLE9BQXlCQSxFQUFFQSxlQUFlQSxFQUFFQSxlQUFlQTtRQUU5V0EsSUFBSUEsR0FBR0EsR0FBR0EsTUFBTUEsQ0FBQ0EsR0FBR0EsQ0FBQ0EscUJBQXFCQSxDQUFDQSxDQUFDQTtRQUM1Q0EsSUFBSUEsS0FBS0EsR0FBR0EsZUFBZUEsQ0FBQ0E7UUFDNUJBLElBQUlBLEtBQUtBLEdBQUdBLGVBQWVBLENBQUNBO1FBRTVCQSxNQUFNQSxDQUFDQTtZQUNMQSxRQUFRQSxFQUFFQSxHQUFHQTtZQUNiQSxPQUFPQSxFQUFFQSxJQUFJQTtZQUNiQSxJQUFJQSxFQUFFQSxVQUFDQSxLQUFLQSxFQUFFQSxPQUFPQSxFQUFFQSxJQUFJQTtnQkFDekJBLEtBQUtBLENBQUNBLEtBQUtBLEdBQUdBLEtBQUtBLENBQUNBO2dCQUNwQkEsT0FBT0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsRUFBQ0EsVUFBVUEsRUFBRUEsUUFBUUEsRUFBQ0EsQ0FBQ0EsQ0FBQ0E7Z0JBQ3BDQSxLQUFLQSxDQUFDQSxTQUFTQSxHQUFHQSxVQUFDQSxJQUFXQSxFQUFFQSxHQUFVQTtvQkFDeENBLE1BQU1BLENBQUNBLENBQUNBLElBQUlBLENBQUNBLENBQUNBLENBQUNBO3dCQUNiQSxLQUFLQSxNQUFNQTs0QkFDVEEsTUFBTUEsQ0FBQ0EsS0FBS0EsQ0FBQ0EsVUFBVUEsQ0FBQ0EsR0FBR0EsQ0FBQ0EsQ0FBQ0E7d0JBQy9CQSxLQUFLQSxLQUFLQTs0QkFDUkEsTUFBTUEsQ0FBQ0EsS0FBS0EsQ0FBQ0EsU0FBU0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsQ0FBQ0E7d0JBQzlCQSxLQUFLQSx1QkFBdUJBOzRCQUMxQkEsTUFBTUEsQ0FBQ0EsS0FBS0EsQ0FBQ0EsMkJBQTJCQSxDQUFDQSxHQUFHQSxDQUFDQSxDQUFDQTt3QkFDaERBLEtBQUtBLFNBQVNBOzRCQUNaQSxNQUFNQSxDQUFDQSxLQUFLQSxDQUFDQSxhQUFhQSxDQUFDQSxHQUFHQSxDQUFDQSxDQUFDQTt3QkFDbENBOzRCQUNFQSxNQUFNQSxDQUFDQSxTQUFTQSxDQUFDQTtvQkFDckJBLENBQUNBO2dCQUNIQSxDQUFDQSxDQUFDQTtnQkFFRkEsS0FBS0EsQ0FBQ0EsVUFBVUEsR0FBR0EsS0FBS0EsQ0FBQ0E7Z0JBRXpCQSxLQUFLQSxDQUFDQSx1QkFBdUJBLEdBQUdBLFVBQUNBLE9BQU9BO29CQUN0Q0EsT0FBT0EsQ0FBQ0EsUUFBUUEsR0FBR0EsQ0FBQ0EsT0FBT0EsRUFBRUEsRUFBRUEsQ0FBQ0EsQ0FBQ0E7Z0JBQ25DQSxDQUFDQSxDQUFDQTtnQkFDRkEsS0FBS0EsQ0FBQ0EsVUFBVUEsR0FBR0EsVUFBQ0EsTUFBTUE7b0JBQ3hCQSxFQUFFQSxDQUFDQSxDQUFDQSxLQUFLQSxDQUFDQSxPQUFPQSxDQUFDQSxDQUFDQSxDQUFDQTt3QkFDbEJBLE9BQU9BLENBQUNBLE9BQU9BLENBQUNBLE1BQU1BLENBQUNBLGFBQWFBLENBQUNBLENBQUNBLFFBQVFBLENBQUNBLFNBQVNBLENBQUNBLENBQUNBO3dCQUMxREEsS0FBS0EsQ0FBQ0EsT0FBT0EsQ0FBQ0EsWUFBWUEsQ0FBQ0EsTUFBTUEsQ0FBQ0EsYUFBYUEsQ0FBQ0EsQ0FBQ0EsT0FBT0EsQ0FBQ0EsVUFBQ0EsUUFBUUE7NEJBQ2hFQSxRQUFRQSxDQUFDQSxXQUFXQSxDQUFDQSxPQUFPQSxDQUFDQSxVQUFDQSxVQUFVQTtnQ0FDdENBLEVBQUVBLENBQUNBLENBQUNBLENBQUNBLFVBQVVBLENBQUNBLE9BQU9BLEVBQUVBLENBQUNBLENBQUNBLENBQUNBO29DQUMxQkEsVUFBVUEsQ0FBQ0EsUUFBUUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0E7b0NBQzFCQSxVQUFVQSxDQUFDQSxTQUFTQSxDQUFDQSxPQUFPQSxDQUFDQSxVQUFDQSxDQUFDQTt3Q0FDN0JBLEtBQUtBLENBQUNBLFVBQVVBLENBQUNBOzRDQUNmQSxhQUFhQSxFQUFFQSxDQUFDQSxDQUFDQSxPQUFPQTt5Q0FDekJBLENBQUNBLENBQUNBO29DQUNMQSxDQUFDQSxDQUFDQSxDQUFDQTtnQ0FDTEEsQ0FBQ0E7NEJBQ0hBLENBQUNBLENBQUNBLENBQUNBO3dCQUNMQSxDQUFDQSxDQUFDQSxDQUFDQTtvQkFDTEEsQ0FBQ0E7Z0JBQ0hBLENBQUNBLENBQUFBO2dCQUNEQSxLQUFLQSxDQUFDQSxVQUFVQSxHQUFHQSxVQUFDQSxNQUFNQTtvQkFDeEJBLEVBQUVBLENBQUNBLENBQUNBLEtBQUtBLENBQUNBLE9BQU9BLENBQUNBLENBQUNBLENBQUNBO3dCQUNsQkEsT0FBT0EsQ0FBQ0EsT0FBT0EsQ0FBQ0EsTUFBTUEsQ0FBQ0EsYUFBYUEsQ0FBQ0EsQ0FBQ0EsV0FBV0EsQ0FBQ0EsU0FBU0EsQ0FBQ0EsQ0FBQ0E7d0JBQzdEQSxLQUFLQSxDQUFDQSxPQUFPQSxDQUFDQSxZQUFZQSxDQUFDQSxNQUFNQSxDQUFDQSxhQUFhQSxDQUFDQSxDQUFDQSxPQUFPQSxDQUFDQSxVQUFDQSxRQUFRQTs0QkFDaEVBLFFBQVFBLENBQUNBLFdBQVdBLENBQUNBLE9BQU9BLENBQUNBLFVBQUNBLFVBQVVBO2dDQUN0Q0EsRUFBRUEsQ0FBQ0EsQ0FBQ0EsVUFBVUEsQ0FBQ0EsT0FBT0EsRUFBRUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7b0NBQ3pCQSxVQUFVQSxDQUFDQSxRQUFRQSxDQUFDQSxLQUFLQSxDQUFDQSxDQUFDQTtvQ0FDM0JBLFVBQVVBLENBQUNBLFNBQVNBLENBQUNBLE9BQU9BLENBQUNBLFVBQUNBLENBQUNBO3dDQUM3QkEsS0FBS0EsQ0FBQ0EsVUFBVUEsQ0FBQ0E7NENBQ2ZBLGFBQWFBLEVBQUVBLENBQUNBLENBQUNBLE9BQU9BO3lDQUN6QkEsQ0FBQ0EsQ0FBQ0E7b0NBQ0xBLENBQUNBLENBQUNBLENBQUNBO2dDQUNMQSxDQUFDQTs0QkFDSEEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7d0JBQ0xBLENBQUNBLENBQUNBLENBQUNBO29CQUNMQSxDQUFDQTtnQkFDSEEsQ0FBQ0EsQ0FBQUE7Z0JBQ0RBLEFBY0FBOzs7Ozs7Ozs7Ozs7O2tCQURFQTtnQkFDRkEsS0FBS0EsQ0FBQ0EsMEJBQTBCQSxHQUFHQSxVQUFDQSxPQUFPQSxFQUFFQSxJQUFJQSxFQUFFQSxNQUFNQSxFQUFFQSxPQUFPQTtvQkFDaEVBLElBQUlBLElBQUlBLEdBQUdBLElBQUlBLENBQUNBLE1BQU1BLENBQUNBLEVBQUVBLENBQUNBLElBQUlBLENBQUNBLFdBQVdBLENBQUNBLENBQUNBO29CQUM1Q0EsT0FBT0EsQ0FBQ0EsU0FBU0EsR0FBR0EsQ0FBRUEsUUFBUUEsRUFBRUEsRUFBRUEsU0FBU0EsRUFBRUEsRUFBRUEsRUFBRUEsSUFBSUEsRUFBRUEsRUFBRUEsRUFBRUEsa0JBQWtCQSxFQUFFQSxJQUFJQSxFQUFFQSxDQUFFQSxDQUFDQTtvQkFDeEZBLE1BQU1BLENBQUNBLFVBQVVBLEdBQUdBO3dCQUNsQkEsU0FBU0EsRUFBRUEsQ0FBQ0E7d0JBQ1pBLFdBQVdBLEVBQUVBLFNBQVNBO3FCQUN2QkEsQ0FBQ0E7b0JBQ0ZBLE1BQU1BLENBQUNBLENBQUNBLElBQUlBLENBQUNBLENBQUNBLENBQUNBO3dCQUNiQSxLQUFLQSxLQUFLQTs0QkFDUkEsS0FBS0EsQ0FBQ0E7d0JBQ1JBLEtBQUtBLFNBQVNBOzRCQUNaQSxNQUFNQSxDQUFDQSxPQUFPQSxHQUFHQTtnQ0FDZkEsQ0FBRUEsWUFBWUEsRUFBRUEsRUFBRUEsS0FBS0EsRUFBRUEsQ0FBQ0EsT0FBT0EsQ0FBQ0EsRUFBRUEsQ0FBRUE7Z0NBQ3RDQSxDQUFFQSxZQUFZQSxFQUFFQSxFQUFFQSxLQUFLQSxFQUFFQSxDQUFDQSxNQUFNQSxDQUFDQSxFQUFFQSxDQUFFQTs2QkFLdENBLENBQUNBOzRCQUNGQSxLQUFLQSxDQUFDQTt3QkFDUkEsS0FBS0EsdUJBQXVCQTs0QkFDMUJBLE1BQU1BLENBQUNBLE9BQU9BLEdBQUdBO2dDQUNmQSxDQUFFQSxXQUFXQSxFQUFFQSxFQUFFQSxLQUFLQSxFQUFFQSxRQUFRQSxFQUFFQSxDQUFFQTtnQ0FDcENBLENBQUVBLFlBQVlBLEVBQUVBLEVBQUVBLEtBQUtBLEVBQUVBLENBQUNBLE9BQU9BLENBQUNBLEVBQUVBLENBQUVBOzZCQUt2Q0EsQ0FBQ0E7NEJBQ0ZBLEtBQUtBLENBQUNBO29CQUNWQSxDQUFDQTtvQkFDREEsQUFDQUEsOENBRDhDQTtvQkFDOUNBLE1BQU1BLENBQUNBLE9BQU9BLENBQUNBO2dCQUNqQkEsQ0FBQ0EsQ0FBQ0E7Z0JBQ0ZBLFNBQVNBLFdBQVdBLENBQUNBLFFBQVFBLEVBQUVBLE1BQU1BO29CQUNuQ3NMLE1BQU1BLENBQUNBLFlBQVlBLENBQUNBLFFBQVFBLENBQUNBLENBQUNBLE1BQU1BLENBQUNBLENBQUNBO2dCQUN4Q0EsQ0FBQ0E7Z0JBQ0R0TCxTQUFTQSxhQUFhQSxDQUFDQSxRQUFRQSxFQUFFQSxTQUFTQSxFQUFFQSxLQUFLQTtvQkFDL0N1TCxJQUFJQSxNQUFNQSxHQUFHQSxFQUFFQSxDQUFDQTtvQkFDaEJBLE1BQU1BLENBQUNBLFNBQVNBLENBQUNBLEdBQUdBLEtBQUtBLENBQUNBO29CQUMxQkEsTUFBTUEsQ0FBQ0EsV0FBV0EsQ0FBQ0EsUUFBUUEsRUFBRUEsTUFBTUEsQ0FBQ0EsQ0FBQ0E7Z0JBQ3ZDQSxDQUFDQTtnQkFDRHZMLFNBQVNBLGNBQWNBLENBQUNBLFFBQVFBLEVBQUVBLFNBQVNBLEVBQUVBLE1BQU1BO29CQUNqRHdMLE1BQU1BLENBQUNBLE1BQU1BLENBQUNBLEdBQUdBLENBQUNBLFVBQUNBLEtBQUtBO3dCQUN0QkEsTUFBTUEsQ0FBQ0EsYUFBYUEsQ0FBQ0EsUUFBUUEsRUFBRUEsU0FBU0EsRUFBRUEsS0FBS0EsQ0FBQ0EsQ0FBQ0E7b0JBQ25EQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFDTEEsQ0FBQ0E7Z0JBQ0R4TCxTQUFTQSxpQkFBaUJBLENBQUNBLFFBQVFBLEVBQUVBLFFBQVFBLEVBQUVBLFNBQVNBLEVBQUVBLE1BQU1BO29CQUM5RHlMLE1BQU1BLENBQUNBLE9BQU9BLENBQUNBLFVBQUNBLEtBQUtBO3dCQUNuQkEsSUFBSUEsR0FBR0EsR0FBR0EsS0FBS0EsQ0FBQ0EsTUFBTUEsQ0FBQ0EsSUFBSUEsS0FBS0EsQ0FBQ0EsV0FBV0EsQ0FBQ0EsSUFBSUEsS0FBS0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQUE7d0JBQzVEQSxJQUFJQSxRQUFRQSxHQUFHQSxRQUFRQSxDQUFDQSxJQUFJQSxDQUFDQSxHQUFHQSxHQUFHQSxHQUFHQSxDQUFFQSxDQUFDQTt3QkFDekNBLEVBQUVBLENBQUNBLENBQUNBLENBQUNBLFFBQVFBLENBQUNBLE1BQU1BLENBQUNBLENBQUNBLENBQUNBOzRCQUNyQkEsR0FBR0EsQ0FBQ0EsS0FBS0EsQ0FBQ0EsWUFBWUEsRUFBRUEsUUFBUUEsRUFBRUEsUUFBUUEsRUFBRUEsR0FBR0EsQ0FBQ0EsQ0FBQ0E7NEJBQ2pEQSxRQUFRQSxDQUFDQSxNQUFNQSxDQUFDQSxRQUFRQSxDQUFDQSxhQUFhQSxDQUFDQSxRQUFRQSxFQUFFQSxTQUFTQSxFQUFFQSxLQUFLQSxDQUFDQSxDQUFDQSxDQUFDQSxLQUFLQSxDQUFDQSxDQUFDQSxDQUFDQTt3QkFDOUVBLENBQUNBO29CQUNIQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFDTEEsQ0FBQ0E7Z0JBQ0R6TCxTQUFTQSxlQUFlQSxDQUFDQSxJQUFJQTtvQkFDekIwTCxNQUFNQSxDQUFDQSx1QkFBWUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsS0FBS0EsS0FBS0EsQ0FBQ0EsVUFBVUEsQ0FBQ0EsaUJBQWlCQSxDQUFDQTtnQkFDckVBLENBQUNBO2dCQUNEMUwsU0FBU0EsU0FBU0E7b0JBQ2hCMkwsR0FBR0EsQ0FBQ0EsS0FBS0EsQ0FBQ0EsWUFBWUEsQ0FBQ0EsQ0FBQ0E7b0JBQ3hCQSxPQUFPQSxDQUFDQSxLQUFLQSxFQUFFQSxDQUFDQTtvQkFDaEJBLElBQUlBLFFBQVFBLEdBQUdBLEtBQUtBLENBQUNBLFFBQVFBLENBQUNBO29CQUM5QkEsSUFBSUEsc0JBQXNCQSxHQUFHQSxLQUFLQSxDQUFDQSxzQkFBc0JBLENBQUNBO29CQUMxREEsSUFBSUEsSUFBSUEsR0FBR0EsS0FBS0EsQ0FBQ0EsSUFBSUEsQ0FBQ0E7b0JBQ3RCQSxJQUFJQSxLQUFLQSxHQUFHQSxLQUFLQSxDQUFDQSxLQUFLQSxDQUFDQTtvQkFDeEJBLEFBQ0FBLHFDQURxQ0E7d0JBQ2pDQSxRQUFRQSxHQUFHQSxPQUFPQSxDQUFDQSxPQUFPQSxDQUFDQSxjQUFjQSxDQUFDQSxHQUFHQSxDQUFDQSx1QkFBdUJBLENBQUNBLENBQUNBLENBQUNBO29CQUM1RUEsSUFBSUEsVUFBVUEsR0FBR0EsUUFBUUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsV0FBV0EsQ0FBQ0EsQ0FBQ0E7b0JBQzVDQSxJQUFJQSxPQUFPQSxHQUFHQSxRQUFRQSxDQUFDQSxJQUFJQSxDQUFDQSxRQUFRQSxDQUFDQSxDQUFDQTtvQkFDdENBLElBQUlBLHdCQUF3QkEsR0FBR0EsUUFBUUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EseUJBQXlCQSxDQUFDQSxDQUFDQTtvQkFFeEVBLFVBQVVBLENBQUNBLE1BQU1BLENBQUNBLGNBQWNBLENBQUNBLGNBQWNBLENBQUNBLEdBQUdBLENBQUNBLHNCQUFzQkEsQ0FBQ0EsRUFBRUEsU0FBU0EsRUFBRUEsUUFBUUEsQ0FBQ0EsTUFBTUEsQ0FBQ0EsZUFBZUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7b0JBQzNIQSx3QkFBd0JBLENBQUNBLE1BQU1BLENBQUNBLGNBQWNBLENBQUNBLGNBQWNBLENBQUNBLEdBQUdBLENBQUNBLG9DQUFvQ0EsQ0FBQ0EsRUFBRUEsdUJBQXVCQSxFQUFFQSxzQkFBc0JBLENBQUNBLE1BQU1BLENBQUNBLGVBQWVBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO29CQUVuTEEsS0FBS0EsQ0FBQ0EsT0FBT0EsQ0FBQ0EsVUFBQ0EsSUFBSUE7d0JBQ2pCQSxJQUFJQSxNQUFNQSxHQUFHQSxPQUFPQSxDQUFDQSxPQUFPQSxDQUFDQSxhQUFhQSxDQUFDQSxjQUFjQSxDQUFDQSxHQUFHQSxDQUFDQSwyQkFBMkJBLENBQUNBLEVBQUVBLE1BQU1BLEVBQUVBLElBQUlBLENBQUNBLENBQUNBLENBQUNBO3dCQUMzR0EsSUFBSUEsWUFBWUEsR0FBR0EsT0FBT0EsQ0FBQ0EsT0FBT0EsQ0FBQ0EsTUFBTUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsZ0JBQWdCQSxDQUFDQSxDQUFDQSxDQUFDQTt3QkFDbEVBLFlBQVlBLENBQUNBLE1BQU1BLENBQUNBLGNBQWNBLENBQUNBLGNBQWNBLENBQUNBLEdBQUdBLENBQUNBLGtCQUFrQkEsQ0FBQ0EsRUFBRUEsS0FBS0EsRUFBRUEsSUFBSUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7d0JBQzlGQSxPQUFPQSxDQUFDQSxNQUFNQSxDQUFDQSxNQUFNQSxDQUFDQSxDQUFDQTtvQkFDekJBLENBQUNBLENBQUNBLENBQUNBO29CQUNIQSxBQUNBQSx1RkFEdUZBO29CQUN2RkEsT0FBT0EsQ0FBQ0EsTUFBTUEsQ0FBQ0EsUUFBUUEsQ0FBQ0EsUUFBUUEsQ0FBQ0EsQ0FBQ0EsS0FBS0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7b0JBQzFDQSxRQUFRQSxDQUFDQTt3QkFBUUEsT0FBT0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsRUFBQ0EsVUFBVUEsRUFBRUEsU0FBU0EsRUFBQ0EsQ0FBQ0EsQ0FBQ0E7b0JBQUNBLENBQUNBLEVBQUVBLEdBQUdBLENBQUNBLENBQUNBO2dCQUNqRUEsQ0FBQ0E7Z0JBRUQzTCxTQUFTQSxNQUFNQTtvQkFDYjRMLEtBQUtBLENBQUNBLEtBQUtBLENBQUNBLHlCQUF5QkEsRUFBRUE7d0JBQ3JDQSxHQUFHQSxDQUFDQSxLQUFLQSxDQUFDQSxRQUFRQSxDQUFDQSxDQUFDQTt3QkFDcEJBLElBQUlBLFFBQVFBLEdBQUdBLEtBQUtBLENBQUNBLFFBQVFBLENBQUNBO3dCQUM5QkEsSUFBSUEsc0JBQXNCQSxHQUFHQSxLQUFLQSxDQUFDQSxzQkFBc0JBLENBQUNBO3dCQUMxREEsSUFBSUEsSUFBSUEsR0FBR0EsS0FBS0EsQ0FBQ0EsSUFBSUEsQ0FBQ0E7d0JBQ3RCQSxJQUFJQSxLQUFLQSxHQUFHQSxLQUFLQSxDQUFDQSxLQUFLQSxDQUFDQTt3QkFDeEJBLElBQUlBLFFBQVFBLEdBQUdBLE9BQU9BLENBQUNBLElBQUlBLENBQUNBLGtCQUFrQkEsQ0FBQ0EsQ0FBQ0E7d0JBQ2hEQSxJQUFJQSxRQUFRQSxHQUFHQSxRQUFRQSxDQUFDQSxJQUFJQSxDQUFDQSxlQUFlQSxDQUFDQSxDQUFDQTt3QkFDOUNBLFFBQVFBLENBQUNBLElBQUlBLENBQUNBLFVBQUNBLEtBQUtBLEVBQUVBLENBQUNBOzRCQUNyQkEsSUFBSUEsS0FBS0EsR0FBR0EsT0FBT0EsQ0FBQ0EsT0FBT0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7NEJBQy9CQSxJQUFJQSxHQUFHQSxHQUFHQSxLQUFLQSxDQUFDQSxJQUFJQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQTs0QkFDM0JBLEdBQUdBLENBQUNBLEtBQUtBLENBQUNBLE9BQU9BLEVBQUVBLEdBQUdBLENBQUNBLENBQUNBOzRCQUN4QkEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsT0FBT0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7Z0NBQ3RCQSxNQUFNQSxDQUFDQTs0QkFDVEEsQ0FBQ0E7NEJBQ0RBLElBQUlBLElBQUlBLEdBQUdBLEtBQUtBLENBQUNBLElBQUlBLENBQUNBLFdBQVdBLENBQUNBLENBQUNBOzRCQUNuQ0EsTUFBTUEsQ0FBQ0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7Z0NBQ2JBLEtBQUtBLE1BQU1BO29DQUNUQSxFQUFFQSxDQUFDQSxDQUFDQSxHQUFHQSxJQUFJQSxLQUFLQSxDQUFDQSxVQUFVQSxDQUFDQSxDQUFDQSxDQUFDQTt3Q0FDNUJBLE1BQU1BLENBQUNBO29DQUNUQSxDQUFDQTtvQ0FDREEsS0FBS0EsQ0FBQ0E7Z0NBQ1JBLEtBQUtBLFNBQVNBO29DQUNaQSxFQUFFQSxDQUFDQSxDQUFDQSxHQUFHQSxJQUFJQSxLQUFLQSxDQUFDQSxhQUFhQSxJQUFJQSx1QkFBWUEsQ0FBQ0EsS0FBS0EsQ0FBQ0EsYUFBYUEsQ0FBQ0EsR0FBR0EsQ0FBQ0EsQ0FBQ0EsSUFBSUEsS0FBS0EsQ0FBQ0EsVUFBVUEsQ0FBQ0EsaUJBQWlCQSxDQUFDQSxDQUFDQSxDQUFDQTt3Q0FDL0dBLElBQUlBLE9BQU9BLEdBQUdBLEtBQUtBLENBQUNBLGFBQWFBLENBQUNBLEdBQUdBLENBQUNBLENBQUNBO3dDQUN2Q0EsS0FBS0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsWUFBWUEsRUFBRUEsT0FBT0EsQ0FBQ0EsU0FBU0EsQ0FBQ0EsQ0FBQ0E7d0NBQzVDQSxNQUFNQSxDQUFDQTtvQ0FDVEEsQ0FBQ0E7b0NBQ0RBLEtBQUtBLENBQUNBO2dDQUNSQSxLQUFLQSxLQUFLQTtvQ0FDUkEsQUFLQUE7Ozs7c0NBREVBO29DQUNGQSxFQUFFQSxDQUFDQSxDQUFDQSxHQUFHQSxJQUFJQSxLQUFLQSxDQUFDQSxTQUFTQSxDQUFDQSxDQUFDQSxDQUFDQTt3Q0FDM0JBLE1BQU1BLENBQUNBO29DQUNUQSxDQUFDQTtvQ0FDREEsS0FBS0EsQ0FBQ0E7Z0NBQ1JBLEtBQUtBLHVCQUF1QkE7b0NBQzFCQSxFQUFFQSxDQUFDQSxDQUFDQSxHQUFHQSxJQUFJQSxLQUFLQSxDQUFDQSwyQkFBMkJBLENBQUNBLENBQUNBLENBQUNBO3dDQUM3Q0EsSUFBSUEscUJBQXFCQSxHQUFHQSxLQUFLQSxDQUFDQSwyQkFBMkJBLENBQUNBLEdBQUdBLENBQUNBLENBQUNBO3dDQUNuRUEsS0FBS0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsWUFBWUEsRUFBRUEscUJBQXFCQSxDQUFDQSxTQUFTQSxDQUFDQSxDQUFDQTt3Q0FDMURBLE1BQU1BLENBQUNBO29DQUNUQSxDQUFDQTtvQ0FDREEsS0FBS0EsQ0FBQ0E7Z0NBQ1JBO29DQUNFQSxHQUFHQSxDQUFDQSxLQUFLQSxDQUFDQSxvQ0FBb0NBLENBQUNBLENBQUNBO29DQUNoREEsTUFBTUEsQ0FBQ0E7NEJBQ1hBLENBQUNBOzRCQUNEQSxHQUFHQSxDQUFDQSxLQUFLQSxDQUFDQSxZQUFZQSxFQUFFQSxHQUFHQSxDQUFDQSxDQUFDQTs0QkFDN0JBLEtBQUtBLENBQUNBLE1BQU1BLEVBQUVBLENBQUNBO3dCQUNqQkEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7d0JBQ0hBLElBQUlBLFVBQVVBLEdBQUdBLE9BQU9BLENBQUNBLElBQUlBLENBQUNBLFdBQVdBLENBQUNBLENBQUNBO3dCQUMzQ0EsSUFBSUEsd0JBQXdCQSxHQUFHQSxPQUFPQSxDQUFDQSxJQUFJQSxDQUFDQSx5QkFBeUJBLENBQUNBLENBQUNBO3dCQUN2RUEsSUFBSUEsT0FBT0EsR0FBR0EsT0FBT0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsUUFBUUEsQ0FBQ0EsQ0FBQ0E7d0JBRXJDQSxpQkFBaUJBLENBQUNBLFVBQVVBLEVBQUVBLGNBQWNBLENBQUNBLEdBQUdBLENBQUNBLHNCQUFzQkEsQ0FBQ0EsRUFBRUEsU0FBU0EsRUFBRUEsUUFBUUEsQ0FBQ0EsQ0FBQ0E7d0JBQy9GQSxpQkFBaUJBLENBQUNBLHdCQUF3QkEsRUFBRUEsY0FBY0EsQ0FBQ0EsR0FBR0EsQ0FBQ0Esb0NBQW9DQSxDQUFDQSxFQUFFQSx1QkFBdUJBLEVBQUVBLHNCQUFzQkEsQ0FBQ0EsQ0FBQ0E7d0JBQ3ZKQSxpQkFBaUJBLENBQUNBLE9BQU9BLEVBQUVBLGNBQWNBLENBQUNBLEdBQUdBLENBQUNBLDJCQUEyQkEsQ0FBQ0EsRUFBRUEsTUFBTUEsRUFBRUEsS0FBS0EsQ0FBQ0EsQ0FBQ0E7d0JBQzNGQSxLQUFLQSxDQUFDQSxPQUFPQSxDQUFDQSxVQUFDQSxJQUFJQTs0QkFDakJBLElBQUlBLE1BQU1BLEdBQUdBLE9BQU9BLENBQUNBLE9BQU9BLENBQUNBLE9BQU9BLENBQUNBLElBQUlBLENBQUNBLEdBQUdBLEdBQUdBLElBQUlBLENBQUNBLFNBQVNBLENBQUNBLENBQUNBLENBQUNBOzRCQUNqRUEsSUFBSUEsWUFBWUEsR0FBR0EsT0FBT0EsQ0FBQ0EsT0FBT0EsQ0FBQ0EsTUFBTUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsZ0JBQWdCQSxDQUFDQSxDQUFDQSxDQUFDQTs0QkFDbEVBLGlCQUFpQkEsQ0FBQ0EsWUFBWUEsRUFBRUEsY0FBY0EsQ0FBQ0EsR0FBR0EsQ0FBQ0Esa0JBQWtCQSxDQUFDQSxFQUFFQSxLQUFLQSxFQUFFQSxJQUFJQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQTt3QkFDNUZBLENBQUNBLENBQUNBLENBQUNBO29CQUNMQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFDTEEsQ0FBQ0E7Z0JBRUQ1TCxTQUFTQSxjQUFjQTtvQkFDckI2TCxHQUFHQSxDQUFDQSxLQUFLQSxDQUFDQSxvQkFBb0JBLENBQUNBLENBQUNBO29CQUNoQ0EsRUFBRUEsQ0FBQ0EsQ0FBQ0EsT0FBT0EsQ0FBQ0EsUUFBUUEsRUFBRUEsQ0FBQ0EsTUFBTUEsS0FBS0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7d0JBQ3BDQSxTQUFTQSxFQUFFQSxDQUFDQTtvQkFDZEEsQ0FBQ0E7b0JBQUNBLElBQUlBLENBQUNBLENBQUNBO3dCQUNOQSxNQUFNQSxFQUFFQSxDQUFDQTtvQkFDWEEsQ0FBQ0E7b0JBQ0RBLElBQUlBLENBQUNBLE1BQU1BLENBQUNBLEtBQUtBLENBQUNBLENBQUNBO2dCQUNyQkEsQ0FBQ0E7Z0JBRUQ3TCxLQUFLQSxDQUFDQSxHQUFHQSxDQUFDQSx3QkFBd0JBLEVBQUVBLENBQUNBLENBQUNBLFFBQVFBLENBQUNBLGNBQWNBLEVBQUVBLEdBQUdBLEVBQUVBLEVBQUVBLFFBQVFBLEVBQUVBLElBQUlBLEVBQUNBLENBQUNBLENBQUNBLENBQUNBO2dCQUN4RkEsVUFBVUEsQ0FBQ0EsY0FBY0EsRUFBRUEsR0FBR0EsQ0FBQ0EsQ0FBQ0E7WUFDbENBLENBQUNBO1NBQ0ZBLENBQUNBO0lBQ0pBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO0lBRUpBLElBQUlBLHFCQUFxQkEsR0FBR0EscUJBQVVBLENBQUNBLHVCQUF1QkEsRUFBRUEsQ0FBQ0EsUUFBUUEsRUFBRUEsV0FBV0EsRUFBRUEsVUFBQ0EsTUFBTUEsRUFBRUEsU0FBNkJBO1FBQzVIQSxNQUFNQSxDQUFDQSxXQUFXQSxHQUFHQSxVQUFDQSxNQUFNQSxFQUFFQSxJQUFXQTtZQUN2Q0EsRUFBRUEsQ0FBQ0EsQ0FBQ0EsTUFBTUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7Z0JBQ1hBLElBQUlBLFNBQVNBLEdBQUdBLHVCQUFZQSxDQUFDQSxNQUFNQSxDQUFDQSxDQUFDQTtnQkFDckNBLElBQUlBLEVBQUVBLEdBQUdBLGtCQUFPQSxDQUFDQSxNQUFNQSxDQUFDQSxDQUFDQTtnQkFDekJBLFNBQVNBLENBQUNBLElBQUlBLENBQUNBLFVBQVVBLENBQUNBLElBQUlBLENBQUNBLHVCQUF1QkEsRUFBRUEsU0FBU0EsRUFBRUEsSUFBSUEsRUFBRUEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7WUFDaEZBLENBQUNBO1lBQUNBLElBQUlBLENBQUNBLENBQUNBO2dCQUNOQSxjQUFHQSxDQUFDQSxJQUFJQSxDQUFDQSw0QkFBNEJBLENBQUNBLENBQUNBO1lBQ3pDQSxDQUFDQTtRQUNIQSxDQUFDQSxDQUFBQTtJQUNIQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtJQUVKQSxJQUFJQSxTQUFTQSxHQUFHQSxvQkFBb0JBLENBQUNBO0lBRXJDQSxJQUFJQSxrQkFBa0JBLEdBQUdBLHFCQUFVQSxDQUFDQSxTQUFTQSxFQUFFQSxDQUFDQSxRQUFRQSxFQUFFQSxXQUFXQSxFQUFFQSxPQUFPQSxFQUFFQSxVQUFVQSxFQUFFQSxjQUFjQSxFQUFFQSxpQkFBaUJBLEVBQUNBLGlCQUFpQkEsRUFBRUEsa0JBQWtCQSxFQUFFQSxVQUFDQSxNQUFNQSxFQUFFQSxTQUFTQSxFQUFFQSxLQUFLQSxFQUFFQSxRQUFRQSxFQUFFQSxZQUFZQSxFQUFFQSxlQUFlQSxFQUFFQSxlQUFlQSxFQUFFQSxnQkFBZ0JBO1FBQ3hRQSxNQUFNQSxDQUFDQSxJQUFJQSxHQUFHQSxTQUFTQSxDQUFDQTtRQUN4QkEsTUFBTUEsQ0FBQ0EsVUFBVUEsR0FBR0EsZUFBZUEsQ0FBQ0E7UUFDcENBLE1BQU1BLENBQUNBLEtBQUtBLEdBQUdBLGVBQWVBLENBQUNBO1FBRS9CQSxVQUFVQSxDQUFDQSxVQUFVQSxDQUFDQSxNQUFNQSxFQUFFQSxTQUFTQSxFQUFFQSxLQUFLQSxFQUFFQSxRQUFRQSxFQUFFQSxZQUFZQSxFQUFFQSxlQUFlQSxFQUFFQSxlQUFlQSxFQUFFQSxnQkFBZ0JBLENBQUNBLENBQUNBO0lBQzlIQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtBQUVOQSxDQUFDQSxFQXBSTSxVQUFVLEtBQVYsVUFBVSxRQW9SaEI7O0FDeFJELHlDQUF5QztBQUN6QywyQ0FBMkM7QUFFM0MsSUFBTyxVQUFVLENBMktoQjtBQTNLRCxXQUFPLFVBQVUsRUFBQyxDQUFDO0lBRU5BLDhCQUFtQkEsR0FBR0EscUJBQVVBLENBQUNBLHFCQUFxQkEsRUFBRUEsQ0FBQ0EsUUFBUUEsRUFBRUEsaUJBQWlCQSxFQUFFQSxrQkFBa0JBLEVBQUVBLGlCQUFpQkEsRUFBRUEsU0FBU0EsRUFBRUEsU0FBU0EsRUFBRUEsZ0JBQWdCQSxFQUFFQSxjQUFjQSxFQUFFQSxXQUFXQSxFQUFFQSxjQUFjQSxFQUFFQSxPQUFPQSxFQUFFQSxVQUFVQSxFQUFFQSxrQkFBa0JBLEVBQ2xRQSxVQUFDQSxNQUFNQSxFQUFFQSxlQUFpREEsRUFBRUEsZ0JBQWdCQSxFQUFFQSxlQUFlQSxFQUFFQSxPQUFPQSxFQUFFQSxPQUFPQSxFQUFFQSxjQUFjQSxFQUFFQSxZQUFZQSxFQUFFQSxTQUE2QkEsRUFBRUEsWUFBWUEsRUFBRUEsS0FBS0EsRUFBRUEsUUFBUUEsRUFBRUEsZ0JBQWdCQTtRQUUzTkEsTUFBTUEsQ0FBQ0EsVUFBVUEsR0FBR0EsZUFBZUEsQ0FBQ0E7UUFDcENBLE1BQU1BLENBQUNBLEtBQUtBLEdBQUdBLGVBQWVBLENBQUNBO1FBQy9CQSxNQUFNQSxDQUFDQSxnQkFBZ0JBLEdBQUdBLGdCQUFnQkEsQ0FBQ0E7UUFFM0NBLFVBQVVBLENBQUNBLFVBQVVBLENBQUNBLE1BQU1BLEVBQUVBLFNBQVNBLEVBQUVBLEtBQUtBLEVBQUVBLFFBQVFBLEVBQUVBLFlBQVlBLEVBQUVBLGVBQWVBLEVBQUVBLGVBQWVBLEVBQUVBLGdCQUFnQkEsQ0FBQ0EsQ0FBQ0E7UUFFNUhBLEFBR0FBOztXQURHQTtpQkFDTUEsVUFBVUE7WUFDakJxSixJQUFJQSxhQUFhQSxHQUFHQSxFQUFFQSxDQUFDQTtZQUN2QkEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsTUFBTUEsQ0FBQ0EsWUFBWUEsSUFBSUEsTUFBTUEsQ0FBQ0EsTUFBTUEsSUFBSUEsTUFBTUEsQ0FBQ0EsaUJBQWlCQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFDckVBLDZCQUFrQkEsQ0FBQ0EsTUFBTUEsQ0FBQ0EsWUFBWUEsRUFBRUEsTUFBTUEsQ0FBQ0EsTUFBTUEsQ0FBQ0EsQ0FBQ0E7Z0JBQ3ZEQSxNQUFNQSxDQUFDQSxPQUFPQSxHQUFHQSxJQUFJQSxDQUFDQTtnQkFFdEJBLE9BQU9BLENBQUNBLE9BQU9BLENBQUNBLE1BQU1BLENBQUNBLFlBQVlBLEVBQUVBLFVBQUNBLFdBQVdBO29CQUMvQ0EsSUFBSUEsV0FBV0EsR0FBR0EsaUJBQWlCQSxDQUFDQSxXQUFXQSxDQUFDQSxDQUFDQTtvQkFDakRBLEVBQUVBLENBQUNBLENBQUNBLFdBQVdBLENBQUNBLENBQUNBLENBQUNBO3dCQUNoQkEsYUFBYUEsQ0FBQ0EsV0FBV0EsQ0FBQ0EsR0FBR0E7NEJBQzNCQSxXQUFXQSxFQUFFQSxXQUFXQTs0QkFDeEJBLE1BQU1BLEVBQUVBLEVBQUVBOzRCQUNWQSxXQUFXQSxFQUFFQSxJQUFJQTs0QkFDakJBLGFBQWFBLEVBQUVBLEVBQUVBOzRCQUNqQkEsTUFBTUEsRUFBRUEsZ0JBQWdCQTt5QkFDekJBLENBQUFBO29CQUNIQSxDQUFDQTtnQkFDSEEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7Z0JBQ0hBLE9BQU9BLENBQUNBLE9BQU9BLENBQUNBLE1BQU1BLENBQUNBLE1BQU1BLEVBQUVBLFVBQUNBLEtBQUtBO29CQUNuQ0EsSUFBSUEsV0FBV0EsR0FBR0EsaUJBQWlCQSxDQUFDQSxLQUFLQSxDQUFDQSxDQUFDQTtvQkFDM0NBLEVBQUVBLENBQUNBLENBQUNBLFdBQVdBLENBQUNBLENBQUNBLENBQUNBO3dCQUNoQkEsSUFBSUEsUUFBUUEsR0FBR0EsYUFBYUEsQ0FBQ0EsV0FBV0EsQ0FBQ0EsQ0FBQ0E7d0JBQzFDQSxFQUFFQSxDQUFDQSxDQUFDQSxDQUFDQSxRQUFRQSxDQUFDQSxDQUFDQSxDQUFDQTs0QkFDZEEsQUFDQUEsb0lBRG9JQTs0QkFDcElBLE9BQU9BLENBQUNBLEdBQUdBLENBQUNBLHdEQUF3REEsR0FBR0EsV0FBV0EsR0FBR0EsYUFBYUEsR0FBR0EsS0FBS0EsQ0FBQ0EsS0FBS0EsQ0FBQ0EsQ0FBQ0E7d0JBQ3BIQSxDQUFDQTt3QkFBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0E7NEJBQ05BLFFBQVFBLENBQUNBLE1BQU1BLENBQUNBLElBQUlBLENBQUNBLEtBQUtBLENBQUNBLENBQUNBO3dCQUM5QkEsQ0FBQ0E7b0JBQ0hBLENBQUNBO2dCQUNIQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFFSEEsQUFLQUEsd0dBTHdHQTtnQkFHeEdBLHlHQUF5R0E7b0JBRXJHQSxTQUFTQSxHQUFHQSxFQUFFQSxDQUFDQTtnQkFDbkJBLE9BQU9BLENBQUNBLE9BQU9BLENBQUNBLGFBQWFBLEVBQUVBLFVBQUNBLFlBQVlBLEVBQUVBLEdBQUdBO29CQUMvQ0EsRUFBRUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsWUFBWUEsQ0FBQ0EsV0FBV0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7d0JBQzlCQSxBQUNBQSx5QkFEeUJBO3dCQUN6QkEsU0FBU0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsWUFBWUEsQ0FBQ0EsQ0FBQ0E7d0JBQzdCQSxBQUNBQSw2Q0FENkNBO3dCQUM3Q0EsWUFBWUEsQ0FBQ0EsYUFBYUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsWUFBWUEsQ0FBQ0EsQ0FBQ0E7d0JBQzlDQSxPQUFPQSxDQUFDQSxPQUFPQSxDQUFDQSxhQUFhQSxFQUFFQSxVQUFDQSxJQUFJQTs0QkFDbENBLEVBQUVBLENBQUNBLENBQUNBLElBQUlBLENBQUNBLFdBQVdBLEtBQUtBLEdBQUdBLENBQUNBLENBQUNBLENBQUNBO2dDQUM3QkEsWUFBWUEsQ0FBQ0EsYUFBYUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0E7NEJBQ3hDQSxDQUFDQTt3QkFDSEEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7b0JBQ0xBLENBQUNBO2dCQUNIQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFFSEEsT0FBT0EsQ0FBQ0EsT0FBT0EsQ0FBQ0EsTUFBTUEsQ0FBQ0EsaUJBQWlCQSxFQUFFQSxVQUFDQSxnQkFBZ0JBO29CQUN6REEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsZ0JBQWdCQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQSxDQUFDQTt3QkFDM0JBLGdCQUFnQkEsQ0FBQ0EsSUFBSUEsR0FBR0Esa0JBQWtCQSxDQUFDQTtvQkFDN0NBLENBQUNBO29CQUNEQSxPQUFPQSxDQUFDQSxPQUFPQSxDQUFDQSxnQkFBZ0JBLENBQUNBLFFBQVFBLEVBQUVBLFVBQUNBLE9BQU9BO3dCQUNqREEsSUFBSUEsSUFBSUEsR0FBR0EsT0FBT0EsQ0FBQ0EsSUFBSUEsQ0FBQ0E7d0JBQ3hCQSxJQUFJQSxpQkFBaUJBLEdBQUdBLE9BQU9BLENBQUNBLGlCQUFpQkEsQ0FBQ0E7d0JBQ2xEQSxFQUFFQSxDQUFDQSxDQUFDQSxpQkFBaUJBLElBQUlBLElBQUlBLEtBQUtBLGFBQWFBLENBQUNBLENBQUNBLENBQUNBOzRCQUNoREEsSUFBSUEsSUFBSUEsR0FBR0EsaUJBQWlCQSxDQUFDQSxJQUFJQSxDQUFDQTs0QkFDbENBLEVBQUVBLENBQUNBLENBQUNBLElBQUlBLENBQUNBLENBQUNBLENBQUNBO2dDQUNUQSxJQUFJQSxJQUFJQSxHQUFHQSxJQUFJQSxDQUFDQSxJQUFJQSxDQUFDQTtnQ0FDckJBLEVBQUVBLENBQUNBLENBQUNBLElBQUlBLENBQUNBLElBQUlBLEtBQUtBLGlCQUFpQkEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7b0NBQ3BDQSxJQUFJQSxHQUFHQSxHQUFHQSxpQkFBaUJBLENBQUNBLEdBQUdBLElBQUlBLFFBQVFBLENBQUNBO29DQUM1Q0EsRUFBRUEsQ0FBQ0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7d0NBQ1RBLEFBQ0FBLHNEQURzREE7d0NBQ3REQSxPQUFPQSxDQUFDQSxPQUFPQSxDQUFDQSxhQUFhQSxFQUFFQSxVQUFDQSxZQUFZQSxFQUFFQSxHQUFHQTs0Q0FDL0NBLElBQUlBLEVBQUVBLEdBQUdBLElBQUlBLENBQUNBLE9BQU9BLENBQUNBLFlBQVlBLEVBQUVBLENBQUNBLGFBQWFBLEVBQUVBLFlBQVlBLEVBQUVBLFFBQVFBLEVBQUVBLElBQUlBLENBQUNBLENBQUNBLENBQUNBOzRDQUNuRkEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsRUFBRUEsSUFBSUEsQ0FBQ0EsRUFBRUEsQ0FBQ0EsSUFBSUEsS0FBS0EsaUJBQWlCQSxJQUFJQSxFQUFFQSxDQUFDQSxJQUFJQSxLQUFLQSxhQUFhQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtnREFDdkVBLElBQUlBLE1BQU1BLEdBQUdBLEVBQUVBLENBQUNBLElBQUlBLENBQUNBO2dEQUNyQkEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsTUFBTUEsS0FBS0EsSUFBSUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7b0RBQ3BCQSxJQUFJQSxRQUFRQSxHQUFHQSxJQUFJQSxDQUFDQSxPQUFPQSxDQUFDQSxnQkFBZ0JBLEVBQUVBLENBQUNBLFVBQVVBLEVBQUVBLG9CQUFvQkEsRUFBRUEsVUFBVUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7b0RBQzlGQSxJQUFJQSxJQUFJQSxHQUFHQSxFQUFFQSxDQUFDQTtvREFDZEEsSUFBSUEsWUFBWUEsR0FBR0EsUUFBUUEsR0FBR0EsNEJBQWlCQSxDQUFDQSxRQUFRQSxFQUFFQSxlQUFlQSxDQUFDQSxnQkFBZ0JBLEVBQUVBLEVBQUVBLElBQUlBLENBQUNBLEdBQUdBLElBQUlBLENBQUNBO29EQUMzR0EsSUFBSUEsa0JBQWtCQSxHQUFHQTt3REFDdkJBLFdBQVdBLEVBQUVBLGdCQUFnQkE7d0RBQzdCQSxNQUFNQSxFQUFFQSxpQkFBaUJBO3dEQUN6QkEsWUFBWUEsRUFBRUEsWUFBWUE7d0RBQzFCQSxLQUFLQSxFQUFFQSxJQUFJQTtxREFDWkEsQ0FBQ0E7b0RBQ0ZBLFlBQVlBLENBQUNBLGFBQWFBLENBQUNBLElBQUlBLENBQUNBLGtCQUFrQkEsQ0FBQ0EsQ0FBQ0E7Z0RBQ3REQSxDQUFDQTs0Q0FDSEEsQ0FBQ0E7d0NBQ0hBLENBQUNBLENBQUNBLENBQUNBO29DQUNMQSxDQUFDQTtnQ0FDSEEsQ0FBQ0E7NEJBQ0hBLENBQUNBO3dCQUNIQSxDQUFDQTtvQkFDSEEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7Z0JBQ0xBLENBQUNBLENBQUNBLENBQUNBO2dCQUNIQSxNQUFNQSxDQUFDQSxTQUFTQSxHQUFHQSxTQUFTQSxDQUFDQTtZQUMvQkEsQ0FBQ0E7UUFDSEEsQ0FBQ0E7UUFFRHJKLEFBR0FBOztXQURHQTtpQkFDTUEsaUJBQWlCQSxDQUFDQSxXQUFXQTtZQUNwQzhMLE1BQU1BLENBQUNBLElBQUlBLENBQUNBLE9BQU9BLENBQUNBLFdBQVdBLEVBQUVBLENBQUNBLFlBQVlBLEVBQUVBLFFBQVFBLEVBQUVBLEtBQUtBLEVBQUVBLEtBQUtBLENBQUNBLENBQUNBLENBQUNBO1FBQzNFQSxDQUFDQTtRQUVEOUwsTUFBTUEsQ0FBQ0EsWUFBWUEsR0FBR0EsY0FBTUEsa0NBQWdCQSxFQUFoQkEsQ0FBZ0JBLENBQUNBO1FBQzdDQSxNQUFNQSxDQUFDQSxLQUFLQSxHQUFHQSxXQUFXQSxDQUFDQSxZQUFZQSxDQUFDQSxNQUFNQSxFQUFFQSxVQUFDQSxJQUFlQTtZQUM5REEsSUFBSUEsS0FBS0EsR0FBR0EsQ0FBQ0EsQ0FBQ0E7WUFDZEEsSUFBSUEsV0FBV0EsR0FBR0EsQ0FBQ0EsQ0FBQ0E7WUFFcEJBLFNBQVNBLFNBQVNBO2dCQUNoQitMLEVBQUVBLENBQUNBLENBQUNBLEVBQUVBLEtBQUtBLElBQUlBLFdBQVdBLENBQUNBLENBQUNBLENBQUNBO29CQUMzQkEsSUFBSUEsRUFBRUEsQ0FBQ0E7Z0JBQ1RBLENBQUNBO1lBQ0hBLENBQUNBO1lBRUQvTCxJQUFJQSxHQUFHQSxHQUFHQSx3QkFBYUEsRUFBRUEsQ0FBQ0E7WUFDMUJBLEtBQUtBLENBQUNBLEdBQUdBLENBQUNBLEdBQUdBLENBQUNBLENBQ1pBLE9BQU9BLENBQUNBLFVBQVVBLElBQUlBLEVBQUVBLE1BQU1BLEVBQUVBLE9BQU9BLEVBQUVBLE1BQU1BO2dCQUM3QyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO29CQUNULE1BQU0sQ0FBQyxNQUFNLEdBQUcsdUJBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ3pDLFVBQVUsRUFBRSxDQUFDO2dCQUNmLENBQUM7Z0JBQ0QsU0FBUyxFQUFFLENBQUM7WUFDZCxDQUFDLENBQUNBLENBQ0ZBLEtBQUtBLENBQUNBLFVBQVVBLElBQUlBLEVBQUVBLE1BQU1BLEVBQUVBLE9BQU9BLEVBQUVBLE1BQU1BO2dCQUMzQyxjQUFHLENBQUMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsSUFBSSxHQUFHLEdBQUcsR0FBRyxNQUFNLENBQUMsQ0FBQztnQkFDOUQsU0FBUyxFQUFFLENBQUM7WUFFZCxDQUFDLENBQUNBLENBQUNBO1lBQ0xBLEdBQUdBLEdBQUdBLDhCQUFtQkEsRUFBRUEsQ0FBQ0E7WUFDNUJBLEtBQUtBLENBQUNBLEdBQUdBLENBQUNBLEdBQUdBLENBQUNBLENBQ1pBLE9BQU9BLENBQUNBLFVBQVVBLElBQUlBLEVBQUVBLE1BQU1BLEVBQUVBLE9BQU9BLEVBQUVBLE1BQU1BO2dCQUM3QyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO29CQUNULE1BQU0sQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztvQkFDakMsVUFBVSxFQUFFLENBQUM7Z0JBQ2YsQ0FBQztnQkFDRCxTQUFTLEVBQUUsQ0FBQztZQUNkLENBQUMsQ0FBQ0EsQ0FDRkEsS0FBS0EsQ0FBQ0EsVUFBVUEsSUFBSUEsRUFBRUEsTUFBTUEsRUFBRUEsT0FBT0EsRUFBRUEsTUFBTUE7Z0JBQzNDLGNBQUcsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxJQUFJLEdBQUcsR0FBRyxHQUFHLE1BQU0sQ0FBQyxDQUFDO2dCQUM5RCxTQUFTLEVBQUUsQ0FBQztZQUNkLENBQUMsQ0FBQ0EsQ0FBQ0E7WUFDTEEsR0FBR0EsR0FBR0EsbUNBQXdCQSxFQUFFQSxDQUFDQTtZQUNqQ0EsS0FBS0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsQ0FDWkEsT0FBT0EsQ0FBQ0EsVUFBVUEsSUFBSUEsRUFBRUEsTUFBTUEsRUFBRUEsT0FBT0EsRUFBRUEsTUFBTUE7Z0JBQzdDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7b0JBQ1QsTUFBTSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7b0JBQ3RDLFVBQVUsRUFBRSxDQUFDO2dCQUNmLENBQUM7Z0JBQ0QsU0FBUyxFQUFFLENBQUM7WUFDZCxDQUFDLENBQUNBLENBQ0ZBLEtBQUtBLENBQUNBLFVBQVVBLElBQUlBLEVBQUVBLE1BQU1BLEVBQUVBLE9BQU9BLEVBQUVBLE1BQU1BO2dCQUMzQyxjQUFHLENBQUMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsSUFBSSxHQUFHLEdBQUcsR0FBRyxNQUFNLENBQUMsQ0FBQztnQkFDOUQsU0FBUyxFQUFFLENBQUM7WUFDZCxDQUFDLENBQUNBLENBQUNBO1FBQ1BBLENBQUNBLENBQUNBLENBQUNBO1FBRUhBLE1BQU1BLENBQUNBLEtBQUtBLEVBQUVBLENBQUNBO0lBQ2pCQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtBQUVSQSxDQUFDQSxFQTNLTSxVQUFVLEtBQVYsVUFBVSxRQTJLaEI7O0FDOUtELHlDQUF5QztBQUN6Qyw0Q0FBNEM7QUFDNUMsMkNBQTJDO0FBRTNDLElBQU8sVUFBVSxDQW1FaEI7QUFuRUQsV0FBTyxVQUFVLEVBQUMsQ0FBQztJQUVOQSx3QkFBYUEsR0FBR0EscUJBQVVBLENBQUNBLGVBQWVBLEVBQ25EQSxDQUFDQSxRQUFRQSxFQUFFQSxpQkFBaUJBLEVBQUVBLGlCQUFpQkEsRUFBRUEsaUJBQWlCQSxFQUFFQSxnQkFBZ0JBLEVBQUVBLFdBQVdBLEVBQUVBLGNBQWNBLEVBQUVBLE9BQU9BLEVBQUVBLFVBQVVBLEVBQUVBLFNBQVNBLEVBQUVBLGtCQUFrQkEsRUFDbktBLFVBQUNBLE1BQU1BLEVBQUVBLGVBQWtEQSxFQUFFQSxlQUFlQSxFQUFFQSxlQUFlQSxFQUM1RkEsY0FBdUNBLEVBQUVBLFNBQTZCQSxFQUFFQSxZQUFZQSxFQUFFQSxLQUFLQSxFQUFFQSxRQUFRQSxFQUFFQSxPQUFPQSxFQUFFQSxnQkFBZ0JBO1FBRW5JQSxNQUFNQSxDQUFDQSxVQUFVQSxHQUFHQSxlQUFlQSxDQUFDQTtRQUNwQ0EsTUFBTUEsQ0FBQ0EsS0FBS0EsR0FBR0EsZUFBZUEsQ0FBQ0E7UUFDL0JBLE1BQU1BLENBQUNBLE9BQU9BLEdBQUdBLEtBQUtBLENBQUNBO1FBQ3ZCQSxNQUFNQSxDQUFDQSxRQUFRQSxHQUFHQSxJQUFJQSxDQUFDQTtRQUV2QkEsTUFBTUEsQ0FBQ0EsVUFBVUEsR0FBR0E7WUFDbEJBLFVBQVVBLEVBQUVBO2dCQUNWQSxtQkFBbUJBLEVBQUVBO29CQUNuQkEsUUFBUUEsRUFBRUEsY0FBY0EsQ0FBQ0EsR0FBR0EsQ0FBQ0Esb0JBQW9CQSxDQUFDQTtpQkFDbkRBO2dCQUNEQSxjQUFjQSxFQUFFQTtvQkFDZEEsUUFBUUEsRUFBRUEsY0FBY0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EscUJBQXFCQSxDQUFDQTtpQkFDcERBO2dCQUNEQSxXQUFXQSxFQUFFQTtvQkFDWEEsUUFBUUEsRUFBRUEsY0FBY0EsQ0FBQ0EsR0FBR0EsQ0FBQ0Esc0JBQXNCQSxDQUFDQTtpQkFDckRBO2dCQUNEQSxhQUFhQSxFQUFFQTtvQkFDYkEsUUFBUUEsRUFBRUEsY0FBY0EsQ0FBQ0EsR0FBR0EsQ0FBQ0Esb0JBQW9CQSxDQUFDQTtpQkFDbkRBO2dCQUNEQSxlQUFlQSxFQUFFQTtvQkFDZkEsTUFBTUEsRUFBRUEsSUFBSUE7aUJBQ2JBO2FBQ0ZBO1NBQ0ZBLENBQUNBO1FBRUZBLFVBQVVBLENBQUNBLFVBQVVBLENBQUNBLE1BQU1BLEVBQUVBLFNBQVNBLEVBQUVBLEtBQUtBLEVBQUVBLFFBQVFBLEVBQUVBLFlBQVlBLEVBQUVBLGVBQWVBLEVBQUVBLGVBQWVBLEVBQUVBLGdCQUFnQkEsQ0FBQ0EsQ0FBQ0E7UUFFNUhBLE1BQU1BLENBQUNBLEdBQUdBLENBQUNBLHdCQUF3QkEsRUFBRUE7WUFDbkMsVUFBVSxFQUFFLENBQUM7UUFDZixDQUFDLENBQUNBLENBQUNBO1FBRUhBLE1BQU1BLENBQUNBLEdBQUdBLENBQUNBLGNBQWNBLEVBQUVBLFVBQUNBLE1BQU1BO1lBQ2hDQSxVQUFVQSxFQUFFQSxDQUFDQTtRQUNmQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUVIQSxNQUFNQSxDQUFDQSxNQUFNQSxDQUFDQSxZQUFZQSxFQUFFQSxVQUFDQSxRQUFRQSxFQUFFQSxRQUFRQTtZQUM3Q0EsVUFBVUEsRUFBRUEsQ0FBQ0E7UUFDZkEsQ0FBQ0EsRUFBRUEsSUFBSUEsQ0FBQ0EsQ0FBQ0E7UUFFVEEsTUFBTUEsQ0FBQ0EsT0FBT0EsR0FBR0E7WUFDZkEsTUFBTUEsQ0FBQ0EsT0FBT0EsR0FBR0EsQ0FBQ0EsTUFBTUEsQ0FBQ0EsT0FBT0EsQ0FBQ0E7WUFDakNBLElBQUlBLENBQUNBLE1BQU1BLENBQUNBLE1BQU1BLENBQUNBLENBQUNBO1FBQ3RCQSxDQUFDQSxDQUFDQTtRQUVGQSxNQUFNQSxDQUFDQSxRQUFRQSxHQUFHQTtZQUNoQkEsSUFBSUEsSUFBSUEsR0FBR0EsQ0FBQ0EsTUFBTUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0E7WUFDekJBLDBCQUFlQSxDQUFDQSxlQUFlQSxFQUFFQSxPQUFPQSxFQUFFQSxlQUFlQSxDQUFDQSxnQkFBZ0JBLEVBQUVBLEVBQUVBLElBQUlBLENBQUNBLENBQUNBO1FBQ3RGQSxDQUFDQSxDQUFDQTtRQUVGQSxVQUFVQSxFQUFFQSxDQUFDQTtRQUViQSxTQUFTQSxVQUFVQTtZQUNqQnFKLE1BQU1BLENBQUNBLEVBQUVBLEdBQUdBLFlBQVlBLENBQUNBLElBQUlBLENBQUNBLENBQUNBO1lBQy9CQSxNQUFNQSxDQUFDQSxJQUFJQSxHQUFHQSxNQUFNQSxDQUFDQSxLQUFLQSxDQUFDQSxNQUFNQSxDQUFDQSxlQUFlQSxDQUFDQSxpQkFBaUJBLEVBQUVBLE1BQU1BLENBQUNBLEVBQUVBLENBQUNBLENBQUNBO1lBQ2hGQSxFQUFFQSxDQUFDQSxDQUFDQSxNQUFNQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFDaEJBLE1BQU1BLENBQUNBLFFBQVFBLEdBQUdBLG9CQUFTQSxDQUFDQSxNQUFNQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQTtZQUMzQ0EsQ0FBQ0E7WUFDREEsSUFBSUEsQ0FBQ0EsTUFBTUEsQ0FBQ0EsTUFBTUEsQ0FBQ0EsQ0FBQ0E7UUFDdEJBLENBQUNBO0lBQ0hySixDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtBQUNOQSxDQUFDQSxFQW5FTSxVQUFVLEtBQVYsVUFBVSxRQW1FaEI7O0FDdkVELHlDQUF5QztBQUN6Qyw0Q0FBNEM7QUFDNUMsMkNBQTJDO0FBRTNDLElBQU8sVUFBVSxDQWdDaEI7QUFoQ0QsV0FBTyxVQUFVLEVBQUMsQ0FBQztJQUVOQSw0QkFBaUJBLEdBQUdBLHFCQUFVQSxDQUFDQSxtQkFBbUJBLEVBQzNEQSxDQUFDQSxRQUFRQSxFQUFFQSxpQkFBaUJBLEVBQUVBLGlCQUFpQkEsRUFBRUEsa0JBQWtCQSxFQUFFQSxnQkFBZ0JBLEVBQUVBLFdBQVdBLEVBQUVBLGNBQWNBLEVBQUVBLE9BQU9BLEVBQUVBLFVBQVVBLEVBQUVBLGtCQUFrQkEsRUFBRUEsZ0JBQWdCQSxFQUMzS0EsVUFBQ0EsTUFBTUEsRUFBRUEsZUFBa0RBLEVBQUVBLGVBQWVBLEVBQUVBLGdCQUFnQkEsRUFDN0ZBLGNBQXVDQSxFQUFFQSxTQUE2QkEsRUFBRUEsWUFBWUEsRUFBRUEsS0FBS0EsRUFBRUEsUUFBUUEsRUFBRUEsZ0JBQWdCQSxFQUFFQSxPQUFrQ0E7UUFFOUpBLE1BQU1BLENBQUNBLFVBQVVBLEdBQUdBLGVBQWVBLENBQUNBO1FBQ3BDQSxNQUFNQSxDQUFDQSxLQUFLQSxHQUFHQSxlQUFlQSxDQUFDQTtRQUMvQkEsTUFBTUEsQ0FBQ0EsRUFBRUEsR0FBR0EsWUFBWUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0E7UUFDL0JBLE1BQU1BLENBQUNBLE1BQU1BLEdBQUdBLGdCQUFnQkEsQ0FBQ0E7UUFDakNBLE1BQU1BLENBQUNBLE1BQU1BLEdBQUdBLE9BQU9BLENBQUNBLFdBQVdBLENBQUNBLHFDQUFxQ0EsQ0FBQ0EsQ0FBQ0E7UUFDM0VBLEFBRUFBLHNFQUZzRUE7UUFFdEVBLFVBQVVBLENBQUNBLFVBQVVBLENBQUNBLE1BQU1BLEVBQUVBLFNBQVNBLEVBQUVBLEtBQUtBLEVBQUVBLFFBQVFBLEVBQUVBLFlBQVlBLEVBQUVBLGVBQWVBLEVBQUVBLGVBQWVBLEVBQUVBLGdCQUFnQkEsQ0FBQ0EsQ0FBQ0E7UUFFNUhBLE1BQU1BLENBQUNBLEdBQUdBLENBQUNBLGNBQWNBLEVBQUVBLFVBQUNBLE1BQU1BO1lBQ2hDQSxVQUFVQSxFQUFFQSxDQUFDQTtRQUNmQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUVIQSxVQUFVQSxFQUFFQSxDQUFDQTtRQUViQSxTQUFTQSxVQUFVQTtZQUNqQnFKLEVBQUVBLENBQUNBLENBQUNBLE1BQU1BLENBQUNBLEVBQUVBLENBQUNBLENBQUNBLENBQUNBO2dCQUNkQSxNQUFNQSxDQUFDQSxNQUFNQSxHQUFHQSxNQUFNQSxDQUFDQSxLQUFLQSxDQUFDQSxNQUFNQSxDQUFDQSxlQUFlQSxDQUFDQSxpQkFBaUJBLEVBQUVBLE1BQU1BLENBQUNBLEVBQUVBLENBQUNBLENBQUNBO2dCQUNsRkEsSUFBSUEsQ0FBQ0EsTUFBTUEsQ0FBQ0EsTUFBTUEsQ0FBQ0EsQ0FBQ0E7Z0JBQ3BCQSxNQUFNQSxDQUFDQSxPQUFPQSxHQUFHQSxJQUFJQSxDQUFDQTtZQUN4QkEsQ0FBQ0E7WUFBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0E7Z0JBQ05BLE1BQU1BLENBQUNBLE9BQU9BLEdBQUdBLElBQUlBLENBQUNBO1lBQ3hCQSxDQUFDQTtRQUNIQSxDQUFDQTtJQUNIckosQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7QUFDTkEsQ0FBQ0EsRUFoQ00sVUFBVSxLQUFWLFVBQVUsUUFnQ2hCOztBQ3BDRCx5Q0FBeUM7QUFDekMsMkNBQTJDO0FBQzNDLHNDQUFzQztBQUV0QyxJQUFPLFVBQVUsQ0FvSWhCO0FBcElELFdBQU8sVUFBVSxFQUFDLENBQUM7SUFFTkEsa0JBQU9BLEdBQUdBLHFCQUFVQSxDQUFDQSxTQUFTQSxFQUFFQSxDQUFDQSxRQUFRQSxFQUFFQSxVQUFDQSxNQUFNQTtRQUMzREEsSUFBSUEsS0FBS0EsR0FBR0EsTUFBTUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsS0FBS0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsQ0FBQ0E7UUFDbkNBLE1BQU1BLENBQUNBLEdBQUdBLEdBQUdBLEtBQUtBLENBQUNBLEtBQUtBLEVBQUVBLENBQUNBO1FBQzNCQSxNQUFNQSxDQUFDQSxLQUFLQSxHQUFHQSxLQUFLQSxDQUFDQSxJQUFJQSxDQUFDQSxHQUFHQSxDQUFDQSxDQUFDQTtJQUNqQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7SUFFSkEsQUFDQUEsK0JBRCtCQTtJQUNwQkEsZUFBSUEsR0FBR0EscUJBQVVBLENBQUNBLE1BQU1BLEVBQUVBLENBQUNBLFFBQVFBLEVBQUVBLGlCQUFpQkEsRUFBRUEsZ0JBQWdCQSxFQUFFQSxpQkFBaUJBLEVBQUVBLGlCQUFpQkEsRUFBRUEsU0FBU0EsRUFBRUEsU0FBU0EsRUFBRUEsZ0JBQWdCQSxFQUFFQSxjQUFjQSxFQUFFQSxXQUFXQSxFQUFFQSxjQUFjQSxFQUFFQSxPQUFPQSxFQUFFQSxVQUFVQSxFQUFFQSxrQkFBa0JBLEVBQ3JQQSxVQUFDQSxNQUFNQSxFQUFFQSxlQUFrREEsRUFBRUEsY0FBeUNBLEVBQUVBLGVBQWVBLEVBQUVBLGVBQWVBLEVBQUVBLE9BQU9BLEVBQUVBLE9BQU9BLEVBQUVBLGNBQWNBLEVBQUVBLFlBQVlBLEVBQUVBLFNBQTZCQSxFQUFFQSxZQUFZQSxFQUFFQSxLQUFLQSxFQUFFQSxRQUFRQSxFQUFFQSxnQkFBZ0JBO1FBRXhRQSxNQUFNQSxDQUFDQSxVQUFVQSxHQUFHQSxlQUFlQSxDQUFDQTtRQUNwQ0EsTUFBTUEsQ0FBQ0EsS0FBS0EsR0FBR0EsZUFBZUEsQ0FBQ0E7UUFDL0JBLE1BQU1BLENBQUNBLEdBQUdBLENBQUNBLHdCQUF3QkEsRUFBRUE7WUFDbkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN0QixDQUFDLENBQUNBLENBQUNBO1FBRUhBLE1BQU1BLENBQUNBLFVBQVVBLEdBQUdBLEtBQUtBLENBQUNBLHVCQUF1QkEsRUFBRUEsQ0FBQ0E7UUFFcERBLE1BQU1BLENBQUNBLFdBQVdBLEdBQUdBO1lBQ25CQSxJQUFJQSxFQUFFQSxZQUFZQTtZQUNsQkEscUJBQXFCQSxFQUFFQSxJQUFJQTtZQUMzQkEsdUJBQXVCQSxFQUFFQSxLQUFLQTtZQUM5QkEsV0FBV0EsRUFBRUEsSUFBSUE7WUFDakJBLGFBQWFBLEVBQUVBLEVBQUVBO1lBQ2pCQSxhQUFhQSxFQUFFQTtnQkFDYkEsVUFBVUEsRUFBRUEsU0FBU0EsQ0FBQ0EsTUFBTUEsRUFBRUEsQ0FBQ0EsR0FBR0EsQ0FBQ0EsSUFBSUEsRUFBRUE7YUFDMUNBO1lBQ0RBLFVBQVVBLEVBQUVBO2dCQUNWQTtvQkFDRUEsS0FBS0EsRUFBRUEsTUFBTUE7b0JBQ2JBLFdBQVdBLEVBQUVBLE1BQU1BO29CQUNuQkEsV0FBV0EsRUFBRUEsSUFBSUE7b0JBQ2pCQSxZQUFZQSxFQUFFQSxjQUFjQSxDQUFDQSxHQUFHQSxDQUFDQSxpQkFBaUJBLENBQUNBO2lCQUNwREE7Z0JBQ0RBO29CQUNFQSxLQUFLQSxFQUFFQSxZQUFZQTtvQkFDbkJBLFdBQVdBLEVBQUVBLFFBQVFBO29CQUNyQkEsWUFBWUEsRUFBRUEsY0FBY0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EscUJBQXFCQSxDQUFDQTtpQkFDeERBO2dCQUNEQSxFQUFFQSxLQUFLQSxFQUFFQSxhQUFhQSxFQUNwQkEsV0FBV0EsRUFBRUEsUUFBUUEsRUFDckJBLFlBQVlBLEVBQUVBLGNBQWNBLENBQUNBLEdBQUdBLENBQUNBLDJCQUEyQkEsQ0FBQ0EsRUFDOURBO2dCQUNEQTtvQkFDRUEsS0FBS0EsRUFBRUEsZUFBZUE7b0JBQ3RCQSxXQUFXQSxFQUFFQSxVQUFVQTtpQkFDeEJBO2dCQUNEQTtvQkFDRUEsS0FBS0EsRUFBRUEsY0FBY0E7b0JBQ3JCQSxXQUFXQSxFQUFFQSxLQUFLQTtvQkFDbEJBLFlBQVlBLEVBQUVBLGNBQWNBLENBQUNBLEdBQUdBLENBQUNBLGtCQUFrQkEsQ0FBQ0E7aUJBQ3JEQTtnQkFDREE7b0JBQ0VBLEtBQUtBLEVBQUVBLGFBQWFBO29CQUNwQkEsV0FBV0EsRUFBRUEsUUFBUUE7b0JBQ3JCQSxZQUFZQSxFQUFFQSxjQUFjQSxDQUFDQSxHQUFHQSxDQUFDQSxvQkFBb0JBLENBQUNBO2lCQUN2REE7Z0JBQ0RBO29CQUNFQSxLQUFLQSxFQUFFQSxPQUFPQTtvQkFDZEEsV0FBV0EsRUFBRUEsTUFBTUE7b0JBQ25CQSxZQUFZQSxFQUFFQSxjQUFjQSxDQUFDQSxHQUFHQSxDQUFDQSxtQkFBbUJBLENBQUNBO2lCQUN0REE7Z0JBQ0RBO29CQUNFQSxLQUFLQSxFQUFFQSxhQUFhQTtvQkFDcEJBLFdBQVdBLEVBQUVBLFFBQVFBO29CQUNyQkEsWUFBWUEsRUFBRUEsY0FBY0EsQ0FBQ0EsR0FBR0EsQ0FBQ0Esb0JBQW9CQSxDQUFDQTtpQkFDdkRBO2dCQUNEQTtvQkFDRUEsS0FBS0EsRUFBRUEsUUFBUUE7b0JBQ2ZBLFdBQVdBLEVBQUVBLFFBQVFBO29CQUNyQkEsZUFBZUEsRUFBRUEsVUFBQ0EsS0FBS0E7d0JBQ3JCQSxBQUNBQSx1Q0FEdUNBO3dCQUN2Q0EsTUFBTUEsQ0FBQ0EsVUFBVUEsQ0FBQ0EsV0FBV0EsQ0FBQ0EsS0FBS0EsQ0FBQ0EsTUFBTUEsQ0FBQ0EsQ0FBQ0E7b0JBQzlDQSxDQUFDQTtpQkFDRkE7YUFDRkE7U0FDRkEsQ0FBQ0E7UUFFRkEsTUFBTUEsQ0FBQ0EsUUFBUUEsR0FBR0E7WUFDaEJBLElBQUlBLElBQUlBLEdBQUdBLE1BQU1BLENBQUNBLFdBQVdBLENBQUNBLGFBQWFBLENBQUNBO1lBQzVDQSxFQUFFQSxDQUFDQSxDQUFDQSxDQUFDQSxJQUFJQSxJQUFJQSxDQUFDQSxJQUFJQSxDQUFDQSxNQUFNQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFDMUJBLEVBQUVBLENBQUNBLENBQUNBLE1BQU1BLENBQUNBLEVBQUVBLENBQUNBLENBQUNBLENBQUNBO29CQUNkQSxJQUFJQSxJQUFJQSxHQUFHQSxNQUFNQSxDQUFDQSxJQUFJQSxDQUFDQTtvQkFDdkJBLEVBQUVBLENBQUNBLENBQUNBLElBQUlBLENBQUNBLENBQUNBLENBQUNBO3dCQUNUQSxJQUFJQSxHQUFHQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQTtvQkFDaEJBLENBQUNBO2dCQUNIQSxDQUFDQTtZQUNIQSxDQUFDQTtZQUNEQSwwQkFBZUEsQ0FBQ0EsZUFBZUEsRUFBRUEsT0FBT0EsRUFBRUEsZUFBZUEsQ0FBQ0EsZ0JBQWdCQSxFQUFFQSxFQUFFQSxJQUFJQSxDQUFDQSxDQUFDQTtRQUN0RkEsQ0FBQ0EsQ0FBQ0E7UUFFRkEsVUFBVUEsQ0FBQ0EsVUFBVUEsQ0FBQ0EsTUFBTUEsRUFBRUEsU0FBU0EsRUFBRUEsS0FBS0EsRUFBRUEsUUFBUUEsRUFBRUEsWUFBWUEsRUFBRUEsZUFBZUEsRUFBRUEsZUFBZUEsRUFBRUEsZ0JBQWdCQSxDQUFDQSxDQUFDQTtRQUU1SEEsTUFBTUEsQ0FBQ0EsWUFBWUEsR0FBR0EsVUFBQ0EsUUFBUUE7WUFDN0JBLEVBQUVBLENBQUNBLENBQUNBLE9BQU9BLENBQUNBLFFBQVFBLENBQUNBLFFBQVFBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO2dCQUMvQkEsUUFBUUEsR0FBR0EsQ0FBQ0E7b0JBQ1ZBLEVBQUVBLEVBQUVBLFFBQVFBO2lCQUNiQSxDQUFDQSxDQUFDQTtZQUNMQSxDQUFDQTtZQUNEQSxFQUFFQSxDQUFDQSw0QkFBNEJBLENBQW1DQTtnQkFDaEVBLFVBQVVBLEVBQUVBLFFBQVFBO2dCQUNwQkEsS0FBS0EsRUFBRUEsZUFBZUE7Z0JBQ3RCQSxPQUFPQSxFQUFFQSxVQUFDQSxNQUFjQTtvQkFDdEJBLEVBQUVBLENBQUNBLENBQUNBLE1BQU1BLENBQUNBLENBQUNBLENBQUNBO3dCQUNYQSxTQUFTQSxjQUFjQSxDQUFDQSxRQUF1QkEsRUFBRUEsSUFBWUE7NEJBQzNEb0osRUFBRUEsQ0FBQ0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7Z0NBQ1RBLGNBQUdBLENBQUNBLEtBQUtBLENBQUNBLFlBQVlBLEVBQUVBLGtCQUFPQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQSxDQUFDQTtnQ0FDdkNBLGNBQWNBLENBQUNBLE1BQU1BLENBQUNBO29DQUNwQkEsRUFBRUEsRUFBRUEsa0JBQU9BLENBQUNBLElBQUlBLENBQUNBO2lDQUNsQkEsRUFBRUEsU0FBU0EsRUFBRUE7b0NBQ1pBLGNBQUdBLENBQUNBLEtBQUtBLENBQUNBLFdBQVdBLEVBQUVBLGtCQUFPQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQSxDQUFDQTtvQ0FDdENBLGNBQWNBLENBQUNBLFFBQVFBLEVBQUVBLFFBQVFBLENBQUNBLEtBQUtBLEVBQUVBLENBQUNBLENBQUNBO2dDQUM3Q0EsQ0FBQ0EsRUFBRUEsVUFBQ0EsS0FBS0E7b0NBQ1BBLGNBQUdBLENBQUNBLEtBQUtBLENBQUNBLGtCQUFrQkEsRUFBRUEsS0FBS0EsQ0FBQ0EsQ0FBQ0E7b0NBQ3JDQSxjQUFjQSxDQUFDQSxRQUFRQSxFQUFFQSxRQUFRQSxDQUFDQSxLQUFLQSxFQUFFQSxDQUFDQSxDQUFDQTtnQ0FDN0NBLENBQUNBLENBQUNBLENBQUNBOzRCQUNMQSxDQUFDQTt3QkFDSEEsQ0FBQ0E7d0JBQ0RwSixjQUFjQSxDQUFDQSxRQUFRQSxFQUFFQSxRQUFRQSxDQUFDQSxLQUFLQSxFQUFFQSxDQUFDQSxDQUFDQTtvQkFDN0NBLENBQUNBO2dCQUNIQSxDQUFDQTtnQkFDREEsS0FBS0EsRUFBRUEsY0FBY0E7Z0JBQ3JCQSxNQUFNQSxFQUFFQSxxQ0FBcUNBO2dCQUM3Q0EsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxPQUFPQSxFQUFFQSxZQUFZQTtnQkFDckJBLE1BQU1BLEVBQUVBLDZDQUE2Q0E7Z0JBQ3JEQSxXQUFXQSxFQUFFQSxxQkFBcUJBO2FBQ25DQSxDQUFDQSxDQUFDQSxJQUFJQSxFQUFFQSxDQUFDQTtRQUNaQSxDQUFDQSxDQUFDQTtJQUNKQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtBQUNOQSxDQUFDQSxFQXBJTSxVQUFVLEtBQVYsVUFBVSxRQW9JaEI7O0FDeElELHlDQUF5QztBQUN6Qyw0Q0FBNEM7QUFDNUMsMkNBQTJDO0FBRTNDLElBQU8sVUFBVSxDQW1EaEI7QUFuREQsV0FBTyxVQUFVLEVBQUMsQ0FBQztJQUVOQSwwQ0FBK0JBLEdBQUdBLHFCQUFVQSxDQUFDQSxpQ0FBaUNBLEVBQ3ZGQSxDQUFDQSxRQUFRQSxFQUFFQSxpQkFBaUJBLEVBQUVBLGlCQUFpQkEsRUFBRUEsZ0JBQWdCQSxFQUFFQSxXQUFXQSxFQUFFQSxjQUFjQSxFQUFFQSxPQUFPQSxFQUFFQSxVQUFVQSxFQUFFQSxrQkFBa0JBLEVBQ3JJQSxVQUFDQSxNQUFNQSxFQUFFQSxlQUFrREEsRUFBRUEsZUFBZUEsRUFDM0VBLGNBQXVDQSxFQUFFQSxTQUE2QkEsRUFBRUEsWUFBWUEsRUFBRUEsS0FBS0EsRUFBRUEsUUFBUUEsRUFBRUEsZ0JBQWdCQTtRQUUxSEEsTUFBTUEsQ0FBQ0EsVUFBVUEsR0FBR0EsZUFBZUEsQ0FBQ0E7UUFDcENBLE1BQU1BLENBQUNBLEtBQUtBLEdBQUdBLGVBQWVBLENBQUNBO1FBQy9CQSxNQUFNQSxDQUFDQSxPQUFPQSxHQUFHQSxLQUFLQSxDQUFDQTtRQUN2QkEsTUFBTUEsQ0FBQ0EsUUFBUUEsR0FBR0EsSUFBSUEsQ0FBQ0E7UUFFdkJBLFVBQVVBLENBQUNBLFVBQVVBLENBQUNBLE1BQU1BLEVBQUVBLFNBQVNBLEVBQUVBLEtBQUtBLEVBQUVBLFFBQVFBLEVBQUVBLFlBQVlBLEVBQUVBLGVBQWVBLEVBQUVBLGVBQWVBLEVBQUVBLGdCQUFnQkEsQ0FBQ0EsQ0FBQ0E7UUFFNUhBLE1BQU1BLENBQUNBLFVBQVVBLEdBQUdBO1lBQ2xCQSxVQUFVQSxFQUFFQTtnQkFDVkEsYUFBYUEsRUFBRUE7b0JBQ2JBLFFBQVFBLEVBQUVBLGNBQWNBLENBQUNBLEdBQUdBLENBQUNBLG9CQUFvQkEsQ0FBQ0E7aUJBQ25EQTthQUNGQTtTQUNGQSxDQUFDQTtRQUVGQSxNQUFNQSxDQUFDQSxHQUFHQSxDQUFDQSx3QkFBd0JBLEVBQUVBO1lBQ25DLFVBQVUsRUFBRSxDQUFDO1FBQ2YsQ0FBQyxDQUFDQSxDQUFDQTtRQUVIQSxNQUFNQSxDQUFDQSxHQUFHQSxDQUFDQSxjQUFjQSxFQUFFQSxVQUFDQSxNQUFNQTtZQUNoQ0EsVUFBVUEsRUFBRUEsQ0FBQ0E7UUFDZkEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7UUFFSEEsTUFBTUEsQ0FBQ0EsTUFBTUEsQ0FBQ0EsWUFBWUEsRUFBRUEsVUFBQ0EsUUFBUUEsRUFBRUEsUUFBUUE7WUFDN0NBLFVBQVVBLEVBQUVBLENBQUNBO1FBQ2ZBLENBQUNBLEVBQUVBLElBQUlBLENBQUNBLENBQUNBO1FBRVRBLE1BQU1BLENBQUNBLE9BQU9BLEdBQUdBO1lBQ2ZBLE1BQU1BLENBQUNBLE9BQU9BLEdBQUdBLENBQUNBLE1BQU1BLENBQUNBLE9BQU9BLENBQUNBO1lBQ2pDQSxJQUFJQSxDQUFDQSxNQUFNQSxDQUFDQSxNQUFNQSxDQUFDQSxDQUFDQTtRQUN0QkEsQ0FBQ0EsQ0FBQ0E7UUFFRkEsVUFBVUEsRUFBRUEsQ0FBQ0E7UUFFYkEsU0FBU0EsVUFBVUE7WUFDakJxSixNQUFNQSxDQUFDQSxFQUFFQSxHQUFHQSxZQUFZQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQTtZQUMvQkEsTUFBTUEsQ0FBQ0EsSUFBSUEsR0FBR0EsTUFBTUEsQ0FBQ0EsS0FBS0EsQ0FBQ0Esd0JBQXdCQSxDQUFDQSxlQUFlQSxDQUFDQSxpQkFBaUJBLEVBQUVBLE1BQU1BLENBQUNBLEVBQUVBLENBQUNBLENBQUNBO1lBQ2xHQSxFQUFFQSxDQUFDQSxDQUFDQSxNQUFNQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFDaEJBLE1BQU1BLENBQUNBLFFBQVFBLEdBQUdBLG9CQUFTQSxDQUFDQSxNQUFNQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQTtZQUMzQ0EsQ0FBQ0E7WUFFREEsSUFBSUEsQ0FBQ0EsTUFBTUEsQ0FBQ0EsTUFBTUEsQ0FBQ0EsQ0FBQ0E7UUFDdEJBLENBQUNBO0lBQ0hySixDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtBQUNOQSxDQUFDQSxFQW5ETSxVQUFVLEtBQVYsVUFBVSxRQW1EaEI7O0FDdkRELHlDQUF5QztBQUN6Qyw0Q0FBNEM7QUFDNUMsMkNBQTJDO0FBRTNDLElBQU8sVUFBVSxDQWlDaEI7QUFqQ0QsV0FBTyxVQUFVLEVBQUMsQ0FBQztJQUVOQSw4Q0FBbUNBLEdBQUdBLHFCQUFVQSxDQUFDQSxxQ0FBcUNBLEVBQy9GQSxDQUFDQSxRQUFRQSxFQUFFQSxpQkFBaUJBLEVBQUVBLGlCQUFpQkEsRUFBRUEsa0JBQWtCQSxFQUFFQSxnQkFBZ0JBLEVBQUVBLFdBQVdBLEVBQUVBLGNBQWNBLEVBQUVBLE9BQU9BLEVBQUVBLFVBQVVBLEVBQUVBLGtCQUFrQkEsRUFBRUEsZ0JBQWdCQSxFQUMzS0EsVUFBQ0EsTUFBTUEsRUFBRUEsZUFBa0RBLEVBQUVBLGVBQWVBLEVBQUVBLGdCQUFnQkEsRUFDN0ZBLGNBQXVDQSxFQUFFQSxTQUE2QkEsRUFBRUEsWUFBWUEsRUFBRUEsS0FBS0EsRUFBRUEsUUFBUUEsRUFBRUEsZ0JBQWdCQSxFQUFFQSxPQUFrQ0E7UUFFOUpBLE1BQU1BLENBQUNBLFVBQVVBLEdBQUdBLGVBQWVBLENBQUNBO1FBQ3BDQSxNQUFNQSxDQUFDQSxLQUFLQSxHQUFHQSxlQUFlQSxDQUFDQTtRQUMvQkEsTUFBTUEsQ0FBQ0EsRUFBRUEsR0FBR0EsWUFBWUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0E7UUFDL0JBLE1BQU1BLENBQUNBLE1BQU1BLEdBQUdBLGdCQUFnQkEsQ0FBQ0E7UUFDakNBLGNBQUdBLENBQUNBLEtBQUtBLENBQUNBLFVBQVVBLEVBQUVBLE1BQU1BLENBQUNBLE1BQU1BLENBQUNBLENBQUNBO1FBQ3JDQSxNQUFNQSxDQUFDQSxNQUFNQSxHQUFHQSxPQUFPQSxDQUFDQSxXQUFXQSxDQUFDQSx1REFBdURBLENBQUNBLENBQUNBO1FBQzdGQSxBQUVBQSx5RkFGeUZBO1FBRXpGQSxVQUFVQSxDQUFDQSxVQUFVQSxDQUFDQSxNQUFNQSxFQUFFQSxTQUFTQSxFQUFFQSxLQUFLQSxFQUFFQSxRQUFRQSxFQUFFQSxZQUFZQSxFQUFFQSxlQUFlQSxFQUFFQSxlQUFlQSxFQUFFQSxnQkFBZ0JBLENBQUNBLENBQUNBO1FBRTVIQSxNQUFNQSxDQUFDQSxHQUFHQSxDQUFDQSxjQUFjQSxFQUFFQSxVQUFDQSxNQUFNQTtZQUNoQ0EsVUFBVUEsRUFBRUEsQ0FBQ0E7UUFDZkEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7UUFFSEEsVUFBVUEsRUFBRUEsQ0FBQ0E7UUFFYkEsU0FBU0EsVUFBVUE7WUFDakJxSixFQUFFQSxDQUFDQSxDQUFDQSxNQUFNQSxDQUFDQSxFQUFFQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFDZEEsTUFBTUEsQ0FBQ0EsTUFBTUEsR0FBR0EsTUFBTUEsQ0FBQ0EsS0FBS0EsQ0FBQ0Esd0JBQXdCQSxDQUFDQSxlQUFlQSxDQUFDQSxpQkFBaUJBLEVBQUVBLE1BQU1BLENBQUNBLEVBQUVBLENBQUNBLENBQUNBO2dCQUNwR0EsSUFBSUEsQ0FBQ0EsTUFBTUEsQ0FBQ0EsTUFBTUEsQ0FBQ0EsQ0FBQ0E7Z0JBQ3BCQSxNQUFNQSxDQUFDQSxPQUFPQSxHQUFHQSxJQUFJQSxDQUFDQTtZQUN4QkEsQ0FBQ0E7WUFBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0E7Z0JBQ05BLE1BQU1BLENBQUNBLE9BQU9BLEdBQUdBLElBQUlBLENBQUNBO1lBQ3hCQSxDQUFDQTtRQUNIQSxDQUFDQTtJQUNIckosQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7QUFDTkEsQ0FBQ0EsRUFqQ00sVUFBVSxLQUFWLFVBQVUsUUFpQ2hCOztBQ3JDRCx5Q0FBeUM7QUFDekMsNENBQTRDO0FBQzVDLDJDQUEyQztBQUUzQyxJQUFPLFVBQVUsQ0EwRmhCO0FBMUZELFdBQU8sVUFBVSxFQUFDLENBQUM7SUFFTkEsaUNBQXNCQSxHQUFHQSxxQkFBVUEsQ0FBQ0Esd0JBQXdCQSxFQUNyRUEsQ0FBQ0EsUUFBUUEsRUFBRUEsaUJBQWlCQSxFQUFFQSxrQ0FBa0NBLEVBQUVBLGdCQUFnQkEsRUFBRUEsaUJBQWlCQSxFQUFFQSxnQkFBZ0JBLEVBQUVBLFdBQVdBLEVBQUVBLGNBQWNBLEVBQUVBLE9BQU9BLEVBQUVBLFVBQVVBLEVBQUVBLGtCQUFrQkEsRUFDM0xBLFVBQUNBLE1BQU1BLEVBQUVBLGVBQWtEQSxFQUFFQSxnQ0FBMkRBLEVBQUVBLGNBQXlDQSxFQUFFQSxlQUFlQSxFQUNuTEEsY0FBdUNBLEVBQUVBLFNBQTZCQSxFQUFFQSxZQUFZQSxFQUFFQSxLQUFLQSxFQUFFQSxRQUFRQSxFQUFFQSxnQkFBZ0JBO1FBRTFIQSxNQUFNQSxDQUFDQSxVQUFVQSxHQUFHQSxlQUFlQSxDQUFDQTtRQUNwQ0EsTUFBTUEsQ0FBQ0EsS0FBS0EsR0FBR0EsZUFBZUEsQ0FBQ0E7UUFFL0JBLE1BQU1BLENBQUNBLFdBQVdBLEdBQUdBO1lBQ25CQSxJQUFJQSxFQUFFQSw4QkFBOEJBO1lBQ3BDQSxxQkFBcUJBLEVBQUVBLElBQUlBO1lBQzNCQSx1QkFBdUJBLEVBQUVBLEtBQUtBO1lBQzlCQSxXQUFXQSxFQUFFQSxJQUFJQTtZQUNqQkEsYUFBYUEsRUFBRUEsRUFBRUE7WUFDakJBLGFBQWFBLEVBQUVBO2dCQUNiQSxVQUFVQSxFQUFFQSxTQUFTQSxDQUFDQSxNQUFNQSxFQUFFQSxDQUFDQSxHQUFHQSxDQUFDQSxJQUFJQSxFQUFFQTthQUMxQ0E7WUFDREEsVUFBVUEsRUFBRUE7Z0JBQ1ZBLEVBQUVBLEtBQUtBLEVBQUVBLE1BQU1BLEVBQ2JBLFdBQVdBLEVBQUVBLE1BQU1BLEVBQ25CQSxZQUFZQSxFQUFFQSxjQUFjQSxDQUFDQSxHQUFHQSxDQUFDQSxpQkFBaUJBLENBQUNBLEVBQ3BEQTtnQkFDREEsRUFBRUEsS0FBS0EsRUFBRUEsV0FBV0EsRUFDbEJBLFdBQVdBLEVBQUVBLE1BQU1BLEVBQ25CQSxZQUFZQSxFQUFFQSxjQUFjQSxDQUFDQSxHQUFHQSxDQUFDQSwrQkFBK0JBLENBQUNBLEVBQ2pFQSxlQUFlQSxFQUFFQSxVQUFDQSxLQUFLQTtvQkFDckJBLEFBQ0FBLHNDQURzQ0E7d0JBQ2xDQSxLQUFLQSxHQUFHQSxLQUFLQSxDQUFDQSxZQUFZQSxDQUFDQSxLQUFLQSxJQUFJQSxDQUFDQSxDQUFDQTtvQkFDMUNBLElBQUlBLEtBQUtBLEdBQUdBLEtBQUtBLENBQUNBLFlBQVlBLENBQUNBLEtBQUtBLElBQUlBLENBQUNBLENBQUNBO29CQUMxQ0EsSUFBSUEsT0FBT0EsR0FBR0EsS0FBS0EsQ0FBQ0EsWUFBWUEsQ0FBQ0EsT0FBT0EsSUFBSUEsQ0FBQ0EsQ0FBQ0E7b0JBQzlDQSxJQUFJQSxLQUFLQSxHQUFHQSxLQUFLQSxDQUFDQSxZQUFZQSxDQUFDQSxLQUFLQSxJQUFJQSxDQUFDQSxDQUFDQTtvQkFDMUNBLE1BQU1BLENBQUNBLEtBQUtBLEdBQUdBLEtBQUtBLEdBQUdBLE9BQU9BLEdBQUdBLEtBQUtBLENBQUNBO2dCQUN6Q0EsQ0FBQ0EsRUFDRkE7Z0JBQ0RBLEVBQUVBLEtBQUtBLEVBQUVBLFdBQVdBLEVBQ2xCQSxXQUFXQSxFQUFFQSxVQUFVQSxFQUN2QkEsWUFBWUEsRUFBQ0EsY0FBY0EsQ0FBQ0EsR0FBR0EsQ0FBQ0Esc0JBQXNCQSxDQUFDQSxFQUN4REE7Z0JBQ0RBLEVBQUVBLEtBQUtBLEVBQUVBLGFBQWFBLEVBQ3BCQSxXQUFXQSxFQUFFQSxRQUFRQSxFQUNyQkEsWUFBWUEsRUFBRUEsY0FBY0EsQ0FBQ0EsR0FBR0EsQ0FBQ0Esb0JBQW9CQSxDQUFDQSxFQUN2REE7Z0JBQ0RBLEVBQUVBLEtBQUtBLEVBQUVBLGFBQWFBLEVBQ3BCQSxXQUFXQSxFQUFFQSxRQUFRQSxFQUNyQkEsWUFBWUEsRUFBRUEsY0FBY0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsMkJBQTJCQSxDQUFDQSxFQUM5REE7YUFDRkE7U0FDRkEsQ0FBQ0E7UUFFRkEsVUFBVUEsQ0FBQ0EsVUFBVUEsQ0FBQ0EsTUFBTUEsRUFBRUEsU0FBU0EsRUFBRUEsS0FBS0EsRUFBRUEsUUFBUUEsRUFBRUEsWUFBWUEsRUFBRUEsZUFBZUEsRUFBRUEsZUFBZUEsRUFBRUEsZ0JBQWdCQSxDQUFDQSxDQUFDQTtRQUU1SEEsTUFBTUEsQ0FBQ0EsWUFBWUEsR0FBR0EsVUFBQ0EsUUFBUUE7WUFDN0JBLEVBQUVBLENBQUNBLENBQUNBLE9BQU9BLENBQUNBLFFBQVFBLENBQUNBLFFBQVFBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO2dCQUMvQkEsUUFBUUEsR0FBR0EsQ0FBQ0E7b0JBQ1ZBLEVBQUVBLEVBQUVBLFFBQVFBO2lCQUNiQSxDQUFDQSxDQUFDQTtZQUNMQSxDQUFDQTtZQUNEQSxFQUFFQSxDQUFDQSw0QkFBNEJBLENBQW1DQTtnQkFDaEVBLFVBQVVBLEVBQUVBLFFBQVFBO2dCQUNwQkEsS0FBS0EsRUFBRUEsZUFBZUE7Z0JBQ3RCQSxPQUFPQSxFQUFFQSxVQUFDQSxNQUFjQTtvQkFDdEJBLEVBQUVBLENBQUNBLENBQUNBLE1BQU1BLENBQUNBLENBQUNBLENBQUNBO3dCQUNYQSxTQUFTQSxjQUFjQSxDQUFDQSxRQUF1QkEsRUFBRUEsSUFBWUE7NEJBQzNEb0osRUFBRUEsQ0FBQ0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7Z0NBQ1RBLGNBQUdBLENBQUNBLEtBQUtBLENBQUNBLFlBQVlBLEVBQUVBLGtCQUFPQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQSxDQUFDQTtnQ0FDdkNBLGdDQUFnQ0EsQ0FBQ0EsTUFBTUEsQ0FBQ0E7b0NBQ3RDQSxFQUFFQSxFQUFFQSxrQkFBT0EsQ0FBQ0EsSUFBSUEsQ0FBQ0E7aUNBQ2xCQSxFQUFFQSxTQUFTQSxFQUFFQTtvQ0FDWkEsY0FBR0EsQ0FBQ0EsS0FBS0EsQ0FBQ0EsV0FBV0EsRUFBRUEsa0JBQU9BLENBQUNBLElBQUlBLENBQUNBLENBQUNBLENBQUNBO29DQUN0Q0EsY0FBY0EsQ0FBQ0EsUUFBUUEsRUFBRUEsUUFBUUEsQ0FBQ0EsS0FBS0EsRUFBRUEsQ0FBQ0EsQ0FBQ0E7Z0NBQzdDQSxDQUFDQSxFQUFFQSxVQUFDQSxLQUFLQTtvQ0FDUEEsY0FBR0EsQ0FBQ0EsS0FBS0EsQ0FBQ0Esa0JBQWtCQSxFQUFFQSxLQUFLQSxDQUFDQSxDQUFDQTtvQ0FDckNBLGNBQWNBLENBQUNBLFFBQVFBLEVBQUVBLFFBQVFBLENBQUNBLEtBQUtBLEVBQUVBLENBQUNBLENBQUNBO2dDQUM3Q0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7NEJBQ0xBLENBQUNBO3dCQUNIQSxDQUFDQTt3QkFDRHBKLGNBQWNBLENBQUNBLFFBQVFBLEVBQUVBLFFBQVFBLENBQUNBLEtBQUtBLEVBQUVBLENBQUNBLENBQUNBO29CQUM3Q0EsQ0FBQ0E7Z0JBQ0hBLENBQUNBO2dCQUNEQSxLQUFLQSxFQUFFQSxpQ0FBaUNBO2dCQUN4Q0EsTUFBTUEsRUFBRUEsd0RBQXdEQTtnQkFDaEVBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsT0FBT0EsRUFBRUEsWUFBWUE7Z0JBQ3JCQSxNQUFNQSxFQUFFQSw2Q0FBNkNBO2dCQUNyREEsV0FBV0EsRUFBRUEscUJBQXFCQTthQUNuQ0EsQ0FBQ0EsQ0FBQ0EsSUFBSUEsRUFBRUEsQ0FBQ0E7UUFDWkEsQ0FBQ0EsQ0FBQ0E7SUFDSkEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7QUFDTkEsQ0FBQ0EsRUExRk0sVUFBVSxLQUFWLFVBQVUsUUEwRmhCOztBQzlGRCx5Q0FBeUM7QUFDekMsNENBQTRDO0FBQzVDLDJDQUEyQztBQUUzQyxJQUFPLFVBQVUsQ0FtRGhCO0FBbkRELFdBQU8sVUFBVSxFQUFDLENBQUM7SUFFTkEsNEJBQWlCQSxHQUFHQSxxQkFBVUEsQ0FBQ0EsbUJBQW1CQSxFQUMzREEsQ0FBQ0EsUUFBUUEsRUFBRUEsaUJBQWlCQSxFQUFFQSxpQkFBaUJBLEVBQUVBLGdCQUFnQkEsRUFBRUEsV0FBV0EsRUFBRUEsY0FBY0EsRUFBRUEsT0FBT0EsRUFBRUEsVUFBVUEsRUFBRUEsa0JBQWtCQSxFQUNySUEsVUFBQ0EsTUFBTUEsRUFBRUEsZUFBa0RBLEVBQUVBLGVBQWVBLEVBQzNFQSxjQUF1Q0EsRUFBRUEsU0FBNkJBLEVBQUVBLFlBQVlBLEVBQUVBLEtBQUtBLEVBQUVBLFFBQVFBLEVBQUVBLGdCQUFnQkE7UUFFMUhBLE1BQU1BLENBQUNBLFVBQVVBLEdBQUdBLGVBQWVBLENBQUNBO1FBQ3BDQSxNQUFNQSxDQUFDQSxLQUFLQSxHQUFHQSxlQUFlQSxDQUFDQTtRQUMvQkEsTUFBTUEsQ0FBQ0EsT0FBT0EsR0FBR0EsS0FBS0EsQ0FBQ0E7UUFDdkJBLE1BQU1BLENBQUNBLFFBQVFBLEdBQUdBLElBQUlBLENBQUNBO1FBRXZCQSxVQUFVQSxDQUFDQSxVQUFVQSxDQUFDQSxNQUFNQSxFQUFFQSxTQUFTQSxFQUFFQSxLQUFLQSxFQUFFQSxRQUFRQSxFQUFFQSxZQUFZQSxFQUFFQSxlQUFlQSxFQUFFQSxlQUFlQSxFQUFFQSxnQkFBZ0JBLENBQUNBLENBQUNBO1FBRTVIQSxNQUFNQSxDQUFDQSxVQUFVQSxHQUFHQTtZQUNsQkEsVUFBVUEsRUFBRUE7Z0JBQ1ZBLGFBQWFBLEVBQUVBO29CQUNiQSxRQUFRQSxFQUFFQSxjQUFjQSxDQUFDQSxHQUFHQSxDQUFDQSxvQkFBb0JBLENBQUNBO2lCQUNuREE7YUFDRkE7U0FDRkEsQ0FBQ0E7UUFFRkEsTUFBTUEsQ0FBQ0EsR0FBR0EsQ0FBQ0Esd0JBQXdCQSxFQUFFQTtZQUNuQyxVQUFVLEVBQUUsQ0FBQztRQUNmLENBQUMsQ0FBQ0EsQ0FBQ0E7UUFFSEEsTUFBTUEsQ0FBQ0EsTUFBTUEsQ0FBQ0EsZ0JBQWdCQSxFQUFFQSxVQUFDQSxRQUFRQSxFQUFFQSxRQUFRQTtZQUNqREEsVUFBVUEsRUFBRUEsQ0FBQ0E7UUFDZkEsQ0FBQ0EsRUFBRUEsSUFBSUEsQ0FBQ0EsQ0FBQ0E7UUFFVEEsTUFBTUEsQ0FBQ0EsR0FBR0EsQ0FBQ0EsY0FBY0EsRUFBRUEsVUFBQ0EsTUFBTUE7WUFDaENBLFVBQVVBLEVBQUVBLENBQUNBO1FBQ2ZBLENBQUNBLENBQUNBLENBQUNBO1FBRUhBLE1BQU1BLENBQUNBLE9BQU9BLEdBQUdBO1lBQ2ZBLE1BQU1BLENBQUNBLE9BQU9BLEdBQUdBLENBQUNBLE1BQU1BLENBQUNBLE9BQU9BLENBQUNBO1lBQ2pDQSxJQUFJQSxDQUFDQSxNQUFNQSxDQUFDQSxNQUFNQSxDQUFDQSxDQUFDQTtRQUN0QkEsQ0FBQ0EsQ0FBQ0E7UUFFRkEsVUFBVUEsRUFBRUEsQ0FBQ0E7UUFFYkEsU0FBU0EsVUFBVUE7WUFDakJxSixNQUFNQSxDQUFDQSxFQUFFQSxHQUFHQSxZQUFZQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQTtZQUMvQkEsTUFBTUEsQ0FBQ0EsU0FBU0EsR0FBR0EsWUFBWUEsQ0FBQ0EsV0FBV0EsQ0FBQ0EsSUFBSUEsZUFBZUEsQ0FBQ0EsaUJBQWlCQSxDQUFDQTtZQUNsRkEsTUFBTUEsQ0FBQ0EsSUFBSUEsR0FBR0EsTUFBTUEsQ0FBQ0EsS0FBS0EsQ0FBQ0EsVUFBVUEsQ0FBQ0EsTUFBTUEsQ0FBQ0EsU0FBU0EsRUFBRUEsTUFBTUEsQ0FBQ0EsRUFBRUEsQ0FBQ0EsQ0FBQ0E7WUFDbkVBLEVBQUVBLENBQUNBLENBQUNBLE1BQU1BLENBQUNBLElBQUlBLENBQUNBLENBQUNBLENBQUNBO2dCQUNoQkEsTUFBTUEsQ0FBQ0EsUUFBUUEsR0FBR0Esb0JBQVNBLENBQUNBLE1BQU1BLENBQUNBLElBQUlBLENBQUNBLENBQUNBO1lBQzNDQSxDQUFDQTtZQUNEQSxJQUFJQSxDQUFDQSxNQUFNQSxDQUFDQSxNQUFNQSxDQUFDQSxDQUFDQTtRQUN0QkEsQ0FBQ0E7SUFDSHJKLENBQUNBLENBQUNBLENBQUNBLENBQUNBO0FBQ05BLENBQUNBLEVBbkRNLFVBQVUsS0FBVixVQUFVLFFBbURoQjs7QUN2REQseUNBQXlDO0FBQ3pDLDRDQUE0QztBQUM1QywyQ0FBMkM7QUFFM0MsSUFBTyxVQUFVLENBZ0NoQjtBQWhDRCxXQUFPLFVBQVUsRUFBQyxDQUFDO0lBRU5BLGdDQUFxQkEsR0FBR0EscUJBQVVBLENBQUNBLHVCQUF1QkEsRUFDbkVBLENBQUNBLFFBQVFBLEVBQUVBLGlCQUFpQkEsRUFBRUEsaUJBQWlCQSxFQUFFQSxrQkFBa0JBLEVBQUVBLGdCQUFnQkEsRUFBRUEsV0FBV0EsRUFBRUEsY0FBY0EsRUFBRUEsT0FBT0EsRUFBRUEsVUFBVUEsRUFBRUEsa0JBQWtCQSxFQUFFQSxnQkFBZ0JBLEVBQzNLQSxVQUFDQSxNQUFNQSxFQUFFQSxlQUFrREEsRUFBRUEsZUFBZUEsRUFBRUEsZ0JBQWdCQSxFQUM3RkEsY0FBdUNBLEVBQUVBLFNBQTZCQSxFQUFFQSxZQUFZQSxFQUFFQSxLQUFLQSxFQUFFQSxRQUFRQSxFQUFFQSxnQkFBZ0JBLEVBQUVBLE9BQWtDQTtRQUU5SkEsTUFBTUEsQ0FBQ0EsVUFBVUEsR0FBR0EsZUFBZUEsQ0FBQ0E7UUFDcENBLE1BQU1BLENBQUNBLEtBQUtBLEdBQUdBLGVBQWVBLENBQUNBO1FBQy9CQSxNQUFNQSxDQUFDQSxFQUFFQSxHQUFHQSxZQUFZQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQTtRQUMvQkEsTUFBTUEsQ0FBQ0EsTUFBTUEsR0FBR0EsZ0JBQWdCQSxDQUFDQTtRQUNqQ0EsTUFBTUEsQ0FBQ0EsTUFBTUEsR0FBR0EsT0FBT0EsQ0FBQ0EsV0FBV0EsQ0FBQ0EseUNBQXlDQSxDQUFDQSxDQUFDQTtRQUMvRUEsQUFFQUEsMEVBRjBFQTtRQUUxRUEsVUFBVUEsQ0FBQ0EsVUFBVUEsQ0FBQ0EsTUFBTUEsRUFBRUEsU0FBU0EsRUFBRUEsS0FBS0EsRUFBRUEsUUFBUUEsRUFBRUEsWUFBWUEsRUFBRUEsZUFBZUEsRUFBRUEsZUFBZUEsRUFBRUEsZ0JBQWdCQSxDQUFDQSxDQUFDQTtRQUU1SEEsTUFBTUEsQ0FBQ0EsR0FBR0EsQ0FBQ0EsY0FBY0EsRUFBRUEsVUFBQ0EsTUFBTUE7WUFDaENBLFVBQVVBLEVBQUVBLENBQUNBO1FBQ2ZBLENBQUNBLENBQUNBLENBQUNBO1FBRUhBLFVBQVVBLEVBQUVBLENBQUNBO1FBRWJBLFNBQVNBLFVBQVVBO1lBQ2pCcUosRUFBRUEsQ0FBQ0EsQ0FBQ0EsTUFBTUEsQ0FBQ0EsRUFBRUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7Z0JBQ2RBLE1BQU1BLENBQUNBLE1BQU1BLEdBQUdBLE1BQU1BLENBQUNBLEtBQUtBLENBQUNBLFVBQVVBLENBQUNBLGVBQWVBLENBQUNBLGlCQUFpQkEsRUFBRUEsTUFBTUEsQ0FBQ0EsRUFBRUEsQ0FBQ0EsQ0FBQ0E7Z0JBQ3RGQSxJQUFJQSxDQUFDQSxNQUFNQSxDQUFDQSxNQUFNQSxDQUFDQSxDQUFDQTtnQkFDcEJBLE1BQU1BLENBQUNBLE9BQU9BLEdBQUdBLElBQUlBLENBQUNBO1lBQ3hCQSxDQUFDQTtZQUFDQSxJQUFJQSxDQUFDQSxDQUFDQTtnQkFDTkEsTUFBTUEsQ0FBQ0EsT0FBT0EsR0FBR0EsSUFBSUEsQ0FBQ0E7WUFDeEJBLENBQUNBO1FBQ0hBLENBQUNBO0lBQ0hySixDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtBQUNOQSxDQUFDQSxFQWhDTSxVQUFVLEtBQVYsVUFBVSxRQWdDaEI7O0FDcENELHlDQUF5QztBQUN6Qyw0Q0FBNEM7QUFDNUMsMkNBQTJDO0FBQzNDLDBDQUEwQztBQUUxQyxJQUFPLFVBQVUsQ0FxRmhCO0FBckZELFdBQU8sVUFBVSxFQUFDLENBQUM7SUFFakJBLGtCQUFPQSxDQUFDQSxPQUFPQSxDQUFDQSxpQkFBaUJBLEVBQUVBLENBQUNBO1FBQ2xDQSxNQUFNQSxDQUFDQSxJQUFJQSxzQkFBc0JBLEVBQUVBLENBQUNBO0lBQ3RDQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtJQUVKQSxBQUlBQTs7O09BREdBO1FBQ1VBLHNCQUFzQkE7UUFBbkNnTSxTQUFhQSxzQkFBc0JBO1lBQ3pCQyxVQUFLQSxHQUEwQkEsSUFBSUEsQ0FBQ0E7UUF5RTlDQSxDQUFDQTtRQXZFQ0Q7O1dBRUdBO1FBQ0lBLDJDQUFVQSxHQUFqQkEsVUFBa0JBLFdBQW1CQTtZQUNuQ0UsTUFBTUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsV0FBV0EsQ0FBQ0EsV0FBV0EsQ0FBQ0EsR0FBR0EsSUFBSUEsR0FBR0EsS0FBS0EsQ0FBQ0E7UUFDdERBLENBQUNBO1FBRURGOzs7OztXQUtHQTtRQUNJQSw0Q0FBV0EsR0FBbEJBLFVBQW1CQSxXQUFtQkE7WUFDcENHLElBQUlBLE1BQU1BLEdBQUdBLElBQUlBLENBQUNBO1lBQ2xCQSxFQUFFQSxDQUFDQSxDQUFDQSxXQUFXQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFDaEJBLElBQUlBLEtBQUtBLEdBQUdBLElBQUlBLENBQUNBLFFBQVFBLEVBQUVBLENBQUNBO2dCQUM1QkEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsS0FBS0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7b0JBQ1ZBLElBQUlBLFNBQVNBLEdBQUdBLEtBQUtBLENBQUNBLGdCQUFnQkEsRUFBRUEsQ0FBQ0E7b0JBQ3pDQSxNQUFNQSxDQUFDQSxLQUFLQSxDQUFDQSxVQUFVQSxDQUFDQSxTQUFTQSxFQUFFQSxXQUFXQSxDQUFDQSxDQUFDQTtnQkFTbERBLENBQUNBO1lBQ0hBLENBQUNBO1lBQ0RBLE1BQU1BLENBQUNBLE1BQU1BLENBQUNBO1FBQ2hCQSxDQUFDQTtRQUVESDs7Ozs7V0FLR0E7UUFDSUEsNENBQVdBLEdBQWxCQSxVQUFtQkEsV0FBbUJBO1lBQ3BDSSxJQUFJQSxPQUFPQSxHQUFHQSxJQUFJQSxDQUFDQSxXQUFXQSxDQUFDQSxXQUFXQSxDQUFDQSxDQUFDQTtZQUM1Q0EsTUFBTUEsQ0FBQ0EseUJBQWNBLENBQUNBLE9BQU9BLENBQUNBLENBQUNBO1FBQ2pDQSxDQUFDQTtRQUVESjs7Ozs7V0FLR0E7UUFDSUEsaURBQWdCQSxHQUF2QkEsVUFBd0JBLFdBQW1CQTtZQUN6Q0ssSUFBSUEsT0FBT0EsR0FBR0EsSUFBSUEsQ0FBQ0EsV0FBV0EsQ0FBQ0EsV0FBV0EsQ0FBQ0EsQ0FBQ0E7WUFDNUNBLEVBQUVBLENBQUNBLENBQUNBLHdCQUFhQSxDQUFDQSxPQUFPQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFDM0JBLE1BQU1BLENBQUNBLHlCQUFjQSxDQUFDQSxPQUFPQSxDQUFDQSxDQUFDQTtZQUNqQ0EsQ0FBQ0E7WUFBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0E7Z0JBQ05BLE1BQU1BLENBQUNBLElBQUlBLENBQUNBO1lBQ2RBLENBQUNBO1FBQ0hBLENBQUNBO1FBRU9MLHlDQUFRQSxHQUFoQkE7WUFDRU0sSUFBSUEsTUFBTUEsR0FBR0EsSUFBSUEsQ0FBQ0EsS0FBS0EsQ0FBQ0E7WUFDeEJBLEFBQ0FBLGlGQURpRkE7WUFDakZBLEVBQUVBLENBQUNBLENBQUNBLENBQUNBLE1BQU1BLENBQUNBLENBQUNBLENBQUNBO2dCQUNaQSxJQUFJQSxRQUFRQSxHQUFHQSxVQUFVQSxDQUFDQSxRQUFRQSxDQUFDQTtnQkFDbkNBLEVBQUVBLENBQUNBLENBQUNBLFFBQVFBLENBQUNBLENBQUNBLENBQUNBO29CQUNiQSxJQUFJQSxDQUFDQSxLQUFLQSxHQUFHQSxRQUFRQSxDQUFDQSxHQUFHQSxDQUFDQSxpQkFBaUJBLENBQUNBLENBQUNBO2dCQUMvQ0EsQ0FBQ0E7WUFDSEEsQ0FBQ0E7WUFDREEsTUFBTUEsR0FBR0EsSUFBSUEsQ0FBQ0EsS0FBS0EsQ0FBQ0E7WUFDcEJBLE1BQU1BLENBQUNBLE1BQU1BLENBQUNBO1FBQ2hCQSxDQUFDQTtRQUNITiw2QkFBQ0E7SUFBREEsQ0ExRUFoTSxBQTBFQ2dNLElBQUFoTTtJQTFFWUEsaUNBQXNCQSxHQUF0QkEsc0JBMEVaQSxDQUFBQTtBQUNIQSxDQUFDQSxFQXJGTSxVQUFVLEtBQVYsVUFBVSxRQXFGaEI7O0FDMUZELHlDQUF5QztBQUN6Qyw0Q0FBNEM7QUFDNUMsMkNBQTJDO0FBRTNDLElBQU8sVUFBVSxDQTZGaEI7QUE3RkQsV0FBTyxVQUFVLEVBQUMsQ0FBQztJQUVOQSxtQkFBUUEsR0FBR0EscUJBQVVBLENBQUNBLFVBQVVBLEVBQ3pDQSxDQUFDQSxRQUFRQSxFQUFFQSxpQkFBaUJBLEVBQUVBLG9CQUFvQkEsRUFBRUEsZ0JBQWdCQSxFQUFFQSxpQkFBaUJBLEVBQUVBLGdCQUFnQkEsRUFBRUEsV0FBV0EsRUFBRUEsY0FBY0EsRUFBRUEsT0FBT0EsRUFBRUEsVUFBVUEsRUFBRUEsa0JBQWtCQSxFQUM3S0EsVUFBQ0EsTUFBTUEsRUFBRUEsZUFBa0RBLEVBQUVBLGtCQUE2Q0EsRUFBRUEsY0FBeUNBLEVBQUVBLGVBQWVBLEVBQ3JLQSxjQUF1Q0EsRUFBRUEsU0FBNkJBLEVBQUVBLFlBQVlBLEVBQUVBLEtBQUtBLEVBQUVBLFFBQVFBLEVBQUVBLGdCQUFnQkE7UUFFMUhBLE1BQU1BLENBQUNBLFVBQVVBLEdBQUdBLGVBQWVBLENBQUNBO1FBQ3BDQSxNQUFNQSxDQUFDQSxLQUFLQSxHQUFHQSxlQUFlQSxDQUFDQTtRQUUvQkEsaUJBQWlCQSxDQUFDQSxzQkFBc0JBLENBQUNBLE1BQU1BLEVBQUVBLFNBQVNBLEVBQUVBLE1BQU1BLEVBQUVBLE1BQU1BLEVBQUVBLE1BQU1BLENBQUNBLENBQUNBO1FBRXBGQSxNQUFNQSxDQUFDQSxXQUFXQSxHQUFHQTtZQUNuQkEsSUFBSUEsRUFBRUEsZ0JBQWdCQTtZQUN0QkEscUJBQXFCQSxFQUFFQSxJQUFJQTtZQUMzQkEsdUJBQXVCQSxFQUFFQSxLQUFLQTtZQUM5QkEsV0FBV0EsRUFBRUEsSUFBSUE7WUFDakJBLGFBQWFBLEVBQUVBLEVBQUVBO1lBQ2pCQSxhQUFhQSxFQUFFQTtnQkFDYkEsVUFBVUEsRUFBRUEsU0FBU0EsQ0FBQ0EsTUFBTUEsRUFBRUEsQ0FBQ0EsR0FBR0EsQ0FBQ0EsSUFBSUEsRUFBRUE7YUFDMUNBO1lBQ0RBLFVBQVVBLEVBQUVBO2dCQUNWQSxFQUFFQSxLQUFLQSxFQUFFQSxNQUFNQSxFQUNiQSxXQUFXQSxFQUFFQSxNQUFNQSxFQUNuQkEsWUFBWUEsRUFBRUEsY0FBY0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsaUJBQWlCQSxDQUFDQSxFQUNwREE7Z0JBQ0RBLEVBQUVBLEtBQUtBLEVBQUVBLGFBQWFBLEVBQ3BCQSxXQUFXQSxFQUFFQSxTQUFTQSxFQUN0QkEsWUFBWUEsRUFBRUEsY0FBY0EsQ0FBQ0EsR0FBR0EsQ0FBQ0Esb0JBQW9CQSxDQUFDQSxFQUN2REE7Z0JBQ0RBLEVBQUVBLEtBQUtBLEVBQUVBLFdBQVdBLEVBQ2xCQSxXQUFXQSxFQUFFQSxNQUFNQSxFQUNuQkEsWUFBWUEsRUFBRUEsY0FBY0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsK0JBQStCQSxDQUFDQSxFQUNqRUEsZUFBZUEsRUFBRUEsVUFBQ0EsS0FBS0E7b0JBQ3JCQSxBQUNBQSxzQ0FEc0NBO3dCQUNsQ0EsS0FBS0EsR0FBR0EsS0FBS0EsQ0FBQ0EsWUFBWUEsQ0FBQ0EsS0FBS0EsSUFBSUEsQ0FBQ0EsQ0FBQ0E7b0JBQzFDQSxJQUFJQSxLQUFLQSxHQUFHQSxLQUFLQSxDQUFDQSxZQUFZQSxDQUFDQSxLQUFLQSxJQUFJQSxDQUFDQSxDQUFDQTtvQkFDMUNBLElBQUlBLE9BQU9BLEdBQUdBLEtBQUtBLENBQUNBLFlBQVlBLENBQUNBLE9BQU9BLElBQUlBLENBQUNBLENBQUNBO29CQUM5Q0EsSUFBSUEsS0FBS0EsR0FBR0EsS0FBS0EsQ0FBQ0EsWUFBWUEsQ0FBQ0EsS0FBS0EsSUFBSUEsQ0FBQ0EsQ0FBQ0E7b0JBQzFDQSxNQUFNQSxDQUFDQSxLQUFLQSxHQUFHQSxLQUFLQSxHQUFHQSxPQUFPQSxHQUFHQSxLQUFLQSxDQUFDQTtnQkFDekNBLENBQUNBLEVBQ0ZBO2dCQUNEQSxFQUFFQSxLQUFLQSxFQUFFQSxlQUFlQSxFQUN0QkEsV0FBV0EsRUFBRUEsVUFBVUEsRUFDdkJBLFlBQVlBLEVBQUVBLGNBQWNBLENBQUNBLEdBQUdBLENBQUNBLHVCQUF1QkEsQ0FBQ0EsRUFDMURBO2dCQUNEQSxFQUFFQSxLQUFLQSxFQUFFQSxhQUFhQSxFQUNwQkEsV0FBV0EsRUFBRUEsUUFBUUEsRUFDckJBLFlBQVlBLEVBQUVBLGNBQWNBLENBQUNBLEdBQUdBLENBQUNBLG9CQUFvQkEsQ0FBQ0EsRUFDdkRBO2FBQ0ZBO1NBQ0ZBLENBQUNBO1FBRUZBLFVBQVVBLENBQUNBLFVBQVVBLENBQUNBLE1BQU1BLEVBQUVBLFNBQVNBLEVBQUVBLEtBQUtBLEVBQUVBLFFBQVFBLEVBQUVBLFlBQVlBLEVBQUVBLGVBQWVBLEVBQUVBLGVBQWVBLEVBQUVBLGdCQUFnQkEsQ0FBQ0EsQ0FBQ0E7UUFFNUhBLE1BQU1BLENBQUNBLFlBQVlBLEdBQUdBLFVBQUNBLFFBQVFBO1lBQzdCQSxFQUFFQSxDQUFDQSxDQUFDQSxPQUFPQSxDQUFDQSxRQUFRQSxDQUFDQSxRQUFRQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFDL0JBLFFBQVFBLEdBQUdBLENBQUNBO29CQUNWQSxFQUFFQSxFQUFFQSxRQUFRQTtpQkFDYkEsQ0FBQ0EsQ0FBQ0E7WUFDTEEsQ0FBQ0E7WUFDREEsRUFBRUEsQ0FBQ0EsNEJBQTRCQSxDQUFtQ0E7Z0JBQ2hFQSxVQUFVQSxFQUFFQSxRQUFRQTtnQkFDcEJBLEtBQUtBLEVBQUVBLGVBQWVBO2dCQUN0QkEsT0FBT0EsRUFBRUEsVUFBQ0EsTUFBY0E7b0JBQ3RCQSxFQUFFQSxDQUFDQSxDQUFDQSxNQUFNQSxDQUFDQSxDQUFDQSxDQUFDQTt3QkFDWEEsU0FBU0EsY0FBY0EsQ0FBQ0EsUUFBdUJBLEVBQUVBLElBQVlBOzRCQUMzRG9KLEVBQUVBLENBQUNBLENBQUNBLElBQUlBLENBQUNBLENBQUNBLENBQUNBO2dDQUNUQSxjQUFHQSxDQUFDQSxLQUFLQSxDQUFDQSxZQUFZQSxFQUFFQSxrQkFBT0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7Z0NBQ3ZDQSxrQkFBa0JBLENBQUNBLE1BQU1BLENBQUNBO29DQUN4QkEsRUFBRUEsRUFBRUEsa0JBQU9BLENBQUNBLElBQUlBLENBQUNBO2lDQUNsQkEsRUFBRUEsU0FBU0EsRUFBRUE7b0NBQ1pBLGNBQUdBLENBQUNBLEtBQUtBLENBQUNBLFdBQVdBLEVBQUVBLGtCQUFPQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQSxDQUFDQTtvQ0FDdENBLGNBQWNBLENBQUNBLFFBQVFBLEVBQUVBLFFBQVFBLENBQUNBLEtBQUtBLEVBQUVBLENBQUNBLENBQUNBO2dDQUM3Q0EsQ0FBQ0EsRUFBRUEsVUFBQ0EsS0FBS0E7b0NBQ1BBLGNBQUdBLENBQUNBLEtBQUtBLENBQUNBLGtCQUFrQkEsRUFBRUEsS0FBS0EsQ0FBQ0EsQ0FBQ0E7b0NBQ3JDQSxjQUFjQSxDQUFDQSxRQUFRQSxFQUFFQSxRQUFRQSxDQUFDQSxLQUFLQSxFQUFFQSxDQUFDQSxDQUFDQTtnQ0FDN0NBLENBQUNBLENBQUNBLENBQUNBOzRCQUNMQSxDQUFDQTt3QkFDSEEsQ0FBQ0E7d0JBQ0RwSixjQUFjQSxDQUFDQSxRQUFRQSxFQUFFQSxRQUFRQSxDQUFDQSxLQUFLQSxFQUFFQSxDQUFDQSxDQUFDQTtvQkFDN0NBLENBQUNBO2dCQUNIQSxDQUFDQTtnQkFDREEsS0FBS0EsRUFBRUEsa0JBQWtCQTtnQkFDekJBLE1BQU1BLEVBQUVBLHlDQUF5Q0E7Z0JBQ2pEQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLE9BQU9BLEVBQUVBLFlBQVlBO2dCQUNyQkEsTUFBTUEsRUFBRUEsNkNBQTZDQTtnQkFDckRBLFdBQVdBLEVBQUVBLHFCQUFxQkE7YUFDbkNBLENBQUNBLENBQUNBLElBQUlBLEVBQUVBLENBQUNBO1FBQ1pBLENBQUNBLENBQUNBO0lBRUpBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO0FBQ05BLENBQUNBLEVBN0ZNLFVBQVUsS0FBVixVQUFVLFFBNkZoQjs7QUNqR0QseUNBQXlDO0FBQ3pDLDRDQUE0QztBQUM1QywyQ0FBMkM7QUFFM0MsSUFBTyxVQUFVLENBMkZoQjtBQTNGRCxXQUFPLFVBQVUsRUFBQyxDQUFDO0lBRWpCQSxBQUNBQSxzQ0FEc0NBO0lBQzNCQSxvQkFBU0EsR0FBR0EscUJBQVVBLENBQUNBLFdBQVdBLEVBQUVBLENBQUNBLFFBQVFBLEVBQUVBLFVBQUNBLE1BQU1BO1FBQy9EQSxNQUFNQSxDQUFDQSxhQUFhQSxHQUFHQSxVQUFDQSxJQUFJQTtZQUMxQkEsTUFBTUEsQ0FBQ0EsK0JBQW9CQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQTtRQUNwQ0EsQ0FBQ0EsQ0FBQUE7SUFDSEEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7SUFFSkEsa0JBQU9BLENBQUNBLFVBQVVBLENBQUNBLDJCQUEyQkEsRUFBRUEsVUFBQ0EsTUFBTUEsRUFBRUEsZUFBZUE7UUFDdEVBLE1BQU1BLENBQUNBLFlBQVlBLEdBQUdBLFVBQUNBLFNBQVNBO1lBQzlCQSxFQUFFQSxDQUFDQSxDQUFDQSxTQUFTQSxDQUFDQSxlQUFlQSxJQUFJQSxTQUFTQSxDQUFDQSxlQUFlQSxDQUFDQSxVQUFVQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFDdEVBLE1BQU1BLENBQUNBLEtBQUtBLENBQUNBO1lBQ2ZBLENBQUNBO1lBQ0RBLE1BQU1BLENBQUNBLElBQUlBLENBQUNBO1FBQ2RBLENBQUNBLENBQUFBO1FBQ0RBLE1BQU1BLENBQUNBLFlBQVlBLEdBQUdBLFVBQUNBLFFBQVFBLEVBQUVBLGFBQWFBO1lBQzVDQSxJQUFJQSxFQUFFQSxHQUFHQSxlQUFlQSxDQUFDQSxXQUFXQSxDQUFDQSxRQUFRQSxFQUFFQSxhQUFhQSxDQUFDQSxDQUFDQTtZQUM5REEsY0FBR0EsQ0FBQ0EsS0FBS0EsQ0FBQ0Esd0JBQXdCQSxFQUFFQSxFQUFFQSxDQUFDQSxDQUFDQTtRQUMxQ0EsQ0FBQ0EsQ0FBQUE7SUFDSEEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7SUFFSEEsQUFDQUEsZ0RBRGdEQTtJQUNyQ0EsaUJBQU1BLEdBQUdBLHFCQUFVQSxDQUFDQSxRQUFRQSxFQUFFQSxDQUFDQSxRQUFRQSxFQUFFQSxXQUFXQSxFQUFFQSxVQUFDQSxNQUFNQSxFQUFFQSxTQUFTQTtRQUNqRkEsTUFBTUEsQ0FBQ0EsTUFBTUEsR0FBR0EsRUFBRUEsQ0FBQ0E7UUFDbkJBLElBQUlBLGVBQWVBLEdBQUdBO1lBQ3BCQSxNQUFNQSxFQUFFQSxDQUFDQTtZQUNUQSx1QkFBdUJBLEVBQUVBLENBQUNBO1lBQzFCQSxPQUFPQSxFQUFFQSxDQUFDQTtTQUNYQSxDQUFDQTtRQUNGQSxNQUFNQSxDQUFDQSxNQUFNQSxDQUFDQSxRQUFRQSxFQUFFQSxVQUFDQSxRQUFRQSxFQUFFQSxRQUFRQTtZQUN6Q0EsRUFBRUEsQ0FBQ0EsQ0FBQ0EsUUFBUUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7Z0JBQ2JBLEFBRUFBLG1DQUZtQ0E7Z0JBQ25DQSwyQkFBMkJBO2dCQUMzQkEsTUFBTUEsQ0FBQ0EsTUFBTUEsR0FBR0EsRUFBRUEsQ0FBQ0E7Z0JBQ25CQSxPQUFPQSxDQUFDQSxPQUFPQSxDQUFDQSxJQUFJQSxDQUFDQSxPQUFPQSxDQUFDQSxNQUFNQSxDQUFDQSxNQUFNQSxFQUFFQSxDQUFDQSxVQUFVQSxFQUFFQSxRQUFRQSxDQUFDQSxDQUFDQSxFQUFFQSxVQUFDQSxLQUFLQSxFQUFFQSxHQUFHQTtvQkFDOUVBLEVBQUVBLENBQUNBLENBQUNBLEdBQUdBLEtBQUtBLFNBQVNBLENBQUNBLENBQUNBLENBQUNBO3dCQUN0QkEsQUFDQUEsc0RBRHNEQTt3QkFDdERBLE1BQU1BLENBQUNBO29CQUNUQSxDQUFDQTtvQkFDREEsTUFBTUEsQ0FBQ0EsTUFBTUEsQ0FBQ0EsSUFBSUEsQ0FBQ0E7d0JBQ2pCQSxHQUFHQSxFQUFFQSxHQUFHQTt3QkFDUkEsS0FBS0EsRUFBRUEsS0FBS0E7cUJBQ2JBLENBQUNBLENBQUNBO2dCQUNMQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFFSEEsQUFDQUEsdUZBRHVGQTtnQkFDdkZBLE1BQU1BLENBQUNBLE1BQU1BLEdBQUdBLE1BQU1BLENBQUNBLE1BQU1BLENBQUNBLElBQUlBLENBQUNBLFVBQUNBLENBQUNBLEVBQUVBLENBQUNBO29CQUN0Q0EsU0FBU0EsU0FBU0EsQ0FBQ0EsR0FBR0E7d0JBQ3BCdU0sTUFBTUEsQ0FBQ0EsZUFBZUEsQ0FBQ0EsR0FBR0EsQ0FBQ0EsSUFBSUEsSUFBSUEsQ0FBQ0E7b0JBQ3RDQSxDQUFDQTtvQkFDRHZNLElBQUlBLEVBQUVBLEdBQUdBLENBQUNBLENBQUNBLEtBQUtBLENBQUNBLENBQUNBO29CQUNsQkEsSUFBSUEsRUFBRUEsR0FBR0EsQ0FBQ0EsQ0FBQ0EsS0FBS0EsQ0FBQ0EsQ0FBQ0E7b0JBQ2xCQSxJQUFJQSxFQUFFQSxHQUFHQSxTQUFTQSxDQUFDQSxFQUFFQSxDQUFDQSxDQUFDQTtvQkFDdkJBLElBQUlBLEVBQUVBLEdBQUdBLFNBQVNBLENBQUNBLEVBQUVBLENBQUNBLENBQUNBO29CQUN2QkEsSUFBSUEsSUFBSUEsR0FBR0EsRUFBRUEsR0FBR0EsRUFBRUEs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QkFBaUJBLEdBQUdBLFVBQUNBLEtBQUtBO1lBQzVCQSxBQUNBQSwwQ0FEMENBO2dCQUN0Q0EsSUFBSUEsR0FBR0EsT0FBT0EsQ0FBQ0EsUUFBUUEsQ0FBQ0EsS0FBS0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0E7WUFFeENBLE1BQU1BLENBQUNBLENBQUNBLElBQUlBLENBQUNBLElBQUlBLENBQUNBLENBQUNBLENBQUNBO2dCQUNsQkEsS0FBS0EsdUJBQVlBLENBQUNBLEtBQUtBLENBQUNBO2dCQUN4QkEsS0FBS0EsdUJBQVlBLENBQUNBLFFBQVFBO29CQUN4QkEsSUFBSUEsR0FBR0EsR0FBR0EsSUFBSUEsQ0FBQ0EsTUFBTUEsQ0FBQ0E7b0JBQ3RCQSxFQUFFQSxDQUFDQSxDQUFDQSxLQUFLQSxDQUFDQSxXQUFXQSxDQUFDQSxNQUFNQSxHQUFHQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTt3QkFDakNBLENBQUNBLENBQUNBLE9BQU9BLENBQUNBLEtBQUtBLENBQUNBLFdBQVdBLEVBQUVBLFVBQUNBLFVBQTRCQTs0QkFDeERBLFVBQVVBLENBQUNBLEdBQUdBLENBQUNBLENBQUNBO3dCQUNsQkEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7b0JBQ0xBLENBQUNBO29CQUNEQSxFQUFFQSxDQUFDQSxDQUFDQSxDQUFDQSxJQUFJQSxDQUFDQSxNQUFNQSxDQUFDQSxRQUFRQSxDQUFDQSxHQUFHQSxDQUFDQSxDQUFDQSxDQUFDQTt3QkFDOUJBLElBQUlBLENBQUNBLE1BQU1BLENBQUNBLFFBQVFBLENBQUNBLEdBQUdBLEdBQUdBLElBQUlBLENBQUNBLE1BQU1BLENBQUNBLFFBQVFBLENBQUNBLFNBQVNBLEdBQUdBLEdBQUdBLEdBQUdBLElBQUlBLENBQUNBLE1BQU1BLENBQUNBLFFBQVFBLENBQUNBLElBQUlBLENBQUNBO29CQUM5RkEsQ0FBQ0E7b0JBQ0RBLEtBQUtBLENBQUNBLE9BQU9BLENBQUNBLElBQUlBLENBQUNBLE1BQU1BLENBQUNBLFFBQVFBLENBQUNBLEdBQUdBLENBQUNBLEdBQUdBLElBQUlBLENBQUNB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Q0EsV0FBV0EsQ0FBQ0EsV0FBV0EsQ0FBQ0EsQ0FBQ0E7Z0JBQ25DQSxDQUFDQSxDQUFBQTtnQkFDREEsY0FBR0EsQ0FBQ0EsS0FBS0EsQ0FBQ0EsV0FBV0EsRUFBRUEsT0FBT0EsQ0FBQ0EsQ0FBQ0E7Z0JBQ2hDQSxJQUFJQSxJQUFJQSxHQUFHQSxPQUFPQSxDQUFDQSxJQUFJQSxDQUFDQSxnQkFBZ0JBLENBQUNBLENBQUNBO2dCQUMxQ0EsY0FBR0EsQ0FBQ0EsS0FBS0EsQ0FBQ0EsUUFBUUEsRUFBRUEsSUFBSUEsQ0FBQ0EsQ0FBQ0E7Z0JBQzFCQSxJQUFJQSxDQUFDQSxNQUFNQSxDQUFDQSxRQUFRQSxDQUFDQSx5R0FBeUdBLENBQUNBLENBQUNBLEtBQUtBLENBQUNBLENBQUNBLENBQUNBO1lBRzFJQSxDQUFDQTtTQUNGQSxDQUFDQTtJQUNKQSxDQUFDQSxDQUFDQSxDQUFDQTtBQUNMQSxDQUFDQSxFQTdGTSxVQUFVLEtBQVYsVUFBVSxRQTZGaEIiLCJmaWxlIjoiY29tcGlsZWQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLy8gPHJlZmVyZW5jZSBwYXRoPVwiLi4vbGlicy9oYXd0aW8tZm9ybXMvZGVmcy5kLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4uL2xpYnMvaGF3dGlvLXVpL2RlZnMuZC50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCIuLi9saWJzL2hhd3Rpby11dGlsaXRpZXMvZGVmcy5kLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4uL2xpYnMvaGF3dGlvLW9hdXRoL2RlZnMuZC50c1wiLz5cbiIsIi8vLyA8cmVmZXJlbmNlIHBhdGg9XCIuLi8uLi9pbmNsdWRlcy50c1wiLz5cbm1vZHVsZSBEZXZlbG9wZXIge1xuXG4gIGV4cG9ydCBmdW5jdGlvbiBlbnJpY2hXb3Jrc3BhY2VzKHByb2plY3RzKSB7XG4gICAgYW5ndWxhci5mb3JFYWNoKHByb2plY3RzLCAocHJvamVjdCkgPT4ge1xuICAgICAgZW5yaWNoV29ya3NwYWNlKHByb2plY3QpO1xuICAgIH0pO1xuICAgIHJldHVybiBwcm9qZWN0cztcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBlbnJpY2hXb3Jrc3BhY2UoYnVpbGQpIHtcbiAgICBpZiAoYnVpbGQpIHtcbiAgICAgIHZhciBuYW1lID0gS3ViZXJuZXRlcy5nZXROYW1lKGJ1aWxkKTtcbiAgICAgIGJ1aWxkLiRuYW1lID0gbmFtZTtcbiAgICAgIGJ1aWxkLiRzb3J0T3JkZXIgPSAwIC0gYnVpbGQubnVtYmVyO1xuXG4gICAgICB2YXIgbmFtZUFycmF5ID0gbmFtZS5zcGxpdChcIi1cIik7XG4gICAgICB2YXIgbmFtZUFycmF5TGVuZ3RoID0gbmFtZUFycmF5Lmxlbmd0aDtcbiAgICAgIGJ1aWxkLiRzaG9ydE5hbWUgPSAobmFtZUFycmF5TGVuZ3RoID4gNCkgPyBuYW1lQXJyYXkuc2xpY2UoMCwgbmFtZUFycmF5TGVuZ3RoIC0gNCkuam9pbihcIi1cIikgOiBuYW1lLnN1YnN0cmluZygwLCAzMCk7XG5cbiAgICAgIHZhciBsYWJlbHMgPSBLdWJlcm5ldGVzLmdldExhYmVscyhidWlsZCk7XG4gICAgICBidWlsZC4kY3JlYXRpb25EYXRlID0gYXNEYXRlKEt1YmVybmV0ZXMuZ2V0Q3JlYXRpb25UaW1lc3RhbXAoYnVpbGQpKTtcbiAgICAgIGJ1aWxkLiRsYWJlbHNUZXh0ID0gS3ViZXJuZXRlcy5sYWJlbHNUb1N0cmluZyhsYWJlbHMpO1xuXG4gICAgICBpZiAobmFtZSkge1xuICAgICAgICBidWlsZC4kcHJvamVjdHNMaW5rID0gVXJsSGVscGVycy5qb2luKFwid29ya3NwYWNlc1wiLCBuYW1lKTtcbiAgICAgICAgYnVpbGQuJHJ1bnRpbWVMaW5rID0gVXJsSGVscGVycy5qb2luKFwia3ViZXJuZXRlcy9uYW1lc3BhY2UvXCIsIG5hbWUsIFwiL2FwcHNcIik7XG4gICAgICAgIGJ1aWxkLiR2aWV3TGluayA9IGJ1aWxkLiRwcm9qZWN0c0xpbms7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBidWlsZDtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBhc0RhdGUodmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUgPyBuZXcgRGF0ZSh2YWx1ZSkgOiBudWxsO1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGVucmljaEplbmtpbnNKb2JzKGpvYnNEYXRhLCBwcm9qZWN0SWQsIGpvYk5hbWUpIHtcbiAgICBpZiAoam9ic0RhdGEpIHtcbiAgICAgIGFuZ3VsYXIuZm9yRWFjaChqb2JzRGF0YS5qb2JzLCAoam9iKSA9PiB7XG4gICAgICAgIGVucmljaEplbmtpbnNKb2Ioam9iLCBwcm9qZWN0SWQsIGpvYk5hbWUpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBqb2JzRGF0YTtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBlbnJpY2hKZW5raW5zSm9iKGpvYiwgcHJvamVjdElkLCBqb2JOYW1lKSB7XG4gICAgaWYgKGpvYikge1xuICAgICAgam9iTmFtZSA9IGpvYk5hbWUgfHwgam9iLm5hbWUgfHwgcHJvamVjdElkO1xuICAgICAgam9iLiRqb2JJZCA9IGpvYk5hbWU7XG4gICAgICBqb2IuJHByb2plY3QgPSBwcm9qZWN0SWQgfHwgam9iTmFtZTtcbiAgICAgIHZhciBsYXN0QnVpbGQgPSBqb2IubGFzdEJ1aWxkO1xuICAgICAgdmFyIGxhc3RCdWlsZFJlc3VsdCA9IGxhc3RCdWlsZCA/IGxhc3RCdWlsZC5yZXN1bHQgOiBcIk5PVF9TVEFSVEVEXCI7XG4gICAgICB2YXIgJGljb25DbGFzcyA9IGNyZWF0ZUJ1aWxkU3RhdHVzSWNvbkNsYXNzKGxhc3RCdWlsZFJlc3VsdCk7XG5cbiAgICAgIGpvYi4kbGFzdEJ1aWxkTnVtYmVyID0gZW5yaWNoSmVua2luc0J1aWxkKGpvYiwgbGFzdEJ1aWxkKTtcbiAgICAgIGpvYi4kbGFzdFN1Y2Nlc3NmdWxCdWlsZE51bWJlciA9IGVucmljaEplbmtpbnNCdWlsZChqb2IsIGpvYi5sYXN0U3VjY2Vzc2Z1bEJ1aWxkKTtcbiAgICAgIGpvYi4kbGFzdEZhaWxlZGxCdWlsZE51bWJlciA9IGVucmljaEplbmtpbnNCdWlsZChqb2IsIGpvYi5sYXN0RmFpbGVkbEJ1aWxkKTtcblxuICAgICAgaWYgKGxhc3RCdWlsZCkge1xuICAgICAgICBqb2IuJGR1cmF0aW9uID0gbGFzdEJ1aWxkLmR1cmF0aW9uO1xuICAgICAgICBqb2IuJHRpbWVzdGFtcCA9IGFzRGF0ZShsYXN0QnVpbGQudGltZXN0YW1wKTtcbiAgICAgIH1cbiAgICAgIHZhciBqb2JVcmwgPSAoam9iIHx8IHt9KS51cmw7XG4gICAgICBpZiAoIWpvYlVybCB8fCAham9iVXJsLnN0YXJ0c1dpdGgoXCJodHRwXCIpKSB7XG4gICAgICAgIHZhciBqZW5raW5zVXJsID0gamVua2luc0xpbmsoKTtcbiAgICAgICAgaWYgKGplbmtpbnNVcmwpIHtcbiAgICAgICAgICBqb2JVcmwgPSBVcmxIZWxwZXJzLmpvaW4oamVua2luc1VybCwgXCJqb2JcIiwgam9iTmFtZSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGpvYlVybCkge1xuICAgICAgICBqb2IuJGpvYkxpbmsgPSBqb2JVcmw7XG4gICAgICAgIHZhciB3b3Jrc3BhY2VOYW1lID0gS3ViZXJuZXRlcy5jdXJyZW50S3ViZXJuZXRlc05hbWVzcGFjZSgpO1xuICAgICAgICBqb2IuJHBpcGVsaW5lc0xpbmsgPSBVcmxIZWxwZXJzLmpvaW4oXCIvd29ya3NwYWNlc1wiLCB3b3Jrc3BhY2VOYW1lLCBcInByb2plY3RzXCIsIGpvYi4kcHJvamVjdCwgXCJqZW5raW5zSm9iXCIsIGpvYk5hbWUsIFwicGlwZWxpbmVzXCIpO1xuICAgICAgICBqb2IuJGJ1aWxkc0xpbmsgPSBVcmxIZWxwZXJzLmpvaW4oXCIvd29ya3NwYWNlc1wiLCB3b3Jrc3BhY2VOYW1lLCBcInByb2plY3RzXCIsIGpvYi4kcHJvamVjdCwgXCJqZW5raW5zSm9iXCIsIGpvYk5hbWUpO1xuICAgICAgfVxuICAgICAgam9iLiRpY29uQ2xhc3MgPSAkaWNvbkNsYXNzO1xuXG4gICAgICBhbmd1bGFyLmZvckVhY2goam9iLmJ1aWxkcywgKGJ1aWxkKSA9PiB7XG4gICAgICAgIGVucmljaEplbmtpbnNCdWlsZChqb2IsIGJ1aWxkKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gam9iO1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUJ1aWxkU3RhdHVzSWNvbkNsYXNzKHJlc3VsdCkge1xuICAgIHZhciAkaWNvbkNsYXNzID0gXCJmYSBmYS1zcGlubmVyIGZhLXNwaW5cIjtcbiAgICBpZiAocmVzdWx0KSB7XG4gICAgICBpZiAocmVzdWx0ID09PSBcIkZBSUxVUkVcIiB8fCByZXN1bHQgPT09IFwiRkFJTEVEXCIpIHtcbiAgICAgICAgLy8gVE9ETyBub3QgYXZhaWxhYmxlIHlldFxuICAgICAgICAkaWNvbkNsYXNzID0gXCJmYSBmYS1leGNsYW1hdGlvbi1jaXJjbGUgcmVkXCI7XG4gICAgICB9IGVsc2UgaWYgKHJlc3VsdCA9PT0gXCJBQk9SVEVEXCIgfHwgcmVzdWx0ID09PSBcIklOVEVSVVBURURcIikge1xuICAgICAgICAkaWNvbkNsYXNzID0gXCJmYSBmYS1jaXJjbGUgZ3JleVwiO1xuICAgICAgfSBlbHNlIGlmIChyZXN1bHQgPT09IFwiU1VDQ0VTU1wiKSB7XG4gICAgICAgICRpY29uQ2xhc3MgPSBcImZhIGZhLWNoZWNrLWNpcmNsZSBncmVlblwiO1xuICAgICAgfSBlbHNlIGlmIChyZXN1bHQgPT09IFwiTk9UX1NUQVJURURcIikge1xuICAgICAgICAkaWNvbkNsYXNzID0gXCJmYSBmYS1jaXJjbGUtdGhpbiBncmV5XCI7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiAkaWNvbkNsYXNzO1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUJ1aWxkU3RhdHVzQmFja2dyb3VuZENsYXNzKHJlc3VsdCkge1xuICAgIHZhciAkaWNvbkNsYXNzID0gXCJidWlsZC1wZW5kaW5nXCI7XG4gICAgaWYgKHJlc3VsdCkge1xuICAgICAgaWYgKHJlc3VsdCA9PT0gXCJGQUlMVVJFXCIgfHwgcmVzdWx0ID09PSBcIkZBSUxFRFwiKSB7XG4gICAgICAgICRpY29uQ2xhc3MgPSBcImJ1aWxkLWZhaWxcIjtcbiAgICAgIH0gZWxzZSBpZiAocmVzdWx0ID09PSBcIkFCT1JURURcIiB8fCByZXN1bHQgPT09IFwiSU5URVJVUFRFRFwiKSB7XG4gICAgICAgICRpY29uQ2xhc3MgPSBcImJ1aWxkLWFib3J0ZWRcIjtcbiAgICAgIH0gZWxzZSBpZiAocmVzdWx0ID09PSBcIlNVQ0NFU1NcIikge1xuICAgICAgICAkaWNvbkNsYXNzID0gXCJidWlsZC1zdWNjZXNzXCI7XG4gICAgICB9IGVsc2UgaWYgKHJlc3VsdCA9PT0gXCJOT1RfU1RBUlRFRFwiKSB7XG4gICAgICAgICRpY29uQ2xhc3MgPSBcImJ1aWxkLW5vdC1zdGFydGVkXCI7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiAkaWNvbkNsYXNzO1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGVucmljaEplbmtpbnNCdWlsZChqb2IsIGJ1aWxkKSB7XG4gICAgdmFyIG51bWJlciA9IG51bGw7XG4gICAgaWYgKGJ1aWxkKSB7XG4gICAgICBidWlsZC4kZHVyYXRpb24gPSBidWlsZC5kdXJhdGlvbjtcbiAgICAgIGJ1aWxkLiR0aW1lc3RhbXAgPSBhc0RhdGUoYnVpbGQudGltZXN0YW1wKTtcbiAgICAgIHZhciBwcm9qZWN0SWQgPSBqb2IuJHByb2plY3Q7XG4gICAgICB2YXIgam9iTmFtZSA9IGpvYi4kam9iSWQgfHwgcHJvamVjdElkO1xuICAgICAgdmFyIGJ1aWxkSWQgPSBidWlsZC5pZDtcbiAgICAgIG51bWJlciA9IGJ1aWxkLm51bWJlcjtcbiAgICAgIHZhciB3b3Jrc3BhY2VOYW1lID0gS3ViZXJuZXRlcy5jdXJyZW50S3ViZXJuZXRlc05hbWVzcGFjZSgpO1xuXG4gICAgICB2YXIgJGljb25DbGFzcyA9IGNyZWF0ZUJ1aWxkU3RhdHVzSWNvbkNsYXNzKGJ1aWxkLnJlc3VsdCk7XG4gICAgICB2YXIgam9iVXJsID0gKGpvYiB8fCB7fSkudXJsO1xuICAgICAgaWYgKCFqb2JVcmwgfHwgIWpvYlVybC5zdGFydHNXaXRoKFwiaHR0cFwiKSkge1xuICAgICAgICB2YXIgamVua2luc1VybCA9IGplbmtpbnNMaW5rKCk7XG4gICAgICAgIGlmIChqZW5raW5zVXJsKSB7XG4gICAgICAgICAgam9iVXJsID0gVXJsSGVscGVycy5qb2luKGplbmtpbnNVcmwsIFwiam9iXCIsIGpvYk5hbWUpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChqb2JVcmwpIHtcbiAgICAgICAgYnVpbGQuJGpvYkxpbmsgPSBqb2JVcmw7XG4gICAgICAgIGlmIChidWlsZElkKSB7XG4gICAgICAgICAgLy9idWlsZC4kbG9nc0xpbmsgPSBVcmxIZWxwZXJzLmpvaW4oYnVpbGQuJGJ1aWxkTGluaywgXCJjb25zb2xlXCIpO1xuICAgICAgICAgIGJ1aWxkLiRsb2dzTGluayA9IFVybEhlbHBlcnMuam9pbihcIi93b3Jrc3BhY2VzXCIsIHdvcmtzcGFjZU5hbWUsIFwicHJvamVjdHNcIiwgcHJvamVjdElkLCBcImplbmtpbnNKb2JcIiwgam9iTmFtZSwgXCJsb2dcIiwgYnVpbGRJZCk7XG4gICAgICAgICAgYnVpbGQuJHBpcGVsaW5lTGluayA9IFVybEhlbHBlcnMuam9pbihcIi93b3Jrc3BhY2VzXCIsIHdvcmtzcGFjZU5hbWUsIFwicHJvamVjdHNcIiwgcHJvamVjdElkLCBcImplbmtpbnNKb2JcIiwgam9iTmFtZSwgXCJwaXBlbGluZVwiLCBidWlsZElkKTtcbiAgICAgICAgICBidWlsZC4kYnVpbGRzTGluayA9IFVybEhlbHBlcnMuam9pbihcIi93b3Jrc3BhY2VzXCIsIHdvcmtzcGFjZU5hbWUsIFwicHJvamVjdHNcIiwgcHJvamVjdElkLCBcImplbmtpbnNKb2JcIiwgam9iTmFtZSk7XG4gICAgICAgICAgLy9idWlsZC4kYnVpbGRMaW5rID0gVXJsSGVscGVycy5qb2luKGpvYlVybCwgYnVpbGQuaWQpO1xuICAgICAgICAgIGJ1aWxkLiRidWlsZExpbmsgPSBidWlsZC4kbG9nc0xpbms7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGJ1aWxkLiRpY29uQ2xhc3MgPSAkaWNvbkNsYXNzO1xuICAgIH1cbiAgICByZXR1cm4gbnVtYmVyO1xuICB9XG5cblxuICBleHBvcnQgZnVuY3Rpb24gamVua2luc0xpbmsoKSB7XG4gICAgdmFyIFNlcnZpY2VSZWdpc3RyeSA9IEt1YmVybmV0ZXMuaW5qZWN0KFwiU2VydmljZVJlZ2lzdHJ5XCIpO1xuICAgIGlmIChTZXJ2aWNlUmVnaXN0cnkpIHtcbiAgICAgIHJldHVybiBTZXJ2aWNlUmVnaXN0cnkuc2VydmljZUxpbmsoamVua2luc1NlcnZpY2VOYW1lKTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gZm9yZ2VSZWFkeUxpbmsoKSB7XG4gICAgdmFyIFNlcnZpY2VSZWdpc3RyeSA9IEt1YmVybmV0ZXMuaW5qZWN0KFwiU2VydmljZVJlZ2lzdHJ5XCIpO1xuICAgIGlmIChTZXJ2aWNlUmVnaXN0cnkpIHtcbiAgICAgIHJldHVybiBTZXJ2aWNlUmVnaXN0cnkuc2VydmljZVJlYWR5TGluayhLdWJlcm5ldGVzLmZhYnJpYzhGb3JnZVNlcnZpY2VOYW1lKTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gZW5yaWNoSmVua2luc1BpcGVsaW5lSm9iKGpvYiwgcHJvamVjdElkLCBqb2JJZCkge1xuICAgIGlmIChqb2IpIHtcbiAgICAgIGpvYi4kcHJvamVjdCA9IHByb2plY3RJZDtcbiAgICAgIGpvYi4kam9iSWQgPSBqb2JJZDtcbiAgICAgIGFuZ3VsYXIuZm9yRWFjaChqb2IuYnVpbGRzLCAoYnVpbGQpID0+IHtcbiAgICAgICAgZW5yaWNoSmVua2luc1N0YWdlcyhidWlsZCwgcHJvamVjdElkLCBqb2JJZCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gZW5yaWNoSmVua2luc1N0YWdlcyhidWlsZCwgcHJvamVjdElkLCBqb2JOYW1lKSB7XG4gICAgaWYgKGJ1aWxkKSB7XG4gICAgICBidWlsZC4kcHJvamVjdCA9IHByb2plY3RJZDtcbiAgICAgIGJ1aWxkLiRqb2JJZCA9IGpvYk5hbWU7XG4gICAgICBidWlsZC4kdGltZXN0YW1wID0gYXNEYXRlKGJ1aWxkLnRpbWVJbk1pbGxpcyk7XG4gICAgICBidWlsZC4kaWNvbkNsYXNzID0gY3JlYXRlQnVpbGRTdGF0dXNJY29uQ2xhc3MoYnVpbGQucmVzdWx0IHx8IFwiTk9UX1NUQVJURURcIik7XG5cbiAgICAgIHZhciB3b3Jrc3BhY2VOYW1lID0gS3ViZXJuZXRlcy5jdXJyZW50S3ViZXJuZXRlc05hbWVzcGFjZSgpO1xuICAgICAgdmFyIHBhcmFtZXRlcnMgPSBidWlsZC5wYXJhbWV0ZXJzO1xuICAgICAgdmFyICRwYXJhbWV0ZXJDb3VudCA9IDA7XG4gICAgICB2YXIgJHBhcmFtZXRlclRleHQgPSBcIk5vIHBhcmFtZXRlcnNcIjtcbiAgICAgIGlmIChwYXJhbWV0ZXJzKSB7XG4gICAgICAgICRwYXJhbWV0ZXJDb3VudCA9IF8ua2V5cyhwYXJhbWV0ZXJzKS5sZW5ndGggfHwgMDtcbiAgICAgICAgJHBhcmFtZXRlclRleHQgPSBLdWJlcm5ldGVzLmxhYmVsc1RvU3RyaW5nKHBhcmFtZXRlcnMsIFwiIFwiKTtcbiAgICAgIH1cbiAgICAgIGJ1aWxkLiRwYXJhbWV0ZXJDb3VudCA9ICRwYXJhbWV0ZXJDb3VudDtcbiAgICAgIGJ1aWxkLiRwYXJhbWV0ZXJUZXh0ID0gJHBhcmFtZXRlclRleHQ7XG4gICAgICB2YXIgamVua2luc1VybCA9IGplbmtpbnNMaW5rKCk7XG4gICAgICBpZiAoamVua2luc1VybCkge1xuICAgICAgICB2YXIgdXJsID0gYnVpbGQudXJsO1xuICAgICAgICBpZiAodXJsKSB7XG4vKlxuICAgICAgICAgIGJ1aWxkLiR2aWV3TGluayA9IFVybEhlbHBlcnMuam9pbihqZW5raW5zVXJsLCB1cmwpO1xuICAgICAgICAgIGJ1aWxkLiRsb2dMaW5rID0gVXJsSGVscGVycy5qb2luKGJ1aWxkLiR2aWV3TGluaywgXCJsb2dcIik7XG4qL1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBidWlsZC4kbG9nTGluayA9IFVybEhlbHBlcnMuam9pbihcIi93b3Jrc3BhY2VzXCIsIHdvcmtzcGFjZU5hbWUsIFwicHJvamVjdHNcIiwgcHJvamVjdElkLCBcImplbmtpbnNKb2JcIiwgam9iTmFtZSwgXCJsb2dcIiwgYnVpbGQuaWQpO1xuICAgICAgYnVpbGQuJHZpZXdMaW5rID0gYnVpbGQuJGxvZ0xpbms7XG5cbiAgICAgIGFuZ3VsYXIuZm9yRWFjaChidWlsZC5zdGFnZXMsIChzdGFnZSkgPT4ge1xuICAgICAgICBlbnJpY2hKZW5raW5zU3RhZ2Uoc3RhZ2UsIGJ1aWxkKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gYnVpbGQ7XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gZW5yaWNoSmVua2luc1N0YWdlKHN0YWdlLCBidWlsZCA9IG51bGwpIHtcbiAgICBpZiAoc3RhZ2UpIHtcbiAgICAgIGlmIChidWlsZCkge1xuICAgICAgICBzdGFnZS4kYnVpbGRJZCA9IGJ1aWxkLmlkO1xuICAgICAgICBzdGFnZS4kcHJvamVjdCA9IGJ1aWxkLiRwcm9qZWN0O1xuICAgICAgfVxuICAgICAgdmFyIHByb2plY3RJZCA9IGJ1aWxkLiRwcm9qZWN0O1xuICAgICAgdmFyIGpvYk5hbWUgPSBidWlsZC4kam9iSWQgfHwgcHJvamVjdElkO1xuICAgICAgdmFyIGJ1aWxkSWQgPSBidWlsZC5pZDtcbiAgICAgIHZhciB3b3Jrc3BhY2VOYW1lID0gS3ViZXJuZXRlcy5jdXJyZW50S3ViZXJuZXRlc05hbWVzcGFjZSgpO1xuICAgICAgc3RhZ2UuJGJhY2tncm91bmRDbGFzcyA9ICBjcmVhdGVCdWlsZFN0YXR1c0JhY2tncm91bmRDbGFzcyhzdGFnZS5zdGF0dXMpO1xuICAgICAgc3RhZ2UuJGljb25DbGFzcyA9IGNyZWF0ZUJ1aWxkU3RhdHVzSWNvbkNsYXNzKHN0YWdlLnN0YXR1cyk7XG4gICAgICBzdGFnZS4kc3RhcnRUaW1lID0gYXNEYXRlKHN0YWdlLnN0YXJ0VGltZSk7XG4gICAgICBpZiAoIXN0YWdlLmR1cmF0aW9uKSB7XG4gICAgICAgIHN0YWdlLmR1cmF0aW9uID0gMDtcbiAgICAgIH1cbiAgICAgIHZhciBqZW5raW5zVXJsID0gamVua2luc0xpbmsoKTtcbiAgICAgIGlmIChqZW5raW5zVXJsKSB7XG4gICAgICAgIHZhciB1cmwgPSBzdGFnZS51cmw7XG4gICAgICAgIGlmICh1cmwpIHtcbiAgICAgICAgICBzdGFnZS4kdmlld0xpbmsgPSBVcmxIZWxwZXJzLmpvaW4oamVua2luc1VybCwgdXJsKTtcbiAgICAgICAgICBzdGFnZS4kbG9nTGluayA9IFVybEhlbHBlcnMuam9pbihzdGFnZS4kdmlld0xpbmssIFwibG9nXCIpO1xuICAgICAgICAgIGlmIChwcm9qZWN0SWQgJiYgYnVpbGRJZCkge1xuICAgICAgICAgICAgc3RhZ2UuJGxvZ0xpbmsgPSBVcmxIZWxwZXJzLmpvaW4oXCIvd29ya3NwYWNlc1wiLCB3b3Jrc3BhY2VOYW1lLCBcInByb2plY3RzXCIsIHByb2plY3RJZCwgXCJqZW5raW5zSm9iXCIsIGpvYk5hbWUsIFwibG9nXCIsIGJ1aWxkSWQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIi8vLyA8cmVmZXJlbmNlIHBhdGg9XCIuLi8uLi9pbmNsdWRlcy50c1wiLz5cbm1vZHVsZSBEZXZlbG9wZXIge1xuXG4gIGV4cG9ydCB2YXIgY29udGV4dCA9ICcvd29ya3NwYWNlcyc7XG4gIGV4cG9ydCB2YXIgaGFzaCA9ICcjJyArIGNvbnRleHQ7XG4gIGV4cG9ydCB2YXIgcGx1Z2luTmFtZSA9ICdEZXZlbG9wZXInO1xuICBleHBvcnQgdmFyIHBsdWdpblBhdGggPSAncGx1Z2lucy9kZXZlbG9wZXIvJztcbiAgZXhwb3J0IHZhciB0ZW1wbGF0ZVBhdGggPSBwbHVnaW5QYXRoICsgJ2h0bWwvJztcbiAgZXhwb3J0IHZhciBsb2c6TG9nZ2luZy5Mb2dnZXIgPSBMb2dnZXIuZ2V0KHBsdWdpbk5hbWUpO1xuXG4gIGV4cG9ydCB2YXIgamVua2luc1NlcnZpY2VOYW1lID0gXCJqZW5raW5zXCI7XG4gIGV4cG9ydCB2YXIgamVua2luc1NlcnZpY2VOYW1lQW5kUG9ydCA9IGplbmtpbnNTZXJ2aWNlTmFtZSArIFwiOmh0dHBcIjtcblxuICBleHBvcnQgdmFyIGplbmtpbnNIdHRwQ29uZmlnID0ge1xuICAgIGhlYWRlcnM6IHtcbiAgICAgIEFjY2VwdDogXCJhcHBsaWNhdGlvbi9qc29uLCB0ZXh0L3gtanNvbiwgdGV4dC9wbGFpblwiXG4gICAgfVxuICB9O1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIHZhbHVlIGhhc24ndCBjaGFuZ2VkIGZyb20gdGhlIGxhc3QgY2FjaGVkIEpTT04gdmVyc2lvbiBvZiB0aGlzIG9iamVjdFxuICAgKi9cbiAgZXhwb3J0IGZ1bmN0aW9uIGhhc09iamVjdENoYW5nZWQodmFsdWUsIHN0YXRlKSB7XG4gICAgdmFyIGpzb24gPSBhbmd1bGFyLnRvSnNvbih2YWx1ZSB8fCBcIlwiKTtcbiAgICB2YXIgb2xkSnNvbiA9IHN0YXRlLmpzb247XG4gICAgc3RhdGUuanNvbiA9IGpzb247XG4gICAgcmV0dXJuICFvbGRKc29uIHx8IGpzb24gIT09IG9sZEpzb247XG4gIH1cblxuICAvKipcbiAgICogTGV0cyBsb2FkIHRoZSBwcm9qZWN0IHZlcnNpb25zIGZvciB0aGUgZ2l2ZW4gbmFtZXNwYWNlXG4gICAqL1xuICBleHBvcnQgZnVuY3Rpb24gbG9hZFByb2plY3RWZXJzaW9ucygkc2NvcGUsICRodHRwLCBwcm9qZWN0LCBlbnYsIG5zLCBhbnN3ZXIsIGNhY2hlcykge1xuICAgIHZhciB1cmwgPSBLdWJlcm5ldGVzLnJlc291cmNlc1VyaUZvcktpbmQoS3ViZXJuZXRlcy5XYXRjaFR5cGVzLlJFUExJQ0FUSU9OX0NPTlRST0xMRVJTLCBucykgKyBcIj9sYWJlbFNlbGVjdG9yPXByb2plY3RcIjtcblxuICAgIHZhciBwcm9qZWN0QW5ub3RhdGlvbiA9IFwicHJvamVjdFwiO1xuICAgIHZhciB2ZXJzaW9uQW5ub3RhdGlvbiA9IFwidmVyc2lvblwiO1xuXG4gICAgJGh0dHAuZ2V0KHVybCkuXG4gICAgICBzdWNjZXNzKGZ1bmN0aW9uIChkYXRhLCBzdGF0dXMsIGhlYWRlcnMsIGNvbmZpZykge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgIHZhciBwcm9qZWN0SW5mb3MgPSB7fTtcbiAgICAgICAgICB2YXIgcHJvamVjdE5hbWVzcGFjZSA9IHByb2plY3QuJG5hbWVzcGFjZTtcbiAgICAgICAgICB2YXIgcHJvamVjdE5hbWUgPSBwcm9qZWN0LiRuYW1lO1xuXG4gICAgICAgICAgLy9lbnYucHJvamVjdFZlcnNpb25zID0gcHJvamVjdEluZm9zO1xuICAgICAgICAgIGFuZ3VsYXIuZm9yRWFjaChkYXRhLml0ZW1zLCAoaXRlbSkgPT4ge1xuICAgICAgICAgICAgdmFyIG1ldGFkYXRhID0gaXRlbS5tZXRhZGF0YSB8fCB7fTtcbiAgICAgICAgICAgIHZhciBuYW1lID0gbWV0YWRhdGEubmFtZTtcbiAgICAgICAgICAgIHZhciBsYWJlbHMgPSBtZXRhZGF0YS5sYWJlbHMgfHwge307XG4gICAgICAgICAgICB2YXIgYW5ub3RhdGlvbnMgPSBtZXRhZGF0YS5hbm5vdGF0aW9ucyB8fCB7fTtcblxuICAgICAgICAgICAgdmFyIHByb2plY3QgPSBsYWJlbHNbcHJvamVjdEFubm90YXRpb25dO1xuICAgICAgICAgICAgdmFyIHZlcnNpb24gPSBsYWJlbHNbdmVyc2lvbkFubm90YXRpb25dO1xuICAgICAgICAgICAgaWYgKHByb2plY3QgJiYgdmVyc2lvbikge1xuICAgICAgICAgICAgICB2YXIgcHJvamVjdHMgPSBwcm9qZWN0SW5mb3NbcHJvamVjdF07XG4gICAgICAgICAgICAgIGlmICghcHJvamVjdHMpIHtcbiAgICAgICAgICAgICAgICBwcm9qZWN0cyA9IHtcbiAgICAgICAgICAgICAgICAgIHByb2plY3Q6IHByb2plY3QsXG4gICAgICAgICAgICAgICAgICB2ZXJzaW9uczoge31cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIHByb2plY3RJbmZvc1twcm9qZWN0XSA9IHByb2plY3RzO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHZhciB2ZXJzaW9uSW5mbyA9IHByb2plY3RzLnZlcnNpb25zW3ZlcnNpb25dO1xuICAgICAgICAgICAgICBpZiAoIXZlcnNpb25JbmZvKSB7XG4gICAgICAgICAgICAgICAgdmVyc2lvbkluZm8gPSB7XG4gICAgICAgICAgICAgICAgICByZXBsaWNhdGlvbkNvbnRyb2xsZXJzOiBbXVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgcHJvamVjdHMudmVyc2lvbnNbdmVyc2lvbl0gPSB2ZXJzaW9uSW5mbztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB2ZXJzaW9uSW5mby5yZXBsaWNhdGlvbkNvbnRyb2xsZXJzLnB1c2goaXRlbSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobmFtZSkge1xuICAgICAgICAgICAgICBpdGVtLiRuYW1lID0gbmFtZTtcbiAgICAgICAgICAgICAgaWYgKHByb2plY3ROYW1lc3BhY2UgJiYgcHJvamVjdE5hbWUpIHtcbiAgICAgICAgICAgICAgICBpdGVtLiR2aWV3TGluayA9IFVybEhlbHBlcnMuam9pbihcIi93b3Jrc3BhY2VzL1wiLCBwcm9qZWN0TmFtZXNwYWNlLCBcInByb2plY3RzXCIsIHByb2plY3ROYW1lLCBcIm5hbWVzcGFjZVwiLCBucywgXCJyZXBsaWNhdGlvbkNvbnRyb2xsZXJzXCIsIG5hbWUpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpdGVtLiRidWlsZElkID0gYW5ub3RhdGlvbnNbXCJmYWJyaWM4LmlvL2J1aWxkLWlkXCJdO1xuICAgICAgICAgICAgaXRlbS4kYnVpbGRVcmwgPSBhbm5vdGF0aW9uc1tcImZhYnJpYzguaW8vYnVpbGQtdXJsXCJdO1xuICAgICAgICAgICAgaXRlbS4kZ2l0Q29tbWl0ID0gYW5ub3RhdGlvbnNbXCJmYWJyaWM4LmlvL2dpdC1jb21taXRcIl07XG4gICAgICAgICAgICBpdGVtLiRnaXRVcmwgPSBhbm5vdGF0aW9uc1tcImZhYnJpYzguaW8vZ2l0LXVybFwiXTtcbiAgICAgICAgICAgIGl0ZW0uJGdpdEJyYW5jaCA9IGFubm90YXRpb25zW1wiZmFicmljOC5pby9naXQtYnJhbmNoXCJdO1xuXG4gICAgICAgICAgICB2YXIgc3BlYyA9IGl0ZW0uc3BlYyB8fCB7fTtcbiAgICAgICAgICAgIHZhciBzZWxlY3RvciA9IHNwZWMuc2VsZWN0b3I7XG4gICAgICAgICAgICBpZiAoc2VsZWN0b3IpIHtcbiAgICAgICAgICAgICAgbG9hZFByb2plY3RQb2RDb3VudGVycygkc2NvcGUsICRodHRwLCBwcm9qZWN0LCBpdGVtLCBzZWxlY3RvciwgbnMsIHByb2plY3ROYW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIHZhciBjYWNoZSA9IGNhY2hlc1tuc107XG4gICAgICAgICAgaWYgKCFjYWNoZSkge1xuICAgICAgICAgICAgY2FjaGUgPSB7fTtcbiAgICAgICAgICAgIGNhY2hlc1tuc10gPSBjYWNoZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGhhc09iamVjdENoYW5nZWQocHJvamVjdEluZm9zLCBjYWNoZSkpIHtcbiAgICAgICAgICAgIGxvZy5pbmZvKFwicHJvamVjdCB2ZXJzaW9ucyBoYXMgY2hhbmdlZCFcIik7XG4gICAgICAgICAgICBhbnN3ZXJbbnNdID0gcHJvamVjdEluZm9zO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSkuXG4gICAgICBlcnJvcihmdW5jdGlvbiAoZGF0YSwgc3RhdHVzLCBoZWFkZXJzLCBjb25maWcpIHtcbiAgICAgICAgbG9nLndhcm4oXCJGYWlsZWQgdG8gbG9hZCBcIiArIHVybCArIFwiIFwiICsgZGF0YSArIFwiIFwiICsgc3RhdHVzKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgZnVuY3Rpb24gbG9hZFByb2plY3RQb2RDb3VudGVycygkc2NvcGUsICRodHRwLCBwcm9qZWN0LCByYywgc2VsZWN0b3IsIG5zLCBwcm9qZWN0TmFtZSkge1xuICAgIHZhciBzZWxlY3RvclRleHQgPSBLdWJlcm5ldGVzLmxhYmVsc1RvU3RyaW5nKHNlbGVjdG9yLCBcIixcIik7XG4gICAgdmFyIHVybCA9IEt1YmVybmV0ZXMucmVzb3VyY2VzVXJpRm9yS2luZChLdWJlcm5ldGVzLldhdGNoVHlwZXMuUE9EUywgbnMpICsgXCI/bGFiZWxTZWxlY3Rvcj1cIiArIGVuY29kZVVSSUNvbXBvbmVudChzZWxlY3RvclRleHQpO1xuICAgIHZhciBwb2RMaW5rVXJsID0gVXJsSGVscGVycy5qb2luKHByb2plY3RMaW5rKHByb2plY3ROYW1lKSwgXCJuYW1lc3BhY2VcIiwgbnMsIFwicG9kc1wiKTtcbiAgICAkaHR0cC5nZXQodXJsKS5cbiAgICAgIHN1Y2Nlc3MoZnVuY3Rpb24gKGRhdGEsIHN0YXR1cywgaGVhZGVycywgY29uZmlnKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgdmFyIHBvZHMgPSBkYXRhLml0ZW1zO1xuICAgICAgICAgIGlmIChwb2RzKSB7XG4gICAgICAgICAgICByYy5wb2RzID0gW107XG4gICAgICAgICAgICByYy4kcG9kQ291bnRlcnMgPSBLdWJlcm5ldGVzLmNyZWF0ZVBvZENvdW50ZXJzKHNlbGVjdG9yLCBwb2RzLCByYy5wb2RzLCBzZWxlY3RvclRleHQsIHBvZExpbmtVcmwpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSkuXG4gICAgICBlcnJvcihmdW5jdGlvbiAoZGF0YSwgc3RhdHVzLCBoZWFkZXJzLCBjb25maWcpIHtcbiAgICAgICAgbG9nLndhcm4oXCJGYWlsZWQgdG8gbG9hZCBcIiArIHVybCArIFwiIFwiICsgZGF0YSArIFwiIFwiICsgc3RhdHVzKTtcbiAgICAgIH0pO1xuICB9XG5cbn0iLCIvLy8gPHJlZmVyZW5jZSBwYXRoPVwiLi4vLi4vaW5jbHVkZXMudHNcIi8+XG5tb2R1bGUgRGV2ZWxvcGVyIHtcblxuLypcbiAgZnVuY3Rpb24gaG9tZUJyZWFkY3J1bWIoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGhyZWY6IFwiL2hvbWVcIixcbiAgICAgIGxhYmVsOiBcIkhvbWVcIixcbiAgICAgIHRpdGxlOiBcIkdvIHRvIHRoZSBob21lIHBhZ2VcIlxuICAgIH1cbiAgfVxuKi9cbiAgZnVuY3Rpb24gZGV2ZWxvcEJyZWFkY3J1bWIoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGhyZWY6IFwiL3dvcmtzcGFjZXNcIixcbiAgICAgIGxhYmVsOiBcIkRldmVsb3BcIixcbiAgICAgIHRpdGxlOiBcIlZpZXcgYWxsIHRoZSBkZXZlbG9wZXIgd29ya3NwYWNlc1wiXG4gICAgfTtcbiAgfVxuICBmdW5jdGlvbiBvcGVyYXRlQnJlYWRjcnVtYigpIHtcbiAgICByZXR1cm4ge1xuICAgICAgaHJlZjogXCIvbmFtZXNwYWNlc1wiLFxuICAgICAgbGFiZWw6IFwiTWFuYWdlXCIsXG4gICAgICB0aXRsZTogXCJNYW5hZ2UgdGhlIG5hbWVzcGFjZXMgYW5kIHJlc291cmNlcyBpbnNpZGUgdGhlbVwiXG4gICAgfTtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiB3b3Jrc3BhY2VMaW5rKCkge1xuICAgIHJldHVybiBVcmxIZWxwZXJzLmpvaW4oXCIvd29ya3NwYWNlc1wiLCBLdWJlcm5ldGVzLmN1cnJlbnRLdWJlcm5ldGVzTmFtZXNwYWNlKCkpO1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIHByb2plY3RMaW5rKHByb2plY3RJZCkge1xuICAgIHZhciBsaW5rID0gd29ya3NwYWNlTGluaygpO1xuICAgIGlmIChwcm9qZWN0SWQpIHtcbiAgICAgIHJldHVybiBVcmxIZWxwZXJzLmpvaW4obGluaywgXCIvcHJvamVjdHNcIiwgcHJvamVjdElkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGxpbms7XG4gICAgfVxuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVdvcmtzcGFjZXNCcmVhZGNydW1icyhkZXZlbG9wUGVyc3BlY3RpdmUpIHtcbi8qXG4gICAgaWYgKGRldmVsb3BQZXJzcGVjdGl2ZSkge1xuICAgICAgcmV0dXJuIFtcbiAgICAgICAgLy9ob21lQnJlYWRjcnVtYigpLFxuICAgICAgICBkZXZlbG9wQnJlYWRjcnVtYigpXG4gICAgICBdO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gW1xuICAgICAgICAvL2hvbWVCcmVhZGNydW1iKCksXG4gICAgICAgIG9wZXJhdGVCcmVhZGNydW1iKClcbiAgICAgIF07XG4gICAgfVxuKi9cbiAgICByZXR1cm4gW107XG4gIH1cblxuXG4gIGV4cG9ydCBmdW5jdGlvbiBjcmVhdGVXb3Jrc3BhY2VzU3ViTmF2QmFycyhkZXZlbG9wUGVyc3BlY3RpdmUpIHtcbiAgICAgIHJldHVybiBhY3RpdmF0ZUN1cnJlbnQoW1xuICAgICAgICBkZXZlbG9wQnJlYWRjcnVtYigpLFxuICAgICAgICBvcGVyYXRlQnJlYWRjcnVtYigpXG4gICAgICBdKTtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBjcmVhdGVXb3Jrc3BhY2VCcmVhZGNydW1icyhjaGlsZHJlbiA9IG51bGwsIHdvcmtzcGFjZU5hbWUgPSBudWxsKSB7XG4gICAgdmFyIGFuc3dlciA9IFtcbiAgICAgIC8vaG9tZUJyZWFkY3J1bWIoKSxcbiAgICAgIGRldmVsb3BCcmVhZGNydW1iKClcbiAgICBdO1xuICAgIGlmICghd29ya3NwYWNlTmFtZSkge1xuICAgICAgd29ya3NwYWNlTmFtZSA9IEt1YmVybmV0ZXMuY3VycmVudEt1YmVybmV0ZXNOYW1lc3BhY2UoKTtcbiAgICB9XG4gICAgaWYgKHdvcmtzcGFjZU5hbWUpIHtcbiAgICAgIGFuc3dlci5wdXNoKFxuICAgICAgICB7XG4gICAgICAgICAgaHJlZjogXCIvd29ya3NwYWNlcy9cIiArIHdvcmtzcGFjZU5hbWUsXG4gICAgICAgICAgbGFiZWw6IHdvcmtzcGFjZU5hbWUsXG4gICAgICAgICAgdGl0bGU6IFwiVmlldyB0aGUgd29ya3NwYWNlOiBcIiArIHdvcmtzcGFjZU5hbWVcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICAgIHJldHVybiBwcm9jZXNzQ2hpbGRyZW4oYW5zd2VyLCBjaGlsZHJlbik7XG4gICAgfVxuICAgIHJldHVybiBhbnN3ZXI7XG4gIH1cblxuXG4gIGV4cG9ydCBmdW5jdGlvbiBjcmVhdGVFbnZpcm9ubWVudEJyZWFkY3J1bWJzKCRzY29wZSwgJGxvY2F0aW9uLCAkcm91dGVQYXJhbXMpIHtcbiAgICB2YXIgbnMgPSBLdWJlcm5ldGVzLmN1cnJlbnRLdWJlcm5ldGVzTmFtZXNwYWNlKCk7XG4gICAgdmFyIG5hbWVzcGFjZXNMaW5rID0gXCIva3ViZXJuZXRlcy9uYW1lc3BhY2VcIjtcbiAgICB2YXIgd29ya3NwYWNlTmFtZSA9ICRyb3V0ZVBhcmFtcy53b3Jrc3BhY2U7XG4gICAgdmFyIHByb2plY3QgPSAkcm91dGVQYXJhbXMucHJvamVjdDtcbiAgICBpZiAod29ya3NwYWNlTmFtZSAmJiBwcm9qZWN0KSB7XG4gICAgICB2YXIgcHJvamVjdExpbmsgPSBVcmxIZWxwZXJzLmpvaW4oXCIvd29ya3NwYWNlc1wiLCB3b3Jrc3BhY2VOYW1lLCBcInByb2plY3RzXCIsIHByb2plY3QpO1xuICAgICAgJHNjb3BlLiRwcm9qZWN0TGluayA9IHByb2plY3RMaW5rO1xuICAgICAgJHNjb3BlLiRwcm9qZWN0TmFtZXNwYWNlTGluayA9IFVybEhlbHBlcnMuam9pbihwcm9qZWN0TGluaywgXCJuYW1lc3BhY2VcIiwgbnMpO1xuICAgICAgbmFtZXNwYWNlc0xpbmsgPSBVcmxIZWxwZXJzLmpvaW4ocHJvamVjdExpbmssIFwibmFtZXNwYWNlXCIpO1xuICAgICAgLy8gVE9ETyB1c2UgdGhlIGxvZ2ljYWwgbmFtZT9cbiAgICAgIHZhciBlbnZOYW1lID0gbnM7XG4gICAgICB2YXIgYnVpbGRDb25maWcgPSBudWxsO1xuICAgICAgaWYgKCRzY29wZS5tb2RlbCkge1xuICAgICAgICBidWlsZENvbmZpZyA9ICRzY29wZS5tb2RlbC5nZXRQcm9qZWN0KHByb2plY3QsIHdvcmtzcGFjZU5hbWUpO1xuICAgICAgICBpZiAoYnVpbGRDb25maWcpIHtcbiAgICAgICAgICAvLyBsZXRzIGZpbmQgdGhlIGxhYmVsIGZvciB0aGUgbmFtZXNwYWNlXG4gICAgICAgICAgdmFyIGVudiA9IF8uZmluZChidWlsZENvbmZpZy5lbnZpcm9ubWVudHMsIHsgbmFtZXNwYWNlOiBuc30pO1xuICAgICAgICAgIGlmIChlbnYpIHtcbiAgICAgICAgICAgIGVudk5hbWUgPSBlbnZbJ2xhYmVsJ10gfHwgZW52TmFtZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgbG9nLmluZm8oXCJlbnYgZm91bmQ6IFwiICsgZW52ICsgXCIgZm9yIG5hbWVwcGFjZSBcIiArIG5zICsgXCIgb24gYnVpbGRDb25maWc6IFwiICsgYnVpbGRDb25maWcpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB2YXIgY2hpbGRyZW4gPSBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgaHJlZjogVXJsSGVscGVycy5qb2luKHByb2plY3RMaW5rLCBcImVudmlyb25tZW50c1wiKSxcbiAgICAgICAgICAgIGxhYmVsOiBcIkVudmlyb25tZW50c1wiLFxuICAgICAgICAgICAgdGl0bGU6IFwiVmlldyB0aGUgZW52aXJvbm1lbnRzIGZvciB0aGlzIHByb2plY3RcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgaHJlZjogVXJsSGVscGVycy5qb2luKG5hbWVzcGFjZXNMaW5rLCBucywgXCJhcHBzXCIpLFxuICAgICAgICAgICAgbGFiZWw6IGVudk5hbWUsXG4gICAgICAgICAgICB0aXRsZTogXCJWaWV3IHRoZSBydW50aW1lIG9mIHRoZSB3b3Jrc3BhY2U6IFwiICsgbnNcbiAgICAgICAgICB9XG4gICAgICAgICAgXTtcbiAgICAgIHJldHVybiBjcmVhdGVQcm9qZWN0QnJlYWRjcnVtYnMocHJvamVjdCwgY2hpbGRyZW4sIHdvcmtzcGFjZU5hbWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoIXdvcmtzcGFjZU5hbWUpIHtcbiAgICAgICAgd29ya3NwYWNlTmFtZSA9IEt1YmVybmV0ZXMuY3VycmVudEt1YmVybmV0ZXNOYW1lc3BhY2UoKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBhY3RpdmF0ZUN1cnJlbnQoW1xuICAgICAgICAvL2hvbWVCcmVhZGNydW1iKCksXG4gICAgICAgIG9wZXJhdGVCcmVhZGNydW1iKCksXG4gICAgICAgIHtcbiAgICAgICAgICBocmVmOiBVcmxIZWxwZXJzLmpvaW4obmFtZXNwYWNlc0xpbmssIG5zLCBcImFwcHNcIiksXG4gICAgICAgICAgbGFiZWw6IHdvcmtzcGFjZU5hbWUsXG4gICAgICAgICAgdGl0bGU6IFwiVmlldyB0aGUgcnVudGltZSBvZiB0aGUgd29ya3NwYWNlOiBcIiArIG5zXG4gICAgICAgIH1cbiAgICAgIF0pO1xuICAgIH1cbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBjcmVhdGVQcm9qZWN0QnJlYWRjcnVtYnMocHJvamVjdE5hbWUgPSBudWxsLCBjaGlsZHJlbiA9IG51bGwsIHdvcmtzcGFjZU5hbWUgPSBudWxsKSB7XG4gICAgaWYgKCF3b3Jrc3BhY2VOYW1lKSB7XG4gICAgICB3b3Jrc3BhY2VOYW1lID0gS3ViZXJuZXRlcy5jdXJyZW50S3ViZXJuZXRlc05hbWVzcGFjZSgpO1xuICAgIH1cbiAgICB2YXIgYW5zd2VyID0gY3JlYXRlV29ya3NwYWNlQnJlYWRjcnVtYnMobnVsbCwgd29ya3NwYWNlTmFtZSk7XG4gICAgaWYgKHdvcmtzcGFjZU5hbWUpIHtcbiAgICAgIGlmIChwcm9qZWN0TmFtZSkge1xuICAgICAgICBhbnN3ZXIucHVzaChcbiAgICAgICAgICB7XG4gICAgICAgICAgICBocmVmOiBVcmxIZWxwZXJzLmpvaW4oXCIvd29ya3NwYWNlc1wiLCB3b3Jrc3BhY2VOYW1lLCBcInByb2plY3RzXCIpLFxuICAgICAgICAgICAgbGFiZWw6IFwiUHJvamVjdHNcIixcbiAgICAgICAgICAgIHRpdGxlOiBcIlZpZXcgYWxsIHRoZSBwcm9qZWN0c1wiXG4gICAgICAgICAgfVxuICAgICAgICApO1xuXG4gICAgICAgIGFuc3dlci5wdXNoKFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGhyZWY6IFVybEhlbHBlcnMuam9pbihcIi93b3Jrc3BhY2VzXCIsIHdvcmtzcGFjZU5hbWUsIFwicHJvamVjdHNcIiwgcHJvamVjdE5hbWUpLFxuICAgICAgICAgICAgbGFiZWw6IHByb2plY3ROYW1lLFxuICAgICAgICAgICAgdGl0bGU6IFwiVmlldyB0aGUgcHJvamVjdDogXCIgKyBwcm9qZWN0TmFtZVxuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBwcm9jZXNzQ2hpbGRyZW4oYW5zd2VyLCBjaGlsZHJlbik7XG4gICAgfVxuICAgIHJldHVybiBhbnN3ZXI7XG4gIH1cblxuXG4gIGV4cG9ydCBmdW5jdGlvbiBjcmVhdGVXb3Jrc3BhY2VTdWJOYXZCYXJzKCkge1xuICAgIHZhciB3b3Jrc3BhY2VOYW1lID0gS3ViZXJuZXRlcy5jdXJyZW50S3ViZXJuZXRlc05hbWVzcGFjZSgpO1xuICAgIHJldHVybiBhY3RpdmF0ZUN1cnJlbnQoW1xuICAgICAge1xuICAgICAgICBocmVmOiBVcmxIZWxwZXJzLmpvaW4oXCIvd29ya3NwYWNlc1wiLCB3b3Jrc3BhY2VOYW1lKSxcbiAgICAgICAgbGFiZWw6IFwiUHJvamVjdHNcIixcbiAgICAgICAgdGl0bGU6IFwiVmlldyB0aGUgcHJvamVjdHMgZm9yIHRoaXMgd29ya3NwYWNlXCJcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlzVmFsaWQ6ICgpID0+IGplbmtpbnNMaW5rKCksXG4gICAgICAgIGhyZWY6IFVybEhlbHBlcnMuam9pbihcIi93b3Jrc3BhY2VzXCIsIHdvcmtzcGFjZU5hbWUsIFwiamVua2luc0pvYlwiKSxcbiAgICAgICAgbGFiZWw6IFwiQnVpbGRzXCIsXG4gICAgICAgIHRpdGxlOiBcIlZpZXcgdGhlIHByb2plY3RzIGZvciB0aGlzIHdvcmtzcGFjZVwiXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBocmVmOiBVcmxIZWxwZXJzLmpvaW4oXCIva3ViZXJuZXRlcy9uYW1lc3BhY2VcIiwgd29ya3NwYWNlTmFtZSwgXCJhcHBzXCIpLFxuICAgICAgICBsYWJlbDogXCJSdW50aW1lXCIsXG4gICAgICAgIHRpdGxlOiBcIlZpZXcgdGhlIHJ1bnRpbWUgZW52aXJvbm1lbnQgZm9yIHRoaXMgd29ya3NwYWNlXCJcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGhyZWY6IFVybEhlbHBlcnMuam9pbihcIi93b3Jrc3BhY2VzXCIsIHdvcmtzcGFjZU5hbWUsIFwiZGV0YWlsXCIpLFxuICAgICAgICBsYWJlbDogXCJEZXRhaWxcIixcbiAgICAgICAgdGl0bGU6IFwiVmlldyB0aGUgd29ya3NwYWNlIGRldGFpbFwiXG4gICAgICB9XG4gICAgXSk7XG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVCdWlsZHNMaW5rKHdvcmtzcGFjZU5hbWUsIHByb2plY3ROYW1lLCBqZW5raW5zSm9iSWQpIHtcbiAgICB3b3Jrc3BhY2VOYW1lID0gd29ya3NwYWNlTmFtZSB8fCBLdWJlcm5ldGVzLmN1cnJlbnRLdWJlcm5ldGVzTmFtZXNwYWNlKCk7XG4gICAgcmV0dXJuIFVybEhlbHBlcnMuam9pbihcIi93b3Jrc3BhY2VzXCIsIHdvcmtzcGFjZU5hbWUsIFwicHJvamVjdHNcIiwgcHJvamVjdE5hbWUsIFwiamVua2luc0pvYlwiLCBqZW5raW5zSm9iSWQpO1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVByb2plY3RTdWJOYXZCYXJzKHByb2plY3ROYW1lLCBqZW5raW5zSm9iSWQgPSBudWxsLCAkc2NvcGUgPSBudWxsKSB7XG4gICAgdmFyIHdvcmtzcGFjZU5hbWUgPSBLdWJlcm5ldGVzLmN1cnJlbnRLdWJlcm5ldGVzTmFtZXNwYWNlKCk7XG4gICAgdmFyIHByb2plY3RMaW5rID0gVXJsSGVscGVycy5qb2luKFwiL3dvcmtzcGFjZXNcIiwgd29ya3NwYWNlTmFtZSwgXCJwcm9qZWN0c1wiLCBwcm9qZWN0TmFtZSk7XG4gICAgdmFyIGJ1aWxkc0xpbmsgPSBVcmxIZWxwZXJzLmpvaW4ocHJvamVjdExpbmssIFwiYnVpbGRzXCIpO1xuICAgIGlmICghamVua2luc0pvYklkKSB7XG4gICAgICBqZW5raW5zSm9iSWQgPSBwcm9qZWN0TmFtZTtcbiAgICB9XG4gICAgdmFyIGplbmtpbnNCdWlsZExpbmsgPSBudWxsO1xuICAgIHZhciBwaXBlbGluZXNMaW5rID0gbnVsbDtcbiAgICBpZiAocHJvamVjdE5hbWUgJiYgamVua2luc0pvYklkKSB7XG4gICAgICBqZW5raW5zQnVpbGRMaW5rID0gY3JlYXRlQnVpbGRzTGluayh3b3Jrc3BhY2VOYW1lLCBwcm9qZWN0TmFtZSwgamVua2luc0pvYklkKTtcbiAgICAgIHBpcGVsaW5lc0xpbmsgPSBVcmxIZWxwZXJzLmpvaW4oamVua2luc0J1aWxkTGluaywgXCJwaXBlbGluZXNcIik7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNKZW5raW5zQnVpbGQoKSB7XG4gICAgICB2YXIgYW5zd2VyID0gamVua2luc0xpbmsoKSAmJiBqZW5raW5zQnVpbGRMaW5rOztcbiAgICAgIGlmIChhbnN3ZXIgJiYgJHNjb3BlKSB7XG4gICAgICAgIHZhciBlbnRpdHkgPSAkc2NvcGUuZW50aXR5IHx8ICRzY29wZS5idWlsZENvbmZpZztcbiAgICAgICAgaWYgKGVudGl0eSkge1xuICAgICAgICAgIHJldHVybiBhbnN3ZXIgJiYgZW50aXR5LiRqZW5raW5zSm9iO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gYW5zd2VyO1xuICAgIH1cblxuICAgIHZhciBhbnN3ZXIgPSBbXG4gICAgICB7XG4gICAgICAgIGhyZWY6IFVybEhlbHBlcnMuam9pbihcIi93b3Jrc3BhY2VzXCIsIHdvcmtzcGFjZU5hbWUsIFwicHJvamVjdHNcIiwgcHJvamVjdE5hbWUsIFwiZW52aXJvbm1lbnRzXCIpLFxuICAgICAgICAvL2hyZWY6IFVybEhlbHBlcnMuam9pbihcIi93b3Jrc3BhY2VzXCIsIHdvcmtzcGFjZU5hbWUsIFwicHJvamVjdHNcIiwgcHJvamVjdE5hbWUpLFxuICAgICAgICBsYWJlbDogXCJPdmVydmlld1wiLFxuICAgICAgICB0aXRsZTogXCJWaWV3IHRoZSBvdmVydmlldyBvZiB0aGlzIHByb2plY3QsIGl0cyBhY3RpaXR5LCBlbnZpcm9ubWVudHMgYW5kIHBpcGVsaW5lc1wiXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpc1ZhbGlkOiAoKSA9PiBpc0plbmtpbnNCdWlsZCgpICYmIHBpcGVsaW5lc0xpbmssXG4gICAgICAgIGlkOiBcInBpcGVsaW5lc1wiLFxuICAgICAgICBocmVmOiBwaXBlbGluZXNMaW5rLFxuICAgICAgICBsYWJlbDogXCJQaXBlbGluZXNcIixcbiAgICAgICAgdGl0bGU6IFwiVmlldyB0aGUgcGlwZWxpbmUgYnVpbGRzIGZvciB0aGlzIHByb2plY3RcIlxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaXNWYWxpZDogKCkgPT4gIWlzSmVua2luc0J1aWxkKCksXG4gICAgICAgIGhyZWY6IGJ1aWxkc0xpbmssXG4gICAgICAgIGxhYmVsOiBcIkJ1aWxkc1wiLFxuICAgICAgICB0aXRsZTogXCJWaWV3IHRoZSBidWlsZHMgZm9yIHRoaXMgcHJvamVjdFwiXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpc1ZhbGlkOiAoKSA9PiBpc0plbmtpbnNCdWlsZCgpLFxuICAgICAgICBpZDogXCJidWlsZHNcIixcbiAgICAgICAgaHJlZjogamVua2luc0J1aWxkTGluayxcbiAgICAgICAgbGFiZWw6IFwiQnVpbGRzXCIsXG4gICAgICAgIHRpdGxlOiBcIlZpZXcgdGhlIEplbmtpbnMgYnVpbGRzIGZvciB0aGlzIHByb2plY3RcIlxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaXNWYWxpZDogKCkgPT4gaXNKZW5raW5zQnVpbGQoKSxcbiAgICAgICAgaHJlZjogVXJsSGVscGVycy5qb2luKFwiL3dvcmtzcGFjZXNcIiwgd29ya3NwYWNlTmFtZSwgXCJwcm9qZWN0c1wiLCBwcm9qZWN0TmFtZSwgXCJqZW5raW5zSm9iXCIsIGplbmtpbnNKb2JJZCwgXCJtZXRyaWNzXCIpLFxuICAgICAgICBsYWJlbDogXCJNZXRyaWNzXCIsXG4gICAgICAgIHRpdGxlOiBcIlZpZXcgdGhlIG1ldHJpY3MgZm9yIHRoaXMgcHJvamVjdFwiXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBocmVmOiBVcmxIZWxwZXJzLmpvaW4oXCIvd29ya3NwYWNlc1wiLCB3b3Jrc3BhY2VOYW1lLCBcInByb2plY3RzXCIsIHByb2plY3ROYW1lLCBcInRvb2xzXCIpLFxuICAgICAgICBsYWJlbDogXCJUb29sc1wiLFxuICAgICAgICB0aXRsZTogXCJWaWV3IHRoZSB0b29scyBmb3IgdGhpcyBwcm9qZWN0XCJcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGhyZWY6IFVybEhlbHBlcnMuam9pbihcIi93b3Jrc3BhY2VzXCIsIHdvcmtzcGFjZU5hbWUsIFwicHJvamVjdHNcIiwgcHJvamVjdE5hbWUsIFwiZGV0YWlsXCIpLFxuICAgICAgICBsYWJlbDogXCJEZXRhaWxcIixcbiAgICAgICAgdGl0bGU6IFwiVmlldyB0aGUgcHJvamVjdCBkZXRhaWxcIlxuICAgICAgfVxuICAgIF07XG5cbiAgICB2YXIgY29udGV4dCA9IHtcbiAgICAgIHdvcmtzcGFjZU5hbWU6IHdvcmtzcGFjZU5hbWUsXG4gICAgICBwcm9qZWN0TmFtZTogcHJvamVjdE5hbWUsXG4gICAgICBwcm9qZWN0TGluazogcHJvamVjdExpbmssXG4gICAgICBqZW5raW5zSm9iSWQ6IGplbmtpbnNKb2JJZFxuXG4gICAgfTtcbiAgICBhbmd1bGFyLmZvckVhY2goY3VzdG9tUHJvamVjdFN1YlRhYkZhY3RvcmllcywgKGZuKSA9PiB7XG4gICAgICBpZiAoYW5ndWxhci5pc0Z1bmN0aW9uKGZuKSkge1xuICAgICAgICB2YXIgc3VidGFiID0gZm4oY29udGV4dCk7XG4gICAgICAgIGlmIChzdWJ0YWIpIHtcbiAgICAgICAgICBhbnN3ZXIucHVzaChzdWJ0YWIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gYWN0aXZhdGVDdXJyZW50KGFuc3dlcik7XG4gIH1cblxuICBleHBvcnQgdmFyIGN1c3RvbVByb2plY3RTdWJUYWJGYWN0b3JpZXMgPSBbXTtcblxuICBleHBvcnQgZnVuY3Rpb24gY3JlYXRlSmVua2luc0JyZWFkY3J1bWJzKHByb2plY3ROYW1lLCBqb2JJZCwgYnVpbGRJZCkge1xuICAgIHZhciB3b3Jrc3BhY2VOYW1lID0gS3ViZXJuZXRlcy5jdXJyZW50S3ViZXJuZXRlc05hbWVzcGFjZSgpO1xuICAgIHZhciBjaGlsZHJlbiA9IFtcbiAgICAgIHtcbiAgICAgICAgaWQ6IFwiYnVpbGRzXCIsXG4gICAgICAgIGhyZWY6IGNyZWF0ZUJ1aWxkc0xpbmsod29ya3NwYWNlTmFtZSwgcHJvamVjdE5hbWUsIGpvYklkKSxcbiAgICAgICAgbGFiZWw6IFwiQnVpbGRzXCIsXG4gICAgICAgIHRpdGxlOiBcIlZpZXcgdGhlIGJ1aWxkcyBmb3IgdGhpcyBwcm9qZWN0XCJcbiAgICAgIH1cbiAgICBdO1xuICAgIGlmIChidWlsZElkKSB7XG4gICAgICBjaGlsZHJlbi5wdXNoKHtcbiAgICAgICAgaWQ6IFwiXCIsXG4gICAgICAgIGhyZWY6IFwiXCIsXG4gICAgICAgIGxhYmVsOiBcIiNcIiArIGJ1aWxkSWQsXG4gICAgICAgIHRpdGxlOiBcIkJ1aWxkICNcIiArIGJ1aWxkSWRcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gY3JlYXRlUHJvamVjdEJyZWFkY3J1bWJzKHByb2plY3ROYW1lLCBjaGlsZHJlbik7XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gY3JlYXRlSmVua2luc1N1Yk5hdkJhcnMocHJvamVjdE5hbWUsIGplbmtpbnNKb2JJZCwgYnVpbGRJZCwgZXh0cmFPcHRpb246IGFueSA9IG51bGwpIHtcbiAgICB2YXIgYW5zd2VyID0gY3JlYXRlUHJvamVjdFN1Yk5hdkJhcnMocHJvamVjdE5hbWUsIGplbmtpbnNKb2JJZCk7XG4gICAgaWYgKGV4dHJhT3B0aW9uKSB7XG4gICAgICBleHRyYU9wdGlvbi5hY3RpdmUgPSB0cnVlO1xuICAgICAgYW5zd2VyLnB1c2goZXh0cmFPcHRpb24pO1xuICAgIH1cbiAgICByZXR1cm4gYW5zd2VyO1xuICB9XG5cblxuICBleHBvcnQgZnVuY3Rpb24gY3JlYXRlRW52aXJvbm1lbnRTdWJOYXZCYXJzKCRzY29wZSwgJGxvY2F0aW9uLCAkcm91dGVQYXJhbXMpIHtcbiAgICB2YXIgbnMgPSBLdWJlcm5ldGVzLmN1cnJlbnRLdWJlcm5ldGVzTmFtZXNwYWNlKCk7XG4gICAgdmFyIHdvcmtzcGFjZU5hbWUgPSAkcm91dGVQYXJhbXMud29ya3NwYWNlO1xuICAgIHZhciBwcm9qZWN0ID0gJHJvdXRlUGFyYW1zLnByb2plY3Q7XG4gICAgdmFyIHByb2plY3RMaW5rID0gXCIva3ViZXJuZXRlc1wiO1xuICAgIGlmICh3b3Jrc3BhY2VOYW1lICYmIHByb2plY3QpIHtcbiAgICAgIHByb2plY3RMaW5rID0gVXJsSGVscGVycy5qb2luKFwiL3dvcmtzcGFjZXNcIiwgd29ya3NwYWNlTmFtZSwgXCJwcm9qZWN0c1wiLCBwcm9qZWN0KTtcbiAgICB9XG4gICAgdmFyIG5hbWVzcGFjZXNMaW5rID0gVXJsSGVscGVycy5qb2luKHByb2plY3RMaW5rLCBcIm5hbWVzcGFjZVwiKTtcbiAgICByZXR1cm4gYWN0aXZhdGVDdXJyZW50KFtcbiAgICAgIHtcbiAgICAgICAgaHJlZjogVXJsSGVscGVycy5qb2luKG5hbWVzcGFjZXNMaW5rLCBucywgXCJhcHBzXCIpLFxuICAgICAgICBsYWJlbDogXCJBcHBzXCIsXG4gICAgICAgIHRpdGxlOiBcIlZpZXcgdGhlIGFwcHMgZm9yIHRoaXMgd29ya3NwYWNlXCJcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGhyZWY6IFVybEhlbHBlcnMuam9pbihuYW1lc3BhY2VzTGluaywgbnMsIFwic2VydmljZXNcIiksXG4gICAgICAgIGxhYmVsOiBcIlNlcnZpY2VzXCIsXG4gICAgICAgIHRpdGxlOiBcIlZpZXcgdGhlIGFwcHMgZm9yIHRoaXMgd29ya3NwYWNlXCJcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGhyZWY6IFVybEhlbHBlcnMuam9pbihuYW1lc3BhY2VzTGluaywgbnMsIFwicmVwbGljYXRpb25Db250cm9sbGVyc1wiKSxcbiAgICAgICAgbGFiZWw6IFwiQ29udHJvbGxlcnNcIixcbiAgICAgICAgdGl0bGU6IFwiVmlldyB0aGUgUmVwbGljYXRpb24gQ29udHJvbGxlcnMgZm9yIHRoaXMgd29ya3NwYWNlXCJcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGhyZWY6IFVybEhlbHBlcnMuam9pbihuYW1lc3BhY2VzTGluaywgbnMsIFwicG9kc1wiKSxcbiAgICAgICAgbGFiZWw6IFwiUG9kc1wiLFxuICAgICAgICB0aXRsZTogXCJWaWV3IHRoZSBwb2RzIGZvciB0aGlzIHdvcmtzcGFjZVwiXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBocmVmOiBVcmxIZWxwZXJzLmpvaW4oXCIva3ViZXJuZXRlcy9ob3N0c1wiKSxcbiAgICAgICAgbGFiZWw6IFwiTm9kZXNcIixcbiAgICAgICAgdGl0bGU6IFwiVmlldyB0aGUgbm9kZXMgZm9yIHRoaXMgd29ya3NwYWNlXCJcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGhyZWY6IFVybEhlbHBlcnMuam9pbihuYW1lc3BhY2VzTGluaywgbnMsIFwiYW5ncnlQb2RzXCIpLFxuICAgICAgICBsYWJlbDogXCJBbmdyeSBQb2RzXCIsXG4gICAgICAgIHRpdGxlOiBcIlRyeSB0aGUgQW5ncnkgUG9kcyBnYW1lIVwiXG4gICAgICB9LFxuICAgIF0pO1xuICB9XG5cblxuICAvKipcbiAgICogUmVtb3ZlcyB0aGUgVVJMIHF1ZXJ5IHN0cmluZyBpZiBpdHMgaW5zaWRlIHRoZSBnaXZlbiB0ZXh0XG4gICAqL1xuICBmdW5jdGlvbiB0cmltUXVlcnkodGV4dCkge1xuICAgIGlmICh0ZXh0KSB7XG4gICAgICB2YXIgaWR4ID0gdGV4dC5pbmRleE9mKFwiP1wiKTtcbiAgICAgIGlmIChpZHggPj0gMCkge1xuICAgICAgICByZXR1cm4gdGV4dC5zdWJzdHJpbmcoMCwgaWR4KTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRleHQ7XG4gIH1cblxuICBmdW5jdGlvbiBhY3RpdmF0ZUN1cnJlbnQobmF2QmFySXRlbXMpIHtcbiAgICBuYXZCYXJJdGVtcyA9IF8uY29tcGFjdChuYXZCYXJJdGVtcyk7XG4gICAgdmFyIGluamVjdG9yID0gSGF3dGlvQ29yZS5pbmplY3RvcjtcbiAgICB2YXIgJGxvY2F0aW9uID0gaW5qZWN0b3IgPyBpbmplY3Rvci5nZXQoXCIkbG9jYXRpb25cIikgOiBudWxsO1xuICAgIGlmICgkbG9jYXRpb24pIHtcbiAgICAgIHZhciBwYXRoID0gdHJpbVF1ZXJ5KCRsb2NhdGlvbi5wYXRoKCkpO1xuICAgICAgdmFyIGZvdW5kID0gZmFsc2U7XG4gICAgICBhbmd1bGFyLmZvckVhY2gobmF2QmFySXRlbXMsIChpdGVtKSA9PiB7XG4gICAgICAgIGlmIChpdGVtKSB7XG4gICAgICAgICAgdmFyIGhyZWYgPSBpdGVtLmhyZWY7XG4gICAgICAgICAgdmFyIHRyaW1IcmVmID0gdHJpbVF1ZXJ5KGhyZWYpO1xuICAgICAgICAgIGlmICghZm91bmQgJiYgdHJpbUhyZWYgJiYgdHJpbUhyZWYgPT09IHBhdGgpIHtcbiAgICAgICAgICAgIGl0ZW0uYWN0aXZlID0gdHJ1ZTtcbiAgICAgICAgICAgIGZvdW5kID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gbmF2QmFySXRlbXM7XG4gIH1cblxuICBmdW5jdGlvbiBwcm9jZXNzQ2hpbGRyZW4oYW5zd2VyLCBjaGlsZHJlbikge1xuICAgIGlmIChjaGlsZHJlbikge1xuICAgICAgaWYgKGFuZ3VsYXIuaXNBcnJheShjaGlsZHJlbikpIHtcbiAgICAgICAgYW5zd2VyID0gYW5zd2VyLmNvbmNhdChjaGlsZHJlbik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhbnN3ZXIucHVzaChjaGlsZHJlbik7XG4gICAgICB9XG4gICAgfVxuICAgIGFjdGl2YXRlQ3VycmVudChhbnN3ZXIpO1xuICAgIHJldHVybiBhbnN3ZXI7XG4gIH1cbn0iLCIvLy8gPHJlZmVyZW5jZSBwYXRoPVwiLi4vLi4vaW5jbHVkZXMudHNcIi8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwiZGV2ZWxvcGVySGVscGVycy50c1wiLz5cblxubW9kdWxlIERldmVsb3BlciB7XG5cbiAgZXhwb3J0IHZhciBfbW9kdWxlID0gYW5ndWxhci5tb2R1bGUocGx1Z2luTmFtZSwgWydoYXd0aW8tY29yZScsICdoYXd0aW8tdWknLCAndWkuY29kZW1pcnJvcicsICdudmQzJ10pO1xuICBleHBvcnQgdmFyIGNvbnRyb2xsZXIgPSBQbHVnaW5IZWxwZXJzLmNyZWF0ZUNvbnRyb2xsZXJGdW5jdGlvbihfbW9kdWxlLCBwbHVnaW5OYW1lKTtcbiAgZXhwb3J0IHZhciByb3V0ZSA9IFBsdWdpbkhlbHBlcnMuY3JlYXRlUm91dGluZ0Z1bmN0aW9uKHRlbXBsYXRlUGF0aCk7XG5cbiAgX21vZHVsZS5jb25maWcoWyckcm91dGVQcm92aWRlcicsICgkcm91dGVQcm92aWRlcjpuZy5yb3V0ZS5JUm91dGVQcm92aWRlcikgPT4ge1xuICAgICRyb3V0ZVByb3ZpZGVyLndoZW4oY29udGV4dCwgcm91dGUoJ3dvcmtzcGFjZXMuaHRtbCcsIGZhbHNlKSlcbiAgICAgICAgICAgICAgICAgIC53aGVuKFwiL25hbWVzcGFjZXNcIiwgcm91dGUoJ3dvcmtzcGFjZXMuaHRtbCcsIGZhbHNlKSlcbiAgICAgICAgICAgICAgICAgIC8vLndoZW4oXCIvaG9tZVwiLCByb3V0ZSgnaG9tZS5odG1sJywgZmFsc2UpKVxuICAgICAgICAgICAgICAgICAgLndoZW4oVXJsSGVscGVycy5qb2luKGNvbnRleHQsICcvOm5hbWVzcGFjZScpLCByb3V0ZSgncHJvamVjdHMuaHRtbCcsIGZhbHNlKSlcbiAgICAgICAgICAgICAgICAgIC53aGVuKFVybEhlbHBlcnMuam9pbihjb250ZXh0LCAnLzpuYW1lc3BhY2UvZGV0YWlsJyksIHJvdXRlKCd3b3Jrc3BhY2UuaHRtbCcsIGZhbHNlKSlcbiAgICAgICAgICAgICAgICAgIC53aGVuKFVybEhlbHBlcnMuam9pbihjb250ZXh0LCAnLzpuYW1lc3BhY2UvamVua2luc0pvYicpLCByb3V0ZSgnamVua2luc0pvYnMuaHRtbCcsIGZhbHNlKSlcbiAgICAgICAgICAgICAgICAgIC53aGVuKFVybEhlbHBlcnMuam9pbihjb250ZXh0LCAnLzpuYW1lc3BhY2UvcHJvamVjdHMnKSwgcm91dGUoJ3Byb2plY3RzLmh0bWwnLCBmYWxzZSkpXG4gICAgICAgICAgICAgICAgICAud2hlbihVcmxIZWxwZXJzLmpvaW4oY29udGV4dCwgJy86bmFtZXNwYWNlL3Byb2plY3RzLzppZCcpLCByb3V0ZSgnZW52aXJvbm1lbnRzLmh0bWwnLCBmYWxzZSkpXG4gICAgICAgICAgICAgICAgICAud2hlbihVcmxIZWxwZXJzLmpvaW4oY29udGV4dCwgJy86bmFtZXNwYWNlL3Byb2plY3RzLzppZC9kZXRhaWwnKSwgS3ViZXJuZXRlcy5yb3V0ZSgnYnVpbGRDb25maWcuaHRtbCcsIGZhbHNlKSlcbiAgICAgICAgICAgICAgICAgIC53aGVuKFVybEhlbHBlcnMuam9pbihjb250ZXh0LCAnLzpuYW1lc3BhY2UvcHJvamVjdHMvOmlkL2J1aWxkcycpLCBLdWJlcm5ldGVzLnJvdXRlKCdidWlsZHMuaHRtbCcsIGZhbHNlKSlcbiAgICAgICAgICAgICAgICAgIC53aGVuKFVybEhlbHBlcnMuam9pbihjb250ZXh0LCAnLzpuYW1lc3BhY2UvcHJvamVjdHMvOmlkL2Vudmlyb25tZW50cycpLCByb3V0ZSgnZW52aXJvbm1lbnRzLmh0bWwnLCBmYWxzZSkpXG4gICAgICAgICAgICAgICAgICAud2hlbihVcmxIZWxwZXJzLmpvaW4oY29udGV4dCwgJy86bmFtZXNwYWNlL3Byb2plY3RzLzppZC9qZW5raW5zSm9iLzpqb2InKSwgcm91dGUoJ2plbmtpbnNKb2IuaHRtbCcsIGZhbHNlKSlcbiAgICAgICAgICAgICAgICAgIC53aGVuKFVybEhlbHBlcnMuam9pbihjb250ZXh0LCAnLzpuYW1lc3BhY2UvcHJvamVjdHMvOmlkL2plbmtpbnNKb2IvOmpvYi9sb2cvOmJ1aWxkJyksIHJvdXRlKCdqZW5raW5zTG9nLmh0bWwnLCBmYWxzZSkpXG4gICAgICAgICAgICAgICAgICAud2hlbihVcmxIZWxwZXJzLmpvaW4oY29udGV4dCwgJy86bmFtZXNwYWNlL3Byb2plY3RzLzppZC9qZW5raW5zSm9iLzpqb2IvcGlwZWxpbmVzJyksIHJvdXRlKCdwaXBlbGluZXMuaHRtbCcsIGZhbHNlKSlcbiAgICAgICAgICAgICAgICAgIC53aGVuKFVybEhlbHBlcnMuam9pbihjb250ZXh0LCAnLzpuYW1lc3BhY2UvcHJvamVjdHMvOmlkL2plbmtpbnNKb2IvOmpvYi9waXBlbGluZS86YnVpbGQnKSwgcm91dGUoJ3BpcGVsaW5lLmh0bWwnLCBmYWxzZSkpXG4gICAgICAgICAgICAgICAgICAud2hlbihVcmxIZWxwZXJzLmpvaW4oY29udGV4dCwgJy86bmFtZXNwYWNlL3Byb2plY3RzLzppZC9qZW5raW5zSm9iLzpqb2IvbWV0cmljcycpLCByb3V0ZSgnamVua2luc01ldHJpY3MuaHRtbCcsIGZhbHNlKSlcbiAgICAgICAgICAgICAgICAgIC53aGVuKFVybEhlbHBlcnMuam9pbihjb250ZXh0LCAnLzpuYW1lc3BhY2UvcHJvamVjdHMvOmlkL2plbmtpbnNNZXRyaWNzJyksIHJvdXRlKCdqZW5raW5zTWV0cmljcy5odG1sJywgZmFsc2UpKVxuICAgICAgICAgICAgICAgICAgLndoZW4oVXJsSGVscGVycy5qb2luKGNvbnRleHQsICcvOm5hbWVzcGFjZS9wcm9qZWN0cy86aWQvdG9vbHMnKSwgcm91dGUoJ3Rvb2xzLmh0bWwnLCBmYWxzZSkpXG4gICAgICAgICAgICAgICAgICAud2hlbihVcmxIZWxwZXJzLmpvaW4oY29udGV4dCwgJy86d29ya3NwYWNlL3Byb2plY3RzLzpwcm9qZWN0L2Vudmlyb25tZW50cy86bmFtZXNwYWNlJyksIHJvdXRlKCdlbnZpcm9ubWVudC5odG1sJywgZmFsc2UpKVxuICAgICAgICAgICAgICAgICAgLndoZW4oVXJsSGVscGVycy5qb2luKGNvbnRleHQsICcvOndvcmtzcGFjZS9wcm9qZWN0cy86cHJvamVjdC9lbnZpcm9ubWVudHMvOm5hbWVzcGFjZScpLCByb3V0ZSgnZW52aXJvbm1lbnQuaHRtbCcsIGZhbHNlKSlcbiAgICAgICAgICAgICAgICAgIC5vdGhlcndpc2UoXCIvd29ya3NwYWNlc1wiKTtcbiAgfV0pO1xuICBcblxuICBfbW9kdWxlLnJ1bihbJ3ZpZXdSZWdpc3RyeScsICdTZXJ2aWNlUmVnaXN0cnknLCAnSGF3dGlvTmF2JywgJ0t1YmVybmV0ZXNNb2RlbCcsICckdGVtcGxhdGVDYWNoZScsICh2aWV3UmVnaXN0cnksIFNlcnZpY2VSZWdpc3RyeSwgSGF3dGlvTmF2LCBLdWJlcm5ldGVzTW9kZWwsICR0ZW1wbGF0ZUNhY2hlKSA9PiB7XG4gICAgbG9nLmRlYnVnKFwiUnVubmluZ1wiKTtcbiAgICB2aWV3UmVnaXN0cnlbJ3dvcmtzcGFjZXMnXSA9IEt1YmVybmV0ZXMudGVtcGxhdGVQYXRoICsgJ2xheW91dEt1YmVybmV0ZXMuaHRtbCc7XG4gICAgdmlld1JlZ2lzdHJ5WyduYW1lc3BhY2VzJ10gPSBLdWJlcm5ldGVzLnRlbXBsYXRlUGF0aCArICdsYXlvdXRLdWJlcm5ldGVzLmh0bWwnO1xuXG4gICAgdmFyIGJ1aWxkZXIgPSBIYXd0aW9OYXYuYnVpbGRlcigpO1xuICAgIHZhciB3b3Jrc3BhY2VzID0gYnVpbGRlci5pZCgnd29ya3NwYWNlcycpXG4gICAgICAgICAgICAgICAgICAgICAgLmhyZWYoKCkgPT4gY29udGV4dClcbiAgICAgICAgICAgICAgICAgICAgICAudGl0bGUoKCkgPT4gJ0FsbCcpXG4gICAgICAgICAgICAgICAgICAgICAgLmJ1aWxkKCk7XG5cbiAgICB2YXIgd29ya3NwYWNlT3ZlcnZpZXcgPSBidWlsZGVyLmlkKCd3b3Jrc3BhY2VzJylcbiAgICAgICAgICAgICAgICAgICAgICAuaHJlZigoKSA9PiBVcmxIZWxwZXJzLmpvaW4oY29udGV4dCwgJ292ZXJ2aWV3JykpXG4gICAgICAgICAgICAgICAgICAgICAgLnRpdGxlKCgpID0+ICdXb3Jrc3BhY2UnKVxuICAgICAgICAgICAgICAgICAgICAgIC5idWlsZCgpO1xuXG4gICAgdmFyIHdvcmtzcGFjZXNUYWIgPSBidWlsZGVyLmlkKCd3b3Jrc3BhY2VzJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAucmFuaygxMDApXG4gICAgICAgICAgICAgICAgICAgICAgICAgLmhyZWYoKCkgPT4gY29udGV4dClcbiAgICAgICAgICAgICAgICAgICAgICAgICAudGl0bGUoKCkgPT4gJ1dvcmtzcGFjZXMnKVxuICAgICAgICAgICAgICAgICAgICAgICAgIC8vLmlzVmFsaWQoKCkgPT4gIUNvcmUuaXNSZW1vdGVDb25uZWN0aW9uKCkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgLnRhYnMod29ya3NwYWNlcylcbiAgICAgICAgICAgICAgICAgICAgICAgICAuYnVpbGQoKTtcblxuICAgIEhhd3Rpb05hdi5hZGQod29ya3NwYWNlc1RhYik7XG4gIH1dKTtcblxuXG4gIGhhd3Rpb1BsdWdpbkxvYWRlci5hZGRNb2R1bGUocGx1Z2luTmFtZSk7XG5cbiAgLy8gZm9yIHNjcm9sbC1nbHVlIGRpcmVjdGl2ZVxuICBoYXd0aW9QbHVnaW5Mb2FkZXIuYWRkTW9kdWxlKCdsdWVnZy5kaXJlY3RpdmVzJyk7XG59XG4iLCJtb2R1bGUgS3ViZXJuZXRlcyB7XG5cbiAgZXhwb3J0IGNsYXNzIGNvbnN0cyB7XG4gICAgZ2V0IE5BTUVTUEFDRV9TVE9SQUdFX0tFWSgpOnN0cmluZyB7IHJldHVybiBcIms4c1NlbGVjdGVkTmFtZXNwYWNlXCI7IH1cbiAgfVxuXG4gIGV4cG9ydCB2YXIgQ29uc3RhbnRzID0gbmV3IGNvbnN0cygpO1xuXHRcbiAgZXhwb3J0IGludGVyZmFjZSBBcGlMb2NhdGlvbiB7XG4gICAgcHJvdG8/OnN0cmluZztcbiAgICBob3N0UG9ydDpzdHJpbmc7XG4gICAgcHJlZml4OnN0cmluZztcbiAgfVxuICBcbiAgZXhwb3J0IGludGVyZmFjZSBBcGlMb2NhdGlvbnMge1xuICAgIG9wZW5zaGlmdD86IEFwaUxvY2F0aW9uO1xuICAgIGs4cz86IEFwaUxvY2F0aW9uO1xuICB9XG5cbiAgZXhwb3J0IGludGVyZmFjZSBLdWJlcm5ldGVzQ29uZmlnIHtcbiAgICBtYXN0ZXJfdXJpPzogc3RyaW5nO1xuICAgIGFwaT86IEFwaUxvY2F0aW9ucztcbiAgICBvcGVuc2hpZnQ/OiBPcGVuU2hpZnRPQXV0aENvbmZpZztcbiAgICBnb29nbGU/OiBHb29nbGVPQXV0aENvbmZpZztcbiAgICBrZXljbG9haz86IEtleUNsb2FrQXV0aENvbmZpZztcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgT3BlblNoaWZ0T0F1dGhDb25maWcge1xuICAgIG9hdXRoX2F1dGhvcml6ZV91cmk6c3RyaW5nO1xuICAgIG9hdXRoX2NsaWVudF9pZDpzdHJpbmc7XG4gIH1cblxuICBleHBvcnQgaW50ZXJmYWNlIEdvb2dsZU9BdXRoQ29uZmlnIHtcbiAgICBhdXRoZW50aWNhdGlvblVSSTpzdHJpbmc7XG4gICAgYXV0aG9yaXphdGlvblVSSTpzdHJpbmc7XG4gICAgY2xpZW50SWQ6c3RyaW5nO1xuICAgIGNsaWVudFNlY3JldDpzdHJpbmc7XG4gICAgcmVkaXJlY3RVUkk6c3RyaW5nO1xuICAgIHNjb3BlOnN0cmluZztcbiAgICB0b2tlblVSST86c3RyaW5nO1xuICB9XG5cbiAgZXhwb3J0IGludGVyZmFjZSBLZXlDbG9ha0F1dGhDb25maWcge1xuICAgIG9hdXRoX2F1dGhvcml6ZV91cmk6c3RyaW5nO1xuICAgIG9hdXRoX2NsaWVudF9pZDpzdHJpbmc7XG4gIH1cblxuICBleHBvcnQgaW50ZXJmYWNlIEt1YmVybmV0ZXNTdGF0ZSB7XG4gICAgbmFtZXNwYWNlczogQXJyYXk8c3RyaW5nPjtcbiAgICBzZWxlY3RlZE5hbWVzcGFjZTogc3RyaW5nO1xuICB9XG5cblx0ZXhwb3J0IGNsYXNzIFdhdGNoVHlwZXMge1xuXHRcdHB1YmxpYyBzdGF0aWMgZ2V0IEVORFBPSU5UUygpOnN0cmluZyB7IHJldHVybiBcImVuZHBvaW50c1wiOyB9XG5cdFx0cHVibGljIHN0YXRpYyBnZXQgRVZFTlRTKCk6c3RyaW5nIHsgcmV0dXJuIFwiZXZlbnRzXCI7IH1cbiAgICBwdWJsaWMgc3RhdGljIGdldCBOQU1FU1BBQ0VTKCk6c3RyaW5nIHsgcmV0dXJuIFwibmFtZXNwYWNlc1wiOyB9XG5cdFx0cHVibGljIHN0YXRpYyBnZXQgTk9ERVMoKTpzdHJpbmcgeyByZXR1cm4gXCJub2Rlc1wiOyB9XG5cdFx0cHVibGljIHN0YXRpYyBnZXQgUEVSU0lTVEVOVF9WT0xVTUVTKCk6c3RyaW5nIHsgcmV0dXJuIFwicGVyc2lzdGVudHZvbHVtZXNcIjsgfVxuXHRcdHB1YmxpYyBzdGF0aWMgZ2V0IFBFUlNJU1RFTlRfVk9MVU1FX0NMQUlNUygpOnN0cmluZyB7IHJldHVybiBcInBlcnNpc3RlbnR2b2x1bWVjbGFpbXNcIjsgfVxuXHRcdHB1YmxpYyBzdGF0aWMgZ2V0IFBPRFMoKTpzdHJpbmcgeyByZXR1cm4gXCJwb2RzXCI7IH1cblx0XHRwdWJsaWMgc3RhdGljIGdldCBSRVBMSUNBVElPTl9DT05UUk9MTEVSUygpOnN0cmluZyB7IHJldHVybiBcInJlcGxpY2F0aW9uY29udHJvbGxlcnNcIjsgfVxuXHRcdHB1YmxpYyBzdGF0aWMgZ2V0IFJFU09VUkNFX1FVT1RBUygpOnN0cmluZyB7IHJldHVybiBcInJlc291cmNlcXVvdGFzXCI7IH1cblx0XHRwdWJsaWMgc3RhdGljIGdldCBPQVVUSF9DTElFTlRTKCk6c3RyaW5nIHsgcmV0dXJuIFwib2F1dGhjbGllbnRzXCI7IH1cblx0XHRwdWJsaWMgc3RhdGljIGdldCBTRUNSRVRTKCk6c3RyaW5nIHsgcmV0dXJuIFwic2VjcmV0c1wiOyB9XG5cdFx0cHVibGljIHN0YXRpYyBnZXQgU0VSVklDRVMoKTpzdHJpbmcgeyByZXR1cm4gXCJzZXJ2aWNlc1wiOyB9XG5cdFx0cHVibGljIHN0YXRpYyBnZXQgU0VSVklDRV9BQ0NPVU5UUygpOnN0cmluZyB7IHJldHVybiBcInNlcnZpY2VhY2NvdW50c1wiOyB9XG5cblx0XHRwdWJsaWMgc3RhdGljIGdldCBURU1QTEFURVMoKTpzdHJpbmcgeyByZXR1cm4gXCJ0ZW1wbGF0ZXNcIjsgfVxuXHRcdHB1YmxpYyBzdGF0aWMgZ2V0IFJPVVRFUygpOnN0cmluZyB7IHJldHVybiBcInJvdXRlc1wiOyB9XG5cdFx0cHVibGljIHN0YXRpYyBnZXQgQlVJTERfQ09ORklHUygpOnN0cmluZyB7IHJldHVybiBcImJ1aWxkY29uZmlnc1wiOyB9XG5cdFx0cHVibGljIHN0YXRpYyBnZXQgQlVJTERTKCk6c3RyaW5nIHsgcmV0dXJuIFwiYnVpbGRzXCI7IH1cblx0XHRwdWJsaWMgc3RhdGljIGdldCBERVBMT1lNRU5UX0NPTkZJR1MoKTpzdHJpbmcgeyByZXR1cm4gXCJkZXBsb3ltZW50Y29uZmlnc1wiOyB9XG5cdFx0cHVibGljIHN0YXRpYyBnZXQgSU1BR0VfU1RSRUFNUygpOnN0cmluZyB7IHJldHVybiBcImltYWdlc3RyZWFtc1wiOyB9XG5cdFx0cHVibGljIHN0YXRpYyBnZXQgUE9MSUNJRVMoKTpzdHJpbmcgeyByZXR1cm4gXCJwb2xpY2llc1wiOyB9XG5cdFx0cHVibGljIHN0YXRpYyBnZXQgUE9MSUNZX0JJTkRJTkdTKCk6c3RyaW5nIHsgcmV0dXJuIFwicG9saWN5YmluZGluZ3NcIjsgfVxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0IFBST0pFQ1RTKCk6c3RyaW5nIHsgcmV0dXJuIFwicHJvamVjdHNcIjsgfVxuXHRcdHB1YmxpYyBzdGF0aWMgZ2V0IFJPTEVfQklORElOR1MoKTpzdHJpbmcgeyByZXR1cm4gXCJyb2xlYmluZGluZ3NcIjsgfVxuXHRcdHB1YmxpYyBzdGF0aWMgZ2V0IFJPTEVTKCk6c3RyaW5nIHsgcmV0dXJuIFwicm9sZXNcIjsgfVxuXHR9XG5cbiAgZXhwb3J0IGNsYXNzIE5hbWVzcGFjZWRUeXBlcyB7XG4gICAgcHVibGljIHN0YXRpYyBnZXQgazhzVHlwZXMoKTpBcnJheTxzdHJpbmc+IHtcbiAgICAgIHJldHVybiBbXG4gICAgICAgIFdhdGNoVHlwZXMuRU5EUE9JTlRTLFxuICAgICAgICBXYXRjaFR5cGVzLkVWRU5UUyxcbiAgICAgICAgV2F0Y2hUeXBlcy5OT0RFUyxcbiAgICAgICAgV2F0Y2hUeXBlcy5QRVJTSVNURU5UX1ZPTFVNRVMsXG4gICAgICAgIFdhdGNoVHlwZXMuUEVSU0lTVEVOVF9WT0xVTUVfQ0xBSU1TLFxuICAgICAgICBXYXRjaFR5cGVzLlBPRFMsXG4gICAgICAgIFdhdGNoVHlwZXMuUkVQTElDQVRJT05fQ09OVFJPTExFUlMsXG4gICAgICAgIFdhdGNoVHlwZXMuUkVTT1VSQ0VfUVVPVEFTLFxuICAgICAgICBXYXRjaFR5cGVzLlBFUlNJU1RFTlRfVk9MVU1FUyxcbiAgICAgICAgV2F0Y2hUeXBlcy5TRUNSRVRTLFxuICAgICAgICBXYXRjaFR5cGVzLlNFUlZJQ0VTLFxuICAgICAgICBXYXRjaFR5cGVzLlNFUlZJQ0VfQUNDT1VOVFNcbiAgICAgIF07XG4gICAgfVxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0IG9zVHlwZXMoKTpBcnJheTxzdHJpbmc+IHtcbiAgICAgIHJldHVybiBbXG4gICAgICAgIFdhdGNoVHlwZXMuVEVNUExBVEVTLFxuICAgICAgICBXYXRjaFR5cGVzLkJVSUxEX0NPTkZJR1MsXG4gICAgICAgIFdhdGNoVHlwZXMuUk9VVEVTLFxuICAgICAgICBXYXRjaFR5cGVzLkJVSUxEUyxcbiAgICAgICAgV2F0Y2hUeXBlcy5CVUlMRF9DT05GSUdTLFxuICAgICAgICBXYXRjaFR5cGVzLkRFUExPWU1FTlRfQ09ORklHUyxcbiAgICAgICAgV2F0Y2hUeXBlcy5JTUFHRV9TVFJFQU1TLFxuICAgICAgICBXYXRjaFR5cGVzLk9BVVRIX0NMSUVOVFMsXG4gICAgICAgIFdhdGNoVHlwZXMuUE9MSUNJRVMsXG4gICAgICAgIFdhdGNoVHlwZXMuUE9MSUNZX0JJTkRJTkdTLFxuICAgICAgICBXYXRjaFR5cGVzLlBST0pFQ1RTLFxuICAgICAgICAvL1dhdGNoVHlwZXMuUk9MRV9CSU5ESU5HUyxcbiAgICAgICAgLy9XYXRjaFR5cGVzLlJPTEVTXG4gICAgICBdO1xuICAgIH1cbiAgfVxuXHRcblx0ZXhwb3J0IGNsYXNzIFdhdGNoQWN0aW9ucyB7XG5cdFx0cHVibGljIHN0YXRpYyBnZXQgQU5ZKCk6c3RyaW5nIHsgcmV0dXJuIFwiKlwiOyB9XG5cdFx0cHVibGljIHN0YXRpYyBnZXQgQURERUQoKTpzdHJpbmcgeyByZXR1cm4gXCJBRERFRFwiOyB9XG5cdFx0cHVibGljIHN0YXRpYyBnZXQgTU9ESUZJRUQoKTpzdHJpbmcgeyByZXR1cm4gXCJNT0RJRklFRFwiOyB9XG5cdFx0cHVibGljIHN0YXRpYyBnZXQgREVMRVRFRCgpOnN0cmluZyB7IHJldHVybiBcIkRFTEVURURcIjsgfVxuXHR9XG5cdFxuXHRleHBvcnQgaW50ZXJmYWNlIE9iamVjdE1hcCB7XG5cdFx0W3VpZDpzdHJpbmddOiBhbnk7XHRcdFxuXHR9XG5cdFxuXHRleHBvcnQgaW50ZXJmYWNlIFdhdGNoZXJTZXJ2aWNlIHtcblx0XHRoYXNXZWJTb2NrZXQ6IGJvb2xlYW47XG5cdFx0YWRkQ3VzdG9taXplcjogKHR5cGU6IHN0cmluZywgY3VzdG9taXplcjogKG9iajphbnkpID0+IHZvaWQpID0+IHZvaWQ7XG5cdFx0Z2V0VHlwZXM6ICgpID0+IEFycmF5PHN0cmluZz47XG5cdFx0Z2V0TmFtZXNwYWNlOiAoKSA9PiBzdHJpbmc7XG5cdFx0c2V0TmFtZXNwYWNlOiAobmFtZXNwYWNlOiBzdHJpbmcpID0+IHZvaWQ7XG5cdFx0Z2V0T2JqZWN0czogKHR5cGU6IHN0cmluZykgPT4gQXJyYXk8YW55Pjtcblx0XHRnZXRPYmplY3RNYXA6ICh0eXBlOiBzdHJpbmcpID0+IE9iamVjdE1hcDtcblx0XHRhZGRBY3Rpb246ICh0eXBlOiBzdHJpbmcsIGFjdGlvbjogc3RyaW5nLCBmbjogKG9iajphbnkpID0+IHZvaWQpID0+IHZvaWQ7XG5cdFx0cmVnaXN0ZXJMaXN0ZW5lcjogKGZuOihvYmplY3RzOk9iamVjdE1hcCkgPT4gdm9pZCkgPT4gdm9pZDtcblx0fVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgS3ViZVBvZCB7XG4gICAgaWQ6c3RyaW5nO1xuICAgIG5hbWVzcGFjZTpzdHJpbmc7XG4gIH1cblxuXHRcbn1cbiIsIi8vLyA8cmVmZXJlbmNlIHBhdGg9XCIuLi8uLi9pbmNsdWRlcy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJrdWJlcm5ldGVzSW50ZXJmYWNlcy50c1wiLz5cbm1vZHVsZSBLdWJlcm5ldGVzIHtcblxuICBleHBvcnQgdmFyIGNvbnRleHQgPSAnL2t1YmVybmV0ZXMnO1xuICBleHBvcnQgdmFyIGhhc2ggPSAnIycgKyBjb250ZXh0O1xuICBleHBvcnQgdmFyIGRlZmF1bHRSb3V0ZSA9IGhhc2ggKyAnL2FwcHMnO1xuICBleHBvcnQgdmFyIHBsdWdpbk5hbWUgPSAnS3ViZXJuZXRlcyc7XG4gIGV4cG9ydCB2YXIgcGx1Z2luUGF0aCA9ICdwbHVnaW5zL2t1YmVybmV0ZXMvJztcbiAgZXhwb3J0IHZhciB0ZW1wbGF0ZVBhdGggPSBwbHVnaW5QYXRoICsgJ2h0bWwvJztcbiAgZXhwb3J0IHZhciBsb2c6TG9nZ2luZy5Mb2dnZXIgPSBMb2dnZXIuZ2V0KHBsdWdpbk5hbWUpO1xuXG4gIGV4cG9ydCB2YXIga2VlcFBvbGxpbmdNb2RlbCA9IHRydWU7XG5cbiAgZXhwb3J0IHZhciBkZWZhdWx0SWNvblVybCA9IENvcmUudXJsKFwiL2ltZy9rdWJlcm5ldGVzLnN2Z1wiKTtcbiAgZXhwb3J0IHZhciBob3N0SWNvblVybCA9IENvcmUudXJsKFwiL2ltZy9ob3N0LnN2Z1wiKTtcblxuICAvLyB0aGlzIGdldHMgc2V0IGFzIGEgcHJlLWJvb3RzdHJhcCB0YXNrXG4gIGV4cG9ydCB2YXIgb3NDb25maWc6S3ViZXJuZXRlc0NvbmZpZyA9IHVuZGVmaW5lZDtcbiAgZXhwb3J0IHZhciBtYXN0ZXJVcmwgPSBcIlwiO1xuXG4gIGV4cG9ydCB2YXIgZGVmYXVsdEFwaVZlcnNpb24gPSBcInYxXCI7XG4gIGV4cG9ydCB2YXIgZGVmYXVsdE9TQXBpVmVyc2lvbiA9IFwidjFcIjtcbiAgZXhwb3J0IHZhciBsYWJlbEZpbHRlclRleHRTZXBhcmF0b3IgPSBcIixcIjtcblxuICBleHBvcnQgdmFyIGRlZmF1bHROYW1lc3BhY2UgPSBcImRlZmF1bHRcIjtcblxuICBleHBvcnQgdmFyIGFwcFN1ZmZpeCA9IFwiLmFwcFwiO1xuXG4gIC8vIGt1YmVybmV0ZXMgc2VydmljZSBuYW1lc1xuICBleHBvcnQgdmFyIGtpYmFuYVNlcnZpY2VOYW1lID0gXCJraWJhbmFcIjtcbiAgZXhwb3J0IHZhciBmYWJyaWM4Rm9yZ2VTZXJ2aWNlTmFtZSA9IFwiZmFicmljOC1mb3JnZVwiO1xuICBleHBvcnQgdmFyIGdvZ3NTZXJ2aWNlTmFtZSA9IFwiZ29nc1wiO1xuICBleHBvcnQgdmFyIGplbmtpbnNTZXJ2aWNlTmFtZSA9IFwiamVua2luc1wiO1xuICBleHBvcnQgdmFyIGFwaW1hblNlcnZpY2VOYW1lID0gJ2FwaW1hbic7XG4gIGV4cG9ydCB2YXIgaXNPcGVuU2hpZnQgPSB0cnVlO1xuXG4gIGV4cG9ydCBmdW5jdGlvbiBrdWJlcm5ldGVzTmFtZXNwYWNlUGF0aCgpIHtcbiAgICB2YXIgbnMgPSBjdXJyZW50S3ViZXJuZXRlc05hbWVzcGFjZSgpO1xuICAgIGlmIChucykge1xuICAgICAgcmV0dXJuIFwiL25hbWVzcGFjZXMvXCIgKyBucztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFwiXCI7XG4gICAgfVxuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGFwaVByZWZpeCgpIHtcbiAgICB2YXIgcHJlZml4ID0gQ29yZS5wYXRoR2V0KG9zQ29uZmlnLCBbJ2FwaScsICdrOHMnLCAncHJlZml4J10pO1xuICAgIGlmICghcHJlZml4KSB7XG4gICAgICBwcmVmaXggPSAnYXBpJztcbiAgICB9XG4gICAgcmV0dXJuIENvcmUudHJpbUxlYWRpbmcocHJlZml4LCAnLycpO1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIG9zQXBpUHJlZml4KCkge1xuICAgIHZhciBwcmVmaXggPSBDb3JlLnBhdGhHZXQob3NDb25maWcsIFsnYXBpJywgJ29wZW5zaGlmdCcsICdwcmVmaXgnXSk7XG4gICAgaWYgKCFwcmVmaXgpIHtcbiAgICAgIHByZWZpeCA9ICdvYXBpJztcbiAgICB9XG4gICAgdmFyIGFuc3dlciA9IENvcmUudHJpbUxlYWRpbmcocHJlZml4LCAnLycpO1xuICAgIGlmICghaXNPcGVuU2hpZnQpIHtcbiAgICAgIHJldHVybiBVcmxIZWxwZXJzLmpvaW4oYXBpUHJlZml4KCksIGRlZmF1bHRPU0FwaVZlcnNpb24sIFwicHJveHlcIiwga3ViZXJuZXRlc05hbWVzcGFjZVBhdGgoKSwgXCJzZXJ2aWNlcy90ZW1wbGF0ZXNcIiwgYW5zd2VyKTtcbiAgICB9XG4gICAgcmV0dXJuIGFuc3dlcjtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBtYXN0ZXJBcGlVcmwoKSB7XG4gICAgcmV0dXJuIG1hc3RlclVybCB8fCBcIlwiO1xuICB9XG5cbiAgLyoqIFdBUk5JTkcgLSB0aGlzIGV4Y2x1ZGVzIHRoZSBob3N0IG5hbWUgLSB5b3UgcHJvYmFibHkgd2FudCB0byB1c2U6IGt1YmVybmV0ZXNBcGlVcmwoKSBpbnN0ZWFkISEgKi9cbiAgZXhwb3J0IGZ1bmN0aW9uIGt1YmVybmV0ZXNBcGlQcmVmaXgoKSB7XG4gICAgcmV0dXJuIFVybEhlbHBlcnMuam9pbihhcGlQcmVmaXgoKSwgZGVmYXVsdEFwaVZlcnNpb24pO1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIG9wZW5zaGlmdEFwaVByZWZpeCgpIHtcbiAgICByZXR1cm4gVXJsSGVscGVycy5qb2luKG9zQXBpUHJlZml4KCksIGRlZmF1bHRPU0FwaVZlcnNpb24pO1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIHByZWZpeEZvclR5cGUodHlwZTpzdHJpbmcpIHtcbiAgICBpZiAodHlwZSA9PT0gV2F0Y2hUeXBlcy5OQU1FU1BBQ0VTKSB7XG4gICAgICByZXR1cm4ga3ViZXJuZXRlc0FwaVByZWZpeCgpO1xuICAgIH1cbiAgICBpZiAoXy5hbnkoTmFtZXNwYWNlZFR5cGVzLms4c1R5cGVzLCAodCkgPT4gdCA9PT0gdHlwZSkpIHtcbiAgICAgIHJldHVybiBrdWJlcm5ldGVzQXBpUHJlZml4KCk7XG4gICAgfVxuICAgIGlmIChfLmFueShOYW1lc3BhY2VkVHlwZXMub3NUeXBlcywgKHQpID0+IHQgPT09IHR5cGUpKSB7XG4gICAgICByZXR1cm4gb3BlbnNoaWZ0QXBpUHJlZml4KCk7XG4gICAgfVxuICAgIC8vIGxldHMgYXNzdW1lIGl0cyBhbiBPcGVuU2hpZnQgZXh0ZW5zaW9uIHR5cGVcbiAgICByZXR1cm4gb3BlbnNoaWZ0QXBpUHJlZml4KCk7XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24ga3ViZXJuZXRlc0FwaVVybCgpIHtcbiAgICByZXR1cm4gVXJsSGVscGVycy5qb2luKG1hc3RlckFwaVVybCgpLCBrdWJlcm5ldGVzQXBpUHJlZml4KCkpO1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIG9wZW5zaGlmdEFwaVVybCgpIHtcbiAgICByZXR1cm4gVXJsSGVscGVycy5qb2luKG1hc3RlckFwaVVybCgpLCBvcGVuc2hpZnRBcGlQcmVmaXgoKSk7XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gcmVzb3VyY2VzVXJpRm9yS2luZCh0eXBlLCBucyA9IG51bGwpIHtcbiAgICBpZiAoIW5zKSB7XG4gICAgICBucyA9IGN1cnJlbnRLdWJlcm5ldGVzTmFtZXNwYWNlKCk7XG4gICAgfVxuICAgIHJldHVybiBVcmxIZWxwZXJzLmpvaW4obWFzdGVyQXBpVXJsKCksIHByZWZpeEZvclR5cGUodHlwZSksIG5hbWVzcGFjZVBhdGhGb3JLaW5kKHR5cGUsIG5zKSk7XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gdXJpVGVtcGxhdGVGb3JLdWJlcm5ldGVzS2luZCh0eXBlKSB7XG4gICAgdmFyIHVybFRlbXBsYXRlID0gJyc7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlIFdhdGNoVHlwZXMuTkFNRVNQQUNFUzpcbiAgICAgIGNhc2UgXCJOYW1lc3BhY2VzXCI6XG4gICAgICAgIHVybFRlbXBsYXRlID0gVXJsSGVscGVycy5qb2luKCduYW1lc3BhY2VzJyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBXYXRjaFR5cGVzLk9BVVRIX0NMSUVOVFM6XG4gICAgICBjYXNlIFwiT0F1dGhDbGllbnRzXCI6XG4gICAgICBjYXNlIFwiT0F1dGhDbGllbnRcIjpcbiAgICAgICAgcmV0dXJuIFVybEhlbHBlcnMuam9pbignb2F1dGhjbGllbnRzJyk7XG4gICAgICBjYXNlIFdhdGNoVHlwZXMuUFJPSkVDVFM6XG4gICAgICBjYXNlIFwiUHJvamVjdHNcIjpcbiAgICAgICAgdXJsVGVtcGxhdGUgPSBVcmxIZWxwZXJzLmpvaW4oJ3Byb2plY3RzJyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdXJsVGVtcGxhdGUgPSBVcmxIZWxwZXJzLmpvaW4oJ25hbWVzcGFjZXMvOm5hbWVzcGFjZScsIHR5cGUsICc6aWQnKTtcbiAgICB9XG4gICAgcmV0dXJuIHVybFRlbXBsYXRlO1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIG5hbWVzcGFjZVBhdGhGb3JLaW5kKHR5cGUsIG5zKSB7XG4gICAgdmFyIHVybFRlbXBsYXRlID0gJyc7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlIFdhdGNoVHlwZXMuTkFNRVNQQUNFUzpcbiAgICAgIGNhc2UgXCJOYW1lc3BhY2VzXCI6XG4gICAgICBjYXNlIFwiTmFtZXNwYWNlXCI6XG4gICAgICAgIHJldHVybiBVcmxIZWxwZXJzLmpvaW4oJ25hbWVzcGFjZXMnKTtcbiAgICAgIGNhc2UgV2F0Y2hUeXBlcy5OT0RFUzpcbiAgICAgIGNhc2UgXCJOb2Rlc1wiOlxuICAgICAgY2FzZSBcIm5vZGVcIjpcbiAgICAgICAgcmV0dXJuIFVybEhlbHBlcnMuam9pbignbm9kZXMnKTtcbiAgICAgIGNhc2UgV2F0Y2hUeXBlcy5QUk9KRUNUUzpcbiAgICAgIGNhc2UgXCJQcm9qZWN0c1wiOlxuICAgICAgY2FzZSBcIlByb2plY3RcIjpcbiAgICAgICAgcmV0dXJuIFVybEhlbHBlcnMuam9pbigncHJvamVjdHMnKTtcbiAgICAgIGNhc2UgV2F0Y2hUeXBlcy5PQVVUSF9DTElFTlRTOlxuICAgICAgY2FzZSBcIk9BdXRoQ2xpZW50c1wiOlxuICAgICAgY2FzZSBcIk9BdXRoQ2xpZW50XCI6XG4gICAgICAgIHJldHVybiBVcmxIZWxwZXJzLmpvaW4oJ29hdXRoY2xpZW50cycpO1xuICAgICAgY2FzZSBXYXRjaFR5cGVzLlBFUlNJU1RFTlRfVk9MVU1FUzpcbiAgICAgIGNhc2UgXCJQZXJzaXN0ZW50Vm9sdW1lc1wiOlxuICAgICAgY2FzZSBcIlBlcnNpc3RlbnRWb2x1bWVcIjpcbiAgICAgICAgcmV0dXJuIFVybEhlbHBlcnMuam9pbigncGVyc2lzdGVudHZvbHVtZXMnKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBVcmxIZWxwZXJzLmpvaW4oJ25hbWVzcGFjZXMnLCBucywgdHlwZSk7XG4gICAgfVxuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZU9yQ3JlYXRlT2JqZWN0KG9iamVjdCwgS3ViZXJuZXRlc01vZGVsLCBzdWNjZXNzPzogKGRhdGEpID0+IHZvaWQsIGVycm9yPzogKGVycm9yKSA9PiB2b2lkKSB7XG4gICAgdmFyIGtpbmQgPSBnZXRLaW5kKG9iamVjdCk7XG4gICAgaWYgKGtpbmQgPT09IFwiTGlzdFwiKSB7XG4gICAgICBsb2cuZGVidWcoXCJPYmplY3QgaXMgYSBsaXN0LCBkZXBsb3lpbmcgYWxsIG9iamVjdHNcIik7XG4gICAgICBfLmZvckVhY2gob2JqZWN0Lml0ZW1zLCAob2JqKSA9PiB7XG4gICAgICAgIGxvZy5kZWJ1ZyhcIkRlcGxveWluZzogXCIsIG9iaik7XG4gICAgICAgIHVwZGF0ZU9yQ3JlYXRlT2JqZWN0KG9iaiwgS3ViZXJuZXRlc01vZGVsLCBzdWNjZXNzLCBlcnJvcik7XG4gICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCFraW5kKSB7XG4gICAgICBsb2cuZGVidWcoXCJPYmplY3Q6IFwiLCBvYmplY3QsIFwiIGhhcyBubyBvYmplY3QgdHlwZVwiKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAga2luZCA9IGtpbmQudG9Mb3dlckNhc2UoKS5wbHVyYWxpemUoKTtcbiAgICB2YXIgcmVzb3VyY2UgPSBLdWJlcm5ldGVzTW9kZWxba2luZCArICdSZXNvdXJjZSddO1xuICAgIGlmICghcmVzb3VyY2UpIHtcbiAgICAgIHZhciBpbmplY3RvciA9IEhhd3Rpb0NvcmUuaW5qZWN0b3I7XG4gICAgICB2YXIgJHJlc291cmNlID0gaW5qZWN0b3IgPyBpbmplY3Rvci5nZXQoXCIkcmVzb3VyY2VcIikgOiBudWxsO1xuICAgICAgaWYgKCEkcmVzb3VyY2UpIHtcbiAgICAgICAgbG9nLndhcm4oXCJDYW5ub3QgY3JlYXRlIHJlc291cmNlIGZvciBcIiArIGtpbmQgKyBcIiBkdWUgdG8gbWlzc2luZyAkcmVzb3VyY2VcIik7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHJlc291cmNlID0gY3JlYXRlUmVzb3VyY2Uoa2luZCwgdXJpVGVtcGxhdGVGb3JLdWJlcm5ldGVzS2luZChraW5kKSwgJHJlc291cmNlLCBLdWJlcm5ldGVzTW9kZWwpO1xuICAgICAgS3ViZXJuZXRlc01vZGVsW2tpbmQgKyAnUmVzb3VyY2UnXSA9IHJlc291cmNlO1xuICAgIH1cbiAgICB2YXIgbmFtZSA9IGdldE5hbWUob2JqZWN0KTtcbiAgICBpZiAoIW5hbWUpIHtcbiAgICAgIGxvZy5kZWJ1ZyhcIk9iamVjdCBoYXMgbm8gbmFtZTogXCIsIG9iamVjdCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdmFyIGlzVXBkYXRlID0gXy5hbnkoS3ViZXJuZXRlc01vZGVsW2tpbmRdLCAobikgPT4gbiA9PT0gbmFtZSlcbiAgICB2YXIgYWN0aW9uID0gaXNVcGRhdGUgPyBcIk1vZGlmaWVkXCIgOiBcIkFkZGVkXCI7XG5cbiAgICB2YXIgc3VjY2Vzc0ludGVybmFsID0gKGRhdGEpID0+IHtcbiAgICAgIGxvZy5kZWJ1ZyhhY3Rpb24sIGRhdGEpO1xuICAgICAgaWYgKCFpc1VwZGF0ZSkge1xuICAgICAgICBLdWJlcm5ldGVzTW9kZWxba2luZF0ucHVzaChkYXRhKTtcbiAgICAgIH1cbiAgICAgIGlmIChzdWNjZXNzKSB7XG4gICAgICAgIHN1Y2Nlc3MoZGF0YSk7XG4gICAgICB9XG4gICAgfTtcbiAgICB2YXIgZXJyb3JJbnRlcm5hbCA9IChlcnIpID0+IHtcbiAgICAgIGxvZy5kZWJ1ZyhcIkZhaWxlZCB0byBhZGQvbW9kaWZ5IG9iamVjdDogXCIsIG9iamVjdCwgXCIgZXJyb3I6IFwiLCBlcnIpO1xuICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgIGVycm9yKGVycik7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChpc1VwZGF0ZSkge1xuICAgICAgbG9nLmRlYnVnKFwiT2JqZWN0IGFscmVhZHkgZXhpc3RzLCB1cGRhdGluZy4uLlwiKTtcbiAgICAgIHJlc291cmNlLnNhdmUoeyBpZDogbmFtZSB9LCBvYmplY3QsIHN1Y2Nlc3NJbnRlcm5hbCwgZXJyb3JJbnRlcm5hbCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxvZy5kZWJ1ZyhcIk9iamVjdCBkb2Vzbid0IGV4aXN0LCBjcmVhdGluZy4uLlwiKTtcbiAgICAgIHJlc291cmNlLmNyZWF0ZSh7fSwgb2JqZWN0LCBzdWNjZXNzSW50ZXJuYWwsIGVycm9ySW50ZXJuYWwpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZXZhbHVlIGZyb20gdGhlIGluamVjdG9yIGlmIGl0cyBhdmFpbGFibGUgb3IgbnVsbFxuICAgKi9cbiAgZXhwb3J0IGZ1bmN0aW9uIGluamVjdChuYW1lKSB7XG4gICAgdmFyIGluamVjdG9yID0gSGF3dGlvQ29yZS5pbmplY3RvcjtcbiAgICByZXR1cm4gaW5qZWN0b3IgPyBpbmplY3Rvci5nZXQobmFtZSkgOiBudWxsO1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVJlc291cmNlKHRoaW5nOnN0cmluZywgdXJsVGVtcGxhdGU6c3RyaW5nLCAkcmVzb3VyY2U6IG5nLnJlc291cmNlLklSZXNvdXJjZVNlcnZpY2UsIEt1YmVybmV0ZXNNb2RlbCkge1xuICAgIHZhciBwcmVmaXggPSBwcmVmaXhGb3JUeXBlKHRoaW5nKTtcbiAgICBpZiAoIXByZWZpeCkge1xuICAgICAgbG9nLmRlYnVnKFwiSW52YWxpZCB0eXBlIGdpdmVuOiBcIiwgdGhpbmcpO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgdmFyIHBhcmFtcyA9IDxhbnk+IHtcbiAgICAgIG5hbWVzcGFjZTogY3VycmVudEt1YmVybmV0ZXNOYW1lc3BhY2VcbiAgICB9XG4gICAgc3dpdGNoICh0aGluZykge1xuICAgICAgY2FzZSBXYXRjaFR5cGVzLk5BTUVTUEFDRVM6XG4gICAgICBjYXNlIFdhdGNoVHlwZXMuT0FVVEhfQ0xJRU5UUzpcbiAgICAgIGNhc2UgV2F0Y2hUeXBlcy5OT0RFUzpcbiAgICAgIGNhc2UgV2F0Y2hUeXBlcy5QUk9KRUNUUzpcbiAgICAgIGNhc2UgV2F0Y2hUeXBlcy5PQVVUSF9DTElFTlRTOlxuICAgICAgY2FzZSBXYXRjaFR5cGVzLlBFUlNJU1RFTlRfVk9MVU1FUzpcbiAgICAgIHBhcmFtcyA9IHt9O1xuICAgIH1cblxuICAgIHZhciB1cmwgPSBVcmxIZWxwZXJzLmpvaW4obWFzdGVyQXBpVXJsKCksIHByZWZpeCwgdXJsVGVtcGxhdGUpO1xuICAgIGxvZy5kZWJ1ZyhcIlVybCBmb3IgXCIsIHRoaW5nLCBcIjogXCIsIHVybCk7XG4gICAgdmFyIHJlc291cmNlID0gJHJlc291cmNlKHVybCwgbnVsbCwge1xuICAgICAgcXVlcnk6IHsgbWV0aG9kOiAnR0VUJywgaXNBcnJheTogZmFsc2UsIHBhcmFtczogcGFyYW1zfSxcbiAgICAgIGNyZWF0ZTogeyBtZXRob2Q6ICdQT1NUJywgcGFyYW1zOiBwYXJhbXN9LFxuICAgICAgc2F2ZTogeyBtZXRob2Q6ICdQVVQnLCBwYXJhbXM6IHBhcmFtc30sXG4gICAgICBkZWxldGU6IHsgbWV0aG9kOiAnREVMRVRFJywgcGFyYW1zOiBfLmV4dGVuZCh7XG4gICAgICAgIGlkOiAnQGlkJ1xuICAgICAgfSwgcGFyYW1zKX1cbiAgICB9KTtcbiAgICByZXR1cm4gcmVzb3VyY2U7XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gaW1hZ2VSZXBvc2l0b3JpZXNSZXN0VVJMKCkge1xuICAgIHJldHVybiBVcmxIZWxwZXJzLmpvaW4ob3BlbnNoaWZ0QXBpVXJsKCksIGt1YmVybmV0ZXNOYW1lc3BhY2VQYXRoKCksIFwiL2ltYWdlc3RyZWFtc1wiKTtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBkZXBsb3ltZW50Q29uZmlnc1Jlc3RVUkwoKSB7XG4gICAgcmV0dXJuIFVybEhlbHBlcnMuam9pbihvcGVuc2hpZnRBcGlVcmwoKSwga3ViZXJuZXRlc05hbWVzcGFjZVBhdGgoKSwgXCIvZGVwbG95bWVudGNvbmZpZ3NcIik7XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gYnVpbGRzUmVzdFVSTCgpIHtcbiAgICByZXR1cm4gVXJsSGVscGVycy5qb2luKG9wZW5zaGlmdEFwaVVybCgpLCBrdWJlcm5ldGVzTmFtZXNwYWNlUGF0aCgpLCBcIi9idWlsZHNcIik7XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gYnVpbGRDb25maWdIb29rc1Jlc3RVUkwoKSB7XG4gICAgcmV0dXJuIFVybEhlbHBlcnMuam9pbihvcGVuc2hpZnRBcGlVcmwoKSwga3ViZXJuZXRlc05hbWVzcGFjZVBhdGgoKSwgXCIvYnVpbGRjb25maWdob29rc1wiKTtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBidWlsZENvbmZpZ3NSZXN0VVJMKCkge1xuICAgIHJldHVybiBVcmxIZWxwZXJzLmpvaW4ob3BlbnNoaWZ0QXBpVXJsKCksIGt1YmVybmV0ZXNOYW1lc3BhY2VQYXRoKCksIFwiL2J1aWxkY29uZmlnc1wiKTtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiByb3V0ZXNSZXN0VVJMKCkge1xuICAgIHJldHVybiBVcmxIZWxwZXJzLmpvaW4ob3BlbnNoaWZ0QXBpVXJsKCksIGt1YmVybmV0ZXNOYW1lc3BhY2VQYXRoKCksIFwiL3JvdXRlc1wiKTtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiB0ZW1wbGF0ZXNSZXN0VVJMKCkge1xuICAgIHJldHVybiBVcmxIZWxwZXJzLmpvaW4ob3BlbnNoaWZ0QXBpVXJsKCksIGt1YmVybmV0ZXNOYW1lc3BhY2VQYXRoKCksIFwiL3RlbXBsYXRlc1wiKTtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBnZXROYW1lc3BhY2UoZW50aXR5KSB7XG4gICAgdmFyIGFuc3dlciA9IENvcmUucGF0aEdldChlbnRpdHksIFtcIm1ldGFkYXRhXCIsIFwibmFtZXNwYWNlXCJdKTtcbiAgICByZXR1cm4gYW5zd2VyID8gYW5zd2VyIDogY3VycmVudEt1YmVybmV0ZXNOYW1lc3BhY2UoKTtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBnZXRMYWJlbHMoZW50aXR5KSB7XG4gICAgdmFyIGFuc3dlciA9IENvcmUucGF0aEdldChlbnRpdHksIFtcIm1ldGFkYXRhXCIsIFwibGFiZWxzXCJdKTtcbiAgICByZXR1cm4gYW5zd2VyID8gYW5zd2VyIDoge307XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gZ2V0TmFtZShlbnRpdHkpIHtcbiAgICBpZiAoYW5ndWxhci5pc1N0cmluZyhlbnRpdHkpKSB7XG4gICAgICByZXR1cm4gZW50aXR5O1xuICAgIH1cbiAgICByZXR1cm4gQ29yZS5wYXRoR2V0KGVudGl0eSwgW1wibWV0YWRhdGFcIiwgXCJuYW1lXCJdKSB8fCBDb3JlLnBhdGhHZXQoZW50aXR5LCBcIm5hbWVcIikgfHwgQ29yZS5wYXRoR2V0KGVudGl0eSwgXCJpZFwiKTtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBnZXRLaW5kKGVudGl0eSkge1xuICAgIHJldHVybiBDb3JlLnBhdGhHZXQoZW50aXR5LCBbXCJtZXRhZGF0YVwiLCBcImtpbmRcIl0pIHx8IENvcmUucGF0aEdldChlbnRpdHksIFwia2luZFwiKTtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBnZXRTZWxlY3RvcihlbnRpdHkpIHtcbiAgICByZXR1cm4gQ29yZS5wYXRoR2V0KGVudGl0eSwgW1wic3BlY1wiLCBcInNlbGVjdG9yXCJdKTtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBnZXRIb3N0KHBvZCkge1xuICAgIHJldHVybiBDb3JlLnBhdGhHZXQocG9kLCBbXCJzcGVjXCIsIFwiaG9zdFwiXSkgfHwgQ29yZS5wYXRoR2V0KHBvZCwgW1wic3BlY1wiLCBcIm5vZGVOYW1lXCJdKSB8fCBDb3JlLnBhdGhHZXQocG9kLCBbXCJzdGF0dXNcIiwgXCJob3N0SVBcIl0pO1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGdldFN0YXR1cyhwb2QpIHtcbiAgICByZXR1cm4gQ29yZS5wYXRoR2V0KHBvZCwgW1wic3RhdHVzXCIsIFwicGhhc2VcIl0pO1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGdldFBvcnRzKHNlcnZpY2UpIHtcbiAgICByZXR1cm4gQ29yZS5wYXRoR2V0KHNlcnZpY2UsIFtcInNwZWNcIiwgXCJwb3J0c1wiXSk7XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gZ2V0Q3JlYXRpb25UaW1lc3RhbXAoZW50aXR5KSB7XG4gICAgcmV0dXJuIENvcmUucGF0aEdldChlbnRpdHksIFtcIm1ldGFkYXRhXCIsIFwiY3JlYXRpb25UaW1lc3RhbXBcIl0pO1xuICB9O1xuXG4gIC8vdmFyIGZhYnJpY0RvbWFpbiA9IEZhYnJpYy5qbXhEb21haW47XG4gIHZhciBmYWJyaWNEb21haW4gPSBcImlvLmZhYnJpYzhcIjtcbiAgZXhwb3J0IHZhciBtYmVhbiA9IGZhYnJpY0RvbWFpbiArIFwiOnR5cGU9S3ViZXJuZXRlc1wiO1xuICBleHBvcnQgdmFyIG1hbmFnZXJNQmVhbiA9IGZhYnJpY0RvbWFpbiArIFwiOnR5cGU9S3ViZXJuZXRlc01hbmFnZXJcIjtcbiAgZXhwb3J0IHZhciBhcHBWaWV3TUJlYW4gPSBmYWJyaWNEb21haW4gKyBcIjp0eXBlPUFwcFZpZXdcIjtcblxuICBleHBvcnQgZnVuY3Rpb24gaXNLdWJlcm5ldGVzKHdvcmtzcGFjZT8pIHtcbiAgICAvLyByZXR1cm4gd29ya3NwYWNlLnRyZWVDb250YWluc0RvbWFpbkFuZFByb3BlcnRpZXMoZmFicmljRG9tYWluLCB7dHlwZTogXCJLdWJlcm5ldGVzXCJ9KTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBpc0t1YmVybmV0ZXNUZW1wbGF0ZU1hbmFnZXIod29ya3NwYWNlPykge1xuICAgIC8vIHJldHVybiB3b3Jrc3BhY2UudHJlZUNvbnRhaW5zRG9tYWluQW5kUHJvcGVydGllcyhmYWJyaWNEb21haW4sIHt0eXBlOiBcIkt1YmVybmV0ZXNUZW1wbGF0ZU1hbmFnZXJcIn0pO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGlzQXBwVmlldyh3b3Jrc3BhY2U/KSB7XG4gICAgLy8gcmV0dXJuIHdvcmtzcGFjZS50cmVlQ29udGFpbnNEb21haW5BbmRQcm9wZXJ0aWVzKGZhYnJpY0RvbWFpbiwge3R5cGU6IFwiQXBwVmlld1wifSk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gZ2V0U3RyaXBwZWRQYXRoTmFtZSgpOlN0cmluZyB7XG4gICAgdmFyIHBhdGhOYW1lID0gQ29yZS50cmltTGVhZGluZygodGhpcy4kbG9jYXRpb24ucGF0aCgpIHx8ICcvJyksIFwiI1wiKTtcbiAgICBwYXRoTmFtZSA9IHBhdGhOYW1lLnJlcGxhY2UoL15cXC8vLCAnJyk7XG4gICAgcmV0dXJuIHBhdGhOYW1lO1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGxpbmtDb250YWlucyguLi53b3JkczpTdHJpbmdbXSk6Ym9vbGVhbiB7XG4gICAgdmFyIHBhdGhOYW1lID0gdGhpcy5nZXRTdHJpcHBlZFBhdGhOYW1lKCk7XG4gICAgcmV0dXJuIHdvcmRzLmFsbCgod29yZDpzdHJpbmcpID0+IHtcbiAgICAgIHJldHVybiBwYXRoTmFtZS5oYXMod29yZCk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBnaXZlbiBsaW5rIGlzIGFjdGl2ZS4gVGhlIGxpbmsgY2FuIG9taXQgdGhlIGxlYWRpbmcgIyBvciAvIGlmIG5lY2Vzc2FyeS5cbiAgICogVGhlIHF1ZXJ5IHBhcmFtZXRlcnMgb2YgdGhlIFVSTCBhcmUgaWdub3JlZCBpbiB0aGUgY29tcGFyaXNvbi5cbiAgICogQG1ldGhvZCBpc0xpbmtBY3RpdmVcbiAgICogQHBhcmFtIHtTdHJpbmd9IGhyZWZcbiAgICogQHJldHVybiB7Qm9vbGVhbn0gdHJ1ZSBpZiB0aGUgZ2l2ZW4gbGluayBpcyBhY3RpdmVcbiAgICovXG4gIGV4cG9ydCBmdW5jdGlvbiBpc0xpbmtBY3RpdmUoaHJlZjpzdHJpbmcpOmJvb2xlYW4ge1xuICAgIC8vIGxldHMgdHJpbSB0aGUgbGVhZGluZyBzbGFzaFxuICAgIHZhciBwYXRoTmFtZSA9IGdldFN0cmlwcGVkUGF0aE5hbWUoKTtcblxuICAgIHZhciBsaW5rID0gQ29yZS50cmltTGVhZGluZyhocmVmLCBcIiNcIik7XG4gICAgbGluayA9IGxpbmsucmVwbGFjZSgvXlxcLy8sICcnKTtcbiAgICAvLyBzdHJpcCBhbnkgcXVlcnkgYXJndW1lbnRzXG4gICAgdmFyIGlkeCA9IGxpbmsuaW5kZXhPZignPycpO1xuICAgIGlmIChpZHggPj0gMCkge1xuICAgICAgbGluayA9IGxpbmsuc3Vic3RyaW5nKDAsIGlkeCk7XG4gICAgfVxuICAgIGlmICghcGF0aE5hbWUubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gbGluayA9PT0gcGF0aE5hbWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBwYXRoTmFtZS5zdGFydHNXaXRoKGxpbmspO1xuICAgIH1cbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBzZXRKc29uKCRzY29wZSwgaWQsIGNvbGxlY3Rpb24pIHtcbiAgICAkc2NvcGUuaWQgPSBpZDtcbiAgICBpZiAoISRzY29wZS5mZXRjaGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghaWQpIHtcbiAgICAgICRzY29wZS5qc29uID0gJyc7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghY29sbGVjdGlvbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB2YXIgaXRlbSA9IGNvbGxlY3Rpb24uZmluZCgoaXRlbSkgPT4geyByZXR1cm4gZ2V0TmFtZShpdGVtKSA9PT0gaWQ7IH0pO1xuICAgIGlmIChpdGVtKSB7XG4gICAgICAkc2NvcGUuanNvbiA9IGFuZ3VsYXIudG9Kc29uKGl0ZW0sIHRydWUpO1xuICAgICAgJHNjb3BlLml0ZW0gPSBpdGVtO1xuICAgIH0gZWxzZSB7XG4gICAgICAkc2NvcGUuaWQgPSB1bmRlZmluZWQ7XG4gICAgICAkc2NvcGUuanNvbiA9ICcnO1xuICAgICAgJHNjb3BlLml0ZW0gPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGxhYmVscyB0ZXh0IHN0cmluZyB1c2luZyB0aGUgPGNvZGU+a2V5MT12YWx1ZTEsa2V5Mj12YWx1ZTIsLi4uLjwvY29kZT4gZm9ybWF0XG4gICAqL1xuICBleHBvcnQgZnVuY3Rpb24gbGFiZWxzVG9TdHJpbmcobGFiZWxzLCBzZXBlcmF0b3JUZXh0ID0gbGFiZWxGaWx0ZXJUZXh0U2VwYXJhdG9yKSB7XG4gICAgdmFyIGFuc3dlciA9IFwiXCI7XG4gICAgYW5ndWxhci5mb3JFYWNoKGxhYmVscywgKHZhbHVlLCBrZXkpID0+IHtcbiAgICAgIHZhciBzZXBhcmF0b3IgPSBhbnN3ZXIgPyBzZXBlcmF0b3JUZXh0IDogXCJcIjtcbiAgICAgIGFuc3dlciArPSBzZXBhcmF0b3IgKyBrZXkgKyBcIj1cIiArIHZhbHVlO1xuICAgIH0pO1xuICAgIHJldHVybiBhbnN3ZXI7XG4gIH1cblxuXG4gIGV4cG9ydCBmdW5jdGlvbiBpbml0U2hhcmVkKCRzY29wZSwgJGxvY2F0aW9uLCAkaHR0cCwgJHRpbWVvdXQsICRyb3V0ZVBhcmFtcywgS3ViZXJuZXRlc01vZGVsLCBLdWJlcm5ldGVzU3RhdGUsIEt1YmVybmV0ZXNBcGlVUkwpIHtcbiAgICAkc2NvcGUuYmFzZVVyaSA9IENvcmUudHJpbVRyYWlsaW5nKENvcmUudXJsKFwiL1wiKSB8fCBcIlwiLCBcIi9cIikgfHwgXCJcIjtcblxuICAgIHZhciBpbmplY3RvciA9IEhhd3Rpb0NvcmUuaW5qZWN0b3I7XG5cbiAgICBmdW5jdGlvbiBoYXNTZXJ2aWNlKG5hbWUpIHtcbiAgICAgIGlmIChpbmplY3Rvcikge1xuICAgICAgICB2YXIgU2VydmljZVJlZ2lzdHJ5ID0gaW5qZWN0b3IuZ2V0KFwiU2VydmljZVJlZ2lzdHJ5XCIpO1xuICAgICAgICBpZiAoU2VydmljZVJlZ2lzdHJ5KSB7XG4gICAgICAgICAgcmV0dXJuIFNlcnZpY2VSZWdpc3RyeS5oYXNTZXJ2aWNlKG5hbWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgJHNjb3BlLmhhc1NlcnZpY2VLaWJhbmEgPSAoKSA9PiBoYXNTZXJ2aWNlKGtpYmFuYVNlcnZpY2VOYW1lKTtcbiAgICAkc2NvcGUuaGFzU2VydmljZUdvZ3MgPSAoKSA9PiBoYXNTZXJ2aWNlKGdvZ3NTZXJ2aWNlTmFtZSk7XG4gICAgJHNjb3BlLmhhc1NlcnZpY2VGb3JnZSA9ICgpID0+IGhhc1NlcnZpY2UoZmFicmljOEZvcmdlU2VydmljZU5hbWUpO1xuICAgICRzY29wZS5oYXNTZXJ2aWNlQXBpbWFuID0gKCkgPT4gaGFzU2VydmljZShhcGltYW5TZXJ2aWNlTmFtZSk7XG5cbiAgICAkc2NvcGUudmlld1RlbXBsYXRlcyA9ICgpID0+IHtcbiAgICAgIHZhciByZXR1cm5UbyA9ICRsb2NhdGlvbi51cmwoKTtcbiAgICAgICRsb2NhdGlvbi5wYXRoKCcva3ViZXJuZXRlcy90ZW1wbGF0ZXMnKS5zZWFyY2goeydyZXR1cm5Ubyc6IHJldHVyblRvfSk7XG4gICAgfVxuXG4gICAgJHNjb3BlLm5hbWVzcGFjZSA9ICRyb3V0ZVBhcmFtcy5uYW1lc3BhY2UgfHwgS3ViZXJuZXRlc1N0YXRlLnNlbGVjdGVkTmFtZXNwYWNlIHx8IGRlZmF1bHROYW1lc3BhY2U7XG4gICAgaWYgKCRzY29wZS5uYW1lc3BhY2UgIT0gS3ViZXJuZXRlc1N0YXRlLnNlbGVjdGVkTmFtZXNwYWNlKSB7XG4gICAgICBLdWJlcm5ldGVzU3RhdGUuc2VsZWN0ZWROYW1lc3BhY2UgPSAkc2NvcGUubmFtZXNwYWNlO1xuXG4gICAgICAvLyBsZXRzIHNob3cgcGFnZSBpcyBnb2luZyB0byByZWxvYWRcbiAgICAgIGlmICgkc2NvcGUubW9kZWwpIHtcbiAgICAgICAgJHNjb3BlLm1vZGVsLmZldGNoZWQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgJHNjb3BlLmZvcmdlRW5hYmxlZCA9IGlzRm9yZ2VFbmFibGVkKCk7XG5cbiAgICAkc2NvcGUuYnJlYWRjcnVtYkNvbmZpZyA9IERldmVsb3Blci5jcmVhdGVFbnZpcm9ubWVudEJyZWFkY3J1bWJzKCRzY29wZSwgJGxvY2F0aW9uLCAkcm91dGVQYXJhbXMpO1xuICAgICRzY29wZS5zdWJUYWJDb25maWcgPSBEZXZlbG9wZXIuY3JlYXRlRW52aXJvbm1lbnRTdWJOYXZCYXJzKCRzY29wZSwgJGxvY2F0aW9uLCAkcm91dGVQYXJhbXMpO1xuXG4gICAgJHNjb3BlLmNvZGVNaXJyb3JPcHRpb25zID0ge1xuICAgICAgbGluZVdyYXBwaW5nIDogdHJ1ZSxcbiAgICAgIGxpbmVOdW1iZXJzOiB0cnVlLFxuICAgICAgcmVhZE9ubHk6ICdub2N1cnNvcicsXG4gICAgICBtb2RlOiB7bmFtZTogXCJqYXZhc2NyaXB0XCIsIGpzb246IHRydWV9XG4gICAgfTtcblxuICAgICRzY29wZS5yZXNpemVEaWFsb2cgPSB7XG4gICAgICBjb250cm9sbGVyOiBudWxsLFxuICAgICAgbmV3UmVwbGljYXM6IDAsXG4gICAgICBkaWFsb2c6IG5ldyBVSS5EaWFsb2coKSxcbiAgICAgIG9uT2s6ICgpID0+IHtcbiAgICAgICAgdmFyIHJlc2l6ZURpYWxvZyA9ICRzY29wZS5yZXNpemVEaWFsb2c7XG4gICAgICAgIHJlc2l6ZURpYWxvZy5kaWFsb2cuY2xvc2UoKTtcbiAgICAgICAgcmVzaXplQ29udHJvbGxlcigkaHR0cCwgS3ViZXJuZXRlc0FwaVVSTCwgcmVzaXplRGlhbG9nLmNvbnRyb2xsZXIsIHJlc2l6ZURpYWxvZy5uZXdSZXBsaWNhcywgKCkgPT4geyBsb2cuZGVidWcoXCJ1cGRhdGVkIG51bWJlciBvZiByZXBsaWNhc1wiKTsgfSlcbiAgICAgIH0sXG4gICAgICBvcGVuOiAoY29udHJvbGxlcikgPT4ge1xuICAgICAgICB2YXIgcmVzaXplRGlhbG9nID0gJHNjb3BlLnJlc2l6ZURpYWxvZztcbiAgICAgICAgcmVzaXplRGlhbG9nLmNvbnRyb2xsZXIgPSBjb250cm9sbGVyO1xuICAgICAgICByZXNpemVEaWFsb2cubmV3UmVwbGljYXMgPSBDb3JlLnBhdGhHZXQoY29udHJvbGxlciwgW1wic3RhdHVzXCIsIFwicmVwbGljYXNcIl0pO1xuICAgICAgICByZXNpemVEaWFsb2cuZGlhbG9nLm9wZW4oKTtcblxuICAgICAgICAkdGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgJCgnI3JlcGxpY2FzJykuZm9jdXMoKTtcbiAgICAgICAgfSwgNTApO1xuICAgICAgfSxcbiAgICAgIGNsb3NlOiAoKSA9PiB7XG4gICAgICAgICRzY29wZS5yZXNpemVEaWFsb2cuZGlhbG9nLmNsb3NlKCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgICRzY29wZS50cmlnZ2VyQnVpbGQgPSAoYnVpbGRDb25maWcpID0+IHtcbiAgICAgIHZhciB1cmwgPSBidWlsZENvbmZpZy4kdHJpZ2dlclVybDtcbiAgICAgIGNvbnNvbGUubG9nKFwidHJpZ2dlcmluZyBidWlsZCBhdCB1cmw6IFwiICsgdXJsKTtcbiAgICAgIGlmICh1cmwpIHtcbiAgICAgICAgLy92YXIgZGF0YSA9IHt9O1xuICAgICAgICB2YXIgZGF0YSA9IG51bGw7XG4gICAgICAgIHZhciBjb25maWcgPSB7XG4gICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6IFwiYXBwbGljYXRpb24vanNvblwiXG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICB2YXIgbmFtZSA9IENvcmUucGF0aEdldChidWlsZENvbmZpZywgW1wibWV0YWRhdGFcIiwgXCJuYW1lXCJdKTtcbiAgICAgICAgQ29yZS5ub3RpZmljYXRpb24oJ2luZm8nLCBcIlRyaWdnZXJpbmcgYnVpbGQgXCIgKyBuYW1lKTtcbiAgICAgICAgJGh0dHAucG9zdCh1cmwsIGRhdGEsIGNvbmZpZykuXG4gICAgICAgICAgc3VjY2VzcyhmdW5jdGlvbiAoZGF0YSwgc3RhdHVzLCBoZWFkZXJzLCBjb25maWcpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwidHJpZ2dlciB3b3JrZWQhIGdvdCBkYXRhIFwiICsgYW5ndWxhci50b0pzb24oZGF0YSwgdHJ1ZSkpO1xuICAgICAgICAgICAgLy8gVE9ETyBzaG91bGQgd2Ugc2hvdyBzb21lIGxpbmsgdG8gdGhlIGJ1aWxkXG4gICAgICAgICAgICBDb3JlLm5vdGlmaWNhdGlvbignaW5mbycsIFwiQnVpbGRpbmcgXCIgKyBuYW1lKTtcbiAgICAgICAgICB9KS5cbiAgICAgICAgICBlcnJvcihmdW5jdGlvbiAoZGF0YSwgc3RhdHVzLCBoZWFkZXJzLCBjb25maWcpIHtcbiAgICAgICAgICAgIGxvZy53YXJuKFwiRmFpbGVkIHRvIGxvYWQgXCIgKyB1cmwgKyBcIiBcIiArIGRhdGEgKyBcIiBcIiArIHN0YXR1cyk7XG4gICAgICAgICAgICBDb3JlLm5vdGlmaWNhdGlvbignZXJyb3InLCBcIkZhaWxlZCB0byB0cmlnZ2VyIGJ1aWxkIGZvciBcIiArIG5hbWUgKyBcIi4gUmV0dXJuZWQgY29kZTogXCIgKyBzdGF0dXMgKyBcIiBcIiArIGRhdGEpO1xuICAgICAgICAgIH0pO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICAvLyB1cGRhdGUgdGhlIFVSTCBpZiB0aGUgZmlsdGVyIGlzIGNoYW5nZWRcbiAgICAkc2NvcGUuJHdhdGNoKFwidGFibGVDb25maWcuZmlsdGVyT3B0aW9ucy5maWx0ZXJUZXh0XCIsICh0ZXh0KSA9PiB7XG4gICAgICAkbG9jYXRpb24uc2VhcmNoKFwicVwiLCB0ZXh0KTtcbiAgICB9KTtcblxuICAgICRzY29wZS4kb24oXCJsYWJlbEZpbHRlclVwZGF0ZVwiLCAoJGV2ZW50LCB0ZXh0KSA9PiB7XG4gICAgICB2YXIgZmlsdGVyT3B0aW9ucyA9ICgkc2NvcGUudGFibGVDb25maWcgfHwge30pLmZpbHRlck9wdGlvbnMgfHwge307XG4gICAgICB2YXIgY3VycmVudEZpbHRlciA9IGZpbHRlck9wdGlvbnMuZmlsdGVyVGV4dDtcbiAgICAgIGlmIChDb3JlLmlzQmxhbmsoY3VycmVudEZpbHRlcikpIHtcbiAgICAgICAgZmlsdGVyT3B0aW9ucy5maWx0ZXJUZXh0ID0gdGV4dDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciBleHByZXNzaW9ucyA9IGN1cnJlbnRGaWx0ZXIuc3BsaXQoL1xccysvKTtcbiAgICAgICAgaWYgKGV4cHJlc3Npb25zLmFueSh0ZXh0KSkge1xuICAgICAgICAgIC8vIGxldHMgZXhjbHVkZSB0aGlzIGZpbHRlciBleHByZXNzaW9uXG4gICAgICAgICAgZXhwcmVzc2lvbnMgPSBleHByZXNzaW9ucy5yZW1vdmUodGV4dCk7XG4gICAgICAgICAgZmlsdGVyT3B0aW9ucy5maWx0ZXJUZXh0ID0gZXhwcmVzc2lvbnMuam9pbihcIiBcIik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZmlsdGVyT3B0aW9ucy5maWx0ZXJUZXh0ID0gY3VycmVudEZpbHRlciArIFwiIFwiICsgdGV4dDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJHNjb3BlLmlkID0gdW5kZWZpbmVkO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIG51bWJlciBvZiBwb2RzIHRoYXQgYXJlIHJlYWR5XG4gICAqL1xuICBleHBvcnQgZnVuY3Rpb24gcmVhZHlQb2RDb3VudChzZXJ2aWNlKSB7XG4gICAgdmFyIGNvdW50ID0gMDtcbiAgICBhbmd1bGFyLmZvckVhY2goKHNlcnZpY2UgfHwge30pLiRwb2RzLCAocG9kKT0+IHtcbiAgICAgIGlmIChwb2QuJHJlYWR5KSB7XG4gICAgICAgIGNvdW50Kys7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGNvdW50O1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHNlcnZpY2UgbGluayBVUkwgZm9yIGVpdGhlciB0aGUgc2VydmljZSBuYW1lIG9yIHRoZSBzZXJ2aWNlIG9iamVjdFxuICAgKi9cbiAgZXhwb3J0IGZ1bmN0aW9uIHNlcnZpY2VMaW5rVXJsKHNlcnZpY2UpIHtcbiAgICBpZiAoYW5ndWxhci5pc09iamVjdChzZXJ2aWNlKSkge1xuICAgICAgdmFyIHBvcnRhbElQID0gc2VydmljZS4kaG9zdDtcbiAgICAgIC8vIGxldHMgYXNzdW1lIG5vIGN1c3RvbSBwb3J0IGZvciBub3cgZm9yIGV4dGVybmFsIHJvdXRlc1xuICAgICAgdmFyIHBvcnQgPSBudWxsO1xuICAgICAgdmFyIHByb3RvY29sID0gXCJodHRwOi8vXCI7XG4gICAgICB2YXIgc3BlYyA9IHNlcnZpY2Uuc3BlYztcbiAgICAgIGlmIChzcGVjKSB7XG4gICAgICAgIGlmICghcG9ydGFsSVApIHtcbiAgICAgICAgICBwb3J0YWxJUCA9IHNwZWMucG9ydGFsSVA7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGhhc0h0dHBzID0gZmFsc2U7XG4gICAgICAgIHZhciBoYXNIdHRwID0gZmFsc2U7XG4gICAgICAgIGFuZ3VsYXIuZm9yRWFjaChzcGVjLnBvcnRzLCAocG9ydFNwZWMpID0+IHtcbiAgICAgICAgICB2YXIgcCA9IHBvcnRTcGVjLnBvcnQ7XG4gICAgICAgICAgaWYgKHApIHtcbiAgICAgICAgICAgIGlmIChwID09PSA0NDMpIHtcbiAgICAgICAgICAgICAgaGFzSHR0cHMgPSB0cnVlO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChwID09PSA4MCkge1xuICAgICAgICAgICAgICBoYXNIdHRwID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghcG9ydCkge1xuICAgICAgICAgICAgICBwb3J0ID0gcDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgaWYgKHBvcnRhbElQKSB7XG4gICAgICAgIGlmIChoYXNIdHRwcykge1xuICAgICAgICAgIHJldHVybiBcImh0dHBzOi8vXCIgKyBwb3J0YWxJUDtcbiAgICAgICAgfSBlbHNlIGlmIChoYXNIdHRwKSB7XG4gICAgICAgICAgcmV0dXJuIFwiaHR0cDovL1wiICsgcG9ydGFsSVA7XG4gICAgICAgIH0gZWxzZSBpZiAocG9ydCkge1xuICAgICAgICAgIHJldHVybiBwcm90b2NvbCArIHBvcnRhbElQICsgXCI6XCIgKyBwb3J0ICsgXCIvXCI7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHByb3RvY29sICsgcG9ydGFsSVA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHNlcnZpY2UpIHtcbiAgICAgIHZhciBzZXJ2aWNlSWQgPSBzZXJ2aWNlLnRvU3RyaW5nKCk7XG4gICAgICBpZiAoc2VydmljZUlkKSB7XG4gICAgICAgIHZhciBTZXJ2aWNlUmVnaXN0cnkgPSBnZXRTZXJ2aWNlUmVnaXN0cnkoKTtcbiAgICAgICAgaWYgKFNlcnZpY2VSZWdpc3RyeSkge1xuICAgICAgICAgIHJldHVybiBTZXJ2aWNlUmVnaXN0cnkuc2VydmljZUxpbmsoc2VydmljZUlkKSB8fCBcIlwiO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBcIlwiO1xuICB9XG5cbiAgLyoqXG4gICAqIEdpdmVuIHRoZSBsaXN0IG9mIHBvZHMgbGV0cyBpdGVyYXRlIHRocm91Z2ggdGhlbSBhbmQgZmluZCBhbGwgcG9kcyBtYXRjaGluZyB0aGUgc2VsZWN0b3JcbiAgICogYW5kIHJldHVybiBjb3VudGVycyBiYXNlZCBvbiB0aGUgc3RhdHVzIG9mIHRoZSBwb2RcbiAgICovXG4gIGV4cG9ydCBmdW5jdGlvbiBjcmVhdGVQb2RDb3VudGVycyhzZWxlY3RvciwgcG9kcywgb3V0cHV0UG9kcyA9IFtdLCBwb2RMaW5rUXVlcnkgPSBudWxsLCBwb2RMaW5rVXJsID0gbnVsbCkge1xuICAgIGlmICghcG9kTGlua1VybCkge1xuICAgICAgcG9kTGlua1VybCA9IFwiL2t1YmVybmV0ZXMvcG9kc1wiO1xuICAgIH1cbiAgICB2YXIgZmlsdGVyRm47XG4gICAgaWYgKGFuZ3VsYXIuaXNGdW5jdGlvbihzZWxlY3RvcikpIHtcbiAgICAgIGZpbHRlckZuID0gc2VsZWN0b3I7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZpbHRlckZuID0gKHBvZCkgPT4gc2VsZWN0b3JNYXRjaGVzKHNlbGVjdG9yLCBnZXRMYWJlbHMocG9kKSk7XG4gICAgfVxuICAgIHZhciBhbnN3ZXIgPSB7XG4gICAgICBwb2RzTGluazogXCJcIixcbiAgICAgIHJlYWR5OiAwLFxuICAgICAgdmFsaWQ6IDAsXG4gICAgICB3YWl0aW5nOiAwLFxuICAgICAgZXJyb3I6IDBcbiAgICB9O1xuICAgIGlmIChzZWxlY3Rvcikge1xuICAgICAgaWYgKCFwb2RMaW5rUXVlcnkpIHtcbiAgICAgICAgcG9kTGlua1F1ZXJ5ID0gS3ViZXJuZXRlcy5sYWJlbHNUb1N0cmluZyhzZWxlY3RvciwgXCIgXCIpO1xuICAgICAgfVxuICAgICAgYW5zd2VyLnBvZHNMaW5rID0gcG9kTGlua1VybCArIFwiP3E9XCIgKyBlbmNvZGVVUklDb21wb25lbnQocG9kTGlua1F1ZXJ5KTtcbiAgICAgIGFuZ3VsYXIuZm9yRWFjaChwb2RzLCBwb2QgPT4ge1xuICAgICAgICBpZiAoZmlsdGVyRm4ocG9kKSkge1xuICAgICAgICAgIG91dHB1dFBvZHMucHVzaChwb2QpO1xuICAgICAgICAgIHZhciBzdGF0dXMgPSBnZXRTdGF0dXMocG9kKTtcbiAgICAgICAgICBpZiAoc3RhdHVzKSB7XG4gICAgICAgICAgICB2YXIgbG93ZXIgPSBzdGF0dXMudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgIGlmIChsb3dlci5zdGFydHNXaXRoKFwicnVuXCIpKSB7XG4gICAgICAgICAgICAgIGlmIChpc1JlYWR5KHBvZCkpIHtcbiAgICAgICAgICAgICAgICBhbnN3ZXIucmVhZHkgKz0gMTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBhbnN3ZXIudmFsaWQgKz0gMTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChsb3dlci5zdGFydHNXaXRoKFwid2FpdFwiKSB8fCBsb3dlci5zdGFydHNXaXRoKFwicGVuZFwiKSkge1xuICAgICAgICAgICAgICBhbnN3ZXIud2FpdGluZyArPSAxO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChsb3dlci5zdGFydHNXaXRoKFwidGVybVwiKSB8fCBsb3dlci5zdGFydHNXaXRoKFwiZXJyb3JcIikgfHwgbG93ZXIuc3RhcnRzV2l0aChcImZhaWxcIikpIHtcbiAgICAgICAgICAgICAgYW5zd2VyLmVycm9yICs9IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGFuc3dlci5lcnJvciArPSAxO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBhbnN3ZXI7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgdGhlIGdpdmVuIGpzb24gaW50byBhbiBhcnJheSBvZiBpdGVtcy4gSWYgdGhlIGpzb24gY29udGFpbnMgYSBuZXN0ZWQgc2V0IG9mIGl0ZW1zIHRoZW4gdGhhdCBpcyBzb3J0ZWQ7IHNvIHRoYXQgc2VydmljZXNcbiAgICogYXJlIHByb2Nlc3NlZCBmaXJzdDsgdGhlbiB0dXJuZWQgaW50byBhbiBhcnJheS4gT3RoZXJ3aXNlIHRoZSBqc29uIGlzIHB1dCBpbnRvIGFuIGFycmF5IHNvIGl0IGNhbiBiZSBwcm9jZXNzZWQgcG9seW1vcnBoaWNhbGx5XG4gICAqL1xuICBleHBvcnQgZnVuY3Rpb24gY29udmVydEt1YmVybmV0ZXNKc29uVG9JdGVtcyhqc29uKSB7XG4gICAgdmFyIGl0ZW1zID0ganNvbi5pdGVtcztcbiAgICBpZiAoYW5ndWxhci5pc0FycmF5KGl0ZW1zKSkge1xuICAgICAgLy8gVE9ETyB3ZSBjb3VsZCBjaGVjayBmb3IgTGlzdCBvciBDb25maWcgdHlwZXMgaGVyZSBhbmQgd2FybiBpZiBub3RcblxuICAgICAgLy8gc29ydCB0aGUgc2VydmljZXMgZmlyc3RcbiAgICAgIHZhciBhbnN3ZXIgPSBbXTtcbiAgICAgIGl0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgaWYgKGl0ZW0ua2luZCA9PT0gXCJTZXJ2aWNlXCIpIHtcbiAgICAgICAgICBhbnN3ZXIucHVzaChpdGVtKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICBpdGVtcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgIGlmIChpdGVtLmtpbmQgIT09IFwiU2VydmljZVwiKSB7XG4gICAgICAgICAgYW5zd2VyLnB1c2goaXRlbSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGFuc3dlcjtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFtqc29uXTtcbiAgICB9XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gaXNWMWJldGExT3IyKCkge1xuICAgIHJldHVybiBkZWZhdWx0QXBpVmVyc2lvbiA9PT0gXCJ2MWJldGExXCIgfHwgZGVmYXVsdEFwaVZlcnNpb24gPT09IFwidjFiZXRhMlwiO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBsaW5rIHRvIHRoZSBkZXRhaWwgcGFnZSBmb3IgdGhlIGdpdmVuIGVudGl0eVxuICAgKi9cbiAgZXhwb3J0IGZ1bmN0aW9uIGVudGl0eVBhZ2VMaW5rKGVudGl0eSkge1xuICAgIGlmIChlbnRpdHkpIHtcbiAgICAgIHZhciB2aWV3TGluayA9IGVudGl0eVtcIiR2aWV3TGlua1wiXTtcbiAgICAgIGlmICh2aWV3TGluaykge1xuICAgICAgICByZXR1cm4gdmlld0xpbms7XG4gICAgICB9XG4gICAgICB2YXIgaWQgPSBnZXROYW1lKGVudGl0eSk7XG4gICAgICB2YXIga2luZCA9IGdldEtpbmQoZW50aXR5KTtcbiAgICAgIGlmIChraW5kICYmIGlkKSB7XG4gICAgICAgIHZhciBwYXRoID0ga2luZC5zdWJzdHJpbmcoMCwgMSkudG9Mb3dlckNhc2UoKSArIGtpbmQuc3Vic3RyaW5nKDEpICsgXCJzXCI7XG4gICAgICAgIHZhciBuYW1lc3BhY2UgPSBnZXROYW1lc3BhY2UoZW50aXR5KTtcbiAgICAgICAgaWYgKG5hbWVzcGFjZSAmJiAhaXNJZ25vcmVOYW1lc3BhY2VLaW5kKGtpbmQpKSB7XG4gICAgICAgICAgcmV0dXJuIENvcmUudXJsKFVybEhlbHBlcnMuam9pbignL2t1YmVybmV0ZXMvbmFtZXNwYWNlJywgbmFtZXNwYWNlLCBwYXRoLCBpZCkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBDb3JlLnVybChVcmxIZWxwZXJzLmpvaW4oJy9rdWJlcm5ldGVzJywgcGF0aCwgaWQpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG5cbiAgZXhwb3J0IGZ1bmN0aW9uIHJlc291cmNlS2luZFRvVXJpUGF0aChraW5kKSB7XG4gICAgdmFyIGtpbmRQYXRoID0ga2luZC50b0xvd2VyQ2FzZSgpICsgXCJzXCI7XG4gICAgaWYgKGtpbmRQYXRoID09PSBcInJlcGxpY2F0aW9uQ29udHJvbGxlcnNcIiAmJiAhaXNWMWJldGExT3IyKCkpIHtcbiAgICAgIGtpbmRQYXRoID0gXCJyZXBsaWNhdGlvbmNvbnRyb2xsZXJzXCI7XG4gICAgfVxuICAgIHJldHVybiBraW5kUGF0aDtcbiAgfVxuXG4gIGZ1bmN0aW9uIGlzSWdub3JlTmFtZXNwYWNlS2luZChraW5kKSB7XG4gICAgcmV0dXJuIGtpbmQgPT09IFwiSG9zdFwiIHx8IGtpbmQgPT09IFwiTWluaW9uXCI7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgcm9vdCBVUkwgZm9yIHRoZSBraW5kXG4gICAqL1xuICBleHBvcnQgZnVuY3Rpb24ga3ViZXJuZXRlc1VybEZvcktpbmQoS3ViZXJuZXRlc0FwaVVSTCwga2luZCwgbmFtZXNwYWNlID0gbnVsbCwgcGF0aCA9IG51bGwpIHtcbiAgICB2YXIgcGF0aFNlZ21lbnQgPSBcIlwiO1xuICAgIGlmIChwYXRoKSB7XG4gICAgICBwYXRoU2VnbWVudCA9IFwiL1wiICsgQ29yZS50cmltTGVhZGluZyhwYXRoLCBcIi9cIik7XG4gICAgfVxuICAgIHZhciBraW5kUGF0aCA9IHJlc291cmNlS2luZFRvVXJpUGF0aChraW5kKTtcbiAgICB2YXIgaWdub3JlTmFtZXNwYWNlID0gaXNJZ25vcmVOYW1lc3BhY2VLaW5kKGtpbmQpO1xuICAgIGlmIChpc1YxYmV0YTFPcjIoKSB8fCBpZ25vcmVOYW1lc3BhY2UpIHtcbiAgICAgIHZhciBwb3N0Zml4ID0gXCJcIjtcbiAgICAgIGlmIChuYW1lc3BhY2UgJiYgIWlnbm9yZU5hbWVzcGFjZSkge1xuICAgICAgICBwb3N0Zml4ID0gXCI/bmFtZXNwYWNlPVwiICsgbmFtZXNwYWNlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIFVybEhlbHBlcnMuam9pbihLdWJlcm5ldGVzQXBpVVJMLCBraW5kUGF0aCwgcGF0aFNlZ21lbnQsIHBvc3RmaXgpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gVXJsSGVscGVycy5qb2luKEt1YmVybmV0ZXNBcGlVUkwsIFwiL25hbWVzcGFjZXMvXCIsIG5hbWVzcGFjZSAsIGtpbmRQYXRoLCBwYXRoU2VnbWVudCk7XG4gICAgfVxuICB9O1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBiYXNlIFVSTCBmb3IgdGhlIGtpbmQgb2Yga3ViZXJuZXRlcyByZXNvdXJjZSBvciBudWxsIGlmIGl0IGNhbm5vdCBiZSBmb3VuZFxuICAgKi9cbiAgZXhwb3J0IGZ1bmN0aW9uIGt1YmVybmV0ZXNVcmxGb3JJdGVtS2luZChLdWJlcm5ldGVzQXBpVVJMLCBqc29uKSB7XG4gICAgdmFyIGtpbmQgPSBqc29uLmtpbmQ7XG4gICAgaWYgKGtpbmQpIHtcbiAgICAgIHJldHVybiBrdWJlcm5ldGVzVXJsRm9yS2luZChLdWJlcm5ldGVzQXBpVVJMLCBraW5kLCBqc29uLm5hbWVzcGFjZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxvZy53YXJuKFwiSWdub3JpbmcgbWlzc2luZyBraW5kIFwiICsga2luZCArIFwiIGZvciBrdWJlcm5ldGVzIGpzb246IFwiICsgYW5ndWxhci50b0pzb24oanNvbikpO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGt1YmVybmV0ZXNQcm94eVVybEZvclNlcnZpY2UoS3ViZXJuZXRlc0FwaVVSTCwgc2VydmljZSwgcGF0aCA9IG51bGwpIHtcbiAgICB2YXIgcGF0aFNlZ21lbnQgPSBcIlwiO1xuICAgIGlmIChwYXRoKSB7XG4gICAgICBwYXRoU2VnbWVudCA9IFwiL1wiICsgQ29yZS50cmltTGVhZGluZyhwYXRoLCBcIi9cIik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHBhdGhTZWdtZW50ID0gXCIvXCI7XG4gICAgfVxuICAgIHZhciBuYW1lc3BhY2UgPSBnZXROYW1lc3BhY2Uoc2VydmljZSk7XG4gICAgaWYgKGlzVjFiZXRhMU9yMigpKSB7XG4gICAgICB2YXIgcG9zdGZpeCA9IFwiP25hbWVzcGFjZT1cIiArIG5hbWVzcGFjZTtcbiAgICAgIHJldHVybiBVcmxIZWxwZXJzLmpvaW4oS3ViZXJuZXRlc0FwaVVSTCwgXCIvcHJveHlcIiwgIGt1YmVybmV0ZXNOYW1lc3BhY2VQYXRoKCksIFwiL3NlcnZpY2VzL1wiICsgZ2V0TmFtZShzZXJ2aWNlKSArIHBhdGhTZWdtZW50ICsgcG9zdGZpeCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBVcmxIZWxwZXJzLmpvaW4oS3ViZXJuZXRlc0FwaVVSTCwgXCIvcHJveHkvbmFtZXNwYWNlcy9cIiwgbmFtZXNwYWNlLCBcIi9zZXJ2aWNlcy9cIiArIGdldE5hbWUoc2VydmljZSkgKyBwYXRoU2VnbWVudCk7XG4gICAgfVxuICB9XG5cblxuICBleHBvcnQgZnVuY3Rpb24ga3ViZXJuZXRlc1Byb3h5VXJsRm9yU2VydmljZUN1cnJlbnROYW1lc3BhY2Uoc2VydmljZSwgcGF0aCA9IG51bGwpIHtcbiAgICB2YXIgYXBpUHJlZml4ID0gVXJsSGVscGVycy5qb2luKGt1YmVybmV0ZXNBcGlVcmwoKSk7XG4gICAgcmV0dXJuIGt1YmVybmV0ZXNQcm94eVVybEZvclNlcnZpY2UoYXBpUHJlZml4LCBzZXJ2aWNlLCBwYXRoKTtcblxuICB9XG4gIGV4cG9ydCBmdW5jdGlvbiBidWlsZENvbmZpZ1Jlc3RVcmwoaWQpIHtcbiAgICByZXR1cm4gVXJsSGVscGVycy5qb2luKGJ1aWxkQ29uZmlnc1Jlc3RVUkwoKSwgaWQpO1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGRlcGxveW1lbnRDb25maWdSZXN0VXJsKGlkKSB7XG4gICAgcmV0dXJuIFVybEhlbHBlcnMuam9pbihkZXBsb3ltZW50Q29uZmlnc1Jlc3RVUkwoKSwgaWQpO1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGltYWdlUmVwb3NpdG9yeVJlc3RVcmwoaWQpIHtcbiAgICByZXR1cm4gVXJsSGVscGVycy5qb2luKGltYWdlUmVwb3NpdG9yaWVzUmVzdFVSTCgpLCBpZCk7XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gYnVpbGRSZXN0VXJsKGlkKSB7XG4gICAgcmV0dXJuIFVybEhlbHBlcnMuam9pbihidWlsZHNSZXN0VVJMKCksIGlkKTtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBidWlsZExvZ3NSZXN0VXJsKGlkKSB7XG4gICAgcmV0dXJuIFVybEhlbHBlcnMuam9pbihidWlsZHNSZXN0VVJMKCksIGlkLCBcImxvZ1wiKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIHRoZSBnaXZlbiBhcHBsaWNhdGlvbiBKU09OXG4gICAqL1xuICBleHBvcnQgZnVuY3Rpb24gcnVuQXBwKCRsb2NhdGlvbiwgJHNjb3BlLCAkaHR0cCwgS3ViZXJuZXRlc0FwaVVSTCwganNvbiwgbmFtZSA9IFwiQXBwXCIsIG9uU3VjY2Vzc0ZuID0gbnVsbCwgbmFtZXNwYWNlID0gbnVsbCwgb25Db21wbGV0ZUZuID0gbnVsbCkge1xuICAgIGlmIChqc29uKSB7XG4gICAgICBpZiAoYW5ndWxhci5pc1N0cmluZyhqc29uKSkge1xuICAgICAgICBqc29uID0gYW5ndWxhci5mcm9tSnNvbihqc29uKTtcbiAgICAgIH1cbiAgICAgIG5hbWUgPSBuYW1lIHx8IFwiQXBwXCI7XG4gICAgICB2YXIgcG9zdGZpeCA9IG5hbWVzcGFjZSA/IFwiIGluIG5hbWVzcGFjZSBcIiArIG5hbWVzcGFjZSA6IFwiXCI7XG4gICAgICBDb3JlLm5vdGlmaWNhdGlvbignaW5mbycsIFwiUnVubmluZyBcIiArIG5hbWUgKyBwb3N0Zml4KTtcblxuICAgICAgdmFyIGl0ZW1zID0gY29udmVydEt1YmVybmV0ZXNKc29uVG9JdGVtcyhqc29uKTtcbiAgICAgIGFuZ3VsYXIuZm9yRWFjaChpdGVtcywgKGl0ZW0pID0+IHtcbiAgICAgICAgdmFyIHVybCA9IGt1YmVybmV0ZXNVcmxGb3JJdGVtS2luZChLdWJlcm5ldGVzQXBpVVJMLCBpdGVtKTtcbiAgICAgICAgaWYgKHVybCkge1xuICAgICAgICAgICRodHRwLnBvc3QodXJsLCBpdGVtKS5cbiAgICAgICAgICAgIHN1Y2Nlc3MoZnVuY3Rpb24gKGRhdGEsIHN0YXR1cywgaGVhZGVycywgY29uZmlnKSB7XG4gICAgICAgICAgICAgIGxvZy5kZWJ1ZyhcIkdvdCBzdGF0dXM6IFwiICsgc3RhdHVzICsgXCIgb24gdXJsOiBcIiArIHVybCArIFwiIGRhdGE6IFwiICsgZGF0YSArIFwiIGFmdGVyIHBvc3Rpbmc6IFwiICsgYW5ndWxhci50b0pzb24oaXRlbSkpO1xuICAgICAgICAgICAgICBpZiAoYW5ndWxhci5pc0Z1bmN0aW9uKG9uQ29tcGxldGVGbikpIHtcbiAgICAgICAgICAgICAgICBvbkNvbXBsZXRlRm4oKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBDb3JlLiRhcHBseSgkc2NvcGUpO1xuICAgICAgICAgICAgfSkuXG4gICAgICAgICAgZXJyb3IoZnVuY3Rpb24gKGRhdGEsIHN0YXR1cywgaGVhZGVycywgY29uZmlnKSB7XG4gICAgICAgICAgICB2YXIgbWVzc2FnZSA9IG51bGw7XG4gICAgICAgICAgICBpZiAoYW5ndWxhci5pc09iamVjdChkYXRhKSkge1xuICAgICAgICAgICAgICBtZXNzYWdlID0gZGF0YS5tZXNzYWdlO1xuICAgICAgICAgICAgICB2YXIgcmVhc29uID0gZGF0YS5yZWFzb247XG4gICAgICAgICAgICAgIGlmIChyZWFzb24gPT09IFwiQWxyZWFkeUV4aXN0c1wiKSB7XG4gICAgICAgICAgICAgICAgLy8gbGV0cyBpZ25vcmUgZHVwbGljYXRlc1xuICAgICAgICAgICAgICAgIGxvZy5kZWJ1ZyhcImVudGl0eSBhbHJlYWR5IGV4aXN0cyBhdCBcIiArIHVybCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIW1lc3NhZ2UpIHtcbiAgICAgICAgICAgICAgbWVzc2FnZSA9IFwiRmFpbGVkIHRvIFBPU1QgdG8gXCIgKyB1cmwgKyBcIiBnb3Qgc3RhdHVzOiBcIiArIHN0YXR1cztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxvZy53YXJuKFwiRmFpbGVkIHRvIHNhdmUgXCIgKyB1cmwgKyBcIiBzdGF0dXM6IFwiICsgc3RhdHVzICsgXCIgcmVzcG9uc2U6IFwiICsgYW5ndWxhci50b0pzb24oZGF0YSwgdHJ1ZSkpO1xuICAgICAgICAgICAgQ29yZS5ub3RpZmljYXRpb24oJ2Vycm9yJywgbWVzc2FnZSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG5cbiAgLyoqXG4gICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgY3VycmVudCBzdGF0dXMgb2YgdGhlIHBvZCBpcyBydW5uaW5nXG4gICAqL1xuICBleHBvcnQgZnVuY3Rpb24gaXNSdW5uaW5nKHBvZEN1cnJlbnRTdGF0ZSkge1xuICAgIHZhciBzdGF0dXMgPSAocG9kQ3VycmVudFN0YXRlIHx8IHt9KS5waGFzZTtcbiAgICBpZiAoc3RhdHVzKSB7XG4gICAgICB2YXIgbG93ZXIgPSBzdGF0dXMudG9Mb3dlckNhc2UoKTtcbiAgICAgIHJldHVybiBsb3dlci5zdGFydHNXaXRoKFwicnVuXCIpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgbGFiZWxzIG9iamVjdCBoYXMgYWxsIG9mIHRoZSBrZXkvdmFsdWUgcGFpcnMgZnJvbSB0aGUgc2VsZWN0b3JcbiAgICovXG4gIGV4cG9ydCBmdW5jdGlvbiBzZWxlY3Rvck1hdGNoZXMoc2VsZWN0b3IsIGxhYmVscykge1xuICAgIGlmIChhbmd1bGFyLmlzT2JqZWN0KGxhYmVscykpIHtcbiAgICAgIHZhciBhbnN3ZXIgPSB0cnVlO1xuICAgICAgdmFyIGNvdW50ID0gMDtcbiAgICAgIGFuZ3VsYXIuZm9yRWFjaChzZWxlY3RvciwgKHZhbHVlLCBrZXkpID0+IHtcbiAgICAgICAgY291bnQrKztcbiAgICAgICAgaWYgKGFuc3dlciAmJiBsYWJlbHNba2V5XSAhPT0gdmFsdWUpIHtcbiAgICAgICAgICBhbnN3ZXIgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICByZXR1cm4gYW5zd2VyICYmIGNvdW50ID4gMDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBzZXJ2aWNlIHJlZ2lzdHJ5XG4gICAqL1xuICBleHBvcnQgZnVuY3Rpb24gZ2V0U2VydmljZVJlZ2lzdHJ5KCkge1xuICAgIHZhciBpbmplY3RvciA9IEhhd3Rpb0NvcmUuaW5qZWN0b3I7XG4gICAgcmV0dXJuIGluamVjdG9yID8gaW5qZWN0b3IuZ2V0KFwiU2VydmljZVJlZ2lzdHJ5XCIpIDogbnVsbDtcbiAgfVxuXG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBsaW5rIHRvIHRoZSBraWJhbmEgbG9ncyB3ZWIgYXBwbGljYXRpb25cbiAgICovXG4gIGV4cG9ydCBmdW5jdGlvbiBraWJhbmFMb2dzTGluayhTZXJ2aWNlUmVnaXN0cnkpIHtcbiAgICB2YXIgbGluayA9IFNlcnZpY2VSZWdpc3RyeS5zZXJ2aWNlTGluayhraWJhbmFTZXJ2aWNlTmFtZSk7XG4gICAgaWYgKGxpbmspIHtcbiAgICAgIGlmICghbGluay5lbmRzV2l0aChcIi9cIikpIHtcbiAgICAgICAgbGluayArPSBcIi9cIjtcbiAgICAgIH1cbiAgICAgIHJldHVybiBsaW5rICsgXCIjL2Rhc2hib2FyZC9GYWJyaWM4XCI7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBvcGVuTG9nc0ZvclBvZHMoU2VydmljZVJlZ2lzdHJ5LCAkd2luZG93LCBuYW1lc3BhY2UsIHBvZHMpIHtcbiAgICB2YXIgbGluayA9IGtpYmFuYUxvZ3NMaW5rKFNlcnZpY2VSZWdpc3RyeSk7XG4gICAgaWYgKGxpbmspIHtcbiAgICAgIHZhciBxdWVyeSA9IFwiXCI7XG4gICAgICB2YXIgY291bnQgPSAwO1xuICAgICAgYW5ndWxhci5mb3JFYWNoKHBvZHMsIChpdGVtKSA9PiB7XG4gICAgICAgIHZhciBpZCA9IGdldE5hbWUoaXRlbSk7XG4gICAgICAgIGlmIChpZCkge1xuICAgICAgICAgIHZhciBzcGFjZSA9IHF1ZXJ5ID8gXCIgT1IgXCIgOiBcIlwiO1xuICAgICAgICAgIGNvdW50Kys7XG4gICAgICAgICAgcXVlcnkgKz0gc3BhY2UgKyAnXCInICsgaWQgKyAnXCInO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIGlmIChxdWVyeSkge1xuICAgICAgICBpZiAoY291bnQgPiAxKSB7XG4gICAgICAgICAgcXVlcnkgPSBcIihcIiArIHF1ZXJ5ICsgXCIpXCI7XG4gICAgICAgIH1cbiAgICAgICAgcXVlcnkgPSAna3ViZXJuZXRlcy5uYW1lc3BhY2U6XCInICsgbmFtZXNwYWNlICsgJ1wiIEFORCBrdWJlcm5ldGVzLnBvZF9uYW1lOicgKyBxdWVyeTtcbiAgICAgICAgbGluayArPSBcIj9fYT0ocXVlcnk6KHF1ZXJ5X3N0cmluZzoocXVlcnk6J1wiICsgcXVlcnkgKyBcIicpKSlcIjtcbiAgICAgICAgdmFyIG5ld1dpbmRvdyA9ICR3aW5kb3cub3BlbihsaW5rLCBcInZpZXdMb2dzXCIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiByZXNpemVDb250cm9sbGVyKCRodHRwLCBLdWJlcm5ldGVzQXBpVVJMLCByZXBsaWNhdGlvbkNvbnRyb2xsZXIsIG5ld1JlcGxpY2FzLCBvbkNvbXBsZXRlRm4gPSBudWxsKSB7XG4gICAgdmFyIGlkID0gZ2V0TmFtZShyZXBsaWNhdGlvbkNvbnRyb2xsZXIpO1xuICAgIHZhciBuYW1lc3BhY2UgPSBnZXROYW1lc3BhY2UocmVwbGljYXRpb25Db250cm9sbGVyKSB8fCBcIlwiO1xuICAgIHZhciB1cmwgPSBrdWJlcm5ldGVzVXJsRm9yS2luZChLdWJlcm5ldGVzQXBpVVJMLCBcIlJlcGxpY2F0aW9uQ29udHJvbGxlclwiLCBuYW1lc3BhY2UsIGlkKTtcbiAgICAkaHR0cC5nZXQodXJsKS5cbiAgICAgIHN1Y2Nlc3MoZnVuY3Rpb24gKGRhdGEsIHN0YXR1cywgaGVhZGVycywgY29uZmlnKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgdmFyIGRlc2lyZWRTdGF0ZSA9IGRhdGEuc3BlYztcbiAgICAgICAgICBpZiAoIWRlc2lyZWRTdGF0ZSkge1xuICAgICAgICAgICAgZGVzaXJlZFN0YXRlID0ge307XG4gICAgICAgICAgICBkYXRhLnNwZWMgPSBkZXNpcmVkU3RhdGU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGRlc2lyZWRTdGF0ZS5yZXBsaWNhcyA9IG5ld1JlcGxpY2FzO1xuICAgICAgICAgICRodHRwLnB1dCh1cmwsIGRhdGEpLlxuICAgICAgICAgICAgc3VjY2VzcyhmdW5jdGlvbiAoZGF0YSwgc3RhdHVzLCBoZWFkZXJzLCBjb25maWcpIHtcbiAgICAgICAgICAgICAgbG9nLmRlYnVnKFwidXBkYXRlZCBjb250cm9sbGVyIFwiICsgdXJsKTtcbiAgICAgICAgICAgICAgaWYgKGFuZ3VsYXIuaXNGdW5jdGlvbihvbkNvbXBsZXRlRm4pKSB7XG4gICAgICAgICAgICAgICAgb25Db21wbGV0ZUZuKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLlxuICAgICAgICAgIGVycm9yKGZ1bmN0aW9uIChkYXRhLCBzdGF0dXMsIGhlYWRlcnMsIGNvbmZpZykge1xuICAgICAgICAgICAgbG9nLndhcm4oXCJGYWlsZWQgdG8gc2F2ZSBcIiArIHVybCArIFwiIFwiICsgZGF0YSArIFwiIFwiICsgc3RhdHVzKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSkuXG4gICAgICBlcnJvcihmdW5jdGlvbiAoZGF0YSwgc3RhdHVzLCBoZWFkZXJzLCBjb25maWcpIHtcbiAgICAgICAgbG9nLndhcm4oXCJGYWlsZWQgdG8gbG9hZCBcIiArIHVybCArIFwiIFwiICsgZGF0YSArIFwiIFwiICsgc3RhdHVzKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIHN0YXR1c1RleHRUb0Nzc0NsYXNzKHRleHQsIHJlYWR5ID0gZmFsc2UpIHtcbiAgICBpZiAodGV4dCkge1xuICAgICAgdmFyIGxvd2VyID0gdGV4dC50b0xvd2VyQ2FzZSgpO1xuICAgICAgaWYgKGxvd2VyLnN0YXJ0c1dpdGgoXCJydW5cIikgfHwgbG93ZXIuc3RhcnRzV2l0aChcIm9rXCIpKSB7XG4gICAgICAgIGlmICghcmVhZHkpIHtcbiAgICAgICAgICByZXR1cm4gXCJmYSBmYS1zcGlubmVyIGZhLXNwaW4gZ3JlZW5cIjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gJ2ZhIGZhLXBsYXktY2lyY2xlIGdyZWVuJztcbiAgICAgIH0gZWxzZSBpZiAobG93ZXIuc3RhcnRzV2l0aChcIndhaXRcIikgfHwgbG93ZXIuc3RhcnRzV2l0aChcInBlbmRcIikpIHtcbiAgICAgICAgcmV0dXJuICdmYSBmYS1kb3dubG9hZCc7XG4gICAgICB9IGVsc2UgaWYgKGxvd2VyLnN0YXJ0c1dpdGgoXCJ0ZXJtXCIpIHx8IGxvd2VyLnN0YXJ0c1dpdGgoXCJlcnJvclwiKSB8fCBsb3dlci5zdGFydHNXaXRoKFwiZmFpbFwiKSkge1xuICAgICAgICByZXR1cm4gJ2ZhIGZhLW9mZiBvcmFuZ2UnO1xuICAgICAgfSBlbHNlIGlmIChsb3dlci5zdGFydHNXaXRoKFwic3VjY2VlZGVkXCIpKSB7XG4gICAgICAgIHJldHVybiAnZmEgZmEtY2hlY2stY2lyY2xlLW8gZ3JlZW4nO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gJ2ZhIGZhLXF1ZXN0aW9uIHJlZCc7XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gcG9kU3RhdHVzKHBvZCkge1xuICAgIHJldHVybiBnZXRTdGF0dXMocG9kKTtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBpc1JlYWR5KHBvZCkge1xuICAgIHZhciBzdGF0dXMgPSBwb2Quc3RhdHVzIHx8IHt9O1xuICAgIHZhciBhbnN3ZXIgPSBmYWxzZTtcbiAgICBhbmd1bGFyLmZvckVhY2goc3RhdHVzLmNvbmRpdGlvbnMsIChjb25kaXRpb24pID0+IHtcbiAgICAgIHZhciB0ID0gY29uZGl0aW9uLnR5cGU7XG4gICAgICBpZiAodCAmJiB0ID09PSBcIlJlYWR5XCIpIHtcbiAgICAgICAgdmFyIHN0YXR1cyA9IGNvbmRpdGlvbi5zdGF0dXM7XG4gICAgICAgIGlmIChzdGF0dXMgPT09IFwiVHJ1ZVwiKSB7XG4gICAgICAgICAgYW5zd2VyID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBhbnN3ZXI7XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gY3JlYXRlQXBwVmlld1BvZENvdW50ZXJzKGFwcFZpZXcpIHtcbiAgICB2YXIgYXJyYXkgPSBbXTtcbiAgICB2YXIgbWFwID0ge307XG4gICAgdmFyIHBvZHMgPSBhcHBWaWV3LnBvZHM7XG4gICAgdmFyIGxvd2VzdERhdGUgPSBudWxsO1xuICAgIGFuZ3VsYXIuZm9yRWFjaChwb2RzLCBwb2QgPT4ge1xuICAgICAgdmFyIHNlbGVjdG9yID0gZ2V0TGFiZWxzKHBvZCk7XG4gICAgICB2YXIgc2VsZWN0b3JUZXh0ID0gS3ViZXJuZXRlcy5sYWJlbHNUb1N0cmluZyhzZWxlY3RvciwgXCIgXCIpO1xuICAgICAgdmFyIGFuc3dlciA9IG1hcFtzZWxlY3Rvcl07XG4gICAgICBpZiAoIWFuc3dlcikge1xuICAgICAgICBhbnN3ZXIgPSB7XG4gICAgICAgICAgbGFiZWxUZXh0OiBzZWxlY3RvclRleHQsXG4gICAgICAgICAgcG9kc0xpbms6IENvcmUudXJsKFwiL2t1YmVybmV0ZXMvcG9kcz9xPVwiICsgZW5jb2RlVVJJQ29tcG9uZW50KHNlbGVjdG9yVGV4dCkpLFxuICAgICAgICAgIHZhbGlkOiAwLFxuICAgICAgICAgIHdhaXRpbmc6IDAsXG4gICAgICAgICAgZXJyb3I6IDBcbiAgICAgICAgfTtcbiAgICAgICAgbWFwW3NlbGVjdG9yXSA9IGFuc3dlcjtcbiAgICAgICAgYXJyYXkucHVzaChhbnN3ZXIpO1xuICAgICAgfVxuICAgICAgdmFyIHN0YXR1cyA9IChwb2RTdGF0dXMocG9kKSB8fCBcIkVycm9yXCIpLnRvTG93ZXJDYXNlKCk7XG4gICAgICBpZiAoc3RhdHVzLnN0YXJ0c1dpdGgoXCJydW5cIikgfHwgc3RhdHVzLnN0YXJ0c1dpdGgoXCJva1wiKSkge1xuICAgICAgICBhbnN3ZXIudmFsaWQgKz0gMTtcbiAgICAgIH0gZWxzZSBpZiAoc3RhdHVzLnN0YXJ0c1dpdGgoXCJ3YWl0XCIpIHx8IHN0YXR1cy5zdGFydHNXaXRoKFwicHduZFwiKSkge1xuICAgICAgICBhbnN3ZXIud2FpdGluZyArPSAxO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYW5zd2VyLmVycm9yICs9IDE7XG4gICAgICB9XG4gICAgICB2YXIgY3JlYXRpb25UaW1lc3RhbXAgPSBnZXRDcmVhdGlvblRpbWVzdGFtcChwb2QpO1xuICAgICAgaWYgKGNyZWF0aW9uVGltZXN0YW1wKSB7XG4gICAgICAgIHZhciBkID0gbmV3IERhdGUoY3JlYXRpb25UaW1lc3RhbXApO1xuICAgICAgICBpZiAoIWxvd2VzdERhdGUgfHwgZCA8IGxvd2VzdERhdGUpIHtcbiAgICAgICAgICBsb3dlc3REYXRlID0gZDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIGFwcFZpZXcuJGNyZWF0aW9uRGF0ZSA9IGxvd2VzdERhdGU7XG4gICAgcmV0dXJuIGFycmF5O1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUFwcFZpZXdTZXJ2aWNlVmlld3MoYXBwVmlldykge1xuICAgIHZhciBhcnJheSA9IFtdO1xuICAgIHZhciBwb2RzID0gYXBwVmlldy5wb2RzO1xuICAgIGFuZ3VsYXIuZm9yRWFjaChwb2RzLCBwb2QgPT4ge1xuICAgICAgdmFyIGlkID0gZ2V0TmFtZShwb2QpO1xuICAgICAgaWYgKGlkKSB7XG4gICAgICAgIHZhciBhYmJyZXYgPSBpZDtcbiAgICAgICAgdmFyIGlkeCA9IGlkLmluZGV4T2YoXCItXCIpO1xuICAgICAgICBpZiAoaWR4ID4gMSkge1xuICAgICAgICAgIGFiYnJldiA9IGlkLnN1YnN0cmluZygwLCBpZHgpO1xuICAgICAgICB9XG4gICAgICAgIHBvZC5pZEFiYnJldiA9IGFiYnJldjtcbiAgICAgIH1cbiAgICAgIHBvZC5zdGF0dXNDbGFzcyA9IHN0YXR1c1RleHRUb0Nzc0NsYXNzKHBvZFN0YXR1cyhwb2QpLCBpc1JlYWR5KHBvZCkpO1xuICAgIH0pO1xuXG4gICAgdmFyIHNlcnZpY2VzID0gYXBwVmlldy5zZXJ2aWNlcyB8fCBbXTtcbiAgICB2YXIgcmVwbGljYXRpb25Db250cm9sbGVycyA9IGFwcFZpZXcucmVwbGljYXRpb25Db250cm9sbGVycyB8fCBbXTtcbiAgICB2YXIgc2l6ZSA9IE1hdGgubWF4KHNlcnZpY2VzLmxlbmd0aCwgcmVwbGljYXRpb25Db250cm9sbGVycy5sZW5ndGgsIDEpO1xuICAgIHZhciBhcHBOYW1lID0gYXBwVmlldy4kaW5mby5uYW1lO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7XG4gICAgICB2YXIgc2VydmljZSA9IHNlcnZpY2VzW2ldO1xuICAgICAgdmFyIHJlcGxpY2F0aW9uQ29udHJvbGxlciA9IHJlcGxpY2F0aW9uQ29udHJvbGxlcnNbaV07XG4gICAgICB2YXIgY29udHJvbGxlcklkID0gZ2V0TmFtZShyZXBsaWNhdGlvbkNvbnRyb2xsZXIpO1xuICAgICAgdmFyIG5hbWUgPSBnZXROYW1lKHNlcnZpY2UpIHx8IGNvbnRyb2xsZXJJZDtcbiAgICAgIHZhciBhZGRyZXNzID0gQ29yZS5wYXRoR2V0KHNlcnZpY2UsIFtcInNwZWNcIiwgXCJwb3J0YWxJUFwiXSk7XG4gICAgICBpZiAoIW5hbWUgJiYgcG9kcy5sZW5ndGgpIHtcbiAgICAgICAgbmFtZSA9IHBvZHNbMF0uaWRBYmJyZXY7XG4gICAgICB9XG4gICAgICBpZiAoIWFwcFZpZXcuJGluZm8ubmFtZSkge1xuICAgICAgICBhcHBWaWV3LiRpbmZvLm5hbWUgPSBuYW1lO1xuICAgICAgfVxuICAgICAgaWYgKCFhcHBWaWV3LmlkICYmIHBvZHMubGVuZ3RoKSB7XG4gICAgICAgIGFwcFZpZXcuaWQgPSBnZXROYW1lKHBvZHNbMF0pO1xuICAgICAgfVxuICAgICAgaWYgKGkgPiAwKSB7XG4gICAgICAgIGFwcE5hbWUgPSBuYW1lO1xuICAgICAgfVxuICAgICAgdmFyIHBvZENvdW50ID0gcG9kcy5sZW5ndGg7XG4gICAgICB2YXIgcG9kQ291bnRUZXh0ID0gcG9kQ291bnQgKyBcIiBwb2RcIiArIChwb2RDb3VudCA+IDEgPyBcInNcIiA6IFwiXCIpO1xuICAgICAgdmFyIHZpZXcgPSB7XG4gICAgICAgIGFwcE5hbWU6IGFwcE5hbWUgfHwgbmFtZSxcbiAgICAgICAgbmFtZTogbmFtZSxcbiAgICAgICAgY3JlYXRlZERhdGU6IGFwcFZpZXcuJGNyZWF0aW9uRGF0ZSxcbiAgICAgICAgcG9kQ291bnQ6IHBvZENvdW50LFxuICAgICAgICBwb2RDb3VudFRleHQ6IHBvZENvdW50VGV4dCxcbiAgICAgICAgYWRkcmVzczogYWRkcmVzcyxcbiAgICAgICAgY29udHJvbGxlcklkOiBjb250cm9sbGVySWQsXG4gICAgICAgIHNlcnZpY2U6IHNlcnZpY2UsXG4gICAgICAgIHJlcGxpY2F0aW9uQ29udHJvbGxlcjogcmVwbGljYXRpb25Db250cm9sbGVyLFxuICAgICAgICBwb2RzOiBwb2RzXG4gICAgICB9O1xuICAgICAgYXJyYXkucHVzaCh2aWV3KTtcbiAgICB9XG4gICAgcmV0dXJuIGFycmF5O1xuICB9XG5cbiAgLyoqXG4gICAqIGNvbnZlcnRzIGEgZ2l0IHBhdGggaW50byBhbiBhY2Nlc3NpYmxlIFVSTCBmb3IgdGhlIGJyb3dzZXJcbiAgICovXG4gIGV4cG9ydCBmdW5jdGlvbiBnaXRQYXRoVG9VcmwoaWNvblBhdGgsIGJyYW5jaCA9IFwibWFzdGVyXCIpIHtcbiAgICByZXR1cm4gKEhhd3Rpb0NvcmUuaW5qZWN0b3IuZ2V0KCdBcHBMaWJyYXJ5VVJMJykgfHwgJycpICsgXCIvZ2l0L1wiICsgYnJhbmNoICsgaWNvblBhdGg7XG4gIH1cblxuICBmdW5jdGlvbiBhc0RhdGUodmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUgPyBuZXcgRGF0ZSh2YWx1ZSkgOiBudWxsO1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGVucmljaEJ1aWxkQ29uZmlnKGJ1aWxkQ29uZmlnLCBzb3J0ZWRCdWlsZHMpIHtcbiAgICBpZiAoYnVpbGRDb25maWcpIHtcbiAgICAgIHZhciB0cmlnZ2VyVXJsOnN0cmluZyA9IG51bGw7XG4gICAgICB2YXIgbWV0YWRhdGEgPSBidWlsZENvbmZpZy5tZXRhZGF0YSB8fCB7fTtcbiAgICAgIHZhciBuYW1lID0gbWV0YWRhdGEubmFtZTtcbiAgICAgIGJ1aWxkQ29uZmlnLiRuYW1lID0gbmFtZTtcbiAgICAgIHZhciBwcm9qZWN0TGluayA9IERldmVsb3Blci5wcm9qZWN0TGluayhuYW1lKTtcbiAgICAgIHZhciBucyA9IG1ldGFkYXRhLm5hbWVzcGFjZSB8fCBjdXJyZW50S3ViZXJuZXRlc05hbWVzcGFjZSgpO1xuICAgICAgYnVpbGRDb25maWcuJG5hbWVzcGFjZSA9IG5zO1xuICAgICAgYnVpbGRDb25maWcuZW52aXJvbm1lbnRzID0gW107XG4gICAgICBidWlsZENvbmZpZy4kY3JlYXRpb25EYXRlID0gYXNEYXRlKEt1YmVybmV0ZXMuZ2V0Q3JlYXRpb25UaW1lc3RhbXAoYnVpbGRDb25maWcpKTtcbiAgICAgIGJ1aWxkQ29uZmlnLiRsYWJlbHNUZXh0ID0gS3ViZXJuZXRlcy5sYWJlbHNUb1N0cmluZyhnZXRMYWJlbHMoYnVpbGRDb25maWcpKTtcblxuICAgICAgaWYgKG5hbWUpIHtcbiAgICAgICAgYnVpbGRDb25maWcuJHZpZXdMaW5rID0gVXJsSGVscGVycy5qb2luKFwid29ya3NwYWNlc1wiLCBucywgXCJwcm9qZWN0c1wiLCBuYW1lLCBcImVudmlyb25tZW50c1wiKTtcblxuICAgICAgICBhbmd1bGFyLmZvckVhY2goW2ZhbHNlLCB0cnVlXSwgKGZsYWcpID0+IHtcbiAgICAgICAgICBhbmd1bGFyLmZvckVhY2goYnVpbGRDb25maWcudHJpZ2dlcnMsICh0cmlnZ2VyKSA9PiB7XG4gICAgICAgICAgICBpZiAoIXRyaWdnZXJVcmwpIHtcbiAgICAgICAgICAgICAgdmFyIHR5cGUgPSB0cmlnZ2VyLnR5cGU7XG4gICAgICAgICAgICAgIGlmICh0eXBlID09PSBcImdlbmVyaWNcIiB8fCBmbGFnKSB7XG4gICAgICAgICAgICAgICAgdmFyIGdlbmVyaWMgPSB0cmlnZ2VyW3R5cGVdO1xuICAgICAgICAgICAgICAgIGlmICh0eXBlICYmIGdlbmVyaWMpIHtcbiAgICAgICAgICAgICAgICAgIHZhciBzZWNyZXQgPSBnZW5lcmljLnNlY3JldDtcbiAgICAgICAgICAgICAgICAgIGlmIChzZWNyZXQpIHtcbiAgICAgICAgICAgICAgICAgICAgdHJpZ2dlclVybCA9IFVybEhlbHBlcnMuam9pbihidWlsZENvbmZpZ0hvb2tzUmVzdFVSTCgpLCBuYW1lLCBzZWNyZXQsIHR5cGUpO1xuICAgICAgICAgICAgICAgICAgICBidWlsZENvbmZpZy4kdHJpZ2dlclVybCA9IHRyaWdnZXJVcmw7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIGxldHMgZmluZCB0aGUgbGF0ZXN0IGJ1aWxkLi4uXG4gICAgICAgIGlmIChzb3J0ZWRCdWlsZHMpIHtcbiAgICAgICAgICBidWlsZENvbmZpZy4kbGFzdEJ1aWxkID0gXy5maW5kKHNvcnRlZEJ1aWxkcywge1xuICAgICAgICAgICAgbWV0YWRhdGE6IHtcbiAgICAgICAgICAgICAgbGFiZWxzOiB7XG4gICAgICAgICAgICAgICAgYnVpbGRjb25maWc6IG5hbWVcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB2YXIgJGZhYnJpYzhWaWV3cyA9IHt9O1xuXG4gICAgICBmdW5jdGlvbiBkZWZhdWx0UHJvcGVydGllc0lmTm90RXhpc3QobmFtZSwgb2JqZWN0LCBhdXRvQ3JlYXRlID0gZmFsc2UpIHtcbiAgICAgICAgdmFyIHZpZXcgPSAkZmFicmljOFZpZXdzW25hbWVdO1xuICAgICAgICBpZiAoYXV0b0NyZWF0ZSAmJiAhdmlldykge1xuICAgICAgICAgIHZpZXcgPSB7fVxuICAgICAgICAgICRmYWJyaWM4Vmlld3NbbmFtZV0gPSB2aWV3O1xuICAgICAgICB9XG4gICAgICAgIGlmICh2aWV3KSB7XG4gICAgICAgICAgYW5ndWxhci5mb3JFYWNoKG9iamVjdCwgKHZhbHVlLCBwcm9wZXJ0eSkgPT4ge1xuICAgICAgICAgICAgdmFyIGN1cnJlbnQgPSB2aWV3W3Byb3BlcnR5XTtcbiAgICAgICAgICAgIGlmICghY3VycmVudCkge1xuICAgICAgICAgICAgICB2aWV3W3Byb3BlcnR5XSA9IHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGZ1bmN0aW9uIGRlZmF1bHRQcm9wZXJ0aWVzSWZOb3RFeGlzdFN0YXJ0c1dpdGgocHJlZml4LCBvYmplY3QsIGF1dG9DcmVhdGUgPSBmYWxzZSkge1xuICAgICAgICBhbmd1bGFyLmZvckVhY2goJGZhYnJpYzhWaWV3cywgKHZpZXcsIG5hbWUpID0+IHtcbiAgICAgICAgICBpZiAodmlldyAmJiBuYW1lLnN0YXJ0c1dpdGgocHJlZml4KSkge1xuICAgICAgICAgICAgYW5ndWxhci5mb3JFYWNoKG9iamVjdCwgKHZhbHVlLCBwcm9wZXJ0eSkgPT4ge1xuICAgICAgICAgICAgICB2YXIgY3VycmVudCA9IHZpZXdbcHJvcGVydHldO1xuICAgICAgICAgICAgICBpZiAoIWN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICB2aWV3W3Byb3BlcnR5XSA9IHZhbHVlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICB2YXIgbGFiZWxzID0gbWV0YWRhdGEubGFiZWxzIHx8IHt9O1xuICAgICAgdmFyIGFubm90YXRpb25zID0gbWV0YWRhdGEuYW5ub3RhdGlvbnMgfHwge307XG5cbiAgICAgIC8vIGxldHMgZGVmYXVsdCB0aGUgcmVwbyBhbmQgdXNlclxuICAgICAgYnVpbGRDb25maWcuJHVzZXIgPSBhbm5vdGF0aW9uc1tcImZhYnJpYzguamVua2lucy91c2VyXCJdIHx8IGxhYmVsc1tcInVzZXJcIl07XG4gICAgICBidWlsZENvbmZpZy4kcmVwbyA9IGFubm90YXRpb25zW1wiZmFicmljOC5qZW5raW5zL3JlcG9cIl0gfHwgbGFiZWxzW1wicmVwb1wiXTtcblxuICAgICAgYW5ndWxhci5mb3JFYWNoKGFubm90YXRpb25zLCAodmFsdWUsIGtleSkgPT4ge1xuICAgICAgICB2YXIgcGFydHMgPSBrZXkuc3BsaXQoJy8nLCAyKTtcbiAgICAgICAgaWYgKHBhcnRzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICB2YXIgbGlua0lkID0gcGFydHNbMF07XG4gICAgICAgICAgdmFyIHByb3BlcnR5ID0gcGFydHNbMV07XG4gICAgICAgICAgaWYgKGxpbmtJZCAmJiBwcm9wZXJ0eSAmJiBsaW5rSWQuc3RhcnRzV2l0aChcImZhYnJpYzgubGlua1wiKSkge1xuICAgICAgICAgICAgdmFyIGxpbmsgPSAkZmFicmljOFZpZXdzW2xpbmtJZF07XG4gICAgICAgICAgICBpZiAoIWxpbmspIHtcbiAgICAgICAgICAgICAgbGluayA9IHtcbiAgICAgICAgICAgICAgICBjbGFzczogbGlua0lkXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICRmYWJyaWM4Vmlld3NbbGlua0lkXSA9IGxpbms7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsaW5rW3Byb3BlcnR5XSA9IHZhbHVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIGlmIChidWlsZENvbmZpZy4kdXNlciAmJiBidWlsZENvbmZpZy4kcmVwbykge1xuICAgICAgICAvLyBicm93c2UgZ29ncyByZXBvIHZpZXdcbiAgICAgICAgdmFyIGdvZ3NVcmwgPSBzZXJ2aWNlTGlua1VybChnb2dzU2VydmljZU5hbWUpO1xuICAgICAgICBpZiAoZ29nc1VybCkge1xuICAgICAgICAgIGRlZmF1bHRQcm9wZXJ0aWVzSWZOb3RFeGlzdChcImZhYnJpYzgubGluay5icm93c2VHb2dzLnZpZXdcIiwge1xuICAgICAgICAgICAgbGFiZWw6IFwiQnJvd3NlLi4uXCIsXG4gICAgICAgICAgICB1cmw6IFVybEhlbHBlcnMuam9pbihnb2dzVXJsLCBidWlsZENvbmZpZy4kdXNlciwgYnVpbGRDb25maWcuJHJlcG8pLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiQnJvd3NlIHRoZSBzb3VyY2UgY29kZSBvZiB0aGlzIHJlcG9zaXRvcnlcIixcbiAgICAgICAgICAgIGljb25DbGFzczogXCJmYSBmYS1leHRlcm5hbC1saW5rXCJcbiAgICAgICAgICB9LCB0cnVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHJ1biBmb3JnZSBjb21tYW5kcyB2aWV3XG4gICAgICAgIGRlZmF1bHRQcm9wZXJ0aWVzSWZOb3RFeGlzdChcImZhYnJpYzgubGluay5mb3JnZUNvbW1hbmQudmlld1wiLCB7XG4gICAgICAgICAgbGFiZWw6IFwiQ29tbWFuZC4uLlwiLFxuICAgICAgICAgIHVybDogVXJsSGVscGVycy5qb2luKHByb2plY3RMaW5rLCBcIi9mb3JnZS9jb21tYW5kcy91c2VyXCIsIGJ1aWxkQ29uZmlnLiR1c2VyLCBidWlsZENvbmZpZy4kcmVwbyksXG4gICAgICAgICAgZGVzY3JpcHRpb246IFwiUGVyZm9ybSBhbiBhY3Rpb24gb24gdGhpcyBwcm9qZWN0XCIsXG4gICAgICAgICAgaWNvbkNsYXNzOiBcImZhIGZhLXBsYXktY2lyY2xlXCJcbiAgICAgICAgfSwgdHJ1ZSk7XG5cblxuICAgICAgICAvLyBjb25maWd1cmUgZGV2b3BzIHZpZXdcbiAgICAgICAgZGVmYXVsdFByb3BlcnRpZXNJZk5vdEV4aXN0KFwiZmFicmljOC5saW5rLmZvcmdlQ29tbWFuZC5kZXZvcHMuc2V0dGluZ3NcIiwge1xuICAgICAgICAgIGxhYmVsOiBcIlNldHRpbmdzXCIsXG4gICAgICAgICAgdXJsOiBVcmxIZWxwZXJzLmpvaW4ocHJvamVjdExpbmssIFwiL2ZvcmdlL2NvbW1hbmQvZGV2b3BzLWVkaXQvdXNlclwiLCBidWlsZENvbmZpZy4kdXNlciwgYnVpbGRDb25maWcuJHJlcG8pLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIkNvbmZpZ3VyZSB0aGUgRGV2T3BzIHNldHRpbmdzIGZvciB0aGlzIHByb2plY3RcIixcbiAgICAgICAgICBpY29uQ2xhc3M6IFwiZmEgZmEtcGVuY2lsLXNxdWFyZS1vXCJcbiAgICAgICAgfSwgdHJ1ZSk7XG5cbiAgICAgIH1cblxuICAgICAgLy8gYWRkIHNvbWUgaWNvbnMgYW5kIGRlc2NyaXB0aW9uc1xuICAgICAgZGVmYXVsdFByb3BlcnRpZXNJZk5vdEV4aXN0KFwiZmFicmljOC5saW5rLnJlcG9zaXRvcnkuYnJvd3NlXCIsIHtcbiAgICAgICAgbGFiZWw6IFwiQnJvd3NlLi4uXCIsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIkJyb3dzZSB0aGUgc291cmNlIGNvZGUgb2YgdGhpcyByZXBvc2l0b3J5XCIsXG4gICAgICAgIGljb25DbGFzczogXCJmYSBmYS1leHRlcm5hbC1saW5rXCJcbiAgICAgIH0pO1xuICAgICAgZGVmYXVsdFByb3BlcnRpZXNJZk5vdEV4aXN0KFwiZmFicmljOC5saW5rLmplbmtpbnMuam9iXCIsIHtcbiAgICAgICAgaWNvbkNsYXNzOiBcImZhIGZhLXRhc2tzXCIsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIlZpZXcgdGhlIEplbmtpbnMgSm9iIGZvciB0aGlzIGJ1aWxkXCJcbiAgICAgIH0pO1xuICAgICAgZGVmYXVsdFByb3BlcnRpZXNJZk5vdEV4aXN0KFwiZmFicmljOC5saW5rLmplbmtpbnMubW9uaXRvclwiLCB7XG4gICAgICAgIGljb25DbGFzczogXCJmYSBmYS10YWNob21ldGVyXCIsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIlZpZXcgdGhlIEplbmtpbnMgTW9uaXRvciBkYXNoYm9hcmQgZm9yIHRoaXMgcHJvamVjdFwiXG4gICAgICB9KTtcbiAgICAgIGRlZmF1bHRQcm9wZXJ0aWVzSWZOb3RFeGlzdChcImZhYnJpYzgubGluay5qZW5raW5zLnBpcGVsaW5lXCIsIHtcbiAgICAgICAgaWNvbkNsYXNzOiBcImZhIGZhLWFycm93LWNpcmNsZS1vLXJpZ2h0XCIsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIlZpZXcgdGhlIEplbmtpbnMgUGlwZWxpbmUgZm9yIHRoaXMgcHJvamVjdFwiXG4gICAgICB9KTtcbiAgICAgIGRlZmF1bHRQcm9wZXJ0aWVzSWZOb3RFeGlzdChcImZhYnJpYzgubGluay5sZXRzY2hhdC5yb29tXCIsIHtcbiAgICAgICAgaWNvbkNsYXNzOiBcImZhIGZhLWNvbW1lbnRcIixcbiAgICAgICAgZGVzY3JpcHRpb246IFwiQ2hhdCByb29tIGZvciB0aGlzIHByb2plY3RcIlxuICAgICAgfSk7XG4gICAgICBkZWZhdWx0UHJvcGVydGllc0lmTm90RXhpc3QoXCJmYWJyaWM4LmxpbmsubGV0c2NoYXQucm9vbVwiLCB7XG4gICAgICAgIGljb25DbGFzczogXCJmYSBmYS1jb21tZW50XCIsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIkNoYXQgcm9vbSBmb3IgdGhpcyBwcm9qZWN0XCJcbiAgICAgIH0pO1xuICAgICAgZGVmYXVsdFByb3BlcnRpZXNJZk5vdEV4aXN0KFwiZmFicmljOC5saW5rLnRhaWdhXCIsIHtcbiAgICAgICAgaWNvbkNsYXNzOiBcImZhIGZhLWNoZWNrLXNxdWFyZS1vXCIsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIklzc3VlIHRyYWNrZXIgZm9yIHRoaXMgcHJvamVjdFwiXG4gICAgICB9KTtcbiAgICAgIGRlZmF1bHRQcm9wZXJ0aWVzSWZOb3RFeGlzdChcImZhYnJpYzgubGluay5pc3N1ZXNcIiwge1xuICAgICAgICBpY29uQ2xhc3M6IFwiZmEgZmEtY2hlY2stc3F1YXJlLW9cIixcbiAgICAgICAgZGVzY3JpcHRpb246IFwiSXNzdWVzIGZvciB0aGlzIHByb2plY3RcIlxuICAgICAgfSk7XG4gICAgICBkZWZhdWx0UHJvcGVydGllc0lmTm90RXhpc3QoXCJmYWJyaWM4LmxpbmsucmVsZWFzZXNcIiwge1xuICAgICAgICBpY29uQ2xhc3M6IFwiZmEgZmEtdGFnXCIsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIklzc3VlcyBmb3IgdGhpcyBwcm9qZWN0XCJcbiAgICAgIH0pO1xuICAgICAgZGVmYXVsdFByb3BlcnRpZXNJZk5vdEV4aXN0KFwiZmFicmljOC5saW5rLnRhaWdhLnRlYW1cIiwge1xuICAgICAgICBpY29uQ2xhc3M6IFwiZmEgZmEtdXNlcnNcIixcbiAgICAgICAgZGVzY3JpcHRpb246IFwiVGVhbSBtZW1iZXJzIGZvciB0aGlzIHByb2plY3RcIlxuICAgICAgfSk7XG4gICAgICBkZWZhdWx0UHJvcGVydGllc0lmTm90RXhpc3QoXCJmYWJyaWM4LmxpbmsudGVhbVwiLCB7XG4gICAgICAgIGljb25DbGFzczogXCJmYSBmYS11c2Vyc1wiLFxuICAgICAgICBkZXNjcmlwdGlvbjogXCJUZWFtIG1lbWJlcnMgZm9yIHRoaXMgcHJvamVjdFwiXG4gICAgICB9KTtcbiAgICAgIGRlZmF1bHRQcm9wZXJ0aWVzSWZOb3RFeGlzdFN0YXJ0c1dpdGgoXCJmYWJyaWM4LmxpbmsuZW52aXJvbm1lbnQuXCIsIHtcbiAgICAgICAgaWNvbkNsYXNzOiBcImZhIGZhLWNsb3VkXCIsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIlRoZSBrdWJlcm5ldGVzIG5hbWVzcGFjZSBmb3IgdGhpcyBlbnZpcm9ubWVudFwiXG4gICAgICB9KTtcblxuXG4gICAgICAvLyBsZXRzIHB1dCB0aGUgdmlld3MgaW50byBzZWN0aW9ucy4uLlxuICAgICAgdmFyICRmYWJyaWM4Q29kZVZpZXdzID0ge307XG4gICAgICB2YXIgJGZhYnJpYzhCdWlsZFZpZXdzID0ge307XG4gICAgICB2YXIgJGZhYnJpYzhUZWFtVmlld3MgPSB7fTtcbiAgICAgIHZhciAkZmFicmljOEVudmlyb25tZW50Vmlld3MgPSB7fTtcbiAgICAgIGFuZ3VsYXIuZm9yRWFjaCgkZmFicmljOFZpZXdzLCAodmFsdWUsIGtleSkgPT4ge1xuICAgICAgICB2YXIgdmlldztcbiAgICAgICAgaWYgKGtleS5pbmRleE9mKFwidGFpZ2FcIikgPiAwIHx8IGtleS5pbmRleE9mKFwiLmlzc3VlXCIpID4gMCB8fCBrZXkuaW5kZXhPZihcImxldHNjaGF0XCIpID4gMHx8IGtleS5pbmRleE9mKFwiLnRlYW1cIikgPiAwKSB7XG4gICAgICAgICAgdmlldyA9ICRmYWJyaWM4VGVhbVZpZXdzO1xuICAgICAgICB9IGVsc2UgaWYgKGtleS5pbmRleE9mKFwiamVua2luc1wiKSA+IDApIHtcbiAgICAgICAgICB2aWV3ID0gJGZhYnJpYzhCdWlsZFZpZXdzO1xuICAgICAgICB9IGVsc2UgaWYgKGtleS5pbmRleE9mKFwiLmVudmlyb25tZW50LlwiKSA+IDApIHtcbiAgICAgICAgICB2aWV3ID0gJGZhYnJpYzhFbnZpcm9ubWVudFZpZXdzO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHZpZXcgPSAkZmFicmljOENvZGVWaWV3cztcbiAgICAgICAgfVxuICAgICAgICB2aWV3W2tleV0gPSB2YWx1ZTtcbiAgICAgIH0pO1xuXG5cbiAgICAgIGJ1aWxkQ29uZmlnLiRmYWJyaWM4Vmlld3MgPSAkZmFicmljOFZpZXdzO1xuICAgICAgYnVpbGRDb25maWcuJGZhYnJpYzhDb2RlVmlld3MgPSAkZmFicmljOENvZGVWaWV3cztcbiAgICAgIGJ1aWxkQ29uZmlnLiRmYWJyaWM4QnVpbGRWaWV3cyA9ICRmYWJyaWM4QnVpbGRWaWV3cztcbiAgICAgIGJ1aWxkQ29uZmlnLiRmYWJyaWM4RW52aXJvbm1lbnRWaWV3cyA9ICRmYWJyaWM4RW52aXJvbm1lbnRWaWV3cztcbiAgICAgIGJ1aWxkQ29uZmlnLiRmYWJyaWM4VGVhbVZpZXdzID0gJGZhYnJpYzhUZWFtVmlld3M7XG5cbiAgICAgIHZhciAkamVua2luc0pvYiA9IGFubm90YXRpb25zW1wiZmFicmljOC5pby9qZW5raW5zLWpvYlwiXTtcbiAgICAgIGlmICghJGplbmtpbnNKb2IgJiYgJGZhYnJpYzhWaWV3c1tcImZhYnJpYzgubGluay5qZW5raW5zLmpvYlwiXSkge1xuICAgICAgICAkamVua2luc0pvYiA9IG5hbWU7XG4gICAgICB9XG4gICAgICBidWlsZENvbmZpZy4kamVua2luc0pvYiA9ICRqZW5raW5zSm9iO1xuXG4gICAgICBhbmd1bGFyLmZvckVhY2goJGZhYnJpYzhFbnZpcm9ubWVudFZpZXdzLCAoZW52KSA9PiB7XG4gICAgICAgIHZhciBjID0gZW52LmNsYXNzO1xuICAgICAgICB2YXIgcHJlZml4ID0gXCJmYWJyaWM4LmxpbmsuZW52aXJvbm1lbnQuXCI7XG4gICAgICAgIGlmIChjICYmIGMuc3RhcnRzV2l0aChwcmVmaXgpKSB7XG4gICAgICAgICAgdmFyIGVucyA9IGMuc3Vic3RyaW5nKHByZWZpeC5sZW5ndGgpO1xuICAgICAgICAgIGVudi5uYW1lc3BhY2UgPSBlbnM7XG4gICAgICAgICAgZW52LnVybCA9IFVybEhlbHBlcnMuam9pbihcIi93b3Jrc3BhY2VzXCIsIG5zLCBcInByb2plY3RzXCIsIG5hbWUsIFwibmFtZXNwYWNlXCIsIGVucyk7XG4gICAgICAgIH1cbiAgICAgICAgYnVpbGRDb25maWcuZW52aXJvbm1lbnRzLnB1c2goZW52KTtcbiAgICAgIH0pO1xuXG4gICAgICBidWlsZENvbmZpZy5lbnZpcm9ubWVudHMgPSBidWlsZENvbmZpZy5lbnZpcm9ubWVudHMucmV2ZXJzZSgpO1xuXG4gICAgICBidWlsZENvbmZpZy50b29scyA9IFtdO1xuICAgICAgYW5ndWxhci5mb3JFYWNoKCRmYWJyaWM4Q29kZVZpZXdzLCAoZW52KSA9PiB7XG4gICAgICAgIGJ1aWxkQ29uZmlnLnRvb2xzLnB1c2goZW52KTtcbiAgICAgIH0pO1xuICAgICAgYW5ndWxhci5mb3JFYWNoKCRmYWJyaWM4VGVhbVZpZXdzLCAoZW52KSA9PiB7XG4gICAgICAgIGJ1aWxkQ29uZmlnLnRvb2xzLnB1c2goZW52KTtcbiAgICAgIH0pO1xuXG4gICAgfVxuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGVucmljaEJ1aWxkQ29uZmlncyhidWlsZENvbmZpZ3MsIHNvcnRlZEJ1aWxkcyA9IG51bGwpIHtcbiAgICBhbmd1bGFyLmZvckVhY2goYnVpbGRDb25maWdzLCAoYnVpbGRDb25maWcpID0+IHtcbiAgICAgIGVucmljaEJ1aWxkQ29uZmlnKGJ1aWxkQ29uZmlnLCBzb3J0ZWRCdWlsZHMpO1xuICAgIH0pO1xuICAgIHJldHVybiBidWlsZENvbmZpZ3M7XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gZW5yaWNoQnVpbGRzKGJ1aWxkcykge1xuICAgIGFuZ3VsYXIuZm9yRWFjaChidWlsZHMsIChidWlsZCkgPT4ge1xuICAgICAgZW5yaWNoQnVpbGQoYnVpbGQpO1xuICAgIH0pO1xuICAgIHJldHVybiBfLnNvcnRCeShidWlsZHMsIFwiJGNyZWF0aW9uRGF0ZVwiKS5yZXZlcnNlKCk7XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gZW5yaWNoQnVpbGQoYnVpbGQpIHtcbiAgICBpZiAoYnVpbGQpIHtcbiAgICAgIHZhciBtZXRhZGF0YSA9IGJ1aWxkLm1ldGFkYXRhIHx8IHt9O1xuICAgICAgdmFyIG5hbWUgPSBnZXROYW1lKGJ1aWxkKTtcbiAgICAgIHZhciBuYW1lc3BhY2UgPSBnZXROYW1lc3BhY2UoYnVpbGQpO1xuICAgICAgYnVpbGQuJG5hbWUgPSBuYW1lO1xuICAgICAgYnVpbGQuJG5hbWVzcGFjZSA9IG5hbWVzcGFjZTtcblxuICAgICAgdmFyIG5hbWVBcnJheSA9IG5hbWUuc3BsaXQoXCItXCIpO1xuICAgICAgdmFyIG5hbWVBcnJheUxlbmd0aCA9IG5hbWVBcnJheS5sZW5ndGg7XG4gICAgICBidWlsZC4kc2hvcnROYW1lID0gKG5hbWVBcnJheUxlbmd0aCA+IDQpID8gbmFtZUFycmF5LnNsaWNlKDAsIG5hbWVBcnJheUxlbmd0aCAtIDQpLmpvaW4oXCItXCIpIDogbmFtZS5zdWJzdHJpbmcoMCwgMzApO1xuXG4gICAgICB2YXIgbGFiZWxzID0gZ2V0TGFiZWxzKGJ1aWxkKTtcbiAgICAgIHZhciBjb25maWdJZCA9IGxhYmVscy5idWlsZGNvbmZpZztcbiAgICAgIGJ1aWxkLiRjb25maWdJZCA9IGNvbmZpZ0lkO1xuICAgICAgaWYgKGNvbmZpZ0lkKSB7XG4gICAgICAgIC8vYnVpbGQuJGNvbmZpZ0xpbmsgPSBVcmxIZWxwZXJzLmpvaW4oXCJrdWJlcm5ldGVzL2J1aWxkQ29uZmlnc1wiLCBjb25maWdJZCk7XG4gICAgICAgIGJ1aWxkLiRjb25maWdMaW5rID0gVXJsSGVscGVycy5qb2luKFwid29ya3NwYWNlc1wiLCBjdXJyZW50S3ViZXJuZXRlc05hbWVzcGFjZSgpLCBcInByb2plY3RzXCIsIGNvbmZpZ0lkKTtcbiAgICAgIH1cbiAgICAgIHZhciBjcmVhdGlvblRpbWVzdGFtcCA9IGdldENyZWF0aW9uVGltZXN0YW1wKGJ1aWxkKTtcbiAgICAgIGlmIChjcmVhdGlvblRpbWVzdGFtcCkge1xuICAgICAgICB2YXIgZCA9IG5ldyBEYXRlKGNyZWF0aW9uVGltZXN0YW1wKTtcbiAgICAgICAgYnVpbGQuJGNyZWF0aW9uRGF0ZSA9IGQ7XG4gICAgICB9XG4gICAgICBpZiAobmFtZSkge1xuICAgICAgICAvL2J1aWxkLiR2aWV3TGluayA9IFVybEhlbHBlcnMuam9pbihcImt1YmVybmV0ZXMvYnVpbGRzXCIsIG5hbWUpO1xuICAgICAgICB2YXIgcHJvamVjdExpbmsgPSBVcmxIZWxwZXJzLmpvaW4oXCJ3b3Jrc3BhY2VzXCIsIGN1cnJlbnRLdWJlcm5ldGVzTmFtZXNwYWNlKCksIFwicHJvamVjdHNcIiwgY29uZmlnSWQpO1xuICAgICAgICBidWlsZC4kdmlld0xpbmsgPSBVcmxIZWxwZXJzLmpvaW4ocHJvamVjdExpbmssIFwiYnVpbGRzXCIsIG5hbWUpO1xuICAgICAgICAvL2J1aWxkLiRsb2dzTGluayA9IFVybEhlbHBlcnMuam9pbihcImt1YmVybmV0ZXMvYnVpbGRMb2dzXCIsIG5hbWUpO1xuICAgICAgICBidWlsZC4kbG9nc0xpbmsgPSBVcmxIZWxwZXJzLmpvaW4ocHJvamVjdExpbmssIFwiYnVpbGRMb2dzXCIsIG5hbWUpO1xuICAgICAgfVxuICAgICAgdmFyIHBvZE5hbWUgPSBidWlsZC5wb2ROYW1lO1xuICAgICAgaWYgKHBvZE5hbWUgJiYgbmFtZXNwYWNlKSB7XG4gICAgICAgIHZhciBwb2ROYW1lQXJyYXkgPSBwb2ROYW1lLnNwbGl0KFwiLVwiKTtcbiAgICAgICAgdmFyIHBvZE5hbWVBcnJheUxlbmd0aCA9IHBvZE5hbWVBcnJheS5sZW5ndGhcbiAgICAgICAgYnVpbGQuJHBvZFNob3J0TmFtZSA9IChwb2ROYW1lQXJyYXlMZW5ndGggPiA1KSA/IHBvZE5hbWVBcnJheVtwb2ROYW1lQXJyYXlMZW5ndGggLSA1XSA6IHBvZE5hbWUuc3Vic3RyaW5nKDAsIDMwKTtcbiAgICAgICAgYnVpbGQuJHBvZExpbmsgPSBVcmxIZWxwZXJzLmpvaW4oXCJrdWJlcm5ldGVzL25hbWVzcGFjZVwiLCBuYW1lc3BhY2UsIFwicG9kc1wiLCBwb2ROYW1lKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGJ1aWxkO1xuICB9XG5cblxuICBleHBvcnQgZnVuY3Rpb24gZW5yaWNoRGVwbG95bWVudENvbmZpZyhkZXBsb3ltZW50Q29uZmlnKSB7XG4gICAgaWYgKGRlcGxveW1lbnRDb25maWcpIHtcbiAgICAgIHZhciB0cmlnZ2VyVXJsOnN0cmluZyA9IG51bGw7XG4gICAgICB2YXIgbmFtZSA9IENvcmUucGF0aEdldChkZXBsb3ltZW50Q29uZmlnLCBbXCJtZXRhZGF0YVwiLCBcIm5hbWVcIl0pO1xuICAgICAgZGVwbG95bWVudENvbmZpZy4kbmFtZSA9IG5hbWU7XG4gICAgICB2YXIgZm91bmQgPSBmYWxzZTtcbiAgICAgIGFuZ3VsYXIuZm9yRWFjaChkZXBsb3ltZW50Q29uZmlnLnRyaWdnZXJzLCAodHJpZ2dlcikgPT4ge1xuICAgICAgICB2YXIgdHlwZSA9IHRyaWdnZXIudHlwZTtcbiAgICAgICAgaWYgKCFkZXBsb3ltZW50Q29uZmlnLiRpbWFnZUNoYW5nZVBhcmFtcyAmJiB0eXBlID09PSBcIkltYWdlQ2hhbmdlXCIpIHtcbiAgICAgICAgICB2YXIgaW1hZ2VDaGFuZ2VQYXJhbXMgPSB0cmlnZ2VyLmltYWdlQ2hhbmdlUGFyYW1zO1xuICAgICAgICAgIGlmIChpbWFnZUNoYW5nZVBhcmFtcykge1xuICAgICAgICAgICAgdmFyIGNvbnRhaW5lck5hbWVzID0gaW1hZ2VDaGFuZ2VQYXJhbXMuY29udGFpbmVyTmFtZXMgfHwgW107XG4gICAgICAgICAgICBpbWFnZUNoYW5nZVBhcmFtcy4kY29udGFpbmVyTmFtZXMgPSBjb250YWluZXJOYW1lcy5qb2luKFwiIFwiKTtcbiAgICAgICAgICAgIGRlcGxveW1lbnRDb25maWcuJGltYWdlQ2hhbmdlUGFyYW1zID0gaW1hZ2VDaGFuZ2VQYXJhbXM7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gZW5yaWNoRGVwbG95bWVudENvbmZpZ3MoZGVwbG95bWVudENvbmZpZ3MpIHtcbiAgICBhbmd1bGFyLmZvckVhY2goZGVwbG95bWVudENvbmZpZ3MsIChkZXBsb3ltZW50Q29uZmlnKSA9PiB7XG4gICAgICBlbnJpY2hEZXBsb3ltZW50Q29uZmlnKGRlcGxveW1lbnRDb25maWcpO1xuICAgIH0pO1xuICAgIHJldHVybiBkZXBsb3ltZW50Q29uZmlncztcbiAgfVxuXG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGVucmljaEV2ZW50KGV2ZW50KSB7XG4gICAgaWYgKGV2ZW50KSB7XG4gICAgICB2YXIgbWV0YWRhdGEgPSBldmVudC5tZXRhZGF0YSB8fCB7fTtcblxuICAgICAgdmFyIGZpcnN0VGltZXN0YW1wID0gZXZlbnQuZmlyc3RUaW1lc3RhbXA7XG4gICAgICBpZiAoZmlyc3RUaW1lc3RhbXApIHtcbiAgICAgICAgdmFyIGQgPSBuZXcgRGF0ZShmaXJzdFRpbWVzdGFtcCk7XG4gICAgICAgIGV2ZW50LiRmaXJzdFRpbWVzdGFtcCA9IGQ7XG4gICAgICB9XG4gICAgICB2YXIgbGFzdFRpbWVzdGFtcCA9IGV2ZW50Lmxhc3RUaW1lc3RhbXA7XG4gICAgICBpZiAobGFzdFRpbWVzdGFtcCkge1xuICAgICAgICB2YXIgZCA9IG5ldyBEYXRlKGxhc3RUaW1lc3RhbXApO1xuICAgICAgICBldmVudC4kbGFzdFRpbWVzdGFtcCA9IGQ7XG4gICAgICB9XG4gICAgICB2YXIgbGFiZWxzID0gYW5ndWxhci5jb3B5KGV2ZW50LnNvdXJjZSB8fCB7fSk7XG4gICAgICB2YXIgaW52b2x2ZWRPYmplY3QgPSBldmVudC5pbnZvbHZlZE9iamVjdCB8fCB7fTtcbiAgICAgIHZhciBuYW1lID0gaW52b2x2ZWRPYmplY3QubmFtZTtcbiAgICAgIHZhciBraW5kID0gaW52b2x2ZWRPYmplY3Qua2luZDtcbiAgICAgIGlmIChuYW1lKSB7XG4gICAgICAgIGxhYmVsc1snbmFtZSddID0gbmFtZTtcbiAgICAgIH1cbiAgICAgIGlmIChraW5kKSB7XG4gICAgICAgIGxhYmVsc1sna2luZCddID0ga2luZDtcbiAgICAgIH1cbiAgICAgIGV2ZW50LiRsYWJlbHNUZXh0ID0gS3ViZXJuZXRlcy5sYWJlbHNUb1N0cmluZyhsYWJlbHMpO1xuXG4gICAgfVxuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGVucmljaEV2ZW50cyhldmVudHMsIG1vZGVsID0gbnVsbCkge1xuICAgIGFuZ3VsYXIuZm9yRWFjaChldmVudHMsIChldmVudCkgPT4ge1xuICAgICAgZW5yaWNoRXZlbnQoZXZlbnQpO1xuICAgIH0pO1xuXG4gICAgLy8gbGV0cyB1cGRhdGUgbGlua3MgdG8gdGhlIGV2ZW50cyBmb3IgZWFjaCBwb2QgYW5kIFJDXG4gICAgaWYgKG1vZGVsKSB7XG4gICAgICBmdW5jdGlvbiBjbGVhckV2ZW50cyhlbnRpdHkpIHtcbiAgICAgICAgZW50aXR5LiRldmVudHMgPSBbXTtcbiAgICAgICAgZW50aXR5LiRldmVudHNMaW5rID0gbnVsbDtcbiAgICAgICAgZW50aXR5LiRldmVudENvdW50ID0gMDtcbiAgICAgIH1cblxuICAgICAgZnVuY3Rpb24gdXBkYXRlRXZlbnQoZW50aXR5LCBldmVudCkge1xuICAgICAgICBpZiAoZW50aXR5KSB7XG4gICAgICAgICAgZW50aXR5LiRldmVudHMucHVzaChldmVudCk7XG4gICAgICAgICAgaWYgKCFlbnRpdHkuJGV2ZW50c0xpbmspIHtcbiAgICAgICAgICAgIGVudGl0eS4kZXZlbnRzTGluayA9IFVybEhlbHBlcnMuam9pbihcIi9rdWJlcm5ldGVzL25hbWVzcGFjZS9cIiwgY3VycmVudEt1YmVybmV0ZXNOYW1lc3BhY2UoKSwgXCJldmVudHNcIikgKyBcIj9xPWtpbmQlM0RcIiArIGVudGl0eS5raW5kICsgXCIlMjBuYW1lJTNEXCIgKyBlbnRpdHkubWV0YWRhdGEubmFtZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZW50aXR5LiRldmVudENvdW50ID0gZW50aXR5LiRldmVudHMubGVuZ3RoO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHZhciBwb2RzID0gbW9kZWwucG9kcyB8fCBbXTtcbiAgICAgIHZhciByY3MgPSBtb2RlbC5yZXBsaWNhdGlvbkNvbnRyb2xsZXJzIHx8IFtdO1xuICAgICAgYW5ndWxhci5mb3JFYWNoKHBvZHMsIGNsZWFyRXZlbnRzKTtcbiAgICAgIGFuZ3VsYXIuZm9yRWFjaChyY3MsIGNsZWFyRXZlbnRzKTtcblxuICAgICAgYW5ndWxhci5mb3JFYWNoKGV2ZW50cywgKGV2ZW50KSA9PiB7XG4gICAgICAgIHZhciBpbnZvbHZlZE9iamVjdCA9IGV2ZW50Lmludm9sdmVkT2JqZWN0IHx8IHt9O1xuICAgICAgICB2YXIgbmFtZSA9IGludm9sdmVkT2JqZWN0Lm5hbWU7XG4gICAgICAgIHZhciBraW5kID0gaW52b2x2ZWRPYmplY3Qua2luZDtcbiAgICAgICAgdmFyIG5zID0gbW9kZWwuY3VycmVudE5hbWVzcGFjZSgpO1xuICAgICAgICBpZiAobmFtZSAmJiBraW5kICYmIG5zKSB7XG4gICAgICAgICAgdmFyIGVudGl0eSA9IG51bGw7XG4gICAgICAgICAgaWYgKGtpbmQgPT09IFwiUmVwbGljYXRpb25Db250cm9sbGVyXCIpIHtcbiAgICAgICAgICAgIGVudGl0eSA9IG1vZGVsLmdldFJlcGxpY2F0aW9uQ29udHJvbGxlcihucywgbmFtZSk7XG4gICAgICAgICAgfSBlbHNlIGlmIChraW5kID09PSBcIlBvZFwiKSB7XG4gICAgICAgICAgICBlbnRpdHkgPSBtb2RlbC5nZXRQb2QobnMsIG5hbWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZW50aXR5KSB7XG4gICAgICAgICAgICB1cGRhdGVFdmVudChlbnRpdHksIGV2ZW50KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gZXZlbnRzO1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGVucmljaEltYWdlUmVwb3NpdG9yeShpbWFnZVJlcG9zaXRvcnkpIHtcbiAgICBpZiAoaW1hZ2VSZXBvc2l0b3J5KSB7XG4gICAgICB2YXIgdHJpZ2dlclVybDpzdHJpbmcgPSBudWxsO1xuICAgICAgdmFyIG5hbWUgPSBDb3JlLnBhdGhHZXQoaW1hZ2VSZXBvc2l0b3J5LCBbXCJtZXRhZGF0YVwiLCBcIm5hbWVcIl0pO1xuICAgICAgaW1hZ2VSZXBvc2l0b3J5LiRuYW1lID0gbmFtZTtcbiAgICB9XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gZW5yaWNoSW1hZ2VSZXBvc2l0b3JpZXMoaW1hZ2VSZXBvc2l0b3JpZXMpIHtcbiAgICBhbmd1bGFyLmZvckVhY2goaW1hZ2VSZXBvc2l0b3JpZXMsIChpbWFnZVJlcG9zaXRvcnkpID0+IHtcbiAgICAgIGVucmljaEltYWdlUmVwb3NpdG9yeShpbWFnZVJlcG9zaXRvcnkpO1xuICAgIH0pO1xuICAgIHJldHVybiBpbWFnZVJlcG9zaXRvcmllcztcbiAgfVxuXG5cbiAgdmFyIGxhYmVsQ29sb3JzID0ge1xuICAgICd2ZXJzaW9uJzogJ2JhY2tncm91bmQtYmx1ZScsXG4gICAgJ25hbWUnOiAnYmFja2dyb3VuZC1saWdodC1ncmVlbicsXG4gICAgJ2NvbnRhaW5lcic6ICdiYWNrZ3JvdW5kLWxpZ2h0LWdyZXknXG4gIH07XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGNvbnRhaW5lckxhYmVsQ2xhc3MobGFiZWxUeXBlOnN0cmluZykge1xuICAgIGlmICghKGxhYmVsVHlwZSBpbiBsYWJlbENvbG9ycykpIHtcbiAgICAgIHJldHVybiAnbW91c2UtcG9pbnRlcic7XG4gICAgfVxuICAgIGVsc2UgcmV0dXJuIGxhYmVsQ29sb3JzW2xhYmVsVHlwZV0gKyAnIG1vdXNlLXBvaW50ZXInO1xuICB9XG5cblxuICAvKipcbiAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBmYWJyaWM4IGZvcmdlIHBsdWdpbiBpcyBlbmFibGVkXG4gICAqL1xuICBleHBvcnQgZnVuY3Rpb24gaXNGb3JnZUVuYWJsZWQoKSB7XG4gICAgLy8gVE9ETyBzaG91bGQgcmV0dXJuIHRydWUgaWYgdGhlIHNlcnZpY2UgXCJmYWJyaWM4LWZvcmdlXCIgaXMgdmFsaWRcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IGt1YmVybmV0ZXMgc2VsZWN0ZWQgbmFtZXNwYWNlIG9yIHRoZSBkZWZhdWx0IG9uZVxuICAgKi9cbiAgZXhwb3J0IGZ1bmN0aW9uIGN1cnJlbnRLdWJlcm5ldGVzTmFtZXNwYWNlKCkge1xuICAgIHZhciBpbmplY3RvciA9IEhhd3Rpb0NvcmUuaW5qZWN0b3I7XG4gICAgaWYgKGluamVjdG9yKSB7XG4gICAgICB2YXIgS3ViZXJuZXRlc1N0YXRlID0gaW5qZWN0b3IuZ2V0KFwiS3ViZXJuZXRlc1N0YXRlXCIpIHx8IHt9O1xuICAgICAgcmV0dXJuIEt1YmVybmV0ZXNTdGF0ZS5zZWxlY3RlZE5hbWVzcGFjZSB8fCBkZWZhdWx0TmFtZXNwYWNlO1xuICAgIH1cbiAgICByZXR1cm4gZGVmYXVsdE5hbWVzcGFjZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb25maWd1cmVzIHRoZSBqc29uIHNjaGVtYVxuICAgKi9cbiAgZXhwb3J0IGZ1bmN0aW9uIGNvbmZpZ3VyZVNjaGVtYSgpIHtcbiAgICBhbmd1bGFyLmZvckVhY2goc2NoZW1hLmRlZmluaXRpb25zLCAoZGVmaW5pdGlvbiwgbmFtZSkgPT4ge1xuICAgICAgdmFyIHByb3BlcnRpZXMgPSBkZWZpbml0aW9uLnByb3BlcnRpZXM7XG4gICAgICBpZiAocHJvcGVydGllcykge1xuICAgICAgICB2YXIgaGlkZVByb3BlcnRpZXMgPSBbXCJjcmVhdGlvblRpbWVzdGFtcFwiLCBcImtpbmRcIiwgXCJhcGlWZXJzaW9uXCIsIFwiYW5ub3RhdGlvbnNcIiwgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiLCBcIm5hbWVzcGFjZVwiLCBcInJlc291cmNlVmVyc2lvblwiLCBcInNlbGZMaW5rXCIsIFwidWlkXCJdO1xuICAgICAgICBhbmd1bGFyLmZvckVhY2goaGlkZVByb3BlcnRpZXMsIChwcm9wZXJ0eU5hbWUpID0+IHtcbiAgICAgICAgICB2YXIgcHJvcGVydHkgPSBwcm9wZXJ0aWVzW3Byb3BlcnR5TmFtZV07XG4gICAgICAgICAgaWYgKHByb3BlcnR5KSB7XG4gICAgICAgICAgICBwcm9wZXJ0eVtcImhpZGRlblwiXSAgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGFuZ3VsYXIuZm9yRWFjaChwcm9wZXJ0aWVzLCAocHJvcGVydHksIHByb3BlcnR5TmFtZSkgPT4ge1xuICAgICAgICAgIHZhciByZWYgPSBwcm9wZXJ0eVtcIiRyZWZcIl07XG4gICAgICAgICAgdmFyIHR5cGUgPSBwcm9wZXJ0eVtcInR5cGVcIl07XG4gICAgICAgICAgaWYgKHJlZiAmJiAoIXR5cGUgfHwgdHlwZSA9PT0gXCJvYmplY3RcIikpIHtcbiAgICAgICAgICAgIHByb3BlcnR5W1widHlwZVwiXSA9IHJlZjtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHR5cGUgPT09IFwiYXJyYXlcIikge1xuICAgICAgICAgICAgdmFyIGl0ZW1zID0gcHJvcGVydHlbXCJpdGVtc1wiXTtcbiAgICAgICAgICAgIGlmIChpdGVtcykge1xuICAgICAgICAgICAgICB2YXIgcmVmID0gaXRlbXNbXCIkcmVmXCJdO1xuICAgICAgICAgICAgICB2YXIgdHlwZSA9IGl0ZW1zW1widHlwZVwiXTtcbiAgICAgICAgICAgICAgaWYgKHJlZiAmJiAoIXR5cGUgfHwgdHlwZSA9PT0gXCJvYmplY3RcIikpIHtcbiAgICAgICAgICAgICAgICBpdGVtc1tcInR5cGVcIl0gPSByZWY7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBzY2hlbWEuZGVmaW5pdGlvbnMub3NfYnVpbGRfV2ViSG9va1RyaWdnZXIucHJvcGVydGllcy5zZWNyZXQudHlwZSA9IFwicGFzc3dvcmRcIjtcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIExldHMgcmVtb3ZlIGFueSBlbnJpY2hlZCBkYXRhIHRvIGxlYXZlIHRoZSBvcmlnaW5hbCBqc29uIGludGFjdFxuICAgKi9cbiAgZXhwb3J0IGZ1bmN0aW9uIHRvUmF3SnNvbihpdGVtKSB7XG4gICAgdmFyIG8gPSBhbmd1bGFyLmNvcHkoaXRlbSk7XG4gICAgYW5ndWxhci5mb3JFYWNoKG8sICh2YWx1ZSwga2V5KSA9PiB7XG4gICAgICBpZiAoa2V5LnN0YXJ0c1dpdGgoXCIkXCIpIHx8IGtleS5zdGFydHNXaXRoKFwiX1wiKSkge1xuICAgICAgICBkZWxldGUgb1trZXldO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShvLCBudWxsLCAyKTsgLy8gc3BhY2luZyBsZXZlbCA9IDJcbiAgfVxuXG59XG4iLCIvLy8gPHJlZmVyZW5jZSBwYXRoPVwiLi4vLi4vaW5jbHVkZXMudHNcIi8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwiLi4vLi4va3ViZXJuZXRlcy90cy9rdWJlcm5ldGVzSGVscGVycy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJkZXZlbG9wZXJFbnJpY2hlcnMudHNcIi8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwiZGV2ZWxvcGVySGVscGVycy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJkZXZlbG9wZXJOYXZpZ2F0aW9uLnRzXCIvPlxuXG5tb2R1bGUgRGV2ZWxvcGVyIHtcblxuICBleHBvcnQgdmFyIEhvbWVDb250cm9sbGVyID0gY29udHJvbGxlcihcIkhvbWVDb250cm9sbGVyXCIsXG4gICAgW1wiJHNjb3BlXCIsIFwiS3ViZXJuZXRlc01vZGVsXCIsIFwiS3ViZXJuZXRlc1N0YXRlXCIsIFwiS3ViZXJuZXRlc1NjaGVtYVwiLCBcIiR0ZW1wbGF0ZUNhY2hlXCIsIFwiJGxvY2F0aW9uXCIsIFwiJHJvdXRlUGFyYW1zXCIsIFwiJGh0dHBcIiwgXCIkdGltZW91dFwiLCBcIkt1YmVybmV0ZXNBcGlVUkxcIixcbiAgICAgICgkc2NvcGUsIEt1YmVybmV0ZXNNb2RlbDpLdWJlcm5ldGVzLkt1YmVybmV0ZXNNb2RlbFNlcnZpY2UsIEt1YmVybmV0ZXNTdGF0ZSwgS3ViZXJuZXRlc1NjaGVtYSxcbiAgICAgICAkdGVtcGxhdGVDYWNoZTpuZy5JVGVtcGxhdGVDYWNoZVNlcnZpY2UsICRsb2NhdGlvbjpuZy5JTG9jYXRpb25TZXJ2aWNlLCAkcm91dGVQYXJhbXMsICRodHRwLCAkdGltZW91dCwgS3ViZXJuZXRlc0FwaVVSTCkgPT4ge1xuXG4gICAgICAgICRzY29wZS5uYW1lc3BhY2UgPSBLdWJlcm5ldGVzLmN1cnJlbnRLdWJlcm5ldGVzTmFtZXNwYWNlKCk7XG5cbiAgICAgIH1dKTtcbn1cbiIsIi8vLyA8cmVmZXJlbmNlIHBhdGg9XCIuLi8uLi9pbmNsdWRlcy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCIuLi8uLi9rdWJlcm5ldGVzL3RzL2t1YmVybmV0ZXNIZWxwZXJzLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cImRldmVsb3BlckVucmljaGVycy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJkZXZlbG9wZXJIZWxwZXJzLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cImRldmVsb3Blck5hdmlnYXRpb24udHNcIi8+XG5cbm1vZHVsZSBEZXZlbG9wZXIge1xuXG4gIGV4cG9ydCB2YXIgSmVua2luc0pvYkNvbnRyb2xsZXIgPSBjb250cm9sbGVyKFwiSmVua2luc0pvYkNvbnRyb2xsZXJcIixcbiAgICBbXCIkc2NvcGVcIiwgXCJLdWJlcm5ldGVzTW9kZWxcIiwgXCJLdWJlcm5ldGVzU3RhdGVcIiwgXCJLdWJlcm5ldGVzU2NoZW1hXCIsIFwiJHRlbXBsYXRlQ2FjaGVcIiwgXCIkbG9jYXRpb25cIiwgXCIkcm91dGVQYXJhbXNcIiwgXCIkaHR0cFwiLCBcIiR0aW1lb3V0XCIsIFwiS3ViZXJuZXRlc0FwaVVSTFwiLCBcIlNlcnZpY2VSZWdpc3RyeVwiLFxuICAgICAgKCRzY29wZSwgS3ViZXJuZXRlc01vZGVsOkt1YmVybmV0ZXMuS3ViZXJuZXRlc01vZGVsU2VydmljZSwgS3ViZXJuZXRlc1N0YXRlLCBLdWJlcm5ldGVzU2NoZW1hLFxuICAgICAgICR0ZW1wbGF0ZUNhY2hlOm5nLklUZW1wbGF0ZUNhY2hlU2VydmljZSwgJGxvY2F0aW9uOm5nLklMb2NhdGlvblNlcnZpY2UsICRyb3V0ZVBhcmFtcywgJGh0dHAsICR0aW1lb3V0LCBLdWJlcm5ldGVzQXBpVVJMLCBTZXJ2aWNlUmVnaXN0cnkpID0+IHtcblxuICAgICAgICAkc2NvcGUua3ViZXJuZXRlcyA9IEt1YmVybmV0ZXNTdGF0ZTtcbiAgICAgICAgJHNjb3BlLm1vZGVsID0gS3ViZXJuZXRlc01vZGVsO1xuICAgICAgICAkc2NvcGUuaWQgPSAkcm91dGVQYXJhbXNbXCJpZFwiXTtcbiAgICAgICAgJHNjb3BlLmpvYklkID0gJHJvdXRlUGFyYW1zW1wiam9iXCJdO1xuICAgICAgICAkc2NvcGUuc2NoZW1hID0gS3ViZXJuZXRlc1NjaGVtYTtcbiAgICAgICAgJHNjb3BlLmVudGl0eUNoYW5nZWRDYWNoZSA9IHt9O1xuXG4gICAgICAgIEt1YmVybmV0ZXMuaW5pdFNoYXJlZCgkc2NvcGUsICRsb2NhdGlvbiwgJGh0dHAsICR0aW1lb3V0LCAkcm91dGVQYXJhbXMsIEt1YmVybmV0ZXNNb2RlbCwgS3ViZXJuZXRlc1N0YXRlLCBLdWJlcm5ldGVzQXBpVVJMKTtcbiAgICAgICAgJHNjb3BlLmJyZWFkY3J1bWJDb25maWcgPSBEZXZlbG9wZXIuY3JlYXRlUHJvamVjdEJyZWFkY3J1bWJzKCRzY29wZS5pZCk7XG4gICAgICAgICRzY29wZS5zdWJUYWJDb25maWcgPSBEZXZlbG9wZXIuY3JlYXRlUHJvamVjdFN1Yk5hdkJhcnMoJHNjb3BlLmlkLCAkc2NvcGUuam9iSWQpO1xuXG4gICAgICAgICRzY29wZS4kb24oJ2t1YmVybmV0ZXNNb2RlbFVwZGF0ZWQnLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgdXBkYXRlRGF0YSgpO1xuICAgICAgICB9KTtcblxuICAgICAgICAkc2NvcGUuJG9uKCckcm91dGVVcGRhdGUnLCAoJGV2ZW50KSA9PiB7XG4gICAgICAgICAgdXBkYXRlRGF0YSgpO1xuICAgICAgICB9KTtcblxuICAgICAgICAkc2NvcGUudGFibGVDb25maWcgPSB7XG4gICAgICAgICAgZGF0YTogJ2pvYi5idWlsZHMnLFxuICAgICAgICAgIHNob3dTZWxlY3Rpb25DaGVja2JveDogdHJ1ZSxcbiAgICAgICAgICBlbmFibGVSb3dDbGlja1NlbGVjdGlvbjogZmFsc2UsXG4gICAgICAgICAgbXVsdGlTZWxlY3Q6IHRydWUsXG4gICAgICAgICAgc2VsZWN0ZWRJdGVtczogW10sXG4gICAgICAgICAgZmlsdGVyT3B0aW9uczoge1xuICAgICAgICAgICAgZmlsdGVyVGV4dDogJGxvY2F0aW9uLnNlYXJjaCgpW1wicVwiXSB8fCAnJ1xuICAgICAgICAgIH0sXG4gICAgICAgICAgY29sdW1uRGVmczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBmaWVsZDogJyRzb3J0T3JkZXInLFxuICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogJ05hbWUnLFxuICAgICAgICAgICAgICBjZWxsVGVtcGxhdGU6ICR0ZW1wbGF0ZUNhY2hlLmdldChcImplbmtpbnNCdWlsZElkVGVtcGxhdGUuaHRtbFwiKVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgZmllbGQ6ICckYnVpbGRMaW5rJyxcbiAgICAgICAgICAgICAgZGlzcGxheU5hbWU6ICdWaWV3cycsXG4gICAgICAgICAgICAgIGNlbGxUZW1wbGF0ZTogJHRlbXBsYXRlQ2FjaGUuZ2V0KFwiamVua2luc0J1aWxkQnV0dG9uc1RlbXBsYXRlLmh0bWxcIilcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGZpZWxkOiAnJGR1cmF0aW9uJyxcbiAgICAgICAgICAgICAgZGlzcGxheU5hbWU6ICdEdXJhdGlvbicsXG4gICAgICAgICAgICAgIGNlbGxUZW1wbGF0ZTogJHRlbXBsYXRlQ2FjaGUuZ2V0KFwiamVua2luc0J1aWxkRHVyYXRpb25UZW1wbGF0ZS5odG1sXCIpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBmaWVsZDogJyR0aW1lc3RhbXAnLFxuICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogJ1RpbWUgU3RhcnRlZCcsXG4gICAgICAgICAgICAgIGNlbGxUZW1wbGF0ZTogJHRlbXBsYXRlQ2FjaGUuZ2V0KFwiamVua2luc0J1aWxkVGltZXN0YW1wVGVtcGxhdGUuaHRtbFwiKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIF1cbiAgICAgICAgfTtcbiAgICAgICAgdXBkYXRlRGF0YSgpO1xuXG5cbiAgICAgICAgZnVuY3Rpb24gdXBkYXRlRGF0YSgpIHtcbiAgICAgICAgICBpZiAoJHNjb3BlLmpvYklkKSB7XG4gICAgICAgICAgICB2YXIgdXJsID0gS3ViZXJuZXRlcy5rdWJlcm5ldGVzUHJveHlVcmxGb3JTZXJ2aWNlQ3VycmVudE5hbWVzcGFjZShqZW5raW5zU2VydmljZU5hbWVBbmRQb3J0LCBVcmxIZWxwZXJzLmpvaW4oXCJqb2JcIiwgJHNjb3BlLmpvYklkLCBcImFwaS9qc29uP2RlcHRoPTFcIikpO1xuICAgICAgICAgICAgaWYgKHVybCAmJiAoISRzY29wZS5qb2IgfHwgS3ViZXJuZXRlcy5rZWVwUG9sbGluZ01vZGVsKSkge1xuICAgICAgICAgICAgICAkaHR0cC5nZXQodXJsKS5cbiAgICAgICAgICAgICAgICBzdWNjZXNzKGZ1bmN0aW9uIChkYXRhLCBzdGF0dXMsIGhlYWRlcnMsIGNvbmZpZykge1xuICAgICAgICAgICAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgZW5yaWNoSmVua2luc0pvYihkYXRhLCAkc2NvcGUuaWQsICRzY29wZS5qb2JJZCk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChoYXNPYmplY3RDaGFuZ2VkKGRhdGEsICRzY29wZS5lbnRpdHlDaGFuZ2VkQ2FjaGUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgbG9nLmluZm8oXCJlbnRpdHkgaGFzIGNoYW5nZWQhXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICRzY29wZS5qb2IgPSBkYXRhO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAkc2NvcGUubW9kZWwuZmV0Y2hlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICBDb3JlLiRhcHBseSgkc2NvcGUpO1xuICAgICAgICAgICAgICAgIH0pLlxuICAgICAgICAgICAgICAgIGVycm9yKGZ1bmN0aW9uIChkYXRhLCBzdGF0dXMsIGhlYWRlcnMsIGNvbmZpZykge1xuICAgICAgICAgICAgICAgICAgbG9nLndhcm4oXCJGYWlsZWQgdG8gbG9hZCBcIiArIHVybCArIFwiIFwiICsgZGF0YSArIFwiIFwiICsgc3RhdHVzKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgJHNjb3BlLm1vZGVsLmZldGNoZWQgPSB0cnVlO1xuICAgICAgICAgICAgQ29yZS4kYXBwbHkoJHNjb3BlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1dKTtcbn1cbiIsIi8vLyA8cmVmZXJlbmNlIHBhdGg9XCIuLi8uLi9pbmNsdWRlcy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCIuLi8uLi9rdWJlcm5ldGVzL3RzL2t1YmVybmV0ZXNIZWxwZXJzLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cImRldmVsb3BlckVucmljaGVycy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJkZXZlbG9wZXJIZWxwZXJzLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cImRldmVsb3Blck5hdmlnYXRpb24udHNcIi8+XG5cbm1vZHVsZSBEZXZlbG9wZXIge1xuXG4gIGV4cG9ydCB2YXIgSmVua2luc0pvYnNDb250cm9sbGVyID0gY29udHJvbGxlcihcIkplbmtpbnNKb2JzQ29udHJvbGxlclwiLFxuICAgIFtcIiRzY29wZVwiLCBcIkt1YmVybmV0ZXNNb2RlbFwiLCBcIkt1YmVybmV0ZXNTdGF0ZVwiLCBcIkt1YmVybmV0ZXNTY2hlbWFcIiwgXCIkdGVtcGxhdGVDYWNoZVwiLCBcIiRsb2NhdGlvblwiLCBcIiRyb3V0ZVBhcmFtc1wiLCBcIiRodHRwXCIsIFwiJHRpbWVvdXRcIiwgXCJLdWJlcm5ldGVzQXBpVVJMXCIsIFwiU2VydmljZVJlZ2lzdHJ5XCIsXG4gICAgICAoJHNjb3BlLCBLdWJlcm5ldGVzTW9kZWw6S3ViZXJuZXRlcy5LdWJlcm5ldGVzTW9kZWxTZXJ2aWNlLCBLdWJlcm5ldGVzU3RhdGUsIEt1YmVybmV0ZXNTY2hlbWEsXG4gICAgICAgJHRlbXBsYXRlQ2FjaGU6bmcuSVRlbXBsYXRlQ2FjaGVTZXJ2aWNlLCAkbG9jYXRpb246bmcuSUxvY2F0aW9uU2VydmljZSwgJHJvdXRlUGFyYW1zLCAkaHR0cCwgJHRpbWVvdXQsIEt1YmVybmV0ZXNBcGlVUkwsIFNlcnZpY2VSZWdpc3RyeSkgPT4ge1xuXG4gICAgICAgICRzY29wZS5rdWJlcm5ldGVzID0gS3ViZXJuZXRlc1N0YXRlO1xuICAgICAgICAkc2NvcGUubW9kZWwgPSBLdWJlcm5ldGVzTW9kZWw7XG4gICAgICAgICRzY29wZS5pZCA9ICRyb3V0ZVBhcmFtc1tcImlkXCJdO1xuICAgICAgICAkc2NvcGUuc2NoZW1hID0gS3ViZXJuZXRlc1NjaGVtYTtcbiAgICAgICAgJHNjb3BlLmplbmtpbnMgPSBudWxsO1xuICAgICAgICAkc2NvcGUuZW50aXR5Q2hhbmdlZENhY2hlID0ge307XG5cbiAgICAgICAgS3ViZXJuZXRlcy5pbml0U2hhcmVkKCRzY29wZSwgJGxvY2F0aW9uLCAkaHR0cCwgJHRpbWVvdXQsICRyb3V0ZVBhcmFtcywgS3ViZXJuZXRlc01vZGVsLCBLdWJlcm5ldGVzU3RhdGUsIEt1YmVybmV0ZXNBcGlVUkwpO1xuICAgICAgICAkc2NvcGUuYnJlYWRjcnVtYkNvbmZpZyA9IGNyZWF0ZVByb2plY3RCcmVhZGNydW1icygpO1xuICAgICAgICAkc2NvcGUuc3ViVGFiQ29uZmlnID0gRGV2ZWxvcGVyLmNyZWF0ZVdvcmtzcGFjZVN1Yk5hdkJhcnMoKTtcblxuICAgICAgICAkc2NvcGUuJG9uKCdrdWJlcm5ldGVzTW9kZWxVcGRhdGVkJywgZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHVwZGF0ZURhdGEoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgJHNjb3BlLiRvbignJHJvdXRlVXBkYXRlJywgKCRldmVudCkgPT4ge1xuICAgICAgICAgIHVwZGF0ZURhdGEoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgJHNjb3BlLnRhYmxlQ29uZmlnID0ge1xuICAgICAgICAgIGRhdGE6ICdqZW5raW5zLmpvYnMnLFxuICAgICAgICAgIHNob3dTZWxlY3Rpb25DaGVja2JveDogdHJ1ZSxcbiAgICAgICAgICBlbmFibGVSb3dDbGlja1NlbGVjdGlvbjogZmFsc2UsXG4gICAgICAgICAgbXVsdGlTZWxlY3Q6IHRydWUsXG4gICAgICAgICAgc2VsZWN0ZWRJdGVtczogW10sXG4gICAgICAgICAgZmlsdGVyT3B0aW9uczoge1xuICAgICAgICAgICAgZmlsdGVyVGV4dDogJGxvY2F0aW9uLnNlYXJjaCgpW1wicVwiXSB8fCAnJ1xuICAgICAgICAgIH0sXG4gICAgICAgICAgY29sdW1uRGVmczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBmaWVsZDogJ25hbWUnLFxuICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogJ05hbWUnLFxuICAgICAgICAgICAgICBjZWxsVGVtcGxhdGU6ICR0ZW1wbGF0ZUNhY2hlLmdldChcImplbmtpbnNKb2JOYW1lVGVtcGxhdGUuaHRtbFwiKVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgZmllbGQ6ICckYnVpbGRMaW5rJyxcbiAgICAgICAgICAgICAgZGlzcGxheU5hbWU6ICdWaWV3cycsXG4gICAgICAgICAgICAgIGNlbGxUZW1wbGF0ZTogJHRlbXBsYXRlQ2FjaGUuZ2V0KFwiamVua2luc0pvYkJ1dHRvbnNUZW1wbGF0ZS5odG1sXCIpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBmaWVsZDogJyRsYXN0U3VjY2Vzc2Z1bEJ1aWxkTnVtYmVyJyxcbiAgICAgICAgICAgICAgZGlzcGxheU5hbWU6ICdMYXN0IFN1Y2Nlc3MnLFxuICAgICAgICAgICAgICBjZWxsVGVtcGxhdGU6ICR0ZW1wbGF0ZUNhY2hlLmdldChcImplbmtpbnNMYXN0U3VjY2Vzc1RlbXBsYXRlLmh0bWxcIilcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGZpZWxkOiAnJGxhc3RGYWlsZWRsQnVpbGROdW1iZXInLFxuICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogJ0xhc3QgRmFpbHVyZScsXG4gICAgICAgICAgICAgIGNlbGxUZW1wbGF0ZTogJHRlbXBsYXRlQ2FjaGUuZ2V0KFwiamVua2luc0xhc3RGYWlsdXJlVGVtcGxhdGUuaHRtbFwiKVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgZmllbGQ6ICckZHVyYXRpb24nLFxuICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogJ0xhc3QgRHVyYXRpb24nLFxuICAgICAgICAgICAgICBjZWxsVGVtcGxhdGU6ICR0ZW1wbGF0ZUNhY2hlLmdldChcImplbmtpbnNCdWlsZER1cmF0aW9uVGVtcGxhdGUuaHRtbFwiKVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgZmllbGQ6ICckdGltZXN0YW1wJyxcbiAgICAgICAgICAgICAgZGlzcGxheU5hbWU6ICdUaW1lIFN0YXJ0ZWQnLFxuICAgICAgICAgICAgICBjZWxsVGVtcGxhdGU6ICR0ZW1wbGF0ZUNhY2hlLmdldChcImplbmtpbnNCdWlsZFRpbWVzdGFtcFRlbXBsYXRlLmh0bWxcIilcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdXG4gICAgICAgIH07XG4gICAgICAgIHVwZGF0ZURhdGEoKTtcblxuXG4gICAgICAgIGZ1bmN0aW9uIHVwZGF0ZURhdGEoKSB7XG4gICAgICAgICAgLy8gVE9ETyBvbmx5IG5lZWQgZGVwdGggMiB0byBiZSBhYmxlIHRvIGZldGNoIHRoZSBsYXN0QnVpbGRcbiAgICAgICAgICB2YXIgdXJsID0gS3ViZXJuZXRlcy5rdWJlcm5ldGVzUHJveHlVcmxGb3JTZXJ2aWNlQ3VycmVudE5hbWVzcGFjZShqZW5raW5zU2VydmljZU5hbWVBbmRQb3J0LCBcImFwaS9qc29uP2RlcHRoPTJcIik7XG4gICAgICAgICAgbG9nLmluZm8oXCJcIik7XG4gICAgICAgICAgaWYgKHVybCAmJiAoISRzY29wZS5qZW5raW5zIHx8IEt1YmVybmV0ZXMua2VlcFBvbGxpbmdNb2RlbCkpIHtcbiAgICAgICAgICAgICRodHRwLmdldCh1cmwsIGplbmtpbnNIdHRwQ29uZmlnKS5cbiAgICAgICAgICAgICAgc3VjY2VzcyhmdW5jdGlvbiAoZGF0YSwgc3RhdHVzLCBoZWFkZXJzLCBjb25maWcpIHtcbiAgICAgICAgICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgICAgICAgZW5yaWNoSmVua2luc0pvYnMoZGF0YSwgJHNjb3BlLmlkLCAkc2NvcGUuaWQpO1xuICAgICAgICAgICAgICAgICAgaWYgKGhhc09iamVjdENoYW5nZWQoZGF0YSwgJHNjb3BlLmVudGl0eUNoYW5nZWRDYWNoZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgbG9nLmluZm8oXCJlbnRpdHkgaGFzIGNoYW5nZWQhXCIpO1xuICAgICAgICAgICAgICAgICAgICAkc2NvcGUuamVua2lucyA9IGRhdGE7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICRzY29wZS5tb2RlbC5mZXRjaGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBDb3JlLiRhcHBseSgkc2NvcGUpO1xuICAgICAgICAgICAgICB9KS5cbiAgICAgICAgICAgICAgZXJyb3IoZnVuY3Rpb24gKGRhdGEsIHN0YXR1cywgaGVhZGVycywgY29uZmlnKSB7XG4gICAgICAgICAgICAgICAgbG9nLndhcm4oXCJGYWlsZWQgdG8gbG9hZCBcIiArIHVybCArIFwiIFwiICsgZGF0YSArIFwiIFwiICsgc3RhdHVzKTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XSk7XG59XG4iLCIvLy8gPHJlZmVyZW5jZSBwYXRoPVwiLi4vLi4vaW5jbHVkZXMudHNcIi8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwiLi4vLi4va3ViZXJuZXRlcy90cy9rdWJlcm5ldGVzSGVscGVycy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJkZXZlbG9wZXJFbnJpY2hlcnMudHNcIi8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwiZGV2ZWxvcGVySGVscGVycy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJkZXZlbG9wZXJOYXZpZ2F0aW9uLnRzXCIvPlxuXG5tb2R1bGUgRGV2ZWxvcGVyIHtcblxuICBleHBvcnQgdmFyIEplbmtpbnNMb2dDb250cm9sbGVyID0gY29udHJvbGxlcihcIkplbmtpbnNMb2dDb250cm9sbGVyXCIsXG4gICAgW1wiJHNjb3BlXCIsIFwiS3ViZXJuZXRlc01vZGVsXCIsIFwiS3ViZXJuZXRlc1N0YXRlXCIsIFwiS3ViZXJuZXRlc1NjaGVtYVwiLCBcIiR0ZW1wbGF0ZUNhY2hlXCIsIFwiJGxvY2F0aW9uXCIsIFwiJHJvdXRlUGFyYW1zXCIsIFwiJGh0dHBcIiwgXCIkdGltZW91dFwiLCBcIkt1YmVybmV0ZXNBcGlVUkxcIiwgXCJTZXJ2aWNlUmVnaXN0cnlcIixcbiAgICAgICgkc2NvcGUsIEt1YmVybmV0ZXNNb2RlbDpLdWJlcm5ldGVzLkt1YmVybmV0ZXNNb2RlbFNlcnZpY2UsIEt1YmVybmV0ZXNTdGF0ZSwgS3ViZXJuZXRlc1NjaGVtYSxcbiAgICAgICAkdGVtcGxhdGVDYWNoZTpuZy5JVGVtcGxhdGVDYWNoZVNlcnZpY2UsICRsb2NhdGlvbjpuZy5JTG9jYXRpb25TZXJ2aWNlLCAkcm91dGVQYXJhbXMsICRodHRwLCAkdGltZW91dCwgS3ViZXJuZXRlc0FwaVVSTCwgU2VydmljZVJlZ2lzdHJ5KSA9PiB7XG5cbiAgICAgICAgJHNjb3BlLmt1YmVybmV0ZXMgPSBLdWJlcm5ldGVzU3RhdGU7XG4gICAgICAgICRzY29wZS5tb2RlbCA9IEt1YmVybmV0ZXNNb2RlbDtcblxuICAgICAgICAkc2NvcGUuaWQgPSAkcm91dGVQYXJhbXNbXCJpZFwiXTtcbiAgICAgICAgJHNjb3BlLmpvYklkID0gJHJvdXRlUGFyYW1zW1wiam9iXCJdO1xuICAgICAgICAkc2NvcGUuYnVpbGRJZCA9ICRyb3V0ZVBhcmFtc1tcImJ1aWxkXCJdO1xuICAgICAgICAkc2NvcGUuc2NoZW1hID0gS3ViZXJuZXRlc1NjaGVtYTtcbiAgICAgICAgJHNjb3BlLmVudGl0eUNoYW5nZWRDYWNoZSA9IHt9O1xuXG4gICAgICAgICRzY29wZS5sb2cgPSB7XG4gICAgICAgICAgaHRtbDogXCJcIixcbiAgICAgICAgICBzdGFydDogMCxcbiAgICAgICAgICBmaXJzdElkeDogbnVsbFxuICAgICAgICB9O1xuXG4gICAgICAgICRzY29wZS4kb24oJ2t1YmVybmV0ZXNNb2RlbFVwZGF0ZWQnLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgdXBkYXRlSmVua2luc0xpbmsoKTtcbiAgICAgICAgICBDb3JlLiRhcHBseSgkc2NvcGUpO1xuICAgICAgICB9KTtcblxuXG4gICAgICAgIEt1YmVybmV0ZXMuaW5pdFNoYXJlZCgkc2NvcGUsICRsb2NhdGlvbiwgJGh0dHAsICR0aW1lb3V0LCAkcm91dGVQYXJhbXMsIEt1YmVybmV0ZXNNb2RlbCwgS3ViZXJuZXRlc1N0YXRlLCBLdWJlcm5ldGVzQXBpVVJMKTtcbiAgICAgICAgJHNjb3BlLmJyZWFkY3J1bWJDb25maWcgPSBjcmVhdGVKZW5raW5zQnJlYWRjcnVtYnMoJHNjb3BlLmlkLCAkc2NvcGUuam9iSWQsICRzY29wZS5idWlsZElkKTtcbiAgICAgICAgJHNjb3BlLnN1YlRhYkNvbmZpZyA9IGNyZWF0ZUplbmtpbnNTdWJOYXZCYXJzKCRzY29wZS5pZCwgJHNjb3BlLmpvYklkLCAkc2NvcGUuYnVpbGRJZCwge1xuICAgICAgICAgIGxhYmVsOiBcIkxvZ1wiLFxuICAgICAgICAgIHRpdGxlOiBcIlZpZXdzIHRoZSBsb2dzIG9mIHRoaXMgYnVpbGRcIlxuICAgICAgICB9KTtcblxuXG4gICAgICAgIGZ1bmN0aW9uIHVwZGF0ZUplbmtpbnNMaW5rKCkge1xuICAgICAgICAgIHZhciBqZW5raW5zVXJsID0gamVua2luc0xpbmsoKTtcbiAgICAgICAgICBpZiAoamVua2luc1VybCkge1xuICAgICAgICAgICAgJHNjb3BlLiR2aWV3SmVua2luc0J1aWxkTGluayA9IFVybEhlbHBlcnMuam9pbihqZW5raW5zVXJsLCBcImpvYlwiLCAkc2NvcGUuam9iSWQsICRzY29wZS5idWlsZElkKTtcbiAgICAgICAgICAgICRzY29wZS4kdmlld0plbmtpbnNMb2dMaW5rID0gVXJsSGVscGVycy5qb2luKCRzY29wZS4kdmlld0plbmtpbnNCdWlsZExpbmssIFwiY29uc29sZVwiKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgcXVlcnlTaXplID0gNTAwMDA7XG5cbiAgICAgICAgJHNjb3BlLiRrZWVwUG9sbGluZyA9ICgpID0+IEt1YmVybmV0ZXMua2VlcFBvbGxpbmdNb2RlbDtcbiAgICAgICAgJHNjb3BlLmZldGNoID0gUG9sbEhlbHBlcnMuc2V0dXBQb2xsaW5nKCRzY29wZSwgKG5leHQ6KCkgPT4gdm9pZCkgPT4ge1xuICAgICAgICAgIGlmICgkc2NvcGUuam9iSWQpIHtcbiAgICAgICAgICAgIHZhciB1cmwgPSBLdWJlcm5ldGVzLmt1YmVybmV0ZXNQcm94eVVybEZvclNlcnZpY2VDdXJyZW50TmFtZXNwYWNlKGplbmtpbnNTZXJ2aWNlTmFtZUFuZFBvcnQsIFVybEhlbHBlcnMuam9pbihcImpvYlwiLCAkc2NvcGUuam9iSWQsICRzY29wZS5idWlsZElkLCBcImZhYnJpYzgvbG9nSHRtbD90YWlsPTEmc3RhcnQ9XCIgKyAkc2NvcGUubG9nLnN0YXJ0ICsgXCImc2l6ZT1cIiArIHF1ZXJ5U2l6ZSkpO1xuICAgICAgICAgICAgaWYgKCRzY29wZS5sb2cuZmlyc3RJZHggIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgdXJsICs9IFwiJmZpcnN0PVwiICsgJHNjb3BlLmxvZy5maXJzdElkeDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh1cmwgJiYgKCEkc2NvcGUubG9nLmZldGNoZWQgfHwgS3ViZXJuZXRlcy5rZWVwUG9sbGluZ01vZGVsKSkge1xuICAgICAgICAgICAgICAkaHR0cC5nZXQodXJsKS5cbiAgICAgICAgICAgICAgICBzdWNjZXNzKGZ1bmN0aW9uIChkYXRhLCBzdGF0dXMsIGhlYWRlcnMsIGNvbmZpZykge1xuICAgICAgICAgICAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHJlcGxhY2VDbHVzdGVySVBzSW5IdG1sID0gcmVwbGFjZUNsdXN0ZXJJcEZ1bmN0aW9uKCk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKCEkc2NvcGUubG9nLmxvZ3MpIHtcbiAgICAgICAgICAgICAgICAgICAgICAkc2NvcGUubG9nLmxvZ3MgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB2YXIgbGluZXMgPSBkYXRhLmxpbmVzO1xuICAgICAgICAgICAgICAgICAgICB2YXIgcmV0dXJuZWRMZW5ndGggPSBkYXRhLnJldHVybmVkTGVuZ3RoO1xuICAgICAgICAgICAgICAgICAgICB2YXIgbG9nTGVuZ3RoID0gZGF0YS5sb2dMZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgIHZhciByZXR1cm5lZFN0YXJ0ID0gZGF0YS5zdGFydDtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGVhcmxpZXJMb2cgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGFuZ3VsYXIuaXNEZWZpbmVkKHJldHVybmVkU3RhcnQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgZWFybGllckxvZyA9IHJldHVybmVkU3RhcnQgPCAkc2NvcGUubG9nLnN0YXJ0O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHZhciBsaW5lU3BsaXQgPSBkYXRhLmxpbmVTcGxpdDtcbiAgICAgICAgICAgICAgICAgICAgLy8gbG9nLmluZm8oXCJzdGFydCB3YXM6IFwiICsgJHNjb3BlLmxvZy5zdGFydCArIFwiIGZpcnN0OiBcIiArICRzY29wZS5sb2cuZmlyc3RJZHggKyBcIiA9PiByZXR1cm5lZExlbmd0aDogXCIgKyByZXR1cm5lZExlbmd0aCArIFwiIGxvZ0xlbmd0aDogXCIgKyBsb2dMZW5ndGggKyAgXCIgcmV0dXJuZWRTdGFydDogXCIgKyByZXR1cm5lZFN0YXJ0ICsgXCIgZWFybGllckxvZzogXCIgKyBlYXJsaWVyTG9nICsgXCIgbGluZVNwbGl0OiBcIiArIGxpbmVTcGxpdCk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChsaW5lcykge1xuICAgICAgICAgICAgICAgICAgICAgIHZhciBjdXJyZW50TG9ncyA9ICRzY29wZS5sb2cubG9ncztcblxuICAgICAgICAgICAgICAgICAgICAgIC8vIGxldHMgcmUtam9pbiBzcGxpdCBsaW5lc1xuICAgICAgICAgICAgICAgICAgICAgIGlmIChsaW5lU3BsaXQgJiYgY3VycmVudExvZ3MubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgbGFzdEluZGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHJlc3RPZkxpbmU7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZWFybGllckxvZykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBsYXN0SW5kZXggPSAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICByZXN0T2ZMaW5lID0gbGluZXMucG9wKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN0T2ZMaW5lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudExvZ3NbbGFzdEluZGV4XSA9IHJlcGxhY2VDbHVzdGVySVBzSW5IdG1sKHJlc3RPZkxpbmUgKyBjdXJyZW50TG9nc1tsYXN0SW5kZXhdKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdEluZGV4ID0gY3VycmVudExvZ3MubGVuZ3RoIC0gMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdE9mTGluZSA9IGxpbmVzLnNoaWZ0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN0T2ZMaW5lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudExvZ3NbbGFzdEluZGV4XSA9IHJlcGxhY2VDbHVzdGVySVBzSW5IdG1sKGN1cnJlbnRMb2dzW2xhc3RJbmRleF0gKyByZXN0T2ZMaW5lKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxpbmVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5lc1tpXSA9IHJlcGxhY2VDbHVzdGVySVBzSW5IdG1sKGxpbmVzW2ldKTtcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgaWYgKGVhcmxpZXJMb2cpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICRzY29wZS5sb2cubG9ncyA9IGxpbmVzLmNvbmNhdChjdXJyZW50TG9ncyk7XG4gICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICRzY29wZS5sb2cubG9ncyA9IGN1cnJlbnRMb2dzLmNvbmNhdChsaW5lcyk7XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHZhciBtb3ZlRm9yd2FyZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIGlmIChhbmd1bGFyLmlzRGVmaW5lZChyZXR1cm5lZFN0YXJ0KSkge1xuICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXR1cm5lZFN0YXJ0ID4gJHNjb3BlLmxvZy5zdGFydCAmJiAkc2NvcGUubG9nLnN0YXJ0ID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB3ZSd2ZSBqdW1wZWQgdG8gdGhlIGVuZCBvZiB0aGUgZmlsZSB0byByZWFkIHRoZSB0YWlsIG9mIGl0XG4gICAgICAgICAgICAgICAgICAgICAgICAkc2NvcGUubG9nLnN0YXJ0ID0gcmV0dXJuZWRTdGFydDtcbiAgICAgICAgICAgICAgICAgICAgICAgICRzY29wZS5sb2cuZmlyc3RJZHggPSByZXR1cm5lZFN0YXJ0O1xuICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoJHNjb3BlLmxvZy5maXJzdElkeCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gbGV0cyByZW1lbWJlciB3aGVyZSB0aGUgZmlyc3QgcmVxdWVzdCBzdGFydGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAkc2NvcGUubG9nLmZpcnN0SWR4ID0gcmV0dXJuZWRTdGFydDtcbiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHJldHVybmVkU3RhcnQgPCAkc2NvcGUubG9nLmZpcnN0SWR4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB3ZSd2ZSBnb3QgYW4gZWFybGllciBiaXQgb2YgdGhlIGxvZ1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gYWZ0ZXIgc3RhcnRpbmcgYXQgdGhlIHRhaWxcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNvIGxldHMgbW92ZSBmaXJzdElkeCBiYWNrd2FyZHMgYW5kIGxlYXZlIHN0YXJ0IGFzIGl0IGlzIChhdCB0aGUgZW5kIG9mIHRoZSBmaWxlKVxuICAgICAgICAgICAgICAgICAgICAgICAgJHNjb3BlLmxvZy5maXJzdElkeCA9IHJldHVybmVkU3RhcnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBtb3ZlRm9yd2FyZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAobW92ZUZvcndhcmQgJiYgcmV0dXJuZWRMZW5ndGggJiYgIWVhcmxpZXJMb2cpIHtcbiAgICAgICAgICAgICAgICAgICAgICAkc2NvcGUubG9nLnN0YXJ0ICs9IHJldHVybmVkTGVuZ3RoO1xuICAgICAgICAgICAgICAgICAgICAgIGlmIChsb2dMZW5ndGggJiYgJHNjb3BlLmxvZy5zdGFydCA+IGxvZ0xlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgJHNjb3BlLmxvZy5zdGFydCA9IGxvZ0xlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlSmVua2luc0xpbmsoKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICRzY29wZS5sb2cuZmV0Y2hlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICBDb3JlLiRhcHBseSgkc2NvcGUpO1xuICAgICAgICAgICAgICAgICAgbmV4dCgpO1xuICAgICAgICAgICAgICAgIH0pLlxuICAgICAgICAgICAgICAgIGVycm9yKGZ1bmN0aW9uIChkYXRhLCBzdGF0dXMsIGhlYWRlcnMsIGNvbmZpZykge1xuICAgICAgICAgICAgICAgICAgbG9nLndhcm4oXCJGYWlsZWQgdG8gbG9hZCBcIiArIHVybCArIFwiIFwiICsgZGF0YSArIFwiIFwiICsgc3RhdHVzKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgJHNjb3BlLmxvZy5mZXRjaGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIENvcmUuJGFwcGx5KCRzY29wZSk7XG4gICAgICAgICAgICBuZXh0KCk7XG5cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgICRzY29wZS5mZXRjaCgpO1xuXG5cblxuICAgICAgICBmdW5jdGlvbiByZXBsYWNlQ2x1c3RlcklwRnVuY3Rpb24oKSB7XG4gICAgICAgICAgZnVuY3Rpb24gY3JlYXRlUmVwbGFjZUZ1bmN0aW9uKGZyb20sIHRvKSB7XG4gICAgICAgICAgICByZXR1cm4gKHRleHQpID0+IHJlcGxhY2VUZXh0KHRleHQsIGZyb20sIHRvKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB2YXIgcmVwbGFjZW1lbnRzID0gW107XG4gICAgICAgICAgYW5ndWxhci5mb3JFYWNoKCRzY29wZS5tb2RlbC5zZXJ2aWNlcywgKHNlcnZpY2UpID0+IHtcbiAgICAgICAgICAgIHZhciAkcG9ydGFsSVAgPSBzZXJ2aWNlLiRwb3J0YWxJUDtcbiAgICAgICAgICAgIHZhciAkc2VydmljZVVybCA9IHNlcnZpY2UuJHNlcnZpY2VVcmw7XG4gICAgICAgICAgICB2YXIgJHBvcnRzVGV4dCA9IHNlcnZpY2UuJHBvcnRzVGV4dDtcbiAgICAgICAgICAgIGlmICgkcG9ydGFsSVAgJiYgJHNlcnZpY2VVcmwpIHtcbiAgICAgICAgICAgICAgdmFyIGlkeCA9ICRzZXJ2aWNlVXJsLmluZGV4T2YoXCI6Ly9cIik7XG4gICAgICAgICAgICAgIGlmIChpZHggPiAwKSB7XG4gICAgICAgICAgICAgICAgdmFyIHJlcGxhY2VXaXRoID0gJHNlcnZpY2VVcmwuc3Vic3RyaW5nKGlkeCwgJHNlcnZpY2VVcmwubGVuZ3RoKTtcbiAgICAgICAgICAgICAgICBpZiAoIXJlcGxhY2VXaXRoLmVuZHNXaXRoKFwiL1wiKSkge1xuICAgICAgICAgICAgICAgICAgcmVwbGFjZVdpdGggKz0gXCIvXCI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChyZXBsYWNlV2l0aC5sZW5ndGggPiA0KSB7XG4gICAgICAgICAgICAgICAgICByZXBsYWNlbWVudHMucHVzaChjcmVhdGVSZXBsYWNlRnVuY3Rpb24oXG4gICAgICAgICAgICAgICAgICAgIFwiOi8vXCIgKyAkcG9ydGFsSVAgKyBcIi9cIixcbiAgICAgICAgICAgICAgICAgICAgcmVwbGFjZVdpdGhcbiAgICAgICAgICAgICAgICAgICkpO1xuICAgICAgICAgICAgICAgICAgaWYgKCRwb3J0c1RleHQpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHN1ZmZpeCA9IFwiOlwiICsgJHBvcnRzVGV4dDtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHNlcnZpY2VXaXRoUG9ydCA9IHJlcGxhY2VXaXRoLnN1YnN0cmluZygwLCByZXBsYWNlV2l0aC5sZW5ndGggLSAxKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFzZXJ2aWNlV2l0aFBvcnQuZW5kc1dpdGgoc3VmZml4KSkge1xuICAgICAgICAgICAgICAgICAgICAgIHNlcnZpY2VXaXRoUG9ydCArPSBzdWZmaXg7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgc2VydmljZVdpdGhQb3J0ICs9IFwiL1wiO1xuICAgICAgICAgICAgICAgICAgICByZXBsYWNlbWVudHMucHVzaChjcmVhdGVSZXBsYWNlRnVuY3Rpb24oXG4gICAgICAgICAgICAgICAgICAgICAgXCI6Ly9cIiArICRwb3J0YWxJUCArIFwiOlwiICsgJHBvcnRzVGV4dCArIFwiL1wiLFxuICAgICAgICAgICAgICAgICAgICAgIHNlcnZpY2VXaXRoUG9ydFxuICAgICAgICAgICAgICAgICAgICApKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIGZ1bmN0aW9uIGFkZFJlcGxhY2VGbihmcm9tLCB0bykge1xuICAgICAgICAgICAgcmVwbGFjZW1lbnRzLnB1c2goKHRleHQpID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIHJlcGxhY2VUZXh0KHRleHQsIGZyb20sIHRvKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgfVxuICAgICAgICAgIGFkZFJlcGxhY2VGbihcIltJTkZPXVwiLCBcIjxzcGFuIGNsYXNzPSdsb2ctc3VjY2Vzcyc+W0lORk9dPC9zcGFuPlwiKTtcbiAgICAgICAgICBhZGRSZXBsYWNlRm4oXCJbV0FSTl1cIiwgXCI8c3BhbiBjbGFzcz0nbG9nLXdhcm4nPltXQVJOXTwvc3Bhbj5cIik7XG4gICAgICAgICAgYWRkUmVwbGFjZUZuKFwiW1dBUk5JTkddXCIsIFwiPHNwYW4gY2xhc3M9J2xvZy13YXJuJz5bV0FSTklOR108L3NwYW4+XCIpO1xuICAgICAgICAgIGFkZFJlcGxhY2VGbihcIltFUlJPUl1cIiwgXCI8c3BhbiBjbGFzcz0nbG9nLWVycm9yJz5bRVJST1JdPC9zcGFuPlwiKTtcbiAgICAgICAgICBhZGRSZXBsYWNlRm4oXCJGQUlMVVJFXCIsIFwiPHNwYW4gY2xhc3M9J2xvZy1lcnJvcic+RkFJTFVSRTwvc3Bhbj5cIik7XG4gICAgICAgICAgYWRkUmVwbGFjZUZuKFwiU1VDQ0VTU1wiLCBcIjxzcGFuIGNsYXNzPSdsb2ctc3VjY2Vzcyc+U1VDQ0VTUzwvc3Bhbj5cIik7XG5cbiAgICAgICAgICByZXR1cm4gZnVuY3Rpb24odGV4dCkge1xuICAgICAgICAgICAgdmFyIGFuc3dlciA9IHRleHQ7XG4gICAgICAgICAgICBhbmd1bGFyLmZvckVhY2gocmVwbGFjZW1lbnRzLCAoZm4pID0+IHtcbiAgICAgICAgICAgICAgYW5zd2VyID0gZm4oYW5zd2VyKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIGFuc3dlcjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBmdW5jdGlvbiByZXBsYWNlVGV4dCh0ZXh0LCBmcm9tLCB0bykge1xuICAgICAgICAgIGlmIChmcm9tICYmIHRvICYmIHRleHQpIHtcbiAgICAgICAgICAgIC8vbG9nLmluZm8oXCJSZXBsYWNpbmcgJ1wiICsgZnJvbSArIFwiJyA9PiAnXCIgKyB0byArIFwiJ1wiKTtcbiAgICAgICAgICAgIHZhciBpZHggPSAwO1xuICAgICAgICAgICAgd2hpbGUgKHRydWUpIHtcbiAgICAgICAgICAgICAgaWR4ID0gdGV4dC5pbmRleE9mKGZyb20sIGlkeCk7XG4gICAgICAgICAgICAgIGlmIChpZHggPj0gMCkge1xuICAgICAgICAgICAgICAgIHRleHQgPSB0ZXh0LnN1YnN0cmluZygwLCBpZHgpICsgdG8gKyB0ZXh0LnN1YnN0cmluZyhpZHggKyBmcm9tLmxlbmd0aCk7XG4gICAgICAgICAgICAgICAgaWR4ICs9IHRvLmxlbmd0aDtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdGV4dDtcbiAgICAgICAgfVxuICAgICAgfV0pO1xufVxuIiwiLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4uLy4uL2luY2x1ZGVzLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4uLy4uL2t1YmVybmV0ZXMvdHMva3ViZXJuZXRlc0hlbHBlcnMudHNcIi8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwiZGV2ZWxvcGVyRW5yaWNoZXJzLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cImRldmVsb3BlckhlbHBlcnMudHNcIi8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwiZGV2ZWxvcGVyTmF2aWdhdGlvbi50c1wiLz5cblxubW9kdWxlIERldmVsb3BlciB7XG5cbiAgZXhwb3J0IHZhciBKZW5raW5zTWV0cmljc0NvbnRyb2xsZXIgPSBjb250cm9sbGVyKFwiSmVua2luc01ldHJpY3NDb250cm9sbGVyXCIsXG4gICAgW1wiJHNjb3BlXCIsIFwiS3ViZXJuZXRlc01vZGVsXCIsIFwiS3ViZXJuZXRlc1N0YXRlXCIsIFwiS3ViZXJuZXRlc1NjaGVtYVwiLCBcIiR0ZW1wbGF0ZUNhY2hlXCIsIFwiJGxvY2F0aW9uXCIsIFwiJHJvdXRlUGFyYW1zXCIsIFwiJGh0dHBcIiwgXCIkdGltZW91dFwiLCBcIkt1YmVybmV0ZXNBcGlVUkxcIiwgXCJTZXJ2aWNlUmVnaXN0cnlcIixcbiAgICAgICgkc2NvcGUsIEt1YmVybmV0ZXNNb2RlbDpLdWJlcm5ldGVzLkt1YmVybmV0ZXNNb2RlbFNlcnZpY2UsIEt1YmVybmV0ZXNTdGF0ZSwgS3ViZXJuZXRlc1NjaGVtYSxcbiAgICAgICAkdGVtcGxhdGVDYWNoZTpuZy5JVGVtcGxhdGVDYWNoZVNlcnZpY2UsICRsb2NhdGlvbjpuZy5JTG9jYXRpb25TZXJ2aWNlLCAkcm91dGVQYXJhbXMsICRodHRwLCAkdGltZW91dCwgS3ViZXJuZXRlc0FwaVVSTCwgU2VydmljZVJlZ2lzdHJ5KSA9PiB7XG5cbiAgICAgICAgJHNjb3BlLmt1YmVybmV0ZXMgPSBLdWJlcm5ldGVzU3RhdGU7XG4gICAgICAgICRzY29wZS5tb2RlbCA9IEt1YmVybmV0ZXNNb2RlbDtcbiAgICAgICAgJHNjb3BlLmlkID0gJHJvdXRlUGFyYW1zW1wiaWRcIl07XG4gICAgICAgICRzY29wZS5qb2JJZCA9ICRyb3V0ZVBhcmFtc1tcImpvYlwiXTtcbiAgICAgICAgJHNjb3BlLnNjaGVtYSA9IEt1YmVybmV0ZXNTY2hlbWE7XG4gICAgICAgICRzY29wZS5qZW5raW5zID0gbnVsbDtcbiAgICAgICAgJHNjb3BlLmVudGl0eUNoYW5nZWRDYWNoZSA9IHt9O1xuXG4gICAgICAgIEt1YmVybmV0ZXMuaW5pdFNoYXJlZCgkc2NvcGUsICRsb2NhdGlvbiwgJGh0dHAsICR0aW1lb3V0LCAkcm91dGVQYXJhbXMsIEt1YmVybmV0ZXNNb2RlbCwgS3ViZXJuZXRlc1N0YXRlLCBLdWJlcm5ldGVzQXBpVVJMKTtcbiAgICAgICAgJHNjb3BlLmJyZWFkY3J1bWJDb25maWcgPSBEZXZlbG9wZXIuY3JlYXRlUHJvamVjdEJyZWFkY3J1bWJzKCRzY29wZS5pZCk7XG4gICAgICAgICRzY29wZS5zdWJUYWJDb25maWcgPSBEZXZlbG9wZXIuY3JlYXRlUHJvamVjdFN1Yk5hdkJhcnMoJHNjb3BlLmlkLCAkc2NvcGUuam9iSWQpO1xuXG4gICAgICAgICRzY29wZS4kb24oJ2t1YmVybmV0ZXNNb2RlbFVwZGF0ZWQnLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgdXBkYXRlRGF0YSgpO1xuICAgICAgICB9KTtcblxuICAgICAgICAkc2NvcGUuJG9uKCckcm91dGVVcGRhdGUnLCAoJGV2ZW50KSA9PiB7XG4gICAgICAgICAgdXBkYXRlRGF0YSgpO1xuICAgICAgICB9KTtcblxuICAgICAgICAkc2NvcGUub3B0aW9ucyA9IHtcbiAgICAgICAgICBjaGFydDoge1xuICAgICAgICAgICAgdHlwZTogJ2Rpc2NyZXRlQmFyQ2hhcnQnLFxuICAgICAgICAgICAgYXV0b3JlZnJlc2g6IGZhbHNlLFxuICAgICAgICAgICAgaGVpZ2h0OiA0NTAsXG4gICAgICAgICAgICBtYXJnaW46IHtcbiAgICAgICAgICAgICAgdG9wOiAyMCxcbiAgICAgICAgICAgICAgcmlnaHQ6IDIwLFxuICAgICAgICAgICAgICBib3R0b206IDYwLFxuICAgICAgICAgICAgICBsZWZ0OiA0NVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNsaXBFZGdlOiB0cnVlLFxuICAgICAgICAgICAgc3RhZ2dlckxhYmVsczogZmFsc2UsXG4gICAgICAgICAgICB0cmFuc2l0aW9uRHVyYXRpb246IDUwMCxcbiAgICAgICAgICAgIHN0YWNrZWQ6IGZhbHNlLFxuICAgICAgICAgICAgaW50ZXJhY3RpdmU6IHRydWUsXG4gICAgICAgICAgICB0b29sdGlwOiB7XG4gICAgICAgICAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgICAgIGNvbnRlbnRHZW5lcmF0b3I6IChhcmdzKSA9PiB7XG4gICAgICAgICAgICAgICAgdmFyIGRhdGEgPSBhcmdzLmRhdGEgfHwge307XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRhdGEudG9vbHRpcDtcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjb2xvcjogKGQsIGkpID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIGQuY29sb3I7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgeEF4aXM6IHtcbiAgICAgICAgICAgICAgYXhpc0xhYmVsOiAnQnVpbGRzJyxcbiAgICAgICAgICAgICAgc2hvd01heE1pbjogZmFsc2UsXG4gICAgICAgICAgICAgIHRpY2tGb3JtYXQ6IGZ1bmN0aW9uIChkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiI1wiICsgZDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHlBeGlzOiB7XG4gICAgICAgICAgICAgIGF4aXNMYWJlbDogJ0J1aWxkIER1cmF0aW9uIChzZWNvbmRzKScsXG4gICAgICAgICAgICAgIHRpY2tGb3JtYXQ6IGZ1bmN0aW9uIChkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGQzLmZvcm1hdCgnLC4xZicpKGQpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgICRzY29wZS5kYXRhID0gW107XG5cbiAgICAgICAgdXBkYXRlRGF0YSgpO1xuXG4gICAgICAgIGZ1bmN0aW9uIGJhckNvbG91ckZvckJ1aWxkUmVzdWx0KHJlc3VsdCkge1xuICAgICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICAgIGlmIChyZXN1bHQgPT09IFwiRkFJTFVSRVwiIHx8IHJlc3VsdCA9PT0gXCJGQUlMRURcIikge1xuICAgICAgICAgICAgICByZXR1cm4gXCJyZWRcIjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAocmVzdWx0ID09PSBcIkFCT1JURURcIiB8fCByZXN1bHQgPT09IFwiSU5URVJVUFRFRFwiKSB7XG4gICAgICAgICAgICAgIHJldHVybiBcInRhblwiO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQgPT09IFwiU1VDQ0VTU1wiKSB7XG4gICAgICAgICAgICAgIHJldHVybiBcImdyZWVuXCI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdCA9PT0gXCJOT1RfU1RBUlRFRFwiKSB7XG4gICAgICAgICAgICAgIHJldHVybiBcImxpZ2h0Z3JleVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBcImRhcmtncmV5XCI7XG4gICAgICAgIH1cblxuXG4gICAgICAgIGZ1bmN0aW9uIHVwZGF0ZUNoYXJ0RGF0YSgpIHtcbiAgICAgICAgICB2YXIgdXNlU2luZ2xlU2V0ID0gdHJ1ZTtcbiAgICAgICAgICB2YXIgYnVpbGRzU3VjY2VlZGVkID0gW107XG4gICAgICAgICAgdmFyIGJ1aWxkc0ZhaWxlZCA9IFtdO1xuICAgICAgICAgIHZhciBzdWNjZXNzQnVpbGRLZXkgPSBcIlN1Y2NlZWRlZCBidWlsZHNcIjtcbiAgICAgICAgICB2YXIgZmFpbGVkQnVpbGRLZXkgPSBcIkZhaWxlZCBidWlsZHNcIjtcblxuICAgICAgICAgIGlmICh1c2VTaW5nbGVTZXQpIHtcbiAgICAgICAgICAgIHN1Y2Nlc3NCdWlsZEtleSA9IFwiQnVpbGRzXCI7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdmFyIGNvdW50ID0gMDtcbiAgICAgICAgICB2YXIgYnVpbGRzID0gXy5zb3J0QnkoJHNjb3BlLm1ldHJpY3MuYnVpbGRzIHx8IFtdLCBcIm51bWJlclwiKTtcbiAgICAgICAgICBhbmd1bGFyLmZvckVhY2goYnVpbGRzLCAoYnVpbGQpID0+IHtcbiAgICAgICAgICAgIHZhciB4ID0gYnVpbGQubnVtYmVyO1xuICAgICAgICAgICAgdmFyIHkgPSBidWlsZC5kdXJhdGlvbiAvIDEwMDA7XG4gICAgICAgICAgICB2YXIgZGF0ZSA9IERldmVsb3Blci5hc0RhdGUoYnVpbGQudGltZUluTWlsbGlzKTtcbiAgICAgICAgICAgIHZhciByZXN1bHQgPSBidWlsZC5yZXN1bHQgfHwgXCJOT1RfU1RBUlRFRFwiO1xuICAgICAgICAgICAgdmFyIGNvbG9yID0gYmFyQ29sb3VyRm9yQnVpbGRSZXN1bHQocmVzdWx0KTtcbiAgICAgICAgICAgIHZhciBpY29uQ2xhc3MgPSBjcmVhdGVCdWlsZFN0YXR1c0ljb25DbGFzcyhyZXN1bHQpO1xuICAgICAgICAgICAgdmFyIHRvb2x0aXAgPSAnPGgzPjxpIGNsYXNzPVwiJyArIGljb25DbGFzcyArICdcIj48L2k+ICcgKyBidWlsZC5kaXNwbGF5TmFtZSArICc8L2gzPicgK1xuICAgICAgICAgICAgICAnPHA+ZHVyYXRpb246IDxiPicgKyB5ICsgJzwvYj4gc2Vjb25kczwvcD4nO1xuICAgICAgICAgICAgaWYgKGRhdGUpIHtcbiAgICAgICAgICAgICAgdG9vbHRpcCArPSAnPHA+c3RhcnRlZDogPGI+JyArIGRhdGUgKyAnPC9iPjwvcD4nO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgICAgICB0b29sdGlwICs9ICc8cD5yZXN1bHQ6IDxiPicgKyByZXN1bHQgKyAnPC9iPjwvcD4nO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoeCkge1xuICAgICAgICAgICAgICB2YXIgZGF0YSA9IGJ1aWxkc1N1Y2NlZWRlZDtcbiAgICAgICAgICAgICAgdmFyIGtleSA9IHN1Y2Nlc3NCdWlsZEtleTtcbiAgICAgICAgICAgICAgaWYgKCFzdWNjZXNzQnVpbGRLZXkgJiYgKCFyZXN1bHQgfHwgIXJlc3VsdC5zdGFydHNXaXRoKFwiU1VDQ1wiKSkpIHtcbiAgICAgICAgICAgICAgICBkYXRhID0gYnVpbGRzRmFpbGVkO1xuICAgICAgICAgICAgICAgIGtleSA9IGZhaWxlZEJ1aWxkS2V5O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGRhdGEucHVzaCh7XG4gICAgICAgICAgICAgICAgdG9vbHRpcDogdG9vbHRpcCxcbiAgICAgICAgICAgICAgICBjb2xvcjogY29sb3IsXG4gICAgICAgICAgICAgICAgeDogeCwgeTogeX0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICAgICRzY29wZS5kYXRhID0gW107XG4gICAgICAgICAgaWYgKGJ1aWxkc1N1Y2NlZWRlZC5sZW5ndGgpIHtcbiAgICAgICAgICAgICRzY29wZS5kYXRhLnB1c2goe1xuICAgICAgICAgICAgICBrZXk6IHN1Y2Nlc3NCdWlsZEtleSxcbiAgICAgICAgICAgICAgdmFsdWVzOiBidWlsZHNTdWNjZWVkZWRcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoYnVpbGRzRmFpbGVkLmxlbmd0aCkge1xuICAgICAgICAgICAgJHNjb3BlLmRhdGEucHVzaCh7XG4gICAgICAgICAgICAgIGtleTogZmFpbGVkQnVpbGRLZXksXG4gICAgICAgICAgICAgIHZhbHVlczogYnVpbGRzRmFpbGVkXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgJHNjb3BlLmFwaS51cGRhdGVXaXRoRGF0YSgkc2NvcGUuZGF0YSk7XG5cbiAgICAgICAgICAkdGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAkc2NvcGUuYXBpLnVwZGF0ZSgpO1xuICAgICAgICAgIH0sIDUwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZ1bmN0aW9uIHVwZGF0ZURhdGEoKSB7XG4gICAgICAgICAgdmFyIG1ldHJpY3NQYXRoID0gJHNjb3BlLmpvYklkID8gVXJsSGVscGVycy5qb2luKFwiam9iXCIsICRzY29wZS5qb2JJZCwgXCJmYWJyaWM4L21ldHJpY3NcIikgOiBcImZhYnJpYzgvbWV0cmljc1wiO1xuICAgICAgICAgIHZhciB1cmwgPSBLdWJlcm5ldGVzLmt1YmVybmV0ZXNQcm94eVVybEZvclNlcnZpY2VDdXJyZW50TmFtZXNwYWNlKGplbmtpbnNTZXJ2aWNlTmFtZUFuZFBvcnQsIG1ldHJpY3NQYXRoKTtcbiAgICAgICAgICBsb2cuaW5mbyhcIlwiKTtcbiAgICAgICAgICBpZiAodXJsICYmICghJHNjb3BlLmplbmtpbnMgfHwgS3ViZXJuZXRlcy5rZWVwUG9sbGluZ01vZGVsKSkge1xuICAgICAgICAgICAgJGh0dHAuZ2V0KHVybCwgamVua2luc0h0dHBDb25maWcpLlxuICAgICAgICAgICAgICBzdWNjZXNzKGZ1bmN0aW9uIChkYXRhLCBzdGF0dXMsIGhlYWRlcnMsIGNvbmZpZykge1xuICAgICAgICAgICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICAgICAgICBpZiAoaGFzT2JqZWN0Q2hhbmdlZChkYXRhLCAkc2NvcGUuZW50aXR5Q2hhbmdlZENhY2hlKSkge1xuICAgICAgICAgICAgICAgICAgICBsb2cuaW5mbyhcImVudGl0eSBoYXMgY2hhbmdlZCFcIik7XG4gICAgICAgICAgICAgICAgICAgICRzY29wZS5tZXRyaWNzID0gZGF0YTtcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlQ2hhcnREYXRhKCk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICRzY29wZS5tb2RlbC5mZXRjaGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBDb3JlLiRhcHBseSgkc2NvcGUpO1xuICAgICAgICAgICAgICB9KS5cbiAgICAgICAgICAgICAgZXJyb3IoZnVuY3Rpb24gKGRhdGEsIHN0YXR1cywgaGVhZGVycywgY29uZmlnKSB7XG4gICAgICAgICAgICAgICAgbG9nLndhcm4oXCJGYWlsZWQgdG8gbG9hZCBcIiArIHVybCArIFwiIFwiICsgZGF0YSArIFwiIFwiICsgc3RhdHVzKTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XSk7XG59XG4iLCIvLy8gPHJlZmVyZW5jZSBwYXRoPVwiLi4vLi4vaW5jbHVkZXMudHNcIi8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwiLi4vLi4va3ViZXJuZXRlcy90cy9rdWJlcm5ldGVzSGVscGVycy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJkZXZlbG9wZXJFbnJpY2hlcnMudHNcIi8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwiZGV2ZWxvcGVySGVscGVycy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJkZXZlbG9wZXJOYXZpZ2F0aW9uLnRzXCIvPlxuXG5tb2R1bGUgRGV2ZWxvcGVyIHtcblxuICBleHBvcnQgdmFyIE5hdkJhckNvbnRyb2xsZXIgPSBjb250cm9sbGVyKFwiTmF2QmFyQ29udHJvbGxlclwiLFxuICAgIFtcIiRzY29wZVwiLCBcIiRsb2NhdGlvblwiLCBcIiRyb3V0ZVBhcmFtc1wiLCBcIiR0aW1lb3V0XCIsIFwiS3ViZXJuZXRlc0FwaVVSTFwiLFxuICAgICAgKCRzY29wZSwgJGxvY2F0aW9uOm5nLklMb2NhdGlvblNlcnZpY2UsICRyb3V0ZVBhcmFtcywgJHRpbWVvdXQpID0+IHtcblxuICAgICAgICAkc2NvcGUuaXNWYWxpZCA9IChpdGVtKSA9PiB7XG4gICAgICAgICAgaWYgKGl0ZW0pIHtcbiAgICAgICAgICAgIHZhciB2YWx1ZSA9IGl0ZW0uaXNWYWxpZDtcbiAgICAgICAgICAgIGlmIChhbmd1bGFyLmlzRnVuY3Rpb24odmFsdWUpKSB7XG4gICAgICAgICAgICAgIHJldHVybiB2YWx1ZShpdGVtKVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGFuZ3VsYXIuaXNVbmRlZmluZWQodmFsdWUpIHx8IHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfV0pO1xufVxuIiwiLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4uLy4uL2luY2x1ZGVzLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4uLy4uL2t1YmVybmV0ZXMvdHMva3ViZXJuZXRlc0hlbHBlcnMudHNcIi8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwiZGV2ZWxvcGVyRW5yaWNoZXJzLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cImRldmVsb3BlckhlbHBlcnMudHNcIi8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwiZGV2ZWxvcGVyTmF2aWdhdGlvbi50c1wiLz5cblxubW9kdWxlIERldmVsb3BlciB7XG5cbiAgZXhwb3J0IHZhciBQaXBlbGluZUNvbnRyb2xsZXIgPSBjb250cm9sbGVyKFwiUGlwZWxpbmVDb250cm9sbGVyXCIsXG4gICAgW1wiJHNjb3BlXCIsIFwiS3ViZXJuZXRlc01vZGVsXCIsIFwiS3ViZXJuZXRlc1N0YXRlXCIsIFwiS3ViZXJuZXRlc1NjaGVtYVwiLCBcIiR0ZW1wbGF0ZUNhY2hlXCIsIFwiJGxvY2F0aW9uXCIsIFwiJHJvdXRlUGFyYW1zXCIsIFwiJGh0dHBcIiwgXCIkdGltZW91dFwiLCBcIkt1YmVybmV0ZXNBcGlVUkxcIiwgXCJTZXJ2aWNlUmVnaXN0cnlcIixcbiAgICAgICgkc2NvcGUsIEt1YmVybmV0ZXNNb2RlbDpLdWJlcm5ldGVzLkt1YmVybmV0ZXNNb2RlbFNlcnZpY2UsIEt1YmVybmV0ZXNTdGF0ZSwgS3ViZXJuZXRlc1NjaGVtYSxcbiAgICAgICAkdGVtcGxhdGVDYWNoZTpuZy5JVGVtcGxhdGVDYWNoZVNlcnZpY2UsICRsb2NhdGlvbjpuZy5JTG9jYXRpb25TZXJ2aWNlLCAkcm91dGVQYXJhbXMsICRodHRwLCAkdGltZW91dCwgS3ViZXJuZXRlc0FwaVVSTCwgU2VydmljZVJlZ2lzdHJ5KSA9PiB7XG5cbiAgICAgICAgJHNjb3BlLmt1YmVybmV0ZXMgPSBLdWJlcm5ldGVzU3RhdGU7XG4gICAgICAgICRzY29wZS5rdWJlTW9kZWwgPSBLdWJlcm5ldGVzTW9kZWw7XG4gICAgICAgICRzY29wZS5pZCA9ICRyb3V0ZVBhcmFtc1tcImlkXCJdO1xuICAgICAgICAkc2NvcGUuam9iSWQgPSAkcm91dGVQYXJhbXNbXCJqb2JcIl07XG4gICAgICAgICRzY29wZS5idWlsZElkID0gJHJvdXRlUGFyYW1zW1wiYnVpbGRcIl07XG4gICAgICAgICRzY29wZS5zY2hlbWEgPSBLdWJlcm5ldGVzU2NoZW1hO1xuICAgICAgICAkc2NvcGUuZW50aXR5Q2hhbmdlZENhY2hlID0ge307XG5cbiAgICAgICAgJHNjb3BlLm1vZGVsID0ge1xuICAgICAgICAgIHN0YWdlczogbnVsbFxuICAgICAgICB9O1xuICAgICAgICBLdWJlcm5ldGVzLmluaXRTaGFyZWQoJHNjb3BlLCAkbG9jYXRpb24sICRodHRwLCAkdGltZW91dCwgJHJvdXRlUGFyYW1zLCBLdWJlcm5ldGVzTW9kZWwsIEt1YmVybmV0ZXNTdGF0ZSwgS3ViZXJuZXRlc0FwaVVSTCk7XG4gICAgICAgICRzY29wZS5icmVhZGNydW1iQ29uZmlnID0gRGV2ZWxvcGVyLmNyZWF0ZVByb2plY3RCcmVhZGNydW1icygkc2NvcGUuaWQpO1xuICAgICAgICAkc2NvcGUuc3ViVGFiQ29uZmlnID0gRGV2ZWxvcGVyLmNyZWF0ZVByb2plY3RTdWJOYXZCYXJzKCRzY29wZS5pZCwgJHNjb3BlLmpvYklkKTtcblxuICAgICAgICAkc2NvcGUuJG9uKCdrdWJlcm5ldGVzTW9kZWxVcGRhdGVkJywgZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHVwZGF0ZURhdGEoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgJHNjb3BlLiRvbignJHJvdXRlVXBkYXRlJywgKCRldmVudCkgPT4ge1xuICAgICAgICAgIHVwZGF0ZURhdGEoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdXBkYXRlRGF0YSgpO1xuXG4gICAgICAgIGZ1bmN0aW9uIHVwZGF0ZURhdGEoKSB7XG4gICAgICAgICAgaWYgKCRzY29wZS5qb2JJZCkge1xuICAgICAgICAgICAgdmFyIHVybCA9IEt1YmVybmV0ZXMua3ViZXJuZXRlc1Byb3h5VXJsRm9yU2VydmljZUN1cnJlbnROYW1lc3BhY2UoamVua2luc1NlcnZpY2VOYW1lQW5kUG9ydCwgVXJsSGVscGVycy5qb2luKFwiam9iXCIsICRzY29wZS5qb2JJZCwgJHNjb3BlLmJ1aWxkSWQsIFwiZmFicmljOC9zdGFnZXMvXCIpKTtcbiAgICAgICAgICAgIGlmICh1cmwgJiYgKCEkc2NvcGUubW9kZWwuc3RhZ2VzIHx8IEt1YmVybmV0ZXMua2VlcFBvbGxpbmdNb2RlbCkpIHtcbiAgICAgICAgICAgICAgJGh0dHAuZ2V0KHVybCkuXG4gICAgICAgICAgICAgICAgc3VjY2VzcyhmdW5jdGlvbiAoZGF0YSwgc3RhdHVzLCBoZWFkZXJzLCBjb25maWcpIHtcbiAgICAgICAgICAgICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgIGVucmljaEplbmtpbnNTdGFnZXMoZGF0YSwgJHNjb3BlLmlkLCAkc2NvcGUuam9iSWQpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaGFzT2JqZWN0Q2hhbmdlZChkYXRhLCAkc2NvcGUuZW50aXR5Q2hhbmdlZENhY2hlKSkge1xuICAgICAgICAgICAgICAgICAgICAgIGxvZy5pbmZvKFwiZW50aXR5IGhhcyBjaGFuZ2VkIVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAkc2NvcGUuYnVpbGQgPSBkYXRhO1xuICAgICAgICAgICAgICAgICAgICAgICRzY29wZS5tb2RlbC5zdGFnZXMgPSBkYXRhLnN0YWdlcztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgJHNjb3BlLm1vZGVsLmZldGNoZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgQ29yZS4kYXBwbHkoJHNjb3BlKTtcbiAgICAgICAgICAgICAgICB9KS5cbiAgICAgICAgICAgICAgICBlcnJvcihmdW5jdGlvbiAoZGF0YSwgc3RhdHVzLCBoZWFkZXJzLCBjb25maWcpIHtcbiAgICAgICAgICAgICAgICAgIGxvZy53YXJuKFwiRmFpbGVkIHRvIGxvYWQgXCIgKyB1cmwgKyBcIiBcIiArIGRhdGEgKyBcIiBcIiArIHN0YXR1cyk7XG4gICAgICAgICAgICAgICAgICAkc2NvcGUubW9kZWwuZmV0Y2hlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICRzY29wZS5tb2RlbC5mZXRjaGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIENvcmUuJGFwcGx5KCRzY29wZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XSk7XG59XG4iLCIvLy8gPHJlZmVyZW5jZSBwYXRoPVwiLi4vLi4vaW5jbHVkZXMudHNcIi8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwiLi4vLi4va3ViZXJuZXRlcy90cy9rdWJlcm5ldGVzSGVscGVycy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJkZXZlbG9wZXJFbnJpY2hlcnMudHNcIi8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwiZGV2ZWxvcGVySGVscGVycy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJkZXZlbG9wZXJOYXZpZ2F0aW9uLnRzXCIvPlxuXG5tb2R1bGUgRGV2ZWxvcGVyIHtcbiAgX21vZHVsZS5kaXJlY3RpdmUoXCJwaXBlbGluZVZpZXdcIiwgKCkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICB0ZW1wbGF0ZVVybDogdGVtcGxhdGVQYXRoICsgJ3BpcGVsaW5lVmlldy5odG1sJ1xuICAgIH07XG4gIH0pO1xufVxuIiwiLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4uLy4uL2luY2x1ZGVzLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4uLy4uL2t1YmVybmV0ZXMvdHMva3ViZXJuZXRlc0hlbHBlcnMudHNcIi8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwiZGV2ZWxvcGVyRW5yaWNoZXJzLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cImRldmVsb3BlckhlbHBlcnMudHNcIi8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwiZGV2ZWxvcGVyTmF2aWdhdGlvbi50c1wiLz5cblxubW9kdWxlIERldmVsb3BlciB7XG5cbiAgZXhwb3J0IHZhciBQaXBlbGluZXNDb250cm9sbGVyID0gY29udHJvbGxlcihcIlBpcGVsaW5lc0NvbnRyb2xsZXJcIixcbiAgICBbXCIkc2NvcGVcIiwgXCJLdWJlcm5ldGVzTW9kZWxcIiwgXCJLdWJlcm5ldGVzU3RhdGVcIiwgXCJLdWJlcm5ldGVzU2NoZW1hXCIsIFwiJHRlbXBsYXRlQ2FjaGVcIiwgXCIkbG9jYXRpb25cIiwgXCIkcm91dGVQYXJhbXNcIiwgXCIkaHR0cFwiLCBcIiR0aW1lb3V0XCIsIFwiS3ViZXJuZXRlc0FwaVVSTFwiLCBcIlNlcnZpY2VSZWdpc3RyeVwiLFxuICAgICAgKCRzY29wZSwgS3ViZXJuZXRlc01vZGVsOkt1YmVybmV0ZXMuS3ViZXJuZXRlc01vZGVsU2VydmljZSwgS3ViZXJuZXRlc1N0YXRlLCBLdWJlcm5ldGVzU2NoZW1hLFxuICAgICAgICR0ZW1wbGF0ZUNhY2hlOm5nLklUZW1wbGF0ZUNhY2hlU2VydmljZSwgJGxvY2F0aW9uOm5nLklMb2NhdGlvblNlcnZpY2UsICRyb3V0ZVBhcmFtcywgJGh0dHAsICR0aW1lb3V0LCBLdWJlcm5ldGVzQXBpVVJMLCBTZXJ2aWNlUmVnaXN0cnkpID0+IHtcblxuICAgICAgICAkc2NvcGUua3ViZXJuZXRlcyA9IEt1YmVybmV0ZXNTdGF0ZTtcbiAgICAgICAgJHNjb3BlLmt1YmVNb2RlbCA9IEt1YmVybmV0ZXNNb2RlbDtcbiAgICAgICAgJHNjb3BlLmlkID0gJHJvdXRlUGFyYW1zW1wiaWRcIl07XG4gICAgICAgICRzY29wZS5qb2JJZCA9ICRzY29wZS5qb2JJZCB8fCAkcm91dGVQYXJhbXNbXCJqb2JcIl07XG4gICAgICAgICRzY29wZS5zY2hlbWEgPSBLdWJlcm5ldGVzU2NoZW1hO1xuICAgICAgICAkc2NvcGUuZW50aXR5Q2hhbmdlZENhY2hlID0ge307XG5cbiAgICAgICAgJHNjb3BlLm1vZGVsID0ge1xuICAgICAgICAgIGpvYjogbnVsbCxcbiAgICAgICAgICBwZW5kaW5nT25seTogJHNjb3BlLnBlbmRpbmdQaXBlbGluZXNPbmx5XG4gICAgICAgIH07XG4gICAgICAgIEt1YmVybmV0ZXMuaW5pdFNoYXJlZCgkc2NvcGUsICRsb2NhdGlvbiwgJGh0dHAsICR0aW1lb3V0LCAkcm91dGVQYXJhbXMsIEt1YmVybmV0ZXNNb2RlbCwgS3ViZXJuZXRlc1N0YXRlLCBLdWJlcm5ldGVzQXBpVVJMKTtcbiAgICAgICAgJHNjb3BlLmJyZWFkY3J1bWJDb25maWcgPSBEZXZlbG9wZXIuY3JlYXRlUHJvamVjdEJyZWFkY3J1bWJzKCRzY29wZS5pZCk7XG4gICAgICAgICRzY29wZS5zdWJUYWJDb25maWcgPSBEZXZlbG9wZXIuY3JlYXRlUHJvamVjdFN1Yk5hdkJhcnMoJHNjb3BlLmlkLCAkc2NvcGUuam9iSWQpO1xuXG4gICAgICAgICRzY29wZS4kb24oJ2t1YmVybmV0ZXNNb2RlbFVwZGF0ZWQnLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgdXBkYXRlRGF0YSgpO1xuICAgICAgICB9KTtcblxuICAgICAgICAkc2NvcGUuJG9uKCckcm91dGVVcGRhdGUnLCAoJGV2ZW50KSA9PiB7XG4gICAgICAgICAgdXBkYXRlRGF0YSgpO1xuICAgICAgICB9KTtcblxuICAgICAgICAkc2NvcGUuJHdhdGNoKCdtb2RlbC5wZW5kaW5nT25seScsICgkZXZlbnQpID0+IHtcbiAgICAgICAgICB1cGRhdGVEYXRhKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHVwZGF0ZURhdGEoKTtcblxuICAgICAgICBmdW5jdGlvbiB1cGRhdGVEYXRhKCkge1xuICAgICAgICAgIGlmICgkc2NvcGUuam9iSWQpIHtcbiAgICAgICAgICAgIHZhciBxdWVyeVBhdGggPSBcImZhYnJpYzgvc3RhZ2VzL1wiO1xuICAgICAgICAgICAgaWYgKCRzY29wZS5tb2RlbC5wZW5kaW5nT25seSkge1xuICAgICAgICAgICAgICBxdWVyeVBhdGggPSBcImZhYnJpYzgvcGVuZGluZ1N0YWdlcy9cIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciB1cmwgPSBLdWJlcm5ldGVzLmt1YmVybmV0ZXNQcm94eVVybEZvclNlcnZpY2VDdXJyZW50TmFtZXNwYWNlKGplbmtpbnNTZXJ2aWNlTmFtZUFuZFBvcnQsIFVybEhlbHBlcnMuam9pbihcImpvYlwiLCAkc2NvcGUuam9iSWQsIHF1ZXJ5UGF0aCkpO1xuICAgICAgICAgICAgaWYgKHVybCAmJiAoISRzY29wZS5tb2RlbC5qb2IgfHwgS3ViZXJuZXRlcy5rZWVwUG9sbGluZ01vZGVsKSkge1xuICAgICAgICAgICAgICAkaHR0cC5nZXQodXJsKS5cbiAgICAgICAgICAgICAgICBzdWNjZXNzKGZ1bmN0aW9uIChkYXRhLCBzdGF0dXMsIGhlYWRlcnMsIGNvbmZpZykge1xuICAgICAgICAgICAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgZW5yaWNoSmVua2luc1BpcGVsaW5lSm9iKGRhdGEsICRzY29wZS5pZCwgJHNjb3BlLmpvYklkKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGhhc09iamVjdENoYW5nZWQoZGF0YSwgJHNjb3BlLmVudGl0eUNoYW5nZWRDYWNoZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICBsb2cuaW5mbyhcImVudGl0eSBoYXMgY2hhbmdlZCFcIik7XG4gICAgICAgICAgICAgICAgICAgICAgJHNjb3BlLm1vZGVsLmpvYiA9IGRhdGE7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICRzY29wZS5tb2RlbC5mZXRjaGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgIENvcmUuJGFwcGx5KCRzY29wZSk7XG4gICAgICAgICAgICAgICAgfSkuXG4gICAgICAgICAgICAgICAgZXJyb3IoZnVuY3Rpb24gKGRhdGEsIHN0YXR1cywgaGVhZGVycywgY29uZmlnKSB7XG4gICAgICAgICAgICAgICAgICBsb2cud2FybihcIkZhaWxlZCB0byBsb2FkIFwiICsgdXJsICsgXCIgXCIgKyBkYXRhICsgXCIgXCIgKyBzdGF0dXMpO1xuICAgICAgICAgICAgICAgICAgJHNjb3BlLm1vZGVsLmZldGNoZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAkc2NvcGUubW9kZWwuZmV0Y2hlZCA9IHRydWU7XG4gICAgICAgICAgICBDb3JlLiRhcHBseSgkc2NvcGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfV0pO1xufVxuIiwiLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4uLy4uL2luY2x1ZGVzLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4uLy4uL2t1YmVybmV0ZXMvdHMva3ViZXJuZXRlc0hlbHBlcnMudHNcIi8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwiZGV2ZWxvcGVyRW5yaWNoZXJzLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cImRldmVsb3BlckhlbHBlcnMudHNcIi8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwiZGV2ZWxvcGVyTmF2aWdhdGlvbi50c1wiLz5cblxubW9kdWxlIERldmVsb3BlciB7XG5cbiAgZXhwb3J0IHZhciBQcm9qZWN0Q29udHJvbGxlciA9IGNvbnRyb2xsZXIoXCJQcm9qZWN0Q29udHJvbGxlclwiLFxuICAgIFtcIiRzY29wZVwiLCBcIkt1YmVybmV0ZXNNb2RlbFwiLCBcIkt1YmVybmV0ZXNTdGF0ZVwiLCBcIkt1YmVybmV0ZXNTY2hlbWFcIiwgXCIkdGVtcGxhdGVDYWNoZVwiLCBcIiRsb2NhdGlvblwiLCBcIiRyb3V0ZVBhcmFtc1wiLCBcIiRodHRwXCIsIFwiJHRpbWVvdXRcIiwgXCJLdWJlcm5ldGVzQXBpVVJMXCIsXG4gICAgICAoJHNjb3BlLCBLdWJlcm5ldGVzTW9kZWw6S3ViZXJuZXRlcy5LdWJlcm5ldGVzTW9kZWxTZXJ2aWNlLCBLdWJlcm5ldGVzU3RhdGUsIEt1YmVybmV0ZXNTY2hlbWEsXG4gICAgICAgJHRlbXBsYXRlQ2FjaGU6bmcuSVRlbXBsYXRlQ2FjaGVTZXJ2aWNlLCAkbG9jYXRpb246bmcuSUxvY2F0aW9uU2VydmljZSwgJHJvdXRlUGFyYW1zLCAkaHR0cCwgJHRpbWVvdXQsIEt1YmVybmV0ZXNBcGlVUkwpID0+IHtcblxuICAgICAgICAkc2NvcGUua3ViZXJuZXRlcyA9IEt1YmVybmV0ZXNTdGF0ZTtcbiAgICAgICAgJHNjb3BlLm1vZGVsID0gS3ViZXJuZXRlc01vZGVsO1xuICAgICAgICAkc2NvcGUuaWQgPSAkcm91dGVQYXJhbXNbXCJpZFwiXTtcblxuICAgICAgICAkc2NvcGUuc2NoZW1hID0gS3ViZXJuZXRlc1NjaGVtYTtcbiAgICAgICAgJHNjb3BlLmNvbmZpZyA9IEt1YmVybmV0ZXNTY2hlbWEuZGVmaW5pdGlvbnMub3NfYnVpbGRfQnVpbGRDb25maWc7XG4gICAgICAgICRzY29wZS5lbnRpdHlDaGFuZ2VkQ2FjaGUgPSB7fTtcbiAgICAgICAgJHNjb3BlLmVudlZlcnNpb25zQ2FjaGUgPSB7fTtcbiAgICAgICAgJHNjb3BlLmVudk5TQ2FjaGVzID0ge307XG4gICAgICAgICRzY29wZS5lbnZWZXJzaW9ucyA9IHt9O1xuXG4gICAgICAgIEt1YmVybmV0ZXMuaW5pdFNoYXJlZCgkc2NvcGUsICRsb2NhdGlvbiwgJGh0dHAsICR0aW1lb3V0LCAkcm91dGVQYXJhbXMsIEt1YmVybmV0ZXNNb2RlbCwgS3ViZXJuZXRlc1N0YXRlLCBLdWJlcm5ldGVzQXBpVVJMKTtcbiAgICAgICAgJHNjb3BlLmJyZWFkY3J1bWJDb25maWcgPSBEZXZlbG9wZXIuY3JlYXRlUHJvamVjdEJyZWFkY3J1bWJzKCRzY29wZS5pZCk7XG4gICAgICAgICRzY29wZS5zdWJUYWJDb25maWcgPSBEZXZlbG9wZXIuY3JlYXRlUHJvamVjdFN1Yk5hdkJhcnMoJHNjb3BlLmlkLCBudWxsLCAkc2NvcGUpO1xuXG4gICAgICAgIC8vIHRoaXMgaXMgdXNlZCBmb3IgdGhlIHBlbmRpbmdQaXBlbGluZXMgdmlld1xuICAgICAgICAkc2NvcGUuam9iSWQgPSAkc2NvcGUuaWQ7XG4gICAgICAgICRzY29wZS5wZW5kaW5nUGlwZWxpbmVzT25seSA9IHRydWU7XG5cbi8qXG4gICAgICAgICRzY29wZS4kb24oJ2t1YmVybmV0ZXNNb2RlbFVwZGF0ZWQnLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgdXBkYXRlRGF0YSgpO1xuICAgICAgICB9KTtcblxuICAgICAgICAkc2NvcGUuJG9uKCckcm91dGVVcGRhdGUnLCAoJGV2ZW50KSA9PiB7XG4gICAgICAgICAgdXBkYXRlRGF0YSgpO1xuICAgICAgICB9KTtcbiovXG5cblxuXG4gICAgICAgICRzY29wZS4ka2VlcFBvbGxpbmcgPSAoKSA9PiBLdWJlcm5ldGVzLmtlZXBQb2xsaW5nTW9kZWw7XG4gICAgICAgICRzY29wZS5mZXRjaCA9IFBvbGxIZWxwZXJzLnNldHVwUG9sbGluZygkc2NvcGUsIChuZXh0OigpID0+IHZvaWQpID0+IHtcbiAgICAgICAgICAkc2NvcGUuaXRlbSA9IG51bGw7XG4gICAgICAgICAgaWYgKCRzY29wZS5pZCkge1xuICAgICAgICAgICAgdmFyIHVybCA9IEt1YmVybmV0ZXMuYnVpbGRDb25maWdSZXN0VXJsKCRzY29wZS5pZCk7XG4gICAgICAgICAgICBpZiAoISRzY29wZS5lbnRpdHkgfHwgS3ViZXJuZXRlcy5rZWVwUG9sbGluZ01vZGVsKSB7XG4gICAgICAgICAgICAgICRodHRwLmdldCh1cmwpLlxuICAgICAgICAgICAgICAgIHN1Y2Nlc3MoZnVuY3Rpb24gKGRhdGEsIHN0YXR1cywgaGVhZGVycywgY29uZmlnKSB7XG4gICAgICAgICAgICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgc29ydGVkQnVpbGRzID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgS3ViZXJuZXRlcy5lbnJpY2hCdWlsZENvbmZpZyhkYXRhLCBzb3J0ZWRCdWlsZHMpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaGFzT2JqZWN0Q2hhbmdlZChkYXRhLCAkc2NvcGUuZW50aXR5Q2hhbmdlZENhY2hlKSkge1xuICAgICAgICAgICAgICAgICAgICAgIGxvZy5pbmZvKFwiZW50aXR5IGhhcyBjaGFuZ2VkIVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAkc2NvcGUuZW50aXR5ID0gZGF0YTtcbiAgICAgICAgICAgICAgICAgICAgICAkc2NvcGUuZW50aXR5LiRidWlsZCA9IChkYXRhLiRmYWJyaWM4Q29kZVZpZXdzIHx8IHt9KVsnZmFicmljOC5saW5rLmJyb3dzZUdvZ3MudmlldyddO1xuICAgICAgICAgICAgICAgICAgICAgICRzY29wZS5tb2RlbC5zZXRQcm9qZWN0KCRzY29wZS5lbnRpdHkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZUVudmlyb25tZW50V2F0Y2goKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICRzY29wZS5tb2RlbC5mZXRjaGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgIENvcmUuJGFwcGx5KCRzY29wZSk7XG4gICAgICAgICAgICAgICAgICBuZXh0KCk7XG4gICAgICAgICAgICAgICAgfSkuXG4gICAgICAgICAgICAgICAgZXJyb3IoZnVuY3Rpb24gKGRhdGEsIHN0YXR1cywgaGVhZGVycywgY29uZmlnKSB7XG4gICAgICAgICAgICAgICAgICBsb2cud2FybihcIkZhaWxlZCB0byBsb2FkIFwiICsgdXJsICsgXCIgXCIgKyBkYXRhICsgXCIgXCIgKyBzdGF0dXMpO1xuICAgICAgICAgICAgICAgICAgbmV4dCgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAkc2NvcGUubW9kZWwuZmV0Y2hlZCA9IHRydWU7XG4gICAgICAgICAgICBuZXh0KCk7XG4gICAgICAgICAgICBDb3JlLiRhcHBseSgkc2NvcGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgJHNjb3BlLmZldGNoKCk7XG5cblxuICAgICAgICAvKipcbiAgICAgICAgICogV2UgaGF2ZSB1cGRhdGVkIHRoZSBlbnRpdHkgc28gbGV0cyBtYWtlIHN1cmUgd2UgYXJlIHdhdGNoaW5nIGFsbCB0aGUgZW52aXJvbm1lbnRzIHRvIGZpbmRcbiAgICAgICAgICogdGhlIHByb2plY3QgdmVyc2lvbnMgZm9yIGVhY2ggbmFtZXNwYWNlXG4gICAgICAgICAqL1xuICAgICAgICBmdW5jdGlvbiB1cGRhdGVFbnZpcm9ubWVudFdhdGNoKCkge1xuICAgICAgICAgIHZhciBwcm9qZWN0ID0gJHNjb3BlLmVudGl0eTtcbiAgICAgICAgICBpZiAocHJvamVjdCkge1xuICAgICAgICAgICAgdmFyIGplbmtpbnNKb2IgPSBwcm9qZWN0LiRqZW5raW5zSm9iO1xuICAgICAgICAgICAgaWYgKGplbmtpbnNKb2IpIHtcbiAgICAgICAgICAgICAgdmFyIGJ1aWxkc1RhYiA9IF8uZmluZCgkc2NvcGUuc3ViVGFiQ29uZmlnLCB7aWQ6IFwiYnVpbGRzXCJ9KTtcbiAgICAgICAgICAgICAgaWYgKGJ1aWxkc1RhYikge1xuICAgICAgICAgICAgICAgIGJ1aWxkc1RhYltcImhyZWZcIl0gPSBVcmxIZWxwZXJzLmpvaW4oXCIvd29ya3NwYWNlc1wiLCBLdWJlcm5ldGVzLmN1cnJlbnRLdWJlcm5ldGVzTmFtZXNwYWNlKCksIFwicHJvamVjdHNcIiwgJHNjb3BlLmlkLCBcImplbmtpbnNKb2JcIiwgamVua2luc0pvYik7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYW5ndWxhci5mb3JFYWNoKHByb2plY3QuZW52aXJvbm1lbnRzLCAoZW52KSA9PiB7XG4gICAgICAgICAgICAgIHZhciBucyA9IGVudi5uYW1lc3BhY2U7XG4gICAgICAgICAgICAgIHZhciBjYWNoZXMgPSAkc2NvcGUuZW52TlNDYWNoZXNbbnNdO1xuICAgICAgICAgICAgICBpZiAoIWNhY2hlcykge1xuICAgICAgICAgICAgICAgIGNhY2hlcyA9IHt9O1xuICAgICAgICAgICAgICAgICRzY29wZS5lbnZOU0NhY2hlc1tuc10gPSBjYWNoZXM7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgbG9hZFByb2plY3RWZXJzaW9ucygkc2NvcGUsICRodHRwLCBwcm9qZWN0LCBlbnYsIG5zLCAkc2NvcGUuZW52VmVyc2lvbnMsIGNhY2hlcyk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1dKTtcbn1cbiIsIi8vLyA8cmVmZXJlbmNlIHBhdGg9XCIuLi8uLi9pbmNsdWRlcy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCIuLi8uLi9rdWJlcm5ldGVzL3RzL2t1YmVybmV0ZXNIZWxwZXJzLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cImRldmVsb3BlckVucmljaGVycy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJkZXZlbG9wZXJIZWxwZXJzLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cImRldmVsb3Blck5hdmlnYXRpb24udHNcIi8+XG5cbm1vZHVsZSBEZXZlbG9wZXIge1xuXG4gIGV4cG9ydCB2YXIgUHJvamVjdHNDb250cm9sbGVyID0gY29udHJvbGxlcihcIlByb2plY3RzQ29udHJvbGxlclwiLCBbXCIkc2NvcGVcIiwgXCJLdWJlcm5ldGVzTW9kZWxcIiwgXCJLdWJlcm5ldGVzQnVpbGRzXCIsIFwiS3ViZXJuZXRlc1N0YXRlXCIsIFwiJGRpYWxvZ1wiLCBcIiR3aW5kb3dcIiwgXCIkdGVtcGxhdGVDYWNoZVwiLCBcIiRyb3V0ZVBhcmFtc1wiLCBcIiRsb2NhdGlvblwiLCBcImxvY2FsU3RvcmFnZVwiLCBcIiRodHRwXCIsIFwiJHRpbWVvdXRcIiwgXCJLdWJlcm5ldGVzQXBpVVJMXCIsXG4gICAgKCRzY29wZSwgS3ViZXJuZXRlc01vZGVsOkt1YmVybmV0ZXMuS3ViZXJuZXRlc01vZGVsU2VydmljZSwgS3ViZXJuZXRlc0J1aWxkcywgS3ViZXJuZXRlc1N0YXRlLCAkZGlhbG9nLCAkd2luZG93LCAkdGVtcGxhdGVDYWNoZSwgJHJvdXRlUGFyYW1zLCAkbG9jYXRpb246bmcuSUxvY2F0aW9uU2VydmljZSwgbG9jYWxTdG9yYWdlLCAkaHR0cCwgJHRpbWVvdXQsIEt1YmVybmV0ZXNBcGlVUkwpID0+IHtcblxuICAgICAgJHNjb3BlLmt1YmVybmV0ZXMgPSBLdWJlcm5ldGVzU3RhdGU7XG4gICAgICAkc2NvcGUubW9kZWwgPSBLdWJlcm5ldGVzTW9kZWw7XG4gICAgICAkc2NvcGUuS3ViZXJuZXRlc0J1aWxkcyA9IEt1YmVybmV0ZXNCdWlsZHM7XG5cbiAgICAgICRzY29wZS50YWJsZUNvbmZpZyA9IHtcbiAgICAgICAgZGF0YTogJ21vZGVsLmJ1aWxkY29uZmlncycsXG4gICAgICAgIHNob3dTZWxlY3Rpb25DaGVja2JveDogdHJ1ZSxcbiAgICAgICAgZW5hYmxlUm93Q2xpY2tTZWxlY3Rpb246IGZhbHNlLFxuICAgICAgICBtdWx0aVNlbGVjdDogdHJ1ZSxcbiAgICAgICAgc2VsZWN0ZWRJdGVtczogW10sXG4gICAgICAgIGZpbHRlck9wdGlvbnM6IHtcbiAgICAgICAgICBmaWx0ZXJUZXh0OiAkbG9jYXRpb24uc2VhcmNoKClbXCJxXCJdIHx8ICcnXG4gICAgICAgIH0sXG4gICAgICAgIGNvbHVtbkRlZnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBmaWVsZDogJyRuYW1lJyxcbiAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAnTmFtZScsXG4gICAgICAgICAgICBjZWxsVGVtcGxhdGU6ICR0ZW1wbGF0ZUNhY2hlLmdldChcImlkVGVtcGxhdGUuaHRtbFwiKVxuICAgICAgICAgIH0sXG4vKlxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGZpZWxkOiAnc3BlYy5zb3VyY2UudHlwZScsXG4gICAgICAgICAgICBkaXNwbGF5TmFtZTogJ1NvdXJjZSdcbiAgICAgICAgICB9LFxuKi9cbiAgICAgICAgICB7XG4gICAgICAgICAgICBmaWVsZDogJ3NwZWMuc291cmNlLmdpdC51cmknLFxuICAgICAgICAgICAgZGlzcGxheU5hbWU6ICdSZXBvc2l0b3J5J1xuICAgICAgICAgIH0sXG4vKlxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGZpZWxkOiAnc3BlYy5zdHJhdGVneS50eXBlJyxcbiAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAnU3RyYXRlZ3knXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBmaWVsZDogJ3NwZWMuc3RyYXRlZ3kuc3RpU3RyYXRlZ3kuaW1hZ2UnLFxuICAgICAgICAgICAgZGlzcGxheU5hbWU6ICdTb3VyY2UgSW1hZ2UnXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBmaWVsZDogJ3NwZWMub3V0cHV0LmltYWdlVGFnJyxcbiAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAnT3V0cHV0IEltYWdlJ1xuICAgICAgICAgIH0sXG4qL1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGZpZWxkOiAnbWV0YWRhdGEuZGVzY3JpcHRpb24nLFxuICAgICAgICAgICAgZGlzcGxheU5hbWU6ICdEZXNjcmlwdGlvbidcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGZpZWxkOiAnJGNyZWF0aW9uRGF0ZScsXG4gICAgICAgICAgICBkaXNwbGF5TmFtZTogJ0NyZWF0ZWQnLFxuICAgICAgICAgICAgY2VsbFRlbXBsYXRlOiAkdGVtcGxhdGVDYWNoZS5nZXQoXCJjcmVhdGlvblRpbWVUZW1wbGF0ZS5odG1sXCIpXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBmaWVsZDogJyRsYWJlbHNUZXh0JyxcbiAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAnTGFiZWxzJyxcbiAgICAgICAgICAgIGNlbGxUZW1wbGF0ZTogJHRlbXBsYXRlQ2FjaGUuZ2V0KFwibGFiZWxUZW1wbGF0ZS5odG1sXCIpXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9O1xuXG4gICAgICBLdWJlcm5ldGVzLmluaXRTaGFyZWQoJHNjb3BlLCAkbG9jYXRpb24sICRodHRwLCAkdGltZW91dCwgJHJvdXRlUGFyYW1zLCBLdWJlcm5ldGVzTW9kZWwsIEt1YmVybmV0ZXNTdGF0ZSwgS3ViZXJuZXRlc0FwaVVSTCk7XG5cbiAgICAgICRzY29wZS5icmVhZGNydW1iQ29uZmlnID0gY3JlYXRlUHJvamVjdEJyZWFkY3J1bWJzKCk7XG4gICAgICAkc2NvcGUuc3ViVGFiQ29uZmlnID0gRGV2ZWxvcGVyLmNyZWF0ZVdvcmtzcGFjZVN1Yk5hdkJhcnMoKTtcblxuICAgICAgLy8gVE9ET1xuICAgICAgLy8kc2NvcGUuaXNMb2dnZWRJbnRvR29ncyA9IEZvcmdlLmlzTG9nZ2VkSW50b0dvZ3M7XG5cbiAgICAgICRzY29wZS5kZWxldGVQcm9tcHQgPSAoc2VsZWN0ZWQpID0+IHtcbiAgICAgICAgVUkubXVsdGlJdGVtQ29uZmlybUFjdGlvbkRpYWxvZyg8VUkuTXVsdGlJdGVtQ29uZmlybUFjdGlvbk9wdGlvbnM+e1xuICAgICAgICAgIGNvbGxlY3Rpb246IHNlbGVjdGVkLFxuICAgICAgICAgIGluZGV4OiAnJG5hbWUnLFxuICAgICAgICAgIG9uQ2xvc2U6IChyZXN1bHQ6Ym9vbGVhbikgPT4ge1xuICAgICAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgICAgICBmdW5jdGlvbiBkZWxldGVTZWxlY3RlZChzZWxlY3RlZCwgbmV4dCkge1xuICAgICAgICAgICAgICAgIGlmIChuZXh0KSB7XG4gICAgICAgICAgICAgICAgICBkZWxldGVFbnRpdHkobmV4dCwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBkZWxldGVTZWxlY3RlZChzZWxlY3RlZCwgc2VsZWN0ZWQuc2hpZnQoKSk7XG4gICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgLy8gVE9ET1xuICAgICAgICAgICAgICAgICAgLy8gdXBkYXRlRGF0YSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGRlbGV0ZVNlbGVjdGVkKHNlbGVjdGVkLCBzZWxlY3RlZC5zaGlmdCgpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIHRpdGxlOiAnRGVsZXRlIFByb2plY3RzJyxcbiAgICAgICAgICBhY3Rpb246ICdUaGUgZm9sbG93aW5nIFByb2plY3RzIHdpbGwgYmUgZGVsZXRlZDonLFxuICAgICAgICAgIG9rVGV4dDogJ0RlbGV0ZScsXG4gICAgICAgICAgb2tDbGFzczogJ2J0bi1kYW5nZXInLFxuICAgICAgICAgIGN1c3RvbTogXCJUaGlzIG9wZXJhdGlvbiBpcyBwZXJtYW5lbnQgb25jZSBjb21wbGV0ZWQhXCIsXG4gICAgICAgICAgY3VzdG9tQ2xhc3M6IFwiYWxlcnQgYWxlcnQtd2FybmluZ1wiXG4gICAgICAgIH0pLm9wZW4oKTtcbiAgICAgIH07XG5cbiAgICAgIGZ1bmN0aW9uIGRlbGV0ZUVudGl0eShzZWxlY3Rpb24sIG5leHRDYWxsYmFjaykge1xuICAgICAgICB2YXIgbmFtZSA9IChzZWxlY3Rpb24gfHwge30pLiRuYW1lO1xuICAgICAgICB2YXIgamVua2luc0pvYiA9IHNlbGVjdGlvbi4kamVua2luc0pvYjtcbiAgICAgICAgdmFyIHB1YmxpY0plbmtpbnNVcmwgPSBqZW5raW5zTGluaygpO1xuICAgICAgICAvL3ZhciBqZW5raW5zVXJsID0gQ29yZS5wYXRoR2V0KHNlbGVjdGlvbiwgW1wiJGZhYnJpYzhWaWV3c1wiLCBcImZhYnJpYzgubGluay5qZW5raW5zLmpvYlwiLCBcInVybFwiXSk7XG4gICAgICAgIGlmIChuYW1lKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coXCJBYm91dCB0byBkZWxldGUgYnVpbGQgY29uZmlnOiBcIiArIG5hbWUpO1xuICAgICAgICAgIHZhciB1cmwgPSBLdWJlcm5ldGVzLmJ1aWxkQ29uZmlnUmVzdFVybChuYW1lKTtcbiAgICAgICAgICAkaHR0cC5kZWxldGUodXJsKS5cbiAgICAgICAgICAgIHN1Y2Nlc3MoZnVuY3Rpb24gKGRhdGEsIHN0YXR1cywgaGVhZGVycywgY29uZmlnKSB7XG4gICAgICAgICAgICAgIG5leHRDYWxsYmFjaygpO1xuICAgICAgICAgICAgfSkuXG4gICAgICAgICAgICBlcnJvcihmdW5jdGlvbiAoZGF0YSwgc3RhdHVzLCBoZWFkZXJzLCBjb25maWcpIHtcbiAgICAgICAgICAgICAgbG9nLndhcm4oXCJGYWlsZWQgdG8gZGVsZXRlIGJ1aWxkIGNvbmZpZyBvbiBcIiArIHVybCArIFwiIFwiICsgZGF0YSArIFwiIFwiICsgc3RhdHVzKTtcbiAgICAgICAgICAgICAgbmV4dENhbGxiYWNrKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhcIndhcm5pbmc6IG5vIG5hbWUgZm9yIHNlbGVjdGlvbjogXCIgKyBhbmd1bGFyLnRvSnNvbihzZWxlY3Rpb24pKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChqZW5raW5zSm9iICYmIHB1YmxpY0plbmtpbnNVcmwpIHtcbiAgICAgICAgICB2YXIgdXJsID0gS3ViZXJuZXRlcy5rdWJlcm5ldGVzUHJveHlVcmxGb3JTZXJ2aWNlQ3VycmVudE5hbWVzcGFjZShqZW5raW5zU2VydmljZU5hbWUsIFVybEhlbHBlcnMuam9pbihcImpvYlwiLCBqZW5raW5zSm9iLCBcImRvRGVsZXRlXCIpKTtcbiAgICAgICAgICB2YXIgYm9keSA9IFwiXCI7XG4gICAgICAgICAgdmFyIGNvbmZpZyA9IHtcbiAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6IFwidGV4dC9wbGFpblwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfTtcbiAgICAgICAgICBsb2cuaW5mbyhcInBvc3RpbmcgdG8gamVua2luc1VybDogXCIgKyB1cmwpO1xuICAgICAgICAgICRodHRwLnBvc3QodXJsLCBib2R5LCBjb25maWcpLlxuICAgICAgICAgICAgc3VjY2VzcyhmdW5jdGlvbiAoZGF0YSwgc3RhdHVzLCBoZWFkZXJzLCBjb25maWcpIHtcbiAgICAgICAgICAgICAgbG9nLmluZm8oXCJNYW5hZ2VkIHRvIGRlbGV0ZSBcIiArIHVybCk7XG4gICAgICAgICAgICB9KS5cbiAgICAgICAgICAgIGVycm9yKGZ1bmN0aW9uIChkYXRhLCBzdGF0dXMsIGhlYWRlcnMsIGNvbmZpZykge1xuICAgICAgICAgICAgICBsb2cud2FybihcIkZhaWxlZCB0byBkZWxldGUgamVua2lucyBqb2IgYXQgXCIgKyB1cmwgKyBcIiBcIiArIGRhdGEgKyBcIiBcIiArIHN0YXR1cyk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAkc2NvcGUuJGtlZXBQb2xsaW5nID0gKCkgPT4gS3ViZXJuZXRlcy5rZWVwUG9sbGluZ01vZGVsO1xuICAgICAgJHNjb3BlLmZldGNoID0gUG9sbEhlbHBlcnMuc2V0dXBQb2xsaW5nKCRzY29wZSwgKG5leHQ6KCkgPT4gdm9pZCkgPT4ge1xuICAgICAgICB2YXIgdXJsID0gS3ViZXJuZXRlcy5idWlsZENvbmZpZ3NSZXN0VVJMKCk7XG4gICAgICAgICRodHRwLmdldCh1cmwpLlxuICAgICAgICAgIHN1Y2Nlc3MoZnVuY3Rpb24gKGRhdGEsIHN0YXR1cywgaGVhZGVycywgY29uZmlnKSB7XG4gICAgICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgICAvL2NvbnNvbGUubG9nKFwiZ290IGRhdGEgXCIgKyBhbmd1bGFyLnRvSnNvbihkYXRhLCB0cnVlKSk7XG4gICAgICAgICAgICAgIHZhciBzb3J0ZWRCdWlsZHMgPSBudWxsO1xuICAgICAgICAgICAgICAkc2NvcGUuYnVpbGRDb25maWdzID0gS3ViZXJuZXRlcy5lbnJpY2hCdWlsZENvbmZpZ3MoZGF0YS5pdGVtcywgc29ydGVkQnVpbGRzKTtcbiAgICAgICAgICAgICAgJHNjb3BlLm1vZGVsLmZldGNoZWQgPSB0cnVlO1xuICAgICAgICAgICAgICBDb3JlLiRhcHBseSgkc2NvcGUpO1xuICAgICAgICAgICAgICBuZXh0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSkuXG4gICAgICAgICAgZXJyb3IoZnVuY3Rpb24gKGRhdGEsIHN0YXR1cywgaGVhZGVycywgY29uZmlnKSB7XG4gICAgICAgICAgICBsb2cud2FybihcIkZhaWxlZCB0byBsb2FkIFwiICsgdXJsICsgXCIgXCIgKyBkYXRhICsgXCIgXCIgKyBzdGF0dXMpO1xuICAgICAgICAgICAgbmV4dCgpO1xuICAgICAgICAgIH0pO1xuICAgICAgfSk7XG5cbiAgICAgICRzY29wZS5mZXRjaCgpO1xuICAgIH1dKTtcbn1cbiIsIi8vLyA8cmVmZXJlbmNlIHBhdGg9XCIuLi8uLi9pbmNsdWRlcy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCIuLi8uLi9rdWJlcm5ldGVzL3RzL2t1YmVybmV0ZXNIZWxwZXJzLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cImRldmVsb3BlckVucmljaGVycy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJkZXZlbG9wZXJIZWxwZXJzLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cImRldmVsb3Blck5hdmlnYXRpb24udHNcIi8+XG5cbm1vZHVsZSBEZXZlbG9wZXIge1xuXG4gIGV4cG9ydCB2YXIgV29ya3NwYWNlQ29udHJvbGxlciA9IGNvbnRyb2xsZXIoXCJXb3Jrc3BhY2VDb250cm9sbGVyXCIsXG4gICAgW1wiJHNjb3BlXCIsIFwiS3ViZXJuZXRlc01vZGVsXCIsIFwiS3ViZXJuZXRlc1N0YXRlXCIsIFwiS3ViZXJuZXRlc1NjaGVtYVwiLCBcIiR0ZW1wbGF0ZUNhY2hlXCIsIFwiJGxvY2F0aW9uXCIsIFwiJHJvdXRlUGFyYW1zXCIsIFwiJGh0dHBcIiwgXCIkdGltZW91dFwiLCBcIkt1YmVybmV0ZXNBcGlVUkxcIixcbiAgICAgICgkc2NvcGUsIEt1YmVybmV0ZXNNb2RlbDpLdWJlcm5ldGVzLkt1YmVybmV0ZXNNb2RlbFNlcnZpY2UsIEt1YmVybmV0ZXNTdGF0ZSwgS3ViZXJuZXRlc1NjaGVtYSxcbiAgICAgICAkdGVtcGxhdGVDYWNoZTpuZy5JVGVtcGxhdGVDYWNoZVNlcnZpY2UsICRsb2NhdGlvbjpuZy5JTG9jYXRpb25TZXJ2aWNlLCAkcm91dGVQYXJhbXMsICRodHRwLCAkdGltZW91dCwgS3ViZXJuZXRlc0FwaVVSTCkgPT4ge1xuXG4gICAgICAgICRzY29wZS5rdWJlcm5ldGVzID0gS3ViZXJuZXRlc1N0YXRlO1xuICAgICAgICAkc2NvcGUubW9kZWwgPSBLdWJlcm5ldGVzTW9kZWw7XG4gICAgICAgICRzY29wZS5pZCA9ICRyb3V0ZVBhcmFtc1tcIm5hbWVzcGFjZVwiXTtcbiAgICAgICAgJHNjb3BlLnNjaGVtYSA9IEt1YmVybmV0ZXNTY2hlbWE7XG4gICAgICAgICRzY29wZS5jb25maWcgPSBLdWJlcm5ldGVzU2NoZW1hLmRlZmluaXRpb25zLmt1YmVybmV0ZXNfTmFtZXNwYWNlO1xuXG4gICAgICAgIEt1YmVybmV0ZXMuaW5pdFNoYXJlZCgkc2NvcGUsICRsb2NhdGlvbiwgJGh0dHAsICR0aW1lb3V0LCAkcm91dGVQYXJhbXMsIEt1YmVybmV0ZXNNb2RlbCwgS3ViZXJuZXRlc1N0YXRlLCBLdWJlcm5ldGVzQXBpVVJMKTtcbiAgICAgICAgJHNjb3BlLmJyZWFkY3J1bWJDb25maWcgPSBjcmVhdGVXb3Jrc3BhY2VCcmVhZGNydW1icygpO1xuICAgICAgICAkc2NvcGUuc3ViVGFiQ29uZmlnID0gRGV2ZWxvcGVyLmNyZWF0ZVdvcmtzcGFjZVN1Yk5hdkJhcnMoKTtcblxuICAgICAgICAkc2NvcGUuJGtlZXBQb2xsaW5nID0gKCkgPT4gS3ViZXJuZXRlcy5rZWVwUG9sbGluZ01vZGVsO1xuICAgICAgICAkc2NvcGUuZmV0Y2ggPSBQb2xsSGVscGVycy5zZXR1cFBvbGxpbmcoJHNjb3BlLCAobmV4dDooKSA9PiB2b2lkKSA9PiB7XG4gICAgICAgICAgJHNjb3BlLml0ZW0gPSBudWxsO1xuICAgICAgICAgIGlmICgkc2NvcGUuaWQpIHtcbiAgICAgICAgICAgIHZhciB1cmwgPSBVcmxIZWxwZXJzLmpvaW4oS3ViZXJuZXRlcy5yZXNvdXJjZXNVcmlGb3JLaW5kKFwiUHJvamVjdHNcIiksICRzY29wZS5pZCk7XG4gICAgICAgICAgICBsb2cuaW5mbyhcIkxvYWRpbmcgdXJsOiBcIiArIHVybCk7XG4gICAgICAgICAgICAkaHR0cC5nZXQodXJsKS5cbiAgICAgICAgICAgICAgc3VjY2VzcyhmdW5jdGlvbiAoZGF0YSwgc3RhdHVzLCBoZWFkZXJzLCBjb25maWcpIHtcbiAgICAgICAgICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgICAgICAgJHNjb3BlLmVudGl0eSA9IGVucmljaFdvcmtzcGFjZShkYXRhKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJHNjb3BlLm1vZGVsLmZldGNoZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIENvcmUuJGFwcGx5KCRzY29wZSk7XG4gICAgICAgICAgICAgICAgbmV4dCgpO1xuICAgICAgICAgICAgICB9KS5cbiAgICAgICAgICAgICAgZXJyb3IoZnVuY3Rpb24gKGRhdGEsIHN0YXR1cywgaGVhZGVycywgY29uZmlnKSB7XG4gICAgICAgICAgICAgICAgbG9nLndhcm4oXCJGYWlsZWQgdG8gbG9hZCBcIiArIHVybCArIFwiIFwiICsgZGF0YSArIFwiIFwiICsgc3RhdHVzKTtcbiAgICAgICAgICAgICAgICBuZXh0KCk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAkc2NvcGUubW9kZWwuZmV0Y2hlZCA9IHRydWU7XG4gICAgICAgICAgICBDb3JlLiRhcHBseSgkc2NvcGUpO1xuICAgICAgICAgICAgbmV4dCgpO1xuXG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICAkc2NvcGUuZmV0Y2goKTtcbiAgICAgIH1dKTtcbn1cbiIsIi8vLyA8cmVmZXJlbmNlIHBhdGg9XCIuLi8uLi9pbmNsdWRlcy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCIuLi8uLi9rdWJlcm5ldGVzL3RzL2t1YmVybmV0ZXNIZWxwZXJzLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cImRldmVsb3BlckVucmljaGVycy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJkZXZlbG9wZXJIZWxwZXJzLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cImRldmVsb3Blck5hdmlnYXRpb24udHNcIi8+XG5cbm1vZHVsZSBEZXZlbG9wZXIge1xuXG4gIGV4cG9ydCB2YXIgV29ya3NwYWNlc0NvbnRyb2xsZXIgPSBjb250cm9sbGVyKFwiV29ya3NwYWNlc0NvbnRyb2xsZXJcIixcbiAgICBbXCIkc2NvcGVcIiwgXCJLdWJlcm5ldGVzTW9kZWxcIiwgXCJLdWJlcm5ldGVzU2VydmljZXNcIiwgXCJLdWJlcm5ldGVzUG9kc1wiLCBcIkt1YmVybmV0ZXNTdGF0ZVwiLCBcIiR0ZW1wbGF0ZUNhY2hlXCIsIFwiJGxvY2F0aW9uXCIsIFwiJHJvdXRlUGFyYW1zXCIsIFwiJGh0dHBcIiwgXCIkdGltZW91dFwiLCBcIkt1YmVybmV0ZXNBcGlVUkxcIixcbiAgICAgICgkc2NvcGUsIEt1YmVybmV0ZXNNb2RlbDpLdWJlcm5ldGVzLkt1YmVybmV0ZXNNb2RlbFNlcnZpY2UsIEt1YmVybmV0ZXNTZXJ2aWNlczpuZy5yZXNvdXJjZS5JUmVzb3VyY2VDbGFzcywgS3ViZXJuZXRlc1BvZHM6bmcucmVzb3VyY2UuSVJlc291cmNlQ2xhc3MsIEt1YmVybmV0ZXNTdGF0ZSxcbiAgICAgICAkdGVtcGxhdGVDYWNoZTpuZy5JVGVtcGxhdGVDYWNoZVNlcnZpY2UsICRsb2NhdGlvbjpuZy5JTG9jYXRpb25TZXJ2aWNlLCAkcm91dGVQYXJhbXMsICRodHRwLCAkdGltZW91dCwgS3ViZXJuZXRlc0FwaVVSTCkgPT4ge1xuXG4gICAgICAgICRzY29wZS5rdWJlcm5ldGVzID0gS3ViZXJuZXRlc1N0YXRlO1xuICAgICAgICAkc2NvcGUubW9kZWwgPSBLdWJlcm5ldGVzTW9kZWw7XG5cbiAgICAgICAgQ29udHJvbGxlckhlbHBlcnMuYmluZE1vZGVsVG9TZWFyY2hQYXJhbSgkc2NvcGUsICRsb2NhdGlvbiwgJ21vZGUnLCAnbW9kZScsICdsaXN0Jyk7XG5cbiAgICAgICAgJHNjb3BlLmRldmVsb3BlclBlcnNwZWN0aXZlID0gQ29yZS50cmltTGVhZGluZygkbG9jYXRpb24udXJsKCksIFwiL1wiKS5zdGFydHNXaXRoKFwid29ya3NwYWNlXCIpO1xuXG4gICAgICAgICRzY29wZS50YWJsZUNvbmZpZyA9IHtcbiAgICAgICAgICBkYXRhOiAnbW9kZWwud29ya3NwYWNlcycsXG4gICAgICAgICAgc2hvd1NlbGVjdGlvbkNoZWNrYm94OiB0cnVlLFxuICAgICAgICAgIGVuYWJsZVJvd0NsaWNrU2VsZWN0aW9uOiBmYWxzZSxcbiAgICAgICAgICBtdWx0aVNlbGVjdDogdHJ1ZSxcbiAgICAgICAgICBzZWxlY3RlZEl0ZW1zOiBbXSxcbiAgICAgICAgICBmaWx0ZXJPcHRpb25zOiB7XG4gICAgICAgICAgICBmaWx0ZXJUZXh0OiAkbG9jYXRpb24uc2VhcmNoKClbXCJxXCJdIHx8ICcnXG4gICAgICAgICAgfSxcbiAgICAgICAgICBjb2x1bW5EZWZzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGZpZWxkOiAnJG5hbWUnLFxuICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogJ05hbWUnLFxuICAgICAgICAgICAgICBjZWxsVGVtcGxhdGU6ICR0ZW1wbGF0ZUNhY2hlLmdldCgkc2NvcGUuZGV2ZWxvcGVyUGVyc3BlY3RpdmUgPyBcInZpZXdOYW1lc3BhY2VQcm9qZWN0c1RlbXBsYXRlLmh0bWxcIiA6IFwidmlld05hbWVzcGFjZVRlbXBsYXRlLmh0bWxcIilcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGZpZWxkOiAnbWV0YWRhdGEuZGVzY3JpcHRpb24nLFxuICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogJ0Rlc2NyaXB0aW9uJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgZmllbGQ6ICckY3JlYXRpb25EYXRlJyxcbiAgICAgICAgICAgICAgZGlzcGxheU5hbWU6ICdDcmVhdGVkJyxcbiAgICAgICAgICAgICAgY2VsbFRlbXBsYXRlOiAkdGVtcGxhdGVDYWNoZS5nZXQoXCJjcmVhdGlvblRpbWVUZW1wbGF0ZS5odG1sXCIpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBmaWVsZDogJyRsYWJlbHNUZXh0JyxcbiAgICAgICAgICAgICAgZGlzcGxheU5hbWU6ICdMYWJlbHMnLFxuICAgICAgICAgICAgICBjZWxsVGVtcGxhdGU6ICR0ZW1wbGF0ZUNhY2hlLmdldChcImxhYmVsVGVtcGxhdGUuaHRtbFwiKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIF1cbiAgICAgICAgfTtcblxuICAgICAgICBLdWJlcm5ldGVzLmluaXRTaGFyZWQoJHNjb3BlLCAkbG9jYXRpb24sICRodHRwLCAkdGltZW91dCwgJHJvdXRlUGFyYW1zLCBLdWJlcm5ldGVzTW9kZWwsIEt1YmVybmV0ZXNTdGF0ZSwgS3ViZXJuZXRlc0FwaVVSTCk7XG5cbiAgICAgICAgJHNjb3BlLmJyZWFkY3J1bWJDb25maWcgPSBjcmVhdGVXb3Jrc3BhY2VzQnJlYWRjcnVtYnMoJHNjb3BlLmRldmVsb3BlclBlcnNwZWN0aXZlKTtcbiAgICAgICAgJHNjb3BlLnN1YlRhYkNvbmZpZyA9IERldmVsb3Blci5jcmVhdGVXb3Jrc3BhY2VzU3ViTmF2QmFycygkc2NvcGUuZGV2ZWxvcGVyUGVyc3BlY3RpdmUpO1xuXG4gICAgICAgICRzY29wZS4ka2VlcFBvbGxpbmcgPSAoKSA9PiBLdWJlcm5ldGVzLmtlZXBQb2xsaW5nTW9kZWw7XG4gICAgICAgICRzY29wZS5mZXRjaCA9IFBvbGxIZWxwZXJzLnNldHVwUG9sbGluZygkc2NvcGUsIChuZXh0OigpID0+IHZvaWQpID0+IHtcbiAgICAgICAgICB2YXIgdXJsID0gS3ViZXJuZXRlcy5yZXNvdXJjZXNVcmlGb3JLaW5kKFwiUHJvamVjdHNcIik7XG4gICAgICAgICAgJGh0dHAuZ2V0KHVybCkuXG4gICAgICAgICAgICBzdWNjZXNzKGZ1bmN0aW9uIChkYXRhLCBzdGF0dXMsIGhlYWRlcnMsIGNvbmZpZykge1xuICAgICAgICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgICAgICRzY29wZS5tb2RlbC53b3Jrc3BhY2VzID0gZW5yaWNoV29ya3NwYWNlcyhkYXRhLml0ZW1zKTtcbiAgICAgICAgICAgICAgICAkc2NvcGUubW9kZWwuZmV0Y2hlZCA9IHRydWU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgQ29yZS4kYXBwbHkoJHNjb3BlKTtcbiAgICAgICAgICAgICAgbmV4dCgpO1xuICAgICAgICAgICAgfSkuXG4gICAgICAgICAgICBlcnJvcihmdW5jdGlvbiAoZGF0YSwgc3RhdHVzLCBoZWFkZXJzLCBjb25maWcpIHtcbiAgICAgICAgICAgICAgbG9nLndhcm4oXCJGYWlsZWQgdG8gbG9hZCBcIiArIHVybCArIFwiIFwiICsgZGF0YSArIFwiIFwiICsgc3RhdHVzKTtcbiAgICAgICAgICAgICAgQ29yZS4kYXBwbHkoJHNjb3BlKTtcbiAgICAgICAgICAgICAgbmV4dCgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgICRzY29wZS5mZXRjaCgpO1xuXG4gICAgICB9XSk7XG59XG4iLCIvLy8gPHJlZmVyZW5jZSBwYXRoPVwiLi4vLi4vaW5jbHVkZXMudHNcIi8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwia3ViZXJuZXRlc0hlbHBlcnMudHNcIi8+XG5cbmRlY2xhcmUgdmFyIE9TT0F1dGhDb25maWc6YW55O1xuZGVjbGFyZSB2YXIgR29vZ2xlT0F1dGhDb25maWc6YW55O1xuZGVjbGFyZSB2YXIgS2V5Y2xvYWtDb25maWc6YW55O1xuXG5tb2R1bGUgS3ViZXJuZXRlcyB7XG5cbiAgZXhwb3J0IHZhciBfbW9kdWxlID0gYW5ndWxhci5tb2R1bGUocGx1Z2luTmFtZSwgWydoYXd0aW8tY29yZScsICdoYXd0aW8tdWknLCAncmVzdG1vZCcsICd1aS5jb2RlbWlycm9yJywgJ2t1YmVybmV0ZXNVSSddKTtcbiAgZXhwb3J0IHZhciBjb250cm9sbGVyID0gUGx1Z2luSGVscGVycy5jcmVhdGVDb250cm9sbGVyRnVuY3Rpb24oX21vZHVsZSwgcGx1Z2luTmFtZSk7XG4gIGV4cG9ydCB2YXIgcm91dGUgPSBQbHVnaW5IZWxwZXJzLmNyZWF0ZVJvdXRpbmdGdW5jdGlvbih0ZW1wbGF0ZVBhdGgpO1xuXG4gIF9tb2R1bGUuY29uZmlnKFsnJHJvdXRlUHJvdmlkZXInLCAoJHJvdXRlUHJvdmlkZXI6bmcucm91dGUuSVJvdXRlUHJvdmlkZXIpID0+IHtcblxuICAgICRyb3V0ZVByb3ZpZGVyXG4gICAgICAud2hlbihVcmxIZWxwZXJzLmpvaW4oY29udGV4dCwgJy9wb2RzJyksIHJvdXRlKCdwb2RzLmh0bWwnLCBmYWxzZSkpXG4gICAgICAud2hlbihVcmxIZWxwZXJzLmpvaW4oY29udGV4dCwgJ3JlcGxpY2F0aW9uQ29udHJvbGxlcnMnKSwgcm91dGUoJ3JlcGxpY2F0aW9uQ29udHJvbGxlcnMuaHRtbCcsIGZhbHNlKSlcbiAgICAgIC53aGVuKFVybEhlbHBlcnMuam9pbihjb250ZXh0LCAnc2VydmljZXMnKSwgcm91dGUoJ3NlcnZpY2VzLmh0bWwnLCBmYWxzZSkpXG4gICAgICAud2hlbihVcmxIZWxwZXJzLmpvaW4oY29udGV4dCwgJ2V2ZW50cycpLCByb3V0ZSgnZXZlbnRzLmh0bWwnLCBmYWxzZSkpXG4gICAgICAud2hlbihVcmxIZWxwZXJzLmpvaW4oY29udGV4dCwgJ2FwcHMnKSwgcm91dGUoJ2FwcHMuaHRtbCcsIGZhbHNlKSlcbiAgICAgIC53aGVuKFVybEhlbHBlcnMuam9pbihjb250ZXh0LCAnYXBwcy86bmFtZXNwYWNlJyksIHJvdXRlKCdhcHBzLmh0bWwnLCBmYWxzZSkpXG4gICAgICAud2hlbihVcmxIZWxwZXJzLmpvaW4oY29udGV4dCwgJ3RlbXBsYXRlcycpLCByb3V0ZSgndGVtcGxhdGVzLmh0bWwnLCBmYWxzZSkpXG4gICAgICAud2hlbihVcmxIZWxwZXJzLmpvaW4oY29udGV4dCwgJ2hvc3RzJyksIHJvdXRlKCdob3N0cy5odG1sJywgZmFsc2UpKVxuICAgICAgLndoZW4oVXJsSGVscGVycy5qb2luKGNvbnRleHQsICdob3N0cy86aWQnKSwgcm91dGUoJ2hvc3QuaHRtbCcsIHRydWUpKVxuICAgICAgLndoZW4oVXJsSGVscGVycy5qb2luKGNvbnRleHQsICdwaXBlbGluZXMnKSwgcm91dGUoJ3BpcGVsaW5lcy5odG1sJywgZmFsc2UpKVxuICAgICAgLndoZW4oVXJsSGVscGVycy5qb2luKGNvbnRleHQsICdvdmVydmlldycpLCByb3V0ZSgnb3ZlcnZpZXcuaHRtbCcsIHRydWUpKVxuICAgICAgLndoZW4oY29udGV4dCwge3JlZGlyZWN0VG86IFwiL3dvcmtzcGFjZXNcIn0pO1xuXG5cbiAgICBhbmd1bGFyLmZvckVhY2goW2NvbnRleHQsIFwiL3dvcmtzcGFjZXMvOndvcmtzcGFjZS9wcm9qZWN0cy86cHJvamVjdFwiXSwgKGNvbnRleHQpID0+IHtcbiAgICAgICRyb3V0ZVByb3ZpZGVyXG4gICAgICAgIC53aGVuKFVybEhlbHBlcnMuam9pbihjb250ZXh0LCAnL25hbWVzcGFjZS86bmFtZXNwYWNlL3BvZENyZWF0ZScpLCByb3V0ZSgncG9kQ3JlYXRlLmh0bWwnLCBmYWxzZSkpXG4gICAgICAgIC53aGVuKFVybEhlbHBlcnMuam9pbihjb250ZXh0LCAnL25hbWVzcGFjZS86bmFtZXNwYWNlL3BvZEVkaXQvOmlkJyksIHJvdXRlKCdwb2RFZGl0Lmh0bWwnLCBmYWxzZSkpXG4gICAgICAgIC53aGVuKFVybEhlbHBlcnMuam9pbihjb250ZXh0LCAnL25hbWVzcGFjZS86bmFtZXNwYWNlL3BvZHMnKSwgcm91dGUoJ3BvZHMuaHRtbCcsIGZhbHNlKSlcbiAgICAgICAgLndoZW4oVXJsSGVscGVycy5qb2luKGNvbnRleHQsICcvbmFtZXNwYWNlLzpuYW1lc3BhY2UvcG9kcy86aWQnKSwgcm91dGUoJ3BvZC5odG1sJywgZmFsc2UpKVxuICAgICAgICAud2hlbihVcmxIZWxwZXJzLmpvaW4oY29udGV4dCwgJy9uYW1lc3BhY2UvOm5hbWVzcGFjZS9yZXBsaWNhdGlvbkNvbnRyb2xsZXJzJyksIHJvdXRlKCdyZXBsaWNhdGlvbkNvbnRyb2xsZXJzLmh0bWwnLCBmYWxzZSkpXG4gICAgICAgIC53aGVuKFVybEhlbHBlcnMuam9pbihjb250ZXh0LCAnL25hbWVzcGFjZS86bmFtZXNwYWNlL3JlcGxpY2F0aW9uQ29udHJvbGxlcnMvOmlkJyksIHJvdXRlKCdyZXBsaWNhdGlvbkNvbnRyb2xsZXIuaHRtbCcsIGZhbHNlKSlcbiAgICAgICAgLndoZW4oVXJsSGVscGVycy5qb2luKGNvbnRleHQsICcvbmFtZXNwYWNlLzpuYW1lc3BhY2UvcmVwbGljYXRpb25Db250cm9sbGVyQ3JlYXRlJyksIHJvdXRlKCdyZXBsaWNhdGlvbkNvbnRyb2xsZXJDcmVhdGUuaHRtbCcsIGZhbHNlKSlcbiAgICAgICAgLndoZW4oVXJsSGVscGVycy5qb2luKGNvbnRleHQsICcvbmFtZXNwYWNlLzpuYW1lc3BhY2UvcmVwbGljYXRpb25Db250cm9sbGVyRWRpdC86aWQnKSwgcm91dGUoJ3JlcGxpY2F0aW9uQ29udHJvbGxlckVkaXQuaHRtbCcsIGZhbHNlKSlcbiAgICAgICAgLndoZW4oVXJsSGVscGVycy5qb2luKGNvbnRleHQsICcvbmFtZXNwYWNlLzpuYW1lc3BhY2Uvc2VydmljZXMnKSwgcm91dGUoJ3NlcnZpY2VzLmh0bWwnLCBmYWxzZSkpXG4gICAgICAgIC53aGVuKFVybEhlbHBlcnMuam9pbihjb250ZXh0LCAnL25hbWVzcGFjZS86bmFtZXNwYWNlL3NlcnZpY2VzLzppZCcpLCByb3V0ZSgnc2VydmljZS5odG1sJywgZmFsc2UpKVxuICAgICAgICAud2hlbihVcmxIZWxwZXJzLmpvaW4oY29udGV4dCwgJy9uYW1lc3BhY2UvOm5hbWVzcGFjZS9zZXJ2aWNlQ3JlYXRlJyksIHJvdXRlKCdzZXJ2aWNlQ3JlYXRlLmh0bWwnLCBmYWxzZSkpXG4gICAgICAgIC53aGVuKFVybEhlbHBlcnMuam9pbihjb250ZXh0LCAnL25hbWVzcGFjZS86bmFtZXNwYWNlL3NlcnZpY2VFZGl0LzppZCcpLCByb3V0ZSgnc2VydmljZUVkaXQuaHRtbCcsIGZhbHNlKSlcbiAgICAgICAgLndoZW4oVXJsSGVscGVycy5qb2luKGNvbnRleHQsICcvbmFtZXNwYWNlLzpuYW1lc3BhY2UvZXZlbnRzJyksIHJvdXRlKCdldmVudHMuaHRtbCcsIGZhbHNlKSlcbiAgICAgICAgLndoZW4oVXJsSGVscGVycy5qb2luKGNvbnRleHQsICcvbmFtZXNwYWNlLzpuYW1lc3BhY2UvYXBwcycpLCByb3V0ZSgnYXBwcy5odG1sJywgZmFsc2UpKVxuICAgICAgICAud2hlbihVcmxIZWxwZXJzLmpvaW4oY29udGV4dCwgJy9uYW1lc3BhY2UvOm5hbWVzcGFjZS90ZW1wbGF0ZXMvOnRhcmdldE5hbWVzcGFjZScpLCByb3V0ZSgndGVtcGxhdGVzLmh0bWwnLCBmYWxzZSkpXG4gICAgICAgIC53aGVuKFVybEhlbHBlcnMuam9pbihjb250ZXh0LCAnL25hbWVzcGFjZS86bmFtZXNwYWNlJyksIHJvdXRlKCdhcHBzLmh0bWwnLCBmYWxzZSkpXG4gICAgICAgIC53aGVuKFVybEhlbHBlcnMuam9pbihjb250ZXh0LCAnYnVpbGRzJyksIHJvdXRlKCdidWlsZHMuaHRtbCcsIGZhbHNlKSlcbiAgICAgICAgLndoZW4oVXJsSGVscGVycy5qb2luKGNvbnRleHQsICdidWlsZHMvOmlkJyksIHJvdXRlKCdidWlsZC5odG1sJywgdHJ1ZSkpXG4gICAgICAgIC53aGVuKFVybEhlbHBlcnMuam9pbihjb250ZXh0LCAnYnVpbGRMb2dzLzppZCcpLCByb3V0ZSgnYnVpbGRMb2dzLmh0bWwnLCB0cnVlKSlcbiAgICAgICAgLndoZW4oVXJsSGVscGVycy5qb2luKGNvbnRleHQsICdidWlsZENvbmZpZ3MnKSwgcm91dGUoJ2J1aWxkQ29uZmlncy5odG1sJywgZmFsc2UpKVxuICAgICAgICAud2hlbihVcmxIZWxwZXJzLmpvaW4oY29udGV4dCwgJ2J1aWxkQ29uZmlncy86aWQnKSwgcm91dGUoJ2J1aWxkQ29uZmlnLmh0bWwnLCB0cnVlKSlcbiAgICAgICAgLndoZW4oVXJsSGVscGVycy5qb2luKGNvbnRleHQsICdidWlsZENvbmZpZ0VkaXQvOmlkJyksIHJvdXRlKCdidWlsZENvbmZpZ0VkaXQuaHRtbCcsIHRydWUpKVxuICAgICAgICAud2hlbihVcmxIZWxwZXJzLmpvaW4oY29udGV4dCwgJ2J1aWxkQ29uZmlnQ3JlYXRlJyksIHJvdXRlKCdidWlsZENvbmZpZ0NyZWF0ZS5odG1sJywgdHJ1ZSkpXG4gICAgICAgIC53aGVuKFVybEhlbHBlcnMuam9pbihjb250ZXh0LCAnZGVwbG95bWVudENvbmZpZ3MnKSwgcm91dGUoJ2RlcGxveW1lbnRDb25maWdzLmh0bWwnLCBmYWxzZSkpXG4gICAgICAgIC53aGVuKFVybEhlbHBlcnMuam9pbihjb250ZXh0LCAnZGVwbG95bWVudENvbmZpZ3MvOmlkJyksIHJvdXRlKCdkZXBsb3ltZW50Q29uZmlnLmh0bWwnLCB0cnVlKSlcbiAgICAgICAgLndoZW4oVXJsSGVscGVycy5qb2luKGNvbnRleHQsICdpbWFnZVJlcG9zaXRvcmllcycpLCByb3V0ZSgnaW1hZ2VSZXBvc2l0b3JpZXMuaHRtbCcsIGZhbHNlKSlcbiAgICB9KTtcbiAgfV0pO1xuXG5cbiAgX21vZHVsZS5mYWN0b3J5KCdBcHBMaWJyYXJ5VVJMJywgWyckcm9vdFNjb3BlJywgKCRyb290U2NvcGU6bmcuSVJvb3RTY29wZVNlcnZpY2UpID0+IHtcbiAgICByZXR1cm4gVXJsSGVscGVycy5qb2luKGt1YmVybmV0ZXNBcGlVcmwoKSwgXCIvcHJveHlcIiwga3ViZXJuZXRlc05hbWVzcGFjZVBhdGgoKSwgXCIvc2VydmljZXMvYXBwLWxpYnJhcnlcIik7XG4gIH1dKTtcblxuICBfbW9kdWxlLmZhY3RvcnkoJ1dpa2lHaXRVcmxQcmVmaXgnLCAoKSA9PiB7XG4gICAgcmV0dXJuIFVybEhlbHBlcnMuam9pbihrdWJlcm5ldGVzQXBpVXJsKCksIFwiL3Byb3h5XCIsIGt1YmVybmV0ZXNOYW1lc3BhY2VQYXRoKCksIFwic2VydmljZXMvYXBwLWxpYnJhcnlcIik7XG4gIH0pO1xuXG4gIF9tb2R1bGUuZmFjdG9yeSgnd2lraVJlcG9zaXRvcnknLCBbXCIkbG9jYXRpb25cIiwgXCJsb2NhbFN0b3JhZ2VcIiwgKCRsb2NhdGlvbiwgbG9jYWxTdG9yYWdlKSA9PiB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XSk7XG5cbiAgX21vZHVsZS5mYWN0b3J5KCdDb25uZWN0RGlhbG9nU2VydmljZScsIFsnJHJvb3RTY29wZScsICgkcm9vdFNjb3BlOm5nLklSb290U2NvcGVTZXJ2aWNlKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGRpYWxvZzogbmV3IFVJLkRpYWxvZygpLFxuICAgICAgc2F2ZUNyZWRlbnRpYWxzOiBmYWxzZSxcbiAgICAgIHVzZXJOYW1lOiBudWxsLFxuICAgICAgcGFzc3dvcmQ6IG51bGwsXG4gICAgICBqb2xva2lhVXJsOiBudWxsLFxuICAgICAgY29udGFpbmVyTmFtZTogbnVsbCxcbiAgICAgIHZpZXc6IG51bGxcbiAgICB9O1xuICB9XSk7XG5cbiAgX21vZHVsZS5maWx0ZXIoJ2t1YmVybmV0ZXNQYWdlTGluaycsICgpID0+IGVudGl0eVBhZ2VMaW5rKTtcblxuICBfbW9kdWxlLnJ1bihbJ3ZpZXdSZWdpc3RyeScsICdTZXJ2aWNlUmVnaXN0cnknLCAnSGF3dGlvTmF2JywgJ0t1YmVybmV0ZXNNb2RlbCcsICckdGVtcGxhdGVDYWNoZScsICh2aWV3UmVnaXN0cnksIFNlcnZpY2VSZWdpc3RyeSwgSGF3dGlvTmF2LCBLdWJlcm5ldGVzTW9kZWwsICR0ZW1wbGF0ZUNhY2hlKSA9PiB7XG5cbiAgICBsb2cuZGVidWcoXCJSdW5uaW5nXCIpO1xuICAgIHZpZXdSZWdpc3RyeVsna3ViZXJuZXRlcyddID0gdGVtcGxhdGVQYXRoICsgJ2xheW91dEt1YmVybmV0ZXMuaHRtbCc7XG4gICAgdmFyIGJ1aWxkZXIgPSBIYXd0aW9OYXYuYnVpbGRlcigpO1xuICAgIHZhciBhcHBzID0gYnVpbGRlci5pZCgna3ViZS1hcHBzJylcbiAgICAgIC5ocmVmKCgpID0+IFVybEhlbHBlcnMuam9pbihjb250ZXh0LCAnYXBwcycpKVxuICAgICAgLnRpdGxlKCgpID0+ICdBcHBzJylcbiAgICAgIC5idWlsZCgpO1xuXG4gICAgdmFyIHNlcnZpY2VzID0gYnVpbGRlci5pZCgna3ViZS1zZXJ2aWNlcycpXG4gICAgICAuaHJlZigoKSA9PiBVcmxIZWxwZXJzLmpvaW4oY29udGV4dCwgJ3NlcnZpY2VzJykpXG4gICAgICAudGl0bGUoKCkgPT4gJ1NlcnZpY2VzJylcbiAgICAgIC5idWlsZCgpO1xuXG4gICAgdmFyIGNvbnRyb2xsZXJzID0gYnVpbGRlci5pZCgna3ViZS1jb250cm9sbGVycycpXG4gICAgICAuaHJlZigoKSA9PiBVcmxIZWxwZXJzLmpvaW4oY29udGV4dCwgJ3JlcGxpY2F0aW9uQ29udHJvbGxlcnMnKSlcbiAgICAgIC50aXRsZSgoKSA9PiAnQ29udHJvbGxlcnMnKVxuICAgICAgLmJ1aWxkKCk7XG5cbiAgICB2YXIgcG9kcyA9IGJ1aWxkZXIuaWQoJ2t1YmUtcG9kcycpXG4gICAgICAuaHJlZigoKSA9PiBVcmxIZWxwZXJzLmpvaW4oY29udGV4dCwgJ3BvZHMnKSlcbiAgICAgIC50aXRsZSgoKSA9PiAnUG9kcycpXG4gICAgICAuYnVpbGQoKTtcblxuICAgIHZhciBldmVudHMgPSBidWlsZGVyLmlkKCdrdWJlLWV2ZW50cycpXG4gICAgICAuaHJlZigoKSA9PiBVcmxIZWxwZXJzLmpvaW4oY29udGV4dCwgJ2V2ZW50cycpKVxuICAgICAgLnRpdGxlKCgpID0+ICdFdmVudHMnKVxuICAgICAgLmJ1aWxkKCk7XG5cbiAgICB2YXIgaG9zdHMgPSBidWlsZGVyLmlkKCdrdWJlLWhvc3RzJylcbiAgICAgIC5ocmVmKCgpID0+IFVybEhlbHBlcnMuam9pbihjb250ZXh0LCAnaG9zdHMnKSlcbiAgICAgIC50aXRsZSgoKSA9PiAnSG9zdHMnKVxuICAgICAgLmJ1aWxkKCk7XG5cbiAgICB2YXIgb3ZlcnZpZXcgPSBidWlsZGVyLmlkKCdrdWJlLW92ZXJ2aWV3JylcbiAgICAgIC5ocmVmKCgpID0+IFVybEhlbHBlcnMuam9pbihjb250ZXh0LCAnb3ZlcnZpZXcnKSlcbiAgICAgIC50aXRsZSgoKSA9PiAnRGlhZ3JhbScpXG4gICAgICAuYnVpbGQoKTtcblxuICAgIHZhciBidWlsZHMgPSBidWlsZGVyLmlkKCdrdWJlLWJ1aWxkcycpXG4gICAgICAuaHJlZigoKSA9PiBVcmxIZWxwZXJzLmpvaW4oY29udGV4dCwgJ2J1aWxkcycpKVxuICAgICAgLnRpdGxlKCgpID0+ICdCdWlsZHMnKVxuICAgICAgLmJ1aWxkKCk7XG5cbiAgICB2YXIgYnVpbGRDb25maWdzID0gYnVpbGRlci5pZCgna3ViZS1idWlsZENvbmZpZ3MnKVxuICAgICAgLmhyZWYoKCkgPT4gVXJsSGVscGVycy5qb2luKGNvbnRleHQsICdidWlsZENvbmZpZ3MnKSlcbiAgICAgIC50aXRsZSgoKSA9PiAnQnVpbGQgQ29uZmlncycpXG4gICAgICAuYnVpbGQoKTtcblxuICAgIHZhciBkZXBsb3lzID0gYnVpbGRlci5pZCgna3ViZS1kZXBsb3lzJylcbiAgICAgIC5ocmVmKCgpID0+IFVybEhlbHBlcnMuam9pbihjb250ZXh0LCAnZGVwbG95bWVudENvbmZpZ3MnKSlcbiAgICAgIC50aXRsZSgoKSA9PiAnRGVwbG95cycpXG4gICAgICAuYnVpbGQoKTtcblxuICAgIHZhciBpbWFnZVJlcG9zaXRvcmllcyA9IGJ1aWxkZXIuaWQoJ2t1YmUtaW1hZ2VSZXBvc2l0b3JpZXMnKVxuICAgICAgLmhyZWYoKCkgPT4gVXJsSGVscGVycy5qb2luKGNvbnRleHQsICdpbWFnZVJlcG9zaXRvcmllcycpKVxuICAgICAgLnRpdGxlKCgpID0+ICdSZWdpc3RyaWVzJylcbiAgICAgIC5idWlsZCgpO1xuXG4gICAgdmFyIHBpcGVsaW5lcyA9IGJ1aWxkZXIuaWQoJ2t1YmUtcGlwZWxpbmVzJylcbiAgICAgIC5ocmVmKCgpID0+IFVybEhlbHBlcnMuam9pbihjb250ZXh0LCAncGlwZWxpbmVzJykpXG4gICAgICAudGl0bGUoKCkgPT4gJ1BpcGVsaW5lcycpXG4gICAgICAuYnVpbGQoKTtcblxuICAgIHZhciByZXBvcyA9IGJ1aWxkZXIuaWQoJ2t1YmUtcmVwb3MnKVxuICAgICAgLmhyZWYoKCkgPT4gXCIvZm9yZ2UvcmVwb3NcIilcbiAgICAgIC5pc1ZhbGlkKCgpID0+IFNlcnZpY2VSZWdpc3RyeS5oYXNTZXJ2aWNlKGZhYnJpYzhGb3JnZVNlcnZpY2VOYW1lKSAmJiBTZXJ2aWNlUmVnaXN0cnkuaGFzU2VydmljZShnb2dzU2VydmljZU5hbWUpKVxuICAgICAgLnRpdGxlKCgpID0+ICdSZXBvc2l0b3JpZXMnKVxuICAgICAgLmJ1aWxkKCk7XG5cbiAgICB2YXIgbWFpblRhYiA9IGJ1aWxkZXIuaWQoJ2t1YmVybmV0ZXMnKVxuICAgICAgLnJhbmsoMjAwKVxuICAgICAgLmRlZmF1bHRQYWdlKHtcbiAgICAgICAgcmFuazogMjAsXG4gICAgICAgIGlzVmFsaWQ6ICh5ZXMsIG5vKSA9PiB7XG4gICAgICAgICAgeWVzKCk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICAuaHJlZigoKSA9PiBjb250ZXh0KVxuICAgICAgLnRpdGxlKCgpID0+ICdLdWJlcm5ldGVzJylcbiAgICAgIC50YWJzKGFwcHMsIHNlcnZpY2VzLCBjb250cm9sbGVycywgcG9kcywgZXZlbnRzLCBob3N0cywgb3ZlcnZpZXcpXG4gICAgICAuYnVpbGQoKTtcbiAgICBIYXd0aW9OYXYuYWRkKG1haW5UYWIpO1xuXG4gICAgSGF3dGlvTmF2LmFkZCh7XG4gICAgICBpZDogJ2s4c0FwcFN3aXRjaGVyJyxcbiAgICAgIHRpdGxlOiAoKSA9PiAnJywgLy8gbm90IHVzZWQgYXMgJ3RlbXBsYXRlJyBiZWxvdyBvdmVycmlkZXMgdGhpc1xuICAgICAgaXNWYWxpZDogKCkgPT4gS3ViZXJuZXRlc01vZGVsLnNlcnZpY2VBcHBzLmxlbmd0aCA+IDAsXG4gICAgICBjb250ZXh0OiB0cnVlLFxuICAgICAgdGVtcGxhdGU6ICgpID0+ICR0ZW1wbGF0ZUNhY2hlLmdldChVcmxIZWxwZXJzLmpvaW4odGVtcGxhdGVQYXRoLCAnc2VydmljZUFwcHMuaHRtbCcpKVxuICAgIH0pO1xuXG5cbiAgICB2YXIgcHJvamVjdHNUYWIgPSBidWlsZGVyLmlkKCdvcGVuc2hpZnQnKVxuICAgICAgLnJhbmsoMTAwKVxuICAgICAgLmhyZWYoKCkgPT4gVXJsSGVscGVycy5qb2luKGNvbnRleHQsICdidWlsZENvbmZpZ3MnKSArICc/c3ViLXRhYj1rdWJlLWJ1aWxkQ29uZmlncycpXG4gICAgICAudGl0bGUoKCkgPT4gJ1Byb2plY3RzJylcbiAgICAgIC8vIGxldHMgZGlzYWJsZSB0aGUgcGlwZWxpbmVzIHZpZXcgZm9yIG5vd1xuICAgICAgLy8gcGlwZWxpbmVzLFxuICAgICAgLnRhYnMocmVwb3MsIGJ1aWxkQ29uZmlncywgYnVpbGRzLCBkZXBsb3lzLCBpbWFnZVJlcG9zaXRvcmllcylcbiAgICAgIC5idWlsZCgpO1xuXG4gICAgSGF3dGlvTmF2LmFkZChwcm9qZWN0c1RhYik7XG4gIH1dKTtcblxuICBoYXd0aW9QbHVnaW5Mb2FkZXIucmVnaXN0ZXJQcmVCb290c3RyYXBUYXNrKHtcbiAgICBuYW1lOiAnS3ViZXJuZXRlc0luaXQnLFxuICAgIHRhc2s6IChuZXh0KSA9PiB7XG4gICAgICAkLmdldFNjcmlwdCgnb3Njb25zb2xlL2NvbmZpZy5qcycpXG4gICAgICAgIC5kb25lKChzY3JpcHQsIHRleHRTdGF0dXMpID0+IHtcbiAgICAgICAgICB2YXIgY29uZmlnOkt1YmVybmV0ZXNDb25maWcgPSBLdWJlcm5ldGVzLm9zQ29uZmlnID0gd2luZG93WydPUEVOU0hJRlRfQ09ORklHJ107XG4gICAgICAgICAgbG9nLmRlYnVnKFwiRmV0Y2hlZCBPQXV0aCBjb25maWc6IFwiLCBjb25maWcpO1xuICAgICAgICAgIHZhciBtYXN0ZXI6c3RyaW5nID0gY29uZmlnLm1hc3Rlcl91cmk7XG4gICAgICAgICAgaWYgKCFtYXN0ZXIgJiYgY29uZmlnLmFwaSAmJiBjb25maWcuYXBpLms4cykge1xuICAgICAgICAgICAgdmFyIG1hc3RlclVyaSA9IG5ldyBVUkkoKS5ob3N0KGNvbmZpZy5hcGkuazhzLmhvc3RQb3J0KS5wYXRoKFwiXCIpLnF1ZXJ5KFwiXCIpO1xuICAgICAgICAgICAgaWYgKGNvbmZpZy5hcGkuazhzLnByb3RvKSB7XG4gICAgICAgICAgICAgIG1hc3RlclVyaS5wcm90b2NvbChjb25maWcuYXBpLms4cy5wcm90byk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBtYXN0ZXIgPSBtYXN0ZXJVcmkudG9TdHJpbmcoKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBPU09BdXRoQ29uZmlnID0gY29uZmlnLm9wZW5zaGlmdDtcbiAgICAgICAgICBHb29nbGVPQXV0aENvbmZpZyA9IGNvbmZpZy5nb29nbGU7XG4gICAgICAgICAgS2V5Y2xvYWtDb25maWcgPSBjb25maWcua2V5Y2xvYWs7XG5cbiAgICAgICAgICBpZiAoT1NPQXV0aENvbmZpZyAmJiAhbWFzdGVyKSB7XG4gICAgICAgICAgICAvLyBUT0RPIGF1dGgubWFzdGVyX3VyaSBubyBsb25nZXIgdXNlZCByaWdodD9cbiAgICAgICAgICAgIC8vIG1hc3RlciA9IE9TT0F1dGhDb25maWcubWFzdGVyX3VyaTtcbiAgICAgICAgICAgIGlmICghbWFzdGVyKSB7XG4gICAgICAgICAgICAgIHZhciBvYXV0aF9hdXRob3JpemVfdXJpID0gT1NPQXV0aENvbmZpZy5vYXV0aF9hdXRob3JpemVfdXJpO1xuICAgICAgICAgICAgICBpZiAob2F1dGhfYXV0aG9yaXplX3VyaSkge1xuICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gb2F1dGhfYXV0aG9yaXplX3VyaTtcbiAgICAgICAgICAgICAgICB2YXIgaWR4ID0gdGV4dC5pbmRleE9mKFwiOi8vXCIpO1xuICAgICAgICAgICAgICAgIGlmIChpZHggPiAwKSB7XG4gICAgICAgICAgICAgICAgICBpZHggKz0gMztcbiAgICAgICAgICAgICAgICAgIGlkeCA9IHRleHQuaW5kZXhPZihcIi9cIiwgaWR4KTtcbiAgICAgICAgICAgICAgICAgIGlmIChpZHggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIG1hc3RlciA9IHRleHQuc3Vic3RyaW5nKDAsICsraWR4KTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKCghS3ViZXJuZXRlcy5tYXN0ZXJVcmwgfHwgS3ViZXJuZXRlcy5tYXN0ZXJVcmwgPT09IFwiL1wiKSAmJiAoIW1hc3RlciB8fCBtYXN0ZXIgPT09IFwiL1wiKSkge1xuICAgICAgICAgICAgLy8gbGV0cyBkZWZhdWx0IHRoZSBtYXN0ZXIgdG8gdGhlIGN1cnJlbnQgcHJvdG9jb2wgYW5kIGhvc3QvcG9ydFxuICAgICAgICAgICAgLy8gaW4gY2FzZSB0aGUgbWFzdGVyIHVybCBpcyBcIi9cIiBhbmQgd2UgYXJlXG4gICAgICAgICAgICAvLyBzZXJ2aW5nIHVwIHN0YXRpYyBjb250ZW50IGZyb20gaW5zaWRlIC9hcGkvdjEvbmFtZXNwYWNlcy9kZWZhdWx0L3NlcnZpY2VzL2ZhYnJpYzggb3Igc29tZXRoaW5nIGxpa2UgdGhhdFxuICAgICAgICAgICAgdmFyIGhyZWYgPSBsb2NhdGlvbi5ocmVmO1xuICAgICAgICAgICAgaWYgKGhyZWYpIHtcbiAgICAgICAgICAgICAgbWFzdGVyID0gbmV3IFVSSShocmVmKS5xdWVyeShcIlwiKS5wYXRoKFwiXCIpLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChtYXN0ZXIpIHtcbiAgICAgICAgICAgIEt1YmVybmV0ZXMubWFzdGVyVXJsID0gbWFzdGVyO1xuICAgICAgICAgICAgbmV4dCgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICAgLmZhaWwoKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgbG9nLmRlYnVnKFwiRXJyb3IgZmV0Y2hpbmcgT0FVVEggY29uZmlnOiBcIiwgcmVzcG9uc2UpO1xuICAgICAgICB9KVxuICAgICAgICAuYWx3YXlzKCgpID0+IHtcbiAgICAgICAgICBuZXh0KCk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfSwgdHJ1ZSk7XG5cbiAgaGF3dGlvUGx1Z2luTG9hZGVyLmFkZE1vZHVsZSgnbmdSZXNvdXJjZScpO1xuICBoYXd0aW9QbHVnaW5Mb2FkZXIuYWRkTW9kdWxlKHBsdWdpbk5hbWUpO1xufVxuIiwiLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4uLy4uL2luY2x1ZGVzLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cImt1YmVybmV0ZXNQbHVnaW4udHNcIi8+XG5cbm1vZHVsZSBLdWJlcm5ldGVzIHtcbiAgXG4gIGV4cG9ydCB2YXIgQXBwcyA9IGNvbnRyb2xsZXIoXCJBcHBzXCIsXG4gICAgW1wiJHNjb3BlXCIsIFwiS3ViZXJuZXRlc01vZGVsXCIsIFwiS3ViZXJuZXRlc1NlcnZpY2VzXCIsIFwiS3ViZXJuZXRlc1JlcGxpY2F0aW9uQ29udHJvbGxlcnNcIiwgXCJLdWJlcm5ldGVzUG9kc1wiLCBcIkt1YmVybmV0ZXNTdGF0ZVwiLCBcIkt1YmVybmV0ZXNBcGlVUkxcIiwgXCIkdGVtcGxhdGVDYWNoZVwiLCBcIiRsb2NhdGlvblwiLCBcIiRyb3V0ZVBhcmFtc1wiLCBcIiRodHRwXCIsIFwiJGRpYWxvZ1wiLCBcIiR0aW1lb3V0XCIsIFxuICAgICAgKCRzY29wZSwgS3ViZXJuZXRlc01vZGVsOiBLdWJlcm5ldGVzLkt1YmVybmV0ZXNNb2RlbFNlcnZpY2UsIEt1YmVybmV0ZXNTZXJ2aWNlczpuZy5yZXNvdXJjZS5JUmVzb3VyY2VDbGFzcywgS3ViZXJuZXRlc1JlcGxpY2F0aW9uQ29udHJvbGxlcnM6bmcucmVzb3VyY2UuSVJlc291cmNlQ2xhc3MsIEt1YmVybmV0ZXNQb2RzOm5nLnJlc291cmNlLklSZXNvdXJjZUNsYXNzLCBLdWJlcm5ldGVzU3RhdGUsIEt1YmVybmV0ZXNBcGlVUkwsXG4gICAgICAgJHRlbXBsYXRlQ2FjaGU6bmcuSVRlbXBsYXRlQ2FjaGVTZXJ2aWNlLCAkbG9jYXRpb246bmcuSUxvY2F0aW9uU2VydmljZSwgJHJvdXRlUGFyYW1zLCAkaHR0cCwgJGRpYWxvZywgJHRpbWVvdXQpID0+IHtcblxuICAgICRzY29wZS5tb2RlbCA9IEt1YmVybmV0ZXNNb2RlbDtcblxuICAgICRzY29wZS5hcHBzID0gW107XG4gICAgJHNjb3BlLmFsbEFwcHMgPSBbXTtcbiAgICAkc2NvcGUua3ViZXJuZXRlcyA9IEt1YmVybmV0ZXNTdGF0ZTtcbiAgICAkc2NvcGUuZmV0Y2hlZCA9IGZhbHNlO1xuICAgICRzY29wZS5qc29uID0gJyc7XG4gICAgQ29udHJvbGxlckhlbHBlcnMuYmluZE1vZGVsVG9TZWFyY2hQYXJhbSgkc2NvcGUsICRsb2NhdGlvbiwgJ2lkJywgJ19pZCcsIHVuZGVmaW5lZCk7XG4gICAgQ29udHJvbGxlckhlbHBlcnMuYmluZE1vZGVsVG9TZWFyY2hQYXJhbSgkc2NvcGUsICRsb2NhdGlvbiwgJ2FwcFNlbGVjdG9yU2hvdycsICdvcGVuQXBwJywgdW5kZWZpbmVkKTtcbiAgICBDb250cm9sbGVySGVscGVycy5iaW5kTW9kZWxUb1NlYXJjaFBhcmFtKCRzY29wZSwgJGxvY2F0aW9uLCAnbW9kZScsICdtb2RlJywgJ2RldGFpbCcpO1xuXG4gICAgdmFyIGJyYW5jaCA9ICRzY29wZS5icmFuY2ggfHwgXCJtYXN0ZXJcIjtcbiAgICB2YXIgbmFtZXNwYWNlID0gbnVsbDtcblxuICAgIGZ1bmN0aW9uIGFwcE1hdGNoZXMoYXBwKSB7XG4gICAgICB2YXIgZmlsdGVyVGV4dCA9ICRzY29wZS5hcHBTZWxlY3Rvci5maWx0ZXJUZXh0O1xuICAgICAgaWYgKGZpbHRlclRleHQpIHtcbiAgICAgICAgcmV0dXJuIENvcmUubWF0Y2hGaWx0ZXJJZ25vcmVDYXNlKGFwcC5ncm91cElkLCBmaWx0ZXJUZXh0KSB8fFxuICAgICAgICAgIENvcmUubWF0Y2hGaWx0ZXJJZ25vcmVDYXNlKGFwcC5hcnRpZmFjdElkLCBmaWx0ZXJUZXh0KSB8fFxuICAgICAgICAgIENvcmUubWF0Y2hGaWx0ZXJJZ25vcmVDYXNlKGFwcC5uYW1lLCBmaWx0ZXJUZXh0KSB8fFxuICAgICAgICAgIENvcmUubWF0Y2hGaWx0ZXJJZ25vcmVDYXNlKGFwcC5kZXNjcmlwdGlvbiwgZmlsdGVyVGV4dCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBhcHBSdW5uaW5nKGFwcCkge1xuICAgICAgcmV0dXJuICRzY29wZS5tb2RlbC5hcHBzLmFueSgocnVubmluZykgPT4gcnVubmluZy5hcHBQYXRoID09PSBhcHAuYXBwUGF0aCk7XG4gICAgfVxuXG4gICAgJHNjb3BlLnRhYmxlQ29uZmlnID0ge1xuICAgICAgZGF0YTogJ21vZGVsLmFwcHMnLFxuICAgICAgc2hvd1NlbGVjdGlvbkNoZWNrYm94OiB0cnVlLFxuICAgICAgZW5hYmxlUm93Q2xpY2tTZWxlY3Rpb246IGZhbHNlLFxuICAgICAgbXVsdGlTZWxlY3Q6IHRydWUsXG4gICAgICBzZWxlY3RlZEl0ZW1zOiBbXSxcbiAgICAgIGZpbHRlck9wdGlvbnM6IHtcbiAgICAgICAgZmlsdGVyVGV4dDogJGxvY2F0aW9uLnNlYXJjaCgpW1wicVwiXSB8fCAnJ1xuICAgICAgfSxcbiAgICAgIGNvbHVtbkRlZnM6IFtcbiAgICAgICAgeyBmaWVsZDogJyRuYW1lJywgZGlzcGxheU5hbWU6ICdBcHAnLCBjZWxsVGVtcGxhdGU6ICR0ZW1wbGF0ZUNhY2hlLmdldChcImFwcEljb25UZW1wbGF0ZS5odG1sXCIpIH0sXG4gICAgICAgIHsgZmllbGQ6ICckc2VydmljZXNUZXh0JywgZGlzcGxheU5hbWU6ICdTZXJ2aWNlcycsIGNlbGxUZW1wbGF0ZTogJHRlbXBsYXRlQ2FjaGUuZ2V0KFwiYXBwU2VydmljZXNUZW1wbGF0ZS5odG1sXCIpIH0sXG4gICAgICAgIHsgZmllbGQ6ICckcmVwbGljYXRpb25Db250cm9sbGVyc1RleHQnLCBkaXNwbGF5TmFtZTogJ0NvbnRyb2xsZXJzJywgY2VsbFRlbXBsYXRlOiAkdGVtcGxhdGVDYWNoZS5nZXQoXCJhcHBSZXBsaWNhdGlvbkNvbnRyb2xsZXJUZW1wbGF0ZS5odG1sXCIpIH0sXG4gICAgICAgIHsgZmllbGQ6ICckcG9kQ291bnQnLCBkaXNwbGF5TmFtZTogJ1BvZHMnLCBjZWxsVGVtcGxhdGU6ICR0ZW1wbGF0ZUNhY2hlLmdldChcImFwcFBvZENvdW50c0FuZExpbmtUZW1wbGF0ZS5odG1sXCIpIH0sXG4gICAgICAgIHsgZmllbGQ6ICckY3JlYXRpb25EYXRlJywgZGlzcGxheU5hbWU6ICdEZXBsb3llZCcsIGNlbGxUZW1wbGF0ZTogJHRlbXBsYXRlQ2FjaGUuZ2V0KFwiYXBwRGVwbG95ZWRUZW1wbGF0ZS5odG1sXCIpIH1cbiAgICAgIF1cbiAgICB9O1xuXG4gICAgS3ViZXJuZXRlcy5pbml0U2hhcmVkKCRzY29wZSwgJGxvY2F0aW9uLCAkaHR0cCwgJHRpbWVvdXQsICRyb3V0ZVBhcmFtcywgS3ViZXJuZXRlc01vZGVsLCBLdWJlcm5ldGVzU3RhdGUsIEt1YmVybmV0ZXNBcGlVUkwpO1xuXG5cbiAgICAkc2NvcGUuZXhwYW5kZWRQb2RzID0gW107XG5cbiAgICAkc2NvcGUuJG9uKCdkby1yZXNpemUnLCAoJGV2ZW50LCBjb250cm9sbGVyKSA9PiB7XG4gICAgICAkc2NvcGUucmVzaXplRGlhbG9nLm9wZW4oY29udHJvbGxlcik7XG4gICAgfSk7XG5cbiAgICAgICAgXG4gICAgJHNjb3BlLnBvZEV4cGFuZGVkID0gKHBvZCkgPT4ge1xuICAgICAgdmFyIGlkID0gZ2V0TmFtZShwb2QpXG4gICAgICByZXR1cm4gaWQgJiYgKCRzY29wZS5leHBhbmRlZFBvZHMgfHwgW10pLmluZGV4T2YoaWQpID49IDA7XG4gICAgfTtcblxuICAgICRzY29wZS5leHBhbmRQb2QgPSAocG9kKSA9PiB7XG4gICAgICB2YXIgaWQgPSBnZXROYW1lKHBvZCk7XG4gICAgICBpZiAoaWQpIHtcbiAgICAgICAgJHNjb3BlLmV4cGFuZGVkUG9kcy5wdXNoKGlkKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgJHNjb3BlLmNvbGxhcHNlUG9kID0gKHBvZCkgPT4ge1xuICAgICAgdmFyIGlkID0gZ2V0TmFtZShwb2QpO1xuICAgICAgaWYgKGlkKSB7XG4gICAgICAgICRzY29wZS5leHBhbmRlZFBvZHMgPSAkc2NvcGUuZXhwYW5kZWRQb2RzLnJlbW92ZSgodikgPT4gaWQgPT09IHYpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICAkc2NvcGUuJG9uKCckcm91dGVVcGRhdGUnLCAoJGV2ZW50KSA9PiB7XG4gICAgICBLdWJlcm5ldGVzLnNldEpzb24oJHNjb3BlLCAkbG9jYXRpb24uc2VhcmNoKClbJ19pZCddLCAkc2NvcGUubW9kZWwuYXBwcyk7XG4gICAgfSk7XG5cbiAgICBmdW5jdGlvbiBkZWxldGVBcHAoYXBwLCBvbkNvbXBsZXRlRm4pIHtcbiAgICAgIGZ1bmN0aW9uIGRlbGV0ZVNlcnZpY2VzKHNlcnZpY2VzLCBzZXJ2aWNlLCBvbkNvbXBsZXRlZEZuKSB7XG4gICAgICAgIGlmICghc2VydmljZSB8fCAhc2VydmljZXMpIHtcbiAgICAgICAgICByZXR1cm4gb25Db21wbGV0ZWRGbigpO1xuICAgICAgICB9XG4gICAgICAgIHZhciBpZCA9IGdldE5hbWUoc2VydmljZSk7XG4gICAgICAgIGlmICghaWQpIHtcbiAgICAgICAgICBsb2cud2FybihcIk5vIElEIGZvciBzZXJ2aWNlIFwiICsgYW5ndWxhci50b0pzb24oc2VydmljZSkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIEt1YmVybmV0ZXNTZXJ2aWNlcy5kZWxldGUoe1xuICAgICAgICAgICAgaWQ6IGlkXG4gICAgICAgICAgfSwgdW5kZWZpbmVkLCAoKSA9PiB7XG4gICAgICAgICAgICBsb2cuZGVidWcoXCJEZWxldGVkIHNlcnZpY2U6IFwiLCBpZCk7XG4gICAgICAgICAgICBkZWxldGVTZXJ2aWNlcyhzZXJ2aWNlcywgc2VydmljZXMuc2hpZnQoKSwgb25Db21wbGV0ZWRGbik7XG4gICAgICAgICAgfSwgKGVycm9yKSA9PiB7XG4gICAgICAgICAgICBsb2cuZGVidWcoXCJFcnJvciBkZWxldGluZyBzZXJ2aWNlOiBcIiwgZXJyb3IpO1xuICAgICAgICAgICAgZGVsZXRlU2VydmljZXMoc2VydmljZXMsIHNlcnZpY2VzLnNoaWZ0KCksIG9uQ29tcGxldGVkRm4pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGZ1bmN0aW9uIGRlbGV0ZVJlcGxpY2F0aW9uQ29udHJvbGxlcnMocmVwbGljYXRpb25Db250cm9sbGVycywgcmVwbGljYXRpb25Db250cm9sbGVyLCBvbkNvbXBsZXRlZEZuKSB7XG4gICAgICAgIGlmICghcmVwbGljYXRpb25Db250cm9sbGVyIHx8ICFyZXBsaWNhdGlvbkNvbnRyb2xsZXJzKSB7XG4gICAgICAgICAgcmV0dXJuIG9uQ29tcGxldGVkRm4oKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgaWQgPSBnZXROYW1lKHJlcGxpY2F0aW9uQ29udHJvbGxlcik7XG4gICAgICAgIGlmICghaWQpIHtcbiAgICAgICAgICBsb2cud2FybihcIk5vIElEIGZvciByZXBsaWNhdGlvbkNvbnRyb2xsZXIgXCIgKyBhbmd1bGFyLnRvSnNvbihyZXBsaWNhdGlvbkNvbnRyb2xsZXIpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBLdWJlcm5ldGVzUmVwbGljYXRpb25Db250cm9sbGVycy5kZWxldGUoe1xuICAgICAgICAgICAgaWQ6IGlkXG4gICAgICAgICAgfSwgdW5kZWZpbmVkLCAoKSA9PiB7XG4gICAgICAgICAgICBsb2cuZGVidWcoXCJEZWxldGVkIHJlcGxpY2F0aW9uQ29udHJvbGxlcjogXCIsIGlkKTtcbiAgICAgICAgICAgIGRlbGV0ZVJlcGxpY2F0aW9uQ29udHJvbGxlcnMocmVwbGljYXRpb25Db250cm9sbGVycywgcmVwbGljYXRpb25Db250cm9sbGVycy5zaGlmdCgpLCBvbkNvbXBsZXRlZEZuKTtcbiAgICAgICAgICB9LCAoZXJyb3IpID0+IHtcbiAgICAgICAgICAgIGxvZy5kZWJ1ZyhcIkVycm9yIGRlbGV0aW5nIHJlcGxpY2F0aW9uQ29udHJvbGxlcjogXCIsIGVycm9yKTtcbiAgICAgICAgICAgIGRlbGV0ZVJlcGxpY2F0aW9uQ29udHJvbGxlcnMocmVwbGljYXRpb25Db250cm9sbGVycywgcmVwbGljYXRpb25Db250cm9sbGVycy5zaGlmdCgpLCBvbkNvbXBsZXRlZEZuKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBmdW5jdGlvbiBkZWxldGVQb2RzKHBvZHMsIHBvZCwgb25Db21wbGV0ZWRGbikge1xuICAgICAgICBpZiAoIXBvZCB8fCAhcG9kcykge1xuICAgICAgICAgIHJldHVybiBvbkNvbXBsZXRlZEZuKCk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGlkID0gZ2V0TmFtZShwb2QpO1xuICAgICAgICBpZiAoIWlkKSB7XG4gICAgICAgICAgbG9nLndhcm4oXCJObyBJRCBmb3IgcG9kIFwiICsgYW5ndWxhci50b0pzb24ocG9kKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgS3ViZXJuZXRlc1BvZHMuZGVsZXRlKHtcbiAgICAgICAgICAgIGlkOiBpZFxuICAgICAgICAgIH0sIHVuZGVmaW5lZCwgKCkgPT4ge1xuICAgICAgICAgICAgbG9nLmRlYnVnKFwiRGVsZXRlZCBwb2Q6IFwiLCBpZCk7XG4gICAgICAgICAgICBkZWxldGVQb2RzKHBvZHMsIHBvZHMuc2hpZnQoKSwgb25Db21wbGV0ZWRGbik7XG4gICAgICAgICAgfSwgKGVycm9yKSA9PiB7XG4gICAgICAgICAgICBsb2cuZGVidWcoXCJFcnJvciBkZWxldGluZyBwb2Q6IFwiLCBlcnJvcik7XG4gICAgICAgICAgICBkZWxldGVQb2RzKHBvZHMsIHBvZHMuc2hpZnQoKSwgb25Db21wbGV0ZWRGbik7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdmFyIHNlcnZpY2VzID0gW10uY29uY2F0KGFwcC5zZXJ2aWNlcyk7XG4gICAgICBkZWxldGVTZXJ2aWNlcyhzZXJ2aWNlcywgc2VydmljZXMuc2hpZnQoKSwgKCkgPT4ge1xuXG4gICAgICAgIHZhciByZXBsaWNhdGlvbkNvbnRyb2xsZXJzID0gW10uY29uY2F0KGFwcC5yZXBsaWNhdGlvbkNvbnRyb2xsZXJzKTtcbiAgICAgICAgZGVsZXRlUmVwbGljYXRpb25Db250cm9sbGVycyhyZXBsaWNhdGlvbkNvbnRyb2xsZXJzLCByZXBsaWNhdGlvbkNvbnRyb2xsZXJzLnNoaWZ0KCksICgpID0+IHtcblxuICAgICAgICAgIHZhciBwb2RzID0gW10uY29uY2F0KGFwcC5wb2RzKTtcbiAgICAgICAgICBkZWxldGVQb2RzKHBvZHMsIHBvZHMuc2hpZnQoKSwgb25Db21wbGV0ZUZuKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAkc2NvcGUuZGVsZXRlU2luZ2xlQXBwID0gKGFwcCkgPT4ge1xuICAgICAgJHNjb3BlLmRlbGV0ZVByb21wdChbYXBwXSk7XG4gICAgfVxuXG4gICAgJHNjb3BlLmRlbGV0ZVByb21wdCA9IChzZWxlY3RlZCkgPT4ge1xuICAgICAgaWYgKGFuZ3VsYXIuaXNTdHJpbmcoc2VsZWN0ZWQpKSB7XG4gICAgICAgIHNlbGVjdGVkID0gW3tcbiAgICAgICAgICBpZDogc2VsZWN0ZWRcbiAgICAgICAgfV07XG4gICAgICB9XG4gICAgICBVSS5tdWx0aUl0ZW1Db25maXJtQWN0aW9uRGlhbG9nKDxVSS5NdWx0aUl0ZW1Db25maXJtQWN0aW9uT3B0aW9ucz57XG4gICAgICAgIGNvbGxlY3Rpb246IHNlbGVjdGVkLFxuICAgICAgICBpbmRleDogJyRuYW1lJyxcbiAgICAgICAgb25DbG9zZTogKHJlc3VsdDpib29sZWFuKSA9PiB7XG4gICAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgICAgZnVuY3Rpb24gZGVsZXRlU2VsZWN0ZWQoc2VsZWN0ZWQsIG5leHQpIHtcbiAgICAgICAgICAgICAgaWYgKG5leHQpIHtcbiAgICAgICAgICAgICAgICB2YXIgaWQgPSBuZXh0Lm5hbWU7XG4gICAgICAgICAgICAgICAgbG9nLmRlYnVnKFwiZGVsZXRpbmc6IFwiLCBpZCk7XG4gICAgICAgICAgICAgICAgZGVsZXRlQXBwKG5leHQsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgIGxvZy5kZWJ1ZyhcImRlbGV0ZWQ6IFwiLCBpZCk7XG4gICAgICAgICAgICAgICAgICBkZWxldGVTZWxlY3RlZChzZWxlY3RlZCwgc2VsZWN0ZWQuc2hpZnQoKSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZGVsZXRlU2VsZWN0ZWQoc2VsZWN0ZWQsIHNlbGVjdGVkLnNoaWZ0KCkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgdGl0bGU6ICdEZWxldGUgQXBwcz8nLFxuICAgICAgICBhY3Rpb246ICdUaGUgZm9sbG93aW5nIEFwcHMgd2lsbCBiZSBkZWxldGVkOicsXG4gICAgICAgIG9rVGV4dDogJ0RlbGV0ZScsXG4gICAgICAgIG9rQ2xhc3M6ICdidG4tZGFuZ2VyJyxcbiAgICAgICAgY3VzdG9tOiBcIlRoaXMgb3BlcmF0aW9uIGlzIHBlcm1hbmVudCBvbmNlIGNvbXBsZXRlZCFcIixcbiAgICAgICAgY3VzdG9tQ2xhc3M6IFwiYWxlcnQgYWxlcnQtd2FybmluZ1wiXG4gICAgICB9KS5vcGVuKCk7XG4gICAgfTtcblxuICAgICRzY29wZS5hcHBTZWxlY3RvciA9IHtcbiAgICAgIGZpbHRlclRleHQ6IFwiXCIsXG4gICAgICBmb2xkZXJzOiBbXSxcbiAgICAgIHNlbGVjdGVkQXBwczogW10sXG5cbiAgICAgIGlzT3BlbjogKGZvbGRlcikgPT4ge1xuICAgICAgICBpZiAoJHNjb3BlLmFwcFNlbGVjdG9yLmZpbHRlclRleHQgIT09ICcnIHx8IGZvbGRlci5leHBhbmRlZCkge1xuICAgICAgICAgIHJldHVybiBcIm9wZW5lZFwiO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBcImNsb3NlZFwiO1xuICAgICAgfSxcblxuICAgICAgZ2V0U2VsZWN0ZWRDbGFzczogKGFwcCkgPT4ge1xuICAgICAgICBpZiAoYXBwLmFic3RyYWN0KSB7XG4gICAgICAgICAgcmV0dXJuIFwiYWJzdHJhY3RcIjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYXBwLnNlbGVjdGVkKSB7XG4gICAgICAgICAgcmV0dXJuIFwic2VsZWN0ZWRcIjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gXCJcIjtcbiAgICAgIH0sXG5cbiAgICAgIHNob3dBcHA6IChhcHApID0+IHtcbiAgICAgICAgcmV0dXJuIGFwcE1hdGNoZXMoYXBwKSAmJiAhYXBwUnVubmluZyhhcHApO1xuICAgICAgfSxcblxuICAgICAgc2hvd0ZvbGRlcjogKGZvbGRlcikgPT4ge1xuICAgICAgICByZXR1cm4gISRzY29wZS5hcHBTZWxlY3Rvci5maWx0ZXJUZXh0IHx8IGZvbGRlci5hcHBzLnNvbWUoKGFwcCkgPT4gYXBwTWF0Y2hlcyhhcHApICYmICFhcHBSdW5uaW5nKGFwcCkpO1xuICAgICAgfSxcblxuICAgICAgY2xlYXJTZWxlY3RlZDogKCkgPT4ge1xuICAgICAgICBhbmd1bGFyLmZvckVhY2goJHNjb3BlLm1vZGVsLmFwcEZvbGRlcnMsIChmb2xkZXIpID0+IHtcbiAgICAgICAgICBhbmd1bGFyLmZvckVhY2goZm9sZGVyLmFwcHMsIChhcHApID0+IHtcbiAgICAgICAgICAgIGFwcC5zZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgJHNjb3BlLmFwcFNlbGVjdG9yLnNlbGVjdGVkQXBwcyA9IFtdO1xuICAgICAgICBDb3JlLiRhcHBseSgkc2NvcGUpO1xuICAgICAgfSxcblxuICAgICAgdXBkYXRlU2VsZWN0ZWQ6ICgpID0+IHtcbiAgICAgICAgLy8gbGV0cyB1cGRhdGUgdGhlIHNlbGVjdGVkIGFwcHNcbiAgICAgICAgdmFyIHNlbGVjdGVkQXBwcyA9IFtdO1xuICAgICAgICBhbmd1bGFyLmZvckVhY2goJHNjb3BlLm1vZGVsLmFwcEZvbGRlcnMsIChmb2xkZXIpID0+IHtcbiAgICAgICAgICB2YXIgYXBwcyA9IGZvbGRlci5hcHBzLmZpbHRlcigoYXBwKSA9PiBhcHAuc2VsZWN0ZWQpO1xuICAgICAgICAgIGlmIChhcHBzKSB7XG4gICAgICAgICAgICBzZWxlY3RlZEFwcHMgPSBzZWxlY3RlZEFwcHMuY29uY2F0KGFwcHMpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgICRzY29wZS5hcHBTZWxlY3Rvci5zZWxlY3RlZEFwcHMgPSBzZWxlY3RlZEFwcHMuc29ydEJ5KFwibmFtZVwiKTtcbiAgICAgIH0sXG5cbiAgICAgIHNlbGVjdDogKGFwcCwgZmxhZykgPT4ge1xuICAgICAgICBhcHAuc2VsZWN0ZWQgPSBmbGFnO1xuICAgICAgICAkc2NvcGUuYXBwU2VsZWN0b3IudXBkYXRlU2VsZWN0ZWQoKTtcbiAgICAgIH0sXG5cbiAgICAgIGhhc1NlbGVjdGlvbjogKCkgPT4ge1xuICAgICAgICByZXR1cm4gJHNjb3BlLm1vZGVsLmFwcEZvbGRlcnMuYW55KChmb2xkZXIpID0+IGZvbGRlci5hcHBzLmFueSgoYXBwKSA9PiBhcHAuc2VsZWN0ZWQpKTtcbiAgICAgIH0sXG5cblxuICAgICAgcnVuU2VsZWN0ZWRBcHBzOiAoKSA9PiB7XG4gICAgICAgIC8vIGxldHMgcnVuIGFsbCB0aGUgc2VsZWN0ZWQgYXBwc1xuICAgICAgICBhbmd1bGFyLmZvckVhY2goJHNjb3BlLmFwcFNlbGVjdG9yLnNlbGVjdGVkQXBwcywgKGFwcCkgPT4ge1xuICAgICAgICAgIHZhciBuYW1lID0gYXBwLm5hbWU7XG4gICAgICAgICAgdmFyIG1ldGFkYXRhUGF0aCA9IGFwcC5tZXRhZGF0YVBhdGg7XG4gICAgICAgICAgaWYgKG1ldGFkYXRhUGF0aCkge1xuICAgICAgICAgICAgLy8gbGV0cyBsb2FkIHRoZSBqc29uL3lhbWxcbiAgICAgICAgICAgIC8vdmFyIHVybCA9IGdpdFBhdGhUb1VybChXaWtpLmdpdFJlbGF0aXZlVVJMKGJyYW5jaCwgbWV0YWRhdGFQYXRoKSk7XG4gICAgICAgICAgICB2YXIgdXJsID0gZ2l0UGF0aFRvVXJsKG1ldGFkYXRhUGF0aCwgYnJhbmNoKTtcbiAgICAgICAgICAgIGlmICh1cmwpIHtcbiAgICAgICAgICAgICAgJGh0dHAuZ2V0KHVybCkuXG4gICAgICAgICAgICAgICAgc3VjY2VzcyhmdW5jdGlvbiAoZGF0YSwgc3RhdHVzLCBoZWFkZXJzLCBjb25maWcpIHtcbiAgICAgICAgICAgICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGxldHMgY29udmVydCB0aGUganNvbiBvYmplY3Qgc3RydWN0dXJlIGludG8gYSBzdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgdmFyIGpzb24gPSBhbmd1bGFyLnRvSnNvbihkYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGZuID0gKCkgPT4ge307XG4gICAgICAgICAgICAgICAgICAgIEt1YmVybmV0ZXMucnVuQXBwKCRsb2NhdGlvbiwgJHNjb3BlLCAkaHR0cCwgS3ViZXJuZXRlc0FwaVVSTCwganNvbiwgbmFtZSwgZm4sIG5hbWVzcGFjZSk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSkuXG4gICAgICAgICAgICAgICAgZXJyb3IoZnVuY3Rpb24gKGRhdGEsIHN0YXR1cywgaGVhZGVycywgY29uZmlnKSB7XG4gICAgICAgICAgICAgICAgICAkc2NvcGUuc3VtbWFyeUh0bWwgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgbG9nLndhcm4oXCJGYWlsZWQgdG8gbG9hZCBcIiArIHVybCArIFwiIFwiICsgZGF0YSArIFwiIFwiICsgc3RhdHVzKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBsZXRzIGdvIGJhY2sgdG8gdGhlIGFwcHMgdmlld1xuICAgICAgICAkc2NvcGUuYXBwU2VsZWN0b3IuY2xlYXJTZWxlY3RlZCgpO1xuICAgICAgICAkc2NvcGUuYXBwU2VsZWN0b3JTaG93ID0gZmFsc2U7XG4gICAgICB9XG4gICAgfTtcblxuICB9XSk7XG59XG4iLCIvLy8gPHJlZmVyZW5jZSBwYXRoPVwiLi4vLi4vaW5jbHVkZXMudHNcIi8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwia3ViZXJuZXRlc0hlbHBlcnMudHNcIi8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwia3ViZXJuZXRlc1BsdWdpbi50c1wiLz5cblxubW9kdWxlIEt1YmVybmV0ZXMge1xuXG4gIF9tb2R1bGUuZGlyZWN0aXZlKFwiaGF3dGlvQnJlYWRjcnVtYnNcIiwgKCkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICB0ZW1wbGF0ZVVybDogS3ViZXJuZXRlcy50ZW1wbGF0ZVBhdGggKyAnYnJlYWRjcnVtYnMuaHRtbCdcbiAgICB9O1xuICB9KTtcbn1cbiIsIi8vLyA8cmVmZXJlbmNlIHBhdGg9XCIuLi8uLi9pbmNsdWRlcy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJrdWJlcm5ldGVzSGVscGVycy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJrdWJlcm5ldGVzUGx1Z2luLnRzXCIvPlxuXG5tb2R1bGUgS3ViZXJuZXRlcyB7XG5cbiAgZXhwb3J0IHZhciBCdWlsZENvbnRyb2xsZXIgPSBjb250cm9sbGVyKFwiQnVpbGRDb250cm9sbGVyXCIsXG4gICAgW1wiJHNjb3BlXCIsIFwiS3ViZXJuZXRlc01vZGVsXCIsIFwiS3ViZXJuZXRlc1N0YXRlXCIsIFwiS3ViZXJuZXRlc1NjaGVtYVwiLCBcIiR0ZW1wbGF0ZUNhY2hlXCIsIFwiJGxvY2F0aW9uXCIsIFwiJHJvdXRlUGFyYW1zXCIsIFwiJGh0dHBcIiwgXCIkdGltZW91dFwiLCBcIkt1YmVybmV0ZXNBcGlVUkxcIixcbiAgICAgICgkc2NvcGUsIEt1YmVybmV0ZXNNb2RlbDpLdWJlcm5ldGVzLkt1YmVybmV0ZXNNb2RlbFNlcnZpY2UsIEt1YmVybmV0ZXNTdGF0ZSwgS3ViZXJuZXRlc1NjaGVtYSxcbiAgICAgICAkdGVtcGxhdGVDYWNoZTpuZy5JVGVtcGxhdGVDYWNoZVNlcnZpY2UsICRsb2NhdGlvbjpuZy5JTG9jYXRpb25TZXJ2aWNlLCAkcm91dGVQYXJhbXMsICRodHRwLCAkdGltZW91dCwgS3ViZXJuZXRlc0FwaVVSTCkgPT4ge1xuXG4gICAgICAgICRzY29wZS5rdWJlcm5ldGVzID0gS3ViZXJuZXRlc1N0YXRlO1xuICAgICAgICAkc2NvcGUubW9kZWwgPSBLdWJlcm5ldGVzTW9kZWw7XG4gICAgICAgICRzY29wZS5pZCA9ICRyb3V0ZVBhcmFtc1tcImlkXCJdO1xuICAgICAgICAkc2NvcGUuc2NoZW1hID0gS3ViZXJuZXRlc1NjaGVtYTtcbiAgICAgICAgJHNjb3BlLmNvbmZpZyA9IEt1YmVybmV0ZXNTY2hlbWEuZGVmaW5pdGlvbnMub3NfYnVpbGRfQnVpbGQ7XG5cbiAgICAgICAgS3ViZXJuZXRlcy5pbml0U2hhcmVkKCRzY29wZSwgJGxvY2F0aW9uLCAkaHR0cCwgJHRpbWVvdXQsICRyb3V0ZVBhcmFtcywgS3ViZXJuZXRlc01vZGVsLCBLdWJlcm5ldGVzU3RhdGUsIEt1YmVybmV0ZXNBcGlVUkwpO1xuICAgICAgICAkc2NvcGUuYnJlYWRjcnVtYkNvbmZpZyA9IERldmVsb3Blci5jcmVhdGVQcm9qZWN0QnJlYWRjcnVtYnMoJHNjb3BlLmlkKTtcbiAgICAgICAgJHNjb3BlLnN1YlRhYkNvbmZpZyA9IERldmVsb3Blci5jcmVhdGVQcm9qZWN0U3ViTmF2QmFycygkc2NvcGUuaWQsIG51bGwsICRzY29wZSk7XG5cbiAgICAgICAgJHNjb3BlLiRvbigna3ViZXJuZXRlc01vZGVsVXBkYXRlZCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICB1cGRhdGVEYXRhKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgICRzY29wZS4kb24oJyRyb3V0ZVVwZGF0ZScsICgkZXZlbnQpID0+IHtcbiAgICAgICAgICB1cGRhdGVEYXRhKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHVwZGF0ZURhdGEoKTtcblxuICAgICAgICBmdW5jdGlvbiB1cGRhdGVEYXRhKCkge1xuICAgICAgICAgICRzY29wZS5pdGVtID0gbnVsbDtcbiAgICAgICAgICBpZiAoJHNjb3BlLmlkKSB7XG4gICAgICAgICAgICB2YXIgdXJsID0gYnVpbGRSZXN0VXJsKCRzY29wZS5pZCk7XG4gICAgICAgICAgICAkaHR0cC5nZXQodXJsKS5cbiAgICAgICAgICAgICAgc3VjY2VzcyhmdW5jdGlvbiAoZGF0YSwgc3RhdHVzLCBoZWFkZXJzLCBjb25maWcpIHtcbiAgICAgICAgICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgICAgICAgJHNjb3BlLmVudGl0eSA9IGVucmljaEJ1aWxkKGRhdGEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAkc2NvcGUuZmV0Y2hlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgQ29yZS4kYXBwbHkoJHNjb3BlKTtcbiAgICAgICAgICAgICAgfSkuXG4gICAgICAgICAgICAgIGVycm9yKGZ1bmN0aW9uIChkYXRhLCBzdGF0dXMsIGhlYWRlcnMsIGNvbmZpZykge1xuICAgICAgICAgICAgICAgIGxvZy53YXJuKFwiRmFpbGVkIHRvIGxvYWQgXCIgKyB1cmwgKyBcIiBcIiArIGRhdGEgKyBcIiBcIiArIHN0YXR1cyk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAkc2NvcGUuZmV0Y2hlZCA9IHRydWU7XG4gICAgICAgICAgICBDb3JlLiRhcHBseSgkc2NvcGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfV0pO1xufVxuIiwiLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4uLy4uL2luY2x1ZGVzLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cImt1YmVybmV0ZXNIZWxwZXJzLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cImt1YmVybmV0ZXNQbHVnaW4udHNcIi8+XG5cbm1vZHVsZSBLdWJlcm5ldGVzIHtcblxuICBleHBvcnQgdmFyIEJ1aWxkQ29uZmlnQ29udHJvbGxlciA9IGNvbnRyb2xsZXIoXCJCdWlsZENvbmZpZ0NvbnRyb2xsZXJcIixcbiAgICBbXCIkc2NvcGVcIiwgXCJLdWJlcm5ldGVzTW9kZWxcIiwgXCJLdWJlcm5ldGVzU3RhdGVcIiwgXCJLdWJlcm5ldGVzU2NoZW1hXCIsIFwiJHRlbXBsYXRlQ2FjaGVcIiwgXCIkbG9jYXRpb25cIiwgXCIkcm91dGVQYXJhbXNcIiwgXCIkaHR0cFwiLCBcIiR0aW1lb3V0XCIsIFwiS3ViZXJuZXRlc0FwaVVSTFwiLFxuICAgICAgKCRzY29wZSwgS3ViZXJuZXRlc01vZGVsOkt1YmVybmV0ZXMuS3ViZXJuZXRlc01vZGVsU2VydmljZSwgS3ViZXJuZXRlc1N0YXRlLCBLdWJlcm5ldGVzU2NoZW1hLFxuICAgICAgICR0ZW1wbGF0ZUNhY2hlOm5nLklUZW1wbGF0ZUNhY2hlU2VydmljZSwgJGxvY2F0aW9uOm5nLklMb2NhdGlvblNlcnZpY2UsICRyb3V0ZVBhcmFtcywgJGh0dHAsICR0aW1lb3V0LCBLdWJlcm5ldGVzQXBpVVJMKSA9PiB7XG5cbiAgICAgICAgJHNjb3BlLmt1YmVybmV0ZXMgPSBLdWJlcm5ldGVzU3RhdGU7XG4gICAgICAgICRzY29wZS5tb2RlbCA9IEt1YmVybmV0ZXNNb2RlbDtcbiAgICAgICAgJHNjb3BlLmlkID0gJHJvdXRlUGFyYW1zW1wiaWRcIl07XG4gICAgICAgICRzY29wZS5zY2hlbWEgPSBLdWJlcm5ldGVzU2NoZW1hO1xuICAgICAgICAkc2NvcGUuY29uZmlnID0gS3ViZXJuZXRlc1NjaGVtYS5kZWZpbml0aW9ucy5vc19idWlsZF9CdWlsZENvbmZpZztcblxuICAgICAgICBLdWJlcm5ldGVzLmluaXRTaGFyZWQoJHNjb3BlLCAkbG9jYXRpb24sICRodHRwLCAkdGltZW91dCwgJHJvdXRlUGFyYW1zLCBLdWJlcm5ldGVzTW9kZWwsIEt1YmVybmV0ZXNTdGF0ZSwgS3ViZXJuZXRlc0FwaVVSTCk7XG4gICAgICAgICRzY29wZS5icmVhZGNydW1iQ29uZmlnID0gRGV2ZWxvcGVyLmNyZWF0ZVByb2plY3RCcmVhZGNydW1icygkc2NvcGUuaWQpO1xuICAgICAgICAkc2NvcGUuc3ViVGFiQ29uZmlnID0gRGV2ZWxvcGVyLmNyZWF0ZVByb2plY3RTdWJOYXZCYXJzKCRzY29wZS5pZCk7XG5cbiAgICAgICAgJHNjb3BlLiRvbigna3ViZXJuZXRlc01vZGVsVXBkYXRlZCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICB1cGRhdGVEYXRhKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgICRzY29wZS4kb24oJyRyb3V0ZVVwZGF0ZScsICgkZXZlbnQpID0+IHtcbiAgICAgICAgICB1cGRhdGVEYXRhKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHVwZGF0ZURhdGEoKTtcblxuICAgICAgICBmdW5jdGlvbiB1cGRhdGVEYXRhKCkge1xuICAgICAgICAgICRzY29wZS5pdGVtID0gbnVsbDtcbiAgICAgICAgICBpZiAoJHNjb3BlLmlkKSB7XG4gICAgICAgICAgICB2YXIgdXJsID0gYnVpbGRDb25maWdSZXN0VXJsKCRzY29wZS5pZCk7XG4gICAgICAgICAgICAkaHR0cC5nZXQodXJsKS5cbiAgICAgICAgICAgICAgc3VjY2VzcyhmdW5jdGlvbiAoZGF0YSwgc3RhdHVzLCBoZWFkZXJzLCBjb25maWcpIHtcbiAgICAgICAgICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgICAgICAgJHNjb3BlLmVudGl0eSA9IGRhdGE7XG4gICAgICAgICAgICAgICAgICB2YXIgc29ydGVkQnVpbGRzID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgIGVucmljaEJ1aWxkQ29uZmlnKGRhdGEsIHNvcnRlZEJ1aWxkcyk7XG4gICAgICAgICAgICAgICAgICAkc2NvcGUubW9kZWwuc2V0UHJvamVjdCgkc2NvcGUuZW50aXR5KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJHNjb3BlLmZldGNoZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIENvcmUuJGFwcGx5KCRzY29wZSk7XG4gICAgICAgICAgICAgIH0pLlxuICAgICAgICAgICAgICBlcnJvcihmdW5jdGlvbiAoZGF0YSwgc3RhdHVzLCBoZWFkZXJzLCBjb25maWcpIHtcbiAgICAgICAgICAgICAgICBsb2cud2FybihcIkZhaWxlZCB0byBsb2FkIFwiICsgdXJsICsgXCIgXCIgKyBkYXRhICsgXCIgXCIgKyBzdGF0dXMpO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgJHNjb3BlLmZldGNoZWQgPSB0cnVlO1xuICAgICAgICAgICAgQ29yZS4kYXBwbHkoJHNjb3BlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1dKTtcbn1cbiIsIi8vLyA8cmVmZXJlbmNlIHBhdGg9XCIuLi8uLi9pbmNsdWRlcy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJrdWJlcm5ldGVzSGVscGVycy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJrdWJlcm5ldGVzUGx1Z2luLnRzXCIvPlxuXG5tb2R1bGUgS3ViZXJuZXRlcyB7XG5cbiAgZXhwb3J0IHZhciBCdWlsZENvbmZpZ0VkaXRDb250cm9sbGVyID0gY29udHJvbGxlcihcIkJ1aWxkQ29uZmlnRWRpdENvbnRyb2xsZXJcIixcbiAgICBbXCIkc2NvcGVcIiwgXCJLdWJlcm5ldGVzTW9kZWxcIiwgXCJLdWJlcm5ldGVzU3RhdGVcIiwgXCJLdWJlcm5ldGVzU2NoZW1hXCIsIFwiJHRlbXBsYXRlQ2FjaGVcIiwgXCIkbG9jYXRpb25cIiwgXCIkcm91dGVQYXJhbXNcIiwgXCIkaHR0cFwiLCBcIiR0aW1lb3V0XCIsIFwiS3ViZXJuZXRlc0FwaVVSTFwiLFxuICAgICAgKCRzY29wZSwgS3ViZXJuZXRlc01vZGVsOkt1YmVybmV0ZXMuS3ViZXJuZXRlc01vZGVsU2VydmljZSwgS3ViZXJuZXRlc1N0YXRlLCBLdWJlcm5ldGVzU2NoZW1hLFxuICAgICAgICR0ZW1wbGF0ZUNhY2hlOm5nLklUZW1wbGF0ZUNhY2hlU2VydmljZSwgJGxvY2F0aW9uOm5nLklMb2NhdGlvblNlcnZpY2UsICRyb3V0ZVBhcmFtcywgJGh0dHAsICR0aW1lb3V0LCBLdWJlcm5ldGVzQXBpVVJMKSA9PiB7XG5cbiAgICAgICAgJHNjb3BlLmt1YmVybmV0ZXMgPSBLdWJlcm5ldGVzU3RhdGU7XG4gICAgICAgICRzY29wZS5tb2RlbCA9IEt1YmVybmV0ZXNNb2RlbDtcbiAgICAgICAgJHNjb3BlLmlkID0gJHJvdXRlUGFyYW1zW1wiaWRcIl07XG4gICAgICAgICRzY29wZS5zY2hlbWEgPSBLdWJlcm5ldGVzU2NoZW1hO1xuICAgICAgICAkc2NvcGUuY29uZmlnID0gS3ViZXJuZXRlc1NjaGVtYS5kZWZpbml0aW9ucy5vc19idWlsZF9CdWlsZENvbmZpZztcblxuICAgICAgICBLdWJlcm5ldGVzLmluaXRTaGFyZWQoJHNjb3BlLCAkbG9jYXRpb24sICRodHRwLCAkdGltZW91dCwgJHJvdXRlUGFyYW1zLCBLdWJlcm5ldGVzTW9kZWwsIEt1YmVybmV0ZXNTdGF0ZSwgS3ViZXJuZXRlc0FwaVVSTCk7XG5cbiAgICAgICAgJHNjb3BlLiRvbigna3ViZXJuZXRlc01vZGVsVXBkYXRlZCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICB1cGRhdGVEYXRhKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgICRzY29wZS4kb24oJyRyb3V0ZVVwZGF0ZScsICgkZXZlbnQpID0+IHtcbiAgICAgICAgICB1cGRhdGVEYXRhKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHVwZGF0ZURhdGEoKTtcblxuICAgICAgICBmdW5jdGlvbiB1cGRhdGVEYXRhKCkge1xuICAgICAgICAgICRzY29wZS5pdGVtID0gbnVsbDtcbiAgICAgICAgICBpZiAoJHNjb3BlLmlkKSB7XG4gICAgICAgICAgICB2YXIgdXJsID0gYnVpbGRDb25maWdSZXN0VXJsO1xuICAgICAgICAgICAgJGh0dHAuZ2V0KHVybCkuXG4gICAgICAgICAgICAgIHN1Y2Nlc3MoZnVuY3Rpb24gKGRhdGEsIHN0YXR1cywgaGVhZGVycywgY29uZmlnKSB7XG4gICAgICAgICAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgICAgICAgICRzY29wZS5lbnRpdHkgPSBkYXRhO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAkc2NvcGUuZmV0Y2hlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgQ29yZS4kYXBwbHkoJHNjb3BlKTtcbiAgICAgICAgICAgICAgfSkuXG4gICAgICAgICAgICAgIGVycm9yKGZ1bmN0aW9uIChkYXRhLCBzdGF0dXMsIGhlYWRlcnMsIGNvbmZpZykge1xuICAgICAgICAgICAgICAgIGxvZy53YXJuKFwiRmFpbGVkIHRvIGxvYWQgXCIgKyB1cmwgKyBcIiBcIiArIGRhdGEgKyBcIiBcIiArIHN0YXR1cyk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAkc2NvcGUuZmV0Y2hlZCA9IHRydWU7XG5cbiAgICAgICAgICAgIC8vIFRPRE8gZGVmYXVsdCB0byB0aGUgcmlnaHQgcmVnaXN0cnkgVVJMLi4uXG4gICAgICAgICAgICB2YXIgZGVmYXVsdFJlZ2lzdHJ5ID0gXCIxNzIuMzAuMTcuMTg5OjUwMDBcIjtcblxuICAgICAgICAgICAgJHNjb3BlLmVudGl0eSA9IHtcbiAgICAgICAgICAgICAgXCJhcGlWZXJzaW9uXCI6IFwidjFcIixcbiAgICAgICAgICAgICAgXCJraW5kXCI6IFwiQnVpbGRDb25maWdcIixcbiAgICAgICAgICAgICAgXCJtZXRhZGF0YVwiOiB7XG4gICAgICAgICAgICAgICAgXCJuYW1lXCI6IFwiXCIsXG4gICAgICAgICAgICAgICAgXCJsYWJlbHNcIjoge1xuICAgICAgICAgICAgICAgICAgXCJuYW1lXCI6IFwiXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwicGFyYW1ldGVyc1wiOiB7XG4gICAgICAgICAgICAgICAgXCJvdXRwdXRcIjoge1xuICAgICAgICAgICAgICAgICAgXCJpbWFnZVRhZ1wiOiBcIlwiLFxuICAgICAgICAgICAgICAgICAgXCJyZWdpc3RyeVwiOiBkZWZhdWx0UmVnaXN0cnlcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwic291cmNlXCI6IHtcbiAgICAgICAgICAgICAgICAgIFwiZ2l0XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJ1cmlcIjogXCJcIlxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcIkdpdFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcInN0cmF0ZWd5XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwic3RpU3RyYXRlZ3lcIjoge1xuICAgICAgICAgICAgICAgICAgICBcImJ1aWxkZXJJbWFnZVwiOiBcImZhYnJpYzgvYmFzZS1zdGlcIlxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcIlNUSVwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBcInRyaWdnZXJzXCI6IFtdXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgQ29yZS4kYXBwbHkoJHNjb3BlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1dKTtcbn1cbiIsIi8vLyA8cmVmZXJlbmNlIHBhdGg9XCIuLi8uLi9pbmNsdWRlcy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJrdWJlcm5ldGVzUGx1Z2luLnRzXCIvPlxuXG5tb2R1bGUgS3ViZXJuZXRlcyB7XG5cbiAgZXhwb3J0IHZhciBCdWlsZENvbmZpZ3NDb250cm9sbGVyID0gY29udHJvbGxlcihcIkJ1aWxkQ29uZmlnc0NvbnRyb2xsZXJcIiwgW1wiJHNjb3BlXCIsIFwiS3ViZXJuZXRlc01vZGVsXCIsIFwiS3ViZXJuZXRlc0J1aWxkc1wiLCBcIkt1YmVybmV0ZXNTdGF0ZVwiLCBcIiRkaWFsb2dcIiwgXCIkd2luZG93XCIsIFwiJHRlbXBsYXRlQ2FjaGVcIiwgXCIkcm91dGVQYXJhbXNcIiwgXCIkbG9jYXRpb25cIiwgXCJsb2NhbFN0b3JhZ2VcIiwgXCIkaHR0cFwiLCBcIiR0aW1lb3V0XCIsIFwiS3ViZXJuZXRlc0FwaVVSTFwiLFxuICAgICgkc2NvcGUsIEt1YmVybmV0ZXNNb2RlbDpLdWJlcm5ldGVzLkt1YmVybmV0ZXNNb2RlbFNlcnZpY2UsIEt1YmVybmV0ZXNCdWlsZHMsIEt1YmVybmV0ZXNTdGF0ZSwgJGRpYWxvZywgJHdpbmRvdywgJHRlbXBsYXRlQ2FjaGUsICRyb3V0ZVBhcmFtcywgJGxvY2F0aW9uOm5nLklMb2NhdGlvblNlcnZpY2UsIGxvY2FsU3RvcmFnZSwgJGh0dHAsICR0aW1lb3V0LCBLdWJlcm5ldGVzQXBpVVJMKSA9PiB7XG5cbiAgICAgICRzY29wZS5rdWJlcm5ldGVzID0gS3ViZXJuZXRlc1N0YXRlO1xuICAgICAgJHNjb3BlLm1vZGVsID0gS3ViZXJuZXRlc01vZGVsO1xuICAgICAgJHNjb3BlLkt1YmVybmV0ZXNCdWlsZHMgPSBLdWJlcm5ldGVzQnVpbGRzO1xuXG4gICAgICAkc2NvcGUudGFibGVDb25maWcgPSB7XG4gICAgICAgIGRhdGE6ICdtb2RlbC5idWlsZGNvbmZpZ3MnLFxuICAgICAgICBzaG93U2VsZWN0aW9uQ2hlY2tib3g6IHRydWUsXG4gICAgICAgIGVuYWJsZVJvd0NsaWNrU2VsZWN0aW9uOiBmYWxzZSxcbiAgICAgICAgbXVsdGlTZWxlY3Q6IHRydWUsXG4gICAgICAgIHNlbGVjdGVkSXRlbXM6IFtdLFxuICAgICAgICBmaWx0ZXJPcHRpb25zOiB7XG4gICAgICAgICAgZmlsdGVyVGV4dDogJGxvY2F0aW9uLnNlYXJjaCgpW1wicVwiXSB8fCAnJ1xuICAgICAgICB9LFxuICAgICAgICBjb2x1bW5EZWZzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgZmllbGQ6ICdtZXRhZGF0YS5uYW1lJyxcbiAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAnTmFtZScsXG4gICAgICAgICAgICBjZWxsVGVtcGxhdGU6ICR0ZW1wbGF0ZUNhY2hlLmdldChcImJ1aWxkQ29uZmlnTGlua1RlbXBsYXRlLmh0bWxcIilcbiAgICAgICAgICB9LFxuLypcbiAgICAgICAgICB7XG4gICAgICAgICAgICBmaWVsZDogJ3NwZWMuc291cmNlLnR5cGUnLFxuICAgICAgICAgICAgZGlzcGxheU5hbWU6ICdTb3VyY2UnXG4gICAgICAgICAgfSxcbiovXG4gICAgICAgICAge1xuICAgICAgICAgICAgZmllbGQ6ICdzcGVjLnNvdXJjZS5naXQudXJpJyxcbiAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAnUmVwb3NpdG9yeSdcbiAgICAgICAgICB9LFxuLypcbiAgICAgICAgICB7XG4gICAgICAgICAgICBmaWVsZDogJ3NwZWMuc3RyYXRlZ3kudHlwZScsXG4gICAgICAgICAgICBkaXNwbGF5TmFtZTogJ1N0cmF0ZWd5J1xuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgZmllbGQ6ICdzcGVjLnN0cmF0ZWd5LnN0aVN0cmF0ZWd5LmltYWdlJyxcbiAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAnU291cmNlIEltYWdlJ1xuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgZmllbGQ6ICdzcGVjLm91dHB1dC5pbWFnZVRhZycsXG4gICAgICAgICAgICBkaXNwbGF5TmFtZTogJ091dHB1dCBJbWFnZSdcbiAgICAgICAgICB9LFxuKi9cbiAgICAgICAgICB7XG4gICAgICAgICAgICBmaWVsZDogJyRmYWJyaWM4Q29kZVZpZXdzJyxcbiAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAnQ29kZScsXG4gICAgICAgICAgICB3aWR0aDogXCIqKipcIixcbiAgICAgICAgICAgIG1pbldpZHRoOiA1MDAsXG4gICAgICAgICAgICBjZWxsVGVtcGxhdGU6ICR0ZW1wbGF0ZUNhY2hlLmdldChcImJ1aWxkQ29uZmlnQ29kZVZpZXdzVGVtcGxhdGUuaHRtbFwiKVxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgZmllbGQ6ICckZmFicmljOEJ1aWxkVmlld3MnLFxuICAgICAgICAgICAgZGlzcGxheU5hbWU6ICdCdWlsZHMnLFxuICAgICAgICAgICAgd2lkdGg6IFwiKioqXCIsXG4gICAgICAgICAgICBtaW5XaWR0aDogNTAwLFxuICAgICAgICAgICAgY2VsbFRlbXBsYXRlOiAkdGVtcGxhdGVDYWNoZS5nZXQoXCJidWlsZENvbmZpZ0J1aWxkVmlld3NUZW1wbGF0ZS5odG1sXCIpXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBmaWVsZDogJyRmYWJyaWM4RW52aXJvbm1lbnRWaWV3cycsXG4gICAgICAgICAgICBkaXNwbGF5TmFtZTogJ0Vudmlyb25tZW50cycsXG4gICAgICAgICAgICB3aWR0aDogXCIqKipcIixcbiAgICAgICAgICAgIG1pbldpZHRoOiA1MDAsXG4gICAgICAgICAgICBjZWxsVGVtcGxhdGU6ICR0ZW1wbGF0ZUNhY2hlLmdldChcImJ1aWxkQ29uZmlnRW52aXJvbm1lbnRWaWV3c1RlbXBsYXRlLmh0bWxcIilcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGZpZWxkOiAnJGZhYnJpYzhUZWFtVmlld3MnLFxuICAgICAgICAgICAgZGlzcGxheU5hbWU6ICdQZW9wbGUnLFxuICAgICAgICAgICAgd2lkdGg6IFwiKioqXCIsXG4gICAgICAgICAgICBtaW5XaWR0aDogNTAwLFxuICAgICAgICAgICAgY2VsbFRlbXBsYXRlOiAkdGVtcGxhdGVDYWNoZS5nZXQoXCJidWlsZENvbmZpZ1RlYW1WaWV3c1RlbXBsYXRlLmh0bWxcIilcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH07XG5cbiAgICAgIEt1YmVybmV0ZXMuaW5pdFNoYXJlZCgkc2NvcGUsICRsb2NhdGlvbiwgJGh0dHAsICR0aW1lb3V0LCAkcm91dGVQYXJhbXMsIEt1YmVybmV0ZXNNb2RlbCwgS3ViZXJuZXRlc1N0YXRlLCBLdWJlcm5ldGVzQXBpVVJMKTtcblxuICAgICAgLy8gVE9ET1xuICAgICAgLy8gJHNjb3BlLmlzTG9nZ2VkSW50b0dvZ3MgPSBGb3JnZS5pc0xvZ2dlZEludG9Hb2dzO1xuXG4gICAgICAkc2NvcGUuZGVsZXRlUHJvbXB0ID0gKHNlbGVjdGVkKSA9PiB7XG4gICAgICAgIFVJLm11bHRpSXRlbUNvbmZpcm1BY3Rpb25EaWFsb2coPFVJLk11bHRpSXRlbUNvbmZpcm1BY3Rpb25PcHRpb25zPntcbiAgICAgICAgICBjb2xsZWN0aW9uOiBzZWxlY3RlZCxcbiAgICAgICAgICBpbmRleDogJyRuYW1lJyxcbiAgICAgICAgICBvbkNsb3NlOiAocmVzdWx0OmJvb2xlYW4pID0+IHtcbiAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICAgICAgZnVuY3Rpb24gZGVsZXRlU2VsZWN0ZWQoc2VsZWN0ZWQsIG5leHQpIHtcbiAgICAgICAgICAgICAgICBpZiAobmV4dCkge1xuICAgICAgICAgICAgICAgICAgZGVsZXRlRW50aXR5KG5leHQsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlU2VsZWN0ZWQoc2VsZWN0ZWQsIHNlbGVjdGVkLnNoaWZ0KCkpO1xuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIHVwZGF0ZURhdGEoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBkZWxldGVTZWxlY3RlZChzZWxlY3RlZCwgc2VsZWN0ZWQuc2hpZnQoKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICB0aXRsZTogJ0RlbGV0ZSBCdWlsZCBDb25maWdzPycsXG4gICAgICAgICAgYWN0aW9uOiAnVGhlIGZvbGxvd2luZyBCdWlsZCBDb25maWdzIHdpbGwgYmUgZGVsZXRlZDonLFxuICAgICAgICAgIG9rVGV4dDogJ0RlbGV0ZScsXG4gICAgICAgICAgb2tDbGFzczogJ2J0bi1kYW5nZXInLFxuICAgICAgICAgIGN1c3RvbTogXCJUaGlzIG9wZXJhdGlvbiBpcyBwZXJtYW5lbnQgb25jZSBjb21wbGV0ZWQhXCIsXG4gICAgICAgICAgY3VzdG9tQ2xhc3M6IFwiYWxlcnQgYWxlcnQtd2FybmluZ1wiXG4gICAgICAgIH0pLm9wZW4oKTtcbiAgICAgIH07XG5cbiAgICAgIGZ1bmN0aW9uIGRlbGV0ZUVudGl0eShzZWxlY3Rpb24sIG5leHRDYWxsYmFjaykge1xuICAgICAgICB2YXIgbmFtZSA9IChzZWxlY3Rpb24gfHwge30pLiRuYW1lO1xuICAgICAgICBpZiAobmFtZSkge1xuICAgICAgICAgIGNvbnNvbGUubG9nKFwiQWJvdXQgdG8gZGVsZXRlIGJ1aWxkIGNvbmZpZzogXCIgKyBuYW1lKTtcbiAgICAgICAgICB2YXIgdXJsID0gYnVpbGRDb25maWdSZXN0VXJsKG5hbWUpO1xuICAgICAgICAgICRodHRwLmRlbGV0ZSh1cmwpLlxuICAgICAgICAgICAgc3VjY2VzcyhmdW5jdGlvbiAoZGF0YSwgc3RhdHVzLCBoZWFkZXJzLCBjb25maWcpIHtcbiAgICAgICAgICAgICAgbmV4dENhbGxiYWNrKCk7XG4gICAgICAgICAgICB9KS5cbiAgICAgICAgICAgIGVycm9yKGZ1bmN0aW9uIChkYXRhLCBzdGF0dXMsIGhlYWRlcnMsIGNvbmZpZykge1xuICAgICAgICAgICAgICBsb2cud2FybihcIkZhaWxlZCB0byBkZWxldGUgYnVpbGQgY29uZmlnIG9uIFwiICsgdXJsICsgXCIgXCIgKyBkYXRhICsgXCIgXCIgKyBzdGF0dXMpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc29sZS5sb2coXCJ3YXJuaW5nOiBubyBuYW1lIGZvciBzZWxlY3Rpb246IFwiICsgYW5ndWxhci50b0pzb24oc2VsZWN0aW9uKSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgZnVuY3Rpb24gdXBkYXRlRGF0YSgpIHtcbi8qXG4gICAgICAgIHZhciB1cmwgPSBidWlsZENvbmZpZ3NSZXN0VVJMKCk7XG4gICAgICAgICRodHRwLmdldCh1cmwpLlxuICAgICAgICAgIHN1Y2Nlc3MoZnVuY3Rpb24gKGRhdGEsIHN0YXR1cywgaGVhZGVycywgY29uZmlnKSB7XG4gICAgICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgICAvL2NvbnNvbGUubG9nKFwiZ290IGRhdGEgXCIgKyBhbmd1bGFyLnRvSnNvbihkYXRhLCB0cnVlKSk7XG4gICAgICAgICAgICAgIHZhciBzb3J0ZWRCdWlsZHMgPSBudWxsO1xuICAgICAgICAgICAgICAkc2NvcGUuYnVpbGRDb25maWdzID0gZW5yaWNoQnVpbGRDb25maWdzKGRhdGEuaXRlbXMsIHNvcnRlZEJ1aWxkcyk7XG4gICAgICAgICAgICAgICRzY29wZS5mZXRjaGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgQ29yZS4kYXBwbHkoJHNjb3BlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KS5cbiAgICAgICAgICBlcnJvcihmdW5jdGlvbiAoZGF0YSwgc3RhdHVzLCBoZWFkZXJzLCBjb25maWcpIHtcbiAgICAgICAgICAgIGxvZy53YXJuKFwiRmFpbGVkIHRvIGxvYWQgXCIgKyB1cmwgKyBcIiBcIiArIGRhdGEgKyBcIiBcIiArIHN0YXR1cyk7XG4gICAgICAgICAgfSk7XG4qL1xuICAgICAgfVxuXG4gICAgICB1cGRhdGVEYXRhKCk7XG4gICAgfV0pO1xufVxuIiwiLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4uLy4uL2luY2x1ZGVzLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cImt1YmVybmV0ZXNIZWxwZXJzLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cImt1YmVybmV0ZXNQbHVnaW4udHNcIi8+XG5cbm1vZHVsZSBLdWJlcm5ldGVzIHtcblxuICBleHBvcnQgdmFyIEJ1aWxkTG9nc0NvbnRyb2xsZXIgPSBjb250cm9sbGVyKFwiQnVpbGRMb2dzQ29udHJvbGxlclwiLFxuICAgIFtcIiRzY29wZVwiLCBcIkt1YmVybmV0ZXNNb2RlbFwiLCBcIkt1YmVybmV0ZXNTdGF0ZVwiLCBcIkt1YmVybmV0ZXNTY2hlbWFcIiwgXCIkdGVtcGxhdGVDYWNoZVwiLCBcIiRsb2NhdGlvblwiLCBcIiRyb3V0ZVBhcmFtc1wiLCBcIiRodHRwXCIsIFwiJHRpbWVvdXRcIiwgXCJLdWJlcm5ldGVzQXBpVVJMXCIsXG4gICAgICAoJHNjb3BlLCBLdWJlcm5ldGVzTW9kZWw6S3ViZXJuZXRlcy5LdWJlcm5ldGVzTW9kZWxTZXJ2aWNlLCBLdWJlcm5ldGVzU3RhdGUsIEt1YmVybmV0ZXNTY2hlbWEsXG4gICAgICAgJHRlbXBsYXRlQ2FjaGU6bmcuSVRlbXBsYXRlQ2FjaGVTZXJ2aWNlLCAkbG9jYXRpb246bmcuSUxvY2F0aW9uU2VydmljZSwgJHJvdXRlUGFyYW1zLCAkaHR0cCwgJHRpbWVvdXQsIEt1YmVybmV0ZXNBcGlVUkwpID0+IHtcblxuICAgICAgICAkc2NvcGUua3ViZXJuZXRlcyA9IEt1YmVybmV0ZXNTdGF0ZTtcbiAgICAgICAgJHNjb3BlLm1vZGVsID0gS3ViZXJuZXRlc01vZGVsO1xuICAgICAgICAkc2NvcGUuaWQgPSAkcm91dGVQYXJhbXNbXCJpZFwiXTtcbiAgICAgICAgJHNjb3BlLnNjaGVtYSA9IEt1YmVybmV0ZXNTY2hlbWE7XG4gICAgICAgICRzY29wZS5jb25maWcgPSBLdWJlcm5ldGVzU2NoZW1hLmRlZmluaXRpb25zLm9zX2J1aWxkX0J1aWxkO1xuXG4gICAgICAgIEt1YmVybmV0ZXMuaW5pdFNoYXJlZCgkc2NvcGUsICRsb2NhdGlvbiwgJGh0dHAsICR0aW1lb3V0LCAkcm91dGVQYXJhbXMsIEt1YmVybmV0ZXNNb2RlbCwgS3ViZXJuZXRlc1N0YXRlLCBLdWJlcm5ldGVzQXBpVVJMKTtcblxuICAgICAgICAkc2NvcGUuJG9uKCdrdWJlcm5ldGVzTW9kZWxVcGRhdGVkJywgZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHVwZGF0ZURhdGEoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgJHNjb3BlLiRvbignJHJvdXRlVXBkYXRlJywgKCRldmVudCkgPT4ge1xuICAgICAgICAgIHVwZGF0ZURhdGEoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgJHNjb3BlLmxvZ3NUZXh0ID0gXCJMb2FkaW5nIGxvZ3MuLi5cIjtcblxuICAgICAgICB1cGRhdGVEYXRhKCk7XG5cbiAgICAgICAgZnVuY3Rpb24gdXBkYXRlRGF0YSgpIHtcbiAgICAgICAgICAkc2NvcGUuaXRlbSA9IG51bGw7XG4gICAgICAgICAgaWYgKCRzY29wZS5pZCkge1xuICAgICAgICAgICAgdmFyIHVybCA9IGJ1aWxkUmVzdFVybCgkc2NvcGUuaWQpO1xuICAgICAgICAgICAgJGh0dHAuZ2V0KHVybCkuXG4gICAgICAgICAgICAgIHN1Y2Nlc3MoZnVuY3Rpb24gKGRhdGEsIHN0YXR1cywgaGVhZGVycywgY29uZmlnKSB7XG4gICAgICAgICAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgICAgICAgICRzY29wZS5lbnRpdHkgPSBlbnJpY2hCdWlsZChkYXRhKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJHNjb3BlLmZldGNoZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIENvcmUuJGFwcGx5KCRzY29wZSk7XG4gICAgICAgICAgICAgIH0pLlxuICAgICAgICAgICAgICBlcnJvcihmdW5jdGlvbiAoZGF0YSwgc3RhdHVzLCBoZWFkZXJzLCBjb25maWcpIHtcbiAgICAgICAgICAgICAgICBsb2cud2FybihcIkZhaWxlZCB0byBsb2FkIFwiICsgdXJsICsgXCIgXCIgKyBkYXRhICsgXCIgXCIgKyBzdGF0dXMpO1xuICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgdXJsID0gYnVpbGRMb2dzUmVzdFVybCgkc2NvcGUuaWQpO1xuICAgICAgICAgICAgJGh0dHAuZ2V0KHVybCkuXG4gICAgICAgICAgICAgIHN1Y2Nlc3MoZnVuY3Rpb24gKGRhdGEsIHN0YXR1cykge1xuICAgICAgICAgICAgICAgICRzY29wZS5sb2dzVGV4dCA9IGRhdGE7XG4gICAgICAgICAgICAgICAgQ29yZS4kYXBwbHkoJHNjb3BlKTtcbiAgICAgICAgICAgICAgfSkuXG4gICAgICAgICAgICAgIGVycm9yKGZ1bmN0aW9uIChkYXRhLCBzdGF0dXMpIHtcbiAgICAgICAgICAgICAgICAkc2NvcGUubG9nc1RleHQgPSBcIkZhaWxlZCB0byBsb2FkIGxvZ3MgZnJvbTogXCIgKyB1cmwgKyBcIiBcIiArIGRhdGEgKyBcIiBzdGF0dXM6IFwiICsgc3RhdHVzO1xuICAgICAgICAgICAgICAgIENvcmUuJGFwcGx5KCRzY29wZSk7XG4gICAgICAgICAgICAgIH0pLlxuICAgICAgICAgICAgICBjYXRjaChmdW5jdGlvbiAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAkc2NvcGUubG9nc1RleHQgPSBcIkZhaWxlZCB0byBsb2FkIGxvZ3M6IFwiICsgYW5ndWxhci50b0pzb24oZXJyb3IsIHRydWUpO1xuICAgICAgICAgICAgICAgIENvcmUuJGFwcGx5KCRzY29wZSk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAkc2NvcGUuZmV0Y2hlZCA9IHRydWU7XG4gICAgICAgICAgICBDb3JlLiRhcHBseSgkc2NvcGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfV0pO1xufVxuIiwiLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4uLy4uL2luY2x1ZGVzLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cImt1YmVybmV0ZXNQbHVnaW4udHNcIi8+XG5cbm1vZHVsZSBLdWJlcm5ldGVzIHtcblxuICBleHBvcnQgdmFyIEJ1aWxkc0NvbnRyb2xsZXIgPSBjb250cm9sbGVyKFwiQnVpbGRzQ29udHJvbGxlclwiLCBbXCIkc2NvcGVcIiwgXCJLdWJlcm5ldGVzTW9kZWxcIiwgXCJLdWJlcm5ldGVzQnVpbGRzXCIsIFwiS3ViZXJuZXRlc1N0YXRlXCIsIFwiJGRpYWxvZ1wiLCBcIiR3aW5kb3dcIiwgXCIkdGVtcGxhdGVDYWNoZVwiLCBcIiRyb3V0ZVBhcmFtc1wiLCBcIiRsb2NhdGlvblwiLCBcImxvY2FsU3RvcmFnZVwiLCBcIiRodHRwXCIsIFwiJHRpbWVvdXRcIiwgXCJLdWJlcm5ldGVzQXBpVVJMXCIsXG4gICAgKCRzY29wZSwgS3ViZXJuZXRlc01vZGVsOkt1YmVybmV0ZXMuS3ViZXJuZXRlc01vZGVsU2VydmljZSwgS3ViZXJuZXRlc0J1aWxkcywgS3ViZXJuZXRlc1N0YXRlLCAkZGlhbG9nLCAkd2luZG93LCAkdGVtcGxhdGVDYWNoZSwgJHJvdXRlUGFyYW1zLCAkbG9jYXRpb246bmcuSUxvY2F0aW9uU2VydmljZSwgbG9jYWxTdG9yYWdlLCAkaHR0cCwgJHRpbWVvdXQsIEt1YmVybmV0ZXNBcGlVUkwpID0+IHtcblxuICAgICAgJHNjb3BlLmt1YmVybmV0ZXMgPSBLdWJlcm5ldGVzU3RhdGU7XG4gICAgICAkc2NvcGUubW9kZWwgPSBLdWJlcm5ldGVzTW9kZWw7XG4gICAgICAkc2NvcGUuS3ViZXJuZXRlc0J1aWxkcyA9IEt1YmVybmV0ZXNCdWlsZHM7XG4gICAgICAkc2NvcGUuYnVpbGRDb25maWdJZCA9ICRyb3V0ZVBhcmFtc1tcImlkXCJdO1xuXG4gICAgICAkc2NvcGUuJG9uKCdrdWJlcm5ldGVzTW9kZWxVcGRhdGVkJywgZnVuY3Rpb24gKCkge1xuICAgICAgICBDb3JlLiRhcHBseSgkc2NvcGUpO1xuICAgICAgfSk7XG5cbiAgICAgICRzY29wZS50YWJsZUNvbmZpZyA9IHtcbiAgICAgICAgZGF0YTogJ2J1aWxkcycsXG4gICAgICAgIHNob3dTZWxlY3Rpb25DaGVja2JveDogdHJ1ZSxcbiAgICAgICAgZW5hYmxlUm93Q2xpY2tTZWxlY3Rpb246IGZhbHNlLFxuICAgICAgICBtdWx0aVNlbGVjdDogdHJ1ZSxcbiAgICAgICAgc2VsZWN0ZWRJdGVtczogW10sXG4gICAgICAgIGZpbHRlck9wdGlvbnM6IHtcbiAgICAgICAgICBmaWx0ZXJUZXh0OiAkbG9jYXRpb24uc2VhcmNoKClbXCJxXCJdIHx8ICcnXG4gICAgICAgIH0sXG4gICAgICAgIGNvbHVtbkRlZnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBmaWVsZDogJ21ldGFkYXRhLm5hbWUnLFxuICAgICAgICAgICAgZGlzcGxheU5hbWU6ICdOYW1lJyxcbiAgICAgICAgICAgIGNlbGxUZW1wbGF0ZTogJHRlbXBsYXRlQ2FjaGUuZ2V0KFwiYnVpbGRMaW5rVGVtcGxhdGUuaHRtbFwiKVxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgZmllbGQ6ICckY3JlYXRpb25EYXRlJyxcbiAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAnVGltZScsXG4gICAgICAgICAgICBkZWZhdWx0U29ydDogdHJ1ZSxcbiAgICAgICAgICAgIGNlbGxUZW1wbGF0ZTogJHRlbXBsYXRlQ2FjaGUuZ2V0KFwiYnVpbGRUaW1lVGVtcGxhdGUuaHRtbFwiKVxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgZmllbGQ6ICdzdGF0dXMnLFxuICAgICAgICAgICAgZGlzcGxheU5hbWU6ICdTdGF0dXMnLFxuICAgICAgICAgICAgY2VsbFRlbXBsYXRlOiAkdGVtcGxhdGVDYWNoZS5nZXQoXCJidWlsZFN0YXR1c1RlbXBsYXRlLmh0bWxcIilcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGZpZWxkOiAnJGxvZ3NMaW5rJyxcbiAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAnTG9ncycsXG4gICAgICAgICAgICBjZWxsVGVtcGxhdGU6ICR0ZW1wbGF0ZUNhY2hlLmdldChcImJ1aWxkTG9nc1RlbXBsYXRlLmh0bWxcIilcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGZpZWxkOiAnJHBvZExpbmsnLFxuICAgICAgICAgICAgZGlzcGxheU5hbWU6ICdCdWlsZCBQb2QnLFxuICAgICAgICAgICAgY2VsbFRlbXBsYXRlOiAkdGVtcGxhdGVDYWNoZS5nZXQoXCJidWlsZFBvZFRlbXBsYXRlLmh0bWxcIilcbiAgICAgICAgICB9LFxuLypcbiAgICAgICAgICB7XG4gICAgICAgICAgICBmaWVsZDogJ3BhcmFtZXRlcnMuc291cmNlLnR5cGUnLFxuICAgICAgICAgICAgZGlzcGxheU5hbWU6ICdTb3VyY2UnXG4gICAgICAgICAgfSxcbiovXG4gICAgICAgICAge1xuICAgICAgICAgICAgZmllbGQ6ICdwYXJhbWV0ZXJzLnNvdXJjZS5naXQudXJpJyxcbiAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAnUmVwb3NpdG9yeScsXG4gICAgICAgICAgICBjZWxsVGVtcGxhdGU6ICR0ZW1wbGF0ZUNhY2hlLmdldChcImJ1aWxkUmVwb3NpdG9yeVRlbXBsYXRlLmh0bWxcIilcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGZpZWxkOiAncGFyYW1ldGVycy5zdHJhdGVneS50eXBlJyxcbiAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAnU3RyYXRlZ3knXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBmaWVsZDogJ3BhcmFtZXRlcnMuc3RyYXRlZ3kuc3RpU3RyYXRlZ3kuaW1hZ2UnLFxuICAgICAgICAgICAgZGlzcGxheU5hbWU6ICdTb3VyY2UgSW1hZ2UnXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBmaWVsZDogJ3BhcmFtZXRlcnMub3V0cHV0LmltYWdlVGFnJyxcbiAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAnT3V0cHV0IEltYWdlJ1xuICAgICAgICAgIH1dXG4gICAgICB9O1xuXG4gICAgICBLdWJlcm5ldGVzLmluaXRTaGFyZWQoJHNjb3BlLCAkbG9jYXRpb24sICRodHRwLCAkdGltZW91dCwgJHJvdXRlUGFyYW1zLCBLdWJlcm5ldGVzTW9kZWwsIEt1YmVybmV0ZXNTdGF0ZSwgS3ViZXJuZXRlc0FwaVVSTCk7XG4gICAgICAkc2NvcGUuYnJlYWRjcnVtYkNvbmZpZyA9IERldmVsb3Blci5jcmVhdGVQcm9qZWN0QnJlYWRjcnVtYnMoJHNjb3BlLmJ1aWxkQ29uZmlnSWQpO1xuICAgICAgJHNjb3BlLnN1YlRhYkNvbmZpZyA9IERldmVsb3Blci5jcmVhdGVQcm9qZWN0U3ViTmF2QmFycygkc2NvcGUuYnVpbGRDb25maWdJZCwgbnVsbCwgJHNjb3BlKTtcblxuICAgICAgJHNjb3BlLiRrZWVwUG9sbGluZyA9ICgpID0+IGtlZXBQb2xsaW5nTW9kZWw7XG4gICAgICAkc2NvcGUuZmV0Y2ggPSBQb2xsSGVscGVycy5zZXR1cFBvbGxpbmcoJHNjb3BlLCAobmV4dDooKSA9PiB2b2lkKSA9PiB7XG4gICAgICAgIHZhciB1cmwgPSBidWlsZHNSZXN0VVJMKCk7XG4gICAgICAgICRodHRwLmdldCh1cmwpLlxuICAgICAgICAgIHN1Y2Nlc3MoZnVuY3Rpb24gKGRhdGEsIHN0YXR1cywgaGVhZGVycywgY29uZmlnKSB7XG4gICAgICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgICAvL2NvbnNvbGUubG9nKFwiZ290IGRhdGEgXCIgKyBhbmd1bGFyLnRvSnNvbihkYXRhLCB0cnVlKSk7XG4gICAgICAgICAgICAgICRzY29wZS5idWlsZHMgPSBlbnJpY2hCdWlsZHMoZGF0YS5pdGVtcyk7XG4gICAgICAgICAgICAgICRzY29wZS5mZXRjaGVkID0gdHJ1ZTtcblxuICAgICAgICAgICAgICBpZiAoJHNjb3BlLm1vZGVsKSB7XG4gICAgICAgICAgICAgICAgJHNjb3BlLmJ1aWxkQ29uZmlnID0gJHNjb3BlLm1vZGVsLmdldEJ1aWxkQ29uZmlnKCRzY29wZS5idWlsZENvbmZpZ0lkKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQ29yZS4kYXBwbHkoJHNjb3BlKTtcbiAgICAgICAgICAgIG5leHQoKTtcbiAgICAgICAgICB9KS5cbiAgICAgICAgICBlcnJvcihmdW5jdGlvbiAoZGF0YSwgc3RhdHVzLCBoZWFkZXJzLCBjb25maWcpIHtcbiAgICAgICAgICAgIGxvZy53YXJuKFwiRmFpbGVkIHRvIGxvYWQgXCIgKyB1cmwgKyBcIiBcIiArIGRhdGEgKyBcIiBcIiArIHN0YXR1cyk7XG4gICAgICAgICAgICBDb3JlLiRhcHBseSgkc2NvcGUpO1xuICAgICAgICAgICAgbmV4dCgpO1xuICAgICAgICAgIH0pO1xuICAgICAgfSk7XG5cbiAgICAgICRzY29wZS5mZXRjaCgpO1xuICAgIH1dKTtcbn1cbiIsIi8vLyA8cmVmZXJlbmNlIHBhdGg9XCIuLi8uLi9pbmNsdWRlcy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJrdWJlcm5ldGVzSGVscGVycy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJrdWJlcm5ldGVzUGx1Z2luLnRzXCIvPlxuXG5tb2R1bGUgS3ViZXJuZXRlcyB7XG5cbiAgLy8gY29udHJvbGxlciBmb3IgY29ubmVjdGluZyB0byBhIHJlbW90ZSBjb250YWluZXIgdmlhIGpvbG9raWFcbiAgZXhwb3J0IHZhciBDb25uZWN0Q29udHJvbGxlciA9IGNvbnRyb2xsZXIoXCJDb25uZWN0Q29udHJvbGxlclwiLCBbXG4gICAgXCIkc2NvcGVcIiwgXCJsb2NhbFN0b3JhZ2VcIiwgXCJ1c2VyRGV0YWlsc1wiLCBcIkNvbm5lY3REaWFsb2dTZXJ2aWNlXCIsIFwiJGJyb3dzZXJcIixcbiAgICAoJHNjb3BlLCBsb2NhbFN0b3JhZ2UsIHVzZXJEZXRhaWxzLCBDb25uZWN0RGlhbG9nU2VydmljZSwgJGJyb3dzZXI6bmcuSUJyb3dzZXJTZXJ2aWNlKSA9PiB7XG5cbiAgICAgIHZhciBiYXNlOmFueSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2Jhc2UnKTtcbiAgICAgIHZhciBiYXNlSHJlZiA9IGJhc2UgJiYgYmFzZS5ocmVmIHx8ICcnO1xuXG4gICAgICAkc2NvcGUuZG9Db25uZWN0ID0gKGVudGl0eSkgPT4ge1xuICAgICAgICB2YXIgY29ubmVjdFVybDphbnkgPSBuZXcgVVJJKGJhc2VIcmVmKS5wYXRoKCcvamF2YS9pbmRleC5odG1sJyk7XG4gICAgICAgIHZhciByZXR1cm5UbyA9IG5ldyBVUkkoKS50b1N0cmluZygpO1xuICAgICAgICB2YXIgdGl0bGUgPSBlbnRpdHkubWV0YWRhdGEubmFtZSB8fCAnVW50aXRsZWQgQ29udGFpbmVyJztcbiAgICAgICAgdmFyIHRva2VuID0gdXNlckRldGFpbHMudG9rZW4gfHwgJyc7XG4gICAgICAgIGNvbm5lY3RVcmwuaGFzaCh0b2tlbikucXVlcnkoe1xuICAgICAgICAgIGpvbG9raWFVcmw6IGVudGl0eS4kam9sb2tpYVVybCxcbiAgICAgICAgICB0aXRsZTogdGl0bGUsXG4gICAgICAgICAgcmV0dXJuVG86IHJldHVyblRvXG4gICAgICAgIH0pO1xuICAgICAgICBsb2cuZGVidWcoXCJDb25uZWN0IFVSSTogXCIsIGNvbm5lY3RVcmwudG9TdHJpbmcoKSk7XG4gICAgICAgIHdpbmRvdy5vcGVuKGNvbm5lY3RVcmwudG9TdHJpbmcoKSk7XG4gICAgICB9O1xuXG4gICAgfV0pO1xufVxuIiwiLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4uLy4uL2luY2x1ZGVzLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cImt1YmVybmV0ZXNIZWxwZXJzLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cImt1YmVybmV0ZXNQbHVnaW4udHNcIi8+XG5cbm1vZHVsZSBLdWJlcm5ldGVzIHtcblxuICBleHBvcnQgdmFyIERlcGxveW1lbnRDb25maWdDb250cm9sbGVyID0gY29udHJvbGxlcihcIkRlcGxveW1lbnRDb25maWdDb250cm9sbGVyXCIsXG4gICAgW1wiJHNjb3BlXCIsIFwiS3ViZXJuZXRlc01vZGVsXCIsIFwiS3ViZXJuZXRlc1N0YXRlXCIsIFwiS3ViZXJuZXRlc1NjaGVtYVwiLCBcIiR0ZW1wbGF0ZUNhY2hlXCIsIFwiJGxvY2F0aW9uXCIsIFwiJHJvdXRlUGFyYW1zXCIsIFwiJGh0dHBcIiwgXCIkdGltZW91dFwiLCBcIkt1YmVybmV0ZXNBcGlVUkxcIixcbiAgICAgICgkc2NvcGUsIEt1YmVybmV0ZXNNb2RlbDpLdWJlcm5ldGVzLkt1YmVybmV0ZXNNb2RlbFNlcnZpY2UsIEt1YmVybmV0ZXNTdGF0ZSwgS3ViZXJuZXRlc1NjaGVtYSxcbiAgICAgICAkdGVtcGxhdGVDYWNoZTpuZy5JVGVtcGxhdGVDYWNoZVNlcnZpY2UsICRsb2NhdGlvbjpuZy5JTG9jYXRpb25TZXJ2aWNlLCAkcm91dGVQYXJhbXMsICRodHRwLCAkdGltZW91dCwgS3ViZXJuZXRlc0FwaVVSTCkgPT4ge1xuXG4gICAgICAgICRzY29wZS5rdWJlcm5ldGVzID0gS3ViZXJuZXRlc1N0YXRlO1xuICAgICAgICAkc2NvcGUubW9kZWwgPSBLdWJlcm5ldGVzTW9kZWw7XG4gICAgICAgICRzY29wZS5pZCA9ICRyb3V0ZVBhcmFtc1tcImlkXCJdO1xuICAgICAgICAkc2NvcGUuc2NoZW1hID0gS3ViZXJuZXRlc1NjaGVtYTtcbiAgICAgICAgJHNjb3BlLmNvbmZpZyA9IEt1YmVybmV0ZXNTY2hlbWEuZGVmaW5pdGlvbnMub3NfZGVwbG95X0RlcGxveW1lbnRDb25maWc7XG5cbiAgICAgICAgS3ViZXJuZXRlcy5pbml0U2hhcmVkKCRzY29wZSwgJGxvY2F0aW9uLCAkaHR0cCwgJHRpbWVvdXQsICRyb3V0ZVBhcmFtcywgS3ViZXJuZXRlc01vZGVsLCBLdWJlcm5ldGVzU3RhdGUsIEt1YmVybmV0ZXNBcGlVUkwpO1xuXG4gICAgICAgICRzY29wZS4kb24oJ2t1YmVybmV0ZXNNb2RlbFVwZGF0ZWQnLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgdXBkYXRlRGF0YSgpO1xuICAgICAgICB9KTtcblxuICAgICAgICAkc2NvcGUuJG9uKCckcm91dGVVcGRhdGUnLCAoJGV2ZW50KSA9PiB7XG4gICAgICAgICAgdXBkYXRlRGF0YSgpO1xuICAgICAgICB9KTtcblxuICAgICAgICB1cGRhdGVEYXRhKCk7XG5cbiAgICAgICAgZnVuY3Rpb24gdXBkYXRlRGF0YSgpIHtcbiAgICAgICAgICAkc2NvcGUuaXRlbSA9IG51bGw7XG4gICAgICAgICAgaWYgKCRzY29wZS5pZCkge1xuICAgICAgICAgICAgdmFyIHVybCA9IGRlcGxveW1lbnRDb25maWdSZXN0VXJsKCRzY29wZS5pZCk7XG4gICAgICAgICAgICAkaHR0cC5nZXQodXJsKS5cbiAgICAgICAgICAgICAgc3VjY2VzcyhmdW5jdGlvbiAoZGF0YSwgc3RhdHVzLCBoZWFkZXJzLCBjb25maWcpIHtcbiAgICAgICAgICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgICAgICAgJHNjb3BlLmVudGl0eSA9IGRhdGE7XG4gICAgICAgICAgICAgICAgICBlbnJpY2hEZXBsb3ltZW50Q29uZmlnKGRhdGEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAkc2NvcGUuZmV0Y2hlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgQ29yZS4kYXBwbHkoJHNjb3BlKTtcbiAgICAgICAgICAgICAgfSkuXG4gICAgICAgICAgICAgIGVycm9yKGZ1bmN0aW9uIChkYXRhLCBzdGF0dXMsIGhlYWRlcnMsIGNvbmZpZykge1xuICAgICAgICAgICAgICAgIGxvZy53YXJuKFwiRmFpbGVkIHRvIGxvYWQgXCIgKyB1cmwgKyBcIiBcIiArIGRhdGEgKyBcIiBcIiArIHN0YXR1cyk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAkc2NvcGUuZmV0Y2hlZCA9IHRydWU7XG4gICAgICAgICAgICBDb3JlLiRhcHBseSgkc2NvcGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfV0pO1xufVxuIiwiLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4uLy4uL2luY2x1ZGVzLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cImt1YmVybmV0ZXNQbHVnaW4udHNcIi8+XG5cbm1vZHVsZSBLdWJlcm5ldGVzIHtcblxuICBleHBvcnQgdmFyIERlcGxveW1lbnRDb25maWdzQ29udHJvbGxlciA9IGNvbnRyb2xsZXIoXCJEZXBsb3ltZW50Q29uZmlnc0NvbnRyb2xsZXJcIiwgW1wiJHNjb3BlXCIsIFwiS3ViZXJuZXRlc01vZGVsXCIsIFwiS3ViZXJuZXRlc0J1aWxkc1wiLCBcIkt1YmVybmV0ZXNTdGF0ZVwiLCBcIiRkaWFsb2dcIiwgXCIkd2luZG93XCIsIFwiJHRlbXBsYXRlQ2FjaGVcIiwgXCIkcm91dGVQYXJhbXNcIiwgXCIkbG9jYXRpb25cIiwgXCJsb2NhbFN0b3JhZ2VcIiwgXCIkaHR0cFwiLCBcIiR0aW1lb3V0XCIsIFwiS3ViZXJuZXRlc0FwaVVSTFwiLFxuICAgICgkc2NvcGUsIEt1YmVybmV0ZXNNb2RlbDpLdWJlcm5ldGVzLkt1YmVybmV0ZXNNb2RlbFNlcnZpY2UsIEt1YmVybmV0ZXNCdWlsZHMsIEt1YmVybmV0ZXNTdGF0ZSwgJGRpYWxvZywgJHdpbmRvdywgJHRlbXBsYXRlQ2FjaGUsICRyb3V0ZVBhcmFtcywgJGxvY2F0aW9uOm5nLklMb2NhdGlvblNlcnZpY2UsIGxvY2FsU3RvcmFnZSwgJGh0dHAsICR0aW1lb3V0LCBLdWJlcm5ldGVzQXBpVVJMKSA9PiB7XG5cbiAgICAgICRzY29wZS5rdWJlcm5ldGVzID0gS3ViZXJuZXRlc1N0YXRlO1xuICAgICAgJHNjb3BlLm1vZGVsID0gS3ViZXJuZXRlc01vZGVsO1xuICAgICAgJHNjb3BlLkt1YmVybmV0ZXNCdWlsZHMgPSBLdWJlcm5ldGVzQnVpbGRzO1xuICAgICAgJHNjb3BlLiRvbigna3ViZXJuZXRlc01vZGVsVXBkYXRlZCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgQ29yZS4kYXBwbHkoJHNjb3BlKTtcbiAgICAgIH0pO1xuICAgICAgJHNjb3BlLmxhYmVsQ2xhc3MgPSBjb250YWluZXJMYWJlbENsYXNzO1xuXG4gICAgICAkc2NvcGUudGFibGVDb25maWcgPSB7XG4gICAgICAgIGRhdGE6ICdkZXBsb3ltZW50Q29uZmlncycsXG4gICAgICAgIHNob3dTZWxlY3Rpb25DaGVja2JveDogdHJ1ZSxcbiAgICAgICAgZW5hYmxlUm93Q2xpY2tTZWxlY3Rpb246IGZhbHNlLFxuICAgICAgICBtdWx0aVNlbGVjdDogdHJ1ZSxcbiAgICAgICAgc2VsZWN0ZWRJdGVtczogW10sXG4gICAgICAgIGZpbHRlck9wdGlvbnM6IHtcbiAgICAgICAgICBmaWx0ZXJUZXh0OiAkbG9jYXRpb24uc2VhcmNoKClbXCJxXCJdIHx8ICcnXG4gICAgICAgIH0sXG4gICAgICAgIGNvbHVtbkRlZnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBmaWVsZDogJ21ldGFkYXRhLm5hbWUnLFxuICAgICAgICAgICAgZGlzcGxheU5hbWU6ICdOYW1lJyxcbiAgICAgICAgICAgIGNlbGxUZW1wbGF0ZTogJHRlbXBsYXRlQ2FjaGUuZ2V0KFwiZGVwbG95bWVudENvbmZpZ0xpbmtUZW1wbGF0ZS5odG1sXCIpXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBmaWVsZDogJ21ldGFkYXRhLm5hbWVzcGFjZScsXG4gICAgICAgICAgICBkaXNwbGF5TmFtZTogJ05hbWVzcGFjZSdcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGZpZWxkOiAnJGltYWdlQ2hhbmdlUGFyYW1zLmF1dG9tYXRpYycsXG4gICAgICAgICAgICBkaXNwbGF5TmFtZTogJ0F1dG9tYXRpYydcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGZpZWxkOiAnJGltYWdlQ2hhbmdlUGFyYW1zLiRjb250YWluZXJOYW1lcycsXG4gICAgICAgICAgICBkaXNwbGF5TmFtZTogJ0NvbnRhaW5lciBOYW1lcydcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGZpZWxkOiAnJGltYWdlQ2hhbmdlUGFyYW1zLmZyb20ubmFtZScsXG4gICAgICAgICAgICBkaXNwbGF5TmFtZTogJ0Zyb20gaW1hZ2UnXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBmaWVsZDogJyRpbWFnZUNoYW5nZVBhcmFtcy50YWcnLFxuICAgICAgICAgICAgZGlzcGxheU5hbWU6ICdUYWcnXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBmaWVsZDogJ3RlbXBsYXRlLmNvbnRyb2xsZXJUZW1wbGF0ZS5wb2RUZW1wbGF0ZS50YWdzJyxcbiAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAnTGFiZWxzJyxcbiAgICAgICAgICAgIGNlbGxUZW1wbGF0ZTogJHRlbXBsYXRlQ2FjaGUuZ2V0KFwiZGVwbG95bWVudENvbmZpZ0xhYmVsVGVtcGxhdGUuaHRtbFwiKVxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfTtcblxuICAgICAgS3ViZXJuZXRlcy5pbml0U2hhcmVkKCRzY29wZSwgJGxvY2F0aW9uLCAkaHR0cCwgJHRpbWVvdXQsICRyb3V0ZVBhcmFtcywgS3ViZXJuZXRlc01vZGVsLCBLdWJlcm5ldGVzU3RhdGUsIEt1YmVybmV0ZXNBcGlVUkwpO1xuXG4gICAgICAkc2NvcGUuZGVsZXRlUHJvbXB0ID0gKHNlbGVjdGVkKSA9PiB7XG4gICAgICAgIFVJLm11bHRpSXRlbUNvbmZpcm1BY3Rpb25EaWFsb2coPFVJLk11bHRpSXRlbUNvbmZpcm1BY3Rpb25PcHRpb25zPntcbiAgICAgICAgICBjb2xsZWN0aW9uOiBzZWxlY3RlZCxcbiAgICAgICAgICBpbmRleDogJyRuYW1lJyxcbiAgICAgICAgICBvbkNsb3NlOiAocmVzdWx0OmJvb2xlYW4pID0+IHtcbiAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICAgICAgZnVuY3Rpb24gZGVsZXRlU2VsZWN0ZWQoc2VsZWN0ZWQsIG5leHQpIHtcbiAgICAgICAgICAgICAgICBpZiAobmV4dCkge1xuICAgICAgICAgICAgICAgICAgZGVsZXRlRW50aXR5KG5leHQsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlU2VsZWN0ZWQoc2VsZWN0ZWQsIHNlbGVjdGVkLnNoaWZ0KCkpO1xuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIHVwZGF0ZURhdGEoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBkZWxldGVTZWxlY3RlZChzZWxlY3RlZCwgc2VsZWN0ZWQuc2hpZnQoKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICB0aXRsZTogJ0RlbGV0ZSBEZXBsb3ltZW50PycsXG4gICAgICAgICAgYWN0aW9uOiAnVGhlIGZvbGxvd2luZyBEZXBsb3ltZW50cyB3aWxsIGJlIGRlbGV0ZWQ6JyxcbiAgICAgICAgICBva1RleHQ6ICdEZWxldGUnLFxuICAgICAgICAgIG9rQ2xhc3M6ICdidG4tZGFuZ2VyJyxcbiAgICAgICAgICBjdXN0b206IFwiVGhpcyBvcGVyYXRpb24gaXMgcGVybWFuZW50IG9uY2UgY29tcGxldGVkIVwiLFxuICAgICAgICAgIGN1c3RvbUNsYXNzOiBcImFsZXJ0IGFsZXJ0LXdhcm5pbmdcIlxuICAgICAgICB9KS5vcGVuKCk7XG4gICAgICB9O1xuXG4gICAgICBmdW5jdGlvbiBkZWxldGVFbnRpdHkoc2VsZWN0aW9uLCBuZXh0Q2FsbGJhY2spIHtcbiAgICAgICAgdmFyIG5hbWUgPSAoc2VsZWN0aW9uIHx8IHt9KS4kbmFtZTtcbiAgICAgICAgaWYgKG5hbWUpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhcIkFib3V0IHRvIGRlbGV0ZSBkZXBsb3ltZW50IGNvbmZpZzogXCIgKyBuYW1lKTtcbiAgICAgICAgICB2YXIgdXJsID0gZGVwbG95bWVudENvbmZpZ1Jlc3RVcmwobmFtZSk7XG4gICAgICAgICAgJGh0dHAuZGVsZXRlKHVybCkuXG4gICAgICAgICAgICBzdWNjZXNzKGZ1bmN0aW9uIChkYXRhLCBzdGF0dXMsIGhlYWRlcnMsIGNvbmZpZykge1xuICAgICAgICAgICAgICBuZXh0Q2FsbGJhY2soKTtcbiAgICAgICAgICAgIH0pLlxuICAgICAgICAgICAgZXJyb3IoZnVuY3Rpb24gKGRhdGEsIHN0YXR1cywgaGVhZGVycywgY29uZmlnKSB7XG4gICAgICAgICAgICAgIGxvZy53YXJuKFwiRmFpbGVkIHRvIGRlbGV0ZSBkZXBsb3ltZW50IGNvbmZpZyBvbiBcIiArIHVybCArIFwiIFwiICsgZGF0YSArIFwiIFwiICsgc3RhdHVzKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnNvbGUubG9nKFwid2FybmluZzogbm8gbmFtZSBmb3Igc2VsZWN0aW9uOiBcIiArIGFuZ3VsYXIudG9Kc29uKHNlbGVjdGlvbikpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGZ1bmN0aW9uIHVwZGF0ZURhdGEoKSB7XG4gICAgICAgIHZhciB1cmwgPSBkZXBsb3ltZW50Q29uZmlnc1Jlc3RVUkwoKTtcbiAgICAgICAgJGh0dHAuZ2V0KHVybCkuXG4gICAgICAgICAgc3VjY2VzcyhmdW5jdGlvbiAoZGF0YSwgc3RhdHVzLCBoZWFkZXJzLCBjb25maWcpIHtcbiAgICAgICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICAgIC8vY29uc29sZS5sb2coXCJnb3QgZGF0YSBcIiArIGFuZ3VsYXIudG9Kc29uKGRhdGEsIHRydWUpKTtcbiAgICAgICAgICAgICAgJHNjb3BlLmRlcGxveW1lbnRDb25maWdzID0gZW5yaWNoRGVwbG95bWVudENvbmZpZ3MoZGF0YS5pdGVtcyk7XG4gICAgICAgICAgICAgICRzY29wZS5mZXRjaGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgQ29yZS4kYXBwbHkoJHNjb3BlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KS5cbiAgICAgICAgICBlcnJvcihmdW5jdGlvbiAoZGF0YSwgc3RhdHVzLCBoZWFkZXJzLCBjb25maWcpIHtcbiAgICAgICAgICAgIGxvZy53YXJuKFwiRmFpbGVkIHRvIGxvYWQgXCIgKyB1cmwgKyBcIiBcIiArIGRhdGEgKyBcIiBcIiArIHN0YXR1cyk7XG4gICAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHVwZGF0ZURhdGEoKTtcbiAgICB9XSk7XG59XG4iLCIvLy8gPHJlZmVyZW5jZSBwYXRoPVwiLi4vLi4vaW5jbHVkZXMudHNcIi8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwia3ViZXJuZXRlc0hlbHBlcnMudHNcIi8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwia3ViZXJuZXRlc1BsdWdpbi50c1wiLz5cblxubW9kdWxlIEt1YmVybmV0ZXMge1xuXG4gIGV4cG9ydCB2YXIgRXZlbnRzQ29udHJvbGxlciA9IGNvbnRyb2xsZXIoXCJFdmVudHNDb250cm9sbGVyXCIsXG4gICAgW1wiJHNjb3BlXCIsIFwiS3ViZXJuZXRlc01vZGVsXCIsIFwiS3ViZXJuZXRlc1NlcnZpY2VzXCIsIFwiS3ViZXJuZXRlc1BvZHNcIiwgXCJLdWJlcm5ldGVzU3RhdGVcIiwgXCIkdGVtcGxhdGVDYWNoZVwiLCBcIiRsb2NhdGlvblwiLCBcIiRyb3V0ZVBhcmFtc1wiLCBcIiRodHRwXCIsIFwiJHRpbWVvdXRcIiwgXCJLdWJlcm5ldGVzQXBpVVJMXCIsXG4gICAgICAoJHNjb3BlLCBLdWJlcm5ldGVzTW9kZWw6IEt1YmVybmV0ZXMuS3ViZXJuZXRlc01vZGVsU2VydmljZSwgS3ViZXJuZXRlc1NlcnZpY2VzOm5nLnJlc291cmNlLklSZXNvdXJjZUNsYXNzLCBLdWJlcm5ldGVzUG9kczpuZy5yZXNvdXJjZS5JUmVzb3VyY2VDbGFzcywgS3ViZXJuZXRlc1N0YXRlLFxuICAgICAgICR0ZW1wbGF0ZUNhY2hlOm5nLklUZW1wbGF0ZUNhY2hlU2VydmljZSwgJGxvY2F0aW9uOm5nLklMb2NhdGlvblNlcnZpY2UsICRyb3V0ZVBhcmFtcywgJGh0dHAsICR0aW1lb3V0LCBLdWJlcm5ldGVzQXBpVVJMKSA9PiB7XG5cbiAgICAkc2NvcGUua3ViZXJuZXRlcyA9IEt1YmVybmV0ZXNTdGF0ZTtcbiAgICAkc2NvcGUubW9kZWwgPSBLdWJlcm5ldGVzTW9kZWw7XG5cbiAgICBDb250cm9sbGVySGVscGVycy5iaW5kTW9kZWxUb1NlYXJjaFBhcmFtKCRzY29wZSwgJGxvY2F0aW9uLCAnbW9kZScsICdtb2RlJywgJ2xpc3QnKTtcblxuICAgICRzY29wZS50YWJsZUNvbmZpZyA9IHtcbiAgICAgIGRhdGE6ICdtb2RlbC5ldmVudHMnLFxuICAgICAgc2hvd1NlbGVjdGlvbkNoZWNrYm94OiB0cnVlLFxuICAgICAgZW5hYmxlUm93Q2xpY2tTZWxlY3Rpb246IGZhbHNlLFxuICAgICAgbXVsdGlTZWxlY3Q6IHRydWUsXG4gICAgICBzZWxlY3RlZEl0ZW1zOiBbXSxcbiAgICAgIGZpbHRlck9wdGlvbnM6IHtcbiAgICAgICAgZmlsdGVyVGV4dDogJGxvY2F0aW9uLnNlYXJjaCgpW1wicVwiXSB8fCAnJ1xuICAgICAgfSxcbiAgICAgIGNvbHVtbkRlZnM6IFtcbiAgICAgICAgeyBmaWVsZDogJyRmaXJzdFRpbWVzdGFtcCcsXG4gICAgICAgICAgZGlzcGxheU5hbWU6ICdGaXJzdCBTZWVuJyxcbiAgICAgICAgICBjZWxsVGVtcGxhdGU6ICR0ZW1wbGF0ZUNhY2hlLmdldChcImZpcnN0VGltZXN0YW1wVGVtcGxhdGUuaHRtbFwiKVxuICAgICAgICB9LFxuICAgICAgICB7IGZpZWxkOiAnJGxhc3RUaW1lc3RhbXAnLFxuICAgICAgICAgIGRpc3BsYXlOYW1lOiAnTGFzdCBTZWVuJyxcbiAgICAgICAgICBjZWxsVGVtcGxhdGU6ICR0ZW1wbGF0ZUNhY2hlLmdldChcImxhc3RUaW1lc3RhbXBUZW1wbGF0ZS5odG1sXCIpXG4gICAgICAgIH0sXG4gICAgICAgIHsgZmllbGQ6ICdjb3VudCcsXG4gICAgICAgICAgZGlzcGxheU5hbWU6ICdDb3VudCdcbiAgICAgICAgfSxcbiAgICAgICAgeyBmaWVsZDogJ2ludm9sdmVkT2JqZWN0Lm5hbWUnLFxuICAgICAgICAgIGRpc3BsYXlOYW1lOiAnTmFtZScsXG4gICAgICAgICAgY2VsbFRlbXBsYXRlOiAkdGVtcGxhdGVDYWNoZS5nZXQoXCJldmVudE5hbWVUZW1wbGF0ZS5odG1sXCIpXG4gICAgICAgIH0sXG4gICAgICAgIHsgZmllbGQ6ICdpbnZvbHZlZE9iamVjdC5raW5kJyxcbiAgICAgICAgICBkaXNwbGF5TmFtZTogJ0tpbmQnLFxuICAgICAgICAgIGNlbGxUZW1wbGF0ZTogJHRlbXBsYXRlQ2FjaGUuZ2V0KFwiZXZlbnRLaW5kVGVtcGxhdGUuaHRtbFwiKVxuICAgICAgICB9LFxuICAgICAgICB7IGZpZWxkOiAnaW52b2x2ZWRPYmplY3QuZmllbGRQYXRoJyxcbiAgICAgICAgICBkaXNwbGF5TmFtZTogJ1N1YmplY3QnXG4gICAgICAgIH0sXG4gICAgICAgIHsgZmllbGQ6ICdyZWFzb24nLFxuICAgICAgICAgIGRpc3BsYXlOYW1lOiAnUmVhc29uJ1xuICAgICAgICB9LFxuICAgICAgICB7IGZpZWxkOiAnc291cmNlJyxcbiAgICAgICAgICBkaXNwbGF5TmFtZTogJ1NvdXJjZScsXG4gICAgICAgICAgY2VsbFRlbXBsYXRlOiAkdGVtcGxhdGVDYWNoZS5nZXQoXCJldmVudFNvdXJjZVRlbXBsYXRlLmh0bWxcIilcbiAgICAgICAgfSxcbiAgICAgICAgeyBmaWVsZDogJ21lc3NhZ2UnLFxuICAgICAgICAgIGRpc3BsYXlOYW1lOiAnTWVzc2FnZSdcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH07XG5cbiAgICBLdWJlcm5ldGVzLmluaXRTaGFyZWQoJHNjb3BlLCAkbG9jYXRpb24sICRodHRwLCAkdGltZW91dCwgJHJvdXRlUGFyYW1zLCBLdWJlcm5ldGVzTW9kZWwsIEt1YmVybmV0ZXNTdGF0ZSwgS3ViZXJuZXRlc0FwaVVSTCk7XG4gIH1dKTtcbn1cbiIsIi8vLyA8cmVmZXJlbmNlIHBhdGg9XCIuLi8uLi9pbmNsdWRlcy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJrdWJlcm5ldGVzUGx1Z2luLnRzXCIvPlxuXG5tb2R1bGUgS3ViZXJuZXRlcyB7XG5cbiAgZXhwb3J0IHZhciBGQUJSSUM4X1BST0pFQ1RfSlNPTiA9IFwiZmFicmljOFByb2plY3RKc29uXCI7XG5cbiAgZnVuY3Rpb24gYnlJZCh0aGluZykge1xuICAgIHJldHVybiB0aGluZy5pZDtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZUtleShuYW1lc3BhY2UsIGlkLCBraW5kKSB7XG4gICAgcmV0dXJuIChuYW1lc3BhY2UgfHwgXCJcIikgKyBcIi1cIiArIChraW5kIHx8ICd1bmRlZmluZWQnKS50b0xvd2VyQ2FzZSgpICsgJy0nICsgKGlkIHx8ICd1bmRlZmluZWQnKS5yZXBsYWNlKC9cXC4vZywgJy0nKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHBvcHVsYXRlS2V5KGl0ZW0pIHtcbiAgICB2YXIgcmVzdWx0ID0gaXRlbTtcbiAgICByZXN1bHRbJ19rZXknXSA9IGNyZWF0ZUtleShnZXROYW1lc3BhY2UoaXRlbSksIGdldE5hbWUoaXRlbSksIGdldEtpbmQoaXRlbSkpO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBmdW5jdGlvbiBwb3B1bGF0ZUtleXMoaXRlbXM6QXJyYXk8YW55Pikge1xuICAgIHZhciByZXN1bHQgPSBbXTtcbiAgICBhbmd1bGFyLmZvckVhY2goaXRlbXMsIChpdGVtKSA9PiB7XG4gICAgICByZXN1bHQucHVzaChwb3B1bGF0ZUtleShpdGVtKSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHNlbGVjdFBvZHMocG9kcywgbmFtZXNwYWNlLCBsYWJlbHMpIHtcbiAgICByZXR1cm4gcG9kcy5maWx0ZXIoKHBvZCkgPT4ge1xuICAgICAgcmV0dXJuIGdldE5hbWVzcGFjZShwb2QpID09PSBuYW1lc3BhY2UgJiYgc2VsZWN0b3JNYXRjaGVzKGxhYmVscywgZ2V0TGFiZWxzKHBvZCkpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBvYmplY3Qgd2hpY2gga2VlcHMgdHJhY2sgb2YgYWxsIHRoZSBwb2RzLCByZXBsaWNhdGlvbiBjb250cm9sbGVycywgc2VydmljZXMgYW5kIHRoZWlyIGFzc29jaWF0aW9uc1xuICAgKi9cbiAgZXhwb3J0IGNsYXNzIEt1YmVybmV0ZXNNb2RlbFNlcnZpY2Uge1xuICAgIHB1YmxpYyBrdWJlcm5ldGVzID0gPEt1YmVybmV0ZXNTdGF0ZT4gbnVsbDtcbiAgICBwdWJsaWMgYXBwcyA9IFtdO1xuICAgIHB1YmxpYyBzZXJ2aWNlcyA9IFtdO1xuXG4gICAgcHVibGljIHJlcGxpY2F0aW9uY29udHJvbGxlcnMgPSBbXTtcbiAgICBwdWJsaWMgZ2V0IHJlcGxpY2F0aW9uQ29udHJvbGxlcnMoKTpBcnJheTxhbnk+IHtcbiAgICAgIHJldHVybiB0aGlzLnJlcGxpY2F0aW9uY29udHJvbGxlcnM7XG4gICAgfVxuICAgIHB1YmxpYyBzZXQgcmVwbGljYXRpb25Db250cm9sbGVycyhyZXBsaWNhdGlvbkNvbnRyb2xsZXJzOkFycmF5PGFueT4pIHtcbiAgICAgIHRoaXMucmVwbGljYXRpb25jb250cm9sbGVycyA9IHJlcGxpY2F0aW9uQ29udHJvbGxlcnM7XG4gICAgfVxuICAgIHB1YmxpYyBwb2RzID0gW107XG4gICAgcHVibGljIGhvc3RzID0gW107XG4gICAgcHVibGljIGdldCBuYW1lc3BhY2VzKCk6QXJyYXk8c3RyaW5nPiB7XG4gICAgICByZXR1cm4gdGhpcy5rdWJlcm5ldGVzLm5hbWVzcGFjZXM7XG4gICAgfVxuICAgIC8vcHVibGljIG5hbWVzcGFjZXMgPSBbXTtcbiAgICBwdWJsaWMgcm91dGVzID0gW107XG4gICAgcHVibGljIHRlbXBsYXRlcyA9IFtdO1xuICAgIHB1YmxpYyByZWRyYXcgPSBmYWxzZTtcbiAgICBwdWJsaWMgcmVzb3VyY2VWZXJzaW9ucyA9IHt9O1xuXG4gICAgLy8gdmFyaW91cyB2aWV3cyBvbiB0aGUgZGF0YVxuICAgIHB1YmxpYyBwb2RzQnlIb3N0ID0ge307XG4gICAgcHVibGljIHNlcnZpY2VzQnlLZXkgPSB7fTtcbiAgICBwdWJsaWMgcmVwbGljYXRpb25Db250cm9sbGVyc0J5S2V5ID0ge307XG4gICAgcHVibGljIHBvZHNCeUtleSA9IHt9O1xuXG4gICAgcHVibGljIGFwcEluZm9zID0gW107XG4gICAgcHVibGljIGFwcFZpZXdzID0gW107XG4gICAgcHVibGljIGFwcEZvbGRlcnMgPSBbXTtcblxuICAgIHB1YmxpYyBmZXRjaGVkID0gZmFsc2U7XG4gICAgcHVibGljIHNob3dSdW5CdXR0b24gPSBmYWxzZTtcblxuICAgIHB1YmxpYyBidWlsZGNvbmZpZ3MgPSBbXTtcbiAgICBwdWJsaWMgZXZlbnRzID0gW107XG4gICAgcHVibGljIHdvcmtzcGFjZXMgPSBbXTtcbiAgICBwdWJsaWMgcHJvamVjdHMgPSBbXTtcbiAgICBwdWJsaWMgcHJvamVjdCA9IG51bGw7XG5cbiAgICBwdWJsaWMgZ2V0IHNlcnZpY2VBcHBzKCk6QXJyYXk8YW55PiB7XG4gICAgICByZXR1cm4gXy5maWx0ZXIodGhpcy5zZXJ2aWNlcywgKHMpID0+IHtcbiAgICAgICAgcmV0dXJuIHMuJGhvc3QgJiYgcy4kc2VydmljZVVybCAmJiBzLiRwb2RDb3VudFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljICRrZWVwUG9sbGluZygpIHtcbiAgICAgIHJldHVybiBrZWVwUG9sbGluZ01vZGVsO1xuICAgIH1cblxuICAgIHB1YmxpYyBvclJlZHJhdyhmbGFnKSB7XG4gICAgICB0aGlzLnJlZHJhdyA9IHRoaXMucmVkcmF3IHx8IGZsYWc7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFNlcnZpY2UobmFtZXNwYWNlLCBpZCkge1xuICAgICAgcmV0dXJuIHRoaXMuc2VydmljZXNCeUtleVtjcmVhdGVLZXkobmFtZXNwYWNlLCBpZCwgJ3NlcnZpY2UnKV07XG4gICAgfVxuXG4gICAgcHVibGljIGdldFJlcGxpY2F0aW9uQ29udHJvbGxlcihuYW1lc3BhY2UsIGlkKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZXBsaWNhdGlvbkNvbnRyb2xsZXJzQnlLZXlbY3JlYXRlS2V5KG5hbWVzcGFjZSwgaWQsICdyZXBsaWNhdGlvbkNvbnRyb2xsZXInKV07XG4gICAgfVxuXG4gICAgcHVibGljIGdldFBvZChuYW1lc3BhY2UsIGlkKSB7XG4gICAgICByZXR1cm4gdGhpcy5wb2RzQnlLZXlbY3JlYXRlS2V5KG5hbWVzcGFjZSwgaWQsICdwb2QnKV07XG4gICAgfVxuXG4gICAgcHVibGljIHBvZHNGb3JOYW1lc3BhY2UobmFtZXNwYWNlID0gdGhpcy5jdXJyZW50TmFtZXNwYWNlKCkpIHtcbiAgICAgIHJldHVybiBfLmZpbHRlcih0aGlzLnBvZHMsIHsgbmFtZXNwYWNlOiBuYW1lc3BhY2UgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEJ1aWxkQ29uZmlnKG5hbWUpIHtcbiAgICAgIHJldHVybiBfLmZpbmQodGhpcy5idWlsZGNvbmZpZ3MsIHsgJG5hbWU6IG5hbWUgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFByb2plY3QobmFtZSwgbnMgPSB0aGlzLmN1cnJlbnROYW1lc3BhY2UoKSkge1xuICAgICAgdmFyIGJ1aWxkQ29uZmlnID0gdGhpcy5wcm9qZWN0O1xuICAgICAgaWYgKCFidWlsZENvbmZpZykge1xuICAgICAgICB2YXIgdGV4dCA9IGxvY2FsU3RvcmFnZVtGQUJSSUM4X1BST0pFQ1RfSlNPTl07XG4gICAgICAgIGlmICh0ZXh0KSB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGJ1aWxkQ29uZmlnID0gYW5ndWxhci5mcm9tSnNvbih0ZXh0KTtcbiAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICBsb2cud2FybihcIkNvdWxkIG5vdCBwYXJzZSBqc29uIGZvciBcIiArIEZBQlJJQzhfUFJPSkVDVF9KU09OICsgXCIuIFdhczogXCIgKyB0ZXh0ICsgXCIuIFwiICsgZSwgZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoYnVpbGRDb25maWcgJiYgbnMgIT0gZ2V0TmFtZXNwYWNlKGJ1aWxkQ29uZmlnKSAmJiBuYW1lICE9IGJ1aWxkQ29uZmlnLiRuYW1lKSB7XG4gICAgICAgIGJ1aWxkQ29uZmlnID0gdGhpcy5nZXRCdWlsZENvbmZpZyhuYW1lKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBidWlsZENvbmZpZztcbiAgICB9XG5cblxuICAgIHB1YmxpYyBzZXRQcm9qZWN0KGJ1aWxkQ29uZmlnKSB7XG4gICAgICB0aGlzLnByb2plY3QgPSBidWlsZENvbmZpZztcbiAgICAgIGlmIChidWlsZENvbmZpZykge1xuICAgICAgICAvLyBsZXRzIHN0b3JlIGluIGxvY2FsIHN0b3JhZ2VcbiAgICAgICAgdmFyIGxvY2FsU3RvcmFnZSA9IGluamVjdChcImxvY2FsU3RvcmFnZVwiKTtcbiAgICAgICAgaWYgKGxvY2FsU3RvcmFnZSkge1xuICAgICAgICAgIGxvY2FsU3RvcmFnZVtGQUJSSUM4X1BST0pFQ1RfSlNPTl0gPSBhbmd1bGFyLnRvSnNvbihidWlsZENvbmZpZyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IHNlbGVjdGVkIG5hbWVzcGFjZSBvciB0aGUgZGVmYXVsdCBuYW1lc3BhY2VcbiAgICAgKi9cbiAgICBwdWJsaWMgY3VycmVudE5hbWVzcGFjZSgpIHtcbiAgICAgIHZhciBhbnN3ZXIgPSBudWxsO1xuICAgICAgaWYgKHRoaXMua3ViZXJuZXRlcykge1xuICAgICAgICBhbnN3ZXIgPSB0aGlzLmt1YmVybmV0ZXMuc2VsZWN0ZWROYW1lc3BhY2U7XG4gICAgICB9XG4gICAgICByZXR1cm4gYW5zd2VyIHx8IGRlZmF1bHROYW1lc3BhY2U7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHVwZGF0ZUljb25VcmxBbmRBcHBJbmZvKGVudGl0eSwgbmFtZUZpZWxkOiBzdHJpbmcpIHtcbiAgICAgIHZhciBhbnN3ZXIgPSBudWxsO1xuICAgICAgdmFyIGlkID0gZ2V0TmFtZShlbnRpdHkpO1xuICAgICAgZW50aXR5LiRpY29uVXJsID0gQ29yZS5wYXRoR2V0KGVudGl0eSwgWydtZXRhZGF0YScsICdhbm5vdGF0aW9ucycsICdmYWJyaWM4LicgKyBpZCArICcvaWNvblVybCddKTtcbiAgICAgIGVudGl0eS4kaW5mbyA9IENvcmUucGF0aEdldChlbnRpdHksIFsnbWV0YWRhdGEnLCAnYW5ub3RhdGlvbnMnLCAnZmFicmljOC4nICsgaWQgKyAnL3N1bW1hcnknXSk7XG4gICAgICBpZiAoZW50aXR5LiRpY29uVXJsKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGlmIChpZCAmJiBuYW1lRmllbGQpIHtcbiAgICAgICAgKHRoaXMudGVtcGxhdGVzIHx8IFtdKS5mb3JFYWNoKCh0ZW1wbGF0ZSkgPT4ge1xuICAgICAgICAgIHZhciBtZXRhZGF0YSA9IHRlbXBsYXRlLm1ldGFkYXRhO1xuICAgICAgICAgIGlmIChtZXRhZGF0YSkge1xuICAgICAgICAgICAgdmFyIGFubm90YXRpb25zID0gbWV0YWRhdGEuYW5ub3RhdGlvbnMgfHwge307XG4gICAgICAgICAgICB2YXIgaWNvblVybCA9IGFubm90YXRpb25zW1wiZmFicmljOC5cIiArIGlkICsgXCIvaWNvblVybFwiXSB8fCBhbm5vdGF0aW9uc1tcImZhYnJpYzgvaWNvblVybFwiXTtcbiAgICAgICAgICAgIGlmIChpY29uVXJsKSB7XG4gICAgICAgICAgICAgICh0ZW1wbGF0ZS5vYmplY3RzIHx8IFtdKS5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgdmFyIGVudGl0eU5hbWUgPSBnZXROYW1lKGl0ZW0pO1xuICAgICAgICAgICAgICAgIGlmIChpZCA9PT0gZW50aXR5TmFtZSkge1xuICAgICAgICAgICAgICAgICAgZW50aXR5LiRpY29uVXJsID0gaWNvblVybDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgICh0aGlzLmFwcEluZm9zIHx8IFtdKS5mb3JFYWNoKChhcHBJbmZvKSA9PiB7XG4gICAgICAgICAgdmFyIGljb25QYXRoID0gYXBwSW5mby5pY29uUGF0aDtcbiAgICAgICAgICBpZiAoaWNvblBhdGggJiYgIWFuc3dlciAmJiBpY29uUGF0aCAhPT0gXCJudWxsXCIpIHtcbiAgICAgICAgICAgIHZhciBpY29uVXJsID0gZ2l0UGF0aFRvVXJsKGljb25QYXRoKTtcbiAgICAgICAgICAgIHZhciBpZHMgPSBDb3JlLnBhdGhHZXQoYXBwSW5mbywgW1wibmFtZXNcIiwgbmFtZUZpZWxkXSk7XG4gICAgICAgICAgICBhbmd1bGFyLmZvckVhY2goaWRzLCAoYXBwSWQpID0+IHtcbiAgICAgICAgICAgICAgaWYgKGFwcElkID09PSBpZCkge1xuICAgICAgICAgICAgICAgIGVudGl0eS4kaWNvblVybCA9IGljb25Vcmw7XG4gICAgICAgICAgICAgICAgZW50aXR5LmFwcFBhdGggPSBhcHBJbmZvLmFwcFBhdGg7XG4gICAgICAgICAgICAgICAgZW50aXR5LiRpbmZvID0gYXBwSW5mbztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGlmICghZW50aXR5LiRpY29uVXJsKSB7XG4gICAgICAgIGVudGl0eS4kaWNvblVybCA9IGRlZmF1bHRJY29uVXJsO1xuICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBtYXliZUluaXQoKSB7XG4gICAgICB0aGlzLmZldGNoZWQgPSB0cnVlO1xuICAgICAgdGhpcy5zZXJ2aWNlc0J5S2V5ID0ge307XG4gICAgICB0aGlzLnBvZHNCeUtleSA9IHt9O1xuICAgICAgdGhpcy5yZXBsaWNhdGlvbkNvbnRyb2xsZXJzQnlLZXkgPSB7fTtcblxuICAgICAgdGhpcy5wb2RzLmZvckVhY2goKHBvZCkgPT4ge1xuICAgICAgICBpZiAoIXBvZC5raW5kKSBwb2Qua2luZCA9IFwiUG9kXCI7XG4gICAgICAgIHRoaXMucG9kc0J5S2V5W3BvZC5fa2V5XSA9IHBvZDtcbiAgICAgICAgdmFyIGhvc3QgPSBnZXRIb3N0KHBvZCk7XG4gICAgICAgIHBvZC4kbGFiZWxzVGV4dCA9IEt1YmVybmV0ZXMubGFiZWxzVG9TdHJpbmcoZ2V0TGFiZWxzKHBvZCkpO1xuICAgICAgICBpZiAoaG9zdCkge1xuICAgICAgICAgIHBvZC4kbGFiZWxzVGV4dCArPSBsYWJlbEZpbHRlclRleHRTZXBhcmF0b3IgKyBcImhvc3Q9XCIgKyBob3N0O1xuICAgICAgICB9XG4gICAgICAgIHBvZC4kaWNvblVybCA9IGRlZmF1bHRJY29uVXJsO1xuICAgICAgICB0aGlzLmRpc2NvdmVyUG9kQ29ubmVjdGlvbnMocG9kKTtcbiAgICAgICAgcG9kLiRjb250YWluZXJQb3J0cyA9IFtdO1xuXG4gICAgICAgIHZhciBwb2RTdGF0dXMgPSBwb2Quc3RhdHVzIHx8IHt9O1xuICAgICAgICB2YXIgc3RhcnRUaW1lID0gcG9kU3RhdHVzLnN0YXJ0VGltZTtcbiAgICAgICAgcG9kLiRzdGFydFRpbWUgPSBudWxsO1xuICAgICAgICBpZiAoc3RhcnRUaW1lKSB7XG4gICAgICAgICAgcG9kLiRzdGFydFRpbWUgPSBuZXcgRGF0ZShzdGFydFRpbWUpO1xuICAgICAgICB9XG4gICAgICAgIHZhciBjcmVhdGVkVGltZSA9IGdldENyZWF0aW9uVGltZXN0YW1wKHBvZCk7XG4gICAgICAgIHBvZC4kY3JlYXRlZFRpbWUgPSBudWxsO1xuICAgICAgICBwb2QuJGFnZSA9IG51bGw7XG4gICAgICAgIGlmIChjcmVhdGVkVGltZSkge1xuICAgICAgICAgIHBvZC4kY3JlYXRlZFRpbWUgPSBuZXcgRGF0ZShjcmVhdGVkVGltZSk7XG4gICAgICAgICAgcG9kLiRhZ2UgPSBwb2QuJGNyZWF0ZWRUaW1lLnJlbGF0aXZlKCk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHJlYWR5ID0gaXNSZWFkeShwb2QpO1xuICAgICAgICBwb2QuJHJlYWR5ID0gcmVhZHk7XG4gICAgICAgIHBvZC4kc3RhdHVzQ3NzID0gc3RhdHVzVGV4dFRvQ3NzQ2xhc3MocG9kU3RhdHVzLnBoYXNlLCByZWFkeSk7XG5cbiAgICAgICAgdmFyIG1heFJlc3RhcnRDb3VudCA9IDA7XG4gICAgICAgIGFuZ3VsYXIuZm9yRWFjaChDb3JlLnBhdGhHZXQocG9kLCBbXCJzdGF0dXNcIiwgXCJjb250YWluZXJTdGF0dXNlc1wiXSksIChzdGF0dXMpID0+IHtcbiAgICAgICAgICB2YXIgcmVzdGFydENvdW50ID0gc3RhdHVzLnJlc3RhcnRDb3VudDtcbiAgICAgICAgICBpZiAocmVzdGFydENvdW50KSB7XG4gICAgICAgICAgICBpZiAocmVzdGFydENvdW50ID4gbWF4UmVzdGFydENvdW50KSB7XG4gICAgICAgICAgICAgIG1heFJlc3RhcnRDb3VudCA9IHJlc3RhcnRDb3VudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAobWF4UmVzdGFydENvdW50ICkge1xuICAgICAgICAgIHBvZC4kcmVzdGFydENvdW50ID0gbWF4UmVzdGFydENvdW50O1xuICAgICAgICB9XG4gICAgICAgIHZhciBpbWFnZU5hbWVzID0gXCJcIjtcbiAgICAgICAgYW5ndWxhci5mb3JFYWNoKENvcmUucGF0aEdldChwb2QsIFtcInNwZWNcIiwgXCJjb250YWluZXJzXCJdKSwgKGNvbnRhaW5lcikgPT4ge1xuICAgICAgICAgIHZhciBpbWFnZSA9IGNvbnRhaW5lci5pbWFnZTtcbiAgICAgICAgICBpZiAoaW1hZ2UpIHtcbiAgICAgICAgICAgIGlmICghaW1hZ2VOYW1lcykge1xuICAgICAgICAgICAgICBpbWFnZU5hbWVzID0gaW1hZ2U7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBpbWFnZU5hbWVzID0gaW1hZ2VOYW1lcyArIFwiIFwiICsgaW1hZ2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgaWR4ID0gaW1hZ2UubGFzdEluZGV4T2YoXCI6XCIpO1xuICAgICAgICAgICAgaWYgKGlkeCA+IDApIHtcbiAgICAgICAgICAgICAgaW1hZ2UgPSBpbWFnZS5zdWJzdHJpbmcoMCwgaWR4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciBwYXRocyA9IGltYWdlLnNwbGl0KFwiL1wiLCAzKTtcbiAgICAgICAgICAgIGlmIChwYXRocy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgdmFyIGFuc3dlciA9IG51bGw7XG4gICAgICAgICAgICAgIGlmIChwYXRocy5sZW5ndGggPT0gMykge1xuICAgICAgICAgICAgICAgIGFuc3dlciA9IHBhdGhzWzFdICsgXCIvXCIgKyBwYXRoc1syXTtcbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChwYXRocy5sZW5ndGggPT0gMikge1xuICAgICAgICAgICAgICAgIGFuc3dlciA9IHBhdGhzWzBdICsgXCIvXCIgKyBwYXRoc1sxXTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBhbnN3ZXIgPSBwYXRoc1swXSArIFwiL1wiICsgcGF0aHNbMV07XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgY29udGFpbmVyLiRpbWFnZUxpbmsgPSBVcmxIZWxwZXJzLmpvaW4oXCJodHRwczovL3JlZ2lzdHJ5Lmh1Yi5kb2NrZXIuY29tL3UvXCIsIGFuc3dlcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGFuZ3VsYXIuZm9yRWFjaChjb250YWluZXIucG9ydHMsIChwb3J0KSA9PiB7XG4gICAgICAgICAgICB2YXIgY29udGFpbmVyUG9ydCA9IHBvcnQuY29udGFpbmVyUG9ydDtcbiAgICAgICAgICAgIGlmIChjb250YWluZXJQb3J0KSB7XG4gICAgICAgICAgICAgIHBvZC4kY29udGFpbmVyUG9ydHMucHVzaChjb250YWluZXJQb3J0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHBvZC4kaW1hZ2VOYW1lcyA9IGltYWdlTmFtZXM7XG4gICAgICAgIHZhciBwb2RTdGF0dXMgPSBwb2RTdGF0dXM7XG4gICAgICAgIHZhciBwb2RTcGVjID0gKHBvZC5zcGVjIHx8IHt9KTtcbiAgICAgICAgcG9kLiRwb2RJUCA9IHBvZFN0YXR1cy5wb2RJUDtcbiAgICAgICAgcG9kLiRob3N0ID0gcG9kU3BlYy5ob3N0IHx8IHBvZFNwZWMubm9kZU5hbWUgfHwgcG9kU3RhdHVzLmhvc3RJUDtcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLnNlcnZpY2VzLmZvckVhY2goKHNlcnZpY2UpID0+IHtcbiAgICAgICAgaWYgKCFzZXJ2aWNlLmtpbmQpIHNlcnZpY2Uua2luZCA9IFwiU2VydmljZVwiO1xuICAgICAgICB0aGlzLnNlcnZpY2VzQnlLZXlbc2VydmljZS5fa2V5XSA9IHNlcnZpY2U7XG4gICAgICAgIHZhciBzZWxlY3RvciA9IGdldFNlbGVjdG9yKHNlcnZpY2UpO1xuICAgICAgICBzZXJ2aWNlLiRwb2RzID0gW107XG4gICAgICAgIGlmICghc2VydmljZS4kcG9kQ291bnRlcnMpIHtcbiAgICAgICAgICBzZXJ2aWNlLiRwb2RDb3VudGVycyA9IHt9O1xuICAgICAgICB9XG4gICAgICAgIF8uYXNzaWduKHNlcnZpY2UuJHBvZENvdW50ZXJzLCBzZWxlY3RvciA/IGNyZWF0ZVBvZENvdW50ZXJzKHNlbGVjdG9yLCB0aGlzLnBvZHMsIHNlcnZpY2UuJHBvZHMpIDoge30pO1xuICAgICAgICBzZXJ2aWNlLiRwb2RDb3VudCA9IHNlcnZpY2UuJHBvZHMubGVuZ3RoO1xuXG4gICAgICAgIHZhciBzZWxlY3RlZFBvZHMgPSBzZXJ2aWNlLiRwb2RzO1xuICAgICAgICBzZXJ2aWNlLmNvbm5lY3RUbyA9IHNlbGVjdGVkUG9kcy5tYXAoKHBvZCkgPT4ge1xuICAgICAgICAgIHJldHVybiBwb2QuX2tleTtcbiAgICAgICAgfSkuam9pbignLCcpO1xuICAgICAgICBzZXJ2aWNlLiRsYWJlbHNUZXh0ID0gS3ViZXJuZXRlcy5sYWJlbHNUb1N0cmluZyhnZXRMYWJlbHMoc2VydmljZSkpO1xuICAgICAgICB0aGlzLnVwZGF0ZUljb25VcmxBbmRBcHBJbmZvKHNlcnZpY2UsIFwic2VydmljZU5hbWVzXCIpO1xuICAgICAgICB2YXIgc3BlYyA9IHNlcnZpY2Uuc3BlYyB8fCB7fTtcbiAgICAgICAgc2VydmljZS4kcG9ydGFsSVAgPSBzcGVjLnBvcnRhbElQO1xuICAgICAgICBzZXJ2aWNlLiRzZWxlY3RvclRleHQgPSBLdWJlcm5ldGVzLmxhYmVsc1RvU3RyaW5nKHNwZWMuc2VsZWN0b3IpO1xuICAgICAgICB2YXIgcG9ydHMgPSBfLm1hcChzcGVjLnBvcnRzIHx8IFtdLCBcInBvcnRcIik7XG4gICAgICAgIHNlcnZpY2UuJHBvcnRzID0gcG9ydHM7XG4gICAgICAgIHNlcnZpY2UuJHBvcnRzVGV4dCA9IHBvcnRzLmpvaW4oXCIsIFwiKTtcbiAgICAgICAgdmFyIGljb25VcmwgPSBzZXJ2aWNlLiRpY29uVXJsO1xuICAgICAgICBpZiAoaWNvblVybCAmJiBzZWxlY3RlZFBvZHMpIHtcbiAgICAgICAgICBzZWxlY3RlZFBvZHMuZm9yRWFjaCgocG9kKSA9PiB7XG4gICAgICAgICAgICBwb2QuJGljb25VcmwgPSBpY29uVXJsO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHNlcnZpY2UuJHNlcnZpY2VVcmwgPSBzZXJ2aWNlTGlua1VybChzZXJ2aWNlKTtcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLnJlcGxpY2F0aW9uQ29udHJvbGxlcnMuZm9yRWFjaCgocmVwbGljYXRpb25Db250cm9sbGVyKSA9PiB7XG4gICAgICAgIGlmICghcmVwbGljYXRpb25Db250cm9sbGVyLmtpbmQpIHJlcGxpY2F0aW9uQ29udHJvbGxlci5raW5kID0gXCJSZXBsaWNhdGlvbkNvbnRyb2xsZXJcIjtcbiAgICAgICAgdGhpcy5yZXBsaWNhdGlvbkNvbnRyb2xsZXJzQnlLZXlbcmVwbGljYXRpb25Db250cm9sbGVyLl9rZXldID0gcmVwbGljYXRpb25Db250cm9sbGVyXG4gICAgICAgICAgdmFyIHNlbGVjdG9yID0gZ2V0U2VsZWN0b3IocmVwbGljYXRpb25Db250cm9sbGVyKTtcbiAgICAgICAgcmVwbGljYXRpb25Db250cm9sbGVyLiRwb2RzID0gW107XG4gICAgICAgIHJlcGxpY2F0aW9uQ29udHJvbGxlci4kcG9kQ291bnRlcnMgPSBzZWxlY3RvciA/IGNyZWF0ZVBvZENvdW50ZXJzKHNlbGVjdG9yLCB0aGlzLnBvZHMsIHJlcGxpY2F0aW9uQ29udHJvbGxlci4kcG9kcykgOiBudWxsO1xuICAgICAgICByZXBsaWNhdGlvbkNvbnRyb2xsZXIuJHBvZENvdW50ID0gcmVwbGljYXRpb25Db250cm9sbGVyLiRwb2RzLmxlbmd0aDtcbiAgICAgICAgcmVwbGljYXRpb25Db250cm9sbGVyLiRyZXBsaWNhcyA9IChyZXBsaWNhdGlvbkNvbnRyb2xsZXIuc3BlYyB8fCB7fSkucmVwbGljYXM7XG5cbiAgICAgICAgdmFyIHNlbGVjdGVkUG9kcyA9IHJlcGxpY2F0aW9uQ29udHJvbGxlci4kcG9kcztcbiAgICAgICAgcmVwbGljYXRpb25Db250cm9sbGVyLmNvbm5lY3RUbyA9IHNlbGVjdGVkUG9kcy5tYXAoKHBvZCkgPT4ge1xuICAgICAgICAgIHJldHVybiBwb2QuX2tleTtcbiAgICAgICAgfSkuam9pbignLCcpO1xuICAgICAgICByZXBsaWNhdGlvbkNvbnRyb2xsZXIuJGxhYmVsc1RleHQgPSBLdWJlcm5ldGVzLmxhYmVsc1RvU3RyaW5nKGdldExhYmVscyhyZXBsaWNhdGlvbkNvbnRyb2xsZXIpKTtcbiAgICAgICAgdGhpcy51cGRhdGVJY29uVXJsQW5kQXBwSW5mbyhyZXBsaWNhdGlvbkNvbnRyb2xsZXIsIFwicmVwbGljYXRpb25Db250cm9sbGVyTmFtZXNcIik7XG4gICAgICAgIHZhciBpY29uVXJsID0gIHJlcGxpY2F0aW9uQ29udHJvbGxlci4kaWNvblVybDtcbiAgICAgICAgaWYgKGljb25VcmwgJiYgc2VsZWN0ZWRQb2RzKSB7XG4gICAgICAgICAgc2VsZWN0ZWRQb2RzLmZvckVhY2goKHBvZCkgPT4ge1xuICAgICAgICAgICAgcG9kLiRpY29uVXJsID0gaWNvblVybDtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIC8vIHNlcnZpY2VzIG1heSBub3QgbWFwIHRvIGFuIGljb24gYnV0IHRoZWlyIHBvZHMgbWF5IGRvIHZpYSB0aGUgUkNcbiAgICAgIC8vIHNvIGxldHMgZGVmYXVsdCBpdC4uLlxuICAgICAgdGhpcy5zZXJ2aWNlcy5mb3JFYWNoKChzZXJ2aWNlKSA9PiB7XG4gICAgICAgIHZhciBpY29uVXJsID0gc2VydmljZS4kaWNvblVybDtcbiAgICAgICAgdmFyIHNlbGVjdGVkUG9kcyA9IHNlcnZpY2UuJHBvZHM7XG4gICAgICAgIGlmIChzZWxlY3RlZFBvZHMpIHtcbiAgICAgICAgICBpZiAoIWljb25VcmwgfHwgaWNvblVybCA9PT0gZGVmYXVsdEljb25VcmwpIHtcbiAgICAgICAgICAgIGljb25VcmwgPSBudWxsO1xuICAgICAgICAgICAgc2VsZWN0ZWRQb2RzLmZvckVhY2goKHBvZCkgPT4ge1xuICAgICAgICAgICAgICBpZiAoIWljb25VcmwpIHtcbiAgICAgICAgICAgICAgICBpY29uVXJsID0gcG9kLiRpY29uVXJsO1xuICAgICAgICAgICAgICAgIGlmIChpY29uVXJsKSB7XG4gICAgICAgICAgICAgICAgICBzZXJ2aWNlLiRpY29uVXJsID0gaWNvblVybDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMudXBkYXRlQXBwcygpO1xuXG4gICAgICB2YXIgcG9kc0J5SG9zdCA9IHt9O1xuICAgICAgdGhpcy5wb2RzLmZvckVhY2goKHBvZCkgPT4ge1xuICAgICAgICB2YXIgaG9zdCA9IGdldEhvc3QocG9kKTtcbiAgICAgICAgdmFyIHBvZHNGb3JIb3N0ID0gcG9kc0J5SG9zdFtob3N0XTtcbiAgICAgICAgaWYgKCFwb2RzRm9ySG9zdCkge1xuICAgICAgICAgIHBvZHNGb3JIb3N0ID0gW107XG4gICAgICAgICAgcG9kc0J5SG9zdFtob3N0XSA9IHBvZHNGb3JIb3N0O1xuICAgICAgICB9XG4gICAgICAgIHBvZHNGb3JIb3N0LnB1c2gocG9kKTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5wb2RzQnlIb3N0ID0gcG9kc0J5SG9zdDtcblxuICAgICAgdmFyIHRtcEhvc3RzID0gW107XG4gICAgICBmb3IgKHZhciBob3N0S2V5IGluIHBvZHNCeUhvc3QpIHtcbiAgICAgICAgdmFyIGhvc3RQb2RzID0gW107XG4gICAgICAgIHZhciBwb2RDb3VudGVycyA9IGNyZWF0ZVBvZENvdW50ZXJzKChwb2QpID0+IGdldEhvc3QocG9kKSA9PT0gaG9zdEtleSwgdGhpcy5wb2RzLCBob3N0UG9kcywgXCJob3N0PVwiICsgaG9zdEtleSk7XG4gICAgICAgIHZhciBob3N0SVAgPSBudWxsO1xuICAgICAgICBpZiAoaG9zdFBvZHMubGVuZ3RoKSB7XG4gICAgICAgICAgdmFyIHBvZCA9IGhvc3RQb2RzWzBdO1xuICAgICAgICAgIHZhciBjdXJyZW50U3RhdGUgPSBwb2Quc3RhdHVzO1xuICAgICAgICAgIGlmIChjdXJyZW50U3RhdGUpIHtcbiAgICAgICAgICAgIGhvc3RJUCA9IGN1cnJlbnRTdGF0ZS5ob3N0SVA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHZhciBob3N0RGV0YWlscyA9IHtcbiAgICAgICAgICBuYW1lOiBob3N0S2V5LFxuICAgICAgICAgIGlkOiBob3N0S2V5LFxuICAgICAgICAgIGVsZW1lbnRJZDogaG9zdEtleS5yZXBsYWNlKC9cXC4vZywgJ18nKSxcbiAgICAgICAgICBob3N0SVA6IGhvc3RJUCxcbiAgICAgICAgICBwb2RzOiBob3N0UG9kcyxcbiAgICAgICAgICBraW5kOiBcIkhvc3RcIixcbiAgICAgICAgICAgICRwb2RDb3VudGVyczogcG9kQ291bnRlcnMsXG4gICAgICAgICAgICAkaWNvblVybDogaG9zdEljb25VcmxcbiAgICAgICAgfTtcbiAgICAgICAgdG1wSG9zdHMucHVzaChob3N0RGV0YWlscyk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuaG9zdHMgPSB0bXBIb3N0cztcblxuICAgICAgZW5yaWNoQnVpbGRDb25maWdzKHRoaXMuYnVpbGRjb25maWdzKTtcbiAgICAgIGVucmljaEV2ZW50cyh0aGlzLmV2ZW50cywgdGhpcyk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHVwZGF0ZUFwcHMoKSB7XG4gICAgICB0cnkge1xuICAgICAgICAvLyBsZXRzIGNyZWF0ZSB0aGUgYXBwIHZpZXdzIGJ5IHRyeWluZyB0byBqb2luIGNvbnRyb2xsZXJzIC8gc2VydmljZXMgLyBwb2RzIHRoYXQgYXJlIHJlbGF0ZWRcbiAgICAgICAgdmFyIGFwcFZpZXdzID0gW107XG5cbiAgICAgICAgdGhpcy5yZXBsaWNhdGlvbkNvbnRyb2xsZXJzLmZvckVhY2goKHJlcGxpY2F0aW9uQ29udHJvbGxlcikgPT4ge1xuICAgICAgICAgIHZhciBuYW1lID0gZ2V0TmFtZShyZXBsaWNhdGlvbkNvbnRyb2xsZXIpO1xuICAgICAgICAgIHZhciAkaWNvblVybCA9IHJlcGxpY2F0aW9uQ29udHJvbGxlci4kaWNvblVybDtcbiAgICAgICAgICBhcHBWaWV3cy5wdXNoKHtcbiAgICAgICAgICAgIGFwcFBhdGg6IFwiL2R1bW15UGF0aC9cIiArIG5hbWUsXG4gICAgICAgICAgICAkbmFtZTogbmFtZSxcbiAgICAgICAgICAgICRpbmZvOiB7XG4gICAgICAgICAgICAgICRpY29uVXJsOiAkaWNvblVybFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICRpY29uVXJsOiAkaWNvblVybCxcbiAgICAgICAgICAgIHJlcGxpY2F0aW9uQ29udHJvbGxlcnM6IFtyZXBsaWNhdGlvbkNvbnRyb2xsZXJdLFxuICAgICAgICAgICAgcG9kczogcmVwbGljYXRpb25Db250cm9sbGVyLiRwb2RzIHx8IFtdLFxuICAgICAgICAgICAgc2VydmljZXM6IFtdXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHZhciBoYXNUZW1wbGF0ZXNTZXJ2aWNlID0gaXNPcGVuU2hpZnQ7XG4gICAgICAgIHZhciBub01hdGNoZXMgPSBbXTtcbiAgICAgICAgdGhpcy5zZXJ2aWNlcy5mb3JFYWNoKChzZXJ2aWNlKSA9PiB7XG4gICAgICAgICAgdmFyIG5hbWUgPSBnZXROYW1lKHNlcnZpY2UpO1xuICAgICAgICAgIGlmIChuYW1lID09PSBcInRlbXBsYXRlc1wiKSB7XG4gICAgICAgICAgICB2YXIgcG9kQ291bnRlcnMgPSBzZXJ2aWNlLiRwb2RDb3VudGVycztcbiAgICAgICAgICAgIGlmIChwb2RDb3VudGVycyAmJiBwb2RDb3VudGVycy52YWxpZCkge1xuICAgICAgICAgICAgICBoYXNUZW1wbGF0ZXNTZXJ2aWNlID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gbm93IGxldHMgc2VlIGlmIHdlIGNhbiBmaW5kIGFuIGFwcCB3aXRoIGFuIFJDIG9mIHRoZSBzYW1lIHNlbGVjdG9yXG4gICAgICAgICAgdmFyIG1hdGNoZXNBcHAgPSBudWxsO1xuICAgICAgICAgIGFwcFZpZXdzLmZvckVhY2goKGFwcFZpZXcpID0+IHtcbiAgICAgICAgICAgIGFwcFZpZXcucmVwbGljYXRpb25Db250cm9sbGVycy5mb3JFYWNoKChyZXBsaWNhdGlvbkNvbnRyb2xsZXIpID0+IHtcbiAgICAgICAgICAgICAgdmFyIHJlcFNlbGVjdG9yID0gZ2V0U2VsZWN0b3IocmVwbGljYXRpb25Db250cm9sbGVyKTtcbiAgICAgICAgICAgICAgaWYgKHJlcFNlbGVjdG9yICYmIFxuICAgICAgICAgICAgICAgICAgc2VsZWN0b3JNYXRjaGVzKHJlcFNlbGVjdG9yLCBnZXRTZWxlY3RvcihzZXJ2aWNlKSkgJiYgXG4gICAgICAgICAgICAgICAgICBnZXROYW1lc3BhY2Uoc2VydmljZSkgPT09IGdldE5hbWVzcGFjZShyZXBsaWNhdGlvbkNvbnRyb2xsZXIpKSB7XG4gICAgICAgICAgICAgICAgbWF0Y2hlc0FwcCA9IGFwcFZpZXc7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgaWYgKG1hdGNoZXNBcHApIHtcbiAgICAgICAgICAgIG1hdGNoZXNBcHAuc2VydmljZXMucHVzaChzZXJ2aWNlKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbm9NYXRjaGVzLnB1c2goc2VydmljZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgbG9nLmRlYnVnKFwibm8gbWF0Y2hlczogXCIsIG5vTWF0Y2hlcyk7XG4gICAgICAgIG5vTWF0Y2hlcy5mb3JFYWNoKChzZXJ2aWNlKSA9PiB7XG4gICAgICAgICAgdmFyIGFwcFZpZXcgPSBfLmZpbmQoYXBwVmlld3MsIChhcHBWaWV3KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gXy5hbnkoYXBwVmlldy5yZXBsaWNhdGlvbkNvbnRyb2xsZXJzLCAocmMpID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIF8uc3RhcnRzV2l0aChnZXROYW1lKHJjKSwgZ2V0TmFtZShzZXJ2aWNlKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBpZiAoYXBwVmlldykge1xuICAgICAgICAgICAgYXBwVmlldy5zZXJ2aWNlcy5wdXNoKHNlcnZpY2UpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2YXIgJGljb25VcmwgPSBzZXJ2aWNlLiRpY29uVXJsO1xuICAgICAgICAgICAgYXBwVmlld3MucHVzaCh7XG4gICAgICAgICAgICAgIGFwcFBhdGg6IFwiL2R1bW15UGF0aC9cIiArIG5hbWUsXG4gICAgICAgICAgICAgICRuYW1lOiBuYW1lLFxuICAgICAgICAgICAgICAkaW5mbzoge1xuICAgICAgICAgICAgICAgICRpY29uVXJsOiAkaWNvblVybFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICRpY29uVXJsOiAkaWNvblVybCxcbiAgICAgICAgICAgICAgcmVwbGljYXRpb25Db250cm9sbGVyczogW10sXG4gICAgICAgICAgICAgIHBvZHM6IHNlcnZpY2UuJHBvZHMgfHwgW10sXG4gICAgICAgICAgICAgIHNlcnZpY2VzOiBbc2VydmljZV1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5zaG93UnVuQnV0dG9uID0gaGFzVGVtcGxhdGVzU2VydmljZTtcblxuICAgICAgICBhbmd1bGFyLmZvckVhY2godGhpcy5yb3V0ZXMsIChyb3V0ZSkgPT4ge1xuICAgICAgICAgIHZhciBtZXRhZGF0YSA9IHJvdXRlLm1ldGFkYXRhIHx8IHt9O1xuICAgICAgICAgIHZhciBzcGVjID0gcm91dGUuc3BlYyB8fCB7fTtcbiAgICAgICAgICB2YXIgc2VydmljZU5hbWUgPSBDb3JlLnBhdGhHZXQoc3BlYywgW1widG9cIiwgXCJuYW1lXCJdKTtcbiAgICAgICAgICB2YXIgaG9zdCA9IHNwZWMuaG9zdDtcbiAgICAgICAgICB2YXIgbmFtZXNwYWNlID0gZ2V0TmFtZXNwYWNlKHJvdXRlKTtcbiAgICAgICAgICBpZiAoc2VydmljZU5hbWUgJiYgaG9zdCkge1xuICAgICAgICAgICAgdmFyIHNlcnZpY2UgPSB0aGlzLmdldFNlcnZpY2UobmFtZXNwYWNlLCBzZXJ2aWNlTmFtZSk7XG4gICAgICAgICAgICBpZiAoc2VydmljZSkge1xuICAgICAgICAgICAgICBzZXJ2aWNlLiRob3N0ID0gaG9zdDtcblxuICAgICAgICAgICAgICAvLyBUT0RPIHdlIGNvdWxkIHVzZSBzb21lIGFubm90YXRpb25zIC8gbWV0YWRhdGEgdG8gZGVkdWNlIHdoYXQgVVJMIHdlIHNob3VsZCB1c2UgdG8gb3BlbiB0aGlzXG4gICAgICAgICAgICAgIC8vIHNlcnZpY2UgaW4gdGhlIGNvbnNvbGUuIEZvciBub3cganVzdCBhc3N1bWUgaXRzIGh0dHA6XG5cbiAgICAgICAgICAgICAgaWYgKGhvc3QpIHtcbiAgICAgICAgICAgICAgICB2YXIgaG9zdFVybCA9ICBob3N0O1xuICAgICAgICAgICAgICAgIGlmIChob3N0VXJsLmluZGV4T2YoXCI6Ly9cIikgPCAwKSB7XG4gICAgICAgICAgICAgICAgICBob3N0VXJsID0gXCJodHRwOi8vXCIgKyBob3N0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBzZXJ2aWNlLiRjb25uZWN0VXJsID0gVXJsSGVscGVycy5qb2luKGhvc3RVcmwsICBcIi9cIik7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAvLyBUT0RPIGRlZmluaXRlbHkgbmVlZCB0aGF0IGFubm90YXRpb24sIHRlbXAgaGFjayBmb3IgYXBpbWFuIGxpbmtcbiAgICAgICAgICAgICAgaWYgKGdldE5hbWUoc2VydmljZSkgPT09ICdhcGltYW4nICYmIGhvc3QpIHtcbiAgICAgICAgICAgICAgICBzZXJ2aWNlLiRjb25uZWN0VXJsID0gKDxhbnk+IG5ldyBVUkkoKS5ob3N0KHNlcnZpY2UuJGhvc3QpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnBhdGgoJ2FwaW1hbnVpL2luZGV4Lmh0bWwnKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAucXVlcnkoe30pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmhhc2goVVJJLmVuY29kZShhbmd1bGFyLnRvSnNvbih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrVG86IG5ldyBVUkkoKS50b1N0cmluZygpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW46IEhhd3Rpb09BdXRoLmdldE9BdXRoVG9rZW4oKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKSkudG9TdHJpbmcoKTtcblxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBsb2cuZGVidWcoXCJDb3VsZCBub3QgZmluZCBzZXJ2aWNlIFwiICsgc2VydmljZU5hbWUgKyBcIiBuYW1lc3BhY2UgXCIgKyBuYW1lc3BhY2UgKyBcIiBmb3Igcm91dGU6IFwiICsgbWV0YWRhdGEubmFtZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBhcHBWaWV3cyA9IHBvcHVsYXRlS2V5cyhhcHBWaWV3cykuc29ydEJ5KChhcHBWaWV3KSA9PiBhcHBWaWV3Ll9rZXkpO1xuXG4gICAgICAgIEFycmF5SGVscGVycy5zeW5jKHRoaXMuYXBwVmlld3MsIGFwcFZpZXdzLCAnJG5hbWUnKTtcblxuICAgICAgICBpZiAodGhpcy5hcHBJbmZvcyAmJiB0aGlzLmFwcFZpZXdzKSB7XG4gICAgICAgICAgdmFyIGZvbGRlck1hcCA9IHt9O1xuICAgICAgICAgIHZhciBmb2xkZXJzID0gW107XG4gICAgICAgICAgdmFyIGFwcE1hcCA9IHt9O1xuICAgICAgICAgIGFuZ3VsYXIuZm9yRWFjaCh0aGlzLmFwcEluZm9zLCAoYXBwSW5mbykgPT4ge1xuICAgICAgICAgICAgaWYgKCFhcHBJbmZvLiRpY29uVXJsICYmIGFwcEluZm8uaWNvblBhdGggJiYgYXBwSW5mby5pY29uUGF0aCAhPT0gXCJudWxsXCIpIHtcbiAgICAgICAgICAgICAgYXBwSW5mby4kaWNvblVybCA9IGdpdFBhdGhUb1VybChhcHBJbmZvLmljb25QYXRoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciBhcHBQYXRoID0gYXBwSW5mby5hcHBQYXRoO1xuICAgICAgICAgICAgaWYgKGFwcFBhdGgpIHtcbiAgICAgICAgICAgICAgYXBwTWFwW2FwcFBhdGhdID0gYXBwSW5mbztcbiAgICAgICAgICAgICAgdmFyIGlkeCA9IGFwcFBhdGgubGFzdEluZGV4T2YoXCIvXCIpO1xuICAgICAgICAgICAgICB2YXIgZm9sZGVyUGF0aCA9IFwiXCI7XG4gICAgICAgICAgICAgIGlmIChpZHggPj0gMCkge1xuICAgICAgICAgICAgICAgIGZvbGRlclBhdGggPSBhcHBQYXRoLnN1YnN0cmluZygwLCBpZHgpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGZvbGRlclBhdGggPSBDb3JlLnRyaW1MZWFkaW5nKGZvbGRlclBhdGgsIFwiL1wiKTtcbiAgICAgICAgICAgICAgdmFyIGZvbGRlciA9IGZvbGRlck1hcFtmb2xkZXJQYXRoXTtcbiAgICAgICAgICAgICAgaWYgKCFmb2xkZXIpIHtcbiAgICAgICAgICAgICAgICBmb2xkZXIgPSB7XG4gICAgICAgICAgICAgICAgICBwYXRoOiBmb2xkZXJQYXRoLFxuICAgICAgICAgICAgICAgICAgZXhwYW5kZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICBhcHBzOiBbXVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgZm9sZGVycy5wdXNoKGZvbGRlcik7XG4gICAgICAgICAgICAgICAgZm9sZGVyTWFwW2ZvbGRlclBhdGhdID0gZm9sZGVyO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGZvbGRlci5hcHBzLnB1c2goYXBwSW5mbyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgdGhpcy5hcHBGb2xkZXJzID0gZm9sZGVycy5zb3J0QnkoXCJwYXRoXCIpO1xuXG4gICAgICAgICAgdmFyIGFwcHMgPSBbXTtcbiAgICAgICAgICB2YXIgZGVmYXVsdEluZm8gPSB7XG4gICAgICAgICAgICAkaWNvblVybDogZGVmYXVsdEljb25VcmxcbiAgICAgICAgICB9O1xuXG4gICAgICAgICAgYW5ndWxhci5mb3JFYWNoKHRoaXMuYXBwVmlld3MsIChhcHBWaWV3KSA9PiB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICB2YXIgYXBwUGF0aCA9IGFwcFZpZXcuYXBwUGF0aDtcblxuICAgICAgICAgICAgICAvKlxuICAgICAgICAgICAgICAgVE9ET1xuICAgICAgICAgICAgICAgYXBwVmlldy4kc2VsZWN0ID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgS3ViZXJuZXRlcy5zZXRKc29uKCRzY29wZSwgYXBwVmlldy5pZCwgJHNjb3BlLm1vZGVsLmFwcHMpO1xuICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgdmFyIGFwcEluZm8gPSBhbmd1bGFyLmNvcHkoZGVmYXVsdEluZm8pO1xuICAgICAgICAgICAgICBpZiAoYXBwUGF0aCkge1xuICAgICAgICAgICAgICAgIGFwcEluZm8gPSBhcHBNYXBbYXBwUGF0aF0gfHwgYXBwSW5mbztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpZiAoIWFwcFZpZXcuJGluZm8pIHtcbiAgICAgICAgICAgICAgICBhcHBWaWV3LiRpbmZvID0gZGVmYXVsdEluZm87XG4gICAgICAgICAgICAgICAgYXBwVmlldy4kaW5mbyA9IGFwcEluZm87XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgYXBwVmlldy5pZCA9IGFwcFBhdGg7XG4gICAgICAgICAgICAgIGlmICghYXBwVmlldy4kbmFtZSkge1xuICAgICAgICAgICAgICAgIGFwcFZpZXcuJG5hbWUgPSBhcHBJbmZvLm5hbWUgfHwgYXBwVmlldy4kbmFtZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpZiAoIWFwcFZpZXcuJGljb25VcmwpIHtcbiAgICAgICAgICAgICAgICBhcHBWaWV3LiRpY29uVXJsID0gYXBwSW5mby4kaWNvblVybDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBhcHBzLnB1c2goYXBwVmlldyk7XG4gICAgICAgICAgICAgIGFwcFZpZXcuJHBvZENvdW50ZXJzID0gY3JlYXRlQXBwVmlld1BvZENvdW50ZXJzKGFwcFZpZXcpO1xuICAgICAgICAgICAgICBhcHBWaWV3LiRwb2RDb3VudCA9IChhcHBWaWV3LnBvZHMgfHwgW10pLmxlbmd0aDtcbiAgICAgICAgICAgICAgYXBwVmlldy4kcmVwbGljYXRpb25Db250cm9sbGVyc1RleHQgPSAoYXBwVmlldy5yZXBsaWNhdGlvbkNvbnRyb2xsZXJzIHx8IFtdKS5tYXAoXCJfa2V5XCIpLmpvaW4oXCIgXCIpO1xuICAgICAgICAgICAgICBhcHBWaWV3LiRzZXJ2aWNlc1RleHQ9IChhcHBWaWV3LnNlcnZpY2VzIHx8IFtdKS5tYXAoXCJfa2V5XCIpLmpvaW4oXCIgXCIpO1xuICAgICAgICAgICAgICBhcHBWaWV3LiRzZXJ2aWNlVmlld3MgPSBjcmVhdGVBcHBWaWV3U2VydmljZVZpZXdzKGFwcFZpZXcpO1xuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICBsb2cud2FybihcIkZhaWxlZCB0byB1cGRhdGUgYXBwVmlld3M6IFwiICsgZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgLy90aGlzLmFwcHMgPSBhcHBzO1xuICAgICAgICAgIHRoaXMuYXBwcyA9IHRoaXMuYXBwVmlld3M7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgbG9nLndhcm4oXCJDYXVnaHQgZXJyb3I6IFwiICsgZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGRpc2NvdmVyUG9kQ29ubmVjdGlvbnMoZW50aXR5KSB7XG4gICAgICB2YXIgaW5mbyA9IENvcmUucGF0aEdldChlbnRpdHksIFtcInN0YXR1c1wiLCBcImluZm9cIl0pO1xuICAgICAgdmFyIGhvc3RQb3J0ID0gbnVsbDtcbiAgICAgIHZhciBjdXJyZW50U3RhdGUgPSBlbnRpdHkuc3RhdHVzIHx8IHt9O1xuICAgICAgdmFyIGRlc2lyZWRTdGF0ZSA9IGVudGl0eS5zcGVjIHx8IHt9O1xuICAgICAgdmFyIHBvZElkID0gZ2V0TmFtZShlbnRpdHkpO1xuICAgICAgdmFyIGhvc3QgPSBjdXJyZW50U3RhdGVbXCJob3N0SVBcIl07XG4gICAgICB2YXIgcG9kSVAgPSBjdXJyZW50U3RhdGVbXCJwb2RJUFwiXTtcbiAgICAgIHZhciBoYXNEb2NrZXIgPSBmYWxzZTtcbiAgICAgIHZhciBmb3VuZENvbnRhaW5lclBvcnQgPSBudWxsO1xuICAgICAgaWYgKGRlc2lyZWRTdGF0ZSkge1xuICAgICAgICB2YXIgY29udGFpbmVycyA9IGRlc2lyZWRTdGF0ZS5jb250YWluZXJzO1xuICAgICAgICBhbmd1bGFyLmZvckVhY2goY29udGFpbmVycywgKGNvbnRhaW5lcikgPT4ge1xuICAgICAgICAgIGlmICghaG9zdFBvcnQpIHtcbiAgICAgICAgICAgIHZhciBwb3J0cyA9IGNvbnRhaW5lci5wb3J0cztcbiAgICAgICAgICAgIGFuZ3VsYXIuZm9yRWFjaChwb3J0cywgKHBvcnQpID0+IHtcbiAgICAgICAgICAgICAgaWYgKCFob3N0UG9ydCkge1xuICAgICAgICAgICAgICAgIHZhciBjb250YWluZXJQb3J0ID0gcG9ydC5jb250YWluZXJQb3J0O1xuICAgICAgICAgICAgICAgIHZhciBwb3J0TmFtZSA9IHBvcnQubmFtZTtcbiAgICAgICAgICAgICAgICB2YXIgY29udGFpbmVySG9zdFBvcnQgPSBwb3J0Lmhvc3RQb3J0O1xuICAgICAgICAgICAgICAgIGlmIChjb250YWluZXJQb3J0ID09PSA4Nzc4IHx8IFwiam9sb2tpYVwiID09PSBwb3J0TmFtZSkge1xuICAgICAgICAgICAgICAgICAgaWYgKGNvbnRhaW5lclBvcnQpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHBvZElQKSB7XG4gICAgICAgICAgICAgICAgICAgICAgZm91bmRDb250YWluZXJQb3J0ID0gY29udGFpbmVyUG9ydDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoY29udGFpbmVySG9zdFBvcnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICBob3N0UG9ydCA9IGNvbnRhaW5lckhvc3RQb3J0O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgaWYgKGZvdW5kQ29udGFpbmVyUG9ydCAmJiBwb2RJZCAmJiBpc1J1bm5pbmcoY3VycmVudFN0YXRlKSkge1xuICAgICAgICBlbnRpdHkuJGpvbG9raWFVcmwgPSBVcmxIZWxwZXJzLmpvaW4oS3ViZXJuZXRlcy5tYXN0ZXJBcGlVcmwoKSwgXCIvYXBpL1wiLCBLdWJlcm5ldGVzLmRlZmF1bHRBcGlWZXJzaW9uLCBcIm5hbWVzcGFjZXNcIiwgZW50aXR5Lm1ldGFkYXRhLm5hbWVzcGFjZSAsIFwiL3BvZHMvXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9kSWQgKyBcIjpcIiArIGZvdW5kQ29udGFpbmVyUG9ydCwgXCIvcHJveHkvam9sb2tpYS9cIik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG1vZGVsIHNlcnZpY2Ugd2hpY2gga2VlcHMgdHJhY2sgb2YgYWxsIHRoZSBwb2RzLCByZXBsaWNhdGlvbiBjb250cm9sbGVycyBhbmQgc2VydmljZXMgYWxvbmdcbiAgICogd2l0aCB0aGVpciBhc3NvY2lhdGlvbnMgYW5kIHN0YXR1c1xuICAgKi9cbiAgX21vZHVsZS5mYWN0b3J5KCdLdWJlcm5ldGVzTW9kZWwnLCBbJyRyb290U2NvcGUnLCAnJGh0dHAnLCAnS3ViZXJuZXRlc0FwaVVSTCcsICdLdWJlcm5ldGVzU3RhdGUnLCAnV2F0Y2hlclNlcnZpY2UnLCAnJGxvY2F0aW9uJywgJyRyZXNvdXJjZScsICgkcm9vdFNjb3BlLCAkaHR0cCwgQXBwTGlicmFyeVVSTCwgS3ViZXJuZXRlc1N0YXRlLCB3YXRjaGVyOldhdGNoZXJTZXJ2aWNlLCAkbG9jYXRpb246bmcuSUxvY2F0aW9uU2VydmljZSwgJHJlc291cmNlOm5nLnJlc291cmNlLklSZXNvdXJjZVNlcnZpY2UpID0+IHtcblxuICAgIHZhciAkc2NvcGUgPSBuZXcgS3ViZXJuZXRlc01vZGVsU2VydmljZSgpO1xuICAgICRzY29wZS5rdWJlcm5ldGVzID0gS3ViZXJuZXRlc1N0YXRlO1xuXG4gICAgLy8gY3JlYXRlIGFsbCBvZiBvdXIgcmVzb3VyY2UgY2xhc3Nlc1xuICAgIHZhciB0eXBlTmFtZXMgPSB3YXRjaGVyLmdldFR5cGVzKCk7XG4gICAgXy5mb3JFYWNoKHR5cGVOYW1lcywgKHR5cGU6c3RyaW5nKSA9PiB7XG4gICAgICB2YXIgdXJsVGVtcGxhdGUgPSB1cmlUZW1wbGF0ZUZvckt1YmVybmV0ZXNLaW5kKHR5cGUpO1xuICAgICAgJHNjb3BlW3R5cGUgKyAnUmVzb3VyY2UnXSA9IGNyZWF0ZVJlc291cmNlKHR5cGUsIHVybFRlbXBsYXRlLCAkcmVzb3VyY2UsICRzY29wZSk7XG4gICAgfSk7XG5cbiAgICAvLyByZWdpc3RlciBmb3IgYWxsIHVwZGF0ZXMgb24gb2JqZWN0c1xuXHRcdHdhdGNoZXIucmVnaXN0ZXJMaXN0ZW5lcigob2JqZWN0czpPYmplY3RNYXApID0+IHtcblx0XHRcdHZhciB0eXBlcyA9IHdhdGNoZXIuZ2V0VHlwZXMoKTtcblx0XHRcdF8uZm9yRWFjaCh0eXBlcywgKHR5cGU6c3RyaW5nKSA9PiB7XG5cdFx0XHRcdHN3aXRjaCAodHlwZSkge1xuXHRcdFx0XHRcdGNhc2UgV2F0Y2hUeXBlcy5TRVJWSUNFUzpcblx0XHRcdFx0XHRcdHZhciBpdGVtcyA9IHBvcHVsYXRlS2V5cyhvYmplY3RzW3R5cGVdKTtcblx0XHRcdFx0XHRcdGFuZ3VsYXIuZm9yRWFjaChpdGVtcywgKGl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgaXRlbS5wcm94eVVybCA9IGt1YmVybmV0ZXNQcm94eVVybEZvclNlcnZpY2UobWFzdGVyQXBpVXJsKCksIGl0ZW0pO1xuICAgICAgICAgICAgfSk7XG5cdFx0XHRcdFx0XHQkc2NvcGVbdHlwZV0gPSBpdGVtcztcblx0XHRcdFx0XHRcdGJyZWFrO1xuICAgICAgICAgIGNhc2UgV2F0Y2hUeXBlcy5URU1QTEFURVM6XG4gICAgICAgICAgY2FzZSBXYXRjaFR5cGVzLlJPVVRFUzpcbiAgICAgICAgICBjYXNlIFdhdGNoVHlwZXMuQlVJTERTOlxuICAgICAgICAgIGNhc2UgV2F0Y2hUeXBlcy5CVUlMRF9DT05GSUdTOlxuICAgICAgICAgIGNhc2UgV2F0Y2hUeXBlcy5JTUFHRV9TVFJFQU1TOlxuICAgICAgICAgICAgLy8gZG9uJ3QgcHV0IGEgYnJlYWsgaGVyZSA6LSlcblx0XHRcdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHRcdFx0JHNjb3BlW3R5cGVdID0gcG9wdWxhdGVLZXlzKG9iamVjdHNbdHlwZV0pO1xuXHRcdFx0XHR9XG4gICAgICAgIGxvZy5kZWJ1ZyhcIlR5cGU6IFwiLCB0eXBlLCBcIiBvYmplY3Q6IFwiLCAkc2NvcGVbdHlwZV0pO1xuXHRcdFx0fSk7XG5cdFx0XHQkc2NvcGUubWF5YmVJbml0KCk7XG4gICAgICAkcm9vdFNjb3BlLiRicm9hZGNhc3QoJ2t1YmVybmV0ZXNNb2RlbFVwZGF0ZWQnLCAkc2NvcGUpO1xuICAgICAgQ29yZS4kYXBwbHkoJHJvb3RTY29wZSk7XG5cdFx0fSk7XG5cbiAgICAvLyBzZXQgdGhlIHNlbGVjdGVkIG5hbWVzcGFjZSBpZiBzZXQgaW4gdGhlIGxvY2F0aW9uIGJhclxuICAgIC8vIG90aGVyd2lzZSB1c2Ugd2hhdGV2ZXIgcHJldmlvdXNseSBzZWxlY3RlZCBuYW1lc3BhY2UgaXNcbiAgICAvLyBhdmFpbGFibGVcbiAgICB2YXIgc2VhcmNoID0gJGxvY2F0aW9uLnNlYXJjaCgpO1xuICAgIGlmICgnbmFtZXNwYWNlJyBpbiBzZWFyY2gpIHtcbiAgICAgIHdhdGNoZXIuc2V0TmFtZXNwYWNlKHNlYXJjaFsnbmFtZXNwYWNlJ10pO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHNlbGVjdFBvZHMocG9kcywgbmFtZXNwYWNlLCBsYWJlbHMpIHtcbiAgICAgIHJldHVybiBwb2RzLmZpbHRlcigocG9kKSA9PiB7XG4gICAgICAgIHJldHVybiBnZXROYW1lc3BhY2UocG9kKSA9PT0gbmFtZXNwYWNlICYmIHNlbGVjdG9yTWF0Y2hlcyhsYWJlbHMsIGdldExhYmVscyhwb2QpKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gJHNjb3BlO1xuICB9XSk7XG5cbn1cbiIsIi8vLyA8cmVmZXJlbmNlIHBhdGg9XCIuLi8uLi9pbmNsdWRlcy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJrdWJlcm5ldGVzSGVscGVycy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJrdWJlcm5ldGVzUGx1Z2luLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cImt1YmVybmV0ZXNNb2RlbC50c1wiLz5cblxubW9kdWxlIEt1YmVybmV0ZXMge1xuXG4gIGV4cG9ydCB2YXIgSG9zdENvbnRyb2xsZXIgPSBjb250cm9sbGVyKFwiSG9zdENvbnRyb2xsZXJcIixcbiAgICBbXCIkc2NvcGVcIiwgXCJLdWJlcm5ldGVzTW9kZWxcIiwgXCJLdWJlcm5ldGVzU3RhdGVcIiwgXCIkdGVtcGxhdGVDYWNoZVwiLCBcIiRsb2NhdGlvblwiLCBcIiRyb3V0ZVBhcmFtc1wiLCBcIiRodHRwXCIsIFwiJHRpbWVvdXRcIiwgXCJLdWJlcm5ldGVzQXBpVVJMXCIsXG4gICAgICAoJHNjb3BlLCBLdWJlcm5ldGVzTW9kZWw6S3ViZXJuZXRlcy5LdWJlcm5ldGVzTW9kZWxTZXJ2aWNlLCBLdWJlcm5ldGVzU3RhdGUsXG4gICAgICAgJHRlbXBsYXRlQ2FjaGU6bmcuSVRlbXBsYXRlQ2FjaGVTZXJ2aWNlLCAkbG9jYXRpb246bmcuSUxvY2F0aW9uU2VydmljZSwgJHJvdXRlUGFyYW1zLCAkaHR0cCwgJHRpbWVvdXQsIEt1YmVybmV0ZXNBcGlVUkwpID0+IHtcblxuICAgICAgICAkc2NvcGUua3ViZXJuZXRlcyA9IEt1YmVybmV0ZXNTdGF0ZTtcbiAgICAgICAgJHNjb3BlLm1vZGVsID0gS3ViZXJuZXRlc01vZGVsO1xuICAgICAgICAkc2NvcGUucmF3TW9kZSA9IGZhbHNlO1xuICAgICAgICAkc2NvcGUucmF3TW9kZWwgPSBudWxsO1xuXG4gICAgICAgICRzY29wZS5pdGVtQ29uZmlnID0ge1xuICAgICAgICAgIHByb3BlcnRpZXM6IHt9XG4gICAgICAgIH07XG5cbiAgICAgICAgS3ViZXJuZXRlcy5pbml0U2hhcmVkKCRzY29wZSwgJGxvY2F0aW9uLCAkaHR0cCwgJHRpbWVvdXQsICRyb3V0ZVBhcmFtcywgS3ViZXJuZXRlc01vZGVsLCBLdWJlcm5ldGVzU3RhdGUsIEt1YmVybmV0ZXNBcGlVUkwpO1xuXG4gICAgICAgICRzY29wZS4kb24oJ2t1YmVybmV0ZXNNb2RlbFVwZGF0ZWQnLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgdXBkYXRlRGF0YSgpO1xuICAgICAgICB9KTtcblxuICAgICAgICAkc2NvcGUuJG9uKCckcm91dGVVcGRhdGUnLCAoJGV2ZW50KSA9PiB7XG4gICAgICAgICAgdXBkYXRlRGF0YSgpO1xuICAgICAgICB9KTtcblxuICAgICAgICAkc2NvcGUuZmxpcFJhdyA9ICgpID0+IHtcbiAgICAgICAgICAkc2NvcGUucmF3TW9kZSA9ICEkc2NvcGUucmF3TW9kZTtcbiAgICAgICAgICBDb3JlLiRhcHBseSgkc2NvcGUpO1xuICAgICAgICB9O1xuXG4gICAgICAgIHVwZGF0ZURhdGEoKTtcblxuICAgICAgICBmdW5jdGlvbiB1cGRhdGVEYXRhKCkge1xuICAgICAgICAgICRzY29wZS5pZCA9ICRyb3V0ZVBhcmFtc1tcImlkXCJdO1xuICAgICAgICAgICRzY29wZS5pdGVtID0gbnVsbDtcbiAgICAgICAgICBpZiAoJHNjb3BlLmlkKSB7XG4gICAgICAgICAgICB2YXIgdXJsID0gVXJsSGVscGVycy5qb2luKEt1YmVybmV0ZXNBcGlVUkwsIFwibm9kZXNcIiwgJHNjb3BlLmlkKTtcbiAgICAgICAgICAgICRodHRwLmdldCh1cmwpLlxuICAgICAgICAgICAgICBzdWNjZXNzKGZ1bmN0aW9uIChkYXRhLCBzdGF0dXMsIGhlYWRlcnMsIGNvbmZpZykge1xuICAgICAgICAgICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICAgICAgICAkc2NvcGUuaXRlbSA9IGRhdGE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICgkc2NvcGUuaXRlbSkge1xuICAgICAgICAgICAgICAgICAgJHNjb3BlLnJhd01vZGVsID0gSlNPTi5zdHJpbmdpZnkoJHNjb3BlLml0ZW0sIG51bGwsIDIpOyAvLyBzcGFjaW5nIGxldmVsID0gMlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBDb3JlLiRhcHBseSgkc2NvcGUpO1xuICAgICAgICAgICAgICB9KS5cbiAgICAgICAgICAgIGVycm9yKGZ1bmN0aW9uIChkYXRhLCBzdGF0dXMsIGhlYWRlcnMsIGNvbmZpZykge1xuICAgICAgICAgICAgICBsb2cud2FybihcIkZhaWxlZCB0byBsb2FkIFwiICsgdXJsICsgXCIgXCIgKyBkYXRhICsgXCIgXCIgKyBzdGF0dXMpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICRzY29wZS5yYXdNb2RlbCA9IG51bGw7XG4gICAgICAgICAgICBDb3JlLiRhcHBseSgkc2NvcGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfV0pO1xufVxuIiwiLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4uLy4uL2luY2x1ZGVzLnRzXCIvPlxubW9kdWxlIEt1YmVybmV0ZXMge1xuXG4gIC8qKlxuICAgKiBTb3J0cyB0aGUgdGhlIGlwIGZpZWxkXG4gICAqXG4gICAqIEBwYXJhbSBpcCB0aGUgaXAgc3VjaCBhcyAnMTAuMS4yLjEzJ1xuICAgKiBAcmV0dXJucyB7YW55fVxuICAgKi9cbiAgZXhwb3J0IGZ1bmN0aW9uIHNvcnRCeVBvZElwKGlwKSA6IGFueSB7XG4gICAgLy8gaSBndWVzcyB0aGVyZSBpcyBtYXliZSBuaWNlciB3YXlzIG9mIHNvcnQgdGhpcyB3aXRob3V0IHBhcnNpbmcgYW5kIHNsaWNpbmdcbiAgICB2YXIgcmVnZXggPSAvKFxcZHsxLDN9KVxcLihcXGR7MSwzfSlcXC4oXFxkezEsM30pXFwuKFxcZHsxLDN9KS87XG4gICAgdmFyIGdyb3VwcyA9IHJlZ2V4LmV4ZWMoaXApO1xuICAgIGlmIChhbmd1bGFyLmlzRGVmaW5lZChncm91cHMpKSB7XG4gICAgICB2YXIgZzEgPSAoXCIwMFwiICsgZ3JvdXBzWzFdKS5zbGljZSgtMyk7XG4gICAgICB2YXIgZzIgPSAoXCIwMFwiICsgZ3JvdXBzWzJdKS5zbGljZSgtMyk7XG4gICAgICB2YXIgZzMgPSAoXCIwMFwiICsgZ3JvdXBzWzNdKS5zbGljZSgtMyk7XG4gICAgICB2YXIgZzQgPSAoXCIwMFwiICsgZ3JvdXBzWzRdKS5zbGljZSgtMyk7XG4gICAgICB2YXIgYW5zd2VyID0gZzEgKyBnMiArIGczICsgZzQ7XG4gICAgICByZXR1cm4gYW5zd2VyO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG4gIH1cblxufSIsIi8vLyA8cmVmZXJlbmNlIHBhdGg9XCIuLi8uLi9pbmNsdWRlcy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJrdWJlcm5ldGVzUGx1Z2luLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cImt1YmVybmV0ZXNNb2RlbC50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJ1dGlsSGVscGVycy50c1wiLz5cblxubW9kdWxlIEt1YmVybmV0ZXMge1xuXG4gIGV4cG9ydCB2YXIgSG9zdHNDb250cm9sbGVyID0gY29udHJvbGxlcihcIkhvc3RzQ29udHJvbGxlclwiLCBbXCIkc2NvcGVcIiwgXCJLdWJlcm5ldGVzTW9kZWxcIiwgXCJLdWJlcm5ldGVzUG9kc1wiLCBcIkt1YmVybmV0ZXNTdGF0ZVwiLCBcIlNlcnZpY2VSZWdpc3RyeVwiLCBcIiRkaWFsb2dcIiwgXCIkd2luZG93XCIsIFwiJHRlbXBsYXRlQ2FjaGVcIiwgXCIkcm91dGVQYXJhbXNcIiwgXCIkbG9jYXRpb25cIiwgXCJsb2NhbFN0b3JhZ2VcIiwgXCIkaHR0cFwiLCBcIiR0aW1lb3V0XCIsIFwiS3ViZXJuZXRlc0FwaVVSTFwiLFxuICAgICgkc2NvcGUsIEt1YmVybmV0ZXNNb2RlbDogS3ViZXJuZXRlcy5LdWJlcm5ldGVzTW9kZWxTZXJ2aWNlLCBLdWJlcm5ldGVzUG9kczpuZy5JUHJvbWlzZTxuZy5yZXNvdXJjZS5JUmVzb3VyY2VDbGFzcz4sIEt1YmVybmV0ZXNTdGF0ZSwgU2VydmljZVJlZ2lzdHJ5LCAkZGlhbG9nLCAkd2luZG93LCAkdGVtcGxhdGVDYWNoZSwgJHJvdXRlUGFyYW1zLCAkbG9jYXRpb246bmcuSUxvY2F0aW9uU2VydmljZSwgbG9jYWxTdG9yYWdlLCAkaHR0cCwgJHRpbWVvdXQsIEt1YmVybmV0ZXNBcGlVUkwpID0+IHtcblxuICAgICRzY29wZS5rdWJlcm5ldGVzID0gS3ViZXJuZXRlc1N0YXRlO1xuICAgICRzY29wZS5tb2RlbCA9IEt1YmVybmV0ZXNNb2RlbDtcbiAgICAkc2NvcGUuJG9uKCdrdWJlcm5ldGVzTW9kZWxVcGRhdGVkJywgZnVuY3Rpb24gKCkge1xuICAgICAgQ29yZS4kYXBwbHkoJHNjb3BlKTtcbiAgICB9KTtcblxuICAgICRzY29wZS50YWJsZUNvbmZpZyA9IHtcbiAgICAgIGRhdGE6ICdtb2RlbC5ob3N0cycsXG4gICAgICBzaG93U2VsZWN0aW9uQ2hlY2tib3g6IGZhbHNlLFxuICAgICAgZW5hYmxlUm93Q2xpY2tTZWxlY3Rpb246IGZhbHNlLFxuICAgICAgbXVsdGlTZWxlY3Q6IGZhbHNlLFxuICAgICAgc2VsZWN0ZWRJdGVtczogW10sXG4gICAgICBmaWx0ZXJPcHRpb25zOiB7XG4gICAgICAgIGZpbHRlclRleHQ6ICRsb2NhdGlvbi5zZWFyY2goKVtcInFcIl0gfHwgJydcbiAgICAgIH0sXG4gICAgICBjb2x1bW5EZWZzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBmaWVsZDogJ2lkJyxcbiAgICAgICAgICBkaXNwbGF5TmFtZTogJ05hbWUnLFxuICAgICAgICAgIGRlZmF1bHRTb3J0OiB0cnVlLFxuICAgICAgICAgIGNlbGxUZW1wbGF0ZTogJHRlbXBsYXRlQ2FjaGUuZ2V0KFwiaWRUZW1wbGF0ZS5odG1sXCIpXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBmaWVsZDogJ2hvc3RJUCcsXG4gICAgICAgICAgZGlzcGxheU5hbWU6ICdJUCcsXG4gICAgICAgICAgY3VzdG9tU29ydEZpZWxkOiAoZmllbGQpID0+IHtcbiAgICAgICAgICAgIC8vIHVzZSBhIGN1c3RvbSBzb3J0IHRvIHNvcnQgaXAgYWRkcmVzc1xuICAgICAgICAgICAgcmV0dXJuIEt1YmVybmV0ZXMuc29ydEJ5UG9kSXAoZmllbGQuaG9zdElQKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHsgZmllbGQ6ICckcG9kc0xpbmsnLFxuICAgICAgICAgIGRpc3BsYXlOYW1lOiAnUG9kcycsXG4gICAgICAgICAgY2VsbFRlbXBsYXRlOiAkdGVtcGxhdGVDYWNoZS5nZXQoXCJwb2RDb3VudHNBbmRMaW5rVGVtcGxhdGUuaHRtbFwiKSxcbiAgICAgICAgICBjdXN0b21Tb3J0RmllbGQ6IChmaWVsZCkgPT4ge1xuICAgICAgICAgICAgLy8gbmVlZCB0byBjb25jYXQgYWxsIHRoZSBwb2QgY291bnRlcnNcbiAgICAgICAgICAgIHZhciByZWFkeSA9IGZpZWxkLiRwb2RDb3VudGVycy5yZWFkeSB8fCAwO1xuICAgICAgICAgICAgdmFyIHZhbGlkID0gZmllbGQuJHBvZENvdW50ZXJzLnZhbGlkIHx8IDA7XG4gICAgICAgICAgICB2YXIgd2FpdGluZyA9IGZpZWxkLiRwb2RDb3VudGVycy53YWl0aW5nIHx8IDA7XG4gICAgICAgICAgICB2YXIgZXJyb3IgPSBmaWVsZC4kcG9kQ291bnRlcnMuZXJyb3IgfHwgMDtcbiAgICAgICAgICAgIHJldHVybiByZWFkeSArIHZhbGlkICsgd2FpdGluZyArIGVycm9yO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgXVxuICAgIH07XG5cbiAgICBLdWJlcm5ldGVzLmluaXRTaGFyZWQoJHNjb3BlLCAkbG9jYXRpb24sICRodHRwLCAkdGltZW91dCwgJHJvdXRlUGFyYW1zLCBLdWJlcm5ldGVzTW9kZWwsIEt1YmVybmV0ZXNTdGF0ZSwgS3ViZXJuZXRlc0FwaVVSTCk7XG4gIH1dKTtcbn1cbiIsIi8vLyA8cmVmZXJlbmNlIHBhdGg9XCIuLi8uLi9pbmNsdWRlcy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJrdWJlcm5ldGVzUGx1Z2luLnRzXCIvPlxuXG5tb2R1bGUgS3ViZXJuZXRlcyB7XG5cbiAgZXhwb3J0IHZhciBJbWFnZVJlcG9zaXRvcmllc0NvbnRyb2xsZXIgPSBjb250cm9sbGVyKFwiSW1hZ2VSZXBvc2l0b3JpZXNDb250cm9sbGVyXCIsIFtcIiRzY29wZVwiLCBcIkt1YmVybmV0ZXNNb2RlbFwiLCBcIkt1YmVybmV0ZXNCdWlsZHNcIiwgXCJLdWJlcm5ldGVzU3RhdGVcIiwgXCIkZGlhbG9nXCIsIFwiJHdpbmRvd1wiLCBcIiR0ZW1wbGF0ZUNhY2hlXCIsIFwiJHJvdXRlUGFyYW1zXCIsIFwiJGxvY2F0aW9uXCIsIFwibG9jYWxTdG9yYWdlXCIsIFwiJGh0dHBcIiwgXCIkdGltZW91dFwiLCBcIkt1YmVybmV0ZXNBcGlVUkxcIixcbiAgICAoJHNjb3BlLCBLdWJlcm5ldGVzTW9kZWw6S3ViZXJuZXRlcy5LdWJlcm5ldGVzTW9kZWxTZXJ2aWNlLCBLdWJlcm5ldGVzQnVpbGRzLCBLdWJlcm5ldGVzU3RhdGUsICRkaWFsb2csICR3aW5kb3csICR0ZW1wbGF0ZUNhY2hlLCAkcm91dGVQYXJhbXMsICRsb2NhdGlvbjpuZy5JTG9jYXRpb25TZXJ2aWNlLCBsb2NhbFN0b3JhZ2UsICRodHRwLCAkdGltZW91dCwgS3ViZXJuZXRlc0FwaVVSTCkgPT4ge1xuXG4gICAgICAkc2NvcGUua3ViZXJuZXRlcyA9IEt1YmVybmV0ZXNTdGF0ZTtcbiAgICAgICRzY29wZS5tb2RlbCA9IEt1YmVybmV0ZXNNb2RlbDtcbiAgICAgICRzY29wZS5LdWJlcm5ldGVzQnVpbGRzID0gS3ViZXJuZXRlc0J1aWxkcztcbiAgICAgICRzY29wZS4kb24oJ2t1YmVybmV0ZXNNb2RlbFVwZGF0ZWQnLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIENvcmUuJGFwcGx5KCRzY29wZSk7XG4gICAgICB9KTtcblxuICAgICAgJHNjb3BlLnRhYmxlQ29uZmlnID0ge1xuICAgICAgICBkYXRhOiAnaW1hZ2VSZXBvc2l0b3JpZXMnLFxuICAgICAgICBzaG93U2VsZWN0aW9uQ2hlY2tib3g6IHRydWUsXG4gICAgICAgIGVuYWJsZVJvd0NsaWNrU2VsZWN0aW9uOiBmYWxzZSxcbiAgICAgICAgbXVsdGlTZWxlY3Q6IHRydWUsXG4gICAgICAgIHNlbGVjdGVkSXRlbXM6IFtdLFxuICAgICAgICBmaWx0ZXJPcHRpb25zOiB7XG4gICAgICAgICAgZmlsdGVyVGV4dDogJGxvY2F0aW9uLnNlYXJjaCgpW1wicVwiXSB8fCAnJ1xuICAgICAgICB9LFxuICAgICAgICBjb2x1bW5EZWZzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgZmllbGQ6ICdtZXRhZGF0YS5uYW1lJyxcbiAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAnTmFtZSdcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGZpZWxkOiAnbWV0YWRhdGEubmFtZXNwYWNlJyxcbiAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAnTmFtZXNwYWNlJ1xuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgZmllbGQ6ICdzdGF0dXMuZG9ja2VySW1hZ2VSZXBvc2l0b3J5JyxcbiAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAnRG9ja2VyIFJlZ2lzdHJ5J1xuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgZmllbGQ6ICd0YWdzJyxcbiAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAnVGFncycsXG4gICAgICAgICAgICBjZWxsVGVtcGxhdGU6ICR0ZW1wbGF0ZUNhY2hlLmdldCgnaW1hZ2VSZWdpc3RyeUxhYmVsVGVtcGxhdGUuaHRtbCcpXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9O1xuXG4gICAgICB2YXIgbGFiZWxDb2xvcnMgPSB7XG4gICAgICAgICdwcm9kJzogJ2JhY2tncm91bmQtYmx1ZScsXG4gICAgICAgICd2YWxpZCc6ICdiYWNrZ3JvdW5kLWxpZ2h0LWdyZWVuJyxcbiAgICAgICAgJ3Rlc3QnOiAnYmFja2dyb3VuZC1saWdodC1ncmV5J1xuICAgICAgfTtcbiAgICAgICRzY29wZS5sYWJlbENsYXNzID0gKGxhYmVsVHlwZTpzdHJpbmcpID0+IHtcbiAgICAgICAgaWYgKCEobGFiZWxUeXBlIGluIGxhYmVsQ29sb3JzKSkge1xuICAgICAgICAgIHJldHVybiAnbW91c2UtcG9pbnRlcic7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSByZXR1cm4gbGFiZWxDb2xvcnNbbGFiZWxUeXBlXSArICcgbW91c2UtcG9pbnRlcic7XG4gICAgICB9XG5cbiAgICAgIEt1YmVybmV0ZXMuaW5pdFNoYXJlZCgkc2NvcGUsICRsb2NhdGlvbiwgJGh0dHAsICR0aW1lb3V0LCAkcm91dGVQYXJhbXMsIEt1YmVybmV0ZXNNb2RlbCwgS3ViZXJuZXRlc1N0YXRlLCBLdWJlcm5ldGVzQXBpVVJMKTtcblxuICAgICAgJHNjb3BlLmRlbGV0ZVByb21wdCA9IChzZWxlY3RlZCkgPT4ge1xuICAgICAgICBVSS5tdWx0aUl0ZW1Db25maXJtQWN0aW9uRGlhbG9nKDxVSS5NdWx0aUl0ZW1Db25maXJtQWN0aW9uT3B0aW9ucz57XG4gICAgICAgICAgY29sbGVjdGlvbjogc2VsZWN0ZWQsXG4gICAgICAgICAgaW5kZXg6ICckbmFtZScsXG4gICAgICAgICAgb25DbG9zZTogKHJlc3VsdDpib29sZWFuKSA9PiB7XG4gICAgICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgICAgIGZ1bmN0aW9uIGRlbGV0ZVNlbGVjdGVkKHNlbGVjdGVkLCBuZXh0KSB7XG4gICAgICAgICAgICAgICAgaWYgKG5leHQpIHtcbiAgICAgICAgICAgICAgICAgIGRlbGV0ZUVudGl0eShuZXh0LCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZVNlbGVjdGVkKHNlbGVjdGVkLCBzZWxlY3RlZC5zaGlmdCgpKTtcbiAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICB1cGRhdGVEYXRhKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgZGVsZXRlU2VsZWN0ZWQoc2VsZWN0ZWQsIHNlbGVjdGVkLnNoaWZ0KCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgdGl0bGU6ICdEZWxldGUgSW1hZ2UgUmVwb3NpdG9yeT8nLFxuICAgICAgICAgIGFjdGlvbjogJ1RoZSBmb2xsb3dpbmcgSW1hZ2UgUmVwb3NpdG9yaWVzIHdpbGwgYmUgZGVsZXRlZDonLFxuICAgICAgICAgIG9rVGV4dDogJ0RlbGV0ZScsXG4gICAgICAgICAgb2tDbGFzczogJ2J0bi1kYW5nZXInLFxuICAgICAgICAgIGN1c3RvbTogXCJUaGlzIG9wZXJhdGlvbiBpcyBwZXJtYW5lbnQgb25jZSBjb21wbGV0ZWQhXCIsXG4gICAgICAgICAgY3VzdG9tQ2xhc3M6IFwiYWxlcnQgYWxlcnQtd2FybmluZ1wiXG4gICAgICAgIH0pLm9wZW4oKTtcbiAgICAgIH07XG5cbiAgICAgIGZ1bmN0aW9uIGRlbGV0ZUVudGl0eShzZWxlY3Rpb24sIG5leHRDYWxsYmFjaykge1xuICAgICAgICB2YXIgbmFtZSA9IChzZWxlY3Rpb24gfHwge30pLiRuYW1lO1xuICAgICAgICBpZiAobmFtZSkge1xuICAgICAgICAgIGNvbnNvbGUubG9nKFwiQWJvdXQgdG8gZGVsZXRlIGltYWdlIHJlcG9zaXRvcnk6IFwiICsgbmFtZSk7XG4gICAgICAgICAgdmFyIHVybCA9IGltYWdlUmVwb3NpdG9yeVJlc3RVcmwobmFtZSk7XG4gICAgICAgICAgJGh0dHAuZGVsZXRlKHVybCkuXG4gICAgICAgICAgICBzdWNjZXNzKGZ1bmN0aW9uIChkYXRhLCBzdGF0dXMsIGhlYWRlcnMsIGNvbmZpZykge1xuICAgICAgICAgICAgICBuZXh0Q2FsbGJhY2soKTtcbiAgICAgICAgICAgIH0pLlxuICAgICAgICAgICAgZXJyb3IoZnVuY3Rpb24gKGRhdGEsIHN0YXR1cywgaGVhZGVycywgY29uZmlnKSB7XG4gICAgICAgICAgICAgIGxvZy53YXJuKFwiRmFpbGVkIHRvIGRlbGV0ZSBpbWFnZSByZXBvc2l0b3J5IG9uIFwiICsgdXJsICsgXCIgXCIgKyBkYXRhICsgXCIgXCIgKyBzdGF0dXMpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc29sZS5sb2coXCJ3YXJuaW5nOiBubyBuYW1lIGZvciBzZWxlY3Rpb246IFwiICsgYW5ndWxhci50b0pzb24oc2VsZWN0aW9uKSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgZnVuY3Rpb24gdXBkYXRlRGF0YSgpIHtcbiAgICAgICAgdmFyIHVybCA9IGltYWdlUmVwb3NpdG9yaWVzUmVzdFVSTCgpO1xuICAgICAgICAkaHR0cC5nZXQodXJsKS5cbiAgICAgICAgICBzdWNjZXNzKGZ1bmN0aW9uIChkYXRhLCBzdGF0dXMsIGhlYWRlcnMsIGNvbmZpZykge1xuICAgICAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgICAgLy9jb25zb2xlLmxvZyhcImdvdCBkYXRhIFwiICsgYW5ndWxhci50b0pzb24oZGF0YSwgdHJ1ZSkpO1xuICAgICAgICAgICAgICAkc2NvcGUuaW1hZ2VSZXBvc2l0b3JpZXMgPSBlbnJpY2hJbWFnZVJlcG9zaXRvcmllcyhkYXRhLml0ZW1zKTtcbiAgICAgICAgICAgICAgJHNjb3BlLmZldGNoZWQgPSB0cnVlO1xuICAgICAgICAgICAgICBDb3JlLiRhcHBseSgkc2NvcGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pLlxuICAgICAgICAgIGVycm9yKGZ1bmN0aW9uIChkYXRhLCBzdGF0dXMsIGhlYWRlcnMsIGNvbmZpZykge1xuICAgICAgICAgICAgbG9nLndhcm4oXCJGYWlsZWQgdG8gbG9hZCBcIiArIHVybCArIFwiIFwiICsgZGF0YSArIFwiIFwiICsgc3RhdHVzKTtcbiAgICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgdXBkYXRlRGF0YSgpO1xuICAgIH1dKTtcbn1cbiIsIi8vLyA8cmVmZXJlbmNlIHBhdGg9XCIuLi8uLi9pbmNsdWRlcy50c1wiLz5cblxubW9kdWxlIEt1YmVybmV0ZXMge1xuIFxuICBleHBvcnQgdmFyIHNjaGVtYSA9IFxue1xuICBcImlkXCI6IFwiaHR0cDovL2ZhYnJpYzguaW8vZmFicmljOC92Mi9TY2hlbWEjXCIsXG4gIFwiJHNjaGVtYVwiOiBcImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvc2NoZW1hI1wiLFxuICBcImRlZmluaXRpb25zXCI6IHtcbiAgICBcImt1YmVybmV0ZXNfQVdTRWxhc3RpY0Jsb2NrU3RvcmVWb2x1bWVTb3VyY2VcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcImZzVHlwZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImZpbGUgc3lzdGVtIHR5cGUgdG8gbW91bnRcIlxuICAgICAgICB9LFxuICAgICAgICBcInBhcnRpdGlvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJwYXJ0aXRpb24gb24gdGhlIGRpc2sgdG8gbW91bnQgKGUuZy5cIlxuICAgICAgICB9LFxuICAgICAgICBcInJlYWRPbmx5XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInJlYWQtb25seSBpZiB0cnVlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ2b2x1bWVJRFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInVuaXF1ZSBpZCBvZiB0aGUgUEQgcmVzb3VyY2UgaW4gQVdTXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkFXU0VsYXN0aWNCbG9ja1N0b3JlVm9sdW1lU291cmNlXCJcbiAgICB9LFxuICAgIFwia3ViZXJuZXRlc19DYXBhYmlsaXRpZXNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcImFkZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiYWRkZWQgY2FwYWJpbGl0aWVzXCIsXG4gICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJhZGRlZCBjYXBhYmlsaXRpZXNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJkcm9wXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJkcm9wZWQgY2FwYWJpbGl0aWVzXCIsXG4gICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJkcm9wZWQgY2FwYWJpbGl0aWVzXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5DYXBhYmlsaXRpZXNcIlxuICAgIH0sXG4gICAgXCJrdWJlcm5ldGVzX0NvbnRhaW5lclwiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiYXJnc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiY29tbWFuZCBhcnJheTsgdGhlIGRvY2tlciBpbWFnZSdzIGNtZCBpcyB1c2VkIGlmIHRoaXMgaXMgbm90IHByb3ZpZGVkOyBhcmd1bWVudHMgdG8gdGhlIGVudHJ5cG9pbnQ7IGNhbm5vdCBiZSB1cGRhdGVkXCIsXG4gICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJjb21tYW5kIGFycmF5OyB0aGUgZG9ja2VyIGltYWdlJ3MgY21kIGlzIHVzZWQgaWYgdGhpcyBpcyBub3QgcHJvdmlkZWQ7IGFyZ3VtZW50cyB0byB0aGUgZW50cnlwb2ludDsgY2Fubm90IGJlIHVwZGF0ZWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJjb21tYW5kXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJlbnRyeXBvaW50IGFycmF5OyBub3QgZXhlY3V0ZWQgd2l0aGluIGEgc2hlbGw7IHRoZSBkb2NrZXIgaW1hZ2UncyBlbnRyeXBvaW50IGlzIHVzZWQgaWYgdGhpcyBpcyBub3QgcHJvdmlkZWQ7IGNhbm5vdCBiZSB1cGRhdGVkXCIsXG4gICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJlbnRyeXBvaW50IGFycmF5OyBub3QgZXhlY3V0ZWQgd2l0aGluIGEgc2hlbGw7IHRoZSBkb2NrZXIgaW1hZ2UncyBlbnRyeXBvaW50IGlzIHVzZWQgaWYgdGhpcyBpcyBub3QgcHJvdmlkZWQ7IGNhbm5vdCBiZSB1cGRhdGVkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiZW52XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJsaXN0IG9mIGVudmlyb25tZW50IHZhcmlhYmxlcyB0byBzZXQgaW4gdGhlIGNvbnRhaW5lcjsgY2Fubm90IGJlIHVwZGF0ZWRcIixcbiAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19FbnZWYXJcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkVudlZhclwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImltYWdlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiRG9ja2VyIGltYWdlIG5hbWVcIlxuICAgICAgICB9LFxuICAgICAgICBcImltYWdlUHVsbFBvbGljeVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImltYWdlIHB1bGwgcG9saWN5OyBvbmUgb2YgQWx3YXlzXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJsaWZlY3ljbGVcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19MaWZlY3ljbGVcIixcbiAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5MaWZlY3ljbGVcIlxuICAgICAgICB9LFxuICAgICAgICBcImxpdmVuZXNzUHJvYmVcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19Qcm9iZVwiLFxuICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLlByb2JlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJuYW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibmFtZSBvZiB0aGUgY29udGFpbmVyOyBtdXN0IGJlIGEgRE5TX0xBQkVMIGFuZCB1bmlxdWUgd2l0aGluIHRoZSBwb2Q7IGNhbm5vdCBiZSB1cGRhdGVkXCIsXG4gICAgICAgICAgXCJtYXhMZW5ndGhcIjogNjMsXG4gICAgICAgICAgXCJwYXR0ZXJuXCI6IFwiXlthLXowLTldKFstYS16MC05XSpbYS16MC05XSk/JFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwicG9ydHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImxpc3Qgb2YgcG9ydHMgdG8gZXhwb3NlIGZyb20gdGhlIGNvbnRhaW5lcjsgY2Fubm90IGJlIHVwZGF0ZWRcIixcbiAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19Db250YWluZXJQb3J0XCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5Db250YWluZXJQb3J0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicmVhZGluZXNzUHJvYmVcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19Qcm9iZVwiLFxuICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLlByb2JlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJyZXNvdXJjZXNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19SZXNvdXJjZVJlcXVpcmVtZW50c1wiLFxuICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLlJlc291cmNlUmVxdWlyZW1lbnRzXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJzZWN1cml0eUNvbnRleHRcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19TZWN1cml0eUNvbnRleHRcIixcbiAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5TZWN1cml0eUNvbnRleHRcIlxuICAgICAgICB9LFxuICAgICAgICBcInRlcm1pbmF0aW9uTWVzc2FnZVBhdGhcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJwYXRoIGF0IHdoaWNoIHRoZSBmaWxlIHRvIHdoaWNoIHRoZSBjb250YWluZXIncyB0ZXJtaW5hdGlvbiBtZXNzYWdlIHdpbGwgYmUgd3JpdHRlbiBpcyBtb3VudGVkIGludG8gdGhlIGNvbnRhaW5lcidzIGZpbGVzeXN0ZW07IG1lc3NhZ2Ugd3JpdHRlbiBpcyBpbnRlbmRlZCB0byBiZSBicmllZiBmaW5hbCBzdGF0dXNcIlxuICAgICAgICB9LFxuICAgICAgICBcInZvbHVtZU1vdW50c1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwicG9kIHZvbHVtZXMgdG8gbW91bnQgaW50byB0aGUgY29udGFpbmVyJ3MgZmlsZXN5c3RlOyBjYW5ub3QgYmUgdXBkYXRlZFwiLFxuICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX1ZvbHVtZU1vdW50XCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5Wb2x1bWVNb3VudFwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIndvcmtpbmdEaXJcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJjb250YWluZXIncyB3b3JraW5nIGRpcmVjdG9yeTsgZGVmYXVsdHMgdG8gaW1hZ2UncyBkZWZhdWx0OyBjYW5ub3QgYmUgdXBkYXRlZFwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5Db250YWluZXJcIlxuICAgIH0sXG4gICAgXCJrdWJlcm5ldGVzX0NvbnRhaW5lclBvcnRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcImNvbnRhaW5lclBvcnRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibnVtYmVyIG9mIHBvcnQgdG8gZXhwb3NlIG9uIHRoZSBwb2QncyBJUCBhZGRyZXNzXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJob3N0SVBcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJob3N0IElQIHRvIGJpbmQgdGhlIHBvcnQgdG9cIlxuICAgICAgICB9LFxuICAgICAgICBcImhvc3RQb3J0XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIm51bWJlciBvZiBwb3J0IHRvIGV4cG9zZSBvbiB0aGUgaG9zdDsgbW9zdCBjb250YWluZXJzIGRvIG5vdCBuZWVkIHRoaXNcIlxuICAgICAgICB9LFxuICAgICAgICBcIm5hbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJuYW1lIGZvciB0aGUgcG9ydCB0aGF0IGNhbiBiZSByZWZlcnJlZCB0byBieSBzZXJ2aWNlczsgbXVzdCBiZSBhIEROU19MQUJFTCBhbmQgdW5pcXVlIHdpdGhvdXQgdGhlIHBvZFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwicHJvdG9jb2xcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJwcm90b2NvbCBmb3IgcG9ydDsgbXVzdCBiZSBVRFAgb3IgVENQOyBUQ1AgaWYgdW5zcGVjaWZpZWRcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuQ29udGFpbmVyUG9ydFwiXG4gICAgfSxcbiAgICBcImt1YmVybmV0ZXNfQ29udGFpbmVyU3RhdGVcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcInJ1bm5pbmdcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19Db250YWluZXJTdGF0ZVJ1bm5pbmdcIixcbiAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5Db250YWluZXJTdGF0ZVJ1bm5pbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcInRlcm1pbmF0aW9uXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfQ29udGFpbmVyU3RhdGVUZXJtaW5hdGVkXCIsXG4gICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuQ29udGFpbmVyU3RhdGVUZXJtaW5hdGVkXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ3YWl0aW5nXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfQ29udGFpbmVyU3RhdGVXYWl0aW5nXCIsXG4gICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuQ29udGFpbmVyU3RhdGVXYWl0aW5nXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkNvbnRhaW5lclN0YXRlXCJcbiAgICB9LFxuICAgIFwia3ViZXJuZXRlc19Db250YWluZXJTdGF0ZVJ1bm5pbmdcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcInN0YXJ0ZWRBdFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInRpbWUgYXQgd2hpY2ggdGhlIGNvbnRhaW5lciB3YXMgbGFzdCAocmUtKXN0YXJ0ZWRcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuQ29udGFpbmVyU3RhdGVSdW5uaW5nXCJcbiAgICB9LFxuICAgIFwia3ViZXJuZXRlc19Db250YWluZXJTdGF0ZVRlcm1pbmF0ZWRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcImNvbnRhaW5lcklEXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiY29udGFpbmVyJ3MgSUQgaW4gdGhlIGZvcm1hdCAnZG9ja2VyOi8vXFx1MDAzY2NvbnRhaW5lcl9pZFxcdTAwM2UnXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJleGl0Q29kZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJleGl0IHN0YXR1cyBmcm9tIHRoZSBsYXN0IHRlcm1pbmF0aW9uIG9mIHRoZSBjb250YWluZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcImZpbmlzaGVkQXRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJ0aW1lIGF0IHdoaWNoIHRoZSBjb250YWluZXIgbGFzdCB0ZXJtaW5hdGVkXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtZXNzYWdlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibWVzc2FnZSByZWdhcmRpbmcgdGhlIGxhc3QgdGVybWluYXRpb24gb2YgdGhlIGNvbnRhaW5lclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwicmVhc29uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiKGJyaWVmKSByZWFzb24gZnJvbSB0aGUgbGFzdCB0ZXJtaW5hdGlvbiBvZiB0aGUgY29udGFpbmVyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJzaWduYWxcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwic2lnbmFsIGZyb20gdGhlIGxhc3QgdGVybWluYXRpb24gb2YgdGhlIGNvbnRhaW5lclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwic3RhcnRlZEF0XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwidGltZSBhdCB3aGljaCBwcmV2aW91cyBleGVjdXRpb24gb2YgdGhlIGNvbnRhaW5lciBzdGFydGVkXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkNvbnRhaW5lclN0YXRlVGVybWluYXRlZFwiXG4gICAgfSxcbiAgICBcImt1YmVybmV0ZXNfQ29udGFpbmVyU3RhdGVXYWl0aW5nXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJyZWFzb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCIoYnJpZWYpIHJlYXNvbiB0aGUgY29udGFpbmVyIGlzIG5vdCB5ZXQgcnVubmluZ1wiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5Db250YWluZXJTdGF0ZVdhaXRpbmdcIlxuICAgIH0sXG4gICAgXCJrdWJlcm5ldGVzX0NvbnRhaW5lclN0YXR1c1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiY29udGFpbmVySURcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJjb250YWluZXIncyBJRCBpbiB0aGUgZm9ybWF0ICdkb2NrZXI6Ly9cXHUwMDNjY29udGFpbmVyX2lkXFx1MDAzZSdcIlxuICAgICAgICB9LFxuICAgICAgICBcImltYWdlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiaW1hZ2Ugb2YgdGhlIGNvbnRhaW5lclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiaW1hZ2VJRFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIklEIG9mIHRoZSBjb250YWluZXIncyBpbWFnZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibGFzdFN0YXRlXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfQ29udGFpbmVyU3RhdGVcIixcbiAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5Db250YWluZXJTdGF0ZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibmFtZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIm5hbWUgb2YgdGhlIGNvbnRhaW5lcjsgbXVzdCBiZSBhIEROU19MQUJFTCBhbmQgdW5pcXVlIHdpdGhpbiB0aGUgcG9kOyBjYW5ub3QgYmUgdXBkYXRlZFwiLFxuICAgICAgICAgIFwibWF4TGVuZ3RoXCI6IDYzLFxuICAgICAgICAgIFwicGF0dGVyblwiOiBcIl5bYS16MC05XShbLWEtejAtOV0qW2EtejAtOV0pPyRcIlxuICAgICAgICB9LFxuICAgICAgICBcInJlYWR5XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInNwZWNpZmllcyB3aGV0aGVyIHRoZSBjb250YWluZXIgaGFzIHBhc3NlZCBpdHMgcmVhZGluZXNzIHByb2JlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJyZXN0YXJ0Q291bnRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwidGhlIG51bWJlciBvZiB0aW1lcyB0aGUgY29udGFpbmVyIGhhcyBiZWVuIHJlc3RhcnRlZFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwic3RhdGVcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19Db250YWluZXJTdGF0ZVwiLFxuICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkNvbnRhaW5lclN0YXRlXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkNvbnRhaW5lclN0YXR1c1wiXG4gICAgfSxcbiAgICBcImt1YmVybmV0ZXNfRW1wdHlEaXJWb2x1bWVTb3VyY2VcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcIm1lZGl1bVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInR5cGUgb2Ygc3RvcmFnZSB1c2VkIHRvIGJhY2sgdGhlIHZvbHVtZTsgbXVzdCBiZSBhbiBlbXB0eSBzdHJpbmcgKGRlZmF1bHQpIG9yIE1lbW9yeVwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5FbXB0eURpclZvbHVtZVNvdXJjZVwiXG4gICAgfSxcbiAgICBcImt1YmVybmV0ZXNfRW5kcG9pbnRBZGRyZXNzXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJpcFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIklQIGFkZHJlc3Mgb2YgdGhlIGVuZHBvaW50XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0YXJnZXRSZWZcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19PYmplY3RSZWZlcmVuY2VcIixcbiAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5PYmplY3RSZWZlcmVuY2VcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuRW5kcG9pbnRBZGRyZXNzXCJcbiAgICB9LFxuICAgIFwia3ViZXJuZXRlc19FbmRwb2ludFBvcnRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcIm5hbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJuYW1lIG9mIHRoaXMgcG9ydFwiLFxuICAgICAgICAgIFwibWF4TGVuZ3RoXCI6IDYzLFxuICAgICAgICAgIFwicGF0dGVyblwiOiBcIl5bYS16MC05XShbLWEtejAtOV0qW2EtejAtOV0pPyRcIlxuICAgICAgICB9LFxuICAgICAgICBcInBvcnRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwicG9ydCBudW1iZXIgb2YgdGhlIGVuZHBvaW50XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJwcm90b2NvbFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInByb3RvY29sIGZvciB0aGlzIHBvcnQ7IG11c3QgYmUgVURQIG9yIFRDUDsgVENQIGlmIHVuc3BlY2lmaWVkXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkVuZHBvaW50UG9ydFwiXG4gICAgfSxcbiAgICBcImt1YmVybmV0ZXNfRW5kcG9pbnRTdWJzZXRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcImFkZHJlc3Nlc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiSVAgYWRkcmVzc2VzIHdoaWNoIG9mZmVyIHRoZSByZWxhdGVkIHBvcnRzXCIsXG4gICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfRW5kcG9pbnRBZGRyZXNzXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5FbmRwb2ludEFkZHJlc3NcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwb3J0c1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwicG9ydCBudW1iZXJzIGF2YWlsYWJsZSBvbiB0aGUgcmVsYXRlZCBJUCBhZGRyZXNzZXNcIixcbiAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19FbmRwb2ludFBvcnRcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkVuZHBvaW50UG9ydFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuRW5kcG9pbnRTdWJzZXRcIlxuICAgIH0sXG4gICAgXCJrdWJlcm5ldGVzX0VuZHBvaW50c1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiYXBpVmVyc2lvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICAgIFwiZGVmYXVsdFwiOiBcInYxXCIsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlLFxuICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICBcInYxXCJcbiAgICAgICAgICBdXG4gICAgICAgIH0sXG4gICAgICAgIFwia2luZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICAgIFwiZGVmYXVsdFwiOiBcIkVuZHBvaW50c1wiLFxuICAgICAgICAgIFwicmVxdWlyZWRcIjogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfT2JqZWN0TWV0YVwiLFxuICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLk9iamVjdE1ldGFcIlxuICAgICAgICB9LFxuICAgICAgICBcInN1YnNldHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInNldHMgb2YgYWRkcmVzc2VzIGFuZCBwb3J0cyB0aGF0IGNvbXByaXNlIGEgc2VydmljZVwiLFxuICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX0VuZHBvaW50U3Vic2V0XCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5FbmRwb2ludFN1YnNldFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuRW5kcG9pbnRzXCIsXG4gICAgICBcImphdmFJbnRlcmZhY2VzXCI6IFtcbiAgICAgICAgXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkhhc01ldGFkYXRhXCJcbiAgICAgIF1cbiAgICB9LFxuICAgIFwia3ViZXJuZXRlc19FbmRwb2ludHNMaXN0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJhcGlWZXJzaW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgXCJkZWZhdWx0XCI6IFwidjFcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IHRydWUsXG4gICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgIFwidjFcIlxuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibGlzdCBvZiBlbmRwb2ludHNcIixcbiAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19FbmRwb2ludHNcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkVuZHBvaW50c1wiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImtpbmRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICBcImRlZmF1bHRcIjogXCJFbmRwb2ludHNMaXN0XCIsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIFwibWV0YWRhdGFcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19MaXN0TWV0YVwiLFxuICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkxpc3RNZXRhXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkVuZHBvaW50c0xpc3RcIixcbiAgICAgIFwiamF2YUludGVyZmFjZXNcIjogW1xuICAgICAgICBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuS3ViZXJuZXRlc1Jlc291cmNlXCJcbiAgICAgIF1cbiAgICB9LFxuICAgIFwia3ViZXJuZXRlc19FbnZWYXJcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcIm5hbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJuYW1lIG9mIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZTsgbXVzdCBiZSBhIENfSURFTlRJRklFUlwiLFxuICAgICAgICAgIFwicGF0dGVyblwiOiBcIl5bQS1aYS16X11bQS1aYS16MC05X10qJFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidmFsdWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJ2YWx1ZSBvZiB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGU7IGRlZmF1bHRzIHRvIGVtcHR5IHN0cmluZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwidmFsdWVGcm9tXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfRW52VmFyU291cmNlXCIsXG4gICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuRW52VmFyU291cmNlXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkVudlZhclwiXG4gICAgfSxcbiAgICBcImt1YmVybmV0ZXNfRW52VmFyU291cmNlXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJmaWVsZFJlZlwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX09iamVjdEZpZWxkU2VsZWN0b3JcIixcbiAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5PYmplY3RGaWVsZFNlbGVjdG9yXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkVudlZhclNvdXJjZVwiXG4gICAgfSxcbiAgICBcImt1YmVybmV0ZXNfRXhlY0FjdGlvblwiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiY29tbWFuZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiY29tbWFuZCBsaW5lIHRvIGV4ZWN1dGUgaW5zaWRlIHRoZSBjb250YWluZXI7IHdvcmtpbmcgZGlyZWN0b3J5IGZvciB0aGUgY29tbWFuZCBpcyByb290ICgnLycpIGluIHRoZSBjb250YWluZXIncyBmaWxlIHN5c3RlbTsgdGhlIGNvbW1hbmQgaXMgZXhlYydkXCIsXG4gICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJjb21tYW5kIGxpbmUgdG8gZXhlY3V0ZSBpbnNpZGUgdGhlIGNvbnRhaW5lcjsgd29ya2luZyBkaXJlY3RvcnkgZm9yIHRoZSBjb21tYW5kIGlzIHJvb3QgKCcvJykgaW4gdGhlIGNvbnRhaW5lcidzIGZpbGUgc3lzdGVtOyB0aGUgY29tbWFuZCBpcyBleGVjJ2RcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkV4ZWNBY3Rpb25cIlxuICAgIH0sXG4gICAgXCJrdWJlcm5ldGVzX0dDRVBlcnNpc3RlbnREaXNrVm9sdW1lU291cmNlXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJmc1R5cGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJmaWxlIHN5c3RlbSB0eXBlIHRvIG1vdW50XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXJ0aXRpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwicGFydGl0aW9uIG9uIHRoZSBkaXNrIHRvIG1vdW50IChlLmcuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJwZE5hbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJ1bmlxdWUgbmFtZSBvZiB0aGUgUEQgcmVzb3VyY2UgaW4gR0NFXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJyZWFkT25seVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJyZWFkLW9ubHkgaWYgdHJ1ZVwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5HQ0VQZXJzaXN0ZW50RGlza1ZvbHVtZVNvdXJjZVwiXG4gICAgfSxcbiAgICBcImt1YmVybmV0ZXNfR2l0UmVwb1ZvbHVtZVNvdXJjZVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwicmVwb3NpdG9yeVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInJlcG9zaXRvcnkgVVJMXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJyZXZpc2lvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImNvbW1pdCBoYXNoIGZvciB0aGUgc3BlY2lmaWVkIHJldmlzaW9uXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkdpdFJlcG9Wb2x1bWVTb3VyY2VcIlxuICAgIH0sXG4gICAgXCJrdWJlcm5ldGVzX0dsdXN0ZXJmc1ZvbHVtZVNvdXJjZVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiZW5kcG9pbnRzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiZ2x1c3RlciBob3N0cyBlbmRwb2ludHMgbmFtZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwicGF0aFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInBhdGggdG8gZ2x1c3RlciB2b2x1bWVcIlxuICAgICAgICB9LFxuICAgICAgICBcInJlYWRPbmx5XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImdsdXN0ZXJmcyB2b2x1bWUgdG8gYmUgbW91bnRlZCB3aXRoIHJlYWQtb25seSBwZXJtaXNzaW9uc1wiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5HbHVzdGVyZnNWb2x1bWVTb3VyY2VcIlxuICAgIH0sXG4gICAgXCJrdWJlcm5ldGVzX0hUVFBHZXRBY3Rpb25cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcImhvc3RcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJob3N0bmFtZSB0byBjb25uZWN0IHRvOyBkZWZhdWx0cyB0byBwb2QgSVBcIlxuICAgICAgICB9LFxuICAgICAgICBcInBhdGhcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJwYXRoIHRvIGFjY2VzcyBvbiB0aGUgSFRUUCBzZXJ2ZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcInBvcnRcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc191dGlsX0ludE9yU3RyaW5nXCIsXG4gICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwudXRpbC5JbnRPclN0cmluZ1wiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5IVFRQR2V0QWN0aW9uXCJcbiAgICB9LFxuICAgIFwia3ViZXJuZXRlc19IYW5kbGVyXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJleGVjXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfRXhlY0FjdGlvblwiLFxuICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkV4ZWNBY3Rpb25cIlxuICAgICAgICB9LFxuICAgICAgICBcImh0dHBHZXRcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19IVFRQR2V0QWN0aW9uXCIsXG4gICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuSFRUUEdldEFjdGlvblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidGNwU29ja2V0XCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfVENQU29ja2V0QWN0aW9uXCIsXG4gICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuVENQU29ja2V0QWN0aW9uXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkhhbmRsZXJcIlxuICAgIH0sXG4gICAgXCJrdWJlcm5ldGVzX0hvc3RQYXRoVm9sdW1lU291cmNlXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJwYXRoXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwicGF0aCBvZiB0aGUgZGlyZWN0b3J5IG9uIHRoZSBob3N0XCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkhvc3RQYXRoVm9sdW1lU291cmNlXCJcbiAgICB9LFxuICAgIFwia3ViZXJuZXRlc19JU0NTSVZvbHVtZVNvdXJjZVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiZnNUeXBlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiZmlsZSBzeXN0ZW0gdHlwZSB0byBtb3VudFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiaXFuXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiaVNDU0kgUXVhbGlmaWVkIE5hbWVcIlxuICAgICAgICB9LFxuICAgICAgICBcImx1blwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJpc2NzaSB0YXJnZXQgbHVuIG51bWJlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwicmVhZE9ubHlcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwicmVhZC1vbmx5IGlmIHRydWVcIlxuICAgICAgICB9LFxuICAgICAgICBcInRhcmdldFBvcnRhbFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImlTQ1NJIHRhcmdldCBwb3J0YWxcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuSVNDU0lWb2x1bWVTb3VyY2VcIlxuICAgIH0sXG4gICAgXCJrdWJlcm5ldGVzX0xpZmVjeWNsZVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwicG9zdFN0YXJ0XCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfSGFuZGxlclwiLFxuICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkhhbmRsZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcInByZVN0b3BcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19IYW5kbGVyXCIsXG4gICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuSGFuZGxlclwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5MaWZlY3ljbGVcIlxuICAgIH0sXG4gICAgXCJrdWJlcm5ldGVzX0xpc3RcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcImFwaVZlcnNpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICBcImRlZmF1bHRcIjogXCJ2MVwiLFxuICAgICAgICAgIFwicmVxdWlyZWRcIjogdHJ1ZSxcbiAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgXCJ2MVwiXG4gICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJsaXN0IG9mIG9iamVjdHNcIixcbiAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19ydW50aW1lX1Jhd0V4dGVuc2lvblwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuSGFzTWV0YWRhdGFcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJraW5kXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgXCJkZWZhdWx0XCI6IFwiTGlzdFwiLFxuICAgICAgICAgIFwicmVxdWlyZWRcIjogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfTGlzdE1ldGFcIixcbiAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5MaXN0TWV0YVwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5CYXNlS3ViZXJuZXRlc0xpc3RcIixcbiAgICAgIFwiamF2YUludGVyZmFjZXNcIjogW1xuICAgICAgICBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuS3ViZXJuZXRlc1Jlc291cmNlXCJcbiAgICAgIF1cbiAgICB9LFxuICAgIFwia3ViZXJuZXRlc19MaXN0TWV0YVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwicmVzb3VyY2VWZXJzaW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwic3RyaW5nIHRoYXQgaWRlbnRpZmllcyB0aGUgaW50ZXJuYWwgdmVyc2lvbiBvZiB0aGlzIG9iamVjdCB0aGF0IGNhbiBiZSB1c2VkIGJ5IGNsaWVudHMgdG8gZGV0ZXJtaW5lIHdoZW4gb2JqZWN0cyBoYXZlIGNoYW5nZWQ7IHBvcHVsYXRlZCBieSB0aGUgc3lzdGVtXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJzZWxmTGlua1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlVSTCBmb3IgdGhlIG9iamVjdDsgcG9wdWxhdGVkIGJ5IHRoZSBzeXN0ZW1cIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuTGlzdE1ldGFcIlxuICAgIH0sXG4gICAgXCJrdWJlcm5ldGVzX0xvYWRCYWxhbmNlckluZ3Jlc3NcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcImhvc3RuYW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiaG9zdG5hbWUgb2YgaW5ncmVzcyBwb2ludFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiaXBcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJJUCBhZGRyZXNzIG9mIGluZ3Jlc3MgcG9pbnRcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuTG9hZEJhbGFuY2VySW5ncmVzc1wiXG4gICAgfSxcbiAgICBcImt1YmVybmV0ZXNfTG9hZEJhbGFuY2VyU3RhdHVzXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJpbmdyZXNzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJsb2FkLWJhbGFuY2VyIGluZ3Jlc3MgcG9pbnRzXCIsXG4gICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfTG9hZEJhbGFuY2VySW5ncmVzc1wiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuTG9hZEJhbGFuY2VySW5ncmVzc1wiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuTG9hZEJhbGFuY2VyU3RhdHVzXCJcbiAgICB9LFxuICAgIFwia3ViZXJuZXRlc19Mb2NhbE9iamVjdFJlZmVyZW5jZVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwibmFtZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIm5hbWUgb2YgdGhlIHJlZmVyZW50XCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkxvY2FsT2JqZWN0UmVmZXJlbmNlXCJcbiAgICB9LFxuICAgIFwia3ViZXJuZXRlc19ORlNWb2x1bWVTb3VyY2VcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcInBhdGhcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJ0aGUgcGF0aCB0aGF0IGlzIGV4cG9ydGVkIGJ5IHRoZSBORlMgc2VydmVyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJyZWFkT25seVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJmb3JjZXMgdGhlIE5GUyBleHBvcnQgdG8gYmUgbW91bnRlZCB3aXRoIHJlYWQtb25seSBwZXJtaXNzaW9uc1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwic2VydmVyXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwidGhlIGhvc3RuYW1lIG9yIElQIGFkZHJlc3Mgb2YgdGhlIE5GUyBzZXJ2ZXJcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuTkZTVm9sdW1lU291cmNlXCJcbiAgICB9LFxuICAgIFwia3ViZXJuZXRlc19OYW1lc3BhY2VcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcImFwaVZlcnNpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICBcImRlZmF1bHRcIjogXCJ2MVwiLFxuICAgICAgICAgIFwicmVxdWlyZWRcIjogdHJ1ZSxcbiAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgXCJ2MVwiXG4gICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICBcImtpbmRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICBcImRlZmF1bHRcIjogXCJOYW1lc3BhY2VcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgXCJtZXRhZGF0YVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX09iamVjdE1ldGFcIixcbiAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5PYmplY3RNZXRhXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJzcGVjXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfTmFtZXNwYWNlU3BlY1wiLFxuICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLk5hbWVzcGFjZVNwZWNcIlxuICAgICAgICB9LFxuICAgICAgICBcInN0YXR1c1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX05hbWVzcGFjZVN0YXR1c1wiLFxuICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLk5hbWVzcGFjZVN0YXR1c1wiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5OYW1lc3BhY2VcIixcbiAgICAgIFwiamF2YUludGVyZmFjZXNcIjogW1xuICAgICAgICBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuSGFzTWV0YWRhdGFcIlxuICAgICAgXVxuICAgIH0sXG4gICAgXCJrdWJlcm5ldGVzX05hbWVzcGFjZUxpc3RcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcImFwaVZlcnNpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICBcImRlZmF1bHRcIjogXCJ2MVwiLFxuICAgICAgICAgIFwicmVxdWlyZWRcIjogdHJ1ZSxcbiAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgXCJ2MVwiXG4gICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJpdGVtcyBpcyB0aGUgbGlzdCBvZiBOYW1lc3BhY2Ugb2JqZWN0cyBpbiB0aGUgbGlzdFwiLFxuICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX05hbWVzcGFjZVwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuTmFtZXNwYWNlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwia2luZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICAgIFwiZGVmYXVsdFwiOiBcIk5hbWVzcGFjZUxpc3RcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgXCJtZXRhZGF0YVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX0xpc3RNZXRhXCIsXG4gICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuTGlzdE1ldGFcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuTmFtZXNwYWNlTGlzdFwiLFxuICAgICAgXCJqYXZhSW50ZXJmYWNlc1wiOiBbXG4gICAgICAgIFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5LdWJlcm5ldGVzUmVzb3VyY2VcIlxuICAgICAgXVxuICAgIH0sXG4gICAgXCJrdWJlcm5ldGVzX05hbWVzcGFjZVNwZWNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcImZpbmFsaXplcnNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImFuIG9wYXF1ZSBsaXN0IG9mIHZhbHVlcyB0aGF0IG11c3QgYmUgZW1wdHkgdG8gcGVybWFuZW50bHkgcmVtb3ZlIG9iamVjdCBmcm9tIHN0b3JhZ2VcIixcbiAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImFuIG9wYXF1ZSBsaXN0IG9mIHZhbHVlcyB0aGF0IG11c3QgYmUgZW1wdHkgdG8gcGVybWFuZW50bHkgcmVtb3ZlIG9iamVjdCBmcm9tIHN0b3JhZ2VcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLk5hbWVzcGFjZVNwZWNcIlxuICAgIH0sXG4gICAgXCJrdWJlcm5ldGVzX05hbWVzcGFjZVN0YXR1c1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwicGhhc2VcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJwaGFzZSBpcyB0aGUgY3VycmVudCBsaWZlY3ljbGUgcGhhc2Ugb2YgdGhlIG5hbWVzcGFjZVwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5OYW1lc3BhY2VTdGF0dXNcIlxuICAgIH0sXG4gICAgXCJrdWJlcm5ldGVzX05vZGVcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcImFwaVZlcnNpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICBcImRlZmF1bHRcIjogXCJ2MVwiLFxuICAgICAgICAgIFwicmVxdWlyZWRcIjogdHJ1ZSxcbiAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgXCJ2MVwiXG4gICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICBcImtpbmRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICBcImRlZmF1bHRcIjogXCJOb2RlXCIsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIFwibWV0YWRhdGFcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19PYmplY3RNZXRhXCIsXG4gICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuT2JqZWN0TWV0YVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwic3BlY1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX05vZGVTcGVjXCIsXG4gICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuTm9kZVNwZWNcIlxuICAgICAgICB9LFxuICAgICAgICBcInN0YXR1c1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX05vZGVTdGF0dXNcIixcbiAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5Ob2RlU3RhdHVzXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLk5vZGVcIixcbiAgICAgIFwiamF2YUludGVyZmFjZXNcIjogW1xuICAgICAgICBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuSGFzTWV0YWRhdGFcIlxuICAgICAgXVxuICAgIH0sXG4gICAgXCJrdWJlcm5ldGVzX05vZGVBZGRyZXNzXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJhZGRyZXNzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwidGhlIG5vZGUgYWRkcmVzc1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwidHlwZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIm5vZGUgYWRkcmVzcyB0eXBlXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLk5vZGVBZGRyZXNzXCJcbiAgICB9LFxuICAgIFwia3ViZXJuZXRlc19Ob2RlQ29uZGl0aW9uXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJsYXN0SGVhcnRiZWF0VGltZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImxhc3QgdGltZSB3ZSBnb3QgYW4gdXBkYXRlIG9uIGEgZ2l2ZW4gY29uZGl0aW9uXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJsYXN0VHJhbnNpdGlvblRpbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJsYXN0IHRpbWUgdGhlIGNvbmRpdGlvbiB0cmFuc2l0IGZyb20gb25lIHN0YXR1cyB0byBhbm90aGVyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtZXNzYWdlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiaHVtYW4gcmVhZGFibGUgbWVzc2FnZSBpbmRpY2F0aW5nIGRldGFpbHMgYWJvdXQgbGFzdCB0cmFuc2l0aW9uXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJyZWFzb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCIoYnJpZWYpIHJlYXNvbiBmb3IgdGhlIGNvbmRpdGlvbidzIGxhc3QgdHJhbnNpdGlvblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwic3RhdHVzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwic3RhdHVzIG9mIHRoZSBjb25kaXRpb25cIlxuICAgICAgICB9LFxuICAgICAgICBcInR5cGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJ0eXBlIG9mIG5vZGUgY29uZGl0aW9uXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLk5vZGVDb25kaXRpb25cIlxuICAgIH0sXG4gICAgXCJrdWJlcm5ldGVzX05vZGVMaXN0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJhcGlWZXJzaW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgXCJkZWZhdWx0XCI6IFwidjFcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IHRydWUsXG4gICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgIFwidjFcIlxuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibGlzdCBvZiBub2Rlc1wiLFxuICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX05vZGVcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLk5vZGVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJraW5kXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgXCJkZWZhdWx0XCI6IFwiTm9kZUxpc3RcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgXCJtZXRhZGF0YVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX0xpc3RNZXRhXCIsXG4gICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuTGlzdE1ldGFcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuTm9kZUxpc3RcIixcbiAgICAgIFwiamF2YUludGVyZmFjZXNcIjogW1xuICAgICAgICBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuS3ViZXJuZXRlc1Jlc291cmNlXCJcbiAgICAgIF1cbiAgICB9LFxuICAgIFwia3ViZXJuZXRlc19Ob2RlU3BlY1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiZXh0ZXJuYWxJRFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImV4dGVybmFsIElEIGFzc2lnbmVkIHRvIHRoZSBub2RlIGJ5IHNvbWUgbWFjaGluZSBkYXRhYmFzZSAoZS5nLiBhIGNsb3VkIHByb3ZpZGVyKS4gRGVmYXVsdHMgdG8gbm9kZSBuYW1lIHdoZW4gZW1wdHkuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJwb2RDSURSXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwicG9kIElQIHJhbmdlIGFzc2lnbmVkIHRvIHRoZSBub2RlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ1bnNjaGVkdWxhYmxlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImRpc2FibGUgcG9kIHNjaGVkdWxpbmcgb24gdGhlIG5vZGVcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuTm9kZVNwZWNcIlxuICAgIH0sXG4gICAgXCJrdWJlcm5ldGVzX05vZGVTdGF0dXNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcImFkZHJlc3Nlc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibGlzdCBvZiBhZGRyZXNzZXMgcmVhY2hhYmxlIHRvIHRoZSBub2RlXCIsXG4gICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfTm9kZUFkZHJlc3NcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLk5vZGVBZGRyZXNzXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiY2FwYWNpdHlcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJjb21wdXRlIHJlc291cmNlIGNhcGFjaXR5IG9mIHRoZSBub2RlOyBodHRwOi8vZG9jcy5rOHMuaW8vcmVzb3VyY2VzLm1kXCIsXG4gICAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfcmVzb3VyY2VfUXVhbnRpdHlcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLnJlc291cmNlLlF1YW50aXR5XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJqYXZhLnV0aWwuTWFwXFx1MDAzY1N0cmluZyxpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLnJlc291cmNlLlF1YW50aXR5XFx1MDAzZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiY29uZGl0aW9uc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibGlzdCBvZiBub2RlIGNvbmRpdGlvbnMgb2JzZXJ2ZWRcIixcbiAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19Ob2RlQ29uZGl0aW9uXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5Ob2RlQ29uZGl0aW9uXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwibm9kZUluZm9cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19Ob2RlU3lzdGVtSW5mb1wiLFxuICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLk5vZGVTeXN0ZW1JbmZvXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJwaGFzZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIm1vc3QgcmVjZW50bHkgb2JzZXJ2ZWQgbGlmZWN5Y2xlIHBoYXNlIG9mIHRoZSBub2RlXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLk5vZGVTdGF0dXNcIlxuICAgIH0sXG4gICAgXCJrdWJlcm5ldGVzX05vZGVTeXN0ZW1JbmZvXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJib290SURcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJib290IGlkIGlzIHRoZSBib290LWlkIHJlcG9ydGVkIGJ5IHRoZSBub2RlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJjb250YWluZXJSdW50aW1lVmVyc2lvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkNvbnRhaW5lciBydW50aW1lIHZlcnNpb24gcmVwb3J0ZWQgYnkgdGhlIG5vZGUgdGhyb3VnaCBydW50aW1lIHJlbW90ZSBBUEkgKGUuZy4gZG9ja2VyOi8vMS41LjApXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJrZXJuZWxWZXJzaW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiS2VybmVsIHZlcnNpb24gcmVwb3J0ZWQgYnkgdGhlIG5vZGUgZnJvbSAndW5hbWUgLXInIChlLmcuIDMuMTYuMC0wLmJwby40LWFtZDY0KVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwia3ViZVByb3h5VmVyc2lvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkt1YmUtcHJveHkgdmVyc2lvbiByZXBvcnRlZCBieSB0aGUgbm9kZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwia3ViZWxldFZlcnNpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJLdWJlbGV0IHZlcnNpb24gcmVwb3J0ZWQgYnkgdGhlIG5vZGVcIlxuICAgICAgICB9LFxuICAgICAgICBcIm1hY2hpbmVJRFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIm1hY2hpbmUtaWQgcmVwb3J0ZWQgYnkgdGhlIG5vZGVcIlxuICAgICAgICB9LFxuICAgICAgICBcIm9zSW1hZ2VcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJPUyBpbWFnZSB1c2VkIHJlcG9ydGVkIGJ5IHRoZSBub2RlIGZyb20gL2V0Yy9vcy1yZWxlYXNlIChlLmcuIERlYmlhbiBHTlUvTGludXggNyAod2hlZXp5KSlcIlxuICAgICAgICB9LFxuICAgICAgICBcInN5c3RlbVVVSURcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJzeXN0ZW0tdXVpZCByZXBvcnRlZCBieSB0aGUgbm9kZVwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5Ob2RlU3lzdGVtSW5mb1wiXG4gICAgfSxcbiAgICBcImt1YmVybmV0ZXNfT2JqZWN0RmllbGRTZWxlY3RvclwiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiYXBpVmVyc2lvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInZlcnNpb24gb2YgdGhlIHNjaGVtYSB0aGF0IGZpZWxkUGF0aCBpcyB3cml0dGVuIGluIHRlcm1zIG9mOyBkZWZhdWx0cyB0byB2MVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZmllbGRQYXRoXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwicGF0aCBvZiB0aGUgZmllbGQgdG8gc2VsZWN0IGluIHRoZSBzcGVjaWZpZWQgQVBJIHZlcnNpb25cIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuT2JqZWN0RmllbGRTZWxlY3RvclwiXG4gICAgfSxcbiAgICBcImt1YmVybmV0ZXNfT2JqZWN0TWV0YVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiYW5ub3RhdGlvbnNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJtYXAgb2Ygc3RyaW5nIGtleXMgYW5kIHZhbHVlcyB0aGF0IGNhbiBiZSB1c2VkIGJ5IGV4dGVybmFsIHRvb2xpbmcgdG8gc3RvcmUgYW5kIHJldHJpZXZlIGFyYml0cmFyeSBtZXRhZGF0YSBhYm91dCBvYmplY3RzXCIsXG4gICAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJtYXAgb2Ygc3RyaW5nIGtleXMgYW5kIHZhbHVlcyB0aGF0IGNhbiBiZSB1c2VkIGJ5IGV4dGVybmFsIHRvb2xpbmcgdG8gc3RvcmUgYW5kIHJldHJpZXZlIGFyYml0cmFyeSBtZXRhZGF0YSBhYm91dCBvYmplY3RzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJqYXZhLnV0aWwuTWFwXFx1MDAzY1N0cmluZyxTdHJpbmdcXHUwMDNlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJjcmVhdGlvblRpbWVzdGFtcFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlJGQyAzMzM5IGRhdGUgYW5kIHRpbWUgYXQgd2hpY2ggdGhlIG9iamVjdCB3YXMgY3JlYXRlZDsgcG9wdWxhdGVkIGJ5IHRoZSBzeXN0ZW1cIlxuICAgICAgICB9LFxuICAgICAgICBcImRlbGV0aW9uVGltZXN0YW1wXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiUkZDIDMzMzkgZGF0ZSBhbmQgdGltZSBhdCB3aGljaCB0aGUgb2JqZWN0IHdpbGwgYmUgZGVsZXRlZDsgcG9wdWxhdGVkIGJ5IHRoZSBzeXN0ZW0gd2hlbiBhIGdyYWNlZnVsIGRlbGV0aW9uIGlzIHJlcXVlc3RlZFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZ2VuZXJhdGVOYW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiYW4gb3B0aW9uYWwgcHJlZml4IHRvIHVzZSB0byBnZW5lcmF0ZSBhIHVuaXF1ZSBuYW1lOyBoYXMgdGhlIHNhbWUgdmFsaWRhdGlvbiBydWxlcyBhcyBuYW1lOyBvcHRpb25hbFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibGFiZWxzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibWFwIG9mIHN0cmluZyBrZXlzIGFuZCB2YWx1ZXMgdGhhdCBjYW4gYmUgdXNlZCB0byBvcmdhbml6ZSBhbmQgY2F0ZWdvcml6ZSBvYmplY3RzOyBtYXkgbWF0Y2ggc2VsZWN0b3JzIG9mIHJlcGxpY2F0aW9uIGNvbnRyb2xsZXJzIGFuZCBzZXJ2aWNlc1wiLFxuICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibWFwIG9mIHN0cmluZyBrZXlzIGFuZCB2YWx1ZXMgdGhhdCBjYW4gYmUgdXNlZCB0byBvcmdhbml6ZSBhbmQgY2F0ZWdvcml6ZSBvYmplY3RzOyBtYXkgbWF0Y2ggc2VsZWN0b3JzIG9mIHJlcGxpY2F0aW9uIGNvbnRyb2xsZXJzIGFuZCBzZXJ2aWNlc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImphdmFUeXBlXCI6IFwiamF2YS51dGlsLk1hcFxcdTAwM2NTdHJpbmcsU3RyaW5nXFx1MDAzZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibmFtZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInN0cmluZyB0aGF0IGlkZW50aWZpZXMgYW4gb2JqZWN0LiBNdXN0IGJlIHVuaXF1ZSB3aXRoaW4gYSBuYW1lc3BhY2U7IGNhbm5vdCBiZSB1cGRhdGVkXCIsXG4gICAgICAgICAgXCJtYXhMZW5ndGhcIjogNjMsXG4gICAgICAgICAgXCJwYXR0ZXJuXCI6IFwiXlthLXowLTldKFstYS16MC05XSpbYS16MC05XSk/JFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibmFtZXNwYWNlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibmFtZXNwYWNlIG9mIHRoZSBvYmplY3Q7IG11c3QgYmUgYSBETlNfTEFCRUw7IGNhbm5vdCBiZSB1cGRhdGVkXCIsXG4gICAgICAgICAgXCJtYXhMZW5ndGhcIjogMjUzLFxuICAgICAgICAgIFwicGF0dGVyblwiOiBcIl5bYS16MC05XShbLWEtejAtOV0qW2EtejAtOV0pPyhcXFxcLlthLXowLTldKFstYS16MC05XSpbYS16MC05XSk/KSokXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJyZXNvdXJjZVZlcnNpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJzdHJpbmcgdGhhdCBpZGVudGlmaWVzIHRoZSBpbnRlcm5hbCB2ZXJzaW9uIG9mIHRoaXMgb2JqZWN0IHRoYXQgY2FuIGJlIHVzZWQgYnkgY2xpZW50cyB0byBkZXRlcm1pbmUgd2hlbiBvYmplY3RzIGhhdmUgY2hhbmdlZDsgcG9wdWxhdGVkIGJ5IHRoZSBzeXN0ZW1cIlxuICAgICAgICB9LFxuICAgICAgICBcInNlbGZMaW5rXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiVVJMIGZvciB0aGUgb2JqZWN0OyBwb3B1bGF0ZWQgYnkgdGhlIHN5c3RlbVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidWlkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwidW5pcXVlIFVVSUQgYWNyb3NzIHNwYWNlIGFuZCB0aW1lOyBwb3B1bGF0ZWQgYnkgdGhlIHN5c3RlbTsgcmVhZC1vbmx5XCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLk9iamVjdE1ldGFcIlxuICAgIH0sXG4gICAgXCJrdWJlcm5ldGVzX09iamVjdFJlZmVyZW5jZVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiYXBpVmVyc2lvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkFQSSB2ZXJzaW9uIG9mIHRoZSByZWZlcmVudFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZmllbGRQYXRoXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiaWYgcmVmZXJyaW5nIHRvIGEgcGllY2Ugb2YgYW4gb2JqZWN0IGluc3RlYWQgb2YgYW4gZW50aXJlIG9iamVjdFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwia2luZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImtpbmQgb2YgdGhlIHJlZmVyZW50XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJuYW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibmFtZSBvZiB0aGUgcmVmZXJlbnRcIlxuICAgICAgICB9LFxuICAgICAgICBcIm5hbWVzcGFjZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIm5hbWVzcGFjZSBvZiB0aGUgcmVmZXJlbnRcIlxuICAgICAgICB9LFxuICAgICAgICBcInJlc291cmNlVmVyc2lvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInNwZWNpZmljIHJlc291cmNlVmVyc2lvbiB0byB3aGljaCB0aGlzIHJlZmVyZW5jZSBpcyBtYWRlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ1aWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJ1aWQgb2YgdGhlIHJlZmVyZW50XCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLk9iamVjdFJlZmVyZW5jZVwiXG4gICAgfSxcbiAgICBcImt1YmVybmV0ZXNfUGVyc2lzdGVudFZvbHVtZUNsYWltVm9sdW1lU291cmNlXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJjbGFpbU5hbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJ0aGUgbmFtZSBvZiB0aGUgY2xhaW0gaW4gdGhlIHNhbWUgbmFtZXNwYWNlIHRvIGJlIG1vdW50ZWQgYXMgYSB2b2x1bWVcIlxuICAgICAgICB9LFxuICAgICAgICBcInJlYWRPbmx5XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIm1vdW50IHZvbHVtZSBhcyByZWFkLW9ubHkgd2hlbiB0cnVlOyBkZWZhdWx0IGZhbHNlXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLlBlcnNpc3RlbnRWb2x1bWVDbGFpbVZvbHVtZVNvdXJjZVwiXG4gICAgfSxcbiAgICBcImt1YmVybmV0ZXNfUG9kXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJhcGlWZXJzaW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgXCJkZWZhdWx0XCI6IFwidjFcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IHRydWUsXG4gICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgIFwidjFcIlxuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAgXCJraW5kXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgXCJkZWZhdWx0XCI6IFwiUG9kXCIsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIFwibWV0YWRhdGFcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19PYmplY3RNZXRhXCIsXG4gICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuT2JqZWN0TWV0YVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwic3BlY1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX1BvZFNwZWNcIixcbiAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5Qb2RTcGVjXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJzdGF0dXNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19Qb2RTdGF0dXNcIixcbiAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5Qb2RTdGF0dXNcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuUG9kXCIsXG4gICAgICBcImphdmFJbnRlcmZhY2VzXCI6IFtcbiAgICAgICAgXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkhhc01ldGFkYXRhXCJcbiAgICAgIF1cbiAgICB9LFxuICAgIFwia3ViZXJuZXRlc19Qb2RDb25kaXRpb25cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcInN0YXR1c1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInN0YXR1cyBvZiB0aGUgY29uZGl0aW9uXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0eXBlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwia2luZCBvZiB0aGUgY29uZGl0aW9uXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLlBvZENvbmRpdGlvblwiXG4gICAgfSxcbiAgICBcImt1YmVybmV0ZXNfUG9kTGlzdFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiYXBpVmVyc2lvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICAgIFwiZGVmYXVsdFwiOiBcInYxXCIsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlLFxuICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICBcInYxXCJcbiAgICAgICAgICBdXG4gICAgICAgIH0sXG4gICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImxpc3Qgb2YgcG9kc1wiLFxuICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX1BvZFwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuUG9kXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwia2luZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICAgIFwiZGVmYXVsdFwiOiBcIlBvZExpc3RcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgXCJtZXRhZGF0YVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX0xpc3RNZXRhXCIsXG4gICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuTGlzdE1ldGFcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuUG9kTGlzdFwiLFxuICAgICAgXCJqYXZhSW50ZXJmYWNlc1wiOiBbXG4gICAgICAgIFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5LdWJlcm5ldGVzUmVzb3VyY2VcIlxuICAgICAgXVxuICAgIH0sXG4gICAgXCJrdWJlcm5ldGVzX1BvZFNwZWNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcImFjdGl2ZURlYWRsaW5lU2Vjb25kc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICBcImphdmFUeXBlXCI6IFwiTG9uZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiY29udGFpbmVyc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibGlzdCBvZiBjb250YWluZXJzIGJlbG9uZ2luZyB0byB0aGUgcG9kOyBjYW5ub3QgYmUgdXBkYXRlZDsgY29udGFpbmVycyBjYW5ub3QgY3VycmVudGx5IGJlIGFkZGVkIG9yIHJlbW92ZWQ7IHRoZXJlIG11c3QgYmUgYXQgbGVhc3Qgb25lIGNvbnRhaW5lciBpbiBhIFBvZFwiLFxuICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX0NvbnRhaW5lclwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuQ29udGFpbmVyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiZG5zUG9saWN5XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiRE5TIHBvbGljeSBmb3IgY29udGFpbmVycyB3aXRoaW4gdGhlIHBvZDsgb25lIG9mICdDbHVzdGVyRmlyc3QnIG9yICdEZWZhdWx0J1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiaG9zdFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImhvc3QgcmVxdWVzdGVkIGZvciB0aGlzIHBvZFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiaG9zdE5ldHdvcmtcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiaG9zdCBuZXR3b3JraW5nIHJlcXVlc3RlZCBmb3IgdGhpcyBwb2RcIlxuICAgICAgICB9LFxuICAgICAgICBcImltYWdlUHVsbFNlY3JldHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImxpc3Qgb2YgcmVmZXJlbmNlcyB0byBzZWNyZXRzIGluIHRoZSBzYW1lIG5hbWVzcGFjZSBhdmFpbGFibGUgZm9yIHB1bGxpbmcgdGhlIGNvbnRhaW5lciBpbWFnZXNcIixcbiAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19Mb2NhbE9iamVjdFJlZmVyZW5jZVwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuTG9jYWxPYmplY3RSZWZlcmVuY2VcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJub2RlU2VsZWN0b3JcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJzZWxlY3RvciB3aGljaCBtdXN0IG1hdGNoIGEgbm9kZSdzIGxhYmVscyBmb3IgdGhlIHBvZCB0byBiZSBzY2hlZHVsZWQgb24gdGhhdCBub2RlXCIsXG4gICAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJzZWxlY3RvciB3aGljaCBtdXN0IG1hdGNoIGEgbm9kZSdzIGxhYmVscyBmb3IgdGhlIHBvZCB0byBiZSBzY2hlZHVsZWQgb24gdGhhdCBub2RlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJqYXZhLnV0aWwuTWFwXFx1MDAzY1N0cmluZyxTdHJpbmdcXHUwMDNlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJyZXN0YXJ0UG9saWN5XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwicmVzdGFydCBwb2xpY3kgZm9yIGFsbCBjb250YWluZXJzIHdpdGhpbiB0aGUgcG9kOyBvbmUgb2YgUmVzdGFydFBvbGljeUFsd2F5c1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwic2VydmljZUFjY291bnRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJuYW1lIG9mIHRoZSBTZXJ2aWNlQWNjb3VudCB0byB1c2UgdG8gcnVuIHRoaXMgcG9kXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0ZXJtaW5hdGlvbkdyYWNlUGVyaW9kU2Vjb25kc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJvcHRpb25hbCBkdXJhdGlvbiBpbiBzZWNvbmRzIHRoZSBwb2QgbmVlZHMgdG8gdGVybWluYXRlIGdyYWNlZnVsbHk7IG1heSBiZSBkZWNyZWFzZWQgaW4gZGVsZXRlIHJlcXVlc3Q7IHZhbHVlIG11c3QgYmUgbm9uLW5lZ2F0aXZlIGludGVnZXI7IHRoZSB2YWx1ZSB6ZXJvIGluZGljYXRlcyBkZWxldGUgaW1tZWRpYXRlbHk7IGlmIHRoaXMgdmFsdWUgaXMgbm90IHNldFwiLFxuICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJMb25nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ2b2x1bWVzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJsaXN0IG9mIHZvbHVtZXMgdGhhdCBjYW4gYmUgbW91bnRlZCBieSBjb250YWluZXJzIGJlbG9uZ2luZyB0byB0aGUgcG9kXCIsXG4gICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfVm9sdW1lXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5Wb2x1bWVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLlBvZFNwZWNcIlxuICAgIH0sXG4gICAgXCJrdWJlcm5ldGVzX1BvZFN0YXR1c1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiY29uZGl0aW9uc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiY3VycmVudCBzZXJ2aWNlIHN0YXRlIG9mIHBvZFwiLFxuICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX1BvZENvbmRpdGlvblwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuUG9kQ29uZGl0aW9uXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiY29udGFpbmVyU3RhdHVzZXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImxpc3Qgb2YgY29udGFpbmVyIHN0YXR1c2VzXCIsXG4gICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfQ29udGFpbmVyU3RhdHVzXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5Db250YWluZXJTdGF0dXNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJob3N0SVBcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJJUCBhZGRyZXNzIG9mIHRoZSBob3N0IHRvIHdoaWNoIHRoZSBwb2QgaXMgYXNzaWduZWQ7IGVtcHR5IGlmIG5vdCB5ZXQgc2NoZWR1bGVkXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtZXNzYWdlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiaHVtYW4gcmVhZGFibGUgbWVzc2FnZSBpbmRpY2F0aW5nIGRldGFpbHMgYWJvdXQgd2h5IHRoZSBwb2QgaXMgaW4gdGhpcyBjb25kaXRpb25cIlxuICAgICAgICB9LFxuICAgICAgICBcInBoYXNlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiY3VycmVudCBjb25kaXRpb24gb2YgdGhlIHBvZC5cIlxuICAgICAgICB9LFxuICAgICAgICBcInBvZElQXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiSVAgYWRkcmVzcyBhbGxvY2F0ZWQgdG8gdGhlIHBvZDsgcm91dGFibGUgYXQgbGVhc3Qgd2l0aGluIHRoZSBjbHVzdGVyOyBlbXB0eSBpZiBub3QgeWV0IGFsbG9jYXRlZFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwic3RhcnRUaW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiUkZDIDMzMzkgZGF0ZSBhbmQgdGltZSBhdCB3aGljaCB0aGUgb2JqZWN0IHdhcyBhY2tub3dsZWRnZWQgYnkgdGhlIEt1YmVsZXQuICBUaGlzIGlzIGJlZm9yZSB0aGUgS3ViZWxldCBwdWxsZWQgdGhlIGNvbnRhaW5lciBpbWFnZShzKSBmb3IgdGhlIHBvZC5cIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuUG9kU3RhdHVzXCJcbiAgICB9LFxuICAgIFwia3ViZXJuZXRlc19Qb2RUZW1wbGF0ZVNwZWNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfT2JqZWN0TWV0YVwiLFxuICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLk9iamVjdE1ldGFcIlxuICAgICAgICB9LFxuICAgICAgICBcInNwZWNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19Qb2RTcGVjXCIsXG4gICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuUG9kU3BlY1wiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5Qb2RUZW1wbGF0ZVNwZWNcIlxuICAgIH0sXG4gICAgXCJrdWJlcm5ldGVzX1Byb2JlXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJleGVjXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfRXhlY0FjdGlvblwiLFxuICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkV4ZWNBY3Rpb25cIlxuICAgICAgICB9LFxuICAgICAgICBcImh0dHBHZXRcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19IVFRQR2V0QWN0aW9uXCIsXG4gICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuSFRUUEdldEFjdGlvblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiaW5pdGlhbERlbGF5U2Vjb25kc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJudW1iZXIgb2Ygc2Vjb25kcyBhZnRlciB0aGUgY29udGFpbmVyIGhhcyBzdGFydGVkIGJlZm9yZSBsaXZlbmVzcyBwcm9iZXMgYXJlIGluaXRpYXRlZFwiLFxuICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJMb25nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0Y3BTb2NrZXRcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19UQ1BTb2NrZXRBY3Rpb25cIixcbiAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5UQ1BTb2NrZXRBY3Rpb25cIlxuICAgICAgICB9LFxuICAgICAgICBcInRpbWVvdXRTZWNvbmRzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIm51bWJlciBvZiBzZWNvbmRzIGFmdGVyIHdoaWNoIGxpdmVuZXNzIHByb2JlcyB0aW1lb3V0OyBkZWZhdWx0cyB0byAxIHNlY29uZFwiLFxuICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJMb25nXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLlByb2JlXCJcbiAgICB9LFxuICAgIFwia3ViZXJuZXRlc19SQkRWb2x1bWVTb3VyY2VcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcImZzVHlwZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImZpbGUgc3lzdGVtIHR5cGUgdG8gbW91bnRcIlxuICAgICAgICB9LFxuICAgICAgICBcImltYWdlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwicmFkb3MgaW1hZ2UgbmFtZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwia2V5cmluZ1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImtleXJpbmcgaXMgdGhlIHBhdGggdG8ga2V5IHJpbmcgZm9yIHJhZG9zIHVzZXI7IGRlZmF1bHQgaXMgL2V0Yy9jZXBoL2tleXJpbmc7IG9wdGlvbmFsXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtb25pdG9yc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiYSBjb2xsZWN0aW9uIG9mIENlcGggbW9uaXRvcnNcIixcbiAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImEgY29sbGVjdGlvbiBvZiBDZXBoIG1vbml0b3JzXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicG9vbFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInJhZG9zIHBvb2wgbmFtZTsgZGVmYXVsdCBpcyByYmQ7IG9wdGlvbmFsXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJyZWFkT25seVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJyYmQgdm9sdW1lIHRvIGJlIG1vdW50ZWQgd2l0aCByZWFkLW9ubHkgcGVybWlzc2lvbnNcIlxuICAgICAgICB9LFxuICAgICAgICBcInNlY3JldFJlZlwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX0xvY2FsT2JqZWN0UmVmZXJlbmNlXCIsXG4gICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuTG9jYWxPYmplY3RSZWZlcmVuY2VcIlxuICAgICAgICB9LFxuICAgICAgICBcInVzZXJcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJyYWRvcyB1c2VyIG5hbWU7IGRlZmF1bHQgaXMgYWRtaW47IG9wdGlvbmFsXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLlJCRFZvbHVtZVNvdXJjZVwiXG4gICAgfSxcbiAgICBcImt1YmVybmV0ZXNfUmVwbGljYXRpb25Db250cm9sbGVyXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJhcGlWZXJzaW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgXCJkZWZhdWx0XCI6IFwidjFcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IHRydWUsXG4gICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgIFwidjFcIlxuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAgXCJraW5kXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgXCJkZWZhdWx0XCI6IFwiUmVwbGljYXRpb25Db250cm9sbGVyXCIsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIFwibWV0YWRhdGFcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19PYmplY3RNZXRhXCIsXG4gICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuT2JqZWN0TWV0YVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwic3BlY1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX1JlcGxpY2F0aW9uQ29udHJvbGxlclNwZWNcIixcbiAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5SZXBsaWNhdGlvbkNvbnRyb2xsZXJTcGVjXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJzdGF0dXNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19SZXBsaWNhdGlvbkNvbnRyb2xsZXJTdGF0dXNcIixcbiAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5SZXBsaWNhdGlvbkNvbnRyb2xsZXJTdGF0dXNcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuUmVwbGljYXRpb25Db250cm9sbGVyXCIsXG4gICAgICBcImphdmFJbnRlcmZhY2VzXCI6IFtcbiAgICAgICAgXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkhhc01ldGFkYXRhXCJcbiAgICAgIF1cbiAgICB9LFxuICAgIFwia3ViZXJuZXRlc19SZXBsaWNhdGlvbkNvbnRyb2xsZXJMaXN0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJhcGlWZXJzaW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgXCJkZWZhdWx0XCI6IFwidjFcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IHRydWUsXG4gICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgIFwidjFcIlxuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibGlzdCBvZiByZXBsaWNhdGlvbiBjb250cm9sbGVyc1wiLFxuICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX1JlcGxpY2F0aW9uQ29udHJvbGxlclwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuUmVwbGljYXRpb25Db250cm9sbGVyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwia2luZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICAgIFwiZGVmYXVsdFwiOiBcIlJlcGxpY2F0aW9uQ29udHJvbGxlckxpc3RcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgXCJtZXRhZGF0YVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX0xpc3RNZXRhXCIsXG4gICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuTGlzdE1ldGFcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuUmVwbGljYXRpb25Db250cm9sbGVyTGlzdFwiLFxuICAgICAgXCJqYXZhSW50ZXJmYWNlc1wiOiBbXG4gICAgICAgIFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5LdWJlcm5ldGVzUmVzb3VyY2VcIlxuICAgICAgXVxuICAgIH0sXG4gICAgXCJrdWJlcm5ldGVzX1JlcGxpY2F0aW9uQ29udHJvbGxlclNwZWNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcInJlcGxpY2FzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIm51bWJlciBvZiByZXBsaWNhcyBkZXNpcmVkOyBkZWZhdWx0cyB0byAxXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJzZWxlY3RvclwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImxhYmVsIGtleXMgYW5kIHZhbHVlcyB0aGF0IG11c3QgbWF0Y2ggaW4gb3JkZXIgdG8gYmUgY29udHJvbGxlZCBieSB0aGlzIHJlcGxpY2F0aW9uIGNvbnRyb2xsZXJcIixcbiAgICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImxhYmVsIGtleXMgYW5kIHZhbHVlcyB0aGF0IG11c3QgbWF0Y2ggaW4gb3JkZXIgdG8gYmUgY29udHJvbGxlZCBieSB0aGlzIHJlcGxpY2F0aW9uIGNvbnRyb2xsZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImphdmEudXRpbC5NYXBcXHUwMDNjU3RyaW5nLFN0cmluZ1xcdTAwM2VcIlxuICAgICAgICB9LFxuICAgICAgICBcInRlbXBsYXRlXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfUG9kVGVtcGxhdGVTcGVjXCIsXG4gICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuUG9kVGVtcGxhdGVTcGVjXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0ZW1wbGF0ZVJlZlwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX09iamVjdFJlZmVyZW5jZVwiLFxuICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLk9iamVjdFJlZmVyZW5jZVwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5SZXBsaWNhdGlvbkNvbnRyb2xsZXJTcGVjXCJcbiAgICB9LFxuICAgIFwia3ViZXJuZXRlc19SZXBsaWNhdGlvbkNvbnRyb2xsZXJTdGF0dXNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcInJlcGxpY2FzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIm1vc3QgcmVjZW50bHkgb2JlcnZlZCBudW1iZXIgb2YgcmVwbGljYXNcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuUmVwbGljYXRpb25Db250cm9sbGVyU3RhdHVzXCJcbiAgICB9LFxuICAgIFwia3ViZXJuZXRlc19SZXNvdXJjZVJlcXVpcmVtZW50c1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwibGltaXRzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiTWF4aW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgYWxsb3dlZFwiLFxuICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX3Jlc291cmNlX1F1YW50aXR5XCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5yZXNvdXJjZS5RdWFudGl0eVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImphdmFUeXBlXCI6IFwiamF2YS51dGlsLk1hcFxcdTAwM2NTdHJpbmcsaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5yZXNvdXJjZS5RdWFudGl0eVxcdTAwM2VcIlxuICAgICAgICB9LFxuICAgICAgICBcInJlcXVlc3RzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiTWluaW11bSBhbW91bnQgb2YgcmVzb3VyY2VzIHJlcXVlc3RlZDsgcmVxdWVzdHMgYXJlIGhvbm9yZWQgb25seSBmb3IgcGVyc2lzdGVudCB2b2x1bWVzIGFzIG9mIG5vd1wiLFxuICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX3Jlc291cmNlX1F1YW50aXR5XCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5yZXNvdXJjZS5RdWFudGl0eVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImphdmFUeXBlXCI6IFwiamF2YS51dGlsLk1hcFxcdTAwM2NTdHJpbmcsaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5yZXNvdXJjZS5RdWFudGl0eVxcdTAwM2VcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuUmVzb3VyY2VSZXF1aXJlbWVudHNcIlxuICAgIH0sXG4gICAgXCJrdWJlcm5ldGVzX1NFTGludXhPcHRpb25zXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJsZXZlbFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInRoZSBsZXZlbCBsYWJlbCB0byBhcHBseSB0byB0aGUgY29udGFpbmVyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJyb2xlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwidGhlIHJvbGUgbGFiZWwgdG8gYXBwbHkgdG8gdGhlIGNvbnRhaW5lclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidHlwZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInRoZSB0eXBlIGxhYmVsIHRvIGFwcGx5IHRvIHRoZSBjb250YWluZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcInVzZXJcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJ0aGUgdXNlciBsYWJlbCB0byBhcHBseSB0byB0aGUgY29udGFpbmVyXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLlNFTGludXhPcHRpb25zXCJcbiAgICB9LFxuICAgIFwia3ViZXJuZXRlc19TZWNyZXRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcImFwaVZlcnNpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICBcImRlZmF1bHRcIjogXCJ2MVwiLFxuICAgICAgICAgIFwicmVxdWlyZWRcIjogdHJ1ZSxcbiAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgXCJ2MVwiXG4gICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICBcImRhdGFcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJkYXRhIGNvbnRhaW5zIHRoZSBzZWNyZXQgZGF0YS4gIEVhY2gga2V5IG11c3QgYmUgYSB2YWxpZCBETlNfU1VCRE9NQUlOIG9yIGxlYWRpbmcgZG90IGZvbGxvd2VkIGJ5IHZhbGlkIEROU19TVUJET01BSU4uICBFYWNoIHZhbHVlIG11c3QgYmUgYSBiYXNlNjQgZW5jb2RlZCBzdHJpbmcgYXMgZGVzY3JpYmVkIGluIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM0NjQ4I3NlY3Rpb24tNFwiLFxuICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiZGF0YSBjb250YWlucyB0aGUgc2VjcmV0IGRhdGEuICBFYWNoIGtleSBtdXN0IGJlIGEgdmFsaWQgRE5TX1NVQkRPTUFJTiBvciBsZWFkaW5nIGRvdCBmb2xsb3dlZCBieSB2YWxpZCBETlNfU1VCRE9NQUlOLiAgRWFjaCB2YWx1ZSBtdXN0IGJlIGEgYmFzZTY0IGVuY29kZWQgc3RyaW5nIGFzIGRlc2NyaWJlZCBpbiBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNDY0OCNzZWN0aW9uLTRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImphdmEudXRpbC5NYXBcXHUwMDNjU3RyaW5nLFN0cmluZ1xcdTAwM2VcIlxuICAgICAgICB9LFxuICAgICAgICBcImtpbmRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICBcImRlZmF1bHRcIjogXCJTZWNyZXRcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgXCJtZXRhZGF0YVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX09iamVjdE1ldGFcIixcbiAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5PYmplY3RNZXRhXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0eXBlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwidHlwZSBmYWNpbGl0YXRlcyBwcm9ncmFtbWF0aWMgaGFuZGxpbmcgb2Ygc2VjcmV0IGRhdGFcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuU2VjcmV0XCIsXG4gICAgICBcImphdmFJbnRlcmZhY2VzXCI6IFtcbiAgICAgICAgXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkhhc01ldGFkYXRhXCJcbiAgICAgIF1cbiAgICB9LFxuICAgIFwia3ViZXJuZXRlc19TZWNyZXRMaXN0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJhcGlWZXJzaW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgXCJkZWZhdWx0XCI6IFwidjFcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IHRydWUsXG4gICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgIFwidjFcIlxuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiaXRlbXMgaXMgYSBsaXN0IG9mIHNlY3JldCBvYmplY3RzXCIsXG4gICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfU2VjcmV0XCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5TZWNyZXRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJraW5kXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgXCJkZWZhdWx0XCI6IFwiU2VjcmV0TGlzdFwiLFxuICAgICAgICAgIFwicmVxdWlyZWRcIjogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfTGlzdE1ldGFcIixcbiAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5MaXN0TWV0YVwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5TZWNyZXRMaXN0XCIsXG4gICAgICBcImphdmFJbnRlcmZhY2VzXCI6IFtcbiAgICAgICAgXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkt1YmVybmV0ZXNSZXNvdXJjZVwiXG4gICAgICBdXG4gICAgfSxcbiAgICBcImt1YmVybmV0ZXNfU2VjcmV0Vm9sdW1lU291cmNlXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJzZWNyZXROYW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwic2VjcmV0TmFtZSBpcyB0aGUgbmFtZSBvZiBhIHNlY3JldCBpbiB0aGUgcG9kJ3MgbmFtZXNwYWNlXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLlNlY3JldFZvbHVtZVNvdXJjZVwiXG4gICAgfSxcbiAgICBcImt1YmVybmV0ZXNfU2VjdXJpdHlDb250ZXh0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJjYXBhYmlsaXRpZXNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19DYXBhYmlsaXRpZXNcIixcbiAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5DYXBhYmlsaXRpZXNcIlxuICAgICAgICB9LFxuICAgICAgICBcInByaXZpbGVnZWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwicnVuIHRoZSBjb250YWluZXIgaW4gcHJpdmlsZWdlZCBtb2RlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJydW5Bc1VzZXJcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwidGhlIHVzZXIgaWQgdGhhdCBydW5zIHRoZSBmaXJzdCBwcm9jZXNzIGluIHRoZSBjb250YWluZXJcIixcbiAgICAgICAgICBcImphdmFUeXBlXCI6IFwiTG9uZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwic2VMaW51eE9wdGlvbnNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19TRUxpbnV4T3B0aW9uc1wiLFxuICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLlNFTGludXhPcHRpb25zXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLlNlY3VyaXR5Q29udGV4dFwiXG4gICAgfSxcbiAgICBcImt1YmVybmV0ZXNfU2VydmljZVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiYXBpVmVyc2lvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICAgIFwiZGVmYXVsdFwiOiBcInYxXCIsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlLFxuICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICBcInYxXCJcbiAgICAgICAgICBdXG4gICAgICAgIH0sXG4gICAgICAgIFwia2luZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICAgIFwiZGVmYXVsdFwiOiBcIlNlcnZpY2VcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgXCJtZXRhZGF0YVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX09iamVjdE1ldGFcIixcbiAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5PYmplY3RNZXRhXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJzcGVjXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfU2VydmljZVNwZWNcIixcbiAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5TZXJ2aWNlU3BlY1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwic3RhdHVzXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfU2VydmljZVN0YXR1c1wiLFxuICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLlNlcnZpY2VTdGF0dXNcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuU2VydmljZVwiLFxuICAgICAgXCJqYXZhSW50ZXJmYWNlc1wiOiBbXG4gICAgICAgIFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5IYXNNZXRhZGF0YVwiXG4gICAgICBdXG4gICAgfSxcbiAgICBcImt1YmVybmV0ZXNfU2VydmljZUFjY291bnRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcImFwaVZlcnNpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICBcImRlZmF1bHRcIjogXCJ2MVwiLFxuICAgICAgICAgIFwicmVxdWlyZWRcIjogdHJ1ZSxcbiAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgXCJ2MVwiXG4gICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICBcImtpbmRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICBcImRlZmF1bHRcIjogXCJTZXJ2aWNlQWNjb3VudFwiLFxuICAgICAgICAgIFwicmVxdWlyZWRcIjogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfT2JqZWN0TWV0YVwiLFxuICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLk9iamVjdE1ldGFcIlxuICAgICAgICB9LFxuICAgICAgICBcInNlY3JldHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImxpc3Qgb2Ygc2VjcmV0cyB0aGF0IGNhbiBiZSB1c2VkIGJ5IHBvZHMgcnVubmluZyBhcyB0aGlzIHNlcnZpY2UgYWNjb3VudFwiLFxuICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX09iamVjdFJlZmVyZW5jZVwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuT2JqZWN0UmVmZXJlbmNlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5TZXJ2aWNlQWNjb3VudFwiLFxuICAgICAgXCJqYXZhSW50ZXJmYWNlc1wiOiBbXG4gICAgICAgIFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5IYXNNZXRhZGF0YVwiXG4gICAgICBdXG4gICAgfSxcbiAgICBcImt1YmVybmV0ZXNfU2VydmljZUFjY291bnRMaXN0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJhcGlWZXJzaW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgXCJkZWZhdWx0XCI6IFwidjFcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IHRydWUsXG4gICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgIFwidjFcIlxuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibGlzdCBvZiBTZXJ2aWNlQWNjb3VudHNcIixcbiAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19TZXJ2aWNlQWNjb3VudFwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuU2VydmljZUFjY291bnRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJraW5kXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgXCJkZWZhdWx0XCI6IFwiU2VydmljZUFjY291bnRMaXN0XCIsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIFwibWV0YWRhdGFcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19MaXN0TWV0YVwiLFxuICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkxpc3RNZXRhXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLlNlcnZpY2VBY2NvdW50TGlzdFwiLFxuICAgICAgXCJqYXZhSW50ZXJmYWNlc1wiOiBbXG4gICAgICAgIFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5LdWJlcm5ldGVzUmVzb3VyY2VcIlxuICAgICAgXVxuICAgIH0sXG4gICAgXCJrdWJlcm5ldGVzX1NlcnZpY2VMaXN0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJhcGlWZXJzaW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgXCJkZWZhdWx0XCI6IFwidjFcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IHRydWUsXG4gICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgIFwidjFcIlxuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibGlzdCBvZiBzZXJ2aWNlc1wiLFxuICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX1NlcnZpY2VcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLlNlcnZpY2VcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJraW5kXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgXCJkZWZhdWx0XCI6IFwiU2VydmljZUxpc3RcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgXCJtZXRhZGF0YVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX0xpc3RNZXRhXCIsXG4gICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuTGlzdE1ldGFcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuU2VydmljZUxpc3RcIixcbiAgICAgIFwiamF2YUludGVyZmFjZXNcIjogW1xuICAgICAgICBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuS3ViZXJuZXRlc1Jlc291cmNlXCJcbiAgICAgIF1cbiAgICB9LFxuICAgIFwia3ViZXJuZXRlc19TZXJ2aWNlUG9ydFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwibmFtZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInRoZSBuYW1lIG9mIHRoaXMgcG9ydDsgb3B0aW9uYWwgaWYgb25seSBvbmUgcG9ydCBpcyBkZWZpbmVkXCIsXG4gICAgICAgICAgXCJtYXhMZW5ndGhcIjogNjMsXG4gICAgICAgICAgXCJwYXR0ZXJuXCI6IFwiXlthLXowLTldKFstYS16MC05XSpbYS16MC05XSk/JFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibm9kZVBvcnRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwidGhlIHBvcnQgb24gZWFjaCBub2RlIG9uIHdoaWNoIHRoaXMgc2VydmljZSBpcyBleHBvc2VkXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJwb3J0XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInRoZSBwb3J0IG51bWJlciB0aGF0IGlzIGV4cG9zZWRcIlxuICAgICAgICB9LFxuICAgICAgICBcInByb3RvY29sXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwidGhlIHByb3RvY29sIHVzZWQgYnkgdGhpcyBwb3J0OyBtdXN0IGJlIFVEUCBvciBUQ1A7IFRDUCBpZiB1bnNwZWNpZmllZFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidGFyZ2V0UG9ydFwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX3V0aWxfSW50T3JTdHJpbmdcIixcbiAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC51dGlsLkludE9yU3RyaW5nXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLlNlcnZpY2VQb3J0XCJcbiAgICB9LFxuICAgIFwia3ViZXJuZXRlc19TZXJ2aWNlU3BlY1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiZGVwcmVjYXRlZFB1YmxpY0lQc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiZGVwcmVjYXRlZC4gZXh0ZXJuYWxseSB2aXNpYmxlIElQcyAoZS5nLiBsb2FkIGJhbGFuY2VycykgdGhhdCBzaG91bGQgYmUgcHJveGllZCB0byB0aGlzIHNlcnZpY2VcIixcbiAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImRlcHJlY2F0ZWQuIGV4dGVybmFsbHkgdmlzaWJsZSBJUHMgKGUuZy4gbG9hZCBiYWxhbmNlcnMpIHRoYXQgc2hvdWxkIGJlIHByb3hpZWQgdG8gdGhpcyBzZXJ2aWNlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicG9ydGFsSVBcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIlxuICAgICAgICB9LFxuICAgICAgICBcInBvcnRzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJwb3J0cyBleHBvc2VkIGJ5IHRoZSBzZXJ2aWNlXCIsXG4gICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfU2VydmljZVBvcnRcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLlNlcnZpY2VQb3J0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwic2VsZWN0b3JcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJsYWJlbCBrZXlzIGFuZCB2YWx1ZXMgdGhhdCBtdXN0IG1hdGNoIGluIG9yZGVyIHRvIHJlY2VpdmUgdHJhZmZpYyBmb3IgdGhpcyBzZXJ2aWNlOyBpZiBlbXB0eVwiLFxuICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibGFiZWwga2V5cyBhbmQgdmFsdWVzIHRoYXQgbXVzdCBtYXRjaCBpbiBvcmRlciB0byByZWNlaXZlIHRyYWZmaWMgZm9yIHRoaXMgc2VydmljZTsgaWYgZW1wdHlcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImphdmEudXRpbC5NYXBcXHUwMDNjU3RyaW5nLFN0cmluZ1xcdTAwM2VcIlxuICAgICAgICB9LFxuICAgICAgICBcInNlc3Npb25BZmZpbml0eVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImVuYWJsZSBjbGllbnQgSVAgYmFzZWQgc2Vzc2lvbiBhZmZpbml0eTsgbXVzdCBiZSBDbGllbnRJUCBvciBOb25lOyBkZWZhdWx0cyB0byBOb25lXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0eXBlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwidHlwZSBvZiB0aGlzIHNlcnZpY2U7IG11c3QgYmUgQ2x1c3RlcklQXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLlNlcnZpY2VTcGVjXCJcbiAgICB9LFxuICAgIFwia3ViZXJuZXRlc19TZXJ2aWNlU3RhdHVzXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJsb2FkQmFsYW5jZXJcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19Mb2FkQmFsYW5jZXJTdGF0dXNcIixcbiAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5Mb2FkQmFsYW5jZXJTdGF0dXNcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuU2VydmljZVN0YXR1c1wiXG4gICAgfSxcbiAgICBcImt1YmVybmV0ZXNfVENQU29ja2V0QWN0aW9uXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJwb3J0XCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfdXRpbF9JbnRPclN0cmluZ1wiLFxuICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLnV0aWwuSW50T3JTdHJpbmdcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuVENQU29ja2V0QWN0aW9uXCJcbiAgICB9LFxuICAgIFwia3ViZXJuZXRlc19UeXBlTWV0YVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiYXBpVmVyc2lvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInZlcnNpb24gb2YgdGhlIHNjaGVtYSB0aGUgb2JqZWN0IHNob3VsZCBoYXZlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJraW5kXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwia2luZCBvZiBvYmplY3RcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuVHlwZU1ldGFcIlxuICAgIH0sXG4gICAgXCJrdWJlcm5ldGVzX1ZvbHVtZVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiYXdzRWxhc3RpY0Jsb2NrU3RvcmVcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19BV1NFbGFzdGljQmxvY2tTdG9yZVZvbHVtZVNvdXJjZVwiLFxuICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkFXU0VsYXN0aWNCbG9ja1N0b3JlVm9sdW1lU291cmNlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJlbXB0eURpclwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX0VtcHR5RGlyVm9sdW1lU291cmNlXCIsXG4gICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuRW1wdHlEaXJWb2x1bWVTb3VyY2VcIlxuICAgICAgICB9LFxuICAgICAgICBcImdjZVBlcnNpc3RlbnREaXNrXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfR0NFUGVyc2lzdGVudERpc2tWb2x1bWVTb3VyY2VcIixcbiAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5HQ0VQZXJzaXN0ZW50RGlza1ZvbHVtZVNvdXJjZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZ2l0UmVwb1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX0dpdFJlcG9Wb2x1bWVTb3VyY2VcIixcbiAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5HaXRSZXBvVm9sdW1lU291cmNlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJnbHVzdGVyZnNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19HbHVzdGVyZnNWb2x1bWVTb3VyY2VcIixcbiAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5HbHVzdGVyZnNWb2x1bWVTb3VyY2VcIlxuICAgICAgICB9LFxuICAgICAgICBcImhvc3RQYXRoXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfSG9zdFBhdGhWb2x1bWVTb3VyY2VcIixcbiAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5Ib3N0UGF0aFZvbHVtZVNvdXJjZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiaXNjc2lcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19JU0NTSVZvbHVtZVNvdXJjZVwiLFxuICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLklTQ1NJVm9sdW1lU291cmNlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJuYW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwidm9sdW1lIG5hbWU7IG11c3QgYmUgYSBETlNfTEFCRUwgYW5kIHVuaXF1ZSB3aXRoaW4gdGhlIHBvZFwiLFxuICAgICAgICAgIFwibWF4TGVuZ3RoXCI6IDYzLFxuICAgICAgICAgIFwicGF0dGVyblwiOiBcIl5bYS16MC05XShbLWEtejAtOV0qW2EtejAtOV0pPyRcIlxuICAgICAgICB9LFxuICAgICAgICBcIm5mc1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX05GU1ZvbHVtZVNvdXJjZVwiLFxuICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLk5GU1ZvbHVtZVNvdXJjZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwicGVyc2lzdGVudFZvbHVtZUNsYWltXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfUGVyc2lzdGVudFZvbHVtZUNsYWltVm9sdW1lU291cmNlXCIsXG4gICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuUGVyc2lzdGVudFZvbHVtZUNsYWltVm9sdW1lU291cmNlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJyYmRcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19SQkRWb2x1bWVTb3VyY2VcIixcbiAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5SQkRWb2x1bWVTb3VyY2VcIlxuICAgICAgICB9LFxuICAgICAgICBcInNlY3JldFwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX1NlY3JldFZvbHVtZVNvdXJjZVwiLFxuICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLlNlY3JldFZvbHVtZVNvdXJjZVwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5Wb2x1bWVcIlxuICAgIH0sXG4gICAgXCJrdWJlcm5ldGVzX1ZvbHVtZU1vdW50XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJtb3VudFBhdGhcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJwYXRoIHdpdGhpbiB0aGUgY29udGFpbmVyIGF0IHdoaWNoIHRoZSB2b2x1bWUgc2hvdWxkIGJlIG1vdW50ZWRcIlxuICAgICAgICB9LFxuICAgICAgICBcIm5hbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJuYW1lIG9mIHRoZSB2b2x1bWUgdG8gbW91bnRcIlxuICAgICAgICB9LFxuICAgICAgICBcInJlYWRPbmx5XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIm1vdW50ZWQgcmVhZC1vbmx5IGlmIHRydWVcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuVm9sdW1lTW91bnRcIlxuICAgIH0sXG4gICAgXCJrdWJlcm5ldGVzX1ZvbHVtZVNvdXJjZVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiYXdzRWxhc3RpY0Jsb2NrU3RvcmVcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19BV1NFbGFzdGljQmxvY2tTdG9yZVZvbHVtZVNvdXJjZVwiLFxuICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkFXU0VsYXN0aWNCbG9ja1N0b3JlVm9sdW1lU291cmNlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJlbXB0eURpclwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX0VtcHR5RGlyVm9sdW1lU291cmNlXCIsXG4gICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuRW1wdHlEaXJWb2x1bWVTb3VyY2VcIlxuICAgICAgICB9LFxuICAgICAgICBcImdjZVBlcnNpc3RlbnREaXNrXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfR0NFUGVyc2lzdGVudERpc2tWb2x1bWVTb3VyY2VcIixcbiAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5HQ0VQZXJzaXN0ZW50RGlza1ZvbHVtZVNvdXJjZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZ2l0UmVwb1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX0dpdFJlcG9Wb2x1bWVTb3VyY2VcIixcbiAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5HaXRSZXBvVm9sdW1lU291cmNlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJnbHVzdGVyZnNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19HbHVzdGVyZnNWb2x1bWVTb3VyY2VcIixcbiAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5HbHVzdGVyZnNWb2x1bWVTb3VyY2VcIlxuICAgICAgICB9LFxuICAgICAgICBcImhvc3RQYXRoXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfSG9zdFBhdGhWb2x1bWVTb3VyY2VcIixcbiAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5Ib3N0UGF0aFZvbHVtZVNvdXJjZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiaXNjc2lcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19JU0NTSVZvbHVtZVNvdXJjZVwiLFxuICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLklTQ1NJVm9sdW1lU291cmNlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJuZnNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19ORlNWb2x1bWVTb3VyY2VcIixcbiAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5ORlNWb2x1bWVTb3VyY2VcIlxuICAgICAgICB9LFxuICAgICAgICBcInBlcnNpc3RlbnRWb2x1bWVDbGFpbVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX1BlcnNpc3RlbnRWb2x1bWVDbGFpbVZvbHVtZVNvdXJjZVwiLFxuICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLlBlcnNpc3RlbnRWb2x1bWVDbGFpbVZvbHVtZVNvdXJjZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwicmJkXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfUkJEVm9sdW1lU291cmNlXCIsXG4gICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuUkJEVm9sdW1lU291cmNlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJzZWNyZXRcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19TZWNyZXRWb2x1bWVTb3VyY2VcIixcbiAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5TZWNyZXRWb2x1bWVTb3VyY2VcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuVm9sdW1lU291cmNlXCJcbiAgICB9LFxuICAgIFwia3ViZXJuZXRlc19iYXNlX0xpc3RNZXRhXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJyZXNvdXJjZVZlcnNpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIlxuICAgICAgICB9LFxuICAgICAgICBcInNlbGZMaW5rXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLmJhc2UuTGlzdE1ldGFcIlxuICAgIH0sXG4gICAgXCJrdWJlcm5ldGVzX2Jhc2VfU3RhdHVzXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJhcGlWZXJzaW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgXCJkZWZhdWx0XCI6IFwidjFcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IHRydWUsXG4gICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgIFwidjFcIlxuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAgXCJjb2RlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZGV0YWlsc1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX2Jhc2VfU3RhdHVzRGV0YWlsc1wiLFxuICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLmJhc2UuU3RhdHVzRGV0YWlsc1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwia2luZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICAgIFwiZGVmYXVsdFwiOiBcIlN0YXR1c1wiLFxuICAgICAgICAgIFwicmVxdWlyZWRcIjogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBcIm1lc3NhZ2VcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIlxuICAgICAgICB9LFxuICAgICAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfYmFzZV9MaXN0TWV0YVwiLFxuICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLmJhc2UuTGlzdE1ldGFcIlxuICAgICAgICB9LFxuICAgICAgICBcInJlYXNvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwic3RhdHVzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLmJhc2UuU3RhdHVzXCJcbiAgICB9LFxuICAgIFwia3ViZXJuZXRlc19iYXNlX1N0YXR1c0NhdXNlXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJmaWVsZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibWVzc2FnZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwicmVhc29uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLmJhc2UuU3RhdHVzQ2F1c2VcIlxuICAgIH0sXG4gICAgXCJrdWJlcm5ldGVzX2Jhc2VfU3RhdHVzRGV0YWlsc1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiY2F1c2VzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19iYXNlX1N0YXR1c0NhdXNlXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5iYXNlLlN0YXR1c0NhdXNlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiaWRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIlxuICAgICAgICB9LFxuICAgICAgICBcImtpbmRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIlxuICAgICAgICB9LFxuICAgICAgICBcInJldHJ5QWZ0ZXJTZWNvbmRzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5iYXNlLlN0YXR1c0RldGFpbHNcIlxuICAgIH0sXG4gICAgXCJrdWJlcm5ldGVzX2Jhc2VfVHlwZU1ldGFcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcImFwaVZlcnNpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIlxuICAgICAgICB9LFxuICAgICAgICBcImtpbmRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuYmFzZS5UeXBlTWV0YVwiXG4gICAgfSxcbiAgICBcImt1YmVybmV0ZXNfY29uZmlnX0F1dGhJbmZvXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJjbGllbnQtY2VydGlmaWNhdGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIlxuICAgICAgICB9LFxuICAgICAgICBcImNsaWVudC1jZXJ0aWZpY2F0ZS1kYXRhXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJjbGllbnQta2V5XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJjbGllbnQta2V5LWRhdGFcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIlxuICAgICAgICB9LFxuICAgICAgICBcImV4dGVuc2lvbnNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX2NvbmZpZ19OYW1lZEV4dGVuc2lvblwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuY29uZmlnLk5hbWVkRXh0ZW5zaW9uXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicGFzc3dvcmRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIlxuICAgICAgICB9LFxuICAgICAgICBcInRva2VuXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ1c2VybmFtZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5jb25maWcuQXV0aEluZm9cIlxuICAgIH0sXG4gICAgXCJrdWJlcm5ldGVzX2NvbmZpZ19DbHVzdGVyXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJhcGktdmVyc2lvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiY2VydGlmaWNhdGUtYXV0aG9yaXR5XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJjZXJ0aWZpY2F0ZS1hdXRob3JpdHktZGF0YVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZXh0ZW5zaW9uc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfY29uZmlnX05hbWVkRXh0ZW5zaW9uXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5jb25maWcuTmFtZWRFeHRlbnNpb25cIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJpbnNlY3VyZS1za2lwLXRscy12ZXJpZnlcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJzZXJ2ZXJcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuY29uZmlnLkNsdXN0ZXJcIlxuICAgIH0sXG4gICAgXCJrdWJlcm5ldGVzX2NvbmZpZ19Db25maWdcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcImFwaVZlcnNpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIlxuICAgICAgICB9LFxuICAgICAgICBcImNsdXN0ZXJzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19jb25maWdfTmFtZWRDbHVzdGVyXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5jb25maWcuTmFtZWRDbHVzdGVyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiY29udGV4dHNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX2NvbmZpZ19OYW1lZENvbnRleHRcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLmNvbmZpZy5OYW1lZENvbnRleHRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJjdXJyZW50LWNvbnRleHRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIlxuICAgICAgICB9LFxuICAgICAgICBcImV4dGVuc2lvbnNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX2NvbmZpZ19OYW1lZEV4dGVuc2lvblwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuY29uZmlnLk5hbWVkRXh0ZW5zaW9uXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwia2luZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwicHJlZmVyZW5jZXNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19jb25maWdfUHJlZmVyZW5jZXNcIixcbiAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5jb25maWcuUHJlZmVyZW5jZXNcIlxuICAgICAgICB9LFxuICAgICAgICBcInVzZXJzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19jb25maWdfTmFtZWRBdXRoSW5mb1wiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuY29uZmlnLk5hbWVkQXV0aEluZm9cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLmNvbmZpZy5Db25maWdcIlxuICAgIH0sXG4gICAgXCJrdWJlcm5ldGVzX2NvbmZpZ19Db250ZXh0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJjbHVzdGVyXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJleHRlbnNpb25zXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19jb25maWdfTmFtZWRFeHRlbnNpb25cIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLmNvbmZpZy5OYW1lZEV4dGVuc2lvblwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIm5hbWVzcGFjZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidXNlclwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5jb25maWcuQ29udGV4dFwiXG4gICAgfSxcbiAgICBcImt1YmVybmV0ZXNfY29uZmlnX05hbWVkQXV0aEluZm9cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcIm5hbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIlxuICAgICAgICB9LFxuICAgICAgICBcInVzZXJcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19jb25maWdfQXV0aEluZm9cIixcbiAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5jb25maWcuQXV0aEluZm9cIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuY29uZmlnLk5hbWVkQXV0aEluZm9cIlxuICAgIH0sXG4gICAgXCJrdWJlcm5ldGVzX2NvbmZpZ19OYW1lZENsdXN0ZXJcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcImNsdXN0ZXJcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19jb25maWdfQ2x1c3RlclwiLFxuICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLmNvbmZpZy5DbHVzdGVyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJuYW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLmNvbmZpZy5OYW1lZENsdXN0ZXJcIlxuICAgIH0sXG4gICAgXCJrdWJlcm5ldGVzX2NvbmZpZ19OYW1lZENvbnRleHRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcImNvbnRleHRcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19jb25maWdfQ29udGV4dFwiLFxuICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLmNvbmZpZy5Db250ZXh0XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJuYW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLmNvbmZpZy5OYW1lZENvbnRleHRcIlxuICAgIH0sXG4gICAgXCJrdWJlcm5ldGVzX2NvbmZpZ19OYW1lZEV4dGVuc2lvblwiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiZXh0ZW5zaW9uXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfcnVudGltZV9SYXdFeHRlbnNpb25cIixcbiAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5IYXNNZXRhZGF0YVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibmFtZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5jb25maWcuTmFtZWRFeHRlbnNpb25cIlxuICAgIH0sXG4gICAgXCJrdWJlcm5ldGVzX2NvbmZpZ19QcmVmZXJlbmNlc1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiY29sb3JzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZXh0ZW5zaW9uc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfY29uZmlnX05hbWVkRXh0ZW5zaW9uXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5jb25maWcuTmFtZWRFeHRlbnNpb25cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLmNvbmZpZy5QcmVmZXJlbmNlc1wiXG4gICAgfSxcbiAgICBcImt1YmVybmV0ZXNfZXJyb3JzX1N0YXR1c0Vycm9yXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJFcnJTdGF0dXNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19iYXNlX1N0YXR1c1wiLFxuICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLmJhc2UuU3RhdHVzXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLmVycm9ycy5TdGF0dXNFcnJvclwiXG4gICAgfSxcbiAgICBcImt1YmVybmV0ZXNfcmVzb3VyY2VfUXVhbnRpdHlcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcIkFtb3VudFwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9zcGV0ZXJfaW5mX0RlY1wiLFxuICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5jbGllbnQudXRpbC5EZWNcIlxuICAgICAgICB9LFxuICAgICAgICBcIkZvcm1hdFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5yZXNvdXJjZS5RdWFudGl0eVwiXG4gICAgfSxcbiAgICBcImt1YmVybmV0ZXNfcnVudGltZV9SYXdFeHRlbnNpb25cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcIlJhd0pTT05cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuSGFzTWV0YWRhdGFcIlxuICAgIH0sXG4gICAgXCJrdWJlcm5ldGVzX3V0aWxfSW50T3JTdHJpbmdcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcIkludFZhbFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIlxuICAgICAgICB9LFxuICAgICAgICBcIktpbmRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJTdHJWYWxcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwudXRpbC5JbnRPclN0cmluZ1wiXG4gICAgfSxcbiAgICBcImt1YmVybmV0ZXNfd2F0Y2hfV2F0Y2hFdmVudFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwib2JqZWN0XCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfcnVudGltZV9SYXdFeHRlbnNpb25cIixcbiAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5IYXNNZXRhZGF0YVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidHlwZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInRoZSB0eXBlIG9mIHdhdGNoIGV2ZW50OyBtYXkgYmUgQURERURcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkud2F0Y2guV2F0Y2hFdmVudFwiXG4gICAgfSxcbiAgICBcIm9zX2J1aWxkX0J1aWxkXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJhcGlWZXJzaW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgXCJkZWZhdWx0XCI6IFwidjFcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IHRydWUsXG4gICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgIFwidjFcIlxuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAgXCJraW5kXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgXCJkZWZhdWx0XCI6IFwiQnVpbGRcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgXCJtZXRhZGF0YVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX09iamVjdE1ldGFcIixcbiAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5PYmplY3RNZXRhXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJzcGVjXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29zX2J1aWxkX0J1aWxkU3BlY1wiLFxuICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuQnVpbGRTcGVjXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJzdGF0dXNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3NfYnVpbGRfQnVpbGRTdGF0dXNcIixcbiAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLkJ1aWxkU3RhdHVzXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuQnVpbGRcIixcbiAgICAgIFwiamF2YUludGVyZmFjZXNcIjogW1xuICAgICAgICBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuSGFzTWV0YWRhdGFcIlxuICAgICAgXVxuICAgIH0sXG4gICAgXCJvc19idWlsZF9CdWlsZENvbmZpZ1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiYXBpVmVyc2lvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICAgIFwiZGVmYXVsdFwiOiBcInYxXCIsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlLFxuICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICBcInYxXCJcbiAgICAgICAgICBdXG4gICAgICAgIH0sXG4gICAgICAgIFwia2luZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICAgIFwiZGVmYXVsdFwiOiBcIkJ1aWxkQ29uZmlnXCIsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIFwibWV0YWRhdGFcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19PYmplY3RNZXRhXCIsXG4gICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuT2JqZWN0TWV0YVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwic3BlY1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vc19idWlsZF9CdWlsZENvbmZpZ1NwZWNcIixcbiAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLkJ1aWxkQ29uZmlnU3BlY1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwic3RhdHVzXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29zX2J1aWxkX0J1aWxkQ29uZmlnU3RhdHVzXCIsXG4gICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5CdWlsZENvbmZpZ1N0YXR1c1wiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLkJ1aWxkQ29uZmlnXCIsXG4gICAgICBcImphdmFJbnRlcmZhY2VzXCI6IFtcbiAgICAgICAgXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkhhc01ldGFkYXRhXCJcbiAgICAgIF1cbiAgICB9LFxuICAgIFwib3NfYnVpbGRfQnVpbGRDb25maWdMaXN0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJhcGlWZXJzaW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgXCJkZWZhdWx0XCI6IFwidjFcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IHRydWUsXG4gICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgIFwidjFcIlxuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibGlzdCBvZiBidWlsZCBjb25maWdzXCIsXG4gICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29zX2J1aWxkX0J1aWxkQ29uZmlnXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLkJ1aWxkQ29uZmlnXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwia2luZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICAgIFwiZGVmYXVsdFwiOiBcIkJ1aWxkQ29uZmlnTGlzdFwiLFxuICAgICAgICAgIFwicmVxdWlyZWRcIjogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfTGlzdE1ldGFcIixcbiAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5MaXN0TWV0YVwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLkJ1aWxkQ29uZmlnTGlzdFwiLFxuICAgICAgXCJqYXZhSW50ZXJmYWNlc1wiOiBbXG4gICAgICAgIFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5LdWJlcm5ldGVzUmVzb3VyY2VcIlxuICAgICAgXVxuICAgIH0sXG4gICAgXCJvc19idWlsZF9CdWlsZENvbmZpZ1NwZWNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcIm91dHB1dFwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vc19idWlsZF9CdWlsZE91dHB1dFwiLFxuICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuQnVpbGRPdXRwdXRcIlxuICAgICAgICB9LFxuICAgICAgICBcInJlc291cmNlc1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX1Jlc291cmNlUmVxdWlyZW1lbnRzXCIsXG4gICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuUmVzb3VyY2VSZXF1aXJlbWVudHNcIlxuICAgICAgICB9LFxuICAgICAgICBcInJldmlzaW9uXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29zX2J1aWxkX1NvdXJjZVJldmlzaW9uXCIsXG4gICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5Tb3VyY2VSZXZpc2lvblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwic2VydmljZUFjY291bnRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJ0aGUgbmFtZSBvZiB0aGUgc2VydmljZSBhY2NvdW50IHRvIHVzZSB0byBydW4gcG9kcyBjcmVhdGVkIGJ5IHRoZSBidWlsZFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwic291cmNlXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29zX2J1aWxkX0J1aWxkU291cmNlXCIsXG4gICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5CdWlsZFNvdXJjZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwic3RyYXRlZ3lcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3NfYnVpbGRfQnVpbGRTdHJhdGVneVwiLFxuICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuQnVpbGRTdHJhdGVneVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidHJpZ2dlcnNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImRldGVybWluZXMgaG93IG5ldyBidWlsZHMgY2FuIGJlIGxhdW5jaGVkIGZyb20gYSBidWlsZCBjb25maWcuICBpZiBubyB0cmlnZ2VycyBhcmUgZGVmaW5lZFwiLFxuICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vc19idWlsZF9CdWlsZFRyaWdnZXJQb2xpY3lcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuQnVpbGRUcmlnZ2VyUG9saWN5XCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLkJ1aWxkQ29uZmlnU3BlY1wiXG4gICAgfSxcbiAgICBcIm9zX2J1aWxkX0J1aWxkQ29uZmlnU3RhdHVzXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJsYXN0VmVyc2lvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJ1c2VkIHRvIGluZm9ybSBhYm91dCBudW1iZXIgb2YgbGFzdCB0cmlnZ2VyZWQgYnVpbGRcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5CdWlsZENvbmZpZ1N0YXR1c1wiXG4gICAgfSxcbiAgICBcIm9zX2J1aWxkX0J1aWxkTGlzdFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiYXBpVmVyc2lvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICAgIFwiZGVmYXVsdFwiOiBcInYxXCIsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlLFxuICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICBcInYxXCJcbiAgICAgICAgICBdXG4gICAgICAgIH0sXG4gICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImxpc3Qgb2YgYnVpbGRzXCIsXG4gICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29zX2J1aWxkX0J1aWxkXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLkJ1aWxkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwia2luZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICAgIFwiZGVmYXVsdFwiOiBcIkJ1aWxkTGlzdFwiLFxuICAgICAgICAgIFwicmVxdWlyZWRcIjogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfTGlzdE1ldGFcIixcbiAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5MaXN0TWV0YVwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLkJ1aWxkTGlzdFwiLFxuICAgICAgXCJqYXZhSW50ZXJmYWNlc1wiOiBbXG4gICAgICAgIFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5LdWJlcm5ldGVzUmVzb3VyY2VcIlxuICAgICAgXVxuICAgIH0sXG4gICAgXCJvc19idWlsZF9CdWlsZE91dHB1dFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwicHVzaFNlY3JldFwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX0xvY2FsT2JqZWN0UmVmZXJlbmNlXCIsXG4gICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuTG9jYWxPYmplY3RSZWZlcmVuY2VcIlxuICAgICAgICB9LFxuICAgICAgICBcInRvXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfT2JqZWN0UmVmZXJlbmNlXCIsXG4gICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuT2JqZWN0UmVmZXJlbmNlXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuQnVpbGRPdXRwdXRcIlxuICAgIH0sXG4gICAgXCJvc19idWlsZF9CdWlsZFJlcXVlc3RcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcImFwaVZlcnNpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICBcImRlZmF1bHRcIjogXCJ2MVwiLFxuICAgICAgICAgIFwicmVxdWlyZWRcIjogdHJ1ZSxcbiAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgXCJ2MVwiXG4gICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICBcImtpbmRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICBcImRlZmF1bHRcIjogXCJCdWlsZFJlcXVlc3RcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgXCJtZXRhZGF0YVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX09iamVjdE1ldGFcIixcbiAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5PYmplY3RNZXRhXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJyZXZpc2lvblwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vc19idWlsZF9Tb3VyY2VSZXZpc2lvblwiLFxuICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuU291cmNlUmV2aXNpb25cIlxuICAgICAgICB9LFxuICAgICAgICBcInRyaWdnZXJlZEJ5SW1hZ2VcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19PYmplY3RSZWZlcmVuY2VcIixcbiAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5PYmplY3RSZWZlcmVuY2VcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5CdWlsZFJlcXVlc3RcIixcbiAgICAgIFwiamF2YUludGVyZmFjZXNcIjogW1xuICAgICAgICBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuSGFzTWV0YWRhdGFcIlxuICAgICAgXVxuICAgIH0sXG4gICAgXCJvc19idWlsZF9CdWlsZFNvdXJjZVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiY29udGV4dERpclwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInNwZWNpZmllcyBzdWItZGlyZWN0b3J5IHdoZXJlIHRoZSBzb3VyY2UgY29kZSBmb3IgdGhlIGFwcGxpY2F0aW9uIGV4aXN0c1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZ2l0XCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29zX2J1aWxkX0dpdEJ1aWxkU291cmNlXCIsXG4gICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5HaXRCdWlsZFNvdXJjZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwic291cmNlU2VjcmV0XCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfTG9jYWxPYmplY3RSZWZlcmVuY2VcIixcbiAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5Mb2NhbE9iamVjdFJlZmVyZW5jZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidHlwZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInR5cGUgb2Ygc291cmNlIGNvbnRyb2wgbWFuYWdlbWVudCBzeXN0ZW1cIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5CdWlsZFNvdXJjZVwiXG4gICAgfSxcbiAgICBcIm9zX2J1aWxkX0J1aWxkU3BlY1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29zX2J1aWxkX0J1aWxkT3V0cHV0XCIsXG4gICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5CdWlsZE91dHB1dFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwicmVzb3VyY2VzXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfUmVzb3VyY2VSZXF1aXJlbWVudHNcIixcbiAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5SZXNvdXJjZVJlcXVpcmVtZW50c1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwicmV2aXNpb25cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3NfYnVpbGRfU291cmNlUmV2aXNpb25cIixcbiAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLlNvdXJjZVJldmlzaW9uXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJzZXJ2aWNlQWNjb3VudFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInRoZSBuYW1lIG9mIHRoZSBzZXJ2aWNlIGFjY291bnQgdG8gdXNlIHRvIHJ1biBwb2RzIGNyZWF0ZWQgYnkgdGhlIGJ1aWxkXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJzb3VyY2VcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3NfYnVpbGRfQnVpbGRTb3VyY2VcIixcbiAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLkJ1aWxkU291cmNlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJzdHJhdGVneVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vc19idWlsZF9CdWlsZFN0cmF0ZWd5XCIsXG4gICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5CdWlsZFN0cmF0ZWd5XCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuQnVpbGRTcGVjXCJcbiAgICB9LFxuICAgIFwib3NfYnVpbGRfQnVpbGRTdGF0dXNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcImNhbmNlbGxlZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJkZXNjcmliZXMgaWYgYSBjYW5jZWxpbmcgZXZlbnQgd2FzIHRyaWdnZXJlZCBmb3IgdGhlIGJ1aWxkXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJjb21wbGV0aW9uVGltZXN0YW1wXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwic2VydmVyIHRpbWUgd2hlbiB0aGUgcG9kIHJ1bm5pbmcgdGhpcyBidWlsZCBzdG9wcGVkIHJ1bm5pbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcImNvbmZpZ1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX09iamVjdFJlZmVyZW5jZVwiLFxuICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLk9iamVjdFJlZmVyZW5jZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZHVyYXRpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiYW1vdW50IG9mIHRpbWUgdGhlIGJ1aWxkIGhhcyBiZWVuIHJ1bm5pbmdcIixcbiAgICAgICAgICBcImphdmFUeXBlXCI6IFwiTG9uZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwibWVzc2FnZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImh1bWFuLXJlYWRhYmxlIG1lc3NhZ2UgaW5kaWNhdGluZyBkZXRhaWxzIGFib3V0IHdoeSB0aGUgYnVpbGQgaGFzIHRoaXMgc3RhdHVzXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJwaGFzZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIm9ic2VydmVkIHBvaW50IGluIHRoZSBidWlsZCBsaWZlY3ljbGVcIlxuICAgICAgICB9LFxuICAgICAgICBcInN0YXJ0VGltZXN0YW1wXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwic2VydmVyIHRpbWUgd2hlbiB0aGlzIGJ1aWxkIHN0YXJ0ZWQgcnVubmluZyBpbiBhIHBvZFwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLkJ1aWxkU3RhdHVzXCJcbiAgICB9LFxuICAgIFwib3NfYnVpbGRfQnVpbGRTdHJhdGVneVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiY3VzdG9tU3RyYXRlZ3lcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3NfYnVpbGRfQ3VzdG9tQnVpbGRTdHJhdGVneVwiLFxuICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuQ3VzdG9tQnVpbGRTdHJhdGVneVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZG9ja2VyU3RyYXRlZ3lcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3NfYnVpbGRfRG9ja2VyQnVpbGRTdHJhdGVneVwiLFxuICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuRG9ja2VyQnVpbGRTdHJhdGVneVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwic291cmNlU3RyYXRlZ3lcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3NfYnVpbGRfU291cmNlQnVpbGRTdHJhdGVneVwiLFxuICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuU291cmNlQnVpbGRTdHJhdGVneVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidHlwZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImlkZW50aWZpZXMgdGhlIHR5cGUgb2YgYnVpbGQgc3RyYXRlZ3lcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5CdWlsZFN0cmF0ZWd5XCJcbiAgICB9LFxuICAgIFwib3NfYnVpbGRfQnVpbGRUcmlnZ2VyUG9saWN5XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJnZW5lcmljXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29zX2J1aWxkX1dlYkhvb2tUcmlnZ2VyXCIsXG4gICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5XZWJIb29rVHJpZ2dlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZ2l0aHViXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29zX2J1aWxkX1dlYkhvb2tUcmlnZ2VyXCIsXG4gICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5XZWJIb29rVHJpZ2dlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiaW1hZ2VDaGFuZ2VcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3NfYnVpbGRfSW1hZ2VDaGFuZ2VUcmlnZ2VyXCIsXG4gICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5JbWFnZUNoYW5nZVRyaWdnZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcInR5cGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJ0eXBlIG9mIGJ1aWxkIHRyaWdnZXJcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5CdWlsZFRyaWdnZXJQb2xpY3lcIlxuICAgIH0sXG4gICAgXCJvc19idWlsZF9DdXN0b21CdWlsZFN0cmF0ZWd5XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJlbnZcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImFkZGl0aW9uYWwgZW52aXJvbm1lbnQgdmFyaWFibGVzIHlvdSB3YW50IHRvIHBhc3MgaW50byBhIGJ1aWxkZXIgY29udGFpbmVyXCIsXG4gICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfRW52VmFyXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5FbnZWYXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJleHBvc2VEb2NrZXJTb2NrZXRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiYWxsb3cgcnVubmluZyBEb2NrZXIgY29tbWFuZHMgKGFuZCBidWlsZCBEb2NrZXIgaW1hZ2VzKSBmcm9tIGluc2lkZSB0aGUgY29udGFpbmVyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJmcm9tXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfT2JqZWN0UmVmZXJlbmNlXCIsXG4gICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuT2JqZWN0UmVmZXJlbmNlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJwdWxsU2VjcmV0XCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfTG9jYWxPYmplY3RSZWZlcmVuY2VcIixcbiAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5Mb2NhbE9iamVjdFJlZmVyZW5jZVwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLkN1c3RvbUJ1aWxkU3RyYXRlZ3lcIlxuICAgIH0sXG4gICAgXCJvc19idWlsZF9Eb2NrZXJCdWlsZFN0cmF0ZWd5XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJmcm9tXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfT2JqZWN0UmVmZXJlbmNlXCIsXG4gICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuT2JqZWN0UmVmZXJlbmNlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJub0NhY2hlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImlmIHRydWVcIlxuICAgICAgICB9LFxuICAgICAgICBcInB1bGxTZWNyZXRcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19Mb2NhbE9iamVjdFJlZmVyZW5jZVwiLFxuICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkxvY2FsT2JqZWN0UmVmZXJlbmNlXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuRG9ja2VyQnVpbGRTdHJhdGVneVwiXG4gICAgfSxcbiAgICBcIm9zX2J1aWxkX0dpdEJ1aWxkU291cmNlXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJyZWZcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJpZGVudGlmaWVzIHRoZSBicmFuY2gvdGFnL3JlZiB0byBidWlsZFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidXJpXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwicG9pbnRzIHRvIHRoZSBzb3VyY2UgdGhhdCB3aWxsIGJlIGJ1aWx0XCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuR2l0QnVpbGRTb3VyY2VcIlxuICAgIH0sXG4gICAgXCJvc19idWlsZF9HaXRTb3VyY2VSZXZpc2lvblwiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiYXV0aG9yXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29zX2J1aWxkX1NvdXJjZUNvbnRyb2xVc2VyXCIsXG4gICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5Tb3VyY2VDb250cm9sVXNlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiY29tbWl0XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiaGFzaCBpZGVudGlmeWluZyBhIHNwZWNpZmljIGNvbW1pdFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiY29tbWl0dGVyXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29zX2J1aWxkX1NvdXJjZUNvbnRyb2xVc2VyXCIsXG4gICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5Tb3VyY2VDb250cm9sVXNlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibWVzc2FnZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImRlc2NyaXB0aW9uIG9mIGEgc3BlY2lmaWMgY29tbWl0XCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuR2l0U291cmNlUmV2aXNpb25cIlxuICAgIH0sXG4gICAgXCJvc19idWlsZF9JbWFnZUNoYW5nZVRyaWdnZXJcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcImxhc3RUcmlnZ2VyZWRJbWFnZUlEXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwidXNlZCBpbnRlcm5hbGx5IHRvIHNhdmUgbGFzdCB1c2VkIGltYWdlIElEIGZvciBidWlsZFwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLkltYWdlQ2hhbmdlVHJpZ2dlclwiXG4gICAgfSxcbiAgICBcIm9zX2J1aWxkX1NvdXJjZUJ1aWxkU3RyYXRlZ3lcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcImVudlwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiYWRkaXRpb25hbCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgeW91IHdhbnQgdG8gcGFzcyBpbnRvIGEgYnVpbGRlciBjb250YWluZXJcIixcbiAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19FbnZWYXJcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkVudlZhclwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImZyb21cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19PYmplY3RSZWZlcmVuY2VcIixcbiAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5PYmplY3RSZWZlcmVuY2VcIlxuICAgICAgICB9LFxuICAgICAgICBcImluY3JlbWVudGFsXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImZvcmNlcyB0aGUgc291cmNlIGJ1aWxkIHRvIGRvIGluY3JlbWVudGFsIGJ1aWxkcyBpZiB0cnVlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJwdWxsU2VjcmV0XCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfTG9jYWxPYmplY3RSZWZlcmVuY2VcIixcbiAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5Mb2NhbE9iamVjdFJlZmVyZW5jZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwic2NyaXB0c1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImxvY2F0aW9uIG9mIHRoZSBzb3VyY2Ugc2NyaXB0c1wiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLlNvdXJjZUJ1aWxkU3RyYXRlZ3lcIlxuICAgIH0sXG4gICAgXCJvc19idWlsZF9Tb3VyY2VDb250cm9sVXNlclwiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiZW1haWxcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJlLW1haWwgb2YgdGhlIHNvdXJjZSBjb250cm9sIHVzZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcIm5hbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJuYW1lIG9mIHRoZSBzb3VyY2UgY29udHJvbCB1c2VyXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuU291cmNlQ29udHJvbFVzZXJcIlxuICAgIH0sXG4gICAgXCJvc19idWlsZF9Tb3VyY2VSZXZpc2lvblwiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiZ2l0XCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29zX2J1aWxkX0dpdFNvdXJjZVJldmlzaW9uXCIsXG4gICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5HaXRTb3VyY2VSZXZpc2lvblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidHlwZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInR5cGUgb2YgdGhlIGJ1aWxkIHNvdXJjZVwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLlNvdXJjZVJldmlzaW9uXCJcbiAgICB9LFxuICAgIFwib3NfYnVpbGRfV2ViSG9va1RyaWdnZXJcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcInNlY3JldFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInNlY3JldCB1c2VkIHRvIHZhbGlkYXRlIHJlcXVlc3RzXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuV2ViSG9va1RyaWdnZXJcIlxuICAgIH0sXG4gICAgXCJvc19kZXBsb3lfQ3VzdG9tRGVwbG95bWVudFN0cmF0ZWd5UGFyYW1zXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJjb21tYW5kXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJvcHRpb25hbGx5IG92ZXJyaWRlcyB0aGUgY29udGFpbmVyIGNvbW1hbmQgKGRlZmF1bHQgaXMgc3BlY2lmaWVkIGJ5IHRoZSBpbWFnZSlcIixcbiAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIm9wdGlvbmFsbHkgb3ZlcnJpZGVzIHRoZSBjb250YWluZXIgY29tbWFuZCAoZGVmYXVsdCBpcyBzcGVjaWZpZWQgYnkgdGhlIGltYWdlKVwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImVudmlyb25tZW50XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJlbnZpcm9ubWVudCB2YXJpYWJsZXMgcHJvdmlkZWQgdG8gdGhlIGRlcGxveW1lbnQgcHJvY2VzcyBjb250YWluZXJcIixcbiAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19FbnZWYXJcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkVudlZhclwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImltYWdlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiYSBEb2NrZXIgaW1hZ2Ugd2hpY2ggY2FuIGNhcnJ5IG91dCBhIGRlcGxveW1lbnRcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5DdXN0b21EZXBsb3ltZW50U3RyYXRlZ3lQYXJhbXNcIlxuICAgIH0sXG4gICAgXCJvc19kZXBsb3lfRGVwbG95bWVudENhdXNlXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJpbWFnZVRyaWdnZXJcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3NfZGVwbG95X0RlcGxveW1lbnRDYXVzZUltYWdlVHJpZ2dlclwiLFxuICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuRGVwbG95bWVudENhdXNlSW1hZ2VUcmlnZ2VyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0eXBlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwidGhlIHR5cGUgb2YgdHJpZ2dlciB0aGF0IHJlc3VsdGVkIGluIGEgbmV3IGRlcGxveW1lbnRcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5EZXBsb3ltZW50Q2F1c2VcIlxuICAgIH0sXG4gICAgXCJvc19kZXBsb3lfRGVwbG95bWVudENhdXNlSW1hZ2VUcmlnZ2VyXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJmcm9tXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfT2JqZWN0UmVmZXJlbmNlXCIsXG4gICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuT2JqZWN0UmVmZXJlbmNlXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuRGVwbG95bWVudENhdXNlSW1hZ2VUcmlnZ2VyXCJcbiAgICB9LFxuICAgIFwib3NfZGVwbG95X0RlcGxveW1lbnRDb25maWdcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcImFwaVZlcnNpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICBcImRlZmF1bHRcIjogXCJ2MVwiLFxuICAgICAgICAgIFwicmVxdWlyZWRcIjogdHJ1ZSxcbiAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgXCJ2MVwiXG4gICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICBcImtpbmRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICBcImRlZmF1bHRcIjogXCJEZXBsb3ltZW50Q29uZmlnXCIsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIFwibWV0YWRhdGFcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19PYmplY3RNZXRhXCIsXG4gICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuT2JqZWN0TWV0YVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwic3BlY1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vc19kZXBsb3lfRGVwbG95bWVudENvbmZpZ1NwZWNcIixcbiAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLkRlcGxveW1lbnRDb25maWdTcGVjXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJzdGF0dXNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3NfZGVwbG95X0RlcGxveW1lbnRDb25maWdTdGF0dXNcIixcbiAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLkRlcGxveW1lbnRDb25maWdTdGF0dXNcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5EZXBsb3ltZW50Q29uZmlnXCIsXG4gICAgICBcImphdmFJbnRlcmZhY2VzXCI6IFtcbiAgICAgICAgXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkhhc01ldGFkYXRhXCJcbiAgICAgIF1cbiAgICB9LFxuICAgIFwib3NfZGVwbG95X0RlcGxveW1lbnRDb25maWdMaXN0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJhcGlWZXJzaW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgXCJkZWZhdWx0XCI6IFwidjFcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IHRydWUsXG4gICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgIFwidjFcIlxuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiYSBsaXN0IG9mIGRlcGxveW1lbnQgY29uZmlnc1wiLFxuICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vc19kZXBsb3lfRGVwbG95bWVudENvbmZpZ1wiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5EZXBsb3ltZW50Q29uZmlnXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwia2luZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICAgIFwiZGVmYXVsdFwiOiBcIkRlcGxveW1lbnRDb25maWdMaXN0XCIsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIFwibWV0YWRhdGFcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19MaXN0TWV0YVwiLFxuICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkxpc3RNZXRhXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuRGVwbG95bWVudENvbmZpZ0xpc3RcIixcbiAgICAgIFwiamF2YUludGVyZmFjZXNcIjogW1xuICAgICAgICBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuS3ViZXJuZXRlc1Jlc291cmNlXCJcbiAgICAgIF1cbiAgICB9LFxuICAgIFwib3NfZGVwbG95X0RlcGxveW1lbnRDb25maWdTcGVjXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJyZXBsaWNhc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJ0aGUgZGVzaXJlZCBudW1iZXIgb2YgcmVwbGljYXNcIlxuICAgICAgICB9LFxuICAgICAgICBcInNlbGVjdG9yXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiYSBsYWJlbCBxdWVyeSBvdmVyIHBvZHMgdGhhdCBzaG91bGQgbWF0Y2ggdGhlIHJlcGxpY2FzIGNvdW50XCIsXG4gICAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJhIGxhYmVsIHF1ZXJ5IG92ZXIgcG9kcyB0aGF0IHNob3VsZCBtYXRjaCB0aGUgcmVwbGljYXMgY291bnRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImphdmEudXRpbC5NYXBcXHUwMDNjU3RyaW5nLFN0cmluZ1xcdTAwM2VcIlxuICAgICAgICB9LFxuICAgICAgICBcInN0cmF0ZWd5XCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29zX2RlcGxveV9EZXBsb3ltZW50U3RyYXRlZ3lcIixcbiAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLkRlcGxveW1lbnRTdHJhdGVneVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidGVtcGxhdGVcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19Qb2RUZW1wbGF0ZVNwZWNcIixcbiAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5Qb2RUZW1wbGF0ZVNwZWNcIlxuICAgICAgICB9LFxuICAgICAgICBcInRlbXBsYXRlUmVmXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfT2JqZWN0UmVmZXJlbmNlXCIsXG4gICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuT2JqZWN0UmVmZXJlbmNlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0cmlnZ2Vyc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiaG93IG5ldyBkZXBsb3ltZW50cyBhcmUgdHJpZ2dlcmVkXCIsXG4gICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29zX2RlcGxveV9EZXBsb3ltZW50VHJpZ2dlclBvbGljeVwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5EZXBsb3ltZW50VHJpZ2dlclBvbGljeVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5EZXBsb3ltZW50Q29uZmlnU3BlY1wiXG4gICAgfSxcbiAgICBcIm9zX2RlcGxveV9EZXBsb3ltZW50Q29uZmlnU3RhdHVzXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJkZXRhaWxzXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29zX2RlcGxveV9EZXBsb3ltZW50RGV0YWlsc1wiLFxuICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuRGVwbG95bWVudERldGFpbHNcIlxuICAgICAgICB9LFxuICAgICAgICBcImxhdGVzdFZlcnNpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwidXNlZCB0byBkZXRlcm1pbmUgd2hldGhlciB0aGUgY3VycmVudCBkZXBsb3ltZW50IGlzIG91dCBvZiBzeW5jXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuRGVwbG95bWVudENvbmZpZ1N0YXR1c1wiXG4gICAgfSxcbiAgICBcIm9zX2RlcGxveV9EZXBsb3ltZW50RGV0YWlsc1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiY2F1c2VzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJleHRlbmRlZCBkYXRhIGFzc29jaWF0ZWQgd2l0aCBhbGwgdGhlIGNhdXNlcyBmb3IgY3JlYXRpbmcgYSBuZXcgZGVwbG95bWVudFwiLFxuICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vc19kZXBsb3lfRGVwbG95bWVudENhdXNlXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLkRlcGxveW1lbnRDYXVzZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcIm1lc3NhZ2VcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJhIHVzZXIgc3BlY2lmaWVkIGNoYW5nZSBtZXNzYWdlXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuRGVwbG95bWVudERldGFpbHNcIlxuICAgIH0sXG4gICAgXCJvc19kZXBsb3lfRGVwbG95bWVudFN0cmF0ZWd5XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJjdXN0b21QYXJhbXNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3NfZGVwbG95X0N1c3RvbURlcGxveW1lbnRTdHJhdGVneVBhcmFtc1wiLFxuICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuQ3VzdG9tRGVwbG95bWVudFN0cmF0ZWd5UGFyYW1zXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJyZWNyZWF0ZVBhcmFtc1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vc19kZXBsb3lfUmVjcmVhdGVEZXBsb3ltZW50U3RyYXRlZ3lQYXJhbXNcIixcbiAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLlJlY3JlYXRlRGVwbG95bWVudFN0cmF0ZWd5UGFyYW1zXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJyZXNvdXJjZXNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19SZXNvdXJjZVJlcXVpcmVtZW50c1wiLFxuICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLlJlc291cmNlUmVxdWlyZW1lbnRzXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJyb2xsaW5nUGFyYW1zXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29zX2RlcGxveV9Sb2xsaW5nRGVwbG95bWVudFN0cmF0ZWd5UGFyYW1zXCIsXG4gICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5Sb2xsaW5nRGVwbG95bWVudFN0cmF0ZWd5UGFyYW1zXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0eXBlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwidGhlIG5hbWUgb2YgYSBkZXBsb3ltZW50IHN0cmF0ZWd5XCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuRGVwbG95bWVudFN0cmF0ZWd5XCJcbiAgICB9LFxuICAgIFwib3NfZGVwbG95X0RlcGxveW1lbnRUcmlnZ2VySW1hZ2VDaGFuZ2VQYXJhbXNcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcImF1dG9tYXRpY1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJ3aGV0aGVyIGRldGVjdGlvbiBvZiBhIG5ldyB0YWcgdmFsdWUgc2hvdWxkIHRyaWdnZXIgYSBkZXBsb3ltZW50XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJjb250YWluZXJOYW1lc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwicmVzdHJpY3RzIHRhZyB1cGRhdGVzIHRvIGEgc2V0IG9mIGNvbnRhaW5lciBuYW1lcyBpbiB0aGUgcG9kXCIsXG4gICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJyZXN0cmljdHMgdGFnIHVwZGF0ZXMgdG8gYSBzZXQgb2YgY29udGFpbmVyIG5hbWVzIGluIHRoZSBwb2RcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJmcm9tXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfT2JqZWN0UmVmZXJlbmNlXCIsXG4gICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuT2JqZWN0UmVmZXJlbmNlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJsYXN0VHJpZ2dlcmVkSW1hZ2VcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJ0aGUgbGFzdCBpbWFnZSB0byBiZSB0cmlnZ2VyZWRcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5EZXBsb3ltZW50VHJpZ2dlckltYWdlQ2hhbmdlUGFyYW1zXCJcbiAgICB9LFxuICAgIFwib3NfZGVwbG95X0RlcGxveW1lbnRUcmlnZ2VyUG9saWN5XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJpbWFnZUNoYW5nZVBhcmFtc1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vc19kZXBsb3lfRGVwbG95bWVudFRyaWdnZXJJbWFnZUNoYW5nZVBhcmFtc1wiLFxuICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuRGVwbG95bWVudFRyaWdnZXJJbWFnZUNoYW5nZVBhcmFtc1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwidHlwZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInRoZSB0eXBlIG9mIHRoZSB0cmlnZ2VyXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuRGVwbG95bWVudFRyaWdnZXJQb2xpY3lcIlxuICAgIH0sXG4gICAgXCJvc19kZXBsb3lfRXhlY05ld1BvZEhvb2tcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcImNvbW1hbmRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInRoZSBob29rIGNvbW1hbmQgYW5kIGl0cyBhcmd1bWVudHNcIixcbiAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInRoZSBob29rIGNvbW1hbmQgYW5kIGl0cyBhcmd1bWVudHNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJjb250YWluZXJOYW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwidGhlIG5hbWUgb2YgYSBjb250YWluZXIgZnJvbSB0aGUgcG9kIHRlbXBsYXRlIHdob3NlIGltYWdlIHdpbGwgYmUgdXNlZCBmb3IgdGhlIGhvb2sgY29udGFpbmVyXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJlbnZcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImVudmlyb25tZW50IHZhcmlhYmxlcyBwcm92aWRlZCB0byB0aGUgaG9vayBjb250YWluZXJcIixcbiAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19FbnZWYXJcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkVudlZhclwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5FeGVjTmV3UG9kSG9va1wiXG4gICAgfSxcbiAgICBcIm9zX2RlcGxveV9MaWZlY3ljbGVIb29rXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJleGVjTmV3UG9kXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29zX2RlcGxveV9FeGVjTmV3UG9kSG9va1wiLFxuICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuRXhlY05ld1BvZEhvb2tcIlxuICAgICAgICB9LFxuICAgICAgICBcImZhaWx1cmVQb2xpY3lcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJ3aGF0IGFjdGlvbiB0byB0YWtlIGlmIHRoZSBob29rIGZhaWxzXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuTGlmZWN5Y2xlSG9va1wiXG4gICAgfSxcbiAgICBcIm9zX2RlcGxveV9SZWNyZWF0ZURlcGxveW1lbnRTdHJhdGVneVBhcmFtc1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwicG9zdFwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vc19kZXBsb3lfTGlmZWN5Y2xlSG9va1wiLFxuICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuTGlmZWN5Y2xlSG9va1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwicHJlXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29zX2RlcGxveV9MaWZlY3ljbGVIb29rXCIsXG4gICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5MaWZlY3ljbGVIb29rXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuUmVjcmVhdGVEZXBsb3ltZW50U3RyYXRlZ3lQYXJhbXNcIlxuICAgIH0sXG4gICAgXCJvc19kZXBsb3lfUm9sbGluZ0RlcGxveW1lbnRTdHJhdGVneVBhcmFtc1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiaW50ZXJ2YWxTZWNvbmRzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInRoZSB0aW1lIHRvIHdhaXQgYmV0d2VlbiBwb2xsaW5nIGRlcGxveW1lbnQgc3RhdHVzIGFmdGVyIHVwZGF0ZVwiLFxuICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJMb25nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJwb3N0XCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29zX2RlcGxveV9MaWZlY3ljbGVIb29rXCIsXG4gICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5MaWZlY3ljbGVIb29rXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJwcmVcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3NfZGVwbG95X0xpZmVjeWNsZUhvb2tcIixcbiAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLkxpZmVjeWNsZUhvb2tcIlxuICAgICAgICB9LFxuICAgICAgICBcInRpbWVvdXRTZWNvbmRzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInRoZSB0aW1lIHRvIHdhaXQgZm9yIHVwZGF0ZXMgYmVmb3JlIGdpdmluZyB1cFwiLFxuICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJMb25nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ1cGRhdGVQZXJpb2RTZWNvbmRzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInRoZSB0aW1lIHRvIHdhaXQgYmV0d2VlbiBpbmRpdmlkdWFsIHBvZCB1cGRhdGVzXCIsXG4gICAgICAgICAgXCJqYXZhVHlwZVwiOiBcIkxvbmdcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5Sb2xsaW5nRGVwbG95bWVudFN0cmF0ZWd5UGFyYW1zXCJcbiAgICB9LFxuICAgIFwib3NfaW1hZ2VfSW1hZ2VcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcImFwaVZlcnNpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICBcImRlZmF1bHRcIjogXCJ2MVwiLFxuICAgICAgICAgIFwicmVxdWlyZWRcIjogdHJ1ZSxcbiAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgXCJ2MVwiXG4gICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICBcImRvY2tlckltYWdlTWFuaWZlc3RcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJyYXcgSlNPTiBvZiB0aGUgbWFuaWZlc3RcIlxuICAgICAgICB9LFxuICAgICAgICBcImRvY2tlckltYWdlTWV0YWRhdGFcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19ydW50aW1lX1Jhd0V4dGVuc2lvblwiLFxuICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkhhc01ldGFkYXRhXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJkb2NrZXJJbWFnZU1ldGFkYXRhVmVyc2lvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImNvbnZleXMgdmVyc2lvbiBvZiB0aGUgb2JqZWN0XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJkb2NrZXJJbWFnZVJlZmVyZW5jZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInN0cmluZyB0aGF0IGNhbiBiZSB1c2VkIHRvIHB1bGwgdGhpcyBpbWFnZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwia2luZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICAgIFwiZGVmYXVsdFwiOiBcIkltYWdlXCIsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIFwibWV0YWRhdGFcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19PYmplY3RNZXRhXCIsXG4gICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuT2JqZWN0TWV0YVwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLkltYWdlXCIsXG4gICAgICBcImphdmFJbnRlcmZhY2VzXCI6IFtcbiAgICAgICAgXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkhhc01ldGFkYXRhXCJcbiAgICAgIF1cbiAgICB9LFxuICAgIFwib3NfaW1hZ2VfSW1hZ2VMaXN0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJhcGlWZXJzaW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgXCJkZWZhdWx0XCI6IFwidjFcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IHRydWUsXG4gICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgIFwidjFcIlxuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibGlzdCBvZiBpbWFnZSBvYmplY3RzXCIsXG4gICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29zX2ltYWdlX0ltYWdlXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLkltYWdlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwia2luZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICAgIFwiZGVmYXVsdFwiOiBcIkltYWdlTGlzdFwiLFxuICAgICAgICAgIFwicmVxdWlyZWRcIjogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfTGlzdE1ldGFcIixcbiAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5MaXN0TWV0YVwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLkltYWdlTGlzdFwiLFxuICAgICAgXCJqYXZhSW50ZXJmYWNlc1wiOiBbXG4gICAgICAgIFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5LdWJlcm5ldGVzUmVzb3VyY2VcIlxuICAgICAgXVxuICAgIH0sXG4gICAgXCJvc19pbWFnZV9JbWFnZVN0cmVhbVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiYXBpVmVyc2lvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICAgIFwiZGVmYXVsdFwiOiBcInYxXCIsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlLFxuICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICBcInYxXCJcbiAgICAgICAgICBdXG4gICAgICAgIH0sXG4gICAgICAgIFwia2luZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICAgIFwiZGVmYXVsdFwiOiBcIkltYWdlU3RyZWFtXCIsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIFwibWV0YWRhdGFcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19PYmplY3RNZXRhXCIsXG4gICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuT2JqZWN0TWV0YVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwic3BlY1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vc19pbWFnZV9JbWFnZVN0cmVhbVNwZWNcIixcbiAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLkltYWdlU3RyZWFtU3BlY1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwic3RhdHVzXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29zX2ltYWdlX0ltYWdlU3RyZWFtU3RhdHVzXCIsXG4gICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5JbWFnZVN0cmVhbVN0YXR1c1wiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLkltYWdlU3RyZWFtXCIsXG4gICAgICBcImphdmFJbnRlcmZhY2VzXCI6IFtcbiAgICAgICAgXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkhhc01ldGFkYXRhXCJcbiAgICAgIF1cbiAgICB9LFxuICAgIFwib3NfaW1hZ2VfSW1hZ2VTdHJlYW1MaXN0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJhcGlWZXJzaW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgXCJkZWZhdWx0XCI6IFwidjFcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IHRydWUsXG4gICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgIFwidjFcIlxuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibGlzdCBvZiBpbWFnZSBzdHJlYW0gb2JqZWN0c1wiLFxuICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vc19pbWFnZV9JbWFnZVN0cmVhbVwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5JbWFnZVN0cmVhbVwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImtpbmRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICBcImRlZmF1bHRcIjogXCJJbWFnZVN0cmVhbUxpc3RcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgXCJtZXRhZGF0YVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX0xpc3RNZXRhXCIsXG4gICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuTGlzdE1ldGFcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5JbWFnZVN0cmVhbUxpc3RcIixcbiAgICAgIFwiamF2YUludGVyZmFjZXNcIjogW1xuICAgICAgICBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuS3ViZXJuZXRlc1Jlc291cmNlXCJcbiAgICAgIF1cbiAgICB9LFxuICAgIFwib3NfaW1hZ2VfSW1hZ2VTdHJlYW1TcGVjXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJkb2NrZXJJbWFnZVJlcG9zaXRvcnlcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJvcHRpb25hbCBmaWVsZCBpZiBzcGVjaWZpZWQgdGhpcyBzdHJlYW0gaXMgYmFja2VkIGJ5IGEgRG9ja2VyIHJlcG9zaXRvcnkgb24gdGhpcyBzZXJ2ZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcInRhZ3NcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIm1hcCBhcmJpdHJhcnkgc3RyaW5nIHZhbHVlcyB0byBzcGVjaWZpYyBpbWFnZSBsb2NhdG9yc1wiLFxuICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vc19pbWFnZV9OYW1lZFRhZ1JlZmVyZW5jZVwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5OYW1lZFRhZ1JlZmVyZW5jZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5JbWFnZVN0cmVhbVNwZWNcIlxuICAgIH0sXG4gICAgXCJvc19pbWFnZV9JbWFnZVN0cmVhbVN0YXR1c1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiZG9ja2VySW1hZ2VSZXBvc2l0b3J5XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwicmVwcmVzZW50cyB0aGUgZWZmZWN0aXZlIGxvY2F0aW9uIHRoaXMgc3RyZWFtIG1heSBiZSBhY2Nlc3NlZCBhdFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidGFnc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiaGlzdG9yaWNhbCByZWNvcmQgb2YgaW1hZ2VzIGFzc29jaWF0ZWQgd2l0aCBlYWNoIHRhZ1wiLFxuICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vc19pbWFnZV9OYW1lZFRhZ0V2ZW50TGlzdFwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5OYW1lZFRhZ0V2ZW50TGlzdFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5JbWFnZVN0cmVhbVN0YXR1c1wiXG4gICAgfSxcbiAgICBcIm9zX2ltYWdlX05hbWVkVGFnRXZlbnRMaXN0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibGlzdCBvZiB0YWcgZXZlbnRzIHJlbGF0ZWQgdG8gdGhlIHRhZ1wiLFxuICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vc19pbWFnZV9UYWdFdmVudFwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5UYWdFdmVudFwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInRhZ1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInRoZSB0YWdcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5OYW1lZFRhZ0V2ZW50TGlzdFwiLFxuICAgICAgXCJqYXZhSW50ZXJmYWNlc1wiOiBbXG4gICAgICAgIFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5LdWJlcm5ldGVzUmVzb3VyY2VcIlxuICAgICAgXVxuICAgIH0sXG4gICAgXCJvc19pbWFnZV9OYW1lZFRhZ1JlZmVyZW5jZVwiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiYW5ub3RhdGlvbnNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJhbm5vdGF0aW9ucyBhc3NvY2lhdGVkIHdpdGggaW1hZ2VzIHVzaW5nIHRoaXMgdGFnXCIsXG4gICAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJhbm5vdGF0aW9ucyBhc3NvY2lhdGVkIHdpdGggaW1hZ2VzIHVzaW5nIHRoaXMgdGFnXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJqYXZhLnV0aWwuTWFwXFx1MDAzY1N0cmluZyxTdHJpbmdcXHUwMDNlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJmcm9tXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfT2JqZWN0UmVmZXJlbmNlXCIsXG4gICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuT2JqZWN0UmVmZXJlbmNlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJuYW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibmFtZSBvZiB0YWdcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5OYW1lZFRhZ1JlZmVyZW5jZVwiXG4gICAgfSxcbiAgICBcIm9zX2ltYWdlX1RhZ0V2ZW50XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJjcmVhdGVkXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwid2hlbiB0aGUgZXZlbnQgd2FzIGNyZWF0ZWRcIlxuICAgICAgICB9LFxuICAgICAgICBcImRvY2tlckltYWdlUmVmZXJlbmNlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwidGhlIHN0cmluZyB0aGF0IGNhbiBiZSB1c2VkIHRvIHB1bGwgdGhpcyBpbWFnZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiaW1hZ2VcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJ0aGUgaW1hZ2VcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5UYWdFdmVudFwiXG4gICAgfSxcbiAgICBcIm9zX29hdXRoX09BdXRoQWNjZXNzVG9rZW5cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcImFwaVZlcnNpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICBcImRlZmF1bHRcIjogXCJ2MVwiLFxuICAgICAgICAgIFwicmVxdWlyZWRcIjogdHJ1ZSxcbiAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgXCJ2MVwiXG4gICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICBcImF1dGhvcml6ZVRva2VuXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiY29udGFpbnMgdGhlIHRva2VuIHRoYXQgYXV0aG9yaXplZCB0aGlzIHRva2VuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJjbGllbnROYW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwicmVmZXJlbmNlcyB0aGUgY2xpZW50IHRoYXQgY3JlYXRlZCB0aGlzIHRva2VuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJleHBpcmVzSW5cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiaXMgdGhlIHNlY29uZHMgZnJvbSBjcmVhdGlvbiB0aW1lIGJlZm9yZSB0aGlzIHRva2VuIGV4cGlyZXNcIixcbiAgICAgICAgICBcImphdmFUeXBlXCI6IFwiTG9uZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwia2luZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICAgIFwiZGVmYXVsdFwiOiBcIk9BdXRoQWNjZXNzVG9rZW5cIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgXCJtZXRhZGF0YVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX09iamVjdE1ldGFcIixcbiAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5PYmplY3RNZXRhXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJyZWRpcmVjdFVSSVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInJlZGlyZWN0aW9uIFVSSSBhc3NvY2lhdGVkIHdpdGggdGhlIHRva2VuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJyZWZyZXNoVG9rZW5cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJvcHRpb25hbCB2YWx1ZSBieSB3aGljaCB0aGlzIHRva2VuIGNhbiBiZSByZW5ld2VkXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJzY29wZXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImxpc3Qgb2YgcmVxdWVzdGVkIHNjb3Blc1wiLFxuICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibGlzdCBvZiByZXF1ZXN0ZWQgc2NvcGVzXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwidXNlck5hbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJ1c2VyIG5hbWUgYXNzb2NpYXRlZCB3aXRoIHRoaXMgdG9rZW5cIlxuICAgICAgICB9LFxuICAgICAgICBcInVzZXJVSURcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJ1bmlxdWUgVUlEIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHRva2VuXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuT0F1dGhBY2Nlc3NUb2tlblwiLFxuICAgICAgXCJqYXZhSW50ZXJmYWNlc1wiOiBbXG4gICAgICAgIFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5IYXNNZXRhZGF0YVwiXG4gICAgICBdXG4gICAgfSxcbiAgICBcIm9zX29hdXRoX09BdXRoQWNjZXNzVG9rZW5MaXN0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJhcGlWZXJzaW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgXCJkZWZhdWx0XCI6IFwidjFcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IHRydWUsXG4gICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgIFwidjFcIlxuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibGlzdCBvZiBvYXV0aCBhY2Nlc3MgdG9rZW5zXCIsXG4gICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29zX29hdXRoX09BdXRoQWNjZXNzVG9rZW5cIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuT0F1dGhBY2Nlc3NUb2tlblwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImtpbmRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICBcImRlZmF1bHRcIjogXCJPQXV0aEFjY2Vzc1Rva2VuTGlzdFwiLFxuICAgICAgICAgIFwicmVxdWlyZWRcIjogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfTGlzdE1ldGFcIixcbiAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5MaXN0TWV0YVwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLk9BdXRoQWNjZXNzVG9rZW5MaXN0XCIsXG4gICAgICBcImphdmFJbnRlcmZhY2VzXCI6IFtcbiAgICAgICAgXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkt1YmVybmV0ZXNSZXNvdXJjZVwiXG4gICAgICBdXG4gICAgfSxcbiAgICBcIm9zX29hdXRoX09BdXRoQXV0aG9yaXplVG9rZW5cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcImFwaVZlcnNpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICBcImRlZmF1bHRcIjogXCJ2MVwiLFxuICAgICAgICAgIFwicmVxdWlyZWRcIjogdHJ1ZSxcbiAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgXCJ2MVwiXG4gICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICBcImNsaWVudE5hbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJyZWZlcmVuY2VzIHRoZSBjbGllbnQgdGhhdCBjcmVhdGVkIHRoaXMgdG9rZW5cIlxuICAgICAgICB9LFxuICAgICAgICBcImV4cGlyZXNJblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJzZWNvbmRzIGZyb20gY3JlYXRpb24gdGltZSBiZWZvcmUgdGhpcyB0b2tlbiBleHBpcmVzXCIsXG4gICAgICAgICAgXCJqYXZhVHlwZVwiOiBcIkxvbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcImtpbmRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICBcImRlZmF1bHRcIjogXCJPQXV0aEF1dGhvcml6ZVRva2VuXCIsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIFwibWV0YWRhdGFcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19PYmplY3RNZXRhXCIsXG4gICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuT2JqZWN0TWV0YVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwicmVkaXJlY3RVUklcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJyZWRpcmVjdGlvbiBVUkkgYXNzb2NpYXRlZCB3aXRoIHRoZSB0b2tlblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwic2NvcGVzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJsaXN0IG9mIHJlcXVlc3RlZCBzY29wZXNcIixcbiAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImxpc3Qgb2YgcmVxdWVzdGVkIHNjb3Blc1wiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInN0YXRlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwic3RhdGUgZGF0YSBmcm9tIHJlcXVlc3RcIlxuICAgICAgICB9LFxuICAgICAgICBcInVzZXJOYW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwidXNlciBuYW1lIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHRva2VuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ1c2VyVUlEXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwidW5pcXVlIFVJRCBhc3NvY2lhdGVkIHdpdGggdGhpcyB0b2tlbi4gIHVzZXJVSUQgYW5kIHVzZXJOYW1lIG11c3QgYm90aCBtYXRjaCBmb3IgdGhpcyB0b2tlbiB0byBiZSB2YWxpZFwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLk9BdXRoQXV0aG9yaXplVG9rZW5cIixcbiAgICAgIFwiamF2YUludGVyZmFjZXNcIjogW1xuICAgICAgICBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuSGFzTWV0YWRhdGFcIlxuICAgICAgXVxuICAgIH0sXG4gICAgXCJvc19vYXV0aF9PQXV0aEF1dGhvcml6ZVRva2VuTGlzdFwiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiYXBpVmVyc2lvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICAgIFwiZGVmYXVsdFwiOiBcInYxXCIsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlLFxuICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICBcInYxXCJcbiAgICAgICAgICBdXG4gICAgICAgIH0sXG4gICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImxpc3Qgb2Ygb2F1dGggYXV0aG9yaXphdGlvbiB0b2tlbnNcIixcbiAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3Nfb2F1dGhfT0F1dGhBdXRob3JpemVUb2tlblwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5PQXV0aEF1dGhvcml6ZVRva2VuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwia2luZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICAgIFwiZGVmYXVsdFwiOiBcIk9BdXRoQXV0aG9yaXplVG9rZW5MaXN0XCIsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIFwibWV0YWRhdGFcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19MaXN0TWV0YVwiLFxuICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkxpc3RNZXRhXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuT0F1dGhBdXRob3JpemVUb2tlbkxpc3RcIixcbiAgICAgIFwiamF2YUludGVyZmFjZXNcIjogW1xuICAgICAgICBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuS3ViZXJuZXRlc1Jlc291cmNlXCJcbiAgICAgIF1cbiAgICB9LFxuICAgIFwib3Nfb2F1dGhfT0F1dGhDbGllbnRcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcImFwaVZlcnNpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICBcImRlZmF1bHRcIjogXCJ2MVwiLFxuICAgICAgICAgIFwicmVxdWlyZWRcIjogdHJ1ZSxcbiAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgXCJ2MVwiXG4gICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICBcImtpbmRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICBcImRlZmF1bHRcIjogXCJPQXV0aENsaWVudFwiLFxuICAgICAgICAgIFwicmVxdWlyZWRcIjogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfT2JqZWN0TWV0YVwiLFxuICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLk9iamVjdE1ldGFcIlxuICAgICAgICB9LFxuICAgICAgICBcInJlZGlyZWN0VVJJc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwidmFsaWQgcmVkaXJlY3Rpb24gVVJJcyBhc3NvY2lhdGVkIHdpdGggYSBjbGllbnRcIixcbiAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInZhbGlkIHJlZGlyZWN0aW9uIFVSSXMgYXNzb2NpYXRlZCB3aXRoIGEgY2xpZW50XCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwicmVzcG9uZFdpdGhDaGFsbGVuZ2VzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImluZGljYXRlcyB3aGV0aGVyIHRoZSBjbGllbnQgd2FudHMgYXV0aGVudGljYXRpb24gbmVlZGVkIHJlc3BvbnNlcyBtYWRlIGluIHRoZSBmb3JtIG9mIGNoYWxsZW5nZXMgaW5zdGVhZCBvZiByZWRpcmVjdHNcIlxuICAgICAgICB9LFxuICAgICAgICBcInNlY3JldFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInVuaXF1ZSBzZWNyZXQgYXNzb2NpYXRlZCB3aXRoIGEgY2xpZW50XCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuT0F1dGhDbGllbnRcIixcbiAgICAgIFwiamF2YUludGVyZmFjZXNcIjogW1xuICAgICAgICBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuSGFzTWV0YWRhdGFcIlxuICAgICAgXVxuICAgIH0sXG4gICAgXCJvc19vYXV0aF9PQXV0aENsaWVudEF1dGhvcml6YXRpb25cIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcImFwaVZlcnNpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICBcImRlZmF1bHRcIjogXCJ2MVwiLFxuICAgICAgICAgIFwicmVxdWlyZWRcIjogdHJ1ZSxcbiAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgXCJ2MVwiXG4gICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICBcImNsaWVudE5hbWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJyZWZlcmVuY2VzIHRoZSBjbGllbnQgdGhhdCBjcmVhdGVkIHRoaXMgYXV0aG9yaXphdGlvblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwia2luZFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICAgIFwiZGVmYXVsdFwiOiBcIk9BdXRoQ2xpZW50QXV0aG9yaXphdGlvblwiLFxuICAgICAgICAgIFwicmVxdWlyZWRcIjogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfT2JqZWN0TWV0YVwiLFxuICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLk9iamVjdE1ldGFcIlxuICAgICAgICB9LFxuICAgICAgICBcInNjb3Blc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibGlzdCBvZiBncmFudGVkIHNjb3Blc1wiLFxuICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibGlzdCBvZiBncmFudGVkIHNjb3Blc1wiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcInVzZXJOYW1lXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwidXNlciBuYW1lIHRoYXQgYXV0aG9yaXplZCB0aGlzIGNsaWVudFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidXNlclVJRFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInVuaXF1ZSBVSUQgYXNzb2NpYXRlZCB3aXRoIHRoaXMgYXV0aG9yaXphdGlvbi4gdXNlclVJRCBhbmQgdXNlck5hbWUgbXVzdCBib3RoIG1hdGNoIGZvciB0aGlzIGF1dGhvcml6YXRpb24gdG8gYmUgdmFsaWRcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5PQXV0aENsaWVudEF1dGhvcml6YXRpb25cIixcbiAgICAgIFwiamF2YUludGVyZmFjZXNcIjogW1xuICAgICAgICBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuSGFzTWV0YWRhdGFcIlxuICAgICAgXVxuICAgIH0sXG4gICAgXCJvc19vYXV0aF9PQXV0aENsaWVudEF1dGhvcml6YXRpb25MaXN0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJhcGlWZXJzaW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgXCJkZWZhdWx0XCI6IFwidjFcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IHRydWUsXG4gICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgIFwidjFcIlxuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibGlzdCBvZiBvYXV0aCBjbGllbnQgYXV0aG9yaXphdGlvbnNcIixcbiAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3Nfb2F1dGhfT0F1dGhDbGllbnRBdXRob3JpemF0aW9uXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLk9BdXRoQ2xpZW50QXV0aG9yaXphdGlvblwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImtpbmRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICBcImRlZmF1bHRcIjogXCJPQXV0aENsaWVudEF1dGhvcml6YXRpb25MaXN0XCIsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIFwibWV0YWRhdGFcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19MaXN0TWV0YVwiLFxuICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkxpc3RNZXRhXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuT0F1dGhDbGllbnRBdXRob3JpemF0aW9uTGlzdFwiLFxuICAgICAgXCJqYXZhSW50ZXJmYWNlc1wiOiBbXG4gICAgICAgIFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5LdWJlcm5ldGVzUmVzb3VyY2VcIlxuICAgICAgXVxuICAgIH0sXG4gICAgXCJvc19vYXV0aF9PQXV0aENsaWVudExpc3RcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcImFwaVZlcnNpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICBcImRlZmF1bHRcIjogXCJ2MVwiLFxuICAgICAgICAgIFwicmVxdWlyZWRcIjogdHJ1ZSxcbiAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgXCJ2MVwiXG4gICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJsaXN0IG9mIG9hdXRoIGNsaWVudHNcIixcbiAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3Nfb2F1dGhfT0F1dGhDbGllbnRcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuT0F1dGhDbGllbnRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJraW5kXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgXCJkZWZhdWx0XCI6IFwiT0F1dGhDbGllbnRMaXN0XCIsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIFwibWV0YWRhdGFcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19MaXN0TWV0YVwiLFxuICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkxpc3RNZXRhXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuT0F1dGhDbGllbnRMaXN0XCIsXG4gICAgICBcImphdmFJbnRlcmZhY2VzXCI6IFtcbiAgICAgICAgXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkt1YmVybmV0ZXNSZXNvdXJjZVwiXG4gICAgICBdXG4gICAgfSxcbiAgICBcIm9zX3JvdXRlX1JvdXRlXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJhcGlWZXJzaW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgXCJkZWZhdWx0XCI6IFwidjFcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IHRydWUsXG4gICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgIFwidjFcIlxuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAgXCJraW5kXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgXCJkZWZhdWx0XCI6IFwiUm91dGVcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgXCJtZXRhZGF0YVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX09iamVjdE1ldGFcIixcbiAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5PYmplY3RNZXRhXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJzcGVjXCI6IHtcbiAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29zX3JvdXRlX1JvdXRlU3BlY1wiLFxuICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuUm91dGVTcGVjXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJzdGF0dXNcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3Nfcm91dGVfUm91dGVTdGF0dXNcIixcbiAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLlJvdXRlU3RhdHVzXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuUm91dGVcIixcbiAgICAgIFwiamF2YUludGVyZmFjZXNcIjogW1xuICAgICAgICBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuSGFzTWV0YWRhdGFcIlxuICAgICAgXVxuICAgIH0sXG4gICAgXCJvc19yb3V0ZV9Sb3V0ZUxpc3RcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcImFwaVZlcnNpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICBcImRlZmF1bHRcIjogXCJ2MVwiLFxuICAgICAgICAgIFwicmVxdWlyZWRcIjogdHJ1ZSxcbiAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgXCJ2MVwiXG4gICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJsaXN0IG9mIHJvdXRlc1wiLFxuICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vc19yb3V0ZV9Sb3V0ZVwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5Sb3V0ZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImtpbmRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICBcImRlZmF1bHRcIjogXCJSb3V0ZUxpc3RcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgXCJtZXRhZGF0YVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX0xpc3RNZXRhXCIsXG4gICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuTGlzdE1ldGFcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5Sb3V0ZUxpc3RcIixcbiAgICAgIFwiamF2YUludGVyZmFjZXNcIjogW1xuICAgICAgICBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuS3ViZXJuZXRlc1Jlc291cmNlXCJcbiAgICAgIF1cbiAgICB9LFxuICAgIFwib3Nfcm91dGVfUm91dGVTcGVjXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJob3N0XCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwib3B0aW9uYWw6IGFsaWFzL2RucyB0aGF0IHBvaW50cyB0byB0aGUgc2VydmljZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwicGF0aFwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIm9wdGlvbmFsOiBwYXRoIHRoYXQgdGhlIHJvdXRlciB3YXRjaGVzIHRvIHJvdXRlIHRyYWZmaWMgdG8gdGhlIHNlcnZpY2VcIlxuICAgICAgICB9LFxuICAgICAgICBcInRsc1wiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vc19yb3V0ZV9UTFNDb25maWdcIixcbiAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLlRMU0NvbmZpZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwidG9cIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19PYmplY3RSZWZlcmVuY2VcIixcbiAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5PYmplY3RSZWZlcmVuY2VcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5Sb3V0ZVNwZWNcIlxuICAgIH0sXG4gICAgXCJvc19yb3V0ZV9Sb3V0ZVN0YXR1c1wiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuUm91dGVTdGF0dXNcIlxuICAgIH0sXG4gICAgXCJvc19yb3V0ZV9UTFNDb25maWdcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcImNhQ2VydGlmaWNhdGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJwcm92aWRlcyB0aGUgY2VydCBhdXRob3JpdHkgY2VydGlmaWNhdGUgY29udGVudHNcIlxuICAgICAgICB9LFxuICAgICAgICBcImNlcnRpZmljYXRlXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwicHJvdmlkZXMgY2VydGlmaWNhdGUgY29udGVudHNcIlxuICAgICAgICB9LFxuICAgICAgICBcImRlc3RpbmF0aW9uQ0FDZXJ0aWZpY2F0ZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInByb3ZpZGVzIHRoZSBjb250ZW50cyBvZiB0aGUgY2EgY2VydGlmaWNhdGUgb2YgdGhlIGZpbmFsIGRlc3RpbmF0aW9uLiAgV2hlbiB1c2luZyByZS1lbmNyeXB0IHRlcm1pbmF0aW9uIHRoaXMgZmlsZSBzaG91bGQgYmUgcHJvdmlkZWQgaW4gb3JkZXIgdG8gaGF2ZSByb3V0ZXJzIHVzZSBpdCBmb3IgaGVhbHRoIGNoZWNrcyBvbiB0aGUgc2VjdXJlIGNvbm5lY3Rpb25cIlxuICAgICAgICB9LFxuICAgICAgICBcImtleVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInByb3ZpZGVzIGtleSBmaWxlIGNvbnRlbnRzXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0ZXJtaW5hdGlvblwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImluZGljYXRlcyB0ZXJtaW5hdGlvbiB0eXBlLiAgaWYgbm90IHNldFwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLlRMU0NvbmZpZ1wiXG4gICAgfSxcbiAgICBcIm9zX3RlbXBsYXRlX1BhcmFtZXRlclwiOiB7XG4gICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJvcHRpb25hbDogZGVzY3JpYmVzIHRoZSBwYXJhbWV0ZXJcIlxuICAgICAgICB9LFxuICAgICAgICBcImZyb21cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJpbnB1dCB2YWx1ZSBmb3IgdGhlIGdlbmVyYXRvclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZ2VuZXJhdGVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJvcHRpb25hbDogZ2VuZXJhdGUgc3BlY2lmaWVzIHRoZSBnZW5lcmF0b3IgdG8gYmUgdXNlZCB0byBnZW5lcmF0ZSByYW5kb20gc3RyaW5nIGZyb20gYW4gaW5wdXQgdmFsdWUgc3BlY2lmaWVkIGJ5IHRoZSBmcm9tIGZpZWxkLiAgdGhlIHJlc3VsdCBzdHJpbmcgaXMgc3RvcmVkIGluIHRoZSB2YWx1ZSBmaWVsZC4gaWYgbm90IHNwZWNpZmllZFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwibmFtZVwiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIm5hbWUgb2YgdGhlIHBhcmFtZXRlclwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidmFsdWVcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJvcHRpb25hbDogaG9sZHMgdGhlIHBhcmFtZXRlciBkYXRhLiAgaWYgc3BlY2lmaWVkXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwudGVtcGxhdGUuUGFyYW1ldGVyXCJcbiAgICB9LFxuICAgIFwib3NfdGVtcGxhdGVfVGVtcGxhdGVcIjoge1xuICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICBcImFwaVZlcnNpb25cIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICBcImRlZmF1bHRcIjogXCJ2MVwiLFxuICAgICAgICAgIFwicmVxdWlyZWRcIjogdHJ1ZSxcbiAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgXCJ2MVwiXG4gICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICBcImtpbmRcIjoge1xuICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICBcImRlZmF1bHRcIjogXCJUZW1wbGF0ZVwiLFxuICAgICAgICAgIFwicmVxdWlyZWRcIjogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBcImxhYmVsc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIm9wdGlvbmFsOiBsaXN0IG9mIGxhYmxlcyB0aGF0IGFyZSBhcHBsaWVkIHRvIGV2ZXJ5IG9iamVjdCBkdXJpbmcgdGhlIHRlbXBsYXRlIHRvIGNvbmZpZyB0cmFuc2Zvcm1hdGlvblwiLFxuICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwib3B0aW9uYWw6IGxpc3Qgb2YgbGFibGVzIHRoYXQgYXJlIGFwcGxpZWQgdG8gZXZlcnkgb2JqZWN0IGR1cmluZyB0aGUgdGVtcGxhdGUgdG8gY29uZmlnIHRyYW5zZm9ybWF0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJqYXZhLnV0aWwuTWFwXFx1MDAzY1N0cmluZyxTdHJpbmdcXHUwMDNlXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJtZXRhZGF0YVwiOiB7XG4gICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX09iamVjdE1ldGFcIixcbiAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5PYmplY3RNZXRhXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJvYmplY3RzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJsaXN0IG9mIG9iamVjdHMgdG8gaW5jbHVkZSBpbiB0aGUgdGVtcGxhdGVcIixcbiAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19ydW50aW1lX1Jhd0V4dGVuc2lvblwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuSGFzTWV0YWRhdGFcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJwYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJvcHRpb25hbDogbGlzdCBvZiBwYXJhbWV0ZXJzIHVzZWQgZHVyaW5nIHRlbXBsYXRlIHRvIGNvbmZpZyB0cmFuc2Zvcm1hdGlvblwiLFxuICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vc190ZW1wbGF0ZV9QYXJhbWV0ZXJcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwudGVtcGxhdGUuUGFyYW1ldGVyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLnRlbXBsYXRlLlRlbXBsYXRlXCIsXG4gICAgICBcImphdmFJbnRlcmZhY2VzXCI6IFtcbiAgICAgICAgXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkhhc01ldGFkYXRhXCJcbiAgICAgIF1cbiAgICB9LFxuICAgIFwib3NfdGVtcGxhdGVfVGVtcGxhdGVMaXN0XCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgXCJhcGlWZXJzaW9uXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgXCJkZWZhdWx0XCI6IFwidjFcIixcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IHRydWUsXG4gICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgIFwidjFcIlxuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibGlzdCBvZiB0ZW1wbGF0ZXNcIixcbiAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3NfdGVtcGxhdGVfVGVtcGxhdGVcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwudGVtcGxhdGUuVGVtcGxhdGVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJraW5kXCI6IHtcbiAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgXCJkZWZhdWx0XCI6IFwiVGVtcGxhdGVMaXN0XCIsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIFwibWV0YWRhdGFcIjoge1xuICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19MaXN0TWV0YVwiLFxuICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkxpc3RNZXRhXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwudGVtcGxhdGUuVGVtcGxhdGVMaXN0XCIsXG4gICAgICBcImphdmFJbnRlcmZhY2VzXCI6IFtcbiAgICAgICAgXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkt1YmVybmV0ZXNSZXNvdXJjZVwiXG4gICAgICBdXG4gICAgfSxcbiAgICBcInNwZXRlcl9pbmZfRGVjXCI6IHtcbiAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmNsaWVudC51dGlsLkRlY1wiXG4gICAgfVxuICB9LFxuICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICBcIkJhc2VLdWJlcm5ldGVzTGlzdFwiOiB7XG4gICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfTGlzdFwiLFxuICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuQmFzZUt1YmVybmV0ZXNMaXN0XCJcbiAgICB9LFxuICAgIFwiQnVpbGRDb25maWdMaXN0XCI6IHtcbiAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3NfYnVpbGRfQnVpbGRDb25maWdMaXN0XCIsXG4gICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLkJ1aWxkQ29uZmlnTGlzdFwiXG4gICAgfSxcbiAgICBcIkJ1aWxkTGlzdFwiOiB7XG4gICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29zX2J1aWxkX0J1aWxkTGlzdFwiLFxuICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5CdWlsZExpc3RcIlxuICAgIH0sXG4gICAgXCJCdWlsZFJlcXVlc3RcIjoge1xuICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vc19idWlsZF9CdWlsZFJlcXVlc3RcIixcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuQnVpbGRSZXF1ZXN0XCJcbiAgICB9LFxuICAgIFwiQ29uZmlnXCI6IHtcbiAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19jb25maWdfQ29uZmlnXCIsXG4gICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5jb25maWcuQ29uZmlnXCJcbiAgICB9LFxuICAgIFwiQ29udGFpbmVyU3RhdHVzXCI6IHtcbiAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19Db250YWluZXJTdGF0dXNcIixcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkNvbnRhaW5lclN0YXR1c1wiXG4gICAgfSxcbiAgICBcIkRlcGxveW1lbnRDb25maWdMaXN0XCI6IHtcbiAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3NfZGVwbG95X0RlcGxveW1lbnRDb25maWdMaXN0XCIsXG4gICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLkRlcGxveW1lbnRDb25maWdMaXN0XCJcbiAgICB9LFxuICAgIFwiRW5kcG9pbnRzXCI6IHtcbiAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19FbmRwb2ludHNcIixcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkVuZHBvaW50c1wiXG4gICAgfSxcbiAgICBcIkVuZHBvaW50c0xpc3RcIjoge1xuICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX0VuZHBvaW50c0xpc3RcIixcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkVuZHBvaW50c0xpc3RcIlxuICAgIH0sXG4gICAgXCJFbnZWYXJcIjoge1xuICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX0VudlZhclwiLFxuICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuRW52VmFyXCJcbiAgICB9LFxuICAgIFwiSW1hZ2VMaXN0XCI6IHtcbiAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3NfaW1hZ2VfSW1hZ2VMaXN0XCIsXG4gICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLkltYWdlTGlzdFwiXG4gICAgfSxcbiAgICBcIkltYWdlU3RyZWFtTGlzdFwiOiB7XG4gICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29zX2ltYWdlX0ltYWdlU3RyZWFtTGlzdFwiLFxuICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5JbWFnZVN0cmVhbUxpc3RcIlxuICAgIH0sXG4gICAgXCJOYW1lc3BhY2VcIjoge1xuICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX05hbWVzcGFjZVwiLFxuICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuTmFtZXNwYWNlXCJcbiAgICB9LFxuICAgIFwiTmFtZXNwYWNlTGlzdFwiOiB7XG4gICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfTmFtZXNwYWNlTGlzdFwiLFxuICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuTmFtZXNwYWNlTGlzdFwiXG4gICAgfSxcbiAgICBcIk5vZGVcIjoge1xuICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX05vZGVcIixcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLk5vZGVcIlxuICAgIH0sXG4gICAgXCJOb2RlTGlzdFwiOiB7XG4gICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfTm9kZUxpc3RcIixcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLk5vZGVMaXN0XCJcbiAgICB9LFxuICAgIFwiT0F1dGhBY2Nlc3NUb2tlblwiOiB7XG4gICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29zX29hdXRoX09BdXRoQWNjZXNzVG9rZW5cIixcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuT0F1dGhBY2Nlc3NUb2tlblwiXG4gICAgfSxcbiAgICBcIk9BdXRoQWNjZXNzVG9rZW5MaXN0XCI6IHtcbiAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3Nfb2F1dGhfT0F1dGhBY2Nlc3NUb2tlbkxpc3RcIixcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuT0F1dGhBY2Nlc3NUb2tlbkxpc3RcIlxuICAgIH0sXG4gICAgXCJPQXV0aEF1dGhvcml6ZVRva2VuXCI6IHtcbiAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3Nfb2F1dGhfT0F1dGhBdXRob3JpemVUb2tlblwiLFxuICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5PQXV0aEF1dGhvcml6ZVRva2VuXCJcbiAgICB9LFxuICAgIFwiT0F1dGhBdXRob3JpemVUb2tlbkxpc3RcIjoge1xuICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vc19vYXV0aF9PQXV0aEF1dGhvcml6ZVRva2VuTGlzdFwiLFxuICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5PQXV0aEF1dGhvcml6ZVRva2VuTGlzdFwiXG4gICAgfSxcbiAgICBcIk9BdXRoQ2xpZW50XCI6IHtcbiAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3Nfb2F1dGhfT0F1dGhDbGllbnRcIixcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuT0F1dGhDbGllbnRcIlxuICAgIH0sXG4gICAgXCJPQXV0aENsaWVudEF1dGhvcml6YXRpb25cIjoge1xuICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vc19vYXV0aF9PQXV0aENsaWVudEF1dGhvcml6YXRpb25cIixcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuT0F1dGhDbGllbnRBdXRob3JpemF0aW9uXCJcbiAgICB9LFxuICAgIFwiT0F1dGhDbGllbnRBdXRob3JpemF0aW9uTGlzdFwiOiB7XG4gICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29zX29hdXRoX09BdXRoQ2xpZW50QXV0aG9yaXphdGlvbkxpc3RcIixcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuT0F1dGhDbGllbnRBdXRob3JpemF0aW9uTGlzdFwiXG4gICAgfSxcbiAgICBcIk9BdXRoQ2xpZW50TGlzdFwiOiB7XG4gICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29zX29hdXRoX09BdXRoQ2xpZW50TGlzdFwiLFxuICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5PQXV0aENsaWVudExpc3RcIlxuICAgIH0sXG4gICAgXCJPYmplY3RNZXRhXCI6IHtcbiAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19PYmplY3RNZXRhXCIsXG4gICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5PYmplY3RNZXRhXCJcbiAgICB9LFxuICAgIFwiUG9kTGlzdFwiOiB7XG4gICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfUG9kTGlzdFwiLFxuICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuUG9kTGlzdFwiXG4gICAgfSxcbiAgICBcIlF1YW50aXR5XCI6IHtcbiAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19yZXNvdXJjZV9RdWFudGl0eVwiLFxuICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwucmVzb3VyY2UuUXVhbnRpdHlcIlxuICAgIH0sXG4gICAgXCJSZXBsaWNhdGlvbkNvbnRyb2xsZXJMaXN0XCI6IHtcbiAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19SZXBsaWNhdGlvbkNvbnRyb2xsZXJMaXN0XCIsXG4gICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5SZXBsaWNhdGlvbkNvbnRyb2xsZXJMaXN0XCJcbiAgICB9LFxuICAgIFwiUm91dGVMaXN0XCI6IHtcbiAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3Nfcm91dGVfUm91dGVMaXN0XCIsXG4gICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLlJvdXRlTGlzdFwiXG4gICAgfSxcbiAgICBcIlNlY3JldFwiOiB7XG4gICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfU2VjcmV0XCIsXG4gICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5TZWNyZXRcIlxuICAgIH0sXG4gICAgXCJTZWNyZXRMaXN0XCI6IHtcbiAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19TZWNyZXRMaXN0XCIsXG4gICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5TZWNyZXRMaXN0XCJcbiAgICB9LFxuICAgIFwiU2VydmljZUFjY291bnRcIjoge1xuICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX1NlcnZpY2VBY2NvdW50XCIsXG4gICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5TZXJ2aWNlQWNjb3VudFwiXG4gICAgfSxcbiAgICBcIlNlcnZpY2VBY2NvdW50TGlzdFwiOiB7XG4gICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfU2VydmljZUFjY291bnRMaXN0XCIsXG4gICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5TZXJ2aWNlQWNjb3VudExpc3RcIlxuICAgIH0sXG4gICAgXCJTZXJ2aWNlTGlzdFwiOiB7XG4gICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfU2VydmljZUxpc3RcIixcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLlNlcnZpY2VMaXN0XCJcbiAgICB9LFxuICAgIFwiU3RhdHVzRXJyb3JcIjoge1xuICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX2Vycm9yc19TdGF0dXNFcnJvclwiLFxuICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuZXJyb3JzLlN0YXR1c0Vycm9yXCJcbiAgICB9LFxuICAgIFwiVGFnRXZlbnRcIjoge1xuICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vc19pbWFnZV9UYWdFdmVudFwiLFxuICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5UYWdFdmVudFwiXG4gICAgfSxcbiAgICBcIlRlbXBsYXRlXCI6IHtcbiAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3NfdGVtcGxhdGVfVGVtcGxhdGVcIixcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwudGVtcGxhdGUuVGVtcGxhdGVcIlxuICAgIH0sXG4gICAgXCJUZW1wbGF0ZUxpc3RcIjoge1xuICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vc190ZW1wbGF0ZV9UZW1wbGF0ZUxpc3RcIixcbiAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwudGVtcGxhdGUuVGVtcGxhdGVMaXN0XCJcbiAgICB9LFxuICAgIFwiV2F0Y2hFdmVudFwiOiB7XG4gICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfd2F0Y2hfV2F0Y2hFdmVudFwiLFxuICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkud2F0Y2guV2F0Y2hFdmVudFwiXG4gICAgfVxuICB9LFxuICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWVcbn1cblxufSIsIi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJzY2hlbWEudHNcIi8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwia3ViZXJuZXRlc1BsdWdpbi50c1wiLz5cbm1vZHVsZSBLdWJlcm5ldGVzIHtcbiAgXG4gIFxuICB2YXIgaGlkZGVuUHJvcGVydGllcyA9IFsnc3RhdHVzJywgJ2RlbGV0aW9uVGltZXN0YW1wJ107XG5cbiAgZnVuY3Rpb24gd2l0aFByb3BlcnR5KHNjaGVtYTphbnksIG5hbWU6c3RyaW5nLCBhY3Rpb246KGFueSkgPT4gdm9pZCkge1xuICAgIGlmIChzY2hlbWEucHJvcGVydGllc1tuYW1lXSkge1xuICAgICAgYWN0aW9uKHNjaGVtYS5wcm9wZXJ0aWVzW25hbWVdKTtcbiAgICB9XG4gIH1cbiAgXG4gIGZ1bmN0aW9uIGhpZGVQcm9wZXJ0aWVzKHNjaGVtYSkge1xuICAgIF8uZm9yRWFjaChoaWRkZW5Qcm9wZXJ0aWVzLCAocHJvcGVydHkpID0+IHtcbiAgICAgIHdpdGhQcm9wZXJ0eShzY2hlbWEsIHByb3BlcnR5LCAocHJvcGVydHkpID0+IHtcbiAgICAgICAgcHJvcGVydHkuaGlkZGVuID0gdHJ1ZTtcbiAgICAgIH0pXG4gICAgfSk7XG4gIH1cbiAgXG4gIF9tb2R1bGUuZmFjdG9yeSgnS3ViZXJuZXRlc1NjaGVtYScsIFsnU2NoZW1hUmVnaXN0cnknLCAoc2NoZW1hczpIYXd0aW9Gb3Jtcy5TY2hlbWFSZWdpc3RyeSkgPT4ge1xuICAgIGNvbmZpZ3VyZVNjaGVtYSgpO1xuICAgIFxuICAgIHNjaGVtYXMuYWRkTGlzdGVuZXIoXCJrOHMgc2NoZW1hIGN1c3RvbWl6ZXJcIiwgKG5hbWUsIHNjaGVtYSkgPT4ge1xuICAgICAgaWYgKHNjaGVtYS5wcm9wZXJ0aWVzKSB7XG4gICAgICAgIGlmIChzY2hlbWEucHJvcGVydGllcy5uYW1lKSB7XG4gICAgICAgICAgc2NoZW1hLmNvbnRyb2xzID0gWyduYW1lJywgJyonXTtcbiAgICAgICAgfVxuICAgICAgICB3aXRoUHJvcGVydHkoc2NoZW1hLCAncG9ydGFsSVAnLCAocHJvcGVydHkpID0+IHtcbiAgICAgICAgICBwcm9wZXJ0eS5sYWJlbCA9IFwiUG9ydGFsIElQXCJcbiAgICAgICAgfSk7XG4gICAgICAgIHdpdGhQcm9wZXJ0eShzY2hlbWEsICdwdWJsaWNJUHMnLCAocHJvcGVydHkpID0+IHtcbiAgICAgICAgICBwcm9wZXJ0eS5sYWJlbCA9IFwiUHVibGljIElQc1wiXG4gICAgICAgIH0pO1xuICAgICAgICB3aXRoUHJvcGVydHkoc2NoZW1hLCAnU3BlYycsIChwcm9wZXJ0eSkgPT4ge1xuICAgICAgICAgIHByb3BlcnR5LmxhYmVsID0gJ2ZhbHNlJztcbiAgICAgICAgfSk7XG4gICAgICAgIHdpdGhQcm9wZXJ0eShzY2hlbWEsICdNZXRhZGF0YScsIChwcm9wZXJ0eSkgPT4ge1xuICAgICAgICAgIHByb3BlcnR5LmxhYmVsID0gJ2ZhbHNlJztcbiAgICAgICAgfSk7XG4gICAgICAgIGhpZGVQcm9wZXJ0aWVzKHNjaGVtYSk7XG4gICAgICB9XG4gICAgICBcbiAgICAgIGlmIChfLmVuZHNXaXRoKG5hbWUsIFwiU2VydmljZVNwZWNcIikpIHtcbiAgICAgICAgc2NoZW1hLmNvbnRyb2xzID0gW1wicG9ydGFsSVBcIiwgXCJjcmVhdGVFeHRlcm5hbExvYWRCYWxhbmNlclwiLCBcInNlc3Npb25BZmZpbml0eVwiLCBcInB1YmxpY0lQc1wiLCBcInBvcnRzXCIsIFwic2VsZWN0b3JcIiwgXCIqXCJdO1xuICAgICAgICB3aXRoUHJvcGVydHkoc2NoZW1hLCAnc2Vzc2lvbkFmZmluaXR5JywgKHByb3BlcnR5KSA9PiB7XG4gICAgICAgICAgbG9nLmRlYnVnKFwiU2NoZW1hOiBcIiwgc2NoZW1hKTtcbiAgICAgICAgICBwcm9wZXJ0eS5lbnVtID0gWydOb25lJywgJ0NsaWVudElQJ107XG4gICAgICAgICAgcHJvcGVydHkuZGVmYXVsdCA9ICdOb25lJztcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBcbiAgICAgIGlmIChfLmVuZHNXaXRoKG5hbWUsIFwiU2VydmljZVwiKSkge1xuICAgICAgICBzY2hlbWEuY29udHJvbHMgPSB1bmRlZmluZWQ7XG4gICAgICAgIHNjaGVtYS50YWJzID0ge1xuICAgICAgICAgICdCYXNpYyBJbmZvcm1hdGlvbic6IFsnbWV0YWRhdGEnXSxcbiAgICAgICAgICAnRGV0YWlscyc6IFsnKiddXG4gICAgICAgIH1cbiAgICAgICAgbG9nLmRlYnVnKFwiTmFtZTogXCIsIG5hbWUsIFwiIFNjaGVtYTogXCIsIHNjaGVtYSk7XG4gICAgICB9XG4gICAgIFxuICAgIH0pO1xuICAgIFxuICAgIFxuICAgIHNjaGVtYXMuYWRkU2NoZW1hKCdrdWJlcm5ldGVzJywgPGFueT4gc2NoZW1hKTtcbiAgICAvLyBub3cgbGV0cyBpdGVyYXRlIGFuZCBhZGQgYWxsIHRoZSBkZWZpbml0aW9ucyB0b29cbiAgICBhbmd1bGFyLmZvckVhY2goc2NoZW1hLmRlZmluaXRpb25zLCAoZGVmaW5pdGlvbiwgdHlwZU5hbWUpID0+IHtcbiAgICAgIC8vc2NoZW1hcy5hZGRTY2hlbWEodHlwZU5hbWUsIGRlZmluaXRpb24pO1xuICAgICAgc2NoZW1hcy5hZGRTY2hlbWEoXCIjL2RlZmluaXRpb25zL1wiICsgdHlwZU5hbWUsIGRlZmluaXRpb24pO1xuICAgIH0pO1xuICAgIHJldHVybiBzY2hlbWE7XG4gIH1dKTtcblxuXG4gIFxufSIsIi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJrdWJlcm5ldGVzUGx1Z2luLnRzXCIvPlxuXG5tb2R1bGUgS3ViZXJuZXRlcyB7XG5cbiAgLy8gZmFjYWRlIHRoaXMgdG8gdGhlIHdhdGNoZXIgc2VydmljZVxuICBjbGFzcyBLdWJlcm5ldGVzU3RhdGVJbXBsIGltcGxlbWVudHMgS3ViZXJuZXRlc1N0YXRlIHtcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHdhdGNoZXI6V2F0Y2hlclNlcnZpY2UpIHtcbiAgICB9XG4gICAgZ2V0IG5hbWVzcGFjZXMoKTpBcnJheTxzdHJpbmc+IHtcbiAgICAgIHJldHVybiBfLm1hcCh0aGlzLndhdGNoZXIuZ2V0T2JqZWN0cyhXYXRjaFR5cGVzLk5BTUVTUEFDRVMpLCAobmFtZXNwYWNlKSA9PiB7XG4gICAgICAgIHJldHVybiBuYW1lc3BhY2UubWV0YWRhdGEubmFtZTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBnZXQgc2VsZWN0ZWROYW1lc3BhY2UoKTpzdHJpbmcge1xuICAgICAgcmV0dXJuIHRoaXMud2F0Y2hlci5nZXROYW1lc3BhY2UoKTtcbiAgICB9XG4gICAgc2V0IHNlbGVjdGVkTmFtZXNwYWNlKG5hbWVzcGFjZTpzdHJpbmcpIHtcbiAgICAgIHRoaXMud2F0Y2hlci5zZXROYW1lc3BhY2UobmFtZXNwYWNlKTtcbiAgICB9XG4gIH1cblxuICBfbW9kdWxlLmZhY3RvcnkoJ0t1YmVybmV0ZXNTdGF0ZScsIFsnV2F0Y2hlclNlcnZpY2UnLCAod2F0Y2hlcjpXYXRjaGVyU2VydmljZSkgPT4ge1xuICAgIHJldHVybiBuZXcgS3ViZXJuZXRlc1N0YXRlSW1wbCh3YXRjaGVyKTtcbiAgfV0pO1xuXG4gIC8vIFRPRE8gdGhpcyBkb2Vzbid0IG5lZWQgdG8gYmUgYSBzZXJ2aWNlIHJlYWxseVxuICBfbW9kdWxlLmZhY3RvcnkoJ0t1YmVybmV0ZXNBcGlVUkwnLCAoKSA9PiBrdWJlcm5ldGVzQXBpVXJsKCkpO1xuXG4gIC8vIFRPRE8gd2UnbGwgZ2V0IHJpZCBvZiB0aGlzLi4uXG4gIF9tb2R1bGUuZmFjdG9yeSgnS3ViZXJuZXRlc1ZlcnNpb24nLCBbKCkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBxdWVyeTogKCkgPT4gbnVsbFxuICAgIH1cbiAgfV0pO1xuXG4gIC8vIFRPRE8gbGV0J3MgbW92ZSB0aGVzZSBpbnRvIEt1YmVybmV0ZXNNb2RlbCBzbyBjb250cm9sbGVycyBkb24ndCBoYXZlIHRvIGluamVjdCB0aGVtIHNlcGFyYXRlbHlcbiAgX21vZHVsZS5mYWN0b3J5KCdLdWJlcm5ldGVzUG9kcycsIFsnS3ViZXJuZXRlc01vZGVsJywgKEt1YmVybmV0ZXNNb2RlbCkgPT4ge1xuICAgIHJldHVybiBLdWJlcm5ldGVzTW9kZWxbJ3BvZHNSZXNvdXJjZSddO1xuICB9XSk7XG5cbiAgX21vZHVsZS5mYWN0b3J5KCdLdWJlcm5ldGVzUmVwbGljYXRpb25Db250cm9sbGVycycsIFsnS3ViZXJuZXRlc01vZGVsJywgKEt1YmVybmV0ZXNNb2RlbCkgPT4ge1xuICAgIHJldHVybiBLdWJlcm5ldGVzTW9kZWxbJ3JlcGxpY2F0aW9uY29udHJvbGxlcnNSZXNvdXJjZSddO1xuICB9XSk7XG5cbiAgX21vZHVsZS5mYWN0b3J5KCdLdWJlcm5ldGVzU2VydmljZXMnLCBbJ0t1YmVybmV0ZXNNb2RlbCcsIChLdWJlcm5ldGVzTW9kZWwpID0+IHtcbiAgICByZXR1cm4gS3ViZXJuZXRlc01vZGVsWydzZXJ2aWNlc1Jlc291cmNlJ107XG4gIH1dKTtcblxuICBfbW9kdWxlLmZhY3RvcnkoJ0t1YmVybmV0ZXNCdWlsZHMnLCBbJ3Jlc3Rtb2QnLCAocmVzdG1vZCkgPT4ge1xuICAgIHJldHVybiByZXN0bW9kLm1vZGVsKGJ1aWxkQ29uZmlnc1Jlc3RVUkwoKSk7XG4gIH1dKTtcblxufVxuIiwiLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4uLy4uL2luY2x1ZGVzLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cImt1YmVybmV0ZXNIZWxwZXJzLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cImt1YmVybmV0ZXNQbHVnaW4udHNcIi8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwia3ViZXJuZXRlc01vZGVsLnRzXCIvPlxubW9kdWxlIEt1YmVybmV0ZXMge1xuXG4gIGV4cG9ydCB2YXIgRmlsZURyb3BDb250cm9sbGVyID0gY29udHJvbGxlcihcIkZpbGVEcm9wQ29udHJvbGxlclwiLCBbXCIkc2NvcGVcIiwgXCJLdWJlcm5ldGVzTW9kZWxcIiwgXCJGaWxlVXBsb2FkZXJcIiwgJyRodHRwJywgKCRzY29wZSwgbW9kZWw6S3ViZXJuZXRlc01vZGVsU2VydmljZSwgRmlsZVVwbG9hZGVyLCAkaHR0cDpuZy5JSHR0cFNlcnZpY2UpID0+IHtcblxuICAgICAgdmFyIHVwbG9hZGVyID0gJHNjb3BlLnVwbG9hZGVyID0gPEZpbGVVcGxvYWQuRmlsZVVwbG9hZGVyPiBuZXcgRmlsZVVwbG9hZGVyKDxGaWxlVXBsb2FkLklPcHRpb25zPntcbiAgICAgICAgYXV0b1VwbG9hZDogZmFsc2UsXG4gICAgICAgIHJlbW92ZUFmdGVyVXBsb2FkOiB0cnVlLFxuICAgICAgICB1cmw6IGt1YmVybmV0ZXNBcGlVcmwoKVxuICAgICAgfSk7XG5cbiAgICAgICRzY29wZS51cGxvYWRlci5vbkFmdGVyQWRkaW5nRmlsZSA9IChmaWxlKSA9PiB7XG4gICAgICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgICAgICByZWFkZXIub25sb2FkID0gKCkgPT4ge1xuICAgICAgICAgIGlmIChyZWFkZXIucmVhZHlTdGF0ZSA9PT0gMikge1xuICAgICAgICAgICAgbG9nLmRlYnVnKFwiRmlsZSBhZGRlZDogXCIsIGZpbGUpOyAgICAgICAgXG4gICAgICAgICAgICB2YXIganNvbiA9IHJlYWRlci5yZXN1bHQ7XG4gICAgICAgICAgICB2YXIgb2JqID0gbnVsbDtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIG9iaiA9IGFuZ3VsYXIuZnJvbUpzb24oanNvbik7XG4gICAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgbG9nLmRlYnVnKFwiRmFpbGVkIHRvIHJlYWQgZHJvcHBlZCBmaWxlIFwiLCBmaWxlLl9maWxlLm5hbWUsIFwiOiBcIiwgZXJyKTtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbG9nLmRlYnVnKFwiRHJvcHBlZCBvYmplY3Q6IFwiLCBvYmopO1xuICAgICAgICAgICAgdXBkYXRlT3JDcmVhdGVPYmplY3Qob2JqLCBtb2RlbCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJlYWRlci5yZWFkQXNUZXh0KGZpbGUuX2ZpbGUpO1xuICAgICAgfTtcblxuICAgICAgJHNjb3BlLnVwbG9hZGVyLm9uQmVmb3JlVXBsb2FkSXRlbSA9IChpdGVtKSA9PiB7XG4gICAgICAgIGxvZy5kZWJ1ZyhcIlVwbG9hZGluZzogXCIsIGl0ZW0pO1xuICAgICAgICAvL0NvcmUubm90aWZpY2F0aW9uKCdpbmZvJywgJ1VwbG9hZGluZyAnICsgaXRlbSk7XG4gICAgICB9O1xuXG4gICAgICAkc2NvcGUudXBsb2FkZXIub25TdWNjZXNzSXRlbSA9IChpdGVtOkZpbGVVcGxvYWQuSUZpbGVJdGVtKSA9PiB7XG4gICAgICAgIGxvZy5kZWJ1ZyhcIm9uU3VjY2Vzc0l0ZW06IFwiLCBpdGVtKTtcbiAgICAgIH07XG5cbiAgICAgICRzY29wZS51cGxvYWRlci5vbkVycm9ySXRlbSA9IChpdGVtLCByZXNwb25zZSwgc3RhdHVzKSA9PiB7XG4gICAgICAgIGxvZy5kZWJ1ZyhcIkZhaWxlZCB0byBhcHBseSwgcmVzcG9uc2U6IFwiLCByZXNwb25zZSwgXCIgc3RhdHVzOiBcIiwgc3RhdHVzKTtcbiAgICAgIH1cblxuICB9XSk7XG5cdFxuXHRleHBvcnQgdmFyIE5hbWVzcGFjZUNvbnRyb2xsZXIgPSBjb250cm9sbGVyKCdOYW1lc3BhY2VDb250cm9sbGVyJywgWyckc2NvcGUnLCAnV2F0Y2hlclNlcnZpY2UnLCAoJHNjb3BlLCB3YXRjaGVyOldhdGNoZXJTZXJ2aWNlKSA9PiB7XG5cdFx0JHNjb3BlLm5hbWVzcGFjZXMgPSB3YXRjaGVyLmdldE9iamVjdHMoJ25hbWVzcGFjZXMnKTtcblx0XHQkc2NvcGUuJHdhdGNoQ29sbGVjdGlvbignbmFtZXNwYWNlcycsIChuZXdWYWx1ZSwgb2xkVmFsdWUpID0+IHtcblx0XHRcdGlmIChuZXdWYWx1ZSAhPT0gb2xkVmFsdWUpIHtcblx0XHRcdFx0JHNjb3BlLm5hbWVzcGFjZSA9IHdhdGNoZXIuZ2V0TmFtZXNwYWNlKCk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdFx0JHNjb3BlLiR3YXRjaCgnbmFtZXNwYWNlJywgKG5ld1ZhbHVlLCBvbGRWYWx1ZSkgPT4ge1xuXHRcdFx0aWYgKG5ld1ZhbHVlICE9PSBvbGRWYWx1ZSkge1xuXHRcdFx0XHRpZiAobmV3VmFsdWUgIT09IG9sZFZhbHVlKSB7XG5cdFx0XHRcdFx0d2F0Y2hlci5zZXROYW1lc3BhY2UobmV3VmFsdWUpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1dKTtcblxuICBleHBvcnQgdmFyIFRvcExldmVsID0gY29udHJvbGxlcihcIlRvcExldmVsXCIsIFtcIiRzY29wZVwiLCBcIkt1YmVybmV0ZXNWZXJzaW9uXCIsIFwiS3ViZXJuZXRlc1N0YXRlXCIsICgkc2NvcGUsIEt1YmVybmV0ZXNWZXJzaW9uOm5nLnJlc291cmNlLklSZXNvdXJjZUNsYXNzLCBLdWJlcm5ldGVzU3RhdGUpID0+IHtcblxuICAgICRzY29wZS52ZXJzaW9uID0gdW5kZWZpbmVkO1xuXG4gICAgJHNjb3BlLnNob3dBcHBWaWV3ID0gaXNBcHBWaWV3KCk7XG5cbiAgICAkc2NvcGUuaXNBY3RpdmUgPSAoaHJlZikgPT4ge1xuICAgICAgcmV0dXJuIGlzTGlua0FjdGl2ZShocmVmKTtcbiAgICB9O1xuXG4gICAgJHNjb3BlLmt1YmVybmV0ZXMgPSBLdWJlcm5ldGVzU3RhdGU7XG5cbiAgICBLdWJlcm5ldGVzVmVyc2lvbi5xdWVyeSgocmVzcG9uc2UpID0+IHtcbiAgICAgICRzY29wZS52ZXJzaW9uID0gcmVzcG9uc2U7XG4gICAgfSk7XG5cbiAgfV0pO1xuXG59XG4iLCIvLy8gPHJlZmVyZW5jZSBwYXRoPVwia3ViZXJuZXRlc1BsdWdpbi50c1wiLz5cbm1vZHVsZSBLdWJlcm5ldGVzIHtcblx0XG5cdGV4cG9ydCB2YXIgTmFtZXNwYWNlQ29udHJvbGxlciA9IGNvbnRyb2xsZXIoXCJOYW1lc3BhY2VDb250cm9sbGVyXCIsIFtcIiRzY29wZVwiLCBcIldhdGNoZXJTZXJ2aWNlXCIsICgkc2NvcGUsIHdhdGNoZXI6V2F0Y2hlclNlcnZpY2UpID0+IHtcblx0XHQkc2NvcGUud2F0Y2hlciA9IHdhdGNoZXI7XG5cdFx0JHNjb3BlLm5hbWVzcGFjZU9iamVjdHMgPSB3YXRjaGVyLmdldE9iamVjdHMoJ25hbWVzcGFjZXMnKTtcblx0XHQkc2NvcGUubmFtZXNwYWNlID0gd2F0Y2hlci5nZXROYW1lc3BhY2UoKTtcblx0XHQkc2NvcGUubmFtZXNwYWNlcyA9IFtdO1xuXHRcdCRzY29wZS4kd2F0Y2goJ25hbWVzcGFjZScsIChuZXdWYWx1ZSwgb2xkVmFsdWUpID0+IHtcblx0XHRcdGlmIChuZXdWYWx1ZSAhPT0gb2xkVmFsdWUpIHtcblx0XHRcdFx0d2F0Y2hlci5zZXROYW1lc3BhY2UobmV3VmFsdWUpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHRcdCRzY29wZS4kd2F0Y2goJ3dhdGNoZXIuZ2V0TmFtZXNwYWNlKCknLCAobmV3VmFsdWUsIG9sZFZhbHVlKSA9PiB7XG5cdFx0XHRpZiAobmV3VmFsdWUgIT09IG9sZFZhbHVlKSB7XG5cdFx0XHRcdCRzY29wZS5uYW1lc3BhY2UgPSBuZXdWYWx1ZTtcblx0XHRcdH1cblx0XHR9KTtcblx0XHQkc2NvcGUuJHdhdGNoQ29sbGVjdGlvbignbmFtZXNwYWNlT2JqZWN0cycsIChuYW1lc3BhY2VPYmplY3RzKSA9PiB7XG5cdFx0XHQkc2NvcGUubmFtZXNwYWNlcyA9IF8ubWFwKG5hbWVzcGFjZU9iamVjdHMsIChuYW1lc3BhY2U6YW55KSA9PiBuYW1lc3BhY2UubWV0YWRhdGEubmFtZSk7XG5cdFx0fSlcdFx0XG5cdH1dKTtcblx0XG59IiwiLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4uLy4uL2luY2x1ZGVzLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cImt1YmVybmV0ZXNIZWxwZXJzLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cImt1YmVybmV0ZXNQbHVnaW4udHNcIi8+XG5cbm1vZHVsZSBLdWJlcm5ldGVzIHtcblxuICB2YXIgT3ZlcnZpZXdEaXJlY3RpdmUgPSBfbW9kdWxlLmRpcmVjdGl2ZShcImt1YmVybmV0ZXNPdmVydmlld1wiLCBbXCIkdGVtcGxhdGVDYWNoZVwiLCBcIiRjb21waWxlXCIsIFwiJGludGVycG9sYXRlXCIsIFwiJHRpbWVvdXRcIiwgXCIkd2luZG93XCIsIFwiS3ViZXJuZXRlc1N0YXRlXCIsICdLdWJlcm5ldGVzTW9kZWwnLCAoJHRlbXBsYXRlQ2FjaGU6bmcuSVRlbXBsYXRlQ2FjaGVTZXJ2aWNlLCAkY29tcGlsZTpuZy5JQ29tcGlsZVNlcnZpY2UsICRpbnRlcnBvbGF0ZTpuZy5JSW50ZXJwb2xhdGVTZXJ2aWNlLCAkdGltZW91dDpuZy5JVGltZW91dFNlcnZpY2UsICR3aW5kb3c6bmcuSVdpbmRvd1NlcnZpY2UsIEt1YmVybmV0ZXNTdGF0ZSwgS3ViZXJuZXRlc01vZGVsKSA9PiB7XG5cbiAgICB2YXIgbG9nID0gTG9nZ2VyLmdldCgna3ViZXJuZXRlcy1vdmVydmlldycpO1xuICAgIHZhciBtb2RlbCA9IEt1YmVybmV0ZXNNb2RlbDtcbiAgICB2YXIgc3RhdGUgPSBLdWJlcm5ldGVzU3RhdGU7XG5cbiAgICByZXR1cm4ge1xuICAgICAgcmVzdHJpY3Q6ICdFJyxcbiAgICAgIHJlcGxhY2U6IHRydWUsXG4gICAgICBsaW5rOiAoc2NvcGUsIGVsZW1lbnQsIGF0dHIpID0+IHtcbiAgICAgICAgc2NvcGUubW9kZWwgPSBtb2RlbDtcbiAgICAgICAgZWxlbWVudC5jc3Moe3Zpc2liaWxpdHk6ICdoaWRkZW4nfSk7XG4gICAgICAgIHNjb3BlLmdldEVudGl0eSA9ICh0eXBlOnN0cmluZywga2V5OnN0cmluZykgPT4ge1xuICAgICAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnaG9zdCc6XG4gICAgICAgICAgICAgIHJldHVybiBtb2RlbC5wb2RzQnlIb3N0W2tleV07XG4gICAgICAgICAgICBjYXNlICdwb2QnOlxuICAgICAgICAgICAgICByZXR1cm4gbW9kZWwucG9kc0J5S2V5W2tleV07XG4gICAgICAgICAgICBjYXNlICdyZXBsaWNhdGlvbkNvbnRyb2xsZXInOlxuICAgICAgICAgICAgICByZXR1cm4gbW9kZWwucmVwbGljYXRpb25Db250cm9sbGVyc0J5S2V5W2tleV07XG4gICAgICAgICAgICBjYXNlICdzZXJ2aWNlJzpcbiAgICAgICAgICAgICAgcmV0dXJuIG1vZGVsLnNlcnZpY2VzQnlLZXlba2V5XTtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIHNjb3BlLmt1YmVybmV0ZXMgPSBzdGF0ZTtcblxuICAgICAgICBzY29wZS5jdXN0b21pemVEZWZhdWx0T3B0aW9ucyA9IChvcHRpb25zKSA9PiB7XG4gICAgICAgICAgb3B0aW9ucy5FbmRwb2ludCA9IFsnQmxhbmsnLCB7fV07XG4gICAgICAgIH07XG4gICAgICAgIHNjb3BlLm1vdXNlRW50ZXIgPSAoJGV2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKHNjb3BlLmpzUGx1bWIpIHtcbiAgICAgICAgICAgIGFuZ3VsYXIuZWxlbWVudCgkZXZlbnQuY3VycmVudFRhcmdldCkuYWRkQ2xhc3MoXCJob3ZlcmVkXCIpO1xuICAgICAgICAgICAgc2NvcGUuanNQbHVtYi5nZXRFbmRwb2ludHMoJGV2ZW50LmN1cnJlbnRUYXJnZXQpLmZvckVhY2goKGVuZHBvaW50KSA9PiB7XG4gICAgICAgICAgICAgIGVuZHBvaW50LmNvbm5lY3Rpb25zLmZvckVhY2goKGNvbm5lY3Rpb24pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIWNvbm5lY3Rpb24uaXNIb3ZlcigpKSB7XG4gICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLnNldEhvdmVyKHRydWUpO1xuICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi5lbmRwb2ludHMuZm9yRWFjaCgoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBzY29wZS5tb3VzZUVudGVyKHtcbiAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50VGFyZ2V0OiBlLmVsZW1lbnRcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHNjb3BlLm1vdXNlTGVhdmUgPSAoJGV2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKHNjb3BlLmpzUGx1bWIpIHtcbiAgICAgICAgICAgIGFuZ3VsYXIuZWxlbWVudCgkZXZlbnQuY3VycmVudFRhcmdldCkucmVtb3ZlQ2xhc3MoXCJob3ZlcmVkXCIpO1xuICAgICAgICAgICAgc2NvcGUuanNQbHVtYi5nZXRFbmRwb2ludHMoJGV2ZW50LmN1cnJlbnRUYXJnZXQpLmZvckVhY2goKGVuZHBvaW50KSA9PiB7XG4gICAgICAgICAgICAgIGVuZHBvaW50LmNvbm5lY3Rpb25zLmZvckVhY2goKGNvbm5lY3Rpb24pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoY29ubmVjdGlvbi5pc0hvdmVyKCkpIHtcbiAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24uc2V0SG92ZXIoZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi5lbmRwb2ludHMuZm9yRWFjaCgoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBzY29wZS5tb3VzZUxlYXZlKHtcbiAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50VGFyZ2V0OiBlLmVsZW1lbnRcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8qXG4gICAgICAgIHNjb3BlLmN1c3RvbWl6ZUVuZHBvaW50T3B0aW9ucyA9IChqc1BsdW1iLCBub2RlLCBvcHRpb25zKSA9PiB7XG4gICAgICAgICAgdmFyIHR5cGUgPSBub2RlLmVsLmF0dHIoJ2RhdGEtdHlwZScpO1xuICAgICAgICAgIC8vIGxvZy5kZWJ1ZyhcImVuZHBvaW50IHR5cGU6IFwiLCB0eXBlKTtcbiAgICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ3BvZCc6XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnc2VydmljZSc6XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAncmVwbGljYXRpb25Db250cm9sbGVyJzpcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICAqL1xuICAgICAgICBzY29wZS5jdXN0b21pemVDb25uZWN0aW9uT3B0aW9ucyA9IChqc1BsdW1iLCBlZGdlLCBwYXJhbXMsIG9wdGlvbnMpID0+IHtcbiAgICAgICAgICB2YXIgdHlwZSA9IGVkZ2Uuc291cmNlLmVsLmF0dHIoJ2RhdGEtdHlwZScpO1xuICAgICAgICAgIG9wdGlvbnMuY29ubmVjdG9yID0gWyBcIkJlemllclwiLCB7IGN1cnZpbmVzczogNTAsIHN0dWI6IDI1LCBhbHdheXNSZXNwZWN0U3R1YnM6IHRydWUgfSBdO1xuICAgICAgICAgIHBhcmFtcy5wYWludFN0eWxlID0ge1xuICAgICAgICAgICAgbGluZVdpZHRoOiAyLFxuICAgICAgICAgICAgc3Ryb2tlU3R5bGU6ICcjNTU1NWNjJ1xuICAgICAgICAgIH07XG4gICAgICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgICAgICBjYXNlICdwb2QnOlxuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3NlcnZpY2UnOlxuICAgICAgICAgICAgICBwYXJhbXMuYW5jaG9ycyA9IFtcbiAgICAgICAgICAgICAgICBbIFwiQ29udGludW91c1wiLCB7IGZhY2VzOiBbXCJyaWdodFwiXSB9IF0sXG4gICAgICAgICAgICAgICAgWyBcIkNvbnRpbnVvdXNcIiwgeyBmYWNlczogW1wibGVmdFwiXSB9IF0gXG4gICAgICAgICAgICAgICAgLypcbiAgICAgICAgICAgICAgICBbMSwgMC41LCAwLCAwLCAtMTAsIC05MF0sXG4gICAgICAgICAgICAgICAgWzAsIDAuNSwgMCwgMCwgLTEwLCAtOTBdXG4gICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdyZXBsaWNhdGlvbkNvbnRyb2xsZXInOlxuICAgICAgICAgICAgICBwYXJhbXMuYW5jaG9ycyA9IFtcbiAgICAgICAgICAgICAgICBbIFwiUGVyaW1ldGVyXCIsIHsgc2hhcGU6IFwiQ2lyY2xlXCIgfSBdLFxuICAgICAgICAgICAgICAgIFsgXCJDb250aW51b3VzXCIsIHsgZmFjZXM6IFtcInJpZ2h0XCJdIH0gXVxuICAgICAgICAgICAgICAgIC8qXG4gICAgICAgICAgICAgICAgWzAsIDAuNSwgMCwgMCwgLTEwLCAtOTBdLFxuICAgICAgICAgICAgICAgIFsxLCAwLjUsIDAsIDAsIC0xMCwgLTkwXVxuICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgICAvL2xvZy5kZWJ1ZyhcImNvbm5lY3Rpb24gc291cmNlIHR5cGU6IFwiLCB0eXBlKTtcbiAgICAgICAgICByZXR1cm4gb3B0aW9ucztcbiAgICAgICAgfTtcbiAgICAgICAgZnVuY3Rpb24gaW50ZXJwb2xhdGUodGVtcGxhdGUsIGNvbmZpZykge1xuICAgICAgICAgIHJldHVybiAkaW50ZXJwb2xhdGUodGVtcGxhdGUpKGNvbmZpZyk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gY3JlYXRlRWxlbWVudCh0ZW1wbGF0ZSwgdGhpbmdOYW1lLCB0aGluZykge1xuICAgICAgICAgIHZhciBjb25maWcgPSB7fTtcbiAgICAgICAgICBjb25maWdbdGhpbmdOYW1lXSA9IHRoaW5nO1xuICAgICAgICAgIHJldHVybiBpbnRlcnBvbGF0ZSh0ZW1wbGF0ZSwgY29uZmlnKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBjcmVhdGVFbGVtZW50cyh0ZW1wbGF0ZSwgdGhpbmdOYW1lLCB0aGluZ3MpIHtcbiAgICAgICAgICByZXR1cm4gdGhpbmdzLm1hcCgodGhpbmcpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBjcmVhdGVFbGVtZW50KHRlbXBsYXRlLCB0aGluZ05hbWUsIHRoaW5nKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBhcHBlbmROZXdFbGVtZW50cyhwYXJlbnRFbCwgdGVtcGxhdGUsIHRoaW5nTmFtZSwgdGhpbmdzKSB7XG4gICAgICAgICAgdGhpbmdzLmZvckVhY2goKHRoaW5nKSA9PiB7XG4gICAgICAgICAgICB2YXIga2V5ID0gdGhpbmdbJ19rZXknXSB8fCB0aGluZ1snZWxlbWVudElkJ10gfHwgdGhpbmdbJ2lkJ11cbiAgICAgICAgICAgIHZhciBleGlzdGluZyA9IHBhcmVudEVsLmZpbmQoXCIjXCIgKyBrZXkgKTtcbiAgICAgICAgICAgIGlmICghZXhpc3RpbmcubGVuZ3RoKSB7XG4gICAgICAgICAgICAgIGxvZy5kZWJ1ZyhcImV4aXN0aW5nOiBcIiwgZXhpc3RpbmcsIFwiIGtleTogXCIsIGtleSk7XG4gICAgICAgICAgICAgIHBhcmVudEVsLmFwcGVuZCgkY29tcGlsZShjcmVhdGVFbGVtZW50KHRlbXBsYXRlLCB0aGluZ05hbWUsIHRoaW5nKSkoc2NvcGUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBuYW1lc3BhY2VGaWx0ZXIoaXRlbSkge1xuICAgICAgICAgICAgcmV0dXJuIGdldE5hbWVzcGFjZShpdGVtKSA9PT0gc2NvcGUua3ViZXJuZXRlcy5zZWxlY3RlZE5hbWVzcGFjZTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBmaXJzdERyYXcoKSB7XG4gICAgICAgICAgbG9nLmRlYnVnKFwiRmlyc3QgZHJhd1wiKTtcbiAgICAgICAgICBlbGVtZW50LmVtcHR5KCk7XG4gICAgICAgICAgdmFyIHNlcnZpY2VzID0gbW9kZWwuc2VydmljZXM7XG4gICAgICAgICAgdmFyIHJlcGxpY2F0aW9uQ29udHJvbGxlcnMgPSBtb2RlbC5yZXBsaWNhdGlvbkNvbnRyb2xsZXJzO1xuICAgICAgICAgIHZhciBwb2RzID0gbW9kZWwucG9kcztcbiAgICAgICAgICB2YXIgaG9zdHMgPSBtb2RlbC5ob3N0cztcbiAgICAgICAgICAvLyBsb2cuZGVidWcoXCJob3N0czogXCIsIG1vZGVsLmhvc3RzKTtcbiAgICAgICAgICB2YXIgcGFyZW50RWwgPSBhbmd1bGFyLmVsZW1lbnQoJHRlbXBsYXRlQ2FjaGUuZ2V0KFwib3ZlcnZpZXdUZW1wbGF0ZS5odG1sXCIpKTtcbiAgICAgICAgICB2YXIgc2VydmljZXNFbCA9IHBhcmVudEVsLmZpbmQoXCIuc2VydmljZXNcIik7XG4gICAgICAgICAgdmFyIGhvc3RzRWwgPSBwYXJlbnRFbC5maW5kKFwiLmhvc3RzXCIpO1xuICAgICAgICAgIHZhciByZXBsaWNhdGlvbkNvbnRyb2xsZXJzRWwgPSBwYXJlbnRFbC5maW5kKFwiLnJlcGxpY2F0aW9uQ29udHJvbGxlcnNcIik7XG5cbiAgICAgICAgICBzZXJ2aWNlc0VsLmFwcGVuZChjcmVhdGVFbGVtZW50cygkdGVtcGxhdGVDYWNoZS5nZXQoXCJzZXJ2aWNlVGVtcGxhdGUuaHRtbFwiKSwgJ3NlcnZpY2UnLCBzZXJ2aWNlcy5maWx0ZXIobmFtZXNwYWNlRmlsdGVyKSkpO1xuICAgICAgICAgIHJlcGxpY2F0aW9uQ29udHJvbGxlcnNFbC5hcHBlbmQoY3JlYXRlRWxlbWVudHMoJHRlbXBsYXRlQ2FjaGUuZ2V0KFwicmVwbGljYXRpb25Db250cm9sbGVyVGVtcGxhdGUuaHRtbFwiKSwgJ3JlcGxpY2F0aW9uQ29udHJvbGxlcicsIHJlcGxpY2F0aW9uQ29udHJvbGxlcnMuZmlsdGVyKG5hbWVzcGFjZUZpbHRlcikpKTtcblxuICAgICAgICAgIGhvc3RzLmZvckVhY2goKGhvc3QpID0+IHtcbiAgICAgICAgICAgIHZhciBob3N0RWwgPSBhbmd1bGFyLmVsZW1lbnQoY3JlYXRlRWxlbWVudCgkdGVtcGxhdGVDYWNoZS5nZXQoXCJvdmVydmlld0hvc3RUZW1wbGF0ZS5odG1sXCIpLCAnaG9zdCcsIGhvc3QpKTtcbiAgICAgICAgICAgIHZhciBwb2RDb250YWluZXIgPSBhbmd1bGFyLmVsZW1lbnQoaG9zdEVsLmZpbmQoJy5wb2QtY29udGFpbmVyJykpO1xuICAgICAgICAgICAgcG9kQ29udGFpbmVyLmFwcGVuZChjcmVhdGVFbGVtZW50cygkdGVtcGxhdGVDYWNoZS5nZXQoXCJwb2RUZW1wbGF0ZS5odG1sXCIpLCBcInBvZFwiLCBob3N0LnBvZHMpKTtcbiAgICAgICAgICAgIGhvc3RzRWwuYXBwZW5kKGhvc3RFbCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgLy9wYXJlbnRFbC5hcHBlbmQoY3JlYXRlRWxlbWVudHMoJHRlbXBsYXRlQ2FjaGUuZ2V0KFwicG9kVGVtcGxhdGUuaHRtbFwiKSwgJ3BvZCcsIHBvZHMpKTtcbiAgICAgICAgICBlbGVtZW50LmFwcGVuZCgkY29tcGlsZShwYXJlbnRFbCkoc2NvcGUpKTtcbiAgICAgICAgICAkdGltZW91dCgoKSA9PiB7IGVsZW1lbnQuY3NzKHt2aXNpYmlsaXR5OiAndmlzaWJsZSd9KTsgfSwgMjUwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZ1bmN0aW9uIHVwZGF0ZSgpIHtcbiAgICAgICAgICBzY29wZS4kZW1pdCgnanNwbHVtYkRvV2hpbGVTdXNwZW5kZWQnLCAoKSA9PiB7XG4gICAgICAgICAgICBsb2cuZGVidWcoXCJVcGRhdGVcIik7XG4gICAgICAgICAgICB2YXIgc2VydmljZXMgPSBtb2RlbC5zZXJ2aWNlcztcbiAgICAgICAgICAgIHZhciByZXBsaWNhdGlvbkNvbnRyb2xsZXJzID0gbW9kZWwucmVwbGljYXRpb25Db250cm9sbGVycztcbiAgICAgICAgICAgIHZhciBwb2RzID0gbW9kZWwucG9kcztcbiAgICAgICAgICAgIHZhciBob3N0cyA9IG1vZGVsLmhvc3RzO1xuICAgICAgICAgICAgdmFyIHBhcmVudEVsID0gZWxlbWVudC5maW5kKCdbaGF3dGlvLWpzcGx1bWJdJyk7XG4gICAgICAgICAgICB2YXIgY2hpbGRyZW4gPSBwYXJlbnRFbC5maW5kKCcuanNwbHVtYi1ub2RlJyk7XG4gICAgICAgICAgICBjaGlsZHJlbi5lYWNoKChpbmRleCwgYykgPT4ge1xuICAgICAgICAgICAgICB2YXIgY2hpbGQgPSBhbmd1bGFyLmVsZW1lbnQoYyk7XG4gICAgICAgICAgICAgIHZhciBrZXkgPSBjaGlsZC5hdHRyKCdpZCcpO1xuICAgICAgICAgICAgICBsb2cuZGVidWcoJ2tleTogJywga2V5KTtcbiAgICAgICAgICAgICAgaWYgKENvcmUuaXNCbGFuayhrZXkpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHZhciB0eXBlID0gY2hpbGQuYXR0cignZGF0YS10eXBlJyk7XG4gICAgICAgICAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ2hvc3QnOlxuICAgICAgICAgICAgICAgICAgaWYgKGtleSBpbiBtb2RlbC5wb2RzQnlIb3N0KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ3NlcnZpY2UnOlxuICAgICAgICAgICAgICAgICAgaWYgKGtleSBpbiBtb2RlbC5zZXJ2aWNlc0J5S2V5ICYmIGdldE5hbWVzcGFjZShtb2RlbC5zZXJ2aWNlc0J5S2V5W2tleV0pID09IHNjb3BlLmt1YmVybmV0ZXMuc2VsZWN0ZWROYW1lc3BhY2UpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHNlcnZpY2UgPSBtb2RlbC5zZXJ2aWNlc0J5S2V5W2tleV07XG4gICAgICAgICAgICAgICAgICAgIGNoaWxkLmF0dHIoJ2Nvbm5lY3QtdG8nLCBzZXJ2aWNlLmNvbm5lY3RUbyk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ3BvZCc6XG4gICAgICAgICAgICAgICAgICAvKlxuICAgICAgICAgICAgICAgICAgaWYgKGhhc0lkKHBvZHMsIGlkKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgaWYgKGtleSBpbiBtb2RlbC5wb2RzQnlLZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAncmVwbGljYXRpb25Db250cm9sbGVyJzpcbiAgICAgICAgICAgICAgICAgIGlmIChrZXkgaW4gbW9kZWwucmVwbGljYXRpb25Db250cm9sbGVyc0J5S2V5KSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciByZXBsaWNhdGlvbkNvbnRyb2xsZXIgPSBtb2RlbC5yZXBsaWNhdGlvbkNvbnRyb2xsZXJzQnlLZXlba2V5XTtcbiAgICAgICAgICAgICAgICAgICAgY2hpbGQuYXR0cignY29ubmVjdC10bycsIHJlcGxpY2F0aW9uQ29udHJvbGxlci5jb25uZWN0VG8pO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgbG9nLmRlYnVnKFwiSWdub3JpbmcgZWxlbWVudCB3aXRoIHVua25vd24gdHlwZVwiKTtcbiAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBsb2cuZGVidWcoXCJSZW1vdmluZzogXCIsIGtleSk7XG4gICAgICAgICAgICAgIGNoaWxkLnJlbW92ZSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB2YXIgc2VydmljZXNFbCA9IGVsZW1lbnQuZmluZChcIi5zZXJ2aWNlc1wiKTtcbiAgICAgICAgICAgIHZhciByZXBsaWNhdGlvbkNvbnRyb2xsZXJzRWwgPSBlbGVtZW50LmZpbmQoXCIucmVwbGljYXRpb25Db250cm9sbGVyc1wiKTtcbiAgICAgICAgICAgIHZhciBob3N0c0VsID0gZWxlbWVudC5maW5kKFwiLmhvc3RzXCIpO1xuXG4gICAgICAgICAgICBhcHBlbmROZXdFbGVtZW50cyhzZXJ2aWNlc0VsLCAkdGVtcGxhdGVDYWNoZS5nZXQoXCJzZXJ2aWNlVGVtcGxhdGUuaHRtbFwiKSwgXCJzZXJ2aWNlXCIsIHNlcnZpY2VzKTtcbiAgICAgICAgICAgIGFwcGVuZE5ld0VsZW1lbnRzKHJlcGxpY2F0aW9uQ29udHJvbGxlcnNFbCwgJHRlbXBsYXRlQ2FjaGUuZ2V0KFwicmVwbGljYXRpb25Db250cm9sbGVyVGVtcGxhdGUuaHRtbFwiKSwgXCJyZXBsaWNhdGlvbkNvbnRyb2xsZXJcIiwgcmVwbGljYXRpb25Db250cm9sbGVycyk7XG4gICAgICAgICAgICBhcHBlbmROZXdFbGVtZW50cyhob3N0c0VsLCAkdGVtcGxhdGVDYWNoZS5nZXQoXCJvdmVydmlld0hvc3RUZW1wbGF0ZS5odG1sXCIpLCBcImhvc3RcIiwgaG9zdHMpO1xuICAgICAgICAgICAgaG9zdHMuZm9yRWFjaCgoaG9zdCkgPT4ge1xuICAgICAgICAgICAgICB2YXIgaG9zdEVsID0gYW5ndWxhci5lbGVtZW50KGhvc3RzRWwuZmluZChcIiNcIiArIGhvc3QuZWxlbWVudElkKSk7XG4gICAgICAgICAgICAgIHZhciBwb2RDb250YWluZXIgPSBhbmd1bGFyLmVsZW1lbnQoaG9zdEVsLmZpbmQoJy5wb2QtY29udGFpbmVyJykpO1xuICAgICAgICAgICAgICBhcHBlbmROZXdFbGVtZW50cyhwb2RDb250YWluZXIsICR0ZW1wbGF0ZUNhY2hlLmdldChcInBvZFRlbXBsYXRlLmh0bWxcIiksIFwicG9kXCIsIGhvc3QucG9kcyk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZ1bmN0aW9uIHJlZnJlc2hEcmF3aW5nKCkge1xuICAgICAgICAgIGxvZy5kZWJ1ZyhcIlJlZnJlc2hpbmcgZHJhd2luZ1wiKTtcbiAgICAgICAgICBpZiAoZWxlbWVudC5jaGlsZHJlbigpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgZmlyc3REcmF3KCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHVwZGF0ZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBDb3JlLiRhcHBseShzY29wZSk7XG4gICAgICAgIH1cblxuICAgICAgICBzY29wZS4kb24oJ2t1YmVybmV0ZXNNb2RlbFVwZGF0ZWQnLCBfLmRlYm91bmNlKHJlZnJlc2hEcmF3aW5nLCA1MDAsIHsgdHJhaWxpbmc6IHRydWV9KSk7XG4gICAgICAgIHNldFRpbWVvdXQocmVmcmVzaERyYXdpbmcsIDEwMCk7XG4gICAgICB9XG4gICAgfTtcbiAgfV0pO1xuXG4gIHZhciBPdmVydmlld0JveENvbnRyb2xsZXIgPSBjb250cm9sbGVyKFwiT3ZlcnZpZXdCb3hDb250cm9sbGVyXCIsIFtcIiRzY29wZVwiLCBcIiRsb2NhdGlvblwiLCAoJHNjb3BlLCAkbG9jYXRpb246bmcuSUxvY2F0aW9uU2VydmljZSkgPT4ge1xuICAgICRzY29wZS52aWV3RGV0YWlscyA9IChlbnRpdHksIHBhdGg6c3RyaW5nKSA9PiB7XG4gICAgICBpZiAoZW50aXR5KSB7XG4gICAgICAgIHZhciBuYW1lc3BhY2UgPSBnZXROYW1lc3BhY2UoZW50aXR5KTtcbiAgICAgICAgdmFyIGlkID0gZ2V0TmFtZShlbnRpdHkpO1xuICAgICAgICAkbG9jYXRpb24ucGF0aChVcmxIZWxwZXJzLmpvaW4oJy9rdWJlcm5ldGVzL25hbWVzcGFjZScsIG5hbWVzcGFjZSwgcGF0aCwgaWQpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxvZy53YXJuKFwiTm8gZW50aXR5IGZvciB2aWV3RGV0YWlscyFcIik7XG4gICAgICB9XG4gICAgfVxuICB9XSk7XG5cbiAgdmFyIHNjb3BlTmFtZSA9IFwiT3ZlcnZpZXdDb250cm9sbGVyXCI7XG5cbiAgdmFyIE92ZXJ2aWV3Q29udHJvbGxlciA9IGNvbnRyb2xsZXIoc2NvcGVOYW1lLCBbXCIkc2NvcGVcIiwgXCIkbG9jYXRpb25cIiwgXCIkaHR0cFwiLCBcIiR0aW1lb3V0XCIsIFwiJHJvdXRlUGFyYW1zXCIsIFwiS3ViZXJuZXRlc01vZGVsXCIsXCJLdWJlcm5ldGVzU3RhdGVcIiwgXCJLdWJlcm5ldGVzQXBpVVJMXCIsICgkc2NvcGUsICRsb2NhdGlvbiwgJGh0dHAsICR0aW1lb3V0LCAkcm91dGVQYXJhbXMsIEt1YmVybmV0ZXNNb2RlbCwgS3ViZXJuZXRlc1N0YXRlLCBLdWJlcm5ldGVzQXBpVVJMKSA9PiB7XG4gICAgJHNjb3BlLm5hbWUgPSBzY29wZU5hbWU7XG4gICAgJHNjb3BlLmt1YmVybmV0ZXMgPSBLdWJlcm5ldGVzU3RhdGU7XG4gICAgJHNjb3BlLm1vZGVsID0gS3ViZXJuZXRlc01vZGVsO1xuXG4gICAgS3ViZXJuZXRlcy5pbml0U2hhcmVkKCRzY29wZSwgJGxvY2F0aW9uLCAkaHR0cCwgJHRpbWVvdXQsICRyb3V0ZVBhcmFtcywgS3ViZXJuZXRlc01vZGVsLCBLdWJlcm5ldGVzU3RhdGUsIEt1YmVybmV0ZXNBcGlVUkwpO1xuICB9XSk7XG5cbn1cbiIsIi8vLyA8cmVmZXJlbmNlIHBhdGg9XCIuLi8uLi9pbmNsdWRlcy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJrdWJlcm5ldGVzUGx1Z2luLnRzXCIvPlxuXG5tb2R1bGUgS3ViZXJuZXRlcyB7XG5cbiAgZXhwb3J0IHZhciBQaXBlbGluZXNDb250cm9sbGVyID0gY29udHJvbGxlcihcIlBpcGVsaW5lc0NvbnRyb2xsZXJcIiwgW1wiJHNjb3BlXCIsIFwiS3ViZXJuZXRlc01vZGVsXCIsIFwiS3ViZXJuZXRlc0J1aWxkc1wiLCBcIkt1YmVybmV0ZXNTdGF0ZVwiLCBcIiRkaWFsb2dcIiwgXCIkd2luZG93XCIsIFwiJHRlbXBsYXRlQ2FjaGVcIiwgXCIkcm91dGVQYXJhbXNcIiwgXCIkbG9jYXRpb25cIiwgXCJsb2NhbFN0b3JhZ2VcIiwgXCIkaHR0cFwiLCBcIiR0aW1lb3V0XCIsIFwiS3ViZXJuZXRlc0FwaVVSTFwiLFxuICAgICgkc2NvcGUsIEt1YmVybmV0ZXNNb2RlbDpLdWJlcm5ldGVzLkt1YmVybmV0ZXNNb2RlbFNlcnZpY2UsIEt1YmVybmV0ZXNCdWlsZHMsIEt1YmVybmV0ZXNTdGF0ZSwgJGRpYWxvZywgJHdpbmRvdywgJHRlbXBsYXRlQ2FjaGUsICRyb3V0ZVBhcmFtcywgJGxvY2F0aW9uOm5nLklMb2NhdGlvblNlcnZpY2UsIGxvY2FsU3RvcmFnZSwgJGh0dHAsICR0aW1lb3V0LCBLdWJlcm5ldGVzQXBpVVJMKSA9PiB7XG5cbiAgICAgICRzY29wZS5rdWJlcm5ldGVzID0gS3ViZXJuZXRlc1N0YXRlO1xuICAgICAgJHNjb3BlLm1vZGVsID0gS3ViZXJuZXRlc01vZGVsO1xuICAgICAgJHNjb3BlLkt1YmVybmV0ZXNCdWlsZHMgPSBLdWJlcm5ldGVzQnVpbGRzO1xuXG4gICAgICBLdWJlcm5ldGVzLmluaXRTaGFyZWQoJHNjb3BlLCAkbG9jYXRpb24sICRodHRwLCAkdGltZW91dCwgJHJvdXRlUGFyYW1zLCBLdWJlcm5ldGVzTW9kZWwsIEt1YmVybmV0ZXNTdGF0ZSwgS3ViZXJuZXRlc0FwaVVSTCk7XG5cbiAgICAgIC8qKlxuICAgICAgICogTGV0cyB1cGRhdGUgdGhlIHZhcmlvdXMgZGF0YSB0byBqb2luIHRoZW0gdG9nZXRoZXIgdG8gYSBwaXBlbGluZSBtb2RlbFxuICAgICAgICovXG4gICAgICBmdW5jdGlvbiB1cGRhdGVEYXRhKCkge1xuICAgICAgICB2YXIgcGlwZWxpbmVTdGVwcyA9IHt9O1xuICAgICAgICBpZiAoJHNjb3BlLmJ1aWxkQ29uZmlncyAmJiAkc2NvcGUuYnVpbGRzICYmICRzY29wZS5kZXBsb3ltZW50Q29uZmlncykge1xuICAgICAgICAgIGVucmljaEJ1aWxkQ29uZmlncygkc2NvcGUuYnVpbGRDb25maWdzLCAkc2NvcGUuYnVpbGRzKTtcbiAgICAgICAgICAkc2NvcGUuZmV0Y2hlZCA9IHRydWU7XG5cbiAgICAgICAgICBhbmd1bGFyLmZvckVhY2goJHNjb3BlLmJ1aWxkQ29uZmlncywgKGJ1aWxkQ29uZmlnKSA9PiB7XG4gICAgICAgICAgICB2YXIgcGlwZWxpbmVLZXkgPSBjcmVhdGVQaXBlbGluZUtleShidWlsZENvbmZpZyk7XG4gICAgICAgICAgICBpZiAocGlwZWxpbmVLZXkpIHtcbiAgICAgICAgICAgICAgcGlwZWxpbmVTdGVwc1twaXBlbGluZUtleV0gPSB7XG4gICAgICAgICAgICAgICAgYnVpbGRDb25maWc6IGJ1aWxkQ29uZmlnLFxuICAgICAgICAgICAgICAgIGJ1aWxkczogW10sXG4gICAgICAgICAgICAgICAgdHJpZ2dlcmVkQnk6IG51bGwsXG4gICAgICAgICAgICAgICAgdHJpZ2dlcnNTdGVwczogW10sXG4gICAgICAgICAgICAgICAgJGNsYXNzOiAncGlwZWxpbmUtYnVpbGQnXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgICBhbmd1bGFyLmZvckVhY2goJHNjb3BlLmJ1aWxkcywgKGJ1aWxkKSA9PiB7XG4gICAgICAgICAgICB2YXIgcGlwZWxpbmVLZXkgPSBjcmVhdGVQaXBlbGluZUtleShidWlsZCk7XG4gICAgICAgICAgICBpZiAocGlwZWxpbmVLZXkpIHtcbiAgICAgICAgICAgICAgdmFyIHBpcGVsaW5lID0gcGlwZWxpbmVTdGVwc1twaXBlbGluZUtleV07XG4gICAgICAgICAgICAgIGlmICghcGlwZWxpbmUpIHtcbiAgICAgICAgICAgICAgICAvL2NvbnNvbGUubG9nKFwid2FybmluZyBubyBwaXBlbGluZSBnZW5lcmF0ZWQgZm9yIGJ1aWxkQ29uZmlnIGZvciBrZXkgXCIgKyBwaXBlbGluZUtleSArIFwiIGZvciBidWlsZCBcIiArIGFuZ3VsYXIudG9Kc29uKGJ1aWxkLCB0cnVlKSk7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJ3YXJuaW5nIG5vIHBpcGVsaW5lIGdlbmVyYXRlZCBmb3IgYnVpbGRDb25maWcgZm9yIGtleSBcIiArIHBpcGVsaW5lS2V5ICsgXCIgZm9yIGJ1aWxkIFwiICsgYnVpbGQuJG5hbWUpO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHBpcGVsaW5lLmJ1aWxkcy5wdXNoKGJ1aWxkKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgLy8gVE9ETyBub3cgd2UgbmVlZCB0byBsb29rIGF0IHRoZSB0cmlnZ2VycyB0byBmaWd1cmUgb3V0IHdoaWNoIHBpcGVsaW5lU3RlcHMgdHJpZ2dlcnMgZWFjaCBwaXBlbGluZVN0ZXBcblxuXG4gICAgICAgICAgLy8gbm93IGxldHMgY3JlYXRlIGFuIGFycmF5IG9mIGFsbCBwaXBlbGluZXMsIHN0YXJ0aW5nIGZyb20gdGhlIGZpcnN0IGtub3duIHN0ZXAgd2l0aCBhIGxpc3Qgb2YgdGhlIHN0ZXBzXG5cbiAgICAgICAgICB2YXIgcGlwZWxpbmVzID0gW107XG4gICAgICAgICAgYW5ndWxhci5mb3JFYWNoKHBpcGVsaW5lU3RlcHMsIChwaXBlbGluZVN0ZXAsIGtleSkgPT4ge1xuICAgICAgICAgICAgaWYgKCFwaXBlbGluZVN0ZXAudHJpZ2dlcmVkQnkpIHtcbiAgICAgICAgICAgICAgLy8gd2UgYXJlIGEgcm9vdCBzdGVwLi4uLlxuICAgICAgICAgICAgICBwaXBlbGluZXMucHVzaChwaXBlbGluZVN0ZXApO1xuICAgICAgICAgICAgICAvLyBub3cgbGV0cyBhZGQgYWxsIHRoZSBzdGVwcyBmb3IgdGhpcyBrZXkuLi5cbiAgICAgICAgICAgICAgcGlwZWxpbmVTdGVwLnRyaWdnZXJzU3RlcHMucHVzaChwaXBlbGluZVN0ZXApO1xuICAgICAgICAgICAgICBhbmd1bGFyLmZvckVhY2gocGlwZWxpbmVTdGVwcywgKHN0ZXApID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoc3RlcC50cmlnZ2VyZWRCeSA9PT0ga2V5KSB7XG4gICAgICAgICAgICAgICAgICBwaXBlbGluZVN0ZXAudHJpZ2dlcnNTdGVwcy5wdXNoKHN0ZXApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBhbmd1bGFyLmZvckVhY2goJHNjb3BlLmRlcGxveW1lbnRDb25maWdzLCAoZGVwbG95bWVudENvbmZpZykgPT4ge1xuICAgICAgICAgICAgaWYgKCFkZXBsb3ltZW50Q29uZmlnLmtpbmQpIHtcbiAgICAgICAgICAgICAgZGVwbG95bWVudENvbmZpZy5raW5kID0gXCJEZXBsb3ltZW50Q29uZmlnXCI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBhbmd1bGFyLmZvckVhY2goZGVwbG95bWVudENvbmZpZy50cmlnZ2VycywgKHRyaWdnZXIpID0+IHtcbiAgICAgICAgICAgICAgdmFyIHR5cGUgPSB0cmlnZ2VyLnR5cGU7XG4gICAgICAgICAgICAgIHZhciBpbWFnZUNoYW5nZVBhcmFtcyA9IHRyaWdnZXIuaW1hZ2VDaGFuZ2VQYXJhbXM7XG4gICAgICAgICAgICAgIGlmIChpbWFnZUNoYW5nZVBhcmFtcyAmJiB0eXBlID09PSBcIkltYWdlQ2hhbmdlXCIpIHtcbiAgICAgICAgICAgICAgICB2YXIgZnJvbSA9IGltYWdlQ2hhbmdlUGFyYW1zLmZyb207XG4gICAgICAgICAgICAgICAgaWYgKGZyb20pIHtcbiAgICAgICAgICAgICAgICAgIHZhciBuYW1lID0gZnJvbS5uYW1lO1xuICAgICAgICAgICAgICAgICAgaWYgKGZyb20ua2luZCA9PT0gXCJJbWFnZVJlcG9zaXRvcnlcIikge1xuICAgICAgICAgICAgICAgICAgICB2YXIgdGFnID0gaW1hZ2VDaGFuZ2VQYXJhbXMudGFnIHx8IFwibGF0ZXN0XCI7XG4gICAgICAgICAgICAgICAgICAgIGlmIChuYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgLy8gbm93IGxldHMgZmluZCBhIHBpcGVsaW5lIHN0ZXAgd2hpY2ggZmlyZXMgZnJvbSB0aGlzXG4gICAgICAgICAgICAgICAgICAgICAgYW5ndWxhci5mb3JFYWNoKHBpcGVsaW5lU3RlcHMsIChwaXBlbGluZVN0ZXAsIGtleSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRvID0gQ29yZS5wYXRoR2V0KHBpcGVsaW5lU3RlcCwgW1wiYnVpbGRDb25maWdcIiwgXCJwYXJhbWV0ZXJzXCIsIFwib3V0cHV0XCIsIFwidG9cIl0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRvICYmICh0by5raW5kID09PSBcIkltYWdlUmVwb3NpdG9yeVwiIHx8IHRvLmtpbmQgPT09IFwiSW1hZ2VTdHJlYW1cIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRvTmFtZSA9IHRvLm5hbWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0b05hbWUgPT09IG5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgc2VsZWN0b3IgPSBDb3JlLnBhdGhHZXQoZGVwbG95bWVudENvbmZpZywgW1widGVtcGxhdGVcIiwgXCJjb250cm9sbGVyVGVtcGxhdGVcIiwgXCJzZWxlY3RvclwiXSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBvZHMgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgJHBvZENvdW50ZXJzID0gc2VsZWN0b3IgPyBjcmVhdGVQb2RDb3VudGVycyhzZWxlY3RvciwgS3ViZXJuZXRlc01vZGVsLnBvZHNGb3JOYW1lc3BhY2UoKSwgcG9kcykgOiBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBkZXBsb3lQaXBlbGluZVN0ZXAgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWlsZENvbmZpZzogZGVwbG95bWVudENvbmZpZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRjbGFzczogJ3BpcGVsaW5lLWRlcGxveScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcG9kQ291bnRlcnM6ICRwb2RDb3VudGVycyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwb2RzOiBwb2RzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaXBlbGluZVN0ZXAudHJpZ2dlcnNTdGVwcy5wdXNoKGRlcGxveVBpcGVsaW5lU3RlcCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgJHNjb3BlLnBpcGVsaW5lcyA9IHBpcGVsaW5lcztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvKipcbiAgICAgICAqIExldHMgY3JlYXRlIGEgdW5pcXVlIGtleSBmb3IgYnVpbGQgLyBjb25maWcgd2UgY2FuIHVzZSB0byBkbyBsaW5raW5nIG9mIGJ1aWxkcyAvIGNvbmZpZ3MgLyB0cmlnZ2Vyc1xuICAgICAgICovXG4gICAgICBmdW5jdGlvbiBjcmVhdGVQaXBlbGluZUtleShidWlsZENvbmZpZykge1xuICAgICAgICByZXR1cm4gQ29yZS5wYXRoR2V0KGJ1aWxkQ29uZmlnLCBbXCJwYXJhbWV0ZXJzXCIsIFwic291cmNlXCIsIFwiZ2l0XCIsIFwidXJpXCJdKTtcbiAgICAgIH1cblxuICAgICAgJHNjb3BlLiRrZWVwUG9sbGluZyA9ICgpID0+IGtlZXBQb2xsaW5nTW9kZWw7XG4gICAgICAkc2NvcGUuZmV0Y2ggPSBQb2xsSGVscGVycy5zZXR1cFBvbGxpbmcoJHNjb3BlLCAobmV4dDooKSA9PiB2b2lkKSA9PiB7XG4gICAgICAgIHZhciByZWFkeSA9IDA7XG4gICAgICAgIHZhciBudW1TZXJ2aWNlcyA9IDM7XG5cbiAgICAgICAgZnVuY3Rpb24gbWF5YmVOZXh0KCkge1xuICAgICAgICAgIGlmICgrK3JlYWR5ID49IG51bVNlcnZpY2VzKSB7XG4gICAgICAgICAgICBuZXh0KCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdmFyIHVybCA9IGJ1aWxkc1Jlc3RVUkwoKTtcbiAgICAgICAgJGh0dHAuZ2V0KHVybCkuXG4gICAgICAgICAgc3VjY2VzcyhmdW5jdGlvbiAoZGF0YSwgc3RhdHVzLCBoZWFkZXJzLCBjb25maWcpIHtcbiAgICAgICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICAgICRzY29wZS5idWlsZHMgPSBlbnJpY2hCdWlsZHMoZGF0YS5pdGVtcyk7XG4gICAgICAgICAgICAgIHVwZGF0ZURhdGEoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG1heWJlTmV4dCgpO1xuICAgICAgICAgIH0pLlxuICAgICAgICAgIGVycm9yKGZ1bmN0aW9uIChkYXRhLCBzdGF0dXMsIGhlYWRlcnMsIGNvbmZpZykge1xuICAgICAgICAgICAgbG9nLndhcm4oXCJGYWlsZWQgdG8gbG9hZCBcIiArIHVybCArIFwiIFwiICsgZGF0YSArIFwiIFwiICsgc3RhdHVzKTtcbiAgICAgICAgICAgIG1heWJlTmV4dCgpO1xuXG4gICAgICAgICAgfSk7XG4gICAgICAgIHVybCA9IGJ1aWxkQ29uZmlnc1Jlc3RVUkwoKTtcbiAgICAgICAgJGh0dHAuZ2V0KHVybCkuXG4gICAgICAgICAgc3VjY2VzcyhmdW5jdGlvbiAoZGF0YSwgc3RhdHVzLCBoZWFkZXJzLCBjb25maWcpIHtcbiAgICAgICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICAgICRzY29wZS5idWlsZENvbmZpZ3MgPSBkYXRhLml0ZW1zO1xuICAgICAgICAgICAgICB1cGRhdGVEYXRhKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBtYXliZU5leHQoKTtcbiAgICAgICAgICB9KS5cbiAgICAgICAgICBlcnJvcihmdW5jdGlvbiAoZGF0YSwgc3RhdHVzLCBoZWFkZXJzLCBjb25maWcpIHtcbiAgICAgICAgICAgIGxvZy53YXJuKFwiRmFpbGVkIHRvIGxvYWQgXCIgKyB1cmwgKyBcIiBcIiArIGRhdGEgKyBcIiBcIiArIHN0YXR1cyk7XG4gICAgICAgICAgICBtYXliZU5leHQoKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgdXJsID0gZGVwbG95bWVudENvbmZpZ3NSZXN0VVJMKCk7XG4gICAgICAgICRodHRwLmdldCh1cmwpLlxuICAgICAgICAgIHN1Y2Nlc3MoZnVuY3Rpb24gKGRhdGEsIHN0YXR1cywgaGVhZGVycywgY29uZmlnKSB7XG4gICAgICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgICAkc2NvcGUuZGVwbG95bWVudENvbmZpZ3MgPSBkYXRhLml0ZW1zO1xuICAgICAgICAgICAgICB1cGRhdGVEYXRhKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBtYXliZU5leHQoKTtcbiAgICAgICAgICB9KS5cbiAgICAgICAgICBlcnJvcihmdW5jdGlvbiAoZGF0YSwgc3RhdHVzLCBoZWFkZXJzLCBjb25maWcpIHtcbiAgICAgICAgICAgIGxvZy53YXJuKFwiRmFpbGVkIHRvIGxvYWQgXCIgKyB1cmwgKyBcIiBcIiArIGRhdGEgKyBcIiBcIiArIHN0YXR1cyk7XG4gICAgICAgICAgICBtYXliZU5leHQoKTtcbiAgICAgICAgICB9KTtcbiAgICAgIH0pO1xuXG4gICAgICAkc2NvcGUuZmV0Y2goKTtcbiAgICB9XSk7XG5cbn1cbiIsIi8vLyA8cmVmZXJlbmNlIHBhdGg9XCIuLi8uLi9pbmNsdWRlcy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJrdWJlcm5ldGVzSGVscGVycy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJrdWJlcm5ldGVzUGx1Z2luLnRzXCIvPlxuXG5tb2R1bGUgS3ViZXJuZXRlcyB7XG5cbiAgZXhwb3J0IHZhciBQb2RDb250cm9sbGVyID0gY29udHJvbGxlcihcIlBvZENvbnRyb2xsZXJcIixcbiAgICBbXCIkc2NvcGVcIiwgXCJLdWJlcm5ldGVzTW9kZWxcIiwgXCJLdWJlcm5ldGVzU3RhdGVcIiwgXCJTZXJ2aWNlUmVnaXN0cnlcIiwgXCIkdGVtcGxhdGVDYWNoZVwiLCBcIiRsb2NhdGlvblwiLCBcIiRyb3V0ZVBhcmFtc1wiLCBcIiRodHRwXCIsIFwiJHRpbWVvdXRcIiwgXCIkd2luZG93XCIsIFwiS3ViZXJuZXRlc0FwaVVSTFwiLFxuICAgICAgKCRzY29wZSwgS3ViZXJuZXRlc01vZGVsOiBLdWJlcm5ldGVzLkt1YmVybmV0ZXNNb2RlbFNlcnZpY2UsIEt1YmVybmV0ZXNTdGF0ZSwgU2VydmljZVJlZ2lzdHJ5LFxuICAgICAgICR0ZW1wbGF0ZUNhY2hlOm5nLklUZW1wbGF0ZUNhY2hlU2VydmljZSwgJGxvY2F0aW9uOm5nLklMb2NhdGlvblNlcnZpY2UsICRyb3V0ZVBhcmFtcywgJGh0dHAsICR0aW1lb3V0LCAkd2luZG93LCBLdWJlcm5ldGVzQXBpVVJMKSA9PiB7XG5cbiAgICAkc2NvcGUua3ViZXJuZXRlcyA9IEt1YmVybmV0ZXNTdGF0ZTtcbiAgICAkc2NvcGUubW9kZWwgPSBLdWJlcm5ldGVzTW9kZWw7XG4gICAgJHNjb3BlLnJhd01vZGUgPSBmYWxzZTtcbiAgICAkc2NvcGUucmF3TW9kZWwgPSBudWxsO1xuXG4gICAgJHNjb3BlLml0ZW1Db25maWcgPSB7XG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICdjb250YWluZXJzL2ltYWdlJCc6IHtcbiAgICAgICAgICB0ZW1wbGF0ZTogJHRlbXBsYXRlQ2FjaGUuZ2V0KCdpbWFnZVRlbXBsYXRlLmh0bWwnKVxuICAgICAgICB9LFxuICAgICAgICAnc3RhdHVzL3BoYXNlJzoge1xuICAgICAgICAgIHRlbXBsYXRlOiAkdGVtcGxhdGVDYWNoZS5nZXQoJ3N0YXR1c1RlbXBsYXRlLmh0bWwnKVxuICAgICAgICB9LFxuICAgICAgICAnXFxcXC9FbnZcXFxcLyc6IHtcbiAgICAgICAgICB0ZW1wbGF0ZTogJHRlbXBsYXRlQ2FjaGUuZ2V0KCdlbnZJdGVtVGVtcGxhdGUuaHRtbCcpXG4gICAgICAgIH0sXG4gICAgICAgICdeXFxcXC9sYWJlbHMkJzoge1xuICAgICAgICAgIHRlbXBsYXRlOiAkdGVtcGxhdGVDYWNoZS5nZXQoJ2xhYmVsVGVtcGxhdGUuaHRtbCcpXG4gICAgICAgIH0sXG4gICAgICAgICdcXFxcL2VudlxcXFwva2V5JCc6IHtcbiAgICAgICAgICBoaWRkZW46IHRydWVcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG5cbiAgICBLdWJlcm5ldGVzLmluaXRTaGFyZWQoJHNjb3BlLCAkbG9jYXRpb24sICRodHRwLCAkdGltZW91dCwgJHJvdXRlUGFyYW1zLCBLdWJlcm5ldGVzTW9kZWwsIEt1YmVybmV0ZXNTdGF0ZSwgS3ViZXJuZXRlc0FwaVVSTCk7XG5cbiAgICAkc2NvcGUuJG9uKCdrdWJlcm5ldGVzTW9kZWxVcGRhdGVkJywgZnVuY3Rpb24gKCkge1xuICAgICAgdXBkYXRlRGF0YSgpO1xuICAgIH0pO1xuXG4gICAgJHNjb3BlLiRvbignJHJvdXRlVXBkYXRlJywgKCRldmVudCkgPT4ge1xuICAgICAgdXBkYXRlRGF0YSgpO1xuICAgIH0pO1xuXG4gICAgJHNjb3BlLiR3YXRjaCgnbW9kZWwucG9kcycsIChuZXdWYWx1ZSwgb2xkVmFsdWUpID0+IHtcbiAgICAgIHVwZGF0ZURhdGEoKTtcbiAgICB9LCB0cnVlKTtcblxuICAgICRzY29wZS5mbGlwUmF3ID0gKCkgPT4ge1xuICAgICAgJHNjb3BlLnJhd01vZGUgPSAhJHNjb3BlLnJhd01vZGU7XG4gICAgICBDb3JlLiRhcHBseSgkc2NvcGUpO1xuICAgIH07XG5cbiAgICAkc2NvcGUub3BlbkxvZ3MgPSAoKSA9PiB7XG4gICAgICB2YXIgcG9kcyA9IFskc2NvcGUuaXRlbV07XG4gICAgICBvcGVuTG9nc0ZvclBvZHMoU2VydmljZVJlZ2lzdHJ5LCAkd2luZG93LCBLdWJlcm5ldGVzTW9kZWwuY3VycmVudE5hbWVzcGFjZSgpLCBwb2RzKTtcbiAgICB9O1xuXG4gICAgdXBkYXRlRGF0YSgpO1xuXG4gICAgZnVuY3Rpb24gdXBkYXRlRGF0YSgpIHtcbiAgICAgICRzY29wZS5pZCA9ICRyb3V0ZVBhcmFtc1tcImlkXCJdO1xuICAgICAgJHNjb3BlLml0ZW0gPSAkc2NvcGUubW9kZWwuZ2V0UG9kKEt1YmVybmV0ZXNTdGF0ZS5zZWxlY3RlZE5hbWVzcGFjZSwgJHNjb3BlLmlkKTtcbiAgICAgIGlmICgkc2NvcGUuaXRlbSkge1xuICAgICAgICAkc2NvcGUucmF3TW9kZWwgPSB0b1Jhd0pzb24oJHNjb3BlLml0ZW0pO1xuICAgICAgfVxuICAgICAgQ29yZS4kYXBwbHkoJHNjb3BlKTtcbiAgICB9XG4gIH1dKTtcbn1cbiIsIi8vLyA8cmVmZXJlbmNlIHBhdGg9XCIuLi8uLi9pbmNsdWRlcy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJrdWJlcm5ldGVzSGVscGVycy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJrdWJlcm5ldGVzUGx1Z2luLnRzXCIvPlxuXG5tb2R1bGUgS3ViZXJuZXRlcyB7XG5cbiAgZXhwb3J0IHZhciBQb2RFZGl0Q29udHJvbGxlciA9IGNvbnRyb2xsZXIoXCJQb2RFZGl0Q29udHJvbGxlclwiLFxuICAgIFtcIiRzY29wZVwiLCBcIkt1YmVybmV0ZXNNb2RlbFwiLCBcIkt1YmVybmV0ZXNTdGF0ZVwiLCBcIkt1YmVybmV0ZXNTY2hlbWFcIiwgXCIkdGVtcGxhdGVDYWNoZVwiLCBcIiRsb2NhdGlvblwiLCBcIiRyb3V0ZVBhcmFtc1wiLCBcIiRodHRwXCIsIFwiJHRpbWVvdXRcIiwgXCJLdWJlcm5ldGVzQXBpVVJMXCIsIFwiU2NoZW1hUmVnaXN0cnlcIixcbiAgICAgICgkc2NvcGUsIEt1YmVybmV0ZXNNb2RlbDogS3ViZXJuZXRlcy5LdWJlcm5ldGVzTW9kZWxTZXJ2aWNlLCBLdWJlcm5ldGVzU3RhdGUsIEt1YmVybmV0ZXNTY2hlbWEsXG4gICAgICAgJHRlbXBsYXRlQ2FjaGU6bmcuSVRlbXBsYXRlQ2FjaGVTZXJ2aWNlLCAkbG9jYXRpb246bmcuSUxvY2F0aW9uU2VydmljZSwgJHJvdXRlUGFyYW1zLCAkaHR0cCwgJHRpbWVvdXQsIEt1YmVybmV0ZXNBcGlVUkwsIHNjaGVtYXM6SGF3dGlvRm9ybXMuU2NoZW1hUmVnaXN0cnkpID0+IHtcblxuICAgICRzY29wZS5rdWJlcm5ldGVzID0gS3ViZXJuZXRlc1N0YXRlO1xuICAgICRzY29wZS5tb2RlbCA9IEt1YmVybmV0ZXNNb2RlbDtcbiAgICAkc2NvcGUuaWQgPSAkcm91dGVQYXJhbXNbXCJpZFwiXTtcbiAgICAkc2NvcGUuc2NoZW1hID0gS3ViZXJuZXRlc1NjaGVtYTtcbiAgICAkc2NvcGUuY29uZmlnID0gc2NoZW1hcy5jbG9uZVNjaGVtYShcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuUG9kXCIpO1xuICAgIC8vJHNjb3BlLmNvbmZpZyA9IEt1YmVybmV0ZXNTY2hlbWEuZGVmaW5pdGlvbnMua3ViZXJuZXRlc192MWJldGEyX1BvZDtcblxuICAgIEt1YmVybmV0ZXMuaW5pdFNoYXJlZCgkc2NvcGUsICRsb2NhdGlvbiwgJGh0dHAsICR0aW1lb3V0LCAkcm91dGVQYXJhbXMsIEt1YmVybmV0ZXNNb2RlbCwgS3ViZXJuZXRlc1N0YXRlLCBLdWJlcm5ldGVzQXBpVVJMKTtcblxuICAgICRzY29wZS4kb24oJyRyb3V0ZVVwZGF0ZScsICgkZXZlbnQpID0+IHtcbiAgICAgIHVwZGF0ZURhdGEoKTtcbiAgICB9KTtcblxuICAgIHVwZGF0ZURhdGEoKTtcblxuICAgIGZ1bmN0aW9uIHVwZGF0ZURhdGEoKSB7XG4gICAgICBpZiAoJHNjb3BlLmlkKSB7XG4gICAgICAgICRzY29wZS5lbnRpdHkgPSAkc2NvcGUubW9kZWwuZ2V0UG9kKEt1YmVybmV0ZXNTdGF0ZS5zZWxlY3RlZE5hbWVzcGFjZSwgJHNjb3BlLmlkKTtcbiAgICAgICAgQ29yZS4kYXBwbHkoJHNjb3BlKTtcbiAgICAgICAgJHNjb3BlLmZldGNoZWQgPSB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgJHNjb3BlLmZldGNoZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfV0pO1xufVxuIiwiLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4uLy4uL2luY2x1ZGVzLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cImt1YmVybmV0ZXNQbHVnaW4udHNcIi8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwidXRpbEhlbHBlcnMudHNcIi8+XG5cbm1vZHVsZSBLdWJlcm5ldGVzIHtcblxuICBleHBvcnQgdmFyIEVudkl0ZW0gPSBjb250cm9sbGVyKFwiRW52SXRlbVwiLCBbXCIkc2NvcGVcIiwgKCRzY29wZSkgPT4ge1xuICAgIHZhciBwYXJ0cyA9ICRzY29wZS5kYXRhLnNwbGl0KCc9Jyk7XG4gICAgJHNjb3BlLmtleSA9IHBhcnRzLnNoaWZ0KCk7XG4gICAgJHNjb3BlLnZhbHVlID0gcGFydHMuam9pbignPScpO1xuICB9XSk7XG5cbiAgLy8gbWFpbiBjb250cm9sbGVyIGZvciB0aGUgcGFnZVxuICBleHBvcnQgdmFyIFBvZHMgPSBjb250cm9sbGVyKFwiUG9kc1wiLCBbXCIkc2NvcGVcIiwgXCJLdWJlcm5ldGVzTW9kZWxcIiwgXCJLdWJlcm5ldGVzUG9kc1wiLCBcIkt1YmVybmV0ZXNTdGF0ZVwiLCBcIlNlcnZpY2VSZWdpc3RyeVwiLCBcIiRkaWFsb2dcIiwgXCIkd2luZG93XCIsIFwiJHRlbXBsYXRlQ2FjaGVcIiwgXCIkcm91dGVQYXJhbXNcIiwgXCIkbG9jYXRpb25cIiwgXCJsb2NhbFN0b3JhZ2VcIiwgXCIkaHR0cFwiLCBcIiR0aW1lb3V0XCIsIFwiS3ViZXJuZXRlc0FwaVVSTFwiLFxuICAgICgkc2NvcGUsIEt1YmVybmV0ZXNNb2RlbDogS3ViZXJuZXRlcy5LdWJlcm5ldGVzTW9kZWxTZXJ2aWNlLCBLdWJlcm5ldGVzUG9kczpuZy5yZXNvdXJjZS5JUmVzb3VyY2VDbGFzcywgS3ViZXJuZXRlc1N0YXRlLCBTZXJ2aWNlUmVnaXN0cnksICRkaWFsb2csICR3aW5kb3csICR0ZW1wbGF0ZUNhY2hlLCAkcm91dGVQYXJhbXMsICRsb2NhdGlvbjpuZy5JTG9jYXRpb25TZXJ2aWNlLCBsb2NhbFN0b3JhZ2UsICRodHRwLCAkdGltZW91dCwgS3ViZXJuZXRlc0FwaVVSTCkgPT4ge1xuXG4gICAgJHNjb3BlLmt1YmVybmV0ZXMgPSBLdWJlcm5ldGVzU3RhdGU7XG4gICAgJHNjb3BlLm1vZGVsID0gS3ViZXJuZXRlc01vZGVsO1xuICAgICRzY29wZS4kb24oJ2t1YmVybmV0ZXNNb2RlbFVwZGF0ZWQnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBDb3JlLiRhcHBseSgkc2NvcGUpO1xuICAgIH0pO1xuXG4gICAgJHNjb3BlLml0ZW1TY2hlbWEgPSBGb3Jtcy5jcmVhdGVGb3JtQ29uZmlndXJhdGlvbigpO1xuXG4gICAgJHNjb3BlLnRhYmxlQ29uZmlnID0ge1xuICAgICAgZGF0YTogJ21vZGVsLnBvZHMnLFxuICAgICAgc2hvd1NlbGVjdGlvbkNoZWNrYm94OiB0cnVlLFxuICAgICAgZW5hYmxlUm93Q2xpY2tTZWxlY3Rpb246IGZhbHNlLFxuICAgICAgbXVsdGlTZWxlY3Q6IHRydWUsXG4gICAgICBzZWxlY3RlZEl0ZW1zOiBbXSxcbiAgICAgIGZpbHRlck9wdGlvbnM6IHtcbiAgICAgICAgZmlsdGVyVGV4dDogJGxvY2F0aW9uLnNlYXJjaCgpW1wicVwiXSB8fCAnJ1xuICAgICAgfSxcbiAgICAgIGNvbHVtbkRlZnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGZpZWxkOiAnX2tleScsXG4gICAgICAgICAgZGlzcGxheU5hbWU6ICdOYW1lJyxcbiAgICAgICAgICBkZWZhdWx0U29ydDogdHJ1ZSxcbiAgICAgICAgICBjZWxsVGVtcGxhdGU6ICR0ZW1wbGF0ZUNhY2hlLmdldChcImlkVGVtcGxhdGUuaHRtbFwiKVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgZmllbGQ6ICckc3RhdHVzQ3NzJyxcbiAgICAgICAgICBkaXNwbGF5TmFtZTogJ1N0YXR1cycsXG4gICAgICAgICAgY2VsbFRlbXBsYXRlOiAkdGVtcGxhdGVDYWNoZS5nZXQoXCJzdGF0dXNUZW1wbGF0ZS5odG1sXCIpXG4gICAgICAgIH0sXG4gICAgICAgIHsgZmllbGQ6ICckZXZlbnRDb3VudCcsXG4gICAgICAgICAgZGlzcGxheU5hbWU6ICdFdmVudHMnLFxuICAgICAgICAgIGNlbGxUZW1wbGF0ZTogJHRlbXBsYXRlQ2FjaGUuZ2V0KFwiZXZlbnRTdW1tYXJ5VGVtcGxhdGUuaHRtbFwiKVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgZmllbGQ6ICckcmVzdGFydENvdW50JyxcbiAgICAgICAgICBkaXNwbGF5TmFtZTogJ1Jlc3RhcnRzJ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgZmllbGQ6ICckY3JlYXRlZFRpbWUnLFxuICAgICAgICAgIGRpc3BsYXlOYW1lOiAnQWdlJyxcbiAgICAgICAgICBjZWxsVGVtcGxhdGU6ICR0ZW1wbGF0ZUNhY2hlLmdldChcImFnZVRlbXBsYXRlLmh0bWxcIilcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGZpZWxkOiAnJGltYWdlTmFtZXMnLFxuICAgICAgICAgIGRpc3BsYXlOYW1lOiAnSW1hZ2VzJyxcbiAgICAgICAgICBjZWxsVGVtcGxhdGU6ICR0ZW1wbGF0ZUNhY2hlLmdldChcImltYWdlVGVtcGxhdGUuaHRtbFwiKVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgZmllbGQ6ICckaG9zdCcsXG4gICAgICAgICAgZGlzcGxheU5hbWU6ICdIb3N0JyxcbiAgICAgICAgICBjZWxsVGVtcGxhdGU6ICR0ZW1wbGF0ZUNhY2hlLmdldChcImhvc3RUZW1wbGF0ZS5odG1sXCIpXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBmaWVsZDogJyRsYWJlbHNUZXh0JyxcbiAgICAgICAgICBkaXNwbGF5TmFtZTogJ0xhYmVscycsXG4gICAgICAgICAgY2VsbFRlbXBsYXRlOiAkdGVtcGxhdGVDYWNoZS5nZXQoXCJsYWJlbFRlbXBsYXRlLmh0bWxcIilcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGZpZWxkOiAnJHBvZElQJyxcbiAgICAgICAgICBkaXNwbGF5TmFtZTogJ1BvZCBJUCcsXG4gICAgICAgICAgY3VzdG9tU29ydEZpZWxkOiAoZmllbGQpID0+IHtcbiAgICAgICAgICAgIC8vIHVzZSBhIGN1c3RvbSBzb3J0IHRvIHNvcnQgaXAgYWRkcmVzc1xuICAgICAgICAgICAgcmV0dXJuIEt1YmVybmV0ZXMuc29ydEJ5UG9kSXAoZmllbGQuJHBvZElQKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9O1xuXG4gICAgJHNjb3BlLm9wZW5Mb2dzID0gKCkgPT4ge1xuICAgICAgdmFyIHBvZHMgPSAkc2NvcGUudGFibGVDb25maWcuc2VsZWN0ZWRJdGVtcztcbiAgICAgIGlmICghcG9kcyB8fCAhcG9kcy5sZW5ndGgpIHtcbiAgICAgICAgaWYgKCRzY29wZS5pZCkge1xuICAgICAgICAgIHZhciBpdGVtID0gJHNjb3BlLml0ZW07XG4gICAgICAgICAgaWYgKGl0ZW0pIHtcbiAgICAgICAgICAgIHBvZHMgPSBbaXRlbV07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBvcGVuTG9nc0ZvclBvZHMoU2VydmljZVJlZ2lzdHJ5LCAkd2luZG93LCBLdWJlcm5ldGVzTW9kZWwuY3VycmVudE5hbWVzcGFjZSgpLCBwb2RzKTtcbiAgICB9O1xuXG4gICAgS3ViZXJuZXRlcy5pbml0U2hhcmVkKCRzY29wZSwgJGxvY2F0aW9uLCAkaHR0cCwgJHRpbWVvdXQsICRyb3V0ZVBhcmFtcywgS3ViZXJuZXRlc01vZGVsLCBLdWJlcm5ldGVzU3RhdGUsIEt1YmVybmV0ZXNBcGlVUkwpO1xuXG4gICAgJHNjb3BlLmRlbGV0ZVByb21wdCA9IChzZWxlY3RlZCkgPT4ge1xuICAgICAgaWYgKGFuZ3VsYXIuaXNTdHJpbmcoc2VsZWN0ZWQpKSB7XG4gICAgICAgIHNlbGVjdGVkID0gW3tcbiAgICAgICAgICBpZDogc2VsZWN0ZWRcbiAgICAgICAgfV07XG4gICAgICB9XG4gICAgICBVSS5tdWx0aUl0ZW1Db25maXJtQWN0aW9uRGlhbG9nKDxVSS5NdWx0aUl0ZW1Db25maXJtQWN0aW9uT3B0aW9ucz57XG4gICAgICAgIGNvbGxlY3Rpb246IHNlbGVjdGVkLFxuICAgICAgICBpbmRleDogJ21ldGFkYXRhLm5hbWUnLFxuICAgICAgICBvbkNsb3NlOiAocmVzdWx0OmJvb2xlYW4pID0+IHtcbiAgICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgICBmdW5jdGlvbiBkZWxldGVTZWxlY3RlZChzZWxlY3RlZDpBcnJheTxLdWJlUG9kPiwgbmV4dDpLdWJlUG9kKSB7XG4gICAgICAgICAgICAgIGlmIChuZXh0KSB7XG4gICAgICAgICAgICAgICAgbG9nLmRlYnVnKFwiZGVsZXRpbmc6IFwiLCBnZXROYW1lKG5leHQpKTtcbiAgICAgICAgICAgICAgICBLdWJlcm5ldGVzUG9kcy5kZWxldGUoe1xuICAgICAgICAgICAgICAgICAgaWQ6IGdldE5hbWUobmV4dClcbiAgICAgICAgICAgICAgICB9LCB1bmRlZmluZWQsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgIGxvZy5kZWJ1ZyhcImRlbGV0ZWQ6IFwiLCBnZXROYW1lKG5leHQpKTtcbiAgICAgICAgICAgICAgICAgIGRlbGV0ZVNlbGVjdGVkKHNlbGVjdGVkLCBzZWxlY3RlZC5zaGlmdCgpKTtcbiAgICAgICAgICAgICAgICB9LCAoZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICAgIGxvZy5kZWJ1ZyhcIkVycm9yIGRlbGV0aW5nOiBcIiwgZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgZGVsZXRlU2VsZWN0ZWQoc2VsZWN0ZWQsIHNlbGVjdGVkLnNoaWZ0KCkpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWxldGVTZWxlY3RlZChzZWxlY3RlZCwgc2VsZWN0ZWQuc2hpZnQoKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB0aXRsZTogJ0RlbGV0ZSBwb2RzPycsXG4gICAgICAgIGFjdGlvbjogJ1RoZSBmb2xsb3dpbmcgcG9kcyB3aWxsIGJlIGRlbGV0ZWQ6JyxcbiAgICAgICAgb2tUZXh0OiAnRGVsZXRlJyxcbiAgICAgICAgb2tDbGFzczogJ2J0bi1kYW5nZXInLFxuICAgICAgICBjdXN0b206IFwiVGhpcyBvcGVyYXRpb24gaXMgcGVybWFuZW50IG9uY2UgY29tcGxldGVkIVwiLFxuICAgICAgICBjdXN0b21DbGFzczogXCJhbGVydCBhbGVydC13YXJuaW5nXCJcbiAgICAgIH0pLm9wZW4oKTtcbiAgICB9O1xuICB9XSk7XG59XG4iLCIvLy8gPHJlZmVyZW5jZSBwYXRoPVwiLi4vLi4vaW5jbHVkZXMudHNcIi8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwia3ViZXJuZXRlc0hlbHBlcnMudHNcIi8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwia3ViZXJuZXRlc1BsdWdpbi50c1wiLz5cblxubW9kdWxlIEt1YmVybmV0ZXMge1xuXG4gIGV4cG9ydCB2YXIgUmVwbGljYXRpb25Db250cm9sbGVyQ29udHJvbGxlciA9IGNvbnRyb2xsZXIoXCJSZXBsaWNhdGlvbkNvbnRyb2xsZXJDb250cm9sbGVyXCIsXG4gICAgW1wiJHNjb3BlXCIsIFwiS3ViZXJuZXRlc01vZGVsXCIsIFwiS3ViZXJuZXRlc1N0YXRlXCIsIFwiJHRlbXBsYXRlQ2FjaGVcIiwgXCIkbG9jYXRpb25cIiwgXCIkcm91dGVQYXJhbXNcIiwgXCIkaHR0cFwiLCBcIiR0aW1lb3V0XCIsIFwiS3ViZXJuZXRlc0FwaVVSTFwiLFxuICAgICAgKCRzY29wZSwgS3ViZXJuZXRlc01vZGVsOiBLdWJlcm5ldGVzLkt1YmVybmV0ZXNNb2RlbFNlcnZpY2UsIEt1YmVybmV0ZXNTdGF0ZSxcbiAgICAgICAkdGVtcGxhdGVDYWNoZTpuZy5JVGVtcGxhdGVDYWNoZVNlcnZpY2UsICRsb2NhdGlvbjpuZy5JTG9jYXRpb25TZXJ2aWNlLCAkcm91dGVQYXJhbXMsICRodHRwLCAkdGltZW91dCwgS3ViZXJuZXRlc0FwaVVSTCkgPT4ge1xuXG4gICAgJHNjb3BlLmt1YmVybmV0ZXMgPSBLdWJlcm5ldGVzU3RhdGU7XG4gICAgJHNjb3BlLm1vZGVsID0gS3ViZXJuZXRlc01vZGVsO1xuICAgICRzY29wZS5yYXdNb2RlID0gZmFsc2U7XG4gICAgJHNjb3BlLnJhd01vZGVsID0gbnVsbDtcblxuICAgIEt1YmVybmV0ZXMuaW5pdFNoYXJlZCgkc2NvcGUsICRsb2NhdGlvbiwgJGh0dHAsICR0aW1lb3V0LCAkcm91dGVQYXJhbXMsIEt1YmVybmV0ZXNNb2RlbCwgS3ViZXJuZXRlc1N0YXRlLCBLdWJlcm5ldGVzQXBpVVJMKTtcblxuICAgICRzY29wZS5pdGVtQ29uZmlnID0ge1xuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAnXlxcXFwvbGFiZWxzJCc6IHtcbiAgICAgICAgICB0ZW1wbGF0ZTogJHRlbXBsYXRlQ2FjaGUuZ2V0KCdsYWJlbFRlbXBsYXRlLmh0bWwnKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcblxuICAgICRzY29wZS4kb24oJ2t1YmVybmV0ZXNNb2RlbFVwZGF0ZWQnLCBmdW5jdGlvbiAoKSB7XG4gICAgICB1cGRhdGVEYXRhKCk7XG4gICAgfSk7XG5cbiAgICAkc2NvcGUuJG9uKCckcm91dGVVcGRhdGUnLCAoJGV2ZW50KSA9PiB7XG4gICAgICB1cGRhdGVEYXRhKCk7XG4gICAgfSk7XG5cbiAgICAkc2NvcGUuJHdhdGNoKCdtb2RlbC5wb2RzJywgKG5ld1ZhbHVlLCBvbGRWYWx1ZSkgPT4ge1xuICAgICAgdXBkYXRlRGF0YSgpO1xuICAgIH0sIHRydWUpO1xuXG4gICAgJHNjb3BlLmZsaXBSYXcgPSAoKSA9PiB7XG4gICAgICAkc2NvcGUucmF3TW9kZSA9ICEkc2NvcGUucmF3TW9kZTtcbiAgICAgIENvcmUuJGFwcGx5KCRzY29wZSk7XG4gICAgfTtcblxuICAgIHVwZGF0ZURhdGEoKTtcblxuICAgIGZ1bmN0aW9uIHVwZGF0ZURhdGEoKSB7XG4gICAgICAkc2NvcGUuaWQgPSAkcm91dGVQYXJhbXNbXCJpZFwiXTtcbiAgICAgICRzY29wZS5pdGVtID0gJHNjb3BlLm1vZGVsLmdldFJlcGxpY2F0aW9uQ29udHJvbGxlcihLdWJlcm5ldGVzU3RhdGUuc2VsZWN0ZWROYW1lc3BhY2UsICRzY29wZS5pZCk7XG4gICAgICBpZiAoJHNjb3BlLml0ZW0pIHtcbiAgICAgICAgJHNjb3BlLnJhd01vZGVsID0gdG9SYXdKc29uKCRzY29wZS5pdGVtKTtcbiAgICAgIH1cblxuICAgICAgQ29yZS4kYXBwbHkoJHNjb3BlKTtcbiAgICB9XG4gIH1dKTtcbn1cbiIsIi8vLyA8cmVmZXJlbmNlIHBhdGg9XCIuLi8uLi9pbmNsdWRlcy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJrdWJlcm5ldGVzSGVscGVycy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJrdWJlcm5ldGVzUGx1Z2luLnRzXCIvPlxuXG5tb2R1bGUgS3ViZXJuZXRlcyB7XG5cbiAgZXhwb3J0IHZhciBSZXBsaWNhdGlvbkNvbnRyb2xsZXJFZGl0Q29udHJvbGxlciA9IGNvbnRyb2xsZXIoXCJSZXBsaWNhdGlvbkNvbnRyb2xsZXJFZGl0Q29udHJvbGxlclwiLFxuICAgIFtcIiRzY29wZVwiLCBcIkt1YmVybmV0ZXNNb2RlbFwiLCBcIkt1YmVybmV0ZXNTdGF0ZVwiLCBcIkt1YmVybmV0ZXNTY2hlbWFcIiwgXCIkdGVtcGxhdGVDYWNoZVwiLCBcIiRsb2NhdGlvblwiLCBcIiRyb3V0ZVBhcmFtc1wiLCBcIiRodHRwXCIsIFwiJHRpbWVvdXRcIiwgXCJLdWJlcm5ldGVzQXBpVVJMXCIsIFwiU2NoZW1hUmVnaXN0cnlcIixcbiAgICAgICgkc2NvcGUsIEt1YmVybmV0ZXNNb2RlbDogS3ViZXJuZXRlcy5LdWJlcm5ldGVzTW9kZWxTZXJ2aWNlLCBLdWJlcm5ldGVzU3RhdGUsIEt1YmVybmV0ZXNTY2hlbWEsXG4gICAgICAgJHRlbXBsYXRlQ2FjaGU6bmcuSVRlbXBsYXRlQ2FjaGVTZXJ2aWNlLCAkbG9jYXRpb246bmcuSUxvY2F0aW9uU2VydmljZSwgJHJvdXRlUGFyYW1zLCAkaHR0cCwgJHRpbWVvdXQsIEt1YmVybmV0ZXNBcGlVUkwsIHNjaGVtYXM6SGF3dGlvRm9ybXMuU2NoZW1hUmVnaXN0cnkpID0+IHtcblxuICAgICRzY29wZS5rdWJlcm5ldGVzID0gS3ViZXJuZXRlc1N0YXRlO1xuICAgICRzY29wZS5tb2RlbCA9IEt1YmVybmV0ZXNNb2RlbDtcbiAgICAkc2NvcGUuaWQgPSAkcm91dGVQYXJhbXNbXCJpZFwiXTtcbiAgICAkc2NvcGUuc2NoZW1hID0gS3ViZXJuZXRlc1NjaGVtYTtcbiAgICBsb2cuZGVidWcoXCJTY2hlbWE6IFwiLCAkc2NvcGUuc2NoZW1hKTtcbiAgICAkc2NvcGUuY29uZmlnID0gc2NoZW1hcy5jbG9uZVNjaGVtYShcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuUmVwbGljYXRpb25Db250cm9sbGVyXCIpO1xuICAgIC8vJCRzY29wZS5jb25maWcgPSBLdWJlcm5ldGVzU2NoZW1hLmRlZmluaXRpb25zLmt1YmVybmV0ZXNfdjFiZXRhM19SZXBsaWNhdGlvbkNvbnRyb2xsZXI7XG5cbiAgICBLdWJlcm5ldGVzLmluaXRTaGFyZWQoJHNjb3BlLCAkbG9jYXRpb24sICRodHRwLCAkdGltZW91dCwgJHJvdXRlUGFyYW1zLCBLdWJlcm5ldGVzTW9kZWwsIEt1YmVybmV0ZXNTdGF0ZSwgS3ViZXJuZXRlc0FwaVVSTCk7XG5cbiAgICAkc2NvcGUuJG9uKCckcm91dGVVcGRhdGUnLCAoJGV2ZW50KSA9PiB7XG4gICAgICB1cGRhdGVEYXRhKCk7XG4gICAgfSk7XG5cbiAgICB1cGRhdGVEYXRhKCk7XG5cbiAgICBmdW5jdGlvbiB1cGRhdGVEYXRhKCkge1xuICAgICAgaWYgKCRzY29wZS5pZCkge1xuICAgICAgICAkc2NvcGUuZW50aXR5ID0gJHNjb3BlLm1vZGVsLmdldFJlcGxpY2F0aW9uQ29udHJvbGxlcihLdWJlcm5ldGVzU3RhdGUuc2VsZWN0ZWROYW1lc3BhY2UsICRzY29wZS5pZCk7XG4gICAgICAgIENvcmUuJGFwcGx5KCRzY29wZSk7XG4gICAgICAgICRzY29wZS5mZXRjaGVkID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgICRzY29wZS5mZXRjaGVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1dKTtcbn1cbiIsIi8vLyA8cmVmZXJlbmNlIHBhdGg9XCIuLi8uLi9pbmNsdWRlcy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJrdWJlcm5ldGVzSGVscGVycy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJrdWJlcm5ldGVzUGx1Z2luLnRzXCIvPlxuXG5tb2R1bGUgS3ViZXJuZXRlcyB7XG5cbiAgZXhwb3J0IHZhciBSZXBsaWNhdGlvbkNvbnRyb2xsZXJzID0gY29udHJvbGxlcihcIlJlcGxpY2F0aW9uQ29udHJvbGxlcnNcIixcbiAgICBbXCIkc2NvcGVcIiwgXCJLdWJlcm5ldGVzTW9kZWxcIiwgXCJLdWJlcm5ldGVzUmVwbGljYXRpb25Db250cm9sbGVyc1wiLCBcIkt1YmVybmV0ZXNQb2RzXCIsIFwiS3ViZXJuZXRlc1N0YXRlXCIsIFwiJHRlbXBsYXRlQ2FjaGVcIiwgXCIkbG9jYXRpb25cIiwgXCIkcm91dGVQYXJhbXNcIiwgXCIkaHR0cFwiLCBcIiR0aW1lb3V0XCIsIFwiS3ViZXJuZXRlc0FwaVVSTFwiLFxuICAgICAgKCRzY29wZSwgS3ViZXJuZXRlc01vZGVsOiBLdWJlcm5ldGVzLkt1YmVybmV0ZXNNb2RlbFNlcnZpY2UsIEt1YmVybmV0ZXNSZXBsaWNhdGlvbkNvbnRyb2xsZXJzOm5nLnJlc291cmNlLklSZXNvdXJjZUNsYXNzLCBLdWJlcm5ldGVzUG9kczpuZy5yZXNvdXJjZS5JUmVzb3VyY2VDbGFzcywgS3ViZXJuZXRlc1N0YXRlLFxuICAgICAgICR0ZW1wbGF0ZUNhY2hlOm5nLklUZW1wbGF0ZUNhY2hlU2VydmljZSwgJGxvY2F0aW9uOm5nLklMb2NhdGlvblNlcnZpY2UsICRyb3V0ZVBhcmFtcywgJGh0dHAsICR0aW1lb3V0LCBLdWJlcm5ldGVzQXBpVVJMKSA9PiB7XG5cbiAgICAkc2NvcGUua3ViZXJuZXRlcyA9IEt1YmVybmV0ZXNTdGF0ZTtcbiAgICAkc2NvcGUubW9kZWwgPSBLdWJlcm5ldGVzTW9kZWw7XG5cbiAgICAkc2NvcGUudGFibGVDb25maWcgPSB7XG4gICAgICBkYXRhOiAnbW9kZWwucmVwbGljYXRpb25Db250cm9sbGVycycsXG4gICAgICBzaG93U2VsZWN0aW9uQ2hlY2tib3g6IHRydWUsXG4gICAgICBlbmFibGVSb3dDbGlja1NlbGVjdGlvbjogZmFsc2UsXG4gICAgICBtdWx0aVNlbGVjdDogdHJ1ZSxcbiAgICAgIHNlbGVjdGVkSXRlbXM6IFtdLFxuICAgICAgZmlsdGVyT3B0aW9uczoge1xuICAgICAgICBmaWx0ZXJUZXh0OiAkbG9jYXRpb24uc2VhcmNoKClbXCJxXCJdIHx8ICcnXG4gICAgICB9LFxuICAgICAgY29sdW1uRGVmczogW1xuICAgICAgICB7IGZpZWxkOiAnX2tleScsXG4gICAgICAgICAgZGlzcGxheU5hbWU6ICdOYW1lJyxcbiAgICAgICAgICBjZWxsVGVtcGxhdGU6ICR0ZW1wbGF0ZUNhY2hlLmdldChcImlkVGVtcGxhdGUuaHRtbFwiKVxuICAgICAgICB9LFxuICAgICAgICB7IGZpZWxkOiAnJHBvZENvdW50JyxcbiAgICAgICAgICBkaXNwbGF5TmFtZTogJ1BvZHMnLFxuICAgICAgICAgIGNlbGxUZW1wbGF0ZTogJHRlbXBsYXRlQ2FjaGUuZ2V0KFwicG9kQ291bnRzQW5kTGlua1RlbXBsYXRlLmh0bWxcIiksXG4gICAgICAgICAgY3VzdG9tU29ydEZpZWxkOiAoZmllbGQpID0+IHtcbiAgICAgICAgICAgIC8vIG5lZWQgdG8gY29uY2F0IGFsbCB0aGUgcG9kIGNvdW50ZXJzXG4gICAgICAgICAgICB2YXIgcmVhZHkgPSBmaWVsZC4kcG9kQ291bnRlcnMucmVhZHkgfHwgMDtcbiAgICAgICAgICAgIHZhciB2YWxpZCA9IGZpZWxkLiRwb2RDb3VudGVycy52YWxpZCB8fCAwO1xuICAgICAgICAgICAgdmFyIHdhaXRpbmcgPSBmaWVsZC4kcG9kQ291bnRlcnMud2FpdGluZyB8fCAwO1xuICAgICAgICAgICAgdmFyIGVycm9yID0gZmllbGQuJHBvZENvdW50ZXJzLmVycm9yIHx8IDA7XG4gICAgICAgICAgICByZXR1cm4gcmVhZHkgKyB2YWxpZCArIHdhaXRpbmcgKyBlcnJvcjtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHsgZmllbGQ6ICckcmVwbGljYXMnLFxuICAgICAgICAgIGRpc3BsYXlOYW1lOiAnUmVwbGljYXMnLFxuICAgICAgICAgIGNlbGxUZW1wbGF0ZTokdGVtcGxhdGVDYWNoZS5nZXQoXCJkZXNpcmVkUmVwbGljYXMuaHRtbFwiKVxuICAgICAgICB9LFxuICAgICAgICB7IGZpZWxkOiAnJGxhYmVsc1RleHQnLFxuICAgICAgICAgIGRpc3BsYXlOYW1lOiAnTGFiZWxzJyxcbiAgICAgICAgICBjZWxsVGVtcGxhdGU6ICR0ZW1wbGF0ZUNhY2hlLmdldChcImxhYmVsVGVtcGxhdGUuaHRtbFwiKVxuICAgICAgICB9LFxuICAgICAgICB7IGZpZWxkOiAnJGV2ZW50Q291bnQnLFxuICAgICAgICAgIGRpc3BsYXlOYW1lOiAnRXZlbnRzJyxcbiAgICAgICAgICBjZWxsVGVtcGxhdGU6ICR0ZW1wbGF0ZUNhY2hlLmdldChcImV2ZW50U3VtbWFyeVRlbXBsYXRlLmh0bWxcIilcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH07XG5cbiAgICBLdWJlcm5ldGVzLmluaXRTaGFyZWQoJHNjb3BlLCAkbG9jYXRpb24sICRodHRwLCAkdGltZW91dCwgJHJvdXRlUGFyYW1zLCBLdWJlcm5ldGVzTW9kZWwsIEt1YmVybmV0ZXNTdGF0ZSwgS3ViZXJuZXRlc0FwaVVSTCk7XG5cbiAgICAkc2NvcGUuZGVsZXRlUHJvbXB0ID0gKHNlbGVjdGVkKSA9PiB7XG4gICAgICBpZiAoYW5ndWxhci5pc1N0cmluZyhzZWxlY3RlZCkpIHtcbiAgICAgICAgc2VsZWN0ZWQgPSBbe1xuICAgICAgICAgIGlkOiBzZWxlY3RlZFxuICAgICAgICB9XTtcbiAgICAgIH1cbiAgICAgIFVJLm11bHRpSXRlbUNvbmZpcm1BY3Rpb25EaWFsb2coPFVJLk11bHRpSXRlbUNvbmZpcm1BY3Rpb25PcHRpb25zPntcbiAgICAgICAgY29sbGVjdGlvbjogc2VsZWN0ZWQsXG4gICAgICAgIGluZGV4OiAnbWV0YWRhdGEubmFtZScsXG4gICAgICAgIG9uQ2xvc2U6IChyZXN1bHQ6Ym9vbGVhbikgPT4ge1xuICAgICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICAgIGZ1bmN0aW9uIGRlbGV0ZVNlbGVjdGVkKHNlbGVjdGVkOkFycmF5PEt1YmVQb2Q+LCBuZXh0Okt1YmVQb2QpIHtcbiAgICAgICAgICAgICAgaWYgKG5leHQpIHtcbiAgICAgICAgICAgICAgICBsb2cuZGVidWcoXCJkZWxldGluZzogXCIsIGdldE5hbWUobmV4dCkpO1xuICAgICAgICAgICAgICAgIEt1YmVybmV0ZXNSZXBsaWNhdGlvbkNvbnRyb2xsZXJzLmRlbGV0ZSh7XG4gICAgICAgICAgICAgICAgICBpZDogZ2V0TmFtZShuZXh0KVxuICAgICAgICAgICAgICAgIH0sIHVuZGVmaW5lZCwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgbG9nLmRlYnVnKFwiZGVsZXRlZDogXCIsIGdldE5hbWUobmV4dCkpO1xuICAgICAgICAgICAgICAgICAgZGVsZXRlU2VsZWN0ZWQoc2VsZWN0ZWQsIHNlbGVjdGVkLnNoaWZ0KCkpO1xuICAgICAgICAgICAgICAgIH0sIChlcnJvcikgPT4ge1xuICAgICAgICAgICAgICAgICAgbG9nLmRlYnVnKFwiRXJyb3IgZGVsZXRpbmc6IFwiLCBlcnJvcik7XG4gICAgICAgICAgICAgICAgICBkZWxldGVTZWxlY3RlZChzZWxlY3RlZCwgc2VsZWN0ZWQuc2hpZnQoKSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlbGV0ZVNlbGVjdGVkKHNlbGVjdGVkLCBzZWxlY3RlZC5zaGlmdCgpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHRpdGxlOiAnRGVsZXRlIHJlcGxpY2F0aW9uIGNvbnRyb2xsZXJzPycsXG4gICAgICAgIGFjdGlvbjogJ1RoZSBmb2xsb3dpbmcgcmVwbGljYXRpb24gY29udHJvbGxlcnMgd2lsbCBiZSBkZWxldGVkOicsXG4gICAgICAgIG9rVGV4dDogJ0RlbGV0ZScsXG4gICAgICAgIG9rQ2xhc3M6ICdidG4tZGFuZ2VyJyxcbiAgICAgICAgY3VzdG9tOiBcIlRoaXMgb3BlcmF0aW9uIGlzIHBlcm1hbmVudCBvbmNlIGNvbXBsZXRlZCFcIixcbiAgICAgICAgY3VzdG9tQ2xhc3M6IFwiYWxlcnQgYWxlcnQtd2FybmluZ1wiXG4gICAgICB9KS5vcGVuKCk7XG4gICAgfTtcbiAgfV0pO1xufVxuIiwiLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4uLy4uL2luY2x1ZGVzLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cImt1YmVybmV0ZXNIZWxwZXJzLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cImt1YmVybmV0ZXNQbHVnaW4udHNcIi8+XG5cbm1vZHVsZSBLdWJlcm5ldGVzIHtcblxuICBleHBvcnQgdmFyIFNlcnZpY2VDb250cm9sbGVyID0gY29udHJvbGxlcihcIlNlcnZpY2VDb250cm9sbGVyXCIsXG4gICAgW1wiJHNjb3BlXCIsIFwiS3ViZXJuZXRlc01vZGVsXCIsIFwiS3ViZXJuZXRlc1N0YXRlXCIsIFwiJHRlbXBsYXRlQ2FjaGVcIiwgXCIkbG9jYXRpb25cIiwgXCIkcm91dGVQYXJhbXNcIiwgXCIkaHR0cFwiLCBcIiR0aW1lb3V0XCIsIFwiS3ViZXJuZXRlc0FwaVVSTFwiLFxuICAgICAgKCRzY29wZSwgS3ViZXJuZXRlc01vZGVsOiBLdWJlcm5ldGVzLkt1YmVybmV0ZXNNb2RlbFNlcnZpY2UsIEt1YmVybmV0ZXNTdGF0ZSxcbiAgICAgICAkdGVtcGxhdGVDYWNoZTpuZy5JVGVtcGxhdGVDYWNoZVNlcnZpY2UsICRsb2NhdGlvbjpuZy5JTG9jYXRpb25TZXJ2aWNlLCAkcm91dGVQYXJhbXMsICRodHRwLCAkdGltZW91dCwgS3ViZXJuZXRlc0FwaVVSTCkgPT4ge1xuXG4gICAgJHNjb3BlLmt1YmVybmV0ZXMgPSBLdWJlcm5ldGVzU3RhdGU7XG4gICAgJHNjb3BlLm1vZGVsID0gS3ViZXJuZXRlc01vZGVsO1xuICAgICRzY29wZS5yYXdNb2RlID0gZmFsc2U7XG4gICAgJHNjb3BlLnJhd01vZGVsID0gbnVsbDtcblxuICAgIEt1YmVybmV0ZXMuaW5pdFNoYXJlZCgkc2NvcGUsICRsb2NhdGlvbiwgJGh0dHAsICR0aW1lb3V0LCAkcm91dGVQYXJhbXMsIEt1YmVybmV0ZXNNb2RlbCwgS3ViZXJuZXRlc1N0YXRlLCBLdWJlcm5ldGVzQXBpVVJMKTtcblxuICAgICRzY29wZS5pdGVtQ29uZmlnID0ge1xuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAnXlxcXFwvbGFiZWxzJCc6IHtcbiAgICAgICAgICB0ZW1wbGF0ZTogJHRlbXBsYXRlQ2FjaGUuZ2V0KCdsYWJlbFRlbXBsYXRlLmh0bWwnKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcblxuICAgICRzY29wZS4kb24oJ2t1YmVybmV0ZXNNb2RlbFVwZGF0ZWQnLCBmdW5jdGlvbiAoKSB7XG4gICAgICB1cGRhdGVEYXRhKCk7XG4gICAgfSk7XG5cbiAgICAkc2NvcGUuJHdhdGNoKCdtb2RlbC5zZXJ2aWNlcycsIChuZXdWYWx1ZSwgb2xkVmFsdWUpID0+IHtcbiAgICAgIHVwZGF0ZURhdGEoKTtcbiAgICB9LCB0cnVlKTtcblxuICAgICRzY29wZS4kb24oJyRyb3V0ZVVwZGF0ZScsICgkZXZlbnQpID0+IHtcbiAgICAgIHVwZGF0ZURhdGEoKTtcbiAgICB9KTtcblxuICAgICRzY29wZS5mbGlwUmF3ID0gKCkgPT4ge1xuICAgICAgJHNjb3BlLnJhd01vZGUgPSAhJHNjb3BlLnJhd01vZGU7XG4gICAgICBDb3JlLiRhcHBseSgkc2NvcGUpO1xuICAgIH07XG5cbiAgICB1cGRhdGVEYXRhKCk7XG5cbiAgICBmdW5jdGlvbiB1cGRhdGVEYXRhKCkge1xuICAgICAgJHNjb3BlLmlkID0gJHJvdXRlUGFyYW1zW1wiaWRcIl07XG4gICAgICAkc2NvcGUubmFtZXNwYWNlID0gJHJvdXRlUGFyYW1zW1wibmFtZXNwYWNlXCJdIHx8IEt1YmVybmV0ZXNTdGF0ZS5zZWxlY3RlZE5hbWVzcGFjZTtcbiAgICAgICRzY29wZS5pdGVtID0gJHNjb3BlLm1vZGVsLmdldFNlcnZpY2UoJHNjb3BlLm5hbWVzcGFjZSwgJHNjb3BlLmlkKTtcbiAgICAgIGlmICgkc2NvcGUuaXRlbSkge1xuICAgICAgICAkc2NvcGUucmF3TW9kZWwgPSB0b1Jhd0pzb24oJHNjb3BlLml0ZW0pO1xuICAgICAgfVxuICAgICAgQ29yZS4kYXBwbHkoJHNjb3BlKTtcbiAgICB9XG4gIH1dKTtcbn1cbiIsIi8vLyA8cmVmZXJlbmNlIHBhdGg9XCIuLi8uLi9pbmNsdWRlcy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJrdWJlcm5ldGVzSGVscGVycy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJrdWJlcm5ldGVzUGx1Z2luLnRzXCIvPlxuXG5tb2R1bGUgS3ViZXJuZXRlcyB7XG5cbiAgZXhwb3J0IHZhciBTZXJ2aWNlRWRpdENvbnRyb2xsZXIgPSBjb250cm9sbGVyKFwiU2VydmljZUVkaXRDb250cm9sbGVyXCIsXG4gICAgW1wiJHNjb3BlXCIsIFwiS3ViZXJuZXRlc01vZGVsXCIsIFwiS3ViZXJuZXRlc1N0YXRlXCIsIFwiS3ViZXJuZXRlc1NjaGVtYVwiLCBcIiR0ZW1wbGF0ZUNhY2hlXCIsIFwiJGxvY2F0aW9uXCIsIFwiJHJvdXRlUGFyYW1zXCIsIFwiJGh0dHBcIiwgXCIkdGltZW91dFwiLCBcIkt1YmVybmV0ZXNBcGlVUkxcIiwgXCJTY2hlbWFSZWdpc3RyeVwiLFxuICAgICAgKCRzY29wZSwgS3ViZXJuZXRlc01vZGVsOiBLdWJlcm5ldGVzLkt1YmVybmV0ZXNNb2RlbFNlcnZpY2UsIEt1YmVybmV0ZXNTdGF0ZSwgS3ViZXJuZXRlc1NjaGVtYSxcbiAgICAgICAkdGVtcGxhdGVDYWNoZTpuZy5JVGVtcGxhdGVDYWNoZVNlcnZpY2UsICRsb2NhdGlvbjpuZy5JTG9jYXRpb25TZXJ2aWNlLCAkcm91dGVQYXJhbXMsICRodHRwLCAkdGltZW91dCwgS3ViZXJuZXRlc0FwaVVSTCwgc2NoZW1hczpIYXd0aW9Gb3Jtcy5TY2hlbWFSZWdpc3RyeSkgPT4ge1xuXG4gICAgJHNjb3BlLmt1YmVybmV0ZXMgPSBLdWJlcm5ldGVzU3RhdGU7XG4gICAgJHNjb3BlLm1vZGVsID0gS3ViZXJuZXRlc01vZGVsO1xuICAgICRzY29wZS5pZCA9ICRyb3V0ZVBhcmFtc1tcImlkXCJdO1xuICAgICRzY29wZS5zY2hlbWEgPSBLdWJlcm5ldGVzU2NoZW1hO1xuICAgICRzY29wZS5jb25maWcgPSBzY2hlbWFzLmNsb25lU2NoZW1hKFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5TZXJ2aWNlXCIpO1xuICAgIC8vJHNjb3BlLmNvbmZpZyA9IEt1YmVybmV0ZXNTY2hlbWEuZGVmaW5pdGlvbnMua3ViZXJuZXRlc192MWJldGEyX1NlcnZpY2U7XG5cbiAgICBLdWJlcm5ldGVzLmluaXRTaGFyZWQoJHNjb3BlLCAkbG9jYXRpb24sICRodHRwLCAkdGltZW91dCwgJHJvdXRlUGFyYW1zLCBLdWJlcm5ldGVzTW9kZWwsIEt1YmVybmV0ZXNTdGF0ZSwgS3ViZXJuZXRlc0FwaVVSTCk7XG5cbiAgICAkc2NvcGUuJG9uKCckcm91dGVVcGRhdGUnLCAoJGV2ZW50KSA9PiB7XG4gICAgICB1cGRhdGVEYXRhKCk7XG4gICAgfSk7XG5cbiAgICB1cGRhdGVEYXRhKCk7XG5cbiAgICBmdW5jdGlvbiB1cGRhdGVEYXRhKCkge1xuICAgICAgaWYgKCRzY29wZS5pZCkge1xuICAgICAgICAkc2NvcGUuZW50aXR5ID0gJHNjb3BlLm1vZGVsLmdldFNlcnZpY2UoS3ViZXJuZXRlc1N0YXRlLnNlbGVjdGVkTmFtZXNwYWNlLCAkc2NvcGUuaWQpO1xuICAgICAgICBDb3JlLiRhcHBseSgkc2NvcGUpO1xuICAgICAgICAkc2NvcGUuZmV0Y2hlZCA9IHRydWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAkc2NvcGUuZmV0Y2hlZCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9XSk7XG59XG4iLCIvLy8gPHJlZmVyZW5jZSBwYXRoPVwiLi4vLi4vaW5jbHVkZXMudHNcIi8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwia3ViZXJuZXRlc0hlbHBlcnMudHNcIi8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwia3ViZXJuZXRlc1BsdWdpbi50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJrdWJlcm5ldGVzTW9kZWwudHNcIi8+XG5cbm1vZHVsZSBLdWJlcm5ldGVzIHtcblxuICBfbW9kdWxlLmZhY3RvcnkoJ1NlcnZpY2VSZWdpc3RyeScsIFsoKSA9PiB7XG4gICAgcmV0dXJuIG5ldyBTZXJ2aWNlUmVnaXN0cnlTZXJ2aWNlKCk7XG4gIH1dKTtcblxuICAvKipcbiAgICogUmVwcmVzZW50cyBhIHNpbXBsZSBpbnRlcmZhY2UgdG8gc2VydmljZSBkaXNjb3ZlcnkgdGhhdCBjYW4gYmUgdXNlZCBlYXJseSBvbiBpbiB0aGUgYXBwbGljYXRpb24gbGlmZWN5Y2xlIGJlZm9yZSB0aGVcbiAgICogdW5kZXJseWluZyBtb2RlbCBoYXMgYmVlbiBjcmVhdGVkIHZpYSBkZXBlbmRlbmN5IGluamVjdGlvblxuICAgKi9cbiAgZXhwb3J0IGNsYXNzIFNlcnZpY2VSZWdpc3RyeVNlcnZpY2Uge1xuICAgIHByaXZhdGUgbW9kZWw6S3ViZXJuZXRlc01vZGVsU2VydmljZSA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlcmUgaXMgYSBzZXJ2aWNlIGF2YWlsYWJsZSBmb3IgdGhlIGdpdmVuIElEIG9yIGZhbHNlXG4gICAgICovXG4gICAgcHVibGljIGhhc1NlcnZpY2Uoc2VydmljZU5hbWU6IHN0cmluZykge1xuICAgICAgcmV0dXJuIHRoaXMuZmluZFNlcnZpY2Uoc2VydmljZU5hbWUpID8gdHJ1ZSA6IGZhbHNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIHNlcnZpY2UgZm9yIHRoZSBnaXZlbiBzZXJ2aWNlIG5hbWUgKElEKSBvciBudWxsIGlmIGl0IGNhbm5vdCBiZSBmb3VuZFxuICAgICAqXG4gICAgICogQHBhcmFtIHNlcnZpY2VOYW1lIHRoZSBuYW1lIG9mIHRoZSBzZXJ2aWNlIHRvIGxvb2sgZm9yXG4gICAgICogQHJldHVybiB7bnVsbH1cbiAgICAgKi9cbiAgICBwdWJsaWMgZmluZFNlcnZpY2Uoc2VydmljZU5hbWU6IHN0cmluZykge1xuICAgICAgdmFyIGFuc3dlciA9IG51bGw7XG4gICAgICBpZiAoc2VydmljZU5hbWUpIHtcbiAgICAgICAgdmFyIG1vZGVsID0gdGhpcy5nZXRNb2RlbCgpO1xuICAgICAgICBpZiAobW9kZWwpIHtcbiAgICAgICAgICB2YXIgbmFtZXNwYWNlID0gbW9kZWwuY3VycmVudE5hbWVzcGFjZSgpO1xuICAgICAgICAgIHJldHVybiBtb2RlbC5nZXRTZXJ2aWNlKG5hbWVzcGFjZSAsc2VydmljZU5hbWUpO1xuLypcbiAgICAgICAgVE9ETyBsZXRzIG9ubHkgbG9vayBpbiB0aGUgY3VycmVudCBuYW1lc3BhY2VcbiAgICAgICAgYW5ndWxhci5mb3JFYWNoKG1vZGVsLnNlcnZpY2VzLCAoc2VydmljZSkgPT4ge1xuICAgICAgICAgIGlmIChzZXJ2aWNlTmFtZSA9PT0gZ2V0TmFtZShzZXJ2aWNlKSkge1xuICAgICAgICAgICAgYW5zd2VyID0gc2VydmljZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuKi9cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGFuc3dlcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBzZXJ2aWNlIGxpbmsgZm9yIHRoZSBnaXZlbiBzZXJ2aWNlIG5hbWVcbiAgICAgKlxuICAgICAqIEBwYXJhbSBzZXJ2aWNlTmFtZSB0aGUgbmFtZSBvZiB0aGUgc2VydmljZVxuICAgICAqIEByZXR1cm4ge251bGx9XG4gICAgICovXG4gICAgcHVibGljIHNlcnZpY2VMaW5rKHNlcnZpY2VOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgdmFyIHNlcnZpY2UgPSB0aGlzLmZpbmRTZXJ2aWNlKHNlcnZpY2VOYW1lKTtcbiAgICAgIHJldHVybiBzZXJ2aWNlTGlua1VybChzZXJ2aWNlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBzZXJ2aWNlIGxpbmsgZm9yIHRoZSBnaXZlbiBzZXJ2aWNlIG5hbWUgaWYgaXRzIHJlYWR5IChoYXMgYXQgbGVhc3Qgb25lIHJlYWR5IHBvZClcbiAgICAgKlxuICAgICAqIEBwYXJhbSBzZXJ2aWNlTmFtZSB0aGUgbmFtZSBvZiB0aGUgc2VydmljZVxuICAgICAqIEByZXR1cm4ge251bGx9XG4gICAgICovXG4gICAgcHVibGljIHNlcnZpY2VSZWFkeUxpbmsoc2VydmljZU5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICB2YXIgc2VydmljZSA9IHRoaXMuZmluZFNlcnZpY2Uoc2VydmljZU5hbWUpO1xuICAgICAgaWYgKHJlYWR5UG9kQ291bnQoc2VydmljZSkpIHtcbiAgICAgICAgcmV0dXJuIHNlcnZpY2VMaW5rVXJsKHNlcnZpY2UpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRNb2RlbCgpOkt1YmVybmV0ZXNNb2RlbFNlcnZpY2Uge1xuICAgICAgdmFyIGFuc3dlciA9IHRoaXMubW9kZWw7XG4gICAgICAvLyBsZXRzIGFsbG93IGxhenkgbG9hZCBzbyB3ZSBjYW4gYmUgaW52b2tlZCBiZWZvcmUgdGhlIGluamVjdG9yIGhhcyBiZWVuIGNyZWF0ZWRcbiAgICAgIGlmICghYW5zd2VyKSB7XG4gICAgICAgIHZhciBpbmplY3RvciA9IEhhd3Rpb0NvcmUuaW5qZWN0b3I7XG4gICAgICAgIGlmIChpbmplY3Rvcikge1xuICAgICAgICAgIHRoaXMubW9kZWwgPSBpbmplY3Rvci5nZXQoJ0t1YmVybmV0ZXNNb2RlbCcpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBhbnN3ZXIgPSB0aGlzLm1vZGVsO1xuICAgICAgcmV0dXJuIGFuc3dlcjtcbiAgICB9XG4gIH1cbn1cbiIsIi8vLyA8cmVmZXJlbmNlIHBhdGg9XCIuLi8uLi9pbmNsdWRlcy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJrdWJlcm5ldGVzSGVscGVycy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJrdWJlcm5ldGVzUGx1Z2luLnRzXCIvPlxuXG5tb2R1bGUgS3ViZXJuZXRlcyB7XG5cbiAgZXhwb3J0IHZhciBTZXJ2aWNlcyA9IGNvbnRyb2xsZXIoXCJTZXJ2aWNlc1wiLFxuICAgIFtcIiRzY29wZVwiLCBcIkt1YmVybmV0ZXNNb2RlbFwiLCBcIkt1YmVybmV0ZXNTZXJ2aWNlc1wiLCBcIkt1YmVybmV0ZXNQb2RzXCIsIFwiS3ViZXJuZXRlc1N0YXRlXCIsIFwiJHRlbXBsYXRlQ2FjaGVcIiwgXCIkbG9jYXRpb25cIiwgXCIkcm91dGVQYXJhbXNcIiwgXCIkaHR0cFwiLCBcIiR0aW1lb3V0XCIsIFwiS3ViZXJuZXRlc0FwaVVSTFwiLFxuICAgICAgKCRzY29wZSwgS3ViZXJuZXRlc01vZGVsOiBLdWJlcm5ldGVzLkt1YmVybmV0ZXNNb2RlbFNlcnZpY2UsIEt1YmVybmV0ZXNTZXJ2aWNlczpuZy5yZXNvdXJjZS5JUmVzb3VyY2VDbGFzcywgS3ViZXJuZXRlc1BvZHM6bmcucmVzb3VyY2UuSVJlc291cmNlQ2xhc3MsIEt1YmVybmV0ZXNTdGF0ZSxcbiAgICAgICAkdGVtcGxhdGVDYWNoZTpuZy5JVGVtcGxhdGVDYWNoZVNlcnZpY2UsICRsb2NhdGlvbjpuZy5JTG9jYXRpb25TZXJ2aWNlLCAkcm91dGVQYXJhbXMsICRodHRwLCAkdGltZW91dCwgS3ViZXJuZXRlc0FwaVVSTCkgPT4ge1xuXG4gICAgJHNjb3BlLmt1YmVybmV0ZXMgPSBLdWJlcm5ldGVzU3RhdGU7XG4gICAgJHNjb3BlLm1vZGVsID0gS3ViZXJuZXRlc01vZGVsO1xuXG4gICAgQ29udHJvbGxlckhlbHBlcnMuYmluZE1vZGVsVG9TZWFyY2hQYXJhbSgkc2NvcGUsICRsb2NhdGlvbiwgJ21vZGUnLCAnbW9kZScsICdsaXN0Jyk7XG5cbiAgICAkc2NvcGUudGFibGVDb25maWcgPSB7XG4gICAgICBkYXRhOiAnbW9kZWwuc2VydmljZXMnLFxuICAgICAgc2hvd1NlbGVjdGlvbkNoZWNrYm94OiB0cnVlLFxuICAgICAgZW5hYmxlUm93Q2xpY2tTZWxlY3Rpb246IGZhbHNlLFxuICAgICAgbXVsdGlTZWxlY3Q6IHRydWUsXG4gICAgICBzZWxlY3RlZEl0ZW1zOiBbXSxcbiAgICAgIGZpbHRlck9wdGlvbnM6IHtcbiAgICAgICAgZmlsdGVyVGV4dDogJGxvY2F0aW9uLnNlYXJjaCgpW1wicVwiXSB8fCAnJ1xuICAgICAgfSxcbiAgICAgIGNvbHVtbkRlZnM6IFtcbiAgICAgICAgeyBmaWVsZDogJ19rZXknLFxuICAgICAgICAgIGRpc3BsYXlOYW1lOiAnTmFtZScsXG4gICAgICAgICAgY2VsbFRlbXBsYXRlOiAkdGVtcGxhdGVDYWNoZS5nZXQoXCJpZFRlbXBsYXRlLmh0bWxcIilcbiAgICAgICAgfSxcbiAgICAgICAgeyBmaWVsZDogJyRzZXJ2aWNlVXJsJyxcbiAgICAgICAgICBkaXNwbGF5TmFtZTogJ0FkZHJlc3MnLFxuICAgICAgICAgIGNlbGxUZW1wbGF0ZTogJHRlbXBsYXRlQ2FjaGUuZ2V0KFwicG9ydGFsQWRkcmVzcy5odG1sXCIpXG4gICAgICAgIH0sXG4gICAgICAgIHsgZmllbGQ6ICckcG9kQ291bnQnLFxuICAgICAgICAgIGRpc3BsYXlOYW1lOiAnUG9kcycsXG4gICAgICAgICAgY2VsbFRlbXBsYXRlOiAkdGVtcGxhdGVDYWNoZS5nZXQoXCJwb2RDb3VudHNBbmRMaW5rVGVtcGxhdGUuaHRtbFwiKSxcbiAgICAgICAgICBjdXN0b21Tb3J0RmllbGQ6IChmaWVsZCkgPT4ge1xuICAgICAgICAgICAgLy8gbmVlZCB0byBjb25jYXQgYWxsIHRoZSBwb2QgY291bnRlcnNcbiAgICAgICAgICAgIHZhciByZWFkeSA9IGZpZWxkLiRwb2RDb3VudGVycy5yZWFkeSB8fCAwO1xuICAgICAgICAgICAgdmFyIHZhbGlkID0gZmllbGQuJHBvZENvdW50ZXJzLnZhbGlkIHx8IDA7XG4gICAgICAgICAgICB2YXIgd2FpdGluZyA9IGZpZWxkLiRwb2RDb3VudGVycy53YWl0aW5nIHx8IDA7XG4gICAgICAgICAgICB2YXIgZXJyb3IgPSBmaWVsZC4kcG9kQ291bnRlcnMuZXJyb3IgfHwgMDtcbiAgICAgICAgICAgIHJldHVybiByZWFkeSArIHZhbGlkICsgd2FpdGluZyArIGVycm9yO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgeyBmaWVsZDogJyRzZWxlY3RvclRleHQnLFxuICAgICAgICAgIGRpc3BsYXlOYW1lOiAnU2VsZWN0b3InLFxuICAgICAgICAgIGNlbGxUZW1wbGF0ZTogJHRlbXBsYXRlQ2FjaGUuZ2V0KFwic2VsZWN0b3JUZW1wbGF0ZS5odG1sXCIpXG4gICAgICAgIH0sXG4gICAgICAgIHsgZmllbGQ6ICckbGFiZWxzVGV4dCcsXG4gICAgICAgICAgZGlzcGxheU5hbWU6ICdMYWJlbHMnLFxuICAgICAgICAgIGNlbGxUZW1wbGF0ZTogJHRlbXBsYXRlQ2FjaGUuZ2V0KFwibGFiZWxUZW1wbGF0ZS5odG1sXCIpXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9O1xuXG4gICAgS3ViZXJuZXRlcy5pbml0U2hhcmVkKCRzY29wZSwgJGxvY2F0aW9uLCAkaHR0cCwgJHRpbWVvdXQsICRyb3V0ZVBhcmFtcywgS3ViZXJuZXRlc01vZGVsLCBLdWJlcm5ldGVzU3RhdGUsIEt1YmVybmV0ZXNBcGlVUkwpO1xuXG4gICAgJHNjb3BlLmRlbGV0ZVByb21wdCA9IChzZWxlY3RlZCkgPT4ge1xuICAgICAgaWYgKGFuZ3VsYXIuaXNTdHJpbmcoc2VsZWN0ZWQpKSB7XG4gICAgICAgIHNlbGVjdGVkID0gW3tcbiAgICAgICAgICBpZDogc2VsZWN0ZWRcbiAgICAgICAgfV07XG4gICAgICB9XG4gICAgICBVSS5tdWx0aUl0ZW1Db25maXJtQWN0aW9uRGlhbG9nKDxVSS5NdWx0aUl0ZW1Db25maXJtQWN0aW9uT3B0aW9ucz57XG4gICAgICAgIGNvbGxlY3Rpb246IHNlbGVjdGVkLFxuICAgICAgICBpbmRleDogJ21ldGFkYXRhLm5hbWUnLFxuICAgICAgICBvbkNsb3NlOiAocmVzdWx0OmJvb2xlYW4pID0+IHtcbiAgICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgICBmdW5jdGlvbiBkZWxldGVTZWxlY3RlZChzZWxlY3RlZDpBcnJheTxLdWJlUG9kPiwgbmV4dDpLdWJlUG9kKSB7XG4gICAgICAgICAgICAgIGlmIChuZXh0KSB7XG4gICAgICAgICAgICAgICAgbG9nLmRlYnVnKFwiZGVsZXRpbmc6IFwiLCBnZXROYW1lKG5leHQpKTtcbiAgICAgICAgICAgICAgICBLdWJlcm5ldGVzU2VydmljZXMuZGVsZXRlKHtcbiAgICAgICAgICAgICAgICAgIGlkOiBnZXROYW1lKG5leHQpXG4gICAgICAgICAgICAgICAgfSwgdW5kZWZpbmVkLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICBsb2cuZGVidWcoXCJkZWxldGVkOiBcIiwgZ2V0TmFtZShuZXh0KSk7XG4gICAgICAgICAgICAgICAgICBkZWxldGVTZWxlY3RlZChzZWxlY3RlZCwgc2VsZWN0ZWQuc2hpZnQoKSk7XG4gICAgICAgICAgICAgICAgfSwgKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgICBsb2cuZGVidWcoXCJFcnJvciBkZWxldGluZzogXCIsIGVycm9yKTtcbiAgICAgICAgICAgICAgICAgIGRlbGV0ZVNlbGVjdGVkKHNlbGVjdGVkLCBzZWxlY3RlZC5zaGlmdCgpKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVsZXRlU2VsZWN0ZWQoc2VsZWN0ZWQsIHNlbGVjdGVkLnNoaWZ0KCkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgdGl0bGU6ICdEZWxldGUgc2VydmljZXM/JyxcbiAgICAgICAgYWN0aW9uOiAnVGhlIGZvbGxvd2luZyBzZXJ2aWNlcyB3aWxsIGJlIGRlbGV0ZWQ6JyxcbiAgICAgICAgb2tUZXh0OiAnRGVsZXRlJyxcbiAgICAgICAgb2tDbGFzczogJ2J0bi1kYW5nZXInLFxuICAgICAgICBjdXN0b206IFwiVGhpcyBvcGVyYXRpb24gaXMgcGVybWFuZW50IG9uY2UgY29tcGxldGVkIVwiLFxuICAgICAgICBjdXN0b21DbGFzczogXCJhbGVydCBhbGVydC13YXJuaW5nXCJcbiAgICAgIH0pLm9wZW4oKTtcbiAgICB9O1xuXG4gIH1dKTtcbn1cbiIsIi8vLyA8cmVmZXJlbmNlIHBhdGg9XCIuLi8uLi9pbmNsdWRlcy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJrdWJlcm5ldGVzSGVscGVycy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJrdWJlcm5ldGVzUGx1Z2luLnRzXCIvPlxuXG5tb2R1bGUgS3ViZXJuZXRlcyB7XG5cbiAgLy8gY29udHJvbGxlciBmb3IgdGhlIHN0YXR1cyBpY29uIGNlbGxcbiAgZXhwb3J0IHZhciBQb2RTdGF0dXMgPSBjb250cm9sbGVyKFwiUG9kU3RhdHVzXCIsIFtcIiRzY29wZVwiLCAoJHNjb3BlKSA9PiB7XG4gICAgJHNjb3BlLnN0YXR1c01hcHBpbmcgPSAodGV4dCkgPT4ge1xuICAgICAgcmV0dXJuIHN0YXR1c1RleHRUb0Nzc0NsYXNzKHRleHQpO1xuICAgIH1cbiAgfV0pO1xuXG4gIF9tb2R1bGUuY29udHJvbGxlcihcIkt1YmVybmV0ZXMuVGVybUNvbnRyb2xsZXJcIiwgKCRzY29wZSwgVGVybWluYWxTZXJ2aWNlKSA9PiB7XG4gICAgJHNjb3BlLmNhbkNvbm5lY3RUbyA9IChjb250YWluZXIpID0+IHtcbiAgICAgIGlmIChjb250YWluZXIuc2VjdXJpdHlDb250ZXh0ICYmIGNvbnRhaW5lci5zZWN1cml0eUNvbnRleHQucHJpdmlsZWdlZCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgJHNjb3BlLm9wZW5UZXJtaW5hbCA9IChzZWxmTGluaywgY29udGFpbmVyTmFtZSkgPT4ge1xuICAgICAgdmFyIGlkID0gVGVybWluYWxTZXJ2aWNlLm5ld1Rlcm1pbmFsKHNlbGZMaW5rLCBjb250YWluZXJOYW1lKTtcbiAgICAgIGxvZy5kZWJ1ZyhcIkNyZWF0ZWQgdGVybWluYWwsIGlkOiBcIiwgaWQpO1xuICAgIH1cbiAgfSk7XG5cbiAgLy8gY29udHJvbGxlciB0aGF0IGRlYWxzIHdpdGggdGhlIGxhYmVscyBwZXIgcG9kXG4gIGV4cG9ydCB2YXIgTGFiZWxzID0gY29udHJvbGxlcihcIkxhYmVsc1wiLCBbXCIkc2NvcGVcIiwgXCIkbG9jYXRpb25cIiwgKCRzY29wZSwgJGxvY2F0aW9uKSA9PiB7XG4gICAgJHNjb3BlLmxhYmVscyA9IFtdO1xuICAgIHZhciBsYWJlbEtleVdlaWdodHMgPSB7XG4gICAgICBcIm5hbWVcIjogMSxcbiAgICAgIFwicmVwbGljYXRpb25Db250cm9sbGVyXCI6IDIsXG4gICAgICBcImdyb3VwXCI6IDNcbiAgICB9O1xuICAgICRzY29wZS4kd2F0Y2goJ2VudGl0eScsIChuZXdWYWx1ZSwgb2xkVmFsdWUpID0+IHtcbiAgICAgIGlmIChuZXdWYWx1ZSkge1xuICAgICAgICAvLyBsb2cuZGVidWcoXCJsYWJlbHM6IFwiLCBuZXdWYWx1ZSk7XG4gICAgICAgIC8vIG1hc3NhZ2UgdGhlIGxhYmVscyBhIGJpdFxuICAgICAgICAkc2NvcGUubGFiZWxzID0gW107XG4gICAgICAgIGFuZ3VsYXIuZm9yRWFjaChDb3JlLnBhdGhHZXQoJHNjb3BlLmVudGl0eSwgW1wibWV0YWRhdGFcIiwgXCJsYWJlbHNcIl0pLCAodmFsdWUsIGtleSkgPT4ge1xuICAgICAgICAgIGlmIChrZXkgPT09ICdmYWJyaWM4Jykge1xuICAgICAgICAgICAgLy8gVE9ETyBub3Qgc3VyZSB3aGF0IHRoaXMgaXMgZm9yLCB0aGUgY29udGFpbmVyIHR5cGU/XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgICRzY29wZS5sYWJlbHMucHVzaCh7XG4gICAgICAgICAgICBrZXk6IGtleSxcbiAgICAgICAgICAgIHRpdGxlOiB2YWx1ZVxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICAvLyAgbGV0cyBzb3J0IGJ5IGtleSBidXQgbGV0cyBtYWtlIHN1cmUgdGhhdCB3ZSB3ZWlnaHQgY2VydGFpbiBsYWJlbHMgc28gdGhleSBhcmUgZmlyc3RcbiAgICAgICAgJHNjb3BlLmxhYmVscyA9ICRzY29wZS5sYWJlbHMuc29ydCgoYSwgYikgPT4ge1xuICAgICAgICAgIGZ1bmN0aW9uIGdldFdlaWdodChrZXkpIHtcbiAgICAgICAgICAgIHJldHVybiBsYWJlbEtleVdlaWdodHNba2V5XSB8fCAxMDAwO1xuICAgICAgICAgIH1cbiAgICAgICAgICB2YXIgbjEgPSBhW1wia2V5XCJdO1xuICAgICAgICAgIHZhciBuMiA9IGJbXCJrZXlcIl07XG4gICAgICAgICAgdmFyIHcxID0gZ2V0V2VpZ2h0KG4xKTtcbiAgICAgICAgICB2YXIgdzIgPSBnZXRXZWlnaHQobjIpO1xuICAgICAgICAgIHZhciBkaWZmID0gdzEgLSB3MjtcbiAgICAgICAgICBpZiAoZGlmZiA8IDApIHtcbiAgICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGRpZmYgPiAwKSB7XG4gICAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKG4xICYmIG4yKSB7XG4gICAgICAgICAgICBpZiAobjEgPiBuMikge1xuICAgICAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobjEgPCBuMikge1xuICAgICAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKG4xID09PSBuMikge1xuICAgICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobjEpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgICRzY29wZS5oYW5kbGVDbGljayA9IChlbnRpdHksIGxhYmVsVHlwZTpzdHJpbmcsIHZhbHVlKSA9PiB7XG4gICAgICAvLyBsb2cuZGVidWcoXCJoYW5kbGVDbGljaywgZW50aXR5OiBcIiwgZW50aXR5LCBcIiBrZXk6IFwiLCBsYWJlbFR5cGUsIFwiIHZhbHVlOiBcIiwgdmFsdWUpO1xuICAgICAgdmFyIGZpbHRlclRleHRTZWN0aW9uID0gbGFiZWxUeXBlICsgXCI9XCIgKyB2YWx1ZS50aXRsZTtcbiAgICAgICRzY29wZS4kZW1pdCgnbGFiZWxGaWx0ZXJVcGRhdGUnLCBmaWx0ZXJUZXh0U2VjdGlvbik7XG4gICAgfTtcblxuICAgICRzY29wZS5sYWJlbENsYXNzID0gY29udGFpbmVyTGFiZWxDbGFzcztcbiAgfV0pO1xuXG59XG4iLCIvLy8gPHJlZmVyZW5jZSBwYXRoPVwiLi4vLi4vaW5jbHVkZXMudHNcIi8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwia3ViZXJuZXRlc0hlbHBlcnMudHNcIi8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwia3ViZXJuZXRlc1BsdWdpbi50c1wiLz5cblxubW9kdWxlIEt1YmVybmV0ZXMge1xuXG4gIF9tb2R1bGUuZGlyZWN0aXZlKFwiaGF3dGlvVGFic1wiLCAoKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRlbXBsYXRlVXJsOiBLdWJlcm5ldGVzLnRlbXBsYXRlUGF0aCArICd0YWJzLmh0bWwnXG4gICAgfTtcbiAgfSk7XG59XG4iLCIvLy8gPHJlZmVyZW5jZSBwYXRoPVwia3ViZXJuZXRlc1BsdWdpbi50c1wiLz5cblxubW9kdWxlIEt1YmVybmV0ZXMge1xuICBleHBvcnQgdmFyIFRlbXBsYXRlQ29udHJvbGxlciA9IGNvbnRyb2xsZXIoXCJUZW1wbGF0ZUNvbnRyb2xsZXJcIiwgW1xuICAgIFwiJHNjb3BlXCIsIFwiJGxvY2F0aW9uXCIsIFwiJGh0dHBcIiwgXCIkdGltZW91dFwiLCBcIiRyb3V0ZVBhcmFtc1wiLCBcIm1hcmtlZFwiLCBcIiR0ZW1wbGF0ZUNhY2hlXCIsIFwiJG1vZGFsXCIsIFwiS3ViZXJuZXRlc01vZGVsXCIsIFwiS3ViZXJuZXRlc1N0YXRlXCIsIFwiS3ViZXJuZXRlc0FwaVVSTFwiLFxuICAgICgkc2NvcGUsICRsb2NhdGlvbiwgJGh0dHAsICR0aW1lb3V0LCAkcm91dGVQYXJhbXMsIG1hcmtlZCwgJHRlbXBsYXRlQ2FjaGUsICRtb2RhbCwgS3ViZXJuZXRlc01vZGVsLCBLdWJlcm5ldGVzU3RhdGUsIEt1YmVybmV0ZXNBcGlVUkwpID0+IHtcbiAgICB2YXIgbW9kZWwgPSAkc2NvcGUubW9kZWwgPSBLdWJlcm5ldGVzTW9kZWw7XG4gICAgJHNjb3BlLmZpbHRlclRleHQgPSAkbG9jYXRpb24uc2VhcmNoKClbXCJxXCJdO1xuXG4gICAgJHNjb3BlLndhdGNoID0gd2F0Y2hlc1tXYXRjaFR5cGVzLlRFTVBMQVRFU107XG5cbiAgICAkc2NvcGUudGFyZ2V0TmFtZXNwYWNlID0gJHJvdXRlUGFyYW1zLnRhcmdldE5hbWVzcGFjZTtcbiAgICBpbml0U2hhcmVkKCRzY29wZSwgJGxvY2F0aW9uLCAkaHR0cCwgJHRpbWVvdXQsICRyb3V0ZVBhcmFtcywgS3ViZXJuZXRlc01vZGVsLCBLdWJlcm5ldGVzU3RhdGUsIEt1YmVybmV0ZXNBcGlVUkwpO1xuXG4gICAgcmVsb2FkRGF0YUlmTm9XYXRjaCgpO1xuXG5cbiAgICAkc2NvcGUuJHdhdGNoQ29sbGVjdGlvbignbW9kZWwubmFtZXNwYWNlcycsICgpID0+IHtcbiAgICAgIGlmICghJHNjb3BlLnRhcmdldE5hbWVzcGFjZSkge1xuICAgICAgICAkc2NvcGUudGFyZ2V0TmFtZXNwYWNlID0gbW9kZWwuY3VycmVudE5hbWVzcGFjZSgpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdmFyIHJldHVyblRvID0gbmV3IFVSSSgkbG9jYXRpb24uc2VhcmNoKClbJ3JldHVyblRvJ10gfHwgJy9rdWJlcm5ldGVzL2FwcHMnKTtcblxuICAgIGZ1bmN0aW9uIGdvQmFjaygpIHtcbiAgICAgICRsb2NhdGlvbi5wYXRoKHJldHVyblRvLnBhdGgoKSkuc2VhcmNoKHJldHVyblRvLnF1ZXJ5KHRydWUpKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXRBbm5vdGF0aW9ucyhvYmopIHtcbiAgICAgIHJldHVybiBDb3JlLnBhdGhHZXQob2JqLCBbJ21ldGFkYXRhJywgJ2Fubm90YXRpb25zJ10pO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldFZhbHVlRm9yKG9iaiwga2V5KSB7XG4gICAgICB2YXIgYW5ub3RhdGlvbnMgPSBnZXRBbm5vdGF0aW9ucyhvYmopO1xuICAgICAgaWYgKCFhbm5vdGF0aW9ucykge1xuICAgICAgICByZXR1cm4gXCJcIjtcbiAgICAgIH1cbiAgICAgIHZhciBuYW1lID0gZ2V0TmFtZShvYmopO1xuICAgICAgaWYgKG5hbWUpIHtcbiAgICAgICAgdmFyIGZ1bGxLZXkgPSBcImZhYnJpYzguXCIgKyBuYW1lICsgXCIvXCIgKyBrZXk7XG4gICAgICAgIHZhciBhbnN3ZXIgPSBhbm5vdGF0aW9uc1tmdWxsS2V5XTtcbiAgICAgICAgaWYgKGFuc3dlcikge1xuICAgICAgICAgIHJldHVybiBhbnN3ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHZhciBrZXk6IGFueSA9IF8uZmluZChfLmtleXMoYW5ub3RhdGlvbnMpLCAoazogc3RyaW5nKSA9PiBfLmVuZHNXaXRoKGssIGtleSkpO1xuICAgICAgaWYgKGtleSkge1xuICAgICAgICByZXR1cm4gYW5ub3RhdGlvbnNba2V5XTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBcIlwiO1xuICAgICAgfVxuICAgIH1cblxuICAgICRzY29wZS5jYW5jZWwgPSAoKSA9PiB7XG4gICAgICBpZiAoJHNjb3BlLmZvcm1Db25maWcpIHtcbiAgICAgICAgZGVsZXRlICRzY29wZS5mb3JtQ29uZmlnO1xuICAgICAgICBkZWxldGUgJHNjb3BlLmVudGl0eTtcbiAgICAgICAgJHNjb3BlLm9iamVjdHMgPSB1bmRlZmluZWQ7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGdvQmFjaygpO1xuICAgIH1cblxuICAgIC8qXG4gICAgJHNjb3BlLiR3YXRjaCgnbW9kZWwudGVtcGxhdGVzLmxlbmd0aCcsIChuZXdWYWx1ZSkgPT4ge1xuICAgICAgaWYgKG5ld1ZhbHVlID09PSAwKSB7XG4gICAgICAgIGdvQmFjaygpO1xuICAgICAgfVxuICAgIH0pO1xuICAgICovXG5cbiAgICAkc2NvcGUuZmlsdGVyVGVtcGxhdGVzID0gKHRlbXBsYXRlKSA9PiB7XG4gICAgICBpZiAoQ29yZS5pc0JsYW5rKCRzY29wZS5maWx0ZXJUZXh0KSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBfLmNvbnRhaW5zKGFuZ3VsYXIudG9Kc29uKHRlbXBsYXRlKSwgJHNjb3BlLmZpbHRlclRleHQudG9Mb3dlckNhc2UoKSk7XG4gICAgfTtcblxuICAgICRzY29wZS5vcGVuRnVsbERlc2NyaXB0aW9uID0gKHRlbXBsYXRlKSA9PiB7XG4gICAgICB2YXIgdGV4dCA9IG1hcmtlZChnZXRWYWx1ZUZvcih0ZW1wbGF0ZSwgJ2Rlc2NyaXB0aW9uJykgfHwgJ05vIGRlc2NyaXB0aW9uJyk7XG4gICAgICB2YXIgbW9kYWwgPSAkbW9kYWwub3Blbih7XG4gICAgICAgIHRlbXBsYXRlVXJsOiBVcmxIZWxwZXJzLmpvaW4odGVtcGxhdGVQYXRoLCAndGVtcGxhdGVEZXNjcmlwdGlvbi5odG1sJyksXG4gICAgICAgIGNvbnRyb2xsZXI6IFsnJHNjb3BlJywgJyRtb2RhbEluc3RhbmNlJywgKCRzY29wZSwgJG1vZGFsSW5zdGFuY2UpID0+IHtcbiAgICAgICAgICAkc2NvcGUudGV4dCA9IHRleHQsXG4gICAgICAgICAgJHNjb3BlLm9rID0gKCkgPT4ge1xuICAgICAgICAgICAgbW9kYWwuY2xvc2UoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1dXG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgJHNjb3BlLmdldERlc2NyaXB0aW9uID0gKHRlbXBsYXRlKSA9PiB7XG4gICAgICB2YXIgYW5zd2VyOmFueSA9ICQobWFya2VkKGdldFZhbHVlRm9yKHRlbXBsYXRlLCAnZGVzY3JpcHRpb24nKSB8fCAnTm8gZGVzY3JpcHRpb24nKSk7XG4gICAgICB2YXIgdGV4dERlZmF1bHQgPSBhbnN3ZXIuaHRtbCgpO1xuICAgICAgdmFyIG1heExlbmd0aCA9IDIwMDtcbiAgICAgIGlmICh0ZXh0RGVmYXVsdC5sZW5ndGggPiBtYXhMZW5ndGgpIHtcbiAgICAgICAgdmFyIHRydW5jYXRlZCA9ICQudHJpbSh0ZXh0RGVmYXVsdCkuc3Vic3RyaW5nKDAsIG1heExlbmd0aCkuc3BsaXQoJyAnKS5zbGljZSgwLCAtMSkuam9pbignICcpO1xuICAgICAgICBhbnN3ZXIuaHRtbCh0cnVuY2F0ZWQgKyAnLi4uJyk7XG4gICAgICAgIGFuc3dlci5hcHBlbmQoJHRlbXBsYXRlQ2FjaGUuZ2V0KCd0cnVuY2F0ZWREZXNjcmlwdGlvblRhZy5odG1sJykpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGFuc3dlci5odG1sKCk7XG4gICAgfTtcblxuICAgICRzY29wZS5nZXRJY29uVXJsID0gKHRlbXBsYXRlKSA9PiB7XG4gICAgICByZXR1cm4gZ2V0VmFsdWVGb3IodGVtcGxhdGUsICdpY29uVXJsJykgfHwgZGVmYXVsdEljb25Vcmw7XG4gICAgfTtcblxuICAgICRzY29wZS5kZXBsb3lUZW1wbGF0ZSA9ICh0ZW1wbGF0ZSkgPT4ge1xuICAgICAgbG9nLmRlYnVnKFwiVGVtcGxhdGUgcGFyYW1ldGVyczogXCIsIHRlbXBsYXRlLnBhcmFtZXRlcnMpO1xuICAgICAgbG9nLmRlYnVnKFwiVGVtcGxhdGUgb2JqZWN0czogXCIsIHRlbXBsYXRlLm9iamVjdHMpO1xuICAgICAgbG9nLmRlYnVnKFwiVGVtcGxhdGUgYW5ub3RhdGlvbnM6IFwiLCB0ZW1wbGF0ZS5tZXRhZGF0YS5hbm5vdGF0aW9ucyk7XG4gICAgICB2YXIgdGVtcGxhdGVBbm5vdGF0aW9ucyA9IHRlbXBsYXRlLm1ldGFkYXRhLmFubm90YXRpb25zO1xuICAgICAgaWYgKHRlbXBsYXRlQW5ub3RhdGlvbnMpIHtcbiAgICAgICAgXy5mb3JFYWNoKHRlbXBsYXRlLm9iamVjdHMsIChvYmplY3Q6YW55KSA9PiB7XG4gICAgICAgICAgdmFyIGFubm90YXRpb25zID0gb2JqZWN0Lm1ldGFkYXRhLmFubm90YXRpb25zIHx8IHt9O1xuICAgICAgICAgIHZhciBuYW1lID0gZ2V0TmFtZShvYmplY3QpO1xuICAgICAgICAgIHZhciBtYXRjaGVzID0gXy5maWx0ZXIoXy5rZXlzKHRlbXBsYXRlQW5ub3RhdGlvbnMpLCAoa2V5KSA9PiBrZXkubWF0Y2goJy4nICsgbmFtZSArICcvJykpO1xuICAgICAgICAgIG1hdGNoZXMuZm9yRWFjaCgobWF0Y2gpID0+IHtcbiAgICAgICAgICAgIGlmICghKG1hdGNoIGluIGFubm90YXRpb25zKSkge1xuICAgICAgICAgICAgICBhbm5vdGF0aW9uc1ttYXRjaF0gPSB0ZW1wbGF0ZUFubm90YXRpb25zW21hdGNoXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgICBvYmplY3QubWV0YWRhdGEuYW5ub3RhdGlvbnMgPSBhbm5vdGF0aW9ucztcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICB2YXIgcm91dGVTZXJ2aWNlTmFtZSA9IDxzdHJpbmc+IHVuZGVmaW5lZDtcbiAgICAgIHZhciBzZXJ2aWNlID0gXy5maW5kKHRlbXBsYXRlLm9iamVjdHMsIChvYmopID0+IHtcbiAgICAgICAgaWYgKGdldEtpbmQob2JqKSA9PT0gXCJTZXJ2aWNlXCIpIHtcbiAgICAgICAgICB2YXIgcG9ydHMgPSBnZXRQb3J0cyhvYmopO1xuICAgICAgICAgIGlmIChwb3J0cyAmJiBwb3J0cy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgaWYgKHNlcnZpY2UpIHtcbiAgICAgICAgcm91dGVTZXJ2aWNlTmFtZSA9IGdldE5hbWUoc2VydmljZSk7XG4gICAgICB9XG4gICAgICBsb2cuZGVidWcoXCJTZXJ2aWNlOiBcIiwgc2VydmljZSk7XG4gICAgICBpZiAoKCFyb3V0ZVNlcnZpY2VOYW1lIHx8ICFpc09wZW5TaGlmdCkgJiYgKCF0ZW1wbGF0ZS5wYXJhbWV0ZXJzIHx8IHRlbXBsYXRlLnBhcmFtZXRlcnMubGVuZ3RoID09PSAwKSkge1xuICAgICAgICBsb2cuZGVidWcoXCJObyBwYXJhbWV0ZXJzIHJlcXVpcmVkLCBkZXBsb3lpbmcgb2JqZWN0c1wiKTtcbiAgICAgICAgYXBwbHlPYmplY3RzKHRlbXBsYXRlLm9iamVjdHMpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB2YXIgZm9ybUNvbmZpZyA9IHtcbiAgICAgICAgc3R5bGU6IEhhd3Rpb0Zvcm1zLkZvcm1TdHlsZS5TVEFOREFSRCxcbiAgICAgICAgaGlkZUxlZ2VuZDogdHJ1ZSxcbiAgICAgICAgcHJvcGVydGllczogPGFueT4ge31cbiAgICAgIH07XG4gICAgICB2YXIgcGFyYW1zID0gdGVtcGxhdGUucGFyYW1ldGVycztcbiAgICAgIF8uZm9yRWFjaChwYXJhbXMsIChwYXJhbTphbnkpID0+IHtcbiAgICAgICAgdmFyIHByb3BlcnR5ID0gPGFueT4ge307XG4gICAgICAgIHByb3BlcnR5LmxhYmVsID0gcGFyYW0ubmFtZS50aXRsZWl6ZSgpO1xuICAgICAgICBwcm9wZXJ0eS5kZXNjcmlwdGlvbiA9IHBhcmFtLmRlc2NyaXB0aW9uO1xuICAgICAgICBwcm9wZXJ0eS5kZWZhdWx0ID0gcGFyYW0udmFsdWU7XG4gICAgICAgIC8vIFRPRE8sIGRvIHBhcmFtZXRlcnMgc3VwcG9ydCB0eXBlcz9cbiAgICAgICAgcHJvcGVydHkudHlwZSA9ICdzdHJpbmcnO1xuICAgICAgICBmb3JtQ29uZmlnLnByb3BlcnRpZXNbcGFyYW0ubmFtZV0gPSBwcm9wZXJ0eTtcbiAgICAgIH0pO1xuICAgICAgaWYgKHJvdXRlU2VydmljZU5hbWUgJiYgaXNPcGVuU2hpZnQpIHtcbiAgICAgICAgZm9ybUNvbmZpZy5wcm9wZXJ0aWVzLmNyZWF0ZVJvdXRlID0ge1xuICAgICAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgICBkZWZhdWx0OiB0cnVlLFxuICAgICAgICAgIGxhYmVsOiBcIkNyZWF0ZSBSb3V0ZVwiXG4gICAgICAgIH07XG4vKlxuICAgICAgICBmb3JtQ29uZmlnLnByb3BlcnRpZXMucm91dGVOYW1lID0ge1xuICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgIGxhYmVsOiAnUm91dGUgTmFtZScsXG4gICAgICAgICAgZGVmYXVsdDogcm91dGVTZXJ2aWNlTmFtZSxcbiAgICAgICAgICAnY29udHJvbC1ncm91cC1hdHRyaWJ1dGVzJzoge1xuICAgICAgICAgICAgJ25nLXNob3cnOiAnZW50aXR5LmNyZWF0ZVJvdXRlJ1xuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiovXG4gICAgICAgIGZvcm1Db25maWcucHJvcGVydGllcy5yb3V0ZVNlcnZpY2VOYW1lID0ge1xuICAgICAgICAgIHR5cGU6ICdoaWRkZW4nLFxuICAgICAgICAgIGRlZmF1bHQ6IHJvdXRlU2VydmljZU5hbWVcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBuYW1lc3BhY2UgPSBjdXJyZW50S3ViZXJuZXRlc05hbWVzcGFjZSgpO1xuICAgICAgICAvLyBUT0RPIHN0b3JlIHRoaXMgaW4gbG9jYWxTdG9yYWdlIVxuICAgICAgICB2YXIgZG9tYWluID0gXCJ2YWdyYW50LmY4XCI7XG4gICAgICAgIHZhciBkZWZhdWx0Um91dGVIb3N0U3VmZml4ID0gJy4nICsgKG5hbWVzcGFjZSA9PT0gXCJkZWZhdWx0XCIgPyBcIlwiIDogbmFtZXNwYWNlICsgXCIuXCIpICsgZG9tYWluO1xuICAgICAgICBmb3JtQ29uZmlnLnByb3BlcnRpZXMucm91dGVIb3N0bmFtZSA9IHtcbiAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICBkZWZhdWx0OiBkZWZhdWx0Um91dGVIb3N0U3VmZml4LFxuICAgICAgICAgIGxhYmVsOiBcIlJvdXRlIGhvc3QgbmFtZSBzdWZmaXhcIixcbiAgICAgICAgICAnY29udHJvbC1ncm91cC1hdHRyaWJ1dGVzJzoge1xuICAgICAgICAgICAgJ25nLXNob3cnOiAnZW50aXR5LmNyZWF0ZVJvdXRlJ1xuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgICRzY29wZS5lbnRpdHkgPSA8YW55PiB7fTtcbiAgICAgICRzY29wZS5mb3JtQ29uZmlnID0gZm9ybUNvbmZpZztcbiAgICAgICRzY29wZS5vYmplY3RzID0gdGVtcGxhdGUub2JqZWN0cztcbiAgICAgIGxvZy5kZWJ1ZyhcIkZvcm0gY29uZmlnOiBcIiwgZm9ybUNvbmZpZyk7XG4gICAgfTtcblxuICAgIGZ1bmN0aW9uIHN1YnN0aXR1dGUoc3RyLCBkYXRhKSB7XG4gICAgICByZXR1cm4gc3RyLnJlcGxhY2UoL1xcJHtcXHcqfS9nLCAobWF0Y2gpID0+IHtcbiAgICAgICAgdmFyIGtleSA9IG1hdGNoLnJlcGxhY2UoL1xcJHsvLCAnJykucmVwbGFjZSgvfS8sICcnKS50cmltKCk7XG4gICAgICAgIHJldHVybiBkYXRhW2tleV0gfHwgbWF0Y2g7XG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgJHNjb3BlLnN1YnN0aXR1dGVBbmREZXBsb3lUZW1wbGF0ZSA9ICgpID0+IHtcbiAgICAgIHZhciBvYmplY3RzID0gJHNjb3BlLm9iamVjdHM7XG4gICAgICB2YXIgb2JqZWN0c1RleHQgPSBhbmd1bGFyLnRvSnNvbihvYmplY3RzLCB0cnVlKTtcbiAgICAgIC8vIHB1bGwgdGhlc2Ugb3V0IG9mIHRoZSBlbnRpdHkgb2JqZWN0IHNvIHRoZXkncmUgbm90IHVzZWQgaW4gc3Vic3RpdHV0aW9uc1xuICAgICAgdmFyIGNyZWF0ZVJvdXRlID0gJHNjb3BlLmVudGl0eS5jcmVhdGVSb3V0ZTtcbiAgICAgIHZhciByb3V0ZUhvc3RuYW1lU3VmZml4ID0gJHNjb3BlLmVudGl0eS5yb3V0ZUhvc3RuYW1lIHx8IFwiXCI7XG4gICAgICB2YXIgcm91dGVOYW1lID0gJHNjb3BlLmVudGl0eS5yb3V0ZU5hbWU7XG4gICAgICB2YXIgcm91dGVTZXJ2aWNlTmFtZSA9ICRzY29wZS5lbnRpdHkucm91dGVTZXJ2aWNlTmFtZTtcbiAgICAgIGRlbGV0ZSAkc2NvcGUuZW50aXR5LmNyZWF0ZVJvdXRlO1xuICAgICAgZGVsZXRlICRzY29wZS5lbnRpdHkucm91dGVIb3N0bmFtZTtcbiAgICAgIGRlbGV0ZSAkc2NvcGUuZW50aXR5LnJvdXRlTmFtZTtcbiAgICAgIGRlbGV0ZSAkc2NvcGUuZW50aXR5LnJvdXRlU2VydmljZU5hbWU7XG4gICAgICBvYmplY3RzVGV4dCA9IHN1YnN0aXR1dGUob2JqZWN0c1RleHQsICRzY29wZS5lbnRpdHkpO1xuICAgICAgb2JqZWN0cyA9IGFuZ3VsYXIuZnJvbUpzb24ob2JqZWN0c1RleHQpO1xuICAgICAgaWYgKGNyZWF0ZVJvdXRlKSB7XG4gICAgICAgIHZhciByb3V0ZXMgPSBbXTtcbiAgICAgICAgYW5ndWxhci5mb3JFYWNoKG9iamVjdHMsIChvYmplY3QpID0+IHtcbiAgICAgICAgICB2YXIga2luZCA9IG9iamVjdC5raW5kO1xuICAgICAgICAgIHZhciBuYW1lID0gZ2V0TmFtZShvYmplY3QpO1xuICAgICAgICAgIGlmIChuYW1lICYmIFwiU2VydmljZVwiID09PSBraW5kKSB7XG4gICAgICAgICAgICB2YXIgcm91dGVIb3N0bmFtZSA9IG5hbWUgKyByb3V0ZUhvc3RuYW1lU3VmZml4O1xuICAgICAgICAgICAgdmFyIHJvdXRlID0ge1xuICAgICAgICAgICAgICBraW5kOiBcIlJvdXRlXCIsXG4gICAgICAgICAgICAgIGFwaVZlcnNpb246IGRlZmF1bHRPU0FwaVZlcnNpb24sXG4gICAgICAgICAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgICAgICAgICAgbmFtZTogbmFtZSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgc3BlYzoge1xuICAgICAgICAgICAgICAgIGhvc3Q6IHJvdXRlSG9zdG5hbWUsXG4gICAgICAgICAgICAgICAgdG86IHtcbiAgICAgICAgICAgICAgICAgIGtpbmQ6IFwiU2VydmljZVwiLFxuICAgICAgICAgICAgICAgICAgbmFtZTogbmFtZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcm91dGVzLnB1c2gocm91dGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIG9iamVjdHMgPSBvYmplY3RzLmNvbmNhdChyb3V0ZXMpO1xuICAgICAgfVxuICAgICAgaWYgKCRzY29wZS50YXJnZXROYW1lc3BhY2UgIT09IG1vZGVsLmN1cnJlbnROYW1lc3BhY2UoKSkge1xuICAgICAgICAkc2NvcGUuJG9uKCdXYXRjaGVyTmFtZXNwYWNlQ2hhbmdlZCcsICgpID0+IHtcbiAgICAgICAgICBsb2cuZGVidWcoXCJOYW1lc3BhY2UgY2hhbmdlZFwiKTtcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHJlbG9hZERhdGFJZk5vV2F0Y2goKTtcbiAgICAgICAgICAgIGFwcGx5T2JqZWN0cyhvYmplY3RzKTtcbiAgICAgICAgICAgIENvcmUuJGFwcGx5KCRzY29wZSk7XG4gICAgICAgICAgfSwgNTAwKTtcbiAgICAgICAgfSk7XG4gICAgICAgIENvcmUubm90aWZpY2F0aW9uKCdpbmZvJywgXCJTd2l0Y2hpbmcgdG8gbmFtZXNwYWNlIFwiICsgJHNjb3BlLnRhcmdldE5hbWVzcGFjZSArIFwiIGFuZCBkZXBsb3lpbmcgdGVtcGxhdGVcIik7XG4gICAgICAgIG1vZGVsLmt1YmVybmV0ZXMuc2VsZWN0ZWROYW1lc3BhY2UgPSAkc2NvcGUudGFyZ2V0TmFtZXNwYWNlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYXBwbHlPYmplY3RzKG9iamVjdHMpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBmdW5jdGlvbiBhcHBseU9iamVjdHMob2JqZWN0cykge1xuICAgICAgXy5mb3JFYWNoKG9iamVjdHMsIChvYmplY3Q6YW55KSA9PiB7XG4gICAgICAgIGxvZy5kZWJ1ZyhcIk9iamVjdDogXCIsIG9iamVjdCk7XG4gICAgICAgIHVwZGF0ZU9yQ3JlYXRlT2JqZWN0KG9iamVjdCwgS3ViZXJuZXRlc01vZGVsKTtcbiAgICAgIH0pO1xuICAgICAgZ29CYWNrKCk7XG4gICAgfVxuXG4gICAgJHNjb3BlLmRlbGV0ZVRlbXBsYXRlID0gKHRlbXBsYXRlKSA9PiB7XG4gICAgICBVSS5tdWx0aUl0ZW1Db25maXJtQWN0aW9uRGlhbG9nKDxVSS5NdWx0aUl0ZW1Db25maXJtQWN0aW9uT3B0aW9ucz57XG4gICAgICAgIGNvbGxlY3Rpb246IFt0ZW1wbGF0ZV0sXG4gICAgICAgIGluZGV4OiAnbWV0YWRhdGEubmFtZScsXG4gICAgICAgIG9uQ2xvc2U6IChyZXN1bHQ6Ym9vbGVhbikgPT4ge1xuICAgICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICAgIEt1YmVybmV0ZXNNb2RlbFsndGVtcGxhdGVzUmVzb3VyY2UnXS5kZWxldGUoe1xuICAgICAgICAgICAgICBpZDogdGVtcGxhdGUubWV0YWRhdGEubmFtZVxuICAgICAgICAgICAgfSwgdW5kZWZpbmVkLCAoKSA9PiB7XG4gICAgICAgICAgICAgIEt1YmVybmV0ZXNNb2RlbFsndGVtcGxhdGVzUmVzb3VyY2UnXS5xdWVyeSgoZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgIEt1YmVybmV0ZXNNb2RlbC50ZW1wbGF0ZXMgPSBkYXRhLml0ZW1zO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sIChlcnJvcikgPT4ge1xuICAgICAgICAgICAgICBsb2cuZGVidWcoXCJFcnJvciBkZWxldGluZyB0ZW1wbGF0ZTogXCIsIGVycm9yKTsgXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHRpdGxlOiAnRGVsZXRlIFRlbXBsYXRlPycsXG4gICAgICAgIGFjdGlvbjogJ1RoZSBmb2xsb3dpbmcgdGVtcGxhdGUgd2lsbCBiZSBkZWxldGVkOicsXG4gICAgICAgIG9rVGV4dDogJ0RlbGV0ZScsXG4gICAgICAgIG9rQ2xhc3M6ICdidG4tZGFuZ2VyJyxcbiAgICAgICAgY3VzdG9tOiBcIlRoaXMgb3BlcmF0aW9uIGlzIHBlcm1hbmVudCBvbmNlIGNvbXBsZXRlZCFcIixcbiAgICAgICAgY3VzdG9tQ2xhc3M6IFwiYWxlcnQgYWxlcnQtd2FybmluZ1wiXG4gICAgICB9KS5vcGVuKCk7XG4gICAgfTtcblxuICAgIGZ1bmN0aW9uIHJlbG9hZERhdGFJZk5vV2F0Y2goKSB7XG4gICAgICBpZiAoISRzY29wZS53YXRjaCB8fCAhJHNjb3BlLndhdGNoLmNvbm5lY3RlZCkge1xuICAgICAgICAvLyBUT0RPIHJlZ2lzdGVyIGEgaGFuZGxlciBvZiBiYWQgd2F0Y2hlcyBzbyB3ZSBpbnZva2UgdGhpcyBpbiBhIHBvbGxpbmcgZm9ybSBhdXRvbWF0aWNhbGx5P1xuICAgICAgICBtb2RlbC50ZW1wbGF0ZXNSZXNvdXJjZS5xdWVyeSgocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICBpZiAocmVzcG9uc2UpIHtcbiAgICAgICAgICAgIHZhciBpdGVtcyA9IHJlc3BvbnNlLml0ZW1zO1xuICAgICAgICAgICAgbW9kZWwudGVtcGxhdGVzID0gaXRlbXM7XG4gICAgICAgICAgICBDb3JlLiRhcHBseSgkc2NvcGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XSk7XG59XG5cbiIsIi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJrdWJlcm5ldGVzUGx1Z2luLnRzXCIvPlxuXG5tb2R1bGUgS3ViZXJuZXRlcyB7XG4gIHZhciBsb2cgPSBMb2dnZXIuZ2V0KCdrdWJlcm5ldGVzLXdhdGNoZXInKTtcbiAgdmFyIGFwaVVybCA9IFVybEhlbHBlcnMuam9pbignYXBpJywgJ3YxJyk7XG5cbiAgdmFyIG5hbWVzcGFjZVR5cGUgPSBXYXRjaFR5cGVzLk5BTUVTUEFDRVM7XG5cbiAgdmFyIGs4c1R5cGVzID0gTmFtZXNwYWNlZFR5cGVzLms4c1R5cGVzO1xuICB2YXIgb3NUeXBlcyAgPSBOYW1lc3BhY2VkVHlwZXMub3NUeXBlcztcblxuICB2YXIgYmFzZVdhdGNoID0gPGFueT4ge1xuICAgIHVybDogPHN0cmluZz4gdW5kZWZpbmVkLFxuICAgIGNvbm5lY3RUaW1lOiA8TnVtYmVyPiB1bmRlZmluZWQsXG4gICAgb2JqZWN0czogPE9iamVjdE1hcD4ge30sXG4gICAgb2JqZWN0QXJyYXk6IDxBcnJheTxhbnk+PiBbXSxcbiAgICBjdXN0b21pemVyczogPEFycmF5PChvYmo6YW55KSA9PiB2b2lkPj5bXSxcbiAgICBvbkFkZEFjdGlvbnM6IDxBcnJheTwob2JqOmFueSkgPT4gdm9pZD4+IFtdLFxuICAgIG9uTW9kaWZpZWRBY3Rpb25zOiA8QXJyYXk8KG9iajphbnkpID0+IHZvaWQ+PiBbXSxcbiAgICBvbkRlbGV0ZWRBY3Rpb25zOiA8QXJyYXk8KG9iajphbnkpID0+IHZvaWQ+PiBbXSxcbiAgICBzb2NrZXQ6IDxXZWJTb2NrZXQ+IHVuZGVmaW5lZCxcbiAgICBjb25uZWN0ZWQ6IGZhbHNlXG4gIH1cblxuICB2YXIgbmFtZXNwYWNlV2F0Y2ggPSA8YW55PiBfLmFzc2lnbihfLmNsb25lRGVlcChiYXNlV2F0Y2gpLCB7XG4gICAgc2VsZWN0ZWQ6IHVuZGVmaW5lZCxcbiAgICBjb25uZWN0VGltZTogPE51bWJlcj4gdW5kZWZpbmVkLFxuICAgIHVybDogVXJsSGVscGVycy5qb2luKGFwaVVybCwgV2F0Y2hUeXBlcy5OQU1FU1BBQ0VTKSxcbiAgfSk7XG5cbiAgZXhwb3J0IHZhciB3YXRjaGVzID0gPGFueT4ge307XG4gIF8uZm9yRWFjaChrOHNUeXBlcywgKHR5cGUpID0+IHtcbiAgICB3YXRjaGVzW3R5cGVdID0gXy5hc3NpZ24oXy5jbG9uZURlZXAoYmFzZVdhdGNoKSwge1xuICAgICAgcHJlZml4OiAoKSA9PiBrdWJlcm5ldGVzQXBpUHJlZml4KCksXG4gICAgICB2YWxpZDogKCkgPT4gdHJ1ZVxuICAgIH0pO1xuICB9KTtcbiAgXy5mb3JFYWNoKG9zVHlwZXMsICh0eXBlKSA9PiB7XG4gICAgd2F0Y2hlc1t0eXBlXSA9IF8uYXNzaWduKF8uY2xvbmVEZWVwKGJhc2VXYXRjaCksIHtcbiAgICAgIHByZWZpeDogKCkgPT4gb3BlbnNoaWZ0QXBpUHJlZml4KCksXG4gICAgICB2YWxpZDogKCkgPT4gaXNPcGVuU2hpZnQgfHwgKHR5cGUgPT09IFwidGVtcGxhdGVzXCIgfHwgdHlwZSA9PT0gXCJidWlsZGNvbmZpZ3NcIilcbiAgICB9KTtcbiAgfSk7XG5cbiAgaGF3dGlvUGx1Z2luTG9hZGVyLnJlZ2lzdGVyUHJlQm9vdHN0cmFwVGFzayh7XG4gICAgbmFtZTogJ0t1YmVybmV0ZXNXYXRjaGVySW5pdCcsXG4gICAgZGVwZW5kczogWydoYXd0aW8tb2F1dGgnXSxcbiAgICB0YXNrOiAobmV4dCkgPT4ge1xuICAgICAgaXNPcGVuU2hpZnQgPSB0cnVlO1xuXG4gICAgICBmdW5jdGlvbiB3YXRjaE5hbWVzcGFjZXMoKSB7XG4gICAgICAgIHZhciB1cmkgPSBuZXcgVVJJKG1hc3RlckFwaVVybCgpKTtcbiAgICAgICAgdXJpLnBhdGgobmFtZXNwYWNlV2F0Y2gudXJsKTtcbiAgICAgICAgdmFyIHVybCA9IHVyaS50b1N0cmluZygpO1xuICAgICAgICBIYXd0aW9PQXV0aC5hdXRoZW50aWNhdGVkSHR0cFJlcXVlc3Qoe1xuICAgICAgICAgIHVybDogdXJpLnRvU3RyaW5nKClcbiAgICAgICAgfSkuZG9uZSgoZGF0YSkgPT4ge1xuICAgICAgICAgIF8uZm9yRWFjaChkYXRhLml0ZW1zLCAobmFtZXNwYWNlOmFueSkgPT4ge1xuICAgICAgICAgICAgaWYgKCFuYW1lc3BhY2UubWV0YWRhdGEudWlkKSB7XG4gICAgICAgICAgICAgIG5hbWVzcGFjZS5tZXRhZGF0YS51aWQgPSBuYW1lc3BhY2UubWV0YWRhdGEubmFtZXNwYWNlICsgJy8nICsgbmFtZXNwYWNlLm1ldGFkYXRhLm5hbWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBuYW1lc3BhY2VXYXRjaC5vYmplY3RzW25hbWVzcGFjZS5tZXRhZGF0YS51aWRdID0gbmFtZXNwYWNlO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIG5hbWVzcGFjZVdhdGNoLm9iamVjdEFycmF5Lmxlbmd0aCA9IDA7XG4gICAgICAgICAgXy5mb3JJbihuYW1lc3BhY2VXYXRjaC5vYmplY3RzLCAob2JqZWN0LCBrZXkpID0+IHtcbiAgICAgICAgICAgIG5hbWVzcGFjZVdhdGNoLm9iamVjdEFycmF5LnB1c2gob2JqZWN0KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBuZXh0KCk7XG4gICAgICAgIH0pLmZhaWwoKHhIciwgdGV4dFN0YXR1cywgZXJyb3JUaHJvd24pID0+IHtcbiAgICAgICAgICBsb2cud2Fybih0ZXh0U3RhdHVzLCBcIjogXCIsIGVycm9yVGhyb3duKTtcbiAgICAgICAgICBIYXd0aW9PQXV0aC5kb0xvZ291dCgpO1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuXG4gICAgICB2YXIgcm9vdFVyaSA9IG5ldyBVUkkobWFzdGVyQXBpVXJsKCkpO1xuICAgICAgcm9vdFVyaS5wYXRoKFwiL1wiKS5xdWVyeShcIlwiKTtcbiAgICAgIHZhciByb290VXJpVGV4dCA9IHJvb3RVcmkudG9TdHJpbmcoKTtcbiAgICAgIGxvZy5pbmZvKFwiQWJvdXQgdG8gcXVlcnkgcm9vdCBwYXRoczogXCIgKyBtYXN0ZXJBcGlVcmwoKSk7XG4gICAgICBIYXd0aW9PQXV0aC5hdXRoZW50aWNhdGVkSHR0cFJlcXVlc3Qoe1xuICAgICAgICB1cmw6IHJvb3RVcmlUZXh0XG4gICAgICB9KS5kb25lKChkYXRhKSA9PiB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgdmFyIHBhdGhzID0gZGF0YS5wYXRocztcbiAgICAgICAgICBpZiAocGF0aHMpIHtcbiAgICAgICAgICAgIGlzT3BlblNoaWZ0ID0gZmFsc2U7XG4gICAgICAgICAgICBhbmd1bGFyLmZvckVhY2gocGF0aHMsIChwYXRoKSA9PiB7XG4gICAgICAgICAgICAgIGlmIChhbmd1bGFyLmlzU3RyaW5nKHBhdGgpICYmIChwYXRoID09PSBcIi9vYXBpXCIgfHwgcGF0aCA9PT0gXCJvYXBpXCIpKSB7XG4gICAgICAgICAgICAgICAgaXNPcGVuU2hpZnQgPSB0cnVlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgbG9nLmluZm8oXCJpc09wZW5TaGlmdCBcIiArIGlzT3BlblNoaWZ0ICsgXCIgd2l0aCBwYXRocyBcIiArIHBhdGhzKTtcbiAgICAgICAgfVxuICAgICAgICB3YXRjaE5hbWVzcGFjZXMoKTtcbiAgICAgIH0pLmZhaWwoKHhIciwgdGV4dFN0YXR1cywgZXJyb3JUaHJvd24pID0+IHtcbiAgICAgICAgbG9nLndhcm4oXCJGYWlsZWQgdG8gZmluZCByb290IHBhdGhzOiBcIiArIHRleHRTdGF0dXMsIFwiOiBcIiwgZXJyb3JUaHJvd24pO1xuICAgICAgICB3YXRjaE5hbWVzcGFjZXMoKTtcbiAgICAgIH0pO1xuXG5cbiAgICB9XG4gIH0pO1xuXG4gIGV4cG9ydCBmdW5jdGlvbiBnZXRXU1VybCh3YXRjaFVybCwgdXNlckRldGFpbHMpIHtcbiAgICB2YXIgYXBpVXJsID0gbWFzdGVyQXBpVXJsKCk7XG4gICAgdmFyIHVyaTtcbiAgICBpZiAoIWFwaVVybCB8fCBhcGlVcmwgPT09IFwiL1wiKSB7XG4gICAgICAvLyBsZXRzIGF2b2lkIHVzaW5nIGEgcmVsYXRpdmUgcGF0aCBpZiBubyBtYXN0ZXIgdXJsIGlzIHNwZWNpZmllZFxuICAgICAgLy8gYXMgd2UgYXJlIHByb2JhYmx5IHNlcnZpbmcgdXAgc3RhdGljIGNvbnRlbnQgZnJvbSBpbnNpZGUgL2FwaS92MS9uYW1lc3BhY2VzL2RlZmF1bHQvc2VydmljZXMvZmFicmljOCBvciBzb21ldGhpbmcgbGlrZSB0aGF0XG4gICAgICB1cmkgPSBuZXcgVVJJKFVybEhlbHBlcnMuam9pbihhcGlVcmwsIHdhdGNoVXJsKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHVyaSA9IG5ldyBVUkkoYXBpVXJsKTtcbiAgICAgIHVyaS5wYXRoKHdhdGNoVXJsKTtcbiAgICB9XG4gICAgaWYgKHVyaS5wcm90b2NvbCgpID09PSBcImh0dHBzXCIpIHtcbiAgICAgIHVyaS5wcm90b2NvbCgnd3NzJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHVyaS5wcm90b2NvbCgnd3MnKTtcbiAgICB9XG4gICAgcmV0dXJuIHVyaTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZVdhdGNoKHR5cGUsIHdhdGNoLCB1c2VyRGV0YWlscywgJHNjb3BlLCBvbk1lc3NhZ2UgPSAoZXZlbnQpID0+IHt9LCBvbkNsb3NlID0gKGV2ZW50KSA9PiB7fSwgb25PcGVuID0gKGV2ZW50KSA9PiB7fSkge1xuICAgIHZhciB3YXRjaFVybCA9IHdhdGNoLnVybDtcbiAgICB2YXIgdXJpID0gZ2V0V1NVcmwod2F0Y2hVcmwsIHVzZXJEZXRhaWxzKTtcbiAgICB1cmkucXVlcnkoPGFueT4ge1xuICAgICAgd2F0Y2g6IHRydWUsXG4gICAgICBhY2Nlc3NfdG9rZW46IHVzZXJEZXRhaWxzLnRva2VuXG4gICAgfSk7XG4gICAgd2F0Y2gucmV0cmllcyA9IDA7XG4gICAgdmFyIG9uT3BlbkludGVybmFsID0gKGV2ZW50KSA9PiB7XG4gICAgICB3YXRjaC5yZXRyaWVzID0gMDtcbiAgICAgIHdhdGNoLmNvbm5lY3RUaW1lID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XG4gICAgICB3YXRjaC5jb25uZWN0ZWQgPSB0cnVlO1xuICAgICAgb25PcGVuKGV2ZW50KTtcbiAgICB9O1xuICAgIHZhciBvbk1lc3NhZ2VJbnRlcm5hbCA9IChldmVudCkgPT4ge1xuICAgICAgLy8gbG9nLmRlYnVnKHR5cGUsIFwiIG9ubWVzc2FnZTogXCIsIGV2ZW50KTtcbiAgICAgIHZhciBkYXRhID0gYW5ndWxhci5mcm9tSnNvbihldmVudC5kYXRhKTtcbiAgICAgIC8vbG9nLmRlYnVnKHR5cGUsIFwiIGRhdGE6IFwiLCBkYXRhKTtcbiAgICAgIHN3aXRjaCAoZGF0YS50eXBlKSB7XG4gICAgICAgIGNhc2UgV2F0Y2hBY3Rpb25zLkFEREVEOlxuICAgICAgICBjYXNlIFdhdGNoQWN0aW9ucy5NT0RJRklFRDpcbiAgICAgICAgICB2YXIgb2JqID0gZGF0YS5vYmplY3Q7XG4gICAgICAgICAgaWYgKHdhdGNoLmN1c3RvbWl6ZXJzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIF8uZm9yRWFjaCh3YXRjaC5jdXN0b21pemVycywgKGN1c3RvbWl6ZXI6KG9iajphbnkpID0+IHZvaWQpID0+IHtcbiAgICAgICAgICAgICAgY3VzdG9taXplcihvYmopO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICghZGF0YS5vYmplY3QubWV0YWRhdGEudWlkKSB7XG4gICAgICAgICAgICBkYXRhLm9iamVjdC5tZXRhZGF0YS51aWQgPSBkYXRhLm9iamVjdC5tZXRhZGF0YS5uYW1lc3BhY2UgKyAnLycgKyBkYXRhLm9iamVjdC5tZXRhZGF0YS5uYW1lO1xuICAgICAgICAgIH1cbiAgICAgICAgICB3YXRjaC5vYmplY3RzW2RhdGEub2JqZWN0Lm1ldGFkYXRhLnVpZF0gPSBkYXRhLm9iamVjdDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBXYXRjaEFjdGlvbnMuREVMRVRFRDpcbiAgICAgICAgICBkZWxldGUgd2F0Y2gub2JqZWN0c1tkYXRhLm9iamVjdC5tZXRhZGF0YS51aWRdO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGxvZy5pbmZvKFwiVW5rbm93biBldmVudCB0eXBlOiBcIiwgZGF0YS50eXBlKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB3YXRjaC5vYmplY3RBcnJheS5sZW5ndGggPSAwO1xuICAgICAgXy5mb3JJbih3YXRjaC5vYmplY3RzLCAob2JqZWN0LCB1aWQpID0+IHtcbiAgICAgICAgd2F0Y2gub2JqZWN0QXJyYXkucHVzaChvYmplY3QpO1xuICAgICAgfSk7XG4gICAgICBvbk1lc3NhZ2UoZGF0YSk7XG4gICAgICAvLyBleGVjdXRlIGFueSB3YXRjaCBhY3Rpb25zXG4gICAgICBzd2l0Y2ggKGRhdGEudHlwZSkge1xuICAgICAgICBjYXNlIFdhdGNoQWN0aW9ucy5BRERFRDpcbiAgICAgICAgICBfLmZvckVhY2god2F0Y2gub25BZGRBY3Rpb25zLCAoYWN0aW9uOmFueSkgPT4gYWN0aW9uKGRhdGEub2JqZWN0KSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgV2F0Y2hBY3Rpb25zLk1PRElGSUVEOlxuICAgICAgICAgIF8uZm9yRWFjaCh3YXRjaC5vbk1vZGlmaWVkQWN0aW9ucywgKGFjdGlvbjphbnkpID0+IGFjdGlvbihkYXRhLm9iamVjdCkpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFdhdGNoQWN0aW9ucy5ERUxFVEVEOlxuICAgICAgICAgIF8uZm9yRWFjaCh3YXRjaC5vbkRlbGV0ZWRBY3Rpb25zLCAoYWN0aW9uOmFueSkgPT4gYWN0aW9uKGRhdGEub2JqZWN0KSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBDb3JlLiRhcHBseSgkc2NvcGUpO1xuICAgIH07XG4gICAgdmFyIG9uQ2xvc2VJbnRlcm5hbCA9IChldmVudCkgPT4ge1xuICAgICAgd2F0Y2guY29ubmVjdGVkID0gZmFsc2U7XG4gICAgICBpZiAod2F0Y2gucmV0cmllcyA8IDMgJiYgd2F0Y2guY29ubmVjdFRpbWUgJiYgbmV3IERhdGUoKS5nZXRUaW1lKCkgLSB3YXRjaC5jb25uZWN0VGltZSA+IDUwMDApIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgd2F0Y2gucmV0cmllcyA9IHdhdGNoLnJldHJpZXMgKyAxO1xuICAgICAgICAgIGxvZy5kZWJ1ZyhcIndhdGNoIFwiLCB0eXBlLCBcIiBkaXNjb25uZWN0ZWQsIHJldHJ5ICNcIiwgd2F0Y2gucmV0cmllcyk7XG4gICAgICAgICAgdmFyIHdzID0gd2F0Y2guc29ja2V0ID0gbmV3IFdlYlNvY2tldCh1cmkudG9TdHJpbmcoKSk7XG4gICAgICAgICAgd3Mub25vcGVuID0gb25PcGVuSW50ZXJuYWw7XG4gICAgICAgICAgd3Mub25tZXNzYWdlID0gb25NZXNzYWdlSW50ZXJuYWw7XG4gICAgICAgICAgd3Mub25jbG9zZSA9IG9uQ2xvc2VJbnRlcm5hbDtcbiAgICAgICAgfSwgNTAwMCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvbkNsb3NlKGV2ZW50KTtcbiAgICAgIH1cbiAgICB9XG4gICAgdmFyIHdzID0gd2F0Y2guc29ja2V0ID0gbmV3IFdlYlNvY2tldCh1cmkudG9TdHJpbmcoKSk7XG4gICAgd3Mub25vcGVuID0gb25PcGVuSW50ZXJuYWw7XG4gICAgd3Mub25tZXNzYWdlID0gb25NZXNzYWdlSW50ZXJuYWw7XG4gICAgd3Mub25jbG9zZSA9IG9uQ2xvc2VJbnRlcm5hbDtcbiAgfVxuXG4gIC8qXG4gICAgIF9tb2R1bGUucnVuKFsnV2F0Y2hlclNlcnZpY2UnLCAnJHJvb3RTY29wZScsIChXYXRjaGVyU2VydmljZTpXYXRjaGVyU2VydmljZSwgJHJvb3RTY29wZSkgPT4ge1xuICAgICBsb2cuZGVidWcoXCJTdGFydGVkIHdhdGNoZXIgc2VydmljZVwiKTtcblxuLy9cdFx0S3ViZXJuZXRlcy5rZWVwUG9sbGluZ01vZGVsID0gZmFsc2U7XG5cbi8vIHNvbWUgdXNhZ2UgZXhhbXBsZXNcbi8vXHRcdFdhdGNoZXJTZXJ2aWNlLmFkZEN1c3RvbWl6ZXIoJ3BvZHMnLCAocG9kKSA9PiB7XG4vL1x0XHRcdHBvZC5Tb21lVmFsdWUgPSAnZm9vYmFyJztcbi8vXHRcdH0pO1xuLy9cdFx0JHJvb3RTY29wZS5wb2RzID0gV2F0Y2hlclNlcnZpY2UuZ2V0T2JqZWN0cygncG9kcycpO1xuLy9cdFx0JHJvb3RTY29wZS5wb2RNYXAgPSBXYXRjaGVyU2VydmljZS5nZXRPYmplY3RNYXAoJ3BvZHMnKTtcbi8vXG4vL1x0XHQkcm9vdFNjb3BlLiR3YXRjaENvbGxlY3Rpb24oJ3BvZHMnLCAobmV3VmFsdWUpID0+IHtcbi8vXHRcdCAgbG9nLmRlYnVnKFwicG9kcyBjaGFuZ2VkOiBcIiwgbmV3VmFsdWUpO1xuLy9cdFx0fSk7XG4vL1xuLy9cdFx0JHJvb3RTY29wZS4kd2F0Y2goJ3BvZE1hcCcsIChuZXdWYWx1ZSkgPT4ge1xuLy9cdFx0ICBsb2cuZGVidWcoXCJwb2QgbWFwIGNoYW5nZWQ6IFwiLCBuZXdWYWx1ZSk7XG4vL1x0XHR9LCB0cnVlKTtcbn1dKTtcbiAgICovXG5cbl9tb2R1bGUuc2VydmljZSgnV2F0Y2hlclNlcnZpY2UnLCBbJ3VzZXJEZXRhaWxzJywgJyRyb290U2NvcGUnLCAnJHRpbWVvdXQnLCAodXNlckRldGFpbHMsICRyb290U2NvcGUsICR0aW1lb3V0KSA9PiB7XG4gIHZhciBzZWxmID0gPGFueT4ge1xuICAgIGhhc1dlYlNvY2tldDogZmFsc2VcbiAgfTtcblxuICB0cnkge1xuICAgIGlmICghV2ViU29ja2V0KSAge1xuICAgICAgcmV0dXJuIHNlbGY7XG4gICAgfVxuICB9IGNhdGNoIChlcnIpIHtcbiAgICByZXR1cm4gc2VsZjtcbiAgfVxuXG4gIHNlbGYuc2V0TmFtZXNwYWNlID0gKG5hbWVzcGFjZTogc3RyaW5nKSA9PiB7XG4gICAgaWYgKG5hbWVzcGFjZSAhPT0gbmFtZXNwYWNlV2F0Y2guc2VsZWN0ZWQpIHtcbiAgICAgIGxvZy5kZWJ1ZyhcIk5hbWVzcGFjZSBjaGFuZ2VkLCBzaHV0dGluZyBkb3duIGV4aXN0aW5nIHdhdGNoZXNcIik7XG4gICAgICBfLmZvckluKHdhdGNoZXMsICh3YXRjaCwgdHlwZSkgPT4ge1xuICAgICAgICBpZiAod2F0Y2guc29ja2V0KSB7XG4gICAgICAgICAgd2F0Y2guc29ja2V0LmNsb3NlKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgbG9nLmRlYnVnKFwiU2V0dGluZyBuYW1lc3BhY2Ugd2F0Y2ggdG86IFwiLCBuYW1lc3BhY2UpO1xuICAgICAgbmFtZXNwYWNlV2F0Y2guc2VsZWN0ZWQgPSBuYW1lc3BhY2U7XG4gICAgICBpZiAoIW5hbWVzcGFjZSkge1xuICAgICAgICBkZWxldGUgbG9jYWxTdG9yYWdlW0NvbnN0YW50cy5OQU1FU1BBQ0VfU1RPUkFHRV9LRVldO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbG9jYWxTdG9yYWdlW0NvbnN0YW50cy5OQU1FU1BBQ0VfU1RPUkFHRV9LRVldID0gbmFtZXNwYWNlO1xuICAgICAgfVxuICAgICAgaWYgKG5hbWVzcGFjZSkge1xuICAgICAgICBfLmZvckluKHdhdGNoZXMsICh3YXRjaCwgdHlwZSkgPT4ge1xuICAgICAgICAgIC8vIHJlc2V0IHRoZSBvYmplY3QgcmF0aGVyIHRoYW4gcmUtYXNzaWduaW5nIHRoZW1cbiAgICAgICAgICAvLyBlbnN1cmVzIHRoYXQgYW55IHdhdGNoZXMgaW4gY29udHJvbGxlcnMgd29uJ3RcbiAgICAgICAgICAvLyBiZSB3YXRjaGluZyBhIHN0YWxlIG9iamVjdFxuICAgICAgICAgIGlmICh3YXRjaC52YWxpZCgpKSB7XG4gICAgICAgICAgICB3YXRjaC51cmwgPSBVcmxIZWxwZXJzLmpvaW4od2F0Y2gucHJlZml4KCksIEt1YmVybmV0ZXMubmFtZXNwYWNlUGF0aEZvcktpbmQodHlwZSwgbmFtZXNwYWNlKSk7XG4gICAgICAgICAgICB3YXRjaC5jb25uZWN0VGltZSA9IDxOdW1iZXI+IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIF8uZm9yRWFjaChfLmtleXMod2F0Y2gub2JqZWN0cyksICh1aWQpID0+IHtcbiAgICAgICAgICAgICAgXy5mb3JFYWNoKHdhdGNoLm9uRGVsZXRlZEFjdGlvbnMsIChhY3Rpb246YW55KSA9PiBhY3Rpb24od2F0Y2gub2JqZWN0c1t1aWRdKSk7XG4gICAgICAgICAgICAgIGRlbGV0ZSB3YXRjaC5vYmplY3RzW3VpZF07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHdhdGNoLm9iamVjdEFycmF5Lmxlbmd0aCA9IDA7XG4gICAgICAgICAgICB3YXRjaC5zb2NrZXQgPSA8V2ViU29ja2V0PiB1bmRlZmluZWQ7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgXy5mb3JJbih3YXRjaGVzLCAod2F0Y2gsIHR5cGUpID0+IHtcbiAgICAgICAgICBpZiAod2F0Y2gudmFsaWQoKSkge1xuICAgICAgICAgICAgY3JlYXRlV2F0Y2godHlwZSwgd2F0Y2gsIHVzZXJEZXRhaWxzLCAkcm9vdFNjb3BlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgJHJvb3RTY29wZS4kYnJvYWRjYXN0KFwiV2F0Y2hlck5hbWVzcGFjZUNoYW5nZWRcIiwgbmFtZXNwYWNlKTtcbiAgICB9XG4gIH07XG5cbiAgY3JlYXRlV2F0Y2goV2F0Y2hUeXBlcy5OQU1FU1BBQ0VTLCBuYW1lc3BhY2VXYXRjaCwgdXNlckRldGFpbHMsICRyb290U2NvcGUsIChldmVudCkgPT4ge1xuICAgIC8vIGxvZy5kZWJ1ZyhcIkdvdCBldmVudDogXCIsIGV2ZW50KTtcbiAgICBzd2l0Y2ggKGV2ZW50LnR5cGUpIHtcbiAgICAgIGNhc2UgV2F0Y2hBY3Rpb25zLkFEREVEOlxuICAgICAgY2FzZSBXYXRjaEFjdGlvbnMuTU9ESUZJRUQ6XG4gICAgICAgIGlmICghbmFtZXNwYWNlV2F0Y2guc2VsZWN0ZWQpIHtcbiAgICAgICAgICBzZWxmLnNldE5hbWVzcGFjZShldmVudC5vYmplY3QubWV0YWRhdGEubmFtZSk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFdhdGNoQWN0aW9ucy5ERUxFVEVEOlxuICAgICAgICB2YXIgbmV4dCA9IDxhbnk+IF8uZmlyc3QobmFtZXNwYWNlV2F0Y2gub2JqZWN0QXJyYXkpO1xuICAgICAgICBpZiAobmV4dCkge1xuICAgICAgICAgIHNlbGYuc2V0TmFtZXNwYWNlKG5leHQubWV0YWRhdGEubmFtZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc2VsZi5zZXROYW1lc3BhY2UodW5kZWZpbmVkKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGxvZy5kZWJ1ZyhcIlVua25vd24gbmFtZXNwYWNlIGV2ZW50IHR5cGU6IFwiLCBldmVudC50eXBlKTtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfSwgKGV2ZW50KSA9PiB7XG4gICAgbG9nLmRlYnVnKFwiTmFtZXNwYWNlIHdhdGNoIGNsb3NlZFwiKTtcbiAgICBzZWxmLnNldE5hbWVzcGFjZSh1bmRlZmluZWQpO1xuICB9KTtcblxuICBzZWxmLnNldE5hbWVzcGFjZShsb2NhbFN0b3JhZ2VbQ29uc3RhbnRzLk5BTUVTUEFDRV9TVE9SQUdFX0tFWV0gfHwgZGVmYXVsdE5hbWVzcGFjZSk7XG5cbiAgc2VsZi5oYXNXZWJTb2NrZXQgPSB0cnVlO1xuXG4gIHNlbGYuZ2V0TmFtZXNwYWNlID0gKCkgPT4gbmFtZXNwYWNlV2F0Y2guc2VsZWN0ZWQ7XG5cbiAgc2VsZi5hZGRDdXN0b21pemVyID0gKHR5cGU6IHN0cmluZywgY3VzdG9taXplcjogKG9iajphbnkpID0+IHZvaWQpID0+IHtcbiAgICBpZiAodHlwZSBpbiB3YXRjaGVzKSB7XG4gICAgICB3YXRjaGVzW3R5cGVdLmN1c3RvbWl6ZXJzLnB1c2goY3VzdG9taXplcik7XG4gICAgICBfLmZvckVhY2god2F0Y2hlc1t0eXBlXS5vYmplY3RBcnJheSwgKG9iaikgPT4gY3VzdG9taXplcihvYmopKTtcbiAgICB9XG4gIH1cblxuICBzZWxmLmdldFR5cGVzID0gKCkgPT4ge1xuICAgIHJldHVybiBrOHNUeXBlcy5jb25jYXQoW1dhdGNoVHlwZXMuTkFNRVNQQUNFU10pLmNvbmNhdChvc1R5cGVzKTtcbiAgfVxuXG4gIHNlbGYuZ2V0T2JqZWN0TWFwID0gKHR5cGU6IHN0cmluZykgPT4ge1xuICAgIGlmICh0eXBlID09PSBXYXRjaFR5cGVzLk5BTUVTUEFDRVMpIHtcbiAgICAgIHJldHVybiBuYW1lc3BhY2VXYXRjaC5vYmplY3RzO1xuICAgIH1cbiAgICBpZiAodHlwZSBpbiB3YXRjaGVzKSB7XG4gICAgICByZXR1cm4gd2F0Y2hlc1t0eXBlXS5vYmplY3RzO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIHNlbGYuZ2V0T2JqZWN0cyA9ICh0eXBlOnN0cmluZykgPT4ge1xuICAgIGlmICh0eXBlID09PSBXYXRjaFR5cGVzLk5BTUVTUEFDRVMpIHtcbiAgICAgIHJldHVybiBuYW1lc3BhY2VXYXRjaC5vYmplY3RBcnJheTtcbiAgICB9XG4gICAgaWYgKHR5cGUgaW4gd2F0Y2hlcykge1xuICAgICAgcmV0dXJuIHdhdGNoZXNbdHlwZV0ub2JqZWN0QXJyYXk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgc2VsZi5saXN0ZW5lcnMgPSA8QXJyYXk8KE9iamVjdE1hcCkgPT4gdm9pZD4+IFtdO1xuXG4gIHZhciB1cGRhdGVGdW5jdGlvbiA9ICgpID0+IHtcbiAgICBsb2cuZGVidWcoXCJPYmplY3RzIGNoYW5nZWQsIGZpcmluZyBsaXN0ZW5lcnNcIik7XG4gICAgdmFyIG9iamVjdHMgPSA8T2JqZWN0TWFwPnt9O1xuICAgIF8uZm9yRWFjaChzZWxmLmdldFR5cGVzKCksICh0eXBlOnN0cmluZykgPT4ge1xuICAgICAgb2JqZWN0c1t0eXBlXSA9IHNlbGYuZ2V0T2JqZWN0cyh0eXBlKTtcbiAgICB9KTtcbiAgICBfLmZvckVhY2goc2VsZi5saXN0ZW5lcnMsIChsaXN0ZW5lcjooT2JqZWN0TWFwKSA9PiB2b2lkKSA9PiB7XG4gICAgICBsaXN0ZW5lcihvYmplY3RzKTtcbiAgICB9KTtcbiAgfTtcblxuICB2YXIgZGVib3VuY2VkVXBkYXRlID0gXy5kZWJvdW5jZSh1cGRhdGVGdW5jdGlvbiwgNTAwLCB7IHRyYWlsaW5nOiB0cnVlIH0pO1xuXG4gIC8vIGxpc3RlbmVyIGdldHMgbm90aWZpZWQgYWZ0ZXIgYSBidW5jaCBvZiBjaGFuZ2VzIGhhdmUgb2NjdXJyZWRcbiAgc2VsZi5yZWdpc3Rlckxpc3RlbmVyID0gKGZuOihvYmplY3RzOk9iamVjdE1hcCkgPT4gdm9pZCkgPT4ge1xuICAgIHNlbGYubGlzdGVuZXJzLnB1c2goZm4pO1xuICAgIF8uZm9yRWFjaChzZWxmLmdldFR5cGVzKCksICh0eXBlKSA9PiB7XG4gICAgICBzZWxmLmFkZEFjdGlvbih0eXBlLCBXYXRjaEFjdGlvbnMuQU5ZLCBkZWJvdW5jZWRVcGRhdGUpXG4gICAgfSk7XG4gIH1cblxuICAvLyBmdW5jdGlvbiB0byB3YXRjaCBpbmRpdmlkdWFsIGFjdGlvbnMgb24gdGhlIGs4cyBvYmplY3RzXG4gIHNlbGYuYWRkQWN0aW9uID0gKHR5cGU6IHN0cmluZywgYWN0aW9uOiBzdHJpbmcsIGZuOiAob2JqOmFueSkgPT4gdm9pZCkgPT4ge1xuICAgIHZhciB3YXRjaCA9IDxhbnk+IHVuZGVmaW5lZDtcbiAgICBpZiAodHlwZSA9PT0gV2F0Y2hUeXBlcy5OQU1FU1BBQ0VTKSB7XG4gICAgICB3YXRjaCA9IG5hbWVzcGFjZVdhdGNoO1xuICAgIH0gZWxzZSB7XG4gICAgICB3YXRjaCA9IHdhdGNoZXNbdHlwZV07XG4gICAgfVxuICAgIGlmICh3YXRjaCkge1xuICAgICAgc3dpdGNoIChhY3Rpb24pIHtcbiAgICAgICAgY2FzZSBXYXRjaEFjdGlvbnMuQU5ZOlxuICAgICAgICAgIF8uZm9yRWFjaCh3YXRjaC5vYmplY3RBcnJheSwgKG9iaikgPT4gZm4ob2JqKSk7XG4gICAgICAgICAgd2F0Y2gub25BZGRBY3Rpb25zLnB1c2goZm4pO1xuICAgICAgICAgIHdhdGNoLm9uRGVsZXRlZEFjdGlvbnMucHVzaChmbik7XG4gICAgICAgICAgd2F0Y2gub25Nb2RpZmllZEFjdGlvbnMucHVzaChmbik7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgV2F0Y2hBY3Rpb25zLkFEREVEOlxuICAgICAgICAgIF8uZm9yRWFjaCh3YXRjaC5vYmplY3RBcnJheSwgKG9iaikgPT4gZm4ob2JqKSk7XG4gICAgICAgICAgd2F0Y2gub25BZGRBY3Rpb25zLnB1c2goZm4pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFdhdGNoQWN0aW9ucy5NT0RJRklFRDpcbiAgICAgICAgICB3YXRjaC5vbk1vZGlmaWVkQWN0aW9ucy5wdXNoKGZuKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBXYXRjaEFjdGlvbnMuREVMRVRFRDpcbiAgICAgICAgICB3YXRjaC5vbkRlbGV0ZWRBY3Rpb25zLnB1c2goZm4pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGxvZy5kZWJ1ZyhcIkF0dGVtcHRpbmcgdG8gYWRkIHVua25vd24gYWN0aW9uOiBcIiwgYWN0aW9uKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIHNlbGY7XG59XSk7XG59XG4iLCIvLy8gPHJlZmVyZW5jZSBwYXRoPVwia3ViZXJuZXRlc1BsdWdpbi50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJ3YXRjaGVyLnRzXCIvPlxuXG5tb2R1bGUgS3ViZXJuZXRlcyB7XG4gIF9tb2R1bGUuY29uZmlnKChrdWJlcm5ldGVzQ29udGFpbmVyU29ja2V0UHJvdmlkZXIpID0+IHtcbiAgICBrdWJlcm5ldGVzQ29udGFpbmVyU29ja2V0UHJvdmlkZXIuV2ViU29ja2V0RmFjdG9yeSA9IFwiQ3VzdG9tV2ViU29ja2V0c1wiO1xuICB9KTtcblxuICBfbW9kdWxlLmZhY3RvcnkoJ0N1c3RvbVdlYlNvY2tldHMnLCAodXNlckRldGFpbHM6YW55KSA9PiB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIEN1c3RvbVdlYlNvY2tldCh1cmwsIHByb3RvY29scykge1xuICAgICAgdmFyIHBhdGhzID0gdXJsLnNwbGl0KCc/Jyk7XG4gICAgICB2YXIgdXJsID0gZ2V0V1NVcmwocGF0aHNbMF0sIHVzZXJEZXRhaWxzKTtcbiAgICAgIHVybC5zZWFyY2gocGF0aHNbMV0gKyAnJmFjY2Vzc190b2tlbj0nICsgdXNlckRldGFpbHMudG9rZW4pO1xuICAgICAgbG9nLmRlYnVnKFwiVXNpbmcgd3MgdXJsOiBcIiwgdXJsLnRvU3RyaW5nKCkpO1xuICAgICAgcmV0dXJuIG5ldyBXZWJTb2NrZXQodXJsLnRvU3RyaW5nKCksIHByb3RvY29scyk7XG4gICAgfTtcbiAgfSk7XG5cbiAgX21vZHVsZS5zZXJ2aWNlKCdUZXJtaW5hbFNlcnZpY2UnLCAoJHJvb3RTY29wZSwgJGRvY3VtZW50LCAkY29tcGlsZSwgJHRlbXBsYXRlQ2FjaGUpID0+IHtcbiAgICB2YXIgYm9keSA9ICRkb2N1bWVudC5maW5kKCdib2R5Jyk7XG4gICAgZnVuY3Rpb24gcG9zaXRpb25UZXJtaW5hbHModGVybWluYWxzKSB7XG4gICAgICB2YXIgdG90YWwgPSBfLmtleXModGVybWluYWxzKS5sZW5ndGg7XG4gICAgICB2YXIgZGlzdCA9IChib2R5LndpZHRoKCkgLSAyMjUpIC8gdG90YWw7XG4gICAgICB2YXIgcG9zaXRpb24gPSA1O1xuICAgICAgYW5ndWxhci5mb3JFYWNoKHRlcm1pbmFscywgKHZhbHVlLCBrZXkpID0+IHtcbiAgICAgICAgdmFsdWUuZWwuY3NzKCdsZWZ0JywgcG9zaXRpb24gKyAncHgnKTtcbiAgICAgICAgcG9zaXRpb24gPSBwb3NpdGlvbiArIGRpc3Q7XG4gICAgICB9KTtcbiAgICB9XG4gICAgdmFyIHNlbGYgPSB7XG4gICAgICB0ZXJtaW5hbHM6IHt9LFxuICAgICAgbmV3VGVybWluYWw6IChwb2RMaW5rLCBjb250YWluZXJOYW1lKSA9PiB7XG4gICAgICAgIHZhciB0ZXJtaW5hbElkID0gVXJsSGVscGVycy5qb2luKHBvZExpbmssIGNvbnRhaW5lck5hbWUpO1xuICAgICAgICBpZiAodGVybWluYWxJZCBpbiBzZWxmLnRlcm1pbmFscykge1xuICAgICAgICAgIGxvZy5kZWJ1ZyhcIkFscmVhZHkgYSB0ZXJtaW5hbCB3aXRoIGlkOiBcIiwgdGVybWluYWxJZCk7XG4gICAgICAgICAgcmV0dXJuIHRlcm1pbmFsSWQ7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHNjb3BlID0gJHJvb3RTY29wZS4kbmV3KCk7XG4gICAgICAgIHNjb3BlLnBvZExpbmsgPSBwb2RMaW5rO1xuICAgICAgICBzY29wZS5jb250YWluZXJOYW1lID0gY29udGFpbmVyTmFtZTtcbiAgICAgICAgc2NvcGUuaWQgPSB0ZXJtaW5hbElkO1xuICAgICAgICB2YXIgdGVtcGxhdGUgPSAkdGVtcGxhdGVDYWNoZS5nZXQoVXJsSGVscGVycy5qb2luKHRlbXBsYXRlUGF0aCwgJ3Rlcm1TaGVsbC5odG1sJykpO1xuICAgICAgICB2YXIgZWwgPSAkKCRjb21waWxlKHRlbXBsYXRlKShzY29wZSkpO1xuICAgICAgICB2YXIgdGVybSA9IHtcbiAgICAgICAgICBzY29wZTogc2NvcGUsXG4gICAgICAgICAgZWw6IGVsXG4gICAgICAgIH07XG4gICAgICAgIGJvZHkuYXBwZW5kKGVsKTtcbiAgICAgICAgc2VsZi50ZXJtaW5hbHNbdGVybWluYWxJZF0gPSB0ZXJtO1xuICAgICAgICBwb3NpdGlvblRlcm1pbmFscyhzZWxmLnRlcm1pbmFscyk7XG4gICAgICAgIHJldHVybiB0ZXJtaW5hbElkO1xuICAgICAgfSxcbiAgICAgIGNsb3NlVGVybWluYWw6IChpZCkgPT4ge1xuICAgICAgICB2YXIgdGVybSA9IHNlbGYudGVybWluYWxzW2lkXTtcbiAgICAgICAgaWYgKHRlcm0pIHtcbiAgICAgICAgICB0ZXJtLmVsLnJlbW92ZSgpO1xuICAgICAgICAgIGRlbGV0ZSBzZWxmLnRlcm1pbmFsc1tpZF07XG4gICAgICAgICAgcG9zaXRpb25UZXJtaW5hbHMoc2VsZi50ZXJtaW5hbHMpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgcmFpc2VUZXJtaW5hbDogKGlkKSA9PiB7XG4gICAgICAgIGFuZ3VsYXIuZm9yRWFjaChzZWxmLnRlcm1pbmFscywgKHZhbHVlLCBrZXkpID0+IHtcbiAgICAgICAgICBpZiAoa2V5ID09PSBpZCkge1xuICAgICAgICAgICAgdmFsdWUuZWwuY3NzKCd6LWluZGV4JywgJzQwMDAnKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFsdWUuZWwuY3NzKCd6LWluZGV4JywgJzMwMDAnKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH07XG4gICAgcmV0dXJuIHNlbGY7XG4gIH0pO1xuXG4gIF9tb2R1bGUuZGlyZWN0aXZlKCd0ZXJtaW5hbFdpbmRvdycsICgkY29tcGlsZSwgVGVybWluYWxTZXJ2aWNlKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHJlc3RyaWN0OiAnQScsXG4gICAgICBzY29wZTogZmFsc2UsXG4gICAgICBsaW5rOiAoc2NvcGUsIGVsZW1lbnQsIGF0dHIpID0+IHtcbiAgICAgICAgc2NvcGUuY2xvc2UgPSAoKSA9PiB7XG4gICAgICAgICAgVGVybWluYWxTZXJ2aWNlLmNsb3NlVGVybWluYWwoc2NvcGUuaWQpO1xuICAgICAgICB9O1xuICAgICAgICBzY29wZS5yYWlzZSA9ICgpID0+IHtcbiAgICAgICAgICBUZXJtaW5hbFNlcnZpY2UucmFpc2VUZXJtaW5hbChzY29wZS5pZCk7XG4gICAgICAgIH07XG4gICAgICAgIHNjb3BlLm1pbmltaXplID0gKCkgPT4ge1xuICAgICAgICAgIGVsZW1lbnQudG9nZ2xlQ2xhc3MoJ21pbmltaXplZCcpO1xuICAgICAgICB9XG4gICAgICAgIGxvZy5kZWJ1ZyhcImVsZW1lbnQ6IFwiLCBlbGVtZW50KTtcbiAgICAgICAgdmFyIGJvZHkgPSBlbGVtZW50LmZpbmQoJy50ZXJtaW5hbC1ib2R5Jyk7XG4gICAgICAgIGxvZy5kZWJ1ZyhcImJvZHk6IFwiLCBib2R5KTtcbiAgICAgICAgYm9keS5hcHBlbmQoJGNvbXBpbGUoJzxrdWJlcm5ldGVzLWNvbnRhaW5lci10ZXJtaW5hbCBwb2Q9XCJwb2RMaW5rXCIgY29udGFpbmVyPVwiY29udGFpbmVyTmFtZVwiPjwva3ViZXJuZXRlcy1jb250YWluZXItdGVybWluYWw+Jykoc2NvcGUpKTtcblxuXG4gICAgICB9XG4gICAgfTtcbiAgfSk7XG59XG5cbiJdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ==
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi93b3Jrc3BhY2UvamF2YS9oYXd0aW8ta3ViZXJuZXRlcy9pbmNsdWRlcy50cyIsIi93b3Jrc3BhY2UvamF2YS9oYXd0aW8ta3ViZXJuZXRlcy9kZXZlbG9wZXIvdHMvZGV2ZWxvcGVyRW5yaWNoZXJzLnRzIiwiL3dvcmtzcGFjZS9qYXZhL2hhd3Rpby1rdWJlcm5ldGVzL2RldmVsb3Blci90cy9kZXZlbG9wZXJIZWxwZXJzLnRzIiwiL3dvcmtzcGFjZS9qYXZhL2hhd3Rpby1rdWJlcm5ldGVzL2RldmVsb3Blci90cy9kZXZlbG9wZXJOYXZpZ2F0aW9uLnRzIiwiL3dvcmtzcGFjZS9qYXZhL2hhd3Rpby1rdWJlcm5ldGVzL2RldmVsb3Blci90cy9kZXZlbG9wZXJQbHVnaW4udHMiLCIvd29ya3NwYWNlL2phdmEvaGF3dGlvLWt1YmVybmV0ZXMva3ViZXJuZXRlcy90cy9rdWJlcm5ldGVzSW50ZXJmYWNlcy50cyIsIi93b3Jrc3BhY2UvamF2YS9oYXd0aW8ta3ViZXJuZXRlcy9rdWJlcm5ldGVzL3RzL2t1YmVybmV0ZXNIZWxwZXJzLnRzIiwiL3dvcmtzcGFjZS9qYXZhL2hhd3Rpby1rdWJlcm5ldGVzL2RldmVsb3Blci90cy9ob21lLnRzIiwiL3dvcmtzcGFjZS9qYXZhL2hhd3Rpby1rdWJlcm5ldGVzL2RldmVsb3Blci90cy9qZW5raW5zSm9iLnRzIiwiL3dvcmtzcGFjZS9qYXZhL2hhd3Rpby1rdWJlcm5ldGVzL2RldmVsb3Blci90cy9qZW5raW5zSm9icy50cyIsIi93b3Jrc3BhY2UvamF2YS9oYXd0aW8ta3ViZXJuZXRlcy9kZXZlbG9wZXIvdHMvamVua2luc0xvZy50cyIsIi93b3Jrc3BhY2UvamF2YS9oYXd0aW8ta3ViZXJuZXRlcy9kZXZlbG9wZXIvdHMvamVua2luc01ldHJpY3MudHMiLCIvd29ya3NwYWNlL2phdmEvaGF3dGlvLWt1YmVybmV0ZXMvZGV2ZWxvcGVyL3RzL25hdmJhci50cyIsIi93b3Jrc3BhY2UvamF2YS9oYXd0aW8ta3ViZXJuZXRlcy9kZXZlbG9wZXIvdHMvcGlwZWxpbmUudHMiLCIvd29ya3NwYWNlL2phdmEvaGF3dGlvLWt1YmVybmV0ZXMvZGV2ZWxvcGVyL3RzL3BpcGVsaW5lRGlyZWN0aXZlLnRzIiwiL3dvcmtzcGFjZS9qYXZhL2hhd3Rpby1rdWJlcm5ldGVzL2RldmVsb3Blci90cy9waXBlbGluZXMudHMiLCIvd29ya3NwYWNlL2phdmEvaGF3dGlvLWt1YmVybmV0ZXMvZGV2ZWxvcGVyL3RzL3Byb2plY3QudHMiLCIvd29ya3NwYWNlL2phdmEvaGF3dGlvLWt1YmVybmV0ZXMvZGV2ZWxvcGVyL3RzL3Byb2plY3RzLnRzIiwiL3dvcmtzcGFjZS9qYXZhL2hhd3Rpby1rdWJlcm5ldGVzL2RldmVsb3Blci90cy93b3Jrc3BhY2UudHMiLCIvd29ya3NwYWNlL2phdmEvaGF3dGlvLWt1YmVybmV0ZXMvZGV2ZWxvcGVyL3RzL3dvcmtzcGFjZXMudHMiLCIvd29ya3NwYWNlL2phdmEvaGF3dGlvLWt1YmVybmV0ZXMva3ViZXJuZXRlcy90cy9rdWJlcm5ldGVzUGx1Z2luLnRzIiwiL3dvcmtzcGFjZS9qYXZhL2hhd3Rpby1rdWJlcm5ldGVzL2t1YmVybmV0ZXMvdHMvYXBwcy50cyIsIi93b3Jrc3BhY2UvamF2YS9oYXd0aW8ta3ViZXJuZXRlcy9rdWJlcm5ldGVzL3RzL2JyZWFkY3J1bWJzLnRzIiwiL3dvcmtzcGFjZS9qYXZhL2hhd3Rpby1rdWJlcm5ldGVzL2t1YmVybmV0ZXMvdHMvYnVpbGQudHMiLCIvd29ya3NwYWNlL2phdmEvaGF3dGlvLWt1YmVybmV0ZXMva3ViZXJuZXRlcy90cy9idWlsZENvbmZpZy50cyIsIi93b3Jrc3BhY2UvamF2YS9oYXd0aW8ta3ViZXJuZXRlcy9rdWJlcm5ldGVzL3RzL2J1aWxkQ29uZmlnRWRpdC50cyIsIi93b3Jrc3BhY2UvamF2YS9oYXd0aW8ta3ViZXJuZXRlcy9rdWJlcm5ldGVzL3RzL2J1aWxkQ29uZmlncy50cyIsIi93b3Jrc3BhY2UvamF2YS9oYXd0aW8ta3ViZXJuZXRlcy9rdWJlcm5ldGVzL3RzL2J1aWxkTG9ncy50cyIsIi93b3Jrc3BhY2UvamF2YS9oYXd0aW8ta3ViZXJuZXRlcy9rdWJlcm5ldGVzL3RzL2J1aWxkcy50cyIsIi93b3Jrc3BhY2UvamF2YS9oYXd0aW8ta3ViZXJuZXRlcy9rdWJlcm5ldGVzL3RzL2Nvbm5lY3QudHMiLCIvd29ya3NwYWNlL2phdmEvaGF3dGlvLWt1YmVybmV0ZXMva3ViZXJuZXRlcy90cy9kZXBsb3ltZW50Q29uZmlnLnRzIiwiL3dvcmtzcGFjZS9qYXZhL2hhd3Rpby1rdWJlcm5ldGVzL2t1YmVybmV0ZXMvdHMvZGVwbG95bWVudENvbmZpZ3MudHMiLCIvd29ya3NwYWNlL2phdmEvaGF3dGlvLWt1YmVybmV0ZXMva3ViZXJuZXRlcy90cy9ldmVudHMudHMiLCIvd29ya3NwYWNlL2phdmEvaGF3dGlvLWt1YmVybmV0ZXMva3ViZXJuZXRlcy90cy9rdWJlcm5ldGVzTW9kZWwudHMiLCIvd29ya3NwYWNlL2phdmEvaGF3dGlvLWt1YmVybmV0ZXMva3ViZXJuZXRlcy90cy9ob3N0LnRzIiwiL3dvcmtzcGFjZS9qYXZhL2hhd3Rpby1rdWJlcm5ldGVzL2t1YmVybmV0ZXMvdHMvdXRpbEhlbHBlcnMudHMiLCIvd29ya3NwYWNlL2phdmEvaGF3dGlvLWt1YmVybmV0ZXMva3ViZXJuZXRlcy90cy9ob3N0cy50cyIsIi93b3Jrc3BhY2UvamF2YS9oYXd0aW8ta3ViZXJuZXRlcy9rdWJlcm5ldGVzL3RzL2ltYWdlUmVwb3NpdG9yaWVzLnRzIiwiL3dvcmtzcGFjZS9qYXZhL2hhd3Rpby1rdWJlcm5ldGVzL2t1YmVybmV0ZXMvdHMvc2NoZW1hLnRzIiwiL3dvcmtzcGFjZS9qYXZhL2hhd3Rpby1rdWJlcm5ldGVzL2t1YmVybmV0ZXMvdHMva3ViZXJuZXRlc1NjaGVtYS50cyIsIi93b3Jrc3BhY2UvamF2YS9oYXd0aW8ta3ViZXJuZXRlcy9rdWJlcm5ldGVzL3RzL2t1YmVybmV0ZXNTZXJ2aWNlcy50cyIsIi93b3Jrc3BhY2UvamF2YS9oYXd0aW8ta3ViZXJuZXRlcy9rdWJlcm5ldGVzL3RzL2t1YmVybmV0ZXNUb3BMZXZlbC50cyIsIi93b3Jrc3BhY2UvamF2YS9oYXd0aW8ta3ViZXJuZXRlcy9rdWJlcm5ldGVzL3RzL25hbWVzcGFjZS50cyIsIi93b3Jrc3BhY2UvamF2YS9oYXd0aW8ta3ViZXJuZXRlcy9rdWJlcm5ldGVzL3RzL292ZXJ2aWV3LnRzIiwiL3dvcmtzcGFjZS9qYXZhL2hhd3Rpby1rdWJlcm5ldGVzL2t1YmVybmV0ZXMvdHMvcGlwZWxpbmVzLnRzIiwiL3dvcmtzcGFjZS9qYXZhL2hhd3Rpby1rdWJlcm5ldGVzL2t1YmVybmV0ZXMvdHMvcG9kLnRzIiwiL3dvcmtzcGFjZS9qYXZhL2hhd3Rpby1rdWJlcm5ldGVzL2t1YmVybmV0ZXMvdHMvcG9kRWRpdC50cyIsIi93b3Jrc3BhY2UvamF2YS9oYXd0aW8ta3ViZXJuZXRlcy9rdWJlcm5ldGVzL3RzL3BvZHMudHMiLCIvd29ya3NwYWNlL2phdmEvaGF3dGlvLWt1YmVybmV0ZXMva3ViZXJuZXRlcy90cy9yZXBsaWNhdGlvbkNvbnRyb2xsZXIudHMiLCIvd29ya3NwYWNlL2phdmEvaGF3dGlvLWt1YmVybmV0ZXMva3ViZXJuZXRlcy90cy9yZXBsaWNhdGlvbkNvbnRyb2xsZXJFZGl0LnRzIiwiL3dvcmtzcGFjZS9qYXZhL2hhd3Rpby1rdWJlcm5ldGVzL2t1YmVybmV0ZXMvdHMvcmVwbGljYXRpb25Db250cm9sbGVycy50cyIsIi93b3Jrc3BhY2UvamF2YS9oYXd0aW8ta3ViZXJuZXRlcy9rdWJlcm5ldGVzL3RzL3NlcnZpY2UudHMiLCIvd29ya3NwYWNlL2phdmEvaGF3dGlvLWt1YmVybmV0ZXMva3ViZXJuZXRlcy90cy9zZXJ2aWNlRWRpdC50cyIsIi93b3Jrc3BhY2UvamF2YS9oYXd0aW8ta3ViZXJuZXRlcy9rdWJlcm5ldGVzL3RzL3NlcnZpY2VSZWdpc3RyeS50cyIsIi93b3Jrc3BhY2UvamF2YS9oYXd0aW8ta3ViZXJuZXRlcy9rdWJlcm5ldGVzL3RzL3NlcnZpY2VzLnRzIiwiL3dvcmtzcGFjZS9qYXZhL2hhd3Rpby1rdWJlcm5ldGVzL2t1YmVybmV0ZXMvdHMvc2hhcmVkQ29udHJvbGxlcnMudHMiLCIvd29ya3NwYWNlL2phdmEvaGF3dGlvLWt1YmVybmV0ZXMva3ViZXJuZXRlcy90cy90YWJzLnRzIiwiL3dvcmtzcGFjZS9qYXZhL2hhd3Rpby1rdWJlcm5ldGVzL2t1YmVybmV0ZXMvdHMvdGVtcGxhdGVzLnRzIiwiL3dvcmtzcGFjZS9qYXZhL2hhd3Rpby1rdWJlcm5ldGVzL2t1YmVybmV0ZXMvdHMvd2F0Y2hlci50cyIsIi93b3Jrc3BhY2UvamF2YS9oYXd0aW8ta3ViZXJuZXRlcy9rdWJlcm5ldGVzL3RzL3Rlcm0udHMiXSwibmFtZXMiOlsiRGV2ZWxvcGVyIiwiRGV2ZWxvcGVyLmVucmljaFdvcmtzcGFjZXMiLCJEZXZlbG9wZXIuZW5yaWNoV29ya3NwYWNlIiwiRGV2ZWxvcGVyLmFzRGF0ZSIsIkRldmVsb3Blci5lbnJpY2hKZW5raW5zSm9icyIsIkRldmVsb3Blci5lbnJpY2hKZW5raW5zSm9iIiwiRGV2ZWxvcGVyLmNyZWF0ZUJ1aWxkU3RhdHVzSWNvbkNsYXNzIiwiRGV2ZWxvcGVyLmNyZWF0ZUJ1aWxkU3RhdHVzQmFja2dyb3VuZENsYXNzIiwiRGV2ZWxvcGVyLmVucmljaEplbmtpbnNCdWlsZCIsIkRldmVsb3Blci5qZW5raW5zTGluayIsIkRldmVsb3Blci5mb3JnZVJlYWR5TGluayIsIkRldmVsb3Blci5lbnJpY2hKZW5raW5zUGlwZWxpbmVKb2IiLCJEZXZlbG9wZXIuZW5yaWNoSmVua2luc1N0YWdlcyIsIkRldmVsb3Blci5lbnJpY2hKZW5raW5zU3RhZ2UiLCJEZXZlbG9wZXIuaGFzT2JqZWN0Q2hhbmdlZCIsIkRldmVsb3Blci5sb2FkUHJvamVjdFZlcnNpb25zIiwiRGV2ZWxvcGVyLmxvYWRQcm9qZWN0UG9kQ291bnRlcnMiLCJEZXZlbG9wZXIuZGV2ZWxvcEJyZWFkY3J1bWIiLCJEZXZlbG9wZXIub3BlcmF0ZUJyZWFkY3J1bWIiLCJEZXZlbG9wZXIud29ya3NwYWNlTGluayIsIkRldmVsb3Blci5wcm9qZWN0TGluayIsIkRldmVsb3Blci5jcmVhdGVXb3Jrc3BhY2VzQnJlYWRjcnVtYnMiLCJEZXZlbG9wZXIuY3JlYXRlV29ya3NwYWNlc1N1Yk5hdkJhcnMiLCJEZXZlbG9wZXIuY3JlYXRlV29ya3NwYWNlQnJlYWRjcnVtYnMiLCJEZXZlbG9wZXIuY3JlYXRlRW52aXJvbm1lbnRCcmVhZGNydW1icyIsIkRldmVsb3Blci5jcmVhdGVQcm9qZWN0QnJlYWRjcnVtYnMiLCJEZXZlbG9wZXIuY3JlYXRlV29ya3NwYWNlU3ViTmF2QmFycyIsIkRldmVsb3Blci5jcmVhdGVCdWlsZHNMaW5rIiwiRGV2ZWxvcGVyLmNyZWF0ZVByb2plY3RTdWJOYXZCYXJzIiwiRGV2ZWxvcGVyLmNyZWF0ZVByb2plY3RTdWJOYXZCYXJzLmlzSmVua2luc0J1aWxkIiwiRGV2ZWxvcGVyLmNyZWF0ZUplbmtpbnNCcmVhZGNydW1icyIsIkRldmVsb3Blci5jcmVhdGVKZW5raW5zU3ViTmF2QmFycyIsIkRldmVsb3Blci5jcmVhdGVFbnZpcm9ubWVudFN1Yk5hdkJhcnMiLCJEZXZlbG9wZXIudHJpbVF1ZXJ5IiwiRGV2ZWxvcGVyLmFjdGl2YXRlQ3VycmVudCIsIkRldmVsb3Blci5wcm9jZXNzQ2hpbGRyZW4iLCJLdWJlcm5ldGVzIiwiS3ViZXJuZXRlcy5jb25zdHMiLCJLdWJlcm5ldGVzLmNvbnN0cy5jb25zdHJ1Y3RvciIsIkt1YmVybmV0ZXMuY29uc3RzLk5BTUVTUEFDRV9TVE9SQUdFX0tFWSIsIkt1YmVybmV0ZXMuV2F0Y2hUeXBlcyIsIkt1YmVybmV0ZXMuV2F0Y2hUeXBlcy5jb25zdHJ1Y3RvciIsIkt1YmVybmV0ZXMuV2F0Y2hUeXBlcy5FTkRQT0lOVFMiLCJLdWJlcm5ldGVzLldhdGNoVHlwZXMuRVZFTlRTIiwiS3ViZXJuZXRlcy5XYXRjaFR5cGVzLk5BTUVTUEFDRVMiLCJLdWJlcm5ldGVzLldhdGNoVHlwZXMuTk9ERVMiLCJLdWJlcm5ldGVzLldhdGNoVHlwZXMuUEVSU0lTVEVOVF9WT0xVTUVTIiwiS3ViZXJuZXRlcy5XYXRjaFR5cGVzLlBFUlNJU1RFTlRfVk9MVU1FX0NMQUlNUyIsIkt1YmVybmV0ZXMuV2F0Y2hUeXBlcy5QT0RTIiwiS3ViZXJuZXRlcy5XYXRjaFR5cGVzLlJFUExJQ0FUSU9OX0NPTlRST0xMRVJTIiwiS3ViZXJuZXRlcy5XYXRjaFR5cGVzLlJFU09VUkNFX1FVT1RBUyIsIkt1YmVybmV0ZXMuV2F0Y2hUeXBlcy5PQVVUSF9DTElFTlRTIiwiS3ViZXJuZXRlcy5XYXRjaFR5cGVzLlNFQ1JFVFMiLCJLdWJlcm5ldGVzLldhdGNoVHlwZXMuU0VSVklDRVMiLCJLdWJlcm5ldGVzLldhdGNoVHlwZXMuU0VSVklDRV9BQ0NPVU5UUyIsIkt1YmVybmV0ZXMuV2F0Y2hUeXBlcy5URU1QTEFURVMiLCJLdWJlcm5ldGVzLldhdGNoVHlwZXMuUk9VVEVTIiwiS3ViZXJuZXRlcy5XYXRjaFR5cGVzLkJVSUxEX0NPTkZJR1MiLCJLdWJlcm5ldGVzLldhdGNoVHlwZXMuQlVJTERTIiwiS3ViZXJuZXRlcy5XYXRjaFR5cGVzLkRFUExPWU1FTlRfQ09ORklHUyIsIkt1YmVybmV0ZXMuV2F0Y2hUeXBlcy5JTUFHRV9TVFJFQU1TIiwiS3ViZXJuZXRlcy5XYXRjaFR5cGVzLlBPTElDSUVTIiwiS3ViZXJuZXRlcy5XYXRjaFR5cGVzLlBPTElDWV9CSU5ESU5HUyIsIkt1YmVybmV0ZXMuV2F0Y2hUeXBlcy5QUk9KRUNUUyIsIkt1YmVybmV0ZXMuV2F0Y2hUeXBlcy5ST0xFX0JJTkRJTkdTIiwiS3ViZXJuZXRlcy5XYXRjaFR5cGVzLlJPTEVTIiwiS3ViZXJuZXRlcy5OYW1lc3BhY2VkVHlwZXMiLCJLdWJlcm5ldGVzLk5hbWVzcGFjZWRUeXBlcy5jb25zdHJ1Y3RvciIsIkt1YmVybmV0ZXMuTmFtZXNwYWNlZFR5cGVzLms4c1R5cGVzIiwiS3ViZXJuZXRlcy5OYW1lc3BhY2VkVHlwZXMub3NUeXBlcyIsIkt1YmVybmV0ZXMuV2F0Y2hBY3Rpb25zIiwiS3ViZXJuZXRlcy5XYXRjaEFjdGlvbnMuY29uc3RydWN0b3IiLCJLdWJlcm5ldGVzLldhdGNoQWN0aW9ucy5BTlkiLCJLdWJlcm5ldGVzLldhdGNoQWN0aW9ucy5BRERFRCIsIkt1YmVybmV0ZXMuV2F0Y2hBY3Rpb25zLk1PRElGSUVEIiwiS3ViZXJuZXRlcy5XYXRjaEFjdGlvbnMuREVMRVRFRCIsIkt1YmVybmV0ZXMua3ViZXJuZXRlc05hbWVzcGFjZVBhdGgiLCJLdWJlcm5ldGVzLmFwaVByZWZpeCIsIkt1YmVybmV0ZXMub3NBcGlQcmVmaXgiLCJLdWJlcm5ldGVzLm1hc3RlckFwaVVybCIsIkt1YmVybmV0ZXMua3ViZXJuZXRlc0FwaVByZWZpeCIsIkt1YmVybmV0ZXMub3BlbnNoaWZ0QXBpUHJlZml4IiwiS3ViZXJuZXRlcy5wcmVmaXhGb3JUeXBlIiwiS3ViZXJuZXRlcy5rdWJlcm5ldGVzQXBpVXJsIiwiS3ViZXJuZXRlcy5vcGVuc2hpZnRBcGlVcmwiLCJLdWJlcm5ldGVzLnJlc291cmNlc1VyaUZvcktpbmQiLCJLdWJlcm5ldGVzLnVyaVRlbXBsYXRlRm9yS3ViZXJuZXRlc0tpbmQiLCJLdWJlcm5ldGVzLm5hbWVzcGFjZVBhdGhGb3JLaW5kIiwiS3ViZXJuZXRlcy51cGRhdGVPckNyZWF0ZU9iamVjdCIsIkt1YmVybmV0ZXMuaW5qZWN0IiwiS3ViZXJuZXRlcy5jcmVhdGVSZXNvdXJjZSIsIkt1YmVybmV0ZXMuaW1hZ2VSZXBvc2l0b3JpZXNSZXN0VVJMIiwiS3ViZXJuZXRlcy5kZXBsb3ltZW50Q29uZmlnc1Jlc3RVUkwiLCJLdWJlcm5ldGVzLmJ1aWxkc1Jlc3RVUkwiLCJLdWJlcm5ldGVzLmJ1aWxkQ29uZmlnSG9va3NSZXN0VVJMIiwiS3ViZXJuZXRlcy5idWlsZENvbmZpZ3NSZXN0VVJMIiwiS3ViZXJuZXRlcy5yb3V0ZXNSZXN0VVJMIiwiS3ViZXJuZXRlcy50ZW1wbGF0ZXNSZXN0VVJMIiwiS3ViZXJuZXRlcy5nZXROYW1lc3BhY2UiLCJLdWJlcm5ldGVzLmdldExhYmVscyIsIkt1YmVybmV0ZXMuZ2V0TmFtZSIsIkt1YmVybmV0ZXMuZ2V0S2luZCIsIkt1YmVybmV0ZXMuZ2V0U2VsZWN0b3IiLCJLdWJlcm5ldGVzLmdldEhvc3QiLCJLdWJlcm5ldGVzLmdldFN0YXR1cyIsIkt1YmVybmV0ZXMuZ2V0UG9ydHMiLCJLdWJlcm5ldGVzLmdldENyZWF0aW9uVGltZXN0YW1wIiwiS3ViZXJuZXRlcy5pc0t1YmVybmV0ZXMiLCJLdWJlcm5ldGVzLmlzS3ViZXJuZXRlc1RlbXBsYXRlTWFuYWdlciIsIkt1YmVybmV0ZXMuaXNBcHBWaWV3IiwiS3ViZXJuZXRlcy5nZXRTdHJpcHBlZFBhdGhOYW1lIiwiS3ViZXJuZXRlcy5saW5rQ29udGFpbnMiLCJLdWJlcm5ldGVzLmlzTGlua0FjdGl2ZSIsIkt1YmVybmV0ZXMuc2V0SnNvbiIsIkt1YmVybmV0ZXMubGFiZWxzVG9TdHJpbmciLCJLdWJlcm5ldGVzLmluaXRTaGFyZWQiLCJLdWJlcm5ldGVzLmluaXRTaGFyZWQuaGFzU2VydmljZSIsIkt1YmVybmV0ZXMucmVhZHlQb2RDb3VudCIsIkt1YmVybmV0ZXMuc2VydmljZUxpbmtVcmwiLCJLdWJlcm5ldGVzLmNyZWF0ZVBvZENvdW50ZXJzIiwiS3ViZXJuZXRlcy5jb252ZXJ0S3ViZXJuZXRlc0pzb25Ub0l0ZW1zIiwiS3ViZXJuZXRlcy5pc1YxYmV0YTFPcjIiLCJLdWJlcm5ldGVzLmVudGl0eVBhZ2VMaW5rIiwiS3ViZXJuZXRlcy5yZXNvdXJjZUtpbmRUb1VyaVBhdGgiLCJLdWJlcm5ldGVzLmlzSWdub3JlTmFtZXNwYWNlS2luZCIsIkt1YmVybmV0ZXMua3ViZXJuZXRlc1VybEZvcktpbmQiLCJLdWJlcm5ldGVzLmt1YmVybmV0ZXNVcmxGb3JJdGVtS2luZCIsIkt1YmVybmV0ZXMua3ViZXJuZXRlc1Byb3h5VXJsRm9yU2VydmljZSIsIkt1YmVybmV0ZXMua3ViZXJuZXRlc1Byb3h5VXJsRm9yU2VydmljZUN1cnJlbnROYW1lc3BhY2UiLCJLdWJlcm5ldGVzLmJ1aWxkQ29uZmlnUmVzdFVybCIsIkt1YmVybmV0ZXMuZGVwbG95bWVudENvbmZpZ1Jlc3RVcmwiLCJLdWJlcm5ldGVzLmltYWdlUmVwb3NpdG9yeVJlc3RVcmwiLCJLdWJlcm5ldGVzLmJ1aWxkUmVzdFVybCIsIkt1YmVybmV0ZXMuYnVpbGRMb2dzUmVzdFVybCIsIkt1YmVybmV0ZXMucnVuQXBwIiwiS3ViZXJuZXRlcy5pc1J1bm5pbmciLCJLdWJlcm5ldGVzLnNlbGVjdG9yTWF0Y2hlcyIsIkt1YmVybmV0ZXMuZ2V0U2VydmljZVJlZ2lzdHJ5IiwiS3ViZXJuZXRlcy5raWJhbmFMb2dzTGluayIsIkt1YmVybmV0ZXMub3BlbkxvZ3NGb3JQb2RzIiwiS3ViZXJuZXRlcy5yZXNpemVDb250cm9sbGVyIiwiS3ViZXJuZXRlcy5zdGF0dXNUZXh0VG9Dc3NDbGFzcyIsIkt1YmVybmV0ZXMucG9kU3RhdHVzIiwiS3ViZXJuZXRlcy5pc1JlYWR5IiwiS3ViZXJuZXRlcy5jcmVhdGVBcHBWaWV3UG9kQ291bnRlcnMiLCJLdWJlcm5ldGVzLmNyZWF0ZUFwcFZpZXdTZXJ2aWNlVmlld3MiLCJLdWJlcm5ldGVzLmdpdFBhdGhUb1VybCIsIkt1YmVybmV0ZXMuYXNEYXRlIiwiS3ViZXJuZXRlcy5lbnJpY2hCdWlsZENvbmZpZyIsIkt1YmVybmV0ZXMuZW5yaWNoQnVpbGRDb25maWcuZGVmYXVsdFByb3BlcnRpZXNJZk5vdEV4aXN0IiwiS3ViZXJuZXRlcy5lbnJpY2hCdWlsZENvbmZpZy5kZWZhdWx0UHJvcGVydGllc0lmTm90RXhpc3RTdGFydHNXaXRoIiwiS3ViZXJuZXRlcy5lbnJpY2hCdWlsZENvbmZpZ3MiLCJLdWJlcm5ldGVzLmVucmljaEJ1aWxkcyIsIkt1YmVybmV0ZXMuZW5yaWNoQnVpbGQiLCJLdWJlcm5ldGVzLmVucmljaERlcGxveW1lbnRDb25maWciLCJLdWJlcm5ldGVzLmVucmljaERlcGxveW1lbnRDb25maWdzIiwiS3ViZXJuZXRlcy5lbnJpY2hFdmVudCIsIkt1YmVybmV0ZXMuZW5yaWNoRXZlbnRzIiwiS3ViZXJuZXRlcy5lbnJpY2hFdmVudHMuY2xlYXJFdmVudHMiLCJLdWJlcm5ldGVzLmVucmljaEV2ZW50cy51cGRhdGVFdmVudCIsIkt1YmVybmV0ZXMuZW5yaWNoSW1hZ2VSZXBvc2l0b3J5IiwiS3ViZXJuZXRlcy5lbnJpY2hJbWFnZVJlcG9zaXRvcmllcyIsIkt1YmVybmV0ZXMuY29udGFpbmVyTGFiZWxDbGFzcyIsIkt1YmVybmV0ZXMuaXNGb3JnZUVuYWJsZWQiLCJLdWJlcm5ldGVzLmN1cnJlbnRLdWJlcm5ldGVzTmFtZXNwYWNlIiwiS3ViZXJuZXRlcy5jb25maWd1cmVTY2hlbWEiLCJLdWJlcm5ldGVzLnRvUmF3SnNvbiIsIkRldmVsb3Blci51cGRhdGVEYXRhIiwiRGV2ZWxvcGVyLnVwZGF0ZUplbmtpbnNMaW5rIiwiRGV2ZWxvcGVyLnJlcGxhY2VDbHVzdGVySXBGdW5jdGlvbiIsIkRldmVsb3Blci5yZXBsYWNlQ2x1c3RlcklwRnVuY3Rpb24uY3JlYXRlUmVwbGFjZUZ1bmN0aW9uIiwiRGV2ZWxvcGVyLnJlcGxhY2VDbHVzdGVySXBGdW5jdGlvbi5hZGRSZXBsYWNlRm4iLCJEZXZlbG9wZXIucmVwbGFjZVRleHQiLCJEZXZlbG9wZXIuYmFyQ29sb3VyRm9yQnVpbGRSZXN1bHQiLCJEZXZlbG9wZXIudXBkYXRlQ2hhcnREYXRhIiwiRGV2ZWxvcGVyLnVwZGF0ZUVudmlyb25tZW50V2F0Y2giLCJEZXZlbG9wZXIuZGVsZXRlU2VsZWN0ZWQiLCJEZXZlbG9wZXIuZGVsZXRlRW50aXR5IiwiS3ViZXJuZXRlcy5hcHBNYXRjaGVzIiwiS3ViZXJuZXRlcy5hcHBSdW5uaW5nIiwiS3ViZXJuZXRlcy5kZWxldGVBcHAiLCJLdWJlcm5ldGVzLmRlbGV0ZUFwcC5kZWxldGVTZXJ2aWNlcyIsIkt1YmVybmV0ZXMuZGVsZXRlQXBwLmRlbGV0ZVJlcGxpY2F0aW9uQ29udHJvbGxlcnMiLCJLdWJlcm5ldGVzLmRlbGV0ZUFwcC5kZWxldGVQb2RzIiwiS3ViZXJuZXRlcy5kZWxldGVTZWxlY3RlZCIsIkt1YmVybmV0ZXMudXBkYXRlRGF0YSIsIkt1YmVybmV0ZXMuZGVsZXRlRW50aXR5IiwiS3ViZXJuZXRlcy5ieUlkIiwiS3ViZXJuZXRlcy5jcmVhdGVLZXkiLCJLdWJlcm5ldGVzLnBvcHVsYXRlS2V5IiwiS3ViZXJuZXRlcy5wb3B1bGF0ZUtleXMiLCJLdWJlcm5ldGVzLnNlbGVjdFBvZHMiLCJLdWJlcm5ldGVzLkt1YmVybmV0ZXNNb2RlbFNlcnZpY2UiLCJLdWJlcm5ldGVzLkt1YmVybmV0ZXNNb2RlbFNlcnZpY2UuY29uc3RydWN0b3IiLCJLdWJlcm5ldGVzLkt1YmVybmV0ZXNNb2RlbFNlcnZpY2UucmVwbGljYXRpb25Db250cm9sbGVycyIsIkt1YmVybmV0ZXMuS3ViZXJuZXRlc01vZGVsU2VydmljZS5uYW1lc3BhY2VzIiwiS3ViZXJuZXRlcy5LdWJlcm5ldGVzTW9kZWxTZXJ2aWNlLnNlcnZpY2VBcHBzIiwiS3ViZXJuZXRlcy5LdWJlcm5ldGVzTW9kZWxTZXJ2aWNlLiRrZWVwUG9sbGluZyIsIkt1YmVybmV0ZXMuS3ViZXJuZXRlc01vZGVsU2VydmljZS5vclJlZHJhdyIsIkt1YmVybmV0ZXMuS3ViZXJuZXRlc01vZGVsU2VydmljZS5nZXRTZXJ2aWNlIiwiS3ViZXJuZXRlcy5LdWJlcm5ldGVzTW9kZWxTZXJ2aWNlLmdldFJlcGxpY2F0aW9uQ29udHJvbGxlciIsIkt1YmVybmV0ZXMuS3ViZXJuZXRlc01vZGVsU2VydmljZS5nZXRQb2QiLCJLdWJlcm5ldGVzLkt1YmVybmV0ZXNNb2RlbFNlcnZpY2UucG9kc0Zvck5hbWVzcGFjZSIsIkt1YmVybmV0ZXMuS3ViZXJuZXRlc01vZGVsU2VydmljZS5nZXRCdWlsZENvbmZpZyIsIkt1YmVybmV0ZXMuS3ViZXJuZXRlc01vZGVsU2VydmljZS5nZXRQcm9qZWN0IiwiS3ViZXJuZXRlcy5LdWJlcm5ldGVzTW9kZWxTZXJ2aWNlLnNldFByb2plY3QiLCJLdWJlcm5ldGVzLkt1YmVybmV0ZXNNb2RlbFNlcnZpY2UuY3VycmVudE5hbWVzcGFjZSIsIkt1YmVybmV0ZXMuS3ViZXJuZXRlc01vZGVsU2VydmljZS51cGRhdGVJY29uVXJsQW5kQXBwSW5mbyIsIkt1YmVybmV0ZXMuS3ViZXJuZXRlc01vZGVsU2VydmljZS5tYXliZUluaXQiLCJLdWJlcm5ldGVzLkt1YmVybmV0ZXNNb2RlbFNlcnZpY2UudXBkYXRlQXBwcyIsIkt1YmVybmV0ZXMuS3ViZXJuZXRlc01vZGVsU2VydmljZS5kaXNjb3ZlclBvZENvbm5lY3Rpb25zIiwiS3ViZXJuZXRlcy5zb3J0QnlQb2RJcCIsIkt1YmVybmV0ZXMud2l0aFByb3BlcnR5IiwiS3ViZXJuZXRlcy5oaWRlUHJvcGVydGllcyIsIkt1YmVybmV0ZXMuS3ViZXJuZXRlc1N0YXRlSW1wbCIsIkt1YmVybmV0ZXMuS3ViZXJuZXRlc1N0YXRlSW1wbC5jb25zdHJ1Y3RvciIsIkt1YmVybmV0ZXMuS3ViZXJuZXRlc1N0YXRlSW1wbC5uYW1lc3BhY2VzIiwiS3ViZXJuZXRlcy5LdWJlcm5ldGVzU3RhdGVJbXBsLnNlbGVjdGVkTmFtZXNwYWNlIiwiS3ViZXJuZXRlcy5pbnRlcnBvbGF0ZSIsIkt1YmVybmV0ZXMuY3JlYXRlRWxlbWVudCIsIkt1YmVybmV0ZXMuY3JlYXRlRWxlbWVudHMiLCJLdWJlcm5ldGVzLmFwcGVuZE5ld0VsZW1lbnRzIiwiS3ViZXJuZXRlcy5uYW1lc3BhY2VGaWx0ZXIiLCJLdWJlcm5ldGVzLmZpcnN0RHJhdyIsIkt1YmVybmV0ZXMudXBkYXRlIiwiS3ViZXJuZXRlcy5yZWZyZXNoRHJhd2luZyIsIkt1YmVybmV0ZXMuY3JlYXRlUGlwZWxpbmVLZXkiLCJLdWJlcm5ldGVzLm1heWJlTmV4dCIsIkt1YmVybmV0ZXMuU2VydmljZVJlZ2lzdHJ5U2VydmljZSIsIkt1YmVybmV0ZXMuU2VydmljZVJlZ2lzdHJ5U2VydmljZS5jb25zdHJ1Y3RvciIsIkt1YmVybmV0ZXMuU2VydmljZVJlZ2lzdHJ5U2VydmljZS5oYXNTZXJ2aWNlIiwiS3ViZXJuZXRlcy5TZXJ2aWNlUmVnaXN0cnlTZXJ2aWNlLmZpbmRTZXJ2aWNlIiwiS3ViZXJuZXRlcy5TZXJ2aWNlUmVnaXN0cnlTZXJ2aWNlLnNlcnZpY2VMaW5rIiwiS3ViZXJuZXRlcy5TZXJ2aWNlUmVnaXN0cnlTZXJ2aWNlLnNlcnZpY2VSZWFkeUxpbmsiLCJLdWJlcm5ldGVzLlNlcnZpY2VSZWdpc3RyeVNlcnZpY2UuZ2V0TW9kZWwiLCJLdWJlcm5ldGVzLmdldFdlaWdodCIsIkt1YmVybmV0ZXMuZ29CYWNrIiwiS3ViZXJuZXRlcy5nZXRBbm5vdGF0aW9ucyIsIkt1YmVybmV0ZXMuZ2V0VmFsdWVGb3IiLCJLdWJlcm5ldGVzLnN1YnN0aXR1dGUiLCJLdWJlcm5ldGVzLmFwcGx5T2JqZWN0cyIsIkt1YmVybmV0ZXMucmVsb2FkRGF0YUlmTm9XYXRjaCIsIkt1YmVybmV0ZXMud2F0Y2hOYW1lc3BhY2VzIiwiS3ViZXJuZXRlcy5nZXRXU1VybCIsIkt1YmVybmV0ZXMuY3JlYXRlV2F0Y2giLCJLdWJlcm5ldGVzLkN1c3RvbVdlYlNvY2tldCIsIkt1YmVybmV0ZXMucG9zaXRpb25UZXJtaW5hbHMiXSwibWFwcGluZ3MiOiJBQUFBLHNEQUFzRDtBQUN0RCxtREFBbUQ7QUFDbkQsMERBQTBEO0FBQzFELHNEQUFzRDs7QUNIdEQsQUFDQSx5Q0FEeUM7QUFDekMsSUFBTyxTQUFTLENBcVBmO0FBclBELFdBQU8sU0FBUyxFQUFDLENBQUM7SUFFaEJBLFNBQWdCQSxnQkFBZ0JBLENBQUNBLFFBQVFBO1FBQ3ZDQyxPQUFPQSxDQUFDQSxPQUFPQSxDQUFDQSxRQUFRQSxFQUFFQSxVQUFDQSxPQUFPQTtZQUNoQ0EsZUFBZUEsQ0FBQ0EsT0FBT0EsQ0FBQ0EsQ0FBQ0E7UUFDM0JBLENBQUNBLENBQUNBLENBQUNBO1FBQ0hBLE1BQU1BLENBQUNBLFFBQVFBLENBQUNBO0lBQ2xCQSxDQUFDQTtJQUxlRCwwQkFBZ0JBLEdBQWhCQSxnQkFLZkEsQ0FBQUE7SUFFREEsU0FBZ0JBLGVBQWVBLENBQUNBLEtBQUtBO1FBQ25DRSxFQUFFQSxDQUFDQSxDQUFDQSxLQUFLQSxDQUFDQSxDQUFDQSxDQUFDQTtZQUNWQSxJQUFJQSxJQUFJ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QUFDQSxFQUFFQSxlQUFLQSxDQUFDQSxZQUFZQSxFQUFFQSxLQUFLQSxDQUFDQSxDQUFDQSxDQUM1RkEsSUFBSUEsQ0FBQ0EsVUFBVUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsaUJBQU9BLEVBQUVBLHVEQUF1REEsQ0FBQ0EsRUFBRUEsZUFBS0EsQ0FBQ0Esa0JBQWtCQSxFQUFFQSxLQUFLQSxDQUFDQSxDQUFDQSxDQUN6SEEsSUFBSUEsQ0FBQ0EsVUFBVUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsaUJBQU9BLEVBQUVBLHVEQUF1REEsQ0FBQ0EsRUFBRUEsZUFBS0EsQ0FBQ0Esa0JBQWtCQSxFQUFFQSxLQUFLQSxDQUFDQSxDQUFDQSxDQUN6SEEsU0FBU0EsQ0FBQ0EsYUFBYUEsQ0FBQ0EsQ0FBQ0E7SUFDMUNBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO0lBR0pBLGlCQUFPQSxDQUFDQSxHQUFHQSxDQUFDQSxDQUFDQSxjQUFjQSxFQUFFQSxpQkFBaUJBLEVBQUVBLFdBQVdBLEVBQUVBLGlCQUFpQkEsRUFBRUEsZ0JBQWdCQSxFQUFFQSxVQUFDQSxZQUFZQSxFQUFFQSxlQUFlQSxFQUFFQSxTQUFTQSxFQUFFQSxlQUFlQSxFQUFFQSxjQUFjQTtRQUMxS0EsYUFBR0EsQ0FBQ0EsS0FBS0EsQ0FBQ0EsU0FBU0EsQ0FBQ0EsQ0FBQ0E7UUFDckJBLFlBQVlBLENBQUNBLFlBQVlBLENBQUNBLEdBQUdBLFVBQVVBLENBQUNBLFlBQVlBLEdBQUdBLHVCQUF1QkEsQ0FBQ0E7UUFDL0VBLFlBQVlBLENBQUNBLFlBQVlBLENBQUNBLEdBQUdBLFVBQVVBLENBQUNBLFlBQVlBLEdBQUdBLHVCQUF1QkEsQ0FBQ0E7UUFFL0VBLElBQUlBLE9BQU9BLEdBQUdBLFNBQVNBLENBQUNBLE9BQU9BLEVBQUVBLENBQUNBO1FBQ2xDQSxJQUFJQSxVQUFVQSxHQUFHQSxPQUFPQSxDQUFDQSxFQUFFQSxDQUFDQSxZQUFZQSxDQUFDQSxDQUN0QkEsSUFBSUEsQ0FBQ0EsY0FBTUEsd0JBQU9BLEVBQVBBLENBQU9BLENBQUNBLENBQ25CQSxLQUFL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RUEsQ0FBQ0EsQ0FBQ0EsTUFBTUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7WUFDWEEsSUFBSUEsUUFBUUEsR0FBR0EsTUFBTUEsQ0FBQ0EsV0FBV0EsQ0FBQ0EsQ0FBQ0E7WUFDbkNBLEVBQUVBLENBQUNBLENBQUNBLFFBQVFBLENBQUNBLENBQUNBLENBQUNBO2dCQUNiQSxNQUFNQSxDQUFDQSxRQUFRQSxDQUFDQTtZQUNsQkEsQ0FBQ0E7WUFDREEsSUFBSUEsRUFBRUEsR0FBR0EsT0FBT0EsQ0FBQ0EsTUFBTUEsQ0FBQ0EsQ0FBQ0E7WUFDekJBLElBQUlBLElBQUlBLEdBQUdBLE9BQU9BLENBQUNBLE1BQU1BLENBQUNBLENBQUNBO1lBQzNCQSxFQUFFQSxDQUFDQSxDQUFDQSxJQUFJQSxJQUFJQSxFQUFFQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFDZkEsSUFBSUEsSUFBSUEsR0FBR0EsSUFBSUEsQ0FBQ0EsU0FBU0EsQ0FBQ0EsQ0FBQ0EsRUFBRUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsV0FBV0EsRUFBRUEsR0FBR0EsSUFBSUEsQ0FBQ0EsU0FBU0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsR0FBR0EsR0FBR0EsQ0FBQ0E7Z0JBQ3hFQSxJQUFJQSxTQUFTQSxHQUFHQSxZQUFZQSxDQUFDQSxNQUFNQSxDQUFDQSxDQUFDQTtnQkFDckNBLEVBQUVBLENBQUNBLENBQUNBLFNBQVNBLElBQUlBLENBQUNBLHFCQUFxQkEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7b0JBQzlDQSxNQUFNQSxDQUFDQSxJQUFJQSxDQUFDQSxHQUFHQSxDQUFDQSxVQUFVQSxDQUFDQSxJQUFJQSxDQUFDQSx1QkFBdUJBLEVBQUVBLFNBQVNBLEVBQUVBLElBQUlBLEVBQUVBLEVBQUVBLENBQUNBLENBQUNBLENBQUNBO2dCQUNqRkEsQ0FBQ0E7Z0JBQUNBLElBQUlBLENBQUNBLENBQUNBO29CQUNOQSxNQUFNQSxDQUFDQSxJQUFJQSxDQUFDQSxHQUFHQSxDQUFDQSxVQUFVQSxDQUFDQSxJQUFJQSxDQUFDQSxhQUFhQSxFQUFFQSxJ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Q0EsSUFBSUEsWUFBWUEsQ0FBQ0E7WUFDNUNBLElBQUlBLE9BQU9BLEdBQUdBLElBQUlBLENBQUNBLE9BQU9BLENBQUNBLE9BQU9BLEVBQUVBLENBQUNBLE1BQU1BLEVBQUVBLFVBQVVBLENBQUNBLENBQUNBLENBQUNBO1lBQzFEQSxFQUFFQSxDQUFDQSxDQUFDQSxDQUFDQSxJQUFJQSxJQUFJQSxJQUFJQSxDQUFDQSxNQUFNQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFDekJBLElBQUlBLEdBQUdBLElBQUlBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLFFBQVFBLENBQUNBO1lBQzFCQSxDQUFDQTtZQUNEQSxFQUFFQSxDQUFDQSxDQUFDQSxDQUFDQSxPQUFPQSxDQUFDQSxLQUFLQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFDeEJBLE9BQU9BLENBQUNBLEtBQUtBLENBQUNBLElBQUlBLEdBQUdBLElBQUlBLENBQUNBO1lBQzVCQSxDQUFDQTtZQUNEQSxFQUFFQSxDQUFDQSxDQUFDQSxDQUFDQSxPQUFPQSxDQUFDQSxFQUFFQSxJQUFJQSxJQUFJQSxDQUFDQSxNQUFNQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFDL0JBLE9BQU9BLENBQUNBLEVBQUVBLEdBQUdBLE9BQU9BLENBQUNBLElBQUlBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO1lBQ2hDQSxDQUFDQTtZQUNEQSxFQUFFQSxDQUFDQSxDQUFDQSxDQUFDQSxHQUFHQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFDVkEsT0FBT0EsR0FBR0EsSUFBSUEsQ0FBQ0E7WUFDakJBLENBQUNBO1lBQ0RBLElBQUlBLFFBQVFBLEdBQUdBLElBQUlBLENBQUNBLE1BQU1BLENBQUNBO1lBQzNCQSxJQUFJQSxZQUFZQSxHQUFHQSxRQUFRQSxHQUFHQSxNQUFNQSxHQUFHQSxDQUFDQSxRQUFRQSxHQUFHQSxDQUFDQSxHQUFHQSxHQUFHQSxHQUFHQSxFQUFFQSxDQUFDQSxDQUFDQTtZQUNqRUEsSUFBSUEsSUFBSUEsR0FBR0E7Z0JBQ1RB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QUFRQSxHQUFHQSxJQUFJQSxDQUFDQSxPQUFPQSxDQUFDQSxNQUFNQSxFQUFFQSxDQUFDQSxVQUFVQSxFQUFFQSxhQUFhQSxFQUFFQSxVQUFVQSxHQUFHQSxFQUFFQSxHQUFHQSxVQUFVQSxDQUFDQSxDQUFDQSxDQUFDQTtZQUNsR0EsTUFBTUEsQ0FBQ0EsS0FBS0EsR0FBR0EsSUFBSUEsQ0FBQ0EsT0FBT0EsQ0FBQ0EsTUFBTUEsRUFBRUEsQ0FBQ0EsVUFBVUEsRUFBRUEsYUFBYUEsRUFBRUEsVUFBVUEsR0FBR0EsRUFBRUEsR0FBR0EsVUFBVUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7WUFDL0ZBLEVBQUVBLENBQUNBLENBQUNBLE1BQU1BLENBQUNBLFFBQVFBLENBQUNBLENBQUNBLENBQUNBO2dCQUNwQkEsTUFBTUEsQ0FBQ0E7WUFDVEEsQ0FBQ0E7WUFDREEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsRUFBRUEsSUFBSUEsU0FBU0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7Z0JBQ3BCQSxDQUFDQSxJQUFJQSxDQUFDQSxTQUFTQSxJQUFJQSxFQUFFQSxDQUFDQSxDQUFDQSxPQUFPQSxDQUFDQSxVQUFDQSxRQUFRQTtvQkFDdENBLElBQUlBLFFBQVFBLEdBQUdBLFFBQVFBLENBQUNBLFFBQVFBLENBQUNBO29CQUNqQ0EsRUFBRUEsQ0FBQ0EsQ0FBQ0EsUUFBUUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7d0JBQ2JBLElBQUlBLFdBQVdBLEdBQUdBLFFBQVFBLENBQUNBLFdBQVdBLElBQUlBLEVBQUVBLENBQUNBO3dCQUM3Q0EsSUFBSUEsT0FBT0EsR0FBR0EsV0FBV0EsQ0FBQ0EsVUFBVUEsR0FBR0EsRUFBRUEsR0FBR0EsVUFBVUEsQ0FBQ0EsSUFBSUEsV0FBV0EsQ0FBQ0EsaUJBQWlCQSxDQUFDQSxDQUFDQTt3QkFDMUZBLEVBQUVBLENBQUNBLENBQUNBLE9BQU9BLENBQUNBLENBQUNBLENBQUNBOzRCQUNaQSxDQUFDQSxRQUFRQSxDQUFDQSxPQUFPQSxJQUFJQSxFQUFFQSxDQUFDQSxDQUFDQSxPQUFPQSxDQUFDQSxVQUFDQSxJ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LENBQUNBLENBQUNBLENBQUNBLFVBQVVBLENBQUNBLENBQUNBLENBQUNBOzRCQUNoQkEsVUFBVUEsR0FBR0EsS0FBS0EsQ0FBQ0E7d0JBQ3JCQSxDQUFDQTt3QkFBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0E7NEJBQ05BLFVBQVVBLEdBQUdBLFVBQVVBLEdBQUdBLEdBQUdBLEdBQUdBLEtBQUtBLENBQUNBO3dCQUN4Q0EsQ0FBQ0E7d0JBQ0RBLElBQUlBLEdBQUdBLEdBQUdBLEtBQUtBLENBQUNBLFdBQVdBLENBQUNBLEdBQUdBLENBQUNBLENBQUNBO3dCQUNqQ0EsRUFBRUEsQ0FBQ0EsQ0FBQ0EsR0FBR0EsR0FBR0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7NEJBQ1pBLEtBQUtBLEdBQUdBLEtBQUtBLENBQUNBLFNBQVNBLENBQUNBLENBQUNBLEVBQUVBLEdBQUdBLENBQUNBLENBQUNBO3dCQUNsQ0EsQ0FBQ0E7d0JBQ0RBLElBQUlBLEtBQUtBLEdBQUdBLEtBQUtBLENBQUNBLEtBQUtBLENBQUNBLEdBQUdBLEVBQUVBLENBQUNBLENBQUNBLENBQUNBO3dCQUNoQ0EsRUFBRUEsQ0FBQ0EsQ0FBQ0EsS0FBS0EsQ0FBQ0EsTUFBTUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7NEJBQ2pCQSxJQUFJQSxNQUFNQSxHQUFHQSxJQUFJQSxDQUFDQTs0QkFDbEJBLEVBQUVBLENBQUNBLENBQUNBLEtBQUtBLENBQUNBLE1BQU1BLElBQUlBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO2dDQUN0QkEsTUFBTUEsR0FBR0EsS0FBS0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsR0FBR0EsR0FBR0EsR0FBR0EsS0FBS0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7NEJBQ3JDQSxDQUFDQTs0QkFBQ0EsSUFBSUEsQ0FBQ0EsRUFBRUEsQ0FBQ0EsQ0FBQ0EsS0FBS0EsQ0FBQ0EsTUFBTUEsSUFBSUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7Z0NBQzdCQSxNQUFNQSxHQUFHQSxLQUFLQSxDQUFDQSxDQUFDQSxDQUFDQSxHQUFHQSxHQUFHQSxHQUFHQSxLQUFLQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTs0QkFDckNBLENBQUNBOzRCQUFDQSxJQUFJQSxDQUFDQSxDQUFDQTtnQ0FDTkEsTUFBTUEsR0FBR0EsS0FBS0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsR0FBR0EsR0FBR0EsR0FBR0EsS0FBS0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7NEJBQ3JDQSxDQUFDQTs0QkFDREEsU0FBU0EsQ0FBQ0EsVUFBVUEsR0FBR0EsVUFBVUEsQ0FBQ0EsSUFBSUEsQ0FBQ0Esb0NBQW9DQSxFQUFFQSxNQUFNQSxDQUFDQSxDQUFDQTt3QkFDdkZBLENBQUNBO29CQUNIQSxDQUFDQTtvQkFDREEsT0FBT0EsQ0FBQ0EsT0FBT0EsQ0FBQ0EsU0FBU0EsQ0FBQ0EsS0FBS0EsRUFBRUEsVUFBQ0EsSUFBSUE7d0JBQ3BDQSxJQUFJQSxhQUFhQSxHQUFHQSxJQUFJQSxDQUFDQSxhQUFhQSxDQUFDQTt3QkFDdkNBLEVBQUVBLENBQUNBLENBQUNBLGFBQWFBLENBQUNBLENBQUNBLENBQUNBOzRCQUNsQkEsR0FBR0EsQ0FBQ0EsZUFBZUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsYUFBYUEsQ0FBQ0EsQ0FBQ0E7d0JBQzFDQSxDQUFDQTtvQkFDSEEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7Z0JBQ0xBLENBQUNBLENBQUNBLENBQUNBO2dCQUNIQSxHQUFHQSxDQUFDQSxXQUFXQSxHQUFHQSxVQUFVQSxDQUFDQTtnQkFDN0JBLElBQUlBLFNBQVNBLEdBQUdBLFNBQVNBLENBQUNBO2dCQUMxQkEsSUFBSUEsT0FBT0EsR0FBR0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsSUFBSUEsSUFBSUEsRUFBRUEsQ0FBQ0EsQ0FBQ0E7Z0JBQy9CQSxHQUFHQSxDQUFDQSxNQUFNQSxHQUFHQSxTQUFTQSxDQUFDQSxLQUFLQSxDQUFDQTtnQkFDN0JBLEdBQUdBLENBQUNBLEtBQUtBLEdBQUdBLE9BQU9BLENBQUNBLElBQUlBLElBQUlBLE9BQU9BLENBQUNBLFFBQVFBLElBQUlBLFNBQVNBLENBQUNBLE1BQU1BLENBQUNBO1lBQ25FQSxDQUFDQSxDQUFDQSxDQUFDQTtZQUVIQSxJQUFJQSxDQUFDQSxRQUFRQSxDQUFDQSxPQUFPQSxDQUFDQSxVQUFDQSxPQUFPQTtnQkFDNUJBLEVBQUVBLENBQUNBLENBQUNBLENBQUNBLE9BQU9BLENBQUNBLElBQUlBLENBQUNBO29CQUFDQSxPQUFPQSxDQUFDQSxJQUFJQSxHQUFHQSxTQUFTQSxDQUFDQTtnQkFDNUNBLEtBQUlBLENBQUNBLGFBQWFBLENBQUNBLE9BQU9BLENBQUNBLElBQUlBLENBQUNBLEdBQUdBLE9BQU9BLENBQUNBO2dCQUMzQ0EsSUFBSUEsUUFBUUEsR0FBR0Esc0JBQVdBLENBQUNBLE9BQU9BLENBQUNBLENBQUNBO2dCQUNwQ0EsT0FBT0EsQ0FBQ0EsS0FBS0EsR0FBR0EsRUFBRUEsQ0FBQ0E7Z0JBQ25CQSxFQUFFQSxDQUFDQSxDQUFDQSxDQUFDQSxPQUFPQSxDQUFDQSxZQUFZQSxDQUFDQSxDQUFDQSxDQUFDQTtvQkFDMUJBLE9BQU9BLENBQUNBLFlBQVlBLEdBQUdBLEVBQUVBLENBQUNBO2dCQUM1QkEsQ0FBQ0E7Z0JBQ0RBLENBQUNBLENBQUNBLE1BQU1BLENBQUNBLE9BQU9BLENBQUNBLFlBQVlBLEVBQUVBLFFBQVFBLEdBQUdBLDRCQUFpQkEsQ0FBQ0EsUUFBUUEsRUFBRUEsS0FBSUEsQ0FBQ0EsSUFBSUEsRUFBRUEsT0FBT0EsQ0FBQ0EsS0FBS0EsQ0FBQ0EsR0FBR0EsRUFBRUEsQ0FBQ0EsQ0FBQ0E7Z0JBQ3RHQSxPQUFPQSxDQUFDQSxTQUFTQSxHQUFHQSxPQUFPQSxDQUFDQSxLQUFLQSxDQUFDQSxNQUFNQSxDQUFDQTtnQkFFekNBLElBQUlBLFlBQVlBLEdBQUdBLE9BQU9BLENBQUNBLEtBQUtBLENBQUNBO2dCQUNqQ0EsT0FBT0EsQ0FBQ0EsU0FBU0EsR0FBR0EsWUFBWUEsQ0FBQ0EsR0FBR0EsQ0FBQ0EsVUFBQ0EsR0FBR0E7b0JBQ3ZDQSxNQUFNQSxDQUFDQSxHQUFHQSxDQUFDQSxJQUFJQSxDQUFDQTtnQkFDbEJBLENBQUNBLENBQUNBLENBQUNBLElBQUlBLENBQUNBLEdBQUdBLENBQUNBLENBQUNBO2dCQUNiQSxPQUFPQSxDQUFDQSxXQUFXQSxHQUFHQSxVQUFVQSxDQUFDQSxjQUFjQSxDQUFDQSxvQkFBU0EsQ0FBQ0EsT0FBT0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7Z0JBQ3BFQSxLQUFJQSxDQUFDQSx1QkFBdUJBLENBQUNBLE9BQU9BLEVBQUVBLGNBQWNBLENBQUNBLENBQUNBO2dCQUN0REEsSUFBSUEsSUFBSUEsR0FBR0EsT0FBT0EsQ0FBQ0EsSUFBSUEsSUFBSUEsRUFBRUEsQ0FBQ0E7Z0JBQzlCQSxPQUFPQSxDQUFDQSxTQUFTQSxHQUFHQSxJQUFJQSxDQUFDQSxRQUFRQSxDQUFDQTtnQkFDbENBLE9BQU9BLENBQUNBLGFBQWFBLEdBQUdBLFVBQVVBLENBQUNBLGNBQWNBLENBQUNBLElBQUlBLENBQUNBLFFBQVFBLENBQUNBLENBQUNBO2dCQUNqRUEsSUFBSUEsS0FBS0EsR0FBR0EsQ0FBQ0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsS0FBS0EsSUFBSUEsRUFBRUEsRUFBRUEsTUFBTUEsQ0FBQ0EsQ0FBQ0E7Z0JBQzVDQSxPQUFPQSxDQUFDQSxNQUFNQSxHQUFHQSxLQUFLQSxDQUFDQTtnQkFDdkJBLE9BQU9BLENBQUNBLFVBQVVBLEdBQUdBLEtBQUtBLENBQUNBLElBQUlBLENBQUNBLElBQUlBLENBQUNBLENBQUNBO2dCQUN0Q0EsSUFBSUEsT0FBT0EsR0FBR0EsT0FBT0EsQ0FBQ0EsUUFBUUEsQ0FBQ0E7Z0JBQy9CQSxFQUFFQSxDQUFDQSxDQUFDQSxPQUFPQSxJQUFJQSxZQUFZQSxDQUFDQSxDQUFDQSxDQUFDQTtvQkFDNUJBLFlBQVlBLENBQUNBLE9BQU9BLENBQUNBLFVBQUNBLEdBQUdBO3dCQUN2QkEsR0FBR0EsQ0FBQ0EsUUFBUUEsR0FBR0EsT0FBT0EsQ0FBQ0E7b0JBQ3pCQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFDTEEsQ0FBQ0E7Z0JBQ0RBLE9BQU9BLENBQUNBLFdBQVdBLEdBQUdBLHlCQUFjQSxDQUFDQSxPQUFPQSxDQUFDQSxDQUFDQTtZQUNoREEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7WUFFSEEsSUFBSUEsQ0FBQ0Esc0JBQXNCQSxDQUFDQSxPQUFPQSxDQUFDQSxVQUFDQSxxQkFBcUJBO2dCQUN4REEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EscUJBQXFCQSxDQUFDQSxJQUFJQSxDQUFDQTtvQkFBQ0EscUJBQXFCQSxDQUFDQSxJQUFJQSxHQUFHQSx1QkFBdUJBLENBQUNBO2dCQUN0RkEsS0FBSUEsQ0FBQ0EsMkJBQTJCQSxDQUFDQSxxQkFBcUJBLENBQUNBLElBQUlBLENBQUNBLEdBQUdBLHFCQUFxQkEsQ0FBQUE7Z0JBQ2xGQSxJQUFJQSxRQUFRQSxHQUFHQSxzQkFBV0EsQ0FBQ0EscUJBQXFCQSxDQUFDQSxDQUFDQTtnQkFDcERBLHFCQUFxQkEsQ0FBQ0EsS0FBS0EsR0FBR0EsRUFBRUEsQ0FBQ0E7Z0JBQ2pDQSxxQkFBcUJBLENBQUNBLFlBQVlBLEdBQUdBLFFBQVFBLEdBQUdBLDRCQUFpQkEsQ0FBQ0EsUUFBUUEsRUFBRUEsS0FBSUEsQ0FBQ0EsSUFBSUEsRUFBRUEscUJBQXFCQSxDQUFDQSxLQUFLQSxDQUFDQSxHQUFHQSxJQUFJQSxDQUFDQTtnQkFDM0hBLHFCQUFxQkEsQ0FBQ0EsU0FBU0EsR0FBR0EscUJBQXFCQSxDQUFDQSxLQUFLQSxDQUFDQSxNQUFNQSxDQUFDQTtnQkFDckVBLHFCQUFxQkEsQ0FBQ0EsU0FBU0EsR0FBR0EsQ0FBQ0EscUJBQXFCQSxDQUFDQSxJQUFJQSxJQUFJQSxFQUFFQSxDQUFDQSxDQUFDQSxRQUFRQSxDQUFDQTtnQkFFOUVBLElBQUlBLFlBQVlBLEdBQUdBLHFCQUFxQkEsQ0FBQ0EsS0FBS0EsQ0FBQ0E7Z0JBQy9DQSxxQkFBcUJBLENBQUNBLFNBQVNBLEdBQUdBLFlBQVlBLENBQUNBLEdBQUdBLENBQUNBLFVBQUNBLEdBQUdBO29CQUNyREEsTUFBTUEsQ0FBQ0EsR0FBR0EsQ0FBQ0EsSUFBSUEsQ0FBQ0E7Z0JBQ2xCQSxDQUFDQSxDQUFDQSxDQUFDQSxJQUFJQSxDQUFDQSxHQUFHQSxDQUFDQSxDQUFDQTtnQkFDYkEscUJBQXFCQSxDQUFDQSxXQUFXQSxHQUFHQSxVQUFVQSxDQUFDQSxjQUFjQSxDQUFDQSxvQkFBU0EsQ0FBQ0EscUJBQXFCQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFDaEdBLEtBQUlBLENBQUNBLHVCQUF1QkEsQ0FBQ0EscUJBQXFCQSxFQUFFQSw0QkFBNEJBLENBQUNBLENBQUNBO2dCQUNsRkEsSUFBSUEsT0FBT0EsR0FBSUEscUJBQXFCQSxDQUFDQSxRQUFRQSxDQUFDQTtnQkFDOUNBLEVBQUVBLENBQUNBLENBQUNBLE9BQU9BLElBQUlBLFlBQVlBLENBQUNBLENBQUNBLENBQUNBO29CQUM1QkEsWUFBWUEsQ0FBQ0EsT0FBT0EsQ0FBQ0EsVUFBQ0EsR0FBR0E7d0JBQ3ZCQSxHQUFHQSxDQUFDQSxRQUFRQSxHQUFHQSxPQUFPQSxDQUFDQTtvQkFDekJBLENBQUNBLENBQUNBLENBQUNBO2dCQUNMQSxDQUFDQTtZQUNIQSxDQUFDQSxDQUFDQSxDQUFDQTtZQUVIQSxBQUVBQSxtRUFGbUVBO1lBQ25FQSx3QkFBd0JBO1lBQ3hCQSxJQUFJQSxDQUFDQSxRQUFRQSxDQUFDQSxPQUFPQSxDQUFDQSxVQUFDQSxPQUFPQTtnQkFDNUJBLElBQUlBLE9BQU9BLEdBQUdBLE9BQU9BLENBQUNBLFFBQVFBLENBQUNBO2dCQUMvQkEsSUFBSUEsWUFBWUEsR0FBR0EsT0FBT0EsQ0FBQ0EsS0FBS0EsQ0FBQ0E7Z0JBQ2pDQSxFQUFFQSxDQUFDQSxDQUFDQSxZQUFZQSxDQUFDQSxDQUFDQSxDQUFDQTtvQkFDakJBLEVBQUVBLENBQUNBLENBQUNBLENBQUNBLE9BQU9BLElBQUlBLE9BQU9BLEtBQUtBLHlCQUFjQSxDQUFDQSxDQUFDQSxDQUFDQTt3QkFDM0NBLE9BQU9BLEdBQUdBLElBQUlBLENBQUNBO3dCQUNmQSxZQUFZQSxDQUFDQSxPQUFPQSxDQUFDQSxVQUFDQSxHQUFHQTs0QkFDdkJBLEVBQUVBLENBQUNBLENBQUNBLENBQUNBLE9BQU9BLENBQUNBLENBQUNBLENBQUNBO2dDQUNiQSxPQUFPQSxHQUFHQSxHQUFHQSxDQUFDQSxRQUFRQSxDQUFDQTtnQ0FDdkJBLEVBQUVBLENBQUNBLENBQUNBLE9BQU9BLENBQUNBLENBQUNBLENBQUNBO29DQUNaQSxPQUFPQSxDQUFDQSxRQUFRQSxHQUFHQSxPQUFPQSxDQUFDQTtnQ0FDN0JBLENBQUNBOzRCQUNIQSxDQUFDQTt3QkFDSEEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7b0JBQ0xBLENBQUNBO2dCQUNIQSxDQUFDQTtZQUNIQSxDQUFDQSxDQUFDQSxDQUFDQTtZQUVIQSxJQUFJQSxDQUFDQSxVQUFVQSxFQUFFQSxDQUFDQTtZQUVsQkEsSUFBSUEsVUFBVUEsR0FBR0EsRUFBRUEsQ0FBQ0E7WUFDcEJBLElBQUlBLENBQUNBLElBQUlBLENBQUNBLE9BQU9BLENBQUNBLFVBQUNBLEdBQUdBO2dCQUNwQkEsSUFBSUEsSUFBSUEsR0FBR0Esa0JBQU9BLENBQUNBLEdBQUdBLENBQUNBLENBQUNBO2dCQUN4QkEsSUFBSUEsV0FBV0EsR0FBR0EsVUFBVUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0E7Z0JBQ25DQSxFQUFFQSxDQUFDQSxDQUFDQSxDQUFDQSxXQUFXQSxDQUFDQSxDQUFDQSxDQUFDQTtvQkFDakJBLFdBQVdBLEdBQUdBLEVBQUVBLENBQUNBO29CQUNqQkEsVUFBVUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsR0FBR0EsV0FBV0EsQ0FBQ0E7Z0JBQ2pDQSxDQUFDQTtnQkFDREEsV0FBV0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsR0FBR0EsQ0FBQ0EsQ0FBQ0E7WUFDeEJBLENBQUNBLENBQUNBLENBQUNBO1lBQ0hBLElBQUlBLENBQUNBLFVBQVVBLEdBQUdBLFVBQVVBLENBQUNBO1lBRTdCQSxJQUFJQSxRQUFRQSxHQUFHQSxFQUFFQSxDQUFDQTtZQUNsQkEsR0FBR0EsQ0FBQ0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsT0FBT0EsSUFBSUEsVUFBVUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7Z0JBQy9CQSxJQUFJQSxRQUFRQSxHQUFHQSxFQUFFQSxDQUFDQTtnQkFDbEJBLElBQUlBLFdBQVdBLEdBQUdBLDRCQUFpQkEsQ0FBQ0EsVUFBQ0EsR0FBR0EsSUFBS0EsT0FBQUEsa0JBQU9BLENBQUNBLEdBQUdBLENBQUNBLEtBQUtBLE9BQU9BLEVBQXhCQSxDQUF3QkEsRUFBRUEsSUFBSUEsQ0FBQ0EsSUFBSUEsRUFBRUEsUUFBUUEsRUFBRUEsT0FBT0EsR0FBR0EsT0FBT0EsQ0FBQ0EsQ0FBQ0E7Z0JBQy9HQSxJQUFJQSxNQUFNQSxHQUFHQSxJQUFJQSxDQUFDQTtnQkFDbEJBLEVBQUVBLENBQUNBLENBQUNBLFFBQVFBLENBQUNBLE1BQU1BLENBQUNBLENBQUNBLENBQUNBO29CQUNwQkEsSUFBSUEsR0FBR0EsR0FBR0EsUUFBUUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7b0JBQ3RCQSxJQUFJQSxZQUFZQSxHQUFHQSxHQUFHQSxDQUFDQSxNQUFNQSxDQUFDQTtvQkFDOUJBLEVBQUVBLENBQUNBLENBQUNBLFlBQVlBLENBQUNBLENBQUNBLENBQUNBO3dCQUNqQkEsTUFBTUEsR0FBR0EsWUFBWUEsQ0FBQ0EsTUFBTUEsQ0FBQ0E7b0JBQy9CQSxDQUFDQTtnQkFDSEEsQ0FBQ0E7Z0JBQ0RBLElBQUlBLFdBQVdBLEdBQUdBO29CQUNoQkEsSUFBSUEsRUFBRUEsT0FBT0E7b0JBQ2JBLEVBQUVBLEVBQUVBLE9BQU9BO29CQUNYQSxTQUFTQSxFQUFFQSxPQUFPQSxDQUFDQSxPQUFPQSxDQUFDQSxLQUFLQSxFQUFFQSxHQUFHQSxDQUFDQTtvQkFDdENBLE1BQU1BLEVBQUVBLE1BQU1BO29CQUNkQSxJQUFJQSxFQUFFQSxRQUFRQTtvQkFDZEEsSUFBSUEsRUFBRUEsTUFBTUE7b0JBQ1ZBLFlBQVlBLEVBQUVBLFdBQVdBO29CQUN6QkEsUUFBUUEsRUFBRUEsc0JBQVdBO2lCQUN4QkEsQ0FBQ0E7Z0JBQ0ZBLFFBQVFBLENBQUNBLElBQUlBLENBQUNBLFdBQVdBLENBQUNBLENBQUNBO1lBQzdCQSxDQUFDQTtZQUVEQSxJQUFJQSxDQUFDQSxLQUFLQSxHQUFHQSxRQUFRQSxDQUFDQTtZQUV0QkEsNkJBQWtCQSxDQUFDQSxJQUFJQSxDQUFDQSxZQUFZQSxDQUFDQSxDQUFDQTtZQUN0Q0EsdUJBQVlBLENBQUNBLElBQUlBLENBQUNBLE1BQU1BLEVBQUVBLElBQUlBLENBQUNBLENBQUNBO1FBQ2xDQSxDQUFDQTtRQUVTaEIsMkNBQVVBLEdBQXBCQTtZQUFBaUIsaUJBdU1DQTtZQXRNQ0EsSUFBQUEsQ0FBQ0E7Z0JBQ0NBLEFBQ0FBLDZGQUQ2RkE7b0JBQ3pGQSxRQUFRQSxHQUFHQSxFQUFFQSxDQUFDQTtnQkFFbEJBLElBQUlBLENBQUNBLHNCQUFzQkEsQ0FBQ0EsT0FBT0EsQ0FBQ0EsVUFBQ0EscUJBQXFCQTtvQkFDeERBLElBQUlBLElBQUlBLEdBQUdBLGtCQUFPQSxDQUFDQSxxQkFBcUJBLENBQUNBLENBQUNBO29CQUMxQ0EsSUFBSUEsUUFBUUEsR0FBR0EscUJBQXFCQSxDQUFDQSxRQUFRQSxDQUFDQTtvQkFDOUNBLFFBQVFBLENBQUNBLElBQUlBLENBQUNBO3dCQUNaQSxPQUFPQSxFQUFFQSxhQUFhQSxHQUFHQSxJQUFJQTt3QkFDN0JBLEtBQUtBLEVBQUVBLElBQUlBO3dCQUNYQSxLQUFLQSxFQUFFQTs0QkFDTEEsUUFBUUEsRUFBRUEsUUFBUUE7eUJBQ25CQTt3QkFDREEsUUFBUUEsRUFBRUEsUUFBUUE7d0JBQ2xCQSxzQkFBc0JBLEVBQUVBLENBQUNBLHFCQUFxQkEsQ0FBQ0E7d0JBQy9DQSxJQUFJQSxFQUFFQSxxQkFBcUJBLENBQUNBLEtBQUtBLElBQUlBLEVBQUVBO3dCQUN2Q0EsUUFBUUEsRUFBRUEsRUFBRUE7cUJBQ2JBLENBQUNBLENBQUNBO2dCQUNMQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFFSEEsSUFBSUEsbUJBQW1CQSxHQUFHQSxzQkFBV0EsQ0FBQ0E7Z0JBQ3RDQSxJQUFJQSxTQUFTQSxHQUFHQSxFQUFFQSxDQUFDQTtnQkFDbkJBLElBQUlBLENBQUNBLFFBQVFBLENBQUNBLE9BQU9BLENBQUNBLFVBQUNBLE9BQU9BO29CQUM1QkEsSUFBSUEsSUFBSUEsR0FBR0Esa0JBQU9BLENBQUNBLE9BQU9BLENBQUNBLENBQUNBO29CQUM1QkEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsSUFBSUEsS0FBS0EsV0FBV0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7d0JBQ3pCQSxJQUFJQSxXQUFXQSxHQUFHQSxPQUFPQSxDQUFDQSxZQUFZQSxDQUFDQTt3QkFDdkNBLEVBQUVBLENBQUNBLENBQUNBLFdBQVdBLElBQUlBLFdBQVdBLENBQUNBLEtBQUtBLENBQUNBLENBQUNBLENBQUNBOzRCQUNyQ0EsbUJBQW1CQSxHQUFHQSxJQUFJQSxDQUFDQTt3QkFDN0JBLENBQUNBO29CQUNIQSxDQUFDQTtvQkFDREEsQUFDQUEscUVBRHFFQTt3QkFDakVBLFVBQVVBLEdBQUdBLElBQUlBLENBQUNBO29CQUN0QkEsUUFBUUEsQ0FBQ0EsT0FBT0EsQ0FBQ0EsVUFBQ0EsT0FBT0E7d0JBQ3ZCQSxPQUFPQSxDQUFDQSxzQkFBc0JBLENBQUNBLE9BQU9BLENBQUNBLFVBQUNBLHFCQUFxQkE7NEJBQzNEQSxJQUFJQSxXQUFXQSxHQUFHQSxzQkFBV0EsQ0FBQ0EscUJBQXFCQSxDQUFDQSxDQUFDQTs0QkFDckRBLEVBQUVBLENBQUNBLENBQUNBLFdBQVdBLElBQ1hBLDBCQUFlQSxDQUFDQSxXQUFXQSxFQUFFQSxzQkFBV0EsQ0FBQ0EsT0FBT0EsQ0FBQ0EsQ0FBQ0EsSUFDbERBLHVCQUFZQSxDQUFDQSxPQUFPQSxDQUFDQSxLQUFLQSx1QkFBWUEsQ0FBQ0EscUJBQXFCQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtnQ0FDbEVBLFVBQVVBLEdBQUdBLE9BQU9BLENBQUNBOzRCQUN2QkEsQ0FBQ0E7d0JBQ0hBLENBQUNBLENBQUNBLENBQUNBO29CQUNMQSxDQUFDQSxDQUFDQSxDQUFDQTtvQkFFSEEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsVUFBVUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7d0JBQ2ZBLFVBQVVBLENBQUNBLFFBQVFBLENBQUNBLElBQUlBLENBQUNBLE9BQU9BLENBQUNBLENBQUNBO29CQUNwQ0EsQ0FBQ0E7b0JBQUNBLElBQUlBLENBQUNBLENBQUNBO3dCQUNOQSxTQUFTQSxDQUFDQSxJQUFJQSxDQUFDQSxPQUFPQSxDQUFDQSxDQUFDQTtvQkFDMUJBLENBQUNBO2dCQUNIQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFDSEEsY0FBR0EsQ0FBQ0EsS0FBS0EsQ0FBQ0EsY0FBY0EsRUFBRUEsU0FBU0EsQ0FBQ0EsQ0FBQ0E7Z0JBQ3JDQSxTQUFTQSxDQUFDQSxPQUFPQSxDQUFDQSxVQUFDQSxPQUFPQTtvQkFDeEJBLElBQUlBLE9BQU9BLEdBQUdBLENBQUNBLENBQUNBLElBQUlBLENBQUNBLFFBQVFBLEVBQUVBLFVBQUNBLE9BQU9BO3dCQUNyQ0EsTUFBTUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsT0FBT0EsQ0FBQ0Esc0JBQXNCQSxFQUFFQSxVQUFDQSxFQUFFQTs0QkFDOUNBLE1BQU1BLENBQUNBLENBQUNBLENBQUNBLFVBQVVBLENBQUNBLGtCQUFPQSxDQUFDQSxFQUFFQSxDQUFDQSxFQUFFQSxrQkFBT0EsQ0FBQ0EsT0FBT0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7d0JBQ3JEQSxDQUFDQSxDQUFDQSxDQUFDQTtvQkFDTEEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7b0JBQ0hBLEVBQUVBLENBQUNBLENBQUNBLE9BQU9BLENBQUNBLENBQUNBLENBQUNBO3dCQUNaQSxPQUFPQSxDQUFDQSxRQUFRQSxDQUFDQSxJQUFJQSxDQUFDQSxPQUFPQSxDQUFDQSxDQUFDQTtvQkFDakNBLENBQUNBO29CQUFDQSxJQUFJQSxDQUFDQSxDQUFDQTt3QkFDTkEsSUFBSUEsUUFBUUEsR0FBR0EsT0FBT0EsQ0FBQ0EsUUFBUUEsQ0FBQ0E7d0JBQ2hDQSxRQUFRQSxDQUFDQSxJQUFJQSxDQUFDQTs0QkFDWkEsT0FBT0EsRUFBRUEsYUFBYUEsR0FBR0EsSUFBSUE7NEJBQzdCQSxLQUFLQSxFQUFFQSxJQUFJQTs0QkFDWEEsS0FBS0EsRUFBRUE7Z0NBQ0xBLFFBQVFBLEVBQUVBLFFBQVFBOzZCQUNuQkE7NEJBQ0NBLFFBQVFBLEVBQUVBLFFBQVFBOzRCQUNwQkEsc0JBQXNCQSxFQUFFQSxFQUFFQTs0QkFDMUJBLElBQUlBLEVBQUVBLE9BQU9BLENBQUNBLEtBQUtBLElBQUlBLEVBQUVBOzRCQUN6QkEsUUFBUUEsRUFBRUEsQ0FBQ0EsT0FBT0EsQ0FBQ0E7eUJBQ3BCQSxDQUFDQSxDQUFDQTtvQkFDTEEsQ0FBQ0E7Z0JBQ0hBLENBQUNBLENBQUNBLENBQUNBO2dCQUVIQSxJQUFJQSxDQUFDQSxhQUFhQSxHQUFHQSxtQkFBbUJBLENBQUNBO2dCQUV6Q0EsT0FBT0EsQ0FBQ0EsT0FBT0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsTUFBTUEsRUFBRUEsVUFBQ0EsS0FBS0E7b0JBQ2pDQSxJQUFJQSxRQUFRQSxHQUFHQSxLQUFLQSxDQUFDQSxRQUFRQSxJQUFJQSxFQUFFQSxDQUFDQTtvQkFDcENBLElBQUlBLElBQUlBLEdBQUdBLEtBQUtBLENBQUNBLElBQUlBLElBQUlBLEVBQUVBLENBQUNBO29CQUM1QkEsSUFBSUEsV0FBV0EsR0FBR0EsSUFBSUEsQ0FBQ0EsT0FBT0EsQ0FBQ0EsSUFBSUEsRUFBRUEsQ0FBQ0EsSUFBSUEsRUFBRUEsTUFBTUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7b0JBQ3JEQSxJQUFJQSxJQUFJQSxHQUFHQSxJQUFJQSxDQUFDQSxJQUFJQSxDQUFDQTtvQkFDckJBLElBQUlBLFNBQVNBLEdBQUdBLHVCQUFZQSxDQUFDQSxLQUFLQSxDQUFDQSxDQUFDQTtvQkFDcENBLEVBQUVBLENBQUNBLENBQUNBLFdBQVdBLElBQUlBLElBQUlBLENBQUNBLENBQUNBLENBQUNBO3dCQUN4QkEsSUFBSUEsT0FBT0EsR0FBR0EsS0FBSUEsQ0FBQ0EsVUFBVUEsQ0FBQ0EsU0FBU0EsRUFBRUEsV0FBV0EsQ0FBQ0EsQ0FBQ0E7d0JBQ3REQSxFQUFFQSxDQUFDQSxDQUFDQSxPQUFPQSxDQUFDQSxDQUFDQSxDQUFDQTs0QkFDWkEsT0FBT0EsQ0FBQ0EsS0FBS0EsR0FBR0EsSUFBSUEsQ0FBQ0E7NEJBRXJCQSxBQUdBQSw4RkFIOEZBOzRCQUM5RkEsd0RBQXdEQTs0QkFFeERBLEVBQUVBLENBQUNBLENBQUNBLElBQUlBLENBQUNBLENBQUNBLENBQUNBO2dDQUNUQSxJQUFJQSxPQUFPQSxHQUFJQSxJQUFJQSxDQUFDQTtnQ0FDcEJBLEVBQUVBLENBQUNBLENBQUNBLE9BQU9BLENBQUNBLE9BQU9BLENBQUNBLEtBQUtBLENBQUNBLEdBQUdBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO29DQUMvQkEsT0FBT0EsR0FBR0EsU0FBU0EsR0FBR0EsSUFBSUEsQ0FBQ0E7Z0NBQzdCQSxDQUFDQTtnQ0FDREEsT0FBT0EsQ0FBQ0EsV0FBV0EsR0FBR0EsVUFBVUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsT0FBT0EsRUFBR0EsR0FBR0EsQ0FBQ0EsQ0FBQ0E7NEJBQ3ZEQSxDQUFDQTs0QkFFREEsQUFDQUEsa0VBRGtFQTs0QkFDbEVBLEVBQUVBLENBQUNBLENBQUNBLGtCQUFPQSxDQUFDQSxPQUFPQSxDQUFDQSxLQUFLQSxRQUFRQSxJQUFJQSxJQUFJQSxDQUFDQSxDQUFDQSxDQUFDQTtnQ0FDMUNBLE9BQU9BLENBQUNBLFdBQVdBLEdBQVVBLElBQUlBLEdBQUdBLEVBQUVBLENBQUNBLElBQUlBLENBQUNBLE9BQU9BLENBQUNBLEtBQUtBLENBQUNBLENBQ2pDQSxJQUFJQSxDQUFDQSxxQkFBcUJBLENBQUVBLENBQzVCQSxLQUFLQSxDQUFDQSxFQUFFQSxDQUFDQSxDQUNUQSxJQUFJQSxDQUFDQSxHQUFHQSxDQUFDQSxNQUFNQSxDQUFDQSxPQUFPQSxDQUFDQSxNQUFNQSxDQUFDQTtvQ0FDOUJBLE1BQU1BLEVBQUVBLElBQUlBLEdBQUdBLEVBQUVBLENBQUNBLFFBQVFBLEVBQUVBO29DQUM1QkEsS0FBS0EsRUFBRUEsV0FBV0EsQ0FBQ0EsYUFBYUEsRUFBRUE7aUNBQ25DQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQSxRQUFRQSxFQUFFQSxDQUFDQTs0QkFFMUNBLENBQUNBO3dCQUNIQSxDQUFDQTt3QkFBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0E7NEJBQ05BLGNBQUdBLENBQUNBLEtBQUtBLENBQUNBLHlCQUF5QkEsR0FBR0EsV0FBV0EsR0FBR0EsYUFBYUEsR0FBR0EsU0FBU0EsR0FBR0EsY0FBY0EsR0FBR0EsUUFBUUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0E7d0JBQ2xIQSxDQUFDQTtvQkFDSEEsQ0FBQ0E7Z0JBQ0hBLENBQUNBLENBQUNBLENBQUNBO2dCQUVIQSxRQUFRQSxHQUFHQSxZQUFZQSxDQUFDQSxRQUFRQSxDQUFDQSxDQUFDQSxNQUFNQSxDQUFDQSxVQUFDQSxPQUFPQSxJQUFLQSxPQUFBQSxPQUFPQSxDQUFDQSxJQUFJQSxFQUFaQSxDQUFZQSxDQUFDQSxDQUFDQTtnQkFFcEVBLFlBQVlBLENBQUNBLElBQUlBLENBQUNBLElBQUlBLENBQUNBLFFBQVFBLEVBQUVBLFFBQVFBLEVBQUVBLE9BQU9BLENBQUNBLENBQUNBO2dCQUVwREEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsUUFBUUEsSUFBSUEsSUFBSUEsQ0FBQ0EsUUFBUUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7b0JBQ25DQSxJQUFJQSxTQUFTQSxHQUFHQSxFQUFFQSxDQUFDQTtvQkFDbkJBLElBQUlBLE9BQU9BLEdBQUdBLEVBQUVBLENBQUNBO29CQUNqQkEsSUFBSUEsTUFBTUEsR0FBR0EsRUFBRUEsQ0FBQ0E7b0JBQ2hCQSxPQUFPQSxDQUFDQSxPQUFPQSxDQUFDQSxJQUFJQSxDQUFDQSxRQUFRQSxFQUFFQSxVQUFDQSxPQUFPQTt3QkFDckNBLEVBQUVBLENBQUNBLENBQUNBLENBQUNBLE9BQU9BLENBQUNBLFFBQVFBLElBQUlBLE9BQU9BLENBQUNBLFFBQVFBLElBQUlBLE9BQU9BLENBQUNBLFFBQVFBLEtBQUtBLE1BQU1BLENBQUNBLENBQUNBLENBQUNBOzRCQUN6RUEsT0FBT0EsQ0FBQ0EsUUFBUUEsR0FBR0EsdUJBQVlBLENBQUNBLE9BQU9BLENBQUNBLFFBQVFBLENBQUNBLENBQUNBO3dCQUNwREEsQ0FBQ0E7d0JBQ0RBLElBQUlBLE9BQU9BLEdBQUdBLE9BQU9BLENBQUNBLE9BQU9BLENBQUNBO3dCQUM5QkEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsT0FBT0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7NEJBQ1pBLE1BQU1BLENBQUNBLE9BQU9BLENBQUNBLEdBQUdBLE9BQU9BLENBQUNBOzRCQUMxQkEsSUFBSUEsR0FBR0EsR0FBR0EsT0FBT0EsQ0FBQ0EsV0FBV0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsQ0FBQ0E7NEJBQ25DQSxJQUFJQSxVQUFVQSxHQUFHQSxFQUFFQSxDQUFDQTs0QkFDcEJBLEVBQUVBLENBQUNBLENBQUNBLEdBQUdBLElBQUlBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO2dDQUNiQSxVQUFVQSxHQUFHQSxPQUFPQSxDQUFDQSxTQUFTQSxDQUFDQSxDQUFDQSxFQUFFQSxHQUFHQSxDQUFDQSxDQUFDQTs0QkFDekNBLENBQUNBOzRCQUNEQSxVQUFVQSxHQUFHQSxJQUFJQSxDQUFDQSxXQUFXQSxDQUFDQSxVQUFVQSxFQUFFQSxHQUFHQSxDQUFDQSxDQUFDQTs0QkFDL0NBLElBQUlBLE1BQU1BLEdBQUdBLFNBQVNBLENBQUNBLFVBQVVBLENBQUNBLENBQUNBOzRCQUNuQ0EsRUFBRUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsTUFBTUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7Z0NBQ1pBLE1BQU1BLEdBQUdBO29DQUNQQSxJQUFJQSxFQUFFQSxVQUFVQTtvQ0FDaEJBLFFBQVFBLEVBQUVBLElBQUlBO29DQUNkQSxJQUFJQSxFQUFFQSxFQUFFQTtpQ0FDVEEsQ0FBQ0E7Z0NBQ0ZBLE9BQU9BLENBQUNBLElBQUlBLENBQUNBLE1BQU1BLENBQUNBLENBQUNBO2dDQUNyQkEsU0FBU0EsQ0FBQ0EsVUFBVUEsQ0FBQ0EsR0FBR0EsTUFBTUEsQ0FBQ0E7NEJBQ2pDQSxDQUFDQTs0QkFDREEsTUFBTUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsT0FBT0EsQ0FBQ0EsQ0FBQ0E7d0JBQzVCQSxDQUFDQTtvQkFDSEEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7b0JBQ0hBLElBQUlBLENBQUNBLFVBQVVBLEdBQUdBLE9BQU9BLENBQUNBLE1BQU1BLENBQUNBLE1BQU1BLENBQUNBLENBQUNBO29CQUV6Q0EsSUFBSUEsSUFBSUEsR0FBR0EsRUFBRUEsQ0FBQ0E7b0JBQ2RBLElBQUlBLFdBQVdBLEdBQUdBO3dCQUNoQkEsUUFBUUEsRUFBRUEseUJBQWNBO3FCQUN6QkEsQ0FBQ0E7b0JBRUZBLE9BQU9BLENBQUNBLE9BQU9BLENBQUNBLElBQUlBLENBQUNBLFFBQVFBLEVBQUVBLFVBQUNBLE9BQU9BO3dCQUNyQ0EsSUFBQUEsQ0FBQ0E7NEJBQ0NBLElBQUlBLE9BQU9BLEdBQUdBLE9BQU9BLENBQUNBLE9BQU9BLENBQUNBOzRCQUU5QkEsQUFPQUE7Ozs7OytCQUZHQTtnQ0FFQ0EsT0FBT0EsR0FBR0EsT0FBT0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsV0FBV0EsQ0FBQ0EsQ0FBQ0E7NEJBQ3hDQSxFQUFFQSxDQUFDQSxDQUFDQSxPQUFPQSxDQUFDQSxDQUFDQSxDQUFDQTtnQ0FDWkEsT0FBT0EsR0FBR0EsTUFBTUEsQ0FBQ0EsT0FBT0EsQ0FBQ0EsSUFBSUEsT0FBT0EsQ0FBQ0E7NEJBQ3ZDQSxDQUFDQTs0QkFDREEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsT0FBT0EsQ0FBQ0EsS0FBS0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7Z0NBQ25CQSxPQUFPQSxDQUFDQSxLQUFLQSxHQUFHQSxXQUFXQSxDQUFDQTtnQ0FDNUJBLE9BQU9BLENBQUNBLEtBQUtBLEdBQUdBLE9BQU9BLENBQUNBOzRCQUMxQkEsQ0FBQ0E7NEJBQ0RBLE9BQU9BLENBQUNBLEVBQUVBLEdBQUdBLE9BQU9BLENBQUNBOzRCQUNyQkEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsT0FBT0EsQ0FBQ0EsS0FBS0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7Z0NBQ25CQSxPQUFPQSxDQUFDQSxLQUFLQSxHQUFHQSxPQUFPQSxDQUFDQSxJQUFJQSxJQUFJQSxPQUFPQSxDQUFDQSxLQUFLQSxDQUFDQTs0QkFDaERBLENBQUNBOzRCQUNEQSxFQUFFQSxDQUFDQSxDQUFDQSxDQUFDQSxPQUFPQSxDQUFDQSxRQUFRQSxDQUFDQSxDQUFDQSxDQUFDQTtnQ0FDdEJBLE9BQU9BLENBQUNBLFFBQVFBLEdBQUdBLE9BQU9BLENBQUNBLFFBQVFBLENBQUNBOzRCQUN0Q0EsQ0FBQ0E7NEJBQ0RBLElBQUlBLENBQUNBLElBQUlBLENBQUNBLE9BQU9BLENBQUNBLENBQUNBOzRCQUNuQkEsT0FBT0EsQ0FBQ0EsWUFBWUEsR0FBR0EsbUNBQXdCQSxDQUFDQSxPQUFPQSxDQUFDQSxDQUFDQTs0QkFDekRBLE9BQU9BLENBQUNBLFNBQVNBLEdBQUdBLENBQUNBLE9BQU9BLENBQUNBLElBQUlBLElBQUlBLEVBQUVBLENBQUNBLENBQUNBLE1BQU1BLENBQUNBOzRCQUNoREEsT0FBT0EsQ0FBQ0EsMkJBQTJCQSxHQUFHQSxDQUFDQSxPQUFPQSxDQUFDQSxzQkFBc0JBLElBQUlBLEVBQUVBLENBQUNBLENBQUNBLEdBQUdBLENBQUNBLE1BQU1BLENBQUNBLENBQUNBLElBQUlBLENBQUNBLEdBQUdBLENBQUNBLENBQUNBOzRCQUNuR0EsT0FBT0EsQ0FBQ0EsYUFBYUEsR0FBRUEsQ0FBQ0EsT0FBT0EsQ0FBQ0EsUUFBUUEsSUFBSUEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsTUFBTUEsQ0FBQ0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsR0FBR0EsQ0FBQ0EsQ0FBQ0E7NEJBQ3RFQSxPQUFPQSxDQUFDQSxhQUFhQSxHQUFHQSxvQ0FBeUJBLENBQUNBLE9BQU9BLENBQUNBLENBQUNBO3dCQUM3REEsQ0FBRUE7d0JBQUFBLEtBQUtBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLENBQUNBOzRCQUNYQSxjQUFHQSxDQUFDQSxJQUFJQSxDQUFDQSw2QkFBNkJBLEdBQUdBLENBQUNBLENBQUNBLENBQUNBO3dCQUM5Q0EsQ0FBQ0E7b0JBQ0hBLENBQUNBLENBQUNBLENBQUNBO29CQUNIQSxBQUNBQSxtQkFEbUJBO29CQUNuQkEsSUFBSUEsQ0FBQ0EsSUFBSUEsR0FBR0EsSUFBSUEsQ0FBQ0EsUUFBUUEsQ0FBQ0E7Z0JBQzVCQSxDQUFDQTtZQUNIQSxDQUFFQTtZQUFBQSxLQUFLQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFDWEEsY0FBR0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsZ0JBQWdCQSxHQUFHQSxDQUFDQSxDQUFDQSxDQUFDQTtZQUNqQ0EsQ0FBQ0E7UUFDSEEsQ0FBQ0E7UUFFU2pCLHVEQUFzQkEsR0FBaENBLFVBQWlDQSxNQUFNQTtZQUNyQ2tCLElBQUlBLElBQUlBLEdBQUdBLElBQUlBLENBQUNBLE9BQU9BLENBQUNBLE1BQU1BLEVBQUVBLENBQUNBLFFBQVFBLEVBQUVBLE1BQU1BLENBQUNBLENBQUNBLENBQUNBO1lBQ3BEQSxJQUFJQSxRQUFRQSxHQUFHQSxJQUFJQSxDQUFDQTtZQUNwQkEsSUFBSUEsWUFBWUEsR0FBR0EsTUFBTUEsQ0FBQ0EsTUFBTUEsSUFBSUEsRUFBRUEsQ0FBQ0E7WUFDdkNBLElBQUlBLFlBQVlBLEdBQUdBLE1BQU1BLENBQUNBLElBQUlBLElBQUlBLEVBQUVBLENBQUNBO1lBQ3JDQSxJQUFJQSxLQUFLQSxHQUFHQSxrQkFBT0EsQ0FBQ0EsTUFBTUEsQ0FBQ0EsQ0FBQ0E7WUFDNUJBLElBQUlBLElBQUlBLEdBQUdBLFlBQVlBLENBQUNBLFFBQVFBLENBQUNBLENBQUNBO1lBQ2xDQSxJQUFJQSxLQUFLQSxHQUFHQSxZQUFZQSxDQUFDQSxPQUFPQSxDQUFDQSxDQUFDQTtZQUNsQ0EsSUFBSUEsU0FBU0EsR0FBR0EsS0FBS0EsQ0FBQ0E7WUFDdEJBLElBQUlBLGtCQUFrQkEsR0FBR0EsSUFBSUEsQ0FBQ0E7WUFDOUJBLEVBQUVBLENBQUNBLENBQUNBLFlBQVlBLENBQUNBLENBQUNBLENBQUNBO2dCQUNqQkEsSUFBSUEsVUFBVUEsR0FBR0EsWUFBWUEsQ0FBQ0EsVUFBVUEsQ0FBQ0E7Z0JBQ3pDQSxPQUFPQSxDQUFDQSxPQUFPQSxDQUFDQSxVQUFVQSxFQUFFQSxVQUFDQSxTQUFTQTtvQkFDcENBLEVBQUVBLENBQUNBLENBQUNBLENBQUNBLFFBQVFBLENBQUNBLENBQUNBLENBQUNBO3dCQUNkQSxJQUFJQSxLQUFLQSxHQUFHQSxTQUFTQSxDQUFDQSxLQUFLQSxDQUFDQTt3QkFDNUJBLE9BQU9BLENBQUNBLE9BQU9BLENBQUNBLEtBQUtBLEVBQUVBLFVBQUNBLElBQUlBOzRCQUMxQkEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsUUFBUUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7Z0NBQ2RBLElBQUlBLGFBQWFBLEdBQUdBLElBQUlBLENBQUNBLGFBQWFBLENBQUNBO2dDQUN2Q0EsSUFBSUEsUUFBUUEsR0FBR0EsSUFBSUEsQ0FBQ0EsSUFBSUEsQ0FBQ0E7Z0NBQ3pCQSxJQUFJQSxpQkFBaUJBLEdBQUdBLElBQUlBLENBQUNBLFFBQVFBLENBQUNBO2dDQUN0Q0EsRUFBRUEsQ0FBQ0EsQ0FBQ0EsYUFBYUEsS0FBS0EsSUFBSUEsSUFBSUEsU0FBU0EsS0FBS0EsUUFBUUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7b0NBQ3JEQSxFQUFFQSxDQUFDQSxDQUFDQSxhQUFhQSxDQUFDQSxDQUFDQSxDQUFDQTt3Q0FDbEJBLEVBQUVBLENBQUNBLENBQUNBLEtBQUtBLENBQUNBLENBQUNBLENBQUNBOzRDQUNWQSxrQkFBa0JBLEdBQUdBLGFBQWFBLENBQUNBO3dDQUNyQ0EsQ0FBQ0E7d0NBQ0RBLEVBQUVBLENBQUNBLENBQUNBLGlCQUFpQkEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7NENBQ3RCQSxRQUFRQSxHQUFHQSxpQkFBaUJBLENBQUNBO3dDQUMvQkEsQ0FBQ0E7b0NBQ0hBLENBQUNBO2dDQUNIQSxDQUFDQTs0QkFDSEEsQ0FBQ0E7d0JBQ0hBLENBQUNBLENBQUNBLENBQUNBO29CQUNMQSxDQUFDQTtnQkFDSEEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7WUFDTEEsQ0FBQ0E7WUFDREEsRUFBRUEsQ0FBQ0EsQ0FBQ0Esa0JBQWtCQSxJQUFJQSxLQUFLQSxJQUFJQSxvQkFBU0EsQ0FBQ0EsWUFBWUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7Z0JBQzNEQSxNQUFNQSxDQUFDQSxXQUFXQSxHQUFHQSxVQUFVQSxDQUFDQSxJQUFJQSxDQUFDQSxVQUFVQSxDQUFDQSxZQUFZQSxFQUFFQSxFQUFFQSxPQUFPQSxFQUFFQSxVQUFVQSxDQUFDQSxpQkFBaUJBLEVBQUVBLFlBQVlBLEVBQUVBLE1BQU1BLENBQUNBLFFBQVFBLENBQUNBLFNBQVNBLEVBQUdBLFFBQVFBLEVBQ25IQSxLQUFLQSxHQUFHQSxHQUFHQSxHQUFHQSxrQkFBa0JBLEVBQUVBLGlCQUFpQkEsQ0FBQ0EsQ0FBQ0E7WUFDN0ZBLENBQUNBO1FBQ0hBLENBQUNBO1FBQ0hsQiw2QkFBQ0E7SUFBREEsQ0FqbUJBNUosQUFpbUJDNEosSUFBQTVKO0lBam1CWUEsaUNBQXNCQSxHQUF0QkEsc0JBaW1CWkEsQ0FBQUE7SUFHREEsQUFJQUE7OztPQURHQTtJQUNIQSxrQkFBT0EsQ0FBQ0EsT0FBT0EsQ0FBQ0EsaUJBQWlCQSxFQUFFQSxDQUFDQSxZQUFZQSxFQUFFQSxPQUFPQSxFQUFFQSxrQkFBa0JBLEVBQUVBLGlCQUFpQkEsRUFBRUEsZ0JBQWdCQSxFQUFFQSxXQUFXQSxFQUFFQSxXQUFXQSxFQUFFQSxVQUFDQSxVQUFVQSxFQUFFQSxLQUFLQSxFQUFFQSxhQUFhQSxFQUFFQSxlQUFlQSxFQUFFQSxPQUFzQkEsRUFBRUEsU0FBNkJBLEVBQUVBLFNBQXNDQTtRQUU3UkEsSUFBSUEsTUFBTUEsR0FBR0EsSUFBSUEsc0JBQXNCQSxFQUFFQSxDQUFDQTtRQUMxQ0EsTUFBTUEsQ0FBQ0EsVUFBVUEsR0FBR0EsZUFBZUEsQ0FBQ0E7UUFFcENBLEFBQ0FBLHFDQURxQ0E7WUFDakNBLFNBQVNBLEdBQUdBLE9BQU9BLENBQUNBLFFBQVFBLEVBQUVBLENBQUNBO1FBQ25DQSxDQUFDQSxDQUFDQSxPQUFPQSxDQUFDQSxTQUFTQSxFQUFFQSxVQUFDQSxJQUFXQTtZQUMvQkEsSUFBSUEsV0FBV0EsR0FBR0EsdUNBQTRCQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQTtZQUNyREEsTUFBTUEsQ0FBQ0EsSUFBSUEsR0FBR0EsVUFBVUEsQ0FBQ0EsR0FBR0EseUJBQWNBLENBQUNBLElBQUlBLEVBQUVBLFdBQVdBLEVBQUVBLFNBQVNBLEVBQUVBLE1BQU1BLENBQUNBLENBQUNBO1FBQ25GQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUVIQSxBQUNGQSxzQ0FEd0NBO1FBQ3hDQSxPQUFPQSxDQUFDQSxnQkFBZ0JBLENBQUNBLFVBQUNBLE9BQWlCQTtZQUMxQ0EsSUFBSUEsS0FBS0EsR0FBR0EsT0FBT0EsQ0FBQ0EsUUFBUUEsRUFBRUEsQ0FBQ0E7WUFDL0JBLENBQUNBLENBQUNBLE9BQU9BLENBQUNBLEtBQUtBLEVBQUVBLFVBQUNBLElBQVdBO2dCQUM1QkEsTUFBTUEsQ0FBQ0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7b0JBQ2RBLEtBQUtBLHFCQUFVQSxDQUFDQSxRQUFRQTt3QkFDdkJBLElBQUlBLEtBQUtBLEdBQUdBLFlBQVlBLENBQUNBLE9BQU9BLENBQUNBLElBQUlBLENBQUNBLENBQUNBLENBQUNBO3dCQUN4Q0EsT0FBT0EsQ0FBQ0EsT0FBT0EsQ0FBQ0EsS0FBS0EsRUFBRUEsVUFBQ0EsSUFBSUE7NEJBQ3BCQSxJQUFJQSxDQUFDQSxRQUFRQSxHQUFHQSx1Q0FBNEJBLENBQUNBLHVCQUFZQSxFQUFFQSxFQUFFQSxJQUFJQSxDQUFDQSxDQUFDQTt3QkFDckVBLENBQUNBLENBQUNBLENBQUNBO3dCQUNUQSxNQUFNQSxDQUFDQSxJQUFJQSxDQUFDQSxHQUFHQSxLQUFLQSxDQUFDQTt3QkFDckJBLEtBQUtBLENBQUNBO29CQUNGQSxLQUFLQSxxQkFBVUEsQ0FBQ0EsU0FBU0EsQ0FBQ0E7b0JBQzFCQSxLQUFLQSxxQkFBVUEsQ0FBQ0EsTUFBTUEsQ0FBQ0E7b0JBQ3ZCQSxLQUFLQSxxQkFBVUEsQ0FBQ0EsTUFBTUEsQ0FBQ0E7b0JBQ3ZCQSxLQUFLQSxxQkFBVUEsQ0FBQ0EsYUFBYUEsQ0FBQ0E7b0JBQzlCQSxLQUFLQSxxQkFBVUEsQ0FBQ0EsYUFBYUEsQ0FBQ0E7b0JBRW5DQTt3QkFDQ0EsTUFBTUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsR0FBR0EsWUFBWUEsQ0FBQ0EsT0FBT0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7Z0JBQzdDQSxDQUFDQTtnQkFDR0EsY0FBR0EsQ0FBQ0EsS0FBS0EsQ0FBQ0EsUUFBUUEsRUFBRUEsSUFBSUEsRUFBRUEsV0FBV0EsRUFBRUEsTUFBTUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7WUFDMURBLENBQUNBLENBQUNBLENBQUNBO1lBQ0hBLE1BQU1BLENBQUNBLFNBQVNBLEVBQUVBLENBQUNBO1lBQ2hCQSxVQUFVQSxDQUFDQSxVQUFVQSxDQUFDQSx3QkFBd0JBLEVBQUVBLE1BQU1BLENBQUNBLENBQUNBO1lBQ3hEQSxJQUFJQSxDQUFDQSxNQUFNQSxDQUFDQSxVQUFVQSxDQUFDQSxDQUFDQTtRQUM1QkEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7UUFFREEsQUFHQUEsd0RBSHdEQTtRQUN4REEsMERBQTBEQTtRQUMxREEsWUFBWUE7WUFDUkEsTUFBTUEsR0FBR0EsU0FBU0EsQ0FBQ0EsTUFBTUEsRUFBRUEsQ0FBQ0E7UUFDaENBLEVBQUVBLENBQUNBLENBQUNBLFdBQVdBLElBQUlBLE1BQU1BLENBQUNBLENBQUNBLENBQUNBO1lBQzFCQSxPQUFPQSxDQUFDQSxZQUFZQSxDQUFDQSxNQUFNQSxDQUFDQSxXQUFXQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUM1Q0EsQ0FBQ0E7UUFFREEsU0FBU0EsVUFBVUEsQ0FBQ0EsSUFBSUEsRUFBRUEsU0FBU0EsRUFBRUEsTUFBTUE7WUFDekMySixNQUFNQSxDQUFDQSxJQUFJQSxDQUFDQSxNQUFNQSxDQUFDQSxVQUFDQSxHQUFHQTtnQkFDckJBLE1BQU1BLENBQUNBLHVCQUFZQSxDQUFDQSxHQUFHQSxDQUFDQSxLQUFLQSxTQUFTQSxJQUFJQSwwQkFBZUEsQ0FBQ0EsTUFBTUEsRUFBRUEsb0JBQVNBLENBQUNBLEdBQUdBLENBQUNBLENBQUNBLENBQUNBO1lBQ3BGQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUNMQSxDQUFDQTtRQUNEM0osTUFBTUEsQ0FBQ0EsTUFBTUEsQ0FBQ0E7SUFDaEJBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO0FBRU5BLENBQUNBLEVBbnNCTSxVQUFVLEtBQVYsVUFBVSxRQW1zQmhCOztBQ3RzQkQseUNBQXlDO0FBQ3pDLDRDQUE0QztBQUM1QywyQ0FBMkM7QUFDM0MsMENBQTBDO0FBRTFDLElBQU8sVUFBVSxDQXlEaEI7QUF6REQsV0FBTyxVQUFVLEVBQUMsQ0FBQztJQUVOQSx5QkFBY0EsR0FBR0EscUJBQVVBLENBQUNBLGdCQUFnQkEsRUFDckRBLENBQUNBLFFBQVFBLEVBQUVBLGlCQUFpQkEsRUFBRUEsaUJBQWlCQSxFQUFFQSxnQkFBZ0JBLEVBQUVBLFdBQVdBLEVBQUVBLGNBQWNBLEVBQUVBLE9BQU9BLEVBQUVBLFVBQVVBLEVBQUVBLGtCQUFrQkEsRUFDcklBLFVBQUNBLE1BQU1BLEVBQUVBLGVBQWlEQSxFQUFFQSxlQUFlQSxFQUMxRUEsY0FBdUNBLEVBQUVBLFNBQTZCQSxFQUFFQSxZQUFZQSxFQUFFQSxLQUFLQSxFQUFFQSxRQUFRQSxFQUFFQSxnQkFBZ0JBO1FBRXRIQSxNQUFNQSxDQUFDQSxVQUFVQSxHQUFHQSxlQUFlQSxDQUFDQTtRQUNwQ0EsTUFBTUEsQ0FBQ0EsS0FBS0EsR0FBR0EsZUFBZUEsQ0FBQ0E7UUFDL0JBLE1BQU1BLENBQUNBLE9BQU9BLEdBQUdBLEtBQUtBLENBQUNBO1FBQ3ZCQSxNQUFNQSxDQUFDQSxRQUFRQSxHQUFHQSxJQUFJQSxDQUFDQTtRQUV2QkEsTUFBTUEsQ0FBQ0EsVUFBVUEsR0FBR0E7WUFDbEJBLFVBQVVBLEVBQUVBLEVBQUVBO1NBQ2ZBLENBQUNBO1FBRUZBLFVBQVVBLENBQUNBLFVBQVVBLENBQUNBLE1BQU1BLEVBQUVBLFNBQVNBLEVBQUVBLEtBQUtBLEVBQUVBLFFBQVFBLEVBQUVBLFlBQVlBLEVBQUVBLGVBQWVBLEVBQUVBLGVBQWVBLEVBQUVBLGdCQUFnQkEsQ0FBQ0EsQ0FBQ0E7UUFFNUhBLE1BQU1BLENBQUNBLEdBQUdBLENBQUNBLHdCQUF3QkEsRUFBRUE7WUFDbkMsVUFBVSxFQUFFLENBQUM7UUFDZixDQUFDLENBQUNBLENBQUNBO1FBRUhBLE1BQU1BLENBQUNBLEdBQUdBLENBQUNBLGNBQWNBLEVBQUVBLFVBQUNBLE1BQU1BO1lBQ2hDQSxVQUFVQSxFQUFFQSxDQUFDQTtRQUNmQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUVIQSxNQUFNQSxDQUFDQSxPQUFPQSxHQUFHQTtZQUNmQSxNQUFNQSxDQUFDQSxPQUFPQSxHQUFHQSxDQUFDQSxNQUFNQSxDQUFDQSxPQUFPQSxDQUFDQTtZQUNqQ0EsSUFBSUEsQ0FBQ0EsTUFBTUEsQ0FBQ0EsTUFBTUEsQ0FBQ0EsQ0FBQ0E7UUFDdEJBLENBQUNBLENBQUNBO1FBRUZBLFVBQVVBLEVBQUVBLENBQUNBO1FBRWJBLFNBQVNBLFVBQVVBO1lBQ2pCcUosTUFBTUEsQ0FBQ0EsRUFBRUEsR0FBR0EsWUFBWUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0E7WUFDL0JBLE1BQU1BLENBQUNBLElBQUlBLEdBQUdBLElBQUlBLENBQUNBO1lBQ25CQSxFQUFFQSxDQUFDQSxDQUFDQSxNQUFNQSxDQUFDQSxFQUFFQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFDZEEsSUFBSUEsR0FBR0EsR0FBR0EsVUFBVUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsZ0JBQWdCQSxFQUFFQSxPQUFPQSxFQUFFQSxNQUFNQSxDQUFDQSxFQUFFQSxDQUFDQSxDQUFDQTtnQkFDaEVBLEtBQUtBLENBQUNBLEdBQUdBLENBQUNBLEdBQUdBLENBQUNBLENBQ1pBLE9BQU9BLENBQUNBLFVBQVVBLElBQUlBLEVBQUVBLE1BQU1BLEVBQUVBLE9BQU9BLEVBQUVBLE1BQU1BO29CQUM3QyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO3dCQUNULE1BQU0sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO29CQUNyQixDQUFDO29CQUNELEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO3dCQUNoQixNQUFNLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsb0JBQW9CO29CQUM5RSxDQUFDLEdBRHdEO29CQUV6RCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUN0QixDQUFDLENBQUNBLENBQ0pBLEtBQUtBLENBQUNBLFVBQVVBLElBQUlBLEVBQUVBLE1BQU1BLEVBQUVBLE9BQU9BLEVBQUVBLE1BQU1BO29CQUMzQyxjQUFHLENBQUMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsSUFBSSxHQUFHLEdBQUcsR0FBRyxNQUFNLENBQUMsQ0FBQztnQkFDaEUsQ0FBQyxDQUFDQSxDQUFDQTtZQUNMQSxDQUFDQTtZQUFDQSxJQUFJQSxDQUFDQSxDQUFDQTtnQkFDTkEsTUFBTUEsQ0FBQ0EsUUFBUUEsR0FBR0EsSUFBSUEsQ0FBQ0E7Z0JBQ3ZCQSxJQUFJQSxDQUFDQSxNQUFNQSxDQUFDQSxNQUFNQSxDQUFDQSxDQUFDQTtZQUN0QkEsQ0FBQ0E7UUFDSEEsQ0FBQ0E7SUFDSHJKLENBQUNBLENBQUNBLENBQUNBLENBQUNBO0FBQ1ZBLENBQUNBLEVBekRNLFVBQVUsS0FBVixVQUFVLFFBeURoQjs7QUM5REQsQUFDQSx5Q0FEeUM7QUFDekMsSUFBTyxVQUFVLENBd0JoQjtBQXhCRCxXQUFPLFVBQVUsRUFBQyxDQUFDO0lBRWpCQSxBQU1BQTs7Ozs7T0FER0E7YUFDYUEsV0FBV0EsQ0FBQ0EsRUFBRUE7UUFDNUIrSyxBQUNBQSw2RUFENkVBO1lBQ3pFQSxLQUFLQSxHQUFHQSw0Q0FBNENBLENBQUNBO1FBQ3pEQSxJQUFJQSxNQUFNQSxHQUFHQSxLQUFLQSxDQUFDQSxJQUFJQSxDQUFDQSxFQUFFQSxDQUFDQSxDQUFDQTtRQUM1QkEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsT0FBT0EsQ0FBQ0EsU0FBU0EsQ0FBQ0EsTUFBTUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7WUFDOUJBLElBQUlBLEVBQUVBLEdBQUdBLENBQUNBLElBQUlBLEdBQUdBLE1BQU1BLENBQUNBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLEtBQUtBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO1lBQ3RDQSxJQUFJQSxFQUFFQSxHQUFHQSxDQUFDQSxJQUFJQSxHQUFHQSxNQUFNQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQSxLQUFLQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtZQUN0Q0EsSUFBSUEsRUFBRUEsR0FBR0EsQ0FBQ0EsSUFBSUEsR0FBR0EsTUFBTUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsS0FBS0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7WUFDdENBLElBQUlBLEVBQUVBLEdBQUdBLENBQUNBLElBQUlBLEdBQUdBLE1BQU1BLENBQUNBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLEtBQUtBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO1lBQ3RDQSxJQUFJQSxNQUFNQSxHQUFHQSxFQUFFQSxHQUFHQSxFQUFFQSxHQUFHQSxFQUFFQSxHQUFHQSxFQUFFQSxDQUFDQTtZQUMvQkEsTUFBTUEsQ0FBQ0EsTUFBTUEsQ0FBQ0E7UUFDaEJBLENBQUNBO1FBQUNBLElBQUlBLENBQUNBLENBQUNBO1lBQ05BLE1BQU1BLENBQUNBLENBQUNBLENBQUNBO1FBQ1hBLENBQUNBO0lBQ0hBLENBQUNBO0lBZGUvSyxzQkFBV0EsR0FBWEEsV0FjZkEsQ0FBQUE7QUFFSEEsQ0FBQ0EsRUF4Qk0sVUFBVSxLQUFWLFVBQVUsUUF3QmhCOztBQ3pCRCx5Q0FBeUM7QUFDekMsMkNBQTJDO0FBQzNDLDBDQUEwQztBQUMxQyxzQ0FBc0M7QUFFdEMsSUFBTyxVQUFVLENBb0RoQjtBQXBERCxXQUFPLFVBQVUsRUFBQyxDQUFDO0lBRU5BLDBCQUFlQSxHQUFHQSxxQkFBVUEsQ0FBQ0EsaUJBQWlCQSxFQUFFQSxDQUFDQSxRQUFRQSxFQUFFQSxpQkFBaUJBLEVBQUVBLGdCQUFnQkEsRUFBRUEsaUJBQWlCQSxFQUFFQSxpQkFBaUJBLEVBQUVBLFNBQVNBLEVBQUVBLFNBQVNBLEVBQUVBLGdCQUFnQkEsRUFBRUEsY0FBY0EsRUFBRUEsV0FBV0EsRUFBRUEsY0FBY0EsRUFBRUEsT0FBT0EsRUFBRUEsVUFBVUEsRUFBRUEsa0JBQWtCQSxFQUMzUUEsVUFBQ0EsTUFBTUEsRUFBRUEsZUFBa0RBLEVBQUVBLGNBQXNEQSxFQUFFQSxlQUFlQSxFQUFFQSxlQUFlQSxFQUFFQSxPQUFPQSxFQUFFQSxPQUFPQSxFQUFFQSxjQUFjQSxFQUFFQSxZQUFZQSxFQUFFQSxTQUE2QkEsRUFBRUEsWUFBWUEsRUFBRUEsS0FBS0EsRUFBRUEsUUFBUUEsRUFBRUEsZ0JBQWdCQTtRQUVyUkEsTUFBTUEsQ0FBQ0EsVUFBVUEsR0FBR0EsZUFBZUEsQ0FBQ0E7UUFDcENBLE1BQU1BLENBQUNBLEtBQUtBLEdBQUdBLGVBQWVBLENBQUNBO1FBQy9CQSxNQUFNQSxDQUFDQSxHQUFHQSxDQUFDQSx3QkFBd0JBLEVBQUVBO1lBQ25DLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdEIsQ0FBQyxDQUFDQSxDQUFDQTtRQUVIQSxNQUFNQSxDQUFDQSxXQUFXQSxHQUFHQTtZQUNuQkEsSUFBSUEsRUFBRUEsYUFBYUE7WUFDbkJBLHFCQUFxQkEsRUFBRUEsS0FBS0E7WUFDNUJBLHVCQUF1QkEsRUFBRUEsS0FBS0E7WUFDOUJBLFdBQVdBLEVBQUVBLEtBQUtBO1lBQ2xCQSxhQUFhQSxFQUFFQSxFQUFFQTtZQUNqQkEsYUFBYUEsRUFBRUE7Z0JBQ2JBLFVBQVVBLEVBQUVBLFNBQVNBLENBQUNBLE1BQU1BLEVBQUVBLENBQUNBLEdBQUdBLENBQUNBLElBQUlBLEVBQUVBO2FBQzFDQTtZQUNEQSxVQUFVQSxFQUFFQTtnQkFDVkE7b0JBQ0VBLEtBQUtBLEVBQUVBLElBQUlBO29CQUNYQSxXQUFXQSxFQUFFQSxNQUFNQTtvQkFDbkJBLFdBQVdBLEVBQUVBLElBQUlBO29CQUNqQkEsWUFBWUEsRUFBRUEsY0FBY0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsaUJBQWlCQSxDQUFDQTtpQkFDcERBO2dCQUNEQTtvQkFDRUEsS0FBS0EsRUFBRUEsUUFBUUE7b0JBQ2ZBLFdBQVdBLEVBQUVBLElBQUlBO29CQUNqQkEsZUFBZUEsRUFBRUEsVUFBQ0EsS0FBS0E7d0JBQ3JCQSxBQUNBQSx1Q0FEdUNBO3dCQUN2Q0EsTUFBTUEsQ0FBQ0EsVUFBVUEsQ0FBQ0EsV0FBV0EsQ0FBQ0EsS0FBS0EsQ0FBQ0EsTUFBTUEsQ0FBQ0EsQ0FBQ0E7b0JBQzlDQSxDQUFDQTtpQkFDRkE7Z0JBQ0RBLEVBQUVBLEtBQUtBLEVBQUVBLFdBQVdBLEVBQ2xCQSxXQUFXQSxFQUFFQSxNQUFNQSxFQUNuQkEsWUFBWUEsRUFBRUEsY0FBY0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsK0JBQStCQSxDQUFDQSxFQUNqRUEsZUFBZUEsRUFBRUEsVUFBQ0EsS0FBS0E7b0JBQ3JCQSxBQUNBQSxzQ0FEc0NBO3dCQUNsQ0EsS0FBS0EsR0FBR0EsS0FBS0EsQ0FBQ0EsWUFBWUEsQ0FBQ0EsS0FBS0EsSUFBSUEsQ0FBQ0EsQ0FBQ0E7b0JBQzFDQSxJQUFJQSxLQUFLQSxHQUFHQSxLQUFLQSxDQUFDQSxZQUFZQSxDQUFDQSxLQUFLQSxJQUFJQSxDQUFDQSxDQUFDQTtvQkFDMUNBLElBQUlBLE9BQU9BLEdBQUdBLEtBQUtBLENBQUNBLFlBQVlBLENBQUNBLE9BQU9BLElBQUlBLENBQUNBLENBQUNBO29CQUM5Q0EsSUFBSUEsS0FBS0EsR0FBR0EsS0FBS0EsQ0FBQ0EsWUFBWUEsQ0FBQ0EsS0FBS0EsSUFBSUEsQ0FBQ0EsQ0FBQ0E7b0JBQzFDQSxNQUFNQSxDQUFDQSxLQUFLQSxHQUFHQSxLQUFLQSxHQUFHQSxPQUFPQSxHQUFHQSxLQUFLQSxDQUFDQTtnQkFDekNBLENBQUNBLEVBQ0ZBO2FBQ0ZBO1NBQ0ZBLENBQUNBO1FBRUZBLFVBQVVBLENBQUNBLFVBQVVBLENBQUNBLE1BQU1BLEVBQUVBLFNBQVNBLEVBQUVBLEtBQUtBLEVBQUVBLFFBQVFBLEVBQUVBLFlBQVlBLEVBQUVBLGVBQWVBLEVBQUVBLGVBQWVBLEVBQUVBLGdCQUFnQkEsQ0FBQ0EsQ0FBQ0E7SUFDOUhBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO0FBQ05BLENBQUNBLEVBcERNLFVBQVUsS0FBVixVQUFVLFFBb0RoQjs7QUN6REQseUNBQXlDO0FBQ3pDLDJDQUEyQztBQUUzQyxJQUFPLFVBQVUsQ0F1SGhCO0FBdkhELFdBQU8sVUFBVSxFQUFDLENBQUM7SUFFTkEsc0NBQTJCQSxHQUFHQSxxQkFBVUEsQ0FBQ0EsNkJBQTZCQSxFQUFFQSxDQUFDQSxRQUFRQSxFQUFFQSxpQkFBaUJBLEVBQUVBLGtCQUFrQkEsRUFBRUEsaUJBQWlCQSxFQUFFQSxTQUFTQSxFQUFFQSxTQUFTQSxFQUFFQSxnQkFBZ0JBLEVBQUVBLGNBQWNBLEVBQUVBLFdBQVdBLEVBQUVBLGNBQWNBLEVBQUVBLE9BQU9BLEVBQUVBLFVBQVVBLEVBQUVBLGtCQUFrQkEsRUFDbFJBLFVBQUNBLE1BQU1BLEVBQUVBLGVBQWlEQSxFQUFFQSxnQkFBZ0JBLEVBQUVBLGVBQWVBLEVBQUVBLE9BQU9BLEVBQUVBLE9BQU9BLEVBQUVBLGNBQWNBLEVBQUVBLFlBQVlBLEVBQUVBLFNBQTZCQSxFQUFFQSxZQUFZQSxFQUFFQSxLQUFLQSxFQUFFQSxRQUFRQSxFQUFFQSxnQkFBZ0JBO1FBRTNOQSxNQUFNQSxDQUFDQSxVQUFVQSxHQUFHQSxlQUFlQSxDQUFDQTtRQUNwQ0EsTUFBTUEsQ0FBQ0EsS0FBS0EsR0FBR0EsZUFBZUEsQ0FBQ0E7UUFDL0JBLE1BQU1BLENBQUNBLGdCQUFnQkEsR0FBR0EsZ0JBQWdCQSxDQUFDQTtRQUMzQ0EsTUFBTUEsQ0FBQ0EsR0FBR0EsQ0FBQ0Esd0JBQXdCQSxFQUFFQTtZQUNuQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3RCLENBQUMsQ0FBQ0EsQ0FBQ0E7UUFFSEEsTUFBTUEsQ0FBQ0EsV0FBV0EsR0FBR0E7WUFDbkJBLElBQUlBLEVBQUVBLG1CQUFtQkE7WUFDekJBLHFCQUFxQkEsRUFBRUEsSUFBSUE7WUFDM0JBLHVCQUF1QkEsRUFBRUEsS0FBS0E7WUFDOUJBLFdBQVdBLEVBQUVBLElBQUlBO1lBQ2pCQSxhQUFhQSxFQUFFQSxFQUFFQTtZQUNqQkEsYUFBYUEsRUFBRUE7Z0JBQ2JBLFVBQVVBLEVBQUVBLFNBQVNBLENBQUNBLE1BQU1BLEVBQUVBLENBQUNBLEdBQUdBLENBQUNBLElBQUlBLEVBQUVBO2FBQzFDQTtZQUNEQSxVQUFVQSxFQUFFQTtnQkFDVkE7b0JBQ0VBLEtBQUtBLEVBQUVBLGVBQWVBO29CQUN0QkEsV0FBV0EsRUFBRUEsTUFBTUE7aUJBQ3BCQTtnQkFDREE7b0JBQ0VBLEtBQUtBLEVBQUVBLG9CQUFvQkE7b0JBQzNCQSxXQUFXQSxFQUFFQSxXQUFXQTtpQkFDekJBO2dCQUNEQTtvQkFDRUEsS0FBS0EsRUFBRUEsOEJBQThCQTtvQkFDckNBLFdBQVdBLEVBQUVBLGlCQUFpQkE7aUJBQy9CQTtnQkFDREE7b0JBQ0VBLEtBQUtBLEVBQUVBLE1BQU1BO29CQUNiQSxXQUFXQSxFQUFFQSxNQUFNQTtvQkFDbkJBLFlBQVlBLEVBQUVBLGNBQWNBLENBQUNBLEdBQUdBLENBQUNBLGlDQUFpQ0EsQ0FBQ0E7aUJBQ3BFQTthQUNGQTtTQUNGQSxDQUFDQTtRQUVGQSxJQUFJQSxXQUFXQSxHQUFHQTtZQUNoQkEsTUFBTUEsRUFBRUEsaUJBQWlCQTtZQUN6QkEsT0FBT0EsRUFBRUEsd0JBQXdCQTtZQUNqQ0EsTUFBTUEsRUFBRUEsdUJBQXVCQTtTQUNoQ0EsQ0FBQ0E7UUFDRkEsTUFBTUEsQ0FBQ0EsVUFBVUEsR0FBR0EsVUFBQ0EsU0FBZ0JBO1lBQ25DQSxFQUFFQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQSxTQUFTQSxJQUFJQSxXQUFXQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFDaENBLE1BQU1BLENBQUNBLGVBQWVBLENBQUNBO1lBQ3pCQSxDQUFDQTtZQUNEQSxJQUFJQTtnQkFBQ0EsTUFBTUEsQ0FBQ0EsV0FBV0EsQ0FBQ0EsU0FBU0EsQ0FBQ0EsR0FBR0EsZ0JBQWdCQSxDQUFDQTtRQUN4REEsQ0FBQ0EsQ0FBQUE7UUFFREEsVUFBVUEsQ0FBQ0EsVUFBVUEsQ0FBQ0EsTUFBTUEsRUFBRUEsU0FBU0EsRUFBRUEsS0FBS0EsRUFBRUEsUUFBUUEsRUFBRUEsWUFBWUEsRUFBRUEsZUFBZUEsRUFBRUEsZUFBZUEsRUFBRUEsZ0JBQWdCQSxDQUFDQSxDQUFDQTtRQUU1SEEsTUFBTUEsQ0FBQ0EsWUFBWUEsR0FBR0EsVUFBQ0EsUUFBUUE7WUFDN0JBLEVBQUVBLENBQUNBLDRCQUE0QkEsQ0FBbUNBO2dCQUNoRUEsVUFBVUEsRUFBRUEsUUFBUUE7Z0JBQ3BCQSxLQUFLQSxFQUFFQSxPQUFPQTtnQkFDZEEsT0FBT0EsRUFBRUEsVUFBQ0EsTUFBY0E7b0JBQ3RCQSxFQUFFQSxDQUFDQSxDQUFDQSxNQUFNQSxDQUFDQSxDQUFDQSxDQUFDQTt3QkFDWEEsU0FBU0EsY0FBY0EsQ0FBQ0EsUUFBUUEsRUFBRUEsSUFBSUE7NEJBQ3BDb0osRUFBRUEsQ0FBQ0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7Z0NBQ1RBLFlBQVlBLENBQUNBLElBQUlBLEVBQUVBO29DQUNqQkEsY0FBY0EsQ0FBQ0EsUUFBUUEsRUFBRUEsUUFBUUEsQ0FBQ0EsS0FBS0EsRUFBRUEsQ0FBQ0EsQ0FBQ0E7Z0NBQzdDQSxDQUFDQSxDQUFDQSxDQUFDQTs0QkFDTEEsQ0FBQ0E7NEJBQUNBLElBQUlBLENBQUNBLENBQUNBO2dDQUNOQSxVQUFVQSxFQUFFQSxDQUFDQTs0QkFDZkEsQ0FBQ0E7d0JBQ0hBLENBQUNBO3dCQUVEcEosY0FBY0EsQ0FBQ0EsUUFBUUEsRUFBRUEsUUFBUUEsQ0FBQ0EsS0FBS0EsRUFBRUEsQ0FBQ0EsQ0FBQ0E7b0JBQzdDQSxDQUFDQTtnQkFDSEEsQ0FBQ0E7Z0JBQ0RBLEtBQUtBLEVBQUVBLDBCQUEwQkE7Z0JBQ2pDQSxNQUFNQSxFQUFFQSxtREFBbURBO2dCQUMzREEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxPQUFPQSxFQUFFQSxZQUFZQTtnQkFDckJBLE1BQU1BLEVBQUVBLDZDQUE2Q0E7Z0JBQ3JEQSxXQUFXQSxFQUFFQSxxQkFBcUJBO2FBQ25DQSxDQUFDQSxDQUFDQSxJQUFJQSxFQUFFQSxDQUFDQTtRQUNaQSxDQUFDQSxDQUFDQTtRQUVGQSxTQUFTQSxZQUFZQSxDQUFDQSxTQUFTQSxFQUFFQSxZQUFZQTtZQUMzQ3NKLElBQUlBLElBQUlBLEdBQUdBLENBQUNBLFNBQVNBLElBQUlBLEVBQUVBLENBQUNBLENBQUNBLEtBQUtBLENBQUNBO1lBQ25DQSxFQUFFQSxDQUFDQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFDVEEsT0FBT0EsQ0FBQ0EsR0FBR0EsQ0FBQ0Esb0NBQW9DQSxHQUFHQSxJQUFJQSxDQUFDQSxDQUFDQTtnQkFDekRBLElBQUlBLEdBQUdBLEdBQUdBLGlDQUFzQkEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0E7Z0JBQ3ZDQSxLQUFLQSxDQUFDQSxNQUFNQSxDQUFDQSxHQUFHQSxDQUFDQSxDQUNmQSxPQUFPQSxDQUFDQSxVQUFVQSxJQUFJQSxFQUFFQSxNQUFNQSxFQUFFQSxPQUFPQSxFQUFFQSxNQUFNQTtvQkFDN0MsWUFBWSxFQUFFLENBQUM7Z0JBQ2pCLENBQUMsQ0FBQ0EsQ0FDRkEsS0FBS0EsQ0FBQ0EsVUFBVUEsSUFBSUEsRUFBRUEsTUFBTUEsRUFBRUEsT0FBT0EsRUFBRUEsTUFBTUE7b0JBQzNDLGNBQUcsQ0FBQyxJQUFJLENBQUMsdUNBQXVDLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxJQUFJLEdBQUcsR0FBRyxHQUFHLE1BQU0sQ0FBQyxDQUFDO2dCQUN0RixDQUFDLENBQUNBLENBQUNBO1lBQ1BBLENBQUNBO1lBQUNBLElBQUlBLENBQUNBLENBQUNBO2dCQUNOQSxPQUFPQSxDQUFDQSxHQUFHQSxDQUFDQSxrQ0FBa0NBLEdBQUdBLE9BQU9BLENBQUNBLE1BQU1BLENBQUNBLFNBQVNBLENBQUNBLENBQUNBLENBQUNBO1lBQzlFQSxDQUFDQTtRQUNIQSxDQUFDQTtRQUVEdEosU0FBU0EsVUFBVUE7WUFDakJxSixJQUFJQSxHQUFHQSxHQUFHQSxtQ0FBd0JBLEVBQUVBLENBQUNBO1lBQ3JDQSxLQUFLQSxDQUFDQSxHQUFHQSxDQUFDQSxHQUFHQSxDQUFDQSxDQUNaQSxPQUFPQSxDQUFDQSxVQUFVQSxJQUFJQSxFQUFFQSxNQUFNQSxFQUFFQSxPQUFPQSxFQUFFQSxNQUFNQTtnQkFDN0MsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztvQkFDVCxBQUNBLHdEQUR3RDtvQkFDeEQsTUFBTSxDQUFDLGlCQUFpQixHQUFHLGtDQUF1QixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDL0QsTUFBTSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7b0JBQ3RCLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3RCLENBQUM7WUFDSCxDQUFDLENBQUNBLENBQ0ZBLEtBQUtBLENBQUNBLFVBQVVBLElBQUlBLEVBQUVBLE1BQU1BLEVBQUVBLE9BQU9BLEVBQUVBLE1BQU1BO2dCQUMzQyxjQUFHLENBQUMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsSUFBSSxHQUFHLEdBQUcsR0FBRyxNQUFNLENBQUMsQ0FBQztZQUNoRSxDQUFDLENBQUNBLENBQUNBO1FBQ1BBLENBQUNBO1FBRURySixVQUFVQSxFQUFFQSxDQUFDQTtJQUNmQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtBQUNSQSxDQUFDQSxFQXZITSxVQUFVLEtBQVYsVUFBVSxRQXVIaEI7O0FDMUhELHlDQUF5QztBQUV6QyxJQUFPLFVBQVUsQ0F5Mk5oQjtBQXoyTkQsV0FBTyxVQUFVLEVBQUMsQ0FBQztJQUVOQSxpQkFBTUEsR0FDakJBO1FBQ0VBLElBQUlBLEVBQUVBLHNDQUFzQ0E7UUFDNUNBLFNBQVNBLEVBQUVBLGdDQUFnQ0E7UUFDM0NBLGFBQWFBLEVBQUVBO1lBQ2JBLGVBQWVBLEVBQUVBO2dCQUNmQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLE9BQU9BLEVBQUVBO3dCQUNQQSxNQUFNQSxFQUFFQSxPQUFPQTt3QkFDZkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxPQUFPQSxFQUFFQTs0QkFDUEEsTUFBTUEsRUFBRUEsUUFBUUE7NEJBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTt5QkFDbEJBO3FCQUNGQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSwyQ0FBMkNBO2FBQ3hEQTtZQUNEQSw2Q0FBNkNBLEVBQUVBO2dCQUM3Q0EsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxRQUFRQSxFQUFFQTt3QkFDUkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSwyQkFBMkJBO3FCQUMzQ0E7b0JBQ0RBLFdBQVdBLEVBQUVBO3dCQUNYQSxNQUFNQSxFQUFFQSxTQUFTQTt3QkFDakJBLGFBQWFBLEVBQUVBLHNDQUFzQ0E7cUJBQ3REQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLFNBQVNBO3dCQUNqQkEsYUFBYUEsRUFBRUEsbUJBQW1CQTtxQkFDbkNBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxzSEFBc0hBO3FCQUN0SUE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsa0VBQWtFQTthQUMvRUE7WUFDREEseUJBQXlCQSxFQUFFQTtnQkFDekJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsS0FBS0EsRUFBRUE7d0JBQ0xBLE1BQU1BLEVBQUVBLE9BQU9BO3dCQUNmQSxhQUFhQSxFQUFFQSxvQkFBb0JBO3dCQUNuQ0EsT0FBT0EsRUFBRUE7NEJBQ1BBLE1BQU1BLEVBQUVBLFFBQVFBOzRCQUNoQkEsYUFBYUEsRUFBRUEsb0JBQW9CQTt5QkFDcENBO3FCQUNGQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLE9BQU9BO3dCQUNmQSxhQUFhQSxFQUFFQSxxQkFBcUJBO3dCQUNwQ0EsT0FBT0EsRUFBRUE7NEJBQ1BBLE1BQU1BLEVBQUVBLFFBQVFBOzRCQUNoQkEsYUFBYUEsRUFBRUEscUJBQXFCQTt5QkFDckNBO3FCQUNGQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSw4Q0FBOENBO2FBQzNEQTtZQUNEQSwrQkFBK0JBLEVBQUVBO2dCQUMvQkEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEsT0FBT0E7d0JBQ2ZBLGFBQWFBLEVBQUVBLCtCQUErQkE7d0JBQzlDQSxPQUFPQSxFQUFFQTs0QkFDUEEsTUFBTUEsRUFBRUEsUUFBUUE7NEJBQ2hCQSxhQUFhQSxFQUFFQSwrQkFBK0JBO3lCQUMvQ0E7cUJBQ0ZBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEsU0FBU0E7d0JBQ2pCQSxhQUFhQSxFQUFFQSxrREFBa0RBO3FCQUNsRUE7b0JBQ0RBLFlBQVlBLEVBQUVBO3dCQUNaQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLDJFQUEyRUE7cUJBQzNGQTtvQkFDREEsV0FBV0EsRUFBRUE7d0JBQ1hBLE1BQU1BLEVBQUVBLCtDQUErQ0E7d0JBQ3ZEQSxVQUFVQSxFQUFFQSxzREFBc0RBO3FCQUNuRUE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLDZDQUE2Q0E7cUJBQzdEQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSxvREFBb0RBO2FBQ2pFQTtZQUNEQSxzQkFBc0JBLEVBQUVBO2dCQUN0QkEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsT0FBT0E7d0JBQ2ZBLGFBQWFBLEVBQUVBLG1QQUFtUEE7d0JBQ2xRQSxPQUFPQSxFQUFFQTs0QkFDUEEsTUFBTUEsRUFBRUEsUUFBUUE7NEJBQ2hCQSxhQUFhQSxFQUFFQSxtUEFBbVBBO3lCQUNuUUE7cUJBQ0ZBO29CQUNEQSxTQUFTQSxFQUFFQTt3QkFDVEEsTUFBTUEsRUFBRUEsT0FBT0E7d0JBQ2ZBLGFBQWFBLEVBQUVBLDZQQUE2UEE7d0JBQzVRQSxPQUFPQSxFQUFFQTs0QkFDUEEsTUFBTUEsRUFBRUEsUUFBUUE7NEJBQ2hCQSxhQUFhQSxFQUFFQSw2UEFBNlBBO3lCQUM3UUE7cUJBQ0ZBO29CQUNEQSxLQUFLQSxFQUFFQTt3QkFDTEEsTUFBTUEsRUFBRUEsT0FBT0E7d0JBQ2ZBLGFBQWFBLEVBQUVBLDBFQUEwRUE7d0JBQ3pGQSxPQUFPQSxFQUFFQTs0QkFDUEEsTUFBTUEsRUFBRUEsaUNBQWlDQTs0QkFDekNBLFVBQVVBLEVBQUVBLHdDQUF3Q0E7eUJBQ3JEQTtxQkFDRkE7b0JBQ0RBLE9BQU9BLEVBQUVBO3dCQUNQQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLDhFQUE4RUE7cUJBQzlGQTtvQkFDREEsaUJBQWlCQSxFQUFFQTt3QkFDakJBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsa0NBQWtDQTtxQkFDbERBO29CQUNEQSxXQUFXQSxFQUFFQTt3QkFDWEEsTUFBTUEsRUFBRUEsb0NBQW9DQTt3QkFDNUNBLFVBQVVBLEVBQUVBLDJDQUEyQ0E7cUJBQ3hEQTtvQkFDREEsZUFBZUEsRUFBRUE7d0JBQ2ZBLE1BQU1BLEVBQUVBLGdDQUFnQ0E7d0JBQ3hDQSxVQUFVQSxFQUFFQSx1Q0FBdUNBO3FCQUNwREE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLHlGQUF5RkE7d0JBQ3hHQSxXQUFXQSxFQUFFQSxFQUFFQTt3QkFDZkEsU0FBU0EsRUFBRUEsaUNBQWlDQTtxQkFDN0NBO29CQUNEQSxPQUFPQSxFQUFFQTt3QkFDUEEsTUFBTUEsRUFBRUEsT0FBT0E7d0JBQ2ZBLGFBQWFBLEVBQUVBLCtEQUErREE7d0JBQzlFQSxPQUFPQSxFQUFFQTs0QkFDUEEsTUFBTUEsRUFBRUEsd0NBQXdDQTs0QkFDaERBLFVBQVVBLEVBQUVBLCtDQUErQ0E7eUJBQzVEQTtxQkFDRkE7b0JBQ0RBLGdCQUFnQkEsRUFBRUE7d0JBQ2hCQSxNQUFNQSxFQUFFQSxnQ0FBZ0NBO3dCQUN4Q0EsVUFBVUEsRUFBRUEsdUNBQXVDQTtxQkFDcERBO29CQUNEQSxXQUFXQSxFQUFFQTt3QkFDWEEsTUFBTUEsRUFBRUEsK0NBQStDQTt3QkFDdkRBLFVBQVVBLEVBQUVBLHNEQUFzREE7cUJBQ25FQTtvQkFDREEsaUJBQWlCQSxFQUFFQTt3QkFDakJBLE1BQU1BLEVBQUVBLDBDQUEwQ0E7d0JBQ2xEQSxVQUFVQSxFQUFFQSxpREFBaURBO3FCQUM5REE7b0JBQ0RBLE9BQU9BLEVBQUVBO3dCQUNQQSxNQUFNQSxFQUFFQSxTQUFTQTt3QkFDakJBLGFBQWFBLEVBQUVBLHNHQUFzR0E7cUJBQ3RIQTtvQkFDREEsd0JBQXdCQSxFQUFFQTt3QkFDeEJBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsc0xBQXNMQTtxQkFDdE1BO29CQUNEQSxLQUFLQSxFQUFFQTt3QkFDTEEsTUFBTUEsRUFBRUEsU0FBU0E7d0JBQ2pCQSxhQUFhQSxFQUFFQSx5REFBeURBO3FCQUN6RUE7b0JBQ0RBLGNBQWNBLEVBQUVBO3dCQUNkQSxNQUFNQSxFQUFFQSxPQUFPQTt3QkFDZkEsYUFBYUEsRUFBRUEsd0VBQXdFQTt3QkFDdkZBLE9BQU9BLEVBQUVBOzRCQUNQQSxNQUFNQSxFQUFFQSxzQ0FBc0NBOzRCQUM5Q0EsVUFBVUEsRUFBRUEsNkNBQTZDQTt5QkFDMURBO3FCQUNGQTtvQkFDREEsWUFBWUEsRUFBRUE7d0JBQ1pBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsK0VBQStFQTtxQkFDL0ZBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLDJDQUEyQ0E7YUFDeERBO1lBQ0RBLDBCQUEwQkEsRUFBRUE7Z0JBQzFCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLGVBQWVBLEVBQUVBO3dCQUNmQSxNQUFNQSxFQUFFQSxTQUFTQTt3QkFDakJBLGFBQWFBLEVBQUVBLGtEQUFrREE7cUJBQ2xFQTtvQkFDREEsUUFBUUEsRUFBRUE7d0JBQ1JBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsNkJBQTZCQTtxQkFDN0NBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEsU0FBU0E7d0JBQ2pCQSxhQUFhQSxFQUFFQSx3RUFBd0VBO3FCQUN4RkE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLDJHQUEyR0E7cUJBQzNIQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsMkRBQTJEQTtxQkFDM0VBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLCtDQUErQ0E7YUFDNURBO1lBQ0RBLDJCQUEyQkEsRUFBRUE7Z0JBQzNCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFNBQVNBLEVBQUVBO3dCQUNUQSxNQUFNQSxFQUFFQSxnREFBZ0RBO3dCQUN4REEsVUFBVUEsRUFBRUEsdURBQXVEQTtxQkFDcEVBO29CQUNEQSxZQUFZQSxFQUFFQTt3QkFDWkEsTUFBTUEsRUFBRUEsbURBQW1EQTt3QkFDM0RBLFVBQVVBLEVBQUVBLDBEQUEwREE7cUJBQ3ZFQTtvQkFDREEsU0FBU0EsRUFBRUE7d0JBQ1RBLE1BQU1BLEVBQUVBLGdEQUFnREE7d0JBQ3hEQSxVQUFVQSxFQUFFQSx1REFBdURBO3FCQUNwRUE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsZ0RBQWdEQTthQUM3REE7WUFDREEsa0NBQWtDQSxFQUFFQTtnQkFDbENBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsV0FBV0EsRUFBRUE7d0JBQ1hBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsbURBQW1EQTtxQkFDbkVBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLHVEQUF1REE7YUFDcEVBO1lBQ0RBLHFDQUFxQ0EsRUFBRUE7Z0JBQ3JDQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLGFBQWFBLEVBQUVBO3dCQUNiQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLGtFQUFrRUE7cUJBQ2xGQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLFNBQVNBO3dCQUNqQkEsYUFBYUEsRUFBRUEsd0RBQXdEQTtxQkFDeEVBO29CQUNEQSxZQUFZQSxFQUFFQTt3QkFDWkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSw2Q0FBNkNBO3FCQUM3REE7b0JBQ0RBLFNBQVNBLEVBQUVBO3dCQUNUQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLHlEQUF5REE7cUJBQ3pFQTtvQkFDREEsUUFBUUEsRUFBRUE7d0JBQ1JBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsMkRBQTJEQTtxQkFDM0VBO29CQUNEQSxRQUFRQSxFQUFFQTt3QkFDUkEsTUFBTUEsRUFBRUEsU0FBU0E7d0JBQ2pCQSxhQUFhQSxFQUFFQSxtREFBbURBO3FCQUNuRUE7b0JBQ0RBLFdBQVdBLEVBQUVBO3dCQUNYQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLDJEQUEyREE7cUJBQzNFQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSwwREFBMERBO2FBQ3ZFQTtZQUNEQSxrQ0FBa0NBLEVBQUVBO2dCQUNsQ0EsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxRQUFRQSxFQUFFQTt3QkFDUkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxpREFBaURBO3FCQUNqRUE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsdURBQXVEQTthQUNwRUE7WUFDREEsNEJBQTRCQSxFQUFFQTtnQkFDNUJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsYUFBYUEsRUFBRUE7d0JBQ2JBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsa0tBQWtLQTtxQkFDbExBO29CQUNEQSxPQUFPQSxFQUFFQTt3QkFDUEEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxtRkFBbUZBO3FCQUNuR0E7b0JBQ0RBLFNBQVNBLEVBQUVBO3dCQUNUQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLDZCQUE2QkE7cUJBQzdDQTtvQkFDREEsV0FBV0EsRUFBRUE7d0JBQ1hBLE1BQU1BLEVBQUVBLHlDQUF5Q0E7d0JBQ2pEQSxVQUFVQSxFQUFFQSxnREFBZ0RBO3FCQUM3REE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLHlGQUF5RkE7d0JBQ3hHQSxXQUFXQSxFQUFFQSxFQUFFQTt3QkFDZkEsU0FBU0EsRUFBRUEsaUNBQWlDQTtxQkFDN0NBO29CQUNEQSxPQUFPQSxFQUFFQTt3QkFDUEEsTUFBTUEsRUFBRUEsU0FBU0E7d0JBQ2pCQSxhQUFhQSxFQUFFQSxnRUFBZ0VBO3FCQUNoRkE7b0JBQ0RBLGNBQWNBLEVBQUVBO3dCQUNkQSxNQUFNQSxFQUFFQSxTQUFTQTt3QkFDakJBLGFBQWFBLEVBQUVBLHNEQUFzREE7cUJBQ3RFQTtvQkFDREEsT0FBT0EsRUFBRUE7d0JBQ1BBLE1BQU1BLEVBQUVBLHlDQUF5Q0E7d0JBQ2pEQSxVQUFVQSxFQUFFQSxnREFBZ0RBO3FCQUM3REE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsaURBQWlEQTthQUM5REE7WUFDREEsaUNBQWlDQSxFQUFFQTtnQkFDakNBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsUUFBUUEsRUFBRUE7d0JBQ1JBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsMkpBQTJKQTtxQkFDM0tBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLHNEQUFzREE7YUFDbkVBO1lBQ0RBLDRCQUE0QkEsRUFBRUE7Z0JBQzVCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLElBQUlBLEVBQUVBO3dCQUNKQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLDRCQUE0QkE7cUJBQzVDQTtvQkFDREEsV0FBV0EsRUFBRUE7d0JBQ1hBLE1BQU1BLEVBQUVBLDBDQUEwQ0E7d0JBQ2xEQSxVQUFVQSxFQUFFQSxpREFBaURBO3FCQUM5REE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsaURBQWlEQTthQUM5REE7WUFDREEseUJBQXlCQSxFQUFFQTtnQkFDekJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsbUJBQW1CQTt3QkFDbENBLFdBQVdBLEVBQUVBLEVBQUVBO3dCQUNmQSxTQUFTQSxFQUFFQSxpQ0FBaUNBO3FCQUM3Q0E7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxTQUFTQTt3QkFDakJBLGFBQWFBLEVBQUVBLDZCQUE2QkE7cUJBQzdDQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsZ0VBQWdFQTtxQkFDaEZBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLDhDQUE4Q0E7YUFDM0RBO1lBQ0RBLDJCQUEyQkEsRUFBRUE7Z0JBQzNCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFdBQVdBLEVBQUVBO3dCQUNYQSxNQUFNQSxFQUFFQSxPQUFPQTt3QkFDZkEsYUFBYUEsRUFBRUEsNENBQTRDQTt3QkFDM0RBLE9BQU9BLEVBQUVBOzRCQUNQQSxNQUFNQSxFQUFFQSwwQ0FBMENBOzRCQUNsREEsVUFBVUEsRUFBRUEsaURBQWlEQTt5QkFDOURBO3FCQUNGQTtvQkFDREEsT0FBT0EsRUFBRUE7d0JBQ1BBLE1BQU1BLEVBQUVBLE9BQU9BO3dCQUNmQSxhQUFhQSxFQUFFQSxvREFBb0RBO3dCQUNuRUEsT0FBT0EsRUFBRUE7NEJBQ1BBLE1BQU1BLEVBQUVBLHVDQUF1Q0E7NEJBQy9DQSxVQUFVQSxFQUFFQSw4Q0FBOENBO3lCQUMzREE7cUJBQ0ZBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLGdEQUFnREE7YUFDN0RBO1lBQ0RBLHNCQUFzQkEsRUFBRUE7Z0JBQ3RCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFlBQVlBLEVBQUVBO3dCQUNaQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsSUFBSUE7d0JBQ2ZBLFVBQVVBLEVBQUVBLElBQUlBO3dCQUNoQkEsTUFBTUEsRUFBRUE7NEJBQ05BLElBQUlBO3lCQUNMQTtxQkFDRkE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsV0FBV0E7d0JBQ3RCQSxVQUFVQSxFQUFFQSxJQUFJQTtxQkFDakJBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEscUNBQXFDQTt3QkFDN0NBLFVBQVVBLEVBQUVBLDRDQUE0Q0E7cUJBQ3pEQTtvQkFDREEsU0FBU0EsRUFBRUE7d0JBQ1RBLE1BQU1BLEVBQUVBLE9BQU9BO3dCQUNmQSxhQUFhQSxFQUFFQSxxREFBcURBO3dCQUNwRUEsT0FBT0EsRUFBRUE7NEJBQ1BBLE1BQU1BLEVBQUVBLHlDQUF5Q0E7NEJBQ2pEQSxVQUFVQSxFQUFFQSxnREFBZ0RBO3lCQUM3REE7cUJBQ0ZBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLDJDQUEyQ0E7Z0JBQ3ZEQSxnQkFBZ0JBLEVBQUVBO29CQUNoQkEsNkNBQTZDQTtpQkFDOUNBO2FBQ0ZBO1lBQ0RBLDBCQUEwQkEsRUFBRUE7Z0JBQzFCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFlBQVlBLEVBQUVBO3dCQUNaQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsSUFBSUE7d0JBQ2ZBLFVBQVVBLEVBQUVBLElBQUlBO3dCQUNoQkEsTUFBTUEsRUFBRUE7NEJBQ05BLElBQUlBO3lCQUNMQTtxQkFDRkE7b0JBQ0RBLE9BQU9BLEVBQUVBO3dCQUNQQSxNQUFNQSxFQUFFQSxPQUFPQTt3QkFDZkEsYUFBYUEsRUFBRUEsbUJBQW1CQTt3QkFDbENBLE9BQU9BLEVBQUVBOzRCQUNQQSxNQUFNQSxFQUFFQSxvQ0FBb0NBOzRCQUM1Q0EsVUFBVUEsRUFBRUEsMkNBQTJDQTt5QkFDeERBO3FCQUNGQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxlQUFlQTt3QkFDMUJBLFVBQVVBLEVBQUVBLElBQUlBO3FCQUNqQkE7b0JBQ0RBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSxtQ0FBbUNBO3dCQUMzQ0EsVUFBVUEsRUFBRUEsMENBQTBDQTtxQkFDdkRBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLCtDQUErQ0E7Z0JBQzNEQSxnQkFBZ0JBLEVBQUVBO29CQUNoQkEsb0RBQW9EQTtvQkFDcERBLHdEQUF3REE7aUJBQ3pEQTthQUNGQTtZQUNEQSxtQkFBbUJBLEVBQUVBO2dCQUNuQkEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSwwREFBMERBO3dCQUN6RUEsU0FBU0EsRUFBRUEsMEJBQTBCQTtxQkFDdENBO29CQUNEQSxPQUFPQSxFQUFFQTt3QkFDUEEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxzUEFBc1BBO3FCQUN0UUE7b0JBQ0RBLFdBQVdBLEVBQUVBO3dCQUNYQSxNQUFNQSxFQUFFQSx1Q0FBdUNBO3dCQUMvQ0EsVUFBVUEsRUFBRUEsOENBQThDQTtxQkFDM0RBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLHdDQUF3Q0E7YUFDckRBO1lBQ0RBLHlCQUF5QkEsRUFBRUE7Z0JBQ3pCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSw4Q0FBOENBO3dCQUN0REEsVUFBVUEsRUFBRUEscURBQXFEQTtxQkFDbEVBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLDhDQUE4Q0E7YUFDM0RBO1lBQ0RBLGtCQUFrQkEsRUFBRUE7Z0JBQ2xCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFlBQVlBLEVBQUVBO3dCQUNaQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsSUFBSUE7d0JBQ2ZBLFVBQVVBLEVBQUVBLElBQUlBO3dCQUNoQkEsTUFBTUEsRUFBRUE7NEJBQ05BLElBQUlBO3lCQUNMQTtxQkFDRkE7b0JBQ0RBLE9BQU9BLEVBQUVBO3dCQUNQQSxNQUFNQSxFQUFFQSxTQUFTQTt3QkFDakJBLGFBQWFBLEVBQUVBLDZDQUE2Q0E7cUJBQzdEQTtvQkFDREEsZ0JBQWdCQSxFQUFFQTt3QkFDaEJBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsZ0RBQWdEQTtxQkFDaEVBO29CQUNEQSxnQkFBZ0JBLEVBQUVBO3dCQUNoQkEsTUFBTUEsRUFBRUEsMENBQTBDQTt3QkFDbERBLFVBQVVBLEVBQUVBLGlEQUFpREE7cUJBQzlEQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxPQUFPQTt3QkFDbEJBLFVBQVVBLEVBQUVBLElBQUlBO3FCQUNqQkE7b0JBQ0RBLGVBQWVBLEVBQUVBO3dCQUNmQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLHlFQUF5RUE7cUJBQ3pGQTtvQkFDREEsU0FBU0EsRUFBRUE7d0JBQ1RBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsNERBQTREQTtxQkFDNUVBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEscUNBQXFDQTt3QkFDN0NBLFVBQVVBLEVBQUVBLDRDQUE0Q0E7cUJBQ3pEQTtvQkFDREEsUUFBUUEsRUFBRUE7d0JBQ1JBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsT0FBT0E7cUJBQ3ZCQTtvQkFDREEsUUFBUUEsRUFBRUE7d0JBQ1JBLE1BQU1BLEVBQUVBLHNDQUFzQ0E7d0JBQzlDQSxVQUFVQSxFQUFFQSw2Q0FBNkNBO3FCQUMxREE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsdUNBQXVDQTtnQkFDbkRBLGdCQUFnQkEsRUFBRUE7b0JBQ2hCQSw2Q0FBNkNBO2lCQUM5Q0E7YUFDRkE7WUFDREEsc0JBQXNCQSxFQUFFQTtnQkFDdEJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsWUFBWUEsRUFBRUE7d0JBQ1pBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxJQUFJQTt3QkFDZkEsVUFBVUEsRUFBRUEsSUFBSUE7d0JBQ2hCQSxNQUFNQSxFQUFFQTs0QkFDTkEsSUFBSUE7eUJBQ0xBO3FCQUNGQTtvQkFDREEsT0FBT0EsRUFBRUE7d0JBQ1BBLE1BQU1BLEVBQUVBLE9BQU9BO3dCQUNmQSxhQUFhQSxFQUFFQSxnQkFBZ0JBO3dCQUMvQkEsT0FBT0EsRUFBRUE7NEJBQ1BBLE1BQU1BLEVBQUVBLGdDQUFnQ0E7NEJBQ3hDQSxVQUFVQSxFQUFFQSx1Q0FBdUNBO3lCQUNwREE7cUJBQ0ZBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLFNBQVNBLEVBQUVBLFdBQVdBO3dCQUN0QkEsVUFBVUEsRUFBRUEsSUFBSUE7cUJBQ2pCQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLG1DQUFtQ0E7d0JBQzNDQSxVQUFVQSxFQUFFQSwwQ0FBMENBO3FCQUN2REE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsMkNBQTJDQTtnQkFDdkRBLGdCQUFnQkEsRUFBRUE7b0JBQ2hCQSxvREFBb0RBO29CQUNwREEsd0RBQXdEQTtpQkFDekRBO2FBQ0ZBO1lBQ0RBLHdCQUF3QkEsRUFBRUE7Z0JBQ3hCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFdBQVdBLEVBQUVBO3dCQUNYQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLG9DQUFvQ0E7cUJBQ3BEQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsK0NBQStDQTtxQkFDL0RBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLDZDQUE2Q0E7YUFDMURBO1lBQ0RBLHVCQUF1QkEsRUFBRUE7Z0JBQ3ZCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFNBQVNBLEVBQUVBO3dCQUNUQSxNQUFNQSxFQUFFQSxPQUFPQTt3QkFDZkEsYUFBYUEsRUFBRUEscUpBQXFKQTt3QkFDcEtBLE9BQU9BLEVBQUVBOzRCQUNQQSxNQUFNQSxFQUFFQSxRQUFRQTs0QkFDaEJBLGFBQWFBLEVBQUVBLHFKQUFxSkE7eUJBQ3JLQTtxQkFDRkE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsNENBQTRDQTthQUN6REE7WUFDREEsMENBQTBDQSxFQUFFQTtnQkFDMUNBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsUUFBUUEsRUFBRUE7d0JBQ1JBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsMkJBQTJCQTtxQkFDM0NBO29CQUNEQSxXQUFXQSxFQUFFQTt3QkFDWEEsTUFBTUEsRUFBRUEsU0FBU0E7d0JBQ2pCQSxhQUFhQSxFQUFFQSxzQ0FBc0NBO3FCQUN0REE7b0JBQ0RBLFFBQVFBLEVBQUVBO3dCQUNSQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLHFIQUFxSEE7cUJBQ3JJQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLFNBQVNBO3dCQUNqQkEsYUFBYUEsRUFBRUEsbUJBQW1CQTtxQkFDbkNBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLCtEQUErREE7YUFDNUVBO1lBQ0RBLGdDQUFnQ0EsRUFBRUE7Z0JBQ2hDQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFlBQVlBLEVBQUVBO3dCQUNaQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLGdCQUFnQkE7cUJBQ2hDQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsd0NBQXdDQTtxQkFDeERBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLHFEQUFxREE7YUFDbEVBO1lBQ0RBLGtDQUFrQ0EsRUFBRUE7Z0JBQ2xDQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFdBQVdBLEVBQUVBO3dCQUNYQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLHlHQUF5R0E7cUJBQ3pIQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsbUdBQW1HQTtxQkFDbkhBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEsU0FBU0E7d0JBQ2pCQSxhQUFhQSxFQUFFQSxzSUFBc0lBO3FCQUN0SkE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsdURBQXVEQTthQUNwRUE7WUFDREEsMEJBQTBCQSxFQUFFQTtnQkFDMUJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsNENBQTRDQTtxQkFDNURBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxtQ0FBbUNBO3FCQUNuREE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSwyQ0FBMkNBO3dCQUNuREEsVUFBVUEsRUFBRUEsNkNBQTZDQTtxQkFDMURBO29CQUNEQSxRQUFRQSxFQUFFQTt3QkFDUkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSx3QkFBd0JBO3FCQUN4Q0E7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsK0NBQStDQTthQUM1REE7WUFDREEsb0JBQW9CQSxFQUFFQTtnQkFDcEJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLHFDQUFxQ0E7d0JBQzdDQSxVQUFVQSxFQUFFQSw0Q0FBNENBO3FCQUN6REE7b0JBQ0RBLFNBQVNBLEVBQUVBO3dCQUNUQSxNQUFNQSxFQUFFQSx3Q0FBd0NBO3dCQUNoREEsVUFBVUEsRUFBRUEsK0NBQStDQTtxQkFDNURBO29CQUNEQSxXQUFXQSxFQUFFQTt3QkFDWEEsTUFBTUEsRUFBRUEsMENBQTBDQTt3QkFDbERBLFVBQVVBLEVBQUVBLGlEQUFpREE7cUJBQzlEQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSx5Q0FBeUNBO2FBQ3REQTtZQUNEQSxpQ0FBaUNBLEVBQUVBO2dCQUNqQ0EsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSx3R0FBd0dBO3FCQUN4SEE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsc0RBQXNEQTthQUNuRUE7WUFDREEsOEJBQThCQSxFQUFFQTtnQkFDOUJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsUUFBUUEsRUFBRUE7d0JBQ1JBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsMkJBQTJCQTtxQkFDM0NBO29CQUNEQSxLQUFLQSxFQUFFQTt3QkFDTEEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxzQkFBc0JBO3FCQUN0Q0E7b0JBQ0RBLEtBQUtBLEVBQUVBO3dCQUNMQSxNQUFNQSxFQUFFQSxTQUFTQTt3QkFDakJBLGFBQWFBLEVBQUVBLHlCQUF5QkE7cUJBQ3pDQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLFNBQVNBO3dCQUNqQkEsYUFBYUEsRUFBRUEsbUJBQW1CQTtxQkFDbkNBO29CQUNEQSxjQUFjQSxFQUFFQTt3QkFDZEEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxxQkFBcUJBO3FCQUNyQ0E7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsbURBQW1EQTthQUNoRUE7WUFDREEsc0JBQXNCQSxFQUFFQTtnQkFDdEJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsV0FBV0EsRUFBRUE7d0JBQ1hBLE1BQU1BLEVBQUVBLGtDQUFrQ0E7d0JBQzFDQSxVQUFVQSxFQUFFQSx5Q0FBeUNBO3FCQUN0REE7b0JBQ0RBLFNBQVNBLEVBQUVBO3dCQUNUQSxNQUFNQSxFQUFFQSxrQ0FBa0NBO3dCQUMxQ0EsVUFBVUEsRUFBRUEseUNBQXlDQTtxQkFDdERBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLDJDQUEyQ0E7YUFDeERBO1lBQ0RBLGlCQUFpQkEsRUFBRUE7Z0JBQ2pCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFlBQVlBLEVBQUVBO3dCQUNaQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsSUFBSUE7d0JBQ2ZBLFVBQVVBLEVBQUVBLElBQUlBO3dCQUNoQkEsTUFBTUEsRUFBRUE7NEJBQ05BLElBQUlBO3lCQUNMQTtxQkFDRkE7b0JBQ0RBLE9BQU9BLEVBQUVBO3dCQUNQQSxNQUFNQSxFQUFFQSxPQUFPQTt3QkFDZkEsYUFBYUEsRUFBRUEsaUJBQWlCQTt3QkFDaENBLE9BQU9BLEVBQUVBOzRCQUNQQSxNQUFNQSxFQUFFQSwrQ0FBK0NBOzRCQUN2REEsVUFBVUEsRUFBRUEsNkNBQTZDQTt5QkFDMURBO3FCQUNGQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxNQUFNQTt3QkFDakJBLFVBQVVBLEVBQUVBLElBQUlBO3FCQUNqQkE7b0JBQ0RBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSxtQ0FBbUNBO3dCQUMzQ0EsVUFBVUEsRUFBRUEsMENBQTBDQTtxQkFDdkRBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLG9EQUFvREE7Z0JBQ2hFQSxnQkFBZ0JBLEVBQUVBO29CQUNoQkEsb0RBQW9EQTtvQkFDcERBLHdEQUF3REE7aUJBQ3pEQTthQUNGQTtZQUNEQSxxQkFBcUJBLEVBQUVBO2dCQUNyQkEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxpQkFBaUJBLEVBQUVBO3dCQUNqQkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSx3SkFBd0pBO3FCQUN4S0E7b0JBQ0RBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLDZDQUE2Q0E7cUJBQzdEQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSwwQ0FBMENBO2FBQ3ZEQTtZQUNEQSxnQ0FBZ0NBLEVBQUVBO2dCQUNoQ0EsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSwyQkFBMkJBO3FCQUMzQ0E7b0JBQ0RBLElBQUlBLEVBQUVBO3dCQUNKQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLDZCQUE2QkE7cUJBQzdDQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSxxREFBcURBO2FBQ2xFQTtZQUNEQSwrQkFBK0JBLEVBQUVBO2dCQUMvQkEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxTQUFTQSxFQUFFQTt3QkFDVEEsTUFBTUEsRUFBRUEsT0FBT0E7d0JBQ2ZBLGFBQWFBLEVBQUVBLDhCQUE4QkE7d0JBQzdDQSxPQUFPQSxFQUFFQTs0QkFDUEEsTUFBTUEsRUFBRUEsOENBQThDQTs0QkFDdERBLFVBQVVBLEVBQUVBLHFEQUFxREE7eUJBQ2xFQTtxQkFDRkE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsb0RBQW9EQTthQUNqRUE7WUFDREEsaUNBQWlDQSxFQUFFQTtnQkFDakNBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsNEZBQTRGQTtxQkFDNUdBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLHNEQUFzREE7YUFDbkVBO1lBQ0RBLHlCQUF5QkEsRUFBRUE7Z0JBQ3pCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSw4Q0FBOENBO3dCQUN0REEsVUFBVUEsRUFBRUEscURBQXFEQTtxQkFDbEVBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxvQ0FBb0NBO3FCQUNwREE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsOENBQThDQTthQUMzREE7WUFDREEsaUNBQWlDQSxFQUFFQTtnQkFDakNBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsT0FBT0EsRUFBRUE7d0JBQ1BBLE1BQU1BLEVBQUVBLE9BQU9BO3dCQUNmQSxhQUFhQSxFQUFFQSx3QkFBd0JBO3dCQUN2Q0EsT0FBT0EsRUFBRUE7NEJBQ1BBLE1BQU1BLEVBQUVBLHVDQUF1Q0E7NEJBQy9DQSxVQUFVQSxFQUFFQSw4Q0FBOENBO3lCQUMzREE7cUJBQ0ZBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLHNEQUFzREE7YUFDbkVBO1lBQ0RBLDRCQUE0QkEsRUFBRUE7Z0JBQzVCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLDZHQUE2R0E7cUJBQzdIQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLFNBQVNBO3dCQUNqQkEsYUFBYUEsRUFBRUEsZ0lBQWdJQTtxQkFDaEpBO29CQUNEQSxRQUFRQSxFQUFFQTt3QkFDUkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSw4R0FBOEdBO3FCQUM5SEE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsaURBQWlEQTthQUM5REE7WUFDREEsc0JBQXNCQSxFQUFFQTtnQkFDdEJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsWUFBWUEsRUFBRUE7d0JBQ1pBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxJQUFJQTt3QkFDZkEsVUFBVUEsRUFBRUEsSUFBSUE7d0JBQ2hCQSxNQUFNQSxFQUFFQTs0QkFDTkEsSUFBSUE7eUJBQ0xBO3FCQUNGQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxXQUFXQTt3QkFDdEJBLFVBQVVBLEVBQUVBLElBQUlBO3FCQUNqQkE7b0JBQ0RBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSxxQ0FBcUNBO3dCQUM3Q0EsVUFBVUEsRUFBRUEsNENBQTRDQTtxQkFDekRBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsd0NBQXdDQTt3QkFDaERBLFVBQVVBLEVBQUVBLCtDQUErQ0E7cUJBQzVEQTtvQkFDREEsUUFBUUEsRUFBRUE7d0JBQ1JBLE1BQU1BLEVBQUVBLDBDQUEwQ0E7d0JBQ2xEQSxVQUFVQSxFQUFFQSxpREFBaURBO3FCQUM5REE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsMkNBQTJDQTtnQkFDdkRBLGdCQUFnQkEsRUFBRUE7b0JBQ2hCQSw2Q0FBNkNBO2lCQUM5Q0E7YUFDRkE7WUFDREEsMEJBQTBCQSxFQUFFQTtnQkFDMUJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsWUFBWUEsRUFBRUE7d0JBQ1pBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxJQUFJQTt3QkFDZkEsVUFBVUEsRUFBRUEsSUFBSUE7d0JBQ2hCQSxNQUFNQSxFQUFFQTs0QkFDTkEsSUFBSUE7eUJBQ0xBO3FCQUNGQTtvQkFDREEsT0FBT0EsRUFBRUE7d0JBQ1BBLE1BQU1BLEVBQUVBLE9BQU9BO3dCQUNmQSxhQUFhQSxFQUFFQSxtSEFBbUhBO3dCQUNsSUEsT0FBT0EsRUFBRUE7NEJBQ1BBLE1BQU1BLEVBQUVBLG9DQUFvQ0E7NEJBQzVDQSxVQUFVQSxFQUFFQSwyQ0FBMkNBO3lCQUN4REE7cUJBQ0ZBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLFNBQVNBLEVBQUVBLGVBQWVBO3dCQUMxQkEsVUFBVUEsRUFBRUEsSUFBSUE7cUJBQ2pCQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLG1DQUFtQ0E7d0JBQzNDQSxVQUFVQSxFQUFFQSwwQ0FBMENBO3FCQUN2REE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsK0NBQStDQTtnQkFDM0RBLGdCQUFnQkEsRUFBRUE7b0JBQ2hCQSxvREFBb0RBO29CQUNwREEsd0RBQXdEQTtpQkFDekRBO2FBQ0ZBO1lBQ0RBLDBCQUEwQkEsRUFBRUE7Z0JBQzFCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFlBQVlBLEVBQUVBO3dCQUNaQSxNQUFNQSxFQUFFQSxPQUFPQTt3QkFDZkEsYUFBYUEsRUFBRUEsNkpBQTZKQTt3QkFDNUtBLE9BQU9BLEVBQUVBOzRCQUNQQSxNQUFNQSxFQUFFQSxRQUFRQTs0QkFDaEJBLGFBQWFBLEVBQUVBLDZKQUE2SkE7eUJBQzdLQTtxQkFDRkE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsK0NBQStDQTthQUM1REE7WUFDREEsNEJBQTRCQSxFQUFFQTtnQkFDNUJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsT0FBT0EsRUFBRUE7d0JBQ1BBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEseUhBQXlIQTtxQkFDeklBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLGlEQUFpREE7YUFDOURBO1lBQ0RBLGlCQUFpQkEsRUFBRUE7Z0JBQ2pCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFlBQVlBLEVBQUVBO3dCQUNaQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsSUFBSUE7d0JBQ2ZBLFVBQVVBLEVBQUVBLElBQUlBO3dCQUNoQkEsTUFBTUEsRUFBRUE7NEJBQ05BLElBQUlBO3lCQUNMQTtxQkFDRkE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsTUFBTUE7d0JBQ2pCQSxVQUFVQSxFQUFFQSxJQUFJQTtxQkFDakJBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEscUNBQXFDQTt3QkFDN0NBLFVBQVVBLEVBQUVBLDRDQUE0Q0E7cUJBQ3pEQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLG1DQUFtQ0E7d0JBQzNDQSxVQUFVQSxFQUFFQSwwQ0FBMENBO3FCQUN2REE7b0JBQ0RBLFFBQVFBLEVBQUVBO3dCQUNSQSxNQUFNQSxFQUFFQSxxQ0FBcUNBO3dCQUM3Q0EsVUFBVUEsRUFBRUEsNENBQTRDQTtxQkFDekRBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLHNDQUFzQ0E7Z0JBQ2xEQSxnQkFBZ0JBLEVBQUVBO29CQUNoQkEsNkNBQTZDQTtpQkFDOUNBO2FBQ0ZBO1lBQ0RBLHdCQUF3QkEsRUFBRUE7Z0JBQ3hCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFNBQVNBLEVBQUVBO3dCQUNUQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLGtCQUFrQkE7cUJBQ2xDQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsbUJBQW1CQTtxQkFDbkNBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLDZDQUE2Q0E7YUFDMURBO1lBQ0RBLDBCQUEwQkEsRUFBRUE7Z0JBQzFCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLG1CQUFtQkEsRUFBRUE7d0JBQ25CQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLGlEQUFpREE7cUJBQ2pFQTtvQkFDREEsb0JBQW9CQSxFQUFFQTt3QkFDcEJBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsNERBQTREQTtxQkFDNUVBO29CQUNEQSxTQUFTQSxFQUFFQTt3QkFDVEEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxpRUFBaUVBO3FCQUNqRkE7b0JBQ0RBLFFBQVFBLEVBQUVBO3dCQUNSQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLG9EQUFvREE7cUJBQ3BFQTtvQkFDREEsUUFBUUEsRUFBRUE7d0JBQ1JBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEseUJBQXlCQTtxQkFDekNBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSx3QkFBd0JBO3FCQUN4Q0E7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsK0NBQStDQTthQUM1REE7WUFDREEscUJBQXFCQSxFQUFFQTtnQkFDckJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsWUFBWUEsRUFBRUE7d0JBQ1pBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxJQUFJQTt3QkFDZkEsVUFBVUEsRUFBRUEsSUFBSUE7d0JBQ2hCQSxNQUFNQSxFQUFFQTs0QkFDTkEsSUFBSUE7eUJBQ0xBO3FCQUNGQTtvQkFDREEsT0FBT0EsRUFBRUE7d0JBQ1BBLE1BQU1BLEVBQUVBLE9BQU9BO3dCQUNmQSxhQUFhQSxFQUFFQSxlQUFlQTt3QkFDOUJBLE9BQU9BLEVBQUVBOzRCQUNQQSxNQUFNQSxFQUFFQSwrQkFBK0JBOzRCQUN2Q0EsVUFBVUEsRUFBRUEsc0NBQXNDQTt5QkFDbkRBO3FCQUNGQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxVQUFVQTt3QkFDckJBLFVBQVVBLEVBQUVBLElBQUlBO3FCQUNqQkE7b0JBQ0RBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSxtQ0FBbUNBO3dCQUMzQ0EsVUFBVUEsRUFBRUEsMENBQTBDQTtxQkFDdkRBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLDBDQUEwQ0E7Z0JBQ3REQSxnQkFBZ0JBLEVBQUVBO29CQUNoQkEsb0RBQW9EQTtvQkFDcERBLHdEQUF3REE7aUJBQ3pEQTthQUNGQTtZQUNEQSxxQkFBcUJBLEVBQUVBO2dCQUNyQkEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxZQUFZQSxFQUFFQTt3QkFDWkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxrSUFBa0lBO3FCQUNsSkE7b0JBQ0RBLFNBQVNBLEVBQUVBO3dCQUNUQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLG1DQUFtQ0E7cUJBQ25EQTtvQkFDREEsWUFBWUEsRUFBRUE7d0JBQ1pBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsNEhBQTRIQTtxQkFDNUlBO29CQUNEQSxlQUFlQSxFQUFFQTt3QkFDZkEsTUFBTUEsRUFBRUEsU0FBU0E7d0JBQ2pCQSxhQUFhQSxFQUFFQSxtSEFBbUhBO3FCQUNuSUE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsMENBQTBDQTthQUN2REE7WUFDREEsdUJBQXVCQSxFQUFFQTtnQkFDdkJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsV0FBV0EsRUFBRUE7d0JBQ1hBLE1BQU1BLEVBQUVBLE9BQU9BO3dCQUNmQSxhQUFhQSxFQUFFQSw0R0FBNEdBO3dCQUMzSEEsT0FBT0EsRUFBRUE7NEJBQ1BBLE1BQU1BLEVBQUVBLHNDQUFzQ0E7NEJBQzlDQSxVQUFVQSxFQUFFQSw2Q0FBNkNBO3lCQUMxREE7cUJBQ0ZBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSw2R0FBNkdBO3dCQUM1SEEsc0JBQXNCQSxFQUFFQTs0QkFDdEJBLE1BQU1BLEVBQUVBLDRDQUE0Q0E7NEJBQ3BEQSxVQUFVQSxFQUFFQSwwQ0FBMENBO3lCQUN2REE7d0JBQ0RBLFVBQVVBLEVBQUVBLDBFQUEwRUE7cUJBQ3ZGQTtvQkFDREEsWUFBWUEsRUFBRUE7d0JBQ1pBLE1BQU1BLEVBQUVBLE9BQU9BO3dCQUNmQSxhQUFhQSxFQUFFQSxxR0FBcUdBO3dCQUNwSEEsT0FBT0EsRUFBRUE7NEJBQ1BBLE1BQU1BLEVBQUVBLHdDQUF3Q0E7NEJBQ2hEQSxVQUFVQSxFQUFFQSwrQ0FBK0NBO3lCQUM1REE7cUJBQ0ZBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEseUNBQXlDQTt3QkFDakRBLFVBQVVBLEVBQUVBLGdEQUFnREE7cUJBQzdEQTtvQkFDREEsT0FBT0EsRUFBRUE7d0JBQ1BBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsbUhBQW1IQTtxQkFDbklBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLDRDQUE0Q0E7YUFDekRBO1lBQ0RBLDJCQUEyQkEsRUFBRUE7Z0JBQzNCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFFBQVFBLEVBQUVBO3dCQUNSQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLDZDQUE2Q0E7cUJBQzdEQTtvQkFDREEseUJBQXlCQSxFQUFFQTt3QkFDekJBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsaUdBQWlHQTtxQkFDakhBO29CQUNEQSxlQUFlQSxFQUFFQTt3QkFDZkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxpRkFBaUZBO3FCQUNqR0E7b0JBQ0RBLGtCQUFrQkEsRUFBRUE7d0JBQ2xCQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLHlDQUF5Q0E7cUJBQ3pEQTtvQkFDREEsZ0JBQWdCQSxFQUFFQTt3QkFDaEJBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsc0NBQXNDQTtxQkFDdERBO29CQUNEQSxXQUFXQSxFQUFFQTt3QkFDWEEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxpQ0FBaUNBO3FCQUNqREE7b0JBQ0RBLFNBQVNBLEVBQUVBO3dCQUNUQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLDRGQUE0RkE7cUJBQzVHQTtvQkFDREEsWUFBWUEsRUFBRUE7d0JBQ1pBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsa0NBQWtDQTtxQkFDbERBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLGdEQUFnREE7YUFDN0RBO1lBQ0RBLGdDQUFnQ0EsRUFBRUE7Z0JBQ2hDQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFlBQVlBLEVBQUVBO3dCQUNaQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLDZFQUE2RUE7cUJBQzdGQTtvQkFDREEsV0FBV0EsRUFBRUE7d0JBQ1hBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsMERBQTBEQTtxQkFDMUVBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLHFEQUFxREE7YUFDbEVBO1lBQ0RBLHVCQUF1QkEsRUFBRUE7Z0JBQ3ZCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLGFBQWFBLEVBQUVBO3dCQUNiQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLDJMQUEyTEE7d0JBQzFNQSxzQkFBc0JBLEVBQUVBOzRCQUN0QkEsTUFBTUEsRUFBRUEsUUFBUUE7NEJBQ2hCQSxhQUFhQSxFQUFFQSwyTEFBMkxBO3lCQUMzTUE7d0JBQ0RBLFVBQVVBLEVBQUVBLHdDQUF3Q0E7cUJBQ3JEQTtvQkFDREEsbUJBQW1CQSxFQUFFQTt3QkFDbkJBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsaUZBQWlGQTtxQkFDakdBO29CQUNEQSxtQkFBbUJBLEVBQUVBO3dCQUNuQkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSwySEFBMkhBO3FCQUMzSUE7b0JBQ0RBLGNBQWNBLEVBQUVBO3dCQUNkQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLHNHQUFzR0E7cUJBQ3RIQTtvQkFDREEsWUFBWUEsRUFBRUE7d0JBQ1pBLE1BQU1BLEVBQUVBLFNBQVNBO3dCQUNqQkEsYUFBYUEsRUFBRUEsK0dBQStHQTt3QkFDOUhBLFVBQVVBLEVBQUVBLE1BQU1BO3FCQUNuQkE7b0JBQ0RBLFFBQVFBLEVBQUVBO3dCQUNSQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLDJNQUEyTUE7d0JBQzFOQSxzQkFBc0JBLEVBQUVBOzRCQUN0QkEsTUFBTUEsRUFBRUEsUUFBUUE7NEJBQ2hCQSxhQUFhQSxFQUFFQSwyTUFBMk1BO3lCQUMzTkE7d0JBQ0RBLFVBQVVBLEVBQUVBLHdDQUF3Q0E7cUJBQ3JEQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsOEpBQThKQTt3QkFDN0tBLFdBQVdBLEVBQUVBLEVBQUVBO3dCQUNmQSxTQUFTQSxFQUFFQSxpQ0FBaUNBO3FCQUM3Q0E7b0JBQ0RBLFdBQVdBLEVBQUVBO3dCQUNYQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLGdJQUFnSUE7d0JBQy9JQSxXQUFXQSxFQUFFQSxHQUFHQTt3QkFDaEJBLFNBQVNBLEVBQUVBLG9FQUFvRUE7cUJBQ2hGQTtvQkFDREEsaUJBQWlCQSxFQUFFQTt3QkFDakJBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsd0pBQXdKQTtxQkFDeEtBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSw2Q0FBNkNBO3FCQUM3REE7b0JBQ0RBLEtBQUtBLEVBQUVBO3dCQUNMQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLDRJQUE0SUE7cUJBQzVKQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSw0Q0FBNENBO2FBQ3pEQTtZQUNEQSw0QkFBNEJBLEVBQUVBO2dCQUM1QkEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxZQUFZQSxFQUFFQTt3QkFDWkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSw2QkFBNkJBO3FCQUM3Q0E7b0JBQ0RBLFdBQVdBLEVBQUVBO3dCQUNYQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLGtFQUFrRUE7cUJBQ2xGQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsaUdBQWlHQTtxQkFDakhBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSw0RkFBNEZBO3FCQUM1R0E7b0JBQ0RBLFdBQVdBLEVBQUVBO3dCQUNYQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLDBGQUEwRkE7cUJBQzFHQTtvQkFDREEsaUJBQWlCQSxFQUFFQTt3QkFDakJBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsMERBQTBEQTtxQkFDMUVBO29CQUNEQSxLQUFLQSxFQUFFQTt3QkFDTEEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSwwRkFBMEZBO3FCQUMxR0E7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsaURBQWlEQTthQUM5REE7WUFDREEsNkJBQTZCQSxFQUFFQTtnQkFDN0JBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsWUFBWUEsRUFBRUE7d0JBQ1pBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxJQUFJQTt3QkFDZkEsVUFBVUEsRUFBRUEsSUFBSUE7d0JBQ2hCQSxNQUFNQSxFQUFFQTs0QkFDTkEsSUFBSUE7eUJBQ0xBO3FCQUNGQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxrQkFBa0JBO3dCQUM3QkEsVUFBVUEsRUFBRUEsSUFBSUE7cUJBQ2pCQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLHFDQUFxQ0E7d0JBQzdDQSxVQUFVQSxFQUFFQSw0Q0FBNENBO3FCQUN6REE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSwrQ0FBK0NBO3dCQUN2REEsVUFBVUEsRUFBRUEsc0RBQXNEQTtxQkFDbkVBO29CQUNEQSxRQUFRQSxFQUFFQTt3QkFDUkEsTUFBTUEsRUFBRUEsaURBQWlEQTt3QkFDekRBLFVBQVVBLEVBQUVBLHdEQUF3REE7cUJBQ3JFQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSxrREFBa0RBO2dCQUM5REEsZ0JBQWdCQSxFQUFFQTtvQkFDaEJBLDZDQUE2Q0E7aUJBQzlDQTthQUNGQTtZQUNEQSxrQ0FBa0NBLEVBQUVBO2dCQUNsQ0EsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxZQUFZQSxFQUFFQTt3QkFDWkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLFNBQVNBLEVBQUVBLElBQUlBO3dCQUNmQSxVQUFVQSxFQUFFQSxJQUFJQTt3QkFDaEJBLE1BQU1BLEVBQUVBOzRCQUNOQSxJQUFJQTt5QkFDTEE7cUJBQ0ZBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLFNBQVNBLEVBQUVBLHVCQUF1QkE7d0JBQ2xDQSxVQUFVQSxFQUFFQSxJQUFJQTtxQkFDakJBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEscUNBQXFDQTt3QkFDN0NBLFVBQVVBLEVBQUVBLDRDQUE0Q0E7cUJBQ3pEQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLG9EQUFvREE7d0JBQzVEQSxVQUFVQSxFQUFFQSwyREFBMkRBO3FCQUN4RUE7b0JBQ0RBLFFBQVFBLEVBQUVBO3dCQUNSQSxNQUFNQSxFQUFFQSxzREFBc0RBO3dCQUM5REEsVUFBVUEsRUFBRUEsNkRBQTZEQTtxQkFDMUVBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLHVEQUF1REE7Z0JBQ25FQSxnQkFBZ0JBLEVBQUVBO29CQUNoQkEsNkNBQTZDQTtpQkFDOUNBO2FBQ0ZBO1lBQ0RBLHNDQUFzQ0EsRUFBRUE7Z0JBQ3RDQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFlBQVlBLEVBQUVBO3dCQUNaQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsSUFBSUE7d0JBQ2ZBLFVBQVVBLEVBQUVBLElBQUlBO3dCQUNoQkEsTUFBTUEsRUFBRUE7NEJBQ05BLElBQUlBO3lCQUNMQTtxQkFDRkE7b0JBQ0RBLE9BQU9BLEVBQUVBO3dCQUNQQSxNQUFNQSxFQUFFQSxPQUFPQTt3QkFDZkEsYUFBYUEsRUFBRUEsa0lBQWtJQTt3QkFDakpBLE9BQU9BLEVBQUVBOzRCQUNQQSxNQUFNQSxFQUFFQSxnREFBZ0RBOzRCQUN4REEsVUFBVUEsRUFBRUEsdURBQXVEQTt5QkFDcEVBO3FCQUNGQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSwyQkFBMkJBO3dCQUN0Q0EsVUFBVUEsRUFBRUEsSUFBSUE7cUJBQ2pCQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLG1DQUFtQ0E7d0JBQzNDQSxVQUFVQSxFQUFFQSwwQ0FBMENBO3FCQUN2REE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsMkRBQTJEQTtnQkFDdkVBLGdCQUFnQkEsRUFBRUE7b0JBQ2hCQSxvREFBb0RBO29CQUNwREEsd0RBQXdEQTtpQkFDekRBO2FBQ0ZBO1lBQ0RBLHNDQUFzQ0EsRUFBRUE7Z0JBQ3RDQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLGFBQWFBLEVBQUVBO3dCQUNiQSxNQUFNQSxFQUFFQSxPQUFPQTt3QkFDZkEsYUFBYUEsRUFBRUEsdUlBQXVJQTt3QkFDdEpBLE9BQU9BLEVBQUVBOzRCQUNQQSxNQUFNQSxFQUFFQSxRQUFRQTs0QkFDaEJBLGFBQWFBLEVBQUVBLHVJQUF1SUE7eUJBQ3ZKQTtxQkFDRkE7b0JBQ0RBLFdBQVdBLEVBQUVBO3dCQUNYQSxNQUFNQSxFQUFFQSwrQ0FBK0NBO3dCQUN2REEsVUFBVUEsRUFBRUEsc0RBQXNEQTtxQkFDbkVBO29CQUNEQSxZQUFZQSxFQUFFQTt3QkFDWkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxtRUFBbUVBO3FCQUNuRkE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsMkRBQTJEQTthQUN4RUE7WUFDREEsd0NBQXdDQSxFQUFFQTtnQkFDeENBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsYUFBYUEsRUFBRUE7d0JBQ2JBLE1BQU1BLEVBQUVBLE9BQU9BO3dCQUNmQSxhQUFhQSxFQUFFQSw4SEFBOEhBO3dCQUM3SUEsT0FBT0EsRUFBRUE7NEJBQ1BBLE1BQU1BLEVBQUVBLFFBQVFBOzRCQUNoQkEsYUFBYUEsRUFBRUEsOEhBQThIQTt5QkFDOUlBO3FCQUNGQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEscUNBQXFDQTt3QkFDcERBLHNCQUFzQkEsRUFBRUE7NEJBQ3RCQSxNQUFNQSxFQUFFQSw0Q0FBNENBOzRCQUNwREEsVUFBVUEsRUFBRUEsMENBQTBDQTt5QkFDdkRBO3dCQUNEQSxVQUFVQSxFQUFFQSwwRUFBMEVBO3FCQUN2RkE7b0JBQ0RBLE9BQU9BLEVBQUVBO3dCQUNQQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLGdDQUFnQ0E7cUJBQ2hEQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSw2REFBNkRBO2FBQzFFQTtZQUNEQSw4Q0FBOENBLEVBQUVBO2dCQUM5Q0EsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxXQUFXQSxFQUFFQTt3QkFDWEEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxxS0FBcUtBO3FCQUNyTEE7b0JBQ0RBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSxTQUFTQTt3QkFDakJBLGFBQWFBLEVBQUVBLG9EQUFvREE7cUJBQ3BFQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSxtRUFBbUVBO2FBQ2hGQTtZQUNEQSxpQ0FBaUNBLEVBQUVBO2dCQUNqQ0EsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxZQUFZQSxFQUFFQTt3QkFDWkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLFNBQVNBLEVBQUVBLElBQUlBO3dCQUNmQSxVQUFVQSxFQUFFQSxJQUFJQTt3QkFDaEJBLE1BQU1BLEVBQUVBOzRCQUNOQSxJQUFJQTt5QkFDTEE7cUJBQ0ZBO29CQUNEQSxPQUFPQSxFQUFFQTt3QkFDUEEsTUFBTUEsRUFBRUEsT0FBT0E7d0JBQ2ZBLGFBQWFBLEVBQUVBLG1HQUFtR0E7d0JBQ2xIQSxPQUFPQSxFQUFFQTs0QkFDUEEsTUFBTUEsRUFBRUEsMkNBQTJDQTs0QkFDbkRBLFVBQVVBLEVBQUVBLGtEQUFrREE7eUJBQy9EQTtxQkFDRkE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsc0JBQXNCQTt3QkFDakNBLFVBQVVBLEVBQUVBLElBQUlBO3FCQUNqQkE7b0JBQ0RBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSxtQ0FBbUNBO3dCQUMzQ0EsVUFBVUEsRUFBRUEsMENBQTBDQTtxQkFDdkRBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLHNEQUFzREE7Z0JBQ2xFQSxnQkFBZ0JBLEVBQUVBO29CQUNoQkEsb0RBQW9EQTtvQkFDcERBLHdEQUF3REE7aUJBQ3pEQTthQUNGQTtZQUNEQSxtQ0FBbUNBLEVBQUVBO2dCQUNuQ0EsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxzQkFBc0JBLEVBQUVBO3dCQUN0QkEsTUFBTUEsRUFBRUEsMkRBQTJEQTt3QkFDbkVBLFVBQVVBLEVBQUVBLGtFQUFrRUE7cUJBQy9FQTtvQkFDREEsUUFBUUEsRUFBRUE7d0JBQ1JBLE1BQU1BLEVBQUVBLDZDQUE2Q0E7d0JBQ3JEQSxVQUFVQSxFQUFFQSxvREFBb0RBO3FCQUNqRUE7b0JBQ0RBLG1CQUFtQkEsRUFBRUE7d0JBQ25CQSxNQUFNQSxFQUFFQSx3REFBd0RBO3dCQUNoRUEsVUFBVUEsRUFBRUEsK0RBQStEQTtxQkFDNUVBO29CQUNEQSxXQUFXQSxFQUFFQTt3QkFDWEEsTUFBTUEsRUFBRUEsZ0RBQWdEQTt3QkFDeERBLFVBQVVBLEVBQUVBLHVEQUF1REE7cUJBQ3BFQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLCtDQUErQ0E7d0JBQ3ZEQSxVQUFVQSxFQUFFQSxzREFBc0RBO3FCQUNuRUE7b0JBQ0RBLE9BQU9BLEVBQUVBO3dCQUNQQSxNQUFNQSxFQUFFQSw0Q0FBNENBO3dCQUNwREEsVUFBVUEsRUFBRUEsbURBQW1EQTtxQkFDaEVBO29CQUNEQSxLQUFLQSxFQUFFQTt3QkFDTEEsTUFBTUEsRUFBRUEsMENBQTBDQTt3QkFDbERBLFVBQVVBLEVBQUVBLGlEQUFpREE7cUJBQzlEQTtvQkFDREEsS0FBS0EsRUFBRUE7d0JBQ0xBLE1BQU1BLEVBQUVBLDBDQUEwQ0E7d0JBQ2xEQSxVQUFVQSxFQUFFQSxpREFBaURBO3FCQUM5REE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsd0RBQXdEQTthQUNyRUE7WUFDREEsaUNBQWlDQSxFQUFFQTtnQkFDakNBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsYUFBYUEsRUFBRUE7d0JBQ2JBLE1BQU1BLEVBQUVBLE9BQU9BO3dCQUNmQSxhQUFhQSxFQUFFQSx3SEFBd0hBO3dCQUN2SUEsT0FBT0EsRUFBRUE7NEJBQ1BBLE1BQU1BLEVBQUVBLFFBQVFBOzRCQUNoQkEsYUFBYUEsRUFBRUEsd0hBQXdIQTt5QkFDeElBO3FCQUNGQTtvQkFDREEsc0JBQXNCQSxFQUFFQTt3QkFDdEJBLE1BQU1BLEVBQUVBLDJEQUEyREE7d0JBQ25FQSxVQUFVQSxFQUFFQSxrRUFBa0VBO3FCQUMvRUE7b0JBQ0RBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLGtKQUFrSkE7d0JBQ2pLQSxzQkFBc0JBLEVBQUVBOzRCQUN0QkEsTUFBTUEsRUFBRUEsNENBQTRDQTs0QkFDcERBLFVBQVVBLEVBQUVBLDBDQUEwQ0E7eUJBQ3ZEQTt3QkFDREEsVUFBVUEsRUFBRUEsMEVBQTBFQTtxQkFDdkZBO29CQUNEQSxRQUFRQSxFQUFFQTt3QkFDUkEsTUFBTUEsRUFBRUEsNkNBQTZDQTt3QkFDckRBLFVBQVVBLEVBQUVBLG9EQUFvREE7cUJBQ2pFQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLDBDQUEwQ0E7d0JBQ2xEQSxVQUFVQSxFQUFFQSxpREFBaURBO3FCQUM5REE7b0JBQ0RBLG1CQUFtQkEsRUFBRUE7d0JBQ25CQSxNQUFNQSxFQUFFQSx3REFBd0RBO3dCQUNoRUEsVUFBVUEsRUFBRUEsK0RBQStEQTtxQkFDNUVBO29CQUNEQSxXQUFXQSxFQUFFQTt3QkFDWEEsTUFBTUEsRUFBRUEsZ0RBQWdEQTt3QkFDeERBLFVBQVVBLEVBQUVBLHVEQUF1REE7cUJBQ3BFQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLCtDQUErQ0E7d0JBQ3ZEQSxVQUFVQSxFQUFFQSxzREFBc0RBO3FCQUNuRUE7b0JBQ0RBLE9BQU9BLEVBQUVBO3dCQUNQQSxNQUFNQSxFQUFFQSw0Q0FBNENBO3dCQUNwREEsVUFBVUEsRUFBRUEsbURBQW1EQTtxQkFDaEVBO29CQUNEQSxLQUFLQSxFQUFFQTt3QkFDTEEsTUFBTUEsRUFBRUEsMENBQTBDQTt3QkFDbERBLFVBQVVBLEVBQUVBLGlEQUFpREE7cUJBQzlEQTtvQkFDREEsK0JBQStCQSxFQUFFQTt3QkFDL0JBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsbVJBQW1SQTtxQkFDblNBO29CQUNEQSxLQUFLQSxFQUFFQTt3QkFDTEEsTUFBTUEsRUFBRUEsMENBQTBDQTt3QkFDbERBLFVBQVVBLEVBQUVBLGlEQUFpREE7cUJBQzlEQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSxzREFBc0RBO2FBQ25FQTtZQUNEQSxtQ0FBbUNBLEVBQUVBO2dCQUNuQ0EsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxTQUFTQSxFQUFFQTt3QkFDVEEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxpRkFBaUZBO3FCQUNqR0E7b0JBQ0RBLE9BQU9BLEVBQUVBO3dCQUNQQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLHVIQUF1SEE7cUJBQ3ZJQTtvQkFDREEsUUFBUUEsRUFBRUE7d0JBQ1JBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsbURBQW1EQTtxQkFDbkVBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLHdEQUF3REE7YUFDckVBO1lBQ0RBLGdCQUFnQkEsRUFBRUE7Z0JBQ2hCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFlBQVlBLEVBQUVBO3dCQUNaQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsSUFBSUE7d0JBQ2ZBLFVBQVVBLEVBQUVBLElBQUlBO3dCQUNoQkEsTUFBTUEsRUFBRUE7NEJBQ05BLElBQUlBO3lCQUNMQTtxQkFDRkE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsS0FBS0E7d0JBQ2hCQSxVQUFVQSxFQUFFQSxJQUFJQTtxQkFDakJBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEscUNBQXFDQTt3QkFDN0NBLFVBQVVBLEVBQUVBLDRDQUE0Q0E7cUJBQ3pEQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLGtDQUFrQ0E7d0JBQzFDQSxVQUFVQSxFQUFFQSx5Q0FBeUNBO3FCQUN0REE7b0JBQ0RBLFFBQVFBLEVBQUVBO3dCQUNSQSxNQUFNQSxFQUFFQSxvQ0FBb0NBO3dCQUM1Q0EsVUFBVUEsRUFBRUEsMkNBQTJDQTtxQkFDeERBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLHFDQUFxQ0E7Z0JBQ2pEQSxnQkFBZ0JBLEVBQUVBO29CQUNoQkEsNkNBQTZDQTtpQkFDOUNBO2FBQ0ZBO1lBQ0RBLHlCQUF5QkEsRUFBRUE7Z0JBQ3pCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFFBQVFBLEVBQUVBO3dCQUNSQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLHlCQUF5QkE7cUJBQ3pDQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsdUJBQXVCQTtxQkFDdkNBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLDhDQUE4Q0E7YUFDM0RBO1lBQ0RBLG9CQUFvQkEsRUFBRUE7Z0JBQ3BCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFlBQVlBLEVBQUVBO3dCQUNaQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsSUFBSUE7d0JBQ2ZBLFVBQVVBLEVBQUVBLElBQUlBO3dCQUNoQkEsTUFBTUEsRUFBRUE7NEJBQ05BLElBQUlBO3lCQUNMQTtxQkFDRkE7b0JBQ0RBLE9BQU9BLEVBQUVBO3dCQUNQQSxNQUFNQSxFQUFFQSxPQUFPQTt3QkFDZkEsYUFBYUEsRUFBRUEsdUVBQXVFQTt3QkFDdEZBLE9BQU9BLEVBQUVBOzRCQUNQQSxNQUFNQSxFQUFFQSw4QkFBOEJBOzRCQUN0Q0EsVUFBVUEsRUFBRUEscUNBQXFDQTt5QkFDbERBO3FCQUNGQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxTQUFTQTt3QkFDcEJBLFVBQVVBLEVBQUVBLElBQUlBO3FCQUNqQkE7b0JBQ0RBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSxtQ0FBbUNBO3dCQUMzQ0EsVUFBVUEsRUFBRUEsMENBQTBDQTtxQkFDdkRBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLHlDQUF5Q0E7Z0JBQ3JEQSxnQkFBZ0JBLEVBQUVBO29CQUNoQkEsb0RBQW9EQTtvQkFDcERBLHdEQUF3REE7aUJBQ3pEQTthQUNGQTtZQUNEQSxvQkFBb0JBLEVBQUVBO2dCQUNwQkEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSx1QkFBdUJBLEVBQUVBO3dCQUN2QkEsTUFBTUEsRUFBRUEsU0FBU0E7d0JBQ2pCQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLFVBQVVBLEVBQUVBLE1BQU1BO3FCQUNuQkE7b0JBQ0RBLFlBQVlBLEVBQUVBO3dCQUNaQSxNQUFNQSxFQUFFQSxPQUFPQTt3QkFDZkEsYUFBYUEsRUFBRUEsMk5BQTJOQTt3QkFDMU9BLE9BQU9BLEVBQUVBOzRCQUNQQSxNQUFNQSxFQUFFQSxvQ0FBb0NBOzRCQUM1Q0EsVUFBVUEsRUFBRUEsMkNBQTJDQTt5QkFDeERBO3FCQUNGQTtvQkFDREEsV0FBV0EsRUFBRUE7d0JBQ1hBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsOEVBQThFQTtxQkFDOUZBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxZQUFZQTtxQkFDNUJBO29CQUNEQSxhQUFhQSxFQUFFQTt3QkFDYkEsTUFBTUEsRUFBRUEsU0FBU0E7d0JBQ2pCQSxhQUFhQSxFQUFFQSx3Q0FBd0NBO3FCQUN4REE7b0JBQ0RBLGtCQUFrQkEsRUFBRUE7d0JBQ2xCQSxNQUFNQSxFQUFFQSxPQUFPQTt3QkFDZkEsYUFBYUEsRUFBRUEsZ01BQWdNQTt3QkFDL01BLE9BQU9BLEVBQUVBOzRCQUNQQSxNQUFNQSxFQUFFQSwrQ0FBK0NBOzRCQUN2REEsVUFBVUEsRUFBRUEsc0RBQXNEQTt5QkFDbkVBO3FCQUNGQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsNkJBQTZCQTtxQkFDN0NBO29CQUNEQSxjQUFjQSxFQUFFQTt3QkFDZEEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSw4SkFBOEpBO3dCQUM3S0Esc0JBQXNCQSxFQUFFQTs0QkFDdEJBLE1BQU1BLEVBQUVBLFFBQVFBOzRCQUNoQkEsYUFBYUEsRUFBRUEsOEpBQThKQTt5QkFDOUtBO3dCQUNEQSxVQUFVQSxFQUFFQSx3Q0FBd0NBO3FCQUNyREE7b0JBQ0RBLGVBQWVBLEVBQUVBO3dCQUNmQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLGlFQUFpRUE7cUJBQ2pGQTtvQkFDREEsZ0JBQWdCQSxFQUFFQTt3QkFDaEJBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsNENBQTRDQTtxQkFDNURBO29CQUNEQSxvQkFBb0JBLEVBQUVBO3dCQUNwQkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxvSEFBb0hBO3FCQUNwSUE7b0JBQ0RBLCtCQUErQkEsRUFBRUE7d0JBQy9CQSxNQUFNQSxFQUFFQSxTQUFTQTt3QkFDakJBLGFBQWFBLEVBQUVBLG1OQUFtTkE7d0JBQ2xPQSxVQUFVQSxFQUFFQSxNQUFNQTtxQkFDbkJBO29CQUNEQSxTQUFTQSxFQUFFQTt3QkFDVEEsTUFBTUEsRUFBRUEsT0FBT0E7d0JBQ2ZBLGFBQWFBLEVBQUVBLG9JQUFvSUE7d0JBQ25KQSxPQUFPQSxFQUFFQTs0QkFDUEEsTUFBTUEsRUFBRUEsaUNBQWlDQTs0QkFDekNBLFVBQVVBLEVBQUVBLHdDQUF3Q0E7eUJBQ3JEQTtxQkFDRkE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEseUNBQXlDQTthQUN0REE7WUFDREEsc0JBQXNCQSxFQUFFQTtnQkFDdEJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsWUFBWUEsRUFBRUE7d0JBQ1pBLE1BQU1BLEVBQUVBLE9BQU9BO3dCQUNmQSxhQUFhQSxFQUFFQSw0R0FBNEdBO3dCQUMzSEEsT0FBT0EsRUFBRUE7NEJBQ1BBLE1BQU1BLEVBQUVBLHVDQUF1Q0E7NEJBQy9DQSxVQUFVQSxFQUFFQSw4Q0FBOENBO3lCQUMzREE7cUJBQ0ZBO29CQUNEQSxtQkFBbUJBLEVBQUVBO3dCQUNuQkEsTUFBTUEsRUFBRUEsT0FBT0E7d0JBQ2ZBLGFBQWFBLEVBQUVBLDhHQUE4R0E7d0JBQzdIQSxPQUFPQSxFQUFFQTs0QkFDUEEsTUFBTUEsRUFBRUEsMENBQTBDQTs0QkFDbERBLFVBQVVBLEVBQUVBLGlEQUFpREE7eUJBQzlEQTtxQkFDRkE7b0JBQ0RBLFFBQVFBLEVBQUVBO3dCQUNSQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLGlGQUFpRkE7cUJBQ2pHQTtvQkFDREEsU0FBU0EsRUFBRUE7d0JBQ1RBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsa0ZBQWtGQTtxQkFDbEdBO29CQUNEQSxPQUFPQSxFQUFFQTt3QkFDUEEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSx1R0FBdUdBO3FCQUN2SEE7b0JBQ0RBLE9BQU9BLEVBQUVBO3dCQUNQQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLG1HQUFtR0E7cUJBQ25IQTtvQkFDREEsUUFBUUEsRUFBRUE7d0JBQ1JBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsb0ZBQW9GQTtxQkFDcEdBO29CQUNEQSxXQUFXQSxFQUFFQTt3QkFDWEEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxvSkFBb0pBO3FCQUNwS0E7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsMkNBQTJDQTthQUN4REE7WUFDREEsNEJBQTRCQSxFQUFFQTtnQkFDNUJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLHFDQUFxQ0E7d0JBQzdDQSxVQUFVQSxFQUFFQSw0Q0FBNENBO3FCQUN6REE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxrQ0FBa0NBO3dCQUMxQ0EsVUFBVUEsRUFBRUEseUNBQXlDQTtxQkFDdERBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLGlEQUFpREE7YUFDOURBO1lBQ0RBLGtCQUFrQkEsRUFBRUE7Z0JBQ2xCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxxQ0FBcUNBO3dCQUM3Q0EsVUFBVUEsRUFBRUEsNENBQTRDQTtxQkFDekRBO29CQUNEQSxTQUFTQSxFQUFFQTt3QkFDVEEsTUFBTUEsRUFBRUEsd0NBQXdDQTt3QkFDaERBLFVBQVVBLEVBQUVBLCtDQUErQ0E7cUJBQzVEQTtvQkFDREEscUJBQXFCQSxFQUFFQTt3QkFDckJBLE1BQU1BLEVBQUVBLFNBQVNBO3dCQUNqQkEsYUFBYUEsRUFBRUEsd0tBQXdLQTt3QkFDdkxBLFVBQVVBLEVBQUVBLE1BQU1BO3FCQUNuQkE7b0JBQ0RBLFdBQVdBLEVBQUVBO3dCQUNYQSxNQUFNQSxFQUFFQSwwQ0FBMENBO3dCQUNsREEsVUFBVUEsRUFBRUEsaURBQWlEQTtxQkFDOURBO29CQUNEQSxnQkFBZ0JBLEVBQUVBO3dCQUNoQkEsTUFBTUEsRUFBRUEsU0FBU0E7d0JBQ2pCQSxhQUFhQSxFQUFFQSw2SkFBNkpBO3dCQUM1S0EsVUFBVUEsRUFBRUEsTUFBTUE7cUJBQ25CQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSx1Q0FBdUNBO2FBQ3BEQTtZQUNEQSw0QkFBNEJBLEVBQUVBO2dCQUM1QkEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxRQUFRQSxFQUFFQTt3QkFDUkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSwyQkFBMkJBO3FCQUMzQ0E7b0JBQ0RBLE9BQU9BLEVBQUVBO3dCQUNQQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLHdGQUF3RkE7cUJBQ3hHQTtvQkFDREEsU0FBU0EsRUFBRUE7d0JBQ1RBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsOEpBQThKQTtxQkFDOUtBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEsT0FBT0E7d0JBQ2ZBLGFBQWFBLEVBQUVBLHFHQUFxR0E7d0JBQ3BIQSxPQUFPQSxFQUFFQTs0QkFDUEEsTUFBTUEsRUFBRUEsUUFBUUE7NEJBQ2hCQSxhQUFhQSxFQUFFQSxxR0FBcUdBO3lCQUNySEE7cUJBQ0ZBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxpSEFBaUhBO3FCQUNqSUE7b0JBQ0RBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSxTQUFTQTt3QkFDakJBLGFBQWFBLEVBQUVBLDJIQUEySEE7cUJBQzNJQTtvQkFDREEsV0FBV0EsRUFBRUE7d0JBQ1hBLE1BQU1BLEVBQUVBLCtDQUErQ0E7d0JBQ3ZEQSxVQUFVQSxFQUFFQSxzREFBc0RBO3FCQUNuRUE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLG1IQUFtSEE7cUJBQ25JQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSxpREFBaURBO2FBQzlEQTtZQUNEQSxrQ0FBa0NBLEVBQUVBO2dCQUNsQ0EsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxZQUFZQSxFQUFFQTt3QkFDWkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLFNBQVNBLEVBQUVBLElBQUlBO3dCQUNmQSxVQUFVQSxFQUFFQSxJQUFJQTt3QkFDaEJBLE1BQU1BLEVBQUVBOzRCQUNOQSxJQUFJQTt5QkFDTEE7cUJBQ0ZBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLFNBQVNBLEVBQUVBLHVCQUF1QkE7d0JBQ2xDQSxVQUFVQSxFQUFFQSxJQUFJQTtxQkFDakJBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEscUNBQXFDQTt3QkFDN0NBLFVBQVVBLEVBQUVBLDRDQUE0Q0E7cUJBQ3pEQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLG9EQUFvREE7d0JBQzVEQSxVQUFVQSxFQUFFQSwyREFBMkRBO3FCQUN4RUE7b0JBQ0RBLFFBQVFBLEVBQUVBO3dCQUNSQSxNQUFNQSxFQUFFQSxzREFBc0RBO3dCQUM5REEsVUFBVUEsRUFBRUEsNkRBQTZEQTtxQkFDMUVBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLHVEQUF1REE7Z0JBQ25FQSxnQkFBZ0JBLEVBQUVBO29CQUNoQkEsNkNBQTZDQTtpQkFDOUNBO2FBQ0ZBO1lBQ0RBLHNDQUFzQ0EsRUFBRUE7Z0JBQ3RDQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFlBQVlBLEVBQUVBO3dCQUNaQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsSUFBSUE7d0JBQ2ZBLFVBQVVBLEVBQUVBLElBQUlBO3dCQUNoQkEsTUFBTUEsRUFBRUE7NEJBQ05BLElBQUlBO3lCQUNMQTtxQkFDRkE7b0JBQ0RBLE9BQU9BLEVBQUVBO3dCQUNQQSxNQUFNQSxFQUFFQSxPQUFPQTt3QkFDZkEsYUFBYUEsRUFBRUEsNEdBQTRHQTt3QkFDM0hBLE9BQU9BLEVBQUVBOzRCQUNQQSxNQUFNQSxFQUFFQSxnREFBZ0RBOzRCQUN4REEsVUFBVUEsRUFBRUEsdURBQXVEQTt5QkFDcEVBO3FCQUNGQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSwyQkFBMkJBO3dCQUN0Q0EsVUFBVUEsRUFBRUEsSUFBSUE7cUJBQ2pCQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLG1DQUFtQ0E7d0JBQzNDQSxVQUFVQSxFQUFFQSwwQ0FBMENBO3FCQUN2REE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsMkRBQTJEQTtnQkFDdkVBLGdCQUFnQkEsRUFBRUE7b0JBQ2hCQSxvREFBb0RBO29CQUNwREEsd0RBQXdEQTtpQkFDekRBO2FBQ0ZBO1lBQ0RBLHNDQUFzQ0EsRUFBRUE7Z0JBQ3RDQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSxTQUFTQTt3QkFDakJBLGFBQWFBLEVBQUVBLHVKQUF1SkE7cUJBQ3ZLQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsZ0dBQWdHQTt3QkFDL0dBLHNCQUFzQkEsRUFBRUE7NEJBQ3RCQSxNQUFNQSxFQUFFQSxRQUFRQTs0QkFDaEJBLGFBQWFBLEVBQUVBLGdHQUFnR0E7eUJBQ2hIQTt3QkFDREEsVUFBVUEsRUFBRUEsd0NBQXdDQTtxQkFDckRBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEsMENBQTBDQTt3QkFDbERBLFVBQVVBLEVBQUVBLGlEQUFpREE7cUJBQzlEQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSwyREFBMkRBO2FBQ3hFQTtZQUNEQSx3Q0FBd0NBLEVBQUVBO2dCQUN4Q0EsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxvQkFBb0JBLEVBQUVBO3dCQUNwQkEsTUFBTUEsRUFBRUEsU0FBU0E7d0JBQ2pCQSxhQUFhQSxFQUFFQSw4RUFBOEVBO3dCQUM3RkEsVUFBVUEsRUFBRUEsTUFBTUE7cUJBQ25CQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLFNBQVNBO3dCQUNqQkEsYUFBYUEsRUFBRUEsc0pBQXNKQTtxQkFDdEtBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLDZEQUE2REE7YUFDMUVBO1lBQ0RBLDBCQUEwQkEsRUFBRUE7Z0JBQzFCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFlBQVlBLEVBQUVBO3dCQUNaQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsSUFBSUE7d0JBQ2ZBLFVBQVVBLEVBQUVBLElBQUlBO3dCQUNoQkEsTUFBTUEsRUFBRUE7NEJBQ05BLElBQUlBO3lCQUNMQTtxQkFDRkE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsZUFBZUE7d0JBQzFCQSxVQUFVQSxFQUFFQSxJQUFJQTtxQkFDakJBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEscUNBQXFDQTt3QkFDN0NBLFVBQVVBLEVBQUVBLDRDQUE0Q0E7cUJBQ3pEQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLDRDQUE0Q0E7d0JBQ3BEQSxVQUFVQSxFQUFFQSxtREFBbURBO3FCQUNoRUE7b0JBQ0RBLFFBQVFBLEVBQUVBO3dCQUNSQSxNQUFNQSxFQUFFQSw4Q0FBOENBO3dCQUN0REEsVUFBVUEsRUFBRUEscURBQXFEQTtxQkFDbEVBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLCtDQUErQ0E7Z0JBQzNEQSxnQkFBZ0JBLEVBQUVBO29CQUNoQkEsNkNBQTZDQTtpQkFDOUNBO2FBQ0ZBO1lBQ0RBLDhCQUE4QkEsRUFBRUE7Z0JBQzlCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFlBQVlBLEVBQUVBO3dCQUNaQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsSUFBSUE7d0JBQ2ZBLFVBQVVBLEVBQUVBLElBQUlBO3dCQUNoQkEsTUFBTUEsRUFBRUE7NEJBQ05BLElBQUlBO3lCQUNMQTtxQkFDRkE7b0JBQ0RBLE9BQU9BLEVBQUVBO3dCQUNQQSxNQUFNQSxFQUFFQSxPQUFPQTt3QkFDZkEsYUFBYUEsRUFBRUEsaUtBQWlLQTt3QkFDaExBLE9BQU9BLEVBQUVBOzRCQUNQQSxNQUFNQSxFQUFFQSx3Q0FBd0NBOzRCQUNoREEsVUFBVUEsRUFBRUEsK0NBQStDQTt5QkFDNURBO3FCQUNGQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxtQkFBbUJBO3dCQUM5QkEsVUFBVUEsRUFBRUEsSUFBSUE7cUJBQ2pCQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLG1DQUFtQ0E7d0JBQzNDQSxVQUFVQSxFQUFFQSwwQ0FBMENBO3FCQUN2REE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsbURBQW1EQTtnQkFDL0RBLGdCQUFnQkEsRUFBRUE7b0JBQ2hCQSxvREFBb0RBO29CQUNwREEsd0RBQXdEQTtpQkFDekRBO2FBQ0ZBO1lBQ0RBLDhCQUE4QkEsRUFBRUE7Z0JBQzlCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLHVMQUF1TEE7d0JBQ3RNQSxzQkFBc0JBLEVBQUVBOzRCQUN0QkEsTUFBTUEsRUFBRUEsNENBQTRDQTs0QkFDcERBLFVBQVVBLEVBQUVBLDBDQUEwQ0E7eUJBQ3ZEQTt3QkFDREEsVUFBVUEsRUFBRUEsMEVBQTBFQTtxQkFDdkZBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLG1EQUFtREE7YUFDaEVBO1lBQ0RBLGdDQUFnQ0EsRUFBRUE7Z0JBQ2hDQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLHdMQUF3TEE7d0JBQ3ZNQSxzQkFBc0JBLEVBQUVBOzRCQUN0QkEsTUFBTUEsRUFBRUEsNENBQTRDQTs0QkFDcERBLFVBQVVBLEVBQUVBLDBDQUEwQ0E7eUJBQ3ZEQTt3QkFDREEsVUFBVUEsRUFBRUEsMEVBQTBFQTtxQkFDdkZBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSwyRUFBMkVBO3dCQUMxRkEsc0JBQXNCQSxFQUFFQTs0QkFDdEJBLE1BQU1BLEVBQUVBLDRDQUE0Q0E7NEJBQ3BEQSxVQUFVQSxFQUFFQSwwQ0FBMENBO3lCQUN2REE7d0JBQ0RBLFVBQVVBLEVBQUVBLDBFQUEwRUE7cUJBQ3ZGQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSxxREFBcURBO2FBQ2xFQTtZQUNEQSxpQ0FBaUNBLEVBQUVBO2dCQUNqQ0EsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxRQUFRQSxFQUFFQTt3QkFDUkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSwrSEFBK0hBO3dCQUM5SUEsc0JBQXNCQSxFQUFFQTs0QkFDdEJBLE1BQU1BLEVBQUVBLDRDQUE0Q0E7NEJBQ3BEQSxVQUFVQSxFQUFFQSwwQ0FBMENBO3lCQUN2REE7d0JBQ0RBLFVBQVVBLEVBQUVBLDBFQUEwRUE7cUJBQ3ZGQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsK0VBQStFQTt3QkFDOUZBLHNCQUFzQkEsRUFBRUE7NEJBQ3RCQSxNQUFNQSxFQUFFQSw0Q0FBNENBOzRCQUNwREEsVUFBVUEsRUFBRUEsMENBQTBDQTt5QkFDdkRBO3dCQUNEQSxVQUFVQSxFQUFFQSwwRUFBMEVBO3FCQUN2RkE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsc0RBQXNEQTthQUNuRUE7WUFDREEscUNBQXFDQSxFQUFFQTtnQkFDckNBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEscUNBQXFDQTtxQkFDckRBO29CQUNEQSxLQUFLQSxFQUFFQTt3QkFDTEEsTUFBTUEsRUFBRUEsU0FBU0E7d0JBQ2pCQSxhQUFhQSxFQUFFQSxrREFBa0RBO3dCQUNqRUEsVUFBVUEsRUFBRUEsTUFBTUE7cUJBQ25CQTtvQkFDREEsYUFBYUEsRUFBRUE7d0JBQ2JBLE1BQU1BLEVBQUVBLFNBQVNBO3dCQUNqQkEsYUFBYUEsRUFBRUEsc0NBQXNDQTt3QkFDckRBLFVBQVVBLEVBQUVBLE1BQU1BO3FCQUNuQkE7b0JBQ0RBLGFBQWFBLEVBQUVBO3dCQUNiQSxNQUFNQSxFQUFFQSxTQUFTQTt3QkFDakJBLGFBQWFBLEVBQUVBLHNDQUFzQ0E7d0JBQ3JEQSxVQUFVQSxFQUFFQSxNQUFNQTtxQkFDbkJBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLDBEQUEwREE7YUFDdkVBO1lBQ0RBLDBDQUEwQ0EsRUFBRUE7Z0JBQzFDQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLGdCQUFnQkEsRUFBRUE7d0JBQ2hCQSxNQUFNQSxFQUFFQSx5Q0FBeUNBO3dCQUNqREEsVUFBVUEsRUFBRUEsZ0RBQWdEQTtxQkFDN0RBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSwrQ0FBK0NBO3FCQUMvREE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsK0RBQStEQTthQUM1RUE7WUFDREEsMkJBQTJCQSxFQUFFQTtnQkFDM0JBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsT0FBT0EsRUFBRUE7d0JBQ1BBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsc0dBQXNHQTtxQkFDdEhBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxxR0FBcUdBO3FCQUNySEE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLHFHQUFxR0E7cUJBQ3JIQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEscUdBQXFHQTtxQkFDckhBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLGdEQUFnREE7YUFDN0RBO1lBQ0RBLG1CQUFtQkEsRUFBRUE7Z0JBQ25CQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFlBQVlBLEVBQUVBO3dCQUNaQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsSUFBSUE7d0JBQ2ZBLFVBQVVBLEVBQUVBLElBQUlBO3dCQUNoQkEsTUFBTUEsRUFBRUE7NEJBQ05BLElBQUlBO3lCQUNMQTtxQkFDRkE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLGtPQUFrT0E7d0JBQ2pQQSxzQkFBc0JBLEVBQUVBOzRCQUN0QkEsTUFBTUEsRUFBRUEsUUFBUUE7NEJBQ2hCQSxhQUFhQSxFQUFFQSxrT0FBa09BO3lCQUNsUEE7d0JBQ0RBLFVBQVVBLEVBQUVBLHdDQUF3Q0E7cUJBQ3JEQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxRQUFRQTt3QkFDbkJBLFVBQVVBLEVBQUVBLElBQUlBO3FCQUNqQkE7b0JBQ0RBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSxxQ0FBcUNBO3dCQUM3Q0EsVUFBVUEsRUFBRUEsNENBQTRDQTtxQkFDekRBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSx1REFBdURBO3FCQUN2RUE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsd0NBQXdDQTtnQkFDcERBLGdCQUFnQkEsRUFBRUE7b0JBQ2hCQSw2Q0FBNkNBO2lCQUM5Q0E7YUFDRkE7WUFDREEsdUJBQXVCQSxFQUFFQTtnQkFDdkJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsWUFBWUEsRUFBRUE7d0JBQ1pBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxJQUFJQTt3QkFDZkEsVUFBVUEsRUFBRUEsSUFBSUE7d0JBQ2hCQSxNQUFNQSxFQUFFQTs0QkFDTkEsSUFBSUE7eUJBQ0xBO3FCQUNGQTtvQkFDREEsT0FBT0EsRUFBRUE7d0JBQ1BBLE1BQU1BLEVBQUVBLE9BQU9BO3dCQUNmQSxhQUFhQSxFQUFFQSwrRkFBK0ZBO3dCQUM5R0EsT0FBT0EsRUFBRUE7NEJBQ1BBLE1BQU1BLEVBQUVBLGlDQUFpQ0E7NEJBQ3pDQSxVQUFVQSxFQUFFQSx3Q0FBd0NBO3lCQUNyREE7cUJBQ0ZBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLFNBQVNBLEVBQUVBLFlBQVlBO3dCQUN2QkEsVUFBVUEsRUFBRUEsSUFBSUE7cUJBQ2pCQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLG1DQUFtQ0E7d0JBQzNDQSxVQUFVQSxFQUFFQSwwQ0FBMENBO3FCQUN2REE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsNENBQTRDQTtnQkFDeERBLGdCQUFnQkEsRUFBRUE7b0JBQ2hCQSxvREFBb0RBO29CQUNwREEsd0RBQXdEQTtpQkFDekRBO2FBQ0ZBO1lBQ0RBLCtCQUErQkEsRUFBRUE7Z0JBQy9CQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFlBQVlBLEVBQUVBO3dCQUNaQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLCtIQUErSEE7cUJBQy9JQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSxvREFBb0RBO2FBQ2pFQTtZQUNEQSw0QkFBNEJBLEVBQUVBO2dCQUM1QkEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxjQUFjQSxFQUFFQTt3QkFDZEEsTUFBTUEsRUFBRUEsdUNBQXVDQTt3QkFDL0NBLFVBQVVBLEVBQUVBLDhDQUE4Q0E7cUJBQzNEQTtvQkFDREEsWUFBWUEsRUFBRUE7d0JBQ1pBLE1BQU1BLEVBQUVBLFNBQVNBO3dCQUNqQkEsYUFBYUEsRUFBRUEsd0hBQXdIQTtxQkFDeElBO29CQUNEQSxjQUFjQSxFQUFFQTt3QkFDZEEsTUFBTUEsRUFBRUEsU0FBU0E7d0JBQ2pCQSxhQUFhQSxFQUFFQSx5SEFBeUhBO3FCQUN6SUE7b0JBQ0RBLFdBQVdBLEVBQUVBO3dCQUNYQSxNQUFNQSxFQUFFQSxTQUFTQTt3QkFDakJBLGFBQWFBLEVBQUVBLDRJQUE0SUE7d0JBQzNKQSxVQUFVQSxFQUFFQSxNQUFNQTtxQkFDbkJBO29CQUNEQSxnQkFBZ0JBLEVBQUVBO3dCQUNoQkEsTUFBTUEsRUFBRUEseUNBQXlDQTt3QkFDakRBLFVBQVVBLEVBQUVBLGdEQUFnREE7cUJBQzdEQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSxpREFBaURBO2FBQzlEQTtZQUNEQSx1Q0FBdUNBLEVBQUVBO2dCQUN2Q0EsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSwwQkFBMEJBLEVBQUVBO3dCQUMxQkEsTUFBTUEsRUFBRUEsU0FBU0E7d0JBQ2pCQSxhQUFhQSxFQUFFQSw2Q0FBNkNBO3FCQUM3REE7b0JBQ0RBLGtCQUFrQkEsRUFBRUE7d0JBQ2xCQSxNQUFNQSxFQUFFQSxTQUFTQTt3QkFDakJBLGFBQWFBLEVBQUVBLGtEQUFrREE7cUJBQ2xFQTtvQkFDREEsZ0JBQWdCQSxFQUFFQTt3QkFDaEJBLE1BQU1BLEVBQUVBLFNBQVNBO3dCQUNqQkEsYUFBYUEsRUFBRUEsbURBQW1EQTtxQkFDbkVBO29CQUNEQSwwQkFBMEJBLEVBQUVBO3dCQUMxQkEsTUFBTUEsRUFBRUEsU0FBU0E7d0JBQ2pCQSxhQUFhQSxFQUFFQSx1Q0FBdUNBO3FCQUN2REE7b0JBQ0RBLHFCQUFxQkEsRUFBRUE7d0JBQ3JCQSxNQUFNQSxFQUFFQSxPQUFPQTt3QkFDZkEsYUFBYUEsRUFBRUEsMkNBQTJDQTt3QkFDMURBLE9BQU9BLEVBQUVBOzRCQUNQQSxNQUFNQSxFQUFFQSxRQUFRQTs0QkFDaEJBLGFBQWFBLEVBQUVBLDJDQUEyQ0E7eUJBQzNEQTtxQkFDRkE7b0JBQ0RBLFlBQVlBLEVBQUVBO3dCQUNaQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsSUFBSUE7d0JBQ2ZBLFVBQVVBLEVBQUVBLElBQUlBO3dCQUNoQkEsTUFBTUEsRUFBRUE7NEJBQ05BLElBQUlBO3lCQUNMQTtxQkFDRkE7b0JBQ0RBLFFBQVFBLEVBQUVBO3dCQUNSQSxNQUFNQSxFQUFFQSxPQUFPQTt3QkFDZkEsYUFBYUEsRUFBRUEsdURBQXVEQTt3QkFDdEVBLE9BQU9BLEVBQUVBOzRCQUNQQSxNQUFNQSxFQUFFQSxRQUFRQTs0QkFDaEJBLGFBQWFBLEVBQUVBLHVEQUF1REE7eUJBQ3ZFQTtxQkFDRkE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsNEJBQTRCQTt3QkFDdkNBLFVBQVVBLEVBQUVBLElBQUlBO3FCQUNqQkE7b0JBQ0RBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSxxQ0FBcUNBO3dCQUM3Q0EsVUFBVUEsRUFBRUEsNENBQTRDQTtxQkFDekRBO29CQUNEQSxXQUFXQSxFQUFFQTt3QkFDWEEsTUFBTUEsRUFBRUEsbURBQW1EQTt3QkFDM0RBLFVBQVVBLEVBQUVBLDBEQUEwREE7cUJBQ3ZFQTtvQkFDREEsZ0JBQWdCQSxFQUFFQTt3QkFDaEJBLE1BQU1BLEVBQUVBLHdEQUF3REE7d0JBQ2hFQSxVQUFVQSxFQUFFQSwrREFBK0RBO3FCQUM1RUE7b0JBQ0RBLE9BQU9BLEVBQUVBO3dCQUNQQSxNQUFNQSxFQUFFQSxPQUFPQTt3QkFDZkEsYUFBYUEsRUFBRUEsc0RBQXNEQTt3QkFDckVBLE9BQU9BLEVBQUVBOzRCQUNQQSxNQUFNQSxFQUFFQSxRQUFRQTs0QkFDaEJBLGFBQWFBLEVBQUVBLHNEQUFzREE7eUJBQ3RFQTtxQkFDRkE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsNERBQTREQTtnQkFDeEVBLGdCQUFnQkEsRUFBRUE7b0JBQ2hCQSw2Q0FBNkNBO2lCQUM5Q0E7YUFDRkE7WUFDREEsMkNBQTJDQSxFQUFFQTtnQkFDM0NBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsWUFBWUEsRUFBRUE7d0JBQ1pBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxJQUFJQTt3QkFDZkEsVUFBVUEsRUFBRUEsSUFBSUE7d0JBQ2hCQSxNQUFNQSxFQUFFQTs0QkFDTkEsSUFBSUE7eUJBQ0xBO3FCQUNGQTtvQkFDREEsT0FBT0EsRUFBRUE7d0JBQ1BBLE1BQU1BLEVBQUVBLE9BQU9BO3dCQUNmQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLE9BQU9BLEVBQUVBOzRCQUNQQSxNQUFNQSxFQUFFQSxxREFBcURBOzRCQUM3REEsVUFBVUEsRUFBRUEsNERBQTREQTt5QkFDekVBO3FCQUNGQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxnQ0FBZ0NBO3dCQUMzQ0EsVUFBVUEsRUFBRUEsSUFBSUE7cUJBQ2pCQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLG1DQUFtQ0E7d0JBQzNDQSxVQUFVQSxFQUFFQSwwQ0FBMENBO3FCQUN2REE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsZ0VBQWdFQTtnQkFDNUVBLGdCQUFnQkEsRUFBRUE7b0JBQ2hCQSxvREFBb0RBO29CQUNwREEsd0RBQXdEQTtpQkFDekRBO2FBQ0ZBO1lBQ0RBLG9CQUFvQkEsRUFBRUE7Z0JBQ3BCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFlBQVlBLEVBQUVBO3dCQUNaQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsSUFBSUE7d0JBQ2ZBLFVBQVVBLEVBQUVBLElBQUlBO3dCQUNoQkEsTUFBTUEsRUFBRUE7NEJBQ05BLElBQUlBO3lCQUNMQTtxQkFDRkE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsU0FBU0E7d0JBQ3BCQSxVQUFVQSxFQUFFQSxJQUFJQTtxQkFDakJBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEscUNBQXFDQTt3QkFDN0NBLFVBQVVBLEVBQUVBLDRDQUE0Q0E7cUJBQ3pEQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLHNDQUFzQ0E7d0JBQzlDQSxVQUFVQSxFQUFFQSw2Q0FBNkNBO3FCQUMxREE7b0JBQ0RBLFFBQVFBLEVBQUVBO3dCQUNSQSxNQUFNQSxFQUFFQSx3Q0FBd0NBO3dCQUNoREEsVUFBVUEsRUFBRUEsK0NBQStDQTtxQkFDNURBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLHlDQUF5Q0E7Z0JBQ3JEQSxnQkFBZ0JBLEVBQUVBO29CQUNoQkEsNkNBQTZDQTtpQkFDOUNBO2FBQ0ZBO1lBQ0RBLDJCQUEyQkEsRUFBRUE7Z0JBQzNCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFlBQVlBLEVBQUVBO3dCQUNaQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsSUFBSUE7d0JBQ2ZBLFVBQVVBLEVBQUVBLElBQUlBO3dCQUNoQkEsTUFBTUEsRUFBRUE7NEJBQ05BLElBQUlBO3lCQUNMQTtxQkFDRkE7b0JBQ0RBLGtCQUFrQkEsRUFBRUE7d0JBQ2xCQSxNQUFNQSxFQUFFQSxPQUFPQTt3QkFDZkEsYUFBYUEsRUFBRUEsK0xBQStMQTt3QkFDOU1BLE9BQU9BLEVBQUVBOzRCQUNQQSxNQUFNQSxFQUFFQSwrQ0FBK0NBOzRCQUN2REEsVUFBVUEsRUFBRUEsc0RBQXNEQTt5QkFDbkVBO3FCQUNGQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxnQkFBZ0JBO3dCQUMzQkEsVUFBVUEsRUFBRUEsSUFBSUE7cUJBQ2pCQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLHFDQUFxQ0E7d0JBQzdDQSxVQUFVQSxFQUFFQSw0Q0FBNENBO3FCQUN6REE7b0JBQ0RBLFNBQVNBLEVBQUVBO3dCQUNUQSxNQUFNQSxFQUFFQSxPQUFPQTt3QkFDZkEsYUFBYUEsRUFBRUEsc0lBQXNJQTt3QkFDckpBLE9BQU9BLEVBQUVBOzRCQUNQQSxNQUFNQSxFQUFFQSwwQ0FBMENBOzRCQUNsREEsVUFBVUEsRUFBRUEsaURBQWlEQTt5QkFDOURBO3FCQUNGQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSxnREFBZ0RBO2dCQUM1REEsZ0JBQWdCQSxFQUFFQTtvQkFDaEJBLDZDQUE2Q0E7aUJBQzlDQTthQUNGQTtZQUNEQSwrQkFBK0JBLEVBQUVBO2dCQUMvQkEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxZQUFZQSxFQUFFQTt3QkFDWkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLFNBQVNBLEVBQUVBLElBQUlBO3dCQUNmQSxVQUFVQSxFQUFFQSxJQUFJQTt3QkFDaEJBLE1BQU1BLEVBQUVBOzRCQUNOQSxJQUFJQTt5QkFDTEE7cUJBQ0ZBO29CQUNEQSxPQUFPQSxFQUFFQTt3QkFDUEEsTUFBTUEsRUFBRUEsT0FBT0E7d0JBQ2ZBLGFBQWFBLEVBQUVBLDJHQUEyR0E7d0JBQzFIQSxPQUFPQSxFQUFFQTs0QkFDUEEsTUFBTUEsRUFBRUEseUNBQXlDQTs0QkFDakRBLFVBQVVBLEVBQUVBLGdEQUFnREE7eUJBQzdEQTtxQkFDRkE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsb0JBQW9CQTt3QkFDL0JBLFVBQVVBLEVBQUVBLElBQUlBO3FCQUNqQkE7b0JBQ0RBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSxtQ0FBbUNBO3dCQUMzQ0EsVUFBVUEsRUFBRUEsMENBQTBDQTtxQkFDdkRBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLG9EQUFvREE7Z0JBQ2hFQSxnQkFBZ0JBLEVBQUVBO29CQUNoQkEsb0RBQW9EQTtvQkFDcERBLHdEQUF3REE7aUJBQ3pEQTthQUNGQTtZQUNEQSx3QkFBd0JBLEVBQUVBO2dCQUN4QkEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxZQUFZQSxFQUFFQTt3QkFDWkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLFNBQVNBLEVBQUVBLElBQUlBO3dCQUNmQSxVQUFVQSxFQUFFQSxJQUFJQTt3QkFDaEJBLE1BQU1BLEVBQUVBOzRCQUNOQSxJQUFJQTt5QkFDTEE7cUJBQ0ZBO29CQUNEQSxPQUFPQSxFQUFFQTt3QkFDUEEsTUFBTUEsRUFBRUEsT0FBT0E7d0JBQ2ZBLGFBQWFBLEVBQUVBLGtCQUFrQkE7d0JBQ2pDQSxPQUFPQSxFQUFFQTs0QkFDUEEsTUFBTUEsRUFBRUEsa0NBQWtDQTs0QkFDMUNBLFVBQVVBLEVBQUVBLHlDQUF5Q0E7eUJBQ3REQTtxQkFDRkE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsYUFBYUE7d0JBQ3hCQSxVQUFVQSxFQUFFQSxJQUFJQTtxQkFDakJBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEsbUNBQW1DQTt3QkFDM0NBLFVBQVVBLEVBQUVBLDBDQUEwQ0E7cUJBQ3ZEQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSw2Q0FBNkNBO2dCQUN6REEsZ0JBQWdCQSxFQUFFQTtvQkFDaEJBLG9EQUFvREE7b0JBQ3BEQSx3REFBd0RBO2lCQUN6REE7YUFDRkE7WUFDREEsd0JBQXdCQSxFQUFFQTtnQkFDeEJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsNkRBQTZEQTt3QkFDNUVBLFdBQVdBLEVBQUVBLEVBQUVBO3dCQUNmQSxTQUFTQSxFQUFFQSxpQ0FBaUNBO3FCQUM3Q0E7b0JBQ0RBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSxTQUFTQTt3QkFDakJBLGFBQWFBLEVBQUVBLHlJQUF5SUE7cUJBQ3pKQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFNBQVNBO3dCQUNqQkEsYUFBYUEsRUFBRUEsaUNBQWlDQTtxQkFDakRBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSx3RUFBd0VBO3FCQUN4RkE7b0JBQ0RBLFlBQVlBLEVBQUVBO3dCQUNaQSxNQUFNQSxFQUFFQSwyQ0FBMkNBO3dCQUNuREEsVUFBVUEsRUFBRUEsNkNBQTZDQTtxQkFDMURBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLDZDQUE2Q0E7YUFDMURBO1lBQ0RBLHdCQUF3QkEsRUFBRUE7Z0JBQ3hCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFdBQVdBLEVBQUVBO3dCQUNYQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLHlFQUF5RUE7cUJBQ3pGQTtvQkFDREEscUJBQXFCQSxFQUFFQTt3QkFDckJBLE1BQU1BLEVBQUVBLE9BQU9BO3dCQUNmQSxhQUFhQSxFQUFFQSxpR0FBaUdBO3dCQUNoSEEsT0FBT0EsRUFBRUE7NEJBQ1BBLE1BQU1BLEVBQUVBLFFBQVFBOzRCQUNoQkEsYUFBYUEsRUFBRUEsaUdBQWlHQTt5QkFDakhBO3FCQUNGQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsWUFBWUE7cUJBQzVCQTtvQkFDREEsT0FBT0EsRUFBRUE7d0JBQ1BBLE1BQU1BLEVBQUVBLE9BQU9BO3dCQUNmQSxhQUFhQSxFQUFFQSwySEFBMkhBO3dCQUMxSUEsT0FBT0EsRUFBRUE7NEJBQ1BBLE1BQU1BLEVBQUVBLHNDQUFzQ0E7NEJBQzlDQSxVQUFVQSxFQUFFQSw2Q0FBNkNBO3lCQUMxREE7cUJBQ0ZBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSw4RkFBOEZBO3dCQUM3R0Esc0JBQXNCQSxFQUFFQTs0QkFDdEJBLE1BQU1BLEVBQUVBLFFBQVFBOzRCQUNoQkEsYUFBYUEsRUFBRUEsOEZBQThGQTt5QkFDOUdBO3dCQUNEQSxVQUFVQSxFQUFFQSx3Q0FBd0NBO3FCQUNyREE7b0JBQ0RBLGlCQUFpQkEsRUFBRUE7d0JBQ2pCQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLGtMQUFrTEE7cUJBQ2xNQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEseUNBQXlDQTtxQkFDekRBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLDZDQUE2Q0E7YUFDMURBO1lBQ0RBLDBCQUEwQkEsRUFBRUE7Z0JBQzFCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLGNBQWNBLEVBQUVBO3dCQUNkQSxNQUFNQSxFQUFFQSw2Q0FBNkNBO3dCQUNyREEsVUFBVUEsRUFBRUEsb0RBQW9EQTtxQkFDakVBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLCtDQUErQ0E7YUFDNURBO1lBQ0RBLG1CQUFtQkEsRUFBRUE7Z0JBQ25CQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFlBQVlBLEVBQUVBO3dCQUNaQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsSUFBSUE7d0JBQ2ZBLFVBQVVBLEVBQUVBLElBQUlBO3dCQUNoQkEsTUFBTUEsRUFBRUE7NEJBQ05BLElBQUlBO3lCQUNMQTtxQkFDRkE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxTQUFTQTt3QkFDakJBLGFBQWFBLEVBQUVBLDBEQUEwREE7cUJBQzFFQTtvQkFDREEsU0FBU0EsRUFBRUE7d0JBQ1RBLE1BQU1BLEVBQUVBLHdDQUF3Q0E7d0JBQ2hEQSxVQUFVQSxFQUFFQSwrQ0FBK0NBO3FCQUM1REE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsUUFBUUE7d0JBQ25CQSxVQUFVQSxFQUFFQSxJQUFJQTtxQkFDakJBO29CQUNEQSxTQUFTQSxFQUFFQTt3QkFDVEEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSw0REFBNERBO3FCQUM1RUE7b0JBQ0RBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSxtQ0FBbUNBO3dCQUMzQ0EsVUFBVUEsRUFBRUEsMENBQTBDQTtxQkFDdkRBO29CQUNEQSxRQUFRQSxFQUFFQTt3QkFDUkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSwwTUFBME1BO3FCQUMxTkE7b0JBQ0RBLFFBQVFBLEVBQUVBO3dCQUNSQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLHlDQUF5Q0E7cUJBQ3pEQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSx3Q0FBd0NBO2FBQ3JEQTtZQUNEQSx3QkFBd0JBLEVBQUVBO2dCQUN4QkEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxPQUFPQSxFQUFFQTt3QkFDUEEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxrREFBa0RBO3FCQUNsRUE7b0JBQ0RBLFNBQVNBLEVBQUVBO3dCQUNUQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLHFHQUFxR0E7cUJBQ3JIQTtvQkFDREEsUUFBUUEsRUFBRUE7d0JBQ1JBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsa0hBQWtIQTtxQkFDbElBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLDZDQUE2Q0E7YUFDMURBO1lBQ0RBLDBCQUEwQkEsRUFBRUE7Z0JBQzFCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFFBQVFBLEVBQUVBO3dCQUNSQSxNQUFNQSxFQUFFQSxPQUFPQTt3QkFDZkEsYUFBYUEsRUFBRUEsb0lBQW9JQTt3QkFDbkpBLE9BQU9BLEVBQUVBOzRCQUNQQSxNQUFNQSxFQUFFQSxzQ0FBc0NBOzRCQUM5Q0EsVUFBVUEsRUFBRUEsNkNBQTZDQTt5QkFDMURBO3FCQUNGQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsdU5BQXVOQTtxQkFDdk9BO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxpSUFBaUlBO3FCQUNqSkE7b0JBQ0RBLG1CQUFtQkEsRUFBRUE7d0JBQ25CQSxNQUFNQSxFQUFFQSxTQUFTQTt3QkFDakJBLGFBQWFBLEVBQUVBLGdGQUFnRkE7cUJBQ2hHQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSwrQ0FBK0NBO2FBQzVEQTtZQUNEQSw0QkFBNEJBLEVBQUVBO2dCQUM1QkEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsMkNBQTJDQTt3QkFDbkRBLFVBQVVBLEVBQUVBLDZDQUE2Q0E7cUJBQzFEQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSxpREFBaURBO2FBQzlEQTtZQUNEQSxxQkFBcUJBLEVBQUVBO2dCQUNyQkEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxZQUFZQSxFQUFFQTt3QkFDWkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSx1SEFBdUhBO3FCQUN2SUE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLGdCQUFnQkE7cUJBQ2hDQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSwwQ0FBMENBO2FBQ3ZEQTtZQUNEQSxtQkFBbUJBLEVBQUVBO2dCQUNuQkEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxzQkFBc0JBLEVBQUVBO3dCQUN0QkEsTUFBTUEsRUFBRUEsMkRBQTJEQTt3QkFDbkVBLFVBQVVBLEVBQUVBLGtFQUFrRUE7cUJBQy9FQTtvQkFDREEsUUFBUUEsRUFBRUE7d0JBQ1JBLE1BQU1BLEVBQUVBLDZDQUE2Q0E7d0JBQ3JEQSxVQUFVQSxFQUFFQSxvREFBb0RBO3FCQUNqRUE7b0JBQ0RBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSwrQ0FBK0NBO3dCQUN2REEsVUFBVUEsRUFBRUEsc0RBQXNEQTtxQkFDbkVBO29CQUNEQSxtQkFBbUJBLEVBQUVBO3dCQUNuQkEsTUFBTUEsRUFBRUEsd0RBQXdEQTt3QkFDaEVBLFVBQVVBLEVBQUVBLCtEQUErREE7cUJBQzVFQTtvQkFDREEsU0FBU0EsRUFBRUE7d0JBQ1RBLE1BQU1BLEVBQUVBLDhDQUE4Q0E7d0JBQ3REQSxVQUFVQSxFQUFFQSxxREFBcURBO3FCQUNsRUE7b0JBQ0RBLFdBQVdBLEVBQUVBO3dCQUNYQSxNQUFNQSxFQUFFQSxnREFBZ0RBO3dCQUN4REEsVUFBVUEsRUFBRUEsdURBQXVEQTtxQkFDcEVBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEsK0NBQStDQTt3QkFDdkRBLFVBQVVBLEVBQUVBLHNEQUFzREE7cUJBQ25FQTtvQkFDREEsT0FBT0EsRUFBRUE7d0JBQ1BBLE1BQU1BLEVBQUVBLDRDQUE0Q0E7d0JBQ3BEQSxVQUFVQSxFQUFFQSxtREFBbURBO3FCQUNoRUE7b0JBQ0RBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSwrQ0FBK0NBO3dCQUN2REEsVUFBVUEsRUFBRUEsc0RBQXNEQTtxQkFDbkVBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxrSUFBa0lBO3dCQUNqSkEsV0FBV0EsRUFBRUEsRUFBRUE7d0JBQ2ZBLFNBQVNBLEVBQUVBLGlDQUFpQ0E7cUJBQzdDQTtvQkFDREEsS0FBS0EsRUFBRUE7d0JBQ0xBLE1BQU1BLEVBQUVBLDBDQUEwQ0E7d0JBQ2xEQSxVQUFVQSxFQUFFQSxpREFBaURBO3FCQUM5REE7b0JBQ0RBLHVCQUF1QkEsRUFBRUE7d0JBQ3ZCQSxNQUFNQSxFQUFFQSw0REFBNERBO3dCQUNwRUEsVUFBVUEsRUFBRUEsbUVBQW1FQTtxQkFDaEZBO29CQUNEQSxLQUFLQSxFQUFFQTt3QkFDTEEsTUFBTUEsRUFBRUEsMENBQTBDQTt3QkFDbERBLFVBQVVBLEVBQUVBLGlEQUFpREE7cUJBQzlEQTtvQkFDREEsUUFBUUEsRUFBRUE7d0JBQ1JBLE1BQU1BLEVBQUVBLDZDQUE2Q0E7d0JBQ3JEQSxVQUFVQSxFQUFFQSxvREFBb0RBO3FCQUNqRUE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsd0NBQXdDQTthQUNyREE7WUFDREEsd0JBQXdCQSxFQUFFQTtnQkFDeEJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsV0FBV0EsRUFBRUE7d0JBQ1hBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsaUVBQWlFQTtxQkFDakZBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSw2QkFBNkJBO3FCQUM3Q0E7b0JBQ0RBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSxTQUFTQTt3QkFDakJBLGFBQWFBLEVBQUVBLDJCQUEyQkE7cUJBQzNDQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSw2Q0FBNkNBO2FBQzFEQTtZQUNEQSx5QkFBeUJBLEVBQUVBO2dCQUN6QkEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxzQkFBc0JBLEVBQUVBO3dCQUN0QkEsTUFBTUEsRUFBRUEsMkRBQTJEQTt3QkFDbkVBLFVBQVVBLEVBQUVBLGtFQUFrRUE7cUJBQy9FQTtvQkFDREEsUUFBUUEsRUFBRUE7d0JBQ1JBLE1BQU1BLEVBQUVBLDZDQUE2Q0E7d0JBQ3JEQSxVQUFVQSxFQUFFQSxvREFBb0RBO3FCQUNqRUE7b0JBQ0RBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSwrQ0FBK0NBO3dCQUN2REEsVUFBVUEsRUFBRUEsc0RBQXNEQTtxQkFDbkVBO29CQUNEQSxtQkFBbUJBLEVBQUVBO3dCQUNuQkEsTUFBTUEsRUFBRUEsd0RBQXdEQTt3QkFDaEVBLFVBQVVBLEVBQUVBLCtEQUErREE7cUJBQzVFQTtvQkFDREEsU0FBU0EsRUFBRUE7d0JBQ1RBLE1BQU1BLEVBQUVBLDhDQUE4Q0E7d0JBQ3REQSxVQUFVQSxFQUFFQSxxREFBcURBO3FCQUNsRUE7b0JBQ0RBLFdBQVdBLEVBQUVBO3dCQUNYQSxNQUFNQSxFQUFFQSxnREFBZ0RBO3dCQUN4REEsVUFBVUEsRUFBRUEsdURBQXVEQTtxQkFDcEVBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEsK0NBQStDQTt3QkFDdkRBLFVBQVVBLEVBQUVBLHNEQUFzREE7cUJBQ25FQTtvQkFDREEsT0FBT0EsRUFBRUE7d0JBQ1BBLE1BQU1BLEVBQUVBLDRDQUE0Q0E7d0JBQ3BEQSxVQUFVQSxFQUFFQSxtREFBbURBO3FCQUNoRUE7b0JBQ0RBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSwrQ0FBK0NBO3dCQUN2REEsVUFBVUEsRUFBRUEsc0RBQXNEQTtxQkFDbkVBO29CQUNEQSxLQUFLQSxFQUFFQTt3QkFDTEEsTUFBTUEsRUFBRUEsMENBQTBDQTt3QkFDbERBLFVBQVVBLEVBQUVBLGlEQUFpREE7cUJBQzlEQTtvQkFDREEsdUJBQXVCQSxFQUFFQTt3QkFDdkJBLE1BQU1BLEVBQUVBLDREQUE0REE7d0JBQ3BFQSxVQUFVQSxFQUFFQSxtRUFBbUVBO3FCQUNoRkE7b0JBQ0RBLEtBQUtBLEVBQUVBO3dCQUNMQSxNQUFNQSxFQUFFQSwwQ0FBMENBO3dCQUNsREEsVUFBVUEsRUFBRUEsaURBQWlEQTtxQkFDOURBO29CQUNEQSxRQUFRQSxFQUFFQTt3QkFDUkEsTUFBTUEsRUFBRUEsNkNBQTZDQTt3QkFDckRBLFVBQVVBLEVBQUVBLG9EQUFvREE7cUJBQ2pFQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSw4Q0FBOENBO2FBQzNEQTtZQUNEQSw0QkFBNEJBLEVBQUVBO2dCQUM1QkEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxvQkFBb0JBLEVBQUVBO3dCQUNwQkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtxQkFDbEJBO29CQUNEQSx5QkFBeUJBLEVBQUVBO3dCQUN6QkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtxQkFDbEJBO29CQUNEQSxZQUFZQSxFQUFFQTt3QkFDWkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtxQkFDbEJBO29CQUNEQSxpQkFBaUJBLEVBQUVBO3dCQUNqQkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtxQkFDbEJBO29CQUNEQSxZQUFZQSxFQUFFQTt3QkFDWkEsTUFBTUEsRUFBRUEsT0FBT0E7d0JBQ2ZBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsT0FBT0EsRUFBRUE7NEJBQ1BBLE1BQU1BLEVBQUVBLGdEQUFnREE7NEJBQ3hEQSxVQUFVQSxFQUFFQSxnREFBZ0RBO3lCQUM3REE7cUJBQ0ZBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtxQkFDbEJBO29CQUNEQSxPQUFPQSxFQUFFQTt3QkFDUEEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtxQkFDbEJBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtxQkFDbEJBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLDBDQUEwQ0E7YUFDdkRBO1lBQ0RBLDJCQUEyQkEsRUFBRUE7Z0JBQzNCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLGFBQWFBLEVBQUVBO3dCQUNiQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3FCQUNsQkE7b0JBQ0RBLHVCQUF1QkEsRUFBRUE7d0JBQ3ZCQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3FCQUNsQkE7b0JBQ0RBLDRCQUE0QkEsRUFBRUE7d0JBQzVCQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3FCQUNsQkE7b0JBQ0RBLFlBQVlBLEVBQUVBO3dCQUNaQSxNQUFNQSxFQUFFQSxPQUFPQTt3QkFDZkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxPQUFPQSxFQUFFQTs0QkFDUEEsTUFBTUEsRUFBRUEsZ0RBQWdEQTs0QkFDeERBLFVBQVVBLEVBQUVBLGdEQUFnREE7eUJBQzdEQTtxQkFDRkE7b0JBQ0RBLDBCQUEwQkEsRUFBRUE7d0JBQzFCQSxNQUFNQSxFQUFFQSxTQUFTQTt3QkFDakJBLGFBQWFBLEVBQUVBLEVBQUVBO3FCQUNsQkE7b0JBQ0RBLFFBQVFBLEVBQUVBO3dCQUNSQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3FCQUNsQkE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEseUNBQXlDQTthQUN0REE7WUFDREEsMEJBQTBCQSxFQUFFQTtnQkFDMUJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsWUFBWUEsRUFBRUE7d0JBQ1pBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7cUJBQ2xCQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLE9BQU9BO3dCQUNmQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLE9BQU9BLEVBQUVBOzRCQUNQQSxNQUFNQSxFQUFFQSw4Q0FBOENBOzRCQUN0REEsVUFBVUEsRUFBRUEsOENBQThDQTt5QkFDM0RBO3FCQUNGQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLE9BQU9BO3dCQUNmQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLE9BQU9BLEVBQUVBOzRCQUNQQSxNQUFNQSxFQUFFQSw4Q0FBOENBOzRCQUN0REEsVUFBVUEsRUFBRUEsOENBQThDQTt5QkFDM0RBO3FCQUNGQTtvQkFDREEsaUJBQWlCQSxFQUFFQTt3QkFDakJBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7cUJBQ2xCQTtvQkFDREEsWUFBWUEsRUFBRUE7d0JBQ1pBLE1BQU1BLEVBQUVBLE9BQU9BO3dCQUNmQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLE9BQU9BLEVBQUVBOzRCQUNQQSxNQUFNQSxFQUFFQSxnREFBZ0RBOzRCQUN4REEsVUFBVUEsRUFBRUEsZ0RBQWdEQTt5QkFDN0RBO3FCQUNGQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7cUJBQ2xCQTtvQkFDREEsYUFBYUEsRUFBRUE7d0JBQ2JBLE1BQU1BLEVBQUVBLDZDQUE2Q0E7d0JBQ3JEQSxVQUFVQSxFQUFFQSw2Q0FBNkNBO3FCQUMxREE7b0JBQ0RBLE9BQU9BLEVBQUVBO3dCQUNQQSxNQUFNQSxFQUFFQSxPQUFPQTt3QkFDZkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxPQUFPQSxFQUFFQTs0QkFDUEEsTUFBTUEsRUFBRUEsK0NBQStDQTs0QkFDdkRBLFVBQVVBLEVBQUVBLCtDQUErQ0E7eUJBQzVEQTtxQkFDRkE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsd0NBQXdDQTthQUNyREE7WUFDREEsMkJBQTJCQSxFQUFFQTtnQkFDM0JBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsU0FBU0EsRUFBRUE7d0JBQ1RBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7cUJBQ2xCQTtvQkFDREEsWUFBWUEsRUFBRUE7d0JBQ1pBLE1BQU1BLEVBQUVBLE9BQU9BO3dCQUNmQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLE9BQU9BLEVBQUVBOzRCQUNQQSxNQUFNQSxFQUFFQSxnREFBZ0RBOzRCQUN4REEsVUFBVUEsRUFBRUEsZ0RBQWdEQTt5QkFDN0RBO3FCQUNGQTtvQkFDREEsV0FBV0EsRUFBRUE7d0JBQ1hBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7cUJBQ2xCQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7cUJBQ2xCQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSx5Q0FBeUNBO2FBQ3REQTtZQUNEQSxpQ0FBaUNBLEVBQUVBO2dCQUNqQ0EsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtxQkFDbEJBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsMENBQTBDQTt3QkFDbERBLFVBQVVBLEVBQUVBLDBDQUEwQ0E7cUJBQ3ZEQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSwrQ0FBK0NBO2FBQzVEQTtZQUNEQSxnQ0FBZ0NBLEVBQUVBO2dCQUNoQ0EsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxTQUFTQSxFQUFFQTt3QkFDVEEsTUFBTUEsRUFBRUEseUNBQXlDQTt3QkFDakRBLFVBQVVBLEVBQUVBLHlDQUF5Q0E7cUJBQ3REQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7cUJBQ2xCQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSw4Q0FBOENBO2FBQzNEQTtZQUNEQSxnQ0FBZ0NBLEVBQUVBO2dCQUNoQ0EsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxTQUFTQSxFQUFFQTt3QkFDVEEsTUFBTUEsRUFBRUEseUNBQXlDQTt3QkFDakRBLFVBQVVBLEVBQUVBLHlDQUF5Q0E7cUJBQ3REQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7cUJBQ2xCQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSw4Q0FBOENBO2FBQzNEQTtZQUNEQSxrQ0FBa0NBLEVBQUVBO2dCQUNsQ0EsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxXQUFXQSxFQUFFQTt3QkFDWEEsTUFBTUEsRUFBRUEsK0NBQStDQTt3QkFDdkRBLFVBQVVBLEVBQUVBLDZDQUE2Q0E7cUJBQzFEQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7cUJBQ2xCQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSxnREFBZ0RBO2FBQzdEQTtZQUNEQSwrQkFBK0JBLEVBQUVBO2dCQUMvQkEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxRQUFRQSxFQUFFQTt3QkFDUkEsTUFBTUEsRUFBRUEsU0FBU0E7d0JBQ2pCQSxhQUFhQSxFQUFFQSxFQUFFQTtxQkFDbEJBO29CQUNEQSxZQUFZQSxFQUFFQTt3QkFDWkEsTUFBTUEsRUFBRUEsT0FBT0E7d0JBQ2ZBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsT0FBT0EsRUFBRUE7NEJBQ1BBLE1BQU1BLEVBQUVBLGdEQUFnREE7NEJBQ3hEQSxVQUFVQSxFQUFFQSxnREFBZ0RBO3lCQUM3REE7cUJBQ0ZBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLDZDQUE2Q0E7YUFDMURBO1lBQ0RBLDhCQUE4QkEsRUFBRUE7Z0JBQzlCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFFBQVFBLEVBQUVBO3dCQUNSQSxNQUFNQSxFQUFFQSw4QkFBOEJBO3dCQUN0Q0EsVUFBVUEsRUFBRUEsb0NBQW9DQTtxQkFDakRBO29CQUNEQSxRQUFRQSxFQUFFQTt3QkFDUkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtxQkFDbEJBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLDBDQUEwQ0E7YUFDdkRBO1lBQ0RBLGlDQUFpQ0EsRUFBRUE7Z0JBQ2pDQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFNBQVNBLEVBQUVBO3dCQUNUQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3FCQUNsQkE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsNkNBQTZDQTthQUMxREE7WUFDREEsNkJBQTZCQSxFQUFFQTtnQkFDN0JBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsUUFBUUEsRUFBRUE7d0JBQ1JBLE1BQU1BLEVBQUVBLFNBQVNBO3dCQUNqQkEsYUFBYUEsRUFBRUEsRUFBRUE7cUJBQ2xCQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFNBQVNBO3dCQUNqQkEsYUFBYUEsRUFBRUEsRUFBRUE7cUJBQ2xCQTtvQkFDREEsUUFBUUEsRUFBRUE7d0JBQ1JBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7cUJBQ2xCQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSw2Q0FBNkNBO2FBQzFEQTtZQUNEQSw2QkFBNkJBLEVBQUVBO2dCQUM3QkEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxRQUFRQSxFQUFFQTt3QkFDUkEsTUFBTUEsRUFBRUEsK0NBQStDQTt3QkFDdkRBLFVBQVVBLEVBQUVBLDZDQUE2Q0E7cUJBQzFEQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsdUNBQXVDQTtxQkFDdkRBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLDRDQUE0Q0E7YUFDekRBO1lBQ0RBLDBDQUEwQ0EsRUFBRUE7Z0JBQzFDQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFNBQVNBLEVBQUVBO3dCQUNUQSxNQUFNQSxFQUFFQSwrQ0FBK0NBO3dCQUN2REEsVUFBVUEsRUFBRUEsNkNBQTZDQTtxQkFDMURBO29CQUNEQSxXQUFXQSxFQUFFQTt3QkFDWEEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSx5Q0FBeUNBO3FCQUN6REE7b0JBQ0RBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLG9DQUFvQ0E7cUJBQ3BEQTtvQkFDREEsY0FBY0EsRUFBRUE7d0JBQ2RBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsMERBQTBEQTtxQkFDMUVBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxZQUFZQTtxQkFDNUJBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLHdEQUF3REE7YUFDckVBO1lBQ0RBLGdDQUFnQ0EsRUFBRUE7Z0JBQ2hDQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFlBQVlBLEVBQUVBO3dCQUNaQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsSUFBSUE7d0JBQ2ZBLFVBQVVBLEVBQUVBLElBQUlBO3dCQUNoQkEsTUFBTUEsRUFBRUE7NEJBQ05BLElBQUlBO3lCQUNMQTtxQkFDRkE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsZUFBZUE7d0JBQzFCQSxVQUFVQSxFQUFFQSxJQUFJQTtxQkFDakJBO29CQUNEQSxjQUFjQSxFQUFFQTt3QkFDZEEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSw4Q0FBOENBO3FCQUM5REE7b0JBQ0RBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSxxQ0FBcUNBO3dCQUM3Q0EsVUFBVUEsRUFBRUEsNENBQTRDQTtxQkFDekRBO29CQUNEQSxPQUFPQSxFQUFFQTt3QkFDUEEsTUFBTUEsRUFBRUEsT0FBT0E7d0JBQ2ZBLGFBQWFBLEVBQUVBLG1DQUFtQ0E7d0JBQ2xEQSxPQUFPQSxFQUFFQTs0QkFDUEEsTUFBTUEsRUFBRUEsaURBQWlEQTs0QkFDekRBLFVBQVVBLEVBQUVBLGlEQUFpREE7eUJBQzlEQTtxQkFDRkE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsOENBQThDQTtnQkFDMURBLGdCQUFnQkEsRUFBRUE7b0JBQ2hCQSw2Q0FBNkNBO2lCQUM5Q0E7YUFDRkE7WUFDREEsdUNBQXVDQSxFQUFFQTtnQkFDdkNBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsWUFBWUEsRUFBRUE7d0JBQ1pBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxJQUFJQTt3QkFDZkEsVUFBVUEsRUFBRUEsSUFBSUE7d0JBQ2hCQSxNQUFNQSxFQUFFQTs0QkFDTkEsSUFBSUE7eUJBQ0xBO3FCQUNGQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxzQkFBc0JBO3dCQUNqQ0EsVUFBVUEsRUFBRUEsSUFBSUE7cUJBQ2pCQTtvQkFDREEsY0FBY0EsRUFBRUE7d0JBQ2RBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsOENBQThDQTtxQkFDOURBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEscUNBQXFDQTt3QkFDN0NBLFVBQVVBLEVBQUVBLDRDQUE0Q0E7cUJBQ3pEQTtvQkFDREEsV0FBV0EsRUFBRUE7d0JBQ1hBLE1BQU1BLEVBQUVBLDBDQUEwQ0E7d0JBQ2xEQSxVQUFVQSxFQUFFQSxpREFBaURBO3FCQUM5REE7b0JBQ0RBLGNBQWNBLEVBQUVBO3dCQUNkQSxNQUFNQSxFQUFFQSxPQUFPQTt3QkFDZkEsYUFBYUEsRUFBRUEsMkNBQTJDQTt3QkFDMURBLE9BQU9BLEVBQUVBOzRCQUNQQSxNQUFNQSxFQUFFQSx3REFBd0RBOzRCQUNoRUEsVUFBVUEsRUFBRUEsd0RBQXdEQTt5QkFDckVBO3FCQUNGQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSxxREFBcURBO2dCQUNqRUEsZ0JBQWdCQSxFQUFFQTtvQkFDaEJBLDZDQUE2Q0E7aUJBQzlDQTthQUNGQTtZQUNEQSwyQ0FBMkNBLEVBQUVBO2dCQUMzQ0EsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxZQUFZQSxFQUFFQTt3QkFDWkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLFNBQVNBLEVBQUVBLElBQUlBO3dCQUNmQSxVQUFVQSxFQUFFQSxJQUFJQTt3QkFDaEJBLE1BQU1BLEVBQUVBOzRCQUNOQSxJQUFJQTt5QkFDTEE7cUJBQ0ZBO29CQUNEQSxPQUFPQSxFQUFFQTt3QkFDUEEsTUFBTUEsRUFBRUEsT0FBT0E7d0JBQ2ZBLGFBQWFBLEVBQUVBLGlDQUFpQ0E7d0JBQ2hEQSxPQUFPQSxFQUFFQTs0QkFDUEEsTUFBTUEsRUFBRUEscURBQXFEQTs0QkFDN0RBLFVBQVVBLEVBQUVBLHFEQUFxREE7eUJBQ2xFQTtxQkFDRkE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsMEJBQTBCQTt3QkFDckNBLFVBQVVBLEVBQUVBLElBQUlBO3FCQUNqQkE7b0JBQ0RBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSxtQ0FBbUNBO3dCQUMzQ0EsVUFBVUEsRUFBRUEsMENBQTBDQTtxQkFDdkRBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLHlEQUF5REE7Z0JBQ3JFQSxnQkFBZ0JBLEVBQUVBO29CQUNoQkEsb0RBQW9EQTtvQkFDcERBLHdEQUF3REE7aUJBQ3pEQTthQUNGQTtZQUNEQSxvQ0FBb0NBLEVBQUVBO2dCQUNwQ0EsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxZQUFZQSxFQUFFQTt3QkFDWkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLFNBQVNBLEVBQUVBLElBQUlBO3dCQUNmQSxVQUFVQSxFQUFFQSxJQUFJQTt3QkFDaEJBLE1BQU1BLEVBQUVBOzRCQUNOQSxJQUFJQTt5QkFDTEE7cUJBQ0ZBO29CQUNEQSxPQUFPQSxFQUFFQTt3QkFDUEEsTUFBTUEsRUFBRUEsT0FBT0E7d0JBQ2ZBLGFBQWFBLEVBQUVBLDBCQUEwQkE7d0JBQ3pDQSxPQUFPQSxFQUFFQTs0QkFDUEEsTUFBTUEsRUFBRUEsOENBQThDQTs0QkFDdERBLFVBQVVBLEVBQUVBLDhDQUE4Q0E7eUJBQzNEQTtxQkFDRkE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsbUJBQW1CQTt3QkFDOUJBLFVBQVVBLEVBQUVBLElBQUlBO3FCQUNqQkE7b0JBQ0RBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSxtQ0FBbUNBO3dCQUMzQ0EsVUFBVUEsRUFBRUEsMENBQTBDQTtxQkFDdkRBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLGtEQUFrREE7Z0JBQzlEQSxnQkFBZ0JBLEVBQUVBO29CQUNoQkEsb0RBQW9EQTtvQkFDcERBLHdEQUF3REE7aUJBQ3pEQTthQUNGQTtZQUNEQSw4QkFBOEJBLEVBQUVBO2dCQUM5QkEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxZQUFZQSxFQUFFQTt3QkFDWkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLFNBQVNBLEVBQUVBLElBQUlBO3dCQUNmQSxVQUFVQSxFQUFFQSxJQUFJQTt3QkFDaEJBLE1BQU1BLEVBQUVBOzRCQUNOQSxJQUFJQTt5QkFDTEE7cUJBQ0ZBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLFNBQVNBLEVBQUVBLGFBQWFBO3dCQUN4QkEsVUFBVUEsRUFBRUEsSUFBSUE7cUJBQ2pCQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLHFDQUFxQ0E7d0JBQzdDQSxVQUFVQSxFQUFFQSw0Q0FBNENBO3FCQUN6REE7b0JBQ0RBLE9BQU9BLEVBQUVBO3dCQUNQQSxNQUFNQSxFQUFFQSxPQUFPQTt3QkFDZkEsYUFBYUEsRUFBRUEsc0JBQXNCQTt3QkFDckNBLE9BQU9BLEVBQUVBOzRCQUNQQSxNQUFNQSxFQUFFQSwyQ0FBMkNBOzRCQUNuREEsVUFBVUEsRUFBRUEsMkNBQTJDQTt5QkFDeERBO3FCQUNGQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSw0Q0FBNENBO2dCQUN4REEsZ0JBQWdCQSxFQUFFQTtvQkFDaEJBLDZDQUE2Q0E7aUJBQzlDQTthQUNGQTtZQUNEQSxxQ0FBcUNBLEVBQUVBO2dCQUNyQ0EsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxZQUFZQSxFQUFFQTt3QkFDWkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLFNBQVNBLEVBQUVBLElBQUlBO3dCQUNmQSxVQUFVQSxFQUFFQSxJQUFJQTt3QkFDaEJBLE1BQU1BLEVBQUVBOzRCQUNOQSxJQUFJQTt5QkFDTEE7cUJBQ0ZBO29CQUNEQSxZQUFZQSxFQUFFQTt3QkFDWkEsTUFBTUEsRUFBRUEsT0FBT0E7d0JBQ2ZBLGFBQWFBLEVBQUVBLDJDQUEyQ0E7d0JBQzFEQSxPQUFPQSxFQUFFQTs0QkFDUEEsTUFBTUEsRUFBRUEsUUFBUUE7NEJBQ2hCQSxhQUFhQSxFQUFFQSwyQ0FBMkNBO3lCQUMzREE7cUJBQ0ZBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLFNBQVNBLEVBQUVBLG9CQUFvQkE7d0JBQy9CQSxVQUFVQSxFQUFFQSxJQUFJQTtxQkFDakJBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEscUNBQXFDQTt3QkFDN0NBLFVBQVVBLEVBQUVBLDRDQUE0Q0E7cUJBQ3pEQTtvQkFDREEsU0FBU0EsRUFBRUE7d0JBQ1RBLE1BQU1BLEVBQUVBLDBDQUEwQ0E7d0JBQ2xEQSxVQUFVQSxFQUFFQSxpREFBaURBO3FCQUM5REE7b0JBQ0RBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSxPQUFPQTt3QkFDZkEsYUFBYUEsRUFBRUEsc0RBQXNEQTt3QkFDckVBLE9BQU9BLEVBQUVBOzRCQUNQQSxNQUFNQSxFQUFFQSwwQ0FBMENBOzRCQUNsREEsVUFBVUEsRUFBRUEsaURBQWlEQTt5QkFDOURBO3FCQUNGQTtvQkFDREEsV0FBV0EsRUFBRUE7d0JBQ1hBLE1BQU1BLEVBQUVBLE9BQU9BO3dCQUNmQSxhQUFhQSxFQUFFQSwyQ0FBMkNBO3dCQUMxREEsT0FBT0EsRUFBRUE7NEJBQ1BBLE1BQU1BLEVBQUVBLFFBQVFBOzRCQUNoQkEsYUFBYUEsRUFBRUEsMkNBQTJDQTt5QkFDM0RBO3FCQUNGQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSxtREFBbURBO2dCQUMvREEsZ0JBQWdCQSxFQUFFQTtvQkFDaEJBLDZDQUE2Q0E7aUJBQzlDQTthQUNGQTtZQUNEQSx5Q0FBeUNBLEVBQUVBO2dCQUN6Q0EsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxZQUFZQSxFQUFFQTt3QkFDWkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLFNBQVNBLEVBQUVBLElBQUlBO3dCQUNmQSxVQUFVQSxFQUFFQSxJQUFJQTt3QkFDaEJBLE1BQU1BLEVBQUVBOzRCQUNOQSxJQUFJQTt5QkFDTEE7cUJBQ0ZBO29CQUNEQSxPQUFPQSxFQUFFQTt3QkFDUEEsTUFBTUEsRUFBRUEsT0FBT0E7d0JBQ2ZBLGFBQWFBLEVBQUVBLCtCQUErQkE7d0JBQzlDQSxPQUFPQSxFQUFFQTs0QkFDUEEsTUFBTUEsRUFBRUEsbURBQW1EQTs0QkFDM0RBLFVBQVVBLEVBQUVBLG1EQUFtREE7eUJBQ2hFQTtxQkFDRkE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsd0JBQXdCQTt3QkFDbkNBLFVBQVVBLEVBQUVBLElBQUlBO3FCQUNqQkE7b0JBQ0RBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSxtQ0FBbUNBO3dCQUMzQ0EsVUFBVUEsRUFBRUEsMENBQTBDQTtxQkFDdkRBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLHVEQUF1REE7Z0JBQ25FQSxnQkFBZ0JBLEVBQUVBO29CQUNoQkEsb0RBQW9EQTtvQkFDcERBLHdEQUF3REE7aUJBQ3pEQTthQUNGQTtZQUNEQSwyQ0FBMkNBLEVBQUVBO2dCQUMzQ0EsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEsbUNBQW1DQTt3QkFDM0NBLFVBQVVBLEVBQUVBLDBDQUEwQ0E7cUJBQ3ZEQTtvQkFDREEsU0FBU0EsRUFBRUE7d0JBQ1RBLE1BQU1BLEVBQUVBLCtDQUErQ0E7d0JBQ3ZEQSxVQUFVQSxFQUFFQSw2Q0FBNkNBO3FCQUMxREE7b0JBQ0RBLFFBQVFBLEVBQUVBO3dCQUNSQSxNQUFNQSxFQUFFQSxPQUFPQTt3QkFDZkEsYUFBYUEsRUFBRUEsVUFBVUE7d0JBQ3pCQSxPQUFPQSxFQUFFQTs0QkFDUEEsTUFBTUEsRUFBRUEsUUFBUUE7NEJBQ2hCQSxhQUFhQSxFQUFFQSxVQUFVQTt5QkFDMUJBO3FCQUNGQTtvQkFDREEsV0FBV0EsRUFBRUE7d0JBQ1hBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEseUNBQXlDQTtxQkFDekRBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxvQ0FBb0NBO3FCQUNwREE7b0JBQ0RBLGNBQWNBLEVBQUVBO3dCQUNkQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLDBEQUEwREE7cUJBQzFFQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsVUFBVUE7cUJBQzFCQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsWUFBWUE7cUJBQzVCQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSx5REFBeURBO2FBQ3RFQTtZQUNEQSxtQ0FBbUNBLEVBQUVBO2dCQUNuQ0EsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSwwQkFBMEJBO3FCQUMxQ0E7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSw0Q0FBNENBO3dCQUNwREEsVUFBVUEsRUFBRUEsNENBQTRDQTtxQkFDekRBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLGlEQUFpREE7YUFDOURBO1lBQ0RBLDBDQUEwQ0EsRUFBRUE7Z0JBQzFDQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLGtDQUFrQ0E7cUJBQ2xEQTtvQkFDREEsYUFBYUEsRUFBRUE7d0JBQ2JBLE1BQU1BLEVBQUVBLG1EQUFtREE7d0JBQzNEQSxVQUFVQSxFQUFFQSxtREFBbURBO3FCQUNoRUE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsd0RBQXdEQTthQUNyRUE7WUFDREEsNEJBQTRCQSxFQUFFQTtnQkFDNUJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsa0JBQWtCQTtxQkFDbENBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEscUNBQXFDQTt3QkFDN0NBLFVBQVVBLEVBQUVBLHFDQUFxQ0E7cUJBQ2xEQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSwwQ0FBMENBO2FBQ3ZEQTtZQUNEQSxtQ0FBbUNBLEVBQUVBO2dCQUNuQ0EsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSx5QkFBeUJBO3FCQUN6Q0E7b0JBQ0RBLGFBQWFBLEVBQUVBO3dCQUNiQSxNQUFNQSxFQUFFQSw0Q0FBNENBO3dCQUNwREEsVUFBVUEsRUFBRUEsNENBQTRDQTtxQkFDekRBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLGlEQUFpREE7YUFDOURBO1lBQ0RBLHlCQUF5QkEsRUFBRUE7Z0JBQ3pCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFlBQVlBLEVBQUVBO3dCQUNaQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsSUFBSUE7d0JBQ2ZBLFVBQVVBLEVBQUVBLElBQUlBO3dCQUNoQkEsTUFBTUEsRUFBRUE7NEJBQ05BLElBQUlBO3lCQUNMQTtxQkFDRkE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsUUFBUUE7d0JBQ25CQSxVQUFVQSxFQUFFQSxJQUFJQTtxQkFDakJBO29CQUNEQSxjQUFjQSxFQUFFQTt3QkFDZEEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxtREFBbURBO3FCQUNuRUE7b0JBQ0RBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSxxQ0FBcUNBO3dCQUM3Q0EsVUFBVUEsRUFBRUEsNENBQTRDQTtxQkFDekRBO29CQUNEQSxPQUFPQSxFQUFFQTt3QkFDUEEsTUFBTUEsRUFBRUEsT0FBT0E7d0JBQ2ZBLGFBQWFBLEVBQUVBLDJCQUEyQkE7d0JBQzFDQSxPQUFPQSxFQUFFQTs0QkFDUEEsTUFBTUEsRUFBRUEsMENBQTBDQTs0QkFDbERBLFVBQVVBLEVBQUVBLDBDQUEwQ0E7eUJBQ3ZEQTtxQkFDRkE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsdUNBQXVDQTtnQkFDbkRBLGdCQUFnQkEsRUFBRUE7b0JBQ2hCQSw2Q0FBNkNBO2lCQUM5Q0E7YUFDRkE7WUFDREEsZ0NBQWdDQSxFQUFFQTtnQkFDaENBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsWUFBWUEsRUFBRUE7d0JBQ1pBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxJQUFJQTt3QkFDZkEsVUFBVUEsRUFBRUEsSUFBSUE7d0JBQ2hCQSxNQUFNQSxFQUFFQTs0QkFDTkEsSUFBSUE7eUJBQ0xBO3FCQUNGQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxlQUFlQTt3QkFDMUJBLFVBQVVBLEVBQUVBLElBQUlBO3FCQUNqQkE7b0JBQ0RBLGNBQWNBLEVBQUVBO3dCQUNkQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLG1EQUFtREE7cUJBQ25FQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLHFDQUFxQ0E7d0JBQzdDQSxVQUFVQSxFQUFFQSw0Q0FBNENBO3FCQUN6REE7b0JBQ0RBLFdBQVdBLEVBQUVBO3dCQUNYQSxNQUFNQSxFQUFFQSwwQ0FBMENBO3dCQUNsREEsVUFBVUEsRUFBRUEsaURBQWlEQTtxQkFDOURBO29CQUNEQSxjQUFjQSxFQUFFQTt3QkFDZEEsTUFBTUEsRUFBRUEsT0FBT0E7d0JBQ2ZBLGFBQWFBLEVBQUVBLDZDQUE2Q0E7d0JBQzVEQSxPQUFPQSxFQUFFQTs0QkFDUEEsTUFBTUEsRUFBRUEsaURBQWlEQTs0QkFDekRBLFVBQVVBLEVBQUVBLGlEQUFpREE7eUJBQzlEQTtxQkFDRkE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsOENBQThDQTtnQkFDMURBLGdCQUFnQkEsRUFBRUE7b0JBQ2hCQSw2Q0FBNkNBO2lCQUM5Q0E7YUFDRkE7WUFDREEsb0NBQW9DQSxFQUFFQTtnQkFDcENBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsWUFBWUEsRUFBRUE7d0JBQ1pBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxJQUFJQTt3QkFDZkEsVUFBVUEsRUFBRUEsSUFBSUE7d0JBQ2hCQSxNQUFNQSxFQUFFQTs0QkFDTkEsSUFBSUE7eUJBQ0xBO3FCQUNGQTtvQkFDREEsT0FBT0EsRUFBRUE7d0JBQ1BBLE1BQU1BLEVBQUVBLE9BQU9BO3dCQUNmQSxhQUFhQSxFQUFFQSx5QkFBeUJBO3dCQUN4Q0EsT0FBT0EsRUFBRUE7NEJBQ1BBLE1BQU1BLEVBQUVBLDhDQUE4Q0E7NEJBQ3REQSxVQUFVQSxFQUFFQSw4Q0FBOENBO3lCQUMzREE7cUJBQ0ZBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLFNBQVNBLEVBQUVBLG1CQUFtQkE7d0JBQzlCQSxVQUFVQSxFQUFFQSxJQUFJQTtxQkFDakJBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEsbUNBQW1DQTt3QkFDM0NBLFVBQVVBLEVBQUVBLDBDQUEwQ0E7cUJBQ3ZEQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSxrREFBa0RBO2dCQUM5REEsZ0JBQWdCQSxFQUFFQTtvQkFDaEJBLG9EQUFvREE7b0JBQ3BEQSx3REFBd0RBO2lCQUN6REE7YUFDRkE7WUFDREEsNkJBQTZCQSxFQUFFQTtnQkFDN0JBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsWUFBWUEsRUFBRUE7d0JBQ1pBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxJQUFJQTt3QkFDZkEsVUFBVUEsRUFBRUEsSUFBSUE7d0JBQ2hCQSxNQUFNQSxFQUFFQTs0QkFDTkEsSUFBSUE7eUJBQ0xBO3FCQUNGQTtvQkFDREEsT0FBT0EsRUFBRUE7d0JBQ1BBLE1BQU1BLEVBQUVBLE9BQU9BO3dCQUNmQSxhQUFhQSxFQUFFQSxrQkFBa0JBO3dCQUNqQ0EsT0FBT0EsRUFBRUE7NEJBQ1BBLE1BQU1BLEVBQUVBLHVDQUF1Q0E7NEJBQy9DQSxVQUFVQSxFQUFFQSx1Q0FBdUNBO3lCQUNwREE7cUJBQ0ZBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLFNBQVNBLEVBQUVBLFlBQVlBO3dCQUN2QkEsVUFBVUEsRUFBRUEsSUFBSUE7cUJBQ2pCQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLG1DQUFtQ0E7d0JBQzNDQSxVQUFVQSxFQUFFQSwwQ0FBMENBO3FCQUN2REE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsMkNBQTJDQTtnQkFDdkRBLGdCQUFnQkEsRUFBRUE7b0JBQ2hCQSxvREFBb0RBO29CQUNwREEsd0RBQXdEQTtpQkFDekRBO2FBQ0ZBO1lBQ0RBLDZCQUE2QkEsRUFBRUE7Z0JBQzdCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLHVCQUF1QkEsRUFBRUE7d0JBQ3ZCQSxNQUFNQSxFQUFFQSwrQ0FBK0NBO3dCQUN2REEsVUFBVUEsRUFBRUEsNkNBQTZDQTtxQkFDMURBO29CQUNEQSxpQkFBaUJBLEVBQUVBO3dCQUNqQkEsTUFBTUEsRUFBRUEsT0FBT0E7d0JBQ2ZBLGFBQWFBLEVBQUVBLHVFQUF1RUE7d0JBQ3RGQSxPQUFPQSxFQUFFQTs0QkFDUEEsTUFBTUEsRUFBRUEsUUFBUUE7NEJBQ2hCQSxhQUFhQSxFQUFFQSx1RUFBdUVBO3lCQUN2RkE7cUJBQ0ZBO29CQUNEQSxlQUFlQSxFQUFFQTt3QkFDZkEsTUFBTUEsRUFBRUEsT0FBT0E7d0JBQ2ZBLGFBQWFBLEVBQUVBLHdHQUF3R0E7d0JBQ3ZIQSxPQUFPQSxFQUFFQTs0QkFDUEEsTUFBTUEsRUFBRUEsUUFBUUE7NEJBQ2hCQSxhQUFhQSxFQUFFQSx3R0FBd0dBO3lCQUN4SEE7cUJBQ0ZBO29CQUNEQSxXQUFXQSxFQUFFQTt3QkFDWEEsTUFBTUEsRUFBRUEsT0FBT0E7d0JBQ2ZBLGFBQWFBLEVBQUVBLHNFQUFzRUE7d0JBQ3JGQSxPQUFPQSxFQUFFQTs0QkFDUEEsTUFBTUEsRUFBRUEsUUFBUUE7NEJBQ2hCQSxhQUFhQSxFQUFFQSxzRUFBc0VBO3lCQUN0RkE7cUJBQ0ZBO29CQUNEQSxPQUFPQSxFQUFFQTt3QkFDUEEsTUFBTUEsRUFBRUEsT0FBT0E7d0JBQ2ZBLGFBQWFBLEVBQUVBLHVJQUF1SUE7d0JBQ3RKQSxPQUFPQSxFQUFFQTs0QkFDUEEsTUFBTUEsRUFBRUEsUUFBUUE7NEJBQ2hCQSxhQUFhQSxFQUFFQSx1SUFBdUlBO3lCQUN2SkE7cUJBQ0ZBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLDJDQUEyQ0E7YUFDeERBO1lBQ0RBLHVCQUF1QkEsRUFBRUE7Z0JBQ3ZCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFlBQVlBLEVBQUVBO3dCQUNaQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsSUFBSUE7d0JBQ2ZBLFVBQVVBLEVBQUVBLElBQUlBO3dCQUNoQkEsTUFBTUEsRUFBRUE7NEJBQ05BLElBQUlBO3lCQUNMQTtxQkFDRkE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsTUFBTUE7d0JBQ2pCQSxVQUFVQSxFQUFFQSxJQUFJQTtxQkFDakJBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEscUNBQXFDQTt3QkFDN0NBLFVBQVVBLEVBQUVBLDRDQUE0Q0E7cUJBQ3pEQTtvQkFDREEsT0FBT0EsRUFBRUE7d0JBQ1BBLE1BQU1BLEVBQUVBLE9BQU9BO3dCQUNmQSxhQUFhQSxFQUFFQSw2QkFBNkJBO3dCQUM1Q0EsT0FBT0EsRUFBRUE7NEJBQ1BBLE1BQU1BLEVBQUVBLDJDQUEyQ0E7NEJBQ25EQSxVQUFVQSxFQUFFQSwyQ0FBMkNBO3lCQUN4REE7cUJBQ0ZBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLHFDQUFxQ0E7Z0JBQ2pEQSxnQkFBZ0JBLEVBQUVBO29CQUNoQkEsNkNBQTZDQTtpQkFDOUNBO2FBQ0ZBO1lBQ0RBLDhCQUE4QkEsRUFBRUE7Z0JBQzlCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFlBQVlBLEVBQUVBO3dCQUNaQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsSUFBSUE7d0JBQ2ZBLFVBQVVBLEVBQUVBLElBQUlBO3dCQUNoQkEsTUFBTUEsRUFBRUE7NEJBQ05BLElBQUlBO3lCQUNMQTtxQkFDRkE7b0JBQ0RBLFlBQVlBLEVBQUVBO3dCQUNaQSxNQUFNQSxFQUFFQSxPQUFPQTt3QkFDZkEsYUFBYUEsRUFBRUEsMkNBQTJDQTt3QkFDMURBLE9BQU9BLEVBQUVBOzRCQUNQQSxNQUFNQSxFQUFFQSxRQUFRQTs0QkFDaEJBLGFBQWFBLEVBQUVBLDJDQUEyQ0E7eUJBQzNEQTtxQkFDRkE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsYUFBYUE7d0JBQ3hCQSxVQUFVQSxFQUFFQSxJQUFJQTtxQkFDakJBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEscUNBQXFDQTt3QkFDN0NBLFVBQVVBLEVBQUVBLDRDQUE0Q0E7cUJBQ3pEQTtvQkFDREEsU0FBU0EsRUFBRUE7d0JBQ1RBLE1BQU1BLEVBQUVBLDBDQUEwQ0E7d0JBQ2xEQSxVQUFVQSxFQUFFQSxpREFBaURBO3FCQUM5REE7b0JBQ0RBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSxPQUFPQTt3QkFDZkEsYUFBYUEsRUFBRUEsc0RBQXNEQTt3QkFDckVBLE9BQU9BLEVBQUVBOzRCQUNQQSxNQUFNQSxFQUFFQSwwQ0FBMENBOzRCQUNsREEsVUFBVUEsRUFBRUEsaURBQWlEQTt5QkFDOURBO3FCQUNGQTtvQkFDREEsV0FBV0EsRUFBRUE7d0JBQ1hBLE1BQU1BLEVBQUVBLE9BQU9BO3dCQUNmQSxhQUFhQSxFQUFFQSw4Q0FBOENBO3dCQUM3REEsT0FBT0EsRUFBRUE7NEJBQ1BBLE1BQU1BLEVBQUVBLFFBQVFBOzRCQUNoQkEsYUFBYUEsRUFBRUEsOENBQThDQTt5QkFDOURBO3FCQUNGQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSw0Q0FBNENBO2dCQUN4REEsZ0JBQWdCQSxFQUFFQTtvQkFDaEJBLDZDQUE2Q0E7aUJBQzlDQTthQUNGQTtZQUNEQSxrQ0FBa0NBLEVBQUVBO2dCQUNsQ0EsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxZQUFZQSxFQUFFQTt3QkFDWkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLFNBQVNBLEVBQUVBLElBQUlBO3dCQUNmQSxVQUFVQSxFQUFFQSxJQUFJQTt3QkFDaEJBLE1BQU1BLEVBQUVBOzRCQUNOQSxJQUFJQTt5QkFDTEE7cUJBQ0ZBO29CQUNEQSxPQUFPQSxFQUFFQTt3QkFDUEEsTUFBTUEsRUFBRUEsT0FBT0E7d0JBQ2ZBLGFBQWFBLEVBQUVBLHVCQUF1QkE7d0JBQ3RDQSxPQUFPQSxFQUFFQTs0QkFDUEEsTUFBTUEsRUFBRUEsNENBQTRDQTs0QkFDcERBLFVBQVVBLEVBQUVBLDRDQUE0Q0E7eUJBQ3pEQTtxQkFDRkE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsaUJBQWlCQTt3QkFDNUJBLFVBQVVBLEVBQUVBLElBQUlBO3FCQUNqQkE7b0JBQ0RBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSxtQ0FBbUNBO3dCQUMzQ0EsVUFBVUEsRUFBRUEsMENBQTBDQTtxQkFDdkRBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLGdEQUFnREE7Z0JBQzVEQSxnQkFBZ0JBLEVBQUVBO29CQUNoQkEsb0RBQW9EQTtvQkFDcERBLHdEQUF3REE7aUJBQ3pEQTthQUNGQTtZQUNEQSwyQkFBMkJBLEVBQUVBO2dCQUMzQkEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxZQUFZQSxFQUFFQTt3QkFDWkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLFNBQVNBLEVBQUVBLElBQUlBO3dCQUNmQSxVQUFVQSxFQUFFQSxJQUFJQTt3QkFDaEJBLE1BQU1BLEVBQUVBOzRCQUNOQSxJQUFJQTt5QkFDTEE7cUJBQ0ZBO29CQUNEQSxPQUFPQSxFQUFFQTt3QkFDUEEsTUFBTUEsRUFBRUEsT0FBT0E7d0JBQ2ZBLGFBQWFBLEVBQUVBLGVBQWVBO3dCQUM5QkEsT0FBT0EsRUFBRUE7NEJBQ1BBLE1BQU1BLEVBQUVBLHFDQUFxQ0E7NEJBQzdDQSxVQUFVQSxFQUFFQSxxQ0FBcUNBO3lCQUNsREE7cUJBQ0ZBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLFNBQVNBLEVBQUVBLFVBQVVBO3dCQUNyQkEsVUFBVUEsRUFBRUEsSUFBSUE7cUJBQ2pCQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLG1DQUFtQ0E7d0JBQzNDQSxVQUFVQSxFQUFFQSwwQ0FBMENBO3FCQUN2REE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEseUNBQXlDQTtnQkFDckRBLGdCQUFnQkEsRUFBRUE7b0JBQ2hCQSxvREFBb0RBO29CQUNwREEsd0RBQXdEQTtpQkFDekRBO2FBQ0ZBO1lBQ0RBLHNDQUFzQ0EsRUFBRUE7Z0JBQ3RDQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFlBQVlBLEVBQUVBO3dCQUNaQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsSUFBSUE7d0JBQ2ZBLFVBQVVBLEVBQUVBLElBQUlBO3dCQUNoQkEsTUFBTUEsRUFBRUE7NEJBQ05BLElBQUlBO3lCQUNMQTtxQkFDRkE7b0JBQ0RBLFNBQVNBLEVBQUVBO3dCQUNUQSxNQUFNQSxFQUFFQSwrQ0FBK0NBO3dCQUN2REEsVUFBVUEsRUFBRUEsNkNBQTZDQTtxQkFDMURBO29CQUNEQSxRQUFRQSxFQUFFQTt3QkFDUkEsTUFBTUEsRUFBRUEsT0FBT0E7d0JBQ2ZBLGFBQWFBLEVBQUVBLFVBQVVBO3dCQUN6QkEsT0FBT0EsRUFBRUE7NEJBQ1BBLE1BQU1BLEVBQUVBLFFBQVFBOzRCQUNoQkEsYUFBYUEsRUFBRUEsVUFBVUE7eUJBQzFCQTtxQkFDRkE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEscUJBQXFCQTt3QkFDaENBLFVBQVVBLEVBQUVBLElBQUlBO3FCQUNqQkE7b0JBQ0RBLFdBQVdBLEVBQUVBO3dCQUNYQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLHlDQUF5Q0E7cUJBQ3pEQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsb0NBQW9DQTtxQkFDcERBO29CQUNEQSxjQUFjQSxFQUFFQTt3QkFDZEEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSwwREFBMERBO3FCQUMxRUE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLFVBQVVBO3FCQUMxQkE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLFlBQVlBO3FCQUM1QkE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsb0RBQW9EQTthQUNqRUE7WUFDREEsOENBQThDQSxFQUFFQTtnQkFDOUNBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsU0FBU0EsRUFBRUE7d0JBQ1RBLE1BQU1BLEVBQUVBLFNBQVNBO3dCQUNqQkEsYUFBYUEsRUFBRUEscUNBQXFDQTtxQkFDckRBO29CQUNEQSxZQUFZQSxFQUFFQTt3QkFDWkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLFNBQVNBLEVBQUVBLElBQUlBO3dCQUNmQSxVQUFVQSxFQUFFQSxJQUFJQTt3QkFDaEJBLE1BQU1BLEVBQUVBOzRCQUNOQSxJQUFJQTt5QkFDTEE7cUJBQ0ZBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLFNBQVNBLEVBQUVBLDZCQUE2QkE7d0JBQ3hDQSxVQUFVQSxFQUFFQSxJQUFJQTtxQkFDakJBO29CQUNEQSxXQUFXQSxFQUFFQTt3QkFDWEEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSwwQ0FBMENBO3FCQUMxREE7b0JBQ0RBLFFBQVFBLEVBQUVBO3dCQUNSQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLG9CQUFvQkE7cUJBQ3BDQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSw0REFBNERBO2FBQ3pFQTtZQUNEQSxnQkFBZ0JBLEVBQUVBO2dCQUNoQkEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxZQUFZQSxFQUFFQTt3QkFDWkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLFNBQVNBLEVBQUVBLElBQUlBO3dCQUNmQSxVQUFVQSxFQUFFQSxJQUFJQTt3QkFDaEJBLE1BQU1BLEVBQUVBOzRCQUNOQSxJQUFJQTt5QkFDTEE7cUJBQ0ZBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLFNBQVNBLEVBQUVBLE9BQU9BO3dCQUNsQkEsVUFBVUEsRUFBRUEsSUFBSUE7cUJBQ2pCQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLHFDQUFxQ0E7d0JBQzdDQSxVQUFVQSxFQUFFQSw0Q0FBNENBO3FCQUN6REE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxrQ0FBa0NBO3dCQUMxQ0EsVUFBVUEsRUFBRUEsMENBQTBDQTtxQkFDdkRBO29CQUNEQSxRQUFRQSxFQUFFQTt3QkFDUkEsTUFBTUEsRUFBRUEsb0NBQW9DQTt3QkFDNUNBLFVBQVVBLEVBQUVBLDRDQUE0Q0E7cUJBQ3pEQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSxzQ0FBc0NBO2dCQUNsREEsZ0JBQWdCQSxFQUFFQTtvQkFDaEJBLDZDQUE2Q0E7aUJBQzlDQTthQUNGQTtZQUNEQSxzQkFBc0JBLEVBQUVBO2dCQUN0QkEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxZQUFZQSxFQUFFQTt3QkFDWkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLFNBQVNBLEVBQUVBLElBQUlBO3dCQUNmQSxVQUFVQSxFQUFFQSxJQUFJQTt3QkFDaEJBLE1BQU1BLEVBQUVBOzRCQUNOQSxJQUFJQTt5QkFDTEE7cUJBQ0ZBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLFNBQVNBLEVBQUVBLGFBQWFBO3dCQUN4QkEsVUFBVUEsRUFBRUEsSUFBSUE7cUJBQ2pCQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLHFDQUFxQ0E7d0JBQzdDQSxVQUFVQSxFQUFFQSw0Q0FBNENBO3FCQUN6REE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSx3Q0FBd0NBO3dCQUNoREEsVUFBVUEsRUFBRUEsZ0RBQWdEQTtxQkFDN0RBO29CQUNEQSxRQUFRQSxFQUFFQTt3QkFDUkEsTUFBTUEsRUFBRUEsMENBQTBDQTt3QkFDbERBLFVBQVVBLEVBQUVBLGtEQUFrREE7cUJBQy9EQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSw0Q0FBNENBO2dCQUN4REEsZ0JBQWdCQSxFQUFFQTtvQkFDaEJBLDZDQUE2Q0E7aUJBQzlDQTthQUNGQTtZQUNEQSwwQkFBMEJBLEVBQUVBO2dCQUMxQkEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxZQUFZQSxFQUFFQTt3QkFDWkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLFNBQVNBLEVBQUVBLElBQUlBO3dCQUNmQSxVQUFVQSxFQUFFQSxJQUFJQTt3QkFDaEJBLE1BQU1BLEVBQUVBOzRCQUNOQSxJQUFJQTt5QkFDTEE7cUJBQ0ZBO29CQUNEQSxPQUFPQSxFQUFFQTt3QkFDUEEsTUFBTUEsRUFBRUEsT0FBT0E7d0JBQ2ZBLGFBQWFBLEVBQUVBLHVCQUF1QkE7d0JBQ3RDQSxPQUFPQSxFQUFFQTs0QkFDUEEsTUFBTUEsRUFBRUEsb0NBQW9DQTs0QkFDNUNBLFVBQVVBLEVBQUVBLDRDQUE0Q0E7eUJBQ3pEQTtxQkFDRkE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsaUJBQWlCQTt3QkFDNUJBLFVBQVVBLEVBQUVBLElBQUlBO3FCQUNqQkE7b0JBQ0RBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSxtQ0FBbUNBO3dCQUMzQ0EsVUFBVUEsRUFBRUEsMENBQTBDQTtxQkFDdkRBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLGdEQUFnREE7Z0JBQzVEQSxnQkFBZ0JBLEVBQUVBO29CQUNoQkEsb0RBQW9EQTtvQkFDcERBLHdEQUF3REE7aUJBQ3pEQTthQUNGQTtZQUNEQSwwQkFBMEJBLEVBQUVBO2dCQUMxQkEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxRQUFRQSxFQUFFQTt3QkFDUkEsTUFBTUEsRUFBRUEsb0NBQW9DQTt3QkFDNUNBLFVBQVVBLEVBQUVBLDRDQUE0Q0E7cUJBQ3pEQTtvQkFDREEsV0FBV0EsRUFBRUE7d0JBQ1hBLE1BQU1BLEVBQUVBLCtDQUErQ0E7d0JBQ3ZEQSxVQUFVQSxFQUFFQSxzREFBc0RBO3FCQUNuRUE7b0JBQ0RBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSx1Q0FBdUNBO3dCQUMvQ0EsVUFBVUEsRUFBRUEsK0NBQStDQTtxQkFDNURBO29CQUNEQSxnQkFBZ0JBLEVBQUVBO3dCQUNoQkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSx5RUFBeUVBO3FCQUN6RkE7b0JBQ0RBLFFBQVFBLEVBQUVBO3dCQUNSQSxNQUFNQSxFQUFFQSxvQ0FBb0NBO3dCQUM1Q0EsVUFBVUEsRUFBRUEsNENBQTRDQTtxQkFDekRBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEsc0NBQXNDQTt3QkFDOUNBLFVBQVVBLEVBQUVBLDhDQUE4Q0E7cUJBQzNEQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLE9BQU9BO3dCQUNmQSxhQUFhQSxFQUFFQSw0RkFBNEZBO3dCQUMzR0EsT0FBT0EsRUFBRUE7NEJBQ1BBLE1BQU1BLEVBQUVBLDJDQUEyQ0E7NEJBQ25EQSxVQUFVQSxFQUFFQSxtREFBbURBO3lCQUNoRUE7cUJBQ0ZBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLGdEQUFnREE7YUFDN0RBO1lBQ0RBLDRCQUE0QkEsRUFBRUE7Z0JBQzVCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLGFBQWFBLEVBQUVBO3dCQUNiQSxNQUFNQSxFQUFFQSxTQUFTQTt3QkFDakJBLGFBQWFBLEVBQUVBLHFEQUFxREE7cUJBQ3JFQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSxrREFBa0RBO2FBQy9EQTtZQUNEQSxvQkFBb0JBLEVBQUVBO2dCQUNwQkEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxZQUFZQSxFQUFFQTt3QkFDWkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLFNBQVNBLEVBQUVBLElBQUlBO3dCQUNmQSxVQUFVQSxFQUFFQSxJQUFJQTt3QkFDaEJBLE1BQU1BLEVBQUVBOzRCQUNOQSxJQUFJQTt5QkFDTEE7cUJBQ0ZBO29CQUNEQSxPQUFPQSxFQUFFQTt3QkFDUEEsTUFBTUEsRUFBRUEsT0FBT0E7d0JBQ2ZBLGFBQWFBLEVBQUVBLGdCQUFnQkE7d0JBQy9CQSxPQUFPQSxFQUFFQTs0QkFDUEEsTUFBTUEsRUFBRUEsOEJBQThCQTs0QkFDdENBLFVBQVVBLEVBQUVBLHNDQUFzQ0E7eUJBQ25EQTtxQkFDRkE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsV0FBV0E7d0JBQ3RCQSxVQUFVQSxFQUFFQSxJQUFJQTtxQkFDakJBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEsbUNBQW1DQTt3QkFDM0NBLFVBQVVBLEVBQUVBLDBDQUEwQ0E7cUJBQ3ZEQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSwwQ0FBMENBO2dCQUN0REEsZ0JBQWdCQSxFQUFFQTtvQkFDaEJBLG9EQUFvREE7b0JBQ3BEQSx3REFBd0RBO2lCQUN6REE7YUFDRkE7WUFDREEsc0JBQXNCQSxFQUFFQTtnQkFDdEJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsWUFBWUEsRUFBRUE7d0JBQ1pBLE1BQU1BLEVBQUVBLCtDQUErQ0E7d0JBQ3ZEQSxVQUFVQSxFQUFFQSxzREFBc0RBO3FCQUNuRUE7b0JBQ0RBLElBQUlBLEVBQUVBO3dCQUNKQSxNQUFNQSxFQUFFQSwwQ0FBMENBO3dCQUNsREEsVUFBVUEsRUFBRUEsaURBQWlEQTtxQkFDOURBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLDRDQUE0Q0E7YUFDekRBO1lBQ0RBLHVCQUF1QkEsRUFBRUE7Z0JBQ3ZCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFlBQVlBLEVBQUVBO3dCQUNaQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsSUFBSUE7d0JBQ2ZBLFVBQVVBLEVBQUVBLElBQUlBO3dCQUNoQkEsTUFBTUEsRUFBRUE7NEJBQ05BLElBQUlBO3lCQUNMQTtxQkFDRkE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSwwQ0FBMENBO3dCQUNsREEsVUFBVUEsRUFBRUEsaURBQWlEQTtxQkFDOURBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLFNBQVNBLEVBQUVBLGNBQWNBO3dCQUN6QkEsVUFBVUEsRUFBRUEsSUFBSUE7cUJBQ2pCQTtvQkFDREEsYUFBYUEsRUFBRUE7d0JBQ2JBLE1BQU1BLEVBQUVBLFNBQVNBO3dCQUNqQkEsYUFBYUEsRUFBRUEsMERBQTBEQTtxQkFDMUVBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEscUNBQXFDQTt3QkFDN0NBLFVBQVVBLEVBQUVBLDRDQUE0Q0E7cUJBQ3pEQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLHVDQUF1Q0E7d0JBQy9DQSxVQUFVQSxFQUFFQSwrQ0FBK0NBO3FCQUM1REE7b0JBQ0RBLGtCQUFrQkEsRUFBRUE7d0JBQ2xCQSxNQUFNQSxFQUFFQSwwQ0FBMENBO3dCQUNsREEsVUFBVUEsRUFBRUEsaURBQWlEQTtxQkFDOURBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLDZDQUE2Q0E7Z0JBQ3pEQSxnQkFBZ0JBLEVBQUVBO29CQUNoQkEsNkNBQTZDQTtpQkFDOUNBO2FBQ0ZBO1lBQ0RBLHNCQUFzQkEsRUFBRUE7Z0JBQ3RCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFlBQVlBLEVBQUVBO3dCQUNaQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLDBFQUEwRUE7cUJBQzFGQTtvQkFDREEsS0FBS0EsRUFBRUE7d0JBQ0xBLE1BQU1BLEVBQUVBLHVDQUF1Q0E7d0JBQy9DQSxVQUFVQSxFQUFFQSwrQ0FBK0NBO3FCQUM1REE7b0JBQ0RBLGNBQWNBLEVBQUVBO3dCQUNkQSxNQUFNQSxFQUFFQSwrQ0FBK0NBO3dCQUN2REEsVUFBVUEsRUFBRUEsc0RBQXNEQTtxQkFDbkVBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSwwQ0FBMENBO3FCQUMxREE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsNENBQTRDQTthQUN6REE7WUFDREEsb0JBQW9CQSxFQUFFQTtnQkFDcEJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsUUFBUUEsRUFBRUE7d0JBQ1JBLE1BQU1BLEVBQUVBLG9DQUFvQ0E7d0JBQzVDQSxVQUFVQSxFQUFFQSw0Q0FBNENBO3FCQUN6REE7b0JBQ0RBLFdBQVdBLEVBQUVBO3dCQUNYQSxNQUFNQSxFQUFFQSwrQ0FBK0NBO3dCQUN2REEsVUFBVUEsRUFBRUEsc0RBQXNEQTtxQkFDbkVBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEsdUNBQXVDQTt3QkFDL0NBLFVBQVVBLEVBQUVBLCtDQUErQ0E7cUJBQzVEQTtvQkFDREEsZ0JBQWdCQSxFQUFFQTt3QkFDaEJBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEseUVBQXlFQTtxQkFDekZBO29CQUNEQSxRQUFRQSxFQUFFQTt3QkFDUkEsTUFBTUEsRUFBRUEsb0NBQW9DQTt3QkFDNUNBLFVBQVVBLEVBQUVBLDRDQUE0Q0E7cUJBQ3pEQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLHNDQUFzQ0E7d0JBQzlDQSxVQUFVQSxFQUFFQSw4Q0FBOENBO3FCQUMzREE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsMENBQTBDQTthQUN2REE7WUFDREEsc0JBQXNCQSxFQUFFQTtnQkFDdEJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsV0FBV0EsRUFBRUE7d0JBQ1hBLE1BQU1BLEVBQUVBLFNBQVNBO3dCQUNqQkEsYUFBYUEsRUFBRUEsNERBQTREQTtxQkFDNUVBO29CQUNEQSxxQkFBcUJBLEVBQUVBO3dCQUNyQkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSw2REFBNkRBO3FCQUM3RUE7b0JBQ0RBLFFBQVFBLEVBQUVBO3dCQUNSQSxNQUFNQSxFQUFFQSwwQ0FBMENBO3dCQUNsREEsVUFBVUEsRUFBRUEsaURBQWlEQTtxQkFDOURBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEsU0FBU0E7d0JBQ2pCQSxhQUFhQSxFQUFFQSwyQ0FBMkNBO3dCQUMxREEsVUFBVUEsRUFBRUEsTUFBTUE7cUJBQ25CQTtvQkFDREEsU0FBU0EsRUFBRUE7d0JBQ1RBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsK0VBQStFQTtxQkFDL0ZBO29CQUNEQSxPQUFPQSxFQUFFQTt3QkFDUEEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSx1Q0FBdUNBO3FCQUN2REE7b0JBQ0RBLGdCQUFnQkEsRUFBRUE7d0JBQ2hCQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLHNEQUFzREE7cUJBQ3RFQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSw0Q0FBNENBO2FBQ3pEQTtZQUNEQSx3QkFBd0JBLEVBQUVBO2dCQUN4QkEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxnQkFBZ0JBLEVBQUVBO3dCQUNoQkEsTUFBTUEsRUFBRUEsNENBQTRDQTt3QkFDcERBLFVBQVVBLEVBQUVBLG9EQUFvREE7cUJBQ2pFQTtvQkFDREEsZ0JBQWdCQSxFQUFFQTt3QkFDaEJBLE1BQU1BLEVBQUVBLDRDQUE0Q0E7d0JBQ3BEQSxVQUFVQSxFQUFFQSxvREFBb0RBO3FCQUNqRUE7b0JBQ0RBLGdCQUFnQkEsRUFBRUE7d0JBQ2hCQSxNQUFNQSxFQUFFQSw0Q0FBNENBO3dCQUNwREEsVUFBVUEsRUFBRUEsb0RBQW9EQTtxQkFDakVBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSx1Q0FBdUNBO3FCQUN2REE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsOENBQThDQTthQUMzREE7WUFDREEsNkJBQTZCQSxFQUFFQTtnQkFDN0JBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsU0FBU0EsRUFBRUE7d0JBQ1RBLE1BQU1BLEVBQUVBLHVDQUF1Q0E7d0JBQy9DQSxVQUFVQSxFQUFFQSwrQ0FBK0NBO3FCQUM1REE7b0JBQ0RBLFFBQVFBLEVBQUVBO3dCQUNSQSxNQUFNQSxFQUFFQSx1Q0FBdUNBO3dCQUMvQ0EsVUFBVUEsRUFBRUEsK0NBQStDQTtxQkFDNURBO29CQUNEQSxhQUFhQSxFQUFFQTt3QkFDYkEsTUFBTUEsRUFBRUEsMkNBQTJDQTt3QkFDbkRBLFVBQVVBLEVBQUVBLG1EQUFtREE7cUJBQ2hFQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsdUJBQXVCQTtxQkFDdkNBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLG1EQUFtREE7YUFDaEVBO1lBQ0RBLDhCQUE4QkEsRUFBRUE7Z0JBQzlCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLEtBQUtBLEVBQUVBO3dCQUNMQSxNQUFNQSxFQUFFQSxPQUFPQTt3QkFDZkEsYUFBYUEsRUFBRUEsNEVBQTRFQTt3QkFDM0ZBLE9BQU9BLEVBQUVBOzRCQUNQQSxNQUFNQSxFQUFFQSxpQ0FBaUNBOzRCQUN6Q0EsVUFBVUEsRUFBRUEsd0NBQXdDQTt5QkFDckRBO3FCQUNGQTtvQkFDREEsb0JBQW9CQSxFQUFFQTt3QkFDcEJBLE1BQU1BLEVBQUVBLFNBQVNBO3dCQUNqQkEsYUFBYUEsRUFBRUEsbUZBQW1GQTtxQkFDbkdBO29CQUNEQSxXQUFXQSxFQUFFQTt3QkFDWEEsTUFBTUEsRUFBRUEsU0FBU0E7d0JBQ2pCQSxhQUFhQSxFQUFFQSw4REFBOERBO3FCQUM5RUE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSwwQ0FBMENBO3dCQUNsREEsVUFBVUEsRUFBRUEsaURBQWlEQTtxQkFDOURBO29CQUNEQSxZQUFZQSxFQUFFQTt3QkFDWkEsTUFBTUEsRUFBRUEsK0NBQStDQTt3QkFDdkRBLFVBQVVBLEVBQUVBLHNEQUFzREE7cUJBQ25FQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSxvREFBb0RBO2FBQ2pFQTtZQUNEQSw4QkFBOEJBLEVBQUVBO2dCQUM5QkEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxLQUFLQSxFQUFFQTt3QkFDTEEsTUFBTUEsRUFBRUEsT0FBT0E7d0JBQ2ZBLGFBQWFBLEVBQUVBLDRFQUE0RUE7d0JBQzNGQSxPQUFPQSxFQUFFQTs0QkFDUEEsTUFBTUEsRUFBRUEsaUNBQWlDQTs0QkFDekNBLFVBQVVBLEVBQUVBLHdDQUF3Q0E7eUJBQ3JEQTtxQkFDRkE7b0JBQ0RBLFdBQVdBLEVBQUVBO3dCQUNYQSxNQUFNQSxFQUFFQSxTQUFTQTt3QkFDakJBLGFBQWFBLEVBQUVBLG1EQUFtREE7cUJBQ25FQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLDBDQUEwQ0E7d0JBQ2xEQSxVQUFVQSxFQUFFQSxpREFBaURBO3FCQUM5REE7b0JBQ0RBLFNBQVNBLEVBQUVBO3dCQUNUQSxNQUFNQSxFQUFFQSxTQUFTQTt3QkFDakJBLGFBQWFBLEVBQUVBLFNBQVNBO3FCQUN6QkE7b0JBQ0RBLFlBQVlBLEVBQUVBO3dCQUNaQSxNQUFNQSxFQUFFQSwrQ0FBK0NBO3dCQUN2REEsVUFBVUEsRUFBRUEsc0RBQXNEQTtxQkFDbkVBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLG9EQUFvREE7YUFDakVBO1lBQ0RBLHlCQUF5QkEsRUFBRUE7Z0JBQ3pCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFdBQVdBLEVBQUVBO3dCQUNYQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLCtEQUErREE7cUJBQy9FQTtvQkFDREEsWUFBWUEsRUFBRUE7d0JBQ1pBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsZ0VBQWdFQTtxQkFDaEZBO29CQUNEQSxLQUFLQSxFQUFFQTt3QkFDTEEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSx3Q0FBd0NBO3FCQUN4REE7b0JBQ0RBLEtBQUtBLEVBQUVBO3dCQUNMQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLHlDQUF5Q0E7cUJBQ3pEQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSwrQ0FBK0NBO2FBQzVEQTtZQUNEQSw0QkFBNEJBLEVBQUVBO2dCQUM1QkEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxRQUFRQSxFQUFFQTt3QkFDUkEsTUFBTUEsRUFBRUEsMENBQTBDQTt3QkFDbERBLFVBQVVBLEVBQUVBLGtEQUFrREE7cUJBQy9EQTtvQkFDREEsUUFBUUEsRUFBRUE7d0JBQ1JBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsb0NBQW9DQTtxQkFDcERBO29CQUNEQSxXQUFXQSxFQUFFQTt3QkFDWEEsTUFBTUEsRUFBRUEsMENBQTBDQTt3QkFDbERBLFVBQVVBLEVBQUVBLGtEQUFrREE7cUJBQy9EQTtvQkFDREEsU0FBU0EsRUFBRUE7d0JBQ1RBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsa0NBQWtDQTtxQkFDbERBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLGtEQUFrREE7YUFDL0RBO1lBQ0RBLDZCQUE2QkEsRUFBRUE7Z0JBQzdCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSwwQ0FBMENBO3dCQUNsREEsVUFBVUEsRUFBRUEsaURBQWlEQTtxQkFDOURBO29CQUNEQSxzQkFBc0JBLEVBQUVBO3dCQUN0QkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxzREFBc0RBO3FCQUN0RUE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsbURBQW1EQTthQUNoRUE7WUFDREEsOEJBQThCQSxFQUFFQTtnQkFDOUJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsS0FBS0EsRUFBRUE7d0JBQ0xBLE1BQU1BLEVBQUVBLE9BQU9BO3dCQUNmQSxhQUFhQSxFQUFFQSw0RUFBNEVBO3dCQUMzRkEsT0FBT0EsRUFBRUE7NEJBQ1BBLE1BQU1BLEVBQUVBLGlDQUFpQ0E7NEJBQ3pDQSxVQUFVQSxFQUFFQSx3Q0FBd0NBO3lCQUNyREE7cUJBQ0ZBO29CQUNEQSxXQUFXQSxFQUFFQTt3QkFDWEEsTUFBTUEsRUFBRUEsU0FBU0E7d0JBQ2pCQSxhQUFhQSxFQUFFQSxtREFBbURBO3FCQUNuRUE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSwwQ0FBMENBO3dCQUNsREEsVUFBVUEsRUFBRUEsaURBQWlEQTtxQkFDOURBO29CQUNEQSxhQUFhQSxFQUFFQTt3QkFDYkEsTUFBTUEsRUFBRUEsU0FBU0E7d0JBQ2pCQSxhQUFhQSxFQUFFQSwwREFBMERBO3FCQUMxRUE7b0JBQ0RBLFlBQVlBLEVBQUVBO3dCQUNaQSxNQUFNQSxFQUFFQSwrQ0FBK0NBO3dCQUN2REEsVUFBVUEsRUFBRUEsc0RBQXNEQTtxQkFDbkVBO29CQUNEQSxTQUFTQSxFQUFFQTt3QkFDVEEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxnQ0FBZ0NBO3FCQUNoREE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsb0RBQW9EQTthQUNqRUE7WUFDREEsNEJBQTRCQSxFQUFFQTtnQkFDNUJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsT0FBT0EsRUFBRUE7d0JBQ1BBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsbUNBQW1DQTtxQkFDbkRBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxpQ0FBaUNBO3FCQUNqREE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsa0RBQWtEQTthQUMvREE7WUFDREEseUJBQXlCQSxFQUFFQTtnQkFDekJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsS0FBS0EsRUFBRUE7d0JBQ0xBLE1BQU1BLEVBQUVBLDBDQUEwQ0E7d0JBQ2xEQSxVQUFVQSxFQUFFQSxrREFBa0RBO3FCQUMvREE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLDBCQUEwQkE7cUJBQzFDQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSwrQ0FBK0NBO2FBQzVEQTtZQUNEQSx5QkFBeUJBLEVBQUVBO2dCQUN6QkEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxRQUFRQSxFQUFFQTt3QkFDUkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxrQ0FBa0NBO3FCQUNsREE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsK0NBQStDQTthQUM1REE7WUFDREEsMENBQTBDQSxFQUFFQTtnQkFDMUNBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsU0FBU0EsRUFBRUE7d0JBQ1RBLE1BQU1BLEVBQUVBLE9BQU9BO3dCQUNmQSxhQUFhQSxFQUFFQSxnRkFBZ0ZBO3dCQUMvRkEsT0FBT0EsRUFBRUE7NEJBQ1BBLE1BQU1BLEVBQUVBLFFBQVFBOzRCQUNoQkEsYUFBYUEsRUFBRUEsZ0ZBQWdGQTt5QkFDaEdBO3FCQUNGQTtvQkFDREEsYUFBYUEsRUFBRUE7d0JBQ2JBLE1BQU1BLEVBQUVBLE9BQU9BO3dCQUNmQSxhQUFhQSxFQUFFQSxvRUFBb0VBO3dCQUNuRkEsT0FBT0EsRUFBRUE7NEJBQ1BBLE1BQU1BLEVBQUVBLGlDQUFpQ0E7NEJBQ3pDQSxVQUFVQSxFQUFFQSx3Q0FBd0NBO3lCQUNyREE7cUJBQ0ZBO29CQUNEQSxPQUFPQSxFQUFFQTt3QkFDUEEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxpREFBaURBO3FCQUNqRUE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsK0RBQStEQTthQUM1RUE7WUFDREEsMkJBQTJCQSxFQUFFQTtnQkFDM0JBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsY0FBY0EsRUFBRUE7d0JBQ2RBLE1BQU1BLEVBQUVBLHFEQUFxREE7d0JBQzdEQSxVQUFVQSxFQUFFQSw0REFBNERBO3FCQUN6RUE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLHVEQUF1REE7cUJBQ3ZFQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSxnREFBZ0RBO2FBQzdEQTtZQUNEQSx1Q0FBdUNBLEVBQUVBO2dCQUN2Q0EsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsMENBQTBDQTt3QkFDbERBLFVBQVVBLEVBQUVBLGlEQUFpREE7cUJBQzlEQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSw0REFBNERBO2FBQ3pFQTtZQUNEQSw0QkFBNEJBLEVBQUVBO2dCQUM1QkEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxZQUFZQSxFQUFFQTt3QkFDWkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLFNBQVNBLEVBQUVBLElBQUlBO3dCQUNmQSxVQUFVQSxFQUFFQSxJQUFJQTt3QkFDaEJBLE1BQU1BLEVBQUVBOzRCQUNOQSxJQUFJQTt5QkFDTEE7cUJBQ0ZBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLFNBQVNBLEVBQUVBLGtCQUFrQkE7d0JBQzdCQSxVQUFVQSxFQUFFQSxJQUFJQTtxQkFDakJBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEscUNBQXFDQTt3QkFDN0NBLFVBQVVBLEVBQUVBLDRDQUE0Q0E7cUJBQ3pEQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLDhDQUE4Q0E7d0JBQ3REQSxVQUFVQSxFQUFFQSxxREFBcURBO3FCQUNsRUE7b0JBQ0RBLFFBQVFBLEVBQUVBO3dCQUNSQSxNQUFNQSxFQUFFQSxnREFBZ0RBO3dCQUN4REEsVUFBVUEsRUFBRUEsdURBQXVEQTtxQkFDcEVBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLGlEQUFpREE7Z0JBQzdEQSxnQkFBZ0JBLEVBQUVBO29CQUNoQkEsNkNBQTZDQTtpQkFDOUNBO2FBQ0ZBO1lBQ0RBLGdDQUFnQ0EsRUFBRUE7Z0JBQ2hDQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFlBQVlBLEVBQUVBO3dCQUNaQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsSUFBSUE7d0JBQ2ZBLFVBQVVBLEVBQUVBLElBQUlBO3dCQUNoQkEsTUFBTUEsRUFBRUE7NEJBQ05BLElBQUlBO3lCQUNMQTtxQkFDRkE7b0JBQ0RBLE9BQU9BLEVBQUVBO3dCQUNQQSxNQUFNQSxFQUFFQSxPQUFPQTt3QkFDZkEsYUFBYUEsRUFBRUEsOEJBQThCQTt3QkFDN0NBLE9BQU9BLEVBQUVBOzRCQUNQQSxNQUFNQSxFQUFFQSwwQ0FBMENBOzRCQUNsREEsVUFBVUEsRUFBRUEsaURBQWlEQTt5QkFDOURBO3FCQUNGQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxzQkFBc0JBO3dCQUNqQ0EsVUFBVUEsRUFBRUEsSUFBSUE7cUJBQ2pCQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLG1DQUFtQ0E7d0JBQzNDQSxVQUFVQSxFQUFFQSwwQ0FBMENBO3FCQUN2REE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEscURBQXFEQTtnQkFDakVBLGdCQUFnQkEsRUFBRUE7b0JBQ2hCQSxvREFBb0RBO29CQUNwREEsd0RBQXdEQTtpQkFDekRBO2FBQ0ZBO1lBQ0RBLGdDQUFnQ0EsRUFBRUE7Z0JBQ2hDQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSxTQUFTQTt3QkFDakJBLGFBQWFBLEVBQUVBLGdDQUFnQ0E7cUJBQ2hEQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsOERBQThEQTt3QkFDN0VBLHNCQUFzQkEsRUFBRUE7NEJBQ3RCQSxNQUFNQSxFQUFFQSxRQUFRQTs0QkFDaEJBLGFBQWFBLEVBQUVBLDhEQUE4REE7eUJBQzlFQTt3QkFDREEsVUFBVUEsRUFBRUEsd0NBQXdDQTtxQkFDckRBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEsNENBQTRDQTt3QkFDcERBLFVBQVVBLEVBQUVBLG1EQUFtREE7cUJBQ2hFQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLDBDQUEwQ0E7d0JBQ2xEQSxVQUFVQSxFQUFFQSxpREFBaURBO3FCQUM5REE7b0JBQ0RBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSxPQUFPQTt3QkFDZkEsYUFBYUEsRUFBRUEsbUNBQW1DQTt3QkFDbERBLE9BQU9BLEVBQUVBOzRCQUNQQSxNQUFNQSxFQUFFQSxpREFBaURBOzRCQUN6REEsVUFBVUEsRUFBRUEsd0RBQXdEQTt5QkFDckVBO3FCQUNGQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSxxREFBcURBO2FBQ2xFQTtZQUNEQSxrQ0FBa0NBLEVBQUVBO2dCQUNsQ0EsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxTQUFTQSxFQUFFQTt3QkFDVEEsTUFBTUEsRUFBRUEsMkNBQTJDQTt3QkFDbkRBLFVBQVVBLEVBQUVBLGtEQUFrREE7cUJBQy9EQTtvQkFDREEsZUFBZUEsRUFBRUE7d0JBQ2ZBLE1BQU1BLEVBQUVBLFNBQVNBO3dCQUNqQkEsYUFBYUEsRUFBRUEsaUVBQWlFQTtxQkFDakZBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLHVEQUF1REE7YUFDcEVBO1lBQ0RBLDZCQUE2QkEsRUFBRUE7Z0JBQzdCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFFBQVFBLEVBQUVBO3dCQUNSQSxNQUFNQSxFQUFFQSxPQUFPQTt3QkFDZkEsYUFBYUEsRUFBRUEsNEVBQTRFQTt3QkFDM0ZBLE9BQU9BLEVBQUVBOzRCQUNQQSxNQUFNQSxFQUFFQSx5Q0FBeUNBOzRCQUNqREEsVUFBVUEsRUFBRUEsZ0RBQWdEQTt5QkFDN0RBO3FCQUNGQTtvQkFDREEsU0FBU0EsRUFBRUE7d0JBQ1RBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsaUNBQWlDQTtxQkFDakRBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLGtEQUFrREE7YUFDL0RBO1lBQ0RBLDhCQUE4QkEsRUFBRUE7Z0JBQzlCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLGNBQWNBLEVBQUVBO3dCQUNkQSxNQUFNQSxFQUFFQSx3REFBd0RBO3dCQUNoRUEsVUFBVUEsRUFBRUEsK0RBQStEQTtxQkFDNUVBO29CQUNEQSxnQkFBZ0JBLEVBQUVBO3dCQUNoQkEsTUFBTUEsRUFBRUEsMERBQTBEQTt3QkFDbEVBLFVBQVVBLEVBQUVBLGlFQUFpRUE7cUJBQzlFQTtvQkFDREEsV0FBV0EsRUFBRUE7d0JBQ1hBLE1BQU1BLEVBQUVBLCtDQUErQ0E7d0JBQ3ZEQSxVQUFVQSxFQUFFQSxzREFBc0RBO3FCQUNuRUE7b0JBQ0RBLGVBQWVBLEVBQUVBO3dCQUNmQSxNQUFNQSxFQUFFQSx5REFBeURBO3dCQUNqRUEsVUFBVUEsRUFBRUEsZ0VBQWdFQTtxQkFDN0VBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxtQ0FBbUNBO3FCQUNuREE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsbURBQW1EQTthQUNoRUE7WUFDREEsOENBQThDQSxFQUFFQTtnQkFDOUNBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsV0FBV0EsRUFBRUE7d0JBQ1hBLE1BQU1BLEVBQUVBLFNBQVNBO3dCQUNqQkEsYUFBYUEsRUFBRUEsa0VBQWtFQTtxQkFDbEZBO29CQUNEQSxnQkFBZ0JBLEVBQUVBO3dCQUNoQkEsTUFBTUEsRUFBRUEsT0FBT0E7d0JBQ2ZBLGFBQWFBLEVBQUVBLDhEQUE4REE7d0JBQzdFQSxPQUFPQSxFQUFFQTs0QkFDUEEsTUFBTUEsRUFBRUEsUUFBUUE7NEJBQ2hCQSxhQUFhQSxFQUFFQSw4REFBOERBO3lCQUM5RUE7cUJBQ0ZBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsMENBQTBDQTt3QkFDbERBLFVBQVVBLEVBQUVBLGlEQUFpREE7cUJBQzlEQTtvQkFDREEsb0JBQW9CQSxFQUFFQTt3QkFDcEJBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsZ0NBQWdDQTtxQkFDaERBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLG1FQUFtRUE7YUFDaEZBO1lBQ0RBLG1DQUFtQ0EsRUFBRUE7Z0JBQ25DQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLG1CQUFtQkEsRUFBRUE7d0JBQ25CQSxNQUFNQSxFQUFFQSw0REFBNERBO3dCQUNwRUEsVUFBVUEsRUFBRUEsbUVBQW1FQTtxQkFDaEZBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSx5QkFBeUJBO3FCQUN6Q0E7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsd0RBQXdEQTthQUNyRUE7WUFDREEsMEJBQTBCQSxFQUFFQTtnQkFDMUJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsU0FBU0EsRUFBRUE7d0JBQ1RBLE1BQU1BLEVBQUVBLE9BQU9BO3dCQUNmQSxhQUFhQSxFQUFFQSxvQ0FBb0NBO3dCQUNuREEsT0FBT0EsRUFBRUE7NEJBQ1BBLE1BQU1BLEVBQUVBLFFBQVFBOzRCQUNoQkEsYUFBYUEsRUFBRUEsb0NBQW9DQTt5QkFDcERBO3FCQUNGQTtvQkFDREEsZUFBZUEsRUFBRUE7d0JBQ2ZBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsK0ZBQStGQTtxQkFDL0dBO29CQUNEQSxLQUFLQSxFQUFFQTt3QkFDTEEsTUFBTUEsRUFBRUEsT0FBT0E7d0JBQ2ZBLGFBQWFBLEVBQUVBLHNEQUFzREE7d0JBQ3JFQSxPQUFPQSxFQUFFQTs0QkFDUEEsTUFBTUEsRUFBRUEsaUNBQWlDQTs0QkFDekNBLFVBQVVBLEVBQUVBLHdDQUF3Q0E7eUJBQ3JEQTtxQkFDRkE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsK0NBQStDQTthQUM1REE7WUFDREEseUJBQXlCQSxFQUFFQTtnQkFDekJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsWUFBWUEsRUFBRUE7d0JBQ1pBLE1BQU1BLEVBQUVBLHdDQUF3Q0E7d0JBQ2hEQSxVQUFVQSxFQUFFQSwrQ0FBK0NBO3FCQUM1REE7b0JBQ0RBLGVBQWVBLEVBQUVBO3dCQUNmQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLHVDQUF1Q0E7cUJBQ3ZEQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSw4Q0FBOENBO2FBQzNEQTtZQUNEQSw0Q0FBNENBLEVBQUVBO2dCQUM1Q0EsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsdUNBQXVDQTt3QkFDL0NBLFVBQVVBLEVBQUVBLDhDQUE4Q0E7cUJBQzNEQTtvQkFDREEsS0FBS0EsRUFBRUE7d0JBQ0xBLE1BQU1BLEVBQUVBLHVDQUF1Q0E7d0JBQy9DQSxVQUFVQSxFQUFFQSw4Q0FBOENBO3FCQUMzREE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsaUVBQWlFQTthQUM5RUE7WUFDREEsMkNBQTJDQSxFQUFFQTtnQkFDM0NBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsaUJBQWlCQSxFQUFFQTt3QkFDakJBLE1BQU1BLEVBQUVBLFNBQVNBO3dCQUNqQkEsYUFBYUEsRUFBRUEsaUVBQWlFQTt3QkFDaEZBLFVBQVVBLEVBQUVBLE1BQU1BO3FCQUNuQkE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSx1Q0FBdUNBO3dCQUMvQ0EsVUFBVUEsRUFBRUEsOENBQThDQTtxQkFDM0RBO29CQUNEQSxLQUFLQSxFQUFFQTt3QkFDTEEsTUFBTUEsRUFBRUEsdUNBQXVDQTt3QkFDL0NBLFVBQVVBLEVBQUVBLDhDQUE4Q0E7cUJBQzNEQTtvQkFDREEsZ0JBQWdCQSxFQUFFQTt3QkFDaEJBLE1BQU1BLEVBQUVBLFNBQVNBO3dCQUNqQkEsYUFBYUEsRUFBRUEsK0NBQStDQTt3QkFDOURBLFVBQVVBLEVBQUVBLE1BQU1BO3FCQUNuQkE7b0JBQ0RBLGVBQWVBLEVBQUVBO3dCQUNmQSxNQUFNQSxFQUFFQSxTQUFTQTt3QkFDakJBLGFBQWFBLEVBQUVBLGtJQUFrSUE7cUJBQ2xKQTtvQkFDREEscUJBQXFCQSxFQUFFQTt3QkFDckJBLE1BQU1BLEVBQUVBLFNBQVNBO3dCQUNqQkEsYUFBYUEsRUFBRUEsaURBQWlEQTt3QkFDaEVBLFVBQVVBLEVBQUVBLE1BQU1BO3FCQUNuQkE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsZ0VBQWdFQTthQUM3RUE7WUFDREEsZ0JBQWdCQSxFQUFFQTtnQkFDaEJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsWUFBWUEsRUFBRUE7d0JBQ1pBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxJQUFJQTt3QkFDZkEsVUFBVUEsRUFBRUEsSUFBSUE7d0JBQ2hCQSxNQUFNQSxFQUFFQTs0QkFDTkEsSUFBSUE7eUJBQ0xBO3FCQUNGQTtvQkFDREEscUJBQXFCQSxFQUFFQTt3QkFDckJBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsMEJBQTBCQTtxQkFDMUNBO29CQUNEQSxxQkFBcUJBLEVBQUVBO3dCQUNyQkEsTUFBTUEsRUFBRUEsK0NBQStDQTt3QkFDdkRBLFVBQVVBLEVBQUVBLDZDQUE2Q0E7cUJBQzFEQTtvQkFDREEsNEJBQTRCQSxFQUFFQTt3QkFDNUJBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsK0JBQStCQTtxQkFDL0NBO29CQUNEQSxzQkFBc0JBLEVBQUVBO3dCQUN0QkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSw0Q0FBNENBO3FCQUM1REE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsT0FBT0E7d0JBQ2xCQSxVQUFVQSxFQUFFQSxJQUFJQTtxQkFDakJBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEscUNBQXFDQTt3QkFDN0NBLFVBQVVBLEVBQUVBLDRDQUE0Q0E7cUJBQ3pEQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSxzQ0FBc0NBO2dCQUNsREEsZ0JBQWdCQSxFQUFFQTtvQkFDaEJBLDZDQUE2Q0E7aUJBQzlDQTthQUNGQTtZQUNEQSxvQkFBb0JBLEVBQUVBO2dCQUNwQkEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxZQUFZQSxFQUFFQTt3QkFDWkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLFNBQVNBLEVBQUVBLElBQUlBO3dCQUNmQSxVQUFVQSxFQUFFQSxJQUFJQTt3QkFDaEJBLE1BQU1BLEVBQUVBOzRCQUNOQSxJQUFJQTt5QkFDTEE7cUJBQ0ZBO29CQUNEQSxPQUFPQSxFQUFFQTt3QkFDUEEsTUFBTUEsRUFBRUEsT0FBT0E7d0JBQ2ZBLGFBQWFBLEVBQUVBLHVCQUF1QkE7d0JBQ3RDQSxPQUFPQSxFQUFFQTs0QkFDUEEsTUFBTUEsRUFBRUEsOEJBQThCQTs0QkFDdENBLFVBQVVBLEVBQUVBLHNDQUFzQ0E7eUJBQ25EQTtxQkFDRkE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsV0FBV0E7d0JBQ3RCQSxVQUFVQSxFQUFFQSxJQUFJQTtxQkFDakJBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEsbUNBQW1DQTt3QkFDM0NBLFVBQVVBLEVBQUVBLDBDQUEwQ0E7cUJBQ3ZEQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSwwQ0FBMENBO2dCQUN0REEsZ0JBQWdCQSxFQUFFQTtvQkFDaEJBLG9EQUFvREE7b0JBQ3BEQSx3REFBd0RBO2lCQUN6REE7YUFDRkE7WUFDREEsc0JBQXNCQSxFQUFFQTtnQkFDdEJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsWUFBWUEsRUFBRUE7d0JBQ1pBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxJQUFJQTt3QkFDZkEsVUFBVUEsRUFBRUEsSUFBSUE7d0JBQ2hCQSxNQUFNQSxFQUFFQTs0QkFDTkEsSUFBSUE7eUJBQ0xBO3FCQUNGQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxhQUFhQTt3QkFDeEJBLFVBQVVBLEVBQUVBLElBQUlBO3FCQUNqQkE7b0JBQ0RBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSxxQ0FBcUNBO3dCQUM3Q0EsVUFBVUEsRUFBRUEsNENBQTRDQTtxQkFDekRBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsd0NBQXdDQTt3QkFDaERBLFVBQVVBLEVBQUVBLGdEQUFnREE7cUJBQzdEQTtvQkFDREEsUUFBUUEsRUFBRUE7d0JBQ1JBLE1BQU1BLEVBQUVBLDBDQUEwQ0E7d0JBQ2xEQSxVQUFVQSxFQUFFQSxrREFBa0RBO3FCQUMvREE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsNENBQTRDQTtnQkFDeERBLGdCQUFnQkEsRUFBRUE7b0JBQ2hCQSw2Q0FBNkNBO2lCQUM5Q0E7YUFDRkE7WUFDREEsMEJBQTBCQSxFQUFFQTtnQkFDMUJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsWUFBWUEsRUFBRUE7d0JBQ1pBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxJQUFJQTt3QkFDZkEsVUFBVUEsRUFBRUEsSUFBSUE7d0JBQ2hCQSxNQUFNQSxFQUFFQTs0QkFDTkEsSUFBSUE7eUJBQ0xBO3FCQUNGQTtvQkFDREEsT0FBT0EsRUFBRUE7d0JBQ1BBLE1BQU1BLEVBQUVBLE9BQU9BO3dCQUNmQSxhQUFhQSxFQUFFQSw4QkFBOEJBO3dCQUM3Q0EsT0FBT0EsRUFBRUE7NEJBQ1BBLE1BQU1BLEVBQUVBLG9DQUFvQ0E7NEJBQzVDQSxVQUFVQSxFQUFFQSw0Q0FBNENBO3lCQUN6REE7cUJBQ0ZBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLFNBQVNBLEVBQUVBLGlCQUFpQkE7d0JBQzVCQSxVQUFVQSxFQUFFQSxJQUFJQTtxQkFDakJBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEsbUNBQW1DQTt3QkFDM0NBLFVBQVVBLEVBQUVBLDBDQUEwQ0E7cUJBQ3ZEQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSxnREFBZ0RBO2dCQUM1REEsZ0JBQWdCQSxFQUFFQTtvQkFDaEJBLG9EQUFvREE7b0JBQ3BEQSx3REFBd0RBO2lCQUN6REE7YUFDRkE7WUFDREEsMEJBQTBCQSxFQUFFQTtnQkFDMUJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsdUJBQXVCQSxFQUFFQTt3QkFDdkJBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEseUZBQXlGQTtxQkFDekdBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsT0FBT0E7d0JBQ2ZBLGFBQWFBLEVBQUVBLHdEQUF3REE7d0JBQ3ZFQSxPQUFPQSxFQUFFQTs0QkFDUEEsTUFBTUEsRUFBRUEsMENBQTBDQTs0QkFDbERBLFVBQVVBLEVBQUVBLGtEQUFrREE7eUJBQy9EQTtxQkFDRkE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsZ0RBQWdEQTthQUM3REE7WUFDREEsNEJBQTRCQSxFQUFFQTtnQkFDNUJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsdUJBQXVCQSxFQUFFQTt3QkFDdkJBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsa0VBQWtFQTtxQkFDbEZBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsT0FBT0E7d0JBQ2ZBLGFBQWFBLEVBQUVBLHNEQUFzREE7d0JBQ3JFQSxPQUFPQSxFQUFFQTs0QkFDUEEsTUFBTUEsRUFBRUEsMENBQTBDQTs0QkFDbERBLFVBQVVBLEVBQUVBLGtEQUFrREE7eUJBQy9EQTtxQkFDRkE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsa0RBQWtEQTthQUMvREE7WUFDREEsNEJBQTRCQSxFQUFFQTtnQkFDNUJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsT0FBT0EsRUFBRUE7d0JBQ1BBLE1BQU1BLEVBQUVBLE9BQU9BO3dCQUNmQSxhQUFhQSxFQUFFQSx1Q0FBdUNBO3dCQUN0REEsT0FBT0EsRUFBRUE7NEJBQ1BBLE1BQU1BLEVBQUVBLGlDQUFpQ0E7NEJBQ3pDQSxVQUFVQSxFQUFFQSx5Q0FBeUNBO3lCQUN0REE7cUJBQ0ZBO29CQUNEQSxLQUFLQSxFQUFFQTt3QkFDTEEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxTQUFTQTtxQkFDekJBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLGtEQUFrREE7YUFDL0RBO1lBQ0RBLDRCQUE0QkEsRUFBRUE7Z0JBQzVCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLGFBQWFBLEVBQUVBO3dCQUNiQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLG1EQUFtREE7d0JBQ2xFQSxzQkFBc0JBLEVBQUVBOzRCQUN0QkEsTUFBTUEsRUFBRUEsUUFBUUE7NEJBQ2hCQSxhQUFhQSxFQUFFQSxtREFBbURBO3lCQUNuRUE7d0JBQ0RBLFVBQVVBLEVBQUVBLHdDQUF3Q0E7cUJBQ3JEQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLDBDQUEwQ0E7d0JBQ2xEQSxVQUFVQSxFQUFFQSxpREFBaURBO3FCQUM5REE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLGFBQWFBO3FCQUM3QkE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsa0RBQWtEQTthQUMvREE7WUFDREEsbUJBQW1CQSxFQUFFQTtnQkFDbkJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsU0FBU0EsRUFBRUE7d0JBQ1RBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsNEJBQTRCQTtxQkFDNUNBO29CQUNEQSxzQkFBc0JBLEVBQUVBO3dCQUN0QkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxnREFBZ0RBO3FCQUNoRUE7b0JBQ0RBLE9BQU9BLEVBQUVBO3dCQUNQQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLFdBQVdBO3FCQUMzQkE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEseUNBQXlDQTthQUN0REE7WUFDREEsMkJBQTJCQSxFQUFFQTtnQkFDM0JBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsWUFBWUEsRUFBRUE7d0JBQ1pBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxJQUFJQTt3QkFDZkEsVUFBVUEsRUFBRUEsSUFBSUE7d0JBQ2hCQSxNQUFNQSxFQUFFQTs0QkFDTkEsSUFBSUE7eUJBQ0xBO3FCQUNGQTtvQkFDREEsZ0JBQWdCQSxFQUFFQTt3QkFDaEJBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsK0NBQStDQTtxQkFDL0RBO29CQUNEQSxZQUFZQSxFQUFFQTt3QkFDWkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSwrQ0FBK0NBO3FCQUMvREE7b0JBQ0RBLFdBQVdBLEVBQUVBO3dCQUNYQSxNQUFNQSxFQUFFQSxTQUFTQTt3QkFDakJBLGFBQWFBLEVBQUVBLDZEQUE2REE7d0JBQzVFQSxVQUFVQSxFQUFFQSxNQUFNQTtxQkFDbkJBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLFNBQVNBLEVBQUVBLGtCQUFrQkE7d0JBQzdCQSxVQUFVQSxFQUFFQSxJQUFJQTtxQkFDakJBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEscUNBQXFDQTt3QkFDN0NBLFVBQVVBLEVBQUVBLDRDQUE0Q0E7cUJBQ3pEQTtvQkFDREEsYUFBYUEsRUFBRUE7d0JBQ2JBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsMkNBQTJDQTtxQkFDM0RBO29CQUNEQSxjQUFjQSxFQUFFQTt3QkFDZEEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxtREFBbURBO3FCQUNuRUE7b0JBQ0RBLFFBQVFBLEVBQUVBO3dCQUNSQSxNQUFNQSxFQUFFQSxPQUFPQTt3QkFDZkEsYUFBYUEsRUFBRUEsMEJBQTBCQTt3QkFDekNBLE9BQU9BLEVBQUVBOzRCQUNQQSxNQUFNQSxFQUFFQSxRQUFRQTs0QkFDaEJBLGFBQWFBLEVBQUVBLDBCQUEwQkE7eUJBQzFDQTtxQkFDRkE7b0JBQ0RBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLHNDQUFzQ0E7cUJBQ3REQTtvQkFDREEsU0FBU0EsRUFBRUE7d0JBQ1RBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsdUNBQXVDQTtxQkFDdkRBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLGlEQUFpREE7Z0JBQzdEQSxnQkFBZ0JBLEVBQUVBO29CQUNoQkEsNkNBQTZDQTtpQkFDOUNBO2FBQ0ZBO1lBQ0RBLCtCQUErQkEsRUFBRUE7Z0JBQy9CQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFlBQVlBLEVBQUVBO3dCQUNaQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsSUFBSUE7d0JBQ2ZBLFVBQVVBLEVBQUVBLElBQUlBO3dCQUNoQkEsTUFBTUEsRUFBRUE7NEJBQ05BLElBQUlBO3lCQUNMQTtxQkFDRkE7b0JBQ0RBLE9BQU9BLEVBQUVBO3dCQUNQQSxNQUFNQSxFQUFFQSxPQUFPQTt3QkFDZkEsYUFBYUEsRUFBRUEsNkJBQTZCQTt3QkFDNUNBLE9BQU9BLEVBQUVBOzRCQUNQQSxNQUFNQSxFQUFFQSx5Q0FBeUNBOzRCQUNqREEsVUFBVUEsRUFBRUEsaURBQWlEQTt5QkFDOURBO3FCQUNGQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxzQkFBc0JBO3dCQUNqQ0EsVUFBVUEsRUFBRUEsSUFBSUE7cUJBQ2pCQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLG1DQUFtQ0E7d0JBQzNDQSxVQUFVQSxFQUFFQSwwQ0FBMENBO3FCQUN2REE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEscURBQXFEQTtnQkFDakVBLGdCQUFnQkEsRUFBRUE7b0JBQ2hCQSxvREFBb0RBO29CQUNwREEsd0RBQXdEQTtpQkFDekRBO2FBQ0ZBO1lBQ0RBLDhCQUE4QkEsRUFBRUE7Z0JBQzlCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFlBQVlBLEVBQUVBO3dCQUNaQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsSUFBSUE7d0JBQ2ZBLFVBQVVBLEVBQUVBLElBQUlBO3dCQUNoQkEsTUFBTUEsRUFBRUE7NEJBQ05BLElBQUlBO3lCQUNMQTtxQkFDRkE7b0JBQ0RBLFlBQVlBLEVBQUVBO3dCQUNaQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLCtDQUErQ0E7cUJBQy9EQTtvQkFDREEsV0FBV0EsRUFBRUE7d0JBQ1hBLE1BQU1BLEVBQUVBLFNBQVNBO3dCQUNqQkEsYUFBYUEsRUFBRUEsc0RBQXNEQTt3QkFDckVBLFVBQVVBLEVBQUVBLE1BQU1BO3FCQUNuQkE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEscUJBQXFCQTt3QkFDaENBLFVBQVVBLEVBQUVBLElBQUlBO3FCQUNqQkE7b0JBQ0RBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSxxQ0FBcUNBO3dCQUM3Q0EsVUFBVUEsRUFBRUEsNENBQTRDQTtxQkFDekRBO29CQUNEQSxhQUFhQSxFQUFFQTt3QkFDYkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSwyQ0FBMkNBO3FCQUMzREE7b0JBQ0RBLFFBQVFBLEVBQUVBO3dCQUNSQSxNQUFNQSxFQUFFQSxPQUFPQTt3QkFDZkEsYUFBYUEsRUFBRUEsMEJBQTBCQTt3QkFDekNBLE9BQU9BLEVBQUVBOzRCQUNQQSxNQUFNQSxFQUFFQSxRQUFRQTs0QkFDaEJBLGFBQWFBLEVBQUVBLDBCQUEwQkE7eUJBQzFDQTtxQkFDRkE7b0JBQ0RBLE9BQU9BLEVBQUVBO3dCQUNQQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLHlCQUF5QkE7cUJBQ3pDQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsc0NBQXNDQTtxQkFDdERBO29CQUNEQSxTQUFTQSxFQUFFQTt3QkFDVEEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSx5R0FBeUdBO3FCQUN6SEE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsb0RBQW9EQTtnQkFDaEVBLGdCQUFnQkEsRUFBRUE7b0JBQ2hCQSw2Q0FBNkNBO2lCQUM5Q0E7YUFDRkE7WUFDREEsa0NBQWtDQSxFQUFFQTtnQkFDbENBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsWUFBWUEsRUFBRUE7d0JBQ1pBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxJQUFJQTt3QkFDZkEsVUFBVUEsRUFBRUEsSUFBSUE7d0JBQ2hCQSxNQUFNQSxFQUFFQTs0QkFDTkEsSUFBSUE7eUJBQ0xBO3FCQUNGQTtvQkFDREEsT0FBT0EsRUFBRUE7d0JBQ1BBLE1BQU1BLEVBQUVBLE9BQU9BO3dCQUNmQSxhQUFhQSxFQUFFQSxvQ0FBb0NBO3dCQUNuREEsT0FBT0EsRUFBRUE7NEJBQ1BBLE1BQU1BLEVBQUVBLDRDQUE0Q0E7NEJBQ3BEQSxVQUFVQSxFQUFFQSxvREFBb0RBO3lCQUNqRUE7cUJBQ0ZBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLFNBQVNBLEVBQUVBLHlCQUF5QkE7d0JBQ3BDQSxVQUFVQSxFQUFFQSxJQUFJQTtxQkFDakJBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEsbUNBQW1DQTt3QkFDM0NBLFVBQVVBLEVBQUVBLDBDQUEwQ0E7cUJBQ3ZEQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSx3REFBd0RBO2dCQUNwRUEsZ0JBQWdCQSxFQUFFQTtvQkFDaEJBLG9EQUFvREE7b0JBQ3BEQSx3REFBd0RBO2lCQUN6REE7YUFDRkE7WUFDREEsc0JBQXNCQSxFQUFFQTtnQkFDdEJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsWUFBWUEsRUFBRUE7d0JBQ1pBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxJQUFJQTt3QkFDZkEsVUFBVUEsRUFBRUEsSUFBSUE7d0JBQ2hCQSxNQUFNQSxFQUFFQTs0QkFDTkEsSUFBSUE7eUJBQ0xBO3FCQUNGQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxhQUFhQTt3QkFDeEJBLFVBQVVBLEVBQUVBLElBQUlBO3FCQUNqQkE7b0JBQ0RBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSxxQ0FBcUNBO3dCQUM3Q0EsVUFBVUEsRUFBRUEsNENBQTRDQTtxQkFDekRBO29CQUNEQSxjQUFjQSxFQUFFQTt3QkFDZEEsTUFBTUEsRUFBRUEsT0FBT0E7d0JBQ2ZBLGFBQWFBLEVBQUVBLGlEQUFpREE7d0JBQ2hFQSxPQUFPQSxFQUFFQTs0QkFDUEEsTUFBTUEsRUFBRUEsUUFBUUE7NEJBQ2hCQSxhQUFhQSxFQUFFQSxpREFBaURBO3lCQUNqRUE7cUJBQ0ZBO29CQUNEQSx1QkFBdUJBLEVBQUVBO3dCQUN2QkEsTUFBTUEsRUFBRUEsU0FBU0E7d0JBQ2pCQSxhQUFhQSxFQUFFQSx3SEFBd0hBO3FCQUN4SUE7b0JBQ0RBLFFBQVFBLEVBQUVBO3dCQUNSQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLHdDQUF3Q0E7cUJBQ3hEQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSw0Q0FBNENBO2dCQUN4REEsZ0JBQWdCQSxFQUFFQTtvQkFDaEJBLDZDQUE2Q0E7aUJBQzlDQTthQUNGQTtZQUNEQSxtQ0FBbUNBLEVBQUVBO2dCQUNuQ0EsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxZQUFZQSxFQUFFQTt3QkFDWkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLFNBQVNBLEVBQUVBLElBQUlBO3dCQUNmQSxVQUFVQSxFQUFFQSxJQUFJQTt3QkFDaEJBLE1BQU1BLEVBQUVBOzRCQUNOQSxJQUFJQTt5QkFDTEE7cUJBQ0ZBO29CQUNEQSxZQUFZQSxFQUFFQTt3QkFDWkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSx1REFBdURBO3FCQUN2RUE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsMEJBQTBCQTt3QkFDckNBLFVBQVVBLEVBQUVBLElBQUlBO3FCQUNqQkE7b0JBQ0RBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSxxQ0FBcUNBO3dCQUM3Q0EsVUFBVUEsRUFBRUEsNENBQTRDQTtxQkFDekRBO29CQUNEQSxRQUFRQSxFQUFFQTt3QkFDUkEsTUFBTUEsRUFBRUEsT0FBT0E7d0JBQ2ZBLGFBQWFBLEVBQUVBLHdCQUF3QkE7d0JBQ3ZDQSxPQUFPQSxFQUFFQTs0QkFDUEEsTUFBTUEsRUFBRUEsUUFBUUE7NEJBQ2hCQSxhQUFhQSxFQUFFQSx3QkFBd0JBO3lCQUN4Q0E7cUJBQ0ZBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSx1Q0FBdUNBO3FCQUN2REE7b0JBQ0RBLFNBQVNBLEVBQUVBO3dCQUNUQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLHdIQUF3SEE7cUJBQ3hJQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSx5REFBeURBO2dCQUNyRUEsZ0JBQWdCQSxFQUFFQTtvQkFDaEJBLDZDQUE2Q0E7aUJBQzlDQTthQUNGQTtZQUNEQSx1Q0FBdUNBLEVBQUVBO2dCQUN2Q0EsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxZQUFZQSxFQUFFQTt3QkFDWkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLFNBQVNBLEVBQUVBLElBQUlBO3dCQUNmQSxVQUFVQSxFQUFFQSxJQUFJQTt3QkFDaEJBLE1BQU1BLEVBQUVBOzRCQUNOQSxJQUFJQTt5QkFDTEE7cUJBQ0ZBO29CQUNEQSxPQUFPQSxFQUFFQTt3QkFDUEEsTUFBTUEsRUFBRUEsT0FBT0E7d0JBQ2ZBLGFBQWFBLEVBQUVBLHFDQUFxQ0E7d0JBQ3BEQSxPQUFPQSxFQUFFQTs0QkFDUEEsTUFBTUEsRUFBRUEsaURBQWlEQTs0QkFDekRBLFVBQVVBLEVBQUVBLHlEQUF5REE7eUJBQ3RFQTtxQkFDRkE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsOEJBQThCQTt3QkFDekNBLFVBQVVBLEVBQUVBLElBQUlBO3FCQUNqQkE7b0JBQ0RBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSxtQ0FBbUNBO3dCQUMzQ0EsVUFBVUEsRUFBRUEsMENBQTBDQTtxQkFDdkRBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLDZEQUE2REE7Z0JBQ3pFQSxnQkFBZ0JBLEVBQUVBO29CQUNoQkEsb0RBQW9EQTtvQkFDcERBLHdEQUF3REE7aUJBQ3pEQTthQUNGQTtZQUNEQSwwQkFBMEJBLEVBQUVBO2dCQUMxQkEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxZQUFZQSxFQUFFQTt3QkFDWkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLFNBQVNBLEVBQUVBLElBQUlBO3dCQUNmQSxVQUFVQSxFQUFFQSxJQUFJQTt3QkFDaEJBLE1BQU1BLEVBQUVBOzRCQUNOQSxJQUFJQTt5QkFDTEE7cUJBQ0ZBO29CQUNEQSxPQUFPQSxFQUFFQTt3QkFDUEEsTUFBTUEsRUFBRUEsT0FBT0E7d0JBQ2ZBLGFBQWFBLEVBQUVBLHVCQUF1QkE7d0JBQ3RDQSxPQUFPQSxFQUFFQTs0QkFDUEEsTUFBTUEsRUFBRUEsb0NBQW9DQTs0QkFDNUNBLFVBQVVBLEVBQUVBLDRDQUE0Q0E7eUJBQ3pEQTtxQkFDRkE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsaUJBQWlCQTt3QkFDNUJBLFVBQVVBLEVBQUVBLElBQUlBO3FCQUNqQkE7b0JBQ0RBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSxtQ0FBbUNBO3dCQUMzQ0EsVUFBVUEsRUFBRUEsMENBQTBDQTtxQkFDdkRBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLGdEQUFnREE7Z0JBQzVEQSxnQkFBZ0JBLEVBQUVBO29CQUNoQkEsb0RBQW9EQTtvQkFDcERBLHdEQUF3REE7aUJBQ3pEQTthQUNGQTtZQUNEQSxvQkFBb0JBLEVBQUVBO2dCQUNwQkEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxZQUFZQSxFQUFFQTt3QkFDWkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLFNBQVNBLEVBQUVBLElBQUlBO3dCQUNmQSxVQUFVQSxFQUFFQSxJQUFJQTt3QkFDaEJBLE1BQU1BLEVBQUVBOzRCQUNOQSxJQUFJQTt5QkFDTEE7cUJBQ0ZBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLFNBQVNBLEVBQUVBLFNBQVNBO3dCQUNwQkEsVUFBVUEsRUFBRUEsSUFBSUE7cUJBQ2pCQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLHFDQUFxQ0E7d0JBQzdDQSxVQUFVQSxFQUFFQSw0Q0FBNENBO3FCQUN6REE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxzQ0FBc0NBO3dCQUM5Q0EsVUFBVUEsRUFBRUEsNENBQTRDQTtxQkFDekRBO29CQUNEQSxRQUFRQSxFQUFFQTt3QkFDUkEsTUFBTUEsRUFBRUEsd0NBQXdDQTt3QkFDaERBLFVBQVVBLEVBQUVBLDhDQUE4Q0E7cUJBQzNEQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSx3Q0FBd0NBO2dCQUNwREEsZ0JBQWdCQSxFQUFFQTtvQkFDaEJBLDZDQUE2Q0E7aUJBQzlDQTthQUNGQTtZQUNEQSx3QkFBd0JBLEVBQUVBO2dCQUN4QkEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxZQUFZQSxFQUFFQTt3QkFDWkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLFNBQVNBLEVBQUVBLElBQUlBO3dCQUNmQSxVQUFVQSxFQUFFQSxJQUFJQTt3QkFDaEJBLE1BQU1BLEVBQUVBOzRCQUNOQSxJQUFJQTt5QkFDTEE7cUJBQ0ZBO29CQUNEQSxPQUFPQSxFQUFFQTt3QkFDUEEsTUFBTUEsRUFBRUEsT0FBT0E7d0JBQ2ZBLGFBQWFBLEVBQUVBLGtCQUFrQkE7d0JBQ2pDQSxPQUFPQSxFQUFFQTs0QkFDUEEsTUFBTUEsRUFBRUEsa0NBQWtDQTs0QkFDMUNBLFVBQVVBLEVBQUVBLHdDQUF3Q0E7eUJBQ3JEQTtxQkFDRkE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsYUFBYUE7d0JBQ3hCQSxVQUFVQSxFQUFFQSxJQUFJQTtxQkFDakJBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEsbUNBQW1DQTt3QkFDM0NBLFVBQVVBLEVBQUVBLDBDQUEwQ0E7cUJBQ3ZEQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSw0Q0FBNENBO2dCQUN4REEsZ0JBQWdCQSxFQUFFQTtvQkFDaEJBLG9EQUFvREE7b0JBQ3BEQSx3REFBd0RBO2lCQUN6REE7YUFDRkE7WUFDREEsMkJBQTJCQSxFQUFFQTtnQkFDM0JBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsWUFBWUEsRUFBRUE7d0JBQ1pBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxJQUFJQTt3QkFDZkEsVUFBVUEsRUFBRUEsSUFBSUE7d0JBQ2hCQSxNQUFNQSxFQUFFQTs0QkFDTkEsSUFBSUE7eUJBQ0xBO3FCQUNGQTtvQkFDREEsYUFBYUEsRUFBRUE7d0JBQ2JBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsbUNBQW1DQTtxQkFDbkRBO29CQUNEQSxhQUFhQSxFQUFFQTt3QkFDYkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxvQ0FBb0NBO3FCQUNwREE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsZ0JBQWdCQTt3QkFDM0JBLFVBQVVBLEVBQUVBLElBQUlBO3FCQUNqQkE7b0JBQ0RBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSxxQ0FBcUNBO3dCQUM3Q0EsVUFBVUEsRUFBRUEsNENBQTRDQTtxQkFDekRBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLCtDQUErQ0E7Z0JBQzNEQSxnQkFBZ0JBLEVBQUVBO29CQUNoQkEsNkNBQTZDQTtpQkFDOUNBO2FBQ0ZBO1lBQ0RBLHdCQUF3QkEsRUFBRUE7Z0JBQ3hCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFlBQVlBLEVBQUVBO3dCQUNaQSxNQUFNQSxFQUFFQSxPQUFPQTt3QkFDZkEsYUFBYUEsRUFBRUEsdUZBQXVGQTt3QkFDdEdBLE9BQU9BLEVBQUVBOzRCQUNQQSxNQUFNQSxFQUFFQSxRQUFRQTs0QkFDaEJBLGFBQWFBLEVBQUVBLHVGQUF1RkE7eUJBQ3ZHQTtxQkFDRkE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsNENBQTRDQTthQUN6REE7WUFDREEsMEJBQTBCQSxFQUFFQTtnQkFDMUJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsT0FBT0EsRUFBRUE7d0JBQ1BBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEscURBQXFEQTtxQkFDckVBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLDhDQUE4Q0E7YUFDM0RBO1lBQ0RBLGdCQUFnQkEsRUFBRUE7Z0JBQ2hCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFlBQVlBLEVBQUVBO3dCQUNaQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsSUFBSUE7d0JBQ2ZBLFVBQVVBLEVBQUVBLElBQUlBO3dCQUNoQkEsTUFBTUEsRUFBRUE7NEJBQ05BLElBQUlBO3lCQUNMQTtxQkFDRkE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsT0FBT0E7d0JBQ2xCQSxVQUFVQSxFQUFFQSxJQUFJQTtxQkFDakJBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEscUNBQXFDQTt3QkFDN0NBLFVBQVVBLEVBQUVBLDRDQUE0Q0E7cUJBQ3pEQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLGtDQUFrQ0E7d0JBQzFDQSxVQUFVQSxFQUFFQSwwQ0FBMENBO3FCQUN2REE7b0JBQ0RBLFFBQVFBLEVBQUVBO3dCQUNSQSxNQUFNQSxFQUFFQSxvQ0FBb0NBO3dCQUM1Q0EsVUFBVUEsRUFBRUEsNENBQTRDQTtxQkFDekRBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLHNDQUFzQ0E7Z0JBQ2xEQSxnQkFBZ0JBLEVBQUVBO29CQUNoQkEsNkNBQTZDQTtpQkFDOUNBO2FBQ0ZBO1lBQ0RBLG9CQUFvQkEsRUFBRUE7Z0JBQ3BCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFlBQVlBLEVBQUVBO3dCQUNaQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsSUFBSUE7d0JBQ2ZBLFVBQVVBLEVBQUVBLElBQUlBO3dCQUNoQkEsTUFBTUEsRUFBRUE7NEJBQ05BLElBQUlBO3lCQUNMQTtxQkFDRkE7b0JBQ0RBLE9BQU9BLEVBQUVBO3dCQUNQQSxNQUFNQSxFQUFFQSxPQUFPQTt3QkFDZkEsYUFBYUEsRUFBRUEsZ0JBQWdCQTt3QkFDL0JBLE9BQU9BLEVBQUVBOzRCQUNQQSxNQUFNQSxFQUFFQSw4QkFBOEJBOzRCQUN0Q0EsVUFBVUEsRUFBRUEsc0NBQXNDQTt5QkFDbkRBO3FCQUNGQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxXQUFXQTt3QkFDdEJBLFVBQVVBLEVBQUVBLElBQUlBO3FCQUNqQkE7b0JBQ0RBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSxtQ0FBbUNBO3dCQUMzQ0EsVUFBVUEsRUFBRUEsMENBQTBDQTtxQkFDdkRBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLDBDQUEwQ0E7Z0JBQ3REQSxnQkFBZ0JBLEVBQUVBO29CQUNoQkEsb0RBQW9EQTtvQkFDcERBLHdEQUF3REE7aUJBQ3pEQTthQUNGQTtZQUNEQSxvQkFBb0JBLEVBQUVBO2dCQUNwQkEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxnREFBZ0RBO3FCQUNoRUE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLHdFQUF3RUE7cUJBQ3hGQTtvQkFDREEsS0FBS0EsRUFBRUE7d0JBQ0xBLE1BQU1BLEVBQUVBLGtDQUFrQ0E7d0JBQzFDQSxVQUFVQSxFQUFFQSwwQ0FBMENBO3FCQUN2REE7b0JBQ0RBLElBQUlBLEVBQUVBO3dCQUNKQSxNQUFNQSxFQUFFQSwwQ0FBMENBO3dCQUNsREEsVUFBVUEsRUFBRUEsaURBQWlEQTtxQkFDOURBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLDBDQUEwQ0E7YUFDdkRBO1lBQ0RBLHNCQUFzQkEsRUFBRUE7Z0JBQ3RCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLDRDQUE0Q0E7YUFDekRBO1lBQ0RBLG9CQUFvQkEsRUFBRUE7Z0JBQ3BCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLGVBQWVBLEVBQUVBO3dCQUNmQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLGtEQUFrREE7cUJBQ2xFQTtvQkFDREEsYUFBYUEsRUFBRUE7d0JBQ2JBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsK0JBQStCQTtxQkFDL0NBO29CQUNEQSwwQkFBMEJBLEVBQUVBO3dCQUMxQkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxrTkFBa05BO3FCQUNsT0E7b0JBQ0RBLEtBQUtBLEVBQUVBO3dCQUNMQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLDRCQUE0QkE7cUJBQzVDQTtvQkFDREEsYUFBYUEsRUFBRUE7d0JBQ2JBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEseUNBQXlDQTtxQkFDekRBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLDBDQUEwQ0E7YUFDdkRBO1lBQ0RBLHVCQUF1QkEsRUFBRUE7Z0JBQ3ZCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLGFBQWFBLEVBQUVBO3dCQUNiQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLG1DQUFtQ0E7cUJBQ25EQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsK0JBQStCQTtxQkFDL0NBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxvTUFBb01BO3FCQUNwTkE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLHVCQUF1QkE7cUJBQ3ZDQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLFNBQVNBO3dCQUNqQkEsYUFBYUEsRUFBRUEscUVBQXFFQTtxQkFDckZBO29CQUNEQSxPQUFPQSxFQUFFQTt3QkFDUEEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxtREFBbURBO3FCQUNuRUE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsMENBQTBDQTthQUN2REE7WUFDREEsc0JBQXNCQSxFQUFFQTtnQkFDdEJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsWUFBWUEsRUFBRUE7d0JBQ1pBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxJQUFJQTt3QkFDZkEsVUFBVUEsRUFBRUEsSUFBSUE7d0JBQ2hCQSxNQUFNQSxFQUFFQTs0QkFDTkEsSUFBSUE7eUJBQ0xBO3FCQUNGQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxVQUFVQTt3QkFDckJBLFVBQVVBLEVBQUVBLElBQUlBO3FCQUNqQkE7b0JBQ0RBLFFBQVFBLEVBQUVBO3dCQUNSQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLHdHQUF3R0E7d0JBQ3ZIQSxzQkFBc0JBLEVBQUVBOzRCQUN0QkEsTUFBTUEsRUFBRUEsUUFBUUE7NEJBQ2hCQSxhQUFhQSxFQUFFQSx3R0FBd0dBO3lCQUN4SEE7d0JBQ0RBLFVBQVVBLEVBQUVBLHdDQUF3Q0E7cUJBQ3JEQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLHFDQUFxQ0E7d0JBQzdDQSxVQUFVQSxFQUFFQSw0Q0FBNENBO3FCQUN6REE7b0JBQ0RBLFNBQVNBLEVBQUVBO3dCQUNUQSxNQUFNQSxFQUFFQSxPQUFPQTt3QkFDZkEsYUFBYUEsRUFBRUEsNENBQTRDQTt3QkFDM0RBLE9BQU9BLEVBQUVBOzRCQUNQQSxNQUFNQSxFQUFFQSwrQ0FBK0NBOzRCQUN2REEsVUFBVUEsRUFBRUEsNkNBQTZDQTt5QkFDMURBO3FCQUNGQTtvQkFDREEsWUFBWUEsRUFBRUE7d0JBQ1pBLE1BQU1BLEVBQUVBLE9BQU9BO3dCQUNmQSxhQUFhQSxFQUFFQSw0RUFBNEVBO3dCQUMzRkEsT0FBT0EsRUFBRUE7NEJBQ1BBLE1BQU1BLEVBQUVBLHFDQUFxQ0E7NEJBQzdDQSxVQUFVQSxFQUFFQSwwQ0FBMENBO3lCQUN2REE7cUJBQ0ZBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLHlDQUF5Q0E7Z0JBQ3JEQSxnQkFBZ0JBLEVBQUVBO29CQUNoQkEsNkNBQTZDQTtpQkFDOUNBO2FBQ0ZBO1lBQ0RBLDBCQUEwQkEsRUFBRUE7Z0JBQzFCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFlBQVlBLEVBQUVBO3dCQUNaQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsSUFBSUE7d0JBQ2ZBLFVBQVVBLEVBQUVBLElBQUlBO3dCQUNoQkEsTUFBTUEsRUFBRUE7NEJBQ05BLElBQUlBO3lCQUNMQTtxQkFDRkE7b0JBQ0RBLE9BQU9BLEVBQUVBO3dCQUNQQSxNQUFNQSxFQUFFQSxPQUFPQTt3QkFDZkEsYUFBYUEsRUFBRUEsbUJBQW1CQTt3QkFDbENBLE9BQU9BLEVBQUVBOzRCQUNQQSxNQUFNQSxFQUFFQSxvQ0FBb0NBOzRCQUM1Q0EsVUFBVUEsRUFBRUEseUNBQXlDQTt5QkFDdERBO3FCQUNGQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxjQUFjQTt3QkFDekJBLFVBQVVBLEVBQUVBLElBQUlBO3FCQUNqQkE7b0JBQ0RBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSxtQ0FBbUNBO3dCQUMzQ0EsVUFBVUEsRUFBRUEsMENBQTBDQTtxQkFDdkRBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLDZDQUE2Q0E7Z0JBQ3pEQSxnQkFBZ0JBLEVBQUVBO29CQUNoQkEsb0RBQW9EQTtvQkFDcERBLHdEQUF3REE7aUJBQ3pEQTthQUNGQTtZQUNEQSxlQUFlQSxFQUFFQTtnQkFDZkEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTtnQkFDakJBLFlBQVlBLEVBQUVBO29CQUNaQSxZQUFZQSxFQUFFQTt3QkFDWkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLFNBQVNBLEVBQUVBLElBQUlBO3dCQUNmQSxVQUFVQSxFQUFFQSxJQUFJQTt3QkFDaEJBLE1BQU1BLEVBQUVBOzRCQUNOQSxJQUFJQTt5QkFDTEE7cUJBQ0ZBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLFNBQVNBLEVBQUVBLE9BQU9BO3dCQUNsQkEsVUFBVUEsRUFBRUEsSUFBSUE7cUJBQ2pCQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLHFDQUFxQ0E7d0JBQzdDQSxVQUFVQSxFQUFFQSw0Q0FBNENBO3FCQUN6REE7b0JBQ0RBLE9BQU9BLEVBQUVBO3dCQUNQQSxNQUFNQSxFQUFFQSxPQUFPQTt3QkFDZkEsYUFBYUEsRUFBRUEsNkJBQTZCQTt3QkFDNUNBLE9BQU9BLEVBQUVBOzRCQUNQQSxNQUFNQSxFQUFFQSxRQUFRQTs0QkFDaEJBLGFBQWFBLEVBQUVBLDZCQUE2QkE7eUJBQzdDQTtxQkFDRkE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsc0NBQXNDQTtnQkFDbERBLGdCQUFnQkEsRUFBRUE7b0JBQ2hCQSw2Q0FBNkNBO2lCQUM5Q0E7YUFDRkE7WUFDREEsbUJBQW1CQSxFQUFFQTtnQkFDbkJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsWUFBWUEsRUFBRUE7d0JBQ1pBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxJQUFJQTt3QkFDZkEsVUFBVUEsRUFBRUEsSUFBSUE7d0JBQ2hCQSxNQUFNQSxFQUFFQTs0QkFDTkEsSUFBSUE7eUJBQ0xBO3FCQUNGQTtvQkFDREEsT0FBT0EsRUFBRUE7d0JBQ1BBLE1BQU1BLEVBQUVBLE9BQU9BO3dCQUNmQSxhQUFhQSxFQUFFQSxnQkFBZ0JBO3dCQUMvQkEsT0FBT0EsRUFBRUE7NEJBQ1BBLE1BQU1BLEVBQUVBLDZCQUE2QkE7NEJBQ3JDQSxVQUFVQSxFQUFFQSxzQ0FBc0NBO3lCQUNuREE7cUJBQ0ZBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLFNBQVNBLEVBQUVBLFdBQVdBO3dCQUN0QkEsVUFBVUEsRUFBRUEsSUFBSUE7cUJBQ2pCQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLG1DQUFtQ0E7d0JBQzNDQSxVQUFVQSxFQUFFQSwwQ0FBMENBO3FCQUN2REE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsMENBQTBDQTtnQkFDdERBLGdCQUFnQkEsRUFBRUE7b0JBQ2hCQSxvREFBb0RBO29CQUNwREEsd0RBQXdEQTtpQkFDekRBO2FBQ0ZBO1lBQ0RBLGtCQUFrQkEsRUFBRUE7Z0JBQ2xCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFlBQVlBLEVBQUVBO3dCQUNaQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsSUFBSUE7d0JBQ2ZBLFVBQVVBLEVBQUVBLElBQUlBO3dCQUNoQkEsTUFBTUEsRUFBRUE7NEJBQ05BLElBQUlBO3lCQUNMQTtxQkFDRkE7b0JBQ0RBLE9BQU9BLEVBQUVBO3dCQUNQQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLHFDQUFxQ0E7d0JBQ3BEQSxzQkFBc0JBLEVBQUVBOzRCQUN0QkEsTUFBTUEsRUFBRUEsUUFBUUE7NEJBQ2hCQSxhQUFhQSxFQUFFQSxxQ0FBcUNBO3lCQUNyREE7d0JBQ0RBLFVBQVVBLEVBQUVBLHdDQUF3Q0E7cUJBQ3JEQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxVQUFVQTt3QkFDckJBLFVBQVVBLEVBQUVBLElBQUlBO3FCQUNqQkE7b0JBQ0RBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSxxQ0FBcUNBO3dCQUM3Q0EsVUFBVUEsRUFBRUEsNENBQTRDQTtxQkFDekRBO29CQUNEQSxjQUFjQSxFQUFFQTt3QkFDZEEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxnQ0FBZ0NBO3FCQUNoREE7b0JBQ0RBLGtCQUFrQkEsRUFBRUE7d0JBQ2xCQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLGdFQUFnRUE7cUJBQ2hGQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLDBDQUEwQ0E7d0JBQ2xEQSxVQUFVQSxFQUFFQSxpREFBaURBO3FCQUM5REE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEseUNBQXlDQTtnQkFDckRBLGdCQUFnQkEsRUFBRUE7b0JBQ2hCQSw2Q0FBNkNBO2lCQUM5Q0E7YUFDRkE7WUFDREEsc0JBQXNCQSxFQUFFQTtnQkFDdEJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxZQUFZQSxFQUFFQTtvQkFDWkEsWUFBWUEsRUFBRUE7d0JBQ1pBLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxJQUFJQTt3QkFDZkEsVUFBVUEsRUFBRUEsSUFBSUE7d0JBQ2hCQSxNQUFNQSxFQUFFQTs0QkFDTkEsSUFBSUE7eUJBQ0xBO3FCQUNGQTtvQkFDREEsT0FBT0EsRUFBRUE7d0JBQ1BBLE1BQU1BLEVBQUVBLE9BQU9BO3dCQUNmQSxhQUFhQSxFQUFFQSxvQkFBb0JBO3dCQUNuQ0EsT0FBT0EsRUFBRUE7NEJBQ1BBLE1BQU1BLEVBQUVBLGdDQUFnQ0E7NEJBQ3hDQSxVQUFVQSxFQUFFQSx5Q0FBeUNBO3lCQUN0REE7cUJBQ0ZBO29CQUNEQSxNQUFNQSxFQUFFQTt3QkFDTkEsTUFBTUEsRUFBRUEsUUFBUUE7d0JBQ2hCQSxhQUFhQSxFQUFFQSxFQUFFQTt3QkFDakJBLFNBQVNBLEVBQUVBLGNBQWNBO3dCQUN6QkEsVUFBVUEsRUFBRUEsSUFBSUE7cUJBQ2pCQTtvQkFDREEsVUFBVUEsRUFBRUE7d0JBQ1ZBLE1BQU1BLEVBQUVBLG1DQUFtQ0E7d0JBQzNDQSxVQUFVQSxFQUFFQSwwQ0FBMENBO3FCQUN2REE7aUJBQ0ZBO2dCQUNEQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsNkNBQTZDQTtnQkFDekRBLGdCQUFnQkEsRUFBRUE7b0JBQ2hCQSxvREFBb0RBO29CQUNwREEsd0RBQXdEQTtpQkFDekRBO2FBQ0ZBO1lBQ0RBLGNBQWNBLEVBQUVBO2dCQUNkQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFlBQVlBLEVBQUVBO3dCQUNaQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsSUFBSUE7d0JBQ2ZBLFVBQVVBLEVBQUVBLElBQUlBO3dCQUNoQkEsTUFBTUEsRUFBRUE7NEJBQ05BLElBQUlBO3lCQUNMQTtxQkFDRkE7b0JBQ0RBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLG1CQUFtQkE7cUJBQ25DQTtvQkFDREEsUUFBUUEsRUFBRUE7d0JBQ1JBLE1BQU1BLEVBQUVBLE9BQU9BO3dCQUNmQSxhQUFhQSxFQUFFQSxnQkFBZ0JBO3dCQUMvQkEsT0FBT0EsRUFBRUE7NEJBQ1BBLE1BQU1BLEVBQUVBLFFBQVFBOzRCQUNoQkEsYUFBYUEsRUFBRUEsZ0JBQWdCQTt5QkFDaENBO3FCQUNGQTtvQkFDREEsWUFBWUEsRUFBRUE7d0JBQ1pBLE1BQU1BLEVBQUVBLE9BQU9BO3dCQUNmQSxhQUFhQSxFQUFFQSxvQkFBb0JBO3dCQUNuQ0EsT0FBT0EsRUFBRUE7NEJBQ1BBLE1BQU1BLEVBQUVBLFFBQVFBOzRCQUNoQkEsYUFBYUEsRUFBRUEsb0JBQW9CQTt5QkFDcENBO3FCQUNGQTtvQkFDREEsTUFBTUEsRUFBRUE7d0JBQ05BLE1BQU1BLEVBQUVBLFFBQVFBO3dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7d0JBQ2pCQSxTQUFTQSxFQUFFQSxNQUFNQTt3QkFDakJBLFVBQVVBLEVBQUVBLElBQUlBO3FCQUNqQkE7b0JBQ0RBLFVBQVVBLEVBQUVBO3dCQUNWQSxNQUFNQSxFQUFFQSxxQ0FBcUNBO3dCQUM3Q0EsVUFBVUEsRUFBRUEsNENBQTRDQTtxQkFDekRBO2lCQUNGQTtnQkFDREEsc0JBQXNCQSxFQUFFQSxJQUFJQTtnQkFDNUJBLFVBQVVBLEVBQUVBLHFDQUFxQ0E7Z0JBQ2pEQSxnQkFBZ0JBLEVBQUVBO29CQUNoQkEsNkNBQTZDQTtpQkFDOUNBO2FBQ0ZBO1lBQ0RBLGtCQUFrQkEsRUFBRUE7Z0JBQ2xCQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO2dCQUNqQkEsWUFBWUEsRUFBRUE7b0JBQ1pBLFlBQVlBLEVBQUVBO3dCQUNaQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsSUFBSUE7d0JBQ2ZBLFVBQVVBLEVBQUVBLElBQUlBO3dCQUNoQkEsTUFBTUEsRUFBRUE7NEJBQ05BLElBQUlBO3lCQUNMQTtxQkFDRkE7b0JBQ0RBLE9BQU9BLEVBQUVBO3dCQUNQQSxNQUFNQSxFQUFFQSxPQUFPQTt3QkFDZkEsYUFBYUEsRUFBRUEsZUFBZUE7d0JBQzlCQSxPQUFPQSxFQUFFQTs0QkFDUEEsTUFBTUEsRUFBRUEsNEJBQTRCQTs0QkFDcENBLFVBQVVBLEVBQUVBLHFDQUFxQ0E7eUJBQ2xEQTtxQkFDRkE7b0JBQ0RBLE1BQU1BLEVBQUVBO3dCQUNOQSxNQUFNQSxFQUFFQSxRQUFRQTt3QkFDaEJBLGFBQWFBLEVBQUVBLEVBQUVBO3dCQUNqQkEsU0FBU0EsRUFBRUEsVUFBVUE7d0JBQ3JCQSxVQUFVQSxFQUFFQSxJQUFJQTtxQkFDakJBO29CQUNEQSxVQUFVQSxFQUFFQTt3QkFDVkEsTUFBTUEsRUFBRUEsbUNBQW1DQTt3QkFDM0NBLFVBQVVBLEVBQUVBLDBDQUEwQ0E7cUJBQ3ZEQTtpQkFDRkE7Z0JBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7Z0JBQzVCQSxVQUFVQSxFQUFFQSx5Q0FBeUNBO2dCQUNyREEsZ0JBQWdCQSxFQUFFQTtvQkFDaEJBLG9EQUFvREE7b0JBQ3BEQSx3REFBd0RBO2lCQUN6REE7YUFDRkE7WUFDREEsZ0JBQWdCQSxFQUFFQTtnQkFDaEJBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsYUFBYUEsRUFBRUEsRUFBRUE7Z0JBQ2pCQSxzQkFBc0JBLEVBQUVBLElBQUlBO2dCQUM1QkEsVUFBVUEsRUFBRUEsb0NBQW9DQTthQUNqREE7U0FDRkE7UUFDREEsTUFBTUEsRUFBRUEsUUFBUUE7UUFDaEJBLFlBQVlBLEVBQUVBO1lBQ1pBLG9CQUFvQkEsRUFBRUE7Z0JBQ3BCQSxNQUFNQSxFQUFFQSwrQkFBK0JBO2dCQUN2Q0EsVUFBVUEsRUFBRUEsb0RBQW9EQTthQUNqRUE7WUFDREEsaUJBQWlCQSxFQUFFQTtnQkFDakJBLE1BQU1BLEVBQUVBLHdDQUF3Q0E7Z0JBQ2hEQSxVQUFVQSxFQUFFQSxnREFBZ0RBO2FBQzdEQTtZQUNEQSxXQUFXQSxFQUFFQTtnQkFDWEEsTUFBTUEsRUFBRUEsa0NBQWtDQTtnQkFDMUNBLFVBQVVBLEVBQUVBLDBDQUEwQ0E7YUFDdkRBO1lBQ0RBLGNBQWNBLEVBQUVBO2dCQUNkQSxNQUFNQSxFQUFFQSxxQ0FBcUNBO2dCQUM3Q0EsVUFBVUEsRUFBRUEsNkNBQTZDQTthQUMxREE7WUFDREEsZUFBZUEsRUFBRUE7Z0JBQ2ZBLE1BQU1BLEVBQUVBLDhDQUE4Q0E7Z0JBQ3REQSxVQUFVQSxFQUFFQSw4Q0FBOENBO2FBQzNEQTtZQUNEQSxzQkFBc0JBLEVBQUVBO2dCQUN0QkEsTUFBTUEsRUFBRUEscURBQXFEQTtnQkFDN0RBLFVBQVVBLEVBQUVBLHFEQUFxREE7YUFDbEVBO1lBQ0RBLDBCQUEwQkEsRUFBRUE7Z0JBQzFCQSxNQUFNQSxFQUFFQSx5REFBeURBO2dCQUNqRUEsVUFBVUEsRUFBRUEseURBQXlEQTthQUN0RUE7WUFDREEsbUJBQW1CQSxFQUFFQTtnQkFDbkJBLE1BQU1BLEVBQUVBLGtEQUFrREE7Z0JBQzFEQSxVQUFVQSxFQUFFQSxrREFBa0RBO2FBQy9EQTtZQUNEQSxvQkFBb0JBLEVBQUVBO2dCQUNwQkEsTUFBTUEsRUFBRUEsbURBQW1EQTtnQkFDM0RBLFVBQVVBLEVBQUVBLG1EQUFtREE7YUFDaEVBO1lBQ0RBLHdCQUF3QkEsRUFBRUE7Z0JBQ3hCQSxNQUFNQSxFQUFFQSx1REFBdURBO2dCQUMvREEsVUFBVUEsRUFBRUEsdURBQXVEQTthQUNwRUE7WUFDREEsUUFBUUEsRUFBRUE7Z0JBQ1JBLE1BQU1BLEVBQUVBLHdDQUF3Q0E7Z0JBQ2hEQSxVQUFVQSxFQUFFQSx3Q0FBd0NBO2FBQ3JEQTtZQUNEQSxpQkFBaUJBLEVBQUVBO2dCQUNqQkEsTUFBTUEsRUFBRUEsMENBQTBDQTtnQkFDbERBLFVBQVVBLEVBQUVBLGlEQUFpREE7YUFDOURBO1lBQ0RBLHNCQUFzQkEsRUFBRUE7Z0JBQ3RCQSxNQUFNQSxFQUFFQSw4Q0FBOENBO2dCQUN0REEsVUFBVUEsRUFBRUEscURBQXFEQTthQUNsRUE7WUFDREEsV0FBV0EsRUFBRUE7Z0JBQ1hBLE1BQU1BLEVBQUVBLG9DQUFvQ0E7Z0JBQzVDQSxVQUFVQSxFQUFFQSwyQ0FBMkNBO2FBQ3hEQTtZQUNEQSxlQUFlQSxFQUFFQTtnQkFDZkEsTUFBTUEsRUFBRUEsd0NBQXdDQTtnQkFDaERBLFVBQVVBLEVBQUVBLCtDQUErQ0E7YUFDNURBO1lBQ0RBLFFBQVFBLEVBQUVBO2dCQUNSQSxNQUFNQSxFQUFFQSxpQ0FBaUNBO2dCQUN6Q0EsVUFBVUEsRUFBRUEsd0NBQXdDQTthQUNyREE7WUFDREEsV0FBV0EsRUFBRUE7Z0JBQ1hBLE1BQU1BLEVBQUVBLG9DQUFvQ0E7Z0JBQzVDQSxVQUFVQSxFQUFFQSwyQ0FBMkNBO2FBQ3hEQTtZQUNEQSxPQUFPQSxFQUFFQTtnQkFDUEEsTUFBTUEsRUFBRUEsNkJBQTZCQTtnQkFDckNBLFVBQVVBLEVBQUVBLHNDQUFzQ0E7YUFDbkRBO1lBQ0RBLFdBQVdBLEVBQUVBO2dCQUNYQSxNQUFNQSxFQUFFQSxpQ0FBaUNBO2dCQUN6Q0EsVUFBVUEsRUFBRUEsMENBQTBDQTthQUN2REE7WUFDREEsVUFBVUEsRUFBRUE7Z0JBQ1ZBLE1BQU1BLEVBQUVBLGdDQUFnQ0E7Z0JBQ3hDQSxVQUFVQSxFQUFFQSx5Q0FBeUNBO2FBQ3REQTtZQUNEQSxjQUFjQSxFQUFFQTtnQkFDZEEsTUFBTUEsRUFBRUEsb0NBQW9DQTtnQkFDNUNBLFVBQVVBLEVBQUVBLDZDQUE2Q0E7YUFDMURBO1lBQ0RBLFdBQVdBLEVBQUVBO2dCQUNYQSxNQUFNQSxFQUFFQSxrQ0FBa0NBO2dCQUMxQ0EsVUFBVUEsRUFBRUEsMENBQTBDQTthQUN2REE7WUFDREEsaUJBQWlCQSxFQUFFQTtnQkFDakJBLE1BQU1BLEVBQUVBLHdDQUF3Q0E7Z0JBQ2hEQSxVQUFVQSxFQUFFQSxnREFBZ0RBO2FBQzdEQTtZQUNEQSwwQkFBMEJBLEVBQUVBO2dCQUMxQkEsTUFBTUEsRUFBRUEseURBQXlEQTtnQkFDakVBLFVBQVVBLEVBQUVBLHlEQUF5REE7YUFDdEVBO1lBQ0RBLFdBQVdBLEVBQUVBO2dCQUNYQSxNQUFNQSxFQUFFQSxvQ0FBb0NBO2dCQUM1Q0EsVUFBVUEsRUFBRUEsMkNBQTJDQTthQUN4REE7WUFDREEsZUFBZUEsRUFBRUE7Z0JBQ2ZBLE1BQU1BLEVBQUVBLHdDQUF3Q0E7Z0JBQ2hEQSxVQUFVQSxFQUFFQSwrQ0FBK0NBO2FBQzVEQTtZQUNEQSxNQUFNQSxFQUFFQTtnQkFDTkEsTUFBTUEsRUFBRUEsK0JBQStCQTtnQkFDdkNBLFVBQVVBLEVBQUVBLHNDQUFzQ0E7YUFDbkRBO1lBQ0RBLFVBQVVBLEVBQUVBO2dCQUNWQSxNQUFNQSxFQUFFQSxtQ0FBbUNBO2dCQUMzQ0EsVUFBVUEsRUFBRUEsMENBQTBDQTthQUN2REE7WUFDREEsa0JBQWtCQSxFQUFFQTtnQkFDbEJBLE1BQU1BLEVBQUVBLHlDQUF5Q0E7Z0JBQ2pEQSxVQUFVQSxFQUFFQSxpREFBaURBO2FBQzlEQTtZQUNEQSxzQkFBc0JBLEVBQUVBO2dCQUN0QkEsTUFBTUEsRUFBRUEsNkNBQTZDQTtnQkFDckRBLFVBQVVBLEVBQUVBLHFEQUFxREE7YUFDbEVBO1lBQ0RBLHFCQUFxQkEsRUFBRUE7Z0JBQ3JCQSxNQUFNQSxFQUFFQSw0Q0FBNENBO2dCQUNwREEsVUFBVUEsRUFBRUEsb0RBQW9EQTthQUNqRUE7WUFDREEseUJBQXlCQSxFQUFFQTtnQkFDekJBLE1BQU1BLEVBQUVBLGdEQUFnREE7Z0JBQ3hEQSxVQUFVQSxFQUFFQSx3REFBd0RBO2FBQ3JFQTtZQUNEQSxhQUFhQSxFQUFFQTtnQkFDYkEsTUFBTUEsRUFBRUEsb0NBQW9DQTtnQkFDNUNBLFVBQVVBLEVBQUVBLDRDQUE0Q0E7YUFDekRBO1lBQ0RBLDBCQUEwQkEsRUFBRUE7Z0JBQzFCQSxNQUFNQSxFQUFFQSxpREFBaURBO2dCQUN6REEsVUFBVUEsRUFBRUEseURBQXlEQTthQUN0RUE7WUFDREEsOEJBQThCQSxFQUFFQTtnQkFDOUJBLE1BQU1BLEVBQUVBLHFEQUFxREE7Z0JBQzdEQSxVQUFVQSxFQUFFQSw2REFBNkRBO2FBQzFFQTtZQUNEQSxpQkFBaUJBLEVBQUVBO2dCQUNqQkEsTUFBTUEsRUFBRUEsd0NBQXdDQTtnQkFDaERBLFVBQVVBLEVBQUVBLGdEQUFnREE7YUFDN0RBO1lBQ0RBLFlBQVlBLEVBQUVBO2dCQUNaQSxNQUFNQSxFQUFFQSxxQ0FBcUNBO2dCQUM3Q0EsVUFBVUEsRUFBRUEsNENBQTRDQTthQUN6REE7WUFDREEsa0JBQWtCQSxFQUFFQTtnQkFDbEJBLE1BQU1BLEVBQUVBLDJDQUEyQ0E7Z0JBQ25EQSxVQUFVQSxFQUFFQSxrREFBa0RBO2FBQy9EQTtZQUNEQSx1QkFBdUJBLEVBQUVBO2dCQUN2QkEsTUFBTUEsRUFBRUEsZ0RBQWdEQTtnQkFDeERBLFVBQVVBLEVBQUVBLHVEQUF1REE7YUFDcEVBO1lBQ0RBLDJCQUEyQkEsRUFBRUE7Z0JBQzNCQSxNQUFNQSxFQUFFQSxvREFBb0RBO2dCQUM1REEsVUFBVUEsRUFBRUEsMkRBQTJEQTthQUN4RUE7WUFDREEsc0JBQXNCQSxFQUFFQTtnQkFDdEJBLE1BQU1BLEVBQUVBLCtDQUErQ0E7Z0JBQ3ZEQSxVQUFVQSxFQUFFQSxzREFBc0RBO2FBQ25FQTtZQUNEQSxTQUFTQSxFQUFFQTtnQkFDVEEsTUFBTUEsRUFBRUEsa0NBQWtDQTtnQkFDMUNBLFVBQVVBLEVBQUVBLHlDQUF5Q0E7YUFDdERBO1lBQ0RBLFFBQVFBLEVBQUVBO2dCQUNSQSxNQUFNQSxFQUFFQSx1Q0FBdUNBO2dCQUMvQ0EsVUFBVUEsRUFBRUEsdUNBQXVDQTthQUNwREE7WUFDREEsZUFBZUEsRUFBRUE7Z0JBQ2ZBLE1BQU1BLEVBQUVBLDhDQUE4Q0E7Z0JBQ3REQSxVQUFVQSxFQUFFQSw4Q0FBOENBO2FBQzNEQTtZQUNEQSxtQkFBbUJBLEVBQUVBO2dCQUNuQkEsTUFBTUEsRUFBRUEsa0RBQWtEQTtnQkFDMURBLFVBQVVBLEVBQUVBLGtEQUFrREE7YUFDL0RBO1lBQ0RBLFlBQVlBLEVBQUVBO2dCQUNaQSxNQUFNQSxFQUFFQSwyQ0FBMkNBO2dCQUNuREEsVUFBVUEsRUFBRUEsMkNBQTJDQTthQUN4REE7WUFDREEsU0FBU0EsRUFBRUE7Z0JBQ1RBLE1BQU1BLEVBQUVBLGtDQUFrQ0E7Z0JBQzFDQSxVQUFVQSxFQUFFQSx3Q0FBd0NBO2FBQ3JEQTtZQUNEQSxhQUFhQSxFQUFFQTtnQkFDYkEsTUFBTUEsRUFBRUEsc0NBQXNDQTtnQkFDOUNBLFVBQVVBLEVBQUVBLDRDQUE0Q0E7YUFDekRBO1lBQ0RBLGdCQUFnQkEsRUFBRUE7Z0JBQ2hCQSxNQUFNQSxFQUFFQSx5Q0FBeUNBO2dCQUNqREEsVUFBVUEsRUFBRUEsK0NBQStDQTthQUM1REE7WUFDREEsVUFBVUEsRUFBRUE7Z0JBQ1ZBLE1BQU1BLEVBQUVBLDRDQUE0Q0E7Z0JBQ3BEQSxVQUFVQSxFQUFFQSwwQ0FBMENBO2FBQ3ZEQTtZQUNEQSwyQkFBMkJBLEVBQUVBO2dCQUMzQkEsTUFBTUEsRUFBRUEsb0RBQW9EQTtnQkFDNURBLFVBQVVBLEVBQUVBLDJEQUEyREE7YUFDeEVBO1lBQ0RBLGVBQWVBLEVBQUVBO2dCQUNmQSxNQUFNQSxFQUFFQSx3Q0FBd0NBO2dCQUNoREEsVUFBVUEsRUFBRUEsK0NBQStDQTthQUM1REE7WUFDREEsbUJBQW1CQSxFQUFFQTtnQkFDbkJBLE1BQU1BLEVBQUVBLDRDQUE0Q0E7Z0JBQ3BEQSxVQUFVQSxFQUFFQSxtREFBbURBO2FBQ2hFQTtZQUNEQSxNQUFNQSxFQUFFQTtnQkFDTkEsTUFBTUEsRUFBRUEscUNBQXFDQTtnQkFDN0NBLFVBQVVBLEVBQUVBLHFDQUFxQ0E7YUFDbERBO1lBQ0RBLGFBQWFBLEVBQUVBO2dCQUNiQSxNQUFNQSxFQUFFQSw0Q0FBNENBO2dCQUNwREEsVUFBVUEsRUFBRUEsNENBQTRDQTthQUN6REE7WUFDREEsaUJBQWlCQSxFQUFFQTtnQkFDakJBLE1BQU1BLEVBQUVBLGdEQUFnREE7Z0JBQ3hEQSxVQUFVQSxFQUFFQSxnREFBZ0RBO2FBQzdEQTtZQUNEQSxVQUFVQSxFQUFFQTtnQkFDVkEsTUFBTUEsRUFBRUEseUNBQXlDQTtnQkFDakRBLFVBQVVBLEVBQUVBLHlDQUF5Q0E7YUFDdERBO1lBQ0RBLFdBQVdBLEVBQUVBO2dCQUNYQSxNQUFNQSxFQUFFQSw2QkFBNkJBO2dCQUNyQ0EsVUFBVUEsRUFBRUEsMkNBQTJDQTthQUN4REE7WUFDREEsV0FBV0EsRUFBRUE7Z0JBQ1hBLE1BQU1BLEVBQUVBLGtDQUFrQ0E7Z0JBQzFDQSxVQUFVQSxFQUFFQSwwQ0FBMENBO2FBQ3ZEQTtZQUNEQSxRQUFRQSxFQUFFQTtnQkFDUkEsTUFBTUEsRUFBRUEsaUNBQWlDQTtnQkFDekNBLFVBQVVBLEVBQUVBLHdDQUF3Q0E7YUFDckRBO1lBQ0RBLFlBQVlBLEVBQUVBO2dCQUNaQSxNQUFNQSxFQUFFQSxxQ0FBcUNBO2dCQUM3Q0EsVUFBVUEsRUFBRUEsNENBQTRDQTthQUN6REE7WUFDREEsNEJBQTRCQSxFQUFFQTtnQkFDNUJBLE1BQU1BLEVBQUVBLHFEQUFxREE7Z0JBQzdEQSxVQUFVQSxFQUFFQSw0REFBNERBO2FBQ3pFQTtZQUNEQSxnQ0FBZ0NBLEVBQUVBO2dCQUNoQ0EsTUFBTUEsRUFBRUEseURBQXlEQTtnQkFDakVBLFVBQVVBLEVBQUVBLGdFQUFnRUE7YUFDN0VBO1lBQ0RBLGdCQUFnQkEsRUFBRUE7Z0JBQ2hCQSxNQUFNQSxFQUFFQSx5Q0FBeUNBO2dCQUNqREEsVUFBVUEsRUFBRUEsZ0RBQWdEQTthQUM3REE7WUFDREEsb0JBQW9CQSxFQUFFQTtnQkFDcEJBLE1BQU1BLEVBQUVBLDZDQUE2Q0E7Z0JBQ3JEQSxVQUFVQSxFQUFFQSxvREFBb0RBO2FBQ2pFQTtZQUNEQSxhQUFhQSxFQUFFQTtnQkFDYkEsTUFBTUEsRUFBRUEsc0NBQXNDQTtnQkFDOUNBLFVBQVVBLEVBQUVBLDZDQUE2Q0E7YUFDMURBO1lBQ0RBLFFBQVFBLEVBQUVBO2dCQUNSQSxNQUFNQSxFQUFFQSxpQ0FBaUNBO2dCQUN6Q0EsVUFBVUEsRUFBRUEsd0NBQXdDQTthQUNyREE7WUFDREEscUJBQXFCQSxFQUFFQTtnQkFDckJBLE1BQU1BLEVBQUVBLG9EQUFvREE7Z0JBQzVEQSxVQUFVQSxFQUFFQSxvREFBb0RBO2FBQ2pFQTtZQUNEQSw2QkFBNkJBLEVBQUVBO2dCQUM3QkEsTUFBTUEsRUFBRUEsNERBQTREQTtnQkFDcEVBLFVBQVVBLEVBQUVBLDREQUE0REE7YUFDekVBO1lBQ0RBLFVBQVVBLEVBQUVBO2dCQUNWQSxNQUFNQSxFQUFFQSxpQ0FBaUNBO2dCQUN6Q0EsVUFBVUEsRUFBRUEseUNBQXlDQTthQUN0REE7WUFDREEsVUFBVUEsRUFBRUE7Z0JBQ1ZBLE1BQU1BLEVBQUVBLG9DQUFvQ0E7Z0JBQzVDQSxVQUFVQSxFQUFFQSx5Q0FBeUNBO2FBQ3REQTtZQUNEQSxjQUFjQSxFQUFFQTtnQkFDZEEsTUFBTUEsRUFBRUEsd0NBQXdDQTtnQkFDaERBLFVBQVVBLEVBQUVBLDZDQUE2Q0E7YUFDMURBO1lBQ0RBLE1BQU1BLEVBQUVBO2dCQUNOQSxNQUFNQSxFQUFFQSw0QkFBNEJBO2dCQUNwQ0EsVUFBVUEsRUFBRUEscUNBQXFDQTthQUNsREE7WUFDREEsVUFBVUEsRUFBRUE7Z0JBQ1ZBLE1BQU1BLEVBQUVBLGdDQUFnQ0E7Z0JBQ3hDQSxVQUFVQSxFQUFFQSx5Q0FBeUNBO2FBQ3REQTtZQUNEQSxZQUFZQSxFQUFFQTtnQkFDWkEsTUFBTUEsRUFBRUEsMkNBQTJDQTtnQkFDbkRBLFVBQVVBLEVBQUVBLDRDQUE0Q0E7YUFDekRBO1NBQ0ZBO1FBQ0RBLHNCQUFzQkEsRUFBRUEsSUFBSUE7S0FDN0JBLENBQUFBO0FBR0hBLENBQUNBLEVBejJOTSxVQUFVLEtBQVYsVUFBVSxRQXkyTmhCOztBQzMyTkQsQUFFQSxpQ0FGaUM7QUFDakMsMkNBQTJDO0FBQzNDLElBQU8sVUFBVSxDQTBFaEI7QUExRUQsV0FBTyxVQUFVLEVBQUMsQ0FBQztJQUdqQkEsSUFBSUEsZ0JBQWdCQSxHQUFHQSxDQUFDQSxRQUFRQSxFQUFFQSxtQkFBbUJBLENBQUNBLENBQUNBO0lBRXZEQSxTQUFTQSxZQUFZQSxDQUFDQSxNQUFVQSxFQUFFQSxJQUFXQSxFQUFFQSxNQUFvQkE7UUFDakVnTCxFQUFFQSxDQUFDQSxDQUFDQSxNQUFNQSxDQUFDQSxVQUFVQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtZQUM1QkEsTUFBTUEsQ0FBQ0EsTUFBTUEsQ0FBQ0EsVUFBVUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7UUFDbENBLENBQUNBO0lBQ0hBLENBQUNBO0lBRURoTCxTQUFTQSxjQUFjQSxDQUFDQSxNQUFNQTtRQUM1QmlMLENBQUNBLENBQUNBLE9BQU9BLENBQUNBLGdCQUFnQkEsRUFBRUEsVUFBQ0EsUUFBUUE7WUFDbkNBLFlBQVlBLENBQUNBLE1BQU1BLEVBQUVBLFFBQVFBLEVBQUVBLFVBQUNBLFFBQVFBO2dCQUN0Q0EsUUFBUUEsQ0FBQ0EsTUFBTUEsR0FBR0EsSUFBSUEsQ0FBQ0E7WUFDekJBLENBQUNBLENBQUNBLENBQUFBO1FBQ0pBLENBQUNBLENBQUNBLENBQUNBO0lBQ0xBLENBQUNBO0lBRURqTCxrQkFBT0EsQ0FBQ0EsT0FBT0EsQ0FBQ0Esa0JBQWtCQSxFQUFFQSxDQUFDQSxnQkFBZ0JBLEVBQUVBLFVBQUNBLE9BQWtDQTtRQUN4RkEsMEJBQWVBLEVBQUVBLENBQUNBO1FBRWxCQSxPQUFPQSxDQUFDQSxXQUFXQSxDQUFDQSx1QkFBdUJBLEVBQUVBLFVBQUNBLElBQUlBLEVBQUVBLE1BQU1BO1lBQ3hEQSxFQUFFQSxDQUFDQSxDQUFDQSxNQUFNQSxDQUFDQSxVQUFVQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFDdEJBLEVBQUVBLENBQUNBLENBQUNBLE1BQU1BLENBQUNBLFVBQVVBLENBQUNBLElBQUlBLENBQUNBLENBQUNBLENBQUNBO29CQUMzQkEsTUFBTUEsQ0FBQ0EsUUFBUUEsR0FBR0EsQ0FBQ0EsTUFBTUEsRUFBRUEsR0FBR0EsQ0FBQ0EsQ0FBQ0E7Z0JBQ2xDQSxDQUFDQTtnQkFDREEsWUFBWUEsQ0FBQ0EsTUFBTUEsRUFBRUEsVUFBVUEsRUFBRUEsVUFBQ0EsUUFBUUE7b0JBQ3hDQSxRQUFRQSxDQUFDQSxLQUFLQSxHQUFHQSxXQUFXQSxDQUFBQTtnQkFDOUJBLENBQUNBLENBQUNBLENBQUNBO2dCQUNIQSxZQUFZQSxDQUFDQSxNQUFNQSxFQUFFQSxXQUFXQSxFQUFFQSxVQUFDQSxRQUFRQTtvQkFDekNBLFFBQVFBLENBQUNBLEtBQUtBLEdBQUdBLFlBQVlBLENBQUFBO2dCQUMvQkEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7Z0JBQ0hBLFlBQVlBLENBQUNBLE1BQU1BLEVBQUVBLE1BQU1BLEVBQUVBLFVBQUNBLFFBQVFBO29CQUNwQ0EsUUFBUUEsQ0FBQ0EsS0FBS0EsR0FBR0EsT0FBT0EsQ0FBQ0E7Z0JBQzNCQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFDSEEsWUFBWUEsQ0FBQ0EsTUFBTUEsRUFBRUEsVUFBVUEsRUFBRUEsVUFBQ0EsUUFBUUE7b0JBQ3hDQSxRQUFRQSxDQUFDQSxLQUFLQSxHQUFHQSxPQUFPQSxDQUFDQTtnQkFDM0JBLENBQUNBLENBQUNBLENBQUNBO2dCQUNIQSxjQUFjQSxDQUFDQSxNQUFNQSxDQUFDQSxDQUFDQTtZQUN6QkEsQ0FBQ0E7WUFFREEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsUUFBUUEsQ0FBQ0EsSUFBSUEsRUFBRUEsYUFBYUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7Z0JBQ3BDQSxNQUFNQSxDQUFDQSxRQUFRQSxHQUFHQSxDQUFDQSxVQUFVQSxFQUFFQSw0QkFBNEJBLEVBQUVBLGlCQUFpQkEsRUFBRUEsV0FBV0EsRUFBRUEsT0FBT0EsRUFBRUEsVUFBVUEsRUFBRUEsR0FBR0EsQ0FBQ0EsQ0FBQ0E7Z0JBQ3ZIQSxZQUFZQSxDQUFDQSxNQUFNQSxFQUFFQSxpQkFBaUJBLEVBQUVBLFVBQUNBLFFBQVFBO29CQUMvQ0EsY0FBR0EsQ0FBQ0EsS0FBS0EsQ0FBQ0EsVUFBVUEsRUFBRUEsTUFBTUEsQ0FBQ0EsQ0FBQ0E7b0JBQzlCQSxRQUFRQSxDQUFDQSxJQUFJQSxHQUFHQSxDQUFDQSxNQUFNQSxFQUFFQSxVQUFVQSxDQUFDQSxDQUFDQTtvQkFDckNBLFFBQVFBLENBQUNBLE9BQU9BLEdBQUdBLE1BQU1BLENBQUNBO2dCQUM1QkEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7WUFDTEEsQ0FBQ0E7WUFFREEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsUUFBUUEsQ0FBQ0EsSUFBSUEsRUFBRUEsU0FBU0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7Z0JBQ2hDQSxNQUFNQSxDQUFDQSxRQUFRQSxHQUFHQSxTQUFTQSxDQUFDQTtnQkFDNUJBLE1BQU1BLENBQUNBLElBQUlBLEdBQUdBO29CQUNaQSxtQkFBbUJBLEVBQUVBLENBQUNBLFVBQVVBLENBQUNBO29CQUNqQ0EsU0FBU0EsRUFBRUEsQ0FBQ0EsR0FBR0EsQ0FBQ0E7aUJBQ2pCQSxDQUFBQTtnQkFDREEsY0FBR0EsQ0FBQ0EsS0FBS0EsQ0FBQ0EsUUFBUUEsRUFBRUEsSUFBSUEsRUFBRUEsV0FBV0EsRUFBRUEsTUFBTUEsQ0FBQ0EsQ0FBQ0E7WUFDakRBLENBQUNBO1FBRUhBLENBQUNBLENBQUNBLENBQUNBO1FBR0hBLE9BQU9BLENBQUNBLFNBQVNBLENBQUNBLFlBQVlBLEVBQVFBLGlCQUFNQSxDQUFDQSxDQUFDQTtRQUM5Q0EsQUFDQUEsbURBRG1EQTtRQUNuREEsT0FBT0EsQ0FBQ0EsT0FBT0EsQ0FBQ0EsaUJBQU1BLENBQUNBLFdBQVdBLEVBQUVBLFVBQUNBLFVBQVVBLEVBQUVBLFFBQVFBO1lBQ3ZEQSxBQUNBQSwwQ0FEMENBO1lBQzFDQSxPQUFPQSxDQUFDQSxTQUFTQSxDQUFDQSxnQkFBZ0JBLEdBQUdBLFFBQVFBLEVBQUVBLFVBQVVBLENBQUNBLENBQUNBO1FBQzdEQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUNIQSxNQUFNQSxDQUFDQSxpQkFBTUEsQ0FBQ0E7SUFDaEJBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO0FBSU5BLENBQUNBLEVBMUVNLFVBQVUsS0FBVixVQUFVLFFBMEVoQjs7QUM1RUQsMkNBQTJDO0FBRTNDLElBQU8sVUFBVSxDQWtEaEI7QUFsREQsV0FBTyxVQUFVLEVBQUMsQ0FBQztJQUVqQkEsQUFDQUEscUNBRHFDQTtRQUMvQkEsbUJBQW1CQTtRQUN2QmtMLFNBRElBLG1CQUFtQkEsQ0FDSEEsT0FBc0JBO1lBQXRCQyxZQUFPQSxHQUFQQSxPQUFPQSxDQUFlQTtRQUMxQ0EsQ0FBQ0E7UUFDREQsc0JBQUlBLDJDQUFVQTtpQkFBZEE7Z0JBQ0VFLE1BQU1BLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLENBQUNBLElBQUlBLENBQUNBLE9BQU9BLENBQUNBLFVBQVVBLENBQUNBLHFCQUFVQSxDQUFDQSxVQUFVQSxDQUFDQSxFQUFFQSxVQUFDQSxTQUFTQTtvQkFDckVBLE1BQU1BLENBQUNBLFNBQVNBLENBQUNBLFFBQVFBLENBQUNBLElBQUlBLENBQUNBO2dCQUNqQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7WUFDTEEsQ0FBQ0E7OztXQUFBRjtRQUNEQSxzQkFBSUEsa0RBQWlCQTtpQkFBckJBO2dCQUNFRyxNQUFNQSxDQUFDQSxJQUFJQSxDQUFDQSxPQUFPQSxDQUFDQSxZQUFZQSxFQUFFQSxDQUFDQTtZQUNyQ0EsQ0FBQ0E7aUJBQ0RILFVBQXNCQSxTQUFnQkE7Z0JBQ3BDRyxJQUFJQSxDQUFDQSxPQUFPQSxDQUFDQSxZQUFZQSxDQUFDQSxTQUFTQSxDQUFDQSxDQUFDQTtZQUN2Q0EsQ0FBQ0E7OztXQUhBSDtRQUlIQSwwQkFBQ0E7SUFBREEsQ0FkQWxMLEFBY0NrTCxJQUFBbEw7SUFFREEsa0JBQU9BLENBQUNBLE9BQU9BLENBQUNBLGlCQUFpQkEsRUFBRUEsQ0FBQ0EsZ0JBQWdCQSxFQUFFQSxVQUFDQSxPQUFzQkE7UUFDM0VBLE1BQU1BLENBQUNBLElBQUlBLG1CQUFtQkEsQ0FBQ0EsT0FBT0EsQ0FBQ0EsQ0FBQ0E7SUFDMUNBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO0lBRUpBLEFBQ0FBLGdEQURnREE7SUFDaERBLGtCQUFPQSxDQUFDQSxPQUFPQSxDQUFDQSxrQkFBa0JBLEVBQUVBLGNBQU1BLE9BQUFBLDJCQUFnQkEsRUFBRUEsRUFBbEJBLENBQWtCQSxDQUFDQSxDQUFDQTtJQUU5REEsQUFDQUEsZ0NBRGdDQTtJQUNoQ0Esa0JBQU9BLENBQUNBLE9BQU9BLENBQUNBLG1CQUFtQkEsRUFBRUEsQ0FBQ0E7UUFDcENBLE1BQU1BLENBQUNBO1lBQ0xBLEtBQUtBLEVBQUVBLGNBQU1BLFdBQUlBLEVBQUpBLENBQUlBO1NBQ2xCQSxDQUFBQTtJQUNIQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtJQUVKQSxBQUNBQSxpR0FEaUdBO0lBQ2pHQSxrQkFBT0EsQ0FBQ0EsT0FBT0EsQ0FBQ0EsZ0JBQWdCQSxFQUFFQSxDQUFDQSxpQkFBaUJBLEVBQUVBLFVBQUNBLGVBQWVBO1FBQ3BFQSxNQUFNQSxDQUFDQSxlQUFlQSxDQUFDQSxjQUFjQSxDQUFDQSxDQUFDQTtJQUN6Q0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7SUFFSkEsa0JBQU9BLENBQUNBLE9BQU9BLENBQUNBLGtDQUFrQ0EsRUFBRUEsQ0FBQ0EsaUJBQWlCQSxFQUFFQSxVQUFDQSxlQUFlQTtRQUN0RkEsTUFBTUEsQ0FBQ0EsZUFBZUEsQ0FBQ0EsZ0NBQWdDQSxDQUFDQSxDQUFDQTtJQUMzREEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7SUFFSkEsa0JBQU9BLENBQUNBLE9BQU9BLENBQUNBLG9CQUFvQkEsRUFBRUEsQ0FBQ0EsaUJBQWlCQSxFQUFFQSxVQUFDQSxlQUFlQTtRQUN4RUEsTUFBTUEsQ0FBQ0EsZUFBZUEsQ0FBQ0Esa0JBQWtCQSxDQUFDQSxDQUFDQTtJQUM3Q0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7SUFFSkEsa0JBQU9BLENBQUNBLE9BQU9BLENBQUNBLGtCQUFrQkEsRUFBRUEsQ0FBQ0EsU0FBU0EsRUFBRUEsVUFBQ0EsT0FBT0E7UUFDdERBLE1BQU1BLENBQUNBLE9BQU9BLENBQUNBLEtBQUtBLENBQUNBLDhCQUFtQkEsRUFBRUEsQ0FBQ0EsQ0FBQ0E7SUFDOUNBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO0FBRU5BLENBQUNBLEVBbERNLFVBQVUsS0FBVixVQUFVLFFBa0RoQjs7QUNwREQsQUFJQSx5Q0FKeUM7QUFDekMsNENBQTRDO0FBQzVDLDJDQUEyQztBQUMzQywwQ0FBMEM7QUFDMUMsSUFBTyxVQUFVLENBK0VoQjtBQS9FRCxXQUFPLFVBQVUsRUFBQyxDQUFDO0lBRU5BLDZCQUFrQkEsR0FBR0EscUJBQVVBLENBQUNBLG9CQUFvQkEsRUFBRUEsQ0FBQ0EsUUFBUUEsRUFBRUEsaUJBQWlCQSxFQUFFQSxjQUFjQSxFQUFFQSxPQUFPQSxFQUFFQSxVQUFDQSxNQUFNQSxFQUFFQSxLQUE0QkEsRUFBRUEsWUFBWUEsRUFBRUEsS0FBcUJBO1FBRTlMQSxJQUFJQSxRQUFRQSxHQUFHQSxNQUFNQSxDQUFDQSxRQUFRQSxHQUE2QkEsSUFBSUEsWUFBWUEsQ0FBc0JBO1lBQy9GQSxVQUFVQSxFQUFFQSxLQUFLQTtZQUNqQkEsaUJBQWlCQSxFQUFFQSxJQUFJQTtZQUN2QkEsR0FBR0EsRUFBRUEsMkJBQWdCQSxFQUFFQTtTQUN4QkEsQ0FBQ0EsQ0FBQ0E7UUFFSEEsTUFBTUEsQ0FBQ0EsUUFBUUEsQ0FBQ0EsaUJBQWlCQSxHQUFHQSxVQUFDQSxJQUFJQTtZQUN2Q0EsSUFBSUEsTUFBTUEsR0FBR0EsSUFBSUEsVUFBVUEsRUFBRUEsQ0FBQ0E7WUFDOUJBLE1BQU1BLENBQUNBLE1BQU1BLEdBQUdBO2dCQUNkQSxFQUFFQSxDQUFDQSxDQUFDQSxNQUFNQSxDQUFDQSxVQUFVQSxLQUFLQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtvQkFDNUJBLGNBQUdBLENBQUNBLEtBQUtBLENBQUNBLGNBQWNBLEVBQUVBLElBQUlBLENBQUNBLENBQUNBO29CQUNoQ0EsSUFBSUEsSUFBSUEsR0FBR0EsTUFBTUEsQ0FBQ0EsTUFBTUEsQ0FBQ0E7b0JBQ3pCQSxJQUFJQSxHQUFHQSxHQUFHQSxJQUFJQSxDQUFDQTtvQkFDZkEsSUFBQUEsQ0FBQ0E7d0JBQ0NBLEdBQUdBLEdBQUdBLE9BQU9BLENBQUNBLFFBQVFBLENBQUNBLElBQUlBLENBQUNBLENBQUNBO29CQUMvQkEsQ0FBRUE7b0JBQUFBLEtBQUtBLENBQUNBLENBQUNBLEdBQUdBLENBQUNBLENBQUNBLENBQUNBO3dCQUNiQSxjQUFHQSxDQUFDQSxLQUFLQSxDQUFDQSw4QkFBOEJBLEVBQUVBLElBQUlBLENBQUNBLEtBQUtBLENBQUNBLElBQUlBLEVBQUVBLElBQUlBLEVBQUVBLEdBQUdBLENBQUNBLENBQUNBO3dCQUN0RUEsTUFBTUEsQ0FBQ0E7b0JBQ1RBLENBQUNBO29CQUNEQSxjQUFHQSxDQUFDQSxLQUFLQSxDQUFDQSxrQkFBa0JBLEVBQUVBLEdBQUdBLENBQUNBLENBQUNBO29CQUNuQ0EsK0JBQW9CQSxDQUFDQSxHQUFHQSxFQUFFQSxLQUFLQSxDQUFDQSxDQUFDQTtnQkFDbkNBLENBQUNBO1lBQ0hBLENBQUNBLENBQUFBO1lBQ0RBLE1BQU1BLENBQUNBLFVBQVVBLENBQUNBLElBQUlBLENBQUNBLEtBQUtBLENBQUNBLENBQUNBO1FBQ2hDQSxDQUFDQSxDQUFDQTtRQUVGQSxNQUFNQSxDQUFDQSxRQUFRQSxDQUFDQSxrQkFBa0JBLEdBQUdBLFVBQUNBLElBQUlBO1lBQ3hDQSxjQUFHQSxDQUFDQSxLQUFLQSxDQUFDQSxhQUFhQSxFQUFFQSxJQUFJQSxDQUFDQSxDQUFDQTtZQUMvQkEsaURBQWlEQTtRQUNuREEsQ0FBQ0EsQ0FBQ0E7UUFFRkEsTUFBTUEsQ0FBQ0EsUUFBUUEsQ0FBQ0EsYUFBYUEsR0FBR0EsVUFBQ0EsSUFBeUJBO1lBQ3hEQSxjQUFHQSxDQUFDQSxLQUFLQSxDQUFDQSxpQkFBaUJBLEVBQUVBLElBQUlBLENBQUNBLENBQUNBO1FBQ3JDQSxDQUFDQSxDQUFDQTtRQUVGQSxNQUFNQSxDQUFDQSxRQUFRQSxDQUFDQSxXQUFXQSxHQUFHQSxVQUFDQSxJQUFJQSxFQUFFQSxRQUFRQSxFQUFFQSxNQUFNQTtZQUNuREEsY0FBR0EsQ0FBQ0EsS0FBS0EsQ0FBQ0EsNkJBQTZCQSxFQUFFQSxRQUFRQSxFQUFFQSxXQUFXQSxFQUFFQSxNQUFNQSxDQUFDQSxDQUFDQTtRQUMxRUEsQ0FBQ0EsQ0FBQUE7SUFFTEEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7SUFFTUEsOEJBQW1CQSxHQUFHQSxxQkFBVUEsQ0FBQ0EscUJBQXFCQSxFQUFFQSxDQUFDQSxRQUFRQSxFQUFFQSxnQkFBZ0JBLEVBQUVBLFVBQUNBLE1BQU1BLEVBQUVBLE9BQXNCQTtRQUM5SEEsTUFBTUEsQ0FBQ0EsVUFBVUEsR0FBR0EsT0FBT0EsQ0FBQ0EsVUFBVUEsQ0FBQ0EsWUFBWUEsQ0FBQ0EsQ0FBQ0E7UUFDckRBLE1BQU1BLENBQUNBLGdCQUFnQkEsQ0FBQ0EsWUFBWUEsRUFBRUEsVUFBQ0EsUUFBUUEsRUFBRUEsUUFBUUE7WUFDeERBLEVBQUVBLENBQUNBLENBQUNBLFFBQVFBLEtBQUtBLFFBQVFBLENBQUNBLENBQUNBLENBQUNBO2dCQUMzQkEsTUFBTUEsQ0FBQ0EsU0FBU0EsR0FBR0EsT0FBT0EsQ0FBQ0EsWUFBWUEsRUFBRUEsQ0FBQ0E7WUFDM0NBLENBQUNBO1FBQ0ZBLENBQUNBLENBQUNBLENBQUNBO1FBQ0hBLE1BQU1BLENBQUNBLE1BQU1BLENBQUNBLFdBQVdBLEVBQUVBLFVBQUNBLFFBQVFBLEVBQUVBLFFBQVFBO1lBQzdDQSxFQUFFQSxDQUFDQSxDQUFDQSxRQUFRQSxLQUFLQSxRQUFRQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFDM0JBLEVBQUVBLENBQUNBLENBQUNBLFFBQVFBLEtBQUtBLFFBQVFBLENBQUNBLENBQUNBLENBQUNBO29CQUMzQkEsT0FBT0EsQ0FBQ0EsWUFBWUEsQ0FBQ0EsUUFBUUEsQ0FBQ0EsQ0FBQ0E7Z0JBQ2hDQSxDQUFDQTtZQUNGQSxDQUFDQTtRQUNGQSxDQUFDQSxDQUFDQSxDQUFDQTtJQUNKQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtJQUVRQSxtQkFBUUEsR0FBR0EscUJBQVVBLENBQUNBLFVBQVVBLEVBQUVBLENBQUNBLFFBQVFBLEVBQUVBLG1CQUFtQkEsRUFBRUEsaUJBQWlCQSxFQUFFQSxVQUFDQSxNQUFNQSxFQUFFQSxpQkFBNENBLEVBQUVBLGVBQWVBO1FBRXBLQSxNQUFNQSxDQUFDQSxPQUFPQSxHQUFHQSxTQUFTQSxDQUFDQTtRQUUzQkEsTUFBTUEsQ0FBQ0EsV0FBV0EsR0FBR0Esb0JBQVNBLEVBQUVBLENBQUNBO1FBRWpDQSxNQUFNQSxDQUFDQSxRQUFRQSxHQUFHQSxVQUFDQSxJQUFJQTtZQUNyQkEsTUFBTUEsQ0FBQ0EsdUJBQVlBLENBQUNBLElBQUlBLENBQUNBLENBQUNBO1FBQzVCQSxDQUFDQSxDQUFDQTtRQUVGQSxNQUFNQSxDQUFDQSxVQUFVQSxHQUFHQSxlQUFlQSxDQUFDQTtRQUVwQ0EsaUJBQWlCQSxDQUFDQSxLQUFLQSxDQUFDQSxVQUFDQSxRQUFRQTtZQUMvQkEsTUFBTUEsQ0FBQ0EsT0FBT0EsR0FBR0EsUUFBUUEsQ0FBQ0E7UUFDNUJBLENBQUNBLENBQUNBLENBQUNBO0lBRUxBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO0FBRU5BLENBQUNBLEVBL0VNLFVBQVUsS0FBVixVQUFVLFFBK0VoQjs7QUNuRkQsQUFDQSwyQ0FEMkM7QUFDM0MsSUFBTyxVQUFVLENBc0JoQjtBQXRCRCxXQUFPLFVBQVUsRUFBQyxDQUFDO0lBRVBBLDhCQUFtQkEsR0FBR0EscUJBQVVBLENBQUNBLHFCQUFxQkEsRUFBRUEsQ0FBQ0EsUUFBUUEsRUFBRUEsZ0JBQWdCQSxFQUFFQSxVQUFDQSxNQUFNQSxFQUFFQSxPQUFzQkE7UUFDOUhBLE1BQU1BLENBQUNBLE9BQU9BLEdBQUdBLE9BQU9BLENBQUNBO1FBQ3pCQSxNQUFNQSxDQUFDQSxnQkFBZ0JBLEdBQUdBLE9BQU9BLENBQUNBLFVBQVVBLENBQUNBLFlBQVlBLENBQUNBLENBQUNBO1FBQzNEQSxNQUFNQSxDQUFDQSxTQUFTQSxHQUFHQSxPQUFPQSxDQUFDQSxZQUFZQSxFQUFFQSxDQUFDQTtRQUMxQ0EsTUFBTUEsQ0FBQ0EsVUFBVUEsR0FBR0EsRUFBRUEsQ0FBQ0E7UUFDdkJBLE1BQU1BLENBQUNBLE1BQU1BLENBQUNBLFdBQVdBLEVBQUVBLFVBQUNBLFFBQVFBLEVBQUVBLFFBQVFBO1lBQzdDQSxFQUFFQSxDQUFDQSxDQUFDQSxRQUFRQSxLQUFLQSxRQUFRQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFDM0JBLE9BQU9BLENBQUNBLFlBQVlBLENBQUNBLFFBQVFBLENBQUNBLENBQUNBO1lBQ2hDQSxDQUFDQTtRQUNGQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUNIQSxNQUFNQSxDQUFDQSxNQUFNQSxDQUFDQSx3QkFBd0JBLEVBQUVBLFVBQUNBLFFBQVFBLEVBQUVBLFFBQVFBO1lBQzFEQSxFQUFFQSxDQUFDQSxDQUFDQSxRQUFRQSxLQUFLQSxRQUFRQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFDM0JBLE1BQU1BLENBQUNBLFNBQVNBLEdBQUdBLFFBQVFBLENBQUNBO1lBQzdCQSxDQUFDQTtRQUNGQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUNIQSxNQUFNQSxDQUFDQSxnQkFBZ0JBLENBQUNBLGtCQUFrQkEsRUFBRUEsVUFBQ0EsZ0JBQWdCQTtZQUM1REEsTUFBTUEsQ0FBQ0EsVUFBVUEsR0FBR0EsQ0FBQ0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsZ0JBQWdCQSxFQUFFQSxVQUFDQSxTQUFhQSxJQUFLQSxPQUFBQSxTQUFTQSxDQUFDQSxRQUFRQSxDQUFDQSxJQUFJQSxFQUF2QkEsQ0FBdUJBLENBQUNBLENBQUNBO1FBQ3pGQSxDQUFDQSxDQUFDQSxDQUFBQTtJQUNIQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtBQUVMQSxDQUFDQSxFQXRCTSxVQUFVLEtBQVYsVUFBVSxRQXNCaEI7O0FDdkJELHlDQUF5QztBQUN6Qyw0Q0FBNEM7QUFDNUMsMkNBQTJDO0FBRTNDLElBQU8sVUFBVSxDQW9SaEI7QUFwUkQsV0FBTyxVQUFVLEVBQUMsQ0FBQztJQUVqQkEsSUFBSUEsaUJBQWlCQSxHQUFHQSxrQkFBT0EsQ0FBQ0EsU0FBU0EsQ0FBQ0Esb0JBQW9CQSxFQUFFQSxDQUFDQSxnQkFBZ0JBLEVBQUVBLFVBQVVBLEVBQUVBLGNBQWNBLEVBQUVBLFVBQVVBLEVBQUVBLFNBQVNBLEVBQUVBLGlCQUFpQkEsRUFBRUEsaUJBQWlCQSxFQUFFQSxVQUFDQSxjQUF1Q0EsRUFBRUEsUUFBMkJBLEVBQUVBLFlBQW1DQSxFQUFFQSxRQUEyQkEsRUFBRUEsT0FBeUJBLEVBQUVBLGVBQWVBLEVBQUVBLGVBQWVBO1FBRTlXQSxJQUFJQSxHQUFHQSxHQUFHQSxNQUFNQSxDQUFDQSxHQUFHQSxDQUFDQSxxQkFBcUJBLENBQUNBLENBQUNBO1FBQzVDQSxJQUFJQSxLQUFLQSxHQUFHQSxlQUFlQSxDQUFDQTtRQUM1QkEsSUFBSUEsS0FBS0EsR0FBR0EsZUFBZUEsQ0FBQ0E7UUFFNUJBLE1BQU1BLENBQUNBO1lBQ0xBLFFBQVFBLEVBQUVBLEdBQUdBO1lBQ2JBLE9BQU9BLEVBQUVBLElBQUlBO1lBQ2JBLElBQUlBLEVBQUVBLFVBQUNBLEtBQUtBLEVBQUVBLE9BQU9BLEVBQUVBLElBQUlBO2dCQUN6QkEsS0FBS0EsQ0FBQ0EsS0FBS0EsR0FBR0EsS0FBS0EsQ0FBQ0E7Z0JBQ3BCQSxPQUFPQSxDQUFDQSxHQUFHQSxDQUFDQSxFQUFDQSxVQUFVQSxFQUFFQSxRQUFRQSxFQUFDQSxDQUFDQSxDQUFDQTtnQkFDcENBLEtBQUtBLENBQUNBLFNBQVNBLEdBQUdBLFVBQUNBLElBQVdBLEVBQUVBLEdBQVVBO29CQUN4Q0EsTUFBTUEsQ0FBQ0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7d0JBQ2JBLEtBQUtBLE1BQU1BOzRCQUNUQSxNQUFNQSxDQUFDQSxLQUFLQSxDQUFDQSxVQUFVQSxDQUFDQSxHQUFHQSxDQUFDQSxDQUFDQTt3QkFDL0JBLEtBQUtBLEtBQUtBOzRCQUNSQSxNQUFNQSxDQUFDQSxLQUFLQSxDQUFDQSxTQUFTQSxDQUFDQSxHQUFHQSxDQUFDQSxDQUFDQTt3QkFDOUJBLEtBQUtBLHVCQUF1QkE7NEJBQzFCQSxNQUFNQSxDQUFDQSxLQUFLQSxDQUFDQSwyQkFBMkJBLENBQUNBLEdBQUdBLENBQUNBLENBQUNBO3dCQUNoREEsS0FBS0EsU0FBU0E7NEJBQ1pBLE1BQU1BLENBQUNBLEtBQUtBLENBQUNBLGFBQWFBLENBQUNBLEdBQUdBLENBQUNBLENBQUNBO3dCQUNsQ0E7NEJBQ0VBLE1BQU1BLENBQUNBLFNBQVNBLENBQUNBO29CQUNyQkEsQ0FBQ0E7Z0JBQ0hBLENBQUNBLENBQUNBO2dCQUVGQSxLQUFLQSxDQUFDQSxVQUFVQSxHQUFHQSxLQUFLQSxDQUFDQTtnQkFFekJBLEtBQUtBLENBQUNBLHVCQUF1QkEsR0FBR0EsVUFBQ0EsT0FBT0E7b0JBQ3RDQSxPQUFPQSxDQUFDQSxRQUFRQSxHQUFHQSxDQUFDQSxPQUFPQSxFQUFFQSxFQUFFQSxDQUFDQSxDQUFDQTtnQkFDbkNBLENBQUNBLENBQUNBO2dCQUNGQSxLQUFLQSxDQUFDQSxVQUFVQSxHQUFHQSxVQUFDQSxNQUFNQTtvQkFDeEJBLEVBQUVBLENBQUNBLENBQUNBLEtBQUtBLENBQUNBLE9BQU9BLENBQUNBLENBQUNBLENBQUNBO3dCQUNsQkEsT0FBT0EsQ0FBQ0EsT0FBT0EsQ0FBQ0EsTUFBTUEsQ0FBQ0EsYUFBYUEsQ0FBQ0EsQ0FBQ0EsUUFBUUEsQ0FBQ0EsU0FBU0EsQ0FBQ0EsQ0FBQ0E7d0JBQzFEQSxLQUFLQSxDQUFDQSxPQUFPQSxDQUFDQSxZQUFZQSxDQUFDQSxNQUFNQSxDQUFDQSxhQUFhQSxDQUFDQSxDQUFDQSxPQUFPQSxDQUFDQSxVQUFDQSxRQUFRQTs0QkFDaEVBLFFBQVFBLENBQUNBLFdBQVdBLENBQUNBLE9BQU9BLENBQUNBLFVBQUNBLFVBQVVBO2dDQUN0Q0EsRUFBRUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsVUFBVUEsQ0FBQ0EsT0FBT0EsRUFBRUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7b0NBQzFCQSxVQUFVQSxDQUFDQSxRQUFRQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQTtvQ0FDMUJBLFVBQVVBLENBQUNBLFNBQVNBLENBQUNBLE9BQU9BLENBQUNBLFVBQUNBLENBQUNBO3dDQUM3QkEsS0FBS0EsQ0FBQ0EsVUFBVUEsQ0FBQ0E7NENBQ2ZBLGFBQWFBLEVBQUVBLENBQUNBLENBQUNBLE9BQU9BO3lDQUN6QkEsQ0FBQ0EsQ0FBQ0E7b0NBQ0xBLENBQUNBLENBQUNBLENBQUNBO2dDQUNMQSxDQUFDQTs0QkFDSEEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7d0JBQ0xBLENBQUNBLENBQUNBLENBQUNBO29CQUNMQSxDQUFDQTtnQkFDSEEsQ0FBQ0EsQ0FBQUE7Z0JBQ0RBLEtBQUtBLENBQUNBLFVBQVVBLEdBQUdBLFVBQUNBLE1BQU1BO29CQUN4QkEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsS0FBS0EsQ0FBQ0EsT0FBT0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7d0JBQ2xCQSxPQUFPQSxDQUFDQSxPQUFPQSxDQUFDQSxNQUFNQSxDQUFDQSxhQUFhQSxDQUFDQSxDQUFDQSxXQUFXQSxDQUFDQSxTQUFTQSxDQUFDQSxDQUFDQTt3QkFDN0RBLEtBQUtBLENBQUNBLE9BQU9BLENBQUNBLFlBQVlBLENBQUNBLE1BQU1BLENBQUNBLGFBQWFBLENBQUNBLENBQUNBLE9BQU9BLENBQUNBLFVBQUNBLFFBQVFBOzRCQUNoRUEsUUFBUUEsQ0FBQ0EsV0FBV0EsQ0FBQ0EsT0FBT0EsQ0FBQ0EsVUFBQ0EsVUFBVUE7Z0NBQ3RDQSxFQUFFQSxDQUFDQSxDQUFDQSxVQUFVQSxDQUFDQSxPQUFPQSxFQUFFQSxDQUFDQSxDQUFDQSxDQUFDQTtvQ0FDekJBLFVBQVVBLENBQUNBLFFBQVFBLENBQUNBLEtBQUtBLENBQUNBLENBQUNBO29DQUMzQkEsVUFBVUEsQ0FBQ0EsU0FBU0EsQ0FBQ0EsT0FBT0EsQ0FBQ0EsVUFBQ0EsQ0FBQ0E7d0NBQzdCQSxLQUFLQSxDQUFDQSxVQUFVQSxDQUFDQTs0Q0FDZkEsYUFBYUEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsT0FBT0E7eUNBQ3pCQSxDQUFDQSxDQUFDQTtvQ0FDTEEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7Z0NBQ0xBLENBQUNBOzRCQUNIQSxDQUFDQSxDQUFDQSxDQUFDQTt3QkFDTEEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7b0JBQ0xBLENBQUNBO2dCQUNIQSxDQUFDQSxDQUFBQTtnQkFDREEsQUFjQUE7Ozs7Ozs7Ozs7Ozs7a0JBREVBO2dCQUNGQSxLQUFLQSxDQUFDQSwwQkFBMEJBLEdBQUdBLFVBQUNBLE9BQU9BLEVBQUVBLElBQUlBLEVBQUVBLE1BQU1BLEVBQUVBLE9BQU9BO29CQUNoRUEsSUFBSUEsSUFBSUEsR0FBR0EsSUFBSUEsQ0FBQ0EsTUFBTUEsQ0FBQ0EsRUFBRUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsV0FBV0EsQ0FBQ0EsQ0FBQ0E7b0JBQzVDQSxPQUFPQSxDQUFDQSxTQUFTQSxHQUFHQSxDQUFFQSxRQUFRQSxFQUFFQSxFQUFFQSxTQUFTQSxFQUFFQSxFQUFFQSxFQUFFQSxJQUFJQSxFQUFFQSxFQUFFQSxFQUFFQSxrQkFBa0JBLEVBQUVBLElBQUlBLEVBQUVBLENBQUVBLENBQUNBO29CQUN4RkEsTUFBTUEsQ0FBQ0EsVUFBVUEsR0FBR0E7d0JBQ2xCQSxTQUFTQSxFQUFFQSxDQUFDQTt3QkFDWkEsV0FBV0EsRUFBRUEsU0FBU0E7cUJBQ3ZCQSxDQUFDQTtvQkFDRkEsTUFBTUEsQ0FBQ0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7d0JBQ2JBLEtBQUtBLEtBQUtBOzRCQUNSQSxLQUFLQSxDQUFDQTt3QkFDUkEsS0FBS0EsU0FBU0E7NEJBQ1pBLE1BQU1BLENBQUNBLE9BQU9BLEdBQUdBO2dDQUNmQSxDQUFFQSxZQUFZQSxFQUFFQSxFQUFFQSxLQUFLQSxFQUFFQSxDQUFDQSxPQUFPQSxDQUFDQSxFQUFFQSxDQUFFQTtnQ0FDdENBLENBQUVBLFlBQVlBLEVBQUVBLEVBQUVBLEtBQUtBLEVBQUVBLENBQUNBLE1BQU1BLENBQUNBLEVBQUVBLENBQUVBOzZCQUt0Q0EsQ0FBQ0E7NEJBQ0ZBLEtBQUtBLENBQUNBO3dCQUNSQSxLQUFLQSx1QkFBdUJBOzRCQUMxQkEsTUFBTUEsQ0FBQ0EsT0FBT0EsR0FBR0E7Z0NBQ2ZBLENBQUVBLFdBQVdBLEVBQUVBLEVBQUVBLEtBQUtBLEVBQUVBLFFBQVFBLEVBQUVBLENBQUVBO2dDQUNwQ0EsQ0FBRUEsWUFBWUEsRUFBRUEsRUFBRUEsS0FBS0EsRUFBRUEsQ0FBQ0EsT0FBT0EsQ0FBQ0EsRUFBRUEsQ0FBRUE7NkJBS3ZDQSxDQUFDQTs0QkFDRkEsS0FBS0EsQ0FBQ0E7b0JBQ1ZBLENBQUNBO29CQUNEQSxBQUNBQSw4Q0FEOENBO29CQUM5Q0EsTUFBTUEsQ0FBQ0EsT0FBT0EsQ0FBQ0E7Z0JBQ2pCQSxDQUFDQSxDQUFDQTtnQkFDRkEsU0FBU0EsV0FBV0EsQ0FBQ0EsUUFBUUEsRUFBRUEsTUFBTUE7b0JBQ25Dc0wsTUFBTUEsQ0FBQ0EsWUFBWUEsQ0FBQ0EsUUFBUUEsQ0FBQ0EsQ0FBQ0EsTUFBTUEsQ0FBQ0EsQ0FBQ0E7Z0JBQ3hDQSxDQUFDQTtnQkFDRHRMLFNBQVNBLGFBQWFBLENBQUNBLFFBQVFBLEVBQUVBLFNBQVNBLEVBQUVBLEtBQUtBO29CQUMvQ3VMLElBQUlBLE1BQU1BLEdBQUdBLEVBQUVBLENBQUNBO29CQUNoQkEsTUFBTUEsQ0FBQ0EsU0FBU0EsQ0FBQ0EsR0FBR0EsS0FBS0EsQ0FBQ0E7b0JBQzFCQSxNQUFNQSxDQUFDQSxXQUFXQSxDQUFDQSxRQUFRQSxFQUFFQSxNQUFNQSxDQUFDQSxDQUFDQTtnQkFDdkNBLENBQUNBO2dCQUNEdkwsU0FBU0EsY0FBY0EsQ0FBQ0EsUUFBUUEsRUFBRUEsU0FBU0EsRUFBRUEsTUFBTUE7b0JBQ2pEd0wsTUFBTUEsQ0FBQ0EsTUFBTUEsQ0FBQ0EsR0FBR0EsQ0FBQ0EsVUFBQ0EsS0FBS0E7d0JBQ3RCQSxNQUFNQSxDQUFDQSxhQUFhQSxDQUFDQSxRQUFRQSxFQUFFQSxTQUFTQSxFQUFFQSxLQUFLQSxDQUFDQSxDQUFDQTtvQkFDbkRBLENBQUNBLENBQUNBLENBQUNBO2dCQUNMQSxDQUFDQTtnQkFDRHhMLFNBQVNBLGlCQUFpQkEsQ0FBQ0EsUUFBUUEsRUFBRUEsUUFBUUEsRUFBRUEsU0FBU0EsRUFBRUEsTUFBTUE7b0JBQzlEeUwsTUFBTUEsQ0FBQ0EsT0FBT0EsQ0FBQ0EsVUFBQ0EsS0FBS0E7d0JBQ25CQSxJQUFJQSxHQUFHQSxHQUFHQSxLQUFLQSxDQUFDQSxNQUFNQSxDQUFDQSxJQUFJQSxLQUFLQSxDQUFDQSxXQUFXQSxDQUFDQSxJQUFJQSxLQUFLQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFBQTt3QkFDNURBLElBQUlBLFFBQVFBLEdBQUdBLFFBQVFBLENBQUNBLElBQUlBLENBQUNBLEdBQUdBLEdBQUdBLEdBQUdBLENBQUVBLENBQUNBO3dCQUN6Q0EsRUFBRUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsUUFBUUEsQ0FBQ0EsTUFBTUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7NEJBQ3JCQSxHQUFHQSxDQUFDQSxLQUFLQSxDQUFDQSxZQUFZQSxFQUFFQSxRQUFRQSxFQUFFQSxRQUFRQSxFQUFFQSxHQUFHQSxDQUFDQSxDQUFDQTs0QkFDakRBLFFBQVFBLENBQUNBLE1BQU1BLENBQUNBLFFBQVFBLENBQUNBLGFBQWFBLENBQUNBLFFBQVFBLEVBQUVBLFNBQVNBLEVBQUVBLEtBQUtBLENBQUNBLENBQUNBLENBQUNBLEtBQUtBLENBQUNBLENBQUNBLENBQUNBO3dCQUM5RUEsQ0FBQ0E7b0JBQ0hBLENBQUNBLENBQUNBLENBQUNBO2dCQUNMQSxDQUFDQTtnQkFDRHpMLFNBQVNBLGVBQWVBLENBQUNBLElBQUlBO29CQUN6QjBMLE1BQU1BLENBQUNBLHVCQUFZQSxDQUFDQSxJQUFJQSxDQUFDQSxLQUFLQSxLQUFLQSxDQUFDQSxVQUFVQSxDQUFDQSxpQkFBaUJBLENBQUNBO2dCQUNyRUEsQ0FBQ0E7Z0JBQ0QxTCxTQUFTQSxTQUFTQTtvQkFDaEIyTCxHQUFHQSxDQUFDQSxLQUFLQSxDQUFDQSxZQUFZQSxDQUFDQSxDQUFDQTtvQkFDeEJBLE9BQU9BLENBQUNBLEtBQUtBLEVBQUVBLENBQUNBO29CQUNoQkEsSUFBSUEsUUFBUUEsR0FBR0EsS0FBS0EsQ0FBQ0EsUUFBUUEsQ0FBQ0E7b0JBQzlCQSxJQUFJQSxzQkFBc0JBLEdBQUdBLEtBQUtBLENBQUNBLHNCQUFzQkEsQ0FBQ0E7b0JBQzFEQSxJQUFJQSxJQUFJQSxHQUFHQSxLQUFLQSxDQUFDQSxJQUFJQSxDQUFDQTtvQkFDdEJBLElBQUlBLEtBQUtBLEdBQUdBLEtBQUtBLENBQUNBLEtBQUtBLENBQUNBO29CQUN4QkEsQUFDQUEscUNBRHFDQTt3QkFDakNBLFFBQVFBLEdBQUdBLE9BQU9BLENBQUNBLE9BQU9BLENBQUNBLGNBQWNBLENBQUNBLEdBQUdBLENBQUNBLHVCQUF1QkEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7b0JBQzVFQSxJQUFJQSxVQUFVQSxHQUFHQSxRQUFRQSxDQUFDQSxJQUFJQSxDQUFDQSxXQUFXQSxDQUFDQSxDQUFDQTtvQkFDNUNBLElBQUlBLE9BQU9BLEdBQUdBLFFBQVFBLENBQUNBLElBQUlBLENBQUNBLFFBQVFBLENBQUNBLENBQUNBO29CQUN0Q0EsSUFBSUEsd0JBQXdCQSxHQUFHQSxRQUFRQSxDQUFDQSxJQUFJQSxDQUFDQSx5QkFBeUJBLENBQUNBLENBQUNBO29CQUV4RUEsVUFBVUEsQ0FBQ0EsTUFBTUEsQ0FBQ0EsY0FBY0EsQ0FBQ0EsY0FBY0EsQ0FBQ0EsR0FBR0EsQ0FBQ0Esc0JBQXNCQSxDQUFDQSxFQUFFQSxTQUFTQSxFQUFFQSxRQUFRQSxDQUFDQSxNQUFNQSxDQUFDQSxlQUFlQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtvQkFDM0hBLHdCQUF3QkEsQ0FBQ0EsTUFBTUEsQ0FBQ0EsY0FBY0EsQ0FBQ0EsY0FBY0EsQ0FBQ0EsR0FBR0EsQ0FBQ0Esb0NBQW9DQSxDQUFDQSxFQUFFQSx1QkFBdUJBLEVBQUVBLHNCQUFzQkEsQ0FBQ0EsTUFBTUEsQ0FBQ0EsZUFBZUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7b0JBRW5MQSxLQUFLQSxDQUFDQSxPQUFPQSxDQUFDQSxVQUFDQSxJQUFJQTt3QkFDakJBLElBQUlBLE1BQU1BLEdBQUdBLE9BQU9BLENBQUNBLE9BQU9BLENBQUNBLGFBQWFBLENBQUNBLGNBQWNBLENBQUNBLEdBQUdBLENBQUNBLDJCQUEyQkEsQ0FBQ0EsRUFBRUEsTUFBTUEsRUFBRUEsSUFBSUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7d0JBQzNHQSxJQUFJQSxZQUFZQSxHQUFHQSxPQUFPQSxDQUFDQSxPQUFPQSxDQUFDQSxNQUFNQSxDQUFDQSxJQUFJQSxDQUFDQSxnQkFBZ0JBLENBQUNBLENBQUNBLENBQUNBO3dCQUNsRUEsWUFBWUEsQ0FBQ0EsTUFBTUEsQ0FBQ0EsY0FBY0EsQ0FBQ0EsY0FBY0EsQ0FBQ0EsR0FBR0EsQ0FBQ0Esa0JBQWtCQSxDQUFDQSxFQUFFQSxLQUFLQSxFQUFFQSxJQUFJQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQSxDQUFDQTt3QkFDOUZBLE9BQU9BLENBQUNBLE1BQU1BLENBQUNBLE1BQU1BLENBQUNBLENBQUNBO29CQUN6QkEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7b0JBQ0hBLEFBQ0FBLHVGQUR1RkE7b0JBQ3ZGQSxPQUFPQSxDQUFDQSxNQUFNQSxDQUFDQSxRQUFRQSxDQUFDQSxRQUFRQSxDQUFDQSxDQUFDQSxLQUFLQSxDQUFDQSxDQUFDQSxDQUFDQTtvQkFDMUNBLFFBQVFBLENBQUNBO3dCQUFRQSxPQUFPQSxDQUFDQSxHQUFHQSxDQUFDQSxFQUFDQSxVQUFVQSxFQUFFQSxTQUFTQSxFQUFDQSxDQUFDQSxDQUFDQTtvQkFBQ0EsQ0FBQ0EsRUFBRUEsR0FBR0EsQ0FBQ0EsQ0FBQ0E7Z0JBQ2pFQSxDQUFDQTtnQkFFRDNMLFNBQVNBLE1BQU1BO29CQUNiNEwsS0FBS0EsQ0FBQ0EsS0FBS0EsQ0FBQ0EseUJBQXlCQSxFQUFFQTt3QkFDckNBLEdBQUdBLENBQUNBLEtBQUtBLENBQUNBLFFBQVFBLENBQUNBLENBQUNBO3dCQUNwQkEsSUFBSUEsUUFBUUEsR0FBR0EsS0FBS0EsQ0FBQ0EsUUFBUUEsQ0FBQ0E7d0JBQzlCQSxJQUFJQSxzQkFBc0JBLEdBQUdBLEtBQUtBLENBQUNBLHNCQUFzQkEsQ0FBQ0E7d0JBQzFEQSxJQUFJQSxJQUFJQSxHQUFHQSxLQUFLQSxDQUFDQSxJQUFJQSxDQUFDQTt3QkFDdEJBLElBQUlBLEtBQUtBLEdBQUdBLEtBQUtBLENBQUNBLEtBQUtBLENBQUNBO3dCQUN4QkEsSUFBSUEsUUFBUUEsR0FBR0EsT0FBT0EsQ0FBQ0EsSUFBSUEsQ0FBQ0Esa0JBQWtCQSxDQUFDQSxDQUFDQTt3QkFDaERBLElBQUlBLFFBQVFBLEdBQUdBLFFBQVFBLENBQUNBLElBQUlBLENBQUNBLGVBQWVBLENBQUNBLENBQUNBO3dCQUM5Q0EsUUFBUUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsVUFBQ0EsS0FBS0EsRUFBRUEsQ0FBQ0E7NEJBQ3JCQSxJQUFJQSxLQUFLQSxHQUFHQSxPQUFPQSxDQUFDQSxPQUFPQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTs0QkFDL0JBLElBQUlBLEdBQUdBLEdBQUdBLEtBQUtBLENBQUNBLElBQUlBLENBQUNBLElBQUlBLENBQUNBLENBQUNBOzRCQUMzQkEsR0FBR0EsQ0FBQ0EsS0FBS0EsQ0FBQ0EsT0FBT0EsRUFBRUEsR0FBR0EsQ0FBQ0EsQ0FBQ0E7NEJBQ3hCQSxFQUFFQSxDQUFDQSxDQUFDQSxJQUFJQSxDQUFDQSxPQUFPQSxDQUFDQSxHQUFHQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtnQ0FDdEJBLE1BQU1BLENBQUNBOzRCQUNUQSxDQUFDQTs0QkFDREEsSUFBSUEsSUFBSUEsR0FBR0EsS0FBS0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsV0FBV0EsQ0FBQ0EsQ0FBQ0E7NEJBQ25DQSxNQUFNQSxDQUFDQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQSxDQUFDQTtnQ0FDYkEsS0FBS0EsTUFBTUE7b0NBQ1RBLEVBQUVBLENBQUNBLENBQUNBLEdBQUdBLElBQUlBLEtBQUtBLENBQUNBLFVBQVVBLENBQUNBLENBQUNBLENBQUNBO3dDQUM1QkEsTUFBTUEsQ0FBQ0E7b0NBQ1RBLENBQUNBO29DQUNEQSxLQUFLQSxDQUFDQTtnQ0FDUkEsS0FBS0EsU0FBU0E7b0NBQ1pBLEVBQUVBLENBQUNBLENBQUNBLEdBQUdBLElBQUlBLEtBQUtBLENBQUNBLGFBQWFBLElBQUlBLHVCQUFZQSxDQUFDQSxLQUFLQSxDQUFDQSxhQUFhQSxDQUFDQSxHQUFHQSxDQUFDQSxDQUFDQSxJQUFJQSxLQUFLQSxDQUFDQSxVQUFVQSxDQUFDQSxpQkFBaUJBLENBQUNBLENBQUNBLENBQUNBO3dDQUMvR0EsSUFBSUEsT0FBT0EsR0FBR0EsS0FBS0EsQ0FBQ0EsYUFBYUEsQ0FBQ0EsR0FBR0EsQ0FBQ0EsQ0FBQ0E7d0NBQ3ZDQSxLQUFLQSxDQUFDQSxJQUFJQSxDQUFDQSxZQUFZQSxFQUFFQSxPQUFPQSxDQUFDQSxTQUFTQSxDQUFDQSxDQUFDQTt3Q0FDNUNBLE1BQU1BLENBQUNBO29DQUNUQSxDQUFDQTtvQ0FDREEsS0FBS0EsQ0FBQ0E7Z0NBQ1JBLEtBQUtBLEtBQUtBO29DQUNSQSxBQUtBQTs7OztzQ0FERUE7b0NBQ0ZBLEVBQUVBLENBQUNBLENBQUNBLEdBQUdBLElBQUlBLEtBQUtBLENBQUNBLFNBQVNBLENBQUNBLENBQUNBLENBQUNBO3dDQUMzQkEsTUFBTUEsQ0FBQ0E7b0NBQ1RBLENBQUNBO29DQUNEQSxLQUFLQSxDQUFDQTtnQ0FDUkEsS0FBS0EsdUJBQXVCQTtvQ0FDMUJBLEVBQUVBLENBQUNBLENBQUNBLEdBQUdBLElBQUlBLEtBQUtBLENBQUNBLDJCQUEyQkEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7d0NBQzdDQSxJQUFJQSxxQkFBcUJBLEdBQUdBLEtBQUtBLENBQUNBLDJCQUEyQkEsQ0FBQ0EsR0FBR0EsQ0FBQ0EsQ0FBQ0E7d0NBQ25FQSxLQUFLQSxDQUFDQSxJQUFJQSxDQUFDQSxZQUFZQSxFQUFFQSxxQkFBcUJBLENBQUNBLFNBQVNBLENBQUNBLENBQUNBO3dDQUMxREEsTUFBTUEsQ0FBQ0E7b0NBQ1RBLENBQUNBO29DQUNEQSxLQUFLQSxDQUFDQTtnQ0FDUkE7b0NBQ0VBLEdBQUdBLENBQUNBLEtBQUtBLENBQUNBLG9DQUFvQ0EsQ0FBQ0EsQ0FBQ0E7b0NBQ2hEQSxNQUFNQSxDQUFDQTs0QkFDWEEsQ0FBQ0E7NEJBQ0RBLEdBQUdBLENBQUNBLEtBQUtBLENBQUNBLFlBQVlBLEVBQUVBLEdBQUdBLENBQUNBLENBQUNBOzRCQUM3QkEsS0FBS0EsQ0FBQ0EsTUFBTUEsRUFBRUEsQ0FBQ0E7d0JBQ2pCQSxDQUFDQSxDQUFDQSxDQUFDQTt3QkFDSEEsSUFBSUEsVUFBVUEsR0FBR0EsT0FBT0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsV0FBV0EsQ0FBQ0EsQ0FBQ0E7d0JBQzNDQSxJQUFJQSx3QkFBd0JBLEdBQUdBLE9BQU9BLENBQUNBLElBQUlBLENBQUNBLHlCQUF5QkEsQ0FBQ0EsQ0FBQ0E7d0JBQ3ZFQSxJQUFJQSxPQUFPQSxHQUFHQSxPQUFPQSxDQUFDQSxJQUFJQSxDQUFDQSxRQUFRQSxDQUFDQSxDQUFDQTt3QkFFckNBLGlCQUFpQkEsQ0FBQ0EsVUFBVUEsRUFBRUEsY0FBY0EsQ0FBQ0EsR0FBR0EsQ0FBQ0Esc0JBQXNCQSxDQUFDQSxFQUFFQSxTQUFTQSxFQUFFQSxRQUFRQSxDQUFDQSxDQUFDQTt3QkFDL0ZBLGlCQUFpQkEsQ0FBQ0Esd0JBQXdCQSxFQUFFQSxjQUFjQSxDQUFDQSxHQUFHQSxDQUFDQSxvQ0FBb0NBLENBQUNBLEVBQUVBLHVCQUF1QkEsRUFBRUEsc0JBQXNCQSxDQUFDQSxDQUFDQTt3QkFDdkpBLGlCQUFpQkEsQ0FBQ0EsT0FBT0EsRUFBRUEsY0FBY0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsMkJBQTJCQSxDQUFDQSxFQUFFQSxNQUFNQSxFQUFFQSxLQUFLQSxDQUFDQSxDQUFDQTt3QkFDM0ZBLEtBQUtBLENBQUNBLE9BQU9BLENBQUNBLFVBQUNBLElBQUlBOzRCQUNqQkEsSUFBSUEsTUFBTUEsR0FBR0EsT0FBT0EsQ0FBQ0EsT0FBT0EsQ0FBQ0EsT0FBT0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsR0FBR0EsR0FBR0EsSUFBSUEsQ0FBQ0EsU0FBU0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7NEJBQ2pFQSxJQUFJQSxZQUFZQSxHQUFHQSxPQUFPQSxDQUFDQSxPQUFPQSxDQUFDQSxNQUFNQSxDQUFDQSxJQUFJQSxDQUFDQSxnQkFBZ0JBLENBQUNBLENBQUNBLENBQUNBOzRCQUNsRUEsaUJBQWlCQSxDQUFDQSxZQUFZQSxFQUFFQSxjQUFjQSxDQUFDQSxHQUFHQSxDQUFDQSxrQkFBa0JBLENBQUNBLEVBQUVBLEtBQUtBLEVBQUVBLElBQUlBLENBQUNBLElBQUlBLENBQUNBLENBQUNBO3dCQUM1RkEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7b0JBQ0xBLENBQUNBLENBQUNBLENBQUNBO2dCQUNMQSxDQUFDQTtnQkFFRDVMLFNBQVNBLGNBQWNBO29CQUNyQjZMLEdBQUdBLENBQUNBLEtBQUtBLENBQUNBLG9CQUFvQkEsQ0FBQ0EsQ0FBQ0E7b0JBQ2hDQSxFQUFFQSxDQUFDQSxDQUFDQSxPQUFPQSxDQUFDQSxRQUFRQSxFQUFFQSxDQUFDQSxNQUFNQSxLQUFLQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTt3QkFDcENBLFNBQVNBLEVBQUVBLENBQUNBO29CQUNkQSxDQUFDQTtvQkFBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0E7d0JBQ05BLE1BQU1BLEVBQUVBLENBQUNBO29CQUNYQSxDQUFDQTtvQkFDREEsSUFBSUEsQ0FBQ0EsTUFBTUEsQ0FBQ0EsS0FBS0EsQ0FBQ0EsQ0FBQ0E7Z0JBQ3JCQSxDQUFDQTtnQkFFRDdMLEtBQUtBLENBQUNBLEdBQUdBLENBQUNBLHdCQUF3QkEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsUUFBUUEsQ0FBQ0EsY0FBY0EsRUFBRUEsR0FBR0EsRUFBRUEsRUFBRUEsUUFBUUEsRUFBRUEsSUFBSUEsRUFBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7Z0JBQ3hGQSxVQUFVQSxDQUFDQSxjQUFjQSxFQUFFQSxHQUFHQSxDQUFDQSxDQUFDQTtZQUNsQ0EsQ0FBQ0E7U0FDRkEsQ0FBQ0E7SUFDSkEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7SUFFSkEsSUFBSUEscUJBQXFCQSxHQUFHQSxxQkFBVUEsQ0FBQ0EsdUJBQXVCQSxFQUFFQSxDQUFDQSxRQUFRQSxFQUFFQSxXQUFXQSxFQUFFQSxVQUFDQSxNQUFNQSxFQUFFQSxTQUE2QkE7UUFDNUhBLE1BQU1BLENBQUNBLFdBQVdBLEdBQUdBLFVBQUNBLE1BQU1BLEVBQUVBLElBQVdBO1lBQ3ZDQSxFQUFFQSxDQUFDQSxDQUFDQSxNQUFNQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFDWEEsSUFBSUEsU0FBU0EsR0FBR0EsdUJBQVlBLENBQUNBLE1BQU1BLENBQUNBLENBQUNBO2dCQUNyQ0EsSUFBSUEsRUFBRUEsR0FBR0Esa0JBQU9BLENBQUNBLE1BQU1BLENBQUNBLENBQUNBO2dCQUN6QkEsU0FBU0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsVUFBVUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsdUJBQXVCQSxFQUFFQSxTQUFTQSxFQUFFQSxJQUFJQSxFQUFFQSxFQUFFQSxDQUFDQSxDQUFDQSxDQUFDQTtZQUNoRkEsQ0FBQ0E7WUFBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0E7Z0JBQ05BLGNBQUdBLENBQUNBLElBQUlBLENBQUNBLDRCQUE0QkEsQ0FBQ0EsQ0FBQ0E7WUFDekNBLENBQUNBO1FBQ0hBLENBQUNBLENBQUFBO0lBQ0hBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO0lBRUpBLElBQUlBLFNBQVNBLEdBQUdBLG9CQUFvQkEsQ0FBQ0E7SUFFckNBLElBQUlBLGtCQUFrQkEsR0FBR0EscUJBQVVBLENBQUNBLFNBQVNBLEVBQUVBLENBQUNBLFFBQVFBLEVBQUVBLFdBQVdBLEVBQUVBLE9BQU9BLEVBQUVBLFVBQVVBLEVBQUVBLGNBQWNBLEVBQUVBLGlCQUFpQkEsRUFBQ0EsaUJBQWlCQSxFQUFFQSxrQkFBa0JBLEVBQUVBLFVBQUNBLE1BQU1BLEVBQUVBLFNBQVNBLEVBQUVBLEtBQUtBLEVBQUVBLFFBQVFBLEVBQUVBLFlBQVlBLEVBQUVBLGVBQWVBLEVBQUVBLGVBQWVBLEVBQUVBLGdCQUFnQkE7UUFDeFFBLE1BQU1BLENBQUNBLElBQUlBLEdBQUdBLFNBQVNBLENBQUNBO1FBQ3hCQSxNQUFNQSxDQUFDQSxVQUFVQSxHQUFHQSxlQUFlQSxDQUFDQTtRQUNwQ0EsTUFBTUEsQ0FBQ0EsS0FBS0EsR0FBR0EsZUFBZUEsQ0FBQ0E7UUFFL0JBLFVBQVVBLENBQUNBLFVBQVVBLENBQUNBLE1BQU1BLEVBQUVBLFNBQVNBLEVBQUVBLEtBQUtBLEVBQUVBLFFBQVFBLEVBQUVBLFlBQVlBLEVBQUVBLGVBQWVBLEVBQUVBLGVBQWVBLEVBQUVBLGdCQUFnQkEsQ0FBQ0EsQ0FBQ0E7SUFDOUhBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO0FBRU5BLENBQUNBLEVBcFJNLFVBQVUsS0FBVixVQUFVLFFBb1JoQjs7QUN4UkQseUNBQXlDO0FBQ3pDLDJDQUEyQztBQUUzQyxJQUFPLFVBQVUsQ0EyS2hCO0FBM0tELFdBQU8sVUFBVSxFQUFDLENBQUM7SUFFTkEsOEJBQW1CQSxHQUFHQSxxQkFBVUEsQ0FBQ0EscUJBQXFCQSxFQUFFQSxDQUFDQSxRQUFRQSxFQUFFQSxpQkFBaUJBLEVBQUVBLGtCQUFrQkEsRUFBRUEsaUJBQWlCQSxFQUFFQSxTQUFTQSxFQUFFQSxTQUFTQSxFQUFFQSxnQkFBZ0JBLEVBQUVBLGNBQWNBLEVBQUVBLFdBQVdBLEVBQUVBLGNBQWNBLEVBQUVBLE9BQU9BLEVBQUVBLFVBQVVBLEVBQUVBLGtCQUFrQkEsRUFDbFFBLFVBQUNBLE1BQU1BLEVBQUVBLGVBQWlEQSxFQUFFQSxnQkFBZ0JBLEVBQUVBLGVBQWVBLEVBQUVBLE9BQU9BLEVBQUVBLE9BQU9BLEVBQUVBLGNBQWNBLEVBQUVBLFlBQVlBLEVBQUVBLFNBQTZCQSxFQUFFQSxZQUFZQSxFQUFFQSxLQUFLQSxFQUFFQSxRQUFRQSxFQUFFQSxnQkFBZ0JBO1FBRTNOQSxNQUFNQSxDQUFDQSxVQUFVQSxHQUFHQSxlQUFlQSxDQUFDQTtRQUNwQ0EsTUFBTUEsQ0FBQ0EsS0FBS0EsR0FBR0EsZUFBZUEsQ0FBQ0E7UUFDL0JBLE1BQU1BLENBQUNBLGdCQUFnQkEsR0FBR0EsZ0JBQWdCQSxDQUFDQTtRQUUzQ0EsVUFBVUEsQ0FBQ0EsVUFBVUEsQ0FBQ0EsTUFBTUEsRUFBRUEsU0FBU0EsRUFBRUEsS0FBS0EsRUFBRUEsUUFBUUEsRUFBRUEsWUFBWUEsRUFBRUEsZUFBZUEsRUFBRUEsZUFBZUEsRUFBRUEsZ0JBQWdCQSxDQUFDQSxDQUFDQTtRQUU1SEEsQUFHQUE7O1dBREdBO2lCQUNNQSxVQUFVQTtZQUNqQnFKLElBQUlBLGFBQWFBLEdBQUdBLEVBQUVBLENBQUNBO1lBQ3ZCQSxFQUFFQSxDQUFDQSxDQUFDQSxNQUFNQSxDQUFDQSxZQUFZQSxJQUFJQSxNQUFNQSxDQUFDQSxNQUFNQSxJQUFJQSxNQUFNQSxDQUFDQSxpQkFBaUJBLENBQUNBLENBQUNBLENBQUNBO2dCQUNyRUEsNkJBQWtCQSxDQUFDQSxNQUFNQSxDQUFDQSxZQUFZQSxFQUFFQSxNQUFNQSxDQUFDQSxNQUFNQSxDQUFDQSxDQUFDQTtnQkFDdkRBLE1BQU1BLENBQUNBLE9BQU9BLEdBQUdBLElBQUlBLENBQUNBO2dCQUV0QkEsT0FBT0EsQ0FBQ0EsT0FBT0EsQ0FBQ0EsTUFBTUEsQ0FBQ0EsWUFBWUEsRUFBRUEsVUFBQ0EsV0FBV0E7b0JBQy9DQSxJQUFJQSxXQUFXQSxHQUFHQSxpQkFBaUJBLENBQUNBLFdBQVdBLENBQUNBLENBQUNBO29CQUNqREEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsV0FBV0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7d0JBQ2hCQSxhQUFhQSxDQUFDQSxXQUFXQSxDQUFDQSxHQUFHQTs0QkFDM0JBLFdBQVdBLEVBQUVBLFdBQVdBOzRCQUN4QkEsTUFBTUEsRUFBRUEsRUFBRUE7NEJBQ1ZBLFdBQVdBLEVBQUVBLElBQUlBOzRCQUNqQkEsYUFBYUEsRUFBRUEsRUFBRUE7NEJBQ2pCQSxNQUFNQSxFQUFFQSxnQkFBZ0JBO3lCQUN6QkEsQ0FBQUE7b0JBQ0hBLENBQUNBO2dCQUNIQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFDSEEsT0FBT0EsQ0FBQ0EsT0FBT0EsQ0FBQ0EsTUFBTUEsQ0FBQ0EsTUFBTUEsRUFBRUEsVUFBQ0EsS0FBS0E7b0JBQ25DQSxJQUFJQSxXQUFXQSxHQUFHQSxpQkFBaUJBLENBQUNBLEtBQUtBLENBQUNBLENBQUNBO29CQUMzQ0EsRUFBRUEsQ0FBQ0EsQ0FBQ0EsV0FBV0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7d0JBQ2hCQSxJQUFJQSxRQUFRQSxHQUFHQSxhQUFhQSxDQUFDQSxXQUFXQSxDQUFDQSxDQUFDQTt3QkFDMUNBLEVBQUVBLENBQUNBLENBQUNBLENBQUNBLFFBQVFBLENBQUNBLENBQUNBLENBQUNBOzRCQUNkQSxBQUNBQSxvSUFEb0lBOzRCQUNwSUEsT0FBT0EsQ0FBQ0EsR0FBR0EsQ0FBQ0Esd0RBQXdEQSxHQUFHQSxXQUFXQSxHQUFHQSxhQUFhQSxHQUFHQSxLQUFLQSxDQUFDQSxLQUFLQSxDQUFDQSxDQUFDQTt3QkFDcEhBLENBQUNBO3dCQUFDQSxJQUFJQSxDQUFDQSxDQUFDQTs0QkFDTkEsUUFBUUEsQ0FBQ0EsTUFBTUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsS0FBS0EsQ0FBQ0EsQ0FBQ0E7d0JBQzlCQSxDQUFDQTtvQkFDSEEsQ0FBQ0E7Z0JBQ0hBLENBQUNBLENBQUNBLENBQUNBO2dCQUVIQSxBQUtBQSx3R0FMd0dBO2dCQUd4R0EseUdBQXlHQTtvQkFFckdBLFNBQVNBLEdBQUdBLEVBQUVBLENBQUNBO2dCQUNuQkEsT0FBT0EsQ0FBQ0EsT0FBT0EsQ0FBQ0EsYUFBYUEsRUFBRUEsVUFBQ0EsWUFBWUEsRUFBRUEsR0FBR0E7b0JBQy9DQSxFQUFFQSxDQUFDQSxDQUFDQSxDQUFDQSxZQUFZQSxDQUFDQSxXQUFXQSxDQUFDQSxDQUFDQSxDQUFDQTt3QkFDOUJBLEFBQ0FBLHlCQUR5QkE7d0JBQ3pCQSxTQUFTQSxDQUFDQSxJQUFJQSxDQUFDQSxZQUFZQSxDQUFDQSxDQUFDQTt3QkFDN0JBLEFBQ0FBLDZDQUQ2Q0E7d0JBQzdDQSxZQUFZQSxDQUFDQSxhQUFhQSxDQUFDQSxJQUFJQSxDQUFDQSxZQUFZQSxDQUFDQSxDQUFDQTt3QkFDOUNBLE9BQU9BLENBQUNBLE9BQU9BLENBQUNBLGFBQWFBLEVBQUVBLFVBQUNBLElBQUlBOzRCQUNsQ0EsRUFBRUEsQ0FBQ0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsV0FBV0EsS0FBS0EsR0FBR0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7Z0NBQzdCQSxZQUFZQSxDQUFDQSxhQUFhQSxDQUFDQSxJQUFJQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQTs0QkFDeENBLENBQUNBO3dCQUNIQSxDQUFDQSxDQUFDQSxDQUFDQTtvQkFDTEEsQ0FBQ0E7Z0JBQ0hBLENBQUNBLENBQUNBLENBQUNBO2dCQUVIQSxPQUFPQSxDQUFDQSxPQUFPQSxDQUFDQSxNQUFNQSxDQUFDQSxpQkFBaUJBLEVBQUVBLFVBQUNBLGdCQUFnQkE7b0JBQ3pEQSxFQUFFQSxDQUFDQSxDQUFDQSxDQUFDQSxnQkFBZ0JBLENBQUNBLElBQUlBLENBQUNBLENBQUNBLENBQUNBO3dCQUMzQkEsZ0JBQWdCQSxDQUFDQSxJQUFJQSxHQUFHQSxrQkFBa0JBLENBQUNBO29CQUM3Q0EsQ0FBQ0E7b0JBQ0RBLE9BQU9BLENBQUNBLE9BQU9BLENBQUNBLGdCQUFnQkEsQ0FBQ0EsUUFBUUEsRUFBRUEsVUFBQ0EsT0FBT0E7d0JBQ2pEQSxJQUFJQSxJQUFJQSxHQUFHQSxPQUFPQSxDQUFDQSxJQUFJQSxDQUFDQTt3QkFDeEJBLElBQUlBLGlCQUFpQkEsR0FBR0EsT0FBT0EsQ0FBQ0EsaUJBQWlCQSxDQUFDQTt3QkFDbERBLEVBQUVBLENBQUNBLENBQUNBLGlCQUFpQkEsSUFBSUEsSUFBSUEsS0FBS0EsYUFBYUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7NEJBQ2hEQSxJQUFJQSxJQUFJQSxHQUFHQSxpQkFBaUJBLENBQUNBLElBQUlBLENBQUNBOzRCQUNsQ0EsRUFBRUEsQ0FBQ0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7Z0NBQ1RBLElBQUlBLElBQUlBLEdBQUdBLElBQUlBLENBQUNBLElBQUlBLENBQUNBO2dDQUNyQkEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsSUFBSUEsS0FBS0EsaUJBQWlCQSxDQUFDQSxDQUFDQSxDQUFDQTtvQ0FDcENBLElBQUlBLEdBQUdBLEdBQUdBLGlCQUFpQkEsQ0FBQ0EsR0FBR0EsSUFBSUEsUUFBUUEsQ0FBQ0E7b0NBQzVDQSxFQUFFQSxDQUFDQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQSxDQUFDQTt3Q0FDVEEsQUFDQUEsc0RBRHNEQTt3Q0FDdERBLE9BQU9BLENBQUNBLE9BQU9BLENBQUNBLGFBQWFBLEVBQUVBLFVBQUNBLFlBQVlBLEVBQUVBLEdBQUdBOzRDQUMvQ0EsSUFBSUEsRUFBRUEsR0FBR0EsSUFBSUEsQ0FBQ0EsT0FBT0EsQ0FBQ0EsWUFBWUEsRUFBRUEsQ0FBQ0EsYUFBYUEsRUFBRUEsWUFBWUEsRUFBRUEsUUFBUUEsRUFBRUEsSUFBSUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7NENBQ25GQSxFQUFFQSxDQUFDQSxDQUFDQSxFQUFFQSxJQUFJQSxDQUFDQSxFQUFFQSxDQUFDQSxJQUFJQSxLQUFLQSxpQkFBaUJBLElBQUlBLEVBQUVBLENBQUNBLElBQUlBLEtBQUtBLGFBQWFBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO2dEQUN2RUEsSUFBSUEsTUFBTUEsR0FBR0EsRUFBRUEsQ0FBQ0EsSUFBSUEsQ0FBQ0E7Z0RBQ3JCQSxFQUFFQSxDQUFDQSxDQUFDQSxNQUFNQSxLQUFLQSxJQUFJQSxDQUFDQSxDQUFDQSxDQUFDQTtvREFDcEJBLElBQUlBLFFBQVFBLEdBQUdBLElBQUlBLENBQUNBLE9BQU9BLENBQUNBLGdCQUFnQkEsRUFBRUEsQ0FBQ0EsVUFBVUEsRUFBRUEsb0JBQW9CQSxFQUFFQSxVQUFVQSxDQUFDQSxDQUFDQSxDQUFDQTtvREFDOUZBLElBQUlBLElBQUlBLEdBQUdBLEVBQUVBLENBQUNBO29EQUNkQSxJQUFJQSxZQUFZQSxHQUFHQSxRQUFRQSxHQUFHQSw0QkFBaUJBLENBQUNBLFFBQVFBLEVBQUVBLGVBQWVBLENBQUNBLGdCQUFnQkEsRUFBRUEsRUFBRUEsSUFBSUEsQ0FBQ0EsR0FBR0EsSUFBSUEsQ0FBQ0E7b0RBQzNHQSxJQUFJQSxrQkFBa0JBLEdBQUdBO3dEQUN2QkEsV0FBV0EsRUFBRUEsZ0JBQWdCQTt3REFDN0JBLE1BQU1BLEVBQUVBLGlCQUFpQkE7d0RBQ3pCQSxZQUFZQSxFQUFFQSxZQUFZQTt3REFDMUJBLEtBQUtBLEVBQUVBLElBQUlBO3FEQUNaQSxDQUFDQTtvREFDRkEsWUFBWUEsQ0FBQ0EsYUFBYUEsQ0FBQ0EsSUFBSUEsQ0FBQ0Esa0JBQWtCQSxDQUFDQSxDQUFDQTtnREFDdERBLENBQUNBOzRDQUNIQSxDQUFDQTt3Q0FDSEEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7b0NBQ0xBLENBQUNBO2dDQUNIQSxDQUFDQTs0QkFDSEEsQ0FBQ0E7d0JBQ0hBLENBQUNBO29CQUNIQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFDTEEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7Z0JBQ0hBLE1BQU1BLENBQUNBLFNBQVNBLEdBQUdBLFNBQVNBLENBQUNBO1lBQy9CQSxDQUFDQTtRQUNIQSxDQUFDQTtRQUVEckosQUFHQUE7O1dBREdBO2lCQUNNQSxpQkFBaUJBLENBQUNBLFdBQVdBO1lBQ3BDOEwsTUFBTUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsT0FBT0EsQ0FBQ0EsV0FBV0EsRUFBRUEsQ0FBQ0EsWUFBWUEsRUFBRUEsUUFBUUEsRUFBRUEsS0FBS0EsRUFBRUEsS0FBS0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7UUFDM0VBLENBQUNBO1FBRUQ5TCxNQUFNQSxDQUFDQSxZQUFZQSxHQUFHQSxjQUFNQSxrQ0FBZ0JBLEVBQWhCQSxDQUFnQkEsQ0FBQ0E7UUFDN0NBLE1BQU1BLENBQUNBLEtBQUtBLEdBQUdBLFdBQVdBLENBQUNBLFlBQVlBLENBQUNBLE1BQU1BLEVBQUVBLFVBQUNBLElBQWVBO1lBQzlEQSxJQUFJQSxLQUFLQSxHQUFHQSxDQUFDQSxDQUFDQTtZQUNkQSxJQUFJQSxXQUFXQSxHQUFHQSxDQUFDQSxDQUFDQTtZQUVwQkEsU0FBU0EsU0FBU0E7Z0JBQ2hCK0wsRUFBRUEsQ0FBQ0EsQ0FBQ0EsRUFBRUEsS0FBS0EsSUFBSUEsV0FBV0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7b0JBQzNCQSxJQUFJQSxFQUFFQSxDQUFDQTtnQkFDVEEsQ0FBQ0E7WUFDSEEsQ0FBQ0E7WUFFRC9MLElBQUlBLEdBQUdBLEdBQUdBLHdCQUFhQSxFQUFFQSxDQUFDQTtZQUMxQkEsS0FBS0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsQ0FDWkEsT0FBT0EsQ0FBQ0EsVUFBVUEsSUFBSUEsRUFBRUEsTUFBTUEsRUFBRUEsT0FBT0EsRUFBRUEsTUFBTUE7Z0JBQzdDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7b0JBQ1QsTUFBTSxDQUFDLE1BQU0sR0FBRyx1QkFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDekMsVUFBVSxFQUFFLENBQUM7Z0JBQ2YsQ0FBQztnQkFDRCxTQUFTLEVBQUUsQ0FBQztZQUNkLENBQUMsQ0FBQ0EsQ0FDRkEsS0FBS0EsQ0FBQ0EsVUFBVUEsSUFBSUEsRUFBRUEsTUFBTUEsRUFBRUEsT0FBT0EsRUFBRUEsTUFBTUE7Z0JBQzNDLGNBQUcsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxJQUFJLEdBQUcsR0FBRyxHQUFHLE1BQU0sQ0FBQyxDQUFDO2dCQUM5RCxTQUFTLEVBQUUsQ0FBQztZQUVkLENBQUMsQ0FBQ0EsQ0FBQ0E7WUFDTEEsR0FBR0EsR0FBR0EsOEJBQW1CQSxFQUFFQSxDQUFDQTtZQUM1QkEsS0FBS0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsQ0FDWkEsT0FBT0EsQ0FBQ0EsVUFBVUEsSUFBSUEsRUFBRUEsTUFBTUEsRUFBRUEsT0FBT0EsRUFBRUEsTUFBTUE7Z0JBQzdDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7b0JBQ1QsTUFBTSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO29CQUNqQyxVQUFVLEVBQUUsQ0FBQztnQkFDZixDQUFDO2dCQUNELFNBQVMsRUFBRSxDQUFDO1lBQ2QsQ0FBQyxDQUFDQSxDQUNGQSxLQUFLQSxDQUFDQSxVQUFVQSxJQUFJQSxFQUFFQSxNQUFNQSxFQUFFQSxPQUFPQSxFQUFFQSxNQUFNQTtnQkFDM0MsY0FBRyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLElBQUksR0FBRyxHQUFHLEdBQUcsTUFBTSxDQUFDLENBQUM7Z0JBQzlELFNBQVMsRUFBRSxDQUFDO1lBQ2QsQ0FBQyxDQUFDQSxDQUFDQTtZQUNMQSxHQUFHQSxHQUFHQSxtQ0FBd0JBLEVBQUVBLENBQUNBO1lBQ2pDQSxLQUFLQSxDQUFDQSxHQUFHQSxDQUFDQSxHQUFHQSxDQUFDQSxDQUNaQSxPQUFPQSxDQUFDQSxVQUFVQSxJQUFJQSxFQUFFQSxNQUFNQSxFQUFFQSxPQUFPQSxFQUFFQSxNQUFNQTtnQkFDN0MsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztvQkFDVCxNQUFNLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztvQkFDdEMsVUFBVSxFQUFFLENBQUM7Z0JBQ2YsQ0FBQztnQkFDRCxTQUFTLEVBQUUsQ0FBQztZQUNkLENBQUMsQ0FBQ0EsQ0FDRkEsS0FBS0EsQ0FBQ0EsVUFBVUEsSUFBSUEsRUFBRUEsTUFBTUEsRUFBRUEsT0FBT0EsRUFBRUEsTUFBTUE7Z0JBQzNDLGNBQUcsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxJQUFJLEdBQUcsR0FBRyxHQUFHLE1BQU0sQ0FBQyxDQUFDO2dCQUM5RCxTQUFTLEVBQUUsQ0FBQztZQUNkLENBQUMsQ0FBQ0EsQ0FBQ0E7UUFDUEEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7UUFFSEEsTUFBTUEsQ0FBQ0EsS0FBS0EsRUFBRUEsQ0FBQ0E7SUFDakJBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO0FBRVJBLENBQUNBLEVBM0tNLFVBQVUsS0FBVixVQUFVLFFBMktoQjs7QUM5S0QseUNBQXlDO0FBQ3pDLDRDQUE0QztBQUM1QywyQ0FBMkM7QUFFM0MsSUFBTyxVQUFVLENBbUVoQjtBQW5FRCxXQUFPLFVBQVUsRUFBQyxDQUFDO0lBRU5BLHdCQUFhQSxHQUFHQSxxQkFBVUEsQ0FBQ0EsZUFBZUEsRUFDbkRBLENBQUNBLFFBQVFBLEVBQUVBLGlCQUFpQkEsRUFBRUEsaUJBQWlCQSxFQUFFQSxpQkFBaUJBLEVBQUVBLGdCQUFnQkEsRUFBRUEsV0FBV0EsRUFBRUEsY0FBY0EsRUFBRUEsT0FBT0EsRUFBRUEsVUFBVUEsRUFBRUEsU0FBU0EsRUFBRUEsa0JBQWtCQSxFQUNuS0EsVUFBQ0EsTUFBTUEsRUFBRUEsZUFBa0RBLEVBQUVBLGVBQWVBLEVBQUVBLGVBQWVBLEVBQzVGQSxjQUF1Q0EsRUFBRUEsU0FBNkJBLEVBQUVBLFlBQVlBLEVBQUVBLEtBQUtBLEVBQUVBLFFBQVFBLEVBQUVBLE9BQU9BLEVBQUVBLGdCQUFnQkE7UUFFbklBLE1BQU1BLENBQUNBLFVBQVVBLEdBQUdBLGVBQWVBLENBQUNBO1FBQ3BDQSxNQUFNQSxDQUFDQSxLQUFLQSxHQUFHQSxlQUFlQSxDQUFDQTtRQUMvQkEsTUFBTUEsQ0FBQ0EsT0FBT0EsR0FBR0EsS0FBS0EsQ0FBQ0E7UUFDdkJBLE1BQU1BLENBQUNBLFFBQVFBLEdBQUdBLElBQUlBLENBQUNBO1FBRXZCQSxNQUFNQSxDQUFDQSxVQUFVQSxHQUFHQTtZQUNsQkEsVUFBVUEsRUFBRUE7Z0JBQ1ZBLG1CQUFtQkEsRUFBRUE7b0JBQ25CQSxRQUFRQSxFQUFFQSxjQUFjQSxDQUFDQSxHQUFHQSxDQUFDQSxvQkFBb0JBLENBQUNBO2lCQUNuREE7Z0JBQ0RBLGNBQWNBLEVBQUVBO29CQUNkQSxRQUFRQSxFQUFFQSxjQUFjQSxDQUFDQSxHQUFHQSxDQUFDQSxxQkFBcUJBLENBQUNBO2lCQUNwREE7Z0JBQ0RBLFdBQVdBLEVBQUVBO29CQUNYQSxRQUFRQSxFQUFFQSxjQUFjQSxDQUFDQSxHQUFHQSxDQUFDQSxzQkFBc0JBLENBQUNBO2lCQUNyREE7Z0JBQ0RBLGFBQWFBLEVBQUVBO29CQUNiQSxRQUFRQSxFQUFFQSxjQUFjQSxDQUFDQSxHQUFHQSxDQUFDQSxvQkFBb0JBLENBQUNBO2lCQUNuREE7Z0JBQ0RBLGVBQWVBLEVBQUVBO29CQUNmQSxNQUFNQSxFQUFFQSxJQUFJQTtpQkFDYkE7YUFDRkE7U0FDRkEsQ0FBQ0E7UUFFRkEsVUFBVUEsQ0FBQ0EsVUFBVUEsQ0FBQ0EsTUFBTUEsRUFBRUEsU0FBU0EsRUFBRUEsS0FBS0EsRUFBRUEsUUFBUUEsRUFBRUEsWUFBWUEsRUFBRUEsZUFBZUEsRUFBRUEsZUFBZUEsRUFBRUEsZ0JBQWdCQSxDQUFDQSxDQUFDQTtRQUU1SEEsTUFBTUEsQ0FBQ0EsR0FBR0EsQ0FBQ0Esd0JBQXdCQSxFQUFFQTtZQUNuQyxVQUFVLEVBQUUsQ0FBQztRQUNmLENBQUMsQ0FBQ0EsQ0FBQ0E7UUFFSEEsTUFBTUEsQ0FBQ0EsR0FBR0EsQ0FBQ0EsY0FBY0EsRUFBRUEsVUFBQ0EsTUFBTUE7WUFDaENBLFVBQVVBLEVBQUVBLENBQUNBO1FBQ2ZBLENBQUNBLENBQUNBLENBQUNBO1FBRUhBLE1BQU1BLENBQUNBLE1BQU1BLENBQUNBLFlBQVlBLEVBQUVBLFVBQUNBLFFBQVFBLEVBQUVBLFFBQVFBO1lBQzdDQSxVQUFVQSxFQUFFQSxDQUFDQTtRQUNmQSxDQUFDQSxFQUFFQSxJQUFJQSxDQUFDQSxDQUFDQTtRQUVUQSxNQUFNQSxDQUFDQSxPQUFPQSxHQUFHQTtZQUNmQSxNQUFNQSxDQUFDQSxPQUFPQSxHQUFHQSxDQUFDQSxNQUFNQSxDQUFDQSxPQUFPQSxDQUFDQTtZQUNqQ0EsSUFBSUEsQ0FBQ0EsTUFBTUEsQ0FBQ0EsTUFBTUEsQ0FBQ0EsQ0FBQ0E7UUFDdEJBLENBQUNBLENBQUNBO1FBRUZBLE1BQU1BLENBQUNBLFFBQVFBLEdBQUdBO1lBQ2hCQSxJQUFJQSxJQUFJQSxHQUFHQSxDQUFDQSxNQUFNQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQTtZQUN6QkEsMEJBQWVBLENBQUNBLGVBQWVBLEVBQUVBLE9BQU9BLEVBQUVBLGVBQWVBLENBQUNBLGdCQUFnQkEsRUFBRUEsRUFBRUEsSUFBSUEsQ0FBQ0EsQ0FBQ0E7UUFDdEZBLENBQUNBLENBQUNBO1FBRUZBLFVBQVVBLEVBQUVBLENBQUNBO1FBRWJBLFNBQVNBLFVBQVVBO1lBQ2pCcUosTUFBTUEsQ0FBQ0EsRUFBRUEsR0FBR0EsWUFBWUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0E7WUFDL0JBLE1BQU1BLENBQUNBLElBQUlBLEdBQUdBLE1BQU1BLENBQUNBLEtBQUtBLENBQUNBLE1BQU1BLENBQUNBLGVBQWVBLENBQUNBLGlCQUFpQkEsRUFBRUEsTUFBTUEsQ0FBQ0EsRUFBRUEsQ0FBQ0EsQ0FBQ0E7WUFDaEZBLEVBQUVBLENBQUNBLENBQUNBLE1BQU1BLENBQUNBLElBQUlBLENBQUNBLENBQUNBLENBQUNBO2dCQUNoQkEsTUFBTUEsQ0FBQ0EsUUFBUUEsR0FBR0Esb0JBQVNBLENBQUNBLE1BQU1BLENBQUNBLElBQUlBLENBQUNBLENBQUNBO1lBQzNDQSxDQUFDQTtZQUNEQSxJQUFJQSxDQUFDQSxNQUFNQSxDQUFDQSxNQUFNQSxDQUFDQSxDQUFDQTtRQUN0QkEsQ0FBQ0E7SUFDSHJKLENBQUNBLENBQUNBLENBQUNBLENBQUNBO0FBQ05BLENBQUNBLEVBbkVNLFVBQVUsS0FBVixVQUFVLFFBbUVoQjs7QUN2RUQseUNBQXlDO0FBQ3pDLDRDQUE0QztBQUM1QywyQ0FBMkM7QUFFM0MsSUFBTyxVQUFVLENBZ0NoQjtBQWhDRCxXQUFPLFVBQVUsRUFBQyxDQUFDO0lBRU5BLDRCQUFpQkEsR0FBR0EscUJBQVVBLENBQUNBLG1CQUFtQkEsRUFDM0RBLENBQUNBLFFBQVFBLEVBQUVBLGlCQUFpQkEsRUFBRUEsaUJBQWlCQSxFQUFFQSxrQkFBa0JBLEVBQUVBLGdCQUFnQkEsRUFBRUEsV0FBV0EsRUFBRUEsY0FBY0EsRUFBRUEsT0FBT0EsRUFBRUEsVUFBVUEsRUFBRUEsa0JBQWtCQSxFQUFFQSxnQkFBZ0JBLEVBQzNLQSxVQUFDQSxNQUFNQSxFQUFFQSxlQUFrREEsRUFBRUEsZUFBZUEsRUFBRUEsZ0JBQWdCQSxFQUM3RkEsY0FBdUNBLEVBQUVBLFNBQTZCQSxFQUFFQSxZQUFZQSxFQUFFQSxLQUFLQSxFQUFFQSxRQUFRQSxFQUFFQSxnQkFBZ0JBLEVBQUVBLE9BQWtDQTtRQUU5SkEsTUFBTUEsQ0FBQ0EsVUFBVUEsR0FBR0EsZUFBZUEsQ0FBQ0E7UUFDcENBLE1BQU1BLENBQUNBLEtBQUtBLEdBQUdBLGVBQWVBLENBQUNBO1FBQy9CQSxNQUFNQSxDQUFDQSxFQUFFQSxHQUFHQSxZQUFZQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQTtRQUMvQkEsTUFBTUEsQ0FBQ0EsTUFBTUEsR0FBR0EsZ0JBQWdCQSxDQUFDQTtRQUNqQ0EsTUFBTUEsQ0FBQ0EsTUFBTUEsR0FBR0EsT0FBT0EsQ0FBQ0EsV0FBV0EsQ0FBQ0EscUNBQXFDQSxDQUFDQSxDQUFDQTtRQUMzRUEsQUFFQUEsc0VBRnNFQTtRQUV0RUEsVUFBVUEsQ0FBQ0EsVUFBVUEsQ0FBQ0EsTUFBTUEsRUFBRUEsU0FBU0EsRUFBRUEsS0FBS0EsRUFBRUEsUUFBUUEsRUFBRUEsWUFBWUEsRUFBRUEsZUFBZUEsRUFBRUEsZUFBZUEsRUFBRUEsZ0JBQWdCQSxDQUFDQSxDQUFDQTtRQUU1SEEsTUFBTUEsQ0FBQ0EsR0FBR0EsQ0FBQ0EsY0FBY0EsRUFBRUEsVUFBQ0EsTUFBTUE7WUFDaENBLFVBQVVBLEVBQUVBLENBQUNBO1FBQ2ZBLENBQUNBLENBQUNBLENBQUNBO1FBRUhBLFVBQVVBLEVBQUVBLENBQUNBO1FBRWJBLFNBQVNBLFVBQVVBO1lBQ2pCcUosRUFBRUEsQ0FBQ0EsQ0FBQ0EsTUFBTUEsQ0FBQ0EsRUFBRUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7Z0JBQ2RBLE1BQU1BLENBQUNBLE1BQU1BLEdBQUdBLE1BQU1BLENBQUNBLEtBQUtBLENBQUNBLE1BQU1BLENBQUNBLGVBQWVBLENBQUNBLGlCQUFpQkEsRUFBRUEsTUFBTUEsQ0FBQ0EsRUFBRUEsQ0FBQ0EsQ0FBQ0E7Z0JBQ2xGQSxJQUFJQSxDQUFDQSxNQUFNQSxDQUFDQSxNQUFNQSxDQUFDQSxDQUFDQTtnQkFDcEJBLE1BQU1BLENBQUNBLE9BQU9BLEdBQUdBLElBQUlBLENBQUNBO1lBQ3hCQSxDQUFDQTtZQUFDQSxJQUFJQSxDQUFDQSxDQUFDQTtnQkFDTkEsTUFBTUEsQ0FBQ0EsT0FBT0EsR0FBR0EsSUFBSUEsQ0FBQ0E7WUFDeEJBLENBQUNBO1FBQ0hBLENBQUNBO0lBQ0hySixDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtBQUNOQSxDQUFDQSxFQWhDTSxVQUFVLEtBQVYsVUFBVSxRQWdDaEI7O0FDcENELHlDQUF5QztBQUN6QywyQ0FBMkM7QUFDM0Msc0NBQXNDO0FBRXRDLElBQU8sVUFBVSxDQW9JaEI7QUFwSUQsV0FBTyxVQUFVLEVBQUMsQ0FBQztJQUVOQSxrQkFBT0EsR0FBR0EscUJBQVVBLENBQUNBLFNBQVNBLEVBQUVBLENBQUNBLFFBQVFBLEVBQUVBLFVBQUNBLE1BQU1BO1FBQzNEQSxJQUFJQSxLQUFLQSxHQUFHQSxNQUFNQSxDQUFDQSxJQUFJQSxDQUFDQSxLQUFLQSxDQUFDQSxHQUFHQSxDQUFDQSxDQUFDQTtRQUNuQ0EsTUFBTUEsQ0FBQ0EsR0FBR0EsR0FBR0EsS0FBS0EsQ0FBQ0EsS0FBS0EsRUFBRUEsQ0FBQ0E7UUFDM0JBLE1BQU1BLENBQUNBLEtBQUtBLEdBQUdBLEtBQUtBLENBQUNBLElBQUlBLENBQUNBLEdBQUdBLENBQUNBLENBQUNBO0lBQ2pDQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtJQUVKQSxBQUNBQSwrQkFEK0JBO0lBQ3BCQSxlQUFJQSxHQUFHQSxxQkFBVUEsQ0FBQ0EsTUFBTUEsRUFBRUEsQ0FBQ0EsUUFBUUEsRUFBRUEsaUJBQWlCQSxFQUFFQSxnQkFBZ0JBLEVBQUVBLGlCQUFpQkEsRUFBRUEsaUJBQWlCQSxFQUFFQSxTQUFTQSxFQUFFQSxTQUFTQSxFQUFFQSxnQkFBZ0JBLEVBQUVBLGNBQWNBLEVBQUVBLFdBQVdBLEVBQUVBLGNBQWNBLEVBQUVBLE9BQU9BLEVBQUVBLFVBQVVBLEVBQUVBLGtCQUFrQkEsRUFDclBBLFVBQUNBLE1BQU1BLEVBQUVBLGVBQWtEQSxFQUFFQSxjQUF5Q0EsRUFBRUEsZUFBZUEsRUFBRUEsZUFBZUEsRUFBRUEsT0FBT0EsRUFBRUEsT0FBT0EsRUFBRUEsY0FBY0EsRUFBRUEsWUFBWUEsRUFBRUEsU0FBNkJBLEVBQUVBLFlBQVlBLEVBQUVBLEtBQUtBLEVBQUVBLFFBQVFBLEVBQUVBLGdCQUFnQkE7UUFFeFFBLE1BQU1BLENBQUNBLFVBQVVBLEdBQUdBLGVBQWVBLENBQUNBO1FBQ3BDQSxNQUFNQSxDQUFDQSxLQUFLQSxHQUFHQSxlQUFlQSxDQUFDQTtRQUMvQkEsTUFBTUEsQ0FBQ0EsR0FBR0EsQ0FBQ0Esd0JBQXdCQSxFQUFFQTtZQUNuQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3RCLENBQUMsQ0FBQ0EsQ0FBQ0E7UUFFSEEsTUFBTUEsQ0FBQ0EsVUFBVUEsR0FBR0EsS0FBS0EsQ0FBQ0EsdUJBQXVCQSxFQUFFQSxDQUFDQTtRQUVwREEsTUFBTUEsQ0FBQ0EsV0FBV0EsR0FBR0E7WUFDbkJBLElBQUlBLEVBQUVBLFlBQVlBO1lBQ2xCQSxxQkFBcUJBLEVBQUVBLElBQUlBO1lBQzNCQSx1QkFBdUJBLEVBQUVBLEtBQUtBO1lBQzlCQSxXQUFXQSxFQUFFQSxJQUFJQTtZQUNqQkEsYUFBYUEsRUFBRUEsRUFBRUE7WUFDakJBLGFBQWFBLEVBQUVBO2dCQUNiQSxVQUFVQSxFQUFFQSxTQUFTQSxDQUFDQSxNQUFNQSxFQUFFQSxDQUFDQSxHQUFHQSxDQUFDQSxJQUFJQSxFQUFFQTthQUMxQ0E7WUFDREEsVUFBVUEsRUFBRUE7Z0JBQ1ZBO29CQUNFQSxLQUFLQSxFQUFFQSxNQUFNQTtvQkFDYkEsV0FBV0EsRUFBRUEsTUFBTUE7b0JBQ25CQSxXQUFXQSxFQUFFQSxJQUFJQTtvQkFDakJBLFlBQVlBLEVBQUVBLGNBQWNBLENBQUNBLEdBQUdBLENBQUNBLGlCQUFpQkEsQ0FBQ0E7aUJBQ3BEQTtnQkFDREE7b0JBQ0VBLEtBQUtBLEVBQUVBLFlBQVlBO29CQUNuQkEsV0FBV0EsRUFBRUEsUUFBUUE7b0JBQ3JCQSxZQUFZQSxFQUFFQSxjQUFjQSxDQUFDQSxHQUFHQSxDQUFDQSxxQkFBcUJBLENBQUNBO2lCQUN4REE7Z0JBQ0RBLEVBQUVBLEtBQUtBLEVBQUVBLGFBQWFBLEVBQ3BCQSxXQUFXQSxFQUFFQSxRQUFRQSxFQUNyQkEsWUFBWUEsRUFBRUEsY0FBY0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsMkJBQTJCQSxDQUFDQSxFQUM5REE7Z0JBQ0RBO29CQUNFQSxLQUFLQSxFQUFFQSxlQUFlQTtvQkFDdEJBLFdBQVdBLEVBQUVBLFVBQVVBO2lCQUN4QkE7Z0JBQ0RBO29CQUNFQSxLQUFLQSxFQUFFQSxjQUFjQTtvQkFDckJBLFdBQVdBLEVBQUVBLEtBQUtBO29CQUNsQkEsWUFBWUEsRUFBRUEsY0FBY0EsQ0FBQ0EsR0FBR0EsQ0FBQ0Esa0JBQWtCQSxDQUFDQTtpQkFDckRBO2dCQUNEQTtvQkFDRUEsS0FBS0EsRUFBRUEsYUFBYUE7b0JBQ3BCQSxXQUFXQSxFQUFFQSxRQUFRQTtvQkFDckJBLFlBQVlBLEVBQUVBLGNBQWNBLENBQUNBLEdBQUdBLENBQUNBLG9CQUFvQkEsQ0FBQ0E7aUJBQ3ZEQTtnQkFDREE7b0JBQ0VBLEtBQUtBLEVBQUVBLE9BQU9BO29CQUNkQSxXQUFXQSxFQUFFQSxNQUFNQTtvQkFDbkJBLFlBQVlBLEVBQUVBLGNBQWNBLENBQUNBLEdBQUdBLENBQUNBLG1CQUFtQkEsQ0FBQ0E7aUJBQ3REQTtnQkFDREE7b0JBQ0VBLEtBQUtBLEVBQUVBLGFBQWFBO29CQUNwQkEsV0FBV0EsRUFBRUEsUUFBUUE7b0JBQ3JCQSxZQUFZQSxFQUFFQSxjQUFjQSxDQUFDQSxHQUFHQSxDQUFDQSxvQkFBb0JBLENBQUNBO2lCQUN2REE7Z0JBQ0RBO29CQUNFQSxLQUFLQSxFQUFFQSxRQUFRQTtvQkFDZkEsV0FBV0EsRUFBRUEsUUFBUUE7b0JBQ3JCQSxlQUFlQSxFQUFFQSxVQUFDQSxLQUFLQTt3QkFDckJBLEFBQ0FBLHVDQUR1Q0E7d0JBQ3ZDQSxNQUFNQSxDQUFDQSxVQUFVQSxDQUFDQSxXQUFXQSxDQUFDQSxLQUFLQSxDQUFDQSxNQUFNQSxDQUFDQSxDQUFDQTtvQkFDOUNBLENBQUNBO2lCQUNGQTthQUNGQTtTQUNGQSxDQUFDQTtRQUVGQSxNQUFNQSxDQUFDQSxRQUFRQSxHQUFHQTtZQUNoQkEsSUFBSUEsSUFBSUEsR0FBR0EsTUFBTUEsQ0FBQ0EsV0FBV0EsQ0FBQ0EsYUFBYUEsQ0FBQ0E7WUFDNUNBLEVBQUVBLENBQUNBLENBQUNBLENBQUNBLElBQUlBLElBQUlBLENBQUNBLElBQUlBLENBQUNBLE1BQU1BLENBQUNBLENBQUNBLENBQUNBO2dCQUMxQkEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsTUFBTUEsQ0FBQ0EsRUFBRUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7b0JBQ2RBLElBQUlBLElBQUlBLEdBQUdBLE1BQU1BLENBQUNBLElBQUlBLENBQUNBO29CQUN2QkEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7d0JBQ1RBLElBQUlBLEdBQUdBLENBQUNBLElBQUlBLENBQUNBLENBQUNBO29CQUNoQkEsQ0FBQ0E7Z0JBQ0hBLENBQUNBO1lBQ0hBLENBQUNBO1lBQ0RBLDBCQUFlQSxDQUFDQSxlQUFlQSxFQUFFQSxPQUFPQSxFQUFFQSxlQUFlQSxDQUFDQSxnQkFBZ0JBLEVBQUVBLEVBQUVBLElBQUlBLENBQUNBLENBQUNBO1FBQ3RGQSxDQUFDQSxDQUFDQTtRQUVGQSxVQUFVQSxDQUFDQSxVQUFVQSxDQUFDQSxNQUFNQSxFQUFFQSxTQUFTQSxFQUFFQSxLQUFLQSxFQUFFQSxRQUFRQSxFQUFFQSxZQUFZQSxFQUFFQSxlQUFlQSxFQUFFQSxlQUFlQSxFQUFFQSxnQkFBZ0JBLENBQUNBLENBQUNBO1FBRTVIQSxNQUFNQSxDQUFDQSxZQUFZQSxHQUFHQSxVQUFDQSxRQUFRQTtZQUM3QkEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsT0FBT0EsQ0FBQ0EsUUFBUUEsQ0FBQ0EsUUFBUUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7Z0JBQy9CQSxRQUFRQSxHQUFHQSxDQUFDQTtvQkFDVkEsRUFBRUEsRUFBRUEsUUFBUUE7aUJBQ2JBLENBQUNBLENBQUNBO1lBQ0xBLENBQUNBO1lBQ0RBLEVBQUVBLENBQUNBLDRCQUE0QkEsQ0FBbUNBO2dCQUNoRUEsVUFBVUEsRUFBRUEsUUFBUUE7Z0JBQ3BCQSxLQUFLQSxFQUFFQSxlQUFlQTtnQkFDdEJBLE9BQU9BLEVBQUVBLFVBQUNBLE1BQWNBO29CQUN0QkEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsTUFBTUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7d0JBQ1hBLFNBQVNBLGNBQWNBLENBQUNBLFFBQXVCQSxFQUFFQSxJQUFZQTs0QkFDM0RvSixFQUFFQSxDQUFDQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQSxDQUFDQTtnQ0FDVEEsY0FBR0EsQ0FBQ0EsS0FBS0EsQ0FBQ0EsWUFBWUEsRUFBRUEsa0JBQU9BLENBQUNBLElBQUlBLENBQUNBLENBQUNBLENBQUNBO2dDQUN2Q0EsY0FBY0EsQ0FBQ0EsTUFBTUEsQ0FBQ0E7b0NBQ3BCQSxFQUFFQSxFQUFFQSxrQkFBT0EsQ0FBQ0EsSUFBSUEsQ0FBQ0E7aUNBQ2xCQSxFQUFFQSxTQUFTQSxFQUFFQTtvQ0FDWkEsY0FBR0EsQ0FBQ0EsS0FBS0EsQ0FBQ0EsV0FBV0EsRUFBRUEsa0JBQU9BLENBQUNBLElBQUlBLENBQUNBLENBQUNBLENBQUNBO29DQUN0Q0EsY0FBY0EsQ0FBQ0EsUUFBUUEsRUFBRUEsUUFBUUEsQ0FBQ0EsS0FBS0EsRUFBRUEsQ0FBQ0EsQ0FBQ0E7Z0NBQzdDQSxDQUFDQSxFQUFFQSxVQUFDQSxLQUFLQTtvQ0FDUEEsY0FBR0EsQ0FBQ0EsS0FBS0EsQ0FBQ0Esa0JBQWtCQSxFQUFFQSxLQUFLQSxDQUFDQSxDQUFDQTtvQ0FDckNBLGNBQWNBLENBQUNBLFFBQVFBLEVBQUVBLFFBQVFBLENBQUNBLEtBQUtBLEVBQUVBLENBQUNBLENBQUNBO2dDQUM3Q0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7NEJBQ0xBLENBQUNBO3dCQUNIQSxDQUFDQTt3QkFDRHBKLGNBQWNBLENBQUNBLFFBQVFBLEVBQUVBLFFBQVFBLENBQUNBLEtBQUtBLEVBQUVBLENBQUNBLENBQUNBO29CQUM3Q0EsQ0FBQ0E7Z0JBQ0hBLENBQUNBO2dCQUNEQSxLQUFLQSxFQUFFQSxjQUFjQTtnQkFDckJBLE1BQU1BLEVBQUVBLHFDQUFxQ0E7Z0JBQzdDQSxNQUFNQSxFQUFFQSxRQUFRQTtnQkFDaEJBLE9BQU9BLEVBQUVBLFlBQVlBO2dCQUNyQkEsTUFBTUEsRUFBRUEsNkNBQTZDQTtnQkFDckRBLFdBQVdBLEVBQUVBLHFCQUFxQkE7YUFDbkNBLENBQUNBLENBQUNBLElBQUlBLEVBQUVBLENBQUNBO1FBQ1pBLENBQUNBLENBQUNBO0lBQ0pBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO0FBQ05BLENBQUNBLEVBcElNLFVBQVUsS0FBVixVQUFVLFFBb0loQjs7QUN4SUQseUNBQXlDO0FBQ3pDLDRDQUE0QztBQUM1QywyQ0FBMkM7QUFFM0MsSUFBTyxVQUFVLENBbURoQjtBQW5ERCxXQUFPLFVBQVUsRUFBQyxDQUFDO0lBRU5BLDBDQUErQkEsR0FBR0EscUJBQVVBLENBQUNBLGlDQUFpQ0EsRUFDdkZBLENBQUNBLFFBQVFBLEVBQUVBLGlCQUFpQkEsRUFBRUEsaUJBQWlCQSxFQUFFQSxnQkFBZ0JBLEVBQUVBLFdBQVdBLEVBQUVBLGNBQWNBLEVBQUVBLE9BQU9BLEVBQUVBLFVBQVVBLEVBQUVBLGtCQUFrQkEsRUFDcklBLFVBQUNBLE1BQU1BLEVBQUVBLGVBQWtEQSxFQUFFQSxlQUFlQSxFQUMzRUEsY0FBdUNBLEVBQUVBLFNBQTZCQSxFQUFFQSxZQUFZQSxFQUFFQSxLQUFLQSxFQUFFQSxRQUFRQSxFQUFFQSxnQkFBZ0JBO1FBRTFIQSxNQUFNQSxDQUFDQSxVQUFVQSxHQUFHQSxlQUFlQSxDQUFDQTtRQUNwQ0EsTUFBTUEsQ0FBQ0EsS0FBS0EsR0FBR0EsZUFBZUEsQ0FBQ0E7UUFDL0JBLE1BQU1BLENBQUNBLE9BQU9BLEdBQUdBLEtBQUtBLENBQUNBO1FBQ3ZCQSxNQUFNQSxDQUFDQSxRQUFRQSxHQUFHQSxJQUFJQSxDQUFDQTtRQUV2QkEsVUFBVUEsQ0FBQ0EsVUFBVUEsQ0FBQ0EsTUFBTUEsRUFBRUEsU0FBU0EsRUFBRUEsS0FBS0EsRUFBRUEsUUFBUUEsRUFBRUEsWUFBWUEsRUFBRUEsZUFBZUEsRUFBRUEsZUFBZUEsRUFBRUEsZ0JBQWdCQSxDQUFDQSxDQUFDQTtRQUU1SEEsTUFBTUEsQ0FBQ0EsVUFBVUEsR0FBR0E7WUFDbEJBLFVBQVVBLEVBQUVBO2dCQUNWQSxhQUFhQSxFQUFFQTtvQkFDYkEsUUFBUUEsRUFBRUEsY0FBY0EsQ0FBQ0EsR0FBR0EsQ0FBQ0Esb0JBQW9CQSxDQUFDQTtpQkFDbkRBO2FBQ0ZBO1NBQ0ZBLENBQUNBO1FBRUZBLE1BQU1BLENBQUNBLEdBQUdBLENBQUNBLHdCQUF3QkEsRUFBRUE7WUFDbkMsVUFBVSxFQUFFLENBQUM7UUFDZixDQUFDLENBQUNBLENBQUNBO1FBRUhBLE1BQU1BLENBQUNBLEdBQUdBLENBQUNBLGNBQWNBLEVBQUVBLFVBQUNBLE1BQU1BO1lBQ2hDQSxVQUFVQSxFQUFFQSxDQUFDQTtRQUNmQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUVIQSxNQUFNQSxDQUFDQSxNQUFNQSxDQUFDQSxZQUFZQSxFQUFFQSxVQUFDQSxRQUFRQSxFQUFFQSxRQUFRQTtZQUM3Q0EsVUFBVUEsRUFBRUEsQ0FBQ0E7UUFDZkEsQ0FBQ0EsRUFBRUEsSUFBSUEsQ0FBQ0EsQ0FBQ0E7UUFFVEEsTUFBTUEsQ0FBQ0EsT0FBT0EsR0FBR0E7WUFDZkEsTUFBTUEsQ0FBQ0EsT0FBT0EsR0FBR0EsQ0FBQ0EsTUFBTUEsQ0FBQ0EsT0FBT0EsQ0FBQ0E7WUFDakNBLElBQUlBLENBQUNBLE1BQU1BLENBQUNBLE1BQU1BLENBQUNBLENBQUNBO1FBQ3RCQSxDQUFDQSxDQUFDQTtRQUVGQSxVQUFVQSxFQUFFQSxDQUFDQTtRQUViQSxTQUFTQSxVQUFVQTtZQUNqQnFKLE1BQU1BLENBQUNBLEVBQUVBLEdBQUdBLFlBQVlBLENBQUNBLElBQUlBLENBQUNBLENBQUNBO1lBQy9CQSxNQUFNQSxDQUFDQSxJQUFJQSxHQUFHQSxNQUFNQSxDQUFDQSxLQUFLQSxDQUFDQSx3QkFBd0JBLENBQUNBLGVBQWVBLENBQUNBLGlCQUFpQkEsRUFBRUEsTUFBTUEsQ0FBQ0EsRUFBRUEsQ0FBQ0EsQ0FBQ0E7WUFDbEdBLEVBQUVBLENBQUNBLENBQUNBLE1BQU1BLENBQUNBLElBQUlBLENBQUNBLENBQUNBLENBQUNBO2dCQUNoQkEsTUFBTUEsQ0FBQ0EsUUFBUUEsR0FBR0Esb0JBQVNBLENBQUNBLE1BQU1BLENBQUNBLElBQUlBLENBQUNBLENBQUNBO1lBQzNDQSxDQUFDQTtZQUVEQSxJQUFJQSxDQUFDQSxNQUFNQSxDQUFDQSxNQUFNQSxDQUFDQSxDQUFDQTtRQUN0QkEsQ0FBQ0E7SUFDSHJKLENBQUNBLENBQUNBLENBQUNBLENBQUNBO0FBQ05BLENBQUNBLEVBbkRNLFVBQVUsS0FBVixVQUFVLFFBbURoQjs7QUN2REQseUNBQXlDO0FBQ3pDLDRDQUE0QztBQUM1QywyQ0FBMkM7QUFFM0MsSUFBTyxVQUFVLENBaUNoQjtBQWpDRCxXQUFPLFVBQVUsRUFBQyxDQUFDO0lBRU5BLDhDQUFtQ0EsR0FBR0EscUJBQVVBLENBQUNBLHFDQUFxQ0EsRUFDL0ZBLENBQUNBLFFBQVFBLEVBQUVBLGlCQUFpQkEsRUFBRUEsaUJBQWlCQSxFQUFFQSxrQkFBa0JBLEVBQUVBLGdCQUFnQkEsRUFBRUEsV0FBV0EsRUFBRUEsY0FBY0EsRUFBRUEsT0FBT0EsRUFBRUEsVUFBVUEsRUFBRUEsa0JBQWtCQSxFQUFFQSxnQkFBZ0JBLEVBQzNLQSxVQUFDQSxNQUFNQSxFQUFFQSxlQUFrREEsRUFBRUEsZUFBZUEsRUFBRUEsZ0JBQWdCQSxFQUM3RkEsY0FBdUNBLEVBQUVBLFNBQTZCQSxFQUFFQSxZQUFZQSxFQUFFQSxLQUFLQSxFQUFFQSxRQUFRQSxFQUFFQSxnQkFBZ0JBLEVBQUVBLE9BQWtDQTtRQUU5SkEsTUFBTUEsQ0FBQ0EsVUFBVUEsR0FBR0EsZUFBZUEsQ0FBQ0E7UUFDcENBLE1BQU1BLENBQUNBLEtBQUtBLEdBQUdBLGVBQWVBLENBQUNBO1FBQy9CQSxNQUFNQSxDQUFDQSxFQUFFQSxHQUFHQSxZQUFZQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQTtRQUMvQkEsTUFBTUEsQ0FBQ0EsTUFBTUEsR0FBR0EsZ0JBQWdCQSxDQUFDQTtRQUNqQ0EsY0FBR0EsQ0FBQ0EsS0FBS0EsQ0FBQ0EsVUFBVUEsRUFBRUEsTUFBTUEsQ0FBQ0EsTUFBTUEsQ0FBQ0EsQ0FBQ0E7UUFDckNBLE1BQU1BLENBQUNBLE1BQU1BLEdBQUdBLE9BQU9BLENBQUNBLFdBQVdBLENBQUNBLHVEQUF1REEsQ0FBQ0EsQ0FBQ0E7UUFDN0ZBLEFBRUFBLHlGQUZ5RkE7UUFFekZBLFVBQVVBLENBQUNBLFVBQVVBLENBQUNBLE1BQU1BLEVBQUVBLFNBQVNBLEVBQUVBLEtBQUtBLEVBQUVBLFFBQVFBLEVBQUVBLFlBQVlBLEVBQUVBLGVBQWVBLEVBQUVBLGVBQWVBLEVBQUVBLGdCQUFnQkEsQ0FBQ0EsQ0FBQ0E7UUFFNUhBLE1BQU1BLENBQUNBLEdBQUdBLENBQUNBLGNBQWNBLEVBQUVBLFVBQUNBLE1BQU1BO1lBQ2hDQSxVQUFVQSxFQUFFQSxDQUFDQTtRQUNmQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUVIQSxVQUFVQSxFQUFFQSxDQUFDQTtRQUViQSxTQUFTQSxVQUFVQTtZQUNqQnFKLEVBQUVBLENBQUNBLENBQUNBLE1BQU1BLENBQUNBLEVBQUVBLENBQUNBLENBQUNBLENBQUNBO2dCQUNkQSxNQUFNQSxDQUFDQSxNQUFNQSxHQUFHQSxNQUFNQSxDQUFDQSxLQUFLQSxDQUFDQSx3QkFBd0JBLENBQUNBLGVBQWVBLENBQUNBLGlCQUFpQkEsRUFBRUEsTUFBTUEsQ0FBQ0EsRUFBRUEsQ0FBQ0EsQ0FBQ0E7Z0JBQ3BHQSxJQUFJQSxDQUFDQSxNQUFNQSxDQUFDQSxNQUFNQSxDQUFDQSxDQUFDQTtnQkFDcEJBLE1BQU1BLENBQUNBLE9BQU9BLEdBQUdBLElBQUlBLENBQUNBO1lBQ3hCQSxDQUFDQTtZQUFDQSxJQUFJQSxDQUFDQSxDQUFDQTtnQkFDTkEsTUFBTUEsQ0FBQ0EsT0FBT0EsR0FBR0EsSUFBSUEsQ0FBQ0E7WUFDeEJBLENBQUNBO1FBQ0hBLENBQUNBO0lBQ0hySixDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtBQUNOQSxDQUFDQSxFQWpDTSxVQUFVLEtBQVYsVUFBVSxRQWlDaEI7O0FDckNELHlDQUF5QztBQUN6Qyw0Q0FBNEM7QUFDNUMsMkNBQTJDO0FBRTNDLElBQU8sVUFBVSxDQTBGaEI7QUExRkQsV0FBTyxVQUFVLEVBQUMsQ0FBQztJQUVOQSxpQ0FBc0JBLEdBQUdBLHFCQUFVQSxDQUFDQSx3QkFBd0JBLEVBQ3JFQSxDQUFDQSxRQUFRQSxFQUFFQSxpQkFBaUJBLEVBQUVBLGtDQUFrQ0EsRUFBRUEsZ0JBQWdCQSxFQUFFQSxpQkFBaUJBLEVBQUVBLGdCQUFnQkEsRUFBRUEsV0FBV0EsRUFBRUEsY0FBY0EsRUFBRUEsT0FBT0EsRUFBRUEsVUFBVUEsRUFBRUEsa0JBQWtCQSxFQUMzTEEsVUFBQ0EsTUFBTUEsRUFBRUEsZUFBa0RBLEVBQUVBLGdDQUEyREEsRUFBRUEsY0FBeUNBLEVBQUVBLGVBQWVBLEVBQ25MQSxjQUF1Q0EsRUFBRUEsU0FBNkJBLEVBQUVBLFlBQVlBLEVBQUVBLEtBQUtBLEVBQUVBLFFBQVFBLEVBQUVBLGdCQUFnQkE7UUFFMUhBLE1BQU1BLENBQUNBLFVBQVVBLEdBQUdBLGVBQWVBLENBQUNBO1FBQ3BDQSxNQUFNQSxDQUFDQSxLQUFLQSxHQUFHQSxlQUFlQSxDQUFDQTtRQUUvQkEsTUFBTUEsQ0FBQ0EsV0FBV0EsR0FBR0E7WUFDbkJBLElBQUlBLEVBQUVBLDhCQUE4QkE7WUFDcENBLHFCQUFxQkEsRUFBRUEsSUFBSUE7WUFDM0JBLHVCQUF1QkEsRUFBRUEsS0FBS0E7WUFDOUJBLFdBQVdBLEVBQUVBLElBQUlBO1lBQ2pCQSxhQUFhQSxFQUFFQSxFQUFFQTtZQUNqQkEsYUFBYUEsRUFBRUE7Z0JBQ2JBLFVBQVVBLEVBQUVBLFNBQVNBLENBQUNBLE1BQU1BLEVBQUVBLENBQUNBLEdBQUdBLENBQUNBLElBQUlBLEVBQUVBO2FBQzFDQTtZQUNEQSxVQUFVQSxFQUFFQTtnQkFDVkEsRUFBRUEsS0FBS0EsRUFBRUEsTUFBTUEsRUFDYkEsV0FBV0EsRUFBRUEsTUFBTUEsRUFDbkJBLFlBQVlBLEVBQUVBLGNBQWNBLENBQUNBLEdBQUdBLENBQUNBLGlCQUFpQkEsQ0FBQ0EsRUFDcERBO2dCQUNEQSxFQUFFQSxLQUFLQSxFQUFFQSxXQUFXQSxFQUNsQkEsV0FBV0EsRUFBRUEsTUFBTUEsRUFDbkJBLFlBQVlBLEVBQUVBLGNBQWNBLENBQUNBLEdBQUdBLENBQUNBLCtCQUErQkEsQ0FBQ0EsRUFDakVBLGVBQWVBLEVBQUVBLFVBQUNBLEtBQUtBO29CQUNyQkEsQUFDQUEsc0NBRHNDQTt3QkFDbENBLEtBQUtBLEdBQUdBLEtBQUtBLENBQUNBLFlBQVlBLENBQUNBLEtBQUtBLElBQUlBLENBQUNBLENBQUNBO29CQUMxQ0EsSUFBSUEsS0FBS0EsR0FBR0EsS0FBS0EsQ0FBQ0EsWUFBWUEsQ0FBQ0EsS0FBS0EsSUFBSUEsQ0FBQ0EsQ0FBQ0E7b0JBQzFDQSxJQUFJQSxPQUFPQSxHQUFHQSxLQUFLQSxDQUFDQSxZQUFZQSxDQUFDQSxPQUFPQSxJQUFJQSxDQUFDQSxDQUFDQTtvQkFDOUNBLElBQUlBLEtBQUtBLEdBQUdBLEtBQUtBLENBQUNBLFlBQVlBLENBQUNBLEtBQUtBLElBQUlBLENBQUNBLENBQUNBO29CQUMxQ0EsTUFBTUEsQ0FBQ0EsS0FBS0EsR0FBR0EsS0FBS0EsR0FBR0EsT0FBT0EsR0FBR0EsS0FBS0EsQ0FBQ0E7Z0JBQ3pDQSxDQUFDQSxFQUNGQTtnQkFDREEsRUFBRUEsS0FBS0EsRUFBRUEsV0FBV0EsRUFDbEJBLFdBQVdBLEVBQUVBLFVBQVVBLEVBQ3ZCQSxZQUFZQSxFQUFDQSxjQUFjQSxDQUFDQSxHQUFHQSxDQUFDQSxzQkFBc0JBLENBQUNBLEVBQ3hEQTtnQkFDREEsRUFBRUEsS0FBS0EsRUFBRUEsYUFBYUEsRUFDcEJBLFdBQVdBLEVBQUVBLFFBQVFBLEVBQ3JCQSxZQUFZQSxFQUFFQSxjQUFjQSxDQUFDQSxHQUFHQSxDQUFDQSxvQkFBb0JBLENBQUNBLEVBQ3ZEQTtnQkFDREEsRUFBRUEsS0FBS0EsRUFBRUEsYUFBYUEsRUFDcEJBLFdBQVdBLEVBQUVBLFFBQVFBLEVBQ3JCQSxZQUFZQSxFQUFFQSxjQUFjQSxDQUFDQSxHQUFHQSxDQUFDQSwyQkFBMkJBLENBQUNBLEVBQzlEQTthQUNGQTtTQUNGQSxDQUFDQTtRQUVGQSxVQUFVQSxDQUFDQSxVQUFVQSxDQUFDQSxNQUFNQSxFQUFFQSxTQUFTQSxFQUFFQSxLQUFLQSxFQUFFQSxRQUFRQSxFQUFFQSxZQUFZQSxFQUFFQSxlQUFlQSxFQUFFQSxlQUFlQSxFQUFFQSxnQkFBZ0JBLENBQUNBLENBQUNBO1FBRTVIQSxNQUFNQSxDQUFDQSxZQUFZQSxHQUFHQSxVQUFDQSxRQUFRQTtZQUM3QkEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsT0FBT0EsQ0FBQ0EsUUFBUUEsQ0FBQ0EsUUFBUUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7Z0JBQy9CQSxRQUFRQSxHQUFHQSxDQUFDQTtvQkFDVkEsRUFBRUEsRUFBRUEsUUFBUUE7aUJBQ2JBLENBQUNBLENBQUNBO1lBQ0xBLENBQUNBO1lBQ0RBLEVBQUVBLENBQUNBLDRCQUE0QkEsQ0FBbUNBO2dCQUNoRUEsVUFBVUEsRUFBRUEsUUFBUUE7Z0JBQ3BCQSxLQUFLQSxFQUFFQSxlQUFlQTtnQkFDdEJBLE9BQU9BLEVBQUVBLFVBQUNBLE1BQWNBO29CQUN0QkEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsTUFBTUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7d0JBQ1hBLFNBQVNBLGNBQWNBLENBQUNBLFFBQXVCQSxFQUFFQSxJQUFZQTs0QkFDM0RvSixFQUFFQSxDQUFDQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQSxDQUFDQTtnQ0FDVEEsY0FBR0EsQ0FBQ0EsS0FBS0EsQ0FBQ0EsWUFBWUEsRUFBRUEsa0JBQU9BLENBQUNBLElBQUlBLENBQUNBLENBQUNBLENBQUNBO2dDQUN2Q0EsZ0NBQWdDQSxDQUFDQSxNQUFNQSxDQUFDQTtvQ0FDdENBLEVBQUVBLEVBQUVBLGtCQUFPQSxDQUFDQSxJQUFJQSxDQUFDQTtpQ0FDbEJBLEVBQUVBLFNBQVNBLEVBQUVBO29DQUNaQSxjQUFHQSxDQUFDQSxLQUFLQSxDQUFDQSxXQUFXQSxFQUFFQSxrQkFBT0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7b0NBQ3RDQSxjQUFjQSxDQUFDQSxRQUFRQSxFQUFFQSxRQUFRQSxDQUFDQSxLQUFLQSxFQUFFQSxDQUFDQSxDQUFDQTtnQ0FDN0NBLENBQUNBLEVBQUVBLFVBQUNBLEtBQUtBO29DQUNQQSxjQUFHQSxDQUFDQSxLQUFLQSxDQUFDQSxrQkFBa0JBLEVBQUVBLEtBQUtBLENBQUNBLENBQUNBO29DQUNyQ0EsY0FBY0EsQ0FBQ0EsUUFBUUEsRUFBRUEsUUFBUUEsQ0FBQ0EsS0FBS0EsRUFBRUEsQ0FBQ0EsQ0FBQ0E7Z0NBQzdDQSxDQUFDQSxDQUFDQSxDQUFDQTs0QkFDTEEsQ0FBQ0E7d0JBQ0hBLENBQUNBO3dCQUNEcEosY0FBY0EsQ0FBQ0EsUUFBUUEsRUFBRUEsUUFBUUEsQ0FBQ0EsS0FBS0EsRUFBRUEsQ0FBQ0EsQ0FBQ0E7b0JBQzdDQSxDQUFDQTtnQkFDSEEsQ0FBQ0E7Z0JBQ0RBLEtBQUtBLEVBQUVBLGlDQUFpQ0E7Z0JBQ3hDQSxNQUFNQSxFQUFFQSx3REFBd0RBO2dCQUNoRUEsTUFBTUEsRUFBRUEsUUFBUUE7Z0JBQ2hCQSxPQUFPQSxFQUFFQSxZQUFZQTtnQkFDckJBLE1BQU1BLEVBQUVBLDZDQUE2Q0E7Z0JBQ3JEQSxXQUFXQSxFQUFFQSxxQkFBcUJBO2FBQ25DQSxDQUFDQSxDQUFDQSxJQUFJQSxFQUFFQSxDQUFDQTtRQUNaQSxDQUFDQSxDQUFDQTtJQUNKQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtBQUNOQSxDQUFDQSxFQTFGTSxVQUFVLEtBQVYsVUFBVSxRQTBGaEI7O0FDOUZELHlDQUF5QztBQUN6Qyw0Q0FBNEM7QUFDNUMsMkNBQTJDO0FBRTNDLElBQU8sVUFBVSxDQW1EaEI7QUFuREQsV0FBTyxVQUFVLEVBQUMsQ0FBQztJQUVOQSw0QkFBaUJBLEdBQUdBLHFCQUFVQSxDQUFDQSxtQkFBbUJBLEVBQzNEQSxDQUFDQSxRQUFRQSxFQUFFQSxpQkFBaUJBLEVBQUVBLGlCQUFpQkEsRUFBRUEsZ0JBQWdCQSxFQUFFQSxXQUFXQSxFQUFFQSxjQUFjQSxFQUFFQSxPQUFPQSxFQUFFQSxVQUFVQSxFQUFFQSxrQkFBa0JBLEVBQ3JJQSxVQUFDQSxNQUFNQSxFQUFFQSxlQUFrREEsRUFBRUEsZUFBZUEsRUFDM0VBLGNBQXVDQSxFQUFFQSxTQUE2QkEsRUFBRUEsWUFBWUEsRUFBRUEsS0FBS0EsRUFBRUEsUUFBUUEsRUFBRUEsZ0JBQWdCQTtRQUUxSEEsTUFBTUEsQ0FBQ0EsVUFBVUEsR0FBR0EsZUFBZUEsQ0FBQ0E7UUFDcENBLE1BQU1BLENBQUNBLEtBQUtBLEdBQUdBLGVBQWVBLENBQUNBO1FBQy9CQSxNQUFNQSxDQUFDQSxPQUFPQSxHQUFHQSxLQUFLQSxDQUFDQTtRQUN2QkEsTUFBTUEsQ0FBQ0EsUUFBUUEsR0FBR0EsSUFBSUEsQ0FBQ0E7UUFFdkJBLFVBQVVBLENBQUNBLFVBQVVBLENBQUNBLE1BQU1BLEVBQUVBLFNBQVNBLEVBQUVBLEtBQUtBLEVBQUVBLFFBQVFBLEVBQUVBLFlBQVlBLEVBQUVBLGVBQWVBLEVBQUVBLGVBQWVBLEVBQUVBLGdCQUFnQkEsQ0FBQ0EsQ0FBQ0E7UUFFNUhBLE1BQU1BLENBQUNBLFVBQVVBLEdBQUdBO1lBQ2xCQSxVQUFVQSxFQUFFQTtnQkFDVkEsYUFBYUEsRUFBRUE7b0JBQ2JBLFFBQVFBLEVBQUVBLGNBQWNBLENBQUNBLEdBQUdBLENBQUNBLG9CQUFvQkEsQ0FBQ0E7aUJBQ25EQTthQUNGQTtTQUNGQSxDQUFDQTtRQUVGQSxNQUFNQSxDQUFDQSxHQUFHQSxDQUFDQSx3QkFBd0JBLEVBQUVBO1lBQ25DLFVBQVUsRUFBRSxDQUFDO1FBQ2YsQ0FBQyxDQUFDQSxDQUFDQTtRQUVIQSxNQUFNQSxDQUFDQSxNQUFNQSxDQUFDQSxnQkFBZ0JBLEVBQUVBLFVBQUNBLFFBQVFBLEVBQUVBLFFBQVFBO1lBQ2pEQSxVQUFVQSxFQUFFQSxDQUFDQTtRQUNmQSxDQUFDQSxFQUFFQSxJQUFJQSxDQUFDQSxDQUFDQTtRQUVUQSxNQUFNQSxDQUFDQSxHQUFHQSxDQUFDQSxjQUFjQSxFQUFFQSxVQUFDQSxNQUFNQTtZQUNoQ0EsVUFBVUEsRUFBRUEsQ0FBQ0E7UUFDZkEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7UUFFSEEsTUFBTUEsQ0FBQ0EsT0FBT0EsR0FBR0E7WUFDZkEsTUFBTUEsQ0FBQ0EsT0FBT0EsR0FBR0EsQ0FBQ0EsTUFBTUEsQ0FBQ0EsT0FBT0EsQ0FBQ0E7WUFDakNBLElBQUlBLENBQUNBLE1BQU1BLENBQUNBLE1BQU1BLENBQUNBLENBQUNBO1FBQ3RCQSxDQUFDQSxDQUFDQTtRQUVGQSxVQUFVQSxFQUFFQSxDQUFDQTtRQUViQSxTQUFTQSxVQUFVQTtZQUNqQnFKLE1BQU1BLENBQUNBLEVBQUVBLEdBQUdBLFlBQVlBLENBQUNBLElBQUlBLENBQUNBLENBQUNBO1lBQy9CQSxNQUFNQSxDQUFDQSxTQUFTQSxHQUFHQSxZQUFZQSxDQUFDQSxXQUFXQSxDQUFDQSxJQUFJQSxlQUFlQSxDQUFDQSxpQkFBaUJBLENBQUNBO1lBQ2xGQSxNQUFNQSxDQUFDQSxJQUFJQSxHQUFHQSxNQUFNQSxDQUFDQSxLQUFLQSxDQUFDQSxVQUFVQSxDQUFDQSxNQUFNQSxDQUFDQSxTQUFTQSxFQUFFQSxNQUFNQSxDQUFDQSxFQUFFQSxDQUFDQSxDQUFDQTtZQUNuRUEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsTUFBTUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7Z0JBQ2hCQSxNQUFNQSxDQUFDQSxRQUFRQSxHQUFHQSxvQkFBU0EsQ0FBQ0EsTUFBTUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0E7WUFDM0NBLENBQUNBO1lBQ0RBLElBQUlBLENBQUNBLE1BQU1BLENBQUNBLE1BQU1BLENBQUNBLENBQUNBO1FBQ3RCQSxDQUFDQTtJQUNIckosQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7QUFDTkEsQ0FBQ0EsRUFuRE0sVUFBVSxLQUFWLFVBQVUsUUFtRGhCOztBQ3ZERCx5Q0FBeUM7QUFDekMsNENBQTRDO0FBQzVDLDJDQUEyQztBQUUzQyxJQUFPLFVBQVUsQ0FnQ2hCO0FBaENELFdBQU8sVUFBVSxFQUFDLENBQUM7SUFFTkEsZ0NBQXFCQSxHQUFHQSxxQkFBVUEsQ0FBQ0EsdUJBQXVCQSxFQUNuRUEsQ0FBQ0EsUUFBUUEsRUFBRUEsaUJBQWlCQSxFQUFFQSxpQkFBaUJBLEVBQUVBLGtCQUFrQkEsRUFBRUEsZ0JBQWdCQSxFQUFFQSxXQUFXQSxFQUFFQSxjQUFjQSxFQUFFQSxPQUFPQSxFQUFFQSxVQUFVQSxFQUFFQSxrQkFBa0JBLEVBQUVBLGdCQUFnQkEsRUFDM0tBLFVBQUNBLE1BQU1BLEVBQUVBLGVBQWtEQSxFQUFFQSxlQUFlQSxFQUFFQSxnQkFBZ0JBLEVBQzdGQSxjQUF1Q0EsRUFBRUEsU0FBNkJBLEVBQUVBLFlBQVlBLEVBQUVBLEtBQUtBLEVBQUVBLFFBQVFBLEVBQUVBLGdCQUFnQkEsRUFBRUEsT0FBa0NBO1FBRTlKQSxNQUFNQSxDQUFDQSxVQUFVQSxHQUFHQSxlQUFlQSxDQUFDQTtRQUNwQ0EsTUFBTUEsQ0FBQ0EsS0FBS0EsR0FBR0EsZUFBZUEsQ0FBQ0E7UUFDL0JBLE1BQU1BLENBQUNBLEVBQUVBLEdBQUdBLFlBQVlBLENBQUNBLElBQUlBLENBQUNBLENBQUNBO1FBQy9CQSxNQUFNQSxDQUFDQSxNQUFNQSxHQUFHQSxnQkFBZ0JBLENBQUNBO1FBQ2pDQSxNQUFNQSxDQUFDQSxNQUFNQSxHQUFHQSxPQUFPQSxDQUFDQSxXQUFXQSxDQUFDQSx5Q0FBeUNBLENBQUNBLENBQUNBO1FBQy9FQSxBQUVBQSwwRUFGMEVBO1FBRTFFQSxVQUFVQSxDQUFDQSxVQUFVQSxDQUFDQSxNQUFNQSxFQUFFQSxTQUFTQSxFQUFFQSxLQUFLQSxFQUFFQSxRQUFRQSxFQUFFQSxZQUFZQSxFQUFFQSxlQUFlQSxFQUFFQSxlQUFlQSxFQUFFQSxnQkFBZ0JBLENBQUNBLENBQUNBO1FBRTVIQSxNQUFNQSxDQUFDQSxHQUFHQSxDQUFDQSxjQUFjQSxFQUFFQSxVQUFDQSxNQUFNQTtZQUNoQ0EsVUFBVUEsRUFBRUEsQ0FBQ0E7UUFDZkEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7UUFFSEEsVUFBVUEsRUFBRUEsQ0FBQ0E7UUFFYkEsU0FBU0EsVUFBVUE7WUFDakJxSixFQUFFQSxDQUFDQSxDQUFDQSxNQUFNQSxDQUFDQSxFQUFFQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFDZEEsTUFBTUEsQ0FBQ0EsTUFBTUEsR0FBR0EsTUFBTUEsQ0FBQ0EsS0FBS0EsQ0FBQ0EsVUFBVUEsQ0FBQ0EsZUFBZUEsQ0FBQ0EsaUJBQWlCQSxFQUFFQSxNQUFNQSxDQUFDQSxFQUFFQSxDQUFDQSxDQUFDQTtnQkFDdEZBLElBQUlBLENBQUNBLE1BQU1BLENBQUNBLE1BQU1BLENBQUNBLENBQUNBO2dCQUNwQkEsTUFBTUEsQ0FBQ0EsT0FBT0EsR0FBR0EsSUFBSUEsQ0FBQ0E7WUFDeEJBLENBQUNBO1lBQUNBLElBQUlBLENBQUNBLENBQUNBO2dCQUNOQSxNQUFNQSxDQUFDQSxPQUFPQSxHQUFHQSxJQUFJQSxDQUFDQTtZQUN4QkEsQ0FBQ0E7UUFDSEEsQ0FBQ0E7SUFDSHJKLENBQUNBLENBQUNBLENBQUNBLENBQUNBO0FBQ05BLENBQUNBLEVBaENNLFVBQVUsS0FBVixVQUFVLFFBZ0NoQjs7QUNwQ0QseUNBQXlDO0FBQ3pDLDRDQUE0QztBQUM1QywyQ0FBMkM7QUFDM0MsMENBQTBDO0FBRTFDLElBQU8sVUFBVSxDQXFGaEI7QUFyRkQsV0FBTyxVQUFVLEVBQUMsQ0FBQztJQUVqQkEsa0JBQU9BLENBQUNBLE9BQU9BLENBQUNBLGlCQUFpQkEsRUFBRUEsQ0FBQ0E7UUFDbENBLE1BQU1BLENBQUNBLElBQUlBLHNCQUFzQkEsRUFBRUEsQ0FBQ0E7SUFDdENBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO0lBRUpBLEFBSUFBOzs7T0FER0E7UUFDVUEsc0JBQXNCQTtRQUFuQ2dNLFNBQWFBLHNCQUFzQkE7WUFDekJDLFVBQUtBLEdBQTBCQSxJQUFJQSxDQUFDQTtRQXlFOUNBLENBQUNBO1FBdkVDRDs7V0FFR0E7UUFDSUEsMkNBQVVBLEdBQWpCQSxVQUFrQkEsV0FBbUJBO1lBQ25DRSxNQUFNQSxDQUFDQSxJQUFJQSxDQUFDQSxXQUFXQSxDQUFDQSxXQUFXQSxDQUFDQSxHQUFHQSxJQUFJQSxHQUFHQSxLQUFLQSxDQUFDQTtRQUN0REEsQ0FBQ0E7UUFFREY7Ozs7O1dBS0dBO1FBQ0lBLDRDQUFXQSxHQUFsQkEsVUFBbUJBLFdBQW1CQTtZQUNwQ0csSUFBSUEsTUFBTUEsR0FBR0EsSUFBSUEsQ0FBQ0E7WUFDbEJBLEVBQUVBLENBQUNBLENBQUNBLFdBQVdBLENBQUNBLENBQUNBLENBQUNBO2dCQUNoQkEsSUFBSUEsS0FBS0EsR0FBR0EsSUFBSUEsQ0FBQ0EsUUFBUUEsRUFBRUEsQ0FBQ0E7Z0JBQzVCQSxFQUFFQSxDQUFDQSxDQUFDQSxLQUFLQSxDQUFDQSxDQUFDQSxDQUFDQTtvQkFDVkEsSUFBSUEsU0FBU0EsR0FBR0EsS0FBS0EsQ0FBQ0EsZ0JBQWdCQSxFQUFFQSxDQUFDQTtvQkFDekNBLE1BQU1BLENBQUNBLEtBQUtBLENBQUNBLFVBQVVBLENBQUNBLFNBQVNBLEVBQUVBLFdBQVdBLENBQUNBLENBQUNBO2dCQVNsREEsQ0FBQ0E7WUFDSEEsQ0FBQ0E7WUFDREEsTUFBTUEsQ0FBQ0EsTUFBTUEsQ0FBQ0E7UUFDaEJBLENBQUNBO1FBRURIOzs7OztXQUtHQTtRQUNJQSw0Q0FBV0EsR0FBbEJBLFVBQW1CQSxXQUFtQkE7WUFDcENJLElBQUlBLE9BQU9BLEdBQUdBLElBQUlBLENBQUNBLFdBQVdBLENBQUNBLFdBQVdBLENBQUNBLENBQUNBO1lBQzVDQSxNQUFNQSxDQUFDQSx5QkFBY0EsQ0FBQ0EsT0FBT0EsQ0FBQ0EsQ0FBQ0E7UUFDakNBLENBQUNBO1FBRURKOzs7OztXQUtHQTtRQUNJQSxpREFBZ0JBLEdBQXZCQSxVQUF3QkEsV0FBbUJBO1lBQ3pDSyxJQUFJQSxPQUFPQSxHQUFHQSxJQUFJQSxDQUFDQSxXQUFXQSxDQUFDQSxXQUFXQSxDQUFDQSxDQUFDQTtZQUM1Q0EsRUFBRUEsQ0FBQ0EsQ0FBQ0Esd0JBQWFBLENBQUNBLE9BQU9BLENBQUNBLENBQUNBLENBQUNBLENBQUNBO2dCQUMzQkEsTUFBTUEsQ0FBQ0EseUJBQWNBLENBQUNBLE9BQU9BLENBQUNBLENBQUNBO1lBQ2pDQSxDQUFDQTtZQUFDQSxJQUFJQSxDQUFDQSxDQUFDQTtnQkFDTkEsTUFBTUEsQ0FBQ0EsSUFBSUEsQ0FBQ0E7WUFDZEEsQ0FBQ0E7UUFDSEEsQ0FBQ0E7UUFFT0wseUNBQVFBLEdBQWhCQTtZQUNFTSxJQUFJQSxNQUFNQSxHQUFHQSxJQUFJQSxDQUFDQSxLQUFLQSxDQUFDQTtZQUN4QkEsQUFDQUEsaUZBRGlGQTtZQUNqRkEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsTUFBTUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7Z0JBQ1pBLElBQUlBLFFBQVFBLEdBQUdBLFVBQVVBLENBQUNBLFFBQVFBLENBQUNBO2dCQUNuQ0EsRUFBRUEsQ0FBQ0EsQ0FBQ0EsUUFBUUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7b0JBQ2JBLElBQUlBLENBQUNBLEtBQUtBLEdBQUdBLFFBQVFBLENBQUNBLEdBQUdBLENBQUNBLGlCQUFpQkEsQ0FBQ0EsQ0FBQ0E7Z0JBQy9DQSxDQUFDQTtZQUNIQSxDQUFDQTtZQUNEQSxNQUFNQSxHQUFHQSxJQUFJQSxDQUFDQSxLQUFLQSxDQUFDQTtZQUNwQkEsTUFBTUEsQ0FBQ0EsTUFBTUEsQ0FBQ0E7UUFDaEJBLENBQUNBO1FBQ0hOLDZCQUFDQTtJQUFEQSxDQTFFQWhNLEFBMEVDZ00sSUFBQWhNO0lBMUVZQSxpQ0FBc0JBLEdBQXRCQSxzQkEwRVpBLENBQUFBO0FBQ0hBLENBQUNBLEVBckZNLFVBQVUsS0FBVixVQUFVLFFBcUZoQjs7QUMxRkQseUNBQXlDO0FBQ3pDLDRDQUE0QztBQUM1QywyQ0FBMkM7QUFFM0MsSUFBTyxVQUFVLENBNkZoQjtBQTdGRCxXQUFPLFVBQVUsRUFBQyxDQUFDO0lBRU5BLG1CQUFRQSxHQUFHQSxxQkFBVUEsQ0FBQ0EsVUFBVUEsRUFDekNBLENBQUNBLFFBQVFBLEVBQUVBLGlCQUFpQkEsRUFBRUEsb0JBQW9CQSxFQUFFQSxnQkFBZ0JBLEVBQUVBLGlCQUFpQkEsRUFBRUEsZ0JBQWdCQSxFQUFFQSxXQUFXQSxFQUFFQSxjQUFjQSxFQUFFQSxPQUFPQSxFQUFFQSxVQUFVQSxFQUFFQSxrQkFBa0JBLEVBQzdLQSxVQUFDQSxNQUFNQSxFQUFFQSxlQUFrREEsRUFBRUEsa0JBQTZDQSxFQUFFQSxjQUF5Q0EsRUFBRUEsZUFBZUEsRUFDcktBLGNBQXVDQSxFQUFFQSxTQUE2QkEsRUFBRUEsWUFBWUEsRUFBRUEsS0FBS0EsRUFBRUEsUUFBUUEsRUFBRUEsZ0JBQWdCQTtRQUUxSEEsTUFBTUEsQ0FBQ0EsVUFBVUEsR0FBR0EsZUFBZUEsQ0FBQ0E7UUFDcENBLE1BQU1BLENBQUNBLEtBQUtBLEdBQUdBLGVBQWVBLENBQUNBO1FBRS9CQSxpQkFBaUJBLENBQUNBLHNCQUFzQkEsQ0FBQ0EsTUFBTUEsRUFBRUEsU0FBU0EsRUFBRUEsTUFBTUEsRUFBRUEsTUFBTUEsRUFBRUEsTUFBTUEsQ0FBQ0EsQ0FBQ0E7UUFFcEZBLE1BQU1BLENBQUNBLFdBQVdBLEdBQUdBO1lBQ25CQSxJQUFJQSxFQUFFQSxnQkFBZ0JBO1lBQ3RCQSxxQkFBcUJBLEVBQUVBLElBQUlBO1lBQzNCQSx1QkFBdUJBLEVBQUVBLEtBQUtBO1lBQzlCQSxXQUFXQSxFQUFFQSxJQUFJQTtZQUNqQkEsYUFBYUEsRUFBRUEsRUFBRUE7WUFDakJBLGFBQWFBLEVBQUVBO2dCQUNiQSxVQUFVQSxFQUFFQSxTQUFTQSxDQUFDQSxNQUFNQSxFQUFFQSxDQUFDQSxHQUFHQSxDQUFDQSxJQUFJQSxFQUFFQTthQUMxQ0E7WUFDREEsVUFBVUEsRUFBRUE7Z0JBQ1ZBLEVBQUVBLEtBQUtBLEVBQUVBLE1BQU1BLEVBQ2JBLFdBQVdBLEVBQUVBLE1BQU1BLEVBQ25CQSxZQUFZQSxFQUFFQSxjQUFjQSxDQUFDQSxHQUFHQSxDQUFDQSxpQkFBaUJBLENBQUNBLEVBQ3BEQTtnQkFDREEsRUFBRUEsS0FBS0EsRUFBRUEsYUFBYUEsRUFDcEJBLFdBQVdBLEVBQUVBLFNBQVNBLEVBQ3RCQSxZQUFZQSxFQUFFQSxjQUFjQSxDQUFDQSxHQUFHQSxDQUFDQSxvQkFBb0JBLENBQUNBLEVBQ3ZEQTtnQkFDREEsRUFBRUEsS0FBS0EsRUFBRUEsV0FBV0EsRUFDbEJBLFdBQVdBLEVBQUVBLE1BQU1BLEVBQ25CQSxZQUFZQSxFQUFFQSxjQUFjQSxDQUFDQSxHQUFHQSxDQUFDQSwrQkFBK0JBLENBQUNBLEVBQ2pFQSxlQUFlQSxFQUFFQSxVQUFDQSxLQUFLQTtvQkFDckJBLEFBQ0FBLHNDQURzQ0E7d0JBQ2xDQSxLQUFLQSxHQUFHQSxLQUFLQSxDQUFDQSxZQUFZQSxDQUFDQSxLQUFLQSxJQUFJQSxDQUFDQSxDQUFDQTtvQkFDMUNBLElBQUlBLEtBQUtBLEdBQUdBLEtBQUtBLENBQUNBLFlBQVlBLENBQUNBLEtBQUtBLElBQUlBLENBQUNBLENBQUNBO29CQUMxQ0EsSUFBSUEsT0FBT0EsR0FBR0EsS0FBS0EsQ0FBQ0EsWUFBWUEsQ0FBQ0EsT0FBT0EsSUFBSUEsQ0FBQ0EsQ0FBQ0E7b0JBQzlDQSxJQUFJQSxLQUFLQSxHQUFHQSxLQUFLQSxDQUFDQSxZQUFZQSxDQUFDQSxLQUFLQSxJQUFJQSxDQUFDQSxDQUFDQTtvQkFDMUNBLE1BQU1BLENBQUNBLEtBQUtBLEdBQUdBLEtBQUtBLEdBQUdBLE9BQU9BLEdBQUdBLEtBQUtBLENBQUNBO2dCQUN6Q0EsQ0FBQ0EsRUFDRkE7Z0JBQ0RBLEVBQUVBLEtBQUtBLEVBQUVBLGVBQWVBLEVBQ3RCQSxXQUFXQSxFQUFFQSxVQUFVQSxFQUN2QkEsWUFBWUEsRUFBRUEsY0FBY0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsdUJBQXVCQSxDQUFDQSxFQUMxREE7Z0JBQ0RBLEVBQUVBLEtBQUtBLEVBQUVBLGFBQWFBLEVBQ3BCQSxXQUFXQSxFQUFFQSxRQUFRQSxFQUNyQkEsWUFBWUEsRUFBRUEsY0FBY0EsQ0FBQ0EsR0FBR0EsQ0FBQ0Esb0JBQW9CQSxDQUFDQSxFQUN2REE7YUFDRkE7U0FDRkEsQ0FBQ0E7UUFFRkEsVUFBVUEsQ0FBQ0EsVUFBVUEsQ0FBQ0EsTUFBTUEsRUFBRUEsU0FBU0EsRUFBRUEsS0FBS0EsRUFBRUEsUUFBUUEsRUFBRUEsWUFBWUEsRUFBRUEsZUFBZUEsRUFBRUEsZUFBZUEsRUFBRUEsZ0JBQWdCQSxDQUFDQSxDQUFDQTtRQUU1SEEsTUFBTUEsQ0FBQ0EsWUFBWUEsR0FBR0EsVUFBQ0EsUUFBUUE7WUFDN0JBLEVBQUVBLENBQUNBLENBQUNBLE9BQU9BLENBQUNBLFFBQVFBLENBQUNBLFFBQVFBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO2dCQUMvQkEsUUFBUUEsR0FBR0EsQ0FBQ0E7b0JBQ1ZBLEVBQUVBLEVBQUVBLFFBQVFBO2lCQUNiQSxDQUFDQSxDQUFDQTtZQUNMQSxDQUFDQTtZQUNEQSxFQUFFQSxDQUFDQSw0QkFBNEJBLENBQW1DQTtnQkFDaEVBLFVBQVVBLEVBQUVBLFFBQVFBO2dCQUNwQkEsS0FBS0EsRUFBRUEsZUFBZUE7Z0JBQ3RCQSxPQUFPQSxFQUFFQSxVQUFDQSxNQUFjQTtvQkFDdEJBLEVBQUVBLENBQUNBLENBQUNBLE1BQU1BLENBQUNBLENBQUNBLENBQUNBO3dCQUNYQSxTQUFTQSxjQUFjQSxDQUFDQSxRQUF1QkEsRUFBRUEsSUFBWUE7NEJBQzNEb0osRUFBRUEsQ0FBQ0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7Z0NBQ1RBLGNBQUdBLENBQUNBLEtBQUtBLENBQUNBLFlBQVlBLEVBQUVBLGtCQUFPQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQSxDQUFDQTtnQ0FDdkNBLGtCQUFrQkEsQ0FBQ0EsTUFBTUEsQ0FBQ0E7b0NBQ3hCQSxFQUFFQSxFQUFFQSxrQkFBT0EsQ0FBQ0EsSUFBSUEsQ0FBQ0E7aUNBQ2xCQSxFQUFFQSxTQUFTQSxFQUFFQTtvQ0FDWkEsY0FBR0EsQ0FBQ0EsS0FBS0EsQ0FBQ0EsV0FBV0EsRUFBRUEsa0JBQU9BLENBQUNBLElBQUlBLENBQUNBLENBQUNBLENBQUNBO29DQUN0Q0EsY0FBY0EsQ0FBQ0EsUUFBUUEsRUFBRUEsUUFBUUEsQ0FBQ0EsS0FBS0EsRUFBRUEsQ0FBQ0EsQ0FBQ0E7Z0NBQzdDQSxDQUFDQSxFQUFFQSxVQUFDQSxLQUFLQTtvQ0FDUEEsY0FBR0EsQ0FBQ0EsS0FBS0EsQ0FBQ0Esa0JBQWtCQSxFQUFFQSxLQUFLQSxDQUFDQSxDQUFDQTtvQ0FDckNBLGNBQWNBLENBQUNBLFFBQVFBLEVBQUVBLFFBQVFBLENBQUNBLEtBQUtBLEVBQUVBLENBQUNBLENBQUNBO2dDQUM3Q0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7NEJBQ0xBLENBQUNBO3dCQUNIQSxDQUFDQTt3QkFDRHBKLGNBQWNBLENBQUNBLFFBQVFBLEVBQUVBLFFBQVFBLENBQUNBLEtBQUtBLEVBQUVBLENBQUNBLENBQUNBO29CQUM3Q0EsQ0FBQ0E7Z0JBQ0hBLENBQUNBO2dCQUNEQSxLQUFLQSxFQUFFQSxrQkFBa0JBO2dCQUN6QkEsTUFBTUEsRUFBRUEseUNBQXlDQTtnQkFDakRBLE1BQU1BLEVBQUVBLFFBQVFBO2dCQUNoQkEsT0FBT0EsRUFBRUEsWUFBWUE7Z0JBQ3JCQSxNQUFNQSxFQUFFQSw2Q0FBNkNBO2dCQUNyREEsV0FBV0EsRUFBRUEscUJBQXFCQTthQUNuQ0EsQ0FBQ0EsQ0FBQ0EsSUFBSUEsRUFBRUEsQ0FBQ0E7UUFDWkEsQ0FBQ0EsQ0FBQ0E7SUFFSkEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7QUFDTkEsQ0FBQ0EsRUE3Rk0sVUFBVSxLQUFWLFVBQVUsUUE2RmhCOztBQ2pHRCx5Q0FBeUM7QUFDekMsNENBQTRDO0FBQzVDLDJDQUEyQztBQUUzQyxJQUFPLFVBQVUsQ0EyRmhCO0FBM0ZELFdBQU8sVUFBVSxFQUFDLENBQUM7SUFFakJBLEFBQ0FBLHNDQURzQ0E7SUFDM0JBLG9CQUFTQSxHQUFHQSxxQkFBVUEsQ0FBQ0EsV0FBV0EsRUFBRUEsQ0FBQ0EsUUFBUUEsRUFBRUEsVUFBQ0EsTUFBTUE7UUFDL0RBLE1BQU1BLENBQUNBLGFBQWFBLEdBQUdBLFVBQUNBLElBQUlBO1lBQzFCQSxNQUFNQSxDQUFDQSwrQkFBb0JBLENBQUNBLElBQUlBLENBQUNBLENBQUNBO1FBQ3BDQSxDQUFDQSxDQUFBQTtJQUNIQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtJQUVKQSxrQkFBT0EsQ0FBQ0EsVUFBVUEsQ0FBQ0EsMkJBQTJCQSxFQUFFQSxVQUFDQSxNQUFNQSxFQUFFQSxlQUFlQTtRQUN0RUEsTUFBTUEsQ0FBQ0EsWUFBWUEsR0FBR0EsVUFBQ0EsU0FBU0E7WUFDOUJBLEVBQUVBLENBQUNBLENBQUNBLFNBQVNBLENBQUNBLGVBQWVBLElBQUlBLFNBQVNBLENBQUNBLGVBQWVBLENBQUNBLFVBQVVBLENBQUNBLENBQUNBLENBQUNBO2dCQUN0RUEsTUFBTUEsQ0FBQ0EsS0FBS0EsQ0FBQ0E7WUFDZkEsQ0FBQ0E7WUFDREEsTUFBTUEsQ0FBQ0EsSUFBSUEsQ0FBQ0E7UUFDZEEsQ0FBQ0EsQ0FBQUE7UUFDREEsTUFBTUEsQ0FBQ0EsWUFBWUEsR0FBR0EsVUFBQ0EsUUFBUUEsRUFBRUEsYUFBYUE7WUFDNUNBLElBQUlBLEVBQUVBLEdBQUdBLGVBQWVBLENBQUNBLFdBQVdBLENBQUNBLFFBQVFBLEVBQUVBLGFBQWFBLENBQUNBLENBQUNBO1lBQzlEQSxjQUFHQSxDQUFDQSxLQUFLQSxDQUFDQSx3QkFBd0JBLEVBQUVBLEVBQUVBLENBQUNBLENBQUNBO1FBQzFDQSxDQUFDQSxDQUFBQTtJQUNIQSxDQUFDQSxDQUFDQSxDQUFDQTtJQUVIQSxBQUNBQSxnREFEZ0RBO0lBQ3JDQSxpQkFBTUEsR0FBR0EscUJBQVVBLENBQUNBLFFBQVFBLEVBQUVBLENBQUNBLFFBQVFBLEVBQUVBLFdBQVdBLEVBQUVBLFVBQUNBLE1BQU1BLEVBQUVBLFNBQVNBO1FBQ2pGQSxNQUFNQSxDQUFDQSxNQUFNQSxHQUFHQSxFQUFFQSxDQUFDQTtRQUNuQkEsSUFBSUEsZUFBZUEsR0FBR0E7WUFDcEJBLE1BQU1BLEVBQUVBLENBQUNBO1lBQ1RBLHVCQUF1QkEsRUFBRUEsQ0FBQ0E7WUFDMUJBLE9BQU9BLEVBQUVBLENBQUNBO1NBQ1hBLENBQUNBO1FBQ0ZBLE1BQU1BLENBQUNBLE1BQU1BLENBQUNBLFFBQVFBLEVBQUVBLFVBQUNBLFFBQVFBLEVBQUVBLFFBQVFBO1lBQ3pDQSxFQUFFQSxDQUFDQSxDQUFDQSxRQUFRQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFDYkEsQUFFQUEsbUNBRm1DQTtnQkFDbkNBLDJCQUEyQkE7Z0JBQzNCQSxNQUFNQSxDQUFDQSxNQUFNQSxHQUFHQSxFQUFFQSxDQUFDQTtnQkFDbkJBLE9BQU9BLENBQUNBLE9BQU9BLENBQUNBLElBQUlBLENBQUNBLE9BQU9BLENBQUNBLE1BQU1BLENBQUNBLE1BQU1BLEVBQUVBLENBQUNBLFVBQVVBLEVBQUVBLFFBQVFBLENBQUNBLENBQUNBLEVBQUVBLFVBQUNBLEtBQUtBLEVBQUVBLEdBQUdBO29CQUM5RUEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsR0FBR0EsS0FBS0EsU0FBU0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7d0JBQ3RCQSxBQUNBQSxzREFEc0RBO3dCQUN0REEsTUFBTUEsQ0FBQ0E7b0JBQ1RBLENBQUNBO29CQUNEQSxNQUFNQSxDQUFDQSxNQUFNQSxDQUFDQSxJQUFJQSxDQUFDQTt3QkFDakJBLEdBQUdBLEVBQUVBLEdBQUdBO3dCQUNSQSxLQUFLQSxFQUFFQSxLQUFLQTtxQkFDYkEsQ0FBQ0EsQ0FBQ0E7Z0JBQ0xBLENBQUNBLENBQUNBLENBQUNBO2dCQUVIQSxBQUNBQSx1RkFEdUZBO2dCQUN2RkEsTUFBTUEsQ0FBQ0EsTUFBTUEsR0FBR0EsTUFBTUEsQ0FBQ0EsTUFBTUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsVUFBQ0EsQ0FBQ0EsRUFBRUEsQ0FBQ0E7b0JBQ3RDQSxTQUFTQSxTQUFTQSxDQUFDQSxHQUFHQTt3QkFDcEJ1TSxNQUFNQSxDQUFDQSxlQUFlQSxDQUFDQSxHQUFHQSxDQUFDQSxJQUFJQSxJQUFJQSxDQUFDQTtvQkFDdENBLENBQUNBO29CQUNEdk0sSUFBSUEsRUFBRUEsR0FBR0EsQ0FBQ0EsQ0FBQ0EsS0FBS0EsQ0FBQ0EsQ0FBQ0E7b0JBQ2xCQSxJQUFJQSxFQUFFQSxHQUFHQSxDQUFDQSxDQUFDQSxLQUFLQSxDQUFDQSxDQUFDQTtvQkFDbEJBLElBQUlBLEVBQUVBLEdBQUdBLFNBQVNBLENBQUNBLEVBQUVBLENBQUNBLENBQUNBO29CQUN2QkEsSUFBSUEsRUFBRUEsR0FBR0EsU0FBU0EsQ0FBQ0EsRUFBRUEsQ0FBQ0EsQ0FBQ0E7b0JBQ3ZCQSxJQUFJQSxJQUFJQSxHQUFHQSxFQUFFQSxHQUFHQSxFQUFFQSxDQUFDQTtvQkFDbkJBLEVBQUVBLENBQUNBLENBQUNBLElBQUlBLEdBQUdBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO3dCQUNiQSxNQUFNQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtvQkFDWkEsQ0FBQ0E7b0JBQUNBLElBQUlBLENBQUNBLEVBQUVBLENBQUNBLENBQUNBLElBQUlBLEdBQUdBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO3dCQUNwQkEsTUFBTUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7b0JBQ1hBLENBQUNBO29CQUNEQSxFQUFFQSxDQUFDQSxDQUFDQSxFQUFFQSxJQUFJQSxFQUFFQSxDQUFDQSxDQUFDQSxDQUFDQTt3QkFDYkEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsRUFBRUEsR0FBR0EsRUFBRUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7NEJBQ1pBLE1BQU1BLENBQUNBLENBQUNBLENBQUNBO3dCQUNYQSxDQUFDQTt3QkFBQ0EsSUFBSUEsQ0FBQ0EsRUFBRUEsQ0FBQ0EsQ0FBQ0EsRUFBRUEsR0FBR0EsRUFBRUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7NEJBQ25CQSxN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XCIuLi9saWJzL2hhd3Rpby1mb3Jtcy9kZWZzLmQudHNcIi8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwiLi4vbGlicy9oYXd0aW8tdWkvZGVmcy5kLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4uL2xpYnMvaGF3dGlvLXV0aWxpdGllcy9kZWZzLmQudHNcIi8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwiLi4vbGlicy9oYXd0aW8tb2F1dGgvZGVmcy5kLnRzXCIvPlxuIiwiLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4uLy4uL2luY2x1ZGVzLnRzXCIvPlxubW9kdWxlIERldmVsb3BlciB7XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGVucmljaFdvcmtzcGFjZXMocHJvamVjdHMpIHtcbiAgICBhbmd1bGFyLmZvckVhY2gocHJvamVjdHMsIChwcm9qZWN0KSA9PiB7XG4gICAgICBlbnJpY2hXb3Jrc3BhY2UocHJvamVjdCk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHByb2plY3RzO1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGVucmljaFdvcmtzcGFjZShidWlsZCkge1xuICAgIGlmIChidWlsZCkge1xuICAgICAgdmFyIG5hbWUgPSBLdWJlcm5ldGVzLmdldE5hbWUoYnVpbGQpO1xuICAgICAgYnVpbGQuJG5hbWUgPSBuYW1lO1xuICAgICAgYnVpbGQuJHNvcnRPcmRlciA9IDAgLSBidWlsZC5udW1iZXI7XG5cbiAgICAgIHZhciBuYW1lQXJyYXkgPSBuYW1lLnNwbGl0KFwiLVwiKTtcbiAgICAgIHZhciBuYW1lQXJyYXlMZW5ndGggPSBuYW1lQXJyYXkubGVuZ3RoO1xuICAgICAgYnVpbGQuJHNob3J0TmFtZSA9IChuYW1lQXJyYXlMZW5ndGggPiA0KSA/IG5hbWVBcnJheS5zbGljZSgwLCBuYW1lQXJyYXlMZW5ndGggLSA0KS5qb2luKFwiLVwiKSA6IG5hbWUuc3Vic3RyaW5nKDAsIDMwKTtcblxuICAgICAgdmFyIGxhYmVscyA9IEt1YmVybmV0ZXMuZ2V0TGFiZWxzKGJ1aWxkKTtcbiAgICAgIGJ1aWxkLiRjcmVhdGlvbkRhdGUgPSBhc0RhdGUoS3ViZXJuZXRlcy5nZXRDcmVhdGlvblRpbWVzdGFtcChidWlsZCkpO1xuICAgICAgYnVpbGQuJGxhYmVsc1RleHQgPSBLdWJlcm5ldGVzLmxhYmVsc1RvU3RyaW5nKGxhYmVscyk7XG5cbiAgICAgIGlmIChuYW1lKSB7XG4gICAgICAgIGJ1aWxkLiRwcm9qZWN0c0xpbmsgPSBVcmxIZWxwZXJzLmpvaW4oXCJ3b3Jrc3BhY2VzXCIsIG5hbWUpO1xuICAgICAgICBidWlsZC4kcnVudGltZUxpbmsgPSBVcmxIZWxwZXJzLmpvaW4oXCJrdWJlcm5ldGVzL25hbWVzcGFjZS9cIiwgbmFtZSwgXCIvYXBwc1wiKTtcbiAgICAgICAgYnVpbGQuJHZpZXdMaW5rID0gYnVpbGQuJHByb2plY3RzTGluaztcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGJ1aWxkO1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGFzRGF0ZSh2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZSA/IG5ldyBEYXRlKHZhbHVlKSA6IG51bGw7XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gZW5yaWNoSmVua2luc0pvYnMoam9ic0RhdGEsIHByb2plY3RJZCwgam9iTmFtZSkge1xuICAgIGlmIChqb2JzRGF0YSkge1xuICAgICAgYW5ndWxhci5mb3JFYWNoKGpvYnNEYXRhLmpvYnMsIChqb2IpID0+IHtcbiAgICAgICAgZW5yaWNoSmVua2luc0pvYihqb2IsIHByb2plY3RJZCwgam9iTmFtZSk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGpvYnNEYXRhO1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGVucmljaEplbmtpbnNKb2Ioam9iLCBwcm9qZWN0SWQsIGpvYk5hbWUpIHtcbiAgICBpZiAoam9iKSB7XG4gICAgICBqb2JOYW1lID0gam9iTmFtZSB8fCBqb2IubmFtZSB8fCBwcm9qZWN0SWQ7XG4gICAgICBqb2IuJGpvYklkID0gam9iTmFtZTtcbiAgICAgIGpvYi4kcHJvamVjdCA9IHByb2plY3RJZCB8fCBqb2JOYW1lO1xuICAgICAgdmFyIGxhc3RCdWlsZCA9IGpvYi5sYXN0QnVpbGQ7XG4gICAgICB2YXIgbGFzdEJ1aWxkUmVzdWx0ID0gbGFzdEJ1aWxkID8gbGFzdEJ1aWxkLnJlc3VsdCA6IFwiTk9UX1NUQVJURURcIjtcbiAgICAgIHZhciAkaWNvbkNsYXNzID0gY3JlYXRlQnVpbGRTdGF0dXNJY29uQ2xhc3MobGFzdEJ1aWxkUmVzdWx0KTtcblxuICAgICAgam9iLiRsYXN0QnVpbGROdW1iZXIgPSBlbnJpY2hKZW5raW5zQnVpbGQoam9iLCBsYXN0QnVpbGQpO1xuICAgICAgam9iLiRsYXN0U3VjY2Vzc2Z1bEJ1aWxkTnVtYmVyID0gZW5yaWNoSmVua2luc0J1aWxkKGpvYiwgam9iLmxhc3RTdWNjZXNzZnVsQnVpbGQpO1xuICAgICAgam9iLiRsYXN0RmFpbGVkbEJ1aWxkTnVtYmVyID0gZW5yaWNoSmVua2luc0J1aWxkKGpvYiwgam9iLmxhc3RGYWlsZWRsQnVpbGQpO1xuXG4gICAgICBpZiAobGFzdEJ1aWxkKSB7XG4gICAgICAgIGpvYi4kZHVyYXRpb24gPSBsYXN0QnVpbGQuZHVyYXRpb247XG4gICAgICAgIGpvYi4kdGltZXN0YW1wID0gYXNEYXRlKGxhc3RCdWlsZC50aW1lc3RhbXApO1xuICAgICAgfVxuICAgICAgdmFyIGpvYlVybCA9IChqb2IgfHwge30pLnVybDtcbiAgICAgIGlmICgham9iVXJsIHx8ICFqb2JVcmwuc3RhcnRzV2l0aChcImh0dHBcIikpIHtcbiAgICAgICAgdmFyIGplbmtpbnNVcmwgPSBqZW5raW5zTGluaygpO1xuICAgICAgICBpZiAoamVua2luc1VybCkge1xuICAgICAgICAgIGpvYlVybCA9IFVybEhlbHBlcnMuam9pbihqZW5raW5zVXJsLCBcImpvYlwiLCBqb2JOYW1lKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoam9iVXJsKSB7XG4gICAgICAgIGpvYi4kam9iTGluayA9IGpvYlVybDtcbiAgICAgICAgdmFyIHdvcmtzcGFjZU5hbWUgPSBLdWJlcm5ldGVzLmN1cnJlbnRLdWJlcm5ldGVzTmFtZXNwYWNlKCk7XG4gICAgICAgIGpvYi4kcGlwZWxpbmVzTGluayA9IFVybEhlbHBlcnMuam9pbihcIi93b3Jrc3BhY2VzXCIsIHdvcmtzcGFjZU5hbWUsIFwicHJvamVjdHNcIiwgam9iLiRwcm9qZWN0LCBcImplbmtpbnNKb2JcIiwgam9iTmFtZSwgXCJwaXBlbGluZXNcIik7XG4gICAgICAgIGpvYi4kYnVpbGRzTGluayA9IFVybEhlbHBlcnMuam9pbihcIi93b3Jrc3BhY2VzXCIsIHdvcmtzcGFjZU5hbWUsIFwicHJvamVjdHNcIiwgam9iLiRwcm9qZWN0LCBcImplbmtpbnNKb2JcIiwgam9iTmFtZSk7XG4gICAgICB9XG4gICAgICBqb2IuJGljb25DbGFzcyA9ICRpY29uQ2xhc3M7XG5cbiAgICAgIGFuZ3VsYXIuZm9yRWFjaChqb2IuYnVpbGRzLCAoYnVpbGQpID0+IHtcbiAgICAgICAgZW5yaWNoSmVua2luc0J1aWxkKGpvYiwgYnVpbGQpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBqb2I7XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gY3JlYXRlQnVpbGRTdGF0dXNJY29uQ2xhc3MocmVzdWx0KSB7XG4gICAgdmFyICRpY29uQ2xhc3MgPSBcImZhIGZhLXNwaW5uZXIgZmEtc3BpblwiO1xuICAgIGlmIChyZXN1bHQpIHtcbiAgICAgIGlmIChyZXN1bHQgPT09IFwiRkFJTFVSRVwiIHx8IHJlc3VsdCA9PT0gXCJGQUlMRURcIikge1xuICAgICAgICAvLyBUT0RPIG5vdCBhdmFpbGFibGUgeWV0XG4gICAgICAgICRpY29uQ2xhc3MgPSBcImZhIGZhLWV4Y2xhbWF0aW9uLWNpcmNsZSByZWRcIjtcbiAgICAgIH0gZWxzZSBpZiAocmVzdWx0ID09PSBcIkFCT1JURURcIiB8fCByZXN1bHQgPT09IFwiSU5URVJVUFRFRFwiKSB7XG4gICAgICAgICRpY29uQ2xhc3MgPSBcImZhIGZhLWNpcmNsZSBncmV5XCI7XG4gICAgICB9IGVsc2UgaWYgKHJlc3VsdCA9PT0gXCJTVUNDRVNTXCIpIHtcbiAgICAgICAgJGljb25DbGFzcyA9IFwiZmEgZmEtY2hlY2stY2lyY2xlIGdyZWVuXCI7XG4gICAgICB9IGVsc2UgaWYgKHJlc3VsdCA9PT0gXCJOT1RfU1RBUlRFRFwiKSB7XG4gICAgICAgICRpY29uQ2xhc3MgPSBcImZhIGZhLWNpcmNsZS10aGluIGdyZXlcIjtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuICRpY29uQ2xhc3M7XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gY3JlYXRlQnVpbGRTdGF0dXNCYWNrZ3JvdW5kQ2xhc3MocmVzdWx0KSB7XG4gICAgdmFyICRpY29uQ2xhc3MgPSBcImJ1aWxkLXBlbmRpbmdcIjtcbiAgICBpZiAocmVzdWx0KSB7XG4gICAgICBpZiAocmVzdWx0ID09PSBcIkZBSUxVUkVcIiB8fCByZXN1bHQgPT09IFwiRkFJTEVEXCIpIHtcbiAgICAgICAgJGljb25DbGFzcyA9IFwiYnVpbGQtZmFpbFwiO1xuICAgICAgfSBlbHNlIGlmIChyZXN1bHQgPT09IFwiQUJPUlRFRFwiIHx8IHJlc3VsdCA9PT0gXCJJTlRFUlVQVEVEXCIpIHtcbiAgICAgICAgJGljb25DbGFzcyA9IFwiYnVpbGQtYWJvcnRlZFwiO1xuICAgICAgfSBlbHNlIGlmIChyZXN1bHQgPT09IFwiU1VDQ0VTU1wiKSB7XG4gICAgICAgICRpY29uQ2xhc3MgPSBcImJ1aWxkLXN1Y2Nlc3NcIjtcbiAgICAgIH0gZWxzZSBpZiAocmVzdWx0ID09PSBcIk5PVF9TVEFSVEVEXCIpIHtcbiAgICAgICAgJGljb25DbGFzcyA9IFwiYnVpbGQtbm90LXN0YXJ0ZWRcIjtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuICRpY29uQ2xhc3M7XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gZW5yaWNoSmVua2luc0J1aWxkKGpvYiwgYnVpbGQpIHtcbiAgICB2YXIgbnVtYmVyID0gbnVsbDtcbiAgICBpZiAoYnVpbGQpIHtcbiAgICAgIGJ1aWxkLiRkdXJhdGlvbiA9IGJ1aWxkLmR1cmF0aW9uO1xuICAgICAgYnVpbGQuJHRpbWVzdGFtcCA9IGFzRGF0ZShidWlsZC50aW1lc3RhbXApO1xuICAgICAgdmFyIHByb2plY3RJZCA9IGpvYi4kcHJvamVjdDtcbiAgICAgIHZhciBqb2JOYW1lID0gam9iLiRqb2JJZCB8fCBwcm9qZWN0SWQ7XG4gICAgICB2YXIgYnVpbGRJZCA9IGJ1aWxkLmlkO1xuICAgICAgbnVtYmVyID0gYnVpbGQubnVtYmVyO1xuICAgICAgdmFyIHdvcmtzcGFjZU5hbWUgPSBLdWJlcm5ldGVzLmN1cnJlbnRLdWJlcm5ldGVzTmFtZXNwYWNlKCk7XG5cbiAgICAgIHZhciAkaWNvbkNsYXNzID0gY3JlYXRlQnVpbGRTdGF0dXNJY29uQ2xhc3MoYnVpbGQucmVzdWx0KTtcbiAgICAgIHZhciBqb2JVcmwgPSAoam9iIHx8IHt9KS51cmw7XG4gICAgICBpZiAoIWpvYlVybCB8fCAham9iVXJsLnN0YXJ0c1dpdGgoXCJodHRwXCIpKSB7XG4gICAgICAgIHZhciBqZW5raW5zVXJsID0gamVua2luc0xpbmsoKTtcbiAgICAgICAgaWYgKGplbmtpbnNVcmwpIHtcbiAgICAgICAgICBqb2JVcmwgPSBVcmxIZWxwZXJzLmpvaW4oamVua2luc1VybCwgXCJqb2JcIiwgam9iTmFtZSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGpvYlVybCkge1xuICAgICAgICBidWlsZC4kam9iTGluayA9IGpvYlVybDtcbiAgICAgICAgaWYgKGJ1aWxkSWQpIHtcbiAgICAgICAgICAvL2J1aWxkLiRsb2dzTGluayA9IFVybEhlbHBlcnMuam9pbihidWlsZC4kYnVpbGRMaW5rLCBcImNvbnNvbGVcIik7XG4gICAgICAgICAgYnVpbGQuJGxvZ3NMaW5rID0gVXJsSGVscGVycy5qb2luKFwiL3dvcmtzcGFjZXNcIiwgd29ya3NwYWNlTmFtZSwgXCJwcm9qZWN0c1wiLCBwcm9qZWN0SWQsIFwiamVua2luc0pvYlwiLCBqb2JOYW1lLCBcImxvZ1wiLCBidWlsZElkKTtcbiAgICAgICAgICBidWlsZC4kcGlwZWxpbmVMaW5rID0gVXJsSGVscGVycy5qb2luKFwiL3dvcmtzcGFjZXNcIiwgd29ya3NwYWNlTmFtZSwgXCJwcm9qZWN0c1wiLCBwcm9qZWN0SWQsIFwiamVua2luc0pvYlwiLCBqb2JOYW1lLCBcInBpcGVsaW5lXCIsIGJ1aWxkSWQpO1xuICAgICAgICAgIGJ1aWxkLiRidWlsZHNMaW5rID0gVXJsSGVscGVycy5qb2luKFwiL3dvcmtzcGFjZXNcIiwgd29ya3NwYWNlTmFtZSwgXCJwcm9qZWN0c1wiLCBwcm9qZWN0SWQsIFwiamVua2luc0pvYlwiLCBqb2JOYW1lKTtcbiAgICAgICAgICAvL2J1aWxkLiRidWlsZExpbmsgPSBVcmxIZWxwZXJzLmpvaW4oam9iVXJsLCBidWlsZC5pZCk7XG4gICAgICAgICAgYnVpbGQuJGJ1aWxkTGluayA9IGJ1aWxkLiRsb2dzTGluaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgYnVpbGQuJGljb25DbGFzcyA9ICRpY29uQ2xhc3M7XG4gICAgfVxuICAgIHJldHVybiBudW1iZXI7XG4gIH1cblxuXG4gIGV4cG9ydCBmdW5jdGlvbiBqZW5raW5zTGluaygpIHtcbiAgICB2YXIgU2VydmljZVJlZ2lzdHJ5ID0gS3ViZXJuZXRlcy5pbmplY3QoXCJTZXJ2aWNlUmVnaXN0cnlcIik7XG4gICAgaWYgKFNlcnZpY2VSZWdpc3RyeSkge1xuICAgICAgcmV0dXJuIFNlcnZpY2VSZWdpc3RyeS5zZXJ2aWNlTGluayhqZW5raW5zU2VydmljZU5hbWUpO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBmb3JnZVJlYWR5TGluaygpIHtcbiAgICB2YXIgU2VydmljZVJlZ2lzdHJ5ID0gS3ViZXJuZXRlcy5pbmplY3QoXCJTZXJ2aWNlUmVnaXN0cnlcIik7XG4gICAgaWYgKFNlcnZpY2VSZWdpc3RyeSkge1xuICAgICAgcmV0dXJuIFNlcnZpY2VSZWdpc3RyeS5zZXJ2aWNlUmVhZHlMaW5rKEt1YmVybmV0ZXMuZmFicmljOEZvcmdlU2VydmljZU5hbWUpO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBlbnJpY2hKZW5raW5zUGlwZWxpbmVKb2Ioam9iLCBwcm9qZWN0SWQsIGpvYklkKSB7XG4gICAgaWYgKGpvYikge1xuICAgICAgam9iLiRwcm9qZWN0ID0gcHJvamVjdElkO1xuICAgICAgam9iLiRqb2JJZCA9IGpvYklkO1xuICAgICAgYW5ndWxhci5mb3JFYWNoKGpvYi5idWlsZHMsIChidWlsZCkgPT4ge1xuICAgICAgICBlbnJpY2hKZW5raW5zU3RhZ2VzKGJ1aWxkLCBwcm9qZWN0SWQsIGpvYklkKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBlbnJpY2hKZW5raW5zU3RhZ2VzKGJ1aWxkLCBwcm9qZWN0SWQsIGpvYk5hbWUpIHtcbiAgICBpZiAoYnVpbGQpIHtcbiAgICAgIGJ1aWxkLiRwcm9qZWN0ID0gcHJvamVjdElkO1xuICAgICAgYnVpbGQuJGpvYklkID0gam9iTmFtZTtcbiAgICAgIGJ1aWxkLiR0aW1lc3RhbXAgPSBhc0RhdGUoYnVpbGQudGltZUluTWlsbGlzKTtcbiAgICAgIGJ1aWxkLiRpY29uQ2xhc3MgPSBjcmVhdGVCdWlsZFN0YXR1c0ljb25DbGFzcyhidWlsZC5yZXN1bHQgfHwgXCJOT1RfU1RBUlRFRFwiKTtcblxuICAgICAgdmFyIHdvcmtzcGFjZU5hbWUgPSBLdWJlcm5ldGVzLmN1cnJlbnRLdWJlcm5ldGVzTmFtZXNwYWNlKCk7XG4gICAgICB2YXIgcGFyYW1ldGVycyA9IGJ1aWxkLnBhcmFtZXRlcnM7XG4gICAgICB2YXIgJHBhcmFtZXRlckNvdW50ID0gMDtcbiAgICAgIHZhciAkcGFyYW1ldGVyVGV4dCA9IFwiTm8gcGFyYW1ldGVyc1wiO1xuICAgICAgaWYgKHBhcmFtZXRlcnMpIHtcbiAgICAgICAgJHBhcmFtZXRlckNvdW50ID0gXy5rZXlzKHBhcmFtZXRlcnMpLmxlbmd0aCB8fCAwO1xuICAgICAgICAkcGFyYW1ldGVyVGV4dCA9IEt1YmVybmV0ZXMubGFiZWxzVG9TdHJpbmcocGFyYW1ldGVycywgXCIgXCIpO1xuICAgICAgfVxuICAgICAgYnVpbGQuJHBhcmFtZXRlckNvdW50ID0gJHBhcmFtZXRlckNvdW50O1xuICAgICAgYnVpbGQuJHBhcmFtZXRlclRleHQgPSAkcGFyYW1ldGVyVGV4dDtcbiAgICAgIHZhciBqZW5raW5zVXJsID0gamVua2luc0xpbmsoKTtcbiAgICAgIGlmIChqZW5raW5zVXJsKSB7XG4gICAgICAgIHZhciB1cmwgPSBidWlsZC51cmw7XG4gICAgICAgIGlmICh1cmwpIHtcbi8qXG4gICAgICAgICAgYnVpbGQuJHZpZXdMaW5rID0gVXJsSGVscGVycy5qb2luKGplbmtpbnNVcmwsIHVybCk7XG4gICAgICAgICAgYnVpbGQuJGxvZ0xpbmsgPSBVcmxIZWxwZXJzLmpvaW4oYnVpbGQuJHZpZXdMaW5rLCBcImxvZ1wiKTtcbiovXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGJ1aWxkLiRsb2dMaW5rID0gVXJsSGVscGVycy5qb2luKFwiL3dvcmtzcGFjZXNcIiwgd29ya3NwYWNlTmFtZSwgXCJwcm9qZWN0c1wiLCBwcm9qZWN0SWQsIFwiamVua2luc0pvYlwiLCBqb2JOYW1lLCBcImxvZ1wiLCBidWlsZC5pZCk7XG4gICAgICBidWlsZC4kdmlld0xpbmsgPSBidWlsZC4kbG9nTGluaztcblxuICAgICAgYW5ndWxhci5mb3JFYWNoKGJ1aWxkLnN0YWdlcywgKHN0YWdlKSA9PiB7XG4gICAgICAgIGVucmljaEplbmtpbnNTdGFnZShzdGFnZSwgYnVpbGQpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBidWlsZDtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBlbnJpY2hKZW5raW5zU3RhZ2Uoc3RhZ2UsIGJ1aWxkID0gbnVsbCkge1xuICAgIGlmIChzdGFnZSkge1xuICAgICAgaWYgKGJ1aWxkKSB7XG4gICAgICAgIHN0YWdlLiRidWlsZElkID0gYnVpbGQuaWQ7XG4gICAgICAgIHN0YWdlLiRwcm9qZWN0ID0gYnVpbGQuJHByb2plY3Q7XG4gICAgICB9XG4gICAgICB2YXIgcHJvamVjdElkID0gYnVpbGQuJHByb2plY3Q7XG4gICAgICB2YXIgam9iTmFtZSA9IGJ1aWxkLiRqb2JJZCB8fCBwcm9qZWN0SWQ7XG4gICAgICB2YXIgYnVpbGRJZCA9IGJ1aWxkLmlkO1xuICAgICAgdmFyIHdvcmtzcGFjZU5hbWUgPSBLdWJlcm5ldGVzLmN1cnJlbnRLdWJlcm5ldGVzTmFtZXNwYWNlKCk7XG4gICAgICBzdGFnZS4kYmFja2dyb3VuZENsYXNzID0gIGNyZWF0ZUJ1aWxkU3RhdHVzQmFja2dyb3VuZENsYXNzKHN0YWdlLnN0YXR1cyk7XG4gICAgICBzdGFnZS4kaWNvbkNsYXNzID0gY3JlYXRlQnVpbGRTdGF0dXNJY29uQ2xhc3Moc3RhZ2Uuc3RhdHVzKTtcbiAgICAgIHN0YWdlLiRzdGFydFRpbWUgPSBhc0RhdGUoc3RhZ2Uuc3RhcnRUaW1lKTtcbiAgICAgIGlmICghc3RhZ2UuZHVyYXRpb24pIHtcbiAgICAgICAgc3RhZ2UuZHVyYXRpb24gPSAwO1xuICAgICAgfVxuICAgICAgdmFyIGplbmtpbnNVcmwgPSBqZW5raW5zTGluaygpO1xuICAgICAgaWYgKGplbmtpbnNVcmwpIHtcbiAgICAgICAgdmFyIHVybCA9IHN0YWdlLnVybDtcbiAgICAgICAgaWYgKHVybCkge1xuICAgICAgICAgIHN0YWdlLiR2aWV3TGluayA9IFVybEhlbHBlcnMuam9pbihqZW5raW5zVXJsLCB1cmwpO1xuICAgICAgICAgIHN0YWdlLiRsb2dMaW5rID0gVXJsSGVscGVycy5qb2luKHN0YWdlLiR2aWV3TGluaywgXCJsb2dcIik7XG4gICAgICAgICAgaWYgKHByb2plY3RJZCAmJiBidWlsZElkKSB7XG4gICAgICAgICAgICBzdGFnZS4kbG9nTGluayA9IFVybEhlbHBlcnMuam9pbihcIi93b3Jrc3BhY2VzXCIsIHdvcmtzcGFjZU5hbWUsIFwicHJvamVjdHNcIiwgcHJvamVjdElkLCBcImplbmtpbnNKb2JcIiwgam9iTmFtZSwgXCJsb2dcIiwgYnVpbGRJZCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwiLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4uLy4uL2luY2x1ZGVzLnRzXCIvPlxubW9kdWxlIERldmVsb3BlciB7XG5cbiAgZXhwb3J0IHZhciBjb250ZXh0ID0gJy93b3Jrc3BhY2VzJztcbiAgZXhwb3J0IHZhciBoYXNoID0gJyMnICsgY29udGV4dDtcbiAgZXhwb3J0IHZhciBwbHVnaW5OYW1lID0gJ0RldmVsb3Blcic7XG4gIGV4cG9ydCB2YXIgcGx1Z2luUGF0aCA9ICdwbHVnaW5zL2RldmVsb3Blci8nO1xuICBleHBvcnQgdmFyIHRlbXBsYXRlUGF0aCA9IHBsdWdpblBhdGggKyAnaHRtbC8nO1xuICBleHBvcnQgdmFyIGxvZzpMb2dnaW5nLkxvZ2dlciA9IExvZ2dlci5nZXQocGx1Z2luTmFtZSk7XG5cbiAgZXhwb3J0IHZhciBqZW5raW5zU2VydmljZU5hbWUgPSBcImplbmtpbnNcIjtcbiAgZXhwb3J0IHZhciBqZW5raW5zU2VydmljZU5hbWVBbmRQb3J0ID0gamVua2luc1NlcnZpY2VOYW1lICsgXCI6aHR0cFwiO1xuXG4gIGV4cG9ydCB2YXIgamVua2luc0h0dHBDb25maWcgPSB7XG4gICAgaGVhZGVyczoge1xuICAgICAgQWNjZXB0OiBcImFwcGxpY2F0aW9uL2pzb24sIHRleHQveC1qc29uLCB0ZXh0L3BsYWluXCJcbiAgICB9XG4gIH07XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgdmFsdWUgaGFzbid0IGNoYW5nZWQgZnJvbSB0aGUgbGFzdCBjYWNoZWQgSlNPTiB2ZXJzaW9uIG9mIHRoaXMgb2JqZWN0XG4gICAqL1xuICBleHBvcnQgZnVuY3Rpb24gaGFzT2JqZWN0Q2hhbmdlZCh2YWx1ZSwgc3RhdGUpIHtcbiAgICB2YXIganNvbiA9IGFuZ3VsYXIudG9Kc29uKHZhbHVlIHx8IFwiXCIpO1xuICAgIHZhciBvbGRKc29uID0gc3RhdGUuanNvbjtcbiAgICBzdGF0ZS5qc29uID0ganNvbjtcbiAgICByZXR1cm4gIW9sZEpzb24gfHwganNvbiAhPT0gb2xkSnNvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBMZXRzIGxvYWQgdGhlIHByb2plY3QgdmVyc2lvbnMgZm9yIHRoZSBnaXZlbiBuYW1lc3BhY2VcbiAgICovXG4gIGV4cG9ydCBmdW5jdGlvbiBsb2FkUHJvamVjdFZlcnNpb25zKCRzY29wZSwgJGh0dHAsIHByb2plY3QsIGVudiwgbnMsIGFuc3dlciwgY2FjaGVzKSB7XG4gICAgdmFyIHVybCA9IEt1YmVybmV0ZXMucmVzb3VyY2VzVXJpRm9yS2luZChLdWJlcm5ldGVzLldhdGNoVHlwZXMuUkVQTElDQVRJT05fQ09OVFJPTExFUlMsIG5zKSArIFwiP2xhYmVsU2VsZWN0b3I9cHJvamVjdFwiO1xuXG4gICAgdmFyIHByb2plY3RBbm5vdGF0aW9uID0gXCJwcm9qZWN0XCI7XG4gICAgdmFyIHZlcnNpb25Bbm5vdGF0aW9uID0gXCJ2ZXJzaW9uXCI7XG5cbiAgICAkaHR0cC5nZXQodXJsKS5cbiAgICAgIHN1Y2Nlc3MoZnVuY3Rpb24gKGRhdGEsIHN0YXR1cywgaGVhZGVycywgY29uZmlnKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgdmFyIHByb2plY3RJbmZvcyA9IHt9O1xuICAgICAgICAgIHZhciBwcm9qZWN0TmFtZXNwYWNlID0gcHJvamVjdC4kbmFtZXNwYWNlO1xuICAgICAgICAgIHZhciBwcm9qZWN0TmFtZSA9IHByb2plY3QuJG5hbWU7XG5cbiAgICAgICAgICAvL2Vudi5wcm9qZWN0VmVyc2lvbnMgPSBwcm9qZWN0SW5mb3M7XG4gICAgICAgICAgYW5ndWxhci5mb3JFYWNoKGRhdGEuaXRlbXMsIChpdGVtKSA9PiB7XG4gICAgICAgICAgICB2YXIgbWV0YWRhdGEgPSBpdGVtLm1ldGFkYXRhIHx8IHt9O1xuICAgICAgICAgICAgdmFyIG5hbWUgPSBtZXRhZGF0YS5uYW1lO1xuICAgICAgICAgICAgdmFyIGxhYmVscyA9IG1ldGFkYXRhLmxhYmVscyB8fCB7fTtcbiAgICAgICAgICAgIHZhciBhbm5vdGF0aW9ucyA9IG1ldGFkYXRhLmFubm90YXRpb25zIHx8IHt9O1xuXG4gICAgICAgICAgICB2YXIgcHJvamVjdCA9IGxhYmVsc1twcm9qZWN0QW5ub3RhdGlvbl07XG4gICAgICAgICAgICB2YXIgdmVyc2lvbiA9IGxhYmVsc1t2ZXJzaW9uQW5ub3RhdGlvbl07XG4gICAgICAgICAgICBpZiAocHJvamVjdCAmJiB2ZXJzaW9uKSB7XG4gICAgICAgICAgICAgIHZhciBwcm9qZWN0cyA9IHByb2plY3RJbmZvc1twcm9qZWN0XTtcbiAgICAgICAgICAgICAgaWYgKCFwcm9qZWN0cykge1xuICAgICAgICAgICAgICAgIHByb2plY3RzID0ge1xuICAgICAgICAgICAgICAgICAgcHJvamVjdDogcHJvamVjdCxcbiAgICAgICAgICAgICAgICAgIHZlcnNpb25zOiB7fVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgcHJvamVjdEluZm9zW3Byb2plY3RdID0gcHJvamVjdHM7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgdmFyIHZlcnNpb25JbmZvID0gcHJvamVjdHMudmVyc2lvbnNbdmVyc2lvbl07XG4gICAgICAgICAgICAgIGlmICghdmVyc2lvbkluZm8pIHtcbiAgICAgICAgICAgICAgICB2ZXJzaW9uSW5mbyA9IHtcbiAgICAgICAgICAgICAgICAgIHJlcGxpY2F0aW9uQ29udHJvbGxlcnM6IFtdXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBwcm9qZWN0cy52ZXJzaW9uc1t2ZXJzaW9uXSA9IHZlcnNpb25JbmZvO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHZlcnNpb25JbmZvLnJlcGxpY2F0aW9uQ29udHJvbGxlcnMucHVzaChpdGVtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChuYW1lKSB7XG4gICAgICAgICAgICAgIGl0ZW0uJG5hbWUgPSBuYW1lO1xuICAgICAgICAgICAgICBpZiAocHJvamVjdE5hbWVzcGFjZSAmJiBwcm9qZWN0TmFtZSkge1xuICAgICAgICAgICAgICAgIGl0ZW0uJHZpZXdMaW5rID0gVXJsSGVscGVycy5qb2luKFwiL3dvcmtzcGFjZXMvXCIsIHByb2plY3ROYW1lc3BhY2UsIFwicHJvamVjdHNcIiwgcHJvamVjdE5hbWUsIFwibmFtZXNwYWNlXCIsIG5zLCBcInJlcGxpY2F0aW9uQ29udHJvbGxlcnNcIiwgbmFtZSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGl0ZW0uJGJ1aWxkSWQgPSBhbm5vdGF0aW9uc1tcImZhYnJpYzguaW8vYnVpbGQtaWRcIl07XG4gICAgICAgICAgICBpdGVtLiRidWlsZFVybCA9IGFubm90YXRpb25zW1wiZmFicmljOC5pby9idWlsZC11cmxcIl07XG4gICAgICAgICAgICBpdGVtLiRnaXRDb21taXQgPSBhbm5vdGF0aW9uc1tcImZhYnJpYzguaW8vZ2l0LWNvbW1pdFwiXTtcbiAgICAgICAgICAgIGl0ZW0uJGdpdFVybCA9IGFubm90YXRpb25zW1wiZmFicmljOC5pby9naXQtdXJsXCJdO1xuICAgICAgICAgICAgaXRlbS4kZ2l0QnJhbmNoID0gYW5ub3RhdGlvbnNbXCJmYWJyaWM4LmlvL2dpdC1icmFuY2hcIl07XG5cbiAgICAgICAgICAgIHZhciBzcGVjID0gaXRlbS5zcGVjIHx8IHt9O1xuICAgICAgICAgICAgdmFyIHNlbGVjdG9yID0gc3BlYy5zZWxlY3RvcjtcbiAgICAgICAgICAgIGlmIChzZWxlY3Rvcikge1xuICAgICAgICAgICAgICBsb2FkUHJvamVjdFBvZENvdW50ZXJzKCRzY29wZSwgJGh0dHAsIHByb2plY3QsIGl0ZW0sIHNlbGVjdG9yLCBucywgcHJvamVjdE5hbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgdmFyIGNhY2hlID0gY2FjaGVzW25zXTtcbiAgICAgICAgICBpZiAoIWNhY2hlKSB7XG4gICAgICAgICAgICBjYWNoZSA9IHt9O1xuICAgICAgICAgICAgY2FjaGVzW25zXSA9IGNhY2hlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoaGFzT2JqZWN0Q2hhbmdlZChwcm9qZWN0SW5mb3MsIGNhY2hlKSkge1xuICAgICAgICAgICAgbG9nLmluZm8oXCJwcm9qZWN0IHZlcnNpb25zIGhhcyBjaGFuZ2VkIVwiKTtcbiAgICAgICAgICAgIGFuc3dlcltuc10gPSBwcm9qZWN0SW5mb3M7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KS5cbiAgICAgIGVycm9yKGZ1bmN0aW9uIChkYXRhLCBzdGF0dXMsIGhlYWRlcnMsIGNvbmZpZykge1xuICAgICAgICBsb2cud2FybihcIkZhaWxlZCB0byBsb2FkIFwiICsgdXJsICsgXCIgXCIgKyBkYXRhICsgXCIgXCIgKyBzdGF0dXMpO1xuICAgICAgfSk7XG4gIH1cblxuICBmdW5jdGlvbiBsb2FkUHJvamVjdFBvZENvdW50ZXJzKCRzY29wZSwgJGh0dHAsIHByb2plY3QsIHJjLCBzZWxlY3RvciwgbnMsIHByb2plY3ROYW1lKSB7XG4gICAgdmFyIHNlbGVjdG9yVGV4dCA9IEt1YmVybmV0ZXMubGFiZWxzVG9TdHJpbmcoc2VsZWN0b3IsIFwiLFwiKTtcbiAgICB2YXIgdXJsID0gS3ViZXJuZXRlcy5yZXNvdXJjZXNVcmlGb3JLaW5kKEt1YmVybmV0ZXMuV2F0Y2hUeXBlcy5QT0RTLCBucykgKyBcIj9sYWJlbFNlbGVjdG9yPVwiICsgZW5jb2RlVVJJQ29tcG9uZW50KHNlbGVjdG9yVGV4dCk7XG4gICAgdmFyIHBvZExpbmtVcmwgPSBVcmxIZWxwZXJzLmpvaW4ocHJvamVjdExpbmsocHJvamVjdE5hbWUpLCBcIm5hbWVzcGFjZVwiLCBucywgXCJwb2RzXCIpO1xuICAgICRodHRwLmdldCh1cmwpLlxuICAgICAgc3VjY2VzcyhmdW5jdGlvbiAoZGF0YSwgc3RhdHVzLCBoZWFkZXJzLCBjb25maWcpIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICB2YXIgcG9kcyA9IGRhdGEuaXRlbXM7XG4gICAgICAgICAgaWYgKHBvZHMpIHtcbiAgICAgICAgICAgIHJjLnBvZHMgPSBbXTtcbiAgICAgICAgICAgIHJjLiRwb2RDb3VudGVycyA9IEt1YmVybmV0ZXMuY3JlYXRlUG9kQ291bnRlcnMoc2VsZWN0b3IsIHBvZHMsIHJjLnBvZHMsIHNlbGVjdG9yVGV4dCwgcG9kTGlua1VybCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KS5cbiAgICAgIGVycm9yKGZ1bmN0aW9uIChkYXRhLCBzdGF0dXMsIGhlYWRlcnMsIGNvbmZpZykge1xuICAgICAgICBsb2cud2FybihcIkZhaWxlZCB0byBsb2FkIFwiICsgdXJsICsgXCIgXCIgKyBkYXRhICsgXCIgXCIgKyBzdGF0dXMpO1xuICAgICAgfSk7XG4gIH1cblxufSIsIi8vLyA8cmVmZXJlbmNlIHBhdGg9XCIuLi8uLi9pbmNsdWRlcy50c1wiLz5cbm1vZHVsZSBEZXZlbG9wZXIge1xuXG4vKlxuICBmdW5jdGlvbiBob21lQnJlYWRjcnVtYigpIHtcbiAgICByZXR1cm4ge1xuICAgICAgaHJlZjogXCIvaG9tZVwiLFxuICAgICAgbGFiZWw6IFwiSG9tZVwiLFxuICAgICAgdGl0bGU6IFwiR28gdG8gdGhlIGhvbWUgcGFnZVwiXG4gICAgfVxuICB9XG4qL1xuICBmdW5jdGlvbiBkZXZlbG9wQnJlYWRjcnVtYigpIHtcbiAgICByZXR1cm4ge1xuICAgICAgaHJlZjogXCIvd29ya3NwYWNlc1wiLFxuICAgICAgbGFiZWw6IFwiRGV2ZWxvcFwiLFxuICAgICAgdGl0bGU6IFwiVmlldyBhbGwgdGhlIGRldmVsb3BlciB3b3Jrc3BhY2VzXCJcbiAgICB9O1xuICB9XG4gIGZ1bmN0aW9uIG9wZXJhdGVCcmVhZGNydW1iKCkge1xuICAgIHJldHVybiB7XG4gICAgICBocmVmOiBcIi9uYW1lc3BhY2VzXCIsXG4gICAgICBsYWJlbDogXCJNYW5hZ2VcIixcbiAgICAgIHRpdGxlOiBcIk1hbmFnZSB0aGUgbmFtZXNwYWNlcyBhbmQgcmVzb3VyY2VzIGluc2lkZSB0aGVtXCJcbiAgICB9O1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIHdvcmtzcGFjZUxpbmsoKSB7XG4gICAgcmV0dXJuIFVybEhlbHBlcnMuam9pbihcIi93b3Jrc3BhY2VzXCIsIEt1YmVybmV0ZXMuY3VycmVudEt1YmVybmV0ZXNOYW1lc3BhY2UoKSk7XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gcHJvamVjdExpbmsocHJvamVjdElkKSB7XG4gICAgdmFyIGxpbmsgPSB3b3Jrc3BhY2VMaW5rKCk7XG4gICAgaWYgKHByb2plY3RJZCkge1xuICAgICAgcmV0dXJuIFVybEhlbHBlcnMuam9pbihsaW5rLCBcIi9wcm9qZWN0c1wiLCBwcm9qZWN0SWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbGluaztcbiAgICB9XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gY3JlYXRlV29ya3NwYWNlc0JyZWFkY3J1bWJzKGRldmVsb3BQZXJzcGVjdGl2ZSkge1xuLypcbiAgICBpZiAoZGV2ZWxvcFBlcnNwZWN0aXZlKSB7XG4gICAgICByZXR1cm4gW1xuICAgICAgICAvL2hvbWVCcmVhZGNydW1iKCksXG4gICAgICAgIGRldmVsb3BCcmVhZGNydW1iKClcbiAgICAgIF07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBbXG4gICAgICAgIC8vaG9tZUJyZWFkY3J1bWIoKSxcbiAgICAgICAgb3BlcmF0ZUJyZWFkY3J1bWIoKVxuICAgICAgXTtcbiAgICB9XG4qL1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVdvcmtzcGFjZXNTdWJOYXZCYXJzKGRldmVsb3BQZXJzcGVjdGl2ZSkge1xuICAgICAgcmV0dXJuIGFjdGl2YXRlQ3VycmVudChbXG4gICAgICAgIGRldmVsb3BCcmVhZGNydW1iKCksXG4gICAgICAgIG9wZXJhdGVCcmVhZGNydW1iKClcbiAgICAgIF0pO1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVdvcmtzcGFjZUJyZWFkY3J1bWJzKGNoaWxkcmVuID0gbnVsbCwgd29ya3NwYWNlTmFtZSA9IG51bGwpIHtcbiAgICB2YXIgYW5zd2VyID0gW1xuICAgICAgLy9ob21lQnJlYWRjcnVtYigpLFxuICAgICAgZGV2ZWxvcEJyZWFkY3J1bWIoKVxuICAgIF07XG4gICAgaWYgKCF3b3Jrc3BhY2VOYW1lKSB7XG4gICAgICB3b3Jrc3BhY2VOYW1lID0gS3ViZXJuZXRlcy5jdXJyZW50S3ViZXJuZXRlc05hbWVzcGFjZSgpO1xuICAgIH1cbiAgICBpZiAod29ya3NwYWNlTmFtZSkge1xuICAgICAgYW5zd2VyLnB1c2goXG4gICAgICAgIHtcbiAgICAgICAgICBocmVmOiBcIi93b3Jrc3BhY2VzL1wiICsgd29ya3NwYWNlTmFtZSxcbiAgICAgICAgICBsYWJlbDogd29ya3NwYWNlTmFtZSxcbiAgICAgICAgICB0aXRsZTogXCJWaWV3IHRoZSB3b3Jrc3BhY2U6IFwiICsgd29ya3NwYWNlTmFtZVxuICAgICAgICB9XG4gICAgICApO1xuICAgICAgcmV0dXJuIHByb2Nlc3NDaGlsZHJlbihhbnN3ZXIsIGNoaWxkcmVuKTtcbiAgICB9XG4gICAgcmV0dXJuIGFuc3dlcjtcbiAgfVxuXG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUVudmlyb25tZW50QnJlYWRjcnVtYnMoJHNjb3BlLCAkbG9jYXRpb24sICRyb3V0ZVBhcmFtcykge1xuICAgIHZhciBucyA9IEt1YmVybmV0ZXMuY3VycmVudEt1YmVybmV0ZXNOYW1lc3BhY2UoKTtcbiAgICB2YXIgbmFtZXNwYWNlc0xpbmsgPSBcIi9rdWJlcm5ldGVzL25hbWVzcGFjZVwiO1xuICAgIHZhciB3b3Jrc3BhY2VOYW1lID0gJHJvdXRlUGFyYW1zLndvcmtzcGFjZTtcbiAgICB2YXIgcHJvamVjdCA9ICRyb3V0ZVBhcmFtcy5wcm9qZWN0O1xuICAgIGlmICh3b3Jrc3BhY2VOYW1lICYmIHByb2plY3QpIHtcbiAgICAgIHZhciBwcm9qZWN0TGluayA9IFVybEhlbHBlcnMuam9pbihcIi93b3Jrc3BhY2VzXCIsIHdvcmtzcGFjZU5hbWUsIFwicHJvamVjdHNcIiwgcHJvamVjdCk7XG4gICAgICAkc2NvcGUuJHByb2plY3RMaW5rID0gcHJvamVjdExpbms7XG4gICAgICAkc2NvcGUuJHByb2plY3ROYW1lc3BhY2VMaW5rID0gVXJsSGVscGVycy5qb2luKHByb2plY3RMaW5rLCBcIm5hbWVzcGFjZVwiLCBucyk7XG4gICAgICBuYW1lc3BhY2VzTGluayA9IFVybEhlbHBlcnMuam9pbihwcm9qZWN0TGluaywgXCJuYW1lc3BhY2VcIik7XG4gICAgICAvLyBUT0RPIHVzZSB0aGUgbG9naWNhbCBuYW1lP1xuICAgICAgdmFyIGVudk5hbWUgPSBucztcbiAgICAgIHZhciBidWlsZENvbmZpZyA9IG51bGw7XG4gICAgICBpZiAoJHNjb3BlLm1vZGVsKSB7XG4gICAgICAgIGJ1aWxkQ29uZmlnID0gJHNjb3BlLm1vZGVsLmdldFByb2plY3QocHJvamVjdCwgd29ya3NwYWNlTmFtZSk7XG4gICAgICAgIGlmIChidWlsZENvbmZpZykge1xuICAgICAgICAgIC8vIGxldHMgZmluZCB0aGUgbGFiZWwgZm9yIHRoZSBuYW1lc3BhY2VcbiAgICAgICAgICB2YXIgZW52ID0gXy5maW5kKGJ1aWxkQ29uZmlnLmVudmlyb25tZW50cywgeyBuYW1lc3BhY2U6IG5zfSk7XG4gICAgICAgICAgaWYgKGVudikge1xuICAgICAgICAgICAgZW52TmFtZSA9IGVudlsnbGFiZWwnXSB8fCBlbnZOYW1lO1xuICAgICAgICAgIH1cbiAgICAgICAgICBsb2cuaW5mbyhcImVudiBmb3VuZDogXCIgKyBlbnYgKyBcIiBmb3IgbmFtZXBwYWNlIFwiICsgbnMgKyBcIiBvbiBidWlsZENvbmZpZzogXCIgKyBidWlsZENvbmZpZyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHZhciBjaGlsZHJlbiA9IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBocmVmOiBVcmxIZWxwZXJzLmpvaW4ocHJvamVjdExpbmssIFwiZW52aXJvbm1lbnRzXCIpLFxuICAgICAgICAgICAgbGFiZWw6IFwiRW52aXJvbm1lbnRzXCIsXG4gICAgICAgICAgICB0aXRsZTogXCJWaWV3IHRoZSBlbnZpcm9ubWVudHMgZm9yIHRoaXMgcHJvamVjdFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBocmVmOiBVcmxIZWxwZXJzLmpvaW4obmFtZXNwYWNlc0xpbmssIG5zLCBcImFwcHNcIiksXG4gICAgICAgICAgICBsYWJlbDogZW52TmFtZSxcbiAgICAgICAgICAgIHRpdGxlOiBcIlZpZXcgdGhlIHJ1bnRpbWUgb2YgdGhlIHdvcmtzcGFjZTogXCIgKyBuc1xuICAgICAgICAgIH1cbiAgICAgICAgICBdO1xuICAgICAgcmV0dXJuIGNyZWF0ZVByb2plY3RCcmVhZGNydW1icyhwcm9qZWN0LCBjaGlsZHJlbiwgd29ya3NwYWNlTmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICghd29ya3NwYWNlTmFtZSkge1xuICAgICAgICB3b3Jrc3BhY2VOYW1lID0gS3ViZXJuZXRlcy5jdXJyZW50S3ViZXJuZXRlc05hbWVzcGFjZSgpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGFjdGl2YXRlQ3VycmVudChbXG4gICAgICAgIC8vaG9tZUJyZWFkY3J1bWIoKSxcbiAgICAgICAgb3BlcmF0ZUJyZWFkY3J1bWIoKSxcbiAgICAgICAge1xuICAgICAgICAgIGhyZWY6IFVybEhlbHBlcnMuam9pbihuYW1lc3BhY2VzTGluaywgbnMsIFwiYXBwc1wiKSxcbiAgICAgICAgICBsYWJlbDogd29ya3NwYWNlTmFtZSxcbiAgICAgICAgICB0aXRsZTogXCJWaWV3IHRoZSBydW50aW1lIG9mIHRoZSB3b3Jrc3BhY2U6IFwiICsgbnNcbiAgICAgICAgfVxuICAgICAgXSk7XG4gICAgfVxuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVByb2plY3RCcmVhZGNydW1icyhwcm9qZWN0TmFtZSA9IG51bGwsIGNoaWxkcmVuID0gbnVsbCwgd29ya3NwYWNlTmFtZSA9IG51bGwpIHtcbiAgICBpZiAoIXdvcmtzcGFjZU5hbWUpIHtcbiAgICAgIHdvcmtzcGFjZU5hbWUgPSBLdWJlcm5ldGVzLmN1cnJlbnRLdWJlcm5ldGVzTmFtZXNwYWNlKCk7XG4gICAgfVxuICAgIHZhciBhbnN3ZXIgPSBjcmVhdGVXb3Jrc3BhY2VCcmVhZGNydW1icyhudWxsLCB3b3Jrc3BhY2VOYW1lKTtcbiAgICBpZiAod29ya3NwYWNlTmFtZSkge1xuICAgICAgaWYgKHByb2plY3ROYW1lKSB7XG4gICAgICAgIGFuc3dlci5wdXNoKFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGhyZWY6IFVybEhlbHBlcnMuam9pbihcIi93b3Jrc3BhY2VzXCIsIHdvcmtzcGFjZU5hbWUsIFwicHJvamVjdHNcIiksXG4gICAgICAgICAgICBsYWJlbDogXCJQcm9qZWN0c1wiLFxuICAgICAgICAgICAgdGl0bGU6IFwiVmlldyBhbGwgdGhlIHByb2plY3RzXCJcbiAgICAgICAgICB9XG4gICAgICAgICk7XG5cbiAgICAgICAgYW5zd2VyLnB1c2goXG4gICAgICAgICAge1xuICAgICAgICAgICAgaHJlZjogVXJsSGVscGVycy5qb2luKFwiL3dvcmtzcGFjZXNcIiwgd29ya3NwYWNlTmFtZSwgXCJwcm9qZWN0c1wiLCBwcm9qZWN0TmFtZSksXG4gICAgICAgICAgICBsYWJlbDogcHJvamVjdE5hbWUsXG4gICAgICAgICAgICB0aXRsZTogXCJWaWV3IHRoZSBwcm9qZWN0OiBcIiArIHByb2plY3ROYW1lXG4gICAgICAgICAgfVxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHByb2Nlc3NDaGlsZHJlbihhbnN3ZXIsIGNoaWxkcmVuKTtcbiAgICB9XG4gICAgcmV0dXJuIGFuc3dlcjtcbiAgfVxuXG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVdvcmtzcGFjZVN1Yk5hdkJhcnMoKSB7XG4gICAgdmFyIHdvcmtzcGFjZU5hbWUgPSBLdWJlcm5ldGVzLmN1cnJlbnRLdWJlcm5ldGVzTmFtZXNwYWNlKCk7XG4gICAgcmV0dXJuIGFjdGl2YXRlQ3VycmVudChbXG4gICAgICB7XG4gICAgICAgIGhyZWY6IFVybEhlbHBlcnMuam9pbihcIi93b3Jrc3BhY2VzXCIsIHdvcmtzcGFjZU5hbWUpLFxuICAgICAgICBsYWJlbDogXCJQcm9qZWN0c1wiLFxuICAgICAgICB0aXRsZTogXCJWaWV3IHRoZSBwcm9qZWN0cyBmb3IgdGhpcyB3b3Jrc3BhY2VcIlxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaXNWYWxpZDogKCkgPT4gamVua2luc0xpbmsoKSxcbiAgICAgICAgaHJlZjogVXJsSGVscGVycy5qb2luKFwiL3dvcmtzcGFjZXNcIiwgd29ya3NwYWNlTmFtZSwgXCJqZW5raW5zSm9iXCIpLFxuICAgICAgICBsYWJlbDogXCJCdWlsZHNcIixcbiAgICAgICAgdGl0bGU6IFwiVmlldyB0aGUgcHJvamVjdHMgZm9yIHRoaXMgd29ya3NwYWNlXCJcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGhyZWY6IFVybEhlbHBlcnMuam9pbihcIi9rdWJlcm5ldGVzL25hbWVzcGFjZVwiLCB3b3Jrc3BhY2VOYW1lLCBcImFwcHNcIiksXG4gICAgICAgIGxhYmVsOiBcIlJ1bnRpbWVcIixcbiAgICAgICAgdGl0bGU6IFwiVmlldyB0aGUgcnVudGltZSBlbnZpcm9ubWVudCBmb3IgdGhpcyB3b3Jrc3BhY2VcIlxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaHJlZjogVXJsSGVscGVycy5qb2luKFwiL3dvcmtzcGFjZXNcIiwgd29ya3NwYWNlTmFtZSwgXCJkZXRhaWxcIiksXG4gICAgICAgIGxhYmVsOiBcIkRldGFpbFwiLFxuICAgICAgICB0aXRsZTogXCJWaWV3IHRoZSB3b3Jrc3BhY2UgZGV0YWlsXCJcbiAgICAgIH1cbiAgICBdKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZUJ1aWxkc0xpbmsod29ya3NwYWNlTmFtZSwgcHJvamVjdE5hbWUsIGplbmtpbnNKb2JJZCkge1xuICAgIHdvcmtzcGFjZU5hbWUgPSB3b3Jrc3BhY2VOYW1lIHx8IEt1YmVybmV0ZXMuY3VycmVudEt1YmVybmV0ZXNOYW1lc3BhY2UoKTtcbiAgICByZXR1cm4gVXJsSGVscGVycy5qb2luKFwiL3dvcmtzcGFjZXNcIiwgd29ya3NwYWNlTmFtZSwgXCJwcm9qZWN0c1wiLCBwcm9qZWN0TmFtZSwgXCJqZW5raW5zSm9iXCIsIGplbmtpbnNKb2JJZCk7XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gY3JlYXRlUHJvamVjdFN1Yk5hdkJhcnMocHJvamVjdE5hbWUsIGplbmtpbnNKb2JJZCA9IG51bGwsICRzY29wZSA9IG51bGwpIHtcbiAgICB2YXIgd29ya3NwYWNlTmFtZSA9IEt1YmVybmV0ZXMuY3VycmVudEt1YmVybmV0ZXNOYW1lc3BhY2UoKTtcbiAgICB2YXIgcHJvamVjdExpbmsgPSBVcmxIZWxwZXJzLmpvaW4oXCIvd29ya3NwYWNlc1wiLCB3b3Jrc3BhY2VOYW1lLCBcInByb2plY3RzXCIsIHByb2plY3ROYW1lKTtcbiAgICB2YXIgYnVpbGRzTGluayA9IFVybEhlbHBlcnMuam9pbihwcm9qZWN0TGluaywgXCJidWlsZHNcIik7XG4gICAgaWYgKCFqZW5raW5zSm9iSWQpIHtcbiAgICAgIGplbmtpbnNKb2JJZCA9IHByb2plY3ROYW1lO1xuICAgIH1cbiAgICB2YXIgamVua2luc0J1aWxkTGluayA9IG51bGw7XG4gICAgdmFyIHBpcGVsaW5lc0xpbmsgPSBudWxsO1xuICAgIGlmIChwcm9qZWN0TmFtZSAmJiBqZW5raW5zSm9iSWQpIHtcbiAgICAgIGplbmtpbnNCdWlsZExpbmsgPSBjcmVhdGVCdWlsZHNMaW5rKHdvcmtzcGFjZU5hbWUsIHByb2plY3ROYW1lLCBqZW5raW5zSm9iSWQpO1xuICAgICAgcGlwZWxpbmVzTGluayA9IFVybEhlbHBlcnMuam9pbihqZW5raW5zQnVpbGRMaW5rLCBcInBpcGVsaW5lc1wiKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc0plbmtpbnNCdWlsZCgpIHtcbiAgICAgIHZhciBhbnN3ZXIgPSBqZW5raW5zTGluaygpICYmIGplbmtpbnNCdWlsZExpbms7O1xuICAgICAgaWYgKGFuc3dlciAmJiAkc2NvcGUpIHtcbiAgICAgICAgdmFyIGVudGl0eSA9ICRzY29wZS5lbnRpdHkgfHwgJHNjb3BlLmJ1aWxkQ29uZmlnO1xuICAgICAgICBpZiAoZW50aXR5KSB7XG4gICAgICAgICAgcmV0dXJuIGFuc3dlciAmJiBlbnRpdHkuJGplbmtpbnNKb2I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBhbnN3ZXI7XG4gICAgfVxuXG4gICAgdmFyIGFuc3dlciA9IFtcbiAgICAgIHtcbiAgICAgICAgaHJlZjogVXJsSGVscGVycy5qb2luKFwiL3dvcmtzcGFjZXNcIiwgd29ya3NwYWNlTmFtZSwgXCJwcm9qZWN0c1wiLCBwcm9qZWN0TmFtZSwgXCJlbnZpcm9ubWVudHNcIiksXG4gICAgICAgIC8vaHJlZjogVXJsSGVscGVycy5qb2luKFwiL3dvcmtzcGFjZXNcIiwgd29ya3NwYWNlTmFtZSwgXCJwcm9qZWN0c1wiLCBwcm9qZWN0TmFtZSksXG4gICAgICAgIGxhYmVsOiBcIk92ZXJ2aWV3XCIsXG4gICAgICAgIHRpdGxlOiBcIlZpZXcgdGhlIG92ZXJ2aWV3IG9mIHRoaXMgcHJvamVjdCwgaXRzIGFjdGlpdHksIGVudmlyb25tZW50cyBhbmQgcGlwZWxpbmVzXCJcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlzVmFsaWQ6ICgpID0+IGlzSmVua2luc0J1aWxkKCkgJiYgcGlwZWxpbmVzTGluayxcbiAgICAgICAgaWQ6IFwicGlwZWxpbmVzXCIsXG4gICAgICAgIGhyZWY6IHBpcGVsaW5lc0xpbmssXG4gICAgICAgIGxhYmVsOiBcIlBpcGVsaW5lc1wiLFxuICAgICAgICB0aXRsZTogXCJWaWV3IHRoZSBwaXBlbGluZSBidWlsZHMgZm9yIHRoaXMgcHJvamVjdFwiXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpc1ZhbGlkOiAoKSA9PiAhaXNKZW5raW5zQnVpbGQoKSxcbiAgICAgICAgaHJlZjogYnVpbGRzTGluayxcbiAgICAgICAgbGFiZWw6IFwiQnVpbGRzXCIsXG4gICAgICAgIHRpdGxlOiBcIlZpZXcgdGhlIGJ1aWxkcyBmb3IgdGhpcyBwcm9qZWN0XCJcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlzVmFsaWQ6ICgpID0+IGlzSmVua2luc0J1aWxkKCksXG4gICAgICAgIGlkOiBcImJ1aWxkc1wiLFxuICAgICAgICBocmVmOiBqZW5raW5zQnVpbGRMaW5rLFxuICAgICAgICBsYWJlbDogXCJCdWlsZHNcIixcbiAgICAgICAgdGl0bGU6IFwiVmlldyB0aGUgSmVua2lucyBidWlsZHMgZm9yIHRoaXMgcHJvamVjdFwiXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpc1ZhbGlkOiAoKSA9PiBpc0plbmtpbnNCdWlsZCgpLFxuICAgICAgICBocmVmOiBVcmxIZWxwZXJzLmpvaW4oXCIvd29ya3NwYWNlc1wiLCB3b3Jrc3BhY2VOYW1lLCBcInByb2plY3RzXCIsIHByb2plY3ROYW1lLCBcImplbmtpbnNKb2JcIiwgamVua2luc0pvYklkLCBcIm1ldHJpY3NcIiksXG4gICAgICAgIGxhYmVsOiBcIk1ldHJpY3NcIixcbiAgICAgICAgdGl0bGU6IFwiVmlldyB0aGUgbWV0cmljcyBmb3IgdGhpcyBwcm9qZWN0XCJcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGhyZWY6IFVybEhlbHBlcnMuam9pbihcIi93b3Jrc3BhY2VzXCIsIHdvcmtzcGFjZU5hbWUsIFwicHJvamVjdHNcIiwgcHJvamVjdE5hbWUsIFwidG9vbHNcIiksXG4gICAgICAgIGxhYmVsOiBcIlRvb2xzXCIsXG4gICAgICAgIHRpdGxlOiBcIlZpZXcgdGhlIHRvb2xzIGZvciB0aGlzIHByb2plY3RcIlxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaHJlZjogVXJsSGVscGVycy5qb2luKFwiL3dvcmtzcGFjZXNcIiwgd29ya3NwYWNlTmFtZSwgXCJwcm9qZWN0c1wiLCBwcm9qZWN0TmFtZSwgXCJkZXRhaWxcIiksXG4gICAgICAgIGxhYmVsOiBcIkRldGFpbFwiLFxuICAgICAgICB0aXRsZTogXCJWaWV3IHRoZSBwcm9qZWN0IGRldGFpbFwiXG4gICAgICB9XG4gICAgXTtcblxuICAgIHZhciBjb250ZXh0ID0ge1xuICAgICAgd29ya3NwYWNlTmFtZTogd29ya3NwYWNlTmFtZSxcbiAgICAgIHByb2plY3ROYW1lOiBwcm9qZWN0TmFtZSxcbiAgICAgIHByb2plY3RMaW5rOiBwcm9qZWN0TGluayxcbiAgICAgIGplbmtpbnNKb2JJZDogamVua2luc0pvYklkXG5cbiAgICB9O1xuICAgIGFuZ3VsYXIuZm9yRWFjaChjdXN0b21Qcm9qZWN0U3ViVGFiRmFjdG9yaWVzLCAoZm4pID0+IHtcbiAgICAgIGlmIChhbmd1bGFyLmlzRnVuY3Rpb24oZm4pKSB7XG4gICAgICAgIHZhciBzdWJ0YWIgPSBmbihjb250ZXh0KTtcbiAgICAgICAgaWYgKHN1YnRhYikge1xuICAgICAgICAgIGFuc3dlci5wdXNoKHN1YnRhYik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBhY3RpdmF0ZUN1cnJlbnQoYW5zd2VyKTtcbiAgfVxuXG4gIGV4cG9ydCB2YXIgY3VzdG9tUHJvamVjdFN1YlRhYkZhY3RvcmllcyA9IFtdO1xuXG4gIGV4cG9ydCBmdW5jdGlvbiBjcmVhdGVKZW5raW5zQnJlYWRjcnVtYnMocHJvamVjdE5hbWUsIGpvYklkLCBidWlsZElkKSB7XG4gICAgdmFyIHdvcmtzcGFjZU5hbWUgPSBLdWJlcm5ldGVzLmN1cnJlbnRLdWJlcm5ldGVzTmFtZXNwYWNlKCk7XG4gICAgdmFyIGNoaWxkcmVuID0gW1xuICAgICAge1xuICAgICAgICBpZDogXCJidWlsZHNcIixcbiAgICAgICAgaHJlZjogY3JlYXRlQnVpbGRzTGluayh3b3Jrc3BhY2VOYW1lLCBwcm9qZWN0TmFtZSwgam9iSWQpLFxuICAgICAgICBsYWJlbDogXCJCdWlsZHNcIixcbiAgICAgICAgdGl0bGU6IFwiVmlldyB0aGUgYnVpbGRzIGZvciB0aGlzIHByb2plY3RcIlxuICAgICAgfVxuICAgIF07XG4gICAgaWYgKGJ1aWxkSWQpIHtcbiAgICAgIGNoaWxkcmVuLnB1c2goe1xuICAgICAgICBpZDogXCJcIixcbiAgICAgICAgaHJlZjogXCJcIixcbiAgICAgICAgbGFiZWw6IFwiI1wiICsgYnVpbGRJZCxcbiAgICAgICAgdGl0bGU6IFwiQnVpbGQgI1wiICsgYnVpbGRJZFxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVQcm9qZWN0QnJlYWRjcnVtYnMocHJvamVjdE5hbWUsIGNoaWxkcmVuKTtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBjcmVhdGVKZW5raW5zU3ViTmF2QmFycyhwcm9qZWN0TmFtZSwgamVua2luc0pvYklkLCBidWlsZElkLCBleHRyYU9wdGlvbjogYW55ID0gbnVsbCkge1xuICAgIHZhciBhbnN3ZXIgPSBjcmVhdGVQcm9qZWN0U3ViTmF2QmFycyhwcm9qZWN0TmFtZSwgamVua2luc0pvYklkKTtcbiAgICBpZiAoZXh0cmFPcHRpb24pIHtcbiAgICAgIGV4dHJhT3B0aW9uLmFjdGl2ZSA9IHRydWU7XG4gICAgICBhbnN3ZXIucHVzaChleHRyYU9wdGlvbik7XG4gICAgfVxuICAgIHJldHVybiBhbnN3ZXI7XG4gIH1cblxuXG4gIGV4cG9ydCBmdW5jdGlvbiBjcmVhdGVFbnZpcm9ubWVudFN1Yk5hdkJhcnMoJHNjb3BlLCAkbG9jYXRpb24sICRyb3V0ZVBhcmFtcykge1xuICAgIHZhciBucyA9IEt1YmVybmV0ZXMuY3VycmVudEt1YmVybmV0ZXNOYW1lc3BhY2UoKTtcbiAgICB2YXIgd29ya3NwYWNlTmFtZSA9ICRyb3V0ZVBhcmFtcy53b3Jrc3BhY2U7XG4gICAgdmFyIHByb2plY3QgPSAkcm91dGVQYXJhbXMucHJvamVjdDtcbiAgICB2YXIgcHJvamVjdExpbmsgPSBcIi9rdWJlcm5ldGVzXCI7XG4gICAgaWYgKHdvcmtzcGFjZU5hbWUgJiYgcHJvamVjdCkge1xuICAgICAgcHJvamVjdExpbmsgPSBVcmxIZWxwZXJzLmpvaW4oXCIvd29ya3NwYWNlc1wiLCB3b3Jrc3BhY2VOYW1lLCBcInByb2plY3RzXCIsIHByb2plY3QpO1xuICAgIH1cbiAgICB2YXIgbmFtZXNwYWNlc0xpbmsgPSBVcmxIZWxwZXJzLmpvaW4ocHJvamVjdExpbmssIFwibmFtZXNwYWNlXCIpO1xuICAgIHJldHVybiBhY3RpdmF0ZUN1cnJlbnQoW1xuICAgICAge1xuICAgICAgICBocmVmOiBVcmxIZWxwZXJzLmpvaW4obmFtZXNwYWNlc0xpbmssIG5zLCBcImFwcHNcIiksXG4gICAgICAgIGxhYmVsOiBcIkFwcHNcIixcbiAgICAgICAgdGl0bGU6IFwiVmlldyB0aGUgYXBwcyBmb3IgdGhpcyB3b3Jrc3BhY2VcIlxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaHJlZjogVXJsSGVscGVycy5qb2luKG5hbWVzcGFjZXNMaW5rLCBucywgXCJzZXJ2aWNlc1wiKSxcbiAgICAgICAgbGFiZWw6IFwiU2VydmljZXNcIixcbiAgICAgICAgdGl0bGU6IFwiVmlldyB0aGUgYXBwcyBmb3IgdGhpcyB3b3Jrc3BhY2VcIlxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaHJlZjogVXJsSGVscGVycy5qb2luKG5hbWVzcGFjZXNMaW5rLCBucywgXCJyZXBsaWNhdGlvbkNvbnRyb2xsZXJzXCIpLFxuICAgICAgICBsYWJlbDogXCJDb250cm9sbGVyc1wiLFxuICAgICAgICB0aXRsZTogXCJWaWV3IHRoZSBSZXBsaWNhdGlvbiBDb250cm9sbGVycyBmb3IgdGhpcyB3b3Jrc3BhY2VcIlxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaHJlZjogVXJsSGVscGVycy5qb2luKG5hbWVzcGFjZXNMaW5rLCBucywgXCJwb2RzXCIpLFxuICAgICAgICBsYWJlbDogXCJQb2RzXCIsXG4gICAgICAgIHRpdGxlOiBcIlZpZXcgdGhlIHBvZHMgZm9yIHRoaXMgd29ya3NwYWNlXCJcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGhyZWY6IFVybEhlbHBlcnMuam9pbihcIi9rdWJlcm5ldGVzL2hvc3RzXCIpLFxuICAgICAgICBsYWJlbDogXCJOb2Rlc1wiLFxuICAgICAgICB0aXRsZTogXCJWaWV3IHRoZSBub2RlcyBmb3IgdGhpcyB3b3Jrc3BhY2VcIlxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaHJlZjogVXJsSGVscGVycy5qb2luKG5hbWVzcGFjZXNMaW5rLCBucywgXCJhbmdyeVBvZHNcIiksXG4gICAgICAgIGxhYmVsOiBcIkFuZ3J5IFBvZHNcIixcbiAgICAgICAgdGl0bGU6IFwiVHJ5IHRoZSBBbmdyeSBQb2RzIGdhbWUhXCJcbiAgICAgIH0sXG4gICAgXSk7XG4gIH1cblxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIHRoZSBVUkwgcXVlcnkgc3RyaW5nIGlmIGl0cyBpbnNpZGUgdGhlIGdpdmVuIHRleHRcbiAgICovXG4gIGZ1bmN0aW9uIHRyaW1RdWVyeSh0ZXh0KSB7XG4gICAgaWYgKHRleHQpIHtcbiAgICAgIHZhciBpZHggPSB0ZXh0LmluZGV4T2YoXCI/XCIpO1xuICAgICAgaWYgKGlkeCA+PSAwKSB7XG4gICAgICAgIHJldHVybiB0ZXh0LnN1YnN0cmluZygwLCBpZHgpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGV4dDtcbiAgfVxuXG4gIGZ1bmN0aW9uIGFjdGl2YXRlQ3VycmVudChuYXZCYXJJdGVtcykge1xuICAgIG5hdkJhckl0ZW1zID0gXy5jb21wYWN0KG5hdkJhckl0ZW1zKTtcbiAgICB2YXIgaW5qZWN0b3IgPSBIYXd0aW9Db3JlLmluamVjdG9yO1xuICAgIHZhciAkbG9jYXRpb24gPSBpbmplY3RvciA/IGluamVjdG9yLmdldChcIiRsb2NhdGlvblwiKSA6IG51bGw7XG4gICAgaWYgKCRsb2NhdGlvbikge1xuICAgICAgdmFyIHBhdGggPSB0cmltUXVlcnkoJGxvY2F0aW9uLnBhdGgoKSk7XG4gICAgICB2YXIgZm91bmQgPSBmYWxzZTtcbiAgICAgIGFuZ3VsYXIuZm9yRWFjaChuYXZCYXJJdGVtcywgKGl0ZW0pID0+IHtcbiAgICAgICAgaWYgKGl0ZW0pIHtcbiAgICAgICAgICB2YXIgaHJlZiA9IGl0ZW0uaHJlZjtcbiAgICAgICAgICB2YXIgdHJpbUhyZWYgPSB0cmltUXVlcnkoaHJlZik7XG4gICAgICAgICAgaWYgKCFmb3VuZCAmJiB0cmltSHJlZiAmJiB0cmltSHJlZiA9PT0gcGF0aCkge1xuICAgICAgICAgICAgaXRlbS5hY3RpdmUgPSB0cnVlO1xuICAgICAgICAgICAgZm91bmQgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBuYXZCYXJJdGVtcztcbiAgfVxuXG4gIGZ1bmN0aW9uIHByb2Nlc3NDaGlsZHJlbihhbnN3ZXIsIGNoaWxkcmVuKSB7XG4gICAgaWYgKGNoaWxkcmVuKSB7XG4gICAgICBpZiAoYW5ndWxhci5pc0FycmF5KGNoaWxkcmVuKSkge1xuICAgICAgICBhbnN3ZXIgPSBhbnN3ZXIuY29uY2F0KGNoaWxkcmVuKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGFuc3dlci5wdXNoKGNoaWxkcmVuKTtcbiAgICAgIH1cbiAgICB9XG4gICAgYWN0aXZhdGVDdXJyZW50KGFuc3dlcik7XG4gICAgcmV0dXJuIGFuc3dlcjtcbiAgfVxufSIsIi8vLyA8cmVmZXJlbmNlIHBhdGg9XCIuLi8uLi9pbmNsdWRlcy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJkZXZlbG9wZXJIZWxwZXJzLnRzXCIvPlxuXG5tb2R1bGUgRGV2ZWxvcGVyIHtcblxuICBleHBvcnQgdmFyIF9tb2R1bGUgPSBhbmd1bGFyLm1vZHVsZShwbHVnaW5OYW1lLCBbJ2hhd3Rpby1jb3JlJywgJ2hhd3Rpby11aScsICd1aS5jb2RlbWlycm9yJywgJ252ZDMnXSk7XG4gIGV4cG9ydCB2YXIgY29udHJvbGxlciA9IFBsdWdpbkhlbHBlcnMuY3JlYXRlQ29udHJvbGxlckZ1bmN0aW9uKF9tb2R1bGUsIHBsdWdpbk5hbWUpO1xuICBleHBvcnQgdmFyIHJvdXRlID0gUGx1Z2luSGVscGVycy5jcmVhdGVSb3V0aW5nRnVuY3Rpb24odGVtcGxhdGVQYXRoKTtcblxuICBfbW9kdWxlLmNvbmZpZyhbJyRyb3V0ZVByb3ZpZGVyJywgKCRyb3V0ZVByb3ZpZGVyOm5nLnJvdXRlLklSb3V0ZVByb3ZpZGVyKSA9PiB7XG4gICAgJHJvdXRlUHJvdmlkZXIud2hlbihjb250ZXh0LCByb3V0ZSgnd29ya3NwYWNlcy5odG1sJywgZmFsc2UpKVxuICAgICAgICAgICAgICAgICAgLndoZW4oXCIvbmFtZXNwYWNlc1wiLCByb3V0ZSgnd29ya3NwYWNlcy5odG1sJywgZmFsc2UpKVxuICAgICAgICAgICAgICAgICAgLy8ud2hlbihcIi9ob21lXCIsIHJvdXRlKCdob21lLmh0bWwnLCBmYWxzZSkpXG4gICAgICAgICAgICAgICAgICAud2hlbihVcmxIZWxwZXJzLmpvaW4oY29udGV4dCwgJy86bmFtZXNwYWNlJyksIHJvdXRlKCdwcm9qZWN0cy5odG1sJywgZmFsc2UpKVxuICAgICAgICAgICAgICAgICAgLndoZW4oVXJsSGVscGVycy5qb2luKGNvbnRleHQsICcvOm5hbWVzcGFjZS9kZXRhaWwnKSwgcm91dGUoJ3dvcmtzcGFjZS5odG1sJywgZmFsc2UpKVxuICAgICAgICAgICAgICAgICAgLndoZW4oVXJsSGVscGVycy5qb2luKGNvbnRleHQsICcvOm5hbWVzcGFjZS9qZW5raW5zSm9iJyksIHJvdXRlKCdqZW5raW5zSm9icy5odG1sJywgZmFsc2UpKVxuICAgICAgICAgICAgICAgICAgLndoZW4oVXJsSGVscGVycy5qb2luKGNvbnRleHQsICcvOm5hbWVzcGFjZS9wcm9qZWN0cycpLCByb3V0ZSgncHJvamVjdHMuaHRtbCcsIGZhbHNlKSlcbiAgICAgICAgICAgICAgICAgIC53aGVuKFVybEhlbHBlcnMuam9pbihjb250ZXh0LCAnLzpuYW1lc3BhY2UvcHJvamVjdHMvOmlkJyksIHJvdXRlKCdlbnZpcm9ubWVudHMuaHRtbCcsIGZhbHNlKSlcbiAgICAgICAgICAgICAgICAgIC53aGVuKFVybEhlbHBlcnMuam9pbihjb250ZXh0LCAnLzpuYW1lc3BhY2UvcHJvamVjdHMvOmlkL2RldGFpbCcpLCBLdWJlcm5ldGVzLnJvdXRlKCdidWlsZENvbmZpZy5odG1sJywgZmFsc2UpKVxuICAgICAgICAgICAgICAgICAgLndoZW4oVXJsSGVscGVycy5qb2luKGNvbnRleHQsICcvOm5hbWVzcGFjZS9wcm9qZWN0cy86aWQvYnVpbGRzJyksIEt1YmVybmV0ZXMucm91dGUoJ2J1aWxkcy5odG1sJywgZmFsc2UpKVxuICAgICAgICAgICAgICAgICAgLndoZW4oVXJsSGVscGVycy5qb2luKGNvbnRleHQsICcvOm5hbWVzcGFjZS9wcm9qZWN0cy86aWQvZW52aXJvbm1lbnRzJyksIHJvdXRlKCdlbnZpcm9ubWVudHMuaHRtbCcsIGZhbHNlKSlcbiAgICAgICAgICAgICAgICAgIC53aGVuKFVybEhlbHBlcnMuam9pbihjb250ZXh0LCAnLzpuYW1lc3BhY2UvcHJvamVjdHMvOmlkL2plbmtpbnNKb2IvOmpvYicpLCByb3V0ZSgnamVua2luc0pvYi5odG1sJywgZmFsc2UpKVxuICAgICAgICAgICAgICAgICAgLndoZW4oVXJsSGVscGVycy5qb2luKGNvbnRleHQsICcvOm5hbWVzcGFjZS9wcm9qZWN0cy86aWQvamVua2luc0pvYi86am9iL2xvZy86YnVpbGQnKSwgcm91dGUoJ2plbmtpbnNMb2cuaHRtbCcsIGZhbHNlKSlcbiAgICAgICAgICAgICAgICAgIC53aGVuKFVybEhlbHBlcnMuam9pbihjb250ZXh0LCAnLzpuYW1lc3BhY2UvcHJvamVjdHMvOmlkL2plbmtpbnNKb2IvOmpvYi9waXBlbGluZXMnKSwgcm91dGUoJ3BpcGVsaW5lcy5odG1sJywgZmFsc2UpKVxuICAgICAgICAgICAgICAgICAgLndoZW4oVXJsSGVscGVycy5qb2luKGNvbnRleHQsICcvOm5hbWVzcGFjZS9wcm9qZWN0cy86aWQvamVua2luc0pvYi86am9iL3BpcGVsaW5lLzpidWlsZCcpLCByb3V0ZSgncGlwZWxpbmUuaHRtbCcsIGZhbHNlKSlcbiAgICAgICAgICAgICAgICAgIC53aGVuKFVybEhlbHBlcnMuam9pbihjb250ZXh0LCAnLzpuYW1lc3BhY2UvcHJvamVjdHMvOmlkL2plbmtpbnNKb2IvOmpvYi9tZXRyaWNzJyksIHJvdXRlKCdqZW5raW5zTWV0cmljcy5odG1sJywgZmFsc2UpKVxuICAgICAgICAgICAgICAgICAgLndoZW4oVXJsSGVscGVycy5qb2luKGNvbnRleHQsICcvOm5hbWVzcGFjZS9wcm9qZWN0cy86aWQvamVua2luc01ldHJpY3MnKSwgcm91dGUoJ2plbmtpbnNNZXRyaWNzLmh0bWwnLCBmYWxzZSkpXG4gICAgICAgICAgICAgICAgICAud2hlbihVcmxIZWxwZXJzLmpvaW4oY29udGV4dCwgJy86bmFtZXNwYWNlL3Byb2plY3RzLzppZC90b29scycpLCByb3V0ZSgndG9vbHMuaHRtbCcsIGZhbHNlKSlcbiAgICAgICAgICAgICAgICAgIC53aGVuKFVybEhlbHBlcnMuam9pbihjb250ZXh0LCAnLzp3b3Jrc3BhY2UvcHJvamVjdHMvOnByb2plY3QvZW52aXJvbm1lbnRzLzpuYW1lc3BhY2UnKSwgcm91dGUoJ2Vudmlyb25tZW50Lmh0bWwnLCBmYWxzZSkpXG4gICAgICAgICAgICAgICAgICAud2hlbihVcmxIZWxwZXJzLmpvaW4oY29udGV4dCwgJy86d29ya3NwYWNlL3Byb2plY3RzLzpwcm9qZWN0L2Vudmlyb25tZW50cy86bmFtZXNwYWNlJyksIHJvdXRlKCdlbnZpcm9ubWVudC5odG1sJywgZmFsc2UpKVxuICAgICAgICAgICAgICAgICAgLm90aGVyd2lzZShcIi93b3Jrc3BhY2VzXCIpO1xuICB9XSk7XG4gIFxuXG4gIF9tb2R1bGUucnVuKFsndmlld1JlZ2lzdHJ5JywgJ1NlcnZpY2VSZWdpc3RyeScsICdIYXd0aW9OYXYnLCAnS3ViZXJuZXRlc01vZGVsJywgJyR0ZW1wbGF0ZUNhY2hlJywgKHZpZXdSZWdpc3RyeSwgU2VydmljZVJlZ2lzdHJ5LCBIYXd0aW9OYXYsIEt1YmVybmV0ZXNNb2RlbCwgJHRlbXBsYXRlQ2FjaGUpID0+IHtcbiAgICBsb2cuZGVidWcoXCJSdW5uaW5nXCIpO1xuICAgIHZpZXdSZWdpc3RyeVsnd29ya3NwYWNlcyddID0gS3ViZXJuZXRlcy50ZW1wbGF0ZVBhdGggKyAnbGF5b3V0S3ViZXJuZXRlcy5odG1sJztcbiAgICB2aWV3UmVnaXN0cnlbJ25hbWVzcGFjZXMnXSA9IEt1YmVybmV0ZXMudGVtcGxhdGVQYXRoICsgJ2xheW91dEt1YmVybmV0ZXMuaHRtbCc7XG5cbiAgICB2YXIgYnVpbGRlciA9IEhhd3Rpb05hdi5idWlsZGVyKCk7XG4gICAgdmFyIHdvcmtzcGFjZXMgPSBidWlsZGVyLmlkKCd3b3Jrc3BhY2VzJylcbiAgICAgICAgICAgICAgICAgICAgICAuaHJlZigoKSA9PiBjb250ZXh0KVxuICAgICAgICAgICAgICAgICAgICAgIC50aXRsZSgoKSA9PiAnQWxsJylcbiAgICAgICAgICAgICAgICAgICAgICAuYnVpbGQoKTtcblxuICAgIHZhciB3b3Jrc3BhY2VPdmVydmlldyA9IGJ1aWxkZXIuaWQoJ3dvcmtzcGFjZXMnKVxuICAgICAgICAgICAgICAgICAgICAgIC5ocmVmKCgpID0+IFVybEhlbHBlcnMuam9pbihjb250ZXh0LCAnb3ZlcnZpZXcnKSlcbiAgICAgICAgICAgICAgICAgICAgICAudGl0bGUoKCkgPT4gJ1dvcmtzcGFjZScpXG4gICAgICAgICAgICAgICAgICAgICAgLmJ1aWxkKCk7XG5cbiAgICB2YXIgd29ya3NwYWNlc1RhYiA9IGJ1aWxkZXIuaWQoJ3dvcmtzcGFjZXMnKVxuICAgICAgICAgICAgICAgICAgICAgICAgIC5yYW5rKDEwMClcbiAgICAgICAgICAgICAgICAgICAgICAgICAuaHJlZigoKSA9PiBjb250ZXh0KVxuICAgICAgICAgICAgICAgICAgICAgICAgIC50aXRsZSgoKSA9PiAnV29ya3NwYWNlcycpXG4gICAgICAgICAgICAgICAgICAgICAgICAgLy8uaXNWYWxpZCgoKSA9PiAhQ29yZS5pc1JlbW90ZUNvbm5lY3Rpb24oKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAudGFicyh3b3Jrc3BhY2VzKVxuICAgICAgICAgICAgICAgICAgICAgICAgIC5idWlsZCgpO1xuXG4gICAgSGF3dGlvTmF2LmFkZCh3b3Jrc3BhY2VzVGFiKTtcbiAgfV0pO1xuXG5cbiAgaGF3dGlvUGx1Z2luTG9hZGVyLmFkZE1vZHVsZShwbHVnaW5OYW1lKTtcblxuICAvLyBmb3Igc2Nyb2xsLWdsdWUgZGlyZWN0aXZlXG4gIGhhd3Rpb1BsdWdpbkxvYWRlci5hZGRNb2R1bGUoJ2x1ZWdnLmRpcmVjdGl2ZXMnKTtcbn1cbiIsIm1vZHVsZSBLdWJlcm5ldGVzIHtcblxuICBleHBvcnQgY2xhc3MgY29uc3RzIHtcbiAgICBnZXQgTkFNRVNQQUNFX1NUT1JBR0VfS0VZKCk6c3RyaW5nIHsgcmV0dXJuIFwiazhzU2VsZWN0ZWROYW1lc3BhY2VcIjsgfVxuICB9XG5cbiAgZXhwb3J0IHZhciBDb25zdGFudHMgPSBuZXcgY29uc3RzKCk7XG5cdFxuICBleHBvcnQgaW50ZXJmYWNlIEFwaUxvY2F0aW9uIHtcbiAgICBwcm90bz86c3RyaW5nO1xuICAgIGhvc3RQb3J0OnN0cmluZztcbiAgICBwcmVmaXg6c3RyaW5nO1xuICB9XG4gIFxuICBleHBvcnQgaW50ZXJmYWNlIEFwaUxvY2F0aW9ucyB7XG4gICAgb3BlbnNoaWZ0PzogQXBpTG9jYXRpb247XG4gICAgazhzPzogQXBpTG9jYXRpb247XG4gIH1cblxuICBleHBvcnQgaW50ZXJmYWNlIEt1YmVybmV0ZXNDb25maWcge1xuICAgIG1hc3Rlcl91cmk/OiBzdHJpbmc7XG4gICAgYXBpPzogQXBpTG9jYXRpb25zO1xuICAgIG9wZW5zaGlmdD86IE9wZW5TaGlmdE9BdXRoQ29uZmlnO1xuICAgIGdvb2dsZT86IEdvb2dsZU9BdXRoQ29uZmlnO1xuICAgIGtleWNsb2FrPzogS2V5Q2xvYWtBdXRoQ29uZmlnO1xuICB9XG5cbiAgZXhwb3J0IGludGVyZmFjZSBPcGVuU2hpZnRPQXV0aENvbmZpZyB7XG4gICAgb2F1dGhfYXV0aG9yaXplX3VyaTpzdHJpbmc7XG4gICAgb2F1dGhfY2xpZW50X2lkOnN0cmluZztcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgR29vZ2xlT0F1dGhDb25maWcge1xuICAgIGF1dGhlbnRpY2F0aW9uVVJJOnN0cmluZztcbiAgICBhdXRob3JpemF0aW9uVVJJOnN0cmluZztcbiAgICBjbGllbnRJZDpzdHJpbmc7XG4gICAgY2xpZW50U2VjcmV0OnN0cmluZztcbiAgICByZWRpcmVjdFVSSTpzdHJpbmc7XG4gICAgc2NvcGU6c3RyaW5nO1xuICAgIHRva2VuVVJJPzpzdHJpbmc7XG4gIH1cblxuICBleHBvcnQgaW50ZXJmYWNlIEtleUNsb2FrQXV0aENvbmZpZyB7XG4gICAgb2F1dGhfYXV0aG9yaXplX3VyaTpzdHJpbmc7XG4gICAgb2F1dGhfY2xpZW50X2lkOnN0cmluZztcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgS3ViZXJuZXRlc1N0YXRlIHtcbiAgICBuYW1lc3BhY2VzOiBBcnJheTxzdHJpbmc+O1xuICAgIHNlbGVjdGVkTmFtZXNwYWNlOiBzdHJpbmc7XG4gIH1cblxuXHRleHBvcnQgY2xhc3MgV2F0Y2hUeXBlcyB7XG5cdFx0cHVibGljIHN0YXRpYyBnZXQgRU5EUE9JTlRTKCk6c3RyaW5nIHsgcmV0dXJuIFwiZW5kcG9pbnRzXCI7IH1cblx0XHRwdWJsaWMgc3RhdGljIGdldCBFVkVOVFMoKTpzdHJpbmcgeyByZXR1cm4gXCJldmVudHNcIjsgfVxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0IE5BTUVTUEFDRVMoKTpzdHJpbmcgeyByZXR1cm4gXCJuYW1lc3BhY2VzXCI7IH1cblx0XHRwdWJsaWMgc3RhdGljIGdldCBOT0RFUygpOnN0cmluZyB7IHJldHVybiBcIm5vZGVzXCI7IH1cblx0XHRwdWJsaWMgc3RhdGljIGdldCBQRVJTSVNURU5UX1ZPTFVNRVMoKTpzdHJpbmcgeyByZXR1cm4gXCJwZXJzaXN0ZW50dm9sdW1lc1wiOyB9XG5cdFx0cHVibGljIHN0YXRpYyBnZXQgUEVSU0lTVEVOVF9WT0xVTUVfQ0xBSU1TKCk6c3RyaW5nIHsgcmV0dXJuIFwicGVyc2lzdGVudHZvbHVtZWNsYWltc1wiOyB9XG5cdFx0cHVibGljIHN0YXRpYyBnZXQgUE9EUygpOnN0cmluZyB7IHJldHVybiBcInBvZHNcIjsgfVxuXHRcdHB1YmxpYyBzdGF0aWMgZ2V0IFJFUExJQ0FUSU9OX0NPTlRST0xMRVJTKCk6c3RyaW5nIHsgcmV0dXJuIFwicmVwbGljYXRpb25jb250cm9sbGVyc1wiOyB9XG5cdFx0cHVibGljIHN0YXRpYyBnZXQgUkVTT1VSQ0VfUVVPVEFTKCk6c3RyaW5nIHsgcmV0dXJuIFwicmVzb3VyY2VxdW90YXNcIjsgfVxuXHRcdHB1YmxpYyBzdGF0aWMgZ2V0IE9BVVRIX0NMSUVOVFMoKTpzdHJpbmcgeyByZXR1cm4gXCJvYXV0aGNsaWVudHNcIjsgfVxuXHRcdHB1YmxpYyBzdGF0aWMgZ2V0IFNFQ1JFVFMoKTpzdHJpbmcgeyByZXR1cm4gXCJzZWNyZXRzXCI7IH1cblx0XHRwdWJsaWMgc3RhdGljIGdldCBTRVJWSUNFUygpOnN0cmluZyB7IHJldHVybiBcInNlcnZpY2VzXCI7IH1cblx0XHRwdWJsaWMgc3RhdGljIGdldCBTRVJWSUNFX0FDQ09VTlRTKCk6c3RyaW5nIHsgcmV0dXJuIFwic2VydmljZWFjY291bnRzXCI7IH1cblxuXHRcdHB1YmxpYyBzdGF0aWMgZ2V0IFRFTVBMQVRFUygpOnN0cmluZyB7IHJldHVybiBcInRlbXBsYXRlc1wiOyB9XG5cdFx0cHVibGljIHN0YXRpYyBnZXQgUk9VVEVTKCk6c3RyaW5nIHsgcmV0dXJuIFwicm91dGVzXCI7IH1cblx0XHRwdWJsaWMgc3RhdGljIGdldCBCVUlMRF9DT05GSUdTKCk6c3RyaW5nIHsgcmV0dXJuIFwiYnVpbGRjb25maWdzXCI7IH1cblx0XHRwdWJsaWMgc3RhdGljIGdldCBCVUlMRFMoKTpzdHJpbmcgeyByZXR1cm4gXCJidWlsZHNcIjsgfVxuXHRcdHB1YmxpYyBzdGF0aWMgZ2V0IERFUExPWU1FTlRfQ09ORklHUygpOnN0cmluZyB7IHJldHVybiBcImRlcGxveW1lbnRjb25maWdzXCI7IH1cblx0XHRwdWJsaWMgc3RhdGljIGdldCBJTUFHRV9TVFJFQU1TKCk6c3RyaW5nIHsgcmV0dXJuIFwiaW1hZ2VzdHJlYW1zXCI7IH1cblx0XHRwdWJsaWMgc3RhdGljIGdldCBQT0xJQ0lFUygpOnN0cmluZyB7IHJldHVybiBcInBvbGljaWVzXCI7IH1cblx0XHRwdWJsaWMgc3RhdGljIGdldCBQT0xJQ1lfQklORElOR1MoKTpzdHJpbmcgeyByZXR1cm4gXCJwb2xpY3liaW5kaW5nc1wiOyB9XG4gICAgcHVibGljIHN0YXRpYyBnZXQgUFJPSkVDVFMoKTpzdHJpbmcgeyByZXR1cm4gXCJwcm9qZWN0c1wiOyB9XG5cdFx0cHVibGljIHN0YXRpYyBnZXQgUk9MRV9CSU5ESU5HUygpOnN0cmluZyB7IHJldHVybiBcInJvbGViaW5kaW5nc1wiOyB9XG5cdFx0cHVibGljIHN0YXRpYyBnZXQgUk9MRVMoKTpzdHJpbmcgeyByZXR1cm4gXCJyb2xlc1wiOyB9XG5cdH1cblxuICBleHBvcnQgY2xhc3MgTmFtZXNwYWNlZFR5cGVzIHtcbiAgICBwdWJsaWMgc3RhdGljIGdldCBrOHNUeXBlcygpOkFycmF5PHN0cmluZz4ge1xuICAgICAgcmV0dXJuIFtcbiAgICAgICAgV2F0Y2hUeXBlcy5FTkRQT0lOVFMsXG4gICAgICAgIFdhdGNoVHlwZXMuRVZFTlRTLFxuICAgICAgICBXYXRjaFR5cGVzLk5PREVTLFxuICAgICAgICBXYXRjaFR5cGVzLlBFUlNJU1RFTlRfVk9MVU1FUyxcbiAgICAgICAgV2F0Y2hUeXBlcy5QRVJTSVNURU5UX1ZPTFVNRV9DTEFJTVMsXG4gICAgICAgIFdhdGNoVHlwZXMuUE9EUyxcbiAgICAgICAgV2F0Y2hUeXBlcy5SRVBMSUNBVElPTl9DT05UUk9MTEVSUyxcbiAgICAgICAgV2F0Y2hUeXBlcy5SRVNPVVJDRV9RVU9UQVMsXG4gICAgICAgIFdhdGNoVHlwZXMuUEVSU0lTVEVOVF9WT0xVTUVTLFxuICAgICAgICBXYXRjaFR5cGVzLlNFQ1JFVFMsXG4gICAgICAgIFdhdGNoVHlwZXMuU0VSVklDRVMsXG4gICAgICAgIFdhdGNoVHlwZXMuU0VSVklDRV9BQ0NPVU5UU1xuICAgICAgXTtcbiAgICB9XG4gICAgcHVibGljIHN0YXRpYyBnZXQgb3NUeXBlcygpOkFycmF5PHN0cmluZz4ge1xuICAgICAgcmV0dXJuIFtcbiAgICAgICAgV2F0Y2hUeXBlcy5URU1QTEFURVMsXG4gICAgICAgIFdhdGNoVHlwZXMuQlVJTERfQ09ORklHUyxcbiAgICAgICAgV2F0Y2hUeXBlcy5ST1VURVMsXG4gICAgICAgIFdhdGNoVHlwZXMuQlVJTERTLFxuICAgICAgICBXYXRjaFR5cGVzLkJVSUxEX0NPTkZJR1MsXG4gICAgICAgIFdhdGNoVHlwZXMuREVQTE9ZTUVOVF9DT05GSUdTLFxuICAgICAgICBXYXRjaFR5cGVzLklNQUdFX1NUUkVBTVMsXG4gICAgICAgIFdhdGNoVHlwZXMuT0FVVEhfQ0xJRU5UUyxcbiAgICAgICAgV2F0Y2hUeXBlcy5QT0xJQ0lFUyxcbiAgICAgICAgV2F0Y2hUeXBlcy5QT0xJQ1lfQklORElOR1MsXG4gICAgICAgIFdhdGNoVHlwZXMuUFJPSkVDVFMsXG4gICAgICAgIC8vV2F0Y2hUeXBlcy5ST0xFX0JJTkRJTkdTLFxuICAgICAgICAvL1dhdGNoVHlwZXMuUk9MRVNcbiAgICAgIF07XG4gICAgfVxuICB9XG5cdFxuXHRleHBvcnQgY2xhc3MgV2F0Y2hBY3Rpb25zIHtcblx0XHRwdWJsaWMgc3RhdGljIGdldCBBTlkoKTpzdHJpbmcgeyByZXR1cm4gXCIqXCI7IH1cblx0XHRwdWJsaWMgc3RhdGljIGdldCBBRERFRCgpOnN0cmluZyB7IHJldHVybiBcIkFEREVEXCI7IH1cblx0XHRwdWJsaWMgc3RhdGljIGdldCBNT0RJRklFRCgpOnN0cmluZyB7IHJldHVybiBcIk1PRElGSUVEXCI7IH1cblx0XHRwdWJsaWMgc3RhdGljIGdldCBERUxFVEVEKCk6c3RyaW5nIHsgcmV0dXJuIFwiREVMRVRFRFwiOyB9XG5cdH1cblx0XG5cdGV4cG9ydCBpbnRlcmZhY2UgT2JqZWN0TWFwIHtcblx0XHRbdWlkOnN0cmluZ106IGFueTtcdFx0XG5cdH1cblx0XG5cdGV4cG9ydCBpbnRlcmZhY2UgV2F0Y2hlclNlcnZpY2Uge1xuXHRcdGhhc1dlYlNvY2tldDogYm9vbGVhbjtcblx0XHRhZGRDdXN0b21pemVyOiAodHlwZTogc3RyaW5nLCBjdXN0b21pemVyOiAob2JqOmFueSkgPT4gdm9pZCkgPT4gdm9pZDtcblx0XHRnZXRUeXBlczogKCkgPT4gQXJyYXk8c3RyaW5nPjtcblx0XHRnZXROYW1lc3BhY2U6ICgpID0+IHN0cmluZztcblx0XHRzZXROYW1lc3BhY2U6IChuYW1lc3BhY2U6IHN0cmluZykgPT4gdm9pZDtcblx0XHRnZXRPYmplY3RzOiAodHlwZTogc3RyaW5nKSA9PiBBcnJheTxhbnk+O1xuXHRcdGdldE9iamVjdE1hcDogKHR5cGU6IHN0cmluZykgPT4gT2JqZWN0TWFwO1xuXHRcdGFkZEFjdGlvbjogKHR5cGU6IHN0cmluZywgYWN0aW9uOiBzdHJpbmcsIGZuOiAob2JqOmFueSkgPT4gdm9pZCkgPT4gdm9pZDtcblx0XHRyZWdpc3Rlckxpc3RlbmVyOiAoZm46KG9iamVjdHM6T2JqZWN0TWFwKSA9PiB2b2lkKSA9PiB2b2lkO1xuXHR9XG5cbiAgZXhwb3J0IGludGVyZmFjZSBLdWJlUG9kIHtcbiAgICBpZDpzdHJpbmc7XG4gICAgbmFtZXNwYWNlOnN0cmluZztcbiAgfVxuXG5cdFxufVxuIiwiLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4uLy4uL2luY2x1ZGVzLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cImt1YmVybmV0ZXNJbnRlcmZhY2VzLnRzXCIvPlxubW9kdWxlIEt1YmVybmV0ZXMge1xuXG4gIGV4cG9ydCB2YXIgY29udGV4dCA9ICcva3ViZXJuZXRlcyc7XG4gIGV4cG9ydCB2YXIgaGFzaCA9ICcjJyArIGNvbnRleHQ7XG4gIGV4cG9ydCB2YXIgZGVmYXVsdFJvdXRlID0gaGFzaCArICcvYXBwcyc7XG4gIGV4cG9ydCB2YXIgcGx1Z2luTmFtZSA9ICdLdWJlcm5ldGVzJztcbiAgZXhwb3J0IHZhciBwbHVnaW5QYXRoID0gJ3BsdWdpbnMva3ViZXJuZXRlcy8nO1xuICBleHBvcnQgdmFyIHRlbXBsYXRlUGF0aCA9IHBsdWdpblBhdGggKyAnaHRtbC8nO1xuICBleHBvcnQgdmFyIGxvZzpMb2dnaW5nLkxvZ2dlciA9IExvZ2dlci5nZXQocGx1Z2luTmFtZSk7XG5cbiAgZXhwb3J0IHZhciBrZWVwUG9sbGluZ01vZGVsID0gdHJ1ZTtcblxuICBleHBvcnQgdmFyIGRlZmF1bHRJY29uVXJsID0gQ29yZS51cmwoXCIvaW1nL2t1YmVybmV0ZXMuc3ZnXCIpO1xuICBleHBvcnQgdmFyIGhvc3RJY29uVXJsID0gQ29yZS51cmwoXCIvaW1nL2hvc3Quc3ZnXCIpO1xuXG4gIC8vIHRoaXMgZ2V0cyBzZXQgYXMgYSBwcmUtYm9vdHN0cmFwIHRhc2tcbiAgZXhwb3J0IHZhciBvc0NvbmZpZzpLdWJlcm5ldGVzQ29uZmlnID0gdW5kZWZpbmVkO1xuICBleHBvcnQgdmFyIG1hc3RlclVybCA9IFwiXCI7XG5cbiAgZXhwb3J0IHZhciBkZWZhdWx0QXBpVmVyc2lvbiA9IFwidjFcIjtcbiAgZXhwb3J0IHZhciBkZWZhdWx0T1NBcGlWZXJzaW9uID0gXCJ2MVwiO1xuICBleHBvcnQgdmFyIGxhYmVsRmlsdGVyVGV4dFNlcGFyYXRvciA9IFwiLFwiO1xuXG4gIGV4cG9ydCB2YXIgZGVmYXVsdE5hbWVzcGFjZSA9IFwiZGVmYXVsdFwiO1xuXG4gIGV4cG9ydCB2YXIgYXBwU3VmZml4ID0gXCIuYXBwXCI7XG5cbiAgLy8ga3ViZXJuZXRlcyBzZXJ2aWNlIG5hbWVzXG4gIGV4cG9ydCB2YXIga2liYW5hU2VydmljZU5hbWUgPSBcImtpYmFuYVwiO1xuICBleHBvcnQgdmFyIGZhYnJpYzhGb3JnZVNlcnZpY2VOYW1lID0gXCJmYWJyaWM4LWZvcmdlXCI7XG4gIGV4cG9ydCB2YXIgZ29nc1NlcnZpY2VOYW1lID0gXCJnb2dzXCI7XG4gIGV4cG9ydCB2YXIgamVua2luc1NlcnZpY2VOYW1lID0gXCJqZW5raW5zXCI7XG4gIGV4cG9ydCB2YXIgYXBpbWFuU2VydmljZU5hbWUgPSAnYXBpbWFuJztcbiAgZXhwb3J0IHZhciBpc09wZW5TaGlmdCA9IHRydWU7XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGt1YmVybmV0ZXNOYW1lc3BhY2VQYXRoKCkge1xuICAgIHZhciBucyA9IGN1cnJlbnRLdWJlcm5ldGVzTmFtZXNwYWNlKCk7XG4gICAgaWYgKG5zKSB7XG4gICAgICByZXR1cm4gXCIvbmFtZXNwYWNlcy9cIiArIG5zO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gXCJcIjtcbiAgICB9XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gYXBpUHJlZml4KCkge1xuICAgIHZhciBwcmVmaXggPSBDb3JlLnBhdGhHZXQob3NDb25maWcsIFsnYXBpJywgJ2s4cycsICdwcmVmaXgnXSk7XG4gICAgaWYgKCFwcmVmaXgpIHtcbiAgICAgIHByZWZpeCA9ICdhcGknO1xuICAgIH1cbiAgICByZXR1cm4gQ29yZS50cmltTGVhZGluZyhwcmVmaXgsICcvJyk7XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gb3NBcGlQcmVmaXgoKSB7XG4gICAgdmFyIHByZWZpeCA9IENvcmUucGF0aEdldChvc0NvbmZpZywgWydhcGknLCAnb3BlbnNoaWZ0JywgJ3ByZWZpeCddKTtcbiAgICBpZiAoIXByZWZpeCkge1xuICAgICAgcHJlZml4ID0gJ29hcGknO1xuICAgIH1cbiAgICB2YXIgYW5zd2VyID0gQ29yZS50cmltTGVhZGluZyhwcmVmaXgsICcvJyk7XG4gICAgaWYgKCFpc09wZW5TaGlmdCkge1xuICAgICAgcmV0dXJuIFVybEhlbHBlcnMuam9pbihhcGlQcmVmaXgoKSwgZGVmYXVsdE9TQXBpVmVyc2lvbiwgXCJwcm94eVwiLCBrdWJlcm5ldGVzTmFtZXNwYWNlUGF0aCgpLCBcInNlcnZpY2VzL3RlbXBsYXRlc1wiLCBhbnN3ZXIpO1xuICAgIH1cbiAgICByZXR1cm4gYW5zd2VyO1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIG1hc3RlckFwaVVybCgpIHtcbiAgICByZXR1cm4gbWFzdGVyVXJsIHx8IFwiXCI7XG4gIH1cblxuICAvKiogV0FSTklORyAtIHRoaXMgZXhjbHVkZXMgdGhlIGhvc3QgbmFtZSAtIHlvdSBwcm9iYWJseSB3YW50IHRvIHVzZToga3ViZXJuZXRlc0FwaVVybCgpIGluc3RlYWQhISAqL1xuICBleHBvcnQgZnVuY3Rpb24ga3ViZXJuZXRlc0FwaVByZWZpeCgpIHtcbiAgICByZXR1cm4gVXJsSGVscGVycy5qb2luKGFwaVByZWZpeCgpLCBkZWZhdWx0QXBpVmVyc2lvbik7XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gb3BlbnNoaWZ0QXBpUHJlZml4KCkge1xuICAgIHJldHVybiBVcmxIZWxwZXJzLmpvaW4ob3NBcGlQcmVmaXgoKSwgZGVmYXVsdE9TQXBpVmVyc2lvbik7XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gcHJlZml4Rm9yVHlwZSh0eXBlOnN0cmluZykge1xuICAgIGlmICh0eXBlID09PSBXYXRjaFR5cGVzLk5BTUVTUEFDRVMpIHtcbiAgICAgIHJldHVybiBrdWJlcm5ldGVzQXBpUHJlZml4KCk7XG4gICAgfVxuICAgIGlmIChfLmFueShOYW1lc3BhY2VkVHlwZXMuazhzVHlwZXMsICh0KSA9PiB0ID09PSB0eXBlKSkge1xuICAgICAgcmV0dXJuIGt1YmVybmV0ZXNBcGlQcmVmaXgoKTtcbiAgICB9XG4gICAgaWYgKF8uYW55KE5hbWVzcGFjZWRUeXBlcy5vc1R5cGVzLCAodCkgPT4gdCA9PT0gdHlwZSkpIHtcbiAgICAgIHJldHVybiBvcGVuc2hpZnRBcGlQcmVmaXgoKTtcbiAgICB9XG4gICAgLy8gbGV0cyBhc3N1bWUgaXRzIGFuIE9wZW5TaGlmdCBleHRlbnNpb24gdHlwZVxuICAgIHJldHVybiBvcGVuc2hpZnRBcGlQcmVmaXgoKTtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBrdWJlcm5ldGVzQXBpVXJsKCkge1xuICAgIHJldHVybiBVcmxIZWxwZXJzLmpvaW4obWFzdGVyQXBpVXJsKCksIGt1YmVybmV0ZXNBcGlQcmVmaXgoKSk7XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gb3BlbnNoaWZ0QXBpVXJsKCkge1xuICAgIHJldHVybiBVcmxIZWxwZXJzLmpvaW4obWFzdGVyQXBpVXJsKCksIG9wZW5zaGlmdEFwaVByZWZpeCgpKTtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiByZXNvdXJjZXNVcmlGb3JLaW5kKHR5cGUsIG5zID0gbnVsbCkge1xuICAgIGlmICghbnMpIHtcbiAgICAgIG5zID0gY3VycmVudEt1YmVybmV0ZXNOYW1lc3BhY2UoKTtcbiAgICB9XG4gICAgcmV0dXJuIFVybEhlbHBlcnMuam9pbihtYXN0ZXJBcGlVcmwoKSwgcHJlZml4Rm9yVHlwZSh0eXBlKSwgbmFtZXNwYWNlUGF0aEZvcktpbmQodHlwZSwgbnMpKTtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiB1cmlUZW1wbGF0ZUZvckt1YmVybmV0ZXNLaW5kKHR5cGUpIHtcbiAgICB2YXIgdXJsVGVtcGxhdGUgPSAnJztcbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgV2F0Y2hUeXBlcy5OQU1FU1BBQ0VTOlxuICAgICAgY2FzZSBcIk5hbWVzcGFjZXNcIjpcbiAgICAgICAgdXJsVGVtcGxhdGUgPSBVcmxIZWxwZXJzLmpvaW4oJ25hbWVzcGFjZXMnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFdhdGNoVHlwZXMuT0FVVEhfQ0xJRU5UUzpcbiAgICAgIGNhc2UgXCJPQXV0aENsaWVudHNcIjpcbiAgICAgIGNhc2UgXCJPQXV0aENsaWVudFwiOlxuICAgICAgICByZXR1cm4gVXJsSGVscGVycy5qb2luKCdvYXV0aGNsaWVudHMnKTtcbiAgICAgIGNhc2UgV2F0Y2hUeXBlcy5QUk9KRUNUUzpcbiAgICAgIGNhc2UgXCJQcm9qZWN0c1wiOlxuICAgICAgICB1cmxUZW1wbGF0ZSA9IFVybEhlbHBlcnMuam9pbigncHJvamVjdHMnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB1cmxUZW1wbGF0ZSA9IFVybEhlbHBlcnMuam9pbignbmFtZXNwYWNlcy86bmFtZXNwYWNlJywgdHlwZSwgJzppZCcpO1xuICAgIH1cbiAgICByZXR1cm4gdXJsVGVtcGxhdGU7XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gbmFtZXNwYWNlUGF0aEZvcktpbmQodHlwZSwgbnMpIHtcbiAgICB2YXIgdXJsVGVtcGxhdGUgPSAnJztcbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgV2F0Y2hUeXBlcy5OQU1FU1BBQ0VTOlxuICAgICAgY2FzZSBcIk5hbWVzcGFjZXNcIjpcbiAgICAgIGNhc2UgXCJOYW1lc3BhY2VcIjpcbiAgICAgICAgcmV0dXJuIFVybEhlbHBlcnMuam9pbignbmFtZXNwYWNlcycpO1xuICAgICAgY2FzZSBXYXRjaFR5cGVzLk5PREVTOlxuICAgICAgY2FzZSBcIk5vZGVzXCI6XG4gICAgICBjYXNlIFwibm9kZVwiOlxuICAgICAgICByZXR1cm4gVXJsSGVscGVycy5qb2luKCdub2RlcycpO1xuICAgICAgY2FzZSBXYXRjaFR5cGVzLlBST0pFQ1RTOlxuICAgICAgY2FzZSBcIlByb2plY3RzXCI6XG4gICAgICBjYXNlIFwiUHJvamVjdFwiOlxuICAgICAgICByZXR1cm4gVXJsSGVscGVycy5qb2luKCdwcm9qZWN0cycpO1xuICAgICAgY2FzZSBXYXRjaFR5cGVzLk9BVVRIX0NMSUVOVFM6XG4gICAgICBjYXNlIFwiT0F1dGhDbGllbnRzXCI6XG4gICAgICBjYXNlIFwiT0F1dGhDbGllbnRcIjpcbiAgICAgICAgcmV0dXJuIFVybEhlbHBlcnMuam9pbignb2F1dGhjbGllbnRzJyk7XG4gICAgICBjYXNlIFdhdGNoVHlwZXMuUEVSU0lTVEVOVF9WT0xVTUVTOlxuICAgICAgY2FzZSBcIlBlcnNpc3RlbnRWb2x1bWVzXCI6XG4gICAgICBjYXNlIFwiUGVyc2lzdGVudFZvbHVtZVwiOlxuICAgICAgICByZXR1cm4gVXJsSGVscGVycy5qb2luKCdwZXJzaXN0ZW50dm9sdW1lcycpO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIFVybEhlbHBlcnMuam9pbignbmFtZXNwYWNlcycsIG5zLCB0eXBlKTtcbiAgICB9XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gdXBkYXRlT3JDcmVhdGVPYmplY3Qob2JqZWN0LCBLdWJlcm5ldGVzTW9kZWwsIHN1Y2Nlc3M/OiAoZGF0YSkgPT4gdm9pZCwgZXJyb3I/OiAoZXJyb3IpID0+IHZvaWQpIHtcbiAgICB2YXIga2luZCA9IGdldEtpbmQob2JqZWN0KTtcbiAgICBpZiAoa2luZCA9PT0gXCJMaXN0XCIpIHtcbiAgICAgIGxvZy5kZWJ1ZyhcIk9iamVjdCBpcyBhIGxpc3QsIGRlcGxveWluZyBhbGwgb2JqZWN0c1wiKTtcbiAgICAgIF8uZm9yRWFjaChvYmplY3QuaXRlbXMsIChvYmopID0+IHtcbiAgICAgICAgbG9nLmRlYnVnKFwiRGVwbG95aW5nOiBcIiwgb2JqKTtcbiAgICAgICAgdXBkYXRlT3JDcmVhdGVPYmplY3Qob2JqLCBLdWJlcm5ldGVzTW9kZWwsIHN1Y2Nlc3MsIGVycm9yKTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIWtpbmQpIHtcbiAgICAgIGxvZy5kZWJ1ZyhcIk9iamVjdDogXCIsIG9iamVjdCwgXCIgaGFzIG5vIG9iamVjdCB0eXBlXCIpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBraW5kID0ga2luZC50b0xvd2VyQ2FzZSgpLnBsdXJhbGl6ZSgpO1xuICAgIHZhciByZXNvdXJjZSA9IEt1YmVybmV0ZXNNb2RlbFtraW5kICsgJ1Jlc291cmNlJ107XG4gICAgaWYgKCFyZXNvdXJjZSkge1xuICAgICAgdmFyIGluamVjdG9yID0gSGF3dGlvQ29yZS5pbmplY3RvcjtcbiAgICAgIHZhciAkcmVzb3VyY2UgPSBpbmplY3RvciA/IGluamVjdG9yLmdldChcIiRyZXNvdXJjZVwiKSA6IG51bGw7XG4gICAgICBpZiAoISRyZXNvdXJjZSkge1xuICAgICAgICBsb2cud2FybihcIkNhbm5vdCBjcmVhdGUgcmVzb3VyY2UgZm9yIFwiICsga2luZCArIFwiIGR1ZSB0byBtaXNzaW5nICRyZXNvdXJjZVwiKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgcmVzb3VyY2UgPSBjcmVhdGVSZXNvdXJjZShraW5kLCB1cmlUZW1wbGF0ZUZvckt1YmVybmV0ZXNLaW5kKGtpbmQpLCAkcmVzb3VyY2UsIEt1YmVybmV0ZXNNb2RlbCk7XG4gICAgICBLdWJlcm5ldGVzTW9kZWxba2luZCArICdSZXNvdXJjZSddID0gcmVzb3VyY2U7XG4gICAgfVxuICAgIHZhciBuYW1lID0gZ2V0TmFtZShvYmplY3QpO1xuICAgIGlmICghbmFtZSkge1xuICAgICAgbG9nLmRlYnVnKFwiT2JqZWN0IGhhcyBubyBuYW1lOiBcIiwgb2JqZWN0KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB2YXIgaXNVcGRhdGUgPSBfLmFueShLdWJlcm5ldGVzTW9kZWxba2luZF0sIChuKSA9PiBuID09PSBuYW1lKVxuICAgIHZhciBhY3Rpb24gPSBpc1VwZGF0ZSA/IFwiTW9kaWZpZWRcIiA6IFwiQWRkZWRcIjtcblxuICAgIHZhciBzdWNjZXNzSW50ZXJuYWwgPSAoZGF0YSkgPT4ge1xuICAgICAgbG9nLmRlYnVnKGFjdGlvbiwgZGF0YSk7XG4gICAgICBpZiAoIWlzVXBkYXRlKSB7XG4gICAgICAgIEt1YmVybmV0ZXNNb2RlbFtraW5kXS5wdXNoKGRhdGEpO1xuICAgICAgfVxuICAgICAgaWYgKHN1Y2Nlc3MpIHtcbiAgICAgICAgc3VjY2VzcyhkYXRhKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIHZhciBlcnJvckludGVybmFsID0gKGVycikgPT4ge1xuICAgICAgbG9nLmRlYnVnKFwiRmFpbGVkIHRvIGFkZC9tb2RpZnkgb2JqZWN0OiBcIiwgb2JqZWN0LCBcIiBlcnJvcjogXCIsIGVycik7XG4gICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgZXJyb3IoZXJyKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGlzVXBkYXRlKSB7XG4gICAgICBsb2cuZGVidWcoXCJPYmplY3QgYWxyZWFkeSBleGlzdHMsIHVwZGF0aW5nLi4uXCIpO1xuICAgICAgcmVzb3VyY2Uuc2F2ZSh7IGlkOiBuYW1lIH0sIG9iamVjdCwgc3VjY2Vzc0ludGVybmFsLCBlcnJvckludGVybmFsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbG9nLmRlYnVnKFwiT2JqZWN0IGRvZXNuJ3QgZXhpc3QsIGNyZWF0aW5nLi4uXCIpO1xuICAgICAgcmVzb3VyY2UuY3JlYXRlKHt9LCBvYmplY3QsIHN1Y2Nlc3NJbnRlcm5hbCwgZXJyb3JJbnRlcm5hbCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhldmFsdWUgZnJvbSB0aGUgaW5qZWN0b3IgaWYgaXRzIGF2YWlsYWJsZSBvciBudWxsXG4gICAqL1xuICBleHBvcnQgZnVuY3Rpb24gaW5qZWN0KG5hbWUpIHtcbiAgICB2YXIgaW5qZWN0b3IgPSBIYXd0aW9Db3JlLmluamVjdG9yO1xuICAgIHJldHVybiBpbmplY3RvciA/IGluamVjdG9yLmdldChuYW1lKSA6IG51bGw7XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gY3JlYXRlUmVzb3VyY2UodGhpbmc6c3RyaW5nLCB1cmxUZW1wbGF0ZTpzdHJpbmcsICRyZXNvdXJjZTogbmcucmVzb3VyY2UuSVJlc291cmNlU2VydmljZSwgS3ViZXJuZXRlc01vZGVsKSB7XG4gICAgdmFyIHByZWZpeCA9IHByZWZpeEZvclR5cGUodGhpbmcpO1xuICAgIGlmICghcHJlZml4KSB7XG4gICAgICBsb2cuZGVidWcoXCJJbnZhbGlkIHR5cGUgZ2l2ZW46IFwiLCB0aGluZyk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICB2YXIgcGFyYW1zID0gPGFueT4ge1xuICAgICAgbmFtZXNwYWNlOiBjdXJyZW50S3ViZXJuZXRlc05hbWVzcGFjZVxuICAgIH1cbiAgICBzd2l0Y2ggKHRoaW5nKSB7XG4gICAgICBjYXNlIFdhdGNoVHlwZXMuTkFNRVNQQUNFUzpcbiAgICAgIGNhc2UgV2F0Y2hUeXBlcy5PQVVUSF9DTElFTlRTOlxuICAgICAgY2FzZSBXYXRjaFR5cGVzLk5PREVTOlxuICAgICAgY2FzZSBXYXRjaFR5cGVzLlBST0pFQ1RTOlxuICAgICAgY2FzZSBXYXRjaFR5cGVzLk9BVVRIX0NMSUVOVFM6XG4gICAgICBjYXNlIFdhdGNoVHlwZXMuUEVSU0lTVEVOVF9WT0xVTUVTOlxuICAgICAgcGFyYW1zID0ge307XG4gICAgfVxuXG4gICAgdmFyIHVybCA9IFVybEhlbHBlcnMuam9pbihtYXN0ZXJBcGlVcmwoKSwgcHJlZml4LCB1cmxUZW1wbGF0ZSk7XG4gICAgbG9nLmRlYnVnKFwiVXJsIGZvciBcIiwgdGhpbmcsIFwiOiBcIiwgdXJsKTtcbiAgICB2YXIgcmVzb3VyY2UgPSAkcmVzb3VyY2UodXJsLCBudWxsLCB7XG4gICAgICBxdWVyeTogeyBtZXRob2Q6ICdHRVQnLCBpc0FycmF5OiBmYWxzZSwgcGFyYW1zOiBwYXJhbXN9LFxuICAgICAgY3JlYXRlOiB7IG1ldGhvZDogJ1BPU1QnLCBwYXJhbXM6IHBhcmFtc30sXG4gICAgICBzYXZlOiB7IG1ldGhvZDogJ1BVVCcsIHBhcmFtczogcGFyYW1zfSxcbiAgICAgIGRlbGV0ZTogeyBtZXRob2Q6ICdERUxFVEUnLCBwYXJhbXM6IF8uZXh0ZW5kKHtcbiAgICAgICAgaWQ6ICdAaWQnXG4gICAgICB9LCBwYXJhbXMpfVxuICAgIH0pO1xuICAgIHJldHVybiByZXNvdXJjZTtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBpbWFnZVJlcG9zaXRvcmllc1Jlc3RVUkwoKSB7XG4gICAgcmV0dXJuIFVybEhlbHBlcnMuam9pbihvcGVuc2hpZnRBcGlVcmwoKSwga3ViZXJuZXRlc05hbWVzcGFjZVBhdGgoKSwgXCIvaW1hZ2VzdHJlYW1zXCIpO1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGRlcGxveW1lbnRDb25maWdzUmVzdFVSTCgpIHtcbiAgICByZXR1cm4gVXJsSGVscGVycy5qb2luKG9wZW5zaGlmdEFwaVVybCgpLCBrdWJlcm5ldGVzTmFtZXNwYWNlUGF0aCgpLCBcIi9kZXBsb3ltZW50Y29uZmlnc1wiKTtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBidWlsZHNSZXN0VVJMKCkge1xuICAgIHJldHVybiBVcmxIZWxwZXJzLmpvaW4ob3BlbnNoaWZ0QXBpVXJsKCksIGt1YmVybmV0ZXNOYW1lc3BhY2VQYXRoKCksIFwiL2J1aWxkc1wiKTtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBidWlsZENvbmZpZ0hvb2tzUmVzdFVSTCgpIHtcbiAgICByZXR1cm4gVXJsSGVscGVycy5qb2luKG9wZW5zaGlmdEFwaVVybCgpLCBrdWJlcm5ldGVzTmFtZXNwYWNlUGF0aCgpLCBcIi9idWlsZGNvbmZpZ2hvb2tzXCIpO1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkQ29uZmlnc1Jlc3RVUkwoKSB7XG4gICAgcmV0dXJuIFVybEhlbHBlcnMuam9pbihvcGVuc2hpZnRBcGlVcmwoKSwga3ViZXJuZXRlc05hbWVzcGFjZVBhdGgoKSwgXCIvYnVpbGRjb25maWdzXCIpO1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIHJvdXRlc1Jlc3RVUkwoKSB7XG4gICAgcmV0dXJuIFVybEhlbHBlcnMuam9pbihvcGVuc2hpZnRBcGlVcmwoKSwga3ViZXJuZXRlc05hbWVzcGFjZVBhdGgoKSwgXCIvcm91dGVzXCIpO1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIHRlbXBsYXRlc1Jlc3RVUkwoKSB7XG4gICAgcmV0dXJuIFVybEhlbHBlcnMuam9pbihvcGVuc2hpZnRBcGlVcmwoKSwga3ViZXJuZXRlc05hbWVzcGFjZVBhdGgoKSwgXCIvdGVtcGxhdGVzXCIpO1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGdldE5hbWVzcGFjZShlbnRpdHkpIHtcbiAgICB2YXIgYW5zd2VyID0gQ29yZS5wYXRoR2V0KGVudGl0eSwgW1wibWV0YWRhdGFcIiwgXCJuYW1lc3BhY2VcIl0pO1xuICAgIHJldHVybiBhbnN3ZXIgPyBhbnN3ZXIgOiBjdXJyZW50S3ViZXJuZXRlc05hbWVzcGFjZSgpO1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGdldExhYmVscyhlbnRpdHkpIHtcbiAgICB2YXIgYW5zd2VyID0gQ29yZS5wYXRoR2V0KGVudGl0eSwgW1wibWV0YWRhdGFcIiwgXCJsYWJlbHNcIl0pO1xuICAgIHJldHVybiBhbnN3ZXIgPyBhbnN3ZXIgOiB7fTtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBnZXROYW1lKGVudGl0eSkge1xuICAgIGlmIChhbmd1bGFyLmlzU3RyaW5nKGVudGl0eSkpIHtcbiAgICAgIHJldHVybiBlbnRpdHk7XG4gICAgfVxuICAgIHJldHVybiBDb3JlLnBhdGhHZXQoZW50aXR5LCBbXCJtZXRhZGF0YVwiLCBcIm5hbWVcIl0pIHx8IENvcmUucGF0aEdldChlbnRpdHksIFwibmFtZVwiKSB8fCBDb3JlLnBhdGhHZXQoZW50aXR5LCBcImlkXCIpO1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGdldEtpbmQoZW50aXR5KSB7XG4gICAgcmV0dXJuIENvcmUucGF0aEdldChlbnRpdHksIFtcIm1ldGFkYXRhXCIsIFwia2luZFwiXSkgfHwgQ29yZS5wYXRoR2V0KGVudGl0eSwgXCJraW5kXCIpO1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGdldFNlbGVjdG9yKGVudGl0eSkge1xuICAgIHJldHVybiBDb3JlLnBhdGhHZXQoZW50aXR5LCBbXCJzcGVjXCIsIFwic2VsZWN0b3JcIl0pO1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGdldEhvc3QocG9kKSB7XG4gICAgcmV0dXJuIENvcmUucGF0aEdldChwb2QsIFtcInNwZWNcIiwgXCJob3N0XCJdKSB8fCBDb3JlLnBhdGhHZXQocG9kLCBbXCJzcGVjXCIsIFwibm9kZU5hbWVcIl0pIHx8IENvcmUucGF0aEdldChwb2QsIFtcInN0YXR1c1wiLCBcImhvc3RJUFwiXSk7XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gZ2V0U3RhdHVzKHBvZCkge1xuICAgIHJldHVybiBDb3JlLnBhdGhHZXQocG9kLCBbXCJzdGF0dXNcIiwgXCJwaGFzZVwiXSk7XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gZ2V0UG9ydHMoc2VydmljZSkge1xuICAgIHJldHVybiBDb3JlLnBhdGhHZXQoc2VydmljZSwgW1wic3BlY1wiLCBcInBvcnRzXCJdKTtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBnZXRDcmVhdGlvblRpbWVzdGFtcChlbnRpdHkpIHtcbiAgICByZXR1cm4gQ29yZS5wYXRoR2V0KGVudGl0eSwgW1wibWV0YWRhdGFcIiwgXCJjcmVhdGlvblRpbWVzdGFtcFwiXSk7XG4gIH07XG5cbiAgLy92YXIgZmFicmljRG9tYWluID0gRmFicmljLmpteERvbWFpbjtcbiAgdmFyIGZhYnJpY0RvbWFpbiA9IFwiaW8uZmFicmljOFwiO1xuICBleHBvcnQgdmFyIG1iZWFuID0gZmFicmljRG9tYWluICsgXCI6dHlwZT1LdWJlcm5ldGVzXCI7XG4gIGV4cG9ydCB2YXIgbWFuYWdlck1CZWFuID0gZmFicmljRG9tYWluICsgXCI6dHlwZT1LdWJlcm5ldGVzTWFuYWdlclwiO1xuICBleHBvcnQgdmFyIGFwcFZpZXdNQmVhbiA9IGZhYnJpY0RvbWFpbiArIFwiOnR5cGU9QXBwVmlld1wiO1xuXG4gIGV4cG9ydCBmdW5jdGlvbiBpc0t1YmVybmV0ZXMod29ya3NwYWNlPykge1xuICAgIC8vIHJldHVybiB3b3Jrc3BhY2UudHJlZUNvbnRhaW5zRG9tYWluQW5kUHJvcGVydGllcyhmYWJyaWNEb21haW4sIHt0eXBlOiBcIkt1YmVybmV0ZXNcIn0pO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGlzS3ViZXJuZXRlc1RlbXBsYXRlTWFuYWdlcih3b3Jrc3BhY2U/KSB7XG4gICAgLy8gcmV0dXJuIHdvcmtzcGFjZS50cmVlQ29udGFpbnNEb21haW5BbmRQcm9wZXJ0aWVzKGZhYnJpY0RvbWFpbiwge3R5cGU6IFwiS3ViZXJuZXRlc1RlbXBsYXRlTWFuYWdlclwifSk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gaXNBcHBWaWV3KHdvcmtzcGFjZT8pIHtcbiAgICAvLyByZXR1cm4gd29ya3NwYWNlLnRyZWVDb250YWluc0RvbWFpbkFuZFByb3BlcnRpZXMoZmFicmljRG9tYWluLCB7dHlwZTogXCJBcHBWaWV3XCJ9KTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBnZXRTdHJpcHBlZFBhdGhOYW1lKCk6U3RyaW5nIHtcbiAgICB2YXIgcGF0aE5hbWUgPSBDb3JlLnRyaW1MZWFkaW5nKCh0aGlzLiRsb2NhdGlvbi5wYXRoKCkgfHwgJy8nKSwgXCIjXCIpO1xuICAgIHBhdGhOYW1lID0gcGF0aE5hbWUucmVwbGFjZSgvXlxcLy8sICcnKTtcbiAgICByZXR1cm4gcGF0aE5hbWU7XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gbGlua0NvbnRhaW5zKC4uLndvcmRzOlN0cmluZ1tdKTpib29sZWFuIHtcbiAgICB2YXIgcGF0aE5hbWUgPSB0aGlzLmdldFN0cmlwcGVkUGF0aE5hbWUoKTtcbiAgICByZXR1cm4gd29yZHMuYWxsKCh3b3JkOnN0cmluZykgPT4ge1xuICAgICAgcmV0dXJuIHBhdGhOYW1lLmhhcyh3b3JkKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIGdpdmVuIGxpbmsgaXMgYWN0aXZlLiBUaGUgbGluayBjYW4gb21pdCB0aGUgbGVhZGluZyAjIG9yIC8gaWYgbmVjZXNzYXJ5LlxuICAgKiBUaGUgcXVlcnkgcGFyYW1ldGVycyBvZiB0aGUgVVJMIGFyZSBpZ25vcmVkIGluIHRoZSBjb21wYXJpc29uLlxuICAgKiBAbWV0aG9kIGlzTGlua0FjdGl2ZVxuICAgKiBAcGFyYW0ge1N0cmluZ30gaHJlZlxuICAgKiBAcmV0dXJuIHtCb29sZWFufSB0cnVlIGlmIHRoZSBnaXZlbiBsaW5rIGlzIGFjdGl2ZVxuICAgKi9cbiAgZXhwb3J0IGZ1bmN0aW9uIGlzTGlua0FjdGl2ZShocmVmOnN0cmluZyk6Ym9vbGVhbiB7XG4gICAgLy8gbGV0cyB0cmltIHRoZSBsZWFkaW5nIHNsYXNoXG4gICAgdmFyIHBhdGhOYW1lID0gZ2V0U3RyaXBwZWRQYXRoTmFtZSgpO1xuXG4gICAgdmFyIGxpbmsgPSBDb3JlLnRyaW1MZWFkaW5nKGhyZWYsIFwiI1wiKTtcbiAgICBsaW5rID0gbGluay5yZXBsYWNlKC9eXFwvLywgJycpO1xuICAgIC8vIHN0cmlwIGFueSBxdWVyeSBhcmd1bWVudHNcbiAgICB2YXIgaWR4ID0gbGluay5pbmRleE9mKCc/Jyk7XG4gICAgaWYgKGlkeCA+PSAwKSB7XG4gICAgICBsaW5rID0gbGluay5zdWJzdHJpbmcoMCwgaWR4KTtcbiAgICB9XG4gICAgaWYgKCFwYXRoTmFtZS5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBsaW5rID09PSBwYXRoTmFtZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHBhdGhOYW1lLnN0YXJ0c1dpdGgobGluayk7XG4gICAgfVxuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIHNldEpzb24oJHNjb3BlLCBpZCwgY29sbGVjdGlvbikge1xuICAgICRzY29wZS5pZCA9IGlkO1xuICAgIGlmICghJHNjb3BlLmZldGNoZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCFpZCkge1xuICAgICAgJHNjb3BlLmpzb24gPSAnJztcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCFjb2xsZWN0aW9uKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHZhciBpdGVtID0gY29sbGVjdGlvbi5maW5kKChpdGVtKSA9PiB7IHJldHVybiBnZXROYW1lKGl0ZW0pID09PSBpZDsgfSk7XG4gICAgaWYgKGl0ZW0pIHtcbiAgICAgICRzY29wZS5qc29uID0gYW5ndWxhci50b0pzb24oaXRlbSwgdHJ1ZSk7XG4gICAgICAkc2NvcGUuaXRlbSA9IGl0ZW07XG4gICAgfSBlbHNlIHtcbiAgICAgICRzY29wZS5pZCA9IHVuZGVmaW5lZDtcbiAgICAgICRzY29wZS5qc29uID0gJyc7XG4gICAgICAkc2NvcGUuaXRlbSA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgbGFiZWxzIHRleHQgc3RyaW5nIHVzaW5nIHRoZSA8Y29kZT5rZXkxPXZhbHVlMSxrZXkyPXZhbHVlMiwuLi4uPC9jb2RlPiBmb3JtYXRcbiAgICovXG4gIGV4cG9ydCBmdW5jdGlvbiBsYWJlbHNUb1N0cmluZyhsYWJlbHMsIHNlcGVyYXRvclRleHQgPSBsYWJlbEZpbHRlclRleHRTZXBhcmF0b3IpIHtcbiAgICB2YXIgYW5zd2VyID0gXCJcIjtcbiAgICBhbmd1bGFyLmZvckVhY2gobGFiZWxzLCAodmFsdWUsIGtleSkgPT4ge1xuICAgICAgdmFyIHNlcGFyYXRvciA9IGFuc3dlciA/IHNlcGVyYXRvclRleHQgOiBcIlwiO1xuICAgICAgYW5zd2VyICs9IHNlcGFyYXRvciArIGtleSArIFwiPVwiICsgdmFsdWU7XG4gICAgfSk7XG4gICAgcmV0dXJuIGFuc3dlcjtcbiAgfVxuXG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGluaXRTaGFyZWQoJHNjb3BlLCAkbG9jYXRpb24sICRodHRwLCAkdGltZW91dCwgJHJvdXRlUGFyYW1zLCBLdWJlcm5ldGVzTW9kZWwsIEt1YmVybmV0ZXNTdGF0ZSwgS3ViZXJuZXRlc0FwaVVSTCkge1xuICAgICRzY29wZS5iYXNlVXJpID0gQ29yZS50cmltVHJhaWxpbmcoQ29yZS51cmwoXCIvXCIpIHx8IFwiXCIsIFwiL1wiKSB8fCBcIlwiO1xuXG4gICAgdmFyIGluamVjdG9yID0gSGF3dGlvQ29yZS5pbmplY3RvcjtcblxuICAgIGZ1bmN0aW9uIGhhc1NlcnZpY2UobmFtZSkge1xuICAgICAgaWYgKGluamVjdG9yKSB7XG4gICAgICAgIHZhciBTZXJ2aWNlUmVnaXN0cnkgPSBpbmplY3Rvci5nZXQoXCJTZXJ2aWNlUmVnaXN0cnlcIik7XG4gICAgICAgIGlmIChTZXJ2aWNlUmVnaXN0cnkpIHtcbiAgICAgICAgICByZXR1cm4gU2VydmljZVJlZ2lzdHJ5Lmhhc1NlcnZpY2UobmFtZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAkc2NvcGUuaGFzU2VydmljZUtpYmFuYSA9ICgpID0+IGhhc1NlcnZpY2Uoa2liYW5hU2VydmljZU5hbWUpO1xuICAgICRzY29wZS5oYXNTZXJ2aWNlR29ncyA9ICgpID0+IGhhc1NlcnZpY2UoZ29nc1NlcnZpY2VOYW1lKTtcbiAgICAkc2NvcGUuaGFzU2VydmljZUZvcmdlID0gKCkgPT4gaGFzU2VydmljZShmYWJyaWM4Rm9yZ2VTZXJ2aWNlTmFtZSk7XG4gICAgJHNjb3BlLmhhc1NlcnZpY2VBcGltYW4gPSAoKSA9PiBoYXNTZXJ2aWNlKGFwaW1hblNlcnZpY2VOYW1lKTtcblxuICAgICRzY29wZS52aWV3VGVtcGxhdGVzID0gKCkgPT4ge1xuICAgICAgdmFyIHJldHVyblRvID0gJGxvY2F0aW9uLnVybCgpO1xuICAgICAgJGxvY2F0aW9uLnBhdGgoJy9rdWJlcm5ldGVzL3RlbXBsYXRlcycpLnNlYXJjaCh7J3JldHVyblRvJzogcmV0dXJuVG99KTtcbiAgICB9XG5cbiAgICAkc2NvcGUubmFtZXNwYWNlID0gJHJvdXRlUGFyYW1zLm5hbWVzcGFjZSB8fCBLdWJlcm5ldGVzU3RhdGUuc2VsZWN0ZWROYW1lc3BhY2UgfHwgZGVmYXVsdE5hbWVzcGFjZTtcbiAgICBpZiAoJHNjb3BlLm5hbWVzcGFjZSAhPSBLdWJlcm5ldGVzU3RhdGUuc2VsZWN0ZWROYW1lc3BhY2UpIHtcbiAgICAgIEt1YmVybmV0ZXNTdGF0ZS5zZWxlY3RlZE5hbWVzcGFjZSA9ICRzY29wZS5uYW1lc3BhY2U7XG5cbiAgICAgIC8vIGxldHMgc2hvdyBwYWdlIGlzIGdvaW5nIHRvIHJlbG9hZFxuICAgICAgaWYgKCRzY29wZS5tb2RlbCkge1xuICAgICAgICAkc2NvcGUubW9kZWwuZmV0Y2hlZCA9IGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgICAkc2NvcGUuZm9yZ2VFbmFibGVkID0gaXNGb3JnZUVuYWJsZWQoKTtcblxuICAgICRzY29wZS5icmVhZGNydW1iQ29uZmlnID0gRGV2ZWxvcGVyLmNyZWF0ZUVudmlyb25tZW50QnJlYWRjcnVtYnMoJHNjb3BlLCAkbG9jYXRpb24sICRyb3V0ZVBhcmFtcyk7XG4gICAgJHNjb3BlLnN1YlRhYkNvbmZpZyA9IERldmVsb3Blci5jcmVhdGVFbnZpcm9ubWVudFN1Yk5hdkJhcnMoJHNjb3BlLCAkbG9jYXRpb24sICRyb3V0ZVBhcmFtcyk7XG5cbiAgICAkc2NvcGUuY29kZU1pcnJvck9wdGlvbnMgPSB7XG4gICAgICBsaW5lV3JhcHBpbmcgOiB0cnVlLFxuICAgICAgbGluZU51bWJlcnM6IHRydWUsXG4gICAgICByZWFkT25seTogJ25vY3Vyc29yJyxcbiAgICAgIG1vZGU6IHtuYW1lOiBcImphdmFzY3JpcHRcIiwganNvbjogdHJ1ZX1cbiAgICB9O1xuXG4gICAgJHNjb3BlLnJlc2l6ZURpYWxvZyA9IHtcbiAgICAgIGNvbnRyb2xsZXI6IG51bGwsXG4gICAgICBuZXdSZXBsaWNhczogMCxcbiAgICAgIGRpYWxvZzogbmV3IFVJLkRpYWxvZygpLFxuICAgICAgb25PazogKCkgPT4ge1xuICAgICAgICB2YXIgcmVzaXplRGlhbG9nID0gJHNjb3BlLnJlc2l6ZURpYWxvZztcbiAgICAgICAgcmVzaXplRGlhbG9nLmRpYWxvZy5jbG9zZSgpO1xuICAgICAgICByZXNpemVDb250cm9sbGVyKCRodHRwLCBLdWJlcm5ldGVzQXBpVVJMLCByZXNpemVEaWFsb2cuY29udHJvbGxlciwgcmVzaXplRGlhbG9nLm5ld1JlcGxpY2FzLCAoKSA9PiB7IGxvZy5kZWJ1ZyhcInVwZGF0ZWQgbnVtYmVyIG9mIHJlcGxpY2FzXCIpOyB9KVxuICAgICAgfSxcbiAgICAgIG9wZW46IChjb250cm9sbGVyKSA9PiB7XG4gICAgICAgIHZhciByZXNpemVEaWFsb2cgPSAkc2NvcGUucmVzaXplRGlhbG9nO1xuICAgICAgICByZXNpemVEaWFsb2cuY29udHJvbGxlciA9IGNvbnRyb2xsZXI7XG4gICAgICAgIHJlc2l6ZURpYWxvZy5uZXdSZXBsaWNhcyA9IENvcmUucGF0aEdldChjb250cm9sbGVyLCBbXCJzdGF0dXNcIiwgXCJyZXBsaWNhc1wiXSk7XG4gICAgICAgIHJlc2l6ZURpYWxvZy5kaWFsb2cub3BlbigpO1xuXG4gICAgICAgICR0aW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAkKCcjcmVwbGljYXMnKS5mb2N1cygpO1xuICAgICAgICB9LCA1MCk7XG4gICAgICB9LFxuICAgICAgY2xvc2U6ICgpID0+IHtcbiAgICAgICAgJHNjb3BlLnJlc2l6ZURpYWxvZy5kaWFsb2cuY2xvc2UoKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgJHNjb3BlLnRyaWdnZXJCdWlsZCA9IChidWlsZENvbmZpZykgPT4ge1xuICAgICAgdmFyIHVybCA9IGJ1aWxkQ29uZmlnLiR0cmlnZ2VyVXJsO1xuICAgICAgY29uc29sZS5sb2coXCJ0cmlnZ2VyaW5nIGJ1aWxkIGF0IHVybDogXCIgKyB1cmwpO1xuICAgICAgaWYgKHVybCkge1xuICAgICAgICAvL3ZhciBkYXRhID0ge307XG4gICAgICAgIHZhciBkYXRhID0gbnVsbDtcbiAgICAgICAgdmFyIGNvbmZpZyA9IHtcbiAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAnQ29udGVudC1UeXBlJzogXCJhcHBsaWNhdGlvbi9qc29uXCJcbiAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIHZhciBuYW1lID0gQ29yZS5wYXRoR2V0KGJ1aWxkQ29uZmlnLCBbXCJtZXRhZGF0YVwiLCBcIm5hbWVcIl0pO1xuICAgICAgICBDb3JlLm5vdGlmaWNhdGlvbignaW5mbycsIFwiVHJpZ2dlcmluZyBidWlsZCBcIiArIG5hbWUpO1xuICAgICAgICAkaHR0cC5wb3N0KHVybCwgZGF0YSwgY29uZmlnKS5cbiAgICAgICAgICBzdWNjZXNzKGZ1bmN0aW9uIChkYXRhLCBzdGF0dXMsIGhlYWRlcnMsIGNvbmZpZykge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJ0cmlnZ2VyIHdvcmtlZCEgZ290IGRhdGEgXCIgKyBhbmd1bGFyLnRvSnNvbihkYXRhLCB0cnVlKSk7XG4gICAgICAgICAgICAvLyBUT0RPIHNob3VsZCB3ZSBzaG93IHNvbWUgbGluayB0byB0aGUgYnVpbGRcbiAgICAgICAgICAgIENvcmUubm90aWZpY2F0aW9uKCdpbmZvJywgXCJCdWlsZGluZyBcIiArIG5hbWUpO1xuICAgICAgICAgIH0pLlxuICAgICAgICAgIGVycm9yKGZ1bmN0aW9uIChkYXRhLCBzdGF0dXMsIGhlYWRlcnMsIGNvbmZpZykge1xuICAgICAgICAgICAgbG9nLndhcm4oXCJGYWlsZWQgdG8gbG9hZCBcIiArIHVybCArIFwiIFwiICsgZGF0YSArIFwiIFwiICsgc3RhdHVzKTtcbiAgICAgICAgICAgIENvcmUubm90aWZpY2F0aW9uKCdlcnJvcicsIFwiRmFpbGVkIHRvIHRyaWdnZXIgYnVpbGQgZm9yIFwiICsgbmFtZSArIFwiLiBSZXR1cm5lZCBjb2RlOiBcIiArIHN0YXR1cyArIFwiIFwiICsgZGF0YSk7XG4gICAgICAgICAgfSk7XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8vIHVwZGF0ZSB0aGUgVVJMIGlmIHRoZSBmaWx0ZXIgaXMgY2hhbmdlZFxuICAgICRzY29wZS4kd2F0Y2goXCJ0YWJsZUNvbmZpZy5maWx0ZXJPcHRpb25zLmZpbHRlclRleHRcIiwgKHRleHQpID0+IHtcbiAgICAgICRsb2NhdGlvbi5zZWFyY2goXCJxXCIsIHRleHQpO1xuICAgIH0pO1xuXG4gICAgJHNjb3BlLiRvbihcImxhYmVsRmlsdGVyVXBkYXRlXCIsICgkZXZlbnQsIHRleHQpID0+IHtcbiAgICAgIHZhciBmaWx0ZXJPcHRpb25zID0gKCRzY29wZS50YWJsZUNvbmZpZyB8fCB7fSkuZmlsdGVyT3B0aW9ucyB8fCB7fTtcbiAgICAgIHZhciBjdXJyZW50RmlsdGVyID0gZmlsdGVyT3B0aW9ucy5maWx0ZXJUZXh0O1xuICAgICAgaWYgKENvcmUuaXNCbGFuayhjdXJyZW50RmlsdGVyKSkge1xuICAgICAgICBmaWx0ZXJPcHRpb25zLmZpbHRlclRleHQgPSB0ZXh0O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFyIGV4cHJlc3Npb25zID0gY3VycmVudEZpbHRlci5zcGxpdCgvXFxzKy8pO1xuICAgICAgICBpZiAoZXhwcmVzc2lvbnMuYW55KHRleHQpKSB7XG4gICAgICAgICAgLy8gbGV0cyBleGNsdWRlIHRoaXMgZmlsdGVyIGV4cHJlc3Npb25cbiAgICAgICAgICBleHByZXNzaW9ucyA9IGV4cHJlc3Npb25zLnJlbW92ZSh0ZXh0KTtcbiAgICAgICAgICBmaWx0ZXJPcHRpb25zLmZpbHRlclRleHQgPSBleHByZXNzaW9ucy5qb2luKFwiIFwiKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBmaWx0ZXJPcHRpb25zLmZpbHRlclRleHQgPSBjdXJyZW50RmlsdGVyICsgXCIgXCIgKyB0ZXh0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAkc2NvcGUuaWQgPSB1bmRlZmluZWQ7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIHBvZHMgdGhhdCBhcmUgcmVhZHlcbiAgICovXG4gIGV4cG9ydCBmdW5jdGlvbiByZWFkeVBvZENvdW50KHNlcnZpY2UpIHtcbiAgICB2YXIgY291bnQgPSAwO1xuICAgIGFuZ3VsYXIuZm9yRWFjaCgoc2VydmljZSB8fCB7fSkuJHBvZHMsIChwb2QpPT4ge1xuICAgICAgaWYgKHBvZC4kcmVhZHkpIHtcbiAgICAgICAgY291bnQrKztcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gY291bnQ7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgc2VydmljZSBsaW5rIFVSTCBmb3IgZWl0aGVyIHRoZSBzZXJ2aWNlIG5hbWUgb3IgdGhlIHNlcnZpY2Ugb2JqZWN0XG4gICAqL1xuICBleHBvcnQgZnVuY3Rpb24gc2VydmljZUxpbmtVcmwoc2VydmljZSkge1xuICAgIGlmIChhbmd1bGFyLmlzT2JqZWN0KHNlcnZpY2UpKSB7XG4gICAgICB2YXIgcG9ydGFsSVAgPSBzZXJ2aWNlLiRob3N0O1xuICAgICAgLy8gbGV0cyBhc3N1bWUgbm8gY3VzdG9tIHBvcnQgZm9yIG5vdyBmb3IgZXh0ZXJuYWwgcm91dGVzXG4gICAgICB2YXIgcG9ydCA9IG51bGw7XG4gICAgICB2YXIgcHJvdG9jb2wgPSBcImh0dHA6Ly9cIjtcbiAgICAgIHZhciBzcGVjID0gc2VydmljZS5zcGVjO1xuICAgICAgaWYgKHNwZWMpIHtcbiAgICAgICAgaWYgKCFwb3J0YWxJUCkge1xuICAgICAgICAgIHBvcnRhbElQID0gc3BlYy5wb3J0YWxJUDtcbiAgICAgICAgfVxuICAgICAgICB2YXIgaGFzSHR0cHMgPSBmYWxzZTtcbiAgICAgICAgdmFyIGhhc0h0dHAgPSBmYWxzZTtcbiAgICAgICAgYW5ndWxhci5mb3JFYWNoKHNwZWMucG9ydHMsIChwb3J0U3BlYykgPT4ge1xuICAgICAgICAgIHZhciBwID0gcG9ydFNwZWMucG9ydDtcbiAgICAgICAgICBpZiAocCkge1xuICAgICAgICAgICAgaWYgKHAgPT09IDQ0Mykge1xuICAgICAgICAgICAgICBoYXNIdHRwcyA9IHRydWU7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHAgPT09IDgwKSB7XG4gICAgICAgICAgICAgIGhhc0h0dHAgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFwb3J0KSB7XG4gICAgICAgICAgICAgIHBvcnQgPSBwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBpZiAocG9ydGFsSVApIHtcbiAgICAgICAgaWYgKGhhc0h0dHBzKSB7XG4gICAgICAgICAgcmV0dXJuIFwiaHR0cHM6Ly9cIiArIHBvcnRhbElQO1xuICAgICAgICB9IGVsc2UgaWYgKGhhc0h0dHApIHtcbiAgICAgICAgICByZXR1cm4gXCJodHRwOi8vXCIgKyBwb3J0YWxJUDtcbiAgICAgICAgfSBlbHNlIGlmIChwb3J0KSB7XG4gICAgICAgICAgcmV0dXJuIHByb3RvY29sICsgcG9ydGFsSVAgKyBcIjpcIiArIHBvcnQgKyBcIi9cIjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gcHJvdG9jb2wgKyBwb3J0YWxJUDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoc2VydmljZSkge1xuICAgICAgdmFyIHNlcnZpY2VJZCA9IHNlcnZpY2UudG9TdHJpbmcoKTtcbiAgICAgIGlmIChzZXJ2aWNlSWQpIHtcbiAgICAgICAgdmFyIFNlcnZpY2VSZWdpc3RyeSA9IGdldFNlcnZpY2VSZWdpc3RyeSgpO1xuICAgICAgICBpZiAoU2VydmljZVJlZ2lzdHJ5KSB7XG4gICAgICAgICAgcmV0dXJuIFNlcnZpY2VSZWdpc3RyeS5zZXJ2aWNlTGluayhzZXJ2aWNlSWQpIHx8IFwiXCI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIFwiXCI7XG4gIH1cblxuICAvKipcbiAgICogR2l2ZW4gdGhlIGxpc3Qgb2YgcG9kcyBsZXRzIGl0ZXJhdGUgdGhyb3VnaCB0aGVtIGFuZCBmaW5kIGFsbCBwb2RzIG1hdGNoaW5nIHRoZSBzZWxlY3RvclxuICAgKiBhbmQgcmV0dXJuIGNvdW50ZXJzIGJhc2VkIG9uIHRoZSBzdGF0dXMgb2YgdGhlIHBvZFxuICAgKi9cbiAgZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVBvZENvdW50ZXJzKHNlbGVjdG9yLCBwb2RzLCBvdXRwdXRQb2RzID0gW10sIHBvZExpbmtRdWVyeSA9IG51bGwsIHBvZExpbmtVcmwgPSBudWxsKSB7XG4gICAgaWYgKCFwb2RMaW5rVXJsKSB7XG4gICAgICBwb2RMaW5rVXJsID0gXCIva3ViZXJuZXRlcy9wb2RzXCI7XG4gICAgfVxuICAgIHZhciBmaWx0ZXJGbjtcbiAgICBpZiAoYW5ndWxhci5pc0Z1bmN0aW9uKHNlbGVjdG9yKSkge1xuICAgICAgZmlsdGVyRm4gPSBzZWxlY3RvcjtcbiAgICB9IGVsc2Uge1xuICAgICAgZmlsdGVyRm4gPSAocG9kKSA9PiBzZWxlY3Rvck1hdGNoZXMoc2VsZWN0b3IsIGdldExhYmVscyhwb2QpKTtcbiAgICB9XG4gICAgdmFyIGFuc3dlciA9IHtcbiAgICAgIHBvZHNMaW5rOiBcIlwiLFxuICAgICAgcmVhZHk6IDAsXG4gICAgICB2YWxpZDogMCxcbiAgICAgIHdhaXRpbmc6IDAsXG4gICAgICBlcnJvcjogMFxuICAgIH07XG4gICAgaWYgKHNlbGVjdG9yKSB7XG4gICAgICBpZiAoIXBvZExpbmtRdWVyeSkge1xuICAgICAgICBwb2RMaW5rUXVlcnkgPSBLdWJlcm5ldGVzLmxhYmVsc1RvU3RyaW5nKHNlbGVjdG9yLCBcIiBcIik7XG4gICAgICB9XG4gICAgICBhbnN3ZXIucG9kc0xpbmsgPSBwb2RMaW5rVXJsICsgXCI/cT1cIiArIGVuY29kZVVSSUNvbXBvbmVudChwb2RMaW5rUXVlcnkpO1xuICAgICAgYW5ndWxhci5mb3JFYWNoKHBvZHMsIHBvZCA9PiB7XG4gICAgICAgIGlmIChmaWx0ZXJGbihwb2QpKSB7XG4gICAgICAgICAgb3V0cHV0UG9kcy5wdXNoKHBvZCk7XG4gICAgICAgICAgdmFyIHN0YXR1cyA9IGdldFN0YXR1cyhwb2QpO1xuICAgICAgICAgIGlmIChzdGF0dXMpIHtcbiAgICAgICAgICAgIHZhciBsb3dlciA9IHN0YXR1cy50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgaWYgKGxvd2VyLnN0YXJ0c1dpdGgoXCJydW5cIikpIHtcbiAgICAgICAgICAgICAgaWYgKGlzUmVhZHkocG9kKSkge1xuICAgICAgICAgICAgICAgIGFuc3dlci5yZWFkeSArPSAxO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGFuc3dlci52YWxpZCArPSAxO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGxvd2VyLnN0YXJ0c1dpdGgoXCJ3YWl0XCIpIHx8IGxvd2VyLnN0YXJ0c1dpdGgoXCJwZW5kXCIpKSB7XG4gICAgICAgICAgICAgIGFuc3dlci53YWl0aW5nICs9IDE7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGxvd2VyLnN0YXJ0c1dpdGgoXCJ0ZXJtXCIpIHx8IGxvd2VyLnN0YXJ0c1dpdGgoXCJlcnJvclwiKSB8fCBsb3dlci5zdGFydHNXaXRoKFwiZmFpbFwiKSkge1xuICAgICAgICAgICAgICBhbnN3ZXIuZXJyb3IgKz0gMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgYW5zd2VyLmVycm9yICs9IDE7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGFuc3dlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyB0aGUgZ2l2ZW4ganNvbiBpbnRvIGFuIGFycmF5IG9mIGl0ZW1zLiBJZiB0aGUganNvbiBjb250YWlucyBhIG5lc3RlZCBzZXQgb2YgaXRlbXMgdGhlbiB0aGF0IGlzIHNvcnRlZDsgc28gdGhhdCBzZXJ2aWNlc1xuICAgKiBhcmUgcHJvY2Vzc2VkIGZpcnN0OyB0aGVuIHR1cm5lZCBpbnRvIGFuIGFycmF5LiBPdGhlcndpc2UgdGhlIGpzb24gaXMgcHV0IGludG8gYW4gYXJyYXkgc28gaXQgY2FuIGJlIHByb2Nlc3NlZCBwb2x5bW9ycGhpY2FsbHlcbiAgICovXG4gIGV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0S3ViZXJuZXRlc0pzb25Ub0l0ZW1zKGpzb24pIHtcbiAgICB2YXIgaXRlbXMgPSBqc29uLml0ZW1zO1xuICAgIGlmIChhbmd1bGFyLmlzQXJyYXkoaXRlbXMpKSB7XG4gICAgICAvLyBUT0RPIHdlIGNvdWxkIGNoZWNrIGZvciBMaXN0IG9yIENvbmZpZyB0eXBlcyBoZXJlIGFuZCB3YXJuIGlmIG5vdFxuXG4gICAgICAvLyBzb3J0IHRoZSBzZXJ2aWNlcyBmaXJzdFxuICAgICAgdmFyIGFuc3dlciA9IFtdO1xuICAgICAgaXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICBpZiAoaXRlbS5raW5kID09PSBcIlNlcnZpY2VcIikge1xuICAgICAgICAgIGFuc3dlci5wdXNoKGl0ZW0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIGl0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgaWYgKGl0ZW0ua2luZCAhPT0gXCJTZXJ2aWNlXCIpIHtcbiAgICAgICAgICBhbnN3ZXIucHVzaChpdGVtKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICByZXR1cm4gYW5zd2VyO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gW2pzb25dO1xuICAgIH1cbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBpc1YxYmV0YTFPcjIoKSB7XG4gICAgcmV0dXJuIGRlZmF1bHRBcGlWZXJzaW9uID09PSBcInYxYmV0YTFcIiB8fCBkZWZhdWx0QXBpVmVyc2lvbiA9PT0gXCJ2MWJldGEyXCI7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIGxpbmsgdG8gdGhlIGRldGFpbCBwYWdlIGZvciB0aGUgZ2l2ZW4gZW50aXR5XG4gICAqL1xuICBleHBvcnQgZnVuY3Rpb24gZW50aXR5UGFnZUxpbmsoZW50aXR5KSB7XG4gICAgaWYgKGVudGl0eSkge1xuICAgICAgdmFyIHZpZXdMaW5rID0gZW50aXR5W1wiJHZpZXdMaW5rXCJdO1xuICAgICAgaWYgKHZpZXdMaW5rKSB7XG4gICAgICAgIHJldHVybiB2aWV3TGluaztcbiAgICAgIH1cbiAgICAgIHZhciBpZCA9IGdldE5hbWUoZW50aXR5KTtcbiAgICAgIHZhciBraW5kID0gZ2V0S2luZChlbnRpdHkpO1xuICAgICAgaWYgKGtpbmQgJiYgaWQpIHtcbiAgICAgICAgdmFyIHBhdGggPSBraW5kLnN1YnN0cmluZygwLCAxKS50b0xvd2VyQ2FzZSgpICsga2luZC5zdWJzdHJpbmcoMSkgKyBcInNcIjtcbiAgICAgICAgdmFyIG5hbWVzcGFjZSA9IGdldE5hbWVzcGFjZShlbnRpdHkpO1xuICAgICAgICBpZiAobmFtZXNwYWNlICYmICFpc0lnbm9yZU5hbWVzcGFjZUtpbmQoa2luZCkpIHtcbiAgICAgICAgICByZXR1cm4gQ29yZS51cmwoVXJsSGVscGVycy5qb2luKCcva3ViZXJuZXRlcy9uYW1lc3BhY2UnLCBuYW1lc3BhY2UsIHBhdGgsIGlkKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIENvcmUudXJsKFVybEhlbHBlcnMuam9pbignL2t1YmVybmV0ZXMnLCBwYXRoLCBpZCkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cblxuICBleHBvcnQgZnVuY3Rpb24gcmVzb3VyY2VLaW5kVG9VcmlQYXRoKGtpbmQpIHtcbiAgICB2YXIga2luZFBhdGggPSBraW5kLnRvTG93ZXJDYXNlKCkgKyBcInNcIjtcbiAgICBpZiAoa2luZFBhdGggPT09IFwicmVwbGljYXRpb25Db250cm9sbGVyc1wiICYmICFpc1YxYmV0YTFPcjIoKSkge1xuICAgICAga2luZFBhdGggPSBcInJlcGxpY2F0aW9uY29udHJvbGxlcnNcIjtcbiAgICB9XG4gICAgcmV0dXJuIGtpbmRQYXRoO1xuICB9XG5cbiAgZnVuY3Rpb24gaXNJZ25vcmVOYW1lc3BhY2VLaW5kKGtpbmQpIHtcbiAgICByZXR1cm4ga2luZCA9PT0gXCJIb3N0XCIgfHwga2luZCA9PT0gXCJNaW5pb25cIjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSByb290IFVSTCBmb3IgdGhlIGtpbmRcbiAgICovXG4gIGV4cG9ydCBmdW5jdGlvbiBrdWJlcm5ldGVzVXJsRm9yS2luZChLdWJlcm5ldGVzQXBpVVJMLCBraW5kLCBuYW1lc3BhY2UgPSBudWxsLCBwYXRoID0gbnVsbCkge1xuICAgIHZhciBwYXRoU2VnbWVudCA9IFwiXCI7XG4gICAgaWYgKHBhdGgpIHtcbiAgICAgIHBhdGhTZWdtZW50ID0gXCIvXCIgKyBDb3JlLnRyaW1MZWFkaW5nKHBhdGgsIFwiL1wiKTtcbiAgICB9XG4gICAgdmFyIGtpbmRQYXRoID0gcmVzb3VyY2VLaW5kVG9VcmlQYXRoKGtpbmQpO1xuICAgIHZhciBpZ25vcmVOYW1lc3BhY2UgPSBpc0lnbm9yZU5hbWVzcGFjZUtpbmQoa2luZCk7XG4gICAgaWYgKGlzVjFiZXRhMU9yMigpIHx8IGlnbm9yZU5hbWVzcGFjZSkge1xuICAgICAgdmFyIHBvc3RmaXggPSBcIlwiO1xuICAgICAgaWYgKG5hbWVzcGFjZSAmJiAhaWdub3JlTmFtZXNwYWNlKSB7XG4gICAgICAgIHBvc3RmaXggPSBcIj9uYW1lc3BhY2U9XCIgKyBuYW1lc3BhY2U7XG4gICAgICB9XG4gICAgICByZXR1cm4gVXJsSGVscGVycy5qb2luKEt1YmVybmV0ZXNBcGlVUkwsIGtpbmRQYXRoLCBwYXRoU2VnbWVudCwgcG9zdGZpeCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBVcmxIZWxwZXJzLmpvaW4oS3ViZXJuZXRlc0FwaVVSTCwgXCIvbmFtZXNwYWNlcy9cIiwgbmFtZXNwYWNlICwga2luZFBhdGgsIHBhdGhTZWdtZW50KTtcbiAgICB9XG4gIH07XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGJhc2UgVVJMIGZvciB0aGUga2luZCBvZiBrdWJlcm5ldGVzIHJlc291cmNlIG9yIG51bGwgaWYgaXQgY2Fubm90IGJlIGZvdW5kXG4gICAqL1xuICBleHBvcnQgZnVuY3Rpb24ga3ViZXJuZXRlc1VybEZvckl0ZW1LaW5kKEt1YmVybmV0ZXNBcGlVUkwsIGpzb24pIHtcbiAgICB2YXIga2luZCA9IGpzb24ua2luZDtcbiAgICBpZiAoa2luZCkge1xuICAgICAgcmV0dXJuIGt1YmVybmV0ZXNVcmxGb3JLaW5kKEt1YmVybmV0ZXNBcGlVUkwsIGtpbmQsIGpzb24ubmFtZXNwYWNlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbG9nLndhcm4oXCJJZ25vcmluZyBtaXNzaW5nIGtpbmQgXCIgKyBraW5kICsgXCIgZm9yIGt1YmVybmV0ZXMganNvbjogXCIgKyBhbmd1bGFyLnRvSnNvbihqc29uKSk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24ga3ViZXJuZXRlc1Byb3h5VXJsRm9yU2VydmljZShLdWJlcm5ldGVzQXBpVVJMLCBzZXJ2aWNlLCBwYXRoID0gbnVsbCkge1xuICAgIHZhciBwYXRoU2VnbWVudCA9IFwiXCI7XG4gICAgaWYgKHBhdGgpIHtcbiAgICAgIHBhdGhTZWdtZW50ID0gXCIvXCIgKyBDb3JlLnRyaW1MZWFkaW5nKHBhdGgsIFwiL1wiKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcGF0aFNlZ21lbnQgPSBcIi9cIjtcbiAgICB9XG4gICAgdmFyIG5hbWVzcGFjZSA9IGdldE5hbWVzcGFjZShzZXJ2aWNlKTtcbiAgICBpZiAoaXNWMWJldGExT3IyKCkpIHtcbiAgICAgIHZhciBwb3N0Zml4ID0gXCI/bmFtZXNwYWNlPVwiICsgbmFtZXNwYWNlO1xuICAgICAgcmV0dXJuIFVybEhlbHBlcnMuam9pbihLdWJlcm5ldGVzQXBpVVJMLCBcIi9wcm94eVwiLCAga3ViZXJuZXRlc05hbWVzcGFjZVBhdGgoKSwgXCIvc2VydmljZXMvXCIgKyBnZXROYW1lKHNlcnZpY2UpICsgcGF0aFNlZ21lbnQgKyBwb3N0Zml4KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFVybEhlbHBlcnMuam9pbihLdWJlcm5ldGVzQXBpVVJMLCBcIi9wcm94eS9uYW1lc3BhY2VzL1wiLCBuYW1lc3BhY2UsIFwiL3NlcnZpY2VzL1wiICsgZ2V0TmFtZShzZXJ2aWNlKSArIHBhdGhTZWdtZW50KTtcbiAgICB9XG4gIH1cblxuXG4gIGV4cG9ydCBmdW5jdGlvbiBrdWJlcm5ldGVzUHJveHlVcmxGb3JTZXJ2aWNlQ3VycmVudE5hbWVzcGFjZShzZXJ2aWNlLCBwYXRoID0gbnVsbCkge1xuICAgIHZhciBhcGlQcmVmaXggPSBVcmxIZWxwZXJzLmpvaW4oa3ViZXJuZXRlc0FwaVVybCgpKTtcbiAgICByZXR1cm4ga3ViZXJuZXRlc1Byb3h5VXJsRm9yU2VydmljZShhcGlQcmVmaXgsIHNlcnZpY2UsIHBhdGgpO1xuXG4gIH1cbiAgZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkQ29uZmlnUmVzdFVybChpZCkge1xuICAgIHJldHVybiBVcmxIZWxwZXJzLmpvaW4oYnVpbGRDb25maWdzUmVzdFVSTCgpLCBpZCk7XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gZGVwbG95bWVudENvbmZpZ1Jlc3RVcmwoaWQpIHtcbiAgICByZXR1cm4gVXJsSGVscGVycy5qb2luKGRlcGxveW1lbnRDb25maWdzUmVzdFVSTCgpLCBpZCk7XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gaW1hZ2VSZXBvc2l0b3J5UmVzdFVybChpZCkge1xuICAgIHJldHVybiBVcmxIZWxwZXJzLmpvaW4oaW1hZ2VSZXBvc2l0b3JpZXNSZXN0VVJMKCksIGlkKTtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBidWlsZFJlc3RVcmwoaWQpIHtcbiAgICByZXR1cm4gVXJsSGVscGVycy5qb2luKGJ1aWxkc1Jlc3RVUkwoKSwgaWQpO1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkTG9nc1Jlc3RVcmwoaWQpIHtcbiAgICByZXR1cm4gVXJsSGVscGVycy5qb2luKGJ1aWxkc1Jlc3RVUkwoKSwgaWQsIFwibG9nXCIpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgdGhlIGdpdmVuIGFwcGxpY2F0aW9uIEpTT05cbiAgICovXG4gIGV4cG9ydCBmdW5jdGlvbiBydW5BcHAoJGxvY2F0aW9uLCAkc2NvcGUsICRodHRwLCBLdWJlcm5ldGVzQXBpVVJMLCBqc29uLCBuYW1lID0gXCJBcHBcIiwgb25TdWNjZXNzRm4gPSBudWxsLCBuYW1lc3BhY2UgPSBudWxsLCBvbkNvbXBsZXRlRm4gPSBudWxsKSB7XG4gICAgaWYgKGpzb24pIHtcbiAgICAgIGlmIChhbmd1bGFyLmlzU3RyaW5nKGpzb24pKSB7XG4gICAgICAgIGpzb24gPSBhbmd1bGFyLmZyb21Kc29uKGpzb24pO1xuICAgICAgfVxuICAgICAgbmFtZSA9IG5hbWUgfHwgXCJBcHBcIjtcbiAgICAgIHZhciBwb3N0Zml4ID0gbmFtZXNwYWNlID8gXCIgaW4gbmFtZXNwYWNlIFwiICsgbmFtZXNwYWNlIDogXCJcIjtcbiAgICAgIENvcmUubm90aWZpY2F0aW9uKCdpbmZvJywgXCJSdW5uaW5nIFwiICsgbmFtZSArIHBvc3RmaXgpO1xuXG4gICAgICB2YXIgaXRlbXMgPSBjb252ZXJ0S3ViZXJuZXRlc0pzb25Ub0l0ZW1zKGpzb24pO1xuICAgICAgYW5ndWxhci5mb3JFYWNoKGl0ZW1zLCAoaXRlbSkgPT4ge1xuICAgICAgICB2YXIgdXJsID0ga3ViZXJuZXRlc1VybEZvckl0ZW1LaW5kKEt1YmVybmV0ZXNBcGlVUkwsIGl0ZW0pO1xuICAgICAgICBpZiAodXJsKSB7XG4gICAgICAgICAgJGh0dHAucG9zdCh1cmwsIGl0ZW0pLlxuICAgICAgICAgICAgc3VjY2VzcyhmdW5jdGlvbiAoZGF0YSwgc3RhdHVzLCBoZWFkZXJzLCBjb25maWcpIHtcbiAgICAgICAgICAgICAgbG9nLmRlYnVnKFwiR290IHN0YXR1czogXCIgKyBzdGF0dXMgKyBcIiBvbiB1cmw6IFwiICsgdXJsICsgXCIgZGF0YTogXCIgKyBkYXRhICsgXCIgYWZ0ZXIgcG9zdGluZzogXCIgKyBhbmd1bGFyLnRvSnNvbihpdGVtKSk7XG4gICAgICAgICAgICAgIGlmIChhbmd1bGFyLmlzRnVuY3Rpb24ob25Db21wbGV0ZUZuKSkge1xuICAgICAgICAgICAgICAgIG9uQ29tcGxldGVGbigpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIENvcmUuJGFwcGx5KCRzY29wZSk7XG4gICAgICAgICAgICB9KS5cbiAgICAgICAgICBlcnJvcihmdW5jdGlvbiAoZGF0YSwgc3RhdHVzLCBoZWFkZXJzLCBjb25maWcpIHtcbiAgICAgICAgICAgIHZhciBtZXNzYWdlID0gbnVsbDtcbiAgICAgICAgICAgIGlmIChhbmd1bGFyLmlzT2JqZWN0KGRhdGEpKSB7XG4gICAgICAgICAgICAgIG1lc3NhZ2UgPSBkYXRhLm1lc3NhZ2U7XG4gICAgICAgICAgICAgIHZhciByZWFzb24gPSBkYXRhLnJlYXNvbjtcbiAgICAgICAgICAgICAgaWYgKHJlYXNvbiA9PT0gXCJBbHJlYWR5RXhpc3RzXCIpIHtcbiAgICAgICAgICAgICAgICAvLyBsZXRzIGlnbm9yZSBkdXBsaWNhdGVzXG4gICAgICAgICAgICAgICAgbG9nLmRlYnVnKFwiZW50aXR5IGFscmVhZHkgZXhpc3RzIGF0IFwiICsgdXJsKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghbWVzc2FnZSkge1xuICAgICAgICAgICAgICBtZXNzYWdlID0gXCJGYWlsZWQgdG8gUE9TVCB0byBcIiArIHVybCArIFwiIGdvdCBzdGF0dXM6IFwiICsgc3RhdHVzO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbG9nLndhcm4oXCJGYWlsZWQgdG8gc2F2ZSBcIiArIHVybCArIFwiIHN0YXR1czogXCIgKyBzdGF0dXMgKyBcIiByZXNwb25zZTogXCIgKyBhbmd1bGFyLnRvSnNvbihkYXRhLCB0cnVlKSk7XG4gICAgICAgICAgICBDb3JlLm5vdGlmaWNhdGlvbignZXJyb3InLCBtZXNzYWdlKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cblxuICAvKipcbiAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBjdXJyZW50IHN0YXR1cyBvZiB0aGUgcG9kIGlzIHJ1bm5pbmdcbiAgICovXG4gIGV4cG9ydCBmdW5jdGlvbiBpc1J1bm5pbmcocG9kQ3VycmVudFN0YXRlKSB7XG4gICAgdmFyIHN0YXR1cyA9IChwb2RDdXJyZW50U3RhdGUgfHwge30pLnBoYXNlO1xuICAgIGlmIChzdGF0dXMpIHtcbiAgICAgIHZhciBsb3dlciA9IHN0YXR1cy50b0xvd2VyQ2FzZSgpO1xuICAgICAgcmV0dXJuIGxvd2VyLnN0YXJ0c1dpdGgoXCJydW5cIik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBsYWJlbHMgb2JqZWN0IGhhcyBhbGwgb2YgdGhlIGtleS92YWx1ZSBwYWlycyBmcm9tIHRoZSBzZWxlY3RvclxuICAgKi9cbiAgZXhwb3J0IGZ1bmN0aW9uIHNlbGVjdG9yTWF0Y2hlcyhzZWxlY3RvciwgbGFiZWxzKSB7XG4gICAgaWYgKGFuZ3VsYXIuaXNPYmplY3QobGFiZWxzKSkge1xuICAgICAgdmFyIGFuc3dlciA9IHRydWU7XG4gICAgICB2YXIgY291bnQgPSAwO1xuICAgICAgYW5ndWxhci5mb3JFYWNoKHNlbGVjdG9yLCAodmFsdWUsIGtleSkgPT4ge1xuICAgICAgICBjb3VudCsrO1xuICAgICAgICBpZiAoYW5zd2VyICYmIGxhYmVsc1trZXldICE9PSB2YWx1ZSkge1xuICAgICAgICAgIGFuc3dlciA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBhbnN3ZXIgJiYgY291bnQgPiAwO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHNlcnZpY2UgcmVnaXN0cnlcbiAgICovXG4gIGV4cG9ydCBmdW5jdGlvbiBnZXRTZXJ2aWNlUmVnaXN0cnkoKSB7XG4gICAgdmFyIGluamVjdG9yID0gSGF3dGlvQ29yZS5pbmplY3RvcjtcbiAgICByZXR1cm4gaW5qZWN0b3IgPyBpbmplY3Rvci5nZXQoXCJTZXJ2aWNlUmVnaXN0cnlcIikgOiBudWxsO1xuICB9XG5cblxuICAvKipcbiAgICogUmV0dXJucyBhIGxpbmsgdG8gdGhlIGtpYmFuYSBsb2dzIHdlYiBhcHBsaWNhdGlvblxuICAgKi9cbiAgZXhwb3J0IGZ1bmN0aW9uIGtpYmFuYUxvZ3NMaW5rKFNlcnZpY2VSZWdpc3RyeSkge1xuICAgIHZhciBsaW5rID0gU2VydmljZVJlZ2lzdHJ5LnNlcnZpY2VMaW5rKGtpYmFuYVNlcnZpY2VOYW1lKTtcbiAgICBpZiAobGluaykge1xuICAgICAgaWYgKCFsaW5rLmVuZHNXaXRoKFwiL1wiKSkge1xuICAgICAgICBsaW5rICs9IFwiL1wiO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGxpbmsgKyBcIiMvZGFzaGJvYXJkL0ZhYnJpYzhcIjtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIG9wZW5Mb2dzRm9yUG9kcyhTZXJ2aWNlUmVnaXN0cnksICR3aW5kb3csIG5hbWVzcGFjZSwgcG9kcykge1xuICAgIHZhciBsaW5rID0ga2liYW5hTG9nc0xpbmsoU2VydmljZVJlZ2lzdHJ5KTtcbiAgICBpZiAobGluaykge1xuICAgICAgdmFyIHF1ZXJ5ID0gXCJcIjtcbiAgICAgIHZhciBjb3VudCA9IDA7XG4gICAgICBhbmd1bGFyLmZvckVhY2gocG9kcywgKGl0ZW0pID0+IHtcbiAgICAgICAgdmFyIGlkID0gZ2V0TmFtZShpdGVtKTtcbiAgICAgICAgaWYgKGlkKSB7XG4gICAgICAgICAgdmFyIHNwYWNlID0gcXVlcnkgPyBcIiBPUiBcIiA6IFwiXCI7XG4gICAgICAgICAgY291bnQrKztcbiAgICAgICAgICBxdWVyeSArPSBzcGFjZSArICdcIicgKyBpZCArICdcIic7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgaWYgKHF1ZXJ5KSB7XG4gICAgICAgIGlmIChjb3VudCA+IDEpIHtcbiAgICAgICAgICBxdWVyeSA9IFwiKFwiICsgcXVlcnkgKyBcIilcIjtcbiAgICAgICAgfVxuICAgICAgICBxdWVyeSA9ICdrdWJlcm5ldGVzLm5hbWVzcGFjZTpcIicgKyBuYW1lc3BhY2UgKyAnXCIgQU5EIGt1YmVybmV0ZXMucG9kX25hbWU6JyArIHF1ZXJ5O1xuICAgICAgICBsaW5rICs9IFwiP19hPShxdWVyeToocXVlcnlfc3RyaW5nOihxdWVyeTonXCIgKyBxdWVyeSArIFwiJykpKVwiO1xuICAgICAgICB2YXIgbmV3V2luZG93ID0gJHdpbmRvdy5vcGVuKGxpbmssIFwidmlld0xvZ3NcIik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIHJlc2l6ZUNvbnRyb2xsZXIoJGh0dHAsIEt1YmVybmV0ZXNBcGlVUkwsIHJlcGxpY2F0aW9uQ29udHJvbGxlciwgbmV3UmVwbGljYXMsIG9uQ29tcGxldGVGbiA9IG51bGwpIHtcbiAgICB2YXIgaWQgPSBnZXROYW1lKHJlcGxpY2F0aW9uQ29udHJvbGxlcik7XG4gICAgdmFyIG5hbWVzcGFjZSA9IGdldE5hbWVzcGFjZShyZXBsaWNhdGlvbkNvbnRyb2xsZXIpIHx8IFwiXCI7XG4gICAgdmFyIHVybCA9IGt1YmVybmV0ZXNVcmxGb3JLaW5kKEt1YmVybmV0ZXNBcGlVUkwsIFwiUmVwbGljYXRpb25Db250cm9sbGVyXCIsIG5hbWVzcGFjZSwgaWQpO1xuICAgICRodHRwLmdldCh1cmwpLlxuICAgICAgc3VjY2VzcyhmdW5jdGlvbiAoZGF0YSwgc3RhdHVzLCBoZWFkZXJzLCBjb25maWcpIHtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICB2YXIgZGVzaXJlZFN0YXRlID0gZGF0YS5zcGVjO1xuICAgICAgICAgIGlmICghZGVzaXJlZFN0YXRlKSB7XG4gICAgICAgICAgICBkZXNpcmVkU3RhdGUgPSB7fTtcbiAgICAgICAgICAgIGRhdGEuc3BlYyA9IGRlc2lyZWRTdGF0ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZGVzaXJlZFN0YXRlLnJlcGxpY2FzID0gbmV3UmVwbGljYXM7XG4gICAgICAgICAgJGh0dHAucHV0KHVybCwgZGF0YSkuXG4gICAgICAgICAgICBzdWNjZXNzKGZ1bmN0aW9uIChkYXRhLCBzdGF0dXMsIGhlYWRlcnMsIGNvbmZpZykge1xuICAgICAgICAgICAgICBsb2cuZGVidWcoXCJ1cGRhdGVkIGNvbnRyb2xsZXIgXCIgKyB1cmwpO1xuICAgICAgICAgICAgICBpZiAoYW5ndWxhci5pc0Z1bmN0aW9uKG9uQ29tcGxldGVGbikpIHtcbiAgICAgICAgICAgICAgICBvbkNvbXBsZXRlRm4oKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSkuXG4gICAgICAgICAgZXJyb3IoZnVuY3Rpb24gKGRhdGEsIHN0YXR1cywgaGVhZGVycywgY29uZmlnKSB7XG4gICAgICAgICAgICBsb2cud2FybihcIkZhaWxlZCB0byBzYXZlIFwiICsgdXJsICsgXCIgXCIgKyBkYXRhICsgXCIgXCIgKyBzdGF0dXMpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KS5cbiAgICAgIGVycm9yKGZ1bmN0aW9uIChkYXRhLCBzdGF0dXMsIGhlYWRlcnMsIGNvbmZpZykge1xuICAgICAgICBsb2cud2FybihcIkZhaWxlZCB0byBsb2FkIFwiICsgdXJsICsgXCIgXCIgKyBkYXRhICsgXCIgXCIgKyBzdGF0dXMpO1xuICAgICAgfSk7XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gc3RhdHVzVGV4dFRvQ3NzQ2xhc3ModGV4dCwgcmVhZHkgPSBmYWxzZSkge1xuICAgIGlmICh0ZXh0KSB7XG4gICAgICB2YXIgbG93ZXIgPSB0ZXh0LnRvTG93ZXJDYXNlKCk7XG4gICAgICBpZiAobG93ZXIuc3RhcnRzV2l0aChcInJ1blwiKSB8fCBsb3dlci5zdGFydHNXaXRoKFwib2tcIikpIHtcbiAgICAgICAgaWYgKCFyZWFkeSkge1xuICAgICAgICAgIHJldHVybiBcImZhIGZhLXNwaW5uZXIgZmEtc3BpbiBncmVlblwiO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAnZmEgZmEtcGxheS1jaXJjbGUgZ3JlZW4nO1xuICAgICAgfSBlbHNlIGlmIChsb3dlci5zdGFydHNXaXRoKFwid2FpdFwiKSB8fCBsb3dlci5zdGFydHNXaXRoKFwicGVuZFwiKSkge1xuICAgICAgICByZXR1cm4gJ2ZhIGZhLWRvd25sb2FkJztcbiAgICAgIH0gZWxzZSBpZiAobG93ZXIuc3RhcnRzV2l0aChcInRlcm1cIikgfHwgbG93ZXIuc3RhcnRzV2l0aChcImVycm9yXCIpIHx8IGxvd2VyLnN0YXJ0c1dpdGgoXCJmYWlsXCIpKSB7XG4gICAgICAgIHJldHVybiAnZmEgZmEtb2ZmIG9yYW5nZSc7XG4gICAgICB9IGVsc2UgaWYgKGxvd2VyLnN0YXJ0c1dpdGgoXCJzdWNjZWVkZWRcIikpIHtcbiAgICAgICAgcmV0dXJuICdmYSBmYS1jaGVjay1jaXJjbGUtbyBncmVlbic7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiAnZmEgZmEtcXVlc3Rpb24gcmVkJztcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBwb2RTdGF0dXMocG9kKSB7XG4gICAgcmV0dXJuIGdldFN0YXR1cyhwb2QpO1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGlzUmVhZHkocG9kKSB7XG4gICAgdmFyIHN0YXR1cyA9IHBvZC5zdGF0dXMgfHwge307XG4gICAgdmFyIGFuc3dlciA9IGZhbHNlO1xuICAgIGFuZ3VsYXIuZm9yRWFjaChzdGF0dXMuY29uZGl0aW9ucywgKGNvbmRpdGlvbikgPT4ge1xuICAgICAgdmFyIHQgPSBjb25kaXRpb24udHlwZTtcbiAgICAgIGlmICh0ICYmIHQgPT09IFwiUmVhZHlcIikge1xuICAgICAgICB2YXIgc3RhdHVzID0gY29uZGl0aW9uLnN0YXR1cztcbiAgICAgICAgaWYgKHN0YXR1cyA9PT0gXCJUcnVlXCIpIHtcbiAgICAgICAgICBhbnN3ZXIgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGFuc3dlcjtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBjcmVhdGVBcHBWaWV3UG9kQ291bnRlcnMoYXBwVmlldykge1xuICAgIHZhciBhcnJheSA9IFtdO1xuICAgIHZhciBtYXAgPSB7fTtcbiAgICB2YXIgcG9kcyA9IGFwcFZpZXcucG9kcztcbiAgICB2YXIgbG93ZXN0RGF0ZSA9IG51bGw7XG4gICAgYW5ndWxhci5mb3JFYWNoKHBvZHMsIHBvZCA9PiB7XG4gICAgICB2YXIgc2VsZWN0b3IgPSBnZXRMYWJlbHMocG9kKTtcbiAgICAgIHZhciBzZWxlY3RvclRleHQgPSBLdWJlcm5ldGVzLmxhYmVsc1RvU3RyaW5nKHNlbGVjdG9yLCBcIiBcIik7XG4gICAgICB2YXIgYW5zd2VyID0gbWFwW3NlbGVjdG9yXTtcbiAgICAgIGlmICghYW5zd2VyKSB7XG4gICAgICAgIGFuc3dlciA9IHtcbiAgICAgICAgICBsYWJlbFRleHQ6IHNlbGVjdG9yVGV4dCxcbiAgICAgICAgICBwb2RzTGluazogQ29yZS51cmwoXCIva3ViZXJuZXRlcy9wb2RzP3E9XCIgKyBlbmNvZGVVUklDb21wb25lbnQoc2VsZWN0b3JUZXh0KSksXG4gICAgICAgICAgdmFsaWQ6IDAsXG4gICAgICAgICAgd2FpdGluZzogMCxcbiAgICAgICAgICBlcnJvcjogMFxuICAgICAgICB9O1xuICAgICAgICBtYXBbc2VsZWN0b3JdID0gYW5zd2VyO1xuICAgICAgICBhcnJheS5wdXNoKGFuc3dlcik7XG4gICAgICB9XG4gICAgICB2YXIgc3RhdHVzID0gKHBvZFN0YXR1cyhwb2QpIHx8IFwiRXJyb3JcIikudG9Mb3dlckNhc2UoKTtcbiAgICAgIGlmIChzdGF0dXMuc3RhcnRzV2l0aChcInJ1blwiKSB8fCBzdGF0dXMuc3RhcnRzV2l0aChcIm9rXCIpKSB7XG4gICAgICAgIGFuc3dlci52YWxpZCArPSAxO1xuICAgICAgfSBlbHNlIGlmIChzdGF0dXMuc3RhcnRzV2l0aChcIndhaXRcIikgfHwgc3RhdHVzLnN0YXJ0c1dpdGgoXCJwd25kXCIpKSB7XG4gICAgICAgIGFuc3dlci53YWl0aW5nICs9IDE7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhbnN3ZXIuZXJyb3IgKz0gMTtcbiAgICAgIH1cbiAgICAgIHZhciBjcmVhdGlvblRpbWVzdGFtcCA9IGdldENyZWF0aW9uVGltZXN0YW1wKHBvZCk7XG4gICAgICBpZiAoY3JlYXRpb25UaW1lc3RhbXApIHtcbiAgICAgICAgdmFyIGQgPSBuZXcgRGF0ZShjcmVhdGlvblRpbWVzdGFtcCk7XG4gICAgICAgIGlmICghbG93ZXN0RGF0ZSB8fCBkIDwgbG93ZXN0RGF0ZSkge1xuICAgICAgICAgIGxvd2VzdERhdGUgPSBkO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgYXBwVmlldy4kY3JlYXRpb25EYXRlID0gbG93ZXN0RGF0ZTtcbiAgICByZXR1cm4gYXJyYXk7XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gY3JlYXRlQXBwVmlld1NlcnZpY2VWaWV3cyhhcHBWaWV3KSB7XG4gICAgdmFyIGFycmF5ID0gW107XG4gICAgdmFyIHBvZHMgPSBhcHBWaWV3LnBvZHM7XG4gICAgYW5ndWxhci5mb3JFYWNoKHBvZHMsIHBvZCA9PiB7XG4gICAgICB2YXIgaWQgPSBnZXROYW1lKHBvZCk7XG4gICAgICBpZiAoaWQpIHtcbiAgICAgICAgdmFyIGFiYnJldiA9IGlkO1xuICAgICAgICB2YXIgaWR4ID0gaWQuaW5kZXhPZihcIi1cIik7XG4gICAgICAgIGlmIChpZHggPiAxKSB7XG4gICAgICAgICAgYWJicmV2ID0gaWQuc3Vic3RyaW5nKDAsIGlkeCk7XG4gICAgICAgIH1cbiAgICAgICAgcG9kLmlkQWJicmV2ID0gYWJicmV2O1xuICAgICAgfVxuICAgICAgcG9kLnN0YXR1c0NsYXNzID0gc3RhdHVzVGV4dFRvQ3NzQ2xhc3MocG9kU3RhdHVzKHBvZCksIGlzUmVhZHkocG9kKSk7XG4gICAgfSk7XG5cbiAgICB2YXIgc2VydmljZXMgPSBhcHBWaWV3LnNlcnZpY2VzIHx8IFtdO1xuICAgIHZhciByZXBsaWNhdGlvbkNvbnRyb2xsZXJzID0gYXBwVmlldy5yZXBsaWNhdGlvbkNvbnRyb2xsZXJzIHx8IFtdO1xuICAgIHZhciBzaXplID0gTWF0aC5tYXgoc2VydmljZXMubGVuZ3RoLCByZXBsaWNhdGlvbkNvbnRyb2xsZXJzLmxlbmd0aCwgMSk7XG4gICAgdmFyIGFwcE5hbWUgPSBhcHBWaWV3LiRpbmZvLm5hbWU7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzaXplOyBpKyspIHtcbiAgICAgIHZhciBzZXJ2aWNlID0gc2VydmljZXNbaV07XG4gICAgICB2YXIgcmVwbGljYXRpb25Db250cm9sbGVyID0gcmVwbGljYXRpb25Db250cm9sbGVyc1tpXTtcbiAgICAgIHZhciBjb250cm9sbGVySWQgPSBnZXROYW1lKHJlcGxpY2F0aW9uQ29udHJvbGxlcik7XG4gICAgICB2YXIgbmFtZSA9IGdldE5hbWUoc2VydmljZSkgfHwgY29udHJvbGxlcklkO1xuICAgICAgdmFyIGFkZHJlc3MgPSBDb3JlLnBhdGhHZXQoc2VydmljZSwgW1wic3BlY1wiLCBcInBvcnRhbElQXCJdKTtcbiAgICAgIGlmICghbmFtZSAmJiBwb2RzLmxlbmd0aCkge1xuICAgICAgICBuYW1lID0gcG9kc1swXS5pZEFiYnJldjtcbiAgICAgIH1cbiAgICAgIGlmICghYXBwVmlldy4kaW5mby5uYW1lKSB7XG4gICAgICAgIGFwcFZpZXcuJGluZm8ubmFtZSA9IG5hbWU7XG4gICAgICB9XG4gICAgICBpZiAoIWFwcFZpZXcuaWQgJiYgcG9kcy5sZW5ndGgpIHtcbiAgICAgICAgYXBwVmlldy5pZCA9IGdldE5hbWUocG9kc1swXSk7XG4gICAgICB9XG4gICAgICBpZiAoaSA+IDApIHtcbiAgICAgICAgYXBwTmFtZSA9IG5hbWU7XG4gICAgICB9XG4gICAgICB2YXIgcG9kQ291bnQgPSBwb2RzLmxlbmd0aDtcbiAgICAgIHZhciBwb2RDb3VudFRleHQgPSBwb2RDb3VudCArIFwiIHBvZFwiICsgKHBvZENvdW50ID4gMSA/IFwic1wiIDogXCJcIik7XG4gICAgICB2YXIgdmlldyA9IHtcbiAgICAgICAgYXBwTmFtZTogYXBwTmFtZSB8fCBuYW1lLFxuICAgICAgICBuYW1lOiBuYW1lLFxuICAgICAgICBjcmVhdGVkRGF0ZTogYXBwVmlldy4kY3JlYXRpb25EYXRlLFxuICAgICAgICBwb2RDb3VudDogcG9kQ291bnQsXG4gICAgICAgIHBvZENvdW50VGV4dDogcG9kQ291bnRUZXh0LFxuICAgICAgICBhZGRyZXNzOiBhZGRyZXNzLFxuICAgICAgICBjb250cm9sbGVySWQ6IGNvbnRyb2xsZXJJZCxcbiAgICAgICAgc2VydmljZTogc2VydmljZSxcbiAgICAgICAgcmVwbGljYXRpb25Db250cm9sbGVyOiByZXBsaWNhdGlvbkNvbnRyb2xsZXIsXG4gICAgICAgIHBvZHM6IHBvZHNcbiAgICAgIH07XG4gICAgICBhcnJheS5wdXNoKHZpZXcpO1xuICAgIH1cbiAgICByZXR1cm4gYXJyYXk7XG4gIH1cblxuICAvKipcbiAgICogY29udmVydHMgYSBnaXQgcGF0aCBpbnRvIGFuIGFjY2Vzc2libGUgVVJMIGZvciB0aGUgYnJvd3NlclxuICAgKi9cbiAgZXhwb3J0IGZ1bmN0aW9uIGdpdFBhdGhUb1VybChpY29uUGF0aCwgYnJhbmNoID0gXCJtYXN0ZXJcIikge1xuICAgIHJldHVybiAoSGF3dGlvQ29yZS5pbmplY3Rvci5nZXQoJ0FwcExpYnJhcnlVUkwnKSB8fCAnJykgKyBcIi9naXQvXCIgKyBicmFuY2ggKyBpY29uUGF0aDtcbiAgfVxuXG4gIGZ1bmN0aW9uIGFzRGF0ZSh2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZSA/IG5ldyBEYXRlKHZhbHVlKSA6IG51bGw7XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gZW5yaWNoQnVpbGRDb25maWcoYnVpbGRDb25maWcsIHNvcnRlZEJ1aWxkcykge1xuICAgIGlmIChidWlsZENvbmZpZykge1xuICAgICAgdmFyIHRyaWdnZXJVcmw6c3RyaW5nID0gbnVsbDtcbiAgICAgIHZhciBtZXRhZGF0YSA9IGJ1aWxkQ29uZmlnLm1ldGFkYXRhIHx8IHt9O1xuICAgICAgdmFyIG5hbWUgPSBtZXRhZGF0YS5uYW1lO1xuICAgICAgYnVpbGRDb25maWcuJG5hbWUgPSBuYW1lO1xuICAgICAgdmFyIHByb2plY3RMaW5rID0gRGV2ZWxvcGVyLnByb2plY3RMaW5rKG5hbWUpO1xuICAgICAgdmFyIG5zID0gbWV0YWRhdGEubmFtZXNwYWNlIHx8IGN1cnJlbnRLdWJlcm5ldGVzTmFtZXNwYWNlKCk7XG4gICAgICBidWlsZENvbmZpZy4kbmFtZXNwYWNlID0gbnM7XG4gICAgICBidWlsZENvbmZpZy5lbnZpcm9ubWVudHMgPSBbXTtcbiAgICAgIGJ1aWxkQ29uZmlnLiRjcmVhdGlvbkRhdGUgPSBhc0RhdGUoS3ViZXJuZXRlcy5nZXRDcmVhdGlvblRpbWVzdGFtcChidWlsZENvbmZpZykpO1xuICAgICAgYnVpbGRDb25maWcuJGxhYmVsc1RleHQgPSBLdWJlcm5ldGVzLmxhYmVsc1RvU3RyaW5nKGdldExhYmVscyhidWlsZENvbmZpZykpO1xuXG4gICAgICBpZiAobmFtZSkge1xuICAgICAgICBidWlsZENvbmZpZy4kdmlld0xpbmsgPSBVcmxIZWxwZXJzLmpvaW4oXCJ3b3Jrc3BhY2VzXCIsIG5zLCBcInByb2plY3RzXCIsIG5hbWUsIFwiZW52aXJvbm1lbnRzXCIpO1xuXG4gICAgICAgIGFuZ3VsYXIuZm9yRWFjaChbZmFsc2UsIHRydWVdLCAoZmxhZykgPT4ge1xuICAgICAgICAgIGFuZ3VsYXIuZm9yRWFjaChidWlsZENvbmZpZy50cmlnZ2VycywgKHRyaWdnZXIpID0+IHtcbiAgICAgICAgICAgIGlmICghdHJpZ2dlclVybCkge1xuICAgICAgICAgICAgICB2YXIgdHlwZSA9IHRyaWdnZXIudHlwZTtcbiAgICAgICAgICAgICAgaWYgKHR5cGUgPT09IFwiZ2VuZXJpY1wiIHx8IGZsYWcpIHtcbiAgICAgICAgICAgICAgICB2YXIgZ2VuZXJpYyA9IHRyaWdnZXJbdHlwZV07XG4gICAgICAgICAgICAgICAgaWYgKHR5cGUgJiYgZ2VuZXJpYykge1xuICAgICAgICAgICAgICAgICAgdmFyIHNlY3JldCA9IGdlbmVyaWMuc2VjcmV0O1xuICAgICAgICAgICAgICAgICAgaWYgKHNlY3JldCkge1xuICAgICAgICAgICAgICAgICAgICB0cmlnZ2VyVXJsID0gVXJsSGVscGVycy5qb2luKGJ1aWxkQ29uZmlnSG9va3NSZXN0VVJMKCksIG5hbWUsIHNlY3JldCwgdHlwZSk7XG4gICAgICAgICAgICAgICAgICAgIGJ1aWxkQ29uZmlnLiR0cmlnZ2VyVXJsID0gdHJpZ2dlclVybDtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gbGV0cyBmaW5kIHRoZSBsYXRlc3QgYnVpbGQuLi5cbiAgICAgICAgaWYgKHNvcnRlZEJ1aWxkcykge1xuICAgICAgICAgIGJ1aWxkQ29uZmlnLiRsYXN0QnVpbGQgPSBfLmZpbmQoc29ydGVkQnVpbGRzLCB7XG4gICAgICAgICAgICBtZXRhZGF0YToge1xuICAgICAgICAgICAgICBsYWJlbHM6IHtcbiAgICAgICAgICAgICAgICBidWlsZGNvbmZpZzogbmFtZVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHZhciAkZmFicmljOFZpZXdzID0ge307XG5cbiAgICAgIGZ1bmN0aW9uIGRlZmF1bHRQcm9wZXJ0aWVzSWZOb3RFeGlzdChuYW1lLCBvYmplY3QsIGF1dG9DcmVhdGUgPSBmYWxzZSkge1xuICAgICAgICB2YXIgdmlldyA9ICRmYWJyaWM4Vmlld3NbbmFtZV07XG4gICAgICAgIGlmIChhdXRvQ3JlYXRlICYmICF2aWV3KSB7XG4gICAgICAgICAgdmlldyA9IHt9XG4gICAgICAgICAgJGZhYnJpYzhWaWV3c1tuYW1lXSA9IHZpZXc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZpZXcpIHtcbiAgICAgICAgICBhbmd1bGFyLmZvckVhY2gob2JqZWN0LCAodmFsdWUsIHByb3BlcnR5KSA9PiB7XG4gICAgICAgICAgICB2YXIgY3VycmVudCA9IHZpZXdbcHJvcGVydHldO1xuICAgICAgICAgICAgaWYgKCFjdXJyZW50KSB7XG4gICAgICAgICAgICAgIHZpZXdbcHJvcGVydHldID0gdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgZnVuY3Rpb24gZGVmYXVsdFByb3BlcnRpZXNJZk5vdEV4aXN0U3RhcnRzV2l0aChwcmVmaXgsIG9iamVjdCwgYXV0b0NyZWF0ZSA9IGZhbHNlKSB7XG4gICAgICAgIGFuZ3VsYXIuZm9yRWFjaCgkZmFicmljOFZpZXdzLCAodmlldywgbmFtZSkgPT4ge1xuICAgICAgICAgIGlmICh2aWV3ICYmIG5hbWUuc3RhcnRzV2l0aChwcmVmaXgpKSB7XG4gICAgICAgICAgICBhbmd1bGFyLmZvckVhY2gob2JqZWN0LCAodmFsdWUsIHByb3BlcnR5KSA9PiB7XG4gICAgICAgICAgICAgIHZhciBjdXJyZW50ID0gdmlld1twcm9wZXJ0eV07XG4gICAgICAgICAgICAgIGlmICghY3VycmVudCkge1xuICAgICAgICAgICAgICAgIHZpZXdbcHJvcGVydHldID0gdmFsdWU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHZhciBsYWJlbHMgPSBtZXRhZGF0YS5sYWJlbHMgfHwge307XG4gICAgICB2YXIgYW5ub3RhdGlvbnMgPSBtZXRhZGF0YS5hbm5vdGF0aW9ucyB8fCB7fTtcblxuICAgICAgLy8gbGV0cyBkZWZhdWx0IHRoZSByZXBvIGFuZCB1c2VyXG4gICAgICBidWlsZENvbmZpZy4kdXNlciA9IGFubm90YXRpb25zW1wiZmFicmljOC5qZW5raW5zL3VzZXJcIl0gfHwgbGFiZWxzW1widXNlclwiXTtcbiAgICAgIGJ1aWxkQ29uZmlnLiRyZXBvID0gYW5ub3RhdGlvbnNbXCJmYWJyaWM4LmplbmtpbnMvcmVwb1wiXSB8fCBsYWJlbHNbXCJyZXBvXCJdO1xuXG4gICAgICBhbmd1bGFyLmZvckVhY2goYW5ub3RhdGlvbnMsICh2YWx1ZSwga2V5KSA9PiB7XG4gICAgICAgIHZhciBwYXJ0cyA9IGtleS5zcGxpdCgnLycsIDIpO1xuICAgICAgICBpZiAocGFydHMubGVuZ3RoID4gMSkge1xuICAgICAgICAgIHZhciBsaW5rSWQgPSBwYXJ0c1swXTtcbiAgICAgICAgICB2YXIgcHJvcGVydHkgPSBwYXJ0c1sxXTtcbiAgICAgICAgICBpZiAobGlua0lkICYmIHByb3BlcnR5ICYmIGxpbmtJZC5zdGFydHNXaXRoKFwiZmFicmljOC5saW5rXCIpKSB7XG4gICAgICAgICAgICB2YXIgbGluayA9ICRmYWJyaWM4Vmlld3NbbGlua0lkXTtcbiAgICAgICAgICAgIGlmICghbGluaykge1xuICAgICAgICAgICAgICBsaW5rID0ge1xuICAgICAgICAgICAgICAgIGNsYXNzOiBsaW5rSWRcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgJGZhYnJpYzhWaWV3c1tsaW5rSWRdID0gbGluaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxpbmtbcHJvcGVydHldID0gdmFsdWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgaWYgKGJ1aWxkQ29uZmlnLiR1c2VyICYmIGJ1aWxkQ29uZmlnLiRyZXBvKSB7XG4gICAgICAgIC8vIGJyb3dzZSBnb2dzIHJlcG8gdmlld1xuICAgICAgICB2YXIgZ29nc1VybCA9IHNlcnZpY2VMaW5rVXJsKGdvZ3NTZXJ2aWNlTmFtZSk7XG4gICAgICAgIGlmIChnb2dzVXJsKSB7XG4gICAgICAgICAgZGVmYXVsdFByb3BlcnRpZXNJZk5vdEV4aXN0KFwiZmFicmljOC5saW5rLmJyb3dzZUdvZ3Mudmlld1wiLCB7XG4gICAgICAgICAgICBsYWJlbDogXCJCcm93c2UuLi5cIixcbiAgICAgICAgICAgIHVybDogVXJsSGVscGVycy5qb2luKGdvZ3NVcmwsIGJ1aWxkQ29uZmlnLiR1c2VyLCBidWlsZENvbmZpZy4kcmVwbyksXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJCcm93c2UgdGhlIHNvdXJjZSBjb2RlIG9mIHRoaXMgcmVwb3NpdG9yeVwiLFxuICAgICAgICAgICAgaWNvbkNsYXNzOiBcImZhIGZhLWV4dGVybmFsLWxpbmtcIlxuICAgICAgICAgIH0sIHRydWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gcnVuIGZvcmdlIGNvbW1hbmRzIHZpZXdcbiAgICAgICAgZGVmYXVsdFByb3BlcnRpZXNJZk5vdEV4aXN0KFwiZmFicmljOC5saW5rLmZvcmdlQ29tbWFuZC52aWV3XCIsIHtcbiAgICAgICAgICBsYWJlbDogXCJDb21tYW5kLi4uXCIsXG4gICAgICAgICAgdXJsOiBVcmxIZWxwZXJzLmpvaW4ocHJvamVjdExpbmssIFwiL2ZvcmdlL2NvbW1hbmRzL3VzZXJcIiwgYnVpbGRDb25maWcuJHVzZXIsIGJ1aWxkQ29uZmlnLiRyZXBvKSxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogXCJQZXJmb3JtIGFuIGFjdGlvbiBvbiB0aGlzIHByb2plY3RcIixcbiAgICAgICAgICBpY29uQ2xhc3M6IFwiZmEgZmEtcGxheS1jaXJjbGVcIlxuICAgICAgICB9LCB0cnVlKTtcblxuXG4gICAgICAgIC8vIGNvbmZpZ3VyZSBkZXZvcHMgdmlld1xuICAgICAgICBkZWZhdWx0UHJvcGVydGllc0lmTm90RXhpc3QoXCJmYWJyaWM4LmxpbmsuZm9yZ2VDb21tYW5kLmRldm9wcy5zZXR0aW5nc1wiLCB7XG4gICAgICAgICAgbGFiZWw6IFwiU2V0dGluZ3NcIixcbiAgICAgICAgICB1cmw6IFVybEhlbHBlcnMuam9pbihwcm9qZWN0TGluaywgXCIvZm9yZ2UvY29tbWFuZC9kZXZvcHMtZWRpdC91c2VyXCIsIGJ1aWxkQ29uZmlnLiR1c2VyLCBidWlsZENvbmZpZy4kcmVwbyksXG4gICAgICAgICAgZGVzY3JpcHRpb246IFwiQ29uZmlndXJlIHRoZSBEZXZPcHMgc2V0dGluZ3MgZm9yIHRoaXMgcHJvamVjdFwiLFxuICAgICAgICAgIGljb25DbGFzczogXCJmYSBmYS1wZW5jaWwtc3F1YXJlLW9cIlxuICAgICAgICB9LCB0cnVlKTtcblxuICAgICAgfVxuXG4gICAgICAvLyBhZGQgc29tZSBpY29ucyBhbmQgZGVzY3JpcHRpb25zXG4gICAgICBkZWZhdWx0UHJvcGVydGllc0lmTm90RXhpc3QoXCJmYWJyaWM4LmxpbmsucmVwb3NpdG9yeS5icm93c2VcIiwge1xuICAgICAgICBsYWJlbDogXCJCcm93c2UuLi5cIixcbiAgICAgICAgZGVzY3JpcHRpb246IFwiQnJvd3NlIHRoZSBzb3VyY2UgY29kZSBvZiB0aGlzIHJlcG9zaXRvcnlcIixcbiAgICAgICAgaWNvbkNsYXNzOiBcImZhIGZhLWV4dGVybmFsLWxpbmtcIlxuICAgICAgfSk7XG4gICAgICBkZWZhdWx0UHJvcGVydGllc0lmTm90RXhpc3QoXCJmYWJyaWM4LmxpbmsuamVua2lucy5qb2JcIiwge1xuICAgICAgICBpY29uQ2xhc3M6IFwiZmEgZmEtdGFza3NcIixcbiAgICAgICAgZGVzY3JpcHRpb246IFwiVmlldyB0aGUgSmVua2lucyBKb2IgZm9yIHRoaXMgYnVpbGRcIlxuICAgICAgfSk7XG4gICAgICBkZWZhdWx0UHJvcGVydGllc0lmTm90RXhpc3QoXCJmYWJyaWM4LmxpbmsuamVua2lucy5tb25pdG9yXCIsIHtcbiAgICAgICAgaWNvbkNsYXNzOiBcImZhIGZhLXRhY2hvbWV0ZXJcIixcbiAgICAgICAgZGVzY3JpcHRpb246IFwiVmlldyB0aGUgSmVua2lucyBNb25pdG9yIGRhc2hib2FyZCBmb3IgdGhpcyBwcm9qZWN0XCJcbiAgICAgIH0pO1xuICAgICAgZGVmYXVsdFByb3BlcnRpZXNJZk5vdEV4aXN0KFwiZmFicmljOC5saW5rLmplbmtpbnMucGlwZWxpbmVcIiwge1xuICAgICAgICBpY29uQ2xhc3M6IFwiZmEgZmEtYXJyb3ctY2lyY2xlLW8tcmlnaHRcIixcbiAgICAgICAgZGVzY3JpcHRpb246IFwiVmlldyB0aGUgSmVua2lucyBQaXBlbGluZSBmb3IgdGhpcyBwcm9qZWN0XCJcbiAgICAgIH0pO1xuICAgICAgZGVmYXVsdFByb3BlcnRpZXNJZk5vdEV4aXN0KFwiZmFicmljOC5saW5rLmxldHNjaGF0LnJvb21cIiwge1xuICAgICAgICBpY29uQ2xhc3M6IFwiZmEgZmEtY29tbWVudFwiLFxuICAgICAgICBkZXNjcmlwdGlvbjogXCJDaGF0IHJvb20gZm9yIHRoaXMgcHJvamVjdFwiXG4gICAgICB9KTtcbiAgICAgIGRlZmF1bHRQcm9wZXJ0aWVzSWZOb3RFeGlzdChcImZhYnJpYzgubGluay5sZXRzY2hhdC5yb29tXCIsIHtcbiAgICAgICAgaWNvbkNsYXNzOiBcImZhIGZhLWNvbW1lbnRcIixcbiAgICAgICAgZGVzY3JpcHRpb246IFwiQ2hhdCByb29tIGZvciB0aGlzIHByb2plY3RcIlxuICAgICAgfSk7XG4gICAgICBkZWZhdWx0UHJvcGVydGllc0lmTm90RXhpc3QoXCJmYWJyaWM4LmxpbmsudGFpZ2FcIiwge1xuICAgICAgICBpY29uQ2xhc3M6IFwiZmEgZmEtY2hlY2stc3F1YXJlLW9cIixcbiAgICAgICAgZGVzY3JpcHRpb246IFwiSXNzdWUgdHJhY2tlciBmb3IgdGhpcyBwcm9qZWN0XCJcbiAgICAgIH0pO1xuICAgICAgZGVmYXVsdFByb3BlcnRpZXNJZk5vdEV4aXN0KFwiZmFicmljOC5saW5rLmlzc3Vlc1wiLCB7XG4gICAgICAgIGljb25DbGFzczogXCJmYSBmYS1jaGVjay1zcXVhcmUtb1wiLFxuICAgICAgICBkZXNjcmlwdGlvbjogXCJJc3N1ZXMgZm9yIHRoaXMgcHJvamVjdFwiXG4gICAgICB9KTtcbiAgICAgIGRlZmF1bHRQcm9wZXJ0aWVzSWZOb3RFeGlzdChcImZhYnJpYzgubGluay5yZWxlYXNlc1wiLCB7XG4gICAgICAgIGljb25DbGFzczogXCJmYSBmYS10YWdcIixcbiAgICAgICAgZGVzY3JpcHRpb246IFwiSXNzdWVzIGZvciB0aGlzIHByb2plY3RcIlxuICAgICAgfSk7XG4gICAgICBkZWZhdWx0UHJvcGVydGllc0lmTm90RXhpc3QoXCJmYWJyaWM4LmxpbmsudGFpZ2EudGVhbVwiLCB7XG4gICAgICAgIGljb25DbGFzczogXCJmYSBmYS11c2Vyc1wiLFxuICAgICAgICBkZXNjcmlwdGlvbjogXCJUZWFtIG1lbWJlcnMgZm9yIHRoaXMgcHJvamVjdFwiXG4gICAgICB9KTtcbiAgICAgIGRlZmF1bHRQcm9wZXJ0aWVzSWZOb3RFeGlzdChcImZhYnJpYzgubGluay50ZWFtXCIsIHtcbiAgICAgICAgaWNvbkNsYXNzOiBcImZhIGZhLXVzZXJzXCIsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIlRlYW0gbWVtYmVycyBmb3IgdGhpcyBwcm9qZWN0XCJcbiAgICAgIH0pO1xuICAgICAgZGVmYXVsdFByb3BlcnRpZXNJZk5vdEV4aXN0U3RhcnRzV2l0aChcImZhYnJpYzgubGluay5lbnZpcm9ubWVudC5cIiwge1xuICAgICAgICBpY29uQ2xhc3M6IFwiZmEgZmEtY2xvdWRcIixcbiAgICAgICAgZGVzY3JpcHRpb246IFwiVGhlIGt1YmVybmV0ZXMgbmFtZXNwYWNlIGZvciB0aGlzIGVudmlyb25tZW50XCJcbiAgICAgIH0pO1xuXG5cbiAgICAgIC8vIGxldHMgcHV0IHRoZSB2aWV3cyBpbnRvIHNlY3Rpb25zLi4uXG4gICAgICB2YXIgJGZhYnJpYzhDb2RlVmlld3MgPSB7fTtcbiAgICAgIHZhciAkZmFicmljOEJ1aWxkVmlld3MgPSB7fTtcbiAgICAgIHZhciAkZmFicmljOFRlYW1WaWV3cyA9IHt9O1xuICAgICAgdmFyICRmYWJyaWM4RW52aXJvbm1lbnRWaWV3cyA9IHt9O1xuICAgICAgYW5ndWxhci5mb3JFYWNoKCRmYWJyaWM4Vmlld3MsICh2YWx1ZSwga2V5KSA9PiB7XG4gICAgICAgIHZhciB2aWV3O1xuICAgICAgICBpZiAoa2V5LmluZGV4T2YoXCJ0YWlnYVwiKSA+IDAgfHwga2V5LmluZGV4T2YoXCIuaXNzdWVcIikgPiAwIHx8IGtleS5pbmRleE9mKFwibGV0c2NoYXRcIikgPiAwfHwga2V5LmluZGV4T2YoXCIudGVhbVwiKSA+IDApIHtcbiAgICAgICAgICB2aWV3ID0gJGZhYnJpYzhUZWFtVmlld3M7XG4gICAgICAgIH0gZWxzZSBpZiAoa2V5LmluZGV4T2YoXCJqZW5raW5zXCIpID4gMCkge1xuICAgICAgICAgIHZpZXcgPSAkZmFicmljOEJ1aWxkVmlld3M7XG4gICAgICAgIH0gZWxzZSBpZiAoa2V5LmluZGV4T2YoXCIuZW52aXJvbm1lbnQuXCIpID4gMCkge1xuICAgICAgICAgIHZpZXcgPSAkZmFicmljOEVudmlyb25tZW50Vmlld3M7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdmlldyA9ICRmYWJyaWM4Q29kZVZpZXdzO1xuICAgICAgICB9XG4gICAgICAgIHZpZXdba2V5XSA9IHZhbHVlO1xuICAgICAgfSk7XG5cblxuICAgICAgYnVpbGRDb25maWcuJGZhYnJpYzhWaWV3cyA9ICRmYWJyaWM4Vmlld3M7XG4gICAgICBidWlsZENvbmZpZy4kZmFicmljOENvZGVWaWV3cyA9ICRmYWJyaWM4Q29kZVZpZXdzO1xuICAgICAgYnVpbGRDb25maWcuJGZhYnJpYzhCdWlsZFZpZXdzID0gJGZhYnJpYzhCdWlsZFZpZXdzO1xuICAgICAgYnVpbGRDb25maWcuJGZhYnJpYzhFbnZpcm9ubWVudFZpZXdzID0gJGZhYnJpYzhFbnZpcm9ubWVudFZpZXdzO1xuICAgICAgYnVpbGRDb25maWcuJGZhYnJpYzhUZWFtVmlld3MgPSAkZmFicmljOFRlYW1WaWV3cztcblxuICAgICAgdmFyICRqZW5raW5zSm9iID0gYW5ub3RhdGlvbnNbXCJmYWJyaWM4LmlvL2plbmtpbnMtam9iXCJdO1xuICAgICAgaWYgKCEkamVua2luc0pvYiAmJiAkZmFicmljOFZpZXdzW1wiZmFicmljOC5saW5rLmplbmtpbnMuam9iXCJdKSB7XG4gICAgICAgICRqZW5raW5zSm9iID0gbmFtZTtcbiAgICAgIH1cbiAgICAgIGJ1aWxkQ29uZmlnLiRqZW5raW5zSm9iID0gJGplbmtpbnNKb2I7XG5cbiAgICAgIGFuZ3VsYXIuZm9yRWFjaCgkZmFicmljOEVudmlyb25tZW50Vmlld3MsIChlbnYpID0+IHtcbiAgICAgICAgdmFyIGMgPSBlbnYuY2xhc3M7XG4gICAgICAgIHZhciBwcmVmaXggPSBcImZhYnJpYzgubGluay5lbnZpcm9ubWVudC5cIjtcbiAgICAgICAgaWYgKGMgJiYgYy5zdGFydHNXaXRoKHByZWZpeCkpIHtcbiAgICAgICAgICB2YXIgZW5zID0gYy5zdWJzdHJpbmcocHJlZml4Lmxlbmd0aCk7XG4gICAgICAgICAgZW52Lm5hbWVzcGFjZSA9IGVucztcbiAgICAgICAgICBlbnYudXJsID0gVXJsSGVscGVycy5qb2luKFwiL3dvcmtzcGFjZXNcIiwgbnMsIFwicHJvamVjdHNcIiwgbmFtZSwgXCJuYW1lc3BhY2VcIiwgZW5zKTtcbiAgICAgICAgfVxuICAgICAgICBidWlsZENvbmZpZy5lbnZpcm9ubWVudHMucHVzaChlbnYpO1xuICAgICAgfSk7XG5cbiAgICAgIGJ1aWxkQ29uZmlnLmVudmlyb25tZW50cyA9IGJ1aWxkQ29uZmlnLmVudmlyb25tZW50cy5yZXZlcnNlKCk7XG5cbiAgICAgIGJ1aWxkQ29uZmlnLnRvb2xzID0gW107XG4gICAgICBhbmd1bGFyLmZvckVhY2goJGZhYnJpYzhDb2RlVmlld3MsIChlbnYpID0+IHtcbiAgICAgICAgYnVpbGRDb25maWcudG9vbHMucHVzaChlbnYpO1xuICAgICAgfSk7XG4gICAgICBhbmd1bGFyLmZvckVhY2goJGZhYnJpYzhUZWFtVmlld3MsIChlbnYpID0+IHtcbiAgICAgICAgYnVpbGRDb25maWcudG9vbHMucHVzaChlbnYpO1xuICAgICAgfSk7XG5cbiAgICB9XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gZW5yaWNoQnVpbGRDb25maWdzKGJ1aWxkQ29uZmlncywgc29ydGVkQnVpbGRzID0gbnVsbCkge1xuICAgIGFuZ3VsYXIuZm9yRWFjaChidWlsZENvbmZpZ3MsIChidWlsZENvbmZpZykgPT4ge1xuICAgICAgZW5yaWNoQnVpbGRDb25maWcoYnVpbGRDb25maWcsIHNvcnRlZEJ1aWxkcyk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGJ1aWxkQ29uZmlncztcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBlbnJpY2hCdWlsZHMoYnVpbGRzKSB7XG4gICAgYW5ndWxhci5mb3JFYWNoKGJ1aWxkcywgKGJ1aWxkKSA9PiB7XG4gICAgICBlbnJpY2hCdWlsZChidWlsZCk7XG4gICAgfSk7XG4gICAgcmV0dXJuIF8uc29ydEJ5KGJ1aWxkcywgXCIkY3JlYXRpb25EYXRlXCIpLnJldmVyc2UoKTtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBlbnJpY2hCdWlsZChidWlsZCkge1xuICAgIGlmIChidWlsZCkge1xuICAgICAgdmFyIG1ldGFkYXRhID0gYnVpbGQubWV0YWRhdGEgfHwge307XG4gICAgICB2YXIgbmFtZSA9IGdldE5hbWUoYnVpbGQpO1xuICAgICAgdmFyIG5hbWVzcGFjZSA9IGdldE5hbWVzcGFjZShidWlsZCk7XG4gICAgICBidWlsZC4kbmFtZSA9IG5hbWU7XG4gICAgICBidWlsZC4kbmFtZXNwYWNlID0gbmFtZXNwYWNlO1xuXG4gICAgICB2YXIgbmFtZUFycmF5ID0gbmFtZS5zcGxpdChcIi1cIik7XG4gICAgICB2YXIgbmFtZUFycmF5TGVuZ3RoID0gbmFtZUFycmF5Lmxlbmd0aDtcbiAgICAgIGJ1aWxkLiRzaG9ydE5hbWUgPSAobmFtZUFycmF5TGVuZ3RoID4gNCkgPyBuYW1lQXJyYXkuc2xpY2UoMCwgbmFtZUFycmF5TGVuZ3RoIC0gNCkuam9pbihcIi1cIikgOiBuYW1lLnN1YnN0cmluZygwLCAzMCk7XG5cbiAgICAgIHZhciBsYWJlbHMgPSBnZXRMYWJlbHMoYnVpbGQpO1xuICAgICAgdmFyIGNvbmZpZ0lkID0gbGFiZWxzLmJ1aWxkY29uZmlnO1xuICAgICAgYnVpbGQuJGNvbmZpZ0lkID0gY29uZmlnSWQ7XG4gICAgICBpZiAoY29uZmlnSWQpIHtcbiAgICAgICAgLy9idWlsZC4kY29uZmlnTGluayA9IFVybEhlbHBlcnMuam9pbihcImt1YmVybmV0ZXMvYnVpbGRDb25maWdzXCIsIGNvbmZpZ0lkKTtcbiAgICAgICAgYnVpbGQuJGNvbmZpZ0xpbmsgPSBVcmxIZWxwZXJzLmpvaW4oXCJ3b3Jrc3BhY2VzXCIsIGN1cnJlbnRLdWJlcm5ldGVzTmFtZXNwYWNlKCksIFwicHJvamVjdHNcIiwgY29uZmlnSWQpO1xuICAgICAgfVxuICAgICAgdmFyIGNyZWF0aW9uVGltZXN0YW1wID0gZ2V0Q3JlYXRpb25UaW1lc3RhbXAoYnVpbGQpO1xuICAgICAgaWYgKGNyZWF0aW9uVGltZXN0YW1wKSB7XG4gICAgICAgIHZhciBkID0gbmV3IERhdGUoY3JlYXRpb25UaW1lc3RhbXApO1xuICAgICAgICBidWlsZC4kY3JlYXRpb25EYXRlID0gZDtcbiAgICAgIH1cbiAgICAgIGlmIChuYW1lKSB7XG4gICAgICAgIC8vYnVpbGQuJHZpZXdMaW5rID0gVXJsSGVscGVycy5qb2luKFwia3ViZXJuZXRlcy9idWlsZHNcIiwgbmFtZSk7XG4gICAgICAgIHZhciBwcm9qZWN0TGluayA9IFVybEhlbHBlcnMuam9pbihcIndvcmtzcGFjZXNcIiwgY3VycmVudEt1YmVybmV0ZXNOYW1lc3BhY2UoKSwgXCJwcm9qZWN0c1wiLCBjb25maWdJZCk7XG4gICAgICAgIGJ1aWxkLiR2aWV3TGluayA9IFVybEhlbHBlcnMuam9pbihwcm9qZWN0TGluaywgXCJidWlsZHNcIiwgbmFtZSk7XG4gICAgICAgIC8vYnVpbGQuJGxvZ3NMaW5rID0gVXJsSGVscGVycy5qb2luKFwia3ViZXJuZXRlcy9idWlsZExvZ3NcIiwgbmFtZSk7XG4gICAgICAgIGJ1aWxkLiRsb2dzTGluayA9IFVybEhlbHBlcnMuam9pbihwcm9qZWN0TGluaywgXCJidWlsZExvZ3NcIiwgbmFtZSk7XG4gICAgICB9XG4gICAgICB2YXIgcG9kTmFtZSA9IGJ1aWxkLnBvZE5hbWU7XG4gICAgICBpZiAocG9kTmFtZSAmJiBuYW1lc3BhY2UpIHtcbiAgICAgICAgdmFyIHBvZE5hbWVBcnJheSA9IHBvZE5hbWUuc3BsaXQoXCItXCIpO1xuICAgICAgICB2YXIgcG9kTmFtZUFycmF5TGVuZ3RoID0gcG9kTmFtZUFycmF5Lmxlbmd0aFxuICAgICAgICBidWlsZC4kcG9kU2hvcnROYW1lID0gKHBvZE5hbWVBcnJheUxlbmd0aCA+IDUpID8gcG9kTmFtZUFycmF5W3BvZE5hbWVBcnJheUxlbmd0aCAtIDVdIDogcG9kTmFtZS5zdWJzdHJpbmcoMCwgMzApO1xuICAgICAgICBidWlsZC4kcG9kTGluayA9IFVybEhlbHBlcnMuam9pbihcImt1YmVybmV0ZXMvbmFtZXNwYWNlXCIsIG5hbWVzcGFjZSwgXCJwb2RzXCIsIHBvZE5hbWUpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gYnVpbGQ7XG4gIH1cblxuXG4gIGV4cG9ydCBmdW5jdGlvbiBlbnJpY2hEZXBsb3ltZW50Q29uZmlnKGRlcGxveW1lbnRDb25maWcpIHtcbiAgICBpZiAoZGVwbG95bWVudENvbmZpZykge1xuICAgICAgdmFyIHRyaWdnZXJVcmw6c3RyaW5nID0gbnVsbDtcbiAgICAgIHZhciBuYW1lID0gQ29yZS5wYXRoR2V0KGRlcGxveW1lbnRDb25maWcsIFtcIm1ldGFkYXRhXCIsIFwibmFtZVwiXSk7XG4gICAgICBkZXBsb3ltZW50Q29uZmlnLiRuYW1lID0gbmFtZTtcbiAgICAgIHZhciBmb3VuZCA9IGZhbHNlO1xuICAgICAgYW5ndWxhci5mb3JFYWNoKGRlcGxveW1lbnRDb25maWcudHJpZ2dlcnMsICh0cmlnZ2VyKSA9PiB7XG4gICAgICAgIHZhciB0eXBlID0gdHJpZ2dlci50eXBlO1xuICAgICAgICBpZiAoIWRlcGxveW1lbnRDb25maWcuJGltYWdlQ2hhbmdlUGFyYW1zICYmIHR5cGUgPT09IFwiSW1hZ2VDaGFuZ2VcIikge1xuICAgICAgICAgIHZhciBpbWFnZUNoYW5nZVBhcmFtcyA9IHRyaWdnZXIuaW1hZ2VDaGFuZ2VQYXJhbXM7XG4gICAgICAgICAgaWYgKGltYWdlQ2hhbmdlUGFyYW1zKSB7XG4gICAgICAgICAgICB2YXIgY29udGFpbmVyTmFtZXMgPSBpbWFnZUNoYW5nZVBhcmFtcy5jb250YWluZXJOYW1lcyB8fCBbXTtcbiAgICAgICAgICAgIGltYWdlQ2hhbmdlUGFyYW1zLiRjb250YWluZXJOYW1lcyA9IGNvbnRhaW5lck5hbWVzLmpvaW4oXCIgXCIpO1xuICAgICAgICAgICAgZGVwbG95bWVudENvbmZpZy4kaW1hZ2VDaGFuZ2VQYXJhbXMgPSBpbWFnZUNoYW5nZVBhcmFtcztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBlbnJpY2hEZXBsb3ltZW50Q29uZmlncyhkZXBsb3ltZW50Q29uZmlncykge1xuICAgIGFuZ3VsYXIuZm9yRWFjaChkZXBsb3ltZW50Q29uZmlncywgKGRlcGxveW1lbnRDb25maWcpID0+IHtcbiAgICAgIGVucmljaERlcGxveW1lbnRDb25maWcoZGVwbG95bWVudENvbmZpZyk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGRlcGxveW1lbnRDb25maWdzO1xuICB9XG5cblxuICBleHBvcnQgZnVuY3Rpb24gZW5yaWNoRXZlbnQoZXZlbnQpIHtcbiAgICBpZiAoZXZlbnQpIHtcbiAgICAgIHZhciBtZXRhZGF0YSA9IGV2ZW50Lm1ldGFkYXRhIHx8IHt9O1xuXG4gICAgICB2YXIgZmlyc3RUaW1lc3RhbXAgPSBldmVudC5maXJzdFRpbWVzdGFtcDtcbiAgICAgIGlmIChmaXJzdFRpbWVzdGFtcCkge1xuICAgICAgICB2YXIgZCA9IG5ldyBEYXRlKGZpcnN0VGltZXN0YW1wKTtcbiAgICAgICAgZXZlbnQuJGZpcnN0VGltZXN0YW1wID0gZDtcbiAgICAgIH1cbiAgICAgIHZhciBsYXN0VGltZXN0YW1wID0gZXZlbnQubGFzdFRpbWVzdGFtcDtcbiAgICAgIGlmIChsYXN0VGltZXN0YW1wKSB7XG4gICAgICAgIHZhciBkID0gbmV3IERhdGUobGFzdFRpbWVzdGFtcCk7XG4gICAgICAgIGV2ZW50LiRsYXN0VGltZXN0YW1wID0gZDtcbiAgICAgIH1cbiAgICAgIHZhciBsYWJlbHMgPSBhbmd1bGFyLmNvcHkoZXZlbnQuc291cmNlIHx8IHt9KTtcbiAgICAgIHZhciBpbnZvbHZlZE9iamVjdCA9IGV2ZW50Lmludm9sdmVkT2JqZWN0IHx8IHt9O1xuICAgICAgdmFyIG5hbWUgPSBpbnZvbHZlZE9iamVjdC5uYW1lO1xuICAgICAgdmFyIGtpbmQgPSBpbnZvbHZlZE9iamVjdC5raW5kO1xuICAgICAgaWYgKG5hbWUpIHtcbiAgICAgICAgbGFiZWxzWyduYW1lJ10gPSBuYW1lO1xuICAgICAgfVxuICAgICAgaWYgKGtpbmQpIHtcbiAgICAgICAgbGFiZWxzWydraW5kJ10gPSBraW5kO1xuICAgICAgfVxuICAgICAgZXZlbnQuJGxhYmVsc1RleHQgPSBLdWJlcm5ldGVzLmxhYmVsc1RvU3RyaW5nKGxhYmVscyk7XG5cbiAgICB9XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gZW5yaWNoRXZlbnRzKGV2ZW50cywgbW9kZWwgPSBudWxsKSB7XG4gICAgYW5ndWxhci5mb3JFYWNoKGV2ZW50cywgKGV2ZW50KSA9PiB7XG4gICAgICBlbnJpY2hFdmVudChldmVudCk7XG4gICAgfSk7XG5cbiAgICAvLyBsZXRzIHVwZGF0ZSBsaW5rcyB0byB0aGUgZXZlbnRzIGZvciBlYWNoIHBvZCBhbmQgUkNcbiAgICBpZiAobW9kZWwpIHtcbiAgICAgIGZ1bmN0aW9uIGNsZWFyRXZlbnRzKGVudGl0eSkge1xuICAgICAgICBlbnRpdHkuJGV2ZW50cyA9IFtdO1xuICAgICAgICBlbnRpdHkuJGV2ZW50c0xpbmsgPSBudWxsO1xuICAgICAgICBlbnRpdHkuJGV2ZW50Q291bnQgPSAwO1xuICAgICAgfVxuXG4gICAgICBmdW5jdGlvbiB1cGRhdGVFdmVudChlbnRpdHksIGV2ZW50KSB7XG4gICAgICAgIGlmIChlbnRpdHkpIHtcbiAgICAgICAgICBlbnRpdHkuJGV2ZW50cy5wdXNoKGV2ZW50KTtcbiAgICAgICAgICBpZiAoIWVudGl0eS4kZXZlbnRzTGluaykge1xuICAgICAgICAgICAgZW50aXR5LiRldmVudHNMaW5rID0gVXJsSGVscGVycy5qb2luKFwiL2t1YmVybmV0ZXMvbmFtZXNwYWNlL1wiLCBjdXJyZW50S3ViZXJuZXRlc05hbWVzcGFjZSgpLCBcImV2ZW50c1wiKSArIFwiP3E9a2luZCUzRFwiICsgZW50aXR5LmtpbmQgKyBcIiUyMG5hbWUlM0RcIiArIGVudGl0eS5tZXRhZGF0YS5uYW1lO1xuICAgICAgICAgIH1cbiAgICAgICAgICBlbnRpdHkuJGV2ZW50Q291bnQgPSBlbnRpdHkuJGV2ZW50cy5sZW5ndGg7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdmFyIHBvZHMgPSBtb2RlbC5wb2RzIHx8IFtdO1xuICAgICAgdmFyIHJjcyA9IG1vZGVsLnJlcGxpY2F0aW9uQ29udHJvbGxlcnMgfHwgW107XG4gICAgICBhbmd1bGFyLmZvckVhY2gocG9kcywgY2xlYXJFdmVudHMpO1xuICAgICAgYW5ndWxhci5mb3JFYWNoKHJjcywgY2xlYXJFdmVudHMpO1xuXG4gICAgICBhbmd1bGFyLmZvckVhY2goZXZlbnRzLCAoZXZlbnQpID0+IHtcbiAgICAgICAgdmFyIGludm9sdmVkT2JqZWN0ID0gZXZlbnQuaW52b2x2ZWRPYmplY3QgfHwge307XG4gICAgICAgIHZhciBuYW1lID0gaW52b2x2ZWRPYmplY3QubmFtZTtcbiAgICAgICAgdmFyIGtpbmQgPSBpbnZvbHZlZE9iamVjdC5raW5kO1xuICAgICAgICB2YXIgbnMgPSBtb2RlbC5jdXJyZW50TmFtZXNwYWNlKCk7XG4gICAgICAgIGlmIChuYW1lICYmIGtpbmQgJiYgbnMpIHtcbiAgICAgICAgICB2YXIgZW50aXR5ID0gbnVsbDtcbiAgICAgICAgICBpZiAoa2luZCA9PT0gXCJSZXBsaWNhdGlvbkNvbnRyb2xsZXJcIikge1xuICAgICAgICAgICAgZW50aXR5ID0gbW9kZWwuZ2V0UmVwbGljYXRpb25Db250cm9sbGVyKG5zLCBuYW1lKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGtpbmQgPT09IFwiUG9kXCIpIHtcbiAgICAgICAgICAgIGVudGl0eSA9IG1vZGVsLmdldFBvZChucywgbmFtZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChlbnRpdHkpIHtcbiAgICAgICAgICAgIHVwZGF0ZUV2ZW50KGVudGl0eSwgZXZlbnQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBldmVudHM7XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gZW5yaWNoSW1hZ2VSZXBvc2l0b3J5KGltYWdlUmVwb3NpdG9yeSkge1xuICAgIGlmIChpbWFnZVJlcG9zaXRvcnkpIHtcbiAgICAgIHZhciB0cmlnZ2VyVXJsOnN0cmluZyA9IG51bGw7XG4gICAgICB2YXIgbmFtZSA9IENvcmUucGF0aEdldChpbWFnZVJlcG9zaXRvcnksIFtcIm1ldGFkYXRhXCIsIFwibmFtZVwiXSk7XG4gICAgICBpbWFnZVJlcG9zaXRvcnkuJG5hbWUgPSBuYW1lO1xuICAgIH1cbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBlbnJpY2hJbWFnZVJlcG9zaXRvcmllcyhpbWFnZVJlcG9zaXRvcmllcykge1xuICAgIGFuZ3VsYXIuZm9yRWFjaChpbWFnZVJlcG9zaXRvcmllcywgKGltYWdlUmVwb3NpdG9yeSkgPT4ge1xuICAgICAgZW5yaWNoSW1hZ2VSZXBvc2l0b3J5KGltYWdlUmVwb3NpdG9yeSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGltYWdlUmVwb3NpdG9yaWVzO1xuICB9XG5cblxuICB2YXIgbGFiZWxDb2xvcnMgPSB7XG4gICAgJ3ZlcnNpb24nOiAnYmFja2dyb3VuZC1ibHVlJyxcbiAgICAnbmFtZSc6ICdiYWNrZ3JvdW5kLWxpZ2h0LWdyZWVuJyxcbiAgICAnY29udGFpbmVyJzogJ2JhY2tncm91bmQtbGlnaHQtZ3JleSdcbiAgfTtcblxuICBleHBvcnQgZnVuY3Rpb24gY29udGFpbmVyTGFiZWxDbGFzcyhsYWJlbFR5cGU6c3RyaW5nKSB7XG4gICAgaWYgKCEobGFiZWxUeXBlIGluIGxhYmVsQ29sb3JzKSkge1xuICAgICAgcmV0dXJuICdtb3VzZS1wb2ludGVyJztcbiAgICB9XG4gICAgZWxzZSByZXR1cm4gbGFiZWxDb2xvcnNbbGFiZWxUeXBlXSArICcgbW91c2UtcG9pbnRlcic7XG4gIH1cblxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIGZhYnJpYzggZm9yZ2UgcGx1Z2luIGlzIGVuYWJsZWRcbiAgICovXG4gIGV4cG9ydCBmdW5jdGlvbiBpc0ZvcmdlRW5hYmxlZCgpIHtcbiAgICAvLyBUT0RPIHNob3VsZCByZXR1cm4gdHJ1ZSBpZiB0aGUgc2VydmljZSBcImZhYnJpYzgtZm9yZ2VcIiBpcyB2YWxpZFxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGN1cnJlbnQga3ViZXJuZXRlcyBzZWxlY3RlZCBuYW1lc3BhY2Ugb3IgdGhlIGRlZmF1bHQgb25lXG4gICAqL1xuICBleHBvcnQgZnVuY3Rpb24gY3VycmVudEt1YmVybmV0ZXNOYW1lc3BhY2UoKSB7XG4gICAgdmFyIGluamVjdG9yID0gSGF3dGlvQ29yZS5pbmplY3RvcjtcbiAgICBpZiAoaW5qZWN0b3IpIHtcbiAgICAgIHZhciBLdWJlcm5ldGVzU3RhdGUgPSBpbmplY3Rvci5nZXQoXCJLdWJlcm5ldGVzU3RhdGVcIikgfHwge307XG4gICAgICByZXR1cm4gS3ViZXJuZXRlc1N0YXRlLnNlbGVjdGVkTmFtZXNwYWNlIHx8IGRlZmF1bHROYW1lc3BhY2U7XG4gICAgfVxuICAgIHJldHVybiBkZWZhdWx0TmFtZXNwYWNlO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbmZpZ3VyZXMgdGhlIGpzb24gc2NoZW1hXG4gICAqL1xuICBleHBvcnQgZnVuY3Rpb24gY29uZmlndXJlU2NoZW1hKCkge1xuICAgIGFuZ3VsYXIuZm9yRWFjaChzY2hlbWEuZGVmaW5pdGlvbnMsIChkZWZpbml0aW9uLCBuYW1lKSA9PiB7XG4gICAgICB2YXIgcHJvcGVydGllcyA9IGRlZmluaXRpb24ucHJvcGVydGllcztcbiAgICAgIGlmIChwcm9wZXJ0aWVzKSB7XG4gICAgICAgIHZhciBoaWRlUHJvcGVydGllcyA9IFtcImNyZWF0aW9uVGltZXN0YW1wXCIsIFwia2luZFwiLCBcImFwaVZlcnNpb25cIiwgXCJhbm5vdGF0aW9uc1wiLCBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCIsIFwibmFtZXNwYWNlXCIsIFwicmVzb3VyY2VWZXJzaW9uXCIsIFwic2VsZkxpbmtcIiwgXCJ1aWRcIl07XG4gICAgICAgIGFuZ3VsYXIuZm9yRWFjaChoaWRlUHJvcGVydGllcywgKHByb3BlcnR5TmFtZSkgPT4ge1xuICAgICAgICAgIHZhciBwcm9wZXJ0eSA9IHByb3BlcnRpZXNbcHJvcGVydHlOYW1lXTtcbiAgICAgICAgICBpZiAocHJvcGVydHkpIHtcbiAgICAgICAgICAgIHByb3BlcnR5W1wiaGlkZGVuXCJdICA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgYW5ndWxhci5mb3JFYWNoKHByb3BlcnRpZXMsIChwcm9wZXJ0eSwgcHJvcGVydHlOYW1lKSA9PiB7XG4gICAgICAgICAgdmFyIHJlZiA9IHByb3BlcnR5W1wiJHJlZlwiXTtcbiAgICAgICAgICB2YXIgdHlwZSA9IHByb3BlcnR5W1widHlwZVwiXTtcbiAgICAgICAgICBpZiAocmVmICYmICghdHlwZSB8fCB0eXBlID09PSBcIm9iamVjdFwiKSkge1xuICAgICAgICAgICAgcHJvcGVydHlbXCJ0eXBlXCJdID0gcmVmO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodHlwZSA9PT0gXCJhcnJheVwiKSB7XG4gICAgICAgICAgICB2YXIgaXRlbXMgPSBwcm9wZXJ0eVtcIml0ZW1zXCJdO1xuICAgICAgICAgICAgaWYgKGl0ZW1zKSB7XG4gICAgICAgICAgICAgIHZhciByZWYgPSBpdGVtc1tcIiRyZWZcIl07XG4gICAgICAgICAgICAgIHZhciB0eXBlID0gaXRlbXNbXCJ0eXBlXCJdO1xuICAgICAgICAgICAgICBpZiAocmVmICYmICghdHlwZSB8fCB0eXBlID09PSBcIm9iamVjdFwiKSkge1xuICAgICAgICAgICAgICAgIGl0ZW1zW1widHlwZVwiXSA9IHJlZjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHNjaGVtYS5kZWZpbml0aW9ucy5vc19idWlsZF9XZWJIb29rVHJpZ2dlci5wcm9wZXJ0aWVzLnNlY3JldC50eXBlID0gXCJwYXNzd29yZFwiO1xuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogTGV0cyByZW1vdmUgYW55IGVucmljaGVkIGRhdGEgdG8gbGVhdmUgdGhlIG9yaWdpbmFsIGpzb24gaW50YWN0XG4gICAqL1xuICBleHBvcnQgZnVuY3Rpb24gdG9SYXdKc29uKGl0ZW0pIHtcbiAgICB2YXIgbyA9IGFuZ3VsYXIuY29weShpdGVtKTtcbiAgICBhbmd1bGFyLmZvckVhY2gobywgKHZhbHVlLCBrZXkpID0+IHtcbiAgICAgIGlmIChrZXkuc3RhcnRzV2l0aChcIiRcIikgfHwga2V5LnN0YXJ0c1dpdGgoXCJfXCIpKSB7XG4gICAgICAgIGRlbGV0ZSBvW2tleV07XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KG8sIG51bGwsIDIpOyAvLyBzcGFjaW5nIGxldmVsID0gMlxuICB9XG5cbn1cbiIsIi8vLyA8cmVmZXJlbmNlIHBhdGg9XCIuLi8uLi9pbmNsdWRlcy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCIuLi8uLi9rdWJlcm5ldGVzL3RzL2t1YmVybmV0ZXNIZWxwZXJzLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cImRldmVsb3BlckVucmljaGVycy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJkZXZlbG9wZXJIZWxwZXJzLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cImRldmVsb3Blck5hdmlnYXRpb24udHNcIi8+XG5cbm1vZHVsZSBEZXZlbG9wZXIge1xuXG4gIGV4cG9ydCB2YXIgSG9tZUNvbnRyb2xsZXIgPSBjb250cm9sbGVyKFwiSG9tZUNvbnRyb2xsZXJcIixcbiAgICBbXCIkc2NvcGVcIiwgXCJLdWJlcm5ldGVzTW9kZWxcIiwgXCJLdWJlcm5ldGVzU3RhdGVcIiwgXCJLdWJlcm5ldGVzU2NoZW1hXCIsIFwiJHRlbXBsYXRlQ2FjaGVcIiwgXCIkbG9jYXRpb25cIiwgXCIkcm91dGVQYXJhbXNcIiwgXCIkaHR0cFwiLCBcIiR0aW1lb3V0XCIsIFwiS3ViZXJuZXRlc0FwaVVSTFwiLFxuICAgICAgKCRzY29wZSwgS3ViZXJuZXRlc01vZGVsOkt1YmVybmV0ZXMuS3ViZXJuZXRlc01vZGVsU2VydmljZSwgS3ViZXJuZXRlc1N0YXRlLCBLdWJlcm5ldGVzU2NoZW1hLFxuICAgICAgICR0ZW1wbGF0ZUNhY2hlOm5nLklUZW1wbGF0ZUNhY2hlU2VydmljZSwgJGxvY2F0aW9uOm5nLklMb2NhdGlvblNlcnZpY2UsICRyb3V0ZVBhcmFtcywgJGh0dHAsICR0aW1lb3V0LCBLdWJlcm5ldGVzQXBpVVJMKSA9PiB7XG5cbiAgICAgICAgJHNjb3BlLm5hbWVzcGFjZSA9IEt1YmVybmV0ZXMuY3VycmVudEt1YmVybmV0ZXNOYW1lc3BhY2UoKTtcblxuICAgICAgfV0pO1xufVxuIiwiLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4uLy4uL2luY2x1ZGVzLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4uLy4uL2t1YmVybmV0ZXMvdHMva3ViZXJuZXRlc0hlbHBlcnMudHNcIi8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwiZGV2ZWxvcGVyRW5yaWNoZXJzLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cImRldmVsb3BlckhlbHBlcnMudHNcIi8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwiZGV2ZWxvcGVyTmF2aWdhdGlvbi50c1wiLz5cblxubW9kdWxlIERldmVsb3BlciB7XG5cbiAgZXhwb3J0IHZhciBKZW5raW5zSm9iQ29udHJvbGxlciA9IGNvbnRyb2xsZXIoXCJKZW5raW5zSm9iQ29udHJvbGxlclwiLFxuICAgIFtcIiRzY29wZVwiLCBcIkt1YmVybmV0ZXNNb2RlbFwiLCBcIkt1YmVybmV0ZXNTdGF0ZVwiLCBcIkt1YmVybmV0ZXNTY2hlbWFcIiwgXCIkdGVtcGxhdGVDYWNoZVwiLCBcIiRsb2NhdGlvblwiLCBcIiRyb3V0ZVBhcmFtc1wiLCBcIiRodHRwXCIsIFwiJHRpbWVvdXRcIiwgXCJLdWJlcm5ldGVzQXBpVVJMXCIsIFwiU2VydmljZVJlZ2lzdHJ5XCIsXG4gICAgICAoJHNjb3BlLCBLdWJlcm5ldGVzTW9kZWw6S3ViZXJuZXRlcy5LdWJlcm5ldGVzTW9kZWxTZXJ2aWNlLCBLdWJlcm5ldGVzU3RhdGUsIEt1YmVybmV0ZXNTY2hlbWEsXG4gICAgICAgJHRlbXBsYXRlQ2FjaGU6bmcuSVRlbXBsYXRlQ2FjaGVTZXJ2aWNlLCAkbG9jYXRpb246bmcuSUxvY2F0aW9uU2VydmljZSwgJHJvdXRlUGFyYW1zLCAkaHR0cCwgJHRpbWVvdXQsIEt1YmVybmV0ZXNBcGlVUkwsIFNlcnZpY2VSZWdpc3RyeSkgPT4ge1xuXG4gICAgICAgICRzY29wZS5rdWJlcm5ldGVzID0gS3ViZXJuZXRlc1N0YXRlO1xuICAgICAgICAkc2NvcGUubW9kZWwgPSBLdWJlcm5ldGVzTW9kZWw7XG4gICAgICAgICRzY29wZS5pZCA9ICRyb3V0ZVBhcmFtc1tcImlkXCJdO1xuICAgICAgICAkc2NvcGUuam9iSWQgPSAkcm91dGVQYXJhbXNbXCJqb2JcIl07XG4gICAgICAgICRzY29wZS5zY2hlbWEgPSBLdWJlcm5ldGVzU2NoZW1hO1xuICAgICAgICAkc2NvcGUuZW50aXR5Q2hhbmdlZENhY2hlID0ge307XG5cbiAgICAgICAgS3ViZXJuZXRlcy5pbml0U2hhcmVkKCRzY29wZSwgJGxvY2F0aW9uLCAkaHR0cCwgJHRpbWVvdXQsICRyb3V0ZVBhcmFtcywgS3ViZXJuZXRlc01vZGVsLCBLdWJlcm5ldGVzU3RhdGUsIEt1YmVybmV0ZXNBcGlVUkwpO1xuICAgICAgICAkc2NvcGUuYnJlYWRjcnVtYkNvbmZpZyA9IERldmVsb3Blci5jcmVhdGVQcm9qZWN0QnJlYWRjcnVtYnMoJHNjb3BlLmlkKTtcbiAgICAgICAgJHNjb3BlLnN1YlRhYkNvbmZpZyA9IERldmVsb3Blci5jcmVhdGVQcm9qZWN0U3ViTmF2QmFycygkc2NvcGUuaWQsICRzY29wZS5qb2JJZCk7XG5cbiAgICAgICAgJHNjb3BlLiRvbigna3ViZXJuZXRlc01vZGVsVXBkYXRlZCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICB1cGRhdGVEYXRhKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgICRzY29wZS4kb24oJyRyb3V0ZVVwZGF0ZScsICgkZXZlbnQpID0+IHtcbiAgICAgICAgICB1cGRhdGVEYXRhKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgICRzY29wZS50YWJsZUNvbmZpZyA9IHtcbiAgICAgICAgICBkYXRhOiAnam9iLmJ1aWxkcycsXG4gICAgICAgICAgc2hvd1NlbGVjdGlvbkNoZWNrYm94OiB0cnVlLFxuICAgICAgICAgIGVuYWJsZVJvd0NsaWNrU2VsZWN0aW9uOiBmYWxzZSxcbiAgICAgICAgICBtdWx0aVNlbGVjdDogdHJ1ZSxcbiAgICAgICAgICBzZWxlY3RlZEl0ZW1zOiBbXSxcbiAgICAgICAgICBmaWx0ZXJPcHRpb25zOiB7XG4gICAgICAgICAgICBmaWx0ZXJUZXh0OiAkbG9jYXRpb24uc2VhcmNoKClbXCJxXCJdIHx8ICcnXG4gICAgICAgICAgfSxcbiAgICAgICAgICBjb2x1bW5EZWZzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGZpZWxkOiAnJHNvcnRPcmRlcicsXG4gICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAnTmFtZScsXG4gICAgICAgICAgICAgIGNlbGxUZW1wbGF0ZTogJHRlbXBsYXRlQ2FjaGUuZ2V0KFwiamVua2luc0J1aWxkSWRUZW1wbGF0ZS5odG1sXCIpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBmaWVsZDogJyRidWlsZExpbmsnLFxuICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogJ1ZpZXdzJyxcbiAgICAgICAgICAgICAgY2VsbFRlbXBsYXRlOiAkdGVtcGxhdGVDYWNoZS5nZXQoXCJqZW5raW5zQnVpbGRCdXR0b25zVGVtcGxhdGUuaHRtbFwiKVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgZmllbGQ6ICckZHVyYXRpb24nLFxuICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogJ0R1cmF0aW9uJyxcbiAgICAgICAgICAgICAgY2VsbFRlbXBsYXRlOiAkdGVtcGxhdGVDYWNoZS5nZXQoXCJqZW5raW5zQnVpbGREdXJhdGlvblRlbXBsYXRlLmh0bWxcIilcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGZpZWxkOiAnJHRpbWVzdGFtcCcsXG4gICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAnVGltZSBTdGFydGVkJyxcbiAgICAgICAgICAgICAgY2VsbFRlbXBsYXRlOiAkdGVtcGxhdGVDYWNoZS5nZXQoXCJqZW5raW5zQnVpbGRUaW1lc3RhbXBUZW1wbGF0ZS5odG1sXCIpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgXVxuICAgICAgICB9O1xuICAgICAgICB1cGRhdGVEYXRhKCk7XG5cblxuICAgICAgICBmdW5jdGlvbiB1cGRhdGVEYXRhKCkge1xuICAgICAgICAgIGlmICgkc2NvcGUuam9iSWQpIHtcbiAgICAgICAgICAgIHZhciB1cmwgPSBLdWJlcm5ldGVzLmt1YmVybmV0ZXNQcm94eVVybEZvclNlcnZpY2VDdXJyZW50TmFtZXNwYWNlKGplbmtpbnNTZXJ2aWNlTmFtZUFuZFBvcnQsIFVybEhlbHBlcnMuam9pbihcImpvYlwiLCAkc2NvcGUuam9iSWQsIFwiYXBpL2pzb24/ZGVwdGg9MVwiKSk7XG4gICAgICAgICAgICBpZiAodXJsICYmICghJHNjb3BlLmpvYiB8fCBLdWJlcm5ldGVzLmtlZXBQb2xsaW5nTW9kZWwpKSB7XG4gICAgICAgICAgICAgICRodHRwLmdldCh1cmwpLlxuICAgICAgICAgICAgICAgIHN1Y2Nlc3MoZnVuY3Rpb24gKGRhdGEsIHN0YXR1cywgaGVhZGVycywgY29uZmlnKSB7XG4gICAgICAgICAgICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgICAgICAgICBlbnJpY2hKZW5raW5zSm9iKGRhdGEsICRzY29wZS5pZCwgJHNjb3BlLmpvYklkKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGhhc09iamVjdENoYW5nZWQoZGF0YSwgJHNjb3BlLmVudGl0eUNoYW5nZWRDYWNoZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICBsb2cuaW5mbyhcImVudGl0eSBoYXMgY2hhbmdlZCFcIik7XG4gICAgICAgICAgICAgICAgICAgICAgJHNjb3BlLmpvYiA9IGRhdGE7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICRzY29wZS5tb2RlbC5mZXRjaGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgIENvcmUuJGFwcGx5KCRzY29wZSk7XG4gICAgICAgICAgICAgICAgfSkuXG4gICAgICAgICAgICAgICAgZXJyb3IoZnVuY3Rpb24gKGRhdGEsIHN0YXR1cywgaGVhZGVycywgY29uZmlnKSB7XG4gICAgICAgICAgICAgICAgICBsb2cud2FybihcIkZhaWxlZCB0byBsb2FkIFwiICsgdXJsICsgXCIgXCIgKyBkYXRhICsgXCIgXCIgKyBzdGF0dXMpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAkc2NvcGUubW9kZWwuZmV0Y2hlZCA9IHRydWU7XG4gICAgICAgICAgICBDb3JlLiRhcHBseSgkc2NvcGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfV0pO1xufVxuIiwiLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4uLy4uL2luY2x1ZGVzLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4uLy4uL2t1YmVybmV0ZXMvdHMva3ViZXJuZXRlc0hlbHBlcnMudHNcIi8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwiZGV2ZWxvcGVyRW5yaWNoZXJzLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cImRldmVsb3BlckhlbHBlcnMudHNcIi8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwiZGV2ZWxvcGVyTmF2aWdhdGlvbi50c1wiLz5cblxubW9kdWxlIERldmVsb3BlciB7XG5cbiAgZXhwb3J0IHZhciBKZW5raW5zSm9ic0NvbnRyb2xsZXIgPSBjb250cm9sbGVyKFwiSmVua2luc0pvYnNDb250cm9sbGVyXCIsXG4gICAgW1wiJHNjb3BlXCIsIFwiS3ViZXJuZXRlc01vZGVsXCIsIFwiS3ViZXJuZXRlc1N0YXRlXCIsIFwiS3ViZXJuZXRlc1NjaGVtYVwiLCBcIiR0ZW1wbGF0ZUNhY2hlXCIsIFwiJGxvY2F0aW9uXCIsIFwiJHJvdXRlUGFyYW1zXCIsIFwiJGh0dHBcIiwgXCIkdGltZW91dFwiLCBcIkt1YmVybmV0ZXNBcGlVUkxcIiwgXCJTZXJ2aWNlUmVnaXN0cnlcIixcbiAgICAgICgkc2NvcGUsIEt1YmVybmV0ZXNNb2RlbDpLdWJlcm5ldGVzLkt1YmVybmV0ZXNNb2RlbFNlcnZpY2UsIEt1YmVybmV0ZXNTdGF0ZSwgS3ViZXJuZXRlc1NjaGVtYSxcbiAgICAgICAkdGVtcGxhdGVDYWNoZTpuZy5JVGVtcGxhdGVDYWNoZVNlcnZpY2UsICRsb2NhdGlvbjpuZy5JTG9jYXRpb25TZXJ2aWNlLCAkcm91dGVQYXJhbXMsICRodHRwLCAkdGltZW91dCwgS3ViZXJuZXRlc0FwaVVSTCwgU2VydmljZVJlZ2lzdHJ5KSA9PiB7XG5cbiAgICAgICAgJHNjb3BlLmt1YmVybmV0ZXMgPSBLdWJlcm5ldGVzU3RhdGU7XG4gICAgICAgICRzY29wZS5tb2RlbCA9IEt1YmVybmV0ZXNNb2RlbDtcbiAgICAgICAgJHNjb3BlLmlkID0gJHJvdXRlUGFyYW1zW1wiaWRcIl07XG4gICAgICAgICRzY29wZS5zY2hlbWEgPSBLdWJlcm5ldGVzU2NoZW1hO1xuICAgICAgICAkc2NvcGUuamVua2lucyA9IG51bGw7XG4gICAgICAgICRzY29wZS5lbnRpdHlDaGFuZ2VkQ2FjaGUgPSB7fTtcblxuICAgICAgICBLdWJlcm5ldGVzLmluaXRTaGFyZWQoJHNjb3BlLCAkbG9jYXRpb24sICRodHRwLCAkdGltZW91dCwgJHJvdXRlUGFyYW1zLCBLdWJlcm5ldGVzTW9kZWwsIEt1YmVybmV0ZXNTdGF0ZSwgS3ViZXJuZXRlc0FwaVVSTCk7XG4gICAgICAgICRzY29wZS5icmVhZGNydW1iQ29uZmlnID0gY3JlYXRlUHJvamVjdEJyZWFkY3J1bWJzKCk7XG4gICAgICAgICRzY29wZS5zdWJUYWJDb25maWcgPSBEZXZlbG9wZXIuY3JlYXRlV29ya3NwYWNlU3ViTmF2QmFycygpO1xuXG4gICAgICAgICRzY29wZS4kb24oJ2t1YmVybmV0ZXNNb2RlbFVwZGF0ZWQnLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgdXBkYXRlRGF0YSgpO1xuICAgICAgICB9KTtcblxuICAgICAgICAkc2NvcGUuJG9uKCckcm91dGVVcGRhdGUnLCAoJGV2ZW50KSA9PiB7XG4gICAgICAgICAgdXBkYXRlRGF0YSgpO1xuICAgICAgICB9KTtcblxuICAgICAgICAkc2NvcGUudGFibGVDb25maWcgPSB7XG4gICAgICAgICAgZGF0YTogJ2plbmtpbnMuam9icycsXG4gICAgICAgICAgc2hvd1NlbGVjdGlvbkNoZWNrYm94OiB0cnVlLFxuICAgICAgICAgIGVuYWJsZVJvd0NsaWNrU2VsZWN0aW9uOiBmYWxzZSxcbiAgICAgICAgICBtdWx0aVNlbGVjdDogdHJ1ZSxcbiAgICAgICAgICBzZWxlY3RlZEl0ZW1zOiBbXSxcbiAgICAgICAgICBmaWx0ZXJPcHRpb25zOiB7XG4gICAgICAgICAgICBmaWx0ZXJUZXh0OiAkbG9jYXRpb24uc2VhcmNoKClbXCJxXCJdIHx8ICcnXG4gICAgICAgICAgfSxcbiAgICAgICAgICBjb2x1bW5EZWZzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGZpZWxkOiAnbmFtZScsXG4gICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAnTmFtZScsXG4gICAgICAgICAgICAgIGNlbGxUZW1wbGF0ZTogJHRlbXBsYXRlQ2FjaGUuZ2V0KFwiamVua2luc0pvYk5hbWVUZW1wbGF0ZS5odG1sXCIpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBmaWVsZDogJyRidWlsZExpbmsnLFxuICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogJ1ZpZXdzJyxcbiAgICAgICAgICAgICAgY2VsbFRlbXBsYXRlOiAkdGVtcGxhdGVDYWNoZS5nZXQoXCJqZW5raW5zSm9iQnV0dG9uc1RlbXBsYXRlLmh0bWxcIilcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGZpZWxkOiAnJGxhc3RTdWNjZXNzZnVsQnVpbGROdW1iZXInLFxuICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogJ0xhc3QgU3VjY2VzcycsXG4gICAgICAgICAgICAgIGNlbGxUZW1wbGF0ZTogJHRlbXBsYXRlQ2FjaGUuZ2V0KFwiamVua2luc0xhc3RTdWNjZXNzVGVtcGxhdGUuaHRtbFwiKVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgZmllbGQ6ICckbGFzdEZhaWxlZGxCdWlsZE51bWJlcicsXG4gICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAnTGFzdCBGYWlsdXJlJyxcbiAgICAgICAgICAgICAgY2VsbFRlbXBsYXRlOiAkdGVtcGxhdGVDYWNoZS5nZXQoXCJqZW5raW5zTGFzdEZhaWx1cmVUZW1wbGF0ZS5odG1sXCIpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBmaWVsZDogJyRkdXJhdGlvbicsXG4gICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAnTGFzdCBEdXJhdGlvbicsXG4gICAgICAgICAgICAgIGNlbGxUZW1wbGF0ZTogJHRlbXBsYXRlQ2FjaGUuZ2V0KFwiamVua2luc0J1aWxkRHVyYXRpb25UZW1wbGF0ZS5odG1sXCIpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBmaWVsZDogJyR0aW1lc3RhbXAnLFxuICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogJ1RpbWUgU3RhcnRlZCcsXG4gICAgICAgICAgICAgIGNlbGxUZW1wbGF0ZTogJHRlbXBsYXRlQ2FjaGUuZ2V0KFwiamVua2luc0J1aWxkVGltZXN0YW1wVGVtcGxhdGUuaHRtbFwiKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIF1cbiAgICAgICAgfTtcbiAgICAgICAgdXBkYXRlRGF0YSgpO1xuXG5cbiAgICAgICAgZnVuY3Rpb24gdXBkYXRlRGF0YSgpIHtcbiAgICAgICAgICAvLyBUT0RPIG9ubHkgbmVlZCBkZXB0aCAyIHRvIGJlIGFibGUgdG8gZmV0Y2ggdGhlIGxhc3RCdWlsZFxuICAgICAgICAgIHZhciB1cmwgPSBLdWJlcm5ldGVzLmt1YmVybmV0ZXNQcm94eVVybEZvclNlcnZpY2VDdXJyZW50TmFtZXNwYWNlKGplbmtpbnNTZXJ2aWNlTmFtZUFuZFBvcnQsIFwiYXBpL2pzb24/ZGVwdGg9MlwiKTtcbiAgICAgICAgICBsb2cuaW5mbyhcIlwiKTtcbiAgICAgICAgICBpZiAodXJsICYmICghJHNjb3BlLmplbmtpbnMgfHwgS3ViZXJuZXRlcy5rZWVwUG9sbGluZ01vZGVsKSkge1xuICAgICAgICAgICAgJGh0dHAuZ2V0KHVybCwgamVua2luc0h0dHBDb25maWcpLlxuICAgICAgICAgICAgICBzdWNjZXNzKGZ1bmN0aW9uIChkYXRhLCBzdGF0dXMsIGhlYWRlcnMsIGNvbmZpZykge1xuICAgICAgICAgICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICAgICAgICBlbnJpY2hKZW5raW5zSm9icyhkYXRhLCAkc2NvcGUuaWQsICRzY29wZS5pZCk7XG4gICAgICAgICAgICAgICAgICBpZiAoaGFzT2JqZWN0Q2hhbmdlZChkYXRhLCAkc2NvcGUuZW50aXR5Q2hhbmdlZENhY2hlKSkge1xuICAgICAgICAgICAgICAgICAgICBsb2cuaW5mbyhcImVudGl0eSBoYXMgY2hhbmdlZCFcIik7XG4gICAgICAgICAgICAgICAgICAgICRzY29wZS5qZW5raW5zID0gZGF0YTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJHNjb3BlLm1vZGVsLmZldGNoZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIENvcmUuJGFwcGx5KCRzY29wZSk7XG4gICAgICAgICAgICAgIH0pLlxuICAgICAgICAgICAgICBlcnJvcihmdW5jdGlvbiAoZGF0YSwgc3RhdHVzLCBoZWFkZXJzLCBjb25maWcpIHtcbiAgICAgICAgICAgICAgICBsb2cud2FybihcIkZhaWxlZCB0byBsb2FkIFwiICsgdXJsICsgXCIgXCIgKyBkYXRhICsgXCIgXCIgKyBzdGF0dXMpO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1dKTtcbn1cbiIsIi8vLyA8cmVmZXJlbmNlIHBhdGg9XCIuLi8uLi9pbmNsdWRlcy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCIuLi8uLi9rdWJlcm5ldGVzL3RzL2t1YmVybmV0ZXNIZWxwZXJzLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cImRldmVsb3BlckVucmljaGVycy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJkZXZlbG9wZXJIZWxwZXJzLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cImRldmVsb3Blck5hdmlnYXRpb24udHNcIi8+XG5cbm1vZHVsZSBEZXZlbG9wZXIge1xuXG4gIGV4cG9ydCB2YXIgSmVua2luc0xvZ0NvbnRyb2xsZXIgPSBjb250cm9sbGVyKFwiSmVua2luc0xvZ0NvbnRyb2xsZXJcIixcbiAgICBbXCIkc2NvcGVcIiwgXCJLdWJlcm5ldGVzTW9kZWxcIiwgXCJLdWJlcm5ldGVzU3RhdGVcIiwgXCJLdWJlcm5ldGVzU2NoZW1hXCIsIFwiJHRlbXBsYXRlQ2FjaGVcIiwgXCIkbG9jYXRpb25cIiwgXCIkcm91dGVQYXJhbXNcIiwgXCIkaHR0cFwiLCBcIiR0aW1lb3V0XCIsIFwiS3ViZXJuZXRlc0FwaVVSTFwiLCBcIlNlcnZpY2VSZWdpc3RyeVwiLFxuICAgICAgKCRzY29wZSwgS3ViZXJuZXRlc01vZGVsOkt1YmVybmV0ZXMuS3ViZXJuZXRlc01vZGVsU2VydmljZSwgS3ViZXJuZXRlc1N0YXRlLCBLdWJlcm5ldGVzU2NoZW1hLFxuICAgICAgICR0ZW1wbGF0ZUNhY2hlOm5nLklUZW1wbGF0ZUNhY2hlU2VydmljZSwgJGxvY2F0aW9uOm5nLklMb2NhdGlvblNlcnZpY2UsICRyb3V0ZVBhcmFtcywgJGh0dHAsICR0aW1lb3V0LCBLdWJlcm5ldGVzQXBpVVJMLCBTZXJ2aWNlUmVnaXN0cnkpID0+IHtcblxuICAgICAgICAkc2NvcGUua3ViZXJuZXRlcyA9IEt1YmVybmV0ZXNTdGF0ZTtcbiAgICAgICAgJHNjb3BlLm1vZGVsID0gS3ViZXJuZXRlc01vZGVsO1xuXG4gICAgICAgICRzY29wZS5pZCA9ICRyb3V0ZVBhcmFtc1tcImlkXCJdO1xuICAgICAgICAkc2NvcGUuam9iSWQgPSAkcm91dGVQYXJhbXNbXCJqb2JcIl07XG4gICAgICAgICRzY29wZS5idWlsZElkID0gJHJvdXRlUGFyYW1zW1wiYnVpbGRcIl07XG4gICAgICAgICRzY29wZS5zY2hlbWEgPSBLdWJlcm5ldGVzU2NoZW1hO1xuICAgICAgICAkc2NvcGUuZW50aXR5Q2hhbmdlZENhY2hlID0ge307XG5cbiAgICAgICAgJHNjb3BlLmxvZyA9IHtcbiAgICAgICAgICBodG1sOiBcIlwiLFxuICAgICAgICAgIHN0YXJ0OiAwLFxuICAgICAgICAgIGZpcnN0SWR4OiBudWxsXG4gICAgICAgIH07XG5cbiAgICAgICAgJHNjb3BlLiRvbigna3ViZXJuZXRlc01vZGVsVXBkYXRlZCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICB1cGRhdGVKZW5raW5zTGluaygpO1xuICAgICAgICAgIENvcmUuJGFwcGx5KCRzY29wZSk7XG4gICAgICAgIH0pO1xuXG5cbiAgICAgICAgS3ViZXJuZXRlcy5pbml0U2hhcmVkKCRzY29wZSwgJGxvY2F0aW9uLCAkaHR0cCwgJHRpbWVvdXQsICRyb3V0ZVBhcmFtcywgS3ViZXJuZXRlc01vZGVsLCBLdWJlcm5ldGVzU3RhdGUsIEt1YmVybmV0ZXNBcGlVUkwpO1xuICAgICAgICAkc2NvcGUuYnJlYWRjcnVtYkNvbmZpZyA9IGNyZWF0ZUplbmtpbnNCcmVhZGNydW1icygkc2NvcGUuaWQsICRzY29wZS5qb2JJZCwgJHNjb3BlLmJ1aWxkSWQpO1xuICAgICAgICAkc2NvcGUuc3ViVGFiQ29uZmlnID0gY3JlYXRlSmVua2luc1N1Yk5hdkJhcnMoJHNjb3BlLmlkLCAkc2NvcGUuam9iSWQsICRzY29wZS5idWlsZElkLCB7XG4gICAgICAgICAgbGFiZWw6IFwiTG9nXCIsXG4gICAgICAgICAgdGl0bGU6IFwiVmlld3MgdGhlIGxvZ3Mgb2YgdGhpcyBidWlsZFwiXG4gICAgICAgIH0pO1xuXG5cbiAgICAgICAgZnVuY3Rpb24gdXBkYXRlSmVua2luc0xpbmsoKSB7XG4gICAgICAgICAgdmFyIGplbmtpbnNVcmwgPSBqZW5raW5zTGluaygpO1xuICAgICAgICAgIGlmIChqZW5raW5zVXJsKSB7XG4gICAgICAgICAgICAkc2NvcGUuJHZpZXdKZW5raW5zQnVpbGRMaW5rID0gVXJsSGVscGVycy5qb2luKGplbmtpbnNVcmwsIFwiam9iXCIsICRzY29wZS5qb2JJZCwgJHNjb3BlLmJ1aWxkSWQpO1xuICAgICAgICAgICAgJHNjb3BlLiR2aWV3SmVua2luc0xvZ0xpbmsgPSBVcmxIZWxwZXJzLmpvaW4oJHNjb3BlLiR2aWV3SmVua2luc0J1aWxkTGluaywgXCJjb25zb2xlXCIpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBxdWVyeVNpemUgPSA1MDAwMDtcblxuICAgICAgICAkc2NvcGUuJGtlZXBQb2xsaW5nID0gKCkgPT4gS3ViZXJuZXRlcy5rZWVwUG9sbGluZ01vZGVsO1xuICAgICAgICAkc2NvcGUuZmV0Y2ggPSBQb2xsSGVscGVycy5zZXR1cFBvbGxpbmcoJHNjb3BlLCAobmV4dDooKSA9PiB2b2lkKSA9PiB7XG4gICAgICAgICAgaWYgKCRzY29wZS5qb2JJZCkge1xuICAgICAgICAgICAgdmFyIHVybCA9IEt1YmVybmV0ZXMua3ViZXJuZXRlc1Byb3h5VXJsRm9yU2VydmljZUN1cnJlbnROYW1lc3BhY2UoamVua2luc1NlcnZpY2VOYW1lQW5kUG9ydCwgVXJsSGVscGVycy5qb2luKFwiam9iXCIsICRzY29wZS5qb2JJZCwgJHNjb3BlLmJ1aWxkSWQsIFwiZmFicmljOC9sb2dIdG1sP3RhaWw9MSZzdGFydD1cIiArICRzY29wZS5sb2cuc3RhcnQgKyBcIiZzaXplPVwiICsgcXVlcnlTaXplKSk7XG4gICAgICAgICAgICBpZiAoJHNjb3BlLmxvZy5maXJzdElkeCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICB1cmwgKz0gXCImZmlyc3Q9XCIgKyAkc2NvcGUubG9nLmZpcnN0SWR4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHVybCAmJiAoISRzY29wZS5sb2cuZmV0Y2hlZCB8fCBLdWJlcm5ldGVzLmtlZXBQb2xsaW5nTW9kZWwpKSB7XG4gICAgICAgICAgICAgICRodHRwLmdldCh1cmwpLlxuICAgICAgICAgICAgICAgIHN1Y2Nlc3MoZnVuY3Rpb24gKGRhdGEsIHN0YXR1cywgaGVhZGVycywgY29uZmlnKSB7XG4gICAgICAgICAgICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgcmVwbGFjZUNsdXN0ZXJJUHNJbkh0bWwgPSByZXBsYWNlQ2x1c3RlcklwRnVuY3Rpb24oKTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoISRzY29wZS5sb2cubG9ncykge1xuICAgICAgICAgICAgICAgICAgICAgICRzY29wZS5sb2cubG9ncyA9IFtdO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHZhciBsaW5lcyA9IGRhdGEubGluZXM7XG4gICAgICAgICAgICAgICAgICAgIHZhciByZXR1cm5lZExlbmd0aCA9IGRhdGEucmV0dXJuZWRMZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgIHZhciBsb2dMZW5ndGggPSBkYXRhLmxvZ0xlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHJldHVybmVkU3RhcnQgPSBkYXRhLnN0YXJ0O1xuICAgICAgICAgICAgICAgICAgICB2YXIgZWFybGllckxvZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICBpZiAoYW5ndWxhci5pc0RlZmluZWQocmV0dXJuZWRTdGFydCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICBlYXJsaWVyTG9nID0gcmV0dXJuZWRTdGFydCA8ICRzY29wZS5sb2cuc3RhcnQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdmFyIGxpbmVTcGxpdCA9IGRhdGEubGluZVNwbGl0O1xuICAgICAgICAgICAgICAgICAgICAvLyBsb2cuaW5mbyhcInN0YXJ0IHdhczogXCIgKyAkc2NvcGUubG9nLnN0YXJ0ICsgXCIgZmlyc3Q6IFwiICsgJHNjb3BlLmxvZy5maXJzdElkeCArIFwiID0+IHJldHVybmVkTGVuZ3RoOiBcIiArIHJldHVybmVkTGVuZ3RoICsgXCIgbG9nTGVuZ3RoOiBcIiArIGxvZ0xlbmd0aCArICBcIiByZXR1cm5lZFN0YXJ0OiBcIiArIHJldHVybmVkU3RhcnQgKyBcIiBlYXJsaWVyTG9nOiBcIiArIGVhcmxpZXJMb2cgKyBcIiBsaW5lU3BsaXQ6IFwiICsgbGluZVNwbGl0KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGxpbmVzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgdmFyIGN1cnJlbnRMb2dzID0gJHNjb3BlLmxvZy5sb2dzO1xuXG4gICAgICAgICAgICAgICAgICAgICAgLy8gbGV0cyByZS1qb2luIHNwbGl0IGxpbmVzXG4gICAgICAgICAgICAgICAgICAgICAgaWYgKGxpbmVTcGxpdCAmJiBjdXJyZW50TG9ncy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBsYXN0SW5kZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgcmVzdE9mTGluZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlYXJsaWVyTG9nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RJbmRleCA9IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3RPZkxpbmUgPSBsaW5lcy5wb3AoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3RPZkxpbmUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50TG9nc1tsYXN0SW5kZXhdID0gcmVwbGFjZUNsdXN0ZXJJUHNJbkh0bWwocmVzdE9mTGluZSArIGN1cnJlbnRMb2dzW2xhc3RJbmRleF0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBsYXN0SW5kZXggPSBjdXJyZW50TG9ncy5sZW5ndGggLSAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICByZXN0T2ZMaW5lID0gbGluZXMuc2hpZnQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3RPZkxpbmUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50TG9nc1tsYXN0SW5kZXhdID0gcmVwbGFjZUNsdXN0ZXJJUHNJbkh0bWwoY3VycmVudExvZ3NbbGFzdEluZGV4XSArIHJlc3RPZkxpbmUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGluZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVzW2ldID0gcmVwbGFjZUNsdXN0ZXJJUHNJbkh0bWwobGluZXNbaV0pO1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBpZiAoZWFybGllckxvZykge1xuICAgICAgICAgICAgICAgICAgICAgICAgJHNjb3BlLmxvZy5sb2dzID0gbGluZXMuY29uY2F0KGN1cnJlbnRMb2dzKTtcbiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgJHNjb3BlLmxvZy5sb2dzID0gY3VycmVudExvZ3MuY29uY2F0KGxpbmVzKTtcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdmFyIG1vdmVGb3J3YXJkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGFuZ3VsYXIuaXNEZWZpbmVkKHJldHVybmVkU3RhcnQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgaWYgKHJldHVybmVkU3RhcnQgPiAkc2NvcGUubG9nLnN0YXJ0ICYmICRzY29wZS5sb2cuc3RhcnQgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdlJ3ZlIGp1bXBlZCB0byB0aGUgZW5kIG9mIHRoZSBmaWxlIHRvIHJlYWQgdGhlIHRhaWwgb2YgaXRcbiAgICAgICAgICAgICAgICAgICAgICAgICRzY29wZS5sb2cuc3RhcnQgPSByZXR1cm5lZFN0YXJ0O1xuICAgICAgICAgICAgICAgICAgICAgICAgJHNjb3BlLmxvZy5maXJzdElkeCA9IHJldHVybmVkU3RhcnQ7XG4gICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgkc2NvcGUubG9nLmZpcnN0SWR4ID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBsZXRzIHJlbWVtYmVyIHdoZXJlIHRoZSBmaXJzdCByZXF1ZXN0IHN0YXJ0ZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICRzY29wZS5sb2cuZmlyc3RJZHggPSByZXR1cm5lZFN0YXJ0O1xuICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocmV0dXJuZWRTdGFydCA8ICRzY29wZS5sb2cuZmlyc3RJZHgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdlJ3ZlIGdvdCBhbiBlYXJsaWVyIGJpdCBvZiB0aGUgbG9nXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBhZnRlciBzdGFydGluZyBhdCB0aGUgdGFpbFxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gc28gbGV0cyBtb3ZlIGZpcnN0SWR4IGJhY2t3YXJkcyBhbmQgbGVhdmUgc3RhcnQgYXMgaXQgaXMgKGF0IHRoZSBlbmQgb2YgdGhlIGZpbGUpXG4gICAgICAgICAgICAgICAgICAgICAgICAkc2NvcGUubG9nLmZpcnN0SWR4ID0gcmV0dXJuZWRTdGFydDtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1vdmVGb3J3YXJkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChtb3ZlRm9yd2FyZCAmJiByZXR1cm5lZExlbmd0aCAmJiAhZWFybGllckxvZykge1xuICAgICAgICAgICAgICAgICAgICAgICRzY29wZS5sb2cuc3RhcnQgKz0gcmV0dXJuZWRMZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgICAgaWYgKGxvZ0xlbmd0aCAmJiAkc2NvcGUubG9nLnN0YXJ0ID4gbG9nTGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkc2NvcGUubG9nLnN0YXJ0ID0gbG9nTGVuZ3RoO1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB1cGRhdGVKZW5raW5zTGluaygpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgJHNjb3BlLmxvZy5mZXRjaGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgIENvcmUuJGFwcGx5KCRzY29wZSk7XG4gICAgICAgICAgICAgICAgICBuZXh0KCk7XG4gICAgICAgICAgICAgICAgfSkuXG4gICAgICAgICAgICAgICAgZXJyb3IoZnVuY3Rpb24gKGRhdGEsIHN0YXR1cywgaGVhZGVycywgY29uZmlnKSB7XG4gICAgICAgICAgICAgICAgICBsb2cud2FybihcIkZhaWxlZCB0byBsb2FkIFwiICsgdXJsICsgXCIgXCIgKyBkYXRhICsgXCIgXCIgKyBzdGF0dXMpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAkc2NvcGUubG9nLmZldGNoZWQgPSB0cnVlO1xuICAgICAgICAgICAgQ29yZS4kYXBwbHkoJHNjb3BlKTtcbiAgICAgICAgICAgIG5leHQoKTtcblxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgJHNjb3BlLmZldGNoKCk7XG5cblxuXG4gICAgICAgIGZ1bmN0aW9uIHJlcGxhY2VDbHVzdGVySXBGdW5jdGlvbigpIHtcbiAgICAgICAgICBmdW5jdGlvbiBjcmVhdGVSZXBsYWNlRnVuY3Rpb24oZnJvbSwgdG8pIHtcbiAgICAgICAgICAgIHJldHVybiAodGV4dCkgPT4gcmVwbGFjZVRleHQodGV4dCwgZnJvbSwgdG8pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHZhciByZXBsYWNlbWVudHMgPSBbXTtcbiAgICAgICAgICBhbmd1bGFyLmZvckVhY2goJHNjb3BlLm1vZGVsLnNlcnZpY2VzLCAoc2VydmljZSkgPT4ge1xuICAgICAgICAgICAgdmFyICRwb3J0YWxJUCA9IHNlcnZpY2UuJHBvcnRhbElQO1xuICAgICAgICAgICAgdmFyICRzZXJ2aWNlVXJsID0gc2VydmljZS4kc2VydmljZVVybDtcbiAgICAgICAgICAgIHZhciAkcG9ydHNUZXh0ID0gc2VydmljZS4kcG9ydHNUZXh0O1xuICAgICAgICAgICAgaWYgKCRwb3J0YWxJUCAmJiAkc2VydmljZVVybCkge1xuICAgICAgICAgICAgICB2YXIgaWR4ID0gJHNlcnZpY2VVcmwuaW5kZXhPZihcIjovL1wiKTtcbiAgICAgICAgICAgICAgaWYgKGlkeCA+IDApIHtcbiAgICAgICAgICAgICAgICB2YXIgcmVwbGFjZVdpdGggPSAkc2VydmljZVVybC5zdWJzdHJpbmcoaWR4LCAkc2VydmljZVVybC5sZW5ndGgpO1xuICAgICAgICAgICAgICAgIGlmICghcmVwbGFjZVdpdGguZW5kc1dpdGgoXCIvXCIpKSB7XG4gICAgICAgICAgICAgICAgICByZXBsYWNlV2l0aCArPSBcIi9cIjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHJlcGxhY2VXaXRoLmxlbmd0aCA+IDQpIHtcbiAgICAgICAgICAgICAgICAgIHJlcGxhY2VtZW50cy5wdXNoKGNyZWF0ZVJlcGxhY2VGdW5jdGlvbihcbiAgICAgICAgICAgICAgICAgICAgXCI6Ly9cIiArICRwb3J0YWxJUCArIFwiL1wiLFxuICAgICAgICAgICAgICAgICAgICByZXBsYWNlV2l0aFxuICAgICAgICAgICAgICAgICAgKSk7XG4gICAgICAgICAgICAgICAgICBpZiAoJHBvcnRzVGV4dCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgc3VmZml4ID0gXCI6XCIgKyAkcG9ydHNUZXh0O1xuICAgICAgICAgICAgICAgICAgICB2YXIgc2VydmljZVdpdGhQb3J0ID0gcmVwbGFjZVdpdGguc3Vic3RyaW5nKDAsIHJlcGxhY2VXaXRoLmxlbmd0aCAtIDEpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXNlcnZpY2VXaXRoUG9ydC5lbmRzV2l0aChzdWZmaXgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgc2VydmljZVdpdGhQb3J0ICs9IHN1ZmZpeDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBzZXJ2aWNlV2l0aFBvcnQgKz0gXCIvXCI7XG4gICAgICAgICAgICAgICAgICAgIHJlcGxhY2VtZW50cy5wdXNoKGNyZWF0ZVJlcGxhY2VGdW5jdGlvbihcbiAgICAgICAgICAgICAgICAgICAgICBcIjovL1wiICsgJHBvcnRhbElQICsgXCI6XCIgKyAkcG9ydHNUZXh0ICsgXCIvXCIsXG4gICAgICAgICAgICAgICAgICAgICAgc2VydmljZVdpdGhQb3J0XG4gICAgICAgICAgICAgICAgICAgICkpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgZnVuY3Rpb24gYWRkUmVwbGFjZUZuKGZyb20sIHRvKSB7XG4gICAgICAgICAgICByZXBsYWNlbWVudHMucHVzaCgodGV4dCkgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4gcmVwbGFjZVRleHQodGV4dCwgZnJvbSwgdG8pO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICB9XG4gICAgICAgICAgYWRkUmVwbGFjZUZuKFwiW0lORk9dXCIsIFwiPHNwYW4gY2xhc3M9J2xvZy1zdWNjZXNzJz5bSU5GT108L3NwYW4+XCIpO1xuICAgICAgICAgIGFkZFJlcGxhY2VGbihcIltXQVJOXVwiLCBcIjxzcGFuIGNsYXNzPSdsb2ctd2Fybic+W1dBUk5dPC9zcGFuPlwiKTtcbiAgICAgICAgICBhZGRSZXBsYWNlRm4oXCJbV0FSTklOR11cIiwgXCI8c3BhbiBjbGFzcz0nbG9nLXdhcm4nPltXQVJOSU5HXTwvc3Bhbj5cIik7XG4gICAgICAgICAgYWRkUmVwbGFjZUZuKFwiW0VSUk9SXVwiLCBcIjxzcGFuIGNsYXNzPSdsb2ctZXJyb3InPltFUlJPUl08L3NwYW4+XCIpO1xuICAgICAgICAgIGFkZFJlcGxhY2VGbihcIkZBSUxVUkVcIiwgXCI8c3BhbiBjbGFzcz0nbG9nLWVycm9yJz5GQUlMVVJFPC9zcGFuPlwiKTtcbiAgICAgICAgICBhZGRSZXBsYWNlRm4oXCJTVUNDRVNTXCIsIFwiPHNwYW4gY2xhc3M9J2xvZy1zdWNjZXNzJz5TVUNDRVNTPC9zcGFuPlwiKTtcblxuICAgICAgICAgIHJldHVybiBmdW5jdGlvbih0ZXh0KSB7XG4gICAgICAgICAgICB2YXIgYW5zd2VyID0gdGV4dDtcbiAgICAgICAgICAgIGFuZ3VsYXIuZm9yRWFjaChyZXBsYWNlbWVudHMsIChmbikgPT4ge1xuICAgICAgICAgICAgICBhbnN3ZXIgPSBmbihhbnN3ZXIpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gYW5zd2VyO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGZ1bmN0aW9uIHJlcGxhY2VUZXh0KHRleHQsIGZyb20sIHRvKSB7XG4gICAgICAgICAgaWYgKGZyb20gJiYgdG8gJiYgdGV4dCkge1xuICAgICAgICAgICAgLy9sb2cuaW5mbyhcIlJlcGxhY2luZyAnXCIgKyBmcm9tICsgXCInID0+ICdcIiArIHRvICsgXCInXCIpO1xuICAgICAgICAgICAgdmFyIGlkeCA9IDA7XG4gICAgICAgICAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgICAgICAgICBpZHggPSB0ZXh0LmluZGV4T2YoZnJvbSwgaWR4KTtcbiAgICAgICAgICAgICAgaWYgKGlkeCA+PSAwKSB7XG4gICAgICAgICAgICAgICAgdGV4dCA9IHRleHQuc3Vic3RyaW5nKDAsIGlkeCkgKyB0byArIHRleHQuc3Vic3RyaW5nKGlkeCArIGZyb20ubGVuZ3RoKTtcbiAgICAgICAgICAgICAgICBpZHggKz0gdG8ubGVuZ3RoO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB0ZXh0O1xuICAgICAgICB9XG4gICAgICB9XSk7XG59XG4iLCIvLy8gPHJlZmVyZW5jZSBwYXRoPVwiLi4vLi4vaW5jbHVkZXMudHNcIi8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwiLi4vLi4va3ViZXJuZXRlcy90cy9rdWJlcm5ldGVzSGVscGVycy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJkZXZlbG9wZXJFbnJpY2hlcnMudHNcIi8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwiZGV2ZWxvcGVySGVscGVycy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJkZXZlbG9wZXJOYXZpZ2F0aW9uLnRzXCIvPlxuXG5tb2R1bGUgRGV2ZWxvcGVyIHtcblxuICBleHBvcnQgdmFyIEplbmtpbnNNZXRyaWNzQ29udHJvbGxlciA9IGNvbnRyb2xsZXIoXCJKZW5raW5zTWV0cmljc0NvbnRyb2xsZXJcIixcbiAgICBbXCIkc2NvcGVcIiwgXCJLdWJlcm5ldGVzTW9kZWxcIiwgXCJLdWJlcm5ldGVzU3RhdGVcIiwgXCJLdWJlcm5ldGVzU2NoZW1hXCIsIFwiJHRlbXBsYXRlQ2FjaGVcIiwgXCIkbG9jYXRpb25cIiwgXCIkcm91dGVQYXJhbXNcIiwgXCIkaHR0cFwiLCBcIiR0aW1lb3V0XCIsIFwiS3ViZXJuZXRlc0FwaVVSTFwiLCBcIlNlcnZpY2VSZWdpc3RyeVwiLFxuICAgICAgKCRzY29wZSwgS3ViZXJuZXRlc01vZGVsOkt1YmVybmV0ZXMuS3ViZXJuZXRlc01vZGVsU2VydmljZSwgS3ViZXJuZXRlc1N0YXRlLCBLdWJlcm5ldGVzU2NoZW1hLFxuICAgICAgICR0ZW1wbGF0ZUNhY2hlOm5nLklUZW1wbGF0ZUNhY2hlU2VydmljZSwgJGxvY2F0aW9uOm5nLklMb2NhdGlvblNlcnZpY2UsICRyb3V0ZVBhcmFtcywgJGh0dHAsICR0aW1lb3V0LCBLdWJlcm5ldGVzQXBpVVJMLCBTZXJ2aWNlUmVnaXN0cnkpID0+IHtcblxuICAgICAgICAkc2NvcGUua3ViZXJuZXRlcyA9IEt1YmVybmV0ZXNTdGF0ZTtcbiAgICAgICAgJHNjb3BlLm1vZGVsID0gS3ViZXJuZXRlc01vZGVsO1xuICAgICAgICAkc2NvcGUuaWQgPSAkcm91dGVQYXJhbXNbXCJpZFwiXTtcbiAgICAgICAgJHNjb3BlLmpvYklkID0gJHJvdXRlUGFyYW1zW1wiam9iXCJdO1xuICAgICAgICAkc2NvcGUuc2NoZW1hID0gS3ViZXJuZXRlc1NjaGVtYTtcbiAgICAgICAgJHNjb3BlLmplbmtpbnMgPSBudWxsO1xuICAgICAgICAkc2NvcGUuZW50aXR5Q2hhbmdlZENhY2hlID0ge307XG5cbiAgICAgICAgS3ViZXJuZXRlcy5pbml0U2hhcmVkKCRzY29wZSwgJGxvY2F0aW9uLCAkaHR0cCwgJHRpbWVvdXQsICRyb3V0ZVBhcmFtcywgS3ViZXJuZXRlc01vZGVsLCBLdWJlcm5ldGVzU3RhdGUsIEt1YmVybmV0ZXNBcGlVUkwpO1xuICAgICAgICAkc2NvcGUuYnJlYWRjcnVtYkNvbmZpZyA9IERldmVsb3Blci5jcmVhdGVQcm9qZWN0QnJlYWRjcnVtYnMoJHNjb3BlLmlkKTtcbiAgICAgICAgJHNjb3BlLnN1YlRhYkNvbmZpZyA9IERldmVsb3Blci5jcmVhdGVQcm9qZWN0U3ViTmF2QmFycygkc2NvcGUuaWQsICRzY29wZS5qb2JJZCk7XG5cbiAgICAgICAgJHNjb3BlLiRvbigna3ViZXJuZXRlc01vZGVsVXBkYXRlZCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICB1cGRhdGVEYXRhKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgICRzY29wZS4kb24oJyRyb3V0ZVVwZGF0ZScsICgkZXZlbnQpID0+IHtcbiAgICAgICAgICB1cGRhdGVEYXRhKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgICRzY29wZS5vcHRpb25zID0ge1xuICAgICAgICAgIGNoYXJ0OiB7XG4gICAgICAgICAgICB0eXBlOiAnZGlzY3JldGVCYXJDaGFydCcsXG4gICAgICAgICAgICBhdXRvcmVmcmVzaDogZmFsc2UsXG4gICAgICAgICAgICBoZWlnaHQ6IDQ1MCxcbiAgICAgICAgICAgIG1hcmdpbjoge1xuICAgICAgICAgICAgICB0b3A6IDIwLFxuICAgICAgICAgICAgICByaWdodDogMjAsXG4gICAgICAgICAgICAgIGJvdHRvbTogNjAsXG4gICAgICAgICAgICAgIGxlZnQ6IDQ1XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY2xpcEVkZ2U6IHRydWUsXG4gICAgICAgICAgICBzdGFnZ2VyTGFiZWxzOiBmYWxzZSxcbiAgICAgICAgICAgIHRyYW5zaXRpb25EdXJhdGlvbjogNTAwLFxuICAgICAgICAgICAgc3RhY2tlZDogZmFsc2UsXG4gICAgICAgICAgICBpbnRlcmFjdGl2ZTogdHJ1ZSxcbiAgICAgICAgICAgIHRvb2x0aXA6IHtcbiAgICAgICAgICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgY29udGVudEdlbmVyYXRvcjogKGFyZ3MpID0+IHtcbiAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IGFyZ3MuZGF0YSB8fCB7fTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZGF0YS50b29sdGlwO1xuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNvbG9yOiAoZCwgaSkgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4gZC5jb2xvcjtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB4QXhpczoge1xuICAgICAgICAgICAgICBheGlzTGFiZWw6ICdCdWlsZHMnLFxuICAgICAgICAgICAgICBzaG93TWF4TWluOiBmYWxzZSxcbiAgICAgICAgICAgICAgdGlja0Zvcm1hdDogZnVuY3Rpb24gKGQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gXCIjXCIgKyBkO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgeUF4aXM6IHtcbiAgICAgICAgICAgICAgYXhpc0xhYmVsOiAnQnVpbGQgRHVyYXRpb24gKHNlY29uZHMpJyxcbiAgICAgICAgICAgICAgdGlja0Zvcm1hdDogZnVuY3Rpb24gKGQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZDMuZm9ybWF0KCcsLjFmJykoZCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgJHNjb3BlLmRhdGEgPSBbXTtcblxuICAgICAgICB1cGRhdGVEYXRhKCk7XG5cbiAgICAgICAgZnVuY3Rpb24gYmFyQ29sb3VyRm9yQnVpbGRSZXN1bHQocmVzdWx0KSB7XG4gICAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgICAgaWYgKHJlc3VsdCA9PT0gXCJGQUlMVVJFXCIgfHwgcmVzdWx0ID09PSBcIkZBSUxFRFwiKSB7XG4gICAgICAgICAgICAgIHJldHVybiBcInJlZFwiO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQgPT09IFwiQUJPUlRFRFwiIHx8IHJlc3VsdCA9PT0gXCJJTlRFUlVQVEVEXCIpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIFwidGFuXCI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdCA9PT0gXCJTVUNDRVNTXCIpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIFwiZ3JlZW5cIjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAocmVzdWx0ID09PSBcIk5PVF9TVEFSVEVEXCIpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIFwibGlnaHRncmV5XCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIFwiZGFya2dyZXlcIjtcbiAgICAgICAgfVxuXG5cbiAgICAgICAgZnVuY3Rpb24gdXBkYXRlQ2hhcnREYXRhKCkge1xuICAgICAgICAgIHZhciB1c2VTaW5nbGVTZXQgPSB0cnVlO1xuICAgICAgICAgIHZhciBidWlsZHNTdWNjZWVkZWQgPSBbXTtcbiAgICAgICAgICB2YXIgYnVpbGRzRmFpbGVkID0gW107XG4gICAgICAgICAgdmFyIHN1Y2Nlc3NCdWlsZEtleSA9IFwiU3VjY2VlZGVkIGJ1aWxkc1wiO1xuICAgICAgICAgIHZhciBmYWlsZWRCdWlsZEtleSA9IFwiRmFpbGVkIGJ1aWxkc1wiO1xuXG4gICAgICAgICAgaWYgKHVzZVNpbmdsZVNldCkge1xuICAgICAgICAgICAgc3VjY2Vzc0J1aWxkS2V5ID0gXCJCdWlsZHNcIjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB2YXIgY291bnQgPSAwO1xuICAgICAgICAgIHZhciBidWlsZHMgPSBfLnNvcnRCeSgkc2NvcGUubWV0cmljcy5idWlsZHMgfHwgW10sIFwibnVtYmVyXCIpO1xuICAgICAgICAgIGFuZ3VsYXIuZm9yRWFjaChidWlsZHMsIChidWlsZCkgPT4ge1xuICAgICAgICAgICAgdmFyIHggPSBidWlsZC5udW1iZXI7XG4gICAgICAgICAgICB2YXIgeSA9IGJ1aWxkLmR1cmF0aW9uIC8gMTAwMDtcbiAgICAgICAgICAgIHZhciBkYXRlID0gRGV2ZWxvcGVyLmFzRGF0ZShidWlsZC50aW1lSW5NaWxsaXMpO1xuICAgICAgICAgICAgdmFyIHJlc3VsdCA9IGJ1aWxkLnJlc3VsdCB8fCBcIk5PVF9TVEFSVEVEXCI7XG4gICAgICAgICAgICB2YXIgY29sb3IgPSBiYXJDb2xvdXJGb3JCdWlsZFJlc3VsdChyZXN1bHQpO1xuICAgICAgICAgICAgdmFyIGljb25DbGFzcyA9IGNyZWF0ZUJ1aWxkU3RhdHVzSWNvbkNsYXNzKHJlc3VsdCk7XG4gICAgICAgICAgICB2YXIgdG9vbHRpcCA9ICc8aDM+PGkgY2xhc3M9XCInICsgaWNvbkNsYXNzICsgJ1wiPjwvaT4gJyArIGJ1aWxkLmRpc3BsYXlOYW1lICsgJzwvaDM+JyArXG4gICAgICAgICAgICAgICc8cD5kdXJhdGlvbjogPGI+JyArIHkgKyAnPC9iPiBzZWNvbmRzPC9wPic7XG4gICAgICAgICAgICBpZiAoZGF0ZSkge1xuICAgICAgICAgICAgICB0b29sdGlwICs9ICc8cD5zdGFydGVkOiA8Yj4nICsgZGF0ZSArICc8L2I+PC9wPic7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgICAgIHRvb2x0aXAgKz0gJzxwPnJlc3VsdDogPGI+JyArIHJlc3VsdCArICc8L2I+PC9wPic7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh4KSB7XG4gICAgICAgICAgICAgIHZhciBkYXRhID0gYnVpbGRzU3VjY2VlZGVkO1xuICAgICAgICAgICAgICB2YXIga2V5ID0gc3VjY2Vzc0J1aWxkS2V5O1xuICAgICAgICAgICAgICBpZiAoIXN1Y2Nlc3NCdWlsZEtleSAmJiAoIXJlc3VsdCB8fCAhcmVzdWx0LnN0YXJ0c1dpdGgoXCJTVUNDXCIpKSkge1xuICAgICAgICAgICAgICAgIGRhdGEgPSBidWlsZHNGYWlsZWQ7XG4gICAgICAgICAgICAgICAga2V5ID0gZmFpbGVkQnVpbGRLZXk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgZGF0YS5wdXNoKHtcbiAgICAgICAgICAgICAgICB0b29sdGlwOiB0b29sdGlwLFxuICAgICAgICAgICAgICAgIGNvbG9yOiBjb2xvcixcbiAgICAgICAgICAgICAgICB4OiB4LCB5OiB5fSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgJHNjb3BlLmRhdGEgPSBbXTtcbiAgICAgICAgICBpZiAoYnVpbGRzU3VjY2VlZGVkLmxlbmd0aCkge1xuICAgICAgICAgICAgJHNjb3BlLmRhdGEucHVzaCh7XG4gICAgICAgICAgICAgIGtleTogc3VjY2Vzc0J1aWxkS2V5LFxuICAgICAgICAgICAgICB2YWx1ZXM6IGJ1aWxkc1N1Y2NlZWRlZFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChidWlsZHNGYWlsZWQubGVuZ3RoKSB7XG4gICAgICAgICAgICAkc2NvcGUuZGF0YS5wdXNoKHtcbiAgICAgICAgICAgICAga2V5OiBmYWlsZWRCdWlsZEtleSxcbiAgICAgICAgICAgICAgdmFsdWVzOiBidWlsZHNGYWlsZWRcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICAkc2NvcGUuYXBpLnVwZGF0ZVdpdGhEYXRhKCRzY29wZS5kYXRhKTtcblxuICAgICAgICAgICR0aW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICRzY29wZS5hcGkudXBkYXRlKCk7XG4gICAgICAgICAgfSwgNTApO1xuICAgICAgICB9XG5cbiAgICAgICAgZnVuY3Rpb24gdXBkYXRlRGF0YSgpIHtcbiAgICAgICAgICB2YXIgbWV0cmljc1BhdGggPSAkc2NvcGUuam9iSWQgPyBVcmxIZWxwZXJzLmpvaW4oXCJqb2JcIiwgJHNjb3BlLmpvYklkLCBcImZhYnJpYzgvbWV0cmljc1wiKSA6IFwiZmFicmljOC9tZXRyaWNzXCI7XG4gICAgICAgICAgdmFyIHVybCA9IEt1YmVybmV0ZXMua3ViZXJuZXRlc1Byb3h5VXJsRm9yU2VydmljZUN1cnJlbnROYW1lc3BhY2UoamVua2luc1NlcnZpY2VOYW1lQW5kUG9ydCwgbWV0cmljc1BhdGgpO1xuICAgICAgICAgIGxvZy5pbmZvKFwiXCIpO1xuICAgICAgICAgIGlmICh1cmwgJiYgKCEkc2NvcGUuamVua2lucyB8fCBLdWJlcm5ldGVzLmtlZXBQb2xsaW5nTW9kZWwpKSB7XG4gICAgICAgICAgICAkaHR0cC5nZXQodXJsLCBqZW5raW5zSHR0cENvbmZpZykuXG4gICAgICAgICAgICAgIHN1Y2Nlc3MoZnVuY3Rpb24gKGRhdGEsIHN0YXR1cywgaGVhZGVycywgY29uZmlnKSB7XG4gICAgICAgICAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgICAgICAgIGlmIChoYXNPYmplY3RDaGFuZ2VkKGRhdGEsICRzY29wZS5lbnRpdHlDaGFuZ2VkQ2FjaGUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGxvZy5pbmZvKFwiZW50aXR5IGhhcyBjaGFuZ2VkIVwiKTtcbiAgICAgICAgICAgICAgICAgICAgJHNjb3BlLm1ldHJpY3MgPSBkYXRhO1xuICAgICAgICAgICAgICAgICAgICB1cGRhdGVDaGFydERhdGEoKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJHNjb3BlLm1vZGVsLmZldGNoZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIENvcmUuJGFwcGx5KCRzY29wZSk7XG4gICAgICAgICAgICAgIH0pLlxuICAgICAgICAgICAgICBlcnJvcihmdW5jdGlvbiAoZGF0YSwgc3RhdHVzLCBoZWFkZXJzLCBjb25maWcpIHtcbiAgICAgICAgICAgICAgICBsb2cud2FybihcIkZhaWxlZCB0byBsb2FkIFwiICsgdXJsICsgXCIgXCIgKyBkYXRhICsgXCIgXCIgKyBzdGF0dXMpO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1dKTtcbn1cbiIsIi8vLyA8cmVmZXJlbmNlIHBhdGg9XCIuLi8uLi9pbmNsdWRlcy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCIuLi8uLi9rdWJlcm5ldGVzL3RzL2t1YmVybmV0ZXNIZWxwZXJzLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cImRldmVsb3BlckVucmljaGVycy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJkZXZlbG9wZXJIZWxwZXJzLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cImRldmVsb3Blck5hdmlnYXRpb24udHNcIi8+XG5cbm1vZHVsZSBEZXZlbG9wZXIge1xuXG4gIGV4cG9ydCB2YXIgTmF2QmFyQ29udHJvbGxlciA9IGNvbnRyb2xsZXIoXCJOYXZCYXJDb250cm9sbGVyXCIsXG4gICAgW1wiJHNjb3BlXCIsIFwiJGxvY2F0aW9uXCIsIFwiJHJvdXRlUGFyYW1zXCIsIFwiJHRpbWVvdXRcIiwgXCJLdWJlcm5ldGVzQXBpVVJMXCIsXG4gICAgICAoJHNjb3BlLCAkbG9jYXRpb246bmcuSUxvY2F0aW9uU2VydmljZSwgJHJvdXRlUGFyYW1zLCAkdGltZW91dCkgPT4ge1xuXG4gICAgICAgICRzY29wZS5pc1ZhbGlkID0gKGl0ZW0pID0+IHtcbiAgICAgICAgICBpZiAoaXRlbSkge1xuICAgICAgICAgICAgdmFyIHZhbHVlID0gaXRlbS5pc1ZhbGlkO1xuICAgICAgICAgICAgaWYgKGFuZ3VsYXIuaXNGdW5jdGlvbih2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlKGl0ZW0pXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZXR1cm4gYW5ndWxhci5pc1VuZGVmaW5lZCh2YWx1ZSkgfHwgdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XSk7XG59XG4iLCIvLy8gPHJlZmVyZW5jZSBwYXRoPVwiLi4vLi4vaW5jbHVkZXMudHNcIi8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwiLi4vLi4va3ViZXJuZXRlcy90cy9rdWJlcm5ldGVzSGVscGVycy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJkZXZlbG9wZXJFbnJpY2hlcnMudHNcIi8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwiZGV2ZWxvcGVySGVscGVycy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJkZXZlbG9wZXJOYXZpZ2F0aW9uLnRzXCIvPlxuXG5tb2R1bGUgRGV2ZWxvcGVyIHtcblxuICBleHBvcnQgdmFyIFBpcGVsaW5lQ29udHJvbGxlciA9IGNvbnRyb2xsZXIoXCJQaXBlbGluZUNvbnRyb2xsZXJcIixcbiAgICBbXCIkc2NvcGVcIiwgXCJLdWJlcm5ldGVzTW9kZWxcIiwgXCJLdWJlcm5ldGVzU3RhdGVcIiwgXCJLdWJlcm5ldGVzU2NoZW1hXCIsIFwiJHRlbXBsYXRlQ2FjaGVcIiwgXCIkbG9jYXRpb25cIiwgXCIkcm91dGVQYXJhbXNcIiwgXCIkaHR0cFwiLCBcIiR0aW1lb3V0XCIsIFwiS3ViZXJuZXRlc0FwaVVSTFwiLCBcIlNlcnZpY2VSZWdpc3RyeVwiLFxuICAgICAgKCRzY29wZSwgS3ViZXJuZXRlc01vZGVsOkt1YmVybmV0ZXMuS3ViZXJuZXRlc01vZGVsU2VydmljZSwgS3ViZXJuZXRlc1N0YXRlLCBLdWJlcm5ldGVzU2NoZW1hLFxuICAgICAgICR0ZW1wbGF0ZUNhY2hlOm5nLklUZW1wbGF0ZUNhY2hlU2VydmljZSwgJGxvY2F0aW9uOm5nLklMb2NhdGlvblNlcnZpY2UsICRyb3V0ZVBhcmFtcywgJGh0dHAsICR0aW1lb3V0LCBLdWJlcm5ldGVzQXBpVVJMLCBTZXJ2aWNlUmVnaXN0cnkpID0+IHtcblxuICAgICAgICAkc2NvcGUua3ViZXJuZXRlcyA9IEt1YmVybmV0ZXNTdGF0ZTtcbiAgICAgICAgJHNjb3BlLmt1YmVNb2RlbCA9IEt1YmVybmV0ZXNNb2RlbDtcbiAgICAgICAgJHNjb3BlLmlkID0gJHJvdXRlUGFyYW1zW1wiaWRcIl07XG4gICAgICAgICRzY29wZS5qb2JJZCA9ICRyb3V0ZVBhcmFtc1tcImpvYlwiXTtcbiAgICAgICAgJHNjb3BlLmJ1aWxkSWQgPSAkcm91dGVQYXJhbXNbXCJidWlsZFwiXTtcbiAgICAgICAgJHNjb3BlLnNjaGVtYSA9IEt1YmVybmV0ZXNTY2hlbWE7XG4gICAgICAgICRzY29wZS5lbnRpdHlDaGFuZ2VkQ2FjaGUgPSB7fTtcblxuICAgICAgICAkc2NvcGUubW9kZWwgPSB7XG4gICAgICAgICAgc3RhZ2VzOiBudWxsXG4gICAgICAgIH07XG4gICAgICAgIEt1YmVybmV0ZXMuaW5pdFNoYXJlZCgkc2NvcGUsICRsb2NhdGlvbiwgJGh0dHAsICR0aW1lb3V0LCAkcm91dGVQYXJhbXMsIEt1YmVybmV0ZXNNb2RlbCwgS3ViZXJuZXRlc1N0YXRlLCBLdWJlcm5ldGVzQXBpVVJMKTtcbiAgICAgICAgJHNjb3BlLmJyZWFkY3J1bWJDb25maWcgPSBEZXZlbG9wZXIuY3JlYXRlUHJvamVjdEJyZWFkY3J1bWJzKCRzY29wZS5pZCk7XG4gICAgICAgICRzY29wZS5zdWJUYWJDb25maWcgPSBEZXZlbG9wZXIuY3JlYXRlUHJvamVjdFN1Yk5hdkJhcnMoJHNjb3BlLmlkLCAkc2NvcGUuam9iSWQpO1xuXG4gICAgICAgICRzY29wZS4kb24oJ2t1YmVybmV0ZXNNb2RlbFVwZGF0ZWQnLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgdXBkYXRlRGF0YSgpO1xuICAgICAgICB9KTtcblxuICAgICAgICAkc2NvcGUuJG9uKCckcm91dGVVcGRhdGUnLCAoJGV2ZW50KSA9PiB7XG4gICAgICAgICAgdXBkYXRlRGF0YSgpO1xuICAgICAgICB9KTtcblxuICAgICAgICB1cGRhdGVEYXRhKCk7XG5cbiAgICAgICAgZnVuY3Rpb24gdXBkYXRlRGF0YSgpIHtcbiAgICAgICAgICBpZiAoJHNjb3BlLmpvYklkKSB7XG4gICAgICAgICAgICB2YXIgdXJsID0gS3ViZXJuZXRlcy5rdWJlcm5ldGVzUHJveHlVcmxGb3JTZXJ2aWNlQ3VycmVudE5hbWVzcGFjZShqZW5raW5zU2VydmljZU5hbWVBbmRQb3J0LCBVcmxIZWxwZXJzLmpvaW4oXCJqb2JcIiwgJHNjb3BlLmpvYklkLCAkc2NvcGUuYnVpbGRJZCwgXCJmYWJyaWM4L3N0YWdlcy9cIikpO1xuICAgICAgICAgICAgaWYgKHVybCAmJiAoISRzY29wZS5tb2RlbC5zdGFnZXMgfHwgS3ViZXJuZXRlcy5rZWVwUG9sbGluZ01vZGVsKSkge1xuICAgICAgICAgICAgICAkaHR0cC5nZXQodXJsKS5cbiAgICAgICAgICAgICAgICBzdWNjZXNzKGZ1bmN0aW9uIChkYXRhLCBzdGF0dXMsIGhlYWRlcnMsIGNvbmZpZykge1xuICAgICAgICAgICAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgZW5yaWNoSmVua2luc1N0YWdlcyhkYXRhLCAkc2NvcGUuaWQsICRzY29wZS5qb2JJZCk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChoYXNPYmplY3RDaGFuZ2VkKGRhdGEsICRzY29wZS5lbnRpdHlDaGFuZ2VkQ2FjaGUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgbG9nLmluZm8oXCJlbnRpdHkgaGFzIGNoYW5nZWQhXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICRzY29wZS5idWlsZCA9IGRhdGE7XG4gICAgICAgICAgICAgICAgICAgICAgJHNjb3BlLm1vZGVsLnN0YWdlcyA9IGRhdGEuc3RhZ2VzO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAkc2NvcGUubW9kZWwuZmV0Y2hlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICBDb3JlLiRhcHBseSgkc2NvcGUpO1xuICAgICAgICAgICAgICAgIH0pLlxuICAgICAgICAgICAgICAgIGVycm9yKGZ1bmN0aW9uIChkYXRhLCBzdGF0dXMsIGhlYWRlcnMsIGNvbmZpZykge1xuICAgICAgICAgICAgICAgICAgbG9nLndhcm4oXCJGYWlsZWQgdG8gbG9hZCBcIiArIHVybCArIFwiIFwiICsgZGF0YSArIFwiIFwiICsgc3RhdHVzKTtcbiAgICAgICAgICAgICAgICAgICRzY29wZS5tb2RlbC5mZXRjaGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgJHNjb3BlLm1vZGVsLmZldGNoZWQgPSB0cnVlO1xuICAgICAgICAgICAgQ29yZS4kYXBwbHkoJHNjb3BlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1dKTtcbn1cbiIsIi8vLyA8cmVmZXJlbmNlIHBhdGg9XCIuLi8uLi9pbmNsdWRlcy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCIuLi8uLi9rdWJlcm5ldGVzL3RzL2t1YmVybmV0ZXNIZWxwZXJzLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cImRldmVsb3BlckVucmljaGVycy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJkZXZlbG9wZXJIZWxwZXJzLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cImRldmVsb3Blck5hdmlnYXRpb24udHNcIi8+XG5cbm1vZHVsZSBEZXZlbG9wZXIge1xuICBfbW9kdWxlLmRpcmVjdGl2ZShcInBpcGVsaW5lVmlld1wiLCAoKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRlbXBsYXRlVXJsOiB0ZW1wbGF0ZVBhdGggKyAncGlwZWxpbmVWaWV3Lmh0bWwnXG4gICAgfTtcbiAgfSk7XG59XG4iLCIvLy8gPHJlZmVyZW5jZSBwYXRoPVwiLi4vLi4vaW5jbHVkZXMudHNcIi8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwiLi4vLi4va3ViZXJuZXRlcy90cy9rdWJlcm5ldGVzSGVscGVycy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJkZXZlbG9wZXJFbnJpY2hlcnMudHNcIi8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwiZGV2ZWxvcGVySGVscGVycy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJkZXZlbG9wZXJOYXZpZ2F0aW9uLnRzXCIvPlxuXG5tb2R1bGUgRGV2ZWxvcGVyIHtcblxuICBleHBvcnQgdmFyIFBpcGVsaW5lc0NvbnRyb2xsZXIgPSBjb250cm9sbGVyKFwiUGlwZWxpbmVzQ29udHJvbGxlclwiLFxuICAgIFtcIiRzY29wZVwiLCBcIkt1YmVybmV0ZXNNb2RlbFwiLCBcIkt1YmVybmV0ZXNTdGF0ZVwiLCBcIkt1YmVybmV0ZXNTY2hlbWFcIiwgXCIkdGVtcGxhdGVDYWNoZVwiLCBcIiRsb2NhdGlvblwiLCBcIiRyb3V0ZVBhcmFtc1wiLCBcIiRodHRwXCIsIFwiJHRpbWVvdXRcIiwgXCJLdWJlcm5ldGVzQXBpVVJMXCIsIFwiU2VydmljZVJlZ2lzdHJ5XCIsXG4gICAgICAoJHNjb3BlLCBLdWJlcm5ldGVzTW9kZWw6S3ViZXJuZXRlcy5LdWJlcm5ldGVzTW9kZWxTZXJ2aWNlLCBLdWJlcm5ldGVzU3RhdGUsIEt1YmVybmV0ZXNTY2hlbWEsXG4gICAgICAgJHRlbXBsYXRlQ2FjaGU6bmcuSVRlbXBsYXRlQ2FjaGVTZXJ2aWNlLCAkbG9jYXRpb246bmcuSUxvY2F0aW9uU2VydmljZSwgJHJvdXRlUGFyYW1zLCAkaHR0cCwgJHRpbWVvdXQsIEt1YmVybmV0ZXNBcGlVUkwsIFNlcnZpY2VSZWdpc3RyeSkgPT4ge1xuXG4gICAgICAgICRzY29wZS5rdWJlcm5ldGVzID0gS3ViZXJuZXRlc1N0YXRlO1xuICAgICAgICAkc2NvcGUua3ViZU1vZGVsID0gS3ViZXJuZXRlc01vZGVsO1xuICAgICAgICAkc2NvcGUuaWQgPSAkcm91dGVQYXJhbXNbXCJpZFwiXTtcbiAgICAgICAgJHNjb3BlLmpvYklkID0gJHNjb3BlLmpvYklkIHx8ICRyb3V0ZVBhcmFtc1tcImpvYlwiXTtcbiAgICAgICAgJHNjb3BlLnNjaGVtYSA9IEt1YmVybmV0ZXNTY2hlbWE7XG4gICAgICAgICRzY29wZS5lbnRpdHlDaGFuZ2VkQ2FjaGUgPSB7fTtcblxuICAgICAgICAkc2NvcGUubW9kZWwgPSB7XG4gICAgICAgICAgam9iOiBudWxsLFxuICAgICAgICAgIHBlbmRpbmdPbmx5OiAkc2NvcGUucGVuZGluZ1BpcGVsaW5lc09ubHlcbiAgICAgICAgfTtcbiAgICAgICAgS3ViZXJuZXRlcy5pbml0U2hhcmVkKCRzY29wZSwgJGxvY2F0aW9uLCAkaHR0cCwgJHRpbWVvdXQsICRyb3V0ZVBhcmFtcywgS3ViZXJuZXRlc01vZGVsLCBLdWJlcm5ldGVzU3RhdGUsIEt1YmVybmV0ZXNBcGlVUkwpO1xuICAgICAgICAkc2NvcGUuYnJlYWRjcnVtYkNvbmZpZyA9IERldmVsb3Blci5jcmVhdGVQcm9qZWN0QnJlYWRjcnVtYnMoJHNjb3BlLmlkKTtcbiAgICAgICAgJHNjb3BlLnN1YlRhYkNvbmZpZyA9IERldmVsb3Blci5jcmVhdGVQcm9qZWN0U3ViTmF2QmFycygkc2NvcGUuaWQsICRzY29wZS5qb2JJZCk7XG5cbiAgICAgICAgJHNjb3BlLiRvbigna3ViZXJuZXRlc01vZGVsVXBkYXRlZCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICB1cGRhdGVEYXRhKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgICRzY29wZS4kb24oJyRyb3V0ZVVwZGF0ZScsICgkZXZlbnQpID0+IHtcbiAgICAgICAgICB1cGRhdGVEYXRhKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgICRzY29wZS4kd2F0Y2goJ21vZGVsLnBlbmRpbmdPbmx5JywgKCRldmVudCkgPT4ge1xuICAgICAgICAgIHVwZGF0ZURhdGEoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdXBkYXRlRGF0YSgpO1xuXG4gICAgICAgIGZ1bmN0aW9uIHVwZGF0ZURhdGEoKSB7XG4gICAgICAgICAgaWYgKCRzY29wZS5qb2JJZCkge1xuICAgICAgICAgICAgdmFyIHF1ZXJ5UGF0aCA9IFwiZmFicmljOC9zdGFnZXMvXCI7XG4gICAgICAgICAgICBpZiAoJHNjb3BlLm1vZGVsLnBlbmRpbmdPbmx5KSB7XG4gICAgICAgICAgICAgIHF1ZXJ5UGF0aCA9IFwiZmFicmljOC9wZW5kaW5nU3RhZ2VzL1wiO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFyIHVybCA9IEt1YmVybmV0ZXMua3ViZXJuZXRlc1Byb3h5VXJsRm9yU2VydmljZUN1cnJlbnROYW1lc3BhY2UoamVua2luc1NlcnZpY2VOYW1lQW5kUG9ydCwgVXJsSGVscGVycy5qb2luKFwiam9iXCIsICRzY29wZS5qb2JJZCwgcXVlcnlQYXRoKSk7XG4gICAgICAgICAgICBpZiAodXJsICYmICghJHNjb3BlLm1vZGVsLmpvYiB8fCBLdWJlcm5ldGVzLmtlZXBQb2xsaW5nTW9kZWwpKSB7XG4gICAgICAgICAgICAgICRodHRwLmdldCh1cmwpLlxuICAgICAgICAgICAgICAgIHN1Y2Nlc3MoZnVuY3Rpb24gKGRhdGEsIHN0YXR1cywgaGVhZGVycywgY29uZmlnKSB7XG4gICAgICAgICAgICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgICAgICAgICBlbnJpY2hKZW5raW5zUGlwZWxpbmVKb2IoZGF0YSwgJHNjb3BlLmlkLCAkc2NvcGUuam9iSWQpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaGFzT2JqZWN0Q2hhbmdlZChkYXRhLCAkc2NvcGUuZW50aXR5Q2hhbmdlZENhY2hlKSkge1xuICAgICAgICAgICAgICAgICAgICAgIGxvZy5pbmZvKFwiZW50aXR5IGhhcyBjaGFuZ2VkIVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAkc2NvcGUubW9kZWwuam9iID0gZGF0YTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgJHNjb3BlLm1vZGVsLmZldGNoZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgQ29yZS4kYXBwbHkoJHNjb3BlKTtcbiAgICAgICAgICAgICAgICB9KS5cbiAgICAgICAgICAgICAgICBlcnJvcihmdW5jdGlvbiAoZGF0YSwgc3RhdHVzLCBoZWFkZXJzLCBjb25maWcpIHtcbiAgICAgICAgICAgICAgICAgIGxvZy53YXJuKFwiRmFpbGVkIHRvIGxvYWQgXCIgKyB1cmwgKyBcIiBcIiArIGRhdGEgKyBcIiBcIiArIHN0YXR1cyk7XG4gICAgICAgICAgICAgICAgICAkc2NvcGUubW9kZWwuZmV0Y2hlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICRzY29wZS5tb2RlbC5mZXRjaGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIENvcmUuJGFwcGx5KCRzY29wZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XSk7XG59XG4iLCIvLy8gPHJlZmVyZW5jZSBwYXRoPVwiLi4vLi4vaW5jbHVkZXMudHNcIi8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwiLi4vLi4va3ViZXJuZXRlcy90cy9rdWJlcm5ldGVzSGVscGVycy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJkZXZlbG9wZXJFbnJpY2hlcnMudHNcIi8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwiZGV2ZWxvcGVySGVscGVycy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJkZXZlbG9wZXJOYXZpZ2F0aW9uLnRzXCIvPlxuXG5tb2R1bGUgRGV2ZWxvcGVyIHtcblxuICBleHBvcnQgdmFyIFByb2plY3RDb250cm9sbGVyID0gY29udHJvbGxlcihcIlByb2plY3RDb250cm9sbGVyXCIsXG4gICAgW1wiJHNjb3BlXCIsIFwiS3ViZXJuZXRlc01vZGVsXCIsIFwiS3ViZXJuZXRlc1N0YXRlXCIsIFwiS3ViZXJuZXRlc1NjaGVtYVwiLCBcIiR0ZW1wbGF0ZUNhY2hlXCIsIFwiJGxvY2F0aW9uXCIsIFwiJHJvdXRlUGFyYW1zXCIsIFwiJGh0dHBcIiwgXCIkdGltZW91dFwiLCBcIkt1YmVybmV0ZXNBcGlVUkxcIixcbiAgICAgICgkc2NvcGUsIEt1YmVybmV0ZXNNb2RlbDpLdWJlcm5ldGVzLkt1YmVybmV0ZXNNb2RlbFNlcnZpY2UsIEt1YmVybmV0ZXNTdGF0ZSwgS3ViZXJuZXRlc1NjaGVtYSxcbiAgICAgICAkdGVtcGxhdGVDYWNoZTpuZy5JVGVtcGxhdGVDYWNoZVNlcnZpY2UsICRsb2NhdGlvbjpuZy5JTG9jYXRpb25TZXJ2aWNlLCAkcm91dGVQYXJhbXMsICRodHRwLCAkdGltZW91dCwgS3ViZXJuZXRlc0FwaVVSTCkgPT4ge1xuXG4gICAgICAgICRzY29wZS5rdWJlcm5ldGVzID0gS3ViZXJuZXRlc1N0YXRlO1xuICAgICAgICAkc2NvcGUubW9kZWwgPSBLdWJlcm5ldGVzTW9kZWw7XG4gICAgICAgICRzY29wZS5pZCA9ICRyb3V0ZVBhcmFtc1tcImlkXCJdO1xuXG4gICAgICAgICRzY29wZS5zY2hlbWEgPSBLdWJlcm5ldGVzU2NoZW1hO1xuICAgICAgICAkc2NvcGUuY29uZmlnID0gS3ViZXJuZXRlc1NjaGVtYS5kZWZpbml0aW9ucy5vc19idWlsZF9CdWlsZENvbmZpZztcbiAgICAgICAgJHNjb3BlLmVudGl0eUNoYW5nZWRDYWNoZSA9IHt9O1xuICAgICAgICAkc2NvcGUuZW52VmVyc2lvbnNDYWNoZSA9IHt9O1xuICAgICAgICAkc2NvcGUuZW52TlNDYWNoZXMgPSB7fTtcbiAgICAgICAgJHNjb3BlLmVudlZlcnNpb25zID0ge307XG5cbiAgICAgICAgS3ViZXJuZXRlcy5pbml0U2hhcmVkKCRzY29wZSwgJGxvY2F0aW9uLCAkaHR0cCwgJHRpbWVvdXQsICRyb3V0ZVBhcmFtcywgS3ViZXJuZXRlc01vZGVsLCBLdWJlcm5ldGVzU3RhdGUsIEt1YmVybmV0ZXNBcGlVUkwpO1xuICAgICAgICAkc2NvcGUuYnJlYWRjcnVtYkNvbmZpZyA9IERldmVsb3Blci5jcmVhdGVQcm9qZWN0QnJlYWRjcnVtYnMoJHNjb3BlLmlkKTtcbiAgICAgICAgJHNjb3BlLnN1YlRhYkNvbmZpZyA9IERldmVsb3Blci5jcmVhdGVQcm9qZWN0U3ViTmF2QmFycygkc2NvcGUuaWQsIG51bGwsICRzY29wZSk7XG5cbiAgICAgICAgLy8gdGhpcyBpcyB1c2VkIGZvciB0aGUgcGVuZGluZ1BpcGVsaW5lcyB2aWV3XG4gICAgICAgICRzY29wZS5qb2JJZCA9ICRzY29wZS5pZDtcbiAgICAgICAgJHNjb3BlLnBlbmRpbmdQaXBlbGluZXNPbmx5ID0gdHJ1ZTtcblxuLypcbiAgICAgICAgJHNjb3BlLiRvbigna3ViZXJuZXRlc01vZGVsVXBkYXRlZCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICB1cGRhdGVEYXRhKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgICRzY29wZS4kb24oJyRyb3V0ZVVwZGF0ZScsICgkZXZlbnQpID0+IHtcbiAgICAgICAgICB1cGRhdGVEYXRhKCk7XG4gICAgICAgIH0pO1xuKi9cblxuXG5cbiAgICAgICAgJHNjb3BlLiRrZWVwUG9sbGluZyA9ICgpID0+IEt1YmVybmV0ZXMua2VlcFBvbGxpbmdNb2RlbDtcbiAgICAgICAgJHNjb3BlLmZldGNoID0gUG9sbEhlbHBlcnMuc2V0dXBQb2xsaW5nKCRzY29wZSwgKG5leHQ6KCkgPT4gdm9pZCkgPT4ge1xuICAgICAgICAgICRzY29wZS5pdGVtID0gbnVsbDtcbiAgICAgICAgICBpZiAoJHNjb3BlLmlkKSB7XG4gICAgICAgICAgICB2YXIgdXJsID0gS3ViZXJuZXRlcy5idWlsZENvbmZpZ1Jlc3RVcmwoJHNjb3BlLmlkKTtcbiAgICAgICAgICAgIGlmICghJHNjb3BlLmVudGl0eSB8fCBLdWJlcm5ldGVzLmtlZXBQb2xsaW5nTW9kZWwpIHtcbiAgICAgICAgICAgICAgJGh0dHAuZ2V0KHVybCkuXG4gICAgICAgICAgICAgICAgc3VjY2VzcyhmdW5jdGlvbiAoZGF0YSwgc3RhdHVzLCBoZWFkZXJzLCBjb25maWcpIHtcbiAgICAgICAgICAgICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBzb3J0ZWRCdWlsZHMgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICBLdWJlcm5ldGVzLmVucmljaEJ1aWxkQ29uZmlnKGRhdGEsIHNvcnRlZEJ1aWxkcyk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChoYXNPYmplY3RDaGFuZ2VkKGRhdGEsICRzY29wZS5lbnRpdHlDaGFuZ2VkQ2FjaGUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgbG9nLmluZm8oXCJlbnRpdHkgaGFzIGNoYW5nZWQhXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICRzY29wZS5lbnRpdHkgPSBkYXRhO1xuICAgICAgICAgICAgICAgICAgICAgICRzY29wZS5lbnRpdHkuJGJ1aWxkID0gKGRhdGEuJGZhYnJpYzhDb2RlVmlld3MgfHwge30pWydmYWJyaWM4LmxpbmsuYnJvd3NlR29ncy52aWV3J107XG4gICAgICAgICAgICAgICAgICAgICAgJHNjb3BlLm1vZGVsLnNldFByb2plY3QoJHNjb3BlLmVudGl0eSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlRW52aXJvbm1lbnRXYXRjaCgpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgJHNjb3BlLm1vZGVsLmZldGNoZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgQ29yZS4kYXBwbHkoJHNjb3BlKTtcbiAgICAgICAgICAgICAgICAgIG5leHQoKTtcbiAgICAgICAgICAgICAgICB9KS5cbiAgICAgICAgICAgICAgICBlcnJvcihmdW5jdGlvbiAoZGF0YSwgc3RhdHVzLCBoZWFkZXJzLCBjb25maWcpIHtcbiAgICAgICAgICAgICAgICAgIGxvZy53YXJuKFwiRmFpbGVkIHRvIGxvYWQgXCIgKyB1cmwgKyBcIiBcIiArIGRhdGEgKyBcIiBcIiArIHN0YXR1cyk7XG4gICAgICAgICAgICAgICAgICBuZXh0KCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICRzY29wZS5tb2RlbC5mZXRjaGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIG5leHQoKTtcbiAgICAgICAgICAgIENvcmUuJGFwcGx5KCRzY29wZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICAkc2NvcGUuZmV0Y2goKTtcblxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBXZSBoYXZlIHVwZGF0ZWQgdGhlIGVudGl0eSBzbyBsZXRzIG1ha2Ugc3VyZSB3ZSBhcmUgd2F0Y2hpbmcgYWxsIHRoZSBlbnZpcm9ubWVudHMgdG8gZmluZFxuICAgICAgICAgKiB0aGUgcHJvamVjdCB2ZXJzaW9ucyBmb3IgZWFjaCBuYW1lc3BhY2VcbiAgICAgICAgICovXG4gICAgICAgIGZ1bmN0aW9uIHVwZGF0ZUVudmlyb25tZW50V2F0Y2goKSB7XG4gICAgICAgICAgdmFyIHByb2plY3QgPSAkc2NvcGUuZW50aXR5O1xuICAgICAgICAgIGlmIChwcm9qZWN0KSB7XG4gICAgICAgICAgICB2YXIgamVua2luc0pvYiA9IHByb2plY3QuJGplbmtpbnNKb2I7XG4gICAgICAgICAgICBpZiAoamVua2luc0pvYikge1xuICAgICAgICAgICAgICB2YXIgYnVpbGRzVGFiID0gXy5maW5kKCRzY29wZS5zdWJUYWJDb25maWcsIHtpZDogXCJidWlsZHNcIn0pO1xuICAgICAgICAgICAgICBpZiAoYnVpbGRzVGFiKSB7XG4gICAgICAgICAgICAgICAgYnVpbGRzVGFiW1wiaHJlZlwiXSA9IFVybEhlbHBlcnMuam9pbihcIi93b3Jrc3BhY2VzXCIsIEt1YmVybmV0ZXMuY3VycmVudEt1YmVybmV0ZXNOYW1lc3BhY2UoKSwgXCJwcm9qZWN0c1wiLCAkc2NvcGUuaWQsIFwiamVua2luc0pvYlwiLCBqZW5raW5zSm9iKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBhbmd1bGFyLmZvckVhY2gocHJvamVjdC5lbnZpcm9ubWVudHMsIChlbnYpID0+IHtcbiAgICAgICAgICAgICAgdmFyIG5zID0gZW52Lm5hbWVzcGFjZTtcbiAgICAgICAgICAgICAgdmFyIGNhY2hlcyA9ICRzY29wZS5lbnZOU0NhY2hlc1tuc107XG4gICAgICAgICAgICAgIGlmICghY2FjaGVzKSB7XG4gICAgICAgICAgICAgICAgY2FjaGVzID0ge307XG4gICAgICAgICAgICAgICAgJHNjb3BlLmVudk5TQ2FjaGVzW25zXSA9IGNhY2hlcztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBsb2FkUHJvamVjdFZlcnNpb25zKCRzY29wZSwgJGh0dHAsIHByb2plY3QsIGVudiwgbnMsICRzY29wZS5lbnZWZXJzaW9ucywgY2FjaGVzKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfV0pO1xufVxuIiwiLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4uLy4uL2luY2x1ZGVzLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4uLy4uL2t1YmVybmV0ZXMvdHMva3ViZXJuZXRlc0hlbHBlcnMudHNcIi8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwiZGV2ZWxvcGVyRW5yaWNoZXJzLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cImRldmVsb3BlckhlbHBlcnMudHNcIi8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwiZGV2ZWxvcGVyTmF2aWdhdGlvbi50c1wiLz5cblxubW9kdWxlIERldmVsb3BlciB7XG5cbiAgZXhwb3J0IHZhciBQcm9qZWN0c0NvbnRyb2xsZXIgPSBjb250cm9sbGVyKFwiUHJvamVjdHNDb250cm9sbGVyXCIsIFtcIiRzY29wZVwiLCBcIkt1YmVybmV0ZXNNb2RlbFwiLCBcIkt1YmVybmV0ZXNCdWlsZHNcIiwgXCJLdWJlcm5ldGVzU3RhdGVcIiwgXCIkZGlhbG9nXCIsIFwiJHdpbmRvd1wiLCBcIiR0ZW1wbGF0ZUNhY2hlXCIsIFwiJHJvdXRlUGFyYW1zXCIsIFwiJGxvY2F0aW9uXCIsIFwibG9jYWxTdG9yYWdlXCIsIFwiJGh0dHBcIiwgXCIkdGltZW91dFwiLCBcIkt1YmVybmV0ZXNBcGlVUkxcIixcbiAgICAoJHNjb3BlLCBLdWJlcm5ldGVzTW9kZWw6S3ViZXJuZXRlcy5LdWJlcm5ldGVzTW9kZWxTZXJ2aWNlLCBLdWJlcm5ldGVzQnVpbGRzLCBLdWJlcm5ldGVzU3RhdGUsICRkaWFsb2csICR3aW5kb3csICR0ZW1wbGF0ZUNhY2hlLCAkcm91dGVQYXJhbXMsICRsb2NhdGlvbjpuZy5JTG9jYXRpb25TZXJ2aWNlLCBsb2NhbFN0b3JhZ2UsICRodHRwLCAkdGltZW91dCwgS3ViZXJuZXRlc0FwaVVSTCkgPT4ge1xuXG4gICAgICAkc2NvcGUua3ViZXJuZXRlcyA9IEt1YmVybmV0ZXNTdGF0ZTtcbiAgICAgICRzY29wZS5tb2RlbCA9IEt1YmVybmV0ZXNNb2RlbDtcbiAgICAgICRzY29wZS5LdWJlcm5ldGVzQnVpbGRzID0gS3ViZXJuZXRlc0J1aWxkcztcblxuICAgICAgJHNjb3BlLnRhYmxlQ29uZmlnID0ge1xuICAgICAgICBkYXRhOiAnbW9kZWwuYnVpbGRjb25maWdzJyxcbiAgICAgICAgc2hvd1NlbGVjdGlvbkNoZWNrYm94OiB0cnVlLFxuICAgICAgICBlbmFibGVSb3dDbGlja1NlbGVjdGlvbjogZmFsc2UsXG4gICAgICAgIG11bHRpU2VsZWN0OiB0cnVlLFxuICAgICAgICBzZWxlY3RlZEl0ZW1zOiBbXSxcbiAgICAgICAgZmlsdGVyT3B0aW9uczoge1xuICAgICAgICAgIGZpbHRlclRleHQ6ICRsb2NhdGlvbi5zZWFyY2goKVtcInFcIl0gfHwgJydcbiAgICAgICAgfSxcbiAgICAgICAgY29sdW1uRGVmczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGZpZWxkOiAnJG5hbWUnLFxuICAgICAgICAgICAgZGlzcGxheU5hbWU6ICdOYW1lJyxcbiAgICAgICAgICAgIGNlbGxUZW1wbGF0ZTogJHRlbXBsYXRlQ2FjaGUuZ2V0KFwiaWRUZW1wbGF0ZS5odG1sXCIpXG4gICAgICAgICAgfSxcbi8qXG4gICAgICAgICAge1xuICAgICAgICAgICAgZmllbGQ6ICdzcGVjLnNvdXJjZS50eXBlJyxcbiAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAnU291cmNlJ1xuICAgICAgICAgIH0sXG4qL1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGZpZWxkOiAnc3BlYy5zb3VyY2UuZ2l0LnVyaScsXG4gICAgICAgICAgICBkaXNwbGF5TmFtZTogJ1JlcG9zaXRvcnknXG4gICAgICAgICAgfSxcbi8qXG4gICAgICAgICAge1xuICAgICAgICAgICAgZmllbGQ6ICdzcGVjLnN0cmF0ZWd5LnR5cGUnLFxuICAgICAgICAgICAgZGlzcGxheU5hbWU6ICdTdHJhdGVneSdcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGZpZWxkOiAnc3BlYy5zdHJhdGVneS5zdGlTdHJhdGVneS5pbWFnZScsXG4gICAgICAgICAgICBkaXNwbGF5TmFtZTogJ1NvdXJjZSBJbWFnZSdcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGZpZWxkOiAnc3BlYy5vdXRwdXQuaW1hZ2VUYWcnLFxuICAgICAgICAgICAgZGlzcGxheU5hbWU6ICdPdXRwdXQgSW1hZ2UnXG4gICAgICAgICAgfSxcbiovXG4gICAgICAgICAge1xuICAgICAgICAgICAgZmllbGQ6ICdtZXRhZGF0YS5kZXNjcmlwdGlvbicsXG4gICAgICAgICAgICBkaXNwbGF5TmFtZTogJ0Rlc2NyaXB0aW9uJ1xuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgZmllbGQ6ICckY3JlYXRpb25EYXRlJyxcbiAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAnQ3JlYXRlZCcsXG4gICAgICAgICAgICBjZWxsVGVtcGxhdGU6ICR0ZW1wbGF0ZUNhY2hlLmdldChcImNyZWF0aW9uVGltZVRlbXBsYXRlLmh0bWxcIilcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGZpZWxkOiAnJGxhYmVsc1RleHQnLFxuICAgICAgICAgICAgZGlzcGxheU5hbWU6ICdMYWJlbHMnLFxuICAgICAgICAgICAgY2VsbFRlbXBsYXRlOiAkdGVtcGxhdGVDYWNoZS5nZXQoXCJsYWJlbFRlbXBsYXRlLmh0bWxcIilcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH07XG5cbiAgICAgIEt1YmVybmV0ZXMuaW5pdFNoYXJlZCgkc2NvcGUsICRsb2NhdGlvbiwgJGh0dHAsICR0aW1lb3V0LCAkcm91dGVQYXJhbXMsIEt1YmVybmV0ZXNNb2RlbCwgS3ViZXJuZXRlc1N0YXRlLCBLdWJlcm5ldGVzQXBpVVJMKTtcblxuICAgICAgJHNjb3BlLmJyZWFkY3J1bWJDb25maWcgPSBjcmVhdGVQcm9qZWN0QnJlYWRjcnVtYnMoKTtcbiAgICAgICRzY29wZS5zdWJUYWJDb25maWcgPSBEZXZlbG9wZXIuY3JlYXRlV29ya3NwYWNlU3ViTmF2QmFycygpO1xuXG4gICAgICAvLyBUT0RPXG4gICAgICAvLyRzY29wZS5pc0xvZ2dlZEludG9Hb2dzID0gRm9yZ2UuaXNMb2dnZWRJbnRvR29ncztcblxuICAgICAgJHNjb3BlLmRlbGV0ZVByb21wdCA9IChzZWxlY3RlZCkgPT4ge1xuICAgICAgICBVSS5tdWx0aUl0ZW1Db25maXJtQWN0aW9uRGlhbG9nKDxVSS5NdWx0aUl0ZW1Db25maXJtQWN0aW9uT3B0aW9ucz57XG4gICAgICAgICAgY29sbGVjdGlvbjogc2VsZWN0ZWQsXG4gICAgICAgICAgaW5kZXg6ICckbmFtZScsXG4gICAgICAgICAgb25DbG9zZTogKHJlc3VsdDpib29sZWFuKSA9PiB7XG4gICAgICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgICAgIGZ1bmN0aW9uIGRlbGV0ZVNlbGVjdGVkKHNlbGVjdGVkLCBuZXh0KSB7XG4gICAgICAgICAgICAgICAgaWYgKG5leHQpIHtcbiAgICAgICAgICAgICAgICAgIGRlbGV0ZUVudGl0eShuZXh0LCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZVNlbGVjdGVkKHNlbGVjdGVkLCBzZWxlY3RlZC5zaGlmdCgpKTtcbiAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAvLyBUT0RPXG4gICAgICAgICAgICAgICAgICAvLyB1cGRhdGVEYXRhKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgZGVsZXRlU2VsZWN0ZWQoc2VsZWN0ZWQsIHNlbGVjdGVkLnNoaWZ0KCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgdGl0bGU6ICdEZWxldGUgUHJvamVjdHMnLFxuICAgICAgICAgIGFjdGlvbjogJ1RoZSBmb2xsb3dpbmcgUHJvamVjdHMgd2lsbCBiZSBkZWxldGVkOicsXG4gICAgICAgICAgb2tUZXh0OiAnRGVsZXRlJyxcbiAgICAgICAgICBva0NsYXNzOiAnYnRuLWRhbmdlcicsXG4gICAgICAgICAgY3VzdG9tOiBcIlRoaXMgb3BlcmF0aW9uIGlzIHBlcm1hbmVudCBvbmNlIGNvbXBsZXRlZCFcIixcbiAgICAgICAgICBjdXN0b21DbGFzczogXCJhbGVydCBhbGVydC13YXJuaW5nXCJcbiAgICAgICAgfSkub3BlbigpO1xuICAgICAgfTtcblxuICAgICAgZnVuY3Rpb24gZGVsZXRlRW50aXR5KHNlbGVjdGlvbiwgbmV4dENhbGxiYWNrKSB7XG4gICAgICAgIHZhciBuYW1lID0gKHNlbGVjdGlvbiB8fCB7fSkuJG5hbWU7XG4gICAgICAgIHZhciBqZW5raW5zSm9iID0gc2VsZWN0aW9uLiRqZW5raW5zSm9iO1xuICAgICAgICB2YXIgcHVibGljSmVua2luc1VybCA9IGplbmtpbnNMaW5rKCk7XG4gICAgICAgIC8vdmFyIGplbmtpbnNVcmwgPSBDb3JlLnBhdGhHZXQoc2VsZWN0aW9uLCBbXCIkZmFicmljOFZpZXdzXCIsIFwiZmFicmljOC5saW5rLmplbmtpbnMuam9iXCIsIFwidXJsXCJdKTtcbiAgICAgICAgaWYgKG5hbWUpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhcIkFib3V0IHRvIGRlbGV0ZSBidWlsZCBjb25maWc6IFwiICsgbmFtZSk7XG4gICAgICAgICAgdmFyIHVybCA9IEt1YmVybmV0ZXMuYnVpbGRDb25maWdSZXN0VXJsKG5hbWUpO1xuICAgICAgICAgICRodHRwLmRlbGV0ZSh1cmwpLlxuICAgICAgICAgICAgc3VjY2VzcyhmdW5jdGlvbiAoZGF0YSwgc3RhdHVzLCBoZWFkZXJzLCBjb25maWcpIHtcbiAgICAgICAgICAgICAgbmV4dENhbGxiYWNrKCk7XG4gICAgICAgICAgICB9KS5cbiAgICAgICAgICAgIGVycm9yKGZ1bmN0aW9uIChkYXRhLCBzdGF0dXMsIGhlYWRlcnMsIGNvbmZpZykge1xuICAgICAgICAgICAgICBsb2cud2FybihcIkZhaWxlZCB0byBkZWxldGUgYnVpbGQgY29uZmlnIG9uIFwiICsgdXJsICsgXCIgXCIgKyBkYXRhICsgXCIgXCIgKyBzdGF0dXMpO1xuICAgICAgICAgICAgICBuZXh0Q2FsbGJhY2soKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnNvbGUubG9nKFwid2FybmluZzogbm8gbmFtZSBmb3Igc2VsZWN0aW9uOiBcIiArIGFuZ3VsYXIudG9Kc29uKHNlbGVjdGlvbikpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGplbmtpbnNKb2IgJiYgcHVibGljSmVua2luc1VybCkge1xuICAgICAgICAgIHZhciB1cmwgPSBLdWJlcm5ldGVzLmt1YmVybmV0ZXNQcm94eVVybEZvclNlcnZpY2VDdXJyZW50TmFtZXNwYWNlKGplbmtpbnNTZXJ2aWNlTmFtZSwgVXJsSGVscGVycy5qb2luKFwiam9iXCIsIGplbmtpbnNKb2IsIFwiZG9EZWxldGVcIikpO1xuICAgICAgICAgIHZhciBib2R5ID0gXCJcIjtcbiAgICAgICAgICB2YXIgY29uZmlnID0ge1xuICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAnQ29udGVudC1UeXBlJzogXCJ0ZXh0L3BsYWluXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9O1xuICAgICAgICAgIGxvZy5pbmZvKFwicG9zdGluZyB0byBqZW5raW5zVXJsOiBcIiArIHVybCk7XG4gICAgICAgICAgJGh0dHAucG9zdCh1cmwsIGJvZHksIGNvbmZpZykuXG4gICAgICAgICAgICBzdWNjZXNzKGZ1bmN0aW9uIChkYXRhLCBzdGF0dXMsIGhlYWRlcnMsIGNvbmZpZykge1xuICAgICAgICAgICAgICBsb2cuaW5mbyhcIk1hbmFnZWQgdG8gZGVsZXRlIFwiICsgdXJsKTtcbiAgICAgICAgICAgIH0pLlxuICAgICAgICAgICAgZXJyb3IoZnVuY3Rpb24gKGRhdGEsIHN0YXR1cywgaGVhZGVycywgY29uZmlnKSB7XG4gICAgICAgICAgICAgIGxvZy53YXJuKFwiRmFpbGVkIHRvIGRlbGV0ZSBqZW5raW5zIGpvYiBhdCBcIiArIHVybCArIFwiIFwiICsgZGF0YSArIFwiIFwiICsgc3RhdHVzKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICRzY29wZS4ka2VlcFBvbGxpbmcgPSAoKSA9PiBLdWJlcm5ldGVzLmtlZXBQb2xsaW5nTW9kZWw7XG4gICAgICAkc2NvcGUuZmV0Y2ggPSBQb2xsSGVscGVycy5zZXR1cFBvbGxpbmcoJHNjb3BlLCAobmV4dDooKSA9PiB2b2lkKSA9PiB7XG4gICAgICAgIHZhciB1cmwgPSBLdWJlcm5ldGVzLmJ1aWxkQ29uZmlnc1Jlc3RVUkwoKTtcbiAgICAgICAgJGh0dHAuZ2V0KHVybCkuXG4gICAgICAgICAgc3VjY2VzcyhmdW5jdGlvbiAoZGF0YSwgc3RhdHVzLCBoZWFkZXJzLCBjb25maWcpIHtcbiAgICAgICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICAgIC8vY29uc29sZS5sb2coXCJnb3QgZGF0YSBcIiArIGFuZ3VsYXIudG9Kc29uKGRhdGEsIHRydWUpKTtcbiAgICAgICAgICAgICAgdmFyIHNvcnRlZEJ1aWxkcyA9IG51bGw7XG4gICAgICAgICAgICAgICRzY29wZS5idWlsZENvbmZpZ3MgPSBLdWJlcm5ldGVzLmVucmljaEJ1aWxkQ29uZmlncyhkYXRhLml0ZW1zLCBzb3J0ZWRCdWlsZHMpO1xuICAgICAgICAgICAgICAkc2NvcGUubW9kZWwuZmV0Y2hlZCA9IHRydWU7XG4gICAgICAgICAgICAgIENvcmUuJGFwcGx5KCRzY29wZSk7XG4gICAgICAgICAgICAgIG5leHQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KS5cbiAgICAgICAgICBlcnJvcihmdW5jdGlvbiAoZGF0YSwgc3RhdHVzLCBoZWFkZXJzLCBjb25maWcpIHtcbiAgICAgICAgICAgIGxvZy53YXJuKFwiRmFpbGVkIHRvIGxvYWQgXCIgKyB1cmwgKyBcIiBcIiArIGRhdGEgKyBcIiBcIiArIHN0YXR1cyk7XG4gICAgICAgICAgICBuZXh0KCk7XG4gICAgICAgICAgfSk7XG4gICAgICB9KTtcblxuICAgICAgJHNjb3BlLmZldGNoKCk7XG4gICAgfV0pO1xufVxuIiwiLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4uLy4uL2luY2x1ZGVzLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4uLy4uL2t1YmVybmV0ZXMvdHMva3ViZXJuZXRlc0hlbHBlcnMudHNcIi8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwiZGV2ZWxvcGVyRW5yaWNoZXJzLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cImRldmVsb3BlckhlbHBlcnMudHNcIi8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwiZGV2ZWxvcGVyTmF2aWdhdGlvbi50c1wiLz5cblxubW9kdWxlIERldmVsb3BlciB7XG5cbiAgZXhwb3J0IHZhciBXb3Jrc3BhY2VDb250cm9sbGVyID0gY29udHJvbGxlcihcIldvcmtzcGFjZUNvbnRyb2xsZXJcIixcbiAgICBbXCIkc2NvcGVcIiwgXCJLdWJlcm5ldGVzTW9kZWxcIiwgXCJLdWJlcm5ldGVzU3RhdGVcIiwgXCJLdWJlcm5ldGVzU2NoZW1hXCIsIFwiJHRlbXBsYXRlQ2FjaGVcIiwgXCIkbG9jYXRpb25cIiwgXCIkcm91dGVQYXJhbXNcIiwgXCIkaHR0cFwiLCBcIiR0aW1lb3V0XCIsIFwiS3ViZXJuZXRlc0FwaVVSTFwiLFxuICAgICAgKCRzY29wZSwgS3ViZXJuZXRlc01vZGVsOkt1YmVybmV0ZXMuS3ViZXJuZXRlc01vZGVsU2VydmljZSwgS3ViZXJuZXRlc1N0YXRlLCBLdWJlcm5ldGVzU2NoZW1hLFxuICAgICAgICR0ZW1wbGF0ZUNhY2hlOm5nLklUZW1wbGF0ZUNhY2hlU2VydmljZSwgJGxvY2F0aW9uOm5nLklMb2NhdGlvblNlcnZpY2UsICRyb3V0ZVBhcmFtcywgJGh0dHAsICR0aW1lb3V0LCBLdWJlcm5ldGVzQXBpVVJMKSA9PiB7XG5cbiAgICAgICAgJHNjb3BlLmt1YmVybmV0ZXMgPSBLdWJlcm5ldGVzU3RhdGU7XG4gICAgICAgICRzY29wZS5tb2RlbCA9IEt1YmVybmV0ZXNNb2RlbDtcbiAgICAgICAgJHNjb3BlLmlkID0gJHJvdXRlUGFyYW1zW1wibmFtZXNwYWNlXCJdO1xuICAgICAgICAkc2NvcGUuc2NoZW1hID0gS3ViZXJuZXRlc1NjaGVtYTtcbiAgICAgICAgJHNjb3BlLmNvbmZpZyA9IEt1YmVybmV0ZXNTY2hlbWEuZGVmaW5pdGlvbnMua3ViZXJuZXRlc19OYW1lc3BhY2U7XG5cbiAgICAgICAgS3ViZXJuZXRlcy5pbml0U2hhcmVkKCRzY29wZSwgJGxvY2F0aW9uLCAkaHR0cCwgJHRpbWVvdXQsICRyb3V0ZVBhcmFtcywgS3ViZXJuZXRlc01vZGVsLCBLdWJlcm5ldGVzU3RhdGUsIEt1YmVybmV0ZXNBcGlVUkwpO1xuICAgICAgICAkc2NvcGUuYnJlYWRjcnVtYkNvbmZpZyA9IGNyZWF0ZVdvcmtzcGFjZUJyZWFkY3J1bWJzKCk7XG4gICAgICAgICRzY29wZS5zdWJUYWJDb25maWcgPSBEZXZlbG9wZXIuY3JlYXRlV29ya3NwYWNlU3ViTmF2QmFycygpO1xuXG4gICAgICAgICRzY29wZS4ka2VlcFBvbGxpbmcgPSAoKSA9PiBLdWJlcm5ldGVzLmtlZXBQb2xsaW5nTW9kZWw7XG4gICAgICAgICRzY29wZS5mZXRjaCA9IFBvbGxIZWxwZXJzLnNldHVwUG9sbGluZygkc2NvcGUsIChuZXh0OigpID0+IHZvaWQpID0+IHtcbiAgICAgICAgICAkc2NvcGUuaXRlbSA9IG51bGw7XG4gICAgICAgICAgaWYgKCRzY29wZS5pZCkge1xuICAgICAgICAgICAgdmFyIHVybCA9IFVybEhlbHBlcnMuam9pbihLdWJlcm5ldGVzLnJlc291cmNlc1VyaUZvcktpbmQoXCJQcm9qZWN0c1wiKSwgJHNjb3BlLmlkKTtcbiAgICAgICAgICAgIGxvZy5pbmZvKFwiTG9hZGluZyB1cmw6IFwiICsgdXJsKTtcbiAgICAgICAgICAgICRodHRwLmdldCh1cmwpLlxuICAgICAgICAgICAgICBzdWNjZXNzKGZ1bmN0aW9uIChkYXRhLCBzdGF0dXMsIGhlYWRlcnMsIGNvbmZpZykge1xuICAgICAgICAgICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICAgICAgICAkc2NvcGUuZW50aXR5ID0gZW5yaWNoV29ya3NwYWNlKGRhdGEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAkc2NvcGUubW9kZWwuZmV0Y2hlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgQ29yZS4kYXBwbHkoJHNjb3BlKTtcbiAgICAgICAgICAgICAgICBuZXh0KCk7XG4gICAgICAgICAgICAgIH0pLlxuICAgICAgICAgICAgICBlcnJvcihmdW5jdGlvbiAoZGF0YSwgc3RhdHVzLCBoZWFkZXJzLCBjb25maWcpIHtcbiAgICAgICAgICAgICAgICBsb2cud2FybihcIkZhaWxlZCB0byBsb2FkIFwiICsgdXJsICsgXCIgXCIgKyBkYXRhICsgXCIgXCIgKyBzdGF0dXMpO1xuICAgICAgICAgICAgICAgIG5leHQoKTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICRzY29wZS5tb2RlbC5mZXRjaGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIENvcmUuJGFwcGx5KCRzY29wZSk7XG4gICAgICAgICAgICBuZXh0KCk7XG5cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgICRzY29wZS5mZXRjaCgpO1xuICAgICAgfV0pO1xufVxuIiwiLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4uLy4uL2luY2x1ZGVzLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4uLy4uL2t1YmVybmV0ZXMvdHMva3ViZXJuZXRlc0hlbHBlcnMudHNcIi8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwiZGV2ZWxvcGVyRW5yaWNoZXJzLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cImRldmVsb3BlckhlbHBlcnMudHNcIi8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwiZGV2ZWxvcGVyTmF2aWdhdGlvbi50c1wiLz5cblxubW9kdWxlIERldmVsb3BlciB7XG5cbiAgZXhwb3J0IHZhciBXb3Jrc3BhY2VzQ29udHJvbGxlciA9IGNvbnRyb2xsZXIoXCJXb3Jrc3BhY2VzQ29udHJvbGxlclwiLFxuICAgIFtcIiRzY29wZVwiLCBcIkt1YmVybmV0ZXNNb2RlbFwiLCBcIkt1YmVybmV0ZXNTZXJ2aWNlc1wiLCBcIkt1YmVybmV0ZXNQb2RzXCIsIFwiS3ViZXJuZXRlc1N0YXRlXCIsIFwiJHRlbXBsYXRlQ2FjaGVcIiwgXCIkbG9jYXRpb25cIiwgXCIkcm91dGVQYXJhbXNcIiwgXCIkaHR0cFwiLCBcIiR0aW1lb3V0XCIsIFwiS3ViZXJuZXRlc0FwaVVSTFwiLFxuICAgICAgKCRzY29wZSwgS3ViZXJuZXRlc01vZGVsOkt1YmVybmV0ZXMuS3ViZXJuZXRlc01vZGVsU2VydmljZSwgS3ViZXJuZXRlc1NlcnZpY2VzOm5nLnJlc291cmNlLklSZXNvdXJjZUNsYXNzLCBLdWJlcm5ldGVzUG9kczpuZy5yZXNvdXJjZS5JUmVzb3VyY2VDbGFzcywgS3ViZXJuZXRlc1N0YXRlLFxuICAgICAgICR0ZW1wbGF0ZUNhY2hlOm5nLklUZW1wbGF0ZUNhY2hlU2VydmljZSwgJGxvY2F0aW9uOm5nLklMb2NhdGlvblNlcnZpY2UsICRyb3V0ZVBhcmFtcywgJGh0dHAsICR0aW1lb3V0LCBLdWJlcm5ldGVzQXBpVVJMKSA9PiB7XG5cbiAgICAgICAgJHNjb3BlLmt1YmVybmV0ZXMgPSBLdWJlcm5ldGVzU3RhdGU7XG4gICAgICAgICRzY29wZS5tb2RlbCA9IEt1YmVybmV0ZXNNb2RlbDtcblxuICAgICAgICBDb250cm9sbGVySGVscGVycy5iaW5kTW9kZWxUb1NlYXJjaFBhcmFtKCRzY29wZSwgJGxvY2F0aW9uLCAnbW9kZScsICdtb2RlJywgJ2xpc3QnKTtcblxuICAgICAgICAkc2NvcGUuZGV2ZWxvcGVyUGVyc3BlY3RpdmUgPSBDb3JlLnRyaW1MZWFkaW5nKCRsb2NhdGlvbi51cmwoKSwgXCIvXCIpLnN0YXJ0c1dpdGgoXCJ3b3Jrc3BhY2VcIik7XG5cbiAgICAgICAgJHNjb3BlLnRhYmxlQ29uZmlnID0ge1xuICAgICAgICAgIGRhdGE6ICdtb2RlbC53b3Jrc3BhY2VzJyxcbiAgICAgICAgICBzaG93U2VsZWN0aW9uQ2hlY2tib3g6IHRydWUsXG4gICAgICAgICAgZW5hYmxlUm93Q2xpY2tTZWxlY3Rpb246IGZhbHNlLFxuICAgICAgICAgIG11bHRpU2VsZWN0OiB0cnVlLFxuICAgICAgICAgIHNlbGVjdGVkSXRlbXM6IFtdLFxuICAgICAgICAgIGZpbHRlck9wdGlvbnM6IHtcbiAgICAgICAgICAgIGZpbHRlclRleHQ6ICRsb2NhdGlvbi5zZWFyY2goKVtcInFcIl0gfHwgJydcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNvbHVtbkRlZnM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgZmllbGQ6ICckbmFtZScsXG4gICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAnTmFtZScsXG4gICAgICAgICAgICAgIGNlbGxUZW1wbGF0ZTogJHRlbXBsYXRlQ2FjaGUuZ2V0KCRzY29wZS5kZXZlbG9wZXJQZXJzcGVjdGl2ZSA/IFwidmlld05hbWVzcGFjZVByb2plY3RzVGVtcGxhdGUuaHRtbFwiIDogXCJ2aWV3TmFtZXNwYWNlVGVtcGxhdGUuaHRtbFwiKVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgZmllbGQ6ICdtZXRhZGF0YS5kZXNjcmlwdGlvbicsXG4gICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAnRGVzY3JpcHRpb24nXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBmaWVsZDogJyRjcmVhdGlvbkRhdGUnLFxuICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogJ0NyZWF0ZWQnLFxuICAgICAgICAgICAgICBjZWxsVGVtcGxhdGU6ICR0ZW1wbGF0ZUNhY2hlLmdldChcImNyZWF0aW9uVGltZVRlbXBsYXRlLmh0bWxcIilcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGZpZWxkOiAnJGxhYmVsc1RleHQnLFxuICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogJ0xhYmVscycsXG4gICAgICAgICAgICAgIGNlbGxUZW1wbGF0ZTogJHRlbXBsYXRlQ2FjaGUuZ2V0KFwibGFiZWxUZW1wbGF0ZS5odG1sXCIpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgXVxuICAgICAgICB9O1xuXG4gICAgICAgIEt1YmVybmV0ZXMuaW5pdFNoYXJlZCgkc2NvcGUsICRsb2NhdGlvbiwgJGh0dHAsICR0aW1lb3V0LCAkcm91dGVQYXJhbXMsIEt1YmVybmV0ZXNNb2RlbCwgS3ViZXJuZXRlc1N0YXRlLCBLdWJlcm5ldGVzQXBpVVJMKTtcblxuICAgICAgICAkc2NvcGUuYnJlYWRjcnVtYkNvbmZpZyA9IGNyZWF0ZVdvcmtzcGFjZXNCcmVhZGNydW1icygkc2NvcGUuZGV2ZWxvcGVyUGVyc3BlY3RpdmUpO1xuICAgICAgICAkc2NvcGUuc3ViVGFiQ29uZmlnID0gRGV2ZWxvcGVyLmNyZWF0ZVdvcmtzcGFjZXNTdWJOYXZCYXJzKCRzY29wZS5kZXZlbG9wZXJQZXJzcGVjdGl2ZSk7XG5cbiAgICAgICAgJHNjb3BlLiRrZWVwUG9sbGluZyA9ICgpID0+IEt1YmVybmV0ZXMua2VlcFBvbGxpbmdNb2RlbDtcbiAgICAgICAgJHNjb3BlLmZldGNoID0gUG9sbEhlbHBlcnMuc2V0dXBQb2xsaW5nKCRzY29wZSwgKG5leHQ6KCkgPT4gdm9pZCkgPT4ge1xuICAgICAgICAgIHZhciB1cmwgPSBLdWJlcm5ldGVzLnJlc291cmNlc1VyaUZvcktpbmQoXCJQcm9qZWN0c1wiKTtcbiAgICAgICAgICAkaHR0cC5nZXQodXJsKS5cbiAgICAgICAgICAgIHN1Y2Nlc3MoZnVuY3Rpb24gKGRhdGEsIHN0YXR1cywgaGVhZGVycywgY29uZmlnKSB7XG4gICAgICAgICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICAgICAgJHNjb3BlLm1vZGVsLndvcmtzcGFjZXMgPSBlbnJpY2hXb3Jrc3BhY2VzKGRhdGEuaXRlbXMpO1xuICAgICAgICAgICAgICAgICRzY29wZS5tb2RlbC5mZXRjaGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBDb3JlLiRhcHBseSgkc2NvcGUpO1xuICAgICAgICAgICAgICBuZXh0KCk7XG4gICAgICAgICAgICB9KS5cbiAgICAgICAgICAgIGVycm9yKGZ1bmN0aW9uIChkYXRhLCBzdGF0dXMsIGhlYWRlcnMsIGNvbmZpZykge1xuICAgICAgICAgICAgICBsb2cud2FybihcIkZhaWxlZCB0byBsb2FkIFwiICsgdXJsICsgXCIgXCIgKyBkYXRhICsgXCIgXCIgKyBzdGF0dXMpO1xuICAgICAgICAgICAgICBDb3JlLiRhcHBseSgkc2NvcGUpO1xuICAgICAgICAgICAgICBuZXh0KCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgJHNjb3BlLmZldGNoKCk7XG5cbiAgICAgIH1dKTtcbn1cbiIsIi8vLyA8cmVmZXJlbmNlIHBhdGg9XCIuLi8uLi9pbmNsdWRlcy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJrdWJlcm5ldGVzSGVscGVycy50c1wiLz5cblxuZGVjbGFyZSB2YXIgT1NPQXV0aENvbmZpZzphbnk7XG5kZWNsYXJlIHZhciBHb29nbGVPQXV0aENvbmZpZzphbnk7XG5kZWNsYXJlIHZhciBLZXljbG9ha0NvbmZpZzphbnk7XG5cbm1vZHVsZSBLdWJlcm5ldGVzIHtcblxuICBleHBvcnQgdmFyIF9tb2R1bGUgPSBhbmd1bGFyLm1vZHVsZShwbHVnaW5OYW1lLCBbJ2hhd3Rpby1jb3JlJywgJ2hhd3Rpby11aScsICdyZXN0bW9kJywgJ3VpLmNvZGVtaXJyb3InLCAna3ViZXJuZXRlc1VJJ10pO1xuICBleHBvcnQgdmFyIGNvbnRyb2xsZXIgPSBQbHVnaW5IZWxwZXJzLmNyZWF0ZUNvbnRyb2xsZXJGdW5jdGlvbihfbW9kdWxlLCBwbHVnaW5OYW1lKTtcbiAgZXhwb3J0IHZhciByb3V0ZSA9IFBsdWdpbkhlbHBlcnMuY3JlYXRlUm91dGluZ0Z1bmN0aW9uKHRlbXBsYXRlUGF0aCk7XG5cbiAgX21vZHVsZS5jb25maWcoWyckcm91dGVQcm92aWRlcicsICgkcm91dGVQcm92aWRlcjpuZy5yb3V0ZS5JUm91dGVQcm92aWRlcikgPT4ge1xuXG4gICAgJHJvdXRlUHJvdmlkZXJcbiAgICAgIC53aGVuKFVybEhlbHBlcnMuam9pbihjb250ZXh0LCAnL3BvZHMnKSwgcm91dGUoJ3BvZHMuaHRtbCcsIGZhbHNlKSlcbiAgICAgIC53aGVuKFVybEhlbHBlcnMuam9pbihjb250ZXh0LCAncmVwbGljYXRpb25Db250cm9sbGVycycpLCByb3V0ZSgncmVwbGljYXRpb25Db250cm9sbGVycy5odG1sJywgZmFsc2UpKVxuICAgICAgLndoZW4oVXJsSGVscGVycy5qb2luKGNvbnRleHQsICdzZXJ2aWNlcycpLCByb3V0ZSgnc2VydmljZXMuaHRtbCcsIGZhbHNlKSlcbiAgICAgIC53aGVuKFVybEhlbHBlcnMuam9pbihjb250ZXh0LCAnZXZlbnRzJyksIHJvdXRlKCdldmVudHMuaHRtbCcsIGZhbHNlKSlcbiAgICAgIC53aGVuKFVybEhlbHBlcnMuam9pbihjb250ZXh0LCAnYXBwcycpLCByb3V0ZSgnYXBwcy5odG1sJywgZmFsc2UpKVxuICAgICAgLndoZW4oVXJsSGVscGVycy5qb2luKGNvbnRleHQsICdhcHBzLzpuYW1lc3BhY2UnKSwgcm91dGUoJ2FwcHMuaHRtbCcsIGZhbHNlKSlcbiAgICAgIC53aGVuKFVybEhlbHBlcnMuam9pbihjb250ZXh0LCAndGVtcGxhdGVzJyksIHJvdXRlKCd0ZW1wbGF0ZXMuaHRtbCcsIGZhbHNlKSlcbiAgICAgIC53aGVuKFVybEhlbHBlcnMuam9pbihjb250ZXh0LCAnaG9zdHMnKSwgcm91dGUoJ2hvc3RzLmh0bWwnLCBmYWxzZSkpXG4gICAgICAud2hlbihVcmxIZWxwZXJzLmpvaW4oY29udGV4dCwgJ2hvc3RzLzppZCcpLCByb3V0ZSgnaG9zdC5odG1sJywgdHJ1ZSkpXG4gICAgICAud2hlbihVcmxIZWxwZXJzLmpvaW4oY29udGV4dCwgJ3BpcGVsaW5lcycpLCByb3V0ZSgncGlwZWxpbmVzLmh0bWwnLCBmYWxzZSkpXG4gICAgICAud2hlbihVcmxIZWxwZXJzLmpvaW4oY29udGV4dCwgJ292ZXJ2aWV3JyksIHJvdXRlKCdvdmVydmlldy5odG1sJywgdHJ1ZSkpXG4gICAgICAud2hlbihjb250ZXh0LCB7cmVkaXJlY3RUbzogXCIvd29ya3NwYWNlc1wifSk7XG5cblxuICAgIGFuZ3VsYXIuZm9yRWFjaChbY29udGV4dCwgXCIvd29ya3NwYWNlcy86d29ya3NwYWNlL3Byb2plY3RzLzpwcm9qZWN0XCJdLCAoY29udGV4dCkgPT4ge1xuICAgICAgJHJvdXRlUHJvdmlkZXJcbiAgICAgICAgLndoZW4oVXJsSGVscGVycy5qb2luKGNvbnRleHQsICcvbmFtZXNwYWNlLzpuYW1lc3BhY2UvcG9kQ3JlYXRlJyksIHJvdXRlKCdwb2RDcmVhdGUuaHRtbCcsIGZhbHNlKSlcbiAgICAgICAgLndoZW4oVXJsSGVscGVycy5qb2luKGNvbnRleHQsICcvbmFtZXNwYWNlLzpuYW1lc3BhY2UvcG9kRWRpdC86aWQnKSwgcm91dGUoJ3BvZEVkaXQuaHRtbCcsIGZhbHNlKSlcbiAgICAgICAgLndoZW4oVXJsSGVscGVycy5qb2luKGNvbnRleHQsICcvbmFtZXNwYWNlLzpuYW1lc3BhY2UvcG9kcycpLCByb3V0ZSgncG9kcy5odG1sJywgZmFsc2UpKVxuICAgICAgICAud2hlbihVcmxIZWxwZXJzLmpvaW4oY29udGV4dCwgJy9uYW1lc3BhY2UvOm5hbWVzcGFjZS9wb2RzLzppZCcpLCByb3V0ZSgncG9kLmh0bWwnLCBmYWxzZSkpXG4gICAgICAgIC53aGVuKFVybEhlbHBlcnMuam9pbihjb250ZXh0LCAnL25hbWVzcGFjZS86bmFtZXNwYWNlL3JlcGxpY2F0aW9uQ29udHJvbGxlcnMnKSwgcm91dGUoJ3JlcGxpY2F0aW9uQ29udHJvbGxlcnMuaHRtbCcsIGZhbHNlKSlcbiAgICAgICAgLndoZW4oVXJsSGVscGVycy5qb2luKGNvbnRleHQsICcvbmFtZXNwYWNlLzpuYW1lc3BhY2UvcmVwbGljYXRpb25Db250cm9sbGVycy86aWQnKSwgcm91dGUoJ3JlcGxpY2F0aW9uQ29udHJvbGxlci5odG1sJywgZmFsc2UpKVxuICAgICAgICAud2hlbihVcmxIZWxwZXJzLmpvaW4oY29udGV4dCwgJy9uYW1lc3BhY2UvOm5hbWVzcGFjZS9yZXBsaWNhdGlvbkNvbnRyb2xsZXJDcmVhdGUnKSwgcm91dGUoJ3JlcGxpY2F0aW9uQ29udHJvbGxlckNyZWF0ZS5odG1sJywgZmFsc2UpKVxuICAgICAgICAud2hlbihVcmxIZWxwZXJzLmpvaW4oY29udGV4dCwgJy9uYW1lc3BhY2UvOm5hbWVzcGFjZS9yZXBsaWNhdGlvbkNvbnRyb2xsZXJFZGl0LzppZCcpLCByb3V0ZSgncmVwbGljYXRpb25Db250cm9sbGVyRWRpdC5odG1sJywgZmFsc2UpKVxuICAgICAgICAud2hlbihVcmxIZWxwZXJzLmpvaW4oY29udGV4dCwgJy9uYW1lc3BhY2UvOm5hbWVzcGFjZS9zZXJ2aWNlcycpLCByb3V0ZSgnc2VydmljZXMuaHRtbCcsIGZhbHNlKSlcbiAgICAgICAgLndoZW4oVXJsSGVscGVycy5qb2luKGNvbnRleHQsICcvbmFtZXNwYWNlLzpuYW1lc3BhY2Uvc2VydmljZXMvOmlkJyksIHJvdXRlKCdzZXJ2aWNlLmh0bWwnLCBmYWxzZSkpXG4gICAgICAgIC53aGVuKFVybEhlbHBlcnMuam9pbihjb250ZXh0LCAnL25hbWVzcGFjZS86bmFtZXNwYWNlL3NlcnZpY2VDcmVhdGUnKSwgcm91dGUoJ3NlcnZpY2VDcmVhdGUuaHRtbCcsIGZhbHNlKSlcbiAgICAgICAgLndoZW4oVXJsSGVscGVycy5qb2luKGNvbnRleHQsICcvbmFtZXNwYWNlLzpuYW1lc3BhY2Uvc2VydmljZUVkaXQvOmlkJyksIHJvdXRlKCdzZXJ2aWNlRWRpdC5odG1sJywgZmFsc2UpKVxuICAgICAgICAud2hlbihVcmxIZWxwZXJzLmpvaW4oY29udGV4dCwgJy9uYW1lc3BhY2UvOm5hbWVzcGFjZS9ldmVudHMnKSwgcm91dGUoJ2V2ZW50cy5odG1sJywgZmFsc2UpKVxuICAgICAgICAud2hlbihVcmxIZWxwZXJzLmpvaW4oY29udGV4dCwgJy9uYW1lc3BhY2UvOm5hbWVzcGFjZS9hcHBzJyksIHJvdXRlKCdhcHBzLmh0bWwnLCBmYWxzZSkpXG4gICAgICAgIC53aGVuKFVybEhlbHBlcnMuam9pbihjb250ZXh0LCAnL25hbWVzcGFjZS86bmFtZXNwYWNlL3RlbXBsYXRlcy86dGFyZ2V0TmFtZXNwYWNlJyksIHJvdXRlKCd0ZW1wbGF0ZXMuaHRtbCcsIGZhbHNlKSlcbiAgICAgICAgLndoZW4oVXJsSGVscGVycy5qb2luKGNvbnRleHQsICcvbmFtZXNwYWNlLzpuYW1lc3BhY2UnKSwgcm91dGUoJ2FwcHMuaHRtbCcsIGZhbHNlKSlcbiAgICAgICAgLndoZW4oVXJsSGVscGVycy5qb2luKGNvbnRleHQsICdidWlsZHMnKSwgcm91dGUoJ2J1aWxkcy5odG1sJywgZmFsc2UpKVxuICAgICAgICAud2hlbihVcmxIZWxwZXJzLmpvaW4oY29udGV4dCwgJ2J1aWxkcy86aWQnKSwgcm91dGUoJ2J1aWxkLmh0bWwnLCB0cnVlKSlcbiAgICAgICAgLndoZW4oVXJsSGVscGVycy5qb2luKGNvbnRleHQsICdidWlsZExvZ3MvOmlkJyksIHJvdXRlKCdidWlsZExvZ3MuaHRtbCcsIHRydWUpKVxuICAgICAgICAud2hlbihVcmxIZWxwZXJzLmpvaW4oY29udGV4dCwgJ2J1aWxkQ29uZmlncycpLCByb3V0ZSgnYnVpbGRDb25maWdzLmh0bWwnLCBmYWxzZSkpXG4gICAgICAgIC53aGVuKFVybEhlbHBlcnMuam9pbihjb250ZXh0LCAnYnVpbGRDb25maWdzLzppZCcpLCByb3V0ZSgnYnVpbGRDb25maWcuaHRtbCcsIHRydWUpKVxuICAgICAgICAud2hlbihVcmxIZWxwZXJzLmpvaW4oY29udGV4dCwgJ2J1aWxkQ29uZmlnRWRpdC86aWQnKSwgcm91dGUoJ2J1aWxkQ29uZmlnRWRpdC5odG1sJywgdHJ1ZSkpXG4gICAgICAgIC53aGVuKFVybEhlbHBlcnMuam9pbihjb250ZXh0LCAnYnVpbGRDb25maWdDcmVhdGUnKSwgcm91dGUoJ2J1aWxkQ29uZmlnQ3JlYXRlLmh0bWwnLCB0cnVlKSlcbiAgICAgICAgLndoZW4oVXJsSGVscGVycy5qb2luKGNvbnRleHQsICdkZXBsb3ltZW50Q29uZmlncycpLCByb3V0ZSgnZGVwbG95bWVudENvbmZpZ3MuaHRtbCcsIGZhbHNlKSlcbiAgICAgICAgLndoZW4oVXJsSGVscGVycy5qb2luKGNvbnRleHQsICdkZXBsb3ltZW50Q29uZmlncy86aWQnKSwgcm91dGUoJ2RlcGxveW1lbnRDb25maWcuaHRtbCcsIHRydWUpKVxuICAgICAgICAud2hlbihVcmxIZWxwZXJzLmpvaW4oY29udGV4dCwgJ2ltYWdlUmVwb3NpdG9yaWVzJyksIHJvdXRlKCdpbWFnZVJlcG9zaXRvcmllcy5odG1sJywgZmFsc2UpKVxuICAgIH0pO1xuXG4gICAgYW5ndWxhci5mb3JFYWNoKFtjb250ZXh0LCBcIi93b3Jrc3BhY2VzLzp3b3Jrc3BhY2VcIiwgXCIvd29ya3NwYWNlcy86d29ya3NwYWNlL3Byb2plY3RzLzpwcm9qZWN0XCJdLCAoY29udGV4dCkgPT4ge1xuICAgICAgJHJvdXRlUHJvdmlkZXJcbiAgICAgICAgLndoZW4oVXJsSGVscGVycy5qb2luKGNvbnRleHQsICdidWlsZENvbmZpZ0VkaXQnKSwgcm91dGUoJ2J1aWxkQ29uZmlnRWRpdC5odG1sJywgdHJ1ZSkpXG4gICAgICAgIC53aGVuKFVybEhlbHBlcnMuam9pbihjb250ZXh0LCAnYnVpbGRDb25maWdFZGl0LzppZCcpLCByb3V0ZSgnYnVpbGRDb25maWdFZGl0Lmh0bWwnLCB0cnVlKSlcbiAgICB9KTtcbiAgfV0pO1xuXG5cbiAgX21vZHVsZS5mYWN0b3J5KCdBcHBMaWJyYXJ5VVJMJywgWyckcm9vdFNjb3BlJywgKCRyb290U2NvcGU6bmcuSVJvb3RTY29wZVNlcnZpY2UpID0+IHtcbiAgICByZXR1cm4gVXJsSGVscGVycy5qb2luKGt1YmVybmV0ZXNBcGlVcmwoKSwgXCIvcHJveHlcIiwga3ViZXJuZXRlc05hbWVzcGFjZVBhdGgoKSwgXCIvc2VydmljZXMvYXBwLWxpYnJhcnlcIik7XG4gIH1dKTtcblxuICBfbW9kdWxlLmZhY3RvcnkoJ1dpa2lHaXRVcmxQcmVmaXgnLCAoKSA9PiB7XG4gICAgcmV0dXJuIFVybEhlbHBlcnMuam9pbihrdWJlcm5ldGVzQXBpVXJsKCksIFwiL3Byb3h5XCIsIGt1YmVybmV0ZXNOYW1lc3BhY2VQYXRoKCksIFwic2VydmljZXMvYXBwLWxpYnJhcnlcIik7XG4gIH0pO1xuXG4gIF9tb2R1bGUuZmFjdG9yeSgnd2lraVJlcG9zaXRvcnknLCBbXCIkbG9jYXRpb25cIiwgXCJsb2NhbFN0b3JhZ2VcIiwgKCRsb2NhdGlvbiwgbG9jYWxTdG9yYWdlKSA9PiB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XSk7XG5cbiAgX21vZHVsZS5mYWN0b3J5KCdDb25uZWN0RGlhbG9nU2VydmljZScsIFsnJHJvb3RTY29wZScsICgkcm9vdFNjb3BlOm5nLklSb290U2NvcGVTZXJ2aWNlKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGRpYWxvZzogbmV3IFVJLkRpYWxvZygpLFxuICAgICAgc2F2ZUNyZWRlbnRpYWxzOiBmYWxzZSxcbiAgICAgIHVzZXJOYW1lOiBudWxsLFxuICAgICAgcGFzc3dvcmQ6IG51bGwsXG4gICAgICBqb2xva2lhVXJsOiBudWxsLFxuICAgICAgY29udGFpbmVyTmFtZTogbnVsbCxcbiAgICAgIHZpZXc6IG51bGxcbiAgICB9O1xuICB9XSk7XG5cbiAgX21vZHVsZS5maWx0ZXIoJ2t1YmVybmV0ZXNQYWdlTGluaycsICgpID0+IGVudGl0eVBhZ2VMaW5rKTtcblxuICBfbW9kdWxlLnJ1bihbJ3ZpZXdSZWdpc3RyeScsICdTZXJ2aWNlUmVnaXN0cnknLCAnSGF3dGlvTmF2JywgJ0t1YmVybmV0ZXNNb2RlbCcsICckdGVtcGxhdGVDYWNoZScsICh2aWV3UmVnaXN0cnksIFNlcnZpY2VSZWdpc3RyeSwgSGF3dGlvTmF2LCBLdWJlcm5ldGVzTW9kZWwsICR0ZW1wbGF0ZUNhY2hlKSA9PiB7XG5cbiAgICBsb2cuZGVidWcoXCJSdW5uaW5nXCIpO1xuICAgIHZpZXdSZWdpc3RyeVsna3ViZXJuZXRlcyddID0gdGVtcGxhdGVQYXRoICsgJ2xheW91dEt1YmVybmV0ZXMuaHRtbCc7XG4gICAgdmFyIGJ1aWxkZXIgPSBIYXd0aW9OYXYuYnVpbGRlcigpO1xuICAgIHZhciBhcHBzID0gYnVpbGRlci5pZCgna3ViZS1hcHBzJylcbiAgICAgIC5ocmVmKCgpID0+IFVybEhlbHBlcnMuam9pbihjb250ZXh0LCAnYXBwcycpKVxuICAgICAgLnRpdGxlKCgpID0+ICdBcHBzJylcbiAgICAgIC5idWlsZCgpO1xuXG4gICAgdmFyIHNlcnZpY2VzID0gYnVpbGRlci5pZCgna3ViZS1zZXJ2aWNlcycpXG4gICAgICAuaHJlZigoKSA9PiBVcmxIZWxwZXJzLmpvaW4oY29udGV4dCwgJ3NlcnZpY2VzJykpXG4gICAgICAudGl0bGUoKCkgPT4gJ1NlcnZpY2VzJylcbiAgICAgIC5idWlsZCgpO1xuXG4gICAgdmFyIGNvbnRyb2xsZXJzID0gYnVpbGRlci5pZCgna3ViZS1jb250cm9sbGVycycpXG4gICAgICAuaHJlZigoKSA9PiBVcmxIZWxwZXJzLmpvaW4oY29udGV4dCwgJ3JlcGxpY2F0aW9uQ29udHJvbGxlcnMnKSlcbiAgICAgIC50aXRsZSgoKSA9PiAnQ29udHJvbGxlcnMnKVxuICAgICAgLmJ1aWxkKCk7XG5cbiAgICB2YXIgcG9kcyA9IGJ1aWxkZXIuaWQoJ2t1YmUtcG9kcycpXG4gICAgICAuaHJlZigoKSA9PiBVcmxIZWxwZXJzLmpvaW4oY29udGV4dCwgJ3BvZHMnKSlcbiAgICAgIC50aXRsZSgoKSA9PiAnUG9kcycpXG4gICAgICAuYnVpbGQoKTtcblxuICAgIHZhciBldmVudHMgPSBidWlsZGVyLmlkKCdrdWJlLWV2ZW50cycpXG4gICAgICAuaHJlZigoKSA9PiBVcmxIZWxwZXJzLmpvaW4oY29udGV4dCwgJ2V2ZW50cycpKVxuICAgICAgLnRpdGxlKCgpID0+ICdFdmVudHMnKVxuICAgICAgLmJ1aWxkKCk7XG5cbiAgICB2YXIgaG9zdHMgPSBidWlsZGVyLmlkKCdrdWJlLWhvc3RzJylcbiAgICAgIC5ocmVmKCgpID0+IFVybEhlbHBlcnMuam9pbihjb250ZXh0LCAnaG9zdHMnKSlcbiAgICAgIC50aXRsZSgoKSA9PiAnSG9zdHMnKVxuICAgICAgLmJ1aWxkKCk7XG5cbiAgICB2YXIgb3ZlcnZpZXcgPSBidWlsZGVyLmlkKCdrdWJlLW92ZXJ2aWV3JylcbiAgICAgIC5ocmVmKCgpID0+IFVybEhlbHBlcnMuam9pbihjb250ZXh0LCAnb3ZlcnZpZXcnKSlcbiAgICAgIC50aXRsZSgoKSA9PiAnRGlhZ3JhbScpXG4gICAgICAuYnVpbGQoKTtcblxuICAgIHZhciBidWlsZHMgPSBidWlsZGVyLmlkKCdrdWJlLWJ1aWxkcycpXG4gICAgICAuaHJlZigoKSA9PiBVcmxIZWxwZXJzLmpvaW4oY29udGV4dCwgJ2J1aWxkcycpKVxuICAgICAgLnRpdGxlKCgpID0+ICdCdWlsZHMnKVxuICAgICAgLmJ1aWxkKCk7XG5cbiAgICB2YXIgYnVpbGRDb25maWdzID0gYnVpbGRlci5pZCgna3ViZS1idWlsZENvbmZpZ3MnKVxuICAgICAgLmhyZWYoKCkgPT4gVXJsSGVscGVycy5qb2luKGNvbnRleHQsICdidWlsZENvbmZpZ3MnKSlcbiAgICAgIC50aXRsZSgoKSA9PiAnQnVpbGQgQ29uZmlncycpXG4gICAgICAuYnVpbGQoKTtcblxuICAgIHZhciBkZXBsb3lzID0gYnVpbGRlci5pZCgna3ViZS1kZXBsb3lzJylcbiAgICAgIC5ocmVmKCgpID0+IFVybEhlbHBlcnMuam9pbihjb250ZXh0LCAnZGVwbG95bWVudENvbmZpZ3MnKSlcbiAgICAgIC50aXRsZSgoKSA9PiAnRGVwbG95cycpXG4gICAgICAuYnVpbGQoKTtcblxuICAgIHZhciBpbWFnZVJlcG9zaXRvcmllcyA9IGJ1aWxkZXIuaWQoJ2t1YmUtaW1hZ2VSZXBvc2l0b3JpZXMnKVxuICAgICAgLmhyZWYoKCkgPT4gVXJsSGVscGVycy5qb2luKGNvbnRleHQsICdpbWFnZVJlcG9zaXRvcmllcycpKVxuICAgICAgLnRpdGxlKCgpID0+ICdSZWdpc3RyaWVzJylcbiAgICAgIC5idWlsZCgpO1xuXG4gICAgdmFyIHBpcGVsaW5lcyA9IGJ1aWxkZXIuaWQoJ2t1YmUtcGlwZWxpbmVzJylcbiAgICAgIC5ocmVmKCgpID0+IFVybEhlbHBlcnMuam9pbihjb250ZXh0LCAncGlwZWxpbmVzJykpXG4gICAgICAudGl0bGUoKCkgPT4gJ1BpcGVsaW5lcycpXG4gICAgICAuYnVpbGQoKTtcblxuICAgIHZhciByZXBvcyA9IGJ1aWxkZXIuaWQoJ2t1YmUtcmVwb3MnKVxuICAgICAgLmhyZWYoKCkgPT4gXCIvZm9yZ2UvcmVwb3NcIilcbiAgICAgIC5pc1ZhbGlkKCgpID0+IFNlcnZpY2VSZWdpc3RyeS5oYXNTZXJ2aWNlKGZhYnJpYzhGb3JnZVNlcnZpY2VOYW1lKSAmJiBTZXJ2aWNlUmVnaXN0cnkuaGFzU2VydmljZShnb2dzU2VydmljZU5hbWUpKVxuICAgICAgLnRpdGxlKCgpID0+ICdSZXBvc2l0b3JpZXMnKVxuICAgICAgLmJ1aWxkKCk7XG5cbiAgICB2YXIgbWFpblRhYiA9IGJ1aWxkZXIuaWQoJ2t1YmVybmV0ZXMnKVxuICAgICAgLnJhbmsoMjAwKVxuICAgICAgLmRlZmF1bHRQYWdlKHtcbiAgICAgICAgcmFuazogMjAsXG4gICAgICAgIGlzVmFsaWQ6ICh5ZXMsIG5vKSA9PiB7XG4gICAgICAgICAgeWVzKCk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICAuaHJlZigoKSA9PiBjb250ZXh0KVxuICAgICAgLnRpdGxlKCgpID0+ICdLdWJlcm5ldGVzJylcbiAgICAgIC50YWJzKGFwcHMsIHNlcnZpY2VzLCBjb250cm9sbGVycywgcG9kcywgZXZlbnRzLCBob3N0cywgb3ZlcnZpZXcpXG4gICAgICAuYnVpbGQoKTtcbiAgICBIYXd0aW9OYXYuYWRkKG1haW5UYWIpO1xuXG4gICAgSGF3dGlvTmF2LmFkZCh7XG4gICAgICBpZDogJ2s4c0FwcFN3aXRjaGVyJyxcbiAgICAgIHRpdGxlOiAoKSA9PiAnJywgLy8gbm90IHVzZWQgYXMgJ3RlbXBsYXRlJyBiZWxvdyBvdmVycmlkZXMgdGhpc1xuICAgICAgaXNWYWxpZDogKCkgPT4gS3ViZXJuZXRlc01vZGVsLnNlcnZpY2VBcHBzLmxlbmd0aCA+IDAsXG4gICAgICBjb250ZXh0OiB0cnVlLFxuICAgICAgdGVtcGxhdGU6ICgpID0+ICR0ZW1wbGF0ZUNhY2hlLmdldChVcmxIZWxwZXJzLmpvaW4odGVtcGxhdGVQYXRoLCAnc2VydmljZUFwcHMuaHRtbCcpKVxuICAgIH0pO1xuXG5cbiAgICB2YXIgcHJvamVjdHNUYWIgPSBidWlsZGVyLmlkKCdvcGVuc2hpZnQnKVxuICAgICAgLnJhbmsoMTAwKVxuICAgICAgLmhyZWYoKCkgPT4gVXJsSGVscGVycy5qb2luKGNvbnRleHQsICdidWlsZENvbmZpZ3MnKSArICc/c3ViLXRhYj1rdWJlLWJ1aWxkQ29uZmlncycpXG4gICAgICAudGl0bGUoKCkgPT4gJ1Byb2plY3RzJylcbiAgICAgIC8vIGxldHMgZGlzYWJsZSB0aGUgcGlwZWxpbmVzIHZpZXcgZm9yIG5vd1xuICAgICAgLy8gcGlwZWxpbmVzLFxuICAgICAgLnRhYnMocmVwb3MsIGJ1aWxkQ29uZmlncywgYnVpbGRzLCBkZXBsb3lzLCBpbWFnZVJlcG9zaXRvcmllcylcbiAgICAgIC5idWlsZCgpO1xuXG4gICAgSGF3dGlvTmF2LmFkZChwcm9qZWN0c1RhYik7XG4gIH1dKTtcblxuICBoYXd0aW9QbHVnaW5Mb2FkZXIucmVnaXN0ZXJQcmVCb290c3RyYXBUYXNrKHtcbiAgICBuYW1lOiAnS3ViZXJuZXRlc0luaXQnLFxuICAgIHRhc2s6IChuZXh0KSA9PiB7XG4gICAgICAkLmdldFNjcmlwdCgnb3Njb25zb2xlL2NvbmZpZy5qcycpXG4gICAgICAgIC5kb25lKChzY3JpcHQsIHRleHRTdGF0dXMpID0+IHtcbiAgICAgICAgICB2YXIgY29uZmlnOkt1YmVybmV0ZXNDb25maWcgPSBLdWJlcm5ldGVzLm9zQ29uZmlnID0gd2luZG93WydPUEVOU0hJRlRfQ09ORklHJ107XG4gICAgICAgICAgbG9nLmRlYnVnKFwiRmV0Y2hlZCBPQXV0aCBjb25maWc6IFwiLCBjb25maWcpO1xuICAgICAgICAgIHZhciBtYXN0ZXI6c3RyaW5nID0gY29uZmlnLm1hc3Rlcl91cmk7XG4gICAgICAgICAgaWYgKCFtYXN0ZXIgJiYgY29uZmlnLmFwaSAmJiBjb25maWcuYXBpLms4cykge1xuICAgICAgICAgICAgdmFyIG1hc3RlclVyaSA9IG5ldyBVUkkoKS5ob3N0KGNvbmZpZy5hcGkuazhzLmhvc3RQb3J0KS5wYXRoKFwiXCIpLnF1ZXJ5KFwiXCIpO1xuICAgICAgICAgICAgaWYgKGNvbmZpZy5hcGkuazhzLnByb3RvKSB7XG4gICAgICAgICAgICAgIG1hc3RlclVyaS5wcm90b2NvbChjb25maWcuYXBpLms4cy5wcm90byk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBtYXN0ZXIgPSBtYXN0ZXJVcmkudG9TdHJpbmcoKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBPU09BdXRoQ29uZmlnID0gY29uZmlnLm9wZW5zaGlmdDtcbiAgICAgICAgICBHb29nbGVPQXV0aENvbmZpZyA9IGNvbmZpZy5nb29nbGU7XG4gICAgICAgICAgS2V5Y2xvYWtDb25maWcgPSBjb25maWcua2V5Y2xvYWs7XG5cbiAgICAgICAgICBpZiAoT1NPQXV0aENvbmZpZyAmJiAhbWFzdGVyKSB7XG4gICAgICAgICAgICAvLyBUT0RPIGF1dGgubWFzdGVyX3VyaSBubyBsb25nZXIgdXNlZCByaWdodD9cbiAgICAgICAgICAgIC8vIG1hc3RlciA9IE9TT0F1dGhDb25maWcubWFzdGVyX3VyaTtcbiAgICAgICAgICAgIGlmICghbWFzdGVyKSB7XG4gICAgICAgICAgICAgIHZhciBvYXV0aF9hdXRob3JpemVfdXJpID0gT1NPQXV0aENvbmZpZy5vYXV0aF9hdXRob3JpemVfdXJpO1xuICAgICAgICAgICAgICBpZiAob2F1dGhfYXV0aG9yaXplX3VyaSkge1xuICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gb2F1dGhfYXV0aG9yaXplX3VyaTtcbiAgICAgICAgICAgICAgICB2YXIgaWR4ID0gdGV4dC5pbmRleE9mKFwiOi8vXCIpO1xuICAgICAgICAgICAgICAgIGlmIChpZHggPiAwKSB7XG4gICAgICAgICAgICAgICAgICBpZHggKz0gMztcbiAgICAgICAgICAgICAgICAgIGlkeCA9IHRleHQuaW5kZXhPZihcIi9cIiwgaWR4KTtcbiAgICAgICAgICAgICAgICAgIGlmIChpZHggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIG1hc3RlciA9IHRleHQuc3Vic3RyaW5nKDAsICsraWR4KTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKCghS3ViZXJuZXRlcy5tYXN0ZXJVcmwgfHwgS3ViZXJuZXRlcy5tYXN0ZXJVcmwgPT09IFwiL1wiKSAmJiAoIW1hc3RlciB8fCBtYXN0ZXIgPT09IFwiL1wiKSkge1xuICAgICAgICAgICAgLy8gbGV0cyBkZWZhdWx0IHRoZSBtYXN0ZXIgdG8gdGhlIGN1cnJlbnQgcHJvdG9jb2wgYW5kIGhvc3QvcG9ydFxuICAgICAgICAgICAgLy8gaW4gY2FzZSB0aGUgbWFzdGVyIHVybCBpcyBcIi9cIiBhbmQgd2UgYXJlXG4gICAgICAgICAgICAvLyBzZXJ2aW5nIHVwIHN0YXRpYyBjb250ZW50IGZyb20gaW5zaWRlIC9hcGkvdjEvbmFtZXNwYWNlcy9kZWZhdWx0L3NlcnZpY2VzL2ZhYnJpYzggb3Igc29tZXRoaW5nIGxpa2UgdGhhdFxuICAgICAgICAgICAgdmFyIGhyZWYgPSBsb2NhdGlvbi5ocmVmO1xuICAgICAgICAgICAgaWYgKGhyZWYpIHtcbiAgICAgICAgICAgICAgbWFzdGVyID0gbmV3IFVSSShocmVmKS5xdWVyeShcIlwiKS5wYXRoKFwiXCIpLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChtYXN0ZXIpIHtcbiAgICAgICAgICAgIEt1YmVybmV0ZXMubWFzdGVyVXJsID0gbWFzdGVyO1xuICAgICAgICAgICAgbmV4dCgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICAgLmZhaWwoKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgbG9nLmRlYnVnKFwiRXJyb3IgZmV0Y2hpbmcgT0FVVEggY29uZmlnOiBcIiwgcmVzcG9uc2UpO1xuICAgICAgICB9KVxuICAgICAgICAuYWx3YXlzKCgpID0+IHtcbiAgICAgICAgICBuZXh0KCk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfSwgdHJ1ZSk7XG5cbiAgaGF3dGlvUGx1Z2luTG9hZGVyLmFkZE1vZHVsZSgnbmdSZXNvdXJjZScpO1xuICBoYXd0aW9QbHVnaW5Mb2FkZXIuYWRkTW9kdWxlKHBsdWdpbk5hbWUpO1xufVxuIiwiLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4uLy4uL2luY2x1ZGVzLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cImt1YmVybmV0ZXNQbHVnaW4udHNcIi8+XG5cbm1vZHVsZSBLdWJlcm5ldGVzIHtcbiAgXG4gIGV4cG9ydCB2YXIgQXBwcyA9IGNvbnRyb2xsZXIoXCJBcHBzXCIsXG4gICAgW1wiJHNjb3BlXCIsIFwiS3ViZXJuZXRlc01vZGVsXCIsIFwiS3ViZXJuZXRlc1NlcnZpY2VzXCIsIFwiS3ViZXJuZXRlc1JlcGxpY2F0aW9uQ29udHJvbGxlcnNcIiwgXCJLdWJlcm5ldGVzUG9kc1wiLCBcIkt1YmVybmV0ZXNTdGF0ZVwiLCBcIkt1YmVybmV0ZXNBcGlVUkxcIiwgXCIkdGVtcGxhdGVDYWNoZVwiLCBcIiRsb2NhdGlvblwiLCBcIiRyb3V0ZVBhcmFtc1wiLCBcIiRodHRwXCIsIFwiJGRpYWxvZ1wiLCBcIiR0aW1lb3V0XCIsIFxuICAgICAgKCRzY29wZSwgS3ViZXJuZXRlc01vZGVsOiBLdWJlcm5ldGVzLkt1YmVybmV0ZXNNb2RlbFNlcnZpY2UsIEt1YmVybmV0ZXNTZXJ2aWNlczpuZy5yZXNvdXJjZS5JUmVzb3VyY2VDbGFzcywgS3ViZXJuZXRlc1JlcGxpY2F0aW9uQ29udHJvbGxlcnM6bmcucmVzb3VyY2UuSVJlc291cmNlQ2xhc3MsIEt1YmVybmV0ZXNQb2RzOm5nLnJlc291cmNlLklSZXNvdXJjZUNsYXNzLCBLdWJlcm5ldGVzU3RhdGUsIEt1YmVybmV0ZXNBcGlVUkwsXG4gICAgICAgJHRlbXBsYXRlQ2FjaGU6bmcuSVRlbXBsYXRlQ2FjaGVTZXJ2aWNlLCAkbG9jYXRpb246bmcuSUxvY2F0aW9uU2VydmljZSwgJHJvdXRlUGFyYW1zLCAkaHR0cCwgJGRpYWxvZywgJHRpbWVvdXQpID0+IHtcblxuICAgICRzY29wZS5tb2RlbCA9IEt1YmVybmV0ZXNNb2RlbDtcblxuICAgICRzY29wZS5hcHBzID0gW107XG4gICAgJHNjb3BlLmFsbEFwcHMgPSBbXTtcbiAgICAkc2NvcGUua3ViZXJuZXRlcyA9IEt1YmVybmV0ZXNTdGF0ZTtcbiAgICAkc2NvcGUuZmV0Y2hlZCA9IGZhbHNlO1xuICAgICRzY29wZS5qc29uID0gJyc7XG4gICAgQ29udHJvbGxlckhlbHBlcnMuYmluZE1vZGVsVG9TZWFyY2hQYXJhbSgkc2NvcGUsICRsb2NhdGlvbiwgJ2lkJywgJ19pZCcsIHVuZGVmaW5lZCk7XG4gICAgQ29udHJvbGxlckhlbHBlcnMuYmluZE1vZGVsVG9TZWFyY2hQYXJhbSgkc2NvcGUsICRsb2NhdGlvbiwgJ2FwcFNlbGVjdG9yU2hvdycsICdvcGVuQXBwJywgdW5kZWZpbmVkKTtcbiAgICBDb250cm9sbGVySGVscGVycy5iaW5kTW9kZWxUb1NlYXJjaFBhcmFtKCRzY29wZSwgJGxvY2F0aW9uLCAnbW9kZScsICdtb2RlJywgJ2RldGFpbCcpO1xuXG4gICAgdmFyIGJyYW5jaCA9ICRzY29wZS5icmFuY2ggfHwgXCJtYXN0ZXJcIjtcbiAgICB2YXIgbmFtZXNwYWNlID0gbnVsbDtcblxuICAgIGZ1bmN0aW9uIGFwcE1hdGNoZXMoYXBwKSB7XG4gICAgICB2YXIgZmlsdGVyVGV4dCA9ICRzY29wZS5hcHBTZWxlY3Rvci5maWx0ZXJUZXh0O1xuICAgICAgaWYgKGZpbHRlclRleHQpIHtcbiAgICAgICAgcmV0dXJuIENvcmUubWF0Y2hGaWx0ZXJJZ25vcmVDYXNlKGFwcC5ncm91cElkLCBmaWx0ZXJUZXh0KSB8fFxuICAgICAgICAgIENvcmUubWF0Y2hGaWx0ZXJJZ25vcmVDYXNlKGFwcC5hcnRpZmFjdElkLCBmaWx0ZXJUZXh0KSB8fFxuICAgICAgICAgIENvcmUubWF0Y2hGaWx0ZXJJZ25vcmVDYXNlKGFwcC5uYW1lLCBmaWx0ZXJUZXh0KSB8fFxuICAgICAgICAgIENvcmUubWF0Y2hGaWx0ZXJJZ25vcmVDYXNlKGFwcC5kZXNjcmlwdGlvbiwgZmlsdGVyVGV4dCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBhcHBSdW5uaW5nKGFwcCkge1xuICAgICAgcmV0dXJuICRzY29wZS5tb2RlbC5hcHBzLmFueSgocnVubmluZykgPT4gcnVubmluZy5hcHBQYXRoID09PSBhcHAuYXBwUGF0aCk7XG4gICAgfVxuXG4gICAgJHNjb3BlLnRhYmxlQ29uZmlnID0ge1xuICAgICAgZGF0YTogJ21vZGVsLmFwcHMnLFxuICAgICAgc2hvd1NlbGVjdGlvbkNoZWNrYm94OiB0cnVlLFxuICAgICAgZW5hYmxlUm93Q2xpY2tTZWxlY3Rpb246IGZhbHNlLFxuICAgICAgbXVsdGlTZWxlY3Q6IHRydWUsXG4gICAgICBzZWxlY3RlZEl0ZW1zOiBbXSxcbiAgICAgIGZpbHRlck9wdGlvbnM6IHtcbiAgICAgICAgZmlsdGVyVGV4dDogJGxvY2F0aW9uLnNlYXJjaCgpW1wicVwiXSB8fCAnJ1xuICAgICAgfSxcbiAgICAgIGNvbHVtbkRlZnM6IFtcbiAgICAgICAgeyBmaWVsZDogJyRuYW1lJywgZGlzcGxheU5hbWU6ICdBcHAnLCBjZWxsVGVtcGxhdGU6ICR0ZW1wbGF0ZUNhY2hlLmdldChcImFwcEljb25UZW1wbGF0ZS5odG1sXCIpIH0sXG4gICAgICAgIHsgZmllbGQ6ICckc2VydmljZXNUZXh0JywgZGlzcGxheU5hbWU6ICdTZXJ2aWNlcycsIGNlbGxUZW1wbGF0ZTogJHRlbXBsYXRlQ2FjaGUuZ2V0KFwiYXBwU2VydmljZXNUZW1wbGF0ZS5odG1sXCIpIH0sXG4gICAgICAgIHsgZmllbGQ6ICckcmVwbGljYXRpb25Db250cm9sbGVyc1RleHQnLCBkaXNwbGF5TmFtZTogJ0NvbnRyb2xsZXJzJywgY2VsbFRlbXBsYXRlOiAkdGVtcGxhdGVDYWNoZS5nZXQoXCJhcHBSZXBsaWNhdGlvbkNvbnRyb2xsZXJUZW1wbGF0ZS5odG1sXCIpIH0sXG4gICAgICAgIHsgZmllbGQ6ICckcG9kQ291bnQnLCBkaXNwbGF5TmFtZTogJ1BvZHMnLCBjZWxsVGVtcGxhdGU6ICR0ZW1wbGF0ZUNhY2hlLmdldChcImFwcFBvZENvdW50c0FuZExpbmtUZW1wbGF0ZS5odG1sXCIpIH0sXG4gICAgICAgIHsgZmllbGQ6ICckY3JlYXRpb25EYXRlJywgZGlzcGxheU5hbWU6ICdEZXBsb3llZCcsIGNlbGxUZW1wbGF0ZTogJHRlbXBsYXRlQ2FjaGUuZ2V0KFwiYXBwRGVwbG95ZWRUZW1wbGF0ZS5odG1sXCIpIH1cbiAgICAgIF1cbiAgICB9O1xuXG4gICAgS3ViZXJuZXRlcy5pbml0U2hhcmVkKCRzY29wZSwgJGxvY2F0aW9uLCAkaHR0cCwgJHRpbWVvdXQsICRyb3V0ZVBhcmFtcywgS3ViZXJuZXRlc01vZGVsLCBLdWJlcm5ldGVzU3RhdGUsIEt1YmVybmV0ZXNBcGlVUkwpO1xuXG5cbiAgICAkc2NvcGUuZXhwYW5kZWRQb2RzID0gW107XG5cbiAgICAkc2NvcGUuJG9uKCdkby1yZXNpemUnLCAoJGV2ZW50LCBjb250cm9sbGVyKSA9PiB7XG4gICAgICAkc2NvcGUucmVzaXplRGlhbG9nLm9wZW4oY29udHJvbGxlcik7XG4gICAgfSk7XG5cbiAgICAgICAgXG4gICAgJHNjb3BlLnBvZEV4cGFuZGVkID0gKHBvZCkgPT4ge1xuICAgICAgdmFyIGlkID0gZ2V0TmFtZShwb2QpXG4gICAgICByZXR1cm4gaWQgJiYgKCRzY29wZS5leHBhbmRlZFBvZHMgfHwgW10pLmluZGV4T2YoaWQpID49IDA7XG4gICAgfTtcblxuICAgICRzY29wZS5leHBhbmRQb2QgPSAocG9kKSA9PiB7XG4gICAgICB2YXIgaWQgPSBnZXROYW1lKHBvZCk7XG4gICAgICBpZiAoaWQpIHtcbiAgICAgICAgJHNjb3BlLmV4cGFuZGVkUG9kcy5wdXNoKGlkKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgJHNjb3BlLmNvbGxhcHNlUG9kID0gKHBvZCkgPT4ge1xuICAgICAgdmFyIGlkID0gZ2V0TmFtZShwb2QpO1xuICAgICAgaWYgKGlkKSB7XG4gICAgICAgICRzY29wZS5leHBhbmRlZFBvZHMgPSAkc2NvcGUuZXhwYW5kZWRQb2RzLnJlbW92ZSgodikgPT4gaWQgPT09IHYpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICAkc2NvcGUuJG9uKCckcm91dGVVcGRhdGUnLCAoJGV2ZW50KSA9PiB7XG4gICAgICBLdWJlcm5ldGVzLnNldEpzb24oJHNjb3BlLCAkbG9jYXRpb24uc2VhcmNoKClbJ19pZCddLCAkc2NvcGUubW9kZWwuYXBwcyk7XG4gICAgfSk7XG5cbiAgICBmdW5jdGlvbiBkZWxldGVBcHAoYXBwLCBvbkNvbXBsZXRlRm4pIHtcbiAgICAgIGZ1bmN0aW9uIGRlbGV0ZVNlcnZpY2VzKHNlcnZpY2VzLCBzZXJ2aWNlLCBvbkNvbXBsZXRlZEZuKSB7XG4gICAgICAgIGlmICghc2VydmljZSB8fCAhc2VydmljZXMpIHtcbiAgICAgICAgICByZXR1cm4gb25Db21wbGV0ZWRGbigpO1xuICAgICAgICB9XG4gICAgICAgIHZhciBpZCA9IGdldE5hbWUoc2VydmljZSk7XG4gICAgICAgIGlmICghaWQpIHtcbiAgICAgICAgICBsb2cud2FybihcIk5vIElEIGZvciBzZXJ2aWNlIFwiICsgYW5ndWxhci50b0pzb24oc2VydmljZSkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIEt1YmVybmV0ZXNTZXJ2aWNlcy5kZWxldGUoe1xuICAgICAgICAgICAgaWQ6IGlkXG4gICAgICAgICAgfSwgdW5kZWZpbmVkLCAoKSA9PiB7XG4gICAgICAgICAgICBsb2cuZGVidWcoXCJEZWxldGVkIHNlcnZpY2U6IFwiLCBpZCk7XG4gICAgICAgICAgICBkZWxldGVTZXJ2aWNlcyhzZXJ2aWNlcywgc2VydmljZXMuc2hpZnQoKSwgb25Db21wbGV0ZWRGbik7XG4gICAgICAgICAgfSwgKGVycm9yKSA9PiB7XG4gICAgICAgICAgICBsb2cuZGVidWcoXCJFcnJvciBkZWxldGluZyBzZXJ2aWNlOiBcIiwgZXJyb3IpO1xuICAgICAgICAgICAgZGVsZXRlU2VydmljZXMoc2VydmljZXMsIHNlcnZpY2VzLnNoaWZ0KCksIG9uQ29tcGxldGVkRm4pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGZ1bmN0aW9uIGRlbGV0ZVJlcGxpY2F0aW9uQ29udHJvbGxlcnMocmVwbGljYXRpb25Db250cm9sbGVycywgcmVwbGljYXRpb25Db250cm9sbGVyLCBvbkNvbXBsZXRlZEZuKSB7XG4gICAgICAgIGlmICghcmVwbGljYXRpb25Db250cm9sbGVyIHx8ICFyZXBsaWNhdGlvbkNvbnRyb2xsZXJzKSB7XG4gICAgICAgICAgcmV0dXJuIG9uQ29tcGxldGVkRm4oKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgaWQgPSBnZXROYW1lKHJlcGxpY2F0aW9uQ29udHJvbGxlcik7XG4gICAgICAgIGlmICghaWQpIHtcbiAgICAgICAgICBsb2cud2FybihcIk5vIElEIGZvciByZXBsaWNhdGlvbkNvbnRyb2xsZXIgXCIgKyBhbmd1bGFyLnRvSnNvbihyZXBsaWNhdGlvbkNvbnRyb2xsZXIpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBLdWJlcm5ldGVzUmVwbGljYXRpb25Db250cm9sbGVycy5kZWxldGUoe1xuICAgICAgICAgICAgaWQ6IGlkXG4gICAgICAgICAgfSwgdW5kZWZpbmVkLCAoKSA9PiB7XG4gICAgICAgICAgICBsb2cuZGVidWcoXCJEZWxldGVkIHJlcGxpY2F0aW9uQ29udHJvbGxlcjogXCIsIGlkKTtcbiAgICAgICAgICAgIGRlbGV0ZVJlcGxpY2F0aW9uQ29udHJvbGxlcnMocmVwbGljYXRpb25Db250cm9sbGVycywgcmVwbGljYXRpb25Db250cm9sbGVycy5zaGlmdCgpLCBvbkNvbXBsZXRlZEZuKTtcbiAgICAgICAgICB9LCAoZXJyb3IpID0+IHtcbiAgICAgICAgICAgIGxvZy5kZWJ1ZyhcIkVycm9yIGRlbGV0aW5nIHJlcGxpY2F0aW9uQ29udHJvbGxlcjogXCIsIGVycm9yKTtcbiAgICAgICAgICAgIGRlbGV0ZVJlcGxpY2F0aW9uQ29udHJvbGxlcnMocmVwbGljYXRpb25Db250cm9sbGVycywgcmVwbGljYXRpb25Db250cm9sbGVycy5zaGlmdCgpLCBvbkNvbXBsZXRlZEZuKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBmdW5jdGlvbiBkZWxldGVQb2RzKHBvZHMsIHBvZCwgb25Db21wbGV0ZWRGbikge1xuICAgICAgICBpZiAoIXBvZCB8fCAhcG9kcykge1xuICAgICAgICAgIHJldHVybiBvbkNvbXBsZXRlZEZuKCk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGlkID0gZ2V0TmFtZShwb2QpO1xuICAgICAgICBpZiAoIWlkKSB7XG4gICAgICAgICAgbG9nLndhcm4oXCJObyBJRCBmb3IgcG9kIFwiICsgYW5ndWxhci50b0pzb24ocG9kKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgS3ViZXJuZXRlc1BvZHMuZGVsZXRlKHtcbiAgICAgICAgICAgIGlkOiBpZFxuICAgICAgICAgIH0sIHVuZGVmaW5lZCwgKCkgPT4ge1xuICAgICAgICAgICAgbG9nLmRlYnVnKFwiRGVsZXRlZCBwb2Q6IFwiLCBpZCk7XG4gICAgICAgICAgICBkZWxldGVQb2RzKHBvZHMsIHBvZHMuc2hpZnQoKSwgb25Db21wbGV0ZWRGbik7XG4gICAgICAgICAgfSwgKGVycm9yKSA9PiB7XG4gICAgICAgICAgICBsb2cuZGVidWcoXCJFcnJvciBkZWxldGluZyBwb2Q6IFwiLCBlcnJvcik7XG4gICAgICAgICAgICBkZWxldGVQb2RzKHBvZHMsIHBvZHMuc2hpZnQoKSwgb25Db21wbGV0ZWRGbik7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdmFyIHNlcnZpY2VzID0gW10uY29uY2F0KGFwcC5zZXJ2aWNlcyk7XG4gICAgICBkZWxldGVTZXJ2aWNlcyhzZXJ2aWNlcywgc2VydmljZXMuc2hpZnQoKSwgKCkgPT4ge1xuXG4gICAgICAgIHZhciByZXBsaWNhdGlvbkNvbnRyb2xsZXJzID0gW10uY29uY2F0KGFwcC5yZXBsaWNhdGlvbkNvbnRyb2xsZXJzKTtcbiAgICAgICAgZGVsZXRlUmVwbGljYXRpb25Db250cm9sbGVycyhyZXBsaWNhdGlvbkNvbnRyb2xsZXJzLCByZXBsaWNhdGlvbkNvbnRyb2xsZXJzLnNoaWZ0KCksICgpID0+IHtcblxuICAgICAgICAgIHZhciBwb2RzID0gW10uY29uY2F0KGFwcC5wb2RzKTtcbiAgICAgICAgICBkZWxldGVQb2RzKHBvZHMsIHBvZHMuc2hpZnQoKSwgb25Db21wbGV0ZUZuKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAkc2NvcGUuZGVsZXRlU2luZ2xlQXBwID0gKGFwcCkgPT4ge1xuICAgICAgJHNjb3BlLmRlbGV0ZVByb21wdChbYXBwXSk7XG4gICAgfVxuXG4gICAgJHNjb3BlLmRlbGV0ZVByb21wdCA9IChzZWxlY3RlZCkgPT4ge1xuICAgICAgaWYgKGFuZ3VsYXIuaXNTdHJpbmcoc2VsZWN0ZWQpKSB7XG4gICAgICAgIHNlbGVjdGVkID0gW3tcbiAgICAgICAgICBpZDogc2VsZWN0ZWRcbiAgICAgICAgfV07XG4gICAgICB9XG4gICAgICBVSS5tdWx0aUl0ZW1Db25maXJtQWN0aW9uRGlhbG9nKDxVSS5NdWx0aUl0ZW1Db25maXJtQWN0aW9uT3B0aW9ucz57XG4gICAgICAgIGNvbGxlY3Rpb246IHNlbGVjdGVkLFxuICAgICAgICBpbmRleDogJyRuYW1lJyxcbiAgICAgICAgb25DbG9zZTogKHJlc3VsdDpib29sZWFuKSA9PiB7XG4gICAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgICAgZnVuY3Rpb24gZGVsZXRlU2VsZWN0ZWQoc2VsZWN0ZWQsIG5leHQpIHtcbiAgICAgICAgICAgICAgaWYgKG5leHQpIHtcbiAgICAgICAgICAgICAgICB2YXIgaWQgPSBuZXh0Lm5hbWU7XG4gICAgICAgICAgICAgICAgbG9nLmRlYnVnKFwiZGVsZXRpbmc6IFwiLCBpZCk7XG4gICAgICAgICAgICAgICAgZGVsZXRlQXBwKG5leHQsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgIGxvZy5kZWJ1ZyhcImRlbGV0ZWQ6IFwiLCBpZCk7XG4gICAgICAgICAgICAgICAgICBkZWxldGVTZWxlY3RlZChzZWxlY3RlZCwgc2VsZWN0ZWQuc2hpZnQoKSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZGVsZXRlU2VsZWN0ZWQoc2VsZWN0ZWQsIHNlbGVjdGVkLnNoaWZ0KCkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgdGl0bGU6ICdEZWxldGUgQXBwcz8nLFxuICAgICAgICBhY3Rpb246ICdUaGUgZm9sbG93aW5nIEFwcHMgd2lsbCBiZSBkZWxldGVkOicsXG4gICAgICAgIG9rVGV4dDogJ0RlbGV0ZScsXG4gICAgICAgIG9rQ2xhc3M6ICdidG4tZGFuZ2VyJyxcbiAgICAgICAgY3VzdG9tOiBcIlRoaXMgb3BlcmF0aW9uIGlzIHBlcm1hbmVudCBvbmNlIGNvbXBsZXRlZCFcIixcbiAgICAgICAgY3VzdG9tQ2xhc3M6IFwiYWxlcnQgYWxlcnQtd2FybmluZ1wiXG4gICAgICB9KS5vcGVuKCk7XG4gICAgfTtcblxuICAgICRzY29wZS5hcHBTZWxlY3RvciA9IHtcbiAgICAgIGZpbHRlclRleHQ6IFwiXCIsXG4gICAgICBmb2xkZXJzOiBbXSxcbiAgICAgIHNlbGVjdGVkQXBwczogW10sXG5cbiAgICAgIGlzT3BlbjogKGZvbGRlcikgPT4ge1xuICAgICAgICBpZiAoJHNjb3BlLmFwcFNlbGVjdG9yLmZpbHRlclRleHQgIT09ICcnIHx8IGZvbGRlci5leHBhbmRlZCkge1xuICAgICAgICAgIHJldHVybiBcIm9wZW5lZFwiO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBcImNsb3NlZFwiO1xuICAgICAgfSxcblxuICAgICAgZ2V0U2VsZWN0ZWRDbGFzczogKGFwcCkgPT4ge1xuICAgICAgICBpZiAoYXBwLmFic3RyYWN0KSB7XG4gICAgICAgICAgcmV0dXJuIFwiYWJzdHJhY3RcIjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYXBwLnNlbGVjdGVkKSB7XG4gICAgICAgICAgcmV0dXJuIFwic2VsZWN0ZWRcIjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gXCJcIjtcbiAgICAgIH0sXG5cbiAgICAgIHNob3dBcHA6IChhcHApID0+IHtcbiAgICAgICAgcmV0dXJuIGFwcE1hdGNoZXMoYXBwKSAmJiAhYXBwUnVubmluZyhhcHApO1xuICAgICAgfSxcblxuICAgICAgc2hvd0ZvbGRlcjogKGZvbGRlcikgPT4ge1xuICAgICAgICByZXR1cm4gISRzY29wZS5hcHBTZWxlY3Rvci5maWx0ZXJUZXh0IHx8IGZvbGRlci5hcHBzLnNvbWUoKGFwcCkgPT4gYXBwTWF0Y2hlcyhhcHApICYmICFhcHBSdW5uaW5nKGFwcCkpO1xuICAgICAgfSxcblxuICAgICAgY2xlYXJTZWxlY3RlZDogKCkgPT4ge1xuICAgICAgICBhbmd1bGFyLmZvckVhY2goJHNjb3BlLm1vZGVsLmFwcEZvbGRlcnMsIChmb2xkZXIpID0+IHtcbiAgICAgICAgICBhbmd1bGFyLmZvckVhY2goZm9sZGVyLmFwcHMsIChhcHApID0+IHtcbiAgICAgICAgICAgIGFwcC5zZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgJHNjb3BlLmFwcFNlbGVjdG9yLnNlbGVjdGVkQXBwcyA9IFtdO1xuICAgICAgICBDb3JlLiRhcHBseSgkc2NvcGUpO1xuICAgICAgfSxcblxuICAgICAgdXBkYXRlU2VsZWN0ZWQ6ICgpID0+IHtcbiAgICAgICAgLy8gbGV0cyB1cGRhdGUgdGhlIHNlbGVjdGVkIGFwcHNcbiAgICAgICAgdmFyIHNlbGVjdGVkQXBwcyA9IFtdO1xuICAgICAgICBhbmd1bGFyLmZvckVhY2goJHNjb3BlLm1vZGVsLmFwcEZvbGRlcnMsIChmb2xkZXIpID0+IHtcbiAgICAgICAgICB2YXIgYXBwcyA9IGZvbGRlci5hcHBzLmZpbHRlcigoYXBwKSA9PiBhcHAuc2VsZWN0ZWQpO1xuICAgICAgICAgIGlmIChhcHBzKSB7XG4gICAgICAgICAgICBzZWxlY3RlZEFwcHMgPSBzZWxlY3RlZEFwcHMuY29uY2F0KGFwcHMpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgICRzY29wZS5hcHBTZWxlY3Rvci5zZWxlY3RlZEFwcHMgPSBzZWxlY3RlZEFwcHMuc29ydEJ5KFwibmFtZVwiKTtcbiAgICAgIH0sXG5cbiAgICAgIHNlbGVjdDogKGFwcCwgZmxhZykgPT4ge1xuICAgICAgICBhcHAuc2VsZWN0ZWQgPSBmbGFnO1xuICAgICAgICAkc2NvcGUuYXBwU2VsZWN0b3IudXBkYXRlU2VsZWN0ZWQoKTtcbiAgICAgIH0sXG5cbiAgICAgIGhhc1NlbGVjdGlvbjogKCkgPT4ge1xuICAgICAgICByZXR1cm4gJHNjb3BlLm1vZGVsLmFwcEZvbGRlcnMuYW55KChmb2xkZXIpID0+IGZvbGRlci5hcHBzLmFueSgoYXBwKSA9PiBhcHAuc2VsZWN0ZWQpKTtcbiAgICAgIH0sXG5cblxuICAgICAgcnVuU2VsZWN0ZWRBcHBzOiAoKSA9PiB7XG4gICAgICAgIC8vIGxldHMgcnVuIGFsbCB0aGUgc2VsZWN0ZWQgYXBwc1xuICAgICAgICBhbmd1bGFyLmZvckVhY2goJHNjb3BlLmFwcFNlbGVjdG9yLnNlbGVjdGVkQXBwcywgKGFwcCkgPT4ge1xuICAgICAgICAgIHZhciBuYW1lID0gYXBwLm5hbWU7XG4gICAgICAgICAgdmFyIG1ldGFkYXRhUGF0aCA9IGFwcC5tZXRhZGF0YVBhdGg7XG4gICAgICAgICAgaWYgKG1ldGFkYXRhUGF0aCkge1xuICAgICAgICAgICAgLy8gbGV0cyBsb2FkIHRoZSBqc29uL3lhbWxcbiAgICAgICAgICAgIC8vdmFyIHVybCA9IGdpdFBhdGhUb1VybChXaWtpLmdpdFJlbGF0aXZlVVJMKGJyYW5jaCwgbWV0YWRhdGFQYXRoKSk7XG4gICAgICAgICAgICB2YXIgdXJsID0gZ2l0UGF0aFRvVXJsKG1ldGFkYXRhUGF0aCwgYnJhbmNoKTtcbiAgICAgICAgICAgIGlmICh1cmwpIHtcbiAgICAgICAgICAgICAgJGh0dHAuZ2V0KHVybCkuXG4gICAgICAgICAgICAgICAgc3VjY2VzcyhmdW5jdGlvbiAoZGF0YSwgc3RhdHVzLCBoZWFkZXJzLCBjb25maWcpIHtcbiAgICAgICAgICAgICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGxldHMgY29udmVydCB0aGUganNvbiBvYmplY3Qgc3RydWN0dXJlIGludG8gYSBzdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgdmFyIGpzb24gPSBhbmd1bGFyLnRvSnNvbihkYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGZuID0gKCkgPT4ge307XG4gICAgICAgICAgICAgICAgICAgIEt1YmVybmV0ZXMucnVuQXBwKCRsb2NhdGlvbiwgJHNjb3BlLCAkaHR0cCwgS3ViZXJuZXRlc0FwaVVSTCwganNvbiwgbmFtZSwgZm4sIG5hbWVzcGFjZSk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSkuXG4gICAgICAgICAgICAgICAgZXJyb3IoZnVuY3Rpb24gKGRhdGEsIHN0YXR1cywgaGVhZGVycywgY29uZmlnKSB7XG4gICAgICAgICAgICAgICAgICAkc2NvcGUuc3VtbWFyeUh0bWwgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgbG9nLndhcm4oXCJGYWlsZWQgdG8gbG9hZCBcIiArIHVybCArIFwiIFwiICsgZGF0YSArIFwiIFwiICsgc3RhdHVzKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBsZXRzIGdvIGJhY2sgdG8gdGhlIGFwcHMgdmlld1xuICAgICAgICAkc2NvcGUuYXBwU2VsZWN0b3IuY2xlYXJTZWxlY3RlZCgpO1xuICAgICAgICAkc2NvcGUuYXBwU2VsZWN0b3JTaG93ID0gZmFsc2U7XG4gICAgICB9XG4gICAgfTtcblxuICB9XSk7XG59XG4iLCIvLy8gPHJlZmVyZW5jZSBwYXRoPVwiLi4vLi4vaW5jbHVkZXMudHNcIi8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwia3ViZXJuZXRlc0hlbHBlcnMudHNcIi8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwia3ViZXJuZXRlc1BsdWdpbi50c1wiLz5cblxubW9kdWxlIEt1YmVybmV0ZXMge1xuXG4gIF9tb2R1bGUuZGlyZWN0aXZlKFwiaGF3dGlvQnJlYWRjcnVtYnNcIiwgKCkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICB0ZW1wbGF0ZVVybDogS3ViZXJuZXRlcy50ZW1wbGF0ZVBhdGggKyAnYnJlYWRjcnVtYnMuaHRtbCdcbiAgICB9O1xuICB9KTtcbn1cbiIsIi8vLyA8cmVmZXJlbmNlIHBhdGg9XCIuLi8uLi9pbmNsdWRlcy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJrdWJlcm5ldGVzSGVscGVycy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJrdWJlcm5ldGVzUGx1Z2luLnRzXCIvPlxuXG5tb2R1bGUgS3ViZXJuZXRlcyB7XG5cbiAgZXhwb3J0IHZhciBCdWlsZENvbnRyb2xsZXIgPSBjb250cm9sbGVyKFwiQnVpbGRDb250cm9sbGVyXCIsXG4gICAgW1wiJHNjb3BlXCIsIFwiS3ViZXJuZXRlc01vZGVsXCIsIFwiS3ViZXJuZXRlc1N0YXRlXCIsIFwiS3ViZXJuZXRlc1NjaGVtYVwiLCBcIiR0ZW1wbGF0ZUNhY2hlXCIsIFwiJGxvY2F0aW9uXCIsIFwiJHJvdXRlUGFyYW1zXCIsIFwiJGh0dHBcIiwgXCIkdGltZW91dFwiLCBcIkt1YmVybmV0ZXNBcGlVUkxcIixcbiAgICAgICgkc2NvcGUsIEt1YmVybmV0ZXNNb2RlbDpLdWJlcm5ldGVzLkt1YmVybmV0ZXNNb2RlbFNlcnZpY2UsIEt1YmVybmV0ZXNTdGF0ZSwgS3ViZXJuZXRlc1NjaGVtYSxcbiAgICAgICAkdGVtcGxhdGVDYWNoZTpuZy5JVGVtcGxhdGVDYWNoZVNlcnZpY2UsICRsb2NhdGlvbjpuZy5JTG9jYXRpb25TZXJ2aWNlLCAkcm91dGVQYXJhbXMsICRodHRwLCAkdGltZW91dCwgS3ViZXJuZXRlc0FwaVVSTCkgPT4ge1xuXG4gICAgICAgICRzY29wZS5rdWJlcm5ldGVzID0gS3ViZXJuZXRlc1N0YXRlO1xuICAgICAgICAkc2NvcGUubW9kZWwgPSBLdWJlcm5ldGVzTW9kZWw7XG4gICAgICAgICRzY29wZS5pZCA9ICRyb3V0ZVBhcmFtc1tcImlkXCJdO1xuICAgICAgICAkc2NvcGUuc2NoZW1hID0gS3ViZXJuZXRlc1NjaGVtYTtcbiAgICAgICAgJHNjb3BlLmNvbmZpZyA9IEt1YmVybmV0ZXNTY2hlbWEuZGVmaW5pdGlvbnMub3NfYnVpbGRfQnVpbGQ7XG5cbiAgICAgICAgS3ViZXJuZXRlcy5pbml0U2hhcmVkKCRzY29wZSwgJGxvY2F0aW9uLCAkaHR0cCwgJHRpbWVvdXQsICRyb3V0ZVBhcmFtcywgS3ViZXJuZXRlc01vZGVsLCBLdWJlcm5ldGVzU3RhdGUsIEt1YmVybmV0ZXNBcGlVUkwpO1xuICAgICAgICAkc2NvcGUuYnJlYWRjcnVtYkNvbmZpZyA9IERldmVsb3Blci5jcmVhdGVQcm9qZWN0QnJlYWRjcnVtYnMoJHNjb3BlLmlkKTtcbiAgICAgICAgJHNjb3BlLnN1YlRhYkNvbmZpZyA9IERldmVsb3Blci5jcmVhdGVQcm9qZWN0U3ViTmF2QmFycygkc2NvcGUuaWQsIG51bGwsICRzY29wZSk7XG5cbiAgICAgICAgJHNjb3BlLiRvbigna3ViZXJuZXRlc01vZGVsVXBkYXRlZCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICB1cGRhdGVEYXRhKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgICRzY29wZS4kb24oJyRyb3V0ZVVwZGF0ZScsICgkZXZlbnQpID0+IHtcbiAgICAgICAgICB1cGRhdGVEYXRhKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHVwZGF0ZURhdGEoKTtcblxuICAgICAgICBmdW5jdGlvbiB1cGRhdGVEYXRhKCkge1xuICAgICAgICAgICRzY29wZS5pdGVtID0gbnVsbDtcbiAgICAgICAgICBpZiAoJHNjb3BlLmlkKSB7XG4gICAgICAgICAgICB2YXIgdXJsID0gYnVpbGRSZXN0VXJsKCRzY29wZS5pZCk7XG4gICAgICAgICAgICAkaHR0cC5nZXQodXJsKS5cbiAgICAgICAgICAgICAgc3VjY2VzcyhmdW5jdGlvbiAoZGF0YSwgc3RhdHVzLCBoZWFkZXJzLCBjb25maWcpIHtcbiAgICAgICAgICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgICAgICAgJHNjb3BlLmVudGl0eSA9IGVucmljaEJ1aWxkKGRhdGEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAkc2NvcGUuZmV0Y2hlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgQ29yZS4kYXBwbHkoJHNjb3BlKTtcbiAgICAgICAgICAgICAgfSkuXG4gICAgICAgICAgICAgIGVycm9yKGZ1bmN0aW9uIChkYXRhLCBzdGF0dXMsIGhlYWRlcnMsIGNvbmZpZykge1xuICAgICAgICAgICAgICAgIGxvZy53YXJuKFwiRmFpbGVkIHRvIGxvYWQgXCIgKyB1cmwgKyBcIiBcIiArIGRhdGEgKyBcIiBcIiArIHN0YXR1cyk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAkc2NvcGUuZmV0Y2hlZCA9IHRydWU7XG4gICAgICAgICAgICBDb3JlLiRhcHBseSgkc2NvcGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfV0pO1xufVxuIiwiLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4uLy4uL2luY2x1ZGVzLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cImt1YmVybmV0ZXNIZWxwZXJzLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cImt1YmVybmV0ZXNQbHVnaW4udHNcIi8+XG5cbm1vZHVsZSBLdWJlcm5ldGVzIHtcblxuICBleHBvcnQgdmFyIEJ1aWxkQ29uZmlnQ29udHJvbGxlciA9IGNvbnRyb2xsZXIoXCJCdWlsZENvbmZpZ0NvbnRyb2xsZXJcIixcbiAgICBbXCIkc2NvcGVcIiwgXCJLdWJlcm5ldGVzTW9kZWxcIiwgXCJLdWJlcm5ldGVzU3RhdGVcIiwgXCJLdWJlcm5ldGVzU2NoZW1hXCIsIFwiJHRlbXBsYXRlQ2FjaGVcIiwgXCIkbG9jYXRpb25cIiwgXCIkcm91dGVQYXJhbXNcIiwgXCIkaHR0cFwiLCBcIiR0aW1lb3V0XCIsIFwiS3ViZXJuZXRlc0FwaVVSTFwiLFxuICAgICAgKCRzY29wZSwgS3ViZXJuZXRlc01vZGVsOkt1YmVybmV0ZXMuS3ViZXJuZXRlc01vZGVsU2VydmljZSwgS3ViZXJuZXRlc1N0YXRlLCBLdWJlcm5ldGVzU2NoZW1hLFxuICAgICAgICR0ZW1wbGF0ZUNhY2hlOm5nLklUZW1wbGF0ZUNhY2hlU2VydmljZSwgJGxvY2F0aW9uOm5nLklMb2NhdGlvblNlcnZpY2UsICRyb3V0ZVBhcmFtcywgJGh0dHAsICR0aW1lb3V0LCBLdWJlcm5ldGVzQXBpVVJMKSA9PiB7XG5cbiAgICAgICAgJHNjb3BlLmt1YmVybmV0ZXMgPSBLdWJlcm5ldGVzU3RhdGU7XG4gICAgICAgICRzY29wZS5tb2RlbCA9IEt1YmVybmV0ZXNNb2RlbDtcbiAgICAgICAgJHNjb3BlLmlkID0gJHJvdXRlUGFyYW1zW1wiaWRcIl07XG4gICAgICAgICRzY29wZS5zY2hlbWEgPSBLdWJlcm5ldGVzU2NoZW1hO1xuICAgICAgICAkc2NvcGUuY29uZmlnID0gS3ViZXJuZXRlc1NjaGVtYS5kZWZpbml0aW9ucy5vc19idWlsZF9CdWlsZENvbmZpZztcblxuICAgICAgICBLdWJlcm5ldGVzLmluaXRTaGFyZWQoJHNjb3BlLCAkbG9jYXRpb24sICRodHRwLCAkdGltZW91dCwgJHJvdXRlUGFyYW1zLCBLdWJlcm5ldGVzTW9kZWwsIEt1YmVybmV0ZXNTdGF0ZSwgS3ViZXJuZXRlc0FwaVVSTCk7XG4gICAgICAgICRzY29wZS5icmVhZGNydW1iQ29uZmlnID0gRGV2ZWxvcGVyLmNyZWF0ZVByb2plY3RCcmVhZGNydW1icygkc2NvcGUuaWQpO1xuICAgICAgICAkc2NvcGUuc3ViVGFiQ29uZmlnID0gRGV2ZWxvcGVyLmNyZWF0ZVByb2plY3RTdWJOYXZCYXJzKCRzY29wZS5pZCk7XG5cbiAgICAgICAgJHNjb3BlLiRvbigna3ViZXJuZXRlc01vZGVsVXBkYXRlZCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICB1cGRhdGVEYXRhKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgICRzY29wZS4kb24oJyRyb3V0ZVVwZGF0ZScsICgkZXZlbnQpID0+IHtcbiAgICAgICAgICB1cGRhdGVEYXRhKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHVwZGF0ZURhdGEoKTtcblxuICAgICAgICBmdW5jdGlvbiB1cGRhdGVEYXRhKCkge1xuICAgICAgICAgICRzY29wZS5pdGVtID0gbnVsbDtcbiAgICAgICAgICBpZiAoJHNjb3BlLmlkKSB7XG4gICAgICAgICAgICB2YXIgdXJsID0gYnVpbGRDb25maWdSZXN0VXJsKCRzY29wZS5pZCk7XG4gICAgICAgICAgICAkaHR0cC5nZXQodXJsKS5cbiAgICAgICAgICAgICAgc3VjY2VzcyhmdW5jdGlvbiAoZGF0YSwgc3RhdHVzLCBoZWFkZXJzLCBjb25maWcpIHtcbiAgICAgICAgICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgICAgICAgJHNjb3BlLmVudGl0eSA9IGRhdGE7XG4gICAgICAgICAgICAgICAgICB2YXIgc29ydGVkQnVpbGRzID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgIGVucmljaEJ1aWxkQ29uZmlnKGRhdGEsIHNvcnRlZEJ1aWxkcyk7XG4gICAgICAgICAgICAgICAgICAkc2NvcGUubW9kZWwuc2V0UHJvamVjdCgkc2NvcGUuZW50aXR5KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJHNjb3BlLmZldGNoZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIENvcmUuJGFwcGx5KCRzY29wZSk7XG4gICAgICAgICAgICAgIH0pLlxuICAgICAgICAgICAgICBlcnJvcihmdW5jdGlvbiAoZGF0YSwgc3RhdHVzLCBoZWFkZXJzLCBjb25maWcpIHtcbiAgICAgICAgICAgICAgICBsb2cud2FybihcIkZhaWxlZCB0byBsb2FkIFwiICsgdXJsICsgXCIgXCIgKyBkYXRhICsgXCIgXCIgKyBzdGF0dXMpO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgJHNjb3BlLmZldGNoZWQgPSB0cnVlO1xuICAgICAgICAgICAgQ29yZS4kYXBwbHkoJHNjb3BlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1dKTtcbn1cbiIsIi8vLyA8cmVmZXJlbmNlIHBhdGg9XCIuLi8uLi9pbmNsdWRlcy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJrdWJlcm5ldGVzSGVscGVycy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJrdWJlcm5ldGVzUGx1Z2luLnRzXCIvPlxuXG5tb2R1bGUgS3ViZXJuZXRlcyB7XG5cbiAgZXhwb3J0IHZhciBCdWlsZENvbmZpZ0VkaXRDb250cm9sbGVyID0gY29udHJvbGxlcihcIkJ1aWxkQ29uZmlnRWRpdENvbnRyb2xsZXJcIixcbiAgICBbXCIkc2NvcGVcIiwgXCJLdWJlcm5ldGVzTW9kZWxcIiwgXCJLdWJlcm5ldGVzU3RhdGVcIiwgXCJLdWJlcm5ldGVzU2NoZW1hXCIsIFwiJHRlbXBsYXRlQ2FjaGVcIiwgXCIkbG9jYXRpb25cIiwgXCIkcm91dGVQYXJhbXNcIiwgXCIkaHR0cFwiLCBcIiR0aW1lb3V0XCIsIFwiS3ViZXJuZXRlc0FwaVVSTFwiLCBcIks4U0NsaWVudEZhY3RvcnlcIixcbiAgICAgICgkc2NvcGUsIEt1YmVybmV0ZXNNb2RlbDpLdWJlcm5ldGVzLkt1YmVybmV0ZXNNb2RlbFNlcnZpY2UsIEt1YmVybmV0ZXNTdGF0ZSwgS3ViZXJuZXRlc1NjaGVtYSxcbiAgICAgICAkdGVtcGxhdGVDYWNoZTpuZy5JVGVtcGxhdGVDYWNoZVNlcnZpY2UsICRsb2NhdGlvbjpuZy5JTG9jYXRpb25TZXJ2aWNlLCAkcm91dGVQYXJhbXMsICRodHRwLCAkdGltZW91dCwgS3ViZXJuZXRlc0FwaVVSTCwgSzhTQ2xpZW50RmFjdG9yeSkgPT4ge1xuXG4gICAgICAgICRzY29wZS5rdWJlcm5ldGVzID0gS3ViZXJuZXRlc1N0YXRlO1xuICAgICAgICAkc2NvcGUubW9kZWwgPSBLdWJlcm5ldGVzTW9kZWw7XG4gICAgICAgICRzY29wZS5pZCA9ICRyb3V0ZVBhcmFtc1tcImlkXCJdO1xuICAgICAgICAkc2NvcGUuc2NoZW1hID0gS3ViZXJuZXRlc1NjaGVtYTtcbiAgICAgICAgJHNjb3BlLmNvbmZpZyA9IEt1YmVybmV0ZXNTY2hlbWEuZGVmaW5pdGlvbnMub3NfYnVpbGRfQnVpbGRDb25maWc7XG4gICAgICAgICRzY29wZS5zcGVjQ29uZmlnID0gS3ViZXJuZXRlc1NjaGVtYS5kZWZpbml0aW9ucy5vc19idWlsZF9CdWlsZENvbmZpZ1NwZWM7XG5cbiAgICAgICAgS3ViZXJuZXRlcy5pbml0U2hhcmVkKCRzY29wZSwgJGxvY2F0aW9uLCAkaHR0cCwgJHRpbWVvdXQsICRyb3V0ZVBhcmFtcywgS3ViZXJuZXRlc01vZGVsLCBLdWJlcm5ldGVzU3RhdGUsIEt1YmVybmV0ZXNBcGlVUkwpO1xuXG4gICAgICAgICRzY29wZS5idWlsZENvbmZpZ0NsaWVudCA9IEs4U0NsaWVudEZhY3RvcnkuY3JlYXRlKFwiYnVpbGRjb25maWdzXCIsICRzY29wZS5uYW1lc3BhY2UpO1xuXG4vKlxuICAgICAgICAkc2NvcGUuJG9uKCdrdWJlcm5ldGVzTW9kZWxVcGRhdGVkJywgZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHVwZGF0ZURhdGEoKTtcbiAgICAgICAgfSk7XG5cbiovXG4gICAgICAgICRzY29wZS4kb24oJyRyb3V0ZVVwZGF0ZScsICgkZXZlbnQpID0+IHtcbiAgICAgICAgICB1cGRhdGVEYXRhKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgICRzY29wZS5zYXZlID0gKCkgPT4ge1xuICAgICAgICAgIGxvZy5pbmZvKFwiU2F2aW5nIVwiKTtcblxuXG4gICAgICAgICAgdmFyIGVudGl0eSA9ICRzY29wZS5lbnRpdHk7XG4gICAgICAgICAgdmFyIHNwZWMgPSAoZW50aXR5IHx8IHt9KS5zcGVjIHx8IHt9O1xuXG4gICAgICAgICAgLy8gVE9ETyB1cGRhdGUgdGhlIGplbmtpbnMgam9iIG5hbWUhXG5cbiAgICAgICAgICAvLyBsZXRzIGRlbGV0ZSBsb3RzIG9mIGNydWZ0XG4gICAgICAgICAgdmFyIHN0cmF0ZWd5ID0gc3BlYy5zdHJhdGVneSB8fCB7fTtcbiAgICAgICAgICBkZWxldGUgc3RyYXRlZ3lbXCJkb2NrZXJTdHJhdGVneVwiXTtcbiAgICAgICAgICBkZWxldGUgc3RyYXRlZ3lbXCJzb3VyY2VTdHJhdGVneVwiXTtcblxuICAgICAgICAgIGRlbGV0ZSBzcGVjW1wicmV2aXNpb25cIl07XG4gICAgICAgICAgZGVsZXRlIHNwZWNbXCJvdXRwdXRcIl07XG4gICAgICAgICAgZGVsZXRlIHNwZWNbXCJyZXNvdXJjZXNcIl07XG4gICAgICAgICAgbG9nLmluZm8oYW5ndWxhci50b0pzb24oZW50aXR5LCB0cnVlKSk7XG5cbiAgICAgICAgICAkc2NvcGUuYnVpbGRDb25maWdDbGllbnQucHV0KGVudGl0eSwgKG9iaikgPT4ge1xuICAgICAgICAgICAgbG9nLmluZm8oXCJidWlsZCBjb25maWcgY3JlYXRlZCFcIik7XG4gICAgICAgICAgfSlcbiAgICAgICAgfTtcblxuICAgICAgICB1cGRhdGVEYXRhKCk7XG5cblxuICAgICAgICB2YXIgamVua2luc1VybCA9IERldmVsb3Blci5qZW5raW5zTGluaygpO1xuICAgICAgICB2YXIgam9iTmFtZSA9IFwiXCI7XG5cbiAgICAgICAgZnVuY3Rpb24gdXBkYXRlRGF0YSgpIHtcbiAgICAgICAgICAkc2NvcGUuaXRlbSA9IG51bGw7XG4gICAgICAgICAgaWYgKCRzY29wZS5pZCkge1xuICAgICAgICAgICAgdmFyIHVybCA9IGJ1aWxkQ29uZmlnUmVzdFVybDtcbiAgICAgICAgICAgICRodHRwLmdldCh1cmwpLlxuICAgICAgICAgICAgICBzdWNjZXNzKGZ1bmN0aW9uIChkYXRhLCBzdGF0dXMsIGhlYWRlcnMsIGNvbmZpZykge1xuICAgICAgICAgICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICAgICAgICAkc2NvcGUuZW50aXR5ID0gZGF0YTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJHNjb3BlLnNwZWMgPSAoJHNjb3BlLmVudGl0eSB8fCB7fSkuc3BlYyB8fCB7fTtcbiAgICAgICAgICAgICAgICAkc2NvcGUuZmV0Y2hlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgQ29yZS4kYXBwbHkoJHNjb3BlKTtcbiAgICAgICAgICAgICAgfSkuXG4gICAgICAgICAgICAgIGVycm9yKGZ1bmN0aW9uIChkYXRhLCBzdGF0dXMsIGhlYWRlcnMsIGNvbmZpZykge1xuICAgICAgICAgICAgICAgIGxvZy53YXJuKFwiRmFpbGVkIHRvIGxvYWQgXCIgKyB1cmwgKyBcIiBcIiArIGRhdGEgKyBcIiBcIiArIHN0YXR1cyk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAkc2NvcGUuZmV0Y2hlZCA9IHRydWU7XG5cbiAgICAgICAgICAgICRzY29wZS5lbnRpdHkgPSB7XG4gICAgICAgICAgICAgIFwiYXBpVmVyc2lvblwiOiBcInYxXCIsXG4gICAgICAgICAgICAgIFwia2luZFwiOiBcIkJ1aWxkQ29uZmlnXCIsXG4gICAgICAgICAgICAgIFwibWV0YWRhdGFcIjoge1xuICAgICAgICAgICAgICAgIFwibmFtZVwiOiBcIlwiLFxuICAgICAgICAgICAgICAgIFwibGFiZWxzXCI6IHtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFwic3BlY1wiOiB7XG4gICAgICAgICAgICAgICAgXCJzb3VyY2VcIjoge1xuICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiR2l0XCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwic3RyYXRlZ3lcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJDdXN0b21cIixcbiAgICAgICAgICAgICAgICAgICAgXCJjdXN0b21TdHJhdGVneVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcImZyb21cIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwia2luZFwiOiBcIkRvY2tlckltYWdlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJuYW1lXCI6IFwiZmFicmljOC9vcGVuc2hpZnQtczJpLWplbmtpbnMtdHJpZ2dlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJlbnZcIjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJuYW1lXCI6IFwiQkFTRV9VUklcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ2YWx1ZVwiOiBqZW5raW5zVXJsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibmFtZVwiOiBcIkpPQl9OQU1FXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidmFsdWVcIjogam9iTmFtZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICRzY29wZS5zcGVjID0gJHNjb3BlLmVudGl0eS5zcGVjO1xuICAgICAgICAgICAgQ29yZS4kYXBwbHkoJHNjb3BlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1dKTtcbn1cbiIsIi8vLyA8cmVmZXJlbmNlIHBhdGg9XCIuLi8uLi9pbmNsdWRlcy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJrdWJlcm5ldGVzUGx1Z2luLnRzXCIvPlxuXG5tb2R1bGUgS3ViZXJuZXRlcyB7XG5cbiAgZXhwb3J0IHZhciBCdWlsZENvbmZpZ3NDb250cm9sbGVyID0gY29udHJvbGxlcihcIkJ1aWxkQ29uZmlnc0NvbnRyb2xsZXJcIiwgW1wiJHNjb3BlXCIsIFwiS3ViZXJuZXRlc01vZGVsXCIsIFwiS3ViZXJuZXRlc0J1aWxkc1wiLCBcIkt1YmVybmV0ZXNTdGF0ZVwiLCBcIiRkaWFsb2dcIiwgXCIkd2luZG93XCIsIFwiJHRlbXBsYXRlQ2FjaGVcIiwgXCIkcm91dGVQYXJhbXNcIiwgXCIkbG9jYXRpb25cIiwgXCJsb2NhbFN0b3JhZ2VcIiwgXCIkaHR0cFwiLCBcIiR0aW1lb3V0XCIsIFwiS3ViZXJuZXRlc0FwaVVSTFwiLFxuICAgICgkc2NvcGUsIEt1YmVybmV0ZXNNb2RlbDpLdWJlcm5ldGVzLkt1YmVybmV0ZXNNb2RlbFNlcnZpY2UsIEt1YmVybmV0ZXNCdWlsZHMsIEt1YmVybmV0ZXNTdGF0ZSwgJGRpYWxvZywgJHdpbmRvdywgJHRlbXBsYXRlQ2FjaGUsICRyb3V0ZVBhcmFtcywgJGxvY2F0aW9uOm5nLklMb2NhdGlvblNlcnZpY2UsIGxvY2FsU3RvcmFnZSwgJGh0dHAsICR0aW1lb3V0LCBLdWJlcm5ldGVzQXBpVVJMKSA9PiB7XG5cbiAgICAgICRzY29wZS5rdWJlcm5ldGVzID0gS3ViZXJuZXRlc1N0YXRlO1xuICAgICAgJHNjb3BlLm1vZGVsID0gS3ViZXJuZXRlc01vZGVsO1xuICAgICAgJHNjb3BlLkt1YmVybmV0ZXNCdWlsZHMgPSBLdWJlcm5ldGVzQnVpbGRzO1xuXG4gICAgICAkc2NvcGUudGFibGVDb25maWcgPSB7XG4gICAgICAgIGRhdGE6ICdtb2RlbC5idWlsZGNvbmZpZ3MnLFxuICAgICAgICBzaG93U2VsZWN0aW9uQ2hlY2tib3g6IHRydWUsXG4gICAgICAgIGVuYWJsZVJvd0NsaWNrU2VsZWN0aW9uOiBmYWxzZSxcbiAgICAgICAgbXVsdGlTZWxlY3Q6IHRydWUsXG4gICAgICAgIHNlbGVjdGVkSXRlbXM6IFtdLFxuICAgICAgICBmaWx0ZXJPcHRpb25zOiB7XG4gICAgICAgICAgZmlsdGVyVGV4dDogJGxvY2F0aW9uLnNlYXJjaCgpW1wicVwiXSB8fCAnJ1xuICAgICAgICB9LFxuICAgICAgICBjb2x1bW5EZWZzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgZmllbGQ6ICdtZXRhZGF0YS5uYW1lJyxcbiAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAnTmFtZScsXG4gICAgICAgICAgICBjZWxsVGVtcGxhdGU6ICR0ZW1wbGF0ZUNhY2hlLmdldChcImJ1aWxkQ29uZmlnTGlua1RlbXBsYXRlLmh0bWxcIilcbiAgICAgICAgICB9LFxuLypcbiAgICAgICAgICB7XG4gICAgICAgICAgICBmaWVsZDogJ3NwZWMuc291cmNlLnR5cGUnLFxuICAgICAgICAgICAgZGlzcGxheU5hbWU6ICdTb3VyY2UnXG4gICAgICAgICAgfSxcbiovXG4gICAgICAgICAge1xuICAgICAgICAgICAgZmllbGQ6ICdzcGVjLnNvdXJjZS5naXQudXJpJyxcbiAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAnUmVwb3NpdG9yeSdcbiAgICAgICAgICB9LFxuLypcbiAgICAgICAgICB7XG4gICAgICAgICAgICBmaWVsZDogJ3NwZWMuc3RyYXRlZ3kudHlwZScsXG4gICAgICAgICAgICBkaXNwbGF5TmFtZTogJ1N0cmF0ZWd5J1xuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgZmllbGQ6ICdzcGVjLnN0cmF0ZWd5LnN0aVN0cmF0ZWd5LmltYWdlJyxcbiAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAnU291cmNlIEltYWdlJ1xuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgZmllbGQ6ICdzcGVjLm91dHB1dC5pbWFnZVRhZycsXG4gICAgICAgICAgICBkaXNwbGF5TmFtZTogJ091dHB1dCBJbWFnZSdcbiAgICAgICAgICB9LFxuKi9cbiAgICAgICAgICB7XG4gICAgICAgICAgICBmaWVsZDogJyRmYWJyaWM4Q29kZVZpZXdzJyxcbiAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAnQ29kZScsXG4gICAgICAgICAgICB3aWR0aDogXCIqKipcIixcbiAgICAgICAgICAgIG1pbldpZHRoOiA1MDAsXG4gICAgICAgICAgICBjZWxsVGVtcGxhdGU6ICR0ZW1wbGF0ZUNhY2hlLmdldChcImJ1aWxkQ29uZmlnQ29kZVZpZXdzVGVtcGxhdGUuaHRtbFwiKVxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgZmllbGQ6ICckZmFicmljOEJ1aWxkVmlld3MnLFxuICAgICAgICAgICAgZGlzcGxheU5hbWU6ICdCdWlsZHMnLFxuICAgICAgICAgICAgd2lkdGg6IFwiKioqXCIsXG4gICAgICAgICAgICBtaW5XaWR0aDogNTAwLFxuICAgICAgICAgICAgY2VsbFRlbXBsYXRlOiAkdGVtcGxhdGVDYWNoZS5nZXQoXCJidWlsZENvbmZpZ0J1aWxkVmlld3NUZW1wbGF0ZS5odG1sXCIpXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBmaWVsZDogJyRmYWJyaWM4RW52aXJvbm1lbnRWaWV3cycsXG4gICAgICAgICAgICBkaXNwbGF5TmFtZTogJ0Vudmlyb25tZW50cycsXG4gICAgICAgICAgICB3aWR0aDogXCIqKipcIixcbiAgICAgICAgICAgIG1pbldpZHRoOiA1MDAsXG4gICAgICAgICAgICBjZWxsVGVtcGxhdGU6ICR0ZW1wbGF0ZUNhY2hlLmdldChcImJ1aWxkQ29uZmlnRW52aXJvbm1lbnRWaWV3c1RlbXBsYXRlLmh0bWxcIilcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGZpZWxkOiAnJGZhYnJpYzhUZWFtVmlld3MnLFxuICAgICAgICAgICAgZGlzcGxheU5hbWU6ICdQZW9wbGUnLFxuICAgICAgICAgICAgd2lkdGg6IFwiKioqXCIsXG4gICAgICAgICAgICBtaW5XaWR0aDogNTAwLFxuICAgICAgICAgICAgY2VsbFRlbXBsYXRlOiAkdGVtcGxhdGVDYWNoZS5nZXQoXCJidWlsZENvbmZpZ1RlYW1WaWV3c1RlbXBsYXRlLmh0bWxcIilcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH07XG5cbiAgICAgIEt1YmVybmV0ZXMuaW5pdFNoYXJlZCgkc2NvcGUsICRsb2NhdGlvbiwgJGh0dHAsICR0aW1lb3V0LCAkcm91dGVQYXJhbXMsIEt1YmVybmV0ZXNNb2RlbCwgS3ViZXJuZXRlc1N0YXRlLCBLdWJlcm5ldGVzQXBpVVJMKTtcblxuICAgICAgLy8gVE9ET1xuICAgICAgLy8gJHNjb3BlLmlzTG9nZ2VkSW50b0dvZ3MgPSBGb3JnZS5pc0xvZ2dlZEludG9Hb2dzO1xuXG4gICAgICAkc2NvcGUuZGVsZXRlUHJvbXB0ID0gKHNlbGVjdGVkKSA9PiB7XG4gICAgICAgIFVJLm11bHRpSXRlbUNvbmZpcm1BY3Rpb25EaWFsb2coPFVJLk11bHRpSXRlbUNvbmZpcm1BY3Rpb25PcHRpb25zPntcbiAgICAgICAgICBjb2xsZWN0aW9uOiBzZWxlY3RlZCxcbiAgICAgICAgICBpbmRleDogJyRuYW1lJyxcbiAgICAgICAgICBvbkNsb3NlOiAocmVzdWx0OmJvb2xlYW4pID0+IHtcbiAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICAgICAgZnVuY3Rpb24gZGVsZXRlU2VsZWN0ZWQoc2VsZWN0ZWQsIG5leHQpIHtcbiAgICAgICAgICAgICAgICBpZiAobmV4dCkge1xuICAgICAgICAgICAgICAgICAgZGVsZXRlRW50aXR5KG5leHQsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlU2VsZWN0ZWQoc2VsZWN0ZWQsIHNlbGVjdGVkLnNoaWZ0KCkpO1xuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIHVwZGF0ZURhdGEoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBkZWxldGVTZWxlY3RlZChzZWxlY3RlZCwgc2VsZWN0ZWQuc2hpZnQoKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICB0aXRsZTogJ0RlbGV0ZSBCdWlsZCBDb25maWdzPycsXG4gICAgICAgICAgYWN0aW9uOiAnVGhlIGZvbGxvd2luZyBCdWlsZCBDb25maWdzIHdpbGwgYmUgZGVsZXRlZDonLFxuICAgICAgICAgIG9rVGV4dDogJ0RlbGV0ZScsXG4gICAgICAgICAgb2tDbGFzczogJ2J0bi1kYW5nZXInLFxuICAgICAgICAgIGN1c3RvbTogXCJUaGlzIG9wZXJhdGlvbiBpcyBwZXJtYW5lbnQgb25jZSBjb21wbGV0ZWQhXCIsXG4gICAgICAgICAgY3VzdG9tQ2xhc3M6IFwiYWxlcnQgYWxlcnQtd2FybmluZ1wiXG4gICAgICAgIH0pLm9wZW4oKTtcbiAgICAgIH07XG5cbiAgICAgIGZ1bmN0aW9uIGRlbGV0ZUVudGl0eShzZWxlY3Rpb24sIG5leHRDYWxsYmFjaykge1xuICAgICAgICB2YXIgbmFtZSA9IChzZWxlY3Rpb24gfHwge30pLiRuYW1lO1xuICAgICAgICBpZiAobmFtZSkge1xuICAgICAgICAgIGNvbnNvbGUubG9nKFwiQWJvdXQgdG8gZGVsZXRlIGJ1aWxkIGNvbmZpZzogXCIgKyBuYW1lKTtcbiAgICAgICAgICB2YXIgdXJsID0gYnVpbGRDb25maWdSZXN0VXJsKG5hbWUpO1xuICAgICAgICAgICRodHRwLmRlbGV0ZSh1cmwpLlxuICAgICAgICAgICAgc3VjY2VzcyhmdW5jdGlvbiAoZGF0YSwgc3RhdHVzLCBoZWFkZXJzLCBjb25maWcpIHtcbiAgICAgICAgICAgICAgbmV4dENhbGxiYWNrKCk7XG4gICAgICAgICAgICB9KS5cbiAgICAgICAgICAgIGVycm9yKGZ1bmN0aW9uIChkYXRhLCBzdGF0dXMsIGhlYWRlcnMsIGNvbmZpZykge1xuICAgICAgICAgICAgICBsb2cud2FybihcIkZhaWxlZCB0byBkZWxldGUgYnVpbGQgY29uZmlnIG9uIFwiICsgdXJsICsgXCIgXCIgKyBkYXRhICsgXCIgXCIgKyBzdGF0dXMpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc29sZS5sb2coXCJ3YXJuaW5nOiBubyBuYW1lIGZvciBzZWxlY3Rpb246IFwiICsgYW5ndWxhci50b0pzb24oc2VsZWN0aW9uKSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgZnVuY3Rpb24gdXBkYXRlRGF0YSgpIHtcbi8qXG4gICAgICAgIHZhciB1cmwgPSBidWlsZENvbmZpZ3NSZXN0VVJMKCk7XG4gICAgICAgICRodHRwLmdldCh1cmwpLlxuICAgICAgICAgIHN1Y2Nlc3MoZnVuY3Rpb24gKGRhdGEsIHN0YXR1cywgaGVhZGVycywgY29uZmlnKSB7XG4gICAgICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgICAvL2NvbnNvbGUubG9nKFwiZ290IGRhdGEgXCIgKyBhbmd1bGFyLnRvSnNvbihkYXRhLCB0cnVlKSk7XG4gICAgICAgICAgICAgIHZhciBzb3J0ZWRCdWlsZHMgPSBudWxsO1xuICAgICAgICAgICAgICAkc2NvcGUuYnVpbGRDb25maWdzID0gZW5yaWNoQnVpbGRDb25maWdzKGRhdGEuaXRlbXMsIHNvcnRlZEJ1aWxkcyk7XG4gICAgICAgICAgICAgICRzY29wZS5mZXRjaGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgQ29yZS4kYXBwbHkoJHNjb3BlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KS5cbiAgICAgICAgICBlcnJvcihmdW5jdGlvbiAoZGF0YSwgc3RhdHVzLCBoZWFkZXJzLCBjb25maWcpIHtcbiAgICAgICAgICAgIGxvZy53YXJuKFwiRmFpbGVkIHRvIGxvYWQgXCIgKyB1cmwgKyBcIiBcIiArIGRhdGEgKyBcIiBcIiArIHN0YXR1cyk7XG4gICAgICAgICAgfSk7XG4qL1xuICAgICAgfVxuXG4gICAgICB1cGRhdGVEYXRhKCk7XG4gICAgfV0pO1xufVxuIiwiLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4uLy4uL2luY2x1ZGVzLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cImt1YmVybmV0ZXNIZWxwZXJzLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cImt1YmVybmV0ZXNQbHVnaW4udHNcIi8+XG5cbm1vZHVsZSBLdWJlcm5ldGVzIHtcblxuICBleHBvcnQgdmFyIEJ1aWxkTG9nc0NvbnRyb2xsZXIgPSBjb250cm9sbGVyKFwiQnVpbGRMb2dzQ29udHJvbGxlclwiLFxuICAgIFtcIiRzY29wZVwiLCBcIkt1YmVybmV0ZXNNb2RlbFwiLCBcIkt1YmVybmV0ZXNTdGF0ZVwiLCBcIkt1YmVybmV0ZXNTY2hlbWFcIiwgXCIkdGVtcGxhdGVDYWNoZVwiLCBcIiRsb2NhdGlvblwiLCBcIiRyb3V0ZVBhcmFtc1wiLCBcIiRodHRwXCIsIFwiJHRpbWVvdXRcIiwgXCJLdWJlcm5ldGVzQXBpVVJMXCIsXG4gICAgICAoJHNjb3BlLCBLdWJlcm5ldGVzTW9kZWw6S3ViZXJuZXRlcy5LdWJlcm5ldGVzTW9kZWxTZXJ2aWNlLCBLdWJlcm5ldGVzU3RhdGUsIEt1YmVybmV0ZXNTY2hlbWEsXG4gICAgICAgJHRlbXBsYXRlQ2FjaGU6bmcuSVRlbXBsYXRlQ2FjaGVTZXJ2aWNlLCAkbG9jYXRpb246bmcuSUxvY2F0aW9uU2VydmljZSwgJHJvdXRlUGFyYW1zLCAkaHR0cCwgJHRpbWVvdXQsIEt1YmVybmV0ZXNBcGlVUkwpID0+IHtcblxuICAgICAgICAkc2NvcGUua3ViZXJuZXRlcyA9IEt1YmVybmV0ZXNTdGF0ZTtcbiAgICAgICAgJHNjb3BlLm1vZGVsID0gS3ViZXJuZXRlc01vZGVsO1xuICAgICAgICAkc2NvcGUuaWQgPSAkcm91dGVQYXJhbXNbXCJpZFwiXTtcbiAgICAgICAgJHNjb3BlLnNjaGVtYSA9IEt1YmVybmV0ZXNTY2hlbWE7XG4gICAgICAgICRzY29wZS5jb25maWcgPSBLdWJlcm5ldGVzU2NoZW1hLmRlZmluaXRpb25zLm9zX2J1aWxkX0J1aWxkO1xuXG4gICAgICAgIEt1YmVybmV0ZXMuaW5pdFNoYXJlZCgkc2NvcGUsICRsb2NhdGlvbiwgJGh0dHAsICR0aW1lb3V0LCAkcm91dGVQYXJhbXMsIEt1YmVybmV0ZXNNb2RlbCwgS3ViZXJuZXRlc1N0YXRlLCBLdWJlcm5ldGVzQXBpVVJMKTtcblxuICAgICAgICAkc2NvcGUuJG9uKCdrdWJlcm5ldGVzTW9kZWxVcGRhdGVkJywgZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHVwZGF0ZURhdGEoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgJHNjb3BlLiRvbignJHJvdXRlVXBkYXRlJywgKCRldmVudCkgPT4ge1xuICAgICAgICAgIHVwZGF0ZURhdGEoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgJHNjb3BlLmxvZ3NUZXh0ID0gXCJMb2FkaW5nIGxvZ3MuLi5cIjtcblxuICAgICAgICB1cGRhdGVEYXRhKCk7XG5cbiAgICAgICAgZnVuY3Rpb24gdXBkYXRlRGF0YSgpIHtcbiAgICAgICAgICAkc2NvcGUuaXRlbSA9IG51bGw7XG4gICAgICAgICAgaWYgKCRzY29wZS5pZCkge1xuICAgICAgICAgICAgdmFyIHVybCA9IGJ1aWxkUmVzdFVybCgkc2NvcGUuaWQpO1xuICAgICAgICAgICAgJGh0dHAuZ2V0KHVybCkuXG4gICAgICAgICAgICAgIHN1Y2Nlc3MoZnVuY3Rpb24gKGRhdGEsIHN0YXR1cywgaGVhZGVycywgY29uZmlnKSB7XG4gICAgICAgICAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgICAgICAgICRzY29wZS5lbnRpdHkgPSBlbnJpY2hCdWlsZChkYXRhKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJHNjb3BlLmZldGNoZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIENvcmUuJGFwcGx5KCRzY29wZSk7XG4gICAgICAgICAgICAgIH0pLlxuICAgICAgICAgICAgICBlcnJvcihmdW5jdGlvbiAoZGF0YSwgc3RhdHVzLCBoZWFkZXJzLCBjb25maWcpIHtcbiAgICAgICAgICAgICAgICBsb2cud2FybihcIkZhaWxlZCB0byBsb2FkIFwiICsgdXJsICsgXCIgXCIgKyBkYXRhICsgXCIgXCIgKyBzdGF0dXMpO1xuICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgdXJsID0gYnVpbGRMb2dzUmVzdFVybCgkc2NvcGUuaWQpO1xuICAgICAgICAgICAgJGh0dHAuZ2V0KHVybCkuXG4gICAgICAgICAgICAgIHN1Y2Nlc3MoZnVuY3Rpb24gKGRhdGEsIHN0YXR1cykge1xuICAgICAgICAgICAgICAgICRzY29wZS5sb2dzVGV4dCA9IGRhdGE7XG4gICAgICAgICAgICAgICAgQ29yZS4kYXBwbHkoJHNjb3BlKTtcbiAgICAgICAgICAgICAgfSkuXG4gICAgICAgICAgICAgIGVycm9yKGZ1bmN0aW9uIChkYXRhLCBzdGF0dXMpIHtcbiAgICAgICAgICAgICAgICAkc2NvcGUubG9nc1RleHQgPSBcIkZhaWxlZCB0byBsb2FkIGxvZ3MgZnJvbTogXCIgKyB1cmwgKyBcIiBcIiArIGRhdGEgKyBcIiBzdGF0dXM6IFwiICsgc3RhdHVzO1xuICAgICAgICAgICAgICAgIENvcmUuJGFwcGx5KCRzY29wZSk7XG4gICAgICAgICAgICAgIH0pLlxuICAgICAgICAgICAgICBjYXRjaChmdW5jdGlvbiAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAkc2NvcGUubG9nc1RleHQgPSBcIkZhaWxlZCB0byBsb2FkIGxvZ3M6IFwiICsgYW5ndWxhci50b0pzb24oZXJyb3IsIHRydWUpO1xuICAgICAgICAgICAgICAgIENvcmUuJGFwcGx5KCRzY29wZSk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAkc2NvcGUuZmV0Y2hlZCA9IHRydWU7XG4gICAgICAgICAgICBDb3JlLiRhcHBseSgkc2NvcGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfV0pO1xufVxuIiwiLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4uLy4uL2luY2x1ZGVzLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cImt1YmVybmV0ZXNQbHVnaW4udHNcIi8+XG5cbm1vZHVsZSBLdWJlcm5ldGVzIHtcblxuICBleHBvcnQgdmFyIEJ1aWxkc0NvbnRyb2xsZXIgPSBjb250cm9sbGVyKFwiQnVpbGRzQ29udHJvbGxlclwiLCBbXCIkc2NvcGVcIiwgXCJLdWJlcm5ldGVzTW9kZWxcIiwgXCJLdWJlcm5ldGVzQnVpbGRzXCIsIFwiS3ViZXJuZXRlc1N0YXRlXCIsIFwiJGRpYWxvZ1wiLCBcIiR3aW5kb3dcIiwgXCIkdGVtcGxhdGVDYWNoZVwiLCBcIiRyb3V0ZVBhcmFtc1wiLCBcIiRsb2NhdGlvblwiLCBcImxvY2FsU3RvcmFnZVwiLCBcIiRodHRwXCIsIFwiJHRpbWVvdXRcIiwgXCJLdWJlcm5ldGVzQXBpVVJMXCIsXG4gICAgKCRzY29wZSwgS3ViZXJuZXRlc01vZGVsOkt1YmVybmV0ZXMuS3ViZXJuZXRlc01vZGVsU2VydmljZSwgS3ViZXJuZXRlc0J1aWxkcywgS3ViZXJuZXRlc1N0YXRlLCAkZGlhbG9nLCAkd2luZG93LCAkdGVtcGxhdGVDYWNoZSwgJHJvdXRlUGFyYW1zLCAkbG9jYXRpb246bmcuSUxvY2F0aW9uU2VydmljZSwgbG9jYWxTdG9yYWdlLCAkaHR0cCwgJHRpbWVvdXQsIEt1YmVybmV0ZXNBcGlVUkwpID0+IHtcblxuICAgICAgJHNjb3BlLmt1YmVybmV0ZXMgPSBLdWJlcm5ldGVzU3RhdGU7XG4gICAgICAkc2NvcGUubW9kZWwgPSBLdWJlcm5ldGVzTW9kZWw7XG4gICAgICAkc2NvcGUuS3ViZXJuZXRlc0J1aWxkcyA9IEt1YmVybmV0ZXNCdWlsZHM7XG4gICAgICAkc2NvcGUuYnVpbGRDb25maWdJZCA9ICRyb3V0ZVBhcmFtc1tcImlkXCJdO1xuXG4gICAgICAkc2NvcGUuJG9uKCdrdWJlcm5ldGVzTW9kZWxVcGRhdGVkJywgZnVuY3Rpb24gKCkge1xuICAgICAgICBDb3JlLiRhcHBseSgkc2NvcGUpO1xuICAgICAgfSk7XG5cbiAgICAgICRzY29wZS50YWJsZUNvbmZpZyA9IHtcbiAgICAgICAgZGF0YTogJ2J1aWxkcycsXG4gICAgICAgIHNob3dTZWxlY3Rpb25DaGVja2JveDogdHJ1ZSxcbiAgICAgICAgZW5hYmxlUm93Q2xpY2tTZWxlY3Rpb246IGZhbHNlLFxuICAgICAgICBtdWx0aVNlbGVjdDogdHJ1ZSxcbiAgICAgICAgc2VsZWN0ZWRJdGVtczogW10sXG4gICAgICAgIGZpbHRlck9wdGlvbnM6IHtcbiAgICAgICAgICBmaWx0ZXJUZXh0OiAkbG9jYXRpb24uc2VhcmNoKClbXCJxXCJdIHx8ICcnXG4gICAgICAgIH0sXG4gICAgICAgIGNvbHVtbkRlZnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBmaWVsZDogJ21ldGFkYXRhLm5hbWUnLFxuICAgICAgICAgICAgZGlzcGxheU5hbWU6ICdOYW1lJyxcbiAgICAgICAgICAgIGNlbGxUZW1wbGF0ZTogJHRlbXBsYXRlQ2FjaGUuZ2V0KFwiYnVpbGRMaW5rVGVtcGxhdGUuaHRtbFwiKVxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgZmllbGQ6ICckY3JlYXRpb25EYXRlJyxcbiAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAnVGltZScsXG4gICAgICAgICAgICBkZWZhdWx0U29ydDogdHJ1ZSxcbiAgICAgICAgICAgIGNlbGxUZW1wbGF0ZTogJHRlbXBsYXRlQ2FjaGUuZ2V0KFwiYnVpbGRUaW1lVGVtcGxhdGUuaHRtbFwiKVxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgZmllbGQ6ICdzdGF0dXMnLFxuICAgICAgICAgICAgZGlzcGxheU5hbWU6ICdTdGF0dXMnLFxuICAgICAgICAgICAgY2VsbFRlbXBsYXRlOiAkdGVtcGxhdGVDYWNoZS5nZXQoXCJidWlsZFN0YXR1c1RlbXBsYXRlLmh0bWxcIilcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGZpZWxkOiAnJGxvZ3NMaW5rJyxcbiAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAnTG9ncycsXG4gICAgICAgICAgICBjZWxsVGVtcGxhdGU6ICR0ZW1wbGF0ZUNhY2hlLmdldChcImJ1aWxkTG9nc1RlbXBsYXRlLmh0bWxcIilcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGZpZWxkOiAnJHBvZExpbmsnLFxuICAgICAgICAgICAgZGlzcGxheU5hbWU6ICdCdWlsZCBQb2QnLFxuICAgICAgICAgICAgY2VsbFRlbXBsYXRlOiAkdGVtcGxhdGVDYWNoZS5nZXQoXCJidWlsZFBvZFRlbXBsYXRlLmh0bWxcIilcbiAgICAgICAgICB9LFxuLypcbiAgICAgICAgICB7XG4gICAgICAgICAgICBmaWVsZDogJ3BhcmFtZXRlcnMuc291cmNlLnR5cGUnLFxuICAgICAgICAgICAgZGlzcGxheU5hbWU6ICdTb3VyY2UnXG4gICAgICAgICAgfSxcbiovXG4gICAgICAgICAge1xuICAgICAgICAgICAgZmllbGQ6ICdwYXJhbWV0ZXJzLnNvdXJjZS5naXQudXJpJyxcbiAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAnUmVwb3NpdG9yeScsXG4gICAgICAgICAgICBjZWxsVGVtcGxhdGU6ICR0ZW1wbGF0ZUNhY2hlLmdldChcImJ1aWxkUmVwb3NpdG9yeVRlbXBsYXRlLmh0bWxcIilcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGZpZWxkOiAncGFyYW1ldGVycy5zdHJhdGVneS50eXBlJyxcbiAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAnU3RyYXRlZ3knXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBmaWVsZDogJ3BhcmFtZXRlcnMuc3RyYXRlZ3kuc3RpU3RyYXRlZ3kuaW1hZ2UnLFxuICAgICAgICAgICAgZGlzcGxheU5hbWU6ICdTb3VyY2UgSW1hZ2UnXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBmaWVsZDogJ3BhcmFtZXRlcnMub3V0cHV0LmltYWdlVGFnJyxcbiAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAnT3V0cHV0IEltYWdlJ1xuICAgICAgICAgIH1dXG4gICAgICB9O1xuXG4gICAgICBLdWJlcm5ldGVzLmluaXRTaGFyZWQoJHNjb3BlLCAkbG9jYXRpb24sICRodHRwLCAkdGltZW91dCwgJHJvdXRlUGFyYW1zLCBLdWJlcm5ldGVzTW9kZWwsIEt1YmVybmV0ZXNTdGF0ZSwgS3ViZXJuZXRlc0FwaVVSTCk7XG4gICAgICAkc2NvcGUuYnJlYWRjcnVtYkNvbmZpZyA9IERldmVsb3Blci5jcmVhdGVQcm9qZWN0QnJlYWRjcnVtYnMoJHNjb3BlLmJ1aWxkQ29uZmlnSWQpO1xuICAgICAgJHNjb3BlLnN1YlRhYkNvbmZpZyA9IERldmVsb3Blci5jcmVhdGVQcm9qZWN0U3ViTmF2QmFycygkc2NvcGUuYnVpbGRDb25maWdJZCwgbnVsbCwgJHNjb3BlKTtcblxuICAgICAgJHNjb3BlLiRrZWVwUG9sbGluZyA9ICgpID0+IGtlZXBQb2xsaW5nTW9kZWw7XG4gICAgICAkc2NvcGUuZmV0Y2ggPSBQb2xsSGVscGVycy5zZXR1cFBvbGxpbmcoJHNjb3BlLCAobmV4dDooKSA9PiB2b2lkKSA9PiB7XG4gICAgICAgIHZhciB1cmwgPSBidWlsZHNSZXN0VVJMKCk7XG4gICAgICAgICRodHRwLmdldCh1cmwpLlxuICAgICAgICAgIHN1Y2Nlc3MoZnVuY3Rpb24gKGRhdGEsIHN0YXR1cywgaGVhZGVycywgY29uZmlnKSB7XG4gICAgICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgICAvL2NvbnNvbGUubG9nKFwiZ290IGRhdGEgXCIgKyBhbmd1bGFyLnRvSnNvbihkYXRhLCB0cnVlKSk7XG4gICAgICAgICAgICAgICRzY29wZS5idWlsZHMgPSBlbnJpY2hCdWlsZHMoZGF0YS5pdGVtcyk7XG4gICAgICAgICAgICAgICRzY29wZS5mZXRjaGVkID0gdHJ1ZTtcblxuICAgICAgICAgICAgICBpZiAoJHNjb3BlLm1vZGVsKSB7XG4gICAgICAgICAgICAgICAgJHNjb3BlLmJ1aWxkQ29uZmlnID0gJHNjb3BlLm1vZGVsLmdldEJ1aWxkQ29uZmlnKCRzY29wZS5idWlsZENvbmZpZ0lkKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQ29yZS4kYXBwbHkoJHNjb3BlKTtcbiAgICAgICAgICAgIG5leHQoKTtcbiAgICAgICAgICB9KS5cbiAgICAgICAgICBlcnJvcihmdW5jdGlvbiAoZGF0YSwgc3RhdHVzLCBoZWFkZXJzLCBjb25maWcpIHtcbiAgICAgICAgICAgIGxvZy53YXJuKFwiRmFpbGVkIHRvIGxvYWQgXCIgKyB1cmwgKyBcIiBcIiArIGRhdGEgKyBcIiBcIiArIHN0YXR1cyk7XG4gICAgICAgICAgICBDb3JlLiRhcHBseSgkc2NvcGUpO1xuICAgICAgICAgICAgbmV4dCgpO1xuICAgICAgICAgIH0pO1xuICAgICAgfSk7XG5cbiAgICAgICRzY29wZS5mZXRjaCgpO1xuICAgIH1dKTtcbn1cbiIsIi8vLyA8cmVmZXJlbmNlIHBhdGg9XCIuLi8uLi9pbmNsdWRlcy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJrdWJlcm5ldGVzSGVscGVycy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJrdWJlcm5ldGVzUGx1Z2luLnRzXCIvPlxuXG5tb2R1bGUgS3ViZXJuZXRlcyB7XG5cbiAgLy8gY29udHJvbGxlciBmb3IgY29ubmVjdGluZyB0byBhIHJlbW90ZSBjb250YWluZXIgdmlhIGpvbG9raWFcbiAgZXhwb3J0IHZhciBDb25uZWN0Q29udHJvbGxlciA9IGNvbnRyb2xsZXIoXCJDb25uZWN0Q29udHJvbGxlclwiLCBbXG4gICAgXCIkc2NvcGVcIiwgXCJsb2NhbFN0b3JhZ2VcIiwgXCJ1c2VyRGV0YWlsc1wiLCBcIkNvbm5lY3REaWFsb2dTZXJ2aWNlXCIsIFwiJGJyb3dzZXJcIixcbiAgICAoJHNjb3BlLCBsb2NhbFN0b3JhZ2UsIHVzZXJEZXRhaWxzLCBDb25uZWN0RGlhbG9nU2VydmljZSwgJGJyb3dzZXI6bmcuSUJyb3dzZXJTZXJ2aWNlKSA9PiB7XG5cbiAgICAgIHZhciBiYXNlOmFueSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2Jhc2UnKTtcbiAgICAgIHZhciBiYXNlSHJlZiA9IGJhc2UgJiYgYmFzZS5ocmVmIHx8ICcnO1xuXG4gICAgICAkc2NvcGUuZG9Db25uZWN0ID0gKGVudGl0eSkgPT4ge1xuICAgICAgICB2YXIgY29ubmVjdFVybDphbnkgPSBuZXcgVVJJKGJhc2VIcmVmKS5wYXRoKCcvamF2YS9pbmRleC5odG1sJyk7XG4gICAgICAgIHZhciByZXR1cm5UbyA9IG5ldyBVUkkoKS50b1N0cmluZygpO1xuICAgICAgICB2YXIgdGl0bGUgPSBlbnRpdHkubWV0YWRhdGEubmFtZSB8fCAnVW50aXRsZWQgQ29udGFpbmVyJztcbiAgICAgICAgdmFyIHRva2VuID0gdXNlckRldGFpbHMudG9rZW4gfHwgJyc7XG4gICAgICAgIGNvbm5lY3RVcmwuaGFzaCh0b2tlbikucXVlcnkoe1xuICAgICAgICAgIGpvbG9raWFVcmw6IGVudGl0eS4kam9sb2tpYVVybCxcbiAgICAgICAgICB0aXRsZTogdGl0bGUsXG4gICAgICAgICAgcmV0dXJuVG86IHJldHVyblRvXG4gICAgICAgIH0pO1xuICAgICAgICBsb2cuZGVidWcoXCJDb25uZWN0IFVSSTogXCIsIGNvbm5lY3RVcmwudG9TdHJpbmcoKSk7XG4gICAgICAgIHdpbmRvdy5vcGVuKGNvbm5lY3RVcmwudG9TdHJpbmcoKSk7XG4gICAgICB9O1xuXG4gICAgfV0pO1xufVxuIiwiLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4uLy4uL2luY2x1ZGVzLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cImt1YmVybmV0ZXNIZWxwZXJzLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cImt1YmVybmV0ZXNQbHVnaW4udHNcIi8+XG5cbm1vZHVsZSBLdWJlcm5ldGVzIHtcblxuICBleHBvcnQgdmFyIERlcGxveW1lbnRDb25maWdDb250cm9sbGVyID0gY29udHJvbGxlcihcIkRlcGxveW1lbnRDb25maWdDb250cm9sbGVyXCIsXG4gICAgW1wiJHNjb3BlXCIsIFwiS3ViZXJuZXRlc01vZGVsXCIsIFwiS3ViZXJuZXRlc1N0YXRlXCIsIFwiS3ViZXJuZXRlc1NjaGVtYVwiLCBcIiR0ZW1wbGF0ZUNhY2hlXCIsIFwiJGxvY2F0aW9uXCIsIFwiJHJvdXRlUGFyYW1zXCIsIFwiJGh0dHBcIiwgXCIkdGltZW91dFwiLCBcIkt1YmVybmV0ZXNBcGlVUkxcIixcbiAgICAgICgkc2NvcGUsIEt1YmVybmV0ZXNNb2RlbDpLdWJlcm5ldGVzLkt1YmVybmV0ZXNNb2RlbFNlcnZpY2UsIEt1YmVybmV0ZXNTdGF0ZSwgS3ViZXJuZXRlc1NjaGVtYSxcbiAgICAgICAkdGVtcGxhdGVDYWNoZTpuZy5JVGVtcGxhdGVDYWNoZVNlcnZpY2UsICRsb2NhdGlvbjpuZy5JTG9jYXRpb25TZXJ2aWNlLCAkcm91dGVQYXJhbXMsICRodHRwLCAkdGltZW91dCwgS3ViZXJuZXRlc0FwaVVSTCkgPT4ge1xuXG4gICAgICAgICRzY29wZS5rdWJlcm5ldGVzID0gS3ViZXJuZXRlc1N0YXRlO1xuICAgICAgICAkc2NvcGUubW9kZWwgPSBLdWJlcm5ldGVzTW9kZWw7XG4gICAgICAgICRzY29wZS5pZCA9ICRyb3V0ZVBhcmFtc1tcImlkXCJdO1xuICAgICAgICAkc2NvcGUuc2NoZW1hID0gS3ViZXJuZXRlc1NjaGVtYTtcbiAgICAgICAgJHNjb3BlLmNvbmZpZyA9IEt1YmVybmV0ZXNTY2hlbWEuZGVmaW5pdGlvbnMub3NfZGVwbG95X0RlcGxveW1lbnRDb25maWc7XG5cbiAgICAgICAgS3ViZXJuZXRlcy5pbml0U2hhcmVkKCRzY29wZSwgJGxvY2F0aW9uLCAkaHR0cCwgJHRpbWVvdXQsICRyb3V0ZVBhcmFtcywgS3ViZXJuZXRlc01vZGVsLCBLdWJlcm5ldGVzU3RhdGUsIEt1YmVybmV0ZXNBcGlVUkwpO1xuXG4gICAgICAgICRzY29wZS4kb24oJ2t1YmVybmV0ZXNNb2RlbFVwZGF0ZWQnLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgdXBkYXRlRGF0YSgpO1xuICAgICAgICB9KTtcblxuICAgICAgICAkc2NvcGUuJG9uKCckcm91dGVVcGRhdGUnLCAoJGV2ZW50KSA9PiB7XG4gICAgICAgICAgdXBkYXRlRGF0YSgpO1xuICAgICAgICB9KTtcblxuICAgICAgICB1cGRhdGVEYXRhKCk7XG5cbiAgICAgICAgZnVuY3Rpb24gdXBkYXRlRGF0YSgpIHtcbiAgICAgICAgICAkc2NvcGUuaXRlbSA9IG51bGw7XG4gICAgICAgICAgaWYgKCRzY29wZS5pZCkge1xuICAgICAgICAgICAgdmFyIHVybCA9IGRlcGxveW1lbnRDb25maWdSZXN0VXJsKCRzY29wZS5pZCk7XG4gICAgICAgICAgICAkaHR0cC5nZXQodXJsKS5cbiAgICAgICAgICAgICAgc3VjY2VzcyhmdW5jdGlvbiAoZGF0YSwgc3RhdHVzLCBoZWFkZXJzLCBjb25maWcpIHtcbiAgICAgICAgICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgICAgICAgJHNjb3BlLmVudGl0eSA9IGRhdGE7XG4gICAgICAgICAgICAgICAgICBlbnJpY2hEZXBsb3ltZW50Q29uZmlnKGRhdGEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAkc2NvcGUuZmV0Y2hlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgQ29yZS4kYXBwbHkoJHNjb3BlKTtcbiAgICAgICAgICAgICAgfSkuXG4gICAgICAgICAgICAgIGVycm9yKGZ1bmN0aW9uIChkYXRhLCBzdGF0dXMsIGhlYWRlcnMsIGNvbmZpZykge1xuICAgICAgICAgICAgICAgIGxvZy53YXJuKFwiRmFpbGVkIHRvIGxvYWQgXCIgKyB1cmwgKyBcIiBcIiArIGRhdGEgKyBcIiBcIiArIHN0YXR1cyk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAkc2NvcGUuZmV0Y2hlZCA9IHRydWU7XG4gICAgICAgICAgICBDb3JlLiRhcHBseSgkc2NvcGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfV0pO1xufVxuIiwiLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4uLy4uL2luY2x1ZGVzLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cImt1YmVybmV0ZXNQbHVnaW4udHNcIi8+XG5cbm1vZHVsZSBLdWJlcm5ldGVzIHtcblxuICBleHBvcnQgdmFyIERlcGxveW1lbnRDb25maWdzQ29udHJvbGxlciA9IGNvbnRyb2xsZXIoXCJEZXBsb3ltZW50Q29uZmlnc0NvbnRyb2xsZXJcIiwgW1wiJHNjb3BlXCIsIFwiS3ViZXJuZXRlc01vZGVsXCIsIFwiS3ViZXJuZXRlc0J1aWxkc1wiLCBcIkt1YmVybmV0ZXNTdGF0ZVwiLCBcIiRkaWFsb2dcIiwgXCIkd2luZG93XCIsIFwiJHRlbXBsYXRlQ2FjaGVcIiwgXCIkcm91dGVQYXJhbXNcIiwgXCIkbG9jYXRpb25cIiwgXCJsb2NhbFN0b3JhZ2VcIiwgXCIkaHR0cFwiLCBcIiR0aW1lb3V0XCIsIFwiS3ViZXJuZXRlc0FwaVVSTFwiLFxuICAgICgkc2NvcGUsIEt1YmVybmV0ZXNNb2RlbDpLdWJlcm5ldGVzLkt1YmVybmV0ZXNNb2RlbFNlcnZpY2UsIEt1YmVybmV0ZXNCdWlsZHMsIEt1YmVybmV0ZXNTdGF0ZSwgJGRpYWxvZywgJHdpbmRvdywgJHRlbXBsYXRlQ2FjaGUsICRyb3V0ZVBhcmFtcywgJGxvY2F0aW9uOm5nLklMb2NhdGlvblNlcnZpY2UsIGxvY2FsU3RvcmFnZSwgJGh0dHAsICR0aW1lb3V0LCBLdWJlcm5ldGVzQXBpVVJMKSA9PiB7XG5cbiAgICAgICRzY29wZS5rdWJlcm5ldGVzID0gS3ViZXJuZXRlc1N0YXRlO1xuICAgICAgJHNjb3BlLm1vZGVsID0gS3ViZXJuZXRlc01vZGVsO1xuICAgICAgJHNjb3BlLkt1YmVybmV0ZXNCdWlsZHMgPSBLdWJlcm5ldGVzQnVpbGRzO1xuICAgICAgJHNjb3BlLiRvbigna3ViZXJuZXRlc01vZGVsVXBkYXRlZCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgQ29yZS4kYXBwbHkoJHNjb3BlKTtcbiAgICAgIH0pO1xuICAgICAgJHNjb3BlLmxhYmVsQ2xhc3MgPSBjb250YWluZXJMYWJlbENsYXNzO1xuXG4gICAgICAkc2NvcGUudGFibGVDb25maWcgPSB7XG4gICAgICAgIGRhdGE6ICdkZXBsb3ltZW50Q29uZmlncycsXG4gICAgICAgIHNob3dTZWxlY3Rpb25DaGVja2JveDogdHJ1ZSxcbiAgICAgICAgZW5hYmxlUm93Q2xpY2tTZWxlY3Rpb246IGZhbHNlLFxuICAgICAgICBtdWx0aVNlbGVjdDogdHJ1ZSxcbiAgICAgICAgc2VsZWN0ZWRJdGVtczogW10sXG4gICAgICAgIGZpbHRlck9wdGlvbnM6IHtcbiAgICAgICAgICBmaWx0ZXJUZXh0OiAkbG9jYXRpb24uc2VhcmNoKClbXCJxXCJdIHx8ICcnXG4gICAgICAgIH0sXG4gICAgICAgIGNvbHVtbkRlZnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBmaWVsZDogJ21ldGFkYXRhLm5hbWUnLFxuICAgICAgICAgICAgZGlzcGxheU5hbWU6ICdOYW1lJyxcbiAgICAgICAgICAgIGNlbGxUZW1wbGF0ZTogJHRlbXBsYXRlQ2FjaGUuZ2V0KFwiZGVwbG95bWVudENvbmZpZ0xpbmtUZW1wbGF0ZS5odG1sXCIpXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBmaWVsZDogJ21ldGFkYXRhLm5hbWVzcGFjZScsXG4gICAgICAgICAgICBkaXNwbGF5TmFtZTogJ05hbWVzcGFjZSdcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGZpZWxkOiAnJGltYWdlQ2hhbmdlUGFyYW1zLmF1dG9tYXRpYycsXG4gICAgICAgICAgICBkaXNwbGF5TmFtZTogJ0F1dG9tYXRpYydcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGZpZWxkOiAnJGltYWdlQ2hhbmdlUGFyYW1zLiRjb250YWluZXJOYW1lcycsXG4gICAgICAgICAgICBkaXNwbGF5TmFtZTogJ0NvbnRhaW5lciBOYW1lcydcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGZpZWxkOiAnJGltYWdlQ2hhbmdlUGFyYW1zLmZyb20ubmFtZScsXG4gICAgICAgICAgICBkaXNwbGF5TmFtZTogJ0Zyb20gaW1hZ2UnXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBmaWVsZDogJyRpbWFnZUNoYW5nZVBhcmFtcy50YWcnLFxuICAgICAgICAgICAgZGlzcGxheU5hbWU6ICdUYWcnXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBmaWVsZDogJ3RlbXBsYXRlLmNvbnRyb2xsZXJUZW1wbGF0ZS5wb2RUZW1wbGF0ZS50YWdzJyxcbiAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAnTGFiZWxzJyxcbiAgICAgICAgICAgIGNlbGxUZW1wbGF0ZTogJHRlbXBsYXRlQ2FjaGUuZ2V0KFwiZGVwbG95bWVudENvbmZpZ0xhYmVsVGVtcGxhdGUuaHRtbFwiKVxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfTtcblxuICAgICAgS3ViZXJuZXRlcy5pbml0U2hhcmVkKCRzY29wZSwgJGxvY2F0aW9uLCAkaHR0cCwgJHRpbWVvdXQsICRyb3V0ZVBhcmFtcywgS3ViZXJuZXRlc01vZGVsLCBLdWJlcm5ldGVzU3RhdGUsIEt1YmVybmV0ZXNBcGlVUkwpO1xuXG4gICAgICAkc2NvcGUuZGVsZXRlUHJvbXB0ID0gKHNlbGVjdGVkKSA9PiB7XG4gICAgICAgIFVJLm11bHRpSXRlbUNvbmZpcm1BY3Rpb25EaWFsb2coPFVJLk11bHRpSXRlbUNvbmZpcm1BY3Rpb25PcHRpb25zPntcbiAgICAgICAgICBjb2xsZWN0aW9uOiBzZWxlY3RlZCxcbiAgICAgICAgICBpbmRleDogJyRuYW1lJyxcbiAgICAgICAgICBvbkNsb3NlOiAocmVzdWx0OmJvb2xlYW4pID0+IHtcbiAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICAgICAgZnVuY3Rpb24gZGVsZXRlU2VsZWN0ZWQoc2VsZWN0ZWQsIG5leHQpIHtcbiAgICAgICAgICAgICAgICBpZiAobmV4dCkge1xuICAgICAgICAgICAgICAgICAgZGVsZXRlRW50aXR5KG5leHQsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlU2VsZWN0ZWQoc2VsZWN0ZWQsIHNlbGVjdGVkLnNoaWZ0KCkpO1xuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIHVwZGF0ZURhdGEoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBkZWxldGVTZWxlY3RlZChzZWxlY3RlZCwgc2VsZWN0ZWQuc2hpZnQoKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICB0aXRsZTogJ0RlbGV0ZSBEZXBsb3ltZW50PycsXG4gICAgICAgICAgYWN0aW9uOiAnVGhlIGZvbGxvd2luZyBEZXBsb3ltZW50cyB3aWxsIGJlIGRlbGV0ZWQ6JyxcbiAgICAgICAgICBva1RleHQ6ICdEZWxldGUnLFxuICAgICAgICAgIG9rQ2xhc3M6ICdidG4tZGFuZ2VyJyxcbiAgICAgICAgICBjdXN0b206IFwiVGhpcyBvcGVyYXRpb24gaXMgcGVybWFuZW50IG9uY2UgY29tcGxldGVkIVwiLFxuICAgICAgICAgIGN1c3RvbUNsYXNzOiBcImFsZXJ0IGFsZXJ0LXdhcm5pbmdcIlxuICAgICAgICB9KS5vcGVuKCk7XG4gICAgICB9O1xuXG4gICAgICBmdW5jdGlvbiBkZWxldGVFbnRpdHkoc2VsZWN0aW9uLCBuZXh0Q2FsbGJhY2spIHtcbiAgICAgICAgdmFyIG5hbWUgPSAoc2VsZWN0aW9uIHx8IHt9KS4kbmFtZTtcbiAgICAgICAgaWYgKG5hbWUpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhcIkFib3V0IHRvIGRlbGV0ZSBkZXBsb3ltZW50IGNvbmZpZzogXCIgKyBuYW1lKTtcbiAgICAgICAgICB2YXIgdXJsID0gZGVwbG95bWVudENvbmZpZ1Jlc3RVcmwobmFtZSk7XG4gICAgICAgICAgJGh0dHAuZGVsZXRlKHVybCkuXG4gICAgICAgICAgICBzdWNjZXNzKGZ1bmN0aW9uIChkYXRhLCBzdGF0dXMsIGhlYWRlcnMsIGNvbmZpZykge1xuICAgICAgICAgICAgICBuZXh0Q2FsbGJhY2soKTtcbiAgICAgICAgICAgIH0pLlxuICAgICAgICAgICAgZXJyb3IoZnVuY3Rpb24gKGRhdGEsIHN0YXR1cywgaGVhZGVycywgY29uZmlnKSB7XG4gICAgICAgICAgICAgIGxvZy53YXJuKFwiRmFpbGVkIHRvIGRlbGV0ZSBkZXBsb3ltZW50IGNvbmZpZyBvbiBcIiArIHVybCArIFwiIFwiICsgZGF0YSArIFwiIFwiICsgc3RhdHVzKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnNvbGUubG9nKFwid2FybmluZzogbm8gbmFtZSBmb3Igc2VsZWN0aW9uOiBcIiArIGFuZ3VsYXIudG9Kc29uKHNlbGVjdGlvbikpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGZ1bmN0aW9uIHVwZGF0ZURhdGEoKSB7XG4gICAgICAgIHZhciB1cmwgPSBkZXBsb3ltZW50Q29uZmlnc1Jlc3RVUkwoKTtcbiAgICAgICAgJGh0dHAuZ2V0KHVybCkuXG4gICAgICAgICAgc3VjY2VzcyhmdW5jdGlvbiAoZGF0YSwgc3RhdHVzLCBoZWFkZXJzLCBjb25maWcpIHtcbiAgICAgICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICAgIC8vY29uc29sZS5sb2coXCJnb3QgZGF0YSBcIiArIGFuZ3VsYXIudG9Kc29uKGRhdGEsIHRydWUpKTtcbiAgICAgICAgICAgICAgJHNjb3BlLmRlcGxveW1lbnRDb25maWdzID0gZW5yaWNoRGVwbG95bWVudENvbmZpZ3MoZGF0YS5pdGVtcyk7XG4gICAgICAgICAgICAgICRzY29wZS5mZXRjaGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgQ29yZS4kYXBwbHkoJHNjb3BlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KS5cbiAgICAgICAgICBlcnJvcihmdW5jdGlvbiAoZGF0YSwgc3RhdHVzLCBoZWFkZXJzLCBjb25maWcpIHtcbiAgICAgICAgICAgIGxvZy53YXJuKFwiRmFpbGVkIHRvIGxvYWQgXCIgKyB1cmwgKyBcIiBcIiArIGRhdGEgKyBcIiBcIiArIHN0YXR1cyk7XG4gICAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHVwZGF0ZURhdGEoKTtcbiAgICB9XSk7XG59XG4iLCIvLy8gPHJlZmVyZW5jZSBwYXRoPVwiLi4vLi4vaW5jbHVkZXMudHNcIi8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwia3ViZXJuZXRlc0hlbHBlcnMudHNcIi8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwia3ViZXJuZXRlc1BsdWdpbi50c1wiLz5cblxubW9kdWxlIEt1YmVybmV0ZXMge1xuXG4gIGV4cG9ydCB2YXIgRXZlbnRzQ29udHJvbGxlciA9IGNvbnRyb2xsZXIoXCJFdmVudHNDb250cm9sbGVyXCIsXG4gICAgW1wiJHNjb3BlXCIsIFwiS3ViZXJuZXRlc01vZGVsXCIsIFwiS3ViZXJuZXRlc1NlcnZpY2VzXCIsIFwiS3ViZXJuZXRlc1BvZHNcIiwgXCJLdWJlcm5ldGVzU3RhdGVcIiwgXCIkdGVtcGxhdGVDYWNoZVwiLCBcIiRsb2NhdGlvblwiLCBcIiRyb3V0ZVBhcmFtc1wiLCBcIiRodHRwXCIsIFwiJHRpbWVvdXRcIiwgXCJLdWJlcm5ldGVzQXBpVVJMXCIsXG4gICAgICAoJHNjb3BlLCBLdWJlcm5ldGVzTW9kZWw6IEt1YmVybmV0ZXMuS3ViZXJuZXRlc01vZGVsU2VydmljZSwgS3ViZXJuZXRlc1NlcnZpY2VzOm5nLnJlc291cmNlLklSZXNvdXJjZUNsYXNzLCBLdWJlcm5ldGVzUG9kczpuZy5yZXNvdXJjZS5JUmVzb3VyY2VDbGFzcywgS3ViZXJuZXRlc1N0YXRlLFxuICAgICAgICR0ZW1wbGF0ZUNhY2hlOm5nLklUZW1wbGF0ZUNhY2hlU2VydmljZSwgJGxvY2F0aW9uOm5nLklMb2NhdGlvblNlcnZpY2UsICRyb3V0ZVBhcmFtcywgJGh0dHAsICR0aW1lb3V0LCBLdWJlcm5ldGVzQXBpVVJMKSA9PiB7XG5cbiAgICAkc2NvcGUua3ViZXJuZXRlcyA9IEt1YmVybmV0ZXNTdGF0ZTtcbiAgICAkc2NvcGUubW9kZWwgPSBLdWJlcm5ldGVzTW9kZWw7XG5cbiAgICBDb250cm9sbGVySGVscGVycy5iaW5kTW9kZWxUb1NlYXJjaFBhcmFtKCRzY29wZSwgJGxvY2F0aW9uLCAnbW9kZScsICdtb2RlJywgJ2xpc3QnKTtcblxuICAgICRzY29wZS50YWJsZUNvbmZpZyA9IHtcbiAgICAgIGRhdGE6ICdtb2RlbC5ldmVudHMnLFxuICAgICAgc2hvd1NlbGVjdGlvbkNoZWNrYm94OiB0cnVlLFxuICAgICAgZW5hYmxlUm93Q2xpY2tTZWxlY3Rpb246IGZhbHNlLFxuICAgICAgbXVsdGlTZWxlY3Q6IHRydWUsXG4gICAgICBzZWxlY3RlZEl0ZW1zOiBbXSxcbiAgICAgIGZpbHRlck9wdGlvbnM6IHtcbiAgICAgICAgZmlsdGVyVGV4dDogJGxvY2F0aW9uLnNlYXJjaCgpW1wicVwiXSB8fCAnJ1xuICAgICAgfSxcbiAgICAgIGNvbHVtbkRlZnM6IFtcbiAgICAgICAgeyBmaWVsZDogJyRmaXJzdFRpbWVzdGFtcCcsXG4gICAgICAgICAgZGlzcGxheU5hbWU6ICdGaXJzdCBTZWVuJyxcbiAgICAgICAgICBjZWxsVGVtcGxhdGU6ICR0ZW1wbGF0ZUNhY2hlLmdldChcImZpcnN0VGltZXN0YW1wVGVtcGxhdGUuaHRtbFwiKVxuICAgICAgICB9LFxuICAgICAgICB7IGZpZWxkOiAnJGxhc3RUaW1lc3RhbXAnLFxuICAgICAgICAgIGRpc3BsYXlOYW1lOiAnTGFzdCBTZWVuJyxcbiAgICAgICAgICBjZWxsVGVtcGxhdGU6ICR0ZW1wbGF0ZUNhY2hlLmdldChcImxhc3RUaW1lc3RhbXBUZW1wbGF0ZS5odG1sXCIpXG4gICAgICAgIH0sXG4gICAgICAgIHsgZmllbGQ6ICdjb3VudCcsXG4gICAgICAgICAgZGlzcGxheU5hbWU6ICdDb3VudCdcbiAgICAgICAgfSxcbiAgICAgICAgeyBmaWVsZDogJ2ludm9sdmVkT2JqZWN0Lm5hbWUnLFxuICAgICAgICAgIGRpc3BsYXlOYW1lOiAnTmFtZScsXG4gICAgICAgICAgY2VsbFRlbXBsYXRlOiAkdGVtcGxhdGVDYWNoZS5nZXQoXCJldmVudE5hbWVUZW1wbGF0ZS5odG1sXCIpXG4gICAgICAgIH0sXG4gICAgICAgIHsgZmllbGQ6ICdpbnZvbHZlZE9iamVjdC5raW5kJyxcbiAgICAgICAgICBkaXNwbGF5TmFtZTogJ0tpbmQnLFxuICAgICAgICAgIGNlbGxUZW1wbGF0ZTogJHRlbXBsYXRlQ2FjaGUuZ2V0KFwiZXZlbnRLaW5kVGVtcGxhdGUuaHRtbFwiKVxuICAgICAgICB9LFxuICAgICAgICB7IGZpZWxkOiAnaW52b2x2ZWRPYmplY3QuZmllbGRQYXRoJyxcbiAgICAgICAgICBkaXNwbGF5TmFtZTogJ1N1YmplY3QnXG4gICAgICAgIH0sXG4gICAgICAgIHsgZmllbGQ6ICdyZWFzb24nLFxuICAgICAgICAgIGRpc3BsYXlOYW1lOiAnUmVhc29uJ1xuICAgICAgICB9LFxuICAgICAgICB7IGZpZWxkOiAnc291cmNlJyxcbiAgICAgICAgICBkaXNwbGF5TmFtZTogJ1NvdXJjZScsXG4gICAgICAgICAgY2VsbFRlbXBsYXRlOiAkdGVtcGxhdGVDYWNoZS5nZXQoXCJldmVudFNvdXJjZVRlbXBsYXRlLmh0bWxcIilcbiAgICAgICAgfSxcbiAgICAgICAgeyBmaWVsZDogJ21lc3NhZ2UnLFxuICAgICAgICAgIGRpc3BsYXlOYW1lOiAnTWVzc2FnZSdcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH07XG5cbiAgICBLdWJlcm5ldGVzLmluaXRTaGFyZWQoJHNjb3BlLCAkbG9jYXRpb24sICRodHRwLCAkdGltZW91dCwgJHJvdXRlUGFyYW1zLCBLdWJlcm5ldGVzTW9kZWwsIEt1YmVybmV0ZXNTdGF0ZSwgS3ViZXJuZXRlc0FwaVVSTCk7XG4gIH1dKTtcbn1cbiIsIi8vLyA8cmVmZXJlbmNlIHBhdGg9XCIuLi8uLi9pbmNsdWRlcy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJrdWJlcm5ldGVzUGx1Z2luLnRzXCIvPlxuXG5tb2R1bGUgS3ViZXJuZXRlcyB7XG5cbiAgZXhwb3J0IHZhciBGQUJSSUM4X1BST0pFQ1RfSlNPTiA9IFwiZmFicmljOFByb2plY3RKc29uXCI7XG5cbiAgZnVuY3Rpb24gYnlJZCh0aGluZykge1xuICAgIHJldHVybiB0aGluZy5pZDtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZUtleShuYW1lc3BhY2UsIGlkLCBraW5kKSB7XG4gICAgcmV0dXJuIChuYW1lc3BhY2UgfHwgXCJcIikgKyBcIi1cIiArIChraW5kIHx8ICd1bmRlZmluZWQnKS50b0xvd2VyQ2FzZSgpICsgJy0nICsgKGlkIHx8ICd1bmRlZmluZWQnKS5yZXBsYWNlKC9cXC4vZywgJy0nKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHBvcHVsYXRlS2V5KGl0ZW0pIHtcbiAgICB2YXIgcmVzdWx0ID0gaXRlbTtcbiAgICByZXN1bHRbJ19rZXknXSA9IGNyZWF0ZUtleShnZXROYW1lc3BhY2UoaXRlbSksIGdldE5hbWUoaXRlbSksIGdldEtpbmQoaXRlbSkpO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBmdW5jdGlvbiBwb3B1bGF0ZUtleXMoaXRlbXM6QXJyYXk8YW55Pikge1xuICAgIHZhciByZXN1bHQgPSBbXTtcbiAgICBhbmd1bGFyLmZvckVhY2goaXRlbXMsIChpdGVtKSA9PiB7XG4gICAgICByZXN1bHQucHVzaChwb3B1bGF0ZUtleShpdGVtKSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHNlbGVjdFBvZHMocG9kcywgbmFtZXNwYWNlLCBsYWJlbHMpIHtcbiAgICByZXR1cm4gcG9kcy5maWx0ZXIoKHBvZCkgPT4ge1xuICAgICAgcmV0dXJuIGdldE5hbWVzcGFjZShwb2QpID09PSBuYW1lc3BhY2UgJiYgc2VsZWN0b3JNYXRjaGVzKGxhYmVscywgZ2V0TGFiZWxzKHBvZCkpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBvYmplY3Qgd2hpY2gga2VlcHMgdHJhY2sgb2YgYWxsIHRoZSBwb2RzLCByZXBsaWNhdGlvbiBjb250cm9sbGVycywgc2VydmljZXMgYW5kIHRoZWlyIGFzc29jaWF0aW9uc1xuICAgKi9cbiAgZXhwb3J0IGNsYXNzIEt1YmVybmV0ZXNNb2RlbFNlcnZpY2Uge1xuICAgIHB1YmxpYyBrdWJlcm5ldGVzID0gPEt1YmVybmV0ZXNTdGF0ZT4gbnVsbDtcbiAgICBwdWJsaWMgYXBwcyA9IFtdO1xuICAgIHB1YmxpYyBzZXJ2aWNlcyA9IFtdO1xuXG4gICAgcHVibGljIHJlcGxpY2F0aW9uY29udHJvbGxlcnMgPSBbXTtcbiAgICBwdWJsaWMgZ2V0IHJlcGxpY2F0aW9uQ29udHJvbGxlcnMoKTpBcnJheTxhbnk+IHtcbiAgICAgIHJldHVybiB0aGlzLnJlcGxpY2F0aW9uY29udHJvbGxlcnM7XG4gICAgfVxuICAgIHB1YmxpYyBzZXQgcmVwbGljYXRpb25Db250cm9sbGVycyhyZXBsaWNhdGlvbkNvbnRyb2xsZXJzOkFycmF5PGFueT4pIHtcbiAgICAgIHRoaXMucmVwbGljYXRpb25jb250cm9sbGVycyA9IHJlcGxpY2F0aW9uQ29udHJvbGxlcnM7XG4gICAgfVxuICAgIHB1YmxpYyBwb2RzID0gW107XG4gICAgcHVibGljIGhvc3RzID0gW107XG4gICAgcHVibGljIGdldCBuYW1lc3BhY2VzKCk6QXJyYXk8c3RyaW5nPiB7XG4gICAgICByZXR1cm4gdGhpcy5rdWJlcm5ldGVzLm5hbWVzcGFjZXM7XG4gICAgfVxuICAgIC8vcHVibGljIG5hbWVzcGFjZXMgPSBbXTtcbiAgICBwdWJsaWMgcm91dGVzID0gW107XG4gICAgcHVibGljIHRlbXBsYXRlcyA9IFtdO1xuICAgIHB1YmxpYyByZWRyYXcgPSBmYWxzZTtcbiAgICBwdWJsaWMgcmVzb3VyY2VWZXJzaW9ucyA9IHt9O1xuXG4gICAgLy8gdmFyaW91cyB2aWV3cyBvbiB0aGUgZGF0YVxuICAgIHB1YmxpYyBwb2RzQnlIb3N0ID0ge307XG4gICAgcHVibGljIHNlcnZpY2VzQnlLZXkgPSB7fTtcbiAgICBwdWJsaWMgcmVwbGljYXRpb25Db250cm9sbGVyc0J5S2V5ID0ge307XG4gICAgcHVibGljIHBvZHNCeUtleSA9IHt9O1xuXG4gICAgcHVibGljIGFwcEluZm9zID0gW107XG4gICAgcHVibGljIGFwcFZpZXdzID0gW107XG4gICAgcHVibGljIGFwcEZvbGRlcnMgPSBbXTtcblxuICAgIHB1YmxpYyBmZXRjaGVkID0gZmFsc2U7XG4gICAgcHVibGljIHNob3dSdW5CdXR0b24gPSBmYWxzZTtcblxuICAgIHB1YmxpYyBidWlsZGNvbmZpZ3MgPSBbXTtcbiAgICBwdWJsaWMgZXZlbnRzID0gW107XG4gICAgcHVibGljIHdvcmtzcGFjZXMgPSBbXTtcbiAgICBwdWJsaWMgcHJvamVjdHMgPSBbXTtcbiAgICBwdWJsaWMgcHJvamVjdCA9IG51bGw7XG5cbiAgICBwdWJsaWMgZ2V0IHNlcnZpY2VBcHBzKCk6QXJyYXk8YW55PiB7XG4gICAgICByZXR1cm4gXy5maWx0ZXIodGhpcy5zZXJ2aWNlcywgKHMpID0+IHtcbiAgICAgICAgcmV0dXJuIHMuJGhvc3QgJiYgcy4kc2VydmljZVVybCAmJiBzLiRwb2RDb3VudFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljICRrZWVwUG9sbGluZygpIHtcbiAgICAgIHJldHVybiBrZWVwUG9sbGluZ01vZGVsO1xuICAgIH1cblxuICAgIHB1YmxpYyBvclJlZHJhdyhmbGFnKSB7XG4gICAgICB0aGlzLnJlZHJhdyA9IHRoaXMucmVkcmF3IHx8IGZsYWc7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFNlcnZpY2UobmFtZXNwYWNlLCBpZCkge1xuICAgICAgcmV0dXJuIHRoaXMuc2VydmljZXNCeUtleVtjcmVhdGVLZXkobmFtZXNwYWNlLCBpZCwgJ3NlcnZpY2UnKV07XG4gICAgfVxuXG4gICAgcHVibGljIGdldFJlcGxpY2F0aW9uQ29udHJvbGxlcihuYW1lc3BhY2UsIGlkKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZXBsaWNhdGlvbkNvbnRyb2xsZXJzQnlLZXlbY3JlYXRlS2V5KG5hbWVzcGFjZSwgaWQsICdyZXBsaWNhdGlvbkNvbnRyb2xsZXInKV07XG4gICAgfVxuXG4gICAgcHVibGljIGdldFBvZChuYW1lc3BhY2UsIGlkKSB7XG4gICAgICByZXR1cm4gdGhpcy5wb2RzQnlLZXlbY3JlYXRlS2V5KG5hbWVzcGFjZSwgaWQsICdwb2QnKV07XG4gICAgfVxuXG4gICAgcHVibGljIHBvZHNGb3JOYW1lc3BhY2UobmFtZXNwYWNlID0gdGhpcy5jdXJyZW50TmFtZXNwYWNlKCkpIHtcbiAgICAgIHJldHVybiBfLmZpbHRlcih0aGlzLnBvZHMsIHsgbmFtZXNwYWNlOiBuYW1lc3BhY2UgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEJ1aWxkQ29uZmlnKG5hbWUpIHtcbiAgICAgIHJldHVybiBfLmZpbmQodGhpcy5idWlsZGNvbmZpZ3MsIHsgJG5hbWU6IG5hbWUgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFByb2plY3QobmFtZSwgbnMgPSB0aGlzLmN1cnJlbnROYW1lc3BhY2UoKSkge1xuICAgICAgdmFyIGJ1aWxkQ29uZmlnID0gdGhpcy5wcm9qZWN0O1xuICAgICAgaWYgKCFidWlsZENvbmZpZykge1xuICAgICAgICB2YXIgdGV4dCA9IGxvY2FsU3RvcmFnZVtGQUJSSUM4X1BST0pFQ1RfSlNPTl07XG4gICAgICAgIGlmICh0ZXh0KSB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGJ1aWxkQ29uZmlnID0gYW5ndWxhci5mcm9tSnNvbih0ZXh0KTtcbiAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICBsb2cud2FybihcIkNvdWxkIG5vdCBwYXJzZSBqc29uIGZvciBcIiArIEZBQlJJQzhfUFJPSkVDVF9KU09OICsgXCIuIFdhczogXCIgKyB0ZXh0ICsgXCIuIFwiICsgZSwgZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoYnVpbGRDb25maWcgJiYgbnMgIT0gZ2V0TmFtZXNwYWNlKGJ1aWxkQ29uZmlnKSAmJiBuYW1lICE9IGJ1aWxkQ29uZmlnLiRuYW1lKSB7XG4gICAgICAgIGJ1aWxkQ29uZmlnID0gdGhpcy5nZXRCdWlsZENvbmZpZyhuYW1lKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBidWlsZENvbmZpZztcbiAgICB9XG5cblxuICAgIHB1YmxpYyBzZXRQcm9qZWN0KGJ1aWxkQ29uZmlnKSB7XG4gICAgICB0aGlzLnByb2plY3QgPSBidWlsZENvbmZpZztcbiAgICAgIGlmIChidWlsZENvbmZpZykge1xuICAgICAgICAvLyBsZXRzIHN0b3JlIGluIGxvY2FsIHN0b3JhZ2VcbiAgICAgICAgdmFyIGxvY2FsU3RvcmFnZSA9IGluamVjdChcImxvY2FsU3RvcmFnZVwiKTtcbiAgICAgICAgaWYgKGxvY2FsU3RvcmFnZSkge1xuICAgICAgICAgIGxvY2FsU3RvcmFnZVtGQUJSSUM4X1BST0pFQ1RfSlNPTl0gPSBhbmd1bGFyLnRvSnNvbihidWlsZENvbmZpZyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IHNlbGVjdGVkIG5hbWVzcGFjZSBvciB0aGUgZGVmYXVsdCBuYW1lc3BhY2VcbiAgICAgKi9cbiAgICBwdWJsaWMgY3VycmVudE5hbWVzcGFjZSgpIHtcbiAgICAgIHZhciBhbnN3ZXIgPSBudWxsO1xuICAgICAgaWYgKHRoaXMua3ViZXJuZXRlcykge1xuICAgICAgICBhbnN3ZXIgPSB0aGlzLmt1YmVybmV0ZXMuc2VsZWN0ZWROYW1lc3BhY2U7XG4gICAgICB9XG4gICAgICByZXR1cm4gYW5zd2VyIHx8IGRlZmF1bHROYW1lc3BhY2U7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHVwZGF0ZUljb25VcmxBbmRBcHBJbmZvKGVudGl0eSwgbmFtZUZpZWxkOiBzdHJpbmcpIHtcbiAgICAgIHZhciBhbnN3ZXIgPSBudWxsO1xuICAgICAgdmFyIGlkID0gZ2V0TmFtZShlbnRpdHkpO1xuICAgICAgZW50aXR5LiRpY29uVXJsID0gQ29yZS5wYXRoR2V0KGVudGl0eSwgWydtZXRhZGF0YScsICdhbm5vdGF0aW9ucycsICdmYWJyaWM4LicgKyBpZCArICcvaWNvblVybCddKTtcbiAgICAgIGVudGl0eS4kaW5mbyA9IENvcmUucGF0aEdldChlbnRpdHksIFsnbWV0YWRhdGEnLCAnYW5ub3RhdGlvbnMnLCAnZmFicmljOC4nICsgaWQgKyAnL3N1bW1hcnknXSk7XG4gICAgICBpZiAoZW50aXR5LiRpY29uVXJsKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGlmIChpZCAmJiBuYW1lRmllbGQpIHtcbiAgICAgICAgKHRoaXMudGVtcGxhdGVzIHx8IFtdKS5mb3JFYWNoKCh0ZW1wbGF0ZSkgPT4ge1xuICAgICAgICAgIHZhciBtZXRhZGF0YSA9IHRlbXBsYXRlLm1ldGFkYXRhO1xuICAgICAgICAgIGlmIChtZXRhZGF0YSkge1xuICAgICAgICAgICAgdmFyIGFubm90YXRpb25zID0gbWV0YWRhdGEuYW5ub3RhdGlvbnMgfHwge307XG4gICAgICAgICAgICB2YXIgaWNvblVybCA9IGFubm90YXRpb25zW1wiZmFicmljOC5cIiArIGlkICsgXCIvaWNvblVybFwiXSB8fCBhbm5vdGF0aW9uc1tcImZhYnJpYzgvaWNvblVybFwiXTtcbiAgICAgICAgICAgIGlmIChpY29uVXJsKSB7XG4gICAgICAgICAgICAgICh0ZW1wbGF0ZS5vYmplY3RzIHx8IFtdKS5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgdmFyIGVudGl0eU5hbWUgPSBnZXROYW1lKGl0ZW0pO1xuICAgICAgICAgICAgICAgIGlmIChpZCA9PT0gZW50aXR5TmFtZSkge1xuICAgICAgICAgICAgICAgICAgZW50aXR5LiRpY29uVXJsID0gaWNvblVybDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgICh0aGlzLmFwcEluZm9zIHx8IFtdKS5mb3JFYWNoKChhcHBJbmZvKSA9PiB7XG4gICAgICAgICAgdmFyIGljb25QYXRoID0gYXBwSW5mby5pY29uUGF0aDtcbiAgICAgICAgICBpZiAoaWNvblBhdGggJiYgIWFuc3dlciAmJiBpY29uUGF0aCAhPT0gXCJudWxsXCIpIHtcbiAgICAgICAgICAgIHZhciBpY29uVXJsID0gZ2l0UGF0aFRvVXJsKGljb25QYXRoKTtcbiAgICAgICAgICAgIHZhciBpZHMgPSBDb3JlLnBhdGhHZXQoYXBwSW5mbywgW1wibmFtZXNcIiwgbmFtZUZpZWxkXSk7XG4gICAgICAgICAgICBhbmd1bGFyLmZvckVhY2goaWRzLCAoYXBwSWQpID0+IHtcbiAgICAgICAgICAgICAgaWYgKGFwcElkID09PSBpZCkge1xuICAgICAgICAgICAgICAgIGVudGl0eS4kaWNvblVybCA9IGljb25Vcmw7XG4gICAgICAgICAgICAgICAgZW50aXR5LmFwcFBhdGggPSBhcHBJbmZvLmFwcFBhdGg7XG4gICAgICAgICAgICAgICAgZW50aXR5LiRpbmZvID0gYXBwSW5mbztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGlmICghZW50aXR5LiRpY29uVXJsKSB7XG4gICAgICAgIGVudGl0eS4kaWNvblVybCA9IGRlZmF1bHRJY29uVXJsO1xuICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBtYXliZUluaXQoKSB7XG4gICAgICB0aGlzLmZldGNoZWQgPSB0cnVlO1xuICAgICAgdGhpcy5zZXJ2aWNlc0J5S2V5ID0ge307XG4gICAgICB0aGlzLnBvZHNCeUtleSA9IHt9O1xuICAgICAgdGhpcy5yZXBsaWNhdGlvbkNvbnRyb2xsZXJzQnlLZXkgPSB7fTtcblxuICAgICAgdGhpcy5wb2RzLmZvckVhY2goKHBvZCkgPT4ge1xuICAgICAgICBpZiAoIXBvZC5raW5kKSBwb2Qua2luZCA9IFwiUG9kXCI7XG4gICAgICAgIHRoaXMucG9kc0J5S2V5W3BvZC5fa2V5XSA9IHBvZDtcbiAgICAgICAgdmFyIGhvc3QgPSBnZXRIb3N0KHBvZCk7XG4gICAgICAgIHBvZC4kbGFiZWxzVGV4dCA9IEt1YmVybmV0ZXMubGFiZWxzVG9TdHJpbmcoZ2V0TGFiZWxzKHBvZCkpO1xuICAgICAgICBpZiAoaG9zdCkge1xuICAgICAgICAgIHBvZC4kbGFiZWxzVGV4dCArPSBsYWJlbEZpbHRlclRleHRTZXBhcmF0b3IgKyBcImhvc3Q9XCIgKyBob3N0O1xuICAgICAgICB9XG4gICAgICAgIHBvZC4kaWNvblVybCA9IGRlZmF1bHRJY29uVXJsO1xuICAgICAgICB0aGlzLmRpc2NvdmVyUG9kQ29ubmVjdGlvbnMocG9kKTtcbiAgICAgICAgcG9kLiRjb250YWluZXJQb3J0cyA9IFtdO1xuXG4gICAgICAgIHZhciBwb2RTdGF0dXMgPSBwb2Quc3RhdHVzIHx8IHt9O1xuICAgICAgICB2YXIgc3RhcnRUaW1lID0gcG9kU3RhdHVzLnN0YXJ0VGltZTtcbiAgICAgICAgcG9kLiRzdGFydFRpbWUgPSBudWxsO1xuICAgICAgICBpZiAoc3RhcnRUaW1lKSB7XG4gICAgICAgICAgcG9kLiRzdGFydFRpbWUgPSBuZXcgRGF0ZShzdGFydFRpbWUpO1xuICAgICAgICB9XG4gICAgICAgIHZhciBjcmVhdGVkVGltZSA9IGdldENyZWF0aW9uVGltZXN0YW1wKHBvZCk7XG4gICAgICAgIHBvZC4kY3JlYXRlZFRpbWUgPSBudWxsO1xuICAgICAgICBwb2QuJGFnZSA9IG51bGw7XG4gICAgICAgIGlmIChjcmVhdGVkVGltZSkge1xuICAgICAgICAgIHBvZC4kY3JlYXRlZFRpbWUgPSBuZXcgRGF0ZShjcmVhdGVkVGltZSk7XG4gICAgICAgICAgcG9kLiRhZ2UgPSBwb2QuJGNyZWF0ZWRUaW1lLnJlbGF0aXZlKCk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHJlYWR5ID0gaXNSZWFkeShwb2QpO1xuICAgICAgICBwb2QuJHJlYWR5ID0gcmVhZHk7XG4gICAgICAgIHBvZC4kc3RhdHVzQ3NzID0gc3RhdHVzVGV4dFRvQ3NzQ2xhc3MocG9kU3RhdHVzLnBoYXNlLCByZWFkeSk7XG5cbiAgICAgICAgdmFyIG1heFJlc3RhcnRDb3VudCA9IDA7XG4gICAgICAgIGFuZ3VsYXIuZm9yRWFjaChDb3JlLnBhdGhHZXQocG9kLCBbXCJzdGF0dXNcIiwgXCJjb250YWluZXJTdGF0dXNlc1wiXSksIChzdGF0dXMpID0+IHtcbiAgICAgICAgICB2YXIgcmVzdGFydENvdW50ID0gc3RhdHVzLnJlc3RhcnRDb3VudDtcbiAgICAgICAgICBpZiAocmVzdGFydENvdW50KSB7XG4gICAgICAgICAgICBpZiAocmVzdGFydENvdW50ID4gbWF4UmVzdGFydENvdW50KSB7XG4gICAgICAgICAgICAgIG1heFJlc3RhcnRDb3VudCA9IHJlc3RhcnRDb3VudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAobWF4UmVzdGFydENvdW50ICkge1xuICAgICAgICAgIHBvZC4kcmVzdGFydENvdW50ID0gbWF4UmVzdGFydENvdW50O1xuICAgICAgICB9XG4gICAgICAgIHZhciBpbWFnZU5hbWVzID0gXCJcIjtcbiAgICAgICAgYW5ndWxhci5mb3JFYWNoKENvcmUucGF0aEdldChwb2QsIFtcInNwZWNcIiwgXCJjb250YWluZXJzXCJdKSwgKGNvbnRhaW5lcikgPT4ge1xuICAgICAgICAgIHZhciBpbWFnZSA9IGNvbnRhaW5lci5pbWFnZTtcbiAgICAgICAgICBpZiAoaW1hZ2UpIHtcbiAgICAgICAgICAgIGlmICghaW1hZ2VOYW1lcykge1xuICAgICAgICAgICAgICBpbWFnZU5hbWVzID0gaW1hZ2U7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBpbWFnZU5hbWVzID0gaW1hZ2VOYW1lcyArIFwiIFwiICsgaW1hZ2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgaWR4ID0gaW1hZ2UubGFzdEluZGV4T2YoXCI6XCIpO1xuICAgICAgICAgICAgaWYgKGlkeCA+IDApIHtcbiAgICAgICAgICAgICAgaW1hZ2UgPSBpbWFnZS5zdWJzdHJpbmcoMCwgaWR4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciBwYXRocyA9IGltYWdlLnNwbGl0KFwiL1wiLCAzKTtcbiAgICAgICAgICAgIGlmIChwYXRocy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgdmFyIGFuc3dlciA9IG51bGw7XG4gICAgICAgICAgICAgIGlmIChwYXRocy5sZW5ndGggPT0gMykge1xuICAgICAgICAgICAgICAgIGFuc3dlciA9IHBhdGhzWzFdICsgXCIvXCIgKyBwYXRoc1syXTtcbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChwYXRocy5sZW5ndGggPT0gMikge1xuICAgICAgICAgICAgICAgIGFuc3dlciA9IHBhdGhzWzBdICsgXCIvXCIgKyBwYXRoc1sxXTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBhbnN3ZXIgPSBwYXRoc1swXSArIFwiL1wiICsgcGF0aHNbMV07XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgY29udGFpbmVyLiRpbWFnZUxpbmsgPSBVcmxIZWxwZXJzLmpvaW4oXCJodHRwczovL3JlZ2lzdHJ5Lmh1Yi5kb2NrZXIuY29tL3UvXCIsIGFuc3dlcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGFuZ3VsYXIuZm9yRWFjaChjb250YWluZXIucG9ydHMsIChwb3J0KSA9PiB7XG4gICAgICAgICAgICB2YXIgY29udGFpbmVyUG9ydCA9IHBvcnQuY29udGFpbmVyUG9ydDtcbiAgICAgICAgICAgIGlmIChjb250YWluZXJQb3J0KSB7XG4gICAgICAgICAgICAgIHBvZC4kY29udGFpbmVyUG9ydHMucHVzaChjb250YWluZXJQb3J0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHBvZC4kaW1hZ2VOYW1lcyA9IGltYWdlTmFtZXM7XG4gICAgICAgIHZhciBwb2RTdGF0dXMgPSBwb2RTdGF0dXM7XG4gICAgICAgIHZhciBwb2RTcGVjID0gKHBvZC5zcGVjIHx8IHt9KTtcbiAgICAgICAgcG9kLiRwb2RJUCA9IHBvZFN0YXR1cy5wb2RJUDtcbiAgICAgICAgcG9kLiRob3N0ID0gcG9kU3BlYy5ob3N0IHx8IHBvZFNwZWMubm9kZU5hbWUgfHwgcG9kU3RhdHVzLmhvc3RJUDtcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLnNlcnZpY2VzLmZvckVhY2goKHNlcnZpY2UpID0+IHtcbiAgICAgICAgaWYgKCFzZXJ2aWNlLmtpbmQpIHNlcnZpY2Uua2luZCA9IFwiU2VydmljZVwiO1xuICAgICAgICB0aGlzLnNlcnZpY2VzQnlLZXlbc2VydmljZS5fa2V5XSA9IHNlcnZpY2U7XG4gICAgICAgIHZhciBzZWxlY3RvciA9IGdldFNlbGVjdG9yKHNlcnZpY2UpO1xuICAgICAgICBzZXJ2aWNlLiRwb2RzID0gW107XG4gICAgICAgIGlmICghc2VydmljZS4kcG9kQ291bnRlcnMpIHtcbiAgICAgICAgICBzZXJ2aWNlLiRwb2RDb3VudGVycyA9IHt9O1xuICAgICAgICB9XG4gICAgICAgIF8uYXNzaWduKHNlcnZpY2UuJHBvZENvdW50ZXJzLCBzZWxlY3RvciA/IGNyZWF0ZVBvZENvdW50ZXJzKHNlbGVjdG9yLCB0aGlzLnBvZHMsIHNlcnZpY2UuJHBvZHMpIDoge30pO1xuICAgICAgICBzZXJ2aWNlLiRwb2RDb3VudCA9IHNlcnZpY2UuJHBvZHMubGVuZ3RoO1xuXG4gICAgICAgIHZhciBzZWxlY3RlZFBvZHMgPSBzZXJ2aWNlLiRwb2RzO1xuICAgICAgICBzZXJ2aWNlLmNvbm5lY3RUbyA9IHNlbGVjdGVkUG9kcy5tYXAoKHBvZCkgPT4ge1xuICAgICAgICAgIHJldHVybiBwb2QuX2tleTtcbiAgICAgICAgfSkuam9pbignLCcpO1xuICAgICAgICBzZXJ2aWNlLiRsYWJlbHNUZXh0ID0gS3ViZXJuZXRlcy5sYWJlbHNUb1N0cmluZyhnZXRMYWJlbHMoc2VydmljZSkpO1xuICAgICAgICB0aGlzLnVwZGF0ZUljb25VcmxBbmRBcHBJbmZvKHNlcnZpY2UsIFwic2VydmljZU5hbWVzXCIpO1xuICAgICAgICB2YXIgc3BlYyA9IHNlcnZpY2Uuc3BlYyB8fCB7fTtcbiAgICAgICAgc2VydmljZS4kcG9ydGFsSVAgPSBzcGVjLnBvcnRhbElQO1xuICAgICAgICBzZXJ2aWNlLiRzZWxlY3RvclRleHQgPSBLdWJlcm5ldGVzLmxhYmVsc1RvU3RyaW5nKHNwZWMuc2VsZWN0b3IpO1xuICAgICAgICB2YXIgcG9ydHMgPSBfLm1hcChzcGVjLnBvcnRzIHx8IFtdLCBcInBvcnRcIik7XG4gICAgICAgIHNlcnZpY2UuJHBvcnRzID0gcG9ydHM7XG4gICAgICAgIHNlcnZpY2UuJHBvcnRzVGV4dCA9IHBvcnRzLmpvaW4oXCIsIFwiKTtcbiAgICAgICAgdmFyIGljb25VcmwgPSBzZXJ2aWNlLiRpY29uVXJsO1xuICAgICAgICBpZiAoaWNvblVybCAmJiBzZWxlY3RlZFBvZHMpIHtcbiAgICAgICAgICBzZWxlY3RlZFBvZHMuZm9yRWFjaCgocG9kKSA9PiB7XG4gICAgICAgICAgICBwb2QuJGljb25VcmwgPSBpY29uVXJsO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHNlcnZpY2UuJHNlcnZpY2VVcmwgPSBzZXJ2aWNlTGlua1VybChzZXJ2aWNlKTtcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLnJlcGxpY2F0aW9uQ29udHJvbGxlcnMuZm9yRWFjaCgocmVwbGljYXRpb25Db250cm9sbGVyKSA9PiB7XG4gICAgICAgIGlmICghcmVwbGljYXRpb25Db250cm9sbGVyLmtpbmQpIHJlcGxpY2F0aW9uQ29udHJvbGxlci5raW5kID0gXCJSZXBsaWNhdGlvbkNvbnRyb2xsZXJcIjtcbiAgICAgICAgdGhpcy5yZXBsaWNhdGlvbkNvbnRyb2xsZXJzQnlLZXlbcmVwbGljYXRpb25Db250cm9sbGVyLl9rZXldID0gcmVwbGljYXRpb25Db250cm9sbGVyXG4gICAgICAgICAgdmFyIHNlbGVjdG9yID0gZ2V0U2VsZWN0b3IocmVwbGljYXRpb25Db250cm9sbGVyKTtcbiAgICAgICAgcmVwbGljYXRpb25Db250cm9sbGVyLiRwb2RzID0gW107XG4gICAgICAgIHJlcGxpY2F0aW9uQ29udHJvbGxlci4kcG9kQ291bnRlcnMgPSBzZWxlY3RvciA/IGNyZWF0ZVBvZENvdW50ZXJzKHNlbGVjdG9yLCB0aGlzLnBvZHMsIHJlcGxpY2F0aW9uQ29udHJvbGxlci4kcG9kcykgOiBudWxsO1xuICAgICAgICByZXBsaWNhdGlvbkNvbnRyb2xsZXIuJHBvZENvdW50ID0gcmVwbGljYXRpb25Db250cm9sbGVyLiRwb2RzLmxlbmd0aDtcbiAgICAgICAgcmVwbGljYXRpb25Db250cm9sbGVyLiRyZXBsaWNhcyA9IChyZXBsaWNhdGlvbkNvbnRyb2xsZXIuc3BlYyB8fCB7fSkucmVwbGljYXM7XG5cbiAgICAgICAgdmFyIHNlbGVjdGVkUG9kcyA9IHJlcGxpY2F0aW9uQ29udHJvbGxlci4kcG9kcztcbiAgICAgICAgcmVwbGljYXRpb25Db250cm9sbGVyLmNvbm5lY3RUbyA9IHNlbGVjdGVkUG9kcy5tYXAoKHBvZCkgPT4ge1xuICAgICAgICAgIHJldHVybiBwb2QuX2tleTtcbiAgICAgICAgfSkuam9pbignLCcpO1xuICAgICAgICByZXBsaWNhdGlvbkNvbnRyb2xsZXIuJGxhYmVsc1RleHQgPSBLdWJlcm5ldGVzLmxhYmVsc1RvU3RyaW5nKGdldExhYmVscyhyZXBsaWNhdGlvbkNvbnRyb2xsZXIpKTtcbiAgICAgICAgdGhpcy51cGRhdGVJY29uVXJsQW5kQXBwSW5mbyhyZXBsaWNhdGlvbkNvbnRyb2xsZXIsIFwicmVwbGljYXRpb25Db250cm9sbGVyTmFtZXNcIik7XG4gICAgICAgIHZhciBpY29uVXJsID0gIHJlcGxpY2F0aW9uQ29udHJvbGxlci4kaWNvblVybDtcbiAgICAgICAgaWYgKGljb25VcmwgJiYgc2VsZWN0ZWRQb2RzKSB7XG4gICAgICAgICAgc2VsZWN0ZWRQb2RzLmZvckVhY2goKHBvZCkgPT4ge1xuICAgICAgICAgICAgcG9kLiRpY29uVXJsID0gaWNvblVybDtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIC8vIHNlcnZpY2VzIG1heSBub3QgbWFwIHRvIGFuIGljb24gYnV0IHRoZWlyIHBvZHMgbWF5IGRvIHZpYSB0aGUgUkNcbiAgICAgIC8vIHNvIGxldHMgZGVmYXVsdCBpdC4uLlxuICAgICAgdGhpcy5zZXJ2aWNlcy5mb3JFYWNoKChzZXJ2aWNlKSA9PiB7XG4gICAgICAgIHZhciBpY29uVXJsID0gc2VydmljZS4kaWNvblVybDtcbiAgICAgICAgdmFyIHNlbGVjdGVkUG9kcyA9IHNlcnZpY2UuJHBvZHM7XG4gICAgICAgIGlmIChzZWxlY3RlZFBvZHMpIHtcbiAgICAgICAgICBpZiAoIWljb25VcmwgfHwgaWNvblVybCA9PT0gZGVmYXVsdEljb25VcmwpIHtcbiAgICAgICAgICAgIGljb25VcmwgPSBudWxsO1xuICAgICAgICAgICAgc2VsZWN0ZWRQb2RzLmZvckVhY2goKHBvZCkgPT4ge1xuICAgICAgICAgICAgICBpZiAoIWljb25VcmwpIHtcbiAgICAgICAgICAgICAgICBpY29uVXJsID0gcG9kLiRpY29uVXJsO1xuICAgICAgICAgICAgICAgIGlmIChpY29uVXJsKSB7XG4gICAgICAgICAgICAgICAgICBzZXJ2aWNlLiRpY29uVXJsID0gaWNvblVybDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMudXBkYXRlQXBwcygpO1xuXG4gICAgICB2YXIgcG9kc0J5SG9zdCA9IHt9O1xuICAgICAgdGhpcy5wb2RzLmZvckVhY2goKHBvZCkgPT4ge1xuICAgICAgICB2YXIgaG9zdCA9IGdldEhvc3QocG9kKTtcbiAgICAgICAgdmFyIHBvZHNGb3JIb3N0ID0gcG9kc0J5SG9zdFtob3N0XTtcbiAgICAgICAgaWYgKCFwb2RzRm9ySG9zdCkge1xuICAgICAgICAgIHBvZHNGb3JIb3N0ID0gW107XG4gICAgICAgICAgcG9kc0J5SG9zdFtob3N0XSA9IHBvZHNGb3JIb3N0O1xuICAgICAgICB9XG4gICAgICAgIHBvZHNGb3JIb3N0LnB1c2gocG9kKTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5wb2RzQnlIb3N0ID0gcG9kc0J5SG9zdDtcblxuICAgICAgdmFyIHRtcEhvc3RzID0gW107XG4gICAgICBmb3IgKHZhciBob3N0S2V5IGluIHBvZHNCeUhvc3QpIHtcbiAgICAgICAgdmFyIGhvc3RQb2RzID0gW107XG4gICAgICAgIHZhciBwb2RDb3VudGVycyA9IGNyZWF0ZVBvZENvdW50ZXJzKChwb2QpID0+IGdldEhvc3QocG9kKSA9PT0gaG9zdEtleSwgdGhpcy5wb2RzLCBob3N0UG9kcywgXCJob3N0PVwiICsgaG9zdEtleSk7XG4gICAgICAgIHZhciBob3N0SVAgPSBudWxsO1xuICAgICAgICBpZiAoaG9zdFBvZHMubGVuZ3RoKSB7XG4gICAgICAgICAgdmFyIHBvZCA9IGhvc3RQb2RzWzBdO1xuICAgICAgICAgIHZhciBjdXJyZW50U3RhdGUgPSBwb2Quc3RhdHVzO1xuICAgICAgICAgIGlmIChjdXJyZW50U3RhdGUpIHtcbiAgICAgICAgICAgIGhvc3RJUCA9IGN1cnJlbnRTdGF0ZS5ob3N0SVA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHZhciBob3N0RGV0YWlscyA9IHtcbiAgICAgICAgICBuYW1lOiBob3N0S2V5LFxuICAgICAgICAgIGlkOiBob3N0S2V5LFxuICAgICAgICAgIGVsZW1lbnRJZDogaG9zdEtleS5yZXBsYWNlKC9cXC4vZywgJ18nKSxcbiAgICAgICAgICBob3N0SVA6IGhvc3RJUCxcbiAgICAgICAgICBwb2RzOiBob3N0UG9kcyxcbiAgICAgICAgICBraW5kOiBcIkhvc3RcIixcbiAgICAgICAgICAgICRwb2RDb3VudGVyczogcG9kQ291bnRlcnMsXG4gICAgICAgICAgICAkaWNvblVybDogaG9zdEljb25VcmxcbiAgICAgICAgfTtcbiAgICAgICAgdG1wSG9zdHMucHVzaChob3N0RGV0YWlscyk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuaG9zdHMgPSB0bXBIb3N0cztcblxuICAgICAgZW5yaWNoQnVpbGRDb25maWdzKHRoaXMuYnVpbGRjb25maWdzKTtcbiAgICAgIGVucmljaEV2ZW50cyh0aGlzLmV2ZW50cywgdGhpcyk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHVwZGF0ZUFwcHMoKSB7XG4gICAgICB0cnkge1xuICAgICAgICAvLyBsZXRzIGNyZWF0ZSB0aGUgYXBwIHZpZXdzIGJ5IHRyeWluZyB0byBqb2luIGNvbnRyb2xsZXJzIC8gc2VydmljZXMgLyBwb2RzIHRoYXQgYXJlIHJlbGF0ZWRcbiAgICAgICAgdmFyIGFwcFZpZXdzID0gW107XG5cbiAgICAgICAgdGhpcy5yZXBsaWNhdGlvbkNvbnRyb2xsZXJzLmZvckVhY2goKHJlcGxpY2F0aW9uQ29udHJvbGxlcikgPT4ge1xuICAgICAgICAgIHZhciBuYW1lID0gZ2V0TmFtZShyZXBsaWNhdGlvbkNvbnRyb2xsZXIpO1xuICAgICAgICAgIHZhciAkaWNvblVybCA9IHJlcGxpY2F0aW9uQ29udHJvbGxlci4kaWNvblVybDtcbiAgICAgICAgICBhcHBWaWV3cy5wdXNoKHtcbiAgICAgICAgICAgIGFwcFBhdGg6IFwiL2R1bW15UGF0aC9cIiArIG5hbWUsXG4gICAgICAgICAgICAkbmFtZTogbmFtZSxcbiAgICAgICAgICAgICRpbmZvOiB7XG4gICAgICAgICAgICAgICRpY29uVXJsOiAkaWNvblVybFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICRpY29uVXJsOiAkaWNvblVybCxcbiAgICAgICAgICAgIHJlcGxpY2F0aW9uQ29udHJvbGxlcnM6IFtyZXBsaWNhdGlvbkNvbnRyb2xsZXJdLFxuICAgICAgICAgICAgcG9kczogcmVwbGljYXRpb25Db250cm9sbGVyLiRwb2RzIHx8IFtdLFxuICAgICAgICAgICAgc2VydmljZXM6IFtdXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHZhciBoYXNUZW1wbGF0ZXNTZXJ2aWNlID0gaXNPcGVuU2hpZnQ7XG4gICAgICAgIHZhciBub01hdGNoZXMgPSBbXTtcbiAgICAgICAgdGhpcy5zZXJ2aWNlcy5mb3JFYWNoKChzZXJ2aWNlKSA9PiB7XG4gICAgICAgICAgdmFyIG5hbWUgPSBnZXROYW1lKHNlcnZpY2UpO1xuICAgICAgICAgIGlmIChuYW1lID09PSBcInRlbXBsYXRlc1wiKSB7XG4gICAgICAgICAgICB2YXIgcG9kQ291bnRlcnMgPSBzZXJ2aWNlLiRwb2RDb3VudGVycztcbiAgICAgICAgICAgIGlmIChwb2RDb3VudGVycyAmJiBwb2RDb3VudGVycy52YWxpZCkge1xuICAgICAgICAgICAgICBoYXNUZW1wbGF0ZXNTZXJ2aWNlID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gbm93IGxldHMgc2VlIGlmIHdlIGNhbiBmaW5kIGFuIGFwcCB3aXRoIGFuIFJDIG9mIHRoZSBzYW1lIHNlbGVjdG9yXG4gICAgICAgICAgdmFyIG1hdGNoZXNBcHAgPSBudWxsO1xuICAgICAgICAgIGFwcFZpZXdzLmZvckVhY2goKGFwcFZpZXcpID0+IHtcbiAgICAgICAgICAgIGFwcFZpZXcucmVwbGljYXRpb25Db250cm9sbGVycy5mb3JFYWNoKChyZXBsaWNhdGlvbkNvbnRyb2xsZXIpID0+IHtcbiAgICAgICAgICAgICAgdmFyIHJlcFNlbGVjdG9yID0gZ2V0U2VsZWN0b3IocmVwbGljYXRpb25Db250cm9sbGVyKTtcbiAgICAgICAgICAgICAgaWYgKHJlcFNlbGVjdG9yICYmIFxuICAgICAgICAgICAgICAgICAgc2VsZWN0b3JNYXRjaGVzKHJlcFNlbGVjdG9yLCBnZXRTZWxlY3RvcihzZXJ2aWNlKSkgJiYgXG4gICAgICAgICAgICAgICAgICBnZXROYW1lc3BhY2Uoc2VydmljZSkgPT09IGdldE5hbWVzcGFjZShyZXBsaWNhdGlvbkNvbnRyb2xsZXIpKSB7XG4gICAgICAgICAgICAgICAgbWF0Y2hlc0FwcCA9IGFwcFZpZXc7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgaWYgKG1hdGNoZXNBcHApIHtcbiAgICAgICAgICAgIG1hdGNoZXNBcHAuc2VydmljZXMucHVzaChzZXJ2aWNlKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbm9NYXRjaGVzLnB1c2goc2VydmljZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgbG9nLmRlYnVnKFwibm8gbWF0Y2hlczogXCIsIG5vTWF0Y2hlcyk7XG4gICAgICAgIG5vTWF0Y2hlcy5mb3JFYWNoKChzZXJ2aWNlKSA9PiB7XG4gICAgICAgICAgdmFyIGFwcFZpZXcgPSBfLmZpbmQoYXBwVmlld3MsIChhcHBWaWV3KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gXy5hbnkoYXBwVmlldy5yZXBsaWNhdGlvbkNvbnRyb2xsZXJzLCAocmMpID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIF8uc3RhcnRzV2l0aChnZXROYW1lKHJjKSwgZ2V0TmFtZShzZXJ2aWNlKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBpZiAoYXBwVmlldykge1xuICAgICAgICAgICAgYXBwVmlldy5zZXJ2aWNlcy5wdXNoKHNlcnZpY2UpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2YXIgJGljb25VcmwgPSBzZXJ2aWNlLiRpY29uVXJsO1xuICAgICAgICAgICAgYXBwVmlld3MucHVzaCh7XG4gICAgICAgICAgICAgIGFwcFBhdGg6IFwiL2R1bW15UGF0aC9cIiArIG5hbWUsXG4gICAgICAgICAgICAgICRuYW1lOiBuYW1lLFxuICAgICAgICAgICAgICAkaW5mbzoge1xuICAgICAgICAgICAgICAgICRpY29uVXJsOiAkaWNvblVybFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICRpY29uVXJsOiAkaWNvblVybCxcbiAgICAgICAgICAgICAgcmVwbGljYXRpb25Db250cm9sbGVyczogW10sXG4gICAgICAgICAgICAgIHBvZHM6IHNlcnZpY2UuJHBvZHMgfHwgW10sXG4gICAgICAgICAgICAgIHNlcnZpY2VzOiBbc2VydmljZV1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5zaG93UnVuQnV0dG9uID0gaGFzVGVtcGxhdGVzU2VydmljZTtcblxuICAgICAgICBhbmd1bGFyLmZvckVhY2godGhpcy5yb3V0ZXMsIChyb3V0ZSkgPT4ge1xuICAgICAgICAgIHZhciBtZXRhZGF0YSA9IHJvdXRlLm1ldGFkYXRhIHx8IHt9O1xuICAgICAgICAgIHZhciBzcGVjID0gcm91dGUuc3BlYyB8fCB7fTtcbiAgICAgICAgICB2YXIgc2VydmljZU5hbWUgPSBDb3JlLnBhdGhHZXQoc3BlYywgW1widG9cIiwgXCJuYW1lXCJdKTtcbiAgICAgICAgICB2YXIgaG9zdCA9IHNwZWMuaG9zdDtcbiAgICAgICAgICB2YXIgbmFtZXNwYWNlID0gZ2V0TmFtZXNwYWNlKHJvdXRlKTtcbiAgICAgICAgICBpZiAoc2VydmljZU5hbWUgJiYgaG9zdCkge1xuICAgICAgICAgICAgdmFyIHNlcnZpY2UgPSB0aGlzLmdldFNlcnZpY2UobmFtZXNwYWNlLCBzZXJ2aWNlTmFtZSk7XG4gICAgICAgICAgICBpZiAoc2VydmljZSkge1xuICAgICAgICAgICAgICBzZXJ2aWNlLiRob3N0ID0gaG9zdDtcblxuICAgICAgICAgICAgICAvLyBUT0RPIHdlIGNvdWxkIHVzZSBzb21lIGFubm90YXRpb25zIC8gbWV0YWRhdGEgdG8gZGVkdWNlIHdoYXQgVVJMIHdlIHNob3VsZCB1c2UgdG8gb3BlbiB0aGlzXG4gICAgICAgICAgICAgIC8vIHNlcnZpY2UgaW4gdGhlIGNvbnNvbGUuIEZvciBub3cganVzdCBhc3N1bWUgaXRzIGh0dHA6XG5cbiAgICAgICAgICAgICAgaWYgKGhvc3QpIHtcbiAgICAgICAgICAgICAgICB2YXIgaG9zdFVybCA9ICBob3N0O1xuICAgICAgICAgICAgICAgIGlmIChob3N0VXJsLmluZGV4T2YoXCI6Ly9cIikgPCAwKSB7XG4gICAgICAgICAgICAgICAgICBob3N0VXJsID0gXCJodHRwOi8vXCIgKyBob3N0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBzZXJ2aWNlLiRjb25uZWN0VXJsID0gVXJsSGVscGVycy5qb2luKGhvc3RVcmwsICBcIi9cIik7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAvLyBUT0RPIGRlZmluaXRlbHkgbmVlZCB0aGF0IGFubm90YXRpb24sIHRlbXAgaGFjayBmb3IgYXBpbWFuIGxpbmtcbiAgICAgICAgICAgICAgaWYgKGdldE5hbWUoc2VydmljZSkgPT09ICdhcGltYW4nICYmIGhvc3QpIHtcbiAgICAgICAgICAgICAgICBzZXJ2aWNlLiRjb25uZWN0VXJsID0gKDxhbnk+IG5ldyBVUkkoKS5ob3N0KHNlcnZpY2UuJGhvc3QpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnBhdGgoJ2FwaW1hbnVpL2luZGV4Lmh0bWwnKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAucXVlcnkoe30pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmhhc2goVVJJLmVuY29kZShhbmd1bGFyLnRvSnNvbih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrVG86IG5ldyBVUkkoKS50b1N0cmluZygpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW46IEhhd3Rpb09BdXRoLmdldE9BdXRoVG9rZW4oKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKSkudG9TdHJpbmcoKTtcblxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBsb2cuZGVidWcoXCJDb3VsZCBub3QgZmluZCBzZXJ2aWNlIFwiICsgc2VydmljZU5hbWUgKyBcIiBuYW1lc3BhY2UgXCIgKyBuYW1lc3BhY2UgKyBcIiBmb3Igcm91dGU6IFwiICsgbWV0YWRhdGEubmFtZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBhcHBWaWV3cyA9IHBvcHVsYXRlS2V5cyhhcHBWaWV3cykuc29ydEJ5KChhcHBWaWV3KSA9PiBhcHBWaWV3Ll9rZXkpO1xuXG4gICAgICAgIEFycmF5SGVscGVycy5zeW5jKHRoaXMuYXBwVmlld3MsIGFwcFZpZXdzLCAnJG5hbWUnKTtcblxuICAgICAgICBpZiAodGhpcy5hcHBJbmZvcyAmJiB0aGlzLmFwcFZpZXdzKSB7XG4gICAgICAgICAgdmFyIGZvbGRlck1hcCA9IHt9O1xuICAgICAgICAgIHZhciBmb2xkZXJzID0gW107XG4gICAgICAgICAgdmFyIGFwcE1hcCA9IHt9O1xuICAgICAgICAgIGFuZ3VsYXIuZm9yRWFjaCh0aGlzLmFwcEluZm9zLCAoYXBwSW5mbykgPT4ge1xuICAgICAgICAgICAgaWYgKCFhcHBJbmZvLiRpY29uVXJsICYmIGFwcEluZm8uaWNvblBhdGggJiYgYXBwSW5mby5pY29uUGF0aCAhPT0gXCJudWxsXCIpIHtcbiAgICAgICAgICAgICAgYXBwSW5mby4kaWNvblVybCA9IGdpdFBhdGhUb1VybChhcHBJbmZvLmljb25QYXRoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciBhcHBQYXRoID0gYXBwSW5mby5hcHBQYXRoO1xuICAgICAgICAgICAgaWYgKGFwcFBhdGgpIHtcbiAgICAgICAgICAgICAgYXBwTWFwW2FwcFBhdGhdID0gYXBwSW5mbztcbiAgICAgICAgICAgICAgdmFyIGlkeCA9IGFwcFBhdGgubGFzdEluZGV4T2YoXCIvXCIpO1xuICAgICAgICAgICAgICB2YXIgZm9sZGVyUGF0aCA9IFwiXCI7XG4gICAgICAgICAgICAgIGlmIChpZHggPj0gMCkge1xuICAgICAgICAgICAgICAgIGZvbGRlclBhdGggPSBhcHBQYXRoLnN1YnN0cmluZygwLCBpZHgpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGZvbGRlclBhdGggPSBDb3JlLnRyaW1MZWFkaW5nKGZvbGRlclBhdGgsIFwiL1wiKTtcbiAgICAgICAgICAgICAgdmFyIGZvbGRlciA9IGZvbGRlck1hcFtmb2xkZXJQYXRoXTtcbiAgICAgICAgICAgICAgaWYgKCFmb2xkZXIpIHtcbiAgICAgICAgICAgICAgICBmb2xkZXIgPSB7XG4gICAgICAgICAgICAgICAgICBwYXRoOiBmb2xkZXJQYXRoLFxuICAgICAgICAgICAgICAgICAgZXhwYW5kZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICBhcHBzOiBbXVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgZm9sZGVycy5wdXNoKGZvbGRlcik7XG4gICAgICAgICAgICAgICAgZm9sZGVyTWFwW2ZvbGRlclBhdGhdID0gZm9sZGVyO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGZvbGRlci5hcHBzLnB1c2goYXBwSW5mbyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgdGhpcy5hcHBGb2xkZXJzID0gZm9sZGVycy5zb3J0QnkoXCJwYXRoXCIpO1xuXG4gICAgICAgICAgdmFyIGFwcHMgPSBbXTtcbiAgICAgICAgICB2YXIgZGVmYXVsdEluZm8gPSB7XG4gICAgICAgICAgICAkaWNvblVybDogZGVmYXVsdEljb25VcmxcbiAgICAgICAgICB9O1xuXG4gICAgICAgICAgYW5ndWxhci5mb3JFYWNoKHRoaXMuYXBwVmlld3MsIChhcHBWaWV3KSA9PiB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICB2YXIgYXBwUGF0aCA9IGFwcFZpZXcuYXBwUGF0aDtcblxuICAgICAgICAgICAgICAvKlxuICAgICAgICAgICAgICAgVE9ET1xuICAgICAgICAgICAgICAgYXBwVmlldy4kc2VsZWN0ID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgS3ViZXJuZXRlcy5zZXRKc29uKCRzY29wZSwgYXBwVmlldy5pZCwgJHNjb3BlLm1vZGVsLmFwcHMpO1xuICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICovXG5cbiAgICAgICAgICAgICAgdmFyIGFwcEluZm8gPSBhbmd1bGFyLmNvcHkoZGVmYXVsdEluZm8pO1xuICAgICAgICAgICAgICBpZiAoYXBwUGF0aCkge1xuICAgICAgICAgICAgICAgIGFwcEluZm8gPSBhcHBNYXBbYXBwUGF0aF0gfHwgYXBwSW5mbztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpZiAoIWFwcFZpZXcuJGluZm8pIHtcbiAgICAgICAgICAgICAgICBhcHBWaWV3LiRpbmZvID0gZGVmYXVsdEluZm87XG4gICAgICAgICAgICAgICAgYXBwVmlldy4kaW5mbyA9IGFwcEluZm87XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgYXBwVmlldy5pZCA9IGFwcFBhdGg7XG4gICAgICAgICAgICAgIGlmICghYXBwVmlldy4kbmFtZSkge1xuICAgICAgICAgICAgICAgIGFwcFZpZXcuJG5hbWUgPSBhcHBJbmZvLm5hbWUgfHwgYXBwVmlldy4kbmFtZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpZiAoIWFwcFZpZXcuJGljb25VcmwpIHtcbiAgICAgICAgICAgICAgICBhcHBWaWV3LiRpY29uVXJsID0gYXBwSW5mby4kaWNvblVybDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBhcHBzLnB1c2goYXBwVmlldyk7XG4gICAgICAgICAgICAgIGFwcFZpZXcuJHBvZENvdW50ZXJzID0gY3JlYXRlQXBwVmlld1BvZENvdW50ZXJzKGFwcFZpZXcpO1xuICAgICAgICAgICAgICBhcHBWaWV3LiRwb2RDb3VudCA9IChhcHBWaWV3LnBvZHMgfHwgW10pLmxlbmd0aDtcbiAgICAgICAgICAgICAgYXBwVmlldy4kcmVwbGljYXRpb25Db250cm9sbGVyc1RleHQgPSAoYXBwVmlldy5yZXBsaWNhdGlvbkNvbnRyb2xsZXJzIHx8IFtdKS5tYXAoXCJfa2V5XCIpLmpvaW4oXCIgXCIpO1xuICAgICAgICAgICAgICBhcHBWaWV3LiRzZXJ2aWNlc1RleHQ9IChhcHBWaWV3LnNlcnZpY2VzIHx8IFtdKS5tYXAoXCJfa2V5XCIpLmpvaW4oXCIgXCIpO1xuICAgICAgICAgICAgICBhcHBWaWV3LiRzZXJ2aWNlVmlld3MgPSBjcmVhdGVBcHBWaWV3U2VydmljZVZpZXdzKGFwcFZpZXcpO1xuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICBsb2cud2FybihcIkZhaWxlZCB0byB1cGRhdGUgYXBwVmlld3M6IFwiICsgZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgLy90aGlzLmFwcHMgPSBhcHBzO1xuICAgICAgICAgIHRoaXMuYXBwcyA9IHRoaXMuYXBwVmlld3M7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgbG9nLndhcm4oXCJDYXVnaHQgZXJyb3I6IFwiICsgZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGRpc2NvdmVyUG9kQ29ubmVjdGlvbnMoZW50aXR5KSB7XG4gICAgICB2YXIgaW5mbyA9IENvcmUucGF0aEdldChlbnRpdHksIFtcInN0YXR1c1wiLCBcImluZm9cIl0pO1xuICAgICAgdmFyIGhvc3RQb3J0ID0gbnVsbDtcbiAgICAgIHZhciBjdXJyZW50U3RhdGUgPSBlbnRpdHkuc3RhdHVzIHx8IHt9O1xuICAgICAgdmFyIGRlc2lyZWRTdGF0ZSA9IGVudGl0eS5zcGVjIHx8IHt9O1xuICAgICAgdmFyIHBvZElkID0gZ2V0TmFtZShlbnRpdHkpO1xuICAgICAgdmFyIGhvc3QgPSBjdXJyZW50U3RhdGVbXCJob3N0SVBcIl07XG4gICAgICB2YXIgcG9kSVAgPSBjdXJyZW50U3RhdGVbXCJwb2RJUFwiXTtcbiAgICAgIHZhciBoYXNEb2NrZXIgPSBmYWxzZTtcbiAgICAgIHZhciBmb3VuZENvbnRhaW5lclBvcnQgPSBudWxsO1xuICAgICAgaWYgKGRlc2lyZWRTdGF0ZSkge1xuICAgICAgICB2YXIgY29udGFpbmVycyA9IGRlc2lyZWRTdGF0ZS5jb250YWluZXJzO1xuICAgICAgICBhbmd1bGFyLmZvckVhY2goY29udGFpbmVycywgKGNvbnRhaW5lcikgPT4ge1xuICAgICAgICAgIGlmICghaG9zdFBvcnQpIHtcbiAgICAgICAgICAgIHZhciBwb3J0cyA9IGNvbnRhaW5lci5wb3J0cztcbiAgICAgICAgICAgIGFuZ3VsYXIuZm9yRWFjaChwb3J0cywgKHBvcnQpID0+IHtcbiAgICAgICAgICAgICAgaWYgKCFob3N0UG9ydCkge1xuICAgICAgICAgICAgICAgIHZhciBjb250YWluZXJQb3J0ID0gcG9ydC5jb250YWluZXJQb3J0O1xuICAgICAgICAgICAgICAgIHZhciBwb3J0TmFtZSA9IHBvcnQubmFtZTtcbiAgICAgICAgICAgICAgICB2YXIgY29udGFpbmVySG9zdFBvcnQgPSBwb3J0Lmhvc3RQb3J0O1xuICAgICAgICAgICAgICAgIGlmIChjb250YWluZXJQb3J0ID09PSA4Nzc4IHx8IFwiam9sb2tpYVwiID09PSBwb3J0TmFtZSkge1xuICAgICAgICAgICAgICAgICAgaWYgKGNvbnRhaW5lclBvcnQpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHBvZElQKSB7XG4gICAgICAgICAgICAgICAgICAgICAgZm91bmRDb250YWluZXJQb3J0ID0gY29udGFpbmVyUG9ydDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoY29udGFpbmVySG9zdFBvcnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICBob3N0UG9ydCA9IGNvbnRhaW5lckhvc3RQb3J0O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgaWYgKGZvdW5kQ29udGFpbmVyUG9ydCAmJiBwb2RJZCAmJiBpc1J1bm5pbmcoY3VycmVudFN0YXRlKSkge1xuICAgICAgICBlbnRpdHkuJGpvbG9raWFVcmwgPSBVcmxIZWxwZXJzLmpvaW4oS3ViZXJuZXRlcy5tYXN0ZXJBcGlVcmwoKSwgXCIvYXBpL1wiLCBLdWJlcm5ldGVzLmRlZmF1bHRBcGlWZXJzaW9uLCBcIm5hbWVzcGFjZXNcIiwgZW50aXR5Lm1ldGFkYXRhLm5hbWVzcGFjZSAsIFwiL3BvZHMvXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9kSWQgKyBcIjpcIiArIGZvdW5kQ29udGFpbmVyUG9ydCwgXCIvcHJveHkvam9sb2tpYS9cIik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG1vZGVsIHNlcnZpY2Ugd2hpY2gga2VlcHMgdHJhY2sgb2YgYWxsIHRoZSBwb2RzLCByZXBsaWNhdGlvbiBjb250cm9sbGVycyBhbmQgc2VydmljZXMgYWxvbmdcbiAgICogd2l0aCB0aGVpciBhc3NvY2lhdGlvbnMgYW5kIHN0YXR1c1xuICAgKi9cbiAgX21vZHVsZS5mYWN0b3J5KCdLdWJlcm5ldGVzTW9kZWwnLCBbJyRyb290U2NvcGUnLCAnJGh0dHAnLCAnS3ViZXJuZXRlc0FwaVVSTCcsICdLdWJlcm5ldGVzU3RhdGUnLCAnV2F0Y2hlclNlcnZpY2UnLCAnJGxvY2F0aW9uJywgJyRyZXNvdXJjZScsICgkcm9vdFNjb3BlLCAkaHR0cCwgQXBwTGlicmFyeVVSTCwgS3ViZXJuZXRlc1N0YXRlLCB3YXRjaGVyOldhdGNoZXJTZXJ2aWNlLCAkbG9jYXRpb246bmcuSUxvY2F0aW9uU2VydmljZSwgJHJlc291cmNlOm5nLnJlc291cmNlLklSZXNvdXJjZVNlcnZpY2UpID0+IHtcblxuICAgIHZhciAkc2NvcGUgPSBuZXcgS3ViZXJuZXRlc01vZGVsU2VydmljZSgpO1xuICAgICRzY29wZS5rdWJlcm5ldGVzID0gS3ViZXJuZXRlc1N0YXRlO1xuXG4gICAgLy8gY3JlYXRlIGFsbCBvZiBvdXIgcmVzb3VyY2UgY2xhc3Nlc1xuICAgIHZhciB0eXBlTmFtZXMgPSB3YXRjaGVyLmdldFR5cGVzKCk7XG4gICAgXy5mb3JFYWNoKHR5cGVOYW1lcywgKHR5cGU6c3RyaW5nKSA9PiB7XG4gICAgICB2YXIgdXJsVGVtcGxhdGUgPSB1cmlUZW1wbGF0ZUZvckt1YmVybmV0ZXNLaW5kKHR5cGUpO1xuICAgICAgJHNjb3BlW3R5cGUgKyAnUmVzb3VyY2UnXSA9IGNyZWF0ZVJlc291cmNlKHR5cGUsIHVybFRlbXBsYXRlLCAkcmVzb3VyY2UsICRzY29wZSk7XG4gICAgfSk7XG5cbiAgICAvLyByZWdpc3RlciBmb3IgYWxsIHVwZGF0ZXMgb24gb2JqZWN0c1xuXHRcdHdhdGNoZXIucmVnaXN0ZXJMaXN0ZW5lcigob2JqZWN0czpPYmplY3RNYXApID0+IHtcblx0XHRcdHZhciB0eXBlcyA9IHdhdGNoZXIuZ2V0VHlwZXMoKTtcblx0XHRcdF8uZm9yRWFjaCh0eXBlcywgKHR5cGU6c3RyaW5nKSA9PiB7XG5cdFx0XHRcdHN3aXRjaCAodHlwZSkge1xuXHRcdFx0XHRcdGNhc2UgV2F0Y2hUeXBlcy5TRVJWSUNFUzpcblx0XHRcdFx0XHRcdHZhciBpdGVtcyA9IHBvcHVsYXRlS2V5cyhvYmplY3RzW3R5cGVdKTtcblx0XHRcdFx0XHRcdGFuZ3VsYXIuZm9yRWFjaChpdGVtcywgKGl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgaXRlbS5wcm94eVVybCA9IGt1YmVybmV0ZXNQcm94eVVybEZvclNlcnZpY2UobWFzdGVyQXBpVXJsKCksIGl0ZW0pO1xuICAgICAgICAgICAgfSk7XG5cdFx0XHRcdFx0XHQkc2NvcGVbdHlwZV0gPSBpdGVtcztcblx0XHRcdFx0XHRcdGJyZWFrO1xuICAgICAgICAgIGNhc2UgV2F0Y2hUeXBlcy5URU1QTEFURVM6XG4gICAgICAgICAgY2FzZSBXYXRjaFR5cGVzLlJPVVRFUzpcbiAgICAgICAgICBjYXNlIFdhdGNoVHlwZXMuQlVJTERTOlxuICAgICAgICAgIGNhc2UgV2F0Y2hUeXBlcy5CVUlMRF9DT05GSUdTOlxuICAgICAgICAgIGNhc2UgV2F0Y2hUeXBlcy5JTUFHRV9TVFJFQU1TOlxuICAgICAgICAgICAgLy8gZG9uJ3QgcHV0IGEgYnJlYWsgaGVyZSA6LSlcblx0XHRcdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHRcdFx0JHNjb3BlW3R5cGVdID0gcG9wdWxhdGVLZXlzKG9iamVjdHNbdHlwZV0pO1xuXHRcdFx0XHR9XG4gICAgICAgIGxvZy5kZWJ1ZyhcIlR5cGU6IFwiLCB0eXBlLCBcIiBvYmplY3Q6IFwiLCAkc2NvcGVbdHlwZV0pO1xuXHRcdFx0fSk7XG5cdFx0XHQkc2NvcGUubWF5YmVJbml0KCk7XG4gICAgICAkcm9vdFNjb3BlLiRicm9hZGNhc3QoJ2t1YmVybmV0ZXNNb2RlbFVwZGF0ZWQnLCAkc2NvcGUpO1xuICAgICAgQ29yZS4kYXBwbHkoJHJvb3RTY29wZSk7XG5cdFx0fSk7XG5cbiAgICAvLyBzZXQgdGhlIHNlbGVjdGVkIG5hbWVzcGFjZSBpZiBzZXQgaW4gdGhlIGxvY2F0aW9uIGJhclxuICAgIC8vIG90aGVyd2lzZSB1c2Ugd2hhdGV2ZXIgcHJldmlvdXNseSBzZWxlY3RlZCBuYW1lc3BhY2UgaXNcbiAgICAvLyBhdmFpbGFibGVcbiAgICB2YXIgc2VhcmNoID0gJGxvY2F0aW9uLnNlYXJjaCgpO1xuICAgIGlmICgnbmFtZXNwYWNlJyBpbiBzZWFyY2gpIHtcbiAgICAgIHdhdGNoZXIuc2V0TmFtZXNwYWNlKHNlYXJjaFsnbmFtZXNwYWNlJ10pO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHNlbGVjdFBvZHMocG9kcywgbmFtZXNwYWNlLCBsYWJlbHMpIHtcbiAgICAgIHJldHVybiBwb2RzLmZpbHRlcigocG9kKSA9PiB7XG4gICAgICAgIHJldHVybiBnZXROYW1lc3BhY2UocG9kKSA9PT0gbmFtZXNwYWNlICYmIHNlbGVjdG9yTWF0Y2hlcyhsYWJlbHMsIGdldExhYmVscyhwb2QpKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gJHNjb3BlO1xuICB9XSk7XG5cbn1cbiIsIi8vLyA8cmVmZXJlbmNlIHBhdGg9XCIuLi8uLi9pbmNsdWRlcy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJrdWJlcm5ldGVzSGVscGVycy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJrdWJlcm5ldGVzUGx1Z2luLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cImt1YmVybmV0ZXNNb2RlbC50c1wiLz5cblxubW9kdWxlIEt1YmVybmV0ZXMge1xuXG4gIGV4cG9ydCB2YXIgSG9zdENvbnRyb2xsZXIgPSBjb250cm9sbGVyKFwiSG9zdENvbnRyb2xsZXJcIixcbiAgICBbXCIkc2NvcGVcIiwgXCJLdWJlcm5ldGVzTW9kZWxcIiwgXCJLdWJlcm5ldGVzU3RhdGVcIiwgXCIkdGVtcGxhdGVDYWNoZVwiLCBcIiRsb2NhdGlvblwiLCBcIiRyb3V0ZVBhcmFtc1wiLCBcIiRodHRwXCIsIFwiJHRpbWVvdXRcIiwgXCJLdWJlcm5ldGVzQXBpVVJMXCIsXG4gICAgICAoJHNjb3BlLCBLdWJlcm5ldGVzTW9kZWw6S3ViZXJuZXRlcy5LdWJlcm5ldGVzTW9kZWxTZXJ2aWNlLCBLdWJlcm5ldGVzU3RhdGUsXG4gICAgICAgJHRlbXBsYXRlQ2FjaGU6bmcuSVRlbXBsYXRlQ2FjaGVTZXJ2aWNlLCAkbG9jYXRpb246bmcuSUxvY2F0aW9uU2VydmljZSwgJHJvdXRlUGFyYW1zLCAkaHR0cCwgJHRpbWVvdXQsIEt1YmVybmV0ZXNBcGlVUkwpID0+IHtcblxuICAgICAgICAkc2NvcGUua3ViZXJuZXRlcyA9IEt1YmVybmV0ZXNTdGF0ZTtcbiAgICAgICAgJHNjb3BlLm1vZGVsID0gS3ViZXJuZXRlc01vZGVsO1xuICAgICAgICAkc2NvcGUucmF3TW9kZSA9IGZhbHNlO1xuICAgICAgICAkc2NvcGUucmF3TW9kZWwgPSBudWxsO1xuXG4gICAgICAgICRzY29wZS5pdGVtQ29uZmlnID0ge1xuICAgICAgICAgIHByb3BlcnRpZXM6IHt9XG4gICAgICAgIH07XG5cbiAgICAgICAgS3ViZXJuZXRlcy5pbml0U2hhcmVkKCRzY29wZSwgJGxvY2F0aW9uLCAkaHR0cCwgJHRpbWVvdXQsICRyb3V0ZVBhcmFtcywgS3ViZXJuZXRlc01vZGVsLCBLdWJlcm5ldGVzU3RhdGUsIEt1YmVybmV0ZXNBcGlVUkwpO1xuXG4gICAgICAgICRzY29wZS4kb24oJ2t1YmVybmV0ZXNNb2RlbFVwZGF0ZWQnLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgdXBkYXRlRGF0YSgpO1xuICAgICAgICB9KTtcblxuICAgICAgICAkc2NvcGUuJG9uKCckcm91dGVVcGRhdGUnLCAoJGV2ZW50KSA9PiB7XG4gICAgICAgICAgdXBkYXRlRGF0YSgpO1xuICAgICAgICB9KTtcblxuICAgICAgICAkc2NvcGUuZmxpcFJhdyA9ICgpID0+IHtcbiAgICAgICAgICAkc2NvcGUucmF3TW9kZSA9ICEkc2NvcGUucmF3TW9kZTtcbiAgICAgICAgICBDb3JlLiRhcHBseSgkc2NvcGUpO1xuICAgICAgICB9O1xuXG4gICAgICAgIHVwZGF0ZURhdGEoKTtcblxuICAgICAgICBmdW5jdGlvbiB1cGRhdGVEYXRhKCkge1xuICAgICAgICAgICRzY29wZS5pZCA9ICRyb3V0ZVBhcmFtc1tcImlkXCJdO1xuICAgICAgICAgICRzY29wZS5pdGVtID0gbnVsbDtcbiAgICAgICAgICBpZiAoJHNjb3BlLmlkKSB7XG4gICAgICAgICAgICB2YXIgdXJsID0gVXJsSGVscGVycy5qb2luKEt1YmVybmV0ZXNBcGlVUkwsIFwibm9kZXNcIiwgJHNjb3BlLmlkKTtcbiAgICAgICAgICAgICRodHRwLmdldCh1cmwpLlxuICAgICAgICAgICAgICBzdWNjZXNzKGZ1bmN0aW9uIChkYXRhLCBzdGF0dXMsIGhlYWRlcnMsIGNvbmZpZykge1xuICAgICAgICAgICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICAgICAgICAkc2NvcGUuaXRlbSA9IGRhdGE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICgkc2NvcGUuaXRlbSkge1xuICAgICAgICAgICAgICAgICAgJHNjb3BlLnJhd01vZGVsID0gSlNPTi5zdHJpbmdpZnkoJHNjb3BlLml0ZW0sIG51bGwsIDIpOyAvLyBzcGFjaW5nIGxldmVsID0gMlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBDb3JlLiRhcHBseSgkc2NvcGUpO1xuICAgICAgICAgICAgICB9KS5cbiAgICAgICAgICAgIGVycm9yKGZ1bmN0aW9uIChkYXRhLCBzdGF0dXMsIGhlYWRlcnMsIGNvbmZpZykge1xuICAgICAgICAgICAgICBsb2cud2FybihcIkZhaWxlZCB0byBsb2FkIFwiICsgdXJsICsgXCIgXCIgKyBkYXRhICsgXCIgXCIgKyBzdGF0dXMpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICRzY29wZS5yYXdNb2RlbCA9IG51bGw7XG4gICAgICAgICAgICBDb3JlLiRhcHBseSgkc2NvcGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfV0pO1xufVxuIiwiLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4uLy4uL2luY2x1ZGVzLnRzXCIvPlxubW9kdWxlIEt1YmVybmV0ZXMge1xuXG4gIC8qKlxuICAgKiBTb3J0cyB0aGUgdGhlIGlwIGZpZWxkXG4gICAqXG4gICAqIEBwYXJhbSBpcCB0aGUgaXAgc3VjaCBhcyAnMTAuMS4yLjEzJ1xuICAgKiBAcmV0dXJucyB7YW55fVxuICAgKi9cbiAgZXhwb3J0IGZ1bmN0aW9uIHNvcnRCeVBvZElwKGlwKSA6IGFueSB7XG4gICAgLy8gaSBndWVzcyB0aGVyZSBpcyBtYXliZSBuaWNlciB3YXlzIG9mIHNvcnQgdGhpcyB3aXRob3V0IHBhcnNpbmcgYW5kIHNsaWNpbmdcbiAgICB2YXIgcmVnZXggPSAvKFxcZHsxLDN9KVxcLihcXGR7MSwzfSlcXC4oXFxkezEsM30pXFwuKFxcZHsxLDN9KS87XG4gICAgdmFyIGdyb3VwcyA9IHJlZ2V4LmV4ZWMoaXApO1xuICAgIGlmIChhbmd1bGFyLmlzRGVmaW5lZChncm91cHMpKSB7XG4gICAgICB2YXIgZzEgPSAoXCIwMFwiICsgZ3JvdXBzWzFdKS5zbGljZSgtMyk7XG4gICAgICB2YXIgZzIgPSAoXCIwMFwiICsgZ3JvdXBzWzJdKS5zbGljZSgtMyk7XG4gICAgICB2YXIgZzMgPSAoXCIwMFwiICsgZ3JvdXBzWzNdKS5zbGljZSgtMyk7XG4gICAgICB2YXIgZzQgPSAoXCIwMFwiICsgZ3JvdXBzWzRdKS5zbGljZSgtMyk7XG4gICAgICB2YXIgYW5zd2VyID0gZzEgKyBnMiArIGczICsgZzQ7XG4gICAgICByZXR1cm4gYW5zd2VyO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG4gIH1cblxufSIsIi8vLyA8cmVmZXJlbmNlIHBhdGg9XCIuLi8uLi9pbmNsdWRlcy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJrdWJlcm5ldGVzUGx1Z2luLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cImt1YmVybmV0ZXNNb2RlbC50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJ1dGlsSGVscGVycy50c1wiLz5cblxubW9kdWxlIEt1YmVybmV0ZXMge1xuXG4gIGV4cG9ydCB2YXIgSG9zdHNDb250cm9sbGVyID0gY29udHJvbGxlcihcIkhvc3RzQ29udHJvbGxlclwiLCBbXCIkc2NvcGVcIiwgXCJLdWJlcm5ldGVzTW9kZWxcIiwgXCJLdWJlcm5ldGVzUG9kc1wiLCBcIkt1YmVybmV0ZXNTdGF0ZVwiLCBcIlNlcnZpY2VSZWdpc3RyeVwiLCBcIiRkaWFsb2dcIiwgXCIkd2luZG93XCIsIFwiJHRlbXBsYXRlQ2FjaGVcIiwgXCIkcm91dGVQYXJhbXNcIiwgXCIkbG9jYXRpb25cIiwgXCJsb2NhbFN0b3JhZ2VcIiwgXCIkaHR0cFwiLCBcIiR0aW1lb3V0XCIsIFwiS3ViZXJuZXRlc0FwaVVSTFwiLFxuICAgICgkc2NvcGUsIEt1YmVybmV0ZXNNb2RlbDogS3ViZXJuZXRlcy5LdWJlcm5ldGVzTW9kZWxTZXJ2aWNlLCBLdWJlcm5ldGVzUG9kczpuZy5JUHJvbWlzZTxuZy5yZXNvdXJjZS5JUmVzb3VyY2VDbGFzcz4sIEt1YmVybmV0ZXNTdGF0ZSwgU2VydmljZVJlZ2lzdHJ5LCAkZGlhbG9nLCAkd2luZG93LCAkdGVtcGxhdGVDYWNoZSwgJHJvdXRlUGFyYW1zLCAkbG9jYXRpb246bmcuSUxvY2F0aW9uU2VydmljZSwgbG9jYWxTdG9yYWdlLCAkaHR0cCwgJHRpbWVvdXQsIEt1YmVybmV0ZXNBcGlVUkwpID0+IHtcblxuICAgICRzY29wZS5rdWJlcm5ldGVzID0gS3ViZXJuZXRlc1N0YXRlO1xuICAgICRzY29wZS5tb2RlbCA9IEt1YmVybmV0ZXNNb2RlbDtcbiAgICAkc2NvcGUuJG9uKCdrdWJlcm5ldGVzTW9kZWxVcGRhdGVkJywgZnVuY3Rpb24gKCkge1xuICAgICAgQ29yZS4kYXBwbHkoJHNjb3BlKTtcbiAgICB9KTtcblxuICAgICRzY29wZS50YWJsZUNvbmZpZyA9IHtcbiAgICAgIGRhdGE6ICdtb2RlbC5ob3N0cycsXG4gICAgICBzaG93U2VsZWN0aW9uQ2hlY2tib3g6IGZhbHNlLFxuICAgICAgZW5hYmxlUm93Q2xpY2tTZWxlY3Rpb246IGZhbHNlLFxuICAgICAgbXVsdGlTZWxlY3Q6IGZhbHNlLFxuICAgICAgc2VsZWN0ZWRJdGVtczogW10sXG4gICAgICBmaWx0ZXJPcHRpb25zOiB7XG4gICAgICAgIGZpbHRlclRleHQ6ICRsb2NhdGlvbi5zZWFyY2goKVtcInFcIl0gfHwgJydcbiAgICAgIH0sXG4gICAgICBjb2x1bW5EZWZzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBmaWVsZDogJ2lkJyxcbiAgICAgICAgICBkaXNwbGF5TmFtZTogJ05hbWUnLFxuICAgICAgICAgIGRlZmF1bHRTb3J0OiB0cnVlLFxuICAgICAgICAgIGNlbGxUZW1wbGF0ZTogJHRlbXBsYXRlQ2FjaGUuZ2V0KFwiaWRUZW1wbGF0ZS5odG1sXCIpXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBmaWVsZDogJ2hvc3RJUCcsXG4gICAgICAgICAgZGlzcGxheU5hbWU6ICdJUCcsXG4gICAgICAgICAgY3VzdG9tU29ydEZpZWxkOiAoZmllbGQpID0+IHtcbiAgICAgICAgICAgIC8vIHVzZSBhIGN1c3RvbSBzb3J0IHRvIHNvcnQgaXAgYWRkcmVzc1xuICAgICAgICAgICAgcmV0dXJuIEt1YmVybmV0ZXMuc29ydEJ5UG9kSXAoZmllbGQuaG9zdElQKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHsgZmllbGQ6ICckcG9kc0xpbmsnLFxuICAgICAgICAgIGRpc3BsYXlOYW1lOiAnUG9kcycsXG4gICAgICAgICAgY2VsbFRlbXBsYXRlOiAkdGVtcGxhdGVDYWNoZS5nZXQoXCJwb2RDb3VudHNBbmRMaW5rVGVtcGxhdGUuaHRtbFwiKSxcbiAgICAgICAgICBjdXN0b21Tb3J0RmllbGQ6IChmaWVsZCkgPT4ge1xuICAgICAgICAgICAgLy8gbmVlZCB0byBjb25jYXQgYWxsIHRoZSBwb2QgY291bnRlcnNcbiAgICAgICAgICAgIHZhciByZWFkeSA9IGZpZWxkLiRwb2RDb3VudGVycy5yZWFkeSB8fCAwO1xuICAgICAgICAgICAgdmFyIHZhbGlkID0gZmllbGQuJHBvZENvdW50ZXJzLnZhbGlkIHx8IDA7XG4gICAgICAgICAgICB2YXIgd2FpdGluZyA9IGZpZWxkLiRwb2RDb3VudGVycy53YWl0aW5nIHx8IDA7XG4gICAgICAgICAgICB2YXIgZXJyb3IgPSBmaWVsZC4kcG9kQ291bnRlcnMuZXJyb3IgfHwgMDtcbiAgICAgICAgICAgIHJldHVybiByZWFkeSArIHZhbGlkICsgd2FpdGluZyArIGVycm9yO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgXVxuICAgIH07XG5cbiAgICBLdWJlcm5ldGVzLmluaXRTaGFyZWQoJHNjb3BlLCAkbG9jYXRpb24sICRodHRwLCAkdGltZW91dCwgJHJvdXRlUGFyYW1zLCBLdWJlcm5ldGVzTW9kZWwsIEt1YmVybmV0ZXNTdGF0ZSwgS3ViZXJuZXRlc0FwaVVSTCk7XG4gIH1dKTtcbn1cbiIsIi8vLyA8cmVmZXJlbmNlIHBhdGg9XCIuLi8uLi9pbmNsdWRlcy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJrdWJlcm5ldGVzUGx1Z2luLnRzXCIvPlxuXG5tb2R1bGUgS3ViZXJuZXRlcyB7XG5cbiAgZXhwb3J0IHZhciBJbWFnZVJlcG9zaXRvcmllc0NvbnRyb2xsZXIgPSBjb250cm9sbGVyKFwiSW1hZ2VSZXBvc2l0b3JpZXNDb250cm9sbGVyXCIsIFtcIiRzY29wZVwiLCBcIkt1YmVybmV0ZXNNb2RlbFwiLCBcIkt1YmVybmV0ZXNCdWlsZHNcIiwgXCJLdWJlcm5ldGVzU3RhdGVcIiwgXCIkZGlhbG9nXCIsIFwiJHdpbmRvd1wiLCBcIiR0ZW1wbGF0ZUNhY2hlXCIsIFwiJHJvdXRlUGFyYW1zXCIsIFwiJGxvY2F0aW9uXCIsIFwibG9jYWxTdG9yYWdlXCIsIFwiJGh0dHBcIiwgXCIkdGltZW91dFwiLCBcIkt1YmVybmV0ZXNBcGlVUkxcIixcbiAgICAoJHNjb3BlLCBLdWJlcm5ldGVzTW9kZWw6S3ViZXJuZXRlcy5LdWJlcm5ldGVzTW9kZWxTZXJ2aWNlLCBLdWJlcm5ldGVzQnVpbGRzLCBLdWJlcm5ldGVzU3RhdGUsICRkaWFsb2csICR3aW5kb3csICR0ZW1wbGF0ZUNhY2hlLCAkcm91dGVQYXJhbXMsICRsb2NhdGlvbjpuZy5JTG9jYXRpb25TZXJ2aWNlLCBsb2NhbFN0b3JhZ2UsICRodHRwLCAkdGltZW91dCwgS3ViZXJuZXRlc0FwaVVSTCkgPT4ge1xuXG4gICAgICAkc2NvcGUua3ViZXJuZXRlcyA9IEt1YmVybmV0ZXNTdGF0ZTtcbiAgICAgICRzY29wZS5tb2RlbCA9IEt1YmVybmV0ZXNNb2RlbDtcbiAgICAgICRzY29wZS5LdWJlcm5ldGVzQnVpbGRzID0gS3ViZXJuZXRlc0J1aWxkcztcbiAgICAgICRzY29wZS4kb24oJ2t1YmVybmV0ZXNNb2RlbFVwZGF0ZWQnLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIENvcmUuJGFwcGx5KCRzY29wZSk7XG4gICAgICB9KTtcblxuICAgICAgJHNjb3BlLnRhYmxlQ29uZmlnID0ge1xuICAgICAgICBkYXRhOiAnaW1hZ2VSZXBvc2l0b3JpZXMnLFxuICAgICAgICBzaG93U2VsZWN0aW9uQ2hlY2tib3g6IHRydWUsXG4gICAgICAgIGVuYWJsZVJvd0NsaWNrU2VsZWN0aW9uOiBmYWxzZSxcbiAgICAgICAgbXVsdGlTZWxlY3Q6IHRydWUsXG4gICAgICAgIHNlbGVjdGVkSXRlbXM6IFtdLFxuICAgICAgICBmaWx0ZXJPcHRpb25zOiB7XG4gICAgICAgICAgZmlsdGVyVGV4dDogJGxvY2F0aW9uLnNlYXJjaCgpW1wicVwiXSB8fCAnJ1xuICAgICAgICB9LFxuICAgICAgICBjb2x1bW5EZWZzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgZmllbGQ6ICdtZXRhZGF0YS5uYW1lJyxcbiAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAnTmFtZSdcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGZpZWxkOiAnbWV0YWRhdGEubmFtZXNwYWNlJyxcbiAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAnTmFtZXNwYWNlJ1xuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgZmllbGQ6ICdzdGF0dXMuZG9ja2VySW1hZ2VSZXBvc2l0b3J5JyxcbiAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAnRG9ja2VyIFJlZ2lzdHJ5J1xuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgZmllbGQ6ICd0YWdzJyxcbiAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAnVGFncycsXG4gICAgICAgICAgICBjZWxsVGVtcGxhdGU6ICR0ZW1wbGF0ZUNhY2hlLmdldCgnaW1hZ2VSZWdpc3RyeUxhYmVsVGVtcGxhdGUuaHRtbCcpXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9O1xuXG4gICAgICB2YXIgbGFiZWxDb2xvcnMgPSB7XG4gICAgICAgICdwcm9kJzogJ2JhY2tncm91bmQtYmx1ZScsXG4gICAgICAgICd2YWxpZCc6ICdiYWNrZ3JvdW5kLWxpZ2h0LWdyZWVuJyxcbiAgICAgICAgJ3Rlc3QnOiAnYmFja2dyb3VuZC1saWdodC1ncmV5J1xuICAgICAgfTtcbiAgICAgICRzY29wZS5sYWJlbENsYXNzID0gKGxhYmVsVHlwZTpzdHJpbmcpID0+IHtcbiAgICAgICAgaWYgKCEobGFiZWxUeXBlIGluIGxhYmVsQ29sb3JzKSkge1xuICAgICAgICAgIHJldHVybiAnbW91c2UtcG9pbnRlcic7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSByZXR1cm4gbGFiZWxDb2xvcnNbbGFiZWxUeXBlXSArICcgbW91c2UtcG9pbnRlcic7XG4gICAgICB9XG5cbiAgICAgIEt1YmVybmV0ZXMuaW5pdFNoYXJlZCgkc2NvcGUsICRsb2NhdGlvbiwgJGh0dHAsICR0aW1lb3V0LCAkcm91dGVQYXJhbXMsIEt1YmVybmV0ZXNNb2RlbCwgS3ViZXJuZXRlc1N0YXRlLCBLdWJlcm5ldGVzQXBpVVJMKTtcblxuICAgICAgJHNjb3BlLmRlbGV0ZVByb21wdCA9IChzZWxlY3RlZCkgPT4ge1xuICAgICAgICBVSS5tdWx0aUl0ZW1Db25maXJtQWN0aW9uRGlhbG9nKDxVSS5NdWx0aUl0ZW1Db25maXJtQWN0aW9uT3B0aW9ucz57XG4gICAgICAgICAgY29sbGVjdGlvbjogc2VsZWN0ZWQsXG4gICAgICAgICAgaW5kZXg6ICckbmFtZScsXG4gICAgICAgICAgb25DbG9zZTogKHJlc3VsdDpib29sZWFuKSA9PiB7XG4gICAgICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgICAgIGZ1bmN0aW9uIGRlbGV0ZVNlbGVjdGVkKHNlbGVjdGVkLCBuZXh0KSB7XG4gICAgICAgICAgICAgICAgaWYgKG5leHQpIHtcbiAgICAgICAgICAgICAgICAgIGRlbGV0ZUVudGl0eShuZXh0LCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZVNlbGVjdGVkKHNlbGVjdGVkLCBzZWxlY3RlZC5zaGlmdCgpKTtcbiAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICB1cGRhdGVEYXRhKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgZGVsZXRlU2VsZWN0ZWQoc2VsZWN0ZWQsIHNlbGVjdGVkLnNoaWZ0KCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgdGl0bGU6ICdEZWxldGUgSW1hZ2UgUmVwb3NpdG9yeT8nLFxuICAgICAgICAgIGFjdGlvbjogJ1RoZSBmb2xsb3dpbmcgSW1hZ2UgUmVwb3NpdG9yaWVzIHdpbGwgYmUgZGVsZXRlZDonLFxuICAgICAgICAgIG9rVGV4dDogJ0RlbGV0ZScsXG4gICAgICAgICAgb2tDbGFzczogJ2J0bi1kYW5nZXInLFxuICAgICAgICAgIGN1c3RvbTogXCJUaGlzIG9wZXJhdGlvbiBpcyBwZXJtYW5lbnQgb25jZSBjb21wbGV0ZWQhXCIsXG4gICAgICAgICAgY3VzdG9tQ2xhc3M6IFwiYWxlcnQgYWxlcnQtd2FybmluZ1wiXG4gICAgICAgIH0pLm9wZW4oKTtcbiAgICAgIH07XG5cbiAgICAgIGZ1bmN0aW9uIGRlbGV0ZUVudGl0eShzZWxlY3Rpb24sIG5leHRDYWxsYmFjaykge1xuICAgICAgICB2YXIgbmFtZSA9IChzZWxlY3Rpb24gfHwge30pLiRuYW1lO1xuICAgICAgICBpZiAobmFtZSkge1xuICAgICAgICAgIGNvbnNvbGUubG9nKFwiQWJvdXQgdG8gZGVsZXRlIGltYWdlIHJlcG9zaXRvcnk6IFwiICsgbmFtZSk7XG4gICAgICAgICAgdmFyIHVybCA9IGltYWdlUmVwb3NpdG9yeVJlc3RVcmwobmFtZSk7XG4gICAgICAgICAgJGh0dHAuZGVsZXRlKHVybCkuXG4gICAgICAgICAgICBzdWNjZXNzKGZ1bmN0aW9uIChkYXRhLCBzdGF0dXMsIGhlYWRlcnMsIGNvbmZpZykge1xuICAgICAgICAgICAgICBuZXh0Q2FsbGJhY2soKTtcbiAgICAgICAgICAgIH0pLlxuICAgICAgICAgICAgZXJyb3IoZnVuY3Rpb24gKGRhdGEsIHN0YXR1cywgaGVhZGVycywgY29uZmlnKSB7XG4gICAgICAgICAgICAgIGxvZy53YXJuKFwiRmFpbGVkIHRvIGRlbGV0ZSBpbWFnZSByZXBvc2l0b3J5IG9uIFwiICsgdXJsICsgXCIgXCIgKyBkYXRhICsgXCIgXCIgKyBzdGF0dXMpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc29sZS5sb2coXCJ3YXJuaW5nOiBubyBuYW1lIGZvciBzZWxlY3Rpb246IFwiICsgYW5ndWxhci50b0pzb24oc2VsZWN0aW9uKSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgZnVuY3Rpb24gdXBkYXRlRGF0YSgpIHtcbiAgICAgICAgdmFyIHVybCA9IGltYWdlUmVwb3NpdG9yaWVzUmVzdFVSTCgpO1xuICAgICAgICAkaHR0cC5nZXQodXJsKS5cbiAgICAgICAgICBzdWNjZXNzKGZ1bmN0aW9uIChkYXRhLCBzdGF0dXMsIGhlYWRlcnMsIGNvbmZpZykge1xuICAgICAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgICAgLy9jb25zb2xlLmxvZyhcImdvdCBkYXRhIFwiICsgYW5ndWxhci50b0pzb24oZGF0YSwgdHJ1ZSkpO1xuICAgICAgICAgICAgICAkc2NvcGUuaW1hZ2VSZXBvc2l0b3JpZXMgPSBlbnJpY2hJbWFnZVJlcG9zaXRvcmllcyhkYXRhLml0ZW1zKTtcbiAgICAgICAgICAgICAgJHNjb3BlLmZldGNoZWQgPSB0cnVlO1xuICAgICAgICAgICAgICBDb3JlLiRhcHBseSgkc2NvcGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pLlxuICAgICAgICAgIGVycm9yKGZ1bmN0aW9uIChkYXRhLCBzdGF0dXMsIGhlYWRlcnMsIGNvbmZpZykge1xuICAgICAgICAgICAgbG9nLndhcm4oXCJGYWlsZWQgdG8gbG9hZCBcIiArIHVybCArIFwiIFwiICsgZGF0YSArIFwiIFwiICsgc3RhdHVzKTtcbiAgICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgdXBkYXRlRGF0YSgpO1xuICAgIH1dKTtcbn1cbiIsIi8vLyA8cmVmZXJlbmNlIHBhdGg9XCIuLi8uLi9pbmNsdWRlcy50c1wiLz5cblxubW9kdWxlIEt1YmVybmV0ZXMge1xuIFxuICBleHBvcnQgdmFyIHNjaGVtYSA9IFxuICB7XG4gICAgXCJpZFwiOiBcImh0dHA6Ly9mYWJyaWM4LmlvL2ZhYnJpYzgvdjIvU2NoZW1hI1wiLFxuICAgIFwiJHNjaGVtYVwiOiBcImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvc2NoZW1hI1wiLFxuICAgIFwiZGVmaW5pdGlvbnNcIjoge1xuICAgICAgXCJhcGlfUm9vdFBhdGhzXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcInBhdGhzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5Sb290UGF0aHNcIlxuICAgICAgfSxcbiAgICAgIFwia3ViZXJuZXRlc19BV1NFbGFzdGljQmxvY2tTdG9yZVZvbHVtZVNvdXJjZVwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCJmc1R5cGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiZmlsZSBzeXN0ZW0gdHlwZSB0byBtb3VudFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInBhcnRpdGlvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwicGFydGl0aW9uIG9uIHRoZSBkaXNrIHRvIG1vdW50IChlLmcuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicmVhZE9ubHlcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInJlYWQtb25seSBpZiB0cnVlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidm9sdW1lSURcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwidW5pcXVlIGlkIG9mIHRoZSBQRCByZXNvdXJjZSBpbiBBV1M7IHNlZSBodHRwOi8vcmVsZWFzZXMuazhzLmlvL0hFQUQvZG9jcy91c2VyLWd1aWRlL3ZvbHVtZXMubWQjYXdzZWxhc3RpY2Jsb2Nrc3RvcmVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5BV1NFbGFzdGljQmxvY2tTdG9yZVZvbHVtZVNvdXJjZVwiXG4gICAgICB9LFxuICAgICAgXCJrdWJlcm5ldGVzX0NhcGFiaWxpdGllc1wiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCJhZGRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJhZGRlZCBjYXBhYmlsaXRpZXNcIixcbiAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImFkZGVkIGNhcGFiaWxpdGllc1wiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImRyb3BcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJkcm9wZWQgY2FwYWJpbGl0aWVzXCIsXG4gICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJkcm9wZWQgY2FwYWJpbGl0aWVzXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuQ2FwYWJpbGl0aWVzXCJcbiAgICAgIH0sXG4gICAgICBcImt1YmVybmV0ZXNfQ2VwaEZTVm9sdW1lU291cmNlXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcIm1vbml0b3JzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiYSBjb2xsZWN0aW9uIG9mIENlcGggbW9uaXRvcnNcIixcbiAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImEgY29sbGVjdGlvbiBvZiBDZXBoIG1vbml0b3JzXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicmVhZE9ubHlcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkNlcGggZnMgdG8gYmUgbW91bnRlZCB3aXRoIHJlYWQtb25seSBwZXJtaXNzaW9uc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInNlY3JldEZpbGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwicGF0aCB0byBzZWNyZXQgZm9yIHJhZG9zIHVzZXI7IGRlZmF1bHQgaXMgL2V0Yy9jZXBoL3VzZXIuc2VjcmV0OyBvcHRpb25hbFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInNlY3JldFJlZlwiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfTG9jYWxPYmplY3RSZWZlcmVuY2VcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkxvY2FsT2JqZWN0UmVmZXJlbmNlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidXNlclwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJyYWRvcyB1c2VyIG5hbWU7IGRlZmF1bHQgaXMgYWRtaW47IG9wdGlvbmFsXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuQ2VwaEZTVm9sdW1lU291cmNlXCJcbiAgICAgIH0sXG4gICAgICBcImt1YmVybmV0ZXNfQ29udGFpbmVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcImFyZ3NcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJjb21tYW5kIGFycmF5OyB0aGUgZG9ja2VyIGltYWdlJ3MgY21kIGlzIHVzZWQgaWYgdGhpcyBpcyBub3QgcHJvdmlkZWQ7IGFyZ3VtZW50cyB0byB0aGUgZW50cnlwb2ludDsgY2Fubm90IGJlIHVwZGF0ZWQ7IHZhcmlhYmxlIHJlZmVyZW5jZXMgJChWQVJfTkFNRSkgYXJlIGV4cGFuZGVkIHVzaW5nIHRoZSBjb250YWluZXIncyBlbnZpcm9ubWVudCB2YXJpYWJsZXM7IGlmIGEgdmFyaWFibGUgY2Fubm90IGJlIHJlc29sdmVkXCIsXG4gICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJjb21tYW5kIGFycmF5OyB0aGUgZG9ja2VyIGltYWdlJ3MgY21kIGlzIHVzZWQgaWYgdGhpcyBpcyBub3QgcHJvdmlkZWQ7IGFyZ3VtZW50cyB0byB0aGUgZW50cnlwb2ludDsgY2Fubm90IGJlIHVwZGF0ZWQ7IHZhcmlhYmxlIHJlZmVyZW5jZXMgJChWQVJfTkFNRSkgYXJlIGV4cGFuZGVkIHVzaW5nIHRoZSBjb250YWluZXIncyBlbnZpcm9ubWVudCB2YXJpYWJsZXM7IGlmIGEgdmFyaWFibGUgY2Fubm90IGJlIHJlc29sdmVkXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiY29tbWFuZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImVudHJ5cG9pbnQgYXJyYXk7IG5vdCBleGVjdXRlZCB3aXRoaW4gYSBzaGVsbDsgdGhlIGRvY2tlciBpbWFnZSdzIGVudHJ5cG9pbnQgaXMgdXNlZCBpZiB0aGlzIGlzIG5vdCBwcm92aWRlZDsgY2Fubm90IGJlIHVwZGF0ZWQ7IHZhcmlhYmxlIHJlZmVyZW5jZXMgJChWQVJfTkFNRSkgYXJlIGV4cGFuZGVkIHVzaW5nIHRoZSBjb250YWluZXIncyBlbnZpcm9ubWVudCB2YXJpYWJsZXM7IGlmIGEgdmFyaWFibGUgY2Fubm90IGJlIHJlc29sdmVkXCIsXG4gICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJlbnRyeXBvaW50IGFycmF5OyBub3QgZXhlY3V0ZWQgd2l0aGluIGEgc2hlbGw7IHRoZSBkb2NrZXIgaW1hZ2UncyBlbnRyeXBvaW50IGlzIHVzZWQgaWYgdGhpcyBpcyBub3QgcHJvdmlkZWQ7IGNhbm5vdCBiZSB1cGRhdGVkOyB2YXJpYWJsZSByZWZlcmVuY2VzICQoVkFSX05BTUUpIGFyZSBleHBhbmRlZCB1c2luZyB0aGUgY29udGFpbmVyJ3MgZW52aXJvbm1lbnQgdmFyaWFibGVzOyBpZiBhIHZhcmlhYmxlIGNhbm5vdCBiZSByZXNvbHZlZFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImVudlwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImxpc3Qgb2YgZW52aXJvbm1lbnQgdmFyaWFibGVzIHRvIHNldCBpbiB0aGUgY29udGFpbmVyOyBjYW5ub3QgYmUgdXBkYXRlZFwiLFxuICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19FbnZWYXJcIixcbiAgICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuRW52VmFyXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiaW1hZ2VcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiRG9ja2VyIGltYWdlIG5hbWU7IHNlZSBodHRwOi8vcmVsZWFzZXMuazhzLmlvL0hFQUQvZG9jcy91c2VyLWd1aWRlL2ltYWdlcy5tZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImltYWdlUHVsbFBvbGljeVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJpbWFnZSBwdWxsIHBvbGljeTsgb25lIG9mIEFsd2F5c1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImxpZmVjeWNsZVwiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfTGlmZWN5Y2xlXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5MaWZlY3ljbGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJsaXZlbmVzc1Byb2JlXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19Qcm9iZVwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuUHJvYmVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuYW1lXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIm5hbWUgb2YgdGhlIGNvbnRhaW5lcjsgbXVzdCBiZSBhIEROU19MQUJFTCBhbmQgdW5pcXVlIHdpdGhpbiB0aGUgcG9kOyBjYW5ub3QgYmUgdXBkYXRlZFwiLFxuICAgICAgICAgICAgXCJtYXhMZW5ndGhcIjogNjMsXG4gICAgICAgICAgICBcInBhdHRlcm5cIjogXCJeW2EtejAtOV0oWy1hLXowLTldKlthLXowLTldKT8kXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicG9ydHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJsaXN0IG9mIHBvcnRzIHRvIGV4cG9zZSBmcm9tIHRoZSBjb250YWluZXI7IGNhbm5vdCBiZSB1cGRhdGVkXCIsXG4gICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX0NvbnRhaW5lclBvcnRcIixcbiAgICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuQ29udGFpbmVyUG9ydFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInJlYWRpbmVzc1Byb2JlXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19Qcm9iZVwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuUHJvYmVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJyZXNvdXJjZXNcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX1Jlc291cmNlUmVxdWlyZW1lbnRzXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5SZXNvdXJjZVJlcXVpcmVtZW50c1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInNlY3VyaXR5Q29udGV4dFwiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfU2VjdXJpdHlDb250ZXh0XCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5TZWN1cml0eUNvbnRleHRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzdGRpblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiV2hldGhlciB0aGlzIGNvbnRhaW5lciBzaG91bGQgYWxsb2NhdGUgYSBidWZmZXIgZm9yIHN0ZGluIGluIHRoZSBjb250YWluZXIgcnVudGltZTsgZGVmYXVsdCBpcyBmYWxzZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInRlcm1pbmF0aW9uTWVzc2FnZVBhdGhcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwicGF0aCBhdCB3aGljaCB0aGUgZmlsZSB0byB3aGljaCB0aGUgY29udGFpbmVyJ3MgdGVybWluYXRpb24gbWVzc2FnZSB3aWxsIGJlIHdyaXR0ZW4gaXMgbW91bnRlZCBpbnRvIHRoZSBjb250YWluZXIncyBmaWxlc3lzdGVtOyBtZXNzYWdlIHdyaXR0ZW4gaXMgaW50ZW5kZWQgdG8gYmUgYnJpZWYgZmluYWwgc3RhdHVzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidHR5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJXaGV0aGVyIHRoaXMgY29udGFpbmVyIHNob3VsZCBhbGxvY2F0ZSBhIFRUWSBmb3IgaXRzZWxmXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidm9sdW1lTW91bnRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwicG9kIHZvbHVtZXMgdG8gbW91bnQgaW50byB0aGUgY29udGFpbmVyJ3MgZmlsZXN5c3RlOyBjYW5ub3QgYmUgdXBkYXRlZFwiLFxuICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19Wb2x1bWVNb3VudFwiLFxuICAgICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5Wb2x1bWVNb3VudFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIndvcmtpbmdEaXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiY29udGFpbmVyJ3Mgd29ya2luZyBkaXJlY3Rvcnk7IGRlZmF1bHRzIHRvIGltYWdlJ3MgZGVmYXVsdDsgY2Fubm90IGJlIHVwZGF0ZWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5Db250YWluZXJcIlxuICAgICAgfSxcbiAgICAgIFwia3ViZXJuZXRlc19Db250YWluZXJQb3J0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcImNvbnRhaW5lclBvcnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIm51bWJlciBvZiBwb3J0IHRvIGV4cG9zZSBvbiB0aGUgcG9kJ3MgSVAgYWRkcmVzc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImhvc3RJUFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJob3N0IElQIHRvIGJpbmQgdGhlIHBvcnQgdG9cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJob3N0UG9ydFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibnVtYmVyIG9mIHBvcnQgdG8gZXhwb3NlIG9uIHRoZSBob3N0OyBtb3N0IGNvbnRhaW5lcnMgZG8gbm90IG5lZWQgdGhpc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5hbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibmFtZSBmb3IgdGhlIHBvcnQgdGhhdCBjYW4gYmUgcmVmZXJyZWQgdG8gYnkgc2VydmljZXM7IG11c3QgYmUgYW4gSUFOQV9TVkNfTkFNRSBhbmQgdW5pcXVlIHdpdGhpbiB0aGUgcG9kXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicHJvdG9jb2xcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwicHJvdG9jb2wgZm9yIHBvcnQ7IG11c3QgYmUgVURQIG9yIFRDUDsgVENQIGlmIHVuc3BlY2lmaWVkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuQ29udGFpbmVyUG9ydFwiXG4gICAgICB9LFxuICAgICAgXCJrdWJlcm5ldGVzX0NvbnRhaW5lclN0YXRlXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcInJ1bm5pbmdcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX0NvbnRhaW5lclN0YXRlUnVubmluZ1wiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuQ29udGFpbmVyU3RhdGVSdW5uaW5nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidGVybWluYXRlZFwiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfQ29udGFpbmVyU3RhdGVUZXJtaW5hdGVkXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5Db250YWluZXJTdGF0ZVRlcm1pbmF0ZWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ3YWl0aW5nXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19Db250YWluZXJTdGF0ZVdhaXRpbmdcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkNvbnRhaW5lclN0YXRlV2FpdGluZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkNvbnRhaW5lclN0YXRlXCJcbiAgICAgIH0sXG4gICAgICBcImt1YmVybmV0ZXNfQ29udGFpbmVyU3RhdGVSdW5uaW5nXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcInN0YXJ0ZWRBdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJ0aW1lIGF0IHdoaWNoIHRoZSBjb250YWluZXIgd2FzIGxhc3QgKHJlLSlzdGFydGVkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuQ29udGFpbmVyU3RhdGVSdW5uaW5nXCJcbiAgICAgIH0sXG4gICAgICBcImt1YmVybmV0ZXNfQ29udGFpbmVyU3RhdGVUZXJtaW5hdGVkXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcImNvbnRhaW5lcklEXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImNvbnRhaW5lcidzIElEIGluIHRoZSBmb3JtYXQgJ2RvY2tlcjovL1xcdTAwM2Njb250YWluZXJfaWRcXHUwMDNlJ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImV4aXRDb2RlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJleGl0IHN0YXR1cyBmcm9tIHRoZSBsYXN0IHRlcm1pbmF0aW9uIG9mIHRoZSBjb250YWluZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJmaW5pc2hlZEF0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInRpbWUgYXQgd2hpY2ggdGhlIGNvbnRhaW5lciBsYXN0IHRlcm1pbmF0ZWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJtZXNzYWdlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIm1lc3NhZ2UgcmVnYXJkaW5nIHRoZSBsYXN0IHRlcm1pbmF0aW9uIG9mIHRoZSBjb250YWluZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJyZWFzb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiKGJyaWVmKSByZWFzb24gZnJvbSB0aGUgbGFzdCB0ZXJtaW5hdGlvbiBvZiB0aGUgY29udGFpbmVyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic2lnbmFsXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJzaWduYWwgZnJvbSB0aGUgbGFzdCB0ZXJtaW5hdGlvbiBvZiB0aGUgY29udGFpbmVyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic3RhcnRlZEF0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInRpbWUgYXQgd2hpY2ggcHJldmlvdXMgZXhlY3V0aW9uIG9mIHRoZSBjb250YWluZXIgc3RhcnRlZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkNvbnRhaW5lclN0YXRlVGVybWluYXRlZFwiXG4gICAgICB9LFxuICAgICAgXCJrdWJlcm5ldGVzX0NvbnRhaW5lclN0YXRlV2FpdGluZ1wiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCJyZWFzb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiKGJyaWVmKSByZWFzb24gdGhlIGNvbnRhaW5lciBpcyBub3QgeWV0IHJ1bm5pbmdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5Db250YWluZXJTdGF0ZVdhaXRpbmdcIlxuICAgICAgfSxcbiAgICAgIFwia3ViZXJuZXRlc19Db250YWluZXJTdGF0dXNcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwiY29udGFpbmVySURcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiY29udGFpbmVyJ3MgSUQgaW4gdGhlIGZvcm1hdCAnZG9ja2VyOi8vXFx1MDAzY2NvbnRhaW5lcl9pZFxcdTAwM2UnOyBzZWUgaHR0cDovL3JlbGVhc2VzLms4cy5pby9IRUFEL2RvY3MvdXNlci1ndWlkZS9jb250YWluZXItZW52aXJvbm1lbnQubWQjY29udGFpbmVyLWluZm9ybWF0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiaW1hZ2VcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiaW1hZ2Ugb2YgdGhlIGNvbnRhaW5lcjsgc2VlIGh0dHA6Ly9yZWxlYXNlcy5rOHMuaW8vSEVBRC9kb2NzL3VzZXItZ3VpZGUvaW1hZ2VzLm1kXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiaW1hZ2VJRFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJJRCBvZiB0aGUgY29udGFpbmVyJ3MgaW1hZ2VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJsYXN0U3RhdGVcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX0NvbnRhaW5lclN0YXRlXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5Db250YWluZXJTdGF0ZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5hbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibmFtZSBvZiB0aGUgY29udGFpbmVyOyBtdXN0IGJlIGEgRE5TX0xBQkVMIGFuZCB1bmlxdWUgd2l0aGluIHRoZSBwb2Q7IGNhbm5vdCBiZSB1cGRhdGVkXCIsXG4gICAgICAgICAgICBcIm1heExlbmd0aFwiOiA2MyxcbiAgICAgICAgICAgIFwicGF0dGVyblwiOiBcIl5bYS16MC05XShbLWEtejAtOV0qW2EtejAtOV0pPyRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJyZWFkeVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwic3BlY2lmaWVzIHdoZXRoZXIgdGhlIGNvbnRhaW5lciBoYXMgcGFzc2VkIGl0cyByZWFkaW5lc3MgcHJvYmVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJyZXN0YXJ0Q291bnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInRoZSBudW1iZXIgb2YgdGltZXMgdGhlIGNvbnRhaW5lciBoYXMgYmVlbiByZXN0YXJ0ZWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzdGF0ZVwiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfQ29udGFpbmVyU3RhdGVcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkNvbnRhaW5lclN0YXRlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuQ29udGFpbmVyU3RhdHVzXCJcbiAgICAgIH0sXG4gICAgICBcImt1YmVybmV0ZXNfRW1wdHlEaXJWb2x1bWVTb3VyY2VcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwibWVkaXVtXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInR5cGUgb2Ygc3RvcmFnZSB1c2VkIHRvIGJhY2sgdGhlIHZvbHVtZTsgbXVzdCBiZSBhbiBlbXB0eSBzdHJpbmcgKGRlZmF1bHQpIG9yIE1lbW9yeTsgc2VlIGh0dHA6Ly9yZWxlYXNlcy5rOHMuaW8vSEVBRC9kb2NzL3VzZXItZ3VpZGUvdm9sdW1lcy5tZCNlbXB0eWRpclwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkVtcHR5RGlyVm9sdW1lU291cmNlXCJcbiAgICAgIH0sXG4gICAgICBcImt1YmVybmV0ZXNfRW5kcG9pbnRBZGRyZXNzXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcImlwXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIklQIGFkZHJlc3Mgb2YgdGhlIGVuZHBvaW50XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidGFyZ2V0UmVmXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19PYmplY3RSZWZlcmVuY2VcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLk9iamVjdFJlZmVyZW5jZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkVuZHBvaW50QWRkcmVzc1wiXG4gICAgICB9LFxuICAgICAgXCJrdWJlcm5ldGVzX0VuZHBvaW50UG9ydFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCJuYW1lXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIm5hbWUgb2YgdGhpcyBwb3J0XCIsXG4gICAgICAgICAgICBcIm1heExlbmd0aFwiOiA2MyxcbiAgICAgICAgICAgIFwicGF0dGVyblwiOiBcIl5bYS16MC05XShbLWEtejAtOV0qW2EtejAtOV0pPyRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJwb3J0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJwb3J0IG51bWJlciBvZiB0aGUgZW5kcG9pbnRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJwcm90b2NvbFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJwcm90b2NvbCBmb3IgdGhpcyBwb3J0OyBtdXN0IGJlIFVEUCBvciBUQ1A7IFRDUCBpZiB1bnNwZWNpZmllZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkVuZHBvaW50UG9ydFwiXG4gICAgICB9LFxuICAgICAgXCJrdWJlcm5ldGVzX0VuZHBvaW50U3Vic2V0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcImFkZHJlc3Nlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIklQIGFkZHJlc3NlcyB3aGljaCBvZmZlciB0aGUgcmVsYXRlZCBwb3J0c1wiLFxuICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19FbmRwb2ludEFkZHJlc3NcIixcbiAgICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuRW5kcG9pbnRBZGRyZXNzXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicG9ydHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJwb3J0IG51bWJlcnMgYXZhaWxhYmxlIG9uIHRoZSByZWxhdGVkIElQIGFkZHJlc3Nlc1wiLFxuICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19FbmRwb2ludFBvcnRcIixcbiAgICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuRW5kcG9pbnRQb3J0XCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuRW5kcG9pbnRTdWJzZXRcIlxuICAgICAgfSxcbiAgICAgIFwia3ViZXJuZXRlc19FbmRwb2ludHNcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwiYXBpVmVyc2lvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICAgIFwiZGVmYXVsdFwiOiBcInYxXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IHRydWUsXG4gICAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgICBcInYxXCJcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwia2luZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICAgIFwiZGVmYXVsdFwiOiBcIkVuZHBvaW50c1wiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19PYmplY3RNZXRhXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5PYmplY3RNZXRhXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic3Vic2V0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInNldHMgb2YgYWRkcmVzc2VzIGFuZCBwb3J0cyB0aGF0IGNvbXByaXNlIGEgc2VydmljZVwiLFxuICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19FbmRwb2ludFN1YnNldFwiLFxuICAgICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5FbmRwb2ludFN1YnNldFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkVuZHBvaW50c1wiLFxuICAgICAgICBcImphdmFJbnRlcmZhY2VzXCI6IFtcbiAgICAgICAgICBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuSGFzTWV0YWRhdGFcIlxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgXCJrdWJlcm5ldGVzX0VuZHBvaW50c0xpc3RcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwiYXBpVmVyc2lvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICAgIFwiZGVmYXVsdFwiOiBcInYxXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IHRydWUsXG4gICAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgICBcInYxXCJcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJsaXN0IG9mIGVuZHBvaW50c1wiLFxuICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19FbmRwb2ludHNcIixcbiAgICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuRW5kcG9pbnRzXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwia2luZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICAgIFwiZGVmYXVsdFwiOiBcIkVuZHBvaW50c0xpc3RcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJtZXRhZGF0YVwiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfTGlzdE1ldGFcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkxpc3RNZXRhXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuRW5kcG9pbnRzTGlzdFwiLFxuICAgICAgICBcImphdmFJbnRlcmZhY2VzXCI6IFtcbiAgICAgICAgICBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuS3ViZXJuZXRlc1Jlc291cmNlXCIsXG4gICAgICAgICAgXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkt1YmVybmV0ZXNSZXNvdXJjZUxpc3RcIlxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgXCJrdWJlcm5ldGVzX0VudlZhclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCJuYW1lXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIm5hbWUgb2YgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlOyBtdXN0IGJlIGEgQ19JREVOVElGSUVSXCIsXG4gICAgICAgICAgICBcInBhdHRlcm5cIjogXCJeW0EtWmEtel9dW0EtWmEtejAtOV9dKiRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ2YWx1ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJ2YWx1ZSBvZiB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGU7IGRlZmF1bHRzIHRvIGVtcHR5IHN0cmluZzsgdmFyaWFibGUgcmVmZXJlbmNlcyAkKFZBUl9OQU1FKSBhcmUgZXhwYW5kZWQgdXNpbmcgdGhlIHByZXZpb3VzbHkgZGVmaW5lZCBlbnZpcm9ubWVudCB2YXJpYmxlcyBpbiB0aGUgY29udGFpbmVyIGFuZCBhbnkgc2VydmljZSBlbnZpcm9ubWVudCB2YXJpYWJsZXM7IGlmIGEgdmFyaWFibGUgY2Fubm90IGJlIHJlc29sdmVkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidmFsdWVGcm9tXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19FbnZWYXJTb3VyY2VcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkVudlZhclNvdXJjZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkVudlZhclwiXG4gICAgICB9LFxuICAgICAgXCJrdWJlcm5ldGVzX0VudlZhclNvdXJjZVwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCJmaWVsZFJlZlwiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfT2JqZWN0RmllbGRTZWxlY3RvclwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuT2JqZWN0RmllbGRTZWxlY3RvclwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkVudlZhclNvdXJjZVwiXG4gICAgICB9LFxuICAgICAgXCJrdWJlcm5ldGVzX0V2ZW50XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcImFwaVZlcnNpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogXCJ2MVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlLFxuICAgICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgICAgXCJ2MVwiXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImNvdW50XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJ0aGUgbnVtYmVyIG9mIHRpbWVzIHRoaXMgZXZlbnQgaGFzIG9jY3VycmVkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZmlyc3RUaW1lc3RhbXBcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwidGhlIHRpbWUgYXQgd2hpY2ggdGhlIGV2ZW50IHdhcyBmaXJzdCByZWNvcmRlZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImludm9sdmVkT2JqZWN0XCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19PYmplY3RSZWZlcmVuY2VcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLk9iamVjdFJlZmVyZW5jZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImtpbmRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogXCJFdmVudFwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImxhc3RUaW1lc3RhbXBcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwidGhlIHRpbWUgYXQgd2hpY2ggdGhlIG1vc3QgcmVjZW50IG9jY3VycmVuY2Ugb2YgdGhpcyBldmVudCB3YXMgcmVjb3JkZWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJtZXNzYWdlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImh1bWFuLXJlYWRhYmxlIGRlc2NyaXB0aW9uIG9mIHRoZSBzdGF0dXMgb2YgdGhpcyBvcGVyYXRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJtZXRhZGF0YVwiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfT2JqZWN0TWV0YVwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuT2JqZWN0TWV0YVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInJlYXNvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJzaG9ydFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInNvdXJjZVwiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfRXZlbnRTb3VyY2VcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkV2ZW50U291cmNlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuRXZlbnRcIixcbiAgICAgICAgXCJqYXZhSW50ZXJmYWNlc1wiOiBbXG4gICAgICAgICAgXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkhhc01ldGFkYXRhXCJcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIFwia3ViZXJuZXRlc19FdmVudExpc3RcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwiYXBpVmVyc2lvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICAgIFwiZGVmYXVsdFwiOiBcInYxXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IHRydWUsXG4gICAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgICBcInYxXCJcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJsaXN0IG9mIGV2ZW50c1wiLFxuICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19FdmVudFwiLFxuICAgICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5FdmVudFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImtpbmRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogXCJFdmVudExpc3RcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJtZXRhZGF0YVwiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfTGlzdE1ldGFcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkxpc3RNZXRhXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuRXZlbnRMaXN0XCIsXG4gICAgICAgIFwiamF2YUludGVyZmFjZXNcIjogW1xuICAgICAgICAgIFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5LdWJlcm5ldGVzUmVzb3VyY2VcIixcbiAgICAgICAgICBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuS3ViZXJuZXRlc1Jlc291cmNlTGlzdFwiXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICBcImt1YmVybmV0ZXNfRXZlbnRTb3VyY2VcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwiY29tcG9uZW50XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImNvbXBvbmVudCB0aGF0IGdlbmVyYXRlZCB0aGUgZXZlbnRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJob3N0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIm5hbWUgb2YgdGhlIGhvc3Qgd2hlcmUgdGhlIGV2ZW50IGlzIGdlbmVyYXRlZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkV2ZW50U291cmNlXCJcbiAgICAgIH0sXG4gICAgICBcImt1YmVybmV0ZXNfRXhlY0FjdGlvblwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCJjb21tYW5kXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiY29tbWFuZCBsaW5lIHRvIGV4ZWN1dGUgaW5zaWRlIHRoZSBjb250YWluZXI7IHdvcmtpbmcgZGlyZWN0b3J5IGZvciB0aGUgY29tbWFuZCBpcyByb290ICgnLycpIGluIHRoZSBjb250YWluZXIncyBmaWxlIHN5c3RlbTsgdGhlIGNvbW1hbmQgaXMgZXhlYydkXCIsXG4gICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJjb21tYW5kIGxpbmUgdG8gZXhlY3V0ZSBpbnNpZGUgdGhlIGNvbnRhaW5lcjsgd29ya2luZyBkaXJlY3RvcnkgZm9yIHRoZSBjb21tYW5kIGlzIHJvb3QgKCcvJykgaW4gdGhlIGNvbnRhaW5lcidzIGZpbGUgc3lzdGVtOyB0aGUgY29tbWFuZCBpcyBleGVjJ2RcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5FeGVjQWN0aW9uXCJcbiAgICAgIH0sXG4gICAgICBcImt1YmVybmV0ZXNfR0NFUGVyc2lzdGVudERpc2tWb2x1bWVTb3VyY2VcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwiZnNUeXBlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImZpbGUgc3lzdGVtIHR5cGUgdG8gbW91bnRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJwYXJ0aXRpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInBhcnRpdGlvbiBvbiB0aGUgZGlzayB0byBtb3VudCAoZS5nLlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInBkTmFtZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJ1bmlxdWUgbmFtZSBvZiB0aGUgUEQgcmVzb3VyY2UgaW4gR0NFOyBzZWUgaHR0cDovL3JlbGVhc2VzLms4cy5pby9IRUFEL2RvY3MvdXNlci1ndWlkZS92b2x1bWVzLm1kI2djZXBlcnNpc3RlbnRkaXNrXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicmVhZE9ubHlcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInJlYWQtb25seSBpZiB0cnVlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuR0NFUGVyc2lzdGVudERpc2tWb2x1bWVTb3VyY2VcIlxuICAgICAgfSxcbiAgICAgIFwia3ViZXJuZXRlc19HaXRSZXBvVm9sdW1lU291cmNlXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcInJlcG9zaXRvcnlcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwicmVwb3NpdG9yeSBVUkxcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJyZXZpc2lvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJjb21taXQgaGFzaCBmb3IgdGhlIHNwZWNpZmllZCByZXZpc2lvblwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkdpdFJlcG9Wb2x1bWVTb3VyY2VcIlxuICAgICAgfSxcbiAgICAgIFwia3ViZXJuZXRlc19HbHVzdGVyZnNWb2x1bWVTb3VyY2VcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwiZW5kcG9pbnRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImdsdXN0ZXIgaG9zdHMgZW5kcG9pbnRzIG5hbWU7IHNlZSBodHRwOi8vcmVsZWFzZXMuazhzLmlvL0hFQUQvZXhhbXBsZXMvZ2x1c3RlcmZzL1JFQURNRS5tZCNjcmVhdGUtYS1wb2RcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJwYXRoXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInBhdGggdG8gZ2x1c3RlciB2b2x1bWU7IHNlZSBodHRwOi8vcmVsZWFzZXMuazhzLmlvL0hFQUQvZXhhbXBsZXMvZ2x1c3RlcmZzL1JFQURNRS5tZCNjcmVhdGUtYS1wb2RcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJyZWFkT25seVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiZ2x1c3RlcmZzIHZvbHVtZSB0byBiZSBtb3VudGVkIHdpdGggcmVhZC1vbmx5IHBlcm1pc3Npb25zOyBzZWUgaHR0cDovL3JlbGVhc2VzLms4cy5pby9IRUFEL2V4YW1wbGVzL2dsdXN0ZXJmcy9SRUFETUUubWQjY3JlYXRlLWEtcG9kXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuR2x1c3RlcmZzVm9sdW1lU291cmNlXCJcbiAgICAgIH0sXG4gICAgICBcImt1YmVybmV0ZXNfSFRUUEdldEFjdGlvblwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCJob3N0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImhvc3RuYW1lIHRvIGNvbm5lY3QgdG87IGRlZmF1bHRzIHRvIHBvZCBJUFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInBhdGhcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwicGF0aCB0byBhY2Nlc3Mgb24gdGhlIEhUVFAgc2VydmVyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicG9ydFwiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfdXRpbF9JbnRPclN0cmluZ1wiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuSW50T3JTdHJpbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzY2hlbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwic2NoZW1lIHRvIGNvbm5lY3Qgd2l0aFwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkhUVFBHZXRBY3Rpb25cIlxuICAgICAgfSxcbiAgICAgIFwia3ViZXJuZXRlc19IYW5kbGVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcImV4ZWNcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX0V4ZWNBY3Rpb25cIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkV4ZWNBY3Rpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJodHRwR2V0XCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19IVFRQR2V0QWN0aW9uXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5IVFRQR2V0QWN0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidGNwU29ja2V0XCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19UQ1BTb2NrZXRBY3Rpb25cIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLlRDUFNvY2tldEFjdGlvblwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkhhbmRsZXJcIlxuICAgICAgfSxcbiAgICAgIFwia3ViZXJuZXRlc19Ib3N0UGF0aFZvbHVtZVNvdXJjZVwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCJwYXRoXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInBhdGggb2YgdGhlIGRpcmVjdG9yeSBvbiB0aGUgaG9zdDsgc2VlIGh0dHA6Ly9yZWxlYXNlcy5rOHMuaW8vSEVBRC9kb2NzL3VzZXItZ3VpZGUvdm9sdW1lcy5tZCNob3N0cGF0aFwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkhvc3RQYXRoVm9sdW1lU291cmNlXCJcbiAgICAgIH0sXG4gICAgICBcImt1YmVybmV0ZXNfSVNDU0lWb2x1bWVTb3VyY2VcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwiZnNUeXBlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImZpbGUgc3lzdGVtIHR5cGUgdG8gbW91bnRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJpcW5cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiaVNDU0kgUXVhbGlmaWVkIE5hbWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJsdW5cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImlzY3NpIHRhcmdldCBsdW4gbnVtYmVyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicmVhZE9ubHlcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInJlYWQtb25seSBpZiB0cnVlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidGFyZ2V0UG9ydGFsXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImlTQ1NJIHRhcmdldCBwb3J0YWxcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5JU0NTSVZvbHVtZVNvdXJjZVwiXG4gICAgICB9LFxuICAgICAgXCJrdWJlcm5ldGVzX0xpZmVjeWNsZVwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCJwb3N0U3RhcnRcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX0hhbmRsZXJcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkhhbmRsZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJwcmVTdG9wXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19IYW5kbGVyXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5IYW5kbGVyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuTGlmZWN5Y2xlXCJcbiAgICAgIH0sXG4gICAgICBcImt1YmVybmV0ZXNfTGlzdFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCJhcGlWZXJzaW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICAgICAgXCJkZWZhdWx0XCI6IFwidjFcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogdHJ1ZSxcbiAgICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICAgIFwidjFcIlxuICAgICAgICAgICAgXVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImxpc3Qgb2Ygb2JqZWN0c1wiLFxuICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19ydW50aW1lX1Jhd0V4dGVuc2lvblwiLFxuICAgICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5IYXNNZXRhZGF0YVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImtpbmRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogXCJMaXN0XCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibWV0YWRhdGFcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX0xpc3RNZXRhXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5MaXN0TWV0YVwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkJhc2VLdWJlcm5ldGVzTGlzdFwiLFxuICAgICAgICBcImphdmFJbnRlcmZhY2VzXCI6IFtcbiAgICAgICAgICBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuS3ViZXJuZXRlc1Jlc291cmNlXCIsXG4gICAgICAgICAgXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkt1YmVybmV0ZXNSZXNvdXJjZUxpc3RcIlxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgXCJrdWJlcm5ldGVzX0xpc3RNZXRhXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcInJlc291cmNlVmVyc2lvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJzdHJpbmcgdGhhdCBpZGVudGlmaWVzIHRoZSBpbnRlcm5hbCB2ZXJzaW9uIG9mIHRoaXMgb2JqZWN0IHRoYXQgY2FuIGJlIHVzZWQgYnkgY2xpZW50cyB0byBkZXRlcm1pbmUgd2hlbiBvYmplY3RzIGhhdmUgY2hhbmdlZDsgcG9wdWxhdGVkIGJ5IHRoZSBzeXN0ZW1cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzZWxmTGlua1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJVUkwgZm9yIHRoZSBvYmplY3Q7IHBvcHVsYXRlZCBieSB0aGUgc3lzdGVtXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuTGlzdE1ldGFcIlxuICAgICAgfSxcbiAgICAgIFwia3ViZXJuZXRlc19Mb2FkQmFsYW5jZXJJbmdyZXNzXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcImhvc3RuYW1lXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImhvc3RuYW1lIG9mIGluZ3Jlc3MgcG9pbnRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJpcFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJJUCBhZGRyZXNzIG9mIGluZ3Jlc3MgcG9pbnRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5Mb2FkQmFsYW5jZXJJbmdyZXNzXCJcbiAgICAgIH0sXG4gICAgICBcImt1YmVybmV0ZXNfTG9hZEJhbGFuY2VyU3RhdHVzXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcImluZ3Jlc3NcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJsb2FkLWJhbGFuY2VyIGluZ3Jlc3MgcG9pbnRzXCIsXG4gICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX0xvYWRCYWxhbmNlckluZ3Jlc3NcIixcbiAgICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuTG9hZEJhbGFuY2VySW5ncmVzc1wiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkxvYWRCYWxhbmNlclN0YXR1c1wiXG4gICAgICB9LFxuICAgICAgXCJrdWJlcm5ldGVzX0xvY2FsT2JqZWN0UmVmZXJlbmNlXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcIm5hbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibmFtZSBvZiB0aGUgcmVmZXJlbnQ7IHNlZSBodHRwOi8vcmVsZWFzZXMuazhzLmlvL0hFQUQvZG9jcy91c2VyLWd1aWRlL2lkZW50aWZpZXJzLm1kI25hbWVzXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuTG9jYWxPYmplY3RSZWZlcmVuY2VcIlxuICAgICAgfSxcbiAgICAgIFwia3ViZXJuZXRlc19NZXRhZGF0YUZpbGVcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwiZmllbGRSZWZcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX09iamVjdEZpZWxkU2VsZWN0b3JcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLk9iamVjdEZpZWxkU2VsZWN0b3JcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuYW1lXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInRoZSBuYW1lIG9mIHRoZSBmaWxlIHRvIGJlIGNyZWF0ZWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5NZXRhZGF0YUZpbGVcIlxuICAgICAgfSxcbiAgICAgIFwia3ViZXJuZXRlc19NZXRhZGF0YVZvbHVtZVNvdXJjZVwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImxpc3Qgb2YgbWV0YWRhdGEgZmlsZXNcIixcbiAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfTWV0YWRhdGFGaWxlXCIsXG4gICAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLk1ldGFkYXRhRmlsZVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLk1ldGFkYXRhVm9sdW1lU291cmNlXCJcbiAgICAgIH0sXG4gICAgICBcImt1YmVybmV0ZXNfTkZTVm9sdW1lU291cmNlXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcInBhdGhcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwidGhlIHBhdGggdGhhdCBpcyBleHBvcnRlZCBieSB0aGUgTkZTIHNlcnZlcjsgc2VlIGh0dHA6Ly9yZWxlYXNlcy5rOHMuaW8vSEVBRC9kb2NzL3VzZXItZ3VpZGUvdm9sdW1lcy5tZCNuZnNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJyZWFkT25seVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiZm9yY2VzIHRoZSBORlMgZXhwb3J0IHRvIGJlIG1vdW50ZWQgd2l0aCByZWFkLW9ubHkgcGVybWlzc2lvbnM7IHNlZSBodHRwOi8vcmVsZWFzZXMuazhzLmlvL0hFQUQvZG9jcy91c2VyLWd1aWRlL3ZvbHVtZXMubWQjbmZzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic2VydmVyXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInRoZSBob3N0bmFtZSBvciBJUCBhZGRyZXNzIG9mIHRoZSBORlMgc2VydmVyOyBzZWUgaHR0cDovL3JlbGVhc2VzLms4cy5pby9IRUFEL2RvY3MvdXNlci1ndWlkZS92b2x1bWVzLm1kI25mc1wiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLk5GU1ZvbHVtZVNvdXJjZVwiXG4gICAgICB9LFxuICAgICAgXCJrdWJlcm5ldGVzX05hbWVzcGFjZVwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCJhcGlWZXJzaW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICAgICAgXCJkZWZhdWx0XCI6IFwidjFcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogdHJ1ZSxcbiAgICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICAgIFwidjFcIlxuICAgICAgICAgICAgXVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJraW5kXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICAgICAgXCJkZWZhdWx0XCI6IFwiTmFtZXNwYWNlXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibWV0YWRhdGFcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX09iamVjdE1ldGFcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLk9iamVjdE1ldGFcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzcGVjXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19OYW1lc3BhY2VTcGVjXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5OYW1lc3BhY2VTcGVjXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic3RhdHVzXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19OYW1lc3BhY2VTdGF0dXNcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLk5hbWVzcGFjZVN0YXR1c1wiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLk5hbWVzcGFjZVwiLFxuICAgICAgICBcImphdmFJbnRlcmZhY2VzXCI6IFtcbiAgICAgICAgICBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuSGFzTWV0YWRhdGFcIlxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgXCJrdWJlcm5ldGVzX05hbWVzcGFjZUxpc3RcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwiYXBpVmVyc2lvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICAgIFwiZGVmYXVsdFwiOiBcInYxXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IHRydWUsXG4gICAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgICBcInYxXCJcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJpdGVtcyBpcyB0aGUgbGlzdCBvZiBOYW1lc3BhY2Ugb2JqZWN0cyBpbiB0aGUgbGlzdDsgc2VlIGh0dHA6Ly9yZWxlYXNlcy5rOHMuaW8vSEVBRC9kb2NzL3VzZXItZ3VpZGUvbmFtZXNwYWNlcy5tZFwiLFxuICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19OYW1lc3BhY2VcIixcbiAgICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuTmFtZXNwYWNlXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwia2luZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICAgIFwiZGVmYXVsdFwiOiBcIk5hbWVzcGFjZUxpc3RcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJtZXRhZGF0YVwiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfTGlzdE1ldGFcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkxpc3RNZXRhXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuTmFtZXNwYWNlTGlzdFwiLFxuICAgICAgICBcImphdmFJbnRlcmZhY2VzXCI6IFtcbiAgICAgICAgICBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuS3ViZXJuZXRlc1Jlc291cmNlXCIsXG4gICAgICAgICAgXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkt1YmVybmV0ZXNSZXNvdXJjZUxpc3RcIlxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgXCJrdWJlcm5ldGVzX05hbWVzcGFjZVNwZWNcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwiZmluYWxpemVyc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImFuIG9wYXF1ZSBsaXN0IG9mIHZhbHVlcyB0aGF0IG11c3QgYmUgZW1wdHkgdG8gcGVybWFuZW50bHkgcmVtb3ZlIG9iamVjdCBmcm9tIHN0b3JhZ2U7IHNlZSBodHRwOi8vcmVsZWFzZXMuazhzLmlvL0hFQUQvZG9jcy9kZXNpZ24vbmFtZXNwYWNlcy5tZCNmaW5hbGl6ZXJzXCIsXG4gICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJhbiBvcGFxdWUgbGlzdCBvZiB2YWx1ZXMgdGhhdCBtdXN0IGJlIGVtcHR5IHRvIHBlcm1hbmVudGx5IHJlbW92ZSBvYmplY3QgZnJvbSBzdG9yYWdlOyBzZWUgaHR0cDovL3JlbGVhc2VzLms4cy5pby9IRUFEL2RvY3MvZGVzaWduL25hbWVzcGFjZXMubWQjZmluYWxpemVyc1wiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLk5hbWVzcGFjZVNwZWNcIlxuICAgICAgfSxcbiAgICAgIFwia3ViZXJuZXRlc19OYW1lc3BhY2VTdGF0dXNcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwicGhhc2VcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwicGhhc2UgaXMgdGhlIGN1cnJlbnQgbGlmZWN5Y2xlIHBoYXNlIG9mIHRoZSBuYW1lc3BhY2U7IHNlZSBodHRwOi8vcmVsZWFzZXMuazhzLmlvL0hFQUQvZG9jcy9kZXNpZ24vbmFtZXNwYWNlcy5tZCNwaGFzZXNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5OYW1lc3BhY2VTdGF0dXNcIlxuICAgICAgfSxcbiAgICAgIFwia3ViZXJuZXRlc19Ob2RlXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcImFwaVZlcnNpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogXCJ2MVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlLFxuICAgICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgICAgXCJ2MVwiXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImtpbmRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogXCJOb2RlXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibWV0YWRhdGFcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX09iamVjdE1ldGFcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLk9iamVjdE1ldGFcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzcGVjXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19Ob2RlU3BlY1wiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuTm9kZVNwZWNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzdGF0dXNcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX05vZGVTdGF0dXNcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLk5vZGVTdGF0dXNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5Ob2RlXCIsXG4gICAgICAgIFwiamF2YUludGVyZmFjZXNcIjogW1xuICAgICAgICAgIFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5IYXNNZXRhZGF0YVwiXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICBcImt1YmVybmV0ZXNfTm9kZUFkZHJlc3NcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwiYWRkcmVzc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJ0aGUgbm9kZSBhZGRyZXNzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidHlwZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJub2RlIGFkZHJlc3MgdHlwZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLk5vZGVBZGRyZXNzXCJcbiAgICAgIH0sXG4gICAgICBcImt1YmVybmV0ZXNfTm9kZUNvbmRpdGlvblwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCJsYXN0SGVhcnRiZWF0VGltZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJsYXN0IHRpbWUgd2UgZ290IGFuIHVwZGF0ZSBvbiBhIGdpdmVuIGNvbmRpdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImxhc3RUcmFuc2l0aW9uVGltZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJsYXN0IHRpbWUgdGhlIGNvbmRpdGlvbiB0cmFuc2l0IGZyb20gb25lIHN0YXR1cyB0byBhbm90aGVyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibWVzc2FnZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJodW1hbiByZWFkYWJsZSBtZXNzYWdlIGluZGljYXRpbmcgZGV0YWlscyBhYm91dCBsYXN0IHRyYW5zaXRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJyZWFzb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiKGJyaWVmKSByZWFzb24gZm9yIHRoZSBjb25kaXRpb24ncyBsYXN0IHRyYW5zaXRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzdGF0dXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwic3RhdHVzIG9mIHRoZSBjb25kaXRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ0eXBlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInR5cGUgb2Ygbm9kZSBjb25kaXRpb25cIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5Ob2RlQ29uZGl0aW9uXCJcbiAgICAgIH0sXG4gICAgICBcImt1YmVybmV0ZXNfTm9kZUxpc3RcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwiYXBpVmVyc2lvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICAgIFwiZGVmYXVsdFwiOiBcInYxXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IHRydWUsXG4gICAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgICBcInYxXCJcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJsaXN0IG9mIG5vZGVzXCIsXG4gICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX05vZGVcIixcbiAgICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuTm9kZVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImtpbmRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogXCJOb2RlTGlzdFwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19MaXN0TWV0YVwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuTGlzdE1ldGFcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5Ob2RlTGlzdFwiLFxuICAgICAgICBcImphdmFJbnRlcmZhY2VzXCI6IFtcbiAgICAgICAgICBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuS3ViZXJuZXRlc1Jlc291cmNlXCIsXG4gICAgICAgICAgXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkt1YmVybmV0ZXNSZXNvdXJjZUxpc3RcIlxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgXCJrdWJlcm5ldGVzX05vZGVTcGVjXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcImV4dGVybmFsSURcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiZGVwcmVjYXRlZC4gRXh0ZXJuYWwgSUQgYXNzaWduZWQgdG8gdGhlIG5vZGUgYnkgc29tZSBtYWNoaW5lIGRhdGFiYXNlIChlLmcuIGEgY2xvdWQgcHJvdmlkZXIpLiBEZWZhdWx0cyB0byBub2RlIG5hbWUgd2hlbiBlbXB0eS5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJwb2RDSURSXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInBvZCBJUCByYW5nZSBhc3NpZ25lZCB0byB0aGUgbm9kZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInByb3ZpZGVySURcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiSUQgb2YgdGhlIG5vZGUgYXNzaWduZWQgYnkgdGhlIGNsb3VkIHByb3ZpZGVyIGluIHRoZSBmb3JtYXQ6IFxcdTAwM2NQcm92aWRlck5hbWVcXHUwMDNlOi8vXFx1MDAzY1Byb3ZpZGVyU3BlY2lmaWNOb2RlSURcXHUwMDNlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidW5zY2hlZHVsYWJsZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiZGlzYWJsZSBwb2Qgc2NoZWR1bGluZyBvbiB0aGUgbm9kZTsgc2VlIGh0dHA6Ly9yZWxlYXNlcy5rOHMuaW8vSEVBRC9kb2NzL2FkbWluL25vZGUubWQjbWFudWFsLW5vZGUtYWRtaW5pc3RyYXRpb25cIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5Ob2RlU3BlY1wiXG4gICAgICB9LFxuICAgICAgXCJrdWJlcm5ldGVzX05vZGVTdGF0dXNcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwiYWRkcmVzc2VzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibGlzdCBvZiBhZGRyZXNzZXMgcmVhY2hhYmxlIHRvIHRoZSBub2RlOyBzZWUgaHR0cDovL3JlbGVhc2VzLms4cy5pby9IRUFEL2RvY3MvYWRtaW4vbm9kZS5tZCNub2RlLWFkZHJlc3Nlc1wiLFxuICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19Ob2RlQWRkcmVzc1wiLFxuICAgICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5Ob2RlQWRkcmVzc1wiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImNhcGFjaXR5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImNvbXB1dGUgcmVzb3VyY2UgY2FwYWNpdHkgb2YgdGhlIG5vZGU7IHNlZSBodHRwOi8vcmVsZWFzZXMuazhzLmlvL0hFQUQvZG9jcy91c2VyLWd1aWRlL2NvbXB1dGUtcmVzb3VyY2VzLm1kXCIsXG4gICAgICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX3Jlc291cmNlX1F1YW50aXR5XCIsXG4gICAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLlF1YW50aXR5XCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiamF2YS51dGlsLk1hcFxcdTAwM2NTdHJpbmcsaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5RdWFudGl0eVxcdTAwM2VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJjb25kaXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibGlzdCBvZiBub2RlIGNvbmRpdGlvbnMgb2JzZXJ2ZWQ7IHNlZSBodHRwOi8vcmVsZWFzZXMuazhzLmlvL0hFQUQvZG9jcy9hZG1pbi9ub2RlLm1kI25vZGUtY29uZGl0aW9uXCIsXG4gICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX05vZGVDb25kaXRpb25cIixcbiAgICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuTm9kZUNvbmRpdGlvblwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5vZGVJbmZvXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19Ob2RlU3lzdGVtSW5mb1wiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuTm9kZVN5c3RlbUluZm9cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJwaGFzZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJtb3N0IHJlY2VudGx5IG9ic2VydmVkIGxpZmVjeWNsZSBwaGFzZSBvZiB0aGUgbm9kZTsgc2VlIGh0dHA6Ly9yZWxlYXNlcy5rOHMuaW8vSEVBRC9kb2NzL2FkbWluL25vZGUubWQjbm9kZS1waGFzZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLk5vZGVTdGF0dXNcIlxuICAgICAgfSxcbiAgICAgIFwia3ViZXJuZXRlc19Ob2RlU3lzdGVtSW5mb1wiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCJib290SURcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiYm9vdCBpZCBpcyB0aGUgYm9vdC1pZCByZXBvcnRlZCBieSB0aGUgbm9kZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImNvbnRhaW5lclJ1bnRpbWVWZXJzaW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkNvbnRhaW5lciBydW50aW1lIHZlcnNpb24gcmVwb3J0ZWQgYnkgdGhlIG5vZGUgdGhyb3VnaCBydW50aW1lIHJlbW90ZSBBUEkgKGUuZy4gZG9ja2VyOi8vMS41LjApXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwia2VybmVsVmVyc2lvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJLZXJuZWwgdmVyc2lvbiByZXBvcnRlZCBieSB0aGUgbm9kZSBmcm9tICd1bmFtZSAtcicgKGUuZy4gMy4xNi4wLTAuYnBvLjQtYW1kNjQpXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwia3ViZVByb3h5VmVyc2lvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJLdWJlLXByb3h5IHZlcnNpb24gcmVwb3J0ZWQgYnkgdGhlIG5vZGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJrdWJlbGV0VmVyc2lvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJLdWJlbGV0IHZlcnNpb24gcmVwb3J0ZWQgYnkgdGhlIG5vZGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJtYWNoaW5lSURcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibWFjaGluZS1pZCByZXBvcnRlZCBieSB0aGUgbm9kZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm9zSW1hZ2VcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiT1MgaW1hZ2UgdXNlZCByZXBvcnRlZCBieSB0aGUgbm9kZSBmcm9tIC9ldGMvb3MtcmVsZWFzZSAoZS5nLiBEZWJpYW4gR05VL0xpbnV4IDcgKHdoZWV6eSkpXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic3lzdGVtVVVJRFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJzeXN0ZW0tdXVpZCByZXBvcnRlZCBieSB0aGUgbm9kZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLk5vZGVTeXN0ZW1JbmZvXCJcbiAgICAgIH0sXG4gICAgICBcImt1YmVybmV0ZXNfT2JqZWN0RmllbGRTZWxlY3RvclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCJhcGlWZXJzaW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInZlcnNpb24gb2YgdGhlIHNjaGVtYSB0aGF0IGZpZWxkUGF0aCBpcyB3cml0dGVuIGluIHRlcm1zIG9mOyBkZWZhdWx0cyB0byB2MVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImZpZWxkUGF0aFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJwYXRoIG9mIHRoZSBmaWVsZCB0byBzZWxlY3QgaW4gdGhlIHNwZWNpZmllZCBBUEkgdmVyc2lvblwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLk9iamVjdEZpZWxkU2VsZWN0b3JcIlxuICAgICAgfSxcbiAgICAgIFwia3ViZXJuZXRlc19PYmplY3RNZXRhXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcImFubm90YXRpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIm1hcCBvZiBzdHJpbmcga2V5cyBhbmQgdmFsdWVzIHRoYXQgY2FuIGJlIHVzZWQgYnkgZXh0ZXJuYWwgdG9vbGluZyB0byBzdG9yZSBhbmQgcmV0cmlldmUgYXJiaXRyYXJ5IG1ldGFkYXRhIGFib3V0IG9iamVjdHM7IHNlZSBodHRwOi8vcmVsZWFzZXMuazhzLmlvL0hFQUQvZG9jcy91c2VyLWd1aWRlL2Fubm90YXRpb25zLm1kXCIsXG4gICAgICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJtYXAgb2Ygc3RyaW5nIGtleXMgYW5kIHZhbHVlcyB0aGF0IGNhbiBiZSB1c2VkIGJ5IGV4dGVybmFsIHRvb2xpbmcgdG8gc3RvcmUgYW5kIHJldHJpZXZlIGFyYml0cmFyeSBtZXRhZGF0YSBhYm91dCBvYmplY3RzOyBzZWUgaHR0cDovL3JlbGVhc2VzLms4cy5pby9IRUFEL2RvY3MvdXNlci1ndWlkZS9hbm5vdGF0aW9ucy5tZFwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImphdmEudXRpbC5NYXBcXHUwMDNjU3RyaW5nLFN0cmluZ1xcdTAwM2VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJjcmVhdGlvblRpbWVzdGFtcFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJSRkMgMzMzOSBkYXRlIGFuZCB0aW1lIGF0IHdoaWNoIHRoZSBvYmplY3Qgd2FzIGNyZWF0ZWQ7IHBvcHVsYXRlZCBieSB0aGUgc3lzdGVtXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZGVsZXRpb25UaW1lc3RhbXBcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiUkZDIDMzMzkgZGF0ZSBhbmQgdGltZSBhdCB3aGljaCB0aGUgb2JqZWN0IHdpbGwgYmUgZGVsZXRlZDsgcG9wdWxhdGVkIGJ5IHRoZSBzeXN0ZW0gd2hlbiBhIGdyYWNlZnVsIGRlbGV0aW9uIGlzIHJlcXVlc3RlZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImdlbmVyYXRlTmFtZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJhbiBvcHRpb25hbCBwcmVmaXggdG8gdXNlIHRvIGdlbmVyYXRlIGEgdW5pcXVlIG5hbWU7IGhhcyB0aGUgc2FtZSB2YWxpZGF0aW9uIHJ1bGVzIGFzIG5hbWU7IG9wdGlvbmFsXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZ2VuZXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiYSBzZXF1ZW5jZSBudW1iZXIgcmVwcmVzZW50aW5nIGEgc3BlY2lmaWMgZ2VuZXJhdGlvbiBvZiB0aGUgZGVzaXJlZCBzdGF0ZTsgcG9wdWxhdGVkIGJ5IHRoZSBzeXN0ZW07IHJlYWQtb25seVwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcIkxvbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJsYWJlbHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibWFwIG9mIHN0cmluZyBrZXlzIGFuZCB2YWx1ZXMgdGhhdCBjYW4gYmUgdXNlZCB0byBvcmdhbml6ZSBhbmQgY2F0ZWdvcml6ZSBvYmplY3RzOyBtYXkgbWF0Y2ggc2VsZWN0b3JzIG9mIHJlcGxpY2F0aW9uIGNvbnRyb2xsZXJzIGFuZCBzZXJ2aWNlczsgc2VlIGh0dHA6Ly9yZWxlYXNlcy5rOHMuaW8vSEVBRC9kb2NzL3VzZXItZ3VpZGUvbGFiZWxzLm1kXCIsXG4gICAgICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJtYXAgb2Ygc3RyaW5nIGtleXMgYW5kIHZhbHVlcyB0aGF0IGNhbiBiZSB1c2VkIHRvIG9yZ2FuaXplIGFuZCBjYXRlZ29yaXplIG9iamVjdHM7IG1heSBtYXRjaCBzZWxlY3RvcnMgb2YgcmVwbGljYXRpb24gY29udHJvbGxlcnMgYW5kIHNlcnZpY2VzOyBzZWUgaHR0cDovL3JlbGVhc2VzLms4cy5pby9IRUFEL2RvY3MvdXNlci1ndWlkZS9sYWJlbHMubWRcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJqYXZhLnV0aWwuTWFwXFx1MDAzY1N0cmluZyxTdHJpbmdcXHUwMDNlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmFtZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJzdHJpbmcgdGhhdCBpZGVudGlmaWVzIGFuIG9iamVjdC4gTXVzdCBiZSB1bmlxdWUgd2l0aGluIGEgbmFtZXNwYWNlOyBjYW5ub3QgYmUgdXBkYXRlZDsgc2VlIGh0dHA6Ly9yZWxlYXNlcy5rOHMuaW8vSEVBRC9kb2NzL3VzZXItZ3VpZGUvaWRlbnRpZmllcnMubWQjbmFtZXNcIixcbiAgICAgICAgICAgIFwibWF4TGVuZ3RoXCI6IDYzLFxuICAgICAgICAgICAgXCJwYXR0ZXJuXCI6IFwiXlthLXowLTldKFstYS16MC05XSpbYS16MC05XSk/JFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5hbWVzcGFjZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJuYW1lc3BhY2Ugb2YgdGhlIG9iamVjdDsgbXVzdCBiZSBhIEROU19MQUJFTDsgY2Fubm90IGJlIHVwZGF0ZWQ7IHNlZSBodHRwOi8vcmVsZWFzZXMuazhzLmlvL0hFQUQvZG9jcy91c2VyLWd1aWRlL25hbWVzcGFjZXMubWRcIixcbiAgICAgICAgICAgIFwibWF4TGVuZ3RoXCI6IDI1MyxcbiAgICAgICAgICAgIFwicGF0dGVyblwiOiBcIl5bYS16MC05XShbLWEtejAtOV0qW2EtejAtOV0pPyhcXFxcLlthLXowLTldKFstYS16MC05XSpbYS16MC05XSk/KSokXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicmVzb3VyY2VWZXJzaW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInN0cmluZyB0aGF0IGlkZW50aWZpZXMgdGhlIGludGVybmFsIHZlcnNpb24gb2YgdGhpcyBvYmplY3QgdGhhdCBjYW4gYmUgdXNlZCBieSBjbGllbnRzIHRvIGRldGVybWluZSB3aGVuIG9iamVjdHMgaGF2ZSBjaGFuZ2VkOyBwb3B1bGF0ZWQgYnkgdGhlIHN5c3RlbVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInNlbGZMaW5rXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlVSTCBmb3IgdGhlIG9iamVjdDsgcG9wdWxhdGVkIGJ5IHRoZSBzeXN0ZW1cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ1aWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwidW5pcXVlIFVVSUQgYWNyb3NzIHNwYWNlIGFuZCB0aW1lOyBwb3B1bGF0ZWQgYnkgdGhlIHN5c3RlbTsgcmVhZC1vbmx5OyBzZWUgaHR0cDovL3JlbGVhc2VzLms4cy5pby9IRUFEL2RvY3MvdXNlci1ndWlkZS9pZGVudGlmaWVycy5tZCN1aWRzXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuT2JqZWN0TWV0YVwiXG4gICAgICB9LFxuICAgICAgXCJrdWJlcm5ldGVzX09iamVjdFJlZmVyZW5jZVwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCJhcGlWZXJzaW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkFQSSB2ZXJzaW9uIG9mIHRoZSByZWZlcmVudFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImZpZWxkUGF0aFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJpZiByZWZlcnJpbmcgdG8gYSBwaWVjZSBvZiBhbiBvYmplY3QgaW5zdGVhZCBvZiBhbiBlbnRpcmUgb2JqZWN0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwia2luZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJraW5kIG9mIHRoZSByZWZlcmVudDsgc2VlIGh0dHA6Ly9yZWxlYXNlcy5rOHMuaW8vSEVBRC9kb2NzL2RldmVsL2FwaS1jb252ZW50aW9ucy5tZCN0eXBlcy1raW5kc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5hbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibmFtZSBvZiB0aGUgcmVmZXJlbnQ7IHNlZSBodHRwOi8vcmVsZWFzZXMuazhzLmlvL0hFQUQvZG9jcy91c2VyLWd1aWRlL2lkZW50aWZpZXJzLm1kI25hbWVzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmFtZXNwYWNlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIm5hbWVzcGFjZSBvZiB0aGUgcmVmZXJlbnQ7IHNlZSBodHRwOi8vcmVsZWFzZXMuazhzLmlvL0hFQUQvZG9jcy91c2VyLWd1aWRlL25hbWVzcGFjZXMubWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJyZXNvdXJjZVZlcnNpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwic3BlY2lmaWMgcmVzb3VyY2VWZXJzaW9uIHRvIHdoaWNoIHRoaXMgcmVmZXJlbmNlIGlzIG1hZGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ1aWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwidWlkIG9mIHRoZSByZWZlcmVudDsgc2VlIGh0dHA6Ly9yZWxlYXNlcy5rOHMuaW8vSEVBRC9kb2NzL3VzZXItZ3VpZGUvaWRlbnRpZmllcnMubWQjdWlkc1wiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLk9iamVjdFJlZmVyZW5jZVwiXG4gICAgICB9LFxuICAgICAgXCJrdWJlcm5ldGVzX1BlcnNpc3RlbnRWb2x1bWVcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwiYXBpVmVyc2lvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICAgIFwiZGVmYXVsdFwiOiBcInYxXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IHRydWUsXG4gICAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgICBcInYxXCJcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwia2luZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICAgIFwiZGVmYXVsdFwiOiBcIlBlcnNpc3RlbnRWb2x1bWVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJtZXRhZGF0YVwiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfT2JqZWN0TWV0YVwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuT2JqZWN0TWV0YVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInNwZWNcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX1BlcnNpc3RlbnRWb2x1bWVTcGVjXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5QZXJzaXN0ZW50Vm9sdW1lU3BlY1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInN0YXR1c1wiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfUGVyc2lzdGVudFZvbHVtZVN0YXR1c1wiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuUGVyc2lzdGVudFZvbHVtZVN0YXR1c1wiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLlBlcnNpc3RlbnRWb2x1bWVcIixcbiAgICAgICAgXCJqYXZhSW50ZXJmYWNlc1wiOiBbXG4gICAgICAgICAgXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkhhc01ldGFkYXRhXCJcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIFwia3ViZXJuZXRlc19QZXJzaXN0ZW50Vm9sdW1lQ2xhaW1cIjoge1xuICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwiYXBpVmVyc2lvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICAgIFwiZGVmYXVsdFwiOiBcInYxXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IHRydWUsXG4gICAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgICBcInYxXCJcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwia2luZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICAgIFwiZGVmYXVsdFwiOiBcIlBlcnNpc3RlbnRWb2x1bWVDbGFpbVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19PYmplY3RNZXRhXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5PYmplY3RNZXRhXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic3BlY1wiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfUGVyc2lzdGVudFZvbHVtZUNsYWltU3BlY1wiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuUGVyc2lzdGVudFZvbHVtZUNsYWltU3BlY1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInN0YXR1c1wiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfUGVyc2lzdGVudFZvbHVtZUNsYWltU3RhdHVzXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5QZXJzaXN0ZW50Vm9sdW1lQ2xhaW1TdGF0dXNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5QZXJzaXN0ZW50Vm9sdW1lQ2xhaW1cIixcbiAgICAgICAgXCJqYXZhSW50ZXJmYWNlc1wiOiBbXG4gICAgICAgICAgXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkhhc01ldGFkYXRhXCJcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIFwia3ViZXJuZXRlc19QZXJzaXN0ZW50Vm9sdW1lQ2xhaW1MaXN0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcImFwaVZlcnNpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogXCJ2MVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlLFxuICAgICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgICAgXCJ2MVwiXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiYSBsaXN0IG9mIHBlcnNpc3RlbnQgdm9sdW1lIGNsYWltczsgc2VlIGh0dHA6Ly9yZWxlYXNlcy5rOHMuaW8vSEVBRC9kb2NzL3VzZXItZ3VpZGUvcGVyc2lzdGVudC12b2x1bWVzLm1kI3BlcnNpc3RlbnR2b2x1bWVjbGFpbXNcIixcbiAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfUGVyc2lzdGVudFZvbHVtZUNsYWltXCIsXG4gICAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLlBlcnNpc3RlbnRWb2x1bWVDbGFpbVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImtpbmRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogXCJQZXJzaXN0ZW50Vm9sdW1lQ2xhaW1MaXN0XCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibWV0YWRhdGFcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX0xpc3RNZXRhXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5MaXN0TWV0YVwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLlBlcnNpc3RlbnRWb2x1bWVDbGFpbUxpc3RcIixcbiAgICAgICAgXCJqYXZhSW50ZXJmYWNlc1wiOiBbXG4gICAgICAgICAgXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkt1YmVybmV0ZXNSZXNvdXJjZVwiLFxuICAgICAgICAgIFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5LdWJlcm5ldGVzUmVzb3VyY2VMaXN0XCJcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIFwia3ViZXJuZXRlc19QZXJzaXN0ZW50Vm9sdW1lQ2xhaW1TcGVjXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcImFjY2Vzc01vZGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwidGhlIGRlc2lyZWQgYWNjZXNzIG1vZGVzIHRoZSB2b2x1bWUgc2hvdWxkIGhhdmU7IHNlZSBodHRwOi8vcmVsZWFzZXMuazhzLmlvL0hFQUQvZG9jcy91c2VyLWd1aWRlL3BlcnNpc3RlbnQtdm9sdW1lcy5tZCNhY2Nlc3MtbW9kZXMtMVwiLFxuICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwidGhlIGRlc2lyZWQgYWNjZXNzIG1vZGVzIHRoZSB2b2x1bWUgc2hvdWxkIGhhdmU7IHNlZSBodHRwOi8vcmVsZWFzZXMuazhzLmlvL0hFQUQvZG9jcy91c2VyLWd1aWRlL3BlcnNpc3RlbnQtdm9sdW1lcy5tZCNhY2Nlc3MtbW9kZXMtMVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInJlc291cmNlc1wiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfUmVzb3VyY2VSZXF1aXJlbWVudHNcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLlJlc291cmNlUmVxdWlyZW1lbnRzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidm9sdW1lTmFtZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJ0aGUgYmluZGluZyByZWZlcmVuY2UgdG8gdGhlIHBlcnNpc3RlbnQgdm9sdW1lIGJhY2tpbmcgdGhpcyBjbGFpbVwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLlBlcnNpc3RlbnRWb2x1bWVDbGFpbVNwZWNcIlxuICAgICAgfSxcbiAgICAgIFwia3ViZXJuZXRlc19QZXJzaXN0ZW50Vm9sdW1lQ2xhaW1TdGF0dXNcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwiYWNjZXNzTW9kZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJ0aGUgYWN0dWFsIGFjY2VzcyBtb2RlcyB0aGUgdm9sdW1lIGhhczsgc2VlIGh0dHA6Ly9yZWxlYXNlcy5rOHMuaW8vSEVBRC9kb2NzL3VzZXItZ3VpZGUvcGVyc2lzdGVudC12b2x1bWVzLm1kI2FjY2Vzcy1tb2Rlcy0xXCIsXG4gICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJ0aGUgYWN0dWFsIGFjY2VzcyBtb2RlcyB0aGUgdm9sdW1lIGhhczsgc2VlIGh0dHA6Ly9yZWxlYXNlcy5rOHMuaW8vSEVBRC9kb2NzL3VzZXItZ3VpZGUvcGVyc2lzdGVudC12b2x1bWVzLm1kI2FjY2Vzcy1tb2Rlcy0xXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiY2FwYWNpdHlcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwidGhlIGFjdHVhbCByZXNvdXJjZXMgdGhlIHZvbHVtZSBoYXNcIixcbiAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfcmVzb3VyY2VfUXVhbnRpdHlcIixcbiAgICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuUXVhbnRpdHlcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJqYXZhLnV0aWwuTWFwXFx1MDAzY1N0cmluZyxpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLlF1YW50aXR5XFx1MDAzZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInBoYXNlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInRoZSBjdXJyZW50IHBoYXNlIG9mIHRoZSBjbGFpbVwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLlBlcnNpc3RlbnRWb2x1bWVDbGFpbVN0YXR1c1wiXG4gICAgICB9LFxuICAgICAgXCJrdWJlcm5ldGVzX1BlcnNpc3RlbnRWb2x1bWVDbGFpbVZvbHVtZVNvdXJjZVwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCJjbGFpbU5hbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwidGhlIG5hbWUgb2YgdGhlIGNsYWltIGluIHRoZSBzYW1lIG5hbWVzcGFjZSB0byBiZSBtb3VudGVkIGFzIGEgdm9sdW1lOyBzZWUgaHR0cDovL3JlbGVhc2VzLms4cy5pby9IRUFEL2RvY3MvdXNlci1ndWlkZS9wZXJzaXN0ZW50LXZvbHVtZXMubWQjcGVyc2lzdGVudHZvbHVtZWNsYWltc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInJlYWRPbmx5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJtb3VudCB2b2x1bWUgYXMgcmVhZC1vbmx5IHdoZW4gdHJ1ZTsgZGVmYXVsdCBmYWxzZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLlBlcnNpc3RlbnRWb2x1bWVDbGFpbVZvbHVtZVNvdXJjZVwiXG4gICAgICB9LFxuICAgICAgXCJrdWJlcm5ldGVzX1BlcnNpc3RlbnRWb2x1bWVMaXN0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcImFwaVZlcnNpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogXCJ2MVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlLFxuICAgICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgICAgXCJ2MVwiXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibGlzdCBvZiBwZXJzaXN0ZW50IHZvbHVtZXM7IHNlZSBodHRwOi8vcmVsZWFzZXMuazhzLmlvL0hFQUQvZG9jcy91c2VyLWd1aWRlL3BlcnNpc3RlbnQtdm9sdW1lcy5tZFwiLFxuICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19QZXJzaXN0ZW50Vm9sdW1lXCIsXG4gICAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLlBlcnNpc3RlbnRWb2x1bWVcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJraW5kXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICAgICAgXCJkZWZhdWx0XCI6IFwiUGVyc2lzdGVudFZvbHVtZUxpc3RcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJtZXRhZGF0YVwiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfTGlzdE1ldGFcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkxpc3RNZXRhXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuUGVyc2lzdGVudFZvbHVtZUxpc3RcIixcbiAgICAgICAgXCJqYXZhSW50ZXJmYWNlc1wiOiBbXG4gICAgICAgICAgXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkt1YmVybmV0ZXNSZXNvdXJjZVwiLFxuICAgICAgICAgIFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5LdWJlcm5ldGVzUmVzb3VyY2VMaXN0XCJcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIFwia3ViZXJuZXRlc19QZXJzaXN0ZW50Vm9sdW1lU291cmNlXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcImF3c0VsYXN0aWNCbG9ja1N0b3JlXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19BV1NFbGFzdGljQmxvY2tTdG9yZVZvbHVtZVNvdXJjZVwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuQVdTRWxhc3RpY0Jsb2NrU3RvcmVWb2x1bWVTb3VyY2VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJjZXBoZnNcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX0NlcGhGU1ZvbHVtZVNvdXJjZVwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuQ2VwaEZTVm9sdW1lU291cmNlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZ2NlUGVyc2lzdGVudERpc2tcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX0dDRVBlcnNpc3RlbnREaXNrVm9sdW1lU291cmNlXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5HQ0VQZXJzaXN0ZW50RGlza1ZvbHVtZVNvdXJjZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImdsdXN0ZXJmc1wiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfR2x1c3RlcmZzVm9sdW1lU291cmNlXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5HbHVzdGVyZnNWb2x1bWVTb3VyY2VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJob3N0UGF0aFwiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfSG9zdFBhdGhWb2x1bWVTb3VyY2VcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkhvc3RQYXRoVm9sdW1lU291cmNlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiaXNjc2lcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX0lTQ1NJVm9sdW1lU291cmNlXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5JU0NTSVZvbHVtZVNvdXJjZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5mc1wiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfTkZTVm9sdW1lU291cmNlXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5ORlNWb2x1bWVTb3VyY2VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJyYmRcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX1JCRFZvbHVtZVNvdXJjZVwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuUkJEVm9sdW1lU291cmNlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuUGVyc2lzdGVudFZvbHVtZVNvdXJjZVwiXG4gICAgICB9LFxuICAgICAgXCJrdWJlcm5ldGVzX1BlcnNpc3RlbnRWb2x1bWVTcGVjXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcImFjY2Vzc01vZGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiYWxsIHdheXMgdGhlIHZvbHVtZSBjYW4gYmUgbW91bnRlZDsgc2VlIGh0dHA6Ly9yZWxlYXNlcy5rOHMuaW8vSEVBRC9kb2NzL3VzZXItZ3VpZGUvcGVyc2lzdGVudC12b2x1bWVzLm1kI2FjY2Vzcy1tb2Rlc1wiLFxuICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiYWxsIHdheXMgdGhlIHZvbHVtZSBjYW4gYmUgbW91bnRlZDsgc2VlIGh0dHA6Ly9yZWxlYXNlcy5rOHMuaW8vSEVBRC9kb2NzL3VzZXItZ3VpZGUvcGVyc2lzdGVudC12b2x1bWVzLm1kI2FjY2Vzcy1tb2Rlc1wiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImF3c0VsYXN0aWNCbG9ja1N0b3JlXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19BV1NFbGFzdGljQmxvY2tTdG9yZVZvbHVtZVNvdXJjZVwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuQVdTRWxhc3RpY0Jsb2NrU3RvcmVWb2x1bWVTb3VyY2VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJjYXBhY2l0eVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJhIGRlc2NyaXB0aW9uIG9mIHRoZSBwZXJzaXN0ZW50IHZvbHVtZSdzIHJlc291cmNlcyBhbmQgY2FwYWNpdHlyOyBzZWUgaHR0cDovL3JlbGVhc2VzLms4cy5pby9IRUFEL2RvY3MvdXNlci1ndWlkZS9wZXJzaXN0ZW50LXZvbHVtZXMubWQjY2FwYWNpdHlcIixcbiAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfcmVzb3VyY2VfUXVhbnRpdHlcIixcbiAgICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuUXVhbnRpdHlcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJqYXZhLnV0aWwuTWFwXFx1MDAzY1N0cmluZyxpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLlF1YW50aXR5XFx1MDAzZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImNlcGhmc1wiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfQ2VwaEZTVm9sdW1lU291cmNlXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5DZXBoRlNWb2x1bWVTb3VyY2VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJjbGFpbVJlZlwiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfT2JqZWN0UmVmZXJlbmNlXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5PYmplY3RSZWZlcmVuY2VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJnY2VQZXJzaXN0ZW50RGlza1wiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfR0NFUGVyc2lzdGVudERpc2tWb2x1bWVTb3VyY2VcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkdDRVBlcnNpc3RlbnREaXNrVm9sdW1lU291cmNlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZ2x1c3RlcmZzXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19HbHVzdGVyZnNWb2x1bWVTb3VyY2VcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkdsdXN0ZXJmc1ZvbHVtZVNvdXJjZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImhvc3RQYXRoXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19Ib3N0UGF0aFZvbHVtZVNvdXJjZVwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuSG9zdFBhdGhWb2x1bWVTb3VyY2VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJpc2NzaVwiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfSVNDU0lWb2x1bWVTb3VyY2VcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLklTQ1NJVm9sdW1lU291cmNlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmZzXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19ORlNWb2x1bWVTb3VyY2VcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLk5GU1ZvbHVtZVNvdXJjZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInBlcnNpc3RlbnRWb2x1bWVSZWNsYWltUG9saWN5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIndoYXQgaGFwcGVucyB0byBhIHZvbHVtZSB3aGVuIHJlbGVhc2VkIGZyb20gaXRzIGNsYWltOyBWYWxpZCBvcHRpb25zIGFyZSBSZXRhaW4gKGRlZmF1bHQpIGFuZCBSZWN5Y2xlLiAgUmVjeWxpbmcgbXVzdCBiZSBzdXBwb3J0ZWQgYnkgdGhlIHZvbHVtZSBwbHVnaW4gdW5kZXJseWluZyB0aGlzIHBlcnNpc3RlbnQgdm9sdW1lLiBTZWUgaHR0cDovL3JlbGVhc2VzLms4cy5pby9IRUFEL2RvY3MvdXNlci1ndWlkZS9wZXJzaXN0ZW50LXZvbHVtZXMubWQjcmVjeWNsaW5nLXBvbGljeVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInJiZFwiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfUkJEVm9sdW1lU291cmNlXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5SQkRWb2x1bWVTb3VyY2VcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5QZXJzaXN0ZW50Vm9sdW1lU3BlY1wiXG4gICAgICB9LFxuICAgICAgXCJrdWJlcm5ldGVzX1BlcnNpc3RlbnRWb2x1bWVTdGF0dXNcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwibWVzc2FnZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJodW1hbi1yZWFkYWJsZSBtZXNzYWdlIGluZGljYXRpbmcgZGV0YWlscyBhYm91dCB3aHkgdGhlIHZvbHVtZSBpcyBpbiB0aGlzIHN0YXRlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicGhhc2VcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwidGhlIGN1cnJlbnQgcGhhc2Ugb2YgYSBwZXJzaXN0ZW50IHZvbHVtZTsgc2VlIGh0dHA6Ly9yZWxlYXNlcy5rOHMuaW8vSEVBRC9kb2NzL3VzZXItZ3VpZGUvcGVyc2lzdGVudC12b2x1bWVzLm1kI3BoYXNlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicmVhc29uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIihicmllZikgcmVhc29uIHRoZSB2b2x1bWUgaXMgbm90IGlzIG5vdCBhdmFpbGFibGVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5QZXJzaXN0ZW50Vm9sdW1lU3RhdHVzXCJcbiAgICAgIH0sXG4gICAgICBcImt1YmVybmV0ZXNfUG9kXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcImFwaVZlcnNpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogXCJ2MVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlLFxuICAgICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgICAgXCJ2MVwiXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImtpbmRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogXCJQb2RcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJtZXRhZGF0YVwiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfT2JqZWN0TWV0YVwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuT2JqZWN0TWV0YVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInNwZWNcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX1BvZFNwZWNcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLlBvZFNwZWNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzdGF0dXNcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX1BvZFN0YXR1c1wiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuUG9kU3RhdHVzXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuUG9kXCIsXG4gICAgICAgIFwiamF2YUludGVyZmFjZXNcIjogW1xuICAgICAgICAgIFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5IYXNNZXRhZGF0YVwiXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICBcImt1YmVybmV0ZXNfUG9kQ29uZGl0aW9uXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcInN0YXR1c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJzdGF0dXMgb2YgdGhlIGNvbmRpdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInR5cGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwia2luZCBvZiB0aGUgY29uZGl0aW9uXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuUG9kQ29uZGl0aW9uXCJcbiAgICAgIH0sXG4gICAgICBcImt1YmVybmV0ZXNfUG9kTGlzdFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCJhcGlWZXJzaW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICAgICAgXCJkZWZhdWx0XCI6IFwidjFcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogdHJ1ZSxcbiAgICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICAgIFwidjFcIlxuICAgICAgICAgICAgXVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImxpc3Qgb2YgcG9kczsgc2VlIGh0dHA6Ly9yZWxlYXNlcy5rOHMuaW8vSEVBRC9kb2NzL3VzZXItZ3VpZGUvcG9kcy5tZFwiLFxuICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19Qb2RcIixcbiAgICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuUG9kXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwia2luZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICAgIFwiZGVmYXVsdFwiOiBcIlBvZExpc3RcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJtZXRhZGF0YVwiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfTGlzdE1ldGFcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkxpc3RNZXRhXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuUG9kTGlzdFwiLFxuICAgICAgICBcImphdmFJbnRlcmZhY2VzXCI6IFtcbiAgICAgICAgICBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuS3ViZXJuZXRlc1Jlc291cmNlXCIsXG4gICAgICAgICAgXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkt1YmVybmV0ZXNSZXNvdXJjZUxpc3RcIlxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgXCJrdWJlcm5ldGVzX1BvZFNwZWNcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwiYWN0aXZlRGVhZGxpbmVTZWNvbmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJMb25nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiY29udGFpbmVyc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImxpc3Qgb2YgY29udGFpbmVycyBiZWxvbmdpbmcgdG8gdGhlIHBvZDsgY2Fubm90IGJlIHVwZGF0ZWQ7IGNvbnRhaW5lcnMgY2Fubm90IGN1cnJlbnRseSBiZSBhZGRlZCBvciByZW1vdmVkOyB0aGVyZSBtdXN0IGJlIGF0IGxlYXN0IG9uZSBjb250YWluZXIgaW4gYSBQb2Q7IHNlZSBodHRwOi8vcmVsZWFzZXMuazhzLmlvL0hFQUQvZG9jcy91c2VyLWd1aWRlL2NvbnRhaW5lcnMubWRcIixcbiAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfQ29udGFpbmVyXCIsXG4gICAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkNvbnRhaW5lclwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImRuc1BvbGljeVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJETlMgcG9saWN5IGZvciBjb250YWluZXJzIHdpdGhpbiB0aGUgcG9kOyBvbmUgb2YgJ0NsdXN0ZXJGaXJzdCcgb3IgJ0RlZmF1bHQnXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiaG9zdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJkZXByZWNhdGVkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiaG9zdE5ldHdvcmtcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImhvc3QgbmV0d29ya2luZyByZXF1ZXN0ZWQgZm9yIHRoaXMgcG9kXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiaW1hZ2VQdWxsU2VjcmV0c1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImxpc3Qgb2YgcmVmZXJlbmNlcyB0byBzZWNyZXRzIGluIHRoZSBzYW1lIG5hbWVzcGFjZSBhdmFpbGFibGUgZm9yIHB1bGxpbmcgdGhlIGNvbnRhaW5lciBpbWFnZXM7IHNlZSBodHRwOi8vcmVsZWFzZXMuazhzLmlvL0hFQUQvZG9jcy91c2VyLWd1aWRlL2ltYWdlcy5tZCNzcGVjaWZ5aW5nLWltYWdlcHVsbHNlY3JldHMtb24tYS1wb2RcIixcbiAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfTG9jYWxPYmplY3RSZWZlcmVuY2VcIixcbiAgICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuTG9jYWxPYmplY3RSZWZlcmVuY2VcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJub2RlTmFtZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJub2RlIHJlcXVlc3RlZCBmb3IgdGhpcyBwb2RcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJub2RlU2VsZWN0b3JcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwic2VsZWN0b3Igd2hpY2ggbXVzdCBtYXRjaCBhIG5vZGUncyBsYWJlbHMgZm9yIHRoZSBwb2QgdG8gYmUgc2NoZWR1bGVkIG9uIHRoYXQgbm9kZTsgc2VlIGh0dHA6Ly9yZWxlYXNlcy5rOHMuaW8vSEVBRC9kb2NzL3VzZXItZ3VpZGUvbm9kZS1zZWxlY3Rpb24vUkVBRE1FLm1kXCIsXG4gICAgICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJzZWxlY3RvciB3aGljaCBtdXN0IG1hdGNoIGEgbm9kZSdzIGxhYmVscyBmb3IgdGhlIHBvZCB0byBiZSBzY2hlZHVsZWQgb24gdGhhdCBub2RlOyBzZWUgaHR0cDovL3JlbGVhc2VzLms4cy5pby9IRUFEL2RvY3MvdXNlci1ndWlkZS9ub2RlLXNlbGVjdGlvbi9SRUFETUUubWRcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJqYXZhLnV0aWwuTWFwXFx1MDAzY1N0cmluZyxTdHJpbmdcXHUwMDNlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicmVzdGFydFBvbGljeVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJyZXN0YXJ0IHBvbGljeSBmb3IgYWxsIGNvbnRhaW5lcnMgd2l0aGluIHRoZSBwb2Q7IG9uZSBvZiBBbHdheXNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzZXJ2aWNlQWNjb3VudFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJkZXByZWNhdGVkOyB1c2Ugc2VydmljZUFjY291bnROYW1lIGluc3RlYWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzZXJ2aWNlQWNjb3VudE5hbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibmFtZSBvZiB0aGUgU2VydmljZUFjY291bnQgdG8gdXNlIHRvIHJ1biB0aGlzIHBvZDsgc2VlIGh0dHA6Ly9yZWxlYXNlcy5rOHMuaW8vSEVBRC9kb2NzL2Rlc2lnbi9zZXJ2aWNlX2FjY291bnRzLm1kXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidGVybWluYXRpb25HcmFjZVBlcmlvZFNlY29uZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIm9wdGlvbmFsIGR1cmF0aW9uIGluIHNlY29uZHMgdGhlIHBvZCBuZWVkcyB0byB0ZXJtaW5hdGUgZ3JhY2VmdWxseTsgbWF5IGJlIGRlY3JlYXNlZCBpbiBkZWxldGUgcmVxdWVzdDsgdmFsdWUgbXVzdCBiZSBub24tbmVnYXRpdmUgaW50ZWdlcjsgdGhlIHZhbHVlIHplcm8gaW5kaWNhdGVzIGRlbGV0ZSBpbW1lZGlhdGVseTsgaWYgdGhpcyB2YWx1ZSBpcyBub3Qgc2V0XCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiTG9uZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInZvbHVtZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJsaXN0IG9mIHZvbHVtZXMgdGhhdCBjYW4gYmUgbW91bnRlZCBieSBjb250YWluZXJzIGJlbG9uZ2luZyB0byB0aGUgcG9kOyBzZWUgaHR0cDovL3JlbGVhc2VzLms4cy5pby9IRUFEL2RvY3MvdXNlci1ndWlkZS92b2x1bWVzLm1kXCIsXG4gICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX1ZvbHVtZVwiLFxuICAgICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5Wb2x1bWVcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5Qb2RTcGVjXCJcbiAgICAgIH0sXG4gICAgICBcImt1YmVybmV0ZXNfUG9kU3RhdHVzXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcImNvbmRpdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJjdXJyZW50IHNlcnZpY2Ugc3RhdGUgb2YgcG9kOyBzZWUgaHR0cDovL3JlbGVhc2VzLms4cy5pby9IRUFEL2RvY3MvdXNlci1ndWlkZS9wb2Qtc3RhdGVzLm1kI3BvZC1jb25kaXRpb25zXCIsXG4gICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX1BvZENvbmRpdGlvblwiLFxuICAgICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5Qb2RDb25kaXRpb25cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJjb250YWluZXJTdGF0dXNlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImxpc3Qgb2YgY29udGFpbmVyIHN0YXR1c2VzOyBzZWUgaHR0cDovL3JlbGVhc2VzLms4cy5pby9IRUFEL2RvY3MvdXNlci1ndWlkZS9wb2Qtc3RhdGVzLm1kI2NvbnRhaW5lci1zdGF0dXNlc1wiLFxuICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19Db250YWluZXJTdGF0dXNcIixcbiAgICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuQ29udGFpbmVyU3RhdHVzXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiaG9zdElQXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIklQIGFkZHJlc3Mgb2YgdGhlIGhvc3QgdG8gd2hpY2ggdGhlIHBvZCBpcyBhc3NpZ25lZDsgZW1wdHkgaWYgbm90IHlldCBzY2hlZHVsZWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJtZXNzYWdlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImh1bWFuIHJlYWRhYmxlIG1lc3NhZ2UgaW5kaWNhdGluZyBkZXRhaWxzIGFib3V0IHdoeSB0aGUgcG9kIGlzIGluIHRoaXMgY29uZGl0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicGhhc2VcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiY3VycmVudCBjb25kaXRpb24gb2YgdGhlIHBvZDsgc2VlIGh0dHA6Ly9yZWxlYXNlcy5rOHMuaW8vSEVBRC9kb2NzL3VzZXItZ3VpZGUvcG9kLXN0YXRlcy5tZCNwb2QtcGhhc2VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJwb2RJUFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJJUCBhZGRyZXNzIGFsbG9jYXRlZCB0byB0aGUgcG9kOyByb3V0YWJsZSBhdCBsZWFzdCB3aXRoaW4gdGhlIGNsdXN0ZXI7IGVtcHR5IGlmIG5vdCB5ZXQgYWxsb2NhdGVkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicmVhc29uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIihicmllZi1DYW1lbENhc2UpIHJlYXNvbiBpbmRpY2F0aW5nIGRldGFpbHMgYWJvdXQgd2h5IHRoZSBwb2QgaXMgaW4gdGhpcyBjb25kaXRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzdGFydFRpbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiUkZDIDMzMzkgZGF0ZSBhbmQgdGltZSBhdCB3aGljaCB0aGUgb2JqZWN0IHdhcyBhY2tub3dsZWRnZWQgYnkgdGhlIEt1YmVsZXQuICBUaGlzIGlzIGJlZm9yZSB0aGUgS3ViZWxldCBwdWxsZWQgdGhlIGNvbnRhaW5lciBpbWFnZShzKSBmb3IgdGhlIHBvZC5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5Qb2RTdGF0dXNcIlxuICAgICAgfSxcbiAgICAgIFwia3ViZXJuZXRlc19Qb2RUZW1wbGF0ZVNwZWNcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwibWV0YWRhdGFcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX09iamVjdE1ldGFcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLk9iamVjdE1ldGFcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzcGVjXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19Qb2RTcGVjXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5Qb2RTcGVjXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuUG9kVGVtcGxhdGVTcGVjXCJcbiAgICAgIH0sXG4gICAgICBcImt1YmVybmV0ZXNfUHJvYmVcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwiZXhlY1wiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfRXhlY0FjdGlvblwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuRXhlY0FjdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImh0dHBHZXRcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX0hUVFBHZXRBY3Rpb25cIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkhUVFBHZXRBY3Rpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJpbml0aWFsRGVsYXlTZWNvbmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJudW1iZXIgb2Ygc2Vjb25kcyBhZnRlciB0aGUgY29udGFpbmVyIGhhcyBzdGFydGVkIGJlZm9yZSBsaXZlbmVzcyBwcm9iZXMgYXJlIGluaXRpYXRlZDsgc2VlIGh0dHA6Ly9yZWxlYXNlcy5rOHMuaW8vSEVBRC9kb2NzL3VzZXItZ3VpZGUvcG9kLXN0YXRlcy5tZCNjb250YWluZXItcHJvYmVzXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiTG9uZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInRjcFNvY2tldFwiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfVENQU29ja2V0QWN0aW9uXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5UQ1BTb2NrZXRBY3Rpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ0aW1lb3V0U2Vjb25kc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibnVtYmVyIG9mIHNlY29uZHMgYWZ0ZXIgd2hpY2ggbGl2ZW5lc3MgcHJvYmVzIHRpbWVvdXQ7IGRlZmF1bHRzIHRvIDEgc2Vjb25kOyBzZWUgaHR0cDovL3JlbGVhc2VzLms4cy5pby9IRUFEL2RvY3MvdXNlci1ndWlkZS9wb2Qtc3RhdGVzLm1kI2NvbnRhaW5lci1wcm9iZXNcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJMb25nXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuUHJvYmVcIlxuICAgICAgfSxcbiAgICAgIFwia3ViZXJuZXRlc19SQkRWb2x1bWVTb3VyY2VcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwiZnNUeXBlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImZpbGUgc3lzdGVtIHR5cGUgdG8gbW91bnRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJpbWFnZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJyYWRvcyBpbWFnZSBuYW1lOyBzZWUgaHR0cDovL3JlbGVhc2VzLms4cy5pby9IRUFEL2V4YW1wbGVzL3JiZC9SRUFETUUubWQjaG93LXRvLXVzZS1pdFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImtleXJpbmdcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwia2V5cmluZyBpcyB0aGUgcGF0aCB0byBrZXkgcmluZyBmb3IgcmFkb3MgdXNlcjsgZGVmYXVsdCBpcyAvZXRjL2NlcGgva2V5cmluZzsgb3B0aW9uYWw7IHNlZSBodHRwOi8vcmVsZWFzZXMuazhzLmlvL0hFQUQvZXhhbXBsZXMvcmJkL1JFQURNRS5tZCNob3ctdG8tdXNlLWl0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibW9uaXRvcnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJhIGNvbGxlY3Rpb24gb2YgQ2VwaCBtb25pdG9yczsgc2VlIGh0dHA6Ly9yZWxlYXNlcy5rOHMuaW8vSEVBRC9leGFtcGxlcy9yYmQvUkVBRE1FLm1kI2hvdy10by11c2UtaXRcIixcbiAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImEgY29sbGVjdGlvbiBvZiBDZXBoIG1vbml0b3JzOyBzZWUgaHR0cDovL3JlbGVhc2VzLms4cy5pby9IRUFEL2V4YW1wbGVzL3JiZC9SRUFETUUubWQjaG93LXRvLXVzZS1pdFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInBvb2xcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwicmFkb3MgcG9vbCBuYW1lOyBkZWZhdWx0IGlzIHJiZDsgb3B0aW9uYWw7IHNlZSBodHRwOi8vcmVsZWFzZXMuazhzLmlvL0hFQUQvZXhhbXBsZXMvcmJkL1JFQURNRS5tZCNob3ctdG8tdXNlLWl0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicmVhZE9ubHlcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInJiZCB2b2x1bWUgdG8gYmUgbW91bnRlZCB3aXRoIHJlYWQtb25seSBwZXJtaXNzaW9uczsgc2VlIGh0dHA6Ly9yZWxlYXNlcy5rOHMuaW8vSEVBRC9leGFtcGxlcy9yYmQvUkVBRE1FLm1kI2hvdy10by11c2UtaXRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzZWNyZXRSZWZcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX0xvY2FsT2JqZWN0UmVmZXJlbmNlXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5Mb2NhbE9iamVjdFJlZmVyZW5jZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInVzZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwicmFkb3MgdXNlciBuYW1lOyBkZWZhdWx0IGlzIGFkbWluOyBvcHRpb25hbDsgc2VlIGh0dHA6Ly9yZWxlYXNlcy5rOHMuaW8vSEVBRC9leGFtcGxlcy9yYmQvUkVBRE1FLm1kI2hvdy10by11c2UtaXRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5SQkRWb2x1bWVTb3VyY2VcIlxuICAgICAgfSxcbiAgICAgIFwia3ViZXJuZXRlc19SZXBsaWNhdGlvbkNvbnRyb2xsZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwiYXBpVmVyc2lvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICAgIFwiZGVmYXVsdFwiOiBcInYxXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IHRydWUsXG4gICAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgICBcInYxXCJcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwia2luZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICAgIFwiZGVmYXVsdFwiOiBcIlJlcGxpY2F0aW9uQ29udHJvbGxlclwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19PYmplY3RNZXRhXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5PYmplY3RNZXRhXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic3BlY1wiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfUmVwbGljYXRpb25Db250cm9sbGVyU3BlY1wiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuUmVwbGljYXRpb25Db250cm9sbGVyU3BlY1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInN0YXR1c1wiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfUmVwbGljYXRpb25Db250cm9sbGVyU3RhdHVzXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5SZXBsaWNhdGlvbkNvbnRyb2xsZXJTdGF0dXNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5SZXBsaWNhdGlvbkNvbnRyb2xsZXJcIixcbiAgICAgICAgXCJqYXZhSW50ZXJmYWNlc1wiOiBbXG4gICAgICAgICAgXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkhhc01ldGFkYXRhXCJcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIFwia3ViZXJuZXRlc19SZXBsaWNhdGlvbkNvbnRyb2xsZXJMaXN0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcImFwaVZlcnNpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogXCJ2MVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlLFxuICAgICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgICAgXCJ2MVwiXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibGlzdCBvZiByZXBsaWNhdGlvbiBjb250cm9sbGVyczsgc2VlIGh0dHA6Ly9yZWxlYXNlcy5rOHMuaW8vSEVBRC9kb2NzL3VzZXItZ3VpZGUvcmVwbGljYXRpb24tY29udHJvbGxlci5tZFwiLFxuICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19SZXBsaWNhdGlvbkNvbnRyb2xsZXJcIixcbiAgICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuUmVwbGljYXRpb25Db250cm9sbGVyXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwia2luZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICAgIFwiZGVmYXVsdFwiOiBcIlJlcGxpY2F0aW9uQ29udHJvbGxlckxpc3RcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJtZXRhZGF0YVwiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfTGlzdE1ldGFcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkxpc3RNZXRhXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuUmVwbGljYXRpb25Db250cm9sbGVyTGlzdFwiLFxuICAgICAgICBcImphdmFJbnRlcmZhY2VzXCI6IFtcbiAgICAgICAgICBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuS3ViZXJuZXRlc1Jlc291cmNlXCIsXG4gICAgICAgICAgXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkt1YmVybmV0ZXNSZXNvdXJjZUxpc3RcIlxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgXCJrdWJlcm5ldGVzX1JlcGxpY2F0aW9uQ29udHJvbGxlclNwZWNcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwicmVwbGljYXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIm51bWJlciBvZiByZXBsaWNhcyBkZXNpcmVkOyBkZWZhdWx0cyB0byAxOyBzZWUgaHR0cDovL3JlbGVhc2VzLms4cy5pby9IRUFEL2RvY3MvdXNlci1ndWlkZS9yZXBsaWNhdGlvbi1jb250cm9sbGVyLm1kI3doYXQtaXMtYS1yZXBsaWNhdGlvbi1jb250cm9sbGVyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic2VsZWN0b3JcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibGFiZWwga2V5cyBhbmQgdmFsdWVzIHRoYXQgbXVzdCBtYXRjaCBpbiBvcmRlciB0byBiZSBjb250cm9sbGVkIGJ5IHRoaXMgcmVwbGljYXRpb24gY29udHJvbGxlclwiLFxuICAgICAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibGFiZWwga2V5cyBhbmQgdmFsdWVzIHRoYXQgbXVzdCBtYXRjaCBpbiBvcmRlciB0byBiZSBjb250cm9sbGVkIGJ5IHRoaXMgcmVwbGljYXRpb24gY29udHJvbGxlclwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImphdmEudXRpbC5NYXBcXHUwMDNjU3RyaW5nLFN0cmluZ1xcdTAwM2VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ0ZW1wbGF0ZVwiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfUG9kVGVtcGxhdGVTcGVjXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5Qb2RUZW1wbGF0ZVNwZWNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5SZXBsaWNhdGlvbkNvbnRyb2xsZXJTcGVjXCJcbiAgICAgIH0sXG4gICAgICBcImt1YmVybmV0ZXNfUmVwbGljYXRpb25Db250cm9sbGVyU3RhdHVzXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcIm9ic2VydmVkR2VuZXJhdGlvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwicmVmbGVjdHMgdGhlIGdlbmVyYXRpb24gb2YgdGhlIG1vc3QgcmVjZW50bHkgb2JzZXJ2ZWQgcmVwbGljYXRpb24gY29udHJvbGxlclwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcIkxvbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJyZXBsaWNhc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibW9zdCByZWNlbnRseSBvYmVydmVkIG51bWJlciBvZiByZXBsaWNhczsgc2VlIGh0dHA6Ly9yZWxlYXNlcy5rOHMuaW8vSEVBRC9kb2NzL3VzZXItZ3VpZGUvcmVwbGljYXRpb24tY29udHJvbGxlci5tZCN3aGF0LWlzLWEtcmVwbGljYXRpb24tY29udHJvbGxlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLlJlcGxpY2F0aW9uQ29udHJvbGxlclN0YXR1c1wiXG4gICAgICB9LFxuICAgICAgXCJrdWJlcm5ldGVzX1Jlc291cmNlUXVvdGFcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwiYXBpVmVyc2lvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICAgIFwiZGVmYXVsdFwiOiBcInYxXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IHRydWUsXG4gICAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgICBcInYxXCJcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwia2luZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICAgIFwiZGVmYXVsdFwiOiBcIlJlc291cmNlUXVvdGFcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJtZXRhZGF0YVwiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfT2JqZWN0TWV0YVwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuT2JqZWN0TWV0YVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInNwZWNcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX1Jlc291cmNlUXVvdGFTcGVjXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5SZXNvdXJjZVF1b3RhU3BlY1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInN0YXR1c1wiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfUmVzb3VyY2VRdW90YVN0YXR1c1wiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuUmVzb3VyY2VRdW90YVN0YXR1c1wiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLlJlc291cmNlUXVvdGFcIixcbiAgICAgICAgXCJqYXZhSW50ZXJmYWNlc1wiOiBbXG4gICAgICAgICAgXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkhhc01ldGFkYXRhXCJcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIFwia3ViZXJuZXRlc19SZXNvdXJjZVF1b3RhTGlzdFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCJhcGlWZXJzaW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICAgICAgXCJkZWZhdWx0XCI6IFwidjFcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogdHJ1ZSxcbiAgICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICAgIFwidjFcIlxuICAgICAgICAgICAgXVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIml0ZW1zIGlzIGEgbGlzdCBvZiBSZXNvdXJjZVF1b3RhIG9iamVjdHM7IHNlZSBodHRwOi8vcmVsZWFzZXMuazhzLmlvL0hFQUQvZG9jcy9kZXNpZ24vYWRtaXNzaW9uX2NvbnRyb2xfcmVzb3VyY2VfcXVvdGEubWQjYWRtaXNzaW9uY29udHJvbC1wbHVnaW4tcmVzb3VyY2VxdW90YVwiLFxuICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19SZXNvdXJjZVF1b3RhXCIsXG4gICAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLlJlc291cmNlUXVvdGFcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJraW5kXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICAgICAgXCJkZWZhdWx0XCI6IFwiUmVzb3VyY2VRdW90YUxpc3RcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJtZXRhZGF0YVwiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfTGlzdE1ldGFcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkxpc3RNZXRhXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuUmVzb3VyY2VRdW90YUxpc3RcIixcbiAgICAgICAgXCJqYXZhSW50ZXJmYWNlc1wiOiBbXG4gICAgICAgICAgXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkt1YmVybmV0ZXNSZXNvdXJjZVwiLFxuICAgICAgICAgIFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5LdWJlcm5ldGVzUmVzb3VyY2VMaXN0XCJcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIFwia3ViZXJuZXRlc19SZXNvdXJjZVF1b3RhU3BlY1wiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCJoYXJkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImhhcmQgaXMgdGhlIHNldCBvZiBkZXNpcmVkIGhhcmQgbGltaXRzIGZvciBlYWNoIG5hbWVkIHJlc291cmNlOyBzZWUgaHR0cDovL3JlbGVhc2VzLms4cy5pby9IRUFEL2RvY3MvZGVzaWduL2FkbWlzc2lvbl9jb250cm9sX3Jlc291cmNlX3F1b3RhLm1kI2FkbWlzc2lvbmNvbnRyb2wtcGx1Z2luLXJlc291cmNlcXVvdGFcIixcbiAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfcmVzb3VyY2VfUXVhbnRpdHlcIixcbiAgICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuUXVhbnRpdHlcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJqYXZhLnV0aWwuTWFwXFx1MDAzY1N0cmluZyxpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLlF1YW50aXR5XFx1MDAzZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLlJlc291cmNlUXVvdGFTcGVjXCJcbiAgICAgIH0sXG4gICAgICBcImt1YmVybmV0ZXNfUmVzb3VyY2VRdW90YVN0YXR1c1wiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCJoYXJkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImhhcmQgaXMgdGhlIHNldCBvZiBlbmZvcmNlZCBoYXJkIGxpbWl0cyBmb3IgZWFjaCBuYW1lZCByZXNvdXJjZTsgc2VlIGh0dHA6Ly9yZWxlYXNlcy5rOHMuaW8vSEVBRC9kb2NzL2Rlc2lnbi9hZG1pc3Npb25fY29udHJvbF9yZXNvdXJjZV9xdW90YS5tZCNhZG1pc3Npb25jb250cm9sLXBsdWdpbi1yZXNvdXJjZXF1b3RhXCIsXG4gICAgICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX3Jlc291cmNlX1F1YW50aXR5XCIsXG4gICAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLlF1YW50aXR5XCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiamF2YS51dGlsLk1hcFxcdTAwM2NTdHJpbmcsaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5RdWFudGl0eVxcdTAwM2VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ1c2VkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInVzZWQgaXMgdGhlIGN1cnJlbnQgb2JzZXJ2ZWQgdG90YWwgdXNhZ2Ugb2YgdGhlIHJlc291cmNlIGluIHRoZSBuYW1lc3BhY2VcIixcbiAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfcmVzb3VyY2VfUXVhbnRpdHlcIixcbiAgICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuUXVhbnRpdHlcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJqYXZhLnV0aWwuTWFwXFx1MDAzY1N0cmluZyxpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLlF1YW50aXR5XFx1MDAzZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLlJlc291cmNlUXVvdGFTdGF0dXNcIlxuICAgICAgfSxcbiAgICAgIFwia3ViZXJuZXRlc19SZXNvdXJjZVJlcXVpcmVtZW50c1wiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCJsaW1pdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiTWF4aW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgYWxsb3dlZDsgc2VlIGh0dHA6Ly9yZWxlYXNlcy5rOHMuaW8vSEVBRC9kb2NzL2Rlc2lnbi9yZXNvdXJjZXMubWQjcmVzb3VyY2Utc3BlY2lmaWNhdGlvbnNcIixcbiAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfcmVzb3VyY2VfUXVhbnRpdHlcIixcbiAgICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuUXVhbnRpdHlcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJqYXZhLnV0aWwuTWFwXFx1MDAzY1N0cmluZyxpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLlF1YW50aXR5XFx1MDAzZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInJlcXVlc3RzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIk1pbmltdW0gYW1vdW50IG9mIHJlc291cmNlcyByZXF1ZXN0ZWQ7IGlmIFJlcXVlc3RzIGlzIG9taXR0ZWQgZm9yIGEgY29udGFpbmVyXCIsXG4gICAgICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX3Jlc291cmNlX1F1YW50aXR5XCIsXG4gICAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLlF1YW50aXR5XCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiamF2YS51dGlsLk1hcFxcdTAwM2NTdHJpbmcsaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5RdWFudGl0eVxcdTAwM2VcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5SZXNvdXJjZVJlcXVpcmVtZW50c1wiXG4gICAgICB9LFxuICAgICAgXCJrdWJlcm5ldGVzX1J1bkFzVXNlclN0cmF0ZWd5T3B0aW9uc1wiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCJ0eXBlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInN0cmF0ZWd5IHVzZWQgdG8gZ2VuZXJhdGUgUnVuQXNVc2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidWlkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJ0aGUgdWlkIHRvIGFsd2F5cyBydW4gYXM7IHJlcXVpcmVkIGZvciBNdXN0UnVuQXNcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJMb25nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidWlkUmFuZ2VNYXhcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIm1heCB2YWx1ZSBmb3IgcmFuZ2UgYmFzZWQgYWxsb2NhdG9yc1wiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcIkxvbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ1aWRSYW5nZU1pblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibWluIHZhbHVlIGZvciByYW5nZSBiYXNlZCBhbGxvY2F0b3JzXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiTG9uZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLlJ1bkFzVXNlclN0cmF0ZWd5T3B0aW9uc1wiXG4gICAgICB9LFxuICAgICAgXCJrdWJlcm5ldGVzX1NFTGludXhDb250ZXh0U3RyYXRlZ3lPcHRpb25zXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcInNlTGludXhPcHRpb25zXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19TRUxpbnV4T3B0aW9uc1wiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuU0VMaW51eE9wdGlvbnNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ0eXBlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInN0cmF0ZWd5IHVzZWQgdG8gZ2VuZXJhdGUgdGhlIFNFTGludXggY29udGV4dFwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLlNFTGludXhDb250ZXh0U3RyYXRlZ3lPcHRpb25zXCJcbiAgICAgIH0sXG4gICAgICBcImt1YmVybmV0ZXNfU0VMaW51eE9wdGlvbnNcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwibGV2ZWxcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwidGhlIGxldmVsIGxhYmVsIHRvIGFwcGx5IHRvIHRoZSBjb250YWluZXI7IHNlZSBodHRwOi8vcmVsZWFzZXMuazhzLmlvL0hFQUQvZG9jcy91c2VyLWd1aWRlL2xhYmVscy5tZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInJvbGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwidGhlIHJvbGUgbGFiZWwgdG8gYXBwbHkgdG8gdGhlIGNvbnRhaW5lcjsgc2VlIGh0dHA6Ly9yZWxlYXNlcy5rOHMuaW8vSEVBRC9kb2NzL3VzZXItZ3VpZGUvbGFiZWxzLm1kXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidHlwZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJ0aGUgdHlwZSBsYWJlbCB0byBhcHBseSB0byB0aGUgY29udGFpbmVyOyBzZWUgaHR0cDovL3JlbGVhc2VzLms4cy5pby9IRUFEL2RvY3MvdXNlci1ndWlkZS9sYWJlbHMubWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ1c2VyXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInRoZSB1c2VyIGxhYmVsIHRvIGFwcGx5IHRvIHRoZSBjb250YWluZXI7IHNlZSBodHRwOi8vcmVsZWFzZXMuazhzLmlvL0hFQUQvZG9jcy91c2VyLWd1aWRlL2xhYmVscy5tZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLlNFTGludXhPcHRpb25zXCJcbiAgICAgIH0sXG4gICAgICBcImt1YmVybmV0ZXNfU2VjcmV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcImFwaVZlcnNpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogXCJ2MVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlLFxuICAgICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgICAgXCJ2MVwiXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImRhdGFcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiZGF0YSBjb250YWlucyB0aGUgc2VjcmV0IGRhdGEuICBFYWNoIGtleSBtdXN0IGJlIGEgdmFsaWQgRE5TX1NVQkRPTUFJTiBvciBsZWFkaW5nIGRvdCBmb2xsb3dlZCBieSB2YWxpZCBETlNfU1VCRE9NQUlOLiAgRWFjaCB2YWx1ZSBtdXN0IGJlIGEgYmFzZTY0IGVuY29kZWQgc3RyaW5nIGFzIGRlc2NyaWJlZCBpbiBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNDY0OCNzZWN0aW9uLTRcIixcbiAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImRhdGEgY29udGFpbnMgdGhlIHNlY3JldCBkYXRhLiAgRWFjaCBrZXkgbXVzdCBiZSBhIHZhbGlkIEROU19TVUJET01BSU4gb3IgbGVhZGluZyBkb3QgZm9sbG93ZWQgYnkgdmFsaWQgRE5TX1NVQkRPTUFJTi4gIEVhY2ggdmFsdWUgbXVzdCBiZSBhIGJhc2U2NCBlbmNvZGVkIHN0cmluZyBhcyBkZXNjcmliZWQgaW4gaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzQ2NDgjc2VjdGlvbi00XCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiamF2YS51dGlsLk1hcFxcdTAwM2NTdHJpbmcsU3RyaW5nXFx1MDAzZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImtpbmRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogXCJTZWNyZXRcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJtZXRhZGF0YVwiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfT2JqZWN0TWV0YVwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuT2JqZWN0TWV0YVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInR5cGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwidHlwZSBmYWNpbGl0YXRlcyBwcm9ncmFtbWF0aWMgaGFuZGxpbmcgb2Ygc2VjcmV0IGRhdGFcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5TZWNyZXRcIixcbiAgICAgICAgXCJqYXZhSW50ZXJmYWNlc1wiOiBbXG4gICAgICAgICAgXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkhhc01ldGFkYXRhXCJcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIFwia3ViZXJuZXRlc19TZWNyZXRMaXN0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcImFwaVZlcnNpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogXCJ2MVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlLFxuICAgICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgICAgXCJ2MVwiXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiaXRlbXMgaXMgYSBsaXN0IG9mIHNlY3JldCBvYmplY3RzOyBzZWUgaHR0cDovL3JlbGVhc2VzLms4cy5pby9IRUFEL2RvY3MvdXNlci1ndWlkZS9zZWNyZXRzLm1kXCIsXG4gICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX1NlY3JldFwiLFxuICAgICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5TZWNyZXRcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJraW5kXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICAgICAgXCJkZWZhdWx0XCI6IFwiU2VjcmV0TGlzdFwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19MaXN0TWV0YVwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuTGlzdE1ldGFcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5TZWNyZXRMaXN0XCIsXG4gICAgICAgIFwiamF2YUludGVyZmFjZXNcIjogW1xuICAgICAgICAgIFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5LdWJlcm5ldGVzUmVzb3VyY2VcIixcbiAgICAgICAgICBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuS3ViZXJuZXRlc1Jlc291cmNlTGlzdFwiXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICBcImt1YmVybmV0ZXNfU2VjcmV0Vm9sdW1lU291cmNlXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcInNlY3JldE5hbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwic2VjcmV0TmFtZSBpcyB0aGUgbmFtZSBvZiBhIHNlY3JldCBpbiB0aGUgcG9kJ3MgbmFtZXNwYWNlOyBzZWUgaHR0cDovL3JlbGVhc2VzLms4cy5pby9IRUFEL2RvY3MvdXNlci1ndWlkZS92b2x1bWVzLm1kI3NlY3JldHNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5TZWNyZXRWb2x1bWVTb3VyY2VcIlxuICAgICAgfSxcbiAgICAgIFwia3ViZXJuZXRlc19TZWN1cml0eUNvbnRleHRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwiY2FwYWJpbGl0aWVzXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19DYXBhYmlsaXRpZXNcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkNhcGFiaWxpdGllc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInByaXZpbGVnZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInJ1biB0aGUgY29udGFpbmVyIGluIHByaXZpbGVnZWQgbW9kZTsgc2VlIGh0dHA6Ly9yZWxlYXNlcy5rOHMuaW8vSEVBRC9kb2NzL2Rlc2lnbi9zZWN1cml0eV9jb250ZXh0Lm1kI3NlY3VyaXR5LWNvbnRleHRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJydW5Bc05vblJvb3RcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImluZGljYXRlcyB0aGUgY29udGFpbmVyIG11c3QgYmUgcnVuIGFzIGEgbm9uLXJvb3QgdXNlciBlaXRoZXIgYnkgc3BlY2lmeWluZyB0aGUgcnVuQXNVc2VyIG9yIGluIHRoZSBpbWFnZSBzcGVjaWZpY2F0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicnVuQXNVc2VyXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJ0aGUgdXNlciBpZCB0aGF0IHJ1bnMgdGhlIGZpcnN0IHByb2Nlc3MgaW4gdGhlIGNvbnRhaW5lcjsgc2VlIGh0dHA6Ly9yZWxlYXNlcy5rOHMuaW8vSEVBRC9kb2NzL2Rlc2lnbi9zZWN1cml0eV9jb250ZXh0Lm1kI3NlY3VyaXR5LWNvbnRleHRcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJMb25nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic2VMaW51eE9wdGlvbnNcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX1NFTGludXhPcHRpb25zXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5TRUxpbnV4T3B0aW9uc1wiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLlNlY3VyaXR5Q29udGV4dFwiXG4gICAgICB9LFxuICAgICAgXCJrdWJlcm5ldGVzX1NlY3VyaXR5Q29udGV4dENvbnN0cmFpbnRzXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcImFsbG93SG9zdERpclZvbHVtZVBsdWdpblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiYWxsb3cgdGhlIHVzZSBvZiB0aGUgaG9zdCBkaXIgdm9sdW1lIHBsdWdpblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImFsbG93SG9zdE5ldHdvcmtcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImFsbG93IHRoZSB1c2Ugb2YgdGhlIGhvc3ROZXR3b3JrIGluIHRoZSBwb2Qgc3BlY1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImFsbG93SG9zdFBvcnRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJhbGxvdyB0aGUgdXNlIG9mIHRoZSBob3N0IHBvcnRzIGluIHRoZSBjb250YWluZXJzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiYWxsb3dQcml2aWxlZ2VkQ29udGFpbmVyXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJhbGxvdyBjb250YWluZXJzIHRvIHJ1biBhcyBwcml2aWxlZ2VkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiYWxsb3dlZENhcGFiaWxpdGllc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImNhcGFiaWxpdGllcyB0aGF0IGFyZSBhbGxvd2VkIHRvIGJlIGFkZGVkXCIsXG4gICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJjYXBhYmlsaXRpZXMgdGhhdCBhcmUgYWxsb3dlZCB0byBiZSBhZGRlZFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImFwaVZlcnNpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogXCJ2MVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlLFxuICAgICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgICAgXCJ2MVwiXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImdyb3Vwc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImdyb3VwcyBhbGxvd2VkIHRvIHVzZSB0aGlzIFNlY3VyaXR5Q29udGV4dENvbnN0cmFpbnRzXCIsXG4gICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJncm91cHMgYWxsb3dlZCB0byB1c2UgdGhpcyBTZWN1cml0eUNvbnRleHRDb25zdHJhaW50c1wiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImtpbmRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogXCJTZWN1cml0eUNvbnRleHRDb25zdHJhaW50c1wiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19PYmplY3RNZXRhXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5PYmplY3RNZXRhXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicnVuQXNVc2VyXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19SdW5Bc1VzZXJTdHJhdGVneU9wdGlvbnNcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLlJ1bkFzVXNlclN0cmF0ZWd5T3B0aW9uc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInNlTGludXhDb250ZXh0XCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19TRUxpbnV4Q29udGV4dFN0cmF0ZWd5T3B0aW9uc1wiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuU0VMaW51eENvbnRleHRTdHJhdGVneU9wdGlvbnNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ1c2Vyc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInVzZXJzIGFsbG93ZWQgdG8gdXNlIHRoaXMgU2VjdXJpdHlDb250ZXh0Q29uc3RyYWludHNcIixcbiAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInVzZXJzIGFsbG93ZWQgdG8gdXNlIHRoaXMgU2VjdXJpdHlDb250ZXh0Q29uc3RyYWludHNcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5TZWN1cml0eUNvbnRleHRDb25zdHJhaW50c1wiLFxuICAgICAgICBcImphdmFJbnRlcmZhY2VzXCI6IFtcbiAgICAgICAgICBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuSGFzTWV0YWRhdGFcIlxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgXCJrdWJlcm5ldGVzX1NlY3VyaXR5Q29udGV4dENvbnN0cmFpbnRzTGlzdFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCJhcGlWZXJzaW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICAgICAgXCJkZWZhdWx0XCI6IFwidjFcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogdHJ1ZSxcbiAgICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICAgIFwidjFcIlxuICAgICAgICAgICAgXVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19TZWN1cml0eUNvbnRleHRDb25zdHJhaW50c1wiLFxuICAgICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5TZWN1cml0eUNvbnRleHRDb25zdHJhaW50c1wiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImtpbmRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogXCJTZWN1cml0eUNvbnRleHRDb25zdHJhaW50c0xpc3RcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJtZXRhZGF0YVwiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfTGlzdE1ldGFcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkxpc3RNZXRhXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuU2VjdXJpdHlDb250ZXh0Q29uc3RyYWludHNMaXN0XCIsXG4gICAgICAgIFwiamF2YUludGVyZmFjZXNcIjogW1xuICAgICAgICAgIFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5LdWJlcm5ldGVzUmVzb3VyY2VcIixcbiAgICAgICAgICBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuS3ViZXJuZXRlc1Jlc291cmNlTGlzdFwiXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICBcImt1YmVybmV0ZXNfU2VydmljZVwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCJhcGlWZXJzaW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICAgICAgXCJkZWZhdWx0XCI6IFwidjFcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogdHJ1ZSxcbiAgICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICAgIFwidjFcIlxuICAgICAgICAgICAgXVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJraW5kXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICAgICAgXCJkZWZhdWx0XCI6IFwiU2VydmljZVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19PYmplY3RNZXRhXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5PYmplY3RNZXRhXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic3BlY1wiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfU2VydmljZVNwZWNcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLlNlcnZpY2VTcGVjXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic3RhdHVzXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19TZXJ2aWNlU3RhdHVzXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5TZXJ2aWNlU3RhdHVzXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuU2VydmljZVwiLFxuICAgICAgICBcImphdmFJbnRlcmZhY2VzXCI6IFtcbiAgICAgICAgICBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuSGFzTWV0YWRhdGFcIlxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgXCJrdWJlcm5ldGVzX1NlcnZpY2VBY2NvdW50XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcImFwaVZlcnNpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogXCJ2MVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlLFxuICAgICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgICAgXCJ2MVwiXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImltYWdlUHVsbFNlY3JldHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJsaXN0IG9mIHJlZmVyZW5jZXMgdG8gc2VjcmV0cyBpbiB0aGUgc2FtZSBuYW1lc3BhY2UgYXZhaWxhYmxlIGZvciBwdWxsaW5nIGNvbnRhaW5lciBpbWFnZXM7IHNlZSBodHRwOi8vcmVsZWFzZXMuazhzLmlvL0hFQUQvZG9jcy91c2VyLWd1aWRlL3NlY3JldHMubWQjbWFudWFsbHktc3BlY2lmeWluZy1hbi1pbWFnZXB1bGxzZWNyZXRcIixcbiAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfTG9jYWxPYmplY3RSZWZlcmVuY2VcIixcbiAgICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuTG9jYWxPYmplY3RSZWZlcmVuY2VcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJraW5kXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICAgICAgXCJkZWZhdWx0XCI6IFwiU2VydmljZUFjY291bnRcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJtZXRhZGF0YVwiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfT2JqZWN0TWV0YVwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuT2JqZWN0TWV0YVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInNlY3JldHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJsaXN0IG9mIHNlY3JldHMgdGhhdCBjYW4gYmUgdXNlZCBieSBwb2RzIHJ1bm5pbmcgYXMgdGhpcyBzZXJ2aWNlIGFjY291bnQ7IHNlZSBodHRwOi8vcmVsZWFzZXMuazhzLmlvL0hFQUQvZG9jcy91c2VyLWd1aWRlL3NlY3JldHMubWRcIixcbiAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfT2JqZWN0UmVmZXJlbmNlXCIsXG4gICAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLk9iamVjdFJlZmVyZW5jZVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLlNlcnZpY2VBY2NvdW50XCIsXG4gICAgICAgIFwiamF2YUludGVyZmFjZXNcIjogW1xuICAgICAgICAgIFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5IYXNNZXRhZGF0YVwiXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICBcImt1YmVybmV0ZXNfU2VydmljZUFjY291bnRMaXN0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcImFwaVZlcnNpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogXCJ2MVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlLFxuICAgICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgICAgXCJ2MVwiXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibGlzdCBvZiBTZXJ2aWNlQWNjb3VudHM7IHNlZSBodHRwOi8vcmVsZWFzZXMuazhzLmlvL0hFQUQvZG9jcy9kZXNpZ24vc2VydmljZV9hY2NvdW50cy5tZCNzZXJ2aWNlLWFjY291bnRzXCIsXG4gICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX1NlcnZpY2VBY2NvdW50XCIsXG4gICAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLlNlcnZpY2VBY2NvdW50XCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwia2luZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICAgIFwiZGVmYXVsdFwiOiBcIlNlcnZpY2VBY2NvdW50TGlzdFwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19MaXN0TWV0YVwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuTGlzdE1ldGFcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5TZXJ2aWNlQWNjb3VudExpc3RcIixcbiAgICAgICAgXCJqYXZhSW50ZXJmYWNlc1wiOiBbXG4gICAgICAgICAgXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkt1YmVybmV0ZXNSZXNvdXJjZVwiLFxuICAgICAgICAgIFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5LdWJlcm5ldGVzUmVzb3VyY2VMaXN0XCJcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIFwia3ViZXJuZXRlc19TZXJ2aWNlTGlzdFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCJhcGlWZXJzaW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICAgICAgXCJkZWZhdWx0XCI6IFwidjFcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogdHJ1ZSxcbiAgICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICAgIFwidjFcIlxuICAgICAgICAgICAgXVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImxpc3Qgb2Ygc2VydmljZXNcIixcbiAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfU2VydmljZVwiLFxuICAgICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5TZXJ2aWNlXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwia2luZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICAgIFwiZGVmYXVsdFwiOiBcIlNlcnZpY2VMaXN0XCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibWV0YWRhdGFcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX0xpc3RNZXRhXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5MaXN0TWV0YVwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLlNlcnZpY2VMaXN0XCIsXG4gICAgICAgIFwiamF2YUludGVyZmFjZXNcIjogW1xuICAgICAgICAgIFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5LdWJlcm5ldGVzUmVzb3VyY2VcIixcbiAgICAgICAgICBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuS3ViZXJuZXRlc1Jlc291cmNlTGlzdFwiXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICBcImt1YmVybmV0ZXNfU2VydmljZVBvcnRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwibmFtZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJ0aGUgbmFtZSBvZiB0aGlzIHBvcnQ7IG9wdGlvbmFsIGlmIG9ubHkgb25lIHBvcnQgaXMgZGVmaW5lZFwiLFxuICAgICAgICAgICAgXCJtYXhMZW5ndGhcIjogNjMsXG4gICAgICAgICAgICBcInBhdHRlcm5cIjogXCJeW2EtejAtOV0oWy1hLXowLTldKlthLXowLTldKT8kXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibm9kZVBvcnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInRoZSBwb3J0IG9uIGVhY2ggbm9kZSBvbiB3aGljaCB0aGlzIHNlcnZpY2UgaXMgZXhwb3NlZCB3aGVuIHR5cGU9Tm9kZVBvcnQgb3IgTG9hZEJhbGFuY2VyOyB1c3VhbGx5IGFzc2lnbmVkIGJ5IHRoZSBzeXN0ZW07IGlmIHNwZWNpZmllZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInBvcnRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInRoZSBwb3J0IG51bWJlciB0aGF0IGlzIGV4cG9zZWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJwcm90b2NvbFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJ0aGUgcHJvdG9jb2wgdXNlZCBieSB0aGlzIHBvcnQ7IG11c3QgYmUgVURQIG9yIFRDUDsgVENQIGlmIHVuc3BlY2lmaWVkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidGFyZ2V0UG9ydFwiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfdXRpbF9JbnRPclN0cmluZ1wiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuSW50T3JTdHJpbmdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5TZXJ2aWNlUG9ydFwiXG4gICAgICB9LFxuICAgICAgXCJrdWJlcm5ldGVzX1NlcnZpY2VTcGVjXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcImNsdXN0ZXJJUFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJJUCBhZGRyZXNzIG9mIHRoZSBzZXJ2aWNlOyB1c3VhbGx5IGFzc2lnbmVkIGJ5IHRoZSBzeXN0ZW07IGlmIHNwZWNpZmllZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImRlcHJlY2F0ZWRQdWJsaWNJUHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJkZXByZWNhdGVkLiBleHRlcm5hbGx5IHZpc2libGUgSVBzIChlLmcuIGxvYWQgYmFsYW5jZXJzKSB0aGF0IHNob3VsZCBiZSBwcm94aWVkIHRvIHRoaXMgc2VydmljZVwiLFxuICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiZGVwcmVjYXRlZC4gZXh0ZXJuYWxseSB2aXNpYmxlIElQcyAoZS5nLiBsb2FkIGJhbGFuY2VycykgdGhhdCBzaG91bGQgYmUgcHJveGllZCB0byB0aGlzIHNlcnZpY2VcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJwb3J0YWxJUFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJkZXByZWNhdGVkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicG9ydHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJwb3J0cyBleHBvc2VkIGJ5IHRoZSBzZXJ2aWNlOyBzZWUgaHR0cDovL3JlbGVhc2VzLms4cy5pby9IRUFEL2RvY3MvdXNlci1ndWlkZS9zZXJ2aWNlcy5tZCN2aXJ0dWFsLWlwcy1hbmQtc2VydmljZS1wcm94aWVzXCIsXG4gICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX1NlcnZpY2VQb3J0XCIsXG4gICAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLlNlcnZpY2VQb3J0XCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic2VsZWN0b3JcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibGFiZWwga2V5cyBhbmQgdmFsdWVzIHRoYXQgbXVzdCBtYXRjaCBpbiBvcmRlciB0byByZWNlaXZlIHRyYWZmaWMgZm9yIHRoaXMgc2VydmljZTsgaWYgZW1wdHlcIixcbiAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImxhYmVsIGtleXMgYW5kIHZhbHVlcyB0aGF0IG11c3QgbWF0Y2ggaW4gb3JkZXIgdG8gcmVjZWl2ZSB0cmFmZmljIGZvciB0aGlzIHNlcnZpY2U7IGlmIGVtcHR5XCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiamF2YS51dGlsLk1hcFxcdTAwM2NTdHJpbmcsU3RyaW5nXFx1MDAzZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInNlc3Npb25BZmZpbml0eVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJlbmFibGUgY2xpZW50IElQIGJhc2VkIHNlc3Npb24gYWZmaW5pdHk7IG11c3QgYmUgQ2xpZW50SVAgb3IgTm9uZTsgZGVmYXVsdHMgdG8gTm9uZTsgc2VlIGh0dHA6Ly9yZWxlYXNlcy5rOHMuaW8vSEVBRC9kb2NzL3VzZXItZ3VpZGUvc2VydmljZXMubWQjdmlydHVhbC1pcHMtYW5kLXNlcnZpY2UtcHJveGllc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInR5cGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwidHlwZSBvZiB0aGlzIHNlcnZpY2U7IG11c3QgYmUgQ2x1c3RlcklQXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuU2VydmljZVNwZWNcIlxuICAgICAgfSxcbiAgICAgIFwia3ViZXJuZXRlc19TZXJ2aWNlU3RhdHVzXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcImxvYWRCYWxhbmNlclwiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfTG9hZEJhbGFuY2VyU3RhdHVzXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5Mb2FkQmFsYW5jZXJTdGF0dXNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5TZXJ2aWNlU3RhdHVzXCJcbiAgICAgIH0sXG4gICAgICBcImt1YmVybmV0ZXNfU3RhdHVzXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcImFwaVZlcnNpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogXCJ2MVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlLFxuICAgICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgICAgXCJ2MVwiXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImNvZGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInN1Z2dlc3RlZCBIVFRQIHJldHVybiBjb2RlIGZvciB0aGlzIHN0YXR1czsgMCBpZiBub3Qgc2V0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZGV0YWlsc1wiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfU3RhdHVzRGV0YWlsc1wiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuU3RhdHVzRGV0YWlsc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImtpbmRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogXCJTdGF0dXNcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJtZXNzYWdlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImh1bWFuLXJlYWRhYmxlIGRlc2NyaXB0aW9uIG9mIHRoZSBzdGF0dXMgb2YgdGhpcyBvcGVyYXRpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJtZXRhZGF0YVwiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfTGlzdE1ldGFcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkxpc3RNZXRhXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicmVhc29uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIm1hY2hpbmUtcmVhZGFibGUgZGVzY3JpcHRpb24gb2Ygd2h5IHRoaXMgb3BlcmF0aW9uIGlzIGluIHRoZSAnRmFpbHVyZScgc3RhdHVzOyBpZiB0aGlzIHZhbHVlIGlzIGVtcHR5IHRoZXJlIGlzIG5vIGluZm9ybWF0aW9uIGF2YWlsYWJsZTsgYSByZWFzb24gY2xhcmlmaWVzIGFuIEhUVFAgc3RhdHVzIGNvZGUgYnV0IGRvZXMgbm90IG92ZXJyaWRlIGl0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic3RhdHVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInN0YXR1cyBvZiB0aGUgb3BlcmF0aW9uOyBlaXRoZXIgU3VjY2Vzc1wiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLlN0YXR1c1wiXG4gICAgICB9LFxuICAgICAgXCJrdWJlcm5ldGVzX1N0YXR1c0NhdXNlXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcImZpZWxkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImZpZWxkIG9mIHRoZSByZXNvdXJjZSB0aGF0IGhhcyBjYXVzZWQgdGhpcyBlcnJvclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm1lc3NhZ2VcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiaHVtYW4tcmVhZGFibGUgZGVzY3JpcHRpb24gb2YgdGhlIGNhdXNlIG9mIHRoZSBlcnJvcjsgdGhpcyBmaWVsZCBtYXkgYmUgcHJlc2VudGVkIGFzLWlzIHRvIGEgcmVhZGVyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicmVhc29uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIm1hY2hpbmUtcmVhZGFibGUgZGVzY3JpcHRpb24gb2YgdGhlIGNhdXNlIG9mIHRoZSBlcnJvcjsgaWYgdGhpcyB2YWx1ZSBpcyBlbXB0eSB0aGVyZSBpcyBubyBpbmZvcm1hdGlvbiBhdmFpbGFibGVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5TdGF0dXNDYXVzZVwiXG4gICAgICB9LFxuICAgICAgXCJrdWJlcm5ldGVzX1N0YXR1c0RldGFpbHNcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwiY2F1c2VzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwidGhlIENhdXNlcyBhcnJheSBpbmNsdWRlcyBtb3JlIGRldGFpbHMgYXNzb2NpYXRlZCB3aXRoIHRoZSBTdGF0dXNSZWFzb24gZmFpbHVyZTsgbm90IGFsbCBTdGF0dXNSZWFzb25zIG1heSBwcm92aWRlIGRldGFpbGVkIGNhdXNlc1wiLFxuICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19TdGF0dXNDYXVzZVwiLFxuICAgICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5TdGF0dXNDYXVzZVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImtpbmRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwidGhlIGtpbmQgYXR0cmlidXRlIG9mIHRoZSByZXNvdXJjZSBhc3NvY2lhdGVkIHdpdGggdGhlIHN0YXR1cyBTdGF0dXNSZWFzb247IG9uIHNvbWUgb3BlcmF0aW9ucyBtYXkgZGlmZmVyIGZyb20gdGhlIHJlcXVlc3RlZCByZXNvdXJjZSBLaW5kOyBzZWUgaHR0cDovL3JlbGVhc2VzLms4cy5pby9IRUFEL2RvY3MvZGV2ZWwvYXBpLWNvbnZlbnRpb25zLm1kI3R5cGVzLWtpbmRzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmFtZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJ0aGUgbmFtZSBhdHRyaWJ1dGUgb2YgdGhlIHJlc291cmNlIGFzc29jaWF0ZWQgd2l0aCB0aGUgc3RhdHVzIFN0YXR1c1JlYXNvbiAod2hlbiB0aGVyZSBpcyBhIHNpbmdsZSBuYW1lIHdoaWNoIGNhbiBiZSBkZXNjcmliZWQpXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicmV0cnlBZnRlclNlY29uZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInRoZSBudW1iZXIgb2Ygc2Vjb25kcyBiZWZvcmUgdGhlIGNsaWVudCBzaG91bGQgYXR0ZW1wdCB0byByZXRyeSB0aGlzIG9wZXJhdGlvblwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLlN0YXR1c0RldGFpbHNcIlxuICAgICAgfSxcbiAgICAgIFwia3ViZXJuZXRlc19UQ1BTb2NrZXRBY3Rpb25cIjoge1xuICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwicG9ydFwiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfdXRpbF9JbnRPclN0cmluZ1wiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuSW50T3JTdHJpbmdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5UQ1BTb2NrZXRBY3Rpb25cIlxuICAgICAgfSxcbiAgICAgIFwia3ViZXJuZXRlc19UeXBlTWV0YVwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCJhcGlWZXJzaW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInZlcnNpb24gb2YgdGhlIHNjaGVtYSB0aGUgb2JqZWN0IHNob3VsZCBoYXZlOyBzZWUgaHR0cDovL3JlbGVhc2VzLms4cy5pby9IRUFEL2RvY3MvZGV2ZWwvYXBpLWNvbnZlbnRpb25zLm1kI3Jlc291cmNlc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImtpbmRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwia2luZCBvZiBvYmplY3RcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5UeXBlTWV0YVwiXG4gICAgICB9LFxuICAgICAgXCJrdWJlcm5ldGVzX1ZvbHVtZVwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCJhd3NFbGFzdGljQmxvY2tTdG9yZVwiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfQVdTRWxhc3RpY0Jsb2NrU3RvcmVWb2x1bWVTb3VyY2VcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkFXU0VsYXN0aWNCbG9ja1N0b3JlVm9sdW1lU291cmNlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiY2VwaGZzXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19DZXBoRlNWb2x1bWVTb3VyY2VcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkNlcGhGU1ZvbHVtZVNvdXJjZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImVtcHR5RGlyXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19FbXB0eURpclZvbHVtZVNvdXJjZVwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuRW1wdHlEaXJWb2x1bWVTb3VyY2VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJnY2VQZXJzaXN0ZW50RGlza1wiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfR0NFUGVyc2lzdGVudERpc2tWb2x1bWVTb3VyY2VcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkdDRVBlcnNpc3RlbnREaXNrVm9sdW1lU291cmNlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZ2l0UmVwb1wiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfR2l0UmVwb1ZvbHVtZVNvdXJjZVwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuR2l0UmVwb1ZvbHVtZVNvdXJjZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImdsdXN0ZXJmc1wiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfR2x1c3RlcmZzVm9sdW1lU291cmNlXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5HbHVzdGVyZnNWb2x1bWVTb3VyY2VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJob3N0UGF0aFwiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfSG9zdFBhdGhWb2x1bWVTb3VyY2VcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkhvc3RQYXRoVm9sdW1lU291cmNlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiaXNjc2lcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX0lTQ1NJVm9sdW1lU291cmNlXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5JU0NTSVZvbHVtZVNvdXJjZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19NZXRhZGF0YVZvbHVtZVNvdXJjZVwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuTWV0YWRhdGFWb2x1bWVTb3VyY2VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuYW1lXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInZvbHVtZSBuYW1lOyBtdXN0IGJlIGEgRE5TX0xBQkVMIGFuZCB1bmlxdWUgd2l0aGluIHRoZSBwb2Q7IHNlZSBodHRwOi8vcmVsZWFzZXMuazhzLmlvL0hFQUQvZG9jcy91c2VyLWd1aWRlL2lkZW50aWZpZXJzLm1kI25hbWVzXCIsXG4gICAgICAgICAgICBcIm1heExlbmd0aFwiOiA2MyxcbiAgICAgICAgICAgIFwicGF0dGVyblwiOiBcIl5bYS16MC05XShbLWEtejAtOV0qW2EtejAtOV0pPyRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZnNcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX05GU1ZvbHVtZVNvdXJjZVwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuTkZTVm9sdW1lU291cmNlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicGVyc2lzdGVudFZvbHVtZUNsYWltXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19QZXJzaXN0ZW50Vm9sdW1lQ2xhaW1Wb2x1bWVTb3VyY2VcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLlBlcnNpc3RlbnRWb2x1bWVDbGFpbVZvbHVtZVNvdXJjZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInJiZFwiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfUkJEVm9sdW1lU291cmNlXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5SQkRWb2x1bWVTb3VyY2VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzZWNyZXRcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX1NlY3JldFZvbHVtZVNvdXJjZVwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuU2VjcmV0Vm9sdW1lU291cmNlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuVm9sdW1lXCJcbiAgICAgIH0sXG4gICAgICBcImt1YmVybmV0ZXNfVm9sdW1lTW91bnRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwibW91bnRQYXRoXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInBhdGggd2l0aGluIHRoZSBjb250YWluZXIgYXQgd2hpY2ggdGhlIHZvbHVtZSBzaG91bGQgYmUgbW91bnRlZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5hbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibmFtZSBvZiB0aGUgdm9sdW1lIHRvIG1vdW50XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicmVhZE9ubHlcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIm1vdW50ZWQgcmVhZC1vbmx5IGlmIHRydWVcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5Wb2x1bWVNb3VudFwiXG4gICAgICB9LFxuICAgICAgXCJrdWJlcm5ldGVzX1ZvbHVtZVNvdXJjZVwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCJhd3NFbGFzdGljQmxvY2tTdG9yZVwiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfQVdTRWxhc3RpY0Jsb2NrU3RvcmVWb2x1bWVTb3VyY2VcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkFXU0VsYXN0aWNCbG9ja1N0b3JlVm9sdW1lU291cmNlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiY2VwaGZzXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19DZXBoRlNWb2x1bWVTb3VyY2VcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkNlcGhGU1ZvbHVtZVNvdXJjZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImVtcHR5RGlyXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19FbXB0eURpclZvbHVtZVNvdXJjZVwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuRW1wdHlEaXJWb2x1bWVTb3VyY2VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJnY2VQZXJzaXN0ZW50RGlza1wiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfR0NFUGVyc2lzdGVudERpc2tWb2x1bWVTb3VyY2VcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkdDRVBlcnNpc3RlbnREaXNrVm9sdW1lU291cmNlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZ2l0UmVwb1wiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfR2l0UmVwb1ZvbHVtZVNvdXJjZVwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuR2l0UmVwb1ZvbHVtZVNvdXJjZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImdsdXN0ZXJmc1wiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfR2x1c3RlcmZzVm9sdW1lU291cmNlXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5HbHVzdGVyZnNWb2x1bWVTb3VyY2VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJob3N0UGF0aFwiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfSG9zdFBhdGhWb2x1bWVTb3VyY2VcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkhvc3RQYXRoVm9sdW1lU291cmNlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiaXNjc2lcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX0lTQ1NJVm9sdW1lU291cmNlXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5JU0NTSVZvbHVtZVNvdXJjZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19NZXRhZGF0YVZvbHVtZVNvdXJjZVwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuTWV0YWRhdGFWb2x1bWVTb3VyY2VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuZnNcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX05GU1ZvbHVtZVNvdXJjZVwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuTkZTVm9sdW1lU291cmNlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicGVyc2lzdGVudFZvbHVtZUNsYWltXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19QZXJzaXN0ZW50Vm9sdW1lQ2xhaW1Wb2x1bWVTb3VyY2VcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLlBlcnNpc3RlbnRWb2x1bWVDbGFpbVZvbHVtZVNvdXJjZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInJiZFwiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfUkJEVm9sdW1lU291cmNlXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5SQkRWb2x1bWVTb3VyY2VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzZWNyZXRcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX1NlY3JldFZvbHVtZVNvdXJjZVwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuU2VjcmV0Vm9sdW1lU291cmNlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuVm9sdW1lU291cmNlXCJcbiAgICAgIH0sXG4gICAgICBcImt1YmVybmV0ZXNfY29uZmlnX0F1dGhJbmZvXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcImNsaWVudC1jZXJ0aWZpY2F0ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJjbGllbnQtY2VydGlmaWNhdGUtZGF0YVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJjbGllbnQta2V5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImNsaWVudC1rZXktZGF0YVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJleHRlbnNpb25zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX2NvbmZpZ19OYW1lZEV4dGVuc2lvblwiLFxuICAgICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5OYW1lZEV4dGVuc2lvblwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInBhc3N3b3JkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInRva2VuXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInVzZXJuYW1lXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkF1dGhJbmZvXCJcbiAgICAgIH0sXG4gICAgICBcImt1YmVybmV0ZXNfY29uZmlnX0NsdXN0ZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwiYXBpLXZlcnNpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiY2VydGlmaWNhdGUtYXV0aG9yaXR5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImNlcnRpZmljYXRlLWF1dGhvcml0eS1kYXRhXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImV4dGVuc2lvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfY29uZmlnX05hbWVkRXh0ZW5zaW9uXCIsXG4gICAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLk5hbWVkRXh0ZW5zaW9uXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiaW5zZWN1cmUtc2tpcC10bHMtdmVyaWZ5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzZXJ2ZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuQ2x1c3RlclwiXG4gICAgICB9LFxuICAgICAgXCJrdWJlcm5ldGVzX2NvbmZpZ19Db25maWdcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwiYXBpVmVyc2lvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJjbHVzdGVyc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19jb25maWdfTmFtZWRDbHVzdGVyXCIsXG4gICAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLk5hbWVkQ2x1c3RlclwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImNvbnRleHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX2NvbmZpZ19OYW1lZENvbnRleHRcIixcbiAgICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuTmFtZWRDb250ZXh0XCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiY3VycmVudC1jb250ZXh0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImV4dGVuc2lvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfY29uZmlnX05hbWVkRXh0ZW5zaW9uXCIsXG4gICAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLk5hbWVkRXh0ZW5zaW9uXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwia2luZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJwcmVmZXJlbmNlc1wiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfY29uZmlnX1ByZWZlcmVuY2VzXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5QcmVmZXJlbmNlc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInVzZXJzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX2NvbmZpZ19OYW1lZEF1dGhJbmZvXCIsXG4gICAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLk5hbWVkQXV0aEluZm9cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5Db25maWdcIlxuICAgICAgfSxcbiAgICAgIFwia3ViZXJuZXRlc19jb25maWdfQ29udGV4dFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCJjbHVzdGVyXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImV4dGVuc2lvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfY29uZmlnX05hbWVkRXh0ZW5zaW9uXCIsXG4gICAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLk5hbWVkRXh0ZW5zaW9uXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmFtZXNwYWNlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInVzZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuQ29udGV4dFwiXG4gICAgICB9LFxuICAgICAgXCJrdWJlcm5ldGVzX2NvbmZpZ19OYW1lZEF1dGhJbmZvXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcIm5hbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidXNlclwiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfY29uZmlnX0F1dGhJbmZvXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5BdXRoSW5mb1wiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLk5hbWVkQXV0aEluZm9cIlxuICAgICAgfSxcbiAgICAgIFwia3ViZXJuZXRlc19jb25maWdfTmFtZWRDbHVzdGVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcImNsdXN0ZXJcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX2NvbmZpZ19DbHVzdGVyXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5DbHVzdGVyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmFtZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5OYW1lZENsdXN0ZXJcIlxuICAgICAgfSxcbiAgICAgIFwia3ViZXJuZXRlc19jb25maWdfTmFtZWRDb250ZXh0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcImNvbnRleHRcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX2NvbmZpZ19Db250ZXh0XCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5Db250ZXh0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibmFtZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5OYW1lZENvbnRleHRcIlxuICAgICAgfSxcbiAgICAgIFwia3ViZXJuZXRlc19jb25maWdfTmFtZWRFeHRlbnNpb25cIjoge1xuICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwiZXh0ZW5zaW9uXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19ydW50aW1lX1Jhd0V4dGVuc2lvblwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuSGFzTWV0YWRhdGFcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuYW1lXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLk5hbWVkRXh0ZW5zaW9uXCJcbiAgICAgIH0sXG4gICAgICBcImt1YmVybmV0ZXNfY29uZmlnX1ByZWZlcmVuY2VzXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcImNvbG9yc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZXh0ZW5zaW9uc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19jb25maWdfTmFtZWRFeHRlbnNpb25cIixcbiAgICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuTmFtZWRFeHRlbnNpb25cIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5QcmVmZXJlbmNlc1wiXG4gICAgICB9LFxuICAgICAgXCJrdWJlcm5ldGVzX3Jlc291cmNlX1F1YW50aXR5XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcIkFtb3VudFwiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL3NwZXRlcl9pbmZfRGVjXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLkRlY1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZvcm1hdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5RdWFudGl0eVwiXG4gICAgICB9LFxuICAgICAgXCJrdWJlcm5ldGVzX3J1bnRpbWVfUmF3RXh0ZW5zaW9uXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcIlJhd0pTT05cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuSGFzTWV0YWRhdGFcIlxuICAgICAgfSxcbiAgICAgIFwia3ViZXJuZXRlc191dGlsX0ludE9yU3RyaW5nXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcIkludFZhbFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiS2luZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiU3RyVmFsXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkludE9yU3RyaW5nXCJcbiAgICAgIH0sXG4gICAgICBcImt1YmVybmV0ZXNfd2F0Y2hfV2F0Y2hFdmVudFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCJvYmplY3RcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX3J1bnRpbWVfUmF3RXh0ZW5zaW9uXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5IYXNNZXRhZGF0YVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInR5cGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwidGhlIHR5cGUgb2Ygd2F0Y2ggZXZlbnQ7IG1heSBiZSBBRERFRFwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLldhdGNoRXZlbnRcIlxuICAgICAgfSxcbiAgICAgIFwib3NfYXV0aG9yaXphdGlvbl9BdXRob3JpemF0aW9uQXR0cmlidXRlc1wiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCJjb250ZW50XCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19ydW50aW1lX1Jhd0V4dGVuc2lvblwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuSGFzTWV0YWRhdGFcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuYW1lc3BhY2VcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibmFtZXNwYWNlIG9mIHRoZSBhY3Rpb24gYmVpbmcgcmVxdWVzdGVkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicmVzb3VyY2VcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwib25lIG9mIHRoZSBleGlzdGluZyByZXNvdXJjZSB0eXBlc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInJlc291cmNlTmFtZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJuYW1lIG9mIHRoZSByZXNvdXJjZSBiZWluZyByZXF1ZXN0ZWQgZm9yIGEgZ2V0IG9yIGRlbGV0ZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInZlcmJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwib25lIG9mIGdldFwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuQXV0aG9yaXphdGlvbkF0dHJpYnV0ZXNcIlxuICAgICAgfSxcbiAgICAgIFwib3NfYXV0aG9yaXphdGlvbl9DbHVzdGVyUG9saWN5XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcImFwaVZlcnNpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogXCJ2MVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlLFxuICAgICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgICAgXCJ2MVwiXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImtpbmRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogXCJDbHVzdGVyUG9saWN5XCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibGFzdE1vZGlmaWVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImxhc3QgdGltZSBhbnkgcGFydCBvZiB0aGUgb2JqZWN0IHdhcyBjcmVhdGVkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibWV0YWRhdGFcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX09iamVjdE1ldGFcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLk9iamVjdE1ldGFcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJyb2xlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImFsbCB0aGUgcm9sZXMgaGVsZCBieSB0aGlzIHBvbGljeVwiLFxuICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3NfYXV0aG9yaXphdGlvbl9OYW1lZENsdXN0ZXJSb2xlXCIsXG4gICAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuTmFtZWRDbHVzdGVyUm9sZVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuQ2x1c3RlclBvbGljeVwiLFxuICAgICAgICBcImphdmFJbnRlcmZhY2VzXCI6IFtcbiAgICAgICAgICBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuSGFzTWV0YWRhdGFcIlxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgXCJvc19hdXRob3JpemF0aW9uX0NsdXN0ZXJQb2xpY3lCaW5kaW5nXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcImFwaVZlcnNpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogXCJ2MVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlLFxuICAgICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgICAgXCJ2MVwiXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImtpbmRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogXCJDbHVzdGVyUG9saWN5QmluZGluZ1wiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImxhc3RNb2RpZmllZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJsYXN0IHRpbWUgYW55IHBhcnQgb2YgdGhlIG9iamVjdCB3YXMgY3JlYXRlZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19PYmplY3RNZXRhXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5PYmplY3RNZXRhXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicG9saWN5UmVmXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19PYmplY3RSZWZlcmVuY2VcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLk9iamVjdFJlZmVyZW5jZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInJvbGVCaW5kaW5nc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImFsbCB0aGUgcm9sZSBiaW5kaW5ncyBoZWxkIGJ5IHRoaXMgcG9saWN5XCIsXG4gICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vc19hdXRob3JpemF0aW9uX05hbWVkQ2x1c3RlclJvbGVCaW5kaW5nXCIsXG4gICAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuTmFtZWRDbHVzdGVyUm9sZUJpbmRpbmdcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLkNsdXN0ZXJQb2xpY3lCaW5kaW5nXCIsXG4gICAgICAgIFwiamF2YUludGVyZmFjZXNcIjogW1xuICAgICAgICAgIFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5IYXNNZXRhZGF0YVwiXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICBcIm9zX2F1dGhvcml6YXRpb25fQ2x1c3RlclBvbGljeUJpbmRpbmdMaXN0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcImFwaVZlcnNpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogXCJ2MVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlLFxuICAgICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgICAgXCJ2MVwiXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibGlzdCBvZiBjbHVzdGVyIHBvbGljeSBiaW5kaW5nc1wiLFxuICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3NfYXV0aG9yaXphdGlvbl9DbHVzdGVyUG9saWN5QmluZGluZ1wiLFxuICAgICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLkNsdXN0ZXJQb2xpY3lCaW5kaW5nXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwia2luZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICAgIFwiZGVmYXVsdFwiOiBcIkNsdXN0ZXJQb2xpY3lCaW5kaW5nTGlzdFwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19MaXN0TWV0YVwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuTGlzdE1ldGFcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLkNsdXN0ZXJQb2xpY3lCaW5kaW5nTGlzdFwiLFxuICAgICAgICBcImphdmFJbnRlcmZhY2VzXCI6IFtcbiAgICAgICAgICBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuS3ViZXJuZXRlc1Jlc291cmNlXCIsXG4gICAgICAgICAgXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkt1YmVybmV0ZXNSZXNvdXJjZUxpc3RcIlxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgXCJvc19hdXRob3JpemF0aW9uX0NsdXN0ZXJQb2xpY3lMaXN0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcImFwaVZlcnNpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogXCJ2MVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlLFxuICAgICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgICAgXCJ2MVwiXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibGlzdCBvZiBjbHVzdGVyIHBvbGljaWVzXCIsXG4gICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vc19hdXRob3JpemF0aW9uX0NsdXN0ZXJQb2xpY3lcIixcbiAgICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5DbHVzdGVyUG9saWN5XCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwia2luZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICAgIFwiZGVmYXVsdFwiOiBcIkNsdXN0ZXJQb2xpY3lMaXN0XCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibWV0YWRhdGFcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX0xpc3RNZXRhXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5MaXN0TWV0YVwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuQ2x1c3RlclBvbGljeUxpc3RcIixcbiAgICAgICAgXCJqYXZhSW50ZXJmYWNlc1wiOiBbXG4gICAgICAgICAgXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkt1YmVybmV0ZXNSZXNvdXJjZVwiLFxuICAgICAgICAgIFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5LdWJlcm5ldGVzUmVzb3VyY2VMaXN0XCJcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIFwib3NfYXV0aG9yaXphdGlvbl9DbHVzdGVyUm9sZVwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCJhcGlWZXJzaW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICAgICAgXCJkZWZhdWx0XCI6IFwidjFcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogdHJ1ZSxcbiAgICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICAgIFwidjFcIlxuICAgICAgICAgICAgXVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJraW5kXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICAgICAgXCJkZWZhdWx0XCI6IFwiQ2x1c3RlclJvbGVcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJtZXRhZGF0YVwiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfT2JqZWN0TWV0YVwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuT2JqZWN0TWV0YVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInJ1bGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibGlzdCBvZiBwb2xpY3kgcnVsZXNcIixcbiAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29zX2F1dGhvcml6YXRpb25fUG9saWN5UnVsZVwiLFxuICAgICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLlBvbGljeVJ1bGVcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLkNsdXN0ZXJSb2xlXCIsXG4gICAgICAgIFwiamF2YUludGVyZmFjZXNcIjogW1xuICAgICAgICAgIFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5IYXNNZXRhZGF0YVwiXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICBcIm9zX2F1dGhvcml6YXRpb25fQ2x1c3RlclJvbGVCaW5kaW5nXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcImFwaVZlcnNpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogXCJ2MVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlLFxuICAgICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgICAgXCJ2MVwiXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImdyb3VwTmFtZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJhbGwgdGhlIGdyb3VwcyBkaXJlY3RseSBib3VuZCB0byB0aGUgcm9sZVwiLFxuICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiYWxsIHRoZSBncm91cHMgZGlyZWN0bHkgYm91bmQgdG8gdGhlIHJvbGVcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJraW5kXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICAgICAgXCJkZWZhdWx0XCI6IFwiQ2x1c3RlclJvbGVCaW5kaW5nXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibWV0YWRhdGFcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX09iamVjdE1ldGFcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLk9iamVjdE1ldGFcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJyb2xlUmVmXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19PYmplY3RSZWZlcmVuY2VcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLk9iamVjdFJlZmVyZW5jZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInN1YmplY3RzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwicmVmZXJlbmNlcyB0byBzdWJqZWN0cyBib3VuZCB0byB0aGUgcm9sZS4gIE9ubHkgVXNlclwiLFxuICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19PYmplY3RSZWZlcmVuY2VcIixcbiAgICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuT2JqZWN0UmVmZXJlbmNlXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidXNlck5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiYWxsIHVzZXIgbmFtZXMgZGlyZWN0bHkgYm91bmQgdG8gdGhlIHJvbGVcIixcbiAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImFsbCB1c2VyIG5hbWVzIGRpcmVjdGx5IGJvdW5kIHRvIHRoZSByb2xlXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5DbHVzdGVyUm9sZUJpbmRpbmdcIixcbiAgICAgICAgXCJqYXZhSW50ZXJmYWNlc1wiOiBbXG4gICAgICAgICAgXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkhhc01ldGFkYXRhXCJcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIFwib3NfYXV0aG9yaXphdGlvbl9DbHVzdGVyUm9sZUJpbmRpbmdMaXN0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcImFwaVZlcnNpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogXCJ2MVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlLFxuICAgICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgICAgXCJ2MVwiXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibGlzdCBvZiBjbHVzdGVyIHJvbGUgYmluZGluZ3NcIixcbiAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29zX2F1dGhvcml6YXRpb25fQ2x1c3RlclJvbGVCaW5kaW5nXCIsXG4gICAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuQ2x1c3RlclJvbGVCaW5kaW5nXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwia2luZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICAgIFwiZGVmYXVsdFwiOiBcIkNsdXN0ZXJSb2xlQmluZGluZ0xpc3RcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJtZXRhZGF0YVwiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfTGlzdE1ldGFcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkxpc3RNZXRhXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5DbHVzdGVyUm9sZUJpbmRpbmdMaXN0XCIsXG4gICAgICAgIFwiamF2YUludGVyZmFjZXNcIjogW1xuICAgICAgICAgIFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5LdWJlcm5ldGVzUmVzb3VyY2VcIixcbiAgICAgICAgICBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuS3ViZXJuZXRlc1Jlc291cmNlTGlzdFwiXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICBcIm9zX2F1dGhvcml6YXRpb25fTG9jYWxTdWJqZWN0QWNjZXNzUmV2aWV3XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcIlR5cGVNZXRhXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19UeXBlTWV0YVwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuVHlwZU1ldGFcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJjb250ZW50XCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19ydW50aW1lX1Jhd0V4dGVuc2lvblwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuSGFzTWV0YWRhdGFcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJncm91cHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJvcHRpb25hbFwiLFxuICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwib3B0aW9uYWxcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuYW1lc3BhY2VcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibmFtZXNwYWNlIG9mIHRoZSBhY3Rpb24gYmVpbmcgcmVxdWVzdGVkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicmVzb3VyY2VcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwib25lIG9mIHRoZSBleGlzdGluZyByZXNvdXJjZSB0eXBlc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInJlc291cmNlTmFtZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJuYW1lIG9mIHRoZSByZXNvdXJjZSBiZWluZyByZXF1ZXN0ZWQgZm9yIGEgZ2V0IG9yIGRlbGV0ZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInVzZXJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwib3B0aW9uYWxcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ2ZXJiXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIm9uZSBvZiBnZXRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLkxvY2FsU3ViamVjdEFjY2Vzc1Jldmlld1wiXG4gICAgICB9LFxuICAgICAgXCJvc19hdXRob3JpemF0aW9uX05hbWVkQ2x1c3RlclJvbGVcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwibmFtZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJuYW1lIG9mIHRoZSBjbHVzdGVyIHJvbGVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJyb2xlXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3NfYXV0aG9yaXphdGlvbl9DbHVzdGVyUm9sZVwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5DbHVzdGVyUm9sZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuTmFtZWRDbHVzdGVyUm9sZVwiXG4gICAgICB9LFxuICAgICAgXCJvc19hdXRob3JpemF0aW9uX05hbWVkQ2x1c3RlclJvbGVCaW5kaW5nXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcIm5hbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibmFtZSBvZiB0aGUgY2x1c3RlciByb2xlIGJpbmRpbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJyb2xlQmluZGluZ1wiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29zX2F1dGhvcml6YXRpb25fQ2x1c3RlclJvbGVCaW5kaW5nXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLkNsdXN0ZXJSb2xlQmluZGluZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuTmFtZWRDbHVzdGVyUm9sZUJpbmRpbmdcIlxuICAgICAgfSxcbiAgICAgIFwib3NfYXV0aG9yaXphdGlvbl9OYW1lZFJvbGVcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwibmFtZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJuYW1lIG9mIHRoZSByb2xlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicm9sZVwiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29zX2F1dGhvcml6YXRpb25fUm9sZVwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5Sb2xlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5OYW1lZFJvbGVcIlxuICAgICAgfSxcbiAgICAgIFwib3NfYXV0aG9yaXphdGlvbl9OYW1lZFJvbGVCaW5kaW5nXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcIm5hbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibmFtZSBvZiB0aGUgcm9sZUJpbmRpbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJyb2xlQmluZGluZ1wiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29zX2F1dGhvcml6YXRpb25fUm9sZUJpbmRpbmdcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuUm9sZUJpbmRpbmdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLk5hbWVkUm9sZUJpbmRpbmdcIlxuICAgICAgfSxcbiAgICAgIFwib3NfYXV0aG9yaXphdGlvbl9Qb2xpY3lcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwiYXBpVmVyc2lvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICAgIFwiZGVmYXVsdFwiOiBcInYxXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IHRydWUsXG4gICAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgICBcInYxXCJcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwia2luZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICAgIFwiZGVmYXVsdFwiOiBcIlBvbGljeVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImxhc3RNb2RpZmllZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJsYXN0IHRpbWUgdGhhdCBhbnkgcGFydCBvZiB0aGUgcG9saWN5IHdhcyBjcmVhdGVkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibWV0YWRhdGFcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX09iamVjdE1ldGFcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLk9iamVjdE1ldGFcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJyb2xlc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInJvbGVzIGhlbGQgYnkgdGhpcyBwb2xpY3lcIixcbiAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29zX2F1dGhvcml6YXRpb25fTmFtZWRSb2xlXCIsXG4gICAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuTmFtZWRSb2xlXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5Qb2xpY3lcIixcbiAgICAgICAgXCJqYXZhSW50ZXJmYWNlc1wiOiBbXG4gICAgICAgICAgXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkhhc01ldGFkYXRhXCJcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIFwib3NfYXV0aG9yaXphdGlvbl9Qb2xpY3lCaW5kaW5nXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcImFwaVZlcnNpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogXCJ2MVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlLFxuICAgICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgICAgXCJ2MVwiXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImtpbmRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogXCJQb2xpY3lCaW5kaW5nXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibGFzdE1vZGlmaWVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImxhc3QgdGltZSB0aGF0IGFueSBwYXJ0IG9mIHRoZSBvYmplY3Qgd2FzIGNyZWF0ZWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJtZXRhZGF0YVwiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfT2JqZWN0TWV0YVwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuT2JqZWN0TWV0YVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInBvbGljeVJlZlwiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfT2JqZWN0UmVmZXJlbmNlXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5PYmplY3RSZWZlcmVuY2VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJyb2xlQmluZGluZ3NcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJhbGwgcm9sZUJpbmRpbmdzIGhlbGQgYnkgdGhpcyBwb2xpY3lCaW5kaW5nXCIsXG4gICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vc19hdXRob3JpemF0aW9uX05hbWVkUm9sZUJpbmRpbmdcIixcbiAgICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5OYW1lZFJvbGVCaW5kaW5nXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5Qb2xpY3lCaW5kaW5nXCIsXG4gICAgICAgIFwiamF2YUludGVyZmFjZXNcIjogW1xuICAgICAgICAgIFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5IYXNNZXRhZGF0YVwiXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICBcIm9zX2F1dGhvcml6YXRpb25fUG9saWN5QmluZGluZ0xpc3RcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwiYXBpVmVyc2lvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICAgIFwiZGVmYXVsdFwiOiBcInYxXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IHRydWUsXG4gICAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgICBcInYxXCJcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJsaXN0IG9mIHBvbGljeSBiaW5kaW5nc1wiLFxuICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3NfYXV0aG9yaXphdGlvbl9Qb2xpY3lCaW5kaW5nXCIsXG4gICAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuUG9saWN5QmluZGluZ1wiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImtpbmRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogXCJQb2xpY3lCaW5kaW5nTGlzdFwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19MaXN0TWV0YVwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuTGlzdE1ldGFcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLlBvbGljeUJpbmRpbmdMaXN0XCIsXG4gICAgICAgIFwiamF2YUludGVyZmFjZXNcIjogW1xuICAgICAgICAgIFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5LdWJlcm5ldGVzUmVzb3VyY2VcIixcbiAgICAgICAgICBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuS3ViZXJuZXRlc1Jlc291cmNlTGlzdFwiXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICBcIm9zX2F1dGhvcml6YXRpb25fUG9saWN5TGlzdFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCJhcGlWZXJzaW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICAgICAgXCJkZWZhdWx0XCI6IFwidjFcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogdHJ1ZSxcbiAgICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICAgIFwidjFcIlxuICAgICAgICAgICAgXVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImxpc3Qgb2YgcG9saWNpZXNcIixcbiAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29zX2F1dGhvcml6YXRpb25fUG9saWN5XCIsXG4gICAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuUG9saWN5XCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwia2luZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICAgIFwiZGVmYXVsdFwiOiBcIlBvbGljeUxpc3RcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJtZXRhZGF0YVwiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfTGlzdE1ldGFcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkxpc3RNZXRhXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5Qb2xpY3lMaXN0XCIsXG4gICAgICAgIFwiamF2YUludGVyZmFjZXNcIjogW1xuICAgICAgICAgIFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5LdWJlcm5ldGVzUmVzb3VyY2VcIixcbiAgICAgICAgICBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuS3ViZXJuZXRlc1Jlc291cmNlTGlzdFwiXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICBcIm9zX2F1dGhvcml6YXRpb25fUG9saWN5UnVsZVwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCJhdHRyaWJ1dGVSZXN0cmljdGlvbnNcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX3J1bnRpbWVfUmF3RXh0ZW5zaW9uXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5IYXNNZXRhZGF0YVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5vblJlc291cmNlVVJMc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInNldCBvZiBwYXJ0aWFsIHVybHMgdGhhdCBhIHVzZXIgc2hvdWxkIGhhdmUgYWNjZXNzIHRvLiAqcyBhcmUgYWxsb3dlZFwiLFxuICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwic2V0IG9mIHBhcnRpYWwgdXJscyB0aGF0IGEgdXNlciBzaG91bGQgaGF2ZSBhY2Nlc3MgdG8uICpzIGFyZSBhbGxvd2VkXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicmVzb3VyY2VOYW1lc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIm9wdGlvbmFsIHdoaXRlIGxpc3Qgb2YgbmFtZXMgdGhhdCB0aGUgcnVsZSBhcHBsaWVzIHRvLiAgQW4gZW1wdHkgc2V0IG1lYW5zIHRoYXQgZXZlcnl0aGluZyBpcyBhbGxvd2VkLlwiLFxuICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwib3B0aW9uYWwgd2hpdGUgbGlzdCBvZiBuYW1lcyB0aGF0IHRoZSBydWxlIGFwcGxpZXMgdG8uICBBbiBlbXB0eSBzZXQgbWVhbnMgdGhhdCBldmVyeXRoaW5nIGlzIGFsbG93ZWQuXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicmVzb3VyY2VzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibGlzdCBvZiByZXNvdXJjZXMgdGhpcyBydWxlIGFwcGxpZXMgdG8uICAqIHJlcHJlc2VudHMgYWxsIHJlc291cmNlcy5cIixcbiAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImxpc3Qgb2YgcmVzb3VyY2VzIHRoaXMgcnVsZSBhcHBsaWVzIHRvLiAgKiByZXByZXNlbnRzIGFsbCByZXNvdXJjZXMuXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidmVyYnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJsaXN0IG9mIHZlcmJzIHRoYXQgYXBwbHkgdG8gQUxMIHRoZSByZXNvdXJjZUtpbmRzIGFuZCBhdHRyaWJ1dGVSZXN0cmljdGlvbnMgY29udGFpbmVkIGluIHRoaXMgcnVsZS4gIFRoZSB2ZXJiICogcmVwcmVzZW50cyBhbGwga2luZHMuXCIsXG4gICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJsaXN0IG9mIHZlcmJzIHRoYXQgYXBwbHkgdG8gQUxMIHRoZSByZXNvdXJjZUtpbmRzIGFuZCBhdHRyaWJ1dGVSZXN0cmljdGlvbnMgY29udGFpbmVkIGluIHRoaXMgcnVsZS4gIFRoZSB2ZXJiICogcmVwcmVzZW50cyBhbGwga2luZHMuXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5Qb2xpY3lSdWxlXCJcbiAgICAgIH0sXG4gICAgICBcIm9zX2F1dGhvcml6YXRpb25fUm9sZVwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCJhcGlWZXJzaW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICAgICAgXCJkZWZhdWx0XCI6IFwidjFcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogdHJ1ZSxcbiAgICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICAgIFwidjFcIlxuICAgICAgICAgICAgXVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJraW5kXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICAgICAgXCJkZWZhdWx0XCI6IFwiUm9sZVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19PYmplY3RNZXRhXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5PYmplY3RNZXRhXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicnVsZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJhbGwgdGhlIHJ1bGVzIGZvciB0aGlzIHJvbGVcIixcbiAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29zX2F1dGhvcml6YXRpb25fUG9saWN5UnVsZVwiLFxuICAgICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLlBvbGljeVJ1bGVcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLlJvbGVcIixcbiAgICAgICAgXCJqYXZhSW50ZXJmYWNlc1wiOiBbXG4gICAgICAgICAgXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkhhc01ldGFkYXRhXCJcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIFwib3NfYXV0aG9yaXphdGlvbl9Sb2xlQmluZGluZ1wiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCJhcGlWZXJzaW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICAgICAgXCJkZWZhdWx0XCI6IFwidjFcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogdHJ1ZSxcbiAgICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICAgIFwidjFcIlxuICAgICAgICAgICAgXVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJncm91cE5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiYWxsIHRoZSBncm91cHMgZGlyZWN0bHkgYm91bmQgdG8gdGhlIHJvbGVcIixcbiAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImFsbCB0aGUgZ3JvdXBzIGRpcmVjdGx5IGJvdW5kIHRvIHRoZSByb2xlXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwia2luZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICAgIFwiZGVmYXVsdFwiOiBcIlJvbGVCaW5kaW5nXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibWV0YWRhdGFcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX09iamVjdE1ldGFcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLk9iamVjdE1ldGFcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJyb2xlUmVmXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19PYmplY3RSZWZlcmVuY2VcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLk9iamVjdFJlZmVyZW5jZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInN1YmplY3RzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwicmVmZXJlbmNlcyB0byBzdWJqZWN0cyBib3VuZCB0byB0aGUgcm9sZS4gIE9ubHkgVXNlclwiLFxuICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19PYmplY3RSZWZlcmVuY2VcIixcbiAgICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuT2JqZWN0UmVmZXJlbmNlXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidXNlck5hbWVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiYWxsIHRoZSB1c2VybmFtZXMgZGlyZWN0bHkgYm91bmQgdG8gdGhlIHJvbGVcIixcbiAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImFsbCB0aGUgdXNlcm5hbWVzIGRpcmVjdGx5IGJvdW5kIHRvIHRoZSByb2xlXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5Sb2xlQmluZGluZ1wiLFxuICAgICAgICBcImphdmFJbnRlcmZhY2VzXCI6IFtcbiAgICAgICAgICBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuSGFzTWV0YWRhdGFcIlxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgXCJvc19hdXRob3JpemF0aW9uX1JvbGVCaW5kaW5nTGlzdFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCJhcGlWZXJzaW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICAgICAgXCJkZWZhdWx0XCI6IFwidjFcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogdHJ1ZSxcbiAgICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICAgIFwidjFcIlxuICAgICAgICAgICAgXVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImxpc3Qgb2Ygcm9sZSBiaW5kaW5nc1wiLFxuICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3NfYXV0aG9yaXphdGlvbl9Sb2xlQmluZGluZ1wiLFxuICAgICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLlJvbGVCaW5kaW5nXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwia2luZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICAgIFwiZGVmYXVsdFwiOiBcIlJvbGVCaW5kaW5nTGlzdFwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19MaXN0TWV0YVwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuTGlzdE1ldGFcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLlJvbGVCaW5kaW5nTGlzdFwiLFxuICAgICAgICBcImphdmFJbnRlcmZhY2VzXCI6IFtcbiAgICAgICAgICBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuS3ViZXJuZXRlc1Jlc291cmNlXCIsXG4gICAgICAgICAgXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkt1YmVybmV0ZXNSZXNvdXJjZUxpc3RcIlxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgXCJvc19hdXRob3JpemF0aW9uX1JvbGVMaXN0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcImFwaVZlcnNpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogXCJ2MVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlLFxuICAgICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgICAgXCJ2MVwiXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibGlzdCBvZiByb2xlc1wiLFxuICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3NfYXV0aG9yaXphdGlvbl9Sb2xlXCIsXG4gICAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuUm9sZVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImtpbmRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogXCJSb2xlTGlzdFwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19MaXN0TWV0YVwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuTGlzdE1ldGFcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLlJvbGVMaXN0XCIsXG4gICAgICAgIFwiamF2YUludGVyZmFjZXNcIjogW1xuICAgICAgICAgIFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5LdWJlcm5ldGVzUmVzb3VyY2VcIixcbiAgICAgICAgICBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuS3ViZXJuZXRlc1Jlc291cmNlTGlzdFwiXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICBcIm9zX2F1dGhvcml6YXRpb25fU3ViamVjdEFjY2Vzc1Jldmlld1wiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCJhcGlWZXJzaW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICAgICAgXCJkZWZhdWx0XCI6IFwidjFcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogdHJ1ZSxcbiAgICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICAgIFwidjFcIlxuICAgICAgICAgICAgXVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJjb250ZW50XCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19ydW50aW1lX1Jhd0V4dGVuc2lvblwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuSGFzTWV0YWRhdGFcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJncm91cHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJvcHRpb25hbFwiLFxuICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwib3B0aW9uYWxcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJraW5kXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICAgICAgXCJkZWZhdWx0XCI6IFwiU3ViamVjdEFjY2Vzc1Jldmlld1wiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5hbWVzcGFjZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJuYW1lc3BhY2Ugb2YgdGhlIGFjdGlvbiBiZWluZyByZXF1ZXN0ZWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJyZXNvdXJjZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJvbmUgb2YgdGhlIGV4aXN0aW5nIHJlc291cmNlIHR5cGVzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicmVzb3VyY2VOYW1lXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIm5hbWUgb2YgdGhlIHJlc291cmNlIGJlaW5nIHJlcXVlc3RlZCBmb3IgYSBnZXQgb3IgZGVsZXRlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidXNlclwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJvcHRpb25hbFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInZlcmJcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwib25lIG9mIGdldFwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuU3ViamVjdEFjY2Vzc1Jldmlld1wiXG4gICAgICB9LFxuICAgICAgXCJvc19hdXRob3JpemF0aW9uX1N1YmplY3RBY2Nlc3NSZXZpZXdSZXNwb25zZVwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCJhbGxvd2VkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJ0cnVlIGlmIHRoZSBhY3Rpb24gd291bGQgYmUgYWxsb3dlZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImFwaVZlcnNpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogXCJ2MVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlLFxuICAgICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgICAgXCJ2MVwiXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImtpbmRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogXCJTdWJqZWN0QWNjZXNzUmV2aWV3UmVzcG9uc2VcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuYW1lc3BhY2VcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwidGhlIG5hbWVzcGFjZSB1c2VkIGZvciB0aGUgYWNjZXNzIHJldmlld1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInJlYXNvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJyZWFzb24gaXMgb3B0aW9uYWxcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLlN1YmplY3RBY2Nlc3NSZXZpZXdSZXNwb25zZVwiXG4gICAgICB9LFxuICAgICAgXCJvc19idWlsZF9CdWlsZFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCJhcGlWZXJzaW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICAgICAgXCJkZWZhdWx0XCI6IFwidjFcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogdHJ1ZSxcbiAgICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICAgIFwidjFcIlxuICAgICAgICAgICAgXVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJraW5kXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICAgICAgXCJkZWZhdWx0XCI6IFwiQnVpbGRcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJtZXRhZGF0YVwiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfT2JqZWN0TWV0YVwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuT2JqZWN0TWV0YVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInNwZWNcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vc19idWlsZF9CdWlsZFNwZWNcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuQnVpbGRTcGVjXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic3RhdHVzXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3NfYnVpbGRfQnVpbGRTdGF0dXNcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuQnVpbGRTdGF0dXNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLkJ1aWxkXCIsXG4gICAgICAgIFwiamF2YUludGVyZmFjZXNcIjogW1xuICAgICAgICAgIFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5IYXNNZXRhZGF0YVwiXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICBcIm9zX2J1aWxkX0J1aWxkQ29uZmlnXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcImFwaVZlcnNpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogXCJ2MVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlLFxuICAgICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgICAgXCJ2MVwiXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImtpbmRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogXCJCdWlsZENvbmZpZ1wiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19PYmplY3RNZXRhXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5PYmplY3RNZXRhXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic3BlY1wiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29zX2J1aWxkX0J1aWxkQ29uZmlnU3BlY1wiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5CdWlsZENvbmZpZ1NwZWNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzdGF0dXNcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vc19idWlsZF9CdWlsZENvbmZpZ1N0YXR1c1wiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5CdWlsZENvbmZpZ1N0YXR1c1wiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuQnVpbGRDb25maWdcIixcbiAgICAgICAgXCJqYXZhSW50ZXJmYWNlc1wiOiBbXG4gICAgICAgICAgXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkhhc01ldGFkYXRhXCJcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIFwib3NfYnVpbGRfQnVpbGRDb25maWdMaXN0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcImFwaVZlcnNpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogXCJ2MVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlLFxuICAgICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgICAgXCJ2MVwiXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibGlzdCBvZiBidWlsZCBjb25maWdzXCIsXG4gICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vc19idWlsZF9CdWlsZENvbmZpZ1wiLFxuICAgICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLkJ1aWxkQ29uZmlnXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwia2luZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICAgIFwiZGVmYXVsdFwiOiBcIkJ1aWxkQ29uZmlnTGlzdFwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19MaXN0TWV0YVwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuTGlzdE1ldGFcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLkJ1aWxkQ29uZmlnTGlzdFwiLFxuICAgICAgICBcImphdmFJbnRlcmZhY2VzXCI6IFtcbiAgICAgICAgICBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuS3ViZXJuZXRlc1Jlc291cmNlXCIsXG4gICAgICAgICAgXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkt1YmVybmV0ZXNSZXNvdXJjZUxpc3RcIlxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgXCJvc19idWlsZF9CdWlsZENvbmZpZ1NwZWNcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3NfYnVpbGRfQnVpbGRPdXRwdXRcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuQnVpbGRPdXRwdXRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJyZXNvdXJjZXNcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX1Jlc291cmNlUmVxdWlyZW1lbnRzXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5SZXNvdXJjZVJlcXVpcmVtZW50c1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInJldmlzaW9uXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3NfYnVpbGRfU291cmNlUmV2aXNpb25cIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuU291cmNlUmV2aXNpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzZXJ2aWNlQWNjb3VudFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJ0aGUgbmFtZSBvZiB0aGUgc2VydmljZSBhY2NvdW50IHRvIHVzZSB0byBydW4gcG9kcyBjcmVhdGVkIGJ5IHRoZSBidWlsZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInNvdXJjZVwiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29zX2J1aWxkX0J1aWxkU291cmNlXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLkJ1aWxkU291cmNlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic3RyYXRlZ3lcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vc19idWlsZF9CdWlsZFN0cmF0ZWd5XCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLkJ1aWxkU3RyYXRlZ3lcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ0cmlnZ2Vyc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImRldGVybWluZXMgaG93IG5ldyBidWlsZHMgY2FuIGJlIGxhdW5jaGVkIGZyb20gYSBidWlsZCBjb25maWcuICBpZiBubyB0cmlnZ2VycyBhcmUgZGVmaW5lZFwiLFxuICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3NfYnVpbGRfQnVpbGRUcmlnZ2VyUG9saWN5XCIsXG4gICAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuQnVpbGRUcmlnZ2VyUG9saWN5XCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5CdWlsZENvbmZpZ1NwZWNcIlxuICAgICAgfSxcbiAgICAgIFwib3NfYnVpbGRfQnVpbGRDb25maWdTdGF0dXNcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwibGFzdFZlcnNpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInVzZWQgdG8gaW5mb3JtIGFib3V0IG51bWJlciBvZiBsYXN0IHRyaWdnZXJlZCBidWlsZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuQnVpbGRDb25maWdTdGF0dXNcIlxuICAgICAgfSxcbiAgICAgIFwib3NfYnVpbGRfQnVpbGRMaXN0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcImFwaVZlcnNpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogXCJ2MVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlLFxuICAgICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgICAgXCJ2MVwiXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibGlzdCBvZiBidWlsZHNcIixcbiAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29zX2J1aWxkX0J1aWxkXCIsXG4gICAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuQnVpbGRcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJraW5kXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICAgICAgXCJkZWZhdWx0XCI6IFwiQnVpbGRMaXN0XCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibWV0YWRhdGFcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX0xpc3RNZXRhXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5MaXN0TWV0YVwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuQnVpbGRMaXN0XCIsXG4gICAgICAgIFwiamF2YUludGVyZmFjZXNcIjogW1xuICAgICAgICAgIFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5LdWJlcm5ldGVzUmVzb3VyY2VcIixcbiAgICAgICAgICBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuS3ViZXJuZXRlc1Jlc291cmNlTGlzdFwiXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICBcIm9zX2J1aWxkX0J1aWxkT3V0cHV0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcInB1c2hTZWNyZXRcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX0xvY2FsT2JqZWN0UmVmZXJlbmNlXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5Mb2NhbE9iamVjdFJlZmVyZW5jZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInRvXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19PYmplY3RSZWZlcmVuY2VcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLk9iamVjdFJlZmVyZW5jZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuQnVpbGRPdXRwdXRcIlxuICAgICAgfSxcbiAgICAgIFwib3NfYnVpbGRfQnVpbGRSZXF1ZXN0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcImFwaVZlcnNpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogXCJ2MVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlLFxuICAgICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgICAgXCJ2MVwiXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImZyb21cIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX09iamVjdFJlZmVyZW5jZVwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuT2JqZWN0UmVmZXJlbmNlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwia2luZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICAgIFwiZGVmYXVsdFwiOiBcIkJ1aWxkUmVxdWVzdFwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImxhc3RWZXJzaW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJMYXN0VmVyc2lvbiBvZiB0aGUgQnVpbGRDb25maWcgdGhhdCB0cmlnZ2VyZWQgdGhpcyBidWlsZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19PYmplY3RNZXRhXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5PYmplY3RNZXRhXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicmV2aXNpb25cIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vc19idWlsZF9Tb3VyY2VSZXZpc2lvblwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5Tb3VyY2VSZXZpc2lvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInRyaWdnZXJlZEJ5SW1hZ2VcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX09iamVjdFJlZmVyZW5jZVwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuT2JqZWN0UmVmZXJlbmNlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5CdWlsZFJlcXVlc3RcIixcbiAgICAgICAgXCJqYXZhSW50ZXJmYWNlc1wiOiBbXG4gICAgICAgICAgXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkhhc01ldGFkYXRhXCJcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIFwib3NfYnVpbGRfQnVpbGRTb3VyY2VcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwiY29udGV4dERpclwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJzcGVjaWZpZXMgc3ViLWRpcmVjdG9yeSB3aGVyZSB0aGUgc291cmNlIGNvZGUgZm9yIHRoZSBhcHBsaWNhdGlvbiBleGlzdHNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJnaXRcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vc19idWlsZF9HaXRCdWlsZFNvdXJjZVwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5HaXRCdWlsZFNvdXJjZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInNvdXJjZVNlY3JldFwiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfTG9jYWxPYmplY3RSZWZlcmVuY2VcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkxvY2FsT2JqZWN0UmVmZXJlbmNlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidHlwZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJ0eXBlIG9mIHNvdXJjZSBjb250cm9sIG1hbmFnZW1lbnQgc3lzdGVtXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5CdWlsZFNvdXJjZVwiXG4gICAgICB9LFxuICAgICAgXCJvc19idWlsZF9CdWlsZFNwZWNcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwib3V0cHV0XCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3NfYnVpbGRfQnVpbGRPdXRwdXRcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuQnVpbGRPdXRwdXRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJyZXNvdXJjZXNcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX1Jlc291cmNlUmVxdWlyZW1lbnRzXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5SZXNvdXJjZVJlcXVpcmVtZW50c1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInJldmlzaW9uXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3NfYnVpbGRfU291cmNlUmV2aXNpb25cIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuU291cmNlUmV2aXNpb25cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzZXJ2aWNlQWNjb3VudFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJ0aGUgbmFtZSBvZiB0aGUgc2VydmljZSBhY2NvdW50IHRvIHVzZSB0byBydW4gcG9kcyBjcmVhdGVkIGJ5IHRoZSBidWlsZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInNvdXJjZVwiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29zX2J1aWxkX0J1aWxkU291cmNlXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLkJ1aWxkU291cmNlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic3RyYXRlZ3lcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vc19idWlsZF9CdWlsZFN0cmF0ZWd5XCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLkJ1aWxkU3RyYXRlZ3lcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLkJ1aWxkU3BlY1wiXG4gICAgICB9LFxuICAgICAgXCJvc19idWlsZF9CdWlsZFN0YXR1c1wiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCJjYW5jZWxsZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImRlc2NyaWJlcyBpZiBhIGNhbmNlbGluZyBldmVudCB3YXMgdHJpZ2dlcmVkIGZvciB0aGUgYnVpbGRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJjb21wbGV0aW9uVGltZXN0YW1wXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInNlcnZlciB0aW1lIHdoZW4gdGhlIHBvZCBydW5uaW5nIHRoaXMgYnVpbGQgc3RvcHBlZCBydW5uaW5nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiY29uZmlnXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19PYmplY3RSZWZlcmVuY2VcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLk9iamVjdFJlZmVyZW5jZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImR1cmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJhbW91bnQgb2YgdGltZSB0aGUgYnVpbGQgaGFzIGJlZW4gcnVubmluZ1wiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcIkxvbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJtZXNzYWdlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImh1bWFuLXJlYWRhYmxlIG1lc3NhZ2UgaW5kaWNhdGluZyBkZXRhaWxzIGFib3V0IHdoeSB0aGUgYnVpbGQgaGFzIHRoaXMgc3RhdHVzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicGhhc2VcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwib2JzZXJ2ZWQgcG9pbnQgaW4gdGhlIGJ1aWxkIGxpZmVjeWNsZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInN0YXJ0VGltZXN0YW1wXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInNlcnZlciB0aW1lIHdoZW4gdGhpcyBidWlsZCBzdGFydGVkIHJ1bm5pbmcgaW4gYSBwb2RcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLkJ1aWxkU3RhdHVzXCJcbiAgICAgIH0sXG4gICAgICBcIm9zX2J1aWxkX0J1aWxkU3RyYXRlZ3lcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwiY3VzdG9tU3RyYXRlZ3lcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vc19idWlsZF9DdXN0b21CdWlsZFN0cmF0ZWd5XCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLkN1c3RvbUJ1aWxkU3RyYXRlZ3lcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJkb2NrZXJTdHJhdGVneVwiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29zX2J1aWxkX0RvY2tlckJ1aWxkU3RyYXRlZ3lcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuRG9ja2VyQnVpbGRTdHJhdGVneVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInNvdXJjZVN0cmF0ZWd5XCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3NfYnVpbGRfU291cmNlQnVpbGRTdHJhdGVneVwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5Tb3VyY2VCdWlsZFN0cmF0ZWd5XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidHlwZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJpZGVudGlmaWVzIHRoZSB0eXBlIG9mIGJ1aWxkIHN0cmF0ZWd5XCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5CdWlsZFN0cmF0ZWd5XCJcbiAgICAgIH0sXG4gICAgICBcIm9zX2J1aWxkX0J1aWxkVHJpZ2dlclBvbGljeVwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCJnZW5lcmljXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3NfYnVpbGRfV2ViSG9va1RyaWdnZXJcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuV2ViSG9va1RyaWdnZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJnaXRodWJcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vc19idWlsZF9XZWJIb29rVHJpZ2dlclwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5XZWJIb29rVHJpZ2dlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImltYWdlQ2hhbmdlXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3NfYnVpbGRfSW1hZ2VDaGFuZ2VUcmlnZ2VyXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLkltYWdlQ2hhbmdlVHJpZ2dlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInR5cGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwidHlwZSBvZiBidWlsZCB0cmlnZ2VyXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5CdWlsZFRyaWdnZXJQb2xpY3lcIlxuICAgICAgfSxcbiAgICAgIFwib3NfYnVpbGRfQ3VzdG9tQnVpbGRTdHJhdGVneVwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCJlbnZcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJhZGRpdGlvbmFsIGVudmlyb25tZW50IHZhcmlhYmxlcyB5b3Ugd2FudCB0byBwYXNzIGludG8gYSBidWlsZGVyIGNvbnRhaW5lclwiLFxuICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19FbnZWYXJcIixcbiAgICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuRW52VmFyXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZXhwb3NlRG9ja2VyU29ja2V0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJhbGxvdyBydW5uaW5nIERvY2tlciBjb21tYW5kcyAoYW5kIGJ1aWxkIERvY2tlciBpbWFnZXMpIGZyb20gaW5zaWRlIHRoZSBjb250YWluZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJmb3JjZVB1bGxcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImZvcmNlcyBwdWxsaW5nIG9mIGJ1aWxkZXIgaW1hZ2UgZnJvbSByZW1vdGUgcmVnaXN0cnkgaWYgdHJ1ZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImZyb21cIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX09iamVjdFJlZmVyZW5jZVwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuT2JqZWN0UmVmZXJlbmNlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicHVsbFNlY3JldFwiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfTG9jYWxPYmplY3RSZWZlcmVuY2VcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkxvY2FsT2JqZWN0UmVmZXJlbmNlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5DdXN0b21CdWlsZFN0cmF0ZWd5XCJcbiAgICAgIH0sXG4gICAgICBcIm9zX2J1aWxkX0RvY2tlckJ1aWxkU3RyYXRlZ3lcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwiZW52XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiYWRkaXRpb25hbCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgeW91IHdhbnQgdG8gcGFzcyBpbnRvIGEgYnVpbGRlciBjb250YWluZXJcIixcbiAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfRW52VmFyXCIsXG4gICAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkVudlZhclwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImZvcmNlUHVsbFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiZm9yY2VzIHRoZSBzb3VyY2UgYnVpbGQgdG8gcHVsbCB0aGUgaW1hZ2UgaWYgdHJ1ZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImZyb21cIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX09iamVjdFJlZmVyZW5jZVwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuT2JqZWN0UmVmZXJlbmNlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibm9DYWNoZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiaWYgdHJ1ZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInB1bGxTZWNyZXRcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX0xvY2FsT2JqZWN0UmVmZXJlbmNlXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5Mb2NhbE9iamVjdFJlZmVyZW5jZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuRG9ja2VyQnVpbGRTdHJhdGVneVwiXG4gICAgICB9LFxuICAgICAgXCJvc19idWlsZF9HaXRCdWlsZFNvdXJjZVwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCJodHRwUHJveHlcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwic3BlY2lmaWVzIGEgaHR0cCBwcm94eSB0byBiZSB1c2VkIGR1cmluZyBnaXQgY2xvbmUgb3BlcmF0aW9uc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImh0dHBzUHJveHlcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwic3BlY2lmaWVzIGEgaHR0cHMgcHJveHkgdG8gYmUgdXNlZCBkdXJpbmcgZ2l0IGNsb25lIG9wZXJhdGlvbnNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJyZWZcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiaWRlbnRpZmllcyB0aGUgYnJhbmNoL3RhZy9yZWYgdG8gYnVpbGRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ1cmlcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwicG9pbnRzIHRvIHRoZSBzb3VyY2UgdGhhdCB3aWxsIGJlIGJ1aWx0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5HaXRCdWlsZFNvdXJjZVwiXG4gICAgICB9LFxuICAgICAgXCJvc19idWlsZF9HaXRTb3VyY2VSZXZpc2lvblwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCJhdXRob3JcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vc19idWlsZF9Tb3VyY2VDb250cm9sVXNlclwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5Tb3VyY2VDb250cm9sVXNlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImNvbW1pdFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJoYXNoIGlkZW50aWZ5aW5nIGEgc3BlY2lmaWMgY29tbWl0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiY29tbWl0dGVyXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3NfYnVpbGRfU291cmNlQ29udHJvbFVzZXJcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuU291cmNlQ29udHJvbFVzZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJtZXNzYWdlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImRlc2NyaXB0aW9uIG9mIGEgc3BlY2lmaWMgY29tbWl0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5HaXRTb3VyY2VSZXZpc2lvblwiXG4gICAgICB9LFxuICAgICAgXCJvc19idWlsZF9JbWFnZUNoYW5nZVRyaWdnZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwiZnJvbVwiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfT2JqZWN0UmVmZXJlbmNlXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5PYmplY3RSZWZlcmVuY2VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJsYXN0VHJpZ2dlcmVkSW1hZ2VJRFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJ1c2VkIGludGVybmFsbHkgdG8gc2F2ZSBsYXN0IHVzZWQgaW1hZ2UgSUQgZm9yIGJ1aWxkXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5JbWFnZUNoYW5nZVRyaWdnZXJcIlxuICAgICAgfSxcbiAgICAgIFwib3NfYnVpbGRfU291cmNlQnVpbGRTdHJhdGVneVwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCJlbnZcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJhZGRpdGlvbmFsIGVudmlyb25tZW50IHZhcmlhYmxlcyB5b3Ugd2FudCB0byBwYXNzIGludG8gYSBidWlsZGVyIGNvbnRhaW5lclwiLFxuICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19FbnZWYXJcIixcbiAgICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuRW52VmFyXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZm9yY2VQdWxsXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJmb3JjZXMgdGhlIHNvdXJjZSBidWlsZCB0byBwdWxsIHRoZSBpbWFnZSBpZiB0cnVlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZnJvbVwiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfT2JqZWN0UmVmZXJlbmNlXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5PYmplY3RSZWZlcmVuY2VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJpbmNyZW1lbnRhbFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJib29sZWFuXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiZm9yY2VzIHRoZSBzb3VyY2UgYnVpbGQgdG8gZG8gaW5jcmVtZW50YWwgYnVpbGRzIGlmIHRydWVcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJwdWxsU2VjcmV0XCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19Mb2NhbE9iamVjdFJlZmVyZW5jZVwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuTG9jYWxPYmplY3RSZWZlcmVuY2VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzY3JpcHRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImxvY2F0aW9uIG9mIHRoZSBzb3VyY2Ugc2NyaXB0c1wiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuU291cmNlQnVpbGRTdHJhdGVneVwiXG4gICAgICB9LFxuICAgICAgXCJvc19idWlsZF9Tb3VyY2VDb250cm9sVXNlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCJlbWFpbFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJlLW1haWwgb2YgdGhlIHNvdXJjZSBjb250cm9sIHVzZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuYW1lXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIm5hbWUgb2YgdGhlIHNvdXJjZSBjb250cm9sIHVzZXJcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLlNvdXJjZUNvbnRyb2xVc2VyXCJcbiAgICAgIH0sXG4gICAgICBcIm9zX2J1aWxkX1NvdXJjZVJldmlzaW9uXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcImdpdFwiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29zX2J1aWxkX0dpdFNvdXJjZVJldmlzaW9uXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLkdpdFNvdXJjZVJldmlzaW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidHlwZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJ0eXBlIG9mIHRoZSBidWlsZCBzb3VyY2VcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLlNvdXJjZVJldmlzaW9uXCJcbiAgICAgIH0sXG4gICAgICBcIm9zX2J1aWxkX1dlYkhvb2tUcmlnZ2VyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcInNlY3JldFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJzZWNyZXQgdXNlZCB0byB2YWxpZGF0ZSByZXF1ZXN0c1wiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuV2ViSG9va1RyaWdnZXJcIlxuICAgICAgfSxcbiAgICAgIFwib3NfZGVwbG95X0N1c3RvbURlcGxveW1lbnRTdHJhdGVneVBhcmFtc1wiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCJjb21tYW5kXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwib3B0aW9uYWxseSBvdmVycmlkZXMgdGhlIGNvbnRhaW5lciBjb21tYW5kIChkZWZhdWx0IGlzIHNwZWNpZmllZCBieSB0aGUgaW1hZ2UpXCIsXG4gICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJvcHRpb25hbGx5IG92ZXJyaWRlcyB0aGUgY29udGFpbmVyIGNvbW1hbmQgKGRlZmF1bHQgaXMgc3BlY2lmaWVkIGJ5IHRoZSBpbWFnZSlcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJlbnZpcm9ubWVudFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImVudmlyb25tZW50IHZhcmlhYmxlcyBwcm92aWRlZCB0byB0aGUgZGVwbG95bWVudCBwcm9jZXNzIGNvbnRhaW5lclwiLFxuICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19FbnZWYXJcIixcbiAgICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuRW52VmFyXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiaW1hZ2VcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiYSBEb2NrZXIgaW1hZ2Ugd2hpY2ggY2FuIGNhcnJ5IG91dCBhIGRlcGxveW1lbnRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLkN1c3RvbURlcGxveW1lbnRTdHJhdGVneVBhcmFtc1wiXG4gICAgICB9LFxuICAgICAgXCJvc19kZXBsb3lfRGVwbG95bWVudENhdXNlXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcImltYWdlVHJpZ2dlclwiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29zX2RlcGxveV9EZXBsb3ltZW50Q2F1c2VJbWFnZVRyaWdnZXJcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuRGVwbG95bWVudENhdXNlSW1hZ2VUcmlnZ2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidHlwZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJ0aGUgdHlwZSBvZiB0cmlnZ2VyIHRoYXQgcmVzdWx0ZWQgaW4gYSBuZXcgZGVwbG95bWVudFwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuRGVwbG95bWVudENhdXNlXCJcbiAgICAgIH0sXG4gICAgICBcIm9zX2RlcGxveV9EZXBsb3ltZW50Q2F1c2VJbWFnZVRyaWdnZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwiZnJvbVwiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfT2JqZWN0UmVmZXJlbmNlXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5PYmplY3RSZWZlcmVuY2VcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLkRlcGxveW1lbnRDYXVzZUltYWdlVHJpZ2dlclwiXG4gICAgICB9LFxuICAgICAgXCJvc19kZXBsb3lfRGVwbG95bWVudENvbmZpZ1wiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCJhcGlWZXJzaW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICAgICAgXCJkZWZhdWx0XCI6IFwidjFcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogdHJ1ZSxcbiAgICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICAgIFwidjFcIlxuICAgICAgICAgICAgXVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJraW5kXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICAgICAgXCJkZWZhdWx0XCI6IFwiRGVwbG95bWVudENvbmZpZ1wiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19PYmplY3RNZXRhXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5PYmplY3RNZXRhXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic3BlY1wiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29zX2RlcGxveV9EZXBsb3ltZW50Q29uZmlnU3BlY1wiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5EZXBsb3ltZW50Q29uZmlnU3BlY1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInN0YXR1c1wiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29zX2RlcGxveV9EZXBsb3ltZW50Q29uZmlnU3RhdHVzXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLkRlcGxveW1lbnRDb25maWdTdGF0dXNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLkRlcGxveW1lbnRDb25maWdcIixcbiAgICAgICAgXCJqYXZhSW50ZXJmYWNlc1wiOiBbXG4gICAgICAgICAgXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkhhc01ldGFkYXRhXCJcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIFwib3NfZGVwbG95X0RlcGxveW1lbnRDb25maWdMaXN0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcImFwaVZlcnNpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogXCJ2MVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlLFxuICAgICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgICAgXCJ2MVwiXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiYSBsaXN0IG9mIGRlcGxveW1lbnQgY29uZmlnc1wiLFxuICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3NfZGVwbG95X0RlcGxveW1lbnRDb25maWdcIixcbiAgICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5EZXBsb3ltZW50Q29uZmlnXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwia2luZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICAgIFwiZGVmYXVsdFwiOiBcIkRlcGxveW1lbnRDb25maWdMaXN0XCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibWV0YWRhdGFcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX0xpc3RNZXRhXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5MaXN0TWV0YVwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuRGVwbG95bWVudENvbmZpZ0xpc3RcIixcbiAgICAgICAgXCJqYXZhSW50ZXJmYWNlc1wiOiBbXG4gICAgICAgICAgXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkt1YmVybmV0ZXNSZXNvdXJjZVwiLFxuICAgICAgICAgIFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5LdWJlcm5ldGVzUmVzb3VyY2VMaXN0XCJcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIFwib3NfZGVwbG95X0RlcGxveW1lbnRDb25maWdTcGVjXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcInJlcGxpY2FzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJ0aGUgZGVzaXJlZCBudW1iZXIgb2YgcmVwbGljYXNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzZWxlY3RvclwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJhIGxhYmVsIHF1ZXJ5IG92ZXIgcG9kcyB0aGF0IHNob3VsZCBtYXRjaCB0aGUgcmVwbGljYXMgY291bnRcIixcbiAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImEgbGFiZWwgcXVlcnkgb3ZlciBwb2RzIHRoYXQgc2hvdWxkIG1hdGNoIHRoZSByZXBsaWNhcyBjb3VudFwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImphdmEudXRpbC5NYXBcXHUwMDNjU3RyaW5nLFN0cmluZ1xcdTAwM2VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzdHJhdGVneVwiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29zX2RlcGxveV9EZXBsb3ltZW50U3RyYXRlZ3lcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuRGVwbG95bWVudFN0cmF0ZWd5XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidGVtcGxhdGVcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX1BvZFRlbXBsYXRlU3BlY1wiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuUG9kVGVtcGxhdGVTcGVjXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidHJpZ2dlcnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJob3cgbmV3IGRlcGxveW1lbnRzIGFyZSB0cmlnZ2VyZWRcIixcbiAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29zX2RlcGxveV9EZXBsb3ltZW50VHJpZ2dlclBvbGljeVwiLFxuICAgICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLkRlcGxveW1lbnRUcmlnZ2VyUG9saWN5XCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5EZXBsb3ltZW50Q29uZmlnU3BlY1wiXG4gICAgICB9LFxuICAgICAgXCJvc19kZXBsb3lfRGVwbG95bWVudENvbmZpZ1N0YXR1c1wiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCJkZXRhaWxzXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3NfZGVwbG95X0RlcGxveW1lbnREZXRhaWxzXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLkRlcGxveW1lbnREZXRhaWxzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibGF0ZXN0VmVyc2lvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwidXNlZCB0byBkZXRlcm1pbmUgd2hldGhlciB0aGUgY3VycmVudCBkZXBsb3ltZW50IGlzIG91dCBvZiBzeW5jXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5EZXBsb3ltZW50Q29uZmlnU3RhdHVzXCJcbiAgICAgIH0sXG4gICAgICBcIm9zX2RlcGxveV9EZXBsb3ltZW50RGV0YWlsc1wiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCJjYXVzZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJleHRlbmRlZCBkYXRhIGFzc29jaWF0ZWQgd2l0aCBhbGwgdGhlIGNhdXNlcyBmb3IgY3JlYXRpbmcgYSBuZXcgZGVwbG95bWVudFwiLFxuICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3NfZGVwbG95X0RlcGxveW1lbnRDYXVzZVwiLFxuICAgICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLkRlcGxveW1lbnRDYXVzZVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm1lc3NhZ2VcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiYSB1c2VyIHNwZWNpZmllZCBjaGFuZ2UgbWVzc2FnZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuRGVwbG95bWVudERldGFpbHNcIlxuICAgICAgfSxcbiAgICAgIFwib3NfZGVwbG95X0RlcGxveW1lbnRTdHJhdGVneVwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCJjdXN0b21QYXJhbXNcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vc19kZXBsb3lfQ3VzdG9tRGVwbG95bWVudFN0cmF0ZWd5UGFyYW1zXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLkN1c3RvbURlcGxveW1lbnRTdHJhdGVneVBhcmFtc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInJlY3JlYXRlUGFyYW1zXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3NfZGVwbG95X1JlY3JlYXRlRGVwbG95bWVudFN0cmF0ZWd5UGFyYW1zXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLlJlY3JlYXRlRGVwbG95bWVudFN0cmF0ZWd5UGFyYW1zXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicmVzb3VyY2VzXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19SZXNvdXJjZVJlcXVpcmVtZW50c1wiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuUmVzb3VyY2VSZXF1aXJlbWVudHNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJyb2xsaW5nUGFyYW1zXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3NfZGVwbG95X1JvbGxpbmdEZXBsb3ltZW50U3RyYXRlZ3lQYXJhbXNcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuUm9sbGluZ0RlcGxveW1lbnRTdHJhdGVneVBhcmFtc1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInR5cGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwidGhlIG5hbWUgb2YgYSBkZXBsb3ltZW50IHN0cmF0ZWd5XCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5EZXBsb3ltZW50U3RyYXRlZ3lcIlxuICAgICAgfSxcbiAgICAgIFwib3NfZGVwbG95X0RlcGxveW1lbnRUcmlnZ2VySW1hZ2VDaGFuZ2VQYXJhbXNcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwiYXV0b21hdGljXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJ3aGV0aGVyIGRldGVjdGlvbiBvZiBhIG5ldyB0YWcgdmFsdWUgc2hvdWxkIHRyaWdnZXIgYSBkZXBsb3ltZW50XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiY29udGFpbmVyTmFtZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJyZXN0cmljdHMgdGFnIHVwZGF0ZXMgdG8gYSBzZXQgb2YgY29udGFpbmVyIG5hbWVzIGluIHRoZSBwb2RcIixcbiAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInJlc3RyaWN0cyB0YWcgdXBkYXRlcyB0byBhIHNldCBvZiBjb250YWluZXIgbmFtZXMgaW4gdGhlIHBvZFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImZyb21cIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX09iamVjdFJlZmVyZW5jZVwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuT2JqZWN0UmVmZXJlbmNlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibGFzdFRyaWdnZXJlZEltYWdlXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInRoZSBsYXN0IGltYWdlIHRvIGJlIHRyaWdnZXJlZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuRGVwbG95bWVudFRyaWdnZXJJbWFnZUNoYW5nZVBhcmFtc1wiXG4gICAgICB9LFxuICAgICAgXCJvc19kZXBsb3lfRGVwbG95bWVudFRyaWdnZXJQb2xpY3lcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwiaW1hZ2VDaGFuZ2VQYXJhbXNcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vc19kZXBsb3lfRGVwbG95bWVudFRyaWdnZXJJbWFnZUNoYW5nZVBhcmFtc1wiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5EZXBsb3ltZW50VHJpZ2dlckltYWdlQ2hhbmdlUGFyYW1zXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidHlwZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJ0aGUgdHlwZSBvZiB0aGUgdHJpZ2dlclwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuRGVwbG95bWVudFRyaWdnZXJQb2xpY3lcIlxuICAgICAgfSxcbiAgICAgIFwib3NfZGVwbG95X0V4ZWNOZXdQb2RIb29rXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcImNvbW1hbmRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJ0aGUgaG9vayBjb21tYW5kIGFuZCBpdHMgYXJndW1lbnRzXCIsXG4gICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJ0aGUgaG9vayBjb21tYW5kIGFuZCBpdHMgYXJndW1lbnRzXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiY29udGFpbmVyTmFtZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJ0aGUgbmFtZSBvZiBhIGNvbnRhaW5lciBmcm9tIHRoZSBwb2QgdGVtcGxhdGUgd2hvc2UgaW1hZ2Ugd2lsbCBiZSB1c2VkIGZvciB0aGUgaG9vayBjb250YWluZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJlbnZcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJlbnZpcm9ubWVudCB2YXJpYWJsZXMgcHJvdmlkZWQgdG8gdGhlIGhvb2sgY29udGFpbmVyXCIsXG4gICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX0VudlZhclwiLFxuICAgICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5FbnZWYXJcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLkV4ZWNOZXdQb2RIb29rXCJcbiAgICAgIH0sXG4gICAgICBcIm9zX2RlcGxveV9MaWZlY3ljbGVIb29rXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcImV4ZWNOZXdQb2RcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vc19kZXBsb3lfRXhlY05ld1BvZEhvb2tcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuRXhlY05ld1BvZEhvb2tcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJmYWlsdXJlUG9saWN5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIndoYXQgYWN0aW9uIHRvIHRha2UgaWYgdGhlIGhvb2sgZmFpbHNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLkxpZmVjeWNsZUhvb2tcIlxuICAgICAgfSxcbiAgICAgIFwib3NfZGVwbG95X1JlY3JlYXRlRGVwbG95bWVudFN0cmF0ZWd5UGFyYW1zXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcInBvc3RcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vc19kZXBsb3lfTGlmZWN5Y2xlSG9va1wiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5MaWZlY3ljbGVIb29rXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicHJlXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3NfZGVwbG95X0xpZmVjeWNsZUhvb2tcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuTGlmZWN5Y2xlSG9va1wiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuUmVjcmVhdGVEZXBsb3ltZW50U3RyYXRlZ3lQYXJhbXNcIlxuICAgICAgfSxcbiAgICAgIFwib3NfZGVwbG95X1JvbGxpbmdEZXBsb3ltZW50U3RyYXRlZ3lQYXJhbXNcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwiaW50ZXJ2YWxTZWNvbmRzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJ0aGUgdGltZSB0byB3YWl0IGJldHdlZW4gcG9sbGluZyBkZXBsb3ltZW50IHN0YXR1cyBhZnRlciB1cGRhdGVcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJMb25nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicG9zdFwiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29zX2RlcGxveV9MaWZlY3ljbGVIb29rXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLkxpZmVjeWNsZUhvb2tcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJwcmVcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vc19kZXBsb3lfTGlmZWN5Y2xlSG9va1wiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5MaWZlY3ljbGVIb29rXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidGltZW91dFNlY29uZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInRoZSB0aW1lIHRvIHdhaXQgZm9yIHVwZGF0ZXMgYmVmb3JlIGdpdmluZyB1cFwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcIkxvbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ1cGRhdGVQZXJjZW50XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJ0aGUgcGVyY2VudGFnZSBvZiByZXBsaWNhcyB0byBzY2FsZSB1cCBvciBkb3duIGVhY2ggaW50ZXJ2YWwgKG5lZ2F0aXZlIHZhbHVlIHN3aXRjaGVzIHNjYWxlIG9yZGVyIHRvIGRvd24vdXAgaW5zdGVhZCBvZiB1cC9kb3duKVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInVwZGF0ZVBlcmlvZFNlY29uZHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInRoZSB0aW1lIHRvIHdhaXQgYmV0d2VlbiBpbmRpdmlkdWFsIHBvZCB1cGRhdGVzXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiTG9uZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuUm9sbGluZ0RlcGxveW1lbnRTdHJhdGVneVBhcmFtc1wiXG4gICAgICB9LFxuICAgICAgXCJvc19pbWFnZV9JbWFnZVwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCJhcGlWZXJzaW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICAgICAgXCJkZWZhdWx0XCI6IFwidjFcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogdHJ1ZSxcbiAgICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICAgIFwidjFcIlxuICAgICAgICAgICAgXVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJkb2NrZXJJbWFnZU1hbmlmZXN0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInJhdyBKU09OIG9mIHRoZSBtYW5pZmVzdFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImRvY2tlckltYWdlTWV0YWRhdGFcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX3J1bnRpbWVfUmF3RXh0ZW5zaW9uXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5IYXNNZXRhZGF0YVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImRvY2tlckltYWdlTWV0YWRhdGFWZXJzaW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImNvbnZleXMgdmVyc2lvbiBvZiB0aGUgb2JqZWN0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZG9ja2VySW1hZ2VSZWZlcmVuY2VcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwic3RyaW5nIHRoYXQgY2FuIGJlIHVzZWQgdG8gcHVsbCB0aGlzIGltYWdlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwia2luZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICAgIFwiZGVmYXVsdFwiOiBcIkltYWdlXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibWV0YWRhdGFcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX09iamVjdE1ldGFcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLk9iamVjdE1ldGFcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLkltYWdlXCIsXG4gICAgICAgIFwiamF2YUludGVyZmFjZXNcIjogW1xuICAgICAgICAgIFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5IYXNNZXRhZGF0YVwiXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICBcIm9zX2ltYWdlX0ltYWdlTGlzdFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCJhcGlWZXJzaW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICAgICAgXCJkZWZhdWx0XCI6IFwidjFcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogdHJ1ZSxcbiAgICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICAgIFwidjFcIlxuICAgICAgICAgICAgXVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImxpc3Qgb2YgaW1hZ2Ugb2JqZWN0c1wiLFxuICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3NfaW1hZ2VfSW1hZ2VcIixcbiAgICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5JbWFnZVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImtpbmRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogXCJJbWFnZUxpc3RcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJtZXRhZGF0YVwiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfTGlzdE1ldGFcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkxpc3RNZXRhXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5JbWFnZUxpc3RcIixcbiAgICAgICAgXCJqYXZhSW50ZXJmYWNlc1wiOiBbXG4gICAgICAgICAgXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkt1YmVybmV0ZXNSZXNvdXJjZVwiLFxuICAgICAgICAgIFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5LdWJlcm5ldGVzUmVzb3VyY2VMaXN0XCJcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIFwib3NfaW1hZ2VfSW1hZ2VTdHJlYW1cIjoge1xuICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwiYXBpVmVyc2lvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICAgIFwiZGVmYXVsdFwiOiBcInYxXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IHRydWUsXG4gICAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgICBcInYxXCJcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwia2luZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICAgIFwiZGVmYXVsdFwiOiBcIkltYWdlU3RyZWFtXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibWV0YWRhdGFcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX09iamVjdE1ldGFcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLk9iamVjdE1ldGFcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzcGVjXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3NfaW1hZ2VfSW1hZ2VTdHJlYW1TcGVjXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLkltYWdlU3RyZWFtU3BlY1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInN0YXR1c1wiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29zX2ltYWdlX0ltYWdlU3RyZWFtU3RhdHVzXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLkltYWdlU3RyZWFtU3RhdHVzXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5JbWFnZVN0cmVhbVwiLFxuICAgICAgICBcImphdmFJbnRlcmZhY2VzXCI6IFtcbiAgICAgICAgICBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuSGFzTWV0YWRhdGFcIlxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgXCJvc19pbWFnZV9JbWFnZVN0cmVhbUxpc3RcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwiYXBpVmVyc2lvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICAgIFwiZGVmYXVsdFwiOiBcInYxXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IHRydWUsXG4gICAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgICBcInYxXCJcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJsaXN0IG9mIGltYWdlIHN0cmVhbSBvYmplY3RzXCIsXG4gICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vc19pbWFnZV9JbWFnZVN0cmVhbVwiLFxuICAgICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLkltYWdlU3RyZWFtXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwia2luZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICAgIFwiZGVmYXVsdFwiOiBcIkltYWdlU3RyZWFtTGlzdFwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19MaXN0TWV0YVwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuTGlzdE1ldGFcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLkltYWdlU3RyZWFtTGlzdFwiLFxuICAgICAgICBcImphdmFJbnRlcmZhY2VzXCI6IFtcbiAgICAgICAgICBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuS3ViZXJuZXRlc1Jlc291cmNlXCIsXG4gICAgICAgICAgXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkt1YmVybmV0ZXNSZXNvdXJjZUxpc3RcIlxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgXCJvc19pbWFnZV9JbWFnZVN0cmVhbVNwZWNcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwiZG9ja2VySW1hZ2VSZXBvc2l0b3J5XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIm9wdGlvbmFsIGZpZWxkIGlmIHNwZWNpZmllZCB0aGlzIHN0cmVhbSBpcyBiYWNrZWQgYnkgYSBEb2NrZXIgcmVwb3NpdG9yeSBvbiB0aGlzIHNlcnZlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInRhZ3NcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJtYXAgYXJiaXRyYXJ5IHN0cmluZyB2YWx1ZXMgdG8gc3BlY2lmaWMgaW1hZ2UgbG9jYXRvcnNcIixcbiAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29zX2ltYWdlX05hbWVkVGFnUmVmZXJlbmNlXCIsXG4gICAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuTmFtZWRUYWdSZWZlcmVuY2VcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLkltYWdlU3RyZWFtU3BlY1wiXG4gICAgICB9LFxuICAgICAgXCJvc19pbWFnZV9JbWFnZVN0cmVhbVN0YXR1c1wiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCJkb2NrZXJJbWFnZVJlcG9zaXRvcnlcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwicmVwcmVzZW50cyB0aGUgZWZmZWN0aXZlIGxvY2F0aW9uIHRoaXMgc3RyZWFtIG1heSBiZSBhY2Nlc3NlZCBhdFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInRhZ3NcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJoaXN0b3JpY2FsIHJlY29yZCBvZiBpbWFnZXMgYXNzb2NpYXRlZCB3aXRoIGVhY2ggdGFnXCIsXG4gICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vc19pbWFnZV9OYW1lZFRhZ0V2ZW50TGlzdFwiLFxuICAgICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLk5hbWVkVGFnRXZlbnRMaXN0XCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5JbWFnZVN0cmVhbVN0YXR1c1wiXG4gICAgICB9LFxuICAgICAgXCJvc19pbWFnZV9OYW1lZFRhZ0V2ZW50TGlzdFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImxpc3Qgb2YgdGFnIGV2ZW50cyByZWxhdGVkIHRvIHRoZSB0YWdcIixcbiAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29zX2ltYWdlX1RhZ0V2ZW50XCIsXG4gICAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuVGFnRXZlbnRcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ0YWdcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwidGhlIHRhZ1wiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuTmFtZWRUYWdFdmVudExpc3RcIlxuICAgICAgfSxcbiAgICAgIFwib3NfaW1hZ2VfTmFtZWRUYWdSZWZlcmVuY2VcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwiYW5ub3RhdGlvbnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiYW5ub3RhdGlvbnMgYXNzb2NpYXRlZCB3aXRoIGltYWdlcyB1c2luZyB0aGlzIHRhZ1wiLFxuICAgICAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiYW5ub3RhdGlvbnMgYXNzb2NpYXRlZCB3aXRoIGltYWdlcyB1c2luZyB0aGlzIHRhZ1wiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImphdmEudXRpbC5NYXBcXHUwMDNjU3RyaW5nLFN0cmluZ1xcdTAwM2VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJmcm9tXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19PYmplY3RSZWZlcmVuY2VcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLk9iamVjdFJlZmVyZW5jZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm5hbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibmFtZSBvZiB0YWdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLk5hbWVkVGFnUmVmZXJlbmNlXCJcbiAgICAgIH0sXG4gICAgICBcIm9zX2ltYWdlX1RhZ0V2ZW50XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcImNyZWF0ZWRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwid2hlbiB0aGUgZXZlbnQgd2FzIGNyZWF0ZWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJkb2NrZXJJbWFnZVJlZmVyZW5jZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJ0aGUgc3RyaW5nIHRoYXQgY2FuIGJlIHVzZWQgdG8gcHVsbCB0aGlzIGltYWdlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiaW1hZ2VcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwidGhlIGltYWdlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5UYWdFdmVudFwiXG4gICAgICB9LFxuICAgICAgXCJvc19vYXV0aF9PQXV0aEFjY2Vzc1Rva2VuXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcImFwaVZlcnNpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogXCJ2MVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlLFxuICAgICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgICAgXCJ2MVwiXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImF1dGhvcml6ZVRva2VuXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImNvbnRhaW5zIHRoZSB0b2tlbiB0aGF0IGF1dGhvcml6ZWQgdGhpcyB0b2tlblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImNsaWVudE5hbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwicmVmZXJlbmNlcyB0aGUgY2xpZW50IHRoYXQgY3JlYXRlZCB0aGlzIHRva2VuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZXhwaXJlc0luXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImludGVnZXJcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJpcyB0aGUgc2Vjb25kcyBmcm9tIGNyZWF0aW9uIHRpbWUgYmVmb3JlIHRoaXMgdG9rZW4gZXhwaXJlc1wiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcIkxvbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJraW5kXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICAgICAgXCJkZWZhdWx0XCI6IFwiT0F1dGhBY2Nlc3NUb2tlblwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19PYmplY3RNZXRhXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5PYmplY3RNZXRhXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicmVkaXJlY3RVUklcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwicmVkaXJlY3Rpb24gVVJJIGFzc29jaWF0ZWQgd2l0aCB0aGUgdG9rZW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJyZWZyZXNoVG9rZW5cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwib3B0aW9uYWwgdmFsdWUgYnkgd2hpY2ggdGhpcyB0b2tlbiBjYW4gYmUgcmVuZXdlZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInNjb3Blc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImxpc3Qgb2YgcmVxdWVzdGVkIHNjb3Blc1wiLFxuICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibGlzdCBvZiByZXF1ZXN0ZWQgc2NvcGVzXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidXNlck5hbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwidXNlciBuYW1lIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHRva2VuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidXNlclVJRFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJ1bmlxdWUgVUlEIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHRva2VuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5PQXV0aEFjY2Vzc1Rva2VuXCIsXG4gICAgICAgIFwiamF2YUludGVyZmFjZXNcIjogW1xuICAgICAgICAgIFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5IYXNNZXRhZGF0YVwiXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICBcIm9zX29hdXRoX09BdXRoQWNjZXNzVG9rZW5MaXN0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcImFwaVZlcnNpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogXCJ2MVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlLFxuICAgICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgICAgXCJ2MVwiXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibGlzdCBvZiBvYXV0aCBhY2Nlc3MgdG9rZW5zXCIsXG4gICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vc19vYXV0aF9PQXV0aEFjY2Vzc1Rva2VuXCIsXG4gICAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuT0F1dGhBY2Nlc3NUb2tlblwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImtpbmRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogXCJPQXV0aEFjY2Vzc1Rva2VuTGlzdFwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19MaXN0TWV0YVwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuTGlzdE1ldGFcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLk9BdXRoQWNjZXNzVG9rZW5MaXN0XCIsXG4gICAgICAgIFwiamF2YUludGVyZmFjZXNcIjogW1xuICAgICAgICAgIFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5LdWJlcm5ldGVzUmVzb3VyY2VcIixcbiAgICAgICAgICBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuS3ViZXJuZXRlc1Jlc291cmNlTGlzdFwiXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICBcIm9zX29hdXRoX09BdXRoQXV0aG9yaXplVG9rZW5cIjoge1xuICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwiYXBpVmVyc2lvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICAgIFwiZGVmYXVsdFwiOiBcInYxXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IHRydWUsXG4gICAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgICBcInYxXCJcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiY2xpZW50TmFtZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJyZWZlcmVuY2VzIHRoZSBjbGllbnQgdGhhdCBjcmVhdGVkIHRoaXMgdG9rZW5cIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJleHBpcmVzSW5cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW50ZWdlclwiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInNlY29uZHMgZnJvbSBjcmVhdGlvbiB0aW1lIGJlZm9yZSB0aGlzIHRva2VuIGV4cGlyZXNcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJMb25nXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwia2luZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICAgIFwiZGVmYXVsdFwiOiBcIk9BdXRoQXV0aG9yaXplVG9rZW5cIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJtZXRhZGF0YVwiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfT2JqZWN0TWV0YVwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuT2JqZWN0TWV0YVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInJlZGlyZWN0VVJJXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInJlZGlyZWN0aW9uIFVSSSBhc3NvY2lhdGVkIHdpdGggdGhlIHRva2VuXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic2NvcGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibGlzdCBvZiByZXF1ZXN0ZWQgc2NvcGVzXCIsXG4gICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJsaXN0IG9mIHJlcXVlc3RlZCBzY29wZXNcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzdGF0ZVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJzdGF0ZSBkYXRhIGZyb20gcmVxdWVzdFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInVzZXJOYW1lXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInVzZXIgbmFtZSBhc3NvY2lhdGVkIHdpdGggdGhpcyB0b2tlblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInVzZXJVSURcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwidW5pcXVlIFVJRCBhc3NvY2lhdGVkIHdpdGggdGhpcyB0b2tlbi4gIHVzZXJVSUQgYW5kIHVzZXJOYW1lIG11c3QgYm90aCBtYXRjaCBmb3IgdGhpcyB0b2tlbiB0byBiZSB2YWxpZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuT0F1dGhBdXRob3JpemVUb2tlblwiLFxuICAgICAgICBcImphdmFJbnRlcmZhY2VzXCI6IFtcbiAgICAgICAgICBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuSGFzTWV0YWRhdGFcIlxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgXCJvc19vYXV0aF9PQXV0aEF1dGhvcml6ZVRva2VuTGlzdFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCJhcGlWZXJzaW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICAgICAgXCJkZWZhdWx0XCI6IFwidjFcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogdHJ1ZSxcbiAgICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICAgIFwidjFcIlxuICAgICAgICAgICAgXVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImxpc3Qgb2Ygb2F1dGggYXV0aG9yaXphdGlvbiB0b2tlbnNcIixcbiAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29zX29hdXRoX09BdXRoQXV0aG9yaXplVG9rZW5cIixcbiAgICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5PQXV0aEF1dGhvcml6ZVRva2VuXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwia2luZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICAgIFwiZGVmYXVsdFwiOiBcIk9BdXRoQXV0aG9yaXplVG9rZW5MaXN0XCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibWV0YWRhdGFcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX0xpc3RNZXRhXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5MaXN0TWV0YVwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuT0F1dGhBdXRob3JpemVUb2tlbkxpc3RcIixcbiAgICAgICAgXCJqYXZhSW50ZXJmYWNlc1wiOiBbXG4gICAgICAgICAgXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkt1YmVybmV0ZXNSZXNvdXJjZVwiLFxuICAgICAgICAgIFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5LdWJlcm5ldGVzUmVzb3VyY2VMaXN0XCJcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIFwib3Nfb2F1dGhfT0F1dGhDbGllbnRcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwiYXBpVmVyc2lvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICAgIFwiZGVmYXVsdFwiOiBcInYxXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IHRydWUsXG4gICAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgICBcInYxXCJcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwia2luZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICAgIFwiZGVmYXVsdFwiOiBcIk9BdXRoQ2xpZW50XCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibWV0YWRhdGFcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX09iamVjdE1ldGFcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLk9iamVjdE1ldGFcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJyZWRpcmVjdFVSSXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJ2YWxpZCByZWRpcmVjdGlvbiBVUklzIGFzc29jaWF0ZWQgd2l0aCBhIGNsaWVudFwiLFxuICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwidmFsaWQgcmVkaXJlY3Rpb24gVVJJcyBhc3NvY2lhdGVkIHdpdGggYSBjbGllbnRcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJyZXNwb25kV2l0aENoYWxsZW5nZXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImluZGljYXRlcyB3aGV0aGVyIHRoZSBjbGllbnQgd2FudHMgYXV0aGVudGljYXRpb24gbmVlZGVkIHJlc3BvbnNlcyBtYWRlIGluIHRoZSBmb3JtIG9mIGNoYWxsZW5nZXMgaW5zdGVhZCBvZiByZWRpcmVjdHNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzZWNyZXRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwidW5pcXVlIHNlY3JldCBhc3NvY2lhdGVkIHdpdGggYSBjbGllbnRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLk9BdXRoQ2xpZW50XCIsXG4gICAgICAgIFwiamF2YUludGVyZmFjZXNcIjogW1xuICAgICAgICAgIFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5IYXNNZXRhZGF0YVwiXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICBcIm9zX29hdXRoX09BdXRoQ2xpZW50QXV0aG9yaXphdGlvblwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCJhcGlWZXJzaW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICAgICAgXCJkZWZhdWx0XCI6IFwidjFcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogdHJ1ZSxcbiAgICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICAgIFwidjFcIlxuICAgICAgICAgICAgXVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJjbGllbnROYW1lXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInJlZmVyZW5jZXMgdGhlIGNsaWVudCB0aGF0IGNyZWF0ZWQgdGhpcyBhdXRob3JpemF0aW9uXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwia2luZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICAgIFwiZGVmYXVsdFwiOiBcIk9BdXRoQ2xpZW50QXV0aG9yaXphdGlvblwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19PYmplY3RNZXRhXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5PYmplY3RNZXRhXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic2NvcGVzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibGlzdCBvZiBncmFudGVkIHNjb3Blc1wiLFxuICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibGlzdCBvZiBncmFudGVkIHNjb3Blc1wiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInVzZXJOYW1lXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInVzZXIgbmFtZSB0aGF0IGF1dGhvcml6ZWQgdGhpcyBjbGllbnRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ1c2VyVUlEXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInVuaXF1ZSBVSUQgYXNzb2NpYXRlZCB3aXRoIHRoaXMgYXV0aG9yaXphdGlvbi4gdXNlclVJRCBhbmQgdXNlck5hbWUgbXVzdCBib3RoIG1hdGNoIGZvciB0aGlzIGF1dGhvcml6YXRpb24gdG8gYmUgdmFsaWRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLk9BdXRoQ2xpZW50QXV0aG9yaXphdGlvblwiLFxuICAgICAgICBcImphdmFJbnRlcmZhY2VzXCI6IFtcbiAgICAgICAgICBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuSGFzTWV0YWRhdGFcIlxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgXCJvc19vYXV0aF9PQXV0aENsaWVudEF1dGhvcml6YXRpb25MaXN0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcImFwaVZlcnNpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogXCJ2MVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlLFxuICAgICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgICAgXCJ2MVwiXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibGlzdCBvZiBvYXV0aCBjbGllbnQgYXV0aG9yaXphdGlvbnNcIixcbiAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29zX29hdXRoX09BdXRoQ2xpZW50QXV0aG9yaXphdGlvblwiLFxuICAgICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLk9BdXRoQ2xpZW50QXV0aG9yaXphdGlvblwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImtpbmRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogXCJPQXV0aENsaWVudEF1dGhvcml6YXRpb25MaXN0XCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibWV0YWRhdGFcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX0xpc3RNZXRhXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5MaXN0TWV0YVwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuT0F1dGhDbGllbnRBdXRob3JpemF0aW9uTGlzdFwiLFxuICAgICAgICBcImphdmFJbnRlcmZhY2VzXCI6IFtcbiAgICAgICAgICBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuS3ViZXJuZXRlc1Jlc291cmNlXCIsXG4gICAgICAgICAgXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkt1YmVybmV0ZXNSZXNvdXJjZUxpc3RcIlxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgXCJvc19vYXV0aF9PQXV0aENsaWVudExpc3RcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwiYXBpVmVyc2lvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICAgIFwiZGVmYXVsdFwiOiBcInYxXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IHRydWUsXG4gICAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgICBcInYxXCJcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJsaXN0IG9mIG9hdXRoIGNsaWVudHNcIixcbiAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29zX29hdXRoX09BdXRoQ2xpZW50XCIsXG4gICAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuT0F1dGhDbGllbnRcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJraW5kXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICAgICAgXCJkZWZhdWx0XCI6IFwiT0F1dGhDbGllbnRMaXN0XCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibWV0YWRhdGFcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX0xpc3RNZXRhXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5MaXN0TWV0YVwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuT0F1dGhDbGllbnRMaXN0XCIsXG4gICAgICAgIFwiamF2YUludGVyZmFjZXNcIjogW1xuICAgICAgICAgIFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5LdWJlcm5ldGVzUmVzb3VyY2VcIixcbiAgICAgICAgICBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuS3ViZXJuZXRlc1Jlc291cmNlTGlzdFwiXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICBcIm9zX3Byb2plY3RfUHJvamVjdFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCJhcGlWZXJzaW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICAgICAgXCJkZWZhdWx0XCI6IFwidjFcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogdHJ1ZSxcbiAgICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICAgIFwidjFcIlxuICAgICAgICAgICAgXVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJraW5kXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICAgICAgXCJkZWZhdWx0XCI6IFwiUHJvamVjdFwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19PYmplY3RNZXRhXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5PYmplY3RNZXRhXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic3BlY1wiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29zX3Byb2plY3RfUHJvamVjdFNwZWNcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuUHJvamVjdFNwZWNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzdGF0dXNcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vc19wcm9qZWN0X1Byb2plY3RTdGF0dXNcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuUHJvamVjdFN0YXR1c1wiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuUHJvamVjdFwiLFxuICAgICAgICBcImphdmFJbnRlcmZhY2VzXCI6IFtcbiAgICAgICAgICBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuSGFzTWV0YWRhdGFcIlxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgXCJvc19wcm9qZWN0X1Byb2plY3RMaXN0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcImFwaVZlcnNpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogXCJ2MVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlLFxuICAgICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgICAgXCJ2MVwiXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibGlzdCBvZiBwcm9qZWN0c1wiLFxuICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3NfcHJvamVjdF9Qcm9qZWN0XCIsXG4gICAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuUHJvamVjdFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImtpbmRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogXCJQcm9qZWN0TGlzdFwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19MaXN0TWV0YVwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuTGlzdE1ldGFcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLlByb2plY3RMaXN0XCIsXG4gICAgICAgIFwiamF2YUludGVyZmFjZXNcIjogW1xuICAgICAgICAgIFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5LdWJlcm5ldGVzUmVzb3VyY2VcIixcbiAgICAgICAgICBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuS3ViZXJuZXRlc1Jlc291cmNlTGlzdFwiXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICBcIm9zX3Byb2plY3RfUHJvamVjdFJlcXVlc3RcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwiYXBpVmVyc2lvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICAgIFwiZGVmYXVsdFwiOiBcInYxXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IHRydWUsXG4gICAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgICBcInYxXCJcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiZGVzY3JpcHRpb24gdG8gYXBwbHkgdG8gYSBwcm9qZWN0XCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZGlzcGxheU5hbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiZGlzcGxheSBuYW1lIHRvIGFwcGx5IHRvIGEgcHJvamVjdFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImtpbmRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogXCJQcm9qZWN0UmVxdWVzdFwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19PYmplY3RNZXRhXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5PYmplY3RNZXRhXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5Qcm9qZWN0UmVxdWVzdFwiLFxuICAgICAgICBcImphdmFJbnRlcmZhY2VzXCI6IFtcbiAgICAgICAgICBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuSGFzTWV0YWRhdGFcIlxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgXCJvc19wcm9qZWN0X1Byb2plY3RTcGVjXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcImZpbmFsaXplcnNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJhbiBvcGFxdWUgbGlzdCBvZiB2YWx1ZXMgdGhhdCBtdXN0IGJlIGVtcHR5IHRvIHBlcm1hbmVudGx5IHJlbW92ZSBvYmplY3QgZnJvbSBzdG9yYWdlXCIsXG4gICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJhbiBvcGFxdWUgbGlzdCBvZiB2YWx1ZXMgdGhhdCBtdXN0IGJlIGVtcHR5IHRvIHBlcm1hbmVudGx5IHJlbW92ZSBvYmplY3QgZnJvbSBzdG9yYWdlXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5Qcm9qZWN0U3BlY1wiXG4gICAgICB9LFxuICAgICAgXCJvc19wcm9qZWN0X1Byb2plY3RTdGF0dXNcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwicGhhc2VcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwicGhhc2UgaXMgdGhlIGN1cnJlbnQgbGlmZWN5Y2xlIHBoYXNlIG9mIHRoZSBwcm9qZWN0XCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5Qcm9qZWN0U3RhdHVzXCJcbiAgICAgIH0sXG4gICAgICBcIm9zX3JvdXRlX1JvdXRlXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcImFwaVZlcnNpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogXCJ2MVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlLFxuICAgICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgICAgXCJ2MVwiXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImtpbmRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogXCJSb3V0ZVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19PYmplY3RNZXRhXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5PYmplY3RNZXRhXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwic3BlY1wiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29zX3JvdXRlX1JvdXRlU3BlY1wiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5Sb3V0ZVNwZWNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJzdGF0dXNcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vc19yb3V0ZV9Sb3V0ZVN0YXR1c1wiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5Sb3V0ZVN0YXR1c1wiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuUm91dGVcIixcbiAgICAgICAgXCJqYXZhSW50ZXJmYWNlc1wiOiBbXG4gICAgICAgICAgXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkhhc01ldGFkYXRhXCJcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIFwib3Nfcm91dGVfUm91dGVMaXN0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcImFwaVZlcnNpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogXCJ2MVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlLFxuICAgICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgICAgXCJ2MVwiXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibGlzdCBvZiByb3V0ZXNcIixcbiAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29zX3JvdXRlX1JvdXRlXCIsXG4gICAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuUm91dGVcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJraW5kXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICAgICAgXCJkZWZhdWx0XCI6IFwiUm91dGVMaXN0XCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibWV0YWRhdGFcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX0xpc3RNZXRhXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5MaXN0TWV0YVwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuUm91dGVMaXN0XCIsXG4gICAgICAgIFwiamF2YUludGVyZmFjZXNcIjogW1xuICAgICAgICAgIFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5LdWJlcm5ldGVzUmVzb3VyY2VcIixcbiAgICAgICAgICBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuS3ViZXJuZXRlc1Jlc291cmNlTGlzdFwiXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICBcIm9zX3JvdXRlX1JvdXRlU3BlY1wiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCJob3N0XCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIm9wdGlvbmFsOiBhbGlhcy9kbnMgdGhhdCBwb2ludHMgdG8gdGhlIHNlcnZpY2VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJwYXRoXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIm9wdGlvbmFsOiBwYXRoIHRoYXQgdGhlIHJvdXRlciB3YXRjaGVzIHRvIHJvdXRlIHRyYWZmaWMgdG8gdGhlIHNlcnZpY2VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ0bHNcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vc19yb3V0ZV9UTFNDb25maWdcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuVExTQ29uZmlnXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidG9cIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX09iamVjdFJlZmVyZW5jZVwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuT2JqZWN0UmVmZXJlbmNlXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5Sb3V0ZVNwZWNcIlxuICAgICAgfSxcbiAgICAgIFwib3Nfcm91dGVfUm91dGVTdGF0dXNcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuUm91dGVTdGF0dXNcIlxuICAgICAgfSxcbiAgICAgIFwib3Nfcm91dGVfVExTQ29uZmlnXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcImNhQ2VydGlmaWNhdGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwicHJvdmlkZXMgdGhlIGNlcnQgYXV0aG9yaXR5IGNlcnRpZmljYXRlIGNvbnRlbnRzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiY2VydGlmaWNhdGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwicHJvdmlkZXMgY2VydGlmaWNhdGUgY29udGVudHNcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJkZXN0aW5hdGlvbkNBQ2VydGlmaWNhdGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwicHJvdmlkZXMgdGhlIGNvbnRlbnRzIG9mIHRoZSBjYSBjZXJ0aWZpY2F0ZSBvZiB0aGUgZmluYWwgZGVzdGluYXRpb24uICBXaGVuIHVzaW5nIHJlLWVuY3J5cHQgdGVybWluYXRpb24gdGhpcyBmaWxlIHNob3VsZCBiZSBwcm92aWRlZCBpbiBvcmRlciB0byBoYXZlIHJvdXRlcnMgdXNlIGl0IGZvciBoZWFsdGggY2hlY2tzIG9uIHRoZSBzZWN1cmUgY29ubmVjdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImtleVwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJwcm92aWRlcyBrZXkgZmlsZSBjb250ZW50c1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInRlcm1pbmF0aW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImluZGljYXRlcyB0ZXJtaW5hdGlvbiB0eXBlLiAgaWYgbm90IHNldFwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuVExTQ29uZmlnXCJcbiAgICAgIH0sXG4gICAgICBcIm9zX3RlbXBsYXRlX1BhcmFtZXRlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJvcHRpb25hbDogZGVzY3JpYmVzIHRoZSBwYXJhbWV0ZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJmcm9tXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImlucHV0IHZhbHVlIGZvciB0aGUgZ2VuZXJhdG9yXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZ2VuZXJhdGVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwib3B0aW9uYWw6IGdlbmVyYXRlIHNwZWNpZmllcyB0aGUgZ2VuZXJhdG9yIHRvIGJlIHVzZWQgdG8gZ2VuZXJhdGUgcmFuZG9tIHN0cmluZyBmcm9tIGFuIGlucHV0IHZhbHVlIHNwZWNpZmllZCBieSB0aGUgZnJvbSBmaWVsZC4gIHRoZSByZXN1bHQgc3RyaW5nIGlzIHN0b3JlZCBpbiB0aGUgdmFsdWUgZmllbGQuIGlmIG5vdCBzcGVjaWZpZWRcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJuYW1lXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIm5hbWUgb2YgdGhlIHBhcmFtZXRlclwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInJlcXVpcmVkXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJpbmRpY2F0ZXMgdGhlIHBhcmFtZXRlciBtdXN0IGhhdmUgYSBub24tZW1wdHkgdmFsdWUgb3IgYmUgZ2VuZXJhdGVkXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwidmFsdWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwib3B0aW9uYWw6IGhvbGRzIHRoZSBwYXJhbWV0ZXIgZGF0YS4gIGlmIHNwZWNpZmllZFwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuUGFyYW1ldGVyXCJcbiAgICAgIH0sXG4gICAgICBcIm9zX3RlbXBsYXRlX1RlbXBsYXRlXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcImFwaVZlcnNpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogXCJ2MVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlLFxuICAgICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgICAgXCJ2MVwiXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImtpbmRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogXCJUZW1wbGF0ZVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImxhYmVsc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJvcHRpb25hbDogbGlzdCBvZiBsYWJsZXMgdGhhdCBhcmUgYXBwbGllZCB0byBldmVyeSBvYmplY3QgZHVyaW5nIHRoZSB0ZW1wbGF0ZSB0byBjb25maWcgdHJhbnNmb3JtYXRpb25cIixcbiAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIm9wdGlvbmFsOiBsaXN0IG9mIGxhYmxlcyB0aGF0IGFyZSBhcHBsaWVkIHRvIGV2ZXJ5IG9iamVjdCBkdXJpbmcgdGhlIHRlbXBsYXRlIHRvIGNvbmZpZyB0cmFuc2Zvcm1hdGlvblwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImphdmEudXRpbC5NYXBcXHUwMDNjU3RyaW5nLFN0cmluZ1xcdTAwM2VcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJtZXRhZGF0YVwiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfT2JqZWN0TWV0YVwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuT2JqZWN0TWV0YVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm9iamVjdHNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJsaXN0IG9mIG9iamVjdHMgdG8gaW5jbHVkZSBpbiB0aGUgdGVtcGxhdGVcIixcbiAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfcnVudGltZV9SYXdFeHRlbnNpb25cIixcbiAgICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuSGFzTWV0YWRhdGFcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJwYXJhbWV0ZXJzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwib3B0aW9uYWw6IGxpc3Qgb2YgcGFyYW1ldGVycyB1c2VkIGR1cmluZyB0ZW1wbGF0ZSB0byBjb25maWcgdHJhbnNmb3JtYXRpb25cIixcbiAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29zX3RlbXBsYXRlX1BhcmFtZXRlclwiLFxuICAgICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLlBhcmFtZXRlclwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuVGVtcGxhdGVcIixcbiAgICAgICAgXCJqYXZhSW50ZXJmYWNlc1wiOiBbXG4gICAgICAgICAgXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkhhc01ldGFkYXRhXCJcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIFwib3NfdGVtcGxhdGVfVGVtcGxhdGVMaXN0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcImFwaVZlcnNpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogXCJ2MVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlLFxuICAgICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgICAgXCJ2MVwiXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibGlzdCBvZiB0ZW1wbGF0ZXNcIixcbiAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29zX3RlbXBsYXRlX1RlbXBsYXRlXCIsXG4gICAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuVGVtcGxhdGVcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJraW5kXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICAgICAgXCJkZWZhdWx0XCI6IFwiVGVtcGxhdGVMaXN0XCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibWV0YWRhdGFcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX0xpc3RNZXRhXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5MaXN0TWV0YVwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuVGVtcGxhdGVMaXN0XCIsXG4gICAgICAgIFwiamF2YUludGVyZmFjZXNcIjogW1xuICAgICAgICAgIFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5LdWJlcm5ldGVzUmVzb3VyY2VcIixcbiAgICAgICAgICBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuS3ViZXJuZXRlc1Jlc291cmNlTGlzdFwiXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICBcIm9zX3VzZXJfR3JvdXBcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwiYXBpVmVyc2lvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICAgIFwiZGVmYXVsdFwiOiBcInYxXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IHRydWUsXG4gICAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgICBcInYxXCJcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwia2luZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICAgIFwiZGVmYXVsdFwiOiBcIkdyb3VwXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibWV0YWRhdGFcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX09iamVjdE1ldGFcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLk9iamVjdE1ldGFcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ1c2Vyc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImxpc3Qgb2YgdXNlcnMgaW4gdGhpcyBncm91cFwiLFxuICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibGlzdCBvZiB1c2VycyBpbiB0aGlzIGdyb3VwXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5Hcm91cFwiLFxuICAgICAgICBcImphdmFJbnRlcmZhY2VzXCI6IFtcbiAgICAgICAgICBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuSGFzTWV0YWRhdGFcIlxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgXCJvc191c2VyX0dyb3VwTGlzdFwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgIFwicHJvcGVydGllc1wiOiB7XG4gICAgICAgICAgXCJhcGlWZXJzaW9uXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICAgICAgXCJkZWZhdWx0XCI6IFwidjFcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogdHJ1ZSxcbiAgICAgICAgICAgIFwiZW51bVwiOiBbXG4gICAgICAgICAgICAgIFwidjFcIlxuICAgICAgICAgICAgXVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImxpc3Qgb2YgZ3JvdXBzXCIsXG4gICAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vc191c2VyX0dyb3VwXCIsXG4gICAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuR3JvdXBcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJraW5kXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICAgICAgXCJkZWZhdWx0XCI6IFwiR3JvdXBMaXN0XCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwibWV0YWRhdGFcIjoge1xuICAgICAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX0xpc3RNZXRhXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5MaXN0TWV0YVwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuR3JvdXBMaXN0XCIsXG4gICAgICAgIFwiamF2YUludGVyZmFjZXNcIjogW1xuICAgICAgICAgIFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5LdWJlcm5ldGVzUmVzb3VyY2VcIixcbiAgICAgICAgICBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuS3ViZXJuZXRlc1Jlc291cmNlTGlzdFwiXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICBcIm9zX3VzZXJfSWRlbnRpdHlcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwiYXBpVmVyc2lvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICAgIFwiZGVmYXVsdFwiOiBcInYxXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IHRydWUsXG4gICAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgICBcInYxXCJcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZXh0cmFcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiZXh0cmEgaW5mb3JtYXRpb24gZm9yIHRoaXMgaWRlbnRpdHlcIixcbiAgICAgICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImV4dHJhIGluZm9ybWF0aW9uIGZvciB0aGlzIGlkZW50aXR5XCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiamF2YS51dGlsLk1hcFxcdTAwM2NTdHJpbmcsU3RyaW5nXFx1MDAzZVwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImtpbmRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogXCJJZGVudGl0eVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19PYmplY3RNZXRhXCIsXG4gICAgICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5PYmplY3RNZXRhXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwicHJvdmlkZXJOYW1lXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcInNvdXJjZSBvZiBpZGVudGl0eSBpbmZvcm1hdGlvblwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcInByb3ZpZGVyVXNlck5hbWVcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwidW5pcXVlbHkgcmVwcmVzZW50cyB0aGlzIGlkZW50aXR5IGluIHRoZSBzY29wZSBvZiB0aGUgcHJvdmlkZXJcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJ1c2VyXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19PYmplY3RSZWZlcmVuY2VcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLk9iamVjdFJlZmVyZW5jZVwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuSWRlbnRpdHlcIixcbiAgICAgICAgXCJqYXZhSW50ZXJmYWNlc1wiOiBbXG4gICAgICAgICAgXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkhhc01ldGFkYXRhXCJcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIFwib3NfdXNlcl9JZGVudGl0eUxpc3RcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxuICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgIFwiYXBpVmVyc2lvblwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICAgIFwiZGVmYXVsdFwiOiBcInYxXCIsXG4gICAgICAgICAgICBcInJlcXVpcmVkXCI6IHRydWUsXG4gICAgICAgICAgICBcImVudW1cIjogW1xuICAgICAgICAgICAgICBcInYxXCJcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwiYXJyYXlcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJsaXN0IG9mIGlkZW50aXRpZXNcIixcbiAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29zX3VzZXJfSWRlbnRpdHlcIixcbiAgICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5JZGVudGl0eVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImtpbmRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogXCJJZGVudGl0eUxpc3RcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJtZXRhZGF0YVwiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfTGlzdE1ldGFcIixcbiAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkxpc3RNZXRhXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiYWRkaXRpb25hbFByb3BlcnRpZXNcIjogdHJ1ZSxcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5JZGVudGl0eUxpc3RcIixcbiAgICAgICAgXCJqYXZhSW50ZXJmYWNlc1wiOiBbXG4gICAgICAgICAgXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkt1YmVybmV0ZXNSZXNvdXJjZVwiLFxuICAgICAgICAgIFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5LdWJlcm5ldGVzUmVzb3VyY2VMaXN0XCJcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIFwib3NfdXNlcl9Vc2VyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcImFwaVZlcnNpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogXCJ2MVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlLFxuICAgICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgICAgXCJ2MVwiXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImZ1bGxOYW1lXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImZ1bGwgbmFtZSBvZiB1c2VyXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZ3JvdXBzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibGlzdCBvZiBncm91cHNcIixcbiAgICAgICAgICAgIFwiaXRlbXNcIjoge1xuICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImxpc3Qgb2YgZ3JvdXBzXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiaWRlbnRpdGllc1wiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJhcnJheVwiLFxuICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcImxpc3Qgb2YgaWRlbnRpdGllc1wiLFxuICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibGlzdCBvZiBpZGVudGl0aWVzXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFwia2luZFwiOiB7XG4gICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgICAgIFwiZGVmYXVsdFwiOiBcIlVzZXJcIixcbiAgICAgICAgICAgIFwicmVxdWlyZWRcIjogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJtZXRhZGF0YVwiOiB7XG4gICAgICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfT2JqZWN0TWV0YVwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuT2JqZWN0TWV0YVwiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWUsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuVXNlclwiLFxuICAgICAgICBcImphdmFJbnRlcmZhY2VzXCI6IFtcbiAgICAgICAgICBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuSGFzTWV0YWRhdGFcIlxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgXCJvc191c2VyX1VzZXJMaXN0XCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICBcImFwaVZlcnNpb25cIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogXCJ2MVwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlLFxuICAgICAgICAgICAgXCJlbnVtXCI6IFtcbiAgICAgICAgICAgICAgXCJ2MVwiXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIml0ZW1zXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwibGlzdCBvZiB1c2Vyc1wiLFxuICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3NfdXNlcl9Vc2VyXCIsXG4gICAgICAgICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuVXNlclwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBcImtpbmRcIjoge1xuICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gICAgICAgICAgICBcImRlZmF1bHRcIjogXCJVc2VyTGlzdFwiLFxuICAgICAgICAgICAgXCJyZXF1aXJlZFwiOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19MaXN0TWV0YVwiLFxuICAgICAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuTGlzdE1ldGFcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLlVzZXJMaXN0XCIsXG4gICAgICAgIFwiamF2YUludGVyZmFjZXNcIjogW1xuICAgICAgICAgIFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5LdWJlcm5ldGVzUmVzb3VyY2VcIixcbiAgICAgICAgICBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuS3ViZXJuZXRlc1Jlc291cmNlTGlzdFwiXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICBcInNwZXRlcl9pbmZfRGVjXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwib2JqZWN0XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgICAgICAgXCJhZGRpdGlvbmFsUHJvcGVydGllc1wiOiB0cnVlLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLkRlY1wiXG4gICAgICB9XG4gICAgfSxcbiAgICBcInR5cGVcIjogXCJvYmplY3RcIixcbiAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgXCJCYXNlS3ViZXJuZXRlc0xpc3RcIjoge1xuICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfTGlzdFwiLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5CYXNlS3ViZXJuZXRlc0xpc3RcIlxuICAgICAgfSxcbiAgICAgIFwiQnVpbGRDb25maWdMaXN0XCI6IHtcbiAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vc19idWlsZF9CdWlsZENvbmZpZ0xpc3RcIixcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5CdWlsZENvbmZpZ0xpc3RcIlxuICAgICAgfSxcbiAgICAgIFwiQnVpbGRMaXN0XCI6IHtcbiAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vc19idWlsZF9CdWlsZExpc3RcIixcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5CdWlsZExpc3RcIlxuICAgICAgfSxcbiAgICAgIFwiQnVpbGRSZXF1ZXN0XCI6IHtcbiAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vc19idWlsZF9CdWlsZFJlcXVlc3RcIixcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5CdWlsZFJlcXVlc3RcIlxuICAgICAgfSxcbiAgICAgIFwiQ2x1c3RlclBvbGljeVwiOiB7XG4gICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3NfYXV0aG9yaXphdGlvbl9DbHVzdGVyUG9saWN5XCIsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuQ2x1c3RlclBvbGljeVwiXG4gICAgICB9LFxuICAgICAgXCJDbHVzdGVyUG9saWN5QmluZGluZ1wiOiB7XG4gICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3NfYXV0aG9yaXphdGlvbl9DbHVzdGVyUG9saWN5QmluZGluZ1wiLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLkNsdXN0ZXJQb2xpY3lCaW5kaW5nXCJcbiAgICAgIH0sXG4gICAgICBcIkNsdXN0ZXJQb2xpY3lCaW5kaW5nTGlzdFwiOiB7XG4gICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3NfYXV0aG9yaXphdGlvbl9DbHVzdGVyUG9saWN5QmluZGluZ0xpc3RcIixcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5DbHVzdGVyUG9saWN5QmluZGluZ0xpc3RcIlxuICAgICAgfSxcbiAgICAgIFwiQ2x1c3RlclBvbGljeUxpc3RcIjoge1xuICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29zX2F1dGhvcml6YXRpb25fQ2x1c3RlclBvbGljeUxpc3RcIixcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5DbHVzdGVyUG9saWN5TGlzdFwiXG4gICAgICB9LFxuICAgICAgXCJDbHVzdGVyUm9sZUJpbmRpbmdcIjoge1xuICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29zX2F1dGhvcml6YXRpb25fQ2x1c3RlclJvbGVCaW5kaW5nXCIsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuQ2x1c3RlclJvbGVCaW5kaW5nXCJcbiAgICAgIH0sXG4gICAgICBcIkNsdXN0ZXJSb2xlQmluZGluZ0xpc3RcIjoge1xuICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29zX2F1dGhvcml6YXRpb25fQ2x1c3RlclJvbGVCaW5kaW5nTGlzdFwiLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLkNsdXN0ZXJSb2xlQmluZGluZ0xpc3RcIlxuICAgICAgfSxcbiAgICAgIFwiQ29uZmlnXCI6IHtcbiAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX2NvbmZpZ19Db25maWdcIixcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuQ29uZmlnXCJcbiAgICAgIH0sXG4gICAgICBcIkNvbnRhaW5lclN0YXR1c1wiOiB7XG4gICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19Db250YWluZXJTdGF0dXNcIixcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuQ29udGFpbmVyU3RhdHVzXCJcbiAgICAgIH0sXG4gICAgICBcIkRlcGxveW1lbnRDb25maWdMaXN0XCI6IHtcbiAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vc19kZXBsb3lfRGVwbG95bWVudENvbmZpZ0xpc3RcIixcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5EZXBsb3ltZW50Q29uZmlnTGlzdFwiXG4gICAgICB9LFxuICAgICAgXCJFbmRwb2ludHNcIjoge1xuICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfRW5kcG9pbnRzXCIsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkVuZHBvaW50c1wiXG4gICAgICB9LFxuICAgICAgXCJFbmRwb2ludHNMaXN0XCI6IHtcbiAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX0VuZHBvaW50c0xpc3RcIixcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuRW5kcG9pbnRzTGlzdFwiXG4gICAgICB9LFxuICAgICAgXCJFbnZWYXJcIjoge1xuICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfRW52VmFyXCIsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkVudlZhclwiXG4gICAgICB9LFxuICAgICAgXCJFdmVudExpc3RcIjoge1xuICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfRXZlbnRMaXN0XCIsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLkV2ZW50TGlzdFwiXG4gICAgICB9LFxuICAgICAgXCJHcm91cFwiOiB7XG4gICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3NfdXNlcl9Hcm91cFwiLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLkdyb3VwXCJcbiAgICAgIH0sXG4gICAgICBcIkdyb3VwTGlzdFwiOiB7XG4gICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3NfdXNlcl9Hcm91cExpc3RcIixcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5Hcm91cExpc3RcIlxuICAgICAgfSxcbiAgICAgIFwiSWRlbnRpdHlcIjoge1xuICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29zX3VzZXJfSWRlbnRpdHlcIixcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5JZGVudGl0eVwiXG4gICAgICB9LFxuICAgICAgXCJJZGVudGl0eUxpc3RcIjoge1xuICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29zX3VzZXJfSWRlbnRpdHlMaXN0XCIsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuSWRlbnRpdHlMaXN0XCJcbiAgICAgIH0sXG4gICAgICBcIkltYWdlTGlzdFwiOiB7XG4gICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3NfaW1hZ2VfSW1hZ2VMaXN0XCIsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuSW1hZ2VMaXN0XCJcbiAgICAgIH0sXG4gICAgICBcIkltYWdlU3RyZWFtTGlzdFwiOiB7XG4gICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3NfaW1hZ2VfSW1hZ2VTdHJlYW1MaXN0XCIsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuSW1hZ2VTdHJlYW1MaXN0XCJcbiAgICAgIH0sXG4gICAgICBcIkxvY2FsU3ViamVjdEFjY2Vzc1Jldmlld1wiOiB7XG4gICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3NfYXV0aG9yaXphdGlvbl9Mb2NhbFN1YmplY3RBY2Nlc3NSZXZpZXdcIixcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5Mb2NhbFN1YmplY3RBY2Nlc3NSZXZpZXdcIlxuICAgICAgfSxcbiAgICAgIFwiTmFtZXNwYWNlXCI6IHtcbiAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX05hbWVzcGFjZVwiLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5OYW1lc3BhY2VcIlxuICAgICAgfSxcbiAgICAgIFwiTmFtZXNwYWNlTGlzdFwiOiB7XG4gICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19OYW1lc3BhY2VMaXN0XCIsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLk5hbWVzcGFjZUxpc3RcIlxuICAgICAgfSxcbiAgICAgIFwiTm9kZVwiOiB7XG4gICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19Ob2RlXCIsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLk5vZGVcIlxuICAgICAgfSxcbiAgICAgIFwiTm9kZUxpc3RcIjoge1xuICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfTm9kZUxpc3RcIixcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuTm9kZUxpc3RcIlxuICAgICAgfSxcbiAgICAgIFwiT0F1dGhBY2Nlc3NUb2tlblwiOiB7XG4gICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3Nfb2F1dGhfT0F1dGhBY2Nlc3NUb2tlblwiLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLk9BdXRoQWNjZXNzVG9rZW5cIlxuICAgICAgfSxcbiAgICAgIFwiT0F1dGhBY2Nlc3NUb2tlbkxpc3RcIjoge1xuICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29zX29hdXRoX09BdXRoQWNjZXNzVG9rZW5MaXN0XCIsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuT0F1dGhBY2Nlc3NUb2tlbkxpc3RcIlxuICAgICAgfSxcbiAgICAgIFwiT0F1dGhBdXRob3JpemVUb2tlblwiOiB7XG4gICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3Nfb2F1dGhfT0F1dGhBdXRob3JpemVUb2tlblwiLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLk9BdXRoQXV0aG9yaXplVG9rZW5cIlxuICAgICAgfSxcbiAgICAgIFwiT0F1dGhBdXRob3JpemVUb2tlbkxpc3RcIjoge1xuICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29zX29hdXRoX09BdXRoQXV0aG9yaXplVG9rZW5MaXN0XCIsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuT0F1dGhBdXRob3JpemVUb2tlbkxpc3RcIlxuICAgICAgfSxcbiAgICAgIFwiT0F1dGhDbGllbnRcIjoge1xuICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29zX29hdXRoX09BdXRoQ2xpZW50XCIsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuT0F1dGhDbGllbnRcIlxuICAgICAgfSxcbiAgICAgIFwiT0F1dGhDbGllbnRBdXRob3JpemF0aW9uXCI6IHtcbiAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vc19vYXV0aF9PQXV0aENsaWVudEF1dGhvcml6YXRpb25cIixcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5PQXV0aENsaWVudEF1dGhvcml6YXRpb25cIlxuICAgICAgfSxcbiAgICAgIFwiT0F1dGhDbGllbnRBdXRob3JpemF0aW9uTGlzdFwiOiB7XG4gICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3Nfb2F1dGhfT0F1dGhDbGllbnRBdXRob3JpemF0aW9uTGlzdFwiLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLk9BdXRoQ2xpZW50QXV0aG9yaXphdGlvbkxpc3RcIlxuICAgICAgfSxcbiAgICAgIFwiT0F1dGhDbGllbnRMaXN0XCI6IHtcbiAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vc19vYXV0aF9PQXV0aENsaWVudExpc3RcIixcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5PQXV0aENsaWVudExpc3RcIlxuICAgICAgfSxcbiAgICAgIFwiT2JqZWN0TWV0YVwiOiB7XG4gICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19PYmplY3RNZXRhXCIsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLk9iamVjdE1ldGFcIlxuICAgICAgfSxcbiAgICAgIFwiUGVyc2lzdGVudFZvbHVtZVwiOiB7XG4gICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19QZXJzaXN0ZW50Vm9sdW1lXCIsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLlBlcnNpc3RlbnRWb2x1bWVcIlxuICAgICAgfSxcbiAgICAgIFwiUGVyc2lzdGVudFZvbHVtZUNsYWltXCI6IHtcbiAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX1BlcnNpc3RlbnRWb2x1bWVDbGFpbVwiLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5QZXJzaXN0ZW50Vm9sdW1lQ2xhaW1cIlxuICAgICAgfSxcbiAgICAgIFwiUGVyc2lzdGVudFZvbHVtZUNsYWltTGlzdFwiOiB7XG4gICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19QZXJzaXN0ZW50Vm9sdW1lQ2xhaW1MaXN0XCIsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLlBlcnNpc3RlbnRWb2x1bWVDbGFpbUxpc3RcIlxuICAgICAgfSxcbiAgICAgIFwiUGVyc2lzdGVudFZvbHVtZUxpc3RcIjoge1xuICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfUGVyc2lzdGVudFZvbHVtZUxpc3RcIixcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuUGVyc2lzdGVudFZvbHVtZUxpc3RcIlxuICAgICAgfSxcbiAgICAgIFwiUG9kTGlzdFwiOiB7XG4gICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19Qb2RMaXN0XCIsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLlBvZExpc3RcIlxuICAgICAgfSxcbiAgICAgIFwiUG9saWN5XCI6IHtcbiAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vc19hdXRob3JpemF0aW9uX1BvbGljeVwiLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLlBvbGljeVwiXG4gICAgICB9LFxuICAgICAgXCJQb2xpY3lCaW5kaW5nXCI6IHtcbiAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vc19hdXRob3JpemF0aW9uX1BvbGljeUJpbmRpbmdcIixcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5Qb2xpY3lCaW5kaW5nXCJcbiAgICAgIH0sXG4gICAgICBcIlBvbGljeUJpbmRpbmdMaXN0XCI6IHtcbiAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vc19hdXRob3JpemF0aW9uX1BvbGljeUJpbmRpbmdMaXN0XCIsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuUG9saWN5QmluZGluZ0xpc3RcIlxuICAgICAgfSxcbiAgICAgIFwiUG9saWN5TGlzdFwiOiB7XG4gICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3NfYXV0aG9yaXphdGlvbl9Qb2xpY3lMaXN0XCIsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuUG9saWN5TGlzdFwiXG4gICAgICB9LFxuICAgICAgXCJQcm9qZWN0XCI6IHtcbiAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vc19wcm9qZWN0X1Byb2plY3RcIixcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5Qcm9qZWN0XCJcbiAgICAgIH0sXG4gICAgICBcIlByb2plY3RMaXN0XCI6IHtcbiAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vc19wcm9qZWN0X1Byb2plY3RMaXN0XCIsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuUHJvamVjdExpc3RcIlxuICAgICAgfSxcbiAgICAgIFwiUHJvamVjdFJlcXVlc3RcIjoge1xuICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29zX3Byb2plY3RfUHJvamVjdFJlcXVlc3RcIixcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5Qcm9qZWN0UmVxdWVzdFwiXG4gICAgICB9LFxuICAgICAgXCJRdWFudGl0eVwiOiB7XG4gICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19yZXNvdXJjZV9RdWFudGl0eVwiLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5RdWFudGl0eVwiXG4gICAgICB9LFxuICAgICAgXCJSZXBsaWNhdGlvbkNvbnRyb2xsZXJMaXN0XCI6IHtcbiAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX1JlcGxpY2F0aW9uQ29udHJvbGxlckxpc3RcIixcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuUmVwbGljYXRpb25Db250cm9sbGVyTGlzdFwiXG4gICAgICB9LFxuICAgICAgXCJSZXNvdXJjZVF1b3RhXCI6IHtcbiAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX1Jlc291cmNlUXVvdGFcIixcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuUmVzb3VyY2VRdW90YVwiXG4gICAgICB9LFxuICAgICAgXCJSZXNvdXJjZVF1b3RhTGlzdFwiOiB7XG4gICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19SZXNvdXJjZVF1b3RhTGlzdFwiLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5SZXNvdXJjZVF1b3RhTGlzdFwiXG4gICAgICB9LFxuICAgICAgXCJSb2xlXCI6IHtcbiAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vc19hdXRob3JpemF0aW9uX1JvbGVcIixcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5Sb2xlXCJcbiAgICAgIH0sXG4gICAgICBcIlJvbGVCaW5kaW5nXCI6IHtcbiAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vc19hdXRob3JpemF0aW9uX1JvbGVCaW5kaW5nXCIsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuUm9sZUJpbmRpbmdcIlxuICAgICAgfSxcbiAgICAgIFwiUm9sZUJpbmRpbmdMaXN0XCI6IHtcbiAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vc19hdXRob3JpemF0aW9uX1JvbGVCaW5kaW5nTGlzdFwiLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLlJvbGVCaW5kaW5nTGlzdFwiXG4gICAgICB9LFxuICAgICAgXCJSb2xlTGlzdFwiOiB7XG4gICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3NfYXV0aG9yaXphdGlvbl9Sb2xlTGlzdFwiLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLlJvbGVMaXN0XCJcbiAgICAgIH0sXG4gICAgICBcIlJvb3RQYXRoc1wiOiB7XG4gICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvYXBpX1Jvb3RQYXRoc1wiLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5Sb290UGF0aHNcIlxuICAgICAgfSxcbiAgICAgIFwiUm91dGVMaXN0XCI6IHtcbiAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vc19yb3V0ZV9Sb3V0ZUxpc3RcIixcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5Sb3V0ZUxpc3RcIlxuICAgICAgfSxcbiAgICAgIFwiU2VjcmV0XCI6IHtcbiAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX1NlY3JldFwiLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5TZWNyZXRcIlxuICAgICAgfSxcbiAgICAgIFwiU2VjcmV0TGlzdFwiOiB7XG4gICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMva3ViZXJuZXRlc19TZWNyZXRMaXN0XCIsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLlNlY3JldExpc3RcIlxuICAgICAgfSxcbiAgICAgIFwiU2VjdXJpdHlDb250ZXh0Q29uc3RyYWludHNcIjoge1xuICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfU2VjdXJpdHlDb250ZXh0Q29uc3RyYWludHNcIixcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuU2VjdXJpdHlDb250ZXh0Q29uc3RyYWludHNcIlxuICAgICAgfSxcbiAgICAgIFwiU2VjdXJpdHlDb250ZXh0Q29uc3RyYWludHNMaXN0XCI6IHtcbiAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX1NlY3VyaXR5Q29udGV4dENvbnN0cmFpbnRzTGlzdFwiLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5TZWN1cml0eUNvbnRleHRDb25zdHJhaW50c0xpc3RcIlxuICAgICAgfSxcbiAgICAgIFwiU2VydmljZUFjY291bnRcIjoge1xuICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfU2VydmljZUFjY291bnRcIixcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuU2VydmljZUFjY291bnRcIlxuICAgICAgfSxcbiAgICAgIFwiU2VydmljZUFjY291bnRMaXN0XCI6IHtcbiAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX1NlcnZpY2VBY2NvdW50TGlzdFwiLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5TZXJ2aWNlQWNjb3VudExpc3RcIlxuICAgICAgfSxcbiAgICAgIFwiU2VydmljZUxpc3RcIjoge1xuICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL2t1YmVybmV0ZXNfU2VydmljZUxpc3RcIixcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuU2VydmljZUxpc3RcIlxuICAgICAgfSxcbiAgICAgIFwiU3RhdHVzXCI6IHtcbiAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX1N0YXR1c1wiLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5rdWJlcm5ldGVzLmFwaS5tb2RlbC5TdGF0dXNcIlxuICAgICAgfSxcbiAgICAgIFwiU3ViamVjdEFjY2Vzc1Jldmlld1wiOiB7XG4gICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3NfYXV0aG9yaXphdGlvbl9TdWJqZWN0QWNjZXNzUmV2aWV3XCIsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuU3ViamVjdEFjY2Vzc1Jldmlld1wiXG4gICAgICB9LFxuICAgICAgXCJTdWJqZWN0QWNjZXNzUmV2aWV3UmVzcG9uc2VcIjoge1xuICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29zX2F1dGhvcml6YXRpb25fU3ViamVjdEFjY2Vzc1Jldmlld1Jlc3BvbnNlXCIsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuU3ViamVjdEFjY2Vzc1Jldmlld1Jlc3BvbnNlXCJcbiAgICAgIH0sXG4gICAgICBcIlRhZ0V2ZW50XCI6IHtcbiAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vc19pbWFnZV9UYWdFdmVudFwiLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLlRhZ0V2ZW50XCJcbiAgICAgIH0sXG4gICAgICBcIlRlbXBsYXRlXCI6IHtcbiAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9vc190ZW1wbGF0ZV9UZW1wbGF0ZVwiLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLlRlbXBsYXRlXCJcbiAgICAgIH0sXG4gICAgICBcIlRlbXBsYXRlTGlzdFwiOiB7XG4gICAgICAgIFwiJHJlZlwiOiBcIiMvZGVmaW5pdGlvbnMvb3NfdGVtcGxhdGVfVGVtcGxhdGVMaXN0XCIsXG4gICAgICAgIFwiamF2YVR5cGVcIjogXCJpby5mYWJyaWM4Lm9wZW5zaGlmdC5hcGkubW9kZWwuVGVtcGxhdGVMaXN0XCJcbiAgICAgIH0sXG4gICAgICBcIlVzZXJcIjoge1xuICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29zX3VzZXJfVXNlclwiLFxuICAgICAgICBcImphdmFUeXBlXCI6IFwiaW8uZmFicmljOC5vcGVuc2hpZnQuYXBpLm1vZGVsLlVzZXJcIlxuICAgICAgfSxcbiAgICAgIFwiVXNlckxpc3RcIjoge1xuICAgICAgICBcIiRyZWZcIjogXCIjL2RlZmluaXRpb25zL29zX3VzZXJfVXNlckxpc3RcIixcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgub3BlbnNoaWZ0LmFwaS5tb2RlbC5Vc2VyTGlzdFwiXG4gICAgICB9LFxuICAgICAgXCJXYXRjaEV2ZW50XCI6IHtcbiAgICAgICAgXCIkcmVmXCI6IFwiIy9kZWZpbml0aW9ucy9rdWJlcm5ldGVzX3dhdGNoX1dhdGNoRXZlbnRcIixcbiAgICAgICAgXCJqYXZhVHlwZVwiOiBcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuV2F0Y2hFdmVudFwiXG4gICAgICB9XG4gICAgfSxcbiAgICBcImFkZGl0aW9uYWxQcm9wZXJ0aWVzXCI6IHRydWVcbiAgfVxuXG5cbn0iLCIvLy8gPHJlZmVyZW5jZSBwYXRoPVwic2NoZW1hLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cImt1YmVybmV0ZXNQbHVnaW4udHNcIi8+XG5tb2R1bGUgS3ViZXJuZXRlcyB7XG4gIFxuICBcbiAgdmFyIGhpZGRlblByb3BlcnRpZXMgPSBbJ3N0YXR1cycsICdkZWxldGlvblRpbWVzdGFtcCddO1xuXG4gIGZ1bmN0aW9uIHdpdGhQcm9wZXJ0eShzY2hlbWE6YW55LCBuYW1lOnN0cmluZywgYWN0aW9uOihhbnkpID0+IHZvaWQpIHtcbiAgICBpZiAoc2NoZW1hLnByb3BlcnRpZXNbbmFtZV0pIHtcbiAgICAgIGFjdGlvbihzY2hlbWEucHJvcGVydGllc1tuYW1lXSk7XG4gICAgfVxuICB9XG4gIFxuICBmdW5jdGlvbiBoaWRlUHJvcGVydGllcyhzY2hlbWEpIHtcbiAgICBfLmZvckVhY2goaGlkZGVuUHJvcGVydGllcywgKHByb3BlcnR5KSA9PiB7XG4gICAgICB3aXRoUHJvcGVydHkoc2NoZW1hLCBwcm9wZXJ0eSwgKHByb3BlcnR5KSA9PiB7XG4gICAgICAgIHByb3BlcnR5LmhpZGRlbiA9IHRydWU7XG4gICAgICB9KVxuICAgIH0pO1xuICB9XG4gIFxuICBfbW9kdWxlLmZhY3RvcnkoJ0t1YmVybmV0ZXNTY2hlbWEnLCBbJ1NjaGVtYVJlZ2lzdHJ5JywgKHNjaGVtYXM6SGF3dGlvRm9ybXMuU2NoZW1hUmVnaXN0cnkpID0+IHtcbiAgICBjb25maWd1cmVTY2hlbWEoKTtcbiAgICBcbiAgICBzY2hlbWFzLmFkZExpc3RlbmVyKFwiazhzIHNjaGVtYSBjdXN0b21pemVyXCIsIChuYW1lLCBzY2hlbWEpID0+IHtcbiAgICAgIGlmIChzY2hlbWEucHJvcGVydGllcykge1xuICAgICAgICBpZiAoc2NoZW1hLnByb3BlcnRpZXMubmFtZSkge1xuICAgICAgICAgIHNjaGVtYS5jb250cm9scyA9IFsnbmFtZScsICcqJ107XG4gICAgICAgIH1cbiAgICAgICAgd2l0aFByb3BlcnR5KHNjaGVtYSwgJ3BvcnRhbElQJywgKHByb3BlcnR5KSA9PiB7XG4gICAgICAgICAgcHJvcGVydHkubGFiZWwgPSBcIlBvcnRhbCBJUFwiXG4gICAgICAgIH0pO1xuICAgICAgICB3aXRoUHJvcGVydHkoc2NoZW1hLCAncHVibGljSVBzJywgKHByb3BlcnR5KSA9PiB7XG4gICAgICAgICAgcHJvcGVydHkubGFiZWwgPSBcIlB1YmxpYyBJUHNcIlxuICAgICAgICB9KTtcbiAgICAgICAgd2l0aFByb3BlcnR5KHNjaGVtYSwgJ1NwZWMnLCAocHJvcGVydHkpID0+IHtcbiAgICAgICAgICBwcm9wZXJ0eS5sYWJlbCA9ICdmYWxzZSc7XG4gICAgICAgIH0pO1xuICAgICAgICB3aXRoUHJvcGVydHkoc2NoZW1hLCAnTWV0YWRhdGEnLCAocHJvcGVydHkpID0+IHtcbiAgICAgICAgICBwcm9wZXJ0eS5sYWJlbCA9ICdmYWxzZSc7XG4gICAgICAgIH0pO1xuICAgICAgICBoaWRlUHJvcGVydGllcyhzY2hlbWEpO1xuICAgICAgfVxuICAgICAgXG4gICAgICBpZiAoXy5lbmRzV2l0aChuYW1lLCBcIlNlcnZpY2VTcGVjXCIpKSB7XG4gICAgICAgIHNjaGVtYS5jb250cm9scyA9IFtcInBvcnRhbElQXCIsIFwiY3JlYXRlRXh0ZXJuYWxMb2FkQmFsYW5jZXJcIiwgXCJzZXNzaW9uQWZmaW5pdHlcIiwgXCJwdWJsaWNJUHNcIiwgXCJwb3J0c1wiLCBcInNlbGVjdG9yXCIsIFwiKlwiXTtcbiAgICAgICAgd2l0aFByb3BlcnR5KHNjaGVtYSwgJ3Nlc3Npb25BZmZpbml0eScsIChwcm9wZXJ0eSkgPT4ge1xuICAgICAgICAgIGxvZy5kZWJ1ZyhcIlNjaGVtYTogXCIsIHNjaGVtYSk7XG4gICAgICAgICAgcHJvcGVydHkuZW51bSA9IFsnTm9uZScsICdDbGllbnRJUCddO1xuICAgICAgICAgIHByb3BlcnR5LmRlZmF1bHQgPSAnTm9uZSc7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgXG4gICAgICBpZiAoXy5lbmRzV2l0aChuYW1lLCBcIlNlcnZpY2VcIikpIHtcbiAgICAgICAgc2NoZW1hLmNvbnRyb2xzID0gdW5kZWZpbmVkO1xuICAgICAgICBzY2hlbWEudGFicyA9IHtcbiAgICAgICAgICAnQmFzaWMgSW5mb3JtYXRpb24nOiBbJ21ldGFkYXRhJ10sXG4gICAgICAgICAgJ0RldGFpbHMnOiBbJyonXVxuICAgICAgICB9XG4gICAgICAgIGxvZy5kZWJ1ZyhcIk5hbWU6IFwiLCBuYW1lLCBcIiBTY2hlbWE6IFwiLCBzY2hlbWEpO1xuICAgICAgfVxuICAgICBcbiAgICB9KTtcbiAgICBcbiAgICBcbiAgICBzY2hlbWFzLmFkZFNjaGVtYSgna3ViZXJuZXRlcycsIDxhbnk+IHNjaGVtYSk7XG4gICAgLy8gbm93IGxldHMgaXRlcmF0ZSBhbmQgYWRkIGFsbCB0aGUgZGVmaW5pdGlvbnMgdG9vXG4gICAgYW5ndWxhci5mb3JFYWNoKHNjaGVtYS5kZWZpbml0aW9ucywgKGRlZmluaXRpb24sIHR5cGVOYW1lKSA9PiB7XG4gICAgICAvL3NjaGVtYXMuYWRkU2NoZW1hKHR5cGVOYW1lLCBkZWZpbml0aW9uKTtcbiAgICAgIHNjaGVtYXMuYWRkU2NoZW1hKFwiIy9kZWZpbml0aW9ucy9cIiArIHR5cGVOYW1lLCBkZWZpbml0aW9uKTtcbiAgICB9KTtcbiAgICByZXR1cm4gc2NoZW1hO1xuICB9XSk7XG5cblxuICBcbn0iLCIvLy8gPHJlZmVyZW5jZSBwYXRoPVwia3ViZXJuZXRlc1BsdWdpbi50c1wiLz5cblxubW9kdWxlIEt1YmVybmV0ZXMge1xuXG4gIC8vIGZhY2FkZSB0aGlzIHRvIHRoZSB3YXRjaGVyIHNlcnZpY2VcbiAgY2xhc3MgS3ViZXJuZXRlc1N0YXRlSW1wbCBpbXBsZW1lbnRzIEt1YmVybmV0ZXNTdGF0ZSB7XG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSB3YXRjaGVyOldhdGNoZXJTZXJ2aWNlKSB7XG4gICAgfVxuICAgIGdldCBuYW1lc3BhY2VzKCk6QXJyYXk8c3RyaW5nPiB7XG4gICAgICByZXR1cm4gXy5tYXAodGhpcy53YXRjaGVyLmdldE9iamVjdHMoV2F0Y2hUeXBlcy5OQU1FU1BBQ0VTKSwgKG5hbWVzcGFjZSkgPT4ge1xuICAgICAgICByZXR1cm4gbmFtZXNwYWNlLm1ldGFkYXRhLm5hbWU7XG4gICAgICB9KTtcbiAgICB9XG4gICAgZ2V0IHNlbGVjdGVkTmFtZXNwYWNlKCk6c3RyaW5nIHtcbiAgICAgIHJldHVybiB0aGlzLndhdGNoZXIuZ2V0TmFtZXNwYWNlKCk7XG4gICAgfVxuICAgIHNldCBzZWxlY3RlZE5hbWVzcGFjZShuYW1lc3BhY2U6c3RyaW5nKSB7XG4gICAgICB0aGlzLndhdGNoZXIuc2V0TmFtZXNwYWNlKG5hbWVzcGFjZSk7XG4gICAgfVxuICB9XG5cbiAgX21vZHVsZS5mYWN0b3J5KCdLdWJlcm5ldGVzU3RhdGUnLCBbJ1dhdGNoZXJTZXJ2aWNlJywgKHdhdGNoZXI6V2F0Y2hlclNlcnZpY2UpID0+IHtcbiAgICByZXR1cm4gbmV3IEt1YmVybmV0ZXNTdGF0ZUltcGwod2F0Y2hlcik7XG4gIH1dKTtcblxuICAvLyBUT0RPIHRoaXMgZG9lc24ndCBuZWVkIHRvIGJlIGEgc2VydmljZSByZWFsbHlcbiAgX21vZHVsZS5mYWN0b3J5KCdLdWJlcm5ldGVzQXBpVVJMJywgKCkgPT4ga3ViZXJuZXRlc0FwaVVybCgpKTtcblxuICAvLyBUT0RPIHdlJ2xsIGdldCByaWQgb2YgdGhpcy4uLlxuICBfbW9kdWxlLmZhY3RvcnkoJ0t1YmVybmV0ZXNWZXJzaW9uJywgWygpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgcXVlcnk6ICgpID0+IG51bGxcbiAgICB9XG4gIH1dKTtcblxuICAvLyBUT0RPIGxldCdzIG1vdmUgdGhlc2UgaW50byBLdWJlcm5ldGVzTW9kZWwgc28gY29udHJvbGxlcnMgZG9uJ3QgaGF2ZSB0byBpbmplY3QgdGhlbSBzZXBhcmF0ZWx5XG4gIF9tb2R1bGUuZmFjdG9yeSgnS3ViZXJuZXRlc1BvZHMnLCBbJ0t1YmVybmV0ZXNNb2RlbCcsIChLdWJlcm5ldGVzTW9kZWwpID0+IHtcbiAgICByZXR1cm4gS3ViZXJuZXRlc01vZGVsWydwb2RzUmVzb3VyY2UnXTtcbiAgfV0pO1xuXG4gIF9tb2R1bGUuZmFjdG9yeSgnS3ViZXJuZXRlc1JlcGxpY2F0aW9uQ29udHJvbGxlcnMnLCBbJ0t1YmVybmV0ZXNNb2RlbCcsIChLdWJlcm5ldGVzTW9kZWwpID0+IHtcbiAgICByZXR1cm4gS3ViZXJuZXRlc01vZGVsWydyZXBsaWNhdGlvbmNvbnRyb2xsZXJzUmVzb3VyY2UnXTtcbiAgfV0pO1xuXG4gIF9tb2R1bGUuZmFjdG9yeSgnS3ViZXJuZXRlc1NlcnZpY2VzJywgWydLdWJlcm5ldGVzTW9kZWwnLCAoS3ViZXJuZXRlc01vZGVsKSA9PiB7XG4gICAgcmV0dXJuIEt1YmVybmV0ZXNNb2RlbFsnc2VydmljZXNSZXNvdXJjZSddO1xuICB9XSk7XG5cbiAgX21vZHVsZS5mYWN0b3J5KCdLdWJlcm5ldGVzQnVpbGRzJywgWydyZXN0bW9kJywgKHJlc3Rtb2QpID0+IHtcbiAgICByZXR1cm4gcmVzdG1vZC5tb2RlbChidWlsZENvbmZpZ3NSZXN0VVJMKCkpO1xuICB9XSk7XG5cbn1cbiIsIi8vLyA8cmVmZXJlbmNlIHBhdGg9XCIuLi8uLi9pbmNsdWRlcy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJrdWJlcm5ldGVzSGVscGVycy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJrdWJlcm5ldGVzUGx1Z2luLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cImt1YmVybmV0ZXNNb2RlbC50c1wiLz5cbm1vZHVsZSBLdWJlcm5ldGVzIHtcblxuICBleHBvcnQgdmFyIEZpbGVEcm9wQ29udHJvbGxlciA9IGNvbnRyb2xsZXIoXCJGaWxlRHJvcENvbnRyb2xsZXJcIiwgW1wiJHNjb3BlXCIsIFwiS3ViZXJuZXRlc01vZGVsXCIsIFwiRmlsZVVwbG9hZGVyXCIsICckaHR0cCcsICgkc2NvcGUsIG1vZGVsOkt1YmVybmV0ZXNNb2RlbFNlcnZpY2UsIEZpbGVVcGxvYWRlciwgJGh0dHA6bmcuSUh0dHBTZXJ2aWNlKSA9PiB7XG5cbiAgICAgIHZhciB1cGxvYWRlciA9ICRzY29wZS51cGxvYWRlciA9IDxGaWxlVXBsb2FkLkZpbGVVcGxvYWRlcj4gbmV3IEZpbGVVcGxvYWRlcig8RmlsZVVwbG9hZC5JT3B0aW9ucz57XG4gICAgICAgIGF1dG9VcGxvYWQ6IGZhbHNlLFxuICAgICAgICByZW1vdmVBZnRlclVwbG9hZDogdHJ1ZSxcbiAgICAgICAgdXJsOiBrdWJlcm5ldGVzQXBpVXJsKClcbiAgICAgIH0pO1xuXG4gICAgICAkc2NvcGUudXBsb2FkZXIub25BZnRlckFkZGluZ0ZpbGUgPSAoZmlsZSkgPT4ge1xuICAgICAgICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICAgICAgcmVhZGVyLm9ubG9hZCA9ICgpID0+IHtcbiAgICAgICAgICBpZiAocmVhZGVyLnJlYWR5U3RhdGUgPT09IDIpIHtcbiAgICAgICAgICAgIGxvZy5kZWJ1ZyhcIkZpbGUgYWRkZWQ6IFwiLCBmaWxlKTsgICAgICAgIFxuICAgICAgICAgICAgdmFyIGpzb24gPSByZWFkZXIucmVzdWx0O1xuICAgICAgICAgICAgdmFyIG9iaiA9IG51bGw7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBvYmogPSBhbmd1bGFyLmZyb21Kc29uKGpzb24pO1xuICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgIGxvZy5kZWJ1ZyhcIkZhaWxlZCB0byByZWFkIGRyb3BwZWQgZmlsZSBcIiwgZmlsZS5fZmlsZS5uYW1lLCBcIjogXCIsIGVycik7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxvZy5kZWJ1ZyhcIkRyb3BwZWQgb2JqZWN0OiBcIiwgb2JqKTtcbiAgICAgICAgICAgIHVwZGF0ZU9yQ3JlYXRlT2JqZWN0KG9iaiwgbW9kZWwpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZWFkZXIucmVhZEFzVGV4dChmaWxlLl9maWxlKTtcbiAgICAgIH07XG5cbiAgICAgICRzY29wZS51cGxvYWRlci5vbkJlZm9yZVVwbG9hZEl0ZW0gPSAoaXRlbSkgPT4ge1xuICAgICAgICBsb2cuZGVidWcoXCJVcGxvYWRpbmc6IFwiLCBpdGVtKTtcbiAgICAgICAgLy9Db3JlLm5vdGlmaWNhdGlvbignaW5mbycsICdVcGxvYWRpbmcgJyArIGl0ZW0pO1xuICAgICAgfTtcblxuICAgICAgJHNjb3BlLnVwbG9hZGVyLm9uU3VjY2Vzc0l0ZW0gPSAoaXRlbTpGaWxlVXBsb2FkLklGaWxlSXRlbSkgPT4ge1xuICAgICAgICBsb2cuZGVidWcoXCJvblN1Y2Nlc3NJdGVtOiBcIiwgaXRlbSk7XG4gICAgICB9O1xuXG4gICAgICAkc2NvcGUudXBsb2FkZXIub25FcnJvckl0ZW0gPSAoaXRlbSwgcmVzcG9uc2UsIHN0YXR1cykgPT4ge1xuICAgICAgICBsb2cuZGVidWcoXCJGYWlsZWQgdG8gYXBwbHksIHJlc3BvbnNlOiBcIiwgcmVzcG9uc2UsIFwiIHN0YXR1czogXCIsIHN0YXR1cyk7XG4gICAgICB9XG5cbiAgfV0pO1xuXHRcblx0ZXhwb3J0IHZhciBOYW1lc3BhY2VDb250cm9sbGVyID0gY29udHJvbGxlcignTmFtZXNwYWNlQ29udHJvbGxlcicsIFsnJHNjb3BlJywgJ1dhdGNoZXJTZXJ2aWNlJywgKCRzY29wZSwgd2F0Y2hlcjpXYXRjaGVyU2VydmljZSkgPT4ge1xuXHRcdCRzY29wZS5uYW1lc3BhY2VzID0gd2F0Y2hlci5nZXRPYmplY3RzKCduYW1lc3BhY2VzJyk7XG5cdFx0JHNjb3BlLiR3YXRjaENvbGxlY3Rpb24oJ25hbWVzcGFjZXMnLCAobmV3VmFsdWUsIG9sZFZhbHVlKSA9PiB7XG5cdFx0XHRpZiAobmV3VmFsdWUgIT09IG9sZFZhbHVlKSB7XG5cdFx0XHRcdCRzY29wZS5uYW1lc3BhY2UgPSB3YXRjaGVyLmdldE5hbWVzcGFjZSgpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHRcdCRzY29wZS4kd2F0Y2goJ25hbWVzcGFjZScsIChuZXdWYWx1ZSwgb2xkVmFsdWUpID0+IHtcblx0XHRcdGlmIChuZXdWYWx1ZSAhPT0gb2xkVmFsdWUpIHtcblx0XHRcdFx0aWYgKG5ld1ZhbHVlICE9PSBvbGRWYWx1ZSkge1xuXHRcdFx0XHRcdHdhdGNoZXIuc2V0TmFtZXNwYWNlKG5ld1ZhbHVlKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XSk7XG5cbiAgZXhwb3J0IHZhciBUb3BMZXZlbCA9IGNvbnRyb2xsZXIoXCJUb3BMZXZlbFwiLCBbXCIkc2NvcGVcIiwgXCJLdWJlcm5ldGVzVmVyc2lvblwiLCBcIkt1YmVybmV0ZXNTdGF0ZVwiLCAoJHNjb3BlLCBLdWJlcm5ldGVzVmVyc2lvbjpuZy5yZXNvdXJjZS5JUmVzb3VyY2VDbGFzcywgS3ViZXJuZXRlc1N0YXRlKSA9PiB7XG5cbiAgICAkc2NvcGUudmVyc2lvbiA9IHVuZGVmaW5lZDtcblxuICAgICRzY29wZS5zaG93QXBwVmlldyA9IGlzQXBwVmlldygpO1xuXG4gICAgJHNjb3BlLmlzQWN0aXZlID0gKGhyZWYpID0+IHtcbiAgICAgIHJldHVybiBpc0xpbmtBY3RpdmUoaHJlZik7XG4gICAgfTtcblxuICAgICRzY29wZS5rdWJlcm5ldGVzID0gS3ViZXJuZXRlc1N0YXRlO1xuXG4gICAgS3ViZXJuZXRlc1ZlcnNpb24ucXVlcnkoKHJlc3BvbnNlKSA9PiB7XG4gICAgICAkc2NvcGUudmVyc2lvbiA9IHJlc3BvbnNlO1xuICAgIH0pO1xuXG4gIH1dKTtcblxufVxuIiwiLy8vIDxyZWZlcmVuY2UgcGF0aD1cImt1YmVybmV0ZXNQbHVnaW4udHNcIi8+XG5tb2R1bGUgS3ViZXJuZXRlcyB7XG5cdFxuXHRleHBvcnQgdmFyIE5hbWVzcGFjZUNvbnRyb2xsZXIgPSBjb250cm9sbGVyKFwiTmFtZXNwYWNlQ29udHJvbGxlclwiLCBbXCIkc2NvcGVcIiwgXCJXYXRjaGVyU2VydmljZVwiLCAoJHNjb3BlLCB3YXRjaGVyOldhdGNoZXJTZXJ2aWNlKSA9PiB7XG5cdFx0JHNjb3BlLndhdGNoZXIgPSB3YXRjaGVyO1xuXHRcdCRzY29wZS5uYW1lc3BhY2VPYmplY3RzID0gd2F0Y2hlci5nZXRPYmplY3RzKCduYW1lc3BhY2VzJyk7XG5cdFx0JHNjb3BlLm5hbWVzcGFjZSA9IHdhdGNoZXIuZ2V0TmFtZXNwYWNlKCk7XG5cdFx0JHNjb3BlLm5hbWVzcGFjZXMgPSBbXTtcblx0XHQkc2NvcGUuJHdhdGNoKCduYW1lc3BhY2UnLCAobmV3VmFsdWUsIG9sZFZhbHVlKSA9PiB7XG5cdFx0XHRpZiAobmV3VmFsdWUgIT09IG9sZFZhbHVlKSB7XG5cdFx0XHRcdHdhdGNoZXIuc2V0TmFtZXNwYWNlKG5ld1ZhbHVlKTtcblx0XHRcdH1cblx0XHR9KTtcblx0XHQkc2NvcGUuJHdhdGNoKCd3YXRjaGVyLmdldE5hbWVzcGFjZSgpJywgKG5ld1ZhbHVlLCBvbGRWYWx1ZSkgPT4ge1xuXHRcdFx0aWYgKG5ld1ZhbHVlICE9PSBvbGRWYWx1ZSkge1xuXHRcdFx0XHQkc2NvcGUubmFtZXNwYWNlID0gbmV3VmFsdWU7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdFx0JHNjb3BlLiR3YXRjaENvbGxlY3Rpb24oJ25hbWVzcGFjZU9iamVjdHMnLCAobmFtZXNwYWNlT2JqZWN0cykgPT4ge1xuXHRcdFx0JHNjb3BlLm5hbWVzcGFjZXMgPSBfLm1hcChuYW1lc3BhY2VPYmplY3RzLCAobmFtZXNwYWNlOmFueSkgPT4gbmFtZXNwYWNlLm1ldGFkYXRhLm5hbWUpO1xuXHRcdH0pXHRcdFxuXHR9XSk7XG5cdFxufSIsIi8vLyA8cmVmZXJlbmNlIHBhdGg9XCIuLi8uLi9pbmNsdWRlcy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJrdWJlcm5ldGVzSGVscGVycy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJrdWJlcm5ldGVzUGx1Z2luLnRzXCIvPlxuXG5tb2R1bGUgS3ViZXJuZXRlcyB7XG5cbiAgdmFyIE92ZXJ2aWV3RGlyZWN0aXZlID0gX21vZHVsZS5kaXJlY3RpdmUoXCJrdWJlcm5ldGVzT3ZlcnZpZXdcIiwgW1wiJHRlbXBsYXRlQ2FjaGVcIiwgXCIkY29tcGlsZVwiLCBcIiRpbnRlcnBvbGF0ZVwiLCBcIiR0aW1lb3V0XCIsIFwiJHdpbmRvd1wiLCBcIkt1YmVybmV0ZXNTdGF0ZVwiLCAnS3ViZXJuZXRlc01vZGVsJywgKCR0ZW1wbGF0ZUNhY2hlOm5nLklUZW1wbGF0ZUNhY2hlU2VydmljZSwgJGNvbXBpbGU6bmcuSUNvbXBpbGVTZXJ2aWNlLCAkaW50ZXJwb2xhdGU6bmcuSUludGVycG9sYXRlU2VydmljZSwgJHRpbWVvdXQ6bmcuSVRpbWVvdXRTZXJ2aWNlLCAkd2luZG93Om5nLklXaW5kb3dTZXJ2aWNlLCBLdWJlcm5ldGVzU3RhdGUsIEt1YmVybmV0ZXNNb2RlbCkgPT4ge1xuXG4gICAgdmFyIGxvZyA9IExvZ2dlci5nZXQoJ2t1YmVybmV0ZXMtb3ZlcnZpZXcnKTtcbiAgICB2YXIgbW9kZWwgPSBLdWJlcm5ldGVzTW9kZWw7XG4gICAgdmFyIHN0YXRlID0gS3ViZXJuZXRlc1N0YXRlO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHJlc3RyaWN0OiAnRScsXG4gICAgICByZXBsYWNlOiB0cnVlLFxuICAgICAgbGluazogKHNjb3BlLCBlbGVtZW50LCBhdHRyKSA9PiB7XG4gICAgICAgIHNjb3BlLm1vZGVsID0gbW9kZWw7XG4gICAgICAgIGVsZW1lbnQuY3NzKHt2aXNpYmlsaXR5OiAnaGlkZGVuJ30pO1xuICAgICAgICBzY29wZS5nZXRFbnRpdHkgPSAodHlwZTpzdHJpbmcsIGtleTpzdHJpbmcpID0+IHtcbiAgICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ2hvc3QnOlxuICAgICAgICAgICAgICByZXR1cm4gbW9kZWwucG9kc0J5SG9zdFtrZXldO1xuICAgICAgICAgICAgY2FzZSAncG9kJzpcbiAgICAgICAgICAgICAgcmV0dXJuIG1vZGVsLnBvZHNCeUtleVtrZXldO1xuICAgICAgICAgICAgY2FzZSAncmVwbGljYXRpb25Db250cm9sbGVyJzpcbiAgICAgICAgICAgICAgcmV0dXJuIG1vZGVsLnJlcGxpY2F0aW9uQ29udHJvbGxlcnNCeUtleVtrZXldO1xuICAgICAgICAgICAgY2FzZSAnc2VydmljZSc6XG4gICAgICAgICAgICAgIHJldHVybiBtb2RlbC5zZXJ2aWNlc0J5S2V5W2tleV07XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICBzY29wZS5rdWJlcm5ldGVzID0gc3RhdGU7XG5cbiAgICAgICAgc2NvcGUuY3VzdG9taXplRGVmYXVsdE9wdGlvbnMgPSAob3B0aW9ucykgPT4ge1xuICAgICAgICAgIG9wdGlvbnMuRW5kcG9pbnQgPSBbJ0JsYW5rJywge31dO1xuICAgICAgICB9O1xuICAgICAgICBzY29wZS5tb3VzZUVudGVyID0gKCRldmVudCkgPT4ge1xuICAgICAgICAgIGlmIChzY29wZS5qc1BsdW1iKSB7XG4gICAgICAgICAgICBhbmd1bGFyLmVsZW1lbnQoJGV2ZW50LmN1cnJlbnRUYXJnZXQpLmFkZENsYXNzKFwiaG92ZXJlZFwiKTtcbiAgICAgICAgICAgIHNjb3BlLmpzUGx1bWIuZ2V0RW5kcG9pbnRzKCRldmVudC5jdXJyZW50VGFyZ2V0KS5mb3JFYWNoKChlbmRwb2ludCkgPT4ge1xuICAgICAgICAgICAgICBlbmRwb2ludC5jb25uZWN0aW9ucy5mb3JFYWNoKChjb25uZWN0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFjb25uZWN0aW9uLmlzSG92ZXIoKSkge1xuICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi5zZXRIb3Zlcih0cnVlKTtcbiAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24uZW5kcG9pbnRzLmZvckVhY2goKGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgc2NvcGUubW91c2VFbnRlcih7XG4gICAgICAgICAgICAgICAgICAgICAgY3VycmVudFRhcmdldDogZS5lbGVtZW50XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBzY29wZS5tb3VzZUxlYXZlID0gKCRldmVudCkgPT4ge1xuICAgICAgICAgIGlmIChzY29wZS5qc1BsdW1iKSB7XG4gICAgICAgICAgICBhbmd1bGFyLmVsZW1lbnQoJGV2ZW50LmN1cnJlbnRUYXJnZXQpLnJlbW92ZUNsYXNzKFwiaG92ZXJlZFwiKTtcbiAgICAgICAgICAgIHNjb3BlLmpzUGx1bWIuZ2V0RW5kcG9pbnRzKCRldmVudC5jdXJyZW50VGFyZ2V0KS5mb3JFYWNoKChlbmRwb2ludCkgPT4ge1xuICAgICAgICAgICAgICBlbmRwb2ludC5jb25uZWN0aW9ucy5mb3JFYWNoKChjb25uZWN0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGNvbm5lY3Rpb24uaXNIb3ZlcigpKSB7XG4gICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLnNldEhvdmVyKGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24uZW5kcG9pbnRzLmZvckVhY2goKGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgc2NvcGUubW91c2VMZWF2ZSh7XG4gICAgICAgICAgICAgICAgICAgICAgY3VycmVudFRhcmdldDogZS5lbGVtZW50XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvKlxuICAgICAgICBzY29wZS5jdXN0b21pemVFbmRwb2ludE9wdGlvbnMgPSAoanNQbHVtYiwgbm9kZSwgb3B0aW9ucykgPT4ge1xuICAgICAgICAgIHZhciB0eXBlID0gbm9kZS5lbC5hdHRyKCdkYXRhLXR5cGUnKTtcbiAgICAgICAgICAvLyBsb2cuZGVidWcoXCJlbmRwb2ludCB0eXBlOiBcIiwgdHlwZSk7XG4gICAgICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgICAgICBjYXNlICdwb2QnOlxuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3NlcnZpY2UnOlxuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3JlcGxpY2F0aW9uQ29udHJvbGxlcic6XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgKi9cbiAgICAgICAgc2NvcGUuY3VzdG9taXplQ29ubmVjdGlvbk9wdGlvbnMgPSAoanNQbHVtYiwgZWRnZSwgcGFyYW1zLCBvcHRpb25zKSA9PiB7XG4gICAgICAgICAgdmFyIHR5cGUgPSBlZGdlLnNvdXJjZS5lbC5hdHRyKCdkYXRhLXR5cGUnKTtcbiAgICAgICAgICBvcHRpb25zLmNvbm5lY3RvciA9IFsgXCJCZXppZXJcIiwgeyBjdXJ2aW5lc3M6IDUwLCBzdHViOiAyNSwgYWx3YXlzUmVzcGVjdFN0dWJzOiB0cnVlIH0gXTtcbiAgICAgICAgICBwYXJhbXMucGFpbnRTdHlsZSA9IHtcbiAgICAgICAgICAgIGxpbmVXaWR0aDogMixcbiAgICAgICAgICAgIHN0cm9rZVN0eWxlOiAnIzU1NTVjYydcbiAgICAgICAgICB9O1xuICAgICAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICAgICAgY2FzZSAncG9kJzpcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdzZXJ2aWNlJzpcbiAgICAgICAgICAgICAgcGFyYW1zLmFuY2hvcnMgPSBbXG4gICAgICAgICAgICAgICAgWyBcIkNvbnRpbnVvdXNcIiwgeyBmYWNlczogW1wicmlnaHRcIl0gfSBdLFxuICAgICAgICAgICAgICAgIFsgXCJDb250aW51b3VzXCIsIHsgZmFjZXM6IFtcImxlZnRcIl0gfSBdIFxuICAgICAgICAgICAgICAgIC8qXG4gICAgICAgICAgICAgICAgWzEsIDAuNSwgMCwgMCwgLTEwLCAtOTBdLFxuICAgICAgICAgICAgICAgIFswLCAwLjUsIDAsIDAsIC0xMCwgLTkwXVxuICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAncmVwbGljYXRpb25Db250cm9sbGVyJzpcbiAgICAgICAgICAgICAgcGFyYW1zLmFuY2hvcnMgPSBbXG4gICAgICAgICAgICAgICAgWyBcIlBlcmltZXRlclwiLCB7IHNoYXBlOiBcIkNpcmNsZVwiIH0gXSxcbiAgICAgICAgICAgICAgICBbIFwiQ29udGludW91c1wiLCB7IGZhY2VzOiBbXCJyaWdodFwiXSB9IF1cbiAgICAgICAgICAgICAgICAvKlxuICAgICAgICAgICAgICAgIFswLCAwLjUsIDAsIDAsIC0xMCwgLTkwXSxcbiAgICAgICAgICAgICAgICBbMSwgMC41LCAwLCAwLCAtMTAsIC05MF1cbiAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgLy9sb2cuZGVidWcoXCJjb25uZWN0aW9uIHNvdXJjZSB0eXBlOiBcIiwgdHlwZSk7XG4gICAgICAgICAgcmV0dXJuIG9wdGlvbnM7XG4gICAgICAgIH07XG4gICAgICAgIGZ1bmN0aW9uIGludGVycG9sYXRlKHRlbXBsYXRlLCBjb25maWcpIHtcbiAgICAgICAgICByZXR1cm4gJGludGVycG9sYXRlKHRlbXBsYXRlKShjb25maWcpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGNyZWF0ZUVsZW1lbnQodGVtcGxhdGUsIHRoaW5nTmFtZSwgdGhpbmcpIHtcbiAgICAgICAgICB2YXIgY29uZmlnID0ge307XG4gICAgICAgICAgY29uZmlnW3RoaW5nTmFtZV0gPSB0aGluZztcbiAgICAgICAgICByZXR1cm4gaW50ZXJwb2xhdGUodGVtcGxhdGUsIGNvbmZpZyk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gY3JlYXRlRWxlbWVudHModGVtcGxhdGUsIHRoaW5nTmFtZSwgdGhpbmdzKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaW5ncy5tYXAoKHRoaW5nKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gY3JlYXRlRWxlbWVudCh0ZW1wbGF0ZSwgdGhpbmdOYW1lLCB0aGluZyk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gYXBwZW5kTmV3RWxlbWVudHMocGFyZW50RWwsIHRlbXBsYXRlLCB0aGluZ05hbWUsIHRoaW5ncykge1xuICAgICAgICAgIHRoaW5ncy5mb3JFYWNoKCh0aGluZykgPT4ge1xuICAgICAgICAgICAgdmFyIGtleSA9IHRoaW5nWydfa2V5J10gfHwgdGhpbmdbJ2VsZW1lbnRJZCddIHx8IHRoaW5nWydpZCddXG4gICAgICAgICAgICB2YXIgZXhpc3RpbmcgPSBwYXJlbnRFbC5maW5kKFwiI1wiICsga2V5ICk7XG4gICAgICAgICAgICBpZiAoIWV4aXN0aW5nLmxlbmd0aCkge1xuICAgICAgICAgICAgICBsb2cuZGVidWcoXCJleGlzdGluZzogXCIsIGV4aXN0aW5nLCBcIiBrZXk6IFwiLCBrZXkpO1xuICAgICAgICAgICAgICBwYXJlbnRFbC5hcHBlbmQoJGNvbXBpbGUoY3JlYXRlRWxlbWVudCh0ZW1wbGF0ZSwgdGhpbmdOYW1lLCB0aGluZykpKHNjb3BlKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gbmFtZXNwYWNlRmlsdGVyKGl0ZW0pIHtcbiAgICAgICAgICAgIHJldHVybiBnZXROYW1lc3BhY2UoaXRlbSkgPT09IHNjb3BlLmt1YmVybmV0ZXMuc2VsZWN0ZWROYW1lc3BhY2U7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gZmlyc3REcmF3KCkge1xuICAgICAgICAgIGxvZy5kZWJ1ZyhcIkZpcnN0IGRyYXdcIik7XG4gICAgICAgICAgZWxlbWVudC5lbXB0eSgpO1xuICAgICAgICAgIHZhciBzZXJ2aWNlcyA9IG1vZGVsLnNlcnZpY2VzO1xuICAgICAgICAgIHZhciByZXBsaWNhdGlvbkNvbnRyb2xsZXJzID0gbW9kZWwucmVwbGljYXRpb25Db250cm9sbGVycztcbiAgICAgICAgICB2YXIgcG9kcyA9IG1vZGVsLnBvZHM7XG4gICAgICAgICAgdmFyIGhvc3RzID0gbW9kZWwuaG9zdHM7XG4gICAgICAgICAgLy8gbG9nLmRlYnVnKFwiaG9zdHM6IFwiLCBtb2RlbC5ob3N0cyk7XG4gICAgICAgICAgdmFyIHBhcmVudEVsID0gYW5ndWxhci5lbGVtZW50KCR0ZW1wbGF0ZUNhY2hlLmdldChcIm92ZXJ2aWV3VGVtcGxhdGUuaHRtbFwiKSk7XG4gICAgICAgICAgdmFyIHNlcnZpY2VzRWwgPSBwYXJlbnRFbC5maW5kKFwiLnNlcnZpY2VzXCIpO1xuICAgICAgICAgIHZhciBob3N0c0VsID0gcGFyZW50RWwuZmluZChcIi5ob3N0c1wiKTtcbiAgICAgICAgICB2YXIgcmVwbGljYXRpb25Db250cm9sbGVyc0VsID0gcGFyZW50RWwuZmluZChcIi5yZXBsaWNhdGlvbkNvbnRyb2xsZXJzXCIpO1xuXG4gICAgICAgICAgc2VydmljZXNFbC5hcHBlbmQoY3JlYXRlRWxlbWVudHMoJHRlbXBsYXRlQ2FjaGUuZ2V0KFwic2VydmljZVRlbXBsYXRlLmh0bWxcIiksICdzZXJ2aWNlJywgc2VydmljZXMuZmlsdGVyKG5hbWVzcGFjZUZpbHRlcikpKTtcbiAgICAgICAgICByZXBsaWNhdGlvbkNvbnRyb2xsZXJzRWwuYXBwZW5kKGNyZWF0ZUVsZW1lbnRzKCR0ZW1wbGF0ZUNhY2hlLmdldChcInJlcGxpY2F0aW9uQ29udHJvbGxlclRlbXBsYXRlLmh0bWxcIiksICdyZXBsaWNhdGlvbkNvbnRyb2xsZXInLCByZXBsaWNhdGlvbkNvbnRyb2xsZXJzLmZpbHRlcihuYW1lc3BhY2VGaWx0ZXIpKSk7XG5cbiAgICAgICAgICBob3N0cy5mb3JFYWNoKChob3N0KSA9PiB7XG4gICAgICAgICAgICB2YXIgaG9zdEVsID0gYW5ndWxhci5lbGVtZW50KGNyZWF0ZUVsZW1lbnQoJHRlbXBsYXRlQ2FjaGUuZ2V0KFwib3ZlcnZpZXdIb3N0VGVtcGxhdGUuaHRtbFwiKSwgJ2hvc3QnLCBob3N0KSk7XG4gICAgICAgICAgICB2YXIgcG9kQ29udGFpbmVyID0gYW5ndWxhci5lbGVtZW50KGhvc3RFbC5maW5kKCcucG9kLWNvbnRhaW5lcicpKTtcbiAgICAgICAgICAgIHBvZENvbnRhaW5lci5hcHBlbmQoY3JlYXRlRWxlbWVudHMoJHRlbXBsYXRlQ2FjaGUuZ2V0KFwicG9kVGVtcGxhdGUuaHRtbFwiKSwgXCJwb2RcIiwgaG9zdC5wb2RzKSk7XG4gICAgICAgICAgICBob3N0c0VsLmFwcGVuZChob3N0RWwpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIC8vcGFyZW50RWwuYXBwZW5kKGNyZWF0ZUVsZW1lbnRzKCR0ZW1wbGF0ZUNhY2hlLmdldChcInBvZFRlbXBsYXRlLmh0bWxcIiksICdwb2QnLCBwb2RzKSk7XG4gICAgICAgICAgZWxlbWVudC5hcHBlbmQoJGNvbXBpbGUocGFyZW50RWwpKHNjb3BlKSk7XG4gICAgICAgICAgJHRpbWVvdXQoKCkgPT4geyBlbGVtZW50LmNzcyh7dmlzaWJpbGl0eTogJ3Zpc2libGUnfSk7IH0sIDI1MCk7XG4gICAgICAgIH1cblxuICAgICAgICBmdW5jdGlvbiB1cGRhdGUoKSB7XG4gICAgICAgICAgc2NvcGUuJGVtaXQoJ2pzcGx1bWJEb1doaWxlU3VzcGVuZGVkJywgKCkgPT4ge1xuICAgICAgICAgICAgbG9nLmRlYnVnKFwiVXBkYXRlXCIpO1xuICAgICAgICAgICAgdmFyIHNlcnZpY2VzID0gbW9kZWwuc2VydmljZXM7XG4gICAgICAgICAgICB2YXIgcmVwbGljYXRpb25Db250cm9sbGVycyA9IG1vZGVsLnJlcGxpY2F0aW9uQ29udHJvbGxlcnM7XG4gICAgICAgICAgICB2YXIgcG9kcyA9IG1vZGVsLnBvZHM7XG4gICAgICAgICAgICB2YXIgaG9zdHMgPSBtb2RlbC5ob3N0cztcbiAgICAgICAgICAgIHZhciBwYXJlbnRFbCA9IGVsZW1lbnQuZmluZCgnW2hhd3Rpby1qc3BsdW1iXScpO1xuICAgICAgICAgICAgdmFyIGNoaWxkcmVuID0gcGFyZW50RWwuZmluZCgnLmpzcGx1bWItbm9kZScpO1xuICAgICAgICAgICAgY2hpbGRyZW4uZWFjaCgoaW5kZXgsIGMpID0+IHtcbiAgICAgICAgICAgICAgdmFyIGNoaWxkID0gYW5ndWxhci5lbGVtZW50KGMpO1xuICAgICAgICAgICAgICB2YXIga2V5ID0gY2hpbGQuYXR0cignaWQnKTtcbiAgICAgICAgICAgICAgbG9nLmRlYnVnKCdrZXk6ICcsIGtleSk7XG4gICAgICAgICAgICAgIGlmIChDb3JlLmlzQmxhbmsoa2V5KSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB2YXIgdHlwZSA9IGNoaWxkLmF0dHIoJ2RhdGEtdHlwZScpO1xuICAgICAgICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgICAgICAgICBjYXNlICdob3N0JzpcbiAgICAgICAgICAgICAgICAgIGlmIChrZXkgaW4gbW9kZWwucG9kc0J5SG9zdCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdzZXJ2aWNlJzpcbiAgICAgICAgICAgICAgICAgIGlmIChrZXkgaW4gbW9kZWwuc2VydmljZXNCeUtleSAmJiBnZXROYW1lc3BhY2UobW9kZWwuc2VydmljZXNCeUtleVtrZXldKSA9PSBzY29wZS5rdWJlcm5ldGVzLnNlbGVjdGVkTmFtZXNwYWNlKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBzZXJ2aWNlID0gbW9kZWwuc2VydmljZXNCeUtleVtrZXldO1xuICAgICAgICAgICAgICAgICAgICBjaGlsZC5hdHRyKCdjb25uZWN0LXRvJywgc2VydmljZS5jb25uZWN0VG8pO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdwb2QnOlxuICAgICAgICAgICAgICAgICAgLypcbiAgICAgICAgICAgICAgICAgIGlmIChoYXNJZChwb2RzLCBpZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgIGlmIChrZXkgaW4gbW9kZWwucG9kc0J5S2V5KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ3JlcGxpY2F0aW9uQ29udHJvbGxlcic6XG4gICAgICAgICAgICAgICAgICBpZiAoa2V5IGluIG1vZGVsLnJlcGxpY2F0aW9uQ29udHJvbGxlcnNCeUtleSkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgcmVwbGljYXRpb25Db250cm9sbGVyID0gbW9kZWwucmVwbGljYXRpb25Db250cm9sbGVyc0J5S2V5W2tleV07XG4gICAgICAgICAgICAgICAgICAgIGNoaWxkLmF0dHIoJ2Nvbm5lY3QtdG8nLCByZXBsaWNhdGlvbkNvbnRyb2xsZXIuY29ubmVjdFRvKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgIGxvZy5kZWJ1ZyhcIklnbm9yaW5nIGVsZW1lbnQgd2l0aCB1bmtub3duIHR5cGVcIik7XG4gICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgbG9nLmRlYnVnKFwiUmVtb3Zpbmc6IFwiLCBrZXkpO1xuICAgICAgICAgICAgICBjaGlsZC5yZW1vdmUoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdmFyIHNlcnZpY2VzRWwgPSBlbGVtZW50LmZpbmQoXCIuc2VydmljZXNcIik7XG4gICAgICAgICAgICB2YXIgcmVwbGljYXRpb25Db250cm9sbGVyc0VsID0gZWxlbWVudC5maW5kKFwiLnJlcGxpY2F0aW9uQ29udHJvbGxlcnNcIik7XG4gICAgICAgICAgICB2YXIgaG9zdHNFbCA9IGVsZW1lbnQuZmluZChcIi5ob3N0c1wiKTtcblxuICAgICAgICAgICAgYXBwZW5kTmV3RWxlbWVudHMoc2VydmljZXNFbCwgJHRlbXBsYXRlQ2FjaGUuZ2V0KFwic2VydmljZVRlbXBsYXRlLmh0bWxcIiksIFwic2VydmljZVwiLCBzZXJ2aWNlcyk7XG4gICAgICAgICAgICBhcHBlbmROZXdFbGVtZW50cyhyZXBsaWNhdGlvbkNvbnRyb2xsZXJzRWwsICR0ZW1wbGF0ZUNhY2hlLmdldChcInJlcGxpY2F0aW9uQ29udHJvbGxlclRlbXBsYXRlLmh0bWxcIiksIFwicmVwbGljYXRpb25Db250cm9sbGVyXCIsIHJlcGxpY2F0aW9uQ29udHJvbGxlcnMpO1xuICAgICAgICAgICAgYXBwZW5kTmV3RWxlbWVudHMoaG9zdHNFbCwgJHRlbXBsYXRlQ2FjaGUuZ2V0KFwib3ZlcnZpZXdIb3N0VGVtcGxhdGUuaHRtbFwiKSwgXCJob3N0XCIsIGhvc3RzKTtcbiAgICAgICAgICAgIGhvc3RzLmZvckVhY2goKGhvc3QpID0+IHtcbiAgICAgICAgICAgICAgdmFyIGhvc3RFbCA9IGFuZ3VsYXIuZWxlbWVudChob3N0c0VsLmZpbmQoXCIjXCIgKyBob3N0LmVsZW1lbnRJZCkpO1xuICAgICAgICAgICAgICB2YXIgcG9kQ29udGFpbmVyID0gYW5ndWxhci5lbGVtZW50KGhvc3RFbC5maW5kKCcucG9kLWNvbnRhaW5lcicpKTtcbiAgICAgICAgICAgICAgYXBwZW5kTmV3RWxlbWVudHMocG9kQ29udGFpbmVyLCAkdGVtcGxhdGVDYWNoZS5nZXQoXCJwb2RUZW1wbGF0ZS5odG1sXCIpLCBcInBvZFwiLCBob3N0LnBvZHMpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBmdW5jdGlvbiByZWZyZXNoRHJhd2luZygpIHtcbiAgICAgICAgICBsb2cuZGVidWcoXCJSZWZyZXNoaW5nIGRyYXdpbmdcIik7XG4gICAgICAgICAgaWYgKGVsZW1lbnQuY2hpbGRyZW4oKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIGZpcnN0RHJhdygpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB1cGRhdGUoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgQ29yZS4kYXBwbHkoc2NvcGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgc2NvcGUuJG9uKCdrdWJlcm5ldGVzTW9kZWxVcGRhdGVkJywgXy5kZWJvdW5jZShyZWZyZXNoRHJhd2luZywgNTAwLCB7IHRyYWlsaW5nOiB0cnVlfSkpO1xuICAgICAgICBzZXRUaW1lb3V0KHJlZnJlc2hEcmF3aW5nLCAxMDApO1xuICAgICAgfVxuICAgIH07XG4gIH1dKTtcblxuICB2YXIgT3ZlcnZpZXdCb3hDb250cm9sbGVyID0gY29udHJvbGxlcihcIk92ZXJ2aWV3Qm94Q29udHJvbGxlclwiLCBbXCIkc2NvcGVcIiwgXCIkbG9jYXRpb25cIiwgKCRzY29wZSwgJGxvY2F0aW9uOm5nLklMb2NhdGlvblNlcnZpY2UpID0+IHtcbiAgICAkc2NvcGUudmlld0RldGFpbHMgPSAoZW50aXR5LCBwYXRoOnN0cmluZykgPT4ge1xuICAgICAgaWYgKGVudGl0eSkge1xuICAgICAgICB2YXIgbmFtZXNwYWNlID0gZ2V0TmFtZXNwYWNlKGVudGl0eSk7XG4gICAgICAgIHZhciBpZCA9IGdldE5hbWUoZW50aXR5KTtcbiAgICAgICAgJGxvY2F0aW9uLnBhdGgoVXJsSGVscGVycy5qb2luKCcva3ViZXJuZXRlcy9uYW1lc3BhY2UnLCBuYW1lc3BhY2UsIHBhdGgsIGlkKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsb2cud2FybihcIk5vIGVudGl0eSBmb3Igdmlld0RldGFpbHMhXCIpO1xuICAgICAgfVxuICAgIH1cbiAgfV0pO1xuXG4gIHZhciBzY29wZU5hbWUgPSBcIk92ZXJ2aWV3Q29udHJvbGxlclwiO1xuXG4gIHZhciBPdmVydmlld0NvbnRyb2xsZXIgPSBjb250cm9sbGVyKHNjb3BlTmFtZSwgW1wiJHNjb3BlXCIsIFwiJGxvY2F0aW9uXCIsIFwiJGh0dHBcIiwgXCIkdGltZW91dFwiLCBcIiRyb3V0ZVBhcmFtc1wiLCBcIkt1YmVybmV0ZXNNb2RlbFwiLFwiS3ViZXJuZXRlc1N0YXRlXCIsIFwiS3ViZXJuZXRlc0FwaVVSTFwiLCAoJHNjb3BlLCAkbG9jYXRpb24sICRodHRwLCAkdGltZW91dCwgJHJvdXRlUGFyYW1zLCBLdWJlcm5ldGVzTW9kZWwsIEt1YmVybmV0ZXNTdGF0ZSwgS3ViZXJuZXRlc0FwaVVSTCkgPT4ge1xuICAgICRzY29wZS5uYW1lID0gc2NvcGVOYW1lO1xuICAgICRzY29wZS5rdWJlcm5ldGVzID0gS3ViZXJuZXRlc1N0YXRlO1xuICAgICRzY29wZS5tb2RlbCA9IEt1YmVybmV0ZXNNb2RlbDtcblxuICAgIEt1YmVybmV0ZXMuaW5pdFNoYXJlZCgkc2NvcGUsICRsb2NhdGlvbiwgJGh0dHAsICR0aW1lb3V0LCAkcm91dGVQYXJhbXMsIEt1YmVybmV0ZXNNb2RlbCwgS3ViZXJuZXRlc1N0YXRlLCBLdWJlcm5ldGVzQXBpVVJMKTtcbiAgfV0pO1xuXG59XG4iLCIvLy8gPHJlZmVyZW5jZSBwYXRoPVwiLi4vLi4vaW5jbHVkZXMudHNcIi8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwia3ViZXJuZXRlc1BsdWdpbi50c1wiLz5cblxubW9kdWxlIEt1YmVybmV0ZXMge1xuXG4gIGV4cG9ydCB2YXIgUGlwZWxpbmVzQ29udHJvbGxlciA9IGNvbnRyb2xsZXIoXCJQaXBlbGluZXNDb250cm9sbGVyXCIsIFtcIiRzY29wZVwiLCBcIkt1YmVybmV0ZXNNb2RlbFwiLCBcIkt1YmVybmV0ZXNCdWlsZHNcIiwgXCJLdWJlcm5ldGVzU3RhdGVcIiwgXCIkZGlhbG9nXCIsIFwiJHdpbmRvd1wiLCBcIiR0ZW1wbGF0ZUNhY2hlXCIsIFwiJHJvdXRlUGFyYW1zXCIsIFwiJGxvY2F0aW9uXCIsIFwibG9jYWxTdG9yYWdlXCIsIFwiJGh0dHBcIiwgXCIkdGltZW91dFwiLCBcIkt1YmVybmV0ZXNBcGlVUkxcIixcbiAgICAoJHNjb3BlLCBLdWJlcm5ldGVzTW9kZWw6S3ViZXJuZXRlcy5LdWJlcm5ldGVzTW9kZWxTZXJ2aWNlLCBLdWJlcm5ldGVzQnVpbGRzLCBLdWJlcm5ldGVzU3RhdGUsICRkaWFsb2csICR3aW5kb3csICR0ZW1wbGF0ZUNhY2hlLCAkcm91dGVQYXJhbXMsICRsb2NhdGlvbjpuZy5JTG9jYXRpb25TZXJ2aWNlLCBsb2NhbFN0b3JhZ2UsICRodHRwLCAkdGltZW91dCwgS3ViZXJuZXRlc0FwaVVSTCkgPT4ge1xuXG4gICAgICAkc2NvcGUua3ViZXJuZXRlcyA9IEt1YmVybmV0ZXNTdGF0ZTtcbiAgICAgICRzY29wZS5tb2RlbCA9IEt1YmVybmV0ZXNNb2RlbDtcbiAgICAgICRzY29wZS5LdWJlcm5ldGVzQnVpbGRzID0gS3ViZXJuZXRlc0J1aWxkcztcblxuICAgICAgS3ViZXJuZXRlcy5pbml0U2hhcmVkKCRzY29wZSwgJGxvY2F0aW9uLCAkaHR0cCwgJHRpbWVvdXQsICRyb3V0ZVBhcmFtcywgS3ViZXJuZXRlc01vZGVsLCBLdWJlcm5ldGVzU3RhdGUsIEt1YmVybmV0ZXNBcGlVUkwpO1xuXG4gICAgICAvKipcbiAgICAgICAqIExldHMgdXBkYXRlIHRoZSB2YXJpb3VzIGRhdGEgdG8gam9pbiB0aGVtIHRvZ2V0aGVyIHRvIGEgcGlwZWxpbmUgbW9kZWxcbiAgICAgICAqL1xuICAgICAgZnVuY3Rpb24gdXBkYXRlRGF0YSgpIHtcbiAgICAgICAgdmFyIHBpcGVsaW5lU3RlcHMgPSB7fTtcbiAgICAgICAgaWYgKCRzY29wZS5idWlsZENvbmZpZ3MgJiYgJHNjb3BlLmJ1aWxkcyAmJiAkc2NvcGUuZGVwbG95bWVudENvbmZpZ3MpIHtcbiAgICAgICAgICBlbnJpY2hCdWlsZENvbmZpZ3MoJHNjb3BlLmJ1aWxkQ29uZmlncywgJHNjb3BlLmJ1aWxkcyk7XG4gICAgICAgICAgJHNjb3BlLmZldGNoZWQgPSB0cnVlO1xuXG4gICAgICAgICAgYW5ndWxhci5mb3JFYWNoKCRzY29wZS5idWlsZENvbmZpZ3MsIChidWlsZENvbmZpZykgPT4ge1xuICAgICAgICAgICAgdmFyIHBpcGVsaW5lS2V5ID0gY3JlYXRlUGlwZWxpbmVLZXkoYnVpbGRDb25maWcpO1xuICAgICAgICAgICAgaWYgKHBpcGVsaW5lS2V5KSB7XG4gICAgICAgICAgICAgIHBpcGVsaW5lU3RlcHNbcGlwZWxpbmVLZXldID0ge1xuICAgICAgICAgICAgICAgIGJ1aWxkQ29uZmlnOiBidWlsZENvbmZpZyxcbiAgICAgICAgICAgICAgICBidWlsZHM6IFtdLFxuICAgICAgICAgICAgICAgIHRyaWdnZXJlZEJ5OiBudWxsLFxuICAgICAgICAgICAgICAgIHRyaWdnZXJzU3RlcHM6IFtdLFxuICAgICAgICAgICAgICAgICRjbGFzczogJ3BpcGVsaW5lLWJ1aWxkJ1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgYW5ndWxhci5mb3JFYWNoKCRzY29wZS5idWlsZHMsIChidWlsZCkgPT4ge1xuICAgICAgICAgICAgdmFyIHBpcGVsaW5lS2V5ID0gY3JlYXRlUGlwZWxpbmVLZXkoYnVpbGQpO1xuICAgICAgICAgICAgaWYgKHBpcGVsaW5lS2V5KSB7XG4gICAgICAgICAgICAgIHZhciBwaXBlbGluZSA9IHBpcGVsaW5lU3RlcHNbcGlwZWxpbmVLZXldO1xuICAgICAgICAgICAgICBpZiAoIXBpcGVsaW5lKSB7XG4gICAgICAgICAgICAgICAgLy9jb25zb2xlLmxvZyhcIndhcm5pbmcgbm8gcGlwZWxpbmUgZ2VuZXJhdGVkIGZvciBidWlsZENvbmZpZyBmb3Iga2V5IFwiICsgcGlwZWxpbmVLZXkgKyBcIiBmb3IgYnVpbGQgXCIgKyBhbmd1bGFyLnRvSnNvbihidWlsZCwgdHJ1ZSkpO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwid2FybmluZyBubyBwaXBlbGluZSBnZW5lcmF0ZWQgZm9yIGJ1aWxkQ29uZmlnIGZvciBrZXkgXCIgKyBwaXBlbGluZUtleSArIFwiIGZvciBidWlsZCBcIiArIGJ1aWxkLiRuYW1lKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBwaXBlbGluZS5idWlsZHMucHVzaChidWlsZCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIC8vIFRPRE8gbm93IHdlIG5lZWQgdG8gbG9vayBhdCB0aGUgdHJpZ2dlcnMgdG8gZmlndXJlIG91dCB3aGljaCBwaXBlbGluZVN0ZXBzIHRyaWdnZXJzIGVhY2ggcGlwZWxpbmVTdGVwXG5cblxuICAgICAgICAgIC8vIG5vdyBsZXRzIGNyZWF0ZSBhbiBhcnJheSBvZiBhbGwgcGlwZWxpbmVzLCBzdGFydGluZyBmcm9tIHRoZSBmaXJzdCBrbm93biBzdGVwIHdpdGggYSBsaXN0IG9mIHRoZSBzdGVwc1xuXG4gICAgICAgICAgdmFyIHBpcGVsaW5lcyA9IFtdO1xuICAgICAgICAgIGFuZ3VsYXIuZm9yRWFjaChwaXBlbGluZVN0ZXBzLCAocGlwZWxpbmVTdGVwLCBrZXkpID0+IHtcbiAgICAgICAgICAgIGlmICghcGlwZWxpbmVTdGVwLnRyaWdnZXJlZEJ5KSB7XG4gICAgICAgICAgICAgIC8vIHdlIGFyZSBhIHJvb3Qgc3RlcC4uLi5cbiAgICAgICAgICAgICAgcGlwZWxpbmVzLnB1c2gocGlwZWxpbmVTdGVwKTtcbiAgICAgICAgICAgICAgLy8gbm93IGxldHMgYWRkIGFsbCB0aGUgc3RlcHMgZm9yIHRoaXMga2V5Li4uXG4gICAgICAgICAgICAgIHBpcGVsaW5lU3RlcC50cmlnZ2Vyc1N0ZXBzLnB1c2gocGlwZWxpbmVTdGVwKTtcbiAgICAgICAgICAgICAgYW5ndWxhci5mb3JFYWNoKHBpcGVsaW5lU3RlcHMsIChzdGVwKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHN0ZXAudHJpZ2dlcmVkQnkgPT09IGtleSkge1xuICAgICAgICAgICAgICAgICAgcGlwZWxpbmVTdGVwLnRyaWdnZXJzU3RlcHMucHVzaChzdGVwKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgYW5ndWxhci5mb3JFYWNoKCRzY29wZS5kZXBsb3ltZW50Q29uZmlncywgKGRlcGxveW1lbnRDb25maWcpID0+IHtcbiAgICAgICAgICAgIGlmICghZGVwbG95bWVudENvbmZpZy5raW5kKSB7XG4gICAgICAgICAgICAgIGRlcGxveW1lbnRDb25maWcua2luZCA9IFwiRGVwbG95bWVudENvbmZpZ1wiO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYW5ndWxhci5mb3JFYWNoKGRlcGxveW1lbnRDb25maWcudHJpZ2dlcnMsICh0cmlnZ2VyKSA9PiB7XG4gICAgICAgICAgICAgIHZhciB0eXBlID0gdHJpZ2dlci50eXBlO1xuICAgICAgICAgICAgICB2YXIgaW1hZ2VDaGFuZ2VQYXJhbXMgPSB0cmlnZ2VyLmltYWdlQ2hhbmdlUGFyYW1zO1xuICAgICAgICAgICAgICBpZiAoaW1hZ2VDaGFuZ2VQYXJhbXMgJiYgdHlwZSA9PT0gXCJJbWFnZUNoYW5nZVwiKSB7XG4gICAgICAgICAgICAgICAgdmFyIGZyb20gPSBpbWFnZUNoYW5nZVBhcmFtcy5mcm9tO1xuICAgICAgICAgICAgICAgIGlmIChmcm9tKSB7XG4gICAgICAgICAgICAgICAgICB2YXIgbmFtZSA9IGZyb20ubmFtZTtcbiAgICAgICAgICAgICAgICAgIGlmIChmcm9tLmtpbmQgPT09IFwiSW1hZ2VSZXBvc2l0b3J5XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHRhZyA9IGltYWdlQ2hhbmdlUGFyYW1zLnRhZyB8fCBcImxhdGVzdFwiO1xuICAgICAgICAgICAgICAgICAgICBpZiAobmFtZSkge1xuICAgICAgICAgICAgICAgICAgICAgIC8vIG5vdyBsZXRzIGZpbmQgYSBwaXBlbGluZSBzdGVwIHdoaWNoIGZpcmVzIGZyb20gdGhpc1xuICAgICAgICAgICAgICAgICAgICAgIGFuZ3VsYXIuZm9yRWFjaChwaXBlbGluZVN0ZXBzLCAocGlwZWxpbmVTdGVwLCBrZXkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0byA9IENvcmUucGF0aEdldChwaXBlbGluZVN0ZXAsIFtcImJ1aWxkQ29uZmlnXCIsIFwicGFyYW1ldGVyc1wiLCBcIm91dHB1dFwiLCBcInRvXCJdKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0byAmJiAodG8ua2luZCA9PT0gXCJJbWFnZVJlcG9zaXRvcnlcIiB8fCB0by5raW5kID09PSBcIkltYWdlU3RyZWFtXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0b05hbWUgPSB0by5uYW1lO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodG9OYW1lID09PSBuYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHNlbGVjdG9yID0gQ29yZS5wYXRoR2V0KGRlcGxveW1lbnRDb25maWcsIFtcInRlbXBsYXRlXCIsIFwiY29udHJvbGxlclRlbXBsYXRlXCIsIFwic2VsZWN0b3JcIl0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwb2RzID0gW107XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyICRwb2RDb3VudGVycyA9IHNlbGVjdG9yID8gY3JlYXRlUG9kQ291bnRlcnMoc2VsZWN0b3IsIEt1YmVybmV0ZXNNb2RlbC5wb2RzRm9yTmFtZXNwYWNlKCksIHBvZHMpIDogbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgZGVwbG95UGlwZWxpbmVTdGVwID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVpbGRDb25maWc6IGRlcGxveW1lbnRDb25maWcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkY2xhc3M6ICdwaXBlbGluZS1kZXBsb3knLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBvZENvdW50ZXJzOiAkcG9kQ291bnRlcnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcG9kczogcG9kc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGlwZWxpbmVTdGVwLnRyaWdnZXJzU3RlcHMucHVzaChkZXBsb3lQaXBlbGluZVN0ZXApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgICRzY29wZS5waXBlbGluZXMgPSBwaXBlbGluZXM7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLyoqXG4gICAgICAgKiBMZXRzIGNyZWF0ZSBhIHVuaXF1ZSBrZXkgZm9yIGJ1aWxkIC8gY29uZmlnIHdlIGNhbiB1c2UgdG8gZG8gbGlua2luZyBvZiBidWlsZHMgLyBjb25maWdzIC8gdHJpZ2dlcnNcbiAgICAgICAqL1xuICAgICAgZnVuY3Rpb24gY3JlYXRlUGlwZWxpbmVLZXkoYnVpbGRDb25maWcpIHtcbiAgICAgICAgcmV0dXJuIENvcmUucGF0aEdldChidWlsZENvbmZpZywgW1wicGFyYW1ldGVyc1wiLCBcInNvdXJjZVwiLCBcImdpdFwiLCBcInVyaVwiXSk7XG4gICAgICB9XG5cbiAgICAgICRzY29wZS4ka2VlcFBvbGxpbmcgPSAoKSA9PiBrZWVwUG9sbGluZ01vZGVsO1xuICAgICAgJHNjb3BlLmZldGNoID0gUG9sbEhlbHBlcnMuc2V0dXBQb2xsaW5nKCRzY29wZSwgKG5leHQ6KCkgPT4gdm9pZCkgPT4ge1xuICAgICAgICB2YXIgcmVhZHkgPSAwO1xuICAgICAgICB2YXIgbnVtU2VydmljZXMgPSAzO1xuXG4gICAgICAgIGZ1bmN0aW9uIG1heWJlTmV4dCgpIHtcbiAgICAgICAgICBpZiAoKytyZWFkeSA+PSBudW1TZXJ2aWNlcykge1xuICAgICAgICAgICAgbmV4dCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHZhciB1cmwgPSBidWlsZHNSZXN0VVJMKCk7XG4gICAgICAgICRodHRwLmdldCh1cmwpLlxuICAgICAgICAgIHN1Y2Nlc3MoZnVuY3Rpb24gKGRhdGEsIHN0YXR1cywgaGVhZGVycywgY29uZmlnKSB7XG4gICAgICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgICAkc2NvcGUuYnVpbGRzID0gZW5yaWNoQnVpbGRzKGRhdGEuaXRlbXMpO1xuICAgICAgICAgICAgICB1cGRhdGVEYXRhKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBtYXliZU5leHQoKTtcbiAgICAgICAgICB9KS5cbiAgICAgICAgICBlcnJvcihmdW5jdGlvbiAoZGF0YSwgc3RhdHVzLCBoZWFkZXJzLCBjb25maWcpIHtcbiAgICAgICAgICAgIGxvZy53YXJuKFwiRmFpbGVkIHRvIGxvYWQgXCIgKyB1cmwgKyBcIiBcIiArIGRhdGEgKyBcIiBcIiArIHN0YXR1cyk7XG4gICAgICAgICAgICBtYXliZU5leHQoKTtcblxuICAgICAgICAgIH0pO1xuICAgICAgICB1cmwgPSBidWlsZENvbmZpZ3NSZXN0VVJMKCk7XG4gICAgICAgICRodHRwLmdldCh1cmwpLlxuICAgICAgICAgIHN1Y2Nlc3MoZnVuY3Rpb24gKGRhdGEsIHN0YXR1cywgaGVhZGVycywgY29uZmlnKSB7XG4gICAgICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgICAkc2NvcGUuYnVpbGRDb25maWdzID0gZGF0YS5pdGVtcztcbiAgICAgICAgICAgICAgdXBkYXRlRGF0YSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbWF5YmVOZXh0KCk7XG4gICAgICAgICAgfSkuXG4gICAgICAgICAgZXJyb3IoZnVuY3Rpb24gKGRhdGEsIHN0YXR1cywgaGVhZGVycywgY29uZmlnKSB7XG4gICAgICAgICAgICBsb2cud2FybihcIkZhaWxlZCB0byBsb2FkIFwiICsgdXJsICsgXCIgXCIgKyBkYXRhICsgXCIgXCIgKyBzdGF0dXMpO1xuICAgICAgICAgICAgbWF5YmVOZXh0KCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIHVybCA9IGRlcGxveW1lbnRDb25maWdzUmVzdFVSTCgpO1xuICAgICAgICAkaHR0cC5nZXQodXJsKS5cbiAgICAgICAgICBzdWNjZXNzKGZ1bmN0aW9uIChkYXRhLCBzdGF0dXMsIGhlYWRlcnMsIGNvbmZpZykge1xuICAgICAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgICAgJHNjb3BlLmRlcGxveW1lbnRDb25maWdzID0gZGF0YS5pdGVtcztcbiAgICAgICAgICAgICAgdXBkYXRlRGF0YSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbWF5YmVOZXh0KCk7XG4gICAgICAgICAgfSkuXG4gICAgICAgICAgZXJyb3IoZnVuY3Rpb24gKGRhdGEsIHN0YXR1cywgaGVhZGVycywgY29uZmlnKSB7XG4gICAgICAgICAgICBsb2cud2FybihcIkZhaWxlZCB0byBsb2FkIFwiICsgdXJsICsgXCIgXCIgKyBkYXRhICsgXCIgXCIgKyBzdGF0dXMpO1xuICAgICAgICAgICAgbWF5YmVOZXh0KCk7XG4gICAgICAgICAgfSk7XG4gICAgICB9KTtcblxuICAgICAgJHNjb3BlLmZldGNoKCk7XG4gICAgfV0pO1xuXG59XG4iLCIvLy8gPHJlZmVyZW5jZSBwYXRoPVwiLi4vLi4vaW5jbHVkZXMudHNcIi8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwia3ViZXJuZXRlc0hlbHBlcnMudHNcIi8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwia3ViZXJuZXRlc1BsdWdpbi50c1wiLz5cblxubW9kdWxlIEt1YmVybmV0ZXMge1xuXG4gIGV4cG9ydCB2YXIgUG9kQ29udHJvbGxlciA9IGNvbnRyb2xsZXIoXCJQb2RDb250cm9sbGVyXCIsXG4gICAgW1wiJHNjb3BlXCIsIFwiS3ViZXJuZXRlc01vZGVsXCIsIFwiS3ViZXJuZXRlc1N0YXRlXCIsIFwiU2VydmljZVJlZ2lzdHJ5XCIsIFwiJHRlbXBsYXRlQ2FjaGVcIiwgXCIkbG9jYXRpb25cIiwgXCIkcm91dGVQYXJhbXNcIiwgXCIkaHR0cFwiLCBcIiR0aW1lb3V0XCIsIFwiJHdpbmRvd1wiLCBcIkt1YmVybmV0ZXNBcGlVUkxcIixcbiAgICAgICgkc2NvcGUsIEt1YmVybmV0ZXNNb2RlbDogS3ViZXJuZXRlcy5LdWJlcm5ldGVzTW9kZWxTZXJ2aWNlLCBLdWJlcm5ldGVzU3RhdGUsIFNlcnZpY2VSZWdpc3RyeSxcbiAgICAgICAkdGVtcGxhdGVDYWNoZTpuZy5JVGVtcGxhdGVDYWNoZVNlcnZpY2UsICRsb2NhdGlvbjpuZy5JTG9jYXRpb25TZXJ2aWNlLCAkcm91dGVQYXJhbXMsICRodHRwLCAkdGltZW91dCwgJHdpbmRvdywgS3ViZXJuZXRlc0FwaVVSTCkgPT4ge1xuXG4gICAgJHNjb3BlLmt1YmVybmV0ZXMgPSBLdWJlcm5ldGVzU3RhdGU7XG4gICAgJHNjb3BlLm1vZGVsID0gS3ViZXJuZXRlc01vZGVsO1xuICAgICRzY29wZS5yYXdNb2RlID0gZmFsc2U7XG4gICAgJHNjb3BlLnJhd01vZGVsID0gbnVsbDtcblxuICAgICRzY29wZS5pdGVtQ29uZmlnID0ge1xuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAnY29udGFpbmVycy9pbWFnZSQnOiB7XG4gICAgICAgICAgdGVtcGxhdGU6ICR0ZW1wbGF0ZUNhY2hlLmdldCgnaW1hZ2VUZW1wbGF0ZS5odG1sJylcbiAgICAgICAgfSxcbiAgICAgICAgJ3N0YXR1cy9waGFzZSc6IHtcbiAgICAgICAgICB0ZW1wbGF0ZTogJHRlbXBsYXRlQ2FjaGUuZ2V0KCdzdGF0dXNUZW1wbGF0ZS5odG1sJylcbiAgICAgICAgfSxcbiAgICAgICAgJ1xcXFwvRW52XFxcXC8nOiB7XG4gICAgICAgICAgdGVtcGxhdGU6ICR0ZW1wbGF0ZUNhY2hlLmdldCgnZW52SXRlbVRlbXBsYXRlLmh0bWwnKVxuICAgICAgICB9LFxuICAgICAgICAnXlxcXFwvbGFiZWxzJCc6IHtcbiAgICAgICAgICB0ZW1wbGF0ZTogJHRlbXBsYXRlQ2FjaGUuZ2V0KCdsYWJlbFRlbXBsYXRlLmh0bWwnKVxuICAgICAgICB9LFxuICAgICAgICAnXFxcXC9lbnZcXFxcL2tleSQnOiB7XG4gICAgICAgICAgaGlkZGVuOiB0cnVlXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuXG4gICAgS3ViZXJuZXRlcy5pbml0U2hhcmVkKCRzY29wZSwgJGxvY2F0aW9uLCAkaHR0cCwgJHRpbWVvdXQsICRyb3V0ZVBhcmFtcywgS3ViZXJuZXRlc01vZGVsLCBLdWJlcm5ldGVzU3RhdGUsIEt1YmVybmV0ZXNBcGlVUkwpO1xuXG4gICAgJHNjb3BlLiRvbigna3ViZXJuZXRlc01vZGVsVXBkYXRlZCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgIHVwZGF0ZURhdGEoKTtcbiAgICB9KTtcblxuICAgICRzY29wZS4kb24oJyRyb3V0ZVVwZGF0ZScsICgkZXZlbnQpID0+IHtcbiAgICAgIHVwZGF0ZURhdGEoKTtcbiAgICB9KTtcblxuICAgICRzY29wZS4kd2F0Y2goJ21vZGVsLnBvZHMnLCAobmV3VmFsdWUsIG9sZFZhbHVlKSA9PiB7XG4gICAgICB1cGRhdGVEYXRhKCk7XG4gICAgfSwgdHJ1ZSk7XG5cbiAgICAkc2NvcGUuZmxpcFJhdyA9ICgpID0+IHtcbiAgICAgICRzY29wZS5yYXdNb2RlID0gISRzY29wZS5yYXdNb2RlO1xuICAgICAgQ29yZS4kYXBwbHkoJHNjb3BlKTtcbiAgICB9O1xuXG4gICAgJHNjb3BlLm9wZW5Mb2dzID0gKCkgPT4ge1xuICAgICAgdmFyIHBvZHMgPSBbJHNjb3BlLml0ZW1dO1xuICAgICAgb3BlbkxvZ3NGb3JQb2RzKFNlcnZpY2VSZWdpc3RyeSwgJHdpbmRvdywgS3ViZXJuZXRlc01vZGVsLmN1cnJlbnROYW1lc3BhY2UoKSwgcG9kcyk7XG4gICAgfTtcblxuICAgIHVwZGF0ZURhdGEoKTtcblxuICAgIGZ1bmN0aW9uIHVwZGF0ZURhdGEoKSB7XG4gICAgICAkc2NvcGUuaWQgPSAkcm91dGVQYXJhbXNbXCJpZFwiXTtcbiAgICAgICRzY29wZS5pdGVtID0gJHNjb3BlLm1vZGVsLmdldFBvZChLdWJlcm5ldGVzU3RhdGUuc2VsZWN0ZWROYW1lc3BhY2UsICRzY29wZS5pZCk7XG4gICAgICBpZiAoJHNjb3BlLml0ZW0pIHtcbiAgICAgICAgJHNjb3BlLnJhd01vZGVsID0gdG9SYXdKc29uKCRzY29wZS5pdGVtKTtcbiAgICAgIH1cbiAgICAgIENvcmUuJGFwcGx5KCRzY29wZSk7XG4gICAgfVxuICB9XSk7XG59XG4iLCIvLy8gPHJlZmVyZW5jZSBwYXRoPVwiLi4vLi4vaW5jbHVkZXMudHNcIi8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwia3ViZXJuZXRlc0hlbHBlcnMudHNcIi8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwia3ViZXJuZXRlc1BsdWdpbi50c1wiLz5cblxubW9kdWxlIEt1YmVybmV0ZXMge1xuXG4gIGV4cG9ydCB2YXIgUG9kRWRpdENvbnRyb2xsZXIgPSBjb250cm9sbGVyKFwiUG9kRWRpdENvbnRyb2xsZXJcIixcbiAgICBbXCIkc2NvcGVcIiwgXCJLdWJlcm5ldGVzTW9kZWxcIiwgXCJLdWJlcm5ldGVzU3RhdGVcIiwgXCJLdWJlcm5ldGVzU2NoZW1hXCIsIFwiJHRlbXBsYXRlQ2FjaGVcIiwgXCIkbG9jYXRpb25cIiwgXCIkcm91dGVQYXJhbXNcIiwgXCIkaHR0cFwiLCBcIiR0aW1lb3V0XCIsIFwiS3ViZXJuZXRlc0FwaVVSTFwiLCBcIlNjaGVtYVJlZ2lzdHJ5XCIsXG4gICAgICAoJHNjb3BlLCBLdWJlcm5ldGVzTW9kZWw6IEt1YmVybmV0ZXMuS3ViZXJuZXRlc01vZGVsU2VydmljZSwgS3ViZXJuZXRlc1N0YXRlLCBLdWJlcm5ldGVzU2NoZW1hLFxuICAgICAgICR0ZW1wbGF0ZUNhY2hlOm5nLklUZW1wbGF0ZUNhY2hlU2VydmljZSwgJGxvY2F0aW9uOm5nLklMb2NhdGlvblNlcnZpY2UsICRyb3V0ZVBhcmFtcywgJGh0dHAsICR0aW1lb3V0LCBLdWJlcm5ldGVzQXBpVVJMLCBzY2hlbWFzOkhhd3Rpb0Zvcm1zLlNjaGVtYVJlZ2lzdHJ5KSA9PiB7XG5cbiAgICAkc2NvcGUua3ViZXJuZXRlcyA9IEt1YmVybmV0ZXNTdGF0ZTtcbiAgICAkc2NvcGUubW9kZWwgPSBLdWJlcm5ldGVzTW9kZWw7XG4gICAgJHNjb3BlLmlkID0gJHJvdXRlUGFyYW1zW1wiaWRcIl07XG4gICAgJHNjb3BlLnNjaGVtYSA9IEt1YmVybmV0ZXNTY2hlbWE7XG4gICAgJHNjb3BlLmNvbmZpZyA9IHNjaGVtYXMuY2xvbmVTY2hlbWEoXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLlBvZFwiKTtcbiAgICAvLyRzY29wZS5jb25maWcgPSBLdWJlcm5ldGVzU2NoZW1hLmRlZmluaXRpb25zLmt1YmVybmV0ZXNfdjFiZXRhMl9Qb2Q7XG5cbiAgICBLdWJlcm5ldGVzLmluaXRTaGFyZWQoJHNjb3BlLCAkbG9jYXRpb24sICRodHRwLCAkdGltZW91dCwgJHJvdXRlUGFyYW1zLCBLdWJlcm5ldGVzTW9kZWwsIEt1YmVybmV0ZXNTdGF0ZSwgS3ViZXJuZXRlc0FwaVVSTCk7XG5cbiAgICAkc2NvcGUuJG9uKCckcm91dGVVcGRhdGUnLCAoJGV2ZW50KSA9PiB7XG4gICAgICB1cGRhdGVEYXRhKCk7XG4gICAgfSk7XG5cbiAgICB1cGRhdGVEYXRhKCk7XG5cbiAgICBmdW5jdGlvbiB1cGRhdGVEYXRhKCkge1xuICAgICAgaWYgKCRzY29wZS5pZCkge1xuICAgICAgICAkc2NvcGUuZW50aXR5ID0gJHNjb3BlLm1vZGVsLmdldFBvZChLdWJlcm5ldGVzU3RhdGUuc2VsZWN0ZWROYW1lc3BhY2UsICRzY29wZS5pZCk7XG4gICAgICAgIENvcmUuJGFwcGx5KCRzY29wZSk7XG4gICAgICAgICRzY29wZS5mZXRjaGVkID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgICRzY29wZS5mZXRjaGVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1dKTtcbn1cbiIsIi8vLyA8cmVmZXJlbmNlIHBhdGg9XCIuLi8uLi9pbmNsdWRlcy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJrdWJlcm5ldGVzUGx1Z2luLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cInV0aWxIZWxwZXJzLnRzXCIvPlxuXG5tb2R1bGUgS3ViZXJuZXRlcyB7XG5cbiAgZXhwb3J0IHZhciBFbnZJdGVtID0gY29udHJvbGxlcihcIkVudkl0ZW1cIiwgW1wiJHNjb3BlXCIsICgkc2NvcGUpID0+IHtcbiAgICB2YXIgcGFydHMgPSAkc2NvcGUuZGF0YS5zcGxpdCgnPScpO1xuICAgICRzY29wZS5rZXkgPSBwYXJ0cy5zaGlmdCgpO1xuICAgICRzY29wZS52YWx1ZSA9IHBhcnRzLmpvaW4oJz0nKTtcbiAgfV0pO1xuXG4gIC8vIG1haW4gY29udHJvbGxlciBmb3IgdGhlIHBhZ2VcbiAgZXhwb3J0IHZhciBQb2RzID0gY29udHJvbGxlcihcIlBvZHNcIiwgW1wiJHNjb3BlXCIsIFwiS3ViZXJuZXRlc01vZGVsXCIsIFwiS3ViZXJuZXRlc1BvZHNcIiwgXCJLdWJlcm5ldGVzU3RhdGVcIiwgXCJTZXJ2aWNlUmVnaXN0cnlcIiwgXCIkZGlhbG9nXCIsIFwiJHdpbmRvd1wiLCBcIiR0ZW1wbGF0ZUNhY2hlXCIsIFwiJHJvdXRlUGFyYW1zXCIsIFwiJGxvY2F0aW9uXCIsIFwibG9jYWxTdG9yYWdlXCIsIFwiJGh0dHBcIiwgXCIkdGltZW91dFwiLCBcIkt1YmVybmV0ZXNBcGlVUkxcIixcbiAgICAoJHNjb3BlLCBLdWJlcm5ldGVzTW9kZWw6IEt1YmVybmV0ZXMuS3ViZXJuZXRlc01vZGVsU2VydmljZSwgS3ViZXJuZXRlc1BvZHM6bmcucmVzb3VyY2UuSVJlc291cmNlQ2xhc3MsIEt1YmVybmV0ZXNTdGF0ZSwgU2VydmljZVJlZ2lzdHJ5LCAkZGlhbG9nLCAkd2luZG93LCAkdGVtcGxhdGVDYWNoZSwgJHJvdXRlUGFyYW1zLCAkbG9jYXRpb246bmcuSUxvY2F0aW9uU2VydmljZSwgbG9jYWxTdG9yYWdlLCAkaHR0cCwgJHRpbWVvdXQsIEt1YmVybmV0ZXNBcGlVUkwpID0+IHtcblxuICAgICRzY29wZS5rdWJlcm5ldGVzID0gS3ViZXJuZXRlc1N0YXRlO1xuICAgICRzY29wZS5tb2RlbCA9IEt1YmVybmV0ZXNNb2RlbDtcbiAgICAkc2NvcGUuJG9uKCdrdWJlcm5ldGVzTW9kZWxVcGRhdGVkJywgZnVuY3Rpb24gKCkge1xuICAgICAgQ29yZS4kYXBwbHkoJHNjb3BlKTtcbiAgICB9KTtcblxuICAgICRzY29wZS5pdGVtU2NoZW1hID0gRm9ybXMuY3JlYXRlRm9ybUNvbmZpZ3VyYXRpb24oKTtcblxuICAgICRzY29wZS50YWJsZUNvbmZpZyA9IHtcbiAgICAgIGRhdGE6ICdtb2RlbC5wb2RzJyxcbiAgICAgIHNob3dTZWxlY3Rpb25DaGVja2JveDogdHJ1ZSxcbiAgICAgIGVuYWJsZVJvd0NsaWNrU2VsZWN0aW9uOiBmYWxzZSxcbiAgICAgIG11bHRpU2VsZWN0OiB0cnVlLFxuICAgICAgc2VsZWN0ZWRJdGVtczogW10sXG4gICAgICBmaWx0ZXJPcHRpb25zOiB7XG4gICAgICAgIGZpbHRlclRleHQ6ICRsb2NhdGlvbi5zZWFyY2goKVtcInFcIl0gfHwgJydcbiAgICAgIH0sXG4gICAgICBjb2x1bW5EZWZzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBmaWVsZDogJ19rZXknLFxuICAgICAgICAgIGRpc3BsYXlOYW1lOiAnTmFtZScsXG4gICAgICAgICAgZGVmYXVsdFNvcnQ6IHRydWUsXG4gICAgICAgICAgY2VsbFRlbXBsYXRlOiAkdGVtcGxhdGVDYWNoZS5nZXQoXCJpZFRlbXBsYXRlLmh0bWxcIilcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGZpZWxkOiAnJHN0YXR1c0NzcycsXG4gICAgICAgICAgZGlzcGxheU5hbWU6ICdTdGF0dXMnLFxuICAgICAgICAgIGNlbGxUZW1wbGF0ZTogJHRlbXBsYXRlQ2FjaGUuZ2V0KFwic3RhdHVzVGVtcGxhdGUuaHRtbFwiKVxuICAgICAgICB9LFxuICAgICAgICB7IGZpZWxkOiAnJGV2ZW50Q291bnQnLFxuICAgICAgICAgIGRpc3BsYXlOYW1lOiAnRXZlbnRzJyxcbiAgICAgICAgICBjZWxsVGVtcGxhdGU6ICR0ZW1wbGF0ZUNhY2hlLmdldChcImV2ZW50U3VtbWFyeVRlbXBsYXRlLmh0bWxcIilcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGZpZWxkOiAnJHJlc3RhcnRDb3VudCcsXG4gICAgICAgICAgZGlzcGxheU5hbWU6ICdSZXN0YXJ0cydcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGZpZWxkOiAnJGNyZWF0ZWRUaW1lJyxcbiAgICAgICAgICBkaXNwbGF5TmFtZTogJ0FnZScsXG4gICAgICAgICAgY2VsbFRlbXBsYXRlOiAkdGVtcGxhdGVDYWNoZS5nZXQoXCJhZ2VUZW1wbGF0ZS5odG1sXCIpXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBmaWVsZDogJyRpbWFnZU5hbWVzJyxcbiAgICAgICAgICBkaXNwbGF5TmFtZTogJ0ltYWdlcycsXG4gICAgICAgICAgY2VsbFRlbXBsYXRlOiAkdGVtcGxhdGVDYWNoZS5nZXQoXCJpbWFnZVRlbXBsYXRlLmh0bWxcIilcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGZpZWxkOiAnJGhvc3QnLFxuICAgICAgICAgIGRpc3BsYXlOYW1lOiAnSG9zdCcsXG4gICAgICAgICAgY2VsbFRlbXBsYXRlOiAkdGVtcGxhdGVDYWNoZS5nZXQoXCJob3N0VGVtcGxhdGUuaHRtbFwiKVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgZmllbGQ6ICckbGFiZWxzVGV4dCcsXG4gICAgICAgICAgZGlzcGxheU5hbWU6ICdMYWJlbHMnLFxuICAgICAgICAgIGNlbGxUZW1wbGF0ZTogJHRlbXBsYXRlQ2FjaGUuZ2V0KFwibGFiZWxUZW1wbGF0ZS5odG1sXCIpXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBmaWVsZDogJyRwb2RJUCcsXG4gICAgICAgICAgZGlzcGxheU5hbWU6ICdQb2QgSVAnLFxuICAgICAgICAgIGN1c3RvbVNvcnRGaWVsZDogKGZpZWxkKSA9PiB7XG4gICAgICAgICAgICAvLyB1c2UgYSBjdXN0b20gc29ydCB0byBzb3J0IGlwIGFkZHJlc3NcbiAgICAgICAgICAgIHJldHVybiBLdWJlcm5ldGVzLnNvcnRCeVBvZElwKGZpZWxkLiRwb2RJUCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICBdXG4gICAgfTtcblxuICAgICRzY29wZS5vcGVuTG9ncyA9ICgpID0+IHtcbiAgICAgIHZhciBwb2RzID0gJHNjb3BlLnRhYmxlQ29uZmlnLnNlbGVjdGVkSXRlbXM7XG4gICAgICBpZiAoIXBvZHMgfHwgIXBvZHMubGVuZ3RoKSB7XG4gICAgICAgIGlmICgkc2NvcGUuaWQpIHtcbiAgICAgICAgICB2YXIgaXRlbSA9ICRzY29wZS5pdGVtO1xuICAgICAgICAgIGlmIChpdGVtKSB7XG4gICAgICAgICAgICBwb2RzID0gW2l0ZW1dO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgb3BlbkxvZ3NGb3JQb2RzKFNlcnZpY2VSZWdpc3RyeSwgJHdpbmRvdywgS3ViZXJuZXRlc01vZGVsLmN1cnJlbnROYW1lc3BhY2UoKSwgcG9kcyk7XG4gICAgfTtcblxuICAgIEt1YmVybmV0ZXMuaW5pdFNoYXJlZCgkc2NvcGUsICRsb2NhdGlvbiwgJGh0dHAsICR0aW1lb3V0LCAkcm91dGVQYXJhbXMsIEt1YmVybmV0ZXNNb2RlbCwgS3ViZXJuZXRlc1N0YXRlLCBLdWJlcm5ldGVzQXBpVVJMKTtcblxuICAgICRzY29wZS5kZWxldGVQcm9tcHQgPSAoc2VsZWN0ZWQpID0+IHtcbiAgICAgIGlmIChhbmd1bGFyLmlzU3RyaW5nKHNlbGVjdGVkKSkge1xuICAgICAgICBzZWxlY3RlZCA9IFt7XG4gICAgICAgICAgaWQ6IHNlbGVjdGVkXG4gICAgICAgIH1dO1xuICAgICAgfVxuICAgICAgVUkubXVsdGlJdGVtQ29uZmlybUFjdGlvbkRpYWxvZyg8VUkuTXVsdGlJdGVtQ29uZmlybUFjdGlvbk9wdGlvbnM+e1xuICAgICAgICBjb2xsZWN0aW9uOiBzZWxlY3RlZCxcbiAgICAgICAgaW5kZXg6ICdtZXRhZGF0YS5uYW1lJyxcbiAgICAgICAgb25DbG9zZTogKHJlc3VsdDpib29sZWFuKSA9PiB7XG4gICAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgICAgZnVuY3Rpb24gZGVsZXRlU2VsZWN0ZWQoc2VsZWN0ZWQ6QXJyYXk8S3ViZVBvZD4sIG5leHQ6S3ViZVBvZCkge1xuICAgICAgICAgICAgICBpZiAobmV4dCkge1xuICAgICAgICAgICAgICAgIGxvZy5kZWJ1ZyhcImRlbGV0aW5nOiBcIiwgZ2V0TmFtZShuZXh0KSk7XG4gICAgICAgICAgICAgICAgS3ViZXJuZXRlc1BvZHMuZGVsZXRlKHtcbiAgICAgICAgICAgICAgICAgIGlkOiBnZXROYW1lKG5leHQpXG4gICAgICAgICAgICAgICAgfSwgdW5kZWZpbmVkLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICBsb2cuZGVidWcoXCJkZWxldGVkOiBcIiwgZ2V0TmFtZShuZXh0KSk7XG4gICAgICAgICAgICAgICAgICBkZWxldGVTZWxlY3RlZChzZWxlY3RlZCwgc2VsZWN0ZWQuc2hpZnQoKSk7XG4gICAgICAgICAgICAgICAgfSwgKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgICBsb2cuZGVidWcoXCJFcnJvciBkZWxldGluZzogXCIsIGVycm9yKTtcbiAgICAgICAgICAgICAgICAgIGRlbGV0ZVNlbGVjdGVkKHNlbGVjdGVkLCBzZWxlY3RlZC5zaGlmdCgpKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVsZXRlU2VsZWN0ZWQoc2VsZWN0ZWQsIHNlbGVjdGVkLnNoaWZ0KCkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgdGl0bGU6ICdEZWxldGUgcG9kcz8nLFxuICAgICAgICBhY3Rpb246ICdUaGUgZm9sbG93aW5nIHBvZHMgd2lsbCBiZSBkZWxldGVkOicsXG4gICAgICAgIG9rVGV4dDogJ0RlbGV0ZScsXG4gICAgICAgIG9rQ2xhc3M6ICdidG4tZGFuZ2VyJyxcbiAgICAgICAgY3VzdG9tOiBcIlRoaXMgb3BlcmF0aW9uIGlzIHBlcm1hbmVudCBvbmNlIGNvbXBsZXRlZCFcIixcbiAgICAgICAgY3VzdG9tQ2xhc3M6IFwiYWxlcnQgYWxlcnQtd2FybmluZ1wiXG4gICAgICB9KS5vcGVuKCk7XG4gICAgfTtcbiAgfV0pO1xufVxuIiwiLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4uLy4uL2luY2x1ZGVzLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cImt1YmVybmV0ZXNIZWxwZXJzLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cImt1YmVybmV0ZXNQbHVnaW4udHNcIi8+XG5cbm1vZHVsZSBLdWJlcm5ldGVzIHtcblxuICBleHBvcnQgdmFyIFJlcGxpY2F0aW9uQ29udHJvbGxlckNvbnRyb2xsZXIgPSBjb250cm9sbGVyKFwiUmVwbGljYXRpb25Db250cm9sbGVyQ29udHJvbGxlclwiLFxuICAgIFtcIiRzY29wZVwiLCBcIkt1YmVybmV0ZXNNb2RlbFwiLCBcIkt1YmVybmV0ZXNTdGF0ZVwiLCBcIiR0ZW1wbGF0ZUNhY2hlXCIsIFwiJGxvY2F0aW9uXCIsIFwiJHJvdXRlUGFyYW1zXCIsIFwiJGh0dHBcIiwgXCIkdGltZW91dFwiLCBcIkt1YmVybmV0ZXNBcGlVUkxcIixcbiAgICAgICgkc2NvcGUsIEt1YmVybmV0ZXNNb2RlbDogS3ViZXJuZXRlcy5LdWJlcm5ldGVzTW9kZWxTZXJ2aWNlLCBLdWJlcm5ldGVzU3RhdGUsXG4gICAgICAgJHRlbXBsYXRlQ2FjaGU6bmcuSVRlbXBsYXRlQ2FjaGVTZXJ2aWNlLCAkbG9jYXRpb246bmcuSUxvY2F0aW9uU2VydmljZSwgJHJvdXRlUGFyYW1zLCAkaHR0cCwgJHRpbWVvdXQsIEt1YmVybmV0ZXNBcGlVUkwpID0+IHtcblxuICAgICRzY29wZS5rdWJlcm5ldGVzID0gS3ViZXJuZXRlc1N0YXRlO1xuICAgICRzY29wZS5tb2RlbCA9IEt1YmVybmV0ZXNNb2RlbDtcbiAgICAkc2NvcGUucmF3TW9kZSA9IGZhbHNlO1xuICAgICRzY29wZS5yYXdNb2RlbCA9IG51bGw7XG5cbiAgICBLdWJlcm5ldGVzLmluaXRTaGFyZWQoJHNjb3BlLCAkbG9jYXRpb24sICRodHRwLCAkdGltZW91dCwgJHJvdXRlUGFyYW1zLCBLdWJlcm5ldGVzTW9kZWwsIEt1YmVybmV0ZXNTdGF0ZSwgS3ViZXJuZXRlc0FwaVVSTCk7XG5cbiAgICAkc2NvcGUuaXRlbUNvbmZpZyA9IHtcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgJ15cXFxcL2xhYmVscyQnOiB7XG4gICAgICAgICAgdGVtcGxhdGU6ICR0ZW1wbGF0ZUNhY2hlLmdldCgnbGFiZWxUZW1wbGF0ZS5odG1sJylcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG5cbiAgICAkc2NvcGUuJG9uKCdrdWJlcm5ldGVzTW9kZWxVcGRhdGVkJywgZnVuY3Rpb24gKCkge1xuICAgICAgdXBkYXRlRGF0YSgpO1xuICAgIH0pO1xuXG4gICAgJHNjb3BlLiRvbignJHJvdXRlVXBkYXRlJywgKCRldmVudCkgPT4ge1xuICAgICAgdXBkYXRlRGF0YSgpO1xuICAgIH0pO1xuXG4gICAgJHNjb3BlLiR3YXRjaCgnbW9kZWwucG9kcycsIChuZXdWYWx1ZSwgb2xkVmFsdWUpID0+IHtcbiAgICAgIHVwZGF0ZURhdGEoKTtcbiAgICB9LCB0cnVlKTtcblxuICAgICRzY29wZS5mbGlwUmF3ID0gKCkgPT4ge1xuICAgICAgJHNjb3BlLnJhd01vZGUgPSAhJHNjb3BlLnJhd01vZGU7XG4gICAgICBDb3JlLiRhcHBseSgkc2NvcGUpO1xuICAgIH07XG5cbiAgICB1cGRhdGVEYXRhKCk7XG5cbiAgICBmdW5jdGlvbiB1cGRhdGVEYXRhKCkge1xuICAgICAgJHNjb3BlLmlkID0gJHJvdXRlUGFyYW1zW1wiaWRcIl07XG4gICAgICAkc2NvcGUuaXRlbSA9ICRzY29wZS5tb2RlbC5nZXRSZXBsaWNhdGlvbkNvbnRyb2xsZXIoS3ViZXJuZXRlc1N0YXRlLnNlbGVjdGVkTmFtZXNwYWNlLCAkc2NvcGUuaWQpO1xuICAgICAgaWYgKCRzY29wZS5pdGVtKSB7XG4gICAgICAgICRzY29wZS5yYXdNb2RlbCA9IHRvUmF3SnNvbigkc2NvcGUuaXRlbSk7XG4gICAgICB9XG5cbiAgICAgIENvcmUuJGFwcGx5KCRzY29wZSk7XG4gICAgfVxuICB9XSk7XG59XG4iLCIvLy8gPHJlZmVyZW5jZSBwYXRoPVwiLi4vLi4vaW5jbHVkZXMudHNcIi8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwia3ViZXJuZXRlc0hlbHBlcnMudHNcIi8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwia3ViZXJuZXRlc1BsdWdpbi50c1wiLz5cblxubW9kdWxlIEt1YmVybmV0ZXMge1xuXG4gIGV4cG9ydCB2YXIgUmVwbGljYXRpb25Db250cm9sbGVyRWRpdENvbnRyb2xsZXIgPSBjb250cm9sbGVyKFwiUmVwbGljYXRpb25Db250cm9sbGVyRWRpdENvbnRyb2xsZXJcIixcbiAgICBbXCIkc2NvcGVcIiwgXCJLdWJlcm5ldGVzTW9kZWxcIiwgXCJLdWJlcm5ldGVzU3RhdGVcIiwgXCJLdWJlcm5ldGVzU2NoZW1hXCIsIFwiJHRlbXBsYXRlQ2FjaGVcIiwgXCIkbG9jYXRpb25cIiwgXCIkcm91dGVQYXJhbXNcIiwgXCIkaHR0cFwiLCBcIiR0aW1lb3V0XCIsIFwiS3ViZXJuZXRlc0FwaVVSTFwiLCBcIlNjaGVtYVJlZ2lzdHJ5XCIsXG4gICAgICAoJHNjb3BlLCBLdWJlcm5ldGVzTW9kZWw6IEt1YmVybmV0ZXMuS3ViZXJuZXRlc01vZGVsU2VydmljZSwgS3ViZXJuZXRlc1N0YXRlLCBLdWJlcm5ldGVzU2NoZW1hLFxuICAgICAgICR0ZW1wbGF0ZUNhY2hlOm5nLklUZW1wbGF0ZUNhY2hlU2VydmljZSwgJGxvY2F0aW9uOm5nLklMb2NhdGlvblNlcnZpY2UsICRyb3V0ZVBhcmFtcywgJGh0dHAsICR0aW1lb3V0LCBLdWJlcm5ldGVzQXBpVVJMLCBzY2hlbWFzOkhhd3Rpb0Zvcm1zLlNjaGVtYVJlZ2lzdHJ5KSA9PiB7XG5cbiAgICAkc2NvcGUua3ViZXJuZXRlcyA9IEt1YmVybmV0ZXNTdGF0ZTtcbiAgICAkc2NvcGUubW9kZWwgPSBLdWJlcm5ldGVzTW9kZWw7XG4gICAgJHNjb3BlLmlkID0gJHJvdXRlUGFyYW1zW1wiaWRcIl07XG4gICAgJHNjb3BlLnNjaGVtYSA9IEt1YmVybmV0ZXNTY2hlbWE7XG4gICAgbG9nLmRlYnVnKFwiU2NoZW1hOiBcIiwgJHNjb3BlLnNjaGVtYSk7XG4gICAgJHNjb3BlLmNvbmZpZyA9IHNjaGVtYXMuY2xvbmVTY2hlbWEoXCJpby5mYWJyaWM4Lmt1YmVybmV0ZXMuYXBpLm1vZGVsLlJlcGxpY2F0aW9uQ29udHJvbGxlclwiKTtcbiAgICAvLyQkc2NvcGUuY29uZmlnID0gS3ViZXJuZXRlc1NjaGVtYS5kZWZpbml0aW9ucy5rdWJlcm5ldGVzX3YxYmV0YTNfUmVwbGljYXRpb25Db250cm9sbGVyO1xuXG4gICAgS3ViZXJuZXRlcy5pbml0U2hhcmVkKCRzY29wZSwgJGxvY2F0aW9uLCAkaHR0cCwgJHRpbWVvdXQsICRyb3V0ZVBhcmFtcywgS3ViZXJuZXRlc01vZGVsLCBLdWJlcm5ldGVzU3RhdGUsIEt1YmVybmV0ZXNBcGlVUkwpO1xuXG4gICAgJHNjb3BlLiRvbignJHJvdXRlVXBkYXRlJywgKCRldmVudCkgPT4ge1xuICAgICAgdXBkYXRlRGF0YSgpO1xuICAgIH0pO1xuXG4gICAgdXBkYXRlRGF0YSgpO1xuXG4gICAgZnVuY3Rpb24gdXBkYXRlRGF0YSgpIHtcbiAgICAgIGlmICgkc2NvcGUuaWQpIHtcbiAgICAgICAgJHNjb3BlLmVudGl0eSA9ICRzY29wZS5tb2RlbC5nZXRSZXBsaWNhdGlvbkNvbnRyb2xsZXIoS3ViZXJuZXRlc1N0YXRlLnNlbGVjdGVkTmFtZXNwYWNlLCAkc2NvcGUuaWQpO1xuICAgICAgICBDb3JlLiRhcHBseSgkc2NvcGUpO1xuICAgICAgICAkc2NvcGUuZmV0Y2hlZCA9IHRydWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAkc2NvcGUuZmV0Y2hlZCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9XSk7XG59XG4iLCIvLy8gPHJlZmVyZW5jZSBwYXRoPVwiLi4vLi4vaW5jbHVkZXMudHNcIi8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwia3ViZXJuZXRlc0hlbHBlcnMudHNcIi8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwia3ViZXJuZXRlc1BsdWdpbi50c1wiLz5cblxubW9kdWxlIEt1YmVybmV0ZXMge1xuXG4gIGV4cG9ydCB2YXIgUmVwbGljYXRpb25Db250cm9sbGVycyA9IGNvbnRyb2xsZXIoXCJSZXBsaWNhdGlvbkNvbnRyb2xsZXJzXCIsXG4gICAgW1wiJHNjb3BlXCIsIFwiS3ViZXJuZXRlc01vZGVsXCIsIFwiS3ViZXJuZXRlc1JlcGxpY2F0aW9uQ29udHJvbGxlcnNcIiwgXCJLdWJlcm5ldGVzUG9kc1wiLCBcIkt1YmVybmV0ZXNTdGF0ZVwiLCBcIiR0ZW1wbGF0ZUNhY2hlXCIsIFwiJGxvY2F0aW9uXCIsIFwiJHJvdXRlUGFyYW1zXCIsIFwiJGh0dHBcIiwgXCIkdGltZW91dFwiLCBcIkt1YmVybmV0ZXNBcGlVUkxcIixcbiAgICAgICgkc2NvcGUsIEt1YmVybmV0ZXNNb2RlbDogS3ViZXJuZXRlcy5LdWJlcm5ldGVzTW9kZWxTZXJ2aWNlLCBLdWJlcm5ldGVzUmVwbGljYXRpb25Db250cm9sbGVyczpuZy5yZXNvdXJjZS5JUmVzb3VyY2VDbGFzcywgS3ViZXJuZXRlc1BvZHM6bmcucmVzb3VyY2UuSVJlc291cmNlQ2xhc3MsIEt1YmVybmV0ZXNTdGF0ZSxcbiAgICAgICAkdGVtcGxhdGVDYWNoZTpuZy5JVGVtcGxhdGVDYWNoZVNlcnZpY2UsICRsb2NhdGlvbjpuZy5JTG9jYXRpb25TZXJ2aWNlLCAkcm91dGVQYXJhbXMsICRodHRwLCAkdGltZW91dCwgS3ViZXJuZXRlc0FwaVVSTCkgPT4ge1xuXG4gICAgJHNjb3BlLmt1YmVybmV0ZXMgPSBLdWJlcm5ldGVzU3RhdGU7XG4gICAgJHNjb3BlLm1vZGVsID0gS3ViZXJuZXRlc01vZGVsO1xuXG4gICAgJHNjb3BlLnRhYmxlQ29uZmlnID0ge1xuICAgICAgZGF0YTogJ21vZGVsLnJlcGxpY2F0aW9uQ29udHJvbGxlcnMnLFxuICAgICAgc2hvd1NlbGVjdGlvbkNoZWNrYm94OiB0cnVlLFxuICAgICAgZW5hYmxlUm93Q2xpY2tTZWxlY3Rpb246IGZhbHNlLFxuICAgICAgbXVsdGlTZWxlY3Q6IHRydWUsXG4gICAgICBzZWxlY3RlZEl0ZW1zOiBbXSxcbiAgICAgIGZpbHRlck9wdGlvbnM6IHtcbiAgICAgICAgZmlsdGVyVGV4dDogJGxvY2F0aW9uLnNlYXJjaCgpW1wicVwiXSB8fCAnJ1xuICAgICAgfSxcbiAgICAgIGNvbHVtbkRlZnM6IFtcbiAgICAgICAgeyBmaWVsZDogJ19rZXknLFxuICAgICAgICAgIGRpc3BsYXlOYW1lOiAnTmFtZScsXG4gICAgICAgICAgY2VsbFRlbXBsYXRlOiAkdGVtcGxhdGVDYWNoZS5nZXQoXCJpZFRlbXBsYXRlLmh0bWxcIilcbiAgICAgICAgfSxcbiAgICAgICAgeyBmaWVsZDogJyRwb2RDb3VudCcsXG4gICAgICAgICAgZGlzcGxheU5hbWU6ICdQb2RzJyxcbiAgICAgICAgICBjZWxsVGVtcGxhdGU6ICR0ZW1wbGF0ZUNhY2hlLmdldChcInBvZENvdW50c0FuZExpbmtUZW1wbGF0ZS5odG1sXCIpLFxuICAgICAgICAgIGN1c3RvbVNvcnRGaWVsZDogKGZpZWxkKSA9PiB7XG4gICAgICAgICAgICAvLyBuZWVkIHRvIGNvbmNhdCBhbGwgdGhlIHBvZCBjb3VudGVyc1xuICAgICAgICAgICAgdmFyIHJlYWR5ID0gZmllbGQuJHBvZENvdW50ZXJzLnJlYWR5IHx8IDA7XG4gICAgICAgICAgICB2YXIgdmFsaWQgPSBmaWVsZC4kcG9kQ291bnRlcnMudmFsaWQgfHwgMDtcbiAgICAgICAgICAgIHZhciB3YWl0aW5nID0gZmllbGQuJHBvZENvdW50ZXJzLndhaXRpbmcgfHwgMDtcbiAgICAgICAgICAgIHZhciBlcnJvciA9IGZpZWxkLiRwb2RDb3VudGVycy5lcnJvciB8fCAwO1xuICAgICAgICAgICAgcmV0dXJuIHJlYWR5ICsgdmFsaWQgKyB3YWl0aW5nICsgZXJyb3I7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7IGZpZWxkOiAnJHJlcGxpY2FzJyxcbiAgICAgICAgICBkaXNwbGF5TmFtZTogJ1JlcGxpY2FzJyxcbiAgICAgICAgICBjZWxsVGVtcGxhdGU6JHRlbXBsYXRlQ2FjaGUuZ2V0KFwiZGVzaXJlZFJlcGxpY2FzLmh0bWxcIilcbiAgICAgICAgfSxcbiAgICAgICAgeyBmaWVsZDogJyRsYWJlbHNUZXh0JyxcbiAgICAgICAgICBkaXNwbGF5TmFtZTogJ0xhYmVscycsXG4gICAgICAgICAgY2VsbFRlbXBsYXRlOiAkdGVtcGxhdGVDYWNoZS5nZXQoXCJsYWJlbFRlbXBsYXRlLmh0bWxcIilcbiAgICAgICAgfSxcbiAgICAgICAgeyBmaWVsZDogJyRldmVudENvdW50JyxcbiAgICAgICAgICBkaXNwbGF5TmFtZTogJ0V2ZW50cycsXG4gICAgICAgICAgY2VsbFRlbXBsYXRlOiAkdGVtcGxhdGVDYWNoZS5nZXQoXCJldmVudFN1bW1hcnlUZW1wbGF0ZS5odG1sXCIpXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9O1xuXG4gICAgS3ViZXJuZXRlcy5pbml0U2hhcmVkKCRzY29wZSwgJGxvY2F0aW9uLCAkaHR0cCwgJHRpbWVvdXQsICRyb3V0ZVBhcmFtcywgS3ViZXJuZXRlc01vZGVsLCBLdWJlcm5ldGVzU3RhdGUsIEt1YmVybmV0ZXNBcGlVUkwpO1xuXG4gICAgJHNjb3BlLmRlbGV0ZVByb21wdCA9IChzZWxlY3RlZCkgPT4ge1xuICAgICAgaWYgKGFuZ3VsYXIuaXNTdHJpbmcoc2VsZWN0ZWQpKSB7XG4gICAgICAgIHNlbGVjdGVkID0gW3tcbiAgICAgICAgICBpZDogc2VsZWN0ZWRcbiAgICAgICAgfV07XG4gICAgICB9XG4gICAgICBVSS5tdWx0aUl0ZW1Db25maXJtQWN0aW9uRGlhbG9nKDxVSS5NdWx0aUl0ZW1Db25maXJtQWN0aW9uT3B0aW9ucz57XG4gICAgICAgIGNvbGxlY3Rpb246IHNlbGVjdGVkLFxuICAgICAgICBpbmRleDogJ21ldGFkYXRhLm5hbWUnLFxuICAgICAgICBvbkNsb3NlOiAocmVzdWx0OmJvb2xlYW4pID0+IHtcbiAgICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgICBmdW5jdGlvbiBkZWxldGVTZWxlY3RlZChzZWxlY3RlZDpBcnJheTxLdWJlUG9kPiwgbmV4dDpLdWJlUG9kKSB7XG4gICAgICAgICAgICAgIGlmIChuZXh0KSB7XG4gICAgICAgICAgICAgICAgbG9nLmRlYnVnKFwiZGVsZXRpbmc6IFwiLCBnZXROYW1lKG5leHQpKTtcbiAgICAgICAgICAgICAgICBLdWJlcm5ldGVzUmVwbGljYXRpb25Db250cm9sbGVycy5kZWxldGUoe1xuICAgICAgICAgICAgICAgICAgaWQ6IGdldE5hbWUobmV4dClcbiAgICAgICAgICAgICAgICB9LCB1bmRlZmluZWQsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgIGxvZy5kZWJ1ZyhcImRlbGV0ZWQ6IFwiLCBnZXROYW1lKG5leHQpKTtcbiAgICAgICAgICAgICAgICAgIGRlbGV0ZVNlbGVjdGVkKHNlbGVjdGVkLCBzZWxlY3RlZC5zaGlmdCgpKTtcbiAgICAgICAgICAgICAgICB9LCAoZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICAgIGxvZy5kZWJ1ZyhcIkVycm9yIGRlbGV0aW5nOiBcIiwgZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgZGVsZXRlU2VsZWN0ZWQoc2VsZWN0ZWQsIHNlbGVjdGVkLnNoaWZ0KCkpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWxldGVTZWxlY3RlZChzZWxlY3RlZCwgc2VsZWN0ZWQuc2hpZnQoKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB0aXRsZTogJ0RlbGV0ZSByZXBsaWNhdGlvbiBjb250cm9sbGVycz8nLFxuICAgICAgICBhY3Rpb246ICdUaGUgZm9sbG93aW5nIHJlcGxpY2F0aW9uIGNvbnRyb2xsZXJzIHdpbGwgYmUgZGVsZXRlZDonLFxuICAgICAgICBva1RleHQ6ICdEZWxldGUnLFxuICAgICAgICBva0NsYXNzOiAnYnRuLWRhbmdlcicsXG4gICAgICAgIGN1c3RvbTogXCJUaGlzIG9wZXJhdGlvbiBpcyBwZXJtYW5lbnQgb25jZSBjb21wbGV0ZWQhXCIsXG4gICAgICAgIGN1c3RvbUNsYXNzOiBcImFsZXJ0IGFsZXJ0LXdhcm5pbmdcIlxuICAgICAgfSkub3BlbigpO1xuICAgIH07XG4gIH1dKTtcbn1cbiIsIi8vLyA8cmVmZXJlbmNlIHBhdGg9XCIuLi8uLi9pbmNsdWRlcy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJrdWJlcm5ldGVzSGVscGVycy50c1wiLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJrdWJlcm5ldGVzUGx1Z2luLnRzXCIvPlxuXG5tb2R1bGUgS3ViZXJuZXRlcyB7XG5cbiAgZXhwb3J0IHZhciBTZXJ2aWNlQ29udHJvbGxlciA9IGNvbnRyb2xsZXIoXCJTZXJ2aWNlQ29udHJvbGxlclwiLFxuICAgIFtcIiRzY29wZVwiLCBcIkt1YmVybmV0ZXNNb2RlbFwiLCBcIkt1YmVybmV0ZXNTdGF0ZVwiLCBcIiR0ZW1wbGF0ZUNhY2hlXCIsIFwiJGxvY2F0aW9uXCIsIFwiJHJvdXRlUGFyYW1zXCIsIFwiJGh0dHBcIiwgXCIkdGltZW91dFwiLCBcIkt1YmVybmV0ZXNBcGlVUkxcIixcbiAgICAgICgkc2NvcGUsIEt1YmVybmV0ZXNNb2RlbDogS3ViZXJuZXRlcy5LdWJlcm5ldGVzTW9kZWxTZXJ2aWNlLCBLdWJlcm5ldGVzU3RhdGUsXG4gICAgICAgJHRlbXBsYXRlQ2FjaGU6bmcuSVRlbXBsYXRlQ2FjaGVTZXJ2aWNlLCAkbG9jYXRpb246bmcuSUxvY2F0aW9uU2VydmljZSwgJHJvdXRlUGFyYW1zLCAkaHR0cCwgJHRpbWVvdXQsIEt1YmVybmV0ZXNBcGlVUkwpID0+IHtcblxuICAgICRzY29wZS5rdWJlcm5ldGVzID0gS3ViZXJuZXRlc1N0YXRlO1xuICAgICRzY29wZS5tb2RlbCA9IEt1YmVybmV0ZXNNb2RlbDtcbiAgICAkc2NvcGUucmF3TW9kZSA9IGZhbHNlO1xuICAgICRzY29wZS5yYXdNb2RlbCA9IG51bGw7XG5cbiAgICBLdWJlcm5ldGVzLmluaXRTaGFyZWQoJHNjb3BlLCAkbG9jYXRpb24sICRodHRwLCAkdGltZW91dCwgJHJvdXRlUGFyYW1zLCBLdWJlcm5ldGVzTW9kZWwsIEt1YmVybmV0ZXNTdGF0ZSwgS3ViZXJuZXRlc0FwaVVSTCk7XG5cbiAgICAkc2NvcGUuaXRlbUNvbmZpZyA9IHtcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgJ15cXFxcL2xhYmVscyQnOiB7XG4gICAgICAgICAgdGVtcGxhdGU6ICR0ZW1wbGF0ZUNhY2hlLmdldCgnbGFiZWxUZW1wbGF0ZS5odG1sJylcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG5cbiAgICAkc2NvcGUuJG9uKCdrdWJlcm5ldGVzTW9kZWxVcGRhdGVkJywgZnVuY3Rpb24gKCkge1xuICAgICAgdXBkYXRlRGF0YSgpO1xuICAgIH0pO1xuXG4gICAgJHNjb3BlLiR3YXRjaCgnbW9kZWwuc2VydmljZXMnLCAobmV3VmFsdWUsIG9sZFZhbHVlKSA9PiB7XG4gICAgICB1cGRhdGVEYXRhKCk7XG4gICAgfSwgdHJ1ZSk7XG5cbiAgICAkc2NvcGUuJG9uKCckcm91dGVVcGRhdGUnLCAoJGV2ZW50KSA9PiB7XG4gICAgICB1cGRhdGVEYXRhKCk7XG4gICAgfSk7XG5cbiAgICAkc2NvcGUuZmxpcFJhdyA9ICgpID0+IHtcbiAgICAgICRzY29wZS5yYXdNb2RlID0gISRzY29wZS5yYXdNb2RlO1xuICAgICAgQ29yZS4kYXBwbHkoJHNjb3BlKTtcbiAgICB9O1xuXG4gICAgdXBkYXRlRGF0YSgpO1xuXG4gICAgZnVuY3Rpb24gdXBkYXRlRGF0YSgpIHtcbiAgICAgICRzY29wZS5pZCA9ICRyb3V0ZVBhcmFtc1tcImlkXCJdO1xuICAgICAgJHNjb3BlLm5hbWVzcGFjZSA9ICRyb3V0ZVBhcmFtc1tcIm5hbWVzcGFjZVwiXSB8fCBLdWJlcm5ldGVzU3RhdGUuc2VsZWN0ZWROYW1lc3BhY2U7XG4gICAgICAkc2NvcGUuaXRlbSA9ICRzY29wZS5tb2RlbC5nZXRTZXJ2aWNlKCRzY29wZS5uYW1lc3BhY2UsICRzY29wZS5pZCk7XG4gICAgICBpZiAoJHNjb3BlLml0ZW0pIHtcbiAgICAgICAgJHNjb3BlLnJhd01vZGVsID0gdG9SYXdKc29uKCRzY29wZS5pdGVtKTtcbiAgICAgIH1cbiAgICAgIENvcmUuJGFwcGx5KCRzY29wZSk7XG4gICAgfVxuICB9XSk7XG59XG4iLCIvLy8gPHJlZmVyZW5jZSBwYXRoPVwiLi4vLi4vaW5jbHVkZXMudHNcIi8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwia3ViZXJuZXRlc0hlbHBlcnMudHNcIi8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwia3ViZXJuZXRlc1BsdWdpbi50c1wiLz5cblxubW9kdWxlIEt1YmVybmV0ZXMge1xuXG4gIGV4cG9ydCB2YXIgU2VydmljZUVkaXRDb250cm9sbGVyID0gY29udHJvbGxlcihcIlNlcnZpY2VFZGl0Q29udHJvbGxlclwiLFxuICAgIFtcIiRzY29wZVwiLCBcIkt1YmVybmV0ZXNNb2RlbFwiLCBcIkt1YmVybmV0ZXNTdGF0ZVwiLCBcIkt1YmVybmV0ZXNTY2hlbWFcIiwgXCIkdGVtcGxhdGVDYWNoZVwiLCBcIiRsb2NhdGlvblwiLCBcIiRyb3V0ZVBhcmFtc1wiLCBcIiRodHRwXCIsIFwiJHRpbWVvdXRcIiwgXCJLdWJlcm5ldGVzQXBpVVJMXCIsIFwiU2NoZW1hUmVnaXN0cnlcIixcbiAgICAgICgkc2NvcGUsIEt1YmVybmV0ZXNNb2RlbDogS3ViZXJuZXRlcy5LdWJlcm5ldGVzTW9kZWxTZXJ2aWNlLCBLdWJlcm5ldGVzU3RhdGUsIEt1YmVybmV0ZXNTY2hlbWEsXG4gICAgICAgJHRlbXBsYXRlQ2FjaGU6bmcuSVRlbXBsYXRlQ2FjaGVTZXJ2aWNlLCAkbG9jYXRpb246bmcuSUxvY2F0aW9uU2VydmljZSwgJHJvdXRlUGFyYW1zLCAkaHR0cCwgJHRpbWVvdXQsIEt1YmVybmV0ZXNBcGlVUkwsIHNjaGVtYXM6SGF3dGlvRm9ybXMuU2NoZW1hUmVnaXN0cnkpID0+IHtcblxuICAgICRzY29wZS5rdWJlcm5ldGVzID0gS3ViZXJuZXRlc1N0YXRlO1xuICAgICRzY29wZS5tb2RlbCA9IEt1YmVybmV0ZXNNb2RlbDtcbiAgICAkc2NvcGUuaWQgPSAkcm91dGVQYXJhbXNbXCJpZFwiXTtcbiAgICAkc2NvcGUuc2NoZW1hID0gS3ViZXJuZXRlc1NjaGVtYTtcbiAgICAkc2NvcGUuY29uZmlnID0gc2NoZW1hcy5jbG9uZVNjaGVtYShcImlvLmZhYnJpYzgua3ViZXJuZXRlcy5hcGkubW9kZWwuU2VydmljZVwiKTtcbiAgICAvLyRzY29wZS5jb25maWcgPSBLdWJlcm5ldGVzU2NoZW1hLmRlZmluaXRpb25zLmt1YmVybmV0ZXNfdjFiZXRhMl9TZXJ2aWNlO1xuXG4gICAgS3ViZXJuZXRlcy5pbml0U2hhcmVkKCRzY29wZSwgJGxvY2F0aW9uLCAkaHR0cCwgJHRpbWVvdXQsICRyb3V0ZVBhcmFtcywgS3ViZXJuZXRlc01vZGVsLCBLdWJlcm5ldGVzU3RhdGUsIEt1YmVybmV0ZXNBcGlVUkwpO1xuXG4gICAgJHNjb3BlLiRvbignJHJvdXRlVXBkYXRlJywgKCRldmVudCkgPT4ge1xuICAgICAgdXBkYXRlRGF0YSgpO1xuICAgIH0pO1xuXG4gICAgdXBkYXRlRGF0YSgpO1xuXG4gICAgZnVuY3Rpb24gdXBkYXRlRGF0YSgpIHtcbiAgICAgIGlmICgkc2NvcGUuaWQpIHtcbiAgICAgICAgJHNjb3BlLmVudGl0eSA9ICRzY29wZS5tb2RlbC5nZXRTZXJ2aWNlKEt1YmVybmV0ZXNTdGF0ZS5zZWxlY3RlZE5hbWVzcGFjZSwgJHNjb3BlLmlkKTtcbiAgICAgICAgQ29yZS4kYXBwbHkoJHNjb3BlKTtcbiAgICAgICAgJHNjb3BlLmZldGNoZWQgPSB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgJHNjb3BlLmZldGNoZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfV0pO1xufVxuIiwiLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4uLy4uL2luY2x1ZGVzLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cImt1YmVybmV0ZXNIZWxwZXJzLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cImt1YmVybmV0ZXNQbHVnaW4udHNcIi8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwia3ViZXJuZXRlc01vZGVsLnRzXCIvPlxuXG5tb2R1bGUgS3ViZXJuZXRlcyB7XG5cbiAgX21vZHVsZS5mYWN0b3J5KCdTZXJ2aWNlUmVnaXN0cnknLCBbKCkgPT4ge1xuICAgIHJldHVybiBuZXcgU2VydmljZVJlZ2lzdHJ5U2VydmljZSgpO1xuICB9XSk7XG5cbiAgLyoqXG4gICAqIFJlcHJlc2VudHMgYSBzaW1wbGUgaW50ZXJmYWNlIHRvIHNlcnZpY2UgZGlzY292ZXJ5IHRoYXQgY2FuIGJlIHVzZWQgZWFybHkgb24gaW4gdGhlIGFwcGxpY2F0aW9uIGxpZmVjeWNsZSBiZWZvcmUgdGhlXG4gICAqIHVuZGVybHlpbmcgbW9kZWwgaGFzIGJlZW4gY3JlYXRlZCB2aWEgZGVwZW5kZW5jeSBpbmplY3Rpb25cbiAgICovXG4gIGV4cG9ydCBjbGFzcyBTZXJ2aWNlUmVnaXN0cnlTZXJ2aWNlIHtcbiAgICBwcml2YXRlIG1vZGVsOkt1YmVybmV0ZXNNb2RlbFNlcnZpY2UgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0cnVlIGlmIHRoZXJlIGlzIGEgc2VydmljZSBhdmFpbGFibGUgZm9yIHRoZSBnaXZlbiBJRCBvciBmYWxzZVxuICAgICAqL1xuICAgIHB1YmxpYyBoYXNTZXJ2aWNlKHNlcnZpY2VOYW1lOiBzdHJpbmcpIHtcbiAgICAgIHJldHVybiB0aGlzLmZpbmRTZXJ2aWNlKHNlcnZpY2VOYW1lKSA/IHRydWUgOiBmYWxzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBzZXJ2aWNlIGZvciB0aGUgZ2l2ZW4gc2VydmljZSBuYW1lIChJRCkgb3IgbnVsbCBpZiBpdCBjYW5ub3QgYmUgZm91bmRcbiAgICAgKlxuICAgICAqIEBwYXJhbSBzZXJ2aWNlTmFtZSB0aGUgbmFtZSBvZiB0aGUgc2VydmljZSB0byBsb29rIGZvclxuICAgICAqIEByZXR1cm4ge251bGx9XG4gICAgICovXG4gICAgcHVibGljIGZpbmRTZXJ2aWNlKHNlcnZpY2VOYW1lOiBzdHJpbmcpIHtcbiAgICAgIHZhciBhbnN3ZXIgPSBudWxsO1xuICAgICAgaWYgKHNlcnZpY2VOYW1lKSB7XG4gICAgICAgIHZhciBtb2RlbCA9IHRoaXMuZ2V0TW9kZWwoKTtcbiAgICAgICAgaWYgKG1vZGVsKSB7XG4gICAgICAgICAgdmFyIG5hbWVzcGFjZSA9IG1vZGVsLmN1cnJlbnROYW1lc3BhY2UoKTtcbiAgICAgICAgICByZXR1cm4gbW9kZWwuZ2V0U2VydmljZShuYW1lc3BhY2UgLHNlcnZpY2VOYW1lKTtcbi8qXG4gICAgICAgIFRPRE8gbGV0cyBvbmx5IGxvb2sgaW4gdGhlIGN1cnJlbnQgbmFtZXNwYWNlXG4gICAgICAgIGFuZ3VsYXIuZm9yRWFjaChtb2RlbC5zZXJ2aWNlcywgKHNlcnZpY2UpID0+IHtcbiAgICAgICAgICBpZiAoc2VydmljZU5hbWUgPT09IGdldE5hbWUoc2VydmljZSkpIHtcbiAgICAgICAgICAgIGFuc3dlciA9IHNlcnZpY2U7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiovXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBhbnN3ZXI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgc2VydmljZSBsaW5rIGZvciB0aGUgZ2l2ZW4gc2VydmljZSBuYW1lXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc2VydmljZU5hbWUgdGhlIG5hbWUgb2YgdGhlIHNlcnZpY2VcbiAgICAgKiBAcmV0dXJuIHtudWxsfVxuICAgICAqL1xuICAgIHB1YmxpYyBzZXJ2aWNlTGluayhzZXJ2aWNlTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgIHZhciBzZXJ2aWNlID0gdGhpcy5maW5kU2VydmljZShzZXJ2aWNlTmFtZSk7XG4gICAgICByZXR1cm4gc2VydmljZUxpbmtVcmwoc2VydmljZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgc2VydmljZSBsaW5rIGZvciB0aGUgZ2l2ZW4gc2VydmljZSBuYW1lIGlmIGl0cyByZWFkeSAoaGFzIGF0IGxlYXN0IG9uZSByZWFkeSBwb2QpXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc2VydmljZU5hbWUgdGhlIG5hbWUgb2YgdGhlIHNlcnZpY2VcbiAgICAgKiBAcmV0dXJuIHtudWxsfVxuICAgICAqL1xuICAgIHB1YmxpYyBzZXJ2aWNlUmVhZHlMaW5rKHNlcnZpY2VOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgdmFyIHNlcnZpY2UgPSB0aGlzLmZpbmRTZXJ2aWNlKHNlcnZpY2VOYW1lKTtcbiAgICAgIGlmIChyZWFkeVBvZENvdW50KHNlcnZpY2UpKSB7XG4gICAgICAgIHJldHVybiBzZXJ2aWNlTGlua1VybChzZXJ2aWNlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0TW9kZWwoKTpLdWJlcm5ldGVzTW9kZWxTZXJ2aWNlIHtcbiAgICAgIHZhciBhbnN3ZXIgPSB0aGlzLm1vZGVsO1xuICAgICAgLy8gbGV0cyBhbGxvdyBsYXp5IGxvYWQgc28gd2UgY2FuIGJlIGludm9rZWQgYmVmb3JlIHRoZSBpbmplY3RvciBoYXMgYmVlbiBjcmVhdGVkXG4gICAgICBpZiAoIWFuc3dlcikge1xuICAgICAgICB2YXIgaW5qZWN0b3IgPSBIYXd0aW9Db3JlLmluamVjdG9yO1xuICAgICAgICBpZiAoaW5qZWN0b3IpIHtcbiAgICAgICAgICB0aGlzLm1vZGVsID0gaW5qZWN0b3IuZ2V0KCdLdWJlcm5ldGVzTW9kZWwnKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgYW5zd2VyID0gdGhpcy5tb2RlbDtcbiAgICAgIHJldHVybiBhbnN3ZXI7XG4gICAgfVxuICB9XG59XG4iLCIvLy8gPHJlZmVyZW5jZSBwYXRoPVwiLi4vLi4vaW5jbHVkZXMudHNcIi8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwia3ViZXJuZXRlc0hlbHBlcnMudHNcIi8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwia3ViZXJuZXRlc1BsdWdpbi50c1wiLz5cblxubW9kdWxlIEt1YmVybmV0ZXMge1xuXG4gIGV4cG9ydCB2YXIgU2VydmljZXMgPSBjb250cm9sbGVyKFwiU2VydmljZXNcIixcbiAgICBbXCIkc2NvcGVcIiwgXCJLdWJlcm5ldGVzTW9kZWxcIiwgXCJLdWJlcm5ldGVzU2VydmljZXNcIiwgXCJLdWJlcm5ldGVzUG9kc1wiLCBcIkt1YmVybmV0ZXNTdGF0ZVwiLCBcIiR0ZW1wbGF0ZUNhY2hlXCIsIFwiJGxvY2F0aW9uXCIsIFwiJHJvdXRlUGFyYW1zXCIsIFwiJGh0dHBcIiwgXCIkdGltZW91dFwiLCBcIkt1YmVybmV0ZXNBcGlVUkxcIixcbiAgICAgICgkc2NvcGUsIEt1YmVybmV0ZXNNb2RlbDogS3ViZXJuZXRlcy5LdWJlcm5ldGVzTW9kZWxTZXJ2aWNlLCBLdWJlcm5ldGVzU2VydmljZXM6bmcucmVzb3VyY2UuSVJlc291cmNlQ2xhc3MsIEt1YmVybmV0ZXNQb2RzOm5nLnJlc291cmNlLklSZXNvdXJjZUNsYXNzLCBLdWJlcm5ldGVzU3RhdGUsXG4gICAgICAgJHRlbXBsYXRlQ2FjaGU6bmcuSVRlbXBsYXRlQ2FjaGVTZXJ2aWNlLCAkbG9jYXRpb246bmcuSUxvY2F0aW9uU2VydmljZSwgJHJvdXRlUGFyYW1zLCAkaHR0cCwgJHRpbWVvdXQsIEt1YmVybmV0ZXNBcGlVUkwpID0+IHtcblxuICAgICRzY29wZS5rdWJlcm5ldGVzID0gS3ViZXJuZXRlc1N0YXRlO1xuICAgICRzY29wZS5tb2RlbCA9IEt1YmVybmV0ZXNNb2RlbDtcblxuICAgIENvbnRyb2xsZXJIZWxwZXJzLmJpbmRNb2RlbFRvU2VhcmNoUGFyYW0oJHNjb3BlLCAkbG9jYXRpb24sICdtb2RlJywgJ21vZGUnLCAnbGlzdCcpO1xuXG4gICAgJHNjb3BlLnRhYmxlQ29uZmlnID0ge1xuICAgICAgZGF0YTogJ21vZGVsLnNlcnZpY2VzJyxcbiAgICAgIHNob3dTZWxlY3Rpb25DaGVja2JveDogdHJ1ZSxcbiAgICAgIGVuYWJsZVJvd0NsaWNrU2VsZWN0aW9uOiBmYWxzZSxcbiAgICAgIG11bHRpU2VsZWN0OiB0cnVlLFxuICAgICAgc2VsZWN0ZWRJdGVtczogW10sXG4gICAgICBmaWx0ZXJPcHRpb25zOiB7XG4gICAgICAgIGZpbHRlclRleHQ6ICRsb2NhdGlvbi5zZWFyY2goKVtcInFcIl0gfHwgJydcbiAgICAgIH0sXG4gICAgICBjb2x1bW5EZWZzOiBbXG4gICAgICAgIHsgZmllbGQ6ICdfa2V5JyxcbiAgICAgICAgICBkaXNwbGF5TmFtZTogJ05hbWUnLFxuICAgICAgICAgIGNlbGxUZW1wbGF0ZTogJHRlbXBsYXRlQ2FjaGUuZ2V0KFwiaWRUZW1wbGF0ZS5odG1sXCIpXG4gICAgICAgIH0sXG4gICAgICAgIHsgZmllbGQ6ICckc2VydmljZVVybCcsXG4gICAgICAgICAgZGlzcGxheU5hbWU6ICdBZGRyZXNzJyxcbiAgICAgICAgICBjZWxsVGVtcGxhdGU6ICR0ZW1wbGF0ZUNhY2hlLmdldChcInBvcnRhbEFkZHJlc3MuaHRtbFwiKVxuICAgICAgICB9LFxuICAgICAgICB7IGZpZWxkOiAnJHBvZENvdW50JyxcbiAgICAgICAgICBkaXNwbGF5TmFtZTogJ1BvZHMnLFxuICAgICAgICAgIGNlbGxUZW1wbGF0ZTogJHRlbXBsYXRlQ2FjaGUuZ2V0KFwicG9kQ291bnRzQW5kTGlua1RlbXBsYXRlLmh0bWxcIiksXG4gICAgICAgICAgY3VzdG9tU29ydEZpZWxkOiAoZmllbGQpID0+IHtcbiAgICAgICAgICAgIC8vIG5lZWQgdG8gY29uY2F0IGFsbCB0aGUgcG9kIGNvdW50ZXJzXG4gICAgICAgICAgICB2YXIgcmVhZHkgPSBmaWVsZC4kcG9kQ291bnRlcnMucmVhZHkgfHwgMDtcbiAgICAgICAgICAgIHZhciB2YWxpZCA9IGZpZWxkLiRwb2RDb3VudGVycy52YWxpZCB8fCAwO1xuICAgICAgICAgICAgdmFyIHdhaXRpbmcgPSBmaWVsZC4kcG9kQ291bnRlcnMud2FpdGluZyB8fCAwO1xuICAgICAgICAgICAgdmFyIGVycm9yID0gZmllbGQuJHBvZENvdW50ZXJzLmVycm9yIHx8IDA7XG4gICAgICAgICAgICByZXR1cm4gcmVhZHkgKyB2YWxpZCArIHdhaXRpbmcgKyBlcnJvcjtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHsgZmllbGQ6ICckc2VsZWN0b3JUZXh0JyxcbiAgICAgICAgICBkaXNwbGF5TmFtZTogJ1NlbGVjdG9yJyxcbiAgICAgICAgICBjZWxsVGVtcGxhdGU6ICR0ZW1wbGF0ZUNhY2hlLmdldChcInNlbGVjdG9yVGVtcGxhdGUuaHRtbFwiKVxuICAgICAgICB9LFxuICAgICAgICB7IGZpZWxkOiAnJGxhYmVsc1RleHQnLFxuICAgICAgICAgIGRpc3BsYXlOYW1lOiAnTGFiZWxzJyxcbiAgICAgICAgICBjZWxsVGVtcGxhdGU6ICR0ZW1wbGF0ZUNhY2hlLmdldChcImxhYmVsVGVtcGxhdGUuaHRtbFwiKVxuICAgICAgICB9XG4gICAgICBdXG4gICAgfTtcblxuICAgIEt1YmVybmV0ZXMuaW5pdFNoYXJlZCgkc2NvcGUsICRsb2NhdGlvbiwgJGh0dHAsICR0aW1lb3V0LCAkcm91dGVQYXJhbXMsIEt1YmVybmV0ZXNNb2RlbCwgS3ViZXJuZXRlc1N0YXRlLCBLdWJlcm5ldGVzQXBpVVJMKTtcblxuICAgICRzY29wZS5kZWxldGVQcm9tcHQgPSAoc2VsZWN0ZWQpID0+IHtcbiAgICAgIGlmIChhbmd1bGFyLmlzU3RyaW5nKHNlbGVjdGVkKSkge1xuICAgICAgICBzZWxlY3RlZCA9IFt7XG4gICAgICAgICAgaWQ6IHNlbGVjdGVkXG4gICAgICAgIH1dO1xuICAgICAgfVxuICAgICAgVUkubXVsdGlJdGVtQ29uZmlybUFjdGlvbkRpYWxvZyg8VUkuTXVsdGlJdGVtQ29uZmlybUFjdGlvbk9wdGlvbnM+e1xuICAgICAgICBjb2xsZWN0aW9uOiBzZWxlY3RlZCxcbiAgICAgICAgaW5kZXg6ICdtZXRhZGF0YS5uYW1lJyxcbiAgICAgICAgb25DbG9zZTogKHJlc3VsdDpib29sZWFuKSA9PiB7XG4gICAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgICAgZnVuY3Rpb24gZGVsZXRlU2VsZWN0ZWQoc2VsZWN0ZWQ6QXJyYXk8S3ViZVBvZD4sIG5leHQ6S3ViZVBvZCkge1xuICAgICAgICAgICAgICBpZiAobmV4dCkge1xuICAgICAgICAgICAgICAgIGxvZy5kZWJ1ZyhcImRlbGV0aW5nOiBcIiwgZ2V0TmFtZShuZXh0KSk7XG4gICAgICAgICAgICAgICAgS3ViZXJuZXRlc1NlcnZpY2VzLmRlbGV0ZSh7XG4gICAgICAgICAgICAgICAgICBpZDogZ2V0TmFtZShuZXh0KVxuICAgICAgICAgICAgICAgIH0sIHVuZGVmaW5lZCwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgbG9nLmRlYnVnKFwiZGVsZXRlZDogXCIsIGdldE5hbWUobmV4dCkpO1xuICAgICAgICAgICAgICAgICAgZGVsZXRlU2VsZWN0ZWQoc2VsZWN0ZWQsIHNlbGVjdGVkLnNoaWZ0KCkpO1xuICAgICAgICAgICAgICAgIH0sIChlcnJvcikgPT4ge1xuICAgICAgICAgICAgICAgICAgbG9nLmRlYnVnKFwiRXJyb3IgZGVsZXRpbmc6IFwiLCBlcnJvcik7XG4gICAgICAgICAgICAgICAgICBkZWxldGVTZWxlY3RlZChzZWxlY3RlZCwgc2VsZWN0ZWQuc2hpZnQoKSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlbGV0ZVNlbGVjdGVkKHNlbGVjdGVkLCBzZWxlY3RlZC5zaGlmdCgpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHRpdGxlOiAnRGVsZXRlIHNlcnZpY2VzPycsXG4gICAgICAgIGFjdGlvbjogJ1RoZSBmb2xsb3dpbmcgc2VydmljZXMgd2lsbCBiZSBkZWxldGVkOicsXG4gICAgICAgIG9rVGV4dDogJ0RlbGV0ZScsXG4gICAgICAgIG9rQ2xhc3M6ICdidG4tZGFuZ2VyJyxcbiAgICAgICAgY3VzdG9tOiBcIlRoaXMgb3BlcmF0aW9uIGlzIHBlcm1hbmVudCBvbmNlIGNvbXBsZXRlZCFcIixcbiAgICAgICAgY3VzdG9tQ2xhc3M6IFwiYWxlcnQgYWxlcnQtd2FybmluZ1wiXG4gICAgICB9KS5vcGVuKCk7XG4gICAgfTtcblxuICB9XSk7XG59XG4iLCIvLy8gPHJlZmVyZW5jZSBwYXRoPVwiLi4vLi4vaW5jbHVkZXMudHNcIi8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwia3ViZXJuZXRlc0hlbHBlcnMudHNcIi8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwia3ViZXJuZXRlc1BsdWdpbi50c1wiLz5cblxubW9kdWxlIEt1YmVybmV0ZXMge1xuXG4gIC8vIGNvbnRyb2xsZXIgZm9yIHRoZSBzdGF0dXMgaWNvbiBjZWxsXG4gIGV4cG9ydCB2YXIgUG9kU3RhdHVzID0gY29udHJvbGxlcihcIlBvZFN0YXR1c1wiLCBbXCIkc2NvcGVcIiwgKCRzY29wZSkgPT4ge1xuICAgICRzY29wZS5zdGF0dXNNYXBwaW5nID0gKHRleHQpID0+IHtcbiAgICAgIHJldHVybiBzdGF0dXNUZXh0VG9Dc3NDbGFzcyh0ZXh0KTtcbiAgICB9XG4gIH1dKTtcblxuICBfbW9kdWxlLmNvbnRyb2xsZXIoXCJLdWJlcm5ldGVzLlRlcm1Db250cm9sbGVyXCIsICgkc2NvcGUsIFRlcm1pbmFsU2VydmljZSkgPT4ge1xuICAgICRzY29wZS5jYW5Db25uZWN0VG8gPSAoY29udGFpbmVyKSA9PiB7XG4gICAgICBpZiAoY29udGFpbmVyLnNlY3VyaXR5Q29udGV4dCAmJiBjb250YWluZXIuc2VjdXJpdHlDb250ZXh0LnByaXZpbGVnZWQpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgICRzY29wZS5vcGVuVGVybWluYWwgPSAoc2VsZkxpbmssIGNvbnRhaW5lck5hbWUpID0+IHtcbiAgICAgIHZhciBpZCA9IFRlcm1pbmFsU2VydmljZS5uZXdUZXJtaW5hbChzZWxmTGluaywgY29udGFpbmVyTmFtZSk7XG4gICAgICBsb2cuZGVidWcoXCJDcmVhdGVkIHRlcm1pbmFsLCBpZDogXCIsIGlkKTtcbiAgICB9XG4gIH0pO1xuXG4gIC8vIGNvbnRyb2xsZXIgdGhhdCBkZWFscyB3aXRoIHRoZSBsYWJlbHMgcGVyIHBvZFxuICBleHBvcnQgdmFyIExhYmVscyA9IGNvbnRyb2xsZXIoXCJMYWJlbHNcIiwgW1wiJHNjb3BlXCIsIFwiJGxvY2F0aW9uXCIsICgkc2NvcGUsICRsb2NhdGlvbikgPT4ge1xuICAgICRzY29wZS5sYWJlbHMgPSBbXTtcbiAgICB2YXIgbGFiZWxLZXlXZWlnaHRzID0ge1xuICAgICAgXCJuYW1lXCI6IDEsXG4gICAgICBcInJlcGxpY2F0aW9uQ29udHJvbGxlclwiOiAyLFxuICAgICAgXCJncm91cFwiOiAzXG4gICAgfTtcbiAgICAkc2NvcGUuJHdhdGNoKCdlbnRpdHknLCAobmV3VmFsdWUsIG9sZFZhbHVlKSA9PiB7XG4gICAgICBpZiAobmV3VmFsdWUpIHtcbiAgICAgICAgLy8gbG9nLmRlYnVnKFwibGFiZWxzOiBcIiwgbmV3VmFsdWUpO1xuICAgICAgICAvLyBtYXNzYWdlIHRoZSBsYWJlbHMgYSBiaXRcbiAgICAgICAgJHNjb3BlLmxhYmVscyA9IFtdO1xuICAgICAgICBhbmd1bGFyLmZvckVhY2goQ29yZS5wYXRoR2V0KCRzY29wZS5lbnRpdHksIFtcIm1ldGFkYXRhXCIsIFwibGFiZWxzXCJdKSwgKHZhbHVlLCBrZXkpID0+IHtcbiAgICAgICAgICBpZiAoa2V5ID09PSAnZmFicmljOCcpIHtcbiAgICAgICAgICAgIC8vIFRPRE8gbm90IHN1cmUgd2hhdCB0aGlzIGlzIGZvciwgdGhlIGNvbnRhaW5lciB0eXBlP1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICAkc2NvcGUubGFiZWxzLnB1c2goe1xuICAgICAgICAgICAga2V5OiBrZXksXG4gICAgICAgICAgICB0aXRsZTogdmFsdWVcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gIGxldHMgc29ydCBieSBrZXkgYnV0IGxldHMgbWFrZSBzdXJlIHRoYXQgd2Ugd2VpZ2h0IGNlcnRhaW4gbGFiZWxzIHNvIHRoZXkgYXJlIGZpcnN0XG4gICAgICAgICRzY29wZS5sYWJlbHMgPSAkc2NvcGUubGFiZWxzLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgICAgICBmdW5jdGlvbiBnZXRXZWlnaHQoa2V5KSB7XG4gICAgICAgICAgICByZXR1cm4gbGFiZWxLZXlXZWlnaHRzW2tleV0gfHwgMTAwMDtcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIG4xID0gYVtcImtleVwiXTtcbiAgICAgICAgICB2YXIgbjIgPSBiW1wia2V5XCJdO1xuICAgICAgICAgIHZhciB3MSA9IGdldFdlaWdodChuMSk7XG4gICAgICAgICAgdmFyIHcyID0gZ2V0V2VpZ2h0KG4yKTtcbiAgICAgICAgICB2YXIgZGlmZiA9IHcxIC0gdzI7XG4gICAgICAgICAgaWYgKGRpZmYgPCAwKSB7XG4gICAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgICAgfSBlbHNlIGlmIChkaWZmID4gMCkge1xuICAgICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChuMSAmJiBuMikge1xuICAgICAgICAgICAgaWYgKG4xID4gbjIpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG4xIDwgbjIpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChuMSA9PT0gbjIpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG4xKSB7XG4gICAgICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAkc2NvcGUuaGFuZGxlQ2xpY2sgPSAoZW50aXR5LCBsYWJlbFR5cGU6c3RyaW5nLCB2YWx1ZSkgPT4ge1xuICAgICAgLy8gbG9nLmRlYnVnKFwiaGFuZGxlQ2xpY2ssIGVudGl0eTogXCIsIGVudGl0eSwgXCIga2V5OiBcIiwgbGFiZWxUeXBlLCBcIiB2YWx1ZTogXCIsIHZhbHVlKTtcbiAgICAgIHZhciBmaWx0ZXJUZXh0U2VjdGlvbiA9IGxhYmVsVHlwZSArIFwiPVwiICsgdmFsdWUudGl0bGU7XG4gICAgICAkc2NvcGUuJGVtaXQoJ2xhYmVsRmlsdGVyVXBkYXRlJywgZmlsdGVyVGV4dFNlY3Rpb24pO1xuICAgIH07XG5cbiAgICAkc2NvcGUubGFiZWxDbGFzcyA9IGNvbnRhaW5lckxhYmVsQ2xhc3M7XG4gIH1dKTtcblxufVxuIiwiLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4uLy4uL2luY2x1ZGVzLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cImt1YmVybmV0ZXNIZWxwZXJzLnRzXCIvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cImt1YmVybmV0ZXNQbHVnaW4udHNcIi8+XG5cbm1vZHVsZSBLdWJlcm5ldGVzIHtcblxuICBfbW9kdWxlLmRpcmVjdGl2ZShcImhhd3Rpb1RhYnNcIiwgKCkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICB0ZW1wbGF0ZVVybDogS3ViZXJuZXRlcy50ZW1wbGF0ZVBhdGggKyAndGFicy5odG1sJ1xuICAgIH07XG4gIH0pO1xufVxuIiwiLy8vIDxyZWZlcmVuY2UgcGF0aD1cImt1YmVybmV0ZXNQbHVnaW4udHNcIi8+XG5cbm1vZHVsZSBLdWJlcm5ldGVzIHtcbiAgZXhwb3J0IHZhciBUZW1wbGF0ZUNvbnRyb2xsZXIgPSBjb250cm9sbGVyKFwiVGVtcGxhdGVDb250cm9sbGVyXCIsIFtcbiAgICBcIiRzY29wZVwiLCBcIiRsb2NhdGlvblwiLCBcIiRodHRwXCIsIFwiJHRpbWVvdXRcIiwgXCIkcm91dGVQYXJhbXNcIiwgXCJtYXJrZWRcIiwgXCIkdGVtcGxhdGVDYWNoZVwiLCBcIiRtb2RhbFwiLCBcIkt1YmVybmV0ZXNNb2RlbFwiLCBcIkt1YmVybmV0ZXNTdGF0ZVwiLCBcIkt1YmVybmV0ZXNBcGlVUkxcIixcbiAgICAoJHNjb3BlLCAkbG9jYXRpb24sICRodHRwLCAkdGltZW91dCwgJHJvdXRlUGFyYW1zLCBtYXJrZWQsICR0ZW1wbGF0ZUNhY2hlLCAkbW9kYWwsIEt1YmVybmV0ZXNNb2RlbCwgS3ViZXJuZXRlc1N0YXRlLCBLdWJlcm5ldGVzQXBpVVJMKSA9PiB7XG4gICAgdmFyIG1vZGVsID0gJHNjb3BlLm1vZGVsID0gS3ViZXJuZXRlc01vZGVsO1xuICAgICRzY29wZS5maWx0ZXJUZXh0ID0gJGxvY2F0aW9uLnNlYXJjaCgpW1wicVwiXTtcblxuICAgICRzY29wZS53YXRjaCA9IHdhdGNoZXNbV2F0Y2hUeXBlcy5URU1QTEFURVNdO1xuXG4gICAgJHNjb3BlLnRhcmdldE5hbWVzcGFjZSA9ICRyb3V0ZVBhcmFtcy50YXJnZXROYW1lc3BhY2U7XG4gICAgaW5pdFNoYXJlZCgkc2NvcGUsICRsb2NhdGlvbiwgJGh0dHAsICR0aW1lb3V0LCAkcm91dGVQYXJhbXMsIEt1YmVybmV0ZXNNb2RlbCwgS3ViZXJuZXRlc1N0YXRlLCBLdWJlcm5ldGVzQXBpVVJMKTtcblxuICAgIHJlbG9hZERhdGFJZk5vV2F0Y2goKTtcblxuXG4gICAgJHNjb3BlLiR3YXRjaENvbGxlY3Rpb24oJ21vZGVsLm5hbWVzcGFjZXMnLCAoKSA9PiB7XG4gICAgICBpZiAoISRzY29wZS50YXJnZXROYW1lc3BhY2UpIHtcbiAgICAgICAgJHNjb3BlLnRhcmdldE5hbWVzcGFjZSA9IG1vZGVsLmN1cnJlbnROYW1lc3BhY2UoKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHZhciByZXR1cm5UbyA9IG5ldyBVUkkoJGxvY2F0aW9uLnNlYXJjaCgpWydyZXR1cm5UbyddIHx8ICcva3ViZXJuZXRlcy9hcHBzJyk7XG5cbiAgICBmdW5jdGlvbiBnb0JhY2soKSB7XG4gICAgICAkbG9jYXRpb24ucGF0aChyZXR1cm5Uby5wYXRoKCkpLnNlYXJjaChyZXR1cm5Uby5xdWVyeSh0cnVlKSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0QW5ub3RhdGlvbnMob2JqKSB7XG4gICAgICByZXR1cm4gQ29yZS5wYXRoR2V0KG9iaiwgWydtZXRhZGF0YScsICdhbm5vdGF0aW9ucyddKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXRWYWx1ZUZvcihvYmosIGtleSkge1xuICAgICAgdmFyIGFubm90YXRpb25zID0gZ2V0QW5ub3RhdGlvbnMob2JqKTtcbiAgICAgIGlmICghYW5ub3RhdGlvbnMpIHtcbiAgICAgICAgcmV0dXJuIFwiXCI7XG4gICAgICB9XG4gICAgICB2YXIgbmFtZSA9IGdldE5hbWUob2JqKTtcbiAgICAgIGlmIChuYW1lKSB7XG4gICAgICAgIHZhciBmdWxsS2V5ID0gXCJmYWJyaWM4LlwiICsgbmFtZSArIFwiL1wiICsga2V5O1xuICAgICAgICB2YXIgYW5zd2VyID0gYW5ub3RhdGlvbnNbZnVsbEtleV07XG4gICAgICAgIGlmIChhbnN3ZXIpIHtcbiAgICAgICAgICByZXR1cm4gYW5zd2VyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB2YXIga2V5OiBhbnkgPSBfLmZpbmQoXy5rZXlzKGFubm90YXRpb25zKSwgKGs6IHN0cmluZykgPT4gXy5lbmRzV2l0aChrLCBrZXkpKTtcbiAgICAgIGlmIChrZXkpIHtcbiAgICAgICAgcmV0dXJuIGFubm90YXRpb25zW2tleV07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gXCJcIjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAkc2NvcGUuY2FuY2VsID0gKCkgPT4ge1xuICAgICAgaWYgKCRzY29wZS5mb3JtQ29uZmlnKSB7XG4gICAgICAgIGRlbGV0ZSAkc2NvcGUuZm9ybUNvbmZpZztcbiAgICAgICAgZGVsZXRlICRzY29wZS5lbnRpdHk7XG4gICAgICAgICRzY29wZS5vYmplY3RzID0gdW5kZWZpbmVkO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBnb0JhY2soKTtcbiAgICB9XG5cbiAgICAvKlxuICAgICRzY29wZS4kd2F0Y2goJ21vZGVsLnRlbXBsYXRlcy5sZW5ndGgnLCAobmV3VmFsdWUpID0+IHtcbiAgICAgIGlmIChuZXdWYWx1ZSA9PT0gMCkge1xuICAgICAgICBnb0JhY2soKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICAqL1xuXG4gICAgJHNjb3BlLmZpbHRlclRlbXBsYXRlcyA9ICh0ZW1wbGF0ZSkgPT4ge1xuICAgICAgaWYgKENvcmUuaXNCbGFuaygkc2NvcGUuZmlsdGVyVGV4dCkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gXy5jb250YWlucyhhbmd1bGFyLnRvSnNvbih0ZW1wbGF0ZSksICRzY29wZS5maWx0ZXJUZXh0LnRvTG93ZXJDYXNlKCkpO1xuICAgIH07XG5cbiAgICAkc2NvcGUub3BlbkZ1bGxEZXNjcmlwdGlvbiA9ICh0ZW1wbGF0ZSkgPT4ge1xuICAgICAgdmFyIHRleHQgPSBtYXJrZWQoZ2V0VmFsdWVGb3IodGVtcGxhdGUsICdkZXNjcmlwdGlvbicpIHx8ICdObyBkZXNjcmlwdGlvbicpO1xuICAgICAgdmFyIG1vZGFsID0gJG1vZGFsLm9wZW4oe1xuICAgICAgICB0ZW1wbGF0ZVVybDogVXJsSGVscGVycy5qb2luKHRlbXBsYXRlUGF0aCwgJ3RlbXBsYXRlRGVzY3JpcHRpb24uaHRtbCcpLFxuICAgICAgICBjb250cm9sbGVyOiBbJyRzY29wZScsICckbW9kYWxJbnN0YW5jZScsICgkc2NvcGUsICRtb2RhbEluc3RhbmNlKSA9PiB7XG4gICAgICAgICAgJHNjb3BlLnRleHQgPSB0ZXh0LFxuICAgICAgICAgICRzY29wZS5vayA9ICgpID0+IHtcbiAgICAgICAgICAgIG1vZGFsLmNsb3NlKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XVxuICAgICAgfSk7XG4gICAgfTtcblxuICAgICRzY29wZS5nZXREZXNjcmlwdGlvbiA9ICh0ZW1wbGF0ZSkgPT4ge1xuICAgICAgdmFyIGFuc3dlcjphbnkgPSAkKG1hcmtlZChnZXRWYWx1ZUZvcih0ZW1wbGF0ZSwgJ2Rlc2NyaXB0aW9uJykgfHwgJ05vIGRlc2NyaXB0aW9uJykpO1xuICAgICAgdmFyIHRleHREZWZhdWx0ID0gYW5zd2VyLmh0bWwoKTtcbiAgICAgIHZhciBtYXhMZW5ndGggPSAyMDA7XG4gICAgICBpZiAodGV4dERlZmF1bHQubGVuZ3RoID4gbWF4TGVuZ3RoKSB7XG4gICAgICAgIHZhciB0cnVuY2F0ZWQgPSAkLnRyaW0odGV4dERlZmF1bHQpLnN1YnN0cmluZygwLCBtYXhMZW5ndGgpLnNwbGl0KCcgJykuc2xpY2UoMCwgLTEpLmpvaW4oJyAnKTtcbiAgICAgICAgYW5zd2VyLmh0bWwodHJ1bmNhdGVkICsgJy4uLicpO1xuICAgICAgICBhbnN3ZXIuYXBwZW5kKCR0ZW1wbGF0ZUNhY2hlLmdldCgndHJ1bmNhdGVkRGVzY3JpcHRpb25UYWcuaHRtbCcpKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBhbnN3ZXIuaHRtbCgpO1xuICAgIH07XG5cbiAgICAkc2NvcGUuZ2V0SWNvblVybCA9ICh0ZW1wbGF0ZSkgPT4ge1xuICAgICAgcmV0dXJuIGdldFZhbHVlRm9yKHRlbXBsYXRlLCAnaWNvblVybCcpIHx8IGRlZmF1bHRJY29uVXJsO1xuICAgIH07XG5cbiAgICAkc2NvcGUuZGVwbG95VGVtcGxhdGUgPSAodGVtcGxhdGUpID0+IHtcbiAgICAgIGxvZy5kZWJ1ZyhcIlRlbXBsYXRlIHBhcmFtZXRlcnM6IFwiLCB0ZW1wbGF0ZS5wYXJhbWV0ZXJzKTtcbiAgICAgIGxvZy5kZWJ1ZyhcIlRlbXBsYXRlIG9iamVjdHM6IFwiLCB0ZW1wbGF0ZS5vYmplY3RzKTtcbiAgICAgIGxvZy5kZWJ1ZyhcIlRlbXBsYXRlIGFubm90YXRpb25zOiBcIiwgdGVtcGxhdGUubWV0YWRhdGEuYW5ub3RhdGlvbnMpO1xuICAgICAgdmFyIHRlbXBsYXRlQW5ub3RhdGlvbnMgPSB0ZW1wbGF0ZS5tZXRhZGF0YS5hbm5vdGF0aW9ucztcbiAgICAgIGlmICh0ZW1wbGF0ZUFubm90YXRpb25zKSB7XG4gICAgICAgIF8uZm9yRWFjaCh0ZW1wbGF0ZS5vYmplY3RzLCAob2JqZWN0OmFueSkgPT4ge1xuICAgICAgICAgIHZhciBhbm5vdGF0aW9ucyA9IG9iamVjdC5tZXRhZGF0YS5hbm5vdGF0aW9ucyB8fCB7fTtcbiAgICAgICAgICB2YXIgbmFtZSA9IGdldE5hbWUob2JqZWN0KTtcbiAgICAgICAgICB2YXIgbWF0Y2hlcyA9IF8uZmlsdGVyKF8ua2V5cyh0ZW1wbGF0ZUFubm90YXRpb25zKSwgKGtleSkgPT4ga2V5Lm1hdGNoKCcuJyArIG5hbWUgKyAnLycpKTtcbiAgICAgICAgICBtYXRjaGVzLmZvckVhY2goKG1hdGNoKSA9PiB7XG4gICAgICAgICAgICBpZiAoIShtYXRjaCBpbiBhbm5vdGF0aW9ucykpIHtcbiAgICAgICAgICAgICAgYW5ub3RhdGlvbnNbbWF0Y2hdID0gdGVtcGxhdGVBbm5vdGF0aW9uc1ttYXRjaF07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgb2JqZWN0Lm1ldGFkYXRhLmFubm90YXRpb25zID0gYW5ub3RhdGlvbnM7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgdmFyIHJvdXRlU2VydmljZU5hbWUgPSA8c3RyaW5nPiB1bmRlZmluZWQ7XG4gICAgICB2YXIgc2VydmljZSA9IF8uZmluZCh0ZW1wbGF0ZS5vYmplY3RzLCAob2JqKSA9PiB7XG4gICAgICAgIGlmIChnZXRLaW5kKG9iaikgPT09IFwiU2VydmljZVwiKSB7XG4gICAgICAgICAgdmFyIHBvcnRzID0gZ2V0UG9ydHMob2JqKTtcbiAgICAgICAgICBpZiAocG9ydHMgJiYgcG9ydHMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIGlmIChzZXJ2aWNlKSB7XG4gICAgICAgIHJvdXRlU2VydmljZU5hbWUgPSBnZXROYW1lKHNlcnZpY2UpO1xuICAgICAgfVxuICAgICAgbG9nLmRlYnVnKFwiU2VydmljZTogXCIsIHNlcnZpY2UpO1xuICAgICAgaWYgKCghcm91dGVTZXJ2aWNlTmFtZSB8fCAhaXNPcGVuU2hpZnQpICYmICghdGVtcGxhdGUucGFyYW1ldGVycyB8fCB0ZW1wbGF0ZS5wYXJhbWV0ZXJzLmxlbmd0aCA9PT0gMCkpIHtcbiAgICAgICAgbG9nLmRlYnVnKFwiTm8gcGFyYW1ldGVycyByZXF1aXJlZCwgZGVwbG95aW5nIG9iamVjdHNcIik7XG4gICAgICAgIGFwcGx5T2JqZWN0cyh0ZW1wbGF0ZS5vYmplY3RzKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdmFyIGZvcm1Db25maWcgPSB7XG4gICAgICAgIHN0eWxlOiBIYXd0aW9Gb3Jtcy5Gb3JtU3R5bGUuU1RBTkRBUkQsXG4gICAgICAgIGhpZGVMZWdlbmQ6IHRydWUsXG4gICAgICAgIHByb3BlcnRpZXM6IDxhbnk+IHt9XG4gICAgICB9O1xuICAgICAgdmFyIHBhcmFtcyA9IHRlbXBsYXRlLnBhcmFtZXRlcnM7XG4gICAgICBfLmZvckVhY2gocGFyYW1zLCAocGFyYW06YW55KSA9PiB7XG4gICAgICAgIHZhciBwcm9wZXJ0eSA9IDxhbnk+IHt9O1xuICAgICAgICBwcm9wZXJ0eS5sYWJlbCA9IHBhcmFtLm5hbWUudGl0bGVpemUoKTtcbiAgICAgICAgcHJvcGVydHkuZGVzY3JpcHRpb24gPSBwYXJhbS5kZXNjcmlwdGlvbjtcbiAgICAgICAgcHJvcGVydHkuZGVmYXVsdCA9IHBhcmFtLnZhbHVlO1xuICAgICAgICAvLyBUT0RPLCBkbyBwYXJhbWV0ZXJzIHN1cHBvcnQgdHlwZXM/XG4gICAgICAgIHByb3BlcnR5LnR5cGUgPSAnc3RyaW5nJztcbiAgICAgICAgZm9ybUNvbmZpZy5wcm9wZXJ0aWVzW3BhcmFtLm5hbWVdID0gcHJvcGVydHk7XG4gICAgICB9KTtcbiAgICAgIGlmIChyb3V0ZVNlcnZpY2VOYW1lICYmIGlzT3BlblNoaWZ0KSB7XG4gICAgICAgIGZvcm1Db25maWcucHJvcGVydGllcy5jcmVhdGVSb3V0ZSA9IHtcbiAgICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgICAgZGVmYXVsdDogdHJ1ZSxcbiAgICAgICAgICBsYWJlbDogXCJDcmVhdGUgUm91dGVcIlxuICAgICAgICB9O1xuLypcbiAgICAgICAgZm9ybUNvbmZpZy5wcm9wZXJ0aWVzLnJvdXRlTmFtZSA9IHtcbiAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICBsYWJlbDogJ1JvdXRlIE5hbWUnLFxuICAgICAgICAgIGRlZmF1bHQ6IHJvdXRlU2VydmljZU5hbWUsXG4gICAgICAgICAgJ2NvbnRyb2wtZ3JvdXAtYXR0cmlidXRlcyc6IHtcbiAgICAgICAgICAgICduZy1zaG93JzogJ2VudGl0eS5jcmVhdGVSb3V0ZSdcbiAgICAgICAgICB9XG4gICAgICAgIH07XG4qL1xuICAgICAgICBmb3JtQ29uZmlnLnByb3BlcnRpZXMucm91dGVTZXJ2aWNlTmFtZSA9IHtcbiAgICAgICAgICB0eXBlOiAnaGlkZGVuJyxcbiAgICAgICAgICBkZWZhdWx0OiByb3V0ZVNlcnZpY2VOYW1lXG4gICAgICAgIH1cblxuICAgICAgICB2YXIgbmFtZXNwYWNlID0gY3VycmVudEt1YmVybmV0ZXNOYW1lc3BhY2UoKTtcbiAgICAgICAgLy8gVE9ETyBzdG9yZSB0aGlzIGluIGxvY2FsU3RvcmFnZSFcbiAgICAgICAgdmFyIGRvbWFpbiA9IFwidmFncmFudC5mOFwiO1xuICAgICAgICB2YXIgZGVmYXVsdFJvdXRlSG9zdFN1ZmZpeCA9ICcuJyArIChuYW1lc3BhY2UgPT09IFwiZGVmYXVsdFwiID8gXCJcIiA6IG5hbWVzcGFjZSArIFwiLlwiKSArIGRvbWFpbjtcbiAgICAgICAgZm9ybUNvbmZpZy5wcm9wZXJ0aWVzLnJvdXRlSG9zdG5hbWUgPSB7XG4gICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgZGVmYXVsdDogZGVmYXVsdFJvdXRlSG9zdFN1ZmZpeCxcbiAgICAgICAgICBsYWJlbDogXCJSb3V0ZSBob3N0IG5hbWUgc3VmZml4XCIsXG4gICAgICAgICAgJ2NvbnRyb2wtZ3JvdXAtYXR0cmlidXRlcyc6IHtcbiAgICAgICAgICAgICduZy1zaG93JzogJ2VudGl0eS5jcmVhdGVSb3V0ZSdcbiAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICAkc2NvcGUuZW50aXR5ID0gPGFueT4ge307XG4gICAgICAkc2NvcGUuZm9ybUNvbmZpZyA9IGZvcm1Db25maWc7XG4gICAgICAkc2NvcGUub2JqZWN0cyA9IHRlbXBsYXRlLm9iamVjdHM7XG4gICAgICBsb2cuZGVidWcoXCJGb3JtIGNvbmZpZzogXCIsIGZvcm1Db25maWcpO1xuICAgIH07XG5cbiAgICBmdW5jdGlvbiBzdWJzdGl0dXRlKHN0ciwgZGF0YSkge1xuICAgICAgcmV0dXJuIHN0ci5yZXBsYWNlKC9cXCR7XFx3Kn0vZywgKG1hdGNoKSA9PiB7XG4gICAgICAgIHZhciBrZXkgPSBtYXRjaC5yZXBsYWNlKC9cXCR7LywgJycpLnJlcGxhY2UoL30vLCAnJykudHJpbSgpO1xuICAgICAgICByZXR1cm4gZGF0YVtrZXldIHx8IG1hdGNoO1xuICAgICAgfSk7XG4gICAgfTtcblxuICAgICRzY29wZS5zdWJzdGl0dXRlQW5kRGVwbG95VGVtcGxhdGUgPSAoKSA9PiB7XG4gICAgICB2YXIgb2JqZWN0cyA9ICRzY29wZS5vYmplY3RzO1xuICAgICAgdmFyIG9iamVjdHNUZXh0ID0gYW5ndWxhci50b0pzb24ob2JqZWN0cywgdHJ1ZSk7XG4gICAgICAvLyBwdWxsIHRoZXNlIG91dCBvZiB0aGUgZW50aXR5IG9iamVjdCBzbyB0aGV5J3JlIG5vdCB1c2VkIGluIHN1YnN0aXR1dGlvbnNcbiAgICAgIHZhciBjcmVhdGVSb3V0ZSA9ICRzY29wZS5lbnRpdHkuY3JlYXRlUm91dGU7XG4gICAgICB2YXIgcm91dGVIb3N0bmFtZVN1ZmZpeCA9ICRzY29wZS5lbnRpdHkucm91dGVIb3N0bmFtZSB8fCBcIlwiO1xuICAgICAgdmFyIHJvdXRlTmFtZSA9ICRzY29wZS5lbnRpdHkucm91dGVOYW1lO1xuICAgICAgdmFyIHJvdXRlU2VydmljZU5hbWUgPSAkc2NvcGUuZW50aXR5LnJvdXRlU2VydmljZU5hbWU7XG4gICAgICBkZWxldGUgJHNjb3BlLmVudGl0eS5jcmVhdGVSb3V0ZTtcbiAgICAgIGRlbGV0ZSAkc2NvcGUuZW50aXR5LnJvdXRlSG9zdG5hbWU7XG4gICAgICBkZWxldGUgJHNjb3BlLmVudGl0eS5yb3V0ZU5hbWU7XG4gICAgICBkZWxldGUgJHNjb3BlLmVudGl0eS5yb3V0ZVNlcnZpY2VOYW1lO1xuICAgICAgb2JqZWN0c1RleHQgPSBzdWJzdGl0dXRlKG9iamVjdHNUZXh0LCAkc2NvcGUuZW50aXR5KTtcbiAgICAgIG9iamVjdHMgPSBhbmd1bGFyLmZyb21Kc29uKG9iamVjdHNUZXh0KTtcbiAgICAgIGlmIChjcmVhdGVSb3V0ZSkge1xuICAgICAgICB2YXIgcm91dGVzID0gW107XG4gICAgICAgIGFuZ3VsYXIuZm9yRWFjaChvYmplY3RzLCAob2JqZWN0KSA9PiB7XG4gICAgICAgICAgdmFyIGtpbmQgPSBvYmplY3Qua2luZDtcbiAgICAgICAgICB2YXIgbmFtZSA9IGdldE5hbWUob2JqZWN0KTtcbiAgICAgICAgICBpZiAobmFtZSAmJiBcIlNlcnZpY2VcIiA9PT0ga2luZCkge1xuICAgICAgICAgICAgdmFyIHJvdXRlSG9zdG5hbWUgPSBuYW1lICsgcm91dGVIb3N0bmFtZVN1ZmZpeDtcbiAgICAgICAgICAgIHZhciByb3V0ZSA9IHtcbiAgICAgICAgICAgICAga2luZDogXCJSb3V0ZVwiLFxuICAgICAgICAgICAgICBhcGlWZXJzaW9uOiBkZWZhdWx0T1NBcGlWZXJzaW9uLFxuICAgICAgICAgICAgICBtZXRhZGF0YToge1xuICAgICAgICAgICAgICAgIG5hbWU6IG5hbWUsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHNwZWM6IHtcbiAgICAgICAgICAgICAgICBob3N0OiByb3V0ZUhvc3RuYW1lLFxuICAgICAgICAgICAgICAgIHRvOiB7XG4gICAgICAgICAgICAgICAgICBraW5kOiBcIlNlcnZpY2VcIixcbiAgICAgICAgICAgICAgICAgIG5hbWU6IG5hbWVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJvdXRlcy5wdXNoKHJvdXRlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBvYmplY3RzID0gb2JqZWN0cy5jb25jYXQocm91dGVzKTtcbiAgICAgIH1cbiAgICAgIGlmICgkc2NvcGUudGFyZ2V0TmFtZXNwYWNlICE9PSBtb2RlbC5jdXJyZW50TmFtZXNwYWNlKCkpIHtcbiAgICAgICAgJHNjb3BlLiRvbignV2F0Y2hlck5hbWVzcGFjZUNoYW5nZWQnLCAoKSA9PiB7XG4gICAgICAgICAgbG9nLmRlYnVnKFwiTmFtZXNwYWNlIGNoYW5nZWRcIik7XG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICByZWxvYWREYXRhSWZOb1dhdGNoKCk7XG4gICAgICAgICAgICBhcHBseU9iamVjdHMob2JqZWN0cyk7XG4gICAgICAgICAgICBDb3JlLiRhcHBseSgkc2NvcGUpO1xuICAgICAgICAgIH0sIDUwMCk7XG4gICAgICAgIH0pO1xuICAgICAgICBDb3JlLm5vdGlmaWNhdGlvbignaW5mbycsIFwiU3dpdGNoaW5nIHRvIG5hbWVzcGFjZSBcIiArICRzY29wZS50YXJnZXROYW1lc3BhY2UgKyBcIiBhbmQgZGVwbG95aW5nIHRlbXBsYXRlXCIpO1xuICAgICAgICBtb2RlbC5rdWJlcm5ldGVzLnNlbGVjdGVkTmFtZXNwYWNlID0gJHNjb3BlLnRhcmdldE5hbWVzcGFjZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGFwcGx5T2JqZWN0cyhvYmplY3RzKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgZnVuY3Rpb24gYXBwbHlPYmplY3RzKG9iamVjdHMpIHtcbiAgICAgIF8uZm9yRWFjaChvYmplY3RzLCAob2JqZWN0OmFueSkgPT4ge1xuICAgICAgICBsb2cuZGVidWcoXCJPYmplY3Q6IFwiLCBvYmplY3QpO1xuICAgICAgICB1cGRhdGVPckNyZWF0ZU9iamVjdChvYmplY3QsIEt1YmVybmV0ZXNNb2RlbCk7XG4gICAgICB9KTtcbiAgICAgIGdvQmFjaygpO1xuICAgIH1cblxuICAgICRzY29wZS5kZWxldGVUZW1wbGF0ZSA9ICh0ZW1wbGF0ZSkgPT4ge1xuICAgICAgVUkubXVsdGlJdGVtQ29uZmlybUFjdGlvbkRpYWxvZyg8VUkuTXVsdGlJdGVtQ29uZmlybUFjdGlvbk9wdGlvbnM+e1xuICAgICAgICBjb2xsZWN0aW9uOiBbdGVtcGxhdGVdLFxuICAgICAgICBpbmRleDogJ21ldGFkYXRhLm5hbWUnLFxuICAgICAgICBvbkNsb3NlOiAocmVzdWx0OmJvb2xlYW4pID0+IHtcbiAgICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgICBLdWJlcm5ldGVzTW9kZWxbJ3RlbXBsYXRlc1Jlc291cmNlJ10uZGVsZXRlKHtcbiAgICAgICAgICAgICAgaWQ6IHRlbXBsYXRlLm1ldGFkYXRhLm5hbWVcbiAgICAgICAgICAgIH0sIHVuZGVmaW5lZCwgKCkgPT4ge1xuICAgICAgICAgICAgICBLdWJlcm5ldGVzTW9kZWxbJ3RlbXBsYXRlc1Jlc291cmNlJ10ucXVlcnkoKGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICBLdWJlcm5ldGVzTW9kZWwudGVtcGxhdGVzID0gZGF0YS5pdGVtcztcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LCAoZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgbG9nLmRlYnVnKFwiRXJyb3IgZGVsZXRpbmcgdGVtcGxhdGU6IFwiLCBlcnJvcik7IFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB0aXRsZTogJ0RlbGV0ZSBUZW1wbGF0ZT8nLFxuICAgICAgICBhY3Rpb246ICdUaGUgZm9sbG93aW5nIHRlbXBsYXRlIHdpbGwgYmUgZGVsZXRlZDonLFxuICAgICAgICBva1RleHQ6ICdEZWxldGUnLFxuICAgICAgICBva0NsYXNzOiAnYnRuLWRhbmdlcicsXG4gICAgICAgIGN1c3RvbTogXCJUaGlzIG9wZXJhdGlvbiBpcyBwZXJtYW5lbnQgb25jZSBjb21wbGV0ZWQhXCIsXG4gICAgICAgIGN1c3RvbUNsYXNzOiBcImFsZXJ0IGFsZXJ0LXdhcm5pbmdcIlxuICAgICAgfSkub3BlbigpO1xuICAgIH07XG5cbiAgICBmdW5jdGlvbiByZWxvYWREYXRhSWZOb1dhdGNoKCkge1xuICAgICAgaWYgKCEkc2NvcGUud2F0Y2ggfHwgISRzY29wZS53YXRjaC5jb25uZWN0ZWQpIHtcbiAgICAgICAgLy8gVE9ETyByZWdpc3RlciBhIGhhbmRsZXIgb2YgYmFkIHdhdGNoZXMgc28gd2UgaW52b2tlIHRoaXMgaW4gYSBwb2xsaW5nIGZvcm0gYXV0b21hdGljYWxseT9cbiAgICAgICAgbW9kZWwudGVtcGxhdGVzUmVzb3VyY2UucXVlcnkoKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgaWYgKHJlc3BvbnNlKSB7XG4gICAgICAgICAgICB2YXIgaXRlbXMgPSByZXNwb25zZS5pdGVtcztcbiAgICAgICAgICAgIG1vZGVsLnRlbXBsYXRlcyA9IGl0ZW1zO1xuICAgICAgICAgICAgQ29yZS4kYXBwbHkoJHNjb3BlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfV0pO1xufVxuXG4iLCIvLy8gPHJlZmVyZW5jZSBwYXRoPVwia3ViZXJuZXRlc1BsdWdpbi50c1wiLz5cblxubW9kdWxlIEt1YmVybmV0ZXMge1xuICB2YXIgbG9nID0gTG9nZ2VyLmdldCgna3ViZXJuZXRlcy13YXRjaGVyJyk7XG4gIHZhciBhcGlVcmwgPSBVcmxIZWxwZXJzLmpvaW4oJ2FwaScsICd2MScpO1xuXG4gIHZhciBuYW1lc3BhY2VUeXBlID0gV2F0Y2hUeXBlcy5OQU1FU1BBQ0VTO1xuXG4gIHZhciBrOHNUeXBlcyA9IE5hbWVzcGFjZWRUeXBlcy5rOHNUeXBlcztcbiAgdmFyIG9zVHlwZXMgID0gTmFtZXNwYWNlZFR5cGVzLm9zVHlwZXM7XG5cbiAgdmFyIGJhc2VXYXRjaCA9IDxhbnk+IHtcbiAgICB1cmw6IDxzdHJpbmc+IHVuZGVmaW5lZCxcbiAgICBjb25uZWN0VGltZTogPE51bWJlcj4gdW5kZWZpbmVkLFxuICAgIG9iamVjdHM6IDxPYmplY3RNYXA+IHt9LFxuICAgIG9iamVjdEFycmF5OiA8QXJyYXk8YW55Pj4gW10sXG4gICAgY3VzdG9taXplcnM6IDxBcnJheTwob2JqOmFueSkgPT4gdm9pZD4+W10sXG4gICAgb25BZGRBY3Rpb25zOiA8QXJyYXk8KG9iajphbnkpID0+IHZvaWQ+PiBbXSxcbiAgICBvbk1vZGlmaWVkQWN0aW9uczogPEFycmF5PChvYmo6YW55KSA9PiB2b2lkPj4gW10sXG4gICAgb25EZWxldGVkQWN0aW9uczogPEFycmF5PChvYmo6YW55KSA9PiB2b2lkPj4gW10sXG4gICAgc29ja2V0OiA8V2ViU29ja2V0PiB1bmRlZmluZWQsXG4gICAgY29ubmVjdGVkOiBmYWxzZVxuICB9XG5cbiAgdmFyIG5hbWVzcGFjZVdhdGNoID0gPGFueT4gXy5hc3NpZ24oXy5jbG9uZURlZXAoYmFzZVdhdGNoKSwge1xuICAgIHNlbGVjdGVkOiB1bmRlZmluZWQsXG4gICAgY29ubmVjdFRpbWU6IDxOdW1iZXI+IHVuZGVmaW5lZCxcbiAgICB1cmw6IFVybEhlbHBlcnMuam9pbihhcGlVcmwsIFdhdGNoVHlwZXMuTkFNRVNQQUNFUyksXG4gIH0pO1xuXG4gIGV4cG9ydCB2YXIgd2F0Y2hlcyA9IDxhbnk+IHt9O1xuICBfLmZvckVhY2goazhzVHlwZXMsICh0eXBlKSA9PiB7XG4gICAgd2F0Y2hlc1t0eXBlXSA9IF8uYXNzaWduKF8uY2xvbmVEZWVwKGJhc2VXYXRjaCksIHtcbiAgICAgIHByZWZpeDogKCkgPT4ga3ViZXJuZXRlc0FwaVByZWZpeCgpLFxuICAgICAgdmFsaWQ6ICgpID0+IHRydWVcbiAgICB9KTtcbiAgfSk7XG4gIF8uZm9yRWFjaChvc1R5cGVzLCAodHlwZSkgPT4ge1xuICAgIHdhdGNoZXNbdHlwZV0gPSBfLmFzc2lnbihfLmNsb25lRGVlcChiYXNlV2F0Y2gpLCB7XG4gICAgICBwcmVmaXg6ICgpID0+IG9wZW5zaGlmdEFwaVByZWZpeCgpLFxuICAgICAgdmFsaWQ6ICgpID0+IGlzT3BlblNoaWZ0IHx8ICh0eXBlID09PSBcInRlbXBsYXRlc1wiIHx8IHR5cGUgPT09IFwiYnVpbGRjb25maWdzXCIpXG4gICAgfSk7XG4gIH0pO1xuXG4gIGhhd3Rpb1BsdWdpbkxvYWRlci5yZWdpc3RlclByZUJvb3RzdHJhcFRhc2soe1xuICAgIG5hbWU6ICdLdWJlcm5ldGVzV2F0Y2hlckluaXQnLFxuICAgIGRlcGVuZHM6IFsnaGF3dGlvLW9hdXRoJ10sXG4gICAgdGFzazogKG5leHQpID0+IHtcbiAgICAgIGlzT3BlblNoaWZ0ID0gdHJ1ZTtcblxuICAgICAgZnVuY3Rpb24gd2F0Y2hOYW1lc3BhY2VzKCkge1xuICAgICAgICB2YXIgdXJpID0gbmV3IFVSSShtYXN0ZXJBcGlVcmwoKSk7XG4gICAgICAgIHVyaS5wYXRoKG5hbWVzcGFjZVdhdGNoLnVybCk7XG4gICAgICAgIHZhciB1cmwgPSB1cmkudG9TdHJpbmcoKTtcbiAgICAgICAgSGF3dGlvT0F1dGguYXV0aGVudGljYXRlZEh0dHBSZXF1ZXN0KHtcbiAgICAgICAgICB1cmw6IHVyaS50b1N0cmluZygpXG4gICAgICAgIH0pLmRvbmUoKGRhdGEpID0+IHtcbiAgICAgICAgICBfLmZvckVhY2goZGF0YS5pdGVtcywgKG5hbWVzcGFjZTphbnkpID0+IHtcbiAgICAgICAgICAgIGlmICghbmFtZXNwYWNlLm1ldGFkYXRhLnVpZCkge1xuICAgICAgICAgICAgICBuYW1lc3BhY2UubWV0YWRhdGEudWlkID0gbmFtZXNwYWNlLm1ldGFkYXRhLm5hbWVzcGFjZSArICcvJyArIG5hbWVzcGFjZS5tZXRhZGF0YS5uYW1lO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbmFtZXNwYWNlV2F0Y2gub2JqZWN0c1tuYW1lc3BhY2UubWV0YWRhdGEudWlkXSA9IG5hbWVzcGFjZTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBuYW1lc3BhY2VXYXRjaC5vYmplY3RBcnJheS5sZW5ndGggPSAwO1xuICAgICAgICAgIF8uZm9ySW4obmFtZXNwYWNlV2F0Y2gub2JqZWN0cywgKG9iamVjdCwga2V5KSA9PiB7XG4gICAgICAgICAgICBuYW1lc3BhY2VXYXRjaC5vYmplY3RBcnJheS5wdXNoKG9iamVjdCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgbmV4dCgpO1xuICAgICAgICB9KS5mYWlsKCh4SHIsIHRleHRTdGF0dXMsIGVycm9yVGhyb3duKSA9PiB7XG4gICAgICAgICAgbG9nLndhcm4odGV4dFN0YXR1cywgXCI6IFwiLCBlcnJvclRocm93bik7XG4gICAgICAgICAgSGF3dGlvT0F1dGguZG9Mb2dvdXQoKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cblxuICAgICAgdmFyIHJvb3RVcmkgPSBuZXcgVVJJKG1hc3RlckFwaVVybCgpKTtcbiAgICAgIHJvb3RVcmkucGF0aChcIi9cIikucXVlcnkoXCJcIik7XG4gICAgICB2YXIgcm9vdFVyaVRleHQgPSByb290VXJpLnRvU3RyaW5nKCk7XG4gICAgICBsb2cuaW5mbyhcIkFib3V0IHRvIHF1ZXJ5IHJvb3QgcGF0aHM6IFwiICsgbWFzdGVyQXBpVXJsKCkpO1xuICAgICAgSGF3dGlvT0F1dGguYXV0aGVudGljYXRlZEh0dHBSZXF1ZXN0KHtcbiAgICAgICAgdXJsOiByb290VXJpVGV4dFxuICAgICAgfSkuZG9uZSgoZGF0YSkgPT4ge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgIHZhciBwYXRocyA9IGRhdGEucGF0aHM7XG4gICAgICAgICAgaWYgKHBhdGhzKSB7XG4gICAgICAgICAgICBpc09wZW5TaGlmdCA9IGZhbHNlO1xuICAgICAgICAgICAgYW5ndWxhci5mb3JFYWNoKHBhdGhzLCAocGF0aCkgPT4ge1xuICAgICAgICAgICAgICBpZiAoYW5ndWxhci5pc1N0cmluZyhwYXRoKSAmJiAocGF0aCA9PT0gXCIvb2FwaVwiIHx8IHBhdGggPT09IFwib2FwaVwiKSkge1xuICAgICAgICAgICAgICAgIGlzT3BlblNoaWZ0ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGxvZy5pbmZvKFwiaXNPcGVuU2hpZnQgXCIgKyBpc09wZW5TaGlmdCArIFwiIHdpdGggcGF0aHMgXCIgKyBwYXRocyk7XG4gICAgICAgIH1cbiAgICAgICAgd2F0Y2hOYW1lc3BhY2VzKCk7XG4gICAgICB9KS5mYWlsKCh4SHIsIHRleHRTdGF0dXMsIGVycm9yVGhyb3duKSA9PiB7XG4gICAgICAgIGxvZy53YXJuKFwiRmFpbGVkIHRvIGZpbmQgcm9vdCBwYXRoczogXCIgKyB0ZXh0U3RhdHVzLCBcIjogXCIsIGVycm9yVGhyb3duKTtcbiAgICAgICAgd2F0Y2hOYW1lc3BhY2VzKCk7XG4gICAgICB9KTtcblxuXG4gICAgfVxuICB9KTtcblxuICBleHBvcnQgZnVuY3Rpb24gZ2V0V1NVcmwod2F0Y2hVcmwsIHVzZXJEZXRhaWxzKSB7XG4gICAgdmFyIGFwaVVybCA9IG1hc3RlckFwaVVybCgpO1xuICAgIHZhciB1cmk7XG4gICAgaWYgKCFhcGlVcmwgfHwgYXBpVXJsID09PSBcIi9cIikge1xuICAgICAgLy8gbGV0cyBhdm9pZCB1c2luZyBhIHJlbGF0aXZlIHBhdGggaWYgbm8gbWFzdGVyIHVybCBpcyBzcGVjaWZpZWRcbiAgICAgIC8vIGFzIHdlIGFyZSBwcm9iYWJseSBzZXJ2aW5nIHVwIHN0YXRpYyBjb250ZW50IGZyb20gaW5zaWRlIC9hcGkvdjEvbmFtZXNwYWNlcy9kZWZhdWx0L3NlcnZpY2VzL2ZhYnJpYzggb3Igc29tZXRoaW5nIGxpa2UgdGhhdFxuICAgICAgdXJpID0gbmV3IFVSSShVcmxIZWxwZXJzLmpvaW4oYXBpVXJsLCB3YXRjaFVybCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB1cmkgPSBuZXcgVVJJKGFwaVVybCk7XG4gICAgICB1cmkucGF0aCh3YXRjaFVybCk7XG4gICAgfVxuICAgIGlmICh1cmkucHJvdG9jb2woKSA9PT0gXCJodHRwc1wiKSB7XG4gICAgICB1cmkucHJvdG9jb2woJ3dzcycpO1xuICAgIH0gZWxzZSB7XG4gICAgICB1cmkucHJvdG9jb2woJ3dzJyk7XG4gICAgfVxuICAgIHJldHVybiB1cmk7XG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVXYXRjaCh0eXBlLCB3YXRjaCwgdXNlckRldGFpbHMsICRzY29wZSwgb25NZXNzYWdlID0gKGV2ZW50KSA9PiB7fSwgb25DbG9zZSA9IChldmVudCkgPT4ge30sIG9uT3BlbiA9IChldmVudCkgPT4ge30pIHtcbiAgICB2YXIgd2F0Y2hVcmwgPSB3YXRjaC51cmw7XG4gICAgdmFyIHVyaSA9IGdldFdTVXJsKHdhdGNoVXJsLCB1c2VyRGV0YWlscyk7XG4gICAgdXJpLnF1ZXJ5KDxhbnk+IHtcbiAgICAgIHdhdGNoOiB0cnVlLFxuICAgICAgYWNjZXNzX3Rva2VuOiB1c2VyRGV0YWlscy50b2tlblxuICAgIH0pO1xuICAgIHdhdGNoLnJldHJpZXMgPSAwO1xuICAgIHZhciBvbk9wZW5JbnRlcm5hbCA9IChldmVudCkgPT4ge1xuICAgICAgd2F0Y2gucmV0cmllcyA9IDA7XG4gICAgICB3YXRjaC5jb25uZWN0VGltZSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuICAgICAgd2F0Y2guY29ubmVjdGVkID0gdHJ1ZTtcbiAgICAgIG9uT3BlbihldmVudCk7XG4gICAgfTtcbiAgICB2YXIgb25NZXNzYWdlSW50ZXJuYWwgPSAoZXZlbnQpID0+IHtcbiAgICAgIC8vIGxvZy5kZWJ1Zyh0eXBlLCBcIiBvbm1lc3NhZ2U6IFwiLCBldmVudCk7XG4gICAgICB2YXIgZGF0YSA9IGFuZ3VsYXIuZnJvbUpzb24oZXZlbnQuZGF0YSk7XG4gICAgICAvL2xvZy5kZWJ1Zyh0eXBlLCBcIiBkYXRhOiBcIiwgZGF0YSk7XG4gICAgICBzd2l0Y2ggKGRhdGEudHlwZSkge1xuICAgICAgICBjYXNlIFdhdGNoQWN0aW9ucy5BRERFRDpcbiAgICAgICAgY2FzZSBXYXRjaEFjdGlvbnMuTU9ESUZJRUQ6XG4gICAgICAgICAgdmFyIG9iaiA9IGRhdGEub2JqZWN0O1xuICAgICAgICAgIGlmICh3YXRjaC5jdXN0b21pemVycy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBfLmZvckVhY2god2F0Y2guY3VzdG9taXplcnMsIChjdXN0b21pemVyOihvYmo6YW55KSA9PiB2b2lkKSA9PiB7XG4gICAgICAgICAgICAgIGN1c3RvbWl6ZXIob2JqKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoIWRhdGEub2JqZWN0Lm1ldGFkYXRhLnVpZCkge1xuICAgICAgICAgICAgZGF0YS5vYmplY3QubWV0YWRhdGEudWlkID0gZGF0YS5vYmplY3QubWV0YWRhdGEubmFtZXNwYWNlICsgJy8nICsgZGF0YS5vYmplY3QubWV0YWRhdGEubmFtZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgd2F0Y2gub2JqZWN0c1tkYXRhLm9iamVjdC5tZXRhZGF0YS51aWRdID0gZGF0YS5vYmplY3Q7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgV2F0Y2hBY3Rpb25zLkRFTEVURUQ6XG4gICAgICAgICAgZGVsZXRlIHdhdGNoLm9iamVjdHNbZGF0YS5vYmplY3QubWV0YWRhdGEudWlkXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBsb2cuaW5mbyhcIlVua25vd24gZXZlbnQgdHlwZTogXCIsIGRhdGEudHlwZSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgd2F0Y2gub2JqZWN0QXJyYXkubGVuZ3RoID0gMDtcbiAgICAgIF8uZm9ySW4od2F0Y2gub2JqZWN0cywgKG9iamVjdCwgdWlkKSA9PiB7XG4gICAgICAgIHdhdGNoLm9iamVjdEFycmF5LnB1c2gob2JqZWN0KTtcbiAgICAgIH0pO1xuICAgICAgb25NZXNzYWdlKGRhdGEpO1xuICAgICAgLy8gZXhlY3V0ZSBhbnkgd2F0Y2ggYWN0aW9uc1xuICAgICAgc3dpdGNoIChkYXRhLnR5cGUpIHtcbiAgICAgICAgY2FzZSBXYXRjaEFjdGlvbnMuQURERUQ6XG4gICAgICAgICAgXy5mb3JFYWNoKHdhdGNoLm9uQWRkQWN0aW9ucywgKGFjdGlvbjphbnkpID0+IGFjdGlvbihkYXRhLm9iamVjdCkpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFdhdGNoQWN0aW9ucy5NT0RJRklFRDpcbiAgICAgICAgICBfLmZvckVhY2god2F0Y2gub25Nb2RpZmllZEFjdGlvbnMsIChhY3Rpb246YW55KSA9PiBhY3Rpb24oZGF0YS5vYmplY3QpKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBXYXRjaEFjdGlvbnMuREVMRVRFRDpcbiAgICAgICAgICBfLmZvckVhY2god2F0Y2gub25EZWxldGVkQWN0aW9ucywgKGFjdGlvbjphbnkpID0+IGFjdGlvbihkYXRhLm9iamVjdCkpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgQ29yZS4kYXBwbHkoJHNjb3BlKTtcbiAgICB9O1xuICAgIHZhciBvbkNsb3NlSW50ZXJuYWwgPSAoZXZlbnQpID0+IHtcbiAgICAgIHdhdGNoLmNvbm5lY3RlZCA9IGZhbHNlO1xuICAgICAgaWYgKHdhdGNoLnJldHJpZXMgPCAzICYmIHdhdGNoLmNvbm5lY3RUaW1lICYmIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC0gd2F0Y2guY29ubmVjdFRpbWUgPiA1MDAwKSB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIHdhdGNoLnJldHJpZXMgPSB3YXRjaC5yZXRyaWVzICsgMTtcbiAgICAgICAgICBsb2cuZGVidWcoXCJ3YXRjaCBcIiwgdHlwZSwgXCIgZGlzY29ubmVjdGVkLCByZXRyeSAjXCIsIHdhdGNoLnJldHJpZXMpO1xuICAgICAgICAgIHZhciB3cyA9IHdhdGNoLnNvY2tldCA9IG5ldyBXZWJTb2NrZXQodXJpLnRvU3RyaW5nKCkpO1xuICAgICAgICAgIHdzLm9ub3BlbiA9IG9uT3BlbkludGVybmFsO1xuICAgICAgICAgIHdzLm9ubWVzc2FnZSA9IG9uTWVzc2FnZUludGVybmFsO1xuICAgICAgICAgIHdzLm9uY2xvc2UgPSBvbkNsb3NlSW50ZXJuYWw7XG4gICAgICAgIH0sIDUwMDApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb25DbG9zZShldmVudCk7XG4gICAgICB9XG4gICAgfVxuICAgIHZhciB3cyA9IHdhdGNoLnNvY2tldCA9IG5ldyBXZWJTb2NrZXQodXJpLnRvU3RyaW5nKCkpO1xuICAgIHdzLm9ub3BlbiA9IG9uT3BlbkludGVybmFsO1xuICAgIHdzLm9ubWVzc2FnZSA9IG9uTWVzc2FnZUludGVybmFsO1xuICAgIHdzLm9uY2xvc2UgPSBvbkNsb3NlSW50ZXJuYWw7XG4gIH1cblxuICAvKlxuICAgICBfbW9kdWxlLnJ1bihbJ1dhdGNoZXJTZXJ2aWNlJywgJyRyb290U2NvcGUnLCAoV2F0Y2hlclNlcnZpY2U6V2F0Y2hlclNlcnZpY2UsICRyb290U2NvcGUpID0+IHtcbiAgICAgbG9nLmRlYnVnKFwiU3RhcnRlZCB3YXRjaGVyIHNlcnZpY2VcIik7XG5cbi8vXHRcdEt1YmVybmV0ZXMua2VlcFBvbGxpbmdNb2RlbCA9IGZhbHNlO1xuXG4vLyBzb21lIHVzYWdlIGV4YW1wbGVzXG4vL1x0XHRXYXRjaGVyU2VydmljZS5hZGRDdXN0b21pemVyKCdwb2RzJywgKHBvZCkgPT4ge1xuLy9cdFx0XHRwb2QuU29tZVZhbHVlID0gJ2Zvb2Jhcic7XG4vL1x0XHR9KTtcbi8vXHRcdCRyb290U2NvcGUucG9kcyA9IFdhdGNoZXJTZXJ2aWNlLmdldE9iamVjdHMoJ3BvZHMnKTtcbi8vXHRcdCRyb290U2NvcGUucG9kTWFwID0gV2F0Y2hlclNlcnZpY2UuZ2V0T2JqZWN0TWFwKCdwb2RzJyk7XG4vL1xuLy9cdFx0JHJvb3RTY29wZS4kd2F0Y2hDb2xsZWN0aW9uKCdwb2RzJywgKG5ld1ZhbHVlKSA9PiB7XG4vL1x0XHQgIGxvZy5kZWJ1ZyhcInBvZHMgY2hhbmdlZDogXCIsIG5ld1ZhbHVlKTtcbi8vXHRcdH0pO1xuLy9cbi8vXHRcdCRyb290U2NvcGUuJHdhdGNoKCdwb2RNYXAnLCAobmV3VmFsdWUpID0+IHtcbi8vXHRcdCAgbG9nLmRlYnVnKFwicG9kIG1hcCBjaGFuZ2VkOiBcIiwgbmV3VmFsdWUpO1xuLy9cdFx0fSwgdHJ1ZSk7XG59XSk7XG4gICAqL1xuXG5fbW9kdWxlLnNlcnZpY2UoJ1dhdGNoZXJTZXJ2aWNlJywgWyd1c2VyRGV0YWlscycsICckcm9vdFNjb3BlJywgJyR0aW1lb3V0JywgKHVzZXJEZXRhaWxzLCAkcm9vdFNjb3BlLCAkdGltZW91dCkgPT4ge1xuICB2YXIgc2VsZiA9IDxhbnk+IHtcbiAgICBoYXNXZWJTb2NrZXQ6IGZhbHNlXG4gIH07XG5cbiAgdHJ5IHtcbiAgICBpZiAoIVdlYlNvY2tldCkgIHtcbiAgICAgIHJldHVybiBzZWxmO1xuICAgIH1cbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgcmV0dXJuIHNlbGY7XG4gIH1cblxuICBzZWxmLnNldE5hbWVzcGFjZSA9IChuYW1lc3BhY2U6IHN0cmluZykgPT4ge1xuICAgIGlmIChuYW1lc3BhY2UgIT09IG5hbWVzcGFjZVdhdGNoLnNlbGVjdGVkKSB7XG4gICAgICBsb2cuZGVidWcoXCJOYW1lc3BhY2UgY2hhbmdlZCwgc2h1dHRpbmcgZG93biBleGlzdGluZyB3YXRjaGVzXCIpO1xuICAgICAgXy5mb3JJbih3YXRjaGVzLCAod2F0Y2gsIHR5cGUpID0+IHtcbiAgICAgICAgaWYgKHdhdGNoLnNvY2tldCkge1xuICAgICAgICAgIHdhdGNoLnNvY2tldC5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIGxvZy5kZWJ1ZyhcIlNldHRpbmcgbmFtZXNwYWNlIHdhdGNoIHRvOiBcIiwgbmFtZXNwYWNlKTtcbiAgICAgIG5hbWVzcGFjZVdhdGNoLnNlbGVjdGVkID0gbmFtZXNwYWNlO1xuICAgICAgaWYgKCFuYW1lc3BhY2UpIHtcbiAgICAgICAgZGVsZXRlIGxvY2FsU3RvcmFnZVtDb25zdGFudHMuTkFNRVNQQUNFX1NUT1JBR0VfS0VZXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxvY2FsU3RvcmFnZVtDb25zdGFudHMuTkFNRVNQQUNFX1NUT1JBR0VfS0VZXSA9IG5hbWVzcGFjZTtcbiAgICAgIH1cbiAgICAgIGlmIChuYW1lc3BhY2UpIHtcbiAgICAgICAgXy5mb3JJbih3YXRjaGVzLCAod2F0Y2gsIHR5cGUpID0+IHtcbiAgICAgICAgICAvLyByZXNldCB0aGUgb2JqZWN0IHJhdGhlciB0aGFuIHJlLWFzc2lnbmluZyB0aGVtXG4gICAgICAgICAgLy8gZW5zdXJlcyB0aGF0IGFueSB3YXRjaGVzIGluIGNvbnRyb2xsZXJzIHdvbid0XG4gICAgICAgICAgLy8gYmUgd2F0Y2hpbmcgYSBzdGFsZSBvYmplY3RcbiAgICAgICAgICBpZiAod2F0Y2gudmFsaWQoKSkge1xuICAgICAgICAgICAgd2F0Y2gudXJsID0gVXJsSGVscGVycy5qb2luKHdhdGNoLnByZWZpeCgpLCBLdWJlcm5ldGVzLm5hbWVzcGFjZVBhdGhGb3JLaW5kKHR5cGUsIG5hbWVzcGFjZSkpO1xuICAgICAgICAgICAgd2F0Y2guY29ubmVjdFRpbWUgPSA8TnVtYmVyPiB1bmRlZmluZWQ7XG4gICAgICAgICAgICBfLmZvckVhY2goXy5rZXlzKHdhdGNoLm9iamVjdHMpLCAodWlkKSA9PiB7XG4gICAgICAgICAgICAgIF8uZm9yRWFjaCh3YXRjaC5vbkRlbGV0ZWRBY3Rpb25zLCAoYWN0aW9uOmFueSkgPT4gYWN0aW9uKHdhdGNoLm9iamVjdHNbdWlkXSkpO1xuICAgICAgICAgICAgICBkZWxldGUgd2F0Y2gub2JqZWN0c1t1aWRdO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB3YXRjaC5vYmplY3RBcnJheS5sZW5ndGggPSAwO1xuICAgICAgICAgICAgd2F0Y2guc29ja2V0ID0gPFdlYlNvY2tldD4gdW5kZWZpbmVkO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIF8uZm9ySW4od2F0Y2hlcywgKHdhdGNoLCB0eXBlKSA9PiB7XG4gICAgICAgICAgaWYgKHdhdGNoLnZhbGlkKCkpIHtcbiAgICAgICAgICAgIGNyZWF0ZVdhdGNoKHR5cGUsIHdhdGNoLCB1c2VyRGV0YWlscywgJHJvb3RTY29wZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgICRyb290U2NvcGUuJGJyb2FkY2FzdChcIldhdGNoZXJOYW1lc3BhY2VDaGFuZ2VkXCIsIG5hbWVzcGFjZSk7XG4gICAgfVxuICB9O1xuXG4gIGNyZWF0ZVdhdGNoKFdhdGNoVHlwZXMuTkFNRVNQQUNFUywgbmFtZXNwYWNlV2F0Y2gsIHVzZXJEZXRhaWxzLCAkcm9vdFNjb3BlLCAoZXZlbnQpID0+IHtcbiAgICAvLyBsb2cuZGVidWcoXCJHb3QgZXZlbnQ6IFwiLCBldmVudCk7XG4gICAgc3dpdGNoIChldmVudC50eXBlKSB7XG4gICAgICBjYXNlIFdhdGNoQWN0aW9ucy5BRERFRDpcbiAgICAgIGNhc2UgV2F0Y2hBY3Rpb25zLk1PRElGSUVEOlxuICAgICAgICBpZiAoIW5hbWVzcGFjZVdhdGNoLnNlbGVjdGVkKSB7XG4gICAgICAgICAgc2VsZi5zZXROYW1lc3BhY2UoZXZlbnQub2JqZWN0Lm1ldGFkYXRhLm5hbWUpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBXYXRjaEFjdGlvbnMuREVMRVRFRDpcbiAgICAgICAgdmFyIG5leHQgPSA8YW55PiBfLmZpcnN0KG5hbWVzcGFjZVdhdGNoLm9iamVjdEFycmF5KTtcbiAgICAgICAgaWYgKG5leHQpIHtcbiAgICAgICAgICBzZWxmLnNldE5hbWVzcGFjZShuZXh0Lm1ldGFkYXRhLm5hbWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHNlbGYuc2V0TmFtZXNwYWNlKHVuZGVmaW5lZCk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBsb2cuZGVidWcoXCJVbmtub3duIG5hbWVzcGFjZSBldmVudCB0eXBlOiBcIiwgZXZlbnQudHlwZSk7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gIH0sIChldmVudCkgPT4ge1xuICAgIGxvZy5kZWJ1ZyhcIk5hbWVzcGFjZSB3YXRjaCBjbG9zZWRcIik7XG4gICAgc2VsZi5zZXROYW1lc3BhY2UodW5kZWZpbmVkKTtcbiAgfSk7XG5cbiAgc2VsZi5zZXROYW1lc3BhY2UobG9jYWxTdG9yYWdlW0NvbnN0YW50cy5OQU1FU1BBQ0VfU1RPUkFHRV9LRVldIHx8IGRlZmF1bHROYW1lc3BhY2UpO1xuXG4gIHNlbGYuaGFzV2ViU29ja2V0ID0gdHJ1ZTtcblxuICBzZWxmLmdldE5hbWVzcGFjZSA9ICgpID0+IG5hbWVzcGFjZVdhdGNoLnNlbGVjdGVkO1xuXG4gIHNlbGYuYWRkQ3VzdG9taXplciA9ICh0eXBlOiBzdHJpbmcsIGN1c3RvbWl6ZXI6IChvYmo6YW55KSA9PiB2b2lkKSA9PiB7XG4gICAgaWYgKHR5cGUgaW4gd2F0Y2hlcykge1xuICAgICAgd2F0Y2hlc1t0eXBlXS5jdXN0b21pemVycy5wdXNoKGN1c3RvbWl6ZXIpO1xuICAgICAgXy5mb3JFYWNoKHdhdGNoZXNbdHlwZV0ub2JqZWN0QXJyYXksIChvYmopID0+IGN1c3RvbWl6ZXIob2JqKSk7XG4gICAgfVxuICB9XG5cbiAgc2VsZi5nZXRUeXBlcyA9ICgpID0+IHtcbiAgICByZXR1cm4gazhzVHlwZXMuY29uY2F0KFtXYXRjaFR5cGVzLk5BTUVTUEFDRVNdKS5jb25jYXQob3NUeXBlcyk7XG4gIH1cblxuICBzZWxmLmdldE9iamVjdE1hcCA9ICh0eXBlOiBzdHJpbmcpID0+IHtcbiAgICBpZiAodHlwZSA9PT0gV2F0Y2hUeXBlcy5OQU1FU1BBQ0VTKSB7XG4gICAgICByZXR1cm4gbmFtZXNwYWNlV2F0Y2gub2JqZWN0cztcbiAgICB9XG4gICAgaWYgKHR5cGUgaW4gd2F0Y2hlcykge1xuICAgICAgcmV0dXJuIHdhdGNoZXNbdHlwZV0ub2JqZWN0cztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBzZWxmLmdldE9iamVjdHMgPSAodHlwZTpzdHJpbmcpID0+IHtcbiAgICBpZiAodHlwZSA9PT0gV2F0Y2hUeXBlcy5OQU1FU1BBQ0VTKSB7XG4gICAgICByZXR1cm4gbmFtZXNwYWNlV2F0Y2gub2JqZWN0QXJyYXk7XG4gICAgfVxuICAgIGlmICh0eXBlIGluIHdhdGNoZXMpIHtcbiAgICAgIHJldHVybiB3YXRjaGVzW3R5cGVdLm9iamVjdEFycmF5O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIHNlbGYubGlzdGVuZXJzID0gPEFycmF5PChPYmplY3RNYXApID0+IHZvaWQ+PiBbXTtcblxuICB2YXIgdXBkYXRlRnVuY3Rpb24gPSAoKSA9PiB7XG4gICAgbG9nLmRlYnVnKFwiT2JqZWN0cyBjaGFuZ2VkLCBmaXJpbmcgbGlzdGVuZXJzXCIpO1xuICAgIHZhciBvYmplY3RzID0gPE9iamVjdE1hcD57fTtcbiAgICBfLmZvckVhY2goc2VsZi5nZXRUeXBlcygpLCAodHlwZTpzdHJpbmcpID0+IHtcbiAgICAgIG9iamVjdHNbdHlwZV0gPSBzZWxmLmdldE9iamVjdHModHlwZSk7XG4gICAgfSk7XG4gICAgXy5mb3JFYWNoKHNlbGYubGlzdGVuZXJzLCAobGlzdGVuZXI6KE9iamVjdE1hcCkgPT4gdm9pZCkgPT4ge1xuICAgICAgbGlzdGVuZXIob2JqZWN0cyk7XG4gICAgfSk7XG4gIH07XG5cbiAgdmFyIGRlYm91bmNlZFVwZGF0ZSA9IF8uZGVib3VuY2UodXBkYXRlRnVuY3Rpb24sIDUwMCwgeyB0cmFpbGluZzogdHJ1ZSB9KTtcblxuICAvLyBsaXN0ZW5lciBnZXRzIG5vdGlmaWVkIGFmdGVyIGEgYnVuY2ggb2YgY2hhbmdlcyBoYXZlIG9jY3VycmVkXG4gIHNlbGYucmVnaXN0ZXJMaXN0ZW5lciA9IChmbjoob2JqZWN0czpPYmplY3RNYXApID0+IHZvaWQpID0+IHtcbiAgICBzZWxmLmxpc3RlbmVycy5wdXNoKGZuKTtcbiAgICBfLmZvckVhY2goc2VsZi5nZXRUeXBlcygpLCAodHlwZSkgPT4ge1xuICAgICAgc2VsZi5hZGRBY3Rpb24odHlwZSwgV2F0Y2hBY3Rpb25zLkFOWSwgZGVib3VuY2VkVXBkYXRlKVxuICAgIH0pO1xuICB9XG5cbiAgLy8gZnVuY3Rpb24gdG8gd2F0Y2ggaW5kaXZpZHVhbCBhY3Rpb25zIG9uIHRoZSBrOHMgb2JqZWN0c1xuICBzZWxmLmFkZEFjdGlvbiA9ICh0eXBlOiBzdHJpbmcsIGFjdGlvbjogc3RyaW5nLCBmbjogKG9iajphbnkpID0+IHZvaWQpID0+IHtcbiAgICB2YXIgd2F0Y2ggPSA8YW55PiB1bmRlZmluZWQ7XG4gICAgaWYgKHR5cGUgPT09IFdhdGNoVHlwZXMuTkFNRVNQQUNFUykge1xuICAgICAgd2F0Y2ggPSBuYW1lc3BhY2VXYXRjaDtcbiAgICB9IGVsc2Uge1xuICAgICAgd2F0Y2ggPSB3YXRjaGVzW3R5cGVdO1xuICAgIH1cbiAgICBpZiAod2F0Y2gpIHtcbiAgICAgIHN3aXRjaCAoYWN0aW9uKSB7XG4gICAgICAgIGNhc2UgV2F0Y2hBY3Rpb25zLkFOWTpcbiAgICAgICAgICBfLmZvckVhY2god2F0Y2gub2JqZWN0QXJyYXksIChvYmopID0+IGZuKG9iaikpO1xuICAgICAgICAgIHdhdGNoLm9uQWRkQWN0aW9ucy5wdXNoKGZuKTtcbiAgICAgICAgICB3YXRjaC5vbkRlbGV0ZWRBY3Rpb25zLnB1c2goZm4pO1xuICAgICAgICAgIHdhdGNoLm9uTW9kaWZpZWRBY3Rpb25zLnB1c2goZm4pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFdhdGNoQWN0aW9ucy5BRERFRDpcbiAgICAgICAgICBfLmZvckVhY2god2F0Y2gub2JqZWN0QXJyYXksIChvYmopID0+IGZuKG9iaikpO1xuICAgICAgICAgIHdhdGNoLm9uQWRkQWN0aW9ucy5wdXNoKGZuKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBXYXRjaEFjdGlvbnMuTU9ESUZJRUQ6XG4gICAgICAgICAgd2F0Y2gub25Nb2RpZmllZEFjdGlvbnMucHVzaChmbik7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgV2F0Y2hBY3Rpb25zLkRFTEVURUQ6XG4gICAgICAgICAgd2F0Y2gub25EZWxldGVkQWN0aW9ucy5wdXNoKGZuKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBsb2cuZGVidWcoXCJBdHRlbXB0aW5nIHRvIGFkZCB1bmtub3duIGFjdGlvbjogXCIsIGFjdGlvbik7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBzZWxmO1xufV0pO1xufVxuIiwiLy8vIDxyZWZlcmVuY2UgcGF0aD1cImt1YmVybmV0ZXNQbHVnaW4udHNcIi8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwid2F0Y2hlci50c1wiLz5cblxubW9kdWxlIEt1YmVybmV0ZXMge1xuICBfbW9kdWxlLmNvbmZpZygoa3ViZXJuZXRlc0NvbnRhaW5lclNvY2tldFByb3ZpZGVyKSA9PiB7XG4gICAga3ViZXJuZXRlc0NvbnRhaW5lclNvY2tldFByb3ZpZGVyLldlYlNvY2tldEZhY3RvcnkgPSBcIkN1c3RvbVdlYlNvY2tldHNcIjtcbiAgfSk7XG5cbiAgX21vZHVsZS5mYWN0b3J5KCdDdXN0b21XZWJTb2NrZXRzJywgKHVzZXJEZXRhaWxzOmFueSkgPT4ge1xuICAgIHJldHVybiBmdW5jdGlvbiBDdXN0b21XZWJTb2NrZXQodXJsLCBwcm90b2NvbHMpIHtcbiAgICAgIHZhciBwYXRocyA9IHVybC5zcGxpdCgnPycpO1xuICAgICAgdmFyIHVybCA9IGdldFdTVXJsKHBhdGhzWzBdLCB1c2VyRGV0YWlscyk7XG4gICAgICB1cmwuc2VhcmNoKHBhdGhzWzFdICsgJyZhY2Nlc3NfdG9rZW49JyArIHVzZXJEZXRhaWxzLnRva2VuKTtcbiAgICAgIGxvZy5kZWJ1ZyhcIlVzaW5nIHdzIHVybDogXCIsIHVybC50b1N0cmluZygpKTtcbiAgICAgIHJldHVybiBuZXcgV2ViU29ja2V0KHVybC50b1N0cmluZygpLCBwcm90b2NvbHMpO1xuICAgIH07XG4gIH0pO1xuXG4gIF9tb2R1bGUuc2VydmljZSgnVGVybWluYWxTZXJ2aWNlJywgKCRyb290U2NvcGUsICRkb2N1bWVudCwgJGNvbXBpbGUsICR0ZW1wbGF0ZUNhY2hlKSA9PiB7XG4gICAgdmFyIGJvZHkgPSAkZG9jdW1lbnQuZmluZCgnYm9keScpO1xuICAgIGZ1bmN0aW9uIHBvc2l0aW9uVGVybWluYWxzKHRlcm1pbmFscykge1xuICAgICAgdmFyIHRvdGFsID0gXy5rZXlzKHRlcm1pbmFscykubGVuZ3RoO1xuICAgICAgdmFyIGRpc3QgPSAoYm9keS53aWR0aCgpIC0gMjI1KSAvIHRvdGFsO1xuICAgICAgdmFyIHBvc2l0aW9uID0gNTtcbiAgICAgIGFuZ3VsYXIuZm9yRWFjaCh0ZXJtaW5hbHMsICh2YWx1ZSwga2V5KSA9PiB7XG4gICAgICAgIHZhbHVlLmVsLmNzcygnbGVmdCcsIHBvc2l0aW9uICsgJ3B4Jyk7XG4gICAgICAgIHBvc2l0aW9uID0gcG9zaXRpb24gKyBkaXN0O1xuICAgICAgfSk7XG4gICAgfVxuICAgIHZhciBzZWxmID0ge1xuICAgICAgdGVybWluYWxzOiB7fSxcbiAgICAgIG5ld1Rlcm1pbmFsOiAocG9kTGluaywgY29udGFpbmVyTmFtZSkgPT4ge1xuICAgICAgICB2YXIgdGVybWluYWxJZCA9IFVybEhlbHBlcnMuam9pbihwb2RMaW5rLCBjb250YWluZXJOYW1lKTtcbiAgICAgICAgaWYgKHRlcm1pbmFsSWQgaW4gc2VsZi50ZXJtaW5hbHMpIHtcbiAgICAgICAgICBsb2cuZGVidWcoXCJBbHJlYWR5IGEgdGVybWluYWwgd2l0aCBpZDogXCIsIHRlcm1pbmFsSWQpO1xuICAgICAgICAgIHJldHVybiB0ZXJtaW5hbElkO1xuICAgICAgICB9XG4gICAgICAgIHZhciBzY29wZSA9ICRyb290U2NvcGUuJG5ldygpO1xuICAgICAgICBzY29wZS5wb2RMaW5rID0gcG9kTGluaztcbiAgICAgICAgc2NvcGUuY29udGFpbmVyTmFtZSA9IGNvbnRhaW5lck5hbWU7XG4gICAgICAgIHNjb3BlLmlkID0gdGVybWluYWxJZDtcbiAgICAgICAgdmFyIHRlbXBsYXRlID0gJHRlbXBsYXRlQ2FjaGUuZ2V0KFVybEhlbHBlcnMuam9pbih0ZW1wbGF0ZVBhdGgsICd0ZXJtU2hlbGwuaHRtbCcpKTtcbiAgICAgICAgdmFyIGVsID0gJCgkY29tcGlsZSh0ZW1wbGF0ZSkoc2NvcGUpKTtcbiAgICAgICAgdmFyIHRlcm0gPSB7XG4gICAgICAgICAgc2NvcGU6IHNjb3BlLFxuICAgICAgICAgIGVsOiBlbFxuICAgICAgICB9O1xuICAgICAgICBib2R5LmFwcGVuZChlbCk7XG4gICAgICAgIHNlbGYudGVybWluYWxzW3Rlcm1pbmFsSWRdID0gdGVybTtcbiAgICAgICAgcG9zaXRpb25UZXJtaW5hbHMoc2VsZi50ZXJtaW5hbHMpO1xuICAgICAgICByZXR1cm4gdGVybWluYWxJZDtcbiAgICAgIH0sXG4gICAgICBjbG9zZVRlcm1pbmFsOiAoaWQpID0+IHtcbiAgICAgICAgdmFyIHRlcm0gPSBzZWxmLnRlcm1pbmFsc1tpZF07XG4gICAgICAgIGlmICh0ZXJtKSB7XG4gICAgICAgICAgdGVybS5lbC5yZW1vdmUoKTtcbiAgICAgICAgICBkZWxldGUgc2VsZi50ZXJtaW5hbHNbaWRdO1xuICAgICAgICAgIHBvc2l0aW9uVGVybWluYWxzKHNlbGYudGVybWluYWxzKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHJhaXNlVGVybWluYWw6IChpZCkgPT4ge1xuICAgICAgICBhbmd1bGFyLmZvckVhY2goc2VsZi50ZXJtaW5hbHMsICh2YWx1ZSwga2V5KSA9PiB7XG4gICAgICAgICAgaWYgKGtleSA9PT0gaWQpIHtcbiAgICAgICAgICAgIHZhbHVlLmVsLmNzcygnei1pbmRleCcsICc0MDAwJyk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHZhbHVlLmVsLmNzcygnei1pbmRleCcsICczMDAwJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9O1xuICAgIHJldHVybiBzZWxmO1xuICB9KTtcblxuICBfbW9kdWxlLmRpcmVjdGl2ZSgndGVybWluYWxXaW5kb3cnLCAoJGNvbXBpbGUsIFRlcm1pbmFsU2VydmljZSkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICByZXN0cmljdDogJ0EnLFxuICAgICAgc2NvcGU6IGZhbHNlLFxuICAgICAgbGluazogKHNjb3BlLCBlbGVtZW50LCBhdHRyKSA9PiB7XG4gICAgICAgIHNjb3BlLmNsb3NlID0gKCkgPT4ge1xuICAgICAgICAgIFRlcm1pbmFsU2VydmljZS5jbG9zZVRlcm1pbmFsKHNjb3BlLmlkKTtcbiAgICAgICAgfTtcbiAgICAgICAgc2NvcGUucmFpc2UgPSAoKSA9PiB7XG4gICAgICAgICAgVGVybWluYWxTZXJ2aWNlLnJhaXNlVGVybWluYWwoc2NvcGUuaWQpO1xuICAgICAgICB9O1xuICAgICAgICBzY29wZS5taW5pbWl6ZSA9ICgpID0+IHtcbiAgICAgICAgICBlbGVtZW50LnRvZ2dsZUNsYXNzKCdtaW5pbWl6ZWQnKTtcbiAgICAgICAgfVxuICAgICAgICBsb2cuZGVidWcoXCJlbGVtZW50OiBcIiwgZWxlbWVudCk7XG4gICAgICAgIHZhciBib2R5ID0gZWxlbWVudC5maW5kKCcudGVybWluYWwtYm9keScpO1xuICAgICAgICBsb2cuZGVidWcoXCJib2R5OiBcIiwgYm9keSk7XG4gICAgICAgIGJvZHkuYXBwZW5kKCRjb21waWxlKCc8a3ViZXJuZXRlcy1jb250YWluZXItdGVybWluYWwgcG9kPVwicG9kTGlua1wiIGNvbnRhaW5lcj1cImNvbnRhaW5lck5hbWVcIj48L2t1YmVybmV0ZXMtY29udGFpbmVyLXRlcm1pbmFsPicpKHNjb3BlKSk7XG5cblxuICAgICAgfVxuICAgIH07XG4gIH0pO1xufVxuXG4iXSwic291cmNlUm9vdCI6Ii9zb3VyY2UvIn0=
angular.module("hawtio-kubernetes-templates", []).run(["$templateCache", function($templateCache) {$templateCache.put("plugins/kubernetes/html/apps.html","
\n \n \n \n \n \n \n\n\n
\n\n
\n\n
\n
\n
\n
\n \n \n
\n \n \n
\n
\n
\n\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
There are no apps currently available.
\n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n \n
\n
\n
\n - \n
\n
\n {{folder.path.capitalize(true)}}Uncategorized\n
\n
\n
\n \n
\n
\n
\n
\n
\n \n \n \n \n \n
\n
\n \n\n
\n\n
\n - \n
\n {{app.name}}\n \n \n \n
\n
\n
\n
\n
\n
\n \n");
$templateCache.put("plugins/kubernetes/html/breadcrumbs.html","\n");
$templateCache.put("plugins/kubernetes/html/build.html","\n");
$templateCache.put("plugins/kubernetes/html/buildConfig.html","\n");
$templateCache.put("plugins/kubernetes/html/buildConfigCreate.html","\n
\n
\n
\n
\n
\n
\n
\n
\n
\n");
-$templateCache.put("plugins/kubernetes/html/buildConfigEdit.html","\n");
+$templateCache.put("plugins/kubernetes/html/buildConfigEdit.html","\n");
$templateCache.put("plugins/kubernetes/html/buildConfigs.html","\n \n \n \n \n \n \n
\n
\n
\n");
$templateCache.put("plugins/kubernetes/html/buildLogs.html","\n
\n\n
\n\n
\n
\n
\n
\n
\n
logs for {{entity.$configId}}
\n\n
\n
\n \n {{logsText}}\n \n
\n \n
\n
\n
\n
\n");
$templateCache.put("plugins/kubernetes/html/builds.html","\n \n \n \n \n \n \n\n\n
\n\n
\n\n
\n
\n
\n
\n
\n
\n
There are no builds currently running.
\n
\n
\n
\n
\n
\n
\n");
diff --git a/plugins/kubernetes/html/buildConfigEdit.html b/plugins/kubernetes/html/buildConfigEdit.html
index 39f3483..35554cc 100644
--- a/plugins/kubernetes/html/buildConfigEdit.html
+++ b/plugins/kubernetes/html/buildConfigEdit.html
@@ -1,9 +1,17 @@
-
+
+
+
+
+
+ href="{{baseUri}}/kubernetes/buildConfigs">
diff --git a/plugins/kubernetes/ts/buildConfigEdit.ts b/plugins/kubernetes/ts/buildConfigEdit.ts
index 19c1241..3033cf0 100644
--- a/plugins/kubernetes/ts/buildConfigEdit.ts
+++ b/plugins/kubernetes/ts/buildConfigEdit.ts
@@ -5,28 +5,62 @@
module Kubernetes {
export var BuildConfigEditController = controller("BuildConfigEditController",
- ["$scope", "KubernetesModel", "KubernetesState", "KubernetesSchema", "$templateCache", "$location", "$routeParams", "$http", "$timeout", "KubernetesApiURL",
+ ["$scope", "KubernetesModel", "KubernetesState", "KubernetesSchema", "$templateCache", "$location", "$routeParams", "$http", "$timeout", "KubernetesApiURL", "K8SClientFactory",
($scope, KubernetesModel:Kubernetes.KubernetesModelService, KubernetesState, KubernetesSchema,
- $templateCache:ng.ITemplateCacheService, $location:ng.ILocationService, $routeParams, $http, $timeout, KubernetesApiURL) => {
+ $templateCache:ng.ITemplateCacheService, $location:ng.ILocationService, $routeParams, $http, $timeout, KubernetesApiURL, K8SClientFactory) => {
$scope.kubernetes = KubernetesState;
$scope.model = KubernetesModel;
$scope.id = $routeParams["id"];
$scope.schema = KubernetesSchema;
$scope.config = KubernetesSchema.definitions.os_build_BuildConfig;
+ $scope.specConfig = KubernetesSchema.definitions.os_build_BuildConfigSpec;
Kubernetes.initShared($scope, $location, $http, $timeout, $routeParams, KubernetesModel, KubernetesState, KubernetesApiURL);
+ $scope.buildConfigClient = K8SClientFactory.create("buildconfigs", $scope.namespace);
+
+/*
$scope.$on('kubernetesModelUpdated', function () {
updateData();
});
+*/
$scope.$on('$routeUpdate', ($event) => {
updateData();
});
+ $scope.save = () => {
+ log.info("Saving!");
+
+
+ var entity = $scope.entity;
+ var spec = (entity || {}).spec || {};
+
+ // TODO update the jenkins job name!
+
+ // lets delete lots of cruft
+ var strategy = spec.strategy || {};
+ delete strategy["dockerStrategy"];
+ delete strategy["sourceStrategy"];
+
+ delete spec["revision"];
+ delete spec["output"];
+ delete spec["resources"];
+
+ log.info(angular.toJson(entity, true));
+
+ $scope.buildConfigClient.put(entity, (obj) => {
+ log.info("build config created!");
+ })
+ };
+
updateData();
+
+ var jenkinsUrl = Developer.jenkinsLink();
+ var jobName = "";
+
function updateData() {
$scope.item = null;
if ($scope.id) {
@@ -36,6 +70,7 @@ module Kubernetes {
if (data) {
$scope.entity = data;
}
+ $scope.spec = ($scope.entity || {}).spec || {};
$scope.fetched = true;
Core.$apply($scope);
}).
@@ -45,38 +80,40 @@ module Kubernetes {
} else {
$scope.fetched = true;
- // TODO default to the right registry URL...
- var defaultRegistry = "172.30.17.189:5000";
-
$scope.entity = {
"apiVersion": "v1",
"kind": "BuildConfig",
"metadata": {
"name": "",
"labels": {
- "name": ""
}
},
- "parameters": {
- "output": {
- "imageTag": "",
- "registry": defaultRegistry
- },
+ "spec": {
"source": {
- "git": {
- "uri": ""
- },
"type": "Git"
},
"strategy": {
- "stiStrategy": {
- "builderImage": "fabric8/base-sti"
- },
- "type": "STI"
+ "type": "Custom",
+ "customStrategy": {
+ "from": {
+ "kind": "DockerImage",
+ "name": "fabric8/openshift-s2i-jenkins-trigger"
+ },
+ "env": [
+ {
+ "name": "BASE_URI",
+ "value": jenkinsUrl
+ },
+ {
+ "name": "JOB_NAME",
+ "value": jobName
+ }
+ ]
+ }
}
- },
- "triggers": []
+ }
};
+ $scope.spec = $scope.entity.spec;
Core.$apply($scope);
}
}
diff --git a/plugins/kubernetes/ts/kubernetesPlugin.ts b/plugins/kubernetes/ts/kubernetesPlugin.ts
index 6510485..7888085 100644
--- a/plugins/kubernetes/ts/kubernetesPlugin.ts
+++ b/plugins/kubernetes/ts/kubernetesPlugin.ts
@@ -57,6 +57,12 @@ module Kubernetes {
.when(UrlHelpers.join(context, 'deploymentConfigs/:id'), route('deploymentConfig.html', true))
.when(UrlHelpers.join(context, 'imageRepositories'), route('imageRepositories.html', false))
});
+
+ angular.forEach([context, "/workspaces/:workspace", "/workspaces/:workspace/projects/:project"], (context) => {
+ $routeProvider
+ .when(UrlHelpers.join(context, 'buildConfigEdit'), route('buildConfigEdit.html', true))
+ .when(UrlHelpers.join(context, 'buildConfigEdit/:id'), route('buildConfigEdit.html', true))
+ });
}]);
diff --git a/plugins/kubernetes/ts/schema.ts b/plugins/kubernetes/ts/schema.ts
index 565921b..8fecd73 100644
--- a/plugins/kubernetes/ts/schema.ts
+++ b/plugins/kubernetes/ts/schema.ts
@@ -3,4675 +3,7018 @@
module Kubernetes {
export var schema =
-{
- "id": "http://fabric8.io/fabric8/v2/Schema#",
- "$schema": "http://json-schema.org/schema#",
- "definitions": {
- "kubernetes_AWSElasticBlockStoreVolumeSource": {
- "type": "object",
- "description": "",
- "properties": {
- "fsType": {
- "type": "string",
- "description": "file system type to mount"
+ {
+ "id": "http://fabric8.io/fabric8/v2/Schema#",
+ "$schema": "http://json-schema.org/schema#",
+ "definitions": {
+ "api_RootPaths": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "paths": {
+ "type": "array",
+ "description": "",
+ "items": {
+ "type": "string",
+ "description": ""
+ }
+ }
},
- "partition": {
- "type": "integer",
- "description": "partition on the disk to mount (e.g."
- },
- "readOnly": {
- "type": "boolean",
- "description": "read-only if true"
- },
- "volumeID": {
- "type": "string",
- "description": "unique id of the PD resource in AWS"
- }
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.RootPaths"
},
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.AWSElasticBlockStoreVolumeSource"
- },
- "kubernetes_Capabilities": {
- "type": "object",
- "description": "",
- "properties": {
- "add": {
- "type": "array",
- "description": "added capabilities",
- "items": {
+ "kubernetes_AWSElasticBlockStoreVolumeSource": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "fsType": {
"type": "string",
- "description": "added capabilities"
- }
- },
- "drop": {
- "type": "array",
- "description": "droped capabilities",
- "items": {
+ "description": "file system type to mount"
+ },
+ "partition": {
+ "type": "integer",
+ "description": "partition on the disk to mount (e.g."
+ },
+ "readOnly": {
+ "type": "boolean",
+ "description": "read-only if true"
+ },
+ "volumeID": {
"type": "string",
- "description": "droped capabilities"
+ "description": "unique id of the PD resource in AWS; see http://releases.k8s.io/HEAD/docs/user-guide/volumes.md#awselasticblockstore"
}
- }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.AWSElasticBlockStoreVolumeSource"
},
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.Capabilities"
- },
- "kubernetes_Container": {
- "type": "object",
- "description": "",
- "properties": {
- "args": {
- "type": "array",
- "description": "command array; the docker image's cmd is used if this is not provided; arguments to the entrypoint; cannot be updated",
- "items": {
+ "kubernetes_Capabilities": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "add": {
+ "type": "array",
+ "description": "added capabilities",
+ "items": {
+ "type": "string",
+ "description": "added capabilities"
+ }
+ },
+ "drop": {
+ "type": "array",
+ "description": "droped capabilities",
+ "items": {
+ "type": "string",
+ "description": "droped capabilities"
+ }
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.Capabilities"
+ },
+ "kubernetes_CephFSVolumeSource": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "monitors": {
+ "type": "array",
+ "description": "a collection of Ceph monitors",
+ "items": {
+ "type": "string",
+ "description": "a collection of Ceph monitors"
+ }
+ },
+ "readOnly": {
+ "type": "boolean",
+ "description": "Ceph fs to be mounted with read-only permissions"
+ },
+ "secretFile": {
"type": "string",
- "description": "command array; the docker image's cmd is used if this is not provided; arguments to the entrypoint; cannot be updated"
- }
- },
- "command": {
- "type": "array",
- "description": "entrypoint array; not executed within a shell; the docker image's entrypoint is used if this is not provided; cannot be updated",
- "items": {
+ "description": "path to secret for rados user; default is /etc/ceph/user.secret; optional"
+ },
+ "secretRef": {
+ "$ref": "#/definitions/kubernetes_LocalObjectReference",
+ "javaType": "io.fabric8.kubernetes.api.model.LocalObjectReference"
+ },
+ "user": {
"type": "string",
- "description": "entrypoint array; not executed within a shell; the docker image's entrypoint is used if this is not provided; cannot be updated"
+ "description": "rados user name; default is admin; optional"
}
},
- "env": {
- "type": "array",
- "description": "list of environment variables to set in the container; cannot be updated",
- "items": {
- "$ref": "#/definitions/kubernetes_EnvVar",
- "javaType": "io.fabric8.kubernetes.api.model.EnvVar"
- }
- },
- "image": {
- "type": "string",
- "description": "Docker image name"
- },
- "imagePullPolicy": {
- "type": "string",
- "description": "image pull policy; one of Always"
- },
- "lifecycle": {
- "$ref": "#/definitions/kubernetes_Lifecycle",
- "javaType": "io.fabric8.kubernetes.api.model.Lifecycle"
- },
- "livenessProbe": {
- "$ref": "#/definitions/kubernetes_Probe",
- "javaType": "io.fabric8.kubernetes.api.model.Probe"
- },
- "name": {
- "type": "string",
- "description": "name of the container; must be a DNS_LABEL and unique within the pod; cannot be updated",
- "maxLength": 63,
- "pattern": "^[a-z0-9]([-a-z0-9]*[a-z0-9])?$"
- },
- "ports": {
- "type": "array",
- "description": "list of ports to expose from the container; cannot be updated",
- "items": {
- "$ref": "#/definitions/kubernetes_ContainerPort",
- "javaType": "io.fabric8.kubernetes.api.model.ContainerPort"
- }
- },
- "readinessProbe": {
- "$ref": "#/definitions/kubernetes_Probe",
- "javaType": "io.fabric8.kubernetes.api.model.Probe"
- },
- "resources": {
- "$ref": "#/definitions/kubernetes_ResourceRequirements",
- "javaType": "io.fabric8.kubernetes.api.model.ResourceRequirements"
- },
- "securityContext": {
- "$ref": "#/definitions/kubernetes_SecurityContext",
- "javaType": "io.fabric8.kubernetes.api.model.SecurityContext"
- },
- "terminationMessagePath": {
- "type": "string",
- "description": "path at which the file to which the container's termination message will be written is mounted into the container's filesystem; message written is intended to be brief final status"
- },
- "volumeMounts": {
- "type": "array",
- "description": "pod volumes to mount into the container's filesyste; cannot be updated",
- "items": {
- "$ref": "#/definitions/kubernetes_VolumeMount",
- "javaType": "io.fabric8.kubernetes.api.model.VolumeMount"
- }
- },
- "workingDir": {
- "type": "string",
- "description": "container's working directory; defaults to image's default; cannot be updated"
- }
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.CephFSVolumeSource"
},
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.Container"
- },
- "kubernetes_ContainerPort": {
- "type": "object",
- "description": "",
- "properties": {
- "containerPort": {
- "type": "integer",
- "description": "number of port to expose on the pod's IP address"
- },
- "hostIP": {
- "type": "string",
- "description": "host IP to bind the port to"
- },
- "hostPort": {
- "type": "integer",
- "description": "number of port to expose on the host; most containers do not need this"
- },
- "name": {
- "type": "string",
- "description": "name for the port that can be referred to by services; must be a DNS_LABEL and unique without the pod"
- },
- "protocol": {
- "type": "string",
- "description": "protocol for port; must be UDP or TCP; TCP if unspecified"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.ContainerPort"
- },
- "kubernetes_ContainerState": {
- "type": "object",
- "description": "",
- "properties": {
- "running": {
- "$ref": "#/definitions/kubernetes_ContainerStateRunning",
- "javaType": "io.fabric8.kubernetes.api.model.ContainerStateRunning"
- },
- "termination": {
- "$ref": "#/definitions/kubernetes_ContainerStateTerminated",
- "javaType": "io.fabric8.kubernetes.api.model.ContainerStateTerminated"
- },
- "waiting": {
- "$ref": "#/definitions/kubernetes_ContainerStateWaiting",
- "javaType": "io.fabric8.kubernetes.api.model.ContainerStateWaiting"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.ContainerState"
- },
- "kubernetes_ContainerStateRunning": {
- "type": "object",
- "description": "",
- "properties": {
- "startedAt": {
- "type": "string",
- "description": "time at which the container was last (re-)started"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.ContainerStateRunning"
- },
- "kubernetes_ContainerStateTerminated": {
- "type": "object",
- "description": "",
- "properties": {
- "containerID": {
- "type": "string",
- "description": "container's ID in the format 'docker://\u003ccontainer_id\u003e'"
- },
- "exitCode": {
- "type": "integer",
- "description": "exit status from the last termination of the container"
- },
- "finishedAt": {
- "type": "string",
- "description": "time at which the container last terminated"
- },
- "message": {
- "type": "string",
- "description": "message regarding the last termination of the container"
- },
- "reason": {
- "type": "string",
- "description": "(brief) reason from the last termination of the container"
- },
- "signal": {
- "type": "integer",
- "description": "signal from the last termination of the container"
- },
- "startedAt": {
- "type": "string",
- "description": "time at which previous execution of the container started"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.ContainerStateTerminated"
- },
- "kubernetes_ContainerStateWaiting": {
- "type": "object",
- "description": "",
- "properties": {
- "reason": {
- "type": "string",
- "description": "(brief) reason the container is not yet running"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.ContainerStateWaiting"
- },
- "kubernetes_ContainerStatus": {
- "type": "object",
- "description": "",
- "properties": {
- "containerID": {
- "type": "string",
- "description": "container's ID in the format 'docker://\u003ccontainer_id\u003e'"
- },
- "image": {
- "type": "string",
- "description": "image of the container"
- },
- "imageID": {
- "type": "string",
- "description": "ID of the container's image"
- },
- "lastState": {
- "$ref": "#/definitions/kubernetes_ContainerState",
- "javaType": "io.fabric8.kubernetes.api.model.ContainerState"
- },
- "name": {
- "type": "string",
- "description": "name of the container; must be a DNS_LABEL and unique within the pod; cannot be updated",
- "maxLength": 63,
- "pattern": "^[a-z0-9]([-a-z0-9]*[a-z0-9])?$"
- },
- "ready": {
- "type": "boolean",
- "description": "specifies whether the container has passed its readiness probe"
- },
- "restartCount": {
- "type": "integer",
- "description": "the number of times the container has been restarted"
- },
- "state": {
- "$ref": "#/definitions/kubernetes_ContainerState",
- "javaType": "io.fabric8.kubernetes.api.model.ContainerState"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.ContainerStatus"
- },
- "kubernetes_EmptyDirVolumeSource": {
- "type": "object",
- "description": "",
- "properties": {
- "medium": {
- "type": "string",
- "description": "type of storage used to back the volume; must be an empty string (default) or Memory"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.EmptyDirVolumeSource"
- },
- "kubernetes_EndpointAddress": {
- "type": "object",
- "description": "",
- "properties": {
- "ip": {
- "type": "string",
- "description": "IP address of the endpoint"
- },
- "targetRef": {
- "$ref": "#/definitions/kubernetes_ObjectReference",
- "javaType": "io.fabric8.kubernetes.api.model.ObjectReference"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.EndpointAddress"
- },
- "kubernetes_EndpointPort": {
- "type": "object",
- "description": "",
- "properties": {
- "name": {
- "type": "string",
- "description": "name of this port",
- "maxLength": 63,
- "pattern": "^[a-z0-9]([-a-z0-9]*[a-z0-9])?$"
- },
- "port": {
- "type": "integer",
- "description": "port number of the endpoint"
- },
- "protocol": {
- "type": "string",
- "description": "protocol for this port; must be UDP or TCP; TCP if unspecified"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.EndpointPort"
- },
- "kubernetes_EndpointSubset": {
- "type": "object",
- "description": "",
- "properties": {
- "addresses": {
- "type": "array",
- "description": "IP addresses which offer the related ports",
- "items": {
- "$ref": "#/definitions/kubernetes_EndpointAddress",
- "javaType": "io.fabric8.kubernetes.api.model.EndpointAddress"
- }
- },
- "ports": {
- "type": "array",
- "description": "port numbers available on the related IP addresses",
- "items": {
- "$ref": "#/definitions/kubernetes_EndpointPort",
- "javaType": "io.fabric8.kubernetes.api.model.EndpointPort"
- }
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.EndpointSubset"
- },
- "kubernetes_Endpoints": {
- "type": "object",
- "description": "",
- "properties": {
- "apiVersion": {
- "type": "string",
- "description": "",
- "default": "v1",
- "required": true,
- "enum": [
- "v1"
- ]
- },
- "kind": {
- "type": "string",
- "description": "",
- "default": "Endpoints",
- "required": true
- },
- "metadata": {
- "$ref": "#/definitions/kubernetes_ObjectMeta",
- "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
- },
- "subsets": {
- "type": "array",
- "description": "sets of addresses and ports that comprise a service",
- "items": {
- "$ref": "#/definitions/kubernetes_EndpointSubset",
- "javaType": "io.fabric8.kubernetes.api.model.EndpointSubset"
- }
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.Endpoints",
- "javaInterfaces": [
- "io.fabric8.kubernetes.api.model.HasMetadata"
- ]
- },
- "kubernetes_EndpointsList": {
- "type": "object",
- "description": "",
- "properties": {
- "apiVersion": {
- "type": "string",
- "description": "",
- "default": "v1",
- "required": true,
- "enum": [
- "v1"
- ]
- },
- "items": {
- "type": "array",
- "description": "list of endpoints",
- "items": {
- "$ref": "#/definitions/kubernetes_Endpoints",
- "javaType": "io.fabric8.kubernetes.api.model.Endpoints"
- }
- },
- "kind": {
- "type": "string",
- "description": "",
- "default": "EndpointsList",
- "required": true
- },
- "metadata": {
- "$ref": "#/definitions/kubernetes_ListMeta",
- "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.EndpointsList",
- "javaInterfaces": [
- "io.fabric8.kubernetes.api.model.KubernetesResource"
- ]
- },
- "kubernetes_EnvVar": {
- "type": "object",
- "description": "",
- "properties": {
- "name": {
- "type": "string",
- "description": "name of the environment variable; must be a C_IDENTIFIER",
- "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
- },
- "value": {
- "type": "string",
- "description": "value of the environment variable; defaults to empty string"
- },
- "valueFrom": {
- "$ref": "#/definitions/kubernetes_EnvVarSource",
- "javaType": "io.fabric8.kubernetes.api.model.EnvVarSource"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.EnvVar"
- },
- "kubernetes_EnvVarSource": {
- "type": "object",
- "description": "",
- "properties": {
- "fieldRef": {
- "$ref": "#/definitions/kubernetes_ObjectFieldSelector",
- "javaType": "io.fabric8.kubernetes.api.model.ObjectFieldSelector"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.EnvVarSource"
- },
- "kubernetes_ExecAction": {
- "type": "object",
- "description": "",
- "properties": {
- "command": {
- "type": "array",
- "description": "command line to execute inside the container; working directory for the command is root ('/') in the container's file system; the command is exec'd",
- "items": {
+ "kubernetes_Container": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "args": {
+ "type": "array",
+ "description": "command array; the docker image's cmd is used if this is not provided; arguments to the entrypoint; cannot be updated; variable references $(VAR_NAME) are expanded using the container's environment variables; if a variable cannot be resolved",
+ "items": {
+ "type": "string",
+ "description": "command array; the docker image's cmd is used if this is not provided; arguments to the entrypoint; cannot be updated; variable references $(VAR_NAME) are expanded using the container's environment variables; if a variable cannot be resolved"
+ }
+ },
+ "command": {
+ "type": "array",
+ "description": "entrypoint array; not executed within a shell; the docker image's entrypoint is used if this is not provided; cannot be updated; variable references $(VAR_NAME) are expanded using the container's environment variables; if a variable cannot be resolved",
+ "items": {
+ "type": "string",
+ "description": "entrypoint array; not executed within a shell; the docker image's entrypoint is used if this is not provided; cannot be updated; variable references $(VAR_NAME) are expanded using the container's environment variables; if a variable cannot be resolved"
+ }
+ },
+ "env": {
+ "type": "array",
+ "description": "list of environment variables to set in the container; cannot be updated",
+ "items": {
+ "$ref": "#/definitions/kubernetes_EnvVar",
+ "javaType": "io.fabric8.kubernetes.api.model.EnvVar"
+ }
+ },
+ "image": {
"type": "string",
- "description": "command line to execute inside the container; working directory for the command is root ('/') in the container's file system; the command is exec'd"
+ "description": "Docker image name; see http://releases.k8s.io/HEAD/docs/user-guide/images.md"
+ },
+ "imagePullPolicy": {
+ "type": "string",
+ "description": "image pull policy; one of Always"
+ },
+ "lifecycle": {
+ "$ref": "#/definitions/kubernetes_Lifecycle",
+ "javaType": "io.fabric8.kubernetes.api.model.Lifecycle"
+ },
+ "livenessProbe": {
+ "$ref": "#/definitions/kubernetes_Probe",
+ "javaType": "io.fabric8.kubernetes.api.model.Probe"
+ },
+ "name": {
+ "type": "string",
+ "description": "name of the container; must be a DNS_LABEL and unique within the pod; cannot be updated",
+ "maxLength": 63,
+ "pattern": "^[a-z0-9]([-a-z0-9]*[a-z0-9])?$"
+ },
+ "ports": {
+ "type": "array",
+ "description": "list of ports to expose from the container; cannot be updated",
+ "items": {
+ "$ref": "#/definitions/kubernetes_ContainerPort",
+ "javaType": "io.fabric8.kubernetes.api.model.ContainerPort"
+ }
+ },
+ "readinessProbe": {
+ "$ref": "#/definitions/kubernetes_Probe",
+ "javaType": "io.fabric8.kubernetes.api.model.Probe"
+ },
+ "resources": {
+ "$ref": "#/definitions/kubernetes_ResourceRequirements",
+ "javaType": "io.fabric8.kubernetes.api.model.ResourceRequirements"
+ },
+ "securityContext": {
+ "$ref": "#/definitions/kubernetes_SecurityContext",
+ "javaType": "io.fabric8.kubernetes.api.model.SecurityContext"
+ },
+ "stdin": {
+ "type": "boolean",
+ "description": "Whether this container should allocate a buffer for stdin in the container runtime; default is false"
+ },
+ "terminationMessagePath": {
+ "type": "string",
+ "description": "path at which the file to which the container's termination message will be written is mounted into the container's filesystem; message written is intended to be brief final status"
+ },
+ "tty": {
+ "type": "boolean",
+ "description": "Whether this container should allocate a TTY for itself"
+ },
+ "volumeMounts": {
+ "type": "array",
+ "description": "pod volumes to mount into the container's filesyste; cannot be updated",
+ "items": {
+ "$ref": "#/definitions/kubernetes_VolumeMount",
+ "javaType": "io.fabric8.kubernetes.api.model.VolumeMount"
+ }
+ },
+ "workingDir": {
+ "type": "string",
+ "description": "container's working directory; defaults to image's default; cannot be updated"
}
- }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.Container"
},
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.ExecAction"
- },
- "kubernetes_GCEPersistentDiskVolumeSource": {
- "type": "object",
- "description": "",
- "properties": {
- "fsType": {
- "type": "string",
- "description": "file system type to mount"
+ "kubernetes_ContainerPort": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "containerPort": {
+ "type": "integer",
+ "description": "number of port to expose on the pod's IP address"
+ },
+ "hostIP": {
+ "type": "string",
+ "description": "host IP to bind the port to"
+ },
+ "hostPort": {
+ "type": "integer",
+ "description": "number of port to expose on the host; most containers do not need this"
+ },
+ "name": {
+ "type": "string",
+ "description": "name for the port that can be referred to by services; must be an IANA_SVC_NAME and unique within the pod"
+ },
+ "protocol": {
+ "type": "string",
+ "description": "protocol for port; must be UDP or TCP; TCP if unspecified"
+ }
},
- "partition": {
- "type": "integer",
- "description": "partition on the disk to mount (e.g."
- },
- "pdName": {
- "type": "string",
- "description": "unique name of the PD resource in GCE"
- },
- "readOnly": {
- "type": "boolean",
- "description": "read-only if true"
- }
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.ContainerPort"
},
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.GCEPersistentDiskVolumeSource"
- },
- "kubernetes_GitRepoVolumeSource": {
- "type": "object",
- "description": "",
- "properties": {
- "repository": {
- "type": "string",
- "description": "repository URL"
+ "kubernetes_ContainerState": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "running": {
+ "$ref": "#/definitions/kubernetes_ContainerStateRunning",
+ "javaType": "io.fabric8.kubernetes.api.model.ContainerStateRunning"
+ },
+ "terminated": {
+ "$ref": "#/definitions/kubernetes_ContainerStateTerminated",
+ "javaType": "io.fabric8.kubernetes.api.model.ContainerStateTerminated"
+ },
+ "waiting": {
+ "$ref": "#/definitions/kubernetes_ContainerStateWaiting",
+ "javaType": "io.fabric8.kubernetes.api.model.ContainerStateWaiting"
+ }
},
- "revision": {
- "type": "string",
- "description": "commit hash for the specified revision"
- }
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.ContainerState"
},
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.GitRepoVolumeSource"
- },
- "kubernetes_GlusterfsVolumeSource": {
- "type": "object",
- "description": "",
- "properties": {
- "endpoints": {
- "type": "string",
- "description": "gluster hosts endpoints name"
+ "kubernetes_ContainerStateRunning": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "startedAt": {
+ "type": "string",
+ "description": "time at which the container was last (re-)started"
+ }
},
- "path": {
- "type": "string",
- "description": "path to gluster volume"
- },
- "readOnly": {
- "type": "boolean",
- "description": "glusterfs volume to be mounted with read-only permissions"
- }
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.ContainerStateRunning"
},
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.GlusterfsVolumeSource"
- },
- "kubernetes_HTTPGetAction": {
- "type": "object",
- "description": "",
- "properties": {
- "host": {
- "type": "string",
- "description": "hostname to connect to; defaults to pod IP"
+ "kubernetes_ContainerStateTerminated": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "containerID": {
+ "type": "string",
+ "description": "container's ID in the format 'docker://\u003ccontainer_id\u003e'"
+ },
+ "exitCode": {
+ "type": "integer",
+ "description": "exit status from the last termination of the container"
+ },
+ "finishedAt": {
+ "type": "string",
+ "description": "time at which the container last terminated"
+ },
+ "message": {
+ "type": "string",
+ "description": "message regarding the last termination of the container"
+ },
+ "reason": {
+ "type": "string",
+ "description": "(brief) reason from the last termination of the container"
+ },
+ "signal": {
+ "type": "integer",
+ "description": "signal from the last termination of the container"
+ },
+ "startedAt": {
+ "type": "string",
+ "description": "time at which previous execution of the container started"
+ }
},
- "path": {
- "type": "string",
- "description": "path to access on the HTTP server"
- },
- "port": {
- "$ref": "#/definitions/kubernetes_util_IntOrString",
- "javaType": "io.fabric8.kubernetes.api.model.util.IntOrString"
- }
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.ContainerStateTerminated"
},
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.HTTPGetAction"
- },
- "kubernetes_Handler": {
- "type": "object",
- "description": "",
- "properties": {
- "exec": {
- "$ref": "#/definitions/kubernetes_ExecAction",
- "javaType": "io.fabric8.kubernetes.api.model.ExecAction"
+ "kubernetes_ContainerStateWaiting": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "reason": {
+ "type": "string",
+ "description": "(brief) reason the container is not yet running"
+ }
},
- "httpGet": {
- "$ref": "#/definitions/kubernetes_HTTPGetAction",
- "javaType": "io.fabric8.kubernetes.api.model.HTTPGetAction"
- },
- "tcpSocket": {
- "$ref": "#/definitions/kubernetes_TCPSocketAction",
- "javaType": "io.fabric8.kubernetes.api.model.TCPSocketAction"
- }
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.ContainerStateWaiting"
},
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.Handler"
- },
- "kubernetes_HostPathVolumeSource": {
- "type": "object",
- "description": "",
- "properties": {
- "path": {
- "type": "string",
- "description": "path of the directory on the host"
- }
+ "kubernetes_ContainerStatus": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "containerID": {
+ "type": "string",
+ "description": "container's ID in the format 'docker://\u003ccontainer_id\u003e'; see http://releases.k8s.io/HEAD/docs/user-guide/container-environment.md#container-information"
+ },
+ "image": {
+ "type": "string",
+ "description": "image of the container; see http://releases.k8s.io/HEAD/docs/user-guide/images.md"
+ },
+ "imageID": {
+ "type": "string",
+ "description": "ID of the container's image"
+ },
+ "lastState": {
+ "$ref": "#/definitions/kubernetes_ContainerState",
+ "javaType": "io.fabric8.kubernetes.api.model.ContainerState"
+ },
+ "name": {
+ "type": "string",
+ "description": "name of the container; must be a DNS_LABEL and unique within the pod; cannot be updated",
+ "maxLength": 63,
+ "pattern": "^[a-z0-9]([-a-z0-9]*[a-z0-9])?$"
+ },
+ "ready": {
+ "type": "boolean",
+ "description": "specifies whether the container has passed its readiness probe"
+ },
+ "restartCount": {
+ "type": "integer",
+ "description": "the number of times the container has been restarted"
+ },
+ "state": {
+ "$ref": "#/definitions/kubernetes_ContainerState",
+ "javaType": "io.fabric8.kubernetes.api.model.ContainerState"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.ContainerStatus"
},
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.HostPathVolumeSource"
- },
- "kubernetes_ISCSIVolumeSource": {
- "type": "object",
- "description": "",
- "properties": {
- "fsType": {
- "type": "string",
- "description": "file system type to mount"
+ "kubernetes_EmptyDirVolumeSource": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "medium": {
+ "type": "string",
+ "description": "type of storage used to back the volume; must be an empty string (default) or Memory; see http://releases.k8s.io/HEAD/docs/user-guide/volumes.md#emptydir"
+ }
},
- "iqn": {
- "type": "string",
- "description": "iSCSI Qualified Name"
- },
- "lun": {
- "type": "integer",
- "description": "iscsi target lun number"
- },
- "readOnly": {
- "type": "boolean",
- "description": "read-only if true"
- },
- "targetPortal": {
- "type": "string",
- "description": "iSCSI target portal"
- }
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.EmptyDirVolumeSource"
},
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.ISCSIVolumeSource"
- },
- "kubernetes_Lifecycle": {
- "type": "object",
- "description": "",
- "properties": {
- "postStart": {
- "$ref": "#/definitions/kubernetes_Handler",
- "javaType": "io.fabric8.kubernetes.api.model.Handler"
+ "kubernetes_EndpointAddress": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "ip": {
+ "type": "string",
+ "description": "IP address of the endpoint"
+ },
+ "targetRef": {
+ "$ref": "#/definitions/kubernetes_ObjectReference",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectReference"
+ }
},
- "preStop": {
- "$ref": "#/definitions/kubernetes_Handler",
- "javaType": "io.fabric8.kubernetes.api.model.Handler"
- }
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.EndpointAddress"
},
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.Lifecycle"
- },
- "kubernetes_List": {
- "type": "object",
- "description": "",
- "properties": {
- "apiVersion": {
- "type": "string",
- "description": "",
- "default": "v1",
- "required": true,
- "enum": [
- "v1"
- ]
+ "kubernetes_EndpointPort": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "name of this port",
+ "maxLength": 63,
+ "pattern": "^[a-z0-9]([-a-z0-9]*[a-z0-9])?$"
+ },
+ "port": {
+ "type": "integer",
+ "description": "port number of the endpoint"
+ },
+ "protocol": {
+ "type": "string",
+ "description": "protocol for this port; must be UDP or TCP; TCP if unspecified"
+ }
},
- "items": {
- "type": "array",
- "description": "list of objects",
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.EndpointPort"
+ },
+ "kubernetes_EndpointSubset": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "addresses": {
+ "type": "array",
+ "description": "IP addresses which offer the related ports",
+ "items": {
+ "$ref": "#/definitions/kubernetes_EndpointAddress",
+ "javaType": "io.fabric8.kubernetes.api.model.EndpointAddress"
+ }
+ },
+ "ports": {
+ "type": "array",
+ "description": "port numbers available on the related IP addresses",
+ "items": {
+ "$ref": "#/definitions/kubernetes_EndpointPort",
+ "javaType": "io.fabric8.kubernetes.api.model.EndpointPort"
+ }
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.EndpointSubset"
+ },
+ "kubernetes_Endpoints": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "Endpoints",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ObjectMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
+ },
+ "subsets": {
+ "type": "array",
+ "description": "sets of addresses and ports that comprise a service",
+ "items": {
+ "$ref": "#/definitions/kubernetes_EndpointSubset",
+ "javaType": "io.fabric8.kubernetes.api.model.EndpointSubset"
+ }
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.Endpoints",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.HasMetadata"
+ ]
+ },
+ "kubernetes_EndpointsList": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
"items": {
+ "type": "array",
+ "description": "list of endpoints",
+ "items": {
+ "$ref": "#/definitions/kubernetes_Endpoints",
+ "javaType": "io.fabric8.kubernetes.api.model.Endpoints"
+ }
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "EndpointsList",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ListMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.EndpointsList",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.KubernetesResource",
+ "io.fabric8.kubernetes.api.model.KubernetesResourceList"
+ ]
+ },
+ "kubernetes_EnvVar": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "name of the environment variable; must be a C_IDENTIFIER",
+ "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
+ },
+ "value": {
+ "type": "string",
+ "description": "value of the environment variable; defaults to empty string; variable references $(VAR_NAME) are expanded using the previously defined environment varibles in the container and any service environment variables; if a variable cannot be resolved"
+ },
+ "valueFrom": {
+ "$ref": "#/definitions/kubernetes_EnvVarSource",
+ "javaType": "io.fabric8.kubernetes.api.model.EnvVarSource"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.EnvVar"
+ },
+ "kubernetes_EnvVarSource": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "fieldRef": {
+ "$ref": "#/definitions/kubernetes_ObjectFieldSelector",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectFieldSelector"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.EnvVarSource"
+ },
+ "kubernetes_Event": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "count": {
+ "type": "integer",
+ "description": "the number of times this event has occurred"
+ },
+ "firstTimestamp": {
+ "type": "string",
+ "description": "the time at which the event was first recorded"
+ },
+ "involvedObject": {
+ "$ref": "#/definitions/kubernetes_ObjectReference",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectReference"
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "Event",
+ "required": true
+ },
+ "lastTimestamp": {
+ "type": "string",
+ "description": "the time at which the most recent occurrence of this event was recorded"
+ },
+ "message": {
+ "type": "string",
+ "description": "human-readable description of the status of this operation"
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ObjectMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
+ },
+ "reason": {
+ "type": "string",
+ "description": "short"
+ },
+ "source": {
+ "$ref": "#/definitions/kubernetes_EventSource",
+ "javaType": "io.fabric8.kubernetes.api.model.EventSource"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.Event",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.HasMetadata"
+ ]
+ },
+ "kubernetes_EventList": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "items": {
+ "type": "array",
+ "description": "list of events",
+ "items": {
+ "$ref": "#/definitions/kubernetes_Event",
+ "javaType": "io.fabric8.kubernetes.api.model.Event"
+ }
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "EventList",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ListMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.EventList",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.KubernetesResource",
+ "io.fabric8.kubernetes.api.model.KubernetesResourceList"
+ ]
+ },
+ "kubernetes_EventSource": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "component": {
+ "type": "string",
+ "description": "component that generated the event"
+ },
+ "host": {
+ "type": "string",
+ "description": "name of the host where the event is generated"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.EventSource"
+ },
+ "kubernetes_ExecAction": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "command": {
+ "type": "array",
+ "description": "command line to execute inside the container; working directory for the command is root ('/') in the container's file system; the command is exec'd",
+ "items": {
+ "type": "string",
+ "description": "command line to execute inside the container; working directory for the command is root ('/') in the container's file system; the command is exec'd"
+ }
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.ExecAction"
+ },
+ "kubernetes_GCEPersistentDiskVolumeSource": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "fsType": {
+ "type": "string",
+ "description": "file system type to mount"
+ },
+ "partition": {
+ "type": "integer",
+ "description": "partition on the disk to mount (e.g."
+ },
+ "pdName": {
+ "type": "string",
+ "description": "unique name of the PD resource in GCE; see http://releases.k8s.io/HEAD/docs/user-guide/volumes.md#gcepersistentdisk"
+ },
+ "readOnly": {
+ "type": "boolean",
+ "description": "read-only if true"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.GCEPersistentDiskVolumeSource"
+ },
+ "kubernetes_GitRepoVolumeSource": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "repository": {
+ "type": "string",
+ "description": "repository URL"
+ },
+ "revision": {
+ "type": "string",
+ "description": "commit hash for the specified revision"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.GitRepoVolumeSource"
+ },
+ "kubernetes_GlusterfsVolumeSource": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "endpoints": {
+ "type": "string",
+ "description": "gluster hosts endpoints name; see http://releases.k8s.io/HEAD/examples/glusterfs/README.md#create-a-pod"
+ },
+ "path": {
+ "type": "string",
+ "description": "path to gluster volume; see http://releases.k8s.io/HEAD/examples/glusterfs/README.md#create-a-pod"
+ },
+ "readOnly": {
+ "type": "boolean",
+ "description": "glusterfs volume to be mounted with read-only permissions; see http://releases.k8s.io/HEAD/examples/glusterfs/README.md#create-a-pod"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.GlusterfsVolumeSource"
+ },
+ "kubernetes_HTTPGetAction": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "host": {
+ "type": "string",
+ "description": "hostname to connect to; defaults to pod IP"
+ },
+ "path": {
+ "type": "string",
+ "description": "path to access on the HTTP server"
+ },
+ "port": {
+ "$ref": "#/definitions/kubernetes_util_IntOrString",
+ "javaType": "io.fabric8.kubernetes.api.model.IntOrString"
+ },
+ "scheme": {
+ "type": "string",
+ "description": "scheme to connect with"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.HTTPGetAction"
+ },
+ "kubernetes_Handler": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "exec": {
+ "$ref": "#/definitions/kubernetes_ExecAction",
+ "javaType": "io.fabric8.kubernetes.api.model.ExecAction"
+ },
+ "httpGet": {
+ "$ref": "#/definitions/kubernetes_HTTPGetAction",
+ "javaType": "io.fabric8.kubernetes.api.model.HTTPGetAction"
+ },
+ "tcpSocket": {
+ "$ref": "#/definitions/kubernetes_TCPSocketAction",
+ "javaType": "io.fabric8.kubernetes.api.model.TCPSocketAction"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.Handler"
+ },
+ "kubernetes_HostPathVolumeSource": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "path": {
+ "type": "string",
+ "description": "path of the directory on the host; see http://releases.k8s.io/HEAD/docs/user-guide/volumes.md#hostpath"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.HostPathVolumeSource"
+ },
+ "kubernetes_ISCSIVolumeSource": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "fsType": {
+ "type": "string",
+ "description": "file system type to mount"
+ },
+ "iqn": {
+ "type": "string",
+ "description": "iSCSI Qualified Name"
+ },
+ "lun": {
+ "type": "integer",
+ "description": "iscsi target lun number"
+ },
+ "readOnly": {
+ "type": "boolean",
+ "description": "read-only if true"
+ },
+ "targetPortal": {
+ "type": "string",
+ "description": "iSCSI target portal"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.ISCSIVolumeSource"
+ },
+ "kubernetes_Lifecycle": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "postStart": {
+ "$ref": "#/definitions/kubernetes_Handler",
+ "javaType": "io.fabric8.kubernetes.api.model.Handler"
+ },
+ "preStop": {
+ "$ref": "#/definitions/kubernetes_Handler",
+ "javaType": "io.fabric8.kubernetes.api.model.Handler"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.Lifecycle"
+ },
+ "kubernetes_List": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "items": {
+ "type": "array",
+ "description": "list of objects",
+ "items": {
+ "$ref": "#/definitions/kubernetes_runtime_RawExtension",
+ "javaType": "io.fabric8.kubernetes.api.model.HasMetadata"
+ }
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "List",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ListMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.BaseKubernetesList",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.KubernetesResource",
+ "io.fabric8.kubernetes.api.model.KubernetesResourceList"
+ ]
+ },
+ "kubernetes_ListMeta": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "resourceVersion": {
+ "type": "string",
+ "description": "string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system"
+ },
+ "selfLink": {
+ "type": "string",
+ "description": "URL for the object; populated by the system"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
+ },
+ "kubernetes_LoadBalancerIngress": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "hostname": {
+ "type": "string",
+ "description": "hostname of ingress point"
+ },
+ "ip": {
+ "type": "string",
+ "description": "IP address of ingress point"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.LoadBalancerIngress"
+ },
+ "kubernetes_LoadBalancerStatus": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "ingress": {
+ "type": "array",
+ "description": "load-balancer ingress points",
+ "items": {
+ "$ref": "#/definitions/kubernetes_LoadBalancerIngress",
+ "javaType": "io.fabric8.kubernetes.api.model.LoadBalancerIngress"
+ }
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.LoadBalancerStatus"
+ },
+ "kubernetes_LocalObjectReference": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "name of the referent; see http://releases.k8s.io/HEAD/docs/user-guide/identifiers.md#names"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.LocalObjectReference"
+ },
+ "kubernetes_MetadataFile": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "fieldRef": {
+ "$ref": "#/definitions/kubernetes_ObjectFieldSelector",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectFieldSelector"
+ },
+ "name": {
+ "type": "string",
+ "description": "the name of the file to be created"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.MetadataFile"
+ },
+ "kubernetes_MetadataVolumeSource": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "items": {
+ "type": "array",
+ "description": "list of metadata files",
+ "items": {
+ "$ref": "#/definitions/kubernetes_MetadataFile",
+ "javaType": "io.fabric8.kubernetes.api.model.MetadataFile"
+ }
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.MetadataVolumeSource"
+ },
+ "kubernetes_NFSVolumeSource": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "path": {
+ "type": "string",
+ "description": "the path that is exported by the NFS server; see http://releases.k8s.io/HEAD/docs/user-guide/volumes.md#nfs"
+ },
+ "readOnly": {
+ "type": "boolean",
+ "description": "forces the NFS export to be mounted with read-only permissions; see http://releases.k8s.io/HEAD/docs/user-guide/volumes.md#nfs"
+ },
+ "server": {
+ "type": "string",
+ "description": "the hostname or IP address of the NFS server; see http://releases.k8s.io/HEAD/docs/user-guide/volumes.md#nfs"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.NFSVolumeSource"
+ },
+ "kubernetes_Namespace": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "Namespace",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ObjectMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
+ },
+ "spec": {
+ "$ref": "#/definitions/kubernetes_NamespaceSpec",
+ "javaType": "io.fabric8.kubernetes.api.model.NamespaceSpec"
+ },
+ "status": {
+ "$ref": "#/definitions/kubernetes_NamespaceStatus",
+ "javaType": "io.fabric8.kubernetes.api.model.NamespaceStatus"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.Namespace",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.HasMetadata"
+ ]
+ },
+ "kubernetes_NamespaceList": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "items": {
+ "type": "array",
+ "description": "items is the list of Namespace objects in the list; see http://releases.k8s.io/HEAD/docs/user-guide/namespaces.md",
+ "items": {
+ "$ref": "#/definitions/kubernetes_Namespace",
+ "javaType": "io.fabric8.kubernetes.api.model.Namespace"
+ }
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "NamespaceList",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ListMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.NamespaceList",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.KubernetesResource",
+ "io.fabric8.kubernetes.api.model.KubernetesResourceList"
+ ]
+ },
+ "kubernetes_NamespaceSpec": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "finalizers": {
+ "type": "array",
+ "description": "an opaque list of values that must be empty to permanently remove object from storage; see http://releases.k8s.io/HEAD/docs/design/namespaces.md#finalizers",
+ "items": {
+ "type": "string",
+ "description": "an opaque list of values that must be empty to permanently remove object from storage; see http://releases.k8s.io/HEAD/docs/design/namespaces.md#finalizers"
+ }
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.NamespaceSpec"
+ },
+ "kubernetes_NamespaceStatus": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "phase": {
+ "type": "string",
+ "description": "phase is the current lifecycle phase of the namespace; see http://releases.k8s.io/HEAD/docs/design/namespaces.md#phases"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.NamespaceStatus"
+ },
+ "kubernetes_Node": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "Node",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ObjectMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
+ },
+ "spec": {
+ "$ref": "#/definitions/kubernetes_NodeSpec",
+ "javaType": "io.fabric8.kubernetes.api.model.NodeSpec"
+ },
+ "status": {
+ "$ref": "#/definitions/kubernetes_NodeStatus",
+ "javaType": "io.fabric8.kubernetes.api.model.NodeStatus"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.Node",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.HasMetadata"
+ ]
+ },
+ "kubernetes_NodeAddress": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "address": {
+ "type": "string",
+ "description": "the node address"
+ },
+ "type": {
+ "type": "string",
+ "description": "node address type"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.NodeAddress"
+ },
+ "kubernetes_NodeCondition": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "lastHeartbeatTime": {
+ "type": "string",
+ "description": "last time we got an update on a given condition"
+ },
+ "lastTransitionTime": {
+ "type": "string",
+ "description": "last time the condition transit from one status to another"
+ },
+ "message": {
+ "type": "string",
+ "description": "human readable message indicating details about last transition"
+ },
+ "reason": {
+ "type": "string",
+ "description": "(brief) reason for the condition's last transition"
+ },
+ "status": {
+ "type": "string",
+ "description": "status of the condition"
+ },
+ "type": {
+ "type": "string",
+ "description": "type of node condition"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.NodeCondition"
+ },
+ "kubernetes_NodeList": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "items": {
+ "type": "array",
+ "description": "list of nodes",
+ "items": {
+ "$ref": "#/definitions/kubernetes_Node",
+ "javaType": "io.fabric8.kubernetes.api.model.Node"
+ }
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "NodeList",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ListMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.NodeList",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.KubernetesResource",
+ "io.fabric8.kubernetes.api.model.KubernetesResourceList"
+ ]
+ },
+ "kubernetes_NodeSpec": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "externalID": {
+ "type": "string",
+ "description": "deprecated. External ID assigned to the node by some machine database (e.g. a cloud provider). Defaults to node name when empty."
+ },
+ "podCIDR": {
+ "type": "string",
+ "description": "pod IP range assigned to the node"
+ },
+ "providerID": {
+ "type": "string",
+ "description": "ID of the node assigned by the cloud provider in the format: \u003cProviderName\u003e://\u003cProviderSpecificNodeID\u003e"
+ },
+ "unschedulable": {
+ "type": "boolean",
+ "description": "disable pod scheduling on the node; see http://releases.k8s.io/HEAD/docs/admin/node.md#manual-node-administration"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.NodeSpec"
+ },
+ "kubernetes_NodeStatus": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "addresses": {
+ "type": "array",
+ "description": "list of addresses reachable to the node; see http://releases.k8s.io/HEAD/docs/admin/node.md#node-addresses",
+ "items": {
+ "$ref": "#/definitions/kubernetes_NodeAddress",
+ "javaType": "io.fabric8.kubernetes.api.model.NodeAddress"
+ }
+ },
+ "capacity": {
+ "type": "object",
+ "description": "compute resource capacity of the node; see http://releases.k8s.io/HEAD/docs/user-guide/compute-resources.md",
+ "additionalProperties": {
+ "$ref": "#/definitions/kubernetes_resource_Quantity",
+ "javaType": "io.fabric8.kubernetes.api.model.Quantity"
+ },
+ "javaType": "java.util.Map\u003cString,io.fabric8.kubernetes.api.model.Quantity\u003e"
+ },
+ "conditions": {
+ "type": "array",
+ "description": "list of node conditions observed; see http://releases.k8s.io/HEAD/docs/admin/node.md#node-condition",
+ "items": {
+ "$ref": "#/definitions/kubernetes_NodeCondition",
+ "javaType": "io.fabric8.kubernetes.api.model.NodeCondition"
+ }
+ },
+ "nodeInfo": {
+ "$ref": "#/definitions/kubernetes_NodeSystemInfo",
+ "javaType": "io.fabric8.kubernetes.api.model.NodeSystemInfo"
+ },
+ "phase": {
+ "type": "string",
+ "description": "most recently observed lifecycle phase of the node; see http://releases.k8s.io/HEAD/docs/admin/node.md#node-phase"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.NodeStatus"
+ },
+ "kubernetes_NodeSystemInfo": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "bootID": {
+ "type": "string",
+ "description": "boot id is the boot-id reported by the node"
+ },
+ "containerRuntimeVersion": {
+ "type": "string",
+ "description": "Container runtime version reported by the node through runtime remote API (e.g. docker://1.5.0)"
+ },
+ "kernelVersion": {
+ "type": "string",
+ "description": "Kernel version reported by the node from 'uname -r' (e.g. 3.16.0-0.bpo.4-amd64)"
+ },
+ "kubeProxyVersion": {
+ "type": "string",
+ "description": "Kube-proxy version reported by the node"
+ },
+ "kubeletVersion": {
+ "type": "string",
+ "description": "Kubelet version reported by the node"
+ },
+ "machineID": {
+ "type": "string",
+ "description": "machine-id reported by the node"
+ },
+ "osImage": {
+ "type": "string",
+ "description": "OS image used reported by the node from /etc/os-release (e.g. Debian GNU/Linux 7 (wheezy))"
+ },
+ "systemUUID": {
+ "type": "string",
+ "description": "system-uuid reported by the node"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.NodeSystemInfo"
+ },
+ "kubernetes_ObjectFieldSelector": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "version of the schema that fieldPath is written in terms of; defaults to v1"
+ },
+ "fieldPath": {
+ "type": "string",
+ "description": "path of the field to select in the specified API version"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectFieldSelector"
+ },
+ "kubernetes_ObjectMeta": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "annotations": {
+ "type": "object",
+ "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about objects; see http://releases.k8s.io/HEAD/docs/user-guide/annotations.md",
+ "additionalProperties": {
+ "type": "string",
+ "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about objects; see http://releases.k8s.io/HEAD/docs/user-guide/annotations.md"
+ },
+ "javaType": "java.util.Map\u003cString,String\u003e"
+ },
+ "creationTimestamp": {
+ "type": "string",
+ "description": "RFC 3339 date and time at which the object was created; populated by the system"
+ },
+ "deletionTimestamp": {
+ "type": "string",
+ "description": "RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested"
+ },
+ "generateName": {
+ "type": "string",
+ "description": "an optional prefix to use to generate a unique name; has the same validation rules as name; optional"
+ },
+ "generation": {
+ "type": "integer",
+ "description": "a sequence number representing a specific generation of the desired state; populated by the system; read-only",
+ "javaType": "Long"
+ },
+ "labels": {
+ "type": "object",
+ "description": "map of string keys and values that can be used to organize and categorize objects; may match selectors of replication controllers and services; see http://releases.k8s.io/HEAD/docs/user-guide/labels.md",
+ "additionalProperties": {
+ "type": "string",
+ "description": "map of string keys and values that can be used to organize and categorize objects; may match selectors of replication controllers and services; see http://releases.k8s.io/HEAD/docs/user-guide/labels.md"
+ },
+ "javaType": "java.util.Map\u003cString,String\u003e"
+ },
+ "name": {
+ "type": "string",
+ "description": "string that identifies an object. Must be unique within a namespace; cannot be updated; see http://releases.k8s.io/HEAD/docs/user-guide/identifiers.md#names",
+ "maxLength": 63,
+ "pattern": "^[a-z0-9]([-a-z0-9]*[a-z0-9])?$"
+ },
+ "namespace": {
+ "type": "string",
+ "description": "namespace of the object; must be a DNS_LABEL; cannot be updated; see http://releases.k8s.io/HEAD/docs/user-guide/namespaces.md",
+ "maxLength": 253,
+ "pattern": "^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$"
+ },
+ "resourceVersion": {
+ "type": "string",
+ "description": "string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system"
+ },
+ "selfLink": {
+ "type": "string",
+ "description": "URL for the object; populated by the system"
+ },
+ "uid": {
+ "type": "string",
+ "description": "unique UUID across space and time; populated by the system; read-only; see http://releases.k8s.io/HEAD/docs/user-guide/identifiers.md#uids"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
+ },
+ "kubernetes_ObjectReference": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "API version of the referent"
+ },
+ "fieldPath": {
+ "type": "string",
+ "description": "if referring to a piece of an object instead of an entire object"
+ },
+ "kind": {
+ "type": "string",
+ "description": "kind of the referent; see http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds"
+ },
+ "name": {
+ "type": "string",
+ "description": "name of the referent; see http://releases.k8s.io/HEAD/docs/user-guide/identifiers.md#names"
+ },
+ "namespace": {
+ "type": "string",
+ "description": "namespace of the referent; see http://releases.k8s.io/HEAD/docs/user-guide/namespaces.md"
+ },
+ "resourceVersion": {
+ "type": "string",
+ "description": "specific resourceVersion to which this reference is made"
+ },
+ "uid": {
+ "type": "string",
+ "description": "uid of the referent; see http://releases.k8s.io/HEAD/docs/user-guide/identifiers.md#uids"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectReference"
+ },
+ "kubernetes_PersistentVolume": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "PersistentVolume",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ObjectMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
+ },
+ "spec": {
+ "$ref": "#/definitions/kubernetes_PersistentVolumeSpec",
+ "javaType": "io.fabric8.kubernetes.api.model.PersistentVolumeSpec"
+ },
+ "status": {
+ "$ref": "#/definitions/kubernetes_PersistentVolumeStatus",
+ "javaType": "io.fabric8.kubernetes.api.model.PersistentVolumeStatus"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.PersistentVolume",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.HasMetadata"
+ ]
+ },
+ "kubernetes_PersistentVolumeClaim": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "PersistentVolumeClaim",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ObjectMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
+ },
+ "spec": {
+ "$ref": "#/definitions/kubernetes_PersistentVolumeClaimSpec",
+ "javaType": "io.fabric8.kubernetes.api.model.PersistentVolumeClaimSpec"
+ },
+ "status": {
+ "$ref": "#/definitions/kubernetes_PersistentVolumeClaimStatus",
+ "javaType": "io.fabric8.kubernetes.api.model.PersistentVolumeClaimStatus"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.PersistentVolumeClaim",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.HasMetadata"
+ ]
+ },
+ "kubernetes_PersistentVolumeClaimList": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "items": {
+ "type": "array",
+ "description": "a list of persistent volume claims; see http://releases.k8s.io/HEAD/docs/user-guide/persistent-volumes.md#persistentvolumeclaims",
+ "items": {
+ "$ref": "#/definitions/kubernetes_PersistentVolumeClaim",
+ "javaType": "io.fabric8.kubernetes.api.model.PersistentVolumeClaim"
+ }
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "PersistentVolumeClaimList",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ListMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.PersistentVolumeClaimList",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.KubernetesResource",
+ "io.fabric8.kubernetes.api.model.KubernetesResourceList"
+ ]
+ },
+ "kubernetes_PersistentVolumeClaimSpec": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "accessModes": {
+ "type": "array",
+ "description": "the desired access modes the volume should have; see http://releases.k8s.io/HEAD/docs/user-guide/persistent-volumes.md#access-modes-1",
+ "items": {
+ "type": "string",
+ "description": "the desired access modes the volume should have; see http://releases.k8s.io/HEAD/docs/user-guide/persistent-volumes.md#access-modes-1"
+ }
+ },
+ "resources": {
+ "$ref": "#/definitions/kubernetes_ResourceRequirements",
+ "javaType": "io.fabric8.kubernetes.api.model.ResourceRequirements"
+ },
+ "volumeName": {
+ "type": "string",
+ "description": "the binding reference to the persistent volume backing this claim"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.PersistentVolumeClaimSpec"
+ },
+ "kubernetes_PersistentVolumeClaimStatus": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "accessModes": {
+ "type": "array",
+ "description": "the actual access modes the volume has; see http://releases.k8s.io/HEAD/docs/user-guide/persistent-volumes.md#access-modes-1",
+ "items": {
+ "type": "string",
+ "description": "the actual access modes the volume has; see http://releases.k8s.io/HEAD/docs/user-guide/persistent-volumes.md#access-modes-1"
+ }
+ },
+ "capacity": {
+ "type": "object",
+ "description": "the actual resources the volume has",
+ "additionalProperties": {
+ "$ref": "#/definitions/kubernetes_resource_Quantity",
+ "javaType": "io.fabric8.kubernetes.api.model.Quantity"
+ },
+ "javaType": "java.util.Map\u003cString,io.fabric8.kubernetes.api.model.Quantity\u003e"
+ },
+ "phase": {
+ "type": "string",
+ "description": "the current phase of the claim"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.PersistentVolumeClaimStatus"
+ },
+ "kubernetes_PersistentVolumeClaimVolumeSource": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "claimName": {
+ "type": "string",
+ "description": "the name of the claim in the same namespace to be mounted as a volume; see http://releases.k8s.io/HEAD/docs/user-guide/persistent-volumes.md#persistentvolumeclaims"
+ },
+ "readOnly": {
+ "type": "boolean",
+ "description": "mount volume as read-only when true; default false"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.PersistentVolumeClaimVolumeSource"
+ },
+ "kubernetes_PersistentVolumeList": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "items": {
+ "type": "array",
+ "description": "list of persistent volumes; see http://releases.k8s.io/HEAD/docs/user-guide/persistent-volumes.md",
+ "items": {
+ "$ref": "#/definitions/kubernetes_PersistentVolume",
+ "javaType": "io.fabric8.kubernetes.api.model.PersistentVolume"
+ }
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "PersistentVolumeList",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ListMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.PersistentVolumeList",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.KubernetesResource",
+ "io.fabric8.kubernetes.api.model.KubernetesResourceList"
+ ]
+ },
+ "kubernetes_PersistentVolumeSource": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "awsElasticBlockStore": {
+ "$ref": "#/definitions/kubernetes_AWSElasticBlockStoreVolumeSource",
+ "javaType": "io.fabric8.kubernetes.api.model.AWSElasticBlockStoreVolumeSource"
+ },
+ "cephfs": {
+ "$ref": "#/definitions/kubernetes_CephFSVolumeSource",
+ "javaType": "io.fabric8.kubernetes.api.model.CephFSVolumeSource"
+ },
+ "gcePersistentDisk": {
+ "$ref": "#/definitions/kubernetes_GCEPersistentDiskVolumeSource",
+ "javaType": "io.fabric8.kubernetes.api.model.GCEPersistentDiskVolumeSource"
+ },
+ "glusterfs": {
+ "$ref": "#/definitions/kubernetes_GlusterfsVolumeSource",
+ "javaType": "io.fabric8.kubernetes.api.model.GlusterfsVolumeSource"
+ },
+ "hostPath": {
+ "$ref": "#/definitions/kubernetes_HostPathVolumeSource",
+ "javaType": "io.fabric8.kubernetes.api.model.HostPathVolumeSource"
+ },
+ "iscsi": {
+ "$ref": "#/definitions/kubernetes_ISCSIVolumeSource",
+ "javaType": "io.fabric8.kubernetes.api.model.ISCSIVolumeSource"
+ },
+ "nfs": {
+ "$ref": "#/definitions/kubernetes_NFSVolumeSource",
+ "javaType": "io.fabric8.kubernetes.api.model.NFSVolumeSource"
+ },
+ "rbd": {
+ "$ref": "#/definitions/kubernetes_RBDVolumeSource",
+ "javaType": "io.fabric8.kubernetes.api.model.RBDVolumeSource"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.PersistentVolumeSource"
+ },
+ "kubernetes_PersistentVolumeSpec": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "accessModes": {
+ "type": "array",
+ "description": "all ways the volume can be mounted; see http://releases.k8s.io/HEAD/docs/user-guide/persistent-volumes.md#access-modes",
+ "items": {
+ "type": "string",
+ "description": "all ways the volume can be mounted; see http://releases.k8s.io/HEAD/docs/user-guide/persistent-volumes.md#access-modes"
+ }
+ },
+ "awsElasticBlockStore": {
+ "$ref": "#/definitions/kubernetes_AWSElasticBlockStoreVolumeSource",
+ "javaType": "io.fabric8.kubernetes.api.model.AWSElasticBlockStoreVolumeSource"
+ },
+ "capacity": {
+ "type": "object",
+ "description": "a description of the persistent volume's resources and capacityr; see http://releases.k8s.io/HEAD/docs/user-guide/persistent-volumes.md#capacity",
+ "additionalProperties": {
+ "$ref": "#/definitions/kubernetes_resource_Quantity",
+ "javaType": "io.fabric8.kubernetes.api.model.Quantity"
+ },
+ "javaType": "java.util.Map\u003cString,io.fabric8.kubernetes.api.model.Quantity\u003e"
+ },
+ "cephfs": {
+ "$ref": "#/definitions/kubernetes_CephFSVolumeSource",
+ "javaType": "io.fabric8.kubernetes.api.model.CephFSVolumeSource"
+ },
+ "claimRef": {
+ "$ref": "#/definitions/kubernetes_ObjectReference",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectReference"
+ },
+ "gcePersistentDisk": {
+ "$ref": "#/definitions/kubernetes_GCEPersistentDiskVolumeSource",
+ "javaType": "io.fabric8.kubernetes.api.model.GCEPersistentDiskVolumeSource"
+ },
+ "glusterfs": {
+ "$ref": "#/definitions/kubernetes_GlusterfsVolumeSource",
+ "javaType": "io.fabric8.kubernetes.api.model.GlusterfsVolumeSource"
+ },
+ "hostPath": {
+ "$ref": "#/definitions/kubernetes_HostPathVolumeSource",
+ "javaType": "io.fabric8.kubernetes.api.model.HostPathVolumeSource"
+ },
+ "iscsi": {
+ "$ref": "#/definitions/kubernetes_ISCSIVolumeSource",
+ "javaType": "io.fabric8.kubernetes.api.model.ISCSIVolumeSource"
+ },
+ "nfs": {
+ "$ref": "#/definitions/kubernetes_NFSVolumeSource",
+ "javaType": "io.fabric8.kubernetes.api.model.NFSVolumeSource"
+ },
+ "persistentVolumeReclaimPolicy": {
+ "type": "string",
+ "description": "what happens to a volume when released from its claim; Valid options are Retain (default) and Recycle. Recyling must be supported by the volume plugin underlying this persistent volume. See http://releases.k8s.io/HEAD/docs/user-guide/persistent-volumes.md#recycling-policy"
+ },
+ "rbd": {
+ "$ref": "#/definitions/kubernetes_RBDVolumeSource",
+ "javaType": "io.fabric8.kubernetes.api.model.RBDVolumeSource"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.PersistentVolumeSpec"
+ },
+ "kubernetes_PersistentVolumeStatus": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "message": {
+ "type": "string",
+ "description": "human-readable message indicating details about why the volume is in this state"
+ },
+ "phase": {
+ "type": "string",
+ "description": "the current phase of a persistent volume; see http://releases.k8s.io/HEAD/docs/user-guide/persistent-volumes.md#phase"
+ },
+ "reason": {
+ "type": "string",
+ "description": "(brief) reason the volume is not is not available"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.PersistentVolumeStatus"
+ },
+ "kubernetes_Pod": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "Pod",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ObjectMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
+ },
+ "spec": {
+ "$ref": "#/definitions/kubernetes_PodSpec",
+ "javaType": "io.fabric8.kubernetes.api.model.PodSpec"
+ },
+ "status": {
+ "$ref": "#/definitions/kubernetes_PodStatus",
+ "javaType": "io.fabric8.kubernetes.api.model.PodStatus"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.Pod",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.HasMetadata"
+ ]
+ },
+ "kubernetes_PodCondition": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "status": {
+ "type": "string",
+ "description": "status of the condition"
+ },
+ "type": {
+ "type": "string",
+ "description": "kind of the condition"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.PodCondition"
+ },
+ "kubernetes_PodList": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "items": {
+ "type": "array",
+ "description": "list of pods; see http://releases.k8s.io/HEAD/docs/user-guide/pods.md",
+ "items": {
+ "$ref": "#/definitions/kubernetes_Pod",
+ "javaType": "io.fabric8.kubernetes.api.model.Pod"
+ }
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "PodList",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ListMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.PodList",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.KubernetesResource",
+ "io.fabric8.kubernetes.api.model.KubernetesResourceList"
+ ]
+ },
+ "kubernetes_PodSpec": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "activeDeadlineSeconds": {
+ "type": "integer",
+ "description": "",
+ "javaType": "Long"
+ },
+ "containers": {
+ "type": "array",
+ "description": "list of containers belonging to the pod; cannot be updated; containers cannot currently be added or removed; there must be at least one container in a Pod; see http://releases.k8s.io/HEAD/docs/user-guide/containers.md",
+ "items": {
+ "$ref": "#/definitions/kubernetes_Container",
+ "javaType": "io.fabric8.kubernetes.api.model.Container"
+ }
+ },
+ "dnsPolicy": {
+ "type": "string",
+ "description": "DNS policy for containers within the pod; one of 'ClusterFirst' or 'Default'"
+ },
+ "host": {
+ "type": "string",
+ "description": "deprecated"
+ },
+ "hostNetwork": {
+ "type": "boolean",
+ "description": "host networking requested for this pod"
+ },
+ "imagePullSecrets": {
+ "type": "array",
+ "description": "list of references to secrets in the same namespace available for pulling the container images; see http://releases.k8s.io/HEAD/docs/user-guide/images.md#specifying-imagepullsecrets-on-a-pod",
+ "items": {
+ "$ref": "#/definitions/kubernetes_LocalObjectReference",
+ "javaType": "io.fabric8.kubernetes.api.model.LocalObjectReference"
+ }
+ },
+ "nodeName": {
+ "type": "string",
+ "description": "node requested for this pod"
+ },
+ "nodeSelector": {
+ "type": "object",
+ "description": "selector which must match a node's labels for the pod to be scheduled on that node; see http://releases.k8s.io/HEAD/docs/user-guide/node-selection/README.md",
+ "additionalProperties": {
+ "type": "string",
+ "description": "selector which must match a node's labels for the pod to be scheduled on that node; see http://releases.k8s.io/HEAD/docs/user-guide/node-selection/README.md"
+ },
+ "javaType": "java.util.Map\u003cString,String\u003e"
+ },
+ "restartPolicy": {
+ "type": "string",
+ "description": "restart policy for all containers within the pod; one of Always"
+ },
+ "serviceAccount": {
+ "type": "string",
+ "description": "deprecated; use serviceAccountName instead"
+ },
+ "serviceAccountName": {
+ "type": "string",
+ "description": "name of the ServiceAccount to use to run this pod; see http://releases.k8s.io/HEAD/docs/design/service_accounts.md"
+ },
+ "terminationGracePeriodSeconds": {
+ "type": "integer",
+ "description": "optional duration in seconds the pod needs to terminate gracefully; may be decreased in delete request; value must be non-negative integer; the value zero indicates delete immediately; if this value is not set",
+ "javaType": "Long"
+ },
+ "volumes": {
+ "type": "array",
+ "description": "list of volumes that can be mounted by containers belonging to the pod; see http://releases.k8s.io/HEAD/docs/user-guide/volumes.md",
+ "items": {
+ "$ref": "#/definitions/kubernetes_Volume",
+ "javaType": "io.fabric8.kubernetes.api.model.Volume"
+ }
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.PodSpec"
+ },
+ "kubernetes_PodStatus": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "conditions": {
+ "type": "array",
+ "description": "current service state of pod; see http://releases.k8s.io/HEAD/docs/user-guide/pod-states.md#pod-conditions",
+ "items": {
+ "$ref": "#/definitions/kubernetes_PodCondition",
+ "javaType": "io.fabric8.kubernetes.api.model.PodCondition"
+ }
+ },
+ "containerStatuses": {
+ "type": "array",
+ "description": "list of container statuses; see http://releases.k8s.io/HEAD/docs/user-guide/pod-states.md#container-statuses",
+ "items": {
+ "$ref": "#/definitions/kubernetes_ContainerStatus",
+ "javaType": "io.fabric8.kubernetes.api.model.ContainerStatus"
+ }
+ },
+ "hostIP": {
+ "type": "string",
+ "description": "IP address of the host to which the pod is assigned; empty if not yet scheduled"
+ },
+ "message": {
+ "type": "string",
+ "description": "human readable message indicating details about why the pod is in this condition"
+ },
+ "phase": {
+ "type": "string",
+ "description": "current condition of the pod; see http://releases.k8s.io/HEAD/docs/user-guide/pod-states.md#pod-phase"
+ },
+ "podIP": {
+ "type": "string",
+ "description": "IP address allocated to the pod; routable at least within the cluster; empty if not yet allocated"
+ },
+ "reason": {
+ "type": "string",
+ "description": "(brief-CamelCase) reason indicating details about why the pod is in this condition"
+ },
+ "startTime": {
+ "type": "string",
+ "description": "RFC 3339 date and time at which the object was acknowledged by the Kubelet. This is before the Kubelet pulled the container image(s) for the pod."
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.PodStatus"
+ },
+ "kubernetes_PodTemplateSpec": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ObjectMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
+ },
+ "spec": {
+ "$ref": "#/definitions/kubernetes_PodSpec",
+ "javaType": "io.fabric8.kubernetes.api.model.PodSpec"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.PodTemplateSpec"
+ },
+ "kubernetes_Probe": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "exec": {
+ "$ref": "#/definitions/kubernetes_ExecAction",
+ "javaType": "io.fabric8.kubernetes.api.model.ExecAction"
+ },
+ "httpGet": {
+ "$ref": "#/definitions/kubernetes_HTTPGetAction",
+ "javaType": "io.fabric8.kubernetes.api.model.HTTPGetAction"
+ },
+ "initialDelaySeconds": {
+ "type": "integer",
+ "description": "number of seconds after the container has started before liveness probes are initiated; see http://releases.k8s.io/HEAD/docs/user-guide/pod-states.md#container-probes",
+ "javaType": "Long"
+ },
+ "tcpSocket": {
+ "$ref": "#/definitions/kubernetes_TCPSocketAction",
+ "javaType": "io.fabric8.kubernetes.api.model.TCPSocketAction"
+ },
+ "timeoutSeconds": {
+ "type": "integer",
+ "description": "number of seconds after which liveness probes timeout; defaults to 1 second; see http://releases.k8s.io/HEAD/docs/user-guide/pod-states.md#container-probes",
+ "javaType": "Long"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.Probe"
+ },
+ "kubernetes_RBDVolumeSource": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "fsType": {
+ "type": "string",
+ "description": "file system type to mount"
+ },
+ "image": {
+ "type": "string",
+ "description": "rados image name; see http://releases.k8s.io/HEAD/examples/rbd/README.md#how-to-use-it"
+ },
+ "keyring": {
+ "type": "string",
+ "description": "keyring is the path to key ring for rados user; default is /etc/ceph/keyring; optional; see http://releases.k8s.io/HEAD/examples/rbd/README.md#how-to-use-it"
+ },
+ "monitors": {
+ "type": "array",
+ "description": "a collection of Ceph monitors; see http://releases.k8s.io/HEAD/examples/rbd/README.md#how-to-use-it",
+ "items": {
+ "type": "string",
+ "description": "a collection of Ceph monitors; see http://releases.k8s.io/HEAD/examples/rbd/README.md#how-to-use-it"
+ }
+ },
+ "pool": {
+ "type": "string",
+ "description": "rados pool name; default is rbd; optional; see http://releases.k8s.io/HEAD/examples/rbd/README.md#how-to-use-it"
+ },
+ "readOnly": {
+ "type": "boolean",
+ "description": "rbd volume to be mounted with read-only permissions; see http://releases.k8s.io/HEAD/examples/rbd/README.md#how-to-use-it"
+ },
+ "secretRef": {
+ "$ref": "#/definitions/kubernetes_LocalObjectReference",
+ "javaType": "io.fabric8.kubernetes.api.model.LocalObjectReference"
+ },
+ "user": {
+ "type": "string",
+ "description": "rados user name; default is admin; optional; see http://releases.k8s.io/HEAD/examples/rbd/README.md#how-to-use-it"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.RBDVolumeSource"
+ },
+ "kubernetes_ReplicationController": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "ReplicationController",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ObjectMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
+ },
+ "spec": {
+ "$ref": "#/definitions/kubernetes_ReplicationControllerSpec",
+ "javaType": "io.fabric8.kubernetes.api.model.ReplicationControllerSpec"
+ },
+ "status": {
+ "$ref": "#/definitions/kubernetes_ReplicationControllerStatus",
+ "javaType": "io.fabric8.kubernetes.api.model.ReplicationControllerStatus"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.ReplicationController",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.HasMetadata"
+ ]
+ },
+ "kubernetes_ReplicationControllerList": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "items": {
+ "type": "array",
+ "description": "list of replication controllers; see http://releases.k8s.io/HEAD/docs/user-guide/replication-controller.md",
+ "items": {
+ "$ref": "#/definitions/kubernetes_ReplicationController",
+ "javaType": "io.fabric8.kubernetes.api.model.ReplicationController"
+ }
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "ReplicationControllerList",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ListMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.ReplicationControllerList",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.KubernetesResource",
+ "io.fabric8.kubernetes.api.model.KubernetesResourceList"
+ ]
+ },
+ "kubernetes_ReplicationControllerSpec": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "replicas": {
+ "type": "integer",
+ "description": "number of replicas desired; defaults to 1; see http://releases.k8s.io/HEAD/docs/user-guide/replication-controller.md#what-is-a-replication-controller"
+ },
+ "selector": {
+ "type": "object",
+ "description": "label keys and values that must match in order to be controlled by this replication controller",
+ "additionalProperties": {
+ "type": "string",
+ "description": "label keys and values that must match in order to be controlled by this replication controller"
+ },
+ "javaType": "java.util.Map\u003cString,String\u003e"
+ },
+ "template": {
+ "$ref": "#/definitions/kubernetes_PodTemplateSpec",
+ "javaType": "io.fabric8.kubernetes.api.model.PodTemplateSpec"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.ReplicationControllerSpec"
+ },
+ "kubernetes_ReplicationControllerStatus": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "observedGeneration": {
+ "type": "integer",
+ "description": "reflects the generation of the most recently observed replication controller",
+ "javaType": "Long"
+ },
+ "replicas": {
+ "type": "integer",
+ "description": "most recently oberved number of replicas; see http://releases.k8s.io/HEAD/docs/user-guide/replication-controller.md#what-is-a-replication-controller"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.ReplicationControllerStatus"
+ },
+ "kubernetes_ResourceQuota": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "ResourceQuota",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ObjectMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
+ },
+ "spec": {
+ "$ref": "#/definitions/kubernetes_ResourceQuotaSpec",
+ "javaType": "io.fabric8.kubernetes.api.model.ResourceQuotaSpec"
+ },
+ "status": {
+ "$ref": "#/definitions/kubernetes_ResourceQuotaStatus",
+ "javaType": "io.fabric8.kubernetes.api.model.ResourceQuotaStatus"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.ResourceQuota",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.HasMetadata"
+ ]
+ },
+ "kubernetes_ResourceQuotaList": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "items": {
+ "type": "array",
+ "description": "items is a list of ResourceQuota objects; see http://releases.k8s.io/HEAD/docs/design/admission_control_resource_quota.md#admissioncontrol-plugin-resourcequota",
+ "items": {
+ "$ref": "#/definitions/kubernetes_ResourceQuota",
+ "javaType": "io.fabric8.kubernetes.api.model.ResourceQuota"
+ }
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "ResourceQuotaList",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ListMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.ResourceQuotaList",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.KubernetesResource",
+ "io.fabric8.kubernetes.api.model.KubernetesResourceList"
+ ]
+ },
+ "kubernetes_ResourceQuotaSpec": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "hard": {
+ "type": "object",
+ "description": "hard is the set of desired hard limits for each named resource; see http://releases.k8s.io/HEAD/docs/design/admission_control_resource_quota.md#admissioncontrol-plugin-resourcequota",
+ "additionalProperties": {
+ "$ref": "#/definitions/kubernetes_resource_Quantity",
+ "javaType": "io.fabric8.kubernetes.api.model.Quantity"
+ },
+ "javaType": "java.util.Map\u003cString,io.fabric8.kubernetes.api.model.Quantity\u003e"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.ResourceQuotaSpec"
+ },
+ "kubernetes_ResourceQuotaStatus": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "hard": {
+ "type": "object",
+ "description": "hard is the set of enforced hard limits for each named resource; see http://releases.k8s.io/HEAD/docs/design/admission_control_resource_quota.md#admissioncontrol-plugin-resourcequota",
+ "additionalProperties": {
+ "$ref": "#/definitions/kubernetes_resource_Quantity",
+ "javaType": "io.fabric8.kubernetes.api.model.Quantity"
+ },
+ "javaType": "java.util.Map\u003cString,io.fabric8.kubernetes.api.model.Quantity\u003e"
+ },
+ "used": {
+ "type": "object",
+ "description": "used is the current observed total usage of the resource in the namespace",
+ "additionalProperties": {
+ "$ref": "#/definitions/kubernetes_resource_Quantity",
+ "javaType": "io.fabric8.kubernetes.api.model.Quantity"
+ },
+ "javaType": "java.util.Map\u003cString,io.fabric8.kubernetes.api.model.Quantity\u003e"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.ResourceQuotaStatus"
+ },
+ "kubernetes_ResourceRequirements": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "limits": {
+ "type": "object",
+ "description": "Maximum amount of compute resources allowed; see http://releases.k8s.io/HEAD/docs/design/resources.md#resource-specifications",
+ "additionalProperties": {
+ "$ref": "#/definitions/kubernetes_resource_Quantity",
+ "javaType": "io.fabric8.kubernetes.api.model.Quantity"
+ },
+ "javaType": "java.util.Map\u003cString,io.fabric8.kubernetes.api.model.Quantity\u003e"
+ },
+ "requests": {
+ "type": "object",
+ "description": "Minimum amount of resources requested; if Requests is omitted for a container",
+ "additionalProperties": {
+ "$ref": "#/definitions/kubernetes_resource_Quantity",
+ "javaType": "io.fabric8.kubernetes.api.model.Quantity"
+ },
+ "javaType": "java.util.Map\u003cString,io.fabric8.kubernetes.api.model.Quantity\u003e"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.ResourceRequirements"
+ },
+ "kubernetes_RunAsUserStrategyOptions": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "type": {
+ "type": "string",
+ "description": "strategy used to generate RunAsUser"
+ },
+ "uid": {
+ "type": "integer",
+ "description": "the uid to always run as; required for MustRunAs",
+ "javaType": "Long"
+ },
+ "uidRangeMax": {
+ "type": "integer",
+ "description": "max value for range based allocators",
+ "javaType": "Long"
+ },
+ "uidRangeMin": {
+ "type": "integer",
+ "description": "min value for range based allocators",
+ "javaType": "Long"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.RunAsUserStrategyOptions"
+ },
+ "kubernetes_SELinuxContextStrategyOptions": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "seLinuxOptions": {
+ "$ref": "#/definitions/kubernetes_SELinuxOptions",
+ "javaType": "io.fabric8.kubernetes.api.model.SELinuxOptions"
+ },
+ "type": {
+ "type": "string",
+ "description": "strategy used to generate the SELinux context"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.SELinuxContextStrategyOptions"
+ },
+ "kubernetes_SELinuxOptions": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "level": {
+ "type": "string",
+ "description": "the level label to apply to the container; see http://releases.k8s.io/HEAD/docs/user-guide/labels.md"
+ },
+ "role": {
+ "type": "string",
+ "description": "the role label to apply to the container; see http://releases.k8s.io/HEAD/docs/user-guide/labels.md"
+ },
+ "type": {
+ "type": "string",
+ "description": "the type label to apply to the container; see http://releases.k8s.io/HEAD/docs/user-guide/labels.md"
+ },
+ "user": {
+ "type": "string",
+ "description": "the user label to apply to the container; see http://releases.k8s.io/HEAD/docs/user-guide/labels.md"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.SELinuxOptions"
+ },
+ "kubernetes_Secret": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "data": {
+ "type": "object",
+ "description": "data contains the secret data. Each key must be a valid DNS_SUBDOMAIN or leading dot followed by valid DNS_SUBDOMAIN. Each value must be a base64 encoded string as described in https://tools.ietf.org/html/rfc4648#section-4",
+ "additionalProperties": {
+ "type": "string",
+ "description": "data contains the secret data. Each key must be a valid DNS_SUBDOMAIN or leading dot followed by valid DNS_SUBDOMAIN. Each value must be a base64 encoded string as described in https://tools.ietf.org/html/rfc4648#section-4"
+ },
+ "javaType": "java.util.Map\u003cString,String\u003e"
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "Secret",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ObjectMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
+ },
+ "type": {
+ "type": "string",
+ "description": "type facilitates programmatic handling of secret data"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.Secret",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.HasMetadata"
+ ]
+ },
+ "kubernetes_SecretList": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "items": {
+ "type": "array",
+ "description": "items is a list of secret objects; see http://releases.k8s.io/HEAD/docs/user-guide/secrets.md",
+ "items": {
+ "$ref": "#/definitions/kubernetes_Secret",
+ "javaType": "io.fabric8.kubernetes.api.model.Secret"
+ }
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "SecretList",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ListMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.SecretList",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.KubernetesResource",
+ "io.fabric8.kubernetes.api.model.KubernetesResourceList"
+ ]
+ },
+ "kubernetes_SecretVolumeSource": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "secretName": {
+ "type": "string",
+ "description": "secretName is the name of a secret in the pod's namespace; see http://releases.k8s.io/HEAD/docs/user-guide/volumes.md#secrets"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.SecretVolumeSource"
+ },
+ "kubernetes_SecurityContext": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "capabilities": {
+ "$ref": "#/definitions/kubernetes_Capabilities",
+ "javaType": "io.fabric8.kubernetes.api.model.Capabilities"
+ },
+ "privileged": {
+ "type": "boolean",
+ "description": "run the container in privileged mode; see http://releases.k8s.io/HEAD/docs/design/security_context.md#security-context"
+ },
+ "runAsNonRoot": {
+ "type": "boolean",
+ "description": "indicates the container must be run as a non-root user either by specifying the runAsUser or in the image specification"
+ },
+ "runAsUser": {
+ "type": "integer",
+ "description": "the user id that runs the first process in the container; see http://releases.k8s.io/HEAD/docs/design/security_context.md#security-context",
+ "javaType": "Long"
+ },
+ "seLinuxOptions": {
+ "$ref": "#/definitions/kubernetes_SELinuxOptions",
+ "javaType": "io.fabric8.kubernetes.api.model.SELinuxOptions"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.SecurityContext"
+ },
+ "kubernetes_SecurityContextConstraints": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "allowHostDirVolumePlugin": {
+ "type": "boolean",
+ "description": "allow the use of the host dir volume plugin"
+ },
+ "allowHostNetwork": {
+ "type": "boolean",
+ "description": "allow the use of the hostNetwork in the pod spec"
+ },
+ "allowHostPorts": {
+ "type": "boolean",
+ "description": "allow the use of the host ports in the containers"
+ },
+ "allowPrivilegedContainer": {
+ "type": "boolean",
+ "description": "allow containers to run as privileged"
+ },
+ "allowedCapabilities": {
+ "type": "array",
+ "description": "capabilities that are allowed to be added",
+ "items": {
+ "type": "string",
+ "description": "capabilities that are allowed to be added"
+ }
+ },
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "groups": {
+ "type": "array",
+ "description": "groups allowed to use this SecurityContextConstraints",
+ "items": {
+ "type": "string",
+ "description": "groups allowed to use this SecurityContextConstraints"
+ }
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "SecurityContextConstraints",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ObjectMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
+ },
+ "runAsUser": {
+ "$ref": "#/definitions/kubernetes_RunAsUserStrategyOptions",
+ "javaType": "io.fabric8.kubernetes.api.model.RunAsUserStrategyOptions"
+ },
+ "seLinuxContext": {
+ "$ref": "#/definitions/kubernetes_SELinuxContextStrategyOptions",
+ "javaType": "io.fabric8.kubernetes.api.model.SELinuxContextStrategyOptions"
+ },
+ "users": {
+ "type": "array",
+ "description": "users allowed to use this SecurityContextConstraints",
+ "items": {
+ "type": "string",
+ "description": "users allowed to use this SecurityContextConstraints"
+ }
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.SecurityContextConstraints",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.HasMetadata"
+ ]
+ },
+ "kubernetes_SecurityContextConstraintsList": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "items": {
+ "type": "array",
+ "description": "",
+ "items": {
+ "$ref": "#/definitions/kubernetes_SecurityContextConstraints",
+ "javaType": "io.fabric8.kubernetes.api.model.SecurityContextConstraints"
+ }
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "SecurityContextConstraintsList",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ListMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.SecurityContextConstraintsList",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.KubernetesResource",
+ "io.fabric8.kubernetes.api.model.KubernetesResourceList"
+ ]
+ },
+ "kubernetes_Service": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "Service",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ObjectMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
+ },
+ "spec": {
+ "$ref": "#/definitions/kubernetes_ServiceSpec",
+ "javaType": "io.fabric8.kubernetes.api.model.ServiceSpec"
+ },
+ "status": {
+ "$ref": "#/definitions/kubernetes_ServiceStatus",
+ "javaType": "io.fabric8.kubernetes.api.model.ServiceStatus"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.Service",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.HasMetadata"
+ ]
+ },
+ "kubernetes_ServiceAccount": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "imagePullSecrets": {
+ "type": "array",
+ "description": "list of references to secrets in the same namespace available for pulling container images; see http://releases.k8s.io/HEAD/docs/user-guide/secrets.md#manually-specifying-an-imagepullsecret",
+ "items": {
+ "$ref": "#/definitions/kubernetes_LocalObjectReference",
+ "javaType": "io.fabric8.kubernetes.api.model.LocalObjectReference"
+ }
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "ServiceAccount",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ObjectMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
+ },
+ "secrets": {
+ "type": "array",
+ "description": "list of secrets that can be used by pods running as this service account; see http://releases.k8s.io/HEAD/docs/user-guide/secrets.md",
+ "items": {
+ "$ref": "#/definitions/kubernetes_ObjectReference",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectReference"
+ }
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.ServiceAccount",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.HasMetadata"
+ ]
+ },
+ "kubernetes_ServiceAccountList": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "items": {
+ "type": "array",
+ "description": "list of ServiceAccounts; see http://releases.k8s.io/HEAD/docs/design/service_accounts.md#service-accounts",
+ "items": {
+ "$ref": "#/definitions/kubernetes_ServiceAccount",
+ "javaType": "io.fabric8.kubernetes.api.model.ServiceAccount"
+ }
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "ServiceAccountList",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ListMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.ServiceAccountList",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.KubernetesResource",
+ "io.fabric8.kubernetes.api.model.KubernetesResourceList"
+ ]
+ },
+ "kubernetes_ServiceList": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "items": {
+ "type": "array",
+ "description": "list of services",
+ "items": {
+ "$ref": "#/definitions/kubernetes_Service",
+ "javaType": "io.fabric8.kubernetes.api.model.Service"
+ }
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "ServiceList",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ListMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.ServiceList",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.KubernetesResource",
+ "io.fabric8.kubernetes.api.model.KubernetesResourceList"
+ ]
+ },
+ "kubernetes_ServicePort": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "the name of this port; optional if only one port is defined",
+ "maxLength": 63,
+ "pattern": "^[a-z0-9]([-a-z0-9]*[a-z0-9])?$"
+ },
+ "nodePort": {
+ "type": "integer",
+ "description": "the port on each node on which this service is exposed when type=NodePort or LoadBalancer; usually assigned by the system; if specified"
+ },
+ "port": {
+ "type": "integer",
+ "description": "the port number that is exposed"
+ },
+ "protocol": {
+ "type": "string",
+ "description": "the protocol used by this port; must be UDP or TCP; TCP if unspecified"
+ },
+ "targetPort": {
+ "$ref": "#/definitions/kubernetes_util_IntOrString",
+ "javaType": "io.fabric8.kubernetes.api.model.IntOrString"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.ServicePort"
+ },
+ "kubernetes_ServiceSpec": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "clusterIP": {
+ "type": "string",
+ "description": "IP address of the service; usually assigned by the system; if specified"
+ },
+ "deprecatedPublicIPs": {
+ "type": "array",
+ "description": "deprecated. externally visible IPs (e.g. load balancers) that should be proxied to this service",
+ "items": {
+ "type": "string",
+ "description": "deprecated. externally visible IPs (e.g. load balancers) that should be proxied to this service"
+ }
+ },
+ "portalIP": {
+ "type": "string",
+ "description": "deprecated"
+ },
+ "ports": {
+ "type": "array",
+ "description": "ports exposed by the service; see http://releases.k8s.io/HEAD/docs/user-guide/services.md#virtual-ips-and-service-proxies",
+ "items": {
+ "$ref": "#/definitions/kubernetes_ServicePort",
+ "javaType": "io.fabric8.kubernetes.api.model.ServicePort"
+ }
+ },
+ "selector": {
+ "type": "object",
+ "description": "label keys and values that must match in order to receive traffic for this service; if empty",
+ "additionalProperties": {
+ "type": "string",
+ "description": "label keys and values that must match in order to receive traffic for this service; if empty"
+ },
+ "javaType": "java.util.Map\u003cString,String\u003e"
+ },
+ "sessionAffinity": {
+ "type": "string",
+ "description": "enable client IP based session affinity; must be ClientIP or None; defaults to None; see http://releases.k8s.io/HEAD/docs/user-guide/services.md#virtual-ips-and-service-proxies"
+ },
+ "type": {
+ "type": "string",
+ "description": "type of this service; must be ClusterIP"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.ServiceSpec"
+ },
+ "kubernetes_ServiceStatus": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "loadBalancer": {
+ "$ref": "#/definitions/kubernetes_LoadBalancerStatus",
+ "javaType": "io.fabric8.kubernetes.api.model.LoadBalancerStatus"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.ServiceStatus"
+ },
+ "kubernetes_Status": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "code": {
+ "type": "integer",
+ "description": "suggested HTTP return code for this status; 0 if not set"
+ },
+ "details": {
+ "$ref": "#/definitions/kubernetes_StatusDetails",
+ "javaType": "io.fabric8.kubernetes.api.model.StatusDetails"
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "Status",
+ "required": true
+ },
+ "message": {
+ "type": "string",
+ "description": "human-readable description of the status of this operation"
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ListMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
+ },
+ "reason": {
+ "type": "string",
+ "description": "machine-readable description of why this operation is in the 'Failure' status; if this value is empty there is no information available; a reason clarifies an HTTP status code but does not override it"
+ },
+ "status": {
+ "type": "string",
+ "description": "status of the operation; either Success"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.Status"
+ },
+ "kubernetes_StatusCause": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "field": {
+ "type": "string",
+ "description": "field of the resource that has caused this error"
+ },
+ "message": {
+ "type": "string",
+ "description": "human-readable description of the cause of the error; this field may be presented as-is to a reader"
+ },
+ "reason": {
+ "type": "string",
+ "description": "machine-readable description of the cause of the error; if this value is empty there is no information available"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.StatusCause"
+ },
+ "kubernetes_StatusDetails": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "causes": {
+ "type": "array",
+ "description": "the Causes array includes more details associated with the StatusReason failure; not all StatusReasons may provide detailed causes",
+ "items": {
+ "$ref": "#/definitions/kubernetes_StatusCause",
+ "javaType": "io.fabric8.kubernetes.api.model.StatusCause"
+ }
+ },
+ "kind": {
+ "type": "string",
+ "description": "the kind attribute of the resource associated with the status StatusReason; on some operations may differ from the requested resource Kind; see http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds"
+ },
+ "name": {
+ "type": "string",
+ "description": "the name attribute of the resource associated with the status StatusReason (when there is a single name which can be described)"
+ },
+ "retryAfterSeconds": {
+ "type": "integer",
+ "description": "the number of seconds before the client should attempt to retry this operation"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.StatusDetails"
+ },
+ "kubernetes_TCPSocketAction": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "port": {
+ "$ref": "#/definitions/kubernetes_util_IntOrString",
+ "javaType": "io.fabric8.kubernetes.api.model.IntOrString"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.TCPSocketAction"
+ },
+ "kubernetes_TypeMeta": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "version of the schema the object should have; see http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources"
+ },
+ "kind": {
+ "type": "string",
+ "description": "kind of object"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.TypeMeta"
+ },
+ "kubernetes_Volume": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "awsElasticBlockStore": {
+ "$ref": "#/definitions/kubernetes_AWSElasticBlockStoreVolumeSource",
+ "javaType": "io.fabric8.kubernetes.api.model.AWSElasticBlockStoreVolumeSource"
+ },
+ "cephfs": {
+ "$ref": "#/definitions/kubernetes_CephFSVolumeSource",
+ "javaType": "io.fabric8.kubernetes.api.model.CephFSVolumeSource"
+ },
+ "emptyDir": {
+ "$ref": "#/definitions/kubernetes_EmptyDirVolumeSource",
+ "javaType": "io.fabric8.kubernetes.api.model.EmptyDirVolumeSource"
+ },
+ "gcePersistentDisk": {
+ "$ref": "#/definitions/kubernetes_GCEPersistentDiskVolumeSource",
+ "javaType": "io.fabric8.kubernetes.api.model.GCEPersistentDiskVolumeSource"
+ },
+ "gitRepo": {
+ "$ref": "#/definitions/kubernetes_GitRepoVolumeSource",
+ "javaType": "io.fabric8.kubernetes.api.model.GitRepoVolumeSource"
+ },
+ "glusterfs": {
+ "$ref": "#/definitions/kubernetes_GlusterfsVolumeSource",
+ "javaType": "io.fabric8.kubernetes.api.model.GlusterfsVolumeSource"
+ },
+ "hostPath": {
+ "$ref": "#/definitions/kubernetes_HostPathVolumeSource",
+ "javaType": "io.fabric8.kubernetes.api.model.HostPathVolumeSource"
+ },
+ "iscsi": {
+ "$ref": "#/definitions/kubernetes_ISCSIVolumeSource",
+ "javaType": "io.fabric8.kubernetes.api.model.ISCSIVolumeSource"
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_MetadataVolumeSource",
+ "javaType": "io.fabric8.kubernetes.api.model.MetadataVolumeSource"
+ },
+ "name": {
+ "type": "string",
+ "description": "volume name; must be a DNS_LABEL and unique within the pod; see http://releases.k8s.io/HEAD/docs/user-guide/identifiers.md#names",
+ "maxLength": 63,
+ "pattern": "^[a-z0-9]([-a-z0-9]*[a-z0-9])?$"
+ },
+ "nfs": {
+ "$ref": "#/definitions/kubernetes_NFSVolumeSource",
+ "javaType": "io.fabric8.kubernetes.api.model.NFSVolumeSource"
+ },
+ "persistentVolumeClaim": {
+ "$ref": "#/definitions/kubernetes_PersistentVolumeClaimVolumeSource",
+ "javaType": "io.fabric8.kubernetes.api.model.PersistentVolumeClaimVolumeSource"
+ },
+ "rbd": {
+ "$ref": "#/definitions/kubernetes_RBDVolumeSource",
+ "javaType": "io.fabric8.kubernetes.api.model.RBDVolumeSource"
+ },
+ "secret": {
+ "$ref": "#/definitions/kubernetes_SecretVolumeSource",
+ "javaType": "io.fabric8.kubernetes.api.model.SecretVolumeSource"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.Volume"
+ },
+ "kubernetes_VolumeMount": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "mountPath": {
+ "type": "string",
+ "description": "path within the container at which the volume should be mounted"
+ },
+ "name": {
+ "type": "string",
+ "description": "name of the volume to mount"
+ },
+ "readOnly": {
+ "type": "boolean",
+ "description": "mounted read-only if true"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.VolumeMount"
+ },
+ "kubernetes_VolumeSource": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "awsElasticBlockStore": {
+ "$ref": "#/definitions/kubernetes_AWSElasticBlockStoreVolumeSource",
+ "javaType": "io.fabric8.kubernetes.api.model.AWSElasticBlockStoreVolumeSource"
+ },
+ "cephfs": {
+ "$ref": "#/definitions/kubernetes_CephFSVolumeSource",
+ "javaType": "io.fabric8.kubernetes.api.model.CephFSVolumeSource"
+ },
+ "emptyDir": {
+ "$ref": "#/definitions/kubernetes_EmptyDirVolumeSource",
+ "javaType": "io.fabric8.kubernetes.api.model.EmptyDirVolumeSource"
+ },
+ "gcePersistentDisk": {
+ "$ref": "#/definitions/kubernetes_GCEPersistentDiskVolumeSource",
+ "javaType": "io.fabric8.kubernetes.api.model.GCEPersistentDiskVolumeSource"
+ },
+ "gitRepo": {
+ "$ref": "#/definitions/kubernetes_GitRepoVolumeSource",
+ "javaType": "io.fabric8.kubernetes.api.model.GitRepoVolumeSource"
+ },
+ "glusterfs": {
+ "$ref": "#/definitions/kubernetes_GlusterfsVolumeSource",
+ "javaType": "io.fabric8.kubernetes.api.model.GlusterfsVolumeSource"
+ },
+ "hostPath": {
+ "$ref": "#/definitions/kubernetes_HostPathVolumeSource",
+ "javaType": "io.fabric8.kubernetes.api.model.HostPathVolumeSource"
+ },
+ "iscsi": {
+ "$ref": "#/definitions/kubernetes_ISCSIVolumeSource",
+ "javaType": "io.fabric8.kubernetes.api.model.ISCSIVolumeSource"
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_MetadataVolumeSource",
+ "javaType": "io.fabric8.kubernetes.api.model.MetadataVolumeSource"
+ },
+ "nfs": {
+ "$ref": "#/definitions/kubernetes_NFSVolumeSource",
+ "javaType": "io.fabric8.kubernetes.api.model.NFSVolumeSource"
+ },
+ "persistentVolumeClaim": {
+ "$ref": "#/definitions/kubernetes_PersistentVolumeClaimVolumeSource",
+ "javaType": "io.fabric8.kubernetes.api.model.PersistentVolumeClaimVolumeSource"
+ },
+ "rbd": {
+ "$ref": "#/definitions/kubernetes_RBDVolumeSource",
+ "javaType": "io.fabric8.kubernetes.api.model.RBDVolumeSource"
+ },
+ "secret": {
+ "$ref": "#/definitions/kubernetes_SecretVolumeSource",
+ "javaType": "io.fabric8.kubernetes.api.model.SecretVolumeSource"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.VolumeSource"
+ },
+ "kubernetes_config_AuthInfo": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "client-certificate": {
+ "type": "string",
+ "description": ""
+ },
+ "client-certificate-data": {
+ "type": "string",
+ "description": ""
+ },
+ "client-key": {
+ "type": "string",
+ "description": ""
+ },
+ "client-key-data": {
+ "type": "string",
+ "description": ""
+ },
+ "extensions": {
+ "type": "array",
+ "description": "",
+ "items": {
+ "$ref": "#/definitions/kubernetes_config_NamedExtension",
+ "javaType": "io.fabric8.kubernetes.api.model.NamedExtension"
+ }
+ },
+ "password": {
+ "type": "string",
+ "description": ""
+ },
+ "token": {
+ "type": "string",
+ "description": ""
+ },
+ "username": {
+ "type": "string",
+ "description": ""
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.AuthInfo"
+ },
+ "kubernetes_config_Cluster": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "api-version": {
+ "type": "string",
+ "description": ""
+ },
+ "certificate-authority": {
+ "type": "string",
+ "description": ""
+ },
+ "certificate-authority-data": {
+ "type": "string",
+ "description": ""
+ },
+ "extensions": {
+ "type": "array",
+ "description": "",
+ "items": {
+ "$ref": "#/definitions/kubernetes_config_NamedExtension",
+ "javaType": "io.fabric8.kubernetes.api.model.NamedExtension"
+ }
+ },
+ "insecure-skip-tls-verify": {
+ "type": "boolean",
+ "description": ""
+ },
+ "server": {
+ "type": "string",
+ "description": ""
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.Cluster"
+ },
+ "kubernetes_config_Config": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": ""
+ },
+ "clusters": {
+ "type": "array",
+ "description": "",
+ "items": {
+ "$ref": "#/definitions/kubernetes_config_NamedCluster",
+ "javaType": "io.fabric8.kubernetes.api.model.NamedCluster"
+ }
+ },
+ "contexts": {
+ "type": "array",
+ "description": "",
+ "items": {
+ "$ref": "#/definitions/kubernetes_config_NamedContext",
+ "javaType": "io.fabric8.kubernetes.api.model.NamedContext"
+ }
+ },
+ "current-context": {
+ "type": "string",
+ "description": ""
+ },
+ "extensions": {
+ "type": "array",
+ "description": "",
+ "items": {
+ "$ref": "#/definitions/kubernetes_config_NamedExtension",
+ "javaType": "io.fabric8.kubernetes.api.model.NamedExtension"
+ }
+ },
+ "kind": {
+ "type": "string",
+ "description": ""
+ },
+ "preferences": {
+ "$ref": "#/definitions/kubernetes_config_Preferences",
+ "javaType": "io.fabric8.kubernetes.api.model.Preferences"
+ },
+ "users": {
+ "type": "array",
+ "description": "",
+ "items": {
+ "$ref": "#/definitions/kubernetes_config_NamedAuthInfo",
+ "javaType": "io.fabric8.kubernetes.api.model.NamedAuthInfo"
+ }
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.Config"
+ },
+ "kubernetes_config_Context": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "cluster": {
+ "type": "string",
+ "description": ""
+ },
+ "extensions": {
+ "type": "array",
+ "description": "",
+ "items": {
+ "$ref": "#/definitions/kubernetes_config_NamedExtension",
+ "javaType": "io.fabric8.kubernetes.api.model.NamedExtension"
+ }
+ },
+ "namespace": {
+ "type": "string",
+ "description": ""
+ },
+ "user": {
+ "type": "string",
+ "description": ""
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.Context"
+ },
+ "kubernetes_config_NamedAuthInfo": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": ""
+ },
+ "user": {
+ "$ref": "#/definitions/kubernetes_config_AuthInfo",
+ "javaType": "io.fabric8.kubernetes.api.model.AuthInfo"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.NamedAuthInfo"
+ },
+ "kubernetes_config_NamedCluster": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "cluster": {
+ "$ref": "#/definitions/kubernetes_config_Cluster",
+ "javaType": "io.fabric8.kubernetes.api.model.Cluster"
+ },
+ "name": {
+ "type": "string",
+ "description": ""
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.NamedCluster"
+ },
+ "kubernetes_config_NamedContext": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "context": {
+ "$ref": "#/definitions/kubernetes_config_Context",
+ "javaType": "io.fabric8.kubernetes.api.model.Context"
+ },
+ "name": {
+ "type": "string",
+ "description": ""
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.NamedContext"
+ },
+ "kubernetes_config_NamedExtension": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "extension": {
"$ref": "#/definitions/kubernetes_runtime_RawExtension",
"javaType": "io.fabric8.kubernetes.api.model.HasMetadata"
- }
- },
- "kind": {
- "type": "string",
- "description": "",
- "default": "List",
- "required": true
- },
- "metadata": {
- "$ref": "#/definitions/kubernetes_ListMeta",
- "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.BaseKubernetesList",
- "javaInterfaces": [
- "io.fabric8.kubernetes.api.model.KubernetesResource"
- ]
- },
- "kubernetes_ListMeta": {
- "type": "object",
- "description": "",
- "properties": {
- "resourceVersion": {
- "type": "string",
- "description": "string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system"
- },
- "selfLink": {
- "type": "string",
- "description": "URL for the object; populated by the system"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
- },
- "kubernetes_LoadBalancerIngress": {
- "type": "object",
- "description": "",
- "properties": {
- "hostname": {
- "type": "string",
- "description": "hostname of ingress point"
- },
- "ip": {
- "type": "string",
- "description": "IP address of ingress point"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.LoadBalancerIngress"
- },
- "kubernetes_LoadBalancerStatus": {
- "type": "object",
- "description": "",
- "properties": {
- "ingress": {
- "type": "array",
- "description": "load-balancer ingress points",
- "items": {
- "$ref": "#/definitions/kubernetes_LoadBalancerIngress",
- "javaType": "io.fabric8.kubernetes.api.model.LoadBalancerIngress"
- }
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.LoadBalancerStatus"
- },
- "kubernetes_LocalObjectReference": {
- "type": "object",
- "description": "",
- "properties": {
- "name": {
- "type": "string",
- "description": "name of the referent"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.LocalObjectReference"
- },
- "kubernetes_NFSVolumeSource": {
- "type": "object",
- "description": "",
- "properties": {
- "path": {
- "type": "string",
- "description": "the path that is exported by the NFS server"
- },
- "readOnly": {
- "type": "boolean",
- "description": "forces the NFS export to be mounted with read-only permissions"
- },
- "server": {
- "type": "string",
- "description": "the hostname or IP address of the NFS server"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.NFSVolumeSource"
- },
- "kubernetes_Namespace": {
- "type": "object",
- "description": "",
- "properties": {
- "apiVersion": {
- "type": "string",
- "description": "",
- "default": "v1",
- "required": true,
- "enum": [
- "v1"
- ]
- },
- "kind": {
- "type": "string",
- "description": "",
- "default": "Namespace",
- "required": true
- },
- "metadata": {
- "$ref": "#/definitions/kubernetes_ObjectMeta",
- "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
- },
- "spec": {
- "$ref": "#/definitions/kubernetes_NamespaceSpec",
- "javaType": "io.fabric8.kubernetes.api.model.NamespaceSpec"
- },
- "status": {
- "$ref": "#/definitions/kubernetes_NamespaceStatus",
- "javaType": "io.fabric8.kubernetes.api.model.NamespaceStatus"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.Namespace",
- "javaInterfaces": [
- "io.fabric8.kubernetes.api.model.HasMetadata"
- ]
- },
- "kubernetes_NamespaceList": {
- "type": "object",
- "description": "",
- "properties": {
- "apiVersion": {
- "type": "string",
- "description": "",
- "default": "v1",
- "required": true,
- "enum": [
- "v1"
- ]
- },
- "items": {
- "type": "array",
- "description": "items is the list of Namespace objects in the list",
- "items": {
- "$ref": "#/definitions/kubernetes_Namespace",
- "javaType": "io.fabric8.kubernetes.api.model.Namespace"
- }
- },
- "kind": {
- "type": "string",
- "description": "",
- "default": "NamespaceList",
- "required": true
- },
- "metadata": {
- "$ref": "#/definitions/kubernetes_ListMeta",
- "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.NamespaceList",
- "javaInterfaces": [
- "io.fabric8.kubernetes.api.model.KubernetesResource"
- ]
- },
- "kubernetes_NamespaceSpec": {
- "type": "object",
- "description": "",
- "properties": {
- "finalizers": {
- "type": "array",
- "description": "an opaque list of values that must be empty to permanently remove object from storage",
- "items": {
- "type": "string",
- "description": "an opaque list of values that must be empty to permanently remove object from storage"
- }
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.NamespaceSpec"
- },
- "kubernetes_NamespaceStatus": {
- "type": "object",
- "description": "",
- "properties": {
- "phase": {
- "type": "string",
- "description": "phase is the current lifecycle phase of the namespace"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.NamespaceStatus"
- },
- "kubernetes_Node": {
- "type": "object",
- "description": "",
- "properties": {
- "apiVersion": {
- "type": "string",
- "description": "",
- "default": "v1",
- "required": true,
- "enum": [
- "v1"
- ]
- },
- "kind": {
- "type": "string",
- "description": "",
- "default": "Node",
- "required": true
- },
- "metadata": {
- "$ref": "#/definitions/kubernetes_ObjectMeta",
- "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
- },
- "spec": {
- "$ref": "#/definitions/kubernetes_NodeSpec",
- "javaType": "io.fabric8.kubernetes.api.model.NodeSpec"
- },
- "status": {
- "$ref": "#/definitions/kubernetes_NodeStatus",
- "javaType": "io.fabric8.kubernetes.api.model.NodeStatus"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.Node",
- "javaInterfaces": [
- "io.fabric8.kubernetes.api.model.HasMetadata"
- ]
- },
- "kubernetes_NodeAddress": {
- "type": "object",
- "description": "",
- "properties": {
- "address": {
- "type": "string",
- "description": "the node address"
- },
- "type": {
- "type": "string",
- "description": "node address type"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.NodeAddress"
- },
- "kubernetes_NodeCondition": {
- "type": "object",
- "description": "",
- "properties": {
- "lastHeartbeatTime": {
- "type": "string",
- "description": "last time we got an update on a given condition"
- },
- "lastTransitionTime": {
- "type": "string",
- "description": "last time the condition transit from one status to another"
- },
- "message": {
- "type": "string",
- "description": "human readable message indicating details about last transition"
- },
- "reason": {
- "type": "string",
- "description": "(brief) reason for the condition's last transition"
- },
- "status": {
- "type": "string",
- "description": "status of the condition"
- },
- "type": {
- "type": "string",
- "description": "type of node condition"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.NodeCondition"
- },
- "kubernetes_NodeList": {
- "type": "object",
- "description": "",
- "properties": {
- "apiVersion": {
- "type": "string",
- "description": "",
- "default": "v1",
- "required": true,
- "enum": [
- "v1"
- ]
- },
- "items": {
- "type": "array",
- "description": "list of nodes",
- "items": {
- "$ref": "#/definitions/kubernetes_Node",
- "javaType": "io.fabric8.kubernetes.api.model.Node"
- }
- },
- "kind": {
- "type": "string",
- "description": "",
- "default": "NodeList",
- "required": true
- },
- "metadata": {
- "$ref": "#/definitions/kubernetes_ListMeta",
- "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.NodeList",
- "javaInterfaces": [
- "io.fabric8.kubernetes.api.model.KubernetesResource"
- ]
- },
- "kubernetes_NodeSpec": {
- "type": "object",
- "description": "",
- "properties": {
- "externalID": {
- "type": "string",
- "description": "external ID assigned to the node by some machine database (e.g. a cloud provider). Defaults to node name when empty."
- },
- "podCIDR": {
- "type": "string",
- "description": "pod IP range assigned to the node"
- },
- "unschedulable": {
- "type": "boolean",
- "description": "disable pod scheduling on the node"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.NodeSpec"
- },
- "kubernetes_NodeStatus": {
- "type": "object",
- "description": "",
- "properties": {
- "addresses": {
- "type": "array",
- "description": "list of addresses reachable to the node",
- "items": {
- "$ref": "#/definitions/kubernetes_NodeAddress",
- "javaType": "io.fabric8.kubernetes.api.model.NodeAddress"
- }
- },
- "capacity": {
- "type": "object",
- "description": "compute resource capacity of the node; http://docs.k8s.io/resources.md",
- "additionalProperties": {
- "$ref": "#/definitions/kubernetes_resource_Quantity",
- "javaType": "io.fabric8.kubernetes.api.model.resource.Quantity"
},
- "javaType": "java.util.Map\u003cString,io.fabric8.kubernetes.api.model.resource.Quantity\u003e"
- },
- "conditions": {
- "type": "array",
- "description": "list of node conditions observed",
- "items": {
- "$ref": "#/definitions/kubernetes_NodeCondition",
- "javaType": "io.fabric8.kubernetes.api.model.NodeCondition"
- }
- },
- "nodeInfo": {
- "$ref": "#/definitions/kubernetes_NodeSystemInfo",
- "javaType": "io.fabric8.kubernetes.api.model.NodeSystemInfo"
- },
- "phase": {
- "type": "string",
- "description": "most recently observed lifecycle phase of the node"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.NodeStatus"
- },
- "kubernetes_NodeSystemInfo": {
- "type": "object",
- "description": "",
- "properties": {
- "bootID": {
- "type": "string",
- "description": "boot id is the boot-id reported by the node"
- },
- "containerRuntimeVersion": {
- "type": "string",
- "description": "Container runtime version reported by the node through runtime remote API (e.g. docker://1.5.0)"
- },
- "kernelVersion": {
- "type": "string",
- "description": "Kernel version reported by the node from 'uname -r' (e.g. 3.16.0-0.bpo.4-amd64)"
- },
- "kubeProxyVersion": {
- "type": "string",
- "description": "Kube-proxy version reported by the node"
- },
- "kubeletVersion": {
- "type": "string",
- "description": "Kubelet version reported by the node"
- },
- "machineID": {
- "type": "string",
- "description": "machine-id reported by the node"
- },
- "osImage": {
- "type": "string",
- "description": "OS image used reported by the node from /etc/os-release (e.g. Debian GNU/Linux 7 (wheezy))"
- },
- "systemUUID": {
- "type": "string",
- "description": "system-uuid reported by the node"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.NodeSystemInfo"
- },
- "kubernetes_ObjectFieldSelector": {
- "type": "object",
- "description": "",
- "properties": {
- "apiVersion": {
- "type": "string",
- "description": "version of the schema that fieldPath is written in terms of; defaults to v1"
- },
- "fieldPath": {
- "type": "string",
- "description": "path of the field to select in the specified API version"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.ObjectFieldSelector"
- },
- "kubernetes_ObjectMeta": {
- "type": "object",
- "description": "",
- "properties": {
- "annotations": {
- "type": "object",
- "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about objects",
- "additionalProperties": {
+ "name": {
"type": "string",
- "description": "map of string keys and values that can be used by external tooling to store and retrieve arbitrary metadata about objects"
+ "description": ""
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.NamedExtension"
+ },
+ "kubernetes_config_Preferences": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "colors": {
+ "type": "boolean",
+ "description": ""
},
- "javaType": "java.util.Map\u003cString,String\u003e"
+ "extensions": {
+ "type": "array",
+ "description": "",
+ "items": {
+ "$ref": "#/definitions/kubernetes_config_NamedExtension",
+ "javaType": "io.fabric8.kubernetes.api.model.NamedExtension"
+ }
+ }
},
- "creationTimestamp": {
- "type": "string",
- "description": "RFC 3339 date and time at which the object was created; populated by the system"
- },
- "deletionTimestamp": {
- "type": "string",
- "description": "RFC 3339 date and time at which the object will be deleted; populated by the system when a graceful deletion is requested"
- },
- "generateName": {
- "type": "string",
- "description": "an optional prefix to use to generate a unique name; has the same validation rules as name; optional"
- },
- "labels": {
- "type": "object",
- "description": "map of string keys and values that can be used to organize and categorize objects; may match selectors of replication controllers and services",
- "additionalProperties": {
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.Preferences"
+ },
+ "kubernetes_resource_Quantity": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "Amount": {
+ "$ref": "#/definitions/speter_inf_Dec",
+ "javaType": "io.fabric8.openshift.api.model.Dec"
+ },
+ "Format": {
"type": "string",
- "description": "map of string keys and values that can be used to organize and categorize objects; may match selectors of replication controllers and services"
+ "description": ""
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.Quantity"
+ },
+ "kubernetes_runtime_RawExtension": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "RawJSON": {
+ "type": "string",
+ "description": ""
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.HasMetadata"
+ },
+ "kubernetes_util_IntOrString": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "IntVal": {
+ "type": "integer",
+ "description": ""
},
- "javaType": "java.util.Map\u003cString,String\u003e"
- },
- "name": {
- "type": "string",
- "description": "string that identifies an object. Must be unique within a namespace; cannot be updated",
- "maxLength": 63,
- "pattern": "^[a-z0-9]([-a-z0-9]*[a-z0-9])?$"
- },
- "namespace": {
- "type": "string",
- "description": "namespace of the object; must be a DNS_LABEL; cannot be updated",
- "maxLength": 253,
- "pattern": "^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$"
- },
- "resourceVersion": {
- "type": "string",
- "description": "string that identifies the internal version of this object that can be used by clients to determine when objects have changed; populated by the system"
- },
- "selfLink": {
- "type": "string",
- "description": "URL for the object; populated by the system"
- },
- "uid": {
- "type": "string",
- "description": "unique UUID across space and time; populated by the system; read-only"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
- },
- "kubernetes_ObjectReference": {
- "type": "object",
- "description": "",
- "properties": {
- "apiVersion": {
- "type": "string",
- "description": "API version of the referent"
- },
- "fieldPath": {
- "type": "string",
- "description": "if referring to a piece of an object instead of an entire object"
- },
- "kind": {
- "type": "string",
- "description": "kind of the referent"
- },
- "name": {
- "type": "string",
- "description": "name of the referent"
- },
- "namespace": {
- "type": "string",
- "description": "namespace of the referent"
- },
- "resourceVersion": {
- "type": "string",
- "description": "specific resourceVersion to which this reference is made"
- },
- "uid": {
- "type": "string",
- "description": "uid of the referent"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.ObjectReference"
- },
- "kubernetes_PersistentVolumeClaimVolumeSource": {
- "type": "object",
- "description": "",
- "properties": {
- "claimName": {
- "type": "string",
- "description": "the name of the claim in the same namespace to be mounted as a volume"
- },
- "readOnly": {
- "type": "boolean",
- "description": "mount volume as read-only when true; default false"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.PersistentVolumeClaimVolumeSource"
- },
- "kubernetes_Pod": {
- "type": "object",
- "description": "",
- "properties": {
- "apiVersion": {
- "type": "string",
- "description": "",
- "default": "v1",
- "required": true,
- "enum": [
- "v1"
- ]
- },
- "kind": {
- "type": "string",
- "description": "",
- "default": "Pod",
- "required": true
- },
- "metadata": {
- "$ref": "#/definitions/kubernetes_ObjectMeta",
- "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
- },
- "spec": {
- "$ref": "#/definitions/kubernetes_PodSpec",
- "javaType": "io.fabric8.kubernetes.api.model.PodSpec"
- },
- "status": {
- "$ref": "#/definitions/kubernetes_PodStatus",
- "javaType": "io.fabric8.kubernetes.api.model.PodStatus"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.Pod",
- "javaInterfaces": [
- "io.fabric8.kubernetes.api.model.HasMetadata"
- ]
- },
- "kubernetes_PodCondition": {
- "type": "object",
- "description": "",
- "properties": {
- "status": {
- "type": "string",
- "description": "status of the condition"
- },
- "type": {
- "type": "string",
- "description": "kind of the condition"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.PodCondition"
- },
- "kubernetes_PodList": {
- "type": "object",
- "description": "",
- "properties": {
- "apiVersion": {
- "type": "string",
- "description": "",
- "default": "v1",
- "required": true,
- "enum": [
- "v1"
- ]
- },
- "items": {
- "type": "array",
- "description": "list of pods",
- "items": {
- "$ref": "#/definitions/kubernetes_Pod",
- "javaType": "io.fabric8.kubernetes.api.model.Pod"
+ "Kind": {
+ "type": "integer",
+ "description": ""
+ },
+ "StrVal": {
+ "type": "string",
+ "description": ""
}
},
- "kind": {
- "type": "string",
- "description": "",
- "default": "PodList",
- "required": true
- },
- "metadata": {
- "$ref": "#/definitions/kubernetes_ListMeta",
- "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
- }
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.IntOrString"
},
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.PodList",
- "javaInterfaces": [
- "io.fabric8.kubernetes.api.model.KubernetesResource"
- ]
- },
- "kubernetes_PodSpec": {
- "type": "object",
- "description": "",
- "properties": {
- "activeDeadlineSeconds": {
- "type": "integer",
- "description": "",
- "javaType": "Long"
- },
- "containers": {
- "type": "array",
- "description": "list of containers belonging to the pod; cannot be updated; containers cannot currently be added or removed; there must be at least one container in a Pod",
- "items": {
- "$ref": "#/definitions/kubernetes_Container",
- "javaType": "io.fabric8.kubernetes.api.model.Container"
+ "kubernetes_watch_WatchEvent": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "object": {
+ "$ref": "#/definitions/kubernetes_runtime_RawExtension",
+ "javaType": "io.fabric8.kubernetes.api.model.HasMetadata"
+ },
+ "type": {
+ "type": "string",
+ "description": "the type of watch event; may be ADDED"
}
},
- "dnsPolicy": {
- "type": "string",
- "description": "DNS policy for containers within the pod; one of 'ClusterFirst' or 'Default'"
+ "additionalProperties": true,
+ "javaType": "io.fabric8.kubernetes.api.model.WatchEvent"
+ },
+ "os_authorization_AuthorizationAttributes": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "content": {
+ "$ref": "#/definitions/kubernetes_runtime_RawExtension",
+ "javaType": "io.fabric8.kubernetes.api.model.HasMetadata"
+ },
+ "namespace": {
+ "type": "string",
+ "description": "namespace of the action being requested"
+ },
+ "resource": {
+ "type": "string",
+ "description": "one of the existing resource types"
+ },
+ "resourceName": {
+ "type": "string",
+ "description": "name of the resource being requested for a get or delete"
+ },
+ "verb": {
+ "type": "string",
+ "description": "one of get"
+ }
},
- "host": {
- "type": "string",
- "description": "host requested for this pod"
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.AuthorizationAttributes"
+ },
+ "os_authorization_ClusterPolicy": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "ClusterPolicy",
+ "required": true
+ },
+ "lastModified": {
+ "type": "string",
+ "description": "last time any part of the object was created"
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ObjectMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
+ },
+ "roles": {
+ "type": "array",
+ "description": "all the roles held by this policy",
+ "items": {
+ "$ref": "#/definitions/os_authorization_NamedClusterRole",
+ "javaType": "io.fabric8.openshift.api.model.NamedClusterRole"
+ }
+ }
},
- "hostNetwork": {
- "type": "boolean",
- "description": "host networking requested for this pod"
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.ClusterPolicy",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.HasMetadata"
+ ]
+ },
+ "os_authorization_ClusterPolicyBinding": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "ClusterPolicyBinding",
+ "required": true
+ },
+ "lastModified": {
+ "type": "string",
+ "description": "last time any part of the object was created"
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ObjectMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
+ },
+ "policyRef": {
+ "$ref": "#/definitions/kubernetes_ObjectReference",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectReference"
+ },
+ "roleBindings": {
+ "type": "array",
+ "description": "all the role bindings held by this policy",
+ "items": {
+ "$ref": "#/definitions/os_authorization_NamedClusterRoleBinding",
+ "javaType": "io.fabric8.openshift.api.model.NamedClusterRoleBinding"
+ }
+ }
},
- "imagePullSecrets": {
- "type": "array",
- "description": "list of references to secrets in the same namespace available for pulling the container images",
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.ClusterPolicyBinding",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.HasMetadata"
+ ]
+ },
+ "os_authorization_ClusterPolicyBindingList": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
"items": {
+ "type": "array",
+ "description": "list of cluster policy bindings",
+ "items": {
+ "$ref": "#/definitions/os_authorization_ClusterPolicyBinding",
+ "javaType": "io.fabric8.openshift.api.model.ClusterPolicyBinding"
+ }
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "ClusterPolicyBindingList",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ListMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.ClusterPolicyBindingList",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.KubernetesResource",
+ "io.fabric8.kubernetes.api.model.KubernetesResourceList"
+ ]
+ },
+ "os_authorization_ClusterPolicyList": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "items": {
+ "type": "array",
+ "description": "list of cluster policies",
+ "items": {
+ "$ref": "#/definitions/os_authorization_ClusterPolicy",
+ "javaType": "io.fabric8.openshift.api.model.ClusterPolicy"
+ }
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "ClusterPolicyList",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ListMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.ClusterPolicyList",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.KubernetesResource",
+ "io.fabric8.kubernetes.api.model.KubernetesResourceList"
+ ]
+ },
+ "os_authorization_ClusterRole": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "ClusterRole",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ObjectMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
+ },
+ "rules": {
+ "type": "array",
+ "description": "list of policy rules",
+ "items": {
+ "$ref": "#/definitions/os_authorization_PolicyRule",
+ "javaType": "io.fabric8.openshift.api.model.PolicyRule"
+ }
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.ClusterRole",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.HasMetadata"
+ ]
+ },
+ "os_authorization_ClusterRoleBinding": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "groupNames": {
+ "type": "array",
+ "description": "all the groups directly bound to the role",
+ "items": {
+ "type": "string",
+ "description": "all the groups directly bound to the role"
+ }
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "ClusterRoleBinding",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ObjectMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
+ },
+ "roleRef": {
+ "$ref": "#/definitions/kubernetes_ObjectReference",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectReference"
+ },
+ "subjects": {
+ "type": "array",
+ "description": "references to subjects bound to the role. Only User",
+ "items": {
+ "$ref": "#/definitions/kubernetes_ObjectReference",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectReference"
+ }
+ },
+ "userNames": {
+ "type": "array",
+ "description": "all user names directly bound to the role",
+ "items": {
+ "type": "string",
+ "description": "all user names directly bound to the role"
+ }
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.ClusterRoleBinding",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.HasMetadata"
+ ]
+ },
+ "os_authorization_ClusterRoleBindingList": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "items": {
+ "type": "array",
+ "description": "list of cluster role bindings",
+ "items": {
+ "$ref": "#/definitions/os_authorization_ClusterRoleBinding",
+ "javaType": "io.fabric8.openshift.api.model.ClusterRoleBinding"
+ }
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "ClusterRoleBindingList",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ListMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.ClusterRoleBindingList",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.KubernetesResource",
+ "io.fabric8.kubernetes.api.model.KubernetesResourceList"
+ ]
+ },
+ "os_authorization_LocalSubjectAccessReview": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "TypeMeta": {
+ "$ref": "#/definitions/kubernetes_TypeMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.TypeMeta"
+ },
+ "content": {
+ "$ref": "#/definitions/kubernetes_runtime_RawExtension",
+ "javaType": "io.fabric8.kubernetes.api.model.HasMetadata"
+ },
+ "groups": {
+ "type": "array",
+ "description": "optional",
+ "items": {
+ "type": "string",
+ "description": "optional"
+ }
+ },
+ "namespace": {
+ "type": "string",
+ "description": "namespace of the action being requested"
+ },
+ "resource": {
+ "type": "string",
+ "description": "one of the existing resource types"
+ },
+ "resourceName": {
+ "type": "string",
+ "description": "name of the resource being requested for a get or delete"
+ },
+ "user": {
+ "type": "string",
+ "description": "optional"
+ },
+ "verb": {
+ "type": "string",
+ "description": "one of get"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.LocalSubjectAccessReview"
+ },
+ "os_authorization_NamedClusterRole": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "name of the cluster role"
+ },
+ "role": {
+ "$ref": "#/definitions/os_authorization_ClusterRole",
+ "javaType": "io.fabric8.openshift.api.model.ClusterRole"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.NamedClusterRole"
+ },
+ "os_authorization_NamedClusterRoleBinding": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "name of the cluster role binding"
+ },
+ "roleBinding": {
+ "$ref": "#/definitions/os_authorization_ClusterRoleBinding",
+ "javaType": "io.fabric8.openshift.api.model.ClusterRoleBinding"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.NamedClusterRoleBinding"
+ },
+ "os_authorization_NamedRole": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "name of the role"
+ },
+ "role": {
+ "$ref": "#/definitions/os_authorization_Role",
+ "javaType": "io.fabric8.openshift.api.model.Role"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.NamedRole"
+ },
+ "os_authorization_NamedRoleBinding": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "name of the roleBinding"
+ },
+ "roleBinding": {
+ "$ref": "#/definitions/os_authorization_RoleBinding",
+ "javaType": "io.fabric8.openshift.api.model.RoleBinding"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.NamedRoleBinding"
+ },
+ "os_authorization_Policy": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "Policy",
+ "required": true
+ },
+ "lastModified": {
+ "type": "string",
+ "description": "last time that any part of the policy was created"
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ObjectMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
+ },
+ "roles": {
+ "type": "array",
+ "description": "roles held by this policy",
+ "items": {
+ "$ref": "#/definitions/os_authorization_NamedRole",
+ "javaType": "io.fabric8.openshift.api.model.NamedRole"
+ }
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.Policy",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.HasMetadata"
+ ]
+ },
+ "os_authorization_PolicyBinding": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "PolicyBinding",
+ "required": true
+ },
+ "lastModified": {
+ "type": "string",
+ "description": "last time that any part of the object was created"
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ObjectMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
+ },
+ "policyRef": {
+ "$ref": "#/definitions/kubernetes_ObjectReference",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectReference"
+ },
+ "roleBindings": {
+ "type": "array",
+ "description": "all roleBindings held by this policyBinding",
+ "items": {
+ "$ref": "#/definitions/os_authorization_NamedRoleBinding",
+ "javaType": "io.fabric8.openshift.api.model.NamedRoleBinding"
+ }
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.PolicyBinding",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.HasMetadata"
+ ]
+ },
+ "os_authorization_PolicyBindingList": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "items": {
+ "type": "array",
+ "description": "list of policy bindings",
+ "items": {
+ "$ref": "#/definitions/os_authorization_PolicyBinding",
+ "javaType": "io.fabric8.openshift.api.model.PolicyBinding"
+ }
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "PolicyBindingList",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ListMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.PolicyBindingList",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.KubernetesResource",
+ "io.fabric8.kubernetes.api.model.KubernetesResourceList"
+ ]
+ },
+ "os_authorization_PolicyList": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "items": {
+ "type": "array",
+ "description": "list of policies",
+ "items": {
+ "$ref": "#/definitions/os_authorization_Policy",
+ "javaType": "io.fabric8.openshift.api.model.Policy"
+ }
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "PolicyList",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ListMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.PolicyList",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.KubernetesResource",
+ "io.fabric8.kubernetes.api.model.KubernetesResourceList"
+ ]
+ },
+ "os_authorization_PolicyRule": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "attributeRestrictions": {
+ "$ref": "#/definitions/kubernetes_runtime_RawExtension",
+ "javaType": "io.fabric8.kubernetes.api.model.HasMetadata"
+ },
+ "nonResourceURLs": {
+ "type": "array",
+ "description": "set of partial urls that a user should have access to. *s are allowed",
+ "items": {
+ "type": "string",
+ "description": "set of partial urls that a user should have access to. *s are allowed"
+ }
+ },
+ "resourceNames": {
+ "type": "array",
+ "description": "optional white list of names that the rule applies to. An empty set means that everything is allowed.",
+ "items": {
+ "type": "string",
+ "description": "optional white list of names that the rule applies to. An empty set means that everything is allowed."
+ }
+ },
+ "resources": {
+ "type": "array",
+ "description": "list of resources this rule applies to. * represents all resources.",
+ "items": {
+ "type": "string",
+ "description": "list of resources this rule applies to. * represents all resources."
+ }
+ },
+ "verbs": {
+ "type": "array",
+ "description": "list of verbs that apply to ALL the resourceKinds and attributeRestrictions contained in this rule. The verb * represents all kinds.",
+ "items": {
+ "type": "string",
+ "description": "list of verbs that apply to ALL the resourceKinds and attributeRestrictions contained in this rule. The verb * represents all kinds."
+ }
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.PolicyRule"
+ },
+ "os_authorization_Role": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "Role",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ObjectMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
+ },
+ "rules": {
+ "type": "array",
+ "description": "all the rules for this role",
+ "items": {
+ "$ref": "#/definitions/os_authorization_PolicyRule",
+ "javaType": "io.fabric8.openshift.api.model.PolicyRule"
+ }
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.Role",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.HasMetadata"
+ ]
+ },
+ "os_authorization_RoleBinding": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "groupNames": {
+ "type": "array",
+ "description": "all the groups directly bound to the role",
+ "items": {
+ "type": "string",
+ "description": "all the groups directly bound to the role"
+ }
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "RoleBinding",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ObjectMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
+ },
+ "roleRef": {
+ "$ref": "#/definitions/kubernetes_ObjectReference",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectReference"
+ },
+ "subjects": {
+ "type": "array",
+ "description": "references to subjects bound to the role. Only User",
+ "items": {
+ "$ref": "#/definitions/kubernetes_ObjectReference",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectReference"
+ }
+ },
+ "userNames": {
+ "type": "array",
+ "description": "all the usernames directly bound to the role",
+ "items": {
+ "type": "string",
+ "description": "all the usernames directly bound to the role"
+ }
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.RoleBinding",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.HasMetadata"
+ ]
+ },
+ "os_authorization_RoleBindingList": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "items": {
+ "type": "array",
+ "description": "list of role bindings",
+ "items": {
+ "$ref": "#/definitions/os_authorization_RoleBinding",
+ "javaType": "io.fabric8.openshift.api.model.RoleBinding"
+ }
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "RoleBindingList",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ListMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.RoleBindingList",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.KubernetesResource",
+ "io.fabric8.kubernetes.api.model.KubernetesResourceList"
+ ]
+ },
+ "os_authorization_RoleList": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "items": {
+ "type": "array",
+ "description": "list of roles",
+ "items": {
+ "$ref": "#/definitions/os_authorization_Role",
+ "javaType": "io.fabric8.openshift.api.model.Role"
+ }
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "RoleList",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ListMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.RoleList",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.KubernetesResource",
+ "io.fabric8.kubernetes.api.model.KubernetesResourceList"
+ ]
+ },
+ "os_authorization_SubjectAccessReview": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "content": {
+ "$ref": "#/definitions/kubernetes_runtime_RawExtension",
+ "javaType": "io.fabric8.kubernetes.api.model.HasMetadata"
+ },
+ "groups": {
+ "type": "array",
+ "description": "optional",
+ "items": {
+ "type": "string",
+ "description": "optional"
+ }
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "SubjectAccessReview",
+ "required": true
+ },
+ "namespace": {
+ "type": "string",
+ "description": "namespace of the action being requested"
+ },
+ "resource": {
+ "type": "string",
+ "description": "one of the existing resource types"
+ },
+ "resourceName": {
+ "type": "string",
+ "description": "name of the resource being requested for a get or delete"
+ },
+ "user": {
+ "type": "string",
+ "description": "optional"
+ },
+ "verb": {
+ "type": "string",
+ "description": "one of get"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.SubjectAccessReview"
+ },
+ "os_authorization_SubjectAccessReviewResponse": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "allowed": {
+ "type": "boolean",
+ "description": "true if the action would be allowed"
+ },
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "SubjectAccessReviewResponse",
+ "required": true
+ },
+ "namespace": {
+ "type": "string",
+ "description": "the namespace used for the access review"
+ },
+ "reason": {
+ "type": "string",
+ "description": "reason is optional"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.SubjectAccessReviewResponse"
+ },
+ "os_build_Build": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "Build",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ObjectMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
+ },
+ "spec": {
+ "$ref": "#/definitions/os_build_BuildSpec",
+ "javaType": "io.fabric8.openshift.api.model.BuildSpec"
+ },
+ "status": {
+ "$ref": "#/definitions/os_build_BuildStatus",
+ "javaType": "io.fabric8.openshift.api.model.BuildStatus"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.Build",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.HasMetadata"
+ ]
+ },
+ "os_build_BuildConfig": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "BuildConfig",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ObjectMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
+ },
+ "spec": {
+ "$ref": "#/definitions/os_build_BuildConfigSpec",
+ "javaType": "io.fabric8.openshift.api.model.BuildConfigSpec"
+ },
+ "status": {
+ "$ref": "#/definitions/os_build_BuildConfigStatus",
+ "javaType": "io.fabric8.openshift.api.model.BuildConfigStatus"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.BuildConfig",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.HasMetadata"
+ ]
+ },
+ "os_build_BuildConfigList": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "items": {
+ "type": "array",
+ "description": "list of build configs",
+ "items": {
+ "$ref": "#/definitions/os_build_BuildConfig",
+ "javaType": "io.fabric8.openshift.api.model.BuildConfig"
+ }
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "BuildConfigList",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ListMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.BuildConfigList",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.KubernetesResource",
+ "io.fabric8.kubernetes.api.model.KubernetesResourceList"
+ ]
+ },
+ "os_build_BuildConfigSpec": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "output": {
+ "$ref": "#/definitions/os_build_BuildOutput",
+ "javaType": "io.fabric8.openshift.api.model.BuildOutput"
+ },
+ "resources": {
+ "$ref": "#/definitions/kubernetes_ResourceRequirements",
+ "javaType": "io.fabric8.kubernetes.api.model.ResourceRequirements"
+ },
+ "revision": {
+ "$ref": "#/definitions/os_build_SourceRevision",
+ "javaType": "io.fabric8.openshift.api.model.SourceRevision"
+ },
+ "serviceAccount": {
+ "type": "string",
+ "description": "the name of the service account to use to run pods created by the build"
+ },
+ "source": {
+ "$ref": "#/definitions/os_build_BuildSource",
+ "javaType": "io.fabric8.openshift.api.model.BuildSource"
+ },
+ "strategy": {
+ "$ref": "#/definitions/os_build_BuildStrategy",
+ "javaType": "io.fabric8.openshift.api.model.BuildStrategy"
+ },
+ "triggers": {
+ "type": "array",
+ "description": "determines how new builds can be launched from a build config. if no triggers are defined",
+ "items": {
+ "$ref": "#/definitions/os_build_BuildTriggerPolicy",
+ "javaType": "io.fabric8.openshift.api.model.BuildTriggerPolicy"
+ }
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.BuildConfigSpec"
+ },
+ "os_build_BuildConfigStatus": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "lastVersion": {
+ "type": "integer",
+ "description": "used to inform about number of last triggered build"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.BuildConfigStatus"
+ },
+ "os_build_BuildList": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "items": {
+ "type": "array",
+ "description": "list of builds",
+ "items": {
+ "$ref": "#/definitions/os_build_Build",
+ "javaType": "io.fabric8.openshift.api.model.Build"
+ }
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "BuildList",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ListMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.BuildList",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.KubernetesResource",
+ "io.fabric8.kubernetes.api.model.KubernetesResourceList"
+ ]
+ },
+ "os_build_BuildOutput": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "pushSecret": {
+ "$ref": "#/definitions/kubernetes_LocalObjectReference",
+ "javaType": "io.fabric8.kubernetes.api.model.LocalObjectReference"
+ },
+ "to": {
+ "$ref": "#/definitions/kubernetes_ObjectReference",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectReference"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.BuildOutput"
+ },
+ "os_build_BuildRequest": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "from": {
+ "$ref": "#/definitions/kubernetes_ObjectReference",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectReference"
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "BuildRequest",
+ "required": true
+ },
+ "lastVersion": {
+ "type": "integer",
+ "description": "LastVersion of the BuildConfig that triggered this build"
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ObjectMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
+ },
+ "revision": {
+ "$ref": "#/definitions/os_build_SourceRevision",
+ "javaType": "io.fabric8.openshift.api.model.SourceRevision"
+ },
+ "triggeredByImage": {
+ "$ref": "#/definitions/kubernetes_ObjectReference",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectReference"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.BuildRequest",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.HasMetadata"
+ ]
+ },
+ "os_build_BuildSource": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "contextDir": {
+ "type": "string",
+ "description": "specifies sub-directory where the source code for the application exists"
+ },
+ "git": {
+ "$ref": "#/definitions/os_build_GitBuildSource",
+ "javaType": "io.fabric8.openshift.api.model.GitBuildSource"
+ },
+ "sourceSecret": {
+ "$ref": "#/definitions/kubernetes_LocalObjectReference",
+ "javaType": "io.fabric8.kubernetes.api.model.LocalObjectReference"
+ },
+ "type": {
+ "type": "string",
+ "description": "type of source control management system"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.BuildSource"
+ },
+ "os_build_BuildSpec": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "output": {
+ "$ref": "#/definitions/os_build_BuildOutput",
+ "javaType": "io.fabric8.openshift.api.model.BuildOutput"
+ },
+ "resources": {
+ "$ref": "#/definitions/kubernetes_ResourceRequirements",
+ "javaType": "io.fabric8.kubernetes.api.model.ResourceRequirements"
+ },
+ "revision": {
+ "$ref": "#/definitions/os_build_SourceRevision",
+ "javaType": "io.fabric8.openshift.api.model.SourceRevision"
+ },
+ "serviceAccount": {
+ "type": "string",
+ "description": "the name of the service account to use to run pods created by the build"
+ },
+ "source": {
+ "$ref": "#/definitions/os_build_BuildSource",
+ "javaType": "io.fabric8.openshift.api.model.BuildSource"
+ },
+ "strategy": {
+ "$ref": "#/definitions/os_build_BuildStrategy",
+ "javaType": "io.fabric8.openshift.api.model.BuildStrategy"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.BuildSpec"
+ },
+ "os_build_BuildStatus": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "cancelled": {
+ "type": "boolean",
+ "description": "describes if a canceling event was triggered for the build"
+ },
+ "completionTimestamp": {
+ "type": "string",
+ "description": "server time when the pod running this build stopped running"
+ },
+ "config": {
+ "$ref": "#/definitions/kubernetes_ObjectReference",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectReference"
+ },
+ "duration": {
+ "type": "integer",
+ "description": "amount of time the build has been running",
+ "javaType": "Long"
+ },
+ "message": {
+ "type": "string",
+ "description": "human-readable message indicating details about why the build has this status"
+ },
+ "phase": {
+ "type": "string",
+ "description": "observed point in the build lifecycle"
+ },
+ "startTimestamp": {
+ "type": "string",
+ "description": "server time when this build started running in a pod"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.BuildStatus"
+ },
+ "os_build_BuildStrategy": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "customStrategy": {
+ "$ref": "#/definitions/os_build_CustomBuildStrategy",
+ "javaType": "io.fabric8.openshift.api.model.CustomBuildStrategy"
+ },
+ "dockerStrategy": {
+ "$ref": "#/definitions/os_build_DockerBuildStrategy",
+ "javaType": "io.fabric8.openshift.api.model.DockerBuildStrategy"
+ },
+ "sourceStrategy": {
+ "$ref": "#/definitions/os_build_SourceBuildStrategy",
+ "javaType": "io.fabric8.openshift.api.model.SourceBuildStrategy"
+ },
+ "type": {
+ "type": "string",
+ "description": "identifies the type of build strategy"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.BuildStrategy"
+ },
+ "os_build_BuildTriggerPolicy": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "generic": {
+ "$ref": "#/definitions/os_build_WebHookTrigger",
+ "javaType": "io.fabric8.openshift.api.model.WebHookTrigger"
+ },
+ "github": {
+ "$ref": "#/definitions/os_build_WebHookTrigger",
+ "javaType": "io.fabric8.openshift.api.model.WebHookTrigger"
+ },
+ "imageChange": {
+ "$ref": "#/definitions/os_build_ImageChangeTrigger",
+ "javaType": "io.fabric8.openshift.api.model.ImageChangeTrigger"
+ },
+ "type": {
+ "type": "string",
+ "description": "type of build trigger"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.BuildTriggerPolicy"
+ },
+ "os_build_CustomBuildStrategy": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "env": {
+ "type": "array",
+ "description": "additional environment variables you want to pass into a builder container",
+ "items": {
+ "$ref": "#/definitions/kubernetes_EnvVar",
+ "javaType": "io.fabric8.kubernetes.api.model.EnvVar"
+ }
+ },
+ "exposeDockerSocket": {
+ "type": "boolean",
+ "description": "allow running Docker commands (and build Docker images) from inside the container"
+ },
+ "forcePull": {
+ "type": "boolean",
+ "description": "forces pulling of builder image from remote registry if true"
+ },
+ "from": {
+ "$ref": "#/definitions/kubernetes_ObjectReference",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectReference"
+ },
+ "pullSecret": {
"$ref": "#/definitions/kubernetes_LocalObjectReference",
"javaType": "io.fabric8.kubernetes.api.model.LocalObjectReference"
}
},
- "nodeSelector": {
- "type": "object",
- "description": "selector which must match a node's labels for the pod to be scheduled on that node",
- "additionalProperties": {
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.CustomBuildStrategy"
+ },
+ "os_build_DockerBuildStrategy": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "env": {
+ "type": "array",
+ "description": "additional environment variables you want to pass into a builder container",
+ "items": {
+ "$ref": "#/definitions/kubernetes_EnvVar",
+ "javaType": "io.fabric8.kubernetes.api.model.EnvVar"
+ }
+ },
+ "forcePull": {
+ "type": "boolean",
+ "description": "forces the source build to pull the image if true"
+ },
+ "from": {
+ "$ref": "#/definitions/kubernetes_ObjectReference",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectReference"
+ },
+ "noCache": {
+ "type": "boolean",
+ "description": "if true"
+ },
+ "pullSecret": {
+ "$ref": "#/definitions/kubernetes_LocalObjectReference",
+ "javaType": "io.fabric8.kubernetes.api.model.LocalObjectReference"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.DockerBuildStrategy"
+ },
+ "os_build_GitBuildSource": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "httpProxy": {
"type": "string",
- "description": "selector which must match a node's labels for the pod to be scheduled on that node"
+ "description": "specifies a http proxy to be used during git clone operations"
},
- "javaType": "java.util.Map\u003cString,String\u003e"
- },
- "restartPolicy": {
- "type": "string",
- "description": "restart policy for all containers within the pod; one of RestartPolicyAlways"
- },
- "serviceAccount": {
- "type": "string",
- "description": "name of the ServiceAccount to use to run this pod"
- },
- "terminationGracePeriodSeconds": {
- "type": "integer",
- "description": "optional duration in seconds the pod needs to terminate gracefully; may be decreased in delete request; value must be non-negative integer; the value zero indicates delete immediately; if this value is not set",
- "javaType": "Long"
- },
- "volumes": {
- "type": "array",
- "description": "list of volumes that can be mounted by containers belonging to the pod",
- "items": {
- "$ref": "#/definitions/kubernetes_Volume",
- "javaType": "io.fabric8.kubernetes.api.model.Volume"
- }
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.PodSpec"
- },
- "kubernetes_PodStatus": {
- "type": "object",
- "description": "",
- "properties": {
- "conditions": {
- "type": "array",
- "description": "current service state of pod",
- "items": {
- "$ref": "#/definitions/kubernetes_PodCondition",
- "javaType": "io.fabric8.kubernetes.api.model.PodCondition"
- }
- },
- "containerStatuses": {
- "type": "array",
- "description": "list of container statuses",
- "items": {
- "$ref": "#/definitions/kubernetes_ContainerStatus",
- "javaType": "io.fabric8.kubernetes.api.model.ContainerStatus"
- }
- },
- "hostIP": {
- "type": "string",
- "description": "IP address of the host to which the pod is assigned; empty if not yet scheduled"
- },
- "message": {
- "type": "string",
- "description": "human readable message indicating details about why the pod is in this condition"
- },
- "phase": {
- "type": "string",
- "description": "current condition of the pod."
- },
- "podIP": {
- "type": "string",
- "description": "IP address allocated to the pod; routable at least within the cluster; empty if not yet allocated"
- },
- "startTime": {
- "type": "string",
- "description": "RFC 3339 date and time at which the object was acknowledged by the Kubelet. This is before the Kubelet pulled the container image(s) for the pod."
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.PodStatus"
- },
- "kubernetes_PodTemplateSpec": {
- "type": "object",
- "description": "",
- "properties": {
- "metadata": {
- "$ref": "#/definitions/kubernetes_ObjectMeta",
- "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
- },
- "spec": {
- "$ref": "#/definitions/kubernetes_PodSpec",
- "javaType": "io.fabric8.kubernetes.api.model.PodSpec"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.PodTemplateSpec"
- },
- "kubernetes_Probe": {
- "type": "object",
- "description": "",
- "properties": {
- "exec": {
- "$ref": "#/definitions/kubernetes_ExecAction",
- "javaType": "io.fabric8.kubernetes.api.model.ExecAction"
- },
- "httpGet": {
- "$ref": "#/definitions/kubernetes_HTTPGetAction",
- "javaType": "io.fabric8.kubernetes.api.model.HTTPGetAction"
- },
- "initialDelaySeconds": {
- "type": "integer",
- "description": "number of seconds after the container has started before liveness probes are initiated",
- "javaType": "Long"
- },
- "tcpSocket": {
- "$ref": "#/definitions/kubernetes_TCPSocketAction",
- "javaType": "io.fabric8.kubernetes.api.model.TCPSocketAction"
- },
- "timeoutSeconds": {
- "type": "integer",
- "description": "number of seconds after which liveness probes timeout; defaults to 1 second",
- "javaType": "Long"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.Probe"
- },
- "kubernetes_RBDVolumeSource": {
- "type": "object",
- "description": "",
- "properties": {
- "fsType": {
- "type": "string",
- "description": "file system type to mount"
- },
- "image": {
- "type": "string",
- "description": "rados image name"
- },
- "keyring": {
- "type": "string",
- "description": "keyring is the path to key ring for rados user; default is /etc/ceph/keyring; optional"
- },
- "monitors": {
- "type": "array",
- "description": "a collection of Ceph monitors",
- "items": {
+ "httpsProxy": {
"type": "string",
- "description": "a collection of Ceph monitors"
- }
- },
- "pool": {
- "type": "string",
- "description": "rados pool name; default is rbd; optional"
- },
- "readOnly": {
- "type": "boolean",
- "description": "rbd volume to be mounted with read-only permissions"
- },
- "secretRef": {
- "$ref": "#/definitions/kubernetes_LocalObjectReference",
- "javaType": "io.fabric8.kubernetes.api.model.LocalObjectReference"
- },
- "user": {
- "type": "string",
- "description": "rados user name; default is admin; optional"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.RBDVolumeSource"
- },
- "kubernetes_ReplicationController": {
- "type": "object",
- "description": "",
- "properties": {
- "apiVersion": {
- "type": "string",
- "description": "",
- "default": "v1",
- "required": true,
- "enum": [
- "v1"
- ]
- },
- "kind": {
- "type": "string",
- "description": "",
- "default": "ReplicationController",
- "required": true
- },
- "metadata": {
- "$ref": "#/definitions/kubernetes_ObjectMeta",
- "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
- },
- "spec": {
- "$ref": "#/definitions/kubernetes_ReplicationControllerSpec",
- "javaType": "io.fabric8.kubernetes.api.model.ReplicationControllerSpec"
- },
- "status": {
- "$ref": "#/definitions/kubernetes_ReplicationControllerStatus",
- "javaType": "io.fabric8.kubernetes.api.model.ReplicationControllerStatus"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.ReplicationController",
- "javaInterfaces": [
- "io.fabric8.kubernetes.api.model.HasMetadata"
- ]
- },
- "kubernetes_ReplicationControllerList": {
- "type": "object",
- "description": "",
- "properties": {
- "apiVersion": {
- "type": "string",
- "description": "",
- "default": "v1",
- "required": true,
- "enum": [
- "v1"
- ]
- },
- "items": {
- "type": "array",
- "description": "list of replication controllers",
- "items": {
- "$ref": "#/definitions/kubernetes_ReplicationController",
- "javaType": "io.fabric8.kubernetes.api.model.ReplicationController"
- }
- },
- "kind": {
- "type": "string",
- "description": "",
- "default": "ReplicationControllerList",
- "required": true
- },
- "metadata": {
- "$ref": "#/definitions/kubernetes_ListMeta",
- "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.ReplicationControllerList",
- "javaInterfaces": [
- "io.fabric8.kubernetes.api.model.KubernetesResource"
- ]
- },
- "kubernetes_ReplicationControllerSpec": {
- "type": "object",
- "description": "",
- "properties": {
- "replicas": {
- "type": "integer",
- "description": "number of replicas desired; defaults to 1"
- },
- "selector": {
- "type": "object",
- "description": "label keys and values that must match in order to be controlled by this replication controller",
- "additionalProperties": {
+ "description": "specifies a https proxy to be used during git clone operations"
+ },
+ "ref": {
"type": "string",
- "description": "label keys and values that must match in order to be controlled by this replication controller"
+ "description": "identifies the branch/tag/ref to build"
},
- "javaType": "java.util.Map\u003cString,String\u003e"
- },
- "template": {
- "$ref": "#/definitions/kubernetes_PodTemplateSpec",
- "javaType": "io.fabric8.kubernetes.api.model.PodTemplateSpec"
- },
- "templateRef": {
- "$ref": "#/definitions/kubernetes_ObjectReference",
- "javaType": "io.fabric8.kubernetes.api.model.ObjectReference"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.ReplicationControllerSpec"
- },
- "kubernetes_ReplicationControllerStatus": {
- "type": "object",
- "description": "",
- "properties": {
- "replicas": {
- "type": "integer",
- "description": "most recently oberved number of replicas"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.ReplicationControllerStatus"
- },
- "kubernetes_ResourceRequirements": {
- "type": "object",
- "description": "",
- "properties": {
- "limits": {
- "type": "object",
- "description": "Maximum amount of compute resources allowed",
- "additionalProperties": {
- "$ref": "#/definitions/kubernetes_resource_Quantity",
- "javaType": "io.fabric8.kubernetes.api.model.resource.Quantity"
- },
- "javaType": "java.util.Map\u003cString,io.fabric8.kubernetes.api.model.resource.Quantity\u003e"
- },
- "requests": {
- "type": "object",
- "description": "Minimum amount of resources requested; requests are honored only for persistent volumes as of now",
- "additionalProperties": {
- "$ref": "#/definitions/kubernetes_resource_Quantity",
- "javaType": "io.fabric8.kubernetes.api.model.resource.Quantity"
- },
- "javaType": "java.util.Map\u003cString,io.fabric8.kubernetes.api.model.resource.Quantity\u003e"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.ResourceRequirements"
- },
- "kubernetes_SELinuxOptions": {
- "type": "object",
- "description": "",
- "properties": {
- "level": {
- "type": "string",
- "description": "the level label to apply to the container"
- },
- "role": {
- "type": "string",
- "description": "the role label to apply to the container"
- },
- "type": {
- "type": "string",
- "description": "the type label to apply to the container"
- },
- "user": {
- "type": "string",
- "description": "the user label to apply to the container"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.SELinuxOptions"
- },
- "kubernetes_Secret": {
- "type": "object",
- "description": "",
- "properties": {
- "apiVersion": {
- "type": "string",
- "description": "",
- "default": "v1",
- "required": true,
- "enum": [
- "v1"
- ]
- },
- "data": {
- "type": "object",
- "description": "data contains the secret data. Each key must be a valid DNS_SUBDOMAIN or leading dot followed by valid DNS_SUBDOMAIN. Each value must be a base64 encoded string as described in https://tools.ietf.org/html/rfc4648#section-4",
- "additionalProperties": {
+ "uri": {
"type": "string",
- "description": "data contains the secret data. Each key must be a valid DNS_SUBDOMAIN or leading dot followed by valid DNS_SUBDOMAIN. Each value must be a base64 encoded string as described in https://tools.ietf.org/html/rfc4648#section-4"
- },
- "javaType": "java.util.Map\u003cString,String\u003e"
- },
- "kind": {
- "type": "string",
- "description": "",
- "default": "Secret",
- "required": true
- },
- "metadata": {
- "$ref": "#/definitions/kubernetes_ObjectMeta",
- "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
- },
- "type": {
- "type": "string",
- "description": "type facilitates programmatic handling of secret data"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.Secret",
- "javaInterfaces": [
- "io.fabric8.kubernetes.api.model.HasMetadata"
- ]
- },
- "kubernetes_SecretList": {
- "type": "object",
- "description": "",
- "properties": {
- "apiVersion": {
- "type": "string",
- "description": "",
- "default": "v1",
- "required": true,
- "enum": [
- "v1"
- ]
- },
- "items": {
- "type": "array",
- "description": "items is a list of secret objects",
- "items": {
- "$ref": "#/definitions/kubernetes_Secret",
- "javaType": "io.fabric8.kubernetes.api.model.Secret"
+ "description": "points to the source that will be built"
}
},
- "kind": {
- "type": "string",
- "description": "",
- "default": "SecretList",
- "required": true
- },
- "metadata": {
- "$ref": "#/definitions/kubernetes_ListMeta",
- "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
- }
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.GitBuildSource"
},
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.SecretList",
- "javaInterfaces": [
- "io.fabric8.kubernetes.api.model.KubernetesResource"
- ]
- },
- "kubernetes_SecretVolumeSource": {
- "type": "object",
- "description": "",
- "properties": {
- "secretName": {
- "type": "string",
- "description": "secretName is the name of a secret in the pod's namespace"
- }
+ "os_build_GitSourceRevision": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "author": {
+ "$ref": "#/definitions/os_build_SourceControlUser",
+ "javaType": "io.fabric8.openshift.api.model.SourceControlUser"
+ },
+ "commit": {
+ "type": "string",
+ "description": "hash identifying a specific commit"
+ },
+ "committer": {
+ "$ref": "#/definitions/os_build_SourceControlUser",
+ "javaType": "io.fabric8.openshift.api.model.SourceControlUser"
+ },
+ "message": {
+ "type": "string",
+ "description": "description of a specific commit"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.GitSourceRevision"
},
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.SecretVolumeSource"
- },
- "kubernetes_SecurityContext": {
- "type": "object",
- "description": "",
- "properties": {
- "capabilities": {
- "$ref": "#/definitions/kubernetes_Capabilities",
- "javaType": "io.fabric8.kubernetes.api.model.Capabilities"
+ "os_build_ImageChangeTrigger": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "from": {
+ "$ref": "#/definitions/kubernetes_ObjectReference",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectReference"
+ },
+ "lastTriggeredImageID": {
+ "type": "string",
+ "description": "used internally to save last used image ID for build"
+ }
},
- "privileged": {
- "type": "boolean",
- "description": "run the container in privileged mode"
- },
- "runAsUser": {
- "type": "integer",
- "description": "the user id that runs the first process in the container",
- "javaType": "Long"
- },
- "seLinuxOptions": {
- "$ref": "#/definitions/kubernetes_SELinuxOptions",
- "javaType": "io.fabric8.kubernetes.api.model.SELinuxOptions"
- }
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.ImageChangeTrigger"
},
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.SecurityContext"
- },
- "kubernetes_Service": {
- "type": "object",
- "description": "",
- "properties": {
- "apiVersion": {
- "type": "string",
- "description": "",
- "default": "v1",
- "required": true,
- "enum": [
- "v1"
- ]
+ "os_build_SourceBuildStrategy": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "env": {
+ "type": "array",
+ "description": "additional environment variables you want to pass into a builder container",
+ "items": {
+ "$ref": "#/definitions/kubernetes_EnvVar",
+ "javaType": "io.fabric8.kubernetes.api.model.EnvVar"
+ }
+ },
+ "forcePull": {
+ "type": "boolean",
+ "description": "forces the source build to pull the image if true"
+ },
+ "from": {
+ "$ref": "#/definitions/kubernetes_ObjectReference",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectReference"
+ },
+ "incremental": {
+ "type": "boolean",
+ "description": "forces the source build to do incremental builds if true"
+ },
+ "pullSecret": {
+ "$ref": "#/definitions/kubernetes_LocalObjectReference",
+ "javaType": "io.fabric8.kubernetes.api.model.LocalObjectReference"
+ },
+ "scripts": {
+ "type": "string",
+ "description": "location of the source scripts"
+ }
},
- "kind": {
- "type": "string",
- "description": "",
- "default": "Service",
- "required": true
- },
- "metadata": {
- "$ref": "#/definitions/kubernetes_ObjectMeta",
- "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
- },
- "spec": {
- "$ref": "#/definitions/kubernetes_ServiceSpec",
- "javaType": "io.fabric8.kubernetes.api.model.ServiceSpec"
- },
- "status": {
- "$ref": "#/definitions/kubernetes_ServiceStatus",
- "javaType": "io.fabric8.kubernetes.api.model.ServiceStatus"
- }
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.SourceBuildStrategy"
},
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.Service",
- "javaInterfaces": [
- "io.fabric8.kubernetes.api.model.HasMetadata"
- ]
- },
- "kubernetes_ServiceAccount": {
- "type": "object",
- "description": "",
- "properties": {
- "apiVersion": {
- "type": "string",
- "description": "",
- "default": "v1",
- "required": true,
- "enum": [
- "v1"
- ]
+ "os_build_SourceControlUser": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "email": {
+ "type": "string",
+ "description": "e-mail of the source control user"
+ },
+ "name": {
+ "type": "string",
+ "description": "name of the source control user"
+ }
},
- "kind": {
- "type": "string",
- "description": "",
- "default": "ServiceAccount",
- "required": true
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.SourceControlUser"
+ },
+ "os_build_SourceRevision": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "git": {
+ "$ref": "#/definitions/os_build_GitSourceRevision",
+ "javaType": "io.fabric8.openshift.api.model.GitSourceRevision"
+ },
+ "type": {
+ "type": "string",
+ "description": "type of the build source"
+ }
},
- "metadata": {
- "$ref": "#/definitions/kubernetes_ObjectMeta",
- "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.SourceRevision"
+ },
+ "os_build_WebHookTrigger": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "secret": {
+ "type": "string",
+ "description": "secret used to validate requests"
+ }
},
- "secrets": {
- "type": "array",
- "description": "list of secrets that can be used by pods running as this service account",
- "items": {
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.WebHookTrigger"
+ },
+ "os_deploy_CustomDeploymentStrategyParams": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "command": {
+ "type": "array",
+ "description": "optionally overrides the container command (default is specified by the image)",
+ "items": {
+ "type": "string",
+ "description": "optionally overrides the container command (default is specified by the image)"
+ }
+ },
+ "environment": {
+ "type": "array",
+ "description": "environment variables provided to the deployment process container",
+ "items": {
+ "$ref": "#/definitions/kubernetes_EnvVar",
+ "javaType": "io.fabric8.kubernetes.api.model.EnvVar"
+ }
+ },
+ "image": {
+ "type": "string",
+ "description": "a Docker image which can carry out a deployment"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.CustomDeploymentStrategyParams"
+ },
+ "os_deploy_DeploymentCause": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "imageTrigger": {
+ "$ref": "#/definitions/os_deploy_DeploymentCauseImageTrigger",
+ "javaType": "io.fabric8.openshift.api.model.DeploymentCauseImageTrigger"
+ },
+ "type": {
+ "type": "string",
+ "description": "the type of trigger that resulted in a new deployment"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.DeploymentCause"
+ },
+ "os_deploy_DeploymentCauseImageTrigger": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "from": {
"$ref": "#/definitions/kubernetes_ObjectReference",
"javaType": "io.fabric8.kubernetes.api.model.ObjectReference"
}
- }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.DeploymentCauseImageTrigger"
},
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.ServiceAccount",
- "javaInterfaces": [
- "io.fabric8.kubernetes.api.model.HasMetadata"
- ]
- },
- "kubernetes_ServiceAccountList": {
- "type": "object",
- "description": "",
- "properties": {
- "apiVersion": {
- "type": "string",
- "description": "",
- "default": "v1",
- "required": true,
- "enum": [
- "v1"
- ]
- },
- "items": {
- "type": "array",
- "description": "list of ServiceAccounts",
- "items": {
- "$ref": "#/definitions/kubernetes_ServiceAccount",
- "javaType": "io.fabric8.kubernetes.api.model.ServiceAccount"
- }
- },
- "kind": {
- "type": "string",
- "description": "",
- "default": "ServiceAccountList",
- "required": true
- },
- "metadata": {
- "$ref": "#/definitions/kubernetes_ListMeta",
- "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.ServiceAccountList",
- "javaInterfaces": [
- "io.fabric8.kubernetes.api.model.KubernetesResource"
- ]
- },
- "kubernetes_ServiceList": {
- "type": "object",
- "description": "",
- "properties": {
- "apiVersion": {
- "type": "string",
- "description": "",
- "default": "v1",
- "required": true,
- "enum": [
- "v1"
- ]
- },
- "items": {
- "type": "array",
- "description": "list of services",
- "items": {
- "$ref": "#/definitions/kubernetes_Service",
- "javaType": "io.fabric8.kubernetes.api.model.Service"
- }
- },
- "kind": {
- "type": "string",
- "description": "",
- "default": "ServiceList",
- "required": true
- },
- "metadata": {
- "$ref": "#/definitions/kubernetes_ListMeta",
- "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.ServiceList",
- "javaInterfaces": [
- "io.fabric8.kubernetes.api.model.KubernetesResource"
- ]
- },
- "kubernetes_ServicePort": {
- "type": "object",
- "description": "",
- "properties": {
- "name": {
- "type": "string",
- "description": "the name of this port; optional if only one port is defined",
- "maxLength": 63,
- "pattern": "^[a-z0-9]([-a-z0-9]*[a-z0-9])?$"
- },
- "nodePort": {
- "type": "integer",
- "description": "the port on each node on which this service is exposed"
- },
- "port": {
- "type": "integer",
- "description": "the port number that is exposed"
- },
- "protocol": {
- "type": "string",
- "description": "the protocol used by this port; must be UDP or TCP; TCP if unspecified"
- },
- "targetPort": {
- "$ref": "#/definitions/kubernetes_util_IntOrString",
- "javaType": "io.fabric8.kubernetes.api.model.util.IntOrString"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.ServicePort"
- },
- "kubernetes_ServiceSpec": {
- "type": "object",
- "description": "",
- "properties": {
- "deprecatedPublicIPs": {
- "type": "array",
- "description": "deprecated. externally visible IPs (e.g. load balancers) that should be proxied to this service",
- "items": {
+ "os_deploy_DeploymentConfig": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
"type": "string",
- "description": "deprecated. externally visible IPs (e.g. load balancers) that should be proxied to this service"
- }
- },
- "portalIP": {
- "type": "string",
- "description": ""
- },
- "ports": {
- "type": "array",
- "description": "ports exposed by the service",
- "items": {
- "$ref": "#/definitions/kubernetes_ServicePort",
- "javaType": "io.fabric8.kubernetes.api.model.ServicePort"
- }
- },
- "selector": {
- "type": "object",
- "description": "label keys and values that must match in order to receive traffic for this service; if empty",
- "additionalProperties": {
- "type": "string",
- "description": "label keys and values that must match in order to receive traffic for this service; if empty"
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
},
- "javaType": "java.util.Map\u003cString,String\u003e"
- },
- "sessionAffinity": {
- "type": "string",
- "description": "enable client IP based session affinity; must be ClientIP or None; defaults to None"
- },
- "type": {
- "type": "string",
- "description": "type of this service; must be ClusterIP"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.ServiceSpec"
- },
- "kubernetes_ServiceStatus": {
- "type": "object",
- "description": "",
- "properties": {
- "loadBalancer": {
- "$ref": "#/definitions/kubernetes_LoadBalancerStatus",
- "javaType": "io.fabric8.kubernetes.api.model.LoadBalancerStatus"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.ServiceStatus"
- },
- "kubernetes_TCPSocketAction": {
- "type": "object",
- "description": "",
- "properties": {
- "port": {
- "$ref": "#/definitions/kubernetes_util_IntOrString",
- "javaType": "io.fabric8.kubernetes.api.model.util.IntOrString"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.TCPSocketAction"
- },
- "kubernetes_TypeMeta": {
- "type": "object",
- "description": "",
- "properties": {
- "apiVersion": {
- "type": "string",
- "description": "version of the schema the object should have"
- },
- "kind": {
- "type": "string",
- "description": "kind of object"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.TypeMeta"
- },
- "kubernetes_Volume": {
- "type": "object",
- "description": "",
- "properties": {
- "awsElasticBlockStore": {
- "$ref": "#/definitions/kubernetes_AWSElasticBlockStoreVolumeSource",
- "javaType": "io.fabric8.kubernetes.api.model.AWSElasticBlockStoreVolumeSource"
- },
- "emptyDir": {
- "$ref": "#/definitions/kubernetes_EmptyDirVolumeSource",
- "javaType": "io.fabric8.kubernetes.api.model.EmptyDirVolumeSource"
- },
- "gcePersistentDisk": {
- "$ref": "#/definitions/kubernetes_GCEPersistentDiskVolumeSource",
- "javaType": "io.fabric8.kubernetes.api.model.GCEPersistentDiskVolumeSource"
- },
- "gitRepo": {
- "$ref": "#/definitions/kubernetes_GitRepoVolumeSource",
- "javaType": "io.fabric8.kubernetes.api.model.GitRepoVolumeSource"
- },
- "glusterfs": {
- "$ref": "#/definitions/kubernetes_GlusterfsVolumeSource",
- "javaType": "io.fabric8.kubernetes.api.model.GlusterfsVolumeSource"
- },
- "hostPath": {
- "$ref": "#/definitions/kubernetes_HostPathVolumeSource",
- "javaType": "io.fabric8.kubernetes.api.model.HostPathVolumeSource"
- },
- "iscsi": {
- "$ref": "#/definitions/kubernetes_ISCSIVolumeSource",
- "javaType": "io.fabric8.kubernetes.api.model.ISCSIVolumeSource"
- },
- "name": {
- "type": "string",
- "description": "volume name; must be a DNS_LABEL and unique within the pod",
- "maxLength": 63,
- "pattern": "^[a-z0-9]([-a-z0-9]*[a-z0-9])?$"
- },
- "nfs": {
- "$ref": "#/definitions/kubernetes_NFSVolumeSource",
- "javaType": "io.fabric8.kubernetes.api.model.NFSVolumeSource"
- },
- "persistentVolumeClaim": {
- "$ref": "#/definitions/kubernetes_PersistentVolumeClaimVolumeSource",
- "javaType": "io.fabric8.kubernetes.api.model.PersistentVolumeClaimVolumeSource"
- },
- "rbd": {
- "$ref": "#/definitions/kubernetes_RBDVolumeSource",
- "javaType": "io.fabric8.kubernetes.api.model.RBDVolumeSource"
- },
- "secret": {
- "$ref": "#/definitions/kubernetes_SecretVolumeSource",
- "javaType": "io.fabric8.kubernetes.api.model.SecretVolumeSource"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.Volume"
- },
- "kubernetes_VolumeMount": {
- "type": "object",
- "description": "",
- "properties": {
- "mountPath": {
- "type": "string",
- "description": "path within the container at which the volume should be mounted"
- },
- "name": {
- "type": "string",
- "description": "name of the volume to mount"
- },
- "readOnly": {
- "type": "boolean",
- "description": "mounted read-only if true"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.VolumeMount"
- },
- "kubernetes_VolumeSource": {
- "type": "object",
- "description": "",
- "properties": {
- "awsElasticBlockStore": {
- "$ref": "#/definitions/kubernetes_AWSElasticBlockStoreVolumeSource",
- "javaType": "io.fabric8.kubernetes.api.model.AWSElasticBlockStoreVolumeSource"
- },
- "emptyDir": {
- "$ref": "#/definitions/kubernetes_EmptyDirVolumeSource",
- "javaType": "io.fabric8.kubernetes.api.model.EmptyDirVolumeSource"
- },
- "gcePersistentDisk": {
- "$ref": "#/definitions/kubernetes_GCEPersistentDiskVolumeSource",
- "javaType": "io.fabric8.kubernetes.api.model.GCEPersistentDiskVolumeSource"
- },
- "gitRepo": {
- "$ref": "#/definitions/kubernetes_GitRepoVolumeSource",
- "javaType": "io.fabric8.kubernetes.api.model.GitRepoVolumeSource"
- },
- "glusterfs": {
- "$ref": "#/definitions/kubernetes_GlusterfsVolumeSource",
- "javaType": "io.fabric8.kubernetes.api.model.GlusterfsVolumeSource"
- },
- "hostPath": {
- "$ref": "#/definitions/kubernetes_HostPathVolumeSource",
- "javaType": "io.fabric8.kubernetes.api.model.HostPathVolumeSource"
- },
- "iscsi": {
- "$ref": "#/definitions/kubernetes_ISCSIVolumeSource",
- "javaType": "io.fabric8.kubernetes.api.model.ISCSIVolumeSource"
- },
- "nfs": {
- "$ref": "#/definitions/kubernetes_NFSVolumeSource",
- "javaType": "io.fabric8.kubernetes.api.model.NFSVolumeSource"
- },
- "persistentVolumeClaim": {
- "$ref": "#/definitions/kubernetes_PersistentVolumeClaimVolumeSource",
- "javaType": "io.fabric8.kubernetes.api.model.PersistentVolumeClaimVolumeSource"
- },
- "rbd": {
- "$ref": "#/definitions/kubernetes_RBDVolumeSource",
- "javaType": "io.fabric8.kubernetes.api.model.RBDVolumeSource"
- },
- "secret": {
- "$ref": "#/definitions/kubernetes_SecretVolumeSource",
- "javaType": "io.fabric8.kubernetes.api.model.SecretVolumeSource"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.VolumeSource"
- },
- "kubernetes_base_ListMeta": {
- "type": "object",
- "description": "",
- "properties": {
- "resourceVersion": {
- "type": "string",
- "description": ""
- },
- "selfLink": {
- "type": "string",
- "description": ""
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.base.ListMeta"
- },
- "kubernetes_base_Status": {
- "type": "object",
- "description": "",
- "properties": {
- "apiVersion": {
- "type": "string",
- "description": "",
- "default": "v1",
- "required": true,
- "enum": [
- "v1"
- ]
- },
- "code": {
- "type": "integer",
- "description": ""
- },
- "details": {
- "$ref": "#/definitions/kubernetes_base_StatusDetails",
- "javaType": "io.fabric8.kubernetes.api.model.base.StatusDetails"
- },
- "kind": {
- "type": "string",
- "description": "",
- "default": "Status",
- "required": true
- },
- "message": {
- "type": "string",
- "description": ""
- },
- "metadata": {
- "$ref": "#/definitions/kubernetes_base_ListMeta",
- "javaType": "io.fabric8.kubernetes.api.model.base.ListMeta"
- },
- "reason": {
- "type": "string",
- "description": ""
- },
- "status": {
- "type": "string",
- "description": ""
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.base.Status"
- },
- "kubernetes_base_StatusCause": {
- "type": "object",
- "description": "",
- "properties": {
- "field": {
- "type": "string",
- "description": ""
- },
- "message": {
- "type": "string",
- "description": ""
- },
- "reason": {
- "type": "string",
- "description": ""
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.base.StatusCause"
- },
- "kubernetes_base_StatusDetails": {
- "type": "object",
- "description": "",
- "properties": {
- "causes": {
- "type": "array",
- "description": "",
- "items": {
- "$ref": "#/definitions/kubernetes_base_StatusCause",
- "javaType": "io.fabric8.kubernetes.api.model.base.StatusCause"
- }
- },
- "id": {
- "type": "string",
- "description": ""
- },
- "kind": {
- "type": "string",
- "description": ""
- },
- "retryAfterSeconds": {
- "type": "integer",
- "description": ""
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.base.StatusDetails"
- },
- "kubernetes_base_TypeMeta": {
- "type": "object",
- "description": "",
- "properties": {
- "apiVersion": {
- "type": "string",
- "description": ""
- },
- "kind": {
- "type": "string",
- "description": ""
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.base.TypeMeta"
- },
- "kubernetes_config_AuthInfo": {
- "type": "object",
- "description": "",
- "properties": {
- "client-certificate": {
- "type": "string",
- "description": ""
- },
- "client-certificate-data": {
- "type": "string",
- "description": ""
- },
- "client-key": {
- "type": "string",
- "description": ""
- },
- "client-key-data": {
- "type": "string",
- "description": ""
- },
- "extensions": {
- "type": "array",
- "description": "",
- "items": {
- "$ref": "#/definitions/kubernetes_config_NamedExtension",
- "javaType": "io.fabric8.kubernetes.api.model.config.NamedExtension"
- }
- },
- "password": {
- "type": "string",
- "description": ""
- },
- "token": {
- "type": "string",
- "description": ""
- },
- "username": {
- "type": "string",
- "description": ""
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.config.AuthInfo"
- },
- "kubernetes_config_Cluster": {
- "type": "object",
- "description": "",
- "properties": {
- "api-version": {
- "type": "string",
- "description": ""
- },
- "certificate-authority": {
- "type": "string",
- "description": ""
- },
- "certificate-authority-data": {
- "type": "string",
- "description": ""
- },
- "extensions": {
- "type": "array",
- "description": "",
- "items": {
- "$ref": "#/definitions/kubernetes_config_NamedExtension",
- "javaType": "io.fabric8.kubernetes.api.model.config.NamedExtension"
- }
- },
- "insecure-skip-tls-verify": {
- "type": "boolean",
- "description": ""
- },
- "server": {
- "type": "string",
- "description": ""
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.config.Cluster"
- },
- "kubernetes_config_Config": {
- "type": "object",
- "description": "",
- "properties": {
- "apiVersion": {
- "type": "string",
- "description": ""
- },
- "clusters": {
- "type": "array",
- "description": "",
- "items": {
- "$ref": "#/definitions/kubernetes_config_NamedCluster",
- "javaType": "io.fabric8.kubernetes.api.model.config.NamedCluster"
- }
- },
- "contexts": {
- "type": "array",
- "description": "",
- "items": {
- "$ref": "#/definitions/kubernetes_config_NamedContext",
- "javaType": "io.fabric8.kubernetes.api.model.config.NamedContext"
- }
- },
- "current-context": {
- "type": "string",
- "description": ""
- },
- "extensions": {
- "type": "array",
- "description": "",
- "items": {
- "$ref": "#/definitions/kubernetes_config_NamedExtension",
- "javaType": "io.fabric8.kubernetes.api.model.config.NamedExtension"
- }
- },
- "kind": {
- "type": "string",
- "description": ""
- },
- "preferences": {
- "$ref": "#/definitions/kubernetes_config_Preferences",
- "javaType": "io.fabric8.kubernetes.api.model.config.Preferences"
- },
- "users": {
- "type": "array",
- "description": "",
- "items": {
- "$ref": "#/definitions/kubernetes_config_NamedAuthInfo",
- "javaType": "io.fabric8.kubernetes.api.model.config.NamedAuthInfo"
- }
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.config.Config"
- },
- "kubernetes_config_Context": {
- "type": "object",
- "description": "",
- "properties": {
- "cluster": {
- "type": "string",
- "description": ""
- },
- "extensions": {
- "type": "array",
- "description": "",
- "items": {
- "$ref": "#/definitions/kubernetes_config_NamedExtension",
- "javaType": "io.fabric8.kubernetes.api.model.config.NamedExtension"
- }
- },
- "namespace": {
- "type": "string",
- "description": ""
- },
- "user": {
- "type": "string",
- "description": ""
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.config.Context"
- },
- "kubernetes_config_NamedAuthInfo": {
- "type": "object",
- "description": "",
- "properties": {
- "name": {
- "type": "string",
- "description": ""
- },
- "user": {
- "$ref": "#/definitions/kubernetes_config_AuthInfo",
- "javaType": "io.fabric8.kubernetes.api.model.config.AuthInfo"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.config.NamedAuthInfo"
- },
- "kubernetes_config_NamedCluster": {
- "type": "object",
- "description": "",
- "properties": {
- "cluster": {
- "$ref": "#/definitions/kubernetes_config_Cluster",
- "javaType": "io.fabric8.kubernetes.api.model.config.Cluster"
- },
- "name": {
- "type": "string",
- "description": ""
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.config.NamedCluster"
- },
- "kubernetes_config_NamedContext": {
- "type": "object",
- "description": "",
- "properties": {
- "context": {
- "$ref": "#/definitions/kubernetes_config_Context",
- "javaType": "io.fabric8.kubernetes.api.model.config.Context"
- },
- "name": {
- "type": "string",
- "description": ""
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.config.NamedContext"
- },
- "kubernetes_config_NamedExtension": {
- "type": "object",
- "description": "",
- "properties": {
- "extension": {
- "$ref": "#/definitions/kubernetes_runtime_RawExtension",
- "javaType": "io.fabric8.kubernetes.api.model.HasMetadata"
- },
- "name": {
- "type": "string",
- "description": ""
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.config.NamedExtension"
- },
- "kubernetes_config_Preferences": {
- "type": "object",
- "description": "",
- "properties": {
- "colors": {
- "type": "boolean",
- "description": ""
- },
- "extensions": {
- "type": "array",
- "description": "",
- "items": {
- "$ref": "#/definitions/kubernetes_config_NamedExtension",
- "javaType": "io.fabric8.kubernetes.api.model.config.NamedExtension"
- }
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.config.Preferences"
- },
- "kubernetes_errors_StatusError": {
- "type": "object",
- "description": "",
- "properties": {
- "ErrStatus": {
- "$ref": "#/definitions/kubernetes_base_Status",
- "javaType": "io.fabric8.kubernetes.api.model.base.Status"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.errors.StatusError"
- },
- "kubernetes_resource_Quantity": {
- "type": "object",
- "description": "",
- "properties": {
- "Amount": {
- "$ref": "#/definitions/speter_inf_Dec",
- "javaType": "io.fabric8.openshift.client.util.Dec"
- },
- "Format": {
- "type": "string",
- "description": ""
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.resource.Quantity"
- },
- "kubernetes_runtime_RawExtension": {
- "type": "object",
- "description": "",
- "properties": {
- "RawJSON": {
- "type": "string",
- "description": ""
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.HasMetadata"
- },
- "kubernetes_util_IntOrString": {
- "type": "object",
- "description": "",
- "properties": {
- "IntVal": {
- "type": "integer",
- "description": ""
- },
- "Kind": {
- "type": "integer",
- "description": ""
- },
- "StrVal": {
- "type": "string",
- "description": ""
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.model.util.IntOrString"
- },
- "kubernetes_watch_WatchEvent": {
- "type": "object",
- "description": "",
- "properties": {
- "object": {
- "$ref": "#/definitions/kubernetes_runtime_RawExtension",
- "javaType": "io.fabric8.kubernetes.api.model.HasMetadata"
- },
- "type": {
- "type": "string",
- "description": "the type of watch event; may be ADDED"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.kubernetes.api.watch.WatchEvent"
- },
- "os_build_Build": {
- "type": "object",
- "description": "",
- "properties": {
- "apiVersion": {
- "type": "string",
- "description": "",
- "default": "v1",
- "required": true,
- "enum": [
- "v1"
- ]
- },
- "kind": {
- "type": "string",
- "description": "",
- "default": "Build",
- "required": true
- },
- "metadata": {
- "$ref": "#/definitions/kubernetes_ObjectMeta",
- "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
- },
- "spec": {
- "$ref": "#/definitions/os_build_BuildSpec",
- "javaType": "io.fabric8.openshift.api.model.BuildSpec"
- },
- "status": {
- "$ref": "#/definitions/os_build_BuildStatus",
- "javaType": "io.fabric8.openshift.api.model.BuildStatus"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.openshift.api.model.Build",
- "javaInterfaces": [
- "io.fabric8.kubernetes.api.model.HasMetadata"
- ]
- },
- "os_build_BuildConfig": {
- "type": "object",
- "description": "",
- "properties": {
- "apiVersion": {
- "type": "string",
- "description": "",
- "default": "v1",
- "required": true,
- "enum": [
- "v1"
- ]
- },
- "kind": {
- "type": "string",
- "description": "",
- "default": "BuildConfig",
- "required": true
- },
- "metadata": {
- "$ref": "#/definitions/kubernetes_ObjectMeta",
- "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
- },
- "spec": {
- "$ref": "#/definitions/os_build_BuildConfigSpec",
- "javaType": "io.fabric8.openshift.api.model.BuildConfigSpec"
- },
- "status": {
- "$ref": "#/definitions/os_build_BuildConfigStatus",
- "javaType": "io.fabric8.openshift.api.model.BuildConfigStatus"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.openshift.api.model.BuildConfig",
- "javaInterfaces": [
- "io.fabric8.kubernetes.api.model.HasMetadata"
- ]
- },
- "os_build_BuildConfigList": {
- "type": "object",
- "description": "",
- "properties": {
- "apiVersion": {
- "type": "string",
- "description": "",
- "default": "v1",
- "required": true,
- "enum": [
- "v1"
- ]
- },
- "items": {
- "type": "array",
- "description": "list of build configs",
- "items": {
- "$ref": "#/definitions/os_build_BuildConfig",
- "javaType": "io.fabric8.openshift.api.model.BuildConfig"
- }
- },
- "kind": {
- "type": "string",
- "description": "",
- "default": "BuildConfigList",
- "required": true
- },
- "metadata": {
- "$ref": "#/definitions/kubernetes_ListMeta",
- "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.openshift.api.model.BuildConfigList",
- "javaInterfaces": [
- "io.fabric8.kubernetes.api.model.KubernetesResource"
- ]
- },
- "os_build_BuildConfigSpec": {
- "type": "object",
- "description": "",
- "properties": {
- "output": {
- "$ref": "#/definitions/os_build_BuildOutput",
- "javaType": "io.fabric8.openshift.api.model.BuildOutput"
- },
- "resources": {
- "$ref": "#/definitions/kubernetes_ResourceRequirements",
- "javaType": "io.fabric8.kubernetes.api.model.ResourceRequirements"
- },
- "revision": {
- "$ref": "#/definitions/os_build_SourceRevision",
- "javaType": "io.fabric8.openshift.api.model.SourceRevision"
- },
- "serviceAccount": {
- "type": "string",
- "description": "the name of the service account to use to run pods created by the build"
- },
- "source": {
- "$ref": "#/definitions/os_build_BuildSource",
- "javaType": "io.fabric8.openshift.api.model.BuildSource"
- },
- "strategy": {
- "$ref": "#/definitions/os_build_BuildStrategy",
- "javaType": "io.fabric8.openshift.api.model.BuildStrategy"
- },
- "triggers": {
- "type": "array",
- "description": "determines how new builds can be launched from a build config. if no triggers are defined",
- "items": {
- "$ref": "#/definitions/os_build_BuildTriggerPolicy",
- "javaType": "io.fabric8.openshift.api.model.BuildTriggerPolicy"
- }
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.openshift.api.model.BuildConfigSpec"
- },
- "os_build_BuildConfigStatus": {
- "type": "object",
- "description": "",
- "properties": {
- "lastVersion": {
- "type": "integer",
- "description": "used to inform about number of last triggered build"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.openshift.api.model.BuildConfigStatus"
- },
- "os_build_BuildList": {
- "type": "object",
- "description": "",
- "properties": {
- "apiVersion": {
- "type": "string",
- "description": "",
- "default": "v1",
- "required": true,
- "enum": [
- "v1"
- ]
- },
- "items": {
- "type": "array",
- "description": "list of builds",
- "items": {
- "$ref": "#/definitions/os_build_Build",
- "javaType": "io.fabric8.openshift.api.model.Build"
- }
- },
- "kind": {
- "type": "string",
- "description": "",
- "default": "BuildList",
- "required": true
- },
- "metadata": {
- "$ref": "#/definitions/kubernetes_ListMeta",
- "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.openshift.api.model.BuildList",
- "javaInterfaces": [
- "io.fabric8.kubernetes.api.model.KubernetesResource"
- ]
- },
- "os_build_BuildOutput": {
- "type": "object",
- "description": "",
- "properties": {
- "pushSecret": {
- "$ref": "#/definitions/kubernetes_LocalObjectReference",
- "javaType": "io.fabric8.kubernetes.api.model.LocalObjectReference"
- },
- "to": {
- "$ref": "#/definitions/kubernetes_ObjectReference",
- "javaType": "io.fabric8.kubernetes.api.model.ObjectReference"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.openshift.api.model.BuildOutput"
- },
- "os_build_BuildRequest": {
- "type": "object",
- "description": "",
- "properties": {
- "apiVersion": {
- "type": "string",
- "description": "",
- "default": "v1",
- "required": true,
- "enum": [
- "v1"
- ]
- },
- "kind": {
- "type": "string",
- "description": "",
- "default": "BuildRequest",
- "required": true
- },
- "metadata": {
- "$ref": "#/definitions/kubernetes_ObjectMeta",
- "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
- },
- "revision": {
- "$ref": "#/definitions/os_build_SourceRevision",
- "javaType": "io.fabric8.openshift.api.model.SourceRevision"
- },
- "triggeredByImage": {
- "$ref": "#/definitions/kubernetes_ObjectReference",
- "javaType": "io.fabric8.kubernetes.api.model.ObjectReference"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.openshift.api.model.BuildRequest",
- "javaInterfaces": [
- "io.fabric8.kubernetes.api.model.HasMetadata"
- ]
- },
- "os_build_BuildSource": {
- "type": "object",
- "description": "",
- "properties": {
- "contextDir": {
- "type": "string",
- "description": "specifies sub-directory where the source code for the application exists"
- },
- "git": {
- "$ref": "#/definitions/os_build_GitBuildSource",
- "javaType": "io.fabric8.openshift.api.model.GitBuildSource"
- },
- "sourceSecret": {
- "$ref": "#/definitions/kubernetes_LocalObjectReference",
- "javaType": "io.fabric8.kubernetes.api.model.LocalObjectReference"
- },
- "type": {
- "type": "string",
- "description": "type of source control management system"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.openshift.api.model.BuildSource"
- },
- "os_build_BuildSpec": {
- "type": "object",
- "description": "",
- "properties": {
- "output": {
- "$ref": "#/definitions/os_build_BuildOutput",
- "javaType": "io.fabric8.openshift.api.model.BuildOutput"
- },
- "resources": {
- "$ref": "#/definitions/kubernetes_ResourceRequirements",
- "javaType": "io.fabric8.kubernetes.api.model.ResourceRequirements"
- },
- "revision": {
- "$ref": "#/definitions/os_build_SourceRevision",
- "javaType": "io.fabric8.openshift.api.model.SourceRevision"
- },
- "serviceAccount": {
- "type": "string",
- "description": "the name of the service account to use to run pods created by the build"
- },
- "source": {
- "$ref": "#/definitions/os_build_BuildSource",
- "javaType": "io.fabric8.openshift.api.model.BuildSource"
- },
- "strategy": {
- "$ref": "#/definitions/os_build_BuildStrategy",
- "javaType": "io.fabric8.openshift.api.model.BuildStrategy"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.openshift.api.model.BuildSpec"
- },
- "os_build_BuildStatus": {
- "type": "object",
- "description": "",
- "properties": {
- "cancelled": {
- "type": "boolean",
- "description": "describes if a canceling event was triggered for the build"
- },
- "completionTimestamp": {
- "type": "string",
- "description": "server time when the pod running this build stopped running"
- },
- "config": {
- "$ref": "#/definitions/kubernetes_ObjectReference",
- "javaType": "io.fabric8.kubernetes.api.model.ObjectReference"
- },
- "duration": {
- "type": "integer",
- "description": "amount of time the build has been running",
- "javaType": "Long"
- },
- "message": {
- "type": "string",
- "description": "human-readable message indicating details about why the build has this status"
- },
- "phase": {
- "type": "string",
- "description": "observed point in the build lifecycle"
- },
- "startTimestamp": {
- "type": "string",
- "description": "server time when this build started running in a pod"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.openshift.api.model.BuildStatus"
- },
- "os_build_BuildStrategy": {
- "type": "object",
- "description": "",
- "properties": {
- "customStrategy": {
- "$ref": "#/definitions/os_build_CustomBuildStrategy",
- "javaType": "io.fabric8.openshift.api.model.CustomBuildStrategy"
- },
- "dockerStrategy": {
- "$ref": "#/definitions/os_build_DockerBuildStrategy",
- "javaType": "io.fabric8.openshift.api.model.DockerBuildStrategy"
- },
- "sourceStrategy": {
- "$ref": "#/definitions/os_build_SourceBuildStrategy",
- "javaType": "io.fabric8.openshift.api.model.SourceBuildStrategy"
- },
- "type": {
- "type": "string",
- "description": "identifies the type of build strategy"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.openshift.api.model.BuildStrategy"
- },
- "os_build_BuildTriggerPolicy": {
- "type": "object",
- "description": "",
- "properties": {
- "generic": {
- "$ref": "#/definitions/os_build_WebHookTrigger",
- "javaType": "io.fabric8.openshift.api.model.WebHookTrigger"
- },
- "github": {
- "$ref": "#/definitions/os_build_WebHookTrigger",
- "javaType": "io.fabric8.openshift.api.model.WebHookTrigger"
- },
- "imageChange": {
- "$ref": "#/definitions/os_build_ImageChangeTrigger",
- "javaType": "io.fabric8.openshift.api.model.ImageChangeTrigger"
- },
- "type": {
- "type": "string",
- "description": "type of build trigger"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.openshift.api.model.BuildTriggerPolicy"
- },
- "os_build_CustomBuildStrategy": {
- "type": "object",
- "description": "",
- "properties": {
- "env": {
- "type": "array",
- "description": "additional environment variables you want to pass into a builder container",
- "items": {
- "$ref": "#/definitions/kubernetes_EnvVar",
- "javaType": "io.fabric8.kubernetes.api.model.EnvVar"
- }
- },
- "exposeDockerSocket": {
- "type": "boolean",
- "description": "allow running Docker commands (and build Docker images) from inside the container"
- },
- "from": {
- "$ref": "#/definitions/kubernetes_ObjectReference",
- "javaType": "io.fabric8.kubernetes.api.model.ObjectReference"
- },
- "pullSecret": {
- "$ref": "#/definitions/kubernetes_LocalObjectReference",
- "javaType": "io.fabric8.kubernetes.api.model.LocalObjectReference"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.openshift.api.model.CustomBuildStrategy"
- },
- "os_build_DockerBuildStrategy": {
- "type": "object",
- "description": "",
- "properties": {
- "from": {
- "$ref": "#/definitions/kubernetes_ObjectReference",
- "javaType": "io.fabric8.kubernetes.api.model.ObjectReference"
- },
- "noCache": {
- "type": "boolean",
- "description": "if true"
- },
- "pullSecret": {
- "$ref": "#/definitions/kubernetes_LocalObjectReference",
- "javaType": "io.fabric8.kubernetes.api.model.LocalObjectReference"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.openshift.api.model.DockerBuildStrategy"
- },
- "os_build_GitBuildSource": {
- "type": "object",
- "description": "",
- "properties": {
- "ref": {
- "type": "string",
- "description": "identifies the branch/tag/ref to build"
- },
- "uri": {
- "type": "string",
- "description": "points to the source that will be built"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.openshift.api.model.GitBuildSource"
- },
- "os_build_GitSourceRevision": {
- "type": "object",
- "description": "",
- "properties": {
- "author": {
- "$ref": "#/definitions/os_build_SourceControlUser",
- "javaType": "io.fabric8.openshift.api.model.SourceControlUser"
- },
- "commit": {
- "type": "string",
- "description": "hash identifying a specific commit"
- },
- "committer": {
- "$ref": "#/definitions/os_build_SourceControlUser",
- "javaType": "io.fabric8.openshift.api.model.SourceControlUser"
- },
- "message": {
- "type": "string",
- "description": "description of a specific commit"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.openshift.api.model.GitSourceRevision"
- },
- "os_build_ImageChangeTrigger": {
- "type": "object",
- "description": "",
- "properties": {
- "lastTriggeredImageID": {
- "type": "string",
- "description": "used internally to save last used image ID for build"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.openshift.api.model.ImageChangeTrigger"
- },
- "os_build_SourceBuildStrategy": {
- "type": "object",
- "description": "",
- "properties": {
- "env": {
- "type": "array",
- "description": "additional environment variables you want to pass into a builder container",
- "items": {
- "$ref": "#/definitions/kubernetes_EnvVar",
- "javaType": "io.fabric8.kubernetes.api.model.EnvVar"
- }
- },
- "from": {
- "$ref": "#/definitions/kubernetes_ObjectReference",
- "javaType": "io.fabric8.kubernetes.api.model.ObjectReference"
- },
- "incremental": {
- "type": "boolean",
- "description": "forces the source build to do incremental builds if true"
- },
- "pullSecret": {
- "$ref": "#/definitions/kubernetes_LocalObjectReference",
- "javaType": "io.fabric8.kubernetes.api.model.LocalObjectReference"
- },
- "scripts": {
- "type": "string",
- "description": "location of the source scripts"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.openshift.api.model.SourceBuildStrategy"
- },
- "os_build_SourceControlUser": {
- "type": "object",
- "description": "",
- "properties": {
- "email": {
- "type": "string",
- "description": "e-mail of the source control user"
- },
- "name": {
- "type": "string",
- "description": "name of the source control user"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.openshift.api.model.SourceControlUser"
- },
- "os_build_SourceRevision": {
- "type": "object",
- "description": "",
- "properties": {
- "git": {
- "$ref": "#/definitions/os_build_GitSourceRevision",
- "javaType": "io.fabric8.openshift.api.model.GitSourceRevision"
- },
- "type": {
- "type": "string",
- "description": "type of the build source"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.openshift.api.model.SourceRevision"
- },
- "os_build_WebHookTrigger": {
- "type": "object",
- "description": "",
- "properties": {
- "secret": {
- "type": "string",
- "description": "secret used to validate requests"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.openshift.api.model.WebHookTrigger"
- },
- "os_deploy_CustomDeploymentStrategyParams": {
- "type": "object",
- "description": "",
- "properties": {
- "command": {
- "type": "array",
- "description": "optionally overrides the container command (default is specified by the image)",
- "items": {
+ "kind": {
"type": "string",
- "description": "optionally overrides the container command (default is specified by the image)"
- }
- },
- "environment": {
- "type": "array",
- "description": "environment variables provided to the deployment process container",
- "items": {
- "$ref": "#/definitions/kubernetes_EnvVar",
- "javaType": "io.fabric8.kubernetes.api.model.EnvVar"
- }
- },
- "image": {
- "type": "string",
- "description": "a Docker image which can carry out a deployment"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.openshift.api.model.CustomDeploymentStrategyParams"
- },
- "os_deploy_DeploymentCause": {
- "type": "object",
- "description": "",
- "properties": {
- "imageTrigger": {
- "$ref": "#/definitions/os_deploy_DeploymentCauseImageTrigger",
- "javaType": "io.fabric8.openshift.api.model.DeploymentCauseImageTrigger"
- },
- "type": {
- "type": "string",
- "description": "the type of trigger that resulted in a new deployment"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.openshift.api.model.DeploymentCause"
- },
- "os_deploy_DeploymentCauseImageTrigger": {
- "type": "object",
- "description": "",
- "properties": {
- "from": {
- "$ref": "#/definitions/kubernetes_ObjectReference",
- "javaType": "io.fabric8.kubernetes.api.model.ObjectReference"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.openshift.api.model.DeploymentCauseImageTrigger"
- },
- "os_deploy_DeploymentConfig": {
- "type": "object",
- "description": "",
- "properties": {
- "apiVersion": {
- "type": "string",
- "description": "",
- "default": "v1",
- "required": true,
- "enum": [
- "v1"
- ]
- },
- "kind": {
- "type": "string",
- "description": "",
- "default": "DeploymentConfig",
- "required": true
- },
- "metadata": {
- "$ref": "#/definitions/kubernetes_ObjectMeta",
- "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
- },
- "spec": {
- "$ref": "#/definitions/os_deploy_DeploymentConfigSpec",
- "javaType": "io.fabric8.openshift.api.model.DeploymentConfigSpec"
- },
- "status": {
- "$ref": "#/definitions/os_deploy_DeploymentConfigStatus",
- "javaType": "io.fabric8.openshift.api.model.DeploymentConfigStatus"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.openshift.api.model.DeploymentConfig",
- "javaInterfaces": [
- "io.fabric8.kubernetes.api.model.HasMetadata"
- ]
- },
- "os_deploy_DeploymentConfigList": {
- "type": "object",
- "description": "",
- "properties": {
- "apiVersion": {
- "type": "string",
- "description": "",
- "default": "v1",
- "required": true,
- "enum": [
- "v1"
- ]
- },
- "items": {
- "type": "array",
- "description": "a list of deployment configs",
- "items": {
- "$ref": "#/definitions/os_deploy_DeploymentConfig",
- "javaType": "io.fabric8.openshift.api.model.DeploymentConfig"
- }
- },
- "kind": {
- "type": "string",
- "description": "",
- "default": "DeploymentConfigList",
- "required": true
- },
- "metadata": {
- "$ref": "#/definitions/kubernetes_ListMeta",
- "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.openshift.api.model.DeploymentConfigList",
- "javaInterfaces": [
- "io.fabric8.kubernetes.api.model.KubernetesResource"
- ]
- },
- "os_deploy_DeploymentConfigSpec": {
- "type": "object",
- "description": "",
- "properties": {
- "replicas": {
- "type": "integer",
- "description": "the desired number of replicas"
- },
- "selector": {
- "type": "object",
- "description": "a label query over pods that should match the replicas count",
- "additionalProperties": {
- "type": "string",
- "description": "a label query over pods that should match the replicas count"
+ "description": "",
+ "default": "DeploymentConfig",
+ "required": true
},
- "javaType": "java.util.Map\u003cString,String\u003e"
- },
- "strategy": {
- "$ref": "#/definitions/os_deploy_DeploymentStrategy",
- "javaType": "io.fabric8.openshift.api.model.DeploymentStrategy"
- },
- "template": {
- "$ref": "#/definitions/kubernetes_PodTemplateSpec",
- "javaType": "io.fabric8.kubernetes.api.model.PodTemplateSpec"
- },
- "templateRef": {
- "$ref": "#/definitions/kubernetes_ObjectReference",
- "javaType": "io.fabric8.kubernetes.api.model.ObjectReference"
- },
- "triggers": {
- "type": "array",
- "description": "how new deployments are triggered",
- "items": {
- "$ref": "#/definitions/os_deploy_DeploymentTriggerPolicy",
- "javaType": "io.fabric8.openshift.api.model.DeploymentTriggerPolicy"
- }
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.openshift.api.model.DeploymentConfigSpec"
- },
- "os_deploy_DeploymentConfigStatus": {
- "type": "object",
- "description": "",
- "properties": {
- "details": {
- "$ref": "#/definitions/os_deploy_DeploymentDetails",
- "javaType": "io.fabric8.openshift.api.model.DeploymentDetails"
- },
- "latestVersion": {
- "type": "integer",
- "description": "used to determine whether the current deployment is out of sync"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.openshift.api.model.DeploymentConfigStatus"
- },
- "os_deploy_DeploymentDetails": {
- "type": "object",
- "description": "",
- "properties": {
- "causes": {
- "type": "array",
- "description": "extended data associated with all the causes for creating a new deployment",
- "items": {
- "$ref": "#/definitions/os_deploy_DeploymentCause",
- "javaType": "io.fabric8.openshift.api.model.DeploymentCause"
- }
- },
- "message": {
- "type": "string",
- "description": "a user specified change message"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.openshift.api.model.DeploymentDetails"
- },
- "os_deploy_DeploymentStrategy": {
- "type": "object",
- "description": "",
- "properties": {
- "customParams": {
- "$ref": "#/definitions/os_deploy_CustomDeploymentStrategyParams",
- "javaType": "io.fabric8.openshift.api.model.CustomDeploymentStrategyParams"
- },
- "recreateParams": {
- "$ref": "#/definitions/os_deploy_RecreateDeploymentStrategyParams",
- "javaType": "io.fabric8.openshift.api.model.RecreateDeploymentStrategyParams"
- },
- "resources": {
- "$ref": "#/definitions/kubernetes_ResourceRequirements",
- "javaType": "io.fabric8.kubernetes.api.model.ResourceRequirements"
- },
- "rollingParams": {
- "$ref": "#/definitions/os_deploy_RollingDeploymentStrategyParams",
- "javaType": "io.fabric8.openshift.api.model.RollingDeploymentStrategyParams"
- },
- "type": {
- "type": "string",
- "description": "the name of a deployment strategy"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.openshift.api.model.DeploymentStrategy"
- },
- "os_deploy_DeploymentTriggerImageChangeParams": {
- "type": "object",
- "description": "",
- "properties": {
- "automatic": {
- "type": "boolean",
- "description": "whether detection of a new tag value should trigger a deployment"
- },
- "containerNames": {
- "type": "array",
- "description": "restricts tag updates to a set of container names in the pod",
- "items": {
- "type": "string",
- "description": "restricts tag updates to a set of container names in the pod"
- }
- },
- "from": {
- "$ref": "#/definitions/kubernetes_ObjectReference",
- "javaType": "io.fabric8.kubernetes.api.model.ObjectReference"
- },
- "lastTriggeredImage": {
- "type": "string",
- "description": "the last image to be triggered"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.openshift.api.model.DeploymentTriggerImageChangeParams"
- },
- "os_deploy_DeploymentTriggerPolicy": {
- "type": "object",
- "description": "",
- "properties": {
- "imageChangeParams": {
- "$ref": "#/definitions/os_deploy_DeploymentTriggerImageChangeParams",
- "javaType": "io.fabric8.openshift.api.model.DeploymentTriggerImageChangeParams"
- },
- "type": {
- "type": "string",
- "description": "the type of the trigger"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.openshift.api.model.DeploymentTriggerPolicy"
- },
- "os_deploy_ExecNewPodHook": {
- "type": "object",
- "description": "",
- "properties": {
- "command": {
- "type": "array",
- "description": "the hook command and its arguments",
- "items": {
- "type": "string",
- "description": "the hook command and its arguments"
- }
- },
- "containerName": {
- "type": "string",
- "description": "the name of a container from the pod template whose image will be used for the hook container"
- },
- "env": {
- "type": "array",
- "description": "environment variables provided to the hook container",
- "items": {
- "$ref": "#/definitions/kubernetes_EnvVar",
- "javaType": "io.fabric8.kubernetes.api.model.EnvVar"
- }
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.openshift.api.model.ExecNewPodHook"
- },
- "os_deploy_LifecycleHook": {
- "type": "object",
- "description": "",
- "properties": {
- "execNewPod": {
- "$ref": "#/definitions/os_deploy_ExecNewPodHook",
- "javaType": "io.fabric8.openshift.api.model.ExecNewPodHook"
- },
- "failurePolicy": {
- "type": "string",
- "description": "what action to take if the hook fails"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.openshift.api.model.LifecycleHook"
- },
- "os_deploy_RecreateDeploymentStrategyParams": {
- "type": "object",
- "description": "",
- "properties": {
- "post": {
- "$ref": "#/definitions/os_deploy_LifecycleHook",
- "javaType": "io.fabric8.openshift.api.model.LifecycleHook"
- },
- "pre": {
- "$ref": "#/definitions/os_deploy_LifecycleHook",
- "javaType": "io.fabric8.openshift.api.model.LifecycleHook"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.openshift.api.model.RecreateDeploymentStrategyParams"
- },
- "os_deploy_RollingDeploymentStrategyParams": {
- "type": "object",
- "description": "",
- "properties": {
- "intervalSeconds": {
- "type": "integer",
- "description": "the time to wait between polling deployment status after update",
- "javaType": "Long"
- },
- "post": {
- "$ref": "#/definitions/os_deploy_LifecycleHook",
- "javaType": "io.fabric8.openshift.api.model.LifecycleHook"
- },
- "pre": {
- "$ref": "#/definitions/os_deploy_LifecycleHook",
- "javaType": "io.fabric8.openshift.api.model.LifecycleHook"
- },
- "timeoutSeconds": {
- "type": "integer",
- "description": "the time to wait for updates before giving up",
- "javaType": "Long"
- },
- "updatePeriodSeconds": {
- "type": "integer",
- "description": "the time to wait between individual pod updates",
- "javaType": "Long"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.openshift.api.model.RollingDeploymentStrategyParams"
- },
- "os_image_Image": {
- "type": "object",
- "description": "",
- "properties": {
- "apiVersion": {
- "type": "string",
- "description": "",
- "default": "v1",
- "required": true,
- "enum": [
- "v1"
- ]
- },
- "dockerImageManifest": {
- "type": "string",
- "description": "raw JSON of the manifest"
- },
- "dockerImageMetadata": {
- "$ref": "#/definitions/kubernetes_runtime_RawExtension",
- "javaType": "io.fabric8.kubernetes.api.model.HasMetadata"
- },
- "dockerImageMetadataVersion": {
- "type": "string",
- "description": "conveys version of the object"
- },
- "dockerImageReference": {
- "type": "string",
- "description": "string that can be used to pull this image"
- },
- "kind": {
- "type": "string",
- "description": "",
- "default": "Image",
- "required": true
- },
- "metadata": {
- "$ref": "#/definitions/kubernetes_ObjectMeta",
- "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.openshift.api.model.Image",
- "javaInterfaces": [
- "io.fabric8.kubernetes.api.model.HasMetadata"
- ]
- },
- "os_image_ImageList": {
- "type": "object",
- "description": "",
- "properties": {
- "apiVersion": {
- "type": "string",
- "description": "",
- "default": "v1",
- "required": true,
- "enum": [
- "v1"
- ]
- },
- "items": {
- "type": "array",
- "description": "list of image objects",
- "items": {
- "$ref": "#/definitions/os_image_Image",
- "javaType": "io.fabric8.openshift.api.model.Image"
- }
- },
- "kind": {
- "type": "string",
- "description": "",
- "default": "ImageList",
- "required": true
- },
- "metadata": {
- "$ref": "#/definitions/kubernetes_ListMeta",
- "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.openshift.api.model.ImageList",
- "javaInterfaces": [
- "io.fabric8.kubernetes.api.model.KubernetesResource"
- ]
- },
- "os_image_ImageStream": {
- "type": "object",
- "description": "",
- "properties": {
- "apiVersion": {
- "type": "string",
- "description": "",
- "default": "v1",
- "required": true,
- "enum": [
- "v1"
- ]
- },
- "kind": {
- "type": "string",
- "description": "",
- "default": "ImageStream",
- "required": true
- },
- "metadata": {
- "$ref": "#/definitions/kubernetes_ObjectMeta",
- "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
- },
- "spec": {
- "$ref": "#/definitions/os_image_ImageStreamSpec",
- "javaType": "io.fabric8.openshift.api.model.ImageStreamSpec"
- },
- "status": {
- "$ref": "#/definitions/os_image_ImageStreamStatus",
- "javaType": "io.fabric8.openshift.api.model.ImageStreamStatus"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.openshift.api.model.ImageStream",
- "javaInterfaces": [
- "io.fabric8.kubernetes.api.model.HasMetadata"
- ]
- },
- "os_image_ImageStreamList": {
- "type": "object",
- "description": "",
- "properties": {
- "apiVersion": {
- "type": "string",
- "description": "",
- "default": "v1",
- "required": true,
- "enum": [
- "v1"
- ]
- },
- "items": {
- "type": "array",
- "description": "list of image stream objects",
- "items": {
- "$ref": "#/definitions/os_image_ImageStream",
- "javaType": "io.fabric8.openshift.api.model.ImageStream"
- }
- },
- "kind": {
- "type": "string",
- "description": "",
- "default": "ImageStreamList",
- "required": true
- },
- "metadata": {
- "$ref": "#/definitions/kubernetes_ListMeta",
- "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.openshift.api.model.ImageStreamList",
- "javaInterfaces": [
- "io.fabric8.kubernetes.api.model.KubernetesResource"
- ]
- },
- "os_image_ImageStreamSpec": {
- "type": "object",
- "description": "",
- "properties": {
- "dockerImageRepository": {
- "type": "string",
- "description": "optional field if specified this stream is backed by a Docker repository on this server"
- },
- "tags": {
- "type": "array",
- "description": "map arbitrary string values to specific image locators",
- "items": {
- "$ref": "#/definitions/os_image_NamedTagReference",
- "javaType": "io.fabric8.openshift.api.model.NamedTagReference"
- }
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.openshift.api.model.ImageStreamSpec"
- },
- "os_image_ImageStreamStatus": {
- "type": "object",
- "description": "",
- "properties": {
- "dockerImageRepository": {
- "type": "string",
- "description": "represents the effective location this stream may be accessed at"
- },
- "tags": {
- "type": "array",
- "description": "historical record of images associated with each tag",
- "items": {
- "$ref": "#/definitions/os_image_NamedTagEventList",
- "javaType": "io.fabric8.openshift.api.model.NamedTagEventList"
- }
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.openshift.api.model.ImageStreamStatus"
- },
- "os_image_NamedTagEventList": {
- "type": "object",
- "description": "",
- "properties": {
- "items": {
- "type": "array",
- "description": "list of tag events related to the tag",
- "items": {
- "$ref": "#/definitions/os_image_TagEvent",
- "javaType": "io.fabric8.openshift.api.model.TagEvent"
- }
- },
- "tag": {
- "type": "string",
- "description": "the tag"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.openshift.api.model.NamedTagEventList",
- "javaInterfaces": [
- "io.fabric8.kubernetes.api.model.KubernetesResource"
- ]
- },
- "os_image_NamedTagReference": {
- "type": "object",
- "description": "",
- "properties": {
- "annotations": {
- "type": "object",
- "description": "annotations associated with images using this tag",
- "additionalProperties": {
- "type": "string",
- "description": "annotations associated with images using this tag"
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ObjectMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
},
- "javaType": "java.util.Map\u003cString,String\u003e"
- },
- "from": {
- "$ref": "#/definitions/kubernetes_ObjectReference",
- "javaType": "io.fabric8.kubernetes.api.model.ObjectReference"
- },
- "name": {
- "type": "string",
- "description": "name of tag"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.openshift.api.model.NamedTagReference"
- },
- "os_image_TagEvent": {
- "type": "object",
- "description": "",
- "properties": {
- "created": {
- "type": "string",
- "description": "when the event was created"
- },
- "dockerImageReference": {
- "type": "string",
- "description": "the string that can be used to pull this image"
- },
- "image": {
- "type": "string",
- "description": "the image"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.openshift.api.model.TagEvent"
- },
- "os_oauth_OAuthAccessToken": {
- "type": "object",
- "description": "",
- "properties": {
- "apiVersion": {
- "type": "string",
- "description": "",
- "default": "v1",
- "required": true,
- "enum": [
- "v1"
- ]
- },
- "authorizeToken": {
- "type": "string",
- "description": "contains the token that authorized this token"
- },
- "clientName": {
- "type": "string",
- "description": "references the client that created this token"
- },
- "expiresIn": {
- "type": "integer",
- "description": "is the seconds from creation time before this token expires",
- "javaType": "Long"
- },
- "kind": {
- "type": "string",
- "description": "",
- "default": "OAuthAccessToken",
- "required": true
- },
- "metadata": {
- "$ref": "#/definitions/kubernetes_ObjectMeta",
- "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
- },
- "redirectURI": {
- "type": "string",
- "description": "redirection URI associated with the token"
- },
- "refreshToken": {
- "type": "string",
- "description": "optional value by which this token can be renewed"
- },
- "scopes": {
- "type": "array",
- "description": "list of requested scopes",
- "items": {
- "type": "string",
- "description": "list of requested scopes"
- }
- },
- "userName": {
- "type": "string",
- "description": "user name associated with this token"
- },
- "userUID": {
- "type": "string",
- "description": "unique UID associated with this token"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.openshift.api.model.OAuthAccessToken",
- "javaInterfaces": [
- "io.fabric8.kubernetes.api.model.HasMetadata"
- ]
- },
- "os_oauth_OAuthAccessTokenList": {
- "type": "object",
- "description": "",
- "properties": {
- "apiVersion": {
- "type": "string",
- "description": "",
- "default": "v1",
- "required": true,
- "enum": [
- "v1"
- ]
- },
- "items": {
- "type": "array",
- "description": "list of oauth access tokens",
- "items": {
- "$ref": "#/definitions/os_oauth_OAuthAccessToken",
- "javaType": "io.fabric8.openshift.api.model.OAuthAccessToken"
- }
- },
- "kind": {
- "type": "string",
- "description": "",
- "default": "OAuthAccessTokenList",
- "required": true
- },
- "metadata": {
- "$ref": "#/definitions/kubernetes_ListMeta",
- "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.openshift.api.model.OAuthAccessTokenList",
- "javaInterfaces": [
- "io.fabric8.kubernetes.api.model.KubernetesResource"
- ]
- },
- "os_oauth_OAuthAuthorizeToken": {
- "type": "object",
- "description": "",
- "properties": {
- "apiVersion": {
- "type": "string",
- "description": "",
- "default": "v1",
- "required": true,
- "enum": [
- "v1"
- ]
- },
- "clientName": {
- "type": "string",
- "description": "references the client that created this token"
- },
- "expiresIn": {
- "type": "integer",
- "description": "seconds from creation time before this token expires",
- "javaType": "Long"
- },
- "kind": {
- "type": "string",
- "description": "",
- "default": "OAuthAuthorizeToken",
- "required": true
- },
- "metadata": {
- "$ref": "#/definitions/kubernetes_ObjectMeta",
- "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
- },
- "redirectURI": {
- "type": "string",
- "description": "redirection URI associated with the token"
- },
- "scopes": {
- "type": "array",
- "description": "list of requested scopes",
- "items": {
- "type": "string",
- "description": "list of requested scopes"
- }
- },
- "state": {
- "type": "string",
- "description": "state data from request"
- },
- "userName": {
- "type": "string",
- "description": "user name associated with this token"
- },
- "userUID": {
- "type": "string",
- "description": "unique UID associated with this token. userUID and userName must both match for this token to be valid"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.openshift.api.model.OAuthAuthorizeToken",
- "javaInterfaces": [
- "io.fabric8.kubernetes.api.model.HasMetadata"
- ]
- },
- "os_oauth_OAuthAuthorizeTokenList": {
- "type": "object",
- "description": "",
- "properties": {
- "apiVersion": {
- "type": "string",
- "description": "",
- "default": "v1",
- "required": true,
- "enum": [
- "v1"
- ]
- },
- "items": {
- "type": "array",
- "description": "list of oauth authorization tokens",
- "items": {
- "$ref": "#/definitions/os_oauth_OAuthAuthorizeToken",
- "javaType": "io.fabric8.openshift.api.model.OAuthAuthorizeToken"
- }
- },
- "kind": {
- "type": "string",
- "description": "",
- "default": "OAuthAuthorizeTokenList",
- "required": true
- },
- "metadata": {
- "$ref": "#/definitions/kubernetes_ListMeta",
- "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.openshift.api.model.OAuthAuthorizeTokenList",
- "javaInterfaces": [
- "io.fabric8.kubernetes.api.model.KubernetesResource"
- ]
- },
- "os_oauth_OAuthClient": {
- "type": "object",
- "description": "",
- "properties": {
- "apiVersion": {
- "type": "string",
- "description": "",
- "default": "v1",
- "required": true,
- "enum": [
- "v1"
- ]
- },
- "kind": {
- "type": "string",
- "description": "",
- "default": "OAuthClient",
- "required": true
- },
- "metadata": {
- "$ref": "#/definitions/kubernetes_ObjectMeta",
- "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
- },
- "redirectURIs": {
- "type": "array",
- "description": "valid redirection URIs associated with a client",
- "items": {
- "type": "string",
- "description": "valid redirection URIs associated with a client"
- }
- },
- "respondWithChallenges": {
- "type": "boolean",
- "description": "indicates whether the client wants authentication needed responses made in the form of challenges instead of redirects"
- },
- "secret": {
- "type": "string",
- "description": "unique secret associated with a client"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.openshift.api.model.OAuthClient",
- "javaInterfaces": [
- "io.fabric8.kubernetes.api.model.HasMetadata"
- ]
- },
- "os_oauth_OAuthClientAuthorization": {
- "type": "object",
- "description": "",
- "properties": {
- "apiVersion": {
- "type": "string",
- "description": "",
- "default": "v1",
- "required": true,
- "enum": [
- "v1"
- ]
- },
- "clientName": {
- "type": "string",
- "description": "references the client that created this authorization"
- },
- "kind": {
- "type": "string",
- "description": "",
- "default": "OAuthClientAuthorization",
- "required": true
- },
- "metadata": {
- "$ref": "#/definitions/kubernetes_ObjectMeta",
- "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
- },
- "scopes": {
- "type": "array",
- "description": "list of granted scopes",
- "items": {
- "type": "string",
- "description": "list of granted scopes"
- }
- },
- "userName": {
- "type": "string",
- "description": "user name that authorized this client"
- },
- "userUID": {
- "type": "string",
- "description": "unique UID associated with this authorization. userUID and userName must both match for this authorization to be valid"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.openshift.api.model.OAuthClientAuthorization",
- "javaInterfaces": [
- "io.fabric8.kubernetes.api.model.HasMetadata"
- ]
- },
- "os_oauth_OAuthClientAuthorizationList": {
- "type": "object",
- "description": "",
- "properties": {
- "apiVersion": {
- "type": "string",
- "description": "",
- "default": "v1",
- "required": true,
- "enum": [
- "v1"
- ]
- },
- "items": {
- "type": "array",
- "description": "list of oauth client authorizations",
- "items": {
- "$ref": "#/definitions/os_oauth_OAuthClientAuthorization",
- "javaType": "io.fabric8.openshift.api.model.OAuthClientAuthorization"
- }
- },
- "kind": {
- "type": "string",
- "description": "",
- "default": "OAuthClientAuthorizationList",
- "required": true
- },
- "metadata": {
- "$ref": "#/definitions/kubernetes_ListMeta",
- "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.openshift.api.model.OAuthClientAuthorizationList",
- "javaInterfaces": [
- "io.fabric8.kubernetes.api.model.KubernetesResource"
- ]
- },
- "os_oauth_OAuthClientList": {
- "type": "object",
- "description": "",
- "properties": {
- "apiVersion": {
- "type": "string",
- "description": "",
- "default": "v1",
- "required": true,
- "enum": [
- "v1"
- ]
- },
- "items": {
- "type": "array",
- "description": "list of oauth clients",
- "items": {
- "$ref": "#/definitions/os_oauth_OAuthClient",
- "javaType": "io.fabric8.openshift.api.model.OAuthClient"
- }
- },
- "kind": {
- "type": "string",
- "description": "",
- "default": "OAuthClientList",
- "required": true
- },
- "metadata": {
- "$ref": "#/definitions/kubernetes_ListMeta",
- "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.openshift.api.model.OAuthClientList",
- "javaInterfaces": [
- "io.fabric8.kubernetes.api.model.KubernetesResource"
- ]
- },
- "os_route_Route": {
- "type": "object",
- "description": "",
- "properties": {
- "apiVersion": {
- "type": "string",
- "description": "",
- "default": "v1",
- "required": true,
- "enum": [
- "v1"
- ]
- },
- "kind": {
- "type": "string",
- "description": "",
- "default": "Route",
- "required": true
- },
- "metadata": {
- "$ref": "#/definitions/kubernetes_ObjectMeta",
- "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
- },
- "spec": {
- "$ref": "#/definitions/os_route_RouteSpec",
- "javaType": "io.fabric8.openshift.api.model.RouteSpec"
- },
- "status": {
- "$ref": "#/definitions/os_route_RouteStatus",
- "javaType": "io.fabric8.openshift.api.model.RouteStatus"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.openshift.api.model.Route",
- "javaInterfaces": [
- "io.fabric8.kubernetes.api.model.HasMetadata"
- ]
- },
- "os_route_RouteList": {
- "type": "object",
- "description": "",
- "properties": {
- "apiVersion": {
- "type": "string",
- "description": "",
- "default": "v1",
- "required": true,
- "enum": [
- "v1"
- ]
- },
- "items": {
- "type": "array",
- "description": "list of routes",
- "items": {
- "$ref": "#/definitions/os_route_Route",
- "javaType": "io.fabric8.openshift.api.model.Route"
- }
- },
- "kind": {
- "type": "string",
- "description": "",
- "default": "RouteList",
- "required": true
- },
- "metadata": {
- "$ref": "#/definitions/kubernetes_ListMeta",
- "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.openshift.api.model.RouteList",
- "javaInterfaces": [
- "io.fabric8.kubernetes.api.model.KubernetesResource"
- ]
- },
- "os_route_RouteSpec": {
- "type": "object",
- "description": "",
- "properties": {
- "host": {
- "type": "string",
- "description": "optional: alias/dns that points to the service"
- },
- "path": {
- "type": "string",
- "description": "optional: path that the router watches to route traffic to the service"
- },
- "tls": {
- "$ref": "#/definitions/os_route_TLSConfig",
- "javaType": "io.fabric8.openshift.api.model.TLSConfig"
- },
- "to": {
- "$ref": "#/definitions/kubernetes_ObjectReference",
- "javaType": "io.fabric8.kubernetes.api.model.ObjectReference"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.openshift.api.model.RouteSpec"
- },
- "os_route_RouteStatus": {
- "type": "object",
- "description": "",
- "additionalProperties": true,
- "javaType": "io.fabric8.openshift.api.model.RouteStatus"
- },
- "os_route_TLSConfig": {
- "type": "object",
- "description": "",
- "properties": {
- "caCertificate": {
- "type": "string",
- "description": "provides the cert authority certificate contents"
- },
- "certificate": {
- "type": "string",
- "description": "provides certificate contents"
- },
- "destinationCACertificate": {
- "type": "string",
- "description": "provides the contents of the ca certificate of the final destination. When using re-encrypt termination this file should be provided in order to have routers use it for health checks on the secure connection"
- },
- "key": {
- "type": "string",
- "description": "provides key file contents"
- },
- "termination": {
- "type": "string",
- "description": "indicates termination type. if not set"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.openshift.api.model.TLSConfig"
- },
- "os_template_Parameter": {
- "type": "object",
- "description": "",
- "properties": {
- "description": {
- "type": "string",
- "description": "optional: describes the parameter"
- },
- "from": {
- "type": "string",
- "description": "input value for the generator"
- },
- "generate": {
- "type": "string",
- "description": "optional: generate specifies the generator to be used to generate random string from an input value specified by the from field. the result string is stored in the value field. if not specified"
- },
- "name": {
- "type": "string",
- "description": "name of the parameter"
- },
- "value": {
- "type": "string",
- "description": "optional: holds the parameter data. if specified"
- }
- },
- "additionalProperties": true,
- "javaType": "io.fabric8.openshift.api.model.template.Parameter"
- },
- "os_template_Template": {
- "type": "object",
- "description": "",
- "properties": {
- "apiVersion": {
- "type": "string",
- "description": "",
- "default": "v1",
- "required": true,
- "enum": [
- "v1"
- ]
- },
- "kind": {
- "type": "string",
- "description": "",
- "default": "Template",
- "required": true
- },
- "labels": {
- "type": "object",
- "description": "optional: list of lables that are applied to every object during the template to config transformation",
- "additionalProperties": {
- "type": "string",
- "description": "optional: list of lables that are applied to every object during the template to config transformation"
+ "spec": {
+ "$ref": "#/definitions/os_deploy_DeploymentConfigSpec",
+ "javaType": "io.fabric8.openshift.api.model.DeploymentConfigSpec"
},
- "javaType": "java.util.Map\u003cString,String\u003e"
+ "status": {
+ "$ref": "#/definitions/os_deploy_DeploymentConfigStatus",
+ "javaType": "io.fabric8.openshift.api.model.DeploymentConfigStatus"
+ }
},
- "metadata": {
- "$ref": "#/definitions/kubernetes_ObjectMeta",
- "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
- },
- "objects": {
- "type": "array",
- "description": "list of objects to include in the template",
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.DeploymentConfig",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.HasMetadata"
+ ]
+ },
+ "os_deploy_DeploymentConfigList": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
"items": {
+ "type": "array",
+ "description": "a list of deployment configs",
+ "items": {
+ "$ref": "#/definitions/os_deploy_DeploymentConfig",
+ "javaType": "io.fabric8.openshift.api.model.DeploymentConfig"
+ }
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "DeploymentConfigList",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ListMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.DeploymentConfigList",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.KubernetesResource",
+ "io.fabric8.kubernetes.api.model.KubernetesResourceList"
+ ]
+ },
+ "os_deploy_DeploymentConfigSpec": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "replicas": {
+ "type": "integer",
+ "description": "the desired number of replicas"
+ },
+ "selector": {
+ "type": "object",
+ "description": "a label query over pods that should match the replicas count",
+ "additionalProperties": {
+ "type": "string",
+ "description": "a label query over pods that should match the replicas count"
+ },
+ "javaType": "java.util.Map\u003cString,String\u003e"
+ },
+ "strategy": {
+ "$ref": "#/definitions/os_deploy_DeploymentStrategy",
+ "javaType": "io.fabric8.openshift.api.model.DeploymentStrategy"
+ },
+ "template": {
+ "$ref": "#/definitions/kubernetes_PodTemplateSpec",
+ "javaType": "io.fabric8.kubernetes.api.model.PodTemplateSpec"
+ },
+ "triggers": {
+ "type": "array",
+ "description": "how new deployments are triggered",
+ "items": {
+ "$ref": "#/definitions/os_deploy_DeploymentTriggerPolicy",
+ "javaType": "io.fabric8.openshift.api.model.DeploymentTriggerPolicy"
+ }
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.DeploymentConfigSpec"
+ },
+ "os_deploy_DeploymentConfigStatus": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "details": {
+ "$ref": "#/definitions/os_deploy_DeploymentDetails",
+ "javaType": "io.fabric8.openshift.api.model.DeploymentDetails"
+ },
+ "latestVersion": {
+ "type": "integer",
+ "description": "used to determine whether the current deployment is out of sync"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.DeploymentConfigStatus"
+ },
+ "os_deploy_DeploymentDetails": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "causes": {
+ "type": "array",
+ "description": "extended data associated with all the causes for creating a new deployment",
+ "items": {
+ "$ref": "#/definitions/os_deploy_DeploymentCause",
+ "javaType": "io.fabric8.openshift.api.model.DeploymentCause"
+ }
+ },
+ "message": {
+ "type": "string",
+ "description": "a user specified change message"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.DeploymentDetails"
+ },
+ "os_deploy_DeploymentStrategy": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "customParams": {
+ "$ref": "#/definitions/os_deploy_CustomDeploymentStrategyParams",
+ "javaType": "io.fabric8.openshift.api.model.CustomDeploymentStrategyParams"
+ },
+ "recreateParams": {
+ "$ref": "#/definitions/os_deploy_RecreateDeploymentStrategyParams",
+ "javaType": "io.fabric8.openshift.api.model.RecreateDeploymentStrategyParams"
+ },
+ "resources": {
+ "$ref": "#/definitions/kubernetes_ResourceRequirements",
+ "javaType": "io.fabric8.kubernetes.api.model.ResourceRequirements"
+ },
+ "rollingParams": {
+ "$ref": "#/definitions/os_deploy_RollingDeploymentStrategyParams",
+ "javaType": "io.fabric8.openshift.api.model.RollingDeploymentStrategyParams"
+ },
+ "type": {
+ "type": "string",
+ "description": "the name of a deployment strategy"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.DeploymentStrategy"
+ },
+ "os_deploy_DeploymentTriggerImageChangeParams": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "automatic": {
+ "type": "boolean",
+ "description": "whether detection of a new tag value should trigger a deployment"
+ },
+ "containerNames": {
+ "type": "array",
+ "description": "restricts tag updates to a set of container names in the pod",
+ "items": {
+ "type": "string",
+ "description": "restricts tag updates to a set of container names in the pod"
+ }
+ },
+ "from": {
+ "$ref": "#/definitions/kubernetes_ObjectReference",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectReference"
+ },
+ "lastTriggeredImage": {
+ "type": "string",
+ "description": "the last image to be triggered"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.DeploymentTriggerImageChangeParams"
+ },
+ "os_deploy_DeploymentTriggerPolicy": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "imageChangeParams": {
+ "$ref": "#/definitions/os_deploy_DeploymentTriggerImageChangeParams",
+ "javaType": "io.fabric8.openshift.api.model.DeploymentTriggerImageChangeParams"
+ },
+ "type": {
+ "type": "string",
+ "description": "the type of the trigger"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.DeploymentTriggerPolicy"
+ },
+ "os_deploy_ExecNewPodHook": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "command": {
+ "type": "array",
+ "description": "the hook command and its arguments",
+ "items": {
+ "type": "string",
+ "description": "the hook command and its arguments"
+ }
+ },
+ "containerName": {
+ "type": "string",
+ "description": "the name of a container from the pod template whose image will be used for the hook container"
+ },
+ "env": {
+ "type": "array",
+ "description": "environment variables provided to the hook container",
+ "items": {
+ "$ref": "#/definitions/kubernetes_EnvVar",
+ "javaType": "io.fabric8.kubernetes.api.model.EnvVar"
+ }
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.ExecNewPodHook"
+ },
+ "os_deploy_LifecycleHook": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "execNewPod": {
+ "$ref": "#/definitions/os_deploy_ExecNewPodHook",
+ "javaType": "io.fabric8.openshift.api.model.ExecNewPodHook"
+ },
+ "failurePolicy": {
+ "type": "string",
+ "description": "what action to take if the hook fails"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.LifecycleHook"
+ },
+ "os_deploy_RecreateDeploymentStrategyParams": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "post": {
+ "$ref": "#/definitions/os_deploy_LifecycleHook",
+ "javaType": "io.fabric8.openshift.api.model.LifecycleHook"
+ },
+ "pre": {
+ "$ref": "#/definitions/os_deploy_LifecycleHook",
+ "javaType": "io.fabric8.openshift.api.model.LifecycleHook"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.RecreateDeploymentStrategyParams"
+ },
+ "os_deploy_RollingDeploymentStrategyParams": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "intervalSeconds": {
+ "type": "integer",
+ "description": "the time to wait between polling deployment status after update",
+ "javaType": "Long"
+ },
+ "post": {
+ "$ref": "#/definitions/os_deploy_LifecycleHook",
+ "javaType": "io.fabric8.openshift.api.model.LifecycleHook"
+ },
+ "pre": {
+ "$ref": "#/definitions/os_deploy_LifecycleHook",
+ "javaType": "io.fabric8.openshift.api.model.LifecycleHook"
+ },
+ "timeoutSeconds": {
+ "type": "integer",
+ "description": "the time to wait for updates before giving up",
+ "javaType": "Long"
+ },
+ "updatePercent": {
+ "type": "integer",
+ "description": "the percentage of replicas to scale up or down each interval (negative value switches scale order to down/up instead of up/down)"
+ },
+ "updatePeriodSeconds": {
+ "type": "integer",
+ "description": "the time to wait between individual pod updates",
+ "javaType": "Long"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.RollingDeploymentStrategyParams"
+ },
+ "os_image_Image": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "dockerImageManifest": {
+ "type": "string",
+ "description": "raw JSON of the manifest"
+ },
+ "dockerImageMetadata": {
"$ref": "#/definitions/kubernetes_runtime_RawExtension",
"javaType": "io.fabric8.kubernetes.api.model.HasMetadata"
+ },
+ "dockerImageMetadataVersion": {
+ "type": "string",
+ "description": "conveys version of the object"
+ },
+ "dockerImageReference": {
+ "type": "string",
+ "description": "string that can be used to pull this image"
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "Image",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ObjectMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
}
},
- "parameters": {
- "type": "array",
- "description": "optional: list of parameters used during template to config transformation",
- "items": {
- "$ref": "#/definitions/os_template_Parameter",
- "javaType": "io.fabric8.openshift.api.model.template.Parameter"
- }
- }
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.Image",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.HasMetadata"
+ ]
},
- "additionalProperties": true,
- "javaType": "io.fabric8.openshift.api.model.template.Template",
- "javaInterfaces": [
- "io.fabric8.kubernetes.api.model.HasMetadata"
- ]
- },
- "os_template_TemplateList": {
- "type": "object",
- "description": "",
- "properties": {
- "apiVersion": {
- "type": "string",
- "description": "",
- "default": "v1",
- "required": true,
- "enum": [
- "v1"
- ]
- },
- "items": {
- "type": "array",
- "description": "list of templates",
+ "os_image_ImageList": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
"items": {
- "$ref": "#/definitions/os_template_Template",
- "javaType": "io.fabric8.openshift.api.model.template.Template"
+ "type": "array",
+ "description": "list of image objects",
+ "items": {
+ "$ref": "#/definitions/os_image_Image",
+ "javaType": "io.fabric8.openshift.api.model.Image"
+ }
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "ImageList",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ListMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
}
},
- "kind": {
- "type": "string",
- "description": "",
- "default": "TemplateList",
- "required": true
- },
- "metadata": {
- "$ref": "#/definitions/kubernetes_ListMeta",
- "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
- }
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.ImageList",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.KubernetesResource",
+ "io.fabric8.kubernetes.api.model.KubernetesResourceList"
+ ]
},
- "additionalProperties": true,
- "javaType": "io.fabric8.openshift.api.model.template.TemplateList",
- "javaInterfaces": [
- "io.fabric8.kubernetes.api.model.KubernetesResource"
- ]
+ "os_image_ImageStream": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "ImageStream",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ObjectMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
+ },
+ "spec": {
+ "$ref": "#/definitions/os_image_ImageStreamSpec",
+ "javaType": "io.fabric8.openshift.api.model.ImageStreamSpec"
+ },
+ "status": {
+ "$ref": "#/definitions/os_image_ImageStreamStatus",
+ "javaType": "io.fabric8.openshift.api.model.ImageStreamStatus"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.ImageStream",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.HasMetadata"
+ ]
+ },
+ "os_image_ImageStreamList": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "items": {
+ "type": "array",
+ "description": "list of image stream objects",
+ "items": {
+ "$ref": "#/definitions/os_image_ImageStream",
+ "javaType": "io.fabric8.openshift.api.model.ImageStream"
+ }
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "ImageStreamList",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ListMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.ImageStreamList",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.KubernetesResource",
+ "io.fabric8.kubernetes.api.model.KubernetesResourceList"
+ ]
+ },
+ "os_image_ImageStreamSpec": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "dockerImageRepository": {
+ "type": "string",
+ "description": "optional field if specified this stream is backed by a Docker repository on this server"
+ },
+ "tags": {
+ "type": "array",
+ "description": "map arbitrary string values to specific image locators",
+ "items": {
+ "$ref": "#/definitions/os_image_NamedTagReference",
+ "javaType": "io.fabric8.openshift.api.model.NamedTagReference"
+ }
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.ImageStreamSpec"
+ },
+ "os_image_ImageStreamStatus": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "dockerImageRepository": {
+ "type": "string",
+ "description": "represents the effective location this stream may be accessed at"
+ },
+ "tags": {
+ "type": "array",
+ "description": "historical record of images associated with each tag",
+ "items": {
+ "$ref": "#/definitions/os_image_NamedTagEventList",
+ "javaType": "io.fabric8.openshift.api.model.NamedTagEventList"
+ }
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.ImageStreamStatus"
+ },
+ "os_image_NamedTagEventList": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "items": {
+ "type": "array",
+ "description": "list of tag events related to the tag",
+ "items": {
+ "$ref": "#/definitions/os_image_TagEvent",
+ "javaType": "io.fabric8.openshift.api.model.TagEvent"
+ }
+ },
+ "tag": {
+ "type": "string",
+ "description": "the tag"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.NamedTagEventList"
+ },
+ "os_image_NamedTagReference": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "annotations": {
+ "type": "object",
+ "description": "annotations associated with images using this tag",
+ "additionalProperties": {
+ "type": "string",
+ "description": "annotations associated with images using this tag"
+ },
+ "javaType": "java.util.Map\u003cString,String\u003e"
+ },
+ "from": {
+ "$ref": "#/definitions/kubernetes_ObjectReference",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectReference"
+ },
+ "name": {
+ "type": "string",
+ "description": "name of tag"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.NamedTagReference"
+ },
+ "os_image_TagEvent": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "created": {
+ "type": "string",
+ "description": "when the event was created"
+ },
+ "dockerImageReference": {
+ "type": "string",
+ "description": "the string that can be used to pull this image"
+ },
+ "image": {
+ "type": "string",
+ "description": "the image"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.TagEvent"
+ },
+ "os_oauth_OAuthAccessToken": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "authorizeToken": {
+ "type": "string",
+ "description": "contains the token that authorized this token"
+ },
+ "clientName": {
+ "type": "string",
+ "description": "references the client that created this token"
+ },
+ "expiresIn": {
+ "type": "integer",
+ "description": "is the seconds from creation time before this token expires",
+ "javaType": "Long"
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "OAuthAccessToken",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ObjectMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
+ },
+ "redirectURI": {
+ "type": "string",
+ "description": "redirection URI associated with the token"
+ },
+ "refreshToken": {
+ "type": "string",
+ "description": "optional value by which this token can be renewed"
+ },
+ "scopes": {
+ "type": "array",
+ "description": "list of requested scopes",
+ "items": {
+ "type": "string",
+ "description": "list of requested scopes"
+ }
+ },
+ "userName": {
+ "type": "string",
+ "description": "user name associated with this token"
+ },
+ "userUID": {
+ "type": "string",
+ "description": "unique UID associated with this token"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.OAuthAccessToken",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.HasMetadata"
+ ]
+ },
+ "os_oauth_OAuthAccessTokenList": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "items": {
+ "type": "array",
+ "description": "list of oauth access tokens",
+ "items": {
+ "$ref": "#/definitions/os_oauth_OAuthAccessToken",
+ "javaType": "io.fabric8.openshift.api.model.OAuthAccessToken"
+ }
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "OAuthAccessTokenList",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ListMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.OAuthAccessTokenList",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.KubernetesResource",
+ "io.fabric8.kubernetes.api.model.KubernetesResourceList"
+ ]
+ },
+ "os_oauth_OAuthAuthorizeToken": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "clientName": {
+ "type": "string",
+ "description": "references the client that created this token"
+ },
+ "expiresIn": {
+ "type": "integer",
+ "description": "seconds from creation time before this token expires",
+ "javaType": "Long"
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "OAuthAuthorizeToken",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ObjectMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
+ },
+ "redirectURI": {
+ "type": "string",
+ "description": "redirection URI associated with the token"
+ },
+ "scopes": {
+ "type": "array",
+ "description": "list of requested scopes",
+ "items": {
+ "type": "string",
+ "description": "list of requested scopes"
+ }
+ },
+ "state": {
+ "type": "string",
+ "description": "state data from request"
+ },
+ "userName": {
+ "type": "string",
+ "description": "user name associated with this token"
+ },
+ "userUID": {
+ "type": "string",
+ "description": "unique UID associated with this token. userUID and userName must both match for this token to be valid"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.OAuthAuthorizeToken",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.HasMetadata"
+ ]
+ },
+ "os_oauth_OAuthAuthorizeTokenList": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "items": {
+ "type": "array",
+ "description": "list of oauth authorization tokens",
+ "items": {
+ "$ref": "#/definitions/os_oauth_OAuthAuthorizeToken",
+ "javaType": "io.fabric8.openshift.api.model.OAuthAuthorizeToken"
+ }
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "OAuthAuthorizeTokenList",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ListMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.OAuthAuthorizeTokenList",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.KubernetesResource",
+ "io.fabric8.kubernetes.api.model.KubernetesResourceList"
+ ]
+ },
+ "os_oauth_OAuthClient": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "OAuthClient",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ObjectMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
+ },
+ "redirectURIs": {
+ "type": "array",
+ "description": "valid redirection URIs associated with a client",
+ "items": {
+ "type": "string",
+ "description": "valid redirection URIs associated with a client"
+ }
+ },
+ "respondWithChallenges": {
+ "type": "boolean",
+ "description": "indicates whether the client wants authentication needed responses made in the form of challenges instead of redirects"
+ },
+ "secret": {
+ "type": "string",
+ "description": "unique secret associated with a client"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.OAuthClient",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.HasMetadata"
+ ]
+ },
+ "os_oauth_OAuthClientAuthorization": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "clientName": {
+ "type": "string",
+ "description": "references the client that created this authorization"
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "OAuthClientAuthorization",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ObjectMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
+ },
+ "scopes": {
+ "type": "array",
+ "description": "list of granted scopes",
+ "items": {
+ "type": "string",
+ "description": "list of granted scopes"
+ }
+ },
+ "userName": {
+ "type": "string",
+ "description": "user name that authorized this client"
+ },
+ "userUID": {
+ "type": "string",
+ "description": "unique UID associated with this authorization. userUID and userName must both match for this authorization to be valid"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.OAuthClientAuthorization",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.HasMetadata"
+ ]
+ },
+ "os_oauth_OAuthClientAuthorizationList": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "items": {
+ "type": "array",
+ "description": "list of oauth client authorizations",
+ "items": {
+ "$ref": "#/definitions/os_oauth_OAuthClientAuthorization",
+ "javaType": "io.fabric8.openshift.api.model.OAuthClientAuthorization"
+ }
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "OAuthClientAuthorizationList",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ListMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.OAuthClientAuthorizationList",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.KubernetesResource",
+ "io.fabric8.kubernetes.api.model.KubernetesResourceList"
+ ]
+ },
+ "os_oauth_OAuthClientList": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "items": {
+ "type": "array",
+ "description": "list of oauth clients",
+ "items": {
+ "$ref": "#/definitions/os_oauth_OAuthClient",
+ "javaType": "io.fabric8.openshift.api.model.OAuthClient"
+ }
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "OAuthClientList",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ListMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.OAuthClientList",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.KubernetesResource",
+ "io.fabric8.kubernetes.api.model.KubernetesResourceList"
+ ]
+ },
+ "os_project_Project": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "Project",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ObjectMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
+ },
+ "spec": {
+ "$ref": "#/definitions/os_project_ProjectSpec",
+ "javaType": "io.fabric8.openshift.api.model.ProjectSpec"
+ },
+ "status": {
+ "$ref": "#/definitions/os_project_ProjectStatus",
+ "javaType": "io.fabric8.openshift.api.model.ProjectStatus"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.Project",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.HasMetadata"
+ ]
+ },
+ "os_project_ProjectList": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "items": {
+ "type": "array",
+ "description": "list of projects",
+ "items": {
+ "$ref": "#/definitions/os_project_Project",
+ "javaType": "io.fabric8.openshift.api.model.Project"
+ }
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "ProjectList",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ListMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.ProjectList",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.KubernetesResource",
+ "io.fabric8.kubernetes.api.model.KubernetesResourceList"
+ ]
+ },
+ "os_project_ProjectRequest": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "description": {
+ "type": "string",
+ "description": "description to apply to a project"
+ },
+ "displayName": {
+ "type": "string",
+ "description": "display name to apply to a project"
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "ProjectRequest",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ObjectMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.ProjectRequest",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.HasMetadata"
+ ]
+ },
+ "os_project_ProjectSpec": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "finalizers": {
+ "type": "array",
+ "description": "an opaque list of values that must be empty to permanently remove object from storage",
+ "items": {
+ "type": "string",
+ "description": "an opaque list of values that must be empty to permanently remove object from storage"
+ }
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.ProjectSpec"
+ },
+ "os_project_ProjectStatus": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "phase": {
+ "type": "string",
+ "description": "phase is the current lifecycle phase of the project"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.ProjectStatus"
+ },
+ "os_route_Route": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "Route",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ObjectMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
+ },
+ "spec": {
+ "$ref": "#/definitions/os_route_RouteSpec",
+ "javaType": "io.fabric8.openshift.api.model.RouteSpec"
+ },
+ "status": {
+ "$ref": "#/definitions/os_route_RouteStatus",
+ "javaType": "io.fabric8.openshift.api.model.RouteStatus"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.Route",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.HasMetadata"
+ ]
+ },
+ "os_route_RouteList": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "items": {
+ "type": "array",
+ "description": "list of routes",
+ "items": {
+ "$ref": "#/definitions/os_route_Route",
+ "javaType": "io.fabric8.openshift.api.model.Route"
+ }
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "RouteList",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ListMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.RouteList",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.KubernetesResource",
+ "io.fabric8.kubernetes.api.model.KubernetesResourceList"
+ ]
+ },
+ "os_route_RouteSpec": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "host": {
+ "type": "string",
+ "description": "optional: alias/dns that points to the service"
+ },
+ "path": {
+ "type": "string",
+ "description": "optional: path that the router watches to route traffic to the service"
+ },
+ "tls": {
+ "$ref": "#/definitions/os_route_TLSConfig",
+ "javaType": "io.fabric8.openshift.api.model.TLSConfig"
+ },
+ "to": {
+ "$ref": "#/definitions/kubernetes_ObjectReference",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectReference"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.RouteSpec"
+ },
+ "os_route_RouteStatus": {
+ "type": "object",
+ "description": "",
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.RouteStatus"
+ },
+ "os_route_TLSConfig": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "caCertificate": {
+ "type": "string",
+ "description": "provides the cert authority certificate contents"
+ },
+ "certificate": {
+ "type": "string",
+ "description": "provides certificate contents"
+ },
+ "destinationCACertificate": {
+ "type": "string",
+ "description": "provides the contents of the ca certificate of the final destination. When using re-encrypt termination this file should be provided in order to have routers use it for health checks on the secure connection"
+ },
+ "key": {
+ "type": "string",
+ "description": "provides key file contents"
+ },
+ "termination": {
+ "type": "string",
+ "description": "indicates termination type. if not set"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.TLSConfig"
+ },
+ "os_template_Parameter": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "description": {
+ "type": "string",
+ "description": "optional: describes the parameter"
+ },
+ "from": {
+ "type": "string",
+ "description": "input value for the generator"
+ },
+ "generate": {
+ "type": "string",
+ "description": "optional: generate specifies the generator to be used to generate random string from an input value specified by the from field. the result string is stored in the value field. if not specified"
+ },
+ "name": {
+ "type": "string",
+ "description": "name of the parameter"
+ },
+ "required": {
+ "type": "boolean",
+ "description": "indicates the parameter must have a non-empty value or be generated"
+ },
+ "value": {
+ "type": "string",
+ "description": "optional: holds the parameter data. if specified"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.Parameter"
+ },
+ "os_template_Template": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "Template",
+ "required": true
+ },
+ "labels": {
+ "type": "object",
+ "description": "optional: list of lables that are applied to every object during the template to config transformation",
+ "additionalProperties": {
+ "type": "string",
+ "description": "optional: list of lables that are applied to every object during the template to config transformation"
+ },
+ "javaType": "java.util.Map\u003cString,String\u003e"
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ObjectMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
+ },
+ "objects": {
+ "type": "array",
+ "description": "list of objects to include in the template",
+ "items": {
+ "$ref": "#/definitions/kubernetes_runtime_RawExtension",
+ "javaType": "io.fabric8.kubernetes.api.model.HasMetadata"
+ }
+ },
+ "parameters": {
+ "type": "array",
+ "description": "optional: list of parameters used during template to config transformation",
+ "items": {
+ "$ref": "#/definitions/os_template_Parameter",
+ "javaType": "io.fabric8.openshift.api.model.Parameter"
+ }
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.Template",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.HasMetadata"
+ ]
+ },
+ "os_template_TemplateList": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "items": {
+ "type": "array",
+ "description": "list of templates",
+ "items": {
+ "$ref": "#/definitions/os_template_Template",
+ "javaType": "io.fabric8.openshift.api.model.Template"
+ }
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "TemplateList",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ListMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.TemplateList",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.KubernetesResource",
+ "io.fabric8.kubernetes.api.model.KubernetesResourceList"
+ ]
+ },
+ "os_user_Group": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "Group",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ObjectMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
+ },
+ "users": {
+ "type": "array",
+ "description": "list of users in this group",
+ "items": {
+ "type": "string",
+ "description": "list of users in this group"
+ }
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.Group",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.HasMetadata"
+ ]
+ },
+ "os_user_GroupList": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "items": {
+ "type": "array",
+ "description": "list of groups",
+ "items": {
+ "$ref": "#/definitions/os_user_Group",
+ "javaType": "io.fabric8.openshift.api.model.Group"
+ }
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "GroupList",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ListMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.GroupList",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.KubernetesResource",
+ "io.fabric8.kubernetes.api.model.KubernetesResourceList"
+ ]
+ },
+ "os_user_Identity": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "extra": {
+ "type": "object",
+ "description": "extra information for this identity",
+ "additionalProperties": {
+ "type": "string",
+ "description": "extra information for this identity"
+ },
+ "javaType": "java.util.Map\u003cString,String\u003e"
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "Identity",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ObjectMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
+ },
+ "providerName": {
+ "type": "string",
+ "description": "source of identity information"
+ },
+ "providerUserName": {
+ "type": "string",
+ "description": "uniquely represents this identity in the scope of the provider"
+ },
+ "user": {
+ "$ref": "#/definitions/kubernetes_ObjectReference",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectReference"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.Identity",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.HasMetadata"
+ ]
+ },
+ "os_user_IdentityList": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "items": {
+ "type": "array",
+ "description": "list of identities",
+ "items": {
+ "$ref": "#/definitions/os_user_Identity",
+ "javaType": "io.fabric8.openshift.api.model.Identity"
+ }
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "IdentityList",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ListMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.IdentityList",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.KubernetesResource",
+ "io.fabric8.kubernetes.api.model.KubernetesResourceList"
+ ]
+ },
+ "os_user_User": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "fullName": {
+ "type": "string",
+ "description": "full name of user"
+ },
+ "groups": {
+ "type": "array",
+ "description": "list of groups",
+ "items": {
+ "type": "string",
+ "description": "list of groups"
+ }
+ },
+ "identities": {
+ "type": "array",
+ "description": "list of identities",
+ "items": {
+ "type": "string",
+ "description": "list of identities"
+ }
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "User",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ObjectMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.User",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.HasMetadata"
+ ]
+ },
+ "os_user_UserList": {
+ "type": "object",
+ "description": "",
+ "properties": {
+ "apiVersion": {
+ "type": "string",
+ "description": "",
+ "default": "v1",
+ "required": true,
+ "enum": [
+ "v1"
+ ]
+ },
+ "items": {
+ "type": "array",
+ "description": "list of users",
+ "items": {
+ "$ref": "#/definitions/os_user_User",
+ "javaType": "io.fabric8.openshift.api.model.User"
+ }
+ },
+ "kind": {
+ "type": "string",
+ "description": "",
+ "default": "UserList",
+ "required": true
+ },
+ "metadata": {
+ "$ref": "#/definitions/kubernetes_ListMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ListMeta"
+ }
+ },
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.UserList",
+ "javaInterfaces": [
+ "io.fabric8.kubernetes.api.model.KubernetesResource",
+ "io.fabric8.kubernetes.api.model.KubernetesResourceList"
+ ]
+ },
+ "speter_inf_Dec": {
+ "type": "object",
+ "description": "",
+ "additionalProperties": true,
+ "javaType": "io.fabric8.openshift.api.model.Dec"
+ }
},
- "speter_inf_Dec": {
- "type": "object",
- "description": "",
- "additionalProperties": true,
- "javaType": "io.fabric8.openshift.client.util.Dec"
- }
- },
- "type": "object",
- "properties": {
- "BaseKubernetesList": {
- "$ref": "#/definitions/kubernetes_List",
- "javaType": "io.fabric8.kubernetes.api.model.BaseKubernetesList"
+ "type": "object",
+ "properties": {
+ "BaseKubernetesList": {
+ "$ref": "#/definitions/kubernetes_List",
+ "javaType": "io.fabric8.kubernetes.api.model.BaseKubernetesList"
+ },
+ "BuildConfigList": {
+ "$ref": "#/definitions/os_build_BuildConfigList",
+ "javaType": "io.fabric8.openshift.api.model.BuildConfigList"
+ },
+ "BuildList": {
+ "$ref": "#/definitions/os_build_BuildList",
+ "javaType": "io.fabric8.openshift.api.model.BuildList"
+ },
+ "BuildRequest": {
+ "$ref": "#/definitions/os_build_BuildRequest",
+ "javaType": "io.fabric8.openshift.api.model.BuildRequest"
+ },
+ "ClusterPolicy": {
+ "$ref": "#/definitions/os_authorization_ClusterPolicy",
+ "javaType": "io.fabric8.openshift.api.model.ClusterPolicy"
+ },
+ "ClusterPolicyBinding": {
+ "$ref": "#/definitions/os_authorization_ClusterPolicyBinding",
+ "javaType": "io.fabric8.openshift.api.model.ClusterPolicyBinding"
+ },
+ "ClusterPolicyBindingList": {
+ "$ref": "#/definitions/os_authorization_ClusterPolicyBindingList",
+ "javaType": "io.fabric8.openshift.api.model.ClusterPolicyBindingList"
+ },
+ "ClusterPolicyList": {
+ "$ref": "#/definitions/os_authorization_ClusterPolicyList",
+ "javaType": "io.fabric8.openshift.api.model.ClusterPolicyList"
+ },
+ "ClusterRoleBinding": {
+ "$ref": "#/definitions/os_authorization_ClusterRoleBinding",
+ "javaType": "io.fabric8.openshift.api.model.ClusterRoleBinding"
+ },
+ "ClusterRoleBindingList": {
+ "$ref": "#/definitions/os_authorization_ClusterRoleBindingList",
+ "javaType": "io.fabric8.openshift.api.model.ClusterRoleBindingList"
+ },
+ "Config": {
+ "$ref": "#/definitions/kubernetes_config_Config",
+ "javaType": "io.fabric8.kubernetes.api.model.Config"
+ },
+ "ContainerStatus": {
+ "$ref": "#/definitions/kubernetes_ContainerStatus",
+ "javaType": "io.fabric8.kubernetes.api.model.ContainerStatus"
+ },
+ "DeploymentConfigList": {
+ "$ref": "#/definitions/os_deploy_DeploymentConfigList",
+ "javaType": "io.fabric8.openshift.api.model.DeploymentConfigList"
+ },
+ "Endpoints": {
+ "$ref": "#/definitions/kubernetes_Endpoints",
+ "javaType": "io.fabric8.kubernetes.api.model.Endpoints"
+ },
+ "EndpointsList": {
+ "$ref": "#/definitions/kubernetes_EndpointsList",
+ "javaType": "io.fabric8.kubernetes.api.model.EndpointsList"
+ },
+ "EnvVar": {
+ "$ref": "#/definitions/kubernetes_EnvVar",
+ "javaType": "io.fabric8.kubernetes.api.model.EnvVar"
+ },
+ "EventList": {
+ "$ref": "#/definitions/kubernetes_EventList",
+ "javaType": "io.fabric8.kubernetes.api.model.EventList"
+ },
+ "Group": {
+ "$ref": "#/definitions/os_user_Group",
+ "javaType": "io.fabric8.openshift.api.model.Group"
+ },
+ "GroupList": {
+ "$ref": "#/definitions/os_user_GroupList",
+ "javaType": "io.fabric8.openshift.api.model.GroupList"
+ },
+ "Identity": {
+ "$ref": "#/definitions/os_user_Identity",
+ "javaType": "io.fabric8.openshift.api.model.Identity"
+ },
+ "IdentityList": {
+ "$ref": "#/definitions/os_user_IdentityList",
+ "javaType": "io.fabric8.openshift.api.model.IdentityList"
+ },
+ "ImageList": {
+ "$ref": "#/definitions/os_image_ImageList",
+ "javaType": "io.fabric8.openshift.api.model.ImageList"
+ },
+ "ImageStreamList": {
+ "$ref": "#/definitions/os_image_ImageStreamList",
+ "javaType": "io.fabric8.openshift.api.model.ImageStreamList"
+ },
+ "LocalSubjectAccessReview": {
+ "$ref": "#/definitions/os_authorization_LocalSubjectAccessReview",
+ "javaType": "io.fabric8.openshift.api.model.LocalSubjectAccessReview"
+ },
+ "Namespace": {
+ "$ref": "#/definitions/kubernetes_Namespace",
+ "javaType": "io.fabric8.kubernetes.api.model.Namespace"
+ },
+ "NamespaceList": {
+ "$ref": "#/definitions/kubernetes_NamespaceList",
+ "javaType": "io.fabric8.kubernetes.api.model.NamespaceList"
+ },
+ "Node": {
+ "$ref": "#/definitions/kubernetes_Node",
+ "javaType": "io.fabric8.kubernetes.api.model.Node"
+ },
+ "NodeList": {
+ "$ref": "#/definitions/kubernetes_NodeList",
+ "javaType": "io.fabric8.kubernetes.api.model.NodeList"
+ },
+ "OAuthAccessToken": {
+ "$ref": "#/definitions/os_oauth_OAuthAccessToken",
+ "javaType": "io.fabric8.openshift.api.model.OAuthAccessToken"
+ },
+ "OAuthAccessTokenList": {
+ "$ref": "#/definitions/os_oauth_OAuthAccessTokenList",
+ "javaType": "io.fabric8.openshift.api.model.OAuthAccessTokenList"
+ },
+ "OAuthAuthorizeToken": {
+ "$ref": "#/definitions/os_oauth_OAuthAuthorizeToken",
+ "javaType": "io.fabric8.openshift.api.model.OAuthAuthorizeToken"
+ },
+ "OAuthAuthorizeTokenList": {
+ "$ref": "#/definitions/os_oauth_OAuthAuthorizeTokenList",
+ "javaType": "io.fabric8.openshift.api.model.OAuthAuthorizeTokenList"
+ },
+ "OAuthClient": {
+ "$ref": "#/definitions/os_oauth_OAuthClient",
+ "javaType": "io.fabric8.openshift.api.model.OAuthClient"
+ },
+ "OAuthClientAuthorization": {
+ "$ref": "#/definitions/os_oauth_OAuthClientAuthorization",
+ "javaType": "io.fabric8.openshift.api.model.OAuthClientAuthorization"
+ },
+ "OAuthClientAuthorizationList": {
+ "$ref": "#/definitions/os_oauth_OAuthClientAuthorizationList",
+ "javaType": "io.fabric8.openshift.api.model.OAuthClientAuthorizationList"
+ },
+ "OAuthClientList": {
+ "$ref": "#/definitions/os_oauth_OAuthClientList",
+ "javaType": "io.fabric8.openshift.api.model.OAuthClientList"
+ },
+ "ObjectMeta": {
+ "$ref": "#/definitions/kubernetes_ObjectMeta",
+ "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
+ },
+ "PersistentVolume": {
+ "$ref": "#/definitions/kubernetes_PersistentVolume",
+ "javaType": "io.fabric8.kubernetes.api.model.PersistentVolume"
+ },
+ "PersistentVolumeClaim": {
+ "$ref": "#/definitions/kubernetes_PersistentVolumeClaim",
+ "javaType": "io.fabric8.kubernetes.api.model.PersistentVolumeClaim"
+ },
+ "PersistentVolumeClaimList": {
+ "$ref": "#/definitions/kubernetes_PersistentVolumeClaimList",
+ "javaType": "io.fabric8.kubernetes.api.model.PersistentVolumeClaimList"
+ },
+ "PersistentVolumeList": {
+ "$ref": "#/definitions/kubernetes_PersistentVolumeList",
+ "javaType": "io.fabric8.kubernetes.api.model.PersistentVolumeList"
+ },
+ "PodList": {
+ "$ref": "#/definitions/kubernetes_PodList",
+ "javaType": "io.fabric8.kubernetes.api.model.PodList"
+ },
+ "Policy": {
+ "$ref": "#/definitions/os_authorization_Policy",
+ "javaType": "io.fabric8.openshift.api.model.Policy"
+ },
+ "PolicyBinding": {
+ "$ref": "#/definitions/os_authorization_PolicyBinding",
+ "javaType": "io.fabric8.openshift.api.model.PolicyBinding"
+ },
+ "PolicyBindingList": {
+ "$ref": "#/definitions/os_authorization_PolicyBindingList",
+ "javaType": "io.fabric8.openshift.api.model.PolicyBindingList"
+ },
+ "PolicyList": {
+ "$ref": "#/definitions/os_authorization_PolicyList",
+ "javaType": "io.fabric8.openshift.api.model.PolicyList"
+ },
+ "Project": {
+ "$ref": "#/definitions/os_project_Project",
+ "javaType": "io.fabric8.openshift.api.model.Project"
+ },
+ "ProjectList": {
+ "$ref": "#/definitions/os_project_ProjectList",
+ "javaType": "io.fabric8.openshift.api.model.ProjectList"
+ },
+ "ProjectRequest": {
+ "$ref": "#/definitions/os_project_ProjectRequest",
+ "javaType": "io.fabric8.openshift.api.model.ProjectRequest"
+ },
+ "Quantity": {
+ "$ref": "#/definitions/kubernetes_resource_Quantity",
+ "javaType": "io.fabric8.kubernetes.api.model.Quantity"
+ },
+ "ReplicationControllerList": {
+ "$ref": "#/definitions/kubernetes_ReplicationControllerList",
+ "javaType": "io.fabric8.kubernetes.api.model.ReplicationControllerList"
+ },
+ "ResourceQuota": {
+ "$ref": "#/definitions/kubernetes_ResourceQuota",
+ "javaType": "io.fabric8.kubernetes.api.model.ResourceQuota"
+ },
+ "ResourceQuotaList": {
+ "$ref": "#/definitions/kubernetes_ResourceQuotaList",
+ "javaType": "io.fabric8.kubernetes.api.model.ResourceQuotaList"
+ },
+ "Role": {
+ "$ref": "#/definitions/os_authorization_Role",
+ "javaType": "io.fabric8.openshift.api.model.Role"
+ },
+ "RoleBinding": {
+ "$ref": "#/definitions/os_authorization_RoleBinding",
+ "javaType": "io.fabric8.openshift.api.model.RoleBinding"
+ },
+ "RoleBindingList": {
+ "$ref": "#/definitions/os_authorization_RoleBindingList",
+ "javaType": "io.fabric8.openshift.api.model.RoleBindingList"
+ },
+ "RoleList": {
+ "$ref": "#/definitions/os_authorization_RoleList",
+ "javaType": "io.fabric8.openshift.api.model.RoleList"
+ },
+ "RootPaths": {
+ "$ref": "#/definitions/api_RootPaths",
+ "javaType": "io.fabric8.kubernetes.api.model.RootPaths"
+ },
+ "RouteList": {
+ "$ref": "#/definitions/os_route_RouteList",
+ "javaType": "io.fabric8.openshift.api.model.RouteList"
+ },
+ "Secret": {
+ "$ref": "#/definitions/kubernetes_Secret",
+ "javaType": "io.fabric8.kubernetes.api.model.Secret"
+ },
+ "SecretList": {
+ "$ref": "#/definitions/kubernetes_SecretList",
+ "javaType": "io.fabric8.kubernetes.api.model.SecretList"
+ },
+ "SecurityContextConstraints": {
+ "$ref": "#/definitions/kubernetes_SecurityContextConstraints",
+ "javaType": "io.fabric8.kubernetes.api.model.SecurityContextConstraints"
+ },
+ "SecurityContextConstraintsList": {
+ "$ref": "#/definitions/kubernetes_SecurityContextConstraintsList",
+ "javaType": "io.fabric8.kubernetes.api.model.SecurityContextConstraintsList"
+ },
+ "ServiceAccount": {
+ "$ref": "#/definitions/kubernetes_ServiceAccount",
+ "javaType": "io.fabric8.kubernetes.api.model.ServiceAccount"
+ },
+ "ServiceAccountList": {
+ "$ref": "#/definitions/kubernetes_ServiceAccountList",
+ "javaType": "io.fabric8.kubernetes.api.model.ServiceAccountList"
+ },
+ "ServiceList": {
+ "$ref": "#/definitions/kubernetes_ServiceList",
+ "javaType": "io.fabric8.kubernetes.api.model.ServiceList"
+ },
+ "Status": {
+ "$ref": "#/definitions/kubernetes_Status",
+ "javaType": "io.fabric8.kubernetes.api.model.Status"
+ },
+ "SubjectAccessReview": {
+ "$ref": "#/definitions/os_authorization_SubjectAccessReview",
+ "javaType": "io.fabric8.openshift.api.model.SubjectAccessReview"
+ },
+ "SubjectAccessReviewResponse": {
+ "$ref": "#/definitions/os_authorization_SubjectAccessReviewResponse",
+ "javaType": "io.fabric8.openshift.api.model.SubjectAccessReviewResponse"
+ },
+ "TagEvent": {
+ "$ref": "#/definitions/os_image_TagEvent",
+ "javaType": "io.fabric8.openshift.api.model.TagEvent"
+ },
+ "Template": {
+ "$ref": "#/definitions/os_template_Template",
+ "javaType": "io.fabric8.openshift.api.model.Template"
+ },
+ "TemplateList": {
+ "$ref": "#/definitions/os_template_TemplateList",
+ "javaType": "io.fabric8.openshift.api.model.TemplateList"
+ },
+ "User": {
+ "$ref": "#/definitions/os_user_User",
+ "javaType": "io.fabric8.openshift.api.model.User"
+ },
+ "UserList": {
+ "$ref": "#/definitions/os_user_UserList",
+ "javaType": "io.fabric8.openshift.api.model.UserList"
+ },
+ "WatchEvent": {
+ "$ref": "#/definitions/kubernetes_watch_WatchEvent",
+ "javaType": "io.fabric8.kubernetes.api.model.WatchEvent"
+ }
},
- "BuildConfigList": {
- "$ref": "#/definitions/os_build_BuildConfigList",
- "javaType": "io.fabric8.openshift.api.model.BuildConfigList"
- },
- "BuildList": {
- "$ref": "#/definitions/os_build_BuildList",
- "javaType": "io.fabric8.openshift.api.model.BuildList"
- },
- "BuildRequest": {
- "$ref": "#/definitions/os_build_BuildRequest",
- "javaType": "io.fabric8.openshift.api.model.BuildRequest"
- },
- "Config": {
- "$ref": "#/definitions/kubernetes_config_Config",
- "javaType": "io.fabric8.kubernetes.api.model.config.Config"
- },
- "ContainerStatus": {
- "$ref": "#/definitions/kubernetes_ContainerStatus",
- "javaType": "io.fabric8.kubernetes.api.model.ContainerStatus"
- },
- "DeploymentConfigList": {
- "$ref": "#/definitions/os_deploy_DeploymentConfigList",
- "javaType": "io.fabric8.openshift.api.model.DeploymentConfigList"
- },
- "Endpoints": {
- "$ref": "#/definitions/kubernetes_Endpoints",
- "javaType": "io.fabric8.kubernetes.api.model.Endpoints"
- },
- "EndpointsList": {
- "$ref": "#/definitions/kubernetes_EndpointsList",
- "javaType": "io.fabric8.kubernetes.api.model.EndpointsList"
- },
- "EnvVar": {
- "$ref": "#/definitions/kubernetes_EnvVar",
- "javaType": "io.fabric8.kubernetes.api.model.EnvVar"
- },
- "ImageList": {
- "$ref": "#/definitions/os_image_ImageList",
- "javaType": "io.fabric8.openshift.api.model.ImageList"
- },
- "ImageStreamList": {
- "$ref": "#/definitions/os_image_ImageStreamList",
- "javaType": "io.fabric8.openshift.api.model.ImageStreamList"
- },
- "Namespace": {
- "$ref": "#/definitions/kubernetes_Namespace",
- "javaType": "io.fabric8.kubernetes.api.model.Namespace"
- },
- "NamespaceList": {
- "$ref": "#/definitions/kubernetes_NamespaceList",
- "javaType": "io.fabric8.kubernetes.api.model.NamespaceList"
- },
- "Node": {
- "$ref": "#/definitions/kubernetes_Node",
- "javaType": "io.fabric8.kubernetes.api.model.Node"
- },
- "NodeList": {
- "$ref": "#/definitions/kubernetes_NodeList",
- "javaType": "io.fabric8.kubernetes.api.model.NodeList"
- },
- "OAuthAccessToken": {
- "$ref": "#/definitions/os_oauth_OAuthAccessToken",
- "javaType": "io.fabric8.openshift.api.model.OAuthAccessToken"
- },
- "OAuthAccessTokenList": {
- "$ref": "#/definitions/os_oauth_OAuthAccessTokenList",
- "javaType": "io.fabric8.openshift.api.model.OAuthAccessTokenList"
- },
- "OAuthAuthorizeToken": {
- "$ref": "#/definitions/os_oauth_OAuthAuthorizeToken",
- "javaType": "io.fabric8.openshift.api.model.OAuthAuthorizeToken"
- },
- "OAuthAuthorizeTokenList": {
- "$ref": "#/definitions/os_oauth_OAuthAuthorizeTokenList",
- "javaType": "io.fabric8.openshift.api.model.OAuthAuthorizeTokenList"
- },
- "OAuthClient": {
- "$ref": "#/definitions/os_oauth_OAuthClient",
- "javaType": "io.fabric8.openshift.api.model.OAuthClient"
- },
- "OAuthClientAuthorization": {
- "$ref": "#/definitions/os_oauth_OAuthClientAuthorization",
- "javaType": "io.fabric8.openshift.api.model.OAuthClientAuthorization"
- },
- "OAuthClientAuthorizationList": {
- "$ref": "#/definitions/os_oauth_OAuthClientAuthorizationList",
- "javaType": "io.fabric8.openshift.api.model.OAuthClientAuthorizationList"
- },
- "OAuthClientList": {
- "$ref": "#/definitions/os_oauth_OAuthClientList",
- "javaType": "io.fabric8.openshift.api.model.OAuthClientList"
- },
- "ObjectMeta": {
- "$ref": "#/definitions/kubernetes_ObjectMeta",
- "javaType": "io.fabric8.kubernetes.api.model.ObjectMeta"
- },
- "PodList": {
- "$ref": "#/definitions/kubernetes_PodList",
- "javaType": "io.fabric8.kubernetes.api.model.PodList"
- },
- "Quantity": {
- "$ref": "#/definitions/kubernetes_resource_Quantity",
- "javaType": "io.fabric8.kubernetes.api.model.resource.Quantity"
- },
- "ReplicationControllerList": {
- "$ref": "#/definitions/kubernetes_ReplicationControllerList",
- "javaType": "io.fabric8.kubernetes.api.model.ReplicationControllerList"
- },
- "RouteList": {
- "$ref": "#/definitions/os_route_RouteList",
- "javaType": "io.fabric8.openshift.api.model.RouteList"
- },
- "Secret": {
- "$ref": "#/definitions/kubernetes_Secret",
- "javaType": "io.fabric8.kubernetes.api.model.Secret"
- },
- "SecretList": {
- "$ref": "#/definitions/kubernetes_SecretList",
- "javaType": "io.fabric8.kubernetes.api.model.SecretList"
- },
- "ServiceAccount": {
- "$ref": "#/definitions/kubernetes_ServiceAccount",
- "javaType": "io.fabric8.kubernetes.api.model.ServiceAccount"
- },
- "ServiceAccountList": {
- "$ref": "#/definitions/kubernetes_ServiceAccountList",
- "javaType": "io.fabric8.kubernetes.api.model.ServiceAccountList"
- },
- "ServiceList": {
- "$ref": "#/definitions/kubernetes_ServiceList",
- "javaType": "io.fabric8.kubernetes.api.model.ServiceList"
- },
- "StatusError": {
- "$ref": "#/definitions/kubernetes_errors_StatusError",
- "javaType": "io.fabric8.kubernetes.api.model.errors.StatusError"
- },
- "TagEvent": {
- "$ref": "#/definitions/os_image_TagEvent",
- "javaType": "io.fabric8.openshift.api.model.TagEvent"
- },
- "Template": {
- "$ref": "#/definitions/os_template_Template",
- "javaType": "io.fabric8.openshift.api.model.template.Template"
- },
- "TemplateList": {
- "$ref": "#/definitions/os_template_TemplateList",
- "javaType": "io.fabric8.openshift.api.model.template.TemplateList"
- },
- "WatchEvent": {
- "$ref": "#/definitions/kubernetes_watch_WatchEvent",
- "javaType": "io.fabric8.kubernetes.api.watch.WatchEvent"
- }
- },
- "additionalProperties": true
-}
+ "additionalProperties": true
+ }
+
}
\ No newline at end of file