diff --git a/src/agent/samples/policy/yaml/deployment/deployment-busybox.yaml b/src/agent/samples/policy/yaml/deployment/deployment-busybox.yaml index 8c145c54c72b..9c9fabf5772e 100644 --- a/src/agent/samples/policy/yaml/deployment/deployment-busybox.yaml +++ b/src/agent/samples/policy/yaml/deployment/deployment-busybox.yaml @@ -2,20 +2,20 @@ apiVersion: apps/v1 kind: Deployment metadata: - name: busybox + name: busybox-deployment spec: replicas: 1 selector: matchLabels: - app: busybox + app: busybox-deployment template: metadata: labels: - app: busybox + app: busybox-deployment annotations: - io.katacontainers.config.agent.policy: cGFja2FnZSBjb2NvX3BvbGljeQoKaW1wb3J0IGZ1dHVyZS5rZXl3b3Jkcy5pbgppbXBvcnQgZnV0dXJlLmtleXdvcmRzLmV2ZXJ5CgppbXBvcnQgaW5wdXQKCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIyBEZWZhdWx0IHZhbHVlczoKIwojIC0gdHJ1ZSBmb3IgcmVxdWVzdHMgdGhhdCBhcmUgYWxsb3dlZCBieSBkZWZhdWx0LgojIC0gZmFsc2UgZm9yIHJlcXVlc3RzIHRoYXQgaGF2ZSBhZGRpdGlvbmFsIHBvbGljeSBydWxlcywgZGVmaW5lZCBiZWxvdy4KIyAtIFJlcXVlc3RzIHRoYXQgYXJlIG5vdCBsaXN0ZWQgaGVyZSBnZXQgcmVqZWN0ZWQgYnkgZGVmYXVsdC4KCiMgTW9yZSBkZXRhaWxlZCBwb2xpY3kgcnVsZXMgYXJlIGJlbG93LgpkZWZhdWx0IENyZWF0ZUNvbnRhaW5lclJlcXVlc3QgOj0gZmFsc2UKCiMgUmVxdWVzdHMgdGhhdCBhcmUgYWx3YXlzIGFsbG93ZWQuCmRlZmF1bHQgQ3JlYXRlU2FuZGJveFJlcXVlc3QgOj0gdHJ1ZQpkZWZhdWx0IERlc3Ryb3lTYW5kYm94UmVxdWVzdCA6PSB0cnVlCmRlZmF1bHQgR2V0T09NRXZlbnRSZXF1ZXN0IDo9IHRydWUKZGVmYXVsdCBHdWVzdERldGFpbHNSZXF1ZXN0IDo9IHRydWUKZGVmYXVsdCBPbmxpbmVDUFVNZW1SZXF1ZXN0IDo9IHRydWUKZGVmYXVsdCBQdWxsSW1hZ2VSZXF1ZXN0IDo9IHRydWUKZGVmYXVsdCBSZWFkU3RyZWFtUmVxdWVzdCA6PSB0cnVlCmRlZmF1bHQgUmVtb3ZlQ29udGFpbmVyUmVxdWVzdCA6PSB0cnVlCmRlZmF1bHQgU2V0UG9saWN5UmVxdWVzdCA6PSB0cnVlCmRlZmF1bHQgU2lnbmFsUHJvY2Vzc1JlcXVlc3QgOj0gdHJ1ZQpkZWZhdWx0IFN0YXJ0Q29udGFpbmVyUmVxdWVzdCA6PSB0cnVlCmRlZmF1bHQgU3RhdHNDb250YWluZXJSZXF1ZXN0IDo9IHRydWUKZGVmYXVsdCBUdHlXaW5SZXNpemVSZXF1ZXN0IDo9IHRydWUKZGVmYXVsdCBVcGRhdGVJbnRlcmZhY2VSZXF1ZXN0IDo9IHRydWUKZGVmYXVsdCBVcGRhdGVSb3V0ZXNSZXF1ZXN0IDo9IHRydWUKZGVmYXVsdCBXYWl0UHJvY2Vzc1JlcXVlc3QgOj0gdHJ1ZQpkZWZhdWx0IFdyaXRlU3RyZWFtUmVxdWVzdCA6PSB0cnVlCgoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwpDcmVhdGVDb250YWluZXJSZXF1ZXN0IHsKICAgIHBvbGljeV9jb250YWluZXIgOj0gcG9saWN5X2RhdGEuY29udGFpbmVyc1tfXQogICAgcG9saWN5X29jaSA6PSBwb2xpY3lfY29udGFpbmVyLm9jaQogICAgcG9saWN5X3N0b3JhZ2VzIDo9IHBvbGljeV9jb250YWluZXIuc3RvcmFnZXMKCiAgICBpbnB1dF9vY2kgOj0gaW5wdXQub2NpCiAgICBpbnB1dF9zdG9yYWdlcyA6PSBpbnB1dC5zdG9yYWdlcwoKICAgIHByaW50KCJDcmVhdGVDb250YWluZXJSZXF1ZXN0IiwgInBvbGljeV9vY2kub2NpVmVyc2lvbiIpCiAgICBwb2xpY3lfb2NpLm9jaVZlcnNpb24gICAgID09IGlucHV0X29jaS5vY2lWZXJzaW9uCgogICAgcHJpbnQoIkNyZWF0ZUNvbnRhaW5lclJlcXVlc3QiLCAicG9saWN5X29jaS5yb290LnJlYWRvbmx5IikKICAgIHBvbGljeV9vY2kucm9vdC5yZWFkb25seSAgPT0gaW5wdXRfb2NpLnJvb3QucmVhZG9ubHkKCiAgICBwcmludCgiQ3JlYXRlQ29udGFpbmVyUmVxdWVzdCIsICJhbGxvd19ieV9hbm5vdGF0aW9ucyIpCiAgICBhbGxvd19ieV9hbm5vdGF0aW9ucyhwb2xpY3lfb2NpLCBpbnB1dF9vY2ksIHBvbGljeV9zdG9yYWdlcywgaW5wdXRfc3RvcmFnZXMpCgogICAgcHJpbnQoIkNyZWF0ZUNvbnRhaW5lclJlcXVlc3QiLCAiYWxsb3dfbGludXgiKQogICAgYWxsb3dfbGludXgocG9saWN5X29jaSwgaW5wdXRfb2NpKQoKICAgIHByaW50KCJDcmVhdGVDb250YWluZXJSZXF1ZXN0IiwgInN1Y2Nlc3MiKQp9CgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMgR2V0ICJpby5rdWJlcm5ldGVzLmNyaS5zYW5kYm94LW5hbWUiLCBhbmQgY29ycmVsYXRlIGl0cyB2YWx1ZSB3aXRoIG90aGVyCiMgYW5ub3RhdGlvbnMgYW5kIHByb2Nlc3MgZmllbGRzLgoKYWxsb3dfYnlfYW5ub3RhdGlvbnMocG9saWN5X29jaSwgaW5wdXRfb2NpLCBwb2xpY3lfc3RvcmFnZXMsIGlucHV0X3N0b3JhZ2VzKSB7CiAgICBwcmludCgiYWxsb3dfYnlfYW5ub3RhdGlvbnMiLCAibm8gcG9saWN5IGlvLmt1YmVybmV0ZXMuY3JpLnNhbmRib3gtbmFtZSIpCiAgICBub3QgcG9saWN5X29jaS5hbm5vdGF0aW9uc1siaW8ua3ViZXJuZXRlcy5jcmkuc2FuZGJveC1uYW1lIl0KCiAgICBpbnB1dF9zYW5kYm94X25hbWUgOj0gaW5wdXRfb2NpLmFubm90YXRpb25zWyJpby5rdWJlcm5ldGVzLmNyaS5zYW5kYm94LW5hbWUiXQoKICAgIHByaW50KCJhbGxvd19ieV9hbm5vdGF0aW9ucyIsICJhbGxvd19ieV9zYW5kYm94X25hbWUiKQogICAgYWxsb3dfYnlfc2FuZGJveF9uYW1lKHBvbGljeV9vY2ksIGlucHV0X29jaSwgcG9saWN5X3N0b3JhZ2VzLCBpbnB1dF9zdG9yYWdlcywgaW5wdXRfc2FuZGJveF9uYW1lKQoKICAgIHByaW50KCJhbGxvd19ieV9hbm5vdGF0aW9ucyIsICJzdWNjZXNzIikKfQphbGxvd19ieV9hbm5vdGF0aW9ucyhwb2xpY3lfb2NpLCBpbnB1dF9vY2ksIHBvbGljeV9zdG9yYWdlcywgaW5wdXRfc3RvcmFnZXMpIHsKICAgIHByaW50KCJhbGxvd19ieV9hbm5vdGF0aW9ucyIsICJpby5rdWJlcm5ldGVzLmNyaS5zYW5kYm94LW5hbWUiKQogICAgcG9saWN5X3NhbmRib3hfbmFtZSA6PSBwb2xpY3lfb2NpLmFubm90YXRpb25zWyJpby5rdWJlcm5ldGVzLmNyaS5zYW5kYm94LW5hbWUiXQogICAgaW5wdXRfc2FuZGJveF9uYW1lIDo9IGlucHV0X29jaS5hbm5vdGF0aW9uc1siaW8ua3ViZXJuZXRlcy5jcmkuc2FuZGJveC1uYW1lIl0KICAgIHBvbGljeV9zYW5kYm94X25hbWUgPT0gaW5wdXRfc2FuZGJveF9uYW1lCgogICAgcHJpbnQoImFsbG93X2J5X2Fubm90YXRpb25zIiwgImFsbG93X2J5X3NhbmRib3hfbmFtZSIpCiAgICBhbGxvd19ieV9zYW5kYm94X25hbWUocG9saWN5X29jaSwgaW5wdXRfb2NpLCBwb2xpY3lfc3RvcmFnZXMsIGlucHV0X3N0b3JhZ2VzLCBpbnB1dF9zYW5kYm94X25hbWUpCgogICAgcHJpbnQoImFsbG93X2J5X2Fubm90YXRpb25zIiwgInN1Y2Nlc3MiKQp9CgphbGxvd19ieV9zYW5kYm94X25hbWUocG9saWN5X29jaSwgaW5wdXRfb2NpLCBwb2xpY3lfc3RvcmFnZXMsIGlucHV0X3N0b3JhZ2VzLCBzYW5kYm94X25hbWUpIHsKICAgIHByaW50KCJhbGxvd19ieV9zYW5kYm94X25hbWUiLCAiYWxsb3dfYnlfY29udGFpbmVyX3R5cGVzIikKICAgIGFsbG93X2J5X2NvbnRhaW5lcl90eXBlcyhwb2xpY3lfb2NpLCBpbnB1dF9vY2ksIHNhbmRib3hfbmFtZSkKCiAgICBwcmludCgiYWxsb3dfYnlfc2FuZGJveF9uYW1lIiwgImFsbG93X2J5X2J1bmRsZV9vcl9zYW5kYm94X2lkIikKICAgIGFsbG93X2J5X2J1bmRsZV9vcl9zYW5kYm94X2lkKHBvbGljeV9vY2ksIGlucHV0X29jaSwgcG9saWN5X3N0b3JhZ2VzLCBpbnB1dF9zdG9yYWdlcykKCiAgICBwcmludCgiYWxsb3dfYnlfc2FuZGJveF9uYW1lIiwgImFsbG93X3NhbmRib3hfbmFtZXNwYWNlIikKICAgIGFsbG93X3NhbmRib3hfbmFtZXNwYWNlKHBvbGljeV9vY2ksIGlucHV0X29jaSkKCiAgICBwcmludCgiYWxsb3dfYnlfc2FuZGJveF9uYW1lIiwgImFsbG93X3Byb2Nlc3MiKQogICAgYWxsb3dfcHJvY2Vzcyhwb2xpY3lfb2NpLCBpbnB1dF9vY2ksIHNhbmRib3hfbmFtZSkKCiAgICBwcmludCgiYWxsb3dfYnlfc2FuZGJveF9uYW1lIiwgInN1Y2Nlc3MiKQp9CgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMgLSBDaGVjayB0aGF0IHRoZSAiaW8ua3ViZXJuZXRlcy5jcmkuY29udGFpbmVyLXR5cGUiIGFuZAojICAgImlvLmthdGFjb250YWluZXJzLnBrZy5vY2kuY29udGFpbmVyX3R5cGUiIGFubm90YXRpb25zCiMgICBkZXNpZ25hdGUgdGhlIGV4cGVjdGVkIHR5cGUgLSBlaXRoZXIgYSAic2FuZGJveCIgb3IgYQojICAgImNvbnRhaW5lciIgdHlwZS4KIwojIC0gVGhlbiwgdmFsaWRhdGUgb3RoZXIgYW5ub3RhdGlvbnMgYmFzZWQgb24gdGhlIGFjdHVhbAojICAgInNhbmRib3giIG9yICJjb250YWluZXIiIHZhbHVlIGZyb20gdGhlIGlucHV0IGNvbnRhaW5lci4KCmFsbG93X2J5X2NvbnRhaW5lcl90eXBlcyhwb2xpY3lfb2NpLCBpbnB1dF9vY2ksIHNhbmRib3hfbmFtZSkgewogICAgcG9saWN5X2NyaV90eXBlIDo9IHBvbGljeV9vY2kuYW5ub3RhdGlvbnNbImlvLmt1YmVybmV0ZXMuY3JpLmNvbnRhaW5lci10eXBlIl0KICAgIGlucHV0X2NyaV90eXBlIDo9IGlucHV0X29jaS5hbm5vdGF0aW9uc1siaW8ua3ViZXJuZXRlcy5jcmkuY29udGFpbmVyLXR5cGUiXQogICAgcG9saWN5X2NyaV90eXBlID09IGlucHV0X2NyaV90eXBlCgogICAgcHJpbnQoImFsbG93X2J5X2NvbnRhaW5lcl90eXBlcyIsICJhbGxvd19ieV9jb250YWluZXJfdHlwZSIpCiAgICBhbGxvd19ieV9jb250YWluZXJfdHlwZShpbnB1dF9jcmlfdHlwZSwgcG9saWN5X29jaSwgaW5wdXRfb2NpLCBzYW5kYm94X25hbWUpCgogICAgcHJpbnQoImFsbG93X2J5X2NvbnRhaW5lcl90eXBlcyIsICJzdWNjZXNzIikKfQoKIyBSdWxlcyBhcHBsaWNhYmxlIHRvIHRoZSAic2FuZGJveCIgY29udGFpbmVyIHR5cGUKYWxsb3dfYnlfY29udGFpbmVyX3R5cGUoaW5wdXRfY3JpX3R5cGUsIHBvbGljeV9vY2ksIGlucHV0X29jaSwgc2FuZGJveF9uYW1lKSB7CiAgICBpbnB1dF9jcmlfdHlwZSA9PSAic2FuZGJveCIKICAgIHByaW50KCJhbGxvd19ieV9jb250YWluZXJfdHlwZSIsICJzYW5kYm94IikKCiAgICAjIFRPRE86IEVuYWJsZSBob3N0bmFtZSB2YWxpZGF0aW9uIGFmdGVyIHJlc2VhcmNoaW5nIGhvdyB0aGF0IHdvcmtzCiAgICAjICAgICAgIGZvciBwb2RzIGluY2x1ZGluZyBtdWx0aXBsZSBjb250YWluZXJzLgogICAgI3BvbGljeV9vY2kuaG9zdG5hbWUgPT0gaW5wdXRfb2NpLmhvc3RuYW1lCgogICAgaW5wdXRfa2F0YV90eXBlIDo9IGlucHV0X29jaS5hbm5vdGF0aW9uc1siaW8ua2F0YWNvbnRhaW5lcnMucGtnLm9jaS5jb250YWluZXJfdHlwZSJdCiAgICBpbnB1dF9rYXRhX3R5cGUgPT0gInBvZF9zYW5kYm94IgoKICAgIGFsbG93X3NhbmRib3hfY29udGFpbmVyX25hbWUocG9saWN5X29jaSwgaW5wdXRfb2NpKQogICAgYWxsb3dfc2FuZGJveF9pbWFnZV9uYW1lKHBvbGljeV9vY2ksIGlucHV0X29jaSkKICAgIGFsbG93X3NhbmRib3hfbmV0X25hbWVzcGFjZShwb2xpY3lfb2NpLCBpbnB1dF9vY2kpCiAgICBhbGxvd19zYW5kYm94X2xvZ19kaXJlY3RvcnkocG9saWN5X29jaSwgaW5wdXRfb2NpLCBzYW5kYm94X25hbWUpCgogICAgcHJpbnQoImFsbG93X2J5X2NvbnRhaW5lcl90eXBlIiwgInN1Y2Nlc3MiKQp9CgojIFJ1bGVzIGFwcGxpY2FibGUgdG8gdGhlICJjb250YWluZXIiIGNvbnRhaW5lciB0eXBlCmFsbG93X2J5X2NvbnRhaW5lcl90eXBlKGlucHV0X2NyaV90eXBlLCBwb2xpY3lfb2NpLCBpbnB1dF9vY2ksIHNhbmRib3hfbmFtZSkgewogICAgaW5wdXRfY3JpX3R5cGUgPT0gImNvbnRhaW5lciIKICAgIHByaW50KCJhbGxvd19ieV9jb250YWluZXJfdHlwZSIsICJjb250YWluZXIiKQoKICAgIGlucHV0X2thdGFfdHlwZSA6PSBpbnB1dF9vY2kuYW5ub3RhdGlvbnNbImlvLmthdGFjb250YWluZXJzLnBrZy5vY2kuY29udGFpbmVyX3R5cGUiXQogICAgcHJpbnQoImFsbG93X2J5X2NvbnRhaW5lcl90eXBlIiwgaW5wdXRfa2F0YV90eXBlKQogICAgaW5wdXRfa2F0YV90eXBlID09ICJwb2RfY29udGFpbmVyIgoKICAgIHByaW50KCJhbGxvd19ieV9jb250YWluZXJfdHlwZSIsICJhbGxvd19jb250YWluZXJfbmFtZSIpCiAgICBhbGxvd19jb250YWluZXJfbmFtZShwb2xpY3lfb2NpLCBpbnB1dF9vY2kpCgogICAgcHJpbnQoImFsbG93X2J5X2NvbnRhaW5lcl90eXBlIiwgImFsbG93X2ltYWdlX25hbWUiKQogICAgYWxsb3dfaW1hZ2VfbmFtZShwb2xpY3lfb2NpLCBpbnB1dF9vY2kpCgogICAgcHJpbnQoImFsbG93X2J5X2NvbnRhaW5lcl90eXBlIiwgImFsbG93X25ldF9uYW1lc3BhY2UiKQogICAgYWxsb3dfbmV0X25hbWVzcGFjZShwb2xpY3lfb2NpLCBpbnB1dF9vY2kpCgogICAgcHJpbnQoImFsbG93X2J5X2NvbnRhaW5lcl90eXBlIiwgImFsbG93X2xvZ19kaXJlY3RvcnkiKQogICAgYWxsb3dfbG9nX2RpcmVjdG9yeShwb2xpY3lfb2NpLCBpbnB1dF9vY2kpCgogICAgcHJpbnQoImFsbG93X2J5X2NvbnRhaW5lcl90eXBlIiwgInN1Y2Nlc3MiKQp9CgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMgImlvLmt1YmVybmV0ZXMuY3JpLmltYWdlLW5hbWUiIGFubm90YXRpb24KCmFsbG93X3NhbmRib3hfaW1hZ2VfbmFtZShwb2xpY3lfb2NpLCBpbnB1dF9vY2kpIHsKICAgIGNvbnRhaW5lcl9hbm5vdGF0aW9uX21pc3NpbmcocG9saWN5X29jaSwgaW5wdXRfb2NpLCAiaW8ua3ViZXJuZXRlcy5jcmkuaW1hZ2UtbmFtZSIpCn0KCmFsbG93X2ltYWdlX25hbWUocG9saWN5X29jaSwgaW5wdXRfb2NpKSB7CiAgICAjIFRPRE86IGNvbXBhcmUgcHJvcGVybHkgImRvY2tlci5pby9saWJyYXJ5L2hlbGxvLXdvcmxkOmxhdGVzdCIgd2l0aCAgImhlbGxvLXdvcmxkIgogICAgYWxsb3dfY29udGFpbmVyX2Fubm90YXRpb24ocG9saWN5X29jaSwgaW5wdXRfb2NpLCAiaW8ua3ViZXJuZXRlcy5jcmkuaW1hZ2UtbmFtZSIpCn0KCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIyAiaW8ua3ViZXJuZXRlcy5jcmkuY29udGFpbmVyLW5hbWUiIGFubm90YXRpb24KCmFsbG93X3NhbmRib3hfY29udGFpbmVyX25hbWUocG9saWN5X29jaSwgaW5wdXRfb2NpKSB7CiAgICBjb250YWluZXJfYW5ub3RhdGlvbl9taXNzaW5nKHBvbGljeV9vY2ksIGlucHV0X29jaSwgImlvLmt1YmVybmV0ZXMuY3JpLmNvbnRhaW5lci1uYW1lIikKfQoKYWxsb3dfY29udGFpbmVyX25hbWUocG9saWN5X29jaSwgaW5wdXRfb2NpKSB7CiAgICBhbGxvd19jb250YWluZXJfYW5ub3RhdGlvbihwb2xpY3lfb2NpLCBpbnB1dF9vY2ksICJpby5rdWJlcm5ldGVzLmNyaS5jb250YWluZXItbmFtZSIpCn0KCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIyBBbm5vdGlvbnMgcmVxdWlyZWQgZm9yICJjb250YWluZXIiIHR5cGUsIGFuZCBub3QgYWxsb3dlZCBmb3IgInNhbmRib3giIHR5cGUuCgpjb250YWluZXJfYW5ub3RhdGlvbl9taXNzaW5nKHBvbGljeV9vY2ksIGlucHV0X29jaSwgYW5ub3RhdGlvbl9rZXkpIHsKICAgIG5vdCBwb2xpY3lfb2NpLmFubm90YXRpb25zW2Fubm90YXRpb25fa2V5XQogICAgbm90IGlucHV0X29jaS5hbm5vdGF0aW9uc1thbm5vdGF0aW9uX2tleV0KfQoKYWxsb3dfY29udGFpbmVyX2Fubm90YXRpb24ocG9saWN5X29jaSwgaW5wdXRfb2NpLCBhbm5vdGF0aW9uX2tleSkgewogICAgcG9saWN5X3ZhbHVlIDo9IHBvbGljeV9vY2kuYW5ub3RhdGlvbnNbYW5ub3RhdGlvbl9rZXldCiAgICBwcmludCgiYWxsb3dfY29udGFpbmVyX2Fubm90YXRpb24iLCBwb2xpY3lfdmFsdWUpCgogICAgaW5wdXRfdmFsdWUgOj0gaW5wdXRfb2NpLmFubm90YXRpb25zW2Fubm90YXRpb25fa2V5XQogICAgcHJpbnQoImFsbG93X2NvbnRhaW5lcl9hbm5vdGF0aW9uIiwgaW5wdXRfdmFsdWUpCgogICAgcG9saWN5X3ZhbHVlID09IGlucHV0X3ZhbHVlCiAgICBwcmludCgiYWxsb3dfY29udGFpbmVyX2Fubm90YXRpb24iLCAic3VjY2VzcyIpCn0KCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIyAibmVyZGN0bC9uZXR3b3JrLW5hbWVzcGFjZSIgYW5ub3RhdGlvbgoKYWxsb3dfc2FuZGJveF9uZXRfbmFtZXNwYWNlKHBvbGljeV9vY2ksIGlucHV0X29jaSkgewogICAgcG9saWN5X25hbWVzcGFjZSA6PSBwb2xpY3lfb2NpLmFubm90YXRpb25zWyJuZXJkY3RsL25ldHdvcmstbmFtZXNwYWNlIl0KICAgIGlucHV0X25hbWVzcGFjZSA6PSBpbnB1dF9vY2kuYW5ub3RhdGlvbnNbIm5lcmRjdGwvbmV0d29yay1uYW1lc3BhY2UiXQoKICAgIHJlZ2V4Lm1hdGNoKHBvbGljeV9uYW1lc3BhY2UsIGlucHV0X25hbWVzcGFjZSkKfQoKYWxsb3dfbmV0X25hbWVzcGFjZShwb2xpY3lfb2NpLCBpbnB1dF9vY2kpIHsKICAgIG5vdCBwb2xpY3lfb2NpLmFubm90YXRpb25zWyJuZXJkY3RsL25ldHdvcmstbmFtZXNwYWNlIl0KICAgIG5vdCBpbnB1dF9vY2kuYW5ub3RhdGlvbnNbIm5lcmRjdGwvbmV0d29yay1uYW1lc3BhY2UiXQp9CgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMgImlvLmt1YmVybmV0ZXMuY3JpLnNhbmRib3gtbG9nLWRpcmVjdG9yeSIgYW5ub3RhdGlvbgoKYWxsb3dfc2FuZGJveF9sb2dfZGlyZWN0b3J5KHBvbGljeV9vY2ksIGlucHV0X29jaSwgc2FuZGJveF9uYW1lKSB7CiAgICBwb2xpY3lfbG9nX2RpcmVjdG9yeSA6PSBwb2xpY3lfb2NpLmFubm90YXRpb25zWyJpby5rdWJlcm5ldGVzLmNyaS5zYW5kYm94LWxvZy1kaXJlY3RvcnkiXQogICAgZGlyZWN0b3J5X3JlZ2V4IDo9IHJlcGxhY2UocG9saWN5X2xvZ19kaXJlY3RvcnksICIkKHNhbmRib3gtbmFtZSkiLCBzYW5kYm94X25hbWUpCgogICAgaW5wdXRfbG9nX2RpcmVjdG9yeSA6PSBpbnB1dF9vY2kuYW5ub3RhdGlvbnNbImlvLmt1YmVybmV0ZXMuY3JpLnNhbmRib3gtbG9nLWRpcmVjdG9yeSJdCiAgICByZWdleC5tYXRjaChkaXJlY3RvcnlfcmVnZXgsIGlucHV0X2xvZ19kaXJlY3RvcnkpCn0KCmFsbG93X2xvZ19kaXJlY3RvcnkocG9saWN5X29jaSwgaW5wdXRfb2NpKSB7CiAgICBub3QgcG9saWN5X29jaS5hbm5vdGF0aW9uc1siaW8ua3ViZXJuZXRlcy5jcmkuc2FuZGJveC1sb2ctZGlyZWN0b3J5Il0KICAgIG5vdCBpbnB1dF9vY2kuYW5ub3RhdGlvbnNbImlvLmt1YmVybmV0ZXMuY3JpLnNhbmRib3gtbG9nLWRpcmVjdG9yeSJdCn0KCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIyAiaW8ua3ViZXJuZXRlcy5jcmkuc2FuZGJveC1uYW1lc3BhY2UiIGFubm90YXRpb24KCmFsbG93X3NhbmRib3hfbmFtZXNwYWNlKHBvbGljeV9vY2ksIGlucHV0X29jaSkgewogICAgcG9saWN5X25hbWVzcGFjZSA6PSBwb2xpY3lfb2NpLmFubm90YXRpb25zWyJpby5rdWJlcm5ldGVzLmNyaS5zYW5kYm94LW5hbWVzcGFjZSJdCiAgICBpbnB1dF9uYW1lc3BhY2UgOj0gaW5wdXRfb2NpLmFubm90YXRpb25zWyJpby5rdWJlcm5ldGVzLmNyaS5zYW5kYm94LW5hbWVzcGFjZSJdCgogICAgcG9saWN5X25hbWVzcGFjZSA9PSBpbnB1dF9uYW1lc3BhY2UKfQoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojIFZhbGlkYXRlIHRoZSBsaW51eCBmaWVsZHMgZnJvbSBjb25maWcuanNvbi4KCmFsbG93X2xpbnV4KHBvbGljeV9vY2ksIGlucHV0X29jaSkgewogICAgcG9saWN5X29jaS5saW51eC5uYW1lc3BhY2VzICAgICA9PSBpbnB1dF9vY2kubGludXgubmFtZXNwYWNlcwoKICAgIGFsbG93X2FycmF5KHBvbGljeV9vY2kubGludXgubWFza2VkUGF0aHMsIGlucHV0X29jaS5saW51eC5tYXNrZWRQYXRocykKICAgIGFsbG93X2FycmF5KHBvbGljeV9vY2kubGludXgucmVhZG9ubHlQYXRocywgaW5wdXRfb2NpLmxpbnV4LnJlYWRvbmx5UGF0aHMpCn0KCmFsbG93X2FycmF5KHBvbGljeV9hcnJheSwgaW5wdXRfYXJyYXkpIHsKICAgIHBvbGljeV9lbGVtZW50IDo9IHBvbGljeV9hcnJheVtfXQogICAgaW5wdXRfZWxlbWVudCA6PSBpbnB1dF9hcnJheVtfXQoKICAgIHBvbGljeV9lbGVtZW50ID09IGlucHV0X2VsZW1lbnQKfQoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojIEdldCB0aGUgaW5wdXQ6CiMKIyAtIGJ1bmRsZV9pZCBmcm9tICJpby5rYXRhY29udGFpbmVycy5wa2cub2NpLmJ1bmRsZV9wYXRoIgojIC0gc2FuZGJveF9pZCBmcm9tICJpby5rdWJlcm5ldGVzLmNyaS5zYW5kYm94LWlkIgojCiMgYW5kIGNoZWNrIHRoZWlyIGNvbnNpc3RlbmN5IHdpdGggb3RoZXIgcnVsZXMuCgphbGxvd19ieV9idW5kbGVfb3Jfc2FuZGJveF9pZChwb2xpY3lfb2NpLCBpbnB1dF9vY2ksIHBvbGljeV9zdG9yYWdlcywgaW5wdXRfc3RvcmFnZXMpIHsKICAgIGJ1bmRsZV9wYXRoIDo9IGlucHV0X29jaS5hbm5vdGF0aW9uc1siaW8ua2F0YWNvbnRhaW5lcnMucGtnLm9jaS5idW5kbGVfcGF0aCJdCiAgICBidW5kbGVfaWQgOj0gcmVwbGFjZShidW5kbGVfcGF0aCwgIi9ydW4vY29udGFpbmVyZC9pby5jb250YWluZXJkLnJ1bnRpbWUudjIudGFzay9rOHMuaW8vIiwgIiIpCgogICAgcG9saWN5X3NhbmRib3hfcmVnZXggOj0gcG9saWN5X29jaS5hbm5vdGF0aW9uc1siaW8ua3ViZXJuZXRlcy5jcmkuc2FuZGJveC1pZCJdCiAgICBzYW5kYm94X2lkIDo9IGlucHV0X29jaS5hbm5vdGF0aW9uc1siaW8ua3ViZXJuZXRlcy5jcmkuc2FuZGJveC1pZCJdCgogICAgcHJpbnQoImFsbG93X2J5X2J1bmRsZV9vcl9zYW5kYm94X2lkIiwgInJlZ2V4Lm1hdGNoIikKICAgIHJlZ2V4Lm1hdGNoKHBvbGljeV9zYW5kYm94X3JlZ2V4LCBzYW5kYm94X2lkKQoKICAgIHByaW50KCJhbGxvd19ieV9idW5kbGVfb3Jfc2FuZGJveF9pZCIsICJhbGxvd19yb290X3BhdGgiKQogICAgYWxsb3dfcm9vdF9wYXRoKHBvbGljeV9vY2ksIGlucHV0X29jaSwgYnVuZGxlX2lkKQoKICAgIGV2ZXJ5IGlucHV0X21vdW50IGluIGlucHV0Lm9jaS5tb3VudHMgewogICAgICAgIHByaW50KCJhbGxvd19ieV9idW5kbGVfb3Jfc2FuZGJveF9pZCIsICJhbGxvd19tb3VudCIpCiAgICAgICAgYWxsb3dfbW91bnQocG9saWN5X29jaSwgaW5wdXRfbW91bnQsIGJ1bmRsZV9pZCwgc2FuZGJveF9pZCkKICAgIH0KCiAgICBwcmludCgiYWxsb3dfYnlfYnVuZGxlX29yX3NhbmRib3hfaWQiLCAiYWxsb3dfc3RvcmFnZXMiKQogICAgYWxsb3dfc3RvcmFnZXMocG9saWN5X3N0b3JhZ2VzLCBpbnB1dF9zdG9yYWdlcywgc2FuZGJveF9pZCkKCiAgICBwcmludCgiYWxsb3dfYnlfYnVuZGxlX29yX3NhbmRib3hfaWQiLCAic3VjY2VzcyIpCn0KCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIyBWYWxpZGF0ZSB0aGUgcHJvY2VzcyBmaWVsZHMgZnJvbSBjb25maWcuanNvbi4KCmFsbG93X3Byb2Nlc3MocG9saWN5X29jaSwgaW5wdXRfb2NpLCBzYW5kYm94X25hbWUpIHsKICAgIHBvbGljeV9wcm9jZXNzIDo9IHBvbGljeV9vY2kucHJvY2VzcwogICAgaW5wdXRfcHJvY2VzcyA6PSBpbnB1dF9vY2kucHJvY2VzcwoKICAgIHByaW50KCJhbGxvd19wcm9jZXNzIiwgInRlcm1pbmFsIikKICAgIHBvbGljeV9wcm9jZXNzLnRlcm1pbmFsICAgICAgICAgPT0gaW5wdXRfcHJvY2Vzcy50ZXJtaW5hbAoKICAgIHByaW50KCJhbGxvd19wcm9jZXNzIiwgImN3ZCIpCiAgICBwb2xpY3lfcHJvY2Vzcy5jd2QgICAgICAgICAgICAgID09IGlucHV0X3Byb2Nlc3MuY3dkCgogICAgcHJpbnQoImFsbG93X3Byb2Nlc3MiLCAiY2FwYWJpbGl0aWVzIikKICAgIHBvbGljeV9wcm9jZXNzLmNhcGFiaWxpdGllcyAgICAgPT0gaW5wdXRfcHJvY2Vzcy5jYXBhYmlsaXRpZXMKCiAgICBwcmludCgiYWxsb3dfcHJvY2VzcyIsICJub05ld1ByaXZpbGVnZXMiKQogICAgcG9saWN5X3Byb2Nlc3Mubm9OZXdQcml2aWxlZ2VzICA9PSBpbnB1dF9wcm9jZXNzLm5vTmV3UHJpdmlsZWdlcwoKICAgIHByaW50KCJhbGxvd19wcm9jZXNzIiwgImFsbG93X3VzZXIiKQogICAgYWxsb3dfdXNlcihwb2xpY3lfcHJvY2VzcywgaW5wdXRfcHJvY2VzcykKCiAgICBwcmludCgiYWxsb3dfcHJvY2VzcyIsICJhbGxvd19hcmdzIikKICAgIGFsbG93X2FyZ3MocG9saWN5X3Byb2Nlc3MsIGlucHV0X3Byb2Nlc3MpCgogICAgcHJpbnQoImFsbG93X3Byb2Nlc3MiLCAiYWxsb3dfZW52IikKICAgIGFsbG93X2Vudihwb2xpY3lfcHJvY2VzcywgaW5wdXRfcHJvY2Vzcywgc2FuZGJveF9uYW1lKQoKICAgIHByaW50KCJhbGxvd19wcm9jZXNzIiwgInN1Y2Nlc3MiKQp9CgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMgT0NJIHByb2Nlc3MudXNlciBmaWVsZAoKYWxsb3dfdXNlcihwb2xpY3lfcHJvY2VzcywgaW5wdXRfcHJvY2VzcykgewogICAgcG9saWN5X3VzZXIgOj0gcG9saWN5X3Byb2Nlc3MudXNlcgogICAgaW5wdXRfdXNlciA6PSBpbnB1dF9wcm9jZXNzLnVzZXIKCiAgICAjIFRPRE86IGNvbXBhcmUgdGhlIGFkZGl0aW9uYWxHaWRzIGZpZWxkIHRvbyBhZnRlciBjb21wdXRpbmcgaXRzIHZhbHVlCiAgICAjIGJhc2VkIG9uIC9ldGMvcGFzc3dkIGFuZCAvZXRjL2dyb3VwIGZyb20gdGhlIGNvbnRhaW5lciBpbWFnZS4KICAgIHBvbGljeV91c2VyLnVpZCAgICAgICAgICAgICAgICAgPT0gaW5wdXRfdXNlci51aWQKICAgIHBvbGljeV91c2VyLmdpZCAgICAgICAgICAgICAgICAgPT0gaW5wdXRfdXNlci5naWQKfQoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojIE9DSSBwcm9jZXNzLmFyZ3MgZmllbGQKCmFsbG93X2FyZ3MocG9saWN5X3Byb2Nlc3MsIGlucHV0X3Byb2Nlc3MpIHsKICAgIG5vdCBwb2xpY3lfcHJvY2Vzcy5hcmdzCiAgICBub3QgaW5wdXRfcHJvY2Vzcy5hcmdzCn0KYWxsb3dfYXJncyhwb2xpY3lfcHJvY2VzcywgaW5wdXRfcHJvY2VzcykgewogICAgcG9saWN5X3Byb2Nlc3MuYXJncyA9PSBpbnB1dF9wcm9jZXNzLmFyZ3MKfQoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojIE9DSSBwcm9jZXNzLmVudiBmaWVsZAoKYWxsb3dfZW52KHBvbGljeV9wcm9jZXNzLCBpbnB1dF9wcm9jZXNzLCBzYW5kYm94X25hbWUpIHsKICAgIGV2ZXJ5IGVudl92YXIgaW4gaW5wdXRfcHJvY2Vzcy5lbnYgewogICAgICAgIHByaW50KCJhbGxvd19lbnYgPT4iLCBlbnZfdmFyKQogICAgICAgIGFsbG93X2Vudl92YXIocG9saWN5X3Byb2Nlc3MsIGlucHV0X3Byb2Nlc3MsIGVudl92YXIsIHNhbmRib3hfbmFtZSkKICAgIH0KCiAgICBwcmludCgiYWxsb3dfZW52IiwgInN1Y2Nlc3MiKQp9CgojIEFsbG93IGlucHV0IGVudiB2YXJpYWJsZXMgdGhhdCBhcmUgcHJlc2VudCBpbiB0aGUgcG9saWN5IGRhdGEgdG9vLgphbGxvd19lbnZfdmFyKHBvbGljeV9wcm9jZXNzLCBpbnB1dF9wcm9jZXNzLCBlbnZfdmFyLCBzYW5kYm94X25hbWUpIHsKICAgIHByaW50KCJhbGxvd19lbnZfdmFyIDEiLCAicG9saWN5X3Byb2Nlc3MuZW52W19dID09IGVudl92YXIiKQogICAgcG9saWN5X3Byb2Nlc3MuZW52W19dID09IGVudl92YXIKICAgIHByaW50KCJhbGxvd19lbnZfdmFyIDEiLCAic3VjY2VzcyIpCn0KCiMgQWxsb3cgIkhPU1ROQU1FPTxzYW5kYm94X25hbWU+Ii4KYWxsb3dfZW52X3Zhcihwb2xpY3lfcHJvY2VzcywgaW5wdXRfcHJvY2VzcywgZW52X3Zhciwgc2FuZGJveF9uYW1lKSB7CiAgICBwcmludCgiYWxsb3dfZW52X3ZhciAyIiwgIkhPU1ROQU1FIikKICAgIGhvc3RfbmFtZV9lbnZfdmFyIDo9IGNvbmNhdCgiIiwgWyJIT1NUTkFNRT0iLCBzYW5kYm94X25hbWVdKQoKICAgIHByaW50KGhvc3RfbmFtZV9lbnZfdmFyLCBlbnZfdmFyKQogICAgaG9zdF9uYW1lX2Vudl92YXIgPT0gZW52X3ZhcgoKICAgIHByaW50KCJhbGxvd19lbnZfdmFyIDIiLCAic3VjY2VzcyIpCn0KCiMgQWxsb3cgc2VydmljZS1yZWxhdGVkIGVudiB2YXJpYWJsZXM6CgojICJLVUJFUk5FVEVTX1BPUlRfNDQzX1RDUF9QUk9UTz10Y3AiCmFsbG93X2Vudl92YXIocG9saWN5X3Byb2Nlc3MsIGlucHV0X3Byb2Nlc3MsIGVudl92YXIsIHNhbmRib3hfbmFtZSkgewogICAgcHJpbnQoImFsbG93X2Vudl92YXIgMyIsICJLVUJFUk5FVEVTX1BPUlRfNDQzX1RDUF9QUk9UTz10Y3AiKQoKICAgIG5hbWVfdmFsdWUgOj0gc3BsaXQoZW52X3ZhciwgIj0iKQogICAgY291bnQobmFtZV92YWx1ZSkgPT0gMgoKICAgIG5hbWVfdmFsdWVbMV0gPT0gInRjcCIKCiAgICBuYW1lX2NvbXBvbmVudHMgPSBzcGxpdChuYW1lX3ZhbHVlWzBdLCAiXyIpCiAgICBjb21wb25lbnRzX2NvdW50IDo9IGNvdW50KG5hbWVfY29tcG9uZW50cykKICAgIGNvbXBvbmVudHNfY291bnQgPj0gNQogICAgbmFtZV9jb21wb25lbnRzW2NvbXBvbmVudHNfY291bnQgLSAxXSA9PSAiUFJPVE8iCiAgICBuYW1lX2NvbXBvbmVudHNbY29tcG9uZW50c19jb3VudCAtIDJdID09ICJUQ1AiCiAgICBuYW1lX2NvbXBvbmVudHNbY29tcG9uZW50c19jb3VudCAtIDRdID09ICJQT1JUIgogICAgcG9ydCA6PSBuYW1lX2NvbXBvbmVudHNbY29tcG9uZW50c19jb3VudCAtIDNdCiAgICBpc19wb3J0KHBvcnQpCgogICAgcHJpbnQoImFsbG93X2Vudl92YXIgMyIsICJzdWNjZXNzIikKfQoKIyAiS1VCRVJORVRFU19QT1JUXzQ0M19UQ1BfUE9SVD00NDMiCmFsbG93X2Vudl92YXIocG9saWN5X3Byb2Nlc3MsIGlucHV0X3Byb2Nlc3MsIGVudl92YXIsIHNhbmRib3hfbmFtZSkgewogICAgcHJpbnQoImFsbG93X2Vudl92YXIgNCIsICJLVUJFUk5FVEVTX1BPUlRfNDQzX1RDUF9QT1JUPTQ0MyIpCgogICAgbmFtZV92YWx1ZSA6PSBzcGxpdChlbnZfdmFyLCAiPSIpCiAgICBjb3VudChuYW1lX3ZhbHVlKSA9PSAyCgogICAgcG9ydCA9IG5hbWVfdmFsdWVbMV0KICAgIGlzX3BvcnQocG9ydCkKCiAgICBuYW1lX2NvbXBvbmVudHMgPSBzcGxpdChuYW1lX3ZhbHVlWzBdLCAiXyIpCiAgICBjb21wb25lbnRzX2NvdW50IDo9IGNvdW50KG5hbWVfY29tcG9uZW50cykKICAgIGNvbXBvbmVudHNfY291bnQgPj0gNQogICAgbmFtZV9jb21wb25lbnRzW2NvbXBvbmVudHNfY291bnQgLSAxXSA9PSAiUE9SVCIKICAgIG5hbWVfY29tcG9uZW50c1tjb21wb25lbnRzX2NvdW50IC0gMl0gPT0gIlRDUCIKICAgIG5hbWVfY29tcG9uZW50c1tjb21wb25lbnRzX2NvdW50IC0gM10gPT0gcG9ydAogICAgbmFtZV9jb21wb25lbnRzW2NvbXBvbmVudHNfY291bnQgLSA0XSA9PSAiUE9SVCIKCiAgICBwcmludCgiYWxsb3dfZW52X3ZhciA0IiwgInN1Y2Nlc3MiKQp9CgojICJLVUJFUk5FVEVTX1BPUlRfNDQzX1RDUF9BRERSPTEwLjAuMC4xIgphbGxvd19lbnZfdmFyKHBvbGljeV9wcm9jZXNzLCBpbnB1dF9wcm9jZXNzLCBlbnZfdmFyLCBzYW5kYm94X25hbWUpIHsKICAgIHByaW50KCJhbGxvd19lbnZfdmFyIDUiLCAiS1VCRVJORVRFU19QT1JUXzQ0M19UQ1BfQUREUj0xMC4wLjAuMSIpCgogICAgbmFtZV92YWx1ZSA6PSBzcGxpdChlbnZfdmFyLCAiPSIpCiAgICBjb3VudChuYW1lX3ZhbHVlKSA9PSAyCgogICAgaXNfaXAobmFtZV92YWx1ZVsxXSkKCiAgICBuYW1lX2NvbXBvbmVudHMgPSBzcGxpdChuYW1lX3ZhbHVlWzBdLCAiXyIpCiAgICBjb21wb25lbnRzX2NvdW50IDo9IGNvdW50KG5hbWVfY29tcG9uZW50cykKICAgIGNvbXBvbmVudHNfY291bnQgPj0gNQogICAgbmFtZV9jb21wb25lbnRzW2NvbXBvbmVudHNfY291bnQgLSAxXSA9PSAiQUREUiIKICAgIG5hbWVfY29tcG9uZW50c1tjb21wb25lbnRzX2NvdW50IC0gMl0gPT0gIlRDUCIKICAgIG5hbWVfY29tcG9uZW50c1tjb21wb25lbnRzX2NvdW50IC0gNF0gPT0gIlBPUlQiCiAgICBwb3J0IDo9IG5hbWVfY29tcG9uZW50c1tjb21wb25lbnRzX2NvdW50IC0gM10KICAgIGlzX3BvcnQocG9ydCkKCiAgICBwcmludCgiYWxsb3dfZW52X3ZhciA1IiwgInN1Y2Nlc3MiKQp9CgojICJLVUJFUk5FVEVTX1NFUlZJQ0VfSE9TVD0xMC4wLjAuMSIsCmFsbG93X2Vudl92YXIocG9saWN5X3Byb2Nlc3MsIGlucHV0X3Byb2Nlc3MsIGVudl92YXIsIHNhbmRib3hfbmFtZSkgewogICAgcHJpbnQoImFsbG93X2Vudl92YXIgNiIsICJLVUJFUk5FVEVTX1NFUlZJQ0VfSE9TVD0xMC4wLjAuMSIpCgogICAgbmFtZV92YWx1ZSA6PSBzcGxpdChlbnZfdmFyLCAiPSIpCiAgICBjb3VudChuYW1lX3ZhbHVlKSA9PSAyCgogICAgaXNfaXAobmFtZV92YWx1ZVsxXSkKCiAgICBuYW1lX2NvbXBvbmVudHMgPSBzcGxpdChuYW1lX3ZhbHVlWzBdLCAiXyIpCiAgICBjb21wb25lbnRzX2NvdW50IDo9IGNvdW50KG5hbWVfY29tcG9uZW50cykKICAgIGNvbXBvbmVudHNfY291bnQgPj0gMwogICAgbmFtZV9jb21wb25lbnRzW2NvbXBvbmVudHNfY291bnQgLSAxXSA9PSAiSE9TVCIKICAgIG5hbWVfY29tcG9uZW50c1tjb21wb25lbnRzX2NvdW50IC0gMl0gPT0gIlNFUlZJQ0UiCgogICAgcHJpbnQoImFsbG93X2Vudl92YXIgNiIsICJzdWNjZXNzIikKfQoKIyAiS1VCRVJORVRFU19TRVJWSUNFX1BPUlQ9NDQzIiwKYWxsb3dfZW52X3Zhcihwb2xpY3lfcHJvY2VzcywgaW5wdXRfcHJvY2VzcywgZW52X3Zhciwgc2FuZGJveF9uYW1lKSB7CiAgICBwcmludCgiYWxsb3dfZW52X3ZhciA3IiwgIktVQkVSTkVURVNfU0VSVklDRV9QT1JUPTQ0MyIpCgogICAgbmFtZV92YWx1ZSA6PSBzcGxpdChlbnZfdmFyLCAiPSIpCiAgICBjb3VudChuYW1lX3ZhbHVlKSA9PSAyCgogICAgaXNfcG9ydChuYW1lX3ZhbHVlWzFdKQoKICAgIG5hbWVfY29tcG9uZW50cyA9IHNwbGl0KG5hbWVfdmFsdWVbMF0sICJfIikKICAgIGNvbXBvbmVudHNfY291bnQgOj0gY291bnQobmFtZV9jb21wb25lbnRzKQogICAgY29tcG9uZW50c19jb3VudCA+PSAzCiAgICBuYW1lX2NvbXBvbmVudHNbY29tcG9uZW50c19jb3VudCAtIDFdID09ICJQT1JUIgogICAgbmFtZV9jb21wb25lbnRzW2NvbXBvbmVudHNfY291bnQgLSAyXSA9PSAiU0VSVklDRSIKCiAgICBwcmludCgiYWxsb3dfZW52X3ZhciA3IiwgInN1Y2Nlc3MiKQp9CgojICJLVUJFUk5FVEVTX1NFUlZJQ0VfUE9SVF9IVFRQUz00NDMiLAphbGxvd19lbnZfdmFyKHBvbGljeV9wcm9jZXNzLCBpbnB1dF9wcm9jZXNzLCBlbnZfdmFyLCBzYW5kYm94X25hbWUpIHsKICAgIHByaW50KCJhbGxvd19lbnZfdmFyIDgiLCAiS1VCRVJORVRFU19TRVJWSUNFX1BPUlRfSFRUUFM9NDQzIikKCiAgICBuYW1lX3ZhbHVlIDo9IHNwbGl0KGVudl92YXIsICI9IikKICAgIGNvdW50KG5hbWVfdmFsdWUpID09IDIKCiAgICBpc19wb3J0KG5hbWVfdmFsdWVbMV0pCgogICAgbmFtZV9jb21wb25lbnRzID0gc3BsaXQobmFtZV92YWx1ZVswXSwgIl8iKQogICAgY29tcG9uZW50c19jb3VudCA6PSBjb3VudChuYW1lX2NvbXBvbmVudHMpCiAgICBjb21wb25lbnRzX2NvdW50ID49IDQKICAgIG5hbWVfY29tcG9uZW50c1tjb21wb25lbnRzX2NvdW50IC0gMV0gPT0gIkhUVFBTIgogICAgbmFtZV9jb21wb25lbnRzW2NvbXBvbmVudHNfY291bnQgLSAyXSA9PSAiUE9SVCIKICAgIG5hbWVfY29tcG9uZW50c1tjb21wb25lbnRzX2NvdW50IC0gM10gPT0gIlNFUlZJQ0UiCgogICAgcHJpbnQoImFsbG93X2Vudl92YXIgOCIsICJzdWNjZXNzIikKfQoKIyAiS1VCRVJORVRFU19QT1JUPXRjcDovLzEwLjAuMC4xOjQ0MyIsCmFsbG93X2Vudl92YXIocG9saWN5X3Byb2Nlc3MsIGlucHV0X3Byb2Nlc3MsIGVudl92YXIsIHNhbmRib3hfbmFtZSkgewogICAgcHJpbnQoImFsbG93X2Vudl92YXIgOSIsICJLVUJFUk5FVEVTX1BPUlQ9dGNwOi8vMTAuMC4wLjE6NDQzIikKCiAgICBuYW1lX3ZhbHVlIDo9IHNwbGl0KGVudl92YXIsICI9IikKICAgIGNvdW50KG5hbWVfdmFsdWUpID09IDIKCiAgICBpc190Y3BfdXJpKG5hbWVfdmFsdWVbMV0pCgogICAgbmFtZV9jb21wb25lbnRzID0gc3BsaXQobmFtZV92YWx1ZVswXSwgIl8iKQogICAgY29tcG9uZW50c19jb3VudCA6PSBjb3VudChuYW1lX2NvbXBvbmVudHMpCiAgICBjb21wb25lbnRzX2NvdW50ID49IDIKICAgIG5hbWVfY29tcG9uZW50c1tjb21wb25lbnRzX2NvdW50IC0gMV0gPT0gIlBPUlQiCgogICAgcHJpbnQoImFsbG93X2Vudl92YXIgOSIsICJzdWNjZXNzIikKfQoKIyAiS1VCRVJORVRFU19QT1JUXzQ0M19UQ1A9dGNwOi8vMTAuMC4wLjE6NDQzIiwKYWxsb3dfZW52X3Zhcihwb2xpY3lfcHJvY2VzcywgaW5wdXRfcHJvY2VzcywgZW52X3Zhciwgc2FuZGJveF9uYW1lKSB7CiAgICBwcmludCgiYWxsb3dfZW52X3ZhciAxMCIsICJLVUJFUk5FVEVTX1BPUlRfNDQzX1RDUD10Y3A6Ly8xMC4wLjAuMTo0NDMiKQoKICAgIG5hbWVfdmFsdWUgOj0gc3BsaXQoZW52X3ZhciwgIj0iKQogICAgY291bnQobmFtZV92YWx1ZSkgPT0gMgoKICAgIG5hbWVfY29tcG9uZW50cyA9IHNwbGl0KG5hbWVfdmFsdWVbMF0sICJfIikKICAgIGNvbXBvbmVudHNfY291bnQgOj0gY291bnQobmFtZV9jb21wb25lbnRzKQogICAgY29tcG9uZW50c19jb3VudCA+PSA0CiAgICBuYW1lX2NvbXBvbmVudHNbY29tcG9uZW50c19jb3VudCAtIDFdID09ICJUQ1AiCiAgICBuYW1lX2NvbXBvbmVudHNbY29tcG9uZW50c19jb3VudCAtIDNdID09ICJQT1JUIgogICAgcG9ydCA6PSBuYW1lX2NvbXBvbmVudHNbY29tcG9uZW50c19jb3VudCAtIDJdCiAgICBpc19wb3J0KHBvcnQpCgogICAgaXNfdGNwX3VyaShuYW1lX3ZhbHVlWzFdKQogICAgdmFsdWVfY29tcG9uZW50cyA9IHNwbGl0KG5hbWVfdmFsdWVbMV0sICI6IikKICAgIGNvdW50KHZhbHVlX2NvbXBvbmVudHMpID09IDMKICAgIHZhbHVlX2NvbXBvbmVudHNbMl0gPT0gcG9ydAoKICAgIHByaW50KCJhbGxvd19lbnZfdmFyIDEwIiwgInN1Y2Nlc3MiKQp9Cgppc19pcCh2YWx1ZSkgewogICAgYnl0ZXMgPSBzcGxpdCh2YWx1ZSwgIi4iKQogICAgY291bnQoYnl0ZXMpID09IDQKCiAgICBpc19pcF9maXJzdF9ieXRlKGJ5dGVzWzBdKQogICAgaXNfaXBfb3RoZXJfYnl0ZShieXRlc1sxXSkKICAgIGlzX2lwX290aGVyX2J5dGUoYnl0ZXNbMl0pCiAgICBpc19pcF9vdGhlcl9ieXRlKGJ5dGVzWzNdKQp9CmlzX2lwX2ZpcnN0X2J5dGUoY29tcG9uZW50KSB7CiAgICBudW1iZXIgPSB0b19udW1iZXIoY29tcG9uZW50KQogICAgbnVtYmVyID49IDEKICAgIG51bWJlciA8PSAyNTUKfQppc19pcF9vdGhlcl9ieXRlKGNvbXBvbmVudCkgewogICAgbnVtYmVyID0gdG9fbnVtYmVyKGNvbXBvbmVudCkKICAgIG51bWJlciA+PSAwCiAgICBudW1iZXIgPD0gMjU1Cn0KCmlzX3BvcnQodmFsdWUpIHsKICAgIG51bWJlciA9IHRvX251bWJlcih2YWx1ZSkKICAgIG51bWJlciA+PSAxCiAgICBudW1iZXIgPD0gNjU2MzUKfQoKIyBFLmcuLCAidGNwOi8vMTAuMC4wLjE6NDQzIgppc190Y3BfdXJpKHZhbHVlKSB7CiAgICBjb21wb25lbnRzID0gc3BsaXQodmFsdWUsICIvLyIpCiAgICBjb3VudChjb21wb25lbnRzKSA9PSAyCiAgICBjb21wb25lbnRzWzBdID09ICJ0Y3A6IgoKICAgIGlwX2FuZF9wb3J0ID0gc3BsaXQoY29tcG9uZW50c1sxXSwgIjoiKQogICAgY291bnQoaXBfYW5kX3BvcnQpID09IDIKICAgIGlzX2lwKGlwX2FuZF9wb3J0WzBdKQogICAgaXNfcG9ydChpcF9hbmRfcG9ydFsxXSkKfQoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojIE9DSSByb290LnBhdGgKCmFsbG93X3Jvb3RfcGF0aChwb2xpY3lfb2NpLCBpbnB1dF9vY2ksIGJ1bmRsZV9pZCkgewogICAgIyBFeGFtcGxlIHBvbGljeTogInBhdGgiOiAiL3J1bi9rYXRhLWNvbnRhaW5lcnMvc2hhcmVkL2NvbnRhaW5lcnMvJChidW5kbGUtaWQpL3Jvb3RmcyIsCiAgICBwb2xpY3lfcGF0aCA6PSByZXBsYWNlKHBvbGljeV9vY2kucm9vdC5wYXRoLCAiJChidW5kbGUtaWQpIiwgYnVuZGxlX2lkKQogICAgcG9saWN5X3BhdGggPT0gaW5wdXRfb2NpLnJvb3QucGF0aAp9CgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMgbW91bnRzCgphbGxvd19tb3VudChwb2xpY3lfb2NpLCBpbnB1dF9tb3VudCwgYnVuZGxlX2lkLCBzYW5kYm94X2lkKSB7CiAgICBzb21lIHBvbGljeV9tb3VudCBpbiBwb2xpY3lfb2NpLm1vdW50cwogICAgcG9saWN5X21vdW50X2FsbG93cyhwb2xpY3lfbW91bnQsIGlucHV0X21vdW50LCBidW5kbGVfaWQsIHNhbmRib3hfaWQpCgogICAgIyBUT0RPOiBhcmUgdGhlcmUgYW55IG90aGVyIHJlcXVpcmVkIHBvbGljeSBjaGVja3MgZm9yIG1vdW50cyAtIGUuZy4sCiAgICAjICAgICAgIG11bHRpcGxlIG1vdW50cyB3aXRoIHNhbWUgc291cmNlIG9yIGRlc3RpbmF0aW9uPwp9Cgpwb2xpY3lfbW91bnRfYWxsb3dzKHBvbGljeV9tb3VudCwgaW5wdXRfbW91bnQsIGJ1bmRsZV9pZCwgc2FuZGJveF9pZCkgewogICAgcHJpbnQoInBvbGljeV9tb3VudF9hbGxvd3MgMSIpCiAgICBwb2xpY3lfbW91bnQgPT0gaW5wdXRfbW91bnQKICAgIHByaW50KCJwb2xpY3lfbW91bnRfYWxsb3dzIDEgc3VjY2VzcyIpCn0KcG9saWN5X21vdW50X2FsbG93cyhwb2xpY3lfbW91bnQsIGlucHV0X21vdW50LCBidW5kbGVfaWQsIHNhbmRib3hfaWQpIHsKICAgIHByaW50KCJwb2xpY3lfbW91bnRfYWxsb3dzIDIiKQoKICAgIHByaW50KCJwb2xpY3lfbW91bnRfYWxsb3dzIDIiLCAiZGVzdGluYXRpb24iLCBpbnB1dF9tb3VudC5kZXN0aW5hdGlvbikKICAgIHBvbGljeV9tb3VudC5kZXN0aW5hdGlvbiAgICA9PSBpbnB1dF9tb3VudC5kZXN0aW5hdGlvbgoKICAgIHByaW50KCJwb2xpY3lfbW91bnRfYWxsb3dzIDIiLCAidHlwZSIpCiAgICBwb2xpY3lfbW91bnQudHlwZSAgICAgICAgICAgPT0gaW5wdXRfbW91bnQudHlwZQoKICAgIHByaW50KCJwb2xpY3lfbW91bnRfYWxsb3dzIDIiLCAib3B0aW9ucyIpCiAgICBwb2xpY3lfbW91bnQub3B0aW9ucyAgICAgICAgPT0gaW5wdXRfbW91bnQub3B0aW9ucwoKICAgIHByaW50KCJwb2xpY3lfbW91bnRfYWxsb3dzIDIiLCAicG9saWN5X21vdW50X3NvdXJjZV9hbGxvd3MiKQogICAgcG9saWN5X21vdW50X3NvdXJjZV9hbGxvd3MocG9saWN5X21vdW50LCBpbnB1dF9tb3VudCwgYnVuZGxlX2lkLCBzYW5kYm94X2lkKQoKICAgIHByaW50KCJwb2xpY3lfbW91bnRfYWxsb3dzIDIgc3VjY2VzcyIpCn0KCnBvbGljeV9tb3VudF9zb3VyY2VfYWxsb3dzKHBvbGljeV9tb3VudCwgaW5wdXRfbW91bnQsIGJ1bmRsZV9pZCwgc2FuZGJveF9pZCkgewogICAgIyBFLmcuLCAic291cmNlIjogIl4vcnVuL2thdGEtY29udGFpbmVycy9zaGFyZWQvY29udGFpbmVycy8kKGJ1bmRsZS1pZCktW2EtejAtOV17MTZ9LXJlc29sdi5jb25mJCIsCiAgICBwb2xpY3lfc291cmNlX3JlZ2V4IDo9IHJlcGxhY2UocG9saWN5X21vdW50LnNvdXJjZSwgIiQoYnVuZGxlLWlkKSIsIGJ1bmRsZV9pZCkKICAgIHJlZ2V4Lm1hdGNoKHBvbGljeV9zb3VyY2VfcmVnZXgsIGlucHV0X21vdW50LnNvdXJjZSkKfQpwb2xpY3lfbW91bnRfc291cmNlX2FsbG93cyhwb2xpY3lfbW91bnQsIGlucHV0X21vdW50LCBidW5kbGVfaWQsIHNhbmRib3hfaWQpIHsKICAgICMgRS5nLiwgInNvdXJjZSI6ICJeL3J1bi9rYXRhLWNvbnRhaW5lcnMvc2hhcmVkL2NvbnRhaW5lcnMvJChzYW5kYm94LWlkKS9yb290ZnMvbG9jYWwvZGF0YSQiLAogICAgcG9saWN5X3NvdXJjZV9yZWdleCA6PSByZXBsYWNlKHBvbGljeV9tb3VudC5zb3VyY2UsICIkKHNhbmRib3gtaWQpIiwgc2FuZGJveF9pZCkKICAgIHJlZ2V4Lm1hdGNoKHBvbGljeV9zb3VyY2VfcmVnZXgsIGlucHV0X21vdW50LnNvdXJjZSkKfQoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojIFN0b3JhZ2VzCgphbGxvd19zdG9yYWdlcyhwb2xpY3lfc3RvcmFnZXMsIGlucHV0X3N0b3JhZ2VzLCBzYW5kYm94X2lkKSB7CiAgICAjIFRPRE86IGFkZCBzdXBwb3J0IGZvciBzdG9yYWdlcyB1c2VkIHdpdGggdGFyZnMuCiAgICAjY291bnQocG9saWN5X3N0b3JhZ2VzKSA9PSBjb3VudChpbnB1dF9zdG9yYWdlcykKCiAgICAjZXZlcnkgaW5wdXRfc3RvcmFnZSBpbiBpbnB1dF9zdG9yYWdlcyB7CiAgICAjICAgIHBvbGljeV9zdG9yYWdlIDo9IHBvbGljeV9zdG9yYWdlc1tfXQogICAgIyAgICBhbGxvd19zdG9yYWdlKHBvbGljeV9zdG9yYWdlLCBpbnB1dF9zdG9yYWdlLCBzYW5kYm94X2lkKQogICAgI30KICAgIHRydWUKfQoKYWxsb3dfc3RvcmFnZShwb2xpY3lfc3RvcmFnZSwgaW5wdXRfc3RvcmFnZSwgc2FuZGJveF9pZCkgewogICAgcG9saWN5X3N0b3JhZ2UuZHJpdmVyICAgICAgICAgICA9PSBpbnB1dF9zdG9yYWdlLmRyaXZlcgogICAgcG9saWN5X3N0b3JhZ2UuZHJpdmVyX29wdGlvbnMgICA9PSBpbnB1dF9zdG9yYWdlLmRyaXZlcl9vcHRpb25zCiAgICBwb2xpY3lfc3RvcmFnZS5zb3VyY2UgICAgICAgICAgID09IGlucHV0X3N0b3JhZ2Uuc291cmNlCiAgICBwb2xpY3lfc3RvcmFnZS5vcHRpb25zICAgICAgICAgID09IGlucHV0X3N0b3JhZ2Uub3B0aW9ucwogICAgcG9saWN5X3N0b3JhZ2UuZnNfZ3JvdXAgICAgICAgICA9PSBpbnB1dF9zdG9yYWdlLmZzX2dyb3VwCgogICAgYWxsb3dfc3RvcmFnZV9tb3VudF9wb2ludChwb2xpY3lfc3RvcmFnZSwgaW5wdXRfc3RvcmFnZSwgc2FuZGJveF9pZCkKfQoKYWxsb3dfc3RvcmFnZV9tb3VudF9wb2ludChwb2xpY3lfc3RvcmFnZSwgaW5wdXRfc3RvcmFnZSwgc2FuZGJveF9pZCkgewogICAgIyBFLmcuLCAibW91bnRfcG9pbnQiOiAiXi9ydW4va2F0YS1jb250YWluZXJzL3NoYXJlZC9jb250YWluZXJzLyQoc2FuZGJveC1pZCkvcm9vdGZzL2xvY2FsL2RhdGEkIiwKICAgIG1vdW50X3BvaW50X3JlZ2V4IDo9IHJlcGxhY2UocG9saWN5X3N0b3JhZ2UubW91bnRfcG9pbnQsICIkKHNhbmRib3gtaWQpIiwgc2FuZGJveF9pZCkKICAgIHJlZ2V4Lm1hdGNoKG1vdW50X3BvaW50X3JlZ2V4LCBpbnB1dF9zdG9yYWdlLm1vdW50X3BvaW50KQp9Cgpwb2xpY3lfZGF0YSA6PSB7CiAgImNvbnRhaW5lcnMiOiBbCiAgICB7CiAgICAgICJvY2kiOiB7CiAgICAgICAgIm9jaVZlcnNpb24iOiAiMS4xLjAtcmMuMSIsCiAgICAgICAgInByb2Nlc3MiOiB7CiAgICAgICAgICAidGVybWluYWwiOiBmYWxzZSwKICAgICAgICAgICJ1c2VyIjogewogICAgICAgICAgICAidWlkIjogNjU1MzUsCiAgICAgICAgICAgICJnaWQiOiA2NTUzNQogICAgICAgICAgfSwKICAgICAgICAgICJhcmdzIjogWwogICAgICAgICAgICAiL3BhdXNlIgogICAgICAgICAgXSwKICAgICAgICAgICJlbnYiOiBbCiAgICAgICAgICAgICJQQVRIPS91c3IvbG9jYWwvc2JpbjovdXNyL2xvY2FsL2JpbjovdXNyL3NiaW46L3Vzci9iaW46L3NiaW46L2JpbiIKICAgICAgICAgIF0sCiAgICAgICAgICAiY3dkIjogIi8iLAogICAgICAgICAgImNhcGFiaWxpdGllcyI6IHsKICAgICAgICAgICAgImJvdW5kaW5nIjogWwogICAgICAgICAgICAgICJDQVBfQ0hPV04iLAogICAgICAgICAgICAgICJDQVBfREFDX09WRVJSSURFIiwKICAgICAgICAgICAgICAiQ0FQX0ZTRVRJRCIsCiAgICAgICAgICAgICAgIkNBUF9GT1dORVIiLAogICAgICAgICAgICAgICJDQVBfTUtOT0QiLAogICAgICAgICAgICAgICJDQVBfTkVUX1JBVyIsCiAgICAgICAgICAgICAgIkNBUF9TRVRHSUQiLAogICAgICAgICAgICAgICJDQVBfU0VUVUlEIiwKICAgICAgICAgICAgICAiQ0FQX1NFVEZDQVAiLAogICAgICAgICAgICAgICJDQVBfU0VUUENBUCIsCiAgICAgICAgICAgICAgIkNBUF9ORVRfQklORF9TRVJWSUNFIiwKICAgICAgICAgICAgICAiQ0FQX1NZU19DSFJPT1QiLAogICAgICAgICAgICAgICJDQVBfS0lMTCIsCiAgICAgICAgICAgICAgIkNBUF9BVURJVF9XUklURSIKICAgICAgICAgICAgXSwKICAgICAgICAgICAgImVmZmVjdGl2ZSI6IFsKICAgICAgICAgICAgICAiQ0FQX0NIT1dOIiwKICAgICAgICAgICAgICAiQ0FQX0RBQ19PVkVSUklERSIsCiAgICAgICAgICAgICAgIkNBUF9GU0VUSUQiLAogICAgICAgICAgICAgICJDQVBfRk9XTkVSIiwKICAgICAgICAgICAgICAiQ0FQX01LTk9EIiwKICAgICAgICAgICAgICAiQ0FQX05FVF9SQVciLAogICAgICAgICAgICAgICJDQVBfU0VUR0lEIiwKICAgICAgICAgICAgICAiQ0FQX1NFVFVJRCIsCiAgICAgICAgICAgICAgIkNBUF9TRVRGQ0FQIiwKICAgICAgICAgICAgICAiQ0FQX1NFVFBDQVAiLAogICAgICAgICAgICAgICJDQVBfTkVUX0JJTkRfU0VSVklDRSIsCiAgICAgICAgICAgICAgIkNBUF9TWVNfQ0hST09UIiwKICAgICAgICAgICAgICAiQ0FQX0tJTEwiLAogICAgICAgICAgICAgICJDQVBfQVVESVRfV1JJVEUiCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJwZXJtaXR0ZWQiOiBbCiAgICAgICAgICAgICAgIkNBUF9DSE9XTiIsCiAgICAgICAgICAgICAgIkNBUF9EQUNfT1ZFUlJJREUiLAogICAgICAgICAgICAgICJDQVBfRlNFVElEIiwKICAgICAgICAgICAgICAiQ0FQX0ZPV05FUiIsCiAgICAgICAgICAgICAgIkNBUF9NS05PRCIsCiAgICAgICAgICAgICAgIkNBUF9ORVRfUkFXIiwKICAgICAgICAgICAgICAiQ0FQX1NFVEdJRCIsCiAgICAgICAgICAgICAgIkNBUF9TRVRVSUQiLAogICAgICAgICAgICAgICJDQVBfU0VURkNBUCIsCiAgICAgICAgICAgICAgIkNBUF9TRVRQQ0FQIiwKICAgICAgICAgICAgICAiQ0FQX05FVF9CSU5EX1NFUlZJQ0UiLAogICAgICAgICAgICAgICJDQVBfU1lTX0NIUk9PVCIsCiAgICAgICAgICAgICAgIkNBUF9LSUxMIiwKICAgICAgICAgICAgICAiQ0FQX0FVRElUX1dSSVRFIgogICAgICAgICAgICBdCiAgICAgICAgICB9LAogICAgICAgICAgIm5vTmV3UHJpdmlsZWdlcyI6IHRydWUKICAgICAgICB9LAogICAgICAgICJyb290IjogewogICAgICAgICAgInBhdGgiOiAiL3J1bi9rYXRhLWNvbnRhaW5lcnMvc2hhcmVkL2NvbnRhaW5lcnMvJChidW5kbGUtaWQpIiwKICAgICAgICAgICJyZWFkb25seSI6IHRydWUKICAgICAgICB9LAogICAgICAgICJob3N0bmFtZSI6ICJidXN5Ym94IiwKICAgICAgICAibW91bnRzIjogWwogICAgICAgICAgewogICAgICAgICAgICAiZGVzdGluYXRpb24iOiAiL3Byb2MiLAogICAgICAgICAgICAidHlwZSI6ICJwcm9jIiwKICAgICAgICAgICAgInNvdXJjZSI6ICJwcm9jIiwKICAgICAgICAgICAgIm9wdGlvbnMiOiBbCiAgICAgICAgICAgICAgIm5vc3VpZCIsCiAgICAgICAgICAgICAgIm5vZXhlYyIsCiAgICAgICAgICAgICAgIm5vZGV2IgogICAgICAgICAgICBdCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiZGVzdGluYXRpb24iOiAiL2RldiIsCiAgICAgICAgICAgICJ0eXBlIjogInRtcGZzIiwKICAgICAgICAgICAgInNvdXJjZSI6ICJ0bXBmcyIsCiAgICAgICAgICAgICJvcHRpb25zIjogWwogICAgICAgICAgICAgICJub3N1aWQiLAogICAgICAgICAgICAgICJzdHJpY3RhdGltZSIsCiAgICAgICAgICAgICAgIm1vZGU9NzU1IiwKICAgICAgICAgICAgICAic2l6ZT02NTUzNmsiCiAgICAgICAgICAgIF0KICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJkZXN0aW5hdGlvbiI6ICIvZGV2L3B0cyIsCiAgICAgICAgICAgICJ0eXBlIjogImRldnB0cyIsCiAgICAgICAgICAgICJzb3VyY2UiOiAiZGV2cHRzIiwKICAgICAgICAgICAgIm9wdGlvbnMiOiBbCiAgICAgICAgICAgICAgIm5vc3VpZCIsCiAgICAgICAgICAgICAgIm5vZXhlYyIsCiAgICAgICAgICAgICAgIm5ld2luc3RhbmNlIiwKICAgICAgICAgICAgICAicHRteG1vZGU9MDY2NiIsCiAgICAgICAgICAgICAgIm1vZGU9MDYyMCIsCiAgICAgICAgICAgICAgImdpZD01IgogICAgICAgICAgICBdCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiZGVzdGluYXRpb24iOiAiL2Rldi9zaG0iLAogICAgICAgICAgICAidHlwZSI6ICJiaW5kIiwKICAgICAgICAgICAgInNvdXJjZSI6ICIvcnVuL2thdGEtY29udGFpbmVycy9zYW5kYm94L3NobSIsCiAgICAgICAgICAgICJvcHRpb25zIjogWwogICAgICAgICAgICAgICJyYmluZCIKICAgICAgICAgICAgXQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImRlc3RpbmF0aW9uIjogIi9kZXYvbXF1ZXVlIiwKICAgICAgICAgICAgInR5cGUiOiAibXF1ZXVlIiwKICAgICAgICAgICAgInNvdXJjZSI6ICJtcXVldWUiLAogICAgICAgICAgICAib3B0aW9ucyI6IFsKICAgICAgICAgICAgICAibm9zdWlkIiwKICAgICAgICAgICAgICAibm9leGVjIiwKICAgICAgICAgICAgICAibm9kZXYiCiAgICAgICAgICAgIF0KICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJkZXN0aW5hdGlvbiI6ICIvc3lzIiwKICAgICAgICAgICAgInR5cGUiOiAic3lzZnMiLAogICAgICAgICAgICAic291cmNlIjogInN5c2ZzIiwKICAgICAgICAgICAgIm9wdGlvbnMiOiBbCiAgICAgICAgICAgICAgIm5vc3VpZCIsCiAgICAgICAgICAgICAgIm5vZXhlYyIsCiAgICAgICAgICAgICAgIm5vZGV2IiwKICAgICAgICAgICAgICAicm8iCiAgICAgICAgICAgIF0KICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJkZXN0aW5hdGlvbiI6ICIvZXRjL3Jlc29sdi5jb25mIiwKICAgICAgICAgICAgInR5cGUiOiAiYmluZCIsCiAgICAgICAgICAgICJzb3VyY2UiOiAiXi9ydW4va2F0YS1jb250YWluZXJzL3NoYXJlZC9jb250YWluZXJzLyQoYnVuZGxlLWlkKS1bYS16MC05XXsxNn0tcmVzb2x2LmNvbmYkIiwKICAgICAgICAgICAgIm9wdGlvbnMiOiBbCiAgICAgICAgICAgICAgInJiaW5kIiwKICAgICAgICAgICAgICAicm8iLAogICAgICAgICAgICAgICJub3N1aWQiLAogICAgICAgICAgICAgICJub2RldiIsCiAgICAgICAgICAgICAgIm5vZXhlYyIKICAgICAgICAgICAgXQogICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgImFubm90YXRpb25zIjogewogICAgICAgICAgImlvLmthdGFjb250YWluZXJzLnBrZy5vY2kuYnVuZGxlX3BhdGgiOiAiL3J1bi9jb250YWluZXJkL2lvLmNvbnRhaW5lcmQucnVudGltZS52Mi50YXNrL2s4cy5pby8kKGJ1bmRsZS1pZCkiLAogICAgICAgICAgImlvLmthdGFjb250YWluZXJzLnBrZy5vY2kuY29udGFpbmVyX3R5cGUiOiAicG9kX3NhbmRib3giLAogICAgICAgICAgImlvLmt1YmVybmV0ZXMuY3JpLmNvbnRhaW5lci10eXBlIjogInNhbmRib3giLAogICAgICAgICAgImlvLmt1YmVybmV0ZXMuY3JpLnNhbmRib3gtaWQiOiAiXlthLXowLTldezY0fSQiLAogICAgICAgICAgImlvLmt1YmVybmV0ZXMuY3JpLnNhbmRib3gtbG9nLWRpcmVjdG9yeSI6ICJeL3Zhci9sb2cvcG9kcy9kZWZhdWx0XyQoc2FuZGJveC1uYW1lKV9bMC05YS1mXXs4fS1bMC05YS1mXXs0fS1bMC05YS1mXXs0fS1bMC05YS1mXXs0fS1bMC05YS1mXXsxMn0kIiwKICAgICAgICAgICJpby5rdWJlcm5ldGVzLmNyaS5zYW5kYm94LW5hbWVzcGFjZSI6ICJkZWZhdWx0IiwKICAgICAgICAgICJuZXJkY3RsL25ldHdvcmstbmFtZXNwYWNlIjogIl4vdmFyL3J1bi9uZXRucy9jbmktWzAtOWEtZl17OH0tWzAtOWEtZl17NH0tWzAtOWEtZl17NH0tWzAtOWEtZl17NH0tWzAtOWEtZl17MTJ9JCIKICAgICAgICB9LAogICAgICAgICJsaW51eCI6IHsKICAgICAgICAgICJuYW1lc3BhY2VzIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgInR5cGUiOiAiaXBjIgogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgInR5cGUiOiAidXRzIgogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgInR5cGUiOiAibW91bnQiCiAgICAgICAgICAgIH0KICAgICAgICAgIF0sCiAgICAgICAgICAibWFza2VkUGF0aHMiOiBbCiAgICAgICAgICAgICIvcHJvYy9hY3BpIiwKICAgICAgICAgICAgIi9wcm9jL2Fzb3VuZCIsCiAgICAgICAgICAgICIvcHJvYy9rY29yZSIsCiAgICAgICAgICAgICIvcHJvYy9rZXlzIiwKICAgICAgICAgICAgIi9wcm9jL2xhdGVuY3lfc3RhdHMiLAogICAgICAgICAgICAiL3Byb2MvdGltZXJfbGlzdCIsCiAgICAgICAgICAgICIvcHJvYy90aW1lcl9zdGF0cyIsCiAgICAgICAgICAgICIvcHJvYy9zY2hlZF9kZWJ1ZyIsCiAgICAgICAgICAgICIvc3lzL2Zpcm13YXJlIiwKICAgICAgICAgICAgIi9wcm9jL3Njc2kiCiAgICAgICAgICBdLAogICAgICAgICAgInJlYWRvbmx5UGF0aHMiOiBbCiAgICAgICAgICAgICIvcHJvYy9idXMiLAogICAgICAgICAgICAiL3Byb2MvZnMiLAogICAgICAgICAgICAiL3Byb2MvaXJxIiwKICAgICAgICAgICAgIi9wcm9jL3N5cyIsCiAgICAgICAgICAgICIvcHJvYy9zeXNycS10cmlnZ2VyIgogICAgICAgICAgXQogICAgICAgIH0KICAgICAgfSwKICAgICAgInN0b3JhZ2VzIjogW10KICAgIH0sCiAgICB7CiAgICAgICJvY2kiOiB7CiAgICAgICAgIm9jaVZlcnNpb24iOiAiMS4xLjAtcmMuMSIsCiAgICAgICAgInByb2Nlc3MiOiB7CiAgICAgICAgICAidGVybWluYWwiOiBmYWxzZSwKICAgICAgICAgICJ1c2VyIjogewogICAgICAgICAgICAidWlkIjogMCwKICAgICAgICAgICAgImdpZCI6IDAKICAgICAgICAgIH0sCiAgICAgICAgICAiYXJncyI6IFsKICAgICAgICAgICAgInNoIgogICAgICAgICAgXSwKICAgICAgICAgICJlbnYiOiBbCiAgICAgICAgICAgICJQQVRIPS91c3IvbG9jYWwvc2JpbjovdXNyL2xvY2FsL2JpbjovdXNyL3NiaW46L3Vzci9iaW46L3NiaW46L2JpbiIsCiAgICAgICAgICAgICJIT1NUTkFNRT1idXN5Ym94IgogICAgICAgICAgXSwKICAgICAgICAgICJjd2QiOiAiLyIsCiAgICAgICAgICAiY2FwYWJpbGl0aWVzIjogewogICAgICAgICAgICAiYm91bmRpbmciOiBbCiAgICAgICAgICAgICAgIkNBUF9DSE9XTiIsCiAgICAgICAgICAgICAgIkNBUF9EQUNfT1ZFUlJJREUiLAogICAgICAgICAgICAgICJDQVBfRlNFVElEIiwKICAgICAgICAgICAgICAiQ0FQX0ZPV05FUiIsCiAgICAgICAgICAgICAgIkNBUF9NS05PRCIsCiAgICAgICAgICAgICAgIkNBUF9ORVRfUkFXIiwKICAgICAgICAgICAgICAiQ0FQX1NFVEdJRCIsCiAgICAgICAgICAgICAgIkNBUF9TRVRVSUQiLAogICAgICAgICAgICAgICJDQVBfU0VURkNBUCIsCiAgICAgICAgICAgICAgIkNBUF9TRVRQQ0FQIiwKICAgICAgICAgICAgICAiQ0FQX05FVF9CSU5EX1NFUlZJQ0UiLAogICAgICAgICAgICAgICJDQVBfU1lTX0NIUk9PVCIsCiAgICAgICAgICAgICAgIkNBUF9LSUxMIiwKICAgICAgICAgICAgICAiQ0FQX0FVRElUX1dSSVRFIgogICAgICAgICAgICBdLAogICAgICAgICAgICAiZWZmZWN0aXZlIjogWwogICAgICAgICAgICAgICJDQVBfQ0hPV04iLAogICAgICAgICAgICAgICJDQVBfREFDX09WRVJSSURFIiwKICAgICAgICAgICAgICAiQ0FQX0ZTRVRJRCIsCiAgICAgICAgICAgICAgIkNBUF9GT1dORVIiLAogICAgICAgICAgICAgICJDQVBfTUtOT0QiLAogICAgICAgICAgICAgICJDQVBfTkVUX1JBVyIsCiAgICAgICAgICAgICAgIkNBUF9TRVRHSUQiLAogICAgICAgICAgICAgICJDQVBfU0VUVUlEIiwKICAgICAgICAgICAgICAiQ0FQX1NFVEZDQVAiLAogICAgICAgICAgICAgICJDQVBfU0VUUENBUCIsCiAgICAgICAgICAgICAgIkNBUF9ORVRfQklORF9TRVJWSUNFIiwKICAgICAgICAgICAgICAiQ0FQX1NZU19DSFJPT1QiLAogICAgICAgICAgICAgICJDQVBfS0lMTCIsCiAgICAgICAgICAgICAgIkNBUF9BVURJVF9XUklURSIKICAgICAgICAgICAgXSwKICAgICAgICAgICAgInBlcm1pdHRlZCI6IFsKICAgICAgICAgICAgICAiQ0FQX0NIT1dOIiwKICAgICAgICAgICAgICAiQ0FQX0RBQ19PVkVSUklERSIsCiAgICAgICAgICAgICAgIkNBUF9GU0VUSUQiLAogICAgICAgICAgICAgICJDQVBfRk9XTkVSIiwKICAgICAgICAgICAgICAiQ0FQX01LTk9EIiwKICAgICAgICAgICAgICAiQ0FQX05FVF9SQVciLAogICAgICAgICAgICAgICJDQVBfU0VUR0lEIiwKICAgICAgICAgICAgICAiQ0FQX1NFVFVJRCIsCiAgICAgICAgICAgICAgIkNBUF9TRVRGQ0FQIiwKICAgICAgICAgICAgICAiQ0FQX1NFVFBDQVAiLAogICAgICAgICAgICAgICJDQVBfTkVUX0JJTkRfU0VSVklDRSIsCiAgICAgICAgICAgICAgIkNBUF9TWVNfQ0hST09UIiwKICAgICAgICAgICAgICAiQ0FQX0tJTEwiLAogICAgICAgICAgICAgICJDQVBfQVVESVRfV1JJVEUiCiAgICAgICAgICAgIF0KICAgICAgICAgIH0sCiAgICAgICAgICAibm9OZXdQcml2aWxlZ2VzIjogZmFsc2UKICAgICAgICB9LAogICAgICAgICJyb290IjogewogICAgICAgICAgInBhdGgiOiAiL3J1bi9rYXRhLWNvbnRhaW5lcnMvc2hhcmVkL2NvbnRhaW5lcnMvJChidW5kbGUtaWQpIiwKICAgICAgICAgICJyZWFkb25seSI6IGZhbHNlCiAgICAgICAgfSwKICAgICAgICAiaG9zdG5hbWUiOiAiYnVzeWJveCIsCiAgICAgICAgIm1vdW50cyI6IFsKICAgICAgICAgIHsKICAgICAgICAgICAgImRlc3RpbmF0aW9uIjogIi9wcm9jIiwKICAgICAgICAgICAgInR5cGUiOiAicHJvYyIsCiAgICAgICAgICAgICJzb3VyY2UiOiAicHJvYyIsCiAgICAgICAgICAgICJvcHRpb25zIjogWwogICAgICAgICAgICAgICJub3N1aWQiLAogICAgICAgICAgICAgICJub2V4ZWMiLAogICAgICAgICAgICAgICJub2RldiIKICAgICAgICAgICAgXQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImRlc3RpbmF0aW9uIjogIi9kZXYiLAogICAgICAgICAgICAidHlwZSI6ICJ0bXBmcyIsCiAgICAgICAgICAgICJzb3VyY2UiOiAidG1wZnMiLAogICAgICAgICAgICAib3B0aW9ucyI6IFsKICAgICAgICAgICAgICAibm9zdWlkIiwKICAgICAgICAgICAgICAic3RyaWN0YXRpbWUiLAogICAgICAgICAgICAgICJtb2RlPTc1NSIsCiAgICAgICAgICAgICAgInNpemU9NjU1MzZrIgogICAgICAgICAgICBdCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiZGVzdGluYXRpb24iOiAiL2Rldi9wdHMiLAogICAgICAgICAgICAidHlwZSI6ICJkZXZwdHMiLAogICAgICAgICAgICAic291cmNlIjogImRldnB0cyIsCiAgICAgICAgICAgICJvcHRpb25zIjogWwogICAgICAgICAgICAgICJub3N1aWQiLAogICAgICAgICAgICAgICJub2V4ZWMiLAogICAgICAgICAgICAgICJuZXdpbnN0YW5jZSIsCiAgICAgICAgICAgICAgInB0bXhtb2RlPTA2NjYiLAogICAgICAgICAgICAgICJtb2RlPTA2MjAiLAogICAgICAgICAgICAgICJnaWQ9NSIKICAgICAgICAgICAgXQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImRlc3RpbmF0aW9uIjogIi9kZXYvc2htIiwKICAgICAgICAgICAgInR5cGUiOiAiYmluZCIsCiAgICAgICAgICAgICJzb3VyY2UiOiAiL3J1bi9rYXRhLWNvbnRhaW5lcnMvc2FuZGJveC9zaG0iLAogICAgICAgICAgICAib3B0aW9ucyI6IFsKICAgICAgICAgICAgICAicmJpbmQiCiAgICAgICAgICAgIF0KICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJkZXN0aW5hdGlvbiI6ICIvZGV2L21xdWV1ZSIsCiAgICAgICAgICAgICJ0eXBlIjogIm1xdWV1ZSIsCiAgICAgICAgICAgICJzb3VyY2UiOiAibXF1ZXVlIiwKICAgICAgICAgICAgIm9wdGlvbnMiOiBbCiAgICAgICAgICAgICAgIm5vc3VpZCIsCiAgICAgICAgICAgICAgIm5vZXhlYyIsCiAgICAgICAgICAgICAgIm5vZGV2IgogICAgICAgICAgICBdCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiZGVzdGluYXRpb24iOiAiL3N5cyIsCiAgICAgICAgICAgICJ0eXBlIjogInN5c2ZzIiwKICAgICAgICAgICAgInNvdXJjZSI6ICJzeXNmcyIsCiAgICAgICAgICAgICJvcHRpb25zIjogWwogICAgICAgICAgICAgICJub3N1aWQiLAogICAgICAgICAgICAgICJub2V4ZWMiLAogICAgICAgICAgICAgICJub2RldiIsCiAgICAgICAgICAgICAgInJvIgogICAgICAgICAgICBdCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiZGVzdGluYXRpb24iOiAiL3N5cy9mcy9jZ3JvdXAiLAogICAgICAgICAgICAidHlwZSI6ICJjZ3JvdXAiLAogICAgICAgICAgICAic291cmNlIjogImNncm91cCIsCiAgICAgICAgICAgICJvcHRpb25zIjogWwogICAgICAgICAgICAgICJub3N1aWQiLAogICAgICAgICAgICAgICJub2V4ZWMiLAogICAgICAgICAgICAgICJub2RldiIsCiAgICAgICAgICAgICAgInJlbGF0aW1lIiwKICAgICAgICAgICAgICAicm8iCiAgICAgICAgICAgIF0KICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJkZXN0aW5hdGlvbiI6ICIvZXRjL2hvc3RzIiwKICAgICAgICAgICAgInR5cGUiOiAiYmluZCIsCiAgICAgICAgICAgICJzb3VyY2UiOiAiXi9ydW4va2F0YS1jb250YWluZXJzL3NoYXJlZC9jb250YWluZXJzLyQoYnVuZGxlLWlkKS1bYS16MC05XXsxNn0taG9zdHMkIiwKICAgICAgICAgICAgIm9wdGlvbnMiOiBbCiAgICAgICAgICAgICAgInJiaW5kIiwKICAgICAgICAgICAgICAicnByaXZhdGUiLAogICAgICAgICAgICAgICJydyIKICAgICAgICAgICAgXQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImRlc3RpbmF0aW9uIjogIi9kZXYvdGVybWluYXRpb24tbG9nIiwKICAgICAgICAgICAgInR5cGUiOiAiYmluZCIsCiAgICAgICAgICAgICJzb3VyY2UiOiAiXi9ydW4va2F0YS1jb250YWluZXJzL3NoYXJlZC9jb250YWluZXJzLyQoYnVuZGxlLWlkKS1bYS16MC05XXsxNn0tdGVybWluYXRpb24tbG9nJCIsCiAgICAgICAgICAgICJvcHRpb25zIjogWwogICAgICAgICAgICAgICJyYmluZCIsCiAgICAgICAgICAgICAgInJwcml2YXRlIiwKICAgICAgICAgICAgICAicnciCiAgICAgICAgICAgIF0KICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJkZXN0aW5hdGlvbiI6ICIvZXRjL2hvc3RuYW1lIiwKICAgICAgICAgICAgInR5cGUiOiAiYmluZCIsCiAgICAgICAgICAgICJzb3VyY2UiOiAiXi9ydW4va2F0YS1jb250YWluZXJzL3NoYXJlZC9jb250YWluZXJzLyQoYnVuZGxlLWlkKS1bYS16MC05XXsxNn0taG9zdG5hbWUkIiwKICAgICAgICAgICAgIm9wdGlvbnMiOiBbCiAgICAgICAgICAgICAgInJiaW5kIiwKICAgICAgICAgICAgICAicnByaXZhdGUiLAogICAgICAgICAgICAgICJydyIKICAgICAgICAgICAgXQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImRlc3RpbmF0aW9uIjogIi9ldGMvcmVzb2x2LmNvbmYiLAogICAgICAgICAgICAidHlwZSI6ICJiaW5kIiwKICAgICAgICAgICAgInNvdXJjZSI6ICJeL3J1bi9rYXRhLWNvbnRhaW5lcnMvc2hhcmVkL2NvbnRhaW5lcnMvJChidW5kbGUtaWQpLVthLXowLTldezE2fS1yZXNvbHYuY29uZiQiLAogICAgICAgICAgICAib3B0aW9ucyI6IFsKICAgICAgICAgICAgICAicmJpbmQiLAogICAgICAgICAgICAgICJycHJpdmF0ZSIsCiAgICAgICAgICAgICAgInJ3IgogICAgICAgICAgICBdCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiZGVzdGluYXRpb24iOiAiL3Zhci9ydW4vc2VjcmV0cy9rdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50IiwKICAgICAgICAgICAgInR5cGUiOiAiYmluZCIsCiAgICAgICAgICAgICJzb3VyY2UiOiAiXi9ydW4va2F0YS1jb250YWluZXJzL3NoYXJlZC9jb250YWluZXJzLyQoYnVuZGxlLWlkKS1bYS16MC05XXsxNn0tc2VydmljZWFjY291bnQkIiwKICAgICAgICAgICAgIm9wdGlvbnMiOiBbCiAgICAgICAgICAgICAgInJiaW5kIiwKICAgICAgICAgICAgICAicnByaXZhdGUiLAogICAgICAgICAgICAgICJybyIKICAgICAgICAgICAgXQogICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgImFubm90YXRpb25zIjogewogICAgICAgICAgImlvLmthdGFjb250YWluZXJzLnBrZy5vY2kuYnVuZGxlX3BhdGgiOiAiL3J1bi9jb250YWluZXJkL2lvLmNvbnRhaW5lcmQucnVudGltZS52Mi50YXNrL2s4cy5pby8kKGJ1bmRsZS1pZCkiLAogICAgICAgICAgImlvLmthdGFjb250YWluZXJzLnBrZy5vY2kuY29udGFpbmVyX3R5cGUiOiAicG9kX2NvbnRhaW5lciIsCiAgICAgICAgICAiaW8ua3ViZXJuZXRlcy5jcmkuY29udGFpbmVyLW5hbWUiOiAiYnVzeWJveCIsCiAgICAgICAgICAiaW8ua3ViZXJuZXRlcy5jcmkuY29udGFpbmVyLXR5cGUiOiAiY29udGFpbmVyIiwKICAgICAgICAgICJpby5rdWJlcm5ldGVzLmNyaS5pbWFnZS1uYW1lIjogImRvY2tlci5pby9saWJyYXJ5L2J1c3lib3g6MS4zNi4wIiwKICAgICAgICAgICJpby5rdWJlcm5ldGVzLmNyaS5zYW5kYm94LWlkIjogIl5bYS16MC05XXs2NH0kIiwKICAgICAgICAgICJpby5rdWJlcm5ldGVzLmNyaS5zYW5kYm94LW5hbWVzcGFjZSI6ICJkZWZhdWx0IgogICAgICAgIH0sCiAgICAgICAgImxpbnV4IjogewogICAgICAgICAgIm5hbWVzcGFjZXMiOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAidHlwZSI6ICJpcGMiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAidHlwZSI6ICJ1dHMiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAidHlwZSI6ICJtb3VudCIKICAgICAgICAgICAgfQogICAgICAgICAgXSwKICAgICAgICAgICJtYXNrZWRQYXRocyI6IFsKICAgICAgICAgICAgIi9wcm9jL2FjcGkiLAogICAgICAgICAgICAiL3Byb2Mva2NvcmUiLAogICAgICAgICAgICAiL3Byb2Mva2V5cyIsCiAgICAgICAgICAgICIvcHJvYy9sYXRlbmN5X3N0YXRzIiwKICAgICAgICAgICAgIi9wcm9jL3RpbWVyX2xpc3QiLAogICAgICAgICAgICAiL3Byb2MvdGltZXJfc3RhdHMiLAogICAgICAgICAgICAiL3Byb2Mvc2NoZWRfZGVidWciLAogICAgICAgICAgICAiL3Byb2Mvc2NzaSIsCiAgICAgICAgICAgICIvc3lzL2Zpcm13YXJlIgogICAgICAgICAgXSwKICAgICAgICAgICJyZWFkb25seVBhdGhzIjogWwogICAgICAgICAgICAiL3Byb2MvYXNvdW5kIiwKICAgICAgICAgICAgIi9wcm9jL2J1cyIsCiAgICAgICAgICAgICIvcHJvYy9mcyIsCiAgICAgICAgICAgICIvcHJvYy9pcnEiLAogICAgICAgICAgICAiL3Byb2Mvc3lzIiwKICAgICAgICAgICAgIi9wcm9jL3N5c3JxLXRyaWdnZXIiCiAgICAgICAgICBdCiAgICAgICAgfQogICAgICB9LAogICAgICAic3RvcmFnZXMiOiBbXQogICAgfQogIF0KfQ== + io.katacontainers.config.agent.policy: cGFja2FnZSBhZ2VudF9wb2xpY3kKCmltcG9ydCBmdXR1cmUua2V5d29yZHMuaW4KaW1wb3J0IGZ1dHVyZS5rZXl3b3Jkcy5ldmVyeQoKaW1wb3J0IGlucHV0CgojIFJlcXVlc3RzIHRoYXQgYXJlIGFsd2F5cyBhbGxvd2VkLgpkZWZhdWx0IENyZWF0ZVNhbmRib3hSZXF1ZXN0IDo9IHRydWUKZGVmYXVsdCBEZXN0cm95U2FuZGJveFJlcXVlc3QgOj0gdHJ1ZQpkZWZhdWx0IEdldE9PTUV2ZW50UmVxdWVzdCA6PSB0cnVlCmRlZmF1bHQgR3Vlc3REZXRhaWxzUmVxdWVzdCA6PSB0cnVlCmRlZmF1bHQgT25saW5lQ1BVTWVtUmVxdWVzdCA6PSB0cnVlCmRlZmF1bHQgUHVsbEltYWdlUmVxdWVzdCA6PSB0cnVlCmRlZmF1bHQgUmVtb3ZlQ29udGFpbmVyUmVxdWVzdCA6PSB0cnVlCmRlZmF1bHQgUmVtb3ZlU3RhbGVWaXJ0aW9mc1NoYXJlTW91bnRzUmVxdWVzdCA6PSB0cnVlCmRlZmF1bHQgU2lnbmFsUHJvY2Vzc1JlcXVlc3QgOj0gdHJ1ZQpkZWZhdWx0IFN0YXJ0Q29udGFpbmVyUmVxdWVzdCA6PSB0cnVlCmRlZmF1bHQgU3RhdHNDb250YWluZXJSZXF1ZXN0IDo9IHRydWUKZGVmYXVsdCBUdHlXaW5SZXNpemVSZXF1ZXN0IDo9IHRydWUKZGVmYXVsdCBVcGRhdGVFcGhlbWVyYWxNb3VudHNSZXF1ZXN0IDo9IHRydWUKZGVmYXVsdCBVcGRhdGVJbnRlcmZhY2VSZXF1ZXN0IDo9IHRydWUKZGVmYXVsdCBVcGRhdGVSb3V0ZXNSZXF1ZXN0IDo9IHRydWUKZGVmYXVsdCBXYWl0UHJvY2Vzc1JlcXVlc3QgOj0gdHJ1ZQoKIyBDb25maWd1cmUgdGhlIEFnZW50IHRvICphbGxvdyBhbnkgcmVxdWVzdHMgY2F1c2luZyBhIHBvbGljeSBmYWlsdXJlKi4KIyBUaGlzIGlzIGFuIHVuc2VjdXJlIGNvbmZpZ3VyYXRpb24gYnV0IGlzIHVzZWZ1bCBmb3IgYWxsb3dpbmcgdW5zZWN1cmUKIyBwb2RzIHRvIHN0YXJ0LCB0aGVuIGNvbm5lY3QgdG8gdGhlbSBhbmQgaW5zcGVjdCBPUEEgbG9ncyBmb3IgdGhlIHJvb3QKIyBjYXVzZSBvZiBhIGZhaWx1cmUuCiMgZGVmYXVsdCBBbGxvd1JlcXVlc3RzRmFpbGluZ1BvbGljeSA6PSB0cnVlCgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCkNyZWF0ZUNvbnRhaW5lclJlcXVlc3QgewogICAgc29tZSBwb2xpY3lfY29udGFpbmVyIGluIHBvbGljeV9kYXRhLmNvbnRhaW5lcnMKCiAgICBwb2xpY3lfb2NpIDo9IHBvbGljeV9jb250YWluZXIuT0NJCiAgICBwb2xpY3lfc3RvcmFnZXMgOj0gcG9saWN5X2NvbnRhaW5lci5zdG9yYWdlcwoKICAgIGlucHV0X29jaSA6PSBpbnB1dC5PQ0kKICAgIGlucHV0X3N0b3JhZ2VzIDo9IGlucHV0LnN0b3JhZ2VzCgogICAgcHJpbnQoIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0iKQogICAgcHJpbnQoIkNyZWF0ZUNvbnRhaW5lclJlcXVlc3Q6IG9jaSBWZXJzaW9uIikKICAgIHBvbGljeV9vY2kuVmVyc2lvbiAgICAgPT0gaW5wdXRfb2NpLlZlcnNpb24KCiAgICBwcmludCgiQ3JlYXRlQ29udGFpbmVyUmVxdWVzdDogcG9saWN5X29jaS5Sb290LlJlYWRvbmx5IikKICAgIHBvbGljeV9vY2kuUm9vdC5SZWFkb25seSAgPT0gaW5wdXRfb2NpLlJvb3QuUmVhZG9ubHkKCiAgICBwcmludCgiQ3JlYXRlQ29udGFpbmVyUmVxdWVzdDogYWxsb3cgYW5ub3RhdGlvbnMiKQogICAgYWxsb3dfYW5ub3RhdGlvbnMocG9saWN5X29jaSwgaW5wdXRfb2NpKQoKICAgIHByaW50KCJDcmVhdGVDb250YWluZXJSZXF1ZXN0OiBhbGxvd19ieV9hbm5vdGF0aW9ucyIpCiAgICBhbGxvd19ieV9hbm5vdGF0aW9ucyhwb2xpY3lfb2NpLCBpbnB1dF9vY2ksIHBvbGljeV9zdG9yYWdlcywgaW5wdXRfc3RvcmFnZXMpCgogICAgcHJpbnQoIkNyZWF0ZUNvbnRhaW5lclJlcXVlc3Q6IGFsbG93X2xpbnV4IikKICAgIGFsbG93X2xpbnV4KHBvbGljeV9vY2ksIGlucHV0X29jaSkKCiAgICBwcmludCgiQ3JlYXRlQ29udGFpbmVyUmVxdWVzdDogc3VjY2VzcyIpCn0KCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIyBSZWplY3QgdW5leHBlY3RlZCBhbm5vdGF0aW9ucy4KYWxsb3dfYW5ub3RhdGlvbnMocG9saWN5X29jaSwgaW5wdXRfb2NpKSB7CiAgICBub3QgaW5wdXRfb2NpLkFubm90YXRpb25zCn0KYWxsb3dfYW5ub3RhdGlvbnMocG9saWN5X29jaSwgaW5wdXRfb2NpKSB7CiAgICBpbnB1dF9rZXlzIDo9IG9iamVjdC5rZXlzKGlucHV0X29jaS5Bbm5vdGF0aW9ucykKCiAgICBldmVyeSBpbnB1dF9rZXkgaW4gaW5wdXRfa2V5cyB7CiAgICAgICAgcHJpbnQoImFsbG93X2Fubm90YXRpb25zOiBjaGVja2luZyBpbnB1dCBrZXkgPSIsIGlucHV0X2tleSkKICAgICAgICBhbGxvd19hbm5vdGF0aW9uX2tleShpbnB1dF9rZXksIHBvbGljeV9vY2kpCiAgICB9Cn0KCmFsbG93X2Fubm90YXRpb25fa2V5KGlucHV0X2tleSwgcG9saWN5X29jaSkgewogICAgc3RhcnRzd2l0aChpbnB1dF9rZXksICJpby5rdWJlcm5ldGVzLmNyaS4iKQp9CmFsbG93X2Fubm90YXRpb25fa2V5KGlucHV0X2tleSwgcG9saWN5X29jaSkgewogICAgc29tZSBwb2xpY3lfa2V5LCBfIGluIHBvbGljeV9vY2kuQW5ub3RhdGlvbnMKICAgIHBvbGljeV9rZXkgPT0gaW5wdXRfa2V5Cn0KCgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMgR2V0ICJpby5rdWJlcm5ldGVzLmNyaS5zYW5kYm94LW5hbWUiLCBhbmQgY29ycmVsYXRlIGl0cyB2YWx1ZSB3aXRoIG90aGVyCiMgYW5ub3RhdGlvbnMgYW5kIHByb2Nlc3MgZmllbGRzLgoKYWxsb3dfYnlfYW5ub3RhdGlvbnMocG9saWN5X29jaSwgaW5wdXRfb2NpLCBwb2xpY3lfc3RvcmFnZXMsIGlucHV0X3N0b3JhZ2VzKSB7CiAgICBwcmludCgiYWxsb3dfYnlfYW5ub3RhdGlvbnMgMTogbm8gaW8ua3ViZXJuZXRlcy5jcmkuc2FuZGJveC1uYW1lIGluIHBvbGljeSIpCiAgICBub3QgcG9saWN5X29jaS5Bbm5vdGF0aW9uc1siaW8ua3ViZXJuZXRlcy5jcmkuc2FuZGJveC1uYW1lIl0KCiAgICBpbnB1dF9zYW5kYm94X25hbWUgOj0gaW5wdXRfb2NpLkFubm90YXRpb25zWyJpby5rdWJlcm5ldGVzLmNyaS5zYW5kYm94LW5hbWUiXQoKICAgIHByaW50KCJhbGxvd19ieV9hbm5vdGF0aW9ucyAxOiBhbGxvd19ieV9zYW5kYm94X25hbWUiLCBpbnB1dF9zYW5kYm94X25hbWUpCiAgICBhbGxvd19ieV9zYW5kYm94X25hbWUocG9saWN5X29jaSwgaW5wdXRfb2NpLCBwb2xpY3lfc3RvcmFnZXMsIGlucHV0X3N0b3JhZ2VzLCBpbnB1dF9zYW5kYm94X25hbWUpCgogICAgcHJpbnQoImFsbG93X2J5X2Fubm90YXRpb25zIDE6IHN1Y2Nlc3MiKQp9CmFsbG93X2J5X2Fubm90YXRpb25zKHBvbGljeV9vY2ksIGlucHV0X29jaSwgcG9saWN5X3N0b3JhZ2VzLCBpbnB1dF9zdG9yYWdlcykgewogICAgcHJpbnQoImFsbG93X2J5X2Fubm90YXRpb25zIDI6IGlvLmt1YmVybmV0ZXMuY3JpLnNhbmRib3gtbmFtZSIpCiAgICBwb2xpY3lfc2FuZGJveF9uYW1lIDo9IHBvbGljeV9vY2kuQW5ub3RhdGlvbnNbImlvLmt1YmVybmV0ZXMuY3JpLnNhbmRib3gtbmFtZSJdCiAgICBpbnB1dF9zYW5kYm94X25hbWUgOj0gaW5wdXRfb2NpLkFubm90YXRpb25zWyJpby5rdWJlcm5ldGVzLmNyaS5zYW5kYm94LW5hbWUiXQoKICAgIHByaW50KCJhbGxvd19ieV9hbm5vdGF0aW9ucyAyOiBpbnB1dCBzYW5kYm94ID0iLCBpbnB1dF9zYW5kYm94X25hbWUsICJwb2xpY3kgc2FuZGJveCA9IiwgcG9saWN5X3NhbmRib3hfbmFtZSkKICAgIGFsbG93X3NhbmRib3hfbmFtZShwb2xpY3lfc2FuZGJveF9uYW1lLCBpbnB1dF9zYW5kYm94X25hbWUpCgogICAgcHJpbnQoImFsbG93X2J5X2Fubm90YXRpb25zIDI6IGFsbG93X2J5X3NhbmRib3hfbmFtZSIsIGlucHV0X3NhbmRib3hfbmFtZSkKICAgIGFsbG93X2J5X3NhbmRib3hfbmFtZShwb2xpY3lfb2NpLCBpbnB1dF9vY2ksIHBvbGljeV9zdG9yYWdlcywgaW5wdXRfc3RvcmFnZXMsIGlucHV0X3NhbmRib3hfbmFtZSkKCiAgICBwcmludCgiYWxsb3dfYnlfYW5ub3RhdGlvbnMgMjogc3VjY2VzcyIpCn0KCmFsbG93X2J5X3NhbmRib3hfbmFtZShwb2xpY3lfb2NpLCBpbnB1dF9vY2ksIHBvbGljeV9zdG9yYWdlcywgaW5wdXRfc3RvcmFnZXMsIHNhbmRib3hfbmFtZSkgewogICAgcHJpbnQoImFsbG93X2J5X3NhbmRib3hfbmFtZTogc3RhcnRpbmciKQoKICAgIHBvbGljeV9uYW1lc3BhY2UgOj0gcG9saWN5X29jaS5Bbm5vdGF0aW9uc1siaW8ua3ViZXJuZXRlcy5jcmkuc2FuZGJveC1uYW1lc3BhY2UiXQogICAgaW5wdXRfbmFtZXNwYWNlIDo9IGlucHV0X29jaS5Bbm5vdGF0aW9uc1siaW8ua3ViZXJuZXRlcy5jcmkuc2FuZGJveC1uYW1lc3BhY2UiXQogICAgcHJpbnQoImFsbG93X2J5X3NhbmRib3hfbmFtZTogcG9saWN5X25hbWVzcGFjZSA9IiwgcG9saWN5X25hbWVzcGFjZSwgImlucHV0X25hbWVzcGFjZSA9IiwgaW5wdXRfbmFtZXNwYWNlKQogICAgcG9saWN5X25hbWVzcGFjZSA9PSBpbnB1dF9uYW1lc3BhY2UKCiAgICBwcmludCgiYWxsb3dfYnlfc2FuZGJveF9uYW1lOiBhbGxvd19ieV9jb250YWluZXJfdHlwZXMiKQogICAgYWxsb3dfYnlfY29udGFpbmVyX3R5cGVzKHBvbGljeV9vY2ksIGlucHV0X29jaSwgc2FuZGJveF9uYW1lLCBwb2xpY3lfbmFtZXNwYWNlKQoKICAgIHByaW50KCJhbGxvd19ieV9zYW5kYm94X25hbWU6IGFsbG93X2J5X2J1bmRsZV9vcl9zYW5kYm94X2lkIikKICAgIGFsbG93X2J5X2J1bmRsZV9vcl9zYW5kYm94X2lkKHBvbGljeV9vY2ksIGlucHV0X29jaSwgcG9saWN5X3N0b3JhZ2VzLCBpbnB1dF9zdG9yYWdlcykKCiAgICBwcmludCgiYWxsb3dfYnlfc2FuZGJveF9uYW1lOiBhbGxvd19wcm9jZXNzIikKICAgIGFsbG93X3Byb2Nlc3MocG9saWN5X29jaSwgaW5wdXRfb2NpLCBzYW5kYm94X25hbWUpCgogICAgcHJpbnQoImFsbG93X2J5X3NhbmRib3hfbmFtZTogc3VjY2VzcyIpCn0KCmFsbG93X3NhbmRib3hfbmFtZShwb2xpY3lfc2FuZGJveF9uYW1lLCBpbnB1dF9zYW5kYm94X25hbWUpIHsKICAgIHByaW50KCJhbGxvd19zYW5kYm94X25hbWUgMTogc2FtZSBuYW1lIikKICAgIHBvbGljeV9zYW5kYm94X25hbWUgPT0gaW5wdXRfc2FuZGJveF9uYW1lCiAgICBwcmludCgiYWxsb3dfc2FuZGJveF9uYW1lIDE6IHN1Y2Nlc3MiKQp9CmFsbG93X3NhbmRib3hfbmFtZShwb2xpY3lfc2FuZGJveF9uYW1lLCBpbnB1dF9zYW5kYm94X25hbWUpIHsKICAgIHByaW50KCJhbGxvd19zYW5kYm94X25hbWUgMjogZ2VuZXJhdGVkIG5hbWUiKQoKICAgICMgVE9ETzogc2hvdWxkIGdlbmVyYXRlZCBuYW1lcyBiZSBoYW5kbGVkIGRpZmZlcmVudGx5PwogICAgY29udGFpbnMocG9saWN5X3NhbmRib3hfbmFtZSwgIiQoZ2VuZXJhdGVkLW5hbWUpIikKCiAgICBwcmludCgiYWxsb3dfc2FuZGJveF9uYW1lIDI6IHN1Y2Nlc3MiKQp9CiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIyAtIENoZWNrIHRoYXQgdGhlICJpby5rdWJlcm5ldGVzLmNyaS5jb250YWluZXItdHlwZSIgYW5kCiMgICAiaW8ua2F0YWNvbnRhaW5lcnMucGtnLm9jaS5jb250YWluZXJfdHlwZSIgYW5ub3RhdGlvbnMKIyAgIGRlc2lnbmF0ZSB0aGUgZXhwZWN0ZWQgdHlwZSAtIGVpdGhlciBhICJzYW5kYm94IiBvciBhCiMgICAiY29udGFpbmVyIiB0eXBlLgojCiMgLSBUaGVuLCB2YWxpZGF0ZSBvdGhlciBhbm5vdGF0aW9ucyBiYXNlZCBvbiB0aGUgYWN0dWFsCiMgICAic2FuZGJveCIgb3IgImNvbnRhaW5lciIgdmFsdWUgZnJvbSB0aGUgaW5wdXQgY29udGFpbmVyLgoKYWxsb3dfYnlfY29udGFpbmVyX3R5cGVzKHBvbGljeV9vY2ksIGlucHV0X29jaSwgc2FuZGJveF9uYW1lLCBzYW5kYm94X25hbWVzcGFjZSkgewogICAgcHJpbnQoImFsbG93X2J5X2NvbnRhaW5lcl90eXBlczogY2hlY2tpbmcgaW8ua3ViZXJuZXRlcy5jcmkuY29udGFpbmVyLXR5cGUiKQogICAgCiAgICBwb2xpY3lfY3JpX3R5cGUgOj0gcG9saWN5X29jaS5Bbm5vdGF0aW9uc1siaW8ua3ViZXJuZXRlcy5jcmkuY29udGFpbmVyLXR5cGUiXQogICAgcHJpbnQoImFsbG93X2J5X2NvbnRhaW5lcl90eXBlczogcG9saWN5IHR5cGUgPSIsIHBvbGljeV9jcmlfdHlwZSkKICAgIAogICAgaW5wdXRfY3JpX3R5cGUgOj0gaW5wdXRfb2NpLkFubm90YXRpb25zWyJpby5rdWJlcm5ldGVzLmNyaS5jb250YWluZXItdHlwZSJdCiAgICBwcmludCgiYWxsb3dfYnlfY29udGFpbmVyX3R5cGVzOiBpbnB1dCB0eXBlID0iLCBpbnB1dF9jcmlfdHlwZSkKICAgIAogICAgcG9saWN5X2NyaV90eXBlID09IGlucHV0X2NyaV90eXBlCgogICAgcHJpbnQoImFsbG93X2J5X2NvbnRhaW5lcl90eXBlczogYWxsb3dfYnlfY29udGFpbmVyX3R5cGUiKQogICAgYWxsb3dfYnlfY29udGFpbmVyX3R5cGUoaW5wdXRfY3JpX3R5cGUsIHBvbGljeV9vY2ksIGlucHV0X29jaSwgc2FuZGJveF9uYW1lLCBzYW5kYm94X25hbWVzcGFjZSkKCiAgICBwcmludCgiYWxsb3dfYnlfY29udGFpbmVyX3R5cGVzOiBzdWNjZXNzIikKfQoKIyBSdWxlcyBhcHBsaWNhYmxlIHRvIHRoZSAic2FuZGJveCIgY29udGFpbmVyIHR5cGUKYWxsb3dfYnlfY29udGFpbmVyX3R5cGUoaW5wdXRfY3JpX3R5cGUsIHBvbGljeV9vY2ksIGlucHV0X29jaSwgc2FuZGJveF9uYW1lLCBzYW5kYm94X25hbWVzcGFjZSkgewogICAgcHJpbnQoImFsbG93X2J5X2NvbnRhaW5lcl90eXBlIDE6IGlucHV0X2NyaV90eXBlID0iLCBpbnB1dF9jcmlfdHlwZSkKICAgIGlucHV0X2NyaV90eXBlID09ICJzYW5kYm94IgoKICAgIGlucHV0X2thdGFfdHlwZSA6PSBpbnB1dF9vY2kuQW5ub3RhdGlvbnNbImlvLmthdGFjb250YWluZXJzLnBrZy5vY2kuY29udGFpbmVyX3R5cGUiXQogICAgcHJpbnQoImFsbG93X2J5X2NvbnRhaW5lcl90eXBlIDE6IGlucHV0IGNvbnRhaW5lciB0eXBlIiwgaW5wdXRfa2F0YV90eXBlKQogICAgaW5wdXRfa2F0YV90eXBlID09ICJwb2Rfc2FuZGJveCIKCiAgICBhbGxvd19zYW5kYm94X2NvbnRhaW5lcl9uYW1lKHBvbGljeV9vY2ksIGlucHV0X29jaSkKICAgIGFsbG93X3NhbmRib3hfbmV0X25hbWVzcGFjZShwb2xpY3lfb2NpLCBpbnB1dF9vY2kpCiAgICBhbGxvd19zYW5kYm94X2xvZ19kaXJlY3RvcnkocG9saWN5X29jaSwgaW5wdXRfb2NpLCBzYW5kYm94X25hbWUsIHNhbmRib3hfbmFtZXNwYWNlKQoKICAgIHByaW50KCJhbGxvd19ieV9jb250YWluZXJfdHlwZSAxOiBzdWNjZXNzIikKfQoKIyBSdWxlcyBhcHBsaWNhYmxlIHRvIHRoZSAiY29udGFpbmVyIiBjb250YWluZXIgdHlwZQphbGxvd19ieV9jb250YWluZXJfdHlwZShpbnB1dF9jcmlfdHlwZSwgcG9saWN5X29jaSwgaW5wdXRfb2NpLCBzYW5kYm94X25hbWUsIHNhbmRib3hfbmFtZXNwYWNlKSB7CiAgICBwcmludCgiYWxsb3dfYnlfY29udGFpbmVyX3R5cGUgMjogaW5wdXRfY3JpX3R5cGUgPSIsIGlucHV0X2NyaV90eXBlKQogICAgaW5wdXRfY3JpX3R5cGUgPT0gImNvbnRhaW5lciIKCiAgICBpbnB1dF9rYXRhX3R5cGUgOj0gaW5wdXRfb2NpLkFubm90YXRpb25zWyJpby5rYXRhY29udGFpbmVycy5wa2cub2NpLmNvbnRhaW5lcl90eXBlIl0KICAgIHByaW50KCJhbGxvd19ieV9jb250YWluZXJfdHlwZSAyOiBpbnB1dCB0eXBlIiwgaW5wdXRfa2F0YV90eXBlKQogICAgaW5wdXRfa2F0YV90eXBlID09ICJwb2RfY29udGFpbmVyIgoKICAgIHByaW50KCJhbGxvd19ieV9jb250YWluZXJfdHlwZSAyOiBhbGxvd19jb250YWluZXJfbmFtZSIpCiAgICBhbGxvd19jb250YWluZXJfbmFtZShwb2xpY3lfb2NpLCBpbnB1dF9vY2kpCgogICAgcHJpbnQoImFsbG93X2J5X2NvbnRhaW5lcl90eXBlIDI6IGFsbG93X25ldF9uYW1lc3BhY2UiKQogICAgYWxsb3dfbmV0X25hbWVzcGFjZShwb2xpY3lfb2NpLCBpbnB1dF9vY2kpCgogICAgcHJpbnQoImFsbG93X2J5X2NvbnRhaW5lcl90eXBlIDI6IGFsbG93X2xvZ19kaXJlY3RvcnkiKQogICAgYWxsb3dfbG9nX2RpcmVjdG9yeShwb2xpY3lfb2NpLCBpbnB1dF9vY2kpCgogICAgcHJpbnQoImFsbG93X2J5X2NvbnRhaW5lcl90eXBlIDI6IHN1Y2Nlc3MiKQp9CgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMgImlvLmt1YmVybmV0ZXMuY3JpLmNvbnRhaW5lci1uYW1lIiBhbm5vdGF0aW9uCgphbGxvd19zYW5kYm94X2NvbnRhaW5lcl9uYW1lKHBvbGljeV9vY2ksIGlucHV0X29jaSkgewogICAgcHJpbnQoImFsbG93X3NhbmRib3hfY29udGFpbmVyX25hbWU6IGNvbnRhaW5lcl9hbm5vdGF0aW9uX21pc3NpbmciKQogICAgY29udGFpbmVyX2Fubm90YXRpb25fbWlzc2luZyhwb2xpY3lfb2NpLCBpbnB1dF9vY2ksICJpby5rdWJlcm5ldGVzLmNyaS5jb250YWluZXItbmFtZSIpCiAgICBwcmludCgiYWxsb3dfc2FuZGJveF9jb250YWluZXJfbmFtZTogc3VjY2VzcyIpCn0KCmFsbG93X2NvbnRhaW5lcl9uYW1lKHBvbGljeV9vY2ksIGlucHV0X29jaSkgewogICAgcHJpbnQoImFsbG93X2NvbnRhaW5lcl9uYW1lOiBhbGxvd19jb250YWluZXJfYW5ub3RhdGlvbiIpCiAgICBhbGxvd19jb250YWluZXJfYW5ub3RhdGlvbihwb2xpY3lfb2NpLCBpbnB1dF9vY2ksICJpby5rdWJlcm5ldGVzLmNyaS5jb250YWluZXItbmFtZSIpCiAgICBwcmludCgiYWxsb3dfY29udGFpbmVyX25hbWU6IHN1Y2Nlc3MiKQp9CgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMgQW5ub3Rpb25zIHJlcXVpcmVkIGZvciAiY29udGFpbmVyIiB0eXBlLCBhbmQgbm90IGFsbG93ZWQgZm9yICJzYW5kYm94IiB0eXBlLgoKY29udGFpbmVyX2Fubm90YXRpb25fbWlzc2luZyhwb2xpY3lfb2NpLCBpbnB1dF9vY2ksIGFubm90YXRpb25fa2V5KSB7CiAgICBwcmludCgiY29udGFpbmVyX2Fubm90YXRpb25fbWlzc2luZzoiLCBhbm5vdGF0aW9uX2tleSkKCiAgICBub3QgcG9saWN5X29jaS5Bbm5vdGF0aW9uc1thbm5vdGF0aW9uX2tleV0KICAgIG5vdCBpbnB1dF9vY2kuQW5ub3RhdGlvbnNbYW5ub3RhdGlvbl9rZXldCgogICAgcHJpbnQoImNvbnRhaW5lcl9hbm5vdGF0aW9uX21pc3Npbmc6IHN1Y2Nlc3MiKQp9CgphbGxvd19jb250YWluZXJfYW5ub3RhdGlvbihwb2xpY3lfb2NpLCBpbnB1dF9vY2ksIGFubm90YXRpb25fa2V5KSB7CiAgICBwcmludCgiYWxsb3dfY29udGFpbmVyX2Fubm90YXRpb246IGFubm90YXRpb25fa2V5ID0iLCBhbm5vdGF0aW9uX2tleSkKCiAgICBwb2xpY3lfdmFsdWUgOj0gcG9saWN5X29jaS5Bbm5vdGF0aW9uc1thbm5vdGF0aW9uX2tleV0KICAgIHByaW50KCJhbGxvd19jb250YWluZXJfYW5ub3RhdGlvbjogcG9saWN5X3ZhbHVlID0iLCBwb2xpY3lfdmFsdWUpCgogICAgaW5wdXRfdmFsdWUgOj0gaW5wdXRfb2NpLkFubm90YXRpb25zW2Fubm90YXRpb25fa2V5XQogICAgcHJpbnQoImFsbG93X2NvbnRhaW5lcl9hbm5vdGF0aW9uOiBpbnB1dF92YWx1ZSA9ICIsIGlucHV0X3ZhbHVlKQoKICAgIHBvbGljeV92YWx1ZSA9PSBpbnB1dF92YWx1ZQogICAgcHJpbnQoImFsbG93X2NvbnRhaW5lcl9hbm5vdGF0aW9uOiBzdWNjZXNzIikKfQoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojICJuZXJkY3RsL25ldHdvcmstbmFtZXNwYWNlIiBhbm5vdGF0aW9uCgphbGxvd19zYW5kYm94X25ldF9uYW1lc3BhY2UocG9saWN5X29jaSwgaW5wdXRfb2NpKSB7CiAgICBwcmludCgiYWxsb3dfc2FuZGJveF9uZXRfbmFtZXNwYWNlOiBzdGFydCIpCgogICAgcG9saWN5X25hbWVzcGFjZSA6PSBwb2xpY3lfb2NpLkFubm90YXRpb25zWyJuZXJkY3RsL25ldHdvcmstbmFtZXNwYWNlIl0KICAgIHByaW50KCJhbGxvd19zYW5kYm94X25ldF9uYW1lc3BhY2U6IHBvbGljeV9uYW1lc3BhY2UgPSIsIHBvbGljeV9uYW1lc3BhY2UpCgogICAgaW5wdXRfbmFtZXNwYWNlIDo9IGlucHV0X29jaS5Bbm5vdGF0aW9uc1sibmVyZGN0bC9uZXR3b3JrLW5hbWVzcGFjZSJdCiAgICBwcmludCgiYWxsb3dfc2FuZGJveF9uZXRfbmFtZXNwYWNlOiBpbnB1dF9uYW1lc3BhY2UgPSIsIGlucHV0X25hbWVzcGFjZSkKCiAgICByZWdleC5tYXRjaChwb2xpY3lfbmFtZXNwYWNlLCBpbnB1dF9uYW1lc3BhY2UpCiAgICBwcmludCgiYWxsb3dfc2FuZGJveF9uZXRfbmFtZXNwYWNlOiBzdWNjZXNzIikKfQoKYWxsb3dfbmV0X25hbWVzcGFjZShwb2xpY3lfb2NpLCBpbnB1dF9vY2kpIHsKICAgIHByaW50KCJhbGxvd19uZXRfbmFtZXNwYWNlOiBzdGFydCIpCgogICAgbm90IHBvbGljeV9vY2kuQW5ub3RhdGlvbnNbIm5lcmRjdGwvbmV0d29yay1uYW1lc3BhY2UiXQogICAgbm90IGlucHV0X29jaS5Bbm5vdGF0aW9uc1sibmVyZGN0bC9uZXR3b3JrLW5hbWVzcGFjZSJdCgogICAgcHJpbnQoImFsbG93X25ldF9uYW1lc3BhY2U6IHN1Y2Nlc3MiKQp9CgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMgImlvLmt1YmVybmV0ZXMuY3JpLnNhbmRib3gtbG9nLWRpcmVjdG9yeSIgYW5ub3RhdGlvbgoKYWxsb3dfc2FuZGJveF9sb2dfZGlyZWN0b3J5KHBvbGljeV9vY2ksIGlucHV0X29jaSwgc2FuZGJveF9uYW1lLCBzYW5kYm94X25hbWVzcGFjZSkgewogICAgcHJpbnQoImFsbG93X3NhbmRib3hfbG9nX2RpcmVjdG9yeTogc3RhcnQiKQoKICAgIHBvbGljeV9sb2dfZGlyZWN0b3J5IDo9IHBvbGljeV9vY2kuQW5ub3RhdGlvbnNbImlvLmt1YmVybmV0ZXMuY3JpLnNhbmRib3gtbG9nLWRpcmVjdG9yeSJdCiAgICBkaXJlY3RvcnlfcmVnZXhfdG1wIDo9IHJlcGxhY2UocG9saWN5X2xvZ19kaXJlY3RvcnksICIkKHNhbmRib3gtbmFtZSkiLCBzYW5kYm94X25hbWUpCiAgICBkaXJlY3RvcnlfcmVnZXggOj0gcmVwbGFjZShkaXJlY3RvcnlfcmVnZXhfdG1wLCAiJChzYW5kYm94LW5hbWVzcGFjZSkiLCBzYW5kYm94X25hbWVzcGFjZSkKICAgIHByaW50KCJhbGxvd19zYW5kYm94X2xvZ19kaXJlY3Rvcnk6IHBvbGljeSByZWdleCA9IiwgZGlyZWN0b3J5X3JlZ2V4KQoKICAgIGlucHV0X2xvZ19kaXJlY3RvcnkgOj0gaW5wdXRfb2NpLkFubm90YXRpb25zWyJpby5rdWJlcm5ldGVzLmNyaS5zYW5kYm94LWxvZy1kaXJlY3RvcnkiXQogICAgcHJpbnQoImFsbG93X3NhbmRib3hfbG9nX2RpcmVjdG9yeTogaW5wdXQgPSIsIGlucHV0X2xvZ19kaXJlY3RvcnkpCgogICAgcmVnZXgubWF0Y2goZGlyZWN0b3J5X3JlZ2V4LCBpbnB1dF9sb2dfZGlyZWN0b3J5KQoKICAgIHByaW50KCJhbGxvd19zYW5kYm94X2xvZ19kaXJlY3Rvcnk6IHN1Y2Nlc3MiKQp9CgphbGxvd19sb2dfZGlyZWN0b3J5KHBvbGljeV9vY2ksIGlucHV0X29jaSkgewogICAgbm90IHBvbGljeV9vY2kuQW5ub3RhdGlvbnNbImlvLmt1YmVybmV0ZXMuY3JpLnNhbmRib3gtbG9nLWRpcmVjdG9yeSJdCiAgICBub3QgaW5wdXRfb2NpLkFubm90YXRpb25zWyJpby5rdWJlcm5ldGVzLmNyaS5zYW5kYm94LWxvZy1kaXJlY3RvcnkiXQp9CgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMgVmFsaWRhdGUgdGhlIGxpbnV4IGZpZWxkcyBmcm9tIGNvbmZpZy5qc29uLgoKYWxsb3dfbGludXgocG9saWN5X29jaSwgaW5wdXRfb2NpKSB7CiAgICBwcmludCgiYWxsb3dfbGludXg6IHBvbGljeSBuYW1lc3BhY2VzID0iLCBwb2xpY3lfb2NpLkxpbnV4Lk5hbWVzcGFjZXMpCiAgICBwcmludCgiYWxsb3dfbGludXg6IGlucHV0IG5hbWVzcGFjZXMgPSIsIGlucHV0X29jaS5MaW51eC5OYW1lc3BhY2VzKQogICAgcG9saWN5X29jaS5MaW51eC5OYW1lc3BhY2VzICAgICA9PSBpbnB1dF9vY2kuTGludXguTmFtZXNwYWNlcwoKICAgIHByaW50KCJhbGxvd19saW51eDogYWxsb3dfbWFza2VkX3BhdGhzIikKICAgIGFsbG93X21hc2tlZF9wYXRocyhwb2xpY3lfb2NpLCBpbnB1dF9vY2kpCgogICAgcHJpbnQoImFsbG93X2xpbnV4OiBhbGxvd19yZWFkb25seV9wYXRocyIpCiAgICBhbGxvd19yZWFkb25seV9wYXRocyhwb2xpY3lfb2NpLCBpbnB1dF9vY2kpCgogICAgcHJpbnQoImFsbG93X2xpbnV4OiBzdWNjZXNzIikKfQoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwphbGxvd19tYXNrZWRfcGF0aHMocG9saWN5X29jaSwgaW5wdXRfb2NpKSB7CiAgICBwcmludCgiYWxsb3dfbWFza2VkX3BhdGhzIDE6IHBvbGljeSBtYXNrZWRQYXRocyA9IiwgcG9saWN5X29jaS5MaW51eC5NYXNrZWRQYXRocykKICAgIHByaW50KCJhbGxvd19tYXNrZWRfcGF0aHMgMTogaW5wdXQgbWFza2VkUGF0aHMgPSIsIGlucHV0X29jaS5MaW51eC5NYXNrZWRQYXRocykKCiAgICBhbGxvd19tYXNrZWRfcGF0aHNfYXJyYXkocG9saWN5X29jaS5MaW51eC5NYXNrZWRQYXRocywgaW5wdXRfb2NpLkxpbnV4Lk1hc2tlZFBhdGhzKQoKICAgIHByaW50KCJhbGxvd19tYXNrZWRfcGF0aHMgMTogc3VjY2VzcyIpCn0KYWxsb3dfbWFza2VkX3BhdGhzKHBvbGljeV9vY2ksIGlucHV0X29jaSkgewogICAgcHJpbnQoImFsbG93X21hc2tlZF9wYXRocyAyOiBubyBtYXNrZWRQYXRocyIpCgogICAgbm90IHBvbGljeV9vY2kuTGludXguTWFza2VkUGF0aHMKICAgIG5vdCBpbnB1dF9vY2kuTGludXguTWFza2VkUGF0aHMKCiAgICBwcmludCgiYWxsb3dfbWFza2VkX3BhdGhzIDI6IHN1Y2Nlc3MiKQp9CgojIEFsbCB0aGUgcG9saWN5IG1hc2tlZCBwYXRocyBtdXN0IGJlIG1hc2tlZCBpbiB0aGUgaW5wdXQgZGF0YSB0b28uCiMgSW5wdXQgaXMgYWxsb3dlZCB0byBoYXZlIG1vcmUgbWFza2VkIHBhdGhzIHRoYW4gdGhlIHBvbGljeS4KYWxsb3dfbWFza2VkX3BhdGhzX2FycmF5KHBvbGljeV9hcnJheSwgaW5wdXRfYXJyYXkpIHsKICAgIGV2ZXJ5IHBvbGljeV9lbGVtZW50IGluIHBvbGljeV9hcnJheSB7CiAgICAgICAgYWxsb3dfbWFza2VkX3BhdGgocG9saWN5X2VsZW1lbnQsIGlucHV0X2FycmF5KQogICAgfQp9CgphbGxvd19tYXNrZWRfcGF0aChwb2xpY3lfZWxlbWVudCwgaW5wdXRfYXJyYXkpIHsKICAgIHByaW50KCJhbGxvd19tYXNrZWRfcGF0aDogcG9saWN5X2VsZW1lbnQgPSIsIHBvbGljeV9lbGVtZW50KQoKICAgIHNvbWUgaW5wdXRfZWxlbWVudCBpbiBpbnB1dF9hcnJheQogICAgcG9saWN5X2VsZW1lbnQgPT0gaW5wdXRfZWxlbWVudAoKICAgIHByaW50KCJhbGxvd19tYXNrZWRfcGF0aDogc3VjY2VzcyIpCn0KCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKYWxsb3dfcmVhZG9ubHlfcGF0aHMocG9saWN5X29jaSwgaW5wdXRfb2NpKSB7CiAgICBwcmludCgiYWxsb3dfcmVhZG9ubHlfcGF0aHMgMTogcG9saWN5IHJlYWRvbmx5UGF0aHMgPSIsIHBvbGljeV9vY2kuTGludXguUmVhZG9ubHlQYXRocykKICAgIHByaW50KCJhbGxvd19yZWFkb25seV9wYXRocyAxOiBpbnB1dCByZWFkb25seVBhdGhzID0iLCBpbnB1dF9vY2kuTGludXguUmVhZG9ubHlQYXRocykKCiAgICBhbGxvd19yZWFkb25seV9wYXRoc19hcnJheShwb2xpY3lfb2NpLkxpbnV4LlJlYWRvbmx5UGF0aHMsIGlucHV0X29jaS5MaW51eC5SZWFkb25seVBhdGhzLCBpbnB1dF9vY2kuTGludXguTWFza2VkUGF0aHMpCgogICAgcHJpbnQoImFsbG93X3JlYWRvbmx5X3BhdGhzIDE6IHN1Y2Nlc3MiKQp9CmFsbG93X3JlYWRvbmx5X3BhdGhzKHBvbGljeV9vY2ksIGlucHV0X29jaSkgewogICAgcHJpbnQoImFsbG93X3JlYWRvbmx5X3BhdGhzIDI6IG5vIHJlYWRvbmx5UGF0aHMiKQoKICAgIG5vdCBwb2xpY3lfb2NpLkxpbnV4LlJlYWRvbmx5UGF0aHMKICAgIG5vdCBpbnB1dF9vY2kuTGludXguUmVhZG9ubHlQYXRocwoKICAgIHByaW50KCJhbGxvd19yZWFkb25seV9wYXRocyAyOiBzdWNjZXNzIikKfQoKIyBBbGwgdGhlIHBvbGljeSByZWFkb25seSBwYXRocyBtdXN0IGJlIGVpdGhlcjoKIyAtIFByZXNlbnQgaW4gdGhlIGlucHV0IHJlYWRvbmx5IHBhdGhzLCBvcgojIC0gUHJlc2VudCBpbiB0aGUgaW5wdXQgbWFza2VkIHBhdGhzLgojIElucHV0IGlzIGFsbG93ZWQgdG8gaGF2ZSBtb3JlIHJlYWRvbmx5IHBhdGhzIHRoYW4gdGhlIHBvbGljeS4KYWxsb3dfcmVhZG9ubHlfcGF0aHNfYXJyYXkocG9saWN5X2FycmF5LCBpbnB1dF9hcnJheSwgbWFza2VkX3BhdGhzKSB7CiAgICBldmVyeSBwb2xpY3lfZWxlbWVudCBpbiBwb2xpY3lfYXJyYXkgewogICAgICAgIGFsbG93X3JlYWRvbmx5X3BhdGgocG9saWN5X2VsZW1lbnQsIGlucHV0X2FycmF5LCBtYXNrZWRfcGF0aHMpCiAgICB9Cn0KCmFsbG93X3JlYWRvbmx5X3BhdGgocG9saWN5X2VsZW1lbnQsIGlucHV0X2FycmF5LCBtYXNrZWRfcGF0aHMpIHsKICAgIHByaW50KCJhbGxvd19yZWFkb25seV9wYXRoIDE6IHBvbGljeV9lbGVtZW50ID0iLCBwb2xpY3lfZWxlbWVudCkKCiAgICBzb21lIGlucHV0X2VsZW1lbnQgaW4gaW5wdXRfYXJyYXkKICAgIHBvbGljeV9lbGVtZW50ID09IGlucHV0X2VsZW1lbnQKCiAgICBwcmludCgiYWxsb3dfcmVhZG9ubHlfcGF0aCAxOiBzdWNjZXNzIikKfQphbGxvd19yZWFkb25seV9wYXRoKHBvbGljeV9lbGVtZW50LCBpbnB1dF9hcnJheSwgbWFza2VkX3BhdGhzKSB7CiAgICBwcmludCgiYWxsb3dfcmVhZG9ubHlfcGF0aCAyOiBwb2xpY3lfZWxlbWVudCA9IiwgcG9saWN5X2VsZW1lbnQpCgogICAgc29tZSBpbnB1dF9tYXNrZWQgaW4gbWFza2VkX3BhdGhzCiAgICBwb2xpY3lfZWxlbWVudCA9PSBpbnB1dF9tYXNrZWQKCiAgICBwcmludCgiYWxsb3dfcmVhZG9ubHlfcGF0aCAyOiBzdWNjZXNzIikKfQoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojIEdldCB0aGUgaW5wdXQ6CiMKIyAtIGJ1bmRsZV9pZCBmcm9tICJpby5rYXRhY29udGFpbmVycy5wa2cub2NpLmJ1bmRsZV9wYXRoIgojIC0gc2FuZGJveF9pZCBmcm9tICJpby5rdWJlcm5ldGVzLmNyaS5zYW5kYm94LWlkIgojCiMgYW5kIGNoZWNrIHRoZWlyIGNvbnNpc3RlbmN5IHdpdGggb3RoZXIgcnVsZXMuCgphbGxvd19ieV9idW5kbGVfb3Jfc2FuZGJveF9pZChwb2xpY3lfb2NpLCBpbnB1dF9vY2ksIHBvbGljeV9zdG9yYWdlcywgaW5wdXRfc3RvcmFnZXMpIHsKICAgIHByaW50KCJhbGxvd19ieV9idW5kbGVfb3Jfc2FuZGJveF9pZDogY2hlY2tpbmcgaW8ua2F0YWNvbnRhaW5lcnMucGtnLm9jaS5idW5kbGVfcGF0aCIpCiAgICBidW5kbGVfcGF0aCA6PSBpbnB1dF9vY2kuQW5ub3RhdGlvbnNbImlvLmthdGFjb250YWluZXJzLnBrZy5vY2kuYnVuZGxlX3BhdGgiXQogICAgYnVuZGxlX2lkIDo9IHJlcGxhY2UoYnVuZGxlX3BhdGgsICIvcnVuL2NvbnRhaW5lcmQvaW8uY29udGFpbmVyZC5ydW50aW1lLnYyLnRhc2svazhzLmlvLyIsICIiKQoKICAgIHBvbGljeV9zYW5kYm94X3JlZ2V4IDo9IHBvbGljeV9vY2kuQW5ub3RhdGlvbnNbImlvLmt1YmVybmV0ZXMuY3JpLnNhbmRib3gtaWQiXQogICAgc2FuZGJveF9pZCA6PSBpbnB1dF9vY2kuQW5ub3RhdGlvbnNbImlvLmt1YmVybmV0ZXMuY3JpLnNhbmRib3gtaWQiXQoKICAgIHByaW50KCJhbGxvd19ieV9idW5kbGVfb3Jfc2FuZGJveF9pZDogcmVnZXgubWF0Y2ggc2FuZGJveF9pZCA9Iiwgc2FuZGJveF9pZCwgInJlZ2V4ID0iLCBwb2xpY3lfc2FuZGJveF9yZWdleCkKICAgIHJlZ2V4Lm1hdGNoKHBvbGljeV9zYW5kYm94X3JlZ2V4LCBzYW5kYm94X2lkKQoKICAgIHByaW50KCJhbGxvd19ieV9idW5kbGVfb3Jfc2FuZGJveF9pZDogYWxsb3dfcm9vdF9wYXRoIikKICAgIGFsbG93X3Jvb3RfcGF0aChwb2xpY3lfb2NpLCBpbnB1dF9vY2ksIGJ1bmRsZV9pZCkKCiAgICBldmVyeSBpbnB1dF9tb3VudCBpbiBpbnB1dC5PQ0kuTW91bnRzIHsKICAgICAgICBwcmludCgiYWxsb3dfYnlfYnVuZGxlX29yX3NhbmRib3hfaWQ6IGFsbG93X21vdW50IikKICAgICAgICBhbGxvd19tb3VudChwb2xpY3lfb2NpLCBpbnB1dF9tb3VudCwgYnVuZGxlX2lkLCBzYW5kYm94X2lkKQogICAgfQoKICAgIHByaW50KCJhbGxvd19ieV9idW5kbGVfb3Jfc2FuZGJveF9pZDogYWxsb3dfc3RvcmFnZXMiKQogICAgYWxsb3dfc3RvcmFnZXMocG9saWN5X3N0b3JhZ2VzLCBpbnB1dF9zdG9yYWdlcywgYnVuZGxlX2lkLCBzYW5kYm94X2lkKQoKICAgIHByaW50KCJhbGxvd19ieV9idW5kbGVfb3Jfc2FuZGJveF9pZDogc3VjY2VzcyIpCn0KCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIyBWYWxpZGF0ZSB0aGUgcHJvY2VzcyBmaWVsZHMgZnJvbSBjb25maWcuanNvbi4KCmFsbG93X3Byb2Nlc3MocG9saWN5X29jaSwgaW5wdXRfb2NpLCBzYW5kYm94X25hbWUpIHsKICAgIHBvbGljeV9wcm9jZXNzIDo9IHBvbGljeV9vY2kuUHJvY2VzcwogICAgaW5wdXRfcHJvY2VzcyA6PSBpbnB1dF9vY2kuUHJvY2VzcwoKICAgIHByaW50KCJhbGxvd19wcm9jZXNzOiBpbnB1dCB0ZXJtaW5hbCA9IiwgaW5wdXRfcHJvY2Vzcy5UZXJtaW5hbCwgInBvbGljeSB0ZXJtaW5hbCA9IiwgcG9saWN5X3Byb2Nlc3MuVGVybWluYWwpCiAgICBwb2xpY3lfcHJvY2Vzcy5UZXJtaW5hbCAgICAgICAgID09IGlucHV0X3Byb2Nlc3MuVGVybWluYWwKCiAgICBwcmludCgiYWxsb3dfcHJvY2VzczogaW5wdXQgY3dkID0iLCBpbnB1dF9wcm9jZXNzLkN3ZCwgInBvbGljeSBjd2QgPSIsIHBvbGljeV9wcm9jZXNzLkN3ZCkKICAgIHBvbGljeV9wcm9jZXNzLkN3ZCAgICAgICAgICAgICAgPT0gaW5wdXRfcHJvY2Vzcy5Dd2QKCiAgICBwcmludCgiYWxsb3dfcHJvY2VzczogaW5wdXQgY2FwYWJpbGl0aWVzID0iLCBpbnB1dF9wcm9jZXNzLkNhcGFiaWxpdGllcykKICAgIHByaW50KCJhbGxvd19wcm9jZXNzOiBwb2xpY3kgY2FwYWJpbGl0aWVzID0iLCBwb2xpY3lfcHJvY2Vzcy5DYXBhYmlsaXRpZXMpCiAgICBwb2xpY3lfcHJvY2Vzcy5DYXBhYmlsaXRpZXMgICAgID09IGlucHV0X3Byb2Nlc3MuQ2FwYWJpbGl0aWVzCgogICAgcHJpbnQoImFsbG93X3Byb2Nlc3M6IGlucHV0IG5vTmV3UHJpdmlsZWdlcyA9IiwgaW5wdXRfcHJvY2Vzcy5Ob05ld1ByaXZpbGVnZXMsICJwb2xpY3kgbm9OZXdQcml2aWxlZ2VzID0iLCBwb2xpY3lfcHJvY2Vzcy5Ob05ld1ByaXZpbGVnZXMpCiAgICBwb2xpY3lfcHJvY2Vzcy5Ob05ld1ByaXZpbGVnZXMgID09IGlucHV0X3Byb2Nlc3MuTm9OZXdQcml2aWxlZ2VzCgogICAgcHJpbnQoImFsbG93X3Byb2Nlc3M6IGFsbG93X3VzZXIiKQogICAgYWxsb3dfdXNlcihwb2xpY3lfcHJvY2VzcywgaW5wdXRfcHJvY2VzcykKCiAgICBwcmludCgiYWxsb3dfcHJvY2VzczogYWxsb3dfYXJncyIpCiAgICBhbGxvd19hcmdzKHBvbGljeV9wcm9jZXNzLCBpbnB1dF9wcm9jZXNzLCBzYW5kYm94X25hbWUpCgogICAgcHJpbnQoImFsbG93X3Byb2Nlc3M6IGFsbG93X2VudiIpCiAgICBhbGxvd19lbnYocG9saWN5X3Byb2Nlc3MsIGlucHV0X3Byb2Nlc3MsIHNhbmRib3hfbmFtZSkKCiAgICBwcmludCgiYWxsb3dfcHJvY2Vzczogc3VjY2VzcyIpCn0KCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIyBPQ0kgcHJvY2Vzcy5Vc2VyIGZpZWxkCgphbGxvd191c2VyKHBvbGljeV9wcm9jZXNzLCBpbnB1dF9wcm9jZXNzKSB7CiAgICBwb2xpY3lfdXNlciA6PSBwb2xpY3lfcHJvY2Vzcy5Vc2VyCiAgICBpbnB1dF91c2VyIDo9IGlucHV0X3Byb2Nlc3MuVXNlcgoKICAgICMgVE9ETzogdHJhY2sgZG93biB0aGUgcmVhc29uIGZvciBtY3IubWljcm9zb2Z0LmNvbS9vc3MvYml0bmFtaS9yZWRpczo2LjAuOCBiZWluZwogICAgIyAgICAgICBleGVjdXRlZCB3aXRoIHVpZCA9IDAgZGVzcGl0ZSBoYXZpbmcgIlVzZXIiOiAiMTAwMSIgaW4gaXRzIGNvbnRhaW5lciBpbWFnZQogICAgIyAgICAgICBjb25maWcuCiAgICAjcHJpbnQoImFsbG93X3VzZXI6IGlucHV0IHVpZCA9IiwgaW5wdXRfdXNlci5VSUQsICJwb2xpY3kgdWlkID0iLCBwb2xpY3lfdXNlci5VSUQpCiAgICAjcG9saWN5X3VzZXIuVUlEICAgICAgICAgICAgICAgICA9PSBpbnB1dF91c2VyLlVJRAoKICAgICMgVE9ETzogdHJhY2sgZG93biB0aGUgcmVhc29uIGZvciByZWdpc3RyeS5rOHMuaW8vcGF1c2U6My45IGJlaW5nCiAgICAjICAgICAgIGV4ZWN1dGVkIHdpdGggZ2lkID0gMCBkZXNwaXRlIGhhdmluZyAiNjU1MzU6NjU1MzUiIGluIGl0cyBjb250YWluZXIgaW1hZ2UKICAgICMgICAgICAgY29uZmlnLgogICAgI3ByaW50KCJhbGxvd191c2VyOiBpbnB1dCBnaWQgPSIsIGlucHV0X3VzZXIuR0lELCAicG9saWN5IGdpZCA9IiwgcG9saWN5X3VzZXIuR0lEKQogICAgI3BvbGljeV91c2VyLkdJRCAgICAgICAgICAgICAgICAgPT0gaW5wdXRfdXNlci5HSUQKCiAgICAjIFRPRE86IGNvbXBhcmUgdGhlIGFkZGl0aW9uYWxHaWRzIGZpZWxkIHRvbyBhZnRlciBjb21wdXRpbmcgaXRzIHZhbHVlCiAgICAjIGJhc2VkIG9uIC9ldGMvcGFzc3dkIGFuZCAvZXRjL2dyb3VwIGZyb20gdGhlIGNvbnRhaW5lciBpbWFnZS4KfQoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojIE9DSSBwcm9jZXNzLkFyZ3MgZmllbGQKCmFsbG93X2FyZ3MocG9saWN5X3Byb2Nlc3MsIGlucHV0X3Byb2Nlc3MsIHNhbmRib3hfbmFtZSkgewogICAgcHJpbnQoImFsbG93X2FyZ3MgMTogbm8gYXJncyIpCgogICAgbm90IHBvbGljeV9wcm9jZXNzLkFyZ3MKICAgIG5vdCBpbnB1dF9wcm9jZXNzLkFyZ3MKCiAgICBwcmludCgiYWxsb3dfYXJncyAxOiBzdWNjZXNzIikKfQphbGxvd19hcmdzKHBvbGljeV9wcm9jZXNzLCBpbnB1dF9wcm9jZXNzLCBzYW5kYm94X25hbWUpIHsKICAgIHByaW50KCJhbGxvd19hcmdzIDI6IHBvbGljeSBhcmdzID0iLCBwb2xpY3lfcHJvY2Vzcy5BcmdzKQogICAgcHJpbnQoImFsbG93X2FyZ3MgMjogaW5wdXQgYXJncyA9IiwgaW5wdXRfcHJvY2Vzcy5BcmdzKQoKICAgIGNvdW50KHBvbGljeV9wcm9jZXNzLkFyZ3MpID09IGNvdW50KGlucHV0X3Byb2Nlc3MuQXJncykKCiAgICBldmVyeSBpLCBpbnB1dF9hcmcgaW4gaW5wdXRfcHJvY2Vzcy5BcmdzIHsKICAgICAgICBhbGxvd19hcmcoaSwgaW5wdXRfYXJnLCBwb2xpY3lfcHJvY2Vzcywgc2FuZGJveF9uYW1lKQogICAgfQoKICAgIHByaW50KCJhbGxvd19hcmdzIDI6IHN1Y2Nlc3MiKQp9CgphbGxvd19hcmcoaSwgaW5wdXRfYXJnLCBwb2xpY3lfcHJvY2Vzcywgc2FuZGJveF9uYW1lKSB7CiAgICBwcmludCgiYWxsb3dfYXJnIDE6IGkgPSIsIGksICJpbnB1dF9hcmcgPSIsIGlucHV0X2FyZywgInBvbGljeV9hcmcgPSIsIHBvbGljeV9wcm9jZXNzLkFyZ3NbaV0pCgogICAgcG9saWN5X2FyZyA6PSByZXBsYWNlKHBvbGljeV9wcm9jZXNzLkFyZ3NbaV0sICIkJCIsICIkIikKICAgIGlucHV0X2FyZyA9PSBwb2xpY3lfYXJnCgogICAgcHJpbnQoImFsbG93X2FyZyAxOiBzdWNjZXNzIikKfQphbGxvd19hcmcoaSwgaW5wdXRfYXJnLCBwb2xpY3lfcHJvY2Vzcywgc2FuZGJveF9uYW1lKSB7CiAgICBwcmludCgiYWxsb3dfYXJnIDI6IGkgPSIsIGksICJpbnB1dF9hcmcgPSIsIGlucHV0X2FyZywgInBvbGljeV9hcmcgPSIsIHBvbGljeV9wcm9jZXNzLkFyZ3NbaV0pCgogICAgIyBUT0RPOiBjYW4gJChub2RlLW5hbWUpIGJlIGhhbmRsZWQgYmV0dGVyPwogICAgY29udGFpbnMocG9saWN5X3Byb2Nlc3MuQXJnc1tpXSwgIiQobm9kZS1uYW1lKSIpCgogICAgcHJpbnQoImFsbG93X2FyZyAyOiBzdWNjZXNzIikKfQphbGxvd19hcmcoaSwgaW5wdXRfYXJnLCBwb2xpY3lfcHJvY2Vzcywgc2FuZGJveF9uYW1lKSB7CiAgICBwcmludCgiYWxsb3dfYXJnIDM6IGkgPSIsIGksICJpbnB1dF9hcmcgPSIsIGlucHV0X2FyZywgInBvbGljeV9hcmcgPSIsIHBvbGljeV9wcm9jZXNzLkFyZ3NbaV0pCgogICAgcG9saWN5X2FyZyA6PSByZXBsYWNlKHBvbGljeV9wcm9jZXNzLkFyZ3NbaV0sICIkJCIsICIkIikKICAgIGV4cGFuZGVkX2FyZyA9IHJlcGxhY2UocG9saWN5X2FyZywgIiQoc2FuZGJveC1uYW1lKSIsIHNhbmRib3hfbmFtZSkKICAgIHByaW50KCJhbGxvd19hcmcgMzogZXhwYW5kZWQgcG9saWN5X2FyZyA9IiwgZXhwYW5kZWRfYXJnKQogICAgZXhwYW5kZWRfYXJnID09IGlucHV0X2FyZwoKICAgIHByaW50KCJhbGxvd19hcmcgMzogc3VjY2VzcyIpCn0KCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIyBPQ0kgcHJvY2Vzcy5FbnYgZmllbGQKCmFsbG93X2Vudihwb2xpY3lfcHJvY2VzcywgaW5wdXRfcHJvY2Vzcywgc2FuZGJveF9uYW1lKSB7CiAgICBwcmludCgiYWxsb3dfZW52OiBwb2xpY3kgZW52ID0iLCBwb2xpY3lfcHJvY2Vzcy5FbnYpCgogICAgZXZlcnkgZW52X3ZhciBpbiBpbnB1dF9wcm9jZXNzLkVudiB7CiAgICAgICAgcHJpbnQoImFsbG93X2VudiA9PiBhbGxvd19lbnZfdmFyOiIsIGVudl92YXIpCiAgICAgICAgYWxsb3dfZW52X3Zhcihwb2xpY3lfcHJvY2VzcywgaW5wdXRfcHJvY2VzcywgZW52X3Zhciwgc2FuZGJveF9uYW1lKQogICAgfQoKICAgIHByaW50KCJhbGxvd19lbnY6IHN1Y2Nlc3MiKQp9CgojIEFsbG93IGlucHV0IGVudiB2YXJpYWJsZXMgdGhhdCBhcmUgcHJlc2VudCBpbiB0aGUgcG9saWN5IGRhdGEgdG9vLgphbGxvd19lbnZfdmFyKHBvbGljeV9wcm9jZXNzLCBpbnB1dF9wcm9jZXNzLCBlbnZfdmFyLCBzYW5kYm94X25hbWUpIHsKICAgIHByaW50KCJhbGxvd19lbnZfdmFyIDE6IHNvbWUgcG9saWN5X2Vudl92YXIgPT0gZW52X3ZhciIpCgogICAgc29tZSBwb2xpY3lfZW52X3ZhciBpbiBwb2xpY3lfcHJvY2Vzcy5FbnYKICAgIHBvbGljeV9lbnZfdmFyID09IGVudl92YXIKCiAgICBwcmludCgiYWxsb3dfZW52X3ZhciAxOiBzdWNjZXNzIikKfQoKIyBNYXRjaCBpbnB1dCB3aXRoIG9uZSBvZiB0aGUgcG9saWN5IHZhcmlhYmxlcywgYWZ0ZXIgc3Vic3RpdHV0aW5nICQoc2FuZGJveC1uYW1lKS4KYWxsb3dfZW52X3Zhcihwb2xpY3lfcHJvY2VzcywgaW5wdXRfcHJvY2VzcywgZW52X3Zhciwgc2FuZGJveF9uYW1lKSB7CiAgICBwcmludCgiYWxsb3dfZW52X3ZhciAyOiByZXBsYWNlICQoc2FuZGJveC1uYW1lKSIpCgogICAgc29tZSBwb2xpY3lfZW52X3ZhciBpbiBwb2xpY3lfcHJvY2Vzcy5FbnYKICAgIHBvbGljeV92YXIgPSByZXBsYWNlKHBvbGljeV9lbnZfdmFyLCAiJChzYW5kYm94LW5hbWUpIiwgc2FuZGJveF9uYW1lKQoKICAgIHByaW50KCJhbGxvd19lbnZfdmFyIDI6IGlucHV0ID0iLCBlbnZfdmFyLCAicG9saWN5ID0iLCBwb2xpY3lfdmFyKQogICAgcG9saWN5X3ZhciA9PSBlbnZfdmFyCgogICAgcHJpbnQoImFsbG93X2Vudl92YXIgMjogc3VjY2VzcyIpCn0KCiMgQWxsb3cgc2VydmljZS1yZWxhdGVkIGVudiB2YXJpYWJsZXM6CgojICJLVUJFUk5FVEVTX1BPUlRfNDQzX1RDUF9QUk9UTz10Y3AiCmFsbG93X2Vudl92YXIocG9saWN5X3Byb2Nlc3MsIGlucHV0X3Byb2Nlc3MsIGVudl92YXIsIHNhbmRib3hfbmFtZSkgewogICAgcHJpbnQoImFsbG93X2Vudl92YXIgMzogS1VCRVJORVRFU19QT1JUXzQ0M19UQ1BfUFJPVE89dGNwIikKCiAgICBuYW1lX3ZhbHVlIDo9IHNwbGl0KGVudl92YXIsICI9IikKICAgIGNvdW50KG5hbWVfdmFsdWUpID09IDIKCiAgICBuYW1lX3ZhbHVlWzFdID09ICJ0Y3AiCgogICAgbmFtZV9jb21wb25lbnRzID0gc3BsaXQobmFtZV92YWx1ZVswXSwgIl8iKQogICAgY29tcG9uZW50c19jb3VudCA6PSBjb3VudChuYW1lX2NvbXBvbmVudHMpCiAgICBjb21wb25lbnRzX2NvdW50ID49IDUKICAgIG5hbWVfY29tcG9uZW50c1tjb21wb25lbnRzX2NvdW50IC0gMV0gPT0gIlBST1RPIgogICAgbmFtZV9jb21wb25lbnRzW2NvbXBvbmVudHNfY291bnQgLSAyXSA9PSAiVENQIgogICAgbmFtZV9jb21wb25lbnRzW2NvbXBvbmVudHNfY291bnQgLSA0XSA9PSAiUE9SVCIKICAgIHBvcnQgOj0gbmFtZV9jb21wb25lbnRzW2NvbXBvbmVudHNfY291bnQgLSAzXQogICAgaXNfcG9ydChwb3J0KQoKICAgIHByaW50KCJhbGxvd19lbnZfdmFyIDM6IHN1Y2Nlc3MiKQp9CgojICJLVUJFUk5FVEVTX1BPUlRfNDQzX1RDUF9QT1JUPTQ0MyIKYWxsb3dfZW52X3Zhcihwb2xpY3lfcHJvY2VzcywgaW5wdXRfcHJvY2VzcywgZW52X3Zhciwgc2FuZGJveF9uYW1lKSB7CiAgICBwcmludCgiYWxsb3dfZW52X3ZhciA0OiBLVUJFUk5FVEVTX1BPUlRfNDQzX1RDUF9QT1JUPTQ0MyIpCgogICAgbmFtZV92YWx1ZSA6PSBzcGxpdChlbnZfdmFyLCAiPSIpCiAgICBjb3VudChuYW1lX3ZhbHVlKSA9PSAyCgogICAgcG9ydCA9IG5hbWVfdmFsdWVbMV0KICAgIGlzX3BvcnQocG9ydCkKCiAgICBuYW1lX2NvbXBvbmVudHMgPSBzcGxpdChuYW1lX3ZhbHVlWzBdLCAiXyIpCiAgICBjb21wb25lbnRzX2NvdW50IDo9IGNvdW50KG5hbWVfY29tcG9uZW50cykKICAgIGNvbXBvbmVudHNfY291bnQgPj0gNQogICAgbmFtZV9jb21wb25lbnRzW2NvbXBvbmVudHNfY291bnQgLSAxXSA9PSAiUE9SVCIKICAgIG5hbWVfY29tcG9uZW50c1tjb21wb25lbnRzX2NvdW50IC0gMl0gPT0gIlRDUCIKICAgIG5hbWVfY29tcG9uZW50c1tjb21wb25lbnRzX2NvdW50IC0gM10gPT0gcG9ydAogICAgbmFtZV9jb21wb25lbnRzW2NvbXBvbmVudHNfY291bnQgLSA0XSA9PSAiUE9SVCIKCiAgICBwcmludCgiYWxsb3dfZW52X3ZhciA0OiBzdWNjZXNzIikKfQoKIyAiS1VCRVJORVRFU19QT1JUXzQ0M19UQ1BfQUREUj0xMC4wLjAuMSIKYWxsb3dfZW52X3Zhcihwb2xpY3lfcHJvY2VzcywgaW5wdXRfcHJvY2VzcywgZW52X3Zhciwgc2FuZGJveF9uYW1lKSB7CiAgICBwcmludCgiYWxsb3dfZW52X3ZhciA1OiBLVUJFUk5FVEVTX1BPUlRfNDQzX1RDUF9BRERSPTEwLjAuMC4xIikKCiAgICBuYW1lX3ZhbHVlIDo9IHNwbGl0KGVudl92YXIsICI9IikKICAgIGNvdW50KG5hbWVfdmFsdWUpID09IDIKCiAgICBpc19pcChuYW1lX3ZhbHVlWzFdKQoKICAgIG5hbWVfY29tcG9uZW50cyA9IHNwbGl0KG5hbWVfdmFsdWVbMF0sICJfIikKICAgIGNvbXBvbmVudHNfY291bnQgOj0gY291bnQobmFtZV9jb21wb25lbnRzKQogICAgY29tcG9uZW50c19jb3VudCA+PSA1CiAgICBuYW1lX2NvbXBvbmVudHNbY29tcG9uZW50c19jb3VudCAtIDFdID09ICJBRERSIgogICAgbmFtZV9jb21wb25lbnRzW2NvbXBvbmVudHNfY291bnQgLSAyXSA9PSAiVENQIgogICAgbmFtZV9jb21wb25lbnRzW2NvbXBvbmVudHNfY291bnQgLSA0XSA9PSAiUE9SVCIKICAgIHBvcnQgOj0gbmFtZV9jb21wb25lbnRzW2NvbXBvbmVudHNfY291bnQgLSAzXQogICAgaXNfcG9ydChwb3J0KQoKICAgIHByaW50KCJhbGxvd19lbnZfdmFyIDU6IHN1Y2Nlc3MiKQp9CgojICJLVUJFUk5FVEVTX1NFUlZJQ0VfSE9TVD0xMC4wLjAuMSIsCmFsbG93X2Vudl92YXIocG9saWN5X3Byb2Nlc3MsIGlucHV0X3Byb2Nlc3MsIGVudl92YXIsIHNhbmRib3hfbmFtZSkgewogICAgcHJpbnQoImFsbG93X2Vudl92YXIgNjogS1VCRVJORVRFU19TRVJWSUNFX0hPU1Q9MTAuMC4wLjEiKQoKICAgIG5hbWVfdmFsdWUgOj0gc3BsaXQoZW52X3ZhciwgIj0iKQogICAgY291bnQobmFtZV92YWx1ZSkgPT0gMgoKICAgIGlzX2lwKG5hbWVfdmFsdWVbMV0pCgogICAgbmFtZV9jb21wb25lbnRzID0gc3BsaXQobmFtZV92YWx1ZVswXSwgIl8iKQogICAgY29tcG9uZW50c19jb3VudCA6PSBjb3VudChuYW1lX2NvbXBvbmVudHMpCiAgICBjb21wb25lbnRzX2NvdW50ID49IDMKICAgIG5hbWVfY29tcG9uZW50c1tjb21wb25lbnRzX2NvdW50IC0gMV0gPT0gIkhPU1QiCiAgICBuYW1lX2NvbXBvbmVudHNbY29tcG9uZW50c19jb3VudCAtIDJdID09ICJTRVJWSUNFIgoKICAgIHByaW50KCJhbGxvd19lbnZfdmFyIDY6IHN1Y2Nlc3MiKQp9CgojICJLVUJFUk5FVEVTX1NFUlZJQ0VfUE9SVD00NDMiLAphbGxvd19lbnZfdmFyKHBvbGljeV9wcm9jZXNzLCBpbnB1dF9wcm9jZXNzLCBlbnZfdmFyLCBzYW5kYm94X25hbWUpIHsKICAgIHByaW50KCJhbGxvd19lbnZfdmFyIDc6IEtVQkVSTkVURVNfU0VSVklDRV9QT1JUPTQ0MyIpCgogICAgbmFtZV92YWx1ZSA6PSBzcGxpdChlbnZfdmFyLCAiPSIpCiAgICBjb3VudChuYW1lX3ZhbHVlKSA9PSAyCgogICAgaXNfcG9ydChuYW1lX3ZhbHVlWzFdKQoKICAgIG5hbWVfY29tcG9uZW50cyA9IHNwbGl0KG5hbWVfdmFsdWVbMF0sICJfIikKICAgIGNvbXBvbmVudHNfY291bnQgOj0gY291bnQobmFtZV9jb21wb25lbnRzKQogICAgY29tcG9uZW50c19jb3VudCA+PSAzCiAgICBuYW1lX2NvbXBvbmVudHNbY29tcG9uZW50c19jb3VudCAtIDFdID09ICJQT1JUIgogICAgbmFtZV9jb21wb25lbnRzW2NvbXBvbmVudHNfY291bnQgLSAyXSA9PSAiU0VSVklDRSIKCiAgICBwcmludCgiYWxsb3dfZW52X3ZhciA3OiBzdWNjZXNzIikKfQoKIyAiS1VCRVJORVRFU19TRVJWSUNFX1BPUlRfSFRUUFM9NDQzIiwKYWxsb3dfZW52X3Zhcihwb2xpY3lfcHJvY2VzcywgaW5wdXRfcHJvY2VzcywgZW52X3Zhciwgc2FuZGJveF9uYW1lKSB7CiAgICBwcmludCgiYWxsb3dfZW52X3ZhciA4OiBLVUJFUk5FVEVTX1NFUlZJQ0VfUE9SVF9IVFRQUz00NDMiKQoKICAgIG5hbWVfdmFsdWUgOj0gc3BsaXQoZW52X3ZhciwgIj0iKQogICAgY291bnQobmFtZV92YWx1ZSkgPT0gMgoKICAgIGlzX3BvcnQobmFtZV92YWx1ZVsxXSkKCiAgICBuYW1lX2NvbXBvbmVudHMgPSBzcGxpdChuYW1lX3ZhbHVlWzBdLCAiXyIpCiAgICBjb21wb25lbnRzX2NvdW50IDo9IGNvdW50KG5hbWVfY29tcG9uZW50cykKICAgIGNvbXBvbmVudHNfY291bnQgPj0gNAogICAgbmFtZV9jb21wb25lbnRzW2NvbXBvbmVudHNfY291bnQgLSAxXSA9PSAiSFRUUFMiCiAgICBuYW1lX2NvbXBvbmVudHNbY29tcG9uZW50c19jb3VudCAtIDJdID09ICJQT1JUIgogICAgbmFtZV9jb21wb25lbnRzW2NvbXBvbmVudHNfY291bnQgLSAzXSA9PSAiU0VSVklDRSIKCiAgICBwcmludCgiYWxsb3dfZW52X3ZhciA4OiBzdWNjZXNzIikKfQoKIyAiS1VCRVJORVRFU19QT1JUPXRjcDovLzEwLjAuMC4xOjQ0MyIsCmFsbG93X2Vudl92YXIocG9saWN5X3Byb2Nlc3MsIGlucHV0X3Byb2Nlc3MsIGVudl92YXIsIHNhbmRib3hfbmFtZSkgewogICAgcHJpbnQoImFsbG93X2Vudl92YXIgOTogS1VCRVJORVRFU19QT1JUPXRjcDovLzEwLjAuMC4xOjQ0MyIpCgogICAgbmFtZV92YWx1ZSA6PSBzcGxpdChlbnZfdmFyLCAiPSIpCiAgICBjb3VudChuYW1lX3ZhbHVlKSA9PSAyCgogICAgaXNfdGNwX3VyaShuYW1lX3ZhbHVlWzFdKQoKICAgIG5hbWVfY29tcG9uZW50cyA9IHNwbGl0KG5hbWVfdmFsdWVbMF0sICJfIikKICAgIGNvbXBvbmVudHNfY291bnQgOj0gY291bnQobmFtZV9jb21wb25lbnRzKQogICAgY29tcG9uZW50c19jb3VudCA+PSAyCiAgICBuYW1lX2NvbXBvbmVudHNbY29tcG9uZW50c19jb3VudCAtIDFdID09ICJQT1JUIgoKICAgIHByaW50KCJhbGxvd19lbnZfdmFyIDk6IHN1Y2Nlc3MiKQp9CgojICJLVUJFUk5FVEVTX1BPUlRfNDQzX1RDUD10Y3A6Ly8xMC4wLjAuMTo0NDMiLAphbGxvd19lbnZfdmFyKHBvbGljeV9wcm9jZXNzLCBpbnB1dF9wcm9jZXNzLCBlbnZfdmFyLCBzYW5kYm94X25hbWUpIHsKICAgIHByaW50KCJhbGxvd19lbnZfdmFyIDEwOiBLVUJFUk5FVEVTX1BPUlRfNDQzX1RDUD10Y3A6Ly8xMC4wLjAuMTo0NDMiKQoKICAgIG5hbWVfdmFsdWUgOj0gc3BsaXQoZW52X3ZhciwgIj0iKQogICAgY291bnQobmFtZV92YWx1ZSkgPT0gMgoKICAgIG5hbWVfY29tcG9uZW50cyA9IHNwbGl0KG5hbWVfdmFsdWVbMF0sICJfIikKICAgIGNvbXBvbmVudHNfY291bnQgOj0gY291bnQobmFtZV9jb21wb25lbnRzKQogICAgY29tcG9uZW50c19jb3VudCA+PSA0CiAgICBuYW1lX2NvbXBvbmVudHNbY29tcG9uZW50c19jb3VudCAtIDFdID09ICJUQ1AiCiAgICBuYW1lX2NvbXBvbmVudHNbY29tcG9uZW50c19jb3VudCAtIDNdID09ICJQT1JUIgogICAgcG9ydCA6PSBuYW1lX2NvbXBvbmVudHNbY29tcG9uZW50c19jb3VudCAtIDJdCiAgICBpc19wb3J0KHBvcnQpCgogICAgaXNfdGNwX3VyaShuYW1lX3ZhbHVlWzFdKQogICAgdmFsdWVfY29tcG9uZW50cyA9IHNwbGl0KG5hbWVfdmFsdWVbMV0sICI6IikKICAgIGNvdW50KHZhbHVlX2NvbXBvbmVudHMpID09IDMKICAgIHZhbHVlX2NvbXBvbmVudHNbMl0gPT0gcG9ydAoKICAgIHByaW50KCJhbGxvd19lbnZfdmFyIDEwOiBzdWNjZXNzIikKfQoKIyBBbGxvdyBmaWVsZFJlZiAiZmllbGRQYXRoOiBzdGF0dXMucG9kSVAiIHZhbHVlcy4KYWxsb3dfZW52X3Zhcihwb2xpY3lfcHJvY2VzcywgaW5wdXRfcHJvY2VzcywgZW52X3Zhciwgc2FuZGJveF9uYW1lKSB7CiAgICBwcmludCgiYWxsb3dfZW52X3ZhciAxMTogZmllbGRQYXRoOiBzdGF0dXMucG9kSVAiKQoKICAgIG5hbWVfdmFsdWUgOj0gc3BsaXQoZW52X3ZhciwgIj0iKQogICAgY291bnQobmFtZV92YWx1ZSkgPT0gMgogICAgaXNfaXAobmFtZV92YWx1ZVsxXSkKCiAgICBzb21lIHBvbGljeV9lbnZfdmFyIGluIHBvbGljeV9wcm9jZXNzLkVudgogICAgYWxsb3dfcG9kX2lwX3ZhcihuYW1lX3ZhbHVlWzBdLCBwb2xpY3lfZW52X3ZhcikKCiAgICBwcmludCgiYWxsb3dfZW52X3ZhciAxMTogc3VjY2VzcyIpCn0KCiMgQWxsb3cgY29tbW9uIGZpZWxkUmVmIHZhcmlhYmxlcy4KYWxsb3dfZW52X3Zhcihwb2xpY3lfcHJvY2VzcywgaW5wdXRfcHJvY2VzcywgZW52X3Zhciwgc2FuZGJveF9uYW1lKSB7CiAgICBwcmludCgiYWxsb3dfZW52X3ZhciAxMjogZmllbGRSZWYiKQoKICAgIG5hbWVfdmFsdWUgOj0gc3BsaXQoZW52X3ZhciwgIj0iKQogICAgY291bnQobmFtZV92YWx1ZSkgPT0gMgoKICAgIHNvbWUgcG9saWN5X2Vudl92YXIgaW4gcG9saWN5X3Byb2Nlc3MuRW52CiAgICBwb2xpY3lfbmFtZV92YWx1ZSA6PSBzcGxpdChwb2xpY3lfZW52X3ZhciwgIj0iKQogICAgY291bnQocG9saWN5X25hbWVfdmFsdWUpID09IDIKCiAgICBwb2xpY3lfbmFtZV92YWx1ZVswXSA9PSBuYW1lX3ZhbHVlWzBdCgogICAgIyBUT0RPOiBzaG91bGQgdGhlc2UgYmUgaGFuZGxlZCBpbiBhIGRpZmZlcmVudCB3YXk/CiAgICBhbHdheXNfYWxsb3dlZCA6PSBbIiQoaG9zdC1uYW1lKSIsICIkKG5vZGUtbmFtZSkiLCAiJChwb2QtdWlkKSJdCiAgICBzb21lIGFsbG93ZWQgaW4gYWx3YXlzX2FsbG93ZWQKICAgIGNvbnRhaW5zKHBvbGljeV9uYW1lX3ZhbHVlWzFdLCBhbGxvd2VkKQoKICAgIHByaW50KCJhbGxvd19lbnZfdmFyIDEyOiBzdWNjZXNzIikKfQoKIyBBbGxvdyBmaWVsZFJlZiAiZmllbGRQYXRoOiBzdGF0dXMuaG9zdElQIiB2YWx1ZXMuCmFsbG93X2Vudl92YXIocG9saWN5X3Byb2Nlc3MsIGlucHV0X3Byb2Nlc3MsIGVudl92YXIsIHNhbmRib3hfbmFtZSkgewogICAgcHJpbnQoImFsbG93X2Vudl92YXIgMTM6IGZpZWxkUGF0aDogc3RhdHVzLmhvc3RJUCIpCgogICAgbmFtZV92YWx1ZSA6PSBzcGxpdChlbnZfdmFyLCAiPSIpCiAgICBjb3VudChuYW1lX3ZhbHVlKSA9PSAyCiAgICBpc19pcChuYW1lX3ZhbHVlWzFdKQoKICAgIHNvbWUgcG9saWN5X2Vudl92YXIgaW4gcG9saWN5X3Byb2Nlc3MuRW52CiAgICBhbGxvd19ob3N0X2lwX3ZhcihuYW1lX3ZhbHVlWzBdLCBwb2xpY3lfZW52X3ZhcikKCiAgICBwcmludCgiYWxsb3dfZW52X3ZhciAxMzogc3VjY2VzcyIpCn0KCiMgQWxsb3cgcmVzb3VyY2VGaWVsZFJlZiB2YWx1ZXMgKGUuZy4sICJsaW1pdHMuY3B1IikuCmFsbG93X2Vudl92YXIocG9saWN5X3Byb2Nlc3MsIGlucHV0X3Byb2Nlc3MsIGVudl92YXIsIHNhbmRib3hfbmFtZSkgewogICAgcHJpbnQoImFsbG93X2Vudl92YXIgMTQ6IHJlc291cmNlRmllbGRSZWYiKQoKICAgIG5hbWVfdmFsdWUgOj0gc3BsaXQoZW52X3ZhciwgIj0iKQogICAgY291bnQobmFtZV92YWx1ZSkgPT0gMgoKICAgIHNvbWUgcG9saWN5X2Vudl92YXIgaW4gcG9saWN5X3Byb2Nlc3MuRW52CiAgICBwb2xpY3lfbmFtZV92YWx1ZSA6PSBzcGxpdChwb2xpY3lfZW52X3ZhciwgIj0iKQogICAgY291bnQocG9saWN5X25hbWVfdmFsdWUpID09IDIKCiAgICBwb2xpY3lfbmFtZV92YWx1ZVswXSA9PSBuYW1lX3ZhbHVlWzBdCgogICAgIyBUT0RPOiBzaG91bGQgdGhlc2UgYmUgaGFuZGxlZCBpbiBhIGRpZmZlcmVudCB3YXk/CiAgICBhbHdheXNfYWxsb3dlZCA9IFsiJChyZXNvdXJjZS1maWVsZCkiLCAiJCh0b2RvLWFubm90YXRpb24pIl0KICAgIHNvbWUgYWxsb3dlZCBpbiBhbHdheXNfYWxsb3dlZAogICAgY29udGFpbnMocG9saWN5X25hbWVfdmFsdWVbMV0sIGFsbG93ZWQpCgogICAgcHJpbnQoImFsbG93X2Vudl92YXIgMTQ6IHN1Y2Nlc3MiKQp9CgoKYWxsb3dfcG9kX2lwX3Zhcih2YXJfbmFtZSwgcG9saWN5X2Vudl92YXIpIHsKICAgIHByaW50KCJhbGxvd19wb2RfaXBfdmFyOiB2YXJfbmFtZSA9IiwgdmFyX25hbWUsICJwb2xpY3lfZW52X3ZhciA9IiwgcG9saWN5X2Vudl92YXIpCgogICAgcG9saWN5X25hbWVfdmFsdWUgOj0gc3BsaXQocG9saWN5X2Vudl92YXIsICI9IikKICAgIGNvdW50KHBvbGljeV9uYW1lX3ZhbHVlKSA9PSAyCgogICAgcG9saWN5X25hbWVfdmFsdWVbMF0gPT0gdmFyX25hbWUKICAgIHBvbGljeV9uYW1lX3ZhbHVlWzFdID09ICIkKHBvZC1pcCkiCgogICAgcHJpbnQoImFsbG93X3BvZF9pcF92YXI6IHN1Y2Nlc3MiKQp9CgphbGxvd19ob3N0X2lwX3Zhcih2YXJfbmFtZSwgcG9saWN5X2Vudl92YXIpIHsKICAgIHByaW50KCJhbGxvd19ob3N0X2lwX3ZhcjogdmFyX25hbWUgPSIsIHZhcl9uYW1lLCAicG9saWN5X2Vudl92YXIgPSIsIHBvbGljeV9lbnZfdmFyKQoKICAgIHBvbGljeV9uYW1lX3ZhbHVlIDo9IHNwbGl0KHBvbGljeV9lbnZfdmFyLCAiPSIpCiAgICBjb3VudChwb2xpY3lfbmFtZV92YWx1ZSkgPT0gMgoKICAgIHBvbGljeV9uYW1lX3ZhbHVlWzBdID09IHZhcl9uYW1lCiAgICBwb2xpY3lfbmFtZV92YWx1ZVsxXSA9PSAiJChob3N0LWlwKSIKCiAgICBwcmludCgiYWxsb3dfaG9zdF9pcF92YXI6IHN1Y2Nlc3MiKQp9Cgppc19pcCh2YWx1ZSkgewogICAgYnl0ZXMgPSBzcGxpdCh2YWx1ZSwgIi4iKQogICAgY291bnQoYnl0ZXMpID09IDQKCiAgICBpc19pcF9maXJzdF9ieXRlKGJ5dGVzWzBdKQogICAgaXNfaXBfb3RoZXJfYnl0ZShieXRlc1sxXSkKICAgIGlzX2lwX290aGVyX2J5dGUoYnl0ZXNbMl0pCiAgICBpc19pcF9vdGhlcl9ieXRlKGJ5dGVzWzNdKQp9CmlzX2lwX2ZpcnN0X2J5dGUoY29tcG9uZW50KSB7CiAgICBudW1iZXIgPSB0b19udW1iZXIoY29tcG9uZW50KQogICAgbnVtYmVyID49IDEKICAgIG51bWJlciA8PSAyNTUKfQppc19pcF9vdGhlcl9ieXRlKGNvbXBvbmVudCkgewogICAgbnVtYmVyID0gdG9fbnVtYmVyKGNvbXBvbmVudCkKICAgIG51bWJlciA+PSAwCiAgICBudW1iZXIgPD0gMjU1Cn0KCmlzX3BvcnQodmFsdWUpIHsKICAgIG51bWJlciA9IHRvX251bWJlcih2YWx1ZSkKICAgIG51bWJlciA+PSAxCiAgICBudW1iZXIgPD0gNjU2MzUKfQoKIyBFLmcuLCAidGNwOi8vMTAuMC4wLjE6NDQzIgppc190Y3BfdXJpKHZhbHVlKSB7CiAgICBjb21wb25lbnRzID0gc3BsaXQodmFsdWUsICIvLyIpCiAgICBjb3VudChjb21wb25lbnRzKSA9PSAyCiAgICBjb21wb25lbnRzWzBdID09ICJ0Y3A6IgoKICAgIGlwX2FuZF9wb3J0ID0gc3BsaXQoY29tcG9uZW50c1sxXSwgIjoiKQogICAgY291bnQoaXBfYW5kX3BvcnQpID09IDIKICAgIGlzX2lwKGlwX2FuZF9wb3J0WzBdKQogICAgaXNfcG9ydChpcF9hbmRfcG9ydFsxXSkKfQoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojIE9DSSByb290LlBhdGgKCmFsbG93X3Jvb3RfcGF0aChwb2xpY3lfb2NpLCBpbnB1dF9vY2ksIGJ1bmRsZV9pZCkgewogICAgcG9saWN5X3BhdGggOj0gcmVwbGFjZShwb2xpY3lfb2NpLlJvb3QuUGF0aCwgIiQoYnVuZGxlLWlkKSIsIGJ1bmRsZV9pZCkKICAgIHBvbGljeV9wYXRoID09IGlucHV0X29jaS5Sb290LlBhdGgKfQoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojIG1vdW50cwoKYWxsb3dfbW91bnQocG9saWN5X29jaSwgaW5wdXRfbW91bnQsIGJ1bmRsZV9pZCwgc2FuZGJveF9pZCkgewogICAgcHJpbnQoImFsbG93X21vdW50OiBpbnB1dF9tb3VudC5kZXN0aW5hdGlvbiA9IiwgaW5wdXRfbW91bnQuZGVzdGluYXRpb24pCgogICAgc29tZSBwb2xpY3lfbW91bnQgaW4gcG9saWN5X29jaS5Nb3VudHMKICAgIHBvbGljeV9tb3VudF9hbGxvd3MocG9saWN5X21vdW50LCBpbnB1dF9tb3VudCwgYnVuZGxlX2lkLCBzYW5kYm94X2lkKQoKICAgICMgVE9ETzogYXJlIHRoZXJlIGFueSBvdGhlciByZXF1aXJlZCBwb2xpY3kgY2hlY2tzIGZvciBtb3VudHMgLSBlLmcuLAogICAgIyAgICAgICBtdWx0aXBsZSBtb3VudHMgd2l0aCBzYW1lIHNvdXJjZSBvciBkZXN0aW5hdGlvbj8KfQoKcG9saWN5X21vdW50X2FsbG93cyhwb2xpY3lfbW91bnQsIGlucHV0X21vdW50LCBidW5kbGVfaWQsIHNhbmRib3hfaWQpIHsKICAgIHByaW50KCJwb2xpY3lfbW91bnRfYWxsb3dzIDE6IHBvbGljeV9tb3VudCA9IiwgcG9saWN5X21vdW50KQogICAgcHJpbnQoInBvbGljeV9tb3VudF9hbGxvd3MgMTogaW5wdXRfbW91bnQgPSIsIGlucHV0X21vdW50KQoKICAgIHBvbGljeV9tb3VudCA9PSBpbnB1dF9tb3VudAoKICAgIHByaW50KCJwb2xpY3lfbW91bnRfYWxsb3dzIDEgc3VjY2VzcyIpCn0KcG9saWN5X21vdW50X2FsbG93cyhwb2xpY3lfbW91bnQsIGlucHV0X21vdW50LCBidW5kbGVfaWQsIHNhbmRib3hfaWQpIHsKICAgIHByaW50KCJwb2xpY3lfbW91bnRfYWxsb3dzIDI6IGlucHV0X21vdW50LmRlc3RpbmF0aW9uID0iLCBpbnB1dF9tb3VudC5kZXN0aW5hdGlvbiwgInBvbGljeV9tb3VudC5kZXN0aW5hdGlvbiA9IiwgcG9saWN5X21vdW50LmRlc3RpbmF0aW9uKQogICAgcG9saWN5X21vdW50LmRlc3RpbmF0aW9uICAgID09IGlucHV0X21vdW50LmRlc3RpbmF0aW9uCgogICAgcHJpbnQoInBvbGljeV9tb3VudF9hbGxvd3MgMjogaW5wdXQgdHlwZSA9IiwgaW5wdXRfbW91bnQudHlwZV8sICJwb2xpY3kgdHlwZSA9IiwgcG9saWN5X21vdW50LnR5cGVfKQogICAgcG9saWN5X21vdW50LnR5cGVfICAgICAgICAgICA9PSBpbnB1dF9tb3VudC50eXBlXwoKICAgIHByaW50KCJwb2xpY3lfbW91bnRfYWxsb3dzIDI6IGlucHV0IG9wdGlvbnMgPSIsIGlucHV0X21vdW50Lm9wdGlvbnMpCiAgICBwcmludCgicG9saWN5X21vdW50X2FsbG93cyAyOiBwb2xpY3kgb3B0aW9ucyA9IiwgcG9saWN5X21vdW50Lm9wdGlvbnMpCiAgICBwb2xpY3lfbW91bnQub3B0aW9ucyAgICAgICAgPT0gaW5wdXRfbW91bnQub3B0aW9ucwoKICAgIHByaW50KCJwb2xpY3lfbW91bnRfYWxsb3dzIDI6IHBvbGljeV9tb3VudF9zb3VyY2VfYWxsb3dzIikKICAgIHBvbGljeV9tb3VudF9zb3VyY2VfYWxsb3dzKHBvbGljeV9tb3VudCwgaW5wdXRfbW91bnQsIGJ1bmRsZV9pZCwgc2FuZGJveF9pZCkKCiAgICBwcmludCgicG9saWN5X21vdW50X2FsbG93cyAyOiBzdWNjZXNzIikKfQoKcG9saWN5X21vdW50X3NvdXJjZV9hbGxvd3MocG9saWN5X21vdW50LCBpbnB1dF9tb3VudCwgYnVuZGxlX2lkLCBzYW5kYm94X2lkKSB7CiAgICAjIEUuZy4sICJzb3VyY2UiOiAiXi9ydW4va2F0YS1jb250YWluZXJzL3NoYXJlZC9jb250YWluZXJzLyQoYnVuZGxlLWlkKS1bYS16MC05XXsxNn0tcmVzb2x2LmNvbmYkIiwKICAgIHBvbGljeV9zb3VyY2VfcmVnZXggOj0gcmVwbGFjZShwb2xpY3lfbW91bnQuc291cmNlLCAiJChidW5kbGUtaWQpIiwgYnVuZGxlX2lkKQogICAgcHJpbnQoInBvbGljeV9tb3VudF9zb3VyY2VfYWxsb3dzIDE6IHBvbGljeV9zb3VyY2VfcmVnZXggPSIsIHBvbGljeV9zb3VyY2VfcmVnZXgpCgogICAgcHJpbnQoInBvbGljeV9tb3VudF9zb3VyY2VfYWxsb3dzIDE6IGlucHV0X21vdW50LnNvdXJjZT0iLCBpbnB1dF9tb3VudC5zb3VyY2UpCiAgICByZWdleC5tYXRjaChwb2xpY3lfc291cmNlX3JlZ2V4LCBpbnB1dF9tb3VudC5zb3VyY2UpCgogICAgcHJpbnQoInBvbGljeV9tb3VudF9zb3VyY2VfYWxsb3dzIDE6IHN1Y2Nlc3MiKQp9CnBvbGljeV9tb3VudF9zb3VyY2VfYWxsb3dzKHBvbGljeV9tb3VudCwgaW5wdXRfbW91bnQsIGJ1bmRsZV9pZCwgc2FuZGJveF9pZCkgewogICAgIyBFLmcuLCAic291cmNlIjogIl4vcnVuL2thdGEtY29udGFpbmVycy9zaGFyZWQvY29udGFpbmVycy8kKHNhbmRib3gtaWQpL3Jvb3Rmcy9sb2NhbC9kYXRhJCIsCiAgICBwb2xpY3lfc291cmNlX3JlZ2V4IDo9IHJlcGxhY2UocG9saWN5X21vdW50LnNvdXJjZSwgIiQoc2FuZGJveC1pZCkiLCBzYW5kYm94X2lkKQoKICAgIHByaW50KCJwb2xpY3lfbW91bnRfc291cmNlX2FsbG93cyAyOiBwb2xpY3lfc291cmNlX3JlZ2V4ID0iLCBwb2xpY3lfc291cmNlX3JlZ2V4LCAiaW5wdXRfbW91bnQuc291cmNlPSIsIGlucHV0X21vdW50LnNvdXJjZSkKICAgIHJlZ2V4Lm1hdGNoKHBvbGljeV9zb3VyY2VfcmVnZXgsIGlucHV0X21vdW50LnNvdXJjZSkKCiAgICBwcmludCgicG9saWN5X21vdW50X3NvdXJjZV9hbGxvd3MgMjogc3VjY2VzcyIpCn0KCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIyBTdG9yYWdlcwoKYWxsb3dfc3RvcmFnZXMocG9saWN5X3N0b3JhZ2VzLCBpbnB1dF9zdG9yYWdlcywgYnVuZGxlX2lkLCBzYW5kYm94X2lkKSB7CiAgICBwb2xpY3lfY291bnQgOj0gY291bnQocG9saWN5X3N0b3JhZ2VzKQogICAgaW5wdXRfY291bnQgOj0gY291bnQoaW5wdXRfc3RvcmFnZXMpCiAgICBwcmludCgiYWxsb3dfc3RvcmFnZXM6IHBvbGljeV9jb3VudCA9IiwgcG9saWN5X2NvdW50LCAiaW5wdXRfY291bnQgPSIsIGlucHV0X2NvdW50KQogICAgcG9saWN5X2NvdW50ID09IGlucHV0X2NvdW50CgogICAgc29tZSBpLCBpbnB1dF9zdG9yYWdlIGluIGlucHV0X3N0b3JhZ2VzCiAgICBhbGxvd19pbnB1dF9zdG9yYWdlKGksIGlucHV0X3N0b3JhZ2UsIHBvbGljeV9zdG9yYWdlcywgcG9saWN5X2NvdW50LCBidW5kbGVfaWQsIHNhbmRib3hfaWQpCgogICAgcHJpbnQoImFsbG93X3N0b3JhZ2VzOiBzdWNjZXNzIikKfQoKYWxsb3dfaW5wdXRfc3RvcmFnZShpLCBpbnB1dF9zdG9yYWdlLCBwb2xpY3lfc3RvcmFnZXMsIGNvdW50LCBidW5kbGVfaWQsIHNhbmRib3hfaWQpIHsKICAgIHByaW50KCJhbGxvd19pbnB1dF9zdG9yYWdlOiBpID0iLCBpLCAiaW5wdXRfc3RvcmFnZSA9IiwgaW5wdXRfc3RvcmFnZSkKCiAgICBwb2xpY3lfc3RvcmFnZSA6PSBwb2xpY3lfc3RvcmFnZXNbaV0KICAgIHByaW50KCJhbGxvd19pbnB1dF9zdG9yYWdlOiBpID0iLCBpLCAicG9saWN5X3N0b3JhZ2UgPSIsIHBvbGljeV9zdG9yYWdlKQoKICAgIHN0b3JhZ2VzX21hdGNoKHBvbGljeV9zdG9yYWdlLCBpbnB1dF9zdG9yYWdlLCBidW5kbGVfaWQsIHNhbmRib3hfaWQpCgogICAgIyBTdG9wIHdoZW4gcmVhY2hpbmcgdGhlIGxhc3QgZWxlbWVudCBvZiB0aGUgc3RvcmFnZXMgYXJyYXkuCiAgICBpID09IGNvdW50IC0gMQp9CgpzdG9yYWdlc19tYXRjaChwb2xpY3lfc3RvcmFnZSwgaW5wdXRfc3RvcmFnZSwgYnVuZGxlX2lkLCBzYW5kYm94X2lkKSB7CiAgICBwb2xpY3lfc3RvcmFnZS5kcml2ZXIgICAgICAgICAgID09IGlucHV0X3N0b3JhZ2UuZHJpdmVyCiAgICBwb2xpY3lfc3RvcmFnZS5kcml2ZXJfb3B0aW9ucyAgID09IGlucHV0X3N0b3JhZ2UuZHJpdmVyX29wdGlvbnMKICAgIHBvbGljeV9zdG9yYWdlLm9wdGlvbnMgICAgICAgICAgPT0gaW5wdXRfc3RvcmFnZS5vcHRpb25zCiAgICBwb2xpY3lfc3RvcmFnZS5mc19ncm91cCAgICAgICAgID09IGlucHV0X3N0b3JhZ2UuZnNfZ3JvdXAKCiAgICBhbGxvd19tb3VudF9wb2ludChwb2xpY3lfc3RvcmFnZSwgaW5wdXRfc3RvcmFnZSwgYnVuZGxlX2lkLCBzYW5kYm94X2lkKQoKICAgICMgVE9ETzogdmFsaWRhdGUgdGhlIHNvdXJjZSBmaWVsZCB0b28uCgogICAgcHJpbnQoInN0b3JhZ2VzX21hdGNoOiBzdWNjZXNzIikKfQoKYWxsb3dfbW91bnRfcG9pbnQocG9saWN5X3N0b3JhZ2UsIGlucHV0X3N0b3JhZ2UsIGJ1bmRsZV9pZCwgc2FuZGJveF9pZCkgewogICAgcHJpbnQoImFsbG93X21vdW50X3BvaW50IDE6IGZzdHlwZSA9PSB0YXIiKQogICAgcG9saWN5X3N0b3JhZ2UuZnN0eXBlID09ICJ0YXIiCgogICAgcHJpbnQoImFsbG93X21vdW50X3BvaW50IDE6IHBvbGljeV9zdG9yYWdlLm1vdW50X3BvaW50ID09IGlucHV0X3N0b3JhZ2UubW91bnRfcG9pbnQiKQogICAgcG9saWN5X3N0b3JhZ2UubW91bnRfcG9pbnQgPT0gaW5wdXRfc3RvcmFnZS5tb3VudF9wb2ludAoKICAgIHByaW50KCJhbGxvd19tb3VudF9wb2ludCAxOiBzdWNjZXNzIikKfQphbGxvd19tb3VudF9wb2ludChwb2xpY3lfc3RvcmFnZSwgaW5wdXRfc3RvcmFnZSwgYnVuZGxlX2lkLCBzYW5kYm94X2lkKSB7CiAgICBwcmludCgiYWxsb3dfbW91bnRfcG9pbnQgMjogZnN0eXBlID09IHRhci1vdmVybGF5IikKICAgIHBvbGljeV9zdG9yYWdlLmZzdHlwZSA9PSAidGFyLW92ZXJsYXkiCgogICAgcG9saWN5X21vdW50X3BvaW50IDo9IHJlcGxhY2UocG9saWN5X3N0b3JhZ2UubW91bnRfcG9pbnQsICIkKGJ1bmRsZS1pZCkiLCBidW5kbGVfaWQpCiAgICBwcmludCgiYWxsb3dfbW91bnRfcG9pbnQgMjogcG9saWN5X21vdW50X3BvaW50ID0iLCBwb2xpY3lfbW91bnRfcG9pbnQpCgogICAgcG9saWN5X21vdW50X3BvaW50ID09IGlucHV0X3N0b3JhZ2UubW91bnRfcG9pbnQKCiAgICBwcmludCgiYWxsb3dfbW91bnRfcG9pbnQgMjogc3VjY2VzcyIpCn0KYWxsb3dfbW91bnRfcG9pbnQocG9saWN5X3N0b3JhZ2UsIGlucHV0X3N0b3JhZ2UsIGJ1bmRsZV9pZCwgc2FuZGJveF9pZCkgewogICAgcHJpbnQoImFsbG93X21vdW50X3BvaW50IDM6IGZzdHlwZSA9PSBsb2NhbCIpCiAgICBwb2xpY3lfc3RvcmFnZS5mc3R5cGUgPT0gImxvY2FsIgoKICAgIG1vdW50X3BvaW50X3JlZ2V4IDo9IHJlcGxhY2UocG9saWN5X3N0b3JhZ2UubW91bnRfcG9pbnQsICIkKHNhbmRib3gtaWQpIiwgc2FuZGJveF9pZCkKICAgIHByaW50KCJhbGxvd19tb3VudF9wb2ludCAzOiBtb3VudF9wb2ludF9yZWdleCA9IiwgbW91bnRfcG9pbnRfcmVnZXgpCgogICAgcmVnZXgubWF0Y2gobW91bnRfcG9pbnRfcmVnZXgsIGlucHV0X3N0b3JhZ2UubW91bnRfcG9pbnQpCgogICAgcHJpbnQoImFsbG93X21vdW50X3BvaW50IDM6IHN1Y2Nlc3MiKQp9CmFsbG93X21vdW50X3BvaW50KHBvbGljeV9zdG9yYWdlLCBpbnB1dF9zdG9yYWdlLCBidW5kbGVfaWQsIHNhbmRib3hfaWQpIHsKICAgIHByaW50KCJhbGxvd19tb3VudF9wb2ludCA0OiBmc3R5cGUgPT0gYmluZCIpCiAgICBwb2xpY3lfc3RvcmFnZS5mc3R5cGUgPT0gImJpbmQiCgogICAgbW91bnRfcG9pbnRfcmVnZXggOj0gcmVwbGFjZShwb2xpY3lfc3RvcmFnZS5tb3VudF9wb2ludCwgIiQoYnVuZGxlLWlkKSIsIGJ1bmRsZV9pZCkKICAgIHByaW50KCJhbGxvd19tb3VudF9wb2ludCA0OiBtb3VudF9wb2ludF9yZWdleCA9IiwgbW91bnRfcG9pbnRfcmVnZXgpCgogICAgcmVnZXgubWF0Y2gobW91bnRfcG9pbnRfcmVnZXgsIGlucHV0X3N0b3JhZ2UubW91bnRfcG9pbnQpCgogICAgcHJpbnQoImFsbG93X21vdW50X3BvaW50IDQ6IHN1Y2Nlc3MiKQp9CgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCkNvcHlGaWxlUmVxdWVzdCB7CiAgICBwcmludCgiQ29weUZpbGVSZXF1ZXN0OiBpbnB1dC5wYXRoID0iLCBpbnB1dC5wYXRoKQoKICAgIHNvbWUgcG9saWN5X3JlZ2V4IGluIHBvbGljeV9kYXRhLnJlcXVlc3RfZGVmYXVsdHMuQ29weUZpbGVSZXF1ZXN0CiAgICByZWdleC5tYXRjaChwb2xpY3lfcmVnZXgsIGlucHV0LnBhdGgpCgogICAgcHJpbnQoIkNvcHlGaWxlUmVxdWVzdDogc3VjY2VzcyIpCn0KCkV4ZWNQcm9jZXNzUmVxdWVzdCB7CiAgICBwcmludCgiRXhlY1Byb2Nlc3NSZXF1ZXN0IDE6IGlucHV0ID0iLCBpbnB1dCkKCiAgICBpbnB1dF9jb21tYW5kID0gY29uY2F0KCIgIiwgaW5wdXQucHJvY2Vzcy5BcmdzKQoKICAgIHNvbWUgcG9saWN5X2NvbW1hbmQgaW4gcG9saWN5X2RhdGEucmVxdWVzdF9kZWZhdWx0cy5FeGVjUHJvY2Vzc1JlcXVlc3QKICAgIHBvbGljeV9jb21tYW5kID09IGlucHV0X2NvbW1hbmQKCiAgICBwcmludCgiRXhlY1Byb2Nlc3NSZXF1ZXN0IDE6IHN1Y2Nlc3MiKQp9CkV4ZWNQcm9jZXNzUmVxdWVzdCB7CiAgICBwcmludCgiRXhlY1Byb2Nlc3NSZXF1ZXN0IDI6IGlucHV0ID0iLCBpbnB1dCkKCiAgICAjIFRPRE86IG1hdGNoIGlucHV0IGNvbnRhaW5lciBJRCB3aXRoIGl0cyBjb3JyZXNwb25kaW5nIGNvbnRhaW5lci5leGVjX2NvbW1hbmRzLgogICAgaW5wdXRfY29tbWFuZCA9IGNvbmNhdCgiICIsIGlucHV0LnByb2Nlc3MuQXJncykKCiAgICBzb21lIGNvbnRhaW5lciBpbiBwb2xpY3lfZGF0YS5jb250YWluZXJzCiAgICBzb21lIHBvbGljeV9jb21tYW5kIGluIGNvbnRhaW5lci5leGVjX2NvbW1hbmRzCiAgICBwcmludCgiRXhlY1Byb2Nlc3NSZXF1ZXN0IDI6IHBvbGljeV9jb21tYW5kID0iLCBwb2xpY3lfY29tbWFuZCkKCiAgICAjIFRPRE86IHNob3VsZCBvdGhlciBpbnB1dCBkYXRhIGZpZWxkcyBiZSB2YWxpZGF0ZWQgYXMgd2VsbD8KICAgIHBvbGljeV9jb21tYW5kID09IGlucHV0X2NvbW1hbmQKCiAgICBwcmludCgiRXhlY1Byb2Nlc3NSZXF1ZXN0IDI6IHN1Y2Nlc3MiKQp9CgpSZWFkU3RyZWFtUmVxdWVzdCB7CiAgICBwb2xpY3lfZGF0YS5yZXF1ZXN0X2RlZmF1bHRzLlJlYWRTdHJlYW1SZXF1ZXN0ID09IHRydWUKfQoKV3JpdGVTdHJlYW1SZXF1ZXN0IHsKICAgIHBvbGljeV9kYXRhLnJlcXVlc3RfZGVmYXVsdHMuV3JpdGVTdHJlYW1SZXF1ZXN0ID09IHRydWUKfQoKcG9saWN5X2RhdGEgOj0gewogICJjb250YWluZXJzIjogWwogICAgewogICAgICAiT0NJIjogewogICAgICAgICJWZXJzaW9uIjogIjEuMS4wLXJjLjEiLAogICAgICAgICJQcm9jZXNzIjogewogICAgICAgICAgIlRlcm1pbmFsIjogZmFsc2UsCiAgICAgICAgICAiVXNlciI6IHsKICAgICAgICAgICAgIlVJRCI6IDY1NTM1LAogICAgICAgICAgICAiR0lEIjogNjU1MzUsCiAgICAgICAgICAgICJBZGRpdGlvbmFsR2lkcyI6IFtdLAogICAgICAgICAgICAiVXNlcm5hbWUiOiAiIgogICAgICAgICAgfSwKICAgICAgICAgICJBcmdzIjogWwogICAgICAgICAgICAiL3BhdXNlIgogICAgICAgICAgXSwKICAgICAgICAgICJFbnYiOiBbCiAgICAgICAgICAgICJQQVRIPS91c3IvbG9jYWwvc2JpbjovdXNyL2xvY2FsL2JpbjovdXNyL3NiaW46L3Vzci9iaW46L3NiaW46L2JpbiIKICAgICAgICAgIF0sCiAgICAgICAgICAiQ3dkIjogIi8iLAogICAgICAgICAgIkNhcGFiaWxpdGllcyI6IHsKICAgICAgICAgICAgIkFtYmllbnQiOiBbXSwKICAgICAgICAgICAgIkJvdW5kaW5nIjogWwogICAgICAgICAgICAgICJDQVBfQ0hPV04iLAogICAgICAgICAgICAgICJDQVBfREFDX09WRVJSSURFIiwKICAgICAgICAgICAgICAiQ0FQX0ZTRVRJRCIsCiAgICAgICAgICAgICAgIkNBUF9GT1dORVIiLAogICAgICAgICAgICAgICJDQVBfTUtOT0QiLAogICAgICAgICAgICAgICJDQVBfTkVUX1JBVyIsCiAgICAgICAgICAgICAgIkNBUF9TRVRHSUQiLAogICAgICAgICAgICAgICJDQVBfU0VUVUlEIiwKICAgICAgICAgICAgICAiQ0FQX1NFVEZDQVAiLAogICAgICAgICAgICAgICJDQVBfU0VUUENBUCIsCiAgICAgICAgICAgICAgIkNBUF9ORVRfQklORF9TRVJWSUNFIiwKICAgICAgICAgICAgICAiQ0FQX1NZU19DSFJPT1QiLAogICAgICAgICAgICAgICJDQVBfS0lMTCIsCiAgICAgICAgICAgICAgIkNBUF9BVURJVF9XUklURSIKICAgICAgICAgICAgXSwKICAgICAgICAgICAgIkVmZmVjdGl2ZSI6IFsKICAgICAgICAgICAgICAiQ0FQX0NIT1dOIiwKICAgICAgICAgICAgICAiQ0FQX0RBQ19PVkVSUklERSIsCiAgICAgICAgICAgICAgIkNBUF9GU0VUSUQiLAogICAgICAgICAgICAgICJDQVBfRk9XTkVSIiwKICAgICAgICAgICAgICAiQ0FQX01LTk9EIiwKICAgICAgICAgICAgICAiQ0FQX05FVF9SQVciLAogICAgICAgICAgICAgICJDQVBfU0VUR0lEIiwKICAgICAgICAgICAgICAiQ0FQX1NFVFVJRCIsCiAgICAgICAgICAgICAgIkNBUF9TRVRGQ0FQIiwKICAgICAgICAgICAgICAiQ0FQX1NFVFBDQVAiLAogICAgICAgICAgICAgICJDQVBfTkVUX0JJTkRfU0VSVklDRSIsCiAgICAgICAgICAgICAgIkNBUF9TWVNfQ0hST09UIiwKICAgICAgICAgICAgICAiQ0FQX0tJTEwiLAogICAgICAgICAgICAgICJDQVBfQVVESVRfV1JJVEUiCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJJbmhlcml0YWJsZSI6IFtdLAogICAgICAgICAgICAiUGVybWl0dGVkIjogWwogICAgICAgICAgICAgICJDQVBfQ0hPV04iLAogICAgICAgICAgICAgICJDQVBfREFDX09WRVJSSURFIiwKICAgICAgICAgICAgICAiQ0FQX0ZTRVRJRCIsCiAgICAgICAgICAgICAgIkNBUF9GT1dORVIiLAogICAgICAgICAgICAgICJDQVBfTUtOT0QiLAogICAgICAgICAgICAgICJDQVBfTkVUX1JBVyIsCiAgICAgICAgICAgICAgIkNBUF9TRVRHSUQiLAogICAgICAgICAgICAgICJDQVBfU0VUVUlEIiwKICAgICAgICAgICAgICAiQ0FQX1NFVEZDQVAiLAogICAgICAgICAgICAgICJDQVBfU0VUUENBUCIsCiAgICAgICAgICAgICAgIkNBUF9ORVRfQklORF9TRVJWSUNFIiwKICAgICAgICAgICAgICAiQ0FQX1NZU19DSFJPT1QiLAogICAgICAgICAgICAgICJDQVBfS0lMTCIsCiAgICAgICAgICAgICAgIkNBUF9BVURJVF9XUklURSIKICAgICAgICAgICAgXQogICAgICAgICAgfSwKICAgICAgICAgICJOb05ld1ByaXZpbGVnZXMiOiB0cnVlCiAgICAgICAgfSwKICAgICAgICAiUm9vdCI6IHsKICAgICAgICAgICJQYXRoIjogIi9ydW4va2F0YS1jb250YWluZXJzL3NoYXJlZC9jb250YWluZXJzLyQoYnVuZGxlLWlkKSIsCiAgICAgICAgICAiUmVhZG9ubHkiOiB0cnVlCiAgICAgICAgfSwKICAgICAgICAiTW91bnRzIjogWwogICAgICAgICAgewogICAgICAgICAgICAiZGVzdGluYXRpb24iOiAiL3Byb2MiLAogICAgICAgICAgICAic291cmNlIjogInByb2MiLAogICAgICAgICAgICAidHlwZV8iOiAicHJvYyIsCiAgICAgICAgICAgICJvcHRpb25zIjogWwogICAgICAgICAgICAgICJub3N1aWQiLAogICAgICAgICAgICAgICJub2V4ZWMiLAogICAgICAgICAgICAgICJub2RldiIKICAgICAgICAgICAgXQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImRlc3RpbmF0aW9uIjogIi9kZXYiLAogICAgICAgICAgICAic291cmNlIjogInRtcGZzIiwKICAgICAgICAgICAgInR5cGVfIjogInRtcGZzIiwKICAgICAgICAgICAgIm9wdGlvbnMiOiBbCiAgICAgICAgICAgICAgIm5vc3VpZCIsCiAgICAgICAgICAgICAgInN0cmljdGF0aW1lIiwKICAgICAgICAgICAgICAibW9kZT03NTUiLAogICAgICAgICAgICAgICJzaXplPTY1NTM2ayIKICAgICAgICAgICAgXQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImRlc3RpbmF0aW9uIjogIi9kZXYvcHRzIiwKICAgICAgICAgICAgInNvdXJjZSI6ICJkZXZwdHMiLAogICAgICAgICAgICAidHlwZV8iOiAiZGV2cHRzIiwKICAgICAgICAgICAgIm9wdGlvbnMiOiBbCiAgICAgICAgICAgICAgIm5vc3VpZCIsCiAgICAgICAgICAgICAgIm5vZXhlYyIsCiAgICAgICAgICAgICAgIm5ld2luc3RhbmNlIiwKICAgICAgICAgICAgICAicHRteG1vZGU9MDY2NiIsCiAgICAgICAgICAgICAgIm1vZGU9MDYyMCIsCiAgICAgICAgICAgICAgImdpZD01IgogICAgICAgICAgICBdCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiZGVzdGluYXRpb24iOiAiL2Rldi9zaG0iLAogICAgICAgICAgICAic291cmNlIjogIi9ydW4va2F0YS1jb250YWluZXJzL3NhbmRib3gvc2htIiwKICAgICAgICAgICAgInR5cGVfIjogImJpbmQiLAogICAgICAgICAgICAib3B0aW9ucyI6IFsKICAgICAgICAgICAgICAicmJpbmQiCiAgICAgICAgICAgIF0KICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJkZXN0aW5hdGlvbiI6ICIvZGV2L21xdWV1ZSIsCiAgICAgICAgICAgICJzb3VyY2UiOiAibXF1ZXVlIiwKICAgICAgICAgICAgInR5cGVfIjogIm1xdWV1ZSIsCiAgICAgICAgICAgICJvcHRpb25zIjogWwogICAgICAgICAgICAgICJub3N1aWQiLAogICAgICAgICAgICAgICJub2V4ZWMiLAogICAgICAgICAgICAgICJub2RldiIKICAgICAgICAgICAgXQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImRlc3RpbmF0aW9uIjogIi9zeXMiLAogICAgICAgICAgICAic291cmNlIjogInN5c2ZzIiwKICAgICAgICAgICAgInR5cGVfIjogInN5c2ZzIiwKICAgICAgICAgICAgIm9wdGlvbnMiOiBbCiAgICAgICAgICAgICAgIm5vc3VpZCIsCiAgICAgICAgICAgICAgIm5vZXhlYyIsCiAgICAgICAgICAgICAgIm5vZGV2IiwKICAgICAgICAgICAgICAicm8iCiAgICAgICAgICAgIF0KICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJkZXN0aW5hdGlvbiI6ICIvZXRjL3Jlc29sdi5jb25mIiwKICAgICAgICAgICAgInNvdXJjZSI6ICJeL3J1bi9rYXRhLWNvbnRhaW5lcnMvc2hhcmVkL2NvbnRhaW5lcnMvJChidW5kbGUtaWQpLVthLXowLTldezE2fS1yZXNvbHYuY29uZiQiLAogICAgICAgICAgICAidHlwZV8iOiAiYmluZCIsCiAgICAgICAgICAgICJvcHRpb25zIjogWwogICAgICAgICAgICAgICJyYmluZCIsCiAgICAgICAgICAgICAgInJvIiwKICAgICAgICAgICAgICAibm9zdWlkIiwKICAgICAgICAgICAgICAibm9kZXYiLAogICAgICAgICAgICAgICJub2V4ZWMiCiAgICAgICAgICAgIF0KICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJBbm5vdGF0aW9ucyI6IHsKICAgICAgICAgICJpby5rYXRhY29udGFpbmVycy5wa2cub2NpLmJ1bmRsZV9wYXRoIjogIi9ydW4vY29udGFpbmVyZC9pby5jb250YWluZXJkLnJ1bnRpbWUudjIudGFzay9rOHMuaW8vJChidW5kbGUtaWQpIiwKICAgICAgICAgICJpby5rYXRhY29udGFpbmVycy5wa2cub2NpLmNvbnRhaW5lcl90eXBlIjogInBvZF9zYW5kYm94IiwKICAgICAgICAgICJpby5rdWJlcm5ldGVzLmNyaS5jb250YWluZXItdHlwZSI6ICJzYW5kYm94IiwKICAgICAgICAgICJpby5rdWJlcm5ldGVzLmNyaS5zYW5kYm94LWlkIjogIl5bYS16MC05XXs2NH0kIiwKICAgICAgICAgICJpby5rdWJlcm5ldGVzLmNyaS5zYW5kYm94LWxvZy1kaXJlY3RvcnkiOiAiXi92YXIvbG9nL3BvZHMvJChzYW5kYm94LW5hbWVzcGFjZSlfJChzYW5kYm94LW5hbWUpX1swLTlhLWZdezh9LVswLTlhLWZdezR9LVswLTlhLWZdezR9LVswLTlhLWZdezR9LVswLTlhLWZdezEyfSQiLAogICAgICAgICAgImlvLmt1YmVybmV0ZXMuY3JpLnNhbmRib3gtbmFtZXNwYWNlIjogImRlZmF1bHQiLAogICAgICAgICAgIm5lcmRjdGwvbmV0d29yay1uYW1lc3BhY2UiOiAiXi92YXIvcnVuL25ldG5zL2NuaS1bMC05YS1mXXs4fS1bMC05YS1mXXs0fS1bMC05YS1mXXs0fS1bMC05YS1mXXs0fS1bMC05YS1mXXsxMn0kIgogICAgICAgIH0sCiAgICAgICAgIkxpbnV4IjogewogICAgICAgICAgIk5hbWVzcGFjZXMiOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAiVHlwZSI6ICJpcGMiLAogICAgICAgICAgICAgICJQYXRoIjogIiIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICJUeXBlIjogInV0cyIsCiAgICAgICAgICAgICAgIlBhdGgiOiAiIgogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIlR5cGUiOiAibW91bnQiLAogICAgICAgICAgICAgICJQYXRoIjogIiIKICAgICAgICAgICAgfQogICAgICAgICAgXSwKICAgICAgICAgICJNYXNrZWRQYXRocyI6IFsKICAgICAgICAgICAgIi9wcm9jL2FjcGkiLAogICAgICAgICAgICAiL3Byb2MvYXNvdW5kIiwKICAgICAgICAgICAgIi9wcm9jL2tjb3JlIiwKICAgICAgICAgICAgIi9wcm9jL2tleXMiLAogICAgICAgICAgICAiL3Byb2MvbGF0ZW5jeV9zdGF0cyIsCiAgICAgICAgICAgICIvcHJvYy90aW1lcl9saXN0IiwKICAgICAgICAgICAgIi9wcm9jL3RpbWVyX3N0YXRzIiwKICAgICAgICAgICAgIi9wcm9jL3NjaGVkX2RlYnVnIiwKICAgICAgICAgICAgIi9zeXMvZmlybXdhcmUiLAogICAgICAgICAgICAiL3Byb2Mvc2NzaSIKICAgICAgICAgIF0sCiAgICAgICAgICAiUmVhZG9ubHlQYXRocyI6IFsKICAgICAgICAgICAgIi9wcm9jL2J1cyIsCiAgICAgICAgICAgICIvcHJvYy9mcyIsCiAgICAgICAgICAgICIvcHJvYy9pcnEiLAogICAgICAgICAgICAiL3Byb2Mvc3lzIiwKICAgICAgICAgICAgIi9wcm9jL3N5c3JxLXRyaWdnZXIiCiAgICAgICAgICBdCiAgICAgICAgfQogICAgICB9LAogICAgICAic3RvcmFnZXMiOiBbCiAgICAgICAgewogICAgICAgICAgImRyaXZlciI6ICJibGsiLAogICAgICAgICAgImRyaXZlcl9vcHRpb25zIjogW10sCiAgICAgICAgICAic291cmNlIjogIiIsCiAgICAgICAgICAiZnN0eXBlIjogInRhciIsCiAgICAgICAgICAib3B0aW9ucyI6IFsKICAgICAgICAgICAgInJvIiwKICAgICAgICAgICAgImlvLmthdGFjb250YWluZXJzLmZzLW9wdC5ibG9ja19kZXZpY2U9ZmlsZSIsCiAgICAgICAgICAgICJpby5rYXRhY29udGFpbmVycy5mcy1vcHQuaXMtbGF5ZXIiLAogICAgICAgICAgICAiaW8ua2F0YWNvbnRhaW5lcnMuZnMtb3B0LnJvb3QtaGFzaD04MTcyNTBmMWEzZTMzNmRhNzZmNWJkM2ZhNzg0ZTFiMjZkOTU5YjljMTMxODc2ODE1YmEyNjA0MDQ4YjcwYzE4IgogICAgICAgICAgXSwKICAgICAgICAgICJtb3VudF9wb2ludCI6ICIvcnVuL2thdGEtY29udGFpbmVycy9zYW5kYm94L2xheWVycy81YTVhYWQ4MDA1NWZmMjAwMTJhNTBkYzI1ZjhkZjdhMjk5MjQ0NzQzMjRkNjVmN2Q1MzA2ZWU4ZWUyN2ZmNzFkIiwKICAgICAgICAgICJmc19ncm91cCI6IG51bGwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJkcml2ZXIiOiAib3ZlcmxheWZzIiwKICAgICAgICAgICJkcml2ZXJfb3B0aW9ucyI6IFtdLAogICAgICAgICAgInNvdXJjZSI6ICIiLAogICAgICAgICAgImZzdHlwZSI6ICJ0YXItb3ZlcmxheSIsCiAgICAgICAgICAib3B0aW9ucyI6IFsKICAgICAgICAgICAgImlvLmthdGFjb250YWluZXJzLmZzLW9wdC5sYXllci1zcmMtcHJlZml4PS92YXIvbGliL2NvbnRhaW5lcmQvaW8uY29udGFpbmVyZC5zbmFwc2hvdHRlci52MS50YXJkZXYvbGF5ZXJzIiwKICAgICAgICAgICAgImlvLmthdGFjb250YWluZXJzLmZzLW9wdC5sYXllcj1OV0UxWVdGa09EQXdOVFZtWmpJd01ERXlZVFV3WkdNeU5XWTRaR1kzWVRJNU9USTBORGMwTXpJMFpEWTFaamRrTlRNd05tVmxPR1ZsTWpkbVpqY3haQ3gwWVhJc2NtOHNhVzh1YTJGMFlXTnZiblJoYVc1bGNuTXVabk10YjNCMExtSnNiMk5yWDJSbGRtbGpaVDFtYVd4bExHbHZMbXRoZEdGamIyNTBZV2x1WlhKekxtWnpMVzl3ZEM1cGN5MXNZWGxsY2l4cGJ5NXJZWFJoWTI5dWRHRnBibVZ5Y3k1bWN5MXZjSFF1Y205dmRDMW9ZWE5vUFRneE56STFNR1l4WVRObE16TTJaR0UzTm1ZMVltUXpabUUzT0RSbE1XSXlObVE1TlRsaU9XTXhNekU0TnpZNE1UVmlZVEkyTURRd05EaGlOekJqTVRnPSIsCiAgICAgICAgICAgICJpby5rYXRhY29udGFpbmVycy5mcy1vcHQub3ZlcmxheS1ydyIsCiAgICAgICAgICAgICJsb3dlcmRpcj01YTVhYWQ4MDA1NWZmMjAwMTJhNTBkYzI1ZjhkZjdhMjk5MjQ0NzQzMjRkNjVmN2Q1MzA2ZWU4ZWUyN2ZmNzFkIgogICAgICAgICAgXSwKICAgICAgICAgICJtb3VudF9wb2ludCI6ICIvcnVuL2thdGEtY29udGFpbmVycy9zaGFyZWQvY29udGFpbmVycy8kKGJ1bmRsZS1pZCkiLAogICAgICAgICAgImZzX2dyb3VwIjogbnVsbAogICAgICAgIH0KICAgICAgXSwKICAgICAgImV4ZWNfY29tbWFuZHMiOiBbXQogICAgfSwKICAgIHsKICAgICAgIk9DSSI6IHsKICAgICAgICAiVmVyc2lvbiI6ICIxLjEuMC1yYy4xIiwKICAgICAgICAiUHJvY2VzcyI6IHsKICAgICAgICAgICJUZXJtaW5hbCI6IGZhbHNlLAogICAgICAgICAgIlVzZXIiOiB7CiAgICAgICAgICAgICJVSUQiOiAwLAogICAgICAgICAgICAiR0lEIjogMCwKICAgICAgICAgICAgIkFkZGl0aW9uYWxHaWRzIjogW10sCiAgICAgICAgICAgICJVc2VybmFtZSI6ICIiCiAgICAgICAgICB9LAogICAgICAgICAgIkFyZ3MiOiBbCiAgICAgICAgICAgICJzaCIKICAgICAgICAgIF0sCiAgICAgICAgICAiRW52IjogWwogICAgICAgICAgICAiUEFUSD0vdXNyL2xvY2FsL3NiaW46L3Vzci9sb2NhbC9iaW46L3Vzci9zYmluOi91c3IvYmluOi9zYmluOi9iaW4iLAogICAgICAgICAgICAiSE9TVE5BTUU9JChob3N0LW5hbWUpIgogICAgICAgICAgXSwKICAgICAgICAgICJDd2QiOiAiLyIsCiAgICAgICAgICAiQ2FwYWJpbGl0aWVzIjogewogICAgICAgICAgICAiQW1iaWVudCI6IFtdLAogICAgICAgICAgICAiQm91bmRpbmciOiBbCiAgICAgICAgICAgICAgIkNBUF9DSE9XTiIsCiAgICAgICAgICAgICAgIkNBUF9EQUNfT1ZFUlJJREUiLAogICAgICAgICAgICAgICJDQVBfRlNFVElEIiwKICAgICAgICAgICAgICAiQ0FQX0ZPV05FUiIsCiAgICAgICAgICAgICAgIkNBUF9NS05PRCIsCiAgICAgICAgICAgICAgIkNBUF9ORVRfUkFXIiwKICAgICAgICAgICAgICAiQ0FQX1NFVEdJRCIsCiAgICAgICAgICAgICAgIkNBUF9TRVRVSUQiLAogICAgICAgICAgICAgICJDQVBfU0VURkNBUCIsCiAgICAgICAgICAgICAgIkNBUF9TRVRQQ0FQIiwKICAgICAgICAgICAgICAiQ0FQX05FVF9CSU5EX1NFUlZJQ0UiLAogICAgICAgICAgICAgICJDQVBfU1lTX0NIUk9PVCIsCiAgICAgICAgICAgICAgIkNBUF9LSUxMIiwKICAgICAgICAgICAgICAiQ0FQX0FVRElUX1dSSVRFIgogICAgICAgICAgICBdLAogICAgICAgICAgICAiRWZmZWN0aXZlIjogWwogICAgICAgICAgICAgICJDQVBfQ0hPV04iLAogICAgICAgICAgICAgICJDQVBfREFDX09WRVJSSURFIiwKICAgICAgICAgICAgICAiQ0FQX0ZTRVRJRCIsCiAgICAgICAgICAgICAgIkNBUF9GT1dORVIiLAogICAgICAgICAgICAgICJDQVBfTUtOT0QiLAogICAgICAgICAgICAgICJDQVBfTkVUX1JBVyIsCiAgICAgICAgICAgICAgIkNBUF9TRVRHSUQiLAogICAgICAgICAgICAgICJDQVBfU0VUVUlEIiwKICAgICAgICAgICAgICAiQ0FQX1NFVEZDQVAiLAogICAgICAgICAgICAgICJDQVBfU0VUUENBUCIsCiAgICAgICAgICAgICAgIkNBUF9ORVRfQklORF9TRVJWSUNFIiwKICAgICAgICAgICAgICAiQ0FQX1NZU19DSFJPT1QiLAogICAgICAgICAgICAgICJDQVBfS0lMTCIsCiAgICAgICAgICAgICAgIkNBUF9BVURJVF9XUklURSIKICAgICAgICAgICAgXSwKICAgICAgICAgICAgIkluaGVyaXRhYmxlIjogW10sCiAgICAgICAgICAgICJQZXJtaXR0ZWQiOiBbCiAgICAgICAgICAgICAgIkNBUF9DSE9XTiIsCiAgICAgICAgICAgICAgIkNBUF9EQUNfT1ZFUlJJREUiLAogICAgICAgICAgICAgICJDQVBfRlNFVElEIiwKICAgICAgICAgICAgICAiQ0FQX0ZPV05FUiIsCiAgICAgICAgICAgICAgIkNBUF9NS05PRCIsCiAgICAgICAgICAgICAgIkNBUF9ORVRfUkFXIiwKICAgICAgICAgICAgICAiQ0FQX1NFVEdJRCIsCiAgICAgICAgICAgICAgIkNBUF9TRVRVSUQiLAogICAgICAgICAgICAgICJDQVBfU0VURkNBUCIsCiAgICAgICAgICAgICAgIkNBUF9TRVRQQ0FQIiwKICAgICAgICAgICAgICAiQ0FQX05FVF9CSU5EX1NFUlZJQ0UiLAogICAgICAgICAgICAgICJDQVBfU1lTX0NIUk9PVCIsCiAgICAgICAgICAgICAgIkNBUF9LSUxMIiwKICAgICAgICAgICAgICAiQ0FQX0FVRElUX1dSSVRFIgogICAgICAgICAgICBdCiAgICAgICAgICB9LAogICAgICAgICAgIk5vTmV3UHJpdmlsZWdlcyI6IGZhbHNlCiAgICAgICAgfSwKICAgICAgICAiUm9vdCI6IHsKICAgICAgICAgICJQYXRoIjogIi9ydW4va2F0YS1jb250YWluZXJzL3NoYXJlZC9jb250YWluZXJzLyQoYnVuZGxlLWlkKSIsCiAgICAgICAgICAiUmVhZG9ubHkiOiBmYWxzZQogICAgICAgIH0sCiAgICAgICAgIk1vdW50cyI6IFsKICAgICAgICAgIHsKICAgICAgICAgICAgImRlc3RpbmF0aW9uIjogIi9wcm9jIiwKICAgICAgICAgICAgInNvdXJjZSI6ICJwcm9jIiwKICAgICAgICAgICAgInR5cGVfIjogInByb2MiLAogICAgICAgICAgICAib3B0aW9ucyI6IFsKICAgICAgICAgICAgICAibm9zdWlkIiwKICAgICAgICAgICAgICAibm9leGVjIiwKICAgICAgICAgICAgICAibm9kZXYiCiAgICAgICAgICAgIF0KICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJkZXN0aW5hdGlvbiI6ICIvZGV2IiwKICAgICAgICAgICAgInNvdXJjZSI6ICJ0bXBmcyIsCiAgICAgICAgICAgICJ0eXBlXyI6ICJ0bXBmcyIsCiAgICAgICAgICAgICJvcHRpb25zIjogWwogICAgICAgICAgICAgICJub3N1aWQiLAogICAgICAgICAgICAgICJzdHJpY3RhdGltZSIsCiAgICAgICAgICAgICAgIm1vZGU9NzU1IiwKICAgICAgICAgICAgICAic2l6ZT02NTUzNmsiCiAgICAgICAgICAgIF0KICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJkZXN0aW5hdGlvbiI6ICIvZGV2L3B0cyIsCiAgICAgICAgICAgICJzb3VyY2UiOiAiZGV2cHRzIiwKICAgICAgICAgICAgInR5cGVfIjogImRldnB0cyIsCiAgICAgICAgICAgICJvcHRpb25zIjogWwogICAgICAgICAgICAgICJub3N1aWQiLAogICAgICAgICAgICAgICJub2V4ZWMiLAogICAgICAgICAgICAgICJuZXdpbnN0YW5jZSIsCiAgICAgICAgICAgICAgInB0bXhtb2RlPTA2NjYiLAogICAgICAgICAgICAgICJtb2RlPTA2MjAiLAogICAgICAgICAgICAgICJnaWQ9NSIKICAgICAgICAgICAgXQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImRlc3RpbmF0aW9uIjogIi9kZXYvc2htIiwKICAgICAgICAgICAgInNvdXJjZSI6ICIvcnVuL2thdGEtY29udGFpbmVycy9zYW5kYm94L3NobSIsCiAgICAgICAgICAgICJ0eXBlXyI6ICJiaW5kIiwKICAgICAgICAgICAgIm9wdGlvbnMiOiBbCiAgICAgICAgICAgICAgInJiaW5kIgogICAgICAgICAgICBdCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiZGVzdGluYXRpb24iOiAiL2Rldi9tcXVldWUiLAogICAgICAgICAgICAic291cmNlIjogIm1xdWV1ZSIsCiAgICAgICAgICAgICJ0eXBlXyI6ICJtcXVldWUiLAogICAgICAgICAgICAib3B0aW9ucyI6IFsKICAgICAgICAgICAgICAibm9zdWlkIiwKICAgICAgICAgICAgICAibm9leGVjIiwKICAgICAgICAgICAgICAibm9kZXYiCiAgICAgICAgICAgIF0KICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJkZXN0aW5hdGlvbiI6ICIvc3lzIiwKICAgICAgICAgICAgInNvdXJjZSI6ICJzeXNmcyIsCiAgICAgICAgICAgICJ0eXBlXyI6ICJzeXNmcyIsCiAgICAgICAgICAgICJvcHRpb25zIjogWwogICAgICAgICAgICAgICJub3N1aWQiLAogICAgICAgICAgICAgICJub2V4ZWMiLAogICAgICAgICAgICAgICJub2RldiIsCiAgICAgICAgICAgICAgInJvIgogICAgICAgICAgICBdCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiZGVzdGluYXRpb24iOiAiL3N5cy9mcy9jZ3JvdXAiLAogICAgICAgICAgICAic291cmNlIjogImNncm91cCIsCiAgICAgICAgICAgICJ0eXBlXyI6ICJjZ3JvdXAiLAogICAgICAgICAgICAib3B0aW9ucyI6IFsKICAgICAgICAgICAgICAibm9zdWlkIiwKICAgICAgICAgICAgICAibm9leGVjIiwKICAgICAgICAgICAgICAibm9kZXYiLAogICAgICAgICAgICAgICJyZWxhdGltZSIsCiAgICAgICAgICAgICAgInJvIgogICAgICAgICAgICBdCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiZGVzdGluYXRpb24iOiAiL2V0Yy9ob3N0cyIsCiAgICAgICAgICAgICJzb3VyY2UiOiAiXi9ydW4va2F0YS1jb250YWluZXJzL3NoYXJlZC9jb250YWluZXJzLyQoYnVuZGxlLWlkKS1bYS16MC05XXsxNn0taG9zdHMkIiwKICAgICAgICAgICAgInR5cGVfIjogImJpbmQiLAogICAgICAgICAgICAib3B0aW9ucyI6IFsKICAgICAgICAgICAgICAicmJpbmQiLAogICAgICAgICAgICAgICJycHJpdmF0ZSIsCiAgICAgICAgICAgICAgInJ3IgogICAgICAgICAgICBdCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiZGVzdGluYXRpb24iOiAiL2Rldi90ZXJtaW5hdGlvbi1sb2ciLAogICAgICAgICAgICAic291cmNlIjogIl4vcnVuL2thdGEtY29udGFpbmVycy9zaGFyZWQvY29udGFpbmVycy8kKGJ1bmRsZS1pZCktW2EtejAtOV17MTZ9LXRlcm1pbmF0aW9uLWxvZyQiLAogICAgICAgICAgICAidHlwZV8iOiAiYmluZCIsCiAgICAgICAgICAgICJvcHRpb25zIjogWwogICAgICAgICAgICAgICJyYmluZCIsCiAgICAgICAgICAgICAgInJwcml2YXRlIiwKICAgICAgICAgICAgICAicnciCiAgICAgICAgICAgIF0KICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJkZXN0aW5hdGlvbiI6ICIvZXRjL2hvc3RuYW1lIiwKICAgICAgICAgICAgInNvdXJjZSI6ICJeL3J1bi9rYXRhLWNvbnRhaW5lcnMvc2hhcmVkL2NvbnRhaW5lcnMvJChidW5kbGUtaWQpLVthLXowLTldezE2fS1ob3N0bmFtZSQiLAogICAgICAgICAgICAidHlwZV8iOiAiYmluZCIsCiAgICAgICAgICAgICJvcHRpb25zIjogWwogICAgICAgICAgICAgICJyYmluZCIsCiAgICAgICAgICAgICAgInJwcml2YXRlIiwKICAgICAgICAgICAgICAicnciCiAgICAgICAgICAgIF0KICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJkZXN0aW5hdGlvbiI6ICIvZXRjL3Jlc29sdi5jb25mIiwKICAgICAgICAgICAgInNvdXJjZSI6ICJeL3J1bi9rYXRhLWNvbnRhaW5lcnMvc2hhcmVkL2NvbnRhaW5lcnMvJChidW5kbGUtaWQpLVthLXowLTldezE2fS1yZXNvbHYuY29uZiQiLAogICAgICAgICAgICAidHlwZV8iOiAiYmluZCIsCiAgICAgICAgICAgICJvcHRpb25zIjogWwogICAgICAgICAgICAgICJyYmluZCIsCiAgICAgICAgICAgICAgInJwcml2YXRlIiwKICAgICAgICAgICAgICAicnciCiAgICAgICAgICAgIF0KICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJkZXN0aW5hdGlvbiI6ICIvdmFyL3J1bi9zZWNyZXRzL2t1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQiLAogICAgICAgICAgICAic291cmNlIjogIl4vcnVuL2thdGEtY29udGFpbmVycy9zaGFyZWQvY29udGFpbmVycy8kKGJ1bmRsZS1pZCktW2EtejAtOV17MTZ9LXNlcnZpY2VhY2NvdW50JCIsCiAgICAgICAgICAgICJ0eXBlXyI6ICJiaW5kIiwKICAgICAgICAgICAgIm9wdGlvbnMiOiBbCiAgICAgICAgICAgICAgInJiaW5kIiwKICAgICAgICAgICAgICAicnByaXZhdGUiLAogICAgICAgICAgICAgICJybyIKICAgICAgICAgICAgXQogICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgIkFubm90YXRpb25zIjogewogICAgICAgICAgImlvLmthdGFjb250YWluZXJzLnBrZy5vY2kuYnVuZGxlX3BhdGgiOiAiL3J1bi9jb250YWluZXJkL2lvLmNvbnRhaW5lcmQucnVudGltZS52Mi50YXNrL2s4cy5pby8kKGJ1bmRsZS1pZCkiLAogICAgICAgICAgImlvLmthdGFjb250YWluZXJzLnBrZy5vY2kuY29udGFpbmVyX3R5cGUiOiAicG9kX2NvbnRhaW5lciIsCiAgICAgICAgICAiaW8ua3ViZXJuZXRlcy5jcmkuY29udGFpbmVyLW5hbWUiOiAiYnVzeWJveC1kZXBsb3ltZW50IiwKICAgICAgICAgICJpby5rdWJlcm5ldGVzLmNyaS5jb250YWluZXItdHlwZSI6ICJjb250YWluZXIiLAogICAgICAgICAgImlvLmt1YmVybmV0ZXMuY3JpLmltYWdlLW5hbWUiOiAicHVibGljLmVjci5hd3MvZG9ja2VyL2xpYnJhcnkvYnVzeWJveDoxLjM1LjAiLAogICAgICAgICAgImlvLmt1YmVybmV0ZXMuY3JpLnNhbmRib3gtaWQiOiAiXlthLXowLTldezY0fSQiLAogICAgICAgICAgImlvLmt1YmVybmV0ZXMuY3JpLnNhbmRib3gtbmFtZXNwYWNlIjogImRlZmF1bHQiCiAgICAgICAgfSwKICAgICAgICAiTGludXgiOiB7CiAgICAgICAgICAiTmFtZXNwYWNlcyI6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICJUeXBlIjogImlwYyIsCiAgICAgICAgICAgICAgIlBhdGgiOiAiIgogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIlR5cGUiOiAidXRzIiwKICAgICAgICAgICAgICAiUGF0aCI6ICIiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAiVHlwZSI6ICJtb3VudCIsCiAgICAgICAgICAgICAgIlBhdGgiOiAiIgogICAgICAgICAgICB9CiAgICAgICAgICBdLAogICAgICAgICAgIk1hc2tlZFBhdGhzIjogWwogICAgICAgICAgICAiL3Byb2MvYWNwaSIsCiAgICAgICAgICAgICIvcHJvYy9rY29yZSIsCiAgICAgICAgICAgICIvcHJvYy9rZXlzIiwKICAgICAgICAgICAgIi9wcm9jL2xhdGVuY3lfc3RhdHMiLAogICAgICAgICAgICAiL3Byb2MvdGltZXJfbGlzdCIsCiAgICAgICAgICAgICIvcHJvYy90aW1lcl9zdGF0cyIsCiAgICAgICAgICAgICIvcHJvYy9zY2hlZF9kZWJ1ZyIsCiAgICAgICAgICAgICIvcHJvYy9zY3NpIiwKICAgICAgICAgICAgIi9zeXMvZmlybXdhcmUiCiAgICAgICAgICBdLAogICAgICAgICAgIlJlYWRvbmx5UGF0aHMiOiBbCiAgICAgICAgICAgICIvcHJvYy9hc291bmQiLAogICAgICAgICAgICAiL3Byb2MvYnVzIiwKICAgICAgICAgICAgIi9wcm9jL2ZzIiwKICAgICAgICAgICAgIi9wcm9jL2lycSIsCiAgICAgICAgICAgICIvcHJvYy9zeXMiLAogICAgICAgICAgICAiL3Byb2Mvc3lzcnEtdHJpZ2dlciIKICAgICAgICAgIF0KICAgICAgICB9CiAgICAgIH0sCiAgICAgICJzdG9yYWdlcyI6IFsKICAgICAgICB7CiAgICAgICAgICAiZHJpdmVyIjogImJsayIsCiAgICAgICAgICAiZHJpdmVyX29wdGlvbnMiOiBbXSwKICAgICAgICAgICJzb3VyY2UiOiAiIiwKICAgICAgICAgICJmc3R5cGUiOiAidGFyIiwKICAgICAgICAgICJvcHRpb25zIjogWwogICAgICAgICAgICAicm8iLAogICAgICAgICAgICAiaW8ua2F0YWNvbnRhaW5lcnMuZnMtb3B0LmJsb2NrX2RldmljZT1maWxlIiwKICAgICAgICAgICAgImlvLmthdGFjb250YWluZXJzLmZzLW9wdC5pcy1sYXllciIsCiAgICAgICAgICAgICJpby5rYXRhY29udGFpbmVycy5mcy1vcHQucm9vdC1oYXNoPTRjNmEzMmEzNGRjYTlkYzFiMzY4MDc5NjUxOTRkZDgyZTBjODU3MmM3YmIxM2U4Zjc0NzlhZjQ2OWM4NjgwZTMiCiAgICAgICAgICBdLAogICAgICAgICAgIm1vdW50X3BvaW50IjogIi9ydW4va2F0YS1jb250YWluZXJzL3NhbmRib3gvbGF5ZXJzL2RlMzUxNWYxMDBmZGE5NmE2YjJmYmNiNTU3MDk3OWI4NzEwNjFjNzhjMWIxYjc1NDVlYWI3ODI0MDFjNzI0YWUiLAogICAgICAgICAgImZzX2dyb3VwIjogbnVsbAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgImRyaXZlciI6ICJvdmVybGF5ZnMiLAogICAgICAgICAgImRyaXZlcl9vcHRpb25zIjogW10sCiAgICAgICAgICAic291cmNlIjogIiIsCiAgICAgICAgICAiZnN0eXBlIjogInRhci1vdmVybGF5IiwKICAgICAgICAgICJvcHRpb25zIjogWwogICAgICAgICAgICAiaW8ua2F0YWNvbnRhaW5lcnMuZnMtb3B0LmxheWVyLXNyYy1wcmVmaXg9L3Zhci9saWIvY29udGFpbmVyZC9pby5jb250YWluZXJkLnNuYXBzaG90dGVyLnYxLnRhcmRldi9sYXllcnMiLAogICAgICAgICAgICAiaW8ua2F0YWNvbnRhaW5lcnMuZnMtb3B0LmxheWVyPVpHVXpOVEUxWmpFd01HWmtZVGsyWVRaaU1tWmlZMkkxTlRjd09UYzVZamczTVRBMk1XTTNPR014WWpGaU56VTBOV1ZoWWpjNE1qUXdNV00zTWpSaFpTeDBZWElzY204c2FXOHVhMkYwWVdOdmJuUmhhVzVsY25NdVpuTXRiM0IwTG1Kc2IyTnJYMlJsZG1salpUMW1hV3hsTEdsdkxtdGhkR0ZqYjI1MFlXbHVaWEp6TG1aekxXOXdkQzVwY3kxc1lYbGxjaXhwYnk1cllYUmhZMjl1ZEdGcGJtVnljeTVtY3kxdmNIUXVjbTl2ZEMxb1lYTm9QVFJqTm1Fek1tRXpOR1JqWVRsa1l6RmlNelk0TURjNU5qVXhPVFJrWkRneVpUQmpPRFUzTW1NM1ltSXhNMlU0WmpjME56bGhaalEyT1dNNE5qZ3daVE09IiwKICAgICAgICAgICAgImlvLmthdGFjb250YWluZXJzLmZzLW9wdC5vdmVybGF5LXJ3IiwKICAgICAgICAgICAgImxvd2VyZGlyPWRlMzUxNWYxMDBmZGE5NmE2YjJmYmNiNTU3MDk3OWI4NzEwNjFjNzhjMWIxYjc1NDVlYWI3ODI0MDFjNzI0YWUiCiAgICAgICAgICBdLAogICAgICAgICAgIm1vdW50X3BvaW50IjogIi9ydW4va2F0YS1jb250YWluZXJzL3NoYXJlZC9jb250YWluZXJzLyQoYnVuZGxlLWlkKSIsCiAgICAgICAgICAiZnNfZ3JvdXAiOiBudWxsCiAgICAgICAgfQogICAgICBdLAogICAgICAiZXhlY19jb21tYW5kcyI6IFtdCiAgICB9CiAgXSwKICAicmVxdWVzdF9kZWZhdWx0cyI6IHsKICAgICJDb3B5RmlsZVJlcXVlc3QiOiBbCiAgICAgICJeL3J1bi9rYXRhLWNvbnRhaW5lcnMvc2hhcmVkL2NvbnRhaW5lcnMvIgogICAgXSwKICAgICJFeGVjUHJvY2Vzc1JlcXVlc3QiOiBbXSwKICAgICJSZWFkU3RyZWFtUmVxdWVzdCI6IGZhbHNlLAogICAgIldyaXRlU3RyZWFtUmVxdWVzdCI6IGZhbHNlCiAgfQp9 spec: runtimeClassName: kata-cc containers: - image: "public.ecr.aws/docker/library/busybox:1.35.0" - name: busybox + name: busybox-deployment