+
    –°³j{ ã                  óˆ‰  a € 0 t $ ^ RIHt ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	t	^ RI
t
^ RIt^ RIt^ RIHt ^ RIHtHtHtHt ^ RIHtHtHtHtHtHt ^ RIHt ^ RIHt ^ RIt^ RI t ^ RI!t ^ RI"t ^ RI#H$u H%t& ^ RI'H(t( ^ R	I)H*t*H+t+ ^ R
I,H-t- ^ RI.H/t/ ^ RI0H1t1 ^ RI2H3t3 ^ RI4H5t5 ^ RI6H7t7H8t8H9t9H:t:H;t;H<t<H=t=H>t>H?t?H@t@HAtA ^ RIBHCtCHDtD ^ RIEHFtFHGtGHHtHHItI ^ RIJHKtK ^ RILHMtMHNtNHOtOHPtPHQtQHRtRHStS ^ RITHUtU ^RIVHWtW ^RIXHYtYHZtZH[t[H\t\ ^RI]H^t^H_t_ ^RI[H`t`HataHbtbHctcHdtdHeteHftfHgtgHhthHitiHjtjHktkHltlHmtmHntnHoto ^RI$HptpHqtqHrtrHstsHtttHutuHvtvHwtwHxtxHytyHztzH{t{H|t|H}t}H~t~ ^RIH€t€H�t� ]'       d   ^RI[H‚t‚ ^RIƒH„t„ ]! R4      t…]! R4      t†]K! RR .4      t‡]EP                  ! ]‰4      tŠ/ t‹R!]ŒR"&   / t�R#]ŒR$&   / tŽR%]ŒR&&   ]K] EP                  EP                   ,          ! 4       t‘] EP                   EP$                  t’] EP                   EP&                  t“] EP                   EP(                  t”]K] EP                  EP                   ,          ! 4       t•]K] EP                  EP                   ,          ! ] EP,                  EP.                  .4      t˜]K] EP                  EP                   ,          ! 4       t™/ tšR']ŒR(&   ] EP                   EP6                  t›]*]+3tœR) R* lt�R+ R, ltžR- R. ltŸR/ R0 lt R1 R2 lt¡R3 t¢R4 R5 lt£]¢! ]’EPH                  ]’EPJ                  ]’EPL                  ]’EPN                  ]’EPP                  ]’EPR                  ]’EPT                  ]’EPV                  ]’EPX                  ]’EPZ                  ]’EP\                  ]’EP^                  ]’EP`                  ]’EPb                  .4       ^ ] EPd                  ^] EPf                  ^] EPh                  ^] EPj                  ^] EPl                  ^] EPn                  ^] EPp                  ^] EPr                  ^] EPt                  ^	] EPv                  ^
] EPt                  ^] EPx                  ^] EPz                  /t¾R6 R7 lt¿R8 R9 ltÀR: R; ltÁR<R=/R> R? lltÂR@ tÃRA RB ltÄRC RD ltÅRE RF ltÆRG RH ltÇRI RJ ltÈR=]<EP’                  R=]‹3RK RL lltÊRM tËERRN RO lltÌRP tÍRQ RR ltÎERRS RT lltÏ]! RU]dRV7      tÐER	RW RX lltÑRY RZ ltÒER
R\ R] lltÓ] EPp                  ] EPr                  ] EPn                  ] EPz                  3tÔR^ R_ ltÕ]Ê! ] EP,                  EP.                  RR`7      Ra 4       t—]Ê! ]”EP¬                  RR`7      Rb Rc l4       t×RdR=/Re Rf lltØ]Ê! ]’EP²                  EP´                  RR`7      Rg Rh l4       tÛRdR=RiR=/Rj Rk lltÜ]Ê! ]”EPº                  RR`7      ERRl Rm ll4       tÞRR[]<EP’                  R=RRR=R=RR=3
Rn ltß]{! Ro]<EPÀ                  RRp7       ]Ê! ]’EPÂ                  R[RRq7      Rr Rs l4       tâRt tã]ã! 4        ER	Ru ltä]Ê! ]’EPÊ                  R=RRq7      Rv 4       tå]Ê! ]’EPÌ                  R=RRq7      Rw 4       tæ]Ê! ]’EPÎ                  ]’EPÐ                  ]’EPÒ                  ]’EPÔ                  ]”EPÖ                  .4      Rx 4       tì]í! ]’Ry4      '       d   ]Ê! ]’EPÜ                  4      ! ]ì4       ]Ê! ]’EPÞ                  RR`7      ERRz l4       tï]Ê! ]’EPà                  RR`7      ERR{ l4       tð]Ê! ]’EPâ                  .4      ERR| l4       tñ]Ê! ]’EPä                  4      R} 4       tò]Ê! ]’EPæ                  4      R~ 4       tó]Ê! ]’EPè                  4      R 4       tô]Ê! ]’EPê                  4      R€ 4       tõ]Ê! ]’EPì                  EPî                  4      R� 4       tö]Ê! ]’EPð                  4      R‚ 4       tø]Ê! ]’EPò                  RR`7      RƒR=/R„ l4       tù]Ê! ]”EPô                  RR`7      R… 4       tú]Ê! ]’EPö                  RR`7      R† 4       tû]Ê! ]’EPø                  4      R‡ 4       tü]Ê! ]’EPú                  RR`7      ]Ê! ]’EP²                  RR`7      ]Ê! ]’EPü                  RR`7      Rˆ R‰ l4       4       4       tÙ]Ê! ]’EPþ                  RR`7      RŠ 4       tÿR‹ Et ERRŒ lEtR� Et]Ê! ]’EP                  RR`7      ^ ^ ]EP                  ^R[3RŽ l4       Et]Ê! ]’EPH                  RR`7      ERR�R[/R� ll4       t¤]Ê! ]’EP                  RR`7      ERR‘ l4       Et]Ê! ]’EPJ                  RR`7      ERR’ l4       t¥ERR“ lEt]Ê! ]›EP                  RR`7      R” R• l4       Et	R– Et
]Ê! ]’EP                  EP                  4      R— 4       Et]Ê! ]’EP                  EP                  4      R˜ 4       Et]Ê! ]›EP                  RR`7      R™R/Rš R› ll4       Et]Ê! ]›EP"                  EPî                  RR`7      Rœ R� l4       Et]Ê! ]›EP&                  EPî                  RR`7      R™R/Rž RŸ ll4       Et]Ê! ]›EP"                  EP*                  RR`7      R  R¡ l4       Et]Ê! ]›EP&                  EP*                  RR`7      R™R/R¢ R£ ll4       EtR¤ R¥ lEt]Ê! ]’EP2                  4      ERR¦ l4       Et]Ê! ]’EP4                  RR`7      ERR§ R¨ ll4       Et]Ê! ]’EP6                  RR`7      ERR© Rª ll4       Et]Ê! ]’EP8                  RR`7      ERR« R¬ ll4       Et]Ê! ]’EP:                  RR`7      R­ 4       Et]Ê! ]’EP<                  RR`7      ERR® l4       Et]Ê! ]’EP>                  RR`7      ERR¯ l4       Et]Ê! ]’EP@                  RR`7      ERR° l4       Et ]Ê! ]’EPB                  RR`7      R± 4       Et!]Ê! ]’EPD                  RR`7      R² 4       Et"]Ê! ]’EPF                  RR`7      R³ 4       Et#ERR´ lEt$]Ê! ]’EPJ                  4      ERRµ l4       Et%ERR¶ lEt&]EPN                  R· 4       Et(ERR¸ R¹ llEt)ERRº R» llEt*ERR¼ R½ llEt+ERR¾ lEt,R¿ Et-]Ê! ] EP                   EP\                  EP^                  RR`7      RÀ 4       Et/]Ê! ]’EP`                  RR`7      RÁ 4       Et0]Ê! ]’EPb                  RR`7      RÂ 4       Et1]Ê! ]’EPd                  EPf                  RR`7      RÃ 4       Et4]Ê! ]’EPj                  4      RÄ 4       Et5]EPl                  ! ^4      RÅ 4       Et7RÆ Et8E]&! ]’EPr                  EPî                  4      Et:E]&! ]’EPr                  EPv                  4      Et<E]&! ]’EPz                  EPî                  4      Et>E]&! ]’EPz                  EPv                  4      Et?E],! ]’EP€                  4       E],! ]’EP‚                  R[RÇ7       E],! ]’EP„                  R[RÇ7       E],! ]’EP†                  R[RÇ7       E],! ]’EPˆ                  R[RÇ7       E],! ]’EPŠ                  4       E],! ] EP                   EPŒ                  EPŽ                  EPî                  4       E],! ] EP                   EPŒ                  EP�                  EPî                  4       E],! ] EP                   EPŒ                  EP’                  EPî                  4       E],! ] EP                   EPŒ                  EP”                  EPî                  4       E],! ] EP                   EPŒ                  EP–                  EPî                  4       E],! ] EP                   EPŒ                  EP˜                  EPî                  4       ]Ê! ]’EPr                  4      RÈ 4       Et9]Ê! ]’EPz                  4      RÉ 4       Et=]Ê! ]ZEPš                  RR`7      RÊ 4       EtN]Ê! ]ZEPž                  RR`7      RË RÌ l4       EtP]Ê! ]ZEP¢                  RR`7      RÍ 4       EtR]Ê! ]ZEP¦                  RR`7      RÎ 4       EtTRÏ RÐ lEtU]Ê! ]ZEP¬                  RR`7      RÑ^ RÒ] EPp                  /RÓ RÔ ll4       EtWE],! ]ZEP°                  4       E],! ]ZEP²                  4       ]Ê! ]ZEP€                  RR`7      RÑ^ /RÕ RÖ ll4       EtZR× RØ lEt[RÙ RÚ lEt\RÛ RÜ lEt]RÝ RÞ lEt^]Ê! ]’EP¾                  EPÀ                  RR`7      RßR=RàR=RáRRâR/Rã Rä ll4       Et_]Ê! ]’EPÂ                  EPÀ                  ]<EPÄ                  R`7      RßR=RàR=/Rå Ræ ll4       EtaRç EtcRè EtdRé EteRê EtfRë EtgRì EthRí EtiRî EtjRï Etk]£! ]’EP`                  EPî                  E]k4       Rð EtlE],! ]’EPÚ                  4       E],! ]’EPÜ                  R[RÇ7       E],! ]’EPÞ                  4       E],! ]’EPà                  R[RÇ7       E],! ]’EPâ                  EPî                  R=Rñ7       E],! ]’EPä                  E]e4       E],! ]’EPæ                  R=Rñ7       E],! ]’EPè                  R=Rñ7       ] EPê                  EPí                  4       '       d   E],! ]’EPî                  R=Rñ7       ] EPð                  EPí                  4       '       d   E],! ]’EPò                  R=Rñ7       E],! ]’EPô                  4       E],! ]’EPö                  4       E],! ]’EPø                  4       E],! ]’EPú                  EPî                  4       E],! ]’EPü                  EPî                  4       E],! ]’EPþ                  4       E],! ]’EP                   EP                  4       E],! ]’EP                  EPî                  4       E],! ]’EP                  EPî                  4       E],! ]’EP                  4       E],! ]’EP
                  R=Rñ7       E],! ]’EP                  E]d4       E],! ]’EP                  E]d4       E],! ]’EP                  E]e4       E],! ]’EP                  E]d4       E],! ]’EP                  E]e4       E],! ]’EP                  E]e4       E],! ]’EP                  E]e4       E],! ]’EP                  4       E],! ]’EP                  4       E],! ]’EP                  4       E],! ]’EP                  4       E],! ]’EP                   4       E],! ]’EP"                  4       E],! ]’EP$                  E]d4       E],! ]’EP&                  4       E],! ]’EP(                  4       E],! ]’EP*                  4       E],! ]’EP,                  4       E],! ]’EP.                  4       E],! ]’EP0                  4       E],! ]’EP2                  4       E],! ]’EP4                  4       E],! ]’EP6                  E]e4       E],! ]’EP8                  4       E],! ]’EP:                  4       E],! ]’EP<                  E]e4       E],! ]’EP>                  4       E],! ]’EP@                  EPî                  R=Rñ7       E],! ]’EPB                  4       E],! ]’EPD                  4       E],! ]’EPF                  4       E],! ]’EPH                  4       E],! ]’EPJ                  4       E],! ]’EPL                  4       E],! ]’EPN                  4       E],! ]’EPP                  4       E],! ]’EPR                  4       E],! ]’EPT                  4       E],! ]’EPV                  4       E],! ]’EPX                  4       E],! ]’EPZ                  4       E],! ]’EP\                  4       E],! ]’EP^                  4       E],! ]’EP`                  4       E],! ]’EPb                  4       E],! ]’EPd                  4       E],! ]’EPf                  4       E],! ]’EPh                  4       E],! ]’EPj                  4       E],! ]’EPl                  4       E],! ]’EPn                  EPp                  4       E],! ]’EPr                  4       E],! ]’EPt                  4       E],! ]’EPv                  4       E],! ]’EPx                  4       E],! ]’EPz                  4       E],! ]’EP|                  4       E],! ]’EP~                  4       E],! ]’EP€                  EPî                  4       E],! ]’EP‚                  EPî                  4       E],! ]’EP„                  EPî                  R=Rñ7       E],! ]’EP†                  EPî                  R=Rñ7       E],! ]’EPˆ                  EPî                  R=Rñ7       E],! ]’EPŠ                  EPî                  R=Rñ7       E],! ]’EPŒ                  EPî                  R=Rñ7       E],! ]’EPŽ                  EPî                  R=Rñ7       E],! ]’EP�                  E]d4       E],! ] EP’                  EP”                  EP–                  4       E],! ] EP’                  EP”                  EP˜                  4       E],! ] EP’                  EP”                  EPš                  4       E],! ] EP’                  EP”                  EPœ                  4       E],! ]’EPž                  EPî                  R=Rñ7       E],! ]’EP                   EPî                  R=Rñ7       E],! ]’EP¢                  4       E],! ]’EP¤                  4       E],! ]’EP¦                  E]e4       E],! ]’EP¨                  4       E],! ]’EPª                  4       E],! ]’EP¬                  4       E],! ]’EP®                  4       ]Ê! ]’EP°                  EPî                  RR`7      ERRò l4       EtØE],! ]’EP²                  EPî                  E]lR=Rñ7       E],! ]’EP´                  EPî                  E]lR=Rñ7       E],! ]’EP¶                  EPî                  E]lR=Rñ7       E],! ]’EP¶                  EP¸                  R=Rñ7       E],! ]’EPº                  EPî                  E]lR=Rñ7       E],! ]’EP¼                  EPî                  E]lR=Rñ7       E],! ]’EP¾                  EPî                  E]lR=Rñ7       E],! ]’EPÀ                  EPî                  E]lR=Rñ7       E],! ]’EPÂ                  EPî                  E]lR=Rñ7       E],! ]’EPÄ                  EPî                  E]lR=Rñ7       E],! ]’EPÆ                  EPî                  E]lR=Rñ7       E],! ]’EPÈ                  EPî                  E]l4       E],! ]’EPÈ                  EP¸                  4       E],! ]’EPÊ                  EPî                  E]l4       E],! ]’EPÌ                  EPî                  E]l4       E],! ]’EPÎ                  EPî                  E]l4       E],! ]’EPÐ                  4       E],! ]’EPÒ                  EPÀ                  R[RÇ7       E],! ]’EPÔ                  EPî                  E]e4       ]Ê! ]’EPÖ                  RR`7      ERRó l4       Etë]Ê! ]’EPØ                  4      RôR/Rõ l4       EtìRö EtíR÷ EtîRø Etï]í! ]’Rù4      '       d   ]Ê! ]’EPÞ                  4      ! E]ï4       ]Ê! ]”EPà                  4      Rú 4       Etð]Ê! ]’EPâ                  EPä                  RR`7      ERRûRRüRRýRRþRRÿR=/ER  ll4       Etó]Ê! ]’EPè                  RR`7      ER ER l4       Etô]Ê! ]’EPê                  RR`7      ERER l4       EtõER Etö]Ê! ] EP*                  ]’EPî                  ]”EPî                  .4      RûRRüRRýRRþR=/ER l4       Et]Ê! ] EPð                  4      ERER l4       Etø]Ê! ] EPò                  4      ER 4       Etú]Ê! ]’EPö                  4      ER 4       Etû]Ê! ]’EPø                  4      ER	 4       Etü]Ê! ]’EPú                  4      ERRüRRýR/ER
 ll4       EtýER EtþER EtÿER Et ]Ê! ] EP                  ]’EP                  .4      RûRRýRRüRRþRRôR/ER l4       EtER EtER Et]Ê! ]’EP                  4      ! E]! E]4      4      EtE]! E] ! ^4      4      EtE]! E] ! ^ 4      4      EtER Et]Ê! ]’EP                  4      RûRRýRRüRRþR/ER l4       Et]Ê! ]’EP                  4      RûRRýRRüRRþR/ER l4       Et	]Ê! ]’EP                  4      RûRRýRRüRRþR/ER l4       Et
]Ê! ]”EP                  EPî                  4      ER 4       Et]Ê! ] EP                  ]’EP                  .4      ER 4       Et]Ê! ]’EP                  RR`7      RûRRýRRüRRþR=/ER l4       Et]Ê! ]’EP                  RR`7      ERER l4       Et]Ê! ]’EP                  RR`7      ERER l4       EtER EtERER lEtER EtERER lEt]Ê! ]’EP(                  RR`7      ER 4       Et]Ê! ]’EP*                  RR`7      ER 4       Et]Ê! ]’EP,                  RR`7      ERER  l4       Et]Ê! ]’EP.                  4      ERER! l4       EtER" EtER# Et]Ê! ]’EP4                  RR`7      ERER$ l4       Et]Ê! ]ZEP6                  RR`7      ERER% l4       EtERER& lEtE]&! ]’EP:                  EPî                  R=ER'7      EtE]&! ]’EP>                  EPî                  R=ER'7      Et ]Ê! ]’EP:                  RR`7      ER( 4       Et]Ê! ]’EP>                  RR`7      ER) 4       Et]ÏER* 4       Et!]Ê! ]’EPD                  RR`7      ERER+ l4       Et"]Ê! ]’EPF                  RR`7      ER, ER- l4       Et#ER.RER/R[/ER0 ER1 llEt$]Ê! ]’EPJ                  RR`7      ER.R/ER2 ER3 ll4       Et%]Ê! ]’EPL                  RR`7      ER4 ER5 l4       Et&]Ê! ]’EPN                  RR`7      ER6 ER7 l4       Et']Ê! ]’EPP                  RR`7      ER8 ER9 l4       Et(]Ê! ]’EPR                  RR`7      ER/R[/ER: ER; ll4       Et)ERER< ER= llEt*]Ê! ]’EPV                  EPî                  4      ERER> ER? ll4       Et+]Ê! ]’EPX                  EPî                  4      ERER@ ERA ll4       Et,]Ê! ]’EP^                  EPî                  4      ERERB ERC ll4       t¯]Ê! ]’EP`                  EPî                  4      ERERD ERE ll4       t°]Ê! ]’EPZ                  EPî                  4      ERERF ERG ll4       Et-]Ê! ]’EP\                  EPî                  4      ERERH ERI ll4       Et.ERJ Et/]Ê! ]”EP`                  EPî                  4      ERK 4       Et0ERL ERM lEt1ERN ERO lEt2]Ê! ]’EPf                  RR`7      ERERP l4       Et3ERQ ERR lEt4ERS ERT lEt5ERU ERV lEt6ERERW lEt7ERXR/ERY lEt8ERZ Et9ER[R/ER\ lEt:ER] Et;]Ê! ]”EPx                  RR`7      ERER^ l4       Et<ER_ ER` lEt=]Ê! ]”EP|                  RR`7      ERa 4       Et>ERb Et?]Ê! ]’EPV                  RR`7      ERERc l4       t«]Ê! ]’EPX                  RR`7      ERERd l4       t¬E]&! ]’EPZ                  EPî                  R=ER'7      Et@]Ê! ]’EPZ                  RR`7      ERe 4       t­ERERf lEtAERg EtBERh EtCERi EtDE]&! ]’EPŠ                  EPî                  R=ER'7      EtF]Ê! ]’EPŠ                  4      ERj 4       EtEE]&! ]’EPŽ                  EPî                  R=ER'7      EtH]Ê! ]’EPŽ                  4      ERk 4       EtGERl EtI]Ê! ]’EP”                  4      ERm 4       EtJ]Ê! ]’EP–                  4      ERn 4       EtKERo EtL]Ê! ]’EPš                  EPî                  4      ERERp l4       EtM]Ê! ]’EPL                  RR`7      ERERq l4       t¦]Ê! ]’EPœ                  RR`7      ERERr l4       EtNE]&! ]’EPž                  EPî                  R=ER'7      E]&! ]’EPL                  EPî                  R=ER'7      E]&! ]’EPœ                  EPî                  R=ER'7      .EtPERs EtQE]&! ]’EPN                  EPî                  R=ER'7      EtR]Ê! ]’EPN                  RR`7      ERERt l4       t§E]&! ]’EP¦                  EPî                  R=ER'7      EtT]Ê! ]’EP¦                  RR`7      ERERu l4       EtSERv EtUERwR/ERx lEtVERERyR=/ERz ER{ lllEtWER| ER} lEtXER~ EtY]Ê! ]’EP´                  4      ERRûR/ER ll4       EtZER€ Et[ER� Et\ER‚ Et]ERƒ Et^]Ê! ]’EP¾                  ]”EP¾                  .4      ERER„RER…R=/ER† ll4       Et`]Ê! ]’EPÂ                  4      ERER„RER…R=/ER‡ ll4       EtaERˆ Etb]ÏER‰ 4       EtcE]&! ]’EPÈ                  EPÊ                  R=ER'7      EtfE]&! ]’EPÈ                  EPÎ                  R=ER'7      EthE]&! ]’EPÈ                  EPÒ                  R=ER'7      Etj]Ê! ]’EPÈ                  R[ERŠ7      ER‹ 4       EtdERERŒ lEtk]Ê! ]’EPØ                  4      ER� 4       Etl]Ê! ]’EPÚ                  RR`7      ERERŽ l4       Etm]ÏER� 4       Etn]ÏER� 4       Eto]ÏER‘ 4       EtpER’ Etq]Ê! ]’EPä                  R[ERŠ7      ERER“ l4       Ets]Ê! ]’EPè                  .R[ERŠ7      ER” 4       EttER• ER– lEtu]Ê! ]”EPä                  .R[ERŠ7      ER— 4       Etv]Ê! ]’EPî                  ]’EPä                  EPÀ                  .R[]<EPÀ                  Rq7      ER˜ 4       Etr]Ê! ]’EPð                  ]”EPð                  .R[ERŠ7      ER™ 4       EtxERš ER› lEty]Ê! ]’EPô                  ]”EPô                  .4      ERRûR/ERœ ll4       Et{E]&! ]’EPø                  EPî                  4      Et}E]&! ]’EPü                  EPî                  4      EtE]&! ]’EP                   EPî                  4      Et�E]&! ]’EP                  EPî                  4      EtƒE]&! ]’EP                  EPî                  4      Et…]Ê! ]’EPø                  4      ERER� l4       Et|]Ê! ]’EPü                  4      ERERž l4       Et~]Ê! ]’EP                   4      ERŸ 4       Et€]Ê! ]’EP                  RR`7      ERER  l4       Et‚]Ê! ]’EP                  RR`7      ERER¡ l4       Et„]Ê! ]’EP                  4      ERRûR/ER¢ ll4       Et†ER£ ER¤ lEt‡]Ê! ]’EP                  4      ERER¥ l4       Et‰]Ê! ]’EP                  RR`7      ERER¦ l4       Et‹]Ê! ]’EP                  RR`7      ERER§ l4       Et�]Ê! ]”EP                  4      ! E]W! ER¨4      4       ]Ê! ]’EP                  4      ! E]W! ER©4      4      Et�]Ê! ]’EP"                  4      ! E]W! ERª4      4      Et’]Ê! ]’EP&                  4      ! E]W! ER«] EPl                  ER¬7      4      Et”]Ê! ]’EP*                  4      ! E]W! ER­] EPl                  ER¬7      4      Et–E]W! ER®4      Et—E]W! ER¯4      Et˜E]X! ER°4      Et™E]X! ER±4      Etš]ß! ]’EP6                  R[R[ER²R[ER³7      Et›E]&! ]’EP8                  EP:                  R=ER'7      Etž]Ê! ]’EP8                  EP:                  RR`7      ER´RERµERER¶R=/ER· l4       EtŸ]Ê! ]’EP8                  EPî                  RR`7      ERER¸ l4       EtœE]&! ]’EP@                  EPî                  R=ER'7      Et¡E]&! ]’EPD                  EPî                  R=ER'7      Et£E]&! ]’EPH                  EPî                  R=ER'7      Et¥E]&! ]’EPH                  EPL                  R=ER'7      Et§E]&! ]’EPP                  EPî                  R=ER'7      Et©]Ê! ]’EPH                  EPî                  RR`7      ER¹ 4       Etª]Ê! ]’EPH                  EPL                  RR`7      ERERº l4       Et«]Ê! ]’EPP                  EPî                  RR`7      ERER» l4       Et¬]Ê! ]’EP@                  EPî                  RR`7      ER ER¼ l4       Et ]Ê! ]’EPD                  EPî                  RR`7      ERER½ l4       Et¢ERER¾ lEt­ER¿ ERÀ lEt®E]­! ]’EP^                  4      Et¯E]®! ]’EP`                  4      Et°E]­! ]’EPb                  4      Et±E]­! ]’EPd                  4      Et²]ß! ]’EPf                  4      Et³E]®! ]’EPh                  4      Et´E]®! ]’EPj                  4      Etµ]ß! ]’EPl                  4      Et¶]ß! ]’EPn                  R[R[ERÁ7      Et·]Ê! ]’EPp                  R[ERŠ7      ERÂ^/ERÃ l4       Et¸]Ê! ]’EPr                  R[ERŠ7      ERÂ^/ERÄ l4       Et¹]ä! ]’EPt                  EPÎ                  E]¸R[ERÂERÅ7      Et»]ä! ]’EPx                  EPÎ                  E]¹R[ERÂERÅ7      Et½E]®! ]’EP|                  4       E]®! ]’EP~                  4       ]ß! ]’EP€                  4      EtÀ]ß! ]’EP‚                  4      EtÁ]ß! ]’EP„                  4      EtÂ]ß! ]’EP†                  ERÆERÇ7      EtÃ]ß! ]’EPˆ                  4      EtÄ]ß! ]’EPŠ                  4      EtÅ]ß! ]’EPŒ                  4      EtÆE]­! ]’EPŽ                  4       E]­! ]’EP�                  4      EtÈ]Ê! ]’EP’                  ]<EPÀ                  R`7      ! E]È4       E]­! ]’EP”                  4       E]­! ]’EP–                  4       E]­! ]’EP˜                  4       E]®! ]’EP                  4       ]ß! ]’EPš                  RR[] EPx                  ERÈ7      EtÍ]ß! ]’EPœ                  RR[] EPx                  ERÈ7      EtÎ]ß! ]’EPž                  RR[] EPx                  ERÈ7      EtÏ]ß! ]’EP                   RR[] EPx                  ERÈ7      EtÐ]ß! ]’EP¢                  4      EtÑ]ß! ]’EP¤                  4      EtÒ]Ê! ]’EP¦                  4      ! E]Ñ4       ]Ê! ]’EP¨                  4      ! E]Ò4       ]{! ERÉ]<EP’                  RRp7       ]ß! ]’EPª                  4      EtÕ]ß! ]’EP€                  4      EtÀE]­! ]’EP¬                  4      EtÖ]{! ERÊ]<EP’                  RRp7       ]Ê! ]’EP®                  R[ERŠ7      ERË 4       Et×]ß! ]’EP°                  ERÌERÇ7      EtØ]ß! ]’EPè                  4       ]Ê! ]’EP²                  4      ERÍ 4       EtÙ]Ê! ]’EP´                  4      ! E]Õ4       ]ß! ]’EP¶                  ] EPx                  ER¬7       ]ß! ]’EP¸                  ] EPx                  ER¬7       ]ß! ]’EPº                  ] EPx                  ER¬7       ]ß! ]’EP¼                  ] EPx                  ER¬7      EtÞ]ß! ]’EP¾                  ] EPx                  ER¬7       ]ß! ]’EPÀ                  ] EPx                  ER¬7       E]­! ]’EPÂ                  4       E]­! ]’EPÄ                  4       E]­! ]’EPÆ                  4       E]­! ]’EPÈ                  4       E]­! ]’EPÊ                  4       E]­! ]’EPÌ                  4       E]­! ]’EPÎ                  4       E]­! ]’EPÐ                  4       E]­! ]’EPÒ                  4       E]­! ]’EPÔ                  4       E]­! ]’EPÖ                  4       E]­! ]’EPØ                  4       E]­! ]’EPÚ                  4       E]­! ]’EPÜ                  4       E]­! ]’EPÞ                  4       E]­! ]’EPà                  4       ^ERÎEIñEHòEtòEHóEtó ERÏ EtôE]ó FX  EtõE]ô! ]’E]õ4       F  w  EtöEt÷Etø]ß! E]öE]õE]÷E]øERÐ7       K  	  E]ô! ]”E]õ4       F  w  EtöEt÷Etø]ß! E]öE]õE]÷E]øERÐ7       K  	  KZ  	  ]ä! ]’EPò                  EPô                  E]›R[ERÑ7      Etû]ä! ]’EPò                  EPÎ                  E]›R[ERÑ7      Etü]ä! ]’EPò                  EPÀ                  E]›R[ERÑ7       ]ä! ]’EPú                  EPô                  E]t4      Etþ]ä! ]’EPú                  EPÀ                  E]t4       ]ä! ]’EPú                  EPÎ                  E]t4      Etÿ]ä! ]’EP                   EPô                  E]·R[ERÑ7       ]ä! ]’EP                   EPÎ                  E]·R[ERÑ7       ]ä! ]’EP                  EPî                  E]Õ4       ]ä! ]’EP                  EPî                  E]À4       ]ä! ]’EP                  EPÎ                  E]d4       ]ä! ]’EP                  EPô                  E]d4       ]ä! ]’EP                  EP                  E]d4       ]ä! ]’EP
                  EPô                  E]r4      Et]ä! ]’EP
                  EPÀ                  E]r4       ]ä! ]’EP
                  EPÎ                  E]r4      Et]ä! ]’EP                  E]µ4       ]ä! ]’EP                  E]¯4       ]ä! ]’EP                  EPô                  E]Ñ4       ]ä! ]’EP                  EPÎ                  E]Ñ4       ]ä! ]’EP                  EPô                  E]Ò4       ]ä! ]’EP                  EPÎ                  E]Ò4       ]ä! ]’EP                  EPô                  E]Ñ4       ]ä! ]’EP                  EPÎ                  E]Ñ4       ]ä! ]’EP                  EPô                  E]Ò4       ]ä! ]’EP                  EPÎ                  E]Ò4       ]ä! ]’EP                  E]Ö4       ]ä! ]’EP                  E]Ø4       ]ä! ]’EP                   E]ì4       ]ä! ]’EP"                  E]ë4      EtERÒ EtE]! ]’EP(                  EPô                  ]’EPò                  EPô                  E]û4       E]! ]’EP(                  EPÎ                  ]’EPò                  EPÎ                  E]ü4       E]! ]’EP*                  EPô                  ]’EPú                  EPô                  E]þ4       E]! ]’EP*                  EPÎ                  ]’EPú                  EPÎ                  E]ÿ4       E]! ]’EP,                  EPô                  ]’EP
                  EPô                  E]4       E]! ]’EP,                  EPÎ                  ]’EP
                  EPÎ                  E]4       E]! ]’EP.                  EPî                  ]’EP"                  EPî                  E]4       E]! ]’EP0                  EPÎ                  ]’EPt                  EPÎ                  E]»4       E]! ]’EP2                  EPÎ                  ]’EPx                  EPÎ                  E]½4       ERÓ EtE]! ]’EP6                  E]›4       E]! ]’EP8                  E]Á4       E]! ]’EP:                  E]Â4       E]! ]’EP<                  E]Ã4       E]! ]’EP>                  E]Ä4       E]! ]’EP@                  E]Å4       E]! ]’EPB                  E]Æ4       E]! ]’EPD                  E]t4       E]! ]’EPF                  EPÀ                  E]r4       E]! ]’EPF                  EPH                  E]s4       E]! ]’EPJ                  E]Í4       E]! ]’EPL                  E]Î4       E]! ]’EPN                  E]Ï4       E]! ]’EPP                  E]Ð4       E]! ]’EPR                  E]·4       E]! ]’EPT                  E]³4       E]! ]’EPV                  E]´4       ]Ê! ]’EPX                  4      ! E]Á4       ]Ê! ]’EPZ                  4      ! E]Â4       ]Ê! ]’EP\                  4      ! E]Ä4       ]Ê! ]’EP^                  4      ! E]Å4       ]Ê! ]’EP`                  4      ! E]Æ4       E]! ]’EPb                  ]’EPX                  4       E]! ]’EPd                  ]’EPZ                  4       E]! ]’EPf                  ]’EP\                  4       E]! ]’EPh                  ]’EP^                  4       E]! ]’EPj                  ]’EP`                  4       ]Ê! ]’EPl                  4      ERERÔ l4       Et6ERÕ ERÖ lEt7]Ê! ]’EPp                  EPr                  4      ER× 4       Et8]Ê! ]’EPt                  EPr                  4      ERØ 4       Et:]Ê! ]’EPv                  4      ERÙ 4       Et;ERÚ Et<]CEPz                  ! 4        F%  w  Et>Et?]Ê! ]D! E]>4      4      ERÛE]?/ERÜ l4       Et@K'  	  ]Ê! ] EP‚                  4      ERÝ 4       EtA]Ê! ]’EPj                  4      ERÞ 4       EtB]Ê! ] EP                   EP†                  EPˆ                  4      ERß 4       EtE]Ê! ] EP                   EPŒ                  EPŽ                  4      ERà 4       EtG]Ê! ] EP                   EP$                  EP�                  EP’                  4      ERá 4       EtJ]Ê! ] EP                   EP$                  EP–                  EPî                  4      ERâ 4       EtK]í! ] EP                   EP˜                  ERã4      '       d=   ]Ê! ] EP                   EP˜                  EPÚ                  EPî                  4      ERä 4       EtM]Ê! ] EP                   EP$                  EPœ                  4      RôR/ERå l4       EtN^ ERæEIOEHPEtP E],! E]P4       ]Ê! ]/4      ERçR/ERè l4       EtQ]Ê! ] EP                   EP¤                  EP¦                  RR`7      ERé ERê l4       EtS]Ê! ] EP                   EP¤                  EP¨                  RR`7      ERë ERì l4       EtT]Ê! ] EP                   EP¤                  EPª                  RR`7      ERERí l4       EtU]Ê! ] EP                   EP¤                  EP¬                  RR`7      ! ]EP®                  ! E]UR[ERî7      4       ]Ê! ] EP                   EP¤                  EP°                  RR`7      ERï ERð l4       EtXE]Y! 4       EtZERñ ERò lEt[^ ERóEI\EH]Et] ]Ê! E]]RR`7      ERô 4       Et^]Ê! ] EP,                  EP¾                  RR`7      ERõR/ERö ER÷ ll4       Et`]Ê! ]-RR`7      ERø ERù l4       Eta]Ê! ] EP                   EP(                  EPÄ                  EPî                  4      ERú 4       Etb]Ê! ] EP                   EP(                  EPÆ                  EPî                  4      ERû 4       Etc]Ê! ] EP                   EP¤                  EPÈ                  RR`7      ERü 4       Etd^ERýEIeEHfEtfEHgEtg E]f! 4        E]g! 4        ]Ê! ]ZEPÐ                  RR`7      ERþ 4       Eth]Ê! ]ZEPÒ                  RR`7      ERÿ 4       Etj]Ê! ] EP,                  EPÖ                  RR`7      ER R[ER^/ER l4       Etl^ERIXEHmEtm ]W! E]m4       ^ERIXEHnEtnEHoEtoEHpEtp E]nEPâ                  ! 4        E]pEPä                  ! 4        E]pEPæ                  ! 4        ]EPè                  ER ER l4       EtuR# (!  é    )ÚannotationsN)Údefaultdict)ÚCallableÚIterableÚMappingÚSequence)ÚAnyÚcastÚLiteralÚTYPE_CHECKINGÚ	TypeGuardÚTypeVar)Ú	ParamSpec)Úpatch)Úcounters)ÚSavedForBackwardsAOTOutputÚ#SavedForBackwardsNoVcCheckAOTOutput)Úassociative_scan_op)Útriton_kernel_wrapper_mutation)ÚFakeScriptObject)Úis_custom_class_obj)Úget_layout_constraint_tag)Úcanonicalize_dimÚcanonicalize_dimsÚcheckÚdtype_to_typeÚelementwise_dtypesÚELEMENTWISE_TYPE_PROMOTION_KINDÚget_computation_dtypeÚis_boolean_dtypeÚis_float_dtypeÚis_integer_dtypeÚNumber)Úmagic_methodsÚmethod_to_operator)Úfree_unbacked_symbolsÚhas_free_unbacked_symbolsÚresolve_unbacked_bindingsÚSymTypes)Ú
OrderedSet)ÚCeilDivÚFloorDivÚIdentityÚMaxÚMinÚModÚModularIndexing)Úhas_triton_reduction_ordering)Úimport_submodule)ÚconfigÚinductor_primsÚirÚtest_operators)ÚdecompositionsÚget_decompositions)ÚBaseViewÚ	DtypeViewÚ
ExpandViewÚIndexingConstantÚIRNodeÚ	is_tritonÚ
MutableBoxÚOnlineSoftmaxReductionÚops_wrapperÚPermuteViewÚ	PointwiseÚ	ReductionÚSqueezeViewÚ	TensorBoxÚvalidate_irÚView)ÚceildivÚconvert_symint_to_exprÚdecode_deviceÚ
is_dynamicÚis_gpuÚis_nvidia_sm100_or_laterÚis_pointwise_useÚis_triton_fp8_dtype_supportedÚis_viewÚ,needs_fallback_due_to_atomic_add_limitationsÚpad_listlikeÚ#register_op_dtype_propagation_rulesÚ#register_op_requires_libdevice_fp64Úsympy_productÚuse_scatter_fallback)ÚopsÚV)ÚBaseConstant)ÚReductionTypeÚ_TÚ_Pztorchvision::roi_alignzaten::index_addú2dict[Callable[..., Any] | str, Callable[..., Any]]Ú	loweringsz/dict[torch._ops.OpOverload, Callable[..., Any]]Úuser_loweringsz6dict[torch._ops.OpOverload, Callable[..., Any] | None]Ú_maybe_layout_constraintsz2dict[torch._ops.OpOverload, torch._ops.OpOverload]Úinplaceable_foreach_opsc               ó   € V ^8„  d   QhRR/# ©é   ÚreturnÚbool© )Úformats   "ÚY/home/luca/screen-checking/.venv/lib/python3.14/site-packages/torch/_inductor/lowering.pyÚ__annotate__rl   –   s   € ÷ ñ ¨ñ ó    c                 óÖ   € \         P                  P                  P                   F@  p V P                   F-  pVP                  R 8X  d   VP
                  \        9   d   K+    R# 	  KB  	  R# )Úcall_functionTF)rZ   ÚgraphÚcurrent_nodeÚusersÚopÚtargetÚforeach_ops)ÚnodeÚusers     rk   Úcur_node_has_non_foreach_usersrx   –   sI   € Ü—‘×$Ñ$×*Ô*ˆØ—J”JˆDØ—G‘G˜Ô.°D·K±KÄ;Ö4NÛó ñ +ñ
 rm   c               ó    € V ^8„  d   QhRRRR/# )rf   Ú	arg_pairszIterable[Any]rg   z4defaultdict[tuple[Any, bool], list[tuple[int, Any]]]ri   )rj   s   "rk   rl   rl   ¢   s   € ÷ ñ Øðà9ñrm   c                ó¶  € \        \        4      pR p\        V 4       F¸  w  r4\        V\        4      '       g   RpV3p\        V!  '       * ;'       g    \        P                  pRpV F5  p\        V\        4      '       g   K  VP                  P                  4       p M	  Vf   \        R4      hV'       d   Vw  pWV3,          P                  W434       Kº  	  V# )FTNz.foreach op should have at least one tensor arg)r   ÚlistÚ	enumerateÚ
isinstancer   rM   r4   Ú#combo_kernel_foreach_dynamic_shapesrG   ÚdataÚ
get_deviceÚAssertionErrorÚappend)rz   ÚoutÚunpack_argsÚiÚargsÚuse_foreachÚdeviceÚts   &       rk   Úgroup_foreach_argsr‹   ¢   sÊ   € ô ”dÓ
€CØ€KÜ˜YÖ'‰ˆÜ˜$¤×)Ò)ØˆKØ�7ˆDä˜DÑ!Ô!×OÐO¤V×%OÑ%Oð 	ð ˆÛˆAÜ˜!œY×'Ô'ØŸ™×*Ñ*Ó,�Ùñ ð Š>Ü Ð!QÓRÐRßØ‰GˆTØ�[Ð!Õ"×)Ñ)¨1¨)Ö4ñ! (ð" €Jrm   c               ó    € V ^8„  d   QhRRRR/# )rf   ÚfnúCallable[..., Any]rg   úCallable[..., Any] | Noneri   )rj   s   "rk   rl   rl   »   s   € ÷ ñ Ð!3ð Ð8Qñ rm   c                óÎ   € \        V \        P                  P                  4      '       g   R# \	        V RR7      ;p'       d   \        V4      # V \        9   d   \        V ,          # R# )zHGet layout constraints. Returns None if there are no layout constraints.NF)Úwith_default)r~   ÚtorchÚ_opsÚ
OpOverloadr   Útag_to_layout_constraintrb   )r�   Úmaybe_layout_tags   & rk   Úmaybe_layout_constraintsr—   »   sR   € ä�bœ%Ÿ*™*×/Ñ/×0Ò0áä4°RÀeÔLÐLÐÖLÜ'Ð(8Ó9Ð9à	Ô&Ô&Ü(¨Õ,Ð,Ùrm   c               ó    € V ^8„  d   QhRRRR/# )rf   Útagztorch._C.Tagrg   z%Callable[..., tuple[Any, Any]] | Noneri   )rj   s   "rk   rl   rl   É   s    € ÷ Bñ BØ	ðBà*ñBrm   c                óŽ  € V \         P                  P                  P                  8X  d   \        # V \         P                  P                  P
                  8X  d   \        # V \         P                  P                  P                  8X  d   \        # V \         P                  P                  P                  8X  d   R # \        RV  24      h)NzUnknown layout constraint tag: )r’   Ú_CÚTagÚneeds_exact_stridesÚconstrain_to_fake_tensorsÚneeds_contiguous_stridesÚrequire_contiguous_stridesÚneeds_fixed_stride_orderÚconstrain_to_fx_stridesÚflexible_layoutr‚   )r™   s   &rk   r•   r•   É   s„   € ð Œe�h‰h�l‰l×.Ñ.Ô.Ü(Ð(Ø
Œe�h‰h�l‰l×3Ñ3Ô3Ü)Ð)Ø
Œe�h‰h�l‰l×3Ñ3Ô3Ü&Ð&Ø
Œe�h‰h�l‰l×*Ñ*Ô*ÙÜ
Ð:¸3¸%Ð@Ó
AÐArm   c               ó$   € V ^8„  d   QhRRRRRR/# )rf   Úcondrh   ÚmsgÚstrrg   ÚNoneri   )rj   s   "rk   rl   rl   ×   s&   € ÷ Fñ F�Tð F ð F¨ñ Frm   c                ó2   € V '       g   \        R V 24      hR# )zinductor does not support N©ÚNotImplementedError©r¥   r¦   s   &&rk   Ú
assert_nyir­   ×   s   € ßÜ!Ð$>¸s¸eÐ"DÓEÐEñ rm   c                óZ  € \        V \        \        \        \        34      '       d   V  Uu. uF  p\        V4      NK  	  up# \        P                  V 4       \        V \        P                  P                  4      '       d&   \        P                  V P                  4       4       R # R # u upi ©N)r~   r|   ÚsetÚtupler*   Úadd_needs_realized_inputsÚneeds_realized_inputsÚaddr’   r“   ÚOpOverloadPacketÚupdateÚop_overloads)r�   Úxs   & rk   r²   r²   Ü   sw   € Ü�"”tœS¤%¬Ð4×5Ò5Ù68Ó9±b°Ô)¨!Ö,±bÑ9Ð9Ü×Ñ˜bÔ!Ü�"”e—j‘j×1Ñ1×2Ò2Ü×$Ñ$ R§_¡_Ó%6Ö7ñ 3ùò :s   «B(c               ó$   € V ^8„  d   QhRRRRRR/# )rf   r�   z3torch._ops.OpOverloadPacket | torch._ops.OpOverloadÚ
constraintzCallable[..., tuple[Any, Any]]rg   r¨   ri   )rj   s   "rk   rl   rl   ä   s&   € ÷ 3ñ 3Ø;ð3à.ð3ð 
ñ3rm   c                ó°   € \        V \        P                  P                  4      '       d#   V P	                  4        F  pV\
        V&   K  	  R # V\
        V &   R # r¯   )r~   r’   r“   rµ   r·   rb   )r�   rº   Úoverloads   && rk   Úadd_layout_constraintr½   ä   sD   € ô �"”e—j‘j×1Ñ1×2Ò2ØŸ™Ö)ˆHØ2<Ô% hÓ/ó *ð )3Ô! "Ó%rm   c               ó    € V ^8„  d   QhRRRR/# )rf   Údtypezint | torch.dtyperg   útorch.dtyperi   )rj   s   "rk   rl   rl     s   € ÷ ñ Ð)ð ¨kñ rm   c                ó„   € \        V \        4      '       g   V # V \        9  d   \        R V  R24      h\        V ,          p V # )zid z missing from DTYPE_ID_LOOKUP)r~   ÚintÚDTYPE_ID_LOOKUPr‚   ©r¿   s   &rk   Údecode_dtyperÅ     s@   € Ü�eœS×!Ò!ØˆØ”OÔ#Ü˜s 5 'Ð)FÐGÓHÐHä˜EÕ"€EØ€Lrm   c               ó    € V ^8„  d   QhRRRR/# )rf   r¸   r	   rg   z0TypeGuard[TensorBox | IRNode | sympy.Expr | int]ri   )rj   s   "rk   rl   rl   %  s   € ÷ "ñ "�sð "ÐOñ "rm   c                ó*  € \        V \        \        34      '       d;   \        V P	                  4       4      ;'       g    \        V P	                  4       4      # \        V \        P                  4      '       d   V P                  R J # \        V \        4      # ©T)
r~   rG   r>   r"   Ú	get_dtyper    ÚsympyÚExprÚ
is_integerrÂ   ©r¸   s   &rk   Úis_integer_typerÎ   %  sf   € Ü�!”i¤Ð(×)Ò)Ü §¡£Ó.×QÐQÔ2BÀ1Ç;Á;Ã=Ó2QÐQÜ	�A”u—z‘z×	"Ò	"Ø�|‰|˜tÐ#Ð#ä˜!œSÓ!Ð!rm   c               ó    € V ^8„  d   QhRRRR/# )rf   r¸   r	   rg   z$TypeGuard[TensorBox | IRNode | bool]ri   )rj   s   "rk   rl   rl   .  s   € ÷ #ñ #�sð #ÐCñ #rm   c                óŒ   € \        V \        \        34      '       d   \        V P	                  4       4      # \        V \
        4      # r¯   )r~   rG   r>   r    rÉ   rh   rÍ   s   &rk   Úis_boolean_typerÑ   .  s2   € Ü�!”i¤Ð(×)Ò)Ü §¡£Ó.Ð.ä˜!œTÓ"Ð"rm   Úreturn_compute_dtypeFc               ó(   € V ^8„  d   QhRRRRRRRR/# )	rf   r‡   r	   Útype_promotion_kindr   rÒ   rh   rg   rÀ   ri   )rj   s   "rk   rl   rl   5  s6   € ÷ Cñ CØðCà8ðCð ðCð ñ	Crm   c                óv   € R  R lpV Uu. uF
  qC! V4      NK  	  pp\        VRV / w  rgV'       d   V# T# u upi )c               ó    € V ^8„  d   QhRRRR/# )rf   Úinpr	   rg   ri   )rj   s   "rk   rl   Ú(get_promoted_dtype.<locals>.__annotate__:  s   € ÷ Añ A˜Sð A Sñ Arm   c                óà   € \        V \        \        P                  34      '       d   V # \	        V P                  4       4      p\        P                  ! ^.V,          V P                  4       R7      # )é   rÄ   )	r~   r#   rÊ   ÚBasicÚlenÚget_sizer’   ÚzerosrÉ   )r×   Údims   & rk   Úconstruct_inputÚ+get_promoted_dtype.<locals>.construct_input:  sJ   € Ü�cœF¤E§K¡KÐ0×1Ò1ØˆJä�c—l‘l“nÓ%ˆCä—;’; ˜s S�y°·±³Ô@Ð@rm   rÔ   )r   )rÔ   rÒ   r‡   rà   ÚargÚinpsÚcompute_dtypeÚresult_dtypes   $$*     rk   Úget_promoted_dtyperæ   5  sO   € õ
Añ -1Ó1©D SˆO˜CÖ ©D€DÐ1Ü"4Ø	ð#Ø#6ñ#Ñ€M÷ 1ˆ=ÐB°lÐBùò	 2s   ‹6c                óB  € \        V \        \        34      '       g   V .p M\        V 4      p \        V 4       Fd  p\        V\        P                  P
                  4      '       g   K/  VP                  4        F!  pV\        9  g   K  V P                  V4       K#  	  Kf  	  V # r¯   )	r~   r|   r±   r’   r“   rµ   r·   r`   rƒ   )Úaten_fnr�   Úother_fns   &  rk   Úget_overloadsrê   I  st   € Ü�g¤¤e˜}×-Ò-Ø�)‰ä�w“-ˆä�7ŽmˆÜ�bœ%Ÿ*™*×5Ñ5×6Ô6ØŸO™OÖ-�Ø¤9Ö,Ø—N‘N 8Ö,ó .ñ ð €Nrm   c               ó$   € V ^8„  d   QhRRRRRR/# )rf   rs   z9Any | torch._ops.OpOverloadPacket | torch._ops.OpOverloadÚ	namespacer§   rg   rh   ri   )rj   s   "rk   rl   rl   X  s$   € ÷ ñ ØAðØNQðà	ñrm   c                óî   € \        V \        P                  P                  4      '       d   WP                  9   # \        V \        P                  P
                  4      '       d   WP                  4       9   # R # ©F)r~   r’   r“   rµ   Ú_qualified_op_namer”   Úname)rs   rì   s   &&rk   Úin_namespacerñ   X  sS   € ô �"”e—j‘j×1Ñ1×2Ò2Ø×1Ñ1Ñ1Ð1Ü	�BœŸ
™
×-Ñ-×	.Ò	.ØŸG™G›IÑ%Ð%Ùrm   c               ó$   € V ^8„  d   QhRRRRRR/# )rf   r¸   rG   r‰   útorch.devicerg   ri   )rj   s   "rk   rl   rl   b  s!   € ÷ ñ ˜Yð °ð Àñ rm   c           	     ó6  € \        V P                  \        P                  4      '       d    \	        V P                  4       4      '       d   V # \        P                  P                  P                  V P                  4       4      pV P                  4       pVeƒ   VP                  R8X  dr   W18w  dl   \        V4      ^ 8X  g   \        V4      ^8X  dL   V^ ,          ^8X  d>   \        \        P                  ! \        P                  P!                  WR4      4      4      # V # )z:
Copy cpu scalar if doesn't not match with given `device`
ÚcpuF)r~   r€   r6   ÚReinterpretViewr'   rÝ   rZ   rp   ÚsizevarsÚguarding_hints_or_throwr�   ÚtyperÜ   rG   Ú
StorageBoxÚ
DeviceCopyÚcreate)r¸   r‰   ÚsizeÚ
cur_devices   &&  rk   Úmaybe_copy_cpu_scalarrÿ   b  sÄ   € ô �a—f‘fœb×0Ñ0×1Ò1Ô5NØ	�
‰
‹÷6ò 6ð ˆÜ�7‰7×Ñ×3Ñ3°A·J±J³LÓA€DØ—‘“€JàÒØ�O‰O˜uÔ$ØÔ Ü�‹Y˜!Œ^¤ D£	¨Q¤°4¸µ7¸a´<äœŸš¤r§}¡}×';Ñ';¸AÈ5Ó'QÓRÓSÐSØ€Hrm   c               ó0   € V ^8„  d   QhRRRRRRRRR	RR
R/# )rf   r‡   ú	list[Any]Úkwargszdict[str, Any]Ú	broadcastrh   rÔ   ú&ELEMENTWISE_TYPE_PROMOTION_KIND | NoneÚconvert_input_to_boolrg   z tuple[list[Any], dict[str, Any]]ri   )rj   s   "rk   rl   rl   v  sM   € ÷ Oñ OØ
ðOàðOð ðOð @ð	Oð
  ðOð &ñOrm   c           	     óê  a aaa€ \        S 4       UUu. uF  w  rV\        V\        4      '       g   K  VNK!  	  pppSP                  4        UU	u. uF  w  r‰\        V	\        4      '       g   K  VNK!  	  p
pp	V'       g   V
'       g   S S3# V'       g
   V'       EdU   V'       d   \        P
                  oM|S  Uu. uF?  p\        V\        \        P                  34      '       g   \        VR4      '       g   K=  VNKA  	  ppVP                  R SP                  4        4       4       \        VRV/ oV'       d   S V^ ,          ,          MSV
^ ,          ,          P                  4       oV F  p\        S V,          S4      S V&   K  	  V
 F  p\        SV,          S4      SV&   K  	  R VV3R llpS  Uu. uF
  q½! V4      NK  	  upo SP                  4        UU	u/ uF  w  r‰W�! V	4      bK  	  up	poV'       Ed^   \        \!        \"        P$                  ! V 3R lV 4       V3R lV
 4       4      4      !  p\!        V^ ,          P'                  4       4      p\)        W~R\+        V4       4       F
  w  rVVS V&   K  	  \)        W®\+        V4      R 4       F
  w  r†VSV&   K  	  \-        \+        S 4      4       FM  p\        S V,          \.        P0                  4      '       g   K,  \2        P4                  ! S V,          V4      S V&   KO  	  S FM  p\        SV,          \.        P0                  4      '       g   K,  \2        P4                  ! SV,          V4      SV&   KO  	  S S3# u uppi u up	pi u upi u upi u up	pi )	z:
Transforms arguments for broadcasting and type promotion
r¿   c              3  óN   "  € T F  p\        VR 4      '       g   K  Vx € K  	  R# 5i)r¿   N)Úhasattr)Ú.0Úas   & rk   Ú	<genexpr>Ú!transform_args.<locals>.<genexpr>’  s   é € Ð!T©_¨ÄÈÈ7×@S§!¢!«_ùs   ‚%›
%rÔ   c               ó    € V ^8„  d   QhRRRR/# )rf   râ   r	   rg   ri   )rj   s   "rk   rl   Ú$transform_args.<locals>.__annotate__£  s   € ÷ 	ñ 	˜ð 	 ñ 	rm   c                óÒ   <€ \        V \        4      '       d   \        V S4      # \        V \        P                  4      '       d$   \        P                  ! V P
                  SSR 7      # V # )©Úvaluer¿   r‰   )r~   rG   Úto_dtyper6   ÚConstantr  )râ   r‰   r¿   s   &€€rk   ÚpromoteÚtransform_args.<locals>.promote£  sJ   ø€ Ü˜#œy×)Ò)Ü  UÓ+Ð+Ü˜C¤§¡×-Ò-Ü—{’{¨¯©¸%ÈÔOÐOà�
rm   c              3  ó6   <"  € T F  pSV,          x € K  	  R # 5ir¯   ri   )r	  r†   r‡   s   & €rk   r  r  ²  s   øé € Ð3¡l �T˜!—W’W£lùó   ƒc              3  ó6   <"  € T F  pSV,          x € K  	  R # 5ir¯   ri   )r	  Úkr  s   & €rk   r  r  ³  s   øé € Ð7© 1�V˜A—Y’Y«ùr  N)r}   r~   rG   Úitemsr’   rh   r#   rÊ   rÛ   r  ÚextendÚvaluesræ   r�   rÿ   Úbroadcast_tensorsr|   Ú	itertoolsÚchainrÝ   ÚziprÜ   Úranger6   r  r<   rü   )r‡   r  r  rÔ   r  r†   r¸   Úargs_indicesr  ÚvÚkwargs_indicesr
  Úpromoting_argsr  Úbroadcastedrý   r‰   r¿   s   ff&&&           @@rk   Útransform_argsr'  v  s×  û€ ô #,¨D¤/ÔN¡/™$˜!´ZÀÄ9×5M—A�A¡/€LÑNØ$*§L¡L¤NÔO¡N™D˜A´jÀÄI×6N—a�a¡N€NÑOç§Ø�Vˆ|Ðç×3Ð3ß Ü—J‘J‰Eñ
 óá�AÜ˜a¤&¬%¯+©+Ð!6×7Ò7¼7À1Àg×;N÷ �Ùð ð ð ×!Ñ!Ñ!T¨V¯]©]¬_Ó!TÔTÜ&Øðà$7ñˆE÷ &2ˆD�˜a•Ö!°v¸nÈQÕ>OÕ7Pß
‰*‹,ð 	ó ˆAÜ+¨D°­G°VÓ<ˆD�‹Gñ ó  ˆAÜ-¨f°Q­i¸Ó@ˆF�1‹Iñ  ÷	ñ 	ñ %)Ó)¡D˜q�˜–
¡DÑ)ˆØ,2¯L©L¬NÔ;©N¡D A�!�W˜Q“Z’-©NÒ;ˆç€yÜ'ÜÜ—’Ü3¡lÓ3Ü7©Ó7óóñ
ˆô �K •N×+Ñ+Ó-Ó.ˆä˜Ð2E´C¸Ó4EÐ&FÖG‰DˆAØˆD�‹Gñ Hä˜´C¸Ó4EÐ4GÐ(HÖI‰DˆAØˆF�1‹Iñ Jô ”s˜4“yÖ!ˆAÜ˜$˜q�'¤2§;¡;×/Ô/Ü$×+Ò+¨D°­G°TÓ:��Q“ñ "ó ˆAÜ˜& �)¤R§[¡[×1Ô1Ü&×-Ò-¨f°Q­i¸Ó>��q“	ñ ð �ˆ<ÐùóI OùÛOùòùò> *ùÛ;s.   “M²MÁMÁ-MÂ8:M%Ã7M%Æ2M*ÇM/c               ó$   € V ^8„  d   QhRRRRRR/# )rf   rè   útorch._ops.OpOverloadÚ	decomp_fnrŽ   rg   ri   )rj   s   "rk   rl   rl   È  s$   € ÷ ñ Ø"ðØ/Aðàñrm   c                óÜ   a€ \         P                  ! S4      R V3R ll4       p\        V 4      p\        P	                  V4       \
        P	                  \        P                  W24      4       V# )a�  
Add a foreach lowering to lowerings dict.

Arguments:
    aten_fn: torch.ops.aten.* fn we are lowering
    decomp_fn: alternate implementation on our IR
    broadcast: True to apply broadcasting to tensor inputs
    type_promotion_kind: kind of type promotion applied to tensor inputs, `None` means no type promotion
    convert_input_to_bool: some logical ops require inputs are converted to bool
c               ó$   € V ^8„  d   QhRRRRRR/# )rf   r‡   r	   r  rg   ri   )rj   s   "rk   rl   Ú0_register_foreach_lowering.<locals>.__annotate__×  s!   € ÷ ñ �sð  cð ¨cñ rm   c                 ó.   <€ S! V / VB p\        V4       V# r¯   )rH   )r‡   r  r„   r*  s   *, €rk   ÚwrappedÚ+_register_foreach_lowering.<locals>.wrappedÖ  s   ø€ á˜Ð( Ñ(ˆÜ�CÔØˆ
rm   )Ú	functoolsÚwrapsrê   ru   r¶   r`   ÚdictÚfromkeys)rè   r*  r/  Úaten_fnss   &f  rk   Ú_register_foreach_loweringr6  È  sV   ø€ ô ‡_‚_�YÓ÷ó  ðô
 ˜WÓ%€HÜ×Ñ�xÔ Ü×Ñ”T—]‘] 8Ó5Ô6Ø€Nrm   c          
     ó,   € V ^8„  d   QhRRRRRRRRRR	/# )
rf   r*  rŽ   r  rh   rÔ   r  r  Úlowering_dictr_   ri   )rj   s   "rk   rl   rl   â  s>   € ÷ 3ñ 3à!ð3ð ð3ð @ð	3ð
  ð3ð Fñ3rm   c                ó¶   a aaaa€ \         P                  ! S4      V VVVV3R l4       p\        S 4      o VP                  \        P                  S V4      4       V# )a†  
Add a lowering to lowerings dict

Arguments:
    aten_fn: torch.ops.aten.* fn we are lowering
    decomp_fn: alternate implementation on our IR
    broadcast: True to apply broadcasting to tensor inputs
    type_promotion_kind: kind of type promotion applied to tensor inputs, `None` means no type promotion
    convert_input_to_bool: some logical ops require inputs are converted to bool
c                 ó   <€ \        V 4      p \        V4      pR p\        V 4      ^8X  d8   \        V ^ ,          \         \        34      '       d   Rp\        V ^ ,          4      p \
        ;QJ d    R S 4       F  '       d   K   R M	  RM! R S 4       4      '       gF   \        ;QJ d    R V 4       F  '       g   K   RM	  R M! R V 4       4      '       d   \        R4      h\        WSSS4      w  rV'       d   V .p S! V / VB p\        V4       V# )FTc              3  óZ   "  € T F!  q\         9   ;'       g    \        VR 4      x € K#  	  R# 5i)Ú_c10d_functionalN)Ú	fallbacksrñ   )r	  r�   s   & rk   r  Ú6_register_lowering.<locals>.wrapped.<locals>.<genexpr>ÿ  s)   é € ð 
ÙPWÈ"”9‰_×DÐD¤¨RÐ1CÓ DÔDÓPWùs   ‚+–+c              3  ó*   "  € T F	  qR 8H  x € K  	  R# 5i)r„   Nri   ©r	  r¸   s   & rk   r  r>    s   é € Ð.¡v !˜–:£vùó   ‚zout= ops aren't yet supported)
r|   r3  rÜ   r~   r±   ÚallÚanyr‚   r'  rH   )	r‡   r  Úunpackedr„   rè   r  r  r*  rÔ   s	   *,  €€€€€rk   r/  Ú#_register_lowering.<locals>.wrappedõ  sè   ø€ ä˜t›*ˆÜ!% f£ˆØˆäˆt‹9˜Œ>œj¨¨a­´4¼°-×@Ò@ØˆHÜ˜˜Q�“=ˆDç‹sñ 
ÙPWó
�s�sŠsñ 
ÙPWó
÷ 
ò 
÷ ‹sÑ.¡vÓ.�s�sŠsÑ.¡vÓ.×.Ò.Ü$Ð%DÓEÐEä%Ø˜)Ð%8Ð:Oó
‰ˆ÷ Ø�6ˆDá˜Ð( Ñ(ˆÜ�CÔàˆ
rm   )r1  r2  rê   r¶   r3  r4  )rè   r*  r  rÔ   r  r8  r/  s   fffff& rk   Ú_register_loweringrF  â  sO   ü€ ô& ‡_‚_�YÓ÷ð ó  ðô8 ˜GÓ$€Gà×ÑœŸ™ w°Ó8Ô9Ø€Nrm   c               ó    € V ^8„  d   QhRRRR/# )rf   rÔ   r  rg   z.Callable[[Callable[_P, _T]], Callable[_P, _T]]ri   )rj   s   "rk   rl   rl     s    € ÷ ñ ððð 4ñrm   c           	     óB   € \         P                  ! \        V VVVVR7      # )z#
Shim to support decorator syntax.
)r  rÔ   r  r8  )r1  ÚpartialrF  )rè   r  rÔ   r  r8  s   &&&&&rk   Úregister_loweringrJ    s)   € ô ×ÒÜØØØ/Ø3Ø#ôð rm   c                óN  € \        V4      pV '       d   W8X  d   V# . p\        P                  ! \        V 4      \        V4      \        P
                  P                  R7       EF-  w  r4\        P                  P                  P                  V4      '       d   VP                  V4       KH  \        P                  P                  P                  V4      '       d   VP                  V4       KŠ  \        P                  P                  P                  W44       \        \        P                  ! V4      P                  4      \        \        P                  ! V4      P                  4      8  d   VP                  V4       EK  VP                  V4       EK0  	  \        \        V4      4      # )z�
Broadcasting logic based on symbolic shapes.

We give the shapes 0 and 1 concrete values, while all other shapes
are symbolic sympy formulas.
)Ú	fillvalue)r±   r  Úzip_longestÚreversedrÊ   ÚSÚOnerZ   rp   r÷   Úis_size_one_or_falserƒ   Úcheck_equalsrÜ   ÚexpandÚfree_symbols)r
  ÚbÚoutputr¸   Úys   &&   rk   Úbroadcast_symbolic_shapesrX  -  s  € ô 	ˆa‹€Aß�”Øˆà€FÜ×%Ò%¤h¨q£k´8¸A³;Ì%Ï'É'Ï+É+×VÐV‰ˆÜ�7‰7×Ñ×0Ñ0°×3Ò3Ø�M‰M˜!ÖÜ�W‰W×Ñ×2Ñ2°1×5Ò5Ø�M‰M˜!Öä�G‰G×Ñ×)Ñ)¨!Ô/Ü”5—<’< “?×/Ñ/Ó0´3´u·|²|ÀA³×7SÑ7SÓ3TÔTØ—‘˜a× à—‘˜a× ñ Wô ”˜&Ó!Ó"Ð"rm   c               ó0   € V ^8„  d   QhRRRRRRRRR	RR
R/# )rf   ÚinputszSequence[_T]Úoverride_return_dtypeútorch.dtype | NonerÔ   r  Úround_scalar_constantsrh   Úround_scalars_to_tensor_dtyperg   z&Sequence[_T | BaseView | BaseConstant]ri   )rj   s   "rk   rl   rl   G  sM   € ÷ Xñ XØðXà-ðXð @ðXð !ð	Xð
 $(ðXð ,ñXrm   c                ó   a
a€ Ve   Ve   \        R4      hVf   Vf   \        P                  p\        ;QJ d    R V  4       F  '       g   K   RM	  RM! R V  4       4      '       g   V # \        ;QJ d    R V  4       F  '       d   K   RM	  RM! R V  4       4      '       d3   T;'       g    \        V RV/ o
V
3R lpV  Uu. uF
  qe! V4      NK  	  up# \        R V  4       4      pVP                  4       oS\        P                  \        P                  39   dL   V\        P                  8X  g0   V'       g(   V'       d'   VP                  4       P                  R9   d   V3R	 lpMR
 p. p	V  EF  p\        V\        \         34      '       dk   V	P#                  \$        P&                  ! \(        P*                  ! V! V4      SVP                  4       R7      \-        VP/                  4       4      4      4       KŠ  \        V\0        P2                  4      '       d[   V	P#                  \$        P&                  ! \5        VSVP                  4       R7      \-        VP/                  4       4      4      4       EK  V	P#                  V4       EK  	  V	# u upi )a\  Convert raw Python scalars and sympy expressions in inputs to IR constants.

When a tensor input is present, scalars become Constants of the tensor's
dtype, broadcast to its size. For bf16/fp16 tensors, the scalar value is
additionally rounded to the tensor dtype to match eager kernels that cast
scalar operands to the common dtype: always for comparison ops
(override_return_dtype == torch.bool) and for callers passing
round_scalar_constants (e.g. remainder); on CPU and MPS only for ops
passing round_scalars_to_tensor_dtype (e.g. add/sub, whose CUDA eager
kernels keep scalars at opmath precision).
zEonly one of override_return_dtype or type_promotion_kind may be givenc              3  ól   "  € T F*  p\        V\        P                  \        \        34      x € K,  	  R # 5ir¯   )r~   rÊ   rÛ   rÂ   Úfloatr@  s   & rk   r  Ú$promote_constants.<locals>.<genexpr>a  s%   é € ÐHÁ¸AŒz˜!œeŸk™k¬3´Ð6×7Ð7Ãùó   ‚24TFc              3  ól   "  € T F*  p\        V\        \        \        P                  34      x € K,  	  R # 5ir¯   )r~   rÂ   ra  rÊ   rÛ   r@  s   & rk   r  rb  c  s%   é € Ð
D¹V¸Œ:�aœ#œu¤e§k¡kÐ2×3Ð3»Vùrc  rÔ   c                óÌ   <€ \        V \        P                  4      '       d#   \        P                  ! V S\        R 4      R7      # \        P                  ! V S\        R 4      R7      # )N©Úindexr¿   r‰   r  )r~   rÊ   rÛ   r6   r=   rL   r  ©r¸   r¿   s   &€rk   Ú
const_funcÚ%promote_constants.<locals>.const_funcj  sM   ø€ Ü˜!œUŸ[™[×)Ò)Ü×*Ò*Ø 5´¸tÓ1Dôð ô —{’{¨°%ÄÈdÓ@SÔTÐTrm   c              3  ó€   "  € T F4  p\        V\        \        \        P                  34      '       g   K0  Vx € K6  	  R # 5ir¯   )r~   rG   r<   r6   r  r@  s   & rk   r  rb  s  s&   é € ÐW™�A¤:¨a´)¼ZÌÏÉÐ1U×#V�aŠa›ùs   ‚->´
>c                óP   <€ \         P                  ! V SR 7      P                  4       # ©rÄ   )r’   ÚtensorÚitem)r#  Útensor_dtypes   &€rk   Ú<lambda>Ú#promote_constants.<locals>.<lambda>‚  s   ø€ ¤%§,¢,¨q¸Ô"E×"JÑ"JÔ"Lrm   c                ó   € V # r¯   ri   )r#  s   &rk   rq  rr  „  s   € ¡!rm   r  rf  )rõ   Úmps)r‚   r   ÚDEFAULTrC  rB  ræ   ÚnextrÉ   r’   Úbfloat16Úfloat16rh   Úget_device_or_errorrù   r~   rÂ   ra  rƒ   r<   rü   r6   r  r|   rÝ   rÊ   rÛ   r=   )rZ  r[  rÔ   r]  r^  ri  r¸   ÚexÚ_round_scalarr„   r¿   rp  s   &&&&&     @@rk   Úpromote_constantsr|  G  s  ù€ ð$ "Ò)Ð-@Ò-HÜØSó
ð 	
ð Ò$Ð)<Ò)DÜ=×EÑEÐç‹3ÑHÁÓH�3�3Š3ÑHÁÓH×HÒHØˆß
ƒsÑ
D¹VÓ
D‡s‡s‚sÑ
D¹VÓ
D×DÒDØ%÷ 
ð 
Ô);Øð*
ð !4ñ*
ˆõ	Uñ (.Ó.¡v !�
˜1–¡vÑ.Ð.Ü	ÑW™ÓWÓ	W€BØ—<‘<“>€Lð Ü�‰Ü�‰ðô ð 	¤§¡Ô+ß!ç)Ø×&Ñ&Ó(×-Ñ-°Ô?ô M‰á#ˆà
€CÜˆÜ�aœ#œu˜×&Ò&Ø�J‰JÜ×!Ò!Ü—K’KÙ+¨AÓ.Ø*Ø!×5Ñ5Ó7ôô
 ˜Ÿ™›Ó'óö	ô ˜œ5Ÿ;™;×'Ò'Ø�J‰JÜ×!Ò!Ü$Ø |¸B×<RÑ<RÓ<Tôô ˜Ÿ™›Ó'ó	÷ð �J‰J�q�Mñ- ð0 €Jùò[ /s   ÃJc                ó   aaaa€ \        V V\        P                  R7      oV P                  4       oVP                  4       oVVVV3R lp\        P
                  ! V P                  4       SVV P                  4       R7      # )zBCompute a + alpha * b using FMA for CUDA floating-point precision.©rÔ   c                óð   <€ S! V 4      pS! V 4      p\        S\        P                  4      '       d   \        P                  ! SS4      pM\        P
                  ! SS4      p\        P                  ! W#V4      # r¯   )r~   rÊ   rÛ   rY   Ú
index_exprÚconstantÚfma)ÚidxÚa_valÚb_valÚ
alpha_exprÚa_loaderÚalphaÚb_loaderr¿   s   &   €€€€rk   Úinner_fnÚ%_add_with_alpha_fma.<locals>.inner_fn¬  sW   ø€ Ù˜“ˆÙ˜“ˆÜ�eœUŸ[™[×)Ò)ÜŸš¨¨uÓ5‰JäŸš e¨UÓ3ˆJÜ�wŠw�u¨%Ó0Ð0rm   ©r‰   r¿   rŠ  Úranges)ræ   r   ru  Úmake_loaderrD   rü   r�   rÝ   )r
  rU  rˆ  rŠ  r‡  r‰  r¿   s   &&f @@@rk   Ú_add_with_alpha_fmar�  ¢  sk   û€ äØ	Ø	Ü;×CÑCô€Eð
 �}‰}‹€HØ�}‰}‹€H÷1ð 1ô ×ÒØ�|‰|‹~ØØØ�z‰z‹|ô	ð rm   c               ó    € V ^8„  d   QhRRRR/# )rf   rv   ztorch.fx.Node | Nonerg   rh   ri   )rj   s   "rk   rl   rl   ½  s   € ÷ ñ Ð%9ð ¸dñ rm   c                óÀ  € V f   R# RpV P                    F  pVP                  R8w  g   K  Rp M	  V'       g   R# V P                    F“  pVP                  R8w  d   K  VP                  P                  R4      pVf   K7  \        P
                  ! VP                  ^ ,          4      p\        WC4       F&  w  rVWPJ g   K  \        V\        4      '       g   K$    R# 	  K•  	  R# )NFrV  TÚdesc)
rr   rs   ÚmetaÚgetÚpytreeÚtree_leavesr‡   r   r~   Ú&_SAVED_FOR_BACKWARDS_OUTPUT_DESC_TYPES)rv   Úhas_non_output_userrw   ÚdescsÚoutput_valuesÚoutput_valuer’  s   &      rk   Ú_has_saved_lowp_output_userœ  ½  s¾   € Ø‚|ÙàÐØ—
”
ˆØ�7‰7�hÖØ"&ÐÙñ ÷
 Ùà—
”
ˆØ�7‰7�hÔÙà—	‘	—‘˜fÓ%ˆØŠ=Ùä×*Ò*¨4¯9©9°Q­<Ó8ˆÜ"% mÖ";ÑˆLØÕ#¬
ØÔ<÷)ô )ó ó	 #<ñ ñ rm   c               ó<   € V ^8„  d   QhRRRRRRRRR	R
RR
RRRR
RR/	# )rf   r�   rŽ   r[  r\  Úoverride_deviceztorch.device | NoneÚoverride_fn_when_input_boolr�   Úallow_alpharh   Úuse_fma_for_alphaÚtriton_fallbackzCallable[..., _T] | Noner^  rg   zCallable[..., TensorBox | _T]ri   )rj   s   "rk   rl   rl   Ü  sm   € ÷ {ñ {Øð{à-ð{ð )ð{ð ";ð	{ð
 ð{ð ð{ð .ð{ð $(ð{ð #ñ{rm   c           
     ó>   a aaaaaaa€ RR/R VV VVVVVV3R lllpV# )z_Wraps a pointwise fn and returns a function representing the pointwise in
the define-by-run IR.rˆ  Nc               ó    € V ^8„  d   QhRRRR/# )rf   rZ  r	   rg   zTensorBox | _Tri   )rj   s   "rk   rl   Ú$make_pointwise.<locals>.__annotate__é  s   € ÷ l
ñ l
�sð l
¨>ñ l
rm   c           
     óD  <aa
aaaaa€ SeT   \         ;QJ d    R S 4       F  '       g   K   RM	  RM! R S 4       4      '       d   S'       d   \        R4      hS! S!  # \        SSSR7      oS'       dÁ   V e¼   V ^8w  dµ   S'       dŒ   \        S^ ,          \        4      '       do   S^ ,          P                  4       pS^ ,          P                  4       P                  '       d1   Ve-   VP                  R8X  d   \        S^ ,          S^,          V 4      # \        S4      o\        SR,          V 4      SR&   MV e   \        R4      hS Uu. uF  q3P                  4       NK  	  upoS^ ,          P                  4       oS;'       g    S^ ,          P                  4       o
SR,           Fn  p\        V\        P                  4      '       d   K%  \!        S4      \!        VP                  4       4      8X  d   KN  \        R	S R
S R
VP                  4        24      h	  \"        P$                  \"        P&                  3o\(        P*                  e   \-        \(        P*                  RR 4      MR pVR J;'       d3    VP.                  R J;'       d    VP.                  P1                  RR4      o\2        P4                  ;'       d(    S'       * ;'       d    S
S9   ;'       d    \7        V4      pS;'       g    T;'       d    S
S9   oV
VVVVVVVV3	R lpS'       gf   R pS F>  p	\9        V	P                  4       P                  4      '       g   K.  V	P                  4       p M	  V'       g   S^ ,          P                  4       pS;'       g    Xp\:        P<                  ! VS
VSR7      # u upi )Nc              3  óh   "  € T F(  p\        V\        4      ;'       d    \        V4      x € K*  	  R # 5ir¯   ©r~   r>   r?   ©r	  r×   s   & rk   r  Ú0make_pointwise.<locals>.inner.<locals>.<genexpr>ê  s)   é € ð /
ÙBH¸3ŒJ�sœFÓ#×6Ð6¬	°#«Ô6Ã&ùó   ‚2ž2TFzexpected: not allow_alpha)r^  Úcudazexpected: alpha is NoneºrÚ   NNzndim mismatch Ú rq   Úlow_precision_pointwise_barrierc                óP  <	€ \        V 4      \        S4      8w  d   \        R V  RS 24      hS\        P                  8X  d    Se   S! S Uu. uF
  q! V 4      NK  	  up!  # . p\	        S4       Fr  w  r1V! V 4      pSV,          P                  4       pS	'       d6   VS9   d/   \        P                  ! WERR7      p\        P                  ! We4      pVP                  V4       Kt  	  S
! V!  pS'       d1   \        P                  ! VSRR7      p\        P                  ! VS4      # V# u upi )zwrong ndim r®  F©Úuse_compute_types)	rÜ   r‚   r’   rh   r}   rÉ   rY   r  rƒ   )rg  ÚloadÚinputs_loadedÚ	inp_indexr„   Ú	inp_dtypeÚdowncastr¿   Úemulate_output_castÚemulate_precision_castsr�   rZ  ÚloadersÚ	low_pr_fprŸ  r�  s   &      €€€€€€€€€rk   rŠ  Ú/make_pointwise.<locals>.inner.<locals>.inner_fn,  s  ø€ Ü�5‹zœS ›[Ô(Ü$ {°5°'¸¸6¸(Ð%CÓDÐDØœŸ
™
Ô"Ð'BÒ'NÙ2ÉWÓ4UÉWÀT°T¸%¶[ÉWÑ4UÑVÐVà "�Ü'0°Ö'9‘O�IÙ˜u›+�CØ & yÕ 1× ;Ñ ;Ó =�Iß.°9À	Ô3IÜ#&§<¢<°ÐRWÔ#X˜Ü!Ÿlšl¨8Ó?˜Ø!×(Ñ(¨Ö-ñ (:ñ ˜-Ñ(�ß&ô  #Ÿ|š|¨C°È%ÔP�HÜŸ<š<¨°%Ó8Ð8Ø�
ùò# 5Vs   ÁD#rŒ  éÿÿÿÿ)rC  r‚   r|  r~   r>   r�   rÉ   Úis_floating_pointrù   r�  r|   ÚmulrŽ  rÝ   r6   r[   rÜ   r’   rw  rx  rZ   rp   Úgetattrr“  r”  r4   Ú(emulate_precision_casts_on_saved_tensorsrœ  rN   rD   rü   )rˆ  rZ  Ú
inp_devicer¸   Úotherrq   Útruncate_saved_outputrŠ  r‰   r†   r¿   r¸  r¹  rº  r»  r�  r   r�   rž  rŸ  r[  r^  r¢  r¡  s   $j        @@@@@@€€€€€€€€rk   ÚinnerÚmake_pointwise.<locals>.inneré  s0  ÿ€ ØÒ&¯3«3ñ /
ÙBHó/
¯3¯3ª3ñ /
ÙBHó/
÷ ,
ò ,
÷ Ü$Ð%@ÓAÐAÙ" FÑ+Ð+ô #ØØ!Ø*Gô
ˆ÷
 ØÒ  U¨a¤Z÷ %¬°F¸1µI¼v×)FÒ)FØ!'¨¥×!5Ñ!5Ó!7�Jà˜q�	×+Ñ+Ó-×?×?Ð?Ø&Ò2Ø&ŸO™O¨vÔ5ä2°6¸!µ9¸fÀQ½iÈÓOÐOô ˜f›�ä  ¨¥¨UÓ3��r‘
øàÒ Ü$Ð%>Ó?Ð?Ù,2Ó3©F q—=‘=–?©FÑ3ˆØ˜•×#Ñ#Ó%ˆØ%×>Ð>¨°­×)<Ñ)<Ó)>ˆà˜B—Z�ZˆEä˜5¤"§/¡/×2Ô2Ü�v“;¤# e§n¡nÓ&6Ó"7Ö7ä$ ~°b°T¸¸6¸(À!ÀEÇNÁNÓDTÐCUÐ%VÓWÐWñ  ô —^‘^¤U§]¡]Ð3ˆ	ä67·g±gÒ6IŒG”A—G‘G˜^¨TÔ2Ètð 	ð  Ð$÷ Pð PØ×!Ñ!¨Ð-÷Pð Pà×!Ñ!×%Ñ%Ð&GÈÓOð 	 ô ×;Ñ;÷ 9ð 9Ø+Ô+÷9ð 9à˜Ñ"÷9ð 9ô +¨<Ó8ð	 	ð $×<Ð<Ð'<÷!ð !à�yÑ ð 	÷	õ 	÷. ØˆFÛ�ä˜!Ÿ,™,›.×-Ñ-×.Ô.ØŸ\™\›^�FÙñ	 ÷
 Ø �×-Ñ-Ó/�ð !×*Ð* Fˆä×ÒØØØØô	
ð 	
ùòK 4s   Å	Nri   )	r�   r[  rž  rŸ  r   r¡  r¢  r^  rÅ  s	   ffffffff rk   Úmake_pointwiserÇ  Ü  s%   ÿ€ ðl
 $÷ l
÷ l
ñ l
ð\ €Lrm   Úforeach_node_t)Úboundc               ó(   € V ^8„  d   QhRRRRRRRR/# )	rf   Úpw_fnúCallable[..., foreach_node_t]r   rh   Úscalar_kwargr§   rg   z#Callable[..., list[foreach_node_t]]ri   )rj   s   "rk   rl   rl   ]  s0   € ÷ 8ñ 8Ø(ð8àð8ð ð8ð )ñ	8rm   c                ó.   a aa€ R ^R^/R VV V3R lllpV# )rˆ  r  c               ó    € V ^8„  d   QhRRRR/# )rf   rZ  zlist[list[TensorBox]]rg   úlist[foreach_node_t]ri   )rj   s   "rk   rl   Ú,make_foreach_pointwise.<locals>.__annotate__b  s    € ÷ 1Xñ 1XÐ,ð 1XÐCWñ 1Xrm   c                ó8  <a	€ \        V4      pSR 8X  d=   V'       d5   \        VR,          \         \        34      '       g   VP                  4       o	MSR 8X  d   Vo	MV o	\	        \
        P                  P                  P                  4      ^ 8H  ;'       g>    \
        P                  P                  P                  \        9   ;'       g    \        4       pRpV F#  p\        V\         \        34      '       g   K!  Tp M	  Vf   \        R4      h. pV FT  p\        V\         \        34      '       g%   VP                  V.\	        V4      ,          4       KC  VP                  V4       KV  	  \        \        V!  4      pR V
VVV	3R llp\!        V\	        V4      Wƒ4      # )r  Nz1at least one input must be a list to a foreach opc               ó   € V ^8„  d   QhRR/# )rf   rg   rÈ  ri   )rj   s   "rk   rl   Ú;make_foreach_pointwise.<locals>.inner.<locals>.__annotate__�  s   € ÷ 	$ñ 	$˜nñ 	$rm   c                ó4   <€ S'       d   S! V / SS/B # S! V !  # r¯   ri   )r‡   r   rË  rÍ  Ú
scalar_vals   &€€€€rk   Úapply_fnÚ7make_foreach_pointwise.<locals>.inner.<locals>.apply_fn�  s%   ø€ ßÙ˜dÐA |°ZÐ&@ÑAÐAá˜d‘|Ð#rm   r½  )r|   r~   r±   ÚpoprÜ   rZ   rp   rq   rr   rt   Úinplace_foreach_opsrx   r‚   rƒ   r‹   r   Úforeach_group_loop)rˆ  r  rZ  Úrealize_outputsÚa_list_inputÚinputÚbroadcast_inputsÚgroupsr×  rÖ  r   rË  rÍ  s   $$*      @€€€rk   rÅ  Ú%make_foreach_pointwise.<locals>.innerb  sa  ù€ ô
 �f“ˆà˜GÔ#ßÜ˜v b�z¬D´%¨=×9Ò9ð  Ÿ™›‰JØ˜WÔ$Ø‰JàˆJô ”—‘×$Ñ$×*Ñ*Ó+¨qÑ0÷ 0ð 0Ü�w‰w×#Ñ#×*Ñ*Ô.AÑA÷0ð 0ä-Ó/ð 	ð ˆÛˆEÜ˜%¤$¬ ×/Ô/Ø$�Ùñ ð ÒÜ Ð!TÓUÐUð ÐÛˆEÜ˜e¤d¬E ]×3Ò3Ø ×'Ñ'¨¨´#°lÓ2CÕ(CÖDð !×'Ñ'¨Ö.ñ ô $¤CÐ)9Ñ$:Ó;ˆ÷	$ó 	$ô " &¬#¨lÓ*;¸XÓWÐWrm   ri   )rË  r   rÍ  rÅ  s   fff rk   Úmake_foreach_pointwiserâ  ]  s'   ú€ ð
1X°Að 1X¸Q÷ 1Xô 1Xðf €Lrm   c          
     ó,   € V ^8„  d   QhRRRRRRRRR	R
/# )rf   rà  z0Mapping[tuple[Any, bool], list[tuple[int, Any]]]Únum_outputsrÂ   r×  rÌ  rÜ  rh   rg   rÐ  ri   )rj   s   "rk   rl   rl   ˜  s:   € ÷ $/ñ $/Ø<ð$/àð$/ð ,ð$/ð ð	$/ð
 ñ$/rm   c                ó„  € R.V,          pV P                  4        FÃ  w  w  rVp. pV FŠ  w  ršV! V
4      pW´V	&   \        P                  P                  V\        P
                  4      '       g   KG  V'       g   KQ  V'       g   K[  VP                  4        VP                  VP                  4       4       KŒ  	  V'       g   K¤  \        P                  P                  V4       KÅ  	  \        ;QJ d    R V 4       F  '       d   K   RM	  RM! R V 4       4      '       g   \        R4      h\        \        \        ,          V4      # )aE  
Common loop over grouped foreach arguments.

Args:
    groups: Result of group_foreach_args - dict mapping (device, use_foreach) to groups
    num_outputs: Number of outputs to produce
    apply_fn: Function to apply to each set of args, returns the output
    realize_outputs: Whether to realize outputs for foreach fusion
Nc              3  ó(   "  € T F  qR Jx € K
  	  R # 5ir¯   ri   r@  s   & rk   r  Ú%foreach_group_loop.<locals>.<genexpr>¹  s   é € Ð.¡g ˜�}£gùó   ‚FTú-expected: all(x is not None for x in outputs))r  rZ   rp   Úhas_featureÚBackendFeatureÚFOREACHÚrealizerƒ   Úget_operation_nameÚregister_operation_listrB  r‚   r
   r|   rÈ  )rà  rä  r×  rÜ  Úoutputsr‰   rˆ   ÚgroupÚoperation_listÚ
output_indr‡   rV  s   &&&&        rk   rÛ  rÛ  ˜  sï   € ð -1¨6°KÕ+?€GØ(.¯©®Ñ$Ñˆ˜uØ$&ˆÛ %ÑˆJÙ˜d“^ˆFØ"(�JÑô —‘×#Ñ# F¬N×,BÑ,B×CÔCß‘Kß#‘Oà—‘Ô Ø×%Ñ% f×&?Ñ&?Ó&AÖBñ !&÷ ‰>Ü�G‰G×+Ñ+¨NÖ;ñ )7÷" ‹3Ñ.¡gÓ.�3�3Š3Ñ.¡gÓ.×.Ò.ÜÐLÓMÐMä””^Õ$ gÓ.Ð.rm   Tc               ó(   € V ^8„  d   QhRRRRRRRR/# )rf   r¸   rG   r¿   rÀ   Úcopyrh   r²  ri   )rj   s   "rk   rl   rl   ¿  s2   € ÷ Eñ EØðEØ$ðEØ,0ðEØMQñErm   c                ó–   aaa€ V P                  4       oSS8X  d   V'       d   \        V 4      # T # VVV3R  lp\        VSR7      ! V 4      # )c                óÈ   <€ \         P                  ! V SSSR 7      p\        P                  \        P                  3pS'       g   SV9   d   \         P                  ! VS4      pV# ))Ú	src_dtyper²  )rY   r  r’   rw  rx  )r¸   Úresultr»  r¿   rø  r²  s   &  €€€rk   Ú	_to_dtypeÚto_dtype.<locals>._to_dtypeÆ  sR   ø€ Ü—’ØØØØ/ô	
ˆô —^‘^¤U§]¡]Ð3ˆ	ß  U¨iÔ%7ô —\’\ &¨%Ó0ˆFØˆrm   ©r[  )rÉ   ÚclonerÇ  )r¸   r¿   rõ  r²  rú  rø  s   &f&f @rk   r  r  ¿  sB   ú€ ð —‘“€IØ�EÔßŒu�Q‹xÐ& QÐ&÷ô ˜)¸5ÕAÀ!ÓDÐDrm   c               ó$   € V ^8„  d   QhRRRRRR/# )rf   r¸   rG   r¿   rÀ   rg   ri   )rj   s   "rk   rl   rl   à  s&   € ÷ Hñ H 	ð H°+ð HÀ)ñ Hrm   c                ój   a€ \        V \        P                  4      pV3R  lp\        VSR7      ! V4      # )c           	     óT  <€ \         P                  ! V \        P                  4      p\         P                  ! V\         P
                  ! ^\        P                  4      4      p\         P                  ! \         P                  ! V \         P
                  ! ^ \        P                  4      4      \         P
                  ! R\        P                  4      V4      p\         P                  ! \         P                  ! V \         P
                  ! ^ÿ\        P                  4      4      \         P
                  ! R\        P                  4      V4      p\         P                  ! V\        P                  \        P                  R7      pS\        P                  8w  d   \         P                  ! VS4      # V# )é   i  @ i €)rø  )rY   r  r’   Úint32Úbitwise_left_shiftr�  ÚwhereÚeqÚuint8Úto_dtype_bitcastÚfloat32)r  Ú	value_i32Úf32_bitsÚdequantr¿   s   &   €rk   Ú	_to_floatÚ+_float8_e8m0fnu_to_dtype.<locals>._to_floatã  sü   ø€ ô —L’L ¬¯©Ó4ˆ	Ü×)Ò)¨)´S·\²\À"ÄeÇkÁkÓ5RÓSˆÜ—9’9Ü�FŠF�5œ#Ÿ,š, q¬%¯+©+Ó6Ó7Ü�LŠL˜¤U§[¡[Ó1Øó
ˆô
 —9’9Ü�FŠF�5œ#Ÿ,š, s¬E¯K©KÓ8Ó9Ü�LŠL˜¤U§[¡[Ó1Øó
ˆô
 ×&Ò& x´·±Ì%Ï+É+ÔVˆØ”E—M‘MÔ!Ü—<’< ¨Ó/Ð/Øˆrm   rü  )r  r’   r  rÇ  )r¸   r¿   Úx_u8r  s   &f  rk   Ú_float8_e8m0fnu_to_dtyper  à  s,   ø€ Ü˜AœuŸ{™{Ó+€Dõô( ˜)¸5ÕAÀ$ÓGÐGrm   r~  c                ó„  € ^RI Hp TpV P                  pV! V\        P                  R7      p\        P
                  ! V4      ;_uu_ 4        VP                  ! V!   RRR4       VP                  pV'       g   \        R4      h\        V4      pR.\        V4      ,          p	VP                  4        F²  w  w  r«p. pV Fy  w  ppWùV&   \        P                  P                  V
\        P                  4      '       g   K@  V'       g   KJ  VP                  4        VP!                  VP#                  4       4       K{  	  V'       g   K“  \        P                  P%                  V4       K´  	  \&        ;QJ d    R V	 4       F  '       d   K   RM	  RM! R V	 4       4      '       g   \        R4      hV	#   + '       g   i     EL[; i)	a)  
This lowers an invocation of foreach_map
The way this works is that an arbitrary N-arg func is provided by the user, looped over by the
polyfill with the same semantics as a foreach op (a loop applying an n-ary function to n args)
and then traced into a subgraph by dynamo.
This code allows us to inline the subgraph into the main graph lowering using the PontwiseSubgraphLowering.
The graph outputs represent the vertically fused sequence of ops, and then register_operation_list
below registers the buffers as horizontally fuseable in the scheduler.
)ÚPointwiseSubgraphLowering)Úroot_graph_loweringNzexpected: sub_outputsc              3  ó(   "  € T F  qR Jx € K
  	  R # 5ir¯   ri   r@  s   & rk   r  Ú_foreach_map.<locals>.<genexpr>$  s   é € Ð/¡w !˜•£wùrè  FTré  )Úsubgraph_loweringr  Úgraph_modulerZ   rp   Úset_graph_handlerÚrunÚgraph_outputsr‚   r‹   rÜ   r  rê  rë  rì  rí  rƒ   rî  rï  rB  )Úsubgraphr‡   r  r  rZ  ÚgmÚpw_subgraphÚsub_outputsrà  rð  r‰   rˆ   rñ  rò  ró  rV  s   &*,             rk   Ú_foreach_mapr  ú  sU  € õ =à€Fà	×	Ñ	€BÙ+¨BÄAÇGÁGÔL€KÜ	
×	Ò	˜[×	)Õ	)Ø�Š˜Ò ÷ 
*ð ×+Ñ+€KçÜÐ4Ó5Ð5Ü Ó,€Fàˆf”s˜;Ó'Õ'€GØ(.¯©®Ñ$Ñˆ˜uØ$&ˆó ñ
ØØà"(�JÑä�w‰w×"Ñ" 6¬>×+AÑ+A×BÔBÇ{Á{Ø—‘Ô Ø×%Ñ% f×&?Ñ&?Ó&AÖBñ ÷ ‰>Ü�G‰G×+Ñ+¨NÖ;ñ )7÷ ‹CÑ/¡wÓ/�C�CŠCÑ/¡wÓ/×/Ò/ÜÐLÓMÐMØ€N÷7 
*×	)Ð	)ús   ÁF.Æ.F?	c               ó    € V ^8„  d   QhRRRR/# ©rf   r¸   rG   r¿   rÀ   ri   )rj   s   "rk   rl   rl   *  s   € ÷ Nñ N˜Yð N¨{ñ Nrm   c                ón  € VP                   '       g!   V P                  4       P                   '       do   V P                  4       '       d.   \        WR 7      p\        P
                  P                  W 4       V# \        \        P                  P                  RR7      ! W4      # V P                  4       pV\        P                  8X  d   V\        9   d   \        W4      # \        P                  \        P                   3p\"        P$                  ;'       d    W49   ;'       g    W9   '       * p\'        WRVR7      # )rÄ   F©Úadd_to_fallback_setT)rõ  r²  )Ú
is_complexrÉ   rÝ   Ú
empty_liker6   ÚInplaceCopyFallbackrü   Úfallback_handlerÚprimsÚconvert_element_typeÚdefaultr’   Úfloat8_e8m0fnuÚ_FLOAT8_E8M0FNU_TO_FLOAT_DTYPESr  rw  rx  r4   r¹  r  )r¸   r¿   Údstrø  r»  r²  s   &&    rk   Ú_convert_element_typer.  )  sõ   € à××Ð˜1Ÿ;™;›=×3×3Ð3Ø�:‰:�<Š<ô ˜QÔ,ˆCÜ×"Ñ"×)Ñ)¨#Ô1ØˆJä#Ü×*Ñ*×2Ñ2Èõàóð ð —‘“€IØ”E×(Ñ(Ô(¨UÔ6UÔ-UÜ'¨Ó1Ð1ä—‘¤§¡Ð/€Iô 	×&Ñ&÷ 	;ð 	;ØÑ#×9Ð9 uÑ'9ôÐô �A 4Ð;LÔMÐMrm   rõ  c               ó    € V ^8„  d   QhRRRR/# r   ri   )rj   s   "rk   rl   rl   D  s   € ÷ 5ñ 5˜	ð 5¨+ñ 5rm   c               óX  € V P                  4       pW18X  d   V'       d   \        V 4      # T # R  pV! V4      pV! V4      pWV8w  dI   \        P                  P	                  V 4      p\        \        P                  P                  4      ! Wq4      # \        \        P                  ! W4      4      # )c                óÔ   € V P                   '       d!   \        P                  ! V 4      P                  # V \        P                  8X  d   ^# \        P
                  ! V 4      P                  # ©é   )r¾  r’   ÚfinfoÚbitsrh   ÚiinforÄ   s   &rk   Ú_get_primitive_bitwidthÚ1to_dtype_bitcast.<locals>._get_primitive_bitwidthI  sG   € Ø×"×"Ð"Ü—;’;˜uÓ%×*Ñ*Ð*Ø”e—j‘jÔ áä—;’;˜uÓ%×*Ñ*Ð*rm   )rÉ   rý  r6   ÚExternKernelr    r'  ÚatenÚviewr¿   rG   r;   rü   )r¸   r¿   rõ  Úx_dtyper7  Úsrc_bitsÚdst_bitsÚx_conts   &&$     rk   r  r  D  s‡   € Ø�k‰k‹m€GØÔßŒu�Q‹xÐ& QÐ&ò+ñ ' wÓ/€HÙ& uÓ-€HØÔä—‘×;Ñ;¸AÓ>ˆÜ¤§	¡	§¡Ô0°Ó?Ð?äœ×)Ò)¨!Ó3Ó4Ð4rm   c               ó    € V ^8„  d   QhRRRR/# r   ri   )rj   s   "rk   rl   rl   ]  s   € ÷ &ñ &�9ð & [ñ &rm   c                ó<  € VP                   '       g!   V P                  4       P                   '       da   \        P                  ! \        P
                  P                  \        P                  P                  P                  P                  W4      4      # \        W4      # r¯   )r$  rÉ   rG   rü   r6   ÚComplexViewr’   rY   r:  r;  r¿   r  rh  s   &&rk   Ú_view_dtyperC  \  sg   € à××Ð˜1Ÿ;™;›=×3×3Ð3Ü×ÒÜ�N‰N×!Ñ!¤%§)¡)§.¡.×"5Ñ"5×";Ñ";¸QÓFó
ð 	
ô ˜AÓ%Ð%rm   Únon_blockingc               ó    € V ^8„  d   QhRRRR/# ©rf   r¸   rG   r‰   ró   ri   )rj   s   "rk   rl   rl   e  s   € ÷ Kñ K�ð K Lñ Krm   c               óÔ   € \        V4      pV P                  4       V8X  d   V'       d   \        V 4      # T # \        P                  ! \
        P                  P	                  WV4      4      # r¯   )rL   r�   rý  rG   rü   r6   rû   )r¸   r‰   rõ  rD  s   &&$$rk   Ú	to_devicerH  e  sM   € Ü˜6Ó"€FØ‡|�|ƒ~˜ÔßŒu�Q‹xÐ& QÐ&Ü×ÒœBŸM™M×0Ñ0°¸LÓIÓJÐJrm   c               ó    € V ^8„  d   QhRRRR/# rF  ri   )rj   s   "rk   rl   rl   m  s   € ÷ Fñ F�9ð F lñ Frm   c                ó   € \        WR VR7      # )T)rõ  rD  )rH  )r¸   r‰   rD  s   &&&rk   Ú_device_putrK  l  s   € ä�Q T¸ÔEÐErm   c           
     ó<  € T;'       g    V P                   p\        V4      p\        WV4       Ve   \        V4      p\        VVVVVV	V
R7      p\	        V VVVR7      ! V4      p\        \        V4      '       d#   \	        \        \        V4      RVR7      ! V4       V# )z3A pointwise function that maps ops.{name} to inputsN)r[  rŸ  r   r¡  r¢  r^  )r  rÔ   r  )rÔ   r  )Ú__name__rB   rU   rÇ  rJ  r  r(  rÀ  )rè   rð   r  rÔ   r  r[  rŸ  r   r¡  r¢  r^  r�   s   &&&&&&&&&&& rk   Úregister_pointwiserN  q  s¼   € ð ×#Ð#�7×#Ñ#€DÜ	�TÓ	€Bä'ØÐ#8ôð #Ò.Ü&1Ð2MÓ&NÐ#ä	Ø
Ø3Ø$?ØØ+Ø'Ø&Cô
€Bô 
ØØØ/Ø3õ	
ð
 	ó

€Bô Œu�d×ÒÜÜ”E˜4Ó Ø $Ø"7õ	
ð ô		ð
 €Irm   Úldexp)rÔ   r[  )r  rÔ   c               ó    € V ^8„  d   QhRRRR/# )rf   r¸   rG   Únri   )rj   s   "rk   rl   rl   ª  s   € ÷ ñ �ið  Iñ rm   c                ó’  aa	€ \        R 4      oV P                  4       pVP                  4       pVP                  pVP                  '       * ;'       d    V\        P                  8g  pV'       d    V'       d   V3R lp\        V4      ! W4      # \        V 4      '       d   \        P                  MTo	V	3R lp\        VS	R7      ! W4      # )rO  c                ó   <€ S! W4      # r¯   ri   )r¸   rQ  Úldexp_fns   &&€rk   Úcompute_ldexpÚ%ldexp_lowering.<locals>.compute_ldexpµ  s   ø€ Ù˜A“>Ð!rm   c                ó¸   <€ \         P                  ! VS4      p\         P                  ! R S4      p\         P                  ! W24      p\         P                  ! W4      # )g       @)rY   r  r�  Úpowr¿  )r¸   rQ  Ú
n_out_typeÚtwoÚ
pow_resultÚ	out_dtypes   &&   €rk   Úcompute_fallbackÚ(ldexp_lowering.<locals>.compute_fallback½  s@   ø€ ÜŸš a¨Ó3ˆJÜ—,’,˜s IÓ.ˆCÜŸš Ó1ˆJÜ—7’7˜1Ó)Ð)rm   rü  )rB   rÉ   r¾  r’   rh   rÇ  rÎ   r  )
r¸   rQ  r<  Ún_dtypeÚ
x_is_floatÚn_is_intrU  r]  rT  r\  s
   &&      @@rk   Úldexp_loweringrb  ©  s¤   ù€ ä˜7Ó#€Hà�k‰k‹m€GØ�k‰k‹m€Gà×*Ñ*€JØ×,Ñ,Ô,×FÐF°¼E¿J¹JÑ1F€Hç—hõ	"ô ˜mÔ,¨QÓ2Ð2ô &5°Q×%7Ò%7”E—M’M¸Wˆ	õ	*ô ØØ"+õ
ð óð 	rm   c                 ó@  aa€ Rp \        R4      oV3R lpV3R lp\        V4      \        V\        P                  R7      .oV3R lp\	        \
        P                  4      ! V4      p\        \        V 4      '       d"   \	        \        \        V 4      RR7      ! V4       V# )z2A pointwise function that maps ops.frexp to inputsÚfrexpc                 ó"   <€ S! V / VB ^ ,          # ©r   ri   ©r‡   r  rd  s   *,€rk   Úfrexp0Úregister_frexp.<locals>.frexp0Î  ó   ø€ Ù�dÐ%˜fÑ% aÕ(Ð(rm   c                 ó"   <€ S! V / VB ^,          # ©rÚ   ri   rg  s   *,€rk   Úfrexp1Úregister_frexp.<locals>.frexp1Ñ  rj  rm   rü  c                 ó@   <€ S^ ,          ! V / VB S^,          ! V / VB 3# rf  ri   )r‡   r  Úpw_fnss   *,€rk   r�   Úregister_frexp.<locals>.fnÙ  s*   ø€ Ø�aŽy˜$Ð) &Ñ)¨6°!®9°dÐ+E¸fÑ+EÐEÐErm   Nr~  )
rB   rÇ  r’   r  rJ  r:  rd  r  r(  rÀ  )rð   rh  rm  r�   rd  rp  s       @@rk   Úregister_frexprr  É  s‘   ù€ à€DÜ˜Ó €Eõ)õ)ô 	�vÓÜ�v´U·[±[ÔAð€Fõ
Fô 
Ü�
‰
ô
àó

€Bô Œu�d×ÒÜÜ”E˜4Ó Ø $õ	
ð ô	ð €Irm   c                ó6   € \        WVR 7      p\        W4      pV# )©r   rÍ  )râ  r6  )rè   Úpointwise_lowering_fnr   rÍ  r�   s   &&&& rk   Úregister_foreach_pointwiserv  ë  s$   € ô 
 ØÀ\ô
€Bô 
$ GÓ	0€BØ€Irm   c           
     óŒ  € R  p\        V\        \        34      '       d   \        V4      ! V4      p\        V\        \        34      '       d   \        V4      ! V4      pWV.p\	        V^,          V^,          \
        P                  R7      p\        V4       UUu. uF  w  rg\        V\        4      '       g   K  VNK!  	  ppp\        T\        V Uu. uF  qdV,          NK  	  up!  4       F	  w  rgWtV&   K  	  \        \        V4      4       Fn  p\        WF,          \        P                  4      '       g   K+  \        P                   ! WF,          \#        WH^ ,          ,          P%                  4       4      4      WF&   Kp  	  \'        W5R7      ! V^ ,          \)        V^,          V4      \)        V^,          V4      4      # u uppi u upi )c                 ó*   € \         P                  ! V !  # r¯   )rY   r  ©r‡   s   *rk   r�   Úwhere.<locals>.fnú  s   € Ü�yŠy˜$ÑÐrm   r~  rü  )r~   ra  rÂ   Úconstant_likeræ   r   ru  r}   rG   r   r  r!  rÜ   r6   r  r<   rü   r|   rÝ   rÇ  r  )	r¥   r
  rU  r�   r‡   r¿   r†   r¸   Úindicess	   &&&      rk   r  r  ø  s\  € ò ô �!”eœS�\×"Ò"Ü˜!Ô˜QÓˆÜ�!”eœS�\×"Ò"Ü˜!Ô˜QÓˆà�Qˆ<€DÜØˆQ���a•Ô.M×.UÑ.Uô€Eô ' tœ_ÔI™_‘T�Q´
¸1¼i×0H�qˆq™_€GÑIÜ�GÔ.Á'Ó0JÁ'¸Q°a·°Á'Ñ0JÑKÖL‰ˆØˆQ‹ñ Mä”3�t“9ÖˆÜ�d•gœrŸ{™{×+Ô+Ü ×'Ò'¨­´°dÀ1½:Õ6F×6OÑ6OÓ6QÓ1RÓSˆD‹Gñ ô ˜"Õ:ØˆQ�”˜$˜q�' 5Ó)¬8°D¸µG¸UÓ+Cóð ùó JùÚ0Js   ÂF;Â9F;ÃGc                 ó.  € \        V 4      ^8X  d6   \        V ^ ,          \        \        34      '       d   \	        V ^ ,          !  # V # \
        P                  ! \        R V  4       R4      p. pV  F¤  p\        VP                  4       4      ;qA8X  d   Mp\        V4      \        V4      8w  gM   \        ;QJ d%    R \        WA4       4       F  '       g   K   RM	  RM! R \        WA4       4       4      '       d   \        W14      pVP                  V4       K¦  	  V# )rÚ   c              3  ó@   "  € T F  qP                  4       x € K  	  R # 5ir¯   )rÝ   r@  s   & rk   r  Ú$broadcast_tensors.<locals>.<genexpr>  s   é € Ð#A¹&°Q§J¡J§L L»&ùó   ‚c              3  óÌ   "  € T FZ  w  r\         P                  P                  P                  V4      \         P                  P                  P                  V4      8g  x € K\  	  R # 5ir¯   )rZ   rp   r÷   rQ  ©r	  r
  rU  s   &  rk   r  r    sM   é € ð .
ñ +‘�ô �G‰G×Ñ×1Ñ1°!Ó4Ü�w‰w×Ñ×4Ñ4°QÓ7ö8ã*ùs   ‚A"A$TFri   )rÜ   r~   r|   r±   r  r1  ÚreducerX  rÝ   rC  r   rS  rƒ   )rZ  rt   rð  r¸   Úsizess   *    rk   r  r    sé   € ä
ˆ6ƒ{�aÔÜ�f˜Q•i¤$¬ ×/Ò/Ü$ f¨Q¥iÑ0Ð0ØˆÜ(×/Ò/Ü!Ñ#A¹&Ó#AÀ2ó €Fð €GÛˆÜ˜1Ÿ:™:›<Ó(Ð(ˆEÔ3Øä�‹Zœ3˜v›;Ô&¯#«#ñ .
ô ˜EÔ*ó.
¯#¯#ª#ñ .
ô ˜EÔ*ó.
÷ +
ò +
ô
 �qÓ!ˆAØ�‰�qÖñ ð €Nrm   c                ó   € V # r¯   ri   rÍ   s   &rk   Únopr†  )  s   € à€Hrm   Ú
lift_freshc                óf  € \        V \        4      '       g   \        R 4      hVf*   \        \        P                  ! V P
                  4      4      # \        V\        \        P                  34      '       d*   \        P                  P                  P                  V4      M+\        ;QJ d    . R V 4       F  NK  	  5M! R V 4       4      p\        \        V P!                  4       4      V4      p\#        \        V\        4      '       g   V3MT4      p. p\%        V P!                  4       4       Fb  w  rEWB9   dG   \        P                  P                  P'                  \        P(                  ! V^4      4      '       d   KQ  VP+                  V4       Kd  	  W0P!                  4       8w  d   \-        W4      # T # )ú"expected: isinstance(x, TensorBox)c              3  ót   "  € T F.  p\         P                  P                  P                  V4      x € K0  	  R # 5ir¯   )rZ   rp   r÷   Ú	guard_int©r	  Úds   & rk   r  Úsqueeze.<locals>.<genexpr><  s(   é € Ð>¹#°Q”1—7‘7×#Ñ#×-Ñ-¨a×0Ð0»#ùs   ‚68)r~   rG   r‚   rF   rü   r€   rÂ   rÊ   rË   rZ   rp   r÷   r‹  r±   r   rÜ   rÝ   r*   r}   Úguard_or_falseÚEqrƒ   r;  )r¸   rß   ÚdimsÚ	new_shaper�  Úss   &&    rk   Úsqueezer”  2  s0  € ä�qœ)×$Ò$ÜÐAÓBÐBØ
‚{Üœ×+Ò+¨A¯F©FÓ3Ó4Ð4ô �cœC¤§¡Ð,×-Ò-ô 	
�‰×Ñ×"Ñ" 3Ô'çŒUÑ>¹#Ó>�U‰UÑ>¹#Ó>Ó>ð ô
 œC §
¡
£Ó-¨sÓ
3€CÜ¤J¨s´E×$:Ò$:�s‘fÀÓD€Dà€IÜ˜!Ÿ*™*›,Ö'‰ˆØ”	œaŸg™g×.Ñ.×=Ñ=¼e¿hºhÀqÈ!»n×MÔMØ×Ñ˜QÖñ (ð
 "+¯j©j«lÔ!:Œ4�ÓÐAÀÐArm   c                ó*   € \        \        W4      4      # r¯   )rý  r”  )r¸   rß   s   &&rk   Úsqueeze_copyr–  J  s   € ä”˜“Ó!Ð!rm   c                óÂ   € \        W4      p\        V \        4      '       g   \        R 4      h\        V\        4      '       g   \        R4      hVP                  V n        V # ©r‰  z$expected: isinstance(val, TensorBox))r”  r~   rG   r‚   r€   ©r¸   rß   Úvals   && rk   Úsqueeze_r›  O  sM   € ä
�!‹/€CÜ�qœ)×$Ò$ÜÐAÓBÐBÜ�sœI×&Ò&ÜÐCÓDÐDØ�X‰X€A„FØ€Hrm   c                ó´   € \        V 4      '       d   \        V R \        P                  R7      # \	        R4      p\        V\        P                  R7      ! V 4      # )FrÄ   Úisinfrü  ©rÎ   Ú	full_liker’   rh   rB   rÇ  ©r¸   r�   s   & rk   r�  r�  Z  ó@   € ä�q×ÒÜ˜˜E¬¯©Ô4Ð4Ü	�WÓ	€BÜ˜"´E·J±JÕ?ÀÓBÐBrm   c                ó´   € \        V 4      '       d   \        V R \        P                  R7      # \	        R4      p\        V\        P                  R7      ! V 4      # )FrÄ   Úisnanrü  rž  r   s   & rk   r£  r£  b  r¡  rm   c                ór   € \        V 4      '       d   \        V 4      # \        R 4      p\        V4      ! V 4      # )Úceil©rÎ   rý  rB   rÇ  r   s   & rk   r¥  r¥  j  s0   € ä�q×ÒÜ�Q‹xˆÜ	�VÓ	€BÜ˜"Ô˜aÓ Ð rm   c                ór   € \        V 4      '       d   \        V 4      # \        R 4      p\        V4      ! V 4      # )Úfloorr¦  r   s   & rk   r¨  r¨  r  ó0   € ä�q×ÒÜ�Q‹xˆÜ	�WÓ	€BÜ˜"Ô˜aÓ Ð rm   c                ór   € \        V 4      '       d   \        V 4      # \        R 4      p\        V4      ! V 4      # )Úroundr¦  r   s   & rk   r«  r«  z  s0   € ä�q×ÒÜ�Q‹xˆä˜Ó!ˆÜ˜bÔ! !Ó$Ð$rm   c                ór   € \        V 4      '       d   \        V 4      # \        R 4      p\        V4      ! V 4      # )Útruncr¦  r   s   & rk   r­  r­  ƒ  r©  rm   Úimplicitc               óÀ  € ?\        V .4      w  p \        V \        P                  4      '       d!   \        P
                  ! V \        V4      4      # \        V \        4      '       g   \        R 4      h\        V\        \        34      '       g   \        R4      h\        V P                  4       4      \        V4      8X  d   V # \        V P                  4       4      '       gÎ   \        P                  P                  P                  \!        V P                  4       4      4      pV^ 8”  d‡   \        V4      '       gv   T P#                  \        P                  P                  P                  \!        V4      4      V,          \$        P&                  ;'       g    \(        P*                  ! 4       R7       \        \        P
                  ! V P,                  \        V4      4      4      # )r‰  z*expected: isinstance(sizes, (list, tuple)))Úgraph_reuse)r|  r~   r6   r[   r<   rü   r±   rG   r‚   r|   rÝ   r&   rZ   rp   r÷   Úguarding_hint_or_throwrW   Ú
mark_reuser4   Údeterministicr’   Ú$are_deterministic_algorithms_enabledr€   )r¸   r„  r®  Úx_size_products   &&$ rk   rS  rS  ‹  sX  € ð 	Ü˜a˜SÓ!�D€QÜ�!”R—_‘_×%Ò%Ü× Ò  ¤E¨%£LÓ1Ð1Ü�qœ)×$Ò$ÜÐAÓBÐBÜ�uœt¤U˜m×,Ò,ÜÐIÓJÐJÜˆQ�Z‰Z‹\Óœe E›lÔ*Øˆä  §¡£×.Ò.ÜŸ™×)Ñ)×@Ñ@Ü˜!Ÿ*™*›,Ó'ó
ˆð ˜AÔÔ&;¸E×&BÒ&Bð
 �L‰LÜ—‘× Ñ ×7Ñ7¼ÀeÓ8LÓMØ!õ"ä"×0Ñ0÷ @ð @Ü×=Ò=Ó?ð	 ô ô ”Z×&Ò& q§v¡v¬u°U«|Ó<Ó=Ð=rm   c                óœ   € \        V4      pV F  pRW4&   K	  	  T p\        V4       F  w  rgVR8w  g   K  \        WV4      pK  	  \        WQ4      # ©rÚ   r½  )r|   r}   Ú	unsqueezerS  )r
  ÚshapeÚbroadcast_dimensionsr“  Úbroadcast_dimensionr#  rƒ  r¸   s   &&&     rk   Úbroadcast_in_dimr¼  ²  sS   € äˆU‹€AÛ3ÐØ!#ˆÓñ  4ð 	
€AÜ˜A–,‰ˆØ�Ž7Ü˜!Ó!ŠAñ ô �!ÓÐrm   c                ó4   € \        WP                  4       4      # r¯   )rS  rÝ   )r¸   rW  s   &&rk   Ú	expand_asr¾  À  s   € ä�!—Z‘Z“\Ó"Ð"rm   c                óT  aaa€ \        V P                  4       4      o\        S4      \        S4      8”  dX   \        P                  P
                  .\        S4      \        S4      ,
          ,          S,           o\        V \        S4      4      p \        S4      \        V P                  4       4      8w  d   \        R 4      h\        V P                  4       4      pRp\        \        S4      4       F+  pSV,          ^ 8X  d   RpW$,          SV,          ,          W$&   K-  	  V'       d*   \        W P                  4       V P                  4       R7      # \        ;QJ d&    R \        SS4       4       F  '       d   K   RM	  RM! R \        SS4       4       4      '       d   \        \        W4      4      # VVV3R lp\!        S4      '       g“   \!        V4      '       g‚   \"        P$                  P&                  P)                  \+        S4      4      pV^ 8”  dI   V P-                  \"        P$                  P&                  P)                  \+        V4      4      V,          4       V P/                  4       o\0        P2                  ! V P                  4       V P                  4       V\        V4      R7      # )z+expected: len(repeats) == len(x.get_size())FT©r¿   r‰   c              3  óJ   "  € T F  w  rV^8H  ;'       g    V^8H  x € K  	  R# 5i©rÚ   Nri   r‚  s   &  rk   r  Úrepeat.<locals>.<genexpr>Ø  s'   é € Ð
AÑ*@¡$ !ˆA�‰F×Ð�a˜1‘fÔÓ*@ùs   ‚#•#c                óX  <€ \        V 4      \        S4      8w  d   \        R 4      h\        V 4      p \        \        S4      4       F[  pSV,          ^8w  g   K  SV,          ^8X  d   \        P
                  P                  W&   K?  \        W,          ^SV,          4      W&   K]  	  S! V 4      # )z$expected: len(index) == len(repeats))rÜ   r‚   r|   r!  rÊ   rO  ÚZeror1   )rg  r†   Úold_sizeÚrepeatsÚx_loaders   & €€€rk   rŠ  Úrepeat.<locals>.inner_fnÝ  sƒ   ø€ Üˆu‹:œ˜W›Ô%Ü Ð!GÓHÐHÜ�U“ˆÜ”s˜7“|Ö$ˆAØ�q�z˜QŽØ˜A•; !Ô#Ü$Ÿw™wŸ|™|�E“Hä.¨u­x¸¸HÀQ½KÓH�E“Hñ %ñ ˜‹Ðrm   rŒ  )r|   rÝ   rÜ   rÊ   rO  rP  r;  r‚   r!  ÚemptyrÉ   r�   rB  r   rý  rS  r&   rZ   rp   r÷   r±  rW   r²  rŽ  rD   rü   )	r¸   rÇ  Únew_sizeÚzero_tensorr†   rŠ  Úold_size_productrÆ  rÈ  s	   &f     @@rk   ÚrepeatrÎ  Å  sÜ  ú€ ä�A—J‘J“LÓ!€HÜ
ˆ7ƒ|”c˜(“mÔ#Ü—G‘G—K‘K�=¤C¨£L´3°x³=Õ$@ÕAÀHÕLˆÜ�”D˜“NÓ#ˆÜ
ˆ7ƒ|”s˜1Ÿ:™:›<Ó(Ô(ÜÐJÓKÐKä�A—J‘J“LÓ!€Hà€KÜ”3�w“<Ö ˆØ�1�:˜Œ?ØˆKØ•k G¨A¥JÕ.ˆ‹ñ !÷
 Ü�X§[¡[£]¸1¿<¹<»>ÔJÐJß
ƒsÑ
A¬#¨g°xÔ*@Ó
A‡s‡s‚sÑ
A¬#¨g°xÔ*@Ó
A×AÒAÜ”V˜AÓ(Ó)Ð)÷
ô ! ×*Ò*Ô3HÈ×3RÒ3RÜŸ7™7×+Ñ+×BÑBÜ˜(Ó#ó
Ðð ˜aÔð �L‰LÜ—‘× Ñ ×7Ñ7¼ÀhÓ8OÓPØ#õ$ôð
 �}‰}‹€HÜ×ÒØ�|‰|‹~Ø�k‰k‹mØÜ�H‹~ô	ð rm   c               ó$   € V ^8„  d   QhRRRRRR/# )rf   r¸   ú	ir.IRNoder„  úSequence[sympy.Expr]rg   rG   ri   )rj   s   "rk   rl   rl     s"   € ÷ /ñ /ˆIð /Ð2ð /°yñ /rm   c                óˆ   € \        V \        4      '       d   V P                  MT p\        \        P                  ! W!4      4      # r¯   )r~   rG   r€   rI   rü   )r¸   r„  r€   s   && rk   r;  r;  ÿ  s/   € ô   ¤9×-Ò-ˆ1�6Š6°1€DÜ”T—[’[ Ó-Ó.Ð.rm   c                óø   € \        V \        4      '       g   \        R 4      h\        V\        \        34      '       g   \        R4      h\        \
        P                  ! V P                  \	        V4      4      4      # )r‰  z)expected: isinstance(dims, (list, tuple)))r~   rG   r‚   r|   r±   rC   rü   r€   )r¸   r‘  s   &&rk   ÚpermuterÔ  	  sX   € ä�qœ)×$Ò$ÜÐAÓBÐBÜ�tœd¤E˜]×+Ò+ÜÐHÓIÐIÜ”[×'Ò'¨¯©´°d³Ó<Ó=Ð=rm   c                óŒ  € ^ RI HpHp \        P                  P
                  pT! \        P                  P                  P                  Ve   VP                  P                  R/ 4      M/ 4      pRRr©V'       dË   \        V4      ^8”  d   \        V4      hVP                  4        F<  w  r¼WÅ! R4      \        P                  ! V 4      38X  d   Tp	K+  WÅ! R4      38X  g   K:  Tp
K>  	  V	e\   \        P                   ! W‘W#V4      p\        P                  P#                  V4      Vn        \        P                  P'                  V4       Wš3# )aP  Register DynamicSliceSize for any unbacked size bindings on the current FX node.

Unbacked symbols may have been allocated at trace time of the slice
that inductor must define so the assertion
new_unbacked_defs >= renamed_unbacked_bindings passes in run_node.

Returns (sym_size, sym_storage) parsed from the bindings, or (None, None).
)ÚCallMethodKeyr(   NÚunbacked_bindingsrý   Ústorage_offset)Ú%torch.fx.experimental.symbolic_shapesrÖ  r(   rZ   rp   rq   r÷   Ú	shape_envr“  r”  rÜ   r‚   r  r•  ÚSequenceKeyr6   ÚDynamicSliceSizeÚregister_bufferrð   Úregister_operation)rß   ÚstartÚendÚsteprý   rÖ  r(   rq   Únode_unbacked_bindingsÚsym_sizeÚsym_storageÚsymÚkeypathÚb_sizes   &&&&&         rk   Ú&_register_unbacked_slice_size_bindingsrè    s  € ÷ô —7‘7×'Ñ'€LÙ6Ü	�‰×Ñ×"Ñ"àÒ#ð 	×Ñ×ÑÐ1°2Ô6àó	Ðð ! $ˆkßÜÐ%Ó&¨Ô*Ü Ð!7Ó8Ð8Ø2×8Ñ8Ö:‰LˆCØ˜=¨Ó0´&×2DÒ2DÀSÓ2IÐJÔJØ’Ø˜]Ð+;Ó<Ð>Ö>Ø!’ñ	 ;ð
 ÒÜ×(Ò(¨¸#ÀTÓJˆFÜŸ'™'×1Ñ1°&Ó9ˆFŒKÜ�G‰G×&Ñ& vÔ.ð Ð Ð rm   c           	     óP  € V f   V# \         P                  P                  P                  p\        P
                  ! V 4      p \        P
                  ! V4      pV! \        P                  ! \        P                  ! V ^ 4      \        P                  ! W4      4      4      '       d   V # V! \        P                  ! \        P                  ! V ^ 4      \        P                  ! W) 4      4      4      '       d	   W,           # V! \        P                  ! W4      4      '       d   V# V! \        P                  ! W) 4      4      '       d   ^ # V! \        P                  ! V ^ 4      4      '       d   \        W4      # V! \        P                  ! V ^ 4      4      '       d   \        W,           ^ 4      # R # r¯   )rZ   rp   r÷   r�  rÊ   rS  ÚAndÚGeÚLeÚLtÚGtr/   r.   )rg  rý   r*  Úguards   &&& rk   Ú_compute_slice_indexrð  >  s  € Ø‚}Øˆä�G‰G×Ñ×+Ñ+€EÜ�LŠL˜Ó€EÜ�<Š<˜Ó€DÙŒU�YŠY”u—x’x  qÓ)¬5¯8ª8°EÓ+@ÓA×BÒBØˆÙ	Œu�yŠyœŸš %¨Ó+¬U¯XªX°e¸UÓ-CÓD×	EÒ	EØ�|ÐÙ	Œu�xŠx˜Ó$×	%Ò	%ØˆÙ	Œu�xŠx˜˜uÓ%×	&Ò	&ÙÙ	Œu�xŠx˜˜qÓ!×	"Ò	"ä�5ÓÐÙ	Œu�xŠx˜˜qÓ!×	"Ò	"ä�5•< Ó#Ð#Ùrm   c                óÜ   € \         P                  P                  P                  W4      '       d   V # \         P                  P                  P	                  W4      '       d   V# \        W4      # r¯   )rZ   rp   r÷   Ústatically_known_geqÚstatically_known_leqr.   )rà  rß  s   &&rk   Ú_clamp_slice_end_to_startrô  V  sL   € Ü‡w�w×Ñ×,Ñ,¨S×8Ò8Øˆ
Ü‡w�w×Ñ×,Ñ,¨S×8Ò8ØˆÜˆs‹?Ðrm   c                óŠ  € \        V \        4      '       g   \        R4      h\        W^ 4      pV P	                  4       V,          p\
        P                  ! V4      p\        V\
        P                  4      '       g   V^ 8”  g   \        V4      h V^ 8X  dW   \        P                  P                  P                  Wc4      '       d(   V^8X  d!   \        WW4V4      w  rxVe   \        R4      hV # RRr©TpT'       dj   \        Y&^ 4      p	TeB   \        P                  P                  P                  T\         P"                  4      '       d   Tp
M\        Y6T4      p
T	e	   T
e   Yšr2RpT'       gU   \        YY4T4      w  rxTe   \        R4      h\        \$        P&                  P)                  T P*                  YY4TR7      4      # T'       g   \        R4      hT	e   T
e   \        R4      h\        YY4T P	                  4       T,          4      w  rÈTf   \        R	4      hT P-                  4       f   T P/                  4        T P1                  4       pT	ew   Te   \        R
4      hTf5   \        \$        P&                  P3                  T P*                  YYÄ4      4      # T P5                  4       P6                  Y�T,          ,          ,           pM£Tf   \        R4      h\$        P8                  ! TTT P5                  4       P6                  YÑ,          T P	                  4       T,          RR7      p\        P                  P;                  T4      Tn        \        P                  P?                  T4       Tp\A        T P	                  4       4      p\A        T4      pTTT&   TT;;,          T,          uu&   \C        T TTTRR7      #   \         d     ELÖi ; i)zù
Lowers a slice call, creating ExternKernels for the output size & storage offset symbols,
if the indices are unbacked and appropriate semantics aren't known.
If they are known (indices are static/backed/unbacked with info), a SliceView is created.
r‰  Nz:Unexpected storage_offset unbacked binding for no-op sliceFzWUnexpected storage_offset unbacked binding when both start and end indices are resolved©Úclampzexpected: clampz2expected: start_index is None or end_index is Nonezexpected: sym_size is not Nonezexpected: sym_storage is Nonezexpected: stride is not NoneT©Ú(storage_offset_relative_to_input_storage)"r~   rG   r‚   Ú_validate_dimrÝ   rÊ   rS  rË   rZ   rp   r÷   ró  rè  Ú	TypeErrorrð  Ústatically_known_equalsÚsysÚmaxsizer6   Ú	SliceViewrü   r€   Úmaybe_get_layoutrí  Úmaybe_get_strideÚcreate_with_sizeÚ
get_layoutÚoffsetÚDynamicSelectStorageOffsetrÝ  rð   rÞ  r|   Ú
as_strided)r¸   rß   rß  rà  rá  r÷  rý   Ú_rä  Ústart_indexÚ	end_indexÚambiguous_slicerã  ÚstrideÚnew_storage_offsetÚ	b_storageÚ	new_sizesÚnew_stridess   &&&&&&            rk   Úslice_r  ^  s^  € ô �qœ)×$Ò$ÜÐAÓBÐBÜ
˜ Ó
"€CØ�:‰:‹<˜Õ€DÜ�<Š<˜Ó€DÜ�tœUŸZ™Z×(Ò(¨D°1¬HÜ˜TÓ"Ð"ðà�QŒJÜ—‘× Ñ ×5Ñ5°d×@Ò@Ø˜”	äCØ˜C tó‰NˆAð Ò&Ü$ØPóð ð ˆHð " 4�ð
 €OßÜ*¨5¸Ó:ˆð Š?œqŸw™w×/Ñ/×GÑGØ”—‘÷ 
ò  
ð ‰Iä,¨S¸Ó=ˆIØÒ" yÒ'<Ø$�3Ø#ˆOçÜ?Ø˜ 4ó
‰ˆð Ò"Ü ð5óð ô
 Ü�L‰L×Ñ §¡¨°CÀUÐÓKó
ð 	
÷
 ÜÐ.Ó/Ð/ØÒ 9Ò#4ÜÐQÓRÐRÜBØ�C˜qŸz™z›|¨CÕ0óÑ€Hð ÒÜÐ=Ó>Ð>à×ÑÓÒ#à	�	‰	ŒØ×ÑÓ!€FàÒàÒ"Ü Ð!@ÓAÐAØŠ>ÜÜ—‘×-Ñ-¨a¯f©f°cÈÓWóð ð Ÿ\™\›^×2Ñ2°[È#Å;Õ5NÕNÑàŠ>Ü Ð!?Ó@Ð@Ü×1Ò1ØØØ�L‰L‹N×!Ñ!Ø�KØ�J‰J‹L˜ÕØô
ˆ	ô Ÿ™×0Ñ0°Ó;ˆ	ŒÜ	�‰×"Ñ" 9Ô-Ø(Ðä�Q—Z‘Z“\Ó"€IÜ�v“,€KØ€Iˆc�NØ�×˜ÕÓÜØ	ØØØØ16ôð øôc ô Úðús   ÂAN3 Î3OÏOrù  c               ó  € VR J;'       d    TpR pR p\        V \        4      '       d‘   \        V P                  \        P                  4      '       dg   V P                  4       pV P                  pVf-   V P                  4       e   V P                  4       P                  pV P                  P                  4       p V P                  4        \        P                  ! V 4      '       g   \        RV  R24      h\        P                  ! V 4      w  r‰Ve   \        V4      M^ p\        V\        P                   4      '       d   VP                  MTp
V'       dt   \        V
\        P"                  4      '       dT   \$        P&                  ! V\(        P*                  P,                  P/                  V
P1                  4       ^ 4      ,
          4      p\        P2                  ! V'       d   TMV	P4                  V'       d   TMV	P                  V Uu. uF  p\$        P&                  ! V4      NK  	  upV Uu. uF  p\$        P&                  ! V4      NK  	  up\$        P&                  ! V4      4      p\        \        P6                  ! WŒR7      4      # u upi u upi )Nzunrealized as_strided(z, ...)©r€   Úlayout)r~   rG   r€   r6   r:   r�   r¿   r   r  r  Úunwrap_viewrí  Úis_storage_and_layoutr«   Úas_storage_and_layoutrK   rú   ÚInputBufferrÊ   rS  rZ   rp   Úgraph_input_storage_offsetsr”  Úget_nameÚFixedLayoutr‰   rö   )r¸   rý   r  rØ  rù  Úexplicit_storage_offsetÚ
new_deviceÚ	new_dtypeÚstorageÚ
old_layoutÚstorage_datar“  Ú
new_layouts   &&&&$        rk   r  r  ×  sâ  € ð 	˜dÐ"×OÐOÐ'Oð ð €JØ€IÜ�!”Y×Ò¤J¨q¯v©v´r·{±{×$CÒ$Cð —\‘\“^ˆ
Ø—G‘Gˆ	ØÒ! a×&8Ñ&8Ó&:Ò&FØŸ\™\›^×2Ñ2ˆNØ�F‰F×ÑÓ ˆØ‡I�I„KÜ×#Ò# A×&Ò&Ü!Ð$:¸1¸#¸VÐ"DÓEÐEÜ×2Ò2°1Ó5Ñ€Gà2@Ò2LÔ˜~Ô.ÐRSð ô $.¨g´r·}±}×#EÒ#E�7—<’<È7€Lß¤:¨l¼B¿N¹N×#KÒ#Kô ŸšØÜ�g‰g×1Ñ1×5Ñ5°l×6KÑ6KÓ6MÈqÓQõRó
ˆô —’ß ‰
 j×&7Ñ&7ß‰	 J×$4Ñ$4Ù"&Ó'¡$˜QŒ�Š�aŽ¡$Ñ'Ù"(Ó)¡&˜QŒ�Š�aŽ¡&Ñ)Ü�Š�^Ó$ó€Jô ”R×'Ò'¨WÔHÓIÐIùò	 	(ùÚ)s   ÈJÈ)J	c                ó~   € \        V \        4      '       g   \        R 4      h\        WW#4      P                  V n        V # )r‰  )r~   rG   r‚   r  r€   )r¸   rý   r  rØ  s   &&&&rk   Úas_strided_r#    s4   € ä�qœ)×$Ò$ÜÐAÓBÐBÜ˜ Ó8×=Ñ=€A„FØ€Hrm   c                ó0   € \        WW#4      p\        V4      # r¯   )r  rý  )r¸   rý   r  rØ  rù  s   &&&& rk   Úas_strided_copyr%    s   € ä˜ Ó8€FÜ�‹=Ðrm   c                óè  a aaa€ . o^ pS  FA  pSP                  W"VP                  4       S,          ,           34       SR,          R,          pKC  	  S  Uu. uF  q3P                  4       NK  	  upoVV VV3R lp\        S ^ ,          P                  4       4      pSR,          R,          VS&   \        P
                  ! S ^ ,          P                  4       S ^ ,          P                  4       VVR7      # u upi )r   c           	     ó"  <a
a€ \         P                  ! V S,          \        P                  4      p. p. p\	        \        S4      4       EFo  o
S
^ 8X  d&   \         P                  ! ^ \        P                  4      M2\         P                  ! SS
,          ^ ,          \        P                  4      p\         P                  ! SS
,          ^,          \        P                  4      p\         P                  ! W4      p\         P                  ! W4      pS
^ 8X  d   TpM0S
\        S4      ^,
          8X  d   TpM\         P                  ! Wg4      pVP                  V4       \        V 4      o\        SS,          SS
,          ^ ,          ,
          4      SS&   VP                  \         P                  ! VV
VV3R lR4      4       EKr  	  VR,          p	\	        \        S4      ^,
          RR4       F)  o
\         P                  ! VS
,          VS
,          V	4      p	K+  	  V	# )r   c                 ó"   <€ SS ,          ! S4      # r¯   ri   )r†   Úidx_loadÚinputs_loaderss   €€€rk   rq  Ú1pointwise_cat.<locals>.inner_fn.<locals>.<lambda>E  s   ø€ ˜N¨1Ö-¨hÔ7rm   ç        r½  )rY   r€  r’   Úint64r!  rÜ   r�  ÚgeÚltÚand_rƒ   r|   r-   Úmaskedr  )rƒ  Úidx_dimÚmasksÚmasked_loadsrß  rà  Ú
start_condÚend_condÚmaskÚnext_valr†   r)  rß   rZ  r*  Úinputs_rangess   &         @@€€€€rk   rŠ  Úpointwise_cat.<locals>.inner_fn#  s‹  ú€ Ü—.’.  S¥¬5¯;©;Ó7ˆàˆØˆÜ”s˜6“{×#ˆAð ˜”6ô —’˜Q¤§¡Ô,ä—^’^ M°!Õ$4°QÕ$7¼¿¹ÓEð ô
 —.’. ¨qÕ!1°!Õ!4´e·k±kÓBˆCäŸš Ó/ˆJÜ—v’v˜gÓ+ˆHØ�AŒvØ‘Ø”c˜&“k A•oÔ%Ø!‘ä—x’x 
Ó5�à�L‰L˜ÔÜ˜C“yˆHô % X¨c¥]°]À1Õ5EÀaÕ5HÕ%HÓIˆH�S‰Mà×ÑÜ—
’
ØÞ7Øó÷ñ5 $ðD   Õ#ˆÜœ˜F› qÕ(¨"¨bÖ1ˆAÜ—y’yØ�a•Ø˜Q•ØóŠHñ 2ð ˆrm   rŒ  r½  )rƒ   rÝ   rŽ  r|   rD   rü   r�   rÉ   )rZ  rß   Úprev_endr×   rŠ  rË  r*  r9  s   ff    @@rk   Úpointwise_catr<    sØ   û€ à9;€MØ€HÛˆØ×Ñ˜h°3·<±<³>À#Õ3FÕ(FÐGÔHØ  Õ$ RÕ(Šñ ñ 4:Ó:±6¨C—o‘oÖ'±6Ñ:€N÷.ð .ô` �F˜1•I×&Ñ&Ó(Ó)€HØ! "Õ% bÕ)€HˆS�Mä×ÒØ�a�y×#Ñ#Ó%Ø�Q�i×!Ñ!Ó#ØØô	ð ùòk ;s   ÁC/c               ó8   € V ^8„  d   QhRRRRRRRRRRRRR	R
RR/# )rf   rÞ  rG   ÚscalesÚzero_pointsÚaxisrÂ   Ú	quant_minÚ	quant_maxr¿   rÀ   rg   ri   )rj   s   "rk   rl   rl   _  sX   € ÷ 1ñ 1Øð1àð1ð ð1ð ð	1ð
 ð1ð ð1ð ð1ð ñ1rm   c           	     ó  aaaaaaaa	a
€ \        SP                  4       4      ^8w  d   \        R4      h\        SP                  4       4      ^8w  d   \        R4      hV P                  4       \        P
                  8X  d   \        V \        P                  4      p V P                  4       \        P                  8w  d   \        RV P                  4        24      hS\        V P                  4       4      8¼  d&   \        R\        V P                  4       4       24      hV P                  4       oSP                  4       o	SP                  4       o
VVVVVVV	VV
3	R lp\        P                  ! V P                  4       SVV P                  4       R7      # )rÚ   úexpect scales 1 dimúexpect zero_points 1 dimú<Expecting input to have dtype torch.float32, but got dtype: úExpecting axis to be < c                óŠ  <	€ V S
,          3pS! V 4      pS! V4      pS! V4      p\        SS\        P                  R 7      w  rVSP                  \        P                  8w  d&   \        P
                  ! V\        P                  4      pSP                  \        P                  8w  d&   \        P
                  ! V\        P                  4      p\        P                  ! V4      p\        P                  ! W',          4      V,           p\        P                  ! V\        P                  ! Wh4      4      p	\        P
                  ! V	S4      # rm  )Ú_create_constantsr’   r  r¿   rY   r  r  Ú
reciprocalr«  ÚmaximumÚminimum)rƒ  Úchannel_idxrÞ  ÚscaleÚ
zero_pointÚqminÚqmaxÚ	inv_scalerš  Úclampedr@  r¿   Úinput_loaderrB  rA  r>  Úscales_loaderr?  Úzero_points_loaders   &         €€€€€€€€€rk   rŠ  Ú;quantized_decomposed_quantize_per_channel.<locals>.inner_fnz  sØ   ø€ Ø˜4•y�lˆá˜SÓ!ˆÙ˜kÓ*ˆÙ'¨Ó4ˆ
Ü& y°)Ä5Ç=Á=ÔQ‰
ˆà�<‰<œ5Ÿ=™=Ô(Ü—L’L ¬¯©Ó6ˆEØ×Ñ¤§¡Ô+ÜŸš j´%·+±+Ó>ˆJÜ—N’N 5Ó)ˆ	Ü�iŠi˜Õ)Ó*¨ZÕ7ˆÜ—+’+˜d¤C§K¢K°Ó$:Ó;ˆÜ�|Š|˜G UÓ+Ð+rm   rŒ  )rÜ   rÝ   r‚   rÉ   r’   rw  r  r  rŽ  rD   rü   r�   )rÞ  r>  r?  r@  rA  rB  r¿   rŠ  rT  rU  rV  s   &ffffff @@@rk   Ú)quantized_decomposed_quantize_per_channelrX  ^  s9  ÿø€ ô ˆ6�?‰?ÓÓ Ô"ÜÐ2Ó3Ð3Ü
ˆ;×ÑÓ!Ó" aÔ'ÜÐ7Ó8Ð8à‡�ÓœEŸN™NÔ*Ü˜¤§¡Ó.ˆØ‡�ÓœEŸM™MÔ)ÜØJÈ5Ï?É?ÓK\ÐJ]Ð^ó
ð 	
ð Œs�5—>‘>Ó#Ó$Ô$ÜÐ6´s¸5¿>¹>Ó;KÓ7LÐ6MÐNÓOÐOà×$Ñ$Ó&€LØ×&Ñ&Ó(€MØ$×0Ñ0Ó2Ð÷,õ ,ô" ×ÒØ×ÑÓ!ØØØ�~‰~Óô	ð rm   c           	     ó&  a a€ S P                  4        \        S \        P                  4      o V V3R  lp\        P
                  ! S P                  4       S P                  4       V\        S P                  4       4      R7      pVP                  4        V# )c                óä   <€ \         P                  P                  4       ;_uu_ 4        \        P                  ! SP                  4       ! V 4      S4      uuR R R 4       #   + '       g   i     R # ; ir¯   )r6   ÚComputedBufferÚforce_realizerY   Údevice_assert_asyncrŽ  )rg  r¥   r¦   s   &€€rk   rŠ  Ú_assert_async.<locals>.inner_fn—  sE   ø€ Ü×Ñ×,Ñ,×.Õ.Ü×*Ò*¨4×+;Ñ+;Ô+=¸eÓ+DÀcÓJ÷ /×.×.Ó.ús   ¨+AÁA/	rŒ  )
rí  r  r’   rh   rD   rü   r�   rÉ   r|   rÝ   )r¥   r¦   rŠ  Úassertion_ops   ff  rk   Ú_assert_asyncr`  “  sm   ù€ Ø‡L�L„NÜ�Dœ%Ÿ*™*Ó%€DöKô ×#Ò#Ø�‰Ó Ø�n‰nÓØÜ�D—M‘M“OÓ$ô	€Lð ×ÑÔØÐrm   c                ó   € \        W4      # r¯   ©r`  r¬   s   &&rk   Úlower_assert_asyncrc  ¥  ó   € ä˜Ó#Ð#rm   c                ó   € \        W4      # r¯   rb  r¬   s   &&rk   Úlower_assert_functional_asyncrf  ª  rd  rm   r\  c               ó<   € V ^8„  d   QhRRRRRRRRRRRRR	R
RRRR/	# )rf   rÞ  rG   r>  r?  r@  rÂ   rA  rB  r¿   rÀ   r\  r\  rg   ri   )rj   s   "rk   rl   rl   ²  sb   € ÷ 1ñ 1Øð1àð1ð ð1ð ð	1ð
 ð1ð ð1ð ð1ð "ð1ð ñ1rm   c               ó®  aaaaa	a
a€ \        SP                  4       4      ^8w  d   \        R4      h\        SP                  4       4      ^8w  d   \        R4      hV P                  4       V8w  d    \        RV RV P                  4        24      hS\        V P                  4       4      8¼  d&   \        R\        V P                  4       4       24      hSf   \        P
                  oV P                  4       o	SP                  4       o
SP                  4       oVV	VVV
VV3R lp\        P                  ! V P                  4       SVV P                  4       R7      # )rÚ   rD  rE  úExpecting input to have dtype ú, but got dtype: rG  c                ó  <€ V S,          3pS! V 4      pS
! V4      pS! V4      pS	P                   \        P                  8w  d&   \        P                  ! V\        P                  4      pSP                   \        P                  8w  d&   \        P                  ! V\        P                  4      p\        P
                  ! \        P                  ! V\        P                  4      V4      V,          p\        P                  ! VS4      pV# r¯   )r¿   r’   r  rY   r  Úsub)rƒ  rM  rÞ  rN  rO  rš  r@  rT  r\  r>  rU  r?  rV  s   &     €€€€€€€rk   rŠ  Ú=quantized_decomposed_dequantize_per_channel.<locals>.inner_fnÏ  s¯   ø€ Ø˜4•y�lˆá˜SÓ!ˆÙ˜kÓ*ˆÙ'¨Ó4ˆ
à�<‰<œ5Ÿ=™=Ô(Ü—L’L ¬¯©Ó6ˆEØ×Ñ¤§¡Ô-ÜŸš j´%·-±-Ó@ˆJÜ�gŠg”c—l’l 5¬%¯-©-Ó8¸*ÓEÈÕMˆÜ�lŠl˜3 	Ó*ˆØˆ
rm   rŒ  ©
rÜ   rÝ   r‚   rÉ   r’   r  rŽ  rD   rü   r�   )rÞ  r>  r?  r@  rA  rB  r¿   r\  rŠ  rT  rU  rV  s   &fff&&&d @@@rk   Ú+quantized_decomposed_dequantize_per_channelro  ¯  s'  þ€ ô ˆ6�?‰?ÓÓ Ô"ÜÐ2Ó3Ð3Ü
ˆ;×ÑÓ!Ó" aÔ'ÜÐ7Ó8Ð8Ø‡�Ó˜EÔ!ÜØ,¨U¨GÐ3DÀUÇ_Á_ÓEVÐDWÐXó
ð 	
ð Œs�5—>‘>Ó#Ó$Ô$ÜÐ6´s¸5¿>¹>Ó;KÓ7LÐ6MÐNÓOÐOàÒÜ—M‘Mˆ	à×$Ñ$Ó&€LØ×&Ñ&Ó(€MØ$×0Ñ0Ó2Ð÷ó ô ×ÒØ×ÑÓ!ØØØ�~‰~Óô	ð rm   c               ó4   € V ^8„  d   QhRRRRRRRRRRR	R
RR/# )rf   rÞ  rG   rN  ra  rO  rÂ   rA  rB  r¿   rÀ   rg   ri   )rj   s   "rk   rl   rl   é  sN   € ÷ "ñ "Øð"àð"ð ð"ð ð	"ð
 ð"ð ð"ð ñ"rm   c                óò  aaaa€ V P                  4       \        P                  8X  d   \        V \        P                  4      p V P                  4       \        P                  8w  d   \        R V P                  4        24      hV P                  4       oVVVV3R lp\        P                  ! V P                  4       S\        P                  ! V\        V4      \        V4      R7      V P                  4       R7      # )rF  c                ód  <€ S
! V 4      p\        R V,          V\        P                  R7      w  rB\        P                  ! W4,          4      V,           p\        SS\        P                  R7      w  rg\        P
                  ! \        P                  ! WV4      V4      p\        P                  ! VS	4      # )ç      ð?rÄ   )rI  r’   r  rY   r«  rL  rK  r  )rƒ  rN  rO  rÞ  rR  rš  rP  rQ  rS  r¿   rT  rB  rA  s   &&&      €€€€rk   rŠ  ÚBquantized_decomposed_quantize_per_tensor_default.<locals>.inner_fnú  s   ø€ Ù˜SÓ!ˆÜ 1Ø�%�K˜¬5¯=©=ô!
Ñˆ	ô �iŠi˜Õ)Ó*¨ZÕ7ˆÜ& y°)Ä5Ç=Á=ÔQ‰
ˆÜ—+’+œcŸkšk¨#Ó4°dÓ;ˆÜ�|Š|˜G UÓ+Ð+rm   ©rN  rO  rŒ  )rÉ   r’   rw  r  r  r‚   rŽ  rD   rü   r�   r1  rI  ra  rÂ   rÝ   )rÞ  rN  rO  rA  rB  r¿   rŠ  rT  s   &&&fff @rk   Ú0quantized_decomposed_quantize_per_tensor_defaultrv  æ  sÁ   û€ ð ‡�ÓœEŸN™NÔ*Ü˜¤§¡Ó.ˆØ‡�ÓœEŸM™MÔ)ÜØJÈ5Ï?É?ÓK\ÐJ]Ð^ó
ð 	
ð ×$Ñ$Ó&€L÷,ð ,ô ×ÒØ×ÑÓ!ØÜ×"Ò"ØœE %›L´S¸³_ô
ð �~‰~Óôð rm   c               ó8   € V ^8„  d   QhRRRRRRRRRRR	R
RRRR/# )rf   rÞ  rG   rN  ra  rO  rÂ   rA  rB  r¿   rÀ   r\  r\  rg   ri   )rj   s   "rk   rl   rl     sX   € ÷ "ñ "Øð"àð"ð ð"ð ð	"ð
 ð"ð ð"ð "ð"ð ñ"rm   c               ó‚  aa€ V P                  4       V8w  d    \        R V RV P                  4        24      hSf   \        P                  oV P	                  4       oVV3R lp\
        P                  ! V P                  4       S\        P                  ! V\        V4      \        V4      R7      V P                  4       R7      # )ri  rj  c                ó  <€ S! V 4      p\        W\        P                  R 7      w  r\        P                  ! \        P
                  ! V\        P                  4      V4      V,          p\        P
                  ! VS4      pV# rm  )rI  r’   r  rY   rl  r  )rƒ  rN  rO  rÞ  rš  rT  r\  s   &&&  €€rk   rŠ  ÚDquantized_decomposed_dequantize_per_tensor_default.<locals>.inner_fn%  sY   ø€ Ù˜SÓ!ˆÜ-¨eÄuÇ}Á}ÔUÑˆÜ�gŠg”c—l’l 5¬%¯-©-Ó8¸*ÓEÈÕMˆÜ�lŠl˜3 	Ó*ˆØˆ
rm   ru  rŒ  )rÉ   r‚   r’   r  rŽ  rD   rü   r�   r1  rI  ra  rÂ   rÝ   )	rÞ  rN  rO  rA  rB  r¿   r\  rŠ  rT  s	   &&&&&&d @rk   Ú2quantized_decomposed_dequantize_per_tensor_defaultr{    s«   ù€ ð ‡�Ó˜EÔ!ÜØ,¨U¨GÐ3DÀUÇ_Á_ÓEVÐDWÐXó
ð 	
ð ÒÜ—M‘Mˆ	à×$Ñ$Ó&€Löô ×ÒØ×ÑÓ!ØÜ×"Ò"ØœE %›L´S¸³_ô
ð �~‰~Óôð rm   c               ó4   € V ^8„  d   QhRRRRRRRRRRRR	R
R/# )rf   rÞ  rG   rN  rO  rA  rÂ   rB  r¿   rÀ   rg   ri   )rj   s   "rk   rl   rl   9  sN   € ÷ 4ñ 4Øð4àð4ð ð4ð ð	4ð
 ð4ð ð4ð ñ4rm   c           	     ó   aaaaaaaa	a
€ V P                  4       \        P                  8X  d   \        V \        P                  4      p V P                  4       \        P                  8w  d   \        R V P                  4        24      h\        SP                  4       4      ^ 8X  gF   \        SP                  4       4      ^8X  d   SP                  4       ^ ,          ^8X  g   \        R4      h\        SP                  4       4      ^ 8X  gF   \        SP                  4       4      ^8X  d   SP                  4       ^ ,          ^8X  g   \        R4      hV P                  4       oSP                  4       o	SP                  4       o
V P                  4       oVVVVVVV	VV
3	R lp\        P                  ! V P                  4       SVV P                  4       R7      # )rF  úexpect scale as scalar tensorú"expect zero_point as scalar tensorc                ó¬  <	€ S
! V 4      pS! \        SP                  4       4      ^8X  d   RMR4      pS! \        SP                  4       4      ^8X  d   RMR4      pSP                  \        P                  8w  d&   \
        P                  ! V\        P                  4      pSP                  \        P                  8w  d&   \
        P                  ! V\        P                  4      pS'       dU   SP                  R8X  dD   \
        P                  ! V\
        P                  ! V4      V4      p\
        P                  ! VS	4      # \
        P                  ! V\
        P                  ! V4      ,          4      V,           p\        SS\        P                  R7      w  rV\
        P                  ! \
        P                  ! WE4      V4      p\
        P                  ! VS	4      # )rÚ   rõ   rÄ   rf  ri   )rÜ   rÝ   r¿   r’   r  rY   r  rù   r‚  rJ  Úround_to_intr«  rI  rL  rK  )rƒ  rÞ  Ú_scaleÚ_zero_pointrš  rP  rQ  rS  r‰   r¿   rT  rB  rA  rN  Úscale_loaderrO  Úzero_point_loaders   &       €€€€€€€€€rk   rŠ  ÚAquantized_decomposed_quantize_per_tensor_tensor.<locals>.inner_fnX  s1  ø€ Ù˜SÓ!ˆÙ¤c¨%¯.©.Ó*:Ó&;¸qÔ&@™dÀbÓIˆÙ'´°E·N±NÓ4DÓ0EÈÔ0J©ÐPRÓSˆØ�;‰;œ%Ÿ-™-Ô'Ü—\’\ &¬%¯-©-Ó8ˆFØ×ÑœuŸ}™}Ô,ÜŸ,š, {´E·M±MÓBˆKß�f—k‘k UÔ*Ü—'’'˜%¤§¢°Ó!7¸ÓEˆCÜ×#Ò# C¨Ó/Ð/Ü�iŠi˜¤§¢¨vÓ 6Õ6Ó7¸+ÕEˆÜ& y°)Ä5Ç=Á=ÔQ‰
ˆÜ—+’+œcŸkšk¨#Ó4°dÓ;ˆÜ�|Š|˜G UÓ+Ð+rm   rŒ  )rÉ   r’   rw  r  r  r‚   rÜ   rÝ   rŽ  r�   rD   rü   )rÞ  rN  rO  rA  rB  r¿   rŠ  r‰   rT  r„  r…  s   &fffff @@@@rk   Ú/quantized_decomposed_quantize_per_tensor_tensorr‡  6  se  ÿø€ ð ‡�ÓœEŸN™NÔ*Ü˜¤§¡Ó.ˆØ‡�ÓœEŸM™MÔ)ÜØJÈ5Ï?É?ÓK\ÐJ]Ð^ó
ð 	
ô 	ˆE�N‰NÓÓ Ô"Ü�—‘Ó Ó! QÔ&¨5¯>©>Ó+;¸AÕ+>À!Ô+CäÐ<Ó=Ð=äˆJ×ÑÓ!Ó" aÔ'Ü�
×#Ñ#Ó%Ó&¨!Ô+°
×0CÑ0CÓ0EÀaÕ0HÈAÔ0MäÐAÓBÐBà×$Ñ$Ó&€LØ×$Ñ$Ó&€LØ"×.Ñ.Ó0Ðà×ÑÓ€F÷,õ ,ô  ×ÒØ×ÑÓ!ØØØ�~‰~Óô	ð rm   c               ó8   € V ^8„  d   QhRRRRRRRRRRRR	R
RRR/# )rf   rÞ  rG   rN  rO  rA  rÂ   rB  r¿   rÀ   r\  r\  rg   ri   )rj   s   "rk   rl   rl   s  sX   € ÷ 1ñ 1Øð1àð1ð ð1ð ð	1ð
 ð1ð ð1ð "ð1ð ñ1rm   c               ó  aaaaa	a
€ \        SP                  4       4      ^ 8X  gF   \        SP                  4       4      ^8X  d   SP                  4       ^ ,          ^8X  g   \        R4      h\        SP                  4       4      ^ 8X  gF   \        SP                  4       4      ^8X  d   SP                  4       ^ ,          ^8X  g   \        R4      hV P                  4       V8w  d    \        RV RV P                  4        24      hSf   \        P
                  oV P                  4       oSP                  4       o	SP                  4       o
VVVV	VV
3R lp\        P                  ! V P                  4       SVV P                  4       R7      # )r   r~  r  ri  rj  c                óx  <€ S! V 4      pS! \        SP                  4       4      ^8X  d   RMR4      pS
! \        SP                  4       4      ^8X  d   RMR4      pSP                  \        P                  8w  d&   \
        P                  ! V\        P                  4      pS	P                  \        P                  8w  d&   \
        P                  ! V\        P                  4      p\
        P                  ! \
        P                  ! V\        P                  4      V4      V,          p\
        P                  ! VS4      pV# )rÚ   rf  ri   )rÜ   rÝ   r¿   r’   r  rY   r  rl  )rƒ  rÞ  r‚  rƒ  rš  rT  r\  rN  r„  rO  r…  s   &    €€€€€€rk   rŠ  ÚCquantized_decomposed_dequantize_per_tensor_tensor.<locals>.inner_fn“  sÏ   ø€ Ù˜SÓ!ˆÙ¤c¨%¯.©.Ó*:Ó&;¸qÔ&@™dÀbÓIˆÙ'´°E·N±NÓ4DÓ0EÈÔ0J©ÐPRÓSˆØ�;‰;œ%Ÿ-™-Ô'Ü—\’\ &¬%¯-©-Ó8ˆFØ×ÑœuŸ}™}Ô,ÜŸ,š, {´E·M±MÓBˆKÜ�gŠg”c—l’l 5¬%¯-©-Ó8¸+ÓFÈÕOˆÜ�lŠl˜3 	Ó*ˆØˆ
rm   rŒ  rn  )rÞ  rN  rO  rA  rB  r¿   r\  rŠ  rT  r„  r…  s   &ff&&&d @@@rk   Ú1quantized_decomposed_dequantize_per_tensor_tensorrŒ  p  sE  ý€ ô 	ˆE�N‰NÓÓ Ô"Ü�—‘Ó Ó! QÔ&¨5¯>©>Ó+;¸AÕ+>À!Ô+CäÐ<Ó=Ð=äˆJ×ÑÓ!Ó" aÔ'Ü�
×#Ñ#Ó%Ó&¨!Ô+°
×0CÑ0CÓ0EÀaÕ0HÈAÔ0MäÐAÓBÐBØ‡�Ó˜EÔ!ÜØ,¨U¨GÐ3DÀUÇ_Á_ÓEVÐDWÐXó
ð 	
ð ÒÜ—M‘Mˆ	à×$Ñ$Ó&€LØ×$Ñ$Ó&€LØ"×.Ñ.Ó0Ð÷
ò 
ô ×ÒØ×ÑÓ!ØØØ�~‰~Óô	ð rm   c               ó$   € V ^8„  d   QhRRRRRR/# )rf   rZ  zlist[TensorBox]rß   rÂ   rg   ú
str | Noneri   )rj   s   "rk   rl   rl   §  s&   € ÷ Lñ L¨Oð LÀ#ð LÈ*ñ Lrm   c                óª  a€ \        V 4      ^8  d   R# V ^ ,          P                  4       pV R,           F  pW#P                  4       ,          pK  	  V'       g   R# \        \        P                  P
                  P                  R,          P                  4       4      pRpRpV Fö  p\        P                  P                  V4      pVf   K(  \        V\        P                  4      '       g   KJ  \        VP                  \        P                  4      '       g   Kv  \        VP                  P                  4       4      \        VP                  P!                  4       4      ,          p	\        P                  P"                  P%                  WI4      '       g   Kò  TpTp M	  Vf   R# \'        VRR4      p
V
'       g   R# \)        4       oV  F+  p\'        VRR4      pV'       g   K  SP+                  V4       K-  	  V
 FØ  pVP,                  R8X  g   K  \        VP.                  \0        P2                  P4                  4      '       g   KL  \0        P6                  P8                  VP.                  P:                  9   g   K�  \<        ;QJ d)    V3R lVP>                   4       F  '       d   K   RM	  RM! V3R lVP>                   4       4      '       d   K×   R# 	  V# )	aV  If all cat inputs share a common upstream reduction buffer whose
only consumers feed into this cat, return its name so it can be
excluded from the can_fuse_reduction check.

Checks common reads for an IR reduction whose numel matches the cat
output, then verifies via FX origins that all of the reduction's
consumers feed into the cat inputs.Nr­  rš  Úoriginsro   c              3  ó,   <"  € T F	  qS9   x € K  	  R # 5ir¯   ri   )r	  ÚuÚcat_input_originss   & €rk   r  Ú2_cat_inputs_recombine_reduction.<locals>.<genexpr>ï  s   øé € ÐE¹°1Ð.Ö.»ùó   ƒFT) rÜ   Úget_read_namesrK   rZ   rp   rq   r“  ÚnumelÚtry_get_bufferr~   r6   r[  r€   rE   rW   rÝ   Úget_reduction_sizer÷   rü  rÀ  r*   r¶   rs   rt   r’   r“   r”   rœ   Ú	reductionÚtagsrB  rr   )rZ  rß   Úcommon_readsr×   Úcat_out_numelÚreduction_nameÚreduction_bufrð   ÚbufÚreduction_numelr�  Úinp_originsÚoriginr“  s   &&           @rk   Ú_cat_inputs_recombine_reductionr¤  §  s   ø€ ô ˆ6ƒ{�Q„Ùà˜!•9×+Ñ+Ó-€LØ�b�zˆzˆØ#×&8Ñ&8Ó&:Õ:Šñ çÙô +¬1¯7©7×+?Ñ+?×+DÑ+DÀUÕ+K×+QÑ+QÓ+SÓT€MØ€NØ€MÛˆÜ�g‰g×$Ñ$ TÓ*ˆàŒOÜ˜3¤× 1Ñ 1×2Ô2Ü˜3Ÿ8™8¤R§\¡\×2Ô2ä+¨C¯H©H×,=Ñ,=Ó,?Ó@Ä=Ø—‘×+Ñ+Ó-óDõ ˆOô �w‰w×Ñ×7Ñ7¸×WÔWØ!%�Ø #�Ùñ ð ÒÙô  �m Y°Ó5€GßÙä3=³<ÐÛˆÜ˜c 9¨dÓ3ˆß‰;Ø×$Ñ$ [Ö1ñ ó ˆà�I‰I˜Ö(Ü˜6Ÿ=™=¬%¯*©*×*?Ñ*?×@Ô@Ü—	‘	×#Ñ# v§}¡}×'9Ñ'9Ö9ß“CÔE¸¿ºÓE—C—C’CÔE¸¿ºÓE×EÔEâñ ð Ðrm   c                ó¾	  a aaaaaaaaa€ S ^ ,          P                  4       P                  R8H  pV'       dÖ   \        ;QJ d    R S  4       F  '       d   K   RM	  RM! R S  4       4      '       dœ   S  F  pVP                  4        K  	  \        ;QJ d    R S  4       F  '       d   K   RM	  RM! R S  4       4      '       d   \	        \
        P                  .S O5!  w  o p\        \
        P                  P                  4      ! S V4      # \        S 4      ^8X  d   \        S ^ ,          4      # R pS  Uu. uF
  qe! V4      NK  	  upo\        S4      '       dh   \        S S4       UUu. uF  w  rgV'       d   K  VNK  	  pppV'       g   \        S ^ ,          4      # \        V4      ^8X  d   \        V^ ,          4      # Vo \        S ^ ,          V^ 4      p\        S R\        P                   / p	S  U
u. uF  p
\#        W©4      NK  	  up
o R R	 loR
 o\%        4       3R VVV3R lllo\'        S V4      pV'       d   \%        V.4      M	\%        4       o\        ;QJ d     VV3R lS  4       F  '       g   K   RM	  RM! VV3R lS  4       4      pR VV3R llo\(        P*                  '       d   \-        S V4      # V'       d*   \/        \0        P2                  P5                  S V4      4      # VV3R lo^oR R lo\        S 4      \(        P6                  8:  gc   \        S 4      \(        P8                  8:  Edq   \        ;QJ d     VV3R lS  4       F  '       d   K   RM	  RM! VV3R lS  4       4      '       Ed.   \        ;QJ d7    V3R l\:        P<                  P>                   4       F  '       d   K   RM,	  RM(! V3R l\:        P<                  P>                   4       4      p\        ;QJ d    V3R lS  4       F  '       g   K   RM	  RM! V3R lS  4       4      ;'       d    TpR V VV3R llpV! 4       p\        ;QJ d    V3R lS  4       F  '       d   K   RM	  RM! V3R lS  4       4      ;'       d    V'       * pV'       g   V'       g	   V'       d   \-        S V4      # \/        \0        P2                  P5                  S V4      4      # u upi u uppi u up
i )z@Lower aten.cat, choosing between pointwise_cat and ConcatKernel.rõ   c              3  ó‚   "  € T F5  qP                  4       \        P                  \        P                  39   x € K7  	  R # 5ir¯   )rÉ   r’   Úint8r  ©r	  rÞ  s   & rk   r  Úcat.<locals>.<genexpr>ú  s*   é € ð ÙDJ¸5�‰ÓœeŸj™j¬%¯+©+Ð6Ö6ÃFùs   ‚=?FTc              3  óZ   "  € T F!  p\        VP                  4       4      ^8H  x € K#  	  R# 5i)é   N)rÜ   rÝ   r¨  s   & rk   r  r©  	  s!   é € Ð>±v¨eŒs�5—>‘>Ó#Ó$¨Ö)³vùs   ‚)+c                ó°   € V P                  4       p\        V4      ^8H  ;'       d2    \        P                  P                  P                  V^ ,          ^ 4      # rl  )rÝ   rÜ   rZ   rp   r÷   rü  )rŠ   rý   s   & rk   Ú_cat_should_skipÚcat.<locals>._cat_should_skip
	  s@   € Ø�z‰z‹|ˆÜ�4‹y˜A‰~×VÐV¤!§'¡'×"2Ñ"2×"JÑ"JÈ4ÐPQÍ7ÐTUÓ"VÐVrm   rÔ   c               ó    € V ^8„  d   QhRRRR/# )rf   r¸   zTensorBox | ir.StorageBoxrg   rÐ  ri   )rj   s   "rk   rl   Úcat.<locals>.__annotate__	  s   € ÷ 
ñ 
Ð2ð 
°yñ 
rm   c                ó*  € \        V \        4      '       dQ   \        V P                  \        P                  4      '       d   V P                  P                  4       # V P                  # \        V \        P                  4      '       d   V P                  # V # r¯   )r~   rG   r€   r6   r:   r  rú   rÍ   s   &rk   Úunwrap_tensorÚcat.<locals>.unwrap_tensor	  s_   € Ü�aœ×#Ò#Ü˜!Ÿ&™&¤"§+¡+×.Ò.Ø—v‘v×)Ñ)Ó+Ð+à—v‘v�ä�aœŸ™×'Ò'Ø—6‘6ˆMàˆrm   c                óŽ   € \        V \        P                  4      ;'       d%    \        V P                  \        P                  4      # r¯   )r~   r6   r[  r€   rE   )rŠ   s   &rk   Úis_reductionÚcat.<locals>.is_reduction)	  s,   € Ü˜!œR×.Ñ.Ó/×TÐT´J¸q¿v¹vÄrÇ|Á|Ó4TÐTrm   c               ó   € V ^8„  d   QhRR/# )rf   ÚexcludezOrderedSet[str]ri   )rj   s   "rk   rl   r°  ,	  s   € ÷ 
ñ 
 ñ 
rm   c                ó„  <a€ \        V \        \        P                  34      '       d   S! S! V 4      S4      # S! V 4      ;'       g{    \        V \        P                  4      ;'       dY    \
        ;QJ d.    VV3R  lV P                  4        4       F  '       g   K   R# 	  R# ! VV3R  lV P                  4        4       4      # )c              3  óŠ   <"  € T F8  pVS9  ;'       d'    S! \         P                  P                  V4      S4      x € K:  	  R # 5ir¯   )rZ   rp   Ú
get_buffer)r	  ÚreadÚcan_fuse_reductionr¸  s   & €€rk   r  Ú2cat.<locals>.can_fuse_reduction.<locals>.<genexpr>2	  sJ   øé € ð ñ /�Dð ˜GÑ#÷ Jð JÙ&¤q§w¡w×'9Ñ'9¸$Ó'?ÀÓIôJã.ùs
   ƒA”/ATF)r~   rG   r6   rú   rD   rC  r–  )rŠ   r¸  r½  rµ  r²  s   &f€€€rk   r½  Úcat.<locals>.can_fuse_reduction,	  s«   ù€ Ü�aœ)¤R§]¡]Ð3×4Ò4Ù%¡m°AÓ&6¸Ó@Ð@á˜‹O÷ ð Ü˜!œRŸ\™\Ó*÷ ð ß“õ ð ×,Ñ,Ô.ó—”ð	
ò ð	
ð õ ð ×,Ñ,Ô.óó ð	
rm   c              3  ó6   <"  € T F  pS! VS4      x € K  	  R # 5ir¯   ri   )r	  rŠ   r½  r¸  s   & €€rk   r  r©  ?	  s   øé € ÐKÁF¸qÑ.¨q°'×:Ð:ÃFùr  c               ó   € V ^8„  d   QhRR/# re   ri   )rj   s   "rk   rl   r°  A	  s   € ÷ ñ  Tñ rm   c                óh  <€ \         P                  ! V 4      '       d?   \         P                  ! V R R7      w  r\         P                  P	                  V4      '       * # \        V \        \         P                  34      '       d   S! S! V 4      4      # \        V \         P                  4      '       d   R# R # )F)ÚfreezeT)	r6   r  r  ÚConcatKernelÚcan_realize_into_without_copyr~   rG   rú   rD   )r¸   r  r  Úshould_lower_cat_inputr²  s   &  €€rk   rÆ  Ú#cat.<locals>.should_lower_cat_inputA	  s   ø€ ô ×#Ò# A×&Ò&Ü×1Ò1°!¸EÔB‰JˆGÜ—‘×DÑDÀWÓMÔMÐMä�aœ)¤R§]¡]Ð3×4Ò4Ù)©-¸Ó*:Ó;Ð;ä�aœŸ™×&Ò&Ùárm   c                ón  <€ \        V \        \        P                  34      '       d   S! S! V 4      4      # \        V \        P                  4      '       g   ^ # V P                  4       P                  pV P                  4        F/  pVS! \        P                  P                  V4      4      ,          pK1  	  V# rf  )r~   rG   r6   rú   rD   Úinner_fn_opcountÚnum_opsr–  rZ   rp   r»  )r¸   Úcountr¼  Úop_countr²  s   &  €€rk   rÌ  Úcat.<locals>.op_countX	  s‹   ø€ Ü�aœ)¤R§]¡]Ð3×4Ò4Ù™M¨!Ó,Ó-Ð-ô ˜!œRŸ\™\×*Ò*Ùà×"Ñ"Ó$×,Ñ,ˆØ×$Ñ$Ö&ˆDØ‘XœaŸg™g×0Ñ0°Ó6Ó7Õ7ŠEñ 'ð ˆrm   c               ó   € V ^8„  d   QhRR/# ©rf   rs   r)  ri   )rj   s   "rk   rl   r°  j	  s   € ÷ Fñ FÐ%:ñ Frm   c                óp   € V \         P                  P                  \         P                  P                  39   # r¯   )r:  Úcatr*  Úconstant_pad_nd©rs   s   &rk   Úadditional_pointwise_opsÚ%cat.<locals>.additional_pointwise_opsj	  s(   € Ø”d—h‘h×&Ñ&¬×(<Ñ(<×(DÑ(DÐEÑEÐErm   c              3  ó:   <"  € T F  pS! V4      S8*  x € K  	  R # 5ir¯   ri   )r	  rŠ   ÚMAX_SIMPLE_OP_COUNTrÌ  s   & €€rk   r  r©  o	  s   øé € ÐC¹F°q‘˜“Ð2Ö2»Fùs   ƒc              3  ó<   <"  € T F  p\        VS4      x € K  	  R # 5ir¯   ©rP   )r	  ÚuserÔ  s   & €rk   r  r©  q	  s#   øé € ð 
á+�ô ˜SÐ":×;Ð;Û+ùs   ƒc              3  ó4   <"  € T F  pS! V4      x € K  	  R # 5ir¯   ri   ©r	  r×   rÆ  s   & €rk   r  r©  x	  ó   øé € Ð>±v°Ñ& s×+Ð+³vùó   ƒc               ó   € V ^8„  d   QhRR/# re   ri   )rj   s   "rk   rl   r°  ‚	  s   € ÷  	ñ  	¨tñ  	rm   c                 óà  <aa€ \         P                  oSf   R# SP                  ^ ,          p \        V \        \
        34      '       d   T pM0\        V \        P                  P                  4      '       d   V .pMR# \        S	4      '       d*   \        VS	4       UUu. uF  w  r#V'       d   K  VNK  	  pppVV
3R lo\        VS4       F›  w  rE\        VR4      '       d   \        VP                  4      ^8:  d   K3  \        ;QJ d)    V3R lVP                   4       F  '       g   K   RM	  RM! V3R lVP                   4       4      '       d    R# S! V4      '       g   Kš   R# 	  R# u uppi )NFc                ó    <€ \        V \        \        P                  34      '       d   S! S! V 4      4      # \        V \        P                  4      # r¯   )r~   rG   r6   rú   rD   )r¸   Úis_unrealized_pointwiser²  s   &€€rk   râ  ÚKcat.<locals>.any_input_has_multi_consumers.<locals>.is_unrealized_pointwise‘	  s:   ø€ Ü˜a¤)¬R¯]©]Ð!;×<Ò<Ù2±=ÀÓ3CÓDÐDÜ! !¤R§\¡\Ó2Ð2rm   rr   c              3  óH   <"  € T F  qSJg   K
  \        V4      x € K  	  R # 5ir¯   rÙ  )r	  r’  rq   s   & €rk   r  Ú=cat.<locals>.any_input_has_multi_consumers.<locals>.<genexpr>›	  s"   øé € ÐW±I¨qÈ,ÐAVÔ*Ô'¨×*Ð*³Iùs   ƒ"�"T)rZ   rq   r‡   r~   r|   r±   r’   ÚfxÚNoderC  r   r  rÜ   rr   )Úfx_argsÚinput_nodesrQ  Úskiprâ   Úir_inputrq   râ  rZ  Ú	skip_maskr²  s         @@€€€rk   Úany_input_has_multi_consumersÚ*cat.<locals>.any_input_has_multi_consumers‚	  s	  ú€ ÜŸ>™>ˆLØÒ#ÙØ"×'Ñ'¨Õ*ˆGÜ˜'¤D¬% =×1Ò1Ø%‘Ü˜G¤U§X¡X§]¡]×3Ò3Ø&˜i‘áä�9�~Š~Ü03°KÀÔ0KÔXÑ0K¡W QÔSWŸq˜qÑ0K�ÑXö3ô
 "% [°&Ö!9‘�Ü˜s G×,Ò,´°C·I±I³À!Ô0CÙ÷ “3ÔW°C·I²IÓW—3—3’3ÔW°C·I²IÓW×WÒWÚñ +¨8×4Ô4Úñ ":ñ ùó' Ys   ÂE*Â-E*c              3  ó4   <"  € T F  pS! V4      x € K  	  R # 5ir¯   ri   rÜ  s   & €rk   r  r©  §	  rÝ  rÞ  ) r�   rù   rB  rí  Úrequire_channels_lastr:  rÑ  r'  r*  rÜ   rý  rC  r   rú  ræ   r   ru  r  r*   r¤  r4   Úforce_pointwise_catr<  rG   r6   rÄ  rü   Ú max_complex_pointwise_cat_inputsÚmax_pointwise_cat_inputsrZ   rq   rr   )rZ  rß   Ú
cpu_devicerÞ  r  r­  rŠ   rê  Úvalid_inputsr¿   r×   Ú
recombinedÚfusable_reductionÚpointwise_usesÚfuse_pointwise_userí  Úhas_multi_consumersÚhorizontal_fuse_catr×  rÔ  r½  r¸  rµ  rÌ  rÆ  rì  r²  s   f&                @@@@@@@@@rk   rÑ  rÑ  ö  s•  ÿù€ ð ˜•×%Ñ%Ó'×,Ñ,°Ñ5€Jß—c“cñ ÙDJó—c—c’cñ ÙDJó÷ ò ó
 ˆEØ�M‰MŽOñ ç‹3Ñ>±vÓ>�3�3Š3Ñ>±vÓ>×>Ò>Ü-¬d¯h©hÐ@¸Ó@‰IˆF�AÜ¤§¡× 0Ñ 0Ô1°&¸#Ó>Ð>ä
ˆ6ƒ{�aÔÜ�V˜A•YÓÐòWñ /5Ó5©f¨Ð! !Ö$©fÑ5€IÜ
ˆ9‡~‚~Ü),¨V°YÔ)?ÔLÑ)?™g˜aÄtŸ˜Ñ)?ˆÑLßÜ˜ �Ó#Ð#Üˆ|Ó Ô!Ü˜ a�Ó)Ð)Øˆä
˜˜q�	 3¨Ó
*€CÜØ	ðÜ%D×%LÑ%Lñ€Eñ /5Ó5©f sŒh�sÖ"©fÑ5€Fõ
òUô :D»÷ 
ô 
ô" 1°¸Ó=€Jß;Eœz¨:¨,Ô7Ì:Ë<€Gß›ÕKÁFÓKŸŸšÕKÁFÓKÓKÐ÷ñ ô ×!×!Ð!Ü˜V SÓ)Ð)÷ ÜœŸ™×/Ñ/°¸Ó<Ó=Ð=öð  ÐõFô ˆ6ƒ{”f×=Ñ=Ô=Ü	ˆV‹œ×7Ñ7Õ	7ß‹CÕC¹FÓC�C�CŠCÕC¹FÓC×CÓCç›ô 
ä—~‘~×+Ò+ó
ŸŸšô 
ä—~‘~×+Ò+ó
ó 
ˆ÷ ‹CÔ>±vÓ>�C�CŠCÔ>±vÓ>Ó>×QÐQÀ>ð 	÷ 	ò  	ñD <Ó=Ð÷ ‹CÔ>±vÓ>�C�CŠCÔ>±vÓ>Ó>×XÐXÐGXÔCXð 	÷ #×(:×>QÜ  ¨Ó-Ð-ä”R—_‘_×+Ñ+¨F°CÓ8Ó9Ð9ùò 6ùãLùò 6s   Ä5SÅ(SÅ9SÇ1Sc               ó$   € V ^8„  d   QhRRRRRR/# ©rf   r  rÂ   Údim1Údim2ri   )rj   s   "rk   rl   rl   ±	  s&   € ÷ 6Eñ 6E˜Cð 6E¨3ð 6E¸#ñ 6Erm   c                óÖ  aaa
aa€ V P                  4       o\        S4      o\        SSR 7      o\        SSR 7      o\        SS8g  VV3R l4       \        P
                  P                  P                  \        P                  ! V^ 4      4      pV'       di   \        P
                  P                  P                  \        P
                  P                  P                  SS,          V,           SS,          4      ^ 4      pMg\        P
                  P                  P                  \        P
                  P                  P                  SS,          SS,          V,
          4      ^ 4      pRo
V'       d   V) ^ 3o
M^ V3o
\        S4       UUu. uF  w  rgVSS39  g   K  VNK  	  pppVP                  V4       V
VVVV3R lp	\        \        P                   P#                  WV	4      4      # u uppi ))rƒ  Úrankc                 ó   <€ R S  RS 2# )z(diagonal dimensions cannot be identical z, ri   )rþ  rÿ  s   €€rk   rq  Údiagonal.<locals>.<lambda>¸	  s   ø€ Ð HÈÈÈbÐQUÐPVÑWrm   c                ó>  <€ V R,          p^ .\        S	4      ,          p^ p\        S4       FL  pVS8X  d   VS^ ,          ,           W$&   K  VS8X  d   VS^,          ,           W$&   K9  W,          W$&   V^,          pKN  	  V\        S	4      ^,
          8w  d   \        R4      hV# )rÚ   z,expected: cur_dim == len(original_shape) - 2r½  )rÜ   r!  r‚   )
rƒ  Údiag_idxÚoriginal_idxÚcur_dimr�  Úbase_idxrþ  rÿ  Únum_dimsÚoriginal_shapes
   &    €€€€€rk   Ú	reindexerÚdiagonal.<locals>.reindexerÖ	  s–   ø€ Ø�r•7ˆØ�sœS Ó0Õ0ˆØˆÜ�x–ˆAØ�DŒyØ"*¨X°a­[Õ"8�“Ø�d”Ø"*¨X°a­[Õ"8�“à"%¥,�‘Ø˜1•’ñ !ð ”c˜.Ó)¨AÕ-Ô-Ü Ð!OÓPÐPØÐrm   )r   r   )rÝ   rÜ   r   r   rZ   rp   r÷   Úevaluate_exprrÊ   rí  Úevaluate_maxÚevaluate_minr}   rƒ   rG   r6   ÚGenericViewrü   )rÞ  r  rþ  rÿ  Úoffset_negativeÚ	diag_sizer†   r“  r„  r  r  r	  r
  s   &&ff      @@@rk   Údiagonalr  °	  s‰  ü€ à—^‘^Ó%€NÜ�>Ó"€HÜ ¨8Ô4€DÜ ¨8Ô4€Dä	Ø�‰ÕWôô —g‘g×&Ñ&×4Ñ4´U·X²X¸fÀaÓ5HÓI€OßÜ—G‘G×$Ñ$×1Ñ1Ü�G‰G×Ñ×)Ñ)Ø˜tÕ$ vÕ-Ø˜tÕ$óð ó
‰	ô —G‘G×$Ñ$×1Ñ1Ü�G‰G×Ñ×)Ñ)Ø˜tÕ$Ø˜tÕ$ vÕ-óð ó
ˆ	ð €HßØ�G˜Q�<‰à�v�;ˆä$ ^Ô4ÔNÑ4‘4�1¸À$ÈÀÑ8M�QˆQÑ4€EÑNØ	‡L�L�Ô÷ñ ô" ”R—^‘^×*Ñ*¨5¸ÓCÓDÐDùó) Os   ÆG%ÆG%c               ó$   € V ^8„  d   QhRRRRRR/# rý  ri   )rj   s   "rk   rl   rl   ë	  s!   € ÷ 6ñ 6 ð 6°ð 6¸sñ 6rm   c                ó,   € \        \        WW#4      4      # r¯   )rý  r  )rÞ  r  rþ  rÿ  s   &&&&rk   Údiagonal_copyr  ê	  s   € ä”˜%¨Ó4Ó5Ð5rm   c               ó$   € V ^8„  d   QhRRRRRR/# rý  ri   )rj   s   "rk   rl   rl   ð	  s!   € ÷ ñ ¨ð ¸ð Àsñ rm   c                óJ   € \        V 4      p\        WRW44      p\        Wa4       V# r¯   )rý  r  Ú	mutate_to)rÞ  Úsrcr  rþ  rÿ  rV  rt   s   &&&&&  rk   Údiagonal_scatterr  ï	  s$   € ä�5‹\€FÜ�f dÓ1€FÜˆfÔØ€Mrm   c           	     óö  € \         P                  ! V4      p\         P                  ! V P                  4       V,          4      pR p\        P                  P
                  P                  \         P                  ! V^ 4      4      '       d
   W#,           pMF\        P                  P
                  P                  \         P                  ! V^ 4      4      '       d   TpVe¤   \        V4      '       ds   V P                  4        V P                  4       pV P                  4       pV P                  4       P                  Wa,          V,          ,           pWQ Wa \        V VVVRR7      # \        WWD^,           RR7      p\!        W�4      # \#        \        P                  P
                  P$                  \        P                  P&                  P(                  R,          4      p	V	f   \+        R4      h\-        V	4      ^8w  d   \+        V	4      h\/        \1        V	P3                  4       4      4      w  r«V P                  4        V P                  4       pV P                  4       pT
p\4        P6                  ! V
VV P                  4       P                  Wa,          V P                  4       V,          RR7      p\        P                  P9                  V4      Vn        \        P                  P=                  V4       WQ Wa \        V VVVRR7      # )NFrø  rö  r×  ú'expected: unbacked_bindings is not None)rÊ   rS  rÝ   rZ   rp   r÷   r�  rí  rë  r'   rí  Ú
get_strider  r  r  r  r”  r(   rÚ  rq   r“  r‚   rÜ   rv  Úiterr  r6   r  rÝ  rð   rÞ  )r¸   rß   rƒ  rý   Úactual_indexrË  Ú
new_strider  Úslice_resultr×  Úunbacked_offset_symr  Úbuffers   &&&          rk   Úselectr%  ÷	  sR  € ä
�,Š,�sÓ
€CÜ�<Š<˜Ÿ
™
› SÕ)Ó*€DØ€Lä‡w�w×Ñ×&Ñ&¤u§x¢x°°QÓ'7×8Ò8Ø•z‰Ü	
�‰×	Ñ	×	(Ñ	(¬¯ª°#°qÓ)9×	:Ò	:ØˆàÒÜ$ S×)Ò)ð �I‰IŒKØ—z‘z“|ˆHØŸ™›ˆJØ!"§¡£×!6Ñ!6¸½È<Õ9WÕ!WÐà�Ø�ÜØØØØ"Ø9>ôð ô " !¨,ÀqÕ8HÐPUÔVˆLÜ˜<Ó-Ð-ô 2Ü	�‰×Ñ×"Ñ"¤A§G¡G×$8Ñ$8×$=Ñ$=Ð>QÕ$RóÐð Ò ÜÐFÓGÐGÜ
ÐÓ Ô"ÜÐ.Ó/Ð/Ü!¤$Ð'8×'>Ñ'>Ó'@Ó"AÓBÑÐð ‡I�I„KØ�z‰z‹|€HØ—‘“€JØ,ÐÜ×*Ò*ØØØ	�‰‹×ÑØ�Ø	�
‰
‹�SÕØô€Fô —'‘'×)Ñ)¨&Ó1€F„KÜ‡G�G×Ñ˜vÔ&àˆØˆÜØ	ØØØØ16ôð rm   c                ó¢  € \        W^ 4      pTp\        V\        \        34      '       gñ   \        P
                  P                  pVP                  V^ 4      '       d   \        RV 24      hV P                  4       V,          pVP                  V^ 4      '       d   \        W^ ^ RR7      .# VP                  V^ 4      '       d   \        RV 24      hVP                  \        WQ,           ^,
          V4      4      pV.V,          pWV^,
          V,          ,
          VR&   . p^ pV F*  p	W‰,           p
VP                  \        WWŠRR7      4       T
pK,  	  V# )r   z=split expects split_size be non-negative, but got split_size=Frö  zKsplit_size can only be 0 if dimension size is 0, but got dimension size of r½  )rú  r~   r|   r±   rZ   rp   r÷   Ústatically_known_ltÚRuntimeErrorrÝ   rü  r  r‹  r,   rƒ   )r¸   r„  rß   Úsizes_r÷   Úx_sizeÚchunksrù  rß  rý   rà  s   &&&        rk   Úsplitr,  F
  sI  € ä
˜ Ó
"€CØ€Fô �eœd¤E˜]×+Ò+Ü—7‘7×#Ñ#ˆØ×'Ñ'¨¨q×1Ò1ÜØOÐPUÈwÐWóð ð —‘“˜cÕ"ˆØ×+Ñ+¨F°A×6Ò6Ü˜1 1 a¨uÔ5Ð6Ð6à×+Ñ+¨E°1×5Ò5Üð-Ø-3¨Hð6óð ð
 ×#Ñ#¤H¨V­^¸aÕ-?ÀÓ$GÓHˆØ�˜6Õ!ˆà¨�z¨UÕ2Õ2ˆˆr‰
ð €FØ€EÛˆØ�lˆð 	�‰”f˜Q U°uÔ=Ô>ØŠñ ð €Mrm   c                ó   € \        WV4      # r¯   )r,  )r¸   r„  rß   s   &&&rk   Úsplit_with_sizesr.  p
  s   € ä�˜3ÓÐrm   c                óì   € \        W^ 4      p\        P                  P                  P	                  V P                  4       V,          4      p\        V4       Uu. uF  p\        WV4      NK  	  ppV# u upi rf  )rú  rZ   rp   r÷   r‹  rÝ   r!  r%  )r¸   rß   r*  r†   rù  s   &&   rk   Úunbindr0  u
  s\   € ä
˜ Ó
"€CÜ�W‰W×Ñ×'Ñ'¨¯
©
«°SÕ(9Ó:€FÜ).¨v¬Ó7© AŒf�Q˜QÖ©€FÐ7Ø€Mùò 8s   ÁA1c                óh  aa€ V P                  4       p\        V4      p\        WQ4      oV^ 8X  d   \        \	        V ^ 4      VRR7      # VS,          p\
        P                  P                  pVP                  W&4       VP                  ^ S4       \        Wb,
          S4      ^,           pVP                  V4      ^ 8”  d1   V P                  VP                  \        W‚,          V4      4      4       . VRS OVNVS^,           R OVNp	VV3R lp
\        \        P                   P#                  W	V
4      4      # )r   F)rà  r÷  Nc                ól   <€ V R,          V S,          S,          ,           p. V RS OVNV S^,           R O5# )rÚ   Nr½  ri   )rƒ  Údim_idxrß   rá  s   & €€rk   r  Úunfold.<locals>.reindexer“
  s?   ø€ Ø�b•'˜C �H t�OÕ+ˆØ8��T�c�Ð8˜GÐ8 c¨#°­'°BÐ&7Ñ8Ð8rm   )rÝ   rÜ   r   r  r¸  rZ   rp   r÷   Ú	check_leqÚcheck_ltr,   r±  r²  r+   rG   r6   r  rü   )r¸   Ú	dimensionrý   rá  r„  ÚndimÚdim_sizer÷   Únew_dim_sizeÚout_sizer  rß   s   &&&f       @rk   Úunfoldr<  }
  s  ù€ à�J‰J‹L€EÜˆu‹:€DÜ
˜4Ó
+€Càˆq„yÜ”i  1“o¨4°uÔ=Ð=à�S�z€HÜ�w‰w×Ñ€HØ×Ñ�tÔ&Ø×Ñ�a˜Ôä˜H�O¨TÓ2°QÕ6€LØ×&Ñ& xÓ0°1Ô4Ø	�‰Ø×+Ñ+¬G°LÕ4GÈÓ,RÓSô	
ð E��t˜�ÐD˜lÐD¨U°3¸µ7°9Ð-=ÐD¸tÐD€Hö9ô ”R—^‘^×*Ñ*¨1¸	ÓBÓCÐCrm   c                ó¶   € \        W^4      p\        V P                  4       4      pVP                  V\        P
                  P                  4       \        W4      # rl  )rú  r|   rÝ   ÚinsertrÊ   rO  rP  r;  )r¸   rß   r’  s   && rk   r¸  r¸  š
  sA   € ä
˜ Ó
"€CÜ�Q—Z‘Z“\Ó"€IØ×Ñ�Sœ%Ÿ'™'Ÿ+™+Ô&Ü�ÓÐrm   c                óÂ   € \        W4      p\        V \        4      '       g   \        R 4      h\        V\        4      '       g   \        R4      hVP                  V n        V # r˜  )r¸  r~   rG   r‚   r€   r™  s   && rk   Ú
unsqueeze_r@  ¢
  sN   € ä
�AÓ
€CÜ�qœ)×$Ò$ÜÐAÓBÐBÜ�sœI×&Ò&ÜÐCÓDÐDØ�X‰X€A„FØ€Hrm   c                ó6  € \         P                  P                  P                  P	                  \
        P                  ! V4      4      p\        V P                  4       4      pV^ 8  d   WV,           ,          p^ Tu;8:  d   W2,           8  g   M \        R4      hV# )r   z"expected: 0 <= dim < ndim + offset)
rZ   rp   r÷   rÚ  r  rÊ   ÚsympifyrÜ   rÝ   r‚   )r¸   rß   r  r8  s   &&& rk   rú  rú  ­
  sn   € Ü
�'‰'×
Ñ
×
$Ñ
$×
2Ñ
2´5·=²=ÀÓ3EÓ
F€CÜˆq�z‰z‹|Ó€DØ
ˆQ„wØ�f�}ÕˆØ�Ö$�t•}Ö$ÜÐAÓBÐBØ€Jrm   c                ó  € \        W^ 4      p\        P                  P                  P	                  V P                  4       V,          4      ^,          p\        W^ VRR7      p\        WW"^,          RR7      p\        V\        V4      4      # )r   Frö  )	rú  rZ   rp   r÷   r‹  rÝ   r  r¿  Úsigmoid)r¸   rß   Únew_lenr
  rU  s   &&   rk   ÚglurF  ·
  sk   € ä
˜ Ó
"€Cä�g‰g×Ñ×(Ñ(¨¯©«°cÕ):Ó;¸qÕ@€Gäˆq�q˜'¨Ô/€AÜˆq�w¨!¥°5Ô9€AÜˆq”'˜!“*ÓÐrm   c                ó\   a € V'       d   \         P                  S 4       V 3R  lpRVn        V# )c                 ó|   <€ R  p\         P                  ! V\        P                  P                  ! S.V O5/ VB 4      # )c                óf   € \        V \        P                  4      '       d   V P                  4       # T # r¯   ©r~   r6   r>   Úwrap_for_loweringrÍ   s   &rk   Úwrap_tensorsÚ7fallback_handler.<locals>.handler.<locals>.wrap_tensorsÇ
  ó&   € Ü,6°q¼"¿)¹)×,DÒ,D�1×&Ñ&Ó(ÐKÈ!ÐKrm   )r•  Útree_mapr6   ÚFallbackKernelrü   )r‡   r  rL  Úkernels   *, €rk   ÚhandlerÚ!fallback_handler.<locals>.handlerÆ
  s<   ø€ ò	Lô �ŠØœ"×+Ñ+×2Ò2°6ÐK¸DÒKÀFÑKó
ð 	
rm   T)r=  r´   Ú_is_fallback_handler)rQ  r#  rR  s   f& rk   r'  r'  Â
  s&   ø€ ßÜ�‰�fÔõ
ð $(€GÔ à€Nrm   c                 ó2   € \         P                  ! R 4       R# )zjTorchinductor does not support code generation for complex operators. Performance may be worse than eager.N)ÚwarningsÚwarnri   rm   rk   Ú_warn_complex_not_supportedrX  Ô
  s   € ä‡M‚MØtörm   c               ó   € V ^8„  d   QhRR/# ©rf   rŠ   ztorch.Tensorri   )rj   s   "rk   rl   rl   Ý
  s   € ÷ @ñ @ ñ @rm   c                óÌ  € V P                  4       '       d   \        4        R# V P                  '       d   R# V P                  '       d   R# \	        V P
                  V P                  4      '       Egj   ^RIHp V! V P
                  V P                  R7      '       g   R# V'       g   R# \        VP                  \        P                  P                  4      ;'       d®    VP                  \        P                  P
                  \        P                   P"                  \        P$                  P"                  \        P&                  P"                  \        P(                  P"                  \*        P,                  P"                  39   ;'       gL    \        VP                  \        P                  P                  4      ;'       d    \/        VP                  4      '       * # V P
                  \        P0                  8X  Edj   V'       g   R# \        VP                  \        P                  P                  4      '       g   R# VP                  \        P                  P
                  \        P                   P"                  \        P$                  P"                  \        P&                  P"                  \        P(                  P"                  39   g   \/        VP                  4      '       d   R# VP                  \        P2                  P*                  P,                  P"                  8X  d@   \5        VP6                  4      ^8¬  ;'       d    VP6                  ^,          \8        9   '       * # R# R# )z0Do not support reading or writing to this tensorT)Ú/use_uint8_triton_storage_for_cuda_float8_e4m3fn©r‰   F)r$  rX  Úis_metaÚ	is_sparserQ   r¿   r‰   Úcodegen.triton_utilsr\  r~   rt   r’   r“   r”   r:  r;  rÑ  r*  rý  Ú
_scaled_mmÚ_scaled_mm_v2r(  r)  rR   r+  rY   rÜ   r‡   r,  )rŠ   rv   r\  s   && rk   Úunsupported_input_tensorrc  Ý
  s-  € à‡|�|‡~‚~ä#Ô%Ùà‡y‡y€yÙà‡{‡{€{Ùä(¨¯©°!·(±(×;Ó;õ	
ñ ?Ø�G‰G˜AŸH™H÷
ó 
ñ ÷ Ùä�t—{‘{¤E§J¡J×$9Ñ$9Ó:÷ 	ð 	Ø—‘ä—	‘	—‘Ü—‘× Ñ Ü—
‘
×"Ñ"Ü—‘×'Ñ'Ü×"Ñ"×*Ñ*Ü×*Ñ*×2Ñ2ðñ÷
Yð 
Yô ˜4Ÿ;™;¬¯
©
×(=Ñ(=Ó>×WÐWÄ7È4Ï;É;ÓCWô
ð 	
ð 	‡w�w”%×&Ñ&Õ&ßÙô
 ˜$Ÿ+™+¤u§z¡z×'<Ñ'<×=Ò=ÙØ�;‰;Ü�I‰I�O‰OÜ�H‰H×ÑÜ�J‰J×ÑÜ�O‰O×#Ñ#Ü×Ñ×&Ñ&ð
ô 
ô �T—[‘[×!Ò!ÙØ�;‰;œ%Ÿ)™)Ÿ/™/×>Ñ>×FÑFÔFä�D—I‘I“ !Ñ#×WÐW¨¯	©	°!­Ô8WÑ(Wôð ñ árm   c               ó   € V ^8„  d   QhRR/# rZ  ri   )rj   s   "rk   rl   rl      s   € ÷ 3ñ 3 ñ 3rm   c                óª  € \         P                  P                  \        P                  P
                  P                  P                  3pVe*   VP                  V9   d   V P                  4       '       d   R# \        W4      '       d   R# \        V P                  V P                  4      '       g   R# V P                  ;'       d    \        P                  # )z2Do not support writing tensor but can read from itFT)r:  r;  r¿   r’   rY   r(  r)  r*  rt   r$  rc  rQ   r‰   Úis_cpur4   Údisable_cpp_codegen)rŠ   rv   Úsupported_complex_viewss   && rk   Úunsupported_output_tensorri     s�   € ô 	�	‰	�‰Ü�	‰	�‰×,Ñ,×4Ñ4ðÐð Ò˜DŸK™KÐ+BÔBÀqÇ|Á|Ç~Â~ÙÜ ×(Ò(ÙÜ(¨¯©°!·(±(×;Ò;ÙØ�8‰8×2Ð2œ×2Ñ2Ð2rm   c               ó   € V ^8„  d   QhRR/# )rf   rv   ztorch.fx.Noderi   )rj   s   "rk   rl   rl   /  s   € ÷ %6ñ %6°ñ %6rm   c                óz  a € S P                   \        P                  P                  J d   R # S P                  R8X  d   R # S P                   \        P
                  P                  J d   R # V 3R lp\        P                  ! S P                  / S P                  B  F  pV! VR R7      '       g   K   R# 	  V! S RR7      # )FÚplaceholderc                ó¬  <€ \        V \        P                  P                  4      '       g   R # RV P                  9  d   R # \
        P                  ! V P                  R,          4       Fh  p\        P                  P                  P                  V4      '       g   K4  V'       d   \        VS4      '       d    R# KS  \        VS4      '       g   Kg   R# 	  R # )Frš  T)r~   r’   ræ  rç  r“  r•  r–  Ú_subclassesÚfake_tensorÚis_fake_tensorri  rc  )Úinp_out_nodeÚ	is_outputr“  rv   s   && €rk   Úcheck_skip_conditionÚCfallback_node_due_to_unsupported_type.<locals>.check_skip_condition;  sœ   ø€ Ü˜,¬¯©¯©×6Ò6Ùà˜×)Ñ)Ô)Ùä×&Ò& |×'8Ñ'8¸Õ'?Ö@ˆDÜ×$Ñ$×0Ñ0×?Ñ?À×EÒEÙçÜ,¨T°4×8Ò8Úñ 9ô ,¨D°$×7Ô7Úñ Añ rm   )rr  T)
rt   r:  Úview_as_complexr*  rs   Úlift_fresh_copyr•  Úarg_tree_leavesr‡   r  )rv   Úallow_cpu_inputsrs  râ   s   f&  rk   Ú%fallback_node_due_to_unsupported_typery  /  s“   ø€ à‡{�{”d×*Ñ*×2Ñ2Ó2Ùà‡w�w�-ÔÙð ‡{�{”d×*Ñ*×2Ñ2Ó2Ùõô* ×%Ò% t§y¡yÐ@°D·K±KÔ@ˆÙ ¨u×5Õ5Úñ Añ   °Ô5Ð5rm   c                ó¶  a€ Ve   V! 4       M\         pW9   d   V'       g   \        RV  24      hV'       dì   \        \        P                  ! R4      4      '       dÇ   \        V .4      '       dµ   \        P                  '       d*   V \        P                  P                  P                  9   gv   V'       gn   \        P                  P                  P                  '       d5   R\        P                  P                  n        \        P                  R4       \        RV  R24      hV3R lp\!        V \        P"                  P$                  4      '       d"   V P'                  4        F  pV! V4       K  	  R # \!        V \        P"                  P(                  \        P"                  P*                  34      '       d   V! V 4       R # \-        RV  R	\/        V 4       24      h)
Nz*both a fallback and a decomp for same op: ÚCIFznA make_fallback error occurred in suppress_errors config, and suppress_errors is being disabled to surface it.zmake_fallback(a.  ): a decomposition exists, we should switch to it. To fix this error, either add a decomposition to core_aten_decompositions (preferred) or inductor_decompositions, and delete the corresponding `make_fallback` line. Get help from the inductor team if unsure, don't pick arbitrarily to unblock yourself.c                ór   <€ \        V 4       Se   \        V S4       \        V R R7      ! \        V 4      4      # )Nr~  )r²   r½   rJ  r'  )Úop_overloadÚlayout_constraints   &€rk   Úregister_fallbackÚ(make_fallback.<locals>.register_fallback}  s8   ø€ Ü! +Ô.ØÒ(Ü! +Ð/@ÔAÜ  À$ÕGÜ˜[Ó)ó
ð 	
rm   zUnsupported fallback z with type )r8   r‚   rh   ÚosÚgetenvr9   r4   Úfallback_randomr’   Ú_decompÚdecompositions_for_rngÚextra_random_decompsÚ_dynamoÚsuppress_errorsÚlogÚwarningr~   r“   rµ   r·   r”   ÚHigherOrderOperatorr(  rù   )rs   r~  rW  Úoverride_decompÚget_decomp_fnÚcheck_decompsr  r}  s   &f&&&   rk   Úmake_fallbackr�  W  sZ  ø€ ð (5Ò'@‘M”OÄn€MØ	Ô§?ÜÐIÈ"ÈÐNÓOÐOçÜ”—’˜4“×!Ò!Ü ˜t×$Ò$ô ×"×"Ð"Ø”e—m‘m×:Ñ:×OÑOÔOçô �=‰=×Ñ×/×/Ð/Ø38ŒE�M‰M× Ñ Ô0Ü�K‰KðHôô Ø˜R˜Dð !fð fó
ð 	
õ
ô �"”e—j‘j×1Ñ1×2Ò2ØŸ?™?Ö,ˆKÙ˜kÖ*ó -ä	�BœŸ™×.Ñ.´·
±
×0NÑ0NÐO×	PÒ	PÙ˜"ÖäÐ2°2°$°kÄ$ÀrÃ(ÀÐLÓMÐMrm   c                ó^   € ^pV  F  pW,          pK  	  \        V\        P                  R7      # )z¾
TorchInductor offset calculation differs from PyTorch eager offset
calculation for random ops (tl.rand vs torch.rand). In future, we should
strive for same impl for tl.rand and torch.rand.
rÄ   ©rn  r’   r-  )r¹  r—  r“  s   &  rk   Úphilox_rand_offsetr’  Ž  s+   € ð €EÛˆØ•	Šñ ä�%œuŸ{™{Ô+Ð+rm   c                óF  aa	a
a€ \         P                  ! VSV \         P                  P                  V 4      4      P	                  4       o
VP                  4       oVP                  4       o	VV	V
V3R  lp\        P                  ! VSV\        V 4      R7      p\        V 4      pWx3# )c                óŒ  <€ \         P                  ! S! . 4      \        P                  4      p\         P                  ! S! . 4      \        P                  4      p\         P                  ! \         P
                  ! S! V 4      \        P                  4      V4      p\         P                  ! VV4      p\         P                  ! VS4      # r¯   )rY   r  r’   r  r´   r€  Úrand)	rg  Úseed_index_exprÚoffset_index_exprÚrand_index_exprrù  r¿   Úoffset_loaderÚ
random_posÚseed_loaders	   &    €€€€rk   rŠ  Úphilox_rand.<locals>.inner_fn§  sˆ   ø€ ô Ÿ,š,¡{°2£¼¿¹ÓDˆÜŸLšL©°rÓ):¼E¿K¹KÓHÐäŸ'š'Ü�NŠN™: eÓ,¬e¯k©kÓ:Ð<Mó
ˆô —’ØØó
ˆô �|Š|˜F EÓ*Ð*rm   rŒ  )
r6   r  ÚFlexibleLayoutÚcontiguous_stridesÚmake_indexerrŽ  rD   rü   r|   r’  )rý   Úseedr  r  r‰   r¿   rŠ  Úrandom_values_nodeÚoffset_noder™  rš  r›  s   &&&&&f   @@@rk   Úphilox_randr£  š  sœ   û€ ô —’ØØØÜ
×Ñ×,Ñ,¨TÓ2ó	÷
 �lƒnð ð ×"Ñ"Ó$€KØ×&Ñ&Ó(€M÷+ð +ô #×)Ò)ØØØÜ�D‹zô	Ðô % TÓ*€KØÐ*Ð*rm   c           	     óü   € \         P                  '       d]   \        P                  ! \        P
                  \        P                  P                  \        P                  P                  WV4      4      # \        R 4      h)z&should be handled in replace_random.py)r4   rƒ  r•  rO  rG   rü   r6   rP  r:  Únative_dropoutr*  r‚   )r¸   ÚpÚtrains   &&&rk   r¥  r¥  Á  sZ   € ä××ÐÜ�ŠÜ×ÑÜ×Ñ×$Ñ$¤T×%8Ñ%8×%@Ñ%@À!ÈÓNó
ð 	
ô
 ÐEÓFÐFrm   c                ó¬  € \         P                  '       g5   V P                  4       \        P                  ! R 4      8X  g   \        R4      hV P                  4        \        V4      ^ 8X  g   \        V^ ,          \        4      '       d   \        P                  P                  M\        P                  P                  p\        P                  ! W .VO5!   V # ©rõ   zTthis should be handled in decomps unless config.fallback_random or the device is CPU)r4   rƒ  r�   r’   r‰   r‚   rí  rÜ   r~   ra  r:  Ú
bernoulli_ÚTensorr6   ÚInplaceBernoulliFallback)r¸   r‡   r}  s   &* rk   rª  rª  Ì  s—   € ä×"×"Ð" a§l¡l£n¼¿ºÀUÓ8KÔ&KÜØbó
ð 	
ð ‡I�I„Kô ˆt‹9˜Œ>œZ¨¨Q­´×7Ò7ô 	�‰×Òä�_‰_×#Ñ#ð ô
 ×Ò Ð6°Ô6Ø€Hrm   c                óÂ   € \         P                  '       g5   V P                  4       \        P                  ! R 4      8X  g   \        R4      h\        \        V 4      .VO5!  # r©  )r4   rƒ  r�   r’   r‰   r‚   rª  rý  )r¸   r‡   s   &*rk   Úbernoulli_pr®  Ü  sJ   € ä×"×"Ð" a§l¡l£n¼¿ºÀUÓ8KÔ&KÜØbó
ð 	
ô ”e˜A“hÐ& Ó&Ð&rm   c                ó   € \         hr¯   ©r‚   )r  s   &rk   Ú_foobarr±  æ  s   € ä
Ðrm   c                ó0   € \         P                  R 4       R# )z1using triton random, expect difference from eagerN)r‰  Úinfo)Úsalts   &rk   Ú_warn_triton_randomrµ  ë  s   € ä‡H�HÐ@ÖArm   c                 óL   € \        \        P                  P                  4       R # r¯   )rµ  rZ   rp   Úcreation_timeri   rm   rk   Úwarn_triton_randomr¸  ð  s   € äœŸ™×-Ñ-Ö.rm   )rŒ  c                 óè   € VP                  R 4      e   \        V / VB # \        P                  '       g   VP                  R4      '       d   VP	                  R R4       \        V / VB # \        R4      h©Ú	generatorNÚ
pin_memoryz-should have been handled in replace_random.py)r”  Úfallback_rand_generatorr4   rƒ  rÙ  Úfallback_rand_defaultr‚   ©r‡   r  s   *,rk   r•  r•  	  se   € à‡z�z�+ÓÒ*Ü&¨Ð7°Ñ7Ð7Ü	×	×	Ð	 6§:¡:¨l×#;Ò#;Ø�
‰
�; Ô%Ü$ dÐ5¨fÑ5Ð5Ü
ÐHÓ
IÐIrm   c                 óè   € VP                  R 4      e   \        V / VB # \        P                  '       g   VP                  R4      '       d   VP	                  R R4       \        V / VB # \        R4      hrº  )r”  Úfallback_randn_generatorr4   rƒ  rÙ  Úfallback_randn_defaultr‚   r¿  s   *,rk   ÚrandnrÃ    se   € à‡z�z�+ÓÒ*Ü'¨Ð8°Ñ8Ð8Ü	×	×	Ð	 6§:¡:¨l×#;Ò#;Ø�
‰
�; Ô%Ü% tÐ6¨vÑ6Ð6Ü
ÐHÓ
IÐIrm   c                ó²   € \         P                  ! V\        P                  P                  P
                  4      p\         P                  P                  W4      # r¯   )r6   Úget_stride_orderrZ   rp   r÷   rÚ  r9  Úrequire_stride_order)Úinput_tensorr  Ústride_orders   && rk   Úinductor_force_stride_orderrÉ    s9   € ä×&Ò& v¬q¯w©w×/?Ñ/?×/IÑ/IÓJ€LÜ�?‰?×/Ñ/°ÓKÐKrm   c               ó   € V ^8„  d   QhRR/# ©rf   r‰   ró   ri   )rj   s   "rk   rl   rl   $  s   € ÷ Kñ K˜,ñ Krm   c                ó   € \        R 4      h)z.should be handled in fuse_seed_creation_pass()r°  r]  s   &rk   Úinductor_seedrÍ  #  s   € ä
ÐIÓ
JÐJrm   c                ó~   € \        4        \        P                  ! \        P                  ! V \        V4      4      4      # r¯   )r¸  rG   rü   r6   ÚRandomSeedsrL   )rË  r‰   s   &&rk   Úinductor_seedsrÐ  (  s)   € äÔÜ×ÒœBŸNšN¨5´-ÀÓ2GÓHÓIÐIrm   c                ó€   a a€ VV 3R  lp\         P                  ! S P                  4       S P                  4       V. R7      # )c                óN   <€ \         P                  ! SP                  4       S4      # r¯   )rY   Ú	load_seedr  )r  rg  Úseedss   &€€rk   rŠ  Ú&inductor_lookup_seed.<locals>.inner_fn0  s   ø€ Ü�}Š}˜UŸ^™^Ó-¨uÓ5Ð5rm   rŒ  )rD   rü   r�   rÉ   )rÔ  rg  rŠ  s   ff rk   Úinductor_lookup_seedrÖ  .  s9   ù€ ö6ô ×ÒØ×ÑÓ!Ø�o‰oÓØØô	ð rm   c               ó   € V ^8„  d   QhRR/# rË  ri   )rj   s   "rk   rl   rl   ;  s   € ÷ ñ  ,ñ rm   c                ót  € \        V \        P                  4      '       g   \        P                  ! V 4      p V P                  R 8X  dm   V P                  pVf   \        P
                  P                  4       p\        P
                  P                  V4      pVP                  VP                  ,          pV# RpTpV# )r¬  i €  )
r~   r’   r‰   rù   rg  r¬  Úcurrent_deviceÚget_device_propertiesÚmulti_processor_countÚmax_threads_per_multi_processor)r‰   rƒ  ÚpropÚthreads_per_roundÚ_CPU_GRAIN_SIZEs   &    rk   Úget_threads_per_roundrà  ;  s•   € Ü�fœeŸl™l×+Ò+Ü—’˜fÓ%ˆà‡{�{�fÔØ�l‰lˆØŠ;Ü—*‘*×+Ñ+Ó-ˆCä�z‰z×/Ñ/°Ó4ˆà×&Ñ&¨×)MÑ)MÕMð 	ð Ðð  ˆØ+ÐàÐrm   r  Úalign_dtypec          
     ó,   € V ^8„  d   QhRRRRRRRRR	R
/# )rf   rý   ú	list[int]r   rG   Úmoder§   r  rÂ   rá  rÀ   ri   )rj   s   "rk   rl   rl   P  s:   € ÷ 7ñ 7Ø
ð7à
ð7ð ð7ð
 ð7ð ñ7rm   c               ód  aa
aaa€ \         P                  '       d   \        R 4      hSR	9  d   \        R4      h. V Op \        P                  pVP                  4       p\        P                  ! WeV \        P                  P                  V 4      VR7      P                  4       o
VP                  4       o\         P                  '       d5   VP                  R8X  d$   \        V4      oR R lpV! V4      oV
VVV3R lpMVV
V3R lp\        P                   ! VVV. V OR7      p	V	P#                  4        V	# )
ú$expected: not config.fallback_randomz#expected: mode in ("rand", "randn")©r  r¬  c               ó    € V ^8„  d   QhRRRR/# )rf   ÚdtrÀ   rg   rÂ   ri   )rj   s   "rk   rl   Ú%inductor_random.<locals>.__annotate__g  s   € ÷ 	ñ 	 ð 	°ñ 	rm   c                óT   € V \         P                  \         P                  39   d   ^# ^# r2  )r’   rx  rw  )ré  s   &rk   Ú_vec_from_dtypeÚ(inductor_random.<locals>._vec_from_dtypeg  s   € Ø”e—m‘m¤U§^¡^Ð4Ô4ÙÙrm   c           
     óÂ   <€ S! ^ .4      pS! ^.4      p\         P                  ! VVS\         P                  ! S! V 4      \        P                  4      \        S4      R7      # )r   )Úvec)rY   Ú
rand_eagerr€  r’   r  rÂ   )rg  Úrng_seedÚbase_offsetrš  r›  rÞ  rï  s   &  €€€€rk   rŠ  Ú!inductor_random.<locals>.inner_fnn  sS   ø€ Ù" A 3Ó'ˆHÙ% q cÓ*ˆKÜ—>’>ØØØ!Ü—’™z¨%Ó0´%·+±+Ó>Ü˜“Hôð rm   c                ó�   <€ \        \        S4      ! S! . 4      \        P                  ! S! V 4      \        P                  4      4      # r¯   )rÀ  rY   r€  r’   r  )rg  rä  rš  r›  s   &€€€rk   rŠ  ró  z  s5   ø€ Üœ3 Ô%Ù˜B“Ü—’™z¨%Ó0´%·+±+Ó>óð rm   rŒ  )r•  rÃ  )r4   rƒ  r‚   r’   r  ry  r6   r  r�  rž  rŸ  rŽ  Úalign_random_eagerrù   rà  rD   rü   rí  )rý   r   rä  r  rá  r¿   r‰   rì  rŠ  rù  rš  r›  rÞ  rï  s   &&f$$     @@@@rk   Úinductor_randomrö  O  s
  ü€ ô ××ÐÜÐCÓDÐDØÐ$Ô$ÜÐBÓCÐCØˆTˆ7€DÜ�M‰M€EØ×%Ñ%Ó'€FÜ—’Ø�tœR×.Ñ.×AÑAÀ$ÓGÐPVôç�lƒnð ð ×"Ñ"Ó$€Kä× × Ð  V§[¡[°FÔ%:Ü1°&Ó9Ðõ	ñ
 ˜kÓ*ˆ÷		ñ 		÷	ô ×ÒØØØØ�ˆwô	€Fð ‡N�NÔØ€Mrm   c          
     ó,   € V ^8„  d   QhRRRRRRRRRR/# )	rf   ÚlowrÂ   Úhighrý   rã  r   rG   r  ri   )rj   s   "rk   rl   rl   �  s4   € ÷ ñ Ø	ðØðØ(ðØ09ðØFIñrm   c               óˆ  a aaa	€ \         P                  '       d   \        R 4      h. VOp\        P                  pVP                  4       p\        P                  ! WeV\        P                  P                  V4      VR7      P                  4       oVP                  4       o	VV VV	3R lp\        P                  ! VVV. VOR7      # )ræ  rç  c           	     ó   <€ \         P                  ! S! . 4      \         P                  ! S! V 4      \        P                  4      \         P
                  ! S\        P                  4      \         P
                  ! S\        P                  4      4      # r¯   )rY   Ú	randint64r€  r’   r  Ú
value_exprr-  )rg  rù  rø  rš  r›  s   &€€€€rk   rŠ  Ú"inductor_randint.<locals>.inner_fnœ  sV   ø€ Ü�}Š}Ù˜‹OÜ�NŠN™: eÓ,¬e¯k©kÓ:Ü�NŠN˜3¤§¡Ó,Ü�NŠN˜4¤§¡Ó-ó	
ð 	
rm   rŒ  )r4   rƒ  r‚   r’   r-  ry  r6   r  r�  rž  rŸ  rŽ  rD   rü   )
rø  rù  rý   r   r  r¿   r‰   rŠ  rš  r›  s
   ff&&$   @@rk   Úinductor_randintrÿ  Ž  s¯   û€ ô ××ÐÜÐCÓDÐDØˆTˆ7€DÜ�K‰K€EØ×%Ñ%Ó'€FÜ—’Ø�tœR×.Ñ.×AÑAÀ$ÓGÐPVôç�lƒnð ð ×"Ñ"Ó$€K÷
ð 
ô ×ÒØØØØ�ˆwô	ð rm   c               ó    € V ^8„  d   QhRRRR/# )rf   ÚtbrG   rg   z.tuple[str, sympy.Expr, sympy.Expr, sympy.Expr]ri   )rj   s   "rk   rl   rl   ¬  s   € ÷ ñ ˜9ð Ð)Wñ rm   c                ó¾   € V P                  4       pV P                  4       pV P                  4       VR,          V P                  4       P	                  4       VR,          3# r·  )rÝ   r  r  r  Ústorage_size)r  rý   r  s   &  rk   Ú_boundaries_helperr  ¬  sK   € Ø�;‰;‹=€DØ�]‰]‹_€Fà
�‰‹ØˆR�Ø
�‰‹×$Ñ$Ó&Øˆr�
ð	ð rm   c               ó    € V ^8„  d   QhRRRR/# )rf   r  rG   rg   ri   )rj   s   "rk   rl   rl   ·  s   € ÷ 8ñ 8¨ð 8°yñ 8rm   c                óR   € \        \        P                  P                  V 4      4      # r¯   )rG   r6   r9  Úrealize_input©r  s   &rk   Ú _realize_bucketize_lookup_tensorr	  ·  s   € ô ”R—_‘_×2Ñ2°2Ó6Ó7Ð7rm   c               ó    € V ^8„  d   QhRRRR/# )rf   r  rG   rg   ztuple[str, sympy.Expr]ri   )rj   s   "rk   rl   rl   ½  s   € ÷ .ñ .�yð .Ð%;ñ .rm   c                óP   € V P                  4       V P                  4       R,          3# r·  )r  r  r  s   &rk   Ú_sorter_helperr  ½  s   € Ø�;‰;‹=˜"Ÿ-™-›/¨"Õ-Ð-Ð-rm   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	rf   r  rG   rg  rÑ  Úindex_dtyperÀ   rg   r	   ri   )rj   s   "rk   rl   rl   Á  s,   € ÷ 	8ñ 	8Øð	8Ø.ð	8Ø=Hð	8àñ	8rm   c           
     óh  € V P                  4       pV P                  4       P                  \        R  \	        VRR VRR 4       4       \
        P                  P                  4      ,           pV'       g,   \        V\
        P                  4      '       d   \        V4      # \        P                  ! WB4      # )c              3  ó6   "  € T F  w  rW,          x € K  	  R # 5ir¯   ri   )r	  r“  r†   s   &  rk   r  Ú%_bucketize_indices.<locals>.<genexpr>Æ  s   é € Ð9Ñ8‘4�1ˆ�ŠÓ8ùó   ‚Nr½  )r  r  r  Úsumr   rÊ   rO  rÅ  r~   ÚIntegerrÂ   rY   r€  )r  rg  r  ÚstridesÚflattened_indexs   &&&  rk   Ú_bucketize_indicesr  Á  s€   € ð �m‰m‹o€GØ—m‘m“o×,Ñ,¬sÙ9œ3˜w s¨˜|¨U°3°B¨ZÔ8Ó9¼5¿7¹7¿<¹<ó0õ €O÷ ”Z ´·±×?Ò?Ü�?Ó#Ð#Ü�>Š>˜/Ó7Ð7rm   Ú	out_int32ÚrightÚsideÚsorterc               ó4   € V ^8„  d   QhRRRRRRRRRRR	R
RR/# )rf   Úsorted_sequencerG   Úselfr  rh   r  r  rŽ  r  úTensorBox | Nonerg   ri   )rj   s   "rk   rl   rl   Î  sW   € ÷ Zñ ZØðZà
ðZð ð	Zð
 ðZð ðZð ðZð ñZrm   c          	     ó€  a aaa
a€ R  pV! S 4      '       d!   V! V4      '       d   Se@   V! S4      '       g2   \        \        P                  P                  RR7      ! S VVSVSR7      # Ve
   VR8X  d   RoV'       d   \        P
                  M\        P                  o
VP                  4       o\        S 4      o Se   \        S4      o\        S P                  4       4      ^8X  d   V
VV VV3R lpM
V
VV VV3R lpVP                  4       p\        P                  ! VS
VVP                  R7      p	V	P                  4        V	# )	c                ó^   € \         P                  P                  V \        P                  4      # r¯   )rZ   rp   rê  rë  Ú	BUCKETIZEr  s   &rk   rq  Úsearchsorted.<locals>.<lambda>×  s   € ¤A§G¡G×$7Ñ$7Ø
ŒN×$Ñ$ô%rm   Fr"  )r  r  r  r  r  Tc                óÀ   <€ S! V 4      p\         P                  ! T\        S4      \        SRS4      SSSf   R M
\	        S4      Sf   R R7      # \        SRS4      R7      # )N©r  Úsorter_indicesri   )rY   Ú	bucketizer  r  r  )rƒ  rš  r  r  r  r  Úvalues_loaders   & €€€€€rk   rŠ  Úsearchsorted.<locals>.inner_fnú  sm   ø€ Ù Ó$ˆCÜ—=’=ØÜ" ?Ó3Ü" ?°B¸ÓDØØØ%š~‘t´>À&Ó3Ið ’~ð ôð ô ,¨F°B¸ÓDôð rm   c                óÂ   <a € S! S 4      pR  V V3R llp\         P                  ! T\        S4      V! S4      SSSf   RM
\        S4      Sf   RR7      # V! S4      R7      # )c               ó   € V ^8„  d   QhRR/# )rf   r  rG   ri   )rj   s   "rk   rl   Ú4searchsorted.<locals>.inner_fn.<locals>.__annotate__  s   € ÷ @ñ @¨	ñ @rm   c                ó   <€ \        V SS4      # r¯   )r  )r  rƒ  r  s   &€€rk   Úget_flattened_indexÚ;searchsorted.<locals>.inner_fn.<locals>.get_flattened_index  s   ø€ Ü)¨"¨c°;Ó?Ð?rm   Nr%  )rY   r'  r  r  )rƒ  rš  r.  r  r  r  r  r(  s   f  €€€€€rk   rŠ  r)    so   ù€ Ù Ó$ˆC÷@ñ @ô —=’=ØÜ" ?Ó3Ù# OÓ4ØØØ%š~‘t´>À&Ó3IØ'-¢~˜tôð ñ <OÈvÓ;Vôð rm   rŒ  )r'  r:  Úsearchsortedr«  r’   r  r-  rŽ  r	  rÜ   rÝ   r�   rD   rü   r¹  rí  )r  r  r  r  r  r  Úvalidate_bucketizerŠ  r‰   rù  r  r(  s   f&$d$d    @@rk   r0  r0  Í  s  ü€ ñÐñ ˜×/Ò/Ù! $×'Ò'ØÒÑ'9¸&×'AÒ'Aä¤× 1Ñ 1× 8Ñ 8ÈeÕTØØØØØØô
ð 	
ð Ò˜D GœOØˆç!*”%—+’+´·±€KØ×$Ñ$Ó&€Mô 7°ÓG€OàÒÜ1°&Ó9ˆä
ˆ?×#Ñ#Ó%Ó&¨!Ô+÷	ò 	÷$	ñ 	ð$ �_‰_Ó€FÜ×ÒØØØØ�z‰zô	€Fð ‡N�NÔà€Mrm   c               ó(   € V ^8„  d   QhRRRRRRRR/# )rf   rÞ  rG   Ú
boundariesr  rh   r  ri   )rj   s   "rk   rl   rl   .  s0   € ÷ 6ñ 6Øð6àð6ð ð	6ð
 ñ6rm   c               ó¶  aaaa€ \        SP                  4       4      ^8w  d   \        R4      h\        P                  P                  V \        P                  4      '       d5   \        P                  P                  S\        P                  4      '       g0   \        \        P                  P                  RR7      ! V SVSR7      # \        S4      oV P                  4       pV P                  4       oV'       d   \        P                   M\        P"                  oVVVV3R lp\$        P&                  ! VSVV P                  4       R7      pVP)                  4        V# )rÚ   z)expected: len(boundaries.get_size()) == 1Fr"  )r  r  c           	     ót   <€ S! V 4      p\         P                  ! V\        S4      \        SRS4      SS4      pV# )Nri   )rY   r'  r  r  )rg  rš  r|  r3  r  rT  r  s   &  €€€€rk   rŠ  Úbucketize.<locals>.inner_fnH  s?   ø€ Ù˜5Ó!ˆÜ—-’-ØÜ˜zÓ*Ü˜z¨2¨{Ó;ØØó
ˆð ˆrm   rŒ  )rÜ   rÝ   r‚   rZ   rp   rê  rë  r"  r'  r:  r'  r«  r	  r�   rŽ  r’   r  r-  rD   rü   rí  )	rÞ  r3  r  r  r‰   rŠ  rù  r  rT  s	   &f$d   @@rk   r'  r'  +  s  û€ ô ˆ:×ÑÓ Ó! QÔ&ÜÐHÓIÐIô 	
�‰×Ñ˜E¤>×#;Ñ#;×<Ò<Ü�G‰G×Ñ 
¬N×,DÑ,D×EÒEä¤§¡× 5Ñ 5È5ÕQØ�:¨¸%ô
ð 	
ô 2°*Ó=€JØ×ÑÓ€FØ×$Ñ$Ó&€Lç!*”%—+’+´·±€K÷
ð 
ô ×ÒØØØØ�~‰~Óô	€Fð ‡N�NÔà€Mrm   c                ó¤   € \        V \        P                  4      ;'       d0    \        V \        P                  \        P                  34      '       * # r¯   )r~   r6   r>   ÚNonTensorObjÚOpaqueMultiOutputrÍ   s   &rk   Ú_is_tensor_irnoder:  g  s?   € Ü�aœŸ™Ó#÷ ð ¬JØ	ŒB�O‰OœR×1Ñ1Ð2ó-ô )ð rm   c                óv   € \         P                  ! \        \        P                  P
                  W34      w  rW3# r¯   )r•  Útree_map_onlyr:  r6   r9  Úrequire_stride1©r  r‡   r  s   &*,rk   Úrequire_denser?  m  s1   € Ü×'Ò'Üœ2Ÿ?™?×:Ñ:¸T¸Nó�L€Dð ˆ<Ðrm   c                óv   € \         P                  ! \        \        P                  P
                  W34      w  rW3# r¯   )r•  r<  r:  r6   r9  Úrequire_contiguousr>  s   &*,rk   rA  rA  t  s3   € Ü×'Ò'ÜÜ
�‰×*Ñ*Ø	ˆó�L€Dð
 ˆ<Ðrm   c                óv   € \         P                  ! \        \        P                  P
                  W34      w  rW3# r¯   )r•  r<  r:  r6   r9  r    r>  s   &*,rk   r    r    }  s5   € ô ×'Ò'ÜÜ
�‰×2Ñ2Ø	ˆó�L€Dð
 ˆ<Ðrm   c                óv   € \         P                  ! \        \        P                  P
                  W34      w  rW3# r¯   )r•  r<  r:  r6   r9  rð  r>  s   &*,rk   rð  rð  ˆ  s3   € Ü×'Ò'ÜÜ
�‰×-Ñ-Ø	ˆó�L€Dð
 ˆ<Ðrm   c           	     óþ  € Vf   V # \        V\        4      '       g   \        V4      '       d   V # \        V \        P                  4      '       d.   \        P
                  P                  WP                  4       4      # \        V \        4      '       d)   V  Uu/ uF  q"\        W,          W,          4      bK  	  up# \        V \        \        34      '       d"   \        V 4      ! R \        W4       4       4      # V # u upi )Nc              3  ó<   "  € T F  w  r\        W4      x € K  	  R # 5ir¯   ©Úconstrain_to_fake_tensor)r	  r
  Úf_as   &  rk   r  Ú+constrain_to_fake_tensor.<locals>.<genexpr>›  s   é € ð 
Ù=O±°!Ô$ Q×,Ð,Ó=Oùó   ‚)r~   r   r   r6   r>   r9  Úrequire_exact_stridesr  r3  rG  r±   r|   rù   r   )râ   Úfake_argÚkeys   && rk   rG  rG  ‘  sÌ   € ØÒØˆ
Ü�(Ô,×-Ò-Ô1DÀX×1NÒ1NØˆ
Ü�#”r—y‘y×!Ò!Ü�‰×4Ñ4°S¿/¹/Ó:KÓLÐLÜ�#”t×ÒÙRUÓVÑRUÈ3Ô-¨c­h¸½ÓFÒFÑRUÑVÐVÜ	�Cœ%¤˜×	'Ò	'Ü�CŒyñ 
Ü=@ÀÔ=Oó
ó 
ð 	
ð €Jùò Ws   Â!C:c           
     óø   € \         ;QJ d    . R  \        W4       4       F  NK  	  5M! R  \        W4       4       4      p VP                  4        UUu/ uF  w  rEV\        WSV,          4      bK  	  pppW3# u uppi )c              3  ó<   "  € T F  w  r\        W4      x € K  	  R # 5ir¯   rF  )r	  râ   rL  s   &  rk   r  Ú,constrain_to_fake_tensors.<locals>.<genexpr>¢  s!   é € ð á1‰MˆCô 	! ×/Ð/Û1ùrJ  )r±   r   r  rG  )r‡   r  Ú	fake_argsÚfake_kwargsr  r#  s   &&&&  rk   rž   rž   ¡  ss   € ßŒ5ñ ä  Ô1ó�5‰5ñ ä  Ô1óó €Dð JPÏÉÌÔXÉÁÀˆaÔ)¨!¸­^Ó<Ò<É€FÑXØˆ<Ðùó Ys   ÁA6c           
     óR  aa€ R  oVV3R lo\         ;QJ d*    . V3R l\        WP                  4       4       F  NK  	  5M#! V3R l\        WP                  4       4       4      pVP                  4        UUu/ uF  w  r4VS! W@P                  V,          4      bK!  	  pppW3# u uppi )c                ó�   € \        V \        P                  P                  4      '       d   V P                  P                  R 4      # V # )rš  )r~   r’   ræ  rç  r“  r”  )Úfx_args   &rk   Úget_fake_valÚ-constrain_to_fx_strides.<locals>.get_fake_val«  s/   € Ü�fœeŸh™hŸm™m×,Ò,Ø—;‘;—?‘? 5Ó)Ð)Øˆrm   c           	     ó¶  <€ S! V4      p\        V 4      '       d‰   \        V\        P                  4      '       g   V # \        P
                  ! VP                  4       \        P                  P                  P                  4      p\        P                  P                  W4      # \        V \        4      '       d>   \        V\        4      '       g   V # V  Uu/ uF  qDS! W,          W$,          4      bK  	  up# \        V \        \        34      '       dC   \        V\        \        34      '       g   V # \!        V 4      ! V3R  l\#        W4       4       4      # V # u upi )c              3  ó8   <"  € T F  w  rS! W4      x € K  	  R # 5ir¯   ri   )r	  r
  Úfx_aÚapply_constraints   &  €rk   r  ÚDconstrain_to_fx_strides.<locals>.apply_constraint.<locals>.<genexpr>À  s    øé € ð Ù9K©g¨aÑ  ×)Ð)Ó9Kùó   ƒ)r:  r~   r’   r«  r6   rÅ  r  rZ   rp   r÷   rÚ  r9  rÆ  r3  r±   r|   rù   r   )râ   rU  Úfake_valrÈ  rM  r[  rV  s   &&   €€rk   r[  Ú1constrain_to_fx_strides.<locals>.apply_constraint°  s  ø€ Ù Ó'ˆÜ˜S×!Ò!Ü˜h¬¯©×5Ò5Ø�
Ü×.Ò.Ø—‘Ó!¤1§7¡7×#3Ñ#3×#=Ñ#=óˆLô —?‘?×7Ñ7¸ÓJÐJÜ�cœ4× Ò Ü˜h¬×-Ò-Ø�
ÙNQÓRÉcÀsÑ)¨#­(°HµMÓBÒBÉcÑRÐRÜ�cœE¤4˜=×)Ò)Ü˜h¬´¨×6Ò6Ø�
Ü˜”9ô Ü9<¸SÔ9Kóó ð ð ˆ
ùò Ss   ÃEc              3  ó8   <"  € T F  w  rS! W4      x € K  	  R # 5ir¯   ri   )r	  râ   rU  r[  s   &  €rk   r  Ú*constrain_to_fx_strides.<locals>.<genexpr>Å  s    øé € ð Ù9P©+¨#Ñ˜×%Ð%Ó9Pùr]  )r±   r   r‡   r  r  )Úfx_noder‡   r  r  r#  r[  rV  s   &*,  @@rk   r¢   r¢   ª  s�   ù€ òö
÷* Œ5ô Ü9<¸TÇ<Á<Ô9Pó�5‰5ô Ü9<¸TÇ<Á<Ô9Póó €Dð EKÇLÁLÄNÔSÁN¹D¸AˆaÑ! !§^¡^°AÕ%6Ó7Ò7ÁN€FÑSØˆ<Ðùó Ts   Á8%B#c                óR   € \         P                  '       g   W3# \        V .VO5/ VB # r¯   )r4   rƒ  r¢   )rb  r‡   r  s   &*,rk   Ú*constrain_to_fx_strides_if_fallback_randomrd  Ì  s+   € Ü×!×!Ð!Øˆ|ÐÜ" 7Ð<¨TÒ<°VÑ<Ð<rm   c                ó†  a aa€ VV 3R loV 3R lo\         ;QJ d4    . V3R l\        \        VS P                  4      4       4       F  NK  	  5M-! V3R l\        \        VS P                  4      4       4       4      pVP	                  4        UUu/ uF!  w  r4VS! RVS P
                  V,          4      bK#  	  pppW3# u uppi )zGApply stride constraints to SDPA inputs, ensuring dense last dimension.c           
     ó0  <€ \        V4      '       g   V# VP                  R ,          pVP                  4        Uu. uF;  p\        V\        P
                  4      '       d   VP                  P                  MTNK=  	  pp\        P                  P                  P                  p\        P                  ! VP                  4       V4      pV'       dC   VR,          ^ 8w  d5   \        \        \!        \#        VP%                  4       4      4      4      4      pSP&                  \(        P*                  P,                  8X  d%   V R9   d   \#        V4      ^8w  d   \/        R4      hRpRp\0        P2                  '       dr   VP5                  4       p	\7        V4      T	V'       d   \9        V4      MR3pV\        P                  P:                  9   d"   \        P                  P:                  V,          # S! WW5V4      p
Ve   V
\        P                  P:                  V&   V
# u upi )rš  z expected: len(stride_order) == 4Nr½  )r   é   )é   rÚ   rf   r   )r:  r“  r  r~   r’   ÚSymIntrv   ÚexprrZ   rp   r÷   rÚ  r6   rÅ  r|   rN  r!  rÜ   rÝ   rt   r:  Ú0_scaled_dot_product_efficient_attention_backwardr*  r‚   r4   Úcache_sdpa_constraintÚmaybe_get_nameÚidr±   Úsdpa_constraint_cache)rƒ  râ   rU  Úmeta_valr“  Úmeta_stride_exprrÚ  rÈ  Ú	cache_keyÚarg_namerù  Ú_apply_constraint_innerrb  s   &&&        €€rk   r[  Ú)sdpa_constraint.<locals>.apply_constraintÝ  s¤  ø€ Ü  ×%Ò%ØˆJà—;‘;˜uÕ%ˆàGOÇÁÔGXó
ÙGXÀ!œ: a¬¯©×6Ò6ˆA�F‰F�KŠK¸AÒ=ÑGXð 	ð 
ô —G‘G×$Ñ$×.Ñ.ˆ	Ü×*Ò*¨8¯?©?Ó+<¸iÓHˆç˜L¨Õ,°Ô1ä¤¬¬s°3·<±<³>Ó/BÓ)CÓ DÓEˆLð �N‰NÜ×DÑD×LÑLôMà�v”ä�<Ó  AÔ%Ü$Ð%GÓHÐHð
 (ˆLð ˆ	Ü×'×'Ð'Ø×)Ñ)Ó+ˆHä�3“Øß'3”�lÔ#¸ðˆIð
 œAŸG™G×9Ñ9Ô9Ü—w‘w×4Ñ4°YÕ?Ð?á(Ø�h°,ó
ˆð Ò Ø7=ŒA�G‰G×)Ñ)¨)Ñ4Øˆùò[
s   ºAHc                óÒ	  <a€ VP                   '       g2   VP                  '       g    \        P                  P	                  W4      # ^oSP
                  \        P                  P                  P                  P                  8H  ;'       d    V ^8H  p\        V\        4      '       g   \        R4      h\        VP                  4       4      R9  d   V# \        P                   ! VS4      pV'       d5   \        P"                  ! \        P                  P%                  V4      V4      # \        V\&        4      '       dO   VP)                  4       e=   V'       d5   \        P"                  ! \        P                  P%                  V4      V4      # V'       Ed   \+        VP                  4       4      p. pVP)                  4       p	\-        \        VP                  4       4      ^,
          4       Fˆ  p
\.        P0                  P2                  P5                  W:,          ^ 4      '       g?   V	f   K?  \.        P0                  P2                  P5                  Wš,          ^ 4      '       g   Kw  VP7                  V
4       KŠ  	  R.\        V4      ,          p^VR&   ^p\-        \        V4      ^,
          RR4       FÑ  p
Wº^,           ,          ^ 8w  d   WÇV
^,           ,          ,          pW¨9   dN   \.        P0                  P2                  P5                  \9        Wº^,           ,          S4      ^ 4      '       d   ^ Wº&   K€  \.        P0                  P2                  P5                  \9        VS4      ^ 4      '       g   \;        VS4      S,          pWËV
&   KÓ  	  \        P                  P=                  W4      # V'       d5   \        P"                  ! \        P                  P%                  V4      V4      # \        V\&        4      '       dO   VP)                  4       e=   V'       d5   \        P"                  ! \        P                  P%                  V4      V4      # V3R lp\        VP>                  \        P@                  4      '       d_   V! V4      '       gQ   V! VPC                  4       4      '       d5   \        P"                  ! \        P                  P%                  V4      V4      # \        P                  P	                  W4      # )r3  z$expected: isinstance(arg, TensorBox)c                óæ   <€ V P                  4       p\        V4      ^ 8X  d   R# \        P                  P                  P                  \        P                  ! \        VR,          S4      ^ 4      4      # )r   Fr½  )	rÝ   rÜ   rZ   rp   r÷   r�  rÊ   r�  r0   )r¸   rý   Ú	ALIGNMENTs   & €rk   Ú
is_alignedÚDsdpa_constraint.<locals>._apply_constraint_inner.<locals>.is_alignedj  sR   ø€ Ø—:‘:“<ˆDÜ�4‹y˜AŒ~ÙÜ—7‘7×#Ñ#×2Ñ2Ü—’œ˜T "�X yÓ1°1Ó5óð rm   ©rh  r«  r½  )"Úis_cudaÚis_xpur6   r9  rÆ  rt   r’   rY   r:  Ú'_scaled_dot_product_efficient_attentionr*  r~   rG   r‚   rÜ   rÝ   Úis_aligned_realized_tensorÚtry_match_insignificant_stridesr  r>   r  r|   r!  rZ   rp   r÷   rü  rƒ   r0   rJ   rK  r€   r:   r  )rƒ  râ   rp  rq  rÈ  Úeffn_attn_fwd_biasÚis_aligned_tensorr;  Úexpanded_dimsÚmaybe_strider†   Úout_stridesr  ry  rx  rb  s   &&&&&         @€rk   rt  Ú0sdpa_constraint.<locals>._apply_constraint_inner  s®  ù€ Ø× × Ð  H§O§O OÜ—?‘?×7Ñ7¸ÓJÐJð ˆ	ð �N‰NÜ�y‰y�~‰~×EÑE×MÑMñN÷ ð à�q‘ð 	ô ˜3¤	×*Ò*Ü Ð!GÓHÐHÜˆs�|‰|‹~Ó fÔ,ØˆJä×9Ò9¸#¸yÓIÐßÜ×5Ò5Ü—‘×-Ñ-¨cÓ2Ð4Dóð ô
 �sœF×#Ò#Ø×$Ñ$Ó&Ò2ß!ä×5Ò5Ü—‘×-Ñ-¨cÓ2Ð4Dóð ÷ ÐÜ˜CŸL™L›NÓ+ˆHàˆMð ×/Ñ/Ó1ˆLÜœ3˜sŸ|™|›~Ó.°Õ2Ö3�Ü—7‘7×#Ñ#×;Ñ;Ð<LÕ<OÐQR×SÒSØ Ô,ÜŸ™×(Ñ(×@Ñ@ÀÅÐRS×TÔTà!×(Ñ(¨Ö+ñ 4ð ˜$¤ X£Õ.ˆKØˆK˜‰OØˆFÜœ3˜x›=¨1Õ,¨b°"Ö5�Ø 1�uÕ%¨Ô*Ø#¨q°1­u¥oÕ5�Fð Ô%Ü—w‘w×'Ñ'×?Ñ?Ü˜K¨A­Õ.°	Ó:¸A÷ò ð *+˜™Ù ä—w‘w×'Ñ'×?Ñ?Ü˜ 	Ó*¨A÷ò ô % V¨YÓ7¸)ÕC�Fà!'˜A“ñ% 6ô( —?‘?×8Ñ8¸ÓJÐJçÜ×5Ò5Ü—‘×-Ñ-¨cÓ2Ð4Dóð ô
 �sœF×#Ò#Ø×$Ñ$Ó&Ò2ß!ä×5Ò5Ü—‘×-Ñ-¨cÓ2Ð4Dóð õ	ô �c—h‘h¤§¡×,Ò,Ù˜c—?’?Ù˜cŸo™oÓ/×0Ò0Ü×=Ò=ÜŸ™×5Ñ5°cÓ:Ð<Lóð ô �‰×3Ñ3°CÓFÐFrm   c              3  ó@   <"  € T F  w  pw  r#S! WV4      x € K  	  R # 5ir¯   ri   )r	  rƒ  râ   rU  r[  s   &   €rk   r  Ú"sdpa_constraint.<locals>.<genexpr>{  s)   øé € ð á"DÑˆC‘�#ñ 	˜ 6×*Ð*Û"Dùó   ƒr½  )r±   r}   r   r‡   r  r  )rb  r‡   r  r  r#  rt  r[  s   f*,  @@rk   Úsdpa_constraintrŠ  Ú  s£   ú€ ö2õhhG÷T Œ5ô ä"+¬C°°g·l±lÓ,CÔ"Dó�5‰5ô ä"+¬C°°g·l±lÓ,CÔ"Dóó €Dð IOÏÉÌÔWÉÁÀˆaÑ! " a¨¯©¸Õ):Ó;Ò;É€FÑWØˆ<Ðùó Xs   Â'B=)rW  c           
     ó6  € \         P                  P                  V 4      p V P                  4       pV P	                  4       pVf   \        R4      hVe   TMV P                  4       pR p\         P                  ! \         P                  ! VR7      \        P                  P                  V .W.V4      p\         P                  ! \         P                  ! VVV\         P                  P                  V4      4      V. 4      pV.Vn        \"        P$                  ! V4      # )Nz+realized _to_dense input must have a devicec                ó   € V ^ ,          .VO/ 3# rf  ri   )Útensor_argsÚnon_tensor_argss   &&rk   Úunflatten_argsÚ!_to_dense.<locals>.unflatten_args/  s   € Ø˜A•Ð1 Ð1°2Ð5Ð5rm   r]  )r6   r9  r  rÝ   r�   r‚   rÉ   rP  ÚMultiOutputLayoutr:  Ú	_to_denser*  ÚMultiOutputr  r�  rž  rð  rG   rü   )	r¸   r¿   Úmasked_gradrý   r‰   Úoutput_dtyper�  Úpackedr„   s	   &&&      rk   r’  r’  &  sì   € ä
�‰×%Ñ% aÓ(€AØ�:‰:‹<€DØ�\‰\‹^€FØ‚~ÜÐJÓKÐKØ!Ò-‘5°1·;±;³=€Lò6ô ×ÒÜ
×Ò FÔ+Ü�‰×ÑØ	
ˆØ	ÐØó€Fô �.Š.Ü
�ŠØØØÜ×Ñ×0Ñ0°Ó6ó		
ð 	Ø
ó	€Cð �U€F„NÜ×Ò˜CÓ Ð rm   c                ó”  € \        V\        P                  4      '       g*   \        WP	                  4       V P                  4       R 7      pTpV P                  4       VP                  4       8w  d   \        W0P                  4       4      pV P	                  4       VP	                  4       8w  d   \        W0P	                  4       4      pV P                  4       VP                  4       8w  d&   \        W0P                  4       4      p\        V4      pM\        V4      pV P                  4       pVe   VP                  '       d   \        V4       V# )rÀ  )r~   r6   r>   rn  rÉ   r�   rH  r  rÝ   rS  rý  r   Ú	is_pinnedÚ_realize_as_pinned)r  r  rD  r¸   r„   rù  Úself_layouts   &&&    rk   rõ  rõ  ‘  sá   € ä�cœ2Ÿ9™9×%Ò%Ü�S§¡Ó 0¸¿¹Ó9JÔKˆØ€AØ‡�Ó˜CŸN™NÓ,Ô,Ü�aŸ™Ó*Ó+ˆØ‡~�~Ó˜3Ÿ=™=›?Ô*Ü�QŸ™Ó(Ó)ˆà‡}�}ƒ˜#Ÿ,™,›.Ô(Ü�QŸ™›Ó(ˆÜ�s“‰ä�q“ˆà×'Ñ'Ó)€KØÒ ;×#8×#8Ð#8Ü˜6Ô"Ø€Mrm   Úmemory_formatc          	     ó¸   € \         P                  ! V P                  4       V P                  4       V P	                  4       \        V P                  4       4      R 7      # ©rŒ  )rD   rü   r�   rÉ   rŽ  r|   rÝ   )r¸   r›  s   &$rk   rý  rý  §  s@   € ô
 ×ÒØ�|‰|‹~Ø�k‰k‹mØ—‘“Ü�A—J‘J“LÓ!ô	ð rm   c                óx   € V P                  4        R V P                  P                  P                  4       n        R# )TN)rí  r€   r  r˜  )rù  s   &rk   r™  r™  ´  s'   € Ø
‡N�NÔØ.2€F‡K�K×Ñ×ÑÓ!Ö+rm   c                óú  € . p\        V \        4      '       d�   \        V P                  \        P                  4      '       de   V P                  p \        V \        P                  4      '       d.   VP                  V P                  4       4       V P                  p KM  \        V 4      p \        V 4      p V'       dB   V P                  p VR R R1,           F  p\        P                  ! WR7      p K  	  \        V 4      p V # )Nr  r½  )r~   rG   r€   r6   rö   rƒ   r  rý  )r¸   Úreinterpret_view_layoutsr  s   &  rk   Úclone_preserve_reinterpret_viewr¡  ¹  s¶   € Ø!ÐÜ�!”Y×Ò¤J¨q¯v©v´r×7IÑ7I×$JÒ$JØ�F‰Fˆä˜œB×.Ñ.×/Ò/Ø$×+Ñ+¨A¯L©L«NÔ;Ø—‘ŠAÜ�a‹Lˆäˆa‹€AçØ�F‰FˆØ.©t°¨t×4Ð4ˆFÜ×"Ò"¨Ô9ŠAñ 5ä�a‹Lˆà€Hrm   c                ó~   € \        V 4      pV P                  4       pVe   VP                  '       d   \        V4       V# r¯   )rý  r   r˜  r™  )r¸   rù  Úinput_layouts   &  rk   rv  rv  Î  s9   € Ü�1‹X€FØ×%Ñ%Ó'€LØÒ L×$:×$:Ð$:ô 	˜6Ô"Ø€Mrm   rv  c               ó`   aaa€ VVV3R  lp\         P                  ! \        V4      SVV .R7      # )c                ó^   <€ \         P                  ! SV ^ ,          ,          S,           SR7      # )r   rÄ   ©rY   r€  )rg  r¿   rß  rá  s   &€€€rk   r�   Úiota.<locals>.fnæ  s!   ø€ Ü�~Š~˜d U¨1¥X�o°Õ5¸UÔCÐCrm   rŒ  )rD   rü   rL   )Úlengthrß  rá  r¿   r‰   Úrequires_gradr�   s   &ddd$$ rk   Úiotarª  Ü  s1   ú€ ÷Dô ×ÒÜ˜VÓ$ØØØˆxô	ð rm   r¿   r‰   r  r¼  r©  c          	     ó~   € Vf   \        R4      h\        W,
          V4      p\        TT TTVe	   VVR7      # RVR7      # )Nzexpected: dtype is not Nonerõ   ©rß  rá  r¿   r‰   r©  )r‚   rJ   rª  )	rß  rà  rá  r¿   r‰   r  r¼  r©  r¨  s	   &&&$$$$$ rk   Úarange_start_stepr­  ñ  sY   € ð ‚}ÜÐ:Ó;Ð;Ü�S•[ $Ó'€FÜØØØØØÒ+ˆvØ#ôð ð
 27Ø#ôð rm   c               ó    € V ^8„  d   QhRRRR/# )rf   rß   rÂ   rg  ri   )rj   s   "rk   rl   rl     s   € ÷  ñ   ð  ¨Cñ  rm   c           	     ó  aaaa€ \        WP                  4       4      pV P                  4       o\        V S^ 4      o\        P
                  P                  P                  \        P                  ! S^ 4      4      '       d    SV P                  4       S,          ,           oMp\        P
                  P                  P                  \        P                  ! S^ 4      4      '       d   M+\        \        P                  P                  4      ! WSS4      # \        P
                  P                  P!                  ^ S4       \        P
                  P                  P#                  SV P                  4       S,          4       \%        \'        VS4      V P                  4       4      pVP                  4       oVVVV3R lp\(        P*                  ! V P-                  4       V P                  4       V\/        V P                  4       4      R7      # )r   c           	     ó  <€ \         P                  ! \         P                  ! \         P                  ! V S,          \        P
                  4      \         P                  ! S\        P
                  4      4      S! V 4      S! V 4      4      # r¯   )rY   r  r  r€  r’   r  )rƒ  rß   rg  Ú
src_loaderrÈ  s   &€€€€rk   rŠ  Ú select_scatter.<locals>.inner_fn  sX   ø€ Ü�yŠyÜ�FŠFÜ—’˜s 3�x¬¯©Ó5Ü—’˜u¤e§k¡kÓ2óñ �s‹OÙ�S‹Mó
ð 	
rm   rŒ  )r  rÉ   rŽ  rú  rZ   rp   r÷   r�  rÊ   rí  rÝ   rë  r'  r:  Úselect_scatterr*  r5  r6  rS  r¸  rD   rü   r�   r|   )r¸   r  rß   rg  rŠ  r±  rÈ  s   &&ff @@rk   r³  r³  
  sX  û€ ä
�3Ÿ™›Ó
&€CØ�}‰}‹€HÜ
˜˜3 Ó
"€CÜ‡w�w×Ñ×&Ñ&¤u§x¢x°°qÓ'9×:Ò:Ø˜Ÿ
™
› SÕ)Õ)‰Ü	
�‰×	Ñ	×	(Ñ	(¬¯ª°%¸Ó);×	<Ò	<Øô  ¤× 3Ñ 3× ;Ñ ;Ô<¸QÀSÈ%ÓPÐPä‡G�G×Ñ×Ñ˜q %Ô(Ü‡G�G×Ñ×Ñ˜e Q§Z¡Z£\°#Õ%6Ô7Ü
”˜3 Ó$ a§j¡j£lÓ
3€CØ—‘Ó"€J÷
ð 
ô ×ÒØ�|‰|‹~Ø�k‰k‹mØÜ�A—J‘J“LÓ!ô	ð rm   c           	     ó   a aaaaaaa€ \        VS P                  4       4      pS P                  4       o\        S S^ 4      oS P	                  4       S,          o\
        ;QJ d    R SSS3 4       F  '       g   K   RM	  RM! R SSS3 4       4      '       d¥   \        SS^ 4      pSeB   \        P                  P                  P                  S\        P                  4      '       d   SpM\        SSS4      pVe   Vf/   \        \        P                  P                   4      ! S VSSSS4      # Vo\#        VS4      oM%\$        P&                  P)                  S SSS4      w  oo\+        S P	                  4       4      p\-        SS,
          S^,
          ,           S4      VS&   \/        VP	                  4       4      \/        V4      8w  d   \1        R4      h\3        VP	                  4       V4       F.  w  rš\        P                  P                  P5                  Wš4       K0  	  \7        W4      pVP                  4       oVVVVVVV V3R lp\8        P:                  ! S P=                  4       S P                  4       V\+        S P	                  4       4      R7      # )z3Lower slice_scatter with exact source shape checks.c              3  ó8   "  € T F  p\        V4      x € K  	  R # 5ir¯   )r&   r@  s   & rk   r  Ú slice_scatter.<locals>.<genexpr>6  s   é € Ð
DÑ-C¨Ô  ×#Ð#Ó-Cùó   ‚TFz,expected src and slice to have the same rankc                ó   <a€ S	^ 8X  d   SS8X  d   S
^8X  d	   S! V 4      # \         P                  ! V S,          \        P                  4      p\	        V 4      o\        V S,          S	,
          S
4      SS&   . pS	^ 8w  d^   VP                  \         P                  ! V\         P                  ! \        P                  ! S	4      \        P                  4      4      4       SS8w  d^   VP                  \         P                  ! V\         P                  ! \        P                  ! S4      \        P                  4      4      4       S
^8w  d†   VP                  \         P                  ! \         P                  ! \        V S,          S	,
          ^S
4      \        P                  4      \         P                  ! ^ \        P                  4      4      4       V'       g   \        R4      h\        P                   ! \         P"                  V4      p\         P$                  ! TVV3R l\'        S4      '       d   ^ MR4      p\         P(                  ! VVS! V 4      4      # )r   zexpected: maskc                 ó   <€ S! S 4      # r¯   ri   )Úsrc_idxr±  s   €€rk   rq  Ú1slice_scatter.<locals>.inner_fn.<locals>.<lambda>y  s
   ø€ ‘J˜wÔ'rm   r,  )rY   r€  r’   r-  r|   r,   rƒ   r.  rÊ   rS  r/  r  r1   r�  r‚   r1  rƒ  r0  r1  rÎ   r  )rƒ  r2  r7  Úsrc_valrº  rß   r9  rà  r±  rß  rá  r¸   rÈ  s   &   @€€€€€€€€rk   rŠ  Úslice_scatter.<locals>.inner_fnS  s¡  ù€ Ø�AŒ:˜# œ/¨d°a¬iá˜c“?Ð"ä—.’.  S¥¬5¯;©;Ó7ˆÜ�s“)ˆÜ  C¥¨5Õ 0°$Ó7ˆ�‰àˆØ�AŒ:Ø�K‰KÜ—’ØÜ—N’N¤5§<¢<°Ó#6¼¿¹ÓDóôð �(Œ?Ø�K‰KÜ—’ØÜ—N’N¤5§<¢<°Ó#4´e·k±kÓBóôð �1Œ9Ø�K‰KÜ—’Ü—N’NÜ'¨¨C­°5Õ(8¸!¸TÓBÄEÇKÁKóô —L’L ¤E§K¡KÓ0ó	ô÷ Ü Ð!1Ó2Ð2Ü×Ò¤§¡¨$Ó/ˆÜ—*’*ØÝ'Ü  ×#Ò#‰A¨ó
ˆô
 �yŠyØØÙ�S‹Mó
ð 	
rm   rŒ  )r  rÉ   rŽ  rú  rÝ   rC  rð  rZ   rp   r÷   rü  rý  rþ  r'  r:  Úslice_scatterr*  rô  r6   rÿ  Únormalize_start_endr|   r,   rÜ   r‚   r   rR  rS  rD   rü   r�   )r¸   r  rß   rß  rà  rá  r  r	  Úsrc_sizeÚactualÚexpectedrŠ  r9  r±  rÈ  s   f&ffff      @@@rk   r¾  r¾  .  s   ÿ€ ô �3˜Ÿ™›Ó
&€CØ�}‰}‹€HÜ
˜˜3 Ó
"€CØ�z‰z‹|˜CÕ €Hç
ƒsÑ
D¨e°S¸(Ñ-CÓ
D‡s‡s‚sÑ
D¨e°S¸(Ñ-CÓ
D×DÒDÜ*¨5°(¸AÓ>ˆØŠ?œqŸw™w×/Ñ/×GÑGØ”—‘÷ 
ò  
ð !‰Iä,¨S°(¸HÓEˆIàÒ )Ò"3Ü#¤D×$6Ñ$6×$>Ñ$>Ô?Ø�3˜˜U C¨óð ð ˆÜ'¨	°5Ó9‰ô —\‘\×5Ñ5°a¸¸eÀSÓI‰
ˆˆsä�A—J‘J“LÓ!€HÜ˜S 5�[¨D°1­HÕ5°tÓ<€HˆS�MÜ
ˆ3�<‰<‹>Óœc (›mÔ+ÜÐKÓLÐLÜ §¡£°Ö9ÑˆÜ	�‰×Ñ×%Ñ% fÖ7ñ :ä
�Ó
€CØ—‘Ó"€J÷-
ô -
ô^ ×ÒØ�|‰|‹~Ø�k‰k‹mØÜ�A—J‘J“LÓ!ô	ð rm   c                ó‚   € \        V \        \        34      '       d#   \        V 4      ^ 8”  d   \	        V ^ ,          4      # V # rf  )r~   r|   r±   rÜ   Ú_unwraprÍ   s   &rk   rÄ  rÄ  Š  s0   € Ü�!”dœE�]×#Ò#¬¨A«°¬
Ü�q˜•t‹}ÐØ€Hrm   c          	     ó˜  a aa€ V\         P                  8X  d   \         P                  p\        VR \         P                  39   RV 24       \	        \        S 4      \        4      '       d   S;'       g    \         P                  oMS;'       g    \         P                  ! 4       o. pS\         P                  \         P                  39   o\	        S \        P                  4      '       d   VV V3R lpEM!\	        S \        \        34      '       dM   S'       d=   \	        S \        4      '       d'   \         P                  ! S SR7      P                  4       o V V3R lpM¹\!        S 4      ^ 8X  g4   \	        S ^ ,          \        \        34      '       dG   \!        S 4      ^8:  d7   VP#                  \        P$                  ! \!        S 4      4      4       V V3R lpM@\&        P(                  P+                  \         P                  ! S SY$;'       g    RR7      4      # \,        P.                  ! \1        V4      SVVR7      pV'       d   \3        V4       V# )	Núlayout=c                ó¦   <€ \         P                  ! SS4      pS'       d1   \         P                  ! VSR R7      p\         P                  ! VS4      pV# )Fr±  )rY   r€  r  )rg  rù  Ú_truncate_fpr€   r¿   s   & €€€rk   rŠ  Útensor.<locals>.inner_fn¡  s=   ø€ Ü—^’^ D¨%Ó0ˆFßÜŸš f¨eÀuÔM�ÜŸš f¨eÓ4�ØˆMrm   rÄ   c                ó2   <€ \         P                  ! SS4      # r¯   ©rY   r�  )rg  r€   r¿   s   &€€rk   rŠ  rÉ  ¬  s   ø€ Ü—<’<  eÓ,Ð,rm   c                óŒ   <a a€ VVVV 3R  lo\        S4      ^ 8X  d   \        P                  ! ^ S4      # S! ^ \        S4      4      # )c           	     ó´  <€ W8¼  d   \        R 4      hW,
          ^8X  d   \        P                  ! SV ,          S4      # W,
          ^,          V ,           p\        P                  ! \        P                  ! \        P
                  ! S^ ,          \        P                  4      \        P                  ! V\        P                  4      4      S! W4      S! W!4      4      # )zexpected: start < end)r‚   rY   r�  r  r/  r€  r’   r-  )rß  rà  ÚmidÚbinary_searchr€   r¿   rg  s   && €€€€rk   rÏ  Ú/tensor.<locals>.inner_fn.<locals>.binary_search´  s›   ø€ Ø”<Ü(Ð)@ÓAÐAØ•; !Ô#ÜŸ<š<¨¨U­°UÓ;Ð;Ø•{ qÕ(¨5Õ0�Ü—y’yÜ—F’FÜŸš u¨Q¥x´·±Ó=ÜŸš S¬%¯+©+Ó6óñ " %Ó-Ù! #Ó+óð rm   )rÜ   rY   r�  )rg  rÏ  r€   r¿   s   f@€€rk   rŠ  rÉ  ³  s<   ú€ ÷ð ô �4‹y˜AŒ~Ü—|’| A uÓ-Ð-Ù  ¤C¨£IÓ.Ð.rm   F)r¿   r‰   r¼  rŒ  )r’   ÚjaggedÚstridedr­   r~   rÄ  rÂ   r-  Úget_default_dtyperw  rx  rÊ   rÛ   ra  rn  ro  rÜ   rƒ   r  rZ   rp   Úadd_tensor_constantrD   rü   rL   r™  )	r€   r¿   r‰   r  r¼  r�  rŠ  rù  rÈ  s	   fd$$$   @rk   rn  rn  �  sš  ú€ ð ”—‘ÔÜ—‘ˆÜˆv˜$¤§¡Ð.Ñ.°'¸&¸Ð0BÔCÜ”'˜$“-¤×%Ò%Ø×$Ð$œŸ™‰à×2Ð2œ×0Ò0Ó2ˆà!€FàœUŸ^™^¬U¯]©]Ð;Ñ;€Lä�$œŸ™×$Ò$÷	ñ 	ô 
�Dœ5¤#˜,×	'Ò	'ßœJ t¬U×3Ò3Ü—<’< ¨EÔ2×7Ñ7Ó9ˆD÷	-ô 
ˆT‹�aŒœ: d¨1¥g´´s¨|×<Ò<ÄÀTÃÈaÄà�‰”e—m’m¤C¨£IÓ.Ô/÷	/ô* �w‰w×*Ñ*Ü�LŠLØ˜E¨&×=PÐ=PÈ5ôó
ð 	
ô ×ÒÜ˜VÓ$ØØØô	€F÷ Ü˜6Ô"Ø€Mrm   c                óˆ   € \        V \        4      '       d!   Ve   \        W4      p Ve   \        W4      p V # \	        WVR7      # )NrÀ  )r~   rG   r  rH  rn  )r€   r¿   r‰   s   &&&rk   Ú	as_tensorrÖ  Ù  sA   € ä�$œ	×"Ò"ØÒÜ˜DÓ(ˆDØÒÜ˜TÓ*ˆDØˆÜ�$¨FÔ3Ð3rm   c                ó8   € \        V \        P                  R 7      # rm  r‘  )r€   s   &rk   Úlong_tensorrØ  ä  s   € ä�$œeŸk™kÔ*Ð*rm   c                ó,  € \        \        P                  P                  P                  \        P                  P
                  P                  R ,          4      pVf   \        R4      h\        V4      ^8w  d   \        V4      h\        \        VP                  4       4      4      w  r#\        P                  ! W#V 4      p\        P                  P                  V4      Vn        \        P                  P!                  V4       \        P                  P
                  P                  R,          p\#        V\$        P&                  \$        P(                  \$        P*                  34      '       d   VP,                  P.                  # \0        P2                  ! V4      # )r×  r  rš  )r(   rZ   rp   r÷   rÚ  rq   r“  r‚   rÜ   rv  r  r  r6   ÚDynamicScalarrÝ  rð   rÞ  r~   r’   ri  ÚSymFloatÚSymBoolrv   rj  rÊ   rB  )r€   r×  Úbinding_symræ  r$  rš  s   &     rk   Ú_local_scalar_denserÞ  é  s  € ô 2Ü	�‰×Ñ×"Ñ"¤A§G¡G×$8Ñ$8×$=Ñ$=Ð>QÕ$RóÐð Ò ÜÐFÓGÐGÜ
ÐÓ Ô"ÜÐ.Ó/Ð/ô   ¤Ð%6×%<Ñ%<Ó%>Ó ?Ó@Ñ€KÜ×Ò˜k°DÓ9€FÜ—'‘'×)Ñ)¨&Ó1€F„KÜ‡G�G×Ñ˜vÔ&ô �'‰'×
Ñ
×
#Ñ
# EÕ
*€CÜ�#œŸ™¤e§n¡n´e·m±mÐD×EÒEØ�x‰x�}‰}Ðä�}Š}˜SÓ!Ð!rm   c                ó   € R # r¯   ri   )r€   r¦   s   &&rk   Ú_assert_scalarrà    s   € ñ rm   c               ó   € R # r¯   ri   )r
  rý   r  r¿   r‰   r  s   &&&&$$rk   Ú_assert_tensor_metadatarâ  "  s   € ñ rm   c                óÜ  aaa€ V o\        V \        \        34      '       g   \        SR 4      '       d   SP                  o\        S\        \        34      '       d	   VV3R lpMg\        S\
        P                  4      '       d	   VV3R lpM?\        SP                  4       4      ^ 8w  d   \        R4      hSP                  4       oV3R lp\        P                  ! VSV\        V4      R7      # )r  c                ó2   <€ \         P                  ! SS4      # r¯   rË  ©rg  r¿   r  s   &€€rk   rŠ  Ú_full.<locals>.inner_fn0  s   ø€ Ü—<’<  uÓ-Ð-rm   c                ó2   <€ \         P                  ! SS4      # r¯   r¦  rå  s   &€€rk   rŠ  ræ  5  s   ø€ Ü—>’> %¨Ó/Ð/rm   z$expected: len(value.get_size()) == 0c                ó   <€ S! . 4      # r¯   ri   )rg  Úvalue_loaders   &€rk   rŠ  ræ  =  s   ø€ Ù Ó#Ð#rm   rŒ  )r~   rÂ   ra  r  r  rÊ   rÛ   rÜ   rÝ   r‚   rŽ  rD   rü   r|   )Ú
fill_valuer‰   r¿   rý   rŠ  r  ré  s   &&f& @@rk   Ú_fullrë  )  s¶   ú€ Ø€EÜ�j¤3¬ ,×/Ò/´G¸EÀ7×4KÒ4KØ—‘ˆä�%œ#œu˜×&Ò&÷	.ô 
�Eœ5Ÿ;™;×	'Ò	'÷	0ô ˆu�~‰~ÓÓ  AÔ%Ü Ð!GÓHÐHØ×(Ñ(Ó*ˆõ	$ô ×ÒØØØÜ�D‹zô	ð rm   c                ó8   € \        \        V4      4      ! V 3/ VB # r¯   ©Úcreate_tensor_likeÚtensor_constructor)r¸   rê  r  s   &&,rk   rŸ  rŸ  H  s   € ÜÔ0°Ó<Ô=¸aÑJÀ6ÑJÐJrm   c           
     ó,   a € R RRRRRRRRR/V 3R llpV# )r¿   Nr‰   r  r¼  Fr›  c                óx  <€ \        VR \        P                  39   RV 24       \        V'       * R4       \        V4      pT ;'       g    \        P                  ! 4       p \        V4      ^8X  dE   \        V^ ,          \        \        \        P                  34      '       d   \        V^ ,          4      pV F.  p\        V\        P                  4      '       g   K%  \        R4      h	  V Uu. uF  p\        P                  ! V4      NK  	  pp\        S\        V4      W4      pV'       d   \        V4       V# u upi )NrÆ  r›  z)expected: not isinstance(s, torch.SymInt))r­   r’   rÒ  rL   rÓ  rÜ   r~   r|   r±   ÚSizeri  r‚   rÊ   rS  rë  r™  )	r¿   r‰   r  r¼  r›  rý   r“  Úfull_pointwiserê  s	   $$$$$*  €rk   rÅ  Ú!tensor_constructor.<locals>.innerN  sô   ø€ ô 	�6˜d¤E§M¡MÐ2Ñ2°g¸f¸XÐ4FÔGÜ�}Ô$ oÔ6Ü˜vÓ&ˆØ×2Ð2œ×0Ò0Ó2ˆÜˆt‹9˜Œ>œj¨¨a­´4¼ÄÇ
Á
Ð2K×LÒLÜ˜˜a�“>ˆDó ˆAÜ˜!œUŸ\™\×*Ô*Ü$Ð%PÓQÐQñ ñ *.Ó.© A”—’˜Q–©ˆÐ.Ü˜z¬=¸Ó+@À%ÓNˆçÜ˜~Ô.àÐùò /s   Ã+D7ri   )rê  rÅ  s   f rk   rï  rï  L  s?   ø€ ðàðð ðð ð	ð
 ðð ÷ð6 €Lrm   c           	     óÞ   € \        V4      p\        V4      ^8X  dE   \        V^ ,          \        \        \
        P                  34      '       d   \	        V^ ,          4      p\        VRWW#R7      # )rÚ   N©r¿   r  r‰   r¼  )rL   rÜ   r~   r|   r±   r’   rò  Úempty_strided)r¿   r  r‰   r¼  r›  rý   s   $$$$$*rk   rÊ  rÊ  l  sW   € ô ˜6Ó"€FÜ
ˆ4ƒy�A„~œ* T¨!¥W¬t´U¼E¿J¹JÐ.G×HÒHÜ�T˜!•W‹~ˆÜØˆd˜%°vôð rm   c           
     ó,   a € RRRRRRRRRR/V 3R llpV# )	zR
Shim to convert X_like(...) into X(...).  For example zeros_like() into zeros().
r¿   Nr‰   r  r¼  Fr›  c               ó&  <€ \        V'       * R 4       \        VR\        P                  39   RV 24       Vf   V P                  4       pM\	        V4      pT;'       g    V P                  4       p\        V P                  4       4      pS! WaW#VR7      # )r¼  NrÆ  )r¿   r‰   r  r¼  )r­   r’   rÒ  rÉ   rÅ   r�   r|   rÝ   )r¸   r¿   r‰   r  r¼  r›  rý   Úcreation_fns   &$$$$$ €rk   Ú_constant_likeÚ*create_tensor_like.<locals>._constant_like‚  s�   ø€ ô 	�z”> <Ô0Ü�6˜d¤E§M¡MÐ2Ñ2°g¸f¸XÐ4FÔGØŠ=Ø—K‘K“M‰Eä  Ó'ˆEØ×)Ð)˜1Ÿ<™<›>ˆÜ�A—J‘J“LÓ!ˆÙØ fÈ
ô
ð 	
rm   ri   )rú  rû  s   f rk   rî  rî  }  s8   ø€ ð

Øð
Ø!%ð
Ø.2ð
Ø?Dð
ØTX÷
ð Ðrm   c                ó*   € \        \        V 4      4      # r¯   rí  )rê  s   &rk   r{  r{  ”  s   € ÜÔ0°Ó<Ó=Ð=rm   c                ó(   a € R RRRRRRR/V 3R llpV# )r¿   Nr  r‰   r¼  c               ó²  <€ \        V\        \        34      '       g   \        R 4      h\	        V'       * R4       \	        VR\
        P                  39   RV 24       \        V4      ;'       g    V P                  4       pT;'       g    V P                  4       pV Uu. uF  p\        P                  ! V4      NK  	  pp\        S\        V4      W!4      # u upi )ú)expected: isinstance(size, (list, tuple))r¼  NrÆ  )r~   r|   r±   r‚   r­   r’   rÒ  rÅ   rÉ   r�   rÊ   r  rë  rL   )r¸   rý   r¿   r  r‰   r¼  r“  rê  s   &&$$$$ €rk   Ú_new_constantÚ#new_constant.<locals>._new_constantž  s®   ø€ ô ˜4¤$¬ ×/Ò/Ü Ð!LÓMÐMÜ�z”> <Ô0Ü�6˜d¤E§M¡MÐ2Ñ2°g¸f¸XÐ4FÔGä˜UÓ#×4Ð4 q§{¡{£}ˆØ×)Ð)˜1Ÿ<™<›>ˆÙ*.Ó/©$ Q”—’˜aÖ ©$ˆÐ/Ü�Z¤¨vÓ!6¸ÓDÐDùò 0s   ÂCri   )rê  r  s   f rk   Únew_constantr  �  s5   ø€ ðEØðEØ'+ðEØ48ðEØEI÷Eð Ðrm   c          	     ó†   € Vf   V P                  4       pVf   V P                  4       p\        VR VV\        V4      VR7      # ©Nrö  ©rÉ   r�   r÷  rL   )r¸   rý   r¿   r  r‰   r¼  s   &&$$$$rk   Ú	new_emptyr  ®  sF   € à‚}Ø—‘“ˆØ‚~Ø—‘“ˆÜØØØØÜ˜VÓ$Øôð rm   c               ó.  € \        V \        \        34      '       g   \        R 4      h\        V\        \        \	        R4      34      '       g   \        R4      h\        VR\        P                  39   RV 24       \        V4      ;'       g    \        P                  ! 4       pT;'       g!    \        P                  ! R4      P                  p\        V4      p\        ^ WBV R7      pVP                  4        VP                  P                  p\         P"                  ! VP                  ^ .\%        V 4      ,          R7      Vn        \        V\&        P(                  4      '       g   \        R4      hV  Uu. uF  p\*        P,                  ! V4      NK  	  p pV'       d'   V Uu. uF  p\*        P,                  ! V4      NK  	  upM\&        P.                  P1                  V 4      p\&        P2                  ! TTT TT;'       g    RR	7      Vn        V# u upi u upi )
r   Nz7expected: isinstance(stride, (list, tuple, type(None)))rÆ  r,  )rê  r‰   r¿   rý   )r�  z/expected: isinstance(buffer, ir.ComputedBuffer)F)r‰   r¿   rý   r  r˜  )r~   r|   r±   r‚   rù   r­   r’   rÒ  rÅ   rÓ  rn  r‰   rL   rë  rí  r€   ÚdataclassesÚreplacerÜ   r6   r[  rÊ   rS  r�  rž  r  r  )	rý   r  r¿   r  r‰   r¼  Ú	pointwiser$  r“  s	   &&$$$$   rk   r÷  r÷  ¾  sž  € ô �tœd¤E˜]×+Ò+ÜÐHÓIÐIÜ�v¤¤e¬T°$«ZÐ8×9Ò9ÜÐVÓWÐWÜˆv˜$¤§¡Ð.Ñ.°'¸&¸Ð0BÔCä˜Ó×<Ð<¤5×#:Ò#:Ó#<€EØ×/Ð/”u—|’| CÓ(×/Ñ/€FÜ˜6Ó"€FÜ ¨6ÀTÔJ€IØ×ÑÔØ�^‰^× Ñ €Fä×%Ò% f§k¡k¸1¸#ÄÀDÃ	½/ÔJ€F„KÜ�vœr×0Ñ0×1Ò1ÜÐNÓOÐOÙ%)Ó*¡T ŒE�LŠL˜ŽO¡T€DÐ*÷ ñ #)Ó)¡&˜QŒ�Š�aŽ¡&Ò)ä×Ñ×1Ñ1°$Ó7ð ô
 —N’NØØØØØ×%Ð% ô€F„Mð Ðùò +ùâ)s   Å3HÆ Hc          	     ó†   € Vf   V P                  4       pVf   V P                  4       p\        VVVV\        V4      VR7      # r  r  )r¸   rý   r  r¿   r  r‰   r¼  s   &&&$$$$rk   Únew_empty_stridedr  â  sH   € ð ‚}Ø—‘“ˆØ‚~Ø—‘“ˆÜØØØØÜ˜VÓ$Øôð rm   c                óä   € \         P                  P                  P                  V4      p\	        \        \        V4      4      VP                  R 7      p\        P                  P                  W4      # ))rM  )rZ   rp   r÷   rø   Úsortedr!  rÜ   Ú__getitem__r6   r9  rÆ  )r¸   r  rÈ  s   && rk   Úcopy_stridedr  ô  sL   € ä�W‰W×Ñ×5Ñ5°fÓ=€FÜœ%¤ F£Ó,°&×2DÑ2DÔE€LÜ�?‰?×/Ñ/°Ó@Ð@rm   c                ób   € VP                  R 4      f   \        R4      h\        V4      ! V 3/ VB # )r¿   z(dtype should be handled by decomposition)r”  r‚   rï  )rý   rê  r  s   &&,rk   Úfullr  û  s2   € à‡z�z�'ÓÒ"ÜÐGÓHÐHÜ˜jÔ)¨$Ñ9°&Ñ9Ð9rm   c          	     ó¼  € \        VR \        P                  39   RV 24       Vf   \        P                  ! 4       M
\	        V4      p\        P
                  P                  P                  4       ;_uu_ 4        \        P                  ! RV\        V4      R7      pR R R 4       \        \        P                  P                  X4      V 4      #   + '       g   i     L9; i)NrÆ  rÀ  ri   )r­   r’   rÒ  rÓ  rÅ   ÚutilsÚ_python_dispatchÚ_disable_current_modesrÞ   rL   rS  rZ   rp   rÔ  )rý   r¿   r  r‰   r¼  Úscalars   &$$$$ rk   Ú_efficientzerotensorr    s–   € ô ˆv˜$¤§¡Ð.Ñ.°'¸&¸Ð0BÔCØ).ªŒE×#Ò#Ô%¼LÈÓ<O€EÜ	�‰×	%Ñ	%×	<Ñ	<×	>Õ	>Ü—’˜R u´]À6Ó5JÔKˆ÷ 
?ä”!—'‘'×-Ñ-¨fÓ5°tÓ<Ð<÷ 
?×	>ús   Á7#CÃC	c                ó  aaaa€ \        V \        4      '       g   \        R 4      hVP                  4       ^ 8X  d   \	        WP                  4       4      # V P                  4       o\        S4      ^ 8H  p\        V SV4      oV'       d   \        V ^.4      p ^.oV P                  4       oVP                  4       oVVVV3R lp\        P                  ! V P                  4       V P                  4       VVP                  4       R7      # )r‰  c                ó¦   <€ \        V 4      p \        P                  ! S! V 4      SS,          R R7      p\        V 4      ^ 8X  d   V.p MWS&   S! V 4      # )F©Úwrap_neg)r|   rY   Úindirect_indexingrÜ   )rƒ  Ú
gather_idxrß   Úindex_loaderrý   rÈ  s   & €€€€rk   r�   Úgather.<locals>.fn"  sM   ø€ Ü�3‹iˆÜ×*Ò*©<¸Ó+<¸dÀ3½iÐRWÔXˆ
Üˆs‹8�qŒ=Ø�,‰Cà!�‰HÙ˜‹}Ðrm   rŒ  )r~   rG   r‚   Ú	get_numelr  rÝ   rÜ   rú  rS  rŽ  rD   rü   r�   rÉ   )	r¸   rß   rg  Úsparse_gradr  r�   r   rý   rÈ  s	   &f&&  @@@rk   Úgatherr$    sÓ   û€ ô �qœ)×$Ò$ÜÐAÓBÐBØ‡�Ó˜AÔä˜ŸN™NÓ,Ó-Ð-à�:‰:‹<€DÜ�‹Y˜!‰^€FÜ
˜˜3 Ó
'€CçÜ�1�q�c‹NˆØˆsˆà�}‰}‹€HØ×$Ñ$Ó&€L÷ð ô ×ÒØ�|‰|‹~Ø�k‰k‹mØØ�~‰~Óô	ð rm   c                ó¶  aaaa	a
€ V'       d,   \        \        P                  P                  4      ! WW#V4      # V'       d   \	        R 4      h\        V \        4      '       g   \	        R4      h\        V\        4      '       g   \	        R4      hR\        VP                  4       4      9  d   \	        R4      hV P                  4       o	VP                  4       o\        VP                  4       4      oV P                  4       o
. VP                  4       OS
R,          OoVVVV	V
3R lp\        P                  ! V P                  4       V P                  4       VSR7      # )zexpected: not sparsez'expected: isinstance(weight, TensorBox)z(expected: isinstance(indices, TensorBox)rÂ   z+expected: "int" in str(indices.get_dtype())r­  c                óÖ   <€ \        V 4      \        S4      8w  d   \        V  R S 24      hS! V RS 4      p\        P                  ! VS^ ,          RR7      .. V SR O,           pS! V4      # )z != NFr  )rÜ   r‚   rY   r  )rƒ  Ú	var_indexÚ
weight_idxÚindices_loaderÚindices_ndimrË  Úweight_loaderÚweight_sizes   &  €€€€€rk   r�   Úembedding.<locals>.fnI  sx   ø€ Üˆs‹8”s˜8“}Ô$Ü  C 5¨¨X¨JÐ!7Ó8Ð8Ù" 3 }¨Ð#5Ó6ˆ	ä×!Ò! )¨[¸­^ÀeÔLð
à!ˆc�,�-Ð Ð!õ"ˆ
ñ ˜ZÓ(Ð(rm   rŒ  )r'  r:  Ú	embeddingr*  r‚   r~   rG   r§   rÉ   rŽ  rÜ   rÝ   rD   rü   r�   )Úweightr|  Úpadding_idxÚscale_grad_by_freqÚsparser�   r)  r*  rË  r+  r,  s   &&&&& @@@@@rk   r.  r.  3  s"  ü€ çÜ¤§¡× 6Ñ 6Ô7Ø˜[¸fó
ð 	
÷ ÜÐ3Ó4Ð4Ü�vœy×)Ò)ÜÐFÓGÐGÜ�w¤	×*Ò*ÜÐGÓHÐHØ”C˜×)Ñ)Ó+Ó,Ô,ÜÐJÓKÐKà×&Ñ&Ó(€MØ×(Ñ(Ó*€NÜ�w×'Ñ'Ó)Ó*€LØ—/‘/Ó#€KØ6�×!Ñ!Ó#Ð6 k°"¥oÐ6€H÷)ñ )ô ×ÒØ× Ñ Ó"Ø×ÑÓ ØØô	ð rm   c           
     óü  € \         ;QJ d    R  V  4       F  '       d   K   RM	  RM! R  V  4       4      '       g2   \        RV  Uu. uF  q"f   K  VP                  4       NK  	  up 24      h\        ;QJ d    R V  4       F  '       g   K   RM	  RM! R V  4       4      '       d   \	        R4      h\        V 4       UUu. uF  w  r#\        V\        4      '       g   K  VNK!  	  ppp\        V4      ^ 8:  d   \        R4      hR.\        V 4      ,          p\        T\        V Uu. uF  q V,          NK  	  up!  4       F)  w  r#VP                  4       V8w  d   \	        R4      hW5V&   K+  	  WT3# u upi u uppi u upi )	c              3  óÌ   "  € T FZ  pVf   K	  VP                  4       \        P                  \        P                  \        P                  \        P
                  39   x € K\  	  R # 5ir¯   )rÉ   r’   r-  r  rh   r  ©r	  r†   s   & rk   r  Ú.check_and_broadcast_indices.<locals>.<genexpr>\  sA   é € ð 
á�Øô QˆA�K‰K‹MœeŸk™k¬5¯;©;¼¿
¹
ÄEÇKÁKÐPÖPÛùs   ‚A$�AA$FTz)indices must be int64, byte or bool. Got Nc              3  óŽ   "  € T F;  qf   K  VP                  4       \        P                  \        P                  39   x € K=  	  R # 5ir¯   )rÉ   r’   rh   r  r5  s   & rk   r  r6  e  s.   é € ð Ù<C°qÔ2ˆ�‰‹œ%Ÿ*™*¤e§k¡kÐ2Ö2»Gùs
   ‚AŒ9AzFallback for bool indicesz"requires at least 1 non-None indexz.Fallback when indices is on a different device)rB  r‚   rÉ   rC  r«   r}   r~   rG   rÜ   r   r  r�   )r|  r‰   r†   r¸   Ú
valid_idxsÚnew_indicess   &&    rk   Úcheck_and_broadcast_indicesr:  Z  sa  € ç‹ñ 
áó
��Šñ 
áó
÷ 	
ò 	
ô Ø7ÑPWÓ8iÑPWÈ1¼¸¿¹¾ÑPWÑ8iÐ7jÐkó
ð 	
÷ ƒsñ Ù<Có‡s‡s‚sñ Ù<Có÷ ò ô "Ð"=Ó>Ð>ä )¨'Ô 2ÔOÑ 2™˜´jÀÄI×6N—!�!Ñ 2€JÑOÜ
ˆ:ƒ˜!ÔÜÐAÓBÐBØ�&œ3˜w›<Õ'€KÜ�JÔ 1É
Ó3SÉ
À1¸A·J°JÉ
Ñ3SÑ TÖU‰ˆð �<‰<‹>˜VÔ#Ü%Ð&VÓWÐWØ�A‹ñ Vð Ð"Ð"ùò% 9jùó Pùò 4Ts   ÁE.
ÁE.
Â?E3ÃE3Ä$E9c	           
     ó¨  aaaaaaaaaa€ R o\         P                  ! S4       F  w  ršW©,
          ^8w  g   K  RoK  	  \        S4       UUu. uF  w  r¼Ve   K  W,          NK  	  uppo. SOV \        S4      \        S4      ,           R OoS^ ,          pS'       d   SS,           oMSRV S,           SVR ,           oVVVVVVVVVV3
R lpSV3# u uppi )FTNc                ó¤  <
€ \        V 4      \        S4      8w  d   \        R 4      h\        S4      \        S
4      8w  d   \        R4      h\        S4      p. pS^ ,          pS'       d   ^ MTp^ p\        SR,          ^,           4       F±  pWd8X  d	   WQ,          pSV,          f>   V\        V 4      8¼  d   \        R4      hVP                  W,          4       V^,          pKY  SV,          pVf   \        R4      hS
V,          pVP                  \        P
                  ! V! WWA,            4      VS	SR7      4       K³  	  . VOWR OpSf   V# S! V4      # )z&expected: len(idx) == len(output_size)z3expected: len(indices_loaders) == len(indexed_size)Nzexpected: next_idx < len(idx)zexpected: loader is not None©r   r  r½  )rÜ   r‚   r!  rƒ   rY   r  )rƒ  r  Ú	new_indexÚfirst_tensor_indexÚstart_offsetÚnext_idxr†   Úloaderrý   r   Úindexed_sizer|  Úindices_loadersÚnon_consecutive_tensorsÚoutput_sizeÚtensor_indicesÚtensor_sizer  rÈ  s   &        €€€€€€€€€€rk   r�   Ú*index_output_size_and_inner_fn.<locals>.fnœ  sT  ø€ Üˆs‹8”s˜;Ó'Ô'Ü Ð!IÓJÐJÜˆÓ¤3 |Ó#4Ô4Ü Ð!VÓWÐWä�;ÓˆØˆ	Ø+¨AÕ.Ðß3‘qÐ9KˆØˆÜ�~ bÕ)¨AÕ-Ö.ˆAØÔ ØÕ �Ø�q�zÒ!Øœs 3›xÔ'Ü(Ð)HÓIÐIØ× Ñ  ¥Ô/Ø˜A•’à(¨Õ+�Ø’>Ü(Ð)GÓHÐHØ# A•�Ø× Ñ Ü×)Ò)Ù˜s°,Õ2EÐFÓGØØ#Ø!)ô	öñ /ð*
Øð
à�ˆ^ð
ˆ	ð %Ò,ˆyÐE±(¸9Ó2EÐErm   )r  Úpairwiser}   rÜ   )r*  r|  rG  rH  rD  rC  rÈ  r   r  ÚpreviousÚcurrentr†   rš  r?  r�   rE  rF  s   &ffffffff      @@rk   Úindex_output_size_and_inner_fnrM  x  sç   ÿù€ ð$ $ÐÜ&×/Ò/°Ö?ÑˆØÕ Ö"Ø&*Ò#ñ @ô ,5°WÔ+=ÔMÑ+=¡ À”9�6—9�9Ñ+=ÒM€KØS�KÐS &¬¨[Ó)9¼CÀÓ<OÕ)OÐ)QÐ"RÐS€Kà'¨Õ*ÐßØ! KÕ/‰ð Ð+Ð+Ð,ØõàÐ,Ð-Ð.õ/ð 	÷$Fö $FðL ˜ˆ?Ðùóg Ns   ÁCÁCc                óŒ   € \        WV4      w  r4p\        P                  ! V P                  4       V P	                  4       VVR 7      # r�  )Úindex_impl_helperrD   rü   r�   rÉ   )r¸   r|  r   rF  rŠ  r  s   &&&   rk   Ú
index_implrP  Å  s>   € Ü0°¸UÓCÑ€K˜1ä×ÒØ�|‰|‹~Ø�k‰k‹mØØô	ð rm   c                óô  aa€ \        V\        \        34      '       g   \        R 4      hV P	                  4       o\        WP                  4       4      w  r\        V4      ^ 8:  d   \        R4      hV Uu. uF  qUe   VP	                  4       MRNK  	  pp\        W^ ,          ,          P                  4       4      pV P                  4       p\        \        V4      4       Uu. uF  qQV,          f   K  W…,          NK  	  p	pV'       d   ^ V	9   d   ^ V9  d   \        R4      h\        \        V4      4       Uu. uF  qXV,          NK  	  p	p\        VVVVVV	RVVR7	      w  p
oVV3R lpW«S3# u upi u upi u upi )z,expected: isinstance(indices, (list, tuple))z Must have at least one valid idxNz0index is out of bounds for dimension with size 0r=  c                ó    <€ S! S! V 4      4      # r¯   ri   )rƒ  Úindex_inner_fnrÈ  s   &€€rk   rŠ  Ú#index_impl_helper.<locals>.inner_fnñ  s   ø€ Ù™ sÓ+Ó,Ð,rm   )r~   r|   r±   r‚   rŽ  r:  r�   rÜ   rÝ   r!  Ú
IndexErrorrM  )r¸   r|  r   r  rG  r†   rD  rH  r*  rC  rF  rŠ  rS  rÈ  s   &&&&        @@rk   rO  rO  Ð  sV  ù€ Ü�w¤¤u ×.Ò.ÜÐKÓLÐLØ�}‰}‹€HÜ9¸'Ç<Á<Ã>ÓRÑ€GÜ
ˆ>Ó˜aÔÜÐ?Ó@Ð@áKRÓSÉ7Àaª-�q—}‘}”¸TÒAÉ7€OÐSô �w¨aÕ0Õ1×:Ñ:Ó<Ó=€Kà�Z‰Z‹\€Fä',¬S°«\Ô':ÓUÑ': !Àa½j”I�F—I�IÑ':€LÐUß��lÔ" q°Ô';ÜÐKÓLÐLä',¬S°«\Ô':Ó;Ñ': !˜1—I�IÑ':€LÐ;Ü"@ØØØØØØØØØô
#Ñ€K�ö-ð  .Ð0Ð0ùò9 Tùò Vùò <s   Á4E+Ã E0Ã1E0Ä6E5c                ó¶   €  \        WR R7      #   \         d?    T P                  4        \        \        P
                  P                  RR7      ! Y4      u # i ; i)T©r   Fr"  )rP  r«   rí  r'  r:  rg  r«  ©r¸   r|  s   &&rk   rg  rg  ÷  sM   € ð
Ü˜!¨DÔ1Ð1øÜô 
à	�	‰	ŒÜ¤§
¡
× 1Ñ 1ÀuÕMØó
ò 	
ð
ús   ‚ �AAÁAc                ó   € \        WR R7      # )FrW  )rP  rX  s   &&rk   Ú_unsafe_indexrZ    s   € ä�a¨Ô.Ð.rm   c           	     ó4   € \        \        V 4      WVR RR7      # )TF©r   Úmay_realize©Úindex_put_impl_rý  ©r¸   r|  r  Ú
accumulates   &&&&rk   Ú	index_putrb    s   € äÜˆa‹�' :°TÀuôð rm   c           	     ó4   € \        \        V 4      WVR R R7      # )Fr\  r^  r`  s   &&&&rk   Ú_unsafe_index_putrd    s   € äÜˆa‹�' :°UÈôð rm   c                óÚ   € VP                  4       V P                  4       8w  d   \        W P                  4       4      pV'       d   \        W4      p\        V \	        V^ ,          W 4      4      # rf  )r�   rH  r´   r  r  )r  r|  r  ra  s   &&&&rk   Úindex_put_as_masked_fillrf    sP   € Ø×ÑÓ˜TŸ_™_Ó.Ô.Ü˜%§¡Ó!2Ó3ˆßÜ�DÓ ˆÜ�Tœ5 ¨¥¨UÓ9Ó:Ð:rm   c                óÖ  € ^RI Hp \        \        P                  \
        P                  P                  P                  P                  4      p\
        P                  P                  p\        P                  '       gU   VeQ   V! V4      '       dC   RpVP                  P                  RR4      ;p'       d   V RV 2pV\
        P                  n        \        P                   ! WPWV4       V # )rÚ   )Ú,_fx_node_is_input_dependent_cudagraph_unsafeNzLindex_put_ fallback with boolean indexing is not compatible with CUDA graphsÚstack_traceú Found from : 
 )r  rh  rÀ  r:  Ú
index_put_rZ   rp   rq   rt   Ú_overloadnamer4   Úgraph_partitionr“  r”  Údisable_cudagraphs_reasonr6   ÚIndexPutFallback)	r  r|  r  ra  rh  r}  rb  r¦   ri  s	   &&&&     rk   Úindex_put_fallbackrp  &  s®   € ÝCäœ$Ÿ/™/¬1¯7©7×+?Ñ+?×+FÑ+F×+TÑ+TÓU€Kô
 �g‰g×"Ñ"€Gä×"×"Ð"ØÒÙ8¸×AÒAà\ˆØ!Ÿ,™,×*Ñ*¨=¸$Ó?Ð?ˆ;Ö?Ø�EÐ*¨;¨-Ð8ˆCØ,/Œ�‰Ô)ä×Ò˜¨7¸JÔGØ€Krm   c           	     ó    € \        WW#R R R7      # )Tr\  ©r_  ©r  r|  r  ra  s   &&&&rk   rk  rk  =  s   € äØ�v°À4ôð rm   c           	     ó    € \        WW#R RR7      # )FTr\  rr  rs  s   &&&&rk   Ú_unsafe_index_put_ru  D  s   € äØ�v°ÀDôð rm   c                ó	  a€ V'       d}   R  o\         P                  ! V 4      VP                  4       9   dQ   \        ;QJ d    V3R lV 4       F  '       d   K   RM	  RM! V3R lV 4       4      '       g   VP	                  4        VP                  4       ^8X  d®   \        V4      ^8X  dž   V^ ,          P                  4       \        P                  \        P                  39   dd   V^ ,          p\        \        VP                  4       4      \        V P                  4       4      4       F  p\        VR4      pK  	  \        W.W#4      # \        P                  ! 4       '       d   \!        WW#4      # V FJ  pVf   K	  VP                  4       \        P                  \        P                  39   g   K>  \!        WW#4      u # 	  V P                  4       p	\        V	4      p
V P#                  4       pV'       dt   Vep   \%        VP&                  4      '       dU   \)        V P                  4       4      '       d6   V
^ 8X  d   \+        V ^.4      p \!        WW#4      p V
^ 8X  d   \+        V . 4      p V # \-        W P                  4       4      p \/        WP#                  4       4      w  rT Uu. uF  qÝe   TP3                  4       MRNK  	  pp\5        T \6        4      '       g   \9        R4      hT P	                  4        T
^ 8X  d   \+        T ^.4      p \;        Y^ ,          ,          P                  4       4      p\        \        T4      4       Uu. uF  qÙT,          NK  	  pp\=        T	TTTTTRTR7      w  pp\?        TT4      pT P#                  4       pTf   \9        R4      h\         P@                  ! TT P                  4       TP3                  4       TTT'       d   RMRR	7      p\         PB                  ! R\         PD                  ! T 4      TR
7      p\F        PH                  PK                  T4      Tn&        \F        PH                  PO                  T4       T
^ 8X  d   \+        T . 4      p T #   \0         d    \!        YY#4      u # i ; iu upi u upi )c                ó2  € \        V \        4      '       Ed    \        V P                  \        P                  4      '       dÖ   V P                  P                  4       p \        V \        P                  4      ;'       dš    \        V P                  \        P                  4      ;'       dn    \        V P                  R R4      ;'       dO    V P                  P                  P                  \        P                  P                  P                  P                  J # R# )rb  NF)r~   rG   r€   r6   r:   r  rú   r9  rÀ  rb  rt   r’   rY   r:  Úrandpermr*  )Úindices   &rk   Úindice_slice_from_randpermÚ3index_put_impl_.<locals>.indice_slice_from_randpermN  sÃ   € ô ˜&¤)×,Ó,´¸F¿K¹KÌÏÉ×1UÒ1UØŸ™×0Ñ0Ó2�ä˜v¤r§}¡}Ó5÷ Vð VÜ" 6§;¡;´·±Ó@÷Vð Vä §¡¨Y¸Ó=÷Vð Vð Ÿ™×+Ñ+×2Ñ2´e·i±i·n±n×6MÑ6M×6UÑ6UÐUð	ñ rm   c              3  ó4   <"  € T F  pS! V4      x € K  	  R # 5ir¯   ri   )r	  ry  rz  s   & €rk   r  Ú"index_put_impl_.<locals>.<genexpr>\  s   øé € ð H
Ù=D°6Ñ& v×.Ð.»WùrÞ  FTNú%expected: isinstance(self, TensorBox)rW  úexpected: device is not NoneÚ
atomic_add©r‰   r¿   rŠ  r�  Úoutput_indexerÚscatter_mode©rð   r  r€   r½  )(r6   Útry_get_namer–  rB  rí  r"  rÜ   rÉ   r’   rh   r  r!  rÝ   r¸  rf  r´  rp  r�   rN   rù   rS   r;  r  r:  r«   rŽ  r~   rG   r‚   r|   rM  rS  ÚScatterr[  ÚMutationLayoutSHOULDREMOVErZ   rp   rÝ  rð   rÞ  )r  r|  r  ra  r   r]  r7  r  rg  r*  Úx_ndimr‰   rG  r†   rD  rH  rC  Úexpected_vals_sizerŠ  Úscatterr$  rz  s   &&&&&&               @rk   r_  r_  K  s¸  ø€ ßò	ô �?Š?˜4Ó  F×$9Ñ$9Ó$;Ô;ÇCÃCô H
Ù=DóH
ÇCÇCÂCô H
Ù=DóH
÷ E
ò E
ð �N‰NÔð 	×ÑÓ˜aÔÜ�‹L˜AÔØ�A�J× Ñ Ó"¤u§z¡z´5·;±;Ð&?Ô?à�q�zˆÜ”s˜4Ÿ=™=›?Ó+¬S°·±³Ó-AÖBˆAÜ˜T 2Ó&ŠDñ Cä'¨¨f°fÓIÐIô ×1Ò1×3Ò3Ü! $°ÓDÐDó ˆØÔ §¡Ó!2´u·z±zÄ5Ç;Á;Ð6OÖ!OÜ% d°VÓHÒHñ ð �]‰]‹_€FÜ�‹[€Fà�_‰_Ó€FçØÒÜ�6—;‘;×ÒÜ8¸¿¹Ó9I×JÒJð �QŒ;Ü˜˜q˜c“?ˆDÜ! $°ÓDˆØ�QŒ;Ü˜˜b“>ˆDØˆä�fŸn™nÓ.Ó/€FðEÜ"=Ø—_‘_Ó&ó#
Ñˆñ LSÓSÉ7Àaª-�q—}‘}”¸TÒAÉ7€OÐSä�tœY×'Ò'ÜÐDÓEÐEØ‡L�L„Nð �„{Ü�D˜1˜#‹ˆô �w¨aÕ0Õ1×:Ñ:Ó<Ó=€KÜ',¬S°«\Ô':Ó;Ñ': !˜1—I�IÑ':€LÐ;ä#AØØØØØØØØô	$Ñ Ð˜ô �FÐ.Ó/€Fð �_‰_Ó€FØ‚~ÜÐ;Ó<Ð<Ü�jŠjØØ�n‰nÓØ×#Ñ#Ó%Ø!Øß%/‘\°Tô€Gô ×ÒØÜ×,Ò,¨TÓ2Øô€Fô
 —'‘'×)Ñ)¨&Ó1€F„KÜ‡G�G×Ñ˜vÔ&à�„{Ü�D˜"‹~ˆØ€Køôg ô EÜ! $°ÓDÒDðEüò Tùò <s   É?Q ÊQ7Ì?Q<ÑQ4Ñ3Q4r"  c                óî   aaaaa	€ \        WR R R7      w  rEoSP                  4       oV P                  4       o	VVVVV	3R lp\        P                  ! V P	                  4       V P                  4       VVR7      # )Fr=  c                óè   <a € SP                   \        P                  8w  d-   \        P                  ! S! S 4      \        P                  4      pMS! S 4      p\        P
                  ! VVV V3R  lS4      # )c                 ó    <€ S! S ! S4      4      # r¯   ri   )Ú_unsafe_index_fnrƒ  Úself_loaders   €€€rk   rq  Ú8_unsafe_masked_index.<locals>.inner_fn.<locals>.<lambda>Þ  s   ø€ ©KÑ8HÈÓ8MÔ,Nrm   )r¿   r’   rh   rY   r  r1  )rƒ  Úmask_valrŽ  Úfillr7  Úmask_loaderr�  s   f €€€€€rk   rŠ  Ú&_unsafe_masked_index.<locals>.inner_fnÙ  sK   ù€ Ø�:‰:œŸ™Ô#Ü—|’|¡K°Ó$4´e·j±jÓA‰Há" 3Ó'ˆHÜ�zŠz˜(Ö$NÐPTÓUÐUrm   rŒ  )rO  rŽ  rD   rü   r�   rÉ   )
r  r7  r|  r’  r�  r  rŠ  rŽ  r“  r�  s
   &f&f   @@@rk   Ú_unsafe_masked_indexr•  Ñ  ss   ü€ ä"3Ø˜U¨Uô#Ñ€FÐð ×"Ñ"Ó$€KØ×"Ñ"Ó$€K÷Vñ Vô ×ÒØ�‰Ó Ø�n‰nÓØØô	ð rm   c           	     ó  € \        W^ 4      pV P                  4       p\        \        V4      4       Uu. uF:  pW&,          '       d(   \	        W&,          WV,          ) WV,          ^,
          4      MRNK<  	  pp\        WVRR7      # u upi )r   NT)ra  )r  rÝ   r!  rÜ   r÷  rd  )r¸   r7  r|  r  Úmasked_valuer¹  r†   Úclamped_indicess   &&&&    rk   Ú#_unsafe_masked_index_put_accumulater™  è  sz   € ä˜ qÓ)€LØ�J‰J‹L€Eô ”s˜7“|Ô$óá$ˆAð 7>·j´jŒˆg�j˜5�8˜) U¥X°¥\Ô2ÀdÒJÙ$ð ð ô ˜Q°È$ÔOÐOùòs   ³A Bc                óX   € \         P                  ! V\         P                  ! W 4      4      # r¯   )rY   rK  rL  ©r
  ÚminÚmaxs   &&&rk   r÷  r÷  õ  s   € ä�;Š;�sœCŸKšK¨Ó/Ó0Ð0rm   c                óJ   € \        V 4      p\        WRW44      p\        Wa4       V# r¯   )rý  r  Úcopy_)r  r  rý   r  rØ  rV  Úoutput_views   &&&&&  rk   Úas_strided_scatterr¡  ú  s$   € ä�4‹[€FÜ˜V¨6ÓB€KÜ	ˆ+ÔØ€Mrm   c               ó   € V ^8„  d   QhRR/# ©rf   rß   rÂ   ri   )rj   s   "rk   rl   rl     s   € ÷ 9ñ 9�Cñ 9rm   c                ó0   € \        \        V 4      WV3/ VB # r¯   )Úscatter_rý  )r¸   rß   rg  r  r  s   &&&&,rk   rŠ  rŠ    s   € ä”E˜!“H˜c¨#Ñ8°Ñ8Ð8rm   rƒ  Úinclude_selfc               ó(   € V ^8„  d   QhRRRRRRRR/# )	rf   r}  r)  rß   rÂ   rƒ  rŽ  r¦  rh   ri   )rj   s   "rk   rl   rl     s2   € ÷ ñ Ø&ðð 
ðð ðð ñrm   c               ób  € \        V\        4      p\        T TVP                  4       \	        \
        P                  V'       d   VP                  4       M
\        V4      4      V'       d   VP                  4       P                  MR V4      '       d    \        P                  ! V VVVVVVR7       V# R# )znot impl©rƒ  r¦  N)r~   rG   rX   rÉ   r
   r’   r¿   rù   r�   r6   ÚScatterFallback)r}  r  rß   rg  r  rƒ  r¦  Úsrc_is_tensors   &&&&&$$ rk   Úscatter_fallbackr¬    s�   € ô ˜s¤IÓ.€MÜØØØ�‰ÓÜŒU�[‰[¯]˜#Ÿ-™-œ/ÄÀSÃ	ÓJç!.ˆ�‰Ó×Ò°JØ÷ò ô 	×ÒØØØØØØØ%õ	
ð ˆárm   c               ó    € V ^8„  d   QhRRRR/# )rf   rß   rÂ   rƒ  rŽ  ri   )rj   s   "rk   rl   rl   *  s   € ÷ :ñ :˜ð :°Jñ :rm   c          	     ó"  € VR9  d   \        R4      hVf[   \        \        P                  \        P
                  P                  P                  P                  4      p\        WPWW4R7      pVe   V# VR8X  d   RpM	VR8X  d   Rp\        WW#V4      # )Nr´   Úmultiplyz-expected: reduce in (None, "add", "multiply")©rƒ  r  Úprod)Nr´   r¯  )r‚   rÀ  r:  r¥  rZ   rp   rq   rt   rl  r¬  Úscatter_reduce_)r  rß   rg  r  rƒ  r}  Úfallback_results   &&&&$  rk   r¥  r¥  )  s‰   € àÐ.Ô.ÜÐLÓMÐMØ‚~ÜœdŸm™m¬Q¯W©W×-AÑ-A×-HÑ-H×-VÑ-VÓWˆÜ*Ø˜s¨3ô
ˆð Ò&Ø"Ð"à�„Ø‰Ø	�:Ô	ØˆÜ˜4 e°&Ó9Ð9rm   c               ó   € V ^8„  d   QhRR/# r£  ri   )rj   s   "rk   rl   rl   =  s   € ÷ 3ñ 3˜ñ 3rm   c                ó.   € \        \        V 4      WV4      # r¯   )Úscatter_add_rý  ©r¸   rß   rg  r  s   &&&&rk   Úscatter_addr¸  <  s   € äœ˜a› #¨cÓ2Ð2rm   c               ó   € V ^8„  d   QhRR/# r£  ri   )rj   s   "rk   rl   rl   B  s   € ÷ 6ñ 6˜ñ 6rm   c                ó   € \        WW#R 4      # )r  )r²  r·  s   &&&&rk   r¶  r¶  A  s   € ä˜1 5¨uÓ5Ð5rm   c               ó   € V ^8„  d   QhRR/# r£  ri   )rj   s   "rk   rl   rl   G  s   € ÷ Pñ P˜3ñ Prm   c                ó0   € \        \        V 4      WW43/ VB # r¯   )r²  rý  )r¸   rß   rg  r  Úreduction_typer  s   &&&&&,rk   Úscatter_reducer¾  F  s   € äœ5 ›8 S°ÑOÈÑOÐOrm   c               ó    € V ^8„  d   QhRRRR/# )rf   rß   rÂ   r¦  rh   ri   )rj   s   "rk   rl   rl   L  s   € ÷ |ñ |˜sð |Èñ |rm   c          
     óª  a aaaa€ VR9  d   \        R4      h\        \        P                  P	                  4       4      ^8X  d$   R\        P                  P	                  4       9   g   \        R4      h\        S\        4      '       d   \        S S4      o\        \        P                  P                  S SVSVVR7      pV'       d   V# \        S \        4      '       g   \        R4      h\        S P                  4       4      pV^ 8X  d   \        S ^.4      o \        S\        4      '       d,   \        SP                  4       4      ^ 8X  d   \        S^.4      o\        V\        4      '       d,   \        VP                  4       4      ^ 8X  d   \        V^.4      pVP                  4       ^ 8X  d   S # R\        VP                  4       4      9  d   \        R4      h\!        S S4      oS P#                  4        VP%                  4       o\        S\        4      '       d   SP%                  4       MR oVVV 3R lpV VV3R	 lp	R
 p
S P'                  4       pVf   \        R4      hV'       g­   \(        P*                  ! VS P                  4       V 3R lVP                  4       VR R7      p\(        P,                  ! R \(        P.                  ! S 4      VR7      p\0        P2                  P5                  V4      Vn        \0        P2                  P9                  V4       \(        P*                  ! VS P                  4       V	VP                  4       VV
! V4      R7      p\(        P,                  ! R \(        P.                  ! S 4      VR7      p\0        P2                  P5                  V4      Vn        \0        P2                  P9                  V4       V^ 8X  d   \        S . 4      o S # )NzAexpected: reduce in (None, "sum", "prod", "mean", "amax", "amin")rZ  zKaten.scatter_reduce_.two is not the unique overload of aten.scatter_reduce_r©  r~  rÂ   z)expected: "int" in str(index.get_dtype())c                ó¸   <€ SP                  4       p\        V4      p\        V 4      p\        P                  ! S! V 4      V^ 8X  d   ^MVS,          RR7      VS&   V# )r   Fr  )rÝ   rÜ   r|   rY   r  )rƒ  r¹  r8  Úindirect_idxrß   r   r  s   &   €€€rk   r‚  Ú'scatter_reduce_.<locals>.output_indexer‚  sU   ø€ à—‘“ˆÜ�5‹zˆÜ˜C“yˆÜ×1Ò1Ù˜Ó D¨A¤I™q°5¸µ:Èô
ˆ�SÑð Ðrm   c                ón   <€ S'       d	   S! V 4      # \         P                  ! SSP                  4       4      # r¯   ©rY   r�  rÉ   )rƒ  r  r  r±  s   &€€€rk   r�   Úscatter_reduce_.<locals>.fnŒ  s*   ø€ ßÙ˜c“?Ð"ô —<’<  T§^¡^Ó%5Ó6Ð6rm   c                ó6   € V R 8X  d   R# V e   \        R4      hR# )r  r€  Nzexpected: reduce is Noner°  r°  s   &rk   Úbackend_reduce_strÚ+scatter_reduce_.<locals>.backend_reduce_str”  s#   € Ø�UŒ?Ùð Ò!Ü$Ð%?Ó@Ð@Ùrm   r  c                óN   <€ \         P                  ! ^ SP                  4       4      # rf  rÅ  )rg  r  s   &€rk   rq  Ú!scatter_reduce_.<locals>.<lambda>¦  s   ø€ ¤3§<¢<°°4·>±>Ó3CÔ#Drm   r�  r„  )Nr  r±  ÚmeanÚamaxÚamin)r‚   rÜ   r:  r²  Ú	overloadsr~   r#   rŸ  r¬  rZ  rG   rÝ   r;  r"  r§   rÉ   rú  rí  rŽ  r�   r6   r†  r[  r‡  rZ   rp   rÝ  rð   rÞ  )r  rß   rg  r  rƒ  r¦  r³  r8  r‚  r�   rÈ  r‰   Úzero_outr$  rŠ  r   r±  s   ff&f&$         @@rk   r²  r²  K  s  ü€ àÐBÔBÜØOó
ð 	
ô 	ŒD× Ñ ×*Ñ*Ó,Ó-°Ô2Ø”T×)Ñ)×3Ñ3Ó5Ô5äØYó
ð 	
ô �#”v×ÒÜ˜˜cÓ"ˆä&Ü×Ñ× Ñ ØØØØØØ!ô€O÷ ØÐä�tœY×'Ò'ÜÐDÓEÐEäˆt�}‰}‹Ó€DØˆq„yÜ�D˜1˜#‹ˆä�#”y×!Ò!¤c¨#¯,©,«.Ó&9¸QÔ&>Ü�3˜˜‹nˆä�%œ×#Ò#¬¨E¯N©NÓ,<Ó(=ÀÔ(BÜ�U˜Q˜CÓ ˆà‡�Ó˜AÔØˆà”C˜Ÿ™Ó)Ó*Ô*ÜÐHÓIÐIä
˜˜cÓ
"€Cà‡L�L„NØ×$Ñ$Ó&€LÜ&0°´i×&@Ò&@�—‘Ô"Àd€J÷÷7òð �_‰_Ó€FØ‚~ÜÐ;Ó<Ð<çä—:’:ØØ—.‘.Ó"ÜDØ—>‘>Ó#Ø)Øô
ˆô ×"Ò"ØÜ×0Ò0°Ó6Øô
ˆô
 —g‘g×-Ñ-¨fÓ5ˆŒÜ	�‰×"Ñ" 6Ô*ô
 �jŠjØØ�n‰nÓØØ�~‰~ÓØ%Ù'¨Ó/ô€Gô ×ÒØÜ×,Ò,¨TÓ2Øô€Fô
 —'‘'×)Ñ)¨&Ó1€F„KÜ‡G�G×Ñ˜vÔ&àˆq„yÜ�D˜"‹~ˆØ€Krm   c               ó$   € V ^8„  d   QhRRRRRR/# )rf   Úscales_xztuple[float | None, ...]rQ  rÂ   Úexactrh   ri   )rj   s   "rk   rl   rl   Ë  s*   € ÷ -ñ -ð 'ð-ð ð	-ð
 ñ-rm   c                óŒ  aaaaaa€ V P                  4        V P                  4       oV P                  4       S) R  oV P                  4       R S)  pS Uu. uF,  p\        P                  P
                  P                  V4      NK.  	  upo\        V4      S8w  d   \        R4      hTp\        SV4       UUu. uF  w  rhWh,          NK  	  uppo\        V4       F  w  riV	f   K  RV	,          SV&   K  	  V3R loVVVVV3R lp
\        P                  ! V P                  4       V P                  4       V
. VOVOR7      # u upi u uppi )Nzexpected: len(scales_x) == nrs  c                óÀ  <€ \         P                  ! V \        P                  4      p S'       d;   \         P                  ! V \         P
                  ! R \        P                  4      4      p \         P                  ! V \         P
                  ! V\        P                  4      4      p \         P                  ! V \        P                  4      p \         P                  ! WRR7      # )ç      à?FrW  )
rY   r€  r’   r  r´   r�  r¿  r  r  r  )r¸   rN  rý   rÓ  s   &&&€rk   Úscale_fnÚ$upsample_nearestnd.<locals>.scale_fná  s�   ø€ ô �NŠN˜1œeŸm™mÓ,ˆßÜ—’˜œ3Ÿ<š<¨¬U¯]©]Ó;Ó<ˆAÜ�GŠG�A”s—|’| E¬5¯=©=Ó9Ó:ˆÜ�LŠL˜œEŸK™KÓ(ˆÜ×$Ò$ Q°EÔ:Ð:rm   c                ó”   <€ V S) R  pV R S)  pS
! . VO\        VSS4       UUUu. uF  w  r4pS	! W4V4      NK  	  upppO4      # u upppi r¯   )r   )rƒ  r¸   rU  r†   r“  rý   Úi_sizesÚ
inv_scalesrQ  r×  rÈ  s   &     €€€€€rk   r�   Úupsample_nearestnd.<locals>.fnì  s_   ø€ Ø���ˆHˆØ��!�ˆHˆÙØWˆaÐW¼#¸aÀÈWÔ:UÕVÑ:U©J¨A°$‘8˜A $Ö'Ñ:UÓVÐWó
ð 	
ùÜVs   ¤ArŒ  )Úrealize_hintrŽ  rÝ   rZ   rp   r÷   r‹  rÜ   r‚   r   r}   rD   rü   r�   rÉ   )r¸   rF  rÒ  rQ  rÓ  Úbatchr†   Úo_sizesÚorN  r�   rÚ  rÛ  r×  rÈ  s   &&&ff      @@@@rk   Úupsample_nearestndrá  Ë  s  ý€ ð ‡N�NÔØ�}‰}‹€HØ�j‰j‹l˜A˜2˜3Ð€GØ�J‰J‹L˜˜1˜"Ð€EÙ6=Ó>±g°Œq�w‰w×Ñ×)Ñ)¨!Ö,±gÑ>€Gä
ˆ8ƒ}˜ÔÜÐ;Ó<Ð<Ø€Gä$'¨°Ô$9Ô:Ñ$9™D˜A�!—%�%Ñ$9Ò:€JÜ˜hÖ'‰ˆØÔØ %�KˆJ�q‹Mñ (õ	;÷
ñ 
ô ×ÒØ�|‰|‹~Ø�k‰k‹mØØ!�Ð!˜Ð!ô	ð ùò; ?ùó ;s   Á2D;Â4E c               ó   € V ^8„  d   QhRR/# ©rf   r>  úfloat | Noneri   )rj   s   "rk   rl   rl   ü  s   € ÷ >ñ >¨|ñ >rm   c                ó    € \        WV3^R7      # )rÚ   ©rQ  ©rá  ©r¸   rF  r>  s   &&&rk   Úupsample_nearest1dré  û  s   € ä˜a¨v¨i¸1Ô=Ð=rm   c               ó   € V ^8„  d   QhRR/# rã  ri   )rj   s   "rk   rl   rl     s   € ÷ Jñ J°lñ Jrm   c                ó"   € \        WV3^RR7      # )rÚ   T©rQ  rÓ  rç  rè  s   &&&rk   Ú_upsample_nearest_exact1drí     s   € ä˜a¨v¨i¸1ÀDÔIÐIrm   c               ó    € V ^8„  d   QhRRRR/# ©rf   Úscales_hrä  Úscales_wri   )rj   s   "rk   rl   rl     s    € ÷ Iñ IØ*ðIØ=IñIrm   c                ó    € \        WW#3^R7      # )rf   ræ  rç  ©r¸   rF  rð  rñ  s   &&&&rk   Úupsample_nearest2drô    s   € ô ˜a¨xÐ.BÀaÔHÐHrm   c               ó    € V ^8„  d   QhRRRR/# rï  ri   )rj   s   "rk   rl   rl     s    € ÷ Uñ UØ*ðUØ=IñUrm   c                ó"   € \        WW#3^RR7      # )rf   Trì  rç  ró  s   &&&&rk   Ú_upsample_nearest_exact2dr÷    s   € ô ˜a¨xÐ.BÀaÈtÔTÐTrm   c               ó$   € V ^8„  d   QhRRRRRR/# ©rf   Úscales_drä  rð  rñ  ri   )rj   s   "rk   rl   rl     s/   € ÷ Sñ Sð ðSð ð	Sð
 ñSrm   c                ó"   € \        WW#V3^R7      # )rh  ræ  rç  ©r¸   rF  rú  rð  rñ  s   &&&&&rk   Úupsample_nearest3drý    s   € ô ˜a¨xÀ8Ð.LÐPQÔRÐRrm   c               ó$   € V ^8„  d   QhRRRRRR/# rù  ri   )rj   s   "rk   rl   rl     s*   € ÷ 	ñ 	ð ð	ð ð		ð
 ñ	rm   c                ó$   € \        WW#V3^RR7      # )rh  Trì  rç  rü  s   &&&&&rk   Ú_upsample_nearest_exact3dr     s   € ô Ø	˜¨XÐ6¸!À4ôð rm   c                óh   a € \         ;QJ d    . V 3R  lV 4       F  NK  	  5# ! V 3R  lV 4       4      # )c              3  óR   <"  € T F  p\         P                  ! VS4      x € K  	  R # 5ir¯   rË  )r	  r
  r¿   s   & €rk   r  Ú$_create_constants.<locals>.<genexpr>,  s   øé € Ð6±¨A”—’˜a ×'Ð'³ùs   ƒ$')r±   )r¿   r‡   s   d*rk   rI  rI  +  s%   ø€ ßŒ5Ô6±Ó6�5Ð6ˆ5Ô6±Ó6Ó6Ð6rm   c                óÄ   aaa€ V P                  4       oV P                  4       oVVV3R  lp\        P                  ! V P	                  4       V P                  4       VSR7      # )c                óÂ   <€ \        V 4      p \        V 4      \        S4      8w  d   \        R 4      hS F"  pSV,          ^,
          W,          ,
          W&   K$  	  S! V 4      # )z expected: len(idx) == len(sizes))r|   rÜ   r‚   )rƒ  rß   r‘  r„  rÈ  s   & €€€rk   rB  Úrev.<locals>.loader5  sT   ø€ Ü�3‹iˆÜˆs‹8”s˜5“zÔ!Ü Ð!CÓDÐDÛˆCØ˜c�
 Q�¨#­(Õ2ˆC‹Hñ ñ ˜‹}Ðrm   rŒ  )rŽ  rÝ   rD   rü   r�   rÉ   )r¸   r‘  rB  r„  rÈ  s   &f @@rk   Úrevr  /  sM   ú€ ð �}‰}‹€HØ�J‰J‹L€E÷ô ×ÒØ�|‰|‹~Ø�k‰k‹mØØô	ð rm   c               ó(   € V ^8„  d   QhRRRRRRRR/# ©	rf   r¸   rG   ÚpaddingzSequence[int]rê  ra  rg   r  ri   )rj   s   "rk   rl   rl   F  s2   € ÷ ]ñ ]Øð]Ø(ð]Ø6;ð]àñ]rm   c                ó‚  € R pV! 4       '       d   R# \        V4      ^8w  g   \        V P                  4       4      ^8w  d   R# V P                  4        \        V \        P
                  4      '       dÏ   \        V P                  \        P                  4      '       d¥   \        V P                  P                  \        P                  4      '       gK   \        P                  '       d[   \        V P                  P                  \        P                  4      '       d'   V P                  P                  P                  '       g   R# V P                  4        \        P                  ! V 4      w  rEVP                  pV^,          ^8w  d   R# V^ ,          ^ 8w  g   V^,          ^ 8w  g   V^,          ^ 8w  d   R# V^,          pV^ 8X  d   R# V^ ,          pVP                   ^,          p	W‰V,           8  d   R# V P                  P                  P                  p
VP                   ^ ,          VP                   ^,          V,           .pV\"        P$                  P&                  V
&   \)        V VVP                  VP*                  RR7      p\-        V^W™V,           RR7      p\/        WÒ4       \0        R,          R;;,          ^,          uu&   V# )z¬
This optimization changes the semantics of padding from 'clone'
style to 'view' style.

Thanks to functionalization, this change can still maintain numerical
correctness.
c                 ó(  € \         P                  P                  p V f   R# \        V P                  4      p\        V4      ^8X  dM   V^ ,          P                  \        P                  P                  \        P                  P                  39   d   R# R# )zè
Conservatively check if padding can be fused with downstream op.
1. if the downstream op is a sum, then there is little benefit to
   do inplace padding
2. if the downstream op is a matmul, doing inplace padding can
   save membw.
TF)rZ   rp   rq   r±   rr   rÜ   rt   r:  Úmmr*  Úaddmm)rq   rr   s     rk   Ú_padding_can_be_fusedÚ6inplace_constant_pad_nd.<locals>._padding_can_be_fusedQ  sk   € ô —w‘w×+Ñ+ˆØÒÙÜ�l×(Ñ(Ó)ˆÜˆu‹:˜Œ?˜u Q�xŸ™Ü�G‰G�O‰OÜ�J‰J×Ñð3
ô  
ñ árm   NFrø  )rß   rß  rà  r÷  ÚinductorÚinplace_padding)rÜ   rÝ   rí  r~   r6   rG   r€   rú   r[  r4   Úcan_inplace_pad_graph_inputr  rð   Úfreeze_layoutr  r  rý   rZ   rp   Úbuffer_to_padded_sizer  r  r  Úfill_r   )r¸   r
  rê  r  r  r  r  ÚnpadÚstride0ÚrowsizeÚbufnameÚpadded_sizeÚ	resized_xÚsliced_xs   &&&           rk   Úinplace_constant_pad_ndr  F  sñ  € òñ( ×ÒÙô ˆ7ƒ|�qÔœC §
¡
£Ó-°Ô2Ùð
 ‡I�I„Kô
 �qœ"Ÿ,™,×'Ò'Ü˜!Ÿ&™&¤"§-¡-×0Ò0ä�q—v‘v—{‘{¤B×$5Ñ$5×6Ò6ä×2×2Ð2Ü˜qŸv™vŸ{™{¬B¯N©N×;Ò;ð �v‰v�{‰{××ÐáØ‡O�OÔä×(Ò(¨Ó+�I€AØ�m‰m€GØˆq…z�Q„Ùàˆq…z�Q„˜' !�*¨œ/¨W°Q­Z¸1¬_Ùà�1�:€DØˆq„yÙà�a�j€GØ�k‰k˜!�n€Gà˜4•ÔÙà�f‰f�k‰k×Ñ€GØ—;‘;˜q•> 6§;¡;¨q¥>°DÕ#8Ð9€KØ-8„A‡G�G×!Ñ! 'Ñ*ÜØ	ØØ�‰Ø�‰Ø16ô€Iô �i Q¨gÀT½>ÐQVÔW€HÜ	ˆ(ÔäˆZÕÐ*×+¨qÕ0Ó+ØÐrm   c               ó(   € V ^8„  d   QhRRRRRRRR/# r	  ri   )rj   s   "rk   rl   rl   ¦  s,   € ÷ 2)ñ 2)Øð2)Ø(ð2)Ø6;ð2)àñ2)rm   c                óÒ  € \         ;QJ d    R V 4       F  '       d   K   RM	  RM! R V 4       4      '       g   R# V P                  4       p\        V4      p\        \	        VR,          VR,          4      4      pRpRp\        V4       F>  w  pw  ršV	^ 8w  d    R# V
^ 8”  d   Ve    R# V^,
          V,
          pT
pK4  V
^ 8  g   K=   R# 	  Vf   R# V P                  4       pVe   VP                  R8X  d   R# \        V4      pW|V&   V P                  4       p\        V4      ! V4      p\        V4      ! WÍVR7      p\        R	,          R
;;,          ^,          uu&   \        W.V4      # )a'  Decompose right-pad into cat([x, fill], dim) and delegate to cat lowering.

The cat lowering already has heuristics for choosing between pointwise_cat
(fusion) and ConcatKernel (memory planning / zero-copy).  By routing through
cat() we reuse those heuristics rather than duplicating them here.
c              3  óB   "  € T F  p\        V\        4      x € K  	  R # 5ir¯   )r~   rÂ   ©r	  r¦  s   & rk   r  Ú_pad_as_cat.<locals>.<genexpr>°  s   é € Ð3©7 aŒz˜!œS×!Ð!«7ùs   ‚FTNºNNrf   ºrÚ   Nrf   rõ   rÀ  r  Úpad_rewritten_as_cat)rB  rÝ   rÜ   r|   r   r}   r�   rù   rÉ   r   rï  r   rÑ  )r¸   r
  rê  r„  r8  Ú	pad_pairsÚpad_dimÚ
pad_amountr†   Úleftr  r‰   Ú	pad_shaper¿   Úfill_value_typedÚ
pad_tensors   &&&             rk   Ú_pad_as_catr.  ¦  sB  € ÷ ‹3Ñ3©7Ó3�3�3Š3Ñ3©7Ó3×3Ò3Ùà�J‰J‹L€EÜˆu‹:€DÜ”S˜ � w¨t¥}Ó5Ó6€Ið €GØ€JÜ% iÖ0Ñˆ‰=ˆDØ�1Œ9ÚØ�1Œ9ØÒ"ÚØ˜Q•h •lˆGØŠJØ�QŽYÚñ 1ð ‚Ùð �\‰\‹^€FØÒ˜fŸk™k¨UÔ2Ùô �U“€IØ#ˆgÑØ�K‰K‹M€EÜ$ UÔ+¨JÓ7ÐÜ#Ð$4Ô5Ø vô€Jô ˆZÕÐ/×0°AÕ5Ó0Ü�ˆ Ó(Ð(rm   c                óº  aaaaaaa€ \        V4      ^,          ^ 8w  d   \        R4      h\        ;QJ d    R V 4       F  '       d   K   RM	  RM! R V 4       4      '       d   \        V 4      # \        P
                  '       d   \        WS4      pV'       d   V# \        WS4      pVe   V# V P                  4       p\        \        \        \        VR,          VR,          4      4      4      4      o\        V4      \        S4      ,
          o. oS F?  w  rVSP                  \        P                  P                  P!                  V4      V34       KA  	  \        VRS 4      p. o\        SVSR 4       FK  w  w  r‰p
SP                  V
4       VP                  \"        P$                  ! W¨,           V	,           4      4       KM  	  \        V4      \        V4      8w  d   \        R4      h\'        V P)                  4       4      ! S4      oVVVVV3R	 loVVV3R
 lpV P+                  4       o\,        P.                  ! V P1                  4       V P)                  4       VVR7      # )rf   z!expected: (len(padding) % 2) == 0c              3  ó*   "  € T F	  q^ 8H  x € K  	  R# 5i©r   Nri   r"  s   & rk   r  Ú"constant_pad_nd.<locals>.<genexpr>ß  s   é € Ð
#™7�a�Ž6›7ùrA  FTNr$  r%  z(expected: len(output_size) == len(sizes)c                óR  <a € . p\        S S	R  SS4       FN  w  pw  r4pV^ 8w  d   VP                  \        V^ 4      4       V^ 8w  g   K4  VP                  \        W%4      4       KP  	  \        P
                  ! \        P                  V4      p\        P                  ! VV V
3R lS4      # )Nc                 ó   <€ S! S 4      # r¯   ri   )rg  rÈ  s   €€rk   rq  Ú/constant_pad_nd.<locals>.mask.<locals>.<lambda>  s	   ø€ ©°¬rm   )	r   rƒ   Úrange_mask_lowÚrange_mask_highr1  rƒ  rY   r0  r1  )rg  r7  rƒ  rø  rù  r¨  Úboundsrê  Ú
mask_sizesrQ  rÈ  s   f     €€€€€rk   r7  Úconstant_pad_nd.<locals>.maskÿ  s‰   ù€ ØˆÜ(+¨E°!°"¨I°v¸zÖ(JÑ$ˆC‘�#˜fØ�aŒxØ—‘œN¨3°Ó2Ô3Ø�qŽyØ—‘œO¨CÓ8Ö9ñ	 )Kô
 ×Ò¤§¡¨$Ó/ˆÜ�zŠz˜$Õ 7¸ÓDÐDrm   c                óÜ   <€ \        V R S 4      p\        V SR  S4       F  w  pw  r4VP                  W#,
          4       K!  	  \        V4      \        V 4      8w  d   \	        R4      hS! V4      # )Nz&expected: len(new_index) == len(index))r|   r   rƒ   rÜ   r‚   )rg  r>  rƒ  rø  Ú_highÚbounds_precompr7  rQ  s   &    €€€rk   Ú	offset_fnÚ"constant_pad_nd.<locals>.offset_fn	  sg   ø€ Ü˜˜r ˜“Oˆ	Ü!$ U¨1¨2 Y°Ö!?ÑˆC‘�#Ø×Ñ˜S�YÖ'ñ "@äˆy‹>œS ›ZÔ'Ü Ð!IÓJÐJÙ�I‹Ðrm   rŒ  )rÜ   r‚   rB  rý  r4   r  r  r.  rÝ   r|   rN  r   rƒ   rZ   rp   r÷   Úlookup_precomputed_sizerÊ   rS  r   rÉ   rŽ  rD   rü   r�   )r¸   r
  rê  r„   r„  ÚlÚhrF  rø  rù  rý   r>  r8  r=  r7  r9  rQ  rÈ  s   &&f         @@@@@@rk   rÒ  rÒ  Û  sÚ  þ€ ä
ˆ7ƒ|�aÕ˜1ÔÜÐ@ÓAÐAß
ƒsÑ
#™7Ó
#‡s‡s‚sÑ
#™7Ó
#×#Ò#Ü�Q‹xˆä××ÐÜ% a°*Ó=ˆßØˆJô �a *Ó
-€CØ
‚Øˆ
à�J‰J‹L€Eä”(œ4¤ G¨C¥L°'¸$µ-Ó @ÓAÓBÓC€FÜˆE‹
”S˜“[Õ €Að 68€NÛ‰ˆØ×ÑœqŸw™w×/Ñ/×GÑGÈÓJÈAÐNÖOñ ô �u˜R˜a�y“/€KØ€JÜ  ¨¨q¨r¨Ö3Ñ‰ˆ�TØ×Ñ˜$ÔØ×Ñœ5Ÿ<š<¨­
°TÕ(9Ó:Ö;ñ 4ô ˆ;Óœ3˜u›:Ô%ÜÐGÓHÐHÜ˜qŸ{™{›}Ô-¨jÓ9€J÷Eñ E÷ð �}‰}‹€HÜ×ÒØ�|‰|‹~Ø�k‰k‹mØØô	ð rm   c               ó    € V ^8„  d   QhRRRR/# )rf   r†   ú
sympy.Exprrø  zsympy.Expr | intri   )rj   s   "rk   rl   rl     s   € ÷ ñ �jð Ð'7ñ rm   c                óä   € \         P                  ! \         P                  ! V \        P                  4      \         P                  ! \
        P                  ! V4      \        P                  4      4      # r¯   )rY   r.  r€  r’   r-  rÊ   r  )r†   rø  s   &&rk   r6  r6    s@   € Ü�6Š6Ü�Š�qœ%Ÿ+™+Ó&Ü�Š”u—}’} SÓ)¬5¯;©;Ó7óð rm   c               ó    € V ^8„  d   QhRRRR/# )rf   r†   rD  rù  ri   )rj   s   "rk   rl   rl   !  s   € ÷ ñ �zð ¨ñ rm   c                ó¼   € \         P                  ! \         P                  ! V \        P                  4      \         P                  ! V\        P                  4      4      # r¯   )rY   r/  r€  r’   r-  )r†   rù  s   &&rk   r7  r7  !  s7   € Ü�6Š6Ü�Š�qœ%Ÿ+™+Ó&Ü�Š�tœUŸ[™[Ó)óð rm   c               ó$   € V ^8„  d   QhRRRRRR/# )rf   r†   rD  rù  rø  ri   )rj   s   "rk   rl   rl   (  s!   € ÷ ñ �*ð  Jð °Zñ rm   c                óT   € \         P                  ! \        W4      \        W4      4      # r¯   )rY   r0  r6  r7  )r†   rù  rø  s   &&&rk   Ú
range_maskrJ  (  s#   € Ü�8Š8Ü�qÓÜ˜Ó óð rm   c                ó    a aaaaaaa€ S P                  4       S) R  oS P                  4       oS;'       g    ^ .S,          oVVVVVVV V3R lpV# )Nc                ó�  <aa€ V R S)  oV S) R  o\         P                  ! \        P                  \	        S4       Uu. uF4  p\        SV,          SV,          S
V,          ,           S
V,          ) 4      NK6  	  up4      pS	'       d!   \        P                  ! VVVVVV3R lS4      # \        P                  ! VVVV3R lS4      # u upi )Nc                 ó4   <€ \        SSS R 7      ! . SOSO4      # )©rß   )Úconstant_boundary_condition)rß   ÚihÚpad_fill_valueÚprefixr¸   s   €€€€€rk   rq  Ú;constant_boundary_condition.<locals>.load.<locals>.<lambda>C  s   ø€ Ô3°A°~È3ÕOØ"�f�N˜r�Nôrm   c                 ó   <€ S! . SOS O4      # r¯   ri   )rP  rR  rÈ  s   €€€rk   rq  rS  I  s   ø€ ©(°>°V°>¸b°>Ô*Brm   )r1  rƒ  rY   r0  r!  rJ  r1  )rg  r†   r7  rP  rR  rß   rê  rB  rQ  r
  Ú	padding_hr¸   rÈ  s   &  @@€€€€€€€€rk   r³  Ú)constant_boundary_condition.<locals>.load7  s³   ú€ Ø�u˜˜�ˆØ�C�4�5ˆ\ˆä×ÒÜ�H‰HäLQÐRUÌJÓWÉJÀqŒZ˜˜1�˜q �t i°¥lÕ2°Y¸qµ\°MÖBÉJÑWó
ˆ÷ ô �JŠJØ÷ð ð óð
	
ô —’˜DÖ"BÀJÓOð
	
ùò Xs   ¼:C
)rÝ   rŽ  )	r¸   rê  r
  rQ  rß   r³  rB  rU  rÈ  s	   fffff @@@rk   rO  rO  /  sH   ÿ€ ð 	
�
‰
‹�c�T�UÐ€AØ�}‰}‹€Hà×$Ð$˜A˜3 �9€I÷
ô 
ð* €Krm   Údilationc               ó@  € Vf   ^.\        V4      ,          p\        V ^WA,          ,          ,           Wa,          W!,          ^,
          ,          ,
          W1,          ^,
          ,           W1,          4      pV'       Ed"   \        V ^WA,          ,          ,           Wa,          W!,          ^,
          ,          ,
          ^W1,          ^,
          ,          ,           W1,          4      p\        P                  P                  P                  \        P                  ! V^,
          W1,          ,          V ,
          WA,          ,
          ^ 4      4      '       d
   V^,          p\        P                  P                  P                  \        P                  ! Wx4      4      '       d   RpWu3# TpWu3# ©NF)	rÜ   r,   rZ   rp   r÷   r�  rÊ   rë  r�  )	r¸   r†   Úkernel_sizer  r
  Ú	ceil_moderW  Úx_outÚx_alts	   &&&&&&$  rk   Úpooling_sizer^  O  s:  € ØÒØ�3œ˜W›Õ%ˆäØ	ˆA�•
�NÕ˜X�[¨K­N¸QÕ,>Õ?Õ?À6Å9ÈqÅ=ÕQØ�	ó€E÷
 €yÜØØ�'•*�nõà�k˜[�^¨aÕ/Õ0õ1ð �6•9˜q•=Õ!õ"ð �Ió
ˆô �7‰7×Ñ×*Ñ*Ü�HŠH�e˜a•i 6¥9Õ,¨qÕ0°7µ:Õ=¸qÓA÷
ò 
ð �Q�JˆEÜ�7‰7×Ñ×*Ñ*¬5¯8ª8°EÓ+A×BÒBàˆIð ÐÐð ˆEØÐÐrm   c               ól   € \        W4      p \        P                  ! \        P                  V 4      pV^8„  # )é   )rT   r1  rƒ  Úoperatorr¿  )rZ  Ún_dimÚwindow_sizes   &$ rk   Ú%should_fallback_max_pool_with_indicesrd  m  s-   € Ü˜{Ó2€KÜ×"Ò"¤8§<¡<°Ó=€KØ˜ÑÐrm   Úassert_fallbackc               óŠ  € V^ 8X  d   ^ .V,          pV^8X  d   ^.V,          pV'       g   Tp\        W4      p\        W%4      p\        W54      p\        WE4      p\        V \        4      '       g   \        R4      h\	        V4      V8w  d   \        R4      h\	        V4      V8w  d   \        R4      h\	        V4      V8w  d   \        R4      h\	        V4      V8w  d   \        R4      h\	        V P                  4       4      V^,           V^,           39  d   \        R4      h\        WR7      pVe   Wv8w  d   \        R4      hWW4V3# )	r   r‰  z#expected: len(kernel_size) == n_dimzexpected: len(stride) == n_dimzexpected: len(padding) == n_dimz expected: len(dilation) == n_dimz5expected: len(x.get_size()) in (n_dim + 1, n_dim + 2)©rb  z)expected: use_fallback == assert_fallback)rT   r~   rG   r‚   rÜ   rÝ   rd  )r¸   rZ  r  r
  rW  rb  re  Úuse_fallbacks   &&&&&&$ rk   Úmax_pool_checksri  s  s-  € ð �!„|Ø�#˜•+ˆØ�1„}Ø�3˜•;ˆßØˆä˜{Ó2€KÜ˜&Ó(€FÜ˜7Ó*€GÜ˜HÓ,€Hä�qœ)×$Ò$ÜÐAÓBÐBÜ
ˆ;Ó˜5Ô ÜÐBÓCÐCÜ
ˆ6ƒ{�eÔÜÐ=Ó>Ð>Ü
ˆ7ƒ|�uÔÜÐ>Ó?Ð?Ü
ˆ8ƒ}˜ÔÜÐ?Ó@Ð@Ü
ˆ1�:‰:‹<Ó ¨¥¨E°A­IÐ 6Ô6ÜÐTÓUÐUä8¸ÔR€LØÒ"ØÔ*Ü Ð!LÓMÐMà °<Ð?Ð?rm   c               ó   aaaaa€ V P                  4        V P                  R S)  pV P                  S) R  p\        \        S4       U	u. uF  p	\	        W‰,          W‘SSVSR7      NK  	  up	!  w  r¥V P
                  pV\        P                  J d   RM<VP                  '       d   \        R4      M\        P                  ! V4      P                  p\        V4      \        V
4      ,           p\        S4      '       gL   \        V4      '       g;   \        ;QJ d    R S 4       F  '       g   K   RM	  RM! R S 4       4      '       d   \        WSR7      oMV P                  4       oVVVVV3R lp\         P"                  ! RV V P%                  4       VVVVVR	7      p\         P"                  ! R
V V P%                  4       \        P&                  VVVVR	7      p\)        VP*                  P*                  \         4      '       d   VP-                  4        \)        VP*                  P*                  \         4      '       d   VP-                  4        VV3# u up	i )N)rW  Fú-infc              3  ó*   "  € T F	  q^8„  x € K  	  R# 5irÂ  ri   rŒ  s   & rk   r  Ú)_max_pool_with_offsets.<locals>.<genexpr>¶  s   é € Ð,E¹H°q°®U»HùrA  TrN  c                óì   <€ V R S)  pV S) R  p\        S4       Uu. uFB  pW4,          S	V,          ,          W,          SV,          ,          ,           SV,          ,
          NKD  	  ppS
! . VOVO4      # u upi r¯   ©r!  )rƒ  Úreduction_idxrR  Úbhr†   rP  rW  rb  r
  r  rÈ  s   &&    €€€€€rk   Úfn_innerÚ(_max_pool_with_offsets.<locals>.fn_inner»  s…   ø€ Ø�W�u�f�ˆØ�%��ˆ\ˆô ˜5”\ó
á!�ð �U�V˜A•YÕ =Õ#3°h¸qµkÕ#AÕBÀWÈQÅZ×OÐOÙ!ð 	ð 
ñ ˜˜&˜ 2˜Ó'Ð'ùò	
s   ›AA1r�  ©r½  Ú
input_noder‰   Ú	dst_dtyperø  rŠ  r�  Úreduction_rangesÚargmax)rÝ  r¹  r   r!  r^  r¿   r’   rh   r¾  ra  r6  rœ  r|   rC  rO  rŽ  rE   rü   r�   r-  r~   r€   rí  )r¸   rZ  r  r
  rW  r[  rb  rÞ  Údhwr�  Údhw_outr¿   Ú	min_valuerË  rr  rù  ÚoffsetsrÈ  s   &&fff&d          @rk   Ú_max_pool_with_offsetsr}  —  sÝ  ü€ ð ‡N�NÔØ�G‰G�G�e�VÐ€EØ
�'‰'�5�&�'Ð
€Cäô
 ˜5”\ó	

ñ "�ô Ø•˜¨°¸ÈX÷ñ "ñ	

ñÑ€Gð �G‰G€Eð ”E—J‘JÓñ 	à$×6×6Ð6Œe�FŒm¼E¿KºKÈÓ<N×<RÑ<Rð ô �E‹{œT '›]Õ*€HÜ
ˆ7‡|‚|”s˜9—~’~¯«Ñ,E¹HÓ,E¯¯ªÑ,E¹HÓ,E×)EÒ)EÜ.¨qÀÔG‰à—=‘=“?ˆ÷(ñ (ô ×ÒØØØ�|‰|‹~ØØØØØ$ô	€Fô ×ÒØØØ�|‰|‹~Ü—+‘+ØØØØ$ô	€Gô �&—+‘+×"Ñ"¤I×.Ò.à�‰ÔÜ�'—,‘,×#Ñ#¤Y×/Ò/à�‰Ôà�7ˆ?Ðùòs

s   Á Ic                ó   € \        V4      p\        V VVVVVR R7      w  rr4p\        P                  ! ^R7      ;_uu_ 4        \	        V VVVVVVR7      w  r‰V\        V	\        P                  4      3uuRRR4       #   + '       g   i     R# ; i)F)re  ©Úunroll_reductions_thresholdrg  N)rÜ   ri  r4   r   r}  r  r’   r§  )
r¸   rZ  r  r
  rW  r[  rb  r  rù  r|  s
   &&&&&&    rk   Ú!_low_memory_max_pool_with_offsetsr�  â  s�   € ô �Ó€Eô 1@Ø	ØØØØØØô1Ñ-€K˜¨Aô 
�Š°"×	5Ö	5Ü0ØØØØØØØô
‰ˆð ”x ¬¯©Ó4Ð4÷ 
6×	5×	5Ó	5ús   Á0A<Á<B	c          
     ó,   € V ^8„  d   QhRRRRRRRRRR/# )	rf   r|  rG   rZ  zSequence[int | torch.SymInt]Ú
input_sizeÚincrements_to_indexzlCallable[[Sequence[int | torch.SymInt], Sequence[int | torch.SymInt]], torch._inductor.virtualized.OpsValue]rg   ri   )rj   s   "rk   rl   rl     s:   € ÷ ñ Øðà-ðð -ððð	ð ñrm   c                óX  aaaaaa€ \        S4      oV P                  4       o\        P                  ! \        P
                  ! \        P                  S4      4      oVVVVVV3R  lp\        P                  ! V P                  4       \        P                  VV P                  4       R7      pV# )c                óü   <€ S	! V 4      p\         P                  ! VS
4      p\        P                  ! VS4      pS! W4      p\         P                  ! \        P
                  ! VSS) R  4      \        P                  4      # r¯   )rY   r  r5   Ú_flattened_index_to_ndr€  Ú_flatten_indexr’   r-  )rƒ  r  Úoffset_sympyrp  Úidhwr„  rƒ  rZ  rb  Úoffsets_loaderrc  s   &    €€€€€€rk   Úoffsets_to_indicesÚ4_pool_offsets_to_indices.<locals>.offsets_to_indices  sk   ø€ Ù Ó$ˆÜ×,Ò,¨V°[ÓAˆÜ&×=Ò=¸lÈKÓXˆÙ" 3Ó6ˆÜ�~Š~Ü×)Ò)¨$°
¸E¸6¸7Ð0CÓDÄeÇkÁkó
ð 	
rm   rŒ  )rÜ   rŽ  rÊ   rB  r1  rƒ  ra  r¿  rD   rü   r�   r’   r-  rÝ   )	r|  rZ  rƒ  r„  rŒ  r|  rb  r‹  rc  s	   &fff  @@@rk   Ú_pool_offsets_to_indicesrŽ    s�   ý€ ô �Ó€EØ×(Ñ(Ó*€NÜ—-’-¤	× 0Ò 0´·±¸{Ó KÓL€K÷
ò 
ô ×ÒØ×!Ñ!Ó#Ü�k‰kØ#Ø×ÑÓ!ô	€Gð €Nrm   c                óJ   aaaa€ \        V4      oVVVV3R  lp\        WW&4      # )c                óÊ   <€ V S) R  p\        S4       Uu. uFB  pW#,          SV,          ,          W,          SV,          ,          ,           SV,          ,
          NKD  	  up# u upi r¯   ro  )rƒ  rp  rq  r†   rW  rb  r
  r  s   &&  €€€€rk   r„  ÚD_low_memory_max_pool_offsets_to_indices.<locals>.increments_to_index-  sc   ø€ Ø�%��ˆ\ˆô ˜5”\ó
á!�ð �U�V˜A•YÕ =Õ#3°h¸qµkÕ#AÕBÀWÈQÅZ×OÐOÙ!ñ
ð 	
ùò 
s   •AA )rÜ   rŽ  )r|  rZ  rƒ  r  r
  rW  r„  rb  s   &&&fff @rk   Ú'_low_memory_max_pool_offsets_to_indicesr’  $  s-   û€ ô �Ó€E÷
ð 
ô $Ø˜jóð rm   c           
     óŠ   € \        WW#WFR 7      w  rr4p\        WW#WEVR 7      w  r‰\        V	VV P                  V) R VVV4      p
WŠ3# )rg  N)ri  r}  r’  r¹  )r¸   rZ  r  r
  rW  r[  rb  r  r„   r|  r|  s   &&&&&&&    rk   Ú_max_pool_with_indicesr”  9  si   € ô 1@Ø	˜¨ô1Ñ-€K˜¨Aô *Ø	˜¨ÀEô�L€Cô 6ØØØ	�‰���ÐØØØó€Gð ˆ<Ðrm   c           
     ó    € \        WW#WE^R7      # ©rf   rg  ©r”  ©r¸   rZ  r  r
  rW  r[  s   &&&&&&rk   Úmax_pool2d_with_indicesr™  W  ó   € ô "Ø	˜¨ÀAôð rm   c           
     ó    € \        WW#WE^R7      # ©rh  rg  r—  r˜  s   &&&&&&rk   Úmax_pool3d_with_indicesr�  f  rš  rm   c                óü  aaaaaaaaaaa€ VP                  4       P                  R 8X  d   \        WSSSWVV4      # S^ 8X  d   ^ ^ .oV^8X  d   ^^.pS'       g   So\        V\        4      '       g   \        R4      h\        S4      ^8w  d   \        R4      h\        S4      ^8w  d   \        R4      h\        S4      ^8w  d   \        R4      h\        V4      ^8w  d   \        R4      h\        VP                  4       4      R9  d   \        R4      hV P                  4        V P                  4       p\        V\        4      '       dÍ   \        VP                  P                  \        4      '       d£   VP                  P                  p	V	P                  4       p
V
f   \        R4      h\        P                  ! R\        P                  ! V
V	P                  4       V	P                  4       R	7      V	R
7      pVP!                  4        VP#                  4       pMVP                  4       pVRJ;'       d    V^,          ^8H  ;'       g    VRJ;'       d    V^,          ^8H  p\$        ;QJ d    R V 4       F  '       g   K   RM	  RM! R V 4       4      '       d   \        WSSSWVV4      # VP                  4       Ev rïoV P                  4       Ev pooVP'                  4       oV P'                  4       o\)        VP                  4       4      p\+        VV3R l\-        S^ ,          ^,          4       4       4      o\+        VV3R l\-        S^,          ^,          4       4       4      oSS,          pV^8”  d   \        WSSSWVV4      # VP                  4       oVVVVVVVVVVV3R lp\        P.                  ! V P                  4       V P                  4       VVR7      pV'       d    \        P0                  P3                  V4      # V# )Úxpur‰  úexpected: len(kernel_size) == 2úexpected: len(stride) == 2úexpected: len(padding) == 2zexpected: len(dilation) == 2ú%expected: len(x.get_size()) in (3, 4)Nr  )r‰   r¿   rý   r„  c              3  ó*   "  € T F	  q^8g  x € K  	  R# 5irÂ  ri   rŒ  s   & rk   r  Ú3max_pool2d_with_indices_backward.<locals>.<genexpr>±  s   é € Ð
$™8�a�Ž6›8ùrA  TFc              3  ó¾   <"  € T FR  p\        \        VS^ ,          4      \        ^ \        VS^ ,          ,
          S^ ,          4      4      ,
          ^4      x € KT  	  R# 5ir1  ©r�  r,   ©r	  rB  rZ  r  s   & €€rk   r  r¥  ¾  óO   øé € ð á*ˆAô 	ŒH�Q˜˜q�	Ó"¤S¨¬H°Q¸ÀQ½Õ5GÈÐPQÍÓ,SÓ%TÕTÐVW×XÐXÛ*ùó   ƒAAc              3  ó¾   <"  € T FR  p\        \        VS^,          4      \        ^ \        VS^,          ,
          S^,          4      4      ,
          ^4      x € KT  	  R# 5irÂ  r§  ©r	  ÚwrZ  r  s   & €€rk   r  r¥  Â  r©  rª  c                ó¬	  <€ V Ev rp\         P                  ! VS,          V,           \        P                  4      pVS^ ,          ,           pVS^,          ,           p\         P                  ! \	        VS^ ,          ,
          S^ ,          ,           S^ ,          4      \        P                  4      p\         P                  ! \	        VS^,          ,
          S^,          ,           S^,          4      \        P                  4      p\         P                  ! \	        VS^ ,          4      ^,           \        P                  4      p\         P                  ! \	        VS^,          4      ^,           \        P                  4      p\         P
                  ! V\         P                  ! ^ \        P                  4      4      p\         P
                  ! V\         P                  ! ^ \        P                  4      4      p\         P                  ! V\         P                  ! S\        P                  4      4      p\         P                  ! V\         P                  ! S\        P                  4      4      pRp	\        S4       EFS  p
\        S4       EF?  p\         P                  ! V\         P                  ! V
\        P                  4      4      p\         P                  ! V\         P                  ! V\        P                  4      4      p. VO\         P                  ! \         P                  ! V\         P                  ! V\         P                  ! ^\        P                  4      4      4      SR,          RR7      N\         P                  ! \         P                  ! V\         P                  ! V\         P                  ! ^\        P                  4      4      4      SR,          RR7      NpS! V4      pS! V4      p\         P                  ! Wô4      pV	f?   \         P                  ! VV\         P                  ! R\        P                  4      4      p	EK¾  \         P                  ! \         P                  ! \         P                   ! WÇ4      \         P                   ! WØ4      4      V4      p\         P                  ! V\         P                  ! V	V4      V	4      p	EKB  	  EKV  	  V	f   \#        R4      hV	# )r   NFrW  r,  úexpected: gradient is not Noneéþÿÿÿr½  )rY   r€  r’   r  r,   rK  r�  rL  r!  r´   r  rl  r  r  r  r0  r/  r‚   )rƒ  rR  rB  r­  Ú
index_testÚphstartÚpwstartÚphendÚpwendÚgradientÚph_Úpw_ÚphÚpwÚ
grad_indexÚindex_actualÚ	grad_partr   r7  Úgrad_loaderÚh_window_sizer)  Úindices_sizerZ  r
  Úpooled_heightÚpooled_widthr  Úw_window_sizeÚwidths   &                  €€€€€€€€€€€rk   r�   Ú,max_pool2d_with_indices_backward.<locals>.fnÑ  s1  ø€ Ø‰ˆ�AÜ—^’^ A¨¥I°¥M´5·;±;Ó?ˆ
Ø�˜•
�NˆØ�˜•
�NˆÜ—.’.Ü�Q˜ Q�Õ'¨&°­)Õ3°V¸AµYÓ?ÄÇÁó
ˆô —.’.Ü�Q˜ Q�Õ'¨&°­)Õ3°V¸AµYÓ?ÄÇÁó
ˆô —’œx¨¨6°!­9Ó5¸Õ9¼5¿;¹;ÓGˆÜ—’œx¨¨6°!­9Ó5¸Õ9¼5¿;¹;ÓGˆä—+’+˜g¤s§|¢|°A´u·{±{Ó'CÓDˆÜ—+’+˜g¤s§|¢|°A´u·{±{Ó'CÓDˆÜ—’˜E¤3§>¢>°-ÄÇÁÓ#MÓNˆÜ—’˜E¤3§>¢>°,ÄÇÁÓ#LÓMˆàˆÜ˜×'ˆCÜ˜]×+�Ü—W’W˜W¤c§l¢l°3¼¿¹Ó&DÓE�Ü—W’W˜W¤c§l¢l°3¼¿¹Ó&DÓE�ðØðä×)Ò)ÜŸš B¬¯ª°´s·|²|ÀAÄuÇ{Á{Ó7SÓ(TÓUØ$ RÕ(Ø#ôðô ×)Ò)ÜŸš B¬¯ª°´s·|²|ÀAÄuÇ{Á{Ó7SÓ(TÓUØ$ RÕ(Ø#ôð�
ñ  .¨jÓ9�Ù'¨
Ó3�	ÜŸš˜|Ó8�àÒ#ä"ŸyšyØ˜y¬#¯,ª,°s¼E¿M¹MÓ*Jó “Hô Ÿ8š8ÜŸšÜŸFšF 2Ó-ÜŸFšF 2Ó-óð ó�Dô  #Ÿyšy¨¬s¯wªw°xÀÓ/KÈXÓV“HôE ,ñ (ðH ÒÜ Ð!AÓBÐBØˆrm   rŒ  r{  )r�   rù   Ú)fallback_max_pool2d_with_indices_backwardr~   rG   r‚   rÜ   rÝ   rÝ  r  r€   rD   r6   r[  r�  rÉ   Údecide_layoutr  rC  rŽ  r|   r�  r!  rü   r9  rð  )Úgrad_outputr¸   rZ  r  r
  rW  r[  r|  Ú	gO_strider€   r‰   Úx_bufferÚx_strideÚis_channels_lastÚ_batchÚ_heightr  rË  rc  r�   r„   r¾  r¿  r)  rÀ  rÁ  rÂ  rÃ  rÄ  s   &&fff&&&             @@@@@@@@rk   Ú max_pool2d_with_indices_backwardrÏ  z  sy  ÿú€ ð 	‡|�|ƒ~×Ñ˜eÔ#Ü8Ø˜K¨°¸(Èwó
ð 	
ð �!„|Ø�a�&ˆØ�1„}Ø�q�6ˆßØˆä�qœ)×$Ò$ÜÐAÓBÐBÜ
ˆ;Ó˜1ÔÜÐ>Ó?Ð?Ü
ˆ6ƒ{�aÔÜÐ9Ó:Ð:Ü
ˆ7ƒ|�qÔÜÐ:Ó;Ð;Ü
ˆ8ƒ}˜ÔÜÐ;Ó<Ð<Ü
ˆ1�:‰:‹<Ó Ô&ÜÐDÓEÐEð ×ÑÔØ×,Ñ,Ó.€Iä�!”Y×Ò¤J¨q¯v©v¯{©{¼I×$FÒ$FØ�v‰v�{‰{ˆØ—‘Ó"ˆØŠ>Ü Ð!?Ó@Ð@Ü×$Ò$ØÜ×$Ò$ØØ—n‘nÓ&Ø—]‘]“_ôð
 ô
ˆð 	×ÑÔ Ø×&Ñ&Ó(‰à×%Ñ%Ó'ˆà ¨Ð,×AÐA°¸!µÀÑ1A÷ ð Ø˜Ð×3Ð3 )¨A¥,°!Ñ"3ð ÷ ƒsÑ
$™8Ó
$‡s‡s‚sÑ
$™8Ó
$×$Ò$ä8Ø˜K¨°¸(Èwó
ð 	
ð  Ÿj™j›lÑ€V�eØ&1×&:Ñ&:Ó&<Ñ#€Qˆ�|à×(Ñ(Ó*€NØ×)Ñ)Ó+€KÜ�A—J‘J“LÓ!€Häõ ä�{ 1•~¨Õ)Ô*óó €Mô õ ä�{ 1•~¨Õ)Ô*óó €Mð
   -Õ/€Kà�RÔä8Ø˜K¨°¸(Èwó
ð 	
ð ×#Ñ#Ó%€L÷:÷ :ôx ×
Ò
Ø×%Ñ%Ó'Ø×#Ñ#Ó%ØØô	€C÷ Ü�‰×4Ñ4°SÓ9Ð9àˆ
rm   c                ó8   aa€ V P                  4       oVV3R  lpV# )c           
     ó"  <a aaa	a
€ Vw  oo	Vw  oo
Vw  rE\         P                  ! \         P                  ! \         P                  ! SS,           \        P
                  4      \         P                  ! V\        P
                  4      4      \         P                  ! \         P                  ! S
S	,           \        P
                  4      \         P                  ! V\        P
                  4      4      4      p\         P                  ! VVVV	V V
V3R  lS4      # )c                 ó<   <€ S! . SOS S,           NSS,           N4      # r¯   ri   )Úh_start_indexrP  ÚiwrR  Úw_start_indexrÈ  s   €€€€€€rk   rq  Ú3pad_adaptive_loader.<locals>.load.<locals>.<lambda>.  s$   ø€ ‘HÐN˜vÐN }°rÕ'9ÐN¸=È2Õ;MÐNÔOrm   )rY   r0  r/  r€  r’   r-  r1  )rR  Ú
incrementsÚstart_indicesÚend_indicesÚh_end_indexÚw_end_indexr7  rÓ  rP  rÔ  rÕ  Úpad_valrÈ  s   f&&&   @@@@€€rk   r³  Ú!pad_adaptive_loader.<locals>.load  s·   ý€ Ø‰ˆˆBØ'4Ñ$ˆ�}Ø#.Ñ ˆä�xŠxÜ�FŠFÜ—’˜}¨rÕ1´5·;±;Ó?Ü—’˜{¬E¯K©KÓ8óô �FŠFÜ—’˜}¨rÕ1´5·;±;Ó?Ü—’˜{¬E¯K©KÓ8óó	
ˆô �zŠzØßOÑOØó
ð 	
rm   ©rŽ  )r¸   rÜ  r³  rÈ  s   &f @rk   Úpad_adaptive_loaderrß    s   ù€ Ø�}‰}‹€Hö
ð, €Krm   c                óÊ   € \         P                  ! WVR 7      p\         P                  ! WVR 7      p\         P                  ! WVR 7      p\         P                  ! WVR 7      p	WgW‰3# ))Úout_dimÚinp_dim)r1  rI  )
r  r	  Úh_inÚw_inÚh_outÚw_outrÓ  rÚ  rÕ  rÛ  s
   &&&&&&    rk   Ú compute_indices_adaptive_poolingrç  5  sU   € Ü×%Ò% kÈ$ÔO€MÜ×#Ò# IÀdÔK€Kä×%Ò% kÈ$ÔO€MÜ×#Ò# IÀdÔK€Kà }ÐAÐArm   c                ó\   aaaaaa€ Vw  rgVw  r‰\        WWgW‰4      w  ooooVVVVVV3R  lp
V
# )c                ó  <€ V Ev r#pS! V4      pS! V4      pS! V4      pS! V4      pR p	\         P                  ! \        S^ ,          4      \        S^,          4      4       F#  w  r«V! VW«.WW.Wh.4      pV	f   Tp	K  S! WÉ4      p	K%  	  V	# r¯   )r  Úproductr!  )rƒ  rB  rR  rq  ÚbwrÓ  rÚ  rÕ  rÛ  rù  rP  rÔ  rš  Úh_end_index_fnÚh_start_index_fnÚkernel_maxesÚ
pooling_fnÚw_end_index_fnÚw_start_index_fns   &&           €€€€€€rk   r�   Ú _adaptive_pooling_fn.<locals>.fnN  s¡   ø€ Ø‰ˆ�Rá(¨Ó,ˆÙ$ RÓ(ˆá(¨Ó,ˆÙ$ RÓ(ˆàˆÜ×'Ò'¬¨l¸1­oÓ(>ÄÀlÐSTÅoÓ@VÖW‰FˆBÙØØ�ØÐ.ØÐ*ó	ˆCð Š~Ø’á# CÓ0’ñ Xð ˆrm   ©rç  )r  r	  rî  Úin_sizesÚ	out_sizesrï  rã  rä  rå  ræ  r�   rì  rí  rð  rñ  s   &&f&&f     @@@@rk   Ú_adaptive_pooling_fnrö  ?  sF   ý€ ð �J€DØ�L€Eô 	)Ø ¨Eó	ñØØØØ÷
ò ð. €Irm   c                ód   aaa
aaaa€ Vw  poVw  rx\        WVSWx4      w  oo
ooV
VVVVVV3R  lp	V	# )c                óú  <€ V Ev r#pS! V4      pS! V4      pS! V4      pS! V4      pR p	R p
\         P                  ! \        S^ ,          4      \        S^,          4      4       F•  w  r¼V! VW¼.WW.Wh.4      p\        P                  ! W[,           S,          V,           V,           \
        P                  4      pV
f   Tp
M+\        P                  ! \        P                  ! WÙ4      Wê4      p
V	f   Tp	K�  S! WÙ4      p	K—  	  V
# r¯   )	r  rê  r!  rY   r€  r’   r-  r  Úgt)rƒ  rB  rR  rq  rë  rÓ  rÚ  rÕ  rÛ  ÚmaxvalÚmaxindexrP  rÔ  rš  rg  rì  rí  rî  rï  rð  rä  rñ  s   &&             €€€€€€€rk   r�   Ú)_adaptive_pooling_fn_with_idx.<locals>.fnw  sõ   ø€ Ø‰ˆ�Rá(¨Ó,ˆÙ$ RÓ(ˆá(¨Ó,ˆÙ$ RÓ(ˆàˆØˆÜ×'Ò'¬¨l¸1­oÓ(>ÄÀlÐSTÅoÓ@VÖW‰FˆBÙØØ�ØÐ.ØÐ*ó	ˆCô —N’NØÕ# tÕ+¨mÕ;¸bÕ@Ä%Ç+Á+óˆEð ÒØ ‘äŸ9š9¤S§V¢V¨CÓ%8¸%ÓJ�àŠ~Ø’á# CÓ0’ñ) Xð, ˆrm   ró  )r  r	  rî  rô  rõ  rï  rã  rå  ræ  r�   rì  rí  rð  rä  rñ  s   &&f&&f    @@@@@rk   Ú_adaptive_pooling_fn_with_idxrý  h  sK   þ€ ð �J€Dˆ$Ø�L€Eô 	)Ø  d¨Eó	ñØØØØ÷
!ó !ðF €Irm   c           	     óÎ  a aa€ \        S \        4      '       g   \        R 4      h\        V4      ^8w  d   \        R4      hS P	                  4        S P                  4       Ev r#p\        P                  P                  P                  V4      p\        P                  P                  P                  V4      pVw  rVV^ 8X  g   V^ 8X  d3   . VOVNVNp\        VS P                  4       S P                  4       R7      # S P                  4       \        P                  8X  d   \        R4      hW58X  d   WF8X  d   \!        S 4      # W5,          ^ 8X  d0   WF,          ^ 8X  d#   \#        W54      \#        WF4      .p\%        S V4      # \'        W5,           ^,
          V4      p	\'        WF,           ^,
          V4      p
\)        V4      WV.,           pS P                  4       pWš,          p\        P                  P                  P+                  \,        P.                  ! V^4      4      '       d   \1        S V4      # \        P                  P                  P                  V	4      p	\        P                  P                  P                  V
4      p
R pR p\3        VVWš.W4.WV.\4        P6                  R7      o\9        \;        S 4      4      oVVV 3R lp\<        P>                  ! S P                  4       VVVR7      pV# )	r‰  úexpected: len(output_size) == 2rÀ  z0'adaptive_avg_pool2d' not implemented for 'Long'c                ó&   € \        W,          V4      # r¯   ©r,   ©rg  rá  râ  s   &&&rk   r  Ú)_adaptive_avg_pool2d.<locals>.start_indexÏ  ó   € Ü˜�¨7Ó3Ð3rm   c                óR   € \        V ^,           V,          V,           ^,
          V4      # rl  r  r  s   &&&rk   r	  Ú'_adaptive_avg_pool2d.<locals>.end_indexÒ  ó"   € Ü˜ � gÕ-°Õ7¸!Õ;¸WÓEÐErm   ©r  r	  rî  rô  rõ  rï  c                ó`   <€ \         P                  ! S! V \        S4      4      S! V S4      4      # r¯   )rY   Útruedivrß  )rƒ  Úfn_sumÚones_loaderr¸   s   &€€€rk   r�   Ú _adaptive_avg_pool2d.<locals>.fnà  s-   ø€ Ü�{Š{Ù�3Ô+¨AÓ.Ó/±¸¸[Ó1Ió
ð 	
rm   rŒ  ) r~   rG   r‚   rÜ   rÝ  rÝ   rZ   rp   r÷   r‹  rÊ  rÉ   r�   r’   r-  r(  rý  r,   Ú
avg_pool2drJ   r|   Úguard_or_truerÊ   rî  Úfallback_adaptive_avg_pool2drö  rY   r´   rß  Ú	ones_likerD   rü   )r¸   rF  rÞ  rã  rä  rå  ræ  Úo_sizerZ  Úh_kernel_maxÚw_kernel_maxrË  r¿   rc  r  r	  r�   Úrvr  r  s   f&                @@rk   Ú_adaptive_avg_pool2dr  ¢  sP  ú€ ä�qœ)×$Ò$ÜÐAÓBÐBÜ
ˆ;Ó˜1ÔÜÐ>Ó?Ð?Ø‡N�NÔàŸ™›Ñ€U�$ä�7‰7×Ñ×%Ñ% dÓ+€DÜ�7‰7×Ñ×%Ñ% dÓ+€Dà�L€Eà�„z�U˜a”ZØ'�5Ð'˜%Ð' Ð'ˆÜ�V 1§;¡;£=¸¿¹»ÔHÐHà‡{�{ƒ}œŸ™Ô#äÐMÓNÐNð „}˜œÜ�Q‹xˆà…|�qÔ˜T�\¨QÔ.Ü Ó,¬h°tÓ.CÐDˆÜ˜!˜[Ó)Ð)ä˜D�L¨1Õ,¨uÓ5€LÜ˜D�L¨1Õ,¨uÓ5€Lä�E‹{˜e˜^Õ+€HØ�K‰K‹M€EàÕ-€KÜ‡w�w×Ñ×%Ñ%¤e§h¢h¨{¸BÓ&?×@Ò@ä+¨A¨{Ó;Ð;ä—7‘7×#Ñ#×-Ñ-¨lÓ;€LÜ—7‘7×#Ñ#×-Ñ-¨lÓ;€Lò4òFô "ØØØ"Ð1Ø�Ø�.Ü—7‘7ô€Fô &¤i°£lÓ3€K÷
ô
 
×	Ò	Ø�|‰|‹~ØØØô	
€Bð €Irm   c           	     ó6  a aa€ S P                  4       \        P                  8X  d   \        R 4      h\	        S \
        4      '       g   \        R4      h\        V4      ^8w  d   \        R4      hS P                  4        S P                  4       Ev r#p\        P                  P                  P                  V4      p\        P                  P                  P                  V4      pVw  rVV^ 8X  g   V^ 8X  d]   . VOVNVNp\        VS P                  4       S P                  4       R7      \        V\        P                  S P                  4       R7      3# W5,          ^ 8X  d   WF,          ^ 8X  d   \         h\#        W5,           ^,
          V4      p\#        WF,           ^,
          V4      p	\%        V4      WV.,           p
S P                  4       pW‰,          pV^8”  d   \'        S V4      # R pR p\)        VVW‰.W4.WV.\*        P,                  R7      o\/        VVW‰.W4.WV.\*        P,                  R7      oVV 3R lpVV 3R lp\0        P2                  ! S P                  4       VVV
R	7      p\0        P2                  ! S P                  4       \        P                  VV
R	7      pVV3# )
z,adaptive_max_pool2d not implemented for Longr‰  rÿ  rÀ  c                ó&   € \        W,          V4      # r¯   r  r  s   &&&rk   r  Ú(adaptive_max_pool2d.<locals>.start_index  r  rm   c                óR   € \        V ^,           V,          V,           ^,
          V4      # rl  r  r  s   &&&rk   r	  Ú&adaptive_max_pool2d.<locals>.end_index  r  rm   r  c           	     ó<   <€ S! V \        S\        R 4      4      4      # ©rk  ©rß  ra  )rƒ  Úinner_func_max_valr¸   s   &€€rk   Úinner_fn_max_valÚ-adaptive_max_pool2d.<locals>.inner_fn_max_val3  ó   ø€ Ù! #Ô':¸1¼eÀF»mÓ'LÓMÐMrm   c           	     ó<   <€ S! V \        S\        R 4      4      4      # r  r  )rƒ  Úinner_func_max_idxr¸   s   &€€rk   Úinner_fn_max_idxÚ-adaptive_max_pool2d.<locals>.inner_fn_max_idx6  r"  rm   rŒ  )rÉ   r’   r-  r(  r~   rG   r‚   rÜ   rÝ  rÝ   rZ   rp   r÷   r‹  rÊ  r�   Ú
ValueErrorrJ   r|   Úfallback_adaptive_max_pool2drö  rY   rK  rý  rD   rü   )r¸   rF  rÞ  rã  rä  rå  ræ  r  r  r  rË  r¿   rc  r  r	  r   r%  r  Úrir$  r  s   f&                 @@rk   Úadaptive_max_pool2dr*  ô  s?  ú€ à‡{�{ƒ}œŸ™Ô#äÐIÓJÐJÜ�qœ)×$Ò$ÜÐAÓBÐBÜ
ˆ;Ó˜1ÔÜÐ>Ó?Ð?Ø‡N�NÔàŸ™›Ñ€U�$ä�7‰7×Ñ×%Ñ% dÓ+€DÜ�7‰7×Ñ×%Ñ% dÓ+€Dà�L€Eà�„z�U˜a”ZØ'�5Ð'˜%Ð' Ð'ˆÜ�V 1§;¡;£=¸¿¹»ÔHÌ%Øœ%Ÿ+™+¨a¯l©l«nôK
ð 
ð 	
ð …|�qÔ˜T�\¨QÔ.äÐä˜D�L¨1Õ,¨uÓ5€LÜ˜D�L¨1Õ,¨uÓ5€Lä�E‹{˜e˜^Õ+€HØ�K‰K‹M€EàÕ-€KØ�RÔä+¨A¨{Ó;Ð;ò4òFô .ØØØ"Ð1Ø�Ø�.Ü—;‘;ôÐô 7ØØØ"Ð1Ø�Ø�.Ü—;‘;ôÐöNöNô 
×	Ò	Ø�|‰|‹~ØØ!Øô	
€Bô 
×	Ò	Ø�|‰|‹~Ü�k‰kØ!Øô	
€Bð ˆrˆ6€Mrm   c                ó‚   a aaaaaa€ SS,          oSS,          oSS,          oS P                  4       oVVVVVV V3R  lpV# )c                ó
  <€ SP                  4       p\        V4      ^8X  d„   \        V 4      ^8X  d"   S! ^ V ^ ,          S^,
          S
,
          .4      pMl\        V 4      ^8¼  d)   S! V ^ ,          V ^,          S^,
          S
,
          .4      pM4S! ^ ^ S^,
          S
,
          .4      pMS! . V OS^,
          S
,
          N4      p\        P                  ! VSP	                  4       4      p\        P                  ! SS,
          \
        P                  4      p\        P                  ! S^,
          \
        P                  4      p\        P                  ! \        P                  ! V\
        P                  4      \        P                  ! V\
        P                  4      4      p\        P                  ! \        P                  ! V^ 4      ^ V4      p\        P                  ! WC,           V,          4      \        P                  ! W7,          4      ,
          p\        P                  ! V\
        P                  4      p\        P                  ! WF4      p	\        P                  ! \        P                  ! W˜V4      \        P                   ! S4      4      # )rh  )rÝ   rÜ   rY   r€  rÉ   r’   r-  r
  r  Úfloat64r  r  r­  r/  r  rÊ   rB  )rR  r†   Úsamples_shapeÚsampleÚi_exprÚdiffÚout_sz_exprrˆ  Úseq_ir7  rß   Úin_szÚ	kernel_szÚndimsÚout_szÚsamplesÚsamples_loaders   &&        €€€€€€€rk   r³  Ú)_fractional_pooling_offsets.<locals>.loadN  s½  ø€ ð  ×(Ñ(Ó*ˆäˆ}Ó Ô"Ü�6‹{˜aÔñ (¨¨F°1­I°u¸qµyÀ3µÐ(GÓH‘Ü�V“ Ô!ñ (¨°­°F¸1µI¸uÀq½yÈ3½Ð(OÓP‘ñ (¨¨A¨u°q­y¸3­Ð(?Ó@‘ñ $Ð$> fÐ$>¨e°a­i¸#­oÐ$>Ó?ˆFÜ—’  7×#4Ñ#4Ó#6Ó7ˆÜ�~Š~˜e iÕ/´·±Ó=ˆÜ—n’n V¨a¥Z´·±Ó=ˆÜ—’Ü�LŠL˜œuŸ}™}Ó-¬s¯|ª|¸KÌÏÉÓ/Wó
ˆô —	’	œ#Ÿ&š& ¨aÓ0°!°UÓ;ˆÜ—	’	˜6�?¨eÕ3Ó4´s·y²yÀÅÓ7PÕPˆÜ—’˜U¤E§K¡KÓ0ˆÜ�vŠv�fÓ*ˆÜ×$Ò$¤S§Y¢Y¨t¸DÓ%AÄ5Ç=Â=ÐQVÓCWÓXÐXrm   rÞ  )r8  r4  r7  r5  rß   r6  r³  r9  s   ffffff @rk   Ú_fractional_pooling_offsetsr;  H  s@   þ€ Ø�C�[€FØ�#�J€EØ˜#•€IØ×(Ñ(Ó*€N÷!Yó !YðF €Krm   c                ó   € \        WW#^R7      # r–  ©Ú_fractional_max_pool©r¸   rZ  rF  Úrandom_sampless   &&&&rk   Úfractional_max_pool2drA  t  ó   € ä °ÐSTÔUÐUrm   c                ó   € \        WW#^R7      # rœ  r=  r?  s   &&&&rk   Úfractional_max_pool3drD  y  rB  rm   c                óB  aaaa€ V P                  4        V P                  R S)  V P                  S) R  re\        P                  ! ^R7      ;_uu_ 4        \	        S4       Uu. uF  p\        VVVVSVR7      NK  	  upoV P                  4       oVVV3R lpVV3R lo\        V4      \        V4      ,           p	V P                  4       p
\        P                  ! RV V P                  4       V
V
VV	VR7      p\        P                  ! RV V P                  4       \        P                  V
VV	VR7      p\        V\        4      '       g   \!        V4      h\        VP"                  P"                  \        4      '       d   VP%                  4        \        V\        4      '       g   \!        V4      h\        VP"                  P"                  \        4      '       d   VP%                  4        \'        WÁV P                  S4      pW½3uuR R R 4       # u upi   + '       g   i     R # ; i)Nr  )r8  r4  r7  r5  r6  rß   c                ó4   <€ V R S)  pS! . VOS! W4      O4      # r¯   ri   )rƒ  rp  rR  r„  rb  rÈ  s   && €€€rk   rr  Ú&_fractional_max_pool.<locals>.fn_inner‘  s,   ø€ Ø˜˜5˜&�\ˆFÙÐO˜fÐOÑ':¸3Ó'NÐOÓPÐPrm   c                óž   <€ V R S)  pV S) R  p\        S4       Uu. uF&  pSV,          ! W#V,          4      W,          ,           NK(  	  up# u upi r¯   ro  )rƒ  rp  rR  Úbdhwr�  Údhw_index_fnrb  s   &&   €€rk   r„  Ú1_fractional_max_pool.<locals>.increments_to_index•  s`   ø€ Ø˜˜5˜&�\ˆFØ˜�v�w�<ˆDô ˜uœóá%�Að ˜Q– ¨Q­Ó0°=Õ3C×CÐCÙ%ñð ùò s   ›,A
r�  rt  rx  )rÝ  r¹  r4   r   r!  r;  rŽ  r|   rÉ   rE   rü   r�   r’   r-  r~   rG   r‚   r€   rí  rŽ  )r¸   rZ  rF  r@  rb  rÞ  Úinp_dhwr�  rr  rË  r¿   rù  r|  r|  rJ  r„  rÈ  s   &&&&f         @@@rk   r>  r>  ~  sÀ  û€ Ø‡N�NÔØ—W‘W˜W˜u˜fÐ% q§w¡w°¨v¨wÐ'7ˆ7ä	�Š°"×	5Ö	5ô ˜5”\ó

ñ "�ô (Ø&ØØ"Ø%ØØ÷ñ "ñ

ˆð —=‘=“?ˆ÷	Qö	ô ˜“;¤ kÓ!2Õ2ˆØ—‘“ˆÜ×!Ò!Ø ØØ—<‘<“>ØØØØØ(ô	
ˆô ×"Ò"Ø#ØØ—<‘<“>Ü—k‘kØØØØ(ô	
ˆô ˜6¤9×-Ò-Ü  Ó(Ð(Ü�f—k‘k×&Ñ&¬	×2Ò2à�N‰NÔÜ˜7¤I×.Ò.Ü  Ó)Ð)Ü�g—l‘l×'Ñ'¬×3Ò3à�O‰OÔä*Ø !§'¡'Ð+>ó
ˆð ˆ÷ 
6Ò	5ùò

÷ 
6×	5Ð	5ús   ÁHÁ!HÁ;FHÈHÈH	c           	     ó†  a aa€ S P                  4        S P                  4       Ev rVp\        P                  P                  P                  V4      p\        P                  P                  P                  V4      pVEv rXp	Wh,          ^ 8X  d0   Wy,          ^ 8X  d#   \        S \        Wh4      \        Wy4      .^R7      # \        Wh4      p
\        Wy4      pR oV3R lp\        SVW«.Wg.W‰.\        P                  R7      oVV 3R lp\        P                  ! S P                  4       S P                  4       V\!        V4      R7      pV# )r   )Údivisor_overridec                óN   € \        W,          \        P                  ! V4      4      # r¯   )r+   rÊ   rB  r  s   &&&rk   r  Ú0upsample_nearest2d_backward.<locals>.start_indexÙ  s   € Ü�u•¬¯ª°gÓ(>Ó?Ð?rm   c                ó$   <€ S! V ^,           W4      # rl  ri   )rg  rá  râ  r  s   &&&€rk   r	  Ú.upsample_nearest2d_backward.<locals>.end_indexÜ  s   ø€ Ù˜E A�I¨Ó9Ð9rm   r  c                ó(   <€ S! V \        S4      4      # r¯   )rß  )rƒ  r  r¸   s   &€€rk   r�   Ú'upsample_nearest2d_backward.<locals>.fnè  s   ø€ Ù�cÔ.¨qÓ1Ó2Ð2rm   rŒ  )rÝ  rÝ   rZ   rp   r÷   r‹  r  r,   rJ   rö  rY   r´   rD   rü   r�   rÉ   r|   )r¸   rF  rƒ  rð  rñ  rÍ  Úinp_hÚinp_wÚout_hÚout_wr  r  r	  r�   r  r  r  s   f&&&&          @@rk   Úupsample_nearest2d_backwardrY  Ä  s  ú€ ð ‡N�NÔàŸJ™J›LÑ€V�EÜ�G‰G×Ñ×&Ñ& uÓ-€EÜ�G‰G×Ñ×&Ñ& uÓ-€Eð 'Ñ€V�Eà…}˜Ô˜e�m¨qÔ0ÜØ”˜Ó&¬°Ó(>Ð?ÐRSô
ð 	
ô ˜5Ó(€LÜ˜5Ó(€Lò@õ:ô "ØØØ"Ð1Ø�Ø�.Ü—7‘7ô€Fö3ô 
×	Ò	Ø�|‰|‹~Ø�k‰k‹mØä�JÓô
€Bð €Irm   c                ó(   € \        V VVVVVV^R7      # )rf   rN  ©Ú_avg_poolnd©r¸   rZ  r  r
  r[  Úcount_include_padrN  s   &&&&&&&rk   r  r  ö  ó)   € ô Ø	ØØØØØØØô	ð 	rm   c                ó(   € \        V VVVVVV^R7      # )rh  rN  r[  r]  s   &&&&&&&rk   Ú
avg_pool3dra    r_  rm   c                óô  aaaaaaa€ S'       g   SoS'       g   ^ .S,          o\        SS4      o\        SS4      o\        SS4      o\        V \        4      '       g   \        R4      h\	        S4      S8w  d   \        R4      h\	        S4      S8w  d   \        R4      h\	        S4      S8w  d   \        R4      h\	        V P                  4       4      S^,           S^,           39  d   \        R4      hV P                  4        V P                  4       RS)  pV P                  4       S) R o\        \        S4       U	u. uF  p	\        SV	,          V	SSSV4      NK  	  up	!  w  r«\        S4      '       g   \        V4      '       d   \        V RSR7      oR	pMV P                  4       oR
p\        V4      \        V
4      ,           pV P                  4       p\        V \         P"                  R	R7      pVVVV3R lp\$        P&                  ! \(        P*                  S4      pV^8”  dq   \        ;QJ d&    R \        SS4       4       F  '       g   K   R	M	  R
M! R \        SS4       4       4      '       d#   \,        S^,
          ,          pV! V SSSVSV4      # V^8:  d   \.        P0                  ! ^R7      M\2        P4                  ! 4       pV P7                  4       pVf   \        R4      hV;_uu_ 4        \8        P:                  ! RV VVVVVSR7      pRRR4       \=        XP>                  R4      '       d;   \        VP>                  P>                  \8        4      '       d   VPA                  4        V'       d	   V'       d   V'       d   TMTp\C        VV4      pM?VVVVVV3R lp\D        P:                  ! V P7                  4       VVVR7      p\C        VV4      p\G        VV4      # u up	i   + '       g   i     Lß; i)r   r‰  z!expected: len(kernel_size) == dimzexpected: len(stride) == dimzexpected: len(padding) == dimz1expected: len(x.get_size()) in (dim + 1, dim + 2)Nr,  rN  TF)rÔ   rÒ   c                óÔ   <€ V R S)  pV S) R  pTp\        S4       Uu. uF4  qSV,          SV,          ,          WE,          ,           SV,          ,
          NK6  	  ppS	! . VOVO4      # u upi r¯   ro  )
rƒ  rp  rR  rq  rP  r†   rß   r
  r  rÈ  s
   &&    €€€€rk   rr  Ú_avg_poolnd.<locals>.fn_innera  sq   ø€ Ø�U�s�d�ˆØ�#��ˆZˆØˆÜ>CÀC¼jÓI¹j¸��e�f˜Q•iÕ "¥%Õ'¨'°!­*×4Ð4¹jˆÐIÙ˜˜&˜ 2˜Ó'Ð'ùò Js   �:A%c              3  ó    "  € T FD  w  r\         P                  P                  P                  \        P
                  ! W4      4      x € KF  	  R # 5ir¯   )rZ   rp   r÷   Ústatically_known_truerÊ   ÚNe)r	  r  r“  s   &  rk   r  Ú_avg_poolnd.<locals>.<genexpr>j  s9   é € ð  á,‰DˆAô 	
�‰×Ñ×.Ñ.¬u¯xªx¸«~×>Ð>Û,ùó   ‚AAr  r  r  rt  r€   c                óî  <€ V S) R  p. p\        S4       F¹  pW,          SV,          ,          SV,          ,
          p\        VS
V,          ,           S	V,          SV,          ,           4      pS'       g    \        V^ 4      p\        VS	V,          4      p\        P                  ! WT,
          \
        P                  4      pVP                  V4       K»  	  \        P                  ! \        P                  V4      # r¯   )r!  r/   r.   rY   r€  r’   r  rƒ   r1  rƒ  r¿  )rƒ  rq  Údivide_factorsr†   ÚhstartÚhendÚfactorr^  rß   rB  rZ  r
  r  s   &      €€€€€€rk   Úfn_countÚ_avg_poolnd.<locals>.fn_countš  s¸   ø€ Ø�c�T�U�ˆBàˆNÜ˜3–Z�Ø� ¨¥Õ*¨W°Q­ZÕ7�Ü˜6 K°¥NÕ2°A°aµD¸7À1½:Õ4EÓF�ß(Ü  ¨›^�FÜ˜t Q q¥T›?�DÜŸš¨­´u·{±{ÓC�Ø×%Ñ% fÖ-ñ  ô ×#Ò#¤C§G¡G¨^Ó<Ð<rm   rŒ  )$rT   r~   rG   r‚   rÜ   rÝ   rÝ  r   r!  r^  rC  rO  rŽ  r|   rÉ   ræ   r   ru  r1  rƒ  ra  r¿  Úfallbacks_avg_poolndr4   r   Ú
contextlibÚnullcontextr�   rE   rü   r  r€   rí  Údiv_primrD   r  )r¸   rZ  r  r
  r[  r^  rN  rß   rÞ  r†   rå  Ú
ceil_modesÚhad_paddingrË  r¿   r•  rr  rc  ÚfallbackÚcontextr‰   r  Údivisorrù  ro  Údivide_factorrB  rÈ  s   &fff&f&f                  @@rk   r\  r\  )  sa  þ€ ÷ ØˆßØ�#˜•)ˆÜ˜{¨CÓ0€KÜ˜& #Ó&€FÜ˜7 CÓ(€Gä�qœ)×$Ò$ÜÐAÓBÐBÜ
ˆ;Ó˜3ÔÜÐ@ÓAÐAÜ
ˆ6ƒ{�cÔÜÐ;Ó<Ð<Ü
ˆ7ƒ|�sÔÜÐ<Ó=Ð=Ü
ˆ1�:‰:‹<Ó  q¥¨#°­'Ð 2Ô2ÜÐPÓQÐQà‡N�NÔØ�J‰J‹L˜˜3˜$Ð€EØ	�
‰
‹�c�T�UÐ€Aäô ˜3”Zó

á�ô ˜˜1�˜q +¨v°wÀ	ÖJÙñ

ñÑ€Eô ˆ7‡|‚|”s˜:—’Ü.¨q°#¸3Ô?ˆØ‰à—=‘=“?ˆØˆä�E‹{œT %›[Õ(€HØ�K‰K‹M€Eä%Ø	Ü;×CÑCØ!ô€L÷(ð (ô ×"Ò"¤8§<¡<°Ó=€Kà�RÔŸC›Cñ  ä˜ VÔ,ó ŸCŸCšCñ  ä˜ VÔ,ó ÷ ò ô (¨¨a­Õ0ˆÙØØØØØØØó
ð 	
ð ˜"Ôô 	�Š°Õ4ä×#Ò#Ó%ð ð �\‰\‹^€FØ‚~ÜÐ;Ó<Ð<ç	ŠÜ×ÒØ ØØØ"ØØØØ(ô	
ˆ÷ 
ô ˆr�w‰w˜×Ò¤J¨r¯w©w¯|©|¼Y×$GÒ$Gà
�
‰
Œç×*ß&6Ñ"¸KˆÜ˜"˜gÓ&‰÷	=ò 	=ô "×(Ò(Ø—<‘<“>ØØØô	
ˆô ˜"˜mÓ,ˆä�F˜EÓ"Ð"ùòK

÷v 
�ús   Ä= O"Ë1O'Ï'O7	c                óö  aaaaaaaaaaaaaa€ Se   S^ 8X  d   \        R4      hS'       g   SoS'       g   ^ ^ .o\        V \        4      '       g   \        R4      h\        V\        4      '       g   \        R4      h\        S4      ^8w  d   \        R4      h\        S4      ^8w  d   \        R4      h\        S4      ^8w  d   \        R4      h\        VP	                  4       4      R9  d   \        R4      hV P                  4        VP	                  4       Ev poo\        S^ SSSV4      w  rš\        S^SSSV4      w  r¼V P                  4       oS^ ,          ;'       g    S^,          ;'       g    T
;'       g    ToV P	                  4       Ev poo\        VP	                  4       4      pVP                  4       p\        VV3R l\        S^ ,          ^,          4       4       4      o\        VV3R	 l\        S^,          ^,          4       4       4      oSS,          pV^8”  d   \        V VSSSVSS4      # VVVVV3R
 loVVVVVVVVVVVV3R lp\        P                  ! V P                  4       VVVR7      pV# )Núdivisor must be not zeroú,expected: isinstance(grad_output, TensorBox)r‰  r   r¡  r¢  r£  c              3  ó¾   <"  € T FR  p\        \        VS^ ,          4      \        ^ \        VS^ ,          ,
          S^ ,          4      4      ,
          ^4      x € KT  	  R# 5ir1  r§  r¨  s   & €€rk   r  Ú&avg_pool2d_backward.<locals>.<genexpr>è  r©  rª  c              3  ó¾   <"  € T FR  p\        \        VS^,          4      \        ^ \        VS^,          ,
          S^,          4      4      ,
          ^4      x € KT  	  R# 5irÂ  r§  r¬  s   & €€rk   r  r  ì  r©  rª  c           	     óž  <€ \         P                  ! S^ ,          \        P                  4      p\         P                  ! S^,          \        P                  4      p\         P                  ! S^ ,          \        P                  4      p\         P                  ! S^,          \        P                  4      p\         P                  ! S^ ,          \        P                  4      p\         P                  ! S^,          \        P                  4      p\         P                  ! \         P
                  ! W4      V4      p\         P                  ! \         P
                  ! W4      V4      p	\         P                  ! \         P                  ! W†4      \         P                  ! \         P                  ! S\        P                  4      V4      4      p
\         P                  ! \         P                  ! W—4      \         P                  ! \         P                  ! S\        P                  4      V4      4      p\         P                  ! V\         P                  ! ^ \        P                  4      4      p\         P                  ! V	\         P                  ! ^ \        P                  4      4      p	\         P                  ! V
\         P                  ! S\        P                  4      4      p
\         P                  ! V\         P                  ! S\        P                  4      4      p\         P
                  ! \         P                  ! W¨4      \         P                  ! W¹4      4      pV# )zc
This computes the scaling factor that we will divide an element
by when `count_include_pad=False`
)
rY   r�  r’   r  rl  r¿  rL  r´   r€  rK  )r¹  rº  Ústride_hÚstride_wÚpad_hÚpad_wÚkernel_hÚkernel_wrl  Úwstartrm  Úwendrz  ÚheightrZ  r
  r  rÄ  s   &&           €€€€€rk   Ú!compute_pool_size_without_paddingÚ>avg_pool2d_backward.<locals>.compute_pool_size_without_paddingÿ  sÝ  ø€ ô
 —<’<  q¥	¬5¯;©;Ó7ˆÜ—<’<  q¥	¬5¯;©;Ó7ˆÜ—’˜W Q�Z¬¯©Ó5ˆÜ—’˜W Q�Z¬¯©Ó5ˆÜ—<’< ¨A¥´·±Ó<ˆÜ—<’< ¨A¥´·±Ó<ˆÜ—’œŸš Ó.°Ó6ˆÜ—’œŸš Ó.°Ó6ˆÜ�{Š{Ü�GŠG�FÓ%Ü�GŠG”C—N’N 6¬5¯;©;Ó7¸Ó?ó
ˆô �{Š{Ü�GŠG�FÓ%Ü�GŠG”C—N’N 5¬%¯+©+Ó6¸Ó>ó
ˆô —’˜V¤S§\¢\°!´U·[±[Ó%AÓBˆÜ—’˜V¤S§\¢\°!´U·[±[Ó%AÓBˆÜ�{Š{˜4¤§¢°¼¿¹Ó!DÓEˆÜ�{Š{˜4¤§¢°´u·{±{Ó!CÓDˆÜŸš¤§¢¨Ó 5´s·w²w¸tÓ7LÓMˆØÐrm   c                óT	  <€ V Ev rpVS^ ,          ,           pVS^,          ,           p\         P                  ! \        VS^ ,          ,
          S^ ,          ,           S^ ,          4      \        P                  4      p\         P                  ! \        VS^,          ,
          S^,          ,           S^,          4      \        P                  4      p\         P                  ! \        VS^ ,          4      ^,           \        P                  4      p\         P                  ! \        VS^,          4      ^,           \        P                  4      p\         P
                  ! V\         P                  ! ^ \        P                  4      4      p\         P
                  ! V\         P                  ! ^ \        P                  4      4      p\         P                  ! V\         P                  ! S\        P                  4      4      p\         P                  ! V\         P                  ! S\        P                  4      4      pRp\        S4       EFZ  p	\        S4       EFF  p
\         P                  ! V\         P                  ! V	\        P                  4      4      p\         P                  ! V\         P                  ! V
\        P                  4      4      pSe   SpM0S'       g	   S'       g   S^ ,          S^,          ,          pMS! W¼4      p\         P                  ! S! . VO\         P                  ! \         P                  ! V\         P                  ! V\         P                  ! ^\        P                  4      4      4      SRR7      N\         P                  ! \         P                  ! V\         P                  ! V\         P                  ! ^\        P                  4      4      4      SRR7      N4      V4      p\         P                  ! \         P                  ! W¶4      \         P                  ! WÇ4      4      pVf>   \         P                  ! Wþ\         P                  ! R\        P                   4      4      pEK  \         P                  ! V\         P                  ! WŽ4      V4      pEKI  	  EK]  	  Vf   \#        R4      hV# )r   NFrW  r,  r¯  )rY   r€  r,   r’   r  rK  r�  rL  r!  r´   r
  r  rl  r0  r/  r  r  r‚   )rƒ  rR  rB  r­  r²  r³  r´  rµ  r¶  r·  r¸  r¹  rº  rN  Úpartr7  r‹  r^  rN  r¾  r¿  rv  rZ  r
  rÁ  rÂ  r  rÃ  s   &               €€€€€€€€€€€€rk   r�   Úavg_pool2d_backward.<locals>.fn  s  ø€ Ø‰ˆ�AØ�˜•
�NˆØ�˜•
�NˆÜ—.’.Ü�Q˜ Q�Õ'¨&°­)Õ3°V¸AµYÓ?ÄÇÁó
ˆô —.’.Ü�Q˜ Q�Õ'¨&°­)Õ3°V¸AµYÓ?ÄÇÁó
ˆô —’œx¨¨6°!­9Ó5¸Õ9¼5¿;¹;ÓGˆÜ—’œx¨¨6°!­9Ó5¸Õ9¼5¿;¹;ÓGˆä—+’+˜g¤s§|¢|°A´u·{±{Ó'CÓDˆÜ—+’+˜g¤s§|¢|°A´u·{±{Ó'CÓDˆÜ—’˜E¤3§>¢>°-ÄÇÁÓ#MÓNˆÜ—’˜E¤3§>¢>°,ÄÇÁÓ#LÓMˆàˆÜ˜×'ˆCÜ˜]×+�Ü—W’W˜W¤c§l¢l°3¼¿¹Ó&DÓE�Ü—W’W˜W¤c§l¢l°3¼¿¹Ó&DÓE�à#Ò/Ø,‘Eß&¯kØ'¨�N¨[¸­^Õ;‘Eá=¸bÓE�Eä—{’{ÙðØ#ðä×1Ò1Ü #§¢Ø$&¬¯ª°´s·|²|ÀAÄuÇ{Á{Ó7SÓ(Tó!"ð !.Ø&+ôðô  ×1Ò1Ü #§¢Ø$&¬¯ª°´s·|²|ÀAÄuÇ{Á{Ó7SÓ(Tó!"ð !-Ø&+ôðóð& ó)�ô. —x’xÜ—F’F˜2Ó%Ü—F’F˜2Ó%ó�ð Ò#Ü"Ÿyšy¨´S·\²\À#ÄuÇ}Á}Ó5UÓV“Hä"Ÿyšy¨¬s¯wªw°xÓ/FÈÓQ“HôS ,ñ (ðV ÒÜ Ð!AÓBÐBØˆrm   rŒ  r{  )r‚   r~   rG   rÜ   rÝ   rÝ  r^  rŽ  r|   rÉ   r�  r!  Úfallback_avg_pool2d_backwardrD   rü   r�   )rÈ  r¸   rZ  r  r
  r[  r^  rN  r  Ú_h_outÚ
ceil_mode1Ú_w_outÚ
ceil_mode2rË  r¿   rc  r�   r  r‹  r¾  r¿  rv  rŠ  rÁ  rÂ  rÃ  rÄ  s   &&fff&ff          @@@@@@@@@rk   Úavg_pool2d_backwardr•  ¸  sR  ÿý€ ð Ò#Ð(8¸AÔ(=ÜÐ7Ó8Ð8ßØˆßØ�a�&ˆä�{¤I×.Ò.ÜÐKÓLÐLÜ�qœ)×$Ò$ÜÐAÓBÐBÜ
ˆ;Ó˜1ÔÜÐ>Ó?Ð?Ü
ˆ6ƒ{�aÔÜÐ9Ó:Ð:Ü
ˆ7ƒ|�qÔÜÐ:Ó;Ð;Ü
ˆ1�:‰:‹<Ó Ô&ÜÐDÓEÐEà×ÑÔàŸ
™
›Ñ€Qˆ�ä%Ø��; ¨°óÑ€Fô & e¨Q°¸VÀWÈiÓXÑ€Fà×)Ñ)Ó+€Kà˜!•*×FÐF ¨¥
×FÐF¨j×FÐF¸J€Kà&1×&:Ñ&:Ó&<Ñ#€Qˆ�|Ü�A—J‘J“LÓ!€HØ�K‰K‹M€Eäõ ä�{ 1•~¨Õ)Ô*óó €Mô õ ä�{ 1•~¨Õ)Ô*óó €Mð
   -Õ/€KØ�RÔä+ØØØØØØØØó	
ð 		
÷ñ ÷8@÷ @ð @ôD 
×	Ò	Ø×%Ñ%Ó'ØØØô	
€Bð €Irm   c                ó®  aaaaaaaaaaaaaaaaa € Se   S^ 8X  d   \        R4      hS'       g   SoS'       g   . ROo\        V \        4      '       g   \        R4      h\        V\        4      '       g   \        R4      h\        S4      ^8w  d   \        R4      h\        S4      ^8w  d   \        R4      h\        S4      ^8w  d   \        R4      h\        VP	                  4       4      R9  d   \        R4      hV P                  4        VP	                  4       Ev pooo \        S^ SSSV4      w  rš\        S^SSSV4      w  r¼\        S ^SSSV4      w  rÞV P                  4       o\        S4      ;'       g    T
;'       g    T;'       g    ToV P	                  4       Ev pooo\        VP	                  4       4      pVP                  4       pVV3R l\        ^4       4       w  oooSS,          S,          pV^}8”  d   \        V VSSSVSS4      # VVVVVV 3R	 loVVVVVVVVVVVVVV3R
 lp\        P                  ! V P                  4       VVVR7      pV# )Nr|  r}  r‰  zexpected: len(kernel_size) == 3zexpected: len(stride) == 3zexpected: len(padding) == 3z%expected: len(x.get_size()) in (4, 5)c              3  ó‚   <a"  € T F3  o\        VVV3R  l\        SS,          ^,          4       4       4      x € K5  	  R# 5i)c           
   3  ó²   <"  € T FL  p\        VSS,          ,          \        ^ VSS,          ,
          SS,          ,          4      ,
          ^4      x € KN  	  R# 5ir1  )r�  )r	  r�  r†   rZ  r  s   & €€€rk   r  Ú0avg_pool3d_backward.<locals>.<genexpr>.<genexpr>   sH   øé € ð 
á.�ô ��V˜A•Y•¤ Q¨¨[¸­^Õ);ÀÀqÅ	Õ(IÓ!JÕJÈA×NÐNÛ.ùs   ƒAAN)r�  r!  )r	  r†   rZ  r  s   &@€€rk   r  Ú&avg_pool3d_backward.<locals>.<genexpr>Ÿ  sA   ùé € ð 3ñ
 ˆAô	 	ö 
ä˜; q�>¨AÕ-Ô.ó
÷ 	
ð 	
ó ùs   „;?c           	     óø  <€ R  S 4       w  r4pR S 4       w  rgpR S 4       w  ršpR \        WV.W4V.WgV.4       4       w  rÍpR \        WÍV.WšV.SSS.WgV.4       4       w  pppR WÍV3 4       w  rÍpR \        VVV.SSS.4       4       w  ppp\        P                  ! \        P                  ! \        P                  ! Wü4      \        P                  ! VV4      4      \        P                  ! VV4      4      pV# )c              3  ól   "  € T F*  p\         P                  ! V\        P                  4      x € K,  	  R # 5ir¯   ©rY   r�  r’   r  ©r	  r“  s   & rk   r  ÚQavg_pool3d_backward.<locals>.compute_pool_size_without_padding.<locals>.<genexpr>¶  s"   é € Ð'UÉfÈ¬¯ª°Q¼¿¹×(DÐ(DËfùrc  c              3  ól   "  € T F*  p\         P                  ! V\        P                  4      x € K,  	  R # 5ir¯   r�  r"  s   & rk   r  rŸ  ·  s"   é € ÐMÁWÀœsŸ|š|¨A¬u¯{©{×;Ð;ÃWùrc  c              3  ól   "  € T F*  p\         P                  ! V\        P                  4      x € K,  	  R # 5ir¯   r�  )r	  r  s   & rk   r  rŸ  ¸  s%   é € ð (
Ù2=¨QŒC�LŠL˜œEŸK™K×(Ð(³+ùrc  c              3  ó~   "  € T F3  w  rp\         P                  ! \         P                  ! W4      V4      x € K5  	  R # 5ir¯   )rY   rl  r¿  )r	  r¦  r“  Úpads   &   rk   r  rŸ  ¼  s5   é € ð "
ñ‘	��cô �GŠG”C—G’G˜A“M 3×'Ð'óùs   ‚;=c           
   3  óî   "  € T Fk  w  rr4\         P                  ! \         P                  ! W4      \         P                  ! \         P                  ! V\        P
                  4      V4      4      x € Km  	  R # 5ir¯   )rY   rL  r´   r€  r’   r  )r	  rß  r  rß   r£  s   &    rk   r  rŸ  Â  sV   é € ð 

ñ'Ñ"�˜#ô �KŠKÜ—’˜Ó!¤3§7¢7¬3¯>ª>¸#¼u¿{¹{Ó+KÈSÓ#Q÷ð ó'ùs   ‚A3A5c              3  ó–   "  € T F?  p\         P                  ! V\         P                  ! ^ \        P                  4      4      x € KA  	  R# 5ir1  ©rY   rK  r�  r’   r  )r	  rß  s   & rk   r  rŸ  Í  s4   é € ð "
á1�ô �KŠK˜œsŸ|š|¨A¬u¯{©{Ó;×<Ð<Û1ùó   ‚AA	c              3  óš   "  € T FA  w  r\         P                  ! V\         P                  ! V\        P                  4      4      x € KC  	  R # 5ir¯   ©rY   rL  r€  r’   r  )r	  rà  rß   s   &  rk   r  rŸ  Ñ  s6   é € ð 
áK‘�ô �KŠK˜œSŸ^š^¨C´·±Ó=×>Ð>ÛKùó   ‚A	A)r   rY   r¿  rl  )Úpdr¹  rº  Ústride_dr‚  rƒ  Úpad_dr„  r…  Úkernel_dr†  r‡  Údstartrl  rˆ  Údendrm  r‰  rz  ÚdepthrŠ  rZ  r
  r  rÄ  s   &&&                €€€€€€rk   r‹  Ú>avg_pool3d_backward.<locals>.compute_pool_size_without_paddingµ  s.  ø€ Ù'UÉfÓ'UÑ$ˆ˜HÙMÁWÓMÑˆ�eñ(
Ù2=ó(
Ñ$ˆ˜Hñ"
ä Ø˜�˜x°8Ð<¸uÈUÐ>Sôó"
Ñˆ˜ñ

ô '*Ø Ð(Ø XÐ.Ø˜ Ð&Ø˜uÐ%ô	'ó	

Ñˆˆd�Dñ"
à ¨&Ñ1ó"
Ñˆ˜ñ
ä  t¨TÐ 2°U¸FÀEÐ4JÔKó
Ñˆˆd�Dô ŸšÜ�GŠG”C—G’G˜DÓ)¬3¯7ª7°4¸Ó+@ÓAÄ3Ç7Â7È4ÐQWÓCXó
ˆð Ðrm   c                ó¨  <€ V Ev rr4R  \        W#V.S4       4       w  r#pR \        W#V.SS!4       4       w  rVpR \        W#V.S!4       4       w  r‰p
R WVV3 4       w  rVpR \        W‰V
.SSS .4       4       w  r‰p
Rp\        S4       EF¸  p\        S4       EF¤  p\        S"4       EF�  pR \        WVV.WÍV.4       4       w  pppSe   SpM@S'       g	   S'       g'   S^ ,          S^,          ,          S^,          ,          pM
S! VVV4      p\        P                  ! S! . VO\        P                  ! \        P
                  ! V\        P                  ! V\        P                  ! ^\        P                  4      4      4      SRR7      N\        P                  ! \        P
                  ! V\        P                  ! V	\        P                  ! ^\        P                  4      4      4      SRR7      N\        P                  ! \        P
                  ! V\        P                  ! V
\        P                  ! ^\        P                  4      4      4      S RR7      N4      V4      p\        P                  ! \        P                  ! \        P                  ! Wø4      \        P                  ! VV	4      4      \        P                  ! VV
4      4      pVf?   \        P                  ! VV\        P                  ! R	\        P                  4      4      pEKc  \        P                  ! V\        P                  ! VV4      V4      pEK“  	  EK§  	  EK»  	  Vf   \        R
4      hV# )c              3  ó6   "  € T F  w  rW,           x € K  	  R # 5ir¯   ri   )r	  r#  r£  s   &  rk   r  Ú2avg_pool3d_backward.<locals>.fn.<locals>.<genexpr>Ü  s   é € ÐAÑ)@™v˜q�1—7’7Ó)@ùr  c              3  ó    "  € T FD  w  rp\         P                  ! \        W,
          V,           V4      \        P                  4      x € KF  	  R # 5ir¯   ©rY   r€  r,   r’   r  )r	  r#  r  r“  s   &   rk   r  rµ  Þ  s:   é € ð %
á>‘��aô �NŠNœ8 A¥E¨A¥I¨qÓ1´5·;±;×?Ð?Û>ùri  c              3  ó�   "  € T F<  w  r\         P                  ! \        W4      ^,           \        P                  4      x € K>  	  R# 5irÂ  r·  )r	  r#  r“  s   &  rk   r  rµ  ã  s4   é € ð 
á.‘�ô �NŠNœ8 A›>¨AÕ-¬u¯{©{×;Ð;Û.ùs   ‚AAc              3  ó–   "  € T F?  p\         P                  ! V\         P                  ! ^ \        P                  4      4      x € KA  	  R# 5ir1  r¦  )r	  Úpstarts   & rk   r  rµ  è  s4   é € ð %
á5�ô �KŠK˜¤§¢¨Q´·±Ó <×=Ð=Û5ùr§  c              3  óš   "  € T FA  w  r\         P                  ! V\         P                  ! V\        P                  4      4      x € KC  	  R # 5ir¯   r©  )r	  ÚpendÚ
pooled_dims   &  rk   r  rµ  ì  s;   é € ð 
ñ%Ñ �ô �KŠK˜œcŸnšn¨Z¼¿¹ÓE×FÐFó%ùrª  Nc              3  óš   "  € T FA  w  r\         P                  ! V\         P                  ! V\        P                  4      4      x € KC  	  R # 5ir¯   )rY   r´   r�  r’   r  )r	  rº  Úp_s   &  rk   r  rµ  ø  s:   é € ð "ñ+™J˜Fô Ÿš ¬¯ª°R¼¿¹Ó(E×FÐFó+ùrª  FrW  r,  r¯  )r   r!  rY   r
  r  rL  rl  r�  r’   r  r0  r/  r  r  r´   r‚   )#rƒ  rR  r�  rB  r­  Úpdstartr²  r³  Úpdendr´  rµ  r¶  Úpd_r·  r¸  r«  r¹  rº  rN  rŽ  r7  r‹  r^  Úd_window_sizerN  r¾  r¿  rv  rZ  r
  Úpooled_depthrÁ  rÂ  r  rÃ  s#   &                    €€€€€€€€€€€€€€rk   r�   Úavg_pool3d_backward.<locals>.fnÚ  sä  ø€ ØÑˆ�AÙA¬¨a°A¨Y¸Ô)@ÓA‰ˆˆañ%
ä  a˜y¨+°vÔ>ó%
Ñ!ˆ˜'ñ

ä˜Q 1˜I vÔ.ó
Ñˆ�eñ
%
à"¨WÑ5ó%
Ñ!ˆ˜'ñ
ä$'Ø˜uÐ%¨°mÀ\Ð'Rô%ó
Ñˆ�eð ˆä˜×'ˆCÜ˜]×+�Ü  ×/�Cñ"ä*-Ø$¨wÐ7¸#ÀC¸ô+ó"‘J�B˜˜Bð (Ò3Ø 0™ß*·+Ø +¨A¥°¸QµÕ ?À+ÈaÅ.Õ P™á AÀ"ÀbÈ"Ó M˜äŸ;š;Ù#ðØ!'ðä #× 5Ò 5Ü$'§K¢KØ(*¬C¯GªG°E¼3¿<º<ÈÌ5Ï;É;Ó;WÓ,Xó%&ð %1Ø*/ô!"ðô !$× 5Ò 5Ü$'§K¢KØ(*¬C¯GªG°E¼3¿<º<ÈÌ5Ï;É;Ó;WÓ,Xó%&ð %2Ø*/ô!"ðô  !$× 5Ò 5Ü$'§K¢KØ(*¬C¯GªG°E¼3¿<º<ÈÌ5Ï;É;Ó;WÓ,Xó%&ð %1Ø*/ô!"ð!óð4 ó7�Dô< Ÿ8š8ÜŸš¤§¢¨Ó!2´C·F²F¸2¸uÓ4EÓFÜŸš˜r 5Ó)ó�Dð  Ò'Ü#&§9¢9Ø  $¬¯ª°S¼%¿-¹-Ó(Hó$›ô $'§9¢9¨T´3·7²7¸8ÀTÓ3JÈHÓ#U›ôm 0ô ,ñ (ðr ÒÜ Ð!AÓBÐBØˆrm   rŒ  )r   r   r   )r«  rg  )r‚   r~   rG   rÜ   rÝ   rÝ  r^  rŽ  rC  r|   rÉ   r!  Úfallback_avg_pool3d_backwardrD   rü   r�   )!rÈ  r¸   rZ  r  r
  r[  r^  rN  rÍ  Ú_d_outÚceil_mode_dr‘  Úceil_mode_hr“  Úceil_mode_wr  rË  r¿   rc  r�   r  r‹  rÃ  r±  r¾  r¿  rv  rŠ  rÄ  rÁ  rÂ  rÃ  rÄ  s!   &&fff&ff             @@@@@@@@@@@@rk   Úavg_pool3d_backwardrË  k  sF  ÿÿø€ ð Ò#Ð(8¸AÔ(=ÜÐ7Ó8Ð8ßØˆßÚˆä�{¤I×.Ò.ÜÐKÓLÐLÜ�qœ)×$Ò$ÜÐAÓBÐBÜ
ˆ;Ó˜1ÔÜÐ>Ó?Ð?Ü
ˆ6ƒ{�aÔÜÐ9Ó:Ð:Ü
ˆ7ƒ|�qÔÜÐ:Ó;Ð;Ü
ˆ1�:‰:‹<Ó Ô&ÜÐDÓEÐEà×ÑÔà$%§J¡J£LÑ!€VˆU�F˜Eä&Øˆq�+˜v w°	óÑ€Fô 'Ø��; ¨°óÑ€Fô 'Øˆq�+˜v w°	óÑ€Fð ×)Ñ)Ó+€KÜ�g“,×KÐK +×KÐK°×KÐKÀ€Kà4?×4HÑ4HÓ4JÑ1€Qˆ�m \Ü�A—J‘J“LÓ!€HØ�K‰K‹M€Eõ3ô
 �q”ó3Ñ/€M�= -ð   -Õ/°-Õ?€KØ�SÔä+ØØØØØØØØó	
ð 		
÷#ò #÷JV÷ Vò Vôp 
×	Ò	Ø×%Ñ%Ó'ØØØô	
€Bð €Irm   c                ó¦  € V P                  4       p\        V\        4      '       d   V.pMV'       g   \        \	        V4      4      p\	        V4      ^ 8X  d!   \        V4      R9  d   \        RV 24      h. # \        V4      p\        \	        V4      4       FŠ  pW,          ^ 8  d1   Y;;,          \	        V4      '       d   \	        V4      M^,          uu&   ^ W,          u;8:  d   \	        V4      8  d   K`  M \	        V4      ^ 8X  d   W,          ^ 8X  d   K�  \        R4      h	  \	        \        V4      4      \	        V4      8w  d   \        R4      hV# )r   zinvalid axis: zAexpected: 0 <= axis[i] < len(size) or (len(size) == 0 and axis...zreduction axis not unique)ri   rf  ©r½  )	rÝ   r~   rÂ   r!  rÜ   r±   r‚   r|   r*   )r¸   r@  rý   r†   s   &&  rk   Ú_validate_reduction_axisrÎ  ;  s  € Ø�:‰:‹<€DÜ�$œ×ÒØˆv‰ßÜ”S˜“YÓˆÜ
ˆ4ƒy�A„~Ü�‹;Ð/Ô/Ü  >°$°Ð!8Ó9Ð9Øˆ	Ü�‹:€DÜ”3�t“9ÖˆØ�7�QŒ;Ø�G¤C¨§I¢I”s˜4”y°1Õ4‹GØ�T•WÖ(œs 4›y×(Ð(¬S°«Y¸!¬^ÀÅÈ1ÆÜ ØSóð ñ	 ô Œ:�dÓÓ¤ D£	Ô)ÜÐ8Ó9Ð9Ø€Krm   r½  c          	     ób  aaaaaaa€ Ve   \        W4      p V P                  4       o\        \        ,          ! \	        W4      4      p. p. o. o. o\        \        S4      4       F]  pWq9   d,   SP                  V4       SP                  SV,          4       K4  SP                  V4       VP                  SV,          4       K_  	  Ro\        V 4      ;'       g5    \        P                  ! V 4      R8H  ;'       d    \        P                  R8H  pVR9   Ed   \        S4      ^8”  dñ   V'       dé   \        V P                  \        4      '       d   RoMÅ\        V P                  \        P                   4      '       g_   \        V P                  \        P"                  4      '       dr   \        V P                  P                  \        P$                  4      '       d>   V P'                  4       p	V	P)                  4       ;'       g    V	P+                  4       '       * oVVVVVVV3R lp
S'       d2   \-        S4      pS F  p\.        P0                  P2                  W·&   K!  	  MTpV P5                  4       o\7        V P9                  4       T;'       g    V P;                  4       V P;                  4       V
VSR7      # )NFrõ   ÚcppTc                ó$  <€ \        V4      \        S4      8w  d   \        R 4      hS
'       d<   \        V 4      \        S4      8w  d   \        R4      hS Uu. uF  q V,          NK  	  p p\        V 4      \        S4      8w  d   \        R4      hR.\        V 4      \        V4      ,           ,          p\        P                  ! \	        SV 4      \	        SV4      4       F	  w  rEWSV&   K  	  S	! V4      pS'       d�   V Uu. uF  p\
        P                  ! V4      NK  	  ppV^ ,          p\        ^\        V4      4       F   pVSV,          ,          Wr,          ,           pK"  	  V\        P                  ! V\        P                  4      3# V# u upi u upi )z2expected: len(reduction_index) == len(reduced_idx)z!expected: len(index) == len(size)z%expected: len(index) == len(kept_idx)N)rÜ   r‚   r  r  r   rÊ   rS  r!  rY   r€  r’   r-  )rg  Úreduction_indexr†   r>  rƒ  Úvarr  ÚrindexÚ
linear_idxÚinner_loaderÚkeepdimsÚkept_idxÚreduced_idxÚreduced_sizesÚshould_compute_logical_indexrý   s   &&       €€€€€€€rk   rB  Ú%_make_reduction_inner.<locals>.loader‚  sN  ø€ ÜˆÓ¤3 {Ó#3Ô3Ü Ð!UÓVÐVßÜ�5‹zœS ›YÔ&Ü$Ð%HÓIÐIÙ'/Ó0¡x !˜1—X�X¡xˆEÐ0Üˆu‹:œ˜X›Ô&Ü Ð!HÓIÐIØ�Fœc %›j¬3¨Ó+?Õ?Õ@ˆ	Ü!ŸšÜ�˜%Ó ¤# k°?Ó"Cö
‰HˆCð !�c‹Nñ
ñ ˜YÓ'ˆ÷ (Ù/>Ó?©¨!”e—l’l 1–o©ˆFÐ?ð   �ˆJÜ˜1œc &›kÖ*�Ø'¨-¸Õ*:Õ:¸V½YÕF’
ñ +ð œ3Ÿ>š>¨*´e·k±kÓBÐCÐCàˆùò- 1ùò @s   ÁFÃ<F)r‰   rv  rø  rŠ  r�  rw  )rx  ÚargminÚargmax_valueÚargmin_valueÚargmax_with_valueÚargmin_with_value)r  rÝ   r*   rÂ   rÎ  r!  rÜ   rƒ   r?   r6   Úget_device_typer4   Úcpu_backendr~   r€   rC   rö   rú   ÚBufferr  Úis_transposedÚis_contiguousr|   rÊ   rO  rP  rŽ  r3  r�   rÉ   )r¸   r@  r×  r¿   r[  r½  Ú
kept_sizesr†   Ú supports_logical_index_argreducer  rB  rË  rÖ  rØ  rÙ  rÚ  rÛ  rý   s   &$d$$$      @@@@@@rk   Ú_make_reduction_innerré  R  s
  þ€ ð ÒÜ�QÓˆØ�:‰:‹<€DÜ”cŽ?Ô3°AÓ<Ó=€Dà€JØ€HØ€MØ€KÜ”3�t“9ÖˆØŒ9Ø×Ñ˜qÔ!Ø× Ñ   a¥Ö)à�O‰O˜AÔØ×Ñ˜d 1�gÖ&ñ ð $)Ð Ü'0°£|÷ (ð (Ü
×Ò˜1Ó Ñ&×FÐF¬6×+=Ñ+=ÀÑ+Fð %ð 	ð
õ	
ô �Ó Ô"ß,ä�a—f‘fœk×*Ò*Ø+/Ñ(Ü˜Ÿ™¤× 2Ñ 2×3Ò3Ü�q—v‘vœrŸ}™}×-Ò-´*¸Q¿V¹V¿[¹[Ì"Ï)É)×2TÒ2Tà—\‘\“^ˆFà×$Ñ$Ó&×DÐD¨f×.BÑ.BÓ.DÔ*Dð )÷ó ÷< Ü˜“:ˆÛˆAÜŸ'™'Ÿ+™+ˆH‹Kò ð ˆà—=‘=“?€LÜØ�|‰|‹~Ø'×8Ð8¨1¯;©;«=Ø—+‘+“-ØØØ&ôð rm   Ú
strict_sumc               ó$   € V ^8„  d   QhRRRRRR/# )rf   r½  r\   rê  rh   rg   zCallable[..., TensorBox]ri   )rj   s   "rk   rl   rl   ²  s(   € ÷ #ñ #Ø!ð#ð ð	#ð
 ñ#rm   c               ó.   a aa€ RRR /R VV V3R llllpV# )Nr¿   c               ó   € V ^8„  d   QhRR/# )rf   rg   rG   ri   )rj   s   "rk   rl   Ú$make_reduction.<locals>.__annotate__¸  s   € ÷ ñ ¸iñ rm   c          	     ó^  <€ SR9   d>   V P                  4       \        P                  8X  d   \        V \        P                  4      p \        V VVVSSR7      p\        P                  ! RRSRV RS/VB p\        VP                  P                  \        4      '       d   VP                  4        V# )rx  ©r@  r×  r¿   r[  r½  r½  ru  rê  )rx  rÝ  ri   )rÉ   r’   rh   r  r  ré  rE   rü   r~   r€   rí  )	r¸   r@  r×  r¿   r  rù  r[  r½  rê  s	   &&&$  €€€rk   rÅ  Úmake_reduction.<locals>.inner¸  s±   ø€ ð Ð1Ô1°a·k±k³mÄuÇzÁzÔ6QÜ˜œEŸK™KÓ(ˆAÜ&ØØØØØ"7Ø)ô
ˆô ×!Ò!ñ 
Ø)ð
àð
ð "ð
ð ñ	
ˆô Ø�K‰K×ÑÜ÷
ò 
ð �N‰NÔØˆrm   rY  ri   )r½  r[  rê  rÅ  s   ffd rk   Úmake_reductionrò  ²  s   ú€ ñ°T÷ õ ð: €Lrm   c               ó    € V ^8„  d   QhRRRR/# )rf   r½  r\   rg   z"Callable[..., Sequence[TensorBox]]ri   )rj   s   "rk   rl   rl   Ø  s   € ÷ ñ Ø!ðà'ñrm   c                ó   a € RR V 3R lllpV# )Nc               ó   € V ^8„  d   QhRR/# )rf   rg   zSequence[TensorBox]ri   )rj   s   "rk   rl   Ú3make_arg_with_value_reduction.<locals>.__annotate__Û  s   € ÷ 
ñ 
Ð/Bñ 
rm   c           	     óŠ   <€ \        V VVR V P                  4       SR7      p\        P                  P                  ! RRSRV /VB # )Nrð  r½  ru  ri   )ré  rÉ   r6   ÚArgReductionrü   )r¸   r@  r×  r  r½  s   &&& €rk   rÅ  Ú,make_arg_with_value_reduction.<locals>.innerÛ  sV   ø€ Ü&ØØØØØ"#§+¡+£-Ø)ô
ˆô �‰×%Ò%ñ 
Ø)ð
Ø67ð
Ø;Añ
ð 	
rm   rY  ri   )r½  rÅ  s   f rk   Úmake_arg_with_value_reductionrú  Ø  s   ø€ ÷
ò 
ð €Lrm   c               óÊ   € Ve   \        W4      p \        W4      p\        V P                  4       V P	                  4       3V P                  4       3V P                  4       VR7      # )N)r‰   ÚdtypesÚ	inner_fnsrý   r@  )r  rú  r3  r�   rÉ   rŽ  rÝ   )r¸   r@  r¿   s   &$$rk   Ú_make_scan_innerrþ  ë  sV   € ØÒÜ�QÓˆÜ˜Ó!€DäØ�|‰|‹~Ø—‘“ÐØ—=‘=“?Ð$Ø�Z‰Z‹\Øôð rm   c               ó&  a€ Ve   \        W4      p V P                  4       o\        W4      pV P                  4       pV\        P
                  \        P                  39   d   \        V \        P                  4      p \        WV4      p\        V3R lV 4       4      p\        P                  ! W`P                  4       V P                  4       R7      p\        P                  ! V\        VP                  4       4      4      p\        \!        WV4      V4      # )Nc              3  ó6   <"  € T F  pSV,          x € K  	  R # 5ir¯   ri   ©r	  r†   rý   s   & €rk   r  Úmean.<locals>.<genexpr>  ó   øé € Ð0©4 a˜$˜qŸ'š'«4ùr  rf  )r  rÝ   rÎ  rÉ   r’   rx  rw  ra  Úsum_rW   r6   r=   r�   r<   rü   r|   Údiv)r¸   r@  Úkeepdimr¿   r•  Ú
sum_resultÚdenomrý   s   &&&$   @rk   rÌ  rÌ  ù  sÄ   ø€ àÒÜ�QÓˆØ�:‰:‹<€DÜ# AÓ,€Dà—;‘;“=€LØœŸ™¤u§~¡~Ð6Ô6Ü�QœŸ™Ó$ˆÜ�a˜wÓ'€JÜÔ0©4Ó0Ó0€EÜ×Ò e·;±;³=ÈÏÉËÔX€EÜ×Ò˜e¤T¨*×*=Ñ*=Ó*?Ó%@ÓA€EÜ”C˜
Ó*¨LÓ9Ð9rm   c                óN  a
€ Vf   ^pV P                  4       o
\        W4      p\        WRR7      pV'       d   VP                  4        \	        \        W4      4      p\        WaV4      p\        V
3R lV 4       4      pV'       d   \        W‚,
          ^ 4      p\        P                  ! W€P                  4       V P                  4       R7      p\        P                  ! V\        VP                  4       4      4      p\!        Wx4      p	V'       g   V	3# V'       d   TM
\#        WQ4      pW•3# )NT)r	  c              3  ó6   <"  € T F  pSV,          x € K  	  R # 5ir¯   ri   r	  s   & €rk   r  Ú var_mean_sum_.<locals>.<genexpr>  r	  r  rf  )rÝ   rÎ  rÌ  rí  Úsquarerl  r	  rW   r.   r6   r=   rÉ   r�   r<   rü   r|   r	  r”  )r¸   r@  Ú
correctionr	  Úreturn_meanÚx_meanÚdiffsr	  r	  Úx_varrý   s   &&&&&     @rk   Úvar_mean_sum_r	  
  sà   ø€ ØÒØˆ
à�:‰:‹<€DÜ# AÓ,€DÜ�! 4Ô(€FßØ�‰Ôä”3�q“>Ó"€EÜ�e 7Ó+€JäÔ0©4Ó0Ó0€EßÜ�EÕ&¨Ó*ˆÜ×Ò e·;±;³=ÈÏÉËÔX€EÜ×Ò˜e¤T¨*×*=Ñ*=Ó*?Ó%@ÓA€EÜ�
Ó"€EßØˆxˆç‰V¤G¨FÓ$9€FØˆ=Ðrm   c                óÄ  € \        W4      p\        WVR R R7      pVR,          p\        VR,          4      pV P                  4       pRp^ p	V\        P
                  \        P                  39   p
V'       d-   VP                  R8X  d   \        P                  P                  pMyV'       db   VP                  R8X  dQ   \        V 4      '       d@   V
'       d8   \        P                  P                  p	\        P                  P                  pRpM\        P                  p\        V\         P"                  4      '       g   R# \%        V4      pWk8”  g   \        V4      ^8X  d   R# V	'       d"   \        P                  Tu;8  d
   V	8  d    R#  V'       g   R# \&        P(                  P*                  ! RRVR	R
/VB w  rÍ\,        P.                  P0                  P3                  V^4      # )N©r@  r×  r¿   r[  r�  rw  Frõ   r¬  Tr¡  r½  r  ri   )rÎ  ré  rW   r�   r’   rw  rx  rù   r4   rÐ  Úuse_two_step_variance_thresholdr?   ÚtritonÚuse_two_step_variance_min_numelr€  r~   rÊ   r  rÂ   r6   rE   Ú
num_splitsrZ   rp   r÷   ró  )r¸   r@  r	  Úinput_dtyper  r�  r¡  r‰   Úcheck_for_splitÚ	min_numelÚis_cuda_two_step_dtypeÚ	thresholdr  r,  s   &&&&          rk   Úuse_two_step_variancer	  $  sx  € ô $ AÓ,€DÜ"Ø	˜w¨dÈ$ô€Fð �HÕ€FÜ# FÐ+=Õ$>Ó?€OØ�\‰\‹^€FØ€OØ€IØ(¬U¯^©^¼U¿]¹]Ð,KÑKÐß�&—+‘+ Ô&ô —J‘J×>Ñ>‰	ß	�F—K‘K 6Ô)¬i¸¯lªl×?UÜ—M‘M×AÑAˆ	Ü—M‘M×AÑAˆ	Ø‰ä×6Ñ6ˆ	ä�o¤u§}¡}×5Ò5Ùä˜/Ó*€OØÔ"¤m°FÓ&;¸qÔ&@Ùç”V×7Ñ7¸/ÖUÈIÕUÙð V÷ Ùä�|‰|×&Ò&ñ Ø'ðàðð ñ�H€Aô
 �7‰7×Ñ×0Ñ0°¸Ó:Ð:rm   c          
     ó"  aaaaa€ Sf   ^o\        WVR R R7      pVP                  R4      pVP                  R4       VP                  R4       \        P                  P                  ! RRV3RRRV P                  4       /VB w  rxp	VP                  4        V P                  4       oV P                  4       o\        W4      p\        V3R	 lV 4       4      oR
 oVVVV3R lp
\        V
4      ! V4      pV'       d   VP                  4        W·3# V3# )Nr	  rŠ  rv  rø  rý  r½  Úwelford_reducer¿   c              3  ó6   <"  € T F  pSV,          x € K  	  R # 5ir¯   ri   r	  s   & €rk   r  Ú$var_mean_welford_.<locals>.<genexpr>l  s   øé € Ð1©D q˜4 Ÿ7š7«Dùr  c                ó  € \        V \        P                  4      '       dM   V P                  '       g;   \        P
                  ! \        P                  ! V \        P                  4      V4      # \        P                  ! W4      # r¯   )
r~   rÊ   rË   Ú	is_numberrY   r  r€  r’   r-  r�  rh  s   &&rk   Úget_constant_or_index_exprÚ5var_mean_welford_.<locals>.get_constant_or_index_exprn  sJ   € Ü�aœŸ™×$Ò$¨Q¯[¯[¨[Ü—<’<¤§¢¨q´%·+±+Ó >ÀÓFÐFÜ�|Š|˜AÓ%Ð%rm   c                óž   <€ S! SS4      pS! SS4      p\         P                  ! ^ S4      pV \         P                  ! W2V,
          4      ,          # rf  )rY   r�  rK  )r€   ÚcÚNÚzeror	  r¿   r%	  Úrnumels   &   €€€€rk   r×  Ú#var_mean_welford_.<locals>.scale_fns  sC   ø€ Ù& z°5Ó9ˆÙ& v¨uÓ5ˆÜ�|Š|˜A˜uÓ%ˆØ”c—k’k $¨A­Ó.Õ.Ð.rm   ri   )ré  rÙ  r6   ÚWelfordReductionrü   rÉ   rí  rÝ   rÎ  rW   rÇ  )r¸   r@  r	  r	  r	  r  rB  rÌ  Úm2r  r×  rÓ  r¿   r%	  r+	  rý   s   &&d$$       @@@@rk   Úvar_mean_welford_r/	  V  s  ü€ ØÒØˆ
ä"Ø	˜w¨dÈ$ô€Fð �Z‰Z˜
Ó#€FØ
‡J�Jˆ{ÔØ
‡J�Jˆ{Ôä×%Ñ%×,Ò,ñ Ø�)ðà'ðð �k‰k‹mðð ñ	�K€Dˆað ‡J�J„Là�K‰K‹M€EØ�:‰:‹<€DÜ# AÓ,€DÜÔ1©DÓ1Ó1€Fò&÷
/ð /ô ˜Ô
" 2Ó
&€CçØ�‰ŒØˆyÐØˆ6€Mrm   c               ó’  a€ V P                  4       o\        S4      p\        WR R7      p \        V VVVVR7      p\        P
                  P                  '       g   \        WVSR7      '       d   \        R/ VB M
\        R/ VB p\        ;QJ d    . V3R lV 4       F  NK  	  5M! V3R lV 4       4      pV'       g
   V^ ,          # T# )F©rõ  )r¸   r@  r	  r	  r	  )r@  r	  r	  c              3  ó@   <"  € T F  p\        VSR R7      x € K  	  R# 5i)Fr1	  N)r  )r	  r¸   r\  s   & €rk   r  Ú#var_mean_helper_.<locals>.<genexpr>–  s   øé € ÐF¹v¸!”8˜A˜y¨u×5Ñ5»vùr‰  ri   )rÉ   r   r  r3  r4   ÚmtiaÚdisable_welford_reductionr	  r	  r/	  r±   )	r¸   r@  r	  r	  r	  rä   r  rV  r\  s	   &$$$$   @rk   Úvar_mean_helper_r6	  �  s³   ø€ Ø—‘“€IÜ)¨)Ó4€MÜ�¨Ô.€AÜØ
ØØØØô€Fô �K‰K×1×1Ð1Ü$Ø g¸9÷ó ô 	Ñ˜Òô Ñ( Ñ(ð ÷ ŒUÔF¹vÓF�U‰UÔF¹vÓFÓF€Fß'ˆ6�!�9Ð3¨VÐ3rm   r	  r	  c               ó   € \        WW#R R7      # )F©r@  r	  r	  r	  ©r6	  ©r¸   r@  r	  r	  s   &&$$rk   Úvar_r;	  š  s   € äØ	 È%ôð rm   c               ó   € \        WW#R R7      # )Tr8	  r9	  r:	  s   &&$$rk   Úvar_meanr=	  ¡  s   € äØ	 È$ôð rm   c                ó@  € V^ 8  d#   \        \        P                  ! V 4      V) V4      # V^ 8X  d   \        P                  ! ^V4      # V^8X  d   V # \        W^,          V4      p\        P                  ! W34      pV^,          ^8X  d   \        P                  ! W04      pV# rf  )Úpow_recursiverY   rJ  r�  r¿  )r¸   rW  r¿   rù  s   &&& rk   r?	  r?	  ¨  sƒ   € Øˆ1„uÜœSŸ^š^¨AÓ.°°°EÓ:Ð:ØˆA„vÜ�|Š|˜A˜uÓ%Ð%ØˆA„vØˆä˜1 1�f eÓ,€FÜ�WŠW�VÓ$€FØ	ˆA��!„|Ü—’˜Ó#ˆØ€Mrm   c                ó.   € \         P                  ! W4      # r¯   )rY   rX  ©r
  rU  s   &&rk   Ú
pow_nativerB	  ·  s   € ä�7Š7�1‹=Ðrm   )r  c                ó6  a aa€ \        S\        4      '       d,   SP                  4       '       d   \        S \	        S4      4      # \        S\        4      '       d   SR 8X  d   \        S 4      # \        S\        4      '       d   S^8X  d   \        S 4      # \        R S S3 4       4      p\        V4      p\        S\        4      ;'       d.    RSu;8  ;'       d    ^ 8  Mu ;'       g    T;'       d    S^ 8¬  pV'       d]   S P                  4       oV VV3R lp\        P                  ! S P                  4       S P                  4       VS P                  4       R7      # \        S \        4      '       dE   S ^8X  d   \!        S^4      # S ^8X  d+   \#        SP                  4       4      '       d   \%        S4      # V'       dQ   \        S \        4      '       d   \'        S S4      # \        S\        4      '       d   \)        S S4      # \+        S S4      # \-        S S4      # )rÖ  c              3  ó†   "  € T F7  p\        V\        P                  4      '       g   K%  VP                  4       x € K9  	  R # 5ir¯   )r~   r6   rG   rÉ   r@  s   & rk   r  Úpow.<locals>.<genexpr>Ï  s'   é € ÐN© 1´*¸QÄÇÁ×2M”�—‘—�«ùs
   ‚"A©Ac                óF   <€ \        S! V 4      SSP                  4       4      # r¯   )r?	  rÉ   )rƒ  r
  rU  rB  s   &€€€rk   r�   Úpow.<locals>.fnÙ  s   ø€ Ü ¡¨£¨a°·±³Ó?Ð?rm   rŒ  iàÿÿÿ)r~   ra  rÌ   rX  rÂ   Úsqrtrý  rv  r"   rŽ  rD   rü   r�   rÉ   rÝ   r#   rŸ  r!   Úexp2Úfallback_pow_scalarÚfallback_pow_tensor_scalarÚfallback_pow_tensor_tensorrB	  )r
  rU  r¿   Úis_integer_powÚembed_exponentr�   rB  s   ff    @rk   rX  rX  Å  sš  ú€ ä�!”U×Ò §¡§¢Ü�1”c˜!“f‹~ÐÜ	�A”u×	Ò	 ! s¤(Ü�A‹wˆÜ	�A”s×	Ò	  Q¤Ü�Q‹xˆô ÑN¨¨A©ÓNÓN€EÜ% eÓ,€Nô   ¤3Ó'÷ ð Øˆa�Œ�"Œ×3Ð3˜×2Ð2¨A°©Fð ÷ Ø—‘“ˆ÷	@ô ×ÒØ—<‘<“>Ø—+‘+“-ØØ—:‘:“<ô	
ð 	
ô �!”V×ÒØ�Œ6Ü˜Q “?Ð"à�Œ6”n Q§[¡[£]×3Ò3Ü˜“7ˆNçä�aœ× Ò Ü& q¨!Ó,Ð,Ü˜œ6×"Ò"Ü-¨a°Ó3Ð3ä-¨a°Ó3Ð3ä�a˜ÓÐrm   c                ó¨  € \        V \        4      '       d   V P                  pMT p\        V\        4      '       d   VP                  p\        V\        P                  4      '       g±   \
        P                  ! V P                  4       V P                  4       VP                  4       V P                  4       R 7      p\        V\        \        34      '       g   \        R4      hVP                  p\        V\        P                  4      '       g   \        R4      h\        V\        P                  4      '       dz   VP                  4       '       gd   VP                  4       '       gN   \        VP                  \        P                   4      '       g$   VP#                  4        VP                  Vn        V # \        P$                  P'                  WVR7       V # )rŒ  z2expected: isinstance(node, (BaseView, MutableBox))z(expected: isinstance(val, ir.StorageBox)©Úunsafe_alias)r~   rG   r€   r6   rú   rD   rü   r�   rÉ   rŽ  rÝ   r:   r@   r‚   Úis_input_bufferÚis_module_bufferÚ	NopKernelrí  r‡  Úrealize_into)Úchangedrš  rQ	  Úchanged_datarv   s   &&&  rk   r  r  ö  sO  € Ü�'œ9×%Ò%Ø—|‘|‰àˆÜ�#”y×!Ò!Ø�h‰hˆä�cœ2Ÿ=™=×)Ò)ä×ÒØ×%Ñ%Ó'Ø×#Ñ#Ó%Ø—_‘_Ó&Ø×#Ñ#Ó%ô	
ˆô ˜4¤(¬JÐ!7×8Ò8Ü Ð!UÓVÐVØ�i‰iˆÜ˜3¤§¡×.Ò.Ü Ð!KÓLÐLä�,¤§¡×.Ò.Ø×$Ñ$×&Ò&à×(Ñ(×*Ò*Ü�l×'Ñ'¬¯©×6Ò6ð 	�‰ŒØŸH™HˆÔØˆä×!Ñ!×.Ñ.Ø¨ð /ô ð €Nrm   c                ó,   € \        V \        W4      4      # r¯   )r  rŸ  )r¸   rê  s   &&rk   r  r    s   € ä�Qœ	 !Ó0Ó1Ð1rm   c                ó¼   € WJ d   V # \        WP                  4       4      p\        WP                  4       4      p\	        WP                  4       4      p\        W4      # r¯   ©rH  r�   r  rÉ   rS  rÝ   r  )r-  r  rD  s   &&&rk   rŸ  rŸ  "  sH   € à
ƒzàˆ
Ü
�CŸ™Ó)Ó
*€CÜ
�3Ÿ™›Ó
(€CÜ
�—l‘l“nÓ
%€CÜ�SÓÐrm   c                ó.   € \         P                  ! W4      # r¯   )rY   ÚfloordivrA	  s   &&rk   r\	  r\	  -  ó   € ä�<Š<˜ÓÐrm   c                ó.   € \         P                  ! W4      # r¯   )rY   ÚtruncdivrA	  s   &&rk   r_	  r_	  2  r]	  rm   c                ó.   € \         P                  ! W4      # r¯   )rY   Údiv_rnrA	  s   &&rk   Ú_div_rnrb	  7  s   € ä�:Š:�aÓÐrm   c                óæ   € \        V \        \        34      '       d   T MTp\        \	        R 4      4      ! V4      p\        R4      ! V4      p\        R4      ! V4      pR p\        V4      ! WW4V4      # )Únanr,  c                ó*  € \         P                  ! W4      p\         P                  ! V4      p\         P                  ! V 4      p\         P                  ! \         P
                  ! V4      \         P
                  ! \         P                  ! V 4      4      4      p\         P                  ! V\         P                  ! W4      4      p	\         P                  ! \         P                  ! V\         P                  ! W4      4      \         P                  ! \         P                  ! V4      \         P                  ! \         P                  ! W4      \         P                  ! W4      4      4      4      p
\         P                  ! W£V4      p\         P                  ! W’V4      # r¯   )
rY   ra	  r¨  r�  Úlogical_andÚlogical_notr£  Úner/  r  )r
  rU  rd	  Úneg_oner*	  Úquotientrù  Úa_is_infÚa_is_finiteÚa_inf_nonzero_bÚfinite_nonzero_a_inf_bs   &&&&&      rk   r�   Ú_floor_div_floating.<locals>.fnE  sî   € Ü—:’:˜aÓ#ˆÜ—’˜8Ó$ˆÜ—9’9˜Q“<ˆÜ—o’oÜ�OŠO˜HÓ%¤s§¢´s·y²yÀ³|Ó'Dó
ˆô Ÿ/š/¨(´C·F²F¸1³OÓDˆô
 "%§¢Ü�OŠO˜K¬¯ª°«Ó9Ü�OŠOœCŸIšI a›L¬#¯&ª&´·²¸³Ä#Ç&Â&ÈÃ/Ó*RÓSó"
Ðô —’Ð1¸FÓCˆÜ�yŠy˜¨vÓ6Ð6rm   g      ð¿)r~   rG   r>   r{  ra  rÇ  )r
  rU  Úrefrd	  ri	  r*	  r�   s   &&     rk   Ú_floor_div_floatingrq	  <  sh   € ô ˜!œi¬Ð0×1Ò1‰!°q€CÜ
œ˜e›Ô
% cÓ
*€CÜ˜DÔ! #Ó&€GÜ˜Ô˜cÓ"€Dò7ô, ˜"Ô˜a C°$Ó7Ð7rm   c                ó‚  € \        V 4      ;'       d    \        V4      p\        V 4      ;'       d    \        V4      pVR 8X  d2   V'       d   \        R4      hV'       d   \        W4      # \	        W4      # VR8X  d;   V'       d   \        R4      hV'       d   \        W4      # \        \        W4      4      # \        W4      # )r¨  z5floordiv operands can not be boolean at the same timer­  z5truncdiv operands can not be boolean at the same time)rÎ   rÑ   r‚   r\	  rq	  r_	  r­  r	  )r
  rU  Úrounding_modeÚboth_integerÚboth_booleans   &&&  rk   Údiv_moderv	  ^  s§   € ä" 1Ó%×<Ð<¬/¸!Ó*<€LÜ" 1Ó%×<Ð<¬/¸!Ó*<€Lð ˜ÔßÜ ØGóð ÷ ".Œx˜‹~ÐLÔ3FÀqÓ3LÐLØ˜ÔßÜ ØGóð ÷ ".Œx˜‹~ÐC´5¼¸Q»Ó3CÐCÜˆq‹9Ðrm   c                óÌ   € \        V 4      ;'       d    \        V4      pV'       d   \        W4      # \        \        P                  P
                  4      p\        V4      ! W4      # r¯   )rÑ   rf	  rB   r:  r¿  rM  rÇ  )r
  rU  Ú	both_boolr�   s   &&  rk   r¿  r¿  x  sK   € ä Ó"×9Ð9¤°qÓ'9€IßÜ˜1Ó Ð äœŸ™×*Ñ*Ó+ˆÜ˜bÔ! !Ó'Ð'rm   c               ó    € V ^8„  d   QhRRRR/# )rf   r¸   rÐ  rg   zir.Constant | Noneri   )rj   s   "rk   rl   rl   ‚  s   € ÷ ñ ˜)ð Ð(:ñ rm   c           	     ó  € \        V \        P                  4      '       d   \        V P                  4      # \        V \        P
                  4      '       d   \        V P                  4       4      # \        V \        P                  4      '       d   V # \        V \        P                  4      '       g   R# \        P                  P                  P                  V P                  4       4      p\        P                  ! V4      ;_uu_ 4        \         P"                  ! \        P$                  RR4      ;_uu_ 4        V P&                  ! V P)                  4       !  pRRR4       RRR4       \        X\        P                  P*                  P,                  4      '       g   \/        R4      h\        VP0                  \        P                  4      '       d   VP0                  # R#   + '       g   i     L�; i  + '       g   i     Lš; i)z:Try convert an arbitrary IR node into an ir.Constant valueNÚallow_indexingTz?expected: isinstance(out, torch._inductor.virtualized.OpsValue))r~   r6   r@   Úget_constant_valuer€   r:   r  r  ÚLoopsr’   Ú	_inductorÚops_handlerÚExtractConstantsHandlerr�   rZ   Úset_ops_handlerr   Úobjectr�  rŠ  Úinner_fn_argsÚvirtualizedÚOpsValuer‚   r  )r¸   rR  r„   s   &  rk   r|	  r|	  ‚  sC  € ô
 �!”R—]‘]×#Ò#Ü! !§&¡&Ó)Ð)Ü�!”R—[‘[×!Ò!Ü! !§-¡-£/Ó2Ð2Ü�!”R—[‘[×!Ò!Øˆô �aœŸ™×"Ò"Ùä�o‰o×)Ñ)×AÑAÀ!Ç,Á,Ã.ÓQ€Gä	×Ò˜'×"Õ"Ü�Š”R×&Ñ&Ð(8¸$×?Õ?à�jŠj˜!Ÿ/™/Ó+Ñ,ˆ÷ 	@÷ 	#ô
 �sœEŸO™O×7Ñ7×@Ñ@×AÒAÜØMó
ð 	
ô �#—)‘)œRŸ[™[×)Ò)Ø�y‰yÐÙ÷ 	@×?ú÷ 	#×"ús$   Ä/G0Ä7G	ÅG0ÇG-Ç(G0Ç0H 	c                óÌ  € \         ;QJ d    R  W3 4       F  '       d   K   RM	  RM! R  W3 4       4      pV'       d   \        W4      # \        V4      ;pez   V P                  4       P                  R8w  d[   VP
                  ^ 8X  d,   \        P                  ! \        R4      VP
                  4      pMRVP
                  ,          p\        W4      # R p\        V4      ! W4      # )c              3  ó^   "  € T F#  p\        V4      ;'       g    \        V4      x € K%  	  R # 5ir¯   )rÑ   rÎ   r@  s   & rk   r  Údiv_prim.<locals>.<genexpr>§  s%   é € ÐOÉÀ1”o aÓ(×>Ð>¬O¸AÓ,>Ô>Ëùs   ‚-™-FTrõ   Úinfrs  c                 ó*   € \         P                  ! V !  # r¯   )rY   r
  ry  s   *rk   r�   Údiv_prim.<locals>.fn·  s   € Ü�{Š{˜DÑ!Ð!rm   )rB  r_	  r|	  r�   rù   r  ÚmathÚcopysignra  r¿  rÇ  )r
  rU  Úis_integralry  rJ  r�   s   &&    rk   rt  rt  ¥  s¯   € ç“#ÑOÈÉÓO—#—#’#ÑOÈÉÓOÓO€KçÜ˜‹~Ðô & aÓ(Ð(ˆÒ5¸!¿,¹,».×:MÑ:MÐQVÔ:Vð �=‰=˜AÔÜŸš¤u¨U£|°W·]±]ÓC‰Jà˜wŸ}™}Õ,ˆJÜ�1Ó!Ð!ò"ô ˜"Ô˜aÓ#Ð#rm   c                óT   € \        W3\        P                  R 7      w  r\        W4      # ©r~  )r|  r   ÚINT_TO_FLOATrt  rA	  s   &&rk   r	  r	  ½  s*   € ô Ø	
ˆÔ$C×$PÑ$Pô�D€Aô �A‹>Ðrm   c                ó~   € \        V 4      ;'       g    \        V 4      pV'       d   R  pMR p\        V4      ! W4      # )c                ó.   € \         P                  ! W4      # r¯   )rY   ÚmodrA	  s   &&rk   r�   Úfmod.<locals>.fnÏ  s   € Ü—7’7˜1“=Ð rm   c                ó.   € \         P                  ! W4      # r¯   )rY   ÚfmodrA	  s   &&rk   r�   r•	  Ô  s   € Ü—8’8˜A“>Ð!rm   )rÑ   rÎ   rÇ  )r
  rU  rŽ	  r�   s   &&  rk   r—	  r—	  É  s8   € ä! !Ó$×:Ð:¬¸Ó(:€Kçó	!ò
	"ô ˜"Ô˜aÓ#Ð#rm   c               ó   € V ^8„  d   QhRR/# re   ri   )rj   s   "rk   rl   rl   Ú  s   € ÷ >ñ >°ñ >rm   c           	     ó®  a€ \         P                  P                  pVeW   \        P                  R8w  gB   VP
                  \        P                  P                  8w  g   Vf   V e   \        4       '       g   R# \        V \        4      '       d   V .M
\        V 4      p\        V4      ^8w  d   R# VP                  ^ ,          p\        V\        P                   P"                  4      '       g   R# VP$                  P'                  R4      p\        V\        P(                  4      '       dN   VP*                  \        P,                  \        P.                  \        P0                  \        P2                  09  d   R# VP4                  '       d8   \        P6                  P8                  f   \;        VP<                  4      '       g   R# V^ ,          ^ 8  d   V^ ,          VP>                  ,           MV^ ,          p^ Tu;8:  d   VP>                  8  g    R#  R# VP@                   Uu. uF  p\C        V4      NK  	  ppVPE                  4        U	u. uF  p	\C        V	4      NK  	  p
p	\         P                  PF                  o\I        \K        WŠ4      4       UUU	u. uF-  w  pw  ryW¶8w  g   K  SPM                  V^4      '       d   K*  Wy3NK/  	  pppp	\N        ;QJ d3    V3R l\P        PR                  ! V4       4       F  '       d   K   RM(	  RM$! V3R l\P        PR                  ! V4       4       4      pSPM                  W†,          ^4      '       dœ   V'       gj   SPM                  V
^ ,          ^4      ;'       dI    \N        ;QJ d&    V3R lV
R,           4       F  '       d   K   R# 	  R# ! V3R lV
R,           4       4      # T;'       d!    SPM                  VR	,          ^,          ^4      # SPM                  W¦,          ^4      '       g   R# \T        ;QJ d    V3R lV 4       F  '       g   K   RM	  RM! V3R lV 4       4      '       d   R# V# u upi u up	i u up	ppi )
NÚstrictFrš  c              3  ób   <"  € T F$  w  w  rw  r4SP                  W$V,          4      x € K&  	  R # 5ir¯   ©rü  )r	  r  Úslow_strideÚ	fast_sizeÚfast_strider÷   s   &    €rk   r  Ú._strict_sum_layout_eligible.<locals>.<genexpr>  s6   øé € ð á:SÑ6ÑˆQÑ6˜yð 	×(Ñ(¨ÀIÕ6M×NÐNÛ:Sùs   ƒ,/Tc              3  ó|   <"  € T F1  pSP                  V^ 4      ;'       g    SP                  V^4      x € K3  	  R# 5ir1  rœ	  )r	  r  r÷   s   & €rk   r  r 	    sG   øé € ð Kñ *�Fð ×0Ñ0°¸Ó;÷ ?ð ?Ø×3Ñ3°F¸AÓ>ô?ã)ùs   ƒ<¡<r­  c              3  ó~   <"  € T F2  w  rSP                  \        P                  ! V^4      4      '       * x € K4  	  R# 5irÂ  )rf  rÊ   rî  )r	  r  r  r÷   s   &  €rk   r  r 	    s3   øé € ð ÙQVÁIÀAˆH×*Ñ*¬5¯8ª8°F¸AÓ+>Ó?×?Ñ?ÓQVùs   ƒ:=r½  )+rZ   rp   rq   r4   Únumericsrt   r:  r  Údim_IntListr2   r~   rÂ   r|   rÜ   r‡   r’   ræ  rç  r“  r”  r«  r¿   rx  rw  r  r-  r|  ÚversionÚhipr?   r‰   r8  r¹  rK   r  r÷   r}   r   rü  rB  r  rJ  rC  )r@  r¿   rq   r‘  Úfx_inputr  rß   rý   r„  r  r  r†   ÚouterÚcollapsibler÷   s   &&            @rk   Ú_strict_sum_layout_eligiblerª	  Ú  sL  ø€ Ü—7‘7×'Ñ'€LàÒÜ�?‰?˜hÔ&Ø×Ñ¤$§(¡(×"6Ñ"6Ô6ØÒØŠ<Ü,×.Ò.áÜ ¤c×*Ò*ˆD‰6´°T³
€DÜ
ˆ4ƒy�A„~Ùà× Ñ  Õ#€HÜ�h¤§¡§¡×.Ò.ÙØ�M‰M×Ñ˜eÓ$€EÜ�eœUŸ\™\×*Ò*¨e¯k©kÜ�‰Ü�‰Ü�‰Ü�‰ð	Bô /ñ à�M�MˆMÜ�=‰=×ÑÒ(Ü˜Ÿ™×&Ò&áà"& q¥'¨A¤+ˆ$ˆq�'�E—J‘JÖ
°4¸µ7€CØ�Ö �e—j‘jÕ Ùð !ÙØ6;·k²kÓB±k¨dÔ# DÖ)±k€EÐBØ<A¿L¹L¼NÓK¹N°&Ô% fÖ-¹N€GÐKÜ�w‰w×Ñ€Hô "+¬3¨uÓ+>Ô!?õá!?ÑˆA‰~�Ø‰8ô 	à$×<Ñ<¸TÀ1×Eô 	ˆ‹Ù!?ð 
ò ÷
 “#ô ä:C×:LÒ:LÈUÔ:Só—#—#’#ô ä:C×:LÒ:LÈUÔ:Sóó €Kð ×'Ñ'¨­
°A×6Ò6ßØ×3Ñ3°G¸AµJÀÓB÷ ð ÇsÃsô Kð & bžkóKÇsÄsð Âsð Àsô Kð & bžkóKó Hð ð
 ×PÐP˜x×?Ñ?ÀÀbÅ	È!ÅÈaÓPÐPØ×+Ñ+¨G­L¸!×<Ò<Ùß
ƒsô ÙQVó‡s‡s‚sô ÙQVó÷ ò ñ ØÐùò5 CùÚKùôs   È QÉQÊQÊ"QÊ<Qc               óê   € \        W4      p\        V P                  4       4      '       g    \        V P                  4       4      '       d   Vf   \        P
                  p\        RW4R7      pV! WW#R7      # )Nr  )r[  rê  rÄ   )rª	  r"   rÉ   r    r’   r-  rò  )r¸   r@  r×  r¿   rê  r�   s   &&&$  rk   r	  r	    sU   € ä,¨TÓ9€Jä˜Ÿ™›×'Ò'Ô+;¸A¿K¹K»M×+JÒ+JØ
Š-Ü—‘ˆä	˜°UÔ	R€BÙˆa�xÔ-Ð-rm   c                óæ  € \        V P                  4       4      '       g    \        V P                  4       4      '       d   Vf   \        P                  p\        V P                  4       4      ^ 8X  d:   VR9  d   \        R4      hT;'       g    V P                  4       p\        WRR7      # R p\        WVR7      p\        P                  P                  ! R	/ VBRV/B w  pVf   \        WVR7      # V# )
Núexpected: axis in [0, -1]Tr1	  c                ó@   € V w  pVw  p\         P                  ! W#4      3# r¯   )rY   r´   ©Úa_tupleÚb_tupler
  rU  s   &&  rk   Ú
combine_fnÚcumsum.<locals>.combine_fn;  ó!   € Ø‰ˆØ‰ˆÜ—’˜“ÐÐrm   ©r@  r¿   r²	  ©rß   r¿   ©r   r½  ri   )r"   rÉ   r    r’   r-  rÜ   rÝ   r‚   r  rþ  r6   ÚScanrü   Úfallback_cumsum©r¸   r@  r¿   r²	  r  rù  s   &&&   rk   Úcumsumr»	  .  sÁ   € ô 	˜Ÿ™›×'Ò'Ô+;¸A¿K¹K»M×+JÒ+JØ
Š-Ü—‘ˆä
ˆ1�:‰:‹<Ó˜AÔØ�wÔÜ Ð!<Ó=Ð=Ø×&Ð&˜Ÿ™›ˆÜ˜ tÔ,Ð,ò ô
 ˜a°%Ô8€FÜ—‘—’Ñ? Ñ?°JÒ?�I€VØ‚~Ü˜q°%Ô8Ð8Ø€Mrm   c                óæ  € \        V P                  4       4      '       g    \        V P                  4       4      '       d   Vf   \        P                  p\        V P                  4       4      ^ 8X  d:   VR9  d   \        R4      hT;'       g    V P                  4       p\        WRR7      # R p\        WVR7      p\        P                  P                  ! R	/ VBRV/B w  pVf   \        WVR7      # V# )
Nr­	  Tr1	  c                ó@   € V w  pVw  p\         P                  ! W#4      3# r¯   )rY   r¿  r¯	  s   &&  rk   r²	  Úcumprod.<locals>.combine_fnT  r´	  rm   rµ	  r²	  r¶	  r·	  ri   )r"   rÉ   r    r’   r-  rÜ   rÝ   r‚   r  rþ  r6   r¸	  rü   Úfallback_cumprodrº	  s   &&&   rk   ÚcumprodrÀ	  G  sÁ   € ô 	˜Ÿ™›×'Ò'Ô+;¸A¿K¹K»M×+JÒ+JØ
Š-Ü—‘ˆä
ˆ1�:‰:‹<Ó˜AÔØ�wÔÜ Ð!<Ó=Ð=Ø×&Ð&˜Ÿ™›ˆÜ˜ tÔ,Ð,ò ô
 ˜a°%Ô8€FÜ—‘—’Ñ? Ñ?°JÒ?�I€VØ‚~Ü °5Ô9Ð9Ø€Mrm   c                ó(  € R  pV P                  4       p\        V P                  4       4      ^ 8X  d   VR9  d   \        R4      h\	        V 4      # \        WVR7      p\        P                  P                  ! R/ VBRV/B w  pVf   \        WR7      # V# )c           	     óF  € V w  pVw  p\         P                  ! W#4      p\         P                  ! W#4      pWE8g  \         P                  ! V4      ( ,          p\         P                  ! V\         P
                  ! \         P                  ! WE,
          4      4      V,           V4      3# r¯   )rY   rL  rK  r�  r  Úlog1pÚexp)r°	  r±	  r
  rU  Úmin_vÚmax_vr7  s   &&     rk   Úlog_add_exp_helperÚ(logcumsumexp.<locals>.log_add_exp_helperb  ss   € Ø‰ˆØ‰ˆÜ—’˜AÓ!ˆÜ—’˜AÓ!ˆØ‘¤C§I¢I¨eÓ$4Ð#4Õ5ˆÜ—	’	˜$¤§	¢	¬#¯'ª'°%µ-Ó*@Ó AÀEÕ IÈ1ÓMÐOÐOrm   zexpected: dim in [0, -1]rµ	  r²	  rN  r·	  ri   )
rÉ   rÜ   rÝ   r‚   rý  rþ  r6   r¸	  rü   Úfallback_logcumsumexp)r¸   rß   rÇ	  r¿   r  rù  s   &&    rk   ÚlogcumsumexprÊ	  `  sƒ   € òPð �K‰K‹M€EÜ
ˆ1�:‰:‹<Ó˜AÔØ�gÔÜ Ð!;Ó<Ð<Ü�Q‹xˆä˜a°Ô7€FÜ—‘—’ÑG ÑGÐ4FÒG�I€VØ‚~Ü$ QÔ0Ð0Ø€Mrm   c                óî  a€ \        V P                  4       4      ^ 8X  d9   SR9  d   \        R4      h\        V 4      \	        V \
        P                  R7      3# V P                  4       p\        P                  ! RVRR7      p\        V SVR7      pV\
        P                  3VR&   V P                  4       V3R l3VR	&   \        P                  P                  ! R/ VBR
V/B w  rVVf   \        V SR7      # WV3# )r   r­	  rÄ   rx  F©r¿   Úarg_break_ties_leftrµ	  rü  c                ó\   <€ \         P                  ! V S,          \        P                  4      # r¯   ©rY   r€  r’   r-  ©rƒ  r@  s   &€rk   rq  Úcummax.<locals>.<lambda>‡  ó   ø€ ”C—N’N 3 t¥9¬e¯k©kÔ:rm   rý  r²	  rN  r·	  ri   )rÜ   rÝ   r‚   rý  r%  r’   r-  rÉ   r6   Úget_reduction_combine_fnrþ  rŽ  r¸	  rü   Úfallback_cummax©r¸   r@  r¿   r²	  r  r  r|  s   &f     rk   ÚcummaxrÖ	  w  óÙ   ø€ ä
ˆ1�:‰:‹<Ó˜AÔØ�wÔÜ Ð!<Ó=Ð=Ü�Q‹xœ A¬U¯[©[Ô9Ð9Ð9à�K‰K‹M€EÜ×,Ò,Ø˜°5ô€Jô ˜a d°%Ô8€FØœuŸ{™{Ð+€Fˆ8Ñà	�‰‹Ü:ð€Fˆ;Ñô —g‘g—n’nÑE vÑE¸*ÒE�O€FØ‚~Ü˜q dÔ+Ð+Øˆ?Ðrm   c                óî  a€ \        V P                  4       4      ^ 8X  d9   SR9  d   \        R4      h\        V 4      \	        V \
        P                  R7      3# V P                  4       p\        P                  ! RVRR7      p\        V SVR7      pV\
        P                  3VR&   V P                  4       V3R l3VR	&   \        P                  P                  ! R/ VBR
V/B w  rVVf   \        V SR7      # WV3# )r   r­	  rÄ   rÝ  FrÌ	  rµ	  rü  c                ó\   <€ \         P                  ! V S,          \        P                  4      # r¯   rÏ	  rÐ	  s   &€rk   rq  Úcummin.<locals>.<lambda>Ÿ  rÒ	  rm   rý  r²	  rN  r·	  ri   )rÜ   rÝ   r‚   rý  r%  r’   r-  rÉ   r6   rÓ	  rþ  rŽ  r¸	  rü   Úfallback_cumminrÕ	  s   &f     rk   ÚcumminrÜ	  �  r×	  rm   c               óÔ   € \        V P                  4       4      '       g    \        V P                  4       4      '       d   Vf   \        P                  p\        RVR7      pV! WW#R7      # )Nr±  rü  rÄ   )r"   rÉ   r    r’   r-  rò  )r¸   r@  r×  r¿   r�   s   &&&$ rk   r±  r±  §  sM   € ô 	˜Ÿ™›×'Ò'Ô+;¸A¿K¹K»M×+JÒ+JØ
Š-Ü—‘ˆä	˜°eÔ	<€BÙˆa�xÔ-Ð-rm   c               ó    € V ^8„  d   QhRRRR/# )rf   r|  ztuple[int, ...]rg   rh   ri   )rj   s   "rk   rl   rl   ²  s   € ÷ ;ñ ;°/ð ;Àdñ ;rm   c                óT  a€ \         P                  P                  pVf   R# \        4       oVP                   F´  pVP
                  R8X  d    VP                  \        P                  J d‚   \        VP                  4      ^8¼  dh   \        VP                  ^,          \        4      '       dA   \        VP                  4      ^ 8”  d%   SP                  VP                  ^,          4       K±  K³   R# 	  \        ;QJ d    V3R lV  4       F  '       d   K   R# 	  R# ! V3R lV  4       4      # )NTro   c              3  ó,   <"  € T F	  qS9   x € K  	  R # 5ir¯   ri   )r	  rg  Úused_indicess   & €rk   r  Ú7_current_node_uses_all_tuple_outputs.<locals>.<genexpr>Ä  s   øé € Ð:±'¨˜Ö$³'ùr•  F)rZ   rp   rq   r*   rr   rs   rt   ra  ÚgetitemrÜ   r‡   r~   rÂ   r´   rB  )r|  rq   rw   rá	  s   &  @rk   Ú$_current_node_uses_all_tuple_outputsrä	  ²  sÐ   ø€ Ü—7‘7×'Ñ'€LØÒÙä$.£L€LØ×"Ô"ˆà�G‰G�Ô&Ø—‘œx×/Ñ/Ó/Ü�D—I‘I“ !Ô#Ü˜4Ÿ9™9 Q�<¬×-Ò-ä�4—:‘:‹ Ô"Ø× Ñ  §¡¨1¥Ö.ñ #ò ñ #÷ ‹3Ô:±'Ó:�3Œ3Ð:Š3Ð:ˆ3Ô:±'Ó:Ó:Ð:rm   c                ó\   € \        V \        P                  4      p \        R 4      ! WVR7      # )rC  ©r@  r×  )r  r’   rh   rò  ©r¸   rß   r	  s   &&&rk   Ú
reduce_anyrè	  Ç  s$   € ä�”E—J‘JÓ€AÜ˜%Ô  °wÔ?Ð?rm   c                ó2  € Ve‡   \        V 4      '       d\   V P                  4       \        P                  8w  d9   \	        R4      '       d   \        WVR7      # \        WVR7      \        WVR7      3# \        WVR7      \        WVR7      3# \        V R VR7      # ©Nræ	  )r   rÚ   )	r?   rÉ   r’   rh   rä	  Úreduce_argmax_with_valueÚreduce_argmax_valueÚreduce_argmaxÚreduce_amaxrç	  s   &&&rk   Ú
reduce_maxrï	  Í  óˆ   € à
‚Ü�Q�<Š<˜AŸK™K›M¬U¯Z©ZÔ7Ü3°F×;Ò;Ü/°ÀgÔNÐNä# A¸'ÔBÜ˜a°GÔ<ðð ô
 ˜¨gÔ6Ü˜!°Ô8ð
ð 	
ô
 �q˜t¨gÔ6Ð6rm   c                ó2  € Ve‡   \        V 4      '       d\   V P                  4       \        P                  8w  d9   \	        R4      '       d   \        WVR7      # \        WVR7      \        WVR7      3# \        WVR7      \        WVR7      3# \        V R VR7      # rê	  )	r?   rÉ   r’   rh   rä	  Úreduce_argmin_with_valueÚreduce_argmin_valueÚreduce_argminÚreduce_aminrç	  s   &&&rk   Ú
reduce_minrö	  ß  rð	  rm   Úxor_sumr�  rœ  rx  rü  rÝ  rÞ  rß  rà  rá  Ú
logical_or)r   r¡  rŸ  r^  Ústablerß   Ú
descendingc          
     óH  € Vf   RpV P                  4       pV P                  4       p\        \        V4      V4      p\        V4      ^ 8X  d(   \	        V 4      \        ^ V\        P                  V4      3# \        V4      '       d	   WB,          M^p\        P                  P                  '       d   \        P                  pM\        P                  p\        P                  P                  P!                  \"        P$                  ! V\        P&                  ! V4      P(                  4      4      '       g   \+        WW#R7      # \-        V^ ^WuRR7      p^.\        V4      ,          p	\        V4      '       d   WiV&   \/        W‰4      p\1        W„4      p\2        P4                  P7                  VV P8                  VP8                  3V P;                  4       VP;                  4       3VVVVR7      w  r¨V
f   \+        WW#R7      # Vf   \=        R4      hV
\?        V\        P                  4      3# )NF©rù	  rß   rú	  r¬  )r‰   rü  rý  rý   r@  rù	  rú	  zexpected: indices is not None) rÝ   r�   r   rÜ   rý  rë  r’   r-  r4   r	  Údecompose_sort_opsr  Úint16rZ   rp   r÷   r�  rÊ   rí  r6  r�  Úsort_fallbackrª  r;  rS  r6   ÚSortrü   r¿   rŽ  r‚   r  )r¸   rù	  rß   rú	  r¹  r‰   r9  Ú	idx_dtyper|  Ú
view_shaper  s   &$$$       rk   Úsort_stabler
  
   s¯  € à‚~Øˆà�J‰J‹L€EØ�\‰\‹^€FÜ
œ3˜u›: sÓ
+€CÜ
ˆ5ƒz�Q„Ü�Q‹xœ˜q &¬%¯+©+°uÓ=Ð=Ð=ä  ŸZšZˆuŽz¨Q€Hô ‡}�}×'×'Ð'Ü—K‘K‰	ä—K‘Kˆ	Ü�7‰7×Ñ×*Ñ*Ü�Š�œ5Ÿ;š; yÓ1×5Ñ5Ó6÷ò ô ˜Q°3ÔNÐNäØ˜ ¨ÐQVô€Gð �”s˜5“zÕ!€JÜ
ˆ5‡z‚zØ"�3‰Ü�7Ó'€GÜ�WÓ$€Gä—g‘g—n‘nØØ—‘˜Ÿ™Ð'Ø—=‘=“? G×$7Ñ$7Ó$9Ð:ØØØØð %ó �O€Fð ‚~Ü˜Q°3ÔNÐNà‚ÜÐ<Ó=Ð=Ø”8˜G¤U§[¡[Ó1Ð1Ð1rm   c                ó   € \        V R WR7      # )Frü	  )r
  )r¸   rß   rú	  s   &&&rk   Úsortr
  <   s   € ä�q ¨CÔGÐGrm   c                ó\  € \         P                  P                  '       g   \        V 4      # V P	                  4       p\
        P                  ! \        P                  V\        P                  ! ^4      4      p\        W.4      p\        V^ R7      w  rEV^,
          ^,          p\        V^ V4      # )rÚ   rN  )r4   r	  rý	  Úmedian_fallbackrÝ   r1  rƒ  ra  r¿  rÊ   r  r;  r
  r%  )r  rý   r—  ÚflatÚsorted_valsr  r  s   &      rk   Úmedian_defaultr

  P   s€   € ä�=‰=×+×+Ð+Ü˜tÓ$Ð$Ø�=‰=‹?€DÜ×ÒœXŸ\™\¨4´·²¸qÓ1AÓB€EÜ��gÓ€DÜ  ¨1Ô-�N€KØ	���qÕ€AÜ�+˜q !Ó$Ð$rm   c                óà  € \         P                  P                  '       g   \        WV4      # V P	                  4       p\        V4      pV^ 8X  d6   \        V 4      \        ^ V P                  4       \        P                  V4      3# \        WA4      p\        V RVR7      w  rVW1,          pV^,
          ^,          p\        WQV4      p	\        WaV4      p
V'       d   \        W‘4      p	\        W¡4      p
Wš3# ©r   T©rù	  rß   )r4   r	  rý	  Úmedian_dim_fallbackrÝ   rÜ   rý  rë  r�   r’   r-  r   r
  r%  r¸  )r  rß   r	  r¹  r8  r	
  Úsorted_idxsrQ  r  r  r|  s   &&&        rk   Ú
median_dimr
  \   sÅ   € ä�=‰=×+×+Ð+Ü" 4¨gÓ6Ð6Ø�M‰M‹O€EÜˆu‹:€DØˆq„yÜ�T‹{œE ! T§_¡_Ó%6¼¿¹ÀUÓKÐKÐKÜ
˜4Ó
%€CÜ*¨4¸À#ÔFÑ€KØ�
€AØ	
ˆQ��1�€AÜ�K aÓ(€FÜ�[ qÓ)€GßÜ˜6Ó'ˆÜ˜GÓ)ˆØˆ?Ðrm   c           	     óš  aaaaaaaa € \         P                  P                  '       g   \        WV4      # V P	                  4       p\        V4      pV P                  4       pV^ 8X  d(   \        V 4      \        ^ V\        P                  V4      3# \        WA4      p\        V RVR7      w  rgW1,          p\        V^ ^\        P                  VRR7      p	\        P                  ! ^4      .V,          p
WŠV&   \!        Wš4      p	\#        W“4      p	V	P%                  4       oV3R lp\&        P(                  ! \+        V4      \        P                  VVR7      p\-        WaV4      pVP%                  4       o VP%                  4       oV	P%                  4       oVVV 3R lp\&        P(                  ! \+        V4      \        P.                  VVR7      pVP%                  4       oV	P%                  4       oVV3R lp\&        P(                  ! \+        V4      \        P                  VVR7      p\1        VV4      w  ppV	P%                  4       oVP%                  4       oVV3R	 lp\&        P(                  ! \+        V4      \        P                  VVR7      p\3        VVRR
7      p\-        WaV4      p\-        WqV4      pV'       g   \5        VV4      p\5        VV4      pVV3# )z9Lower aten.mode via sort-based decomposition or fallback.Tr
  Fr¬  c           	     óô   <€ \         P                  ! \         P                  ! S! V 4      \         P                  ! ^\        P
                  4      4      \         P                  ! ^ \        P
                  4      4      # rl  )rY   rK  rl  r�  r’   r-  )rƒ  Úpositions_loader0s   &€rk   Úprev_pos_fnÚ!mode_default.<locals>.prev_pos_fnŠ   sI   ø€ Ü�{Š{Ü�GŠGÑ% cÓ*¬C¯LªL¸¼E¿K¹KÓ,HÓIÜ�LŠL˜œEŸK™KÓ(ó
ð 	
rm   rŒ  c           
     óð   <€ \         P                  ! \         P                  ! S! V 4      S! V 4      4      \         P                  ! S! V 4      \         P                  ! ^ \
        P                  4      4      4      # rf  )rY   Úor_rh	  r  r�  r’   r-  )rƒ  Úpositions_loaderÚshifted_loaderÚsorted_loaders   &€€€rk   Úis_boundary_fnÚ$mode_default.<locals>.is_boundary_fnŸ   sO   ø€ Ü�wŠwÜ�FŠF‘= Ó%¡~°cÓ':Ó;Ü�FŠFÑ# CÓ(¬#¯,ª,°q¼%¿+¹+Ó*FÓGó
ð 	
rm   c                ó’   <€ \         P                  ! S! V 4      S! V 4      \         P                  ! R\        P                  4      4      # r·  )rY   r  r�  r’   r-  )rƒ  Úis_boundary_loaderÚpositions_loader2s   &€€rk   Úboundary_pos_fnÚ%mode_default.<locals>.boundary_pos_fn°   s6   ø€ Ü�yŠyÙ˜sÓ#Ù˜cÓ"Ü�LŠL˜œUŸ[™[Ó)ó
ð 	
rm   c                óº   <€ \         P                  ! \         P                  ! S! V 4      S! V 4      4      \         P                  ! ^\        P
                  4      4      # rl  )rY   r´   rl  r�  r’   r-  )rƒ  Úlast_boundary_loaderÚpositions_loader3s   &€€rk   Ú
run_len_fnÚ mode_default.<locals>.run_len_fnÅ   s@   ø€ Ü�wŠwÜ�GŠGÑ% cÓ*Ñ,@ÀÓ,EÓFÜ�LŠL˜œEŸK™KÓ(ó
ð 	
rm   ræ	  )r4   r	  rý	  Úmode_fallbackrÝ   rÜ   r�   rý  rë  r’   r-  r   r
  rª  rÊ   r  r;  rS  rŽ  rD   rü   rL   r$  rh   rÖ	  rí	  r”  )!r  rß   r	  r¹  r8  r‰   r	
  r
  rQ  Ú	positionsÚpos_view_shaper
  Úprev_positionsÚshifted_valsr
  Úis_boundaryr 
  Úboundary_posÚlast_boundaryr  r%
  Úrun_lenÚmax_posÚ	mode_valsÚ	mode_idxsr
  r#
  r
  r
  r
  r$
  r
  r
  s!   &&&                      @@@@@@@@rk   Úmode_defaultr3
  p   su  ÿ€ ô �=‰=×+×+Ð+Ü˜T¨Ó0Ð0Ø�M‰M‹O€EÜˆu‹:€DØ�_‰_Ó€FØˆq„yÜ�T‹{œE ! V¬U¯[©[¸%Ó@Ð@Ð@Ü
˜4Ó
%€CÜ*¨4¸À#ÔFÑ€KØ�
€Aô Ø	�˜¤%§+¡+°fÈEô€Iô —m’m AÓ&Ð'¨$Õ.€NØ�3ÑÜ�YÓ/€IÜ�yÓ(€Ið "×-Ñ-Ó/Ðõ
ô ×%Ò%Ü˜VÓ$Ü�k‰kØØô	€Nô ˜+¨NÓ;€Là×+Ñ+Ó-€MØ!×-Ñ-Ó/€NØ ×,Ñ,Ó.Ð÷
ô ×"Ò"Ü˜VÓ$Ü�j‰jØØô	€Kð %×0Ñ0Ó2ÐØ!×-Ñ-Ó/Ðö
ô ×#Ò#Ü˜VÓ$Ü�k‰kØ Øô	€Lô ˜l¨CÓ0Ñ€M�1ð "×-Ñ-Ó/ÐØ(×4Ñ4Ó6Ðö
ô ×ÒÜ˜VÓ$Ü�k‰kØØô	€Gô ˜G¨#¸Ô=€GÜ�{¨Ó1€IÜ�{¨Ó1€IçÜ˜I sÓ+ˆ	Ü˜I sÓ+ˆ	à�iÐÐrm   c                óz  € \         P                  P                  '       g   \        WW#V4      # V P	                  4       p\        V4      pV^ 8X  d6   \        V 4      \        ^ V P                  4       \        P                  V4      3# \        Wb4      p\        V RW#R7      w  rx\        Wr^ V4      p	\        W‚^ V4      p
Wš3# )r   Trü	  )r4   r	  rý	  Útopk_fallbackrÝ   rÜ   rý  rë  r�   r’   r-  r   r
  r  )r  r  rß   Úlargestr  r¹  r8  r	
  r
  r  r|  s   &&&&&      rk   Útopkr7
  Þ   s¥   € ä�=‰=×+×+Ð+Ü˜T c°FÓ;Ð;Ø�M‰M‹O€EÜˆu‹:€DØˆq„yÜ�T‹{œE ! T§_¡_Ó%6¼¿¹ÀUÓKÐKÐKÜ
˜4Ó
%€CÜ*Ø�T˜sô Ñ€Kô �K a¨Ó+€FÜ�[ q¨!Ó,€GØˆ?Ðrm   c                óÌ  € \         P                  P                  '       g   \        WW#4      # V P	                  4       p\        V4      pV^ 8X  d6   \        V 4      \        ^ V P                  4       \        P                  V4      3# \        WR4      p\        V RVR7      w  rg\        WbV^,
          4      p\        WrV^,
          4      p	V'       d   \        W‚4      p\        W’4      p	W‰3# r
  )r4   r	  rý	  Úkthvalue_fallbackrÝ   rÜ   rý  rë  r�   r’   r-  r   r
  r%  r¸  )
r  r  rß   r	  r¹  r8  r	
  r
  r  r|  s
   &&&&      rk   Úkthvaluer:
  ï   s¹   € ä�=‰=×+×+Ð+Ü  ¨#Ó7Ð7Ø�M‰M‹O€EÜˆu‹:€DØˆq„yÜ�T‹{œE ! T§_¡_Ó%6¼¿¹ÀUÓKÐKÐKÜ
˜4Ó
%€CÜ*¨4¸À#ÔFÑ€Kä�K a¨!¥eÓ,€FÜ�[ q¨1¥uÓ-€GßÜ˜6Ó'ˆÜ˜GÓ)ˆØˆ?Ðrm   c                ó<   € \        V V\        P                  VR 7      # )©rð   rÔ   r¢  )rN  r   r‘	  )rs   rð   r¢  s   &&&rk   Úregister_pointwise_numericr=
  !  s!   € ÜØ
ØÜ;×HÑHØ'ô	ð rm   c               ó   € V ^8„  d   QhRR/# )rf   rs   ztorch._ops.OpOverloadPacketri   )rj   s   "rk   rl   rl   !  s   € ÷ ñ Ð)Dñ rm   c                ób   € \        V P                  4       \        V \        P                  R 7      # r�	  )rV   rM  rN  r   r‘	  rÓ  s   &rk   Ú register_pointwise_numeric_ldf64r@
  !  s'   € Ü'¨¯©Ô4ÜØ
Ü;×HÑHôð rm   )r   r^  r  c               ó¨  aaaaa	a
€ \        V VV\        P                  R7      oV P                  4       oVP                  4       oVP                  4       o	V P	                  4       pSP
                  ;'       d    VRJ;'       d    VP                  R9   o
VVVV	V
V3R lp\        P                  ! V P	                  4       SVV P                  4       R7      # )aß  
Computes self + value * tensor1 * tensor2 using FMA for better precision.

Matches eager CUDA kernel order: self + value * (tensor1 * tensor2)
This is computed as: fma(value, tensor1 * tensor2, self)

Note: FMA is used for floating-point types on CUDA and ROCm (via tl.fma). For
integer types we fall back to regular arithmetic since FMA doesn't support integers.

For floating-point types, we use mul_rn (round-to-nearest multiplication)
to force rounding of the product before the FMA. This prevents Triton's
compiler from fusing the multiplication with the FMA, matching eager's
rounding behavior. On ROCm, mul_rn falls back to regular multiplication since
libdevice.mul_rn is not available; the FMA itself (tl.fma) is still used.
r~  Nc                ó  <€ S! V 4      pS! V 4      pS	! V 4      pS^8X  d    S
'       d   \         P                  ! W#V4      # S
'       d   \         P                  ! W#4      pM\         P                  ! W#4      p\	        S\
        P                  4      '       d   \         P                  ! SS4      pM\         P                  ! SS4      pS
'       d   \         P                  ! WTV4      # \         P                  ! V\         P                  ! WT4      4      # rl  )
rY   r‚  Úmul_rnr¿  r~   rÊ   rÛ   r€  r�  r´   )rƒ  Úself_valÚt1_valÚt2_valÚt1_times_t2rý  r¿   r�  Ú	t1_loaderÚ	t2_loaderÚuse_fmar  s   &     €€€€€€rk   rŠ  Úaddcmul.<locals>.inner_fnA!  s¿   ø€ Ù˜sÓ#ˆÙ˜3“ˆÙ˜3“ˆà�AŒ:Ÿ'Ü—7’7˜6¨8Ó4Ð4÷ ô Ÿ*š* VÓ4‰KäŸ'š' &Ó1ˆKô �eœUŸ[™[×)Ò)ÜŸš¨¨uÓ5‰JäŸš e¨UÓ3ˆJçä—7’7˜:°HÓ=Ð=ô —7’7˜8¤S§W¢W¨ZÓ%EÓFÐFrm   rŒ  ©r¬  rŸ  )
ræ   r   ru  rŽ  r�   r¾  rù   rD   rü   rÝ   ©r  Útensor1Útensor2r  r‰   rŠ  r¿   r�  rH
  rI
  rJ
  s   &&&d  @@@@@rk   ÚaddcmulrP
  !  sÉ   ý€ ô" ØØØÜ;×CÑCô	€Eð ×"Ñ"Ó$€KØ×#Ñ#Ó%€IØ×#Ñ#Ó%€Ià�_‰_Ó€Fà×Ñ÷ 	+ð 	+Ø˜$Ð÷	+ð 	+à�K‰K˜?Ñ*ð ÷Gò Gô< ×ÒØ�‰Ó ØØØ�}‰}‹ô	ð rm   c               ó¨  aaaaa	a
€ \        V VV\        P                  R7      oV P                  4       oVP                  4       oVP                  4       o	V P	                  4       pSP
                  ;'       d    VRJ;'       d    VP                  R9   o
VVVV	V
V3R lp\        P                  ! V P	                  4       SVV P                  4       R7      # )a4  
Computes self + value * (tensor1 / tensor2) using FMA for better precision.

Matches eager CUDA kernel order: self + value * (tensor1 / tensor2)
This is computed as: fma(value, tensor1 / tensor2, self)

For value=1: self + tensor1 / tensor2 (no FMA needed, just add the division)
For value!=1: fma(value, div_rn(tensor1, tensor2), self)

Note: FMA is used for floating-point types on CUDA and ROCm (via tl.fma). For
integer types we fall back to regular arithmetic since FMA doesn't support integers.

We use div_rn (round-to-nearest division) to force proper rounding, preventing
Triton from fusing operations in ways that change the rounding behavior.
div_rn emits triton.language.div_rn on both CUDA and ROCm (unlike mul_rn, which
falls back to regular multiplication on ROCm where libdevice.mul_rn is unavailable).
r~  Nc                ó
  <€ S! V 4      pS! V 4      pS	! V 4      pS
'       d   \         P                  ! W#4      pM\         P                  ! W#4      pS^8X  d   \         P                  ! W4      # \	        S\
        P                  4      '       d   \         P                  ! SS4      pM\         P                  ! SS4      pS
'       d   \         P                  ! WTV4      # \         P                  ! V\         P                  ! WT4      4      # rl  )rY   ra	  r
  r´   r~   rÊ   rÛ   r€  r�  r‚  r¿  )rƒ  rD
  rE
  rF
  Ú	t1_div_t2rý  r¿   r�  rH
  rI
  rJ
  r  s   &     €€€€€€rk   rŠ  Úaddcdiv.<locals>.inner_fnŒ!  sµ   ø€ Ù˜sÓ#ˆÙ˜3“ˆÙ˜3“ˆçÜŸ
š
 6Ó2‰IäŸš FÓ3ˆIà�AŒ:Ü—7’7˜8Ó/Ð/ô �eœUŸ[™[×)Ò)ÜŸš¨¨uÓ5‰JäŸš e¨UÓ3ˆJçÜ—7’7˜:°(Ó;Ð;ä—7’7˜8¤S§W¢W¨ZÓ%CÓDÐDrm   rŒ  rL
  )
ræ   r   r‘	  rŽ  r�   r¾  rù   rD   rü   rÝ   rM
  s   &&&d  @@@@@rk   ÚaddcdivrU
  g!  sÉ   ý€ ô& ØØØÜ;×HÑHô	€Eð ×"Ñ"Ó$€KØ×#Ñ#Ó%€IØ×#Ñ#Ó%€Ià�_‰_Ó€Fà×Ñ÷ 	+ð 	+Ø˜$Ð÷	+ð 	+à�K‰K˜?Ñ*ð ÷Eò Eô0 ×ÒØ�‰Ó ØØØ�}‰}‹ô	ð rm   rt  rg	  )rŸ  )rÔ   r  r[  ÚfmaximumÚ	remainderc                óZ   € \        W3R R7      w  r\        R4      p\        V4      ! W4      # )T)r]  rW
  )r|  rB   rÇ  )r
  rU  r�   s   && rk   rW
  rW
  õ!  s,   € ä˜a˜V¸DÔA�D€AÜ	�[Ó	!€BÜ˜"Ô˜aÓ#Ð#rm   Úidentityc                óR  € V P                  4       \        P                  \        P                  \        P                  \        P
                  \        P                  39   d   \        V R \        P                  R7      # \        R4      p\        V\        P                  R7      ! V 4      # )FrÄ   Úsignbitrü  )
rÉ   r’   rh   r  Úuint16Úuint32Úuint64rŸ  rB   rÇ  r   s   & rk   r[
  r[
   "  sm   € à‡{�{ƒ}Ü�
‰
Ü�‰Ü�‰Ü�‰Ü�‰ðô ô ˜˜E¬¯©Ô4Ð4Ü	�YÓ	€BÜ˜"´E·J±JÕ?ÀÓBÐBrm   )rë  Úpointwise_overrides_datac              #  óR  a"  € \         V,          o\        V SP                  R 4      pVf   R # V3R lp\        V\        P
                  P                  4      '       d1   VP                  4        F  pVSP                  V! V4      3x € K  	  R # VSP                  V! V4      3x € R # 5i)Nc                ó:   <€ SP                   f   \        V 4      # R # r¯   )r	  r'  )rs   r€   s   &€rk   Úmake_triton_fallbackÚ6_get_pointwise_overrides.<locals>.make_triton_fallback1"  s   ø€ Ø�;‰;ÒÜ# BÓ'Ð'ñ rm   )	r_
  rÀ  rð   r~   r’   r“   rµ   r·   rÔ   )Únsrð   rs   rb
  Úolr€   s   &&   @rk   Ú_get_pointwise_overridesrf
  +"  s�   øé € Ü# DÕ)€DÜ	��T—Y‘Y Ó	%€BØ	‚zÙõ(ô �"”e—j‘j×1Ñ1×2Ò2Ø—/‘/Ö#ˆBØ�d×.Ñ.Ñ0DÀRÓ0HÐHÔHó $ð �$×*Ñ*Ñ,@ÀÓ,DÐDÔDùs   ƒB$B'r<
  )r   c                óf   a€ V \         V&   \        P                  V 4       V3R  lp\        W4       R# )c            	     óŒ   <€ S! V / VB p. p\        V ^ ,          V4       F!  w  rEVP                  \        WERR7      4       K#  	  V# )r   TrP	  )r   rƒ   r  )r‡   r  ÚresultsÚmut_resultsrâ   rù  Úoutplace_ops   *,    €rk   r�   Ú$register_foreach_inplace.<locals>.fn}"  sK   ø€ Ù˜tÐ. vÑ.ˆØˆÜ˜t A�w¨Ö0‰KˆCØ×Ñœy¨À4ÔHÖIñ 1ð Ðrm   N)rc   rÚ  r´   r6  )Úaten_opÚoutplace_aten_oprk
  r�   s   &&f rk   Úregister_foreach_inplacero
  y"  s,   ø€ Ø07ÔÐ,Ñ-Ü×Ñ˜GÔ$õô ˜wÖ+rm   c                ó4   a€ \        V R R7      V3R l4       pV# )Nr~  c                 óz   <€ S! V / VB p\        W ^ ,          P                  4       4      p\        V ^ ,          V4      # rf  )r  rÉ   r  )r‡   r  rù  rk
  s   *, €rk   r�   Úregister_inplace.<locals>.fnª"  s:   ø€ á˜dÐ- fÑ-ˆÜ˜& q¥'×"3Ñ"3Ó"5Ó6ˆÜ˜˜a� &Ó)Ð)rm   )rJ  )rm
  rk
  r�   s   &f rk   Úregister_inplacers
  ©"  s#   ø€ Ü�w°DÔ9ô*ó :ð*ð
 €Irm   c                ó   € R # r¯   ri   r›  s   &&&rk   Úsym_constrain_rangeru
  Ó"  ó   € árm   c          
     ó,   € V ^8„  d   QhRRRRRRRRR	R
/# )rf   rn  r	   rß   rÂ   rj  rD  ÚkindzLiteral['size', 'stride']rg   r¨   ri   )rj   s   "rk   rl   rl   Ø"  sA   € ÷ Lñ LØðLà	ðLð ðLð $ð	Lð
 
ñLrm   c                ó  € \        V\        P                  4      '       d   \        V \        4      '       g   R # \        V P                  \
        P                  4      '       d5   \        V P                  P                  \
        P                  4      '       g   R # V P                  4       pV\        P                  P                  9  d   R # \        P                  P                  P                  W$V\        V4      34       R # r¯   )r~   rÊ   ÚSymbolrG   r€   r6   rú   r  r  rZ   rp   Úgraph_inputsÚsymbolic_input_sourcesÚ
setdefaultrÂ   )rn  rß   rj  rx
  rð   s   &&&& rk   Ú_record_symbolic_input_sourcer~
  Ø"  s¡   € ô �dœEŸL™L×)Ò)´¸FÄI×1NÒ1NÙä�f—k‘k¤2§=¡=×1Ò1¼Ø�‰×Ñœ"Ÿ.™.÷:ò :ñ 	à�?‰?Ó€DØ”1—7‘7×'Ñ'Ô'Ùä‡G�G×"Ñ"×-Ñ-¨d¸4ÄÀSÃÐ4JÖKrm   c                óø   € \         P                  P                  P                  R ,          p\	        V\
        P                  4      '       d&   VP                  P                  p\        WVR4       V# \        V4      # )rš  rý   ©rZ   rp   rq   r“  r~   r’   ri  rv   rj  r~
  rÂ   ©r
  rß   rš  rj  s   &&  rk   rã  rã  í"  sT   € ä
�'‰'×
Ñ
×
#Ñ
# EÕ
*€CÜ�#”u—|‘|×$Ò$Ø�x‰x�}‰}ˆÜ% a¨d°FÔ;Øˆä�3‹xˆrm   c                óø   € \         P                  P                  P                  R ,          p\	        V\
        P                  4      '       d&   VP                  P                  p\        WVR4       V# \        V4      # )rš  r  r€
  r�
  s   &&  rk   Ú
sym_striderƒ
  ø"  sT   € ä
�'‰'×
Ñ
×
#Ñ
# EÕ
*€CÜ�#”u—|‘|×$Ò$Ø�x‰x�}‰}ˆÜ% a¨d°HÔ=Øˆä�3‹xˆrm   c                ó"   € V P                  4       # r¯   )r"  ©r
  s   &rk   Ú	sym_numelr†
  #  s   € à�;‰;‹=Ðrm   c                óÌ   € \        V \        4      '       d   V P                  P                  # \        V \        \
        \        34      '       d   \        P                  ! V 4      # V # r¯   )	r~   r)   rv   rj  rÂ   ra  rh   rÊ   rB  rÍ   s   &rk   Ú_unwrap_symbolic_magic_argrˆ
  #  sE   € Ü�!”X×ÒØ�v‰v�{‰{ÐÜ�!”cœ5¤$Ð'×(Ò(Ü�}Š}˜QÓÐØ€Hrm   Ú_funcc                ó^  € \         P                  P                  pVe   VP                  P	                  R4      MR p\        V\        4      '       d   VP                  P                  # \        ;QJ d>    R \        P                  ! WP                  4       4       4       F  '       g   K   RM3	  RM/! R \        P                  ! WP                  4       4       4       4      '       d<   T ! R V 4       / VP                  4        UUu/ uF  w  rVV\        V4      bK  	  uppB # V ! V/ VB # u uppi )Nrš  c              3  ób   "  € T F%  p\        V\        \        P                  34      x € K'  	  R # 5ir¯   )r~   r)   rÊ   rÛ   r@  s   & rk   r  Úwrapped.<locals>.<genexpr>#  s*   é € ð 
á;�ô �qœ8¤U§[¡[Ð1×2Ð2Û;ùs   ‚-/TFc              3  ó8   "  € T F  p\        V4      x € K  	  R # 5ir¯   )rˆ
  r@  s   & rk   r  rŒ
  #  s   é € Ð>¹°AÔ,¨Q×/Ð/»ùr·  )rZ   rp   rq   r“  r”  r~   r)   rv   rj  rC  r  r  r  r  rˆ
  )r‰
  r‡   r  rv   rp  r  r#  s   $*,    rk   r/  r/  #  sí   € ä�w‰w×#Ñ#ˆØ+/Ò+;�4—9‘9—=‘= Ô'ÀˆÜ�h¤×)Ò)Ø—=‘=×%Ñ%Ð%ß‹3ñ 
ä—_’_ T¯=©=«?Ô;ó
�3�3Š3ñ 
ä—_’_ T¯=©=«?Ô;ó
÷ 
ò 
ñ Ù>¹Ó>ðà@FÇÁÄÔOÁ¹¸�1Ô0°Ó3Ò3ÁÒOñð ñ �dÐ%˜fÑ%Ð%ùó Ps   ÄD)c                 ó¢   € \        V 4      ^8X  d-   \        V ^ ,          \        \        34      '       d
   V ^ ,          p \        P
                  ! V !  # rl  )rÜ   r~   r|   r±   rÊ   ÚAddry  s   *rk   Úsym_sumr�
  ##  s;   € ô ˆ4ƒy�A„~œ* T¨!¥W¬t´U¨m×<Ò<Ø�A�wˆÜ�9Š9�dÑÐrm   c                ó   € \        R 4      h)zHelpful for debuggingrª   )r  r‡   r  s   &*,rk   Úfoobarr’
  ,#  s   € ä
Ð5Ó
6Ð6rm   c                ó8   € V P                  4        \        V 4      # r¯   )rí  rý  rÍ   s   &rk   Ú_realizer”
  1#  s   € à‡I�I„KÜ�‹8€Orm   c                óR   € V P                  4        \        P                  ! W4       V # r¯   )rí  r6   ÚResizeStorageBytes)ÚvariablerË  s   &&rk   Úresize_storage_bytes_r˜
  7#  s!   € à×ÑÔÜ×Ò˜(Ô-Ø€Orm   c                ó–   € V P                  4        VP                  4        \        P                  ! \        P                  ! W4      4      # r¯   )rí  rG   rü   r6   ÚSetSourceTensorKernel©r  Úsource_tensors   &&rk   Úset__source_tensorr�
  >#  ó3   € à‡L�L„NØ×ÑÔÜ×ÒœB×4Ò4°TÓIÓJÐJrm   c                ó–   € V P                  4        VP                  4        \        P                  ! \        P                  ! W4      4      # r¯   )rí  rG   rü   r6   ÚShallowCopyDataKernelr›
  s   &&rk   Úshallow_copy_data_r¡
  E#  rž
  rm   rŸ  c                ó¼   € WJ d   V # \        WP                  4       4      p\        WP                  4       4      p\	        WP                  4       4      p\        W4      # r¯   rZ	  )r-  r  s   &&rk   Ú
fsdp_copy_r£
  N#  sH   € à‹:àˆJÜ˜Ÿ^™^Ó-Ó.ˆÜ�sŸM™M›OÓ,ˆÜ�SŸ,™,›.Ó)ˆÜ˜Ó"Ð"rm   c               óT  aaaa€ \        V \        4      '       g   \        R 4      h\        V\        \        34      '       g   \        R4      hVf   \
        P                  pV\
        P                  8X  d   \        RV 24      hV\
        P                  8X  d   \        V4      ^8w  d   \        R4      hV\
        P                  8X  d   \        V4      ^8w  d   \        R4      hV P                  4       oV P                  4       pV P                  4       p\
        P                  ! 4       '       d}   \
        P                   P"                  P$                  '       dS   \'        V4      '       d   \)        R4      oM7\+        V4      '       d"   \
        P,                  ! V4      P.                  oMRoMRo\0        P2                  P4                  P7                  S^ 4      '       d   \9        VSW4R	7      # V P;                  4       pVRJ;'       d5    \<        ;QJ d    R
 V 4       F  '       g   K   RM	  RM! R
 V 4       4      pV'       d   \?        V S.4      pMX\        V P@                  \B        PD                  4      '       d    V P@                  PG                  4       V n         \I        V S.^.4      pVPK                  4       o\B        PL                  PO                  W4      p\B        PP                  ! WCW4      PS                  4       oVVVV3R lp	\T        PV                  ! WCV	\        V4      R7      p
V
# )r‰  r   Nzunsupported memory format: zexpected: len(size) == 4zexpected: len(size) == 5rd	  Tr,  rÀ  c              3  óv   "  € T F/  p\         P                  P                  P                  V^ 4      x € K1  	  R# 5ir1  )rZ   rp   r÷   rü  rž  s   & rk   r  Úresize.<locals>.<genexpr>‚#  s-   é € ð 2Ù@G¸1Œ�‰×Ñ×0Ñ0°°A×6Ð6Ãùs   ‚79Fc                ó  <a€ S! V 4      o\         P                  ! S\        P                  4      p\         P                  ! S\        P                  4      p\         P                  ! W4      p\         P
                  ! VVV3R  lS4      # )c                 ó   <€ S! S .4      # r¯   ri   )Ú
flat_indexÚflat_loaders   €€rk   rq  Ú*resize.<locals>.inner_fn.<locals>.<lambda>–#  s   ø€ ©°Z°LÔ(Arm   )rY   r€  r’   r-  r/  r1  )	rƒ  Úflat_index_exprÚlimitr7  r©
  rª
  Ú	old_numelÚout_indexerÚuninitialized_vals	   &   @€€€€rk   rŠ  Úresize.<locals>.inner_fn‘#  sX   ù€ Ù  Ó%ˆ
ÜŸ.š.¨´U·[±[ÓAˆÜ—’˜y¬%¯+©+Ó6ˆÜ�vŠv�oÓ-ˆÜ�zŠz˜$Õ AÐCTÓUÐUrm   rŒ  ),r~   rG   r‚   r|   r±   r’   Úcontiguous_formatÚpreserve_formatr(  Úchannels_lastrÜ   Úchannels_last_3dr"  rÉ   ry  r´  r  r³  Úfill_uninitialized_memoryr!   ra  r"   r6  r�  rZ   rp   r÷   rü  r  r  rC  r;  r€   r6   r:   r  r  rŽ  r�  Ú stride_ordered_for_memory_formatr  rŸ  rD   rü   )r¸   rý   r›  r¿   r‰   r  Úhas_overlappingÚx_flatÚ
out_striderŠ  r„   rª
  r®
  r¯
  r°
  s   &&$        @@@@rk   Úresizer»
  Y#  sx  û€ ä�qœ)×$Ò$ÜÐAÓBÐBÜ�tœd¤E˜]×+Ò+ÜÐHÓIÐIàÒÜ×/Ñ/ˆØœ×-Ñ-Ô-ÜÐ8¸¸ÐHÓIÐIàœ×+Ñ+Ô+Üˆt‹9˜Œ>Ü Ð!;Ó<Ð<Øœ×.Ñ.Ô.Üˆt‹9˜Œ>Ü Ð!;Ó<Ð<à—‘“€IØ�K‰K‹M€EØ×"Ñ"Ó$€Fô 	×2Ò2×4Ò4Ü�K‰K×%Ñ%×?×?Ð?ä˜%× Ò Ü % e£ÑÜ˜e×$Ò$Ü %§¢¨EÓ 2× 6Ñ 6Ñà $Ñð  Ðä‡w�w×Ñ×/Ñ/°	¸1×=Ò=Ü�DÐ+°5ÔHÐHà× Ñ Ó"€GØ TÐ)÷ ð ¯c«cñ 2Ù@Gó2¯c¯cªcñ 2Ù@Gó2ó /€O÷ ä�a˜)˜Ó%‰ô �a—f‘fœbŸk™k×*Ò*Ø—V‘V×'Ñ'Ó)ˆAŒFÜ˜A 	˜{¨Q¨CÓ0ˆØ×$Ñ$Ó&€KÜ×"Ñ"×CÑCÀDÓX€JÜ—.’. °ÓA×NÑNÓP€K÷Vð Vô ×
Ò
Ø¨X¼dÀ4»jô€Cð €Jrm   )Úauto_functionalizedÚlaunch_kwargsc                óþ   € ^ RI Hp VP                  V4      p\        P                  ! T TT/ VCVCVf   RMTR7       VP                  4        UU	u/ uF  w  r‰\        V	\        4      '       g   K  W‰bK!  	  up	p# u up	pi )r   )Úkernel_side_table)Ú
kernel_idxÚgridÚtma_descriptor_metadataÚkernel_argsr½
  ri   )Ú*torch._higher_order_ops.triton_kernel_wrapr¿
  Úget_constant_argsr6   ÚUserDefinedTritonKernelr  r~   rG   )
rÀ
  Úconstant_args_idxrÁ
  rÂ
  r  r½
  r¿
  Úconstant_argsrM  rš  s
   $$$$$$    rk   Útriton_kernel_wrap_rÉ
  ¤#  sv   € õ Mà%×7Ñ7Ð8IÓJ€MÜ×ÒØØØ 7Ø/�vÐ/ Ð/Ø)Ò1‘b°}õð &,§\¡\¤^ÔR¡^™˜´zÀ#Äy×7QŒHˆCŠH¡^ÒRÐRùÓRs   ÁA9Á/A9c               ó   € V ^8„  d   QhRR/# ©rf   rg   z-list[ir.TensorBox | ir.ShapeAsConstantBuffer]ri   )rj   s   "rk   rl   rl   ¼#  s   € ÷ /ñ /à2ñ/rm   c                óÄ  € \         ;QJ d    R  V .VO 4       F  '       g   K   RM	  RM! R  V .VO 4       4      '       d[   Rp\        P                  P                  P                  P                  RR4      ;p'       d   V RV 2pV\        P                  n        \        P                  P                  WV.VRR7      p\        \        \        P                  V4      4      # )c              3  óh   "  € T F(  p\        V\        4      ;'       d    \        V4      x € K*  	  R # 5ir¯   r¨  r@  s   & rk   r  Úcond.<locals>.<genexpr>Á#  s(   é € Ð
MÑ;L°aŒ:�aœÓ ×1Ð1¤Y¨q£\Ô1Ó;Lùr«  TFz"control flow operator: torch.cond.ri  Nrj  )Úis_cond)rC  rZ   rp   rq   r“  r”  rn  r6   ÚSwitchrü   r|   ÚmaprG   )ÚpredÚtrue_fnÚfalse_fnÚoperandsr¦   ri  rù  s   &&&&   rk   r¥   r¥   »#  s¹   € ÷ ƒsÑ
M¸DÐ;LÀ8Ñ;LÓ
M‡s‡s‚sÑ
M¸DÐ;LÀ8Ñ;LÓ
M×MÒMØ2ˆÜŸ'™'×.Ñ.×3Ñ3×7Ñ7¸ÀtÓLÐLˆ;ÖLØ�EÐ*¨;¨-Ð8ˆCØ,/Œ�‰Ô)ô
 �Y‰Y×Ñ˜d¨wÐ$7¸È4ÐÓP€FÜ””I×$Ñ$ fÓ-Ó.Ð.rm   c               ó   € V ^8„  d   QhRR/# rË
  ri   )rj   s   "rk   rl   rl   Ï#  s   € ÷ /ñ /Ð)Vñ /rm   c                ó<  € R p\         P                  P                  P                  P	                  RR4      ;p'       d   V RV 2pV\         P                  n        \        P                  P                  WV4      p\        \        \        P                  V4      4      # )z$control flow operator: torch.switch.ri  Nrj  )rZ   rp   rq   r“  r”  rn  r6   rÐ
  rü   r|   rÑ
  rG   )rg  ÚbranchesrÕ
  r¦   ri  rù  s   &&&   rk   ÚswitchrÙ
  Î#  s|   € ð 1€CÜ—g‘g×*Ñ*×/Ñ/×3Ñ3°MÀ4ÓHÐH€{ÖHØ�Ð& { mÐ4ˆØ(+„A‡G�GÔ%ä�Y‰Y×Ñ˜e¨xÓ8€FÜ””I×$Ñ$ fÓ-Ó.Ð.rm   c                óL  € \         P                  '       g¡   \        ;QJ d"    R  W#,            4       F  '       g   K   RM	  RM! R  W#,            4       4      '       d[   Rp\        P                  P
                  P                  P                  RR4      ;p'       d   V RV 2pV\        P                  n        \        P                  P                  WW#V4      p\        V\        4      '       g   \        R4      h\        \!        \        P                  P"                  V4      4      # )c              3  óh   "  € T F(  p\        V\        4      ;'       d    \        V4      x € K*  	  R # 5ir¯   r¨  r@  s   & rk   r  Úwhile_loop.<locals>.<genexpr>Þ#  s-   é € ð *á3ˆAô 	�1”fÓ×.Ð.¤)¨A£,Ô.Û3ùr«  TFz(control flow operator: torch.while_loop.ri  Nrj  z&expected: isinstance(result, Sequence))r4   rm  rC  rZ   rp   rq   r“  r”  rn  r6   Ú	WhileLooprü   r~   r   r‚   r|   rÑ
  Ú_maybe_wrap_as_tensor_box)Úcond_fnÚbody_fnÚcarried_inputsÚadditional_inputsÚstack_outputr¦   ri  rù  s   &&&&&   rk   Ú
while_looprä
  Ú#  sâ   € ô ×!×!Ð!§c£cñ *àÖ3ó*§c§c¢cñ *àÖ3ó*÷ 'ò 'ð 9ˆÜŸ'™'×.Ñ.×3Ñ3×7Ñ7¸ÀtÓLÐLˆ;ÖLØ�EÐ*¨;¨-Ð8ˆCØ,/Œ�‰Ô)ä�\‰\× Ñ Ø˜.¸\ó€Fô �vœx×(Ò(ÜÐEÓFÐFÜ””B—L‘L×:Ñ:¸FÓCÓDÐDrm   )rã
  c               ó    € V ^8„  d   QhRRRR/# )rf   Úsubgraph_fnúir.SubgraphÚ
identifierr§   ri   )rj   s   "rk   rl   rl   õ#  s   € ÷ /ñ / ð /¸#ñ /rm   c                óŒ   € \         P                  P                  ! V .VO5!  p\        \	        \
        P                  V4      4      # r¯   )r6   ÚInvokeSubgraphrü   r|   rÑ
  rG   )ræ
  rè
  rÕ
  rù  s   &&* rk   Úinvoke_subgraphrë
  ô#  s5   € ä×Ñ×%Ò% kÐ=°HÓ=€FÜ””I×$Ñ$ fÓ-Ó.Ð.rm   c               ó    € V ^8„  d   QhRRRR/# )rf   r  ztorch.fx.GraphModuler‡   r  ri   )rj   s   "rk   rl   rl   ý#  s   € ÷ "ñ "Ð)=ð "ÀYñ "rm   c                ó°  € \         p\        V P                  P                  4       EF|  w  r4VP                  R8X  dP   V\
        P                  P                  9   d   \        R4      hW,          \
        P                  P                  V&   Kf  VP                  R8X  d]   \
        P                  P                  V4      w  rV\        P                  P                  P                  \
        P                  WEV4      pKÓ  V\
        P                  P                  9   d   \        R4      h\
        P                  P                  p V\
        P                  n        \
        P                  P                  V4      \
        P                  P                  V&   V\
        P                  n        EK  	  V\         J d   \        R4      hV#   T\
        P                  n        i ; i)a  Process nodes from a FX graph by executing them through V.graph.

This is a common pattern for executing a subgraph's nodes:
- Placeholder nodes are mapped to the provided args
- Output nodes return their result
- Other nodes are executed via V.graph.run_node

rl  z!expected: node not in V.graph.envrV  zNo output node found in graph)Ú_MISSINGr}   rp   Únodesrs   rZ   Úenvr‚   Úfetch_args_kwargs_from_envr’   ræ  ÚInterpreterrV  rq   Úrun_noder(  )r  r‡   rV  r†   rv   Úoutput_argsr  Úsaved_current_nodes   &&      rk   Úprocess_subgraph_nodesrö
  ý#  s?  € ô €Fä˜\×/Ñ/×5Ñ5×6‰ˆØ�7‰7�mÔ#Ø”q—w‘w—{‘{Ô"Ü$Ð%HÓIÐIØ $¥ŒA�G‰G�K‰K˜ÑÙØ�W‰W˜Ô Ü"#§'¡'×"DÑ"DÀTÓ"JÑˆKÜ—X‘X×)Ñ)×0Ñ0´·±¸$ÈVÓTŠFà”q—w‘w—{‘{Ô"Ü$Ð%HÓIÐIä!"§¡×!5Ñ!5Ðð:Ø'+”—‘Ô$Ü$%§G¡G×$4Ñ$4°TÓ$:”—‘—‘˜DÑ!à'9”—‘×$ñ% 7ð( ”ÓÜÐ:Ó;Ð;à€Møð (:”—‘Õ$ús   Ä>AF>Æ>G)Úcontrol_depsc                óì	  € \         P                  P                  P                  ^ ,          p\	        V\
        4      '       g   \        R4      h. p\        WRR7       Fá  w  rV\        P                  ! V4       Uu. uF  p\	        V\        4      '       g   K  VNK  	  ppV F2  p	V	P                  4        VP                  V	P                  4       4       K4  	  \	        V\        P                  P                   4      '       g   K¦  \         P                  P"                  P%                  V. 4      p
VP'                  V
4       Kã  	  \         P                  P                  P                  p^p\)        V4      V,           \)        V4      8w  d   \        R4      h\)        \         P                  P*                  4      p\)        VP,                  P                  P/                  RR7      4      \)        V4      8w  d   \        R4      h\1        VP,                  \3        V4      4      pV '       g   \        R4      h\         P                  P*                  VR	 pV Uu. uFq  p\	        V\4        P6                  4      '       g   K%  VP8                  f   K5  \	        VP:                  \4        P<                  4      '       g   Ka  VP                  4       NKs  	  ppV'       d6   V\         P                  P"                  \         P                  P                  &   \         P                  P*                  VR	 pV FW  pV FN  pVP>                  pVf   \        R
4      h\         P                  P@                  V,          PC                  V4       KP  	  KY  	  \E        4       pV FJ  p\	        V\        4      '       g   K  VP                  4        VPC                  VP                  4       4       KL  	  Ve    \3        \        P                  ! V4      4      M. p. pV FS  p\	        V\        4      '       g   K  VP                  4        VP                  4       V9   g   KB  VP                  V4       KU  	  V FŠ  p\4        PF                  ! V4      pVPI                  4       pV F[  pVP>                  pVf   K  VPK                  4       pVf   K+  \         P                  P@                  V,          PC                  V4       K]  	  KŒ  	  V# u upi u upi )a;  
Lower control_deps_op by ensuring dependencies are realized and tracking them.

The control_deps_op HOP makes dependencies explicit in the graph. During lowering:
1. Realize all additional dependencies to ensure they're computed
2. Execute the target operation normally
3. Track the dependencies for the scheduler
z/expected: isinstance(original_dep_nodes, tuple)T)rš	  z6expected: len(args) + arg_offset == len(original_args)rl  rÓ  zAexpected: len(subgraph_fn.graph_module.graph.find_nodes(op="pl...zexpected: additional_depsNzexpected: op_name is not None)&rZ   rp   rq   r‡   r~   r±   r‚   r   r•  r–  r>   rí  rƒ   r  r’   ræ  rç  Ú_void_ctrl_dep_op_namesr”  r  rÜ   Ú
operationsr  Ú
find_nodesrö
  r|   r6   rä  rð   r  Ú
NoneLayoutÚoperation_nameÚadditional_buffer_depsr´   r*   ÚOrderingBarrierrî  Úget_buffer_name)Úadditional_depsræ
  r‡   Úoriginal_dep_nodesÚ	dep_namesÚdepÚ	orig_nodeÚdep_leafÚdep_ir_nodesÚdep_ir_nodeÚfoundÚoriginal_argsÚ
arg_offsetÚoperation_lenrV  Únew_opsrs   Ú
void_namesÚsubgraph_opsÚdep_nameÚop_nameÚinput_namesr
  Úoutput_leavesÚpassthrough_valsr#  rš  ÚbarrierÚ
barrier_opÚbuf_names   &&*                           rk   Úcontrol_deps_op_loweringr  &$  sÑ  € ô Ÿ™×-Ñ-×2Ñ2°1Õ5ÐÜÐ)¬5×1Ò1ÜÐNÓOÐOà€IÜ˜oÈ$×O‰ˆô #×.Ò.¨sÔ3ó
á3�Ü˜(¤F×+÷ ˆHÙ3ð 	ð 
ó
 (ˆKØ×ÑÔ!Ø×Ñ˜[×1Ñ1Ó3Ö4ñ (ô �i¤§¡§¡×/Ô/Ü—G‘G×3Ñ3×7Ñ7¸	À2ÓFˆEØ×Ñ˜UÖ#ñ Pô —G‘G×(Ñ(×-Ñ-€MØ€JÜ
ˆ4ƒy�:Õ¤ ]Ó!3Ô3ÜÐUÓVÐVäœŸ™×*Ñ*Ó+€MÜ
ˆ;×#Ñ#×)Ñ)×4Ñ4¸Ð4ÓFÓGÌ3ÈtË9ÔTÜØOó
ð 	
ô
 $ K×$<Ñ$<¼dÀ4»jÓI€FçÜÐ8Ó9Ð9ä�g‰g× Ñ   Ð0€Gñ" óáˆBÜ�bœ"Ÿ)™)×$ô 	ð �G‰Gô 	ô �r—y‘y¤"§-¡-×0ô	 	ˆ�‰ŽÙð ð ÷ Ø@JŒ�‰×'Ñ'¬¯©×(<Ñ(<Ñ=ô —7‘7×%Ñ% m nÐ5€LÛˆÛ!ˆHØ×'Ñ'ˆGØŠÜ$Ð%DÓEÐEÜ�G‰G×*Ñ*¨7Õ3×7Ñ7¸ÖAó	 "ñ ô “,€KÛˆÜ�aœ× Ô Ø�I‰IŒKØ�O‰O˜AŸJ™J›LÖ)ñ ð 9?Ò8J”Dœ×+Ò+¨FÓ3Ô4ÐPR€MØÐÛˆÜ�aœ× Ô Ø�I‰IŒKØ�z‰z‹|˜{Ö*Ø ×'Ñ'¨Ö*ñ	 ó
  ˆÜ×$Ò$ SÓ)ˆØ×/Ñ/Ó1ˆ
ÛˆBØ×'Ñ'ˆGØÔ"Ø×-Ñ-Ó/�ØÔ'Ü—G‘G×2Ñ2°:Õ>×BÑBÀ8ÖLó ñ  ð €Mùò
ùòXs$   Á9S,ÂS,É"S1É7S1Ê'S1Ê3S1Úschemec               ó   € V ^8„  d   QhRR/# )rf   ræ
  rç
  ri   )rj   s   "rk   rl   rl   œ$  s   € ÷ ñ  [ñ rm   c               ó,  € R p\         P                  P                  P                  P	                  RR 4      pVf   \        R4      h\        V P                  P                  P                  4       EF   w  rVVP                  R8X  d&   W%,          \         P                  P                  V&   K<  VP                  R8X  Ed   \         P                  P                  V4      w  rx\        P                  ! WxP                  4       4       F“  p	V	P                  4        VP                   '       d8   \         P                  P"                  P%                  V	P'                  4       4       \         P                  P(                  P%                  V	P'                  4       4       K•  	  \*        P,                  P.                  P1                  \         P                  WgV4      pEKf  \         P                  P3                  V4      \         P                  P                  V&   EK£  	  V# )NÚquant_optionsz#expected: quant_options is not Nonerl  rV  )rZ   rp   rq   r“  r”  r‚   r}   r  rï
  rs   rð
  rñ
  r  r  r  rí  Úcodegen_low_precisionÚlow_precision_codegen_opsr´   rî  Úinvoke_quant_opsr’   ræ  rò
  rV  ró
  )
ræ
  r  rÕ
  rV  r  r†   rv   r‡   r  r#  s
   &$*       rk   Úinvoke_quant_tracerr   ›$  s`  € à€FÜ—G‘G×(Ñ(×-Ñ-×1Ñ1°/À4ÓH€MØÒÜÐBÓCÐCä˜[×5Ñ5×;Ñ;×AÑA×B‰ˆØ�7‰7�mÔ#Ø (¥ŒA�G‰G�K‰K˜ÑÙà�W‰W˜Õ ÜŸ7™7×=Ñ=¸dÓC‰LˆDä—_’_ T¯=©=«?Ö;�Ø—	‘	”à ×6×6Ð6Ü—G‘G×5Ñ5×9Ñ9¸!×:NÑ:NÓ:PÔQä—‘×(Ñ(×,Ñ,¨Q×-AÑ-AÓ-CÖDñ <ô —X‘X×)Ñ)×0Ñ0´·±¸$ÀfÓM‹Fä !§¡× 0Ñ 0°Ó 6ŒA�G‰G�K‰K˜Ôñ% Cð( €Mrm   c               ó    € V ^8„  d   QhRRRR/# )rf   r²	  rç
  râ
  ztuple[Any, ...]ri   )rj   s   "rk   rl   rl   º$  s   € ÷ >ñ > ð >À_ñ >rm   c                ó  aa€ ^RI HpHp V Fh  pVP                  4       p\        P
                  P                  V\        P                  4      '       d   KI  Ve   VP                  MRp\        RV R24      h	  ^\        V4      ,          pV P                  P
                  P                   U	u. uF  q™P                  R8X  g   K  V	NK  	  p
p	W¨R p\        V4      \        S4      8w  d   \        R4      h. p\        SV4       FP  w  rÞ\!        V\"        \$        P&                  34      '       d   VP(                  '       g   K?  VP+                  V4       KR  	  V'       d   \        R4      h\,        P.                  ! W4       Uu. uF)  pV! VP1                  4       VP                  4       R	7      NK+  	  ppVP3                  S4       V! W4      oVV3R
 lp\5        V^ ,          ^ RR7      p\6        ;QJ d    . R V 4       F  NK  	  5M! R V 4       4      VR&   \6        ;QJ d    . R V 4       F  NK  	  5M! R V 4       4      VR&   \8        P:                  P<                  ! RRVRR/VB pV^ ,          f   \        R4      hV# u up	i u upi )rÚ   )ÚInputDescriptorÚlower_pointwise_subgraphNzunknown devicezCassociative_scan with combine_mode='pointwise' is not supported on z$. Try to use combine_mode='generic'.rl  z/Unable to generate code for associative_scan opz_Unable to generate code for associative_scan op, because there are unsupported lifted argumentsrÀ  c                ón   <€ S! . \         P                  ! V 4      O\         P                  ! V4      OSO5!  # r¯   )r•  r–  )ÚlhsÚrhsrâ
  Úlowered_combine_fns   &&€€rk   Úwrapped_combine_fnÚ,associative_scan.<locals>.wrapped_combine_fnç$  s@   ø€ Ù!ð 
Ü×Ò Ó$ð
ä×Ò Ó$ð
ð ó
ð 	
rm   rµ	  c              3  ó@   "  € T F  qP                  4       x € K  	  R # 5ir¯   ©rÉ   r@  s   & rk   r  Ú#associative_scan.<locals>.<genexpr>ï$  s   é € Ð7±B¨qŸ[™[Ÿ]˜]³Bùr€  rü  c              3  ó@   "  € T F  qP                  4       x € K  	  R # 5ir¯   rÞ  r@  s   & rk   r  r-  ð$  s   é € Ð<¹°A§¡§ »ùr€  rý  r²	  Úcan_fallback_to_atenFri   )r  r#  r$  r�   rZ   rp   rê  rë  ÚSCANrù   r(  rÜ   r  rï
  rs   r   r~   rÂ   rÊ   rÛ   rr   rƒ   r  r  rÉ   r  rþ  r±   r6   r¸	  rü   )r²	  Úxsrâ
  r#  r$  r¸   r‰   Ú
device_strÚnum_scan_inputsrv   ÚplaceholdersÚadditional_placeholdersÚunsupported_inputsrâ   rl  Úsubgraph_inputsr)  r  rù  r(  s   &&f                @rk   Úassociative_scanr8  ¹$  sT  ù€ çLó ˆØ—‘“ˆÜ�w‰w×"Ñ" 6¬>×+>Ñ+>×?Ô?Ø(.Ò(:˜ŸšÐ@PˆJÜðØ �\Ð!EðGóð ñ	 ð œ#˜b›'•k€Oà#×0Ñ0×6Ñ6×<Ò<óÙ<�ÇÁÈ=Ñ@X�ˆÑ<ð ð ð +Ð+;Ð<ÐÜ
Ð"Ó#¤sÐ+<Ó'=Ô=ÜÐLÓMÐMð ÐÜÐ 1Ð3JÖKÑˆÜ˜#¤¤U§[¡[Ð1×2Ò2°k×6G×6GÒ6GØ×%Ñ% cÖ*ñ L÷ Üð+ó
ð 	
ô —’ Ô(óá(ˆAñ 	˜aŸk™k›m°A·L±L³N×CÙ(ð ð ð ×ÑÐ,Ô-Ù1°*ÓNÐö
ô ˜b �e¨!°4Ô8€Fß”uÑ7±BÓ7—u‘uÑ7±BÓ7Ó7€Fˆ8Ñßœ%Ñ<¹Ó<Ÿ%™%Ñ<¹Ó<Ó<€Fˆ;ÑÜ�W‰W�^Š^ñ Ø%ðà"ðð ñ€Fð
 ˆa…yÒÜÐLÓMÐMØ€MùòWùò&s   Â-JÃJÆ/Jc                ó   € R # r¯   ri   )Útokenss   &rk   Ú_sink_tokensr;  û$  rv
  rm   c                 ó   € R # r¯   ri   ri   rm   rk   Ú_make_tokenr=   %  rv
  rm   c                ó  € ^ RI HpHp V! V4      pVfù   V\        P                  P
                  P                  J dÑ   ^ RIHpH	p VP                  4       p	V	'       d±   V	P                  P                  \        P                  P
                  P                  4      p
V
'       dl   \        W§4      '       g   \        R4      hV
P                  V^,          4      pV'       d0   \!        V4      ^8w  d   \        R4      h\#        \%        V4      4      p\!        \&        P(                  P*                  4      pV\,        9   d2   \,        V,          ! V/ VB p\.        P0                  ! \2        R V4       M<R p\.        P4                  ! V\6        P8                  P:                  ! V.VO5/ VB 4      p\!        \&        P(                  P*                  VR 4      ^ 8:  d   \        RV R	24      hV'       dË   \&        P(                  P<                  P?                  V4      p\&        P(                  P*                  VR  Fc  pR
 Vn         V'       g   K  VPC                  4       p\&        P(                  PD                  V,          PG                  VPC                  4       4       Ke  	  X\&        P(                  P<                  V&    R p\.        P4                  ! VW#34      w  ppV! VVV4      p\!        TPT                  4      ^ 8X  d   Y3# \!        TPT                  4      ^8X  d   Y3# T .TO5#   \H         dW   p\K        T4      p\L        PO                  RTT4       \        T\P        \R        34      '       d   T .TO5u Rp?# Y3u Rp?# Rp?ii ; i)zs
We lower the operator directly, and then we add StarDep dependencies to all
the newly created nodes in the graph.
)Ú_get_effectÚ_get_schemaN)ÚInvokeSubgraphCacheÚTracingContextz@expected: isinstance(invoke_subgraph_cache, InvokeSubgraphCache)zMultiple effects NYIc                ó"   € V P                  4       # r¯   )rí  r…
  s   &rk   rq  Úwith_effects.<locals>.<lambda>*%  s
   € °!·)±)´+rm   c                óf   € \        V \        P                  4      '       d   V P                  4       # T # r¯   rJ  rÍ   s   &rk   rL  Ú"with_effects.<locals>.wrap_tensors-%  rN  rm   zCNo operation nodes were generated when lowering effectful operator Ú.c                 ó   € R # rÈ   ri   ri   rm   rk   rq  rD  >%  s   € ©drm   c                óp  € \        V \        P                  4      '       d   V P                  4       # \        V \        4      '       dX    V P
                  p\        VR 4      '       d7   \        VP
                  R4      '       d   VP
                  P                  4       # V # V #   \        \        3 d     T # i ; i)r€   Úget_example)
r~   r6   ÚTorchBindObjectÚ	get_valuerG   r€   r  rJ  ÚAttributeErrorr«   )r
  r  s   & rk   Úconvert_ir_to_valueÚ)with_effects.<locals>.convert_ir_to_valueI%  sž   € Ü˜!œR×/Ñ/×0Ò0Ø—{‘{“}Ð$Ü˜Aœy×)Ò)ðØŸf™f�GÜ˜w¨×/Ò/´GØŸ™ m÷5ò 5ð  'Ÿ|™|×7Ñ7Ó9Ð9ð �ØˆHøô	 'Ô(;Ð<ô Øà�ðús   ÁAB  Â B5Â4B5z5Failed to get schema for %s: %s. Assuming list output)+Útorch._higher_order_ops.effectsr?  r@  r’   rY   Úhigher_orderrë
  Útorch._guardsrA  rB  Útry_getÚhop_dispatch_set_cacheÚ	get_cacher~   r‚   Úget_effectsrÜ   rv  r  rZ   rp   rú
  r`   r•  r<  rG   rO  r6   rP  rü   Úeffectful_opsr”  Úhas_side_effectsr  Úadditional_star_depsr´   r(  r§   r‰  rŠ  r±   r|   Úreturns)Útokenrs   r‡   r  r?  r@  Úeffect_typerA  rB  Útracing_ctxÚinvoke_subgraph_cacheÚeffectsr  rù  rL  Úprev_effect_bufferÚnew_opr  rN  Úschema_argsÚschema_kwargsÚschemaÚeÚ	error_msgs   &&*,                    rk   Úwith_effectsrg  %  sé  € ÷ Iñ ˜b“/€KØÒ˜r¤U§Y¡Y×%;Ñ%;×%KÑ%KÓKßEà$×,Ñ,Ó.ˆßØ$/×$FÑ$F×$PÑ$PÜ—	‘	×&Ñ&×6Ñ6ó%Ð!÷ %Ü"Ð#8×NÒNÜ(ØZóð ð 0×;Ñ;¸DÀ½GÓD�ßÜ˜7“| qÔ(Ü,Ð-CÓDÐDÜ"&¤t¨G£}Ó"5�Kô œŸ™×*Ñ*Ó+€Mð 
ŒY„Ü˜2– Ð/¨Ñ/ˆä×ÒœYÑ(=¸vÕFò	Lô —’Øœ"×+Ñ+×2Ò2°2ÐG¸ÒGÀÑGó
ˆô Œ1�7‰7×Ñ˜m˜nÐ-Ó.°!Ô3ÜØQÐRTÐQUÐUVÐWó
ð 	
÷ ÜŸW™W×2Ñ2×6Ñ6°{ÓCÐÜ—g‘g×(Ñ(¨¨Ó8ˆFá&2ˆFÔ#ß!Ñ!Ø Ÿ/™/Ó+�Ü—‘×,Ñ,¨WÕ5×9Ñ9Ð:L×:UÑ:UÓ:WÖXñ 9ð ô 	
�‰×Ñ˜kÑ*ð #ò	ô$ &,§_¢_Ø $ ó&
Ñ"ˆ�]ñ ˜R ¨mÓ<ˆô ˆ6�>‰>Ó˜aÔØˆÐÜ	ˆV�^‰^Ó	 Ô	!ØˆÐàÐ˜ÑÐøô ô #Ü˜“Fˆ	Ü�‰ØCÀRÈô	
ô �fœu¤d˜m×,Ò,ØÐ#˜FÑ#Õ#à�?Õ"ûð#ús+   Ê5(L ÌM>Ì(AM9Í+M>Í1M9Í3M>Í9M>)Úregister_comm_loweringsÚregister_symm_mem_loweringsc                óÚ  € \        WRRRR7      p\        P                  P                  P	                  \        VR,          4      4      p\        P                  P                  P                  V\        P                  4      '       d    \        P                  ! RRV R^/VB w  rEWE3# \        WRR7      p\        \        P                  ,          ! \        W4      4      p\!        WqRR7      pWh3# )	zs
Lowering inductor_prims.prepare_softmax_online to compute max/sum with
online softmax reductions when profitable.
TNr	  rw  ru  Ú
num_output)r×  ri   )ré  rZ   rp   r÷   ÚsimplifyrW   rò  r4   r€  rA   rü   rî	  r`   r:  rÄ	  rl  r	  )	r¸   rß   r  r+	  Ú
max_tensorÚ
sum_tensorrÍ  rÄ	  Úxsums	   &&       rk   Úprepare_softmax_onlinerp  x%  sÕ   € ô #Ø	˜d¨$Àdô€Fô �W‰W×Ñ×&Ñ&¤}°VÐ<NÕ5OÓ'PÓQ€Fä‡w�w×Ñ×,Ñ,Ø”×2Ñ2÷ò ô "8×!>Ò!>ñ "
Øð"
Ø%&ð"
Ø*0ñ"
Ñˆ
ð Ð%Ð%ä˜1¨DÔ1ˆÜœŸ™Ö!¤# a£,Ó/ˆÜ�C tÔ,ˆØˆzÐrm   c           	     ó   € \        4       '       g   \        R4      hV P                  4       pV\        P                  \        P
                  \        P                  39  d   \        RV 24      hV\        P                  8w  d   \        V \        P                  4      p \        P                  ! \        P                  RR\        P                  R^R7      p\        V4      ! V 4      p\        V\        P                  4      # )zì
Lowering for cvt_e8m0_rceil. Uses PTX cvt.rp.satfinite.ue8m0x2.f32 on NVIDIA SM100+.

The PTX instruction takes 2 float32 and outputs 2 e8m0 packed in uint16.
Currently we pass 0.0 as the second input and only use the low byte result.
zMcvt_e8m0_rceil requires NVIDIA SM100+ (Blackwell) for PTX instruction supportzAcvt_e8m0_rceil requires float32, float16, or bfloat16 input, got z)cvt.rp.satfinite.ue8m0x2.f32 $0, 0.0, $1;z=h,rT)ÚasmÚconstraintsr¿   Úis_pureÚpack)rO   r«   rÉ   r’   r  rx  rw  r'  r  r1  rI  rY   Úinline_asm_elementwiser\
  rÇ  r  )r×   r¿   r�   rù  s   &   rk   Úcvt_e8m0_rceil_loweringrw  ’%  sÉ   € ô $×%Ò%Ü!Ø[ó
ð 	
ð �M‰M‹O€EØ”U—]‘]¤E§M¡M´5·>±>ÐBÔBÜØOÐPUÈwÐWó
ð 	
ð
 ”—‘ÔÜ�sœEŸM™MÓ*ˆä	×	Ò	Ü×"Ñ"Ø7ØÜ�l‰lØØô
€Bô ˜BÔ Ó$€FÜ�FœEŸK™KÓ(Ð(rm   rt  ru  c           	     ó†  a aaaaaa	€ \        V!  p\        ;QJ d    . R  V 4       F  NK  	  5M! R  V 4       4      oV Uu. uF  qfP                  4       NK  	  upo	V VVVVV	V3R lp\        P                  P                  V^ ,          P                  4       SV\        V^ ,          P                  4       4      R7      # u upi )c              3  ó@   "  € T F  qP                  4       x € K  	  R # 5ir¯   r,  r©  s   & rk   r  Ú/lower_inline_asm_elementwise.<locals>.<genexpr>À%  s   é € Ð;±F¨SŸ™Ÿ˜³Fùr€  c                óB  <a € \         ;QJ d    . V 3R  lS 4       F  NK  	  5M! V 3R  lS 4       4      p\        P                  ! VRSRSRSRSRS	RS/ pS\        P                  \        P
                  39   d&   \        P                  ! V\        P                  4      pV# )c              3  ó2   <"  € T F  q! S4      x € K  	  R # 5ir¯   ri   )r	  rB  rƒ  s   & €rk   r  ÚAlower_inline_asm_elementwise.<locals>.inner_fn.<locals>.<genexpr>Ä%  s   øé € Ð7©w V�V˜C—[�[«wùs   ƒrr  rs  r¿   rt  ru  Úinput_dtypes)r±   rY   rv  r’   rx  rw  r  r  )
rƒ  Úvalsrù  Úasm_strrs  r¿   r~  rt  rº  ru  s
   f  €€€€€€€rk   rŠ  Ú.lower_inline_asm_elementwise.<locals>.inner_fnÃ%  sž   ù€ ßŒuÔ7©wÓ7�u‰uÔ7©wÓ7Ó7ˆÜ×+Ò+Øð
àð
ð $ð
ð ð	
ð
 ð
ð ð
ð &ñ
ˆð ”U—]‘]¤E§N¡NÐ3Ô3Ü—\’\ &¬%¯-©-Ó8ˆFØˆrm   rŒ  )	r  r±   rŽ  r6   rD   rü   r�   r|   rÝ   )
r€  rs  r¿   rt  ru  rZ  r×   rŠ  r~  rº  s
   ddddd*  @@rk   Úlower_inline_asm_elementwiser‚  ¸%  sž   þ€ ô  Ñ'€Fç”5Ñ;±FÓ;—5‘5Ñ;±FÓ;Ó;€LÙ,2Ó3©F S�‰Ö ©FÑ3€G÷ó ô$ �<‰<×ÑØ�a�y×#Ñ#Ó%ØØÜ�F˜1•I×&Ñ&Ó(Ó)ð	 ó ð ùò) 4s   ÁB>)rQ  )Újagged_loweringsÚmkldnn_loweringsÚquantized_loweringsc               ó   € V ^8„  d   QhRR/# rÏ  ri   )rj   s   "rk   rl   rl   ð%  s   € ÷ ñ Ð,ñ rm   c              #  óˆ  "  € \        V \        P                  P                  4      '       g   \	        R4      h\
        P                  V 4      p \        V 4      ! \        V 4      4       Rx € V'       d   V\
        V &   R# \
        P                  V 4       R#   T'       d   T\
        T &   i \
        P                  T 4       i ; i5i)zR
A context manager to force fallback an op. Used in unit test
for FallbackKernel.
z+Only OpOverload to make the clean up easierN)
r~   r’   r“   r”   r‚   r`   r”  rJ  r'  rÙ  )rs   Úold_handlers   & rk   Úforce_fallbackr‰  ï%  s†   é € ô �rœ5Ÿ:™:×0Ñ0×1Ò1ÜÐJÓKÐKÜ—-‘- Ó#€KðÜ˜"ÔÔ.¨rÓ2Ô3ÛçØ'ŒI�b‹Mä�M‰M˜"Öø÷ Ø'ŒI�bŠMä�M‰M˜"Õüs   ‚ACÁB Á,*CÂ)B?Â?C)NNFF)NNNFFNF)Frˆ  )FTrî   r¯   rf  )r   r   rÚ   r½  rÍ  rÈ   )NTFN)NNrl  )r   NNrÚ   )NNN)r½  FF)rf   F)Nrs  N)Nr   rÚ   F)r,  )NNNN)ri   r   FTNrY  )r½  F)r½  TT(v  Ú__conditional_annotations__Ú
__future__r   rr  r	  r1  r  ÚloggingrŒ	  ra  r�  rý  rV  Úcollectionsr   Úcollections.abcr   r   r   r   Útypingr	   r
   r   r   r   r   Útyping_extensionsr   Úunittest.mockr   rÊ   r’   Ú$torch.ao.quantization.fx._decomposedÚtorch.fxÚtorch.utils._pytreer  Ú_pytreer•  Útorch._dynamo.utilsr   Ú*torch._functorch._aot_autograd.descriptorsr   r   Ú(torch._higher_order_ops.associative_scanr   rÄ
  r   Ú"torch._library.fake_class_registryr   Útorch._library.opaque_objectr   Útorch._library.utilsr   Útorch._prims_commonr   r   r   r   r   r   r   r    r!   r"   r#   Útorch.fx.experimental.sym_noder$   r%   rÙ  r&   r'   r(   r)   Útorch.utils._ordered_setr*   Útorch.utils._sympy.functionsr+   r,   r-   r.   r/   r0   r1   Útorch.utils._tritonr2   Ú_dynamo.utilsr3   Ú r4   r5   r6   r7   Údecompositionr8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   r„	  rY   rZ   r[   r	  r\   r]   r^   ÚFALLBACK_ALLOW_LISTÚ	getLoggerrM  r‰  r`   Ú__annotations__ra   rb   r“   r”   r=  r:  Útr_c10dr(  r³   Ú_higher_order_opsr  ru   rÚ  rc   Úquantized_decomposedr—  rx   r‹   r—   r•   r­   r²   r½   r  r%  r  r•  ÚbmmÚconvolutionÚconvolution_backwardr™  r�  rÏ  r  rô  r÷  Ú_int_mmr  r§  rþ	  r  r-  rx  r  r-  Ú	complex32Ú	complex64rh   rw  rÃ   rÅ   rÎ   rÑ   ræ   rê   rñ   rÿ   r'  r6  rF  ru  rJ  rX  r|  r�  rœ  rÇ  rÈ  râ  rÛ  r  r,  r  r)  r.  r  r;  r¿   rC  rH  Ú
device_putrK  rN  r‘	  rO  rb  rr  rv  r  r  ÚaliasÚdetachÚdetach_ÚliftÚview_ofr†  r  r‡  r”  r–  r›  r�  r£  r¥  r¨  r«  r*  r­  rS  r¼  r¾  rÎ  Ú_unsafe_viewÚreshaperÔ  rè  rð  rô  Úslicerþ  r  r#  r<  Úquantize_per_channelrX  r`  r¦   rc  Ú_functional_assert_asyncrf  Údequantize_per_channelro  Úquantize_per_tensorrv  Údequantize_per_tensorr{  rn  r‡  rŒ  r¤  rÑ  r  r  r  r%  r,  r.  r0  r<  r¸  r@  rú  rF  r'  ÚcacherX  rc  ri  ry  r�  r’  Úrngprimsr£  r¥  rª  Ú	bernoullir¦  r®  r±  Ú	lru_cacherµ  r¸  r•  r¾  r»  r½  rÃ  rÂ  rÁ  ÚrandintÚ	rand_likeÚ
randn_likeÚrandint_likeÚnormalÚrrelu_with_noise_functionalÚstreamsÚrecord_eventÚ
wait_eventÚsynchronize_eventÚsynchronize_deviceÚsynchronize_streamÚwait_streamÚforce_stride_orderrÉ  r   rÍ  rÔ  rÐ  Úlookup_seedrÖ  rà  Úrandomrö  Úrand_eager_offsetÚrand_eager_offsetsrÿ  r  r	  r  r  r0  r«  r'  Ú	NO_OPMATHr:  r?  rA  r    rð  rG  rž   r¢   rd  rŠ  Ú_adaptive_avg_pool3dÚadaptive_max_pool3dÚ*_scaled_dot_product_attention_math_for_mpsÚuniformÚexponentialÚ_pdist_forwardÚsoft_margin_loss_backwardÚ_fused_rms_normrŸ  Ú_is_compiledÚembedding_dense_backwardr4	  Únative_layer_normÚ_cdist_forwardÚ_cdist_backwardÚ
_trilinearÚsegment_reduceÚ_segment_reduce_backwardÚhistcÚ	histogramÚbin_ctÚ_histogramdd_bin_edgesÚ_histogramdd_from_bin_ctsÚaddbmmÚ_addmm_activationÚ_grouped_mmÚ
_cudnn_rnnÚ_cudnn_rnn_backwardÚ
miopen_rnnÚmiopen_rnn_backwardÚ_embedding_bagÚ_embedding_bag_forward_onlyÚ_embedding_bag_backwardÚ*_embedding_bag_per_sample_weights_backwardÚ_fused_moving_avg_obs_fq_helperÚ*_fused_moving_avg_obs_fq_helper_functionalÚ max_pool3d_with_indices_backwardÚ_adaptive_avg_pool2d_backwardÚ_adaptive_avg_pool3d_backwardÚadaptive_max_pool2d_backwardÚadaptive_max_pool3d_backwardÚfractional_max_pool2d_backwardÚfractional_max_pool3d_backwardÚreplication_pad1d_backwardÚreplication_pad2d_backwardÚupsample_linear1d_backwardÚupsample_bicubic2d_backwardÚupsample_trilinear3d_backwardÚgrid_sampler_2d_backwardÚ_pdist_backwardÚ	nanmedianÚmultinomialrx  Úresize_Ú
resize_as_Ú_linalg_detÚlinalg_householder_productÚlinalg_inv_exÚlinalg_ldl_factor_exÚlinalg_ldl_solveÚ	linalg_luÚlinalg_lu_factor_exÚlinalg_lu_solveÚlinalg_matrix_expÚlinalg_matrix_sqrthÚlinalg_polarÚ	linalg_qrÚ_linalg_slogdetÚ_linalg_solve_exÚlinalg_solve_triangularÚ_linalg_svdÚ	lu_unpackÚormqrÚ_linalg_check_errorsÚlinalg_pinvÚatol_rtol_tensorÚ_linalg_eighÚtriangular_solveÚlinalg_cholesky_exÚcholesky_inverseÚcholesky_solveÚgeqrfÚ_fft_r2cÚnonzeroÚnonzero_staticÚbincountÚ_unique2Ú
unique_dimÚunique_consecutiveÚunique_dim_consecutiveÚgcdÚ_thnn_fused_lstm_cellÚ_primsÚ	rng_primsÚrun_and_save_rng_stateÚrun_with_rng_stateÚgraphsafe_run_with_rng_stateÚrun_dtensor_rng_opÚ_amp_update_scale_Ú_amp_update_scaleÚmasked_scatterÚmasked_scatter_backwardru  ÚangleÚ(_sparse_coo_tensor_with_dims_and_tensorsÚ	to_sparseÚ
_to_sparser’  r~  rk  Ú#_scaled_dot_product_flash_attentionÚ	quantizedÚ,_scaled_dot_product_flash_attention_backwardÚ#_scaled_dot_product_cudnn_attentionÚ,_scaled_dot_product_cudnn_attention_backwardÚ+_scaled_dot_product_flash_attention_for_cpuÚ4_scaled_dot_product_flash_attention_for_cpu_backwardÚ0_scaled_dot_product_fused_attention_overrideableÚ9_scaled_dot_product_fused_attention_overrideable_backwardÚ_flash_attention_forwardÚ_flash_attention_backwardÚ_efficient_attention_forwardÚ_efficient_attention_backwardÚindex_reduceÚrepeat_interleaveÚ_weight_norm_interface_backwardrõ  rý  r™  r¡  rv  rª  ÚarangeÚ
start_stepr­  r³  r¾  rÄ  Úscalar_tensorrÖ  Ú
LongTensorrØ  rÞ  rà  râ  rë  rŸ  rï  rÊ  rî  r{  r%  r  Ú
zeros_liker  r  r÷  r  r  r  r  r$  r.  r:  rM  rP  rO  rg  rZ  rb  rd  rf  rp  rk  ru  r_  r•  Úfallback__unsafe_masked_indexr™  Ú,fallback__unsafe_masked_index_put_accumulater÷  r¡  rŠ  r¬  r¥  r¸  r¶  r¾  r²  rá  ré  rí  rý  r   rI  r  r  r.  rÒ  r6  r7  rJ  rO  r^  rd  ri  r}  r�  rŽ  r’  r”  rÆ  rß  rç  rö  rý  r  r  r*  r(  r;  rA  rD  r>  rY  ra  Ú
avg_pool1drq  r\  r�  rË  rÆ  rÎ  ré  rò  rú  rþ  rÌ  r	  r	  r/	  r6	  rÓ  r;	  r=	  r?	  rB	  rX  ÚTensor_TensorrL	  ÚScalarrJ	  ÚTensor_ScalarrK	  r  r  rŸ  r\	  r_	  rb	  rq	  r	  rv	  r¿  r|	  rt  Útrue_divider—	  rª	  r  r	  r»	  r¹	  rÀ	  r¿	  rÊ	  rÉ	  rÖ	  rÔ	  rÜ	  rÛ	  r±  rä	  rC  rè	  r�  rï	  rœ  rö	  r÷	  rÍ  rî	  rÎ  rõ	  rx  rí	  rÝ  rô	  rì	  ró	  rë	  rò	  r´   r
  rù	  rÿ	  r
  r7
  r5
  r:
  r9
  Úmedianr
  rß   r
  rä  r'
  r

  r
  r3
  r=
  r@
  ÚrsqrtrÄ	  rI	  Úexpm1ÚrelurD  rH	  r	  rl  rP
  rU
  Ú_foreach_addcmulÚ_foreach_addcmul_scalarÚ_foreach_addcdivÚ_foreach_addcdiv_scalarÚcosÚsinÚabsÚbitwise_andr  Úbitwise_notÚ
bitwise_orÚbitwise_right_shiftÚbitwise_xorÚlgammaÚerfÚspecial_erfrÃ	  ÚtanÚtanhrf	  rg	  rø	  Úlogical_xorrK  rL  Ú	clamp_minÚ	clamp_maxÚnegrJ  rW
  Úsignr[
  Ú	_neg_viewÚler/  r.  rù  r  rh	  ÚcoshÚsinhÚacosÚacoshÚasinÚasinhÚatan2ÚatanÚatanhr�	  ÚerfcÚerfinvÚhypotÚlog10Úlog2Ú	nextafterÚcodegen.commonrë  r_
  rf
  rð   rs   rÔ   r¢  Ú_foreach_addÚListÚforeach_add_listÚforeach_add_scalarÚ_foreach_mulÚforeach_mul_listÚforeach_mul_scalarÚ_foreach_subÚ_foreach_negÚ_foreach_absÚ_foreach_powÚScalarAndTensorÚ_foreach_divÚforeach_div_listÚforeach_div_scalarÚ_foreach_sqrtÚ_foreach_rsqrtÚ_foreach_maximumÚ_foreach_minimumÚ_foreach_clamp_minÚ_foreach_clamp_maxÚ_foreach_reciprocalÚ_foreach_signÚ_foreach_cloneÚ_foreach_copyÚforeach_copyro
  Ú_foreach_add_Ú_foreach_mul_Ú_foreach_div_Ú_foreach_copy_Ú_foreach_addcmul_Ú_foreach_addcdiv_rs
  Úadd_Úbitwise_and_Úbitwise_left_shift_Úbitwise_not_Úbitwise_or_Úbitwise_right_shift_Úbitwise_xor_Úmul_Údiv_ÚTensor_modeÚlogical_and_Úlogical_not_Úlogical_or_Úlogical_xor_Úsub_Úrelu_Úsigmoid_Ú__and__Ú
__lshift__Ú__or__Ú
__rshift__Ú__xor__Ú__iand__Ú__ilshift__Ú__ior__Ú__irshift__Ú__ixor__ru
  r~
  rã  rÂ   rƒ
  r†
  rˆ
  r  ÚmethodÚfuncr/  r�
  r’
  Ú_inductor_testrí  r”
  r  r˜
  Úset_Úsource_Tensorr�
  r¡
  Úfsdpr£
  r»
  Ú*torch._higher_order_ops.auto_functionalizer¼
  rÉ
  rQ  r¥   rÙ
  rä
  Úwhile_loop_stack_outputrI  rë
  r‚	  rî
  rö
  Ú.torch._inductor.fx_passes.control_dependenciesr÷
  r  Úinvoke_quantr   r8  r;  r=  rg  Úcomm_loweringrh  ri  rp  Úcvt_e8m0_rceilrw  rv  r‚  rQ  rƒ  r„  r…  Úregister_jagged_opsÚregister_quantized_opsÚregister_woq_mm_opsÚcontextmanagerr‰  )rŠ  s   @rk   Ú<module>rÏ     s�<  øðß "Ð "ã Û Û Û Û Û Û Û 	Û 
Û Ý #ß AÓ Aß H× HÝ 'Ý ã ã Û +Û ß $Ð $Ý (÷õ IÝ UÝ ?Ý <Ý :÷÷ ÷ ñ ÷ M÷ó õ 0÷÷ ñ õ >å ,ß 8Ó 8ß =÷÷ ÷ ÷ ó ÷$÷ ÷ ÷ ñ ÷"  ÷ Ý Ý*ñ ˆTƒ]€Ùˆtƒ_€ñ !à ØðóÐ ð ×Ó˜Ó!€Ø@B€	Ð=Ó BàBD€Ð?Ó DàTVÐ ÐQÓ VØ�u—z’z×,Ò,Ö-Ó/€	Ø‡y‚y‡~‚~€Ø
�)Š)×
Ò
€Ø�	Š	�Š€Ø" 5§:¢:×#8Ò#8Ö9Ó;Ð Ø˜Ÿš×.Ò.Ö/Ø
×Ò×)Ò)Ð*ó€ð
 ! §¢×!6Ò!6Ö7Ó9Ð ØNPÐ ÐKÓ PØ—y’y×5Ò5Ð àØ'ð*Ð &õõõ2õBõFò
8õ3ñ à�ŠØ×ÒØ�ŠØ× Ò Ø�ŠØ×ÒØ×!Ò!Ø×$Ò$Ø×$Ò$Ø×-Ò-Ø�ŠØ×ÒØ×&Ò&Ø�Šðôð, €u‡{‚{Ø€u‡z‚zØ€u‡{‚{Ø€u‡{‚{Ø€u‡{‚{Ø€u‡}‚}Ø€u‡}‚}Ø€u‡}‚}Ø€u‡‚Ø€u‡‚Øˆ�ŠØˆ�
Š
Øˆ�Šð€õ.õ"õ#ðCð "'÷Cò(õõõ(Oõdõ43ðp à,×4Ò4ØØ÷ò*#÷4Xð Xòvõ6÷>{ð {ñ| Ð)°Ô8€÷8ð 8õv$/÷NEð Eð4 
‡M‚MØ	‡M‚MØ	‡M‚MØ	‡N‚Nð	#Ð õHñ4 �5×*Ò*×7Ò7ÈTÔRñ+ó Sð+ñ\ �5×-Ò-À4ÔHôNó IðNð45¸u÷ 5ñ0 �4—9’9—?’?¸Ô=ô&ó >ð&ðK¸%ð KÈe÷ Kñ �5×#Ò#¸Ô>÷Fó ?ðFð 
ØØ7×?Ò?ØØØ $ØØØØ"'ô.ñb $ØØ7×DÒDØõñ �4—:’:¨À4ÔHôó Iðò>ñ> Ô õ
ñ �4—:’:¨ÀDÔIñó Jðñ0 �4×)Ò)°UÐPTÔUñó Vðñ. �D—J’J §¢¨T¯\ª\¸4¿9º9ÀeÇmÂmÐTÓUñó Vðñ ˆ4�×ÒÙ�d—o’oÔ& sÔ+ñ �4—<’<°TÔ:ôBó ;ðBñ. �4×$Ò$¸$Ô?ô"ó @ð"ñ �D—M’M�?Ó#ôó $ðñ �4—:’:ÓñCó ðCñ �4—:’:ÓñCó ðCñ �4—9’9Óñ!ó ð!ñ �4—:’:Óñ!ó ð!ñ �4—:’:×%Ò%Ó&ñ%ó 'ð%ñ �4—:’:Óñ!ó ð!ñ �4—;’;°DÔ9ð#> ó #>ó :ð#>ñL �5×)Ò)¸tÔDñ
ó Eð
ñ �4—>’>°tÔ<ñ#ó =ð#ñ �4—;’;Óñ6ó  ð6ñr �4×$Ò$¸$Ô?Ù�4—9’9°$Ô7Ù�4—<’<°TÔ:ô/ó ;ó 8ó @ð/ñ �4—<’<°TÔ:ñ>ó ;ð>ó'!öTó0ñ �4—:’:°4Ô8Ø˜1 #§+¢+°A¸Tó uó 9ñuñp �4—?’?¸Ô=ò0Jð .2ô0Jó >ð0Jñf �4×#Ò#¸Ô>ôó ?ññ �4×'Ò'¸TÔBôó Cðö
BñJ Ð'×<Ò<ÐRVÔWô1ó Xñ1óhñ$ �4×%Ò%×)Ò)Ó*ñ$ó +ñ$ñ �4×0Ò0×4Ò4Ó5ñ$ó 6ñ$ñ Ø×/Ò/ÀTôð1ð %)ö1óñ1ñh Ø×,Ò,×4Ò4È$ôô"óñ"ñJ Ø×.Ò.×6Ò6ÈDôð"ð %)ö"óñ"ñJ Ø×,Ò,×3Ò3Èôô4óñ4ñn Ø×.Ò.×5Ò5È4ôð1ð %)ö1óñ1öhLñ^ �4—8’8Óôv:ó ñv:ñr �4—=’=°dÔ;÷6Eó <ñ6Eñr �4×%Ò%¸4Ô@÷6ó Añ6ñ �4×(Ò(¸dÔC÷ó Dññ �4—;’;°DÔ9ñKó :ñKñ\ �4—:’:°4Ô8ô&ó 9ñ&ñR �4×(Ò(¸dÔCô ó Dñ ñ �4—;’;°DÔ9ôó :ññ �4—;’;°DÔ9ñDó :ñDñ8 �4—>’>°tÔ<ñó =ññ �4—?’?¸Ô=ñó >ñöñ �4—8’8Óôó ñöð$ ‡‚ñó ñ÷@ñ @÷F3ñ 3÷%6ñ %6öP4Nón	,ñ �5—9’9×%Ò%×1Ò1ÀtÔLñ#+ó Mñ#+ñL �4×&Ò&¸DÔAñGó BñGñ �4—?’?¸Ô=ñó >ññ �4—>’>×#Ò#¸Ô>ñ'ó ?ñ'ñ �4—<’<Ó ñó !ñð ×Ó�QÓñBó ñBó/ò
 )¨¯ª×):Ò):Ó;Ñ Ú*¨4¯9ª9×+>Ò+>Ó?Ñ Ú)¨$¯*ª*×*<Ò*<Ó=Ñ Ú+¨D¯JªJ×,@Ò,@ÓAÑ Ú ˆd�lŠlÔ Ú ˆd�nŠn¨dÕ 3Ú ˆd�oŠo¨tÕ 4Ú ˆd×Ò°Õ 6Ú ˆd�kŠk¨4Õ 0Ú ˆd×.Ò.Ô /ò ˆe�iŠi×Ò×,Ò,×4Ò4Ô 5Ú ˆe�iŠi×Ò×*Ò*×2Ò2Ô 3Ú ˆe�iŠi×Ò×1Ò1×9Ò9Ô :Ú ˆe�iŠi×Ò×2Ò2×:Ò:Ô ;Ú ˆe�iŠi×Ò×2Ò2×:Ò:Ô ;Ú ˆe�iŠi×Ò×+Ò+×3Ò3Ô 4ñ �4—9’9ÓñJó ñJñ �4—:’:ÓñJó ñJñ �>×4Ò4È$ÔOñLó PñLñ
 �>×&Ò&¸DÔAôKó BñKñ �>×'Ò'¸TÔBñJó CñJñ
 �>×-Ò-À4ÔHñ	ó Iñ	öñ( �>×(Ò(¸dÔCð7ð
 ð7ð  %Ÿ}š}ö7ó Dñ7òt ˆn×.Ò.Ô /Ú ˆn×/Ò/Ô 0ñ �>×)Ò)¸tÔDðØLMöó Eñö:ö8ö.ö	8ñ �4×$Ò$×+Ò+ÀÔFðZð ð	Zð
 ðZð ðZð  $öZó GñZñz Ø‡N‚N×ÒÐ/N×/XÒ/Xôð6ð ð	6ð
 ö6óñ6óróóóóóó óóD=ñ Ø×Ò×ÒÑ!Kôó
fòT ˆd×'Ò'Ô (Ú ˆd×&Ò&¸Õ =Ú ˆd×=Ò=Ô >ò ˆd�lŠl¨DÕ 1Ú ˆd×Ò×&Ò&¨UÕ 3Ú ˆd×!Ò!Ñ#5Ô 6Ú ˆd×,Ò,°5Õ 9Ú ˆd×"Ò"¨Õ /Ø‡9‚9×Ò×ÒÚØ×%Ò%¨Eõð 	‡:‚:×Ò×ÒÚØ×Ò Uõò
 ˆd×!Ò!Ô "Ú ˆd×"Ò"Ô #ò ˆd�oŠoÔ ò ˆd×!Ò!×)Ò)Ô *Ú ˆd×+Ò+×3Ò3Ô 4ò ˆd�jŠjÔ Ú ˆd�nŠn×#Ò#Ô $Ú ˆd×)Ò)×1Ò1Ô 2Ú ˆd×,Ò,×4Ò4Ô 5ò ˆd�kŠkÔ Ú ˆd×$Ò$¨5Õ 1â ˆd×Ò¡Ô .ò ˆd�oŠo™}Ô -Ú ˆd×&Ò&Ñ(:Ô ;Ú ˆd�oŠo™}Ô -Ú ˆd×&Ò&Ñ(:Ô ;ò ˆd×!Ò!Ñ#5Ô 6Ú ˆd×.Ò.Ñ0BÔ CÚ ˆd×*Ò*Ô +Ú ˆd×=Ò=Ô >Ú ˆd×=Ò=Ô >Ú ˆd×2Ò2Ô 3Ú ˆd×=Ò=Ô >ò ˆd×3Ò3Ô 4Ú ˆd×0Ò0±-Ô @Ú ˆd×0Ò0Ô 1Ú ˆd×/Ò/Ô 0Ú ˆd×/Ò/Ô 0Ú ˆd×1Ò1Ô 2Ú ˆd×1Ò1Ô 2Ú ˆd×-Ò-Ô .Ú ˆd×-Ò-Ô .Ú ˆd×-Ò-Ô .Ú ˆd×.Ò.Ñ0BÔ CÚ ˆd×0Ò0Ô 1Ú ˆd×+Ò+Ô ,Ú ˆd×"Ò"Ñ$6Ô 7ò ˆd�nŠnÔ Ú ˆd×Ò×&Ò&¨UÕ 3Ú ˆd�mŠmÔ â ˆd�lŠlÔ Ú ˆd�oŠoÔ ò ˆd×ÒÔ Ú ˆd×-Ò-Ô .Ú ˆd× Ò Ô !Ú ˆd×'Ò'Ô (Ú ˆd×#Ò#Ô $Ú ˆd�nŠnÔ Ú ˆd×&Ò&Ô 'Ú ˆd×"Ò"Ô #Ú ˆd×$Ò$Ô %Ú ˆd×&Ò&Ô 'Ú ˆd×ÒÔ  Ú ˆd�nŠnÔ Ú ˆd×"Ò"Ô #Ú ˆd×#Ò#Ô $Ú ˆd×*Ò*Ô +Ú ˆd×ÒÔ Ú ˆd�nŠnÔ Ú ˆd�jŠjÔ Ú ˆd×'Ò'Ô (Ú ˆd×Ò×/Ò/Ô 0Ú ˆd×ÒÔ  Ú ˆd×#Ò#Ô $Ú ˆd×%Ò%Ô &Ú ˆd×#Ò#Ô $Ú ˆd×!Ò!Ô "Ú ˆd�jŠjÔ Ú ˆd�mŠmÔ ò ˆd�lŠl×"Ò"Ô #â ˆd×!Ò!×)Ò)Ô *ò ˆd�mŠm×#Ò#¨%Õ 0Ú ˆd�mŠm×#Ò#¨%Õ 0Ú ˆd�oŠo×%Ò%¨EÕ 2Ú ˆd×%Ò%×-Ò-°EÕ :Ú ˆd×)Ò)×1Ò1¸Õ >ò ˆd�hŠh×Ò UÕ +Ú ˆd×(Ò(©-Ô 8Ú ˆe�lŠl×$Ò$×;Ò;Ô <Ú ˆe�lŠl×$Ò$×7Ò7Ô 8Ú ˆe�lŠl×$Ò$×AÒAÔ BÚ ˆe�lŠl×$Ò$×7Ò7Ô 8ò
 ˆd×%Ò%×-Ò-°EÕ :Ú ˆd×$Ò$×,Ò,°5Õ 9ò
 ˆd×!Ò!Ô "Ú ˆd×*Ò*Ô +ò ˆd×"Ò"Ñ$6Ô 7Ú ˆd�jŠjÔ ò ˆd×;Ò;Ô <Ú ˆd�nŠnÔ Ú ˆd�oŠoÔ ñ �4—>’>×)Ò)¸tÔDô!!ó Eñ!!òJ Ø×0Ò0×8Ò8ÙØ	õò
 Ø×9Ò9×AÒAÙØ	õò
 Ø×,Ò,×4Ò4ÙØ	õò
 Ø×,Ò,×6Ò6Ø	õò Ø×5Ò5×=Ò=ÙØ	õò
 Ø×,Ò,×4Ò4ÙØ	õò
 Ø×5Ò5×=Ò=ÙØ	õò
 Ø×4Ò4×<Ò<ÙØ	õò
 Ø×=Ò=×EÒEÙØ	õò
 Ø×9Ò9×AÒAÙØ	õò
 Ø×BÒB×JÒJÙØ	õò
 ˆd×+Ò+×3Ò3±_Ô EÚ ˆd×+Ò+×5Ò5Ô 6Ú ˆd×,Ò,×4Ò4±oÔ FÚ ˆd×/Ò/×7Ò7¹Ô IÚ ˆd×0Ò0×8Ò8¹/Ô Jò ˆd×ÒÔ  Ú ˆd×$Ò$×+Ò+¸TÕ Bâ ˆd×2Ò2×:Ò:Ñ<NÔ Oñ
 �4—9’9°$Ô7ôó 8ññ* �4—:’:Óð	˜dó 	ó ñ	ó3ó
ó*ñ ˆ4Ð"×#Ò#Ù�d×*Ò*Ô+©OÔ<ñ �5—:’:Óñó ññ( �4—;’;×)Ò)¸tÔDòð
 ðð ðð ðð ðð õó Eññ0 �4×&Ò&¸DÔAö ó Bñ ñF �4×%Ò%¸4Ô@õXó AñXôvñ �E—L’L $×"4Ò"4°e×6IÒ6IÐJÓKðE˜$ð E tð E°Dð EÀUô Eó LñEñP �5—?’?Ó#õ4ó $ñ4ñ �5×#Ò#Ó$ò+ó %ñ+ñ �4×+Ò+Ó,ò+"ó -ñ+"ñ\ �4×&Ò&Ó'òó (ññ �4×/Ò/Ó0òØ59ðØBFõó 1ñôô>Kôñ@ �E—K’K §¢Ð,Ó-ðà
ðð ðð ð	ð
 ðð ôó .ñô ô.>ñ ˜tŸšÔ/Ò0BÁ5Ó0IÓJ�
ÚÒ1°!Ó4Ó5�	ÚÒ 2°1Ó 5Ó6�
ôñ" �4—>’>Ó"ð ð ¨Tð ¸$ð È4ô ó #ññ �4×%Ò%Ó&ð Øð Ø(,ð Ø59ð ØFJô ó 'ñ ñF �4×)Ò)Ó*ðØ"ðØ+/ðØ8<ðØIMôó +ññ" �5×%Ò%×-Ò-Ó.òAó /ñAñ �E—J’J §	¢	Ð*Ó+ò:ó ,ñ:ñ �4×,Ò,À$ÔGð=Øð=Ø $ð=Ø-1ð=Ø>Cô=ó Hñ=ñ �4—;’;°DÔ9õ"ó :ñ"ñJ �4—>’>°tÔ<õ#ó =ñ#ôL#÷<JôZ÷$1ñN �4—:’:°4Ô8ò
ó 9ñ
ñ �4×%Ò%¸4Ô@ò/ó Añ/ñ �4—>’>°tÔ<õó =ññ �4×)Ò)Ó*õó +ñô;ôñ. �4—?’?¸Ô=õó >ññ �>×4Ò4È$ÔOõó Pñ÷zòz !1Ø×Ò×%Ò%¸5õ!Ñ ò 0@Ø×,Ò,×4Ò4È%õ0Ñ ,ñ
 �4×,Ò,À$ÔGòó Hññ, �4×;Ò;ÐQUÔVò	Pó Wñ	Pð ò1ó ñ1ñ �4×*Ò*ÀÔEõó Fññ �4—<’<°TÔ:ö9ó ;ñ9ñð ñð ÷ò ñD �4—=’=°dÔ;ñ:À÷ :ð :ó <ñ:ñ$ �4×#Ò#¸Ô>ö3ó ?ñ3ñ �4×$Ò$¸$Ô?ö6ó @ñ6ñ �4×&Ò&¸DÔAöPó BñPñ �4×'Ò'¸TÔBñ|ÐPT÷ |ð |ó Cñ|÷~-ó -ñ` �4×*Ò*×2Ò2Ó3÷>ñ >ó 4ñ>ñ �4×1Ò1×9Ò9Ó:÷Jñ Jó ;ñJñ �4×*Ò*×2Ò2Ó3÷Iñ Ió 4ðIñ �4×1Ò1×9Ò9Ó:÷Uñ Uó ;ðUñ �4×*Ò*×2Ò2Ó3÷Sñ Só 4ñSñ �4×1Ò1×9Ò9Ó:÷	ñ 	ó ;ñ	ô7ñ �5—9’9×$Ò$Ó%òó &ñ÷,]ð ]÷@2)ð 2)ñj �4×'Ò'¸TÔBõ;ó Cñ;÷|ð ÷ð ÷ð ÷ñ@ÈDö ô<ñ!@ØIMö!@ôHHñV �5×:Ò:ÐPTÔUõ5ó Vñ5÷Dð ñ> Ø	×1Ò1Àtôòóñô$ñ< �4×/Ò/ÀTÔJõ
ó Kð
ñ �4×/Ò/ÀTÔJõ
ó Kð
ò -=Ø×)Ò)×1Ò1Øõ-Ñ )ñ �4×8Ò8ÈdÔSò[ó Tð[÷|ô8Bô&ôR2òj  0Ø×Ò×%Ò%¸5õ Ñ ñ
 �4×,Ò,Ó-òIó .ñIòX  0Ø×Ò×$Ò$¸%õ Ñ ñ
 �4×+Ò+Ó,òPó -ñPôf)ñX �4×-Ò-Ó.òVó /ñVñ �4×-Ò-Ó.òVó /ñVôCñL �4×3Ò3×;Ò;Ó<õ.ó =ñ.ñb �4—?’?¸Ô=õó >ðñ* �4—?’?¸Ô=õó >ñò, �T—_’_×,Ò,À%ÕHÚ�T—_’_×,Ò,À%ÕHÚ�T—_’_×,Ò,À%ÕHðÑ ôG#òT  0Ø×Ò×$Ò$¸%õ Ñ ñ
 �4×+Ò+ÀÔFõjó GðjòZ  0Ø×Ò×$Ò$¸%õ Ñ ñ
 �4×+Ò+ÀÔFõLó GñLô^ñ.]ØGKö]ó@#ð ÷	#ó #÷Lð ô&ñ �4—9’9Óò:¨tõ :ó ñ:ô ô4/;ôd(ôV4ñ2 �D—H’H˜eŸišiÐ(Ó)ó Tñ °5õ ó *ññ �4—=’=Ó!ó¨ñ °uõ ó "ñôð òó ñò .Ø‡H‚H×Ò°õÑ ò ' t§x¢x§¢ÈEÕRÑ Ú-Ø‡H‚H×Ò°õÑ ñ
 �4—8’8 tÕ,ò-ó -ñ-÷`$ñN �4—:’:Óò2ó ñ2ñ �4—:’:°4Ô8õó 9ñð òó ñð òó ñð òó ñô8ñD �4—8’8 tÕ,õó -ññ2 �D—H’H�:¨Õ.ò(ó /ñ(÷ð ñF �E—I’I�;¨$Õ/ò$ó 0ñ$ñ. Ø	×Ò�t—x’x—’Ð'ØØ7×DÒDôò
óñ
ñ �D—I’I˜uŸzšzÐ*°dÕ;ò$ó <ñ$÷ >ð >ñB �D—H’H˜eŸišiÐ(Ó)ò.°õ .ó *ñ.ò # 4§;¢;×#6Ò#6Ó7�Ú# D§L¢L×$8Ò$8Ó9Ñ Ú(¨×):Ò):×)BÒ)BÓCÑ Ú" 4§;¢;×#6Ò#6Ó7�Ú" 4§;¢;×#6Ò#6Ó7�ñ �4—;’;Óõó  ññ0 �4—<’<Ó õó !ññ0 �4×$Ò$Ó%òó &ññ, �4—;’;°DÔ9õó :ññ. �4—;’;°DÔ9õó :ññ. �4—9’9Óò.°õ .ó ñ.÷;ð ;ñ* �4—8’8Óõ@ó ñ@ñ
 �4—8’8°Ô6õ7ó 7ñ7ñ" �4—8’8°Ô6õ7ó 7ñ7ñ" �%—-’-Ô  ¢±	Ó!:Ô ;Ù §	¢	Ô*ª>¹%Ó+@ÓA�Ù §	¢	Ô*ª>¹%Ó+@ÓA�Ù! $§+¢+Ô.Ú‘8°5·;²;Õ?ó�ñ " $§+¢+Ô.Ú‘8°5·;²;Õ?ó�ò %¡^Ó4Ñ Ú$¡^Ó4Ñ Ú8Ñ9LÓMÑ Ú8Ñ9LÓMÑ áØ‡H‚HØØÙ ,Ø"&õ�ò ! §¢×!1Ò!1ÀuÕM�ñ �4—9’9×#Ò#¸Ô>ñ.2˜Tñ .2¡rñ .2°eô .2ó ?ñ.2ñb �4—9’9×$Ò$¸$Ô?õHó @ñHò ! §¢×!2Ò!2ÈÕN�Ú$ T§]¢]×%:Ò%:ÐPUÕVÑ Ú" 4§;¢;×#6Ò#6ÈEÕR�Ú& t§{¢{§¢ÈEÕRÑ Ú  §¢×!2Ò!2ÈÕN�ñ �4—;’;×&Ò&¸DÔAò%ó Bñ%ñ �4—;’;—?’?¸Ô=õó >ññ& �4—9’9×$Ò$¸$Ô?õj ó @ñj ñZ �4—9’9×$Ò$¸$Ô?õó @ññ  �4—=’=×(Ò(¸dÔCõó Dñ÷$÷ð ò 	# 4§:¢:Ó.�Ú& t§x¢xÓ0�Ú! $§)¢)Ó,�Ú" 4§:¢:Ó.�Ù˜$Ÿ)š)Ó$�Ú
*¨4¯<ª<Ó
8�Ú'¨¯	ª	Ó2�Ù	˜DŸKšKÓ	(�Ù˜Ÿš¨tÐSWÕX�ñ �4—<’<¨4Õ0ñE¨Qô Eó 1ñEñP �4—<’<¨4Õ0ñA¨Qô Aó 1ñAñH 5Ø×Ò× Ò ¡'°tÉ'õÑ ñ 5Ø×Ò× Ò ¡'°tÉ'õÑ ò
 ! §¢Ô *Ú   §¢Ô *Ù˜ŸšÓ"�Ù  ×!1Ò!1Ó2�Ù'¨×(?Ò(?Ó@Ñ Ù Ø×Ò±-õ�ñ   §¢Ó0�
Ù(¨×)AÒ)AÓBÑ Ù  ×!1Ò!1Ó2�Ú ˜4Ÿ;š;Ô 'Ú  §¢Ó*�Ù Ø×ÒÐ*I×*VÒ*Võáôò ˜4Ÿ:š:Ô &Ú ˜4Ÿ8š8Ô $Ú ˜4Ÿ9š9Ô %Ú   §¢Ô *Ù Ø×ÒØØØŸ*š*õ	�ñ !Ø×ÒØØØŸ*š*õ	�ñ  Ø‡O‚OØØØŸ*š*õ	�
ñ !Ø×ÒØØØŸ*š*õ	�ñ ˜TŸ\š\Ó
*�Ù
˜TŸ\š\Ó
*�Ù �$—.’.Ô !¡'Ô *Ù �$—.’.Ô !¡'Ô *Ù #ÙØ7×?Ò?Øõñ
 ˜ŸšÓ"�Ù˜ŸšÓ"�Ú'¨¯ªÓ8�
á #ÙØ7×?Ò?Øõñ �4—>’>¨TÕ2ò$ó 3ñ$ñ ˜$Ÿ)š)ÁÕL�Ù �4—9’9Ô ñ �4—<’<Ó ò
Có !ñ
Cñ �$—.’.Ô !¡#Ô &á �4—7’7°%·*²*Ö =Ù �4—7’7°%·*²*Ö =Ù �4—7’7°%·*²*Ö =Ù˜Ÿš°u·z²zÕB�Ù �4—7’7°%·*²*Ö =Ù �4—7’7°%·*²*Ö =â ˜4Ÿ9š9Ô %Ú ˜4Ÿ9š9Ô %Ú ˜4Ÿ9š9Ô %Ú ˜4Ÿ:š:Ô &Ú ˜4Ÿ9š9Ô %Ú ˜4Ÿ:š:Ô &Ú ˜4Ÿ:š:Ô &Ú ˜4Ÿ9š9Ô %Ú ˜4Ÿ:š:Ô &Ú ˜4Ÿ=š=Ô )Ú ˜4Ÿ9š9Ô %Ú ˜4Ÿ;š;Ô 'Ú ˜4Ÿ:š:Ô &Ú ˜4Ÿ:š:Ô &Ú ˜4Ÿ9š9Ô %Ú ˜4Ÿ>š>Ô *ç DÕ DôEô" %�DÚ4LØ‰dö5Ñ0‰Ñ¡ñ 	ÙÙÙ 3Ù+÷		
ð 	
ñ5ò 5MØ‰tö5Ñ0‰Ñ¡ñ 	ÙÙÙ 3Ù+÷		
ð 	
ó5ñ %ñ, .Ø×Ò×Ò™C¨TõÑ ñ 0Ø×Ò×Ò™c¨tõÑ ñ ˜4×,Ò,×3Ò3±SÀdÖ KÙ-¨d×.?Ò.?×.DÒ.DÁcÓJÑ Ù ˜4×,Ò,×3Ò3±SÔ 9Ù/°×0AÒ0A×0HÒ0HÉ#ÓNÑ Ù ˜4×,Ò,×1Ò1±3ÀDÖ IÙ ˜4×,Ò,×3Ò3±SÀdÖ KÙ ˜4×,Ò,×4Ò4±cÔ :Ù ˜4×,Ò,×4Ò4±cÔ :Ù ˜4×,Ò,×3Ò3±SÔ 9Ù ˜4×,Ò,×1Ò1±3Ô 7Ù ˜4×,Ò,×<Ò<¹cÔ BÙ-¨d×.?Ò.?×.DÒ.DÁcÓJÑ Ù ˜4×,Ò,×3Ò3±SÔ 9Ù/°×0AÒ0A×0HÒ0HÉ#ÓNÑ Ù ˜4×-Ò-©tÔ 4Ù ˜4×.Ò.±Ô 6Ù ˜4×0Ò0×5Ò5±wÔ ?Ù ˜4×0Ò0×7Ò7¹Ô AÙ ˜4×0Ò0×5Ò5±wÔ ?Ù ˜4×0Ò0×7Ò7¹Ô AÙ ˜4×2Ò2×7Ò7¹Ô AÙ ˜4×2Ò2×9Ò9¹7Ô CÙ ˜4×2Ò2×7Ò7¹Ô AÙ ˜4×2Ò2×9Ò9¹7Ô CÙ ˜4×3Ò3±ZÔ @Ù ˜4×-Ò-©tÔ 4Ù ˜4×.Ò.±Ô 6Ù)¨$×*<Ò*<¹dÓC�ô,ò Ø×Ò×Ò˜T×.Ò.×3Ò3Ñ5Eôò Ø×Ò×Ò˜t×0Ò0×7Ò7Ñ9Kôò Ø×Ò×Ò˜T×.Ò.×3Ò3Ñ5Eôò Ø×Ò×Ò˜t×0Ò0×7Ò7Ñ9Kôò Ø×Ò×Ò˜T×.Ò.×3Ò3Ñ5Eôò Ø×Ò×Ò˜t×0Ò0×7Ò7Ñ9Kôò Ø×Ò×Ò ×!3Ò!3×!;Ò!;¹\ôò Ø×Ò×!Ò!Ø×Ò× Ò Ùôò
 Ø×Ò×!Ò!Ø×Ò× Ò Ùôôò �—’™CÔ  Ú �×"Ò"¡KÔ 0Ú �×)Ò)Ñ+=Ô >Ú �×"Ò"¡KÔ 0Ú �×!Ò!¡:Ô .Ú �×*Ò*Ñ,?Ô @Ú �×"Ò"¡KÔ 0Ú �—’™CÔ  Ú �—’×!Ò!¡3Ô 'Ú �—’×&Ò&©Ô 1Ú �×"Ò"¡KÔ 0Ú �×"Ò"¡KÔ 0Ú �×!Ò!¡:Ô .Ú �×"Ò"¡KÔ 0Ú �—’™CÔ  Ú �—’™TÔ "Ú �—’¡Ô (ñ �$—,’,Ô ¡Ô ,Ù �$—/’/Ô "Ñ#5Ô 6Ù �$—+’+Ô ™zÔ *Ù �$—/’/Ô "Ñ#6Ô 7Ù �$—,’,Ô ¡Ô ,â �—’ §¢Ô -Ú �×!Ò! 4§?¢?Ô 3Ú �—’˜tŸ{š{Ô +Ú �×!Ò! 4§?¢?Ô 3Ú �—’ §¢Ô -ñ �4×+Ò+Ó,õó -ñ÷Lð Lñ* �4—=’=×$Ò$Ó%òó &ññ �4—?’?×&Ò&Ó'òó (ññ �4—>’>Ó"òó #ñôð "×'Ó'Ö)�L�F‰DáÑ)©&Ó1Ó2ñ&™Tô &ó 3ó&ñ *ñ& �5—=’=Ó!òó "ññ �4—<’<Ó ò7ó !ñ7ñ �5—9’9×+Ò+×3Ò3Ó4òó 5ññ
 �5—9’9×%Ò%×;Ò;Ó<òó =ññ �5—9’9—>’>×&Ò&×4Ò4Ó5òKó 6ñKñ �5—9’9—>’>×4Ò4×<Ò<Ó=òKó >ñKñ ˆ5�9Š9�>Š>™7×#Ò#á�u—y’y—~’~×+Ò+×3Ò3Ó4ò#ó 5ñ#ñ �5—9’9—>’>×(Ò(Ó)ðA Tô Aó *ñA÷H KÑ Jò Ñ!Ô "ñ Ð1Ó2ñSð ôSó 3ñSñ, �5—9’9×)Ò)×.Ò.ÀDÔIö/ó Jñ/ñ$ �5—9’9×)Ò)×0Ò0ÀdÔKö/ó Lñ/ñ �5—9’9×)Ò)×4Ò4È$ÔOõEó PñEñ( Ø	‡I‚I×Ò×2Ò2Èõà×Ó‘J¨TÕ2ô4ñ
 �5—9’9×)Ò)×9Ò9ÈtÔTö/ó Uñ/ò
 ‹8�÷"ð "÷L HÑ Gñ ‘<°TÔ:òqó ;ñqñh �5×*Ò*×7Ò7ÈTÔRñÀD÷ ð ó Sññ: Ð&¸DÔAö>ó Bñ>ñB �5—9’9—?’?×/Ò/×7Ò7Ó8òó 9ññ �5—9’9—?’?×.Ò.×6Ò6Ó7òó 8ññ �5—9’9×)Ò)×6Ò6ÈDÔQòh ó Rñh ÷V PÕ Oò Ô Ú Ô ñ �>×8Ò8ÈdÔSòó Tññ2 �>×0Ò0ÀdÔKò")ó Lñ")ñJ Ø	×Ò×2Ò2ÈôñØ26ñØ=>ôóñ÷F Ð ñ ‘Ô ÷÷ ð ñ × $Ó $Ô &Ù × *Ó *Ô ,Ù × 'Ó 'Ô )ð ×Òöó órm   