diff --git a/bundles.yaml b/bundles.yaml index f6a3a70e..72c9abce 100644 --- a/bundles.yaml +++ b/bundles.yaml @@ -1,6 +1,6 @@ # Oldest supported version should be equal to the lowest supported version in the support policy document. # See: https://access.redhat.com/support/policy/updates/rhacs -oldest_supported_version: 4.7.0 +oldest_supported_version: 4.8.0 images: - image: registry.redhat.io/advanced-cluster-security/rhacs-operator-bundle@sha256:6cdcf20771f9c46640b466f804190d00eaf2e59caee6d420436e78b283d177bf version: 3.62.0 @@ -246,6 +246,8 @@ images: version: 4.8.6 - image: registry.redhat.io/advanced-cluster-security/rhacs-operator-bundle@sha256:24481e3ee1dab49893e7f5891e97e3287ec6f35105b6e927ce0acc7da24a6982 version: 4.8.7 + - image: quay.io/rhacs-eng/release-operator-bundle@sha256:16b8f6ecbea80980be053303cf886c5b4942230fb208c8f30c85bca2a9ef375d + version: 4.8.8-rc.4 - image: registry.redhat.io/advanced-cluster-security/rhacs-operator-bundle@sha256:02a50a53dddbbdd749b0b6cc01f555308ab3c16045130d07483bfddd6861de42 version: 4.9.0 - image: registry.redhat.io/advanced-cluster-security/rhacs-operator-bundle@sha256:9312c096fef02f70b642551338fdf968ec6657ff0385f51c13767d8b29afc76d diff --git a/catalog-bundle-object/rhacs-operator/catalog.json b/catalog-bundle-object/rhacs-operator/catalog.json index d16b30ad..c9dece94 100644 --- a/catalog-bundle-object/rhacs-operator/catalog.json +++ b/catalog-bundle-object/rhacs-operator/catalog.json @@ -3307,6 +3307,11 @@ "name": "rhacs-operator.v4.8.7", "replaces": "rhacs-operator.v4.8.6", "skipRange": ">= 4.7.0 < 4.8.7" + }, + { + "name": "rhacs-operator.v4.8.8-rc.4", + "replaces": "rhacs-operator.v4.8.7", + "skipRange": ">= 4.7.0 < 4.8.8-rc.4" } ] } @@ -3695,8 +3700,13 @@ "skipRange": ">= 4.7.0 < 4.8.7" }, { - "name": "rhacs-operator.v4.9.0", + "name": "rhacs-operator.v4.8.8-rc.4", "replaces": "rhacs-operator.v4.8.7", + "skipRange": ">= 4.7.0 < 4.8.8-rc.4" + }, + { + "name": "rhacs-operator.v4.9.0", + "replaces": "rhacs-operator.v4.8.8-rc.4", "skipRange": ">= 4.8.0 < 4.9.0" }, { @@ -4096,8 +4106,13 @@ "skipRange": ">= 4.7.0 < 4.8.7" }, { - "name": "rhacs-operator.v4.9.0", + "name": "rhacs-operator.v4.8.8-rc.4", "replaces": "rhacs-operator.v4.8.7", + "skipRange": ">= 4.7.0 < 4.8.8-rc.4" + }, + { + "name": "rhacs-operator.v4.9.0", + "replaces": "rhacs-operator.v4.8.8-rc.4", "skipRange": ">= 4.8.0 < 4.9.0" }, { @@ -19540,6 +19555,131 @@ } ] } +{ + "schema": "olm.bundle", + "name": "rhacs-operator.v4.8.8-rc.4", + "package": "rhacs-operator", + "image": "quay.io/rhacs-eng/release-operator-bundle@sha256:16b8f6ecbea80980be053303cf886c5b4942230fb208c8f30c85bca2a9ef375d", + "properties": [ + { + "type": "olm.gvk", + "value": { + "group": "config.stackrox.io", + "kind": "SecurityPolicy", + "version": "v1alpha1" + } + }, + { + "type": "olm.gvk", + "value": { + "group": "platform.stackrox.io", + "kind": "Central", + "version": "v1alpha1" + } + }, + { + "type": "olm.gvk", + "value": { + "group": "platform.stackrox.io", + "kind": "SecuredCluster", + "version": "v1alpha1" + } + }, + { + "type": "olm.package", + "value": { + "packageName": "rhacs-operator", + "version": "4.8.8-rc.4" + } + }, + { + "type": "olm.bundle.object", + "value": { + "data": "eyJhcGlWZXJzaW9uIjoiYXBpZXh0ZW5zaW9ucy5rOHMuaW8vdjEiLCJraW5kIjoiQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiY29udHJvbGxlci1nZW4ua3ViZWJ1aWxkZXIuaW8vdmVyc2lvbiI6InYwLjE2LjUifSwiY3JlYXRpb25UaW1lc3RhbXAiOm51bGwsIm5hbWUiOiJjZW50cmFscy5wbGF0Zm9ybS5zdGFja3JveC5pbyJ9LCJzcGVjIjp7Imdyb3VwIjoicGxhdGZvcm0uc3RhY2tyb3guaW8iLCJuYW1lcyI6eyJraW5kIjoiQ2VudHJhbCIsImxpc3RLaW5kIjoiQ2VudHJhbExpc3QiLCJwbHVyYWwiOiJjZW50cmFscyIsInNpbmd1bGFyIjoiY2VudHJhbCJ9LCJzY29wZSI6Ik5hbWVzcGFjZWQiLCJ2ZXJzaW9ucyI6W3sibmFtZSI6InYxYWxwaGExIiwic2NoZW1hIjp7Im9wZW5BUElWM1NjaGVtYSI6eyJkZXNjcmlwdGlvbiI6IkNlbnRyYWwgaXMgdGhlIGNvbmZpZ3VyYXRpb24gdGVtcGxhdGUgZm9yIHRoZSBjZW50cmFsIHNlcnZpY2VzLiBUaGlzIGluY2x1ZGVzIHRoZSBBUEkgc2VydmVyLCBwZXJzaXN0ZW50IHN0b3JhZ2UsXG5hbmQgdGhlIHdlYiBVSSwgYXMgd2VsbCBhcyB0aGUgaW1hZ2Ugc2Nhbm5lci4iLCJwcm9wZXJ0aWVzIjp7ImFwaVZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJBUElWZXJzaW9uIGRlZmluZXMgdGhlIHZlcnNpb25lZCBzY2hlbWEgb2YgdGhpcyByZXByZXNlbnRhdGlvbiBvZiBhbiBvYmplY3QuXG5TZXJ2ZXJzIHNob3VsZCBjb252ZXJ0IHJlY29nbml6ZWQgc2NoZW1hcyB0byB0aGUgbGF0ZXN0IGludGVybmFsIHZhbHVlLCBhbmRcbm1heSByZWplY3QgdW5yZWNvZ25pemVkIHZhbHVlcy5cbk1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjcmVzb3VyY2VzIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyBhIHN0cmluZyB2YWx1ZSByZXByZXNlbnRpbmcgdGhlIFJFU1QgcmVzb3VyY2UgdGhpcyBvYmplY3QgcmVwcmVzZW50cy5cblNlcnZlcnMgbWF5IGluZmVyIHRoaXMgZnJvbSB0aGUgZW5kcG9pbnQgdGhlIGNsaWVudCBzdWJtaXRzIHJlcXVlc3RzIHRvLlxuQ2Fubm90IGJlIHVwZGF0ZWQuXG5JbiBDYW1lbENhc2UuXG5Nb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3R5cGVzLWtpbmRzIiwidHlwZSI6InN0cmluZyJ9LCJtZXRhZGF0YSI6eyJ0eXBlIjoib2JqZWN0In0sInNwZWMiOnsiZGVzY3JpcHRpb24iOiJDZW50cmFsU3BlYyBkZWZpbmVzIHRoZSBkZXNpcmVkIHN0YXRlIG9mIENlbnRyYWwiLCJwcm9wZXJ0aWVzIjp7ImNlbnRyYWwiOnsiZGVzY3JpcHRpb24iOiJTZXR0aW5ncyBmb3IgdGhlIENlbnRyYWwgY29tcG9uZW50LCB3aGljaCBpcyByZXNwb25zaWJsZSBmb3IgYWxsIHVzZXIgaW50ZXJhY3Rpb24uIiwicHJvcGVydGllcyI6eyJhZG1pblBhc3N3b3JkR2VuZXJhdGlvbkRpc2FibGVkIjp7ImRlc2NyaXB0aW9uIjoiRGlzYWJsZSBhZG1pbiBwYXNzd29yZCBnZW5lcmF0aW9uLiBEbyBub3QgdXNlIHRoaXMgZm9yIGZpcnN0LXRpbWUgaW5zdGFsbGF0aW9ucyxcbmFzIHlvdSB3aWxsIGhhdmUgbm8gd2F5IHRvIHBlcmZvcm0gaW5pdGlhbCBzZXR1cCBhbmQgY29uZmlndXJhdGlvbiBvZiBhbHRlcm5hdGl2ZSBhdXRoZW50aWNhdGlvbiBtZXRob2RzLiIsInR5cGUiOiJib29sZWFuIn0sImFkbWluUGFzc3dvcmRTZWNyZXQiOnsiZGVzY3JpcHRpb24iOiJTcGVjaWZ5IGEgc2VjcmV0IHRoYXQgY29udGFpbnMgdGhlIGFkbWluaXN0cmF0b3IgcGFzc3dvcmQgaW4gdGhlIFwicGFzc3dvcmRcIiBkYXRhIGl0ZW0uXG5JZiBvbWl0dGVkLCB0aGUgb3BlcmF0b3Igd2lsbCBhdXRvLWdlbmVyYXRlIGEgcGFzc3dvcmQgYW5kIHN0b3JlIGl0IGluIHRoZSBcInBhc3N3b3JkXCIgaXRlbVxuaW4gdGhlIFwiY2VudHJhbC1odHBhc3N3ZFwiIHNlY3JldC4iLCJwcm9wZXJ0aWVzIjp7Im5hbWUiOnsiZGVzY3JpcHRpb24iOiJUaGUgbmFtZSBvZiB0aGUgcmVmZXJlbmNlZCBzZWNyZXQuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsibmFtZSJdLCJ0eXBlIjoib2JqZWN0In0sImRiIjp7ImRlc2NyaXB0aW9uIjoiU2V0dGluZ3MgZm9yIENlbnRyYWwgREIsIHdoaWNoIGlzIHJlc3BvbnNpYmxlIGZvciBkYXRhIHBlcnNpc3RlbmNlLiIsInByb3BlcnRpZXMiOnsiY29uZmlnT3ZlcnJpZGUiOnsiZGVzY3JpcHRpb24iOiJDb25maWcgbWFwIGNvbnRhaW5pbmcgcG9zdGdyZXNxbC5jb25mIGFuZCBwZ19oYmEuY29uZiB0aGF0IHdpbGwgYmUgdXNlZCBpZiBtb2RpZmljYXRpb25zIG5lZWQgdG8gYmUgYXBwbGllZC4iLCJwcm9wZXJ0aWVzIjp7Im5hbWUiOnsiZGVzY3JpcHRpb24iOiJUaGUgbmFtZSBvZiB0aGUgcmVmZXJlbmNlZCBjb25maWcgbWFwLiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJjb25uZWN0aW9uUG9vbFNpemUiOnsiZGVzY3JpcHRpb24iOiJDb25maWd1cmVzIHRoZSBkYXRhYmFzZSBjb25uZWN0aW9uIHBvb2wgc2l6ZS4iLCJwcm9wZXJ0aWVzIjp7Im1heENvbm5lY3Rpb25zIjp7ImRlZmF1bHQiOjkwLCJkZXNjcmlwdGlvbiI6Ik1heGltdW0gbnVtYmVyIG9mIGNvbm5lY3Rpb25zIGluIHRoZSBjb25uZWN0aW9uIHBvb2wuIiwiZm9ybWF0IjoiaW50MzIiLCJtaW5pbXVtIjoxLCJ0eXBlIjoiaW50ZWdlciJ9LCJtaW5Db25uZWN0aW9ucyI6eyJkZWZhdWx0IjoxMCwiZGVzY3JpcHRpb24iOiJNaW5pbXVtIG51bWJlciBvZiBjb25uZWN0aW9ucyBpbiB0aGUgY29ubmVjdGlvbiBwb29sLiIsImZvcm1hdCI6ImludDMyIiwibWluaW11bSI6MSwidHlwZSI6ImludGVnZXIifX0sInJlcXVpcmVkIjpbIm1heENvbm5lY3Rpb25zIiwibWluQ29ubmVjdGlvbnMiXSwidHlwZSI6Im9iamVjdCJ9LCJjb25uZWN0aW9uU3RyaW5nIjp7ImRlc2NyaXB0aW9uIjoiU3BlY2lmeSBhIGNvbm5lY3Rpb24gc3RyaW5nIHRoYXQgY29ycmVzcG9uZHMgdG8gYSBkYXRhYmFzZSBtYW5hZ2VkIGVsc2V3aGVyZS4gSWYgc2V0LCB0aGUgb3BlcmF0b3Igd2lsbCBub3QgbWFuYWdlIHRoZSBDZW50cmFsIERCLlxuV2hlbiB1c2luZyB0aGlzIG9wdGlvbiwgeW91IG11c3QgZXhwbGljaXRseSBzZXQgYSBwYXNzd29yZCBzZWNyZXQ7IGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGluZyBhIHBhc3N3b3JkIHdpbGwgbm90XG5iZSBzdXBwb3J0ZWQuIiwidHlwZSI6InN0cmluZyJ9LCJob3N0QWxpYXNlcyI6eyJkZXNjcmlwdGlvbiI6Ikhvc3RBbGlhc2VzIGFsbG93cyBjb25maWd1cmluZyBhZGRpdGlvbmFsIGhvc3RuYW1lcyB0byByZXNvbHZlIGluIHRoZSBwb2QncyBob3N0cyBmaWxlLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiSG9zdEFsaWFzIGhvbGRzIHRoZSBtYXBwaW5nIGJldHdlZW4gSVAgYW5kIGhvc3RuYW1lcyB0aGF0IHdpbGwgYmUgaW5qZWN0ZWQgYXMgYW4gZW50cnkgaW4gdGhlXG5wb2QncyBob3N0cyBmaWxlLiIsInByb3BlcnRpZXMiOnsiaG9zdG5hbWVzIjp7ImRlc2NyaXB0aW9uIjoiSG9zdG5hbWVzIGZvciB0aGUgYWJvdmUgSVAgYWRkcmVzcy4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSIsIngta3ViZXJuZXRlcy1saXN0LXR5cGUiOiJhdG9taWMifSwiaXAiOnsiZGVzY3JpcHRpb24iOiJJUCBhZGRyZXNzIG9mIHRoZSBob3N0IGZpbGUgZW50cnkuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsiaXAiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwiaXNFbmFibGVkIjp7ImRlZmF1bHQiOiJEZWZhdWx0IiwiZGVzY3JpcHRpb24iOiJEZXByZWNhdGVkIGZpZWxkLiBJdCBpcyBubyBsb25nZXIgbmVjZXNzYXJ5IHRvIHNwZWNpZnkgaXQuXG5UaGlzIGZpZWxkIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLlxuQ2VudHJhbCBpcyBjb25maWd1cmVkIHRvIHVzZSBQb3N0Z3JlU1FMIGJ5IGRlZmF1bHQuIiwiZW51bSI6WyJEZWZhdWx0IiwiRW5hYmxlZCJdLCJ0eXBlIjoic3RyaW5nIn0sIm5vZGVTZWxlY3RvciI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoiSWYgeW91IHdhbnQgdGhpcyBjb21wb25lbnQgdG8gb25seSBydW4gb24gc3BlY2lmaWMgbm9kZXMsIHlvdSBjYW4gY29uZmlndXJlIGEgbm9kZSBzZWxlY3RvciBoZXJlLiIsInR5cGUiOiJvYmplY3QifSwicGFzc3dvcmRTZWNyZXQiOnsiZGVzY3JpcHRpb24iOiJTcGVjaWZ5IGEgc2VjcmV0IHRoYXQgY29udGFpbnMgdGhlIHBhc3N3b3JkIGluIHRoZSBcInBhc3N3b3JkXCIgZGF0YSBpdGVtLiBUaGlzIGNhbiBvbmx5IGJlIHVzZWQgd2hlblxuc3BlY2lmeWluZyBhIGNvbm5lY3Rpb24gc3RyaW5nIG1hbnVhbGx5LlxuV2hlbiBvbWl0dGVkLCB0aGUgb3BlcmF0b3Igd2lsbCBhdXRvLWdlbmVyYXRlIGEgREIgcGFzc3dvcmQgYW5kIHN0b3JlIGl0IGluIHRoZSBcInBhc3N3b3JkXCIgaXRlbVxuaW4gdGhlIFwiY2VudHJhbC1kYi1wYXNzd29yZFwiIHNlY3JldC4iLCJwcm9wZXJ0aWVzIjp7Im5hbWUiOnsiZGVzY3JpcHRpb24iOiJUaGUgbmFtZSBvZiB0aGUgcmVmZXJlbmNlZCBzZWNyZXQuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsibmFtZSJdLCJ0eXBlIjoib2JqZWN0In0sInBlcnNpc3RlbmNlIjp7ImRlc2NyaXB0aW9uIjoiQ29uZmlndXJlcyBob3cgQ2VudHJhbCBEQiBzaG91bGQgc3RvcmUgaXRzIHBlcnNpc3RlbnQgZGF0YS4gWW91IGNhbiBjaG9vc2UgYmV0d2VlbiB1c2luZyBhIHBlcnNpc3RlbnRcbnZvbHVtZSBjbGFpbSAocmVjb21tZW5kZWQgZGVmYXVsdCksIGFuZCBhIGhvc3QgcGF0aC4iLCJwcm9wZXJ0aWVzIjp7Imhvc3RQYXRoIjp7ImRlc2NyaXB0aW9uIjoiU3RvcmVzIHBlcnNpc3RlbnQgZGF0YSBvbiBhIGRpcmVjdG9yeSBvbiB0aGUgaG9zdC4gVGhpcyBpcyBub3QgcmVjb21tZW5kZWQsIGFuZCBzaG91bGQgb25seVxuYmUgdXNlZCB0b2dldGhlciB3aXRoIGEgbm9kZSBzZWxlY3RvciAob25seSBhdmFpbGFibGUgaW4gWUFNTCB2aWV3KS4iLCJwcm9wZXJ0aWVzIjp7InBhdGgiOnsiZGVzY3JpcHRpb24iOiJUaGUgcGF0aCBvbiB0aGUgaG9zdCBydW5uaW5nIENlbnRyYWwuIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJwZXJzaXN0ZW50Vm9sdW1lQ2xhaW0iOnsiZGVzY3JpcHRpb24iOiJVc2VzIGEgS3ViZXJuZXRlcyBwZXJzaXN0ZW50IHZvbHVtZSBjbGFpbSAoUFZDKSB0byBtYW5hZ2UgdGhlIHN0b3JhZ2UgbG9jYXRpb24gb2YgcGVyc2lzdGVudCBkYXRhLlxuUmVjb21tZW5kZWQgZm9yIG1vc3QgdXNlcnMuIiwicHJvcGVydGllcyI6eyJjbGFpbU5hbWUiOnsiZGVmYXVsdCI6ImNlbnRyYWwtZGIiLCJkZXNjcmlwdGlvbiI6IlRoZSBuYW1lIG9mIHRoZSBQVkMgdG8gbWFuYWdlIHBlcnNpc3RlbnQgZGF0YS4gSWYgbm8gUFZDIHdpdGggdGhlIGdpdmVuIG5hbWUgZXhpc3RzLCBpdCB3aWxsIGJlXG5jcmVhdGVkLiBEZWZhdWx0cyB0byBcImNlbnRyYWwtZGJcIiBpZiBub3Qgc2V0LiIsInR5cGUiOiJzdHJpbmcifSwic2l6ZSI6eyJkZXNjcmlwdGlvbiI6IlRoZSBzaXplIG9mIHRoZSBwZXJzaXN0ZW50IHZvbHVtZSB3aGVuIGNyZWF0ZWQgdGhyb3VnaCB0aGUgY2xhaW0uIElmIGEgY2xhaW0gd2FzIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCxcbnRoaXMgY2FuIGJlIHVzZWQgYWZ0ZXIgdGhlIGluaXRpYWwgZGVwbG95bWVudCB0byByZXNpemUgKGdyb3cpIHRoZSB2b2x1bWUgKG9ubHkgc3VwcG9ydGVkIGJ5IHNvbWVcbnN0b3JhZ2UgY2xhc3MgY29udHJvbGxlcnMpLiIsInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsInR5cGUiOiJzdHJpbmcifSwic3RvcmFnZUNsYXNzTmFtZSI6eyJkZXNjcmlwdGlvbiI6IlRoZSBuYW1lIG9mIHRoZSBzdG9yYWdlIGNsYXNzIHRvIHVzZSBmb3IgdGhlIFBWQy4gSWYgeW91ciBjbHVzdGVyIGlzIG5vdCBjb25maWd1cmVkIHdpdGggYSBkZWZhdWx0IHN0b3JhZ2VcbmNsYXNzLCB5b3UgbXVzdCBzZWxlY3QgYSB2YWx1ZSBoZXJlLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwicmVzb3VyY2VzIjp7ImRlc2NyaXB0aW9uIjoiQWxsb3dzIG92ZXJyaWRpbmcgdGhlIGRlZmF1bHQgcmVzb3VyY2Ugc2V0dGluZ3MgZm9yIHRoaXMgY29tcG9uZW50LiBQbGVhc2UgY29uc3VsdCB0aGUgZG9jdW1lbnRhdGlvblxuZm9yIGFuIG92ZXJ2aWV3IG9mIGRlZmF1bHQgcmVzb3VyY2UgcmVxdWlyZW1lbnRzIGFuZCBhIHNpemluZyBndWlkZS4iLCJwcm9wZXJ0aWVzIjp7ImNsYWltcyI6eyJkZXNjcmlwdGlvbiI6IkNsYWltcyBsaXN0cyB0aGUgbmFtZXMgb2YgcmVzb3VyY2VzLCBkZWZpbmVkIGluIHNwZWMucmVzb3VyY2VDbGFpbXMsXG50aGF0IGFyZSB1c2VkIGJ5IHRoaXMgY29udGFpbmVyLlxuXG5UaGlzIGZpZWxkIGRlcGVuZHMgb24gdGhlXG5EeW5hbWljUmVzb3VyY2VBbGxvY2F0aW9uIGZlYXR1cmUgZ2F0ZS5cblxuVGhpcyBmaWVsZCBpcyBpbW11dGFibGUuIEl0IGNhbiBvbmx5IGJlIHNldCBmb3IgY29udGFpbmVycy4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IlJlc291cmNlQ2xhaW0gcmVmZXJlbmNlcyBvbmUgZW50cnkgaW4gUG9kU3BlYy5SZXNvdXJjZUNsYWltcy4iLCJwcm9wZXJ0aWVzIjp7Im5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG11c3QgbWF0Y2ggdGhlIG5hbWUgb2Ygb25lIGVudHJ5IGluIHBvZC5zcGVjLnJlc291cmNlQ2xhaW1zIG9mXG50aGUgUG9kIHdoZXJlIHRoaXMgZmllbGQgaXMgdXNlZC4gSXQgbWFrZXMgdGhhdCByZXNvdXJjZSBhdmFpbGFibGVcbmluc2lkZSBhIGNvbnRhaW5lci4iLCJ0eXBlIjoic3RyaW5nIn0sInJlcXVlc3QiOnsiZGVzY3JpcHRpb24iOiJSZXF1ZXN0IGlzIHRoZSBuYW1lIGNob3NlbiBmb3IgYSByZXF1ZXN0IGluIHRoZSByZWZlcmVuY2VkIGNsYWltLlxuSWYgZW1wdHksIGV2ZXJ5dGhpbmcgZnJvbSB0aGUgY2xhaW0gaXMgbWFkZSBhdmFpbGFibGUsIG90aGVyd2lzZVxub25seSB0aGUgcmVzdWx0IG9mIHRoaXMgcmVxdWVzdC4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJuYW1lIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5IiwieC1rdWJlcm5ldGVzLWxpc3QtbWFwLWtleXMiOlsibmFtZSJdLCJ4LWt1YmVybmV0ZXMtbGlzdC10eXBlIjoibWFwIn0sImxpbWl0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJMaW1pdHMgZGVzY3JpYmVzIHRoZSBtYXhpbXVtIGFtb3VudCBvZiBjb21wdXRlIHJlc291cmNlcyBhbGxvd2VkLlxuTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9jb25maWd1cmF0aW9uL21hbmFnZS1yZXNvdXJjZXMtY29udGFpbmVycy8iLCJ0eXBlIjoib2JqZWN0In0sInJlcXVlc3RzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJkZXNjcmlwdGlvbiI6IlJlcXVlc3RzIGRlc2NyaWJlcyB0aGUgbWluaW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgcmVxdWlyZWQuXG5JZiBSZXF1ZXN0cyBpcyBvbWl0dGVkIGZvciBhIGNvbnRhaW5lciwgaXQgZGVmYXVsdHMgdG8gTGltaXRzIGlmIHRoYXQgaXMgZXhwbGljaXRseSBzcGVjaWZpZWQsXG5vdGhlcndpc2UgdG8gYW4gaW1wbGVtZW50YXRpb24tZGVmaW5lZCB2YWx1ZS4gUmVxdWVzdHMgY2Fubm90IGV4Y2VlZCBMaW1pdHMuXG5Nb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL2NvbmZpZ3VyYXRpb24vbWFuYWdlLXJlc291cmNlcy1jb250YWluZXJzLyIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwidG9sZXJhdGlvbnMiOnsiZGVzY3JpcHRpb24iOiJJZiB5b3Ugd2FudCB0aGlzIGNvbXBvbmVudCB0byBvbmx5IHJ1biBvbiBzcGVjaWZpYyBub2RlcywgeW91IGNhbiBjb25maWd1cmUgdG9sZXJhdGlvbnMgb2YgdGFpbnRlZCBub2Rlcy4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IlRoZSBwb2QgdGhpcyBUb2xlcmF0aW9uIGlzIGF0dGFjaGVkIHRvIHRvbGVyYXRlcyBhbnkgdGFpbnQgdGhhdCBtYXRjaGVzXG50aGUgdHJpcGxlIFx1MDAzY2tleSx2YWx1ZSxlZmZlY3RcdTAwM2UgdXNpbmcgdGhlIG1hdGNoaW5nIG9wZXJhdG9yIFx1MDAzY29wZXJhdG9yXHUwMDNlLiIsInByb3BlcnRpZXMiOnsiZWZmZWN0Ijp7ImRlc2NyaXB0aW9uIjoiRWZmZWN0IGluZGljYXRlcyB0aGUgdGFpbnQgZWZmZWN0IHRvIG1hdGNoLiBFbXB0eSBtZWFucyBtYXRjaCBhbGwgdGFpbnQgZWZmZWN0cy5cbldoZW4gc3BlY2lmaWVkLCBhbGxvd2VkIHZhbHVlcyBhcmUgTm9TY2hlZHVsZSwgUHJlZmVyTm9TY2hlZHVsZSBhbmQgTm9FeGVjdXRlLiIsInR5cGUiOiJzdHJpbmcifSwia2V5Ijp7ImRlc2NyaXB0aW9uIjoiS2V5IGlzIHRoZSB0YWludCBrZXkgdGhhdCB0aGUgdG9sZXJhdGlvbiBhcHBsaWVzIHRvLiBFbXB0eSBtZWFucyBtYXRjaCBhbGwgdGFpbnQga2V5cy5cbklmIHRoZSBrZXkgaXMgZW1wdHksIG9wZXJhdG9yIG11c3QgYmUgRXhpc3RzOyB0aGlzIGNvbWJpbmF0aW9uIG1lYW5zIHRvIG1hdGNoIGFsbCB2YWx1ZXMgYW5kIGFsbCBrZXlzLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJPcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIHRoZSB2YWx1ZS5cblZhbGlkIG9wZXJhdG9ycyBhcmUgRXhpc3RzIGFuZCBFcXVhbC4gRGVmYXVsdHMgdG8gRXF1YWwuXG5FeGlzdHMgaXMgZXF1aXZhbGVudCB0byB3aWxkY2FyZCBmb3IgdmFsdWUsIHNvIHRoYXQgYSBwb2QgY2FuXG50b2xlcmF0ZSBhbGwgdGFpbnRzIG9mIGEgcGFydGljdWxhciBjYXRlZ29yeS4iLCJ0eXBlIjoic3RyaW5nIn0sInRvbGVyYXRpb25TZWNvbmRzIjp7ImRlc2NyaXB0aW9uIjoiVG9sZXJhdGlvblNlY29uZHMgcmVwcmVzZW50cyB0aGUgcGVyaW9kIG9mIHRpbWUgdGhlIHRvbGVyYXRpb24gKHdoaWNoIG11c3QgYmVcbm9mIGVmZmVjdCBOb0V4ZWN1dGUsIG90aGVyd2lzZSB0aGlzIGZpZWxkIGlzIGlnbm9yZWQpIHRvbGVyYXRlcyB0aGUgdGFpbnQuIEJ5IGRlZmF1bHQsXG5pdCBpcyBub3Qgc2V0LCB3aGljaCBtZWFucyB0b2xlcmF0ZSB0aGUgdGFpbnQgZm9yZXZlciAoZG8gbm90IGV2aWN0KS4gWmVybyBhbmRcbm5lZ2F0aXZlIHZhbHVlcyB3aWxsIGJlIHRyZWF0ZWQgYXMgMCAoZXZpY3QgaW1tZWRpYXRlbHkpIGJ5IHRoZSBzeXN0ZW0uIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJ2YWx1ZSI6eyJkZXNjcmlwdGlvbiI6IlZhbHVlIGlzIHRoZSB0YWludCB2YWx1ZSB0aGUgdG9sZXJhdGlvbiBtYXRjaGVzIHRvLlxuSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cywgdGhlIHZhbHVlIHNob3VsZCBiZSBlbXB0eSwgb3RoZXJ3aXNlIGp1c3QgYSByZWd1bGFyIHN0cmluZy4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9fSwidHlwZSI6Im9iamVjdCJ9LCJkZWNsYXJhdGl2ZUNvbmZpZ3VyYXRpb24iOnsiZGVzY3JpcHRpb24iOiJDb25maWd1cmVzIHJlc291cmNlcyB3aXRoaW4gQ2VudHJhbCBpbiBhIGRlY2xhcmF0aXZlIG1hbm5lci4iLCJwcm9wZXJ0aWVzIjp7ImNvbmZpZ01hcHMiOnsiZGVzY3JpcHRpb24iOiJMaXN0IG9mIGNvbmZpZyBtYXBzIGNvbnRhaW5pbmcgZGVjbGFyYXRpdmUgY29uZmlndXJhdGlvbi4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkxvY2FsQ29uZmlnTWFwUmVmZXJlbmNlIGlzIGEgcmVmZXJlbmNlIHRvIGEgY29uZmlnIG1hcCB3aXRoaW4gdGhlIHNhbWUgbmFtZXNwYWNlLiIsInByb3BlcnRpZXMiOnsibmFtZSI6eyJkZXNjcmlwdGlvbiI6IlRoZSBuYW1lIG9mIHRoZSByZWZlcmVuY2VkIGNvbmZpZyBtYXAuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsibmFtZSJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJzZWNyZXRzIjp7ImRlc2NyaXB0aW9uIjoiTGlzdCBvZiBzZWNyZXRzIGNvbnRhaW5pbmcgZGVjbGFyYXRpdmUgY29uZmlndXJhdGlvbi4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkxvY2FsU2VjcmV0UmVmZXJlbmNlIGlzIGEgcmVmZXJlbmNlIHRvIGEgc2VjcmV0IHdpdGhpbiB0aGUgc2FtZSBuYW1lc3BhY2UuIiwicHJvcGVydGllcyI6eyJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiVGhlIG5hbWUgb2YgdGhlIHJlZmVyZW5jZWQgc2VjcmV0LiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifX0sInR5cGUiOiJvYmplY3QifSwiZGVmYXVsdFRMU1NlY3JldCI6eyJkZXNjcmlwdGlvbiI6IkJ5IGRlZmF1bHQsIENlbnRyYWwgd2lsbCBvbmx5IHNlcnZlIGFuIGludGVybmFsIFRMUyBjZXJ0aWZpY2F0ZSwgd2hpY2ggbWVhbnMgdGhhdCB5b3Ugd2lsbFxubmVlZCB0byBoYW5kbGUgVExTIHRlcm1pbmF0aW9uIGF0IHRoZSBpbmdyZXNzIG9yIGxvYWQgYmFsYW5jZXIgbGV2ZWwuXG5JZiB5b3Ugd2FudCB0byB0ZXJtaW5hdGUgVExTIGluIENlbnRyYWwgYW5kIHNlcnZlIGEgY3VzdG9tIHNlcnZlciBjZXJ0aWZpY2F0ZSwgeW91IGNhbiBzcGVjaWZ5XG5hIHNlY3JldCBjb250YWluaW5nIHRoZSBjZXJ0aWZpY2F0ZSBhbmQgcHJpdmF0ZSBrZXkgaGVyZS4iLCJwcm9wZXJ0aWVzIjp7Im5hbWUiOnsiZGVzY3JpcHRpb24iOiJUaGUgbmFtZSBvZiB0aGUgcmVmZXJlbmNlZCBzZWNyZXQuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsibmFtZSJdLCJ0eXBlIjoib2JqZWN0In0sImV4cG9zdXJlIjp7ImRlc2NyaXB0aW9uIjoiSGVyZSB5b3UgY2FuIGNvbmZpZ3VyZSBpZiB5b3Ugd2FudCB0byBleHBvc2UgY2VudHJhbCB0aHJvdWdoIGEgbm9kZSBwb3J0LCBhIGxvYWQgYmFsYW5jZXIsIG9yIGFuIE9wZW5TaGlmdFxucm91dGUuIiwicHJvcGVydGllcyI6eyJsb2FkQmFsYW5jZXIiOnsiZGVzY3JpcHRpb24iOiJFeHBvc2UgQ2VudHJhbCB0aHJvdWdoIGEgbG9hZCBiYWxhbmNlciBzZXJ2aWNlLiIsInByb3BlcnRpZXMiOnsiZW5hYmxlZCI6eyJkZWZhdWx0IjpmYWxzZSwidHlwZSI6ImJvb2xlYW4ifSwiaXAiOnsiZGVzY3JpcHRpb24iOiJJZiB5b3UgaGF2ZSBhIHN0YXRpYyBJUCBhZGRyZXNzIHJlc2VydmVkIGZvciB5b3VyIGxvYWQgYmFsYW5jZXIsIHlvdSBjYW4gZW50ZXIgaXQgaGVyZS4iLCJ0eXBlIjoic3RyaW5nIn0sInBvcnQiOnsiZGVmYXVsdCI6NDQzLCJkZXNjcmlwdGlvbiI6IkRlZmF1bHRzIHRvIDQ0MyBpZiBub3Qgc2V0LiIsImZvcm1hdCI6ImludDMyIiwibWF4aW11bSI6NjU1MzUsIm1pbmltdW0iOjEsInR5cGUiOiJpbnRlZ2VyIn19LCJ0eXBlIjoib2JqZWN0In0sIm5vZGVQb3J0Ijp7ImRlc2NyaXB0aW9uIjoiRXhwb3NlIENlbnRyYWwgdGhyb3VnaCBhIG5vZGUgcG9ydC4iLCJwcm9wZXJ0aWVzIjp7ImVuYWJsZWQiOnsiZGVmYXVsdCI6ZmFsc2UsInR5cGUiOiJib29sZWFuIn0sInBvcnQiOnsiZGVzY3JpcHRpb24iOiJVc2UgdGhpcyB0byBzcGVjaWZ5IGFuIGV4cGxpY2l0IG5vZGUgcG9ydC4gTW9zdCB1c2VycyBzaG91bGQgbGVhdmUgdGhpcyBlbXB0eS4iLCJmb3JtYXQiOiJpbnQzMiIsIm1heGltdW0iOjY1NTM1LCJtaW5pbXVtIjoxLCJ0eXBlIjoiaW50ZWdlciJ9fSwidHlwZSI6Im9iamVjdCJ9LCJyb3V0ZSI6eyJkZXNjcmlwdGlvbiI6IkV4cG9zZSBDZW50cmFsIHRocm91Z2ggYW4gT3BlblNoaWZ0IHJvdXRlLiIsInByb3BlcnRpZXMiOnsiZW5hYmxlZCI6eyJkZWZhdWx0IjpmYWxzZSwiZGVzY3JpcHRpb24iOiJFeHBvc2UgQ2VudHJhbCB3aXRoIGEgcGFzc3Rocm91Z2ggcm91dGUuIiwidHlwZSI6ImJvb2xlYW4ifSwiaG9zdCI6eyJkZXNjcmlwdGlvbiI6IlNwZWNpZnkgYSBjdXN0b20gaG9zdG5hbWUgZm9yIHRoZSBDZW50cmFsIHJvdXRlLlxuSWYgdW5zcGVjaWZpZWQsIGFuIGFwcHJvcHJpYXRlIGRlZmF1bHQgdmFsdWUgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGNob3NlbiBieSB0aGUgT3BlblNoaWZ0IHJvdXRlIG9wZXJhdG9yLiIsInR5cGUiOiJzdHJpbmcifSwicmVlbmNyeXB0Ijp7ImRlc2NyaXB0aW9uIjoiU2V0IHVwIGEgQ2VudHJhbCByb3V0ZSB3aXRoIHJlZW5jcnlwdCBUTFMgdGVybWluYXRpb24uXG5Gb3IgcmVlbmNyeXB0IHJvdXRlcywgdGhlIHJlcXVlc3QgaXMgdGVybWluYXRlZCBvbiB0aGUgT3BlblNoaWZ0IHJvdXRlciB3aXRoIGEgY3VzdG9tIGNlcnRpZmljYXRlLlxuVGhlIHJlcXVlc3QgaXMgdGhlbiByZWVuY3J5cHRlZCBieSB0aGUgT3BlblNoaWZ0IHJvdXRlciBhbmQgc2VudCB0byBDZW50cmFsLlxuW3VzZXJdIC0tVExTLS1cdTAwM2UgW09wZW5TaGlmdCByb3V0ZXJdIC0tVExTLS1cdTAwM2UgW0NlbnRyYWxdIiwicHJvcGVydGllcyI6eyJlbmFibGVkIjp7ImRlZmF1bHQiOmZhbHNlLCJkZXNjcmlwdGlvbiI6IkV4cG9zZSBDZW50cmFsIHdpdGggYSByZWVuY3J5cHQgcm91dGUuXG5TaG91bGQgbm90IGJlIHVzZWQgZm9yIHNlbnNvciBjb21tdW5pY2F0aW9uLiIsInR5cGUiOiJib29sZWFuIn0sImhvc3QiOnsiZGVzY3JpcHRpb24iOiJTcGVjaWZ5IGEgY3VzdG9tIGhvc3RuYW1lIGZvciB0aGUgQ2VudHJhbCByZWVuY3J5cHQgcm91dGUuXG5JZiB1bnNwZWNpZmllZCwgYW4gYXBwcm9wcmlhdGUgZGVmYXVsdCB2YWx1ZSB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgY2hvc2VuIGJ5IHRoZSBPcGVuU2hpZnQgcm91dGUgb3BlcmF0b3IuIiwidHlwZSI6InN0cmluZyJ9LCJ0bHMiOnsiZGVzY3JpcHRpb24iOiJUTFMgc2V0dGluZ3MgZm9yIGV4cG9zaW5nIENlbnRyYWwgdmlhIGEgcmVlbmNyeXB0IFJvdXRlLiIsInByb3BlcnRpZXMiOnsiY2FDZXJ0aWZpY2F0ZSI6eyJkZXNjcmlwdGlvbiI6IlRoZSBQRU0gZW5jb2RlZCBjZXJ0aWZpY2F0ZSBjaGFpbiB0aGF0IG1heSBiZSB1c2VkIHRvIGVzdGFibGlzaCBhIGNvbXBsZXRlIGNoYWluIG9mIHRydXN0LlxuRGVmYXVsdHMgdG8gdGhlIE9wZW5TaGlmdCBjZXJ0aWZpY2F0ZSBhdXRob3JpdHkuIiwidHlwZSI6InN0cmluZyJ9LCJjZXJ0aWZpY2F0ZSI6eyJkZXNjcmlwdGlvbiI6IlRoZSBQRU0gZW5jb2RlZCBjZXJ0aWZpY2F0ZSB0aGF0IGlzIHNlcnZlZCBvbiB0aGUgcm91dGUuIE11c3QgYmUgYSBzaW5nbGUgc2VydmluZ1xuY2VydGlmaWNhdGUgaW5zdGVhZCBvZiBhIGNlcnRpZmljYXRlIGNoYWluLlxuRGVmYXVsdHMgdG8gYSBjZXJ0aWZpY2F0ZSBzaWduZWQgYnkgdGhlIE9wZW5TaGlmdCBjZXJ0aWZpY2F0ZSBhdXRob3JpdHkuIiwidHlwZSI6InN0cmluZyJ9LCJkZXN0aW5hdGlvbkNBQ2VydGlmaWNhdGUiOnsiZGVzY3JpcHRpb24iOiJUaGUgQ0EgY2VydGlmaWNhdGUgb2YgdGhlIGZpbmFsIGRlc3RpbmF0aW9uLCBpLmUuIG9mIENlbnRyYWwuXG5Vc2VkIGJ5IHRoZSBPcGVuU2hpZnQgcm91dGVyIGZvciBoZWFsdGggY2hlY2tzIG9uIHRoZSBzZWN1cmUgY29ubmVjdGlvbi5cbkRlZmF1bHRzIHRvIHRoZSBDZW50cmFsIGNlcnRpZmljYXRlIGF1dGhvcml0eS4iLCJ0eXBlIjoic3RyaW5nIn0sImtleSI6eyJkZXNjcmlwdGlvbiI6IlRoZSBQRU0gZW5jb2RlZCBwcml2YXRlIGtleSBvZiB0aGUgY2VydGlmaWNhdGUgdGhhdCBpcyBzZXJ2ZWQgb24gdGhlIHJvdXRlLlxuRGVmYXVsdHMgdG8gYSBjZXJ0aWZpY2F0ZSBzaWduZWQgYnkgdGhlIE9wZW5TaGlmdCBjZXJ0aWZpY2F0ZSBhdXRob3JpdHkuIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9LCJob3N0QWxpYXNlcyI6eyJkZXNjcmlwdGlvbiI6Ikhvc3RBbGlhc2VzIGFsbG93cyBjb25maWd1cmluZyBhZGRpdGlvbmFsIGhvc3RuYW1lcyB0byByZXNvbHZlIGluIHRoZSBwb2QncyBob3N0cyBmaWxlLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiSG9zdEFsaWFzIGhvbGRzIHRoZSBtYXBwaW5nIGJldHdlZW4gSVAgYW5kIGhvc3RuYW1lcyB0aGF0IHdpbGwgYmUgaW5qZWN0ZWQgYXMgYW4gZW50cnkgaW4gdGhlXG5wb2QncyBob3N0cyBmaWxlLiIsInByb3BlcnRpZXMiOnsiaG9zdG5hbWVzIjp7ImRlc2NyaXB0aW9uIjoiSG9zdG5hbWVzIGZvciB0aGUgYWJvdmUgSVAgYWRkcmVzcy4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSIsIngta3ViZXJuZXRlcy1saXN0LXR5cGUiOiJhdG9taWMifSwiaXAiOnsiZGVzY3JpcHRpb24iOiJJUCBhZGRyZXNzIG9mIHRoZSBob3N0IGZpbGUgZW50cnkuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsiaXAiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibW9uaXRvcmluZyI6eyJkZXNjcmlwdGlvbiI6IkNvbmZpZ3VyZXMgbW9uaXRvcmluZyBlbmRwb2ludCBmb3IgQ2VudHJhbC4gVGhlIG1vbml0b3JpbmcgZW5kcG9pbnRcbmFsbG93cyBvdGhlciBzZXJ2aWNlcyB0byBjb2xsZWN0IG1ldHJpY3MgZnJvbSBDZW50cmFsLCBwcm92aWRlZCBpblxuUHJvbWV0aGV1cyBjb21wYXRpYmxlIGZvcm1hdC4iLCJwcm9wZXJ0aWVzIjp7ImV4cG9zZUVuZHBvaW50Ijp7ImRlc2NyaXB0aW9uIjoiRXhwb3NlIHRoZSBtb25pdG9yaW5nIGVuZHBvaW50LiBBIG5ldyBzZXJ2aWNlLCBcIm1vbml0b3JpbmdcIixcbndpdGggcG9ydCA5MDkwLCB3aWxsIGJlIGNyZWF0ZWQgYXMgd2VsbCBhcyBhIG5ldHdvcmsgcG9saWN5IGFsbG93aW5nXG5pbmJvdW5kIGNvbm5lY3Rpb25zIHRvIHRoZSBwb3J0LiIsImVudW0iOlsiRW5hYmxlZCIsIkRpc2FibGVkIl0sInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwibm9kZVNlbGVjdG9yIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJJZiB5b3Ugd2FudCB0aGlzIGNvbXBvbmVudCB0byBvbmx5IHJ1biBvbiBzcGVjaWZpYyBub2RlcywgeW91IGNhbiBjb25maWd1cmUgYSBub2RlIHNlbGVjdG9yIGhlcmUuIiwidHlwZSI6Im9iamVjdCJ9LCJub3RpZmllclNlY3JldHNFbmNyeXB0aW9uIjp7ImRlc2NyaXB0aW9uIjoiQ29uZmlndXJlcyB0aGUgZW5jcnlwdGlvbiBvZiBub3RpZmllciBzZWNyZXRzIHN0b3JlZCBpbiB0aGUgQ2VudHJhbCBEQi4iLCJwcm9wZXJ0aWVzIjp7ImVuYWJsZWQiOnsiZGVmYXVsdCI6ZmFsc2UsImRlc2NyaXB0aW9uIjoiRW5hYmxlcyB0aGUgZW5jcnlwdGlvbiBvZiBub3RpZmllciBzZWNyZXRzIHN0b3JlZCBpbiB0aGUgQ2VudHJhbCBEQi4iLCJ0eXBlIjoiYm9vbGVhbiJ9fSwidHlwZSI6Im9iamVjdCJ9LCJwZXJzaXN0ZW5jZSI6eyJkZXNjcmlwdGlvbiI6IlVudXNlZCBmaWVsZC4gVGhpcyBmaWVsZCBleGlzdHMgc29sZWx5IGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHN0YXJ0aW5nIGZyb20gdmVyc2lvbiB2NC42LjAuIiwicHJvcGVydGllcyI6eyJob3N0UGF0aCI6eyJkZXNjcmlwdGlvbiI6IlN0b3JlcyBwZXJzaXN0ZW50IGRhdGEgb24gYSBkaXJlY3Rvcnkgb24gdGhlIGhvc3QuIFRoaXMgaXMgbm90IHJlY29tbWVuZGVkLCBhbmQgc2hvdWxkIG9ubHlcbmJlIHVzZWQgdG9nZXRoZXIgd2l0aCBhIG5vZGUgc2VsZWN0b3IgKG9ubHkgYXZhaWxhYmxlIGluIFlBTUwgdmlldykuIiwicHJvcGVydGllcyI6eyJwYXRoIjp7ImRlc2NyaXB0aW9uIjoiVGhlIHBhdGggb24gdGhlIGhvc3QgcnVubmluZyBDZW50cmFsLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwicGVyc2lzdGVudFZvbHVtZUNsYWltIjp7ImRlc2NyaXB0aW9uIjoiVXNlcyBhIEt1YmVybmV0ZXMgcGVyc2lzdGVudCB2b2x1bWUgY2xhaW0gKFBWQykgdG8gbWFuYWdlIHRoZSBzdG9yYWdlIGxvY2F0aW9uIG9mIHBlcnNpc3RlbnQgZGF0YS5cblJlY29tbWVuZGVkIGZvciBtb3N0IHVzZXJzLiIsInByb3BlcnRpZXMiOnsiY2xhaW1OYW1lIjp7ImRlZmF1bHQiOiJzdGFja3JveC1kYiIsImRlc2NyaXB0aW9uIjoiVGhlIG5hbWUgb2YgdGhlIFBWQyB0byBtYW5hZ2UgcGVyc2lzdGVudCBkYXRhLiBJZiBubyBQVkMgd2l0aCB0aGUgZ2l2ZW4gbmFtZSBleGlzdHMsIGl0IHdpbGwgYmVcbmNyZWF0ZWQuIERlZmF1bHRzIHRvIFwic3RhY2tyb3gtZGJcIiBpZiBub3Qgc2V0LiIsInR5cGUiOiJzdHJpbmcifSwic2l6ZSI6eyJkZXNjcmlwdGlvbiI6IlRoZSBzaXplIG9mIHRoZSBwZXJzaXN0ZW50IHZvbHVtZSB3aGVuIGNyZWF0ZWQgdGhyb3VnaCB0aGUgY2xhaW0uIElmIGEgY2xhaW0gd2FzIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCxcbnRoaXMgY2FuIGJlIHVzZWQgYWZ0ZXIgdGhlIGluaXRpYWwgZGVwbG95bWVudCB0byByZXNpemUgKGdyb3cpIHRoZSB2b2x1bWUgKG9ubHkgc3VwcG9ydGVkIGJ5IHNvbWVcbnN0b3JhZ2UgY2xhc3MgY29udHJvbGxlcnMpLiIsInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsInR5cGUiOiJzdHJpbmcifSwic3RvcmFnZUNsYXNzTmFtZSI6eyJkZXNjcmlwdGlvbiI6IlRoZSBuYW1lIG9mIHRoZSBzdG9yYWdlIGNsYXNzIHRvIHVzZSBmb3IgdGhlIFBWQy4gSWYgeW91ciBjbHVzdGVyIGlzIG5vdCBjb25maWd1cmVkIHdpdGggYSBkZWZhdWx0IHN0b3JhZ2VcbmNsYXNzLCB5b3UgbXVzdCBzZWxlY3QgYSB2YWx1ZSBoZXJlLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwicmVzb3VyY2VzIjp7ImRlc2NyaXB0aW9uIjoiQWxsb3dzIG92ZXJyaWRpbmcgdGhlIGRlZmF1bHQgcmVzb3VyY2Ugc2V0dGluZ3MgZm9yIHRoaXMgY29tcG9uZW50LiBQbGVhc2UgY29uc3VsdCB0aGUgZG9jdW1lbnRhdGlvblxuZm9yIGFuIG92ZXJ2aWV3IG9mIGRlZmF1bHQgcmVzb3VyY2UgcmVxdWlyZW1lbnRzIGFuZCBhIHNpemluZyBndWlkZS4iLCJwcm9wZXJ0aWVzIjp7ImNsYWltcyI6eyJkZXNjcmlwdGlvbiI6IkNsYWltcyBsaXN0cyB0aGUgbmFtZXMgb2YgcmVzb3VyY2VzLCBkZWZpbmVkIGluIHNwZWMucmVzb3VyY2VDbGFpbXMsXG50aGF0IGFyZSB1c2VkIGJ5IHRoaXMgY29udGFpbmVyLlxuXG5UaGlzIGZpZWxkIGRlcGVuZHMgb24gdGhlXG5EeW5hbWljUmVzb3VyY2VBbGxvY2F0aW9uIGZlYXR1cmUgZ2F0ZS5cblxuVGhpcyBmaWVsZCBpcyBpbW11dGFibGUuIEl0IGNhbiBvbmx5IGJlIHNldCBmb3IgY29udGFpbmVycy4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IlJlc291cmNlQ2xhaW0gcmVmZXJlbmNlcyBvbmUgZW50cnkgaW4gUG9kU3BlYy5SZXNvdXJjZUNsYWltcy4iLCJwcm9wZXJ0aWVzIjp7Im5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG11c3QgbWF0Y2ggdGhlIG5hbWUgb2Ygb25lIGVudHJ5IGluIHBvZC5zcGVjLnJlc291cmNlQ2xhaW1zIG9mXG50aGUgUG9kIHdoZXJlIHRoaXMgZmllbGQgaXMgdXNlZC4gSXQgbWFrZXMgdGhhdCByZXNvdXJjZSBhdmFpbGFibGVcbmluc2lkZSBhIGNvbnRhaW5lci4iLCJ0eXBlIjoic3RyaW5nIn0sInJlcXVlc3QiOnsiZGVzY3JpcHRpb24iOiJSZXF1ZXN0IGlzIHRoZSBuYW1lIGNob3NlbiBmb3IgYSByZXF1ZXN0IGluIHRoZSByZWZlcmVuY2VkIGNsYWltLlxuSWYgZW1wdHksIGV2ZXJ5dGhpbmcgZnJvbSB0aGUgY2xhaW0gaXMgbWFkZSBhdmFpbGFibGUsIG90aGVyd2lzZVxub25seSB0aGUgcmVzdWx0IG9mIHRoaXMgcmVxdWVzdC4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJuYW1lIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5IiwieC1rdWJlcm5ldGVzLWxpc3QtbWFwLWtleXMiOlsibmFtZSJdLCJ4LWt1YmVybmV0ZXMtbGlzdC10eXBlIjoibWFwIn0sImxpbWl0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJMaW1pdHMgZGVzY3JpYmVzIHRoZSBtYXhpbXVtIGFtb3VudCBvZiBjb21wdXRlIHJlc291cmNlcyBhbGxvd2VkLlxuTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9jb25maWd1cmF0aW9uL21hbmFnZS1yZXNvdXJjZXMtY29udGFpbmVycy8iLCJ0eXBlIjoib2JqZWN0In0sInJlcXVlc3RzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJkZXNjcmlwdGlvbiI6IlJlcXVlc3RzIGRlc2NyaWJlcyB0aGUgbWluaW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgcmVxdWlyZWQuXG5JZiBSZXF1ZXN0cyBpcyBvbWl0dGVkIGZvciBhIGNvbnRhaW5lciwgaXQgZGVmYXVsdHMgdG8gTGltaXRzIGlmIHRoYXQgaXMgZXhwbGljaXRseSBzcGVjaWZpZWQsXG5vdGhlcndpc2UgdG8gYW4gaW1wbGVtZW50YXRpb24tZGVmaW5lZCB2YWx1ZS4gUmVxdWVzdHMgY2Fubm90IGV4Y2VlZCBMaW1pdHMuXG5Nb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL2NvbmZpZ3VyYXRpb24vbWFuYWdlLXJlc291cmNlcy1jb250YWluZXJzLyIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwidGVsZW1ldHJ5Ijp7ImRlc2NyaXB0aW9uIjoiQ29uZmlndXJlcyB0ZWxlbWV0cnkgc2V0dGluZ3MgZm9yIENlbnRyYWwuIElmIGVuYWJsZWQsIENlbnRyYWwgdHJhbnNtaXRzIHRlbGVtZXRyeSBhbmQgZGlhZ25vc3RpY1xuZGF0YSB0byBhIHJlbW90ZSBzdG9yYWdlIGJhY2tlbmQuIiwicHJvcGVydGllcyI6eyJlbmFibGVkIjp7ImRlZmF1bHQiOnRydWUsImRlc2NyaXB0aW9uIjoiU3BlY2lmaWVzIGlmIFRlbGVtZXRyeSBpcyBlbmFibGVkLiIsInR5cGUiOiJib29sZWFuIn0sInN0b3JhZ2UiOnsiZGVzY3JpcHRpb24iOiJEZWZpbmVzIHRoZSB0ZWxlbWV0cnkgc3RvcmFnZSBiYWNrZW5kIGZvciBDZW50cmFsLiIsInByb3BlcnRpZXMiOnsiZW5kcG9pbnQiOnsiZGVzY3JpcHRpb24iOiJTdG9yYWdlIEFQSSBlbmRwb2ludC4iLCJ0eXBlIjoic3RyaW5nIn0sImtleSI6eyJkZXNjcmlwdGlvbiI6IlN0b3JhZ2UgQVBJIGtleS4gSWYgbm90IHNldCwgdGVsZW1ldHJ5IGlzIGRpc2FibGVkLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwidG9sZXJhdGlvbnMiOnsiZGVzY3JpcHRpb24iOiJJZiB5b3Ugd2FudCB0aGlzIGNvbXBvbmVudCB0byBvbmx5IHJ1biBvbiBzcGVjaWZpYyBub2RlcywgeW91IGNhbiBjb25maWd1cmUgdG9sZXJhdGlvbnMgb2YgdGFpbnRlZCBub2Rlcy4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IlRoZSBwb2QgdGhpcyBUb2xlcmF0aW9uIGlzIGF0dGFjaGVkIHRvIHRvbGVyYXRlcyBhbnkgdGFpbnQgdGhhdCBtYXRjaGVzXG50aGUgdHJpcGxlIFx1MDAzY2tleSx2YWx1ZSxlZmZlY3RcdTAwM2UgdXNpbmcgdGhlIG1hdGNoaW5nIG9wZXJhdG9yIFx1MDAzY29wZXJhdG9yXHUwMDNlLiIsInByb3BlcnRpZXMiOnsiZWZmZWN0Ijp7ImRlc2NyaXB0aW9uIjoiRWZmZWN0IGluZGljYXRlcyB0aGUgdGFpbnQgZWZmZWN0IHRvIG1hdGNoLiBFbXB0eSBtZWFucyBtYXRjaCBhbGwgdGFpbnQgZWZmZWN0cy5cbldoZW4gc3BlY2lmaWVkLCBhbGxvd2VkIHZhbHVlcyBhcmUgTm9TY2hlZHVsZSwgUHJlZmVyTm9TY2hlZHVsZSBhbmQgTm9FeGVjdXRlLiIsInR5cGUiOiJzdHJpbmcifSwia2V5Ijp7ImRlc2NyaXB0aW9uIjoiS2V5IGlzIHRoZSB0YWludCBrZXkgdGhhdCB0aGUgdG9sZXJhdGlvbiBhcHBsaWVzIHRvLiBFbXB0eSBtZWFucyBtYXRjaCBhbGwgdGFpbnQga2V5cy5cbklmIHRoZSBrZXkgaXMgZW1wdHksIG9wZXJhdG9yIG11c3QgYmUgRXhpc3RzOyB0aGlzIGNvbWJpbmF0aW9uIG1lYW5zIHRvIG1hdGNoIGFsbCB2YWx1ZXMgYW5kIGFsbCBrZXlzLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJPcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIHRoZSB2YWx1ZS5cblZhbGlkIG9wZXJhdG9ycyBhcmUgRXhpc3RzIGFuZCBFcXVhbC4gRGVmYXVsdHMgdG8gRXF1YWwuXG5FeGlzdHMgaXMgZXF1aXZhbGVudCB0byB3aWxkY2FyZCBmb3IgdmFsdWUsIHNvIHRoYXQgYSBwb2QgY2FuXG50b2xlcmF0ZSBhbGwgdGFpbnRzIG9mIGEgcGFydGljdWxhciBjYXRlZ29yeS4iLCJ0eXBlIjoic3RyaW5nIn0sInRvbGVyYXRpb25TZWNvbmRzIjp7ImRlc2NyaXB0aW9uIjoiVG9sZXJhdGlvblNlY29uZHMgcmVwcmVzZW50cyB0aGUgcGVyaW9kIG9mIHRpbWUgdGhlIHRvbGVyYXRpb24gKHdoaWNoIG11c3QgYmVcbm9mIGVmZmVjdCBOb0V4ZWN1dGUsIG90aGVyd2lzZSB0aGlzIGZpZWxkIGlzIGlnbm9yZWQpIHRvbGVyYXRlcyB0aGUgdGFpbnQuIEJ5IGRlZmF1bHQsXG5pdCBpcyBub3Qgc2V0LCB3aGljaCBtZWFucyB0b2xlcmF0ZSB0aGUgdGFpbnQgZm9yZXZlciAoZG8gbm90IGV2aWN0KS4gWmVybyBhbmRcbm5lZ2F0aXZlIHZhbHVlcyB3aWxsIGJlIHRyZWF0ZWQgYXMgMCAoZXZpY3QgaW1tZWRpYXRlbHkpIGJ5IHRoZSBzeXN0ZW0uIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJ2YWx1ZSI6eyJkZXNjcmlwdGlvbiI6IlZhbHVlIGlzIHRoZSB0YWludCB2YWx1ZSB0aGUgdG9sZXJhdGlvbiBtYXRjaGVzIHRvLlxuSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cywgdGhlIHZhbHVlIHNob3VsZCBiZSBlbXB0eSwgb3RoZXJ3aXNlIGp1c3QgYSByZWd1bGFyIHN0cmluZy4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9fSwidHlwZSI6Im9iamVjdCJ9LCJjb25maWdBc0NvZGUiOnsiZGVzY3JpcHRpb24iOiJDb25maWctYXMtQ29kZSBjb25maWd1cmF0aW9uLiIsInByb3BlcnRpZXMiOnsiY29uZmlnQXNDb2RlQ29tcG9uZW50Ijp7ImRlZmF1bHQiOiJFbmFibGVkIiwiZGVzY3JpcHRpb24iOiJJZiB5b3Ugd2FudCB0byBkZXBsb3kgdGhlIENvbmZpZyBhcyBDb2RlIGNvbXBvbmVudCwgc2V0IHRoaXMgdG8gXCJFbmFibGVkXCIiLCJlbnVtIjpbIkVuYWJsZWQiLCJEaXNhYmxlZCJdLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In0sImN1c3RvbWl6ZSI6eyJkZXNjcmlwdGlvbiI6IkN1c3RvbWl6YXRpb25zIHRvIGFwcGx5IG9uIGFsbCBDZW50cmFsIFNlcnZpY2VzIGNvbXBvbmVudHMuIiwicHJvcGVydGllcyI6eyJhbm5vdGF0aW9ucyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoiQ3VzdG9tIGFubm90YXRpb25zIHRvIHNldCBvbiBhbGwgbWFuYWdlZCBvYmplY3RzLiIsInR5cGUiOiJvYmplY3QifSwiZW52VmFycyI6eyJkZXNjcmlwdGlvbiI6IkN1c3RvbSBlbnZpcm9ubWVudCB2YXJpYWJsZXMgdG8gc2V0IG9uIG1hbmFnZWQgcG9kcycgY29udGFpbmVycy4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkVudlZhciByZXByZXNlbnRzIGFuIGVudmlyb25tZW50IHZhcmlhYmxlIHByZXNlbnQgaW4gYSBDb250YWluZXIuIiwicHJvcGVydGllcyI6eyJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBvZiB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUuXG5NYXkgY29uc2lzdCBvZiBhbnkgcHJpbnRhYmxlIEFTQ0lJIGNoYXJhY3RlcnMgZXhjZXB0ICc9Jy4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlIjp7ImRlc2NyaXB0aW9uIjoiVmFyaWFibGUgcmVmZXJlbmNlcyAkKFZBUl9OQU1FKSBhcmUgZXhwYW5kZWRcbnVzaW5nIHRoZSBwcmV2aW91c2x5IGRlZmluZWQgZW52aXJvbm1lbnQgdmFyaWFibGVzIGluIHRoZSBjb250YWluZXIgYW5kXG5hbnkgc2VydmljZSBlbnZpcm9ubWVudCB2YXJpYWJsZXMuIElmIGEgdmFyaWFibGUgY2Fubm90IGJlIHJlc29sdmVkLFxudGhlIHJlZmVyZW5jZSBpbiB0aGUgaW5wdXQgc3RyaW5nIHdpbGwgYmUgdW5jaGFuZ2VkLiBEb3VibGUgJCQgYXJlIHJlZHVjZWRcbnRvIGEgc2luZ2xlICQsIHdoaWNoIGFsbG93cyBmb3IgZXNjYXBpbmcgdGhlICQoVkFSX05BTUUpIHN5bnRheDogaS5lLlxuXCIkJChWQVJfTkFNRSlcIiB3aWxsIHByb2R1Y2UgdGhlIHN0cmluZyBsaXRlcmFsIFwiJChWQVJfTkFNRSlcIi5cbkVzY2FwZWQgcmVmZXJlbmNlcyB3aWxsIG5ldmVyIGJlIGV4cGFuZGVkLCByZWdhcmRsZXNzIG9mIHdoZXRoZXIgdGhlIHZhcmlhYmxlXG5leGlzdHMgb3Igbm90LlxuRGVmYXVsdHMgdG8gXCJcIi4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlRnJvbSI6eyJkZXNjcmlwdGlvbiI6IlNvdXJjZSBmb3IgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlJ3MgdmFsdWUuIENhbm5vdCBiZSB1c2VkIGlmIHZhbHVlIGlzIG5vdCBlbXB0eS4iLCJwcm9wZXJ0aWVzIjp7ImNvbmZpZ01hcEtleVJlZiI6eyJkZXNjcmlwdGlvbiI6IlNlbGVjdHMgYSBrZXkgb2YgYSBDb25maWdNYXAuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJUaGUga2V5IHRvIHNlbGVjdC4iLCJ0eXBlIjoic3RyaW5nIn0sIm5hbWUiOnsiZGVmYXVsdCI6IiIsImRlc2NyaXB0aW9uIjoiTmFtZSBvZiB0aGUgcmVmZXJlbnQuXG5UaGlzIGZpZWxkIGlzIGVmZmVjdGl2ZWx5IHJlcXVpcmVkLCBidXQgZHVlIHRvIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IGlzXG5hbGxvd2VkIHRvIGJlIGVtcHR5LiBJbnN0YW5jZXMgb2YgdGhpcyB0eXBlIHdpdGggYW4gZW1wdHkgdmFsdWUgaGVyZSBhcmVcbmFsbW9zdCBjZXJ0YWlubHkgd3JvbmcuXG5Nb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL292ZXJ2aWV3L3dvcmtpbmctd2l0aC1vYmplY3RzL25hbWVzLyNuYW1lcyIsInR5cGUiOiJzdHJpbmcifSwib3B0aW9uYWwiOnsiZGVzY3JpcHRpb24iOiJTcGVjaWZ5IHdoZXRoZXIgdGhlIENvbmZpZ01hcCBvciBpdHMga2V5IG11c3QgYmUgZGVmaW5lZCIsInR5cGUiOiJib29sZWFuIn19LCJyZXF1aXJlZCI6WyJrZXkiXSwidHlwZSI6Im9iamVjdCIsIngta3ViZXJuZXRlcy1tYXAtdHlwZSI6ImF0b21pYyJ9LCJmaWVsZFJlZiI6eyJkZXNjcmlwdGlvbiI6IlNlbGVjdHMgYSBmaWVsZCBvZiB0aGUgcG9kOiBzdXBwb3J0cyBtZXRhZGF0YS5uYW1lLCBtZXRhZGF0YS5uYW1lc3BhY2UsIGBtZXRhZGF0YS5sYWJlbHNbJ1x1MDAzY0tFWVx1MDAzZSddYCwgYG1ldGFkYXRhLmFubm90YXRpb25zWydcdTAwM2NLRVlcdTAwM2UnXWAsXG5zcGVjLm5vZGVOYW1lLCBzcGVjLnNlcnZpY2VBY2NvdW50TmFtZSwgc3RhdHVzLmhvc3RJUCwgc3RhdHVzLnBvZElQLCBzdGF0dXMucG9kSVBzLiIsInByb3BlcnRpZXMiOnsiYXBpVmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IlZlcnNpb24gb2YgdGhlIHNjaGVtYSB0aGUgRmllbGRQYXRoIGlzIHdyaXR0ZW4gaW4gdGVybXMgb2YsIGRlZmF1bHRzIHRvIFwidjFcIi4iLCJ0eXBlIjoic3RyaW5nIn0sImZpZWxkUGF0aCI6eyJkZXNjcmlwdGlvbiI6IlBhdGggb2YgdGhlIGZpZWxkIHRvIHNlbGVjdCBpbiB0aGUgc3BlY2lmaWVkIEFQSSB2ZXJzaW9uLiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbImZpZWxkUGF0aCJdLCJ0eXBlIjoib2JqZWN0IiwieC1rdWJlcm5ldGVzLW1hcC10eXBlIjoiYXRvbWljIn0sImZpbGVLZXlSZWYiOnsiZGVzY3JpcHRpb24iOiJGaWxlS2V5UmVmIHNlbGVjdHMgYSBrZXkgb2YgdGhlIGVudiBmaWxlLlxuUmVxdWlyZXMgdGhlIEVudkZpbGVzIGZlYXR1cmUgZ2F0ZSB0byBiZSBlbmFibGVkLiIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoiVGhlIGtleSB3aXRoaW4gdGhlIGVudiBmaWxlLiBBbiBpbnZhbGlkIGtleSB3aWxsIHByZXZlbnQgdGhlIHBvZCBmcm9tIHN0YXJ0aW5nLlxuVGhlIGtleXMgZGVmaW5lZCB3aXRoaW4gYSBzb3VyY2UgbWF5IGNvbnNpc3Qgb2YgYW55IHByaW50YWJsZSBBU0NJSSBjaGFyYWN0ZXJzIGV4Y2VwdCAnPScuXG5EdXJpbmcgQWxwaGEgc3RhZ2Ugb2YgdGhlIEVudkZpbGVzIGZlYXR1cmUgZ2F0ZSwgdGhlIGtleSBzaXplIGlzIGxpbWl0ZWQgdG8gMTI4IGNoYXJhY3RlcnMuIiwidHlwZSI6InN0cmluZyJ9LCJvcHRpb25hbCI6eyJkZWZhdWx0IjpmYWxzZSwiZGVzY3JpcHRpb24iOiJTcGVjaWZ5IHdoZXRoZXIgdGhlIGZpbGUgb3IgaXRzIGtleSBtdXN0IGJlIGRlZmluZWQuIElmIHRoZSBmaWxlIG9yIGtleVxuZG9lcyBub3QgZXhpc3QsIHRoZW4gdGhlIGVudiB2YXIgaXMgbm90IHB1Ymxpc2hlZC5cbklmIG9wdGlvbmFsIGlzIHNldCB0byB0cnVlIGFuZCB0aGUgc3BlY2lmaWVkIGtleSBkb2VzIG5vdCBleGlzdCxcbnRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSB3aWxsIG5vdCBiZSBzZXQgaW4gdGhlIFBvZCdzIGNvbnRhaW5lcnMuXG5cbklmIG9wdGlvbmFsIGlzIHNldCB0byBmYWxzZSBhbmQgdGhlIHNwZWNpZmllZCBrZXkgZG9lcyBub3QgZXhpc3QsXG5hbiBlcnJvciB3aWxsIGJlIHJldHVybmVkIGR1cmluZyBQb2QgY3JlYXRpb24uIiwidHlwZSI6ImJvb2xlYW4ifSwicGF0aCI6eyJkZXNjcmlwdGlvbiI6IlRoZSBwYXRoIHdpdGhpbiB0aGUgdm9sdW1lIGZyb20gd2hpY2ggdG8gc2VsZWN0IHRoZSBmaWxlLlxuTXVzdCBiZSByZWxhdGl2ZSBhbmQgbWF5IG5vdCBjb250YWluIHRoZSAnLi4nIHBhdGggb3Igc3RhcnQgd2l0aCAnLi4nLiIsInR5cGUiOiJzdHJpbmcifSwidm9sdW1lTmFtZSI6eyJkZXNjcmlwdGlvbiI6IlRoZSBuYW1lIG9mIHRoZSB2b2x1bWUgbW91bnQgY29udGFpbmluZyB0aGUgZW52IGZpbGUuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsia2V5IiwicGF0aCIsInZvbHVtZU5hbWUiXSwidHlwZSI6Im9iamVjdCIsIngta3ViZXJuZXRlcy1tYXAtdHlwZSI6ImF0b21pYyJ9LCJyZXNvdXJjZUZpZWxkUmVmIjp7ImRlc2NyaXB0aW9uIjoiU2VsZWN0cyBhIHJlc291cmNlIG9mIHRoZSBjb250YWluZXI6IG9ubHkgcmVzb3VyY2VzIGxpbWl0cyBhbmQgcmVxdWVzdHNcbihsaW1pdHMuY3B1LCBsaW1pdHMubWVtb3J5LCBsaW1pdHMuZXBoZW1lcmFsLXN0b3JhZ2UsIHJlcXVlc3RzLmNwdSwgcmVxdWVzdHMubWVtb3J5IGFuZCByZXF1ZXN0cy5lcGhlbWVyYWwtc3RvcmFnZSkgYXJlIGN1cnJlbnRseSBzdXBwb3J0ZWQuIiwicHJvcGVydGllcyI6eyJjb250YWluZXJOYW1lIjp7ImRlc2NyaXB0aW9uIjoiQ29udGFpbmVyIG5hbWU6IHJlcXVpcmVkIGZvciB2b2x1bWVzLCBvcHRpb25hbCBmb3IgZW52IHZhcnMiLCJ0eXBlIjoic3RyaW5nIn0sImRpdmlzb3IiOnsiYW55T2YiOlt7InR5cGUiOiJpbnRlZ2VyIn0seyJ0eXBlIjoic3RyaW5nIn1dLCJkZXNjcmlwdGlvbiI6IlNwZWNpZmllcyB0aGUgb3V0cHV0IGZvcm1hdCBvZiB0aGUgZXhwb3NlZCByZXNvdXJjZXMsIGRlZmF1bHRzIHRvIFwiMVwiIiwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJyZXNvdXJjZSI6eyJkZXNjcmlwdGlvbiI6IlJlcXVpcmVkOiByZXNvdXJjZSB0byBzZWxlY3QiLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJyZXNvdXJjZSJdLCJ0eXBlIjoib2JqZWN0IiwieC1rdWJlcm5ldGVzLW1hcC10eXBlIjoiYXRvbWljIn0sInNlY3JldEtleVJlZiI6eyJkZXNjcmlwdGlvbiI6IlNlbGVjdHMgYSBrZXkgb2YgYSBzZWNyZXQgaW4gdGhlIHBvZCdzIG5hbWVzcGFjZSIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoiVGhlIGtleSBvZiB0aGUgc2VjcmV0IHRvIHNlbGVjdCBmcm9tLiAgTXVzdCBiZSBhIHZhbGlkIHNlY3JldCBrZXkuIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlZmF1bHQiOiIiLCJkZXNjcmlwdGlvbiI6Ik5hbWUgb2YgdGhlIHJlZmVyZW50LlxuVGhpcyBmaWVsZCBpcyBlZmZlY3RpdmVseSByZXF1aXJlZCwgYnV0IGR1ZSB0byBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBpc1xuYWxsb3dlZCB0byBiZSBlbXB0eS4gSW5zdGFuY2VzIG9mIHRoaXMgdHlwZSB3aXRoIGFuIGVtcHR5IHZhbHVlIGhlcmUgYXJlXG5hbG1vc3QgY2VydGFpbmx5IHdyb25nLlxuTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9vdmVydmlldy93b3JraW5nLXdpdGgtb2JqZWN0cy9uYW1lcy8jbmFtZXMiLCJ0eXBlIjoic3RyaW5nIn0sIm9wdGlvbmFsIjp7ImRlc2NyaXB0aW9uIjoiU3BlY2lmeSB3aGV0aGVyIHRoZSBTZWNyZXQgb3IgaXRzIGtleSBtdXN0IGJlIGRlZmluZWQiLCJ0eXBlIjoiYm9vbGVhbiJ9fSwicmVxdWlyZWQiOlsia2V5Il0sInR5cGUiOiJvYmplY3QiLCJ4LWt1YmVybmV0ZXMtbWFwLXR5cGUiOiJhdG9taWMifX0sInR5cGUiOiJvYmplY3QifX0sInJlcXVpcmVkIjpbIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJDdXN0b20gbGFiZWxzIHRvIHNldCBvbiBhbGwgbWFuYWdlZCBvYmplY3RzLiIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwiZWdyZXNzIjp7ImRlc2NyaXB0aW9uIjoiU2V0dGluZ3MgcmVsYXRlZCB0byBvdXRnb2luZyBuZXR3b3JrIHRyYWZmaWMuIiwicHJvcGVydGllcyI6eyJjb25uZWN0aXZpdHlQb2xpY3kiOnsiZGVmYXVsdCI6Ik9ubGluZSIsImRlc2NyaXB0aW9uIjoiQ29uZmlndXJlcyB3aGV0aGVyIFJlZCBIYXQgQWR2YW5jZWQgQ2x1c3RlciBTZWN1cml0eSBzaG91bGQgcnVuIGluIG9ubGluZSBvciBvZmZsaW5lIChkaXNjb25uZWN0ZWQpIG1vZGUuXG5JbiBvZmZsaW5lIG1vZGUsIGF1dG9tYXRpYyB1cGRhdGVzIG9mIHZ1bG5lcmFiaWxpdHkgZGVmaW5pdGlvbnMgYW5kIGtlcm5lbCBtb2R1bGVzIGFyZSBkaXNhYmxlZC4iLCJlbnVtIjpbIk9ubGluZSIsIk9mZmxpbmUiXSwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJpbWFnZVB1bGxTZWNyZXRzIjp7ImRlc2NyaXB0aW9uIjoiQWRkaXRpb25hbCBpbWFnZSBwdWxsIHNlY3JldHMgdG8gYmUgdGFrZW4gaW50byBhY2NvdW50IGZvciBwdWxsaW5nIGltYWdlcy4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkxvY2FsU2VjcmV0UmVmZXJlbmNlIGlzIGEgcmVmZXJlbmNlIHRvIGEgc2VjcmV0IHdpdGhpbiB0aGUgc2FtZSBuYW1lc3BhY2UuIiwicHJvcGVydGllcyI6eyJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiVGhlIG5hbWUgb2YgdGhlIHJlZmVyZW5jZWQgc2VjcmV0LiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibWlzYyI6eyJkZXNjcmlwdGlvbiI6IkRlcHJlY2F0ZWQgZmllbGQuIFRoaXMgZmllbGQgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuXG5NaXNjZWxsYW5lb3VzIHNldHRpbmdzLiIsInByb3BlcnRpZXMiOnsiY3JlYXRlU0NDcyI6eyJkZXNjcmlwdGlvbiI6IkRlcHJlY2F0ZWQgZmllbGQuIFRoaXMgZmllbGQgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuXG5TZXQgdGhpcyB0byB0cnVlIHRvIGhhdmUgdGhlIG9wZXJhdG9yIGNyZWF0ZSBTZWN1cml0eUNvbnRleHRDb25zdHJhaW50cyAoU0NDcykgZm9yIHRoZSBvcGVyYW5kcy4gVGhpc1xuaXNuJ3QgdXN1YWxseSBuZWVkZWQsIGFuZCBtYXkgaW50ZXJmZXJlIHdpdGggb3RoZXIgd29ya2xvYWRzLiIsInR5cGUiOiJib29sZWFuIn19LCJ0eXBlIjoib2JqZWN0In0sIm1vbml0b3JpbmciOnsiZGVzY3JpcHRpb24iOiJNb25pdG9yaW5nIGNvbmZpZ3VyYXRpb24uIiwicHJvcGVydGllcyI6eyJvcGVuc2hpZnQiOnsiZGVzY3JpcHRpb24iOiJPcGVuU2hpZnRNb25pdG9yaW5nIGRlZmluZXMgc2V0dGluZ3MgcmVsYXRlZCB0byBPcGVuU2hpZnQgTW9uaXRvcmluZyIsInByb3BlcnRpZXMiOnsiZW5hYmxlZCI6eyJkZWZhdWx0Ijp0cnVlLCJ0eXBlIjoiYm9vbGVhbiJ9fSwicmVxdWlyZWQiOlsiZW5hYmxlZCJdLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sIm5ldHdvcmsiOnsiZGVzY3JpcHRpb24iOiJOZXR3b3JrIGNvbmZpZ3VyYXRpb24uIiwicHJvcGVydGllcyI6eyJwb2xpY2llcyI6eyJkZWZhdWx0IjoiRW5hYmxlZCIsImRlc2NyaXB0aW9uIjoiVG8gcHJvdmlkZSBzZWN1cml0eSBhdCB0aGUgbmV0d29yayBsZXZlbCB0aGUgQUNTIE9wZXJhdG9yIGNyZWF0ZXMgTmV0d29ya1BvbGljeSByZXNvdXJjZXMgYnkgZGVmYXVsdC4gSWYgeW91IHdhbnQgdG8gbWFuYWdlIHlvdXIgb3duIE5ldHdvcmtQb2xpY3kgb2JqZWN0cyB0aGVuIHNldCB0aGlzIHRvIFwiRGlzYWJsZWRcIi4iLCJlbnVtIjpbIkVuYWJsZWQiLCJEaXNhYmxlZCJdLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In0sIm92ZXJsYXlzIjp7ImRlc2NyaXB0aW9uIjoiT3ZlcmxheXMiLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6Iks4c09iamVjdE92ZXJsYXkgaXMgYW4gb3ZlcmxheSB0aGF0IGFwcGxpZXMgYSBzZXQgb2YgcGF0Y2hlcyB0byBhIHJlc291cmNlLlxuSXQgdGFyZ2V0cyBhIHJlc291cmNlIGJ5IGl0cyBBUEkgdmVyc2lvbiwga2luZCwgYW5kIG5hbWUsIGFuZCBhcHBsaWVzXG5hIGxpc3Qgb2YgcGF0Y2hlcyB0byB0aGlzIHJlc291cmNlLlxuXG4jIEV4YW1wbGVzXG5cbiMjIEFkZGluZyBhbiBhbm5vdGF0aW9uIHRvIGEgcmVzb3VyY2VcblxuXHRhcGlWZXJzaW9uOiB2MVxuXHRraW5kOiBTZXJ2aWNlQWNjb3VudFxuXHRuYW1lOiBjZW50cmFsXG5cdHBhdGNoZXM6XG5cdC0gcGF0aDogbWV0YWRhdGEuYW5ub3RhdGlvbnMuZWtzXFwuYW1hem9uYXdzXFwuY29tL3JvbGUtYXJuXG5cdCAgdmFsdWU6IFwiXFxcImFybjphd3M6aWFtOjEyMzQ6cm9sZVxcXCJcIlxuXG4jIyBBZGRpbmcgYW4gZW52aXJvbm1lbnQgdmFyaWFibGUgdG8gYSBkZXBsb3ltZW50XG5cblx0YXBpVmVyc2lvbjogYXBwcy92MVxuXHRraW5kOiBEZXBsb3ltZW50XG5cdG5hbWU6IGNlbnRyYWxcblx0cGF0Y2hlczpcblx0LSBwYXRoOiBzcGVjLnRlbXBsYXRlLnNwZWMuY29udGFpbmVyc1tuYW1lOmNlbnRyYWxdLmVudlstMV1cblx0ICB2YWx1ZTogfFxuXHQgICAgbmFtZTogTVlfRU5WX1ZBUlxuXHQgICAgdmFsdWU6IHZhbHVlXG5cbiMjIEFkZGluZyBhbiBpbmdyZXNzIHRvIGEgbmV0d29yayBwb2xpY3lcblxuXHRhcGlWZXJzaW9uOiBuZXR3b3JraW5nLms4cy5pby92MVxuXHRraW5kOiBOZXR3b3JrUG9saWN5XG5cdG5hbWU6IGFsbG93LWV4dC10by1jZW50cmFsXG5cdHBhdGNoZXM6XG5cdC0gcGF0aDogc3BlYy5pbmdyZXNzWy0xXVxuXHQgIHZhbHVlOiB8XG5cdCAgICBwb3J0czpcblx0ICAgIC0gcG9ydDogOTk5XG5cdCAgICAgIHByb3RvY29sOiBUQ1BcblxuIyMgQ2hhbmdpbmcgdGhlIHZhbHVlIG9mIGEgY29uZmlnTWFwXG5cblx0YXBpVmVyc2lvbjogdjFcblx0a2luZDogQ29uZmlnTWFwXG5cdG5hbWU6IGNlbnRyYWwtZW5kcG9pbnRzXG5cdHBhdGNoZXM6XG5cdC0gcGF0aDogZGF0YS5lbmRwb2ludHNcXC55YW1sOlxuXHQgIHZlcmJhdGltOiB8XG5cdCAgICBkaXNhYmxlRGVmYXVsdDogZmFsc2VcblxuIyMgQWRkaW5nIGEgY29udGFpbmVyIHRvIGEgZGVwbG95bWVudFxuXG5cdGFwaVZlcnNpb246IGFwcHMvdjFcblx0a2luZDogRGVwbG95bWVudFxuXHRuYW1lOiBjZW50cmFsXG5cdHBhdGNoZXM6XG5cdCAgLSBwYXRoOiBzcGVjLnRlbXBsYXRlLnNwZWMuY29udGFpbmVyc1stMV1cblx0ICAgIHZhbHVlOiB8XG5cdCAgICAgIG5hbWU6IG5naW54XG5cdCAgICAgIGltYWdlOiBuZ2lueFxuXHQgICAgICBwb3J0czpcblx0ICAgICAgLSBjb250YWluZXJQb3J0OiA4MDAwXG5cdCAgICAgICAgbmFtZTogaHR0cFxuXHQgICAgICAgIHByb3RvY29sOiBUQ1AiLCJwcm9wZXJ0aWVzIjp7ImFwaVZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJSZXNvdXJjZSBBUEkgdmVyc2lvbi4iLCJ0eXBlIjoic3RyaW5nIn0sImtpbmQiOnsiZGVzY3JpcHRpb24iOiJSZXNvdXJjZSBraW5kLiIsInR5cGUiOiJzdHJpbmcifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWUgb2YgcmVzb3VyY2UuIiwidHlwZSI6InN0cmluZyJ9LCJvcHRpb25hbCI6eyJkZXNjcmlwdGlvbiI6Ik9wdGlvbmFsIG1hcmtzIHRoZSBvdmVybGF5IGFzIG9wdGlvbmFsLlxuV2hlbiBPcHRpb25hbCBpcyB0cnVlLCBhbmQgdGhlIHNwZWNpZmllZCByZXNvdXJjZSBkb2VzIG5vdCBleGlzdCBpbiB0aGUgb3V0cHV0IG1hbmlmZXN0cywgdGhlIG92ZXJsYXkgd2lsbCBiZSBza2lwcGVkLCBhbmQgYSB3YXJuaW5nIHdpbGwgYmUgbG9nZ2VkLlxuV2hlbiBPcHRpb25hbCBpcyBmYWxzZSwgYW5kIHRoZSBzcGVjaWZpZWQgcmVzb3VyY2UgZG9lcyBub3QgZXhpc3QgaW4gdGhlIG91dHB1dCBtYW5pZmVzdHMsIGFuIGVycm9yIHdpbGwgYmUgdGhyb3duLiIsInR5cGUiOiJib29sZWFuIn0sInBhdGNoZXMiOnsiZGVzY3JpcHRpb24iOiJMaXN0IG9mIHBhdGNoZXMgdG8gYXBwbHkgdG8gcmVzb3VyY2UuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJLOHNPYmplY3RPdmVybGF5UGF0Y2ggZGVmaW5lcyBhIHBhdGNoIHRvIGFwcGx5IHRvIGEgcmVzb3VyY2UuIiwicHJvcGVydGllcyI6eyJwYXRoIjp7ImRlc2NyaXB0aW9uIjoiUGF0aCBvZiB0aGUgZm9ybSBhLltrZXkxOnZhbHVlMV0uYi5bOnZhbHVlMl1cbldoZXJlIFtrZXkxOnZhbHVlMV0gaXMgYSBzZWxlY3RvciBmb3IgYSBrZXktdmFsdWUgcGFpciB0byBpZGVudGlmeSBhIGxpc3QgZWxlbWVudCBhbmQgWzp2YWx1ZV0gaXMgYSB2YWx1ZVxuc2VsZWN0b3IgdG8gaWRlbnRpZnkgYSBsaXN0IGVsZW1lbnQgaW4gYSBsZWFmIGxpc3QuXG5BbGwgcGF0aCBpbnRlcm1lZGlhdGUgbm9kZXMgbXVzdCBleGlzdC4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlIjp7ImRlc2NyaXB0aW9uIjoiVmFsdWUgdG8gYWRkLCBkZWxldGUgb3IgcmVwbGFjZS5cbkZvciBhZGQsIHRoZSBwYXRoIHNob3VsZCBiZSBhIG5ldyBsZWFmLlxuRm9yIGRlbGV0ZSwgdmFsdWUgc2hvdWxkIGJlIHVuc2V0LlxuRm9yIHJlcGxhY2UsIHBhdGggc2hvdWxkIHJlZmVyZW5jZSBhbiBleGlzdGluZyBub2RlLlxuQWxsIHZhbHVlcyBhcmUgc3RyaW5ncyBidXQgYXJlIGNvbnZlcnRlZCBpbnRvIGFwcHJvcHJpYXRlIHR5cGUgYmFzZWQgb24gc2NoZW1hLiIsInR5cGUiOiJzdHJpbmcifSwidmVyYmF0aW0iOnsiZGVzY3JpcHRpb24iOiJWZXJiYXRpbSB2YWx1ZSB0byBhZGQsIGRlbGV0ZSBvciByZXBsYWNlLlxuU2FtZSBhcyBWYWx1ZSwgaG93ZXZlciB0aGUgY29udGVudCBpcyBub3QgaW50ZXJwcmV0ZWQgYXMgWUFNTCwgYnV0IHRyZWF0ZWQgYXMgbGl0ZXJhbCBzdHJpbmcgaW5zdGVhZC5cbkF0IGxlYXN0IG9uZSBvZiBWYWx1ZSBhbmQgVmVyYmF0aW0gbXVzdCBiZSBlbXB0eS4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9fSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwic2Nhbm5lciI6eyJkZXNjcmlwdGlvbiI6IlNldHRpbmdzIGZvciB0aGUgU2Nhbm5lciBjb21wb25lbnQsIHdoaWNoIGlzIHJlc3BvbnNpYmxlIGZvciB2dWxuZXJhYmlsaXR5IHNjYW5uaW5nIG9mIGNvbnRhaW5lclxuaW1hZ2VzLiIsInByb3BlcnRpZXMiOnsiYW5hbHl6ZXIiOnsiZGVzY3JpcHRpb24iOiJTZXR0aW5ncyBwZXJ0YWluaW5nIHRvIHRoZSBhbmFseXplciBkZXBsb3ltZW50LCBzdWNoIGFzIGZvciBhdXRvc2NhbGluZy4iLCJwcm9wZXJ0aWVzIjp7Imhvc3RBbGlhc2VzIjp7ImRlc2NyaXB0aW9uIjoiSG9zdEFsaWFzZXMgYWxsb3dzIGNvbmZpZ3VyaW5nIGFkZGl0aW9uYWwgaG9zdG5hbWVzIHRvIHJlc29sdmUgaW4gdGhlIHBvZCdzIGhvc3RzIGZpbGUuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJIb3N0QWxpYXMgaG9sZHMgdGhlIG1hcHBpbmcgYmV0d2VlbiBJUCBhbmQgaG9zdG5hbWVzIHRoYXQgd2lsbCBiZSBpbmplY3RlZCBhcyBhbiBlbnRyeSBpbiB0aGVcbnBvZCdzIGhvc3RzIGZpbGUuIiwicHJvcGVydGllcyI6eyJob3N0bmFtZXMiOnsiZGVzY3JpcHRpb24iOiJIb3N0bmFtZXMgZm9yIHRoZSBhYm92ZSBJUCBhZGRyZXNzLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5IiwieC1rdWJlcm5ldGVzLWxpc3QtdHlwZSI6ImF0b21pYyJ9LCJpcCI6eyJkZXNjcmlwdGlvbiI6IklQIGFkZHJlc3Mgb2YgdGhlIGhvc3QgZmlsZSBlbnRyeS4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJpcCJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJub2RlU2VsZWN0b3IiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6IklmIHlvdSB3YW50IHRoaXMgY29tcG9uZW50IHRvIG9ubHkgcnVuIG9uIHNwZWNpZmljIG5vZGVzLCB5b3UgY2FuIGNvbmZpZ3VyZSBhIG5vZGUgc2VsZWN0b3IgaGVyZS4iLCJ0eXBlIjoib2JqZWN0In0sInJlc291cmNlcyI6eyJkZXNjcmlwdGlvbiI6IkFsbG93cyBvdmVycmlkaW5nIHRoZSBkZWZhdWx0IHJlc291cmNlIHNldHRpbmdzIGZvciB0aGlzIGNvbXBvbmVudC4gUGxlYXNlIGNvbnN1bHQgdGhlIGRvY3VtZW50YXRpb25cbmZvciBhbiBvdmVydmlldyBvZiBkZWZhdWx0IHJlc291cmNlIHJlcXVpcmVtZW50cyBhbmQgYSBzaXppbmcgZ3VpZGUuIiwicHJvcGVydGllcyI6eyJjbGFpbXMiOnsiZGVzY3JpcHRpb24iOiJDbGFpbXMgbGlzdHMgdGhlIG5hbWVzIG9mIHJlc291cmNlcywgZGVmaW5lZCBpbiBzcGVjLnJlc291cmNlQ2xhaW1zLFxudGhhdCBhcmUgdXNlZCBieSB0aGlzIGNvbnRhaW5lci5cblxuVGhpcyBmaWVsZCBkZXBlbmRzIG9uIHRoZVxuRHluYW1pY1Jlc291cmNlQWxsb2NhdGlvbiBmZWF0dXJlIGdhdGUuXG5cblRoaXMgZmllbGQgaXMgaW1tdXRhYmxlLiBJdCBjYW4gb25seSBiZSBzZXQgZm9yIGNvbnRhaW5lcnMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJSZXNvdXJjZUNsYWltIHJlZmVyZW5jZXMgb25lIGVudHJ5IGluIFBvZFNwZWMuUmVzb3VyY2VDbGFpbXMuIiwicHJvcGVydGllcyI6eyJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBtdXN0IG1hdGNoIHRoZSBuYW1lIG9mIG9uZSBlbnRyeSBpbiBwb2Quc3BlYy5yZXNvdXJjZUNsYWltcyBvZlxudGhlIFBvZCB3aGVyZSB0aGlzIGZpZWxkIGlzIHVzZWQuIEl0IG1ha2VzIHRoYXQgcmVzb3VyY2UgYXZhaWxhYmxlXG5pbnNpZGUgYSBjb250YWluZXIuIiwidHlwZSI6InN0cmluZyJ9LCJyZXF1ZXN0Ijp7ImRlc2NyaXB0aW9uIjoiUmVxdWVzdCBpcyB0aGUgbmFtZSBjaG9zZW4gZm9yIGEgcmVxdWVzdCBpbiB0aGUgcmVmZXJlbmNlZCBjbGFpbS5cbklmIGVtcHR5LCBldmVyeXRoaW5nIGZyb20gdGhlIGNsYWltIGlzIG1hZGUgYXZhaWxhYmxlLCBvdGhlcndpc2Vcbm9ubHkgdGhlIHJlc3VsdCBvZiB0aGlzIHJlcXVlc3QuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsibmFtZSJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSIsIngta3ViZXJuZXRlcy1saXN0LW1hcC1rZXlzIjpbIm5hbWUiXSwieC1rdWJlcm5ldGVzLWxpc3QtdHlwZSI6Im1hcCJ9LCJsaW1pdHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsiYW55T2YiOlt7InR5cGUiOiJpbnRlZ2VyIn0seyJ0eXBlIjoic3RyaW5nIn1dLCJwYXR0ZXJuIjoiXihcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSgoW0tNR1RQRV1pKXxbbnVta01HVFBFXXwoW2VFXShcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSkpPyQiLCJ4LWt1YmVybmV0ZXMtaW50LW9yLXN0cmluZyI6dHJ1ZX0sImRlc2NyaXB0aW9uIjoiTGltaXRzIGRlc2NyaWJlcyB0aGUgbWF4aW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgYWxsb3dlZC5cbk1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtcmVzb3VyY2VzLWNvbnRhaW5lcnMvIiwidHlwZSI6Im9iamVjdCJ9LCJyZXF1ZXN0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJSZXF1ZXN0cyBkZXNjcmliZXMgdGhlIG1pbmltdW0gYW1vdW50IG9mIGNvbXB1dGUgcmVzb3VyY2VzIHJlcXVpcmVkLlxuSWYgUmVxdWVzdHMgaXMgb21pdHRlZCBmb3IgYSBjb250YWluZXIsIGl0IGRlZmF1bHRzIHRvIExpbWl0cyBpZiB0aGF0IGlzIGV4cGxpY2l0bHkgc3BlY2lmaWVkLFxub3RoZXJ3aXNlIHRvIGFuIGltcGxlbWVudGF0aW9uLWRlZmluZWQgdmFsdWUuIFJlcXVlc3RzIGNhbm5vdCBleGNlZWQgTGltaXRzLlxuTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9jb25maWd1cmF0aW9uL21hbmFnZS1yZXNvdXJjZXMtY29udGFpbmVycy8iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInNjYWxpbmciOnsiZGVzY3JpcHRpb24iOiJDb250cm9scyB0aGUgbnVtYmVyIG9mIGFuYWx5emVyIHJlcGxpY2FzIGFuZCBhdXRvc2NhbGluZy4iLCJwcm9wZXJ0aWVzIjp7ImF1dG9TY2FsaW5nIjp7ImRlZmF1bHQiOiJFbmFibGVkIiwiZGVzY3JpcHRpb24iOiJXaGVuIGVuYWJsZWQsIHRoZSBudW1iZXIgb2YgY29tcG9uZW50IHJlcGxpY2FzIGlzIG1hbmFnZWQgZHluYW1pY2FsbHkgYmFzZWQgb24gdGhlIGxvYWQsIHdpdGhpbiB0aGUgbGltaXRzXG5zcGVjaWZpZWQgYmVsb3cuIiwiZW51bSI6WyJFbmFibGVkIiwiRGlzYWJsZWQiXSwidHlwZSI6InN0cmluZyJ9LCJtYXhSZXBsaWNhcyI6eyJkZWZhdWx0Ijo1LCJmb3JtYXQiOiJpbnQzMiIsIm1pbmltdW0iOjEsInR5cGUiOiJpbnRlZ2VyIn0sIm1pblJlcGxpY2FzIjp7ImRlZmF1bHQiOjIsImZvcm1hdCI6ImludDMyIiwibWluaW11bSI6MSwidHlwZSI6ImludGVnZXIifSwicmVwbGljYXMiOnsiZGVmYXVsdCI6MywiZGVzY3JpcHRpb24iOiJXaGVuIGF1dG9zY2FsaW5nIGlzIGRpc2FibGVkLCB0aGUgbnVtYmVyIG9mIHJlcGxpY2FzIHdpbGwgYWx3YXlzIGJlIGNvbmZpZ3VyZWQgdG8gbWF0Y2ggdGhpcyB2YWx1ZS4iLCJmb3JtYXQiOiJpbnQzMiIsIm1pbmltdW0iOjEsInR5cGUiOiJpbnRlZ2VyIn19LCJ0eXBlIjoib2JqZWN0In0sInRvbGVyYXRpb25zIjp7ImRlc2NyaXB0aW9uIjoiSWYgeW91IHdhbnQgdGhpcyBjb21wb25lbnQgdG8gb25seSBydW4gb24gc3BlY2lmaWMgbm9kZXMsIHlvdSBjYW4gY29uZmlndXJlIHRvbGVyYXRpb25zIG9mIHRhaW50ZWQgbm9kZXMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJUaGUgcG9kIHRoaXMgVG9sZXJhdGlvbiBpcyBhdHRhY2hlZCB0byB0b2xlcmF0ZXMgYW55IHRhaW50IHRoYXQgbWF0Y2hlc1xudGhlIHRyaXBsZSBcdTAwM2NrZXksdmFsdWUsZWZmZWN0XHUwMDNlIHVzaW5nIHRoZSBtYXRjaGluZyBvcGVyYXRvciBcdTAwM2NvcGVyYXRvclx1MDAzZS4iLCJwcm9wZXJ0aWVzIjp7ImVmZmVjdCI6eyJkZXNjcmlwdGlvbiI6IkVmZmVjdCBpbmRpY2F0ZXMgdGhlIHRhaW50IGVmZmVjdCB0byBtYXRjaC4gRW1wdHkgbWVhbnMgbWF0Y2ggYWxsIHRhaW50IGVmZmVjdHMuXG5XaGVuIHNwZWNpZmllZCwgYWxsb3dlZCB2YWx1ZXMgYXJlIE5vU2NoZWR1bGUsIFByZWZlck5vU2NoZWR1bGUgYW5kIE5vRXhlY3V0ZS4iLCJ0eXBlIjoic3RyaW5nIn0sImtleSI6eyJkZXNjcmlwdGlvbiI6IktleSBpcyB0aGUgdGFpbnQga2V5IHRoYXQgdGhlIHRvbGVyYXRpb24gYXBwbGllcyB0by4gRW1wdHkgbWVhbnMgbWF0Y2ggYWxsIHRhaW50IGtleXMuXG5JZiB0aGUga2V5IGlzIGVtcHR5LCBvcGVyYXRvciBtdXN0IGJlIEV4aXN0czsgdGhpcyBjb21iaW5hdGlvbiBtZWFucyB0byBtYXRjaCBhbGwgdmFsdWVzIGFuZCBhbGwga2V5cy4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoiT3BlcmF0b3IgcmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byB0aGUgdmFsdWUuXG5WYWxpZCBvcGVyYXRvcnMgYXJlIEV4aXN0cyBhbmQgRXF1YWwuIERlZmF1bHRzIHRvIEVxdWFsLlxuRXhpc3RzIGlzIGVxdWl2YWxlbnQgdG8gd2lsZGNhcmQgZm9yIHZhbHVlLCBzbyB0aGF0IGEgcG9kIGNhblxudG9sZXJhdGUgYWxsIHRhaW50cyBvZiBhIHBhcnRpY3VsYXIgY2F0ZWdvcnkuIiwidHlwZSI6InN0cmluZyJ9LCJ0b2xlcmF0aW9uU2Vjb25kcyI6eyJkZXNjcmlwdGlvbiI6IlRvbGVyYXRpb25TZWNvbmRzIHJlcHJlc2VudHMgdGhlIHBlcmlvZCBvZiB0aW1lIHRoZSB0b2xlcmF0aW9uICh3aGljaCBtdXN0IGJlXG5vZiBlZmZlY3QgTm9FeGVjdXRlLCBvdGhlcndpc2UgdGhpcyBmaWVsZCBpcyBpZ25vcmVkKSB0b2xlcmF0ZXMgdGhlIHRhaW50LiBCeSBkZWZhdWx0LFxuaXQgaXMgbm90IHNldCwgd2hpY2ggbWVhbnMgdG9sZXJhdGUgdGhlIHRhaW50IGZvcmV2ZXIgKGRvIG5vdCBldmljdCkuIFplcm8gYW5kXG5uZWdhdGl2ZSB2YWx1ZXMgd2lsbCBiZSB0cmVhdGVkIGFzIDAgKGV2aWN0IGltbWVkaWF0ZWx5KSBieSB0aGUgc3lzdGVtLiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwidmFsdWUiOnsiZGVzY3JpcHRpb24iOiJWYWx1ZSBpcyB0aGUgdGFpbnQgdmFsdWUgdGhlIHRvbGVyYXRpb24gbWF0Y2hlcyB0by5cbklmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMsIHRoZSB2YWx1ZSBzaG91bGQgYmUgZW1wdHksIG90aGVyd2lzZSBqdXN0IGEgcmVndWxhciBzdHJpbmcuIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifX0sInR5cGUiOiJvYmplY3QifSwiZGIiOnsiZGVzY3JpcHRpb24iOiJTZXR0aW5ncyBwZXJ0YWluaW5nIHRvIHRoZSBkYXRhYmFzZSB1c2VkIGJ5IHRoZSBSZWQgSGF0IEFkdmFuY2VkIENsdXN0ZXIgU2VjdXJpdHkgU2Nhbm5lci4iLCJwcm9wZXJ0aWVzIjp7Imhvc3RBbGlhc2VzIjp7ImRlc2NyaXB0aW9uIjoiSG9zdEFsaWFzZXMgYWxsb3dzIGNvbmZpZ3VyaW5nIGFkZGl0aW9uYWwgaG9zdG5hbWVzIHRvIHJlc29sdmUgaW4gdGhlIHBvZCdzIGhvc3RzIGZpbGUuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJIb3N0QWxpYXMgaG9sZHMgdGhlIG1hcHBpbmcgYmV0d2VlbiBJUCBhbmQgaG9zdG5hbWVzIHRoYXQgd2lsbCBiZSBpbmplY3RlZCBhcyBhbiBlbnRyeSBpbiB0aGVcbnBvZCdzIGhvc3RzIGZpbGUuIiwicHJvcGVydGllcyI6eyJob3N0bmFtZXMiOnsiZGVzY3JpcHRpb24iOiJIb3N0bmFtZXMgZm9yIHRoZSBhYm92ZSBJUCBhZGRyZXNzLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5IiwieC1rdWJlcm5ldGVzLWxpc3QtdHlwZSI6ImF0b21pYyJ9LCJpcCI6eyJkZXNjcmlwdGlvbiI6IklQIGFkZHJlc3Mgb2YgdGhlIGhvc3QgZmlsZSBlbnRyeS4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJpcCJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJub2RlU2VsZWN0b3IiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6IklmIHlvdSB3YW50IHRoaXMgY29tcG9uZW50IHRvIG9ubHkgcnVuIG9uIHNwZWNpZmljIG5vZGVzLCB5b3UgY2FuIGNvbmZpZ3VyZSBhIG5vZGUgc2VsZWN0b3IgaGVyZS4iLCJ0eXBlIjoib2JqZWN0In0sInJlc291cmNlcyI6eyJkZXNjcmlwdGlvbiI6IkFsbG93cyBvdmVycmlkaW5nIHRoZSBkZWZhdWx0IHJlc291cmNlIHNldHRpbmdzIGZvciB0aGlzIGNvbXBvbmVudC4gUGxlYXNlIGNvbnN1bHQgdGhlIGRvY3VtZW50YXRpb25cbmZvciBhbiBvdmVydmlldyBvZiBkZWZhdWx0IHJlc291cmNlIHJlcXVpcmVtZW50cyBhbmQgYSBzaXppbmcgZ3VpZGUuIiwicHJvcGVydGllcyI6eyJjbGFpbXMiOnsiZGVzY3JpcHRpb24iOiJDbGFpbXMgbGlzdHMgdGhlIG5hbWVzIG9mIHJlc291cmNlcywgZGVmaW5lZCBpbiBzcGVjLnJlc291cmNlQ2xhaW1zLFxudGhhdCBhcmUgdXNlZCBieSB0aGlzIGNvbnRhaW5lci5cblxuVGhpcyBmaWVsZCBkZXBlbmRzIG9uIHRoZVxuRHluYW1pY1Jlc291cmNlQWxsb2NhdGlvbiBmZWF0dXJlIGdhdGUuXG5cblRoaXMgZmllbGQgaXMgaW1tdXRhYmxlLiBJdCBjYW4gb25seSBiZSBzZXQgZm9yIGNvbnRhaW5lcnMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJSZXNvdXJjZUNsYWltIHJlZmVyZW5jZXMgb25lIGVudHJ5IGluIFBvZFNwZWMuUmVzb3VyY2VDbGFpbXMuIiwicHJvcGVydGllcyI6eyJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBtdXN0IG1hdGNoIHRoZSBuYW1lIG9mIG9uZSBlbnRyeSBpbiBwb2Quc3BlYy5yZXNvdXJjZUNsYWltcyBvZlxudGhlIFBvZCB3aGVyZSB0aGlzIGZpZWxkIGlzIHVzZWQuIEl0IG1ha2VzIHRoYXQgcmVzb3VyY2UgYXZhaWxhYmxlXG5pbnNpZGUgYSBjb250YWluZXIuIiwidHlwZSI6InN0cmluZyJ9LCJyZXF1ZXN0Ijp7ImRlc2NyaXB0aW9uIjoiUmVxdWVzdCBpcyB0aGUgbmFtZSBjaG9zZW4gZm9yIGEgcmVxdWVzdCBpbiB0aGUgcmVmZXJlbmNlZCBjbGFpbS5cbklmIGVtcHR5LCBldmVyeXRoaW5nIGZyb20gdGhlIGNsYWltIGlzIG1hZGUgYXZhaWxhYmxlLCBvdGhlcndpc2Vcbm9ubHkgdGhlIHJlc3VsdCBvZiB0aGlzIHJlcXVlc3QuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsibmFtZSJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSIsIngta3ViZXJuZXRlcy1saXN0LW1hcC1rZXlzIjpbIm5hbWUiXSwieC1rdWJlcm5ldGVzLWxpc3QtdHlwZSI6Im1hcCJ9LCJsaW1pdHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsiYW55T2YiOlt7InR5cGUiOiJpbnRlZ2VyIn0seyJ0eXBlIjoic3RyaW5nIn1dLCJwYXR0ZXJuIjoiXihcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSgoW0tNR1RQRV1pKXxbbnVta01HVFBFXXwoW2VFXShcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSkpPyQiLCJ4LWt1YmVybmV0ZXMtaW50LW9yLXN0cmluZyI6dHJ1ZX0sImRlc2NyaXB0aW9uIjoiTGltaXRzIGRlc2NyaWJlcyB0aGUgbWF4aW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgYWxsb3dlZC5cbk1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtcmVzb3VyY2VzLWNvbnRhaW5lcnMvIiwidHlwZSI6Im9iamVjdCJ9LCJyZXF1ZXN0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJSZXF1ZXN0cyBkZXNjcmliZXMgdGhlIG1pbmltdW0gYW1vdW50IG9mIGNvbXB1dGUgcmVzb3VyY2VzIHJlcXVpcmVkLlxuSWYgUmVxdWVzdHMgaXMgb21pdHRlZCBmb3IgYSBjb250YWluZXIsIGl0IGRlZmF1bHRzIHRvIExpbWl0cyBpZiB0aGF0IGlzIGV4cGxpY2l0bHkgc3BlY2lmaWVkLFxub3RoZXJ3aXNlIHRvIGFuIGltcGxlbWVudGF0aW9uLWRlZmluZWQgdmFsdWUuIFJlcXVlc3RzIGNhbm5vdCBleGNlZWQgTGltaXRzLlxuTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9jb25maWd1cmF0aW9uL21hbmFnZS1yZXNvdXJjZXMtY29udGFpbmVycy8iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInRvbGVyYXRpb25zIjp7ImRlc2NyaXB0aW9uIjoiSWYgeW91IHdhbnQgdGhpcyBjb21wb25lbnQgdG8gb25seSBydW4gb24gc3BlY2lmaWMgbm9kZXMsIHlvdSBjYW4gY29uZmlndXJlIHRvbGVyYXRpb25zIG9mIHRhaW50ZWQgbm9kZXMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJUaGUgcG9kIHRoaXMgVG9sZXJhdGlvbiBpcyBhdHRhY2hlZCB0byB0b2xlcmF0ZXMgYW55IHRhaW50IHRoYXQgbWF0Y2hlc1xudGhlIHRyaXBsZSBcdTAwM2NrZXksdmFsdWUsZWZmZWN0XHUwMDNlIHVzaW5nIHRoZSBtYXRjaGluZyBvcGVyYXRvciBcdTAwM2NvcGVyYXRvclx1MDAzZS4iLCJwcm9wZXJ0aWVzIjp7ImVmZmVjdCI6eyJkZXNjcmlwdGlvbiI6IkVmZmVjdCBpbmRpY2F0ZXMgdGhlIHRhaW50IGVmZmVjdCB0byBtYXRjaC4gRW1wdHkgbWVhbnMgbWF0Y2ggYWxsIHRhaW50IGVmZmVjdHMuXG5XaGVuIHNwZWNpZmllZCwgYWxsb3dlZCB2YWx1ZXMgYXJlIE5vU2NoZWR1bGUsIFByZWZlck5vU2NoZWR1bGUgYW5kIE5vRXhlY3V0ZS4iLCJ0eXBlIjoic3RyaW5nIn0sImtleSI6eyJkZXNjcmlwdGlvbiI6IktleSBpcyB0aGUgdGFpbnQga2V5IHRoYXQgdGhlIHRvbGVyYXRpb24gYXBwbGllcyB0by4gRW1wdHkgbWVhbnMgbWF0Y2ggYWxsIHRhaW50IGtleXMuXG5JZiB0aGUga2V5IGlzIGVtcHR5LCBvcGVyYXRvciBtdXN0IGJlIEV4aXN0czsgdGhpcyBjb21iaW5hdGlvbiBtZWFucyB0byBtYXRjaCBhbGwgdmFsdWVzIGFuZCBhbGwga2V5cy4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoiT3BlcmF0b3IgcmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byB0aGUgdmFsdWUuXG5WYWxpZCBvcGVyYXRvcnMgYXJlIEV4aXN0cyBhbmQgRXF1YWwuIERlZmF1bHRzIHRvIEVxdWFsLlxuRXhpc3RzIGlzIGVxdWl2YWxlbnQgdG8gd2lsZGNhcmQgZm9yIHZhbHVlLCBzbyB0aGF0IGEgcG9kIGNhblxudG9sZXJhdGUgYWxsIHRhaW50cyBvZiBhIHBhcnRpY3VsYXIgY2F0ZWdvcnkuIiwidHlwZSI6InN0cmluZyJ9LCJ0b2xlcmF0aW9uU2Vjb25kcyI6eyJkZXNjcmlwdGlvbiI6IlRvbGVyYXRpb25TZWNvbmRzIHJlcHJlc2VudHMgdGhlIHBlcmlvZCBvZiB0aW1lIHRoZSB0b2xlcmF0aW9uICh3aGljaCBtdXN0IGJlXG5vZiBlZmZlY3QgTm9FeGVjdXRlLCBvdGhlcndpc2UgdGhpcyBmaWVsZCBpcyBpZ25vcmVkKSB0b2xlcmF0ZXMgdGhlIHRhaW50LiBCeSBkZWZhdWx0LFxuaXQgaXMgbm90IHNldCwgd2hpY2ggbWVhbnMgdG9sZXJhdGUgdGhlIHRhaW50IGZvcmV2ZXIgKGRvIG5vdCBldmljdCkuIFplcm8gYW5kXG5uZWdhdGl2ZSB2YWx1ZXMgd2lsbCBiZSB0cmVhdGVkIGFzIDAgKGV2aWN0IGltbWVkaWF0ZWx5KSBieSB0aGUgc3lzdGVtLiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwidmFsdWUiOnsiZGVzY3JpcHRpb24iOiJWYWx1ZSBpcyB0aGUgdGFpbnQgdmFsdWUgdGhlIHRvbGVyYXRpb24gbWF0Y2hlcyB0by5cbklmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMsIHRoZSB2YWx1ZSBzaG91bGQgYmUgZW1wdHksIG90aGVyd2lzZSBqdXN0IGEgcmVndWxhciBzdHJpbmcuIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifX0sInR5cGUiOiJvYmplY3QifSwibW9uaXRvcmluZyI6eyJkZXNjcmlwdGlvbiI6IkNvbmZpZ3VyZXMgbW9uaXRvcmluZyBlbmRwb2ludCBmb3IgU2Nhbm5lci4gVGhlIG1vbml0b3JpbmcgZW5kcG9pbnRcbmFsbG93cyBvdGhlciBzZXJ2aWNlcyB0byBjb2xsZWN0IG1ldHJpY3MgZnJvbSBTY2FubmVyLCBwcm92aWRlZCBpblxuUHJvbWV0aGV1cyBjb21wYXRpYmxlIGZvcm1hdC4iLCJwcm9wZXJ0aWVzIjp7ImV4cG9zZUVuZHBvaW50Ijp7ImRlc2NyaXB0aW9uIjoiRXhwb3NlIHRoZSBtb25pdG9yaW5nIGVuZHBvaW50LiBBIG5ldyBzZXJ2aWNlLCBcIm1vbml0b3JpbmdcIixcbndpdGggcG9ydCA5MDkwLCB3aWxsIGJlIGNyZWF0ZWQgYXMgd2VsbCBhcyBhIG5ldHdvcmsgcG9saWN5IGFsbG93aW5nXG5pbmJvdW5kIGNvbm5lY3Rpb25zIHRvIHRoZSBwb3J0LiIsImVudW0iOlsiRW5hYmxlZCIsIkRpc2FibGVkIl0sInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwic2Nhbm5lckNvbXBvbmVudCI6eyJkZXNjcmlwdGlvbiI6IklmIHlvdSBkbyBub3Qgd2FudCB0byBkZXBsb3kgdGhlIFJlZCBIYXQgQWR2YW5jZWQgQ2x1c3RlciBTZWN1cml0eSBTY2FubmVyLCB5b3UgY2FuIGRpc2FibGUgaXQgaGVyZVxuKG5vdCByZWNvbW1lbmRlZCkuIEJ5IGRlZmF1bHQsIHRoZSBzY2FubmVyIGlzIGVuYWJsZWQuXG5JZiB5b3UgZG8gc28sIGFsbCB0aGUgc2V0dGluZ3MgaW4gdGhpcyBzZWN0aW9uIHdpbGwgaGF2ZSBubyBlZmZlY3QuIiwiZW51bSI6WyJFbmFibGVkIiwiRGlzYWJsZWQiXSwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJzY2FubmVyVjQiOnsiZGVzY3JpcHRpb24iOiJTZXR0aW5ncyBmb3IgdGhlIFNjYW5uZXIgVjQgY29tcG9uZW50LCB3aGljaCBjYW4gcnVuIGluIGFkZGl0aW9uIHRvIHRoZSBwcmV2aW91c2x5IGV4aXN0aW5nIFNjYW5uZXIgY29tcG9uZW50cyIsInByb3BlcnRpZXMiOnsiZGIiOnsiZGVzY3JpcHRpb24iOiJTZXR0aW5ncyBwZXJ0YWluaW5nIHRvIHRoZSBEQiBkZXBsb3ltZW50LiIsInByb3BlcnRpZXMiOnsiaG9zdEFsaWFzZXMiOnsiZGVzY3JpcHRpb24iOiJIb3N0QWxpYXNlcyBhbGxvd3MgY29uZmlndXJpbmcgYWRkaXRpb25hbCBob3N0bmFtZXMgdG8gcmVzb2x2ZSBpbiB0aGUgcG9kJ3MgaG9zdHMgZmlsZS4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6Ikhvc3RBbGlhcyBob2xkcyB0aGUgbWFwcGluZyBiZXR3ZWVuIElQIGFuZCBob3N0bmFtZXMgdGhhdCB3aWxsIGJlIGluamVjdGVkIGFzIGFuIGVudHJ5IGluIHRoZVxucG9kJ3MgaG9zdHMgZmlsZS4iLCJwcm9wZXJ0aWVzIjp7Imhvc3RuYW1lcyI6eyJkZXNjcmlwdGlvbiI6Ikhvc3RuYW1lcyBmb3IgdGhlIGFib3ZlIElQIGFkZHJlc3MuIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkiLCJ4LWt1YmVybmV0ZXMtbGlzdC10eXBlIjoiYXRvbWljIn0sImlwIjp7ImRlc2NyaXB0aW9uIjoiSVAgYWRkcmVzcyBvZiB0aGUgaG9zdCBmaWxlIGVudHJ5LiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbImlwIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm5vZGVTZWxlY3RvciI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoiSWYgeW91IHdhbnQgdGhpcyBjb21wb25lbnQgdG8gb25seSBydW4gb24gc3BlY2lmaWMgbm9kZXMsIHlvdSBjYW4gY29uZmlndXJlIGEgbm9kZSBzZWxlY3RvciBoZXJlLiIsInR5cGUiOiJvYmplY3QifSwicGVyc2lzdGVuY2UiOnsiZGVzY3JpcHRpb24iOiJDb25maWd1cmVzIGhvdyBTY2FubmVyIFY0IHNob3VsZCBzdG9yZSBpdHMgcGVyc2lzdGVudCBkYXRhLlxuWW91IGNhbiB1c2UgYSBwZXJzaXN0ZW50IHZvbHVtZSBjbGFpbSAodGhlIHJlY29tbWVuZGVkIGRlZmF1bHQpLCBhIGhvc3QgcGF0aCxcbm9yIGFuIGVtcHR5RGlyIHZvbHVtZSBpZiBTY2FubmVyIFY0IGlzIHJ1bm5pbmcgb24gYSBzZWN1cmVkIGNsdXN0ZXIgd2l0aG91dCBkZWZhdWx0IFN0b3JhZ2VDbGFzcy4iLCJwcm9wZXJ0aWVzIjp7Imhvc3RQYXRoIjp7ImRlc2NyaXB0aW9uIjoiU3RvcmVzIHBlcnNpc3RlbnQgZGF0YSBvbiBhIGRpcmVjdG9yeSBvbiB0aGUgaG9zdC4gVGhpcyBpcyBub3QgcmVjb21tZW5kZWQsIGFuZCBzaG91bGQgb25seVxuYmUgdXNlZCB0b2dldGhlciB3aXRoIGEgbm9kZSBzZWxlY3RvciAob25seSBhdmFpbGFibGUgaW4gWUFNTCB2aWV3KS4iLCJwcm9wZXJ0aWVzIjp7InBhdGgiOnsiZGVzY3JpcHRpb24iOiJUaGUgcGF0aCBvbiB0aGUgaG9zdCBydW5uaW5nIENlbnRyYWwuIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJwZXJzaXN0ZW50Vm9sdW1lQ2xhaW0iOnsiZGVzY3JpcHRpb24iOiJVc2VzIGEgS3ViZXJuZXRlcyBwZXJzaXN0ZW50IHZvbHVtZSBjbGFpbSAoUFZDKSB0byBtYW5hZ2UgdGhlIHN0b3JhZ2UgbG9jYXRpb24gb2YgcGVyc2lzdGVudCBkYXRhLlxuUmVjb21tZW5kZWQgZm9yIG1vc3QgdXNlcnMuIiwicHJvcGVydGllcyI6eyJjbGFpbU5hbWUiOnsiZGVmYXVsdCI6InNjYW5uZXItdjQtZGIiLCJkZXNjcmlwdGlvbiI6IlRoZSBuYW1lIG9mIHRoZSBQVkMgdG8gbWFuYWdlIHBlcnNpc3RlbnQgZGF0YS4gSWYgbm8gUFZDIHdpdGggdGhlIGdpdmVuIG5hbWUgZXhpc3RzLCBpdCB3aWxsIGJlXG5jcmVhdGVkLiBEZWZhdWx0cyB0byBcInNjYW5uZXItdjQtZGJcIiBpZiBub3Qgc2V0LiIsInR5cGUiOiJzdHJpbmcifSwic2l6ZSI6eyJkZXNjcmlwdGlvbiI6IlRoZSBzaXplIG9mIHRoZSBwZXJzaXN0ZW50IHZvbHVtZSB3aGVuIGNyZWF0ZWQgdGhyb3VnaCB0aGUgY2xhaW0uIElmIGEgY2xhaW0gd2FzIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCxcbnRoaXMgY2FuIGJlIHVzZWQgYWZ0ZXIgdGhlIGluaXRpYWwgZGVwbG95bWVudCB0byByZXNpemUgKGdyb3cpIHRoZSB2b2x1bWUgKG9ubHkgc3VwcG9ydGVkIGJ5IHNvbWVcbnN0b3JhZ2UgY2xhc3MgY29udHJvbGxlcnMpLiIsInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsInR5cGUiOiJzdHJpbmcifSwic3RvcmFnZUNsYXNzTmFtZSI6eyJkZXNjcmlwdGlvbiI6IlRoZSBuYW1lIG9mIHRoZSBzdG9yYWdlIGNsYXNzIHRvIHVzZSBmb3IgdGhlIFBWQy4gSWYgeW91ciBjbHVzdGVyIGlzIG5vdCBjb25maWd1cmVkIHdpdGggYSBkZWZhdWx0IHN0b3JhZ2VcbmNsYXNzLCB5b3UgbXVzdCBzZWxlY3QgYSB2YWx1ZSBoZXJlLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwicmVzb3VyY2VzIjp7ImRlc2NyaXB0aW9uIjoiQWxsb3dzIG92ZXJyaWRpbmcgdGhlIGRlZmF1bHQgcmVzb3VyY2Ugc2V0dGluZ3MgZm9yIHRoaXMgY29tcG9uZW50LiBQbGVhc2UgY29uc3VsdCB0aGUgZG9jdW1lbnRhdGlvblxuZm9yIGFuIG92ZXJ2aWV3IG9mIGRlZmF1bHQgcmVzb3VyY2UgcmVxdWlyZW1lbnRzIGFuZCBhIHNpemluZyBndWlkZS4iLCJwcm9wZXJ0aWVzIjp7ImNsYWltcyI6eyJkZXNjcmlwdGlvbiI6IkNsYWltcyBsaXN0cyB0aGUgbmFtZXMgb2YgcmVzb3VyY2VzLCBkZWZpbmVkIGluIHNwZWMucmVzb3VyY2VDbGFpbXMsXG50aGF0IGFyZSB1c2VkIGJ5IHRoaXMgY29udGFpbmVyLlxuXG5UaGlzIGZpZWxkIGRlcGVuZHMgb24gdGhlXG5EeW5hbWljUmVzb3VyY2VBbGxvY2F0aW9uIGZlYXR1cmUgZ2F0ZS5cblxuVGhpcyBmaWVsZCBpcyBpbW11dGFibGUuIEl0IGNhbiBvbmx5IGJlIHNldCBmb3IgY29udGFpbmVycy4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IlJlc291cmNlQ2xhaW0gcmVmZXJlbmNlcyBvbmUgZW50cnkgaW4gUG9kU3BlYy5SZXNvdXJjZUNsYWltcy4iLCJwcm9wZXJ0aWVzIjp7Im5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG11c3QgbWF0Y2ggdGhlIG5hbWUgb2Ygb25lIGVudHJ5IGluIHBvZC5zcGVjLnJlc291cmNlQ2xhaW1zIG9mXG50aGUgUG9kIHdoZXJlIHRoaXMgZmllbGQgaXMgdXNlZC4gSXQgbWFrZXMgdGhhdCByZXNvdXJjZSBhdmFpbGFibGVcbmluc2lkZSBhIGNvbnRhaW5lci4iLCJ0eXBlIjoic3RyaW5nIn0sInJlcXVlc3QiOnsiZGVzY3JpcHRpb24iOiJSZXF1ZXN0IGlzIHRoZSBuYW1lIGNob3NlbiBmb3IgYSByZXF1ZXN0IGluIHRoZSByZWZlcmVuY2VkIGNsYWltLlxuSWYgZW1wdHksIGV2ZXJ5dGhpbmcgZnJvbSB0aGUgY2xhaW0gaXMgbWFkZSBhdmFpbGFibGUsIG90aGVyd2lzZVxub25seSB0aGUgcmVzdWx0IG9mIHRoaXMgcmVxdWVzdC4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJuYW1lIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5IiwieC1rdWJlcm5ldGVzLWxpc3QtbWFwLWtleXMiOlsibmFtZSJdLCJ4LWt1YmVybmV0ZXMtbGlzdC10eXBlIjoibWFwIn0sImxpbWl0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJMaW1pdHMgZGVzY3JpYmVzIHRoZSBtYXhpbXVtIGFtb3VudCBvZiBjb21wdXRlIHJlc291cmNlcyBhbGxvd2VkLlxuTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9jb25maWd1cmF0aW9uL21hbmFnZS1yZXNvdXJjZXMtY29udGFpbmVycy8iLCJ0eXBlIjoib2JqZWN0In0sInJlcXVlc3RzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJkZXNjcmlwdGlvbiI6IlJlcXVlc3RzIGRlc2NyaWJlcyB0aGUgbWluaW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgcmVxdWlyZWQuXG5JZiBSZXF1ZXN0cyBpcyBvbWl0dGVkIGZvciBhIGNvbnRhaW5lciwgaXQgZGVmYXVsdHMgdG8gTGltaXRzIGlmIHRoYXQgaXMgZXhwbGljaXRseSBzcGVjaWZpZWQsXG5vdGhlcndpc2UgdG8gYW4gaW1wbGVtZW50YXRpb24tZGVmaW5lZCB2YWx1ZS4gUmVxdWVzdHMgY2Fubm90IGV4Y2VlZCBMaW1pdHMuXG5Nb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL2NvbmZpZ3VyYXRpb24vbWFuYWdlLXJlc291cmNlcy1jb250YWluZXJzLyIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwidG9sZXJhdGlvbnMiOnsiZGVzY3JpcHRpb24iOiJJZiB5b3Ugd2FudCB0aGlzIGNvbXBvbmVudCB0byBvbmx5IHJ1biBvbiBzcGVjaWZpYyBub2RlcywgeW91IGNhbiBjb25maWd1cmUgdG9sZXJhdGlvbnMgb2YgdGFpbnRlZCBub2Rlcy4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IlRoZSBwb2QgdGhpcyBUb2xlcmF0aW9uIGlzIGF0dGFjaGVkIHRvIHRvbGVyYXRlcyBhbnkgdGFpbnQgdGhhdCBtYXRjaGVzXG50aGUgdHJpcGxlIFx1MDAzY2tleSx2YWx1ZSxlZmZlY3RcdTAwM2UgdXNpbmcgdGhlIG1hdGNoaW5nIG9wZXJhdG9yIFx1MDAzY29wZXJhdG9yXHUwMDNlLiIsInByb3BlcnRpZXMiOnsiZWZmZWN0Ijp7ImRlc2NyaXB0aW9uIjoiRWZmZWN0IGluZGljYXRlcyB0aGUgdGFpbnQgZWZmZWN0IHRvIG1hdGNoLiBFbXB0eSBtZWFucyBtYXRjaCBhbGwgdGFpbnQgZWZmZWN0cy5cbldoZW4gc3BlY2lmaWVkLCBhbGxvd2VkIHZhbHVlcyBhcmUgTm9TY2hlZHVsZSwgUHJlZmVyTm9TY2hlZHVsZSBhbmQgTm9FeGVjdXRlLiIsInR5cGUiOiJzdHJpbmcifSwia2V5Ijp7ImRlc2NyaXB0aW9uIjoiS2V5IGlzIHRoZSB0YWludCBrZXkgdGhhdCB0aGUgdG9sZXJhdGlvbiBhcHBsaWVzIHRvLiBFbXB0eSBtZWFucyBtYXRjaCBhbGwgdGFpbnQga2V5cy5cbklmIHRoZSBrZXkgaXMgZW1wdHksIG9wZXJhdG9yIG11c3QgYmUgRXhpc3RzOyB0aGlzIGNvbWJpbmF0aW9uIG1lYW5zIHRvIG1hdGNoIGFsbCB2YWx1ZXMgYW5kIGFsbCBrZXlzLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJPcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIHRoZSB2YWx1ZS5cblZhbGlkIG9wZXJhdG9ycyBhcmUgRXhpc3RzIGFuZCBFcXVhbC4gRGVmYXVsdHMgdG8gRXF1YWwuXG5FeGlzdHMgaXMgZXF1aXZhbGVudCB0byB3aWxkY2FyZCBmb3IgdmFsdWUsIHNvIHRoYXQgYSBwb2QgY2FuXG50b2xlcmF0ZSBhbGwgdGFpbnRzIG9mIGEgcGFydGljdWxhciBjYXRlZ29yeS4iLCJ0eXBlIjoic3RyaW5nIn0sInRvbGVyYXRpb25TZWNvbmRzIjp7ImRlc2NyaXB0aW9uIjoiVG9sZXJhdGlvblNlY29uZHMgcmVwcmVzZW50cyB0aGUgcGVyaW9kIG9mIHRpbWUgdGhlIHRvbGVyYXRpb24gKHdoaWNoIG11c3QgYmVcbm9mIGVmZmVjdCBOb0V4ZWN1dGUsIG90aGVyd2lzZSB0aGlzIGZpZWxkIGlzIGlnbm9yZWQpIHRvbGVyYXRlcyB0aGUgdGFpbnQuIEJ5IGRlZmF1bHQsXG5pdCBpcyBub3Qgc2V0LCB3aGljaCBtZWFucyB0b2xlcmF0ZSB0aGUgdGFpbnQgZm9yZXZlciAoZG8gbm90IGV2aWN0KS4gWmVybyBhbmRcbm5lZ2F0aXZlIHZhbHVlcyB3aWxsIGJlIHRyZWF0ZWQgYXMgMCAoZXZpY3QgaW1tZWRpYXRlbHkpIGJ5IHRoZSBzeXN0ZW0uIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJ2YWx1ZSI6eyJkZXNjcmlwdGlvbiI6IlZhbHVlIGlzIHRoZSB0YWludCB2YWx1ZSB0aGUgdG9sZXJhdGlvbiBtYXRjaGVzIHRvLlxuSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cywgdGhlIHZhbHVlIHNob3VsZCBiZSBlbXB0eSwgb3RoZXJ3aXNlIGp1c3QgYSByZWd1bGFyIHN0cmluZy4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9fSwidHlwZSI6Im9iamVjdCJ9LCJpbmRleGVyIjp7ImRlc2NyaXB0aW9uIjoiU2V0dGluZ3MgcGVydGFpbmluZyB0byB0aGUgaW5kZXhlciBkZXBsb3ltZW50LiIsInByb3BlcnRpZXMiOnsiaG9zdEFsaWFzZXMiOnsiZGVzY3JpcHRpb24iOiJIb3N0QWxpYXNlcyBhbGxvd3MgY29uZmlndXJpbmcgYWRkaXRpb25hbCBob3N0bmFtZXMgdG8gcmVzb2x2ZSBpbiB0aGUgcG9kJ3MgaG9zdHMgZmlsZS4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6Ikhvc3RBbGlhcyBob2xkcyB0aGUgbWFwcGluZyBiZXR3ZWVuIElQIGFuZCBob3N0bmFtZXMgdGhhdCB3aWxsIGJlIGluamVjdGVkIGFzIGFuIGVudHJ5IGluIHRoZVxucG9kJ3MgaG9zdHMgZmlsZS4iLCJwcm9wZXJ0aWVzIjp7Imhvc3RuYW1lcyI6eyJkZXNjcmlwdGlvbiI6Ikhvc3RuYW1lcyBmb3IgdGhlIGFib3ZlIElQIGFkZHJlc3MuIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkiLCJ4LWt1YmVybmV0ZXMtbGlzdC10eXBlIjoiYXRvbWljIn0sImlwIjp7ImRlc2NyaXB0aW9uIjoiSVAgYWRkcmVzcyBvZiB0aGUgaG9zdCBmaWxlIGVudHJ5LiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbImlwIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm5vZGVTZWxlY3RvciI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoiSWYgeW91IHdhbnQgdGhpcyBjb21wb25lbnQgdG8gb25seSBydW4gb24gc3BlY2lmaWMgbm9kZXMsIHlvdSBjYW4gY29uZmlndXJlIGEgbm9kZSBzZWxlY3RvciBoZXJlLiIsInR5cGUiOiJvYmplY3QifSwicmVzb3VyY2VzIjp7ImRlc2NyaXB0aW9uIjoiQWxsb3dzIG92ZXJyaWRpbmcgdGhlIGRlZmF1bHQgcmVzb3VyY2Ugc2V0dGluZ3MgZm9yIHRoaXMgY29tcG9uZW50LiBQbGVhc2UgY29uc3VsdCB0aGUgZG9jdW1lbnRhdGlvblxuZm9yIGFuIG92ZXJ2aWV3IG9mIGRlZmF1bHQgcmVzb3VyY2UgcmVxdWlyZW1lbnRzIGFuZCBhIHNpemluZyBndWlkZS4iLCJwcm9wZXJ0aWVzIjp7ImNsYWltcyI6eyJkZXNjcmlwdGlvbiI6IkNsYWltcyBsaXN0cyB0aGUgbmFtZXMgb2YgcmVzb3VyY2VzLCBkZWZpbmVkIGluIHNwZWMucmVzb3VyY2VDbGFpbXMsXG50aGF0IGFyZSB1c2VkIGJ5IHRoaXMgY29udGFpbmVyLlxuXG5UaGlzIGZpZWxkIGRlcGVuZHMgb24gdGhlXG5EeW5hbWljUmVzb3VyY2VBbGxvY2F0aW9uIGZlYXR1cmUgZ2F0ZS5cblxuVGhpcyBmaWVsZCBpcyBpbW11dGFibGUuIEl0IGNhbiBvbmx5IGJlIHNldCBmb3IgY29udGFpbmVycy4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IlJlc291cmNlQ2xhaW0gcmVmZXJlbmNlcyBvbmUgZW50cnkgaW4gUG9kU3BlYy5SZXNvdXJjZUNsYWltcy4iLCJwcm9wZXJ0aWVzIjp7Im5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG11c3QgbWF0Y2ggdGhlIG5hbWUgb2Ygb25lIGVudHJ5IGluIHBvZC5zcGVjLnJlc291cmNlQ2xhaW1zIG9mXG50aGUgUG9kIHdoZXJlIHRoaXMgZmllbGQgaXMgdXNlZC4gSXQgbWFrZXMgdGhhdCByZXNvdXJjZSBhdmFpbGFibGVcbmluc2lkZSBhIGNvbnRhaW5lci4iLCJ0eXBlIjoic3RyaW5nIn0sInJlcXVlc3QiOnsiZGVzY3JpcHRpb24iOiJSZXF1ZXN0IGlzIHRoZSBuYW1lIGNob3NlbiBmb3IgYSByZXF1ZXN0IGluIHRoZSByZWZlcmVuY2VkIGNsYWltLlxuSWYgZW1wdHksIGV2ZXJ5dGhpbmcgZnJvbSB0aGUgY2xhaW0gaXMgbWFkZSBhdmFpbGFibGUsIG90aGVyd2lzZVxub25seSB0aGUgcmVzdWx0IG9mIHRoaXMgcmVxdWVzdC4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJuYW1lIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5IiwieC1rdWJlcm5ldGVzLWxpc3QtbWFwLWtleXMiOlsibmFtZSJdLCJ4LWt1YmVybmV0ZXMtbGlzdC10eXBlIjoibWFwIn0sImxpbWl0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJMaW1pdHMgZGVzY3JpYmVzIHRoZSBtYXhpbXVtIGFtb3VudCBvZiBjb21wdXRlIHJlc291cmNlcyBhbGxvd2VkLlxuTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9jb25maWd1cmF0aW9uL21hbmFnZS1yZXNvdXJjZXMtY29udGFpbmVycy8iLCJ0eXBlIjoib2JqZWN0In0sInJlcXVlc3RzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJkZXNjcmlwdGlvbiI6IlJlcXVlc3RzIGRlc2NyaWJlcyB0aGUgbWluaW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgcmVxdWlyZWQuXG5JZiBSZXF1ZXN0cyBpcyBvbWl0dGVkIGZvciBhIGNvbnRhaW5lciwgaXQgZGVmYXVsdHMgdG8gTGltaXRzIGlmIHRoYXQgaXMgZXhwbGljaXRseSBzcGVjaWZpZWQsXG5vdGhlcndpc2UgdG8gYW4gaW1wbGVtZW50YXRpb24tZGVmaW5lZCB2YWx1ZS4gUmVxdWVzdHMgY2Fubm90IGV4Y2VlZCBMaW1pdHMuXG5Nb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL2NvbmZpZ3VyYXRpb24vbWFuYWdlLXJlc291cmNlcy1jb250YWluZXJzLyIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwic2NhbGluZyI6eyJkZXNjcmlwdGlvbiI6IkNvbnRyb2xzIHRoZSBudW1iZXIgb2YgcmVwbGljYXMgYW5kIGF1dG9zY2FsaW5nIGZvciB0aGlzIGNvbXBvbmVudC4iLCJwcm9wZXJ0aWVzIjp7ImF1dG9TY2FsaW5nIjp7ImRlZmF1bHQiOiJFbmFibGVkIiwiZGVzY3JpcHRpb24iOiJXaGVuIGVuYWJsZWQsIHRoZSBudW1iZXIgb2YgY29tcG9uZW50IHJlcGxpY2FzIGlzIG1hbmFnZWQgZHluYW1pY2FsbHkgYmFzZWQgb24gdGhlIGxvYWQsIHdpdGhpbiB0aGUgbGltaXRzXG5zcGVjaWZpZWQgYmVsb3cuIiwiZW51bSI6WyJFbmFibGVkIiwiRGlzYWJsZWQiXSwidHlwZSI6InN0cmluZyJ9LCJtYXhSZXBsaWNhcyI6eyJkZWZhdWx0Ijo1LCJmb3JtYXQiOiJpbnQzMiIsIm1pbmltdW0iOjEsInR5cGUiOiJpbnRlZ2VyIn0sIm1pblJlcGxpY2FzIjp7ImRlZmF1bHQiOjIsImZvcm1hdCI6ImludDMyIiwibWluaW11bSI6MSwidHlwZSI6ImludGVnZXIifSwicmVwbGljYXMiOnsiZGVmYXVsdCI6MywiZGVzY3JpcHRpb24iOiJXaGVuIGF1dG9zY2FsaW5nIGlzIGRpc2FibGVkLCB0aGUgbnVtYmVyIG9mIHJlcGxpY2FzIHdpbGwgYWx3YXlzIGJlIGNvbmZpZ3VyZWQgdG8gbWF0Y2ggdGhpcyB2YWx1ZS4iLCJmb3JtYXQiOiJpbnQzMiIsIm1pbmltdW0iOjEsInR5cGUiOiJpbnRlZ2VyIn19LCJ0eXBlIjoib2JqZWN0In0sInRvbGVyYXRpb25zIjp7ImRlc2NyaXB0aW9uIjoiSWYgeW91IHdhbnQgdGhpcyBjb21wb25lbnQgdG8gb25seSBydW4gb24gc3BlY2lmaWMgbm9kZXMsIHlvdSBjYW4gY29uZmlndXJlIHRvbGVyYXRpb25zIG9mIHRhaW50ZWQgbm9kZXMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJUaGUgcG9kIHRoaXMgVG9sZXJhdGlvbiBpcyBhdHRhY2hlZCB0byB0b2xlcmF0ZXMgYW55IHRhaW50IHRoYXQgbWF0Y2hlc1xudGhlIHRyaXBsZSBcdTAwM2NrZXksdmFsdWUsZWZmZWN0XHUwMDNlIHVzaW5nIHRoZSBtYXRjaGluZyBvcGVyYXRvciBcdTAwM2NvcGVyYXRvclx1MDAzZS4iLCJwcm9wZXJ0aWVzIjp7ImVmZmVjdCI6eyJkZXNjcmlwdGlvbiI6IkVmZmVjdCBpbmRpY2F0ZXMgdGhlIHRhaW50IGVmZmVjdCB0byBtYXRjaC4gRW1wdHkgbWVhbnMgbWF0Y2ggYWxsIHRhaW50IGVmZmVjdHMuXG5XaGVuIHNwZWNpZmllZCwgYWxsb3dlZCB2YWx1ZXMgYXJlIE5vU2NoZWR1bGUsIFByZWZlck5vU2NoZWR1bGUgYW5kIE5vRXhlY3V0ZS4iLCJ0eXBlIjoic3RyaW5nIn0sImtleSI6eyJkZXNjcmlwdGlvbiI6IktleSBpcyB0aGUgdGFpbnQga2V5IHRoYXQgdGhlIHRvbGVyYXRpb24gYXBwbGllcyB0by4gRW1wdHkgbWVhbnMgbWF0Y2ggYWxsIHRhaW50IGtleXMuXG5JZiB0aGUga2V5IGlzIGVtcHR5LCBvcGVyYXRvciBtdXN0IGJlIEV4aXN0czsgdGhpcyBjb21iaW5hdGlvbiBtZWFucyB0byBtYXRjaCBhbGwgdmFsdWVzIGFuZCBhbGwga2V5cy4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoiT3BlcmF0b3IgcmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byB0aGUgdmFsdWUuXG5WYWxpZCBvcGVyYXRvcnMgYXJlIEV4aXN0cyBhbmQgRXF1YWwuIERlZmF1bHRzIHRvIEVxdWFsLlxuRXhpc3RzIGlzIGVxdWl2YWxlbnQgdG8gd2lsZGNhcmQgZm9yIHZhbHVlLCBzbyB0aGF0IGEgcG9kIGNhblxudG9sZXJhdGUgYWxsIHRhaW50cyBvZiBhIHBhcnRpY3VsYXIgY2F0ZWdvcnkuIiwidHlwZSI6InN0cmluZyJ9LCJ0b2xlcmF0aW9uU2Vjb25kcyI6eyJkZXNjcmlwdGlvbiI6IlRvbGVyYXRpb25TZWNvbmRzIHJlcHJlc2VudHMgdGhlIHBlcmlvZCBvZiB0aW1lIHRoZSB0b2xlcmF0aW9uICh3aGljaCBtdXN0IGJlXG5vZiBlZmZlY3QgTm9FeGVjdXRlLCBvdGhlcndpc2UgdGhpcyBmaWVsZCBpcyBpZ25vcmVkKSB0b2xlcmF0ZXMgdGhlIHRhaW50LiBCeSBkZWZhdWx0LFxuaXQgaXMgbm90IHNldCwgd2hpY2ggbWVhbnMgdG9sZXJhdGUgdGhlIHRhaW50IGZvcmV2ZXIgKGRvIG5vdCBldmljdCkuIFplcm8gYW5kXG5uZWdhdGl2ZSB2YWx1ZXMgd2lsbCBiZSB0cmVhdGVkIGFzIDAgKGV2aWN0IGltbWVkaWF0ZWx5KSBieSB0aGUgc3lzdGVtLiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwidmFsdWUiOnsiZGVzY3JpcHRpb24iOiJWYWx1ZSBpcyB0aGUgdGFpbnQgdmFsdWUgdGhlIHRvbGVyYXRpb24gbWF0Y2hlcyB0by5cbklmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMsIHRoZSB2YWx1ZSBzaG91bGQgYmUgZW1wdHksIG90aGVyd2lzZSBqdXN0IGEgcmVndWxhciBzdHJpbmcuIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifX0sInR5cGUiOiJvYmplY3QifSwibWF0Y2hlciI6eyJkZXNjcmlwdGlvbiI6IlNldHRpbmdzIHBlcnRhaW5pbmcgdG8gdGhlIG1hdGNoZXIgZGVwbG95bWVudC4iLCJwcm9wZXJ0aWVzIjp7Imhvc3RBbGlhc2VzIjp7ImRlc2NyaXB0aW9uIjoiSG9zdEFsaWFzZXMgYWxsb3dzIGNvbmZpZ3VyaW5nIGFkZGl0aW9uYWwgaG9zdG5hbWVzIHRvIHJlc29sdmUgaW4gdGhlIHBvZCdzIGhvc3RzIGZpbGUuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJIb3N0QWxpYXMgaG9sZHMgdGhlIG1hcHBpbmcgYmV0d2VlbiBJUCBhbmQgaG9zdG5hbWVzIHRoYXQgd2lsbCBiZSBpbmplY3RlZCBhcyBhbiBlbnRyeSBpbiB0aGVcbnBvZCdzIGhvc3RzIGZpbGUuIiwicHJvcGVydGllcyI6eyJob3N0bmFtZXMiOnsiZGVzY3JpcHRpb24iOiJIb3N0bmFtZXMgZm9yIHRoZSBhYm92ZSBJUCBhZGRyZXNzLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5IiwieC1rdWJlcm5ldGVzLWxpc3QtdHlwZSI6ImF0b21pYyJ9LCJpcCI6eyJkZXNjcmlwdGlvbiI6IklQIGFkZHJlc3Mgb2YgdGhlIGhvc3QgZmlsZSBlbnRyeS4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJpcCJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJub2RlU2VsZWN0b3IiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6IklmIHlvdSB3YW50IHRoaXMgY29tcG9uZW50IHRvIG9ubHkgcnVuIG9uIHNwZWNpZmljIG5vZGVzLCB5b3UgY2FuIGNvbmZpZ3VyZSBhIG5vZGUgc2VsZWN0b3IgaGVyZS4iLCJ0eXBlIjoib2JqZWN0In0sInJlc291cmNlcyI6eyJkZXNjcmlwdGlvbiI6IkFsbG93cyBvdmVycmlkaW5nIHRoZSBkZWZhdWx0IHJlc291cmNlIHNldHRpbmdzIGZvciB0aGlzIGNvbXBvbmVudC4gUGxlYXNlIGNvbnN1bHQgdGhlIGRvY3VtZW50YXRpb25cbmZvciBhbiBvdmVydmlldyBvZiBkZWZhdWx0IHJlc291cmNlIHJlcXVpcmVtZW50cyBhbmQgYSBzaXppbmcgZ3VpZGUuIiwicHJvcGVydGllcyI6eyJjbGFpbXMiOnsiZGVzY3JpcHRpb24iOiJDbGFpbXMgbGlzdHMgdGhlIG5hbWVzIG9mIHJlc291cmNlcywgZGVmaW5lZCBpbiBzcGVjLnJlc291cmNlQ2xhaW1zLFxudGhhdCBhcmUgdXNlZCBieSB0aGlzIGNvbnRhaW5lci5cblxuVGhpcyBmaWVsZCBkZXBlbmRzIG9uIHRoZVxuRHluYW1pY1Jlc291cmNlQWxsb2NhdGlvbiBmZWF0dXJlIGdhdGUuXG5cblRoaXMgZmllbGQgaXMgaW1tdXRhYmxlLiBJdCBjYW4gb25seSBiZSBzZXQgZm9yIGNvbnRhaW5lcnMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJSZXNvdXJjZUNsYWltIHJlZmVyZW5jZXMgb25lIGVudHJ5IGluIFBvZFNwZWMuUmVzb3VyY2VDbGFpbXMuIiwicHJvcGVydGllcyI6eyJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBtdXN0IG1hdGNoIHRoZSBuYW1lIG9mIG9uZSBlbnRyeSBpbiBwb2Quc3BlYy5yZXNvdXJjZUNsYWltcyBvZlxudGhlIFBvZCB3aGVyZSB0aGlzIGZpZWxkIGlzIHVzZWQuIEl0IG1ha2VzIHRoYXQgcmVzb3VyY2UgYXZhaWxhYmxlXG5pbnNpZGUgYSBjb250YWluZXIuIiwidHlwZSI6InN0cmluZyJ9LCJyZXF1ZXN0Ijp7ImRlc2NyaXB0aW9uIjoiUmVxdWVzdCBpcyB0aGUgbmFtZSBjaG9zZW4gZm9yIGEgcmVxdWVzdCBpbiB0aGUgcmVmZXJlbmNlZCBjbGFpbS5cbklmIGVtcHR5LCBldmVyeXRoaW5nIGZyb20gdGhlIGNsYWltIGlzIG1hZGUgYXZhaWxhYmxlLCBvdGhlcndpc2Vcbm9ubHkgdGhlIHJlc3VsdCBvZiB0aGlzIHJlcXVlc3QuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsibmFtZSJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSIsIngta3ViZXJuZXRlcy1saXN0LW1hcC1rZXlzIjpbIm5hbWUiXSwieC1rdWJlcm5ldGVzLWxpc3QtdHlwZSI6Im1hcCJ9LCJsaW1pdHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsiYW55T2YiOlt7InR5cGUiOiJpbnRlZ2VyIn0seyJ0eXBlIjoic3RyaW5nIn1dLCJwYXR0ZXJuIjoiXihcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSgoW0tNR1RQRV1pKXxbbnVta01HVFBFXXwoW2VFXShcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSkpPyQiLCJ4LWt1YmVybmV0ZXMtaW50LW9yLXN0cmluZyI6dHJ1ZX0sImRlc2NyaXB0aW9uIjoiTGltaXRzIGRlc2NyaWJlcyB0aGUgbWF4aW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgYWxsb3dlZC5cbk1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtcmVzb3VyY2VzLWNvbnRhaW5lcnMvIiwidHlwZSI6Im9iamVjdCJ9LCJyZXF1ZXN0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJSZXF1ZXN0cyBkZXNjcmliZXMgdGhlIG1pbmltdW0gYW1vdW50IG9mIGNvbXB1dGUgcmVzb3VyY2VzIHJlcXVpcmVkLlxuSWYgUmVxdWVzdHMgaXMgb21pdHRlZCBmb3IgYSBjb250YWluZXIsIGl0IGRlZmF1bHRzIHRvIExpbWl0cyBpZiB0aGF0IGlzIGV4cGxpY2l0bHkgc3BlY2lmaWVkLFxub3RoZXJ3aXNlIHRvIGFuIGltcGxlbWVudGF0aW9uLWRlZmluZWQgdmFsdWUuIFJlcXVlc3RzIGNhbm5vdCBleGNlZWQgTGltaXRzLlxuTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9jb25maWd1cmF0aW9uL21hbmFnZS1yZXNvdXJjZXMtY29udGFpbmVycy8iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInNjYWxpbmciOnsiZGVzY3JpcHRpb24iOiJDb250cm9scyB0aGUgbnVtYmVyIG9mIHJlcGxpY2FzIGFuZCBhdXRvc2NhbGluZyBmb3IgdGhpcyBjb21wb25lbnQuIiwicHJvcGVydGllcyI6eyJhdXRvU2NhbGluZyI6eyJkZWZhdWx0IjoiRW5hYmxlZCIsImRlc2NyaXB0aW9uIjoiV2hlbiBlbmFibGVkLCB0aGUgbnVtYmVyIG9mIGNvbXBvbmVudCByZXBsaWNhcyBpcyBtYW5hZ2VkIGR5bmFtaWNhbGx5IGJhc2VkIG9uIHRoZSBsb2FkLCB3aXRoaW4gdGhlIGxpbWl0c1xuc3BlY2lmaWVkIGJlbG93LiIsImVudW0iOlsiRW5hYmxlZCIsIkRpc2FibGVkIl0sInR5cGUiOiJzdHJpbmcifSwibWF4UmVwbGljYXMiOnsiZGVmYXVsdCI6NSwiZm9ybWF0IjoiaW50MzIiLCJtaW5pbXVtIjoxLCJ0eXBlIjoiaW50ZWdlciJ9LCJtaW5SZXBsaWNhcyI6eyJkZWZhdWx0IjoyLCJmb3JtYXQiOiJpbnQzMiIsIm1pbmltdW0iOjEsInR5cGUiOiJpbnRlZ2VyIn0sInJlcGxpY2FzIjp7ImRlZmF1bHQiOjMsImRlc2NyaXB0aW9uIjoiV2hlbiBhdXRvc2NhbGluZyBpcyBkaXNhYmxlZCwgdGhlIG51bWJlciBvZiByZXBsaWNhcyB3aWxsIGFsd2F5cyBiZSBjb25maWd1cmVkIHRvIG1hdGNoIHRoaXMgdmFsdWUuIiwiZm9ybWF0IjoiaW50MzIiLCJtaW5pbXVtIjoxLCJ0eXBlIjoiaW50ZWdlciJ9fSwidHlwZSI6Im9iamVjdCJ9LCJ0b2xlcmF0aW9ucyI6eyJkZXNjcmlwdGlvbiI6IklmIHlvdSB3YW50IHRoaXMgY29tcG9uZW50IHRvIG9ubHkgcnVuIG9uIHNwZWNpZmljIG5vZGVzLCB5b3UgY2FuIGNvbmZpZ3VyZSB0b2xlcmF0aW9ucyBvZiB0YWludGVkIG5vZGVzLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiVGhlIHBvZCB0aGlzIFRvbGVyYXRpb24gaXMgYXR0YWNoZWQgdG8gdG9sZXJhdGVzIGFueSB0YWludCB0aGF0IG1hdGNoZXNcbnRoZSB0cmlwbGUgXHUwMDNja2V5LHZhbHVlLGVmZmVjdFx1MDAzZSB1c2luZyB0aGUgbWF0Y2hpbmcgb3BlcmF0b3IgXHUwMDNjb3BlcmF0b3JcdTAwM2UuIiwicHJvcGVydGllcyI6eyJlZmZlY3QiOnsiZGVzY3JpcHRpb24iOiJFZmZlY3QgaW5kaWNhdGVzIHRoZSB0YWludCBlZmZlY3QgdG8gbWF0Y2guIEVtcHR5IG1lYW5zIG1hdGNoIGFsbCB0YWludCBlZmZlY3RzLlxuV2hlbiBzcGVjaWZpZWQsIGFsbG93ZWQgdmFsdWVzIGFyZSBOb1NjaGVkdWxlLCBQcmVmZXJOb1NjaGVkdWxlIGFuZCBOb0V4ZWN1dGUuIiwidHlwZSI6InN0cmluZyJ9LCJrZXkiOnsiZGVzY3JpcHRpb24iOiJLZXkgaXMgdGhlIHRhaW50IGtleSB0aGF0IHRoZSB0b2xlcmF0aW9uIGFwcGxpZXMgdG8uIEVtcHR5IG1lYW5zIG1hdGNoIGFsbCB0YWludCBrZXlzLlxuSWYgdGhlIGtleSBpcyBlbXB0eSwgb3BlcmF0b3IgbXVzdCBiZSBFeGlzdHM7IHRoaXMgY29tYmluYXRpb24gbWVhbnMgdG8gbWF0Y2ggYWxsIHZhbHVlcyBhbmQgYWxsIGtleXMuIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6Ik9wZXJhdG9yIHJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gdGhlIHZhbHVlLlxuVmFsaWQgb3BlcmF0b3JzIGFyZSBFeGlzdHMgYW5kIEVxdWFsLiBEZWZhdWx0cyB0byBFcXVhbC5cbkV4aXN0cyBpcyBlcXVpdmFsZW50IHRvIHdpbGRjYXJkIGZvciB2YWx1ZSwgc28gdGhhdCBhIHBvZCBjYW5cbnRvbGVyYXRlIGFsbCB0YWludHMgb2YgYSBwYXJ0aWN1bGFyIGNhdGVnb3J5LiIsInR5cGUiOiJzdHJpbmcifSwidG9sZXJhdGlvblNlY29uZHMiOnsiZGVzY3JpcHRpb24iOiJUb2xlcmF0aW9uU2Vjb25kcyByZXByZXNlbnRzIHRoZSBwZXJpb2Qgb2YgdGltZSB0aGUgdG9sZXJhdGlvbiAod2hpY2ggbXVzdCBiZVxub2YgZWZmZWN0IE5vRXhlY3V0ZSwgb3RoZXJ3aXNlIHRoaXMgZmllbGQgaXMgaWdub3JlZCkgdG9sZXJhdGVzIHRoZSB0YWludC4gQnkgZGVmYXVsdCxcbml0IGlzIG5vdCBzZXQsIHdoaWNoIG1lYW5zIHRvbGVyYXRlIHRoZSB0YWludCBmb3JldmVyIChkbyBub3QgZXZpY3QpLiBaZXJvIGFuZFxubmVnYXRpdmUgdmFsdWVzIHdpbGwgYmUgdHJlYXRlZCBhcyAwIChldmljdCBpbW1lZGlhdGVseSkgYnkgdGhlIHN5c3RlbS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sInZhbHVlIjp7ImRlc2NyaXB0aW9uIjoiVmFsdWUgaXMgdGhlIHRhaW50IHZhbHVlIHRoZSB0b2xlcmF0aW9uIG1hdGNoZXMgdG8uXG5JZiB0aGUgb3BlcmF0b3IgaXMgRXhpc3RzLCB0aGUgdmFsdWUgc2hvdWxkIGJlIGVtcHR5LCBvdGhlcndpc2UganVzdCBhIHJlZ3VsYXIgc3RyaW5nLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In19LCJ0eXBlIjoib2JqZWN0In0sIm1vbml0b3JpbmciOnsiZGVzY3JpcHRpb24iOiJDb25maWd1cmVzIG1vbml0b3JpbmcgZW5kcG9pbnQgZm9yIFNjYW5uZXIgVjQuIFRoZSBtb25pdG9yaW5nIGVuZHBvaW50XG5hbGxvd3Mgb3RoZXIgc2VydmljZXMgdG8gY29sbGVjdCBtZXRyaWNzIGZyb20gU2Nhbm5lciBWNCwgcHJvdmlkZWQgaW5cblByb21ldGhldXMgY29tcGF0aWJsZSBmb3JtYXQuIiwicHJvcGVydGllcyI6eyJleHBvc2VFbmRwb2ludCI6eyJkZXNjcmlwdGlvbiI6IkV4cG9zZSB0aGUgbW9uaXRvcmluZyBlbmRwb2ludC4gQSBuZXcgc2VydmljZSwgXCJtb25pdG9yaW5nXCIsXG53aXRoIHBvcnQgOTA5MCwgd2lsbCBiZSBjcmVhdGVkIGFzIHdlbGwgYXMgYSBuZXR3b3JrIHBvbGljeSBhbGxvd2luZ1xuaW5ib3VuZCBjb25uZWN0aW9ucyB0byB0aGUgcG9ydC4iLCJlbnVtIjpbIkVuYWJsZWQiLCJEaXNhYmxlZCJdLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In0sInNjYW5uZXJDb21wb25lbnQiOnsiZGVzY3JpcHRpb24iOiJDYW4gYmUgc3BlY2lmaWVkIGFzIFwiRW5hYmxlZFwiIG9yIFwiRGlzYWJsZWRcIi5cbklmIHRoaXMgZmllbGQgaXMgbm90IHNwZWNpZmllZCwgdGhlIGZvbGxvd2luZyBkZWZhdWx0aW5nIHRha2VzIHBsYWNlOlxuKiBmb3IgbmV3IGluc3RhbGxhdGlvbnMsIFNjYW5uZXIgVjQgaXMgZW5hYmxlZCBzdGFydGluZyB3aXRoIEFDUyA0Ljg7XG4qIGZvciB1cGdyYWRlcyB0byA0LjggZnJvbSBwcmV2aW91cyByZWxlYXNlcywgU2Nhbm5lciBWNCBpcyBkaXNhYmxlZC4iLCJlbnVtIjpbIkRlZmF1bHQiLCJFbmFibGVkIiwiRGlzYWJsZWQiXSwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJ0bHMiOnsiZGVzY3JpcHRpb24iOiJBbGxvd3MgeW91IHRvIHNwZWNpZnkgYWRkaXRpb25hbCB0cnVzdGVkIFJvb3QgQ0FzLiIsInByb3BlcnRpZXMiOnsiYWRkaXRpb25hbENBcyI6eyJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkFkZGl0aW9uYWxDQSBkZWZpbmVzIGEgY2VydGlmaWNhdGUgZm9yIGFuIGFkZGl0aW9uYWwgQ2VydGlmaWNhdGUgQXV0aG9yaXR5LiIsInByb3BlcnRpZXMiOnsiY29udGVudCI6eyJkZXNjcmlwdGlvbiI6IlBFTSBmb3JtYXQiLCJ0eXBlIjoic3RyaW5nIn0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJNdXN0IGJlIGEgdmFsaWQgZmlsZSBiYXNlbmFtZSIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbImNvbnRlbnQiLCJuYW1lIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInN0YXR1cyI6eyJkZXNjcmlwdGlvbiI6IkNlbnRyYWxTdGF0dXMgZGVmaW5lcyB0aGUgb2JzZXJ2ZWQgc3RhdGUgb2YgQ2VudHJhbC4iLCJwcm9wZXJ0aWVzIjp7ImNlbnRyYWwiOnsiZGVzY3JpcHRpb24iOiJDZW50cmFsQ29tcG9uZW50U3RhdHVzIGRlc2NyaWJlcyBzdGF0dXMgc3BlY2lmaWMgdG8gdGhlIGNlbnRyYWwgY29tcG9uZW50LiIsInByb3BlcnRpZXMiOnsiYWRtaW5QYXNzd29yZCI6eyJkZXNjcmlwdGlvbiI6IkFkbWluUGFzc3dvcmQgc3RvcmVzIGluZm9ybWF0aW9uIHJlbGF0ZWQgdG8gdGhlIGF1dG8tZ2VuZXJhdGVkIGFkbWluIHBhc3N3b3JkLiIsInByb3BlcnRpZXMiOnsiYWRtaW5QYXNzd29yZFNlY3JldFJlZmVyZW5jZSI6eyJkZXNjcmlwdGlvbiI6IkFkbWluUGFzc3dvcmRTZWNyZXRSZWZlcmVuY2UgY29udGFpbnMgcmVmZXJlbmNlIGZvciB0aGUgYWRtaW4gcGFzc3dvcmQiLCJ0eXBlIjoic3RyaW5nIn0sImluZm8iOnsiZGVzY3JpcHRpb24iOiJJbmZvIHN0b3JlcyBpbmZvcm1hdGlvbiBvbiBob3cgdG8gb2J0YWluIHRoZSBhZG1pbiBwYXNzd29yZC4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sImNvbmRpdGlvbnMiOnsiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJTdGFja1JveENvbmRpdGlvbiBkZWZpbmVzIGEgY29uZGl0aW9uIGZvciBhIFN0YWNrUm94IGN1c3RvbSByZXNvdXJjZS4iLCJwcm9wZXJ0aWVzIjp7Imxhc3RUcmFuc2l0aW9uVGltZSI6eyJmb3JtYXQiOiJkYXRlLXRpbWUiLCJ0eXBlIjoic3RyaW5nIn0sIm1lc3NhZ2UiOnsidHlwZSI6InN0cmluZyJ9LCJyZWFzb24iOnsiZGVzY3JpcHRpb24iOiJDb25kaXRpb25SZWFzb24gaXMgYSB0eXBlIG9mIHZhbHVlcyBvZiBjb25kaXRpb24gcmVhc29uLiIsInR5cGUiOiJzdHJpbmcifSwic3RhdHVzIjp7ImRlc2NyaXB0aW9uIjoiQ29uZGl0aW9uU3RhdHVzIGlzIGEgdHlwZSBvZiB2YWx1ZXMgb2YgY29uZGl0aW9uIHN0YXR1cy4iLCJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOnsiZGVzY3JpcHRpb24iOiJDb25kaXRpb25UeXBlIGlzIGEgdHlwZSBvZiB2YWx1ZXMgb2YgY29uZGl0aW9uIHR5cGUuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsic3RhdHVzIiwidHlwZSJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJkZXBsb3llZFJlbGVhc2UiOnsiZGVzY3JpcHRpb24iOiJTdGFja1JveFJlbGVhc2UgZGVzY3JpYmVzIHRoZSBIZWxtIFwicmVsZWFzZVwiIHRoYXQgd2FzIG1vc3QgcmVjZW50bHkgYXBwbGllZC4iLCJwcm9wZXJ0aWVzIjp7InZlcnNpb24iOnsidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJwcm9kdWN0VmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IlRoZSBkZXBsb3llZCB2ZXJzaW9uIG9mIHRoZSBwcm9kdWN0LiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbImNvbmRpdGlvbnMiXSwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9fSwic2VydmVkIjp0cnVlLCJzdG9yYWdlIjp0cnVlLCJzdWJyZXNvdXJjZXMiOnsic3RhdHVzIjp7fX19XX0sInN0YXR1cyI6eyJhY2NlcHRlZE5hbWVzIjp7ImtpbmQiOiIiLCJwbHVyYWwiOiIifSwiY29uZGl0aW9ucyI6bnVsbCwic3RvcmVkVmVyc2lvbnMiOm51bGx9fQ==" + } + }, + { + "type": "olm.bundle.object", + "value": { + "data": "eyJhcGlWZXJzaW9uIjoiYXBpZXh0ZW5zaW9ucy5rOHMuaW8vdjEiLCJraW5kIjoiQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiY29udHJvbGxlci1nZW4ua3ViZWJ1aWxkZXIuaW8vdmVyc2lvbiI6InYwLjE2LjUifSwiY3JlYXRpb25UaW1lc3RhbXAiOm51bGwsIm5hbWUiOiJzZWN1cmVkY2x1c3RlcnMucGxhdGZvcm0uc3RhY2tyb3guaW8ifSwic3BlYyI6eyJncm91cCI6InBsYXRmb3JtLnN0YWNrcm94LmlvIiwibmFtZXMiOnsia2luZCI6IlNlY3VyZWRDbHVzdGVyIiwibGlzdEtpbmQiOiJTZWN1cmVkQ2x1c3Rlckxpc3QiLCJwbHVyYWwiOiJzZWN1cmVkY2x1c3RlcnMiLCJzaW5ndWxhciI6InNlY3VyZWRjbHVzdGVyIn0sInNjb3BlIjoiTmFtZXNwYWNlZCIsInZlcnNpb25zIjpbeyJuYW1lIjoidjFhbHBoYTEiLCJzY2hlbWEiOnsib3BlbkFQSVYzU2NoZW1hIjp7ImRlc2NyaXB0aW9uIjoiU2VjdXJlZENsdXN0ZXIgaXMgdGhlIGNvbmZpZ3VyYXRpb24gdGVtcGxhdGUgZm9yIHRoZSBzZWN1cmVkIGNsdXN0ZXIgc2VydmljZXMuIFRoZXNlIGluY2x1ZGUgU2Vuc29yLCB3aGljaCBpc1xucmVzcG9uc2libGUgZm9yIHRoZSBjb25uZWN0aW9uIHRvIENlbnRyYWwsIGFuZCBDb2xsZWN0b3IsIHdoaWNoIHBlcmZvcm1zIGhvc3QtbGV2ZWwgY29sbGVjdGlvbiBvZiBwcm9jZXNzIGFuZFxubmV0d29yayBldmVudHMuXHUwMDNjcFx1MDAzZVxuKipJbXBvcnRhbnQ6KiogUGxlYXNlIHNlZSB0aGUgX0luc3RhbGxhdGlvbiBQcmVyZXF1aXNpdGVzXyBvbiB0aGUgbWFpbiBSSEFDUyBvcGVyYXRvciBwYWdlIGJlZm9yZSBkZXBsb3lpbmcsIG9yXG5jb25zdWx0IHRoZSBSSEFDUyBkb2N1bWVudGF0aW9uIG9uIGNyZWF0aW5nIGNsdXN0ZXIgaW5pdCBidW5kbGVzLiIsInByb3BlcnRpZXMiOnsiYXBpVmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IkFQSVZlcnNpb24gZGVmaW5lcyB0aGUgdmVyc2lvbmVkIHNjaGVtYSBvZiB0aGlzIHJlcHJlc2VudGF0aW9uIG9mIGFuIG9iamVjdC5cblNlcnZlcnMgc2hvdWxkIGNvbnZlcnQgcmVjb2duaXplZCBzY2hlbWFzIHRvIHRoZSBsYXRlc3QgaW50ZXJuYWwgdmFsdWUsIGFuZFxubWF5IHJlamVjdCB1bnJlY29nbml6ZWQgdmFsdWVzLlxuTW9yZSBpbmZvOiBodHRwczovL2dpdC5rOHMuaW8vY29tbXVuaXR5L2NvbnRyaWJ1dG9ycy9kZXZlbC9zaWctYXJjaGl0ZWN0dXJlL2FwaS1jb252ZW50aW9ucy5tZCNyZXNvdXJjZXMiLCJ0eXBlIjoic3RyaW5nIn0sImtpbmQiOnsiZGVzY3JpcHRpb24iOiJLaW5kIGlzIGEgc3RyaW5nIHZhbHVlIHJlcHJlc2VudGluZyB0aGUgUkVTVCByZXNvdXJjZSB0aGlzIG9iamVjdCByZXByZXNlbnRzLlxuU2VydmVycyBtYXkgaW5mZXIgdGhpcyBmcm9tIHRoZSBlbmRwb2ludCB0aGUgY2xpZW50IHN1Ym1pdHMgcmVxdWVzdHMgdG8uXG5DYW5ub3QgYmUgdXBkYXRlZC5cbkluIENhbWVsQ2FzZS5cbk1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjdHlwZXMta2luZHMiLCJ0eXBlIjoic3RyaW5nIn0sIm1ldGFkYXRhIjp7InR5cGUiOiJvYmplY3QifSwic3BlYyI6eyJkZXNjcmlwdGlvbiI6IlNlY3VyZWRDbHVzdGVyU3BlYyBkZWZpbmVzIHRoZSBkZXNpcmVkIGNvbmZpZ3VyYXRpb24gc3RhdGUgb2YgYSBzZWN1cmVkIGNsdXN0ZXIuIiwicHJvcGVydGllcyI6eyJhZG1pc3Npb25Db250cm9sIjp7ImRlc2NyaXB0aW9uIjoiU2V0dGluZ3MgZm9yIHRoZSBBZG1pc3Npb24gQ29udHJvbCBjb21wb25lbnQsIHdoaWNoIGlzIG5lY2Vzc2FyeSBmb3IgcHJldmVudGl2ZSBwb2xpY3kgZW5mb3JjZW1lbnQsXG5hbmQgZm9yIEt1YmVybmV0ZXMgZXZlbnQgbW9uaXRvcmluZy4iLCJwcm9wZXJ0aWVzIjp7ImJ5cGFzcyI6eyJkZWZhdWx0IjoiQnJlYWtHbGFzc0Fubm90YXRpb24iLCJkZXNjcmlwdGlvbiI6IkVuYWJsZXMgdGVhbXMgdG8gYnlwYXNzIGFkbWlzc2lvbiBjb250cm9sIGluIGEgbW9uaXRvcmVkIG1hbm5lciBpbiB0aGUgZXZlbnQgb2YgYW4gZW1lcmdlbmN5LiIsImVudW0iOlsiQnJlYWtHbGFzc0Fubm90YXRpb24iLCJEaXNhYmxlZCJdLCJ0eXBlIjoic3RyaW5nIn0sImNvbnRhY3RJbWFnZVNjYW5uZXJzIjp7ImRlZmF1bHQiOiJEb05vdFNjYW5JbmxpbmUiLCJkZXNjcmlwdGlvbiI6IlNob3VsZCBpbmxpbmUgc2Nhbm5pbmcgYmUgcGVyZm9ybWVkIG9uIHByZXZpb3VzbHkgdW5zY2FubmVkIGltYWdlcyBkdXJpbmcgYSBkZXBsb3ltZW50cyBhZG1pc3Npb24gcmV2aWV3LiIsImVudW0iOlsiU2NhbklmTWlzc2luZyIsIkRvTm90U2NhbklubGluZSJdLCJ0eXBlIjoic3RyaW5nIn0sImhvc3RBbGlhc2VzIjp7ImRlc2NyaXB0aW9uIjoiSG9zdEFsaWFzZXMgYWxsb3dzIGNvbmZpZ3VyaW5nIGFkZGl0aW9uYWwgaG9zdG5hbWVzIHRvIHJlc29sdmUgaW4gdGhlIHBvZCdzIGhvc3RzIGZpbGUuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJIb3N0QWxpYXMgaG9sZHMgdGhlIG1hcHBpbmcgYmV0d2VlbiBJUCBhbmQgaG9zdG5hbWVzIHRoYXQgd2lsbCBiZSBpbmplY3RlZCBhcyBhbiBlbnRyeSBpbiB0aGVcbnBvZCdzIGhvc3RzIGZpbGUuIiwicHJvcGVydGllcyI6eyJob3N0bmFtZXMiOnsiZGVzY3JpcHRpb24iOiJIb3N0bmFtZXMgZm9yIHRoZSBhYm92ZSBJUCBhZGRyZXNzLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5IiwieC1rdWJlcm5ldGVzLWxpc3QtdHlwZSI6ImF0b21pYyJ9LCJpcCI6eyJkZXNjcmlwdGlvbiI6IklQIGFkZHJlc3Mgb2YgdGhlIGhvc3QgZmlsZSBlbnRyeS4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJpcCJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJsaXN0ZW5PbkNyZWF0ZXMiOnsiZGVmYXVsdCI6dHJ1ZSwiZGVzY3JpcHRpb24iOiJTZXQgdGhpcyB0byAndHJ1ZScgdG8gZW5hYmxlIHByZXZlbnRpdmUgcG9saWN5IGVuZm9yY2VtZW50IGZvciBvYmplY3QgY3JlYXRpb25zLiIsInR5cGUiOiJib29sZWFuIn0sImxpc3Rlbk9uRXZlbnRzIjp7ImRlZmF1bHQiOnRydWUsImRlc2NyaXB0aW9uIjoiU2V0IHRoaXMgdG8gJ3RydWUnIHRvIGVuYWJsZSBtb25pdG9yaW5nIGFuZCBlbmZvcmNlbWVudCBmb3IgS3ViZXJuZXRlcyBldmVudHMgKHBvcnQtZm9yd2FyZCBhbmQgZXhlYykuIiwidHlwZSI6ImJvb2xlYW4ifSwibGlzdGVuT25VcGRhdGVzIjp7ImRlZmF1bHQiOnRydWUsImRlc2NyaXB0aW9uIjoiU2V0IHRoaXMgdG8gJ3RydWUnIHRvIGVuYWJsZSBwcmV2ZW50aXZlIHBvbGljeSBlbmZvcmNlbWVudCBmb3Igb2JqZWN0IHVwZGF0ZXMuXG5cbk5vdGU6IHRoaXMgd2lsbCBub3QgaGF2ZSBhbnkgZWZmZWN0IHVubGVzcyAnTGlzdGVuIE9uIENyZWF0ZXMnIGlzIHNldCB0byAndHJ1ZScgYXMgd2VsbC4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJub2RlU2VsZWN0b3IiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6IklmIHlvdSB3YW50IHRoaXMgY29tcG9uZW50IHRvIG9ubHkgcnVuIG9uIHNwZWNpZmljIG5vZGVzLCB5b3UgY2FuIGNvbmZpZ3VyZSBhIG5vZGUgc2VsZWN0b3IgaGVyZS4iLCJ0eXBlIjoib2JqZWN0In0sInJlcGxpY2FzIjp7ImRlZmF1bHQiOjMsImRlc2NyaXB0aW9uIjoiVGhlIG51bWJlciBvZiByZXBsaWNhcyBvZiB0aGUgYWRtaXNzaW9uIGNvbnRyb2wgcG9kLiIsImZvcm1hdCI6ImludDMyIiwibWluaW11bSI6MSwidHlwZSI6ImludGVnZXIifSwicmVzb3VyY2VzIjp7ImRlc2NyaXB0aW9uIjoiQWxsb3dzIG92ZXJyaWRpbmcgdGhlIGRlZmF1bHQgcmVzb3VyY2Ugc2V0dGluZ3MgZm9yIHRoaXMgY29tcG9uZW50LiBQbGVhc2UgY29uc3VsdCB0aGUgZG9jdW1lbnRhdGlvblxuZm9yIGFuIG92ZXJ2aWV3IG9mIGRlZmF1bHQgcmVzb3VyY2UgcmVxdWlyZW1lbnRzIGFuZCBhIHNpemluZyBndWlkZS4iLCJwcm9wZXJ0aWVzIjp7ImNsYWltcyI6eyJkZXNjcmlwdGlvbiI6IkNsYWltcyBsaXN0cyB0aGUgbmFtZXMgb2YgcmVzb3VyY2VzLCBkZWZpbmVkIGluIHNwZWMucmVzb3VyY2VDbGFpbXMsXG50aGF0IGFyZSB1c2VkIGJ5IHRoaXMgY29udGFpbmVyLlxuXG5UaGlzIGZpZWxkIGRlcGVuZHMgb24gdGhlXG5EeW5hbWljUmVzb3VyY2VBbGxvY2F0aW9uIGZlYXR1cmUgZ2F0ZS5cblxuVGhpcyBmaWVsZCBpcyBpbW11dGFibGUuIEl0IGNhbiBvbmx5IGJlIHNldCBmb3IgY29udGFpbmVycy4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IlJlc291cmNlQ2xhaW0gcmVmZXJlbmNlcyBvbmUgZW50cnkgaW4gUG9kU3BlYy5SZXNvdXJjZUNsYWltcy4iLCJwcm9wZXJ0aWVzIjp7Im5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG11c3QgbWF0Y2ggdGhlIG5hbWUgb2Ygb25lIGVudHJ5IGluIHBvZC5zcGVjLnJlc291cmNlQ2xhaW1zIG9mXG50aGUgUG9kIHdoZXJlIHRoaXMgZmllbGQgaXMgdXNlZC4gSXQgbWFrZXMgdGhhdCByZXNvdXJjZSBhdmFpbGFibGVcbmluc2lkZSBhIGNvbnRhaW5lci4iLCJ0eXBlIjoic3RyaW5nIn0sInJlcXVlc3QiOnsiZGVzY3JpcHRpb24iOiJSZXF1ZXN0IGlzIHRoZSBuYW1lIGNob3NlbiBmb3IgYSByZXF1ZXN0IGluIHRoZSByZWZlcmVuY2VkIGNsYWltLlxuSWYgZW1wdHksIGV2ZXJ5dGhpbmcgZnJvbSB0aGUgY2xhaW0gaXMgbWFkZSBhdmFpbGFibGUsIG90aGVyd2lzZVxub25seSB0aGUgcmVzdWx0IG9mIHRoaXMgcmVxdWVzdC4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJuYW1lIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5IiwieC1rdWJlcm5ldGVzLWxpc3QtbWFwLWtleXMiOlsibmFtZSJdLCJ4LWt1YmVybmV0ZXMtbGlzdC10eXBlIjoibWFwIn0sImxpbWl0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJMaW1pdHMgZGVzY3JpYmVzIHRoZSBtYXhpbXVtIGFtb3VudCBvZiBjb21wdXRlIHJlc291cmNlcyBhbGxvd2VkLlxuTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9jb25maWd1cmF0aW9uL21hbmFnZS1yZXNvdXJjZXMtY29udGFpbmVycy8iLCJ0eXBlIjoib2JqZWN0In0sInJlcXVlc3RzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJkZXNjcmlwdGlvbiI6IlJlcXVlc3RzIGRlc2NyaWJlcyB0aGUgbWluaW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgcmVxdWlyZWQuXG5JZiBSZXF1ZXN0cyBpcyBvbWl0dGVkIGZvciBhIGNvbnRhaW5lciwgaXQgZGVmYXVsdHMgdG8gTGltaXRzIGlmIHRoYXQgaXMgZXhwbGljaXRseSBzcGVjaWZpZWQsXG5vdGhlcndpc2UgdG8gYW4gaW1wbGVtZW50YXRpb24tZGVmaW5lZCB2YWx1ZS4gUmVxdWVzdHMgY2Fubm90IGV4Y2VlZCBMaW1pdHMuXG5Nb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL2NvbmZpZ3VyYXRpb24vbWFuYWdlLXJlc291cmNlcy1jb250YWluZXJzLyIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwidGltZW91dFNlY29uZHMiOnsiZGVmYXVsdCI6MTAsImRlc2NyaXB0aW9uIjoiTWF4aW11bSB0aW1lb3V0IHBlcmlvZCBmb3IgYWRtaXNzaW9uIHJldmlldywgdXBvbiB3aGljaCBhZG1pc3Npb24gcmV2aWV3IHdpbGwgZmFpbCBvcGVuLlxuVXNlIGl0IHRvIHNldCByZXF1ZXN0IHRpbWVvdXRzIHdoZW4geW91IGVuYWJsZSBpbmxpbmUgaW1hZ2Ugc2Nhbm5pbmcuXG5UaGUgZGVmYXVsdCBrdWJlY3RsIHRpbWVvdXQgaXMgMzAgc2Vjb25kczsgdGFraW5nIHBhZGRpbmcgaW50byBhY2NvdW50LCB0aGlzIHNob3VsZCBub3QgZXhjZWVkIDI1IHNlY29uZHMuXG5PbiBPcGVuU2hpZnQgd2ViaG9vayB0aW1lb3V0cyBjYW5ub3QgZXhjZWVkIDEzIHNlY29uZHMsIGhlbmNlIHdpdGggcGFkZGluZyB0aGlzIHZhbHVlIHNoYWxsIG5vdCBleGNlZWQgMTAgc2Vjb25kcy4iLCJmb3JtYXQiOiJpbnQzMiIsIm1heGltdW0iOjI1LCJtaW5pbXVtIjoxLCJ0eXBlIjoiaW50ZWdlciJ9LCJ0b2xlcmF0aW9ucyI6eyJkZXNjcmlwdGlvbiI6IklmIHlvdSB3YW50IHRoaXMgY29tcG9uZW50IHRvIG9ubHkgcnVuIG9uIHNwZWNpZmljIG5vZGVzLCB5b3UgY2FuIGNvbmZpZ3VyZSB0b2xlcmF0aW9ucyBvZiB0YWludGVkIG5vZGVzLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiVGhlIHBvZCB0aGlzIFRvbGVyYXRpb24gaXMgYXR0YWNoZWQgdG8gdG9sZXJhdGVzIGFueSB0YWludCB0aGF0IG1hdGNoZXNcbnRoZSB0cmlwbGUgXHUwMDNja2V5LHZhbHVlLGVmZmVjdFx1MDAzZSB1c2luZyB0aGUgbWF0Y2hpbmcgb3BlcmF0b3IgXHUwMDNjb3BlcmF0b3JcdTAwM2UuIiwicHJvcGVydGllcyI6eyJlZmZlY3QiOnsiZGVzY3JpcHRpb24iOiJFZmZlY3QgaW5kaWNhdGVzIHRoZSB0YWludCBlZmZlY3QgdG8gbWF0Y2guIEVtcHR5IG1lYW5zIG1hdGNoIGFsbCB0YWludCBlZmZlY3RzLlxuV2hlbiBzcGVjaWZpZWQsIGFsbG93ZWQgdmFsdWVzIGFyZSBOb1NjaGVkdWxlLCBQcmVmZXJOb1NjaGVkdWxlIGFuZCBOb0V4ZWN1dGUuIiwidHlwZSI6InN0cmluZyJ9LCJrZXkiOnsiZGVzY3JpcHRpb24iOiJLZXkgaXMgdGhlIHRhaW50IGtleSB0aGF0IHRoZSB0b2xlcmF0aW9uIGFwcGxpZXMgdG8uIEVtcHR5IG1lYW5zIG1hdGNoIGFsbCB0YWludCBrZXlzLlxuSWYgdGhlIGtleSBpcyBlbXB0eSwgb3BlcmF0b3IgbXVzdCBiZSBFeGlzdHM7IHRoaXMgY29tYmluYXRpb24gbWVhbnMgdG8gbWF0Y2ggYWxsIHZhbHVlcyBhbmQgYWxsIGtleXMuIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6Ik9wZXJhdG9yIHJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gdGhlIHZhbHVlLlxuVmFsaWQgb3BlcmF0b3JzIGFyZSBFeGlzdHMgYW5kIEVxdWFsLiBEZWZhdWx0cyB0byBFcXVhbC5cbkV4aXN0cyBpcyBlcXVpdmFsZW50IHRvIHdpbGRjYXJkIGZvciB2YWx1ZSwgc28gdGhhdCBhIHBvZCBjYW5cbnRvbGVyYXRlIGFsbCB0YWludHMgb2YgYSBwYXJ0aWN1bGFyIGNhdGVnb3J5LiIsInR5cGUiOiJzdHJpbmcifSwidG9sZXJhdGlvblNlY29uZHMiOnsiZGVzY3JpcHRpb24iOiJUb2xlcmF0aW9uU2Vjb25kcyByZXByZXNlbnRzIHRoZSBwZXJpb2Qgb2YgdGltZSB0aGUgdG9sZXJhdGlvbiAod2hpY2ggbXVzdCBiZVxub2YgZWZmZWN0IE5vRXhlY3V0ZSwgb3RoZXJ3aXNlIHRoaXMgZmllbGQgaXMgaWdub3JlZCkgdG9sZXJhdGVzIHRoZSB0YWludC4gQnkgZGVmYXVsdCxcbml0IGlzIG5vdCBzZXQsIHdoaWNoIG1lYW5zIHRvbGVyYXRlIHRoZSB0YWludCBmb3JldmVyIChkbyBub3QgZXZpY3QpLiBaZXJvIGFuZFxubmVnYXRpdmUgdmFsdWVzIHdpbGwgYmUgdHJlYXRlZCBhcyAwIChldmljdCBpbW1lZGlhdGVseSkgYnkgdGhlIHN5c3RlbS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sInZhbHVlIjp7ImRlc2NyaXB0aW9uIjoiVmFsdWUgaXMgdGhlIHRhaW50IHZhbHVlIHRoZSB0b2xlcmF0aW9uIG1hdGNoZXMgdG8uXG5JZiB0aGUgb3BlcmF0b3IgaXMgRXhpc3RzLCB0aGUgdmFsdWUgc2hvdWxkIGJlIGVtcHR5LCBvdGhlcndpc2UganVzdCBhIHJlZ3VsYXIgc3RyaW5nLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In19LCJ0eXBlIjoib2JqZWN0In0sImF1ZGl0TG9ncyI6eyJkZXNjcmlwdGlvbiI6IlNldHRpbmdzIHJlbGF0aW5nIHRvIHRoZSBpbmdlc3Rpb24gb2YgS3ViZXJuZXRlcyBhdWRpdCBsb2dzLiIsInByb3BlcnRpZXMiOnsiY29sbGVjdGlvbiI6eyJkZWZhdWx0IjoiQXV0byIsImRlc2NyaXB0aW9uIjoiV2hldGhlciBjb2xsZWN0aW9uIG9mIEt1YmVybmV0ZXMgYXVkaXQgbG9ncyBzaG91bGQgYmUgZW5hYmxlZCBvciBkaXNhYmxlZC4gQ3VycmVudGx5LCB0aGlzIGlzIG9ubHlcbnN1cHBvcnRlZCBvbiBPcGVuU2hpZnQgNCwgYW5kIHRyeWluZyB0byBlbmFibGUgaXQgb24gbm9uLU9wZW5TaGlmdCA0IGNsdXN0ZXJzIHdpbGwgcmVzdWx0IGluIGFuIGVycm9yLlxuVXNlIHRoZSAnQXV0bycgc2V0dGluZyB0byBlbmFibGUgaXQgb24gY29tcGF0aWJsZSBlbnZpcm9ubWVudHMsIGFuZCBkaXNhYmxlIGl0IGVsc2V3aGVyZS4iLCJlbnVtIjpbIkF1dG8iLCJEaXNhYmxlZCIsIkVuYWJsZWQiXSwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJjZW50cmFsRW5kcG9pbnQiOnsiZGVzY3JpcHRpb24iOiJUaGUgZW5kcG9pbnQgb2YgdGhlIFJlZCBIYXQgQWR2YW5jZWQgQ2x1c3RlciBTZWN1cml0eSBDZW50cmFsIGluc3RhbmNlIHRvIGNvbm5lY3QgdG8sXG5pbmNsdWRpbmcgdGhlIHBvcnQgbnVtYmVyLiBJZiBubyBwb3J0IGlzIHNwZWNpZmllZCBhbmQgdGhlIGVuZHBvaW50IGNvbnRhaW5zIGFuIGh0dHBzOi8vXG5wcm90b2NvbCBzcGVjaWZpY2F0aW9uLCB0aGVuIHRoZSBwb3J0IDQ0MyBpcyBpbXBsaWNpdGx5IGFzc3VtZWQuXG5JZiB1c2luZyBhIG5vbi1nUlBDIGNhcGFibGUgbG9hZCBiYWxhbmNlciwgdXNlIHRoZSBXZWJTb2NrZXQgcHJvdG9jb2wgYnkgcHJlZml4aW5nIHRoZSBlbmRwb2ludFxuYWRkcmVzcyB3aXRoIHdzczovLy5cbk5vdGU6IHdoZW4gbGVhdmluZyB0aGlzIGJsYW5rLCBTZW5zb3Igd2lsbCBhdHRlbXB0IHRvIGNvbm5lY3QgdG8gYSBDZW50cmFsIGluc3RhbmNlIHJ1bm5pbmcgaW4gdGhlIHNhbWVcbm5hbWVzcGFjZS4iLCJ0eXBlIjoic3RyaW5nIn0sImNsdXN0ZXJMYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6IkN1c3RvbSBsYWJlbHMgYXNzb2NpYXRlZCB3aXRoIGEgc2VjdXJlZCBjbHVzdGVyIGluIFJlZCBIYXQgQWR2YW5jZWQgQ2x1c3RlciBTZWN1cml0eS4iLCJ0eXBlIjoib2JqZWN0In0sImNsdXN0ZXJOYW1lIjp7ImRlc2NyaXB0aW9uIjoiVGhlIHVuaXF1ZSBuYW1lIG9mIHRoaXMgY2x1c3RlciwgYXMgaXQgd2lsbCBiZSBzaG93biBpbiB0aGUgUmVkIEhhdCBBZHZhbmNlZCBDbHVzdGVyIFNlY3VyaXR5IFVJLlxuTm90ZTogT25jZSBhIG5hbWUgaXMgc2V0IGhlcmUsIHlvdSB3aWxsIG5vdCBiZSBhYmxlIHRvIGNoYW5nZSBpdCBhZ2Fpbi4gWW91IHdpbGwgbmVlZCB0byBkZWxldGVcbmFuZCByZS1jcmVhdGUgdGhpcyBvYmplY3QgaW4gb3JkZXIgdG8gcmVnaXN0ZXIgYSBjbHVzdGVyIHdpdGggYSBuZXcgbmFtZS4iLCJ0eXBlIjoic3RyaW5nIn0sImN1c3RvbWl6ZSI6eyJkZXNjcmlwdGlvbiI6IkN1c3RvbWl6YXRpb25zIHRvIGFwcGx5IG9uIGFsbCBDZW50cmFsIFNlcnZpY2VzIGNvbXBvbmVudHMuIiwicHJvcGVydGllcyI6eyJhbm5vdGF0aW9ucyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoiQ3VzdG9tIGFubm90YXRpb25zIHRvIHNldCBvbiBhbGwgbWFuYWdlZCBvYmplY3RzLiIsInR5cGUiOiJvYmplY3QifSwiZW52VmFycyI6eyJkZXNjcmlwdGlvbiI6IkN1c3RvbSBlbnZpcm9ubWVudCB2YXJpYWJsZXMgdG8gc2V0IG9uIG1hbmFnZWQgcG9kcycgY29udGFpbmVycy4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkVudlZhciByZXByZXNlbnRzIGFuIGVudmlyb25tZW50IHZhcmlhYmxlIHByZXNlbnQgaW4gYSBDb250YWluZXIuIiwicHJvcGVydGllcyI6eyJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBvZiB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUuXG5NYXkgY29uc2lzdCBvZiBhbnkgcHJpbnRhYmxlIEFTQ0lJIGNoYXJhY3RlcnMgZXhjZXB0ICc9Jy4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlIjp7ImRlc2NyaXB0aW9uIjoiVmFyaWFibGUgcmVmZXJlbmNlcyAkKFZBUl9OQU1FKSBhcmUgZXhwYW5kZWRcbnVzaW5nIHRoZSBwcmV2aW91c2x5IGRlZmluZWQgZW52aXJvbm1lbnQgdmFyaWFibGVzIGluIHRoZSBjb250YWluZXIgYW5kXG5hbnkgc2VydmljZSBlbnZpcm9ubWVudCB2YXJpYWJsZXMuIElmIGEgdmFyaWFibGUgY2Fubm90IGJlIHJlc29sdmVkLFxudGhlIHJlZmVyZW5jZSBpbiB0aGUgaW5wdXQgc3RyaW5nIHdpbGwgYmUgdW5jaGFuZ2VkLiBEb3VibGUgJCQgYXJlIHJlZHVjZWRcbnRvIGEgc2luZ2xlICQsIHdoaWNoIGFsbG93cyBmb3IgZXNjYXBpbmcgdGhlICQoVkFSX05BTUUpIHN5bnRheDogaS5lLlxuXCIkJChWQVJfTkFNRSlcIiB3aWxsIHByb2R1Y2UgdGhlIHN0cmluZyBsaXRlcmFsIFwiJChWQVJfTkFNRSlcIi5cbkVzY2FwZWQgcmVmZXJlbmNlcyB3aWxsIG5ldmVyIGJlIGV4cGFuZGVkLCByZWdhcmRsZXNzIG9mIHdoZXRoZXIgdGhlIHZhcmlhYmxlXG5leGlzdHMgb3Igbm90LlxuRGVmYXVsdHMgdG8gXCJcIi4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlRnJvbSI6eyJkZXNjcmlwdGlvbiI6IlNvdXJjZSBmb3IgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlJ3MgdmFsdWUuIENhbm5vdCBiZSB1c2VkIGlmIHZhbHVlIGlzIG5vdCBlbXB0eS4iLCJwcm9wZXJ0aWVzIjp7ImNvbmZpZ01hcEtleVJlZiI6eyJkZXNjcmlwdGlvbiI6IlNlbGVjdHMgYSBrZXkgb2YgYSBDb25maWdNYXAuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJUaGUga2V5IHRvIHNlbGVjdC4iLCJ0eXBlIjoic3RyaW5nIn0sIm5hbWUiOnsiZGVmYXVsdCI6IiIsImRlc2NyaXB0aW9uIjoiTmFtZSBvZiB0aGUgcmVmZXJlbnQuXG5UaGlzIGZpZWxkIGlzIGVmZmVjdGl2ZWx5IHJlcXVpcmVkLCBidXQgZHVlIHRvIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IGlzXG5hbGxvd2VkIHRvIGJlIGVtcHR5LiBJbnN0YW5jZXMgb2YgdGhpcyB0eXBlIHdpdGggYW4gZW1wdHkgdmFsdWUgaGVyZSBhcmVcbmFsbW9zdCBjZXJ0YWlubHkgd3JvbmcuXG5Nb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL292ZXJ2aWV3L3dvcmtpbmctd2l0aC1vYmplY3RzL25hbWVzLyNuYW1lcyIsInR5cGUiOiJzdHJpbmcifSwib3B0aW9uYWwiOnsiZGVzY3JpcHRpb24iOiJTcGVjaWZ5IHdoZXRoZXIgdGhlIENvbmZpZ01hcCBvciBpdHMga2V5IG11c3QgYmUgZGVmaW5lZCIsInR5cGUiOiJib29sZWFuIn19LCJyZXF1aXJlZCI6WyJrZXkiXSwidHlwZSI6Im9iamVjdCIsIngta3ViZXJuZXRlcy1tYXAtdHlwZSI6ImF0b21pYyJ9LCJmaWVsZFJlZiI6eyJkZXNjcmlwdGlvbiI6IlNlbGVjdHMgYSBmaWVsZCBvZiB0aGUgcG9kOiBzdXBwb3J0cyBtZXRhZGF0YS5uYW1lLCBtZXRhZGF0YS5uYW1lc3BhY2UsIGBtZXRhZGF0YS5sYWJlbHNbJ1x1MDAzY0tFWVx1MDAzZSddYCwgYG1ldGFkYXRhLmFubm90YXRpb25zWydcdTAwM2NLRVlcdTAwM2UnXWAsXG5zcGVjLm5vZGVOYW1lLCBzcGVjLnNlcnZpY2VBY2NvdW50TmFtZSwgc3RhdHVzLmhvc3RJUCwgc3RhdHVzLnBvZElQLCBzdGF0dXMucG9kSVBzLiIsInByb3BlcnRpZXMiOnsiYXBpVmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IlZlcnNpb24gb2YgdGhlIHNjaGVtYSB0aGUgRmllbGRQYXRoIGlzIHdyaXR0ZW4gaW4gdGVybXMgb2YsIGRlZmF1bHRzIHRvIFwidjFcIi4iLCJ0eXBlIjoic3RyaW5nIn0sImZpZWxkUGF0aCI6eyJkZXNjcmlwdGlvbiI6IlBhdGggb2YgdGhlIGZpZWxkIHRvIHNlbGVjdCBpbiB0aGUgc3BlY2lmaWVkIEFQSSB2ZXJzaW9uLiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbImZpZWxkUGF0aCJdLCJ0eXBlIjoib2JqZWN0IiwieC1rdWJlcm5ldGVzLW1hcC10eXBlIjoiYXRvbWljIn0sImZpbGVLZXlSZWYiOnsiZGVzY3JpcHRpb24iOiJGaWxlS2V5UmVmIHNlbGVjdHMgYSBrZXkgb2YgdGhlIGVudiBmaWxlLlxuUmVxdWlyZXMgdGhlIEVudkZpbGVzIGZlYXR1cmUgZ2F0ZSB0byBiZSBlbmFibGVkLiIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoiVGhlIGtleSB3aXRoaW4gdGhlIGVudiBmaWxlLiBBbiBpbnZhbGlkIGtleSB3aWxsIHByZXZlbnQgdGhlIHBvZCBmcm9tIHN0YXJ0aW5nLlxuVGhlIGtleXMgZGVmaW5lZCB3aXRoaW4gYSBzb3VyY2UgbWF5IGNvbnNpc3Qgb2YgYW55IHByaW50YWJsZSBBU0NJSSBjaGFyYWN0ZXJzIGV4Y2VwdCAnPScuXG5EdXJpbmcgQWxwaGEgc3RhZ2Ugb2YgdGhlIEVudkZpbGVzIGZlYXR1cmUgZ2F0ZSwgdGhlIGtleSBzaXplIGlzIGxpbWl0ZWQgdG8gMTI4IGNoYXJhY3RlcnMuIiwidHlwZSI6InN0cmluZyJ9LCJvcHRpb25hbCI6eyJkZWZhdWx0IjpmYWxzZSwiZGVzY3JpcHRpb24iOiJTcGVjaWZ5IHdoZXRoZXIgdGhlIGZpbGUgb3IgaXRzIGtleSBtdXN0IGJlIGRlZmluZWQuIElmIHRoZSBmaWxlIG9yIGtleVxuZG9lcyBub3QgZXhpc3QsIHRoZW4gdGhlIGVudiB2YXIgaXMgbm90IHB1Ymxpc2hlZC5cbklmIG9wdGlvbmFsIGlzIHNldCB0byB0cnVlIGFuZCB0aGUgc3BlY2lmaWVkIGtleSBkb2VzIG5vdCBleGlzdCxcbnRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSB3aWxsIG5vdCBiZSBzZXQgaW4gdGhlIFBvZCdzIGNvbnRhaW5lcnMuXG5cbklmIG9wdGlvbmFsIGlzIHNldCB0byBmYWxzZSBhbmQgdGhlIHNwZWNpZmllZCBrZXkgZG9lcyBub3QgZXhpc3QsXG5hbiBlcnJvciB3aWxsIGJlIHJldHVybmVkIGR1cmluZyBQb2QgY3JlYXRpb24uIiwidHlwZSI6ImJvb2xlYW4ifSwicGF0aCI6eyJkZXNjcmlwdGlvbiI6IlRoZSBwYXRoIHdpdGhpbiB0aGUgdm9sdW1lIGZyb20gd2hpY2ggdG8gc2VsZWN0IHRoZSBmaWxlLlxuTXVzdCBiZSByZWxhdGl2ZSBhbmQgbWF5IG5vdCBjb250YWluIHRoZSAnLi4nIHBhdGggb3Igc3RhcnQgd2l0aCAnLi4nLiIsInR5cGUiOiJzdHJpbmcifSwidm9sdW1lTmFtZSI6eyJkZXNjcmlwdGlvbiI6IlRoZSBuYW1lIG9mIHRoZSB2b2x1bWUgbW91bnQgY29udGFpbmluZyB0aGUgZW52IGZpbGUuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsia2V5IiwicGF0aCIsInZvbHVtZU5hbWUiXSwidHlwZSI6Im9iamVjdCIsIngta3ViZXJuZXRlcy1tYXAtdHlwZSI6ImF0b21pYyJ9LCJyZXNvdXJjZUZpZWxkUmVmIjp7ImRlc2NyaXB0aW9uIjoiU2VsZWN0cyBhIHJlc291cmNlIG9mIHRoZSBjb250YWluZXI6IG9ubHkgcmVzb3VyY2VzIGxpbWl0cyBhbmQgcmVxdWVzdHNcbihsaW1pdHMuY3B1LCBsaW1pdHMubWVtb3J5LCBsaW1pdHMuZXBoZW1lcmFsLXN0b3JhZ2UsIHJlcXVlc3RzLmNwdSwgcmVxdWVzdHMubWVtb3J5IGFuZCByZXF1ZXN0cy5lcGhlbWVyYWwtc3RvcmFnZSkgYXJlIGN1cnJlbnRseSBzdXBwb3J0ZWQuIiwicHJvcGVydGllcyI6eyJjb250YWluZXJOYW1lIjp7ImRlc2NyaXB0aW9uIjoiQ29udGFpbmVyIG5hbWU6IHJlcXVpcmVkIGZvciB2b2x1bWVzLCBvcHRpb25hbCBmb3IgZW52IHZhcnMiLCJ0eXBlIjoic3RyaW5nIn0sImRpdmlzb3IiOnsiYW55T2YiOlt7InR5cGUiOiJpbnRlZ2VyIn0seyJ0eXBlIjoic3RyaW5nIn1dLCJkZXNjcmlwdGlvbiI6IlNwZWNpZmllcyB0aGUgb3V0cHV0IGZvcm1hdCBvZiB0aGUgZXhwb3NlZCByZXNvdXJjZXMsIGRlZmF1bHRzIHRvIFwiMVwiIiwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJyZXNvdXJjZSI6eyJkZXNjcmlwdGlvbiI6IlJlcXVpcmVkOiByZXNvdXJjZSB0byBzZWxlY3QiLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJyZXNvdXJjZSJdLCJ0eXBlIjoib2JqZWN0IiwieC1rdWJlcm5ldGVzLW1hcC10eXBlIjoiYXRvbWljIn0sInNlY3JldEtleVJlZiI6eyJkZXNjcmlwdGlvbiI6IlNlbGVjdHMgYSBrZXkgb2YgYSBzZWNyZXQgaW4gdGhlIHBvZCdzIG5hbWVzcGFjZSIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoiVGhlIGtleSBvZiB0aGUgc2VjcmV0IHRvIHNlbGVjdCBmcm9tLiAgTXVzdCBiZSBhIHZhbGlkIHNlY3JldCBrZXkuIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlZmF1bHQiOiIiLCJkZXNjcmlwdGlvbiI6Ik5hbWUgb2YgdGhlIHJlZmVyZW50LlxuVGhpcyBmaWVsZCBpcyBlZmZlY3RpdmVseSByZXF1aXJlZCwgYnV0IGR1ZSB0byBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBpc1xuYWxsb3dlZCB0byBiZSBlbXB0eS4gSW5zdGFuY2VzIG9mIHRoaXMgdHlwZSB3aXRoIGFuIGVtcHR5IHZhbHVlIGhlcmUgYXJlXG5hbG1vc3QgY2VydGFpbmx5IHdyb25nLlxuTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9vdmVydmlldy93b3JraW5nLXdpdGgtb2JqZWN0cy9uYW1lcy8jbmFtZXMiLCJ0eXBlIjoic3RyaW5nIn0sIm9wdGlvbmFsIjp7ImRlc2NyaXB0aW9uIjoiU3BlY2lmeSB3aGV0aGVyIHRoZSBTZWNyZXQgb3IgaXRzIGtleSBtdXN0IGJlIGRlZmluZWQiLCJ0eXBlIjoiYm9vbGVhbiJ9fSwicmVxdWlyZWQiOlsia2V5Il0sInR5cGUiOiJvYmplY3QiLCJ4LWt1YmVybmV0ZXMtbWFwLXR5cGUiOiJhdG9taWMifX0sInR5cGUiOiJvYmplY3QifX0sInJlcXVpcmVkIjpbIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJDdXN0b20gbGFiZWxzIHRvIHNldCBvbiBhbGwgbWFuYWdlZCBvYmplY3RzLiIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwiaW1hZ2VQdWxsU2VjcmV0cyI6eyJkZXNjcmlwdGlvbiI6IkFkZGl0aW9uYWwgaW1hZ2UgcHVsbCBzZWNyZXRzIHRvIGJlIHRha2VuIGludG8gYWNjb3VudCBmb3IgcHVsbGluZyBpbWFnZXMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJMb2NhbFNlY3JldFJlZmVyZW5jZSBpcyBhIHJlZmVyZW5jZSB0byBhIHNlY3JldCB3aXRoaW4gdGhlIHNhbWUgbmFtZXNwYWNlLiIsInByb3BlcnRpZXMiOnsibmFtZSI6eyJkZXNjcmlwdGlvbiI6IlRoZSBuYW1lIG9mIHRoZSByZWZlcmVuY2VkIHNlY3JldC4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJuYW1lIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1pc2MiOnsiZGVzY3JpcHRpb24iOiJEZXByZWNhdGVkIGZpZWxkLiBUaGlzIGZpZWxkIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLlxuTWlzY2VsbGFuZW91cyBzZXR0aW5ncy4iLCJwcm9wZXJ0aWVzIjp7ImNyZWF0ZVNDQ3MiOnsiZGVzY3JpcHRpb24iOiJEZXByZWNhdGVkIGZpZWxkLiBUaGlzIGZpZWxkIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLlxuU2V0IHRoaXMgdG8gdHJ1ZSB0byBoYXZlIHRoZSBvcGVyYXRvciBjcmVhdGUgU2VjdXJpdHlDb250ZXh0Q29uc3RyYWludHMgKFNDQ3MpIGZvciB0aGUgb3BlcmFuZHMuIFRoaXNcbmlzbid0IHVzdWFsbHkgbmVlZGVkLCBhbmQgbWF5IGludGVyZmVyZSB3aXRoIG90aGVyIHdvcmtsb2Fkcy4iLCJ0eXBlIjoiYm9vbGVhbiJ9fSwidHlwZSI6Im9iamVjdCJ9LCJtb25pdG9yaW5nIjp7ImRlc2NyaXB0aW9uIjoiTW9uaXRvcmluZyBjb25maWd1cmF0aW9uLiIsInByb3BlcnRpZXMiOnsib3BlbnNoaWZ0Ijp7ImRlc2NyaXB0aW9uIjoiT3BlblNoaWZ0TW9uaXRvcmluZyBkZWZpbmVzIHNldHRpbmdzIHJlbGF0ZWQgdG8gT3BlblNoaWZ0IE1vbml0b3JpbmciLCJwcm9wZXJ0aWVzIjp7ImVuYWJsZWQiOnsiZGVmYXVsdCI6dHJ1ZSwidHlwZSI6ImJvb2xlYW4ifX0sInJlcXVpcmVkIjpbImVuYWJsZWQiXSwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9LCJuZXR3b3JrIjp7ImRlc2NyaXB0aW9uIjoiTmV0d29yayBjb25maWd1cmF0aW9uLiIsInByb3BlcnRpZXMiOnsicG9saWNpZXMiOnsiZGVmYXVsdCI6IkVuYWJsZWQiLCJkZXNjcmlwdGlvbiI6IlRvIHByb3ZpZGUgc2VjdXJpdHkgYXQgdGhlIG5ldHdvcmsgbGV2ZWwgdGhlIEFDUyBPcGVyYXRvciBjcmVhdGVzIE5ldHdvcmtQb2xpY3kgcmVzb3VyY2VzIGJ5IGRlZmF1bHQuIElmIHlvdSB3YW50IHRvIG1hbmFnZSB5b3VyIG93biBOZXR3b3JrUG9saWN5IG9iamVjdHMgdGhlbiBzZXQgdGhpcyB0byBcIkRpc2FibGVkXCIuIiwiZW51bSI6WyJFbmFibGVkIiwiRGlzYWJsZWQiXSwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJvdmVybGF5cyI6eyJkZXNjcmlwdGlvbiI6Ik92ZXJsYXlzIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJLOHNPYmplY3RPdmVybGF5IGlzIGFuIG92ZXJsYXkgdGhhdCBhcHBsaWVzIGEgc2V0IG9mIHBhdGNoZXMgdG8gYSByZXNvdXJjZS5cbkl0IHRhcmdldHMgYSByZXNvdXJjZSBieSBpdHMgQVBJIHZlcnNpb24sIGtpbmQsIGFuZCBuYW1lLCBhbmQgYXBwbGllc1xuYSBsaXN0IG9mIHBhdGNoZXMgdG8gdGhpcyByZXNvdXJjZS5cblxuIyBFeGFtcGxlc1xuXG4jIyBBZGRpbmcgYW4gYW5ub3RhdGlvbiB0byBhIHJlc291cmNlXG5cblx0YXBpVmVyc2lvbjogdjFcblx0a2luZDogU2VydmljZUFjY291bnRcblx0bmFtZTogY2VudHJhbFxuXHRwYXRjaGVzOlxuXHQtIHBhdGg6IG1ldGFkYXRhLmFubm90YXRpb25zLmVrc1xcLmFtYXpvbmF3c1xcLmNvbS9yb2xlLWFyblxuXHQgIHZhbHVlOiBcIlxcXCJhcm46YXdzOmlhbToxMjM0OnJvbGVcXFwiXCJcblxuIyMgQWRkaW5nIGFuIGVudmlyb25tZW50IHZhcmlhYmxlIHRvIGEgZGVwbG95bWVudFxuXG5cdGFwaVZlcnNpb246IGFwcHMvdjFcblx0a2luZDogRGVwbG95bWVudFxuXHRuYW1lOiBjZW50cmFsXG5cdHBhdGNoZXM6XG5cdC0gcGF0aDogc3BlYy50ZW1wbGF0ZS5zcGVjLmNvbnRhaW5lcnNbbmFtZTpjZW50cmFsXS5lbnZbLTFdXG5cdCAgdmFsdWU6IHxcblx0ICAgIG5hbWU6IE1ZX0VOVl9WQVJcblx0ICAgIHZhbHVlOiB2YWx1ZVxuXG4jIyBBZGRpbmcgYW4gaW5ncmVzcyB0byBhIG5ldHdvcmsgcG9saWN5XG5cblx0YXBpVmVyc2lvbjogbmV0d29ya2luZy5rOHMuaW8vdjFcblx0a2luZDogTmV0d29ya1BvbGljeVxuXHRuYW1lOiBhbGxvdy1leHQtdG8tY2VudHJhbFxuXHRwYXRjaGVzOlxuXHQtIHBhdGg6IHNwZWMuaW5ncmVzc1stMV1cblx0ICB2YWx1ZTogfFxuXHQgICAgcG9ydHM6XG5cdCAgICAtIHBvcnQ6IDk5OVxuXHQgICAgICBwcm90b2NvbDogVENQXG5cbiMjIENoYW5naW5nIHRoZSB2YWx1ZSBvZiBhIGNvbmZpZ01hcFxuXG5cdGFwaVZlcnNpb246IHYxXG5cdGtpbmQ6IENvbmZpZ01hcFxuXHRuYW1lOiBjZW50cmFsLWVuZHBvaW50c1xuXHRwYXRjaGVzOlxuXHQtIHBhdGg6IGRhdGEuZW5kcG9pbnRzXFwueWFtbDpcblx0ICB2ZXJiYXRpbTogfFxuXHQgICAgZGlzYWJsZURlZmF1bHQ6IGZhbHNlXG5cbiMjIEFkZGluZyBhIGNvbnRhaW5lciB0byBhIGRlcGxveW1lbnRcblxuXHRhcGlWZXJzaW9uOiBhcHBzL3YxXG5cdGtpbmQ6IERlcGxveW1lbnRcblx0bmFtZTogY2VudHJhbFxuXHRwYXRjaGVzOlxuXHQgIC0gcGF0aDogc3BlYy50ZW1wbGF0ZS5zcGVjLmNvbnRhaW5lcnNbLTFdXG5cdCAgICB2YWx1ZTogfFxuXHQgICAgICBuYW1lOiBuZ2lueFxuXHQgICAgICBpbWFnZTogbmdpbnhcblx0ICAgICAgcG9ydHM6XG5cdCAgICAgIC0gY29udGFpbmVyUG9ydDogODAwMFxuXHQgICAgICAgIG5hbWU6IGh0dHBcblx0ICAgICAgICBwcm90b2NvbDogVENQIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiUmVzb3VyY2UgQVBJIHZlcnNpb24uIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiUmVzb3VyY2Uga2luZC4iLCJ0eXBlIjoic3RyaW5nIn0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG9mIHJlc291cmNlLiIsInR5cGUiOiJzdHJpbmcifSwib3B0aW9uYWwiOnsiZGVzY3JpcHRpb24iOiJPcHRpb25hbCBtYXJrcyB0aGUgb3ZlcmxheSBhcyBvcHRpb25hbC5cbldoZW4gT3B0aW9uYWwgaXMgdHJ1ZSwgYW5kIHRoZSBzcGVjaWZpZWQgcmVzb3VyY2UgZG9lcyBub3QgZXhpc3QgaW4gdGhlIG91dHB1dCBtYW5pZmVzdHMsIHRoZSBvdmVybGF5IHdpbGwgYmUgc2tpcHBlZCwgYW5kIGEgd2FybmluZyB3aWxsIGJlIGxvZ2dlZC5cbldoZW4gT3B0aW9uYWwgaXMgZmFsc2UsIGFuZCB0aGUgc3BlY2lmaWVkIHJlc291cmNlIGRvZXMgbm90IGV4aXN0IGluIHRoZSBvdXRwdXQgbWFuaWZlc3RzLCBhbiBlcnJvciB3aWxsIGJlIHRocm93bi4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJwYXRjaGVzIjp7ImRlc2NyaXB0aW9uIjoiTGlzdCBvZiBwYXRjaGVzIHRvIGFwcGx5IHRvIHJlc291cmNlLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiSzhzT2JqZWN0T3ZlcmxheVBhdGNoIGRlZmluZXMgYSBwYXRjaCB0byBhcHBseSB0byBhIHJlc291cmNlLiIsInByb3BlcnRpZXMiOnsicGF0aCI6eyJkZXNjcmlwdGlvbiI6IlBhdGggb2YgdGhlIGZvcm0gYS5ba2V5MTp2YWx1ZTFdLmIuWzp2YWx1ZTJdXG5XaGVyZSBba2V5MTp2YWx1ZTFdIGlzIGEgc2VsZWN0b3IgZm9yIGEga2V5LXZhbHVlIHBhaXIgdG8gaWRlbnRpZnkgYSBsaXN0IGVsZW1lbnQgYW5kIFs6dmFsdWVdIGlzIGEgdmFsdWVcbnNlbGVjdG9yIHRvIGlkZW50aWZ5IGEgbGlzdCBlbGVtZW50IGluIGEgbGVhZiBsaXN0LlxuQWxsIHBhdGggaW50ZXJtZWRpYXRlIG5vZGVzIG11c3QgZXhpc3QuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZSI6eyJkZXNjcmlwdGlvbiI6IlZhbHVlIHRvIGFkZCwgZGVsZXRlIG9yIHJlcGxhY2UuXG5Gb3IgYWRkLCB0aGUgcGF0aCBzaG91bGQgYmUgYSBuZXcgbGVhZi5cbkZvciBkZWxldGUsIHZhbHVlIHNob3VsZCBiZSB1bnNldC5cbkZvciByZXBsYWNlLCBwYXRoIHNob3VsZCByZWZlcmVuY2UgYW4gZXhpc3Rpbmcgbm9kZS5cbkFsbCB2YWx1ZXMgYXJlIHN0cmluZ3MgYnV0IGFyZSBjb252ZXJ0ZWQgaW50byBhcHByb3ByaWF0ZSB0eXBlIGJhc2VkIG9uIHNjaGVtYS4iLCJ0eXBlIjoic3RyaW5nIn0sInZlcmJhdGltIjp7ImRlc2NyaXB0aW9uIjoiVmVyYmF0aW0gdmFsdWUgdG8gYWRkLCBkZWxldGUgb3IgcmVwbGFjZS5cblNhbWUgYXMgVmFsdWUsIGhvd2V2ZXIgdGhlIGNvbnRlbnQgaXMgbm90IGludGVycHJldGVkIGFzIFlBTUwsIGJ1dCB0cmVhdGVkIGFzIGxpdGVyYWwgc3RyaW5nIGluc3RlYWQuXG5BdCBsZWFzdCBvbmUgb2YgVmFsdWUgYW5kIFZlcmJhdGltIG11c3QgYmUgZW1wdHkuIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifX0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sInBlck5vZGUiOnsiZGVzY3JpcHRpb24iOiJTZXR0aW5ncyBmb3IgdGhlIGNvbXBvbmVudHMgcnVubmluZyBvbiBlYWNoIG5vZGUgaW4gdGhlIGNsdXN0ZXIgKENvbGxlY3RvciBhbmQgQ29tcGxpYW5jZSkuIiwicHJvcGVydGllcyI6eyJjb2xsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJTZXR0aW5ncyBmb3IgdGhlIENvbGxlY3RvciBjb250YWluZXIsIHdoaWNoIGlzIHJlc3BvbnNpYmxlIGZvciBjb2xsZWN0aW5nIHByb2Nlc3MgYW5kIG5ldHdvcmtpbmdcbmFjdGl2aXR5IGF0IHRoZSBob3N0IGxldmVsLiIsInByb3BlcnRpZXMiOnsiY29sbGVjdGlvbiI6eyJkZWZhdWx0IjoiQ09SRV9CUEYiLCJkZXNjcmlwdGlvbiI6IlRoZSBtZXRob2QgZm9yIHN5c3RlbS1sZXZlbCBkYXRhIGNvbGxlY3Rpb24uIENPUkVfQlBGIGlzIHJlY29tbWVuZGVkLlxuSWYgeW91IHNlbGVjdCBcIk5vQ29sbGVjdGlvblwiLCB5b3Ugd2lsbCBub3QgYmUgYWJsZSB0byBzZWUgYW55IGluZm9ybWF0aW9uIGFib3V0IG5ldHdvcmsgYWN0aXZpdHlcbmFuZCBwcm9jZXNzIGV4ZWN1dGlvbnMuIFRoZSByZW1haW5pbmcgc2V0dGluZ3MgaW4gdGhlc2Ugc2VjdGlvbiB3aWxsIG5vdCBoYXZlIGFueSBlZmZlY3QuXG5UaGUgdmFsdWUgaXMgYSBzdWJqZWN0IG9mIGNvbnZlcnNpb24gYnkgdGhlIG9wZXJhdG9yIGlmIG5lZWRlZCwgZS5nLiB0b1xucmVtb3ZlIGRlcHJlY2F0ZWQgbWV0aG9kcy4iLCJlbnVtIjpbIkVCUEYiLCJDT1JFX0JQRiIsIk5vQ29sbGVjdGlvbiIsIktlcm5lbE1vZHVsZSJdLCJ0eXBlIjoic3RyaW5nIn0sImZvcmNlQ29sbGVjdGlvbiI6eyJkZWZhdWx0IjpmYWxzZSwiZGVzY3JpcHRpb24iOiJEZXByZWNhdGVkIGZpZWxkLiBUaGlzIGZpZWxkIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLiIsInR5cGUiOiJib29sZWFuIn0sImltYWdlRmxhdm9yIjp7ImRlZmF1bHQiOiJSZWd1bGFyIiwiZGVzY3JpcHRpb24iOiJEZXByZWNhdGVkIGZpZWxkLiIsImVudW0iOlsiUmVndWxhciIsIlNsaW0iXSwidHlwZSI6InN0cmluZyJ9LCJyZXNvdXJjZXMiOnsiZGVzY3JpcHRpb24iOiJBbGxvd3Mgb3ZlcnJpZGluZyB0aGUgZGVmYXVsdCByZXNvdXJjZSBzZXR0aW5ncyBmb3IgdGhpcyBjb21wb25lbnQuIFBsZWFzZSBjb25zdWx0IHRoZSBkb2N1bWVudGF0aW9uXG5mb3IgYW4gb3ZlcnZpZXcgb2YgZGVmYXVsdCByZXNvdXJjZSByZXF1aXJlbWVudHMgYW5kIGEgc2l6aW5nIGd1aWRlLiIsInByb3BlcnRpZXMiOnsiY2xhaW1zIjp7ImRlc2NyaXB0aW9uIjoiQ2xhaW1zIGxpc3RzIHRoZSBuYW1lcyBvZiByZXNvdXJjZXMsIGRlZmluZWQgaW4gc3BlYy5yZXNvdXJjZUNsYWltcyxcbnRoYXQgYXJlIHVzZWQgYnkgdGhpcyBjb250YWluZXIuXG5cblRoaXMgZmllbGQgZGVwZW5kcyBvbiB0aGVcbkR5bmFtaWNSZXNvdXJjZUFsbG9jYXRpb24gZmVhdHVyZSBnYXRlLlxuXG5UaGlzIGZpZWxkIGlzIGltbXV0YWJsZS4gSXQgY2FuIG9ubHkgYmUgc2V0IGZvciBjb250YWluZXJzLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiUmVzb3VyY2VDbGFpbSByZWZlcmVuY2VzIG9uZSBlbnRyeSBpbiBQb2RTcGVjLlJlc291cmNlQ2xhaW1zLiIsInByb3BlcnRpZXMiOnsibmFtZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWUgbXVzdCBtYXRjaCB0aGUgbmFtZSBvZiBvbmUgZW50cnkgaW4gcG9kLnNwZWMucmVzb3VyY2VDbGFpbXMgb2ZcbnRoZSBQb2Qgd2hlcmUgdGhpcyBmaWVsZCBpcyB1c2VkLiBJdCBtYWtlcyB0aGF0IHJlc291cmNlIGF2YWlsYWJsZVxuaW5zaWRlIGEgY29udGFpbmVyLiIsInR5cGUiOiJzdHJpbmcifSwicmVxdWVzdCI6eyJkZXNjcmlwdGlvbiI6IlJlcXVlc3QgaXMgdGhlIG5hbWUgY2hvc2VuIGZvciBhIHJlcXVlc3QgaW4gdGhlIHJlZmVyZW5jZWQgY2xhaW0uXG5JZiBlbXB0eSwgZXZlcnl0aGluZyBmcm9tIHRoZSBjbGFpbSBpcyBtYWRlIGF2YWlsYWJsZSwgb3RoZXJ3aXNlXG5vbmx5IHRoZSByZXN1bHQgb2YgdGhpcyByZXF1ZXN0LiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkiLCJ4LWt1YmVybmV0ZXMtbGlzdC1tYXAta2V5cyI6WyJuYW1lIl0sIngta3ViZXJuZXRlcy1saXN0LXR5cGUiOiJtYXAifSwibGltaXRzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJkZXNjcmlwdGlvbiI6IkxpbWl0cyBkZXNjcmliZXMgdGhlIG1heGltdW0gYW1vdW50IG9mIGNvbXB1dGUgcmVzb3VyY2VzIGFsbG93ZWQuXG5Nb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL2NvbmZpZ3VyYXRpb24vbWFuYWdlLXJlc291cmNlcy1jb250YWluZXJzLyIsInR5cGUiOiJvYmplY3QifSwicmVxdWVzdHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsiYW55T2YiOlt7InR5cGUiOiJpbnRlZ2VyIn0seyJ0eXBlIjoic3RyaW5nIn1dLCJwYXR0ZXJuIjoiXihcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSgoW0tNR1RQRV1pKXxbbnVta01HVFBFXXwoW2VFXShcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSkpPyQiLCJ4LWt1YmVybmV0ZXMtaW50LW9yLXN0cmluZyI6dHJ1ZX0sImRlc2NyaXB0aW9uIjoiUmVxdWVzdHMgZGVzY3JpYmVzIHRoZSBtaW5pbXVtIGFtb3VudCBvZiBjb21wdXRlIHJlc291cmNlcyByZXF1aXJlZC5cbklmIFJlcXVlc3RzIGlzIG9taXR0ZWQgZm9yIGEgY29udGFpbmVyLCBpdCBkZWZhdWx0cyB0byBMaW1pdHMgaWYgdGhhdCBpcyBleHBsaWNpdGx5IHNwZWNpZmllZCxcbm90aGVyd2lzZSB0byBhbiBpbXBsZW1lbnRhdGlvbi1kZWZpbmVkIHZhbHVlLiBSZXF1ZXN0cyBjYW5ub3QgZXhjZWVkIExpbWl0cy5cbk1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtcmVzb3VyY2VzLWNvbnRhaW5lcnMvIiwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9LCJjb21wbGlhbmNlIjp7ImRlc2NyaXB0aW9uIjoiU2V0dGluZ3MgZm9yIHRoZSBDb21wbGlhbmNlIGNvbnRhaW5lciwgd2hpY2ggaXMgcmVzcG9uc2libGUgZm9yIGNoZWNraW5nIGhvc3QtbGV2ZWwgY29uZmlndXJhdGlvbnMuIiwicHJvcGVydGllcyI6eyJyZXNvdXJjZXMiOnsiZGVzY3JpcHRpb24iOiJBbGxvd3Mgb3ZlcnJpZGluZyB0aGUgZGVmYXVsdCByZXNvdXJjZSBzZXR0aW5ncyBmb3IgdGhpcyBjb21wb25lbnQuIFBsZWFzZSBjb25zdWx0IHRoZSBkb2N1bWVudGF0aW9uXG5mb3IgYW4gb3ZlcnZpZXcgb2YgZGVmYXVsdCByZXNvdXJjZSByZXF1aXJlbWVudHMgYW5kIGEgc2l6aW5nIGd1aWRlLiIsInByb3BlcnRpZXMiOnsiY2xhaW1zIjp7ImRlc2NyaXB0aW9uIjoiQ2xhaW1zIGxpc3RzIHRoZSBuYW1lcyBvZiByZXNvdXJjZXMsIGRlZmluZWQgaW4gc3BlYy5yZXNvdXJjZUNsYWltcyxcbnRoYXQgYXJlIHVzZWQgYnkgdGhpcyBjb250YWluZXIuXG5cblRoaXMgZmllbGQgZGVwZW5kcyBvbiB0aGVcbkR5bmFtaWNSZXNvdXJjZUFsbG9jYXRpb24gZmVhdHVyZSBnYXRlLlxuXG5UaGlzIGZpZWxkIGlzIGltbXV0YWJsZS4gSXQgY2FuIG9ubHkgYmUgc2V0IGZvciBjb250YWluZXJzLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiUmVzb3VyY2VDbGFpbSByZWZlcmVuY2VzIG9uZSBlbnRyeSBpbiBQb2RTcGVjLlJlc291cmNlQ2xhaW1zLiIsInByb3BlcnRpZXMiOnsibmFtZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWUgbXVzdCBtYXRjaCB0aGUgbmFtZSBvZiBvbmUgZW50cnkgaW4gcG9kLnNwZWMucmVzb3VyY2VDbGFpbXMgb2ZcbnRoZSBQb2Qgd2hlcmUgdGhpcyBmaWVsZCBpcyB1c2VkLiBJdCBtYWtlcyB0aGF0IHJlc291cmNlIGF2YWlsYWJsZVxuaW5zaWRlIGEgY29udGFpbmVyLiIsInR5cGUiOiJzdHJpbmcifSwicmVxdWVzdCI6eyJkZXNjcmlwdGlvbiI6IlJlcXVlc3QgaXMgdGhlIG5hbWUgY2hvc2VuIGZvciBhIHJlcXVlc3QgaW4gdGhlIHJlZmVyZW5jZWQgY2xhaW0uXG5JZiBlbXB0eSwgZXZlcnl0aGluZyBmcm9tIHRoZSBjbGFpbSBpcyBtYWRlIGF2YWlsYWJsZSwgb3RoZXJ3aXNlXG5vbmx5IHRoZSByZXN1bHQgb2YgdGhpcyByZXF1ZXN0LiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkiLCJ4LWt1YmVybmV0ZXMtbGlzdC1tYXAta2V5cyI6WyJuYW1lIl0sIngta3ViZXJuZXRlcy1saXN0LXR5cGUiOiJtYXAifSwibGltaXRzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJkZXNjcmlwdGlvbiI6IkxpbWl0cyBkZXNjcmliZXMgdGhlIG1heGltdW0gYW1vdW50IG9mIGNvbXB1dGUgcmVzb3VyY2VzIGFsbG93ZWQuXG5Nb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL2NvbmZpZ3VyYXRpb24vbWFuYWdlLXJlc291cmNlcy1jb250YWluZXJzLyIsInR5cGUiOiJvYmplY3QifSwicmVxdWVzdHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsiYW55T2YiOlt7InR5cGUiOiJpbnRlZ2VyIn0seyJ0eXBlIjoic3RyaW5nIn1dLCJwYXR0ZXJuIjoiXihcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSgoW0tNR1RQRV1pKXxbbnVta01HVFBFXXwoW2VFXShcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSkpPyQiLCJ4LWt1YmVybmV0ZXMtaW50LW9yLXN0cmluZyI6dHJ1ZX0sImRlc2NyaXB0aW9uIjoiUmVxdWVzdHMgZGVzY3JpYmVzIHRoZSBtaW5pbXVtIGFtb3VudCBvZiBjb21wdXRlIHJlc291cmNlcyByZXF1aXJlZC5cbklmIFJlcXVlc3RzIGlzIG9taXR0ZWQgZm9yIGEgY29udGFpbmVyLCBpdCBkZWZhdWx0cyB0byBMaW1pdHMgaWYgdGhhdCBpcyBleHBsaWNpdGx5IHNwZWNpZmllZCxcbm90aGVyd2lzZSB0byBhbiBpbXBsZW1lbnRhdGlvbi1kZWZpbmVkIHZhbHVlLiBSZXF1ZXN0cyBjYW5ub3QgZXhjZWVkIExpbWl0cy5cbk1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtcmVzb3VyY2VzLWNvbnRhaW5lcnMvIiwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9LCJob3N0QWxpYXNlcyI6eyJkZXNjcmlwdGlvbiI6Ikhvc3RBbGlhc2VzIGFsbG93cyBjb25maWd1cmluZyBhZGRpdGlvbmFsIGhvc3RuYW1lcyB0byByZXNvbHZlIGluIHRoZSBwb2QncyBob3N0cyBmaWxlLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiSG9zdEFsaWFzIGhvbGRzIHRoZSBtYXBwaW5nIGJldHdlZW4gSVAgYW5kIGhvc3RuYW1lcyB0aGF0IHdpbGwgYmUgaW5qZWN0ZWQgYXMgYW4gZW50cnkgaW4gdGhlXG5wb2QncyBob3N0cyBmaWxlLiIsInByb3BlcnRpZXMiOnsiaG9zdG5hbWVzIjp7ImRlc2NyaXB0aW9uIjoiSG9zdG5hbWVzIGZvciB0aGUgYWJvdmUgSVAgYWRkcmVzcy4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSIsIngta3ViZXJuZXRlcy1saXN0LXR5cGUiOiJhdG9taWMifSwiaXAiOnsiZGVzY3JpcHRpb24iOiJJUCBhZGRyZXNzIG9mIHRoZSBob3N0IGZpbGUgZW50cnkuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsiaXAiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibm9kZUludmVudG9yeSI6eyJkZXNjcmlwdGlvbiI6IlNldHRpbmdzIGZvciB0aGUgTm9kZS1JbnZlbnRvcnkgY29udGFpbmVyLCB3aGljaCBpcyByZXNwb25zaWJsZSBmb3Igc2Nhbm5pbmcgdGhlIE5vZGVzJyBmaWxlc3lzdGVtLiIsInByb3BlcnRpZXMiOnsicmVzb3VyY2VzIjp7ImRlc2NyaXB0aW9uIjoiQWxsb3dzIG92ZXJyaWRpbmcgdGhlIGRlZmF1bHQgcmVzb3VyY2Ugc2V0dGluZ3MgZm9yIHRoaXMgY29tcG9uZW50LiBQbGVhc2UgY29uc3VsdCB0aGUgZG9jdW1lbnRhdGlvblxuZm9yIGFuIG92ZXJ2aWV3IG9mIGRlZmF1bHQgcmVzb3VyY2UgcmVxdWlyZW1lbnRzIGFuZCBhIHNpemluZyBndWlkZS4iLCJwcm9wZXJ0aWVzIjp7ImNsYWltcyI6eyJkZXNjcmlwdGlvbiI6IkNsYWltcyBsaXN0cyB0aGUgbmFtZXMgb2YgcmVzb3VyY2VzLCBkZWZpbmVkIGluIHNwZWMucmVzb3VyY2VDbGFpbXMsXG50aGF0IGFyZSB1c2VkIGJ5IHRoaXMgY29udGFpbmVyLlxuXG5UaGlzIGZpZWxkIGRlcGVuZHMgb24gdGhlXG5EeW5hbWljUmVzb3VyY2VBbGxvY2F0aW9uIGZlYXR1cmUgZ2F0ZS5cblxuVGhpcyBmaWVsZCBpcyBpbW11dGFibGUuIEl0IGNhbiBvbmx5IGJlIHNldCBmb3IgY29udGFpbmVycy4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IlJlc291cmNlQ2xhaW0gcmVmZXJlbmNlcyBvbmUgZW50cnkgaW4gUG9kU3BlYy5SZXNvdXJjZUNsYWltcy4iLCJwcm9wZXJ0aWVzIjp7Im5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG11c3QgbWF0Y2ggdGhlIG5hbWUgb2Ygb25lIGVudHJ5IGluIHBvZC5zcGVjLnJlc291cmNlQ2xhaW1zIG9mXG50aGUgUG9kIHdoZXJlIHRoaXMgZmllbGQgaXMgdXNlZC4gSXQgbWFrZXMgdGhhdCByZXNvdXJjZSBhdmFpbGFibGVcbmluc2lkZSBhIGNvbnRhaW5lci4iLCJ0eXBlIjoic3RyaW5nIn0sInJlcXVlc3QiOnsiZGVzY3JpcHRpb24iOiJSZXF1ZXN0IGlzIHRoZSBuYW1lIGNob3NlbiBmb3IgYSByZXF1ZXN0IGluIHRoZSByZWZlcmVuY2VkIGNsYWltLlxuSWYgZW1wdHksIGV2ZXJ5dGhpbmcgZnJvbSB0aGUgY2xhaW0gaXMgbWFkZSBhdmFpbGFibGUsIG90aGVyd2lzZVxub25seSB0aGUgcmVzdWx0IG9mIHRoaXMgcmVxdWVzdC4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJuYW1lIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5IiwieC1rdWJlcm5ldGVzLWxpc3QtbWFwLWtleXMiOlsibmFtZSJdLCJ4LWt1YmVybmV0ZXMtbGlzdC10eXBlIjoibWFwIn0sImxpbWl0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJMaW1pdHMgZGVzY3JpYmVzIHRoZSBtYXhpbXVtIGFtb3VudCBvZiBjb21wdXRlIHJlc291cmNlcyBhbGxvd2VkLlxuTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9jb25maWd1cmF0aW9uL21hbmFnZS1yZXNvdXJjZXMtY29udGFpbmVycy8iLCJ0eXBlIjoib2JqZWN0In0sInJlcXVlc3RzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJkZXNjcmlwdGlvbiI6IlJlcXVlc3RzIGRlc2NyaWJlcyB0aGUgbWluaW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgcmVxdWlyZWQuXG5JZiBSZXF1ZXN0cyBpcyBvbWl0dGVkIGZvciBhIGNvbnRhaW5lciwgaXQgZGVmYXVsdHMgdG8gTGltaXRzIGlmIHRoYXQgaXMgZXhwbGljaXRseSBzcGVjaWZpZWQsXG5vdGhlcndpc2UgdG8gYW4gaW1wbGVtZW50YXRpb24tZGVmaW5lZCB2YWx1ZS4gUmVxdWVzdHMgY2Fubm90IGV4Y2VlZCBMaW1pdHMuXG5Nb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL2NvbmZpZ3VyYXRpb24vbWFuYWdlLXJlc291cmNlcy1jb250YWluZXJzLyIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwidGFpbnRUb2xlcmF0aW9uIjp7ImRlZmF1bHQiOiJUb2xlcmF0ZVRhaW50cyIsImRlc2NyaXB0aW9uIjoiVG8gZW5zdXJlIGNvbXByZWhlbnNpdmUgbW9uaXRvcmluZyBvZiB5b3VyIGNsdXN0ZXIgYWN0aXZpdHksIFJlZCBIYXQgQWR2YW5jZWQgQ2x1c3RlciBTZWN1cml0eVxud2lsbCBydW4gc2VydmljZXMgb24gZXZlcnkgbm9kZSBpbiB0aGUgY2x1c3RlciwgaW5jbHVkaW5nIHRhaW50ZWQgbm9kZXMgYnkgZGVmYXVsdC4gSWYgeW91IGRvXG5ub3Qgd2FudCB0aGlzIGJlaGF2aW9yLCBwbGVhc2Ugc2VsZWN0ICdBdm9pZFRhaW50cycgaGVyZS4iLCJlbnVtIjpbIlRvbGVyYXRlVGFpbnRzIiwiQXZvaWRUYWludHMiXSwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJyZWdpc3RyeU92ZXJyaWRlIjp7ImRlc2NyaXB0aW9uIjoiU2V0IHRoaXMgcGFyYW1ldGVyIHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0IHJlZ2lzdHJ5IGluIGltYWdlcy4gRm9yIGV4YW1wbGUsIG5naW54OmxhdGVzdCAtXHUwMDNlIFx1MDAzY3JlZ2lzdHJ5IG92ZXJyaWRlXHUwMDNlL2xpYnJhcnkvbmdpbng6bGF0ZXN0IiwidHlwZSI6InN0cmluZyJ9LCJzY2FubmVyIjp7ImRlc2NyaXB0aW9uIjoiU2V0dGluZ3MgZm9yIHRoZSBTY2FubmVyIGNvbXBvbmVudCwgd2hpY2ggaXMgcmVzcG9uc2libGUgZm9yIHZ1bG5lcmFiaWxpdHkgc2Nhbm5pbmcgb2YgY29udGFpbmVyXG5pbWFnZXMgc3RvcmVkIGluIGEgY2x1c3Rlci1sb2NhbCBpbWFnZSByZXBvc2l0b3J5LiIsInByb3BlcnRpZXMiOnsiYW5hbHl6ZXIiOnsiZGVzY3JpcHRpb24iOiJTZXR0aW5ncyBwZXJ0YWluaW5nIHRvIHRoZSBhbmFseXplciBkZXBsb3ltZW50LCBzdWNoIGFzIGZvciBhdXRvc2NhbGluZy4iLCJwcm9wZXJ0aWVzIjp7Imhvc3RBbGlhc2VzIjp7ImRlc2NyaXB0aW9uIjoiSG9zdEFsaWFzZXMgYWxsb3dzIGNvbmZpZ3VyaW5nIGFkZGl0aW9uYWwgaG9zdG5hbWVzIHRvIHJlc29sdmUgaW4gdGhlIHBvZCdzIGhvc3RzIGZpbGUuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJIb3N0QWxpYXMgaG9sZHMgdGhlIG1hcHBpbmcgYmV0d2VlbiBJUCBhbmQgaG9zdG5hbWVzIHRoYXQgd2lsbCBiZSBpbmplY3RlZCBhcyBhbiBlbnRyeSBpbiB0aGVcbnBvZCdzIGhvc3RzIGZpbGUuIiwicHJvcGVydGllcyI6eyJob3N0bmFtZXMiOnsiZGVzY3JpcHRpb24iOiJIb3N0bmFtZXMgZm9yIHRoZSBhYm92ZSBJUCBhZGRyZXNzLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5IiwieC1rdWJlcm5ldGVzLWxpc3QtdHlwZSI6ImF0b21pYyJ9LCJpcCI6eyJkZXNjcmlwdGlvbiI6IklQIGFkZHJlc3Mgb2YgdGhlIGhvc3QgZmlsZSBlbnRyeS4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJpcCJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJub2RlU2VsZWN0b3IiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6IklmIHlvdSB3YW50IHRoaXMgY29tcG9uZW50IHRvIG9ubHkgcnVuIG9uIHNwZWNpZmljIG5vZGVzLCB5b3UgY2FuIGNvbmZpZ3VyZSBhIG5vZGUgc2VsZWN0b3IgaGVyZS4iLCJ0eXBlIjoib2JqZWN0In0sInJlc291cmNlcyI6eyJkZXNjcmlwdGlvbiI6IkFsbG93cyBvdmVycmlkaW5nIHRoZSBkZWZhdWx0IHJlc291cmNlIHNldHRpbmdzIGZvciB0aGlzIGNvbXBvbmVudC4gUGxlYXNlIGNvbnN1bHQgdGhlIGRvY3VtZW50YXRpb25cbmZvciBhbiBvdmVydmlldyBvZiBkZWZhdWx0IHJlc291cmNlIHJlcXVpcmVtZW50cyBhbmQgYSBzaXppbmcgZ3VpZGUuIiwicHJvcGVydGllcyI6eyJjbGFpbXMiOnsiZGVzY3JpcHRpb24iOiJDbGFpbXMgbGlzdHMgdGhlIG5hbWVzIG9mIHJlc291cmNlcywgZGVmaW5lZCBpbiBzcGVjLnJlc291cmNlQ2xhaW1zLFxudGhhdCBhcmUgdXNlZCBieSB0aGlzIGNvbnRhaW5lci5cblxuVGhpcyBmaWVsZCBkZXBlbmRzIG9uIHRoZVxuRHluYW1pY1Jlc291cmNlQWxsb2NhdGlvbiBmZWF0dXJlIGdhdGUuXG5cblRoaXMgZmllbGQgaXMgaW1tdXRhYmxlLiBJdCBjYW4gb25seSBiZSBzZXQgZm9yIGNvbnRhaW5lcnMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJSZXNvdXJjZUNsYWltIHJlZmVyZW5jZXMgb25lIGVudHJ5IGluIFBvZFNwZWMuUmVzb3VyY2VDbGFpbXMuIiwicHJvcGVydGllcyI6eyJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBtdXN0IG1hdGNoIHRoZSBuYW1lIG9mIG9uZSBlbnRyeSBpbiBwb2Quc3BlYy5yZXNvdXJjZUNsYWltcyBvZlxudGhlIFBvZCB3aGVyZSB0aGlzIGZpZWxkIGlzIHVzZWQuIEl0IG1ha2VzIHRoYXQgcmVzb3VyY2UgYXZhaWxhYmxlXG5pbnNpZGUgYSBjb250YWluZXIuIiwidHlwZSI6InN0cmluZyJ9LCJyZXF1ZXN0Ijp7ImRlc2NyaXB0aW9uIjoiUmVxdWVzdCBpcyB0aGUgbmFtZSBjaG9zZW4gZm9yIGEgcmVxdWVzdCBpbiB0aGUgcmVmZXJlbmNlZCBjbGFpbS5cbklmIGVtcHR5LCBldmVyeXRoaW5nIGZyb20gdGhlIGNsYWltIGlzIG1hZGUgYXZhaWxhYmxlLCBvdGhlcndpc2Vcbm9ubHkgdGhlIHJlc3VsdCBvZiB0aGlzIHJlcXVlc3QuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsibmFtZSJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSIsIngta3ViZXJuZXRlcy1saXN0LW1hcC1rZXlzIjpbIm5hbWUiXSwieC1rdWJlcm5ldGVzLWxpc3QtdHlwZSI6Im1hcCJ9LCJsaW1pdHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsiYW55T2YiOlt7InR5cGUiOiJpbnRlZ2VyIn0seyJ0eXBlIjoic3RyaW5nIn1dLCJwYXR0ZXJuIjoiXihcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSgoW0tNR1RQRV1pKXxbbnVta01HVFBFXXwoW2VFXShcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSkpPyQiLCJ4LWt1YmVybmV0ZXMtaW50LW9yLXN0cmluZyI6dHJ1ZX0sImRlc2NyaXB0aW9uIjoiTGltaXRzIGRlc2NyaWJlcyB0aGUgbWF4aW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgYWxsb3dlZC5cbk1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtcmVzb3VyY2VzLWNvbnRhaW5lcnMvIiwidHlwZSI6Im9iamVjdCJ9LCJyZXF1ZXN0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJSZXF1ZXN0cyBkZXNjcmliZXMgdGhlIG1pbmltdW0gYW1vdW50IG9mIGNvbXB1dGUgcmVzb3VyY2VzIHJlcXVpcmVkLlxuSWYgUmVxdWVzdHMgaXMgb21pdHRlZCBmb3IgYSBjb250YWluZXIsIGl0IGRlZmF1bHRzIHRvIExpbWl0cyBpZiB0aGF0IGlzIGV4cGxpY2l0bHkgc3BlY2lmaWVkLFxub3RoZXJ3aXNlIHRvIGFuIGltcGxlbWVudGF0aW9uLWRlZmluZWQgdmFsdWUuIFJlcXVlc3RzIGNhbm5vdCBleGNlZWQgTGltaXRzLlxuTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9jb25maWd1cmF0aW9uL21hbmFnZS1yZXNvdXJjZXMtY29udGFpbmVycy8iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInNjYWxpbmciOnsiZGVzY3JpcHRpb24iOiJDb250cm9scyB0aGUgbnVtYmVyIG9mIGFuYWx5emVyIHJlcGxpY2FzIGFuZCBhdXRvc2NhbGluZy4iLCJwcm9wZXJ0aWVzIjp7ImF1dG9TY2FsaW5nIjp7ImRlZmF1bHQiOiJFbmFibGVkIiwiZGVzY3JpcHRpb24iOiJXaGVuIGVuYWJsZWQsIHRoZSBudW1iZXIgb2YgY29tcG9uZW50IHJlcGxpY2FzIGlzIG1hbmFnZWQgZHluYW1pY2FsbHkgYmFzZWQgb24gdGhlIGxvYWQsIHdpdGhpbiB0aGUgbGltaXRzXG5zcGVjaWZpZWQgYmVsb3cuIiwiZW51bSI6WyJFbmFibGVkIiwiRGlzYWJsZWQiXSwidHlwZSI6InN0cmluZyJ9LCJtYXhSZXBsaWNhcyI6eyJkZWZhdWx0Ijo1LCJmb3JtYXQiOiJpbnQzMiIsIm1pbmltdW0iOjEsInR5cGUiOiJpbnRlZ2VyIn0sIm1pblJlcGxpY2FzIjp7ImRlZmF1bHQiOjIsImZvcm1hdCI6ImludDMyIiwibWluaW11bSI6MSwidHlwZSI6ImludGVnZXIifSwicmVwbGljYXMiOnsiZGVmYXVsdCI6MywiZGVzY3JpcHRpb24iOiJXaGVuIGF1dG9zY2FsaW5nIGlzIGRpc2FibGVkLCB0aGUgbnVtYmVyIG9mIHJlcGxpY2FzIHdpbGwgYWx3YXlzIGJlIGNvbmZpZ3VyZWQgdG8gbWF0Y2ggdGhpcyB2YWx1ZS4iLCJmb3JtYXQiOiJpbnQzMiIsIm1pbmltdW0iOjEsInR5cGUiOiJpbnRlZ2VyIn19LCJ0eXBlIjoib2JqZWN0In0sInRvbGVyYXRpb25zIjp7ImRlc2NyaXB0aW9uIjoiSWYgeW91IHdhbnQgdGhpcyBjb21wb25lbnQgdG8gb25seSBydW4gb24gc3BlY2lmaWMgbm9kZXMsIHlvdSBjYW4gY29uZmlndXJlIHRvbGVyYXRpb25zIG9mIHRhaW50ZWQgbm9kZXMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJUaGUgcG9kIHRoaXMgVG9sZXJhdGlvbiBpcyBhdHRhY2hlZCB0byB0b2xlcmF0ZXMgYW55IHRhaW50IHRoYXQgbWF0Y2hlc1xudGhlIHRyaXBsZSBcdTAwM2NrZXksdmFsdWUsZWZmZWN0XHUwMDNlIHVzaW5nIHRoZSBtYXRjaGluZyBvcGVyYXRvciBcdTAwM2NvcGVyYXRvclx1MDAzZS4iLCJwcm9wZXJ0aWVzIjp7ImVmZmVjdCI6eyJkZXNjcmlwdGlvbiI6IkVmZmVjdCBpbmRpY2F0ZXMgdGhlIHRhaW50IGVmZmVjdCB0byBtYXRjaC4gRW1wdHkgbWVhbnMgbWF0Y2ggYWxsIHRhaW50IGVmZmVjdHMuXG5XaGVuIHNwZWNpZmllZCwgYWxsb3dlZCB2YWx1ZXMgYXJlIE5vU2NoZWR1bGUsIFByZWZlck5vU2NoZWR1bGUgYW5kIE5vRXhlY3V0ZS4iLCJ0eXBlIjoic3RyaW5nIn0sImtleSI6eyJkZXNjcmlwdGlvbiI6IktleSBpcyB0aGUgdGFpbnQga2V5IHRoYXQgdGhlIHRvbGVyYXRpb24gYXBwbGllcyB0by4gRW1wdHkgbWVhbnMgbWF0Y2ggYWxsIHRhaW50IGtleXMuXG5JZiB0aGUga2V5IGlzIGVtcHR5LCBvcGVyYXRvciBtdXN0IGJlIEV4aXN0czsgdGhpcyBjb21iaW5hdGlvbiBtZWFucyB0byBtYXRjaCBhbGwgdmFsdWVzIGFuZCBhbGwga2V5cy4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoiT3BlcmF0b3IgcmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byB0aGUgdmFsdWUuXG5WYWxpZCBvcGVyYXRvcnMgYXJlIEV4aXN0cyBhbmQgRXF1YWwuIERlZmF1bHRzIHRvIEVxdWFsLlxuRXhpc3RzIGlzIGVxdWl2YWxlbnQgdG8gd2lsZGNhcmQgZm9yIHZhbHVlLCBzbyB0aGF0IGEgcG9kIGNhblxudG9sZXJhdGUgYWxsIHRhaW50cyBvZiBhIHBhcnRpY3VsYXIgY2F0ZWdvcnkuIiwidHlwZSI6InN0cmluZyJ9LCJ0b2xlcmF0aW9uU2Vjb25kcyI6eyJkZXNjcmlwdGlvbiI6IlRvbGVyYXRpb25TZWNvbmRzIHJlcHJlc2VudHMgdGhlIHBlcmlvZCBvZiB0aW1lIHRoZSB0b2xlcmF0aW9uICh3aGljaCBtdXN0IGJlXG5vZiBlZmZlY3QgTm9FeGVjdXRlLCBvdGhlcndpc2UgdGhpcyBmaWVsZCBpcyBpZ25vcmVkKSB0b2xlcmF0ZXMgdGhlIHRhaW50LiBCeSBkZWZhdWx0LFxuaXQgaXMgbm90IHNldCwgd2hpY2ggbWVhbnMgdG9sZXJhdGUgdGhlIHRhaW50IGZvcmV2ZXIgKGRvIG5vdCBldmljdCkuIFplcm8gYW5kXG5uZWdhdGl2ZSB2YWx1ZXMgd2lsbCBiZSB0cmVhdGVkIGFzIDAgKGV2aWN0IGltbWVkaWF0ZWx5KSBieSB0aGUgc3lzdGVtLiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwidmFsdWUiOnsiZGVzY3JpcHRpb24iOiJWYWx1ZSBpcyB0aGUgdGFpbnQgdmFsdWUgdGhlIHRvbGVyYXRpb24gbWF0Y2hlcyB0by5cbklmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMsIHRoZSB2YWx1ZSBzaG91bGQgYmUgZW1wdHksIG90aGVyd2lzZSBqdXN0IGEgcmVndWxhciBzdHJpbmcuIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifX0sInR5cGUiOiJvYmplY3QifSwiZGIiOnsiZGVzY3JpcHRpb24iOiJTZXR0aW5ncyBwZXJ0YWluaW5nIHRvIHRoZSBkYXRhYmFzZSB1c2VkIGJ5IHRoZSBSZWQgSGF0IEFkdmFuY2VkIENsdXN0ZXIgU2VjdXJpdHkgU2Nhbm5lci4iLCJwcm9wZXJ0aWVzIjp7Imhvc3RBbGlhc2VzIjp7ImRlc2NyaXB0aW9uIjoiSG9zdEFsaWFzZXMgYWxsb3dzIGNvbmZpZ3VyaW5nIGFkZGl0aW9uYWwgaG9zdG5hbWVzIHRvIHJlc29sdmUgaW4gdGhlIHBvZCdzIGhvc3RzIGZpbGUuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJIb3N0QWxpYXMgaG9sZHMgdGhlIG1hcHBpbmcgYmV0d2VlbiBJUCBhbmQgaG9zdG5hbWVzIHRoYXQgd2lsbCBiZSBpbmplY3RlZCBhcyBhbiBlbnRyeSBpbiB0aGVcbnBvZCdzIGhvc3RzIGZpbGUuIiwicHJvcGVydGllcyI6eyJob3N0bmFtZXMiOnsiZGVzY3JpcHRpb24iOiJIb3N0bmFtZXMgZm9yIHRoZSBhYm92ZSBJUCBhZGRyZXNzLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5IiwieC1rdWJlcm5ldGVzLWxpc3QtdHlwZSI6ImF0b21pYyJ9LCJpcCI6eyJkZXNjcmlwdGlvbiI6IklQIGFkZHJlc3Mgb2YgdGhlIGhvc3QgZmlsZSBlbnRyeS4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJpcCJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJub2RlU2VsZWN0b3IiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6IklmIHlvdSB3YW50IHRoaXMgY29tcG9uZW50IHRvIG9ubHkgcnVuIG9uIHNwZWNpZmljIG5vZGVzLCB5b3UgY2FuIGNvbmZpZ3VyZSBhIG5vZGUgc2VsZWN0b3IgaGVyZS4iLCJ0eXBlIjoib2JqZWN0In0sInJlc291cmNlcyI6eyJkZXNjcmlwdGlvbiI6IkFsbG93cyBvdmVycmlkaW5nIHRoZSBkZWZhdWx0IHJlc291cmNlIHNldHRpbmdzIGZvciB0aGlzIGNvbXBvbmVudC4gUGxlYXNlIGNvbnN1bHQgdGhlIGRvY3VtZW50YXRpb25cbmZvciBhbiBvdmVydmlldyBvZiBkZWZhdWx0IHJlc291cmNlIHJlcXVpcmVtZW50cyBhbmQgYSBzaXppbmcgZ3VpZGUuIiwicHJvcGVydGllcyI6eyJjbGFpbXMiOnsiZGVzY3JpcHRpb24iOiJDbGFpbXMgbGlzdHMgdGhlIG5hbWVzIG9mIHJlc291cmNlcywgZGVmaW5lZCBpbiBzcGVjLnJlc291cmNlQ2xhaW1zLFxudGhhdCBhcmUgdXNlZCBieSB0aGlzIGNvbnRhaW5lci5cblxuVGhpcyBmaWVsZCBkZXBlbmRzIG9uIHRoZVxuRHluYW1pY1Jlc291cmNlQWxsb2NhdGlvbiBmZWF0dXJlIGdhdGUuXG5cblRoaXMgZmllbGQgaXMgaW1tdXRhYmxlLiBJdCBjYW4gb25seSBiZSBzZXQgZm9yIGNvbnRhaW5lcnMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJSZXNvdXJjZUNsYWltIHJlZmVyZW5jZXMgb25lIGVudHJ5IGluIFBvZFNwZWMuUmVzb3VyY2VDbGFpbXMuIiwicHJvcGVydGllcyI6eyJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBtdXN0IG1hdGNoIHRoZSBuYW1lIG9mIG9uZSBlbnRyeSBpbiBwb2Quc3BlYy5yZXNvdXJjZUNsYWltcyBvZlxudGhlIFBvZCB3aGVyZSB0aGlzIGZpZWxkIGlzIHVzZWQuIEl0IG1ha2VzIHRoYXQgcmVzb3VyY2UgYXZhaWxhYmxlXG5pbnNpZGUgYSBjb250YWluZXIuIiwidHlwZSI6InN0cmluZyJ9LCJyZXF1ZXN0Ijp7ImRlc2NyaXB0aW9uIjoiUmVxdWVzdCBpcyB0aGUgbmFtZSBjaG9zZW4gZm9yIGEgcmVxdWVzdCBpbiB0aGUgcmVmZXJlbmNlZCBjbGFpbS5cbklmIGVtcHR5LCBldmVyeXRoaW5nIGZyb20gdGhlIGNsYWltIGlzIG1hZGUgYXZhaWxhYmxlLCBvdGhlcndpc2Vcbm9ubHkgdGhlIHJlc3VsdCBvZiB0aGlzIHJlcXVlc3QuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsibmFtZSJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSIsIngta3ViZXJuZXRlcy1saXN0LW1hcC1rZXlzIjpbIm5hbWUiXSwieC1rdWJlcm5ldGVzLWxpc3QtdHlwZSI6Im1hcCJ9LCJsaW1pdHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsiYW55T2YiOlt7InR5cGUiOiJpbnRlZ2VyIn0seyJ0eXBlIjoic3RyaW5nIn1dLCJwYXR0ZXJuIjoiXihcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSgoW0tNR1RQRV1pKXxbbnVta01HVFBFXXwoW2VFXShcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSkpPyQiLCJ4LWt1YmVybmV0ZXMtaW50LW9yLXN0cmluZyI6dHJ1ZX0sImRlc2NyaXB0aW9uIjoiTGltaXRzIGRlc2NyaWJlcyB0aGUgbWF4aW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgYWxsb3dlZC5cbk1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtcmVzb3VyY2VzLWNvbnRhaW5lcnMvIiwidHlwZSI6Im9iamVjdCJ9LCJyZXF1ZXN0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJSZXF1ZXN0cyBkZXNjcmliZXMgdGhlIG1pbmltdW0gYW1vdW50IG9mIGNvbXB1dGUgcmVzb3VyY2VzIHJlcXVpcmVkLlxuSWYgUmVxdWVzdHMgaXMgb21pdHRlZCBmb3IgYSBjb250YWluZXIsIGl0IGRlZmF1bHRzIHRvIExpbWl0cyBpZiB0aGF0IGlzIGV4cGxpY2l0bHkgc3BlY2lmaWVkLFxub3RoZXJ3aXNlIHRvIGFuIGltcGxlbWVudGF0aW9uLWRlZmluZWQgdmFsdWUuIFJlcXVlc3RzIGNhbm5vdCBleGNlZWQgTGltaXRzLlxuTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9jb25maWd1cmF0aW9uL21hbmFnZS1yZXNvdXJjZXMtY29udGFpbmVycy8iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInRvbGVyYXRpb25zIjp7ImRlc2NyaXB0aW9uIjoiSWYgeW91IHdhbnQgdGhpcyBjb21wb25lbnQgdG8gb25seSBydW4gb24gc3BlY2lmaWMgbm9kZXMsIHlvdSBjYW4gY29uZmlndXJlIHRvbGVyYXRpb25zIG9mIHRhaW50ZWQgbm9kZXMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJUaGUgcG9kIHRoaXMgVG9sZXJhdGlvbiBpcyBhdHRhY2hlZCB0byB0b2xlcmF0ZXMgYW55IHRhaW50IHRoYXQgbWF0Y2hlc1xudGhlIHRyaXBsZSBcdTAwM2NrZXksdmFsdWUsZWZmZWN0XHUwMDNlIHVzaW5nIHRoZSBtYXRjaGluZyBvcGVyYXRvciBcdTAwM2NvcGVyYXRvclx1MDAzZS4iLCJwcm9wZXJ0aWVzIjp7ImVmZmVjdCI6eyJkZXNjcmlwdGlvbiI6IkVmZmVjdCBpbmRpY2F0ZXMgdGhlIHRhaW50IGVmZmVjdCB0byBtYXRjaC4gRW1wdHkgbWVhbnMgbWF0Y2ggYWxsIHRhaW50IGVmZmVjdHMuXG5XaGVuIHNwZWNpZmllZCwgYWxsb3dlZCB2YWx1ZXMgYXJlIE5vU2NoZWR1bGUsIFByZWZlck5vU2NoZWR1bGUgYW5kIE5vRXhlY3V0ZS4iLCJ0eXBlIjoic3RyaW5nIn0sImtleSI6eyJkZXNjcmlwdGlvbiI6IktleSBpcyB0aGUgdGFpbnQga2V5IHRoYXQgdGhlIHRvbGVyYXRpb24gYXBwbGllcyB0by4gRW1wdHkgbWVhbnMgbWF0Y2ggYWxsIHRhaW50IGtleXMuXG5JZiB0aGUga2V5IGlzIGVtcHR5LCBvcGVyYXRvciBtdXN0IGJlIEV4aXN0czsgdGhpcyBjb21iaW5hdGlvbiBtZWFucyB0byBtYXRjaCBhbGwgdmFsdWVzIGFuZCBhbGwga2V5cy4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoiT3BlcmF0b3IgcmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byB0aGUgdmFsdWUuXG5WYWxpZCBvcGVyYXRvcnMgYXJlIEV4aXN0cyBhbmQgRXF1YWwuIERlZmF1bHRzIHRvIEVxdWFsLlxuRXhpc3RzIGlzIGVxdWl2YWxlbnQgdG8gd2lsZGNhcmQgZm9yIHZhbHVlLCBzbyB0aGF0IGEgcG9kIGNhblxudG9sZXJhdGUgYWxsIHRhaW50cyBvZiBhIHBhcnRpY3VsYXIgY2F0ZWdvcnkuIiwidHlwZSI6InN0cmluZyJ9LCJ0b2xlcmF0aW9uU2Vjb25kcyI6eyJkZXNjcmlwdGlvbiI6IlRvbGVyYXRpb25TZWNvbmRzIHJlcHJlc2VudHMgdGhlIHBlcmlvZCBvZiB0aW1lIHRoZSB0b2xlcmF0aW9uICh3aGljaCBtdXN0IGJlXG5vZiBlZmZlY3QgTm9FeGVjdXRlLCBvdGhlcndpc2UgdGhpcyBmaWVsZCBpcyBpZ25vcmVkKSB0b2xlcmF0ZXMgdGhlIHRhaW50LiBCeSBkZWZhdWx0LFxuaXQgaXMgbm90IHNldCwgd2hpY2ggbWVhbnMgdG9sZXJhdGUgdGhlIHRhaW50IGZvcmV2ZXIgKGRvIG5vdCBldmljdCkuIFplcm8gYW5kXG5uZWdhdGl2ZSB2YWx1ZXMgd2lsbCBiZSB0cmVhdGVkIGFzIDAgKGV2aWN0IGltbWVkaWF0ZWx5KSBieSB0aGUgc3lzdGVtLiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwidmFsdWUiOnsiZGVzY3JpcHRpb24iOiJWYWx1ZSBpcyB0aGUgdGFpbnQgdmFsdWUgdGhlIHRvbGVyYXRpb24gbWF0Y2hlcyB0by5cbklmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMsIHRoZSB2YWx1ZSBzaG91bGQgYmUgZW1wdHksIG90aGVyd2lzZSBqdXN0IGEgcmVndWxhciBzdHJpbmcuIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifX0sInR5cGUiOiJvYmplY3QifSwic2Nhbm5lckNvbXBvbmVudCI6eyJkZWZhdWx0IjoiQXV0b1NlbnNlIiwiZGVzY3JpcHRpb24iOiJJZiB5b3UgZG8gbm90IHdhbnQgdG8gZGVwbG95IHRoZSBSZWQgSGF0IEFkdmFuY2VkIENsdXN0ZXIgU2VjdXJpdHkgU2Nhbm5lciwgeW91IGNhbiBkaXNhYmxlIGl0IGhlcmVcbihub3QgcmVjb21tZW5kZWQpLlxuSWYgeW91IGRvIHNvLCBhbGwgdGhlIHNldHRpbmdzIGluIHRoaXMgc2VjdGlvbiB3aWxsIGhhdmUgbm8gZWZmZWN0LiIsImVudW0iOlsiQXV0b1NlbnNlIiwiRGlzYWJsZWQiXSwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJzY2FubmVyVjQiOnsiZGVzY3JpcHRpb24iOiJTZXR0aW5ncyBmb3IgdGhlIFNjYW5uZXIgVjQgY29tcG9uZW50cywgd2hpY2ggY2FuIHJ1biBpbiBhZGRpdGlvbiB0byB0aGUgcHJldmlvdXNseSBleGlzdGluZyBTY2FubmVyIGNvbXBvbmVudHMiLCJwcm9wZXJ0aWVzIjp7ImRiIjp7ImRlc2NyaXB0aW9uIjoiU2V0dGluZ3MgcGVydGFpbmluZyB0byB0aGUgREIgZGVwbG95bWVudC4iLCJwcm9wZXJ0aWVzIjp7Imhvc3RBbGlhc2VzIjp7ImRlc2NyaXB0aW9uIjoiSG9zdEFsaWFzZXMgYWxsb3dzIGNvbmZpZ3VyaW5nIGFkZGl0aW9uYWwgaG9zdG5hbWVzIHRvIHJlc29sdmUgaW4gdGhlIHBvZCdzIGhvc3RzIGZpbGUuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJIb3N0QWxpYXMgaG9sZHMgdGhlIG1hcHBpbmcgYmV0d2VlbiBJUCBhbmQgaG9zdG5hbWVzIHRoYXQgd2lsbCBiZSBpbmplY3RlZCBhcyBhbiBlbnRyeSBpbiB0aGVcbnBvZCdzIGhvc3RzIGZpbGUuIiwicHJvcGVydGllcyI6eyJob3N0bmFtZXMiOnsiZGVzY3JpcHRpb24iOiJIb3N0bmFtZXMgZm9yIHRoZSBhYm92ZSBJUCBhZGRyZXNzLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5IiwieC1rdWJlcm5ldGVzLWxpc3QtdHlwZSI6ImF0b21pYyJ9LCJpcCI6eyJkZXNjcmlwdGlvbiI6IklQIGFkZHJlc3Mgb2YgdGhlIGhvc3QgZmlsZSBlbnRyeS4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJpcCJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJub2RlU2VsZWN0b3IiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6IklmIHlvdSB3YW50IHRoaXMgY29tcG9uZW50IHRvIG9ubHkgcnVuIG9uIHNwZWNpZmljIG5vZGVzLCB5b3UgY2FuIGNvbmZpZ3VyZSBhIG5vZGUgc2VsZWN0b3IgaGVyZS4iLCJ0eXBlIjoib2JqZWN0In0sInBlcnNpc3RlbmNlIjp7ImRlc2NyaXB0aW9uIjoiQ29uZmlndXJlcyBob3cgU2Nhbm5lciBWNCBzaG91bGQgc3RvcmUgaXRzIHBlcnNpc3RlbnQgZGF0YS5cbllvdSBjYW4gdXNlIGEgcGVyc2lzdGVudCB2b2x1bWUgY2xhaW0gKHRoZSByZWNvbW1lbmRlZCBkZWZhdWx0KSwgYSBob3N0IHBhdGgsXG5vciBhbiBlbXB0eURpciB2b2x1bWUgaWYgU2Nhbm5lciBWNCBpcyBydW5uaW5nIG9uIGEgc2VjdXJlZCBjbHVzdGVyIHdpdGhvdXQgZGVmYXVsdCBTdG9yYWdlQ2xhc3MuIiwicHJvcGVydGllcyI6eyJob3N0UGF0aCI6eyJkZXNjcmlwdGlvbiI6IlN0b3JlcyBwZXJzaXN0ZW50IGRhdGEgb24gYSBkaXJlY3Rvcnkgb24gdGhlIGhvc3QuIFRoaXMgaXMgbm90IHJlY29tbWVuZGVkLCBhbmQgc2hvdWxkIG9ubHlcbmJlIHVzZWQgdG9nZXRoZXIgd2l0aCBhIG5vZGUgc2VsZWN0b3IgKG9ubHkgYXZhaWxhYmxlIGluIFlBTUwgdmlldykuIiwicHJvcGVydGllcyI6eyJwYXRoIjp7ImRlc2NyaXB0aW9uIjoiVGhlIHBhdGggb24gdGhlIGhvc3QgcnVubmluZyBDZW50cmFsLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwicGVyc2lzdGVudFZvbHVtZUNsYWltIjp7ImRlc2NyaXB0aW9uIjoiVXNlcyBhIEt1YmVybmV0ZXMgcGVyc2lzdGVudCB2b2x1bWUgY2xhaW0gKFBWQykgdG8gbWFuYWdlIHRoZSBzdG9yYWdlIGxvY2F0aW9uIG9mIHBlcnNpc3RlbnQgZGF0YS5cblJlY29tbWVuZGVkIGZvciBtb3N0IHVzZXJzLiIsInByb3BlcnRpZXMiOnsiY2xhaW1OYW1lIjp7ImRlZmF1bHQiOiJzY2FubmVyLXY0LWRiIiwiZGVzY3JpcHRpb24iOiJUaGUgbmFtZSBvZiB0aGUgUFZDIHRvIG1hbmFnZSBwZXJzaXN0ZW50IGRhdGEuIElmIG5vIFBWQyB3aXRoIHRoZSBnaXZlbiBuYW1lIGV4aXN0cywgaXQgd2lsbCBiZVxuY3JlYXRlZC4gRGVmYXVsdHMgdG8gXCJzY2FubmVyLXY0LWRiXCIgaWYgbm90IHNldC4iLCJ0eXBlIjoic3RyaW5nIn0sInNpemUiOnsiZGVzY3JpcHRpb24iOiJUaGUgc2l6ZSBvZiB0aGUgcGVyc2lzdGVudCB2b2x1bWUgd2hlbiBjcmVhdGVkIHRocm91Z2ggdGhlIGNsYWltLiBJZiBhIGNsYWltIHdhcyBhdXRvbWF0aWNhbGx5IGNyZWF0ZWQsXG50aGlzIGNhbiBiZSB1c2VkIGFmdGVyIHRoZSBpbml0aWFsIGRlcGxveW1lbnQgdG8gcmVzaXplIChncm93KSB0aGUgdm9sdW1lIChvbmx5IHN1cHBvcnRlZCBieSBzb21lXG5zdG9yYWdlIGNsYXNzIGNvbnRyb2xsZXJzKS4iLCJwYXR0ZXJuIjoiXihcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSgoW0tNR1RQRV1pKXxbbnVta01HVFBFXXwoW2VFXShcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSkpPyQiLCJ0eXBlIjoic3RyaW5nIn0sInN0b3JhZ2VDbGFzc05hbWUiOnsiZGVzY3JpcHRpb24iOiJUaGUgbmFtZSBvZiB0aGUgc3RvcmFnZSBjbGFzcyB0byB1c2UgZm9yIHRoZSBQVkMuIElmIHlvdXIgY2x1c3RlciBpcyBub3QgY29uZmlndXJlZCB3aXRoIGEgZGVmYXVsdCBzdG9yYWdlXG5jbGFzcywgeW91IG11c3Qgc2VsZWN0IGEgdmFsdWUgaGVyZS4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInJlc291cmNlcyI6eyJkZXNjcmlwdGlvbiI6IkFsbG93cyBvdmVycmlkaW5nIHRoZSBkZWZhdWx0IHJlc291cmNlIHNldHRpbmdzIGZvciB0aGlzIGNvbXBvbmVudC4gUGxlYXNlIGNvbnN1bHQgdGhlIGRvY3VtZW50YXRpb25cbmZvciBhbiBvdmVydmlldyBvZiBkZWZhdWx0IHJlc291cmNlIHJlcXVpcmVtZW50cyBhbmQgYSBzaXppbmcgZ3VpZGUuIiwicHJvcGVydGllcyI6eyJjbGFpbXMiOnsiZGVzY3JpcHRpb24iOiJDbGFpbXMgbGlzdHMgdGhlIG5hbWVzIG9mIHJlc291cmNlcywgZGVmaW5lZCBpbiBzcGVjLnJlc291cmNlQ2xhaW1zLFxudGhhdCBhcmUgdXNlZCBieSB0aGlzIGNvbnRhaW5lci5cblxuVGhpcyBmaWVsZCBkZXBlbmRzIG9uIHRoZVxuRHluYW1pY1Jlc291cmNlQWxsb2NhdGlvbiBmZWF0dXJlIGdhdGUuXG5cblRoaXMgZmllbGQgaXMgaW1tdXRhYmxlLiBJdCBjYW4gb25seSBiZSBzZXQgZm9yIGNvbnRhaW5lcnMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJSZXNvdXJjZUNsYWltIHJlZmVyZW5jZXMgb25lIGVudHJ5IGluIFBvZFNwZWMuUmVzb3VyY2VDbGFpbXMuIiwicHJvcGVydGllcyI6eyJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBtdXN0IG1hdGNoIHRoZSBuYW1lIG9mIG9uZSBlbnRyeSBpbiBwb2Quc3BlYy5yZXNvdXJjZUNsYWltcyBvZlxudGhlIFBvZCB3aGVyZSB0aGlzIGZpZWxkIGlzIHVzZWQuIEl0IG1ha2VzIHRoYXQgcmVzb3VyY2UgYXZhaWxhYmxlXG5pbnNpZGUgYSBjb250YWluZXIuIiwidHlwZSI6InN0cmluZyJ9LCJyZXF1ZXN0Ijp7ImRlc2NyaXB0aW9uIjoiUmVxdWVzdCBpcyB0aGUgbmFtZSBjaG9zZW4gZm9yIGEgcmVxdWVzdCBpbiB0aGUgcmVmZXJlbmNlZCBjbGFpbS5cbklmIGVtcHR5LCBldmVyeXRoaW5nIGZyb20gdGhlIGNsYWltIGlzIG1hZGUgYXZhaWxhYmxlLCBvdGhlcndpc2Vcbm9ubHkgdGhlIHJlc3VsdCBvZiB0aGlzIHJlcXVlc3QuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsibmFtZSJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSIsIngta3ViZXJuZXRlcy1saXN0LW1hcC1rZXlzIjpbIm5hbWUiXSwieC1rdWJlcm5ldGVzLWxpc3QtdHlwZSI6Im1hcCJ9LCJsaW1pdHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsiYW55T2YiOlt7InR5cGUiOiJpbnRlZ2VyIn0seyJ0eXBlIjoic3RyaW5nIn1dLCJwYXR0ZXJuIjoiXihcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSgoW0tNR1RQRV1pKXxbbnVta01HVFBFXXwoW2VFXShcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSkpPyQiLCJ4LWt1YmVybmV0ZXMtaW50LW9yLXN0cmluZyI6dHJ1ZX0sImRlc2NyaXB0aW9uIjoiTGltaXRzIGRlc2NyaWJlcyB0aGUgbWF4aW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgYWxsb3dlZC5cbk1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtcmVzb3VyY2VzLWNvbnRhaW5lcnMvIiwidHlwZSI6Im9iamVjdCJ9LCJyZXF1ZXN0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJSZXF1ZXN0cyBkZXNjcmliZXMgdGhlIG1pbmltdW0gYW1vdW50IG9mIGNvbXB1dGUgcmVzb3VyY2VzIHJlcXVpcmVkLlxuSWYgUmVxdWVzdHMgaXMgb21pdHRlZCBmb3IgYSBjb250YWluZXIsIGl0IGRlZmF1bHRzIHRvIExpbWl0cyBpZiB0aGF0IGlzIGV4cGxpY2l0bHkgc3BlY2lmaWVkLFxub3RoZXJ3aXNlIHRvIGFuIGltcGxlbWVudGF0aW9uLWRlZmluZWQgdmFsdWUuIFJlcXVlc3RzIGNhbm5vdCBleGNlZWQgTGltaXRzLlxuTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9jb25maWd1cmF0aW9uL21hbmFnZS1yZXNvdXJjZXMtY29udGFpbmVycy8iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInRvbGVyYXRpb25zIjp7ImRlc2NyaXB0aW9uIjoiSWYgeW91IHdhbnQgdGhpcyBjb21wb25lbnQgdG8gb25seSBydW4gb24gc3BlY2lmaWMgbm9kZXMsIHlvdSBjYW4gY29uZmlndXJlIHRvbGVyYXRpb25zIG9mIHRhaW50ZWQgbm9kZXMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJUaGUgcG9kIHRoaXMgVG9sZXJhdGlvbiBpcyBhdHRhY2hlZCB0byB0b2xlcmF0ZXMgYW55IHRhaW50IHRoYXQgbWF0Y2hlc1xudGhlIHRyaXBsZSBcdTAwM2NrZXksdmFsdWUsZWZmZWN0XHUwMDNlIHVzaW5nIHRoZSBtYXRjaGluZyBvcGVyYXRvciBcdTAwM2NvcGVyYXRvclx1MDAzZS4iLCJwcm9wZXJ0aWVzIjp7ImVmZmVjdCI6eyJkZXNjcmlwdGlvbiI6IkVmZmVjdCBpbmRpY2F0ZXMgdGhlIHRhaW50IGVmZmVjdCB0byBtYXRjaC4gRW1wdHkgbWVhbnMgbWF0Y2ggYWxsIHRhaW50IGVmZmVjdHMuXG5XaGVuIHNwZWNpZmllZCwgYWxsb3dlZCB2YWx1ZXMgYXJlIE5vU2NoZWR1bGUsIFByZWZlck5vU2NoZWR1bGUgYW5kIE5vRXhlY3V0ZS4iLCJ0eXBlIjoic3RyaW5nIn0sImtleSI6eyJkZXNjcmlwdGlvbiI6IktleSBpcyB0aGUgdGFpbnQga2V5IHRoYXQgdGhlIHRvbGVyYXRpb24gYXBwbGllcyB0by4gRW1wdHkgbWVhbnMgbWF0Y2ggYWxsIHRhaW50IGtleXMuXG5JZiB0aGUga2V5IGlzIGVtcHR5LCBvcGVyYXRvciBtdXN0IGJlIEV4aXN0czsgdGhpcyBjb21iaW5hdGlvbiBtZWFucyB0byBtYXRjaCBhbGwgdmFsdWVzIGFuZCBhbGwga2V5cy4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoiT3BlcmF0b3IgcmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byB0aGUgdmFsdWUuXG5WYWxpZCBvcGVyYXRvcnMgYXJlIEV4aXN0cyBhbmQgRXF1YWwuIERlZmF1bHRzIHRvIEVxdWFsLlxuRXhpc3RzIGlzIGVxdWl2YWxlbnQgdG8gd2lsZGNhcmQgZm9yIHZhbHVlLCBzbyB0aGF0IGEgcG9kIGNhblxudG9sZXJhdGUgYWxsIHRhaW50cyBvZiBhIHBhcnRpY3VsYXIgY2F0ZWdvcnkuIiwidHlwZSI6InN0cmluZyJ9LCJ0b2xlcmF0aW9uU2Vjb25kcyI6eyJkZXNjcmlwdGlvbiI6IlRvbGVyYXRpb25TZWNvbmRzIHJlcHJlc2VudHMgdGhlIHBlcmlvZCBvZiB0aW1lIHRoZSB0b2xlcmF0aW9uICh3aGljaCBtdXN0IGJlXG5vZiBlZmZlY3QgTm9FeGVjdXRlLCBvdGhlcndpc2UgdGhpcyBmaWVsZCBpcyBpZ25vcmVkKSB0b2xlcmF0ZXMgdGhlIHRhaW50LiBCeSBkZWZhdWx0LFxuaXQgaXMgbm90IHNldCwgd2hpY2ggbWVhbnMgdG9sZXJhdGUgdGhlIHRhaW50IGZvcmV2ZXIgKGRvIG5vdCBldmljdCkuIFplcm8gYW5kXG5uZWdhdGl2ZSB2YWx1ZXMgd2lsbCBiZSB0cmVhdGVkIGFzIDAgKGV2aWN0IGltbWVkaWF0ZWx5KSBieSB0aGUgc3lzdGVtLiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwidmFsdWUiOnsiZGVzY3JpcHRpb24iOiJWYWx1ZSBpcyB0aGUgdGFpbnQgdmFsdWUgdGhlIHRvbGVyYXRpb24gbWF0Y2hlcyB0by5cbklmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMsIHRoZSB2YWx1ZSBzaG91bGQgYmUgZW1wdHksIG90aGVyd2lzZSBqdXN0IGEgcmVndWxhciBzdHJpbmcuIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifX0sInR5cGUiOiJvYmplY3QifSwiaW5kZXhlciI6eyJkZXNjcmlwdGlvbiI6IlNldHRpbmdzIHBlcnRhaW5pbmcgdG8gdGhlIGluZGV4ZXIgZGVwbG95bWVudC4iLCJwcm9wZXJ0aWVzIjp7Imhvc3RBbGlhc2VzIjp7ImRlc2NyaXB0aW9uIjoiSG9zdEFsaWFzZXMgYWxsb3dzIGNvbmZpZ3VyaW5nIGFkZGl0aW9uYWwgaG9zdG5hbWVzIHRvIHJlc29sdmUgaW4gdGhlIHBvZCdzIGhvc3RzIGZpbGUuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJIb3N0QWxpYXMgaG9sZHMgdGhlIG1hcHBpbmcgYmV0d2VlbiBJUCBhbmQgaG9zdG5hbWVzIHRoYXQgd2lsbCBiZSBpbmplY3RlZCBhcyBhbiBlbnRyeSBpbiB0aGVcbnBvZCdzIGhvc3RzIGZpbGUuIiwicHJvcGVydGllcyI6eyJob3N0bmFtZXMiOnsiZGVzY3JpcHRpb24iOiJIb3N0bmFtZXMgZm9yIHRoZSBhYm92ZSBJUCBhZGRyZXNzLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5IiwieC1rdWJlcm5ldGVzLWxpc3QtdHlwZSI6ImF0b21pYyJ9LCJpcCI6eyJkZXNjcmlwdGlvbiI6IklQIGFkZHJlc3Mgb2YgdGhlIGhvc3QgZmlsZSBlbnRyeS4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJpcCJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJub2RlU2VsZWN0b3IiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6IklmIHlvdSB3YW50IHRoaXMgY29tcG9uZW50IHRvIG9ubHkgcnVuIG9uIHNwZWNpZmljIG5vZGVzLCB5b3UgY2FuIGNvbmZpZ3VyZSBhIG5vZGUgc2VsZWN0b3IgaGVyZS4iLCJ0eXBlIjoib2JqZWN0In0sInJlc291cmNlcyI6eyJkZXNjcmlwdGlvbiI6IkFsbG93cyBvdmVycmlkaW5nIHRoZSBkZWZhdWx0IHJlc291cmNlIHNldHRpbmdzIGZvciB0aGlzIGNvbXBvbmVudC4gUGxlYXNlIGNvbnN1bHQgdGhlIGRvY3VtZW50YXRpb25cbmZvciBhbiBvdmVydmlldyBvZiBkZWZhdWx0IHJlc291cmNlIHJlcXVpcmVtZW50cyBhbmQgYSBzaXppbmcgZ3VpZGUuIiwicHJvcGVydGllcyI6eyJjbGFpbXMiOnsiZGVzY3JpcHRpb24iOiJDbGFpbXMgbGlzdHMgdGhlIG5hbWVzIG9mIHJlc291cmNlcywgZGVmaW5lZCBpbiBzcGVjLnJlc291cmNlQ2xhaW1zLFxudGhhdCBhcmUgdXNlZCBieSB0aGlzIGNvbnRhaW5lci5cblxuVGhpcyBmaWVsZCBkZXBlbmRzIG9uIHRoZVxuRHluYW1pY1Jlc291cmNlQWxsb2NhdGlvbiBmZWF0dXJlIGdhdGUuXG5cblRoaXMgZmllbGQgaXMgaW1tdXRhYmxlLiBJdCBjYW4gb25seSBiZSBzZXQgZm9yIGNvbnRhaW5lcnMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJSZXNvdXJjZUNsYWltIHJlZmVyZW5jZXMgb25lIGVudHJ5IGluIFBvZFNwZWMuUmVzb3VyY2VDbGFpbXMuIiwicHJvcGVydGllcyI6eyJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBtdXN0IG1hdGNoIHRoZSBuYW1lIG9mIG9uZSBlbnRyeSBpbiBwb2Quc3BlYy5yZXNvdXJjZUNsYWltcyBvZlxudGhlIFBvZCB3aGVyZSB0aGlzIGZpZWxkIGlzIHVzZWQuIEl0IG1ha2VzIHRoYXQgcmVzb3VyY2UgYXZhaWxhYmxlXG5pbnNpZGUgYSBjb250YWluZXIuIiwidHlwZSI6InN0cmluZyJ9LCJyZXF1ZXN0Ijp7ImRlc2NyaXB0aW9uIjoiUmVxdWVzdCBpcyB0aGUgbmFtZSBjaG9zZW4gZm9yIGEgcmVxdWVzdCBpbiB0aGUgcmVmZXJlbmNlZCBjbGFpbS5cbklmIGVtcHR5LCBldmVyeXRoaW5nIGZyb20gdGhlIGNsYWltIGlzIG1hZGUgYXZhaWxhYmxlLCBvdGhlcndpc2Vcbm9ubHkgdGhlIHJlc3VsdCBvZiB0aGlzIHJlcXVlc3QuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsibmFtZSJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSIsIngta3ViZXJuZXRlcy1saXN0LW1hcC1rZXlzIjpbIm5hbWUiXSwieC1rdWJlcm5ldGVzLWxpc3QtdHlwZSI6Im1hcCJ9LCJsaW1pdHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsiYW55T2YiOlt7InR5cGUiOiJpbnRlZ2VyIn0seyJ0eXBlIjoic3RyaW5nIn1dLCJwYXR0ZXJuIjoiXihcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSgoW0tNR1RQRV1pKXxbbnVta01HVFBFXXwoW2VFXShcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSkpPyQiLCJ4LWt1YmVybmV0ZXMtaW50LW9yLXN0cmluZyI6dHJ1ZX0sImRlc2NyaXB0aW9uIjoiTGltaXRzIGRlc2NyaWJlcyB0aGUgbWF4aW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgYWxsb3dlZC5cbk1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtcmVzb3VyY2VzLWNvbnRhaW5lcnMvIiwidHlwZSI6Im9iamVjdCJ9LCJyZXF1ZXN0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJSZXF1ZXN0cyBkZXNjcmliZXMgdGhlIG1pbmltdW0gYW1vdW50IG9mIGNvbXB1dGUgcmVzb3VyY2VzIHJlcXVpcmVkLlxuSWYgUmVxdWVzdHMgaXMgb21pdHRlZCBmb3IgYSBjb250YWluZXIsIGl0IGRlZmF1bHRzIHRvIExpbWl0cyBpZiB0aGF0IGlzIGV4cGxpY2l0bHkgc3BlY2lmaWVkLFxub3RoZXJ3aXNlIHRvIGFuIGltcGxlbWVudGF0aW9uLWRlZmluZWQgdmFsdWUuIFJlcXVlc3RzIGNhbm5vdCBleGNlZWQgTGltaXRzLlxuTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9jb25maWd1cmF0aW9uL21hbmFnZS1yZXNvdXJjZXMtY29udGFpbmVycy8iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInNjYWxpbmciOnsiZGVzY3JpcHRpb24iOiJDb250cm9scyB0aGUgbnVtYmVyIG9mIHJlcGxpY2FzIGFuZCBhdXRvc2NhbGluZyBmb3IgdGhpcyBjb21wb25lbnQuIiwicHJvcGVydGllcyI6eyJhdXRvU2NhbGluZyI6eyJkZWZhdWx0IjoiRW5hYmxlZCIsImRlc2NyaXB0aW9uIjoiV2hlbiBlbmFibGVkLCB0aGUgbnVtYmVyIG9mIGNvbXBvbmVudCByZXBsaWNhcyBpcyBtYW5hZ2VkIGR5bmFtaWNhbGx5IGJhc2VkIG9uIHRoZSBsb2FkLCB3aXRoaW4gdGhlIGxpbWl0c1xuc3BlY2lmaWVkIGJlbG93LiIsImVudW0iOlsiRW5hYmxlZCIsIkRpc2FibGVkIl0sInR5cGUiOiJzdHJpbmcifSwibWF4UmVwbGljYXMiOnsiZGVmYXVsdCI6NSwiZm9ybWF0IjoiaW50MzIiLCJtaW5pbXVtIjoxLCJ0eXBlIjoiaW50ZWdlciJ9LCJtaW5SZXBsaWNhcyI6eyJkZWZhdWx0IjoyLCJmb3JtYXQiOiJpbnQzMiIsIm1pbmltdW0iOjEsInR5cGUiOiJpbnRlZ2VyIn0sInJlcGxpY2FzIjp7ImRlZmF1bHQiOjMsImRlc2NyaXB0aW9uIjoiV2hlbiBhdXRvc2NhbGluZyBpcyBkaXNhYmxlZCwgdGhlIG51bWJlciBvZiByZXBsaWNhcyB3aWxsIGFsd2F5cyBiZSBjb25maWd1cmVkIHRvIG1hdGNoIHRoaXMgdmFsdWUuIiwiZm9ybWF0IjoiaW50MzIiLCJtaW5pbXVtIjoxLCJ0eXBlIjoiaW50ZWdlciJ9fSwidHlwZSI6Im9iamVjdCJ9LCJ0b2xlcmF0aW9ucyI6eyJkZXNjcmlwdGlvbiI6IklmIHlvdSB3YW50IHRoaXMgY29tcG9uZW50IHRvIG9ubHkgcnVuIG9uIHNwZWNpZmljIG5vZGVzLCB5b3UgY2FuIGNvbmZpZ3VyZSB0b2xlcmF0aW9ucyBvZiB0YWludGVkIG5vZGVzLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiVGhlIHBvZCB0aGlzIFRvbGVyYXRpb24gaXMgYXR0YWNoZWQgdG8gdG9sZXJhdGVzIGFueSB0YWludCB0aGF0IG1hdGNoZXNcbnRoZSB0cmlwbGUgXHUwMDNja2V5LHZhbHVlLGVmZmVjdFx1MDAzZSB1c2luZyB0aGUgbWF0Y2hpbmcgb3BlcmF0b3IgXHUwMDNjb3BlcmF0b3JcdTAwM2UuIiwicHJvcGVydGllcyI6eyJlZmZlY3QiOnsiZGVzY3JpcHRpb24iOiJFZmZlY3QgaW5kaWNhdGVzIHRoZSB0YWludCBlZmZlY3QgdG8gbWF0Y2guIEVtcHR5IG1lYW5zIG1hdGNoIGFsbCB0YWludCBlZmZlY3RzLlxuV2hlbiBzcGVjaWZpZWQsIGFsbG93ZWQgdmFsdWVzIGFyZSBOb1NjaGVkdWxlLCBQcmVmZXJOb1NjaGVkdWxlIGFuZCBOb0V4ZWN1dGUuIiwidHlwZSI6InN0cmluZyJ9LCJrZXkiOnsiZGVzY3JpcHRpb24iOiJLZXkgaXMgdGhlIHRhaW50IGtleSB0aGF0IHRoZSB0b2xlcmF0aW9uIGFwcGxpZXMgdG8uIEVtcHR5IG1lYW5zIG1hdGNoIGFsbCB0YWludCBrZXlzLlxuSWYgdGhlIGtleSBpcyBlbXB0eSwgb3BlcmF0b3IgbXVzdCBiZSBFeGlzdHM7IHRoaXMgY29tYmluYXRpb24gbWVhbnMgdG8gbWF0Y2ggYWxsIHZhbHVlcyBhbmQgYWxsIGtleXMuIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6Ik9wZXJhdG9yIHJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gdGhlIHZhbHVlLlxuVmFsaWQgb3BlcmF0b3JzIGFyZSBFeGlzdHMgYW5kIEVxdWFsLiBEZWZhdWx0cyB0byBFcXVhbC5cbkV4aXN0cyBpcyBlcXVpdmFsZW50IHRvIHdpbGRjYXJkIGZvciB2YWx1ZSwgc28gdGhhdCBhIHBvZCBjYW5cbnRvbGVyYXRlIGFsbCB0YWludHMgb2YgYSBwYXJ0aWN1bGFyIGNhdGVnb3J5LiIsInR5cGUiOiJzdHJpbmcifSwidG9sZXJhdGlvblNlY29uZHMiOnsiZGVzY3JpcHRpb24iOiJUb2xlcmF0aW9uU2Vjb25kcyByZXByZXNlbnRzIHRoZSBwZXJpb2Qgb2YgdGltZSB0aGUgdG9sZXJhdGlvbiAod2hpY2ggbXVzdCBiZVxub2YgZWZmZWN0IE5vRXhlY3V0ZSwgb3RoZXJ3aXNlIHRoaXMgZmllbGQgaXMgaWdub3JlZCkgdG9sZXJhdGVzIHRoZSB0YWludC4gQnkgZGVmYXVsdCxcbml0IGlzIG5vdCBzZXQsIHdoaWNoIG1lYW5zIHRvbGVyYXRlIHRoZSB0YWludCBmb3JldmVyIChkbyBub3QgZXZpY3QpLiBaZXJvIGFuZFxubmVnYXRpdmUgdmFsdWVzIHdpbGwgYmUgdHJlYXRlZCBhcyAwIChldmljdCBpbW1lZGlhdGVseSkgYnkgdGhlIHN5c3RlbS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sInZhbHVlIjp7ImRlc2NyaXB0aW9uIjoiVmFsdWUgaXMgdGhlIHRhaW50IHZhbHVlIHRoZSB0b2xlcmF0aW9uIG1hdGNoZXMgdG8uXG5JZiB0aGUgb3BlcmF0b3IgaXMgRXhpc3RzLCB0aGUgdmFsdWUgc2hvdWxkIGJlIGVtcHR5LCBvdGhlcndpc2UganVzdCBhIHJlZ3VsYXIgc3RyaW5nLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In19LCJ0eXBlIjoib2JqZWN0In0sIm1vbml0b3JpbmciOnsiZGVzY3JpcHRpb24iOiJDb25maWd1cmVzIG1vbml0b3JpbmcgZW5kcG9pbnQgZm9yIFNjYW5uZXIgVjQuIFRoZSBtb25pdG9yaW5nIGVuZHBvaW50XG5hbGxvd3Mgb3RoZXIgc2VydmljZXMgdG8gY29sbGVjdCBtZXRyaWNzIGZyb20gU2Nhbm5lciBWNCwgcHJvdmlkZWQgaW5cblByb21ldGhldXMgY29tcGF0aWJsZSBmb3JtYXQuIiwicHJvcGVydGllcyI6eyJleHBvc2VFbmRwb2ludCI6eyJkZXNjcmlwdGlvbiI6IkV4cG9zZSB0aGUgbW9uaXRvcmluZyBlbmRwb2ludC4gQSBuZXcgc2VydmljZSwgXCJtb25pdG9yaW5nXCIsXG53aXRoIHBvcnQgOTA5MCwgd2lsbCBiZSBjcmVhdGVkIGFzIHdlbGwgYXMgYSBuZXR3b3JrIHBvbGljeSBhbGxvd2luZ1xuaW5ib3VuZCBjb25uZWN0aW9ucyB0byB0aGUgcG9ydC4iLCJlbnVtIjpbIkVuYWJsZWQiLCJEaXNhYmxlZCJdLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In0sInNjYW5uZXJDb21wb25lbnQiOnsiZGVzY3JpcHRpb24iOiJJZiB5b3Ugd2FudCB0byBlbmFibGUgdGhlIFNjYW5uZXIgVjQgY29tcG9uZW50IHNldCB0aGlzIHRvIFwiQXV0b1NlbnNlXCJcbklmIHRoaXMgZmllbGQgaXMgbm90IHNwZWNpZmllZCBvciBzZXQgdG8gXCJEZWZhdWx0XCIsIHRoZSBmb2xsb3dpbmcgZGVmYXVsdGluZyB0YWtlcyBwbGFjZTpcbiogZm9yIG5ldyBpbnN0YWxsYXRpb25zLCBTY2FubmVyIFY0IGlzIGVuYWJsZWQgc3RhcnRpbmcgd2l0aCBBQ1MgNC44O1xuKiBmb3IgdXBncmFkZXMgdG8gNC44IGZyb20gcHJldmlvdXMgcmVsZWFzZXMsIFNjYW5uZXIgVjQgaXMgZGlzYWJsZWQuIiwiZW51bSI6WyJEZWZhdWx0IiwiQXV0b1NlbnNlIiwiRGlzYWJsZWQiXSwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJzZW5zb3IiOnsiZGVzY3JpcHRpb24iOiJTZXR0aW5ncyBmb3IgdGhlIFNlbnNvciBjb21wb25lbnQuIiwicHJvcGVydGllcyI6eyJob3N0QWxpYXNlcyI6eyJkZXNjcmlwdGlvbiI6Ikhvc3RBbGlhc2VzIGFsbG93cyBjb25maWd1cmluZyBhZGRpdGlvbmFsIGhvc3RuYW1lcyB0byByZXNvbHZlIGluIHRoZSBwb2QncyBob3N0cyBmaWxlLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiSG9zdEFsaWFzIGhvbGRzIHRoZSBtYXBwaW5nIGJldHdlZW4gSVAgYW5kIGhvc3RuYW1lcyB0aGF0IHdpbGwgYmUgaW5qZWN0ZWQgYXMgYW4gZW50cnkgaW4gdGhlXG5wb2QncyBob3N0cyBmaWxlLiIsInByb3BlcnRpZXMiOnsiaG9zdG5hbWVzIjp7ImRlc2NyaXB0aW9uIjoiSG9zdG5hbWVzIGZvciB0aGUgYWJvdmUgSVAgYWRkcmVzcy4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSIsIngta3ViZXJuZXRlcy1saXN0LXR5cGUiOiJhdG9taWMifSwiaXAiOnsiZGVzY3JpcHRpb24iOiJJUCBhZGRyZXNzIG9mIHRoZSBob3N0IGZpbGUgZW50cnkuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsiaXAiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibm9kZVNlbGVjdG9yIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJJZiB5b3Ugd2FudCB0aGlzIGNvbXBvbmVudCB0byBvbmx5IHJ1biBvbiBzcGVjaWZpYyBub2RlcywgeW91IGNhbiBjb25maWd1cmUgYSBub2RlIHNlbGVjdG9yIGhlcmUuIiwidHlwZSI6Im9iamVjdCJ9LCJyZXNvdXJjZXMiOnsiZGVzY3JpcHRpb24iOiJBbGxvd3Mgb3ZlcnJpZGluZyB0aGUgZGVmYXVsdCByZXNvdXJjZSBzZXR0aW5ncyBmb3IgdGhpcyBjb21wb25lbnQuIFBsZWFzZSBjb25zdWx0IHRoZSBkb2N1bWVudGF0aW9uXG5mb3IgYW4gb3ZlcnZpZXcgb2YgZGVmYXVsdCByZXNvdXJjZSByZXF1aXJlbWVudHMgYW5kIGEgc2l6aW5nIGd1aWRlLiIsInByb3BlcnRpZXMiOnsiY2xhaW1zIjp7ImRlc2NyaXB0aW9uIjoiQ2xhaW1zIGxpc3RzIHRoZSBuYW1lcyBvZiByZXNvdXJjZXMsIGRlZmluZWQgaW4gc3BlYy5yZXNvdXJjZUNsYWltcyxcbnRoYXQgYXJlIHVzZWQgYnkgdGhpcyBjb250YWluZXIuXG5cblRoaXMgZmllbGQgZGVwZW5kcyBvbiB0aGVcbkR5bmFtaWNSZXNvdXJjZUFsbG9jYXRpb24gZmVhdHVyZSBnYXRlLlxuXG5UaGlzIGZpZWxkIGlzIGltbXV0YWJsZS4gSXQgY2FuIG9ubHkgYmUgc2V0IGZvciBjb250YWluZXJzLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiUmVzb3VyY2VDbGFpbSByZWZlcmVuY2VzIG9uZSBlbnRyeSBpbiBQb2RTcGVjLlJlc291cmNlQ2xhaW1zLiIsInByb3BlcnRpZXMiOnsibmFtZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWUgbXVzdCBtYXRjaCB0aGUgbmFtZSBvZiBvbmUgZW50cnkgaW4gcG9kLnNwZWMucmVzb3VyY2VDbGFpbXMgb2ZcbnRoZSBQb2Qgd2hlcmUgdGhpcyBmaWVsZCBpcyB1c2VkLiBJdCBtYWtlcyB0aGF0IHJlc291cmNlIGF2YWlsYWJsZVxuaW5zaWRlIGEgY29udGFpbmVyLiIsInR5cGUiOiJzdHJpbmcifSwicmVxdWVzdCI6eyJkZXNjcmlwdGlvbiI6IlJlcXVlc3QgaXMgdGhlIG5hbWUgY2hvc2VuIGZvciBhIHJlcXVlc3QgaW4gdGhlIHJlZmVyZW5jZWQgY2xhaW0uXG5JZiBlbXB0eSwgZXZlcnl0aGluZyBmcm9tIHRoZSBjbGFpbSBpcyBtYWRlIGF2YWlsYWJsZSwgb3RoZXJ3aXNlXG5vbmx5IHRoZSByZXN1bHQgb2YgdGhpcyByZXF1ZXN0LiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkiLCJ4LWt1YmVybmV0ZXMtbGlzdC1tYXAta2V5cyI6WyJuYW1lIl0sIngta3ViZXJuZXRlcy1saXN0LXR5cGUiOiJtYXAifSwibGltaXRzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJkZXNjcmlwdGlvbiI6IkxpbWl0cyBkZXNjcmliZXMgdGhlIG1heGltdW0gYW1vdW50IG9mIGNvbXB1dGUgcmVzb3VyY2VzIGFsbG93ZWQuXG5Nb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL2NvbmZpZ3VyYXRpb24vbWFuYWdlLXJlc291cmNlcy1jb250YWluZXJzLyIsInR5cGUiOiJvYmplY3QifSwicmVxdWVzdHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsiYW55T2YiOlt7InR5cGUiOiJpbnRlZ2VyIn0seyJ0eXBlIjoic3RyaW5nIn1dLCJwYXR0ZXJuIjoiXihcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSgoW0tNR1RQRV1pKXxbbnVta01HVFBFXXwoW2VFXShcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSkpPyQiLCJ4LWt1YmVybmV0ZXMtaW50LW9yLXN0cmluZyI6dHJ1ZX0sImRlc2NyaXB0aW9uIjoiUmVxdWVzdHMgZGVzY3JpYmVzIHRoZSBtaW5pbXVtIGFtb3VudCBvZiBjb21wdXRlIHJlc291cmNlcyByZXF1aXJlZC5cbklmIFJlcXVlc3RzIGlzIG9taXR0ZWQgZm9yIGEgY29udGFpbmVyLCBpdCBkZWZhdWx0cyB0byBMaW1pdHMgaWYgdGhhdCBpcyBleHBsaWNpdGx5IHNwZWNpZmllZCxcbm90aGVyd2lzZSB0byBhbiBpbXBsZW1lbnRhdGlvbi1kZWZpbmVkIHZhbHVlLiBSZXF1ZXN0cyBjYW5ub3QgZXhjZWVkIExpbWl0cy5cbk1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtcmVzb3VyY2VzLWNvbnRhaW5lcnMvIiwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9LCJ0b2xlcmF0aW9ucyI6eyJkZXNjcmlwdGlvbiI6IklmIHlvdSB3YW50IHRoaXMgY29tcG9uZW50IHRvIG9ubHkgcnVuIG9uIHNwZWNpZmljIG5vZGVzLCB5b3UgY2FuIGNvbmZpZ3VyZSB0b2xlcmF0aW9ucyBvZiB0YWludGVkIG5vZGVzLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiVGhlIHBvZCB0aGlzIFRvbGVyYXRpb24gaXMgYXR0YWNoZWQgdG8gdG9sZXJhdGVzIGFueSB0YWludCB0aGF0IG1hdGNoZXNcbnRoZSB0cmlwbGUgXHUwMDNja2V5LHZhbHVlLGVmZmVjdFx1MDAzZSB1c2luZyB0aGUgbWF0Y2hpbmcgb3BlcmF0b3IgXHUwMDNjb3BlcmF0b3JcdTAwM2UuIiwicHJvcGVydGllcyI6eyJlZmZlY3QiOnsiZGVzY3JpcHRpb24iOiJFZmZlY3QgaW5kaWNhdGVzIHRoZSB0YWludCBlZmZlY3QgdG8gbWF0Y2guIEVtcHR5IG1lYW5zIG1hdGNoIGFsbCB0YWludCBlZmZlY3RzLlxuV2hlbiBzcGVjaWZpZWQsIGFsbG93ZWQgdmFsdWVzIGFyZSBOb1NjaGVkdWxlLCBQcmVmZXJOb1NjaGVkdWxlIGFuZCBOb0V4ZWN1dGUuIiwidHlwZSI6InN0cmluZyJ9LCJrZXkiOnsiZGVzY3JpcHRpb24iOiJLZXkgaXMgdGhlIHRhaW50IGtleSB0aGF0IHRoZSB0b2xlcmF0aW9uIGFwcGxpZXMgdG8uIEVtcHR5IG1lYW5zIG1hdGNoIGFsbCB0YWludCBrZXlzLlxuSWYgdGhlIGtleSBpcyBlbXB0eSwgb3BlcmF0b3IgbXVzdCBiZSBFeGlzdHM7IHRoaXMgY29tYmluYXRpb24gbWVhbnMgdG8gbWF0Y2ggYWxsIHZhbHVlcyBhbmQgYWxsIGtleXMuIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6Ik9wZXJhdG9yIHJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gdGhlIHZhbHVlLlxuVmFsaWQgb3BlcmF0b3JzIGFyZSBFeGlzdHMgYW5kIEVxdWFsLiBEZWZhdWx0cyB0byBFcXVhbC5cbkV4aXN0cyBpcyBlcXVpdmFsZW50IHRvIHdpbGRjYXJkIGZvciB2YWx1ZSwgc28gdGhhdCBhIHBvZCBjYW5cbnRvbGVyYXRlIGFsbCB0YWludHMgb2YgYSBwYXJ0aWN1bGFyIGNhdGVnb3J5LiIsInR5cGUiOiJzdHJpbmcifSwidG9sZXJhdGlvblNlY29uZHMiOnsiZGVzY3JpcHRpb24iOiJUb2xlcmF0aW9uU2Vjb25kcyByZXByZXNlbnRzIHRoZSBwZXJpb2Qgb2YgdGltZSB0aGUgdG9sZXJhdGlvbiAod2hpY2ggbXVzdCBiZVxub2YgZWZmZWN0IE5vRXhlY3V0ZSwgb3RoZXJ3aXNlIHRoaXMgZmllbGQgaXMgaWdub3JlZCkgdG9sZXJhdGVzIHRoZSB0YWludC4gQnkgZGVmYXVsdCxcbml0IGlzIG5vdCBzZXQsIHdoaWNoIG1lYW5zIHRvbGVyYXRlIHRoZSB0YWludCBmb3JldmVyIChkbyBub3QgZXZpY3QpLiBaZXJvIGFuZFxubmVnYXRpdmUgdmFsdWVzIHdpbGwgYmUgdHJlYXRlZCBhcyAwIChldmljdCBpbW1lZGlhdGVseSkgYnkgdGhlIHN5c3RlbS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sInZhbHVlIjp7ImRlc2NyaXB0aW9uIjoiVmFsdWUgaXMgdGhlIHRhaW50IHZhbHVlIHRoZSB0b2xlcmF0aW9uIG1hdGNoZXMgdG8uXG5JZiB0aGUgb3BlcmF0b3IgaXMgRXhpc3RzLCB0aGUgdmFsdWUgc2hvdWxkIGJlIGVtcHR5LCBvdGhlcndpc2UganVzdCBhIHJlZ3VsYXIgc3RyaW5nLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In19LCJ0eXBlIjoib2JqZWN0In0sInRscyI6eyJkZXNjcmlwdGlvbiI6IkFsbG93cyB5b3UgdG8gc3BlY2lmeSBhZGRpdGlvbmFsIHRydXN0ZWQgUm9vdCBDQXMuIiwicHJvcGVydGllcyI6eyJhZGRpdGlvbmFsQ0FzIjp7Iml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQWRkaXRpb25hbENBIGRlZmluZXMgYSBjZXJ0aWZpY2F0ZSBmb3IgYW4gYWRkaXRpb25hbCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkuIiwicHJvcGVydGllcyI6eyJjb250ZW50Ijp7ImRlc2NyaXB0aW9uIjoiUEVNIGZvcm1hdCIsInR5cGUiOiJzdHJpbmcifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6Ik11c3QgYmUgYSB2YWxpZCBmaWxlIGJhc2VuYW1lIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsiY29udGVudCIsIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifX0sInR5cGUiOiJvYmplY3QifX0sInJlcXVpcmVkIjpbImNsdXN0ZXJOYW1lIl0sInR5cGUiOiJvYmplY3QifSwic3RhdHVzIjp7ImRlc2NyaXB0aW9uIjoiU2VjdXJlZENsdXN0ZXJTdGF0dXMgZGVmaW5lcyB0aGUgb2JzZXJ2ZWQgc3RhdGUgb2YgU2VjdXJlZENsdXN0ZXIiLCJwcm9wZXJ0aWVzIjp7ImNsdXN0ZXJOYW1lIjp7ImRlc2NyaXB0aW9uIjoiVGhlIGFzc2lnbmVkIGNsdXN0ZXIgbmFtZSBwZXIgdGhlIHNwZWMuIFRoaXMgY2Fubm90IGJlIGNoYW5nZWQgYWZ0ZXJ3YXJkcy4gSWYgeW91IG5lZWQgdG8gY2hhbmdlIHRoZVxuY2x1c3RlciBuYW1lLCBwbGVhc2UgZGVsZXRlIGFuZCByZWNyZWF0ZSB0aGlzIHJlc291cmNlLiIsInR5cGUiOiJzdHJpbmcifSwiY29uZGl0aW9ucyI6eyJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IlN0YWNrUm94Q29uZGl0aW9uIGRlZmluZXMgYSBjb25kaXRpb24gZm9yIGEgU3RhY2tSb3ggY3VzdG9tIHJlc291cmNlLiIsInByb3BlcnRpZXMiOnsibGFzdFRyYW5zaXRpb25UaW1lIjp7ImZvcm1hdCI6ImRhdGUtdGltZSIsInR5cGUiOiJzdHJpbmcifSwibWVzc2FnZSI6eyJ0eXBlIjoic3RyaW5nIn0sInJlYXNvbiI6eyJkZXNjcmlwdGlvbiI6IkNvbmRpdGlvblJlYXNvbiBpcyBhIHR5cGUgb2YgdmFsdWVzIG9mIGNvbmRpdGlvbiByZWFzb24uIiwidHlwZSI6InN0cmluZyJ9LCJzdGF0dXMiOnsiZGVzY3JpcHRpb24iOiJDb25kaXRpb25TdGF0dXMgaXMgYSB0eXBlIG9mIHZhbHVlcyBvZiBjb25kaXRpb24gc3RhdHVzLiIsInR5cGUiOiJzdHJpbmcifSwidHlwZSI6eyJkZXNjcmlwdGlvbiI6IkNvbmRpdGlvblR5cGUgaXMgYSB0eXBlIG9mIHZhbHVlcyBvZiBjb25kaXRpb24gdHlwZS4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJzdGF0dXMiLCJ0eXBlIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sImRlcGxveWVkUmVsZWFzZSI6eyJkZXNjcmlwdGlvbiI6IlN0YWNrUm94UmVsZWFzZSBkZXNjcmliZXMgdGhlIEhlbG0gXCJyZWxlYXNlXCIgdGhhdCB3YXMgbW9zdCByZWNlbnRseSBhcHBsaWVkLiIsInByb3BlcnRpZXMiOnsidmVyc2lvbiI6eyJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In0sInByb2R1Y3RWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiVGhlIGRlcGxveWVkIHZlcnNpb24gb2YgdGhlIHByb2R1Y3QuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsiY29uZGl0aW9ucyJdLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In19LCJzZXJ2ZWQiOnRydWUsInN0b3JhZ2UiOnRydWUsInN1YnJlc291cmNlcyI6eyJzdGF0dXMiOnt9fX1dfSwic3RhdHVzIjp7ImFjY2VwdGVkTmFtZXMiOnsia2luZCI6IiIsInBsdXJhbCI6IiJ9LCJjb25kaXRpb25zIjpudWxsLCJzdG9yZWRWZXJzaW9ucyI6bnVsbH19" + } + }, + { + "type": "olm.bundle.object", + "value": { + "data": "eyJhcGlWZXJzaW9uIjoiYXBpZXh0ZW5zaW9ucy5rOHMuaW8vdjEiLCJraW5kIjoiQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiY29udHJvbGxlci1nZW4ua3ViZWJ1aWxkZXIuaW8vdmVyc2lvbiI6InYwLjE2LjUifSwibmFtZSI6InNlY3VyaXR5cG9saWNpZXMuY29uZmlnLnN0YWNrcm94LmlvIn0sInNwZWMiOnsiZ3JvdXAiOiJjb25maWcuc3RhY2tyb3guaW8iLCJuYW1lcyI6eyJraW5kIjoiU2VjdXJpdHlQb2xpY3kiLCJsaXN0S2luZCI6IlNlY3VyaXR5UG9saWN5TGlzdCIsInBsdXJhbCI6InNlY3VyaXR5cG9saWNpZXMiLCJzaG9ydE5hbWVzIjpbInNwIl0sInNpbmd1bGFyIjoic2VjdXJpdHlwb2xpY3kifSwic2NvcGUiOiJOYW1lc3BhY2VkIiwidmVyc2lvbnMiOlt7Im5hbWUiOiJ2MWFscGhhMSIsInNjaGVtYSI6eyJvcGVuQVBJVjNTY2hlbWEiOnsiZGVzY3JpcHRpb24iOiJTZWN1cml0eVBvbGljeSBpcyB0aGUgU2NoZW1hIGZvciB0aGUgcG9saWNpZXMgQVBJIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQVBJVmVyc2lvbiBkZWZpbmVzIHRoZSB2ZXJzaW9uZWQgc2NoZW1hIG9mIHRoaXMgcmVwcmVzZW50YXRpb24gb2YgYW4gb2JqZWN0LlxuU2VydmVycyBzaG91bGQgY29udmVydCByZWNvZ25pemVkIHNjaGVtYXMgdG8gdGhlIGxhdGVzdCBpbnRlcm5hbCB2YWx1ZSwgYW5kXG5tYXkgcmVqZWN0IHVucmVjb2duaXplZCB2YWx1ZXMuXG5Nb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3Jlc291cmNlcyIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgYSBzdHJpbmcgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBSRVNUIHJlc291cmNlIHRoaXMgb2JqZWN0IHJlcHJlc2VudHMuXG5TZXJ2ZXJzIG1heSBpbmZlciB0aGlzIGZyb20gdGhlIGVuZHBvaW50IHRoZSBjbGllbnQgc3VibWl0cyByZXF1ZXN0cyB0by5cbkNhbm5vdCBiZSB1cGRhdGVkLlxuSW4gQ2FtZWxDYXNlLlxuTW9yZSBpbmZvOiBodHRwczovL2dpdC5rOHMuaW8vY29tbXVuaXR5L2NvbnRyaWJ1dG9ycy9kZXZlbC9zaWctYXJjaGl0ZWN0dXJlL2FwaS1jb252ZW50aW9ucy5tZCN0eXBlcy1raW5kcyIsInR5cGUiOiJzdHJpbmcifSwibWV0YWRhdGEiOnsidHlwZSI6Im9iamVjdCJ9LCJzcGVjIjp7ImRlc2NyaXB0aW9uIjoiU2VjdXJpdHlQb2xpY3lTcGVjIGRlZmluZXMgdGhlIGRlc2lyZWQgc3RhdGUgb2YgU2VjdXJpdHlQb2xpY3kiLCJwcm9wZXJ0aWVzIjp7ImNhdGVnb3JpZXMiOnsiZGVzY3JpcHRpb24iOiJDYXRlZ29yaWVzIGlzIGEgbGlzdCBvZiBjYXRlZ29yaWVzIHRoYXQgdGhpcyBwb2xpY3kgZmFsbHMgdW5kZXIuICBDYXRlZ29yeSBuYW1lcyBtdXN0IGFscmVhZHkgZXhpc3QgaW4gQ2VudHJhbC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sIm1pbkl0ZW1zIjoxLCJ0eXBlIjoiYXJyYXkifSwiY3JpdGVyaWFMb2NrZWQiOnsiZGVzY3JpcHRpb24iOiJDcml0ZXJpYUxvY2tlZCBpcyB1bnVzZWQgYW5kIGRlcHJlY2F0ZWQiLCJ0eXBlIjoiYm9vbGVhbiJ9LCJkZXNjcmlwdGlvbiI6eyJkZXNjcmlwdGlvbiI6IkRlc2NyaXB0aW9uIGlzIGEgZnJlZS1mb3JtIHRleHQgZGVzY3JpcHRpb24gb2YgdGhpcyBwb2xpY3kuIiwicGF0dGVybiI6Il5bXlxcJF17MCw4MDB9JCIsInR5cGUiOiJzdHJpbmcifSwiZGlzYWJsZWQiOnsiZGVzY3JpcHRpb24iOiJEaXNhYmxlZCB0b2dnbGVzIHdoZXRoZXIgb3Igbm90IHRoaXMgcG9saWN5IHdpbGwgYmUgZXhlY3V0aW5nIGFuZCBhY3RpdmVseSBmaXJpbmcgYWxlcnRzLiIsInR5cGUiOiJib29sZWFuIn0sImVuZm9yY2VtZW50QWN0aW9ucyI6eyJkZXNjcmlwdGlvbiI6IkVuZm9yY2VtZW50IGxpc3RzIHRoZSBlbmZvcmNlbWVudCBhY3Rpb25zIHRvIHRha2Ugd2hlbiBhIHZpb2xhdGlvbiBmcm9tIHRoaXMgcG9saWN5IGlzIGlkZW50aWZpZWQuICBQb3NzaWJsZSB2YWx1ZSBhcmUgVU5TRVRfRU5GT1JDRU1FTlQsIFNDQUxFX1RPX1pFUk9fRU5GT1JDRU1FTlQsIFVOU0FUSVNGSUFCTEVfTk9ERV9DT05TVFJBSU5UX0VORk9SQ0VNRU5ULCBLSUxMX1BPRF9FTkZPUkNFTUVOVCwgRkFJTF9CVUlMRF9FTkZPUkNFTUVOVCwgRkFJTF9LVUJFX1JFUVVFU1RfRU5GT1JDRU1FTlQsIEZBSUxfREVQTE9ZTUVOVF9DUkVBVEVfRU5GT1JDRU1FTlQsIGFuZC4gRkFJTF9ERVBMT1lNRU5UX1VQREFURV9FTkZPUkNFTUVOVC4iLCJpdGVtcyI6eyJlbnVtIjpbIlVOU0VUX0VORk9SQ0VNRU5UIiwiU0NBTEVfVE9fWkVST19FTkZPUkNFTUVOVCIsIlVOU0FUSVNGSUFCTEVfTk9ERV9DT05TVFJBSU5UX0VORk9SQ0VNRU5UIiwiS0lMTF9QT0RfRU5GT1JDRU1FTlQiLCJGQUlMX0JVSUxEX0VORk9SQ0VNRU5UIiwiRkFJTF9LVUJFX1JFUVVFU1RfRU5GT1JDRU1FTlQiLCJGQUlMX0RFUExPWU1FTlRfQ1JFQVRFX0VORk9SQ0VNRU5UIiwiRkFJTF9ERVBMT1lNRU5UX1VQREFURV9FTkZPUkNFTUVOVCJdLCJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9LCJldmVudFNvdXJjZSI6eyJkZXNjcmlwdGlvbiI6IkV2ZW50U291cmNlIGRlc2NyaWJlcyB3aGljaCBldmVudHMgc2hvdWxkIHRyaWdnZXIgZXhlY3V0aW9uIG9mIHRoaXMgcG9saWN5IiwiZW51bSI6WyJOT1RfQVBQTElDQUJMRSIsIkRFUExPWU1FTlRfRVZFTlQiLCJBVURJVF9MT0dfRVZFTlQiXSwidHlwZSI6InN0cmluZyJ9LCJleGNsdXNpb25zIjp7ImRlc2NyaXB0aW9uIjoiRXhjbHVzaW9ucyBkZWZpbmUgZGVwbG95bWVudHMgb3IgaW1hZ2VzIHRoYXQgc2hvdWxkIGJlIGV4Y2x1ZGVkIGZyb20gdGhpcyBwb2xpY3kuIiwiaXRlbXMiOnsicHJvcGVydGllcyI6eyJkZXBsb3ltZW50Ijp7InByb3BlcnRpZXMiOnsibmFtZSI6eyJ0eXBlIjoic3RyaW5nIn0sInNjb3BlIjp7InByb3BlcnRpZXMiOnsiY2x1c3RlciI6eyJkZXNjcmlwdGlvbiI6IkNsdXN0ZXIgaXMgZWl0aGVyIHRoZSBuYW1lIG9yIHRoZSBJRCBvZiB0aGUgY2x1c3RlciB0aGF0IHRoaXMgc2NvcGUgYXBwbGllcyB0byIsInR5cGUiOiJzdHJpbmcifSwibGFiZWwiOnsicHJvcGVydGllcyI6eyJrZXkiOnsidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZSI6eyJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In0sIm5hbWVzcGFjZSI6eyJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sImV4cGlyYXRpb24iOnsiZm9ybWF0IjoiZGF0ZS10aW1lIiwidHlwZSI6InN0cmluZyJ9LCJpbWFnZSI6eyJwcm9wZXJ0aWVzIjp7Im5hbWUiOnsidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJuYW1lIjp7InR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sImlzRGVmYXVsdCI6eyJkZXNjcmlwdGlvbiI6IklzRGVmYXVsdCBpcyB1bnVzZWQiLCJ0eXBlIjoiYm9vbGVhbiJ9LCJsaWZlY3ljbGVTdGFnZXMiOnsiZGVzY3JpcHRpb24iOiJMaWZlY3ljbGVTdGFnZXMgZGVzY3JpYmVzIHdoaWNoIHBvbGljeSBsaWZlY3lsY2Ugc3RhZ2VzIHRoaXMgcG9saWN5IGFwcGxpZXMgdG8uICBDaG9pY2VzIGFyZSBERVBMT1ksIEJVSUxELCBhbmQgUlVOVElNRS4iLCJpdGVtcyI6eyJlbnVtIjpbIkRFUExPWSIsIkJVSUxEIiwiUlVOVElNRSJdLCJ0eXBlIjoic3RyaW5nIn0sIm1pbkl0ZW1zIjoxLCJ0eXBlIjoiYXJyYXkifSwibWl0cmVBdHRhY2tWZWN0b3JzIjp7Iml0ZW1zIjp7InByb3BlcnRpZXMiOnsidGFjdGljIjp7InR5cGUiOiJzdHJpbmcifSwidGVjaG5pcXVlcyI6eyJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibWl0cmVWZWN0b3JzTG9ja2VkIjp7ImRlc2NyaXB0aW9uIjoiTWl0cmVWZXRvcnNMb2NrZWQgaXMgdW51c2VkIGFuZCBkZXByZWNhdGVkIiwidHlwZSI6ImJvb2xlYW4ifSwibm90aWZpZXJzIjp7ImRlc2NyaXB0aW9uIjoiTm90aWZpZXJzIGlzIGEgbGlzdCBvZiBJRHMgb3IgbmFtZXMgb2YgdGhlIG5vdGlmaWVycyB0aGF0IHNob3VsZCBiZSB0cmlnZ2VyZWQgd2hlbiBhIHZpb2xhdGlvbiBmcm9tIHRoaXMgcG9saWN5IGlzIGlkZW50aWZpZWQuICBJRHMgc2hvdWxkIGJlIGluIHRoZSBmb3JtIG9mIGEgVVVJRCBhbmQgYXJlIGZvdW5kIHRocm91Z2ggdGhlIENlbnRyYWwgQVBJLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In0sInBvbGljeU5hbWUiOnsiZGVzY3JpcHRpb24iOiJQb2xpY3lOYW1lIGlzIHRoZSBuYW1lIG9mIHRoZSBwb2xpY3kgYXMgaXQgYXBwZWFycyBpbiB0aGUgQVBJIGFuZCBVSS4gIE5vdGUgdGhhdCBjaGFuZ2luZyB0aGlzIHZhbHVlIHdpbGwgcmVuYW1lIHRoZSBwb2xpY3kgYXMgc3RvcmVkIGluIHRoZSBkYXRhYmFzZS4gIFRoaXMgZmllbGQgbXVzdCBiZSB1bmlxdWUuIiwicGF0dGVybiI6Il5bXlxcblxcclxcJF17NSwxMjh9JCIsInR5cGUiOiJzdHJpbmcifSwicG9saWN5U2VjdGlvbnMiOnsiZGVzY3JpcHRpb24iOiJQb2xpY3lTZWN0aW9ucyBkZWZpbmUgdGhlIHZpb2xhdGlvbiBjcml0ZXJpYSBmb3IgdGhpcyBwb2xpY3kuIiwiaXRlbXMiOnsicHJvcGVydGllcyI6eyJwb2xpY3lHcm91cHMiOnsiZGVzY3JpcHRpb24iOiJQb2xpY3lHcm91cHMgaXMgdGhlIHNldCBvZiBwb2xpY2llcyBncm91cHMgdGhhdCBtYWtlIHVwIHRoaXMgc2VjdGlvbi4gIEVhY2ggZ3JvdXAgY2FuIGJlIGNvbnNpZGVyZWQgYW4gaW5kaXZpZHVhbCBjcml0ZXJpb24uIiwiaXRlbXMiOnsicHJvcGVydGllcyI6eyJib29sZWFuT3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJCb29sZWFuT3BlcmF0b3IgZGV0ZXJtaW5lcyBpZiB0aGUgdmFsdWVzIGFyZSBjb21iaW5lZCB3aXRoIGFuIE9SIG9yIGFuIEFORC4gIERlZmF1bHRzIHRvIE9SLiIsImVudW0iOlsiT1IiLCJBTkQiXSwidHlwZSI6InN0cmluZyJ9LCJmaWVsZE5hbWUiOnsiZGVzY3JpcHRpb24iOiJGaWVsZE5hbWUgZGVmaW5lcyB3aGljaCBmaWVsZCBvbiBhIGRlcGxveW1lbnQgb3IgaW1hZ2UgdGhpcyBQb2xpY3lHcm91cCBldmFsdWF0ZXMuICBTZWUgaHR0cHM6Ly9kb2NzLm9wZW5zaGlmdC5jb20vYWNzL29wZXJhdGluZy9tYW5hZ2Utc2VjdXJpdHktcG9saWNpZXMuaHRtbCNwb2xpY3ktY3JpdGVyaWFfbWFuYWdlLXNlY3VyaXR5LXBvbGljaWVzIGZvciBhIGNvbXBsZXRlIGxpc3Qgb2YgcG9zc2libGUgdmFsdWVzLiIsInR5cGUiOiJzdHJpbmcifSwibmVnYXRlIjp7ImRlc2NyaXB0aW9uIjoiTmVnYXRlIGRldGVybWluZXMgaWYgdGhlIGV2YWx1YXRpb24gb2YgdGhpcyBQb2xpY3lHcm91cCBpcyBuZWdhdGVkLiAgRGVmYXVsdCB0byBmYWxzZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJWYWx1ZXMgaXMgdGhlIGxpc3Qgb2YgdmFsdWVzIGZvciB0aGUgc3BlY2lmaWVkIGZpZWxkIiwiaXRlbXMiOnsicHJvcGVydGllcyI6eyJ2YWx1ZSI6eyJkZXNjcmlwdGlvbiI6IlZhbHVlIGlzIHNpbXBseSB0aGUgc3RyaW5nIHZhbHVlIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImZpZWxkTmFtZSJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJzZWN0aW9uTmFtZSI6eyJkZXNjcmlwdGlvbiI6IlNlY3Rpb25OYW1lIGlzIGEgdXNlci1mcmllbmRseSBuYW1lIGZvciB0aGlzIHNlY3Rpb24gb2YgcG9saWNpZXMiLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJwb2xpY3lHcm91cHMiXSwidHlwZSI6Im9iamVjdCJ9LCJtaW5JdGVtcyI6MSwidHlwZSI6ImFycmF5In0sInJhdGlvbmFsZSI6eyJ0eXBlIjoic3RyaW5nIn0sInJlbWVkaWF0aW9uIjp7ImRlc2NyaXB0aW9uIjoiUmVtZWRpYXRpb24gZGVzY3JpYmVzIGhvdyB0byByZW1lZGlhdGUgYSB2aW9sYXRpb24gb2YgdGhpcyBwb2xpY3kuIiwidHlwZSI6InN0cmluZyJ9LCJzY29wZSI6eyJkZXNjcmlwdGlvbiI6IlNjb3BlIGRlZmluZXMgY2x1c3RlcnMsIG5hbWVzcGFjZXMsIGFuZCBkZXBsb3ltZW50cyB0aGF0IHNob3VsZCBiZSBpbmNsdWRlZCBpbiB0aGlzIHBvbGljeS4gIE5vIHNjb3BlcyBkZWZpbmVkIGluY2x1ZGVzIGV2ZXJ5dGhpbmcuIiwiaXRlbXMiOnsicHJvcGVydGllcyI6eyJjbHVzdGVyIjp7ImRlc2NyaXB0aW9uIjoiQ2x1c3RlciBpcyBlaXRoZXIgdGhlIG5hbWUgb3IgdGhlIElEIG9mIHRoZSBjbHVzdGVyIHRoYXQgdGhpcyBzY29wZSBhcHBsaWVzIHRvIiwidHlwZSI6InN0cmluZyJ9LCJsYWJlbCI6eyJwcm9wZXJ0aWVzIjp7ImtleSI6eyJ0eXBlIjoic3RyaW5nIn0sInZhbHVlIjp7InR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwibmFtZXNwYWNlIjp7InR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sInNldmVyaXR5Ijp7ImRlc2NyaXB0aW9uIjoiU2V2ZXJpdHkgZGVmaW5lcyBob3cgc2V2ZXJlIGEgdmlvbGF0aW9uIGZyb20gdGhpcyBwb2xpY3kgaXMuICBQb3NzaWJsZSB2YWx1ZXMgYXJlIFVOU0VUX1NFVkVSSVRZLCBMT1dfU0VWRVJJVFksIE1FRElVTV9TRVZFUklUWSwgSElHSF9TRVZFUklUWSwgYW5kIENSSVRJQ0FMX1NFVkVSSVRZLiIsImVudW0iOlsiVU5TRVRfU0VWRVJJVFkiLCJMT1dfU0VWRVJJVFkiLCJNRURJVU1fU0VWRVJJVFkiLCJISUdIX1NFVkVSSVRZIiwiQ1JJVElDQUxfU0VWRVJJVFkiXSwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsiY2F0ZWdvcmllcyIsImxpZmVjeWNsZVN0YWdlcyIsInBvbGljeU5hbWUiLCJwb2xpY3lTZWN0aW9ucyIsInNldmVyaXR5Il0sInR5cGUiOiJvYmplY3QifSwic3RhdHVzIjp7InByb3BlcnRpZXMiOnsiYWNjZXB0ZWQiOnsiZGVzY3JpcHRpb24iOiJBY2NlcHRlZCBpcyBkZXByZWNhdGVkIGluIGZhdm9yIG9mIGNvbmRpdGlvbnMiLCJ0eXBlIjoiYm9vbGVhbiJ9LCJjb25kaXRpb25zIjp7Iml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiU2VjdXJpdHlQb2xpY3lDb25kaXRpb24gZGVmaW5lcyB0aGUgb2JzZXJ2ZWQgc3RhdGUgb2YgU2VjdXJpdHlQb2xpY3kiLCJwcm9wZXJ0aWVzIjp7Imxhc3RUcmFuc2l0aW9uVGltZSI6eyJmb3JtYXQiOiJkYXRlLXRpbWUiLCJ0eXBlIjoic3RyaW5nIn0sIm1lc3NhZ2UiOnsidHlwZSI6InN0cmluZyJ9LCJzdGF0dXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjp7InR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1lc3NhZ2UiOnsiZGVzY3JpcHRpb24iOiJNZXNzYWdlIGlzIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2YgY29uZGl0aW9ucyIsInR5cGUiOiJzdHJpbmcifSwicG9saWN5SWQiOnsidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9fSwic2VydmVkIjp0cnVlLCJzdG9yYWdlIjp0cnVlLCJzdWJyZXNvdXJjZXMiOnsic3RhdHVzIjp7fX19XX19" + } + }, + { + "type": "olm.bundle.object", + "value": { + "data": "eyJhcGlWZXJzaW9uIjoib3BlcmF0b3JzLmNvcmVvcy5jb20vdjFhbHBoYTEiLCJraW5kIjoiQ2x1c3RlclNlcnZpY2VWZXJzaW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiYWxtLWV4YW1wbGVzIjoiW1xuICB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwicGxhdGZvcm0uc3RhY2tyb3guaW8vdjFhbHBoYTFcIixcbiAgICBcImtpbmRcIjogXCJDZW50cmFsXCIsXG4gICAgXCJtZXRhZGF0YVwiOiB7XG4gICAgICBcIm5hbWVcIjogXCJzdGFja3JveC1jZW50cmFsLXNlcnZpY2VzXCIsXG4gICAgICBcIm5hbWVzcGFjZVwiOiBcInN0YWNrcm94XCJcbiAgICB9LFxuICAgIFwic3BlY1wiOiB7XG4gICAgICBcImNlbnRyYWxcIjoge1xuICAgICAgICBcImV4cG9zdXJlXCI6IHtcbiAgICAgICAgICBcInJvdXRlXCI6IHtcbiAgICAgICAgICAgIFwiZW5hYmxlZFwiOiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9LFxuICB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwicGxhdGZvcm0uc3RhY2tyb3guaW8vdjFhbHBoYTFcIixcbiAgICBcImtpbmRcIjogXCJTZWN1cmVkQ2x1c3RlclwiLFxuICAgIFwibWV0YWRhdGFcIjoge1xuICAgICAgXCJuYW1lXCI6IFwic3RhY2tyb3gtc2VjdXJlZC1jbHVzdGVyLXNlcnZpY2VzXCIsXG4gICAgICBcIm5hbWVzcGFjZVwiOiBcInN0YWNrcm94XCJcbiAgICB9LFxuICAgIFwic3BlY1wiOiB7XG4gICAgICBcImNsdXN0ZXJOYW1lXCI6IFwibXktY2x1c3RlclwiXG4gICAgfVxuICB9XG5dIiwiY2FwYWJpbGl0aWVzIjoiU2VhbWxlc3MgVXBncmFkZXMiLCJjYXRlZ29yaWVzIjoiU2VjdXJpdHkiLCJjb250YWluZXJJbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9hZHZhbmNlZC1jbHVzdGVyLXNlY3VyaXR5L3JoYWNzLXJoZWw4LW9wZXJhdG9yQHNoYTI1NjoyMzI1MTg0MGRjNGEzMzIzY2U0MmFmMjFlMjczMDhhYTdmNGFkZGI2Mjg0ZDE2ZWI1YjUyZDRkNDM0NjQ2OTA0IiwiY3JlYXRlZEF0IjoiMjAyNi0wMS0yM1QxNzo1MTo1MC4wMjUyOTArMDA6MDAiLCJkZXNjcmlwdGlvbiI6IlJlZCBIYXQgQWR2YW5jZWQgQ2x1c3RlciBTZWN1cml0eSAoUkhBQ1MpIG9wZXJhdG9yIHByb3Zpc2lvbnMgdGhlIHNlcnZpY2VzIG5lY2Vzc2FyeSB0byBzZWN1cmUgZWFjaCBvZiB5b3VyIE9wZW5TaGlmdCBhbmQgS3ViZXJuZXRlcyBjbHVzdGVycy4iLCJmZWF0dXJlcy5vcGVyYXRvcnMub3BlbnNoaWZ0LmlvL2NuZiI6ImZhbHNlIiwiZmVhdHVyZXMub3BlcmF0b3JzLm9wZW5zaGlmdC5pby9jbmkiOiJmYWxzZSIsImZlYXR1cmVzLm9wZXJhdG9ycy5vcGVuc2hpZnQuaW8vY3NpIjoiZmFsc2UiLCJmZWF0dXJlcy5vcGVyYXRvcnMub3BlbnNoaWZ0LmlvL2Rpc2Nvbm5lY3RlZCI6InRydWUiLCJmZWF0dXJlcy5vcGVyYXRvcnMub3BlbnNoaWZ0LmlvL2ZpcHMtY29tcGxpYW50IjoidHJ1ZSIsImZlYXR1cmVzLm9wZXJhdG9ycy5vcGVuc2hpZnQuaW8vcHJveHktYXdhcmUiOiJ0cnVlIiwiZmVhdHVyZXMub3BlcmF0b3JzLm9wZW5zaGlmdC5pby90bHMtcHJvZmlsZXMiOiJmYWxzZSIsImZlYXR1cmVzLm9wZXJhdG9ycy5vcGVuc2hpZnQuaW8vdG9rZW4tYXV0aC1hd3MiOiJmYWxzZSIsImZlYXR1cmVzLm9wZXJhdG9ycy5vcGVuc2hpZnQuaW8vdG9rZW4tYXV0aC1henVyZSI6ImZhbHNlIiwiZmVhdHVyZXMub3BlcmF0b3JzLm9wZW5zaGlmdC5pby90b2tlbi1hdXRoLWdjcCI6ImZhbHNlIiwib2xtLnNraXBSYW5nZSI6Ilx1MDAzZT0gNC43LjAgXHUwMDNjIDQuOC44LXJjLjQiLCJvcGVyYXRvcmZyYW1ld29yay5pby9zdWdnZXN0ZWQtbmFtZXNwYWNlIjoicmhhY3Mtb3BlcmF0b3IiLCJvcGVyYXRvcnMub3BlbnNoaWZ0LmlvL2luZnJhc3RydWN0dXJlLWZlYXR1cmVzIjoiW1wiZGlzY29ubmVjdGVkXCIsIFwicHJveHktYXdhcmVcIl0iLCJvcGVyYXRvcnMub3BlbnNoaWZ0LmlvL3ZhbGlkLXN1YnNjcmlwdGlvbiI6IltcIk9wZW5TaGlmdCBQbGF0Zm9ybSBQbHVzXCIsIFwiUmVkIEhhdCBBZHZhbmNlZCBDbHVzdGVyIFNlY3VyaXR5XCJdIiwib3BlcmF0b3JzLm9wZXJhdG9yZnJhbWV3b3JrLmlvL2J1aWxkZXIiOiJvcGVyYXRvci1zZGstdW5rbm93biIsIm9wZXJhdG9ycy5vcGVyYXRvcmZyYW1ld29yay5pby9wcm9qZWN0X2xheW91dCI6ImdvLmt1YmVidWlsZGVyLmlvL3Y0Iiwic3VwcG9ydCI6IlJlZCBIYXQifSwibGFiZWxzIjp7Im9wZXJhdG9yZnJhbWV3b3JrLmlvL2FyY2guYW1kNjQiOiJzdXBwb3J0ZWQiLCJvcGVyYXRvcmZyYW1ld29yay5pby9hcmNoLmFybTY0Ijoic3VwcG9ydGVkIiwib3BlcmF0b3JmcmFtZXdvcmsuaW8vYXJjaC5wcGM2NGxlIjoic3VwcG9ydGVkIiwib3BlcmF0b3JmcmFtZXdvcmsuaW8vYXJjaC5zMzkweCI6InN1cHBvcnRlZCJ9LCJuYW1lIjoicmhhY3Mtb3BlcmF0b3IudjQuOC44LXJjLjQiLCJuYW1lc3BhY2UiOiJwbGFjZWhvbGRlciJ9LCJzcGVjIjp7ImFwaXNlcnZpY2VkZWZpbml0aW9ucyI6e30sImN1c3RvbXJlc291cmNlZGVmaW5pdGlvbnMiOnsib3duZWQiOlt7ImRlc2NyaXB0aW9uIjoiQ2VudHJhbCBpcyB0aGUgY29uZmlndXJhdGlvbiB0ZW1wbGF0ZSBmb3IgdGhlIGNlbnRyYWwgc2VydmljZXMuIFRoaXMgaW5jbHVkZXMgdGhlIEFQSSBzZXJ2ZXIsIHBlcnNpc3RlbnQgc3RvcmFnZSxcbmFuZCB0aGUgd2ViIFVJLCBhcyB3ZWxsIGFzIHRoZSBpbWFnZSBzY2FubmVyLiIsImRpc3BsYXlOYW1lIjoiQ2VudHJhbCIsImtpbmQiOiJDZW50cmFsIiwibmFtZSI6ImNlbnRyYWxzLnBsYXRmb3JtLnN0YWNrcm94LmlvIiwicmVzb3VyY2VzIjpbeyJraW5kIjoiRGVwbG95bWVudCIsIm5hbWUiOiIiLCJ2ZXJzaW9uIjoidjEifSx7ImtpbmQiOiJSb3V0ZSIsIm5hbWUiOiIiLCJ2ZXJzaW9uIjoidjEifSx7ImtpbmQiOiJTZWNyZXQiLCJuYW1lIjoiIiwidmVyc2lvbiI6InYxIn0seyJraW5kIjoiU2VydmljZSIsIm5hbWUiOiIiLCJ2ZXJzaW9uIjoidjEifV0sInNwZWNEZXNjcmlwdG9ycyI6W3siZGVzY3JpcHRpb24iOiJTZXR0aW5ncyBmb3IgdGhlIENlbnRyYWwgY29tcG9uZW50LCB3aGljaCBpcyByZXNwb25zaWJsZSBmb3IgYWxsIHVzZXIgaW50ZXJhY3Rpb24uIiwiZGlzcGxheU5hbWUiOiJDZW50cmFsIENvbXBvbmVudCBTZXR0aW5ncyIsInBhdGgiOiJjZW50cmFsIn0seyJkZXNjcmlwdGlvbiI6IlNldHRpbmdzIGZvciB0aGUgU2Nhbm5lciBjb21wb25lbnQsIHdoaWNoIGlzIHJlc3BvbnNpYmxlIGZvciB2dWxuZXJhYmlsaXR5IHNjYW5uaW5nIG9mIGNvbnRhaW5lclxuaW1hZ2VzLiIsImRpc3BsYXlOYW1lIjoiU2Nhbm5lciBDb21wb25lbnQgU2V0dGluZ3MiLCJwYXRoIjoic2Nhbm5lciJ9LHsiZGVzY3JpcHRpb24iOiJTZXR0aW5ncyBmb3IgdGhlIFNjYW5uZXIgVjQgY29tcG9uZW50LCB3aGljaCBjYW4gcnVuIGluIGFkZGl0aW9uIHRvIHRoZSBwcmV2aW91c2x5IGV4aXN0aW5nIFNjYW5uZXIgY29tcG9uZW50cyIsImRpc3BsYXlOYW1lIjoiU2Nhbm5lciBWNCBDb21wb25lbnQgU2V0dGluZ3MiLCJwYXRoIjoic2Nhbm5lclY0In0seyJkZXNjcmlwdGlvbiI6IlNldHRpbmdzIHJlbGF0ZWQgdG8gb3V0Z29pbmcgbmV0d29yayB0cmFmZmljLiIsImRpc3BsYXlOYW1lIjoiRWdyZXNzIiwicGF0aCI6ImVncmVzcyJ9LHsiZGVzY3JpcHRpb24iOiJBbGxvd3MgeW91IHRvIHNwZWNpZnkgYWRkaXRpb25hbCB0cnVzdGVkIFJvb3QgQ0FzLiIsImRpc3BsYXlOYW1lIjoiVExTIiwicGF0aCI6InRscyJ9LHsiZGVzY3JpcHRpb24iOiJBZGRpdGlvbmFsIGltYWdlIHB1bGwgc2VjcmV0cyB0byBiZSB0YWtlbiBpbnRvIGFjY291bnQgZm9yIHB1bGxpbmcgaW1hZ2VzLiIsImRpc3BsYXlOYW1lIjoiSW1hZ2UgUHVsbCBTZWNyZXRzIiwicGF0aCI6ImltYWdlUHVsbFNlY3JldHMiLCJ4LWRlc2NyaXB0b3JzIjpbInVybjphbG06ZGVzY3JpcHRvcjpjb20udGVjdG9uaWMudWk6YWR2YW5jZWQiXX0seyJkZXNjcmlwdGlvbiI6IkN1c3RvbWl6YXRpb25zIHRvIGFwcGx5IG9uIGFsbCBDZW50cmFsIFNlcnZpY2VzIGNvbXBvbmVudHMuIiwiZGlzcGxheU5hbWUiOiJDdXN0b21pemF0aW9ucyIsInBhdGgiOiJjdXN0b21pemUiLCJ4LWRlc2NyaXB0b3JzIjpbInVybjphbG06ZGVzY3JpcHRvcjpjb20udGVjdG9uaWMudWk6YWR2YW5jZWQiXX0seyJkZXNjcmlwdGlvbiI6Ik92ZXJsYXlzIiwiZGlzcGxheU5hbWUiOiJPdmVybGF5cyIsInBhdGgiOiJvdmVybGF5cyIsIngtZGVzY3JpcHRvcnMiOlsidXJuOmFsbTpkZXNjcmlwdG9yOmNvbS50ZWN0b25pYy51aTpoaWRkZW4iXX0seyJkZXNjcmlwdGlvbiI6Ik1vbml0b3JpbmcgY29uZmlndXJhdGlvbi4iLCJkaXNwbGF5TmFtZSI6Ik1vbml0b3JpbmciLCJwYXRoIjoibW9uaXRvcmluZyIsIngtZGVzY3JpcHRvcnMiOlsidXJuOmFsbTpkZXNjcmlwdG9yOmNvbS50ZWN0b25pYy51aTphZHZhbmNlZCJdfSx7ImRlc2NyaXB0aW9uIjoiTmV0d29yayBjb25maWd1cmF0aW9uLiIsImRpc3BsYXlOYW1lIjoiTmV0d29yayIsInBhdGgiOiJuZXR3b3JrIiwieC1kZXNjcmlwdG9ycyI6WyJ1cm46YWxtOmRlc2NyaXB0b3I6Y29tLnRlY3RvbmljLnVpOmFkdmFuY2VkIl19LHsiZGVzY3JpcHRpb24iOiJDb25maWctYXMtQ29kZSBjb25maWd1cmF0aW9uLiIsImRpc3BsYXlOYW1lIjoiQ29uZmlnLWFzLUNvZGUiLCJwYXRoIjoiY29uZmlnQXNDb2RlIiwieC1kZXNjcmlwdG9ycyI6WyJ1cm46YWxtOmRlc2NyaXB0b3I6Y29tLnRlY3RvbmljLnVpOmFkdmFuY2VkIl19LHsiZGVzY3JpcHRpb24iOiJEZXByZWNhdGVkIGZpZWxkLiBUaGlzIGZpZWxkIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLlxuTWlzY2VsbGFuZW91cyBzZXR0aW5ncy4iLCJkaXNwbGF5TmFtZSI6Ik1pc2NlbGxhbmVvdXMiLCJwYXRoIjoibWlzYyIsIngtZGVzY3JpcHRvcnMiOlsidXJuOmFsbTpkZXNjcmlwdG9yOmNvbS50ZWN0b25pYy51aTpoaWRkZW4iXX0seyJkZXNjcmlwdGlvbiI6IlNwZWNpZnkgYSBzZWNyZXQgdGhhdCBjb250YWlucyB0aGUgYWRtaW5pc3RyYXRvciBwYXNzd29yZCBpbiB0aGUgXCJwYXNzd29yZFwiIGRhdGEgaXRlbS5cbklmIG9taXR0ZWQsIHRoZSBvcGVyYXRvciB3aWxsIGF1dG8tZ2VuZXJhdGUgYSBwYXNzd29yZCBhbmQgc3RvcmUgaXQgaW4gdGhlIFwicGFzc3dvcmRcIiBpdGVtXG5pbiB0aGUgXCJjZW50cmFsLWh0cGFzc3dkXCIgc2VjcmV0LiIsImRpc3BsYXlOYW1lIjoiQWRtaW5pc3RyYXRvciBQYXNzd29yZCIsInBhdGgiOiJjZW50cmFsLmFkbWluUGFzc3dvcmRTZWNyZXQifSx7ImRlc2NyaXB0aW9uIjoiSGVyZSB5b3UgY2FuIGNvbmZpZ3VyZSBpZiB5b3Ugd2FudCB0byBleHBvc2UgY2VudHJhbCB0aHJvdWdoIGEgbm9kZSBwb3J0LCBhIGxvYWQgYmFsYW5jZXIsIG9yIGFuIE9wZW5TaGlmdFxucm91dGUuIiwiZGlzcGxheU5hbWUiOiJFeHBvc3VyZSIsInBhdGgiOiJjZW50cmFsLmV4cG9zdXJlIn0seyJkZXNjcmlwdGlvbiI6IkJ5IGRlZmF1bHQsIENlbnRyYWwgd2lsbCBvbmx5IHNlcnZlIGFuIGludGVybmFsIFRMUyBjZXJ0aWZpY2F0ZSwgd2hpY2ggbWVhbnMgdGhhdCB5b3Ugd2lsbFxubmVlZCB0byBoYW5kbGUgVExTIHRlcm1pbmF0aW9uIGF0IHRoZSBpbmdyZXNzIG9yIGxvYWQgYmFsYW5jZXIgbGV2ZWwuXG5JZiB5b3Ugd2FudCB0byB0ZXJtaW5hdGUgVExTIGluIENlbnRyYWwgYW5kIHNlcnZlIGEgY3VzdG9tIHNlcnZlciBjZXJ0aWZpY2F0ZSwgeW91IGNhbiBzcGVjaWZ5XG5hIHNlY3JldCBjb250YWluaW5nIHRoZSBjZXJ0aWZpY2F0ZSBhbmQgcHJpdmF0ZSBrZXkgaGVyZS4iLCJkaXNwbGF5TmFtZSI6IlVzZXItZmFjaW5nIFRMUyBjZXJ0aWZpY2F0ZSBzZWNyZXQiLCJwYXRoIjoiY2VudHJhbC5kZWZhdWx0VExTU2VjcmV0In0seyJkZXNjcmlwdGlvbiI6IkNvbmZpZ3VyZXMgbW9uaXRvcmluZyBlbmRwb2ludCBmb3IgQ2VudHJhbC4gVGhlIG1vbml0b3JpbmcgZW5kcG9pbnRcbmFsbG93cyBvdGhlciBzZXJ2aWNlcyB0byBjb2xsZWN0IG1ldHJpY3MgZnJvbSBDZW50cmFsLCBwcm92aWRlZCBpblxuUHJvbWV0aGV1cyBjb21wYXRpYmxlIGZvcm1hdC4iLCJkaXNwbGF5TmFtZSI6Ik1vbml0b3JpbmciLCJwYXRoIjoiY2VudHJhbC5tb25pdG9yaW5nIn0seyJkZXNjcmlwdGlvbiI6IlNldHRpbmdzIGZvciBDZW50cmFsIERCLCB3aGljaCBpcyByZXNwb25zaWJsZSBmb3IgZGF0YSBwZXJzaXN0ZW5jZS4iLCJkaXNwbGF5TmFtZSI6IkNlbnRyYWwgREIgU2V0dGluZ3MiLCJwYXRoIjoiY2VudHJhbC5kYiJ9LHsiZGVzY3JpcHRpb24iOiJDb25maWd1cmVzIHRlbGVtZXRyeSBzZXR0aW5ncyBmb3IgQ2VudHJhbC4gSWYgZW5hYmxlZCwgQ2VudHJhbCB0cmFuc21pdHMgdGVsZW1ldHJ5IGFuZCBkaWFnbm9zdGljXG5kYXRhIHRvIGEgcmVtb3RlIHN0b3JhZ2UgYmFja2VuZC4iLCJkaXNwbGF5TmFtZSI6IlRlbGVtZXRyeSIsInBhdGgiOiJjZW50cmFsLnRlbGVtZXRyeSIsIngtZGVzY3JpcHRvcnMiOlsidXJuOmFsbTpkZXNjcmlwdG9yOmNvbS50ZWN0b25pYy51aTpoaWRkZW4iXX0seyJkZXNjcmlwdGlvbiI6IkNvbmZpZ3VyZXMgcmVzb3VyY2VzIHdpdGhpbiBDZW50cmFsIGluIGEgZGVjbGFyYXRpdmUgbWFubmVyLiIsImRpc3BsYXlOYW1lIjoiRGVjbGFyYXRpdmUgQ29uZmlndXJhdGlvbiIsInBhdGgiOiJjZW50cmFsLmRlY2xhcmF0aXZlQ29uZmlndXJhdGlvbiIsIngtZGVzY3JpcHRvcnMiOlsidXJuOmFsbTpkZXNjcmlwdG9yOmNvbS50ZWN0b25pYy51aTpoaWRkZW4iXX0seyJkZXNjcmlwdGlvbiI6IkNvbmZpZ3VyZXMgdGhlIGVuY3J5cHRpb24gb2Ygbm90aWZpZXIgc2VjcmV0cyBzdG9yZWQgaW4gdGhlIENlbnRyYWwgREIuIiwiZGlzcGxheU5hbWUiOiJOb3RpZmllciBTZWNyZXRzIEVuY3J5cHRpb24iLCJwYXRoIjoiY2VudHJhbC5ub3RpZmllclNlY3JldHNFbmNyeXB0aW9uIiwieC1kZXNjcmlwdG9ycyI6WyJ1cm46YWxtOmRlc2NyaXB0b3I6Y29tLnRlY3RvbmljLnVpOmhpZGRlbiJdfSx7ImRlc2NyaXB0aW9uIjoiQWxsb3dzIG92ZXJyaWRpbmcgdGhlIGRlZmF1bHQgcmVzb3VyY2Ugc2V0dGluZ3MgZm9yIHRoaXMgY29tcG9uZW50LiBQbGVhc2UgY29uc3VsdCB0aGUgZG9jdW1lbnRhdGlvblxuZm9yIGFuIG92ZXJ2aWV3IG9mIGRlZmF1bHQgcmVzb3VyY2UgcmVxdWlyZW1lbnRzIGFuZCBhIHNpemluZyBndWlkZS4iLCJkaXNwbGF5TmFtZSI6IlJlc291cmNlcyIsInBhdGgiOiJjZW50cmFsLnJlc291cmNlcyIsIngtZGVzY3JpcHRvcnMiOlsidXJuOmFsbTpkZXNjcmlwdG9yOmNvbS50ZWN0b25pYy51aTpyZXNvdXJjZVJlcXVpcmVtZW50cyJdfSx7ImRlc2NyaXB0aW9uIjoiSWYgeW91IHdhbnQgdGhpcyBjb21wb25lbnQgdG8gb25seSBydW4gb24gc3BlY2lmaWMgbm9kZXMsIHlvdSBjYW4gY29uZmlndXJlIGEgbm9kZSBzZWxlY3RvciBoZXJlLiIsImRpc3BsYXlOYW1lIjoiTm9kZSBTZWxlY3RvciIsInBhdGgiOiJjZW50cmFsLm5vZGVTZWxlY3RvciJ9LHsiZGVzY3JpcHRpb24iOiJJZiB5b3Ugd2FudCB0aGlzIGNvbXBvbmVudCB0byBvbmx5IHJ1biBvbiBzcGVjaWZpYyBub2RlcywgeW91IGNhbiBjb25maWd1cmUgdG9sZXJhdGlvbnMgb2YgdGFpbnRlZCBub2Rlcy4iLCJkaXNwbGF5TmFtZSI6IlRvbGVyYXRpb25zIiwicGF0aCI6ImNlbnRyYWwudG9sZXJhdGlvbnMiLCJ4LWRlc2NyaXB0b3JzIjpbInVybjphbG06ZGVzY3JpcHRvcjpjb20udGVjdG9uaWMudWk6dG9sZXJhdGlvbnMiXX0seyJkZXNjcmlwdGlvbiI6Ikhvc3RBbGlhc2VzIGFsbG93cyBjb25maWd1cmluZyBhZGRpdGlvbmFsIGhvc3RuYW1lcyB0byByZXNvbHZlIGluIHRoZSBwb2QncyBob3N0cyBmaWxlLiIsImRpc3BsYXlOYW1lIjoiSG9zdCBBbGlhc2VzIiwicGF0aCI6ImNlbnRyYWwuaG9zdEFsaWFzZXMifSx7ImRlc2NyaXB0aW9uIjoiRGlzYWJsZSBhZG1pbiBwYXNzd29yZCBnZW5lcmF0aW9uLiBEbyBub3QgdXNlIHRoaXMgZm9yIGZpcnN0LXRpbWUgaW5zdGFsbGF0aW9ucyxcbmFzIHlvdSB3aWxsIGhhdmUgbm8gd2F5IHRvIHBlcmZvcm0gaW5pdGlhbCBzZXR1cCBhbmQgY29uZmlndXJhdGlvbiBvZiBhbHRlcm5hdGl2ZSBhdXRoZW50aWNhdGlvbiBtZXRob2RzLiIsImRpc3BsYXlOYW1lIjoiQWRtaW4gUGFzc3dvcmQgR2VuZXJhdGlvbiBEaXNhYmxlZCIsInBhdGgiOiJjZW50cmFsLmFkbWluUGFzc3dvcmRHZW5lcmF0aW9uRGlzYWJsZWQiLCJ4LWRlc2NyaXB0b3JzIjpbInVybjphbG06ZGVzY3JpcHRvcjpjb20udGVjdG9uaWMudWk6aGlkZGVuIl19LHsiZGVzY3JpcHRpb24iOiJVbnVzZWQgZmllbGQuIFRoaXMgZmllbGQgZXhpc3RzIHNvbGVseSBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSBzdGFydGluZyBmcm9tIHZlcnNpb24gdjQuNi4wLiIsImRpc3BsYXlOYW1lIjoiUGVyc2lzdGVuY2UiLCJwYXRoIjoiY2VudHJhbC5wZXJzaXN0ZW5jZSIsIngtZGVzY3JpcHRvcnMiOlsidXJuOmFsbTpkZXNjcmlwdG9yOmNvbS50ZWN0b25pYy51aTpoaWRkZW4iXX0seyJkZXNjcmlwdGlvbiI6IlRoZSBuYW1lIG9mIHRoZSByZWZlcmVuY2VkIHNlY3JldC4iLCJkaXNwbGF5TmFtZSI6Ik5hbWUiLCJwYXRoIjoiY2VudHJhbC5hZG1pblBhc3N3b3JkU2VjcmV0Lm5hbWUiLCJ4LWRlc2NyaXB0b3JzIjpbInVybjphbG06ZGVzY3JpcHRvcjppby5rdWJlcm5ldGVzOlNlY3JldCJdfSx7ImRlc2NyaXB0aW9uIjoiU3BlY2lmeSBhIHNlY3JldCB0aGF0IGNvbnRhaW5zIHRoZSBwYXNzd29yZCBpbiB0aGUgXCJwYXNzd29yZFwiIGRhdGEgaXRlbS4gVGhpcyBjYW4gb25seSBiZSB1c2VkIHdoZW5cbnNwZWNpZnlpbmcgYSBjb25uZWN0aW9uIHN0cmluZyBtYW51YWxseS5cbldoZW4gb21pdHRlZCwgdGhlIG9wZXJhdG9yIHdpbGwgYXV0by1nZW5lcmF0ZSBhIERCIHBhc3N3b3JkIGFuZCBzdG9yZSBpdCBpbiB0aGUgXCJwYXNzd29yZFwiIGl0ZW1cbmluIHRoZSBcImNlbnRyYWwtZGItcGFzc3dvcmRcIiBzZWNyZXQuIiwiZGlzcGxheU5hbWUiOiJBZG1pbmlzdHJhdG9yIFBhc3N3b3JkIiwicGF0aCI6ImNlbnRyYWwuZGIucGFzc3dvcmRTZWNyZXQifSx7ImRlc2NyaXB0aW9uIjoiU3BlY2lmeSBhIGNvbm5lY3Rpb24gc3RyaW5nIHRoYXQgY29ycmVzcG9uZHMgdG8gYSBkYXRhYmFzZSBtYW5hZ2VkIGVsc2V3aGVyZS4gSWYgc2V0LCB0aGUgb3BlcmF0b3Igd2lsbCBub3QgbWFuYWdlIHRoZSBDZW50cmFsIERCLlxuV2hlbiB1c2luZyB0aGlzIG9wdGlvbiwgeW91IG11c3QgZXhwbGljaXRseSBzZXQgYSBwYXNzd29yZCBzZWNyZXQ7IGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGluZyBhIHBhc3N3b3JkIHdpbGwgbm90XG5iZSBzdXBwb3J0ZWQuIiwiZGlzcGxheU5hbWUiOiJDb25uZWN0aW9uIFN0cmluZyIsInBhdGgiOiJjZW50cmFsLmRiLmNvbm5lY3Rpb25TdHJpbmcifSx7ImRlc2NyaXB0aW9uIjoiQ29uZmlndXJlcyBob3cgQ2VudHJhbCBEQiBzaG91bGQgc3RvcmUgaXRzIHBlcnNpc3RlbnQgZGF0YS4gWW91IGNhbiBjaG9vc2UgYmV0d2VlbiB1c2luZyBhIHBlcnNpc3RlbnRcbnZvbHVtZSBjbGFpbSAocmVjb21tZW5kZWQgZGVmYXVsdCksIGFuZCBhIGhvc3QgcGF0aC4iLCJkaXNwbGF5TmFtZSI6IlBlcnNpc3RlbmNlIiwicGF0aCI6ImNlbnRyYWwuZGIucGVyc2lzdGVuY2UifSx7ImRlc2NyaXB0aW9uIjoiQ29uZmlnIG1hcCBjb250YWluaW5nIHBvc3RncmVzcWwuY29uZiBhbmQgcGdfaGJhLmNvbmYgdGhhdCB3aWxsIGJlIHVzZWQgaWYgbW9kaWZpY2F0aW9ucyBuZWVkIHRvIGJlIGFwcGxpZWQuIiwiZGlzcGxheU5hbWUiOiJDb25maWcgbWFwIHRoYXQgd2lsbCBvdmVycmlkZSBwb3N0Z3Jlc3FsLmNvbmYgYW5kIHBnX2hiYS5jb25mIiwicGF0aCI6ImNlbnRyYWwuZGIuY29uZmlnT3ZlcnJpZGUifSx7ImRlc2NyaXB0aW9uIjoiQ29uZmlndXJlcyB0aGUgZGF0YWJhc2UgY29ubmVjdGlvbiBwb29sIHNpemUuIiwiZGlzcGxheU5hbWUiOiJEYXRhYmFzZSBDb25uZWN0aW9uIFBvb2wgU2l6ZSBTZXR0aW5ncyIsInBhdGgiOiJjZW50cmFsLmRiLmNvbm5lY3Rpb25Qb29sU2l6ZSJ9LHsiZGVzY3JpcHRpb24iOiJBbGxvd3Mgb3ZlcnJpZGluZyB0aGUgZGVmYXVsdCByZXNvdXJjZSBzZXR0aW5ncyBmb3IgdGhpcyBjb21wb25lbnQuIFBsZWFzZSBjb25zdWx0IHRoZSBkb2N1bWVudGF0aW9uXG5mb3IgYW4gb3ZlcnZpZXcgb2YgZGVmYXVsdCByZXNvdXJjZSByZXF1aXJlbWVudHMgYW5kIGEgc2l6aW5nIGd1aWRlLiIsImRpc3BsYXlOYW1lIjoiUmVzb3VyY2VzIiwicGF0aCI6ImNlbnRyYWwuZGIucmVzb3VyY2VzIiwieC1kZXNjcmlwdG9ycyI6WyJ1cm46YWxtOmRlc2NyaXB0b3I6Y29tLnRlY3RvbmljLnVpOnJlc291cmNlUmVxdWlyZW1lbnRzIl19LHsiZGVzY3JpcHRpb24iOiJJZiB5b3Ugd2FudCB0aGlzIGNvbXBvbmVudCB0byBvbmx5IHJ1biBvbiBzcGVjaWZpYyBub2RlcywgeW91IGNhbiBjb25maWd1cmUgYSBub2RlIHNlbGVjdG9yIGhlcmUuIiwiZGlzcGxheU5hbWUiOiJOb2RlIFNlbGVjdG9yIiwicGF0aCI6ImNlbnRyYWwuZGIubm9kZVNlbGVjdG9yIn0seyJkZXNjcmlwdGlvbiI6IklmIHlvdSB3YW50IHRoaXMgY29tcG9uZW50IHRvIG9ubHkgcnVuIG9uIHNwZWNpZmljIG5vZGVzLCB5b3UgY2FuIGNvbmZpZ3VyZSB0b2xlcmF0aW9ucyBvZiB0YWludGVkIG5vZGVzLiIsImRpc3BsYXlOYW1lIjoiVG9sZXJhdGlvbnMiLCJwYXRoIjoiY2VudHJhbC5kYi50b2xlcmF0aW9ucyIsIngtZGVzY3JpcHRvcnMiOlsidXJuOmFsbTpkZXNjcmlwdG9yOmNvbS50ZWN0b25pYy51aTp0b2xlcmF0aW9ucyJdfSx7ImRlc2NyaXB0aW9uIjoiSG9zdEFsaWFzZXMgYWxsb3dzIGNvbmZpZ3VyaW5nIGFkZGl0aW9uYWwgaG9zdG5hbWVzIHRvIHJlc29sdmUgaW4gdGhlIHBvZCdzIGhvc3RzIGZpbGUuIiwiZGlzcGxheU5hbWUiOiJIb3N0IEFsaWFzZXMiLCJwYXRoIjoiY2VudHJhbC5kYi5ob3N0QWxpYXNlcyJ9LHsiZGVzY3JpcHRpb24iOiJEZXByZWNhdGVkIGZpZWxkLiBJdCBpcyBubyBsb25nZXIgbmVjZXNzYXJ5IHRvIHNwZWNpZnkgaXQuXG5UaGlzIGZpZWxkIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLlxuQ2VudHJhbCBpcyBjb25maWd1cmVkIHRvIHVzZSBQb3N0Z3JlU1FMIGJ5IGRlZmF1bHQuIiwiZGlzcGxheU5hbWUiOiJJcyBFbmFibGVkIiwicGF0aCI6ImNlbnRyYWwuZGIuaXNFbmFibGVkIiwieC1kZXNjcmlwdG9ycyI6WyJ1cm46YWxtOmRlc2NyaXB0b3I6Y29tLnRlY3RvbmljLnVpOmhpZGRlbiJdfSx7ImRlc2NyaXB0aW9uIjoiVGhlIG5hbWUgb2YgdGhlIHJlZmVyZW5jZWQgY29uZmlnIG1hcC4iLCJkaXNwbGF5TmFtZSI6Ik5hbWUiLCJwYXRoIjoiY2VudHJhbC5kYi5jb25maWdPdmVycmlkZS5uYW1lIiwieC1kZXNjcmlwdG9ycyI6WyJ1cm46YWxtOmRlc2NyaXB0b3I6aW8ua3ViZXJuZXRlczpDb25maWdNYXAiXX0seyJkZXNjcmlwdGlvbiI6Ik1heGltdW0gbnVtYmVyIG9mIGNvbm5lY3Rpb25zIGluIHRoZSBjb25uZWN0aW9uIHBvb2wuIiwiZGlzcGxheU5hbWUiOiJNYXhpbXVtIENvbm5lY3Rpb25zIiwicGF0aCI6ImNlbnRyYWwuZGIuY29ubmVjdGlvblBvb2xTaXplLm1heENvbm5lY3Rpb25zIn0seyJkZXNjcmlwdGlvbiI6Ik1pbmltdW0gbnVtYmVyIG9mIGNvbm5lY3Rpb25zIGluIHRoZSBjb25uZWN0aW9uIHBvb2wuIiwiZGlzcGxheU5hbWUiOiJNaW5pbXVtIENvbm5lY3Rpb25zIiwicGF0aCI6ImNlbnRyYWwuZGIuY29ubmVjdGlvblBvb2xTaXplLm1pbkNvbm5lY3Rpb25zIn0seyJkZXNjcmlwdGlvbiI6IlRoZSBuYW1lIG9mIHRoZSByZWZlcmVuY2VkIHNlY3JldC4iLCJkaXNwbGF5TmFtZSI6Ik5hbWUiLCJwYXRoIjoiY2VudHJhbC5kYi5wYXNzd29yZFNlY3JldC5uYW1lIiwieC1kZXNjcmlwdG9ycyI6WyJ1cm46YWxtOmRlc2NyaXB0b3I6aW8ua3ViZXJuZXRlczpTZWNyZXQiXX0seyJkZXNjcmlwdGlvbiI6IlVzZXMgYSBLdWJlcm5ldGVzIHBlcnNpc3RlbnQgdm9sdW1lIGNsYWltIChQVkMpIHRvIG1hbmFnZSB0aGUgc3RvcmFnZSBsb2NhdGlvbiBvZiBwZXJzaXN0ZW50IGRhdGEuXG5SZWNvbW1lbmRlZCBmb3IgbW9zdCB1c2Vycy4iLCJkaXNwbGF5TmFtZSI6IlBlcnNpc3RlbnQgdm9sdW1lIGNsYWltIiwicGF0aCI6ImNlbnRyYWwuZGIucGVyc2lzdGVuY2UucGVyc2lzdGVudFZvbHVtZUNsYWltIn0seyJkZXNjcmlwdGlvbiI6IlN0b3JlcyBwZXJzaXN0ZW50IGRhdGEgb24gYSBkaXJlY3Rvcnkgb24gdGhlIGhvc3QuIFRoaXMgaXMgbm90IHJlY29tbWVuZGVkLCBhbmQgc2hvdWxkIG9ubHlcbmJlIHVzZWQgdG9nZXRoZXIgd2l0aCBhIG5vZGUgc2VsZWN0b3IgKG9ubHkgYXZhaWxhYmxlIGluIFlBTUwgdmlldykuIiwiZGlzcGxheU5hbWUiOiJIb3N0IHBhdGgiLCJwYXRoIjoiY2VudHJhbC5kYi5wZXJzaXN0ZW5jZS5ob3N0UGF0aCJ9LHsiZGVzY3JpcHRpb24iOiJUaGUgcGF0aCBvbiB0aGUgaG9zdCBydW5uaW5nIENlbnRyYWwuIiwiZGlzcGxheU5hbWUiOiJQYXRoIiwicGF0aCI6ImNlbnRyYWwuZGIucGVyc2lzdGVuY2UuaG9zdFBhdGgucGF0aCJ9LHsiZGVzY3JpcHRpb24iOiJUaGUgbmFtZSBvZiB0aGUgUFZDIHRvIG1hbmFnZSBwZXJzaXN0ZW50IGRhdGEuIElmIG5vIFBWQyB3aXRoIHRoZSBnaXZlbiBuYW1lIGV4aXN0cywgaXQgd2lsbCBiZVxuY3JlYXRlZC4gRGVmYXVsdHMgdG8gXCJjZW50cmFsLWRiXCIgaWYgbm90IHNldC4iLCJkaXNwbGF5TmFtZSI6IkNsYWltIE5hbWUiLCJwYXRoIjoiY2VudHJhbC5kYi5wZXJzaXN0ZW5jZS5wZXJzaXN0ZW50Vm9sdW1lQ2xhaW0uY2xhaW1OYW1lIn0seyJkZXNjcmlwdGlvbiI6IlRoZSBzaXplIG9mIHRoZSBwZXJzaXN0ZW50IHZvbHVtZSB3aGVuIGNyZWF0ZWQgdGhyb3VnaCB0aGUgY2xhaW0uIElmIGEgY2xhaW0gd2FzIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCxcbnRoaXMgY2FuIGJlIHVzZWQgYWZ0ZXIgdGhlIGluaXRpYWwgZGVwbG95bWVudCB0byByZXNpemUgKGdyb3cpIHRoZSB2b2x1bWUgKG9ubHkgc3VwcG9ydGVkIGJ5IHNvbWVcbnN0b3JhZ2UgY2xhc3MgY29udHJvbGxlcnMpLiIsImRpc3BsYXlOYW1lIjoiU2l6ZSIsInBhdGgiOiJjZW50cmFsLmRiLnBlcnNpc3RlbmNlLnBlcnNpc3RlbnRWb2x1bWVDbGFpbS5zaXplIiwieC1kZXNjcmlwdG9ycyI6WyJ1cm46YWxtOmRlc2NyaXB0b3I6Y29tLnRlY3RvbmljLnVpOnRleHQiXX0seyJkZXNjcmlwdGlvbiI6IlRoZSBuYW1lIG9mIHRoZSBzdG9yYWdlIGNsYXNzIHRvIHVzZSBmb3IgdGhlIFBWQy4gSWYgeW91ciBjbHVzdGVyIGlzIG5vdCBjb25maWd1cmVkIHdpdGggYSBkZWZhdWx0IHN0b3JhZ2VcbmNsYXNzLCB5b3UgbXVzdCBzZWxlY3QgYSB2YWx1ZSBoZXJlLiIsImRpc3BsYXlOYW1lIjoiU3RvcmFnZSBDbGFzcyIsInBhdGgiOiJjZW50cmFsLmRiLnBlcnNpc3RlbmNlLnBlcnNpc3RlbnRWb2x1bWVDbGFpbS5zdG9yYWdlQ2xhc3NOYW1lIiwieC1kZXNjcmlwdG9ycyI6WyJ1cm46YWxtOmRlc2NyaXB0b3I6aW8ua3ViZXJuZXRlczpTdG9yYWdlQ2xhc3MiXX0seyJkZXNjcmlwdGlvbiI6Ikxpc3Qgb2YgY29uZmlnIG1hcHMgY29udGFpbmluZyBkZWNsYXJhdGl2ZSBjb25maWd1cmF0aW9uLiIsImRpc3BsYXlOYW1lIjoiQ29uZmlnIG1hcHMgY29udGFpbmluZyBkZWNsYXJhdGl2ZSBjb25maWd1cmF0aW9uIiwicGF0aCI6ImNlbnRyYWwuZGVjbGFyYXRpdmVDb25maWd1cmF0aW9uLmNvbmZpZ01hcHMifSx7ImRlc2NyaXB0aW9uIjoiTGlzdCBvZiBzZWNyZXRzIGNvbnRhaW5pbmcgZGVjbGFyYXRpdmUgY29uZmlndXJhdGlvbi4iLCJkaXNwbGF5TmFtZSI6IlNlY3JldHMgY29udGFpbmluZyBkZWNsYXJhdGl2ZSBjb25maWd1cmF0aW9uIiwicGF0aCI6ImNlbnRyYWwuZGVjbGFyYXRpdmVDb25maWd1cmF0aW9uLnNlY3JldHMifSx7ImRlc2NyaXB0aW9uIjoiVGhlIG5hbWUgb2YgdGhlIHJlZmVyZW5jZWQgY29uZmlnIG1hcC4iLCJkaXNwbGF5TmFtZSI6Ik5hbWUiLCJwYXRoIjoiY2VudHJhbC5kZWNsYXJhdGl2ZUNvbmZpZ3VyYXRpb24uY29uZmlnTWFwc1swXS5uYW1lIiwieC1kZXNjcmlwdG9ycyI6WyJ1cm46YWxtOmRlc2NyaXB0b3I6aW8ua3ViZXJuZXRlczpDb25maWdNYXAiXX0seyJkZXNjcmlwdGlvbiI6IlRoZSBuYW1lIG9mIHRoZSByZWZlcmVuY2VkIHNlY3JldC4iLCJkaXNwbGF5TmFtZSI6Ik5hbWUiLCJwYXRoIjoiY2VudHJhbC5kZWNsYXJhdGl2ZUNvbmZpZ3VyYXRpb24uc2VjcmV0c1swXS5uYW1lIiwieC1kZXNjcmlwdG9ycyI6WyJ1cm46YWxtOmRlc2NyaXB0b3I6aW8ua3ViZXJuZXRlczpTZWNyZXQiXX0seyJkZXNjcmlwdGlvbiI6IlRoZSBuYW1lIG9mIHRoZSByZWZlcmVuY2VkIHNlY3JldC4iLCJkaXNwbGF5TmFtZSI6Ik5hbWUiLCJwYXRoIjoiY2VudHJhbC5kZWZhdWx0VExTU2VjcmV0Lm5hbWUiLCJ4LWRlc2NyaXB0b3JzIjpbInVybjphbG06ZGVzY3JpcHRvcjppby5rdWJlcm5ldGVzOlNlY3JldCJdfSx7ImRlc2NyaXB0aW9uIjoiRXhwb3NlIENlbnRyYWwgdGhyb3VnaCBhbiBPcGVuU2hpZnQgcm91dGUuIiwiZGlzcGxheU5hbWUiOiJSb3V0ZSIsInBhdGgiOiJjZW50cmFsLmV4cG9zdXJlLnJvdXRlIn0seyJkZXNjcmlwdGlvbiI6IkV4cG9zZSBDZW50cmFsIHRocm91Z2ggYSBsb2FkIGJhbGFuY2VyIHNlcnZpY2UuIiwiZGlzcGxheU5hbWUiOiJMb2FkIEJhbGFuY2VyIiwicGF0aCI6ImNlbnRyYWwuZXhwb3N1cmUubG9hZEJhbGFuY2VyIn0seyJkZXNjcmlwdGlvbiI6IkV4cG9zZSBDZW50cmFsIHRocm91Z2ggYSBub2RlIHBvcnQuIiwiZGlzcGxheU5hbWUiOiJOb2RlIFBvcnQiLCJwYXRoIjoiY2VudHJhbC5leHBvc3VyZS5ub2RlUG9ydCJ9LHsiZGlzcGxheU5hbWUiOiJFbmFibGVkIiwicGF0aCI6ImNlbnRyYWwuZXhwb3N1cmUubG9hZEJhbGFuY2VyLmVuYWJsZWQifSx7ImRlc2NyaXB0aW9uIjoiRGVmYXVsdHMgdG8gNDQzIGlmIG5vdCBzZXQuIiwiZGlzcGxheU5hbWUiOiJQb3J0IiwicGF0aCI6ImNlbnRyYWwuZXhwb3N1cmUubG9hZEJhbGFuY2VyLnBvcnQiLCJ4LWRlc2NyaXB0b3JzIjpbInVybjphbG06ZGVzY3JpcHRvcjpjb20udGVjdG9uaWMudWk6ZmllbGREZXBlbmRlbmN5OmNlbnRyYWwuZXhwb3N1cmUubG9hZEJhbGFuY2VyLmVuYWJsZWQ6dHJ1ZSJdfSx7ImRlc2NyaXB0aW9uIjoiSWYgeW91IGhhdmUgYSBzdGF0aWMgSVAgYWRkcmVzcyByZXNlcnZlZCBmb3IgeW91ciBsb2FkIGJhbGFuY2VyLCB5b3UgY2FuIGVudGVyIGl0IGhlcmUuIiwiZGlzcGxheU5hbWUiOiJJUCIsInBhdGgiOiJjZW50cmFsLmV4cG9zdXJlLmxvYWRCYWxhbmNlci5pcCIsIngtZGVzY3JpcHRvcnMiOlsidXJuOmFsbTpkZXNjcmlwdG9yOmNvbS50ZWN0b25pYy51aTpmaWVsZERlcGVuZGVuY3k6Y2VudHJhbC5leHBvc3VyZS5sb2FkQmFsYW5jZXIuZW5hYmxlZDp0cnVlIl19LHsiZGlzcGxheU5hbWUiOiJFbmFibGVkIiwicGF0aCI6ImNlbnRyYWwuZXhwb3N1cmUubm9kZVBvcnQuZW5hYmxlZCJ9LHsiZGVzY3JpcHRpb24iOiJVc2UgdGhpcyB0byBzcGVjaWZ5IGFuIGV4cGxpY2l0IG5vZGUgcG9ydC4gTW9zdCB1c2VycyBzaG91bGQgbGVhdmUgdGhpcyBlbXB0eS4iLCJkaXNwbGF5TmFtZSI6IlBvcnQiLCJwYXRoIjoiY2VudHJhbC5leHBvc3VyZS5ub2RlUG9ydC5wb3J0IiwieC1kZXNjcmlwdG9ycyI6WyJ1cm46YWxtOmRlc2NyaXB0b3I6Y29tLnRlY3RvbmljLnVpOmZpZWxkRGVwZW5kZW5jeTpjZW50cmFsLmV4cG9zdXJlLm5vZGVQb3J0LmVuYWJsZWQ6dHJ1ZSJdfSx7ImRlc2NyaXB0aW9uIjoiRXhwb3NlIENlbnRyYWwgd2l0aCBhIHBhc3N0aHJvdWdoIHJvdXRlLiIsImRpc3BsYXlOYW1lIjoiRW5hYmxlZCIsInBhdGgiOiJjZW50cmFsLmV4cG9zdXJlLnJvdXRlLmVuYWJsZWQifSx7ImRlc2NyaXB0aW9uIjoiU3BlY2lmeSBhIGN1c3RvbSBob3N0bmFtZSBmb3IgdGhlIENlbnRyYWwgcm91dGUuXG5JZiB1bnNwZWNpZmllZCwgYW4gYXBwcm9wcmlhdGUgZGVmYXVsdCB2YWx1ZSB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgY2hvc2VuIGJ5IHRoZSBPcGVuU2hpZnQgcm91dGUgb3BlcmF0b3IuIiwiZGlzcGxheU5hbWUiOiJIb3N0IiwicGF0aCI6ImNlbnRyYWwuZXhwb3N1cmUucm91dGUuaG9zdCJ9LHsiZGVzY3JpcHRpb24iOiJTZXQgdXAgYSBDZW50cmFsIHJvdXRlIHdpdGggcmVlbmNyeXB0IFRMUyB0ZXJtaW5hdGlvbi5cbkZvciByZWVuY3J5cHQgcm91dGVzLCB0aGUgcmVxdWVzdCBpcyB0ZXJtaW5hdGVkIG9uIHRoZSBPcGVuU2hpZnQgcm91dGVyIHdpdGggYSBjdXN0b20gY2VydGlmaWNhdGUuXG5UaGUgcmVxdWVzdCBpcyB0aGVuIHJlZW5jcnlwdGVkIGJ5IHRoZSBPcGVuU2hpZnQgcm91dGVyIGFuZCBzZW50IHRvIENlbnRyYWwuXG5bdXNlcl0gLS1UTFMtLVx1MDAzZSBbT3BlblNoaWZ0IHJvdXRlcl0gLS1UTFMtLVx1MDAzZSBbQ2VudHJhbF0iLCJkaXNwbGF5TmFtZSI6IlJlLUVuY3J5cHQgUm91dGUiLCJwYXRoIjoiY2VudHJhbC5leHBvc3VyZS5yb3V0ZS5yZWVuY3J5cHQifSx7ImRlc2NyaXB0aW9uIjoiRXhwb3NlIENlbnRyYWwgd2l0aCBhIHJlZW5jcnlwdCByb3V0ZS5cblNob3VsZCBub3QgYmUgdXNlZCBmb3Igc2Vuc29yIGNvbW11bmljYXRpb24uIiwiZGlzcGxheU5hbWUiOiJFbmFibGVkIiwicGF0aCI6ImNlbnRyYWwuZXhwb3N1cmUucm91dGUucmVlbmNyeXB0LmVuYWJsZWQifSx7ImRlc2NyaXB0aW9uIjoiU3BlY2lmeSBhIGN1c3RvbSBob3N0bmFtZSBmb3IgdGhlIENlbnRyYWwgcmVlbmNyeXB0IHJvdXRlLlxuSWYgdW5zcGVjaWZpZWQsIGFuIGFwcHJvcHJpYXRlIGRlZmF1bHQgdmFsdWUgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGNob3NlbiBieSB0aGUgT3BlblNoaWZ0IHJvdXRlIG9wZXJhdG9yLiIsImRpc3BsYXlOYW1lIjoiSG9zdCIsInBhdGgiOiJjZW50cmFsLmV4cG9zdXJlLnJvdXRlLnJlZW5jcnlwdC5ob3N0In0seyJkZXNjcmlwdGlvbiI6IlRMUyBzZXR0aW5ncyBmb3IgZXhwb3NpbmcgQ2VudHJhbCB2aWEgYSByZWVuY3J5cHQgUm91dGUuIiwiZGlzcGxheU5hbWUiOiJUTFMgU2V0dGluZ3MiLCJwYXRoIjoiY2VudHJhbC5leHBvc3VyZS5yb3V0ZS5yZWVuY3J5cHQudGxzIn0seyJkZXNjcmlwdGlvbiI6IlRoZSBQRU0gZW5jb2RlZCBjZXJ0aWZpY2F0ZSBjaGFpbiB0aGF0IG1heSBiZSB1c2VkIHRvIGVzdGFibGlzaCBhIGNvbXBsZXRlIGNoYWluIG9mIHRydXN0LlxuRGVmYXVsdHMgdG8gdGhlIE9wZW5TaGlmdCBjZXJ0aWZpY2F0ZSBhdXRob3JpdHkuIiwiZGlzcGxheU5hbWUiOiJDQSBDZXJ0aWZpY2F0ZSIsInBhdGgiOiJjZW50cmFsLmV4cG9zdXJlLnJvdXRlLnJlZW5jcnlwdC50bHMuY2FDZXJ0aWZpY2F0ZSJ9LHsiZGVzY3JpcHRpb24iOiJUaGUgUEVNIGVuY29kZWQgY2VydGlmaWNhdGUgdGhhdCBpcyBzZXJ2ZWQgb24gdGhlIHJvdXRlLiBNdXN0IGJlIGEgc2luZ2xlIHNlcnZpbmdcbmNlcnRpZmljYXRlIGluc3RlYWQgb2YgYSBjZXJ0aWZpY2F0ZSBjaGFpbi5cbkRlZmF1bHRzIHRvIGEgY2VydGlmaWNhdGUgc2lnbmVkIGJ5IHRoZSBPcGVuU2hpZnQgY2VydGlmaWNhdGUgYXV0aG9yaXR5LiIsImRpc3BsYXlOYW1lIjoiQ2VydGlmaWNhdGUiLCJwYXRoIjoiY2VudHJhbC5leHBvc3VyZS5yb3V0ZS5yZWVuY3J5cHQudGxzLmNlcnRpZmljYXRlIn0seyJkZXNjcmlwdGlvbiI6IlRoZSBDQSBjZXJ0aWZpY2F0ZSBvZiB0aGUgZmluYWwgZGVzdGluYXRpb24sIGkuZS4gb2YgQ2VudHJhbC5cblVzZWQgYnkgdGhlIE9wZW5TaGlmdCByb3V0ZXIgZm9yIGhlYWx0aCBjaGVja3Mgb24gdGhlIHNlY3VyZSBjb25uZWN0aW9uLlxuRGVmYXVsdHMgdG8gdGhlIENlbnRyYWwgY2VydGlmaWNhdGUgYXV0aG9yaXR5LiIsImRpc3BsYXlOYW1lIjoiRGVzdGluYXRpb24gQ0EgQ2VydGlmaWNhdGUiLCJwYXRoIjoiY2VudHJhbC5leHBvc3VyZS5yb3V0ZS5yZWVuY3J5cHQudGxzLmRlc3RpbmF0aW9uQ0FDZXJ0aWZpY2F0ZSJ9LHsiZGVzY3JpcHRpb24iOiJUaGUgUEVNIGVuY29kZWQgcHJpdmF0ZSBrZXkgb2YgdGhlIGNlcnRpZmljYXRlIHRoYXQgaXMgc2VydmVkIG9uIHRoZSByb3V0ZS5cbkRlZmF1bHRzIHRvIGEgY2VydGlmaWNhdGUgc2lnbmVkIGJ5IHRoZSBPcGVuU2hpZnQgY2VydGlmaWNhdGUgYXV0aG9yaXR5LiIsImRpc3BsYXlOYW1lIjoiUHJpdmF0ZSBLZXkiLCJwYXRoIjoiY2VudHJhbC5leHBvc3VyZS5yb3V0ZS5yZWVuY3J5cHQudGxzLmtleSJ9LHsiZGVzY3JpcHRpb24iOiJFeHBvc2UgdGhlIG1vbml0b3JpbmcgZW5kcG9pbnQuIEEgbmV3IHNlcnZpY2UsIFwibW9uaXRvcmluZ1wiLFxud2l0aCBwb3J0IDkwOTAsIHdpbGwgYmUgY3JlYXRlZCBhcyB3ZWxsIGFzIGEgbmV0d29yayBwb2xpY3kgYWxsb3dpbmdcbmluYm91bmQgY29ubmVjdGlvbnMgdG8gdGhlIHBvcnQuIiwiZGlzcGxheU5hbWUiOiJFeHBvc2UgRW5kcG9pbnQiLCJwYXRoIjoiY2VudHJhbC5tb25pdG9yaW5nLmV4cG9zZUVuZHBvaW50In0seyJkZXNjcmlwdGlvbiI6IkVuYWJsZXMgdGhlIGVuY3J5cHRpb24gb2Ygbm90aWZpZXIgc2VjcmV0cyBzdG9yZWQgaW4gdGhlIENlbnRyYWwgREIuIiwiZGlzcGxheU5hbWUiOiJFbmFibGVkIiwicGF0aCI6ImNlbnRyYWwubm90aWZpZXJTZWNyZXRzRW5jcnlwdGlvbi5lbmFibGVkIn0seyJkZXNjcmlwdGlvbiI6IlVzZXMgYSBLdWJlcm5ldGVzIHBlcnNpc3RlbnQgdm9sdW1lIGNsYWltIChQVkMpIHRvIG1hbmFnZSB0aGUgc3RvcmFnZSBsb2NhdGlvbiBvZiBwZXJzaXN0ZW50IGRhdGEuXG5SZWNvbW1lbmRlZCBmb3IgbW9zdCB1c2Vycy4iLCJkaXNwbGF5TmFtZSI6IlBlcnNpc3RlbnQgdm9sdW1lIGNsYWltIiwicGF0aCI6ImNlbnRyYWwucGVyc2lzdGVuY2UucGVyc2lzdGVudFZvbHVtZUNsYWltIn0seyJkZXNjcmlwdGlvbiI6IlN0b3JlcyBwZXJzaXN0ZW50IGRhdGEgb24gYSBkaXJlY3Rvcnkgb24gdGhlIGhvc3QuIFRoaXMgaXMgbm90IHJlY29tbWVuZGVkLCBhbmQgc2hvdWxkIG9ubHlcbmJlIHVzZWQgdG9nZXRoZXIgd2l0aCBhIG5vZGUgc2VsZWN0b3IgKG9ubHkgYXZhaWxhYmxlIGluIFlBTUwgdmlldykuIiwiZGlzcGxheU5hbWUiOiJIb3N0IHBhdGgiLCJwYXRoIjoiY2VudHJhbC5wZXJzaXN0ZW5jZS5ob3N0UGF0aCJ9LHsiZGVzY3JpcHRpb24iOiJUaGUgcGF0aCBvbiB0aGUgaG9zdCBydW5uaW5nIENlbnRyYWwuIiwiZGlzcGxheU5hbWUiOiJQYXRoIiwicGF0aCI6ImNlbnRyYWwucGVyc2lzdGVuY2UuaG9zdFBhdGgucGF0aCJ9LHsiZGVzY3JpcHRpb24iOiJUaGUgbmFtZSBvZiB0aGUgUFZDIHRvIG1hbmFnZSBwZXJzaXN0ZW50IGRhdGEuIElmIG5vIFBWQyB3aXRoIHRoZSBnaXZlbiBuYW1lIGV4aXN0cywgaXQgd2lsbCBiZVxuY3JlYXRlZC4gRGVmYXVsdHMgdG8gXCJzdGFja3JveC1kYlwiIGlmIG5vdCBzZXQuIiwiZGlzcGxheU5hbWUiOiJDbGFpbSBOYW1lIiwicGF0aCI6ImNlbnRyYWwucGVyc2lzdGVuY2UucGVyc2lzdGVudFZvbHVtZUNsYWltLmNsYWltTmFtZSJ9LHsiZGVzY3JpcHRpb24iOiJUaGUgc2l6ZSBvZiB0aGUgcGVyc2lzdGVudCB2b2x1bWUgd2hlbiBjcmVhdGVkIHRocm91Z2ggdGhlIGNsYWltLiBJZiBhIGNsYWltIHdhcyBhdXRvbWF0aWNhbGx5IGNyZWF0ZWQsXG50aGlzIGNhbiBiZSB1c2VkIGFmdGVyIHRoZSBpbml0aWFsIGRlcGxveW1lbnQgdG8gcmVzaXplIChncm93KSB0aGUgdm9sdW1lIChvbmx5IHN1cHBvcnRlZCBieSBzb21lXG5zdG9yYWdlIGNsYXNzIGNvbnRyb2xsZXJzKS4iLCJkaXNwbGF5TmFtZSI6IlNpemUiLCJwYXRoIjoiY2VudHJhbC5wZXJzaXN0ZW5jZS5wZXJzaXN0ZW50Vm9sdW1lQ2xhaW0uc2l6ZSIsIngtZGVzY3JpcHRvcnMiOlsidXJuOmFsbTpkZXNjcmlwdG9yOmNvbS50ZWN0b25pYy51aTp0ZXh0Il19LHsiZGVzY3JpcHRpb24iOiJUaGUgbmFtZSBvZiB0aGUgc3RvcmFnZSBjbGFzcyB0byB1c2UgZm9yIHRoZSBQVkMuIElmIHlvdXIgY2x1c3RlciBpcyBub3QgY29uZmlndXJlZCB3aXRoIGEgZGVmYXVsdCBzdG9yYWdlXG5jbGFzcywgeW91IG11c3Qgc2VsZWN0IGEgdmFsdWUgaGVyZS4iLCJkaXNwbGF5TmFtZSI6IlN0b3JhZ2UgQ2xhc3MiLCJwYXRoIjoiY2VudHJhbC5wZXJzaXN0ZW5jZS5wZXJzaXN0ZW50Vm9sdW1lQ2xhaW0uc3RvcmFnZUNsYXNzTmFtZSIsIngtZGVzY3JpcHRvcnMiOlsidXJuOmFsbTpkZXNjcmlwdG9yOmlvLmt1YmVybmV0ZXM6U3RvcmFnZUNsYXNzIl19LHsiZGVzY3JpcHRpb24iOiJTcGVjaWZpZXMgaWYgVGVsZW1ldHJ5IGlzIGVuYWJsZWQuIiwiZGlzcGxheU5hbWUiOiJFbmFibGVkIiwicGF0aCI6ImNlbnRyYWwudGVsZW1ldHJ5LmVuYWJsZWQiLCJ4LWRlc2NyaXB0b3JzIjpbInVybjphbG06ZGVzY3JpcHRvcjpjb20udGVjdG9uaWMudWk6Ym9vbGVhblN3aXRjaCJdfSx7ImRlc2NyaXB0aW9uIjoiRGVmaW5lcyB0aGUgdGVsZW1ldHJ5IHN0b3JhZ2UgYmFja2VuZCBmb3IgQ2VudHJhbC4iLCJkaXNwbGF5TmFtZSI6IlN0b3JhZ2UiLCJwYXRoIjoiY2VudHJhbC50ZWxlbWV0cnkuc3RvcmFnZSIsIngtZGVzY3JpcHRvcnMiOlsidXJuOmFsbTpkZXNjcmlwdG9yOmNvbS50ZWN0b25pYy51aTpmaWVsZERlcGVuZGVuY3k6Y2VudHJhbC50ZWxlbWV0cnkuZW5hYmxlZDp0cnVlIl19LHsiZGVzY3JpcHRpb24iOiJTdG9yYWdlIEFQSSBlbmRwb2ludC4iLCJkaXNwbGF5TmFtZSI6IkVuZHBvaW50IiwicGF0aCI6ImNlbnRyYWwudGVsZW1ldHJ5LnN0b3JhZ2UuZW5kcG9pbnQifSx7ImRlc2NyaXB0aW9uIjoiU3RvcmFnZSBBUEkga2V5LiBJZiBub3Qgc2V0LCB0ZWxlbWV0cnkgaXMgZGlzYWJsZWQuIiwiZGlzcGxheU5hbWUiOiJLZXkiLCJwYXRoIjoiY2VudHJhbC50ZWxlbWV0cnkuc3RvcmFnZS5rZXkifSx7ImRlc2NyaXB0aW9uIjoiSWYgeW91IHdhbnQgdG8gZGVwbG95IHRoZSBDb25maWcgYXMgQ29kZSBjb21wb25lbnQsIHNldCB0aGlzIHRvIFwiRW5hYmxlZFwiIiwiZGlzcGxheU5hbWUiOiJDb25maWcgYXMgQ29kZSBjb21wb25lbnQiLCJwYXRoIjoiY29uZmlnQXNDb2RlLmNvbmZpZ0FzQ29kZUNvbXBvbmVudCJ9LHsiZGVzY3JpcHRpb24iOiJDdXN0b20gbGFiZWxzIHRvIHNldCBvbiBhbGwgbWFuYWdlZCBvYmplY3RzLiIsImRpc3BsYXlOYW1lIjoiTGFiZWxzIiwicGF0aCI6ImN1c3RvbWl6ZS5sYWJlbHMifSx7ImRlc2NyaXB0aW9uIjoiQ3VzdG9tIGFubm90YXRpb25zIHRvIHNldCBvbiBhbGwgbWFuYWdlZCBvYmplY3RzLiIsImRpc3BsYXlOYW1lIjoiQW5ub3RhdGlvbnMiLCJwYXRoIjoiY3VzdG9taXplLmFubm90YXRpb25zIn0seyJkZXNjcmlwdGlvbiI6IkN1c3RvbSBlbnZpcm9ubWVudCB2YXJpYWJsZXMgdG8gc2V0IG9uIG1hbmFnZWQgcG9kcycgY29udGFpbmVycy4iLCJkaXNwbGF5TmFtZSI6IkVudmlyb25tZW50IFZhcmlhYmxlcyIsInBhdGgiOiJjdXN0b21pemUuZW52VmFycyJ9LHsiZGVzY3JpcHRpb24iOiJDb25maWd1cmVzIHdoZXRoZXIgUmVkIEhhdCBBZHZhbmNlZCBDbHVzdGVyIFNlY3VyaXR5IHNob3VsZCBydW4gaW4gb25saW5lIG9yIG9mZmxpbmUgKGRpc2Nvbm5lY3RlZCkgbW9kZS5cbkluIG9mZmxpbmUgbW9kZSwgYXV0b21hdGljIHVwZGF0ZXMgb2YgdnVsbmVyYWJpbGl0eSBkZWZpbml0aW9ucyBhbmQga2VybmVsIG1vZHVsZXMgYXJlIGRpc2FibGVkLiIsImRpc3BsYXlOYW1lIjoiQ29ubmVjdGl2aXR5IFBvbGljeSIsInBhdGgiOiJlZ3Jlc3MuY29ubmVjdGl2aXR5UG9saWN5In0seyJkZXNjcmlwdGlvbiI6IlRoZSBuYW1lIG9mIHRoZSByZWZlcmVuY2VkIHNlY3JldC4iLCJkaXNwbGF5TmFtZSI6Ik5hbWUiLCJwYXRoIjoiaW1hZ2VQdWxsU2VjcmV0c1swXS5uYW1lIiwieC1kZXNjcmlwdG9ycyI6WyJ1cm46YWxtOmRlc2NyaXB0b3I6aW8ua3ViZXJuZXRlczpTZWNyZXQiXX0seyJkZXNjcmlwdGlvbiI6IkRlcHJlY2F0ZWQgZmllbGQuIFRoaXMgZmllbGQgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuXG5TZXQgdGhpcyB0byB0cnVlIHRvIGhhdmUgdGhlIG9wZXJhdG9yIGNyZWF0ZSBTZWN1cml0eUNvbnRleHRDb25zdHJhaW50cyAoU0NDcykgZm9yIHRoZSBvcGVyYW5kcy4gVGhpc1xuaXNuJ3QgdXN1YWxseSBuZWVkZWQsIGFuZCBtYXkgaW50ZXJmZXJlIHdpdGggb3RoZXIgd29ya2xvYWRzLiIsImRpc3BsYXlOYW1lIjoiQ3JlYXRlIFNlY3VyaXR5Q29udGV4dENvbnN0cmFpbnRzIGZvciBPcGVyYW5kIiwicGF0aCI6Im1pc2MuY3JlYXRlU0NDcyIsIngtZGVzY3JpcHRvcnMiOlsidXJuOmFsbTpkZXNjcmlwdG9yOmNvbS50ZWN0b25pYy51aTpoaWRkZW4iXX0seyJkaXNwbGF5TmFtZSI6IkVuYWJsZWQiLCJwYXRoIjoibW9uaXRvcmluZy5vcGVuc2hpZnQuZW5hYmxlZCIsIngtZGVzY3JpcHRvcnMiOlsidXJuOmFsbTpkZXNjcmlwdG9yOmNvbS50ZWN0b25pYy51aTpib29sZWFuU3dpdGNoIl19LHsiZGVzY3JpcHRpb24iOiJUbyBwcm92aWRlIHNlY3VyaXR5IGF0IHRoZSBuZXR3b3JrIGxldmVsIHRoZSBBQ1MgT3BlcmF0b3IgY3JlYXRlcyBOZXR3b3JrUG9saWN5IHJlc291cmNlcyBieSBkZWZhdWx0LiBJZiB5b3Ugd2FudCB0byBtYW5hZ2UgeW91ciBvd24gTmV0d29ya1BvbGljeSBvYmplY3RzIHRoZW4gc2V0IHRoaXMgdG8gXCJEaXNhYmxlZFwiLiIsImRpc3BsYXlOYW1lIjoiTmV0d29yayBQb2xpY2llcyIsInBhdGgiOiJuZXR3b3JrLnBvbGljaWVzIn0seyJkZXNjcmlwdGlvbiI6IlJlc291cmNlIEFQSSB2ZXJzaW9uLiIsImRpc3BsYXlOYW1lIjoiQVBJIFZlcnNpb24iLCJwYXRoIjoib3ZlcmxheXNbMF0uYXBpVmVyc2lvbiJ9LHsiZGVzY3JpcHRpb24iOiJSZXNvdXJjZSBraW5kLiIsImRpc3BsYXlOYW1lIjoiS2luZCIsInBhdGgiOiJvdmVybGF5c1swXS5raW5kIn0seyJkZXNjcmlwdGlvbiI6Ik5hbWUgb2YgcmVzb3VyY2UuIiwiZGlzcGxheU5hbWUiOiJOYW1lIiwicGF0aCI6Im92ZXJsYXlzWzBdLm5hbWUifSx7ImRlc2NyaXB0aW9uIjoiT3B0aW9uYWwgbWFya3MgdGhlIG92ZXJsYXkgYXMgb3B0aW9uYWwuXG5XaGVuIE9wdGlvbmFsIGlzIHRydWUsIGFuZCB0aGUgc3BlY2lmaWVkIHJlc291cmNlIGRvZXMgbm90IGV4aXN0IGluIHRoZSBvdXRwdXQgbWFuaWZlc3RzLCB0aGUgb3ZlcmxheSB3aWxsIGJlIHNraXBwZWQsIGFuZCBhIHdhcm5pbmcgd2lsbCBiZSBsb2dnZWQuXG5XaGVuIE9wdGlvbmFsIGlzIGZhbHNlLCBhbmQgdGhlIHNwZWNpZmllZCByZXNvdXJjZSBkb2VzIG5vdCBleGlzdCBpbiB0aGUgb3V0cHV0IG1hbmlmZXN0cywgYW4gZXJyb3Igd2lsbCBiZSB0aHJvd24uIiwiZGlzcGxheU5hbWUiOiJPcHRpb25hbCIsInBhdGgiOiJvdmVybGF5c1swXS5vcHRpb25hbCJ9LHsiZGVzY3JpcHRpb24iOiJMaXN0IG9mIHBhdGNoZXMgdG8gYXBwbHkgdG8gcmVzb3VyY2UuIiwiZGlzcGxheU5hbWUiOiJQYXRjaGVzIiwicGF0aCI6Im92ZXJsYXlzWzBdLnBhdGNoZXMifSx7ImRlc2NyaXB0aW9uIjoiUGF0aCBvZiB0aGUgZm9ybSBhLltrZXkxOnZhbHVlMV0uYi5bOnZhbHVlMl1cbldoZXJlIFtrZXkxOnZhbHVlMV0gaXMgYSBzZWxlY3RvciBmb3IgYSBrZXktdmFsdWUgcGFpciB0byBpZGVudGlmeSBhIGxpc3QgZWxlbWVudCBhbmQgWzp2YWx1ZV0gaXMgYSB2YWx1ZVxuc2VsZWN0b3IgdG8gaWRlbnRpZnkgYSBsaXN0IGVsZW1lbnQgaW4gYSBsZWFmIGxpc3QuXG5BbGwgcGF0aCBpbnRlcm1lZGlhdGUgbm9kZXMgbXVzdCBleGlzdC4iLCJkaXNwbGF5TmFtZSI6IlBhdGgiLCJwYXRoIjoib3ZlcmxheXNbMF0ucGF0Y2hlc1swXS5wYXRoIn0seyJkZXNjcmlwdGlvbiI6IlZhbHVlIHRvIGFkZCwgZGVsZXRlIG9yIHJlcGxhY2UuXG5Gb3IgYWRkLCB0aGUgcGF0aCBzaG91bGQgYmUgYSBuZXcgbGVhZi5cbkZvciBkZWxldGUsIHZhbHVlIHNob3VsZCBiZSB1bnNldC5cbkZvciByZXBsYWNlLCBwYXRoIHNob3VsZCByZWZlcmVuY2UgYW4gZXhpc3Rpbmcgbm9kZS5cbkFsbCB2YWx1ZXMgYXJlIHN0cmluZ3MgYnV0IGFyZSBjb252ZXJ0ZWQgaW50byBhcHByb3ByaWF0ZSB0eXBlIGJhc2VkIG9uIHNjaGVtYS4iLCJkaXNwbGF5TmFtZSI6IlZhbHVlIiwicGF0aCI6Im92ZXJsYXlzWzBdLnBhdGNoZXNbMF0udmFsdWUifSx7ImRlc2NyaXB0aW9uIjoiVmVyYmF0aW0gdmFsdWUgdG8gYWRkLCBkZWxldGUgb3IgcmVwbGFjZS5cblNhbWUgYXMgVmFsdWUsIGhvd2V2ZXIgdGhlIGNvbnRlbnQgaXMgbm90IGludGVycHJldGVkIGFzIFlBTUwsIGJ1dCB0cmVhdGVkIGFzIGxpdGVyYWwgc3RyaW5nIGluc3RlYWQuXG5BdCBsZWFzdCBvbmUgb2YgVmFsdWUgYW5kIFZlcmJhdGltIG11c3QgYmUgZW1wdHkuIiwiZGlzcGxheU5hbWUiOiJWZXJiYXRpbSIsInBhdGgiOiJvdmVybGF5c1swXS5wYXRjaGVzWzBdLnZlcmJhdGltIn0seyJkZXNjcmlwdGlvbiI6IklmIHlvdSBkbyBub3Qgd2FudCB0byBkZXBsb3kgdGhlIFJlZCBIYXQgQWR2YW5jZWQgQ2x1c3RlciBTZWN1cml0eSBTY2FubmVyLCB5b3UgY2FuIGRpc2FibGUgaXQgaGVyZVxuKG5vdCByZWNvbW1lbmRlZCkuIEJ5IGRlZmF1bHQsIHRoZSBzY2FubmVyIGlzIGVuYWJsZWQuXG5JZiB5b3UgZG8gc28sIGFsbCB0aGUgc2V0dGluZ3MgaW4gdGhpcyBzZWN0aW9uIHdpbGwgaGF2ZSBubyBlZmZlY3QuIiwiZGlzcGxheU5hbWUiOiJTY2FubmVyIENvbXBvbmVudCIsInBhdGgiOiJzY2FubmVyLnNjYW5uZXJDb21wb25lbnQifSx7ImRlc2NyaXB0aW9uIjoiU2V0dGluZ3MgcGVydGFpbmluZyB0byB0aGUgYW5hbHl6ZXIgZGVwbG95bWVudCwgc3VjaCBhcyBmb3IgYXV0b3NjYWxpbmcuIiwiZGlzcGxheU5hbWUiOiJBbmFseXplciIsInBhdGgiOiJzY2FubmVyLmFuYWx5emVyIiwieC1kZXNjcmlwdG9ycyI6WyJ1cm46YWxtOmRlc2NyaXB0b3I6Y29tLnRlY3RvbmljLnVpOmZpZWxkRGVwZW5kZW5jeTpzY2FubmVyLnNjYW5uZXJDb21wb25lbnQ6RW5hYmxlZCJdfSx7ImRlc2NyaXB0aW9uIjoiU2V0dGluZ3MgcGVydGFpbmluZyB0byB0aGUgZGF0YWJhc2UgdXNlZCBieSB0aGUgUmVkIEhhdCBBZHZhbmNlZCBDbHVzdGVyIFNlY3VyaXR5IFNjYW5uZXIuIiwiZGlzcGxheU5hbWUiOiJEQiIsInBhdGgiOiJzY2FubmVyLmRiIiwieC1kZXNjcmlwdG9ycyI6WyJ1cm46YWxtOmRlc2NyaXB0b3I6Y29tLnRlY3RvbmljLnVpOmZpZWxkRGVwZW5kZW5jeTpzY2FubmVyLnNjYW5uZXJDb21wb25lbnQ6RW5hYmxlZCJdfSx7ImRlc2NyaXB0aW9uIjoiQ29uZmlndXJlcyBtb25pdG9yaW5nIGVuZHBvaW50IGZvciBTY2FubmVyLiBUaGUgbW9uaXRvcmluZyBlbmRwb2ludFxuYWxsb3dzIG90aGVyIHNlcnZpY2VzIHRvIGNvbGxlY3QgbWV0cmljcyBmcm9tIFNjYW5uZXIsIHByb3ZpZGVkIGluXG5Qcm9tZXRoZXVzIGNvbXBhdGlibGUgZm9ybWF0LiIsImRpc3BsYXlOYW1lIjoiTW9uaXRvcmluZyIsInBhdGgiOiJzY2FubmVyLm1vbml0b3JpbmcifSx7ImRlc2NyaXB0aW9uIjoiQ29udHJvbHMgdGhlIG51bWJlciBvZiBhbmFseXplciByZXBsaWNhcyBhbmQgYXV0b3NjYWxpbmcuIiwiZGlzcGxheU5hbWUiOiJTY2FsaW5nIiwicGF0aCI6InNjYW5uZXIuYW5hbHl6ZXIuc2NhbGluZyJ9LHsiZGVzY3JpcHRpb24iOiJBbGxvd3Mgb3ZlcnJpZGluZyB0aGUgZGVmYXVsdCByZXNvdXJjZSBzZXR0aW5ncyBmb3IgdGhpcyBjb21wb25lbnQuIFBsZWFzZSBjb25zdWx0IHRoZSBkb2N1bWVudGF0aW9uXG5mb3IgYW4gb3ZlcnZpZXcgb2YgZGVmYXVsdCByZXNvdXJjZSByZXF1aXJlbWVudHMgYW5kIGEgc2l6aW5nIGd1aWRlLiIsImRpc3BsYXlOYW1lIjoiUmVzb3VyY2VzIiwicGF0aCI6InNjYW5uZXIuYW5hbHl6ZXIucmVzb3VyY2VzIiwieC1kZXNjcmlwdG9ycyI6WyJ1cm46YWxtOmRlc2NyaXB0b3I6Y29tLnRlY3RvbmljLnVpOnJlc291cmNlUmVxdWlyZW1lbnRzIl19LHsiZGVzY3JpcHRpb24iOiJJZiB5b3Ugd2FudCB0aGlzIGNvbXBvbmVudCB0byBvbmx5IHJ1biBvbiBzcGVjaWZpYyBub2RlcywgeW91IGNhbiBjb25maWd1cmUgYSBub2RlIHNlbGVjdG9yIGhlcmUuIiwiZGlzcGxheU5hbWUiOiJOb2RlIFNlbGVjdG9yIiwicGF0aCI6InNjYW5uZXIuYW5hbHl6ZXIubm9kZVNlbGVjdG9yIn0seyJkZXNjcmlwdGlvbiI6IklmIHlvdSB3YW50IHRoaXMgY29tcG9uZW50IHRvIG9ubHkgcnVuIG9uIHNwZWNpZmljIG5vZGVzLCB5b3UgY2FuIGNvbmZpZ3VyZSB0b2xlcmF0aW9ucyBvZiB0YWludGVkIG5vZGVzLiIsImRpc3BsYXlOYW1lIjoiVG9sZXJhdGlvbnMiLCJwYXRoIjoic2Nhbm5lci5hbmFseXplci50b2xlcmF0aW9ucyIsIngtZGVzY3JpcHRvcnMiOlsidXJuOmFsbTpkZXNjcmlwdG9yOmNvbS50ZWN0b25pYy51aTp0b2xlcmF0aW9ucyJdfSx7ImRlc2NyaXB0aW9uIjoiSG9zdEFsaWFzZXMgYWxsb3dzIGNvbmZpZ3VyaW5nIGFkZGl0aW9uYWwgaG9zdG5hbWVzIHRvIHJlc29sdmUgaW4gdGhlIHBvZCdzIGhvc3RzIGZpbGUuIiwiZGlzcGxheU5hbWUiOiJIb3N0IEFsaWFzZXMiLCJwYXRoIjoic2Nhbm5lci5hbmFseXplci5ob3N0QWxpYXNlcyJ9LHsiZGVzY3JpcHRpb24iOiJXaGVuIGVuYWJsZWQsIHRoZSBudW1iZXIgb2YgY29tcG9uZW50IHJlcGxpY2FzIGlzIG1hbmFnZWQgZHluYW1pY2FsbHkgYmFzZWQgb24gdGhlIGxvYWQsIHdpdGhpbiB0aGUgbGltaXRzXG5zcGVjaWZpZWQgYmVsb3cuIiwiZGlzcGxheU5hbWUiOiJBdXRvc2NhbGluZyIsInBhdGgiOiJzY2FubmVyLmFuYWx5emVyLnNjYWxpbmcuYXV0b1NjYWxpbmcifSx7ImRlc2NyaXB0aW9uIjoiV2hlbiBhdXRvc2NhbGluZyBpcyBkaXNhYmxlZCwgdGhlIG51bWJlciBvZiByZXBsaWNhcyB3aWxsIGFsd2F5cyBiZSBjb25maWd1cmVkIHRvIG1hdGNoIHRoaXMgdmFsdWUuIiwiZGlzcGxheU5hbWUiOiJEZWZhdWx0IFJlcGxpY2FzIiwicGF0aCI6InNjYW5uZXIuYW5hbHl6ZXIuc2NhbGluZy5yZXBsaWNhcyJ9LHsiZGlzcGxheU5hbWUiOiJBdXRvc2NhbGluZyBNaW5pbXVtIFJlcGxpY2FzIiwicGF0aCI6InNjYW5uZXIuYW5hbHl6ZXIuc2NhbGluZy5taW5SZXBsaWNhcyIsIngtZGVzY3JpcHRvcnMiOlsidXJuOmFsbTpkZXNjcmlwdG9yOmNvbS50ZWN0b25pYy51aTpmaWVsZERlcGVuZGVuY3k6c2Nhbm5lci5hbmFseXplci5zY2FsaW5nLmF1dG9TY2FsaW5nOkVuYWJsZWQiXX0seyJkaXNwbGF5TmFtZSI6IkF1dG9zY2FsaW5nIE1heGltdW0gUmVwbGljYXMiLCJwYXRoIjoic2Nhbm5lci5hbmFseXplci5zY2FsaW5nLm1heFJlcGxpY2FzIiwieC1kZXNjcmlwdG9ycyI6WyJ1cm46YWxtOmRlc2NyaXB0b3I6Y29tLnRlY3RvbmljLnVpOmZpZWxkRGVwZW5kZW5jeTpzY2FubmVyLmFuYWx5emVyLnNjYWxpbmcuYXV0b1NjYWxpbmc6RW5hYmxlZCJdfSx7ImRlc2NyaXB0aW9uIjoiQWxsb3dzIG92ZXJyaWRpbmcgdGhlIGRlZmF1bHQgcmVzb3VyY2Ugc2V0dGluZ3MgZm9yIHRoaXMgY29tcG9uZW50LiBQbGVhc2UgY29uc3VsdCB0aGUgZG9jdW1lbnRhdGlvblxuZm9yIGFuIG92ZXJ2aWV3IG9mIGRlZmF1bHQgcmVzb3VyY2UgcmVxdWlyZW1lbnRzIGFuZCBhIHNpemluZyBndWlkZS4iLCJkaXNwbGF5TmFtZSI6IlJlc291cmNlcyIsInBhdGgiOiJzY2FubmVyLmRiLnJlc291cmNlcyIsIngtZGVzY3JpcHRvcnMiOlsidXJuOmFsbTpkZXNjcmlwdG9yOmNvbS50ZWN0b25pYy51aTpyZXNvdXJjZVJlcXVpcmVtZW50cyJdfSx7ImRlc2NyaXB0aW9uIjoiSWYgeW91IHdhbnQgdGhpcyBjb21wb25lbnQgdG8gb25seSBydW4gb24gc3BlY2lmaWMgbm9kZXMsIHlvdSBjYW4gY29uZmlndXJlIGEgbm9kZSBzZWxlY3RvciBoZXJlLiIsImRpc3BsYXlOYW1lIjoiTm9kZSBTZWxlY3RvciIsInBhdGgiOiJzY2FubmVyLmRiLm5vZGVTZWxlY3RvciJ9LHsiZGVzY3JpcHRpb24iOiJJZiB5b3Ugd2FudCB0aGlzIGNvbXBvbmVudCB0byBvbmx5IHJ1biBvbiBzcGVjaWZpYyBub2RlcywgeW91IGNhbiBjb25maWd1cmUgdG9sZXJhdGlvbnMgb2YgdGFpbnRlZCBub2Rlcy4iLCJkaXNwbGF5TmFtZSI6IlRvbGVyYXRpb25zIiwicGF0aCI6InNjYW5uZXIuZGIudG9sZXJhdGlvbnMiLCJ4LWRlc2NyaXB0b3JzIjpbInVybjphbG06ZGVzY3JpcHRvcjpjb20udGVjdG9uaWMudWk6dG9sZXJhdGlvbnMiXX0seyJkZXNjcmlwdGlvbiI6Ikhvc3RBbGlhc2VzIGFsbG93cyBjb25maWd1cmluZyBhZGRpdGlvbmFsIGhvc3RuYW1lcyB0byByZXNvbHZlIGluIHRoZSBwb2QncyBob3N0cyBmaWxlLiIsImRpc3BsYXlOYW1lIjoiSG9zdCBBbGlhc2VzIiwicGF0aCI6InNjYW5uZXIuZGIuaG9zdEFsaWFzZXMifSx7ImRlc2NyaXB0aW9uIjoiRXhwb3NlIHRoZSBtb25pdG9yaW5nIGVuZHBvaW50LiBBIG5ldyBzZXJ2aWNlLCBcIm1vbml0b3JpbmdcIixcbndpdGggcG9ydCA5MDkwLCB3aWxsIGJlIGNyZWF0ZWQgYXMgd2VsbCBhcyBhIG5ldHdvcmsgcG9saWN5IGFsbG93aW5nXG5pbmJvdW5kIGNvbm5lY3Rpb25zIHRvIHRoZSBwb3J0LiIsImRpc3BsYXlOYW1lIjoiRXhwb3NlIEVuZHBvaW50IiwicGF0aCI6InNjYW5uZXIubW9uaXRvcmluZy5leHBvc2VFbmRwb2ludCJ9LHsiZGVzY3JpcHRpb24iOiJDYW4gYmUgc3BlY2lmaWVkIGFzIFwiRW5hYmxlZFwiIG9yIFwiRGlzYWJsZWRcIi5cbklmIHRoaXMgZmllbGQgaXMgbm90IHNwZWNpZmllZCwgdGhlIGZvbGxvd2luZyBkZWZhdWx0aW5nIHRha2VzIHBsYWNlOlxuKiBmb3IgbmV3IGluc3RhbGxhdGlvbnMsIFNjYW5uZXIgVjQgaXMgZW5hYmxlZCBzdGFydGluZyB3aXRoIEFDUyA0Ljg7XG4qIGZvciB1cGdyYWRlcyB0byA0LjggZnJvbSBwcmV2aW91cyByZWxlYXNlcywgU2Nhbm5lciBWNCBpcyBkaXNhYmxlZC4iLCJkaXNwbGF5TmFtZSI6IlNjYW5uZXIgVjQgY29tcG9uZW50IiwicGF0aCI6InNjYW5uZXJWNC5zY2FubmVyQ29tcG9uZW50In0seyJkZXNjcmlwdGlvbiI6IlNldHRpbmdzIHBlcnRhaW5pbmcgdG8gdGhlIGluZGV4ZXIgZGVwbG95bWVudC4iLCJkaXNwbGF5TmFtZSI6IkluZGV4ZXIiLCJwYXRoIjoic2Nhbm5lclY0LmluZGV4ZXIiLCJ4LWRlc2NyaXB0b3JzIjpbInVybjphbG06ZGVzY3JpcHRvcjpjb20udGVjdG9uaWMudWk6ZmllbGREZXBlbmRlbmN5OnNjYW5uZXJWNC5zY2FubmVyQ29tcG9uZW50OkVuYWJsZWQiXX0seyJkZXNjcmlwdGlvbiI6IlNldHRpbmdzIHBlcnRhaW5pbmcgdG8gdGhlIG1hdGNoZXIgZGVwbG95bWVudC4iLCJkaXNwbGF5TmFtZSI6Ik1hdGNoZXIiLCJwYXRoIjoic2Nhbm5lclY0Lm1hdGNoZXIiLCJ4LWRlc2NyaXB0b3JzIjpbInVybjphbG06ZGVzY3JpcHRvcjpjb20udGVjdG9uaWMudWk6ZmllbGREZXBlbmRlbmN5OnNjYW5uZXJWNC5zY2FubmVyQ29tcG9uZW50OkVuYWJsZWQiXX0seyJkZXNjcmlwdGlvbiI6IlNldHRpbmdzIHBlcnRhaW5pbmcgdG8gdGhlIERCIGRlcGxveW1lbnQuIiwiZGlzcGxheU5hbWUiOiJEQiIsInBhdGgiOiJzY2FubmVyVjQuZGIiLCJ4LWRlc2NyaXB0b3JzIjpbInVybjphbG06ZGVzY3JpcHRvcjpjb20udGVjdG9uaWMudWk6ZmllbGREZXBlbmRlbmN5OnNjYW5uZXJWNC5zY2FubmVyQ29tcG9uZW50OkVuYWJsZWQiXX0seyJkZXNjcmlwdGlvbiI6IkNvbmZpZ3VyZXMgbW9uaXRvcmluZyBlbmRwb2ludCBmb3IgU2Nhbm5lciBWNC4gVGhlIG1vbml0b3JpbmcgZW5kcG9pbnRcbmFsbG93cyBvdGhlciBzZXJ2aWNlcyB0byBjb2xsZWN0IG1ldHJpY3MgZnJvbSBTY2FubmVyIFY0LCBwcm92aWRlZCBpblxuUHJvbWV0aGV1cyBjb21wYXRpYmxlIGZvcm1hdC4iLCJkaXNwbGF5TmFtZSI6Ik1vbml0b3JpbmciLCJwYXRoIjoic2Nhbm5lclY0Lm1vbml0b3JpbmciLCJ4LWRlc2NyaXB0b3JzIjpbInVybjphbG06ZGVzY3JpcHRvcjpjb20udGVjdG9uaWMudWk6ZmllbGREZXBlbmRlbmN5OnNjYW5uZXJWNC5zY2FubmVyQ29tcG9uZW50OkVuYWJsZWQiXX0seyJkZXNjcmlwdGlvbiI6IkNvbmZpZ3VyZXMgaG93IFNjYW5uZXIgVjQgc2hvdWxkIHN0b3JlIGl0cyBwZXJzaXN0ZW50IGRhdGEuXG5Zb3UgY2FuIHVzZSBhIHBlcnNpc3RlbnQgdm9sdW1lIGNsYWltICh0aGUgcmVjb21tZW5kZWQgZGVmYXVsdCksIGEgaG9zdCBwYXRoLFxub3IgYW4gZW1wdHlEaXIgdm9sdW1lIGlmIFNjYW5uZXIgVjQgaXMgcnVubmluZyBvbiBhIHNlY3VyZWQgY2x1c3RlciB3aXRob3V0IGRlZmF1bHQgU3RvcmFnZUNsYXNzLiIsImRpc3BsYXlOYW1lIjoiUGVyc2lzdGVuY2UiLCJwYXRoIjoic2Nhbm5lclY0LmRiLnBlcnNpc3RlbmNlIn0seyJkZXNjcmlwdGlvbiI6IkFsbG93cyBvdmVycmlkaW5nIHRoZSBkZWZhdWx0IHJlc291cmNlIHNldHRpbmdzIGZvciB0aGlzIGNvbXBvbmVudC4gUGxlYXNlIGNvbnN1bHQgdGhlIGRvY3VtZW50YXRpb25cbmZvciBhbiBvdmVydmlldyBvZiBkZWZhdWx0IHJlc291cmNlIHJlcXVpcmVtZW50cyBhbmQgYSBzaXppbmcgZ3VpZGUuIiwiZGlzcGxheU5hbWUiOiJSZXNvdXJjZXMiLCJwYXRoIjoic2Nhbm5lclY0LmRiLnJlc291cmNlcyIsIngtZGVzY3JpcHRvcnMiOlsidXJuOmFsbTpkZXNjcmlwdG9yOmNvbS50ZWN0b25pYy51aTpyZXNvdXJjZVJlcXVpcmVtZW50cyJdfSx7ImRlc2NyaXB0aW9uIjoiSWYgeW91IHdhbnQgdGhpcyBjb21wb25lbnQgdG8gb25seSBydW4gb24gc3BlY2lmaWMgbm9kZXMsIHlvdSBjYW4gY29uZmlndXJlIGEgbm9kZSBzZWxlY3RvciBoZXJlLiIsImRpc3BsYXlOYW1lIjoiTm9kZSBTZWxlY3RvciIsInBhdGgiOiJzY2FubmVyVjQuZGIubm9kZVNlbGVjdG9yIn0seyJkZXNjcmlwdGlvbiI6IklmIHlvdSB3YW50IHRoaXMgY29tcG9uZW50IHRvIG9ubHkgcnVuIG9uIHNwZWNpZmljIG5vZGVzLCB5b3UgY2FuIGNvbmZpZ3VyZSB0b2xlcmF0aW9ucyBvZiB0YWludGVkIG5vZGVzLiIsImRpc3BsYXlOYW1lIjoiVG9sZXJhdGlvbnMiLCJwYXRoIjoic2Nhbm5lclY0LmRiLnRvbGVyYXRpb25zIiwieC1kZXNjcmlwdG9ycyI6WyJ1cm46YWxtOmRlc2NyaXB0b3I6Y29tLnRlY3RvbmljLnVpOnRvbGVyYXRpb25zIl19LHsiZGVzY3JpcHRpb24iOiJIb3N0QWxpYXNlcyBhbGxvd3MgY29uZmlndXJpbmcgYWRkaXRpb25hbCBob3N0bmFtZXMgdG8gcmVzb2x2ZSBpbiB0aGUgcG9kJ3MgaG9zdHMgZmlsZS4iLCJkaXNwbGF5TmFtZSI6Ikhvc3QgQWxpYXNlcyIsInBhdGgiOiJzY2FubmVyVjQuZGIuaG9zdEFsaWFzZXMifSx7ImRlc2NyaXB0aW9uIjoiVXNlcyBhIEt1YmVybmV0ZXMgcGVyc2lzdGVudCB2b2x1bWUgY2xhaW0gKFBWQykgdG8gbWFuYWdlIHRoZSBzdG9yYWdlIGxvY2F0aW9uIG9mIHBlcnNpc3RlbnQgZGF0YS5cblJlY29tbWVuZGVkIGZvciBtb3N0IHVzZXJzLiIsImRpc3BsYXlOYW1lIjoiUGVyc2lzdGVudCB2b2x1bWUgY2xhaW0iLCJwYXRoIjoic2Nhbm5lclY0LmRiLnBlcnNpc3RlbmNlLnBlcnNpc3RlbnRWb2x1bWVDbGFpbSJ9LHsiZGVzY3JpcHRpb24iOiJTdG9yZXMgcGVyc2lzdGVudCBkYXRhIG9uIGEgZGlyZWN0b3J5IG9uIHRoZSBob3N0LiBUaGlzIGlzIG5vdCByZWNvbW1lbmRlZCwgYW5kIHNob3VsZCBvbmx5XG5iZSB1c2VkIHRvZ2V0aGVyIHdpdGggYSBub2RlIHNlbGVjdG9yIChvbmx5IGF2YWlsYWJsZSBpbiBZQU1MIHZpZXcpLiIsImRpc3BsYXlOYW1lIjoiSG9zdCBwYXRoIiwicGF0aCI6InNjYW5uZXJWNC5kYi5wZXJzaXN0ZW5jZS5ob3N0UGF0aCJ9LHsiZGVzY3JpcHRpb24iOiJUaGUgcGF0aCBvbiB0aGUgaG9zdCBydW5uaW5nIENlbnRyYWwuIiwiZGlzcGxheU5hbWUiOiJQYXRoIiwicGF0aCI6InNjYW5uZXJWNC5kYi5wZXJzaXN0ZW5jZS5ob3N0UGF0aC5wYXRoIn0seyJkZXNjcmlwdGlvbiI6IlRoZSBuYW1lIG9mIHRoZSBQVkMgdG8gbWFuYWdlIHBlcnNpc3RlbnQgZGF0YS4gSWYgbm8gUFZDIHdpdGggdGhlIGdpdmVuIG5hbWUgZXhpc3RzLCBpdCB3aWxsIGJlXG5jcmVhdGVkLiBEZWZhdWx0cyB0byBcInNjYW5uZXItdjQtZGJcIiBpZiBub3Qgc2V0LiIsImRpc3BsYXlOYW1lIjoiQ2xhaW0gTmFtZSIsInBhdGgiOiJzY2FubmVyVjQuZGIucGVyc2lzdGVuY2UucGVyc2lzdGVudFZvbHVtZUNsYWltLmNsYWltTmFtZSJ9LHsiZGVzY3JpcHRpb24iOiJUaGUgc2l6ZSBvZiB0aGUgcGVyc2lzdGVudCB2b2x1bWUgd2hlbiBjcmVhdGVkIHRocm91Z2ggdGhlIGNsYWltLiBJZiBhIGNsYWltIHdhcyBhdXRvbWF0aWNhbGx5IGNyZWF0ZWQsXG50aGlzIGNhbiBiZSB1c2VkIGFmdGVyIHRoZSBpbml0aWFsIGRlcGxveW1lbnQgdG8gcmVzaXplIChncm93KSB0aGUgdm9sdW1lIChvbmx5IHN1cHBvcnRlZCBieSBzb21lXG5zdG9yYWdlIGNsYXNzIGNvbnRyb2xsZXJzKS4iLCJkaXNwbGF5TmFtZSI6IlNpemUiLCJwYXRoIjoic2Nhbm5lclY0LmRiLnBlcnNpc3RlbmNlLnBlcnNpc3RlbnRWb2x1bWVDbGFpbS5zaXplIiwieC1kZXNjcmlwdG9ycyI6WyJ1cm46YWxtOmRlc2NyaXB0b3I6Y29tLnRlY3RvbmljLnVpOnRleHQiXX0seyJkZXNjcmlwdGlvbiI6IlRoZSBuYW1lIG9mIHRoZSBzdG9yYWdlIGNsYXNzIHRvIHVzZSBmb3IgdGhlIFBWQy4gSWYgeW91ciBjbHVzdGVyIGlzIG5vdCBjb25maWd1cmVkIHdpdGggYSBkZWZhdWx0IHN0b3JhZ2VcbmNsYXNzLCB5b3UgbXVzdCBzZWxlY3QgYSB2YWx1ZSBoZXJlLiIsImRpc3BsYXlOYW1lIjoiU3RvcmFnZSBDbGFzcyIsInBhdGgiOiJzY2FubmVyVjQuZGIucGVyc2lzdGVuY2UucGVyc2lzdGVudFZvbHVtZUNsYWltLnN0b3JhZ2VDbGFzc05hbWUiLCJ4LWRlc2NyaXB0b3JzIjpbInVybjphbG06ZGVzY3JpcHRvcjppby5rdWJlcm5ldGVzOlN0b3JhZ2VDbGFzcyJdfSx7ImRlc2NyaXB0aW9uIjoiQ29udHJvbHMgdGhlIG51bWJlciBvZiByZXBsaWNhcyBhbmQgYXV0b3NjYWxpbmcgZm9yIHRoaXMgY29tcG9uZW50LiIsImRpc3BsYXlOYW1lIjoiU2NhbGluZyIsInBhdGgiOiJzY2FubmVyVjQuaW5kZXhlci5zY2FsaW5nIn0seyJkZXNjcmlwdGlvbiI6IkFsbG93cyBvdmVycmlkaW5nIHRoZSBkZWZhdWx0IHJlc291cmNlIHNldHRpbmdzIGZvciB0aGlzIGNvbXBvbmVudC4gUGxlYXNlIGNvbnN1bHQgdGhlIGRvY3VtZW50YXRpb25cbmZvciBhbiBvdmVydmlldyBvZiBkZWZhdWx0IHJlc291cmNlIHJlcXVpcmVtZW50cyBhbmQgYSBzaXppbmcgZ3VpZGUuIiwiZGlzcGxheU5hbWUiOiJSZXNvdXJjZXMiLCJwYXRoIjoic2Nhbm5lclY0LmluZGV4ZXIucmVzb3VyY2VzIiwieC1kZXNjcmlwdG9ycyI6WyJ1cm46YWxtOmRlc2NyaXB0b3I6Y29tLnRlY3RvbmljLnVpOnJlc291cmNlUmVxdWlyZW1lbnRzIl19LHsiZGVzY3JpcHRpb24iOiJJZiB5b3Ugd2FudCB0aGlzIGNvbXBvbmVudCB0byBvbmx5IHJ1biBvbiBzcGVjaWZpYyBub2RlcywgeW91IGNhbiBjb25maWd1cmUgYSBub2RlIHNlbGVjdG9yIGhlcmUuIiwiZGlzcGxheU5hbWUiOiJOb2RlIFNlbGVjdG9yIiwicGF0aCI6InNjYW5uZXJWNC5pbmRleGVyLm5vZGVTZWxlY3RvciJ9LHsiZGVzY3JpcHRpb24iOiJJZiB5b3Ugd2FudCB0aGlzIGNvbXBvbmVudCB0byBvbmx5IHJ1biBvbiBzcGVjaWZpYyBub2RlcywgeW91IGNhbiBjb25maWd1cmUgdG9sZXJhdGlvbnMgb2YgdGFpbnRlZCBub2Rlcy4iLCJkaXNwbGF5TmFtZSI6IlRvbGVyYXRpb25zIiwicGF0aCI6InNjYW5uZXJWNC5pbmRleGVyLnRvbGVyYXRpb25zIiwieC1kZXNjcmlwdG9ycyI6WyJ1cm46YWxtOmRlc2NyaXB0b3I6Y29tLnRlY3RvbmljLnVpOnRvbGVyYXRpb25zIl19LHsiZGVzY3JpcHRpb24iOiJIb3N0QWxpYXNlcyBhbGxvd3MgY29uZmlndXJpbmcgYWRkaXRpb25hbCBob3N0bmFtZXMgdG8gcmVzb2x2ZSBpbiB0aGUgcG9kJ3MgaG9zdHMgZmlsZS4iLCJkaXNwbGF5TmFtZSI6Ikhvc3QgQWxpYXNlcyIsInBhdGgiOiJzY2FubmVyVjQuaW5kZXhlci5ob3N0QWxpYXNlcyJ9LHsiZGVzY3JpcHRpb24iOiJXaGVuIGVuYWJsZWQsIHRoZSBudW1iZXIgb2YgY29tcG9uZW50IHJlcGxpY2FzIGlzIG1hbmFnZWQgZHluYW1pY2FsbHkgYmFzZWQgb24gdGhlIGxvYWQsIHdpdGhpbiB0aGUgbGltaXRzXG5zcGVjaWZpZWQgYmVsb3cuIiwiZGlzcGxheU5hbWUiOiJBdXRvc2NhbGluZyIsInBhdGgiOiJzY2FubmVyVjQuaW5kZXhlci5zY2FsaW5nLmF1dG9TY2FsaW5nIn0seyJkZXNjcmlwdGlvbiI6IldoZW4gYXV0b3NjYWxpbmcgaXMgZGlzYWJsZWQsIHRoZSBudW1iZXIgb2YgcmVwbGljYXMgd2lsbCBhbHdheXMgYmUgY29uZmlndXJlZCB0byBtYXRjaCB0aGlzIHZhbHVlLiIsImRpc3BsYXlOYW1lIjoiRGVmYXVsdCBSZXBsaWNhcyIsInBhdGgiOiJzY2FubmVyVjQuaW5kZXhlci5zY2FsaW5nLnJlcGxpY2FzIn0seyJkaXNwbGF5TmFtZSI6IkF1dG9zY2FsaW5nIE1pbmltdW0gUmVwbGljYXMiLCJwYXRoIjoic2Nhbm5lclY0LmluZGV4ZXIuc2NhbGluZy5taW5SZXBsaWNhcyIsIngtZGVzY3JpcHRvcnMiOlsidXJuOmFsbTpkZXNjcmlwdG9yOmNvbS50ZWN0b25pYy51aTpmaWVsZERlcGVuZGVuY3k6c2Nhbm5lclY0LmluZGV4ZXIuc2NhbGluZy5hdXRvU2NhbGluZzpFbmFibGVkIl19LHsiZGlzcGxheU5hbWUiOiJBdXRvc2NhbGluZyBNYXhpbXVtIFJlcGxpY2FzIiwicGF0aCI6InNjYW5uZXJWNC5pbmRleGVyLnNjYWxpbmcubWF4UmVwbGljYXMiLCJ4LWRlc2NyaXB0b3JzIjpbInVybjphbG06ZGVzY3JpcHRvcjpjb20udGVjdG9uaWMudWk6ZmllbGREZXBlbmRlbmN5OnNjYW5uZXJWNC5pbmRleGVyLnNjYWxpbmcuYXV0b1NjYWxpbmc6RW5hYmxlZCJdfSx7ImRlc2NyaXB0aW9uIjoiQ29udHJvbHMgdGhlIG51bWJlciBvZiByZXBsaWNhcyBhbmQgYXV0b3NjYWxpbmcgZm9yIHRoaXMgY29tcG9uZW50LiIsImRpc3BsYXlOYW1lIjoiU2NhbGluZyIsInBhdGgiOiJzY2FubmVyVjQubWF0Y2hlci5zY2FsaW5nIn0seyJkZXNjcmlwdGlvbiI6IkFsbG93cyBvdmVycmlkaW5nIHRoZSBkZWZhdWx0IHJlc291cmNlIHNldHRpbmdzIGZvciB0aGlzIGNvbXBvbmVudC4gUGxlYXNlIGNvbnN1bHQgdGhlIGRvY3VtZW50YXRpb25cbmZvciBhbiBvdmVydmlldyBvZiBkZWZhdWx0IHJlc291cmNlIHJlcXVpcmVtZW50cyBhbmQgYSBzaXppbmcgZ3VpZGUuIiwiZGlzcGxheU5hbWUiOiJSZXNvdXJjZXMiLCJwYXRoIjoic2Nhbm5lclY0Lm1hdGNoZXIucmVzb3VyY2VzIiwieC1kZXNjcmlwdG9ycyI6WyJ1cm46YWxtOmRlc2NyaXB0b3I6Y29tLnRlY3RvbmljLnVpOnJlc291cmNlUmVxdWlyZW1lbnRzIl19LHsiZGVzY3JpcHRpb24iOiJJZiB5b3Ugd2FudCB0aGlzIGNvbXBvbmVudCB0byBvbmx5IHJ1biBvbiBzcGVjaWZpYyBub2RlcywgeW91IGNhbiBjb25maWd1cmUgYSBub2RlIHNlbGVjdG9yIGhlcmUuIiwiZGlzcGxheU5hbWUiOiJOb2RlIFNlbGVjdG9yIiwicGF0aCI6InNjYW5uZXJWNC5tYXRjaGVyLm5vZGVTZWxlY3RvciJ9LHsiZGVzY3JpcHRpb24iOiJJZiB5b3Ugd2FudCB0aGlzIGNvbXBvbmVudCB0byBvbmx5IHJ1biBvbiBzcGVjaWZpYyBub2RlcywgeW91IGNhbiBjb25maWd1cmUgdG9sZXJhdGlvbnMgb2YgdGFpbnRlZCBub2Rlcy4iLCJkaXNwbGF5TmFtZSI6IlRvbGVyYXRpb25zIiwicGF0aCI6InNjYW5uZXJWNC5tYXRjaGVyLnRvbGVyYXRpb25zIiwieC1kZXNjcmlwdG9ycyI6WyJ1cm46YWxtOmRlc2NyaXB0b3I6Y29tLnRlY3RvbmljLnVpOnRvbGVyYXRpb25zIl19LHsiZGVzY3JpcHRpb24iOiJIb3N0QWxpYXNlcyBhbGxvd3MgY29uZmlndXJpbmcgYWRkaXRpb25hbCBob3N0bmFtZXMgdG8gcmVzb2x2ZSBpbiB0aGUgcG9kJ3MgaG9zdHMgZmlsZS4iLCJkaXNwbGF5TmFtZSI6Ikhvc3QgQWxpYXNlcyIsInBhdGgiOiJzY2FubmVyVjQubWF0Y2hlci5ob3N0QWxpYXNlcyJ9LHsiZGVzY3JpcHRpb24iOiJXaGVuIGVuYWJsZWQsIHRoZSBudW1iZXIgb2YgY29tcG9uZW50IHJlcGxpY2FzIGlzIG1hbmFnZWQgZHluYW1pY2FsbHkgYmFzZWQgb24gdGhlIGxvYWQsIHdpdGhpbiB0aGUgbGltaXRzXG5zcGVjaWZpZWQgYmVsb3cuIiwiZGlzcGxheU5hbWUiOiJBdXRvc2NhbGluZyIsInBhdGgiOiJzY2FubmVyVjQubWF0Y2hlci5zY2FsaW5nLmF1dG9TY2FsaW5nIn0seyJkZXNjcmlwdGlvbiI6IldoZW4gYXV0b3NjYWxpbmcgaXMgZGlzYWJsZWQsIHRoZSBudW1iZXIgb2YgcmVwbGljYXMgd2lsbCBhbHdheXMgYmUgY29uZmlndXJlZCB0byBtYXRjaCB0aGlzIHZhbHVlLiIsImRpc3BsYXlOYW1lIjoiRGVmYXVsdCBSZXBsaWNhcyIsInBhdGgiOiJzY2FubmVyVjQubWF0Y2hlci5zY2FsaW5nLnJlcGxpY2FzIn0seyJkaXNwbGF5TmFtZSI6IkF1dG9zY2FsaW5nIE1pbmltdW0gUmVwbGljYXMiLCJwYXRoIjoic2Nhbm5lclY0Lm1hdGNoZXIuc2NhbGluZy5taW5SZXBsaWNhcyIsIngtZGVzY3JpcHRvcnMiOlsidXJuOmFsbTpkZXNjcmlwdG9yOmNvbS50ZWN0b25pYy51aTpmaWVsZERlcGVuZGVuY3k6c2Nhbm5lclY0Lm1hdGNoZXIuc2NhbGluZy5hdXRvU2NhbGluZzpFbmFibGVkIl19LHsiZGlzcGxheU5hbWUiOiJBdXRvc2NhbGluZyBNYXhpbXVtIFJlcGxpY2FzIiwicGF0aCI6InNjYW5uZXJWNC5tYXRjaGVyLnNjYWxpbmcubWF4UmVwbGljYXMiLCJ4LWRlc2NyaXB0b3JzIjpbInVybjphbG06ZGVzY3JpcHRvcjpjb20udGVjdG9uaWMudWk6ZmllbGREZXBlbmRlbmN5OnNjYW5uZXJWNC5tYXRjaGVyLnNjYWxpbmcuYXV0b1NjYWxpbmc6RW5hYmxlZCJdfSx7ImRlc2NyaXB0aW9uIjoiRXhwb3NlIHRoZSBtb25pdG9yaW5nIGVuZHBvaW50LiBBIG5ldyBzZXJ2aWNlLCBcIm1vbml0b3JpbmdcIixcbndpdGggcG9ydCA5MDkwLCB3aWxsIGJlIGNyZWF0ZWQgYXMgd2VsbCBhcyBhIG5ldHdvcmsgcG9saWN5IGFsbG93aW5nXG5pbmJvdW5kIGNvbm5lY3Rpb25zIHRvIHRoZSBwb3J0LiIsImRpc3BsYXlOYW1lIjoiRXhwb3NlIEVuZHBvaW50IiwicGF0aCI6InNjYW5uZXJWNC5tb25pdG9yaW5nLmV4cG9zZUVuZHBvaW50In0seyJkaXNwbGF5TmFtZSI6IkFkZGl0aW9uYWwgQ0FzIiwicGF0aCI6InRscy5hZGRpdGlvbmFsQ0FzIn1dLCJzdGF0dXNEZXNjcmlwdG9ycyI6W3siZGVzY3JpcHRpb24iOiJJbmZvIHN0b3JlcyBpbmZvcm1hdGlvbiBvbiBob3cgdG8gb2J0YWluIHRoZSBhZG1pbiBwYXNzd29yZC4iLCJkaXNwbGF5TmFtZSI6IkFkbWluIENyZWRlbnRpYWxzIEluZm8iLCJwYXRoIjoiY2VudHJhbC5hZG1pblBhc3N3b3JkLmluZm8ifSx7ImRlc2NyaXB0aW9uIjoiVGhlIGRlcGxveWVkIHZlcnNpb24gb2YgdGhlIHByb2R1Y3QuIiwiZGlzcGxheU5hbWUiOiJQcm9kdWN0IFZlcnNpb24iLCJwYXRoIjoicHJvZHVjdFZlcnNpb24ifSx7ImRpc3BsYXlOYW1lIjoiQ2VudHJhbCIsInBhdGgiOiJjZW50cmFsIn0seyJkZXNjcmlwdGlvbiI6IkFkbWluUGFzc3dvcmRTZWNyZXRSZWZlcmVuY2UgY29udGFpbnMgcmVmZXJlbmNlIGZvciB0aGUgYWRtaW4gcGFzc3dvcmQiLCJkaXNwbGF5TmFtZSI6IkFkbWluIFBhc3N3b3JkIFNlY3JldCBSZWZlcmVuY2UiLCJwYXRoIjoiY2VudHJhbC5hZG1pblBhc3N3b3JkLmFkbWluUGFzc3dvcmRTZWNyZXRSZWZlcmVuY2UiLCJ4LWRlc2NyaXB0b3JzIjpbInVybjphbG06ZGVzY3JpcHRvcjppby5rdWJlcm5ldGVzOlNlY3JldCJdfV0sInZlcnNpb24iOiJ2MWFscGhhMSJ9LHsiZGVzY3JpcHRpb24iOiJTZWN1cmVkQ2x1c3RlciBpcyB0aGUgY29uZmlndXJhdGlvbiB0ZW1wbGF0ZSBmb3IgdGhlIHNlY3VyZWQgY2x1c3RlciBzZXJ2aWNlcy4gVGhlc2UgaW5jbHVkZSBTZW5zb3IsIHdoaWNoIGlzXG5yZXNwb25zaWJsZSBmb3IgdGhlIGNvbm5lY3Rpb24gdG8gQ2VudHJhbCwgYW5kIENvbGxlY3Rvciwgd2hpY2ggcGVyZm9ybXMgaG9zdC1sZXZlbCBjb2xsZWN0aW9uIG9mIHByb2Nlc3MgYW5kXG5uZXR3b3JrIGV2ZW50cy5cdTAwM2NwXHUwMDNlXG4qKkltcG9ydGFudDoqKiBQbGVhc2Ugc2VlIHRoZSBfSW5zdGFsbGF0aW9uIFByZXJlcXVpc2l0ZXNfIG9uIHRoZSBtYWluIFJIQUNTIG9wZXJhdG9yIHBhZ2UgYmVmb3JlIGRlcGxveWluZywgb3JcbmNvbnN1bHQgdGhlIFJIQUNTIGRvY3VtZW50YXRpb24gb24gY3JlYXRpbmcgY2x1c3RlciBpbml0IGJ1bmRsZXMuIiwiZGlzcGxheU5hbWUiOiJTZWN1cmVkIENsdXN0ZXIiLCJraW5kIjoiU2VjdXJlZENsdXN0ZXIiLCJuYW1lIjoic2VjdXJlZGNsdXN0ZXJzLnBsYXRmb3JtLnN0YWNrcm94LmlvIiwicmVzb3VyY2VzIjpbeyJraW5kIjoiRGFlbW9uU2V0IiwibmFtZSI6IiIsInZlcnNpb24iOiJ2MSJ9LHsia2luZCI6IkRlcGxveW1lbnQiLCJuYW1lIjoiIiwidmVyc2lvbiI6InYxIn1dLCJzcGVjRGVzY3JpcHRvcnMiOlt7ImRlc2NyaXB0aW9uIjoiVGhlIHVuaXF1ZSBuYW1lIG9mIHRoaXMgY2x1c3RlciwgYXMgaXQgd2lsbCBiZSBzaG93biBpbiB0aGUgUmVkIEhhdCBBZHZhbmNlZCBDbHVzdGVyIFNlY3VyaXR5IFVJLlxuTm90ZTogT25jZSBhIG5hbWUgaXMgc2V0IGhlcmUsIHlvdSB3aWxsIG5vdCBiZSBhYmxlIHRvIGNoYW5nZSBpdCBhZ2Fpbi4gWW91IHdpbGwgbmVlZCB0byBkZWxldGVcbmFuZCByZS1jcmVhdGUgdGhpcyBvYmplY3QgaW4gb3JkZXIgdG8gcmVnaXN0ZXIgYSBjbHVzdGVyIHdpdGggYSBuZXcgbmFtZS4iLCJkaXNwbGF5TmFtZSI6IkNsdXN0ZXIgTmFtZSIsInBhdGgiOiJjbHVzdGVyTmFtZSJ9LHsiZGVzY3JpcHRpb24iOiJUaGUgZW5kcG9pbnQgb2YgdGhlIFJlZCBIYXQgQWR2YW5jZWQgQ2x1c3RlciBTZWN1cml0eSBDZW50cmFsIGluc3RhbmNlIHRvIGNvbm5lY3QgdG8sXG5pbmNsdWRpbmcgdGhlIHBvcnQgbnVtYmVyLiBJZiBubyBwb3J0IGlzIHNwZWNpZmllZCBhbmQgdGhlIGVuZHBvaW50IGNvbnRhaW5zIGFuIGh0dHBzOi8vXG5wcm90b2NvbCBzcGVjaWZpY2F0aW9uLCB0aGVuIHRoZSBwb3J0IDQ0MyBpcyBpbXBsaWNpdGx5IGFzc3VtZWQuXG5JZiB1c2luZyBhIG5vbi1nUlBDIGNhcGFibGUgbG9hZCBiYWxhbmNlciwgdXNlIHRoZSBXZWJTb2NrZXQgcHJvdG9jb2wgYnkgcHJlZml4aW5nIHRoZSBlbmRwb2ludFxuYWRkcmVzcyB3aXRoIHdzczovLy5cbk5vdGU6IHdoZW4gbGVhdmluZyB0aGlzIGJsYW5rLCBTZW5zb3Igd2lsbCBhdHRlbXB0IHRvIGNvbm5lY3QgdG8gYSBDZW50cmFsIGluc3RhbmNlIHJ1bm5pbmcgaW4gdGhlIHNhbWVcbm5hbWVzcGFjZS4iLCJkaXNwbGF5TmFtZSI6IkNlbnRyYWwgRW5kcG9pbnQiLCJwYXRoIjoiY2VudHJhbEVuZHBvaW50In0seyJkZXNjcmlwdGlvbiI6IlNldHRpbmdzIGZvciB0aGUgU2Vuc29yIGNvbXBvbmVudC4iLCJkaXNwbGF5TmFtZSI6IlNlbnNvciBTZXR0aW5ncyIsInBhdGgiOiJzZW5zb3IifSx7ImRlc2NyaXB0aW9uIjoiU2V0dGluZ3MgZm9yIHRoZSBBZG1pc3Npb24gQ29udHJvbCBjb21wb25lbnQsIHdoaWNoIGlzIG5lY2Vzc2FyeSBmb3IgcHJldmVudGl2ZSBwb2xpY3kgZW5mb3JjZW1lbnQsXG5hbmQgZm9yIEt1YmVybmV0ZXMgZXZlbnQgbW9uaXRvcmluZy4iLCJkaXNwbGF5TmFtZSI6IkFkbWlzc2lvbiBDb250cm9sIFNldHRpbmdzIiwicGF0aCI6ImFkbWlzc2lvbkNvbnRyb2wifSx7ImRlc2NyaXB0aW9uIjoiU2V0dGluZ3MgZm9yIHRoZSBjb21wb25lbnRzIHJ1bm5pbmcgb24gZWFjaCBub2RlIGluIHRoZSBjbHVzdGVyIChDb2xsZWN0b3IgYW5kIENvbXBsaWFuY2UpLiIsImRpc3BsYXlOYW1lIjoiUGVyIE5vZGUgU2V0dGluZ3MiLCJwYXRoIjoicGVyTm9kZSJ9LHsiZGVzY3JpcHRpb24iOiJTZXR0aW5ncyByZWxhdGluZyB0byB0aGUgaW5nZXN0aW9uIG9mIEt1YmVybmV0ZXMgYXVkaXQgbG9ncy4iLCJkaXNwbGF5TmFtZSI6Ikt1YmVybmV0ZXMgQXVkaXQgTG9ncyBJbmdlc3Rpb24gU2V0dGluZ3MiLCJwYXRoIjoiYXVkaXRMb2dzIn0seyJkZXNjcmlwdGlvbiI6IlNldHRpbmdzIGZvciB0aGUgU2Nhbm5lciBjb21wb25lbnQsIHdoaWNoIGlzIHJlc3BvbnNpYmxlIGZvciB2dWxuZXJhYmlsaXR5IHNjYW5uaW5nIG9mIGNvbnRhaW5lclxuaW1hZ2VzIHN0b3JlZCBpbiBhIGNsdXN0ZXItbG9jYWwgaW1hZ2UgcmVwb3NpdG9yeS4iLCJkaXNwbGF5TmFtZSI6IlNjYW5uZXIgQ29tcG9uZW50IFNldHRpbmdzIiwicGF0aCI6InNjYW5uZXIifSx7ImRlc2NyaXB0aW9uIjoiU2V0dGluZ3MgZm9yIHRoZSBTY2FubmVyIFY0IGNvbXBvbmVudHMsIHdoaWNoIGNhbiBydW4gaW4gYWRkaXRpb24gdG8gdGhlIHByZXZpb3VzbHkgZXhpc3RpbmcgU2Nhbm5lciBjb21wb25lbnRzIiwiZGlzcGxheU5hbWUiOiJTY2FubmVyIFY0IENvbXBvbmVudCBTZXR0aW5ncyIsInBhdGgiOiJzY2FubmVyVjQifSx7ImRlc2NyaXB0aW9uIjoiQWxsb3dzIHlvdSB0byBzcGVjaWZ5IGFkZGl0aW9uYWwgdHJ1c3RlZCBSb290IENBcy4iLCJkaXNwbGF5TmFtZSI6IlRMUyIsInBhdGgiOiJ0bHMifSx7ImRlc2NyaXB0aW9uIjoiQWRkaXRpb25hbCBpbWFnZSBwdWxsIHNlY3JldHMgdG8gYmUgdGFrZW4gaW50byBhY2NvdW50IGZvciBwdWxsaW5nIGltYWdlcy4iLCJkaXNwbGF5TmFtZSI6IkltYWdlIFB1bGwgU2VjcmV0cyIsInBhdGgiOiJpbWFnZVB1bGxTZWNyZXRzIiwieC1kZXNjcmlwdG9ycyI6WyJ1cm46YWxtOmRlc2NyaXB0b3I6Y29tLnRlY3RvbmljLnVpOmFkdmFuY2VkIl19LHsiZGVzY3JpcHRpb24iOiJDdXN0b21pemF0aW9ucyB0byBhcHBseSBvbiBhbGwgQ2VudHJhbCBTZXJ2aWNlcyBjb21wb25lbnRzLiIsImRpc3BsYXlOYW1lIjoiQ3VzdG9taXphdGlvbnMiLCJwYXRoIjoiY3VzdG9taXplIiwieC1kZXNjcmlwdG9ycyI6WyJ1cm46YWxtOmRlc2NyaXB0b3I6Y29tLnRlY3RvbmljLnVpOmFkdmFuY2VkIl19LHsiZGVzY3JpcHRpb24iOiJPdmVybGF5cyIsImRpc3BsYXlOYW1lIjoiT3ZlcmxheXMiLCJwYXRoIjoib3ZlcmxheXMiLCJ4LWRlc2NyaXB0b3JzIjpbInVybjphbG06ZGVzY3JpcHRvcjpjb20udGVjdG9uaWMudWk6aGlkZGVuIl19LHsiZGVzY3JpcHRpb24iOiJNb25pdG9yaW5nIGNvbmZpZ3VyYXRpb24uIiwiZGlzcGxheU5hbWUiOiJNb25pdG9yaW5nIiwicGF0aCI6Im1vbml0b3JpbmciLCJ4LWRlc2NyaXB0b3JzIjpbInVybjphbG06ZGVzY3JpcHRvcjpjb20udGVjdG9uaWMudWk6YWR2YW5jZWQiXX0seyJkZXNjcmlwdGlvbiI6IlNldCB0aGlzIHBhcmFtZXRlciB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCByZWdpc3RyeSBpbiBpbWFnZXMuIEZvciBleGFtcGxlLCBuZ2lueDpsYXRlc3QgLVx1MDAzZSBcdTAwM2NyZWdpc3RyeSBvdmVycmlkZVx1MDAzZS9saWJyYXJ5L25naW54OmxhdGVzdCIsImRpc3BsYXlOYW1lIjoiQ3VzdG9tIERlZmF1bHQgSW1hZ2UgUmVnaXN0cnkiLCJwYXRoIjoicmVnaXN0cnlPdmVycmlkZSIsIngtZGVzY3JpcHRvcnMiOlsidXJuOmFsbTpkZXNjcmlwdG9yOmNvbS50ZWN0b25pYy51aTphZHZhbmNlZCJdfSx7ImRlc2NyaXB0aW9uIjoiTmV0d29yayBjb25maWd1cmF0aW9uLiIsImRpc3BsYXlOYW1lIjoiTmV0d29yayIsInBhdGgiOiJuZXR3b3JrIiwieC1kZXNjcmlwdG9ycyI6WyJ1cm46YWxtOmRlc2NyaXB0b3I6Y29tLnRlY3RvbmljLnVpOmFkdmFuY2VkIl19LHsiZGVzY3JpcHRpb24iOiJEZXByZWNhdGVkIGZpZWxkLiBUaGlzIGZpZWxkIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLlxuTWlzY2VsbGFuZW91cyBzZXR0aW5ncy4iLCJkaXNwbGF5TmFtZSI6Ik1pc2NlbGxhbmVvdXMiLCJwYXRoIjoibWlzYyIsIngtZGVzY3JpcHRvcnMiOlsidXJuOmFsbTpkZXNjcmlwdG9yOmNvbS50ZWN0b25pYy51aTpoaWRkZW4iXX0seyJkZXNjcmlwdGlvbiI6IlNldCB0aGlzIHRvICd0cnVlJyB0byBlbmFibGUgcHJldmVudGl2ZSBwb2xpY3kgZW5mb3JjZW1lbnQgZm9yIG9iamVjdCBjcmVhdGlvbnMuIiwiZGlzcGxheU5hbWUiOiJMaXN0ZW4gT24gQ3JlYXRlcyIsInBhdGgiOiJhZG1pc3Npb25Db250cm9sLmxpc3Rlbk9uQ3JlYXRlcyJ9LHsiZGVzY3JpcHRpb24iOiJTZXQgdGhpcyB0byAndHJ1ZScgdG8gZW5hYmxlIHByZXZlbnRpdmUgcG9saWN5IGVuZm9yY2VtZW50IGZvciBvYmplY3QgdXBkYXRlcy5cblxuTm90ZTogdGhpcyB3aWxsIG5vdCBoYXZlIGFueSBlZmZlY3QgdW5sZXNzICdMaXN0ZW4gT24gQ3JlYXRlcycgaXMgc2V0IHRvICd0cnVlJyBhcyB3ZWxsLiIsImRpc3BsYXlOYW1lIjoiTGlzdGVuIE9uIFVwZGF0ZXMiLCJwYXRoIjoiYWRtaXNzaW9uQ29udHJvbC5saXN0ZW5PblVwZGF0ZXMifSx7ImRlc2NyaXB0aW9uIjoiU2V0IHRoaXMgdG8gJ3RydWUnIHRvIGVuYWJsZSBtb25pdG9yaW5nIGFuZCBlbmZvcmNlbWVudCBmb3IgS3ViZXJuZXRlcyBldmVudHMgKHBvcnQtZm9yd2FyZCBhbmQgZXhlYykuIiwiZGlzcGxheU5hbWUiOiJMaXN0ZW4gT24gRXZlbnRzIiwicGF0aCI6ImFkbWlzc2lvbkNvbnRyb2wubGlzdGVuT25FdmVudHMifSx7ImRlc2NyaXB0aW9uIjoiU2hvdWxkIGlubGluZSBzY2FubmluZyBiZSBwZXJmb3JtZWQgb24gcHJldmlvdXNseSB1bnNjYW5uZWQgaW1hZ2VzIGR1cmluZyBhIGRlcGxveW1lbnRzIGFkbWlzc2lvbiByZXZpZXcuIiwiZGlzcGxheU5hbWUiOiJDb250YWN0IEltYWdlIFNjYW5uZXJzIiwicGF0aCI6ImFkbWlzc2lvbkNvbnRyb2wuY29udGFjdEltYWdlU2Nhbm5lcnMifSx7ImRlc2NyaXB0aW9uIjoiTWF4aW11bSB0aW1lb3V0IHBlcmlvZCBmb3IgYWRtaXNzaW9uIHJldmlldywgdXBvbiB3aGljaCBhZG1pc3Npb24gcmV2aWV3IHdpbGwgZmFpbCBvcGVuLlxuVXNlIGl0IHRvIHNldCByZXF1ZXN0IHRpbWVvdXRzIHdoZW4geW91IGVuYWJsZSBpbmxpbmUgaW1hZ2Ugc2Nhbm5pbmcuXG5UaGUgZGVmYXVsdCBrdWJlY3RsIHRpbWVvdXQgaXMgMzAgc2Vjb25kczsgdGFraW5nIHBhZGRpbmcgaW50byBhY2NvdW50LCB0aGlzIHNob3VsZCBub3QgZXhjZWVkIDI1IHNlY29uZHMuXG5PbiBPcGVuU2hpZnQgd2ViaG9vayB0aW1lb3V0cyBjYW5ub3QgZXhjZWVkIDEzIHNlY29uZHMsIGhlbmNlIHdpdGggcGFkZGluZyB0aGlzIHZhbHVlIHNoYWxsIG5vdCBleGNlZWQgMTAgc2Vjb25kcy4iLCJkaXNwbGF5TmFtZSI6IlRpbWVvdXQgU2Vjb25kcyIsInBhdGgiOiJhZG1pc3Npb25Db250cm9sLnRpbWVvdXRTZWNvbmRzIn0seyJkZXNjcmlwdGlvbiI6IkVuYWJsZXMgdGVhbXMgdG8gYnlwYXNzIGFkbWlzc2lvbiBjb250cm9sIGluIGEgbW9uaXRvcmVkIG1hbm5lciBpbiB0aGUgZXZlbnQgb2YgYW4gZW1lcmdlbmN5LiIsImRpc3BsYXlOYW1lIjoiQnlwYXNzIiwicGF0aCI6ImFkbWlzc2lvbkNvbnRyb2wuYnlwYXNzIn0seyJkZXNjcmlwdGlvbiI6IlRoZSBudW1iZXIgb2YgcmVwbGljYXMgb2YgdGhlIGFkbWlzc2lvbiBjb250cm9sIHBvZC4iLCJkaXNwbGF5TmFtZSI6IlJlcGxpY2FzIiwicGF0aCI6ImFkbWlzc2lvbkNvbnRyb2wucmVwbGljYXMifSx7ImRlc2NyaXB0aW9uIjoiQWxsb3dzIG92ZXJyaWRpbmcgdGhlIGRlZmF1bHQgcmVzb3VyY2Ugc2V0dGluZ3MgZm9yIHRoaXMgY29tcG9uZW50LiBQbGVhc2UgY29uc3VsdCB0aGUgZG9jdW1lbnRhdGlvblxuZm9yIGFuIG92ZXJ2aWV3IG9mIGRlZmF1bHQgcmVzb3VyY2UgcmVxdWlyZW1lbnRzIGFuZCBhIHNpemluZyBndWlkZS4iLCJkaXNwbGF5TmFtZSI6IlJlc291cmNlcyIsInBhdGgiOiJhZG1pc3Npb25Db250cm9sLnJlc291cmNlcyIsIngtZGVzY3JpcHRvcnMiOlsidXJuOmFsbTpkZXNjcmlwdG9yOmNvbS50ZWN0b25pYy51aTpyZXNvdXJjZVJlcXVpcmVtZW50cyJdfSx7ImRlc2NyaXB0aW9uIjoiSWYgeW91IHdhbnQgdGhpcyBjb21wb25lbnQgdG8gb25seSBydW4gb24gc3BlY2lmaWMgbm9kZXMsIHlvdSBjYW4gY29uZmlndXJlIGEgbm9kZSBzZWxlY3RvciBoZXJlLiIsImRpc3BsYXlOYW1lIjoiTm9kZSBTZWxlY3RvciIsInBhdGgiOiJhZG1pc3Npb25Db250cm9sLm5vZGVTZWxlY3RvciJ9LHsiZGVzY3JpcHRpb24iOiJJZiB5b3Ugd2FudCB0aGlzIGNvbXBvbmVudCB0byBvbmx5IHJ1biBvbiBzcGVjaWZpYyBub2RlcywgeW91IGNhbiBjb25maWd1cmUgdG9sZXJhdGlvbnMgb2YgdGFpbnRlZCBub2Rlcy4iLCJkaXNwbGF5TmFtZSI6IlRvbGVyYXRpb25zIiwicGF0aCI6ImFkbWlzc2lvbkNvbnRyb2wudG9sZXJhdGlvbnMiLCJ4LWRlc2NyaXB0b3JzIjpbInVybjphbG06ZGVzY3JpcHRvcjpjb20udGVjdG9uaWMudWk6dG9sZXJhdGlvbnMiXX0seyJkZXNjcmlwdGlvbiI6Ikhvc3RBbGlhc2VzIGFsbG93cyBjb25maWd1cmluZyBhZGRpdGlvbmFsIGhvc3RuYW1lcyB0byByZXNvbHZlIGluIHRoZSBwb2QncyBob3N0cyBmaWxlLiIsImRpc3BsYXlOYW1lIjoiSG9zdCBBbGlhc2VzIiwicGF0aCI6ImFkbWlzc2lvbkNvbnRyb2wuaG9zdEFsaWFzZXMifSx7ImRlc2NyaXB0aW9uIjoiV2hldGhlciBjb2xsZWN0aW9uIG9mIEt1YmVybmV0ZXMgYXVkaXQgbG9ncyBzaG91bGQgYmUgZW5hYmxlZCBvciBkaXNhYmxlZC4gQ3VycmVudGx5LCB0aGlzIGlzIG9ubHlcbnN1cHBvcnRlZCBvbiBPcGVuU2hpZnQgNCwgYW5kIHRyeWluZyB0byBlbmFibGUgaXQgb24gbm9uLU9wZW5TaGlmdCA0IGNsdXN0ZXJzIHdpbGwgcmVzdWx0IGluIGFuIGVycm9yLlxuVXNlIHRoZSAnQXV0bycgc2V0dGluZyB0byBlbmFibGUgaXQgb24gY29tcGF0aWJsZSBlbnZpcm9ubWVudHMsIGFuZCBkaXNhYmxlIGl0IGVsc2V3aGVyZS4iLCJkaXNwbGF5TmFtZSI6IkNvbGxlY3Rpb24iLCJwYXRoIjoiYXVkaXRMb2dzLmNvbGxlY3Rpb24ifSx7ImRlc2NyaXB0aW9uIjoiQ3VzdG9tIGxhYmVscyB0byBzZXQgb24gYWxsIG1hbmFnZWQgb2JqZWN0cy4iLCJkaXNwbGF5TmFtZSI6IkxhYmVscyIsInBhdGgiOiJjdXN0b21pemUubGFiZWxzIn0seyJkZXNjcmlwdGlvbiI6IkN1c3RvbSBhbm5vdGF0aW9ucyB0byBzZXQgb24gYWxsIG1hbmFnZWQgb2JqZWN0cy4iLCJkaXNwbGF5TmFtZSI6IkFubm90YXRpb25zIiwicGF0aCI6ImN1c3RvbWl6ZS5hbm5vdGF0aW9ucyJ9LHsiZGVzY3JpcHRpb24iOiJDdXN0b20gZW52aXJvbm1lbnQgdmFyaWFibGVzIHRvIHNldCBvbiBtYW5hZ2VkIHBvZHMnIGNvbnRhaW5lcnMuIiwiZGlzcGxheU5hbWUiOiJFbnZpcm9ubWVudCBWYXJpYWJsZXMiLCJwYXRoIjoiY3VzdG9taXplLmVudlZhcnMifSx7ImRlc2NyaXB0aW9uIjoiVGhlIG5hbWUgb2YgdGhlIHJlZmVyZW5jZWQgc2VjcmV0LiIsImRpc3BsYXlOYW1lIjoiTmFtZSIsInBhdGgiOiJpbWFnZVB1bGxTZWNyZXRzWzBdLm5hbWUiLCJ4LWRlc2NyaXB0b3JzIjpbInVybjphbG06ZGVzY3JpcHRvcjppby5rdWJlcm5ldGVzOlNlY3JldCJdfSx7ImRlc2NyaXB0aW9uIjoiRGVwcmVjYXRlZCBmaWVsZC4gVGhpcyBmaWVsZCB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS5cblNldCB0aGlzIHRvIHRydWUgdG8gaGF2ZSB0aGUgb3BlcmF0b3IgY3JlYXRlIFNlY3VyaXR5Q29udGV4dENvbnN0cmFpbnRzIChTQ0NzKSBmb3IgdGhlIG9wZXJhbmRzLiBUaGlzXG5pc24ndCB1c3VhbGx5IG5lZWRlZCwgYW5kIG1heSBpbnRlcmZlcmUgd2l0aCBvdGhlciB3b3JrbG9hZHMuIiwiZGlzcGxheU5hbWUiOiJDcmVhdGUgU2VjdXJpdHlDb250ZXh0Q29uc3RyYWludHMgZm9yIE9wZXJhbmQiLCJwYXRoIjoibWlzYy5jcmVhdGVTQ0NzIiwieC1kZXNjcmlwdG9ycyI6WyJ1cm46YWxtOmRlc2NyaXB0b3I6Y29tLnRlY3RvbmljLnVpOmhpZGRlbiJdfSx7ImRpc3BsYXlOYW1lIjoiRW5hYmxlZCIsInBhdGgiOiJtb25pdG9yaW5nLm9wZW5zaGlmdC5lbmFibGVkIiwieC1kZXNjcmlwdG9ycyI6WyJ1cm46YWxtOmRlc2NyaXB0b3I6Y29tLnRlY3RvbmljLnVpOmJvb2xlYW5Td2l0Y2giXX0seyJkZXNjcmlwdGlvbiI6IlRvIHByb3ZpZGUgc2VjdXJpdHkgYXQgdGhlIG5ldHdvcmsgbGV2ZWwgdGhlIEFDUyBPcGVyYXRvciBjcmVhdGVzIE5ldHdvcmtQb2xpY3kgcmVzb3VyY2VzIGJ5IGRlZmF1bHQuIElmIHlvdSB3YW50IHRvIG1hbmFnZSB5b3VyIG93biBOZXR3b3JrUG9saWN5IG9iamVjdHMgdGhlbiBzZXQgdGhpcyB0byBcIkRpc2FibGVkXCIuIiwiZGlzcGxheU5hbWUiOiJOZXR3b3JrIFBvbGljaWVzIiwicGF0aCI6Im5ldHdvcmsucG9saWNpZXMifSx7ImRlc2NyaXB0aW9uIjoiUmVzb3VyY2UgQVBJIHZlcnNpb24uIiwiZGlzcGxheU5hbWUiOiJBUEkgVmVyc2lvbiIsInBhdGgiOiJvdmVybGF5c1swXS5hcGlWZXJzaW9uIn0seyJkZXNjcmlwdGlvbiI6IlJlc291cmNlIGtpbmQuIiwiZGlzcGxheU5hbWUiOiJLaW5kIiwicGF0aCI6Im92ZXJsYXlzWzBdLmtpbmQifSx7ImRlc2NyaXB0aW9uIjoiTmFtZSBvZiByZXNvdXJjZS4iLCJkaXNwbGF5TmFtZSI6Ik5hbWUiLCJwYXRoIjoib3ZlcmxheXNbMF0ubmFtZSJ9LHsiZGVzY3JpcHRpb24iOiJPcHRpb25hbCBtYXJrcyB0aGUgb3ZlcmxheSBhcyBvcHRpb25hbC5cbldoZW4gT3B0aW9uYWwgaXMgdHJ1ZSwgYW5kIHRoZSBzcGVjaWZpZWQgcmVzb3VyY2UgZG9lcyBub3QgZXhpc3QgaW4gdGhlIG91dHB1dCBtYW5pZmVzdHMsIHRoZSBvdmVybGF5IHdpbGwgYmUgc2tpcHBlZCwgYW5kIGEgd2FybmluZyB3aWxsIGJlIGxvZ2dlZC5cbldoZW4gT3B0aW9uYWwgaXMgZmFsc2UsIGFuZCB0aGUgc3BlY2lmaWVkIHJlc291cmNlIGRvZXMgbm90IGV4aXN0IGluIHRoZSBvdXRwdXQgbWFuaWZlc3RzLCBhbiBlcnJvciB3aWxsIGJlIHRocm93bi4iLCJkaXNwbGF5TmFtZSI6Ik9wdGlvbmFsIiwicGF0aCI6Im92ZXJsYXlzWzBdLm9wdGlvbmFsIn0seyJkZXNjcmlwdGlvbiI6Ikxpc3Qgb2YgcGF0Y2hlcyB0byBhcHBseSB0byByZXNvdXJjZS4iLCJkaXNwbGF5TmFtZSI6IlBhdGNoZXMiLCJwYXRoIjoib3ZlcmxheXNbMF0ucGF0Y2hlcyJ9LHsiZGVzY3JpcHRpb24iOiJQYXRoIG9mIHRoZSBmb3JtIGEuW2tleTE6dmFsdWUxXS5iLls6dmFsdWUyXVxuV2hlcmUgW2tleTE6dmFsdWUxXSBpcyBhIHNlbGVjdG9yIGZvciBhIGtleS12YWx1ZSBwYWlyIHRvIGlkZW50aWZ5IGEgbGlzdCBlbGVtZW50IGFuZCBbOnZhbHVlXSBpcyBhIHZhbHVlXG5zZWxlY3RvciB0byBpZGVudGlmeSBhIGxpc3QgZWxlbWVudCBpbiBhIGxlYWYgbGlzdC5cbkFsbCBwYXRoIGludGVybWVkaWF0ZSBub2RlcyBtdXN0IGV4aXN0LiIsImRpc3BsYXlOYW1lIjoiUGF0aCIsInBhdGgiOiJvdmVybGF5c1swXS5wYXRjaGVzWzBdLnBhdGgifSx7ImRlc2NyaXB0aW9uIjoiVmFsdWUgdG8gYWRkLCBkZWxldGUgb3IgcmVwbGFjZS5cbkZvciBhZGQsIHRoZSBwYXRoIHNob3VsZCBiZSBhIG5ldyBsZWFmLlxuRm9yIGRlbGV0ZSwgdmFsdWUgc2hvdWxkIGJlIHVuc2V0LlxuRm9yIHJlcGxhY2UsIHBhdGggc2hvdWxkIHJlZmVyZW5jZSBhbiBleGlzdGluZyBub2RlLlxuQWxsIHZhbHVlcyBhcmUgc3RyaW5ncyBidXQgYXJlIGNvbnZlcnRlZCBpbnRvIGFwcHJvcHJpYXRlIHR5cGUgYmFzZWQgb24gc2NoZW1hLiIsImRpc3BsYXlOYW1lIjoiVmFsdWUiLCJwYXRoIjoib3ZlcmxheXNbMF0ucGF0Y2hlc1swXS52YWx1ZSJ9LHsiZGVzY3JpcHRpb24iOiJWZXJiYXRpbSB2YWx1ZSB0byBhZGQsIGRlbGV0ZSBvciByZXBsYWNlLlxuU2FtZSBhcyBWYWx1ZSwgaG93ZXZlciB0aGUgY29udGVudCBpcyBub3QgaW50ZXJwcmV0ZWQgYXMgWUFNTCwgYnV0IHRyZWF0ZWQgYXMgbGl0ZXJhbCBzdHJpbmcgaW5zdGVhZC5cbkF0IGxlYXN0IG9uZSBvZiBWYWx1ZSBhbmQgVmVyYmF0aW0gbXVzdCBiZSBlbXB0eS4iLCJkaXNwbGF5TmFtZSI6IlZlcmJhdGltIiwicGF0aCI6Im92ZXJsYXlzWzBdLnBhdGNoZXNbMF0udmVyYmF0aW0ifSx7ImRlc2NyaXB0aW9uIjoiU2V0dGluZ3MgZm9yIHRoZSBDb2xsZWN0b3IgY29udGFpbmVyLCB3aGljaCBpcyByZXNwb25zaWJsZSBmb3IgY29sbGVjdGluZyBwcm9jZXNzIGFuZCBuZXR3b3JraW5nXG5hY3Rpdml0eSBhdCB0aGUgaG9zdCBsZXZlbC4iLCJkaXNwbGF5TmFtZSI6IkNvbGxlY3RvciBTZXR0aW5ncyIsInBhdGgiOiJwZXJOb2RlLmNvbGxlY3RvciJ9LHsiZGVzY3JpcHRpb24iOiJTZXR0aW5ncyBmb3IgdGhlIENvbXBsaWFuY2UgY29udGFpbmVyLCB3aGljaCBpcyByZXNwb25zaWJsZSBmb3IgY2hlY2tpbmcgaG9zdC1sZXZlbCBjb25maWd1cmF0aW9ucy4iLCJkaXNwbGF5TmFtZSI6IkNvbXBsaWFuY2UgU2V0dGluZ3MiLCJwYXRoIjoicGVyTm9kZS5jb21wbGlhbmNlIn0seyJkZXNjcmlwdGlvbiI6IlNldHRpbmdzIGZvciB0aGUgTm9kZS1JbnZlbnRvcnkgY29udGFpbmVyLCB3aGljaCBpcyByZXNwb25zaWJsZSBmb3Igc2Nhbm5pbmcgdGhlIE5vZGVzJyBmaWxlc3lzdGVtLiIsImRpc3BsYXlOYW1lIjoiTm9kZSBTY2FubmluZyBTZXR0aW5ncyIsInBhdGgiOiJwZXJOb2RlLm5vZGVJbnZlbnRvcnkifSx7ImRlc2NyaXB0aW9uIjoiVG8gZW5zdXJlIGNvbXByZWhlbnNpdmUgbW9uaXRvcmluZyBvZiB5b3VyIGNsdXN0ZXIgYWN0aXZpdHksIFJlZCBIYXQgQWR2YW5jZWQgQ2x1c3RlciBTZWN1cml0eVxud2lsbCBydW4gc2VydmljZXMgb24gZXZlcnkgbm9kZSBpbiB0aGUgY2x1c3RlciwgaW5jbHVkaW5nIHRhaW50ZWQgbm9kZXMgYnkgZGVmYXVsdC4gSWYgeW91IGRvXG5ub3Qgd2FudCB0aGlzIGJlaGF2aW9yLCBwbGVhc2Ugc2VsZWN0ICdBdm9pZFRhaW50cycgaGVyZS4iLCJkaXNwbGF5TmFtZSI6IlRhaW50IFRvbGVyYXRpb24iLCJwYXRoIjoicGVyTm9kZS50YWludFRvbGVyYXRpb24ifSx7ImRlc2NyaXB0aW9uIjoiSG9zdEFsaWFzZXMgYWxsb3dzIGNvbmZpZ3VyaW5nIGFkZGl0aW9uYWwgaG9zdG5hbWVzIHRvIHJlc29sdmUgaW4gdGhlIHBvZCdzIGhvc3RzIGZpbGUuIiwiZGlzcGxheU5hbWUiOiJIb3N0IEFsaWFzZXMiLCJwYXRoIjoicGVyTm9kZS5ob3N0QWxpYXNlcyJ9LHsiZGVzY3JpcHRpb24iOiJUaGUgbWV0aG9kIGZvciBzeXN0ZW0tbGV2ZWwgZGF0YSBjb2xsZWN0aW9uLiBDT1JFX0JQRiBpcyByZWNvbW1lbmRlZC5cbklmIHlvdSBzZWxlY3QgXCJOb0NvbGxlY3Rpb25cIiwgeW91IHdpbGwgbm90IGJlIGFibGUgdG8gc2VlIGFueSBpbmZvcm1hdGlvbiBhYm91dCBuZXR3b3JrIGFjdGl2aXR5XG5hbmQgcHJvY2VzcyBleGVjdXRpb25zLiBUaGUgcmVtYWluaW5nIHNldHRpbmdzIGluIHRoZXNlIHNlY3Rpb24gd2lsbCBub3QgaGF2ZSBhbnkgZWZmZWN0LlxuVGhlIHZhbHVlIGlzIGEgc3ViamVjdCBvZiBjb252ZXJzaW9uIGJ5IHRoZSBvcGVyYXRvciBpZiBuZWVkZWQsIGUuZy4gdG9cbnJlbW92ZSBkZXByZWNhdGVkIG1ldGhvZHMuIiwiZGlzcGxheU5hbWUiOiJDb2xsZWN0aW9uIiwicGF0aCI6InBlck5vZGUuY29sbGVjdG9yLmNvbGxlY3Rpb24iLCJ4LWRlc2NyaXB0b3JzIjpbInVybjphbG06ZGVzY3JpcHRvcjpjb20udGVjdG9uaWMudWk6c2VsZWN0OkNPUkVfQlBGIiwidXJuOmFsbTpkZXNjcmlwdG9yOmNvbS50ZWN0b25pYy51aTpzZWxlY3Q6Tm9Db2xsZWN0aW9uIl19LHsiZGVzY3JpcHRpb24iOiJEZXByZWNhdGVkIGZpZWxkLiIsImRpc3BsYXlOYW1lIjoiSW1hZ2UgRmxhdm9yIiwicGF0aCI6InBlck5vZGUuY29sbGVjdG9yLmltYWdlRmxhdm9yIiwieC1kZXNjcmlwdG9ycyI6WyJ1cm46YWxtOmRlc2NyaXB0b3I6Y29tLnRlY3RvbmljLnVpOmhpZGRlbiJdfSx7ImRlc2NyaXB0aW9uIjoiRGVwcmVjYXRlZCBmaWVsZC4gVGhpcyBmaWVsZCB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4iLCJkaXNwbGF5TmFtZSI6IkZvcmNlIENvbGxlY3Rpb24iLCJwYXRoIjoicGVyTm9kZS5jb2xsZWN0b3IuZm9yY2VDb2xsZWN0aW9uIiwieC1kZXNjcmlwdG9ycyI6WyJ1cm46YWxtOmRlc2NyaXB0b3I6Y29tLnRlY3RvbmljLnVpOmhpZGRlbiJdfSx7ImRlc2NyaXB0aW9uIjoiQWxsb3dzIG92ZXJyaWRpbmcgdGhlIGRlZmF1bHQgcmVzb3VyY2Ugc2V0dGluZ3MgZm9yIHRoaXMgY29tcG9uZW50LiBQbGVhc2UgY29uc3VsdCB0aGUgZG9jdW1lbnRhdGlvblxuZm9yIGFuIG92ZXJ2aWV3IG9mIGRlZmF1bHQgcmVzb3VyY2UgcmVxdWlyZW1lbnRzIGFuZCBhIHNpemluZyBndWlkZS4iLCJkaXNwbGF5TmFtZSI6IlJlc291cmNlcyIsInBhdGgiOiJwZXJOb2RlLmNvbGxlY3Rvci5yZXNvdXJjZXMiLCJ4LWRlc2NyaXB0b3JzIjpbInVybjphbG06ZGVzY3JpcHRvcjpjb20udGVjdG9uaWMudWk6cmVzb3VyY2VSZXF1aXJlbWVudHMiXX0seyJkZXNjcmlwdGlvbiI6IkFsbG93cyBvdmVycmlkaW5nIHRoZSBkZWZhdWx0IHJlc291cmNlIHNldHRpbmdzIGZvciB0aGlzIGNvbXBvbmVudC4gUGxlYXNlIGNvbnN1bHQgdGhlIGRvY3VtZW50YXRpb25cbmZvciBhbiBvdmVydmlldyBvZiBkZWZhdWx0IHJlc291cmNlIHJlcXVpcmVtZW50cyBhbmQgYSBzaXppbmcgZ3VpZGUuIiwiZGlzcGxheU5hbWUiOiJSZXNvdXJjZXMiLCJwYXRoIjoicGVyTm9kZS5jb21wbGlhbmNlLnJlc291cmNlcyIsIngtZGVzY3JpcHRvcnMiOlsidXJuOmFsbTpkZXNjcmlwdG9yOmNvbS50ZWN0b25pYy51aTpyZXNvdXJjZVJlcXVpcmVtZW50cyJdfSx7ImRlc2NyaXB0aW9uIjoiQWxsb3dzIG92ZXJyaWRpbmcgdGhlIGRlZmF1bHQgcmVzb3VyY2Ugc2V0dGluZ3MgZm9yIHRoaXMgY29tcG9uZW50LiBQbGVhc2UgY29uc3VsdCB0aGUgZG9jdW1lbnRhdGlvblxuZm9yIGFuIG92ZXJ2aWV3IG9mIGRlZmF1bHQgcmVzb3VyY2UgcmVxdWlyZW1lbnRzIGFuZCBhIHNpemluZyBndWlkZS4iLCJkaXNwbGF5TmFtZSI6IlJlc291cmNlcyIsInBhdGgiOiJwZXJOb2RlLm5vZGVJbnZlbnRvcnkucmVzb3VyY2VzIiwieC1kZXNjcmlwdG9ycyI6WyJ1cm46YWxtOmRlc2NyaXB0b3I6Y29tLnRlY3RvbmljLnVpOnJlc291cmNlUmVxdWlyZW1lbnRzIl19LHsiZGVzY3JpcHRpb24iOiJJZiB5b3UgZG8gbm90IHdhbnQgdG8gZGVwbG95IHRoZSBSZWQgSGF0IEFkdmFuY2VkIENsdXN0ZXIgU2VjdXJpdHkgU2Nhbm5lciwgeW91IGNhbiBkaXNhYmxlIGl0IGhlcmVcbihub3QgcmVjb21tZW5kZWQpLlxuSWYgeW91IGRvIHNvLCBhbGwgdGhlIHNldHRpbmdzIGluIHRoaXMgc2VjdGlvbiB3aWxsIGhhdmUgbm8gZWZmZWN0LiIsImRpc3BsYXlOYW1lIjoiU2Nhbm5lciBDb21wb25lbnQiLCJwYXRoIjoic2Nhbm5lci5zY2FubmVyQ29tcG9uZW50In0seyJkZXNjcmlwdGlvbiI6IlNldHRpbmdzIHBlcnRhaW5pbmcgdG8gdGhlIGFuYWx5emVyIGRlcGxveW1lbnQsIHN1Y2ggYXMgZm9yIGF1dG9zY2FsaW5nLiIsImRpc3BsYXlOYW1lIjoiQW5hbHl6ZXIiLCJwYXRoIjoic2Nhbm5lci5hbmFseXplciJ9LHsiZGVzY3JpcHRpb24iOiJTZXR0aW5ncyBwZXJ0YWluaW5nIHRvIHRoZSBkYXRhYmFzZSB1c2VkIGJ5IHRoZSBSZWQgSGF0IEFkdmFuY2VkIENsdXN0ZXIgU2VjdXJpdHkgU2Nhbm5lci4iLCJkaXNwbGF5TmFtZSI6IkRCIiwicGF0aCI6InNjYW5uZXIuZGIifSx7ImRlc2NyaXB0aW9uIjoiQ29udHJvbHMgdGhlIG51bWJlciBvZiBhbmFseXplciByZXBsaWNhcyBhbmQgYXV0b3NjYWxpbmcuIiwiZGlzcGxheU5hbWUiOiJTY2FsaW5nIiwicGF0aCI6InNjYW5uZXIuYW5hbHl6ZXIuc2NhbGluZyJ9LHsiZGVzY3JpcHRpb24iOiJBbGxvd3Mgb3ZlcnJpZGluZyB0aGUgZGVmYXVsdCByZXNvdXJjZSBzZXR0aW5ncyBmb3IgdGhpcyBjb21wb25lbnQuIFBsZWFzZSBjb25zdWx0IHRoZSBkb2N1bWVudGF0aW9uXG5mb3IgYW4gb3ZlcnZpZXcgb2YgZGVmYXVsdCByZXNvdXJjZSByZXF1aXJlbWVudHMgYW5kIGEgc2l6aW5nIGd1aWRlLiIsImRpc3BsYXlOYW1lIjoiUmVzb3VyY2VzIiwicGF0aCI6InNjYW5uZXIuYW5hbHl6ZXIucmVzb3VyY2VzIiwieC1kZXNjcmlwdG9ycyI6WyJ1cm46YWxtOmRlc2NyaXB0b3I6Y29tLnRlY3RvbmljLnVpOnJlc291cmNlUmVxdWlyZW1lbnRzIl19LHsiZGVzY3JpcHRpb24iOiJJZiB5b3Ugd2FudCB0aGlzIGNvbXBvbmVudCB0byBvbmx5IHJ1biBvbiBzcGVjaWZpYyBub2RlcywgeW91IGNhbiBjb25maWd1cmUgYSBub2RlIHNlbGVjdG9yIGhlcmUuIiwiZGlzcGxheU5hbWUiOiJOb2RlIFNlbGVjdG9yIiwicGF0aCI6InNjYW5uZXIuYW5hbHl6ZXIubm9kZVNlbGVjdG9yIn0seyJkZXNjcmlwdGlvbiI6IklmIHlvdSB3YW50IHRoaXMgY29tcG9uZW50IHRvIG9ubHkgcnVuIG9uIHNwZWNpZmljIG5vZGVzLCB5b3UgY2FuIGNvbmZpZ3VyZSB0b2xlcmF0aW9ucyBvZiB0YWludGVkIG5vZGVzLiIsImRpc3BsYXlOYW1lIjoiVG9sZXJhdGlvbnMiLCJwYXRoIjoic2Nhbm5lci5hbmFseXplci50b2xlcmF0aW9ucyIsIngtZGVzY3JpcHRvcnMiOlsidXJuOmFsbTpkZXNjcmlwdG9yOmNvbS50ZWN0b25pYy51aTp0b2xlcmF0aW9ucyJdfSx7ImRlc2NyaXB0aW9uIjoiSG9zdEFsaWFzZXMgYWxsb3dzIGNvbmZpZ3VyaW5nIGFkZGl0aW9uYWwgaG9zdG5hbWVzIHRvIHJlc29sdmUgaW4gdGhlIHBvZCdzIGhvc3RzIGZpbGUuIiwiZGlzcGxheU5hbWUiOiJIb3N0IEFsaWFzZXMiLCJwYXRoIjoic2Nhbm5lci5hbmFseXplci5ob3N0QWxpYXNlcyJ9LHsiZGVzY3JpcHRpb24iOiJXaGVuIGVuYWJsZWQsIHRoZSBudW1iZXIgb2YgY29tcG9uZW50IHJlcGxpY2FzIGlzIG1hbmFnZWQgZHluYW1pY2FsbHkgYmFzZWQgb24gdGhlIGxvYWQsIHdpdGhpbiB0aGUgbGltaXRzXG5zcGVjaWZpZWQgYmVsb3cuIiwiZGlzcGxheU5hbWUiOiJBdXRvc2NhbGluZyIsInBhdGgiOiJzY2FubmVyLmFuYWx5emVyLnNjYWxpbmcuYXV0b1NjYWxpbmcifSx7ImRlc2NyaXB0aW9uIjoiV2hlbiBhdXRvc2NhbGluZyBpcyBkaXNhYmxlZCwgdGhlIG51bWJlciBvZiByZXBsaWNhcyB3aWxsIGFsd2F5cyBiZSBjb25maWd1cmVkIHRvIG1hdGNoIHRoaXMgdmFsdWUuIiwiZGlzcGxheU5hbWUiOiJEZWZhdWx0IFJlcGxpY2FzIiwicGF0aCI6InNjYW5uZXIuYW5hbHl6ZXIuc2NhbGluZy5yZXBsaWNhcyJ9LHsiZGlzcGxheU5hbWUiOiJBdXRvc2NhbGluZyBNaW5pbXVtIFJlcGxpY2FzIiwicGF0aCI6InNjYW5uZXIuYW5hbHl6ZXIuc2NhbGluZy5taW5SZXBsaWNhcyIsIngtZGVzY3JpcHRvcnMiOlsidXJuOmFsbTpkZXNjcmlwdG9yOmNvbS50ZWN0b25pYy51aTpmaWVsZERlcGVuZGVuY3k6c2Nhbm5lci5hbmFseXplci5zY2FsaW5nLmF1dG9TY2FsaW5nOkVuYWJsZWQiXX0seyJkaXNwbGF5TmFtZSI6IkF1dG9zY2FsaW5nIE1heGltdW0gUmVwbGljYXMiLCJwYXRoIjoic2Nhbm5lci5hbmFseXplci5zY2FsaW5nLm1heFJlcGxpY2FzIiwieC1kZXNjcmlwdG9ycyI6WyJ1cm46YWxtOmRlc2NyaXB0b3I6Y29tLnRlY3RvbmljLnVpOmZpZWxkRGVwZW5kZW5jeTpzY2FubmVyLmFuYWx5emVyLnNjYWxpbmcuYXV0b1NjYWxpbmc6RW5hYmxlZCJdfSx7ImRlc2NyaXB0aW9uIjoiQWxsb3dzIG92ZXJyaWRpbmcgdGhlIGRlZmF1bHQgcmVzb3VyY2Ugc2V0dGluZ3MgZm9yIHRoaXMgY29tcG9uZW50LiBQbGVhc2UgY29uc3VsdCB0aGUgZG9jdW1lbnRhdGlvblxuZm9yIGFuIG92ZXJ2aWV3IG9mIGRlZmF1bHQgcmVzb3VyY2UgcmVxdWlyZW1lbnRzIGFuZCBhIHNpemluZyBndWlkZS4iLCJkaXNwbGF5TmFtZSI6IlJlc291cmNlcyIsInBhdGgiOiJzY2FubmVyLmRiLnJlc291cmNlcyIsIngtZGVzY3JpcHRvcnMiOlsidXJuOmFsbTpkZXNjcmlwdG9yOmNvbS50ZWN0b25pYy51aTpyZXNvdXJjZVJlcXVpcmVtZW50cyJdfSx7ImRlc2NyaXB0aW9uIjoiSWYgeW91IHdhbnQgdGhpcyBjb21wb25lbnQgdG8gb25seSBydW4gb24gc3BlY2lmaWMgbm9kZXMsIHlvdSBjYW4gY29uZmlndXJlIGEgbm9kZSBzZWxlY3RvciBoZXJlLiIsImRpc3BsYXlOYW1lIjoiTm9kZSBTZWxlY3RvciIsInBhdGgiOiJzY2FubmVyLmRiLm5vZGVTZWxlY3RvciJ9LHsiZGVzY3JpcHRpb24iOiJJZiB5b3Ugd2FudCB0aGlzIGNvbXBvbmVudCB0byBvbmx5IHJ1biBvbiBzcGVjaWZpYyBub2RlcywgeW91IGNhbiBjb25maWd1cmUgdG9sZXJhdGlvbnMgb2YgdGFpbnRlZCBub2Rlcy4iLCJkaXNwbGF5TmFtZSI6IlRvbGVyYXRpb25zIiwicGF0aCI6InNjYW5uZXIuZGIudG9sZXJhdGlvbnMiLCJ4LWRlc2NyaXB0b3JzIjpbInVybjphbG06ZGVzY3JpcHRvcjpjb20udGVjdG9uaWMudWk6dG9sZXJhdGlvbnMiXX0seyJkZXNjcmlwdGlvbiI6Ikhvc3RBbGlhc2VzIGFsbG93cyBjb25maWd1cmluZyBhZGRpdGlvbmFsIGhvc3RuYW1lcyB0byByZXNvbHZlIGluIHRoZSBwb2QncyBob3N0cyBmaWxlLiIsImRpc3BsYXlOYW1lIjoiSG9zdCBBbGlhc2VzIiwicGF0aCI6InNjYW5uZXIuZGIuaG9zdEFsaWFzZXMifSx7ImRlc2NyaXB0aW9uIjoiSWYgeW91IHdhbnQgdG8gZW5hYmxlIHRoZSBTY2FubmVyIFY0IGNvbXBvbmVudCBzZXQgdGhpcyB0byBcIkF1dG9TZW5zZVwiXG5JZiB0aGlzIGZpZWxkIGlzIG5vdCBzcGVjaWZpZWQgb3Igc2V0IHRvIFwiRGVmYXVsdFwiLCB0aGUgZm9sbG93aW5nIGRlZmF1bHRpbmcgdGFrZXMgcGxhY2U6XG4qIGZvciBuZXcgaW5zdGFsbGF0aW9ucywgU2Nhbm5lciBWNCBpcyBlbmFibGVkIHN0YXJ0aW5nIHdpdGggQUNTIDQuODtcbiogZm9yIHVwZ3JhZGVzIHRvIDQuOCBmcm9tIHByZXZpb3VzIHJlbGVhc2VzLCBTY2FubmVyIFY0IGlzIGRpc2FibGVkLiIsImRpc3BsYXlOYW1lIjoiU2Nhbm5lciBWNCBjb21wb25lbnQiLCJwYXRoIjoic2Nhbm5lclY0LnNjYW5uZXJDb21wb25lbnQifSx7ImRlc2NyaXB0aW9uIjoiU2V0dGluZ3MgcGVydGFpbmluZyB0byB0aGUgaW5kZXhlciBkZXBsb3ltZW50LiIsImRpc3BsYXlOYW1lIjoiSW5kZXhlciIsInBhdGgiOiJzY2FubmVyVjQuaW5kZXhlciIsIngtZGVzY3JpcHRvcnMiOlsidXJuOmFsbTpkZXNjcmlwdG9yOmNvbS50ZWN0b25pYy51aTpmaWVsZERlcGVuZGVuY3k6c2Nhbm5lclY0LnNjYW5uZXJDb21wb25lbnQ6QXV0b1NlbnNlIl19LHsiZGVzY3JpcHRpb24iOiJTZXR0aW5ncyBwZXJ0YWluaW5nIHRvIHRoZSBEQiBkZXBsb3ltZW50LiIsImRpc3BsYXlOYW1lIjoiREIiLCJwYXRoIjoic2Nhbm5lclY0LmRiIiwieC1kZXNjcmlwdG9ycyI6WyJ1cm46YWxtOmRlc2NyaXB0b3I6Y29tLnRlY3RvbmljLnVpOmZpZWxkRGVwZW5kZW5jeTpzY2FubmVyVjQuc2Nhbm5lckNvbXBvbmVudDpBdXRvU2Vuc2UiXX0seyJkZXNjcmlwdGlvbiI6IkNvbmZpZ3VyZXMgbW9uaXRvcmluZyBlbmRwb2ludCBmb3IgU2Nhbm5lciBWNC4gVGhlIG1vbml0b3JpbmcgZW5kcG9pbnRcbmFsbG93cyBvdGhlciBzZXJ2aWNlcyB0byBjb2xsZWN0IG1ldHJpY3MgZnJvbSBTY2FubmVyIFY0LCBwcm92aWRlZCBpblxuUHJvbWV0aGV1cyBjb21wYXRpYmxlIGZvcm1hdC4iLCJkaXNwbGF5TmFtZSI6Ik1vbml0b3JpbmciLCJwYXRoIjoic2Nhbm5lclY0Lm1vbml0b3JpbmciLCJ4LWRlc2NyaXB0b3JzIjpbInVybjphbG06ZGVzY3JpcHRvcjpjb20udGVjdG9uaWMudWk6ZmllbGREZXBlbmRlbmN5OnNjYW5uZXJWNC5zY2FubmVyQ29tcG9uZW50OkF1dG9TZW5zZSJdfSx7ImRlc2NyaXB0aW9uIjoiQ29uZmlndXJlcyBob3cgU2Nhbm5lciBWNCBzaG91bGQgc3RvcmUgaXRzIHBlcnNpc3RlbnQgZGF0YS5cbllvdSBjYW4gdXNlIGEgcGVyc2lzdGVudCB2b2x1bWUgY2xhaW0gKHRoZSByZWNvbW1lbmRlZCBkZWZhdWx0KSwgYSBob3N0IHBhdGgsXG5vciBhbiBlbXB0eURpciB2b2x1bWUgaWYgU2Nhbm5lciBWNCBpcyBydW5uaW5nIG9uIGEgc2VjdXJlZCBjbHVzdGVyIHdpdGhvdXQgZGVmYXVsdCBTdG9yYWdlQ2xhc3MuIiwiZGlzcGxheU5hbWUiOiJQZXJzaXN0ZW5jZSIsInBhdGgiOiJzY2FubmVyVjQuZGIucGVyc2lzdGVuY2UifSx7ImRlc2NyaXB0aW9uIjoiQWxsb3dzIG92ZXJyaWRpbmcgdGhlIGRlZmF1bHQgcmVzb3VyY2Ugc2V0dGluZ3MgZm9yIHRoaXMgY29tcG9uZW50LiBQbGVhc2UgY29uc3VsdCB0aGUgZG9jdW1lbnRhdGlvblxuZm9yIGFuIG92ZXJ2aWV3IG9mIGRlZmF1bHQgcmVzb3VyY2UgcmVxdWlyZW1lbnRzIGFuZCBhIHNpemluZyBndWlkZS4iLCJkaXNwbGF5TmFtZSI6IlJlc291cmNlcyIsInBhdGgiOiJzY2FubmVyVjQuZGIucmVzb3VyY2VzIiwieC1kZXNjcmlwdG9ycyI6WyJ1cm46YWxtOmRlc2NyaXB0b3I6Y29tLnRlY3RvbmljLnVpOnJlc291cmNlUmVxdWlyZW1lbnRzIl19LHsiZGVzY3JpcHRpb24iOiJJZiB5b3Ugd2FudCB0aGlzIGNvbXBvbmVudCB0byBvbmx5IHJ1biBvbiBzcGVjaWZpYyBub2RlcywgeW91IGNhbiBjb25maWd1cmUgYSBub2RlIHNlbGVjdG9yIGhlcmUuIiwiZGlzcGxheU5hbWUiOiJOb2RlIFNlbGVjdG9yIiwicGF0aCI6InNjYW5uZXJWNC5kYi5ub2RlU2VsZWN0b3IifSx7ImRlc2NyaXB0aW9uIjoiSWYgeW91IHdhbnQgdGhpcyBjb21wb25lbnQgdG8gb25seSBydW4gb24gc3BlY2lmaWMgbm9kZXMsIHlvdSBjYW4gY29uZmlndXJlIHRvbGVyYXRpb25zIG9mIHRhaW50ZWQgbm9kZXMuIiwiZGlzcGxheU5hbWUiOiJUb2xlcmF0aW9ucyIsInBhdGgiOiJzY2FubmVyVjQuZGIudG9sZXJhdGlvbnMiLCJ4LWRlc2NyaXB0b3JzIjpbInVybjphbG06ZGVzY3JpcHRvcjpjb20udGVjdG9uaWMudWk6dG9sZXJhdGlvbnMiXX0seyJkZXNjcmlwdGlvbiI6Ikhvc3RBbGlhc2VzIGFsbG93cyBjb25maWd1cmluZyBhZGRpdGlvbmFsIGhvc3RuYW1lcyB0byByZXNvbHZlIGluIHRoZSBwb2QncyBob3N0cyBmaWxlLiIsImRpc3BsYXlOYW1lIjoiSG9zdCBBbGlhc2VzIiwicGF0aCI6InNjYW5uZXJWNC5kYi5ob3N0QWxpYXNlcyJ9LHsiZGVzY3JpcHRpb24iOiJVc2VzIGEgS3ViZXJuZXRlcyBwZXJzaXN0ZW50IHZvbHVtZSBjbGFpbSAoUFZDKSB0byBtYW5hZ2UgdGhlIHN0b3JhZ2UgbG9jYXRpb24gb2YgcGVyc2lzdGVudCBkYXRhLlxuUmVjb21tZW5kZWQgZm9yIG1vc3QgdXNlcnMuIiwiZGlzcGxheU5hbWUiOiJQZXJzaXN0ZW50IHZvbHVtZSBjbGFpbSIsInBhdGgiOiJzY2FubmVyVjQuZGIucGVyc2lzdGVuY2UucGVyc2lzdGVudFZvbHVtZUNsYWltIn0seyJkZXNjcmlwdGlvbiI6IlN0b3JlcyBwZXJzaXN0ZW50IGRhdGEgb24gYSBkaXJlY3Rvcnkgb24gdGhlIGhvc3QuIFRoaXMgaXMgbm90IHJlY29tbWVuZGVkLCBhbmQgc2hvdWxkIG9ubHlcbmJlIHVzZWQgdG9nZXRoZXIgd2l0aCBhIG5vZGUgc2VsZWN0b3IgKG9ubHkgYXZhaWxhYmxlIGluIFlBTUwgdmlldykuIiwiZGlzcGxheU5hbWUiOiJIb3N0IHBhdGgiLCJwYXRoIjoic2Nhbm5lclY0LmRiLnBlcnNpc3RlbmNlLmhvc3RQYXRoIn0seyJkZXNjcmlwdGlvbiI6IlRoZSBwYXRoIG9uIHRoZSBob3N0IHJ1bm5pbmcgQ2VudHJhbC4iLCJkaXNwbGF5TmFtZSI6IlBhdGgiLCJwYXRoIjoic2Nhbm5lclY0LmRiLnBlcnNpc3RlbmNlLmhvc3RQYXRoLnBhdGgifSx7ImRlc2NyaXB0aW9uIjoiVGhlIG5hbWUgb2YgdGhlIFBWQyB0byBtYW5hZ2UgcGVyc2lzdGVudCBkYXRhLiBJZiBubyBQVkMgd2l0aCB0aGUgZ2l2ZW4gbmFtZSBleGlzdHMsIGl0IHdpbGwgYmVcbmNyZWF0ZWQuIERlZmF1bHRzIHRvIFwic2Nhbm5lci12NC1kYlwiIGlmIG5vdCBzZXQuIiwiZGlzcGxheU5hbWUiOiJDbGFpbSBOYW1lIiwicGF0aCI6InNjYW5uZXJWNC5kYi5wZXJzaXN0ZW5jZS5wZXJzaXN0ZW50Vm9sdW1lQ2xhaW0uY2xhaW1OYW1lIn0seyJkZXNjcmlwdGlvbiI6IlRoZSBzaXplIG9mIHRoZSBwZXJzaXN0ZW50IHZvbHVtZSB3aGVuIGNyZWF0ZWQgdGhyb3VnaCB0aGUgY2xhaW0uIElmIGEgY2xhaW0gd2FzIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCxcbnRoaXMgY2FuIGJlIHVzZWQgYWZ0ZXIgdGhlIGluaXRpYWwgZGVwbG95bWVudCB0byByZXNpemUgKGdyb3cpIHRoZSB2b2x1bWUgKG9ubHkgc3VwcG9ydGVkIGJ5IHNvbWVcbnN0b3JhZ2UgY2xhc3MgY29udHJvbGxlcnMpLiIsImRpc3BsYXlOYW1lIjoiU2l6ZSIsInBhdGgiOiJzY2FubmVyVjQuZGIucGVyc2lzdGVuY2UucGVyc2lzdGVudFZvbHVtZUNsYWltLnNpemUiLCJ4LWRlc2NyaXB0b3JzIjpbInVybjphbG06ZGVzY3JpcHRvcjpjb20udGVjdG9uaWMudWk6dGV4dCJdfSx7ImRlc2NyaXB0aW9uIjoiVGhlIG5hbWUgb2YgdGhlIHN0b3JhZ2UgY2xhc3MgdG8gdXNlIGZvciB0aGUgUFZDLiBJZiB5b3VyIGNsdXN0ZXIgaXMgbm90IGNvbmZpZ3VyZWQgd2l0aCBhIGRlZmF1bHQgc3RvcmFnZVxuY2xhc3MsIHlvdSBtdXN0IHNlbGVjdCBhIHZhbHVlIGhlcmUuIiwiZGlzcGxheU5hbWUiOiJTdG9yYWdlIENsYXNzIiwicGF0aCI6InNjYW5uZXJWNC5kYi5wZXJzaXN0ZW5jZS5wZXJzaXN0ZW50Vm9sdW1lQ2xhaW0uc3RvcmFnZUNsYXNzTmFtZSIsIngtZGVzY3JpcHRvcnMiOlsidXJuOmFsbTpkZXNjcmlwdG9yOmlvLmt1YmVybmV0ZXM6U3RvcmFnZUNsYXNzIl19LHsiZGVzY3JpcHRpb24iOiJDb250cm9scyB0aGUgbnVtYmVyIG9mIHJlcGxpY2FzIGFuZCBhdXRvc2NhbGluZyBmb3IgdGhpcyBjb21wb25lbnQuIiwiZGlzcGxheU5hbWUiOiJTY2FsaW5nIiwicGF0aCI6InNjYW5uZXJWNC5pbmRleGVyLnNjYWxpbmcifSx7ImRlc2NyaXB0aW9uIjoiQWxsb3dzIG92ZXJyaWRpbmcgdGhlIGRlZmF1bHQgcmVzb3VyY2Ugc2V0dGluZ3MgZm9yIHRoaXMgY29tcG9uZW50LiBQbGVhc2UgY29uc3VsdCB0aGUgZG9jdW1lbnRhdGlvblxuZm9yIGFuIG92ZXJ2aWV3IG9mIGRlZmF1bHQgcmVzb3VyY2UgcmVxdWlyZW1lbnRzIGFuZCBhIHNpemluZyBndWlkZS4iLCJkaXNwbGF5TmFtZSI6IlJlc291cmNlcyIsInBhdGgiOiJzY2FubmVyVjQuaW5kZXhlci5yZXNvdXJjZXMiLCJ4LWRlc2NyaXB0b3JzIjpbInVybjphbG06ZGVzY3JpcHRvcjpjb20udGVjdG9uaWMudWk6cmVzb3VyY2VSZXF1aXJlbWVudHMiXX0seyJkZXNjcmlwdGlvbiI6IklmIHlvdSB3YW50IHRoaXMgY29tcG9uZW50IHRvIG9ubHkgcnVuIG9uIHNwZWNpZmljIG5vZGVzLCB5b3UgY2FuIGNvbmZpZ3VyZSBhIG5vZGUgc2VsZWN0b3IgaGVyZS4iLCJkaXNwbGF5TmFtZSI6Ik5vZGUgU2VsZWN0b3IiLCJwYXRoIjoic2Nhbm5lclY0LmluZGV4ZXIubm9kZVNlbGVjdG9yIn0seyJkZXNjcmlwdGlvbiI6IklmIHlvdSB3YW50IHRoaXMgY29tcG9uZW50IHRvIG9ubHkgcnVuIG9uIHNwZWNpZmljIG5vZGVzLCB5b3UgY2FuIGNvbmZpZ3VyZSB0b2xlcmF0aW9ucyBvZiB0YWludGVkIG5vZGVzLiIsImRpc3BsYXlOYW1lIjoiVG9sZXJhdGlvbnMiLCJwYXRoIjoic2Nhbm5lclY0LmluZGV4ZXIudG9sZXJhdGlvbnMiLCJ4LWRlc2NyaXB0b3JzIjpbInVybjphbG06ZGVzY3JpcHRvcjpjb20udGVjdG9uaWMudWk6dG9sZXJhdGlvbnMiXX0seyJkZXNjcmlwdGlvbiI6Ikhvc3RBbGlhc2VzIGFsbG93cyBjb25maWd1cmluZyBhZGRpdGlvbmFsIGhvc3RuYW1lcyB0byByZXNvbHZlIGluIHRoZSBwb2QncyBob3N0cyBmaWxlLiIsImRpc3BsYXlOYW1lIjoiSG9zdCBBbGlhc2VzIiwicGF0aCI6InNjYW5uZXJWNC5pbmRleGVyLmhvc3RBbGlhc2VzIn0seyJkZXNjcmlwdGlvbiI6IldoZW4gZW5hYmxlZCwgdGhlIG51bWJlciBvZiBjb21wb25lbnQgcmVwbGljYXMgaXMgbWFuYWdlZCBkeW5hbWljYWxseSBiYXNlZCBvbiB0aGUgbG9hZCwgd2l0aGluIHRoZSBsaW1pdHNcbnNwZWNpZmllZCBiZWxvdy4iLCJkaXNwbGF5TmFtZSI6IkF1dG9zY2FsaW5nIiwicGF0aCI6InNjYW5uZXJWNC5pbmRleGVyLnNjYWxpbmcuYXV0b1NjYWxpbmcifSx7ImRlc2NyaXB0aW9uIjoiV2hlbiBhdXRvc2NhbGluZyBpcyBkaXNhYmxlZCwgdGhlIG51bWJlciBvZiByZXBsaWNhcyB3aWxsIGFsd2F5cyBiZSBjb25maWd1cmVkIHRvIG1hdGNoIHRoaXMgdmFsdWUuIiwiZGlzcGxheU5hbWUiOiJEZWZhdWx0IFJlcGxpY2FzIiwicGF0aCI6InNjYW5uZXJWNC5pbmRleGVyLnNjYWxpbmcucmVwbGljYXMifSx7ImRpc3BsYXlOYW1lIjoiQXV0b3NjYWxpbmcgTWluaW11bSBSZXBsaWNhcyIsInBhdGgiOiJzY2FubmVyVjQuaW5kZXhlci5zY2FsaW5nLm1pblJlcGxpY2FzIiwieC1kZXNjcmlwdG9ycyI6WyJ1cm46YWxtOmRlc2NyaXB0b3I6Y29tLnRlY3RvbmljLnVpOmZpZWxkRGVwZW5kZW5jeTpzY2FubmVyVjQuaW5kZXhlci5zY2FsaW5nLmF1dG9TY2FsaW5nOkVuYWJsZWQiXX0seyJkaXNwbGF5TmFtZSI6IkF1dG9zY2FsaW5nIE1heGltdW0gUmVwbGljYXMiLCJwYXRoIjoic2Nhbm5lclY0LmluZGV4ZXIuc2NhbGluZy5tYXhSZXBsaWNhcyIsIngtZGVzY3JpcHRvcnMiOlsidXJuOmFsbTpkZXNjcmlwdG9yOmNvbS50ZWN0b25pYy51aTpmaWVsZERlcGVuZGVuY3k6c2Nhbm5lclY0LmluZGV4ZXIuc2NhbGluZy5hdXRvU2NhbGluZzpFbmFibGVkIl19LHsiZGVzY3JpcHRpb24iOiJFeHBvc2UgdGhlIG1vbml0b3JpbmcgZW5kcG9pbnQuIEEgbmV3IHNlcnZpY2UsIFwibW9uaXRvcmluZ1wiLFxud2l0aCBwb3J0IDkwOTAsIHdpbGwgYmUgY3JlYXRlZCBhcyB3ZWxsIGFzIGEgbmV0d29yayBwb2xpY3kgYWxsb3dpbmdcbmluYm91bmQgY29ubmVjdGlvbnMgdG8gdGhlIHBvcnQuIiwiZGlzcGxheU5hbWUiOiJFeHBvc2UgRW5kcG9pbnQiLCJwYXRoIjoic2Nhbm5lclY0Lm1vbml0b3JpbmcuZXhwb3NlRW5kcG9pbnQifSx7ImRlc2NyaXB0aW9uIjoiQWxsb3dzIG92ZXJyaWRpbmcgdGhlIGRlZmF1bHQgcmVzb3VyY2Ugc2V0dGluZ3MgZm9yIHRoaXMgY29tcG9uZW50LiBQbGVhc2UgY29uc3VsdCB0aGUgZG9jdW1lbnRhdGlvblxuZm9yIGFuIG92ZXJ2aWV3IG9mIGRlZmF1bHQgcmVzb3VyY2UgcmVxdWlyZW1lbnRzIGFuZCBhIHNpemluZyBndWlkZS4iLCJkaXNwbGF5TmFtZSI6IlJlc291cmNlcyIsInBhdGgiOiJzZW5zb3IucmVzb3VyY2VzIiwieC1kZXNjcmlwdG9ycyI6WyJ1cm46YWxtOmRlc2NyaXB0b3I6Y29tLnRlY3RvbmljLnVpOnJlc291cmNlUmVxdWlyZW1lbnRzIl19LHsiZGVzY3JpcHRpb24iOiJJZiB5b3Ugd2FudCB0aGlzIGNvbXBvbmVudCB0byBvbmx5IHJ1biBvbiBzcGVjaWZpYyBub2RlcywgeW91IGNhbiBjb25maWd1cmUgYSBub2RlIHNlbGVjdG9yIGhlcmUuIiwiZGlzcGxheU5hbWUiOiJOb2RlIFNlbGVjdG9yIiwicGF0aCI6InNlbnNvci5ub2RlU2VsZWN0b3IifSx7ImRlc2NyaXB0aW9uIjoiSWYgeW91IHdhbnQgdGhpcyBjb21wb25lbnQgdG8gb25seSBydW4gb24gc3BlY2lmaWMgbm9kZXMsIHlvdSBjYW4gY29uZmlndXJlIHRvbGVyYXRpb25zIG9mIHRhaW50ZWQgbm9kZXMuIiwiZGlzcGxheU5hbWUiOiJUb2xlcmF0aW9ucyIsInBhdGgiOiJzZW5zb3IudG9sZXJhdGlvbnMiLCJ4LWRlc2NyaXB0b3JzIjpbInVybjphbG06ZGVzY3JpcHRvcjpjb20udGVjdG9uaWMudWk6dG9sZXJhdGlvbnMiXX0seyJkZXNjcmlwdGlvbiI6Ikhvc3RBbGlhc2VzIGFsbG93cyBjb25maWd1cmluZyBhZGRpdGlvbmFsIGhvc3RuYW1lcyB0byByZXNvbHZlIGluIHRoZSBwb2QncyBob3N0cyBmaWxlLiIsImRpc3BsYXlOYW1lIjoiSG9zdCBBbGlhc2VzIiwicGF0aCI6InNlbnNvci5ob3N0QWxpYXNlcyJ9LHsiZGlzcGxheU5hbWUiOiJBZGRpdGlvbmFsIENBcyIsInBhdGgiOiJ0bHMuYWRkaXRpb25hbENBcyJ9XSwic3RhdHVzRGVzY3JpcHRvcnMiOlt7ImRlc2NyaXB0aW9uIjoiVGhlIGRlcGxveWVkIHZlcnNpb24gb2YgdGhlIHByb2R1Y3QuIiwiZGlzcGxheU5hbWUiOiJQcm9kdWN0IFZlcnNpb24iLCJwYXRoIjoicHJvZHVjdFZlcnNpb24ifSx7ImRlc2NyaXB0aW9uIjoiVGhlIGFzc2lnbmVkIGNsdXN0ZXIgbmFtZSBwZXIgdGhlIHNwZWMuIFRoaXMgY2Fubm90IGJlIGNoYW5nZWQgYWZ0ZXJ3YXJkcy4gSWYgeW91IG5lZWQgdG8gY2hhbmdlIHRoZVxuY2x1c3RlciBuYW1lLCBwbGVhc2UgZGVsZXRlIGFuZCByZWNyZWF0ZSB0aGlzIHJlc291cmNlLiIsImRpc3BsYXlOYW1lIjoiQ2x1c3RlciBOYW1lIiwicGF0aCI6ImNsdXN0ZXJOYW1lIn1dLCJ2ZXJzaW9uIjoidjFhbHBoYTEifSx7ImRlc2NyaXB0aW9uIjoiU2VjdXJpdHlQb2xpY3kgaXMgdGhlIHNjaGVtYSBmb3IgdGhlIHBvbGljaWVzIEFQSS4iLCJkaXNwbGF5TmFtZSI6IlNlY3VyaXR5IFBvbGljeSIsImtpbmQiOiJTZWN1cml0eVBvbGljeSIsIm5hbWUiOiJzZWN1cml0eXBvbGljaWVzLmNvbmZpZy5zdGFja3JveC5pbyIsInJlc291cmNlcyI6W3sia2luZCI6IkRlcGxveW1lbnQiLCJuYW1lIjoiIiwidmVyc2lvbiI6InYxIn1dLCJ2ZXJzaW9uIjoidjFhbHBoYTEifV19LCJkZXNjcmlwdGlvbiI6IiMjIFdoeSB1c2UgUmVkIEhhdCBBZHZhbmNlZCBDbHVzdGVyIFNlY3VyaXR5IGZvciBLdWJlcm5ldGVzP1xuXG5Qcm90ZWN0aW5nIGNsb3VkLW5hdGl2ZSBhcHBsaWNhdGlvbnMgcmVxdWlyZXMgc2lnbmlmaWNhbnQgY2hhbmdlcyBpbiBob3cgd2UgYXBwcm9hY2ggc2VjdXJpdHnigJR3ZSBtdXN0IGFwcGx5IGNvbnRyb2xzIGVhcmxpZXIgaW4gdGhlIGFwcGxpY2F0aW9uIGRldmVsb3BtZW50IGxpZmUgY3ljbGUsIHVzZSB0aGUgaW5mcmFzdHJ1Y3R1cmUgaXRzZWxmIHRvIGFwcGx5IGNvbnRyb2xzLCBhbmQga2VlcCB1cCB3aXRoIGluY3JlYXNpbmdseSByYXBpZCByZWxlYXNlIHNjaGVkdWxlcy5cblxuXG5SZWQgSGF0wq4gQWR2YW5jZWQgQ2x1c3RlciBTZWN1cml0eSBmb3IgS3ViZXJuZXRlcywgcG93ZXJlZCBieSBTdGFja1JveCB0ZWNobm9sb2d5LCBwcm90ZWN0cyB5b3VyIHZpdGFsIGFwcGxpY2F0aW9ucyBhY3Jvc3MgYnVpbGQsIGRlcGxveSwgYW5kIHJ1bnRpbWUuIE91ciBzb2Z0d2FyZSBkZXBsb3lzIGluIHlvdXIgaW5mcmFzdHJ1Y3R1cmUgYW5kIGludGVncmF0ZXMgd2l0aCB5b3VyIERldk9wcyB0b29saW5nIGFuZCB3b3JrZmxvd3MgdG8gZGVsaXZlciBiZXR0ZXIgc2VjdXJpdHkgYW5kIGNvbXBsaWFuY2UuIFRoZSBwb2xpY3kgZW5naW5lIGluY2x1ZGVzIGh1bmRyZWRzIG9mIGJ1aWx0LWluIGNvbnRyb2xzIHRvIGVuZm9yY2UgRGV2T3BzIGFuZCBzZWN1cml0eSBiZXN0IHByYWN0aWNlcywgaW5kdXN0cnkgc3RhbmRhcmRzIHN1Y2ggYXMgQ0lTIEJlbmNobWFya3MgYW5kIE5hdGlvbmFsIEluc3RpdHV0ZSBvZiBTdGFuZGFyZHMgVGVjaG5vbG9neSAoTklTVCkgZ3VpZGVsaW5lcywgY29uZmlndXJhdGlvbiBtYW5hZ2VtZW50IG9mIGJvdGggY29udGFpbmVycyBhbmQgS3ViZXJuZXRlcywgYW5kIHJ1bnRpbWUgc2VjdXJpdHkuXG5cblJlZCBIYXQgQWR2YW5jZWQgQ2x1c3RlciBTZWN1cml0eSBmb3IgS3ViZXJuZXRlcyBwcm92aWRlcyBhIEt1YmVybmV0ZXMtbmF0aXZlIGFyY2hpdGVjdHVyZSBmb3IgY29udGFpbmVyIHNlY3VyaXR5LCBlbmFibGluZyBEZXZPcHMgYW5kIEluZm9TZWMgdGVhbXMgdG8gb3BlcmF0aW9uYWxpemUgc2VjdXJpdHkuXG5cbiMjIEZlYXR1cmVzIGFuZCBCZW5lZml0c1xuXG4qKkt1YmVybmV0ZXMtbmF0aXZlIHNlY3VyaXR5OioqXG4xLiBJbmNyZWFzZXMgcHJvdGVjdGlvbi5cbjEuIEVsaW1pbmF0ZXMgYmxpbmQgc3BvdHMsIHByb3ZpZGluZyBzdGFmZiB3aXRoIGluc2lnaHRzIGludG8gY3JpdGljYWwgdnVsbmVyYWJpbGl0aWVzIGFuZCB0aHJlYXQgdmVjdG9ycy5cbjEuIFJlZHVjZXMgdGltZSBhbmQgY29zdHMuXG4xLiBSZWR1Y2VzIHRoZSB0aW1lIGFuZCBlZmZvcnQgbmVlZGVkIHRvIGltcGxlbWVudCBzZWN1cml0eSBhbmQgc3RyZWFtbGluZXMgc2VjdXJpdHkgYW5hbHlzaXMsIGludmVzdGlnYXRpb24sIGFuZCByZW1lZGlhdGlvbiB1c2luZyB0aGUgcmljaCBjb250ZXh0IEt1YmVybmV0ZXMgcHJvdmlkZXMuXG4xLiBJbmNyZWFzZXMgc2NhbGFiaWxpdHkgYW5kIHBvcnRhYmlsaXR5LlxuMS4gUHJvdmlkZXMgc2NhbGFiaWxpdHkgYW5kIHJlc2lsaWVuY3kgbmF0aXZlIHRvIEt1YmVybmV0ZXMsIGF2b2lkaW5nIG9wZXJhdGlvbmFsIGNvbmZsaWN0IGFuZCBjb21wbGV4aXR5IHRoYXQgY2FuIHJlc3VsdCBmcm9tIG91dC1vZi1iYW5kIHNlY3VyaXR5IGNvbnRyb2xzLlxuXG4jIyBVc2luZyB0aGUgUkhBQ1MgT3BlcmF0b3JcblxuKipSSEFDUyBPcGVyYXRvciBjaGFubmVsczoqKlxuXG5SZWQgSGF0IHByb3ZpZGVzIHRoZSBSSEFDUyBPcGVyYXRvciBieSB1c2luZyB0aGUgZm9sbG93aW5nIHVwZGF0ZSBjaGFubmVscyBpbiB0aGUgUmVkIEhhdCBPcGVyYXRvciBjYXRhbG9nOlxuXG4qIGBzdGFibGVgOiBQcm92aWRlcyB0aGUgbW9zdCByZWNlbnQgdmVyc2lvbiBhbmQgcGF0Y2hlcyB0byB0aGUgbW9zdCByZWNlbnQgdmVyc2lvbi5cbiAgVXNpbmcgdGhlIGBzdGFibGVgIGNoYW5uZWwgYW5kIGNvbmZpZ3VyaW5nIGF1dG9tYXRpYyBvcGVyYXRvciB1cGdyYWRlcyBlbnN1cmVzIHRoYXQgdGhlIG1vc3QgcmVjZW50IFJIQUNTIHZlcnNpb24gaXMgZGVwbG95ZWQuXG4qIGByaGFjcy14Lnl5YCAoZm9yIGV4YW1wbGUsIGByaGFjcy0zLjc0YCk6IENoYW5uZWxzIGZvbGxvdyBhIHNwZWNpZmljIFJIQUNTIHZlcnNpb24gYW5kIGluY2x1ZGUgYWxsIHBhdGNoZXMgdG8gdGhhdCB2ZXJzaW9uIChlLmcuIGAzLjc0LjBgLCBgMy43NC4xYCwgLi4uKS5cblxuTm90ZSB0aGF0IHRoZSBgbGF0ZXN0YCBjaGFubmVsIGlzIGRlcHJlY2F0ZWQgYW5kIGlzIG5vdCB1cGRhdGVkIGFmdGVyIFJIQUNTIHZlcnNpb24gMy43NC4gTmV3ZXIgdmVyc2lvbnMgYXJlIHB1Ymxpc2hlZCB0byB0aGUgYHN0YWJsZWAgY2hhbm5lbC5cblxuKipSSEFDUyBjb21lcyB3aXRoIHR3byBjdXN0b20gcmVzb3VyY2VzOioqXG5cbjEuICoqQ2VudHJhbCBTZXJ2aWNlcyoqIC0gQ2VudHJhbCBpcyBhIGRlcGxveW1lbnQgcmVxdWlyZWQgb24gb25seSBvbmUgY2x1c3RlciBpbiB5b3VyIGVudmlyb25tZW50LiBVc2VycyBpbnRlcmFjdCB3aXRoIFJIQUNTIHZpYSB0aGUgdXNlciBpbnRlcmZhY2Ugb3IgQVBJcyBvbiBDZW50cmFsLiBDZW50cmFsIGFsc28gc2VuZHMgbm90aWZpY2F0aW9ucyBmb3IgdmlvbGF0aW9ucyBhbmQgaW50ZXJhY3RzIHdpdGggaW50ZWdyYXRpb25zLiBVc2VycyBtYXkgc2VsZWN0IGV4cG9zdXJlcyBmb3IgQ2VudHJhbCB0aGF0IGJlc3QgbWVldCB0aGVpciBlbnZpcm9ubWVudC5cblxuMi4gKipTZWN1cmVkIENsdXN0ZXIgU2VydmljZXMqKiAtIFNlY3VyZWQgY2x1c3RlciBzZXJ2aWNlcyBhcmUgcGxhY2VkIG9uIGVhY2ggY2x1c3RlciB5b3UgbWFuYWdlIGFuZCByZXBvcnQgYmFjayB0byBDZW50cmFsLiBUaGVzZSBzZXJ2aWNlcyBhbGxvdyB1c2VycyB0byBlbmZvcmNlIHBvbGljaWVzIGFuZCBtb25pdG9yIHlvdXIgT3BlblNoaWZ0IGFuZCBLdWJlcm5ldGVzIGNsdXN0ZXJzLiBTZWN1cmVkIENsdXN0ZXIgU2VydmljZXMgY29tZSBhcyB0d28gRGVwbG95bWVudHMgKFNlbnNvciBhbmQgQWRtaXNzaW9uIENvbnRyb2xsZXIpIGFuZCBvbmUgRGFlbW9uU2V0IChDb2xsZWN0b3IpLlxuXG4jIyMgQ2VudHJhbCBTZXJ2aWNlcyBFeHBsYWluZWRcblxufCBTZXJ2aWNlICAgICAgICAgICAgICAgICAgICAgICAgICB8IERlcGxveW1lbnQgVHlwZSB8IERlc2NyaXB0aW9uICAgICB8XG58IDotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgOi0tLS0tLS0tLS0tLS0tIHwgOi0tLS0tLS0tLS0tLS0tIHxcbnwgQ2VudHJhbCAgICAgICAgICAgICAgICAgICAgICAgICAgfCBEZXBsb3ltZW50ICAgICAgfCBVc2VycyBpbnRlcmFjdCB3aXRoIFJlZCBIYXQgQWR2YW5jZWQgQ2x1c3RlciBTZWN1cml0eSB0aHJvdWdoIHRoZSB1c2VyIGludGVyZmFjZSBvciBBUElzIG9uIENlbnRyYWwuIENlbnRyYWwgYWxzbyBzZW5kcyBub3RpZmljYXRpb25zIGZvciB2aW9sYXRpb25zIGFuZCBpbnRlcmFjdHMgd2l0aCBpbnRlZ3JhdGlvbnMuIHxcbnwgQ2VudHJhbCBEQiAgICAgICAgICAgICAgICAgICAgICAgfCBEZXBsb3ltZW50ICAgICAgfCBDZW50cmFsIERCIGlzIGEgUG9zdGdyZVNRTC1iYXNlZCBwZXJzaXN0ZW50IHN0b3JhZ2UgZm9yIHRoZSBkYXRhIGNvbGxlY3RlZCBhbmQgbWFuYWdlZCBieSBDZW50cmFsLiB8XG58IFNjYW5uZXIgICAgICAgICAgICAgICAgICAgICAgICAgIHwgRGVwbG95bWVudCAgICAgIHwgU2Nhbm5lciBpcyBhIFJlZCBIYXQgZGV2ZWxvcGVkIGFuZCBjZXJ0aWZpZWQgaW1hZ2Ugc2Nhbm5lci4gU2Nhbm5lciBhbmFseXplcyBhbmQgcmVwb3J0cyB2dWxuZXJhYmlsaXRpZXMgZm9yIGltYWdlcy4gU2Nhbm5lciB1c2VzIEhQQSB0byBzY2FsZSB0aGUgbnVtYmVyIG9mIHJlcGxpY2FzIGJhc2VkIG9uIHdvcmtsb2FkLiB8XG58IFNjYW5uZXIgREIgICAgICAgICAgICAgICAgICAgICAgIHwgRGVwbG95bWVudCAgICAgIHwgU2Nhbm5lciBEQiBpcyBhIGNhY2hlIGZvciB2dWxuZXJhYmlsaXR5IGRlZmluaXRpb25zIHRvIHNlcnZlIHZ1bG5lcmFiaWxpdHkgc2Nhbm5pbmcgdXNlIGNhc2VzIHRocm91Z2hvdXQgdGhlIHNvZnR3YXJlIGRldmVsb3BtZW50IGxpZmUgY3ljbGUuIHxcblxuIyMjIFNlY3VyZWQgQ2x1c3RlciBTZXJ2aWNlcyBFeHBsYWluZWRcblxufCBTZXJ2aWNlICAgICAgICAgICAgICAgICAgICAgICAgICB8IERlcGxveW1lbnQgVHlwZSB8IERlc2NyaXB0aW9uICAgICB8XG58IDotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgOi0tLS0tLS0tLS0tLS0tIHwgOi0tLS0tLS0tLS0tLS0tIHxcbnwgU2Vuc29yICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBEZXBsb3ltZW50ICAgICAgfCBTZW5zb3IgYW5hbHl6ZXMgYW5kIG1vbml0b3JzIEt1YmVybmV0ZXMgaW4gc2VjdXJlZCBjbHVzdGVycy4gfFxufCBDb2xsZWN0b3IgICAgICAgICAgICAgICAgICAgICAgICB8IERhZW1vblNldCAgICAgICB8IEFuYWx5emVzIGFuZCBtb25pdG9ycyBjb250YWluZXIgYWN0aXZpdHkgb24gS3ViZXJuZXRlcyBub2Rlcy58XG58IEFkbWlzc2lvbiBDb250cm9sbGVyICAgICAgICAgICAgIHwgRGVwbG95bWVudCAgICAgIHwgVmFsaWRhdGluZ1dlYmhvb2tDb25maWd1cmF0aW9uIGZvciBlbmZvcmNpbmcgcG9saWNpZXMgaW4gdGhlIGRlcGxveSBsaWZlY3ljbGUuIHxcblxuIyMjIENlbnRyYWwgQ3VzdG9tIFJlc291cmNlXG5cbkNlbnRyYWwgU2VydmljZXMgaXMgdGhlIGNvbmZpZ3VyYXRpb24gdGVtcGxhdGUgZm9yIFJIQUNTIENlbnRyYWwgZGVwbG95bWVudC4gRm9yIGFsbCBjdXN0b21pemF0aW9uIG9wdGlvbnMsIHBsZWFzZSB2aXNpdCB0aGUgUkhBQ1MgZG9jdW1lbnRhdGlvbi5cblxuIyMjIFNlY3VyZWRDbHVzdGVyIEN1c3RvbSBSZXNvdXJjZVxuXG5TZWN1cmVkQ2x1c3RlciBpcyB0aGUgY29uZmlndXJhdGlvbiB0ZW1wbGF0ZSBmb3IgdGhlIFJIQUNTIFNlY3VyZWQgQ2x1c3RlciBzZXJ2aWNlcy5cblxuIyMjIyBJbnN0YWxsYXRpb24gUHJlcmVxdWlzaXRlc1xuXG5CZWZvcmUgZGVwbG95aW5nIGEgU2VjdXJlZENsdXN0ZXIgcmVzb3VyY2UsIHlvdSBuZWVkIHRvIGNyZWF0ZSBhIGNsdXN0ZXIgaW5pdCBidW5kbGUgc2VjcmV0LlxuXG4tICoqVGhyb3VnaCB0aGUgUkhBQ1MgVUk6KiogVG8gY3JlYXRlIGEgY2x1c3RlciBpbml0IGJ1bmRsZSBzZWNyZXQgdGhyb3VnaCB0aGUgUkhBQ1MgVUksIG5hdmlnYXRlIHRvIGBQbGF0Zm9ybSBDb25maWd1cmF0aW9uIFx1MDAzZSBDbHVzdGVyc2AsIGFuZCB0aGVuIGNsaWNrIGBNYW5hZ2UgVG9rZW5zYCBpbiB0aGUgdG9wLXJpZ2h0IGNvcm5lci4gU2VsZWN0IGBDbHVzdGVyIEluaXQgQnVuZGxlYCwgYW5kIGNsaWNrIGBHZW5lcmF0ZSBCdW5kbGVgLiBTZWxlY3QgYERvd25sb2FkIEt1YmVybmV0ZXMgc2VjcmV0cyBmaWxlYCwgYW5kIHN0b3JlIHRoZSBmaWxlIHVuZGVyIGEgbmFtZSBvZiB5b3VyIGNob2ljZSAoZm9yIGV4YW1wbGUsIGBjbHVzdGVyLWluaXQtc2VjcmV0cy55YW1sYCkuXG4tICoqVGhyb3VnaCB0aGUgYHJveGN0bGAgQ0xJOioqIFRvIGNyZWF0ZSBhIGNsdXN0ZXIgaW5pdCBidW5kbGUgc2VjcmV0IHRocm91Z2ggdGhlIGByb3hjdGxgIGNvbW1hbmQtbGluZSBpbnRlcmZhY2UsIHJ1biBgcm94Y3RsIGNlbnRyYWwgaW5pdC1idW5kbGVzIGdlbmVyYXRlIFx1MDAzY25hbWVcdTAwM2UgLS1vdXRwdXQtc2VjcmV0cyBcdTAwM2NmaWxlIG5hbWVcdTAwM2VgLiBDaG9vc2UgYW55IGBuYW1lYCBhbmQgYGZpbGUgbmFtZWAgdGhhdCB5b3UgbGlrZS5cblxuUnVuIGBvYyBwcm9qZWN0YCBhbmQgY2hlY2sgdGhhdCBpdCByZXBvcnRzIHRoZSBjb3JyZWN0IG5hbWVzcGFjZSB3aGVyZSB5b3UgaW50ZW5kIHRvIGRlcGxveSBTZWN1cmVkQ2x1c3Rlci4gSW4gY2FzZSB5b3Ugd2FudCB0byBpbnN0YWxsIFNlY3VyZWRDbHVzdGVyIHRvIGEgZGlmZmVyZW50IG5hbWVzcGFjZSwgc2VsZWN0IGl0IGJ5IHJ1bm5pbmcgYG9jIHByb2plY3QgXHUwMDNjbmFtZXNwYWNlXHUwMDNlYC5cblRoZW4sIHJ1biBgb2MgY3JlYXRlIC1mIGluaXQtYnVuZGxlLnlhbWxgLiBJZiB5b3UgaGF2ZSBjaG9zZW4gYSBuYW1lIG90aGVyIHRoYW4gYGluaXQtYnVuZGxlLnlhbWxgLCBzcGVjaWZ5IHRoYXQgZmlsZSBuYW1lIGluc3RlYWQuXG5cbiMjIyMgUmVxdWlyZWQgRmllbGRzXG5cblRoZSBmb2xsb3dpbmcgYXR0cmlidXRlcyBhcmUgcmVxdWlyZWQgdG8gYmUgc3BlY2lmaWVkLiBGb3IgYWxsIGN1c3RvbWl6YXRpb24gb3B0aW9ucywgcGxlYXNlIHZpc2l0IHRoZSBSSEFDUyBkb2N1bWVudGF0aW9uLlxuXG58IFBhcmFtZXRlciAgICAgICAgICB8IERlc2NyaXB0aW9uICAgICB8XG58IDotLS0tLS0tLS0tLS0tLS0tLSB8IDotLS0tLS0tLS0tLS0tLSB8XG58IGBjbHVzdGVyTmFtZWAgICAgICB8IFRoZSBuYW1lIGdpdmVuIHRvIHRoaXMgc2VjdXJlZCBjbHVzdGVyLiBUaGUgY2x1c3RlciB3aWxsIGFwcGVhciB3aXRoIHRoaXMgbmFtZSBpbiBSSEFDUyB1c2VyIGludGVyZmFjZS4gfFxufCBgY2VudHJhbEVuZHBvaW50YCAgfCBUaGlzIGZpZWxkIHNob3VsZCBzcGVjaWZ5IHRoZSBhZGRyZXNzIG9mIHRoZSBDZW50cmFsIGVuZHBvaW50LCBpbmNsdWRpbmcgdGhlIHBvcnQgbnVtYmVyLiBgY2VudHJhbEVuZHBvaW50YCBtYXkgYmUgb21pdHRlZCBpZiB0aGlzIFNlY3VyZWRDbHVzdGVyIEN1c3RvbSBSZXNvdXJjZSBpcyBpbiB0aGUgc2FtZSBjbHVzdGVyIGFuZCBuYW1lc3BhY2UgYXMgQ2VudHJhbC4gfFxuIiwiZGlzcGxheU5hbWUiOiJBZHZhbmNlZCBDbHVzdGVyIFNlY3VyaXR5IGZvciBLdWJlcm5ldGVzIiwiaWNvbiI6W3siYmFzZTY0ZGF0YSI6ImlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFYd0FBQUY4Q0FZQUFBRE01d0RLQUFBQUNYQklXWE1BQUc2NkFBQnV1Z0hXM3JFWEFBQWdBRWxFUVZSNG5PM2R2NDhjUmY3LzhWZWZMdmJPNTVQYjIrUzJkb2l4MkNibGRIZERhT3RPbmhBTGdya0lDUUtXQUNSbmV4SUlzcHZWNTRSRHhpQkltVVU0WmtZNFo5Yk92OHo0SDZodlVOM3IyV1YvZEZkWGQvV1A1ME1xN1oyWjdxblpINitwZVZkMWRXU01FUUNnKy80VXVnTUFnSG9RK0FEUUV3UStBUFFFZ1E4QVBVSGdBMEJQRVBnQTBCTUVQZ0QwQklFUEFEM3g1OUFkd0ZsUkZDV2grd0I0dERMR3JFSjNBbGJFbGJiVmlLSW9saFJMR2tvYWJIMlZwUDBnblFLYTVUajl1cGEwMlByS20wUkZDSHdQMGxINWNLdnRCZTBRMEExTDJUZUFoYVNGTVdZZXRqdnRSK0FYRkVYUlFGS3kxUWgzb0Q1TFNmT3NHV1BXUVh2VE1nUitEbEVVRFNXTjBrYkFBODJ4bERTVE5EUEdMRUozcHVrSS9FdWtJVCtXRGZuZHNMMEJrTU9KYlBoUENmK0xFZmhiMG9uV2Nkb0llYUM5VGlSTlpjTi9GYllyelVIZ1M0cWlhQ3diOHF5ZUFicm5XRGI0cDZFN0VscHZBeitkZkoySTBUelFGOW1vLzdDdms3MjlDL3kwYkpNRi9VN0l2Z0FJWXFOWHdiOEsyNVY2OVNidzA2QS9rUFFnYUVjQU5NbVJwSU8rQkgvbkEzK3JkUE54Nkw0QWFLeFAxSU5TVDZjRFA0cWlpZXlvbnRJTmdPdHNaRWY3aDZFN1VwVk9CbjY2MWNGVVRNWUNLTzVFMHJpTFd6bDBLdkRUOHMxVTB0OERkd1ZBK3oyUkRmN09sSGs2c3g5K1dyNVppYkFINE1mZkphM1NiT21FMW8vdzAxSDlURncwQmFBNng1SkdiUi90dDNxRUgwWFJTSFpVVDlnRHFOSys3R2gvRkxvalpiUXk4S01vR2tSUmRDanBHN0VDQjBBOWRpUjlFMFhSWVZwWmFKM1dsWFRTQzZobVlwdGlBT0VzWlVzOHE5QWRLYUpWSS96MDQ5UkNoRDJBc1BZa0xkcFc0bWxONEtjejVaUndBRFJGVnVKcHpTcWVWcFIwb2lpYWlqMXdBRFRYa1RGbUhMb1QxMmwwNExQa0VrQ0xOSDdwWm1NRFB3Mzd1YWpYQTJpUHBhU2txYUhmeUJwK3VoSm5Mc0llUUx2c1NabzNkZGxtNDBiNDZjM0Q1Mkp5RmtCN2JXUkgrbzI2bVhxalJ2aUVQWUNPMkpFZDZROURkMlJiWTBiNDZVZWdsUWg3QU4yeGtSUTNwYWJmaUJIKzFnUXRZUStnUzdLUmZpTnErc0VEbjlVNEFEcXVNUk81d1FOZjdJc0RvUHYyWkxNdXFLQ0JuMTVCeTBWVkFQcGdQODI4WUlJRmZyci9CTnNsQU9pVEJ5SDMzZ215U2lmZFllNmIycDhZQUpyaEhXTk03U1dlMmdNL3ZZcDJJVmJrQU9pdmphUmgzZnZwMTFyUzJkb01qYkFIMEdjN2ttWjFyOXlwdTRaL0lGYmtBSUJrcy9DZ3ppZXNyYVJEM1I0QUxsUmJQYitXd0dmYkJBQzRWRzNiTDlSVjBxRnVEd0FYMjFGTkYyVlZIdmpwbWxNdXJnS0F5KzNYc1Q2LzBwSU9wUndBeUszeTBrN1ZJL3lwQ0hzQXlHTkhOak1yVTlrSVA0cWlSTktQbFp3Y0FMcnJMV1BNdklvVFZ4bjRLMG03bFp3Y0FMcnJ4QmdUVjNIaVNrbzY2ZVFEWVE4QXhlMVdOWUhyZllUUFJDMEFsRmJKQkc0VkkveUpDSHNBS0dOSE5rdTk4anJDVDNmQy9NM2JDUUdnMzE3enVhT203eEgrZ2VmekFVQ2ZIZmc4bWJjUlBxTjdBS2lFdDFHK3p4RitzTnQyQVVDSGVjdFdMeU44VnVZQVFHVzhyZGp4TmNKblpRNEFWTVBiaWgxZkkveVZ1TkFLQUtyaTVlcmIwaVA4S0lyR0l1d0JvRXE3YWRhVzRxT2tVN29UQUlCcmpjdWVvRlJKaDZXWUFGQ3JVa3MweTQ3d3h5V1BCd0RrTnk1emNOa1Iva3JVN3dHZ0xxVW1iNTFIK0ZFVURVWFlBMENkZHRQc2RWS21wRE11Y1N3QXdNM1k5VURua2c3bEhBQUl3cm1zNHpUQ3A1d0RBTUU0bDNWY1N6b2p4K01BQU9VNVpUQ0JEd0R0NDVUQmhXdjQ2YzZZdjdzOEdRREFtLzhwdW9PbXl3Zy9jVGdHQU9CWFV2UUFBaDhBMmlrcGVnQ0JEd0R0bEJROXdLV0c3K2NtdUFDQVVvd3hVWkhIRnhyaFIxR1VGT29OQUtBeVJUTzVhRW1uME1rQkFKVXFkQUZXMGNDUEN6NGVBRkNkU2dQZmVaYzJBSUIzaFRLNTBLUXRFN1lBMEN4RkptNXpqL0RUMnhrQ0FCcWtTRFlYS2Vua1Bpa0FvRFp4M2djV0NYenE5d0RRUExtenVVamdEeHc2QWdDb1Z1NXNab1FQQU8zR0NCOEFlcUtTRVQ0QW9NVnlyOE5uRFQ2NklFbVNNLzkvUHA4SDZRZmdVOTYxK0grdXVpTkFLTVBoOExRbFNhSzl2YjBMSDdkY0xqV2Z6N1ZZTEU0YjBFV004TkVKZzhGQVNaS2NodnR3T05UT3pvN1R1VGFialJhTHhlbWJ3SHcrMTNwZDZFNXlRSzN5anZBSmZMUlNraVNud1Q0Y0RyVzd1MXZwODUyY25KeU8vdWZ6T2FVZ05BcUJqODdZTHNzTWg4TkxTek4xV3k2WFp6NEpVQXBDS0FRK1dpbU80elBodnIrL0g3cExoUndmSDU5NUUxaXRWcUc3aEI0ZzhORjRnOEhnVExnblNlSmNkMitxeldaelppNWdzVmd3SHdEdkNIdzB6bmJOdlVtbG1icGxwYUR0T1FHZ0RBSWZRY1Z4ZkNiZzIxYWFxVnRXQ3NyZUFDZ0ZvUWdDSDdYeHVTUVNGa3REVVFTQmo4cWNEL2VxbDBUQ3lwYUdicjhKQUJLQkQwL3lYcTJLTUxoS0dCS0JEd2Zaa3NnczNLbTd0OVB4OGZHWk53SG1BN3FQd01lVnppK0o3RXRwNXVUazVMUVVraVJKYjE3ejlvUXdTME83aDhESEdlZkR2UStsbWUySno4dUNidnVOcjA4VHp0dExRN1B2RGRxTHdPK3h0bCt0NnNyWDBzYStMaW5sS3VIMkl2QjdnaEZxUFNOVVBpRlJDbW95QXIranptOUZRQTA2akw3UGdWQUthaFlDdjJOR281RU9Edzk3RVNwdFhXWFN4MVZPSnljbm1rd21tczFtb2J2U2F3UitoMHluVXoxNDhDQjBOeXJSOVMyR203cTFzMjlIUjBjYWo4ZWh1OUZiQkg1SGpFWWpmZlBOTjZHNzRRVlhpbHBkdlZMNW5YZmVZYVFmQ0lIZkVhdlZxcFdCd0Y0dytYVmxMNktUa3hQRmNSeTZHNzFFNEhmQWNEalVMNy84RXJvYnViRGJvMTl0WFJyNit1dXZkNjRzMXdaNUEvL1BWWGNFN3BvNld0cGVxZEhuMGt5VlZxdVZwdFBwbVgvYmZnTm82Z3F0d1dBUXVndTRBb0dQSzNISHB1WTRmL1AwUHR3eERINFIrQTBXSWxpNTJySTkxdXYxSDk0RStucVZOZkloOEh1czYwc2krMmkxV21tMVdwMVpMZE9YcGFHNEhvSGZFK2V2VnFYdTNoL1p6MzE3VG1CN0s0NHVMUTNGMVFqOERqcS9KSkxTRE02N3JCVFU5cVdodUlZeEpsZVRaR2oxdGlSSlRGSGo4VGg0djJuZGFPUHh1UER2WDVJa3dmdmR4NVkzeC84a2RBb2plZmpDNzFMM0VQZ0EwQk1FUGdEMEJJRVBBRDFCNEFOQVR4RDRBTkFUQkQ0QTlBU0JEd0E5UWVBRFFFOFErQURRRXdRK0FQUUVnUThBUFVIZ0EwQlBFUGdBMEJNRVBnRDBCSUVQQUQzQkhhL1FHM2ZTZGp2OUtrbHZYUExZbDVKK2xiUkp2ejVMdno2dnVJOUFsUWg4ZE5ZdFNYY2x2WjErdlZIZzJCdDY5V2J3OXRhL3Y1RDBzNlFmSkgzdm9ZOUFuUWg4ZE01OTJaQisrN29IT3JncDZWN2FYc3FHL21QWk53R2c2UWg4ZE1LT3BIZGx3LzVtVGM5NVE2L0MvNmxzOEg5ZDAzTURMcGkwUmVzOWxMU1U5SUhxQy92ejNwRDB1YVNmWk10SFFCTVIrR2l0dTdKQi82bUsxZWVyZEZ2U3Q1TCtLenVIQURRSmdZL1cyWkgwbVd5d2hoclJYK2R0MmRIKy9kQWRBYllRK0dpVk81SytrNjNYTjkwTjJUTFBGN0p2VWtCb0JENWE0eSt5WVg4N2RFY0t1aWZiYjBvOENJM0FSeXZjbC9SL2FrNnR2cWpic2lXZU85YzlFS2dRZ1kvR3V5OWJHbW03RzdJamZVSWZvUkQ0YUxTdWhIMkcwRWRJWEhpRnhxb2o3TE05Yzg2N2JJOGRIN0xRZjFQc3pZTjZFZmhvcER1eVN5OTlleWE3SGNKVHZkb2M3VEszMG42OElUdGg3SE1KNkEzWnRmcC92YVlQZ0U4RVBocG5SellNZlUzUXZwRDBsV3pRRnhsUlAwL2I5NUkrbEEzL2QyWEQzMGZmYnN1K3FiM240VnhBSHRUdzBUaGZ5TTlvK29Xazl5WHRTZnBTNWNzbnY4cUc4NTZrUjdMbG9MTHVpWXV6VUI4Q0g0M3lGL25aNWZLUmJJMjhpczNNTmx2bmYrcmhmSitKTmZxb0I0R1A0TzdJN290elYzWjBYOFlMU2Z1eWdWeDFiZnk1YkEzK281TG51YUh5cnh2SWd4bythbk5YZGdMMGp1eUkxdmNWczg4VVpoTDBTOW45OEwrVGUyMy9EZG52RC92cW8wb0VQaXAxVjdaTzdXdWk4ektQWlNkV1E2MTQrVlgyemFaTTZIOGhPejhBVklXU0RpcHhYM2JyNG05bEE3L0tzSDhtTzVrYWVubGpGdnF1azdrM3hRUXVxa1hndzZzczZEOVhQVnNYWjJXY3BzaEMzOVVIdmpvQ1hJREFoeGUzWk1zWmRRVzlaRWZTVFJqWm4vZXIzQ2R5YjRvN1pxRTZCRDVLdXkrN0UyU1YyeEZjNUpFdTNoYWhDYjZVOUlQanNmZDhkZ1RZUXVDamxDOWtSL1YxYjF2OFZEWlVtK3hEdWRYejc0a2JwcUFhQkQ2YzdNaVdjRUtOUmg4RmV0NGluc3Y5VGVrdlBqc0NwQWg4RkphRmZkMGxuTXhUdFdlOStsZHlHK1g3dU5vWU9JL0FSMkdoYnpQWWh0RjlaaU8zN1IyWXVFVVZDSHdVOG9YQ2h2MWp0V2Qwbi9uSzRaZ2I0aVlwOEkvQVIyNFBGWFlGeVdPMWN5dmg1N0xYQ3hSRjRNTTN0bFpBTG5kVXpVVkJ6MlRMSHRuTlNPN0l6aEZzencvOElEdEtidHZJZnR2M0t2N0pLT1FuS1hRVGdZOWN2cENmcFpjdlpjUHZoL1JyWDdoc284d0lINzRSK0xqV2ZaVWZiYjZVWGFMNGxacDNaV3dkWEQ2ZHNCWWZ2bEhEeDVWMlZQN2VzazlsYnhaU3h4NzFUZmFpNE9Odml4dWp3QzhDSDFkNlYrVktPWTlrTnhNcmUzdkJMbkQ1SGl4a2w4R3lUQk0rRVBpNFVwbnRldDlYdTliTU45VWJzdHRNZnlIS1BDaUh3TWVsN3N0OTU4dVBWTTM5WlB2c251elcwMnk3QUZjRVBpN2xlbm4vRDJyK3htWnRkVVBTLzZuOHZBcjZpY0RIaFhia0Z2alpIdldvMXJ2aXh1Y29qc0RIaFZ3bkNVUGVWN1p2N29uUVJ6RUVQaTdrc2hQbUMxRzN2MG9WVndyZms5M3lBc2lEd01lRlhFYjRoUDNWSGxkMDNrL0ZzazNrUStEalFpNVgxbFlWYUYzeFhHNDdaK2JCa2sza1FlRGpEMXl1N253aExxN0s0ME5WODhaNFUzWWlGN2dLZ1k4L2NBbjhwdDVNdkluZWsvUTN1ZC9rL0RJUHhTZ2ZWeVB3NFFXQlg4elBrdjRoNlg4bERTWDlVK1ZIL2pmRUtCOVhJL0NCd0o3TGJoWDlubXo0dTJ5bG5DbXpGUWE2ajhBSEd1UzU3R1p6cnFQOW0yTHJCVnlPd0FjYTZEMjVoNzdMTlJUb0J3SWZ2YkFqTzZuNW5hVC9sN2J2MU95SnpnOVZmQTk5aVRYNXVCeUJEeSthZkR1Kys3SzdUSDZxczZQZk45Si9XNnFadGUrTjNMYVg1bDY0dUF5Qmp6OXdXVS9meE1DL0sra25TWi9yNnB1NDNFZ2Y4NU9hTnpyK1dvenk0UStCano5d0NmeWJhazdvMzVLOTh2UmJGUnZ0M3Rhckc0MDA2ZGFDVmV6QmczNGk4SEVobDZXQjk3ejNvcGdkU1IvSWp0VEw5T1ZlZW80UDFJejZQbGN3d3hjQ0h4ZHl1WkRxdnNJRjVIMjlDdWt5OStETjNOQ3JONDhtMXZjQkZ3UStMdVF5d2c5eHBlY2QyZFUybjh2OWRveFh1Wm1lK3pzMXAyUUZ1Q0x3Y2FIdlplOWVWZFJEMVZQLzNwR3R0Uitybm5YbmI2VFBGV0pYeWlhVWxkQU5CRDR1OWIzRE1UY2svZGQzUjg3NVFIWXBaWWc1Zyt4RzRoL1UrSnhjT1F0ZkNIeGN5dlZLejl1cTV0WjdkL1VxYkgzVTZWMWw5ZjJscWwvK2VGZHVwU3BXOXVBaUJENHU5YlBjMW9CTGZ1KzNla3UyaHY2dHFxblR1N29wMjZmdlZGMFp5K1dUaE92UEROMUg0T05LTGxkNlpyTFFkNjFCNzBqNlROSkN6ZDRmNWczWlBuNG12L1gyaDNKNzNZenVjUmtDSDFkeXZkSXpjMDl1SzF3ZXlwWk0yclMvKzd1eWZmWnhVL0g3c3RzK3VQQjlZeFYwQjRHUGE3MVg4dmpic3FHZmQvVDdoV3pZaGF6VHU3b2gyM2ZYY2xiMnFlWnp4K05meW0yeUhmMUE0T05hUDZ2OHFQR0diSkJkNTc2cVhYM3pWUFltSTJWdk5IS2RleXAyd1ZhMm0rZFBLdmVwaHJESFZRaDg1UEtlM05ibGI3dW42MGY1VlMxM2ZDRjdIOW0veW01VmtOMW81RytxYnBJejcydTVJeHYwbjZyOHBIU1pPUmQwSDRHUFhEYXk5MkF0NjZwYXZ1c1N4S3U4bFBTUnBEMWRQSm41Yy9yZlBsTDVON1R6YnVyNlpadlpDaVFmci91eDJIY0hWeVB3a2R2UHNzSFlGbzlsdy96TEhJLzlNbjFzMlJ1SkYvV1ovTXhWdkpTOVlRcHdGUUlmaFh5cCtrT3hxS2VTOW1YTFVKc0N4MjNTWS9aVmJYMC9jMHZTMjU3T1ZmUzFvcDhJZkJSVzVuNnJWWlljWGtqNnAyeHQzbVczejh5djZUbitxV292WXZKMXNkWmpNVm1MZkFoOE9IRUovYXBxekM5bEp5djM1RGY0dmsvUCtVais2L3UrUEZQNVpiUG9Ed0lmenQ2VDlIN094MmFoN05zUGt0NnM2TnlaUitsek5PMkNwbWV5bjBTQXZBajhqaGtPaDdVKzM5ZXlOZStyU2g4djlHbzVwRzlmVlhUZTg1Nm56K1ZUbWJMVEQ3TGYweXJyOWttU1ZIaDJoRURnZDh4Z01LajlPWCtWSFFGL0pEdlorVEp0VDJVL0FieXBjdUhXVlJ1NXpZVThrbDBpeXlRdGl2cHo2QTZnR3pheUszanlMSUhFS3gvSzduZWZaMm5tQzlreUdwdWp3UlVqZkNDZ2pXeHA1dGtWajNraCswbnBzb3ZIZ0x3WTRYZE1pSklPeXNsS1l2ZGwxK1h2YlAzN005bDVraERpT0E3MHpLZ0tnZDlnaThXaThERjFUOXJDbjY4Vkx0d3Y0aEw0THIrenFBOGxuUVpicjllaHV3QVV3dTlzc3hINEhjUEhjUGpDcDhYdUlmQWJicmxjRm5yODd1NXVSVDFCMyt6c0ZMdGhZOUhmVmRTUHdHODRsNC9JVE55aUxKZFBpcFJ6bW8vQWI3alZhbFg0R0Q2S295eVh3SGY1WFVXOUNQeUdjL2tqb282UHNsd0dEUVIrOHhINERlZXl6STNBUjFrc3lld21Bci9oWE9xaWJIcUZzbHhHK05Ud200L0FiN2o1ZkY3NEdFYjRLTXNsOEYxK1YxRXZBcjhGVGs1T0NqMStkM2UzTnl0MTN0V3JyUWlxdEpNK1Z4L0VjVng0U1diUjMxR0VRZUMzZ0V0dHRDOWxuYmNsTFNVOXJQQTVIcWJQNGV2K3MwM0hoRzEzRWZndHdKNDZWN3NoNlZQWlVMN3I4YngzMDNOK3FuemJGM2VGeTJDQmNrNDdFUGd0d0FnL241dVN2cFgwbmNyZElQeFdlbzV2MDNQMmpjdGdnUlU2N1JBWlkvSTlNSXJ5UFJEZURRWUQvZjc3NzRXUGk2S29ndDVVNTY1c3lQcnlTUGEyaEhudkRKWFY2VC93MkllL3FYMTcyT2ZOaEcydnZmWWFaWjJBakRHNS90Z1o0YmZBZXIxMm1oVHI0eWgvMndleUpabjdPUjU3UDMyc3o3QnZvOUZvVlBpWWs1TVR3cjRsQ1B5V2NLbVJ1dnp4aHZTejdMMXdmYm9oNlhOSlArbmkrdjdkOUw5OUx2OTErcGRxMytqZVpaQkFPYWM5Q1B5V2NBbjhObzd3SDFWMDN0dXk1YUwveXRib2I2WC8rOXYwdjFXaHF0ZFNKZGJmZHhzMS9KYUk0MWkvL2ZaYjRlUGFXRnY5UXRLOUNzK2ZmWXFvY3VYTlk5a2JqcmNOOWZ0Mm9vYmZNYXZWeXFtTzM3YXlqbVNEOGlQNUwrOWticWk2c0g4cDIvYzJocjFVZkU5NzZ2ZnRRdUMzeUd3Mkszek1lRHoyMzVFYWZDbHBUM2FrM0JhUFpmdjhaZWlPbEZDMEhrODVwMTBJL0JaeCtlUGEyOXRyN2Q0Nkc5bVI4cjZrcDRIN2NwV25zbjE4VC9tWGdEYlZkRHF0OVBFSWk4QnZrZGxzcHMybWVLUzBzYXl6N1ZkSmY1WDB2cVFYZ2Z1eTdZVnNuLzRxMjhjdW1NL25Pam82eXZYWW82TWpSdmd0UStDM2pFdFpaektaVk5DVCtuMHQ2VTNaMVM5VjFmZnplSm4yNGMyMFQxMHpIbyt2RGYyam82UFdsZ3Y3ak1CdkdaZkEzOTNkYmVVU3pZdHM5Q3BzUTlUM0grdlZtMDdieXpkWEdZL0hldWVkZC9Ua3laTXovLzdreVJPOTlkWmJoSDFMc1N5emhkYnJkZUh0YTdzNklyc3I2VE5WdDVZKzgwelNoMnJmaFZUb0I1WmxkcGpMS1AvQmd3ZWQzQ1AvWjlrUjkvdXFwc3p6TWozM215THMwWDRFZmd1NXJvem9TaTMvSWwvTExvbjBlWFhyby9TY1hhelRvNThvNmJUVWFyWFM3dTV1b1dNMm00M2lPTzc4dlVkdnlaWjVYRzlZOG9OcytlYTV0eDRCMWFLazAzR0hoNGVGajluWjJlbjBLRC96WE5JL1pMY21McktNODBWNnpEOUUyS09iR09HM2xPc2UrWDBaNVc5N0tMdnQ4V1hiS1dUTExOdDhoU3o2alJGK3g2M1g2OXdYeUd6cnl5aC9XN1pOd3lQWjFUYVpaM3BWcHlmczBRZU04RnZNZFFmTlBvN3lnUzVqaE44RHE5Vkt4OGZIaFkvYjJkbHhtZ01BMEc2TThGc3VTUkw5K09PUFRzZSsvdnJyM0swSTZBQkcrRDB4bjgrZFJ2bVMyMG9mQU8xRjRIZkF3Y0dCMDNINysvdTltOEFGK295U1RrZk01M1B0Nys4WFBtNnoyV2c0SEhMWElxREY4cFowQ1B5T0dBNkgrdVdYWDV5T1BUNCs3c3h1bWwwd0dvMlVKSW5URGNYeldxMVdtcy9ubXMxbXJOYnFnTHlCTDJOTXJpYkowSnJkcHRPcGNYVndjQkM4LzMxdncrSFFMQllMNTUraGkvVjZiY2JqY2ZEWFRpdlhUTjRjei8zQUJyd28ydFZ0TUJpWTlYcnQvTWVmSkVudzE5RFhOaHdPUy8zc3lpTDAyOTBNZ2QvUE5wbE1uUC9vMSt1MUdRd0d3VjlESDl0OFBuZit1ZmtTeDNIdzd3UE5yUmtDdjcrdFRGbGdzVmdFNzMvZjJuQTRkUDU1K1hSNGVCajhlMEZ6YXlabmpyTXNzNFBLM05scWIyL1BlYjk5dUduS1RlYVp1TzgrQXIrREZvdUZQdm5rRStmakh6eDQ0THkySCsyMXQ3Y1h1Z3VvR0lIZlVRY0hCMW91bDg3SGYvenh4NTI4Qnk3UVp3UitoNVVON1AvODV6K0VmZzI0NkEyMXlWdnNWd01tSm1qRlc1bFZPeG1XN0ZYYnlpNm45U24wOTRMbTFneXJkR2habTgxbXBZT0EwSysyamNmajBqOGpIMEovSDJodXpSRDR0S3dOQmdNdlYzQVMrdFcySm9SKzZPOEJ6YTBaQXArMjNYeGR5VG1kVG9PL2xpNjNKRW04ZkNKekZmcjEwOXlhSWZCcDU5dG9OUElTQ3JQWmpDdHlBLzhjcTZyNWgzNXROTGRtQ0h6YVJjMVgyV0N4V0pqaGNCajg5ZlN0SFJ3Y2VQbjVYU2IwNjZPNU5VUGcweTVyaDRlSFhzSmh2VjZiMFdnVS9QWDBvUTBHZzFyMjJ3bjlPbWx1elJENHRLdGFtYTJVejV0T3A1UjRLbXhKa3RTMmJEUDBhNlc1TlVQZzA2NXJQa04vdFZxeHZiTG5OaGdNdkgwYXl5djBhNmE1TlVQZzAvSTBuNkZ2ak4xeGtkRisrVFlhamN4cXRmTDZzOGtqOU91bXVUVkQ0TlB5TnQraHoxMlUzRnNjeHl6THBCVnVoc0NuRldtK1E5OFlZK2J6T1dXZW5HMHdHRlMrQWllUDBOOEhtbHN6QkQ2dGFLdXFYanlkVHJtYjBoWHQ0T0NBdlhSb3Bab2g4R2t1cmNyTCt3bitWMjB3R0pqSlpGSlpuWDYxV2ptZE8vVDNoZWJXRElGUGMyMVZMd1BzYzZrbmp1UEtSL1NMeGNKNTNYN283dy9OclJrQ24xYW14WEhzWmNPMXE2eFdLek9aVEhxeHFpZEpra3JtU2M3YnZpOHRnZCtmWmdoOFd0azJHQXhxQ1NsamJMbW5hMWZ0WnFQNU9wWlhYblRWTTRIZm4yWUlmSnF2Tmg2UGE1dFVYSy9YclE3L09JN05aREtwL05QUnRzVmljZUhjQ0lIZm4yWUlmSnJQVmtlSjU3ejFlbTFtczVtWlRDYU4zYWh0TUJpWTBXaGtEZzhQZzF3b2RYQndjR25mQ1B4ZXRkamt5UEhJL295dkYwVlJ2Z2VpMHc0T0R2VHh4eDhIZWU3TlpxUDVmSzdGWW5INmRiMWUxOXFINFhCNDJwSWswZDdlWHEzUG4xa3VseHFQeDFvc0ZwYytaajZmYTM5L3Y5QjVveWdxMnpVRVlJeko5WU1qOEZGWUhNZWFUcWVGdzZRS0p5Y25XcTFXbXMvbmtuVDZ0Y3lid1hBNDFHQXdVQnpIaXVOWXcrRlFjUndIQy9kdG04MUdoNGVIT2pnNHVQYXhCSDUvRVBpbzNIZzgxdUhob1haMmRrSjM1VXJabThKVm12RG1kWjBuVDU1b01wbGMrMW95UlFOL3VWeHFPQnc2OWc0aDVRMThhdmkwVXEwcFd3SjBtZXRPcEpQSnBORHpiQy9wcExXckdTWnRhWFcyT0k1clc4TFpGNnZWcXRRbWRJUEJJUGZxcXZWNnpWWFFMVzZHd0tlRmFBUi9lV1dEZnJ2bHZYazl1NXUydTVrS0FuOGUra1hSMnRNSS91SjhCdjEyR3c2SGx5NFo1Y1kxbldoemt6UEhpMHphemlYdDUzb3drSXJqV09QeFdKUEpwUEdUdTZFY0h4L3I4UEJRczltczB1Y1pqVVpuSm1VWGkwWGx6NGxhSEJ0amtseVB6UHZPSUdtbThPOWt0QmEzOFhoYys4VmJUYlZlcjgzaDRTRjFjNXFQTmpNVmxIUU9HdkRDYUIxb2NSd0h1ekkxdE5sc1JyMmM1cnNkbUFvQ2Y5S0FGMGJyV0JzT2g1MFAveXprKzdBcktDMUltNWdLYXZpSnBCOXpQUmh3TUJ3T05ScU5sQ1JKS3k2RXVzekp5WW5tODdsbXM1bm04M250MnorZ2Q5NHl4c3p6UExCSTRNZVNmblB1RWxEQVlEQlFraVNuZTlZMCtRMGdDL2p0UFg2QUdyMW1qRm5sZVdEdXdKZllYZ0ZoYlc5Y2xyVzZWLzRzbDB1dFZxdWdHN2dCMjB6ZWJSVlVQUEFYa3NMdklBVnNTWkpFZzhIZ2RNbGh0dm1aWkQ4cDVObjBiTFBabkJtWlowRytXcTNPTktCaGxzYVkzQnNnRlEzOHFhUUhEcDBDQVBoM1pJd1o1MzN3bndxZW5PSWtBRFJIb1V3bThBR2d2UXBsY3FHU2pzVEVMUUEwUlpFSlc2bjRDRitTbGc3SEFBRDhLcHpGTG9FL2R6Z0dBT0RYdk9nQkJENEF0Tk84NkFFdU5meUJwTitMUGhFQXdLdi9NY1lVdXVxdjhBZy9mUUxxK0FBUXpySm8yRXR1SlIzSjdvMFBBQWpES1lNSmZBQm9INmNNTGx6RFB6MHdpbGFTZHAwT0JnQzRPakhHeEM0SHVvN3dKVWI1QUJDQ2MvYVdDZnhwaVdNQkFHNm1yZ2M2bDNRa3lqb0FVRFBuY281VWJvUXZNY29IZ0RwTnl4eGNkb1FmaTlzZUFrQmRjdC9POENLbFJ2anBFeCtYT1FjQUlKZmpNbUV2bFMvcFNKUjFBS0FPMDdJbktGWFNPVDBKazdjQVVLVlNrN1VaSHlOOGlWRStBRlJwNnVNa3ZrYjRBMGtyU1R1bFR3WUEyTGFSRkx0c2xuYWVseEYrMnBHcGozTUJBTTZZK2doN3lkTUlYMktKSmdCVXBOUlN6RzIrYXZqWkVzMGpYK2NEQU9qSVY5aExIa2Y0RXFOOEFQRE0yK2hlOGpqQ2wwNUgrWi80UENjQTlOUW5Qc05lOGp6Q2wxaXhBd0FlZUZ1WnM4M3JDRjg2WGJGejRQdThBTkFqQjc3RFhxcGdoSDk2WXE2K0JRQVhYcTZxdllqM0VmNldjWVhuQm9DdUdsZDE0c29DM3hnemwvU2txdk1EUUFjOVNiT3pFcFdWZENRbWNBR2dnRW9tYXJkVldkSmhBaGNBOHF0a29uWmJwU1A4MHllSm9ybWsvY3FmQ0FEYTZkZ1lrMVQ5SkhVRlBxVWRBTGhZNWFXY1RLVWxuVXo2UXNaMVBCY0F0TXk0anJDWGFncDhTVExHekNUOXU2N25BNEFXK0hlYWpiV29wYVJ6K21TMnRET1h0RmZia3dKQU15MGxKWFdON3FXYUExODYzVkZ6SWVyNUFQcHJJMm5vZTNPMDY5Ulcwc21rTDNCYzkvTUNRSU9NNnc1N0tVRGdTNmYxL0grRmVHNEFDT3hmZGRidHQ5VmUwam56NUZFMGxmUWdXQWNBb0Y1SHhwaHhxQ2NQR3ZnU0YyVUI2STFhTHE2NlNwQ1N6amtqMmRscUFPaXFwV3pXQlJVODhOTWxTWWtJZlFEZFZQdnl5OHNFTCtsazJINEJRQWZWdG0xQ0hzRkgrSm10a2Y0bWNGY0F3SWVOR2pLeXp6UW04Q1hKR0xNUW9RK2cvYkt3WDRUdXlMWkdCYjUwR3ZxeHFPa0RhS2VsYkJtblVXRXZOVER3SlNaeUFiUldZeVpvTDlMSXdKZk9oUDV4NEs0QVFCN0hhbkRZU3cwT2ZNbUdmbnFod2xIb3ZnREFGWTZNTVkwT2U2bmhnWjlKTDBWbTd4MEFUZlN2a05zbEZOR1lkZmg1UkZFMGtqUVZhL1VCaExlUjNmVXl5RVpvTGxvVitOTHBmdm96Y1JNVkFPRXNKWTFDYkhGY1JpdEtPdHZTYjNBaWJwY0lJSXgveTA3T3JrSjNwS2pXamZDM1VlSUJVS1BXbFhET2EzWGdTNmQ3OE16RUZzc0Fxbk1zVzhKcDlDcWM2N1N1cEhQZTF0TE5mNGt0R1FENHRaRmRoZFA0SlpkNXRINkV2eTBkN1U4bC9UMXdWd0MwM3hQWkVrN3JnejdUcWNEUFJGR1V5QWIvYnRpZUFHaWhFOW1nbjRmdWlHK3RMK2xjeEJnek44YkVvc3dESUwrc2ZCTjNNZXlsam83d3Q2Vmxub21rajBQM0JVQmpmU0xwc0V2bG00dDBQdkF6NlFWYkI1SWVCTzBJZ0NZNWtuVFF4algxTG5vVCtKazArQ2VTeG1MOVB0QkhHOWs1dnNPK0JIMm1kNEdmMlNyMWpIWDMwQ2tBQUFEdlNVUkJWTVhrTHRBSEozb1Y5SjB1M1Z5bXQ0Ry9MWXFpc1d6d2MvRVcwRDNIa3FiR21Hbm9qb1JHNEc5Snl6MWpNZW9IMmk0YnpVLzdWcmE1Q29GL2lTaUtockxCUHhMaEQ3VEJpZXcySzlNbTNrKzJDUWo4SE5Md0g2V05iWm1CNWxqS2h2eU1rTDhlZ1Y5UU90bWJiRFhlQUlENkxDWE5zOWJYeVZkWEJMNEg2VllPdzYzR213QlEzbExTSW10ZHZmcTFUZ1IrUmRJSjRGajJEV0N3OVZWaU5SQWcyZFV6a3JTV0RmWHM2NHFKMW1vUStBMnk5U1lCZE1XQ3NrdHpFUGdBMEJPZDNDMFRBUEJIQkQ0QTlBU0JEd0E5UWVBRFFFOFErQURRRXdRK0FQUUVnUThBUFVIZ0EwQlAvSDlmNTZOTE9FVmJiZ0FBQUFCSlJVNUVya0pnZ2c9PSIsIm1lZGlhdHlwZSI6ImltYWdlL3BuZyJ9XSwiaW5zdGFsbCI6eyJzcGVjIjp7ImNsdXN0ZXJQZXJtaXNzaW9ucyI6W3sicnVsZXMiOlt7ImFwaUdyb3VwcyI6WyIqIl0sInJlc291cmNlcyI6WyIqIl0sInZlcmJzIjpbIioiXX0seyJhcGlHcm91cHMiOlsicGxhdGZvcm0uc3RhY2tyb3guaW8iXSwicmVzb3VyY2VzIjpbImNlbnRyYWxzIiwic2VjdXJlZGNsdXN0ZXJzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJwYXRjaCIsInVwZGF0ZSIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbInBsYXRmb3JtLnN0YWNrcm94LmlvIl0sInJlc291cmNlcyI6WyJjZW50cmFscy9maW5hbGl6ZXJzIiwic2VjdXJlZGNsdXN0ZXJzL2ZpbmFsaXplcnMiXSwidmVyYnMiOlsidXBkYXRlIl19LHsiYXBpR3JvdXBzIjpbInBsYXRmb3JtLnN0YWNrcm94LmlvIl0sInJlc291cmNlcyI6WyJjZW50cmFscy9zdGF0dXMiLCJzZWN1cmVkY2x1c3RlcnMvc3RhdHVzIl0sInZlcmJzIjpbImdldCIsInBhdGNoIiwidXBkYXRlIl19LHsiYXBpR3JvdXBzIjpbImF1dGhlbnRpY2F0aW9uLms4cy5pbyJdLCJyZXNvdXJjZXMiOlsidG9rZW5yZXZpZXdzIl0sInZlcmJzIjpbImNyZWF0ZSJdfSx7ImFwaUdyb3VwcyI6WyJhdXRob3JpemF0aW9uLms4cy5pbyJdLCJyZXNvdXJjZXMiOlsic3ViamVjdGFjY2Vzc3Jldmlld3MiXSwidmVyYnMiOlsiY3JlYXRlIl19XSwic2VydmljZUFjY291bnROYW1lIjoicmhhY3Mtb3BlcmF0b3ItY29udHJvbGxlci1tYW5hZ2VyIn1dLCJkZXBsb3ltZW50cyI6W3sibGFiZWwiOnsiYXBwIjoicmhhY3Mtb3BlcmF0b3IiLCJjb250cm9sLXBsYW5lIjoiY29udHJvbGxlci1tYW5hZ2VyIn0sIm5hbWUiOiJyaGFjcy1vcGVyYXRvci1jb250cm9sbGVyLW1hbmFnZXIiLCJzcGVjIjp7InJlcGxpY2FzIjoxLCJzZWxlY3RvciI6eyJtYXRjaExhYmVscyI6eyJhcHAiOiJyaGFjcy1vcGVyYXRvciIsImNvbnRyb2wtcGxhbmUiOiJjb250cm9sbGVyLW1hbmFnZXIifX0sInN0cmF0ZWd5Ijp7fSwidGVtcGxhdGUiOnsibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsia3ViZWN0bC5rdWJlcm5ldGVzLmlvL2RlZmF1bHQtY29udGFpbmVyIjoibWFuYWdlciJ9LCJsYWJlbHMiOnsiYXBwIjoicmhhY3Mtb3BlcmF0b3IiLCJjb250cm9sLXBsYW5lIjoiY29udHJvbGxlci1tYW5hZ2VyIn19LCJzcGVjIjp7ImNvbnRhaW5lcnMiOlt7ImFyZ3MiOlsiLS1oZWFsdGgtcHJvYmUtYmluZC1hZGRyZXNzPTo4MDgxIiwiLS1tZXRyaWNzLWJpbmQtYWRkcmVzcz0wLjAuMC4wOjg0NDMiLCItLWxlYWRlci1lbGVjdCJdLCJlbnYiOlt7Im5hbWUiOiJSRUxBVEVEX0lNQUdFX01BSU4iLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9hZHZhbmNlZC1jbHVzdGVyLXNlY3VyaXR5L3JoYWNzLW1haW4tcmhlbDhAc2hhMjU2OmE3N2IzNTkwZTcyNzEyNmU5OWVmZjE0YTE5MmVlZDRhZGRhMDYxNjU3MzZiNTEzMDY5NzViYTg5YWZkMjE4MTcifSx7Im5hbWUiOiJSRUxBVEVEX0lNQUdFX1NDQU5ORVIiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9hZHZhbmNlZC1jbHVzdGVyLXNlY3VyaXR5L3JoYWNzLXNjYW5uZXItcmhlbDhAc2hhMjU2OmZiOTA3MjRiYmE1MjYwMDdkZDg4YWYzNmE4M2U5Njc5YjVkODViMzViYTE2Y2JmNmFkZDZhMzZkNmU3Mjg0ZmEifSx7Im5hbWUiOiJSRUxBVEVEX0lNQUdFX1NDQU5ORVJfU0xJTSIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL2FkdmFuY2VkLWNsdXN0ZXItc2VjdXJpdHkvcmhhY3Mtc2Nhbm5lci1zbGltLXJoZWw4QHNoYTI1Njo4MDQ2NGU1MTE2YWNhNTNlZWZhODI3OGE5MDIzY2IxYmVmYWYzZTE0YmFkNTVhZmFjNWRkOTBiOWEzZTAxNTBlIn0seyJuYW1lIjoiUkVMQVRFRF9JTUFHRV9TQ0FOTkVSX0RCIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vYWR2YW5jZWQtY2x1c3Rlci1zZWN1cml0eS9yaGFjcy1zY2FubmVyLWRiLXJoZWw4QHNoYTI1NjpjODgyNzhiZjBiZTM5NTY2YjljYzZkNzRjYmVkMzU3NDU5YjJiNTNkOWQ0NDgxOGYxNWI4NDY5OGIwYTgzYTc1In0seyJuYW1lIjoiUkVMQVRFRF9JTUFHRV9TQ0FOTkVSX0RCX1NMSU0iLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9hZHZhbmNlZC1jbHVzdGVyLXNlY3VyaXR5L3JoYWNzLXNjYW5uZXItZGItc2xpbS1yaGVsOEBzaGEyNTY6MWE3NWU4OWY3ZTJkZTRmOWMyOTA0ZmUxMTI5MjQ0ZWVlYWZmNWMyMjJjMjcyYjE2MjdkZjllMjkxODMzOTc1YyJ9LHsibmFtZSI6IlJFTEFURURfSU1BR0VfQ09MTEVDVE9SIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vYWR2YW5jZWQtY2x1c3Rlci1zZWN1cml0eS9yaGFjcy1jb2xsZWN0b3ItcmhlbDhAc2hhMjU2OmFjZDgxMDc4N2Y0NzJhYjE2NzA0ZTdiNjdjMTk3ODBmNzVmYWJmMjdhNjljYTFlMjA5N2Q2YWUzNmU0NTAwN2UifSx7Im5hbWUiOiJSRUxBVEVEX0lNQUdFX1JPWENUTCIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL2FkdmFuY2VkLWNsdXN0ZXItc2VjdXJpdHkvcmhhY3Mtcm94Y3RsLXJoZWw4QHNoYTI1Njo5NjE4N2Y3YzViODk1ZWQ5YzkyMDNlMWU2MTFlNWUyOWYxNWVhZGZlNGNmMmI0ZDZhMzExMjlmMmE0YjBiZWJlIn0seyJuYW1lIjoiUkVMQVRFRF9JTUFHRV9DRU5UUkFMX0RCIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vYWR2YW5jZWQtY2x1c3Rlci1zZWN1cml0eS9yaGFjcy1jZW50cmFsLWRiLXJoZWw4QHNoYTI1NjoyM2RjMzQ0ZGJiYTUzMjdmZDUxOGViOTBkYmI4MjAzZTUzOWI4NmUyYWVhNjkyODVjNjI5ZTFkNDE0Mjg1ZGMwIn0seyJuYW1lIjoiUkVMQVRFRF9JTUFHRV9TQ0FOTkVSX1Y0X0RCIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vYWR2YW5jZWQtY2x1c3Rlci1zZWN1cml0eS9yaGFjcy1zY2FubmVyLXY0LWRiLXJoZWw4QHNoYTI1Njo2NzY3NWEyODk5YWQ3YjlmOTBiMTdmNzI3YTVhYjkzMzBmZjkwMzlmNjAxM2IxOTcyMDNlOTIyY2YzODBlZTM0In0seyJuYW1lIjoiUkVMQVRFRF9JTUFHRV9TQ0FOTkVSX1Y0IiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vYWR2YW5jZWQtY2x1c3Rlci1zZWN1cml0eS9yaGFjcy1zY2FubmVyLXY0LXJoZWw4QHNoYTI1Njo5ZTlkZDIyZWQ5YmMwZGE4NWUxZjkwNTZmYzI2OWQxNjBkNGU2MWMyMTY4MzY3MjQ5ZWU5Y2ZjMTU4Njg2ZGFjIn0seyJuYW1lIjoiTUVNT1JZX0xJTUlUX0JZVEVTIiwidmFsdWVGcm9tIjp7InJlc291cmNlRmllbGRSZWYiOnsiY29udGFpbmVyTmFtZSI6Im1hbmFnZXIiLCJkaXZpc29yIjoiMCIsInJlc291cmNlIjoibGltaXRzLm1lbW9yeSJ9fX1dLCJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9hZHZhbmNlZC1jbHVzdGVyLXNlY3VyaXR5L3JoYWNzLXJoZWw4LW9wZXJhdG9yQHNoYTI1NjoyMzI1MTg0MGRjNGEzMzIzY2U0MmFmMjFlMjczMDhhYTdmNGFkZGI2Mjg0ZDE2ZWI1YjUyZDRkNDM0NjQ2OTA0IiwibGl2ZW5lc3NQcm9iZSI6eyJodHRwR2V0Ijp7InBhdGgiOiIvaGVhbHRoeiIsInBvcnQiOjgwODF9LCJpbml0aWFsRGVsYXlTZWNvbmRzIjoxNSwicGVyaW9kU2Vjb25kcyI6MjB9LCJuYW1lIjoibWFuYWdlciIsInBvcnRzIjpbeyJjb250YWluZXJQb3J0Ijo4NDQzLCJuYW1lIjoiaHR0cHMiLCJwcm90b2NvbCI6IlRDUCJ9XSwicmVhZGluZXNzUHJvYmUiOnsiaHR0cEdldCI6eyJwYXRoIjoiL3JlYWR5eiIsInBvcnQiOjgwODF9LCJpbml0aWFsRGVsYXlTZWNvbmRzIjo1LCJwZXJpb2RTZWNvbmRzIjoxMH0sInJlc291cmNlcyI6eyJsaW1pdHMiOnsiY3B1IjoiMjAwbSIsIm1lbW9yeSI6IjFHaSJ9LCJyZXF1ZXN0cyI6eyJjcHUiOiIxMDBtIiwibWVtb3J5IjoiMjAwTWkifX0sInNlY3VyaXR5Q29udGV4dCI6eyJhbGxvd1ByaXZpbGVnZUVzY2FsYXRpb24iOmZhbHNlLCJjYXBhYmlsaXRpZXMiOnsiZHJvcCI6WyJBTEwiXX19fV0sInNlY3VyaXR5Q29udGV4dCI6eyJydW5Bc05vblJvb3QiOnRydWV9LCJzZXJ2aWNlQWNjb3VudE5hbWUiOiJyaGFjcy1vcGVyYXRvci1jb250cm9sbGVyLW1hbmFnZXIiLCJ0ZXJtaW5hdGlvbkdyYWNlUGVyaW9kU2Vjb25kcyI6MTB9fX19XSwicGVybWlzc2lvbnMiOlt7InJ1bGVzIjpbeyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJjb25maWdtYXBzIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJ3YXRjaCIsImNyZWF0ZSIsInVwZGF0ZSIsInBhdGNoIiwiZGVsZXRlIl19LHsiYXBpR3JvdXBzIjpbImNvb3JkaW5hdGlvbi5rOHMuaW8iXSwicmVzb3VyY2VzIjpbImxlYXNlcyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0Iiwid2F0Y2giLCJjcmVhdGUiLCJ1cGRhdGUiLCJwYXRjaCIsImRlbGV0ZSJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbImV2ZW50cyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJwYXRjaCJdfV0sInNlcnZpY2VBY2NvdW50TmFtZSI6InJoYWNzLW9wZXJhdG9yLWNvbnRyb2xsZXItbWFuYWdlciJ9XX0sInN0cmF0ZWd5IjoiZGVwbG95bWVudCJ9LCJpbnN0YWxsTW9kZXMiOlt7InN1cHBvcnRlZCI6ZmFsc2UsInR5cGUiOiJPd25OYW1lc3BhY2UifSx7InN1cHBvcnRlZCI6ZmFsc2UsInR5cGUiOiJTaW5nbGVOYW1lc3BhY2UifSx7InN1cHBvcnRlZCI6ZmFsc2UsInR5cGUiOiJNdWx0aU5hbWVzcGFjZSJ9LHsic3VwcG9ydGVkIjp0cnVlLCJ0eXBlIjoiQWxsTmFtZXNwYWNlcyJ9XSwia2V5d29yZHMiOlsiYWR2YW5jZWQtY2x1c3Rlci1zZWN1cml0eSIsInN0YWNrcm94Iiwic2VjdXJpdHkiLCJ2dWxuZXJhYmlsaXRpZXMiLCJjb21wbGlhbmNlIiwiZGV2c2Vjb3BzIiwibW9uaXRvcmluZyIsInNjYW5uaW5nIiwicnVudGltZS1zZWN1cml0eSIsIm5ldHdvcmsgcG9saWN5IiwiY29uZmlndXJhdGlvbiIsInJpc2siXSwibGlua3MiOlt7Im5hbWUiOiJSZWQgSGF0IEFkdmFuY2VkIENsdXN0ZXIgU2VjdXJpdHkgRG9jdW1lbnRhdGlvbiIsInVybCI6Imh0dHBzOi8vZG9jcy5vcGVuc2hpZnQuY29tL2Fjcy93ZWxjb21lLyJ9LHsibmFtZSI6IkRhdGFTaGVldCIsInVybCI6Imh0dHBzOi8vd3d3LnJlZGhhdC5jb20vZW4vcmVzb3VyY2VzL2FkdmFuY2VkLWNsdXN0ZXItc2VjdXJpdHktZm9yLWt1YmVybmV0ZXMtZGF0YXNoZWV0In0seyJuYW1lIjoiU3VwcG9ydCBQb2xpY3kiLCJ1cmwiOiJodHRwczovL2FjY2Vzcy5yZWRoYXQuY29tL25vZGUvNTgyMjcyMSJ9LHsibmFtZSI6IkNvbW11bml0eSBTaXRlIiwidXJsIjoiaHR0cHM6Ly93d3cuc3RhY2tyb3guaW8vIn1dLCJtYWludGFpbmVycyI6W3siZW1haWwiOiJyaGFjcy1wbUByZWRoYXQuY29tIiwibmFtZSI6IkFkdmFuY2VkIENsdXN0ZXIgU2VjdXJpdHkgcHJvZHVjdCB0ZWFtIn1dLCJtYXR1cml0eSI6ImFscGhhIiwibWluS3ViZVZlcnNpb24iOiIxLjE1LjAiLCJwcm92aWRlciI6eyJuYW1lIjoiUmVkIEhhdCJ9LCJyZWxhdGVkSW1hZ2VzIjpbeyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9hZHZhbmNlZC1jbHVzdGVyLXNlY3VyaXR5L3JoYWNzLXNjYW5uZXItZGItc2xpbS1yaGVsOEBzaGEyNTY6MWE3NWU4OWY3ZTJkZTRmOWMyOTA0ZmUxMTI5MjQ0ZWVlYWZmNWMyMjJjMjcyYjE2MjdkZjllMjkxODMzOTc1YyIsIm5hbWUiOiJzY2FubmVyX2RiX3NsaW0ifSx7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2FkdmFuY2VkLWNsdXN0ZXItc2VjdXJpdHkvcmhhY3MtY2VudHJhbC1kYi1yaGVsOEBzaGEyNTY6MjNkYzM0NGRiYmE1MzI3ZmQ1MThlYjkwZGJiODIwM2U1MzliODZlMmFlYTY5Mjg1YzYyOWUxZDQxNDI4NWRjMCIsIm5hbWUiOiJjZW50cmFsX2RiIn0seyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9hZHZhbmNlZC1jbHVzdGVyLXNlY3VyaXR5L3JoYWNzLXNjYW5uZXItcmhlbDhAc2hhMjU2OmZiOTA3MjRiYmE1MjYwMDdkZDg4YWYzNmE4M2U5Njc5YjVkODViMzViYTE2Y2JmNmFkZDZhMzZkNmU3Mjg0ZmEiLCJuYW1lIjoic2Nhbm5lciJ9LHsiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vYWR2YW5jZWQtY2x1c3Rlci1zZWN1cml0eS9yaGFjcy1zY2FubmVyLXY0LXJoZWw4QHNoYTI1Njo5ZTlkZDIyZWQ5YmMwZGE4NWUxZjkwNTZmYzI2OWQxNjBkNGU2MWMyMTY4MzY3MjQ5ZWU5Y2ZjMTU4Njg2ZGFjIiwibmFtZSI6InNjYW5uZXJfdjQifSx7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2FkdmFuY2VkLWNsdXN0ZXItc2VjdXJpdHkvcmhhY3MtY29sbGVjdG9yLXJoZWw4QHNoYTI1NjphY2Q4MTA3ODdmNDcyYWIxNjcwNGU3YjY3YzE5NzgwZjc1ZmFiZjI3YTY5Y2ExZTIwOTdkNmFlMzZlNDUwMDdlIiwibmFtZSI6ImNvbGxlY3RvciJ9LHsiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vYWR2YW5jZWQtY2x1c3Rlci1zZWN1cml0eS9yaGFjcy1zY2FubmVyLXNsaW0tcmhlbDhAc2hhMjU2OjgwNDY0ZTUxMTZhY2E1M2VlZmE4Mjc4YTkwMjNjYjFiZWZhZjNlMTRiYWQ1NWFmYWM1ZGQ5MGI5YTNlMDE1MGUiLCJuYW1lIjoic2Nhbm5lcl9zbGltIn0seyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9hZHZhbmNlZC1jbHVzdGVyLXNlY3VyaXR5L3JoYWNzLW1haW4tcmhlbDhAc2hhMjU2OmE3N2IzNTkwZTcyNzEyNmU5OWVmZjE0YTE5MmVlZDRhZGRhMDYxNjU3MzZiNTEzMDY5NzViYTg5YWZkMjE4MTciLCJuYW1lIjoibWFpbiJ9LHsiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vYWR2YW5jZWQtY2x1c3Rlci1zZWN1cml0eS9yaGFjcy1zY2FubmVyLWRiLXJoZWw4QHNoYTI1NjpjODgyNzhiZjBiZTM5NTY2YjljYzZkNzRjYmVkMzU3NDU5YjJiNTNkOWQ0NDgxOGYxNWI4NDY5OGIwYTgzYTc1IiwibmFtZSI6InNjYW5uZXJfZGIifSx7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2FkdmFuY2VkLWNsdXN0ZXItc2VjdXJpdHkvcmhhY3Mtc2Nhbm5lci12NC1kYi1yaGVsOEBzaGEyNTY6Njc2NzVhMjg5OWFkN2I5ZjkwYjE3ZjcyN2E1YWI5MzMwZmY5MDM5ZjYwMTNiMTk3MjAzZTkyMmNmMzgwZWUzNCIsIm5hbWUiOiJzY2FubmVyX3Y0X2RiIn0seyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9hZHZhbmNlZC1jbHVzdGVyLXNlY3VyaXR5L3JoYWNzLXJveGN0bC1yaGVsOEBzaGEyNTY6OTYxODdmN2M1Yjg5NWVkOWM5MjAzZTFlNjExZTVlMjlmMTVlYWRmZTRjZjJiNGQ2YTMxMTI5ZjJhNGIwYmViZSIsIm5hbWUiOiJyb3hjdGwifSx7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL2FkdmFuY2VkLWNsdXN0ZXItc2VjdXJpdHkvcmhhY3MtcmhlbDgtb3BlcmF0b3JAc2hhMjU2OjIzMjUxODQwZGM0YTMzMjNjZTQyYWYyMWUyNzMwOGFhN2Y0YWRkYjYyODRkMTZlYjViNTJkNGQ0MzQ2NDY5MDQiLCJuYW1lIjoibWFuYWdlciJ9XSwicmVwbGFjZXMiOiJyaGFjcy1vcGVyYXRvci52NC44LjciLCJza2lwcyI6WyJyaGFjcy1vcGVyYXRvci52NC4xLjAiXSwidmVyc2lvbiI6IjQuOC44LXJjLjQifX0=" + } + }, + { + "type": "olm.bundle.object", + "value": { + "data": "eyJhcGlWZXJzaW9uIjoicmJhYy5hdXRob3JpemF0aW9uLms4cy5pby92MSIsImtpbmQiOiJDbHVzdGVyUm9sZSIsIm1ldGFkYXRhIjp7ImNyZWF0aW9uVGltZXN0YW1wIjpudWxsLCJuYW1lIjoicmhhY3Mtb3BlcmF0b3ItbWV0cmljcy1yZWFkZXIifSwicnVsZXMiOlt7Im5vblJlc291cmNlVVJMcyI6WyIvbWV0cmljcyJdLCJ2ZXJicyI6WyJnZXQiXX1dfQ==" + } + }, + { + "type": "olm.bundle.object", + "value": { + "data": "eyJhcGlWZXJzaW9uIjoidjEiLCJraW5kIjoiU2VydmljZSIsIm1ldGFkYXRhIjp7ImNyZWF0aW9uVGltZXN0YW1wIjpudWxsLCJsYWJlbHMiOnsiYXBwIjoicmhhY3Mtb3BlcmF0b3IiLCJjb250cm9sLXBsYW5lIjoiY29udHJvbGxlci1tYW5hZ2VyIn0sIm5hbWUiOiJyaGFjcy1vcGVyYXRvci1jb250cm9sbGVyLW1hbmFnZXItbWV0cmljcy1zZXJ2aWNlIn0sInNwZWMiOnsicG9ydHMiOlt7Im5hbWUiOiJodHRwcyIsInBvcnQiOjg0NDMsInByb3RvY29sIjoiVENQIiwidGFyZ2V0UG9ydCI6Imh0dHBzIn1dLCJzZWxlY3RvciI6eyJhcHAiOiJyaGFjcy1vcGVyYXRvciIsImNvbnRyb2wtcGxhbmUiOiJjb250cm9sbGVyLW1hbmFnZXIifX0sInN0YXR1cyI6eyJsb2FkQmFsYW5jZXIiOnt9fX0=" + } + } + ], + "relatedImages": [ + { + "name": "", + "image": "quay.io/rhacs-eng/release-operator-bundle@sha256:16b8f6ecbea80980be053303cf886c5b4942230fb208c8f30c85bca2a9ef375d" + }, + { + "name": "central_db", + "image": "registry.redhat.io/advanced-cluster-security/rhacs-central-db-rhel8@sha256:23dc344dbba5327fd518eb90dbb8203e539b86e2aea69285c629e1d414285dc0" + }, + { + "name": "collector", + "image": "registry.redhat.io/advanced-cluster-security/rhacs-collector-rhel8@sha256:acd810787f472ab16704e7b67c19780f75fabf27a69ca1e2097d6ae36e45007e" + }, + { + "name": "main", + "image": "registry.redhat.io/advanced-cluster-security/rhacs-main-rhel8@sha256:a77b3590e727126e99eff14a192eed4adda06165736b51306975ba89afd21817" + }, + { + "name": "manager", + "image": "registry.redhat.io/advanced-cluster-security/rhacs-rhel8-operator@sha256:23251840dc4a3323ce42af21e27308aa7f4addb6284d16eb5b52d4d434646904" + }, + { + "name": "roxctl", + "image": "registry.redhat.io/advanced-cluster-security/rhacs-roxctl-rhel8@sha256:96187f7c5b895ed9c9203e1e611e5e29f15eadfe4cf2b4d6a31129f2a4b0bebe" + }, + { + "name": "scanner_db", + "image": "registry.redhat.io/advanced-cluster-security/rhacs-scanner-db-rhel8@sha256:c88278bf0be39566b9cc6d74cbed357459b2b53d9d44818f15b84698b0a83a75" + }, + { + "name": "scanner_db_slim", + "image": "registry.redhat.io/advanced-cluster-security/rhacs-scanner-db-slim-rhel8@sha256:1a75e89f7e2de4f9c2904fe1129244eeeaff5c222c272b1627df9e291833975c" + }, + { + "name": "scanner", + "image": "registry.redhat.io/advanced-cluster-security/rhacs-scanner-rhel8@sha256:fb90724bba526007dd88af36a83e9679b5d85b35ba16cbf6add6a36d6e7284fa" + }, + { + "name": "scanner_slim", + "image": "registry.redhat.io/advanced-cluster-security/rhacs-scanner-slim-rhel8@sha256:80464e5116aca53eefa8278a9023cb1befaf3e14bad55afac5dd90b9a3e0150e" + }, + { + "name": "scanner_v4_db", + "image": "registry.redhat.io/advanced-cluster-security/rhacs-scanner-v4-db-rhel8@sha256:67675a2899ad7b9f90b17f727a5ab9330ff9039f6013b197203e922cf380ee34" + }, + { + "name": "scanner_v4", + "image": "registry.redhat.io/advanced-cluster-security/rhacs-scanner-v4-rhel8@sha256:9e9dd22ed9bc0da85e1f9056fc269d160d4e61c2168367249ee9cfc158686dac" + } + ] +} { "schema": "olm.bundle", "name": "rhacs-operator.v4.9.0", @@ -20066,6 +20206,13 @@ }, "message": "This version is no longer supported. Switch to the `stable` channel or a channel for a more recent version that is still supported. Find supported versions in the RHACS support policy document: https://access.redhat.com/support/policy/updates/rhacs" }, + { + "reference": { + "schema": "olm.channel", + "name": "rhacs-4.7" + }, + "message": "This version is no longer supported. Switch to the `stable` channel or a channel for a more recent version that is still supported. Find supported versions in the RHACS support policy document: https://access.redhat.com/support/policy/updates/rhacs" + }, { "reference": { "schema": "olm.bundle", @@ -20793,6 +20940,76 @@ "name": "rhacs-operator.v4.6.10" }, "message": "This Operator version is no longer supported. Use a more recent version that is supported. Find supported versions in the RHACS support policy document: https://access.redhat.com/support/policy/updates/rhacs" + }, + { + "reference": { + "schema": "olm.bundle", + "name": "rhacs-operator.v4.7.0" + }, + "message": "This Operator version is no longer supported. Use a more recent version that is supported. Find supported versions in the RHACS support policy document: https://access.redhat.com/support/policy/updates/rhacs" + }, + { + "reference": { + "schema": "olm.bundle", + "name": "rhacs-operator.v4.7.1" + }, + "message": "This Operator version is no longer supported. Use a more recent version that is supported. Find supported versions in the RHACS support policy document: https://access.redhat.com/support/policy/updates/rhacs" + }, + { + "reference": { + "schema": "olm.bundle", + "name": "rhacs-operator.v4.7.2" + }, + "message": "This Operator version is no longer supported. Use a more recent version that is supported. Find supported versions in the RHACS support policy document: https://access.redhat.com/support/policy/updates/rhacs" + }, + { + "reference": { + "schema": "olm.bundle", + "name": "rhacs-operator.v4.7.3" + }, + "message": "This Operator version is no longer supported. Use a more recent version that is supported. Find supported versions in the RHACS support policy document: https://access.redhat.com/support/policy/updates/rhacs" + }, + { + "reference": { + "schema": "olm.bundle", + "name": "rhacs-operator.v4.7.4" + }, + "message": "This Operator version is no longer supported. Use a more recent version that is supported. Find supported versions in the RHACS support policy document: https://access.redhat.com/support/policy/updates/rhacs" + }, + { + "reference": { + "schema": "olm.bundle", + "name": "rhacs-operator.v4.7.5" + }, + "message": "This Operator version is no longer supported. Use a more recent version that is supported. Find supported versions in the RHACS support policy document: https://access.redhat.com/support/policy/updates/rhacs" + }, + { + "reference": { + "schema": "olm.bundle", + "name": "rhacs-operator.v4.7.6" + }, + "message": "This Operator version is no longer supported. Use a more recent version that is supported. Find supported versions in the RHACS support policy document: https://access.redhat.com/support/policy/updates/rhacs" + }, + { + "reference": { + "schema": "olm.bundle", + "name": "rhacs-operator.v4.7.7" + }, + "message": "This Operator version is no longer supported. Use a more recent version that is supported. Find supported versions in the RHACS support policy document: https://access.redhat.com/support/policy/updates/rhacs" + }, + { + "reference": { + "schema": "olm.bundle", + "name": "rhacs-operator.v4.7.8" + }, + "message": "This Operator version is no longer supported. Use a more recent version that is supported. Find supported versions in the RHACS support policy document: https://access.redhat.com/support/policy/updates/rhacs" + }, + { + "reference": { + "schema": "olm.bundle", + "name": "rhacs-operator.v4.7.9" + }, + "message": "This Operator version is no longer supported. Use a more recent version that is supported. Find supported versions in the RHACS support policy document: https://access.redhat.com/support/policy/updates/rhacs" } ] } diff --git a/catalog-csv-metadata/rhacs-operator/catalog.json b/catalog-csv-metadata/rhacs-operator/catalog.json index ff993352..223ffdf6 100644 --- a/catalog-csv-metadata/rhacs-operator/catalog.json +++ b/catalog-csv-metadata/rhacs-operator/catalog.json @@ -3307,6 +3307,11 @@ "name": "rhacs-operator.v4.8.7", "replaces": "rhacs-operator.v4.8.6", "skipRange": ">= 4.7.0 < 4.8.7" + }, + { + "name": "rhacs-operator.v4.8.8-rc.4", + "replaces": "rhacs-operator.v4.8.7", + "skipRange": ">= 4.7.0 < 4.8.8-rc.4" } ] } @@ -3695,8 +3700,13 @@ "skipRange": ">= 4.7.0 < 4.8.7" }, { - "name": "rhacs-operator.v4.9.0", + "name": "rhacs-operator.v4.8.8-rc.4", "replaces": "rhacs-operator.v4.8.7", + "skipRange": ">= 4.7.0 < 4.8.8-rc.4" + }, + { + "name": "rhacs-operator.v4.9.0", + "replaces": "rhacs-operator.v4.8.8-rc.4", "skipRange": ">= 4.8.0 < 4.9.0" }, { @@ -4096,8 +4106,13 @@ "skipRange": ">= 4.7.0 < 4.8.7" }, { - "name": "rhacs-operator.v4.9.0", + "name": "rhacs-operator.v4.8.8-rc.4", "replaces": "rhacs-operator.v4.8.7", + "skipRange": ">= 4.7.0 < 4.8.8-rc.4" + }, + { + "name": "rhacs-operator.v4.9.0", + "replaces": "rhacs-operator.v4.8.8-rc.4", "skipRange": ">= 4.8.0 < 4.9.0" }, { @@ -161477,9 +161492,9 @@ } { "schema": "olm.bundle", - "name": "rhacs-operator.v4.9.0", + "name": "rhacs-operator.v4.8.8-rc.4", "package": "rhacs-operator", - "image": "registry.redhat.io/advanced-cluster-security/rhacs-operator-bundle@sha256:02a50a53dddbbdd749b0b6cc01f555308ab3c16045130d07483bfddd6861de42", + "image": "quay.io/rhacs-eng/release-operator-bundle@sha256:16b8f6ecbea80980be053303cf886c5b4942230fb208c8f30c85bca2a9ef375d", "properties": [ { "type": "olm.gvk", @@ -161509,7 +161524,7 @@ "type": "olm.package", "value": { "packageName": "rhacs-operator", - "version": "4.9.0" + "version": "4.8.8-rc.4" } }, { @@ -161519,8 +161534,8 @@ "alm-examples": "[\n {\n \"apiVersion\": \"platform.stackrox.io/v1alpha1\",\n \"kind\": \"Central\",\n \"metadata\": {\n \"name\": \"stackrox-central-services\",\n \"namespace\": \"stackrox\"\n },\n \"spec\": {\n \"central\": {\n \"exposure\": {\n \"route\": {\n \"enabled\": true\n }\n }\n }\n }\n },\n {\n \"apiVersion\": \"platform.stackrox.io/v1alpha1\",\n \"kind\": \"SecuredCluster\",\n \"metadata\": {\n \"name\": \"stackrox-secured-cluster-services\",\n \"namespace\": \"stackrox\"\n },\n \"spec\": {\n \"clusterName\": \"my-cluster\"\n }\n }\n]", "capabilities": "Seamless Upgrades", "categories": "Security", - "containerImage": "registry.redhat.io/advanced-cluster-security/rhacs-rhel8-operator@sha256:3471d6c2b77ad4be863f7d5b0e5da5cd8a9c267126c003424c27b91e1cbf1b24", - "createdAt": "2025-10-30T15:19:35.144226+00:00", + "containerImage": "registry.redhat.io/advanced-cluster-security/rhacs-rhel8-operator@sha256:23251840dc4a3323ce42af21e27308aa7f4addb6284d16eb5b52d4d434646904", + "createdAt": "2026-01-23T17:51:50.025290+00:00", "description": "Red Hat Advanced Cluster Security (RHACS) operator provisions the services necessary to secure each of your OpenShift and Kubernetes clusters.", "features.operators.openshift.io/cnf": "false", "features.operators.openshift.io/cni": "false", @@ -161532,7 +161547,7 @@ "features.operators.openshift.io/token-auth-aws": "false", "features.operators.openshift.io/token-auth-azure": "false", "features.operators.openshift.io/token-auth-gcp": "false", - "olm.skipRange": ">= 4.8.0 < 4.9.0", + "olm.skipRange": ">= 4.7.0 < 4.8.8-rc.4", "operatorframework.io/suggested-namespace": "rhacs-operator", "operators.openshift.io/infrastructure-features": "[\"disconnected\", \"proxy-aware\"]", "operators.openshift.io/valid-subscription": "[\"OpenShift Platform Plus\", \"Red Hat Advanced Cluster Security\"]", @@ -161619,7 +161634,7 @@ { "path": "tls", "displayName": "TLS", - "description": "Settings related to Transport Layer Security, such as Certificate Authorities." + "description": "Allows you to specify additional trusted Root CAs." }, { "path": "imagePullSecrets", @@ -161830,7 +161845,7 @@ { "path": "central.db.isEnabled", "displayName": "Is Enabled", - "description": "Obsolete field.\nThis field will be removed in a future release.", + "description": "Deprecated field. It is no longer necessary to specify it.\nThis field will be removed in a future release.\nCentral is configured to use PostgreSQL by default.", "x-descriptors": [ "urn:alm:descriptor:com.tectonic.ui:hidden" ] @@ -161846,12 +161861,12 @@ { "path": "central.db.connectionPoolSize.maxConnections", "displayName": "Maximum Connections", - "description": "Maximum number of connections in the connection pool.\nThe default is: 90." + "description": "Maximum number of connections in the connection pool." }, { "path": "central.db.connectionPoolSize.minConnections", "displayName": "Minimum Connections", - "description": "Minimum number of connections in the connection pool.\nThe default is: 10." + "description": "Minimum number of connections in the connection pool." }, { "path": "central.db.passwordSecret.name", @@ -161879,7 +161894,7 @@ { "path": "central.db.persistence.persistentVolumeClaim.claimName", "displayName": "Claim Name", - "description": "The name of the PVC to manage persistent data. If no PVC with the given name exists, it will be\ncreated.\nThe default is: central-db." + "description": "The name of the PVC to manage persistent data. If no PVC with the given name exists, it will be\ncreated. Defaults to \"central-db\" if not set." }, { "path": "central.db.persistence.persistentVolumeClaim.size", @@ -161948,13 +161963,12 @@ }, { "path": "central.exposure.loadBalancer.enabled", - "displayName": "Enabled", - "description": "The default is: false." + "displayName": "Enabled" }, { "path": "central.exposure.loadBalancer.port", "displayName": "Port", - "description": "The default is: 443.", + "description": "Defaults to 443 if not set.", "x-descriptors": [ "urn:alm:descriptor:com.tectonic.ui:fieldDependency:central.exposure.loadBalancer.enabled:true" ] @@ -161969,8 +161983,7 @@ }, { "path": "central.exposure.nodePort.enabled", - "displayName": "Enabled", - "description": "The default is: false." + "displayName": "Enabled" }, { "path": "central.exposure.nodePort.port", @@ -161983,7 +161996,7 @@ { "path": "central.exposure.route.enabled", "displayName": "Enabled", - "description": "Expose Central with a passthrough route.\nThe default is: false." + "description": "Expose Central with a passthrough route." }, { "path": "central.exposure.route.host", @@ -161998,7 +162011,7 @@ { "path": "central.exposure.route.reencrypt.enabled", "displayName": "Enabled", - "description": "Expose Central with a reencrypt route.\nShould not be used for sensor communication.\nThe default is: false." + "description": "Expose Central with a reencrypt route.\nShould not be used for sensor communication." }, { "path": "central.exposure.route.reencrypt.host", @@ -162038,23 +162051,17 @@ { "path": "central.notifierSecretsEncryption.enabled", "displayName": "Enabled", - "description": "Enables the encryption of notifier secrets stored in the Central DB.\nThe default is: false." + "description": "Enables the encryption of notifier secrets stored in the Central DB." }, { - "path": "central.persistence.hostPath", - "displayName": "Host Path", - "description": "Obsolete unused field.", - "x-descriptors": [ - "urn:alm:descriptor:com.tectonic.ui:hidden" - ] + "path": "central.persistence.persistentVolumeClaim", + "displayName": "Persistent volume claim", + "description": "Uses a Kubernetes persistent volume claim (PVC) to manage the storage location of persistent data.\nRecommended for most users." }, { - "path": "central.persistence.persistentVolumeClaim", - "displayName": "Persistent Volume Claim", - "description": "Obsolete unused field.", - "x-descriptors": [ - "urn:alm:descriptor:com.tectonic.ui:hidden" - ] + "path": "central.persistence.hostPath", + "displayName": "Host path", + "description": "Stores persistent data on a directory on the host. This is not recommended, and should only\nbe used together with a node selector (only available in YAML view)." }, { "path": "central.persistence.hostPath.path", @@ -162064,31 +162071,28 @@ { "path": "central.persistence.persistentVolumeClaim.claimName", "displayName": "Claim Name", - "description": "Obsolete unused field.", - "x-descriptors": [ - "urn:alm:descriptor:com.tectonic.ui:hidden" - ] + "description": "The name of the PVC to manage persistent data. If no PVC with the given name exists, it will be\ncreated. Defaults to \"stackrox-db\" if not set." }, { "path": "central.persistence.persistentVolumeClaim.size", "displayName": "Size", - "description": "Obsolete unused field.", + "description": "The size of the persistent volume when created through the claim. If a claim was automatically created,\nthis can be used after the initial deployment to resize (grow) the volume (only supported by some\nstorage class controllers).", "x-descriptors": [ - "urn:alm:descriptor:com.tectonic.ui:hidden" + "urn:alm:descriptor:com.tectonic.ui:text" ] }, { "path": "central.persistence.persistentVolumeClaim.storageClassName", - "displayName": "Storage Class Name", - "description": "Obsolete unused field.", + "displayName": "Storage Class", + "description": "The name of the storage class to use for the PVC. If your cluster is not configured with a default storage\nclass, you must select a value here.", "x-descriptors": [ - "urn:alm:descriptor:com.tectonic.ui:hidden" + "urn:alm:descriptor:io.kubernetes:StorageClass" ] }, { "path": "central.telemetry.enabled", "displayName": "Enabled", - "description": "Specifies if Telemetry is enabled.\nThe default is: true.", + "description": "Specifies if Telemetry is enabled.", "x-descriptors": [ "urn:alm:descriptor:com.tectonic.ui:booleanSwitch" ] @@ -162114,7 +162118,7 @@ { "path": "configAsCode.configAsCodeComponent", "displayName": "Config as Code component", - "description": "If you want to deploy the Config as Code component, set this to \"Enabled\"\nThe default is: Enabled." + "description": "If you want to deploy the Config as Code component, set this to \"Enabled\"" }, { "path": "customize.labels", @@ -162134,7 +162138,7 @@ { "path": "egress.connectivityPolicy", "displayName": "Connectivity Policy", - "description": "Configures whether Red Hat Advanced Cluster Security should run in online or offline (disconnected) mode.\nIn offline mode, automatic updates of vulnerability definitions and kernel modules are disabled.\nThe default is: Online." + "description": "Configures whether Red Hat Advanced Cluster Security should run in online or offline (disconnected) mode.\nIn offline mode, automatic updates of vulnerability definitions and kernel modules are disabled." }, { "path": "imagePullSecrets[0].name", @@ -162155,7 +162159,6 @@ { "path": "monitoring.openshift.enabled", "displayName": "Enabled", - "description": "The default is: true.", "x-descriptors": [ "urn:alm:descriptor:com.tectonic.ui:booleanSwitch" ] @@ -162163,7 +162166,7 @@ { "path": "network.policies", "displayName": "Network Policies", - "description": "To provide security at the network level the ACS Operator creates NetworkPolicy resources by default. If you want to manage your own NetworkPolicy objects then set this to \"Disabled\".\nThe default is: Enabled." + "description": "To provide security at the network level the ACS Operator creates NetworkPolicy resources by default. If you want to manage your own NetworkPolicy objects then set this to \"Disabled\"." }, { "path": "overlays[0].apiVersion", @@ -162265,17 +162268,16 @@ { "path": "scanner.analyzer.scaling.autoScaling", "displayName": "Autoscaling", - "description": "When enabled, the number of component replicas is managed dynamically based on the load, within the limits\nspecified below.\nThe default is: Enabled." + "description": "When enabled, the number of component replicas is managed dynamically based on the load, within the limits\nspecified below." }, { "path": "scanner.analyzer.scaling.replicas", "displayName": "Default Replicas", - "description": "When autoscaling is disabled, the number of replicas will always be configured to match this value.\nThe default is: 3." + "description": "When autoscaling is disabled, the number of replicas will always be configured to match this value." }, { "path": "scanner.analyzer.scaling.minReplicas", "displayName": "Autoscaling Minimum Replicas", - "description": "The default is: 2.", "x-descriptors": [ "urn:alm:descriptor:com.tectonic.ui:fieldDependency:scanner.analyzer.scaling.autoScaling:Enabled" ] @@ -162283,7 +162285,6 @@ { "path": "scanner.analyzer.scaling.maxReplicas", "displayName": "Autoscaling Maximum Replicas", - "description": "The default is: 5.", "x-descriptors": [ "urn:alm:descriptor:com.tectonic.ui:fieldDependency:scanner.analyzer.scaling.autoScaling:Enabled" ] @@ -162405,7 +162406,7 @@ { "path": "scannerV4.db.persistence.persistentVolumeClaim.claimName", "displayName": "Claim Name", - "description": "The name of the PVC to manage persistent data. If no PVC with the given name exists, it will be\ncreated.\nThe default is: scanner-v4-db." + "description": "The name of the PVC to manage persistent data. If no PVC with the given name exists, it will be\ncreated. Defaults to \"scanner-v4-db\" if not set." }, { "path": "scannerV4.db.persistence.persistentVolumeClaim.size", @@ -162457,17 +162458,16 @@ { "path": "scannerV4.indexer.scaling.autoScaling", "displayName": "Autoscaling", - "description": "When enabled, the number of component replicas is managed dynamically based on the load, within the limits\nspecified below.\nThe default is: Enabled." + "description": "When enabled, the number of component replicas is managed dynamically based on the load, within the limits\nspecified below." }, { "path": "scannerV4.indexer.scaling.replicas", "displayName": "Default Replicas", - "description": "When autoscaling is disabled, the number of replicas will always be configured to match this value.\nThe default is: 3." + "description": "When autoscaling is disabled, the number of replicas will always be configured to match this value." }, { "path": "scannerV4.indexer.scaling.minReplicas", "displayName": "Autoscaling Minimum Replicas", - "description": "The default is: 2.", "x-descriptors": [ "urn:alm:descriptor:com.tectonic.ui:fieldDependency:scannerV4.indexer.scaling.autoScaling:Enabled" ] @@ -162475,7 +162475,6 @@ { "path": "scannerV4.indexer.scaling.maxReplicas", "displayName": "Autoscaling Maximum Replicas", - "description": "The default is: 5.", "x-descriptors": [ "urn:alm:descriptor:com.tectonic.ui:fieldDependency:scannerV4.indexer.scaling.autoScaling:Enabled" ] @@ -162514,17 +162513,16 @@ { "path": "scannerV4.matcher.scaling.autoScaling", "displayName": "Autoscaling", - "description": "When enabled, the number of component replicas is managed dynamically based on the load, within the limits\nspecified below.\nThe default is: Enabled." + "description": "When enabled, the number of component replicas is managed dynamically based on the load, within the limits\nspecified below." }, { "path": "scannerV4.matcher.scaling.replicas", "displayName": "Default Replicas", - "description": "When autoscaling is disabled, the number of replicas will always be configured to match this value.\nThe default is: 3." + "description": "When autoscaling is disabled, the number of replicas will always be configured to match this value." }, { "path": "scannerV4.matcher.scaling.minReplicas", "displayName": "Autoscaling Minimum Replicas", - "description": "The default is: 2.", "x-descriptors": [ "urn:alm:descriptor:com.tectonic.ui:fieldDependency:scannerV4.matcher.scaling.autoScaling:Enabled" ] @@ -162532,7 +162530,6 @@ { "path": "scannerV4.matcher.scaling.maxReplicas", "displayName": "Autoscaling Maximum Replicas", - "description": "The default is: 5.", "x-descriptors": [ "urn:alm:descriptor:com.tectonic.ui:fieldDependency:scannerV4.matcher.scaling.autoScaling:Enabled" ] @@ -162544,8 +162541,7 @@ }, { "path": "tls.additionalCAs", - "displayName": "Additional CAs", - "description": "Allows you to specify additional trusted Root CAs." + "displayName": "Additional CAs" } ] }, @@ -162610,11 +162606,6 @@ "displayName": "Kubernetes Audit Logs Ingestion Settings", "description": "Settings relating to the ingestion of Kubernetes audit logs." }, - { - "path": "processBaselines", - "displayName": "Process Baselines Settings", - "description": "Settings relating to process baselines." - }, { "path": "scanner", "displayName": "Scanner Component Settings", @@ -162628,7 +162619,7 @@ { "path": "tls", "displayName": "TLS", - "description": "Settings related to Transport Layer Security, such as Certificate Authorities." + "description": "Allows you to specify additional trusted Root CAs." }, { "path": "imagePullSecrets", @@ -162687,24 +162678,39 @@ ] }, { - "path": "admissionControl.enforcement", - "displayName": "Enforcement", - "description": "Set to Disabled to disable policy enforcement for the admission controller. This is not recommended.\nOn new deployments starting with version 4.9, defaults to Enabled.\nOn old deployments, defaults to Enabled if at least one of listenOnCreates or listenOnUpdates is true." + "path": "admissionControl.listenOnCreates", + "displayName": "Listen On Creates", + "description": "Set this to 'true' to enable preventive policy enforcement for object creations." }, { - "path": "admissionControl.bypass", - "displayName": "Bypass", - "description": "Enables teams to bypass admission control in a monitored manner in the event of an emergency.\nThe default is: BreakGlassAnnotation." + "path": "admissionControl.listenOnUpdates", + "displayName": "Listen On Updates", + "description": "Set this to 'true' to enable preventive policy enforcement for object updates.\n\nNote: this will not have any effect unless 'Listen On Creates' is set to 'true' as well." }, { - "path": "admissionControl.failurePolicy", - "displayName": "Failure Policy", - "description": "If set to \"Fail\", the admission controller's webhooks are configured to fail-closed in case admission controller\nfails to respond in time. A failure policy \"Ignore\" configures the webhooks to fail-open.\nThe default is: Ignore." + "path": "admissionControl.listenOnEvents", + "displayName": "Listen On Events", + "description": "Set this to 'true' to enable monitoring and enforcement for Kubernetes events (port-forward and exec)." + }, + { + "path": "admissionControl.contactImageScanners", + "displayName": "Contact Image Scanners", + "description": "Should inline scanning be performed on previously unscanned images during a deployments admission review." + }, + { + "path": "admissionControl.timeoutSeconds", + "displayName": "Timeout Seconds", + "description": "Maximum timeout period for admission review, upon which admission review will fail open.\nUse it to set request timeouts when you enable inline image scanning.\nThe default kubectl timeout is 30 seconds; taking padding into account, this should not exceed 25 seconds.\nOn OpenShift webhook timeouts cannot exceed 13 seconds, hence with padding this value shall not exceed 10 seconds." + }, + { + "path": "admissionControl.bypass", + "displayName": "Bypass", + "description": "Enables teams to bypass admission control in a monitored manner in the event of an emergency." }, { "path": "admissionControl.replicas", "displayName": "Replicas", - "description": "The number of replicas of the admission control pod.\nThe default is: 3." + "description": "The number of replicas of the admission control pod." }, { "path": "admissionControl.resources", @@ -162732,50 +162738,10 @@ "displayName": "Host Aliases", "description": "HostAliases allows configuring additional hostnames to resolve in the pod's hosts file." }, - { - "path": "admissionControl.contactImageScanners", - "displayName": "Contact Image Scanners", - "description": "Deprecated field. This field will be removed in a future release.", - "x-descriptors": [ - "urn:alm:descriptor:com.tectonic.ui:hidden" - ] - }, - { - "path": "admissionControl.listenOnCreates", - "displayName": "Listen On Creates", - "description": "Deprecated field. This field will be removed in a future release.", - "x-descriptors": [ - "urn:alm:descriptor:com.tectonic.ui:hidden" - ] - }, - { - "path": "admissionControl.listenOnEvents", - "displayName": "Listen On Events", - "description": "Deprecated field. This field will be removed in a future release.", - "x-descriptors": [ - "urn:alm:descriptor:com.tectonic.ui:hidden" - ] - }, - { - "path": "admissionControl.listenOnUpdates", - "displayName": "Listen On Updates", - "description": "Deprecated field. This field will be removed in a future release.", - "x-descriptors": [ - "urn:alm:descriptor:com.tectonic.ui:hidden" - ] - }, - { - "path": "admissionControl.timeoutSeconds", - "displayName": "Timeout Seconds", - "description": "Deprecated field. This field will be removed in a future release.", - "x-descriptors": [ - "urn:alm:descriptor:com.tectonic.ui:hidden" - ] - }, { "path": "auditLogs.collection", "displayName": "Collection", - "description": "Whether collection of Kubernetes audit logs should be enabled or disabled. Currently, this is only\nsupported on OpenShift 4, and trying to enable it on non-OpenShift 4 clusters will result in an error.\nUse the 'Auto' setting to enable it on compatible environments, and disable it elsewhere.\nThe default is: Auto." + "description": "Whether collection of Kubernetes audit logs should be enabled or disabled. Currently, this is only\nsupported on OpenShift 4, and trying to enable it on non-OpenShift 4 clusters will result in an error.\nUse the 'Auto' setting to enable it on compatible environments, and disable it elsewhere." }, { "path": "customize.labels", @@ -162811,7 +162777,6 @@ { "path": "monitoring.openshift.enabled", "displayName": "Enabled", - "description": "The default is: true.", "x-descriptors": [ "urn:alm:descriptor:com.tectonic.ui:booleanSwitch" ] @@ -162819,7 +162784,7 @@ { "path": "network.policies", "displayName": "Network Policies", - "description": "To provide security at the network level the ACS Operator creates NetworkPolicy resources by default. If you want to manage your own NetworkPolicy objects then set this to \"Disabled\".\nThe default is: Enabled." + "description": "To provide security at the network level the ACS Operator creates NetworkPolicy resources by default. If you want to manage your own NetworkPolicy objects then set this to \"Disabled\"." }, { "path": "overlays[0].apiVersion", @@ -162879,7 +162844,7 @@ { "path": "perNode.taintToleration", "displayName": "Taint Toleration", - "description": "To ensure comprehensive monitoring of your cluster activity, Red Hat Advanced Cluster Security\nwill run services on every node in the cluster, including tainted nodes by default. If you do\nnot want this behavior, please select 'AvoidTaints' here.\nThe default is: TolerateTaints." + "description": "To ensure comprehensive monitoring of your cluster activity, Red Hat Advanced Cluster Security\nwill run services on every node in the cluster, including tainted nodes by default. If you do\nnot want this behavior, please select 'AvoidTaints' here." }, { "path": "perNode.hostAliases", @@ -162889,7 +162854,7 @@ { "path": "perNode.collector.collection", "displayName": "Collection", - "description": "The method for system-level data collection. CORE_BPF is recommended.\nIf you select \"NoCollection\", you will not be able to see any information about network activity\nand process executions. The remaining settings in these section will not have any effect.\nThe value is a subject of conversion by the operator if needed, e.g. to\nremove deprecated methods.\nThe default is: CORE_BPF.", + "description": "The method for system-level data collection. CORE_BPF is recommended.\nIf you select \"NoCollection\", you will not be able to see any information about network activity\nand process executions. The remaining settings in these section will not have any effect.\nThe value is a subject of conversion by the operator if needed, e.g. to\nremove deprecated methods.", "x-descriptors": [ "urn:alm:descriptor:com.tectonic.ui:select:CORE_BPF", "urn:alm:descriptor:com.tectonic.ui:select:NoCollection" @@ -162898,7 +162863,7 @@ { "path": "perNode.collector.imageFlavor", "displayName": "Image Flavor", - "description": "Obsolete field.", + "description": "Deprecated field.", "x-descriptors": [ "urn:alm:descriptor:com.tectonic.ui:hidden" ] @@ -162906,7 +162871,7 @@ { "path": "perNode.collector.forceCollection", "displayName": "Force Collection", - "description": "Obsolete field. This field will be removed in a future release.", + "description": "Deprecated field. This field will be removed in a future release.", "x-descriptors": [ "urn:alm:descriptor:com.tectonic.ui:hidden" ] @@ -162935,19 +162900,10 @@ "urn:alm:descriptor:com.tectonic.ui:resourceRequirements" ] }, - { - "path": "processBaselines.autoLock", - "displayName": "Auto Lock", - "description": "Should process baselines be automatically locked when the observation period (1 hour by default) ends.\nThe default is: Disabled.", - "x-descriptors": [ - "urn:alm:descriptor:com.tectonic.ui:select:Enabled", - "urn:alm:descriptor:com.tectonic.ui:select:Disabled" - ] - }, { "path": "scanner.scannerComponent", "displayName": "Scanner Component", - "description": "If you do not want to deploy the Red Hat Advanced Cluster Security Scanner, you can disable it here\n(not recommended).\nIf you do so, all the settings in this section will have no effect.\nThe default is: AutoSense." + "description": "If you do not want to deploy the Red Hat Advanced Cluster Security Scanner, you can disable it here\n(not recommended).\nIf you do so, all the settings in this section will have no effect." }, { "path": "scanner.analyzer", @@ -162993,17 +162949,16 @@ { "path": "scanner.analyzer.scaling.autoScaling", "displayName": "Autoscaling", - "description": "When enabled, the number of component replicas is managed dynamically based on the load, within the limits\nspecified below.\nThe default is: Enabled." + "description": "When enabled, the number of component replicas is managed dynamically based on the load, within the limits\nspecified below." }, { "path": "scanner.analyzer.scaling.replicas", "displayName": "Default Replicas", - "description": "When autoscaling is disabled, the number of replicas will always be configured to match this value.\nThe default is: 3." + "description": "When autoscaling is disabled, the number of replicas will always be configured to match this value." }, { "path": "scanner.analyzer.scaling.minReplicas", "displayName": "Autoscaling Minimum Replicas", - "description": "The default is: 2.", "x-descriptors": [ "urn:alm:descriptor:com.tectonic.ui:fieldDependency:scanner.analyzer.scaling.autoScaling:Enabled" ] @@ -163011,7 +162966,6 @@ { "path": "scanner.analyzer.scaling.maxReplicas", "displayName": "Autoscaling Maximum Replicas", - "description": "The default is: 5.", "x-descriptors": [ "urn:alm:descriptor:com.tectonic.ui:fieldDependency:scanner.analyzer.scaling.autoScaling:Enabled" ] @@ -163120,7 +163074,7 @@ { "path": "scannerV4.db.persistence.persistentVolumeClaim.claimName", "displayName": "Claim Name", - "description": "The name of the PVC to manage persistent data. If no PVC with the given name exists, it will be\ncreated.\nThe default is: scanner-v4-db." + "description": "The name of the PVC to manage persistent data. If no PVC with the given name exists, it will be\ncreated. Defaults to \"scanner-v4-db\" if not set." }, { "path": "scannerV4.db.persistence.persistentVolumeClaim.size", @@ -163172,17 +163126,16 @@ { "path": "scannerV4.indexer.scaling.autoScaling", "displayName": "Autoscaling", - "description": "When enabled, the number of component replicas is managed dynamically based on the load, within the limits\nspecified below.\nThe default is: Enabled." + "description": "When enabled, the number of component replicas is managed dynamically based on the load, within the limits\nspecified below." }, { "path": "scannerV4.indexer.scaling.replicas", "displayName": "Default Replicas", - "description": "When autoscaling is disabled, the number of replicas will always be configured to match this value.\nThe default is: 3." + "description": "When autoscaling is disabled, the number of replicas will always be configured to match this value." }, { "path": "scannerV4.indexer.scaling.minReplicas", "displayName": "Autoscaling Minimum Replicas", - "description": "The default is: 2.", "x-descriptors": [ "urn:alm:descriptor:com.tectonic.ui:fieldDependency:scannerV4.indexer.scaling.autoScaling:Enabled" ] @@ -163190,7 +163143,6 @@ { "path": "scannerV4.indexer.scaling.maxReplicas", "displayName": "Autoscaling Maximum Replicas", - "description": "The default is: 5.", "x-descriptors": [ "urn:alm:descriptor:com.tectonic.ui:fieldDependency:scannerV4.indexer.scaling.autoScaling:Enabled" ] @@ -163228,8 +163180,7 @@ }, { "path": "tls.additionalCAs", - "displayName": "Additional CAs", - "description": "Allows you to specify additional trusted Root CAs." + "displayName": "Additional CAs" } ] }, @@ -163322,61 +163273,61 @@ } ], "relatedImages": [ + { + "name": "", + "image": "quay.io/rhacs-eng/release-operator-bundle@sha256:16b8f6ecbea80980be053303cf886c5b4942230fb208c8f30c85bca2a9ef375d" + }, { "name": "central_db", - "image": "registry.redhat.io/advanced-cluster-security/rhacs-central-db-rhel8@sha256:3967c7c91238516bfd5df4a893e0df644b8aca0d6b249dbd2e94c063dad12fba" + "image": "registry.redhat.io/advanced-cluster-security/rhacs-central-db-rhel8@sha256:23dc344dbba5327fd518eb90dbb8203e539b86e2aea69285c629e1d414285dc0" }, { "name": "collector", - "image": "registry.redhat.io/advanced-cluster-security/rhacs-collector-rhel8@sha256:591dcc1532ae2e40a7e78e117f7c02de81c0742f48b97436c2e4a7fd5a9fe649" + "image": "registry.redhat.io/advanced-cluster-security/rhacs-collector-rhel8@sha256:acd810787f472ab16704e7b67c19780f75fabf27a69ca1e2097d6ae36e45007e" }, { "name": "main", - "image": "registry.redhat.io/advanced-cluster-security/rhacs-main-rhel8@sha256:26e01b4554d6ff2d2a1333ff86244f61a037b61bb3b26a14b0927d245a1b0c21" - }, - { - "name": "", - "image": "registry.redhat.io/advanced-cluster-security/rhacs-operator-bundle@sha256:02a50a53dddbbdd749b0b6cc01f555308ab3c16045130d07483bfddd6861de42" + "image": "registry.redhat.io/advanced-cluster-security/rhacs-main-rhel8@sha256:a77b3590e727126e99eff14a192eed4adda06165736b51306975ba89afd21817" }, { "name": "manager", - "image": "registry.redhat.io/advanced-cluster-security/rhacs-rhel8-operator@sha256:3471d6c2b77ad4be863f7d5b0e5da5cd8a9c267126c003424c27b91e1cbf1b24" + "image": "registry.redhat.io/advanced-cluster-security/rhacs-rhel8-operator@sha256:23251840dc4a3323ce42af21e27308aa7f4addb6284d16eb5b52d4d434646904" }, { "name": "roxctl", - "image": "registry.redhat.io/advanced-cluster-security/rhacs-roxctl-rhel8@sha256:cc741551497f949a2c337a6fed0313c807cc46d0ad5adc281505146f22fb356a" + "image": "registry.redhat.io/advanced-cluster-security/rhacs-roxctl-rhel8@sha256:96187f7c5b895ed9c9203e1e611e5e29f15eadfe4cf2b4d6a31129f2a4b0bebe" }, { "name": "scanner_db", - "image": "registry.redhat.io/advanced-cluster-security/rhacs-scanner-db-rhel8@sha256:8281d43a5b1f2cfc7893d812703e283f5f5c30617733b531d86dc201fd1bcf9f" + "image": "registry.redhat.io/advanced-cluster-security/rhacs-scanner-db-rhel8@sha256:c88278bf0be39566b9cc6d74cbed357459b2b53d9d44818f15b84698b0a83a75" }, { "name": "scanner_db_slim", - "image": "registry.redhat.io/advanced-cluster-security/rhacs-scanner-db-slim-rhel8@sha256:9dab85eabbae8cc51ea9288aeaf0ac47009d293006264b6f88991815772d9df1" + "image": "registry.redhat.io/advanced-cluster-security/rhacs-scanner-db-slim-rhel8@sha256:1a75e89f7e2de4f9c2904fe1129244eeeaff5c222c272b1627df9e291833975c" }, { "name": "scanner", - "image": "registry.redhat.io/advanced-cluster-security/rhacs-scanner-rhel8@sha256:a283a8e651a4d6fc991c4801e8480f31fb72b6305b0b9c8741733c9847235e65" + "image": "registry.redhat.io/advanced-cluster-security/rhacs-scanner-rhel8@sha256:fb90724bba526007dd88af36a83e9679b5d85b35ba16cbf6add6a36d6e7284fa" }, { "name": "scanner_slim", - "image": "registry.redhat.io/advanced-cluster-security/rhacs-scanner-slim-rhel8@sha256:6dd9e4842988728a930451b25822c1e049cd2f6c7b3e358df18e74ca15b1f972" + "image": "registry.redhat.io/advanced-cluster-security/rhacs-scanner-slim-rhel8@sha256:80464e5116aca53eefa8278a9023cb1befaf3e14bad55afac5dd90b9a3e0150e" }, { "name": "scanner_v4_db", - "image": "registry.redhat.io/advanced-cluster-security/rhacs-scanner-v4-db-rhel8@sha256:5062cf77952f21fb428ff7a230c3f692bbb73f888ab102e5ac197a352415b18a" + "image": "registry.redhat.io/advanced-cluster-security/rhacs-scanner-v4-db-rhel8@sha256:67675a2899ad7b9f90b17f727a5ab9330ff9039f6013b197203e922cf380ee34" }, { "name": "scanner_v4", - "image": "registry.redhat.io/advanced-cluster-security/rhacs-scanner-v4-rhel8@sha256:2bd192a9f1960af7008341a39ff3379c121860a8c1145f120007e106bab582cc" + "image": "registry.redhat.io/advanced-cluster-security/rhacs-scanner-v4-rhel8@sha256:9e9dd22ed9bc0da85e1f9056fc269d160d4e61c2168367249ee9cfc158686dac" } ] } { "schema": "olm.bundle", - "name": "rhacs-operator.v4.9.1", + "name": "rhacs-operator.v4.9.0", "package": "rhacs-operator", - "image": "registry.redhat.io/advanced-cluster-security/rhacs-operator-bundle@sha256:9312c096fef02f70b642551338fdf968ec6657ff0385f51c13767d8b29afc76d", + "image": "registry.redhat.io/advanced-cluster-security/rhacs-operator-bundle@sha256:02a50a53dddbbdd749b0b6cc01f555308ab3c16045130d07483bfddd6861de42", "properties": [ { "type": "olm.gvk", @@ -163406,7 +163357,7 @@ "type": "olm.package", "value": { "packageName": "rhacs-operator", - "version": "4.9.1" + "version": "4.9.0" } }, { @@ -163416,8 +163367,8 @@ "alm-examples": "[\n {\n \"apiVersion\": \"platform.stackrox.io/v1alpha1\",\n \"kind\": \"Central\",\n \"metadata\": {\n \"name\": \"stackrox-central-services\",\n \"namespace\": \"stackrox\"\n },\n \"spec\": {\n \"central\": {\n \"exposure\": {\n \"route\": {\n \"enabled\": true\n }\n }\n }\n }\n },\n {\n \"apiVersion\": \"platform.stackrox.io/v1alpha1\",\n \"kind\": \"SecuredCluster\",\n \"metadata\": {\n \"name\": \"stackrox-secured-cluster-services\",\n \"namespace\": \"stackrox\"\n },\n \"spec\": {\n \"clusterName\": \"my-cluster\"\n }\n }\n]", "capabilities": "Seamless Upgrades", "categories": "Security", - "containerImage": "registry.redhat.io/advanced-cluster-security/rhacs-rhel8-operator@sha256:68d9c77d33b50fde89121bc62ffb8a2fe8b43f50ebf0ec964938d33ffef17874", - "createdAt": "2025-11-20T10:17:44.970647+00:00", + "containerImage": "registry.redhat.io/advanced-cluster-security/rhacs-rhel8-operator@sha256:3471d6c2b77ad4be863f7d5b0e5da5cd8a9c267126c003424c27b91e1cbf1b24", + "createdAt": "2025-10-30T15:19:35.144226+00:00", "description": "Red Hat Advanced Cluster Security (RHACS) operator provisions the services necessary to secure each of your OpenShift and Kubernetes clusters.", "features.operators.openshift.io/cnf": "false", "features.operators.openshift.io/cni": "false", @@ -163429,7 +163380,1904 @@ "features.operators.openshift.io/token-auth-aws": "false", "features.operators.openshift.io/token-auth-azure": "false", "features.operators.openshift.io/token-auth-gcp": "false", - "olm.skipRange": ">= 4.8.0 < 4.9.1", + "olm.skipRange": ">= 4.8.0 < 4.9.0", + "operatorframework.io/suggested-namespace": "rhacs-operator", + "operators.openshift.io/infrastructure-features": "[\"disconnected\", \"proxy-aware\"]", + "operators.openshift.io/valid-subscription": "[\"OpenShift Platform Plus\", \"Red Hat Advanced Cluster Security\"]", + "operators.operatorframework.io/builder": "operator-sdk-unknown", + "operators.operatorframework.io/project_layout": "go.kubebuilder.io/v4", + "support": "Red Hat" + }, + "apiServiceDefinitions": {}, + "crdDescriptions": { + "owned": [ + { + "name": "centrals.platform.stackrox.io", + "version": "v1alpha1", + "kind": "Central", + "displayName": "Central", + "description": "Central is the configuration template for the central services. This includes the API server, persistent storage,\nand the web UI, as well as the image scanner.", + "resources": [ + { + "name": "", + "kind": "Deployment", + "version": "v1" + }, + { + "name": "", + "kind": "Route", + "version": "v1" + }, + { + "name": "", + "kind": "Secret", + "version": "v1" + }, + { + "name": "", + "kind": "Service", + "version": "v1" + } + ], + "statusDescriptors": [ + { + "path": "central.adminPassword.info", + "displayName": "Admin Credentials Info", + "description": "Info stores information on how to obtain the admin password." + }, + { + "path": "productVersion", + "displayName": "Product Version", + "description": "The deployed version of the product." + }, + { + "path": "central", + "displayName": "Central" + }, + { + "path": "central.adminPassword.adminPasswordSecretReference", + "displayName": "Admin Password Secret Reference", + "description": "AdminPasswordSecretReference contains reference for the admin password", + "x-descriptors": [ + "urn:alm:descriptor:io.kubernetes:Secret" + ] + } + ], + "specDescriptors": [ + { + "path": "central", + "displayName": "Central Component Settings", + "description": "Settings for the Central component, which is responsible for all user interaction." + }, + { + "path": "scanner", + "displayName": "Scanner Component Settings", + "description": "Settings for the Scanner component, which is responsible for vulnerability scanning of container\nimages." + }, + { + "path": "scannerV4", + "displayName": "Scanner V4 Component Settings", + "description": "Settings for the Scanner V4 component, which can run in addition to the previously existing Scanner components" + }, + { + "path": "egress", + "displayName": "Egress", + "description": "Settings related to outgoing network traffic." + }, + { + "path": "tls", + "displayName": "TLS", + "description": "Settings related to Transport Layer Security, such as Certificate Authorities." + }, + { + "path": "imagePullSecrets", + "displayName": "Image Pull Secrets", + "description": "Additional image pull secrets to be taken into account for pulling images.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:advanced" + ] + }, + { + "path": "customize", + "displayName": "Customizations", + "description": "Customizations to apply on all Central Services components.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:advanced" + ] + }, + { + "path": "overlays", + "displayName": "Overlays", + "description": "Overlays", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:hidden" + ] + }, + { + "path": "monitoring", + "displayName": "Monitoring", + "description": "Monitoring configuration.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:advanced" + ] + }, + { + "path": "network", + "displayName": "Network", + "description": "Network configuration.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:advanced" + ] + }, + { + "path": "configAsCode", + "displayName": "Config-as-Code", + "description": "Config-as-Code configuration.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:advanced" + ] + }, + { + "path": "misc", + "displayName": "Miscellaneous", + "description": "Deprecated field. This field will be removed in a future release.\nMiscellaneous settings.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:hidden" + ] + }, + { + "path": "central.adminPasswordSecret", + "displayName": "Administrator Password", + "description": "Specify a secret that contains the administrator password in the \"password\" data item.\nIf omitted, the operator will auto-generate a password and store it in the \"password\" item\nin the \"central-htpasswd\" secret." + }, + { + "path": "central.exposure", + "displayName": "Exposure", + "description": "Here you can configure if you want to expose central through a node port, a load balancer, or an OpenShift\nroute." + }, + { + "path": "central.defaultTLSSecret", + "displayName": "User-facing TLS certificate secret", + "description": "By default, Central will only serve an internal TLS certificate, which means that you will\nneed to handle TLS termination at the ingress or load balancer level.\nIf you want to terminate TLS in Central and serve a custom server certificate, you can specify\na secret containing the certificate and private key here." + }, + { + "path": "central.monitoring", + "displayName": "Monitoring", + "description": "Configures monitoring endpoint for Central. The monitoring endpoint\nallows other services to collect metrics from Central, provided in\nPrometheus compatible format." + }, + { + "path": "central.db", + "displayName": "Central DB Settings", + "description": "Settings for Central DB, which is responsible for data persistence." + }, + { + "path": "central.telemetry", + "displayName": "Telemetry", + "description": "Configures telemetry settings for Central. If enabled, Central transmits telemetry and diagnostic\ndata to a remote storage backend.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:hidden" + ] + }, + { + "path": "central.declarativeConfiguration", + "displayName": "Declarative Configuration", + "description": "Configures resources within Central in a declarative manner.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:hidden" + ] + }, + { + "path": "central.notifierSecretsEncryption", + "displayName": "Notifier Secrets Encryption", + "description": "Configures the encryption of notifier secrets stored in the Central DB.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:hidden" + ] + }, + { + "path": "central.resources", + "displayName": "Resources", + "description": "Allows overriding the default resource settings for this component. Please consult the documentation\nfor an overview of default resource requirements and a sizing guide.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:resourceRequirements" + ] + }, + { + "path": "central.nodeSelector", + "displayName": "Node Selector", + "description": "If you want this component to only run on specific nodes, you can configure a node selector here." + }, + { + "path": "central.tolerations", + "displayName": "Tolerations", + "description": "If you want this component to only run on specific nodes, you can configure tolerations of tainted nodes.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:tolerations" + ] + }, + { + "path": "central.hostAliases", + "displayName": "Host Aliases", + "description": "HostAliases allows configuring additional hostnames to resolve in the pod's hosts file." + }, + { + "path": "central.adminPasswordGenerationDisabled", + "displayName": "Admin Password Generation Disabled", + "description": "Disable admin password generation. Do not use this for first-time installations,\nas you will have no way to perform initial setup and configuration of alternative authentication methods.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:hidden" + ] + }, + { + "path": "central.persistence", + "displayName": "Persistence", + "description": "Unused field. This field exists solely for backward compatibility starting from version v4.6.0.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:hidden" + ] + }, + { + "path": "central.adminPasswordSecret.name", + "displayName": "Name", + "description": "The name of the referenced secret.", + "x-descriptors": [ + "urn:alm:descriptor:io.kubernetes:Secret" + ] + }, + { + "path": "central.db.passwordSecret", + "displayName": "Administrator Password", + "description": "Specify a secret that contains the password in the \"password\" data item. This can only be used when\nspecifying a connection string manually.\nWhen omitted, the operator will auto-generate a DB password and store it in the \"password\" item\nin the \"central-db-password\" secret." + }, + { + "path": "central.db.connectionString", + "displayName": "Connection String", + "description": "Specify a connection string that corresponds to a database managed elsewhere. If set, the operator will not manage the Central DB.\nWhen using this option, you must explicitly set a password secret; automatically generating a password will not\nbe supported." + }, + { + "path": "central.db.persistence", + "displayName": "Persistence", + "description": "Configures how Central DB should store its persistent data. You can choose between using a persistent\nvolume claim (recommended default), and a host path." + }, + { + "path": "central.db.configOverride", + "displayName": "Config map that will override postgresql.conf and pg_hba.conf", + "description": "Config map containing postgresql.conf and pg_hba.conf that will be used if modifications need to be applied." + }, + { + "path": "central.db.connectionPoolSize", + "displayName": "Database Connection Pool Size Settings", + "description": "Configures the database connection pool size." + }, + { + "path": "central.db.resources", + "displayName": "Resources", + "description": "Allows overriding the default resource settings for this component. Please consult the documentation\nfor an overview of default resource requirements and a sizing guide.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:resourceRequirements" + ] + }, + { + "path": "central.db.nodeSelector", + "displayName": "Node Selector", + "description": "If you want this component to only run on specific nodes, you can configure a node selector here." + }, + { + "path": "central.db.tolerations", + "displayName": "Tolerations", + "description": "If you want this component to only run on specific nodes, you can configure tolerations of tainted nodes.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:tolerations" + ] + }, + { + "path": "central.db.hostAliases", + "displayName": "Host Aliases", + "description": "HostAliases allows configuring additional hostnames to resolve in the pod's hosts file." + }, + { + "path": "central.db.isEnabled", + "displayName": "Is Enabled", + "description": "Obsolete field.\nThis field will be removed in a future release.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:hidden" + ] + }, + { + "path": "central.db.configOverride.name", + "displayName": "Name", + "description": "The name of the referenced config map.", + "x-descriptors": [ + "urn:alm:descriptor:io.kubernetes:ConfigMap" + ] + }, + { + "path": "central.db.connectionPoolSize.maxConnections", + "displayName": "Maximum Connections", + "description": "Maximum number of connections in the connection pool.\nThe default is: 90." + }, + { + "path": "central.db.connectionPoolSize.minConnections", + "displayName": "Minimum Connections", + "description": "Minimum number of connections in the connection pool.\nThe default is: 10." + }, + { + "path": "central.db.passwordSecret.name", + "displayName": "Name", + "description": "The name of the referenced secret.", + "x-descriptors": [ + "urn:alm:descriptor:io.kubernetes:Secret" + ] + }, + { + "path": "central.db.persistence.persistentVolumeClaim", + "displayName": "Persistent volume claim", + "description": "Uses a Kubernetes persistent volume claim (PVC) to manage the storage location of persistent data.\nRecommended for most users." + }, + { + "path": "central.db.persistence.hostPath", + "displayName": "Host path", + "description": "Stores persistent data on a directory on the host. This is not recommended, and should only\nbe used together with a node selector (only available in YAML view)." + }, + { + "path": "central.db.persistence.hostPath.path", + "displayName": "Path", + "description": "The path on the host running Central." + }, + { + "path": "central.db.persistence.persistentVolumeClaim.claimName", + "displayName": "Claim Name", + "description": "The name of the PVC to manage persistent data. If no PVC with the given name exists, it will be\ncreated.\nThe default is: central-db." + }, + { + "path": "central.db.persistence.persistentVolumeClaim.size", + "displayName": "Size", + "description": "The size of the persistent volume when created through the claim. If a claim was automatically created,\nthis can be used after the initial deployment to resize (grow) the volume (only supported by some\nstorage class controllers).", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:text" + ] + }, + { + "path": "central.db.persistence.persistentVolumeClaim.storageClassName", + "displayName": "Storage Class", + "description": "The name of the storage class to use for the PVC. If your cluster is not configured with a default storage\nclass, you must select a value here.", + "x-descriptors": [ + "urn:alm:descriptor:io.kubernetes:StorageClass" + ] + }, + { + "path": "central.declarativeConfiguration.configMaps", + "displayName": "Config maps containing declarative configuration", + "description": "List of config maps containing declarative configuration." + }, + { + "path": "central.declarativeConfiguration.secrets", + "displayName": "Secrets containing declarative configuration", + "description": "List of secrets containing declarative configuration." + }, + { + "path": "central.declarativeConfiguration.configMaps[0].name", + "displayName": "Name", + "description": "The name of the referenced config map.", + "x-descriptors": [ + "urn:alm:descriptor:io.kubernetes:ConfigMap" + ] + }, + { + "path": "central.declarativeConfiguration.secrets[0].name", + "displayName": "Name", + "description": "The name of the referenced secret.", + "x-descriptors": [ + "urn:alm:descriptor:io.kubernetes:Secret" + ] + }, + { + "path": "central.defaultTLSSecret.name", + "displayName": "Name", + "description": "The name of the referenced secret.", + "x-descriptors": [ + "urn:alm:descriptor:io.kubernetes:Secret" + ] + }, + { + "path": "central.exposure.route", + "displayName": "Route", + "description": "Expose Central through an OpenShift route." + }, + { + "path": "central.exposure.loadBalancer", + "displayName": "Load Balancer", + "description": "Expose Central through a load balancer service." + }, + { + "path": "central.exposure.nodePort", + "displayName": "Node Port", + "description": "Expose Central through a node port." + }, + { + "path": "central.exposure.loadBalancer.enabled", + "displayName": "Enabled", + "description": "The default is: false." + }, + { + "path": "central.exposure.loadBalancer.port", + "displayName": "Port", + "description": "The default is: 443.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:fieldDependency:central.exposure.loadBalancer.enabled:true" + ] + }, + { + "path": "central.exposure.loadBalancer.ip", + "displayName": "IP", + "description": "If you have a static IP address reserved for your load balancer, you can enter it here.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:fieldDependency:central.exposure.loadBalancer.enabled:true" + ] + }, + { + "path": "central.exposure.nodePort.enabled", + "displayName": "Enabled", + "description": "The default is: false." + }, + { + "path": "central.exposure.nodePort.port", + "displayName": "Port", + "description": "Use this to specify an explicit node port. Most users should leave this empty.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:fieldDependency:central.exposure.nodePort.enabled:true" + ] + }, + { + "path": "central.exposure.route.enabled", + "displayName": "Enabled", + "description": "Expose Central with a passthrough route.\nThe default is: false." + }, + { + "path": "central.exposure.route.host", + "displayName": "Host", + "description": "Specify a custom hostname for the Central route.\nIf unspecified, an appropriate default value will be automatically chosen by the OpenShift route operator." + }, + { + "path": "central.exposure.route.reencrypt", + "displayName": "Re-Encrypt Route", + "description": "Set up a Central route with reencrypt TLS termination.\nFor reencrypt routes, the request is terminated on the OpenShift router with a custom certificate.\nThe request is then reencrypted by the OpenShift router and sent to Central.\n[user] --TLS--> [OpenShift router] --TLS--> [Central]" + }, + { + "path": "central.exposure.route.reencrypt.enabled", + "displayName": "Enabled", + "description": "Expose Central with a reencrypt route.\nShould not be used for sensor communication.\nThe default is: false." + }, + { + "path": "central.exposure.route.reencrypt.host", + "displayName": "Host", + "description": "Specify a custom hostname for the Central reencrypt route.\nIf unspecified, an appropriate default value will be automatically chosen by the OpenShift route operator." + }, + { + "path": "central.exposure.route.reencrypt.tls", + "displayName": "TLS Settings", + "description": "TLS settings for exposing Central via a reencrypt Route." + }, + { + "path": "central.exposure.route.reencrypt.tls.caCertificate", + "displayName": "CA Certificate", + "description": "The PEM encoded certificate chain that may be used to establish a complete chain of trust.\nDefaults to the OpenShift certificate authority." + }, + { + "path": "central.exposure.route.reencrypt.tls.certificate", + "displayName": "Certificate", + "description": "The PEM encoded certificate that is served on the route. Must be a single serving\ncertificate instead of a certificate chain.\nDefaults to a certificate signed by the OpenShift certificate authority." + }, + { + "path": "central.exposure.route.reencrypt.tls.destinationCACertificate", + "displayName": "Destination CA Certificate", + "description": "The CA certificate of the final destination, i.e. of Central.\nUsed by the OpenShift router for health checks on the secure connection.\nDefaults to the Central certificate authority." + }, + { + "path": "central.exposure.route.reencrypt.tls.key", + "displayName": "Private Key", + "description": "The PEM encoded private key of the certificate that is served on the route.\nDefaults to a certificate signed by the OpenShift certificate authority." + }, + { + "path": "central.monitoring.exposeEndpoint", + "displayName": "Expose Endpoint", + "description": "Expose the monitoring endpoint. A new service, \"monitoring\",\nwith port 9090, will be created as well as a network policy allowing\ninbound connections to the port." + }, + { + "path": "central.notifierSecretsEncryption.enabled", + "displayName": "Enabled", + "description": "Enables the encryption of notifier secrets stored in the Central DB.\nThe default is: false." + }, + { + "path": "central.persistence.hostPath", + "displayName": "Host Path", + "description": "Obsolete unused field.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:hidden" + ] + }, + { + "path": "central.persistence.persistentVolumeClaim", + "displayName": "Persistent Volume Claim", + "description": "Obsolete unused field.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:hidden" + ] + }, + { + "path": "central.persistence.hostPath.path", + "displayName": "Path", + "description": "The path on the host running Central." + }, + { + "path": "central.persistence.persistentVolumeClaim.claimName", + "displayName": "Claim Name", + "description": "Obsolete unused field.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:hidden" + ] + }, + { + "path": "central.persistence.persistentVolumeClaim.size", + "displayName": "Size", + "description": "Obsolete unused field.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:hidden" + ] + }, + { + "path": "central.persistence.persistentVolumeClaim.storageClassName", + "displayName": "Storage Class Name", + "description": "Obsolete unused field.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:hidden" + ] + }, + { + "path": "central.telemetry.enabled", + "displayName": "Enabled", + "description": "Specifies if Telemetry is enabled.\nThe default is: true.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:booleanSwitch" + ] + }, + { + "path": "central.telemetry.storage", + "displayName": "Storage", + "description": "Defines the telemetry storage backend for Central.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:fieldDependency:central.telemetry.enabled:true" + ] + }, + { + "path": "central.telemetry.storage.endpoint", + "displayName": "Endpoint", + "description": "Storage API endpoint." + }, + { + "path": "central.telemetry.storage.key", + "displayName": "Key", + "description": "Storage API key. If not set, telemetry is disabled." + }, + { + "path": "configAsCode.configAsCodeComponent", + "displayName": "Config as Code component", + "description": "If you want to deploy the Config as Code component, set this to \"Enabled\"\nThe default is: Enabled." + }, + { + "path": "customize.labels", + "displayName": "Labels", + "description": "Custom labels to set on all managed objects." + }, + { + "path": "customize.annotations", + "displayName": "Annotations", + "description": "Custom annotations to set on all managed objects." + }, + { + "path": "customize.envVars", + "displayName": "Environment Variables", + "description": "Custom environment variables to set on managed pods' containers." + }, + { + "path": "egress.connectivityPolicy", + "displayName": "Connectivity Policy", + "description": "Configures whether Red Hat Advanced Cluster Security should run in online or offline (disconnected) mode.\nIn offline mode, automatic updates of vulnerability definitions and kernel modules are disabled.\nThe default is: Online." + }, + { + "path": "imagePullSecrets[0].name", + "displayName": "Name", + "description": "The name of the referenced secret.", + "x-descriptors": [ + "urn:alm:descriptor:io.kubernetes:Secret" + ] + }, + { + "path": "misc.createSCCs", + "displayName": "Create SecurityContextConstraints for Operand", + "description": "Deprecated field. This field will be removed in a future release.\nSet this to true to have the operator create SecurityContextConstraints (SCCs) for the operands. This\nisn't usually needed, and may interfere with other workloads.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:hidden" + ] + }, + { + "path": "monitoring.openshift.enabled", + "displayName": "Enabled", + "description": "The default is: true.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:booleanSwitch" + ] + }, + { + "path": "network.policies", + "displayName": "Network Policies", + "description": "To provide security at the network level the ACS Operator creates NetworkPolicy resources by default. If you want to manage your own NetworkPolicy objects then set this to \"Disabled\".\nThe default is: Enabled." + }, + { + "path": "overlays[0].apiVersion", + "displayName": "API Version", + "description": "Resource API version." + }, + { + "path": "overlays[0].kind", + "displayName": "Kind", + "description": "Resource kind." + }, + { + "path": "overlays[0].name", + "displayName": "Name", + "description": "Name of resource." + }, + { + "path": "overlays[0].optional", + "displayName": "Optional", + "description": "Optional marks the overlay as optional.\nWhen Optional is true, and the specified resource does not exist in the output manifests, the overlay will be skipped, and a warning will be logged.\nWhen Optional is false, and the specified resource does not exist in the output manifests, an error will be thrown." + }, + { + "path": "overlays[0].patches", + "displayName": "Patches", + "description": "List of patches to apply to resource." + }, + { + "path": "overlays[0].patches[0].path", + "displayName": "Path", + "description": "Path of the form a.[key1:value1].b.[:value2]\nWhere [key1:value1] is a selector for a key-value pair to identify a list element and [:value] is a value\nselector to identify a list element in a leaf list.\nAll path intermediate nodes must exist." + }, + { + "path": "overlays[0].patches[0].value", + "displayName": "Value", + "description": "Value to add, delete or replace.\nFor add, the path should be a new leaf.\nFor delete, value should be unset.\nFor replace, path should reference an existing node.\nAll values are strings but are converted into appropriate type based on schema." + }, + { + "path": "overlays[0].patches[0].verbatim", + "displayName": "Verbatim", + "description": "Verbatim value to add, delete or replace.\nSame as Value, however the content is not interpreted as YAML, but treated as literal string instead.\nAt least one of Value and Verbatim must be empty." + }, + { + "path": "scanner.scannerComponent", + "displayName": "Scanner Component", + "description": "If you do not want to deploy the Red Hat Advanced Cluster Security Scanner, you can disable it here\n(not recommended). By default, the scanner is enabled.\nIf you do so, all the settings in this section will have no effect." + }, + { + "path": "scanner.analyzer", + "displayName": "Analyzer", + "description": "Settings pertaining to the analyzer deployment, such as for autoscaling.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:fieldDependency:scanner.scannerComponent:Enabled" + ] + }, + { + "path": "scanner.db", + "displayName": "DB", + "description": "Settings pertaining to the database used by the Red Hat Advanced Cluster Security Scanner.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:fieldDependency:scanner.scannerComponent:Enabled" + ] + }, + { + "path": "scanner.monitoring", + "displayName": "Monitoring", + "description": "Configures monitoring endpoint for Scanner. The monitoring endpoint\nallows other services to collect metrics from Scanner, provided in\nPrometheus compatible format." + }, + { + "path": "scanner.analyzer.scaling", + "displayName": "Scaling", + "description": "Controls the number of analyzer replicas and autoscaling." + }, + { + "path": "scanner.analyzer.resources", + "displayName": "Resources", + "description": "Allows overriding the default resource settings for this component. Please consult the documentation\nfor an overview of default resource requirements and a sizing guide.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:resourceRequirements" + ] + }, + { + "path": "scanner.analyzer.nodeSelector", + "displayName": "Node Selector", + "description": "If you want this component to only run on specific nodes, you can configure a node selector here." + }, + { + "path": "scanner.analyzer.tolerations", + "displayName": "Tolerations", + "description": "If you want this component to only run on specific nodes, you can configure tolerations of tainted nodes.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:tolerations" + ] + }, + { + "path": "scanner.analyzer.hostAliases", + "displayName": "Host Aliases", + "description": "HostAliases allows configuring additional hostnames to resolve in the pod's hosts file." + }, + { + "path": "scanner.analyzer.scaling.autoScaling", + "displayName": "Autoscaling", + "description": "When enabled, the number of component replicas is managed dynamically based on the load, within the limits\nspecified below.\nThe default is: Enabled." + }, + { + "path": "scanner.analyzer.scaling.replicas", + "displayName": "Default Replicas", + "description": "When autoscaling is disabled, the number of replicas will always be configured to match this value.\nThe default is: 3." + }, + { + "path": "scanner.analyzer.scaling.minReplicas", + "displayName": "Autoscaling Minimum Replicas", + "description": "The default is: 2.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:fieldDependency:scanner.analyzer.scaling.autoScaling:Enabled" + ] + }, + { + "path": "scanner.analyzer.scaling.maxReplicas", + "displayName": "Autoscaling Maximum Replicas", + "description": "The default is: 5.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:fieldDependency:scanner.analyzer.scaling.autoScaling:Enabled" + ] + }, + { + "path": "scanner.db.resources", + "displayName": "Resources", + "description": "Allows overriding the default resource settings for this component. Please consult the documentation\nfor an overview of default resource requirements and a sizing guide.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:resourceRequirements" + ] + }, + { + "path": "scanner.db.nodeSelector", + "displayName": "Node Selector", + "description": "If you want this component to only run on specific nodes, you can configure a node selector here." + }, + { + "path": "scanner.db.tolerations", + "displayName": "Tolerations", + "description": "If you want this component to only run on specific nodes, you can configure tolerations of tainted nodes.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:tolerations" + ] + }, + { + "path": "scanner.db.hostAliases", + "displayName": "Host Aliases", + "description": "HostAliases allows configuring additional hostnames to resolve in the pod's hosts file." + }, + { + "path": "scanner.monitoring.exposeEndpoint", + "displayName": "Expose Endpoint", + "description": "Expose the monitoring endpoint. A new service, \"monitoring\",\nwith port 9090, will be created as well as a network policy allowing\ninbound connections to the port." + }, + { + "path": "scannerV4.scannerComponent", + "displayName": "Scanner V4 component", + "description": "Can be specified as \"Enabled\" or \"Disabled\".\nIf this field is not specified, the following defaulting takes place:\n* for new installations, Scanner V4 is enabled starting with ACS 4.8;\n* for upgrades to 4.8 from previous releases, Scanner V4 is disabled." + }, + { + "path": "scannerV4.indexer", + "displayName": "Indexer", + "description": "Settings pertaining to the indexer deployment.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:fieldDependency:scannerV4.scannerComponent:Enabled" + ] + }, + { + "path": "scannerV4.matcher", + "displayName": "Matcher", + "description": "Settings pertaining to the matcher deployment.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:fieldDependency:scannerV4.scannerComponent:Enabled" + ] + }, + { + "path": "scannerV4.db", + "displayName": "DB", + "description": "Settings pertaining to the DB deployment.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:fieldDependency:scannerV4.scannerComponent:Enabled" + ] + }, + { + "path": "scannerV4.monitoring", + "displayName": "Monitoring", + "description": "Configures monitoring endpoint for Scanner V4. The monitoring endpoint\nallows other services to collect metrics from Scanner V4, provided in\nPrometheus compatible format.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:fieldDependency:scannerV4.scannerComponent:Enabled" + ] + }, + { + "path": "scannerV4.db.persistence", + "displayName": "Persistence", + "description": "Configures how Scanner V4 should store its persistent data.\nYou can use a persistent volume claim (the recommended default), a host path,\nor an emptyDir volume if Scanner V4 is running on a secured cluster without default StorageClass." + }, + { + "path": "scannerV4.db.resources", + "displayName": "Resources", + "description": "Allows overriding the default resource settings for this component. Please consult the documentation\nfor an overview of default resource requirements and a sizing guide.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:resourceRequirements" + ] + }, + { + "path": "scannerV4.db.nodeSelector", + "displayName": "Node Selector", + "description": "If you want this component to only run on specific nodes, you can configure a node selector here." + }, + { + "path": "scannerV4.db.tolerations", + "displayName": "Tolerations", + "description": "If you want this component to only run on specific nodes, you can configure tolerations of tainted nodes.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:tolerations" + ] + }, + { + "path": "scannerV4.db.hostAliases", + "displayName": "Host Aliases", + "description": "HostAliases allows configuring additional hostnames to resolve in the pod's hosts file." + }, + { + "path": "scannerV4.db.persistence.persistentVolumeClaim", + "displayName": "Persistent volume claim", + "description": "Uses a Kubernetes persistent volume claim (PVC) to manage the storage location of persistent data.\nRecommended for most users." + }, + { + "path": "scannerV4.db.persistence.hostPath", + "displayName": "Host path", + "description": "Stores persistent data on a directory on the host. This is not recommended, and should only\nbe used together with a node selector (only available in YAML view)." + }, + { + "path": "scannerV4.db.persistence.hostPath.path", + "displayName": "Path", + "description": "The path on the host running Central." + }, + { + "path": "scannerV4.db.persistence.persistentVolumeClaim.claimName", + "displayName": "Claim Name", + "description": "The name of the PVC to manage persistent data. If no PVC with the given name exists, it will be\ncreated.\nThe default is: scanner-v4-db." + }, + { + "path": "scannerV4.db.persistence.persistentVolumeClaim.size", + "displayName": "Size", + "description": "The size of the persistent volume when created through the claim. If a claim was automatically created,\nthis can be used after the initial deployment to resize (grow) the volume (only supported by some\nstorage class controllers).", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:text" + ] + }, + { + "path": "scannerV4.db.persistence.persistentVolumeClaim.storageClassName", + "displayName": "Storage Class", + "description": "The name of the storage class to use for the PVC. If your cluster is not configured with a default storage\nclass, you must select a value here.", + "x-descriptors": [ + "urn:alm:descriptor:io.kubernetes:StorageClass" + ] + }, + { + "path": "scannerV4.indexer.scaling", + "displayName": "Scaling", + "description": "Controls the number of replicas and autoscaling for this component." + }, + { + "path": "scannerV4.indexer.resources", + "displayName": "Resources", + "description": "Allows overriding the default resource settings for this component. Please consult the documentation\nfor an overview of default resource requirements and a sizing guide.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:resourceRequirements" + ] + }, + { + "path": "scannerV4.indexer.nodeSelector", + "displayName": "Node Selector", + "description": "If you want this component to only run on specific nodes, you can configure a node selector here." + }, + { + "path": "scannerV4.indexer.tolerations", + "displayName": "Tolerations", + "description": "If you want this component to only run on specific nodes, you can configure tolerations of tainted nodes.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:tolerations" + ] + }, + { + "path": "scannerV4.indexer.hostAliases", + "displayName": "Host Aliases", + "description": "HostAliases allows configuring additional hostnames to resolve in the pod's hosts file." + }, + { + "path": "scannerV4.indexer.scaling.autoScaling", + "displayName": "Autoscaling", + "description": "When enabled, the number of component replicas is managed dynamically based on the load, within the limits\nspecified below.\nThe default is: Enabled." + }, + { + "path": "scannerV4.indexer.scaling.replicas", + "displayName": "Default Replicas", + "description": "When autoscaling is disabled, the number of replicas will always be configured to match this value.\nThe default is: 3." + }, + { + "path": "scannerV4.indexer.scaling.minReplicas", + "displayName": "Autoscaling Minimum Replicas", + "description": "The default is: 2.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:fieldDependency:scannerV4.indexer.scaling.autoScaling:Enabled" + ] + }, + { + "path": "scannerV4.indexer.scaling.maxReplicas", + "displayName": "Autoscaling Maximum Replicas", + "description": "The default is: 5.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:fieldDependency:scannerV4.indexer.scaling.autoScaling:Enabled" + ] + }, + { + "path": "scannerV4.matcher.scaling", + "displayName": "Scaling", + "description": "Controls the number of replicas and autoscaling for this component." + }, + { + "path": "scannerV4.matcher.resources", + "displayName": "Resources", + "description": "Allows overriding the default resource settings for this component. Please consult the documentation\nfor an overview of default resource requirements and a sizing guide.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:resourceRequirements" + ] + }, + { + "path": "scannerV4.matcher.nodeSelector", + "displayName": "Node Selector", + "description": "If you want this component to only run on specific nodes, you can configure a node selector here." + }, + { + "path": "scannerV4.matcher.tolerations", + "displayName": "Tolerations", + "description": "If you want this component to only run on specific nodes, you can configure tolerations of tainted nodes.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:tolerations" + ] + }, + { + "path": "scannerV4.matcher.hostAliases", + "displayName": "Host Aliases", + "description": "HostAliases allows configuring additional hostnames to resolve in the pod's hosts file." + }, + { + "path": "scannerV4.matcher.scaling.autoScaling", + "displayName": "Autoscaling", + "description": "When enabled, the number of component replicas is managed dynamically based on the load, within the limits\nspecified below.\nThe default is: Enabled." + }, + { + "path": "scannerV4.matcher.scaling.replicas", + "displayName": "Default Replicas", + "description": "When autoscaling is disabled, the number of replicas will always be configured to match this value.\nThe default is: 3." + }, + { + "path": "scannerV4.matcher.scaling.minReplicas", + "displayName": "Autoscaling Minimum Replicas", + "description": "The default is: 2.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:fieldDependency:scannerV4.matcher.scaling.autoScaling:Enabled" + ] + }, + { + "path": "scannerV4.matcher.scaling.maxReplicas", + "displayName": "Autoscaling Maximum Replicas", + "description": "The default is: 5.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:fieldDependency:scannerV4.matcher.scaling.autoScaling:Enabled" + ] + }, + { + "path": "scannerV4.monitoring.exposeEndpoint", + "displayName": "Expose Endpoint", + "description": "Expose the monitoring endpoint. A new service, \"monitoring\",\nwith port 9090, will be created as well as a network policy allowing\ninbound connections to the port." + }, + { + "path": "tls.additionalCAs", + "displayName": "Additional CAs", + "description": "Allows you to specify additional trusted Root CAs." + } + ] + }, + { + "name": "securedclusters.platform.stackrox.io", + "version": "v1alpha1", + "kind": "SecuredCluster", + "displayName": "Secured Cluster", + "description": "SecuredCluster is the configuration template for the secured cluster services. These include Sensor, which is\nresponsible for the connection to Central, and Collector, which performs host-level collection of process and\nnetwork events.

\n**Important:** Please see the _Installation Prerequisites_ on the main RHACS operator page before deploying, or\nconsult the RHACS documentation on creating cluster init bundles.", + "resources": [ + { + "name": "", + "kind": "DaemonSet", + "version": "v1" + }, + { + "name": "", + "kind": "Deployment", + "version": "v1" + } + ], + "statusDescriptors": [ + { + "path": "productVersion", + "displayName": "Product Version", + "description": "The deployed version of the product." + }, + { + "path": "clusterName", + "displayName": "Cluster Name", + "description": "The assigned cluster name per the spec. This cannot be changed afterwards. If you need to change the\ncluster name, please delete and recreate this resource." + } + ], + "specDescriptors": [ + { + "path": "clusterName", + "displayName": "Cluster Name", + "description": "The unique name of this cluster, as it will be shown in the Red Hat Advanced Cluster Security UI.\nNote: Once a name is set here, you will not be able to change it again. You will need to delete\nand re-create this object in order to register a cluster with a new name." + }, + { + "path": "centralEndpoint", + "displayName": "Central Endpoint", + "description": "The endpoint of the Red Hat Advanced Cluster Security Central instance to connect to,\nincluding the port number. If no port is specified and the endpoint contains an https://\nprotocol specification, then the port 443 is implicitly assumed.\nIf using a non-gRPC capable load balancer, use the WebSocket protocol by prefixing the endpoint\naddress with wss://.\nNote: when leaving this blank, Sensor will attempt to connect to a Central instance running in the same\nnamespace." + }, + { + "path": "sensor", + "displayName": "Sensor Settings", + "description": "Settings for the Sensor component." + }, + { + "path": "admissionControl", + "displayName": "Admission Control Settings", + "description": "Settings for the Admission Control component, which is necessary for preventive policy enforcement,\nand for Kubernetes event monitoring." + }, + { + "path": "perNode", + "displayName": "Per Node Settings", + "description": "Settings for the components running on each node in the cluster (Collector and Compliance)." + }, + { + "path": "auditLogs", + "displayName": "Kubernetes Audit Logs Ingestion Settings", + "description": "Settings relating to the ingestion of Kubernetes audit logs." + }, + { + "path": "processBaselines", + "displayName": "Process Baselines Settings", + "description": "Settings relating to process baselines." + }, + { + "path": "scanner", + "displayName": "Scanner Component Settings", + "description": "Settings for the Scanner component, which is responsible for vulnerability scanning of container\nimages stored in a cluster-local image repository." + }, + { + "path": "scannerV4", + "displayName": "Scanner V4 Component Settings", + "description": "Settings for the Scanner V4 components, which can run in addition to the previously existing Scanner components" + }, + { + "path": "tls", + "displayName": "TLS", + "description": "Settings related to Transport Layer Security, such as Certificate Authorities." + }, + { + "path": "imagePullSecrets", + "displayName": "Image Pull Secrets", + "description": "Additional image pull secrets to be taken into account for pulling images.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:advanced" + ] + }, + { + "path": "customize", + "displayName": "Customizations", + "description": "Customizations to apply on all Central Services components.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:advanced" + ] + }, + { + "path": "overlays", + "displayName": "Overlays", + "description": "Overlays", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:hidden" + ] + }, + { + "path": "monitoring", + "displayName": "Monitoring", + "description": "Monitoring configuration.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:advanced" + ] + }, + { + "path": "registryOverride", + "displayName": "Custom Default Image Registry", + "description": "Set this parameter to override the default registry in images. For example, nginx:latest -> /library/nginx:latest", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:advanced" + ] + }, + { + "path": "network", + "displayName": "Network", + "description": "Network configuration.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:advanced" + ] + }, + { + "path": "misc", + "displayName": "Miscellaneous", + "description": "Deprecated field. This field will be removed in a future release.\nMiscellaneous settings.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:hidden" + ] + }, + { + "path": "admissionControl.enforcement", + "displayName": "Enforcement", + "description": "Set to Disabled to disable policy enforcement for the admission controller. This is not recommended.\nOn new deployments starting with version 4.9, defaults to Enabled.\nOn old deployments, defaults to Enabled if at least one of listenOnCreates or listenOnUpdates is true." + }, + { + "path": "admissionControl.bypass", + "displayName": "Bypass", + "description": "Enables teams to bypass admission control in a monitored manner in the event of an emergency.\nThe default is: BreakGlassAnnotation." + }, + { + "path": "admissionControl.failurePolicy", + "displayName": "Failure Policy", + "description": "If set to \"Fail\", the admission controller's webhooks are configured to fail-closed in case admission controller\nfails to respond in time. A failure policy \"Ignore\" configures the webhooks to fail-open.\nThe default is: Ignore." + }, + { + "path": "admissionControl.replicas", + "displayName": "Replicas", + "description": "The number of replicas of the admission control pod.\nThe default is: 3." + }, + { + "path": "admissionControl.resources", + "displayName": "Resources", + "description": "Allows overriding the default resource settings for this component. Please consult the documentation\nfor an overview of default resource requirements and a sizing guide.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:resourceRequirements" + ] + }, + { + "path": "admissionControl.nodeSelector", + "displayName": "Node Selector", + "description": "If you want this component to only run on specific nodes, you can configure a node selector here." + }, + { + "path": "admissionControl.tolerations", + "displayName": "Tolerations", + "description": "If you want this component to only run on specific nodes, you can configure tolerations of tainted nodes.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:tolerations" + ] + }, + { + "path": "admissionControl.hostAliases", + "displayName": "Host Aliases", + "description": "HostAliases allows configuring additional hostnames to resolve in the pod's hosts file." + }, + { + "path": "admissionControl.contactImageScanners", + "displayName": "Contact Image Scanners", + "description": "Deprecated field. This field will be removed in a future release.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:hidden" + ] + }, + { + "path": "admissionControl.listenOnCreates", + "displayName": "Listen On Creates", + "description": "Deprecated field. This field will be removed in a future release.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:hidden" + ] + }, + { + "path": "admissionControl.listenOnEvents", + "displayName": "Listen On Events", + "description": "Deprecated field. This field will be removed in a future release.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:hidden" + ] + }, + { + "path": "admissionControl.listenOnUpdates", + "displayName": "Listen On Updates", + "description": "Deprecated field. This field will be removed in a future release.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:hidden" + ] + }, + { + "path": "admissionControl.timeoutSeconds", + "displayName": "Timeout Seconds", + "description": "Deprecated field. This field will be removed in a future release.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:hidden" + ] + }, + { + "path": "auditLogs.collection", + "displayName": "Collection", + "description": "Whether collection of Kubernetes audit logs should be enabled or disabled. Currently, this is only\nsupported on OpenShift 4, and trying to enable it on non-OpenShift 4 clusters will result in an error.\nUse the 'Auto' setting to enable it on compatible environments, and disable it elsewhere.\nThe default is: Auto." + }, + { + "path": "customize.labels", + "displayName": "Labels", + "description": "Custom labels to set on all managed objects." + }, + { + "path": "customize.annotations", + "displayName": "Annotations", + "description": "Custom annotations to set on all managed objects." + }, + { + "path": "customize.envVars", + "displayName": "Environment Variables", + "description": "Custom environment variables to set on managed pods' containers." + }, + { + "path": "imagePullSecrets[0].name", + "displayName": "Name", + "description": "The name of the referenced secret.", + "x-descriptors": [ + "urn:alm:descriptor:io.kubernetes:Secret" + ] + }, + { + "path": "misc.createSCCs", + "displayName": "Create SecurityContextConstraints for Operand", + "description": "Deprecated field. This field will be removed in a future release.\nSet this to true to have the operator create SecurityContextConstraints (SCCs) for the operands. This\nisn't usually needed, and may interfere with other workloads.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:hidden" + ] + }, + { + "path": "monitoring.openshift.enabled", + "displayName": "Enabled", + "description": "The default is: true.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:booleanSwitch" + ] + }, + { + "path": "network.policies", + "displayName": "Network Policies", + "description": "To provide security at the network level the ACS Operator creates NetworkPolicy resources by default. If you want to manage your own NetworkPolicy objects then set this to \"Disabled\".\nThe default is: Enabled." + }, + { + "path": "overlays[0].apiVersion", + "displayName": "API Version", + "description": "Resource API version." + }, + { + "path": "overlays[0].kind", + "displayName": "Kind", + "description": "Resource kind." + }, + { + "path": "overlays[0].name", + "displayName": "Name", + "description": "Name of resource." + }, + { + "path": "overlays[0].optional", + "displayName": "Optional", + "description": "Optional marks the overlay as optional.\nWhen Optional is true, and the specified resource does not exist in the output manifests, the overlay will be skipped, and a warning will be logged.\nWhen Optional is false, and the specified resource does not exist in the output manifests, an error will be thrown." + }, + { + "path": "overlays[0].patches", + "displayName": "Patches", + "description": "List of patches to apply to resource." + }, + { + "path": "overlays[0].patches[0].path", + "displayName": "Path", + "description": "Path of the form a.[key1:value1].b.[:value2]\nWhere [key1:value1] is a selector for a key-value pair to identify a list element and [:value] is a value\nselector to identify a list element in a leaf list.\nAll path intermediate nodes must exist." + }, + { + "path": "overlays[0].patches[0].value", + "displayName": "Value", + "description": "Value to add, delete or replace.\nFor add, the path should be a new leaf.\nFor delete, value should be unset.\nFor replace, path should reference an existing node.\nAll values are strings but are converted into appropriate type based on schema." + }, + { + "path": "overlays[0].patches[0].verbatim", + "displayName": "Verbatim", + "description": "Verbatim value to add, delete or replace.\nSame as Value, however the content is not interpreted as YAML, but treated as literal string instead.\nAt least one of Value and Verbatim must be empty." + }, + { + "path": "perNode.collector", + "displayName": "Collector Settings", + "description": "Settings for the Collector container, which is responsible for collecting process and networking\nactivity at the host level." + }, + { + "path": "perNode.compliance", + "displayName": "Compliance Settings", + "description": "Settings for the Compliance container, which is responsible for checking host-level configurations." + }, + { + "path": "perNode.nodeInventory", + "displayName": "Node Scanning Settings", + "description": "Settings for the Node-Inventory container, which is responsible for scanning the Nodes' filesystem." + }, + { + "path": "perNode.taintToleration", + "displayName": "Taint Toleration", + "description": "To ensure comprehensive monitoring of your cluster activity, Red Hat Advanced Cluster Security\nwill run services on every node in the cluster, including tainted nodes by default. If you do\nnot want this behavior, please select 'AvoidTaints' here.\nThe default is: TolerateTaints." + }, + { + "path": "perNode.hostAliases", + "displayName": "Host Aliases", + "description": "HostAliases allows configuring additional hostnames to resolve in the pod's hosts file." + }, + { + "path": "perNode.collector.collection", + "displayName": "Collection", + "description": "The method for system-level data collection. CORE_BPF is recommended.\nIf you select \"NoCollection\", you will not be able to see any information about network activity\nand process executions. The remaining settings in these section will not have any effect.\nThe value is a subject of conversion by the operator if needed, e.g. to\nremove deprecated methods.\nThe default is: CORE_BPF.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:select:CORE_BPF", + "urn:alm:descriptor:com.tectonic.ui:select:NoCollection" + ] + }, + { + "path": "perNode.collector.imageFlavor", + "displayName": "Image Flavor", + "description": "Obsolete field.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:hidden" + ] + }, + { + "path": "perNode.collector.forceCollection", + "displayName": "Force Collection", + "description": "Obsolete field. This field will be removed in a future release.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:hidden" + ] + }, + { + "path": "perNode.collector.resources", + "displayName": "Resources", + "description": "Allows overriding the default resource settings for this component. Please consult the documentation\nfor an overview of default resource requirements and a sizing guide.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:resourceRequirements" + ] + }, + { + "path": "perNode.compliance.resources", + "displayName": "Resources", + "description": "Allows overriding the default resource settings for this component. Please consult the documentation\nfor an overview of default resource requirements and a sizing guide.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:resourceRequirements" + ] + }, + { + "path": "perNode.nodeInventory.resources", + "displayName": "Resources", + "description": "Allows overriding the default resource settings for this component. Please consult the documentation\nfor an overview of default resource requirements and a sizing guide.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:resourceRequirements" + ] + }, + { + "path": "processBaselines.autoLock", + "displayName": "Auto Lock", + "description": "Should process baselines be automatically locked when the observation period (1 hour by default) ends.\nThe default is: Disabled.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:select:Enabled", + "urn:alm:descriptor:com.tectonic.ui:select:Disabled" + ] + }, + { + "path": "scanner.scannerComponent", + "displayName": "Scanner Component", + "description": "If you do not want to deploy the Red Hat Advanced Cluster Security Scanner, you can disable it here\n(not recommended).\nIf you do so, all the settings in this section will have no effect.\nThe default is: AutoSense." + }, + { + "path": "scanner.analyzer", + "displayName": "Analyzer", + "description": "Settings pertaining to the analyzer deployment, such as for autoscaling." + }, + { + "path": "scanner.db", + "displayName": "DB", + "description": "Settings pertaining to the database used by the Red Hat Advanced Cluster Security Scanner." + }, + { + "path": "scanner.analyzer.scaling", + "displayName": "Scaling", + "description": "Controls the number of analyzer replicas and autoscaling." + }, + { + "path": "scanner.analyzer.resources", + "displayName": "Resources", + "description": "Allows overriding the default resource settings for this component. Please consult the documentation\nfor an overview of default resource requirements and a sizing guide.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:resourceRequirements" + ] + }, + { + "path": "scanner.analyzer.nodeSelector", + "displayName": "Node Selector", + "description": "If you want this component to only run on specific nodes, you can configure a node selector here." + }, + { + "path": "scanner.analyzer.tolerations", + "displayName": "Tolerations", + "description": "If you want this component to only run on specific nodes, you can configure tolerations of tainted nodes.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:tolerations" + ] + }, + { + "path": "scanner.analyzer.hostAliases", + "displayName": "Host Aliases", + "description": "HostAliases allows configuring additional hostnames to resolve in the pod's hosts file." + }, + { + "path": "scanner.analyzer.scaling.autoScaling", + "displayName": "Autoscaling", + "description": "When enabled, the number of component replicas is managed dynamically based on the load, within the limits\nspecified below.\nThe default is: Enabled." + }, + { + "path": "scanner.analyzer.scaling.replicas", + "displayName": "Default Replicas", + "description": "When autoscaling is disabled, the number of replicas will always be configured to match this value.\nThe default is: 3." + }, + { + "path": "scanner.analyzer.scaling.minReplicas", + "displayName": "Autoscaling Minimum Replicas", + "description": "The default is: 2.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:fieldDependency:scanner.analyzer.scaling.autoScaling:Enabled" + ] + }, + { + "path": "scanner.analyzer.scaling.maxReplicas", + "displayName": "Autoscaling Maximum Replicas", + "description": "The default is: 5.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:fieldDependency:scanner.analyzer.scaling.autoScaling:Enabled" + ] + }, + { + "path": "scanner.db.resources", + "displayName": "Resources", + "description": "Allows overriding the default resource settings for this component. Please consult the documentation\nfor an overview of default resource requirements and a sizing guide.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:resourceRequirements" + ] + }, + { + "path": "scanner.db.nodeSelector", + "displayName": "Node Selector", + "description": "If you want this component to only run on specific nodes, you can configure a node selector here." + }, + { + "path": "scanner.db.tolerations", + "displayName": "Tolerations", + "description": "If you want this component to only run on specific nodes, you can configure tolerations of tainted nodes.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:tolerations" + ] + }, + { + "path": "scanner.db.hostAliases", + "displayName": "Host Aliases", + "description": "HostAliases allows configuring additional hostnames to resolve in the pod's hosts file." + }, + { + "path": "scannerV4.scannerComponent", + "displayName": "Scanner V4 component", + "description": "If you want to enable the Scanner V4 component set this to \"AutoSense\"\nIf this field is not specified or set to \"Default\", the following defaulting takes place:\n* for new installations, Scanner V4 is enabled starting with ACS 4.8;\n* for upgrades to 4.8 from previous releases, Scanner V4 is disabled." + }, + { + "path": "scannerV4.indexer", + "displayName": "Indexer", + "description": "Settings pertaining to the indexer deployment.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:fieldDependency:scannerV4.scannerComponent:AutoSense" + ] + }, + { + "path": "scannerV4.db", + "displayName": "DB", + "description": "Settings pertaining to the DB deployment.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:fieldDependency:scannerV4.scannerComponent:AutoSense" + ] + }, + { + "path": "scannerV4.monitoring", + "displayName": "Monitoring", + "description": "Configures monitoring endpoint for Scanner V4. The monitoring endpoint\nallows other services to collect metrics from Scanner V4, provided in\nPrometheus compatible format.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:fieldDependency:scannerV4.scannerComponent:AutoSense" + ] + }, + { + "path": "scannerV4.db.persistence", + "displayName": "Persistence", + "description": "Configures how Scanner V4 should store its persistent data.\nYou can use a persistent volume claim (the recommended default), a host path,\nor an emptyDir volume if Scanner V4 is running on a secured cluster without default StorageClass." + }, + { + "path": "scannerV4.db.resources", + "displayName": "Resources", + "description": "Allows overriding the default resource settings for this component. Please consult the documentation\nfor an overview of default resource requirements and a sizing guide.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:resourceRequirements" + ] + }, + { + "path": "scannerV4.db.nodeSelector", + "displayName": "Node Selector", + "description": "If you want this component to only run on specific nodes, you can configure a node selector here." + }, + { + "path": "scannerV4.db.tolerations", + "displayName": "Tolerations", + "description": "If you want this component to only run on specific nodes, you can configure tolerations of tainted nodes.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:tolerations" + ] + }, + { + "path": "scannerV4.db.hostAliases", + "displayName": "Host Aliases", + "description": "HostAliases allows configuring additional hostnames to resolve in the pod's hosts file." + }, + { + "path": "scannerV4.db.persistence.persistentVolumeClaim", + "displayName": "Persistent volume claim", + "description": "Uses a Kubernetes persistent volume claim (PVC) to manage the storage location of persistent data.\nRecommended for most users." + }, + { + "path": "scannerV4.db.persistence.hostPath", + "displayName": "Host path", + "description": "Stores persistent data on a directory on the host. This is not recommended, and should only\nbe used together with a node selector (only available in YAML view)." + }, + { + "path": "scannerV4.db.persistence.hostPath.path", + "displayName": "Path", + "description": "The path on the host running Central." + }, + { + "path": "scannerV4.db.persistence.persistentVolumeClaim.claimName", + "displayName": "Claim Name", + "description": "The name of the PVC to manage persistent data. If no PVC with the given name exists, it will be\ncreated.\nThe default is: scanner-v4-db." + }, + { + "path": "scannerV4.db.persistence.persistentVolumeClaim.size", + "displayName": "Size", + "description": "The size of the persistent volume when created through the claim. If a claim was automatically created,\nthis can be used after the initial deployment to resize (grow) the volume (only supported by some\nstorage class controllers).", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:text" + ] + }, + { + "path": "scannerV4.db.persistence.persistentVolumeClaim.storageClassName", + "displayName": "Storage Class", + "description": "The name of the storage class to use for the PVC. If your cluster is not configured with a default storage\nclass, you must select a value here.", + "x-descriptors": [ + "urn:alm:descriptor:io.kubernetes:StorageClass" + ] + }, + { + "path": "scannerV4.indexer.scaling", + "displayName": "Scaling", + "description": "Controls the number of replicas and autoscaling for this component." + }, + { + "path": "scannerV4.indexer.resources", + "displayName": "Resources", + "description": "Allows overriding the default resource settings for this component. Please consult the documentation\nfor an overview of default resource requirements and a sizing guide.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:resourceRequirements" + ] + }, + { + "path": "scannerV4.indexer.nodeSelector", + "displayName": "Node Selector", + "description": "If you want this component to only run on specific nodes, you can configure a node selector here." + }, + { + "path": "scannerV4.indexer.tolerations", + "displayName": "Tolerations", + "description": "If you want this component to only run on specific nodes, you can configure tolerations of tainted nodes.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:tolerations" + ] + }, + { + "path": "scannerV4.indexer.hostAliases", + "displayName": "Host Aliases", + "description": "HostAliases allows configuring additional hostnames to resolve in the pod's hosts file." + }, + { + "path": "scannerV4.indexer.scaling.autoScaling", + "displayName": "Autoscaling", + "description": "When enabled, the number of component replicas is managed dynamically based on the load, within the limits\nspecified below.\nThe default is: Enabled." + }, + { + "path": "scannerV4.indexer.scaling.replicas", + "displayName": "Default Replicas", + "description": "When autoscaling is disabled, the number of replicas will always be configured to match this value.\nThe default is: 3." + }, + { + "path": "scannerV4.indexer.scaling.minReplicas", + "displayName": "Autoscaling Minimum Replicas", + "description": "The default is: 2.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:fieldDependency:scannerV4.indexer.scaling.autoScaling:Enabled" + ] + }, + { + "path": "scannerV4.indexer.scaling.maxReplicas", + "displayName": "Autoscaling Maximum Replicas", + "description": "The default is: 5.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:fieldDependency:scannerV4.indexer.scaling.autoScaling:Enabled" + ] + }, + { + "path": "scannerV4.monitoring.exposeEndpoint", + "displayName": "Expose Endpoint", + "description": "Expose the monitoring endpoint. A new service, \"monitoring\",\nwith port 9090, will be created as well as a network policy allowing\ninbound connections to the port." + }, + { + "path": "sensor.resources", + "displayName": "Resources", + "description": "Allows overriding the default resource settings for this component. Please consult the documentation\nfor an overview of default resource requirements and a sizing guide.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:resourceRequirements" + ] + }, + { + "path": "sensor.nodeSelector", + "displayName": "Node Selector", + "description": "If you want this component to only run on specific nodes, you can configure a node selector here." + }, + { + "path": "sensor.tolerations", + "displayName": "Tolerations", + "description": "If you want this component to only run on specific nodes, you can configure tolerations of tainted nodes.", + "x-descriptors": [ + "urn:alm:descriptor:com.tectonic.ui:tolerations" + ] + }, + { + "path": "sensor.hostAliases", + "displayName": "Host Aliases", + "description": "HostAliases allows configuring additional hostnames to resolve in the pod's hosts file." + }, + { + "path": "tls.additionalCAs", + "displayName": "Additional CAs", + "description": "Allows you to specify additional trusted Root CAs." + } + ] + }, + { + "name": "securitypolicies.config.stackrox.io", + "version": "v1alpha1", + "kind": "SecurityPolicy", + "displayName": "Security Policy", + "description": "SecurityPolicy is the schema for the policies API.", + "resources": [ + { + "name": "", + "kind": "Deployment", + "version": "v1" + } + ] + } + ] + }, + "description": "## Why use Red Hat Advanced Cluster Security for Kubernetes?\n\nProtecting cloud-native applications requires significant changes in how we approach security—we must apply controls earlier in the application development life cycle, use the infrastructure itself to apply controls, and keep up with increasingly rapid release schedules.\n\n\nRed Hat® Advanced Cluster Security for Kubernetes, powered by StackRox technology, protects your vital applications across build, deploy, and runtime. Our software deploys in your infrastructure and integrates with your DevOps tooling and workflows to deliver better security and compliance. The policy engine includes hundreds of built-in controls to enforce DevOps and security best practices, industry standards such as CIS Benchmarks and National Institute of Standards Technology (NIST) guidelines, configuration management of both containers and Kubernetes, and runtime security.\n\nRed Hat Advanced Cluster Security for Kubernetes provides a Kubernetes-native architecture for container security, enabling DevOps and InfoSec teams to operationalize security.\n\n## Features and Benefits\n\n**Kubernetes-native security:**\n1. Increases protection.\n1. Eliminates blind spots, providing staff with insights into critical vulnerabilities and threat vectors.\n1. Reduces time and costs.\n1. Reduces the time and effort needed to implement security and streamlines security analysis, investigation, and remediation using the rich context Kubernetes provides.\n1. Increases scalability and portability.\n1. Provides scalability and resiliency native to Kubernetes, avoiding operational conflict and complexity that can result from out-of-band security controls.\n\n## Using the RHACS Operator\n\n**RHACS Operator channels:**\n\nRed Hat provides the RHACS Operator by using the following update channels in the Red Hat Operator catalog:\n\n* `stable`: Provides the most recent version and patches to the most recent version.\n Using the `stable` channel and configuring automatic operator upgrades ensures that the most recent RHACS version is deployed.\n* `rhacs-x.yy` (for example, `rhacs-3.74`): Channels follow a specific RHACS version and include all patches to that version (e.g. `3.74.0`, `3.74.1`, ...).\n\nNote that the `latest` channel is deprecated and is not updated after RHACS version 3.74. Newer versions are published to the `stable` channel.\n\n**RHACS comes with two custom resources:**\n\n1. **Central Services** - Central is a deployment required on only one cluster in your environment. Users interact with RHACS via the user interface or APIs on Central. Central also sends notifications for violations and interacts with integrations. Users may select exposures for Central that best meet their environment.\n\n2. **Secured Cluster Services** - Secured cluster services are placed on each cluster you manage and report back to Central. These services allow users to enforce policies and monitor your OpenShift and Kubernetes clusters. Secured Cluster Services come as two Deployments (Sensor and Admission Controller) and one DaemonSet (Collector).\n\n### Central Services Explained\n\n| Service | Deployment Type | Description |\n| :------------------------------- | :-------------- | :-------------- |\n| Central | Deployment | Users interact with Red Hat Advanced Cluster Security through the user interface or APIs on Central. Central also sends notifications for violations and interacts with integrations. |\n| Central DB | Deployment | Central DB is a PostgreSQL-based persistent storage for the data collected and managed by Central. |\n| Scanner | Deployment | Scanner is a Red Hat developed and certified image scanner. Scanner analyzes and reports vulnerabilities for images. Scanner uses HPA to scale the number of replicas based on workload. |\n| Scanner DB | Deployment | Scanner DB is a cache for vulnerability definitions to serve vulnerability scanning use cases throughout the software development life cycle. |\n\n### Secured Cluster Services Explained\n\n| Service | Deployment Type | Description |\n| :------------------------------- | :-------------- | :-------------- |\n| Sensor | Deployment | Sensor analyzes and monitors Kubernetes in secured clusters. |\n| Collector | DaemonSet | Analyzes and monitors container activity on Kubernetes nodes.|\n| Admission Controller | Deployment | ValidatingWebhookConfiguration for enforcing policies in the deploy lifecycle. |\n\n### Central Custom Resource\n\nCentral Services is the configuration template for RHACS Central deployment. For all customization options, please visit the RHACS documentation.\n\n### SecuredCluster Custom Resource\n\nSecuredCluster is the configuration template for the RHACS Secured Cluster services.\n\n#### Installation Prerequisites\n\nBefore deploying a SecuredCluster resource, you need to create a cluster init bundle secret.\n\n- **Through the RHACS UI:** To create a cluster init bundle secret through the RHACS UI, navigate to `Platform Configuration > Clusters`, and then click `Manage Tokens` in the top-right corner. Select `Cluster Init Bundle`, and click `Generate Bundle`. Select `Download Kubernetes secrets file`, and store the file under a name of your choice (for example, `cluster-init-secrets.yaml`).\n- **Through the `roxctl` CLI:** To create a cluster init bundle secret through the `roxctl` command-line interface, run `roxctl central init-bundles generate --output-secrets `. Choose any `name` and `file name` that you like.\n\nRun `oc project` and check that it reports the correct namespace where you intend to deploy SecuredCluster. In case you want to install SecuredCluster to a different namespace, select it by running `oc project `.\nThen, run `oc create -f init-bundle.yaml`. If you have chosen a name other than `init-bundle.yaml`, specify that file name instead.\n\n#### Required Fields\n\nThe following attributes are required to be specified. For all customization options, please visit the RHACS documentation.\n\n| Parameter | Description |\n| :----------------- | :-------------- |\n| `clusterName` | The name given to this secured cluster. The cluster will appear with this name in RHACS user interface. |\n| `centralEndpoint` | This field should specify the address of the Central endpoint, including the port number. `centralEndpoint` may be omitted if this SecuredCluster Custom Resource is in the same cluster and namespace as Central. |\n", + "displayName": "Advanced Cluster Security for Kubernetes", + "installModes": [ + { + "type": "OwnNamespace", + "supported": false + }, + { + "type": "SingleNamespace", + "supported": false + }, + { + "type": "MultiNamespace", + "supported": false + }, + { + "type": "AllNamespaces", + "supported": true + } + ], + "keywords": [ + "advanced-cluster-security", + "stackrox", + "security", + "vulnerabilities", + "compliance", + "devsecops", + "monitoring", + "scanning", + "runtime-security", + "network policy", + "configuration", + "risk" + ], + "labels": { + "operatorframework.io/arch.amd64": "supported", + "operatorframework.io/arch.arm64": "supported", + "operatorframework.io/arch.ppc64le": "supported", + "operatorframework.io/arch.s390x": "supported" + }, + "links": [ + { + "name": "Red Hat Advanced Cluster Security Documentation", + "url": "https://docs.openshift.com/acs/welcome/" + }, + { + "name": "DataSheet", + "url": "https://www.redhat.com/en/resources/advanced-cluster-security-for-kubernetes-datasheet" + }, + { + "name": "Support Policy", + "url": "https://access.redhat.com/node/5822721" + }, + { + "name": "Community Site", + "url": "https://www.stackrox.io/" + } + ], + "maintainers": [ + { + "name": "Advanced Cluster Security product team", + "email": "rhacs-pm@redhat.com" + } + ], + "maturity": "alpha", + "minKubeVersion": "1.15.0", + "provider": { + "name": "Red Hat" + } + } + } + ], + "relatedImages": [ + { + "name": "central_db", + "image": "registry.redhat.io/advanced-cluster-security/rhacs-central-db-rhel8@sha256:3967c7c91238516bfd5df4a893e0df644b8aca0d6b249dbd2e94c063dad12fba" + }, + { + "name": "collector", + "image": "registry.redhat.io/advanced-cluster-security/rhacs-collector-rhel8@sha256:591dcc1532ae2e40a7e78e117f7c02de81c0742f48b97436c2e4a7fd5a9fe649" + }, + { + "name": "main", + "image": "registry.redhat.io/advanced-cluster-security/rhacs-main-rhel8@sha256:26e01b4554d6ff2d2a1333ff86244f61a037b61bb3b26a14b0927d245a1b0c21" + }, + { + "name": "", + "image": "registry.redhat.io/advanced-cluster-security/rhacs-operator-bundle@sha256:02a50a53dddbbdd749b0b6cc01f555308ab3c16045130d07483bfddd6861de42" + }, + { + "name": "manager", + "image": "registry.redhat.io/advanced-cluster-security/rhacs-rhel8-operator@sha256:3471d6c2b77ad4be863f7d5b0e5da5cd8a9c267126c003424c27b91e1cbf1b24" + }, + { + "name": "roxctl", + "image": "registry.redhat.io/advanced-cluster-security/rhacs-roxctl-rhel8@sha256:cc741551497f949a2c337a6fed0313c807cc46d0ad5adc281505146f22fb356a" + }, + { + "name": "scanner_db", + "image": "registry.redhat.io/advanced-cluster-security/rhacs-scanner-db-rhel8@sha256:8281d43a5b1f2cfc7893d812703e283f5f5c30617733b531d86dc201fd1bcf9f" + }, + { + "name": "scanner_db_slim", + "image": "registry.redhat.io/advanced-cluster-security/rhacs-scanner-db-slim-rhel8@sha256:9dab85eabbae8cc51ea9288aeaf0ac47009d293006264b6f88991815772d9df1" + }, + { + "name": "scanner", + "image": "registry.redhat.io/advanced-cluster-security/rhacs-scanner-rhel8@sha256:a283a8e651a4d6fc991c4801e8480f31fb72b6305b0b9c8741733c9847235e65" + }, + { + "name": "scanner_slim", + "image": "registry.redhat.io/advanced-cluster-security/rhacs-scanner-slim-rhel8@sha256:6dd9e4842988728a930451b25822c1e049cd2f6c7b3e358df18e74ca15b1f972" + }, + { + "name": "scanner_v4_db", + "image": "registry.redhat.io/advanced-cluster-security/rhacs-scanner-v4-db-rhel8@sha256:5062cf77952f21fb428ff7a230c3f692bbb73f888ab102e5ac197a352415b18a" + }, + { + "name": "scanner_v4", + "image": "registry.redhat.io/advanced-cluster-security/rhacs-scanner-v4-rhel8@sha256:2bd192a9f1960af7008341a39ff3379c121860a8c1145f120007e106bab582cc" + } + ] +} +{ + "schema": "olm.bundle", + "name": "rhacs-operator.v4.9.1", + "package": "rhacs-operator", + "image": "registry.redhat.io/advanced-cluster-security/rhacs-operator-bundle@sha256:9312c096fef02f70b642551338fdf968ec6657ff0385f51c13767d8b29afc76d", + "properties": [ + { + "type": "olm.gvk", + "value": { + "group": "config.stackrox.io", + "kind": "SecurityPolicy", + "version": "v1alpha1" + } + }, + { + "type": "olm.gvk", + "value": { + "group": "platform.stackrox.io", + "kind": "Central", + "version": "v1alpha1" + } + }, + { + "type": "olm.gvk", + "value": { + "group": "platform.stackrox.io", + "kind": "SecuredCluster", + "version": "v1alpha1" + } + }, + { + "type": "olm.package", + "value": { + "packageName": "rhacs-operator", + "version": "4.9.1" + } + }, + { + "type": "olm.csv.metadata", + "value": { + "annotations": { + "alm-examples": "[\n {\n \"apiVersion\": \"platform.stackrox.io/v1alpha1\",\n \"kind\": \"Central\",\n \"metadata\": {\n \"name\": \"stackrox-central-services\",\n \"namespace\": \"stackrox\"\n },\n \"spec\": {\n \"central\": {\n \"exposure\": {\n \"route\": {\n \"enabled\": true\n }\n }\n }\n }\n },\n {\n \"apiVersion\": \"platform.stackrox.io/v1alpha1\",\n \"kind\": \"SecuredCluster\",\n \"metadata\": {\n \"name\": \"stackrox-secured-cluster-services\",\n \"namespace\": \"stackrox\"\n },\n \"spec\": {\n \"clusterName\": \"my-cluster\"\n }\n }\n]", + "capabilities": "Seamless Upgrades", + "categories": "Security", + "containerImage": "registry.redhat.io/advanced-cluster-security/rhacs-rhel8-operator@sha256:68d9c77d33b50fde89121bc62ffb8a2fe8b43f50ebf0ec964938d33ffef17874", + "createdAt": "2025-11-20T10:17:44.970647+00:00", + "description": "Red Hat Advanced Cluster Security (RHACS) operator provisions the services necessary to secure each of your OpenShift and Kubernetes clusters.", + "features.operators.openshift.io/cnf": "false", + "features.operators.openshift.io/cni": "false", + "features.operators.openshift.io/csi": "false", + "features.operators.openshift.io/disconnected": "true", + "features.operators.openshift.io/fips-compliant": "true", + "features.operators.openshift.io/proxy-aware": "true", + "features.operators.openshift.io/tls-profiles": "false", + "features.operators.openshift.io/token-auth-aws": "false", + "features.operators.openshift.io/token-auth-azure": "false", + "features.operators.openshift.io/token-auth-gcp": "false", + "olm.skipRange": ">= 4.8.0 < 4.9.1", "operatorframework.io/suggested-namespace": "rhacs-operator", "operators.openshift.io/infrastructure-features": "[\"disconnected\", \"proxy-aware\"]", "operators.openshift.io/valid-subscription": "[\"OpenShift Platform Plus\", \"Red Hat Advanced Cluster Security\"]", @@ -167317,6 +169165,13 @@ }, "message": "This version is no longer supported. Switch to the `stable` channel or a channel for a more recent version that is still supported. Find supported versions in the RHACS support policy document: https://access.redhat.com/support/policy/updates/rhacs" }, + { + "reference": { + "schema": "olm.channel", + "name": "rhacs-4.7" + }, + "message": "This version is no longer supported. Switch to the `stable` channel or a channel for a more recent version that is still supported. Find supported versions in the RHACS support policy document: https://access.redhat.com/support/policy/updates/rhacs" + }, { "reference": { "schema": "olm.bundle", @@ -168044,6 +169899,76 @@ "name": "rhacs-operator.v4.6.10" }, "message": "This Operator version is no longer supported. Use a more recent version that is supported. Find supported versions in the RHACS support policy document: https://access.redhat.com/support/policy/updates/rhacs" + }, + { + "reference": { + "schema": "olm.bundle", + "name": "rhacs-operator.v4.7.0" + }, + "message": "This Operator version is no longer supported. Use a more recent version that is supported. Find supported versions in the RHACS support policy document: https://access.redhat.com/support/policy/updates/rhacs" + }, + { + "reference": { + "schema": "olm.bundle", + "name": "rhacs-operator.v4.7.1" + }, + "message": "This Operator version is no longer supported. Use a more recent version that is supported. Find supported versions in the RHACS support policy document: https://access.redhat.com/support/policy/updates/rhacs" + }, + { + "reference": { + "schema": "olm.bundle", + "name": "rhacs-operator.v4.7.2" + }, + "message": "This Operator version is no longer supported. Use a more recent version that is supported. Find supported versions in the RHACS support policy document: https://access.redhat.com/support/policy/updates/rhacs" + }, + { + "reference": { + "schema": "olm.bundle", + "name": "rhacs-operator.v4.7.3" + }, + "message": "This Operator version is no longer supported. Use a more recent version that is supported. Find supported versions in the RHACS support policy document: https://access.redhat.com/support/policy/updates/rhacs" + }, + { + "reference": { + "schema": "olm.bundle", + "name": "rhacs-operator.v4.7.4" + }, + "message": "This Operator version is no longer supported. Use a more recent version that is supported. Find supported versions in the RHACS support policy document: https://access.redhat.com/support/policy/updates/rhacs" + }, + { + "reference": { + "schema": "olm.bundle", + "name": "rhacs-operator.v4.7.5" + }, + "message": "This Operator version is no longer supported. Use a more recent version that is supported. Find supported versions in the RHACS support policy document: https://access.redhat.com/support/policy/updates/rhacs" + }, + { + "reference": { + "schema": "olm.bundle", + "name": "rhacs-operator.v4.7.6" + }, + "message": "This Operator version is no longer supported. Use a more recent version that is supported. Find supported versions in the RHACS support policy document: https://access.redhat.com/support/policy/updates/rhacs" + }, + { + "reference": { + "schema": "olm.bundle", + "name": "rhacs-operator.v4.7.7" + }, + "message": "This Operator version is no longer supported. Use a more recent version that is supported. Find supported versions in the RHACS support policy document: https://access.redhat.com/support/policy/updates/rhacs" + }, + { + "reference": { + "schema": "olm.bundle", + "name": "rhacs-operator.v4.7.8" + }, + "message": "This Operator version is no longer supported. Use a more recent version that is supported. Find supported versions in the RHACS support policy document: https://access.redhat.com/support/policy/updates/rhacs" + }, + { + "reference": { + "schema": "olm.bundle", + "name": "rhacs-operator.v4.7.9" + }, + "message": "This Operator version is no longer supported. Use a more recent version that is supported. Find supported versions in the RHACS support policy document: https://access.redhat.com/support/policy/updates/rhacs" } ] } diff --git a/catalog-template.yaml b/catalog-template.yaml index 73e87af8..a6a74321 100644 --- a/catalog-template.yaml +++ b/catalog-template.yaml @@ -1978,6 +1978,9 @@ entries: - name: rhacs-operator.v4.8.7 replaces: rhacs-operator.v4.8.6 skipRange: ">= 4.7.0 < 4.8.7" + - name: rhacs-operator.v4.8.8-rc.4 + replaces: rhacs-operator.v4.8.7 + skipRange: ">= 4.7.0 < 4.8.8-rc.4" - schema: olm.channel name: rhacs-4.9 package: rhacs-operator @@ -2209,8 +2212,11 @@ entries: - name: rhacs-operator.v4.8.7 replaces: rhacs-operator.v4.8.6 skipRange: ">= 4.7.0 < 4.8.7" - - name: rhacs-operator.v4.9.0 + - name: rhacs-operator.v4.8.8-rc.4 replaces: rhacs-operator.v4.8.7 + skipRange: ">= 4.7.0 < 4.8.8-rc.4" + - name: rhacs-operator.v4.9.0 + replaces: rhacs-operator.v4.8.8-rc.4 skipRange: ">= 4.8.0 < 4.9.0" - name: rhacs-operator.v4.9.1 replaces: rhacs-operator.v4.9.0 @@ -2449,8 +2455,11 @@ entries: - name: rhacs-operator.v4.8.7 replaces: rhacs-operator.v4.8.6 skipRange: ">= 4.7.0 < 4.8.7" - - name: rhacs-operator.v4.9.0 + - name: rhacs-operator.v4.8.8-rc.4 replaces: rhacs-operator.v4.8.7 + skipRange: ">= 4.7.0 < 4.8.8-rc.4" + - name: rhacs-operator.v4.9.0 + replaces: rhacs-operator.v4.8.8-rc.4 skipRange: ">= 4.8.0 < 4.9.0" - name: rhacs-operator.v4.9.1 replaces: rhacs-operator.v4.9.0 @@ -2545,6 +2554,10 @@ entries: schema: olm.channel name: rhacs-4.6 message: "This version is no longer supported. Switch to the `stable` channel or a channel for a more recent version that is still supported. Find supported versions in the RHACS support policy document: https://access.redhat.com/support/policy/updates/rhacs" + - reference: + schema: olm.channel + name: rhacs-4.7 + message: "This version is no longer supported. Switch to the `stable` channel or a channel for a more recent version that is still supported. Find supported versions in the RHACS support policy document: https://access.redhat.com/support/policy/updates/rhacs" - reference: schema: olm.bundle name: rhacs-operator.v3.62.0 @@ -2961,6 +2974,46 @@ entries: schema: olm.bundle name: rhacs-operator.v4.6.10 message: "This Operator version is no longer supported. Use a more recent version that is supported. Find supported versions in the RHACS support policy document: https://access.redhat.com/support/policy/updates/rhacs" + - reference: + schema: olm.bundle + name: rhacs-operator.v4.7.0 + message: "This Operator version is no longer supported. Use a more recent version that is supported. Find supported versions in the RHACS support policy document: https://access.redhat.com/support/policy/updates/rhacs" + - reference: + schema: olm.bundle + name: rhacs-operator.v4.7.1 + message: "This Operator version is no longer supported. Use a more recent version that is supported. Find supported versions in the RHACS support policy document: https://access.redhat.com/support/policy/updates/rhacs" + - reference: + schema: olm.bundle + name: rhacs-operator.v4.7.2 + message: "This Operator version is no longer supported. Use a more recent version that is supported. Find supported versions in the RHACS support policy document: https://access.redhat.com/support/policy/updates/rhacs" + - reference: + schema: olm.bundle + name: rhacs-operator.v4.7.3 + message: "This Operator version is no longer supported. Use a more recent version that is supported. Find supported versions in the RHACS support policy document: https://access.redhat.com/support/policy/updates/rhacs" + - reference: + schema: olm.bundle + name: rhacs-operator.v4.7.4 + message: "This Operator version is no longer supported. Use a more recent version that is supported. Find supported versions in the RHACS support policy document: https://access.redhat.com/support/policy/updates/rhacs" + - reference: + schema: olm.bundle + name: rhacs-operator.v4.7.5 + message: "This Operator version is no longer supported. Use a more recent version that is supported. Find supported versions in the RHACS support policy document: https://access.redhat.com/support/policy/updates/rhacs" + - reference: + schema: olm.bundle + name: rhacs-operator.v4.7.6 + message: "This Operator version is no longer supported. Use a more recent version that is supported. Find supported versions in the RHACS support policy document: https://access.redhat.com/support/policy/updates/rhacs" + - reference: + schema: olm.bundle + name: rhacs-operator.v4.7.7 + message: "This Operator version is no longer supported. Use a more recent version that is supported. Find supported versions in the RHACS support policy document: https://access.redhat.com/support/policy/updates/rhacs" + - reference: + schema: olm.bundle + name: rhacs-operator.v4.7.8 + message: "This Operator version is no longer supported. Use a more recent version that is supported. Find supported versions in the RHACS support policy document: https://access.redhat.com/support/policy/updates/rhacs" + - reference: + schema: olm.bundle + name: rhacs-operator.v4.7.9 + message: "This Operator version is no longer supported. Use a more recent version that is supported. Find supported versions in the RHACS support policy document: https://access.redhat.com/support/policy/updates/rhacs" - schema: olm.bundle image: registry.redhat.io/advanced-cluster-security/rhacs-operator-bundle@sha256:6cdcf20771f9c46640b466f804190d00eaf2e59caee6d420436e78b283d177bf - schema: olm.bundle @@ -3205,6 +3258,8 @@ entries: image: registry.redhat.io/advanced-cluster-security/rhacs-operator-bundle@sha256:57a4b1a83e9fde88b7036214af7755f7596af46b1d80c2a3487a52fcb0e58451 - schema: olm.bundle image: registry.redhat.io/advanced-cluster-security/rhacs-operator-bundle@sha256:24481e3ee1dab49893e7f5891e97e3287ec6f35105b6e927ce0acc7da24a6982 +- schema: olm.bundle + image: quay.io/rhacs-eng/release-operator-bundle@sha256:16b8f6ecbea80980be053303cf886c5b4942230fb208c8f30c85bca2a9ef375d - schema: olm.bundle image: registry.redhat.io/advanced-cluster-security/rhacs-operator-bundle@sha256:02a50a53dddbbdd749b0b6cc01f555308ab3c16045130d07483bfddd6861de42 - schema: olm.bundle