e===r.details.builtInName))&&(i=!0);const c=t.argParams.filter((e=>e.requiresTypeVarMatching)).length;if(c>0){let s=Math.min(c,2);for(let a=0;a{t.argParams.forEach((e=>{if(e.requiresTypeVarMatching){const t=st(e,n,r,i,0===a,s>1&&0===a,l);t.isTypeIncomplete&&(o=!0),0===a&&t.skippedOverloadArg&&s++}}))}));n.lock()}t.argParams.forEach((e=>{const t=st(e,n,r,i,!1,!1,l);t.isCompatible||(a=!0),t.isTypeIncomplete&&(o=!0)})),t.paramSpecArgList&&t.paramSpecTarget&&(function(e,t,n,i,r){var s;const o=i.getParamSpec(n);if(!o)return _e(Vt(e).diagnosticRuleSet.reportGeneralTypeIssues,$o.reportGeneralTypeIssues,ml.Diagnostic.paramSpecNotBound().format({type:ai(n)}),(null===(s=t[0])||void 0===s?void 0:s.valueExpression)||e),!1;i.addSolveForScope(o.typeVarScopeId);let a=!1;const l=new Map,c=o.parameters;c.forEach((e=>{e.name&&l.set(e.name,e)}));let u=0,p=c.findIndex((e=>0!==e.category));p<0&&(p=c.length);const d=c.find((e=>1===e.category)),h=c.find((e=>2===e.category));if(t.forEach((t=>{if(0===t.argumentCategory){let n;if(t.name){const i=l.get(t.name.value);i?(n=i.type,l.delete(t.name.value)):h?n=h.type:(_e(Vt(e).diagnosticRuleSet.reportGeneralTypeIssues,$o.reportGeneralTypeIssues,ml.Diagnostic.paramNameMissing().format({name:t.name.value}),t.valueExpression||e),a=!0)}else{if(u{const t=l.get(e);return 0===t.category&&!t.hasDefault})),t.length>0&&!o.paramSpec){const n=t.map((e=>`"${e}"`)).join(", ");_e(Vt(e).diagnosticRuleSet.reportGeneralTypeIssues,$o.reportGeneralTypeIssues,1===t.length?ml.Diagnostic.argMissingForParam().format({name:n}):ml.Diagnostic.argMissingForParams().format({names:n}),e),a=!0}}return!a}(e,t.paramSpecArgList,t.paramSpecTarget,n,l)||(a=!0));const u=Un(r,t.argParams);let p=!0,d=e;for(;;){const e=Pr(d);if(!e)break;const t=Pe(e);n.hasSolveForScope(t)&&(p=!1),d=e}(Eo(u)||ko(u))&&(p=!1);let h=Zo(fa(u,n,!1,!1,p),l);return xo(h)&&(h=Zs.cloneForUnpacked(h,!1)),vo(h)&&Zs.isBuiltIn(h,["TypeGuard","StrictTypeGuard"])&&h.typeArguments&&h.typeArguments.length>0&&b&&_o(b)&&(h=Zs.cloneAsInstance(Zs.cloneForTypeGuard(b,h.typeArguments[0],Zs.isBuiltIn(h,"StrictTypeGuard")))),Eo(h)&&!h.details.name&&(h.details={...h.details,typeVarScopeId:$s}),s&&(s=fa(s,n)),{argumentErrors:a,returnType:h,isTypeIncomplete:o,activeParam:t.activeParam,specializedInitSelfType:s}}function rt(e,t,n,i,r=!1,s){const o=tt(e,t,n,0);return o.argumentErrors?(d.isUndoTrackingEnabled()||t.forEach((e=>{e.valueExpression&&!c.isSpeculative(e.valueExpression)&&$(e.valueExpression)})),{argumentErrors:!0,activeParam:o.activeParam}):nt(e,o,i,r,s)}function st(e,t,n,i,r,s,o){let a,l,u=!1,p=!0;const d=null==n?void 0:n.details.name;if(e.argument.valueExpression){let i=bo(e.paramType)&&void 0!==n&&e.paramType.scopeId===n.details.typeVarScopeId?void 0:fa(e.paramType,t,!1,s);if(i&&po(i)&&(i=void 0),e.argType)a=e.argType;else{const t=e.expectingType?168:0,n=$(e.argument.valueExpression,i,t);a=n.type,n.isIncomplete&&(u=!0),n.typeErrors&&(p=!1),l=n.expectedTypeDiagAddendum}e.argument&&e.argument.name&&!c.isSpeculative(e.errorNode)&&N(e.argument.name,i||a,0,u)}else if(e.argType)a=e.argType;else if(e.expectingType&&!e.argument.type&&e.argument.valueExpression){const t=$(e.argument.valueExpression,void 0,168);a=t.type,t.isIncomplete&&(u=!0)}else{const t=bn(e.argument);a=t.type,t.isIncomplete&&(u=!0)}2===e.paramCategory&&bo(e.paramType)&&(a=Qo(a)),o&&(a=Se(a,o,(e=>e)));let h=new il;if(wo(e.paramType)&&void 0!==e.paramType.paramSpecAccess)return{isCompatible:p,isTypeIncomplete:u};if(r){if(ko(a))return{isCompatible:p,isTypeIncomplete:u,skippedOverloadArg:!0};const t=Ie(e.paramType);if(Eo(t)||ko(t)){if(_o(a)){const e=Zn(a);if(e&&ko(e))return{isCompatible:p,isTypeIncomplete:u,skippedOverloadArg:!0}}if(vo(a)){const e=_a(a,"__call__");if(e&&ko(Bn(e)))return{isCompatible:p,isTypeIncomplete:u,skippedOverloadArg:!0}}}}if(!Jn(e.paramType,a,h.createAddendum(),t)){if("none"!==Vt(e.errorNode).diagnosticRuleSet.reportGeneralTypeIssues&&!ye(e.errorNode)){const t=Vt(e.errorNode),n=ai(a),i=ai(e.paramType);let r;r=e.paramName?d?ml.Diagnostic.argAssignmentParamFunction().format({argType:n,paramType:i,functionName:d,paramName:e.paramName}):ml.Diagnostic.argAssignmentParam().format({argType:n,paramType:i,paramName:e.paramName}):d?ml.Diagnostic.argAssignmentFunction().format({argType:n,paramType:i,functionName:d}):ml.Diagnostic.argAssignment().format({argType:n,paramType:i}),l&&(h=l),_e(t.diagnosticRuleSet.reportGeneralTypeIssues,$o.reportGeneralTypeIssues,r+al(h),e.errorNode)}return{isCompatible:!1,isTypeIncomplete:u}}if(!i){const t=Ro(a),n=Vt(e.errorNode),i=()=>{const t=new il;return e.paramName&&t.addMessage((d?ml.DiagnosticAddendum.argParamFunction().format({paramName:e.paramName,functionName:d}):ml.DiagnosticAddendum.argParam().format({paramName:e.paramName}))+t.getString()),t};if("none"!==n.diagnosticRuleSet.reportUnknownArgumentType&&!uo(e.paramType)&&!u)if(po(t)){const t=i();_e(n.diagnosticRuleSet.reportUnknownArgumentType,$o.reportUnknownArgumentType,ml.Diagnostic.argTypeUnknown()+t.getString(),e.errorNode)}else if(La(t,!0)){let r=!1;if(_o(t)&&(r=!0),La(e.paramType)&&(r=!0),vo(t)&&t.isEmptyContainer&&(r=!0),!r){const r=i();r.addMessage(ml.DiagnosticAddendum.argumentType().format({type:ai(t,!0)})),_e(n.diagnosticRuleSet.reportUnknownArgumentType,$o.reportUnknownArgumentType,ml.Diagnostic.argTypePartiallyUnknown()+r.getString(),e.errorNode)}}}return{isCompatible:p,isTypeIncomplete:u}}function ot(e){if(11===e.nodeType){if(15===e.constType)return!1;if(33===e.constType)return!0}return fe(ml.Diagnostic.expectedBoolLiteral(),e),!1}function at(e,t){const n=Vt(e);let i="_";if(t.length>=1){const e=t[0];0===e.argumentCategory&&e.valueExpression&&48===e.valueExpression.nodeType&&(i=e.valueExpression.strings.map((e=>e.value)).join(""))}if(t.length>=2){const r=In(t[1]).type;if(_o(r)){Zs.isProtocolClass(r)?fe(ml.Diagnostic.newTypeProtocolClass(),t[1].node||e):void 0!==r.literalValue&&fe(ml.Diagnostic.newTypeLiteral(),t[1].node||e);const s=-4&r.details.flags,o=Zs.createInstantiable(i,br(e,n.moduleName,i),n.moduleName,n.filePath,s,Ir(e),void 0,r.details.effectiveMetaclass);o.details.baseClasses.push(r),Ha(o);const a=Xs.createInstance("__init__","","",64);Xs.addParameter(a,{category:0,name:"self",type:Zs.cloneAsInstance(o),hasDeclaredType:!0}),Xs.addParameter(a,{category:0,name:"_x",type:Zs.cloneAsInstance(r),hasDeclaredType:!0}),a.details.declaredReturnType=to.createInstance(),o.details.fields.set("__init__",qo.createWithType(4,a));const l=Xs.createInstance("__new__","","",65);return Xs.addParameter(l,{category:0,name:"cls",type:o,hasDeclaredType:!0}),Xs.addDefaultParameters(l),l.details.declaredReturnType=Zs.cloneAsInstance(o),o.details.fields.set("__new__",qo.createWithType(4,l)),o}ho(r)||fe(ml.Diagnostic.newTypeNotAClass(),t[1].node||e)}}function lt(e){return!(!Ku[e]||!Ku[e][2])||!!Ju[e]}function ut(e,t,n){const i=e.leftExpression;let r=e.rightExpression,s=!1;lt(e.operator)&&7===r.nodeType&&!r.parenthesized&<(r.operator)&&(ut(r,t,n),r=r.leftExpression);let o,a=37===e.operator||36===e.operator?t:void 0;26===e.operator&&t&&vo(t)&&Zs.isBuiltIn(t,"list")&&t.typeArguments&&t.typeArguments.length>=1&&31===e.leftExpression.nodeType&&(o=t);const l=$(i,a||o,n);let c=l.type;a||(37===e.operator||36===e.operator||0===e.operator&&31===e.rightExpression.nodeType||6===e.operator)&&(a=c);const u=$(r,a,n);let p=u.type;if((l.isIncomplete||u.isIncomplete)&&(s=!0),6===e.operator&&!pt(c,"__or__")&&!pt(p,"__ror__")){let t=p;if(!lo(c)&&lo(p)&&Ks.isInstance(p)&&(t=to.createType()),function(e){let t=3;for(const n of e)t&=n.flags;return 0!=(1&t)&&0==(2&t)}([c,t])){const i=Vt(e);i.isStubFile||0!=(4&n)||i.executionEnvironment.pythonVersion>=De.V3_10||ho(c)||fe(ml.Diagnostic.unionSyntaxIllegal(),e,e.operatorToken);const r=Oo([c,t]);return fo(r)&&Ks.setSpecialForm(r),{type:r,node:e}}}let d=!1;void 0===Ju[e.operator]&&(12===e.operator||28===e.operator?c=Fo(c):d=Go(c),12!==e.operator&&28!==e.operator||(p=Fo(p)));const h=new il,m=!l.isIncomplete&&!u.isIncomplete;let f=mt(e.operator,c,p,e,t,h,m);if(!h.isEmpty()||!f){if(!s){const t=Vt(e);d&&1===h.getMessages().length?_e(Vt(e).diagnosticRuleSet.reportOptionalOperand,$o.reportOptionalOperand,ml.Diagnostic.noneOperator().format({operator:Cr(e.operator)}),e.leftExpression):_e(t.diagnosticRuleSet.reportGeneralTypeIssues,$o.reportGeneralTypeIssues,ml.Diagnostic.typeNotSupportBinaryOperator().format({operator:Cr(e.operator),leftType:ai(c),rightType:ai(p)})+al(h),e)}f=Ys.create()}return{type:f,node:e,isIncomplete:s}}function pt(e,t){if(!_o(e))return!1;const n=e.details.effectiveMetaclass;if(!n||!_o(n))return!1;if(Zs.isBuiltIn(n,"type"))return!1;const i=va(n,t);return!(!i||_o(i.classType)&&Zs.isBuiltIn(i.classType,"type"))}function ht(e,t){const n={1:["__iadd__",0],34:["__isub__",33],27:["__imul__",26],14:["__ifloordiv__",13],11:["__itruediv__",10],25:["__imod__",24],30:["__ipow__",29],23:["__imatmul__",22],4:["__iand__",3],7:["__ior__",6],9:["__ixor__",8],18:["__ilshift__",17],32:["__irshift__",31]};let i;const r=new il,s=$(e.leftExpression),o=s.type;let a;7===e.operator&&(a=o);const l=$(e.rightExpression,a),c=l.type,u=!!l.isIncomplete||!!s.isIncomplete;return ao(o)||ao(c)?{node:e,type:no.createNever(),isIncomplete:u}:(i=Se(o,void 0,((i,o)=>Se(c,Xo(i),((a,c)=>{if(ho(o)||ho(c))return po(o)||po(c)?Ys.create():io.create();const u=n[e.operator][0];let p=gt(o,[c],u,e,t);if(p||o===i||(p=gt(i,[c],u,e,t)),p||c===a||(p=gt(i,[a],u,e,t)),!p){const i=n[e.operator][1],a=!s.isIncomplete&&!l.isIncomplete;p=mt(i,o,c,e,t,r,a)}return p})))),r.isEmpty()&&i&&!ao(i)||(u||_e(Vt(e).diagnosticRuleSet.reportGeneralTypeIssues,$o.reportGeneralTypeIssues,ml.Diagnostic.typeNotSupportBinaryOperator().format({operator:Cr(e.operator),leftType:ai(o),rightType:ai(c)})+al(r),e),i=Ys.create()),{node:e,type:i,isIncomplete:u})}function mt(e,t,n,i,r,s,o){let a,l=Ie(t);if(void 0!==Ju[e]){if(36===e){if(!Q(l))return t;if(!Y(l))return n;l=Z(l)}else if(37===e){if(!Y(l))return t;if(!Q(l))return n;l=X(l)}if(ao(t)||ao(n))return no.createNever();41===e||42===e?(a=Se(n,void 0,((t,n)=>Se(l,Xo(t),(r=>{if(ho(r)||ho(n))return po(r)||po(n)?Ys.create():io.create();let o=gt(t,[r],"__contains__",i,void 0);if(!o){const e=ae(t,!1,void 0);e&&Jn(e,r)&&(o=Cn(i,"bool"))}return o||s.addMessage(ml.Diagnostic.typeNotSupportBinaryOperator().format({operator:Cr(e),leftType:ai(r),rightType:ai(t)})),o})))),a&&!ao(a)&&(a=Cn(i,"bool"))):a=Se(l,void 0,((t,r)=>Se(n,Xo(t),((t,n)=>36===e||37===e?Oo([r,n]):Cn(i,"bool")))))}else if(Ku[e]){if(ao(t)||ao(n))return no.createNever();if(o){const i=aa(t);if(i&&!Xo(t)){const r=64;if(i===aa(n)&&!Xo(n)&&la(t)*la(n)Ko(n,(t=>{const n=e,i=t;return Zs.cloneWithLiteral(n,n.literalValue+i.literalValue)})))));else if("int"===i&&(0===e||33===e||26===e||13===e||24===e)){let i=!0;a=Ko(t,(t=>Ko(n,(n=>{try{const r=t,s=n,o=BigInt(r.literalValue),a=BigInt(s.literalValue);let l;return 0===e?l=o+a:33===e?l=o-a:26===e?l=o*a:13===e?a!==BigInt(0)&&(l=o/a):24===e&&a!==BigInt(0)&&(l=o%a),void 0===l||"number"==typeof l&&isNaN(l)?void(i=!1):(l===BigInt(Number(l))&&(l=Number(l)),Zs.cloneWithLiteral(r,l))}catch{return void(i=!1)}})))),i||(a=void 0)}}}a||(a=Se(t,void 0,((t,o)=>Se(n,Xo(t),((n,a)=>{if(ho(o)||ho(a))return po(o)||po(a)?Ys.create():io.create();if(0===e&&vo(t)&&pa(t)&&t.tupleTypeArguments&&!da(t)&&vo(n)&&pa(n)&&n.tupleTypeArguments&&!da(n)&&T&&_o(T))return Zs.cloneAsInstance(Va(T,[...t.tupleTypeArguments,...n.tupleTypeArguments]));const l=Ku[e][0];let c=gt(yt(o),[a],l,i,r);if(c||o===t||(c=gt(yt(t),[a],l,i,r)),c||a===n||(c=gt(yt(t),[n],l,i,r)),!c){const s=Ku[e][1];c=gt(yt(a),[o],s,i,r),c||a===n||(c=gt(yt(n),[o],s,i,r)),c||o===t||(c=gt(yt(n),[t],s,i,r))}return c||(r?s.addMessage(ml.Diagnostic.typeNotSupportBinaryOperatorBidirectional().format({operator:Cr(e),leftType:ai(t),rightType:ai(n),expectedType:ai(r)})):s.addMessage(ml.Diagnostic.typeNotSupportBinaryOperator().format({operator:Cr(e),leftType:ai(t),rightType:ai(n)}))),c})))))}return a&&ao(a)?void 0:a}function gt(e,t,n,i,r){let s=!0;const o=e=>{var o,a;let l;const c=Ie(e);if(vo(c)?l=null===(o=ee(i,c,n,void 0,void 0,64,e))||void 0===o?void 0:o.type:_o(c)&&(l=null===(a=te(i,c,n,void 0,void 0,96))||void 0===a?void 0:a.type),l){const e=t.map((e=>({argumentCategory:0,type:e})));let n;return kn(i,(()=>{n=et(i,e,l,void 0,!0,r)})),n.argumentErrors&&(s=!1),n.returnType}s=!1},a=Ko(e,(e=>{if(ho(e))return e;if(vo(e)||_o(e)||bo(e))return o(e);if(lo(e)){const e=Cn(i,"object");if(vo(e))return o(e)}s=!1}));if(s)return a}function yt(e){return(Eo(e)||ko(e))&&y?y:e}function _t(e,t,n){if(!vo(t=ta(t)))return;const i=[],r=[];let s=!1;if(Zs.isTypedDictClass(t)){if(Tt(e,i,r,!0,void 0,void 0,gl(li,t),n)&&(s=!0),Zs.isTypedDictClass(t)){const o=function(e,t,n,i,r){w(vo(t)),w(Zs.isTypedDictClass(t)),w(n.length===i.length);let s=!0;const o=new Map,a=gl(e,t);if(n.forEach(((n,l)=>{if(vo(n)&&Zs.isBuiltIn(n,"str")&&ra(n)){const c=n.literalValue,u=a.get(c);u?(e.canAssignType(u.valueType,i[l])||(r&&r.addMessage(ml.DiagnosticAddendum.typedDictFieldTypeMismatch().format({name:n.literalValue,type:e.printType(i[l])})),s=!1),u.isRequired||o.set(c,{valueType:i[l],isRequired:!1,isProvided:!0}),u.isProvided=!0):(s=!1,r&&r.addMessage(ml.DiagnosticAddendum.typedDictFieldUndefined().format({name:n.literalValue,type:e.printType(Zs.cloneAsInstance(t))})))}else s=!1})),s&&(a.forEach(((n,i)=>{n.isRequired&&!n.isProvided&&(r&&r.addMessage(ml.DiagnosticAddendum.typedDictFieldRequired().format({name:i,type:e.printType(t)})),s=!1)})),s))return 0===o.size?t:Zs.cloneForNarrowedTypedDictEntries(t,o)}(li,t,i,r,n);if(o)return{type:o,node:e,isIncomplete:s}}return}const o=Cn(e,"dict");if(!vo(o))return;const a=new jo(na(o));if(!Xe(o,t,a,Re(e)))return;const l=fa(Zs.cloneAsInstantiable(o),a);if(!l.typeArguments||2!==l.typeArguments.length)return;const c=l.typeArguments[0],u=l.typeArguments[1];Tt(e,i,r,!0,c,u,void 0,n)&&(s=!0);const p=vo(t)&&(Zs.isBuiltIn(t,"dict")||Zs.isBuiltIn(t,"MutableMapping")),d=It(c,i,!1),h=It(u,r,!p);return d&&h?{type:Cn(e,"dict",[d,h]),node:e,isIncomplete:s}:void 0}function vt(e,t){const n=t?io.create():Ys.create();let i=n,r=n,s=[],o=[],a=!1,l=!1;Tt(e,s,o,t)&&(l=!0),s=s.map((e=>Qo(e))),o=o.map((e=>Qo(e))),i=s.length>0?Oo(s):n,o.length>0?r=Vt(e).diagnosticRuleSet.strictDictionaryInference||t?Oo(o):Yo(o,!0)?o[0]:n:(r=n,a=!0);const c=xn(e,"dict");return{type:_o(c)?Zs.cloneAsInstance(Zs.cloneForSpecialization(c,[i,r],!0,void 0,void 0,a)):Ys.create(),node:e,isIncomplete:l}}function Tt(e,t,n,i,r,s,o,a){let l=!1;return e.entries.forEach(((c,u)=>{var p;let d=!0;if(17===c.nodeType){const e=$(c.keyExpression,null!=r?r:i?no.createNever():void 0);e.isIncomplete&&(l=!0);let p,h=e.type;if(r){const e=Ie(r);ho(e)||Jn(e,h)&&(h=e)}p=o&&vo(h)&&Zs.isBuiltIn(h,"str")&&ra(h)&&o.has(h.literalValue)?$(c.valueExpression,o.get(h.literalValue).valueType):$(c.valueExpression,null!=s?s:i?no.createNever():void 0),a&&p.expectedTypeDiagAddendum&&a.addAddendum(p.expectedTypeDiagAddendum);const m=p.type;p.isIncomplete&&(l=!0),(i||u<64)&&(t.push(h),n.push(m)),d=!1}else if(16===c.nodeType){const r=$(c.expandExpression);r.isIncomplete&&(l=!0);const s=r.type;if(ho(s))d=!1;else{const r=ce(e,"Mapping");if(r&&_o(r)){const o=new jo(na(r));if(Jn(Zs.cloneAsInstance(r),s,void 0,o)){const e=fa(r,o).typeArguments;e&&e.length>=2&&((i||u<64)&&(t.push(e[0]),n.push(e[1])),d=!1)}else _e(Vt(e).diagnosticRuleSet.reportGeneralTypeIssues,$o.reportGeneralTypeIssues,ml.Diagnostic.dictUnpackIsNotMapping(),c)}}}else if(32===c.nodeType){const e=wt(c,s,r),o=e.type;if(e.isIncomplete&&(l=!0),vo(o)&&pa(o)){const e=null===(p=o.tupleTypeArguments)||void 0===p?void 0:p.map((e=>e.type));e&&2===e.length&&((i||u<64)&&(t.push(e[0]),n.push(e[1])),d=!1)}}d&&(i||u<64)&&(t.push(Ys.create()),n.push(Ys.create()))})),l}function bt(e,t){const n=31===e.nodeType?"list":"set";t=ta(t);let i=!1;if(!vo(t))return;const r=Cn(e,n);if(!vo(r))return;const s=new jo(na(r));if(!Xe(r,t,s,Re(e)))return;const o=fa(Zs.cloneAsInstantiable(r),s);if(!o.typeArguments||1!==o.typeArguments.length)return;const a=o.typeArguments[0],l=[];e.entries.forEach((e=>{let t;t=32===e.nodeType?wt(e,a):$(e,a),l.push(t.type),t.isIncomplete&&(i=!0)}));const c=vo(t)&&Zs.isBuiltIn(t,n),u=It(a,l,!c);return u?{type:Cn(e,n,[u]),node:e,isIncomplete:i}:void 0}function It(e,t,n){const i=oo.createInstance("__typeArg");i.details.isSynthesized=!0,i.details.boundType=e,i.scopeId="__typeArgScopeId";let r=new jo($s);if(r.setTypeVarType(i,n?void 0:e,e),!t.some((e=>!Jn(i,Qo(e),void 0,r)))||(r=new jo($s),r.setTypeVarType(i,n?void 0:e,e,!0),!t.some((e=>!Jn(i,e,void 0,r)))))return fa(i,r)}function xt(e,t,n,i,r,s){if("none"===e)return;const o=n.value,a=Ro(i);if(po(a))_e(e,t,ml.Diagnostic.typeUnknown().format({name:o}),r);else if(La(a)&&(!s||!vo(i)||!i.isEmptyContainer)){const n=new il;n.addMessage(ml.DiagnosticAddendum.typeOfSymbol().format({name:o,type:ai(a,!0)})),_e(e,t,ml.Diagnostic.typePartiallyUnknown().format({name:o})+n.getString(),r)}}function Ct(e){let t=!1;if(33===e.nodeType){const n=$(e.iterableExpression);n.isIncomplete&&(t=!0);const i=ae(Qo(n.type),!!e.isAsync,e.iterableExpression)||Ys.create();xe(e.targetExpression,i,!!n.isIncomplete,e.iterableExpression)}else w(34===e.nodeType),c.isSpeculative(e.testExpression)||$(e.testExpression);return t}function wt(e,t,n){let i=!1;for(const t of e.forIfNodes)Ct(t)&&(i=!0);let r=Ys.create();if(17===e.expression.nodeType){const s=$(e.expression.keyExpression,n);s.isIncomplete&&(i=!0);let o=s.type;n&&oa(n)||(o=Qo(o));const a=$(e.expression.valueExpression,t);a.isIncomplete&&(i=!0);let l=a.type;t&&oa(t)||(l=Qo(l)),r=Ue([o,l])}else if(16===e.expression.nodeType)$(e.expression.expandExpression,t);else if(yr(e)){const n=$(e.expression,t);n.isIncomplete&&(i=!0),r=n.type}return{type:r,node:e,isIncomplete:i}}function Et(e,t){if(e.typeList){if(!(null==t?void 0:t.allowTypeArgList))return fe(ml.Diagnostic.typeArgListNotAllowed(),e.node),!1;e.typeList.forEach((e=>{Et(e)}))}if(ca(e.type)&&!(null==t?void 0:t.allowTypeArgList))return fe(ml.Diagnostic.ellipsisContext(),e.node),!1;if(To(e.type))return fe(ml.Diagnostic.moduleAsType(),e.node),!1;if(wo(e.type)&&!(null==t?void 0:t.allowParamSpec))return fe(ml.Diagnostic.paramSpecContext(),e.node),!1;if(Io(e.type)&&!e.type.isVariadicInUnion){if(!(null==t?void 0:t.allowVariadicTypeVar))return fe(ml.Diagnostic.typeVarTupleContext(),e.node),!1;Oe(e.type,e.node)}return!(null==t?void 0:t.allowEmptyTuple)&&e.isEmptyTupleShorthand?(fe(ml.Diagnostic.zeroLengthTupleNotAllowed(),e.node),!1):!(xo(e.type)&&!(null==t?void 0:t.allowUnpackedTuples)&&(fe(ml.Diagnostic.unpackedArgInTypeArgument(),e.node),1))}function kt(e,t,n){const i=Cn(e,t);return vo(i)?Zs.cloneWithLiteral(i,n):Ys.create()}function Nt(e,t,n){const i=xn(e,t);return _o(i)?Zs.cloneWithLiteral(i,n):Ys.create()}function Ot(e,t,n,i=!1,r=!1){const s=Zs.isTupleClass(e);if(t)if(s&&1===t.length&&t[0].isEmptyTupleShorthand)t=[];else{let e=!1;const r=t=>{e&&(o||(fe(ml.Diagnostic.variadicTypeArgsTooMany(),t.node),o=!0)),e=!0};let o=!1;t.forEach(((e,o)=>{ca(e.type)?s?2!==t.length||1!==o?fe(ml.Diagnostic.ellipsisSecondArg(),e.node):bo(t[0].type)&&Io(t[0].type)&&!t[0].type.isVariadicInUnion&&fe(ml.Diagnostic.typeVarTupleContext(),t[0].node):fe(ml.Diagnostic.ellipsisContext(),e.node):wo(e.type)&&i||(Io(e.type)&&void 0===n?(r(e),Oe(e.type,e.node)):void 0===n&&Co(e.type)?(r(e),Et(e,{allowUnpackedTuples:!0})):Et(e))}))}let o,a=t?t.map((e=>Fa(e.type))):[];if(void 0!==n)if(t&&a.length>n)fe(ml.Diagnostic.typeArgsTooMany().format({name:e.aliasName||e.details.name,expected:n,received:a.length}),t[n].node),a=a.slice(0,n);else if(a.length{1===t&&ca(a[t])?1!==n.length||n[0].isUnbounded?fe(ml.Diagnostic.ellipsisSecondArg(),e.node):n[0]={type:n[0].type,isUnbounded:!0}:xo(e.type)&&e.type.tupleTypeArguments?n.push(...e.type.tupleTypeArguments):n.push({type:a[t],isUnbounded:!1})})):n.push({type:Ys.create(),isUnbounded:!0}),o=Va(e,n,void 0!==t,!1)}else o=Zs.cloneForSpecialization(e,a,void 0!==t);return r||Ks.setSpecialForm(o),o}function Ut(e,t){var n,i,r,s;const o=Er(e,!0);if(o){const l=$t(o);if(l&&Zs.isEnumClass(l.classType)){let o=3===(null===(n=e.parent)||void 0===n?void 0:n.nodeType)&&e.parent.leftExpression===e||54===(null===(i=e.parent)||void 0===i?void 0:i.nodeType)&&e.parent.valueExpression===e&&3===(null===(r=e.parent.parent)||void 0===r?void 0:r.nodeType)||Vt(e).isStubFile&&54===(null===(s=e.parent)||void 0===s?void 0:s.nodeType)&&e.parent.valueExpression===e;(a=e.value).length>2&&a.startsWith("_")&&a.endsWith("_")&&(o=!1),"name"!==e.value&&"value"!==e.value||(o=!1);const c=t();if(vo(c)&&c.details.fields.get("__get__")&&(o=!1),o)return Zs.cloneAsInstance(Zs.cloneWithLiteral(l.classType,new Hs(l.classType.details.name,e.value,c)))}}var a}function qt(e,t,n){if(!Ks.isInstantiable(e))return e;if(ea(e))return e;let i=[];bo(e)&&!Ks.isAnnotated(e)||Jo(e,(e=>{Ia(i,Sa(e))})),i=i.filter((e=>!e.details.isSynthesized)),i=i.map((e=>Ks.isInstance(e)?e:Fa(e)));const r=i.filter((e=>Io(e)));r.length>1&&fe(ml.Diagnostic.variadicTypeParamTooManyAlias().format({names:r.map((e=>`"${e.details.name}"`)).join(", ")}),n);const s=Vt(t),o=Pe(t),a=i.filter((e=>e.scopeId!==o&&0===e.scopeType));return a.length>0&&fe(ml.Diagnostic.genericTypeAliasBoundTypeVar().format({names:a.map((e=>`${e.details.name}`)).join(", ")}),n),Ks.cloneForTypeAlias(e,t.value,`${s.moduleName}.${t.value}`,o,i.length>0?i:void 0)}function Bt(e,t,n){const i=Vt(e);let r=Zs.createInstantiable(t,br(e,i.moduleName,t),i.moduleName,i.filePath,3,0,void 0,void 0);i.isTypingExtensionsStubFile&&(r.details.flags|=65536);const s=n.alias||"object";let o;if("builtins"===n.module)o=xn(e,s);else if("collections"===n.module)o=ue(e,s,["collections"]);else if("self"===n.module){const t=wn(e,s,!1);t&&(o=Nn(t.symbol),_o(o)&&Zs.isBuiltIn(o,"_TypedDict")&&(o.details.flags&=-513))}return o&&_o(o)?n.alias?r=Zs.cloneForTypingAlias(o,t):(r.details.baseClasses.push(o),r.details.effectiveMetaclass=o.details.effectiveMetaclass,Ha(r)):(r.details.baseClasses.push(Ys.create()),r.details.effectiveMetaclass=Ys.create(),Ha(r)),r}function Wt(e){var t;const n=Vt(e);if(F(e,0))return;let i,r=F(e.rightExpression,0),s=!1;if(!r&&((n.isTypingStubFile||n.isTypingExtensionsStubFile)&&(r=function(e){if(38!==e.leftExpression.nodeType)return;const t=e.leftExpression.value;if("Any"===t)return io.create();const n=new Map([["overload",{alias:"",module:"builtins"}],["TypeVar",{alias:"",module:"builtins"}],["_promote",{alias:"",module:"builtins"}],["no_type_check",{alias:"",module:"builtins"}],["NoReturn",{alias:"",module:"builtins"}],["Never",{alias:"",module:"builtins"}],["Counter",{alias:"Counter",module:"collections"}],["List",{alias:"list",module:"builtins"}],["Dict",{alias:"dict",module:"builtins"}],["DefaultDict",{alias:"defaultdict",module:"collections"}],["Set",{alias:"set",module:"builtins"}],["FrozenSet",{alias:"frozenset",module:"builtins"}],["Deque",{alias:"deque",module:"collections"}],["ChainMap",{alias:"ChainMap",module:"collections"}],["OrderedDict",{alias:"OrderedDict",module:"collections"}]]).get(t);return n?($(e.rightExpression),Bt(e,t,n)):void 0}(e),r&&N(e.rightExpression,r,0,!1)),!r)){const l=se(e.leftExpression,{method:"set"});let c,u=0;n.isStubFile&&(u|=256),38!==e.rightExpression.nodeType&&35!==e.rightExpression.nodeType||(u|=2);let p,d=!1;if(re(e.leftExpression))u|=232,u&=-3,c=e.leftExpression.valueExpression;else if(38===e.leftExpression.nodeType){const t=wn(e.leftExpression,e.leftExpression.value,!1);if(t){const n=t.symbol.getDeclarations();1===n.length&&os(n[0])&&(c=e.leftExpression,d=!0)}}if(c){p=oo.createInstantiable(`__type_alias_${c.value}`),p.details.isSynthesized=!0,p.details.recursiveTypeAliasName=c.value;const t=Pe(c);p.details.recursiveTypeAliasScopeId=t,p.scopeId=t,N(e,p,void 0,!1),N(e.leftExpression,p,void 0,!1),54===e.leftExpression.nodeType&&N(e.leftExpression.valueExpression,p,void 0,!1)}const h=$(e.rightExpression,l,u);let m=h.type;i=h.expectedTypeDiagAddendum,h.isIncomplete&&(s=!0);const f=Xc(e.rightExpression,n.executionEnvironment);if(void 0!==f){const t=Cn(e,"bool");vo(t)&&(m=Zs.cloneWithLiteral(t,f))}l&&Jn(l,m)&&(ho(m)||(m=ni(l,m))),r=m,38!==e.leftExpression.nodeType||e.typeAnnotationComment||(r=Ut(e.leftExpression,(()=>r))||r),c&&(M(e),M(e.leftExpression),54===e.leftExpression.nodeType&&M(e.leftExpression.valueExpression),(!d||Ks.isInstantiable(r)&&!po(r))&&(r=qt(r,c,e.rightExpression),o=p,(9!==(a=r).category?a===o||mo(a)&&a.typeAliasInfo&&a.typeAliasInfo.name===o.details.recursiveTypeAliasName:void 0!==Mo(a,(e=>Ao(o,e))))&&_e(n.diagnosticRuleSet.reportGeneralTypeIssues,$o.reportGeneralTypeIssues,ml.Diagnostic.typeAliasIsRecursiveDirect().format({name:c.value}),e.rightExpression),p.details.boundType=r,p.details.recursiveTypeParameters=null===(t=r.typeAliasInfo)||void 0===t?void 0:t.typeParameters),p.details.illegalRecursionDetected&&_e(n.diagnosticRuleSet.reportGeneralTypeIssues,$o.reportGeneralTypeIssues,ml.Diagnostic.typeAliasIsRecursiveIndirect().format({name:c.value}),e.leftExpression))}var o,a;xe(e.leftExpression,r,s,e.rightExpression,!0,!0,i),N(e,r,0,s)}function jt(e){if(F(e,0))return;const t=ht(e,void 0);xe(e.destExpression,t.type,!!t.isIncomplete,e.rightExpression),N(e,t.type,0,!!t.isIncomplete)}function $t(e){const t=F(e.name,0);if(t){if(!_o(t))return;return{classType:t,decoratedType:F(e,0)||Ys.create()}}const n=zs(e),i=Vt(e);let r=0;(4===(null==n?void 0:n.type)||i.isTypingStubFile||i.isTypingExtensionsStubFile||i.isBuiltInStubFile)&&(r|=1,i.isTypingExtensionsStubFile&&(r|=65536),"property"===e.name.value&&(r|=2048),"tuple"===e.name.value&&(r|=524288)),i.isStubFile&&(r|=8388608);const s=Zs.createInstantiable(e.name.value,br(e,i.moduleName,e.name.value),i.moduleName,i.filePath,r,0,void 0,void 0,qr(e.suite.statements));s.details.typeVarScopeId=Pe(e);const o=null==n?void 0:n.lookUpSymbol(e.name.value);let a;const l=Mt(e);l&&(a=l),a&&o&&B(o,a,s),s.details.flags|=131072,N(e,s,void 0,!1),N(e.name,s,void 0,!1);const c=[];let u;const p=[];let d,h=272960;i.isStubFile&&(h|=4),e.arguments.forEach((e=>{if(e.name)if("metaclass"===e.name.value)d?fe(ml.Diagnostic.metaclassDuplicate(),e):d=e.valueExpression;else if("total"===e.name.value&&Zs.isTypedDictClass(s)){const t=Xc(e.valueExpression,i.executionEnvironment);void 0===t?fe(ml.Diagnostic.typedDictTotalParam(),e.valueExpression):t||(s.details.flags|=256)}else p.push({argumentCategory:0,node:e,name:e.name,valueExpression:e.valueExpression});else{let t=$(e.valueExpression,void 0,h).type;if(fo(t)&&(t=Ro(t)),ho(t)||mo(t)||(_o(t)?(Zs.isBuiltIn(t,"Protocol")&&(!i.isStubFile&&!Zs.isTypingExtensionClass(t)&&i.executionEnvironment.pythonVersion=De.V3_6&&Zs.isBuiltIn(t,"NamedTuple")&&(s.details.flags|=16777220),Zs.isBuiltIn(t,"TypedDict")||Zs.isTypedDictClass(t)?s.details.flags|=128:Zs.isTypedDictClass(s)&&!Zs.isTypedDictClass(t)&&fe(ml.Diagnostic.typedDictBaseClass(),e),Da(t,s,!0)&&(fe(ml.Diagnostic.baseClassCircular(),e),t=Ys.create())):(_e(i.diagnosticRuleSet.reportGeneralTypeIssues,$o.reportGeneralTypeIssues,ml.Diagnostic.baseClassInvalid(),e),t=Ys.create())),po(t)&&_e(i.diagnosticRuleSet.reportUntypedBaseClass,$o.reportUntypedBaseClass,ml.Diagnostic.baseClassUnknown(),e),s.details.baseClasses.some((e=>_o(e)&&_o(t)&&Zs.isSameGenericClass(t,e)))&&_e(i.diagnosticRuleSet.reportGeneralTypeIssues,$o.reportGeneralTypeIssues,ml.Diagnostic.duplicateBaseClass(),e.name||e),s.details.baseClasses.push(t),_o(t)&&(Zs.isEnumClass(t)&&(s.details.flags|=1048576),(Zs.supportsAbstractMethods(t)||Zs.isProtocolClass(t)&&!Zs.isBuiltIn(t))&&(s.details.flags|=512),Zs.isPropertyClass(t)&&(s.details.flags|=2048),Zs.isFinal(t))){const n=oi(t);fe(ml.Diagnostic.baseClassFinal().format({type:n}),e.valueExpression)}Ia(c,Sa(t)),_o(t)&&Zs.isBuiltIn(t,"Generic")&&(u||(u=[],Ia(u,Sa(t))))}})),s.details.baseClasses.length>1&&s.details.baseClasses.some((e=>_o(e)&&Zs.isBuiltIn(e,"NamedTuple")))&&_e(i.diagnosticRuleSet.reportGeneralTypeIssues,$o.reportGeneralTypeIssues,ml.Diagnostic.namedTupleMultipleInheritance(),e.name),Zs.isBuiltIn(s,"object")||0!==s.details.baseClasses.filter((e=>yo(e))).length||s.details.baseClasses.push(xn(e,"object")),u&&function(e,t,n){const i=t.filter((e=>!n.some((t=>t.details.name===e.details.name))));if(i.length>0){const t=new il;t.addMessage(ml.DiagnosticAddendum.typeVarsMissing().format({names:i.map((e=>`"${e.details.name}"`)).join(", ")})),_e(Vt(e).diagnosticRuleSet.reportGeneralTypeIssues,$o.reportGeneralTypeIssues,ml.Diagnostic.typeVarsNotInGeneric()+t.getString(),e)}}(e.name,c,u),s.details.typeParameters=u||c;const m=s.details.typeParameters.filter((e=>Io(e)));m.length>1&&fe(ml.Diagnostic.variadicTypeParamTooManyClass().format({names:m.map((e=>`"${e.details.name}"`)).join(", ")}),e.name,dt.combine(e.arguments)||e.name),Ha(s)||fe(ml.Diagnostic.methodOrdering(),e.name);const f=zs(e.suite);s.details.fields=(null==f?void 0:f.symbolTable)||new Map;const y=null==f?void 0:f.getSlotsNames();if(y&&(s.details.localSlotsNames=y),Zs.isTypedDictClass(s)&&fl(li,e,s),!i.isStubFile&&0===s.details.typeParameters.length){const t=s.details.fields.get("__init__");if(t){const n=t.getTypedDeclarations();if(1===n.length&&3===n[0].type){const t=n[0].node,i=t.parameters;if(i.length>1&&!i.some(((e,n)=>!!ie(t,n)))){const n=i.filter(((e,t)=>t>0&&e.name&&0===e.category));n.length>0&&(s.details.flags|=16384,s.details.typeParameters=n.map((n=>{const i=oo.createInstance(`__type_of_${n.name.value}`);return i.details.isSynthesized=!0,i.scopeId=Pe(t),i.details.boundType=Ys.create(),oo.cloneForScopeId(i,Pe(e),e.name.value,0)})))}}}}if(0!==s.details.typeParameters.length||Zs.isBuiltIn(s,"type")||(s.details.baseClasses.some((e=>_o(e)&&Zs.hasCustomClassGetItem(e)))||s.details.fields.has("__class_getitem__"))&&(s.details.flags|=262144),d){const e=$(d,void 0,h).type;(_o(e)||po(e))&&($a(e)&&_e(i.diagnosticRuleSet.reportGeneralTypeIssues,$o.reportGeneralTypeIssues,ml.Diagnostic.metaclassIsGeneric(),d),s.details.declaredMetaclass=e,_o(e)&&(Zs.isBuiltIn(e,"EnumMeta")?s.details.flags|=1048576:Zs.isBuiltIn(e,"ABCMeta")&&(s.details.flags|=512)))}let v=s.details.declaredMetaclass,T=!1;if(!v||_o(v))for(const t of s.details.baseClasses){if(!_o(t)){v=Ys.create();break}{const n=t.details.effectiveMetaclass||_;if(!n||!_o(n)){v=n?Ys.create():void 0;break}v?Da(n,v,!1)?v=n:Da(v,n,!1)||T||(_e(i.diagnosticRuleSet.reportGeneralTypeIssues,$o.reportGeneralTypeIssues,ml.Diagnostic.metaclassConflict(),e.name),T=!0):v=n}}if(!v){const t=xn(e,"type");v=t&&_o(t)?t:Ys.create()}s.details.effectiveMetaclass=v;let b,I=s,S=!1;for(let t=e.decorators.length-1;t>=0;t--){const n=e.decorators[t],r=Ht(I,s,n);Oa(r)?S||(_e(i.diagnosticRuleSet.reportUntypedClassDecorator,$o.reportUntypedClassDecorator,ml.Diagnostic.classDecoratorTypeUnknown(),e.decorators[t].expression),S=!0):I=r}if(_o(v)&&v.details.classDataClassTransform)b=v.details.classDataClassTransform;else{const e=s.details.mro.find((e=>yo(e)&&void 0!==e.details.classDataClassTransform));e&&(b=e.details.classDataClassTransform)}if(b&&(Wu(s,b),Bu(li,s,p)),s.details.flags&=-131073,Zs.isDataClass(s)){const t=Zs.isSkipSynthesizedDataClassInit(s);let n=t;if(!t){const e=va(s,"__init__",2);if(e){const t=Bn(e);Eo(t)&&Xs.isSynthesizedMethod(t)||(n=!0)}}let i=!1;const r=va(s,"__hash__",2);if(r){const e=Bn(r);Eo(e)&&!Xs.isSynthesizedMethod(e)&&(i=!0)}!function(e,t,n,i,r,s){w(Zs.isDataClass(n));const o=Aa(n,!0),a=Xs.createInstance("__new__","","",65),l=Xs.createInstance("__init__","","",64);Xs.addParameter(a,{category:0,name:"cls",type:o,hasDeclaredType:!0}),Xs.addDefaultParameters(a),a.details.declaredReturnType=Fa(o);const c={category:0,name:"self",type:Aa(n,!1),hasDeclaredType:!0};Xs.addParameter(l,c),l.details.declaredReturnType=to.createInstance();const u=[],p=[],d=function(e,t){let n=!0;for(let i=e.details.mro.length-1;i>=0;i--){const r=e.details.mro[i];if(_o(r)){const e=wa(r,!1);Zs.getDataClassEntries(r).forEach((n=>{const i=t.findIndex((e=>e.name===n.name)),r={...n};r.type=fa(r.type,e),n.isClassVar?i>=0&&t.splice(i,1):i>=0?t[i]=r:t.push(r)}))}else n=!1}return n}(n,p);d||Xs.addDefaultParameters(l);const h=[];let m=!1;t.suite.statements.forEach((r=>{47===r.nodeType&&r.statements.forEach((r=>{var s;let o,a,l,c,d=!1,f=Zs.isDataClassKeywordOnlyParams(n)||m,g=!0;if(3===r.nodeType){if(54===r.leftExpression.nodeType&&38===r.leftExpression.valueExpression.nodeType&&(o=r.leftExpression.valueExpression,l=()=>e.getTypeOfAnnotation(r.leftExpression.typeAnnotation,{isVariableAnnotation:!0,allowFinal:!0,allowClassVar:!0})),d=!0,c=r.rightExpression,9===r.rightExpression.nodeType){const i=e.getTypeOfExpression(r.rightExpression.leftExpression,void 0,2).type;if(function(e,t){let n;return Eo(e)?n=e.details.fullName:ko(e)?n=e.overloads[0].details.fullName:_o(e)&&(n=e.details.fullName),!!n&&t.some((e=>e===n))}(i,(null===(s=n.details.dataClassBehaviors)||void 0===s?void 0:s.fieldDescriptorNames)||[])){const n=r.rightExpression.arguments.find((e=>{var t;return"init"===(null===(t=e.name)||void 0===t?void 0:t.value)}));if(n&&n.valueExpression)!1===Xc(n.valueExpression,Vt(t).executionEnvironment)&&(g=!1);else{let t;if(Eo(i))t=i;else if(ko(i))t=e.getBestOverloadForArguments(r.rightExpression,i,r.rightExpression.arguments);else if(_o(i)){const n=e.getBoundMethod(i,"__init__");n&&(Eo(n)?t=n:ko(n)&&(t=e.getBestOverloadForArguments(r.rightExpression,n,r.rightExpression.arguments)))}if(t){const e=t.details.parameters.find((e=>"init"===e.name));e&&e.defaultValueExpression&&e.hasDeclaredType&&yo(e.type)&&Zs.isBuiltIn(e.type,"bool")&&ra(e.type)&&!1===e.type.literalValue&&(g=!1)}}const s=r.rightExpression.arguments.find((e=>{var t;return"kw_only"===(null===(t=e.name)||void 0===t?void 0:t.value)}));if(s&&s.valueExpression){const e=Xc(s.valueExpression,Vt(t).executionEnvironment);!1===e?f=!1:!0===e&&(f=!0)}const o=r.rightExpression.arguments.find((e=>{var t,n,i;return"default"===(null===(t=e.name)||void 0===t?void 0:t.value)||"default_factory"===(null===(n=e.name)||void 0===n?void 0:n.value)||"factory"===(null===(i=e.name)||void 0===i?void 0:i.value)}));d=!!o,(null==o?void 0:o.valueExpression)&&(c=o.valueExpression);const l=r.rightExpression.arguments.find((e=>{var t;return"alias"===(null===(t=e.name)||void 0===t?void 0:t.value)}));if(l){const t=e.getTypeOfExpression(l.valueExpression).type;vo(t)&&Zs.isBuiltIn(t,"str")&&ra(t)&&(a=t.literalValue)}}}}else if(54===r.nodeType&&38===r.valueExpression.nodeType&&(o=r.valueExpression,l=()=>e.getTypeOfAnnotation(r.typeAnnotation,{isVariableAnnotation:!0,allowFinal:!0,allowClassVar:!0}),"_"===r.valueExpression.value)){const e=l();vo(e)&&Zs.isBuiltIn(e,"KW_ONLY")&&(m=!0,o=void 0,l=void 0)}if(o&&l){const t=o.value,r=n.details.fields.get(t),s=null==r?void 0:r.getDeclarations().some((e=>1===e.type&&e.isFinal));if((null==r?void 0:r.isClassVar())&&!s){const e=p.findIndex((e=>e.name===t));e>=0&&p.splice(e,1);const i={name:t,classType:n,alias:a,isKeywordOnly:!1,hasDefault:d,defaultValueExpression:c,includeInInit:g,type:Ys.create(),isClassVar:!0};u.push(i)}else{const r={name:t,classType:n,alias:a,isKeywordOnly:f,hasDefault:d,defaultValueExpression:c,includeInInit:g,type:Ys.create(),isClassVar:!1};h.push({entry:r,evaluator:l});let s=u.findIndex((e=>e.name===t));if(s>=0?u[s]=r:u.push(r),s=p.findIndex((e=>e.name===t)),s>=0){const e=p[s];!r.hasDefault&&e.hasDefault&&(r.hasDefault=!0,r.defaultValueExpression=e.defaultValueExpression,d=!0),p[s]=r}else p.push(r),s=p.length-1;if(!f&&g&&!i&&!d){const t=p.findIndex((e=>e.hasDefault&&e.includeInInit&&!e.isKeywordOnly));t>=0&&t{e.entry.type=e.evaluator()}));const f=n.details.fields,g=[];i||r||!d||(p.forEach((t=>{var i;if(t.includeInInit){let r=t.type;if(t.classType!==n&&$a(r)){const e=new jo(na(t.classType));ma(e,t.classType,n),r=fa(r,e)}(null===(i=n.details.dataClassBehaviors)||void 0===i?void 0:i.transformDescriptorTypes)&&(r=function(e,t){if(!vo(t))return t;const n=_a(t,"__set__");if(!n)return t;const i=e.getTypeOfMember(n);if(!Eo(i))return t;const r=e.bindFunctionToClassOrObject(t,i);return!r||!Eo(r)||r.details.parameters.length<2?t:Xs.getEffectiveParameterType(r,1)}(e,r));const s={category:0,name:t.alias||t.name,hasDefault:t.hasDefault,defaultValueExpression:t.defaultValueExpression,type:r,hasDeclaredType:!0};t.isKeywordOnly?g.push(s):Xs.addParameter(l,s)}})),g.length>0&&(Xs.addParameter(l,{category:1,type:io.create()}),g.forEach((e=>{Xs.addParameter(l,e)}))),f.set("__init__",qo.createWithType(4,l)),f.set("__new__",qo.createWithType(4,a)));const y=e.getBuiltInType(t,"str"),_=e.getBuiltInType(t,"tuple");if(_&&_o(_)&&y&&_o(y)&&!f.has("__match_args__")){const e=[];p.forEach((t=>{t.includeInInit&&!t.isKeywordOnly&&e.push(t.name)}));const t=e.map((e=>({type:Zs.cloneAsInstance(Zs.cloneWithLiteral(y,e)),isUnbounded:!1}))),n=Zs.cloneAsInstance(Va(_,t));f.set("__match_args__",qo.createWithType(4,n))}const v=(n,i)=>{const r=Xs.createInstance(n,"","",64);Xs.addParameter(r,c),Xs.addParameter(r,{category:0,name:"other",type:i,hasDeclaredType:!0}),r.details.declaredReturnType=e.getBuiltInObject(t,"bool"),f.set(n,qo.createWithType(4,r))};if(Zs.isSkipSynthesizedDataClassEq(n)||v("__eq__",e.getBuiltInObject(t,"object")),Zs.isSynthesizedDataclassOrder(n)){const e=Zs.cloneAsInstance(n);["__lt__","__le__","__gt__","__ge__"].forEach((t=>{v(t,e)}))}let T=!Zs.isSkipSynthesizedDataClassEq(n)&&Zs.isFrozenDataClass(n);const b=!Zs.isSkipSynthesizedDataClassEq(n)&&!Zs.isFrozenDataClass(n);if(s&&(T=!1),Zs.isSynthesizeDataClassUnsafeHash(n)&&(T=!0),T){const n=Xs.createInstance("__hash__","","",64);Xs.addParameter(n,c),n.details.declaredReturnType=e.getBuiltInObject(t,"int"),f.set("__hash__",qo.createWithType(4,n))}else b&&!s&&f.set("__hash__",qo.createWithType(4,to.createInstance()));let I=e.getBuiltInType(t,"dict");_o(I)&&(I=Zs.cloneAsInstance(Zs.cloneForSpecialization(I,[e.getBuiltInObject(t,"str"),io.create()],!0))),f.set("__dataclass_fields__",qo.createWithType(4,I)),Zs.isGeneratedDataClassSlots(n)&&void 0===n.details.localSlotsNames&&(n.details.localSlotsNames=u.map((e=>e.name))),Uu(n,p.map((e=>e.type)),!0)}(li,e,s,t,n,i)}if(s.details.localSlotsNames){let e=!0;const t=[...s.details.localSlotsNames];s.details.baseClasses.forEach((n=>{_o(n)?Zs.isBuiltIn(n,"object")||Zs.isBuiltIn(n,"type")||Zs.isBuiltIn(n,"Generic")||(void 0===n.details.inheritedSlotsNames?e=!1:t.push(...n.details.inheritedSlotsNames)):e=!1})),e&&(s.details.inheritedSlotsNames=t)}return N(e.name,s,0,!1),N(e,I,0,!1),function(e,t,n){const i=n.length>0?n[0].node.name:e.name,r=Ne(i,t,"__init_subclass__",{method:"get"},void 0,133,t);if(r){const e=r.type;e&&et(i,n,e,void 0,!1,to.createInstance())}else if(t.details.effectiveMetaclass&&yo(t.details.effectiveMetaclass)){const r=va(t.details.effectiveMetaclass,"__new__",32);if(r){const t=Bn(r);if(Eo(t)){const r=Ho(t);if(void 0!==r.firstKeywordOnlyIndex){const s=new Map;for(let e=r.firstKeywordOnlyIndex;e{var o,a,l;if(0===n.argumentCategory&&n.name){const c=null!==(o=s.get(n.name.value))&&void 0!==o?o:r.kwargsIndex;if(void 0!==c){const e=r.params[c];st({paramCategory:e.param.category,paramType:Xs.getEffectiveParameterType(t,e.index),requiresTypeVarMatching:!1,argument:n,errorNode:null!==(a=n.valueExpression)&&void 0!==a?a:i},new jo,t,!0,!0,!1,void 0),s.delete(n.name.value)}else _e(Vt(e).diagnosticRuleSet.reportGeneralTypeIssues,$o.reportGeneralTypeIssues,ml.Diagnostic.paramNameMissing().format({name:n.name.value}),null!==(l=n.name)&&void 0!==l?l:i)}}));const o=[];if(s.forEach(((e,t)=>{r.params[e].param.hasDefault||o.push(t)})),o.length>0){const e=o.map((e=>`"${e}"`)).join(", ");_e(Vt(i).diagnosticRuleSet.reportGeneralTypeIssues,$o.reportGeneralTypeIssues,1===o.length?ml.Diagnostic.argMissingForParam().format({name:e}):ml.Diagnostic.argMissingForParams().format({names:e}),i)}}}}}n.forEach((e=>{e.valueExpression&&$(e.valueExpression)}))}(e,s,p),Zs.isBuiltIn(s,"UnionType")&&(g=Zs.cloneAsInstance(s)),{classType:s,decoratedType:I}}function Ht(e,t,n){let i=Vt(n).isStubFile?4:0;9!==n.expression.nodeType&&(i|=2);const r=$(n.expression,void 0,i).type;if(9===n.expression.nodeType){const e=$(n.expression.leftExpression,void 0,2|i).type;Eo(e)&&("__dataclass_transform__"!==e.details.name&&"dataclass_transform"!==e.details.builtInName||(t.details.classDataClassTransform=qu(li,n.expression)))}if(ko(r)){const n=Vu(r);if(n)return ju(li,t,n,void 0),e}else if(Eo(r)){if("final"===r.details.builtInName)return t.details.flags|=4096,e;if("runtime_checkable"===r.details.builtInName)return t.details.flags|=32768,e;let s,o;if(9===n.expression.nodeType?(o=n.expression,s=Vu($(o.leftExpression,void 0,2|i).type)):s=Vu($(n.expression,void 0,i).type),s)return ju(li,t,s,o),e}return J(n,e)}function Gt(e){const t=Vt(e),n=F(e.name,0);if(n){if(!Eo(n))return;return{functionType:n,decoratedType:F(e,0)||Ys.create()}}let i;const r=Mt(e);r&&(i=r);const s=Er(e,!0);let o;if(s){const e=$t(s);if(!e)return;o=e.classType}let a=en(e,!!s);(null==i?void 0:i.isGenerator)&&(a|=16),s&&"__class_getitem__"===e.name.value&&(a|=2),t.isStubFile?a|=2048:t.isInPyTypedPackage&&(a|=4096),e.isAsync&&(a|=512);const l=Xs.createInstance(e.name.value,function(e,t,n){const i=[n];let r=e;for(;r;)r=Dr(r),r&&i.push(r.name.value);return i.push(t),i.reverse().join(".")}(e,t.moduleName,e.name.value),t.moduleName,a,qr(e.suite.statements));l.details.typeVarScopeId=Pe(e),(t.isBuiltInStubFile||t.isTypingStubFile||t.isTypingExtensionsStubFile)&&(l.details.builtInName=e.name.value),l.details.declaration=i;const c=zs(e),u=null==c?void 0:c.lookUpSymbolRecursive(e.name.value);i&&u&&B(u.symbol,i,l),N(e,l,void 0,!1),N(e.name,l,void 0,!1);const p=o&&Zs.isPseudoGenericClass(o)&&"__init__"===e.name.value,d=[];let h=0,m=0;if(o&&0==(4&l.details.flags)&&(m=1),e.functionAnnotationComment&&!e.functionAnnotationComment.isParamListEllipsis){const t=e.parameters.length-m,n=e.functionAnnotationComment.paramTypeAnnotations.length;m>0&&n===e.parameters.length?m=0:n!==t&&fe(ml.Diagnostic.annotatedParamCountMismatch().format({expected:t,received:n}),e.functionAnnotationComment)}const f=e=>{if(e.name){const n=wn(e.name,e.name.value,!1);n&&we(t,n.symbol,e.name)}};let g=!0;if(e.parameters.forEach(((n,i)=>{let r,s,a,c,u=!1;if(n.name&&(0===i&&o&&(Xs.isClassMethod(l)||Xs.isInstanceMethod(l)||Xs.isConstructorMethod(l))||Xs.isAbstractMethod(l)||o&&Zs.isProtocolClass(o))&&f(n),n.typeAnnotation)a=n.typeAnnotation;else if(n.typeAnnotationComment)a=n.typeAnnotationComment;else if(e.functionAnnotationComment&&!e.functionAnnotationComment.isParamListEllipsis){const t=i-m;t>=0&&t0&&0===n.category&&n.name&&(s=o.details.typeParameters[h],h++),s){const e=Jt(n,s);e!==s&&(s=e,u=!0)}if(n.defaultValue&&(c=$(n.defaultValue,s,1).type),s){if(n.defaultValue&&c){const i=new il,r=new jo(l.details.typeVarScopeId);if(o&&void 0!==o.details.typeVarScopeId&&("__init__"!==e.name.value&&"__new__"!==e.name.value||r.addSolveForScope(o.details.typeVarScopeId)),!Jn(s,c,i,r)){const e=_e(t.diagnosticRuleSet.reportGeneralTypeIssues,$o.reportGeneralTypeIssues,ml.Diagnostic.paramAssignmentMismatch().format({sourceType:ai(c),paramType:ai(s)})+i.getString(),n.defaultValue);if(u&&a){const t={action:"pyright.addoptionalforparam",offsetOfTypeNode:a.start+1};e&&e.addAction(t)}}}r=s}const y=0===n.category&&n.name&&Kt(n.name.value),_=0===n.category&&!n.name;i>0&&g&&!y&&!_&&Xs.addParameter(l,{category:0,type:Ys.create()}),y&&!_||(g=!1);let v=!1;r||(v=!0,r=Qt(e,l.details.flags,i,o));const T={category:n.category,name:n.name?n.name.value:void 0,hasDefault:!!n.defaultValue,defaultValueExpression:n.defaultValue,defaultType:c,type:null!=r?r:Ys.create(),typeAnnotation:a,hasDeclaredType:!!a,isTypeInferred:v};if(Xs.addParameter(l,T),n.name){const t=Xt(e,n.category,T.type);d.push(t)}else d.push(T.type)})),g&&l.details.parameters.length>0&&Xs.addParameter(l,{category:0,type:Ys.create()}),d.forEach(((t,n)=>{const i=e.parameters[n].name;i&&(po(t)&&(l.details.flags|=16384),N(i,t,0,!1))})),d.length>=2){const e=d[d.length-2],t=d[d.length-1];wo(e)&&"args"===e.paramSpecAccess&&wo(t)&&"kwargs"===t.paramSpecAccess&&(l.details.flags|=32768)}if(e.returnTypeAnnotation){l.details.declaredReturnType=Ys.create();const t=K(e.returnTypeAnnotation,{associateTypeVarsWithScope:!0,disallowRecursiveTypeAlias:!0});l.details.declaredReturnType=t}else if(e.functionAnnotationComment){l.details.declaredReturnType=Ys.create();const t=K(e.functionAnnotationComment.returnTypeAnnotation,{associateTypeVarsWithScope:!0,disallowRecursiveTypeAlias:!0});l.details.declaredReturnType=t}else t.isStubFile&&("__init__"===e.name.value?l.details.declaredReturnType=to.createInstance():l.details.declaredReturnType=Ys.create());(t.isStubFile||Or(e.suite))&&l.details.declaredReturnType&&vo(l.details.declaredReturnType)&&Zs.isBuiltIn(l.details.declaredReturnType,["Generator","AsyncGenerator","AwaitableGenerator"])&&(l.details.flags|=16);let y=e.isAsync?function(e,t){const n=Xs.clone(t);return t.details.declaredReturnType&&(n.details.declaredReturnType=nn(e,t.details.declaredReturnType,Xs.isGenerator(t))),n.details.flags|=1024,n}(e,l):l,_=!1;for(let n=e.decorators.length-1;n>=0;n--){const i=e.decorators[n],r=tn(y,l,i,e);Oa(r)?_||(_e(t.diagnosticRuleSet.reportUntypedFunctionDecorator,$o.reportUntypedFunctionDecorator,ml.Diagnostic.functionDecoratorTypeUnknown(),e.decorators[n].expression),_=!0):y=r}return Eo(y)&&(Xs.isOverloaded(y)&&e.parameters.forEach((e=>{f(e)})),y=function(e,t){let n;const i=Mt(e);i&&(n=i);const r=wn(e,e.name.value,!1);if(r){const i=r.symbol.getDeclarations(),s=i.findIndex((e=>e===n));if(s>0){for(let e=0;e{var i,r;const s=e.parameters[n];return(null===(i=s.name)||void 0===i?void 0:i.value)===(null===(r=t.name)||void 0===r?void 0:r.value)&&s.category===t.category}))){const t=i.parameters[n],s=null!==(r=t.typeAnnotation)&&void 0!==r?r:t.typeAnnotationComment;if(s){let t=G(s,e.parameters[n].category);const i=Vt(e);return i.isInPyTypedPackage&&!i.isStubFile&&(t=Ks.cloneForAmbiguousType(t)),t}}}}}const s=e.parameters[n].defaultValue;if(s){const t=$(s,void 0,1).type;let n;if(lo(t)?n=Oo([to.createInstance(),Ys.create()]):vo(t)&&Zs.isBuiltIn(t,["tuple","list","set","dict"])||(n=Qo(t)),n){const t=Vt(e);t.isInPyTypedPackage&&!t.isStubFile&&(n=Ks.cloneForAmbiguousType(n))}return n}}function Xt(e,t,n){switch(t){case 0:return n;case 1:return bo(n)&&n.paramSpecAccess?n:xo(n)?Zs.cloneForUnpacked(n,!1):T&&_o(T)?Zs.cloneAsInstance(Va(T,[{type:n,isUnbounded:!Io(n)}],!0,!0)):Ys.create();case 2:{if(bo(n)&&n.paramSpecAccess)return n;if(vo(n)&&Zs.isTypedDictClass(n)&&n.isUnpacked)return n;const t=xn(e,"dict"),i=Cn(e,"str");return _o(t)&&vo(i)?Zs.cloneAsInstance(Zs.cloneForSpecialization(t,[i,n],!0)):Ys.create()}}}function en(e,t){const n=Vt(e);let i=0;"__new__"===e.name.value&&t&&(i|=1),"__init_subclass__"===e.name.value&&t&&(i|=2);for(const r of e.decorators){let e=n.isStubFile?4:0;9!==r.expression.nodeType&&(e|=2);const s=$(r.expression,void 0,e).type;Eo(s)?"abstractmethod"===s.details.builtInName?t&&(i|=8):"final"===s.details.builtInName&&(i|=8192):_o(s)&&(Zs.isBuiltIn(s,"staticmethod")?t&&(i|=4):Zs.isBuiltIn(s,"classmethod")&&t&&(i|=2))}return i}function tn(e,t,n,i){let r=Vt(n).isStubFile?4:0;9!==n.expression.nodeType&&(r|=2);const s=$(n.expression,void 0,r).type;if((_o(s)&&Zs.isSpecialBuiltIn(s,"overload")||Eo(s)&&"overload"===s.details.builtInName)&&Eo(e))return e.details.flags|=256,t.details.flags|=256,e;if(9===n.expression.nodeType){const i=$(n.expression.leftExpression,void 0,2|r).type;if(Eo(i)&&("__dataclass_transform__"===i.details.name||"dataclass_transform"===i.details.builtInName))return t.details.decoratorDataClassBehaviors=qu(li,n.expression),e}let o=J(n,e);if(Eo(s)){if("abstractmethod"===s.details.builtInName)return e;if(35===n.expression.nodeType){const t=$(n.expression.leftExpression,void 0,2|r).type;if(ua(t)){const r=n.expression.memberName.value;if("setter"===r)return Eo(e)?($u(li,e,n),function(e,t,n,i){if(!ua(t))return t;const r=t,s=r.details.flags;let o=!!r.isAsymmetricDescriptor;const a=Vt(i);if(i.parameters.length>=2){const t=e.getTypeAnnotationForParameter(i,1);if(t){const n=e.getGetterTypeFromProperty(r,!1);if(n&&!ho(n)){const i=e.getTypeOfAnnotation(t,{associateTypeVarsWithScope:!0,disallowRecursiveTypeAlias:!0});if("none"!==a.diagnosticRuleSet.reportPropertyTypeMismatch){const r=new il;e.canAssignType(n,i,r)||e.addDiagnostic(a.diagnosticRuleSet.reportPropertyTypeMismatch,$o.reportPropertyTypeMismatch,ml.Diagnostic.setterGetterTypeMismatch()+r.getString(),t)}Ao(n,i)||(o=!0)}}}const l=Zs.createInstantiable(r.details.name,r.details.fullName,r.details.moduleName,Vt(i).filePath,s,r.details.typeSourceId,r.details.declaredMetaclass,r.details.effectiveMetaclass);l.details.typeVarScopeId=r.details.typeVarScopeId,Ha(l);const c=Zs.cloneAsInstance(l);l.isAsymmetricDescriptor=o;const u=l.details.fields;r.details.fields.forEach(((e,t)=>{e.isIgnoredForProtocolMatch()||u.set(t,e)}));const p=qo.createWithType(4,n);u.set("fset",p);const d=Xs.createInstance("__set__","","",64);Xs.addParameter(d,{category:0,name:"self",type:t,hasDeclaredType:!0});let h=n.details.parameters.length>0?n.details.parameters[0].type:io.create();bo(h)&&h.details.isSynthesizedSelf&&(h=e.makeTopLevelTypeVarsConcrete(h)),Xs.addParameter(d,{category:0,name:"obj",type:Oo([h,to.createInstance()]),hasDeclaredType:!0}),d.details.declaredReturnType=to.createInstance();let m=Ys.create();n.details.parameters.length>=2&&0===n.details.parameters[1].category&&n.details.parameters[1].name&&(m=n.details.parameters[1].type),Xs.addParameter(d,{category:0,name:"value",type:m,hasDeclaredType:!0});const f=qo.createWithType(4,d);return u.set("__set__",f),c}(li,t,e,i)):e;if("deleter"===r)return Eo(e)?($u(li,e,n),function(e,t,n,i){var r;if(!ua(t))return t;const s=t,o=Zs.createInstantiable(s.details.name,s.details.fullName,s.details.moduleName,Vt(i).filePath,s.details.flags,s.details.typeSourceId,s.details.declaredMetaclass,s.details.effectiveMetaclass);o.details.typeVarScopeId=s.details.typeVarScopeId,Ha(o);const a=Zs.cloneAsInstance(o);o.isAsymmetricDescriptor=null!==(r=s.isAsymmetricDescriptor)&&void 0!==r&&r;const l=o.details.fields;s.details.fields.forEach(((e,t)=>{e.isIgnoredForProtocolMatch()||l.set(t,e)}));const c=qo.createWithType(4,n);l.set("fdel",c);const u=Xs.createInstance("__delete__","","",64);Xs.addParameter(u,{category:0,name:"self",type:t,hasDeclaredType:!0});let p=n.details.parameters.length>0?n.details.parameters[0].type:io.create();bo(p)&&p.details.isSynthesizedSelf&&(p=e.makeTopLevelTypeVarsConcrete(p)),Xs.addParameter(u,{category:0,name:"obj",type:Oo([p,to.createInstance()]),hasDeclaredType:!0}),u.details.declaredReturnType=to.createInstance();const d=qo.createWithType(4,u);return l.set("__delete__",d),a}(li,t,e,i)):e}}}else if(_o(s)){if(Zs.isBuiltIn(s))switch(s.details.name){case"classmethod":case"staticmethod":{const t="classmethod"===s.details.name?2:4;if(Eo(e)&&0==(e.details.flags&t)){const n=Xs.clone(e);return n.details.flags&=-8,n.details.flags|=t,n}return e}}if(Zs.isPropertyClass(s)){if(Eo(e))return $u(li,e,n),Hu(li,n,s,e);if(vo(e)){const t=_a(e,"__call__");if(t){const i=Bn(t);if(Eo(i)||ko(i)){const t=ri(e,i);if(t&&Eo(t))return Hu(li,n,s,t)}}return Ys.create()}}}return Eo(e)&&Eo(o)&&(o=Xs.clone(o),Xs.isOverloaded(e)&&(o.details.flags|=256),o.details.docString||(o.details.docString=e.details.docString)),o}function nn(e,t,n){let i;if(vo(t)&&Zs.isBuiltIn(t))if("Generator"===t.details.name){const n=ce(e,"AsyncGenerator");if(n&&_o(n)){const e=[],r=t.typeArguments;r&&r.length>0&&e.push(r[0]),r&&r.length>1&&e.push(r[1]),i=Zs.cloneAsInstance(Zs.cloneForSpecialization(n,e,!0))}}else["AsyncGenerator","AsyncIterator","AsyncIterable"].some((e=>e===t.details.name))&&(i=t);if(!i||!n){const n=ce(e,"Coroutine");i=n&&_o(n)?Zs.cloneAsInstance(Zs.cloneForSpecialization(n,[io.create(),io.create(),t],!0)):Ys.create()}return i}function rn(e,t){var n;if(e.returnTypeAnnotation||(null===(n=e.functionAnnotationComment)||void 0===n?void 0:n.returnTypeAnnotation))return;let r=F(e.suite,0);if(r)return r;if(!i.has(e.id)){i.set(e.id,!0);try{let n;const s=Mt(e);s&&(n=s);const o=!de(e),a=de(e.suite);if(Vt(e).isStubFile)r=Ys.create();else{if(o)r=t||function(e){if(!e||!e.isMethod||e.returnStatements||e.yieldStatements||!e.raiseStatements)return!1;for(const t of e.raiseStatements){if(!t.typeExpression||t.valueExpression)return!1;const e=$(t.typeExpression).type,n=_o(e)||vo(e)?e:void 0;if(!n||!Zs.isBuiltIn(n,"NotImplementedError"))return!1}return!0}(n)?Ys.create():no.createNoReturn();else{const e=[];(null==n?void 0:n.returnStatements)&&n.returnStatements.forEach((t=>{if(pe(t))if(t.returnExpression){const n=$(t.returnExpression).type;e.push(n||Ys.create())}else e.push(to.createInstance())})),!o&&a&&e.push(to.createInstance()),r=Oo(e),r=Ro(r)}if(null==n?void 0:n.isGenerator){const t=[];let i=!1;n.yieldStatements&&n.yieldStatements.forEach((e=>{if(pe(e))if(61===e.nodeType){const n=$(e.expression).type;if(vo(n)&&Zs.isBuiltIn(n,"Coroutine"))t.push(),i=!0;else{const i=ae(n,!1,e);t.push(i||Ys.create())}}else if(e.expression){const n=$(e.expression).type;t.push(n||Ys.create())}else t.push(to.createInstance())})),0===t.length&&t.push(to.createInstance());const s=Oo(t),o=ce(e,i?"AwaitableGenerator":"Generator");if(o&&_o(o)){const e=[];i&&e.push(io.create()),e.push(s,to.createInstance(),ao(r)?to.createInstance():r),r=Zs.cloneAsInstance(Zs.cloneForSpecialization(o,e,!0))}else r=Ys.create()}}N(e.suite,r,0,!1)}finally{i.delete(e.id)}}return r}function sn(e){if(F(e,0))return;const t=$(e.iterableExpression),n=ae(t.type,!!e.isAsync,e.iterableExpression)||Ys.create();xe(e.targetExpression,n,!!t.isIncomplete,e.targetExpression),N(e,n,0,!!t.isIncomplete)}function on(e){if(w(void 0!==e.typeExpression),F(e,0))return;function t(e,t){return ho(e=Ie(e))?e:_o(e)?Zs.cloneAsInstance(e):vo(e)?Ko(ae(e,!1,t)||Ys.create(),(e=>ho(e)?e:Ys.create())):Ys.create()}const n=Ko($(e.typeExpression).type,(n=>{const i=ia(n);return i&&i.tupleTypeArguments?Oo(i.tupleTypeArguments.map((n=>t(n.type,e.typeExpression)))):t(n,e.typeExpression)}));e.name&&xe(e.name,n,!1,e.name),N(e,n,0,!1)}function an(e){if(F(e,0))return;const t=$(e.expression);let n=t.type;const i=e.parent&&58===e.parent.nodeType&&!!e.parent.isAsync;Go(n)&&(_e(Vt(e).diagnosticRuleSet.reportOptionalContextManager,$o.reportOptionalContextManager,ml.Diagnostic.noneNotUsableWith(),e.expression),n=Fo(n));const r=i?"__aenter__":"__enter__",s=Ko(n,(t=>{var n;if(ho(t=Ie(t)))return t;const s=new il,o=new il;if(vo(t)){const a=null===(n=ee(e.expression,t,r,{method:"get"},s))||void 0===n?void 0:n.type;if(a){let t;return t=Eo(a)?Un(a):Ys.create(),i&&(t=oe(t,e)),t}i||ee(e.expression,t,"__aenter__",{method:"get"},s)&&o.addMessage(ml.DiagnosticAddendum.asyncHelp())}return _e(Vt(e).diagnosticRuleSet.reportGeneralTypeIssues,$o.reportGeneralTypeIssues,ml.Diagnostic.typeNotUsableWith().format({type:ai(t),method:r})+o.getString(),e.expression),Ys.create()})),o=i?"__aexit__":"__exit__";Jo(n,(t=>{if(ho(t=Ie(t)))return;const n=new il;vo(t)&&ee(e.expression,t,o,{method:"get"},n)||_e(Vt(e).diagnosticRuleSet.reportGeneralTypeIssues,$o.reportGeneralTypeIssues,ml.Diagnostic.typeNotUsableWith().format({type:ai(t),method:o}),e.expression)})),e.target&&xe(e.target,s,!!t.isIncomplete,e.target),N(e,s,0,!!t.isIncomplete)}function ln(e){if(F(e,0))return;let t;if(t=e.alias?e.alias:e.module.nameParts[0],!t)return;let n=dn(e,t.value)||Ys.create();const i=F(e,0);i&&To(i)&&n&&Ao(n,i)&&(n=i),Te(t,n,!1),N(e,n,0,!1)}function cn(t){var n;if(F(t,0))return;const i=t.alias||t.name,r=Vt(t);if((null===(n=t.alias)||void 0===n?void 0:n.value)===t.name.value){const e=wn(t,t.name.value,!0);e&&we(r,e.symbol,t)}let s=dn(t,i.value);if(!s){const n=t.parent;w(n&&22===n.nodeType),w(!n.isWildcardImport);const i=Rt(n.module);if(i&&i.isImportFound&&!i.isNativeLib){const n=i.resolvedPaths[i.resolvedPaths.length-1],o=e(n);let a=!1;if(o){if(a=!0,r.executionEnvironment.pythonVersion>=De.V3_7||r.isStubFile){const e=o.symbolTable.get("__getattr__");if(e){const t=Nn(e);Eo(t)&&(s=Un(t),a=!1)}}}else n||(a=!0);a&&_e(r.diagnosticRuleSet.reportGeneralTypeIssues,$o.reportGeneralTypeIssues,ml.Diagnostic.importSymbolUnknown().format({name:t.name.value,moduleName:i.importName}),t.name)}s||(s=Ys.create())}Te(i,s,!1),N(t,s,0,!1)}function un(e){if(F(e,0))return;if(!e.parent||63!==e.parent.nodeType)return void E("Expected parent of case statement to be match statement");const t=$(e.parent.subjectExpression);let n=t.type;for(const t of e.parent.cases){if(t===e)break;t.guardExpression||(n=fu(li,n,t.pattern,!1))}let i=!1;Jo(Ie(n),(e=>{vo(e)&&Zs.isBuiltIn(e,"object")&&(i=!0)})),n=fu(li,n,e.pattern,!0),bu(li,n,!!t.isIncomplete,i,e.pattern),N(e,n,0,!!t.isIncomplete)}function pn(e){if(F(e,0))return;const t=e.module.nameParts[0];let n=dn(e,t.value)||Ys.create();const i=F(e,0);i&&To(i)&&n&&Ao(n,i)&&(n=i),Te(t,n,!1),N(e,n,0,!1)}function dn(e,n){const i=wn(e,n,!0);if(!i)return;const r=i.symbol.getDeclarations().filter((t=>Mr(e,t.node)&&6===t.type));let s=r.length>0?r[r.length-1]:void 0;if(s||(s=i.symbol.getDeclarations().find((e=>6===e.type))),!s)return;w(6===s.type);const o=Vt(e),a=Fn(s,!0,o.isStubFile);if(a){if(!a.declaration)return t.evaluateUnknownImportsAsAny?io.create():Ys.create();if(23===e.nodeType&&(a.isPrivate&&_e(o.diagnosticRuleSet.reportPrivateUsage,$o.reportPrivateUsage,ml.Diagnostic.privateUsedOutsideOfModule().format({name:e.name.value}),e.name),a.privatePyTypedImporter)){const t=new il;a.privatePyTypedImported&&t.addMessage(ml.DiagnosticAddendum.privateImportFromPyTypedSource().format({module:a.privatePyTypedImported})),_e(o.diagnosticRuleSet.reportPrivateImportUsage,$o.reportPrivateImportUsage,ml.Diagnostic.privateImportFromPyTypedModule().format({name:e.name.value,module:a.privatePyTypedImporter})+t.getString(),e.name)}return Pn(i.symbol,s)}}function hn(e){var t,n,i;let r=e,s=e;function o(e){var t,n,i,r,s;return 41===e.nodeType&&30===(null===(t=e.parent)||void 0===t?void 0:t.nodeType)||1===e.nodeType&&(9===(null===(n=e.parent)||void 0===n?void 0:n.nodeType)||24===(null===(i=e.parent)||void 0===i?void 0:i.nodeType))||54===(null===(r=e.parent)||void 0===r?void 0:r.nodeType)||41===(null===(s=e.parent)||void 0===s?void 0:s.nodeType)&&(e===e.parent.typeAnnotation||e===e.parent.typeAnnotationComment)||9===e.nodeType||24===e.nodeType||15===e.nodeType||27===e.nodeType||31===e.nodeType||30===e.nodeType||35===e.nodeType||45===e.nodeType||49===e.nodeType||48===e.nodeType||52===e.nodeType||56===e.nodeType||17===e.nodeType||16===e.nodeType||32===e.nodeType||33===e.nodeType||34===e.nodeType||65===e.nodeType||67===e.nodeType||68===e.nodeType||74===e.nodeType||66===e.nodeType||69===e.nodeType||70===e.nodeType||73===e.nodeType||71===e.nodeType||72===e.nodeType}if(38===e.nodeType&&e.parent){if(28===e.parent.nodeType&&e.parent.name===e)return void Gt(e.parent);if(10===e.parent.nodeType&&e.parent.name===e)return void $t(e.parent);if(29===e.parent.nodeType||39===e.parent.nodeType)return void $(e,void 0,4)}for(;s;){const e=o(s);if(!e&&!yr(s))break;e&&(r=s),s=s.parent}const a=r.parent;if(3===a.nodeType)return void(r===a.typeAnnotationComment?K(r,{isVariableAnnotation:!0,allowFinal:Fr(a.leftExpression),allowClassVar:Nr(a.leftExpression)}):Wt(a));if(14===a.nodeType)return void Ce(r);if(5===a.nodeType)return void jt(a);if(13===a.nodeType)return void(10===(null===(t=a.parent)||void 0===t?void 0:t.nodeType)?$t(a.parent):28===(null===(n=a.parent)||void 0===n?void 0:n.nodeType)&&Gt(a.parent));const l=e=>{const t=e.parent;if(3===(null==t?void 0:t.nodeType)&&t.leftExpression===a)Wt(t);else{const t=K(e.typeAnnotation,{isVariableAnnotation:!0,allowFinal:Fr(e.valueExpression),allowClassVar:Nr(e.valueExpression)});N(e.valueExpression,t,0,!1)}};if(64===a.nodeType&&r!==a.guardExpression)return void un(a);if(54===a.nodeType)return void l(a);if(41===a.nodeType&&r!==a.defaultValue)return void mn(a);if(28===a.nodeType&&(r===a.returnTypeAnnotation||r===a.functionAnnotationComment))return void K(r,{associateTypeVarsWithScope:!0,disallowRecursiveTypeAlias:!0});if(37===a.nodeType)return;if(1===a.nodeType&&r===a.name)return;if(1===a.nodeType&&10===(null===(i=a.parent)||void 0===i?void 0:i.nodeType))return void $t(a.parent);if(44===a.nodeType&&a.returnExpression){const t=kr(e),n=t?Vn(t):void 0;return void $(a.returnExpression,n,0)}const c=yr(a)&&0!==a.nodeType?a:r;54===c.nodeType?l(c):$(c,void 0,Vt(c).isStubFile?4:0)}function mn(e){if(!e.name)return;const t=e.parent;if(30===t.nodeType)return void hn(t);w(28===t.nodeType);const n=t,i=n.parameters.findIndex((t=>t===e)),r=ie(n,i);if(r){const t=n.parameters[i],s=G(r,n.parameters[i].category),o=Xt(e,e.category,Jt(t,s));return void N(e.name,o,0,!1)}const s=Er(n,!0);if(s){const t=$t(s);if(t){const r=Qt(n,en(n,!0),i,t.classType);if(r)return void N(e.name,Xt(e,e.category,r),0,!1)}}N(e.name,Xt(e,e.category,Ys.create()),0,!1)}function fn(e){z(e);let t=e;for(;t;){switch(t.nodeType){case 3:if(!t.parent||3!==t.parent.nodeType&&4!==t.parent.nodeType&&5!==t.parent.nodeType||t.parent.rightExpression!==t)return void Wt(t);break;case 4:return void $(t);case 5:return void jt(t);case 10:return void $t(t);case 41:return void mn(t);case 30:return void hn(t);case 28:return void Gt(t);case 26:return void sn(t);case 25:return void on(t);case 59:return void an(t);case 33:{const e=t.parent;if(w(32===e.nodeType),t===e.expression)hn(e);else for(const n of e.forIfNodes)if(Ct(n),n===t)break;return}case 21:return void ln(t);case 23:return void cn(t);case 22:return void pn(t);case 64:return void un(t)}t=t.parent}E("Unexpected statement")}function gn(e,t){let n=F(e,void 0);if(n)return{node:e,type:n};const i=C;try{if(C=new Map,t(),n=F(e,void 0),n)return{node:e,type:n};if(n=C.get(e.id),n)return{node:e,type:n,isIncomplete:!0};C=i}catch(e){throw C=i,e}}function yn(e){let t=r.get(e);return t||(t=ci.createCodeFlowAnalyzer(),r.set(e,t)),t}function _n(e,t,n,i,r){var s;const o=At(e),a=Rr(null!==(s=null==r?void 0:r.parent)&&void 0!==s?s:e),l=a.codeFlowExpressions;if(!l||!l.has(o))return{type:void 0,isIncomplete:!1};let c;c=L(a)?function(){const e=D.length;return w(e>0),D[e-1].codeFlowAnalyzer}():yn(a.id);const u=Lt(null!=r?r:e);return void 0===u?{type:void 0,isIncomplete:!1}:vn(c,u,e,t,n,i)}function vn(e,t,n,i,r,s){let o;d.enterTrackingScope();try{o=e.getTypeFromCodeFlow(t,n,i,r,s),d.exitTrackingScope()}catch(e){throw d.exitTrackingScope(),e}return o.isIncomplete&&d.enableUndoTracking(),o}function Tn(e,t,n,i){if(Zs.isSpecialBuiltIn(e)){const r=e.aliasName||e.details.name;switch(r){case"Callable":return function(e,t){const n=Xs.createInstantiable("","","",0);Ks.setSpecialForm(n),n.details.declaredReturnType=Ys.create();const i=Dr(t);if(n.details.typeVarScopeId=i?Pe(i):$s,e&&e.length>0){if(e[0].typeList){const t=e[0].typeList;let i=!1,r=!1;const s=e=>{i&&(r||(fe(ml.Diagnostic.variadicTypeArgsTooMany(),e.node),r=!0)),i=!0};t.forEach(((e,t)=>{let i=e.type,r=0;const o=`__p${t.toString()}`;Io(i)?(Oe(i,e.node),r=1,s(e)):Et(e,{allowUnpackedTuples:!0})?xo(i)&&(r=1,s(e)):i=Ys.create(),Xs.addParameter(n,{category:r,name:o,isNameSynthesized:!0,type:Fa(i),hasDeclaredType:!0})})),Xs.addParameter(n,{category:0,isNameSynthesized:!1,type:Ys.create()})}else if(ca(e[0].type))Xs.addDefaultParameters(n),n.details.flags|=32768;else if(wo(e[0].type))n.details.paramSpec=e[0].type;else if(_o(e[0].type)&&Zs.isBuiltIn(e[0].type,"Concatenate")){const t=e[0].type.typeArguments;t&&t.length>0&&t.forEach(((e,i)=>{i===t.length-1?(Xs.addParameter(n,{category:0,isNameSynthesized:!1,type:Ys.create()}),wo(e)&&(n.details.paramSpec=e)):Xs.addParameter(n,{category:0,name:`__p${i}`,isNameSynthesized:!0,hasDeclaredType:!0,type:e})}))}else fe(ml.Diagnostic.callableFirstArg(),e[0].node);if(e.length>1){let t=e[1].type;Et(e[1])||(t=Ys.create()),n.details.declaredReturnType=Fa(t)}else _e(Vt(t).diagnosticRuleSet.reportGeneralTypeIssues,$o.reportGeneralTypeIssues,ml.Diagnostic.callableSecondArg(),t),n.details.declaredReturnType=Ys.create();e.length>2&&fe(ml.Diagnostic.callableExtraArgs(),e[2].node)}else Xs.addDefaultParameters(n,!0),n.details.flags|=32768;return n}(t,i);case"Never":return t&&t.length>0&&fe(ml.Diagnostic.typeArgsExpectingNone().format({name:"Never"}),t[0].node),no.createNever();case"NoReturn":return t&&t.length>0&&fe(ml.Diagnostic.typeArgsExpectingNone().format({name:"NoReturn"}),t[0].node),no.createNoReturn();case"Optional":return function(e,t,n,i){if(!n)return 0!=(1024&i)?(fe(ml.Diagnostic.optionalExtraArgs(),t),Ys.create()):e;if(n.length>1)return fe(ml.Diagnostic.optionalExtraArgs(),t),Ys.create();let r=n[0].type;Et(n[0])?Ks.isInstantiable(r)||(ve(r,n[0].node),r=Ys.create()):r=Ys.create();const s=Oo([r,to.createType()]);return fo(s)&&Ks.setSpecialForm(s),s}(e,i,t,n);case"Type":{if(1===(null==t?void 0:t.length)&&ho(t[0].type)&&_&&_o(_))return _;let n=Ot(e,t,1);return _o(n)&&(n=Ua(n)),n}case"ClassVar":return function(e,t,n,i){var r;if(131072&i)return fe(ml.Diagnostic.classVarNotAllowed(),t),io.create();if(!n)return e;if(0===n.length)return fe(ml.Diagnostic.classVarFirstArgMissing(),t),Ys.create();if(n.length>1)return fe(ml.Diagnostic.classVarTooManyArgs(),n[1].node),Ys.create();const s=n[0].type;return $a(s,!0,!0)&&_e(Vt(t).diagnosticRuleSet.reportGeneralTypeIssues,$o.reportGeneralTypeIssues,ml.Diagnostic.classVarWithTypeVar(),null!==(r=n[0].node)&&void 0!==r?r:t),s}(e,i,t,n);case"Protocol":return Ot(e,t,void 0,!0);case"Tuple":return Ot(e,t,void 0);case"Union":return function(e,t,n,i){const r=[];if(!n)return 0!=(1024&i)?(fe(ml.Diagnostic.unionTypeArgCount(),t),no.createNever()):e;for(const e of n){let t=e.type;Et(e,{allowVariadicTypeVar:!0,allowUnpackedTuples:!0})?Ks.isInstantiable(t)||(ve(t,e.node),t=Ys.create()):t=Ys.create(),xo(e.type)&&e.type.tupleTypeArguments?e.type.tupleTypeArguments.forEach((e=>{r.push(Na(e.type))})):(bo(t)&&Io(t)&&t.isVariadicUnpacked&&(t=oo.cloneForUnpacked(t,!0)),r.push(t))}1===r.length&&(Io(r[0])||Co(r[0])||lo(r[0])||fe(ml.Diagnostic.unionTypeArgCount(),t));const s=Oo(r);return fo(s)&&Ks.setSpecialForm(s),s}(e,i,t,n);case"Generic":return function(e,t,n,i){if(!n)return 0!=(263168&i)&&fe(ml.Diagnostic.genericTypeArgMissing(),t),e;const r=[];return n&&(0===n.length&&fe(ml.Diagnostic.genericTypeArgMissing(),t),n.forEach((e=>{bo(e.type)?(r.some((t=>Ao(t,e.type)))&&fe(ml.Diagnostic.genericTypeArgUnique(),e.node),r.push(e.type)):fe(ml.Diagnostic.genericTypeArgTypeVar(),e.node)}))),Ot(e,n,void 0,!0)}(e,i,t,n);case"Final":return function(e,t,n,i){return 16&i?(fe(ml.Diagnostic.finalContext(),t),io.create()):n&&0!==n.length?(n.length>1&&fe(ml.Diagnostic.finalTooManyArgs(),t),n[0].type):e}(e,i,t,n);case"Annotated":return function(e,t){return t&&t.length<2&&fe(ml.Diagnostic.annotatedTypeArgMissing(),e),t&&0!==t.length?Ks.cloneForAnnotated(t[0].type):io.create()}(i,t);case"Concatenate":return function(e,t,n){return n&&0!==n.length?n.forEach(((e,t)=>{t===n.length-1?wo(e.type)||fe(ml.Diagnostic.concatenateParamSpecMissing(),e.node):wo(e.type)&&fe(ml.Diagnostic.paramSpecContext(),e.node)})):fe(ml.Diagnostic.concatenateTypeArgsMissing(),e),Ot(t,n,void 0,!0)}(i,e,t);case"TypeGuard":case"StrictTypeGuard":return function(e,t,n,i){if(!n)return 0!=(1024&i)&&fe(ml.Diagnostic.typeGuardArgCount(),e),t;if(1!==n.length)return fe(ml.Diagnostic.typeGuardArgCount(),e),Ys.create();const r=n.map((e=>Fa(Et(e)?e.type:Ys.create())));return Zs.cloneForSpecialization(t,r,!0)}(i,e,t,n);case"Unpack":return function(e,t,n){if(!t||1!==t.length)return fe(ml.Diagnostic.unpackArgCount(),e),Ys.create();let i=t[0].type;fo(i)&&1===i.subtypes.length&&(i=i.subtypes[0]);const r=Vt(e);return 0!=(2097152&n)?_o(i)&&!i.includeSubclasses&&pa(i)?Zs.cloneForUnpacked(i):Io(i)&&!i.isVariadicUnpacked?oo.cloneForUnpacked(i):(_e(r.diagnosticRuleSet.reportGeneralTypeIssues,$o.reportGeneralTypeIssues,ml.Diagnostic.unpackExpectedTypeVarTuple(),e),Ys.create()):0!=(8388608&n)?_o(i)&&Zs.isTypedDictClass(i)?Zs.cloneForUnpacked(i):(_e(r.diagnosticRuleSet.reportGeneralTypeIssues,$o.reportGeneralTypeIssues,ml.Diagnostic.unpackExpectedTypedDict(),e),Ys.create()):(_e(r.diagnosticRuleSet.reportGeneralTypeIssues,$o.reportGeneralTypeIssues,ml.Diagnostic.unpackNotAllowed(),e),Ys.create())}(i,t,n);case"Required":case"NotRequired":return function(e,t,n,i,r){var s;if(!i&&0==(1024&r))return e;if(!i||1!==i.length)return fe(n?ml.Diagnostic.requiredArgCount():ml.Diagnostic.notRequiredArgCount(),t),e;const o=i[0].type,a=Er(t,!0),l=a?$t(a):void 0;let c=!1;return l&&_o(l.classType)&&Zs.isTypedDictClass(l.classType)&&54===(null===(s=t.parent)||void 0===s?void 0:s.nodeType)&&t.parent.typeAnnotation===t&&(c=!0),0!=(1048576&r)&&(c=!0),c?o:(fe(n?ml.Diagnostic.requiredNotInTypedDict():ml.Diagnostic.notRequiredNotInTypedDict(),t),Zs.cloneForSpecialization(e,[Fa(o)],!!i))}(e,i,"Required"===r,t,n);case"Self":return function(e,t,n){var i;const r=Vt(t);n&&_e(r.diagnosticRuleSet.reportGeneralTypeIssues,$o.reportGeneralTypeIssues,ml.Diagnostic.typeArgsExpectingNone().format({name:e.details.name}),null!==(i=n[0].node)&&void 0!==i?i:t);const s=Er(t),o=s?$t(s):void 0;if(!o)return _e(r.diagnosticRuleSet.reportGeneralTypeIssues,$o.reportGeneralTypeIssues,ml.Diagnostic.selfTypeContext(),t),Ys.create();const a=kr(t);if(a){if(4&en(a,!0))return _e(r.diagnosticRuleSet.reportGeneralTypeIssues,$o.reportGeneralTypeIssues,ml.Diagnostic.selfTypeContext(),t),Ys.create();if(a.parameters.length>0){const e=ie(a,0);if(e&&!Mr(t,e)){const n=K(e,{associateTypeVarsWithScope:!0,disallowRecursiveTypeAlias:!0});bo(n)&&n.details.isSynthesizedSelf||_e(r.diagnosticRuleSet.reportGeneralTypeIssues,$o.reportGeneralTypeIssues,ml.Diagnostic.selfTypeWithTypedSelfOrCls(),t)}}}return Aa(o.classType,!0)}(e,i,t);case"LiteralString":return Ot(e,t,0)}}const r=Vt(i);if(r.isStubFile||r.executionEnvironment.pythonVersion>=De.V3_9||H(Vt(i))||0!=(4&n)){if(Zs.isBuiltIn(e,"type")&&t){if(1===t.length&&ho(t[0].type))return e;const n=ce(i,"Type");if(n&&_o(n)){let e=Ot(n,t,1,void 0,!0);return _o(e)&&(e=Ua(e)),e}}if(pa(e))return Ot(e,t,void 0,void 0,!0)}let s=t?t.length:0;const o=Zs.isPseudoGenericClass(e)?[]:Zs.getTypeParameters(e);if(0===o.length&&0===s)return e;const a=o.findIndex((e=>Io(e)));if(t){if(s>o.length){if(!Zs.isPartiallyConstructed(e)&&!Zs.isTupleClass(e)){const n=Vt(i);0===o.length?_e(n.diagnosticRuleSet.reportGeneralTypeIssues,$o.reportGeneralTypeIssues,ml.Diagnostic.typeArgsExpectingNone().format({name:e.aliasName||e.details.name}),t[o.length].node):1===o.length&&wo(o[0])||_e(n.diagnosticRuleSet.reportGeneralTypeIssues,$o.reportGeneralTypeIssues,ml.Diagnostic.typeArgsTooMany().format({name:e.aliasName||e.details.name,expected:o.length,received:s}),t[o.length].node)}s=o.length}else s0?t[0].node.parent:i);t.forEach(((e,t)=>{if(t===a){if(vo(e.type)&&pa(e.type))return;if(Io(e.type))return void Oe(e.type,e.node)}const n=t!ca(e.type)&&!e.typeList&&!wo(e.type))))1===t.length&&_o(t[0].type)&&Zs.isBuiltIn(t[0].type,"Concatenate")||(t=[{type:Ys.create(),node:t[0].node,typeList:t}]);else if(t.length>1){const e=t.find((e=>wo(e.type)));e&&fe(ml.Diagnostic.paramSpecContext(),e.node);const n=t.find((e=>!!e.typeList));n&&fe(ml.Diagnostic.typeArgListNotAllowed(),n.node)}return c.forEach(((e,n)=>{if(t&&n{Xs.addParameter(i,{category:0,name:`__p${t}`,isNameSynthesized:!0,type:Fa(e.type),hasDeclaredType:!0})})),void l.push(i);if(_o(e.type)&&Zs.isBuiltIn(e.type,"Concatenate")){const t=e.type.typeArguments;return t&&t.length>0&&t.forEach(((e,n)=>{n===t.length-1?wo(e)&&(i.details.paramSpec=e):Xs.addParameter(i,{category:0,name:`__p${n}`,isNameSynthesized:!0,hasDeclaredType:!0,type:e})})),void l.push(i)}}l.push(Fa(t[n].type))}else l.push(Ys.create())})),l=l.map(((e,n)=>{if(nGs)return t;if(r++,ho(t))return t;let s=t;if(bo(t)){if(Ao(t,e,void 0,void 0,r))return t;s=Ie(t)}if(e.details.boundType&&!Jn(e.details.boundType,s,n.createAddendum(),void 0,i,r))return void(e.details.isSynthesized||n.addMessage(ml.DiagnosticAddendum.typeBound().format({sourceType:ai(s),destType:ai(e.details.boundType),name:oo.getReadableName(e)})));if(e.details.isParamSpec)return wo(t)||Eo(t)&&Xs.isParamSpecValue(t)||vo(t)&&Zs.isBuiltIn(t,"Concatenate")?t:void n.addMessage(ml.DiagnosticAddendum.typeParamSpec().format({type:ai(t),name:oo.getReadableName(e)}));if(bo(t)&&t.details.isParamSpec)return void n.addMessage(ml.Diagnostic.paramSpecContext());const o=e.details.constraints;if(0===o.length)return t;if(bo(t)&&t.details.constraints.length>0){if(t.details.constraints.every((e=>o.some((t=>Jn(t,e,void 0,void 0,void 0,r))))))return t}else{let e;for(const t of o)Jn(t,s,void 0,void 0,void 0,r)&&(e&&!Jn(e,t,void 0,void 0,void 0,r)||(e=t));if(e)return e}n.addMessage(ml.DiagnosticAddendum.typeConstrainedTypeVar().format({type:ai(t),name:oo.getReadableName(e)}))}(o[n],e,i);r?e=r:vo(e)&&Zs.isPartiallyConstructed(e)||_e(Vt(t[n].node).diagnosticRuleSet.reportGeneralTypeIssues,$o.reportGeneralTypeIssues,ml.Diagnostic.typeVarAssignmentMismatch().format({type:ai(e),name:oo.getReadableName(o[n])})+i.getString(),t[n].node)}return e})),Zs.cloneForSpecialization(e,l,void 0!==t)}function bn(e){return e.type?{type:e.type}:e.valueExpression?$(e.valueExpression):{type:Ys.create()}}function In(e){return e.type?{type:e.type}:Sn(e.valueExpression)}function Sn(e,t=!1,n=!1,i=!1){let r=131304;return Vt(e).isStubFile?r|=4:r|=4194304,t||(r|=16),n&&(r|=1048576),$(e,void 0,r)}function xn(e,t){const n=zs(e);if(n){const e=function(e){let t=e;for(;4!==t.type;)t=t.parent;return t}(n).lookUpSymbol(t);if(e)return Nn(e)}return Ys.create()}function Cn(e,t,n){const i=xn(e,t);if(_o(i)){let e=i;return n&&(e=Zs.cloneForSpecialization(e,n,void 0!==n)),Zs.cloneAsInstance(e)}return i}function wn(e,t,n,i=!1){var r;const s=zs(e);let o=null==s?void 0:s.lookUpSymbolRecursive(t);const a=null!==(r=null==s?void 0:s.type)&&void 0!==r?r:3;if(o&&n&&1!==a&&0!==a&&0===o.symbol.getDeclarations().filter((t=>{if(6!==t.type&&0!==t.type){const n=Rr(e),i=4===t.type||3===t.type?t.node.name:t.node;if(n===Rr(i)&&!he(i,e)){const t=Lt(e);return!(t&&ci.isFlowNodeReachable(t))}}return!0})).length&&(o=1!==o.scope.type&&o.scope.parent?o.scope.parent.lookUpSymbolRecursive(t,o.isOutsideCallerModule||3===o.scope.type,o.isBeyondExecutionScope||o.scope.isIndependentlyExecutable()):void 0),o&&i){let e=o;for(;3!==e.scope.type&&4!==e.scope.type&&e.scope.parent&&(e=e.scope.parent.lookUpSymbolRecursive(t,e.isOutsideCallerModule,e.isBeyondExecutionScope||e.scope.isIndependentlyExecutable()),e););3!==(null==e?void 0:e.scope.type)&&4!==(null==e?void 0:e.scope.type)||(o=e)}return o}function En(e,t){p.push(e);try{const e=t();return p.pop(),e}catch(e){throw p.pop(),e}}function kn(e,t,n=!0){c.enterSpeculativeContext(e,n);try{const e=t();return c.leaveSpeculativeContext(),e}catch(e){throw c.leaveSpeculativeContext(),e}}function Dn(e,t){if(Eo(e)&&e.details.declaration){const n=e.details.declaration;if(3===n.type){const e=Ft(n.node);if(e){const n=e.lookUpSymbol(t);if(n)return n.getDeclarations().find((e=>2===e.type))}}}}function An(e){var t,n;switch(e.type){case 0:{if("Any"===e.intrinsicType)return io.create();if("class"===e.intrinsicType){const t=$t(Er(e.node));return t?t.classType:void 0}const t=Cn(e.node,"str"),n=Cn(e.node,"int");if(vo(n)&&vo(t)){if("str"===e.intrinsicType)return t;if("str | None"===e.intrinsicType)return Oo([t,to.createInstance()]);if("int"===e.intrinsicType)return n;if("Iterable[str]"===e.intrinsicType){const n=xn(e.node,"Iterable");if(_o(n))return Zs.cloneAsInstance(Zs.cloneForSpecialization(n,[t],!0))}if("Dict[str, Any]"===e.intrinsicType){const n=xn(e.node,"dict");if(_o(n))return Zs.cloneAsInstance(Zs.cloneForSpecialization(n,[t,io.create()],!0))}}return Ys.create()}case 4:{const t=$t(e.node);return t?t.decoratedType:void 0}case 5:return K(e.node.typeAnnotation);case 3:{const t=Gt(e.node);return t?t.decoratedType:void 0}case 2:{let n=e.node.typeAnnotation||e.node.typeAnnotationComment;if(!n&&28===(null===(t=e.node.parent)||void 0===t?void 0:t.nodeType)){const t=e.node.parent;if(t.functionAnnotationComment&&!t.functionAnnotationComment.isParamListEllipsis){const i=t.parameters.findIndex((t=>t===e.node));n=ie(t,i)}}if(n){const t=G(n,e.node.category);return Xt(e.node,e.node.category,Jt(e.node,t))}return}case 1:{const t=e.typeAnnotationNode;if(t){const i=re(t)?function(e){let t=e,n=e.parent;for(;n;){if(54===n.nodeType){if(n.typeAnnotation===t)return n;break}t=n,n=n.parent}}(t):void 0;let r;if(e.isRuntimeTypeExpression)r=Fa(Sn(t,!0,!0).type);else{const i=e.isDefinedByMemberAccess&&35===(null===(n=e.node.parent)||void 0===n?void 0:n.nodeType)?e.node.parent:e.node;r=K(t,{isVariableAnnotation:!0,allowClassVar:Nr(i),allowFinal:Fr(i)})}if(r)return 38===e.node.nodeType&&(r=Ut(e.node,(()=>r))||r),i&&38===i.valueExpression.nodeType&&(r=qt(r,i.valueExpression,e.node)),r}return}case 6:return}}function Pn(n,i){var r,s;const o=Rn(i,!0,Vt(i.node).isStubFile);if(!o)return t.evaluateUnknownImportsAsAny?io.create():Ys.create();function a(e,n,i){if(n.path&&n.loadSymbolsFromPath){const r=i(n.path);if(!r)return t.evaluateUnknownImportsAsAny?io.create():Ys.create();e.fields=r.symbolTable,e.docString=r.docString}return n.implicitImports&&n.implicitImports.forEach(((t,n)=>{const r=e.moduleName?e.moduleName+"."+n:"",s=a(Qs.create(r,t.path),t,i),o=qo.createWithType(0,s);e.loaderFields.set(n,o)})),e}if(6===o.type){let t=o.moduleName;if(6===i.type&&(i.symbolName&&(t+="."+i.symbolName),t.startsWith("."))){const e=Vt(i.node).moduleName.split(".");for(t=t.substr(1);t.startsWith(".")&&e.length>0;)t=t.substr(1),e.pop();t=e.join(".")+"."+t}const n=Qs.create(t,o.path);return o.symbolName&&o.submoduleFallback?a(n,o.submoduleFallback,e):a(n,o,e)}const l=An(o);if(l)return l;const c=Vt(o.node);let u=!c.isInPyTypedPackage||c.isStubFile;if(!u&&1===o.type){const e=Er(o.node,!0);if(e){const t=$t(e);t&&Zs.isEnumClass(t.classType)&&(u=!0)}(o.isFinal||o.isConstant)&&(u=!0)}if(2===o.type)return null===(r=gn(o.node.name,(()=>{mn(o.node)})))||void 0===r?void 0:r.type;if(1===o.type&&o.inferredTypeSource){const e=o.typeAliasName&&o.inferredTypeSource.parent?o.inferredTypeSource.parent:o.inferredTypeSource;let t=null===(s=gn(o.node,(()=>{fn(e)})))||void 0===s?void 0:s.type;if(t&&38===o.node.nodeType){const e=Ut(o.node,(()=>{var e;return(null===(e=gn(o.inferredTypeSource,(()=>{fn(o.inferredTypeSource)})))||void 0===e?void 0:e.type)||Ys.create()}));e&&(t=e)}return t&&o.typeAliasName&&(!Ks.isInstantiable(t)||po(t)||ca(t)||(t=qt(t,o.typeAliasName,o.node),u=!0)),t&&c.isInPyTypedPackage&&!c.isStubFile&&(u||function(e,t,n){var i;const r=e.getDeclarations().filter((e=>1!==e.type||!e.isInferenceAllowedInPyTyped));if(r.length>1)return!1;if(1!==t.type)return!1;if(0===r.length)return!0;if(bo(n))return!0;let s;const o=t.node.parent;if(o&&(3===o.nodeType?s=o:35===o.nodeType&&3===(null===(i=o.parent)||void 0===i?void 0:i.nodeType)&&(s=o.parent)),!s)return!1;const a=$(s.rightExpression).type;return!(!vo(a)||!ra(a))||38===s.rightExpression.nodeType&&!Ks.isAmbiguous(a)}(n,i,t)&&(u=!0),u||(t=Ks.cloneForAmbiguousType(t))),t}}function Rn(t,n,i=!1){var r;return null===(r=Rc(e,t,n,i))||void 0===r?void 0:r.declaration}function Fn(t,n,i=!1){return Rc(e,t,n,i)}function Nn(e){return Mn(e).type}function Mn(e,t,n=!1){if(e.hasTypedDeclarations()){const n=On(e,t);return{type:n||Ys.create(),isIncomplete:!1,includesVariableDecl:e.getTypedDeclarations().some((e=>1===e.type)),isRecursiveDefinition:!n}}let i=u.get(e.id);const r=t?t.id:void 0;if(i)for(const e of i)if(e.usageNodeId===r&&e.useLastDecl===n)return e.result;const s=[],o=e.getDeclarations(),a=Wo(e);let l,p=!1,d=!1,h=!1;if(n&&o.forEach(((e,t)=>{e.isInExceptSuite||(l=t)})),o.forEach(((n,i)=>{var r,o;let u=void 0===l||i===l;if(void 0!==t&&6!==n.type&&Rr(t)===Rr(n.node)&&(he(n.node,t)||(u=!1)),u){const t=ss(n);if((t||os(n))&&1===n.type&&3===(null===(o=null===(r=n.inferredTypeSource)||void 0===r?void 0:r.parent)||void 0===o?void 0:o.nodeType)&&(Wt(n.inferredTypeSource.parent),n.typeAliasAnnotation&&K(n.typeAliasAnnotation,{isVariableAnnotation:!0,allowFinal:Fr(n.node),allowClassVar:Nr(n.node)})),q(e,n))try{let i=Pn(e,n);if(V(e)||(p=!0),i){if(1===n.type){d=!0;let e=1===n.type&&!!n.isConstant;vo(i)&&Zs.isEnumClass(i)&&function(e){const t=Er(e.node,!0);if(!t)return!1;const n=$t(t);return!!n&&Zs.isEnumClass(n.classType)}(n)&&(e=!0),!Ks.isInstance(i)||t||e||a||(i=Qo(i))}s.push(i),c.isSpeculative(n.node)&&(h=!0)}else p=!0}catch(t){throw V(e),t}else p=!0}})),s.length>0){const t={type:Oo(s),isIncomplete:!1,includesVariableDecl:d,isRecursiveDefinition:!1};return h||(i||(i=[],u.set(e.id,i)),i.push({usageNodeId:r,useLastDecl:n,result:t})),t}return{type:Js.create(),isIncomplete:p,includesVariableDecl:d,isRecursiveDefinition:!1}}function On(e,t){const n=e.getSynthesizedType();if(n)return n;let i=e.getTypedDeclarations();if(0===i.length)return;if(i.length>1&&t){const e=i.filter((e=>!(6!==e.type&&Rr(t)===Rr(e.node)&&!he(e.node,t,!1))));e.length>0&&(i=e)}let r=i.length-1;for(;r>=0;){const t=i[r],n=W(e,t);if(n)return n;if(U(e,t)<0&&q(e,t))try{const n=An(t);if(V(e)||4===t.type)return n}catch(t){throw V(e),t}r--}}function Ln(e){Eo(e)?Un(e):ko(e)&&e.overloads.forEach((e=>{Un(e)}))}function Un(e,t,n=!0){return Xs.getSpecializedReturnType(e)||(n?qn(e,t):Ys.create())}function qn(e,n){var i;let r;if(Xs.isStubDefinition(e))return Ys.create();if(e.inferredReturnType)r=e.inferredReturnType;else{if(Xs.isInstanceMethod(e)&&"__init__"===e.details.name)r=to.createInstance();else if(e.details.declaration){const n=e.details.declaration.node;if(t.analyzeUnannotatedFunctions){const t=function(e){var t;return null!==(t=e.codeFlowComplexity)&&void 0!==t?t:0}(n);(e.details.parameters.length<=1||e.details.parameters.some((e=>e.hasDeclaredType))||t<15)&&(function(t){const i=c.disableSpeculativeMode();try{r=rn(n,Xs.isAbstractMethod(e)),c.enableSpeculativeMode(i)}catch(e){throw c.enableSpeculativeMode(i),e}}(),r&&Xs.isWrapReturnTypeInAwait(e)&&(r=nn(n,r,!!(null===(i=e.details.declaration)||void 0===i?void 0:i.isGenerator))))}}r||(r=Ys.create()),e.inferredReturnType=r}if(t.analyzeUnannotatedFunctions&&La(r)&&Xs.hasUnannotatedParams(e)&&!Xs.isStubDefinition(e)&&!Xs.isPyTypedDefinition(e)&&n){const t=function(e,t){var n;let i;if(!e.details.declaration)return;const r=e.details.declaration.node;if(t.some((e=>!e.paramName)))return;if(D.some((e=>e.functionNode===r)))return;const s=Gt(r);return s&&!(t.length>6||D.length>=2)?(En(r,(()=>{const n=A;D.push({functionNode:r,codeFlowAnalyzer:ci.createCodeFlowAnalyzer()});try{A=new Map;let o=!0;r.parameters.forEach(((e,n)=>{if(e.name){let i;const a=t.find((t=>e.name.value===t.paramName));a&&a.argument.valueExpression?(i=$(a.argument.valueExpression).type,po(i)||(o=!1)):e.defaultValue?(i=$(e.defaultValue).type,po(i)||(o=!1)):0===n&&(Xs.isInstanceMethod(s.functionType)||Xs.isClassMethod(s.functionType))&&s.functionType.details.parameters.length>0&&r.parameters[0].name&&(i=s.functionType.details.parameters[0].type),i||(i=Ys.create()),N(e.name,i,0,!1)}})),o||(i=rn(r,Xs.isAbstractMethod(e)))}finally{D.pop(),A=n}})),i?(i=Ro(i),Xs.isWrapReturnTypeInAwait(e)&&!ao(i)&&(i=nn(r,i,!!(null===(n=e.details.declaration)||void 0===n?void 0:n.isGenerator))),i):void 0):void 0}(e,n);t&&(r=t)}return r}function Vn(e){const t=Gt(e);return t?Xs.isAbstractMethod(t.functionType)?io.create():Xs.isGenerator(t.functionType)?Pa(t.functionType):t.functionType.details.declaredReturnType:io.create()}function Bn(e){return _o(e.classType)?ha(Nn(e.symbol),e.classType):Ys.create()}function Wn(e,t,n,i,r,s,o){if(o>Gs)return!0;if(o++,h.some((n=>Ao(n.srcType,t)&&Ao(n.destType,e))))return!0;h.push({srcType:t,destType:e});let a=!0;try{a=function(e,t,n,i,r,s,o){const a=e.details.fields,l=Zs.cloneForSpecialization(e,void 0,!1),c=new jo(na(e)),u=new jo(na(e));ma(u,e,t),Zs.isTypedDictClass(t)&&x&&_o(x)&&(t=x);let p=!0;const d=wa(t),h=oa(t,!0)?128:0;if(a.forEach(((e,i)=>{if(e.isClassMember()&&!e.isIgnoredForProtocolMatch()){let r,a=!1;if(!s&&"__class_getitem__"===i)return;if("__slots__"===i)return;if(s&&t.details.effectiveMetaclass&&_o(t.details.effectiveMetaclass)&&(r=va(t.details.effectiveMetaclass,i),r&&(d.addSolveForScope(na(t.details.effectiveMetaclass)),a=!0)),r||(r=va(t,i)),r){let l=On(e);if(l){let d=_o(r.classType)?ha(Nn(r.symbol),r.classType,t):Ys.create();if(Eo(d)||ko(d)){if(a){const e=ri(t,d,void 0,void 0,o,!1,t);if(e&&(d=Ba(e)),Eo(l)||ko(l)){const e=ri(t,l,void 0,void 0,o,!1,t);e&&(l=Ba(e))}}else if(_o(r.classType)){l=fa(l,u);const e=ri(s?t:Zs.cloneAsInstance(t),d,r.classType,void 0,o);if(e&&(d=Ba(e)),Eo(l)||ko(l)){const e=ri(Zs.cloneAsInstance(t),l,r.classType,void 0,o);e&&(l=Ba(e))}}}else l=fa(l,u);const m=null==n?void 0:n.createAddendum();if(vo(l)&&Zs.isPropertyClass(l))if(vo(d)&&Zs.isPropertyClass(d)&&!s)Gu(li,Zs.cloneAsInstantiable(l),Zs.cloneAsInstantiable(d),t,null==m?void 0:m.createAddendum(),c,o)||(m&&m.addMessage(ml.DiagnosticAddendum.memberTypeMismatch().format({name:i})),p=!1);else{const e=Hn(l,!0);e&&Jn(e,d,null==m?void 0:m.createAddendum(),c,h,o)||(m&&m.addMessage(ml.DiagnosticAddendum.memberTypeMismatch().format({name:i})),p=!1)}else Jn(l,d,null==m?void 0:m.createAddendum(),c,h,o)||(m&&m.addMessage(ml.DiagnosticAddendum.memberTypeMismatch().format({name:i})),p=!1);const f=e.getTypedDeclarations().some((e=>1===e.type&&!!e.isFinal));f!==r.symbol.getTypedDeclarations().some((e=>1===e.type&&!!e.isFinal))&&(f?m&&m.addMessage(ml.DiagnosticAddendum.memberIsFinalInProtocol().format({name:i})):m&&m.addMessage(ml.DiagnosticAddendum.memberIsNotFinalInProtocol().format({name:i})),p=!1)}e.isClassVar()&&!r.symbol.isClassMember()&&(n&&n.addMessage(ml.DiagnosticAddendum.protocolMemberClassVar().format({name:i})),p=!1)}else n&&n.addMessage(ml.DiagnosticAddendum.protocolMemberMissing().format({name:i})),p=!1}})),e.details.baseClasses.forEach((a=>{!_o(a)||Zs.isBuiltIn(a,"object")||Zs.isBuiltIn(a,"Protocol")||Wn(ka(e,a),t,null==n?void 0:n.createAddendum(),i,r,s,o)||(p=!1)})),p&&e.details.typeParameters.length>0&&e.typeArguments){const t=fa(l,c);Gn(e,t,n,i,r,o)||(p=!1)}return p}(e,t,n,i,r,s,o)}catch(e){throw h.pop(),e}return h.pop(),a}function jn(e,t,n,i,r,s){if(s>Gs)return!0;s++;let o=!0;const a=e.details.fields,l=Zs.cloneForSpecialization(e,void 0,!1),c=new jo(na(e));if(a.forEach(((i,r)=>{if(i.isClassMember()&&!i.isIgnoredForProtocolMatch()){const a=t.fields.get(r);if(a){let t=On(i);if(t){const i=Nn(a);if((Eo(i)||ko(i))&&(Eo(t)||ko(t))){const n=ri(Zs.cloneAsInstance(e),t,e,void 0,s);n&&(t=n)}const l=null==n?void 0:n.createAddendum();Jn(t,i,null==l?void 0:l.createAddendum(),c,0,s)||(l&&l.addMessage(ml.DiagnosticAddendum.memberTypeMismatch().format({name:r})),o=!1)}}else n&&n.addMessage(ml.DiagnosticAddendum.protocolMemberMissing().format({name:r})),o=!1}})),e.details.baseClasses.forEach((a=>{!_o(a)||Zs.isBuiltIn(a,"object")||Zs.isBuiltIn(a,"Protocol")||jn(ka(e,a),t,null==n?void 0:n.createAddendum(),i,r,s)||(o=!1)})),o&&e.details.typeParameters.length>0&&e.typeArguments){const t=fa(l,c);Gn(e,t,n,i,r,s)||(o=!1)}return o}function zn(e,t,n,i,r,s,o){if(Zs.isTypedDictClass(e)&&Zs.isTypedDictClass(t))return!!_l(li,e,t,n,s)&&(Zs.isFinal(e)!==Zs.isFinal(t)?(n&&n.addMessage(ml.DiagnosticAddendum.typedDictFinalMismatch().format({sourceType:ai(Fa(t)),destType:ai(Fa(e))})),!1):!(0!=(1&r)&&!Zs.isSameGenericClass(e,t))||_l(li,t,e,void 0,s));const a=Qu.get(e.details.fullName);if(a&&a.some((e=>t.details.mro.some((t=>yo(t)&&e===t.details.fullName))))&&0==(1&r))return!0;const l=[],c=Zs.isDerivedFrom(t,e,l);if(Zs.isProtocolClass(e)&&!c)return!!Wn(e,t,null==n?void 0:n.createAddendum(),i,r,!1,s)||(n&&n.addMessage(ml.DiagnosticAddendum.protocolIncompatible().format({sourceType:ai(Fa(t)),destType:ai(Fa(e))})),!1);if((0==(1&r)||Zs.isSameGenericClass(t,e))&&c)return w(l.length>0),function(e,t,n,i,r,s,o){let a=t,l=r||new jo(na(e)),c=s;r||(c&=-9);for(let t=n.length-1;t>=0;t--){const r=n[t];if(po(r))return!0;if(Zs.isBuiltIn(r,"object"))return!0;if(t0&&a.typeArguments&&!r.isLocked()){const t=a.typeArguments;for(let n=0;nIo(e.type))),p=l.findIndex((e=>e.isUnbounded)),d=c.findIndex((e=>e.isUnbounded));if(d>=0){const e=u>=0||p>=0?l.length-1:l.length,t=c.length>0?c[d].type:io.create();for(;c.length=0&&d>=0)return n&&n.addMessage(ml.DiagnosticAddendum.typeVarTupleRequiresKnownLength()),!1;if(p>=0||u>=0){const e=c.length-l.length+1;if(e>=0)if(u>=0){if(T&&_o(T)){const t=c.splice(u,e),n=Fa(Va(T,t.map((e=>({type:Qo(e.type),isUnbounded:!1}))),!0,!0,!0));c.splice(u,0,{type:n,isUnbounded:!1})}}else{const t=c.splice(p,e);c.splice(p,0,{type:t.length>0?Oo(t.map((e=>e.type))):io.create(),isUnbounded:!1})}}if(c.length===l.length)for(let e=0;e