@beesolve/lambda-keep-active 1.0.2 → 1.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +0,0 @@
1
- import{b as we}from"./chunk-ggeka6d3.js";import{c as he,d as Te,e as oe,f as Nr,g as se,h as de,j as G,k as ie,l as Rr,m as me,n as $e,o as Be,p as Ur,q as We,r as Ye,s as Ge,t as Fe,u as He,v as Se}from"./chunk-p85vag28.js";import{w as be,x as ve}from"./chunk-dkk1zwm0.js";import"./chunk-r8mj3nq7.js";import{A as qe,C as Ve,F as Ee,G as ke,K as B,z as $r}from"./chunk-fbbbv2d4.js";import{L as fe}from"./chunk-ekwpcdh4.js";import{O as ye}from"./chunk-whenq5kz.js";import"./chunk-kvnavsh3.js";import"./chunk-t5j8kj9p.js";import"./chunk-4pkw7jk4.js";import{U as D}from"./chunk-e9mt878v.js";var H=D((I)=>{Object.defineProperty(I,"__esModule",{value:!0});I.resolveHttpAuthSchemeConfig=I.defaultSSOOIDCHttpAuthSchemeProvider=I.defaultSSOOIDCHttpAuthSchemeParametersProvider=void 0;var Sr=G(),Y=$r(),pr=async(r,e,d)=>{return{operation:(0,Y.getSmithyContext)(e).operation,region:await(0,Y.normalizeProvider)(r.region)()||(()=>{throw Error("expected `region` to be configured for `aws.auth#sigv4`")})()}};I.defaultSSOOIDCHttpAuthSchemeParametersProvider=pr;function cr(r){return{schemeId:"aws.auth#sigv4",signingProperties:{name:"sso-oauth",region:r.region},propertiesExtractor:(e,d)=>({signingProperties:{config:e,context:d}})}}function Cr(r){return{schemeId:"smithy.api#noAuth"}}var xr=(r)=>{let e=[];switch(r.operation){case"CreateToken":{e.push(Cr(r));break}default:e.push(cr(r))}return e};I.defaultSSOOIDCHttpAuthSchemeProvider=xr;var nr=(r)=>{let e=(0,Sr.resolveAwsSdkSigV4Config)(r);return Object.assign(e,{authSchemePreference:(0,Y.normalizeProvider)(r.authSchemePreference??[])})};I.resolveHttpAuthSchemeConfig=nr});var ur=D((rr)=>{Object.defineProperty(rr,"__esModule",{value:!0});rr.ruleSet=void 0;var c="required",y="fn",q="argv",V="ref",f=!0,h="isSet",k="booleanEquals",j="error",L="endpoint",M="tree",J="PartitionResult",K="getAttr",T={[c]:!1,type:"string"},o={[c]:!0,default:!1,type:"boolean"},E={[V]:"Endpoint"},C={[y]:k,[q]:[{[V]:"UseFIPS"},!0]},x={[y]:k,[q]:[{[V]:"UseDualStack"},!0]},N={},i={[y]:K,[q]:[{[V]:J},"supportsFIPS"]},n={[V]:J},m={[y]:k,[q]:[!0,{[y]:K,[q]:[n,"supportsDualStack"]}]},$=[C],S=[x],p=[{[V]:"Region"}],ue={version:"1.0",parameters:{Region:T,UseDualStack:o,UseFIPS:o,Endpoint:T},rules:[{conditions:[{[y]:h,[q]:[E]}],rules:[{conditions:$,error:"Invalid Configuration: FIPS and custom endpoint are not supported",type:j},{conditions:S,error:"Invalid Configuration: Dualstack and custom endpoint are not supported",type:j},{endpoint:{url:E,properties:N,headers:N},type:L}],type:M},{conditions:[{[y]:h,[q]:p}],rules:[{conditions:[{[y]:"aws.partition",[q]:p,assign:J}],rules:[{conditions:[C,x],rules:[{conditions:[{[y]:k,[q]:[f,i]},m],rules:[{endpoint:{url:"https://oidc-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:N,headers:N},type:L}],type:M},{error:"FIPS and DualStack are enabled, but this partition does not support one or both",type:j}],type:M},{conditions:$,rules:[{conditions:[{[y]:k,[q]:[i,f]}],rules:[{conditions:[{[y]:"stringEquals",[q]:[{[y]:K,[q]:[n,"name"]},"aws-us-gov"]}],endpoint:{url:"https://oidc.{Region}.amazonaws.com",properties:N,headers:N},type:L},{endpoint:{url:"https://oidc-fips.{Region}.{PartitionResult#dnsSuffix}",properties:N,headers:N},type:L}],type:M},{error:"FIPS is enabled but this partition does not support FIPS",type:j}],type:M},{conditions:S,rules:[{conditions:[m],rules:[{endpoint:{url:"https://oidc.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:N,headers:N},type:L}],type:M},{error:"DualStack is enabled but this partition does not support DualStack",type:j}],type:M},{endpoint:{url:"https://oidc.{Region}.{PartitionResult#dnsSuffix}",properties:N,headers:N},type:L}],type:M}],type:M},{error:"Invalid Configuration: Missing Region",type:j}]};rr.ruleSet=ue});var lr=D((sr)=>{Object.defineProperty(sr,"__esModule",{value:!0});sr.defaultEndpointResolver=void 0;var le=de(),X=se(),ae=ur(),Pe=new X.EndpointCache({size:50,params:["Endpoint","Region","UseDualStack","UseFIPS"]}),Ne=(r,e={})=>{return Pe.get(r,()=>(0,X.resolveEndpoint)(ae.ruleSet,{endpointParams:r,logger:e.logger}))};sr.defaultEndpointResolver=Ne;X.customEndpointFunctions.aws=le.awsEndpointFunctions});var br=D((yr)=>{Object.defineProperty(yr,"__esModule",{value:!0});yr.getRuntimeConfig=void 0;var te=G(),_e=Fe(),Me=Nr(),Re=B(),Ue=be(),ar=qe(),Pr=ye(),De=H(),je=lr(),Le=(r)=>{return{apiVersion:"2019-06-10",base64Decoder:r?.base64Decoder??ar.fromBase64,base64Encoder:r?.base64Encoder??ar.toBase64,disableHostPrefix:r?.disableHostPrefix??!1,endpointProvider:r?.endpointProvider??je.defaultEndpointResolver,extensions:r?.extensions??[],httpAuthSchemeProvider:r?.httpAuthSchemeProvider??De.defaultSSOOIDCHttpAuthSchemeProvider,httpAuthSchemes:r?.httpAuthSchemes??[{schemeId:"aws.auth#sigv4",identityProvider:(e)=>e.getIdentityProvider("aws.auth#sigv4"),signer:new te.AwsSdkSigV4Signer},{schemeId:"smithy.api#noAuth",identityProvider:(e)=>e.getIdentityProvider("smithy.api#noAuth")||(async()=>({})),signer:new Me.NoAuthSigner}],logger:r?.logger??new Re.NoOpLogger,protocol:r?.protocol??new _e.AwsRestJsonProtocol({defaultNamespace:"com.amazonaws.ssooidc"}),serviceId:r?.serviceId??"SSO OIDC",urlParser:r?.urlParser??Ue.parseUrl,utf8Decoder:r?.utf8Decoder??Pr.fromUtf8,utf8Encoder:r?.utf8Encoder??Pr.toUtf8}};yr.getRuntimeConfig=Le});var Lr=D((Dr)=>{Object.defineProperty(Dr,"__esModule",{value:!0});Dr.getRuntimeConfig=void 0;var Je=ke(),Ke=Je.__importDefault(we()),Fr=G(),tr=We(),w=Rr(),Xe=Ye(),_r=Ur(),U=ve(),Mr=Ve(),Qe=Ge(),Ze=Be(),Ae=br(),Oe=B(),ze=He(),Ie=B(),ge=(r)=>{(0,Ie.emitWarningIfUnsupportedVersion)(process.version);let e=(0,ze.resolveDefaultsModeConfig)(r),d=()=>e().then(Oe.loadConfigsForDefaultMode),b=(0,Ae.getRuntimeConfig)(r);(0,Fr.emitWarningIfUnsupportedVersion)(process.version);let l={profile:r?.profile,logger:b.logger};return{...b,...r,runtime:"node",defaultsMode:e,authSchemePreference:r?.authSchemePreference??(0,U.loadConfig)(Fr.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS,l),bodyLengthChecker:r?.bodyLengthChecker??Qe.calculateBodyLength,defaultUserAgentProvider:r?.defaultUserAgentProvider??(0,tr.createDefaultUserAgentProvider)({serviceId:b.serviceId,clientVersion:Ke.default.version}),maxAttempts:r?.maxAttempts??(0,U.loadConfig)(_r.NODE_MAX_ATTEMPT_CONFIG_OPTIONS,r),region:r?.region??(0,U.loadConfig)(w.NODE_REGION_CONFIG_OPTIONS,{...w.NODE_REGION_CONFIG_FILE_OPTIONS,...l}),requestHandler:Mr.NodeHttpHandler.create(r?.requestHandler??d),retryMode:r?.retryMode??(0,U.loadConfig)({..._r.NODE_RETRY_MODE_CONFIG_OPTIONS,default:async()=>(await d()).retryMode||Ze.DEFAULT_RETRY_MODE},r),sha256:r?.sha256??Xe.Hash.bind(null,"sha256"),streamCollector:r?.streamCollector??Mr.streamCollector,useDualstackEndpoint:r?.useDualstackEndpoint??(0,U.loadConfig)(w.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS,l),useFipsEndpoint:r?.useFipsEndpoint??(0,U.loadConfig)(w.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS,l),userAgentAppId:r?.userAgentAppId??(0,U.loadConfig)(tr.NODE_APP_ID_CONFIG_OPTIONS,l)}};Dr.getRuntimeConfig=ge});var vs=D((z)=>{var Vr=he(),pe=Te(),ce=oe(),kr=ie(),Ce=Rr(),Q=Nr(),a=Ee(),xe=me(),Yr=$e(),vr=Ur(),R=B(),Br=H(),ne=Lr(),wr=Se(),Wr=fe(),ru=(r)=>{return Object.assign(r,{useDualstackEndpoint:r.useDualstackEndpoint??!1,useFipsEndpoint:r.useFipsEndpoint??!1,defaultSigningName:"sso-oauth"})},eu={UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}},uu=(r)=>{let{httpAuthSchemes:e,httpAuthSchemeProvider:d,credentials:b}=r;return{setHttpAuthScheme(l){let v=e.findIndex((W)=>W.schemeId===l.schemeId);if(v===-1)e.push(l);else e.splice(v,1,l)},httpAuthSchemes(){return e},setHttpAuthSchemeProvider(l){d=l},httpAuthSchemeProvider(){return d},setCredentials(l){b=l},credentials(){return b}}},su=(r)=>{return{httpAuthSchemes:r.httpAuthSchemes(),httpAuthSchemeProvider:r.httpAuthSchemeProvider(),credentials:r.credentials()}},du=(r,e)=>{let d=Object.assign(wr.getAwsRegionExtensionConfiguration(r),R.getDefaultExtensionConfiguration(r),Wr.getHttpHandlerExtensionConfiguration(r),uu(r));return e.forEach((b)=>b.configure(d)),Object.assign(r,wr.resolveAwsRegionExtensionConfiguration(d),R.resolveDefaultRuntimeConfig(d),Wr.resolveHttpHandlerRuntimeConfig(d),su(d))};class Z extends R.Client{config;constructor(...[r]){let e=ne.getRuntimeConfig(r||{});super(e);this.initConfig=e;let d=ru(e),b=kr.resolveUserAgentConfig(d),l=vr.resolveRetryConfig(b),v=Ce.resolveRegionConfig(l),W=Vr.resolveHostHeaderConfig(v),or=Yr.resolveEndpointConfig(W),Er=Br.resolveHttpAuthSchemeConfig(or),ir=du(Er,r?.extensions||[]);this.config=ir,this.middlewareStack.use(a.getSchemaSerdePlugin(this.config)),this.middlewareStack.use(kr.getUserAgentPlugin(this.config)),this.middlewareStack.use(vr.getRetryPlugin(this.config)),this.middlewareStack.use(xe.getContentLengthPlugin(this.config)),this.middlewareStack.use(Vr.getHostHeaderPlugin(this.config)),this.middlewareStack.use(pe.getLoggerPlugin(this.config)),this.middlewareStack.use(ce.getRecursionDetectionPlugin(this.config)),this.middlewareStack.use(Q.getHttpAuthSchemeEndpointRuleSetPlugin(this.config,{httpAuthSchemeParametersProvider:Br.defaultSSOOIDCHttpAuthSchemeParametersProvider,identityProviderConfigProvider:async(mr)=>new Q.DefaultIdentityProviderConfig({"aws.auth#sigv4":mr.credentials})})),this.middlewareStack.use(Q.getHttpSigningPlugin(this.config))}destroy(){super.destroy()}}var P=class r extends R.ServiceException{constructor(e){super(e);Object.setPrototypeOf(this,r.prototype)}},Gr=class r extends P{name="AccessDeniedException";$fault="client";error;reason;error_description;constructor(e){super({name:"AccessDeniedException",$fault:"client",...e});Object.setPrototypeOf(this,r.prototype),this.error=e.error,this.reason=e.reason,this.error_description=e.error_description}},Hr=class r extends P{name="AuthorizationPendingException";$fault="client";error;error_description;constructor(e){super({name:"AuthorizationPendingException",$fault:"client",...e});Object.setPrototypeOf(this,r.prototype),this.error=e.error,this.error_description=e.error_description}},Jr=class r extends P{name="ExpiredTokenException";$fault="client";error;error_description;constructor(e){super({name:"ExpiredTokenException",$fault:"client",...e});Object.setPrototypeOf(this,r.prototype),this.error=e.error,this.error_description=e.error_description}},Kr=class r extends P{name="InternalServerException";$fault="server";error;error_description;constructor(e){super({name:"InternalServerException",$fault:"server",...e});Object.setPrototypeOf(this,r.prototype),this.error=e.error,this.error_description=e.error_description}},Xr=class r extends P{name="InvalidClientException";$fault="client";error;error_description;constructor(e){super({name:"InvalidClientException",$fault:"client",...e});Object.setPrototypeOf(this,r.prototype),this.error=e.error,this.error_description=e.error_description}},Qr=class r extends P{name="InvalidGrantException";$fault="client";error;error_description;constructor(e){super({name:"InvalidGrantException",$fault:"client",...e});Object.setPrototypeOf(this,r.prototype),this.error=e.error,this.error_description=e.error_description}},Zr=class r extends P{name="InvalidRequestException";$fault="client";error;reason;error_description;constructor(e){super({name:"InvalidRequestException",$fault:"client",...e});Object.setPrototypeOf(this,r.prototype),this.error=e.error,this.reason=e.reason,this.error_description=e.error_description}},Ar=class r extends P{name="InvalidScopeException";$fault="client";error;error_description;constructor(e){super({name:"InvalidScopeException",$fault:"client",...e});Object.setPrototypeOf(this,r.prototype),this.error=e.error,this.error_description=e.error_description}},Or=class r extends P{name="SlowDownException";$fault="client";error;error_description;constructor(e){super({name:"SlowDownException",$fault:"client",...e});Object.setPrototypeOf(this,r.prototype),this.error=e.error,this.error_description=e.error_description}},zr=class r extends P{name="UnauthorizedClientException";$fault="client";error;error_description;constructor(e){super({name:"UnauthorizedClientException",$fault:"client",...e});Object.setPrototypeOf(this,r.prototype),this.error=e.error,this.error_description=e.error_description}},Ir=class r extends P{name="UnsupportedGrantTypeException";$fault="client";error;error_description;constructor(e){super({name:"UnsupportedGrantTypeException",$fault:"client",...e});Object.setPrototypeOf(this,r.prototype),this.error=e.error,this.error_description=e.error_description}},lu="AccessDeniedException",au="AuthorizationPendingException",Pu="AccessToken",Nu="ClientSecret",yu="CreateToken",qu="CreateTokenRequest",bu="CreateTokenResponse",Fu="CodeVerifier",tu="ExpiredTokenException",_u="InvalidClientException",Mu="InvalidGrantException",Ru="InvalidRequestException",Uu="InternalServerException",Du="InvalidScopeException",ju="IdToken",Lu="RefreshToken",Vu="SlowDownException",ku="UnauthorizedClientException",vu="UnsupportedGrantTypeException",Bu="accessToken",_="client",wu="clientId",Wu="clientSecret",Yu="codeVerifier",Gu="code",Hu="deviceCode",s="error",Ju="expiresIn",F="error_description",Ku="grantType",Xu="http",t="httpError",Qu="idToken",gr="reason",fr="refreshToken",Zu="redirectUri",Au="scope",Ou="server",hr="smithy.ts.sdk.synthetic.com.amazonaws.ssooidc",zu="tokenType",u="com.amazonaws.ssooidc",Iu=[0,u,Pu,8,0],gu=[0,u,Nu,8,0],fu=[0,u,Fu,8,0],hu=[0,u,ju,8,0],Tr=[0,u,Lu,8,0],Tu=[-3,u,lu,{[s]:_,[t]:400},[s,gr,F],[0,0,0]];a.TypeRegistry.for(u).registerError(Tu,Gr);var ou=[-3,u,au,{[s]:_,[t]:400},[s,F],[0,0]];a.TypeRegistry.for(u).registerError(ou,Hr);var Eu=[3,u,qu,0,[wu,Wu,Ku,Hu,Gu,fr,Au,Zu,Yu],[0,[()=>gu,0],0,0,0,[()=>Tr,0],64,0,[()=>fu,0]]],iu=[3,u,bu,0,[Bu,zu,Ju,fr,Qu],[[()=>Iu,0],0,1,[()=>Tr,0],[()=>hu,0]]],mu=[-3,u,tu,{[s]:_,[t]:400},[s,F],[0,0]];a.TypeRegistry.for(u).registerError(mu,Jr);var $u=[-3,u,Uu,{[s]:Ou,[t]:500},[s,F],[0,0]];a.TypeRegistry.for(u).registerError($u,Kr);var Su=[-3,u,_u,{[s]:_,[t]:401},[s,F],[0,0]];a.TypeRegistry.for(u).registerError(Su,Xr);var pu=[-3,u,Mu,{[s]:_,[t]:400},[s,F],[0,0]];a.TypeRegistry.for(u).registerError(pu,Qr);var cu=[-3,u,Ru,{[s]:_,[t]:400},[s,gr,F],[0,0,0]];a.TypeRegistry.for(u).registerError(cu,Zr);var Cu=[-3,u,Du,{[s]:_,[t]:400},[s,F],[0,0]];a.TypeRegistry.for(u).registerError(Cu,Ar);var xu=[-3,u,Vu,{[s]:_,[t]:400},[s,F],[0,0]];a.TypeRegistry.for(u).registerError(xu,Or);var nu=[-3,u,ku,{[s]:_,[t]:400},[s,F],[0,0]];a.TypeRegistry.for(u).registerError(nu,zr);var rs=[-3,u,vu,{[s]:_,[t]:400},[s,F],[0,0]];a.TypeRegistry.for(u).registerError(rs,Ir);var es=[-3,hr,"SSOOIDCServiceException",0,[],[]];a.TypeRegistry.for(hr).registerError(es,P);var us=[9,u,yu,{[Xu]:["POST","/token",200]},()=>Eu,()=>iu];class A extends R.Command.classBuilder().ep(eu).m(function(r,e,d,b){return[Yr.getEndpointPlugin(d,r.getEndpointParameterInstructions())]}).s("AWSSSOOIDCService","CreateToken",{}).n("SSOOIDCClient","CreateTokenCommand").sc(us).build(){}var ss={CreateTokenCommand:A};class O extends Z{}R.createAggregatedClient(ss,O);var ds={KMS_ACCESS_DENIED:"KMS_AccessDeniedException"},ls={KMS_DISABLED_KEY:"KMS_DisabledException",KMS_INVALID_KEY_USAGE:"KMS_InvalidKeyUsageException",KMS_INVALID_STATE:"KMS_InvalidStateException",KMS_KEY_NOT_FOUND:"KMS_NotFoundException"};Object.defineProperty(z,"$Command",{enumerable:!0,get:function(){return R.Command}});Object.defineProperty(z,"__Client",{enumerable:!0,get:function(){return R.Client}});z.AccessDeniedException=Gr;z.AccessDeniedExceptionReason=ds;z.AuthorizationPendingException=Hr;z.CreateTokenCommand=A;z.ExpiredTokenException=Jr;z.InternalServerException=Kr;z.InvalidClientException=Xr;z.InvalidGrantException=Qr;z.InvalidRequestException=Zr;z.InvalidRequestExceptionReason=ls;z.InvalidScopeException=Ar;z.SSOOIDC=O;z.SSOOIDCClient=Z;z.SSOOIDCServiceException=P;z.SlowDownException=Or;z.UnauthorizedClientException=zr;z.UnsupportedGrantTypeException=Ir});export default vs();
2
-
3
- //# debugId=A931A200CE1D8F5364756E2164756E21
4
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtY2pzL3N1Ym1vZHVsZXMvc3NvLW9pZGMvYXV0aC9odHRwQXV0aFNjaGVtZVByb3ZpZGVyLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWNqcy9zdWJtb2R1bGVzL3Nzby1vaWRjL2VuZHBvaW50L3J1bGVzZXQuanMiLCAiLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtY2pzL3N1Ym1vZHVsZXMvc3NvLW9pZGMvZW5kcG9pbnQvZW5kcG9pbnRSZXNvbHZlci5qcyIsICIuLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1janMvc3VibW9kdWxlcy9zc28tb2lkYy9ydW50aW1lQ29uZmlnLnNoYXJlZC5qcyIsICIuLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1janMvc3VibW9kdWxlcy9zc28tb2lkYy9ydW50aW1lQ29uZmlnLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9AYXdzLXNkay9uZXN0ZWQtY2xpZW50cy9kaXN0LWNqcy9zdWJtb2R1bGVzL3Nzby1vaWRjL2luZGV4LmpzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWwogICAgIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5yZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWcgPSBleHBvcnRzLmRlZmF1bHRTU09PSURDSHR0cEF1dGhTY2hlbWVQcm92aWRlciA9IGV4cG9ydHMuZGVmYXVsdFNTT09JRENIdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlciA9IHZvaWQgMDtcbmNvbnN0IGNvcmVfMSA9IHJlcXVpcmUoXCJAYXdzLXNkay9jb3JlXCIpO1xuY29uc3QgdXRpbF9taWRkbGV3YXJlXzEgPSByZXF1aXJlKFwiQHNtaXRoeS91dGlsLW1pZGRsZXdhcmVcIik7XG5jb25zdCBkZWZhdWx0U1NPT0lEQ0h0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyID0gYXN5bmMgKGNvbmZpZywgY29udGV4dCwgaW5wdXQpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgICBvcGVyYXRpb246ICgwLCB1dGlsX21pZGRsZXdhcmVfMS5nZXRTbWl0aHlDb250ZXh0KShjb250ZXh0KS5vcGVyYXRpb24sXG4gICAgICAgIHJlZ2lvbjogKGF3YWl0ICgwLCB1dGlsX21pZGRsZXdhcmVfMS5ub3JtYWxpemVQcm92aWRlcikoY29uZmlnLnJlZ2lvbikoKSkgfHxcbiAgICAgICAgICAgICgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiZXhwZWN0ZWQgYHJlZ2lvbmAgdG8gYmUgY29uZmlndXJlZCBmb3IgYGF3cy5hdXRoI3NpZ3Y0YFwiKTtcbiAgICAgICAgICAgIH0pKCksXG4gICAgfTtcbn07XG5leHBvcnRzLmRlZmF1bHRTU09PSURDSHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIgPSBkZWZhdWx0U1NPT0lEQ0h0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyO1xuZnVuY3Rpb24gY3JlYXRlQXdzQXV0aFNpZ3Y0SHR0cEF1dGhPcHRpb24oYXV0aFBhcmFtZXRlcnMpIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBzY2hlbWVJZDogXCJhd3MuYXV0aCNzaWd2NFwiLFxuICAgICAgICBzaWduaW5nUHJvcGVydGllczoge1xuICAgICAgICAgICAgbmFtZTogXCJzc28tb2F1dGhcIixcbiAgICAgICAgICAgIHJlZ2lvbjogYXV0aFBhcmFtZXRlcnMucmVnaW9uLFxuICAgICAgICB9LFxuICAgICAgICBwcm9wZXJ0aWVzRXh0cmFjdG9yOiAoY29uZmlnLCBjb250ZXh0KSA9PiAoe1xuICAgICAgICAgICAgc2lnbmluZ1Byb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgICBjb25maWcsXG4gICAgICAgICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pLFxuICAgIH07XG59XG5mdW5jdGlvbiBjcmVhdGVTbWl0aHlBcGlOb0F1dGhIdHRwQXV0aE9wdGlvbihhdXRoUGFyYW1ldGVycykge1xuICAgIHJldHVybiB7XG4gICAgICAgIHNjaGVtZUlkOiBcInNtaXRoeS5hcGkjbm9BdXRoXCIsXG4gICAgfTtcbn1cbmNvbnN0IGRlZmF1bHRTU09PSURDSHR0cEF1dGhTY2hlbWVQcm92aWRlciA9IChhdXRoUGFyYW1ldGVycykgPT4ge1xuICAgIGNvbnN0IG9wdGlvbnMgPSBbXTtcbiAgICBzd2l0Y2ggKGF1dGhQYXJhbWV0ZXJzLm9wZXJhdGlvbikge1xuICAgICAgICBjYXNlIFwiQ3JlYXRlVG9rZW5cIjoge1xuICAgICAgICAgICAgb3B0aW9ucy5wdXNoKGNyZWF0ZVNtaXRoeUFwaU5vQXV0aEh0dHBBdXRoT3B0aW9uKGF1dGhQYXJhbWV0ZXJzKSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICBvcHRpb25zLnB1c2goY3JlYXRlQXdzQXV0aFNpZ3Y0SHR0cEF1dGhPcHRpb24oYXV0aFBhcmFtZXRlcnMpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gb3B0aW9ucztcbn07XG5leHBvcnRzLmRlZmF1bHRTU09PSURDSHR0cEF1dGhTY2hlbWVQcm92aWRlciA9IGRlZmF1bHRTU09PSURDSHR0cEF1dGhTY2hlbWVQcm92aWRlcjtcbmNvbnN0IHJlc29sdmVIdHRwQXV0aFNjaGVtZUNvbmZpZyA9IChjb25maWcpID0+IHtcbiAgICBjb25zdCBjb25maWdfMCA9ICgwLCBjb3JlXzEucmVzb2x2ZUF3c1Nka1NpZ1Y0Q29uZmlnKShjb25maWcpO1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKGNvbmZpZ18wLCB7XG4gICAgICAgIGF1dGhTY2hlbWVQcmVmZXJlbmNlOiAoMCwgdXRpbF9taWRkbGV3YXJlXzEubm9ybWFsaXplUHJvdmlkZXIpKGNvbmZpZy5hdXRoU2NoZW1lUHJlZmVyZW5jZSA/PyBbXSksXG4gICAgfSk7XG59O1xuZXhwb3J0cy5yZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWcgPSByZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWc7XG4iLAogICAgIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5ydWxlU2V0ID0gdm9pZCAwO1xuY29uc3QgdSA9IFwicmVxdWlyZWRcIiwgdiA9IFwiZm5cIiwgdyA9IFwiYXJndlwiLCB4ID0gXCJyZWZcIjtcbmNvbnN0IGEgPSB0cnVlLCBiID0gXCJpc1NldFwiLCBjID0gXCJib29sZWFuRXF1YWxzXCIsIGQgPSBcImVycm9yXCIsIGUgPSBcImVuZHBvaW50XCIsIGYgPSBcInRyZWVcIiwgZyA9IFwiUGFydGl0aW9uUmVzdWx0XCIsIGggPSBcImdldEF0dHJcIiwgaSA9IHsgW3VdOiBmYWxzZSwgXCJ0eXBlXCI6IFwic3RyaW5nXCIgfSwgaiA9IHsgW3VdOiB0cnVlLCBcImRlZmF1bHRcIjogZmFsc2UsIFwidHlwZVwiOiBcImJvb2xlYW5cIiB9LCBrID0geyBbeF06IFwiRW5kcG9pbnRcIiB9LCBsID0geyBbdl06IGMsIFt3XTogW3sgW3hdOiBcIlVzZUZJUFNcIiB9LCB0cnVlXSB9LCBtID0geyBbdl06IGMsIFt3XTogW3sgW3hdOiBcIlVzZUR1YWxTdGFja1wiIH0sIHRydWVdIH0sIG4gPSB7fSwgbyA9IHsgW3ZdOiBoLCBbd106IFt7IFt4XTogZyB9LCBcInN1cHBvcnRzRklQU1wiXSB9LCBwID0geyBbeF06IGcgfSwgcSA9IHsgW3ZdOiBjLCBbd106IFt0cnVlLCB7IFt2XTogaCwgW3ddOiBbcCwgXCJzdXBwb3J0c0R1YWxTdGFja1wiXSB9XSB9LCByID0gW2xdLCBzID0gW21dLCB0ID0gW3sgW3hdOiBcIlJlZ2lvblwiIH1dO1xuY29uc3QgX2RhdGEgPSB7IHZlcnNpb246IFwiMS4wXCIsIHBhcmFtZXRlcnM6IHsgUmVnaW9uOiBpLCBVc2VEdWFsU3RhY2s6IGosIFVzZUZJUFM6IGosIEVuZHBvaW50OiBpIH0sIHJ1bGVzOiBbeyBjb25kaXRpb25zOiBbeyBbdl06IGIsIFt3XTogW2tdIH1dLCBydWxlczogW3sgY29uZGl0aW9uczogciwgZXJyb3I6IFwiSW52YWxpZCBDb25maWd1cmF0aW9uOiBGSVBTIGFuZCBjdXN0b20gZW5kcG9pbnQgYXJlIG5vdCBzdXBwb3J0ZWRcIiwgdHlwZTogZCB9LCB7IGNvbmRpdGlvbnM6IHMsIGVycm9yOiBcIkludmFsaWQgQ29uZmlndXJhdGlvbjogRHVhbHN0YWNrIGFuZCBjdXN0b20gZW5kcG9pbnQgYXJlIG5vdCBzdXBwb3J0ZWRcIiwgdHlwZTogZCB9LCB7IGVuZHBvaW50OiB7IHVybDogaywgcHJvcGVydGllczogbiwgaGVhZGVyczogbiB9LCB0eXBlOiBlIH1dLCB0eXBlOiBmIH0sIHsgY29uZGl0aW9uczogW3sgW3ZdOiBiLCBbd106IHQgfV0sIHJ1bGVzOiBbeyBjb25kaXRpb25zOiBbeyBbdl06IFwiYXdzLnBhcnRpdGlvblwiLCBbd106IHQsIGFzc2lnbjogZyB9XSwgcnVsZXM6IFt7IGNvbmRpdGlvbnM6IFtsLCBtXSwgcnVsZXM6IFt7IGNvbmRpdGlvbnM6IFt7IFt2XTogYywgW3ddOiBbYSwgb10gfSwgcV0sIHJ1bGVzOiBbeyBlbmRwb2ludDogeyB1cmw6IFwiaHR0cHM6Ly9vaWRjLWZpcHMue1JlZ2lvbn0ue1BhcnRpdGlvblJlc3VsdCNkdWFsU3RhY2tEbnNTdWZmaXh9XCIsIHByb3BlcnRpZXM6IG4sIGhlYWRlcnM6IG4gfSwgdHlwZTogZSB9XSwgdHlwZTogZiB9LCB7IGVycm9yOiBcIkZJUFMgYW5kIER1YWxTdGFjayBhcmUgZW5hYmxlZCwgYnV0IHRoaXMgcGFydGl0aW9uIGRvZXMgbm90IHN1cHBvcnQgb25lIG9yIGJvdGhcIiwgdHlwZTogZCB9XSwgdHlwZTogZiB9LCB7IGNvbmRpdGlvbnM6IHIsIHJ1bGVzOiBbeyBjb25kaXRpb25zOiBbeyBbdl06IGMsIFt3XTogW28sIGFdIH1dLCBydWxlczogW3sgY29uZGl0aW9uczogW3sgW3ZdOiBcInN0cmluZ0VxdWFsc1wiLCBbd106IFt7IFt2XTogaCwgW3ddOiBbcCwgXCJuYW1lXCJdIH0sIFwiYXdzLXVzLWdvdlwiXSB9XSwgZW5kcG9pbnQ6IHsgdXJsOiBcImh0dHBzOi8vb2lkYy57UmVnaW9ufS5hbWF6b25hd3MuY29tXCIsIHByb3BlcnRpZXM6IG4sIGhlYWRlcnM6IG4gfSwgdHlwZTogZSB9LCB7IGVuZHBvaW50OiB7IHVybDogXCJodHRwczovL29pZGMtZmlwcy57UmVnaW9ufS57UGFydGl0aW9uUmVzdWx0I2Ruc1N1ZmZpeH1cIiwgcHJvcGVydGllczogbiwgaGVhZGVyczogbiB9LCB0eXBlOiBlIH1dLCB0eXBlOiBmIH0sIHsgZXJyb3I6IFwiRklQUyBpcyBlbmFibGVkIGJ1dCB0aGlzIHBhcnRpdGlvbiBkb2VzIG5vdCBzdXBwb3J0IEZJUFNcIiwgdHlwZTogZCB9XSwgdHlwZTogZiB9LCB7IGNvbmRpdGlvbnM6IHMsIHJ1bGVzOiBbeyBjb25kaXRpb25zOiBbcV0sIHJ1bGVzOiBbeyBlbmRwb2ludDogeyB1cmw6IFwiaHR0cHM6Ly9vaWRjLntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQjZHVhbFN0YWNrRG5zU3VmZml4fVwiLCBwcm9wZXJ0aWVzOiBuLCBoZWFkZXJzOiBuIH0sIHR5cGU6IGUgfV0sIHR5cGU6IGYgfSwgeyBlcnJvcjogXCJEdWFsU3RhY2sgaXMgZW5hYmxlZCBidXQgdGhpcyBwYXJ0aXRpb24gZG9lcyBub3Qgc3VwcG9ydCBEdWFsU3RhY2tcIiwgdHlwZTogZCB9XSwgdHlwZTogZiB9LCB7IGVuZHBvaW50OiB7IHVybDogXCJodHRwczovL29pZGMue1JlZ2lvbn0ue1BhcnRpdGlvblJlc3VsdCNkbnNTdWZmaXh9XCIsIHByb3BlcnRpZXM6IG4sIGhlYWRlcnM6IG4gfSwgdHlwZTogZSB9XSwgdHlwZTogZiB9XSwgdHlwZTogZiB9LCB7IGVycm9yOiBcIkludmFsaWQgQ29uZmlndXJhdGlvbjogTWlzc2luZyBSZWdpb25cIiwgdHlwZTogZCB9XSB9O1xuZXhwb3J0cy5ydWxlU2V0ID0gX2RhdGE7XG4iLAogICAgIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5kZWZhdWx0RW5kcG9pbnRSZXNvbHZlciA9IHZvaWQgMDtcbmNvbnN0IHV0aWxfZW5kcG9pbnRzXzEgPSByZXF1aXJlKFwiQGF3cy1zZGsvdXRpbC1lbmRwb2ludHNcIik7XG5jb25zdCB1dGlsX2VuZHBvaW50c18yID0gcmVxdWlyZShcIkBzbWl0aHkvdXRpbC1lbmRwb2ludHNcIik7XG5jb25zdCBydWxlc2V0XzEgPSByZXF1aXJlKFwiLi9ydWxlc2V0XCIpO1xuY29uc3QgY2FjaGUgPSBuZXcgdXRpbF9lbmRwb2ludHNfMi5FbmRwb2ludENhY2hlKHtcbiAgICBzaXplOiA1MCxcbiAgICBwYXJhbXM6IFtcIkVuZHBvaW50XCIsIFwiUmVnaW9uXCIsIFwiVXNlRHVhbFN0YWNrXCIsIFwiVXNlRklQU1wiXSxcbn0pO1xuY29uc3QgZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXIgPSAoZW5kcG9pbnRQYXJhbXMsIGNvbnRleHQgPSB7fSkgPT4ge1xuICAgIHJldHVybiBjYWNoZS5nZXQoZW5kcG9pbnRQYXJhbXMsICgpID0+ICgwLCB1dGlsX2VuZHBvaW50c18yLnJlc29sdmVFbmRwb2ludCkocnVsZXNldF8xLnJ1bGVTZXQsIHtcbiAgICAgICAgZW5kcG9pbnRQYXJhbXM6IGVuZHBvaW50UGFyYW1zLFxuICAgICAgICBsb2dnZXI6IGNvbnRleHQubG9nZ2VyLFxuICAgIH0pKTtcbn07XG5leHBvcnRzLmRlZmF1bHRFbmRwb2ludFJlc29sdmVyID0gZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXI7XG51dGlsX2VuZHBvaW50c18yLmN1c3RvbUVuZHBvaW50RnVuY3Rpb25zLmF3cyA9IHV0aWxfZW5kcG9pbnRzXzEuYXdzRW5kcG9pbnRGdW5jdGlvbnM7XG4iLAogICAgIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5nZXRSdW50aW1lQ29uZmlnID0gdm9pZCAwO1xuY29uc3QgY29yZV8xID0gcmVxdWlyZShcIkBhd3Mtc2RrL2NvcmVcIik7XG5jb25zdCBwcm90b2NvbHNfMSA9IHJlcXVpcmUoXCJAYXdzLXNkay9jb3JlL3Byb3RvY29sc1wiKTtcbmNvbnN0IGNvcmVfMiA9IHJlcXVpcmUoXCJAc21pdGh5L2NvcmVcIik7XG5jb25zdCBzbWl0aHlfY2xpZW50XzEgPSByZXF1aXJlKFwiQHNtaXRoeS9zbWl0aHktY2xpZW50XCIpO1xuY29uc3QgdXJsX3BhcnNlcl8xID0gcmVxdWlyZShcIkBzbWl0aHkvdXJsLXBhcnNlclwiKTtcbmNvbnN0IHV0aWxfYmFzZTY0XzEgPSByZXF1aXJlKFwiQHNtaXRoeS91dGlsLWJhc2U2NFwiKTtcbmNvbnN0IHV0aWxfdXRmOF8xID0gcmVxdWlyZShcIkBzbWl0aHkvdXRpbC11dGY4XCIpO1xuY29uc3QgaHR0cEF1dGhTY2hlbWVQcm92aWRlcl8xID0gcmVxdWlyZShcIi4vYXV0aC9odHRwQXV0aFNjaGVtZVByb3ZpZGVyXCIpO1xuY29uc3QgZW5kcG9pbnRSZXNvbHZlcl8xID0gcmVxdWlyZShcIi4vZW5kcG9pbnQvZW5kcG9pbnRSZXNvbHZlclwiKTtcbmNvbnN0IGdldFJ1bnRpbWVDb25maWcgPSAoY29uZmlnKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgYXBpVmVyc2lvbjogXCIyMDE5LTA2LTEwXCIsXG4gICAgICAgIGJhc2U2NERlY29kZXI6IGNvbmZpZz8uYmFzZTY0RGVjb2RlciA/PyB1dGlsX2Jhc2U2NF8xLmZyb21CYXNlNjQsXG4gICAgICAgIGJhc2U2NEVuY29kZXI6IGNvbmZpZz8uYmFzZTY0RW5jb2RlciA/PyB1dGlsX2Jhc2U2NF8xLnRvQmFzZTY0LFxuICAgICAgICBkaXNhYmxlSG9zdFByZWZpeDogY29uZmlnPy5kaXNhYmxlSG9zdFByZWZpeCA/PyBmYWxzZSxcbiAgICAgICAgZW5kcG9pbnRQcm92aWRlcjogY29uZmlnPy5lbmRwb2ludFByb3ZpZGVyID8/IGVuZHBvaW50UmVzb2x2ZXJfMS5kZWZhdWx0RW5kcG9pbnRSZXNvbHZlcixcbiAgICAgICAgZXh0ZW5zaW9uczogY29uZmlnPy5leHRlbnNpb25zID8/IFtdLFxuICAgICAgICBodHRwQXV0aFNjaGVtZVByb3ZpZGVyOiBjb25maWc/Lmh0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPz8gaHR0cEF1dGhTY2hlbWVQcm92aWRlcl8xLmRlZmF1bHRTU09PSURDSHR0cEF1dGhTY2hlbWVQcm92aWRlcixcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVzOiBjb25maWc/Lmh0dHBBdXRoU2NoZW1lcyA/PyBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgc2NoZW1lSWQ6IFwiYXdzLmF1dGgjc2lndjRcIixcbiAgICAgICAgICAgICAgICBpZGVudGl0eVByb3ZpZGVyOiAoaXBjKSA9PiBpcGMuZ2V0SWRlbnRpdHlQcm92aWRlcihcImF3cy5hdXRoI3NpZ3Y0XCIpLFxuICAgICAgICAgICAgICAgIHNpZ25lcjogbmV3IGNvcmVfMS5Bd3NTZGtTaWdWNFNpZ25lcigpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBzY2hlbWVJZDogXCJzbWl0aHkuYXBpI25vQXV0aFwiLFxuICAgICAgICAgICAgICAgIGlkZW50aXR5UHJvdmlkZXI6IChpcGMpID0+IGlwYy5nZXRJZGVudGl0eVByb3ZpZGVyKFwic21pdGh5LmFwaSNub0F1dGhcIikgfHwgKGFzeW5jICgpID0+ICh7fSkpLFxuICAgICAgICAgICAgICAgIHNpZ25lcjogbmV3IGNvcmVfMi5Ob0F1dGhTaWduZXIoKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIGxvZ2dlcjogY29uZmlnPy5sb2dnZXIgPz8gbmV3IHNtaXRoeV9jbGllbnRfMS5Ob09wTG9nZ2VyKCksXG4gICAgICAgIHByb3RvY29sOiBjb25maWc/LnByb3RvY29sID8/IG5ldyBwcm90b2NvbHNfMS5Bd3NSZXN0SnNvblByb3RvY29sKHsgZGVmYXVsdE5hbWVzcGFjZTogXCJjb20uYW1hem9uYXdzLnNzb29pZGNcIiB9KSxcbiAgICAgICAgc2VydmljZUlkOiBjb25maWc/LnNlcnZpY2VJZCA/PyBcIlNTTyBPSURDXCIsXG4gICAgICAgIHVybFBhcnNlcjogY29uZmlnPy51cmxQYXJzZXIgPz8gdXJsX3BhcnNlcl8xLnBhcnNlVXJsLFxuICAgICAgICB1dGY4RGVjb2RlcjogY29uZmlnPy51dGY4RGVjb2RlciA/PyB1dGlsX3V0ZjhfMS5mcm9tVXRmOCxcbiAgICAgICAgdXRmOEVuY29kZXI6IGNvbmZpZz8udXRmOEVuY29kZXIgPz8gdXRpbF91dGY4XzEudG9VdGY4LFxuICAgIH07XG59O1xuZXhwb3J0cy5nZXRSdW50aW1lQ29uZmlnID0gZ2V0UnVudGltZUNvbmZpZztcbiIsCiAgICAiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmdldFJ1bnRpbWVDb25maWcgPSB2b2lkIDA7XG5jb25zdCB0c2xpYl8xID0gcmVxdWlyZShcInRzbGliXCIpO1xuY29uc3QgcGFja2FnZV9qc29uXzEgPSB0c2xpYl8xLl9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi4vLi4vLi4vcGFja2FnZS5qc29uXCIpKTtcbmNvbnN0IGNvcmVfMSA9IHJlcXVpcmUoXCJAYXdzLXNkay9jb3JlXCIpO1xuY29uc3QgdXRpbF91c2VyX2FnZW50X25vZGVfMSA9IHJlcXVpcmUoXCJAYXdzLXNkay91dGlsLXVzZXItYWdlbnQtbm9kZVwiKTtcbmNvbnN0IGNvbmZpZ19yZXNvbHZlcl8xID0gcmVxdWlyZShcIkBzbWl0aHkvY29uZmlnLXJlc29sdmVyXCIpO1xuY29uc3QgaGFzaF9ub2RlXzEgPSByZXF1aXJlKFwiQHNtaXRoeS9oYXNoLW5vZGVcIik7XG5jb25zdCBtaWRkbGV3YXJlX3JldHJ5XzEgPSByZXF1aXJlKFwiQHNtaXRoeS9taWRkbGV3YXJlLXJldHJ5XCIpO1xuY29uc3Qgbm9kZV9jb25maWdfcHJvdmlkZXJfMSA9IHJlcXVpcmUoXCJAc21pdGh5L25vZGUtY29uZmlnLXByb3ZpZGVyXCIpO1xuY29uc3Qgbm9kZV9odHRwX2hhbmRsZXJfMSA9IHJlcXVpcmUoXCJAc21pdGh5L25vZGUtaHR0cC1oYW5kbGVyXCIpO1xuY29uc3QgdXRpbF9ib2R5X2xlbmd0aF9ub2RlXzEgPSByZXF1aXJlKFwiQHNtaXRoeS91dGlsLWJvZHktbGVuZ3RoLW5vZGVcIik7XG5jb25zdCB1dGlsX3JldHJ5XzEgPSByZXF1aXJlKFwiQHNtaXRoeS91dGlsLXJldHJ5XCIpO1xuY29uc3QgcnVudGltZUNvbmZpZ19zaGFyZWRfMSA9IHJlcXVpcmUoXCIuL3J1bnRpbWVDb25maWcuc2hhcmVkXCIpO1xuY29uc3Qgc21pdGh5X2NsaWVudF8xID0gcmVxdWlyZShcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiKTtcbmNvbnN0IHV0aWxfZGVmYXVsdHNfbW9kZV9ub2RlXzEgPSByZXF1aXJlKFwiQHNtaXRoeS91dGlsLWRlZmF1bHRzLW1vZGUtbm9kZVwiKTtcbmNvbnN0IHNtaXRoeV9jbGllbnRfMiA9IHJlcXVpcmUoXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIik7XG5jb25zdCBnZXRSdW50aW1lQ29uZmlnID0gKGNvbmZpZykgPT4ge1xuICAgICgwLCBzbWl0aHlfY2xpZW50XzIuZW1pdFdhcm5pbmdJZlVuc3VwcG9ydGVkVmVyc2lvbikocHJvY2Vzcy52ZXJzaW9uKTtcbiAgICBjb25zdCBkZWZhdWx0c01vZGUgPSAoMCwgdXRpbF9kZWZhdWx0c19tb2RlX25vZGVfMS5yZXNvbHZlRGVmYXVsdHNNb2RlQ29uZmlnKShjb25maWcpO1xuICAgIGNvbnN0IGRlZmF1bHRDb25maWdQcm92aWRlciA9ICgpID0+IGRlZmF1bHRzTW9kZSgpLnRoZW4oc21pdGh5X2NsaWVudF8xLmxvYWRDb25maWdzRm9yRGVmYXVsdE1vZGUpO1xuICAgIGNvbnN0IGNsaWVudFNoYXJlZFZhbHVlcyA9ICgwLCBydW50aW1lQ29uZmlnX3NoYXJlZF8xLmdldFJ1bnRpbWVDb25maWcpKGNvbmZpZyk7XG4gICAgKDAsIGNvcmVfMS5lbWl0V2FybmluZ0lmVW5zdXBwb3J0ZWRWZXJzaW9uKShwcm9jZXNzLnZlcnNpb24pO1xuICAgIGNvbnN0IGxvYWRlckNvbmZpZyA9IHtcbiAgICAgICAgcHJvZmlsZTogY29uZmlnPy5wcm9maWxlLFxuICAgICAgICBsb2dnZXI6IGNsaWVudFNoYXJlZFZhbHVlcy5sb2dnZXIsXG4gICAgfTtcbiAgICByZXR1cm4ge1xuICAgICAgICAuLi5jbGllbnRTaGFyZWRWYWx1ZXMsXG4gICAgICAgIC4uLmNvbmZpZyxcbiAgICAgICAgcnVudGltZTogXCJub2RlXCIsXG4gICAgICAgIGRlZmF1bHRzTW9kZSxcbiAgICAgICAgYXV0aFNjaGVtZVByZWZlcmVuY2U6IGNvbmZpZz8uYXV0aFNjaGVtZVByZWZlcmVuY2UgPz8gKDAsIG5vZGVfY29uZmlnX3Byb3ZpZGVyXzEubG9hZENvbmZpZykoY29yZV8xLk5PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9PUFRJT05TLCBsb2FkZXJDb25maWcpLFxuICAgICAgICBib2R5TGVuZ3RoQ2hlY2tlcjogY29uZmlnPy5ib2R5TGVuZ3RoQ2hlY2tlciA/PyB1dGlsX2JvZHlfbGVuZ3RoX25vZGVfMS5jYWxjdWxhdGVCb2R5TGVuZ3RoLFxuICAgICAgICBkZWZhdWx0VXNlckFnZW50UHJvdmlkZXI6IGNvbmZpZz8uZGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyID8/XG4gICAgICAgICAgICAoMCwgdXRpbF91c2VyX2FnZW50X25vZGVfMS5jcmVhdGVEZWZhdWx0VXNlckFnZW50UHJvdmlkZXIpKHsgc2VydmljZUlkOiBjbGllbnRTaGFyZWRWYWx1ZXMuc2VydmljZUlkLCBjbGllbnRWZXJzaW9uOiBwYWNrYWdlX2pzb25fMS5kZWZhdWx0LnZlcnNpb24gfSksXG4gICAgICAgIG1heEF0dGVtcHRzOiBjb25maWc/Lm1heEF0dGVtcHRzID8/ICgwLCBub2RlX2NvbmZpZ19wcm92aWRlcl8xLmxvYWRDb25maWcpKG1pZGRsZXdhcmVfcmV0cnlfMS5OT0RFX01BWF9BVFRFTVBUX0NPTkZJR19PUFRJT05TLCBjb25maWcpLFxuICAgICAgICByZWdpb246IGNvbmZpZz8ucmVnaW9uID8/XG4gICAgICAgICAgICAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKShjb25maWdfcmVzb2x2ZXJfMS5OT0RFX1JFR0lPTl9DT05GSUdfT1BUSU9OUywgeyAuLi5jb25maWdfcmVzb2x2ZXJfMS5OT0RFX1JFR0lPTl9DT05GSUdfRklMRV9PUFRJT05TLCAuLi5sb2FkZXJDb25maWcgfSksXG4gICAgICAgIHJlcXVlc3RIYW5kbGVyOiBub2RlX2h0dHBfaGFuZGxlcl8xLk5vZGVIdHRwSGFuZGxlci5jcmVhdGUoY29uZmlnPy5yZXF1ZXN0SGFuZGxlciA/PyBkZWZhdWx0Q29uZmlnUHJvdmlkZXIpLFxuICAgICAgICByZXRyeU1vZGU6IGNvbmZpZz8ucmV0cnlNb2RlID8/XG4gICAgICAgICAgICAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKSh7XG4gICAgICAgICAgICAgICAgLi4ubWlkZGxld2FyZV9yZXRyeV8xLk5PREVfUkVUUllfTU9ERV9DT05GSUdfT1BUSU9OUyxcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiBhc3luYyAoKSA9PiAoYXdhaXQgZGVmYXVsdENvbmZpZ1Byb3ZpZGVyKCkpLnJldHJ5TW9kZSB8fCB1dGlsX3JldHJ5XzEuREVGQVVMVF9SRVRSWV9NT0RFLFxuICAgICAgICAgICAgfSwgY29uZmlnKSxcbiAgICAgICAgc2hhMjU2OiBjb25maWc/LnNoYTI1NiA/PyBoYXNoX25vZGVfMS5IYXNoLmJpbmQobnVsbCwgXCJzaGEyNTZcIiksXG4gICAgICAgIHN0cmVhbUNvbGxlY3RvcjogY29uZmlnPy5zdHJlYW1Db2xsZWN0b3IgPz8gbm9kZV9odHRwX2hhbmRsZXJfMS5zdHJlYW1Db2xsZWN0b3IsXG4gICAgICAgIHVzZUR1YWxzdGFja0VuZHBvaW50OiBjb25maWc/LnVzZUR1YWxzdGFja0VuZHBvaW50ID8/ICgwLCBub2RlX2NvbmZpZ19wcm92aWRlcl8xLmxvYWRDb25maWcpKGNvbmZpZ19yZXNvbHZlcl8xLk5PREVfVVNFX0RVQUxTVEFDS19FTkRQT0lOVF9DT05GSUdfT1BUSU9OUywgbG9hZGVyQ29uZmlnKSxcbiAgICAgICAgdXNlRmlwc0VuZHBvaW50OiBjb25maWc/LnVzZUZpcHNFbmRwb2ludCA/PyAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKShjb25maWdfcmVzb2x2ZXJfMS5OT0RFX1VTRV9GSVBTX0VORFBPSU5UX0NPTkZJR19PUFRJT05TLCBsb2FkZXJDb25maWcpLFxuICAgICAgICB1c2VyQWdlbnRBcHBJZDogY29uZmlnPy51c2VyQWdlbnRBcHBJZCA/PyAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKSh1dGlsX3VzZXJfYWdlbnRfbm9kZV8xLk5PREVfQVBQX0lEX0NPTkZJR19PUFRJT05TLCBsb2FkZXJDb25maWcpLFxuICAgIH07XG59O1xuZXhwb3J0cy5nZXRSdW50aW1lQ29uZmlnID0gZ2V0UnVudGltZUNvbmZpZztcbiIsCiAgICAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgbWlkZGxld2FyZUhvc3RIZWFkZXIgPSByZXF1aXJlKCdAYXdzLXNkay9taWRkbGV3YXJlLWhvc3QtaGVhZGVyJyk7XG52YXIgbWlkZGxld2FyZUxvZ2dlciA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL21pZGRsZXdhcmUtbG9nZ2VyJyk7XG52YXIgbWlkZGxld2FyZVJlY3Vyc2lvbkRldGVjdGlvbiA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL21pZGRsZXdhcmUtcmVjdXJzaW9uLWRldGVjdGlvbicpO1xudmFyIG1pZGRsZXdhcmVVc2VyQWdlbnQgPSByZXF1aXJlKCdAYXdzLXNkay9taWRkbGV3YXJlLXVzZXItYWdlbnQnKTtcbnZhciBjb25maWdSZXNvbHZlciA9IHJlcXVpcmUoJ0BzbWl0aHkvY29uZmlnLXJlc29sdmVyJyk7XG52YXIgY29yZSA9IHJlcXVpcmUoJ0BzbWl0aHkvY29yZScpO1xudmFyIHNjaGVtYSA9IHJlcXVpcmUoJ0BzbWl0aHkvY29yZS9zY2hlbWEnKTtcbnZhciBtaWRkbGV3YXJlQ29udGVudExlbmd0aCA9IHJlcXVpcmUoJ0BzbWl0aHkvbWlkZGxld2FyZS1jb250ZW50LWxlbmd0aCcpO1xudmFyIG1pZGRsZXdhcmVFbmRwb2ludCA9IHJlcXVpcmUoJ0BzbWl0aHkvbWlkZGxld2FyZS1lbmRwb2ludCcpO1xudmFyIG1pZGRsZXdhcmVSZXRyeSA9IHJlcXVpcmUoJ0BzbWl0aHkvbWlkZGxld2FyZS1yZXRyeScpO1xudmFyIHNtaXRoeUNsaWVudCA9IHJlcXVpcmUoJ0BzbWl0aHkvc21pdGh5LWNsaWVudCcpO1xudmFyIGh0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPSByZXF1aXJlKCcuL2F1dGgvaHR0cEF1dGhTY2hlbWVQcm92aWRlcicpO1xudmFyIHJ1bnRpbWVDb25maWcgPSByZXF1aXJlKCcuL3J1bnRpbWVDb25maWcnKTtcbnZhciByZWdpb25Db25maWdSZXNvbHZlciA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL3JlZ2lvbi1jb25maWctcmVzb2x2ZXInKTtcbnZhciBwcm90b2NvbEh0dHAgPSByZXF1aXJlKCdAc21pdGh5L3Byb3RvY29sLWh0dHAnKTtcblxuY29uc3QgcmVzb2x2ZUNsaWVudEVuZHBvaW50UGFyYW1ldGVycyA9IChvcHRpb25zKSA9PiB7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24ob3B0aW9ucywge1xuICAgICAgICB1c2VEdWFsc3RhY2tFbmRwb2ludDogb3B0aW9ucy51c2VEdWFsc3RhY2tFbmRwb2ludCA/PyBmYWxzZSxcbiAgICAgICAgdXNlRmlwc0VuZHBvaW50OiBvcHRpb25zLnVzZUZpcHNFbmRwb2ludCA/PyBmYWxzZSxcbiAgICAgICAgZGVmYXVsdFNpZ25pbmdOYW1lOiBcInNzby1vYXV0aFwiLFxuICAgIH0pO1xufTtcbmNvbnN0IGNvbW1vblBhcmFtcyA9IHtcbiAgICBVc2VGSVBTOiB7IHR5cGU6IFwiYnVpbHRJblBhcmFtc1wiLCBuYW1lOiBcInVzZUZpcHNFbmRwb2ludFwiIH0sXG4gICAgRW5kcG9pbnQ6IHsgdHlwZTogXCJidWlsdEluUGFyYW1zXCIsIG5hbWU6IFwiZW5kcG9pbnRcIiB9LFxuICAgIFJlZ2lvbjogeyB0eXBlOiBcImJ1aWx0SW5QYXJhbXNcIiwgbmFtZTogXCJyZWdpb25cIiB9LFxuICAgIFVzZUR1YWxTdGFjazogeyB0eXBlOiBcImJ1aWx0SW5QYXJhbXNcIiwgbmFtZTogXCJ1c2VEdWFsc3RhY2tFbmRwb2ludFwiIH0sXG59O1xuXG5jb25zdCBnZXRIdHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24gPSAocnVudGltZUNvbmZpZykgPT4ge1xuICAgIGNvbnN0IF9odHRwQXV0aFNjaGVtZXMgPSBydW50aW1lQ29uZmlnLmh0dHBBdXRoU2NoZW1lcztcbiAgICBsZXQgX2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPSBydW50aW1lQ29uZmlnLmh0dHBBdXRoU2NoZW1lUHJvdmlkZXI7XG4gICAgbGV0IF9jcmVkZW50aWFscyA9IHJ1bnRpbWVDb25maWcuY3JlZGVudGlhbHM7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc2V0SHR0cEF1dGhTY2hlbWUoaHR0cEF1dGhTY2hlbWUpIHtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gX2h0dHBBdXRoU2NoZW1lcy5maW5kSW5kZXgoKHNjaGVtZSkgPT4gc2NoZW1lLnNjaGVtZUlkID09PSBodHRwQXV0aFNjaGVtZS5zY2hlbWVJZCk7XG4gICAgICAgICAgICBpZiAoaW5kZXggPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgX2h0dHBBdXRoU2NoZW1lcy5wdXNoKGh0dHBBdXRoU2NoZW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIF9odHRwQXV0aFNjaGVtZXMuc3BsaWNlKGluZGV4LCAxLCBodHRwQXV0aFNjaGVtZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGh0dHBBdXRoU2NoZW1lcygpIHtcbiAgICAgICAgICAgIHJldHVybiBfaHR0cEF1dGhTY2hlbWVzO1xuICAgICAgICB9LFxuICAgICAgICBzZXRIdHRwQXV0aFNjaGVtZVByb3ZpZGVyKGh0dHBBdXRoU2NoZW1lUHJvdmlkZXIpIHtcbiAgICAgICAgICAgIF9odHRwQXV0aFNjaGVtZVByb3ZpZGVyID0gaHR0cEF1dGhTY2hlbWVQcm92aWRlcjtcbiAgICAgICAgfSxcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVQcm92aWRlcigpIHtcbiAgICAgICAgICAgIHJldHVybiBfaHR0cEF1dGhTY2hlbWVQcm92aWRlcjtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0Q3JlZGVudGlhbHMoY3JlZGVudGlhbHMpIHtcbiAgICAgICAgICAgIF9jcmVkZW50aWFscyA9IGNyZWRlbnRpYWxzO1xuICAgICAgICB9LFxuICAgICAgICBjcmVkZW50aWFscygpIHtcbiAgICAgICAgICAgIHJldHVybiBfY3JlZGVudGlhbHM7XG4gICAgICAgIH0sXG4gICAgfTtcbn07XG5jb25zdCByZXNvbHZlSHR0cEF1dGhSdW50aW1lQ29uZmlnID0gKGNvbmZpZykgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAgIGh0dHBBdXRoU2NoZW1lczogY29uZmlnLmh0dHBBdXRoU2NoZW1lcygpLFxuICAgICAgICBodHRwQXV0aFNjaGVtZVByb3ZpZGVyOiBjb25maWcuaHR0cEF1dGhTY2hlbWVQcm92aWRlcigpLFxuICAgICAgICBjcmVkZW50aWFsczogY29uZmlnLmNyZWRlbnRpYWxzKCksXG4gICAgfTtcbn07XG5cbmNvbnN0IHJlc29sdmVSdW50aW1lRXh0ZW5zaW9ucyA9IChydW50aW1lQ29uZmlnLCBleHRlbnNpb25zKSA9PiB7XG4gICAgY29uc3QgZXh0ZW5zaW9uQ29uZmlndXJhdGlvbiA9IE9iamVjdC5hc3NpZ24ocmVnaW9uQ29uZmlnUmVzb2x2ZXIuZ2V0QXdzUmVnaW9uRXh0ZW5zaW9uQ29uZmlndXJhdGlvbihydW50aW1lQ29uZmlnKSwgc21pdGh5Q2xpZW50LmdldERlZmF1bHRFeHRlbnNpb25Db25maWd1cmF0aW9uKHJ1bnRpbWVDb25maWcpLCBwcm90b2NvbEh0dHAuZ2V0SHR0cEhhbmRsZXJFeHRlbnNpb25Db25maWd1cmF0aW9uKHJ1bnRpbWVDb25maWcpLCBnZXRIdHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24ocnVudGltZUNvbmZpZykpO1xuICAgIGV4dGVuc2lvbnMuZm9yRWFjaCgoZXh0ZW5zaW9uKSA9PiBleHRlbnNpb24uY29uZmlndXJlKGV4dGVuc2lvbkNvbmZpZ3VyYXRpb24pKTtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihydW50aW1lQ29uZmlnLCByZWdpb25Db25maWdSZXNvbHZlci5yZXNvbHZlQXdzUmVnaW9uRXh0ZW5zaW9uQ29uZmlndXJhdGlvbihleHRlbnNpb25Db25maWd1cmF0aW9uKSwgc21pdGh5Q2xpZW50LnJlc29sdmVEZWZhdWx0UnVudGltZUNvbmZpZyhleHRlbnNpb25Db25maWd1cmF0aW9uKSwgcHJvdG9jb2xIdHRwLnJlc29sdmVIdHRwSGFuZGxlclJ1bnRpbWVDb25maWcoZXh0ZW5zaW9uQ29uZmlndXJhdGlvbiksIHJlc29sdmVIdHRwQXV0aFJ1bnRpbWVDb25maWcoZXh0ZW5zaW9uQ29uZmlndXJhdGlvbikpO1xufTtcblxuY2xhc3MgU1NPT0lEQ0NsaWVudCBleHRlbmRzIHNtaXRoeUNsaWVudC5DbGllbnQge1xuICAgIGNvbmZpZztcbiAgICBjb25zdHJ1Y3RvciguLi5bY29uZmlndXJhdGlvbl0pIHtcbiAgICAgICAgY29uc3QgX2NvbmZpZ18wID0gcnVudGltZUNvbmZpZy5nZXRSdW50aW1lQ29uZmlnKGNvbmZpZ3VyYXRpb24gfHwge30pO1xuICAgICAgICBzdXBlcihfY29uZmlnXzApO1xuICAgICAgICB0aGlzLmluaXRDb25maWcgPSBfY29uZmlnXzA7XG4gICAgICAgIGNvbnN0IF9jb25maWdfMSA9IHJlc29sdmVDbGllbnRFbmRwb2ludFBhcmFtZXRlcnMoX2NvbmZpZ18wKTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ18yID0gbWlkZGxld2FyZVVzZXJBZ2VudC5yZXNvbHZlVXNlckFnZW50Q29uZmlnKF9jb25maWdfMSk7XG4gICAgICAgIGNvbnN0IF9jb25maWdfMyA9IG1pZGRsZXdhcmVSZXRyeS5yZXNvbHZlUmV0cnlDb25maWcoX2NvbmZpZ18yKTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ180ID0gY29uZmlnUmVzb2x2ZXIucmVzb2x2ZVJlZ2lvbkNvbmZpZyhfY29uZmlnXzMpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzUgPSBtaWRkbGV3YXJlSG9zdEhlYWRlci5yZXNvbHZlSG9zdEhlYWRlckNvbmZpZyhfY29uZmlnXzQpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzYgPSBtaWRkbGV3YXJlRW5kcG9pbnQucmVzb2x2ZUVuZHBvaW50Q29uZmlnKF9jb25maWdfNSk7XG4gICAgICAgIGNvbnN0IF9jb25maWdfNyA9IGh0dHBBdXRoU2NoZW1lUHJvdmlkZXIucmVzb2x2ZUh0dHBBdXRoU2NoZW1lQ29uZmlnKF9jb25maWdfNik7XG4gICAgICAgIGNvbnN0IF9jb25maWdfOCA9IHJlc29sdmVSdW50aW1lRXh0ZW5zaW9ucyhfY29uZmlnXzcsIGNvbmZpZ3VyYXRpb24/LmV4dGVuc2lvbnMgfHwgW10pO1xuICAgICAgICB0aGlzLmNvbmZpZyA9IF9jb25maWdfODtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKHNjaGVtYS5nZXRTY2hlbWFTZXJkZVBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UobWlkZGxld2FyZVVzZXJBZ2VudC5nZXRVc2VyQWdlbnRQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKG1pZGRsZXdhcmVSZXRyeS5nZXRSZXRyeVBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UobWlkZGxld2FyZUNvbnRlbnRMZW5ndGguZ2V0Q29udGVudExlbmd0aFBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UobWlkZGxld2FyZUhvc3RIZWFkZXIuZ2V0SG9zdEhlYWRlclBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UobWlkZGxld2FyZUxvZ2dlci5nZXRMb2dnZXJQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKG1pZGRsZXdhcmVSZWN1cnNpb25EZXRlY3Rpb24uZ2V0UmVjdXJzaW9uRGV0ZWN0aW9uUGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShjb3JlLmdldEh0dHBBdXRoU2NoZW1lRW5kcG9pbnRSdWxlU2V0UGx1Z2luKHRoaXMuY29uZmlnLCB7XG4gICAgICAgICAgICBodHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlcjogaHR0cEF1dGhTY2hlbWVQcm92aWRlci5kZWZhdWx0U1NPT0lEQ0h0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyLFxuICAgICAgICAgICAgaWRlbnRpdHlQcm92aWRlckNvbmZpZ1Byb3ZpZGVyOiBhc3luYyAoY29uZmlnKSA9PiBuZXcgY29yZS5EZWZhdWx0SWRlbnRpdHlQcm92aWRlckNvbmZpZyh7XG4gICAgICAgICAgICAgICAgXCJhd3MuYXV0aCNzaWd2NFwiOiBjb25maWcuY3JlZGVudGlhbHMsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgfSkpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UoY29yZS5nZXRIdHRwU2lnbmluZ1BsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgIH1cbiAgICBkZXN0cm95KCkge1xuICAgICAgICBzdXBlci5kZXN0cm95KCk7XG4gICAgfVxufVxuXG5sZXQgU1NPT0lEQ1NlcnZpY2VFeGNlcHRpb24kMSA9IGNsYXNzIFNTT09JRENTZXJ2aWNlRXhjZXB0aW9uIGV4dGVuZHMgc21pdGh5Q2xpZW50LlNlcnZpY2VFeGNlcHRpb24ge1xuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnMpIHtcbiAgICAgICAgc3VwZXIob3B0aW9ucyk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBTU09PSURDU2VydmljZUV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgIH1cbn07XG5cbmxldCBBY2Nlc3NEZW5pZWRFeGNlcHRpb24kMSA9IGNsYXNzIEFjY2Vzc0RlbmllZEV4Y2VwdGlvbiBleHRlbmRzIFNTT09JRENTZXJ2aWNlRXhjZXB0aW9uJDEge1xuICAgIG5hbWUgPSBcIkFjY2Vzc0RlbmllZEV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgZXJyb3I7XG4gICAgcmVhc29uO1xuICAgIGVycm9yX2Rlc2NyaXB0aW9uO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJBY2Nlc3NEZW5pZWRFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgQWNjZXNzRGVuaWVkRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuZXJyb3IgPSBvcHRzLmVycm9yO1xuICAgICAgICB0aGlzLnJlYXNvbiA9IG9wdHMucmVhc29uO1xuICAgICAgICB0aGlzLmVycm9yX2Rlc2NyaXB0aW9uID0gb3B0cy5lcnJvcl9kZXNjcmlwdGlvbjtcbiAgICB9XG59O1xubGV0IEF1dGhvcml6YXRpb25QZW5kaW5nRXhjZXB0aW9uJDEgPSBjbGFzcyBBdXRob3JpemF0aW9uUGVuZGluZ0V4Y2VwdGlvbiBleHRlbmRzIFNTT09JRENTZXJ2aWNlRXhjZXB0aW9uJDEge1xuICAgIG5hbWUgPSBcIkF1dGhvcml6YXRpb25QZW5kaW5nRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBlcnJvcjtcbiAgICBlcnJvcl9kZXNjcmlwdGlvbjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiQXV0aG9yaXphdGlvblBlbmRpbmdFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgQXV0aG9yaXphdGlvblBlbmRpbmdFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5lcnJvciA9IG9wdHMuZXJyb3I7XG4gICAgICAgIHRoaXMuZXJyb3JfZGVzY3JpcHRpb24gPSBvcHRzLmVycm9yX2Rlc2NyaXB0aW9uO1xuICAgIH1cbn07XG5sZXQgRXhwaXJlZFRva2VuRXhjZXB0aW9uJDEgPSBjbGFzcyBFeHBpcmVkVG9rZW5FeGNlcHRpb24gZXh0ZW5kcyBTU09PSURDU2VydmljZUV4Y2VwdGlvbiQxIHtcbiAgICBuYW1lID0gXCJFeHBpcmVkVG9rZW5FeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGVycm9yO1xuICAgIGVycm9yX2Rlc2NyaXB0aW9uO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJFeHBpcmVkVG9rZW5FeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgRXhwaXJlZFRva2VuRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuZXJyb3IgPSBvcHRzLmVycm9yO1xuICAgICAgICB0aGlzLmVycm9yX2Rlc2NyaXB0aW9uID0gb3B0cy5lcnJvcl9kZXNjcmlwdGlvbjtcbiAgICB9XG59O1xubGV0IEludGVybmFsU2VydmVyRXhjZXB0aW9uJDEgPSBjbGFzcyBJbnRlcm5hbFNlcnZlckV4Y2VwdGlvbiBleHRlbmRzIFNTT09JRENTZXJ2aWNlRXhjZXB0aW9uJDEge1xuICAgIG5hbWUgPSBcIkludGVybmFsU2VydmVyRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJzZXJ2ZXJcIjtcbiAgICBlcnJvcjtcbiAgICBlcnJvcl9kZXNjcmlwdGlvbjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJzZXJ2ZXJcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5lcnJvciA9IG9wdHMuZXJyb3I7XG4gICAgICAgIHRoaXMuZXJyb3JfZGVzY3JpcHRpb24gPSBvcHRzLmVycm9yX2Rlc2NyaXB0aW9uO1xuICAgIH1cbn07XG5sZXQgSW52YWxpZENsaWVudEV4Y2VwdGlvbiQxID0gY2xhc3MgSW52YWxpZENsaWVudEV4Y2VwdGlvbiBleHRlbmRzIFNTT09JRENTZXJ2aWNlRXhjZXB0aW9uJDEge1xuICAgIG5hbWUgPSBcIkludmFsaWRDbGllbnRFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGVycm9yO1xuICAgIGVycm9yX2Rlc2NyaXB0aW9uO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJJbnZhbGlkQ2xpZW50RXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEludmFsaWRDbGllbnRFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5lcnJvciA9IG9wdHMuZXJyb3I7XG4gICAgICAgIHRoaXMuZXJyb3JfZGVzY3JpcHRpb24gPSBvcHRzLmVycm9yX2Rlc2NyaXB0aW9uO1xuICAgIH1cbn07XG5sZXQgSW52YWxpZEdyYW50RXhjZXB0aW9uJDEgPSBjbGFzcyBJbnZhbGlkR3JhbnRFeGNlcHRpb24gZXh0ZW5kcyBTU09PSURDU2VydmljZUV4Y2VwdGlvbiQxIHtcbiAgICBuYW1lID0gXCJJbnZhbGlkR3JhbnRFeGNlcHRpb25cIjtcbiAgICAkZmF1bHQgPSBcImNsaWVudFwiO1xuICAgIGVycm9yO1xuICAgIGVycm9yX2Rlc2NyaXB0aW9uO1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgbmFtZTogXCJJbnZhbGlkR3JhbnRFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgSW52YWxpZEdyYW50RXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuZXJyb3IgPSBvcHRzLmVycm9yO1xuICAgICAgICB0aGlzLmVycm9yX2Rlc2NyaXB0aW9uID0gb3B0cy5lcnJvcl9kZXNjcmlwdGlvbjtcbiAgICB9XG59O1xubGV0IEludmFsaWRSZXF1ZXN0RXhjZXB0aW9uJDEgPSBjbGFzcyBJbnZhbGlkUmVxdWVzdEV4Y2VwdGlvbiBleHRlbmRzIFNTT09JRENTZXJ2aWNlRXhjZXB0aW9uJDEge1xuICAgIG5hbWUgPSBcIkludmFsaWRSZXF1ZXN0RXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBlcnJvcjtcbiAgICByZWFzb247XG4gICAgZXJyb3JfZGVzY3JpcHRpb247XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkludmFsaWRSZXF1ZXN0RXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEludmFsaWRSZXF1ZXN0RXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuZXJyb3IgPSBvcHRzLmVycm9yO1xuICAgICAgICB0aGlzLnJlYXNvbiA9IG9wdHMucmVhc29uO1xuICAgICAgICB0aGlzLmVycm9yX2Rlc2NyaXB0aW9uID0gb3B0cy5lcnJvcl9kZXNjcmlwdGlvbjtcbiAgICB9XG59O1xubGV0IEludmFsaWRTY29wZUV4Y2VwdGlvbiQxID0gY2xhc3MgSW52YWxpZFNjb3BlRXhjZXB0aW9uIGV4dGVuZHMgU1NPT0lEQ1NlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiSW52YWxpZFNjb3BlRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBlcnJvcjtcbiAgICBlcnJvcl9kZXNjcmlwdGlvbjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiSW52YWxpZFNjb3BlRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEludmFsaWRTY29wZUV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgICAgICB0aGlzLmVycm9yID0gb3B0cy5lcnJvcjtcbiAgICAgICAgdGhpcy5lcnJvcl9kZXNjcmlwdGlvbiA9IG9wdHMuZXJyb3JfZGVzY3JpcHRpb247XG4gICAgfVxufTtcbmxldCBTbG93RG93bkV4Y2VwdGlvbiQxID0gY2xhc3MgU2xvd0Rvd25FeGNlcHRpb24gZXh0ZW5kcyBTU09PSURDU2VydmljZUV4Y2VwdGlvbiQxIHtcbiAgICBuYW1lID0gXCJTbG93RG93bkV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgZXJyb3I7XG4gICAgZXJyb3JfZGVzY3JpcHRpb247XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIlNsb3dEb3duRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFNsb3dEb3duRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuZXJyb3IgPSBvcHRzLmVycm9yO1xuICAgICAgICB0aGlzLmVycm9yX2Rlc2NyaXB0aW9uID0gb3B0cy5lcnJvcl9kZXNjcmlwdGlvbjtcbiAgICB9XG59O1xubGV0IFVuYXV0aG9yaXplZENsaWVudEV4Y2VwdGlvbiQxID0gY2xhc3MgVW5hdXRob3JpemVkQ2xpZW50RXhjZXB0aW9uIGV4dGVuZHMgU1NPT0lEQ1NlcnZpY2VFeGNlcHRpb24kMSB7XG4gICAgbmFtZSA9IFwiVW5hdXRob3JpemVkQ2xpZW50RXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBlcnJvcjtcbiAgICBlcnJvcl9kZXNjcmlwdGlvbjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiVW5hdXRob3JpemVkQ2xpZW50RXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFVuYXV0aG9yaXplZENsaWVudEV4Y2VwdGlvbi5wcm90b3R5cGUpO1xuICAgICAgICB0aGlzLmVycm9yID0gb3B0cy5lcnJvcjtcbiAgICAgICAgdGhpcy5lcnJvcl9kZXNjcmlwdGlvbiA9IG9wdHMuZXJyb3JfZGVzY3JpcHRpb247XG4gICAgfVxufTtcbmxldCBVbnN1cHBvcnRlZEdyYW50VHlwZUV4Y2VwdGlvbiQxID0gY2xhc3MgVW5zdXBwb3J0ZWRHcmFudFR5cGVFeGNlcHRpb24gZXh0ZW5kcyBTU09PSURDU2VydmljZUV4Y2VwdGlvbiQxIHtcbiAgICBuYW1lID0gXCJVbnN1cHBvcnRlZEdyYW50VHlwZUV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgZXJyb3I7XG4gICAgZXJyb3JfZGVzY3JpcHRpb247XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIlVuc3VwcG9ydGVkR3JhbnRUeXBlRXhjZXB0aW9uXCIsXG4gICAgICAgICAgICAkZmF1bHQ6IFwiY2xpZW50XCIsXG4gICAgICAgICAgICAuLi5vcHRzLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFVuc3VwcG9ydGVkR3JhbnRUeXBlRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuZXJyb3IgPSBvcHRzLmVycm9yO1xuICAgICAgICB0aGlzLmVycm9yX2Rlc2NyaXB0aW9uID0gb3B0cy5lcnJvcl9kZXNjcmlwdGlvbjtcbiAgICB9XG59O1xuXG5jb25zdCBfQURFID0gXCJBY2Nlc3NEZW5pZWRFeGNlcHRpb25cIjtcbmNvbnN0IF9BUEUgPSBcIkF1dGhvcml6YXRpb25QZW5kaW5nRXhjZXB0aW9uXCI7XG5jb25zdCBfQVQgPSBcIkFjY2Vzc1Rva2VuXCI7XG5jb25zdCBfQ1MgPSBcIkNsaWVudFNlY3JldFwiO1xuY29uc3QgX0NUID0gXCJDcmVhdGVUb2tlblwiO1xuY29uc3QgX0NUUiA9IFwiQ3JlYXRlVG9rZW5SZXF1ZXN0XCI7XG5jb25zdCBfQ1RSciA9IFwiQ3JlYXRlVG9rZW5SZXNwb25zZVwiO1xuY29uc3QgX0NWID0gXCJDb2RlVmVyaWZpZXJcIjtcbmNvbnN0IF9FVEUgPSBcIkV4cGlyZWRUb2tlbkV4Y2VwdGlvblwiO1xuY29uc3QgX0lDRSA9IFwiSW52YWxpZENsaWVudEV4Y2VwdGlvblwiO1xuY29uc3QgX0lHRSA9IFwiSW52YWxpZEdyYW50RXhjZXB0aW9uXCI7XG5jb25zdCBfSVJFID0gXCJJbnZhbGlkUmVxdWVzdEV4Y2VwdGlvblwiO1xuY29uc3QgX0lTRSA9IFwiSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb25cIjtcbmNvbnN0IF9JU0VuID0gXCJJbnZhbGlkU2NvcGVFeGNlcHRpb25cIjtcbmNvbnN0IF9JVCA9IFwiSWRUb2tlblwiO1xuY29uc3QgX1JUID0gXCJSZWZyZXNoVG9rZW5cIjtcbmNvbnN0IF9TREUgPSBcIlNsb3dEb3duRXhjZXB0aW9uXCI7XG5jb25zdCBfVUNFID0gXCJVbmF1dGhvcml6ZWRDbGllbnRFeGNlcHRpb25cIjtcbmNvbnN0IF9VR1RFID0gXCJVbnN1cHBvcnRlZEdyYW50VHlwZUV4Y2VwdGlvblwiO1xuY29uc3QgX2FUID0gXCJhY2Nlc3NUb2tlblwiO1xuY29uc3QgX2MgPSBcImNsaWVudFwiO1xuY29uc3QgX2NJID0gXCJjbGllbnRJZFwiO1xuY29uc3QgX2NTID0gXCJjbGllbnRTZWNyZXRcIjtcbmNvbnN0IF9jViA9IFwiY29kZVZlcmlmaWVyXCI7XG5jb25zdCBfY28gPSBcImNvZGVcIjtcbmNvbnN0IF9kQyA9IFwiZGV2aWNlQ29kZVwiO1xuY29uc3QgX2UgPSBcImVycm9yXCI7XG5jb25zdCBfZUkgPSBcImV4cGlyZXNJblwiO1xuY29uc3QgX2VkID0gXCJlcnJvcl9kZXNjcmlwdGlvblwiO1xuY29uc3QgX2dUID0gXCJncmFudFR5cGVcIjtcbmNvbnN0IF9oID0gXCJodHRwXCI7XG5jb25zdCBfaEUgPSBcImh0dHBFcnJvclwiO1xuY29uc3QgX2lUID0gXCJpZFRva2VuXCI7XG5jb25zdCBfciA9IFwicmVhc29uXCI7XG5jb25zdCBfclQgPSBcInJlZnJlc2hUb2tlblwiO1xuY29uc3QgX3JVID0gXCJyZWRpcmVjdFVyaVwiO1xuY29uc3QgX3MgPSBcInNjb3BlXCI7XG5jb25zdCBfc2UgPSBcInNlcnZlclwiO1xuY29uc3QgX3NtID0gXCJzbWl0aHkudHMuc2RrLnN5bnRoZXRpYy5jb20uYW1hem9uYXdzLnNzb29pZGNcIjtcbmNvbnN0IF90VCA9IFwidG9rZW5UeXBlXCI7XG5jb25zdCBuMCA9IFwiY29tLmFtYXpvbmF3cy5zc29vaWRjXCI7XG52YXIgQWNjZXNzVG9rZW4gPSBbMCwgbjAsIF9BVCwgOCwgMF07XG52YXIgQ2xpZW50U2VjcmV0ID0gWzAsIG4wLCBfQ1MsIDgsIDBdO1xudmFyIENvZGVWZXJpZmllciA9IFswLCBuMCwgX0NWLCA4LCAwXTtcbnZhciBJZFRva2VuID0gWzAsIG4wLCBfSVQsIDgsIDBdO1xudmFyIFJlZnJlc2hUb2tlbiA9IFswLCBuMCwgX1JULCA4LCAwXTtcbnZhciBBY2Nlc3NEZW5pZWRFeGNlcHRpb24gPSBbXG4gICAgLTMsXG4gICAgbjAsXG4gICAgX0FERSxcbiAgICB7XG4gICAgICAgIFtfZV06IF9jLFxuICAgICAgICBbX2hFXTogNDAwLFxuICAgIH0sXG4gICAgW19lLCBfciwgX2VkXSxcbiAgICBbMCwgMCwgMF0sXG5dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoQWNjZXNzRGVuaWVkRXhjZXB0aW9uLCBBY2Nlc3NEZW5pZWRFeGNlcHRpb24kMSk7XG52YXIgQXV0aG9yaXphdGlvblBlbmRpbmdFeGNlcHRpb24gPSBbXG4gICAgLTMsXG4gICAgbjAsXG4gICAgX0FQRSxcbiAgICB7XG4gICAgICAgIFtfZV06IF9jLFxuICAgICAgICBbX2hFXTogNDAwLFxuICAgIH0sXG4gICAgW19lLCBfZWRdLFxuICAgIFswLCAwXSxcbl07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihBdXRob3JpemF0aW9uUGVuZGluZ0V4Y2VwdGlvbiwgQXV0aG9yaXphdGlvblBlbmRpbmdFeGNlcHRpb24kMSk7XG52YXIgQ3JlYXRlVG9rZW5SZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0NUUixcbiAgICAwLFxuICAgIFtfY0ksIF9jUywgX2dULCBfZEMsIF9jbywgX3JULCBfcywgX3JVLCBfY1ZdLFxuICAgIFswLCBbKCkgPT4gQ2xpZW50U2VjcmV0LCAwXSwgMCwgMCwgMCwgWygpID0+IFJlZnJlc2hUb2tlbiwgMF0sIDY0IHwgMCwgMCwgWygpID0+IENvZGVWZXJpZmllciwgMF1dLFxuXTtcbnZhciBDcmVhdGVUb2tlblJlc3BvbnNlID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0NUUnIsXG4gICAgMCxcbiAgICBbX2FULCBfdFQsIF9lSSwgX3JULCBfaVRdLFxuICAgIFtbKCkgPT4gQWNjZXNzVG9rZW4sIDBdLCAwLCAxLCBbKCkgPT4gUmVmcmVzaFRva2VuLCAwXSwgWygpID0+IElkVG9rZW4sIDBdXSxcbl07XG52YXIgRXhwaXJlZFRva2VuRXhjZXB0aW9uID0gW1xuICAgIC0zLFxuICAgIG4wLFxuICAgIF9FVEUsXG4gICAge1xuICAgICAgICBbX2VdOiBfYyxcbiAgICAgICAgW19oRV06IDQwMCxcbiAgICB9LFxuICAgIFtfZSwgX2VkXSxcbiAgICBbMCwgMF0sXG5dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoRXhwaXJlZFRva2VuRXhjZXB0aW9uLCBFeHBpcmVkVG9rZW5FeGNlcHRpb24kMSk7XG52YXIgSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb24gPSBbXG4gICAgLTMsXG4gICAgbjAsXG4gICAgX0lTRSxcbiAgICB7XG4gICAgICAgIFtfZV06IF9zZSxcbiAgICAgICAgW19oRV06IDUwMCxcbiAgICB9LFxuICAgIFtfZSwgX2VkXSxcbiAgICBbMCwgMF0sXG5dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb24sIEludGVybmFsU2VydmVyRXhjZXB0aW9uJDEpO1xudmFyIEludmFsaWRDbGllbnRFeGNlcHRpb24gPSBbXG4gICAgLTMsXG4gICAgbjAsXG4gICAgX0lDRSxcbiAgICB7XG4gICAgICAgIFtfZV06IF9jLFxuICAgICAgICBbX2hFXTogNDAxLFxuICAgIH0sXG4gICAgW19lLCBfZWRdLFxuICAgIFswLCAwXSxcbl07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihJbnZhbGlkQ2xpZW50RXhjZXB0aW9uLCBJbnZhbGlkQ2xpZW50RXhjZXB0aW9uJDEpO1xudmFyIEludmFsaWRHcmFudEV4Y2VwdGlvbiA9IFtcbiAgICAtMyxcbiAgICBuMCxcbiAgICBfSUdFLFxuICAgIHtcbiAgICAgICAgW19lXTogX2MsXG4gICAgICAgIFtfaEVdOiA0MDAsXG4gICAgfSxcbiAgICBbX2UsIF9lZF0sXG4gICAgWzAsIDBdLFxuXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKEludmFsaWRHcmFudEV4Y2VwdGlvbiwgSW52YWxpZEdyYW50RXhjZXB0aW9uJDEpO1xudmFyIEludmFsaWRSZXF1ZXN0RXhjZXB0aW9uID0gW1xuICAgIC0zLFxuICAgIG4wLFxuICAgIF9JUkUsXG4gICAge1xuICAgICAgICBbX2VdOiBfYyxcbiAgICAgICAgW19oRV06IDQwMCxcbiAgICB9LFxuICAgIFtfZSwgX3IsIF9lZF0sXG4gICAgWzAsIDAsIDBdLFxuXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKEludmFsaWRSZXF1ZXN0RXhjZXB0aW9uLCBJbnZhbGlkUmVxdWVzdEV4Y2VwdGlvbiQxKTtcbnZhciBJbnZhbGlkU2NvcGVFeGNlcHRpb24gPSBbXG4gICAgLTMsXG4gICAgbjAsXG4gICAgX0lTRW4sXG4gICAge1xuICAgICAgICBbX2VdOiBfYyxcbiAgICAgICAgW19oRV06IDQwMCxcbiAgICB9LFxuICAgIFtfZSwgX2VkXSxcbiAgICBbMCwgMF0sXG5dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoSW52YWxpZFNjb3BlRXhjZXB0aW9uLCBJbnZhbGlkU2NvcGVFeGNlcHRpb24kMSk7XG52YXIgU2xvd0Rvd25FeGNlcHRpb24gPSBbXG4gICAgLTMsXG4gICAgbjAsXG4gICAgX1NERSxcbiAgICB7XG4gICAgICAgIFtfZV06IF9jLFxuICAgICAgICBbX2hFXTogNDAwLFxuICAgIH0sXG4gICAgW19lLCBfZWRdLFxuICAgIFswLCAwXSxcbl07XG5zY2hlbWEuVHlwZVJlZ2lzdHJ5LmZvcihuMCkucmVnaXN0ZXJFcnJvcihTbG93RG93bkV4Y2VwdGlvbiwgU2xvd0Rvd25FeGNlcHRpb24kMSk7XG52YXIgVW5hdXRob3JpemVkQ2xpZW50RXhjZXB0aW9uID0gW1xuICAgIC0zLFxuICAgIG4wLFxuICAgIF9VQ0UsXG4gICAge1xuICAgICAgICBbX2VdOiBfYyxcbiAgICAgICAgW19oRV06IDQwMCxcbiAgICB9LFxuICAgIFtfZSwgX2VkXSxcbiAgICBbMCwgMF0sXG5dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoVW5hdXRob3JpemVkQ2xpZW50RXhjZXB0aW9uLCBVbmF1dGhvcml6ZWRDbGllbnRFeGNlcHRpb24kMSk7XG52YXIgVW5zdXBwb3J0ZWRHcmFudFR5cGVFeGNlcHRpb24gPSBbXG4gICAgLTMsXG4gICAgbjAsXG4gICAgX1VHVEUsXG4gICAge1xuICAgICAgICBbX2VdOiBfYyxcbiAgICAgICAgW19oRV06IDQwMCxcbiAgICB9LFxuICAgIFtfZSwgX2VkXSxcbiAgICBbMCwgMF0sXG5dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoVW5zdXBwb3J0ZWRHcmFudFR5cGVFeGNlcHRpb24sIFVuc3VwcG9ydGVkR3JhbnRUeXBlRXhjZXB0aW9uJDEpO1xudmFyIFNTT09JRENTZXJ2aWNlRXhjZXB0aW9uID0gWy0zLCBfc20sIFwiU1NPT0lEQ1NlcnZpY2VFeGNlcHRpb25cIiwgMCwgW10sIFtdXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKF9zbSkucmVnaXN0ZXJFcnJvcihTU09PSURDU2VydmljZUV4Y2VwdGlvbiwgU1NPT0lEQ1NlcnZpY2VFeGNlcHRpb24kMSk7XG52YXIgQ3JlYXRlVG9rZW4gPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfQ1QsXG4gICAge1xuICAgICAgICBbX2hdOiBbXCJQT1NUXCIsIFwiL3Rva2VuXCIsIDIwMF0sXG4gICAgfSxcbiAgICAoKSA9PiBDcmVhdGVUb2tlblJlcXVlc3QsXG4gICAgKCkgPT4gQ3JlYXRlVG9rZW5SZXNwb25zZSxcbl07XG5cbmNsYXNzIENyZWF0ZVRva2VuQ29tbWFuZCBleHRlbmRzIHNtaXRoeUNsaWVudC5Db21tYW5kXG4gICAgLmNsYXNzQnVpbGRlcigpXG4gICAgLmVwKGNvbW1vblBhcmFtcylcbiAgICAubShmdW5jdGlvbiAoQ29tbWFuZCwgY3MsIGNvbmZpZywgbykge1xuICAgIHJldHVybiBbbWlkZGxld2FyZUVuZHBvaW50LmdldEVuZHBvaW50UGx1Z2luKGNvbmZpZywgQ29tbWFuZC5nZXRFbmRwb2ludFBhcmFtZXRlckluc3RydWN0aW9ucygpKV07XG59KVxuICAgIC5zKFwiQVdTU1NPT0lEQ1NlcnZpY2VcIiwgXCJDcmVhdGVUb2tlblwiLCB7fSlcbiAgICAubihcIlNTT09JRENDbGllbnRcIiwgXCJDcmVhdGVUb2tlbkNvbW1hbmRcIilcbiAgICAuc2MoQ3JlYXRlVG9rZW4pXG4gICAgLmJ1aWxkKCkge1xufVxuXG5jb25zdCBjb21tYW5kcyA9IHtcbiAgICBDcmVhdGVUb2tlbkNvbW1hbmQsXG59O1xuY2xhc3MgU1NPT0lEQyBleHRlbmRzIFNTT09JRENDbGllbnQge1xufVxuc21pdGh5Q2xpZW50LmNyZWF0ZUFnZ3JlZ2F0ZWRDbGllbnQoY29tbWFuZHMsIFNTT09JREMpO1xuXG5jb25zdCBBY2Nlc3NEZW5pZWRFeGNlcHRpb25SZWFzb24gPSB7XG4gICAgS01TX0FDQ0VTU19ERU5JRUQ6IFwiS01TX0FjY2Vzc0RlbmllZEV4Y2VwdGlvblwiLFxufTtcbmNvbnN0IEludmFsaWRSZXF1ZXN0RXhjZXB0aW9uUmVhc29uID0ge1xuICAgIEtNU19ESVNBQkxFRF9LRVk6IFwiS01TX0Rpc2FibGVkRXhjZXB0aW9uXCIsXG4gICAgS01TX0lOVkFMSURfS0VZX1VTQUdFOiBcIktNU19JbnZhbGlkS2V5VXNhZ2VFeGNlcHRpb25cIixcbiAgICBLTVNfSU5WQUxJRF9TVEFURTogXCJLTVNfSW52YWxpZFN0YXRlRXhjZXB0aW9uXCIsXG4gICAgS01TX0tFWV9OT1RfRk9VTkQ6IFwiS01TX05vdEZvdW5kRXhjZXB0aW9uXCIsXG59O1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCIkQ29tbWFuZFwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHNtaXRoeUNsaWVudC5Db21tYW5kOyB9XG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fQ2xpZW50XCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gc21pdGh5Q2xpZW50LkNsaWVudDsgfVxufSk7XG5leHBvcnRzLkFjY2Vzc0RlbmllZEV4Y2VwdGlvbiA9IEFjY2Vzc0RlbmllZEV4Y2VwdGlvbiQxO1xuZXhwb3J0cy5BY2Nlc3NEZW5pZWRFeGNlcHRpb25SZWFzb24gPSBBY2Nlc3NEZW5pZWRFeGNlcHRpb25SZWFzb247XG5leHBvcnRzLkF1dGhvcml6YXRpb25QZW5kaW5nRXhjZXB0aW9uID0gQXV0aG9yaXphdGlvblBlbmRpbmdFeGNlcHRpb24kMTtcbmV4cG9ydHMuQ3JlYXRlVG9rZW5Db21tYW5kID0gQ3JlYXRlVG9rZW5Db21tYW5kO1xuZXhwb3J0cy5FeHBpcmVkVG9rZW5FeGNlcHRpb24gPSBFeHBpcmVkVG9rZW5FeGNlcHRpb24kMTtcbmV4cG9ydHMuSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb24gPSBJbnRlcm5hbFNlcnZlckV4Y2VwdGlvbiQxO1xuZXhwb3J0cy5JbnZhbGlkQ2xpZW50RXhjZXB0aW9uID0gSW52YWxpZENsaWVudEV4Y2VwdGlvbiQxO1xuZXhwb3J0cy5JbnZhbGlkR3JhbnRFeGNlcHRpb24gPSBJbnZhbGlkR3JhbnRFeGNlcHRpb24kMTtcbmV4cG9ydHMuSW52YWxpZFJlcXVlc3RFeGNlcHRpb24gPSBJbnZhbGlkUmVxdWVzdEV4Y2VwdGlvbiQxO1xuZXhwb3J0cy5JbnZhbGlkUmVxdWVzdEV4Y2VwdGlvblJlYXNvbiA9IEludmFsaWRSZXF1ZXN0RXhjZXB0aW9uUmVhc29uO1xuZXhwb3J0cy5JbnZhbGlkU2NvcGVFeGNlcHRpb24gPSBJbnZhbGlkU2NvcGVFeGNlcHRpb24kMTtcbmV4cG9ydHMuU1NPT0lEQyA9IFNTT09JREM7XG5leHBvcnRzLlNTT09JRENDbGllbnQgPSBTU09PSURDQ2xpZW50O1xuZXhwb3J0cy5TU09PSURDU2VydmljZUV4Y2VwdGlvbiA9IFNTT09JRENTZXJ2aWNlRXhjZXB0aW9uJDE7XG5leHBvcnRzLlNsb3dEb3duRXhjZXB0aW9uID0gU2xvd0Rvd25FeGNlcHRpb24kMTtcbmV4cG9ydHMuVW5hdXRob3JpemVkQ2xpZW50RXhjZXB0aW9uID0gVW5hdXRob3JpemVkQ2xpZW50RXhjZXB0aW9uJDE7XG5leHBvcnRzLlVuc3VwcG9ydGVkR3JhbnRUeXBlRXhjZXB0aW9uID0gVW5zdXBwb3J0ZWRHcmFudFR5cGVFeGNlcHRpb24kMTtcbiIKICBdLAogICJtYXBwaW5ncyI6ICJzcEJBQ0EsQ0FBTyxTQUFlLEpBQVMsT0FBYyxMQUFFLEFBQU8sSkFBSyxMQUFDLEpBQ3BELHdCQUFzQyx1Q0FBK0MsaURBQXNELE9BQ25KLElBQU0sT0FDQSxPQUNBLEdBQWlELE1BQU8sRUFBUSxFQUFTLElBQVUsQ0FDckYsTUFBTyxDQUNILFdBQVksRUFBRyxFQUFrQixrQkFBa0IsQ0FBTyxFQUFFLFVBQzVELE9BQVMsTUFBTyxFQUFHLEVBQWtCLG1CQUFtQixFQUFPLE1BQU0sRUFBRSxJQUNsRSxJQUFNLENBQ0gsTUFBVSxNQUFNLHlEQUF5RCxJQUMxRSxDQUNYLEdBRUksaURBQWlELEdBQ3pELFNBQVMsRUFBZ0MsQ0FBQyxFQUFnQixDQUN0RCxNQUFPLENBQ0gsU0FBVSxpQkFDVixrQkFBbUIsQ0FDZixLQUFNLFlBQ04sT0FBUSxFQUFlLE1BQzNCLEVBQ0Esb0JBQXFCLENBQUMsRUFBUSxLQUFhLENBQ3ZDLGtCQUFtQixDQUNmLFNBQ0EsU0FDSixDQUNKLEVBQ0osRUFFSixTQUFTLEVBQW1DLENBQUMsRUFBZ0IsQ0FDekQsTUFBTyxDQUNILFNBQVUsbUJBQ2QsRUFFSixJQUFNLEdBQXVDLENBQUMsSUFBbUIsQ0FDN0QsSUFBTSxFQUFVLENBQUMsRUFDakIsT0FBUSxFQUFlLGVBQ2QsY0FBZSxDQUNoQixFQUFRLEtBQUssR0FBb0MsQ0FBYyxDQUFDLEVBQ2hFLEtBQ0osU0FFSSxFQUFRLEtBQUssR0FBaUMs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QkFDbEIsc0JBQXVCLCtCQUN2QixrQkFBbUIsNEJBQ25CLGtCQUFtQix1QkFDdkIsRUFFQSxPQUFPLGVBQWUsRUFBUyxXQUFZLENBQ3ZDLFdBQVksR0FDWixJQUFLLFFBQVMsRUFBRyxDQUFFLE9BQU8sRUFBYSxRQUMzQyxDQUFDLEVBQ0QsT0FBTyxlQUFlLEVBQVMsV0FBWSxDQUN2QyxXQUFZLEdBQ1osSUFBSyxRQUFTLEVBQUcsQ0FBRSxPQUFPLEVBQWEsT0FDM0MsQ0FBQyxFQUNPLHdCQUF3QixHQUN4Qiw4QkFBOEIsR0FDOUIsZ0NBQWdDLEdBQ2hDLHFCQUFxQixFQUNyQix3QkFBd0IsR0FDeEIsMEJBQTBCLEdBQzFCLHlCQUF5QixHQUN6Qix3QkFBd0IsR0FDeEIsMEJBQTBCLEdBQzFCLGdDQUFnQyxHQUNoQyx3QkFBd0IsR0FDeEIsVUFBVSxFQUNWLGdCQUFnQixFQUNoQiwwQkFBMEIsRUFDMUIsb0JBQW9CLEdBQ3BCLDhCQUE4QixHQUM5QixnQ0FBZ0MiLAogICJkZWJ1Z0lkIjogIkE5MzFBMjAwQ0UxRDhGNTM2NDc1NkUyMTY0NzU2RTIxIiwKICAibmFtZXMiOiBbXQp9
@@ -1,5 +0,0 @@
1
- import{P as re}from"./chunk-kvnavsh3.js";import{U as d,W as c}from"./chunk-e9mt878v.js";var x=d((v)=>{Object.defineProperty(v,"__esModule",{value:!0});v.getHomeDir=void 0;var W=c("os"),V=c("path"),_={},G=()=>{if(process&&process.geteuid)return`${process.geteuid()}`;return"DEFAULT"},U=()=>{let{HOME:e,USERPROFILE:t,HOMEPATH:r,HOMEDRIVE:o=`C:${V.sep}`}=process.env;if(e)return e;if(t)return t;if(r)return`${o}${r}`;let n=G();if(!_[n])_[n]=(0,W.homedir)();return _[n]};v.getHomeDir=U});var I=d((j)=>{Object.defineProperty(j,"__esModule",{value:!0});j.getSSOTokenFilepath=void 0;var X=c("crypto"),B=c("path"),J=x(),z=(e)=>{let r=(0,X.createHash)("sha1").update(e).digest("hex");return(0,B.join)((0,J.getHomeDir)(),".aws","sso","cache",`${r}.json`)};j.getSSOTokenFilepath=z});var R=d((C)=>{Object.defineProperty(C,"__esModule",{value:!0});C.getSSOTokenFromFile=C.tokenIntercept=void 0;var Q=c("fs/promises"),Y=I();C.tokenIntercept={};var Z=async(e)=>{if(C.tokenIntercept[e])return C.tokenIntercept[e];let t=(0,Y.getSSOTokenFilepath)(e),r=await(0,Q.readFile)(t,"utf8");return JSON.parse(r)};C.getSSOTokenFromFile=Z});var N=d((w)=>{Object.defineProperty(w,"__esModule",{value:!0});w.readFile=w.fileIntercept=w.filePromises=void 0;var ee=c("node:fs/promises");w.filePromises={};w.fileIntercept={};var te=(e,t)=>{if(w.fileIntercept[e]!==void 0)return w.fileIntercept[e];if(!w.filePromises[e]||t?.ignoreCache)w.filePromises[e]=(0,ee.readFile)(e,"utf8");return w.filePromises[e]};w.readFile=te});var Pe=d((l)=>{var F=x(),k=I(),T=R(),S=c("path"),O=re(),p=N(),q="AWS_PROFILE",$="default",oe=(e)=>e.profile||process.env[q]||$,a=".",ne=(e)=>Object.entries(e).filter(([t])=>{let r=t.indexOf(a);if(r===-1)return!1;return Object.values(O.IniSectionType).includes(t.substring(0,r))}).reduce((t,[r,o])=>{let n=r.indexOf(a),i=r.substring(0,n)===O.IniSectionType.PROFILE?r.substring(n+1):r;return t[i]=o,t},{...e.default&&{default:e.default}}),ie="AWS_CONFIG_FILE",M=()=>process.env[ie]||S.join(F.getHomeDir(),".aws","config"),se="AWS_SHARED_CREDENTIALS_FILE",ce=()=>process.env[se]||S.join(F.getHomeDir(),".aws","credentials"),ae=/^([\w-]+)\s(["'])?([\w-@\+\.%:/]+)\2$/,le=["__proto__","profile __proto__"],b=(e)=>{let t={},r,o;for(let n of e.split(/\r?\n/)){let i=n.split(/(^|\s)[;#]/)[0].trim();if(i[0]==="["&&i[i.length-1]==="]"){r=void 0,o=void 0;let s=i.substring(1,i.length-1),u=ae.exec(s);if(u){let[,f,,m]=u;if(Object.values(O.IniSectionType).includes(f))r=[f,m].join(a)}else r=s;if(le.includes(s))throw Error(`Found invalid profile name "${s}"`)}else if(r){let s=i.indexOf("=");if(![0,-1].includes(s)){let[u,f]=[i.substring(0,s).trim(),i.substring(s+1).trim()];if(f==="")o=u;else{if(o&&n.trimStart()===n)o=void 0;t[r]=t[r]||{};let m=o?[o,u].join(a):u;t[r][m]=f}}}}return t},A=()=>({}),K=async(e={})=>{let{filepath:t=ce(),configFilepath:r=M()}=e,o=F.getHomeDir(),n="~/",i=t;if(t.startsWith("~/"))i=S.join(o,t.slice(2));let h=r;if(r.startsWith("~/"))h=S.join(o,r.slice(2));let s=await Promise.all([p.readFile(h,{ignoreCache:e.ignoreCache}).then(b).then(ne).catch(A),p.readFile(i,{ignoreCache:e.ignoreCache}).then(b).catch(A)]);return{configFile:s[0],credentialsFile:s[1]}},ue=(e)=>Object.entries(e).filter(([t])=>t.startsWith(O.IniSectionType.SSO_SESSION+a)).reduce((t,[r,o])=>({...t,[r.substring(r.indexOf(a)+1)]:o}),{}),pe=()=>({}),fe=async(e={})=>p.readFile(e.configFilepath??M()).then(b).then(ue).catch(pe),de=(...e)=>{let t={};for(let r of e)for(let[o,n]of Object.entries(r))if(t[o]!==void 0)Object.assign(t[o],n);else t[o]=n;return t},Fe=async(e)=>{let t=await K(e);return de(t.configFile,t.credentialsFile)},ge={getFileRecord(){return p.fileIntercept},interceptFile(e,t){p.fileIntercept[e]=Promise.resolve(t)},getTokenRecord(){return T.tokenIntercept},interceptToken(e,t){T.tokenIntercept[e]=t}};Object.defineProperty(l,"getSSOTokenFromFile",{enumerable:!0,get:function(){return T.getSSOTokenFromFile}});Object.defineProperty(l,"readFile",{enumerable:!0,get:function(){return p.readFile}});l.CONFIG_PREFIX_SEPARATOR=a;l.DEFAULT_PROFILE=$;l.ENV_PROFILE=q;l.externalDataInterceptor=ge;l.getProfileName=oe;l.loadSharedConfigFiles=K;l.loadSsoSessionData=fe;l.parseKnownFiles=Fe;Object.keys(F).forEach(function(e){if(e!=="default"&&!Object.prototype.hasOwnProperty.call(l,e))Object.defineProperty(l,e,{enumerable:!0,get:function(){return F[e]}})});Object.keys(k).forEach(function(e){if(e!=="default"&&!Object.prototype.hasOwnProperty.call(l,e))Object.defineProperty(l,e,{enumerable:!0,get:function(){return k[e]}})})});
2
- export{Pe as y};
3
-
4
- //# debugId=A827FBD783D1378264756E2164756E21
5
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vbm9kZV9tb2R1bGVzL0BzbWl0aHkvc2hhcmVkLWluaS1maWxlLWxvYWRlci9kaXN0LWNqcy9nZXRIb21lRGlyLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9Ac21pdGh5L3NoYXJlZC1pbmktZmlsZS1sb2FkZXIvZGlzdC1janMvZ2V0U1NPVG9rZW5GaWxlcGF0aC5qcyIsICIuLi9ub2RlX21vZHVsZXMvQHNtaXRoeS9zaGFyZWQtaW5pLWZpbGUtbG9hZGVyL2Rpc3QtY2pzL2dldFNTT1Rva2VuRnJvbUZpbGUuanMiLCAiLi4vbm9kZV9tb2R1bGVzL0BzbWl0aHkvc2hhcmVkLWluaS1maWxlLWxvYWRlci9kaXN0LWNqcy9yZWFkRmlsZS5qcyIsICIuLi9ub2RlX21vZHVsZXMvQHNtaXRoeS9zaGFyZWQtaW5pLWZpbGUtbG9hZGVyL2Rpc3QtY2pzL2luZGV4LmpzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWwogICAgIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5nZXRIb21lRGlyID0gdm9pZCAwO1xuY29uc3Qgb3NfMSA9IHJlcXVpcmUoXCJvc1wiKTtcbmNvbnN0IHBhdGhfMSA9IHJlcXVpcmUoXCJwYXRoXCIpO1xuY29uc3QgaG9tZURpckNhY2hlID0ge307XG5jb25zdCBnZXRIb21lRGlyQ2FjaGVLZXkgPSAoKSA9PiB7XG4gICAgaWYgKHByb2Nlc3MgJiYgcHJvY2Vzcy5nZXRldWlkKSB7XG4gICAgICAgIHJldHVybiBgJHtwcm9jZXNzLmdldGV1aWQoKX1gO1xuICAgIH1cbiAgICByZXR1cm4gXCJERUZBVUxUXCI7XG59O1xuY29uc3QgZ2V0SG9tZURpciA9ICgpID0+IHtcbiAgICBjb25zdCB7IEhPTUUsIFVTRVJQUk9GSUxFLCBIT01FUEFUSCwgSE9NRURSSVZFID0gYEM6JHtwYXRoXzEuc2VwfWAgfSA9IHByb2Nlc3MuZW52O1xuICAgIGlmIChIT01FKVxuICAgICAgICByZXR1cm4gSE9NRTtcbiAgICBpZiAoVVNFUlBST0ZJTEUpXG4gICAgICAgIHJldHVybiBVU0VSUFJPRklMRTtcbiAgICBpZiAoSE9NRVBBVEgpXG4gICAgICAgIHJldHVybiBgJHtIT01FRFJJVkV9JHtIT01FUEFUSH1gO1xuICAgIGNvbnN0IGhvbWVEaXJDYWNoZUtleSA9IGdldEhvbWVEaXJDYWNoZUtleSgpO1xuICAgIGlmICghaG9tZURpckNhY2hlW2hvbWVEaXJDYWNoZUtleV0pXG4gICAgICAgIGhvbWVEaXJDYWNoZVtob21lRGlyQ2FjaGVLZXldID0gKDAsIG9zXzEuaG9tZWRpcikoKTtcbiAgICByZXR1cm4gaG9tZURpckNhY2hlW2hvbWVEaXJDYWNoZUtleV07XG59O1xuZXhwb3J0cy5nZXRIb21lRGlyID0gZ2V0SG9tZURpcjtcbiIsCiAgICAiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmdldFNTT1Rva2VuRmlsZXBhdGggPSB2b2lkIDA7XG5jb25zdCBjcnlwdG9fMSA9IHJlcXVpcmUoXCJjcnlwdG9cIik7XG5jb25zdCBwYXRoXzEgPSByZXF1aXJlKFwicGF0aFwiKTtcbmNvbnN0IGdldEhvbWVEaXJfMSA9IHJlcXVpcmUoXCIuL2dldEhvbWVEaXJcIik7XG5jb25zdCBnZXRTU09Ub2tlbkZpbGVwYXRoID0gKGlkKSA9PiB7XG4gICAgY29uc3QgaGFzaGVyID0gKDAsIGNyeXB0b18xLmNyZWF0ZUhhc2gpKFwic2hhMVwiKTtcbiAgICBjb25zdCBjYWNoZU5hbWUgPSBoYXNoZXIudXBkYXRlKGlkKS5kaWdlc3QoXCJoZXhcIik7XG4gICAgcmV0dXJuICgwLCBwYXRoXzEuam9pbikoKDAsIGdldEhvbWVEaXJfMS5nZXRIb21lRGlyKSgpLCBcIi5hd3NcIiwgXCJzc29cIiwgXCJjYWNoZVwiLCBgJHtjYWNoZU5hbWV9Lmpzb25gKTtcbn07XG5leHBvcnRzLmdldFNTT1Rva2VuRmlsZXBhdGggPSBnZXRTU09Ub2tlbkZpbGVwYXRoO1xuIiwKICAgICJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuZ2V0U1NPVG9rZW5Gcm9tRmlsZSA9IGV4cG9ydHMudG9rZW5JbnRlcmNlcHQgPSB2b2lkIDA7XG5jb25zdCBwcm9taXNlc18xID0gcmVxdWlyZShcImZzL3Byb21pc2VzXCIpO1xuY29uc3QgZ2V0U1NPVG9rZW5GaWxlcGF0aF8xID0gcmVxdWlyZShcIi4vZ2V0U1NPVG9rZW5GaWxlcGF0aFwiKTtcbmV4cG9ydHMudG9rZW5JbnRlcmNlcHQgPSB7fTtcbmNvbnN0IGdldFNTT1Rva2VuRnJvbUZpbGUgPSBhc3luYyAoaWQpID0+IHtcbiAgICBpZiAoZXhwb3J0cy50b2tlbkludGVyY2VwdFtpZF0pIHtcbiAgICAgICAgcmV0dXJuIGV4cG9ydHMudG9rZW5JbnRlcmNlcHRbaWRdO1xuICAgIH1cbiAgICBjb25zdCBzc29Ub2tlbkZpbGVwYXRoID0gKDAsIGdldFNTT1Rva2VuRmlsZXBhdGhfMS5nZXRTU09Ub2tlbkZpbGVwYXRoKShpZCk7XG4gICAgY29uc3Qgc3NvVG9rZW5UZXh0ID0gYXdhaXQgKDAsIHByb21pc2VzXzEucmVhZEZpbGUpKHNzb1Rva2VuRmlsZXBhdGgsIFwidXRmOFwiKTtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShzc29Ub2tlblRleHQpO1xufTtcbmV4cG9ydHMuZ2V0U1NPVG9rZW5Gcm9tRmlsZSA9IGdldFNTT1Rva2VuRnJvbUZpbGU7XG4iLAogICAgIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5yZWFkRmlsZSA9IGV4cG9ydHMuZmlsZUludGVyY2VwdCA9IGV4cG9ydHMuZmlsZVByb21pc2VzID0gdm9pZCAwO1xuY29uc3QgcHJvbWlzZXNfMSA9IHJlcXVpcmUoXCJub2RlOmZzL3Byb21pc2VzXCIpO1xuZXhwb3J0cy5maWxlUHJvbWlzZXMgPSB7fTtcbmV4cG9ydHMuZmlsZUludGVyY2VwdCA9IHt9O1xuY29uc3QgcmVhZEZpbGUgPSAocGF0aCwgb3B0aW9ucykgPT4ge1xuICAgIGlmIChleHBvcnRzLmZpbGVJbnRlcmNlcHRbcGF0aF0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gZXhwb3J0cy5maWxlSW50ZXJjZXB0W3BhdGhdO1xuICAgIH1cbiAgICBpZiAoIWV4cG9ydHMuZmlsZVByb21pc2VzW3BhdGhdIHx8IG9wdGlvbnM/Lmlnbm9yZUNhY2hlKSB7XG4gICAgICAgIGV4cG9ydHMuZmlsZVByb21pc2VzW3BhdGhdID0gKDAsIHByb21pc2VzXzEucmVhZEZpbGUpKHBhdGgsIFwidXRmOFwiKTtcbiAgICB9XG4gICAgcmV0dXJuIGV4cG9ydHMuZmlsZVByb21pc2VzW3BhdGhdO1xufTtcbmV4cG9ydHMucmVhZEZpbGUgPSByZWFkRmlsZTtcbiIsCiAgICAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgZ2V0SG9tZURpciA9IHJlcXVpcmUoJy4vZ2V0SG9tZURpcicpO1xudmFyIGdldFNTT1Rva2VuRmlsZXBhdGggPSByZXF1aXJlKCcuL2dldFNTT1Rva2VuRmlsZXBhdGgnKTtcbnZhciBnZXRTU09Ub2tlbkZyb21GaWxlID0gcmVxdWlyZSgnLi9nZXRTU09Ub2tlbkZyb21GaWxlJyk7XG52YXIgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKTtcbnZhciB0eXBlcyA9IHJlcXVpcmUoJ0BzbWl0aHkvdHlwZXMnKTtcbnZhciByZWFkRmlsZSA9IHJlcXVpcmUoJy4vcmVhZEZpbGUnKTtcblxuY29uc3QgRU5WX1BST0ZJTEUgPSBcIkFXU19QUk9GSUxFXCI7XG5jb25zdCBERUZBVUxUX1BST0ZJTEUgPSBcImRlZmF1bHRcIjtcbmNvbnN0IGdldFByb2ZpbGVOYW1lID0gKGluaXQpID0+IGluaXQucHJvZmlsZSB8fCBwcm9jZXNzLmVudltFTlZfUFJPRklMRV0gfHwgREVGQVVMVF9QUk9GSUxFO1xuXG5jb25zdCBDT05GSUdfUFJFRklYX1NFUEFSQVRPUiA9IFwiLlwiO1xuXG5jb25zdCBnZXRDb25maWdEYXRhID0gKGRhdGEpID0+IE9iamVjdC5lbnRyaWVzKGRhdGEpXG4gICAgLmZpbHRlcigoW2tleV0pID0+IHtcbiAgICBjb25zdCBpbmRleE9mU2VwYXJhdG9yID0ga2V5LmluZGV4T2YoQ09ORklHX1BSRUZJWF9TRVBBUkFUT1IpO1xuICAgIGlmIChpbmRleE9mU2VwYXJhdG9yID09PSAtMSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiBPYmplY3QudmFsdWVzKHR5cGVzLkluaVNlY3Rpb25UeXBlKS5pbmNsdWRlcyhrZXkuc3Vic3RyaW5nKDAsIGluZGV4T2ZTZXBhcmF0b3IpKTtcbn0pXG4gICAgLnJlZHVjZSgoYWNjLCBba2V5LCB2YWx1ZV0pID0+IHtcbiAgICBjb25zdCBpbmRleE9mU2VwYXJhdG9yID0ga2V5LmluZGV4T2YoQ09ORklHX1BSRUZJWF9TRVBBUkFUT1IpO1xuICAgIGNvbnN0IHVwZGF0ZWRLZXkgPSBrZXkuc3Vic3RyaW5nKDAsIGluZGV4T2ZTZXBhcmF0b3IpID09PSB0eXBlcy5JbmlTZWN0aW9uVHlwZS5QUk9GSUxFID8ga2V5LnN1YnN0cmluZyhpbmRleE9mU2VwYXJhdG9yICsgMSkgOiBrZXk7XG4gICAgYWNjW3VwZGF0ZWRLZXldID0gdmFsdWU7XG4gICAgcmV0dXJuIGFjYztcbn0sIHtcbiAgICAuLi4oZGF0YS5kZWZhdWx0ICYmIHsgZGVmYXVsdDogZGF0YS5kZWZhdWx0IH0pLFxufSk7XG5cbmNvbnN0IEVOVl9DT05GSUdfUEFUSCA9IFwiQVdTX0NPTkZJR19GSUxFXCI7XG5jb25zdCBnZXRDb25maWdGaWxlcGF0aCA9ICgpID0+IHByb2Nlc3MuZW52W0VOVl9DT05GSUdfUEFUSF0gfHwgcGF0aC5qb2luKGdldEhvbWVEaXIuZ2V0SG9tZURpcigpLCBcIi5hd3NcIiwgXCJjb25maWdcIik7XG5cbmNvbnN0IEVOVl9DUkVERU5USUFMU19QQVRIID0gXCJBV1NfU0hBUkVEX0NSRURFTlRJQUxTX0ZJTEVcIjtcbmNvbnN0IGdldENyZWRlbnRpYWxzRmlsZXBhdGggPSAoKSA9PiBwcm9jZXNzLmVudltFTlZfQ1JFREVOVElBTFNfUEFUSF0gfHwgcGF0aC5qb2luKGdldEhvbWVEaXIuZ2V0SG9tZURpcigpLCBcIi5hd3NcIiwgXCJjcmVkZW50aWFsc1wiKTtcblxuY29uc3QgcHJlZml4S2V5UmVnZXggPSAvXihbXFx3LV0rKVxccyhbXCInXSk/KFtcXHctQFxcK1xcLiU6L10rKVxcMiQvO1xuY29uc3QgcHJvZmlsZU5hbWVCbG9ja0xpc3QgPSBbXCJfX3Byb3RvX19cIiwgXCJwcm9maWxlIF9fcHJvdG9fX1wiXTtcbmNvbnN0IHBhcnNlSW5pID0gKGluaURhdGEpID0+IHtcbiAgICBjb25zdCBtYXAgPSB7fTtcbiAgICBsZXQgY3VycmVudFNlY3Rpb247XG4gICAgbGV0IGN1cnJlbnRTdWJTZWN0aW9uO1xuICAgIGZvciAoY29uc3QgaW5pTGluZSBvZiBpbmlEYXRhLnNwbGl0KC9cXHI/XFxuLykpIHtcbiAgICAgICAgY29uc3QgdHJpbW1lZExpbmUgPSBpbmlMaW5lLnNwbGl0KC8oXnxcXHMpWzsjXS8pWzBdLnRyaW0oKTtcbiAgICAgICAgY29uc3QgaXNTZWN0aW9uID0gdHJpbW1lZExpbmVbMF0gPT09IFwiW1wiICYmIHRyaW1tZWRMaW5lW3RyaW1tZWRMaW5lLmxlbmd0aCAtIDFdID09PSBcIl1cIjtcbiAgICAgICAgaWYgKGlzU2VjdGlvbikge1xuICAgICAgICAgICAgY3VycmVudFNlY3Rpb24gPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICBjdXJyZW50U3ViU2VjdGlvbiA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGNvbnN0IHNlY3Rpb25OYW1lID0gdHJpbW1lZExpbmUuc3Vic3RyaW5nKDEsIHRyaW1tZWRMaW5lLmxlbmd0aCAtIDEpO1xuICAgICAgICAgICAgY29uc3QgbWF0Y2hlcyA9IHByZWZpeEtleVJlZ2V4LmV4ZWMoc2VjdGlvbk5hbWUpO1xuICAgICAgICAgICAgaWYgKG1hdGNoZXMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBbLCBwcmVmaXgsICwgbmFtZV0gPSBtYXRjaGVzO1xuICAgICAgICAgICAgICAgIGlmIChPYmplY3QudmFsdWVzKHR5cGVzLkluaVNlY3Rpb25UeXBlKS5pbmNsdWRlcyhwcmVmaXgpKSB7XG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRTZWN0aW9uID0gW3ByZWZpeCwgbmFtZV0uam9pbihDT05GSUdfUFJFRklYX1NFUEFSQVRPUik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY3VycmVudFNlY3Rpb24gPSBzZWN0aW9uTmFtZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChwcm9maWxlTmFtZUJsb2NrTGlzdC5pbmNsdWRlcyhzZWN0aW9uTmFtZSkpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEZvdW5kIGludmFsaWQgcHJvZmlsZSBuYW1lIFwiJHtzZWN0aW9uTmFtZX1cImApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGN1cnJlbnRTZWN0aW9uKSB7XG4gICAgICAgICAgICBjb25zdCBpbmRleE9mRXF1YWxzU2lnbiA9IHRyaW1tZWRMaW5lLmluZGV4T2YoXCI9XCIpO1xuICAgICAgICAgICAgaWYgKCFbMCwgLTFdLmluY2x1ZGVzKGluZGV4T2ZFcXVhbHNTaWduKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IFtuYW1lLCB2YWx1ZV0gPSBbXG4gICAgICAgICAgICAgICAgICAgIHRyaW1tZWRMaW5lLnN1YnN0cmluZygwLCBpbmRleE9mRXF1YWxzU2lnbikudHJpbSgpLFxuICAgICAgICAgICAgICAgICAgICB0cmltbWVkTGluZS5zdWJzdHJpbmcoaW5kZXhPZkVxdWFsc1NpZ24gKyAxKS50cmltKCksXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT09IFwiXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudFN1YlNlY3Rpb24gPSBuYW1lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRTdWJTZWN0aW9uICYmIGluaUxpbmUudHJpbVN0YXJ0KCkgPT09IGluaUxpbmUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRTdWJTZWN0aW9uID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIG1hcFtjdXJyZW50U2VjdGlvbl0gPSBtYXBbY3VycmVudFNlY3Rpb25dIHx8IHt9O1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBrZXkgPSBjdXJyZW50U3ViU2VjdGlvbiA/IFtjdXJyZW50U3ViU2VjdGlvbiwgbmFtZV0uam9pbihDT05GSUdfUFJFRklYX1NFUEFSQVRPUikgOiBuYW1lO1xuICAgICAgICAgICAgICAgICAgICBtYXBbY3VycmVudFNlY3Rpb25dW2tleV0gPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG1hcDtcbn07XG5cbmNvbnN0IHN3YWxsb3dFcnJvciQxID0gKCkgPT4gKHt9KTtcbmNvbnN0IGxvYWRTaGFyZWRDb25maWdGaWxlcyA9IGFzeW5jIChpbml0ID0ge30pID0+IHtcbiAgICBjb25zdCB7IGZpbGVwYXRoID0gZ2V0Q3JlZGVudGlhbHNGaWxlcGF0aCgpLCBjb25maWdGaWxlcGF0aCA9IGdldENvbmZpZ0ZpbGVwYXRoKCkgfSA9IGluaXQ7XG4gICAgY29uc3QgaG9tZURpciA9IGdldEhvbWVEaXIuZ2V0SG9tZURpcigpO1xuICAgIGNvbnN0IHJlbGF0aXZlSG9tZURpclByZWZpeCA9IFwifi9cIjtcbiAgICBsZXQgcmVzb2x2ZWRGaWxlcGF0aCA9IGZpbGVwYXRoO1xuICAgIGlmIChmaWxlcGF0aC5zdGFydHNXaXRoKHJlbGF0aXZlSG9tZURpclByZWZpeCkpIHtcbiAgICAgICAgcmVzb2x2ZWRGaWxlcGF0aCA9IHBhdGguam9pbihob21lRGlyLCBmaWxlcGF0aC5zbGljZSgyKSk7XG4gICAgfVxuICAgIGxldCByZXNvbHZlZENvbmZpZ0ZpbGVwYXRoID0gY29uZmlnRmlsZXBhdGg7XG4gICAgaWYgKGNvbmZpZ0ZpbGVwYXRoLnN0YXJ0c1dpdGgocmVsYXRpdmVIb21lRGlyUHJlZml4KSkge1xuICAgICAgICByZXNvbHZlZENvbmZpZ0ZpbGVwYXRoID0gcGF0aC5qb2luKGhvbWVEaXIsIGNvbmZpZ0ZpbGVwYXRoLnNsaWNlKDIpKTtcbiAgICB9XG4gICAgY29uc3QgcGFyc2VkRmlsZXMgPSBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICAgIHJlYWRGaWxlLnJlYWRGaWxlKHJlc29sdmVkQ29uZmlnRmlsZXBhdGgsIHtcbiAgICAgICAgICAgIGlnbm9yZUNhY2hlOiBpbml0Lmlnbm9yZUNhY2hlLFxuICAgICAgICB9KVxuICAgICAgICAgICAgLnRoZW4ocGFyc2VJbmkpXG4gICAgICAgICAgICAudGhlbihnZXRDb25maWdEYXRhKVxuICAgICAgICAgICAgLmNhdGNoKHN3YWxsb3dFcnJvciQxKSxcbiAgICAgICAgcmVhZEZpbGUucmVhZEZpbGUocmVzb2x2ZWRGaWxlcGF0aCwge1xuICAgICAgICAgICAgaWdub3JlQ2FjaGU6IGluaXQuaWdub3JlQ2FjaGUsXG4gICAgICAgIH0pXG4gICAgICAgICAgICAudGhlbihwYXJzZUluaSlcbiAgICAgICAgICAgIC5jYXRjaChzd2FsbG93RXJyb3IkMSksXG4gICAgXSk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgY29uZmlnRmlsZTogcGFyc2VkRmlsZXNbMF0sXG4gICAgICAgIGNyZWRlbnRpYWxzRmlsZTogcGFyc2VkRmlsZXNbMV0sXG4gICAgfTtcbn07XG5cbmNvbnN0IGdldFNzb1Nlc3Npb25EYXRhID0gKGRhdGEpID0+IE9iamVjdC5lbnRyaWVzKGRhdGEpXG4gICAgLmZpbHRlcigoW2tleV0pID0+IGtleS5zdGFydHNXaXRoKHR5cGVzLkluaVNlY3Rpb25UeXBlLlNTT19TRVNTSU9OICsgQ09ORklHX1BSRUZJWF9TRVBBUkFUT1IpKVxuICAgIC5yZWR1Y2UoKGFjYywgW2tleSwgdmFsdWVdKSA9PiAoeyAuLi5hY2MsIFtrZXkuc3Vic3RyaW5nKGtleS5pbmRleE9mKENPTkZJR19QUkVGSVhfU0VQQVJBVE9SKSArIDEpXTogdmFsdWUgfSksIHt9KTtcblxuY29uc3Qgc3dhbGxvd0Vycm9yID0gKCkgPT4gKHt9KTtcbmNvbnN0IGxvYWRTc29TZXNzaW9uRGF0YSA9IGFzeW5jIChpbml0ID0ge30pID0+IHJlYWRGaWxlLnJlYWRGaWxlKGluaXQuY29uZmlnRmlsZXBhdGggPz8gZ2V0Q29uZmlnRmlsZXBhdGgoKSlcbiAgICAudGhlbihwYXJzZUluaSlcbiAgICAudGhlbihnZXRTc29TZXNzaW9uRGF0YSlcbiAgICAuY2F0Y2goc3dhbGxvd0Vycm9yKTtcblxuY29uc3QgbWVyZ2VDb25maWdGaWxlcyA9ICguLi5maWxlcykgPT4ge1xuICAgIGNvbnN0IG1lcmdlZCA9IHt9O1xuICAgIGZvciAoY29uc3QgZmlsZSBvZiBmaWxlcykge1xuICAgICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlc10gb2YgT2JqZWN0LmVudHJpZXMoZmlsZSkpIHtcbiAgICAgICAgICAgIGlmIChtZXJnZWRba2V5XSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihtZXJnZWRba2V5XSwgdmFsdWVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIG1lcmdlZFtrZXldID0gdmFsdWVzO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBtZXJnZWQ7XG59O1xuXG5jb25zdCBwYXJzZUtub3duRmlsZXMgPSBhc3luYyAoaW5pdCkgPT4ge1xuICAgIGNvbnN0IHBhcnNlZEZpbGVzID0gYXdhaXQgbG9hZFNoYXJlZENvbmZpZ0ZpbGVzKGluaXQpO1xuICAgIHJldHVybiBtZXJnZUNvbmZpZ0ZpbGVzKHBhcnNlZEZpbGVzLmNvbmZpZ0ZpbGUsIHBhcnNlZEZpbGVzLmNyZWRlbnRpYWxzRmlsZSk7XG59O1xuXG5jb25zdCBleHRlcm5hbERhdGFJbnRlcmNlcHRvciA9IHtcbiAgICBnZXRGaWxlUmVjb3JkKCkge1xuICAgICAgICByZXR1cm4gcmVhZEZpbGUuZmlsZUludGVyY2VwdDtcbiAgICB9LFxuICAgIGludGVyY2VwdEZpbGUocGF0aCwgY29udGVudHMpIHtcbiAgICAgICAgcmVhZEZpbGUuZmlsZUludGVyY2VwdFtwYXRoXSA9IFByb21pc2UucmVzb2x2ZShjb250ZW50cyk7XG4gICAgfSxcbiAgICBnZXRUb2tlblJlY29yZCgpIHtcbiAgICAgICAgcmV0dXJuIGdldFNTT1Rva2VuRnJvbUZpbGUudG9rZW5JbnRlcmNlcHQ7XG4gICAgfSxcbiAgICBpbnRlcmNlcHRUb2tlbihpZCwgY29udGVudHMpIHtcbiAgICAgICAgZ2V0U1NPVG9rZW5Gcm9tRmlsZS50b2tlbkludGVyY2VwdFtpZF0gPSBjb250ZW50cztcbiAgICB9LFxufTtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiZ2V0U1NPVG9rZW5Gcm9tRmlsZVwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIGdldFNTT1Rva2VuRnJvbUZpbGUuZ2V0U1NPVG9rZW5Gcm9tRmlsZTsgfVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJyZWFkRmlsZVwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHJlYWRGaWxlLnJlYWRGaWxlOyB9XG59KTtcbmV4cG9ydHMuQ09ORklHX1BSRUZJWF9TRVBBUkFUT1IgPSBDT05GSUdfUFJFRklYX1NFUEFSQVRPUjtcbmV4cG9ydHMuREVGQVVMVF9QUk9GSUxFID0gREVGQVVMVF9QUk9GSUxFO1xuZXhwb3J0cy5FTlZfUFJPRklMRSA9IEVOVl9QUk9GSUxFO1xuZXhwb3J0cy5leHRlcm5hbERhdGFJbnRlcmNlcHRvciA9IGV4dGVybmFsRGF0YUludGVyY2VwdG9yO1xuZXhwb3J0cy5nZXRQcm9maWxlTmFtZSA9IGdldFByb2ZpbGVOYW1lO1xuZXhwb3J0cy5sb2FkU2hhcmVkQ29uZmlnRmlsZXMgPSBsb2FkU2hhcmVkQ29uZmlnRmlsZXM7XG5leHBvcnRzLmxvYWRTc29TZXNzaW9uRGF0YSA9IGxvYWRTc29TZXNzaW9uRGF0YTtcbmV4cG9ydHMucGFyc2VLbm93bkZpbGVzID0gcGFyc2VLbm93bkZpbGVzO1xuT2JqZWN0LmtleXMoZ2V0SG9tZURpcikuZm9yRWFjaChmdW5jdGlvbiAoaykge1xuICAgIGlmIChrICE9PSAnZGVmYXVsdCcgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChleHBvcnRzLCBrKSkgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIGssIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBnZXRIb21lRGlyW2tdOyB9XG4gICAgfSk7XG59KTtcbk9iamVjdC5rZXlzKGdldFNTT1Rva2VuRmlsZXBhdGgpLmZvckVhY2goZnVuY3Rpb24gKGspIHtcbiAgICBpZiAoayAhPT0gJ2RlZmF1bHQnICYmICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZXhwb3J0cywgaykpIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBrLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gZ2V0U1NPVG9rZW5GaWxlcGF0aFtrXTsgfVxuICAgIH0pO1xufSk7XG4iCiAgXSwKICAibWFwcGluZ3MiOiAiNEdBQ0EsQ0FBTyxlQUFlLEVBQVMsYUFBYyxDQUFFLE1BQU8sRUFBSyxDQUFDLEVBQ3BELGFBQWtCLE9BQzFCLElBQU0sVUFDQSxZQUNBLEVBQWUsQ0FBQyxFQUNoQixFQUFxQixJQUFNLENBQzdCLEdBQUksU0FBVyxRQUFRLFFBQ25CLE1BQU8sR0FBRyxRQUFRLFFBQVEsSUFFOUIsTUFBTyxXQUVMLEVBQWEsSUFBTSxDQUNyQixJQUFRLE9BQU0sY0FBYSxXQUFVLFlBQVksS0FBSyxFQUFPLE9BQVUsUUFBUSxJQUMvRSxHQUFJLEVBQ0EsT0FBTyxFQUNYLEdBQUksRUFDQSxPQUFPLEVBQ1gsR0FBSSxFQUNBLE1BQU8sR0FBRyxJQUFZLElBQzFCLElBQU0sRUFBa0IsRUFBbUIsRUFDM0MsR0FBSSxDQUFDLEVBQWEsR0FDZCxFQUFhLElBQW9CLEVBQUcsRUFBSyxTQUFTLEVBQ3RELE9BQU8sRUFBYSxJQUVoQixhQUFhLGtCQ3hCckIsT0FBTyxlQUFlLEVBQVMsYUFBYyxDQUFFLE1BQU8sRUFBSyxDQUFDLEVBQ3BELHNCQUEyQixPQUNuQyxJQUFNLGNBQ0EsWUFDQSxNQUNBLEVBQXNCLENBQUMsSUFBTyxDQUVoQyxJQUFNLEdBRFUsRUFBRyxFQUFTLFlBQVksTUFBTSxFQUNyQixPQUFPLENBQUUsRUFBRSxPQUFPLEtBQUssRUFDaEQsT0FBUSxFQUFHLEVBQU8sT0FBTyxFQUFHLEVBQWEsWUFBWSxFQUFHLE9BQVEsTUFBTyxRQUFTLEdBQUcsUUFBZ0IsR0FFL0Ysc0JBQXNCLGtCQ1Y5QixPQUFPLGVBQWUsRUFBUyxhQUFjLENBQUUsTUFBTyxFQUFLLENBQUMsRUFDcEQsc0JBQThCLGlCQUFzQixPQUM1RCxJQUFNLG1CQUNBLE1BQ0UsaUJBQWlCLENBQUMsRUFDMUIsSUFBTSxFQUFzQixNQUFPLElBQU8s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QixjQUFjLEVBQ2QsMEJBQTBCLEdBQzFCLGlCQUFpQixHQUNqQix3QkFBd0IsRUFDeEIscUJBQXFCLEdBQ3JCLGtCQUFrQixHQUMxQixPQUFPLEtBQUssQ0FBVSxFQUFFLFFBQVEsUUFBUyxDQUFDLEVBQUcsQ0FDekMsR0FBSSxJQUFNLFdBQWEsQ0FBQyxPQUFPLFVBQVUsZUFBZSxLQUFLLEVBQVMsQ0FBQyxFQUFHLE9BQU8sZUFBZSxFQUFTLEVBQUcsQ0FDeEcsV0FBWSxHQUNaLElBQUssUUFBUyxFQUFHLENBQUUsT0FBTyxFQUFXLEdBQ3pDLENBQUMsRUFDSixFQUNELE9BQU8sS0FBSyxDQUFtQixFQUFFLFFBQVEsUUFBUyxDQUFDLEVBQUcsQ0FDbEQsR0FBSSxJQUFNLFdBQWEsQ0FBQyxPQUFPLFVBQVUsZUFBZSxLQUFLLEVBQVMsQ0FBQyxFQUFHLE9BQU8sZUFBZSxFQUFTLEVBQUcsQ0FDeEcsV0FBWSxHQUNaLElBQUssUUFBUyxFQUFHLENBQUUsT0FBTyxFQUFvQixHQUNsRCxDQUFDLEVBQ0oiLAogICJkZWJ1Z0lkIjogIkE4MjdGQkQ3ODNEMTM3ODI2NDc1NkUyMTY0NzU2RTIxIiwKICAibmFtZXMiOiBbXQp9
@@ -1,4 +0,0 @@
1
- import{a as S}from"./chunk-dyyrwzgp.js";import"./chunk-ggeka6d3.js";import"./chunk-p85vag28.js";import"./chunk-dkk1zwm0.js";import{y as k}from"./chunk-r8mj3nq7.js";import"./chunk-fbbbv2d4.js";import"./chunk-ekwpcdh4.js";import"./chunk-whenq5kz.js";import"./chunk-kvnavsh3.js";import{R as A}from"./chunk-t5j8kj9p.js";import{S as w}from"./chunk-4pkw7jk4.js";import{U as a,W as I}from"./chunk-e9mt878v.js";var l=a((c)=>{var g=c&&c.__createBinding||(Object.create?function(e,r,o,n){if(n===void 0)n=o;var t=Object.getOwnPropertyDescriptor(r,o);if(!t||("get"in t?!r.__esModule:t.writable||t.configurable))t={enumerable:!0,get:function(){return r[o]}};Object.defineProperty(e,n,t)}:function(e,r,o,n){if(n===void 0)n=o;e[n]=r[o]}),m=c&&c.__setModuleDefault||(Object.create?function(e,r){Object.defineProperty(e,"default",{enumerable:!0,value:r})}:function(e,r){e.default=r}),v=c&&c.__importStar||function(){var e=function(r){return e=Object.getOwnPropertyNames||function(o){var n=[];for(var t in o)if(Object.prototype.hasOwnProperty.call(o,t))n[n.length]=t;return n},e(r)};return function(r){if(r&&r.__esModule)return r;var o={};if(r!=null){for(var n=e(r),t=0;t<n.length;t++)if(n[t]!=="default")g(o,r,n[t])}return m(o,r),o}}();Object.defineProperty(c,"__esModule",{value:!0});c.fromWebToken=void 0;var F=(e)=>async(r)=>{e.logger?.debug("@aws-sdk/credential-provider-web-identity - fromWebToken");let{roleArn:o,roleSessionName:n,webIdentityToken:t,providerId:s,policyArns:O,policy:b,durationSeconds:N}=e,{roleAssumerWithWebIdentity:_}=e;if(!_){let{getDefaultRoleAssumerWithWebIdentity:y}=await Promise.resolve().then(()=>v(S()));_=y({...e.clientConfig,credentialProviderLogger:e.logger,parentClientConfig:{...r?.callerClientConfig,...e.parentClientConfig}},e.clientPlugins)}return _({RoleArn:o,RoleSessionName:n??`aws-sdk-js-session-${Date.now()}`,WebIdentityToken:t,ProviderId:s,PolicyArns:O,Policy:b,DurationSeconds:N})};c.fromWebToken=F});var E=a((f)=>{Object.defineProperty(f,"__esModule",{value:!0});f.fromTokenFile=void 0;var R=A(),j=w(),q=k(),L=I("fs"),W=l(),d="AWS_WEB_IDENTITY_TOKEN_FILE",h="AWS_ROLE_ARN",P="AWS_ROLE_SESSION_NAME",V=(e={})=>async(r)=>{e.logger?.debug("@aws-sdk/credential-provider-web-identity - fromTokenFile");let o=e?.webIdentityTokenFile??process.env[d],n=e?.roleArn??process.env[h],t=e?.roleSessionName??process.env[P];if(!o||!n)throw new j.CredentialsProviderError("Web identity configuration not specified",{logger:e.logger});let s=await(0,W.fromWebToken)({...e,webIdentityToken:q.externalDataInterceptor?.getTokenRecord?.()[o]??(0,L.readFileSync)(o,{encoding:"ascii"}),roleArn:n,roleSessionName:t})(r);if(o===process.env[d])(0,R.setCredentialFeature)(s,"CREDENTIALS_ENV_VARS_STS_WEB_ID_TOKEN","h");return s};f.fromTokenFile=V});var x=a((i)=>{var p=E(),T=l();Object.keys(p).forEach(function(e){if(e!=="default"&&!Object.prototype.hasOwnProperty.call(i,e))Object.defineProperty(i,e,{enumerable:!0,get:function(){return p[e]}})});Object.keys(T).forEach(function(e){if(e!=="default"&&!Object.prototype.hasOwnProperty.call(i,e))Object.defineProperty(i,e,{enumerable:!0,get:function(){return T[e]}})})});export default x();
2
-
3
- //# debugId=7FF4C52F9E9E489664756E2164756E21
4
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXItd2ViLWlkZW50aXR5L2Rpc3QtY2pzL2Zyb21XZWJUb2tlbi5qcyIsICIuLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci13ZWItaWRlbnRpdHkvZGlzdC1janMvZnJvbVRva2VuRmlsZS5qcyIsICIuLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci13ZWItaWRlbnRpdHkvZGlzdC1janMvaW5kZXguanMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbCiAgICAiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19jcmVhdGVCaW5kaW5nID0gKHRoaXMgJiYgdGhpcy5fX2NyZWF0ZUJpbmRpbmcpIHx8IChPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcbiAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwgayk7XG4gICAgaWYgKCFkZXNjIHx8IChcImdldFwiIGluIGRlc2MgPyAhbS5fX2VzTW9kdWxlIDogZGVzYy53cml0YWJsZSB8fCBkZXNjLmNvbmZpZ3VyYWJsZSkpIHtcbiAgICAgIGRlc2MgPSB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7IHJldHVybiBtW2tdOyB9IH07XG4gICAgfVxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBrMiwgZGVzYyk7XG59KSA6IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XG4gICAgb1trMl0gPSBtW2tdO1xufSkpO1xudmFyIF9fc2V0TW9kdWxlRGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19zZXRNb2R1bGVEZWZhdWx0KSB8fCAoT2JqZWN0LmNyZWF0ZSA/IChmdW5jdGlvbihvLCB2KSB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIFwiZGVmYXVsdFwiLCB7IGVudW1lcmFibGU6IHRydWUsIHZhbHVlOiB2IH0pO1xufSkgOiBmdW5jdGlvbihvLCB2KSB7XG4gICAgb1tcImRlZmF1bHRcIl0gPSB2O1xufSk7XG52YXIgX19pbXBvcnRTdGFyID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydFN0YXIpIHx8IChmdW5jdGlvbiAoKSB7XG4gICAgdmFyIG93bktleXMgPSBmdW5jdGlvbihvKSB7XG4gICAgICAgIG93bktleXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyB8fCBmdW5jdGlvbiAobykge1xuICAgICAgICAgICAgdmFyIGFyID0gW107XG4gICAgICAgICAgICBmb3IgKHZhciBrIGluIG8pIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobywgaykpIGFyW2FyLmxlbmd0aF0gPSBrO1xuICAgICAgICAgICAgcmV0dXJuIGFyO1xuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gb3duS2V5cyhvKTtcbiAgICB9O1xuICAgIHJldHVybiBmdW5jdGlvbiAobW9kKSB7XG4gICAgICAgIGlmIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpIHJldHVybiBtb2Q7XG4gICAgICAgIHZhciByZXN1bHQgPSB7fTtcbiAgICAgICAgaWYgKG1vZCAhPSBudWxsKSBmb3IgKHZhciBrID0gb3duS2V5cyhtb2QpLCBpID0gMDsgaSA8IGsubGVuZ3RoOyBpKyspIGlmIChrW2ldICE9PSBcImRlZmF1bHRcIikgX19jcmVhdGVCaW5kaW5nKHJlc3VsdCwgbW9kLCBrW2ldKTtcbiAgICAgICAgX19zZXRNb2R1bGVEZWZhdWx0KHJlc3VsdCwgbW9kKTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9O1xufSkoKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuZnJvbVdlYlRva2VuID0gdm9pZCAwO1xuY29uc3QgZnJvbVdlYlRva2VuID0gKGluaXQpID0+IGFzeW5jIChhd3NJZGVudGl0eVByb3BlcnRpZXMpID0+IHtcbiAgICBpbml0LmxvZ2dlcj8uZGVidWcoXCJAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVyLXdlYi1pZGVudGl0eSAtIGZyb21XZWJUb2tlblwiKTtcbiAgICBjb25zdCB7IHJvbGVBcm4sIHJvbGVTZXNzaW9uTmFtZSwgd2ViSWRlbnRpdHlUb2tlbiwgcHJvdmlkZXJJZCwgcG9saWN5QXJucywgcG9saWN5LCBkdXJhdGlvblNlY29uZHMgfSA9IGluaXQ7XG4gICAgbGV0IHsgcm9sZUFzc3VtZXJXaXRoV2ViSWRlbnRpdHkgfSA9IGluaXQ7XG4gICAgaWYgKCFyb2xlQXNzdW1lcldpdGhXZWJJZGVudGl0eSkge1xuICAgICAgICBjb25zdCB7IGdldERlZmF1bHRSb2xlQXNzdW1lcldpdGhXZWJJZGVudGl0eSB9ID0gYXdhaXQgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiBfX2ltcG9ydFN0YXIocmVxdWlyZShcIkBhd3Mtc2RrL25lc3RlZC1jbGllbnRzL3N0c1wiKSkpO1xuICAgICAgICByb2xlQXNzdW1lcldpdGhXZWJJZGVudGl0eSA9IGdldERlZmF1bHRSb2xlQXNzdW1lcldpdGhXZWJJZGVudGl0eSh7XG4gICAgICAgICAgICAuLi5pbml0LmNsaWVudENvbmZpZyxcbiAgICAgICAgICAgIGNyZWRlbnRpYWxQcm92aWRlckxvZ2dlcjogaW5pdC5sb2dnZXIsXG4gICAgICAgICAgICBwYXJlbnRDbGllbnRDb25maWc6IHtcbiAgICAgICAgICAgICAgICAuLi5hd3NJZGVudGl0eVByb3BlcnRpZXM/LmNhbGxlckNsaWVudENvbmZpZyxcbiAgICAgICAgICAgICAgICAuLi5pbml0LnBhcmVudENsaWVudENvbmZpZyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sIGluaXQuY2xpZW50UGx1Z2lucyk7XG4gICAgfVxuICAgIHJldHVybiByb2xlQXNzdW1lcldpdGhXZWJJZGVudGl0eSh7XG4gICAgICAgIFJvbGVBcm46IHJvbGVBcm4sXG4gICAgICAgIFJvbGVTZXNzaW9uTmFtZTogcm9sZVNlc3Npb25OYW1lID8/IGBhd3Mtc2RrLWpzLXNlc3Npb24tJHtEYXRlLm5vdygpfWAsXG4gICAgICAgIFdlYklkZW50aXR5VG9rZW46IHdlYklkZW50aXR5VG9rZW4sXG4gICAgICAgIFByb3ZpZGVySWQ6IHByb3ZpZGVySWQsXG4gICAgICAgIFBvbGljeUFybnM6IHBvbGljeUFybnMsXG4gICAgICAgIFBvbGljeTogcG9saWN5LFxuICAgICAgICBEdXJhdGlvblNlY29uZHM6IGR1cmF0aW9uU2Vjb25kcyxcbiAgICB9KTtcbn07XG5leHBvcnRzLmZyb21XZWJUb2tlbiA9IGZyb21XZWJUb2tlbjtcbiIsCiAgICAiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmZyb21Ub2tlbkZpbGUgPSB2b2lkIDA7XG5jb25zdCBjbGllbnRfMSA9IHJlcXVpcmUoXCJAYXdzLXNkay9jb3JlL2NsaWVudFwiKTtcbmNvbnN0IHByb3BlcnR5X3Byb3ZpZGVyXzEgPSByZXF1aXJlKFwiQHNtaXRoeS9wcm9wZXJ0eS1wcm92aWRlclwiKTtcbmNvbnN0IHNoYXJlZF9pbmlfZmlsZV9sb2FkZXJfMSA9IHJlcXVpcmUoXCJAc21pdGh5L3NoYXJlZC1pbmktZmlsZS1sb2FkZXJcIik7XG5jb25zdCBmc18xID0gcmVxdWlyZShcImZzXCIpO1xuY29uc3QgZnJvbVdlYlRva2VuXzEgPSByZXF1aXJlKFwiLi9mcm9tV2ViVG9rZW5cIik7XG5jb25zdCBFTlZfVE9LRU5fRklMRSA9IFwiQVdTX1dFQl9JREVOVElUWV9UT0tFTl9GSUxFXCI7XG5jb25zdCBFTlZfUk9MRV9BUk4gPSBcIkFXU19ST0xFX0FSTlwiO1xuY29uc3QgRU5WX1JPTEVfU0VTU0lPTl9OQU1FID0gXCJBV1NfUk9MRV9TRVNTSU9OX05BTUVcIjtcbmNvbnN0IGZyb21Ub2tlbkZpbGUgPSAoaW5pdCA9IHt9KSA9PiBhc3luYyAoYXdzSWRlbnRpdHlQcm9wZXJ0aWVzKSA9PiB7XG4gICAgaW5pdC5sb2dnZXI/LmRlYnVnKFwiQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlci13ZWItaWRlbnRpdHkgLSBmcm9tVG9rZW5GaWxlXCIpO1xuICAgIGNvbnN0IHdlYklkZW50aXR5VG9rZW5GaWxlID0gaW5pdD8ud2ViSWRlbnRpdHlUb2tlbkZpbGUgPz8gcHJvY2Vzcy5lbnZbRU5WX1RPS0VOX0ZJTEVdO1xuICAgIGNvbnN0IHJvbGVBcm4gPSBpbml0Py5yb2xlQXJuID8/IHByb2Nlc3MuZW52W0VOVl9ST0xFX0FSTl07XG4gICAgY29uc3Qgcm9sZVNlc3Npb25OYW1lID0gaW5pdD8ucm9sZVNlc3Npb25OYW1lID8/IHByb2Nlc3MuZW52W0VOVl9ST0xFX1NFU1NJT05fTkFNRV07XG4gICAgaWYgKCF3ZWJJZGVudGl0eVRva2VuRmlsZSB8fCAhcm9sZUFybikge1xuICAgICAgICB0aHJvdyBuZXcgcHJvcGVydHlfcHJvdmlkZXJfMS5DcmVkZW50aWFsc1Byb3ZpZGVyRXJyb3IoXCJXZWIgaWRlbnRpdHkgY29uZmlndXJhdGlvbiBub3Qgc3BlY2lmaWVkXCIsIHtcbiAgICAgICAgICAgIGxvZ2dlcjogaW5pdC5sb2dnZXIsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCBjcmVkZW50aWFscyA9IGF3YWl0ICgwLCBmcm9tV2ViVG9rZW5fMS5mcm9tV2ViVG9rZW4pKHtcbiAgICAgICAgLi4uaW5pdCxcbiAgICAgICAgd2ViSWRlbnRpdHlUb2tlbjogc2hhcmVkX2luaV9maWxlX2xvYWRlcl8xLmV4dGVybmFsRGF0YUludGVyY2VwdG9yPy5nZXRUb2tlblJlY29yZD8uKClbd2ViSWRlbnRpdHlUb2tlbkZpbGVdID8/XG4gICAgICAgICAgICAoMCwgZnNfMS5yZWFkRmlsZVN5bmMpKHdlYklkZW50aXR5VG9rZW5GaWxlLCB7IGVuY29kaW5nOiBcImFzY2lpXCIgfSksXG4gICAgICAgIHJvbGVBcm4sXG4gICAgICAgIHJvbGVTZXNzaW9uTmFtZSxcbiAgICB9KShhd3NJZGVudGl0eVByb3BlcnRpZXMpO1xuICAgIGlmICh3ZWJJZGVudGl0eVRva2VuRmlsZSA9PT0gcHJvY2Vzcy5lbnZbRU5WX1RPS0VOX0ZJTEVdKSB7XG4gICAgICAgICgwLCBjbGllbnRfMS5zZXRDcmVkZW50aWFsRmVhdHVyZSkoY3JlZGVudGlhbHMsIFwiQ1JFREVOVElBTFNfRU5WX1ZBUlNfU1RTX1dFQl9JRF9UT0tFTlwiLCBcImhcIik7XG4gICAgfVxuICAgIHJldHVybiBjcmVkZW50aWFscztcbn07XG5leHBvcnRzLmZyb21Ub2tlbkZpbGUgPSBmcm9tVG9rZW5GaWxlO1xuIiwKICAgICIndXNlIHN0cmljdCc7XG5cbnZhciBmcm9tVG9rZW5GaWxlID0gcmVxdWlyZSgnLi9mcm9tVG9rZW5GaWxlJyk7XG52YXIgZnJvbVdlYlRva2VuID0gcmVxdWlyZSgnLi9mcm9tV2ViVG9rZW4nKTtcblxuXG5cbk9iamVjdC5rZXlzKGZyb21Ub2tlbkZpbGUpLmZvckVhY2goZnVuY3Rpb24gKGspIHtcblx0aWYgKGsgIT09ICdkZWZhdWx0JyAmJiAhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGV4cG9ydHMsIGspKSBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgaywge1xuXHRcdGVudW1lcmFibGU6IHRydWUsXG5cdFx0Z2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBmcm9tVG9rZW5GaWxlW2tdOyB9XG5cdH0pO1xufSk7XG5PYmplY3Qua2V5cyhmcm9tV2ViVG9rZW4pLmZvckVhY2goZnVuY3Rpb24gKGspIHtcblx0aWYgKGsgIT09ICdkZWZhdWx0JyAmJiAhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGV4cG9ydHMsIGspKSBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgaywge1xuXHRcdGVudW1lcmFibGU6IHRydWUsXG5cdFx0Z2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBmcm9tV2ViVG9rZW5ba107IH1cblx0fSk7XG59KTtcbiIKICBdLAogICJtYXBwaW5ncyI6ICJtZUFDQSxGQUFJLEpBQW1CLEhBQVEsSkFBSyxZQUFxQixDQUFPLENBQVUsRUFBUSxMQUFDLEpBQUcsSkFBRyxFQUFHLEVBQUksQ0FDNUYsR0FBSSxJQUFPLE9BQVcsRUFBSyxFQUMzQixJQUFJLEVBQU8sT0FBTyx5QkFBeUIsRUFBRyxDQUFDLEVBQy9DLEdBQUksQ0FBQyxJQUFTLFFBQVMsRUFBTyxDQUFDLEVBQUUsV0FBYSxFQUFLLFVBQVksRUFBSyxjQUNsRSxFQUFPLENBQUUsV0FBWSxHQUFNLElBQUssUUFBUSxFQUFHLENBQUUsT0FBTyxFQUFFLEdBQU0sRUFFOUQsT0FBTyxlQUFlLEVBQUcsRUFBSSxDQUFJLEdBQy9CLFFBQVEsQ0FBQyxFQUFHLEVBQUcsRUFBRyxFQUFJLENBQ3hCLEdBQUksSUFBTyxPQUFXLEVBQUssRUFDM0IsRUFBRSxHQUFNLEVBQUUsS0FFVixFQUFzQixHQUFRLEVBQUsscUJBQXdCLE9BQU8sT0FBVSxRQUFRLENBQUMsRUFBRyxFQUFHLENBQzNGLE9BQU8sZUFBZSxFQUFHLFVBQVcsQ0FBRSxXQUFZLEdBQU0sTUFBTyxDQUFFLENBQUMsR0FDakUsUUFBUSxDQUFDLEVBQUcsRUFBRyxDQUNoQixFQUFFLFFBQWEsSUFFZixFQUFnQixHQUFRLEVBQUssY0FBa0IsUUFBUyxFQUFHLENBQzNELElBQUksRUFBVSxRQUFRLENBQUMsRUFBRyxDQU10QixPQUxBLEVBQVUsT0FBTyxxQkFBdUIsUUFBUyxDQUFDLEVBQUcsQ0FDakQsSUFBSSxFQUFLLENBQUMsRUFDVixRQUFTLEtBQUssRUFBRyxHQUFJLE9BQU8sVUFBVSxlQUFlLEtBQUssRUFBRyxDQUFDLEVBQUcsRUFBRyxFQUFHLFFBQVUsRUFDakYsT0FBTyxHQUVKLEVBQVEsQ0FBQyxHQUVwQixPQUFPLFFBQVMs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
@@ -1,4 +0,0 @@
1
- import{b as cr}from"./chunk-ggeka6d3.js";import{c as hr,d as Ar,e as jr,f as ie,g as ar,h as or,j as k,k as Tr,l as Oe,m as $r,n as xr,o as Sr,p as be,q as Gr,r as kr,s as Lr,t as qr,u as zr,v as Cr}from"./chunk-p85vag28.js";import{w as Ir,x as Mr}from"./chunk-dkk1zwm0.js";import"./chunk-r8mj3nq7.js";import{A as Dr,C as wr,F as fr,G as _r,K as w,z as xe}from"./chunk-fbbbv2d4.js";import{L as Kr}from"./chunk-ekwpcdh4.js";import{O as yr}from"./chunk-whenq5kz.js";import"./chunk-kvnavsh3.js";import"./chunk-t5j8kj9p.js";import"./chunk-4pkw7jk4.js";import{U as v}from"./chunk-e9mt878v.js";var L=v((h)=>{Object.defineProperty(h,"__esModule",{value:!0});h.resolveHttpAuthSchemeConfig=h.defaultSigninHttpAuthSchemeProvider=h.defaultSigninHttpAuthSchemeParametersProvider=void 0;var Ce=k(),G=xe(),me=async(e,r,s)=>{return{operation:(0,G.getSmithyContext)(r).operation,region:await(0,G.normalizeProvider)(e.region)()||(()=>{throw Error("expected `region` to be configured for `aws.auth#sigv4`")})()}};h.defaultSigninHttpAuthSchemeParametersProvider=me;function er(e){return{schemeId:"aws.auth#sigv4",signingProperties:{name:"signin",region:e.region},propertiesExtractor:(r,s)=>({signingProperties:{config:r,context:s}})}}function rr(e){return{schemeId:"smithy.api#noAuth"}}var sr=(e)=>{let r=[];switch(e.operation){case"CreateOAuth2Token":{r.push(rr(e));break}default:r.push(er(e))}return r};h.defaultSigninHttpAuthSchemeProvider=sr;var tr=(e)=>{let r=(0,Ce.resolveAwsSdkSigV4Config)(e);return Object.assign(r,{authSchemePreference:(0,G.normalizeProvider)(e.authSchemePreference??[])})};h.resolveHttpAuthSchemeConfig=tr});var de=v((se)=>{Object.defineProperty(se,"__esModule",{value:!0});se.ruleSet=void 0;var re="required",d="fn",u="argv",n="ref",j=!0,f="isSet",I="booleanEquals",O="error",P="endpoint",i="tree",R="PartitionResult",z="stringEquals",T={[re]:!0,default:!1,type:"boolean"},$={[re]:!1,type:"string"},x={[n]:"Endpoint"},H={[d]:I,[u]:[{[n]:"UseFIPS"},!0]},W={[d]:I,[u]:[{[n]:"UseDualStack"},!0]},t={},Y={[d]:"getAttr",[u]:[{[n]:R},"name"]},N={[d]:I,[u]:[{[n]:"UseFIPS"},!1]},U={[d]:I,[u]:[{[n]:"UseDualStack"},!1]},C={[d]:"getAttr",[u]:[{[n]:R},"supportsFIPS"]},m={[d]:I,[u]:[!0,{[d]:"getAttr",[u]:[{[n]:R},"supportsDualStack"]}]},ee=[{[n]:"Region"}],lr={version:"1.0",parameters:{UseDualStack:T,UseFIPS:T,Endpoint:$,Region:$},rules:[{conditions:[{[d]:f,[u]:[x]}],rules:[{conditions:[H],error:"Invalid Configuration: FIPS and custom endpoint are not supported",type:O},{rules:[{conditions:[W],error:"Invalid Configuration: Dualstack and custom endpoint are not supported",type:O},{endpoint:{url:x,properties:t,headers:t},type:P}],type:i}],type:i},{rules:[{conditions:[{[d]:f,[u]:ee}],rules:[{conditions:[{[d]:"aws.partition",[u]:ee,assign:R}],rules:[{conditions:[{[d]:z,[u]:[Y,"aws"]},N,U],endpoint:{url:"https://{Region}.signin.aws.amazon.com",properties:t,headers:t},type:P},{conditions:[{[d]:z,[u]:[Y,"aws-cn"]},N,U],endpoint:{url:"https://{Region}.signin.amazonaws.cn",properties:t,headers:t},type:P},{conditions:[{[d]:z,[u]:[Y,"aws-us-gov"]},N,U],endpoint:{url:"https://{Region}.signin.amazonaws-us-gov.com",properties:t,headers:t},type:P},{conditions:[H,W],rules:[{conditions:[{[d]:I,[u]:[j,C]},m],rules:[{endpoint:{url:"https://signin-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:t,headers:t},type:P}],type:i},{error:"FIPS and DualStack are enabled, but this partition does not support one or both",type:O}],type:i},{conditions:[H,U],rules:[{conditions:[{[d]:I,[u]:[C,j]}],rules:[{endpoint:{url:"https://signin-fips.{Region}.{PartitionResult#dnsSuffix}",properties:t,headers:t},type:P}],type:i},{error:"FIPS is enabled but this partition does not support FIPS",type:O}],type:i},{conditions:[N,W],rules:[{conditions:[m],rules:[{endpoint:{url:"https://signin.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:t,headers:t},type:P}],type:i},{error:"DualStack is enabled but this partition does not support DualStack",type:O}],type:i},{endpoint:{url:"https://signin.{Region}.{PartitionResult#dnsSuffix}",properties:t,headers:t},type:P}],type:i}],type:i},{error:"Invalid Configuration: Missing Region",type:O}],type:i}]};se.ruleSet=lr});var ae=v((ue)=>{Object.defineProperty(ue,"__esModule",{value:!0});ue.defaultEndpointResolver=void 0;var pr=or(),J=ar(),ir=de(),nr=new J.EndpointCache({size:50,params:["Endpoint","Region","UseDualStack","UseFIPS"]}),Pr=(e,r={})=>{return nr.get(e,()=>(0,J.resolveEndpoint)(ir.ruleSet,{endpointParams:e,logger:r.logger}))};ue.defaultEndpointResolver=Pr;J.customEndpointFunctions.aws=pr.awsEndpointFunctions});var ye=v((ne)=>{Object.defineProperty(ne,"__esModule",{value:!0});ne.getRuntimeConfig=void 0;var vr=k(),Or=qr(),br=ie(),Fr=w(),Er=Ir(),oe=Dr(),pe=yr(),Nr=L(),Ur=ae(),Rr=(e)=>{return{apiVersion:"2023-01-01",base64Decoder:e?.base64Decoder??oe.fromBase64,base64Encoder:e?.base64Encoder??oe.toBase64,disableHostPrefix:e?.disableHostPrefix??!1,endpointProvider:e?.endpointProvider??Ur.defaultEndpointResolver,extensions:e?.extensions??[],httpAuthSchemeProvider:e?.httpAuthSchemeProvider??Nr.defaultSigninHttpAuthSchemeProvider,httpAuthSchemes:e?.httpAuthSchemes??[{schemeId:"aws.auth#sigv4",identityProvider:(r)=>r.getIdentityProvider("aws.auth#sigv4"),signer:new vr.AwsSdkSigV4Signer},{schemeId:"smithy.api#noAuth",identityProvider:(r)=>r.getIdentityProvider("smithy.api#noAuth")||(async()=>({})),signer:new br.NoAuthSigner}],logger:e?.logger??new Fr.NoOpLogger,protocol:e?.protocol??new Or.AwsRestJsonProtocol({defaultNamespace:"com.amazonaws.signin"}),serviceId:e?.serviceId??"Signin",urlParser:e?.urlParser??Er.parseUrl,utf8Decoder:e?.utf8Decoder??pe.fromUtf8,utf8Encoder:e?.utf8Encoder??pe.toUtf8}};ne.getRuntimeConfig=Rr});var Ne=v((Fe)=>{Object.defineProperty(Fe,"__esModule",{value:!0});Fe.getRuntimeConfig=void 0;var Hr=_r(),Wr=Hr.__importDefault(cr()),De=k(),Ie=Gr(),_=Oe(),Yr=kr(),qe=be(),q=Mr(),ve=wr(),Jr=Lr(),Vr=Sr(),Xr=ye(),Qr=w(),Zr=zr(),Br=w(),gr=(e)=>{(0,Br.emitWarningIfUnsupportedVersion)(process.version);let r=(0,Zr.resolveDefaultsModeConfig)(e),s=()=>r().then(Qr.loadConfigsForDefaultMode),p=(0,Xr.getRuntimeConfig)(e);(0,De.emitWarningIfUnsupportedVersion)(process.version);let l={profile:e?.profile,logger:p.logger};return{...p,...e,runtime:"node",defaultsMode:r,authSchemePreference:e?.authSchemePreference??(0,q.loadConfig)(De.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS,l),bodyLengthChecker:e?.bodyLengthChecker??Jr.calculateBodyLength,defaultUserAgentProvider:e?.defaultUserAgentProvider??(0,Ie.createDefaultUserAgentProvider)({serviceId:p.serviceId,clientVersion:Wr.default.version}),maxAttempts:e?.maxAttempts??(0,q.loadConfig)(qe.NODE_MAX_ATTEMPT_CONFIG_OPTIONS,e),region:e?.region??(0,q.loadConfig)(_.NODE_REGION_CONFIG_OPTIONS,{..._.NODE_REGION_CONFIG_FILE_OPTIONS,...l}),requestHandler:ve.NodeHttpHandler.create(e?.requestHandler??s),retryMode:e?.retryMode??(0,q.loadConfig)({...qe.NODE_RETRY_MODE_CONFIG_OPTIONS,default:async()=>(await s()).retryMode||Vr.DEFAULT_RETRY_MODE},e),sha256:e?.sha256??Yr.Hash.bind(null,"sha256"),streamCollector:e?.streamCollector??ve.streamCollector,useDualstackEndpoint:e?.useDualstackEndpoint??(0,q.loadConfig)(_.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS,l),useFipsEndpoint:e?.useFipsEndpoint??(0,q.loadConfig)(_.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS,l),userAgentAppId:e?.userAgentAppId??(0,q.loadConfig)(Ie.NODE_APP_ID_CONFIG_OPTIONS,l)}};Fe.getRuntimeConfig=gr});var js=v((K)=>{var Ue=hr(),mr=Ar(),es=jr(),Re=Tr(),rs=Oe(),V=ie(),b=fr(),ss=$r(),Qe=xr(),we=be(),y=w(),_e=L(),ts=Ne(),Me=Cr(),Se=Kr(),ds=(e)=>{return Object.assign(e,{useDualstackEndpoint:e.useDualstackEndpoint??!1,useFipsEndpoint:e.useFipsEndpoint??!1,defaultSigningName:"signin"})},us={UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}},ls=(e)=>{let{httpAuthSchemes:r,httpAuthSchemeProvider:s,credentials:p}=e;return{setHttpAuthScheme(l){let E=r.findIndex((c)=>c.schemeId===l.schemeId);if(E===-1)r.push(l);else r.splice(E,1,l)},httpAuthSchemes(){return r},setHttpAuthSchemeProvider(l){s=l},httpAuthSchemeProvider(){return s},setCredentials(l){p=l},credentials(){return p}}},as=(e)=>{return{httpAuthSchemes:e.httpAuthSchemes(),httpAuthSchemeProvider:e.httpAuthSchemeProvider(),credentials:e.credentials()}},os=(e,r)=>{let s=Object.assign(Me.getAwsRegionExtensionConfiguration(e),y.getDefaultExtensionConfiguration(e),Se.getHttpHandlerExtensionConfiguration(e),ls(e));return r.forEach((p)=>p.configure(s)),Object.assign(e,Me.resolveAwsRegionExtensionConfiguration(s),y.resolveDefaultRuntimeConfig(s),Se.resolveHttpHandlerRuntimeConfig(s),as(s))};class X extends y.Client{config;constructor(...[e]){let r=ts.getRuntimeConfig(e||{});super(r);this.initConfig=r;let s=ds(r),p=Re.resolveUserAgentConfig(s),l=we.resolveRetryConfig(p),E=rs.resolveRegionConfig(l),c=Ue.resolveHostHeaderConfig(E),je=Qe.resolveEndpointConfig(c),fe=_e.resolveHttpAuthSchemeConfig(je),Te=os(fe,e?.extensions||[]);this.config=Te,this.middlewareStack.use(b.getSchemaSerdePlugin(this.config)),this.middlewareStack.use(Re.getUserAgentPlugin(this.config)),this.middlewareStack.use(we.getRetryPlugin(this.config)),this.middlewareStack.use(ss.getContentLengthPlugin(this.config)),this.middlewareStack.use(Ue.getHostHeaderPlugin(this.config)),this.middlewareStack.use(mr.getLoggerPlugin(this.config)),this.middlewareStack.use(es.getRecursionDetectionPlugin(this.config)),this.middlewareStack.use(V.getHttpAuthSchemeEndpointRuleSetPlugin(this.config,{httpAuthSchemeParametersProvider:_e.defaultSigninHttpAuthSchemeParametersProvider,identityProviderConfigProvider:async($e)=>new V.DefaultIdentityProviderConfig({"aws.auth#sigv4":$e.credentials})})),this.middlewareStack.use(V.getHttpSigningPlugin(this.config))}destroy(){super.destroy()}}var F=class e extends y.ServiceException{constructor(r){super(r);Object.setPrototypeOf(this,e.prototype)}},Ze=class e extends F{name="AccessDeniedException";$fault="client";error;constructor(r){super({name:"AccessDeniedException",$fault:"client",...r});Object.setPrototypeOf(this,e.prototype),this.error=r.error}},Be=class e extends F{name="InternalServerException";$fault="server";error;constructor(r){super({name:"InternalServerException",$fault:"server",...r});Object.setPrototypeOf(this,e.prototype),this.error=r.error}},ge=class e extends F{name="TooManyRequestsError";$fault="client";error;constructor(r){super({name:"TooManyRequestsError",$fault:"client",...r});Object.setPrototypeOf(this,e.prototype),this.error=r.error}},Ke=class e extends F{name="ValidationException";$fault="client";error;constructor(r){super({name:"ValidationException",$fault:"client",...r});Object.setPrototypeOf(this,e.prototype),this.error=r.error}},ps="AccessDeniedException",is="AccessToken",ns="CreateOAuth2Token",Ps="CreateOAuth2TokenRequest",ys="CreateOAuth2TokenRequestBody",Ds="CreateOAuth2TokenResponseBody",Is="CreateOAuth2TokenResponse",qs="InternalServerException",vs="RefreshToken",Os="TooManyRequestsError",bs="ValidationException",ce="accessKeyId",Ge="accessToken",Q="client",ke="clientId",Le="codeVerifier",Fs="code",D="error",ze="expiresIn",He="grantType",Es="http",Z="httpError",We="idToken",o="jsonName",S="message",M="refreshToken",Ye="redirectUri",Ns="server",Je="secretAccessKey",Ve="sessionToken",he="smithy.ts.sdk.synthetic.com.amazonaws.signin",Us="tokenInput",Rs="tokenOutput",Xe="tokenType",a="com.amazonaws.signin",Ae=[0,a,vs,8,0],ws=[-3,a,ps,{[D]:Q},[D,S],[0,0]];b.TypeRegistry.for(a).registerError(ws,Ze);var _s=[3,a,is,8,[ce,Je,Ve],[[0,{[o]:ce}],[0,{[o]:Je}],[0,{[o]:Ve}]]],Ms=[3,a,Ps,0,[Us],[[()=>Ss,16]]],Ss=[3,a,ys,0,[ke,He,Fs,Ye,Le,M],[[0,{[o]:ke}],[0,{[o]:He}],0,[0,{[o]:Ye}],[0,{[o]:Le}],[()=>Ae,{[o]:M}]]],cs=[3,a,Is,0,[Rs],[[()=>Gs,16]]],Gs=[3,a,Ds,0,[Ge,Xe,ze,M,We],[[()=>_s,{[o]:Ge}],[0,{[o]:Xe}],[1,{[o]:ze}],[()=>Ae,{[o]:M}],[0,{[o]:We}]]],ks=[-3,a,qs,{[D]:Ns,[Z]:500},[D,S],[0,0]];b.TypeRegistry.for(a).registerError(ks,Be);var Ls=[-3,a,Os,{[D]:Q,[Z]:429},[D,S],[0,0]];b.TypeRegistry.for(a).registerError(Ls,ge);var zs=[-3,a,bs,{[D]:Q,[Z]:400},[D,S],[0,0]];b.TypeRegistry.for(a).registerError(zs,Ke);var Hs=[-3,he,"SigninServiceException",0,[],[]];b.TypeRegistry.for(he).registerError(Hs,F);var Ws=[9,a,ns,{[Es]:["POST","/v1/token",200]},()=>Ms,()=>cs];class B extends y.Command.classBuilder().ep(us).m(function(e,r,s,p){return[Qe.getEndpointPlugin(s,e.getEndpointParameterInstructions())]}).s("Signin","CreateOAuth2Token",{}).n("SigninClient","CreateOAuth2TokenCommand").sc(Ws).build(){}var Ys={CreateOAuth2TokenCommand:B};class g extends X{}y.createAggregatedClient(Ys,g);var Js={AUTHCODE_EXPIRED:"AUTHCODE_EXPIRED",INSUFFICIENT_PERMISSIONS:"INSUFFICIENT_PERMISSIONS",INVALID_REQUEST:"INVALID_REQUEST",SERVER_ERROR:"server_error",TOKEN_EXPIRED:"TOKEN_EXPIRED",USER_CREDENTIALS_CHANGED:"USER_CREDENTIALS_CHANGED"};Object.defineProperty(K,"$Command",{enumerable:!0,get:function(){return y.Command}});Object.defineProperty(K,"__Client",{enumerable:!0,get:function(){return y.Client}});K.AccessDeniedException=Ze;K.CreateOAuth2TokenCommand=B;K.InternalServerException=Be;K.OAuth2ErrorCode=Js;K.Signin=g;K.SigninClient=X;K.SigninServiceException=F;K.TooManyRequestsError=ge;K.ValidationException=Ke});export default js();
2
-
3
- //# debugId=D3DC1D8E077EF9FB64756E2164756E21
4
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtY2pzL3N1Ym1vZHVsZXMvc2lnbmluL2F1dGgvaHR0cEF1dGhTY2hlbWVQcm92aWRlci5qcyIsICIuLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1janMvc3VibW9kdWxlcy9zaWduaW4vZW5kcG9pbnQvcnVsZXNldC5qcyIsICIuLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1janMvc3VibW9kdWxlcy9zaWduaW4vZW5kcG9pbnQvZW5kcG9pbnRSZXNvbHZlci5qcyIsICIuLi9ub2RlX21vZHVsZXMvQGF3cy1zZGsvbmVzdGVkLWNsaWVudHMvZGlzdC1janMvc3VibW9kdWxlcy9zaWduaW4vcnVudGltZUNvbmZpZy5zaGFyZWQuanMiLCAiLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtY2pzL3N1Ym1vZHVsZXMvc2lnbmluL3J1bnRpbWVDb25maWcuanMiLCAiLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL25lc3RlZC1jbGllbnRzL2Rpc3QtY2pzL3N1Ym1vZHVsZXMvc2lnbmluL2luZGV4LmpzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWwogICAgIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5yZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWcgPSBleHBvcnRzLmRlZmF1bHRTaWduaW5IdHRwQXV0aFNjaGVtZVByb3ZpZGVyID0gZXhwb3J0cy5kZWZhdWx0U2lnbmluSHR0cEF1dGhTY2hlbWVQYXJhbWV0ZXJzUHJvdmlkZXIgPSB2b2lkIDA7XG5jb25zdCBjb3JlXzEgPSByZXF1aXJlKFwiQGF3cy1zZGsvY29yZVwiKTtcbmNvbnN0IHV0aWxfbWlkZGxld2FyZV8xID0gcmVxdWlyZShcIkBzbWl0aHkvdXRpbC1taWRkbGV3YXJlXCIpO1xuY29uc3QgZGVmYXVsdFNpZ25pbkh0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyID0gYXN5bmMgKGNvbmZpZywgY29udGV4dCwgaW5wdXQpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgICBvcGVyYXRpb246ICgwLCB1dGlsX21pZGRsZXdhcmVfMS5nZXRTbWl0aHlDb250ZXh0KShjb250ZXh0KS5vcGVyYXRpb24sXG4gICAgICAgIHJlZ2lvbjogKGF3YWl0ICgwLCB1dGlsX21pZGRsZXdhcmVfMS5ub3JtYWxpemVQcm92aWRlcikoY29uZmlnLnJlZ2lvbikoKSkgfHxcbiAgICAgICAgICAgICgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiZXhwZWN0ZWQgYHJlZ2lvbmAgdG8gYmUgY29uZmlndXJlZCBmb3IgYGF3cy5hdXRoI3NpZ3Y0YFwiKTtcbiAgICAgICAgICAgIH0pKCksXG4gICAgfTtcbn07XG5leHBvcnRzLmRlZmF1bHRTaWduaW5IdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlciA9IGRlZmF1bHRTaWduaW5IdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlcjtcbmZ1bmN0aW9uIGNyZWF0ZUF3c0F1dGhTaWd2NEh0dHBBdXRoT3B0aW9uKGF1dGhQYXJhbWV0ZXJzKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc2NoZW1lSWQ6IFwiYXdzLmF1dGgjc2lndjRcIixcbiAgICAgICAgc2lnbmluZ1Byb3BlcnRpZXM6IHtcbiAgICAgICAgICAgIG5hbWU6IFwic2lnbmluXCIsXG4gICAgICAgICAgICByZWdpb246IGF1dGhQYXJhbWV0ZXJzLnJlZ2lvbixcbiAgICAgICAgfSxcbiAgICAgICAgcHJvcGVydGllc0V4dHJhY3RvcjogKGNvbmZpZywgY29udGV4dCkgPT4gKHtcbiAgICAgICAgICAgIHNpZ25pbmdQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgICAgY29uZmlnLFxuICAgICAgICAgICAgICAgIGNvbnRleHQsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9KSxcbiAgICB9O1xufVxuZnVuY3Rpb24gY3JlYXRlU21pdGh5QXBpTm9BdXRoSHR0cEF1dGhPcHRpb24oYXV0aFBhcmFtZXRlcnMpIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBzY2hlbWVJZDogXCJzbWl0aHkuYXBpI25vQXV0aFwiLFxuICAgIH07XG59XG5jb25zdCBkZWZhdWx0U2lnbmluSHR0cEF1dGhTY2hlbWVQcm92aWRlciA9IChhdXRoUGFyYW1ldGVycykgPT4ge1xuICAgIGNvbnN0IG9wdGlvbnMgPSBbXTtcbiAgICBzd2l0Y2ggKGF1dGhQYXJhbWV0ZXJzLm9wZXJhdGlvbikge1xuICAgICAgICBjYXNlIFwiQ3JlYXRlT0F1dGgyVG9rZW5cIjoge1xuICAgICAgICAgICAgb3B0aW9ucy5wdXNoKGNyZWF0ZVNtaXRoeUFwaU5vQXV0aEh0dHBBdXRoT3B0aW9uKGF1dGhQYXJhbWV0ZXJzKSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICBvcHRpb25zLnB1c2goY3JlYXRlQXdzQXV0aFNpZ3Y0SHR0cEF1dGhPcHRpb24oYXV0aFBhcmFtZXRlcnMpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gb3B0aW9ucztcbn07XG5leHBvcnRzLmRlZmF1bHRTaWduaW5IdHRwQXV0aFNjaGVtZVByb3ZpZGVyID0gZGVmYXVsdFNpZ25pbkh0dHBBdXRoU2NoZW1lUHJvdmlkZXI7XG5jb25zdCByZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWcgPSAoY29uZmlnKSA9PiB7XG4gICAgY29uc3QgY29uZmlnXzAgPSAoMCwgY29yZV8xLnJlc29sdmVBd3NTZGtTaWdWNENvbmZpZykoY29uZmlnKTtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihjb25maWdfMCwge1xuICAgICAgICBhdXRoU2NoZW1lUHJlZmVyZW5jZTogKDAsIHV0aWxfbWlkZGxld2FyZV8xLm5vcm1hbGl6ZVByb3ZpZGVyKShjb25maWcuYXV0aFNjaGVtZVByZWZlcmVuY2UgPz8gW10pLFxuICAgIH0pO1xufTtcbmV4cG9ydHMucmVzb2x2ZUh0dHBBdXRoU2NoZW1lQ29uZmlnID0gcmVzb2x2ZUh0dHBBdXRoU2NoZW1lQ29uZmlnO1xuIiwKICAgICJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMucnVsZVNldCA9IHZvaWQgMDtcbmNvbnN0IHUgPSBcInJlcXVpcmVkXCIsIHYgPSBcImZuXCIsIHcgPSBcImFyZ3ZcIiwgeCA9IFwicmVmXCI7XG5jb25zdCBhID0gdHJ1ZSwgYiA9IFwiaXNTZXRcIiwgYyA9IFwiYm9vbGVhbkVxdWFsc1wiLCBkID0gXCJlcnJvclwiLCBlID0gXCJlbmRwb2ludFwiLCBmID0gXCJ0cmVlXCIsIGcgPSBcIlBhcnRpdGlvblJlc3VsdFwiLCBoID0gXCJzdHJpbmdFcXVhbHNcIiwgaSA9IHsgW3VdOiB0cnVlLCBcImRlZmF1bHRcIjogZmFsc2UsIFwidHlwZVwiOiBcImJvb2xlYW5cIiB9LCBqID0geyBbdV06IGZhbHNlLCBcInR5cGVcIjogXCJzdHJpbmdcIiB9LCBrID0geyBbeF06IFwiRW5kcG9pbnRcIiB9LCBsID0geyBbdl06IGMsIFt3XTogW3sgW3hdOiBcIlVzZUZJUFNcIiB9LCB0cnVlXSB9LCBtID0geyBbdl06IGMsIFt3XTogW3sgW3hdOiBcIlVzZUR1YWxTdGFja1wiIH0sIHRydWVdIH0sIG4gPSB7fSwgbyA9IHsgW3ZdOiBcImdldEF0dHJcIiwgW3ddOiBbeyBbeF06IGcgfSwgXCJuYW1lXCJdIH0sIHAgPSB7IFt2XTogYywgW3ddOiBbeyBbeF06IFwiVXNlRklQU1wiIH0sIGZhbHNlXSB9LCBxID0geyBbdl06IGMsIFt3XTogW3sgW3hdOiBcIlVzZUR1YWxTdGFja1wiIH0sIGZhbHNlXSB9LCByID0geyBbdl06IFwiZ2V0QXR0clwiLCBbd106IFt7IFt4XTogZyB9LCBcInN1cHBvcnRzRklQU1wiXSB9LCBzID0geyBbdl06IGMsIFt3XTogW3RydWUsIHsgW3ZdOiBcImdldEF0dHJcIiwgW3ddOiBbeyBbeF06IGcgfSwgXCJzdXBwb3J0c0R1YWxTdGFja1wiXSB9XSB9LCB0ID0gW3sgW3hdOiBcIlJlZ2lvblwiIH1dO1xuY29uc3QgX2RhdGEgPSB7IHZlcnNpb246IFwiMS4wXCIsIHBhcmFtZXRlcnM6IHsgVXNlRHVhbFN0YWNrOiBpLCBVc2VGSVBTOiBpLCBFbmRwb2ludDogaiwgUmVnaW9uOiBqIH0sIHJ1bGVzOiBbeyBjb25kaXRpb25zOiBbeyBbdl06IGIsIFt3XTogW2tdIH1dLCBydWxlczogW3sgY29uZGl0aW9uczogW2xdLCBlcnJvcjogXCJJbnZhbGlkIENvbmZpZ3VyYXRpb246IEZJUFMgYW5kIGN1c3RvbSBlbmRwb2ludCBhcmUgbm90IHN1cHBvcnRlZFwiLCB0eXBlOiBkIH0sIHsgcnVsZXM6IFt7IGNvbmRpdGlvbnM6IFttXSwgZXJyb3I6IFwiSW52YWxpZCBDb25maWd1cmF0aW9uOiBEdWFsc3RhY2sgYW5kIGN1c3RvbSBlbmRwb2ludCBhcmUgbm90IHN1cHBvcnRlZFwiLCB0eXBlOiBkIH0sIHsgZW5kcG9pbnQ6IHsgdXJsOiBrLCBwcm9wZXJ0aWVzOiBuLCBoZWFkZXJzOiBuIH0sIHR5cGU6IGUgfV0sIHR5cGU6IGYgfV0sIHR5cGU6IGYgfSwgeyBydWxlczogW3sgY29uZGl0aW9uczogW3sgW3ZdOiBiLCBbd106IHQgfV0sIHJ1bGVzOiBbeyBjb25kaXRpb25zOiBbeyBbdl06IFwiYXdzLnBhcnRpdGlvblwiLCBbd106IHQsIGFzc2lnbjogZyB9XSwgcnVsZXM6IFt7IGNvbmRpdGlvbnM6IFt7IFt2XTogaCwgW3ddOiBbbywgXCJhd3NcIl0gfSwgcCwgcV0sIGVuZHBvaW50OiB7IHVybDogXCJodHRwczovL3tSZWdpb259LnNpZ25pbi5hd3MuYW1hem9uLmNvbVwiLCBwcm9wZXJ0aWVzOiBuLCBoZWFkZXJzOiBuIH0sIHR5cGU6IGUgfSwgeyBjb25kaXRpb25zOiBbeyBbdl06IGgsIFt3XTogW28sIFwiYXdzLWNuXCJdIH0sIHAsIHFdLCBlbmRwb2ludDogeyB1cmw6IFwiaHR0cHM6Ly97UmVnaW9ufS5zaWduaW4uYW1hem9uYXdzLmNuXCIsIHByb3BlcnRpZXM6IG4sIGhlYWRlcnM6IG4gfSwgdHlwZTogZSB9LCB7IGNvbmRpdGlvbnM6IFt7IFt2XTogaCwgW3ddOiBbbywgXCJhd3MtdXMtZ292XCJdIH0sIHAsIHFdLCBlbmRwb2ludDogeyB1cmw6IFwiaHR0cHM6Ly97UmVnaW9ufS5zaWduaW4uYW1hem9uYXdzLXVzLWdvdi5jb21cIiwgcHJvcGVydGllczogbiwgaGVhZGVyczogbiB9LCB0eXBlOiBlIH0sIHsgY29uZGl0aW9uczogW2wsIG1dLCBydWxlczogW3sgY29uZGl0aW9uczogW3sgW3ZdOiBjLCBbd106IFthLCByXSB9LCBzXSwgcnVsZXM6IFt7IGVuZHBvaW50OiB7IHVybDogXCJodHRwczovL3NpZ25pbi1maXBzLntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQjZHVhbFN0YWNrRG5zU3VmZml4fVwiLCBwcm9wZXJ0aWVzOiBuLCBoZWFkZXJzOiBuIH0sIHR5cGU6IGUgfV0sIHR5cGU6IGYgfSwgeyBlcnJvcjogXCJGSVBTIGFuZCBEdWFsU3RhY2sgYXJlIGVuYWJsZWQsIGJ1dCB0aGlzIHBhcnRpdGlvbiBkb2VzIG5vdCBzdXBwb3J0IG9uZSBvciBib3RoXCIsIHR5cGU6IGQgfV0sIHR5cGU6IGYgfSwgeyBjb25kaXRpb25zOiBbbCwgcV0sIHJ1bGVzOiBbeyBjb25kaXRpb25zOiBbeyBbdl06IGMsIFt3XTogW3IsIGFdIH1dLCBydWxlczogW3sgZW5kcG9pbnQ6IHsgdXJsOiBcImh0dHBzOi8vc2lnbmluLWZpcHMue1JlZ2lvbn0ue1BhcnRpdGlvblJlc3VsdCNkbnNTdWZmaXh9XCIsIHByb3BlcnRpZXM6IG4sIGhlYWRlcnM6IG4gfSwgdHlwZTogZSB9XSwgdHlwZTogZiB9LCB7IGVycm9yOiBcIkZJUFMgaXMgZW5hYmxlZCBidXQgdGhpcyBwYXJ0aXRpb24gZG9lcyBub3Qgc3VwcG9ydCBGSVBTXCIsIHR5cGU6IGQgfV0sIHR5cGU6IGYgfSwgeyBjb25kaXRpb25zOiBbcCwgbV0sIHJ1bGVzOiBbeyBjb25kaXRpb25zOiBbc10sIHJ1bGVzOiBbeyBlbmRwb2ludDogeyB1cmw6IFwiaHR0cHM6Ly9zaWduaW4ue1JlZ2lvbn0ue1BhcnRpdGlvblJlc3VsdCNkdWFsU3RhY2tEbnNTdWZmaXh9XCIsIHByb3BlcnRpZXM6IG4sIGhlYWRlcnM6IG4gfSwgdHlwZTogZSB9XSwgdHlwZTogZiB9LCB7IGVycm9yOiBcIkR1YWxTdGFjayBpcyBlbmFibGVkIGJ1dCB0aGlzIHBhcnRpdGlvbiBkb2VzIG5vdCBzdXBwb3J0IER1YWxTdGFja1wiLCB0eXBlOiBkIH1dLCB0eXBlOiBmIH0sIHsgZW5kcG9pbnQ6IHsgdXJsOiBcImh0dHBzOi8vc2lnbmluLntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQjZG5zU3VmZml4fVwiLCBwcm9wZXJ0aWVzOiBuLCBoZWFkZXJzOiBuIH0sIHR5cGU6IGUgfV0sIHR5cGU6IGYgfV0sIHR5cGU6IGYgfSwgeyBlcnJvcjogXCJJbnZhbGlkIENvbmZpZ3VyYXRpb246IE1pc3NpbmcgUmVnaW9uXCIsIHR5cGU6IGQgfV0sIHR5cGU6IGYgfV0gfTtcbmV4cG9ydHMucnVsZVNldCA9IF9kYXRhO1xuIiwKICAgICJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXIgPSB2b2lkIDA7XG5jb25zdCB1dGlsX2VuZHBvaW50c18xID0gcmVxdWlyZShcIkBhd3Mtc2RrL3V0aWwtZW5kcG9pbnRzXCIpO1xuY29uc3QgdXRpbF9lbmRwb2ludHNfMiA9IHJlcXVpcmUoXCJAc21pdGh5L3V0aWwtZW5kcG9pbnRzXCIpO1xuY29uc3QgcnVsZXNldF8xID0gcmVxdWlyZShcIi4vcnVsZXNldFwiKTtcbmNvbnN0IGNhY2hlID0gbmV3IHV0aWxfZW5kcG9pbnRzXzIuRW5kcG9pbnRDYWNoZSh7XG4gICAgc2l6ZTogNTAsXG4gICAgcGFyYW1zOiBbXCJFbmRwb2ludFwiLCBcIlJlZ2lvblwiLCBcIlVzZUR1YWxTdGFja1wiLCBcIlVzZUZJUFNcIl0sXG59KTtcbmNvbnN0IGRlZmF1bHRFbmRwb2ludFJlc29sdmVyID0gKGVuZHBvaW50UGFyYW1zLCBjb250ZXh0ID0ge30pID0+IHtcbiAgICByZXR1cm4gY2FjaGUuZ2V0KGVuZHBvaW50UGFyYW1zLCAoKSA9PiAoMCwgdXRpbF9lbmRwb2ludHNfMi5yZXNvbHZlRW5kcG9pbnQpKHJ1bGVzZXRfMS5ydWxlU2V0LCB7XG4gICAgICAgIGVuZHBvaW50UGFyYW1zOiBlbmRwb2ludFBhcmFtcyxcbiAgICAgICAgbG9nZ2VyOiBjb250ZXh0LmxvZ2dlcixcbiAgICB9KSk7XG59O1xuZXhwb3J0cy5kZWZhdWx0RW5kcG9pbnRSZXNvbHZlciA9IGRlZmF1bHRFbmRwb2ludFJlc29sdmVyO1xudXRpbF9lbmRwb2ludHNfMi5jdXN0b21FbmRwb2ludEZ1bmN0aW9ucy5hd3MgPSB1dGlsX2VuZHBvaW50c18xLmF3c0VuZHBvaW50RnVuY3Rpb25zO1xuIiwKICAgICJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuZ2V0UnVudGltZUNvbmZpZyA9IHZvaWQgMDtcbmNvbnN0IGNvcmVfMSA9IHJlcXVpcmUoXCJAYXdzLXNkay9jb3JlXCIpO1xuY29uc3QgcHJvdG9jb2xzXzEgPSByZXF1aXJlKFwiQGF3cy1zZGsvY29yZS9wcm90b2NvbHNcIik7XG5jb25zdCBjb3JlXzIgPSByZXF1aXJlKFwiQHNtaXRoeS9jb3JlXCIpO1xuY29uc3Qgc21pdGh5X2NsaWVudF8xID0gcmVxdWlyZShcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiKTtcbmNvbnN0IHVybF9wYXJzZXJfMSA9IHJlcXVpcmUoXCJAc21pdGh5L3VybC1wYXJzZXJcIik7XG5jb25zdCB1dGlsX2Jhc2U2NF8xID0gcmVxdWlyZShcIkBzbWl0aHkvdXRpbC1iYXNlNjRcIik7XG5jb25zdCB1dGlsX3V0ZjhfMSA9IHJlcXVpcmUoXCJAc21pdGh5L3V0aWwtdXRmOFwiKTtcbmNvbnN0IGh0dHBBdXRoU2NoZW1lUHJvdmlkZXJfMSA9IHJlcXVpcmUoXCIuL2F1dGgvaHR0cEF1dGhTY2hlbWVQcm92aWRlclwiKTtcbmNvbnN0IGVuZHBvaW50UmVzb2x2ZXJfMSA9IHJlcXVpcmUoXCIuL2VuZHBvaW50L2VuZHBvaW50UmVzb2x2ZXJcIik7XG5jb25zdCBnZXRSdW50aW1lQ29uZmlnID0gKGNvbmZpZykgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAgIGFwaVZlcnNpb246IFwiMjAyMy0wMS0wMVwiLFxuICAgICAgICBiYXNlNjREZWNvZGVyOiBjb25maWc/LmJhc2U2NERlY29kZXIgPz8gdXRpbF9iYXNlNjRfMS5mcm9tQmFzZTY0LFxuICAgICAgICBiYXNlNjRFbmNvZGVyOiBjb25maWc/LmJhc2U2NEVuY29kZXIgPz8gdXRpbF9iYXNlNjRfMS50b0Jhc2U2NCxcbiAgICAgICAgZGlzYWJsZUhvc3RQcmVmaXg6IGNvbmZpZz8uZGlzYWJsZUhvc3RQcmVmaXggPz8gZmFsc2UsXG4gICAgICAgIGVuZHBvaW50UHJvdmlkZXI6IGNvbmZpZz8uZW5kcG9pbnRQcm92aWRlciA/PyBlbmRwb2ludFJlc29sdmVyXzEuZGVmYXVsdEVuZHBvaW50UmVzb2x2ZXIsXG4gICAgICAgIGV4dGVuc2lvbnM6IGNvbmZpZz8uZXh0ZW5zaW9ucyA/PyBbXSxcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVQcm92aWRlcjogY29uZmlnPy5odHRwQXV0aFNjaGVtZVByb3ZpZGVyID8/IGh0dHBBdXRoU2NoZW1lUHJvdmlkZXJfMS5kZWZhdWx0U2lnbmluSHR0cEF1dGhTY2hlbWVQcm92aWRlcixcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVzOiBjb25maWc/Lmh0dHBBdXRoU2NoZW1lcyA/PyBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgc2NoZW1lSWQ6IFwiYXdzLmF1dGgjc2lndjRcIixcbiAgICAgICAgICAgICAgICBpZGVudGl0eVByb3ZpZGVyOiAoaXBjKSA9PiBpcGMuZ2V0SWRlbnRpdHlQcm92aWRlcihcImF3cy5hdXRoI3NpZ3Y0XCIpLFxuICAgICAgICAgICAgICAgIHNpZ25lcjogbmV3IGNvcmVfMS5Bd3NTZGtTaWdWNFNpZ25lcigpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBzY2hlbWVJZDogXCJzbWl0aHkuYXBpI25vQXV0aFwiLFxuICAgICAgICAgICAgICAgIGlkZW50aXR5UHJvdmlkZXI6IChpcGMpID0+IGlwYy5nZXRJZGVudGl0eVByb3ZpZGVyKFwic21pdGh5LmFwaSNub0F1dGhcIikgfHwgKGFzeW5jICgpID0+ICh7fSkpLFxuICAgICAgICAgICAgICAgIHNpZ25lcjogbmV3IGNvcmVfMi5Ob0F1dGhTaWduZXIoKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIGxvZ2dlcjogY29uZmlnPy5sb2dnZXIgPz8gbmV3IHNtaXRoeV9jbGllbnRfMS5Ob09wTG9nZ2VyKCksXG4gICAgICAgIHByb3RvY29sOiBjb25maWc/LnByb3RvY29sID8/IG5ldyBwcm90b2NvbHNfMS5Bd3NSZXN0SnNvblByb3RvY29sKHsgZGVmYXVsdE5hbWVzcGFjZTogXCJjb20uYW1hem9uYXdzLnNpZ25pblwiIH0pLFxuICAgICAgICBzZXJ2aWNlSWQ6IGNvbmZpZz8uc2VydmljZUlkID8/IFwiU2lnbmluXCIsXG4gICAgICAgIHVybFBhcnNlcjogY29uZmlnPy51cmxQYXJzZXIgPz8gdXJsX3BhcnNlcl8xLnBhcnNlVXJsLFxuICAgICAgICB1dGY4RGVjb2RlcjogY29uZmlnPy51dGY4RGVjb2RlciA/PyB1dGlsX3V0ZjhfMS5mcm9tVXRmOCxcbiAgICAgICAgdXRmOEVuY29kZXI6IGNvbmZpZz8udXRmOEVuY29kZXIgPz8gdXRpbF91dGY4XzEudG9VdGY4LFxuICAgIH07XG59O1xuZXhwb3J0cy5nZXRSdW50aW1lQ29uZmlnID0gZ2V0UnVudGltZUNvbmZpZztcbiIsCiAgICAiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmdldFJ1bnRpbWVDb25maWcgPSB2b2lkIDA7XG5jb25zdCB0c2xpYl8xID0gcmVxdWlyZShcInRzbGliXCIpO1xuY29uc3QgcGFja2FnZV9qc29uXzEgPSB0c2xpYl8xLl9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi4vLi4vLi4vcGFja2FnZS5qc29uXCIpKTtcbmNvbnN0IGNvcmVfMSA9IHJlcXVpcmUoXCJAYXdzLXNkay9jb3JlXCIpO1xuY29uc3QgdXRpbF91c2VyX2FnZW50X25vZGVfMSA9IHJlcXVpcmUoXCJAYXdzLXNkay91dGlsLXVzZXItYWdlbnQtbm9kZVwiKTtcbmNvbnN0IGNvbmZpZ19yZXNvbHZlcl8xID0gcmVxdWlyZShcIkBzbWl0aHkvY29uZmlnLXJlc29sdmVyXCIpO1xuY29uc3QgaGFzaF9ub2RlXzEgPSByZXF1aXJlKFwiQHNtaXRoeS9oYXNoLW5vZGVcIik7XG5jb25zdCBtaWRkbGV3YXJlX3JldHJ5XzEgPSByZXF1aXJlKFwiQHNtaXRoeS9taWRkbGV3YXJlLXJldHJ5XCIpO1xuY29uc3Qgbm9kZV9jb25maWdfcHJvdmlkZXJfMSA9IHJlcXVpcmUoXCJAc21pdGh5L25vZGUtY29uZmlnLXByb3ZpZGVyXCIpO1xuY29uc3Qgbm9kZV9odHRwX2hhbmRsZXJfMSA9IHJlcXVpcmUoXCJAc21pdGh5L25vZGUtaHR0cC1oYW5kbGVyXCIpO1xuY29uc3QgdXRpbF9ib2R5X2xlbmd0aF9ub2RlXzEgPSByZXF1aXJlKFwiQHNtaXRoeS91dGlsLWJvZHktbGVuZ3RoLW5vZGVcIik7XG5jb25zdCB1dGlsX3JldHJ5XzEgPSByZXF1aXJlKFwiQHNtaXRoeS91dGlsLXJldHJ5XCIpO1xuY29uc3QgcnVudGltZUNvbmZpZ19zaGFyZWRfMSA9IHJlcXVpcmUoXCIuL3J1bnRpbWVDb25maWcuc2hhcmVkXCIpO1xuY29uc3Qgc21pdGh5X2NsaWVudF8xID0gcmVxdWlyZShcIkBzbWl0aHkvc21pdGh5LWNsaWVudFwiKTtcbmNvbnN0IHV0aWxfZGVmYXVsdHNfbW9kZV9ub2RlXzEgPSByZXF1aXJlKFwiQHNtaXRoeS91dGlsLWRlZmF1bHRzLW1vZGUtbm9kZVwiKTtcbmNvbnN0IHNtaXRoeV9jbGllbnRfMiA9IHJlcXVpcmUoXCJAc21pdGh5L3NtaXRoeS1jbGllbnRcIik7XG5jb25zdCBnZXRSdW50aW1lQ29uZmlnID0gKGNvbmZpZykgPT4ge1xuICAgICgwLCBzbWl0aHlfY2xpZW50XzIuZW1pdFdhcm5pbmdJZlVuc3VwcG9ydGVkVmVyc2lvbikocHJvY2Vzcy52ZXJzaW9uKTtcbiAgICBjb25zdCBkZWZhdWx0c01vZGUgPSAoMCwgdXRpbF9kZWZhdWx0c19tb2RlX25vZGVfMS5yZXNvbHZlRGVmYXVsdHNNb2RlQ29uZmlnKShjb25maWcpO1xuICAgIGNvbnN0IGRlZmF1bHRDb25maWdQcm92aWRlciA9ICgpID0+IGRlZmF1bHRzTW9kZSgpLnRoZW4oc21pdGh5X2NsaWVudF8xLmxvYWRDb25maWdzRm9yRGVmYXVsdE1vZGUpO1xuICAgIGNvbnN0IGNsaWVudFNoYXJlZFZhbHVlcyA9ICgwLCBydW50aW1lQ29uZmlnX3NoYXJlZF8xLmdldFJ1bnRpbWVDb25maWcpKGNvbmZpZyk7XG4gICAgKDAsIGNvcmVfMS5lbWl0V2FybmluZ0lmVW5zdXBwb3J0ZWRWZXJzaW9uKShwcm9jZXNzLnZlcnNpb24pO1xuICAgIGNvbnN0IGxvYWRlckNvbmZpZyA9IHtcbiAgICAgICAgcHJvZmlsZTogY29uZmlnPy5wcm9maWxlLFxuICAgICAgICBsb2dnZXI6IGNsaWVudFNoYXJlZFZhbHVlcy5sb2dnZXIsXG4gICAgfTtcbiAgICByZXR1cm4ge1xuICAgICAgICAuLi5jbGllbnRTaGFyZWRWYWx1ZXMsXG4gICAgICAgIC4uLmNvbmZpZyxcbiAgICAgICAgcnVudGltZTogXCJub2RlXCIsXG4gICAgICAgIGRlZmF1bHRzTW9kZSxcbiAgICAgICAgYXV0aFNjaGVtZVByZWZlcmVuY2U6IGNvbmZpZz8uYXV0aFNjaGVtZVByZWZlcmVuY2UgPz8gKDAsIG5vZGVfY29uZmlnX3Byb3ZpZGVyXzEubG9hZENvbmZpZykoY29yZV8xLk5PREVfQVVUSF9TQ0hFTUVfUFJFRkVSRU5DRV9PUFRJT05TLCBsb2FkZXJDb25maWcpLFxuICAgICAgICBib2R5TGVuZ3RoQ2hlY2tlcjogY29uZmlnPy5ib2R5TGVuZ3RoQ2hlY2tlciA/PyB1dGlsX2JvZHlfbGVuZ3RoX25vZGVfMS5jYWxjdWxhdGVCb2R5TGVuZ3RoLFxuICAgICAgICBkZWZhdWx0VXNlckFnZW50UHJvdmlkZXI6IGNvbmZpZz8uZGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyID8/XG4gICAgICAgICAgICAoMCwgdXRpbF91c2VyX2FnZW50X25vZGVfMS5jcmVhdGVEZWZhdWx0VXNlckFnZW50UHJvdmlkZXIpKHsgc2VydmljZUlkOiBjbGllbnRTaGFyZWRWYWx1ZXMuc2VydmljZUlkLCBjbGllbnRWZXJzaW9uOiBwYWNrYWdlX2pzb25fMS5kZWZhdWx0LnZlcnNpb24gfSksXG4gICAgICAgIG1heEF0dGVtcHRzOiBjb25maWc/Lm1heEF0dGVtcHRzID8/ICgwLCBub2RlX2NvbmZpZ19wcm92aWRlcl8xLmxvYWRDb25maWcpKG1pZGRsZXdhcmVfcmV0cnlfMS5OT0RFX01BWF9BVFRFTVBUX0NPTkZJR19PUFRJT05TLCBjb25maWcpLFxuICAgICAgICByZWdpb246IGNvbmZpZz8ucmVnaW9uID8/XG4gICAgICAgICAgICAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKShjb25maWdfcmVzb2x2ZXJfMS5OT0RFX1JFR0lPTl9DT05GSUdfT1BUSU9OUywgeyAuLi5jb25maWdfcmVzb2x2ZXJfMS5OT0RFX1JFR0lPTl9DT05GSUdfRklMRV9PUFRJT05TLCAuLi5sb2FkZXJDb25maWcgfSksXG4gICAgICAgIHJlcXVlc3RIYW5kbGVyOiBub2RlX2h0dHBfaGFuZGxlcl8xLk5vZGVIdHRwSGFuZGxlci5jcmVhdGUoY29uZmlnPy5yZXF1ZXN0SGFuZGxlciA/PyBkZWZhdWx0Q29uZmlnUHJvdmlkZXIpLFxuICAgICAgICByZXRyeU1vZGU6IGNvbmZpZz8ucmV0cnlNb2RlID8/XG4gICAgICAgICAgICAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKSh7XG4gICAgICAgICAgICAgICAgLi4ubWlkZGxld2FyZV9yZXRyeV8xLk5PREVfUkVUUllfTU9ERV9DT05GSUdfT1BUSU9OUyxcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiBhc3luYyAoKSA9PiAoYXdhaXQgZGVmYXVsdENvbmZpZ1Byb3ZpZGVyKCkpLnJldHJ5TW9kZSB8fCB1dGlsX3JldHJ5XzEuREVGQVVMVF9SRVRSWV9NT0RFLFxuICAgICAgICAgICAgfSwgY29uZmlnKSxcbiAgICAgICAgc2hhMjU2OiBjb25maWc/LnNoYTI1NiA/PyBoYXNoX25vZGVfMS5IYXNoLmJpbmQobnVsbCwgXCJzaGEyNTZcIiksXG4gICAgICAgIHN0cmVhbUNvbGxlY3RvcjogY29uZmlnPy5zdHJlYW1Db2xsZWN0b3IgPz8gbm9kZV9odHRwX2hhbmRsZXJfMS5zdHJlYW1Db2xsZWN0b3IsXG4gICAgICAgIHVzZUR1YWxzdGFja0VuZHBvaW50OiBjb25maWc/LnVzZUR1YWxzdGFja0VuZHBvaW50ID8/ICgwLCBub2RlX2NvbmZpZ19wcm92aWRlcl8xLmxvYWRDb25maWcpKGNvbmZpZ19yZXNvbHZlcl8xLk5PREVfVVNFX0RVQUxTVEFDS19FTkRQT0lOVF9DT05GSUdfT1BUSU9OUywgbG9hZGVyQ29uZmlnKSxcbiAgICAgICAgdXNlRmlwc0VuZHBvaW50OiBjb25maWc/LnVzZUZpcHNFbmRwb2ludCA/PyAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKShjb25maWdfcmVzb2x2ZXJfMS5OT0RFX1VTRV9GSVBTX0VORFBPSU5UX0NPTkZJR19PUFRJT05TLCBsb2FkZXJDb25maWcpLFxuICAgICAgICB1c2VyQWdlbnRBcHBJZDogY29uZmlnPy51c2VyQWdlbnRBcHBJZCA/PyAoMCwgbm9kZV9jb25maWdfcHJvdmlkZXJfMS5sb2FkQ29uZmlnKSh1dGlsX3VzZXJfYWdlbnRfbm9kZV8xLk5PREVfQVBQX0lEX0NPTkZJR19PUFRJT05TLCBsb2FkZXJDb25maWcpLFxuICAgIH07XG59O1xuZXhwb3J0cy5nZXRSdW50aW1lQ29uZmlnID0gZ2V0UnVudGltZUNvbmZpZztcbiIsCiAgICAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgbWlkZGxld2FyZUhvc3RIZWFkZXIgPSByZXF1aXJlKCdAYXdzLXNkay9taWRkbGV3YXJlLWhvc3QtaGVhZGVyJyk7XG52YXIgbWlkZGxld2FyZUxvZ2dlciA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL21pZGRsZXdhcmUtbG9nZ2VyJyk7XG52YXIgbWlkZGxld2FyZVJlY3Vyc2lvbkRldGVjdGlvbiA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL21pZGRsZXdhcmUtcmVjdXJzaW9uLWRldGVjdGlvbicpO1xudmFyIG1pZGRsZXdhcmVVc2VyQWdlbnQgPSByZXF1aXJlKCdAYXdzLXNkay9taWRkbGV3YXJlLXVzZXItYWdlbnQnKTtcbnZhciBjb25maWdSZXNvbHZlciA9IHJlcXVpcmUoJ0BzbWl0aHkvY29uZmlnLXJlc29sdmVyJyk7XG52YXIgY29yZSA9IHJlcXVpcmUoJ0BzbWl0aHkvY29yZScpO1xudmFyIHNjaGVtYSA9IHJlcXVpcmUoJ0BzbWl0aHkvY29yZS9zY2hlbWEnKTtcbnZhciBtaWRkbGV3YXJlQ29udGVudExlbmd0aCA9IHJlcXVpcmUoJ0BzbWl0aHkvbWlkZGxld2FyZS1jb250ZW50LWxlbmd0aCcpO1xudmFyIG1pZGRsZXdhcmVFbmRwb2ludCA9IHJlcXVpcmUoJ0BzbWl0aHkvbWlkZGxld2FyZS1lbmRwb2ludCcpO1xudmFyIG1pZGRsZXdhcmVSZXRyeSA9IHJlcXVpcmUoJ0BzbWl0aHkvbWlkZGxld2FyZS1yZXRyeScpO1xudmFyIHNtaXRoeUNsaWVudCA9IHJlcXVpcmUoJ0BzbWl0aHkvc21pdGh5LWNsaWVudCcpO1xudmFyIGh0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPSByZXF1aXJlKCcuL2F1dGgvaHR0cEF1dGhTY2hlbWVQcm92aWRlcicpO1xudmFyIHJ1bnRpbWVDb25maWcgPSByZXF1aXJlKCcuL3J1bnRpbWVDb25maWcnKTtcbnZhciByZWdpb25Db25maWdSZXNvbHZlciA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL3JlZ2lvbi1jb25maWctcmVzb2x2ZXInKTtcbnZhciBwcm90b2NvbEh0dHAgPSByZXF1aXJlKCdAc21pdGh5L3Byb3RvY29sLWh0dHAnKTtcblxuY29uc3QgcmVzb2x2ZUNsaWVudEVuZHBvaW50UGFyYW1ldGVycyA9IChvcHRpb25zKSA9PiB7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24ob3B0aW9ucywge1xuICAgICAgICB1c2VEdWFsc3RhY2tFbmRwb2ludDogb3B0aW9ucy51c2VEdWFsc3RhY2tFbmRwb2ludCA/PyBmYWxzZSxcbiAgICAgICAgdXNlRmlwc0VuZHBvaW50OiBvcHRpb25zLnVzZUZpcHNFbmRwb2ludCA/PyBmYWxzZSxcbiAgICAgICAgZGVmYXVsdFNpZ25pbmdOYW1lOiBcInNpZ25pblwiLFxuICAgIH0pO1xufTtcbmNvbnN0IGNvbW1vblBhcmFtcyA9IHtcbiAgICBVc2VGSVBTOiB7IHR5cGU6IFwiYnVpbHRJblBhcmFtc1wiLCBuYW1lOiBcInVzZUZpcHNFbmRwb2ludFwiIH0sXG4gICAgRW5kcG9pbnQ6IHsgdHlwZTogXCJidWlsdEluUGFyYW1zXCIsIG5hbWU6IFwiZW5kcG9pbnRcIiB9LFxuICAgIFJlZ2lvbjogeyB0eXBlOiBcImJ1aWx0SW5QYXJhbXNcIiwgbmFtZTogXCJyZWdpb25cIiB9LFxuICAgIFVzZUR1YWxTdGFjazogeyB0eXBlOiBcImJ1aWx0SW5QYXJhbXNcIiwgbmFtZTogXCJ1c2VEdWFsc3RhY2tFbmRwb2ludFwiIH0sXG59O1xuXG5jb25zdCBnZXRIdHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24gPSAocnVudGltZUNvbmZpZykgPT4ge1xuICAgIGNvbnN0IF9odHRwQXV0aFNjaGVtZXMgPSBydW50aW1lQ29uZmlnLmh0dHBBdXRoU2NoZW1lcztcbiAgICBsZXQgX2h0dHBBdXRoU2NoZW1lUHJvdmlkZXIgPSBydW50aW1lQ29uZmlnLmh0dHBBdXRoU2NoZW1lUHJvdmlkZXI7XG4gICAgbGV0IF9jcmVkZW50aWFscyA9IHJ1bnRpbWVDb25maWcuY3JlZGVudGlhbHM7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc2V0SHR0cEF1dGhTY2hlbWUoaHR0cEF1dGhTY2hlbWUpIHtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gX2h0dHBBdXRoU2NoZW1lcy5maW5kSW5kZXgoKHNjaGVtZSkgPT4gc2NoZW1lLnNjaGVtZUlkID09PSBodHRwQXV0aFNjaGVtZS5zY2hlbWVJZCk7XG4gICAgICAgICAgICBpZiAoaW5kZXggPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgX2h0dHBBdXRoU2NoZW1lcy5wdXNoKGh0dHBBdXRoU2NoZW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIF9odHRwQXV0aFNjaGVtZXMuc3BsaWNlKGluZGV4LCAxLCBodHRwQXV0aFNjaGVtZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGh0dHBBdXRoU2NoZW1lcygpIHtcbiAgICAgICAgICAgIHJldHVybiBfaHR0cEF1dGhTY2hlbWVzO1xuICAgICAgICB9LFxuICAgICAgICBzZXRIdHRwQXV0aFNjaGVtZVByb3ZpZGVyKGh0dHBBdXRoU2NoZW1lUHJvdmlkZXIpIHtcbiAgICAgICAgICAgIF9odHRwQXV0aFNjaGVtZVByb3ZpZGVyID0gaHR0cEF1dGhTY2hlbWVQcm92aWRlcjtcbiAgICAgICAgfSxcbiAgICAgICAgaHR0cEF1dGhTY2hlbWVQcm92aWRlcigpIHtcbiAgICAgICAgICAgIHJldHVybiBfaHR0cEF1dGhTY2hlbWVQcm92aWRlcjtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0Q3JlZGVudGlhbHMoY3JlZGVudGlhbHMpIHtcbiAgICAgICAgICAgIF9jcmVkZW50aWFscyA9IGNyZWRlbnRpYWxzO1xuICAgICAgICB9LFxuICAgICAgICBjcmVkZW50aWFscygpIHtcbiAgICAgICAgICAgIHJldHVybiBfY3JlZGVudGlhbHM7XG4gICAgICAgIH0sXG4gICAgfTtcbn07XG5jb25zdCByZXNvbHZlSHR0cEF1dGhSdW50aW1lQ29uZmlnID0gKGNvbmZpZykgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAgIGh0dHBBdXRoU2NoZW1lczogY29uZmlnLmh0dHBBdXRoU2NoZW1lcygpLFxuICAgICAgICBodHRwQXV0aFNjaGVtZVByb3ZpZGVyOiBjb25maWcuaHR0cEF1dGhTY2hlbWVQcm92aWRlcigpLFxuICAgICAgICBjcmVkZW50aWFsczogY29uZmlnLmNyZWRlbnRpYWxzKCksXG4gICAgfTtcbn07XG5cbmNvbnN0IHJlc29sdmVSdW50aW1lRXh0ZW5zaW9ucyA9IChydW50aW1lQ29uZmlnLCBleHRlbnNpb25zKSA9PiB7XG4gICAgY29uc3QgZXh0ZW5zaW9uQ29uZmlndXJhdGlvbiA9IE9iamVjdC5hc3NpZ24ocmVnaW9uQ29uZmlnUmVzb2x2ZXIuZ2V0QXdzUmVnaW9uRXh0ZW5zaW9uQ29uZmlndXJhdGlvbihydW50aW1lQ29uZmlnKSwgc21pdGh5Q2xpZW50LmdldERlZmF1bHRFeHRlbnNpb25Db25maWd1cmF0aW9uKHJ1bnRpbWVDb25maWcpLCBwcm90b2NvbEh0dHAuZ2V0SHR0cEhhbmRsZXJFeHRlbnNpb25Db25maWd1cmF0aW9uKHJ1bnRpbWVDb25maWcpLCBnZXRIdHRwQXV0aEV4dGVuc2lvbkNvbmZpZ3VyYXRpb24ocnVudGltZUNvbmZpZykpO1xuICAgIGV4dGVuc2lvbnMuZm9yRWFjaCgoZXh0ZW5zaW9uKSA9PiBleHRlbnNpb24uY29uZmlndXJlKGV4dGVuc2lvbkNvbmZpZ3VyYXRpb24pKTtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihydW50aW1lQ29uZmlnLCByZWdpb25Db25maWdSZXNvbHZlci5yZXNvbHZlQXdzUmVnaW9uRXh0ZW5zaW9uQ29uZmlndXJhdGlvbihleHRlbnNpb25Db25maWd1cmF0aW9uKSwgc21pdGh5Q2xpZW50LnJlc29sdmVEZWZhdWx0UnVudGltZUNvbmZpZyhleHRlbnNpb25Db25maWd1cmF0aW9uKSwgcHJvdG9jb2xIdHRwLnJlc29sdmVIdHRwSGFuZGxlclJ1bnRpbWVDb25maWcoZXh0ZW5zaW9uQ29uZmlndXJhdGlvbiksIHJlc29sdmVIdHRwQXV0aFJ1bnRpbWVDb25maWcoZXh0ZW5zaW9uQ29uZmlndXJhdGlvbikpO1xufTtcblxuY2xhc3MgU2lnbmluQ2xpZW50IGV4dGVuZHMgc21pdGh5Q2xpZW50LkNsaWVudCB7XG4gICAgY29uZmlnO1xuICAgIGNvbnN0cnVjdG9yKC4uLltjb25maWd1cmF0aW9uXSkge1xuICAgICAgICBjb25zdCBfY29uZmlnXzAgPSBydW50aW1lQ29uZmlnLmdldFJ1bnRpbWVDb25maWcoY29uZmlndXJhdGlvbiB8fCB7fSk7XG4gICAgICAgIHN1cGVyKF9jb25maWdfMCk7XG4gICAgICAgIHRoaXMuaW5pdENvbmZpZyA9IF9jb25maWdfMDtcbiAgICAgICAgY29uc3QgX2NvbmZpZ18xID0gcmVzb2x2ZUNsaWVudEVuZHBvaW50UGFyYW1ldGVycyhfY29uZmlnXzApO1xuICAgICAgICBjb25zdCBfY29uZmlnXzIgPSBtaWRkbGV3YXJlVXNlckFnZW50LnJlc29sdmVVc2VyQWdlbnRDb25maWcoX2NvbmZpZ18xKTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ18zID0gbWlkZGxld2FyZVJldHJ5LnJlc29sdmVSZXRyeUNvbmZpZyhfY29uZmlnXzIpO1xuICAgICAgICBjb25zdCBfY29uZmlnXzQgPSBjb25maWdSZXNvbHZlci5yZXNvbHZlUmVnaW9uQ29uZmlnKF9jb25maWdfMyk7XG4gICAgICAgIGNvbnN0IF9jb25maWdfNSA9IG1pZGRsZXdhcmVIb3N0SGVhZGVyLnJlc29sdmVIb3N0SGVhZGVyQ29uZmlnKF9jb25maWdfNCk7XG4gICAgICAgIGNvbnN0IF9jb25maWdfNiA9IG1pZGRsZXdhcmVFbmRwb2ludC5yZXNvbHZlRW5kcG9pbnRDb25maWcoX2NvbmZpZ181KTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ183ID0gaHR0cEF1dGhTY2hlbWVQcm92aWRlci5yZXNvbHZlSHR0cEF1dGhTY2hlbWVDb25maWcoX2NvbmZpZ182KTtcbiAgICAgICAgY29uc3QgX2NvbmZpZ184ID0gcmVzb2x2ZVJ1bnRpbWVFeHRlbnNpb25zKF9jb25maWdfNywgY29uZmlndXJhdGlvbj8uZXh0ZW5zaW9ucyB8fCBbXSk7XG4gICAgICAgIHRoaXMuY29uZmlnID0gX2NvbmZpZ184O1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2Uoc2NoZW1hLmdldFNjaGVtYVNlcmRlUGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShtaWRkbGV3YXJlVXNlckFnZW50LmdldFVzZXJBZ2VudFBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UobWlkZGxld2FyZVJldHJ5LmdldFJldHJ5UGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShtaWRkbGV3YXJlQ29udGVudExlbmd0aC5nZXRDb250ZW50TGVuZ3RoUGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShtaWRkbGV3YXJlSG9zdEhlYWRlci5nZXRIb3N0SGVhZGVyUGx1Z2luKHRoaXMuY29uZmlnKSk7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVN0YWNrLnVzZShtaWRkbGV3YXJlTG9nZ2VyLmdldExvZ2dlclBsdWdpbih0aGlzLmNvbmZpZykpO1xuICAgICAgICB0aGlzLm1pZGRsZXdhcmVTdGFjay51c2UobWlkZGxld2FyZVJlY3Vyc2lvbkRldGVjdGlvbi5nZXRSZWN1cnNpb25EZXRlY3Rpb25QbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKGNvcmUuZ2V0SHR0cEF1dGhTY2hlbWVFbmRwb2ludFJ1bGVTZXRQbHVnaW4odGhpcy5jb25maWcsIHtcbiAgICAgICAgICAgIGh0dHBBdXRoU2NoZW1lUGFyYW1ldGVyc1Byb3ZpZGVyOiBodHRwQXV0aFNjaGVtZVByb3ZpZGVyLmRlZmF1bHRTaWduaW5IdHRwQXV0aFNjaGVtZVBhcmFtZXRlcnNQcm92aWRlcixcbiAgICAgICAgICAgIGlkZW50aXR5UHJvdmlkZXJDb25maWdQcm92aWRlcjogYXN5bmMgKGNvbmZpZykgPT4gbmV3IGNvcmUuRGVmYXVsdElkZW50aXR5UHJvdmlkZXJDb25maWcoe1xuICAgICAgICAgICAgICAgIFwiYXdzLmF1dGgjc2lndjRcIjogY29uZmlnLmNyZWRlbnRpYWxzLFxuICAgICAgICAgICAgfSksXG4gICAgICAgIH0pKTtcbiAgICAgICAgdGhpcy5taWRkbGV3YXJlU3RhY2sudXNlKGNvcmUuZ2V0SHR0cFNpZ25pbmdQbHVnaW4odGhpcy5jb25maWcpKTtcbiAgICB9XG4gICAgZGVzdHJveSgpIHtcbiAgICAgICAgc3VwZXIuZGVzdHJveSgpO1xuICAgIH1cbn1cblxubGV0IFNpZ25pblNlcnZpY2VFeGNlcHRpb24kMSA9IGNsYXNzIFNpZ25pblNlcnZpY2VFeGNlcHRpb24gZXh0ZW5kcyBzbWl0aHlDbGllbnQuU2VydmljZUV4Y2VwdGlvbiB7XG4gICAgY29uc3RydWN0b3Iob3B0aW9ucykge1xuICAgICAgICBzdXBlcihvcHRpb25zKTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFNpZ25pblNlcnZpY2VFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICB9XG59O1xuXG5sZXQgQWNjZXNzRGVuaWVkRXhjZXB0aW9uJDEgPSBjbGFzcyBBY2Nlc3NEZW5pZWRFeGNlcHRpb24gZXh0ZW5kcyBTaWduaW5TZXJ2aWNlRXhjZXB0aW9uJDEge1xuICAgIG5hbWUgPSBcIkFjY2Vzc0RlbmllZEV4Y2VwdGlvblwiO1xuICAgICRmYXVsdCA9IFwiY2xpZW50XCI7XG4gICAgZXJyb3I7XG4gICAgY29uc3RydWN0b3Iob3B0cykge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBuYW1lOiBcIkFjY2Vzc0RlbmllZEV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBBY2Nlc3NEZW5pZWRFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5lcnJvciA9IG9wdHMuZXJyb3I7XG4gICAgfVxufTtcbmxldCBJbnRlcm5hbFNlcnZlckV4Y2VwdGlvbiQxID0gY2xhc3MgSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb24gZXh0ZW5kcyBTaWduaW5TZXJ2aWNlRXhjZXB0aW9uJDEge1xuICAgIG5hbWUgPSBcIkludGVybmFsU2VydmVyRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJzZXJ2ZXJcIjtcbiAgICBlcnJvcjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb25cIixcbiAgICAgICAgICAgICRmYXVsdDogXCJzZXJ2ZXJcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb24ucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5lcnJvciA9IG9wdHMuZXJyb3I7XG4gICAgfVxufTtcbmxldCBUb29NYW55UmVxdWVzdHNFcnJvciQxID0gY2xhc3MgVG9vTWFueVJlcXVlc3RzRXJyb3IgZXh0ZW5kcyBTaWduaW5TZXJ2aWNlRXhjZXB0aW9uJDEge1xuICAgIG5hbWUgPSBcIlRvb01hbnlSZXF1ZXN0c0Vycm9yXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBlcnJvcjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiVG9vTWFueVJlcXVlc3RzRXJyb3JcIixcbiAgICAgICAgICAgICRmYXVsdDogXCJjbGllbnRcIixcbiAgICAgICAgICAgIC4uLm9wdHMsXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgVG9vTWFueVJlcXVlc3RzRXJyb3IucHJvdG90eXBlKTtcbiAgICAgICAgdGhpcy5lcnJvciA9IG9wdHMuZXJyb3I7XG4gICAgfVxufTtcbmxldCBWYWxpZGF0aW9uRXhjZXB0aW9uJDEgPSBjbGFzcyBWYWxpZGF0aW9uRXhjZXB0aW9uIGV4dGVuZHMgU2lnbmluU2VydmljZUV4Y2VwdGlvbiQxIHtcbiAgICBuYW1lID0gXCJWYWxpZGF0aW9uRXhjZXB0aW9uXCI7XG4gICAgJGZhdWx0ID0gXCJjbGllbnRcIjtcbiAgICBlcnJvcjtcbiAgICBjb25zdHJ1Y3RvcihvcHRzKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIG5hbWU6IFwiVmFsaWRhdGlvbkV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgJGZhdWx0OiBcImNsaWVudFwiLFxuICAgICAgICAgICAgLi4ub3B0cyxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBWYWxpZGF0aW9uRXhjZXB0aW9uLnByb3RvdHlwZSk7XG4gICAgICAgIHRoaXMuZXJyb3IgPSBvcHRzLmVycm9yO1xuICAgIH1cbn07XG5cbmNvbnN0IF9BREUgPSBcIkFjY2Vzc0RlbmllZEV4Y2VwdGlvblwiO1xuY29uc3QgX0FUID0gXCJBY2Nlc3NUb2tlblwiO1xuY29uc3QgX0NPQVQgPSBcIkNyZWF0ZU9BdXRoMlRva2VuXCI7XG5jb25zdCBfQ09BVFIgPSBcIkNyZWF0ZU9BdXRoMlRva2VuUmVxdWVzdFwiO1xuY29uc3QgX0NPQVRSQiA9IFwiQ3JlYXRlT0F1dGgyVG9rZW5SZXF1ZXN0Qm9keVwiO1xuY29uc3QgX0NPQVRSQnIgPSBcIkNyZWF0ZU9BdXRoMlRva2VuUmVzcG9uc2VCb2R5XCI7XG5jb25zdCBfQ09BVFJyID0gXCJDcmVhdGVPQXV0aDJUb2tlblJlc3BvbnNlXCI7XG5jb25zdCBfSVNFID0gXCJJbnRlcm5hbFNlcnZlckV4Y2VwdGlvblwiO1xuY29uc3QgX1JUID0gXCJSZWZyZXNoVG9rZW5cIjtcbmNvbnN0IF9UTVJFID0gXCJUb29NYW55UmVxdWVzdHNFcnJvclwiO1xuY29uc3QgX1ZFID0gXCJWYWxpZGF0aW9uRXhjZXB0aW9uXCI7XG5jb25zdCBfYUtJID0gXCJhY2Nlc3NLZXlJZFwiO1xuY29uc3QgX2FUID0gXCJhY2Nlc3NUb2tlblwiO1xuY29uc3QgX2MgPSBcImNsaWVudFwiO1xuY29uc3QgX2NJID0gXCJjbGllbnRJZFwiO1xuY29uc3QgX2NWID0gXCJjb2RlVmVyaWZpZXJcIjtcbmNvbnN0IF9jbyA9IFwiY29kZVwiO1xuY29uc3QgX2UgPSBcImVycm9yXCI7XG5jb25zdCBfZUkgPSBcImV4cGlyZXNJblwiO1xuY29uc3QgX2dUID0gXCJncmFudFR5cGVcIjtcbmNvbnN0IF9oID0gXCJodHRwXCI7XG5jb25zdCBfaEUgPSBcImh0dHBFcnJvclwiO1xuY29uc3QgX2lUID0gXCJpZFRva2VuXCI7XG5jb25zdCBfak4gPSBcImpzb25OYW1lXCI7XG5jb25zdCBfbSA9IFwibWVzc2FnZVwiO1xuY29uc3QgX3JUID0gXCJyZWZyZXNoVG9rZW5cIjtcbmNvbnN0IF9yVSA9IFwicmVkaXJlY3RVcmlcIjtcbmNvbnN0IF9zID0gXCJzZXJ2ZXJcIjtcbmNvbnN0IF9zQUsgPSBcInNlY3JldEFjY2Vzc0tleVwiO1xuY29uc3QgX3NUID0gXCJzZXNzaW9uVG9rZW5cIjtcbmNvbnN0IF9zbSA9IFwic21pdGh5LnRzLnNkay5zeW50aGV0aWMuY29tLmFtYXpvbmF3cy5zaWduaW5cIjtcbmNvbnN0IF90SSA9IFwidG9rZW5JbnB1dFwiO1xuY29uc3QgX3RPID0gXCJ0b2tlbk91dHB1dFwiO1xuY29uc3QgX3RUID0gXCJ0b2tlblR5cGVcIjtcbmNvbnN0IG4wID0gXCJjb20uYW1hem9uYXdzLnNpZ25pblwiO1xudmFyIFJlZnJlc2hUb2tlbiA9IFswLCBuMCwgX1JULCA4LCAwXTtcbnZhciBBY2Nlc3NEZW5pZWRFeGNlcHRpb24gPSBbXG4gICAgLTMsXG4gICAgbjAsXG4gICAgX0FERSxcbiAgICB7XG4gICAgICAgIFtfZV06IF9jLFxuICAgIH0sXG4gICAgW19lLCBfbV0sXG4gICAgWzAsIDBdLFxuXTtcbnNjaGVtYS5UeXBlUmVnaXN0cnkuZm9yKG4wKS5yZWdpc3RlckVycm9yKEFjY2Vzc0RlbmllZEV4Y2VwdGlvbiwgQWNjZXNzRGVuaWVkRXhjZXB0aW9uJDEpO1xudmFyIEFjY2Vzc1Rva2VuID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0FULFxuICAgIDgsXG4gICAgW19hS0ksIF9zQUssIF9zVF0sXG4gICAgW1xuICAgICAgICBbXG4gICAgICAgICAgICAwLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIFtfak5dOiBfYUtJLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgW1xuICAgICAgICAgICAgMCxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBbX2pOXTogX3NBSyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIFtcbiAgICAgICAgICAgIDAsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgW19qTl06IF9zVCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgXSxcbl07XG52YXIgQ3JlYXRlT0F1dGgyVG9rZW5SZXF1ZXN0ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0NPQVRSLFxuICAgIDAsXG4gICAgW190SV0sXG4gICAgW1soKSA9PiBDcmVhdGVPQXV0aDJUb2tlblJlcXVlc3RCb2R5LCAxNl1dLFxuXTtcbnZhciBDcmVhdGVPQXV0aDJUb2tlblJlcXVlc3RCb2R5ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0NPQVRSQixcbiAgICAwLFxuICAgIFtfY0ksIF9nVCwgX2NvLCBfclUsIF9jViwgX3JUXSxcbiAgICBbXG4gICAgICAgIFtcbiAgICAgICAgICAgIDAsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgW19qTl06IF9jSSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIFtcbiAgICAgICAgICAgIDAsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgW19qTl06IF9nVCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIDAsXG4gICAgICAgIFtcbiAgICAgICAgICAgIDAsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgW19qTl06IF9yVSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIFtcbiAgICAgICAgICAgIDAsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgW19qTl06IF9jVixcbiAgICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIFtcbiAgICAgICAgICAgICgpID0+IFJlZnJlc2hUb2tlbixcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBbX2pOXTogX3JULFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICBdLFxuXTtcbnZhciBDcmVhdGVPQXV0aDJUb2tlblJlc3BvbnNlID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0NPQVRScixcbiAgICAwLFxuICAgIFtfdE9dLFxuICAgIFtbKCkgPT4gQ3JlYXRlT0F1dGgyVG9rZW5SZXNwb25zZUJvZHksIDE2XV0sXG5dO1xudmFyIENyZWF0ZU9BdXRoMlRva2VuUmVzcG9uc2VCb2R5ID0gW1xuICAgIDMsXG4gICAgbjAsXG4gICAgX0NPQVRSQnIsXG4gICAgMCxcbiAgICBbX2FULCBfdFQsIF9lSSwgX3JULCBfaVRdLFxuICAgIFtcbiAgICAgICAgW1xuICAgICAgICAgICAgKCkgPT4gQWNjZXNzVG9rZW4sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgW19qTl06IF9hVCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIFtcbiAgICAgICAgICAgIDAsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgW19qTl06IF90VCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIFtcbiAgICAgICAgICAgIDEsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgW19qTl06IF9lSSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIFtcbiAgICAgICAgICAgICgpID0+IFJlZnJlc2hUb2tlbixcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBbX2pOXTogX3JULFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgW1xuICAgICAgICAgICAgMCxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBbX2pOXTogX2lULFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICBdLFxuXTtcbnZhciBJbnRlcm5hbFNlcnZlckV4Y2VwdGlvbiA9IFtcbiAgICAtMyxcbiAgICBuMCxcbiAgICBfSVNFLFxuICAgIHtcbiAgICAgICAgW19lXTogX3MsXG4gICAgICAgIFtfaEVdOiA1MDAsXG4gICAgfSxcbiAgICBbX2UsIF9tXSxcbiAgICBbMCwgMF0sXG5dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb24sIEludGVybmFsU2VydmVyRXhjZXB0aW9uJDEpO1xudmFyIFRvb01hbnlSZXF1ZXN0c0Vycm9yID0gW1xuICAgIC0zLFxuICAgIG4wLFxuICAgIF9UTVJFLFxuICAgIHtcbiAgICAgICAgW19lXTogX2MsXG4gICAgICAgIFtfaEVdOiA0MjksXG4gICAgfSxcbiAgICBbX2UsIF9tXSxcbiAgICBbMCwgMF0sXG5dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoVG9vTWFueVJlcXVlc3RzRXJyb3IsIFRvb01hbnlSZXF1ZXN0c0Vycm9yJDEpO1xudmFyIFZhbGlkYXRpb25FeGNlcHRpb24gPSBbXG4gICAgLTMsXG4gICAgbjAsXG4gICAgX1ZFLFxuICAgIHtcbiAgICAgICAgW19lXTogX2MsXG4gICAgICAgIFtfaEVdOiA0MDAsXG4gICAgfSxcbiAgICBbX2UsIF9tXSxcbiAgICBbMCwgMF0sXG5dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IobjApLnJlZ2lzdGVyRXJyb3IoVmFsaWRhdGlvbkV4Y2VwdGlvbiwgVmFsaWRhdGlvbkV4Y2VwdGlvbiQxKTtcbnZhciBTaWduaW5TZXJ2aWNlRXhjZXB0aW9uID0gWy0zLCBfc20sIFwiU2lnbmluU2VydmljZUV4Y2VwdGlvblwiLCAwLCBbXSwgW11dO1xuc2NoZW1hLlR5cGVSZWdpc3RyeS5mb3IoX3NtKS5yZWdpc3RlckVycm9yKFNpZ25pblNlcnZpY2VFeGNlcHRpb24sIFNpZ25pblNlcnZpY2VFeGNlcHRpb24kMSk7XG52YXIgQ3JlYXRlT0F1dGgyVG9rZW4gPSBbXG4gICAgOSxcbiAgICBuMCxcbiAgICBfQ09BVCxcbiAgICB7XG4gICAgICAgIFtfaF06IFtcIlBPU1RcIiwgXCIvdjEvdG9rZW5cIiwgMjAwXSxcbiAgICB9LFxuICAgICgpID0+IENyZWF0ZU9BdXRoMlRva2VuUmVxdWVzdCxcbiAgICAoKSA9PiBDcmVhdGVPQXV0aDJUb2tlblJlc3BvbnNlLFxuXTtcblxuY2xhc3MgQ3JlYXRlT0F1dGgyVG9rZW5Db21tYW5kIGV4dGVuZHMgc21pdGh5Q2xpZW50LkNvbW1hbmRcbiAgICAuY2xhc3NCdWlsZGVyKClcbiAgICAuZXAoY29tbW9uUGFyYW1zKVxuICAgIC5tKGZ1bmN0aW9uIChDb21tYW5kLCBjcywgY29uZmlnLCBvKSB7XG4gICAgcmV0dXJuIFttaWRkbGV3YXJlRW5kcG9pbnQuZ2V0RW5kcG9pbnRQbHVnaW4oY29uZmlnLCBDb21tYW5kLmdldEVuZHBvaW50UGFyYW1ldGVySW5zdHJ1Y3Rpb25zKCkpXTtcbn0pXG4gICAgLnMoXCJTaWduaW5cIiwgXCJDcmVhdGVPQXV0aDJUb2tlblwiLCB7fSlcbiAgICAubihcIlNpZ25pbkNsaWVudFwiLCBcIkNyZWF0ZU9BdXRoMlRva2VuQ29tbWFuZFwiKVxuICAgIC5zYyhDcmVhdGVPQXV0aDJUb2tlbilcbiAgICAuYnVpbGQoKSB7XG59XG5cbmNvbnN0IGNvbW1hbmRzID0ge1xuICAgIENyZWF0ZU9BdXRoMlRva2VuQ29tbWFuZCxcbn07XG5jbGFzcyBTaWduaW4gZXh0ZW5kcyBTaWduaW5DbGllbnQge1xufVxuc21pdGh5Q2xpZW50LmNyZWF0ZUFnZ3JlZ2F0ZWRDbGllbnQoY29tbWFuZHMsIFNpZ25pbik7XG5cbmNvbnN0IE9BdXRoMkVycm9yQ29kZSA9IHtcbiAgICBBVVRIQ09ERV9FWFBJUkVEOiBcIkFVVEhDT0RFX0VYUElSRURcIixcbiAgICBJTlNVRkZJQ0lFTlRfUEVSTUlTU0lPTlM6IFwiSU5TVUZGSUNJRU5UX1BFUk1JU1NJT05TXCIsXG4gICAgSU5WQUxJRF9SRVFVRVNUOiBcIklOVkFMSURfUkVRVUVTVFwiLFxuICAgIFNFUlZFUl9FUlJPUjogXCJzZXJ2ZXJfZXJyb3JcIixcbiAgICBUT0tFTl9FWFBJUkVEOiBcIlRPS0VOX0VYUElSRURcIixcbiAgICBVU0VSX0NSRURFTlRJQUxTX0NIQU5HRUQ6IFwiVVNFUl9DUkVERU5USUFMU19DSEFOR0VEXCIsXG59O1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCIkQ29tbWFuZFwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHNtaXRoeUNsaWVudC5Db21tYW5kOyB9XG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fQ2xpZW50XCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gc21pdGh5Q2xpZW50LkNsaWVudDsgfVxufSk7XG5leHBvcnRzLkFjY2Vzc0RlbmllZEV4Y2VwdGlvbiA9IEFjY2Vzc0RlbmllZEV4Y2VwdGlvbiQxO1xuZXhwb3J0cy5DcmVhdGVPQXV0aDJUb2tlbkNvbW1hbmQgPSBDcmVhdGVPQXV0aDJUb2tlbkNvbW1hbmQ7XG5leHBvcnRzLkludGVybmFsU2VydmVyRXhjZXB0aW9uID0gSW50ZXJuYWxTZXJ2ZXJFeGNlcHRpb24kMTtcbmV4cG9ydHMuT0F1dGgyRXJyb3JDb2RlID0gT0F1dGgyRXJyb3JDb2RlO1xuZXhwb3J0cy5TaWduaW4gPSBTaWduaW47XG5leHBvcnRzLlNpZ25pbkNsaWVudCA9IFNpZ25pbkNsaWVudDtcbmV4cG9ydHMuU2lnbmluU2VydmljZUV4Y2VwdGlvbiA9IFNpZ25pblNlcnZpY2VFeGNlcHRpb24kMTtcbmV4cG9ydHMuVG9vTWFueVJlcXVlc3RzRXJyb3IgPSBUb29NYW55UmVxdWVzdHNFcnJvciQxO1xuZXhwb3J0cy5WYWxpZGF0aW9uRXhjZXB0aW9uID0gVmFsaWRhdGlvbkV4Y2VwdGlvbiQxO1xuIgogIF0sCiAgIm1hcHBpbmdzIjogInNwQkFDQSxDQUFPLFNBQWUsSkFBUyxPQUFjLExBQUUsQUFBTyxKQUFLLExBQUMsSkFDcEQsd0JBQXNDLHNDQUE4QyxnREFBcUQsT0FDakosSUFBTSxPQUNBLE9BQ0EsR0FBZ0QsTUFBTyxFQUFRLEVBQVMsSUFBVSxDQUNwRixNQUFPLENBQ0gsV0FBWSxFQUFHLEVBQWtCLGtCQUFrQixDQUFPLEVBQUUsVUFDNUQsT0FBUyxNQUFPLEVBQUcsRUFBa0IsbUJBQW1CLEVBQU8sTUFBTSxFQUFFLElBQ2xFLElBQU0sQ0FDSCxNQUFVLE1BQU0seURBQXlELElBQzFFLENBQ1gsR0FFSSxnREFBZ0QsR0FDeEQsU0FBUyxFQUFnQyxDQUFDLEVBQWdCLENBQ3RELE1BQU8sQ0FDSCxTQUFVLGlCQUNWLGtCQUFtQixDQUNmLEtBQU0sU0FDTixPQUFRLEVBQWUsTUFDM0IsRUFDQSxvQkFBcUIsQ0FBQyxFQUFRLEtBQWEsQ0FDdkMsa0JBQW1CLENBQ2YsU0FDQSxTQUNKLENBQ0osRUFDSixFQUVKLFNBQVMsRUFBbUMsQ0FBQyxFQUFnQixDQUN6RCxNQUFPLENBQ0gsU0FBVSxtQkFDZCxFQUVKLElBQU0sR0FBc0MsQ0FBQyxJQUFtQixDQUM1RCxJQUFNLEVBQVUsQ0FBQyxFQUNqQixPQUFRLEVBQWUsZUFDZCxvQkFBcUIsQ0FDdEIsRUFBUSxLQUFLLEdBQW9DLENBQWMsQ0FBQyxFQUNoRSxLQUNKLFNBRUksRUFBUSxLQUFLLEdBQWlDLENBQWMsQ0FBQyxFQUdyRSxPQUFPLEdBRUgsc0NBQXNDLEdBQzlDLElBQU0sR0FBOEIsQ0FBQyxJQUFXLENBQzVDLElBQU0sR0FBWSxFQUFHLEdBQU8sMEJBQTBCLENBQU0sRUFDNUQsT0FBTyxPQUFPLE9BQU8sRUFBVSxDQUMzQixzQkFBdUIsRUFBRyxFQUFrQixtQkFBbUIsRUFBTyxzQkFBd0IsQ0FBQyxDQUFDLENBQ3BHLENBQUMsR0FFRyw4QkFBOEIscUJDdER0QyxPQUFPLGVBQWUsR0FBUyxhQUFjLENBQUUsTUFBTyxFQUFLLENBQUMsRUFDcEQsV0FBZSxPQUN2QixJQUFNLEdBQUksV0FBWSxFQUFJLEtBQU0sRUFBSSxPQUFRLEVBQUksTUFDMUMsRUFBSSxHQUFNLEVBQUksUUFBUyxFQUFJLGdCQUFpQixFQUFJLFFBQVMsRUFBSSxXQUFZLEVBQUksT0FBUSxFQUFJLGtCQUFtQixFQUFJLGVBQWdCLEVBQUksRUFBRyxJQUFJLEdBQU0sUUFBVyxHQUFPLEtBQVEsU0FBVSxFQUFHLEVBQUksRUFBRyxJQUFJLEdBQU8sS0FBUSxRQUFTLEVBQUcsRUFBSSxFQUFHLEdBQUksVUFBVyxFQUFHLEVBQUksRUFBRyxHQUFJLEdBQUksR0FBSSxDQUFDLEVBQUcsR0FBSSxTQUFVLEVBQUcsRUFBSSxDQUFFLEVBQUcsRUFBSSxFQUFHLEdBQUksR0FBSSxHQUFJLENBQUMsRUFBRyxHQUFJLGNBQWUsRUFBRyxFQUFJLENBQUUsRUFBRyxFQUFJLENBQUMsRUFBRyxFQUFJLEVBQUcsR0FBSSxXQUFZLEdBQUksQ0FBQyxFQUFHLEdBQUksQ0FBRSxFQUFHLE1BQU0sQ0FBRSxFQUFHLEVBQUksRUFBRyxHQUFJLEdBQUksR0FBSSxDQUFDLEVBQUcsR0FBSSxTQUFVLEVBQUcsRUFBSyxDQUFFLEVBQUcsRUFBSSxFQUFHLEdBQUksR0FBSSxHQUFJLENBQUMsRUFBRyxHQUFJLGNBQWUsRUFBRyxFQUFLLENBQUUsRUFBRyxFQUFJLEVBQUcsR0FBSSxXQUFZLEdBQUksQ0FBQyxFQUFHLEdBQUksQ0FBRSxFQUFHLGNBQWMsQ0FBRSxFQUFHLEVBQUksRUFBRyxHQUFJLEdBQUksR0FBSSxDQUFDLEdBQU0sRUFBRyxHQUFJLFdBQVksR0FBSSxDQUFDLEVBQUcsR0FBSSxDQUFFLEVBQUcsbUJBQW1CLENBQUUsQ0FBQyxDQUFFLEVBQUcsR0FBSSxDQUFDLEVBQUcsR0FBSSxRQUFTLENBQUMsRUFDNXFCLEdBQVEsQ0FBRSxRQUFTLE1BQU8sV0FBWSxDQUFFLGFBQWMsRUFBRyxRQUFTLEVBQUcsU0FBVSxFQUFHLE9BQVEsQ0FBRSxFQUFHLE1BQU8sQ0FBQyxDQUFFLFdBQVksQ0FBQyxFQUFHLEdBQUksR0FBSSxHQUFJLENBQUMsQ0FBQyxDQUFFLENBQUMsRUFBRyxNQUFPLENBQUMsQ0FBRSxXQUFZLENBQUMsQ0FBQyxFQUFHLE1BQU8sb0VBQXFFLEtBQU0sQ0FBRSxFQUFHLENBQUUsTUFBTyxDQUFDLENBQUUsV0FBWSxDQUFDLENBQUMsRUFBRyxNQUFPLHlFQUEwRSxLQUFNLENBQUUsRUFBRyxDQUFFLFNBQVUsQ0FBRSxJQUFLLEVBQUcsV0FBWSxFQUFHLFFBQVMsQ0FBRSxFQUFHLEtBQU0sQ0FBRSxDQUFDLEVBQUcsS0FBTSxDQUFFLENBQUMsRUFBRyxLQUFNLENBQUUsRUFBRyxDQUFFLE1BQU8sQ0FBQyxDQUFFLFdBQVksQ0FBQyxFQUFHLEdBQUksR0FBSSxHQUFJLEVBQUUsQ0FBQyxFQUFHLE1BQU8sQ0FBQyxDQUFFLFdBQVksQ0FBQyxFQUFHLEdBQUksaUJBQWtCLEdBQUksR0FBRyxPQUFRLENBQUUsQ0FBQyxFQUFHLE1BQU8sQ0FBQyxDQUFFLFdBQVksQ0FBQyxFQUFHLEdBQUksR0FBSSxHQUFJLENBQUMsRUFBRyxLQUFLLENBQUUsRUFBRyxFQUFHLENBQUMsRUFBRyxTQUFVLENBQUUsSUFBSyx5Q0FBMEMsV0FBWSxFQUFHLFFBQVMsQ0FBRSxFQUFHLEtBQU0sQ0FBRSxFQUFHLENBQUUsV0FBWSxDQUFDLEVBQUcsR0FBSSxHQUFJLEdBQUksQ0FBQyxFQUFHLFFBQVEsQ0FBRSxFQUFHLEVBQUcsQ0FBQyxFQUFHLFNBQVUsQ0FBRSxJQUFLLHVDQUF3QyxXQUFZLEVBQUcsUUFBUyxDQUFFLEVBQUcsS0FBTSxDQUFFLEVBQUcsQ0FBRSxXQUFZLENBQUMsRUFBRyxHQUFJLEdBQUksR0FBSSxDQUFDLEVBQUcsWUFBWSxDQUFFLEVBQUcsRUFBRyxDQUFDLEVBQUcsU0FBVSxDQUFFLElBQUssK0NBQWdELFdBQVksRUFBRyxRQUFTLENBQUUsRUFBRyxLQUFNLENBQUUsRUFBRyxDQUFFLFdBQVksQ0FBQyxFQUFHLENBQUMsRUFBRyxNQUFPLENBQUMsQ0FBRSxXQUFZLENBQUMsRUFBRyxHQUFJLEdBQUksR0FBSSxDQUFDLEVBQUcsQ0FBQyxDQUFFLEVBQUcsQ0FBQyxFQUFHLE1BQU8sQ0FBQyxDQUFFLFNBQVUsQ0FBRSxJQUFLLG9FQUFxRSxXQUFZLEVBQUcsUUFBUyxDQUFFLEVBQUcsS0FBTSxDQUFFLENBQUMsRUFBRyxL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LEVBQWEsUUFDL0MsYUFBYSxFQUNiLEdBQUcsRUFBWSxFQUNmLEVBQUUsUUFBUyxDQUFDLEVBQVMsRUFBSSxFQUFRLEVBQUcsQ0FDckMsTUFBTyxDQUFDLEdBQW1CLGtCQUFrQixFQUFRLEVBQVEsaUNBQWlDLENBQUMsQ0FBQyxFQUNuRyxFQUNJLEVBQUUsU0FBVSxvQkFBcUIsQ0FBQyxDQUFDLEVBQ25DLEVBQUUsZUFBZ0IsMEJBQTBCLEVBQzVDLEdBQUcsRUFBaUIsRUFDcEIsTUFBTSxDQUFFLENBQ2IsQ0FFQSxJQUFNLEdBQVcsQ0FDYiwwQkFDSixFQUNBLE1BQU0sVUFBZSxDQUFhLENBQ2xDLENBQ0EsRUFBYSx1QkFBdUIsR0FBVSxDQUFNLEVBRXBELElBQU0sR0FBa0IsQ0FDcEIsaUJBQWtCLG1CQUNsQix5QkFBMEIsMkJBQzFCLGdCQUFpQixrQkFDakIsYUFBYyxlQUNkLGNBQWUsZ0JBQ2YseUJBQTBCLDBCQUM5QixFQUVBLE9BQU8sZUFBZSxFQUFTLFdBQVksQ0FDdkMsV0FBWSxHQUNaLElBQUssUUFBUyxFQUFHLENBQUUsT0FBTyxFQUFhLFFBQzNDLENBQUMsRUFDRCxPQUFPLGVBQWUsRUFBUyxXQUFZLENBQ3ZDLFdBQVksR0FDWixJQUFLLFFBQVMsRUFBRyxDQUFFLE9BQU8sRUFBYSxPQUMzQyxDQUFDLEVBQ08sd0JBQXdCLEdBQ3hCLDJCQUEyQixFQUMzQiwwQkFBMEIsR0FDMUIsa0JBQWtCLEdBQ2xCLFNBQVMsRUFDVCxlQUFlLEVBQ2YseUJBQXlCLEVBQ3pCLHVCQUF1QixHQUN2QixzQkFBc0IiLAogICJkZWJ1Z0lkIjogIkQzREMxRDhFMDc3RUY5RkI2NDc1NkUyMTY0NzU2RTIxIiwKICAibmFtZXMiOiBbXQp9
@@ -1,11 +0,0 @@
1
- import{U as n}from"./chunk-e9mt878v.js";var w=n((p)=>{var r={warningEmitted:!1},a=(e)=>{if(e&&!r.warningEmitted&&parseInt(e.substring(1,e.indexOf(".")))<18)r.warningEmitted=!0,process.emitWarning(`NodeDeprecationWarning: The AWS SDK for JavaScript (v3) will
2
- no longer support Node.js 16.x on January 6, 2025.
3
-
4
- To continue receiving updates to AWS services, bug fixes, and security
5
- updates please upgrade to a supported Node.js LTS version.
6
-
7
- More information can be found at: https://a.co/74kJMmI`)};function o(e,t,s){if(!e.$source)e.$source={};return e.$source[t]=s,e}function u(e,t,s){if(!e.__aws_sdk_context)e.__aws_sdk_context={features:{}};else if(!e.__aws_sdk_context.features)e.__aws_sdk_context.features={};e.__aws_sdk_context.features[t]=s}function i(e,t,s){if(!e.$source)e.$source={};return e.$source[t]=s,e}p.emitWarningIfUnsupportedVersion=a;p.setCredentialFeature=o;p.setFeature=u;p.setTokenFeature=i;p.state=r});
8
- export{w as R};
9
-
10
- //# debugId=0429C5686E5508FF64756E2164756E21
11
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vbm9kZV9tb2R1bGVzL0Bhd3Mtc2RrL2NvcmUvZGlzdC1janMvc3VibW9kdWxlcy9jbGllbnQvaW5kZXguanMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbCiAgICAiJ3VzZSBzdHJpY3QnO1xuXG5jb25zdCBzdGF0ZSA9IHtcbiAgICB3YXJuaW5nRW1pdHRlZDogZmFsc2UsXG59O1xuY29uc3QgZW1pdFdhcm5pbmdJZlVuc3VwcG9ydGVkVmVyc2lvbiA9ICh2ZXJzaW9uKSA9PiB7XG4gICAgaWYgKHZlcnNpb24gJiYgIXN0YXRlLndhcm5pbmdFbWl0dGVkICYmIHBhcnNlSW50KHZlcnNpb24uc3Vic3RyaW5nKDEsIHZlcnNpb24uaW5kZXhPZihcIi5cIikpKSA8IDE4KSB7XG4gICAgICAgIHN0YXRlLndhcm5pbmdFbWl0dGVkID0gdHJ1ZTtcbiAgICAgICAgcHJvY2Vzcy5lbWl0V2FybmluZyhgTm9kZURlcHJlY2F0aW9uV2FybmluZzogVGhlIEFXUyBTREsgZm9yIEphdmFTY3JpcHQgKHYzKSB3aWxsXG5ubyBsb25nZXIgc3VwcG9ydCBOb2RlLmpzIDE2Lnggb24gSmFudWFyeSA2LCAyMDI1LlxuXG5UbyBjb250aW51ZSByZWNlaXZpbmcgdXBkYXRlcyB0byBBV1Mgc2VydmljZXMsIGJ1ZyBmaXhlcywgYW5kIHNlY3VyaXR5XG51cGRhdGVzIHBsZWFzZSB1cGdyYWRlIHRvIGEgc3VwcG9ydGVkIE5vZGUuanMgTFRTIHZlcnNpb24uXG5cbk1vcmUgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGF0OiBodHRwczovL2EuY28vNzRrSk1tSWApO1xuICAgIH1cbn07XG5cbmZ1bmN0aW9uIHNldENyZWRlbnRpYWxGZWF0dXJlKGNyZWRlbnRpYWxzLCBmZWF0dXJlLCB2YWx1ZSkge1xuICAgIGlmICghY3JlZGVudGlhbHMuJHNvdXJjZSkge1xuICAgICAgICBjcmVkZW50aWFscy4kc291cmNlID0ge307XG4gICAgfVxuICAgIGNyZWRlbnRpYWxzLiRzb3VyY2VbZmVhdHVyZV0gPSB2YWx1ZTtcbiAgICByZXR1cm4gY3JlZGVudGlhbHM7XG59XG5cbmZ1bmN0aW9uIHNldEZlYXR1cmUoY29udGV4dCwgZmVhdHVyZSwgdmFsdWUpIHtcbiAgICBpZiAoIWNvbnRleHQuX19hd3Nfc2RrX2NvbnRleHQpIHtcbiAgICAgICAgY29udGV4dC5fX2F3c19zZGtfY29udGV4dCA9IHtcbiAgICAgICAgICAgIGZlYXR1cmVzOiB7fSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgZWxzZSBpZiAoIWNvbnRleHQuX19hd3Nfc2RrX2NvbnRleHQuZmVhdHVyZXMpIHtcbiAgICAgICAgY29udGV4dC5fX2F3c19zZGtfY29udGV4dC5mZWF0dXJlcyA9IHt9O1xuICAgIH1cbiAgICBjb250ZXh0Ll9fYXdzX3Nka19jb250ZXh0LmZlYXR1cmVzW2ZlYXR1cmVdID0gdmFsdWU7XG59XG5cbmZ1bmN0aW9uIHNldFRva2VuRmVhdHVyZSh0b2tlbiwgZmVhdHVyZSwgdmFsdWUpIHtcbiAgICBpZiAoIXRva2VuLiRzb3VyY2UpIHtcbiAgICAgICAgdG9rZW4uJHNvdXJjZSA9IHt9O1xuICAgIH1cbiAgICB0b2tlbi4kc291cmNlW2ZlYXR1cmVdID0gdmFsdWU7XG4gICAgcmV0dXJuIHRva2VuO1xufVxuXG5leHBvcnRzLmVtaXRXYXJuaW5nSWZVbnN1cHBvcnRlZFZlcnNpb24gPSBlbWl0V2FybmluZ0lmVW5zdXBwb3J0ZWRWZXJzaW9uO1xuZXhwb3J0cy5zZXRDcmVkZW50aWFsRmVhdHVyZSA9IHNldENyZWRlbnRpYWxGZWF0dXJlO1xuZXhwb3J0cy5zZXRGZWF0dXJlID0gc2V0RmVhdHVyZTtcbmV4cG9ydHMuc2V0VG9rZW5GZWF0dXJlID0gc2V0VG9rZW5GZWF0dXJlO1xuZXhwb3J0cy5zdGF0ZSA9IHN0YXRlO1xuIgogIF0sCiAgIm1hcHBpbmdzIjogInNEQUVBLElBQU0sRUFBUSxDQUNWLGVBQWdCLEVBQ3BCLEVBQ00sRUFBa0MsQ0FBQyxJQUFZLENBQ2pELEdBQUksR0FBVyxDQUFDLEVBQU0sZ0JBQWtCLFNBQVMsRUFBUSxVQUFVLEVBQUcsRUFBUSxRQUFRLEdBQUcsQ0FBQyxDQUFDLEVBQUksR0FDM0YsRUFBTSxlQUFpQixHQUN2QixRQUFRLFlBQVk7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsdURBTTJCLEdBSXZELFNBQVMsQ0FBb0IsQ0FBQyxFQUFhLEVBQVMsRUFBTyxDQUN2RCxHQUFJLENBQUMsRUFBWSxRQUNiLEVBQVksUUFBVSxDQUFDLEVBRzNCLE9BREEsRUFBWSxRQUFRLEdBQVcsRUFDeEIsRUFHWCxTQUFTLENBQVUsQ0FBQyxFQUFTLEVBQVMsRUFBTyxDQUN6QyxHQUFJLENBQUMsRUFBUSxrQkFDVCxFQUFRLGtCQUFvQixDQUN4QixTQUFVLENBQUMsQ0FDZixFQUVDLFFBQUksQ0FBQyxFQUFRLGtCQUFrQixTQUNoQyxFQUFRLGtCQUFrQixTQUFXLENBQUMsRUFFMUMsRUFBUSxrQkFBa0IsU0FBUyxHQUFXLEVBR2xELFNBQVMsQ0FBZSxDQUFDLEVBQU8sRUFBUyxFQUFPLENBQzVDLEdBQUksQ0FBQyxFQUFNLFFBQ1AsRUFBTSxRQUFVLENBQUMsRUFHckIsT0FEQSxFQUFNLFFBQVEsR0FBVyxFQUNsQixFQUdILGtDQUFrQyxFQUNsQyx1QkFBdUIsRUFDdkIsYUFBYSxFQUNiLGtCQUFrQixFQUNsQixRQUFRIiwKICAiZGVidWdJZCI6ICIwNDI5QzU2ODZFNTUwOEZGNjQ3NTZFMjE2NDc1NkUyMSIsCiAgIm5hbWVzIjogW10KfQ==
@@ -1,5 +0,0 @@
1
- import{U as t,W as A}from"./chunk-e9mt878v.js";var o=t((b)=>{var i=(r)=>typeof ArrayBuffer==="function"&&r instanceof ArrayBuffer||Object.prototype.toString.call(r)==="[object ArrayBuffer]";b.isArrayBuffer=i});var y=t((g)=>{var m=o(),f=A("buffer"),B=(r,e=0,u=r.byteLength-e)=>{if(!m.isArrayBuffer(r))throw TypeError(`The "input" argument must be ArrayBuffer. Received type ${typeof r} (${r})`);return f.Buffer.from(r,e,u)},a=(r,e)=>{if(typeof r!=="string")throw TypeError(`The "input" argument must be of type string. Received type ${typeof r} (${r})`);return e?f.Buffer.from(r,e):f.Buffer.from(r)};g.fromArrayBuffer=B;g.fromString=a});var x=t((w)=>{var n=y(),s=(r)=>{let e=n.fromString(r,"utf8");return new Uint8Array(e.buffer,e.byteOffset,e.byteLength/Uint8Array.BYTES_PER_ELEMENT)},h=(r)=>{if(typeof r==="string")return s(r);if(ArrayBuffer.isView(r))return new Uint8Array(r.buffer,r.byteOffset,r.byteLength/Uint8Array.BYTES_PER_ELEMENT);return new Uint8Array(r)},p=(r)=>{if(typeof r==="string")return r;if(typeof r!=="object"||typeof r.byteOffset!=="number"||typeof r.byteLength!=="number")throw Error("@smithy/util-utf8: toUtf8 encoder function only accepts string | Uint8Array.");return n.fromArrayBuffer(r.buffer,r.byteOffset,r.byteLength).toString("utf8")};w.fromUtf8=s;w.toUint8Array=h;w.toUtf8=p});
2
- export{o as M,y as N,x as O};
3
-
4
- //# debugId=23A5B7D733E3CD1164756E2164756E21
5
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vbm9kZV9tb2R1bGVzL0BzbWl0aHkvaXMtYXJyYXktYnVmZmVyL2Rpc3QtY2pzL2luZGV4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy9Ac21pdGh5L3V0aWwtYnVmZmVyLWZyb20vZGlzdC1janMvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzL0BzbWl0aHkvdXRpbC11dGY4L2Rpc3QtY2pzL2luZGV4LmpzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWwogICAgIid1c2Ugc3RyaWN0JztcblxuY29uc3QgaXNBcnJheUJ1ZmZlciA9IChhcmcpID0+ICh0eXBlb2YgQXJyYXlCdWZmZXIgPT09IFwiZnVuY3Rpb25cIiAmJiBhcmcgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcikgfHxcbiAgICBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoYXJnKSA9PT0gXCJbb2JqZWN0IEFycmF5QnVmZmVyXVwiO1xuXG5leHBvcnRzLmlzQXJyYXlCdWZmZXIgPSBpc0FycmF5QnVmZmVyO1xuIiwKICAgICIndXNlIHN0cmljdCc7XG5cbnZhciBpc0FycmF5QnVmZmVyID0gcmVxdWlyZSgnQHNtaXRoeS9pcy1hcnJheS1idWZmZXInKTtcbnZhciBidWZmZXIgPSByZXF1aXJlKCdidWZmZXInKTtcblxuY29uc3QgZnJvbUFycmF5QnVmZmVyID0gKGlucHV0LCBvZmZzZXQgPSAwLCBsZW5ndGggPSBpbnB1dC5ieXRlTGVuZ3RoIC0gb2Zmc2V0KSA9PiB7XG4gICAgaWYgKCFpc0FycmF5QnVmZmVyLmlzQXJyYXlCdWZmZXIoaW5wdXQpKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYFRoZSBcImlucHV0XCIgYXJndW1lbnQgbXVzdCBiZSBBcnJheUJ1ZmZlci4gUmVjZWl2ZWQgdHlwZSAke3R5cGVvZiBpbnB1dH0gKCR7aW5wdXR9KWApO1xuICAgIH1cbiAgICByZXR1cm4gYnVmZmVyLkJ1ZmZlci5mcm9tKGlucHV0LCBvZmZzZXQsIGxlbmd0aCk7XG59O1xuY29uc3QgZnJvbVN0cmluZyA9IChpbnB1dCwgZW5jb2RpbmcpID0+IHtcbiAgICBpZiAodHlwZW9mIGlucHV0ICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYFRoZSBcImlucHV0XCIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIHN0cmluZy4gUmVjZWl2ZWQgdHlwZSAke3R5cGVvZiBpbnB1dH0gKCR7aW5wdXR9KWApO1xuICAgIH1cbiAgICByZXR1cm4gZW5jb2RpbmcgPyBidWZmZXIuQnVmZmVyLmZyb20oaW5wdXQsIGVuY29kaW5nKSA6IGJ1ZmZlci5CdWZmZXIuZnJvbShpbnB1dCk7XG59O1xuXG5leHBvcnRzLmZyb21BcnJheUJ1ZmZlciA9IGZyb21BcnJheUJ1ZmZlcjtcbmV4cG9ydHMuZnJvbVN0cmluZyA9IGZyb21TdHJpbmc7XG4iLAogICAgIid1c2Ugc3RyaWN0JztcblxudmFyIHV0aWxCdWZmZXJGcm9tID0gcmVxdWlyZSgnQHNtaXRoeS91dGlsLWJ1ZmZlci1mcm9tJyk7XG5cbmNvbnN0IGZyb21VdGY4ID0gKGlucHV0KSA9PiB7XG4gICAgY29uc3QgYnVmID0gdXRpbEJ1ZmZlckZyb20uZnJvbVN0cmluZyhpbnB1dCwgXCJ1dGY4XCIpO1xuICAgIHJldHVybiBuZXcgVWludDhBcnJheShidWYuYnVmZmVyLCBidWYuYnl0ZU9mZnNldCwgYnVmLmJ5dGVMZW5ndGggLyBVaW50OEFycmF5LkJZVEVTX1BFUl9FTEVNRU5UKTtcbn07XG5cbmNvbnN0IHRvVWludDhBcnJheSA9IChkYXRhKSA9PiB7XG4gICAgaWYgKHR5cGVvZiBkYXRhID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHJldHVybiBmcm9tVXRmOChkYXRhKTtcbiAgICB9XG4gICAgaWYgKEFycmF5QnVmZmVyLmlzVmlldyhkYXRhKSkge1xuICAgICAgICByZXR1cm4gbmV3IFVpbnQ4QXJyYXkoZGF0YS5idWZmZXIsIGRhdGEuYnl0ZU9mZnNldCwgZGF0YS5ieXRlTGVuZ3RoIC8gVWludDhBcnJheS5CWVRFU19QRVJfRUxFTUVOVCk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgVWludDhBcnJheShkYXRhKTtcbn07XG5cbmNvbnN0IHRvVXRmOCA9IChpbnB1dCkgPT4ge1xuICAgIGlmICh0eXBlb2YgaW5wdXQgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgcmV0dXJuIGlucHV0O1xuICAgIH1cbiAgICBpZiAodHlwZW9mIGlucHV0ICE9PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBpbnB1dC5ieXRlT2Zmc2V0ICE9PSBcIm51bWJlclwiIHx8IHR5cGVvZiBpbnB1dC5ieXRlTGVuZ3RoICE9PSBcIm51bWJlclwiKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIkBzbWl0aHkvdXRpbC11dGY4OiB0b1V0ZjggZW5jb2RlciBmdW5jdGlvbiBvbmx5IGFjY2VwdHMgc3RyaW5nIHwgVWludDhBcnJheS5cIik7XG4gICAgfVxuICAgIHJldHVybiB1dGlsQnVmZmVyRnJvbS5mcm9tQXJyYXlCdWZmZXIoaW5wdXQuYnVmZmVyLCBpbnB1dC5ieXRlT2Zmc2V0LCBpbnB1dC5ieXRlTGVuZ3RoKS50b1N0cmluZyhcInV0ZjhcIik7XG59O1xuXG5leHBvcnRzLmZyb21VdGY4ID0gZnJvbVV0Zjg7XG5leHBvcnRzLnRvVWludDhBcnJheSA9IHRvVWludDhBcnJheTtcbmV4cG9ydHMudG9VdGY4ID0gdG9VdGY4O1xuIgogIF0sCiAgIm1hcHBpbmdzIjogIjZEQUVBLElBQU0sRUFBZ0IsQ0FBQyxJQUFTLE9BQU8sY0FBZ0IsWUFBYyxhQUFlLGFBQ2hGLE9BQU8sVUFBVSxTQUFTLEtBQUssQ0FBRyxJQUFNLHVCQUVwQyxnQkFBZ0Isa0JDSHhCLElBQUksTUFDQSxjQUVFLEVBQWtCLENBQUMsRUFBTyxFQUFTLEVBQUcsRUFBUyxFQUFNLFdBQWEsSUFBVyxDQUMvRSxHQUFJLENBQUMsRUFBYyxjQUFjLENBQUssRUFDbEMsTUFBVSxVQUFVLDJEQUEyRCxPQUFPLE1BQVUsSUFBUSxFQUU1RyxPQUFPLEVBQU8sT0FBTyxLQUFLLEVBQU8sRUFBUSxDQUFNLEdBRTdDLEVBQWEsQ0FBQyxFQUFPLElBQWEsQ0FDcEMsR0FBSSxPQUFPLElBQVUsU0FDakIsTUFBVSxVQUFVLDhEQUE4RCxPQUFPLE1BQVUsSUFBUSxFQUUvRyxPQUFPLEVBQVcsRUFBTyxPQUFPLEtBQUssRUFBTyxDQUFRLEVBQUksRUFBTyxPQUFPLEtBQUssQ0FBSyxHQUc1RSxrQkFBa0IsRUFDbEIsYUFBYSxrQkNqQnJCLElBQUksTUFFRSxFQUFXLENBQUMsSUFBVSxDQUN4QixJQUFNLEVBQU0sRUFBZSxXQUFXLEVBQU8sTUFBTSxFQUNuRCxPQUFPLElBQUksV0FBVyxFQUFJLE9BQVEsRUFBSSxXQUFZLEVBQUksV0FBYSxXQUFXLGlCQUFpQixHQUc3RixFQUFlLENBQUMsSUFBUyxDQUMzQixHQUFJLE9BQU8sSUFBUyxTQUNoQixPQUFPLEVBQVMsQ0FBSSxFQUV4QixHQUFJLFlBQVksT0FBTyxDQUFJLEVBQ3ZCLE9BQU8sSUFBSSxXQUFXLEVBQUssT0FBUSxFQUFLLFdBQVksRUFBSyxXQUFhLFdBQVcsaUJBQWlCLEVBRXRHLE9BQU8sSUFBSSxXQUFXLENBQUksR0FHeEIsRUFBUyxDQUFDLElBQVUsQ0FDdEIsR0FBSSxPQUFPLElBQVUsU0FDakIsT0FBTyxFQUVYLEdBQUksT0FBTyxJQUFVLFVBQVksT0FBTyxFQUFNLGFBQWUsVUFBWSxPQUFPLEVBQU0sYUFBZSxTQUNqRyxNQUFVLE1BQU0sOEVBQThFLEVBRWxHLE9BQU8sRUFBZSxnQkFBZ0IsRUFBTSxPQUFRLEVBQU0sV0FBWSxFQUFNLFVBQVUsRUFBRSxTQUFTLE1BQU0sR0FHbkcsV0FBVyxFQUNYLGVBQWUsRUFDZixTQUFTIiwKICAiZGVidWdJZCI6ICIyM0E1QjdENzMzRTNDRDExNjQ3NTZFMjE2NDc1NkUyMSIsCiAgIm5hbWVzIjogW10KfQ==