From d1c6625bfd12b83370cbf6428145c592dfd5c7c2 Mon Sep 17 00:00:00 2001 From: Philippe Tillet Date: Thu, 14 Jul 2022 07:22:19 +0000 Subject: [PATCH] [GH-PAGES] Updated website --- master/.buildinfo | 2 +- master/.doctrees/environment.pickle | Bin 99674 -> 104607 bytes .../getting-started/installation.doctree | Bin 5899 -> 5899 bytes .../tutorials/01-vector-add.doctree | Bin 27862 -> 27862 bytes .../tutorials/02-fused-softmax.doctree | Bin 34027 -> 34027 bytes .../03-matrix-multiplication.doctree | Bin 55894 -> 55894 bytes .../tutorials/04-low-memory-dropout.doctree | Bin 35766 -> 35766 bytes .../tutorials/05-layer-norm.doctree | Bin 34688 -> 34998 bytes .../tutorials/06-fused-attention.doctree | Bin 0 -> 37415 bytes .../tutorials/07-libdevice-function.doctree | Bin 0 -> 22463 bytes .../getting-started/tutorials/index.doctree | Bin 15854 -> 19309 bytes .../tutorials/sg_execution_times.doctree | Bin 10002 -> 12419 bytes master/.doctrees/index.doctree | Bin 9700 -> 9700 bytes .../chapter-1/introduction.doctree | Bin 33772 -> 33772 bytes .../chapter-2/related-work.doctree | Bin 62848 -> 62848 bytes .../generated/triton.Config.doctree | Bin 13752 -> 13752 bytes .../generated/triton.autotune.doctree | Bin 14198 -> 14198 bytes .../generated/triton.heuristics.doctree | Bin 6493 -> 6493 bytes .../python-api/generated/triton.jit.doctree | Bin 8169 -> 8169 bytes .../generated/triton.language.arange.doctree | Bin 6630 -> 6630 bytes .../triton.language.atomic_add.doctree | Bin 8724 -> 8724 bytes .../triton.language.atomic_and.doctree | Bin 8820 -> 8820 bytes .../triton.language.atomic_cas.doctree | Bin 8361 -> 8361 bytes .../triton.language.atomic_max.doctree | Bin 8724 -> 8724 bytes .../triton.language.atomic_min.doctree | Bin 8724 -> 8724 bytes .../triton.language.atomic_or.doctree | Bin 8795 -> 8795 bytes .../triton.language.atomic_xchg.doctree | Bin 8797 -> 8797 bytes .../triton.language.atomic_xor.doctree | Bin 8820 -> 8820 bytes .../triton.language.broadcast_to.doctree | Bin 6799 -> 6799 bytes .../generated/triton.language.cos.doctree | Bin 5106 -> 5106 bytes .../generated/triton.language.dot.doctree | Bin 7544 -> 8383 bytes .../generated/triton.language.exp.doctree | Bin 5121 -> 5121 bytes .../generated/triton.language.load.doctree | Bin 12621 -> 12621 bytes .../generated/triton.language.log.doctree | Bin 5139 -> 5139 bytes .../generated/triton.language.max.doctree | Bin 5897 -> 5897 bytes .../generated/triton.language.maximum.doctree | Bin 6388 -> 6388 bytes .../generated/triton.language.min.doctree | Bin 5897 -> 5897 bytes .../generated/triton.language.minimum.doctree | Bin 6388 -> 6388 bytes .../triton.language.multiple_of.doctree | Bin 4752 -> 4752 bytes .../triton.language.num_programs.doctree | Bin 5533 -> 5533 bytes .../triton.language.program_id.doctree | Bin 5501 -> 5501 bytes .../generated/triton.language.rand.doctree | Bin 7371 -> 7371 bytes .../generated/triton.language.randint.doctree | Bin 8016 -> 8016 bytes .../triton.language.randint4x.doctree | Bin 7601 -> 7601 bytes .../generated/triton.language.randn.doctree | Bin 7413 -> 7413 bytes .../generated/triton.language.ravel.doctree | Bin 5120 -> 5120 bytes .../generated/triton.language.reshape.doctree | Bin 6156 -> 6156 bytes .../generated/triton.language.sigmoid.doctree | Bin 5138 -> 5138 bytes .../generated/triton.language.sin.doctree | Bin 5100 -> 5100 bytes .../generated/triton.language.softmax.doctree | Bin 6288 -> 6288 bytes .../generated/triton.language.sqrt.doctree | Bin 5133 -> 5133 bytes .../generated/triton.language.store.doctree | Bin 9808 -> 10311 bytes .../generated/triton.language.sum.doctree | Bin 5885 -> 5885 bytes .../generated/triton.language.where.doctree | Bin 9863 -> 9863 bytes .../generated/triton.language.zeros.doctree | Bin 6808 -> 6808 bytes .../triton.testing.Benchmark.doctree | Bin 28729 -> 28729 bytes .../generated/triton.testing.do_bench.doctree | Bin 11700 -> 11700 bytes .../triton.testing.perf_report.doctree | Bin 5731 -> 5731 bytes master/.doctrees/python-api/triton.doctree | Bin 7801 -> 7801 bytes .../python-api/triton.language.doctree | Bin 67411 -> 67411 bytes .../python-api/triton.testing.doctree | Bin 6830 -> 6830 bytes .../07-libdevice-function.ipynb | 97 +++ .../06-fused-attention.ipynb | 54 ++ .../07-libdevice-function.py | 74 +++ .../06-fused-attention.py | 354 ++++++++++ .../tutorials_jupyter.zip | Bin 56131 -> 76009 bytes .../tutorials_python.zip | Bin 46086 -> 63011 bytes .../05-layer-norm.py | 48 +- .../05-layer-norm.ipynb | 2 +- master/_images/sphx_glr_01-vector-add_001.png | Bin 24602 -> 24638 bytes .../_images/sphx_glr_01-vector-add_thumb.png | Bin 15646 -> 15731 bytes .../_images/sphx_glr_02-fused-softmax_001.png | Bin 37562 -> 37029 bytes .../sphx_glr_02-fused-softmax_thumb.png | Bin 23943 -> 23681 bytes .../sphx_glr_03-matrix-multiplication_001.png | Bin 60831 -> 60190 bytes ...phx_glr_03-matrix-multiplication_thumb.png | Bin 34727 -> 34451 bytes master/_images/sphx_glr_05-layer-norm_001.png | Bin 36304 -> 36186 bytes .../_images/sphx_glr_05-layer-norm_thumb.png | Bin 22367 -> 22208 bytes .../sphx_glr_06-fused-attention_thumb.png | Bin 0 -> 26794 bytes .../sphx_glr_07-libdevice-function_thumb.png | Bin 0 -> 26794 bytes .../tutorials/01-vector-add.rst.txt | 4 +- .../tutorials/02-fused-softmax.rst.txt | 18 +- .../03-matrix-multiplication.rst.txt | 52 +- .../tutorials/04-low-memory-dropout.rst.txt | 2 +- .../tutorials/05-layer-norm.rst.txt | 106 +-- .../tutorials/06-fused-attention.rst.txt | 416 ++++++++++++ .../tutorials/07-libdevice-function.rst.txt | 183 +++++ .../getting-started/tutorials/index.rst.txt | 42 ++ .../tutorials/sg_execution_times.rst.txt | 16 +- .../tutorials/01-vector-add.html | 6 +- .../tutorials/02-fused-softmax.html | 20 +- .../tutorials/03-matrix-multiplication.html | 54 +- .../tutorials/04-low-memory-dropout.html | 4 +- .../tutorials/05-layer-norm.html | 110 ++-- .../tutorials/06-fused-attention.html | 623 ++++++++++++++++++ .../tutorials/07-libdevice-function.html | 357 ++++++++++ master/getting-started/tutorials/index.html | 14 + .../tutorials/sg_execution_times.html | 22 +- master/objects.inv | Bin 1932 -> 2032 bytes .../generated/triton.language.dot.html | 2 +- .../generated/triton.language.store.html | 2 +- master/python-api/triton.html | 4 +- master/searchindex.js | 2 +- v1.1.2/.buildinfo | 2 +- v1.1.2/.doctrees/environment.pickle | Bin 96550 -> 96550 bytes .../getting-started/installation.doctree | Bin 5921 -> 5921 bytes .../tutorials/01-vector-add.doctree | Bin 27844 -> 27844 bytes .../tutorials/02-fused-softmax.doctree | Bin 34296 -> 34296 bytes .../03-matrix-multiplication.doctree | Bin 56178 -> 56178 bytes .../tutorials/04-low-memory-dropout.doctree | Bin 35818 -> 35818 bytes .../tutorials/05-layer-norm.doctree | Bin 32624 -> 32624 bytes .../getting-started/tutorials/index.doctree | Bin 15302 -> 15302 bytes .../tutorials/sg_execution_times.doctree | Bin 10002 -> 10002 bytes v1.1.2/.doctrees/index.doctree | Bin 9700 -> 9700 bytes .../chapter-1/introduction.doctree | Bin 33772 -> 33772 bytes .../chapter-2/related-work.doctree | Bin 62848 -> 62848 bytes .../generated/triton.Config.doctree | Bin 12318 -> 12318 bytes .../generated/triton.autotune.doctree | Bin 12222 -> 12222 bytes .../generated/triton.heuristics.doctree | Bin 6493 -> 6493 bytes .../python-api/generated/triton.jit.doctree | Bin 8169 -> 8169 bytes .../generated/triton.language.arange.doctree | Bin 6630 -> 6630 bytes .../triton.language.atomic_add.doctree | Bin 8598 -> 8598 bytes .../triton.language.atomic_cas.doctree | Bin 8361 -> 8361 bytes .../triton.language.atomic_max.doctree | Bin 8598 -> 8598 bytes .../triton.language.atomic_min.doctree | Bin 8598 -> 8598 bytes .../triton.language.atomic_xchg.doctree | Bin 8626 -> 8626 bytes .../triton.language.broadcast_to.doctree | Bin 6793 -> 6793 bytes .../generated/triton.language.cos.doctree | Bin 5106 -> 5106 bytes .../generated/triton.language.dot.doctree | Bin 6709 -> 6709 bytes .../generated/triton.language.exp.doctree | Bin 5121 -> 5121 bytes .../generated/triton.language.load.doctree | Bin 11776 -> 11776 bytes .../generated/triton.language.log.doctree | Bin 5139 -> 5139 bytes .../generated/triton.language.max.doctree | Bin 5894 -> 5894 bytes .../generated/triton.language.maximum.doctree | Bin 6372 -> 6372 bytes .../generated/triton.language.min.doctree | Bin 5894 -> 5894 bytes .../generated/triton.language.minimum.doctree | Bin 6372 -> 6372 bytes .../triton.language.multiple_of.doctree | Bin 4752 -> 4752 bytes .../triton.language.num_programs.doctree | Bin 5533 -> 5533 bytes .../triton.language.program_id.doctree | Bin 5501 -> 5501 bytes .../generated/triton.language.rand.doctree | Bin 6236 -> 6236 bytes .../generated/triton.language.randint.doctree | Bin 6875 -> 6875 bytes .../triton.language.randint4x.doctree | Bin 6460 -> 6460 bytes .../generated/triton.language.randn.doctree | Bin 6278 -> 6278 bytes .../generated/triton.language.ravel.doctree | Bin 5107 -> 5107 bytes .../generated/triton.language.reshape.doctree | Bin 6151 -> 6151 bytes .../generated/triton.language.sigmoid.doctree | Bin 5128 -> 5128 bytes .../generated/triton.language.sin.doctree | Bin 5100 -> 5100 bytes .../generated/triton.language.softmax.doctree | Bin 5128 -> 5128 bytes .../generated/triton.language.sqrt.doctree | Bin 5133 -> 5133 bytes .../generated/triton.language.store.doctree | Bin 9802 -> 9802 bytes .../generated/triton.language.sum.doctree | Bin 5882 -> 5882 bytes .../generated/triton.language.where.doctree | Bin 9860 -> 9860 bytes .../generated/triton.language.zeros.doctree | Bin 6805 -> 6805 bytes .../triton.testing.Benchmark.doctree | Bin 28729 -> 28729 bytes .../generated/triton.testing.do_bench.doctree | Bin 11700 -> 11700 bytes .../triton.testing.perf_report.doctree | Bin 5731 -> 5731 bytes v1.1.2/.doctrees/python-api/triton.doctree | Bin 7801 -> 7801 bytes .../python-api/triton.language.doctree | Bin 61816 -> 61816 bytes .../python-api/triton.testing.doctree | Bin 6830 -> 6830 bytes .../tutorials_jupyter.zip | Bin 55197 -> 55197 bytes .../tutorials_python.zip | Bin 45219 -> 45219 bytes v1.1.2/_images/sphx_glr_01-vector-add_001.png | Bin 25352 -> 25076 bytes .../_images/sphx_glr_01-vector-add_thumb.png | Bin 15881 -> 15797 bytes .../_images/sphx_glr_02-fused-softmax_001.png | Bin 38198 -> 37651 bytes .../sphx_glr_02-fused-softmax_thumb.png | Bin 24091 -> 24086 bytes .../sphx_glr_03-matrix-multiplication_001.png | Bin 57328 -> 57624 bytes ...phx_glr_03-matrix-multiplication_thumb.png | Bin 33067 -> 33567 bytes v1.1.2/_images/sphx_glr_05-layer-norm_001.png | Bin 32989 -> 33000 bytes .../_images/sphx_glr_05-layer-norm_thumb.png | Bin 21059 -> 20947 bytes .../tutorials/01-vector-add.rst.txt | 6 +- .../tutorials/02-fused-softmax.rst.txt | 20 +- .../03-matrix-multiplication.rst.txt | 48 +- .../tutorials/05-layer-norm.rst.txt | 62 +- .../tutorials/sg_execution_times.rst.txt | 10 +- .../tutorials/01-vector-add.html | 6 +- .../tutorials/02-fused-softmax.html | 20 +- .../tutorials/03-matrix-multiplication.html | 48 +- .../tutorials/05-layer-norm.html | 62 +- .../tutorials/sg_execution_times.html | 10 +- v1.1.2/searchindex.js | 2 +- 179 files changed, 2617 insertions(+), 369 deletions(-) create mode 100644 master/.doctrees/getting-started/tutorials/06-fused-attention.doctree create mode 100644 master/.doctrees/getting-started/tutorials/07-libdevice-function.doctree create mode 100644 master/_downloads/1bc2e471d2fb0ec017c4d1d0890db4e2/07-libdevice-function.ipynb create mode 100644 master/_downloads/3176accb6c7288b0e45f41d94eebacb9/06-fused-attention.ipynb create mode 100644 master/_downloads/3ff29f967ace7985da24aab10352fc76/07-libdevice-function.py create mode 100644 master/_downloads/54a35f6ec55f9746935b9566fb6bb1df/06-fused-attention.py create mode 100644 master/_images/sphx_glr_06-fused-attention_thumb.png create mode 100644 master/_images/sphx_glr_07-libdevice-function_thumb.png create mode 100644 master/_sources/getting-started/tutorials/06-fused-attention.rst.txt create mode 100644 master/_sources/getting-started/tutorials/07-libdevice-function.rst.txt create mode 100644 master/getting-started/tutorials/06-fused-attention.html create mode 100644 master/getting-started/tutorials/07-libdevice-function.html diff --git a/master/.buildinfo b/master/.buildinfo index 089f93c02..9e27b9682 100644 --- a/master/.buildinfo +++ b/master/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: 255e5b7e27427f0ab6fda308ee6aef63 +config: 8d52c5eda79abb41e578ed40b306519c tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/master/.doctrees/environment.pickle b/master/.doctrees/environment.pickle index 9b5c9c2d3e6d78d2f9b77b47471031d7f22ead3f..228c82170ff9b2744f8a0748341bc76d69474a50 100644 GIT binary patch literal 104607 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®c3nPhemyA&&CNeZ3PN%7z_N1FKW%odX#cyz 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 literal 99674 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 P6J{Q<)jGYI9r*tM*847q diff --git a/master/.doctrees/getting-started/installation.doctree b/master/.doctrees/getting-started/installation.doctree index 6190cd7e29770d8fa3ef54624f147d5da99850f3..27f8fc457938da3385212807a99e5d5ea9a6f7d0 100644 GIT binary patch delta 62 zcmeCy>(<*4$Y>a!lATtNnVhL_nq**NY;2g4Vw9Q&B#hHcOw3I!jEv3A4AT-V%}rBM Q%?uJv4NW#TF?Naq0ABDCaR2}S delta 62 zcmeCy>(<*4$Y^L$nUrRfnpLiEVQyk*oRn;7WNKuTW@wUt<8 diff --git a/master/.doctrees/getting-started/tutorials/01-vector-add.doctree b/master/.doctrees/getting-started/tutorials/01-vector-add.doctree index 62d77901f5df7f95afd0dfd6a82356c8cfc79953..3b3a60da3121016e8816bfa8646c71c81dd3801f 100644 GIT binary patch delta 130 zcmcb1lkwV3#trt2hVd!cX$6_dnfj(l1}4VFhAAmVscAsMIL*Yw+|k-_AP!N+0Dc_GSB K=H}xe{1O10P$%91 delta 130 zcmcb1lkwV3#trt2h8C4cX-278<@y%pCWgjI$(BZ@Mn-9dCMk&~7G?&CDM_XVW{DO+ zakFI8RO3Vo%gqIhg}xjXCVB=Su=%CmVJ2i=7UN{O;I(YVCVCb|mXj|AABQpLg(yRr Kn~#U^O8@|aJ}316 diff --git a/master/.doctrees/getting-started/tutorials/02-fused-softmax.doctree b/master/.doctrees/getting-started/tutorials/02-fused-softmax.doctree index 72c82fd7da396f8b57856434285d7304d72a6137..2fd1643eac5d0fbb5c0ac462fbf99b152fcd25ed 100644 GIT binary patch delta 411 zcmd5$JxYT?5G4UWVh#{(lm%;dXLe?HcChdwqJBU5AcVw#oi|7)tc{gd5WWL=5i1d! zRJK;Gpm*@isSwiw85&K#tbn^&x zKpr-u_lp@vi$ug?jKNewDkJ%*KAoTyAOXowm&elx(I(`=d{^I0$R<)%pFiuz3N#9) zeBZdU6gaU=HI{2WFk3JtAz1anOIiMa(OVTnEuBGC3+PEh{%Tx>Q2;o*_AozO-~P|< b2G_prSL7`u%?GQOKl{2m`L)B|`eXJDr+{bk delta 411 zcmd6hF-k*05Qa&>N6Y~d8|8tu`*vn$W@oVQA|l!Mk`zLsU?F;gbi&$Lc?IDez>8Rk z*rc+xaszq?|LXf^;Q#;aX1Lu9U(N=gckL1vm$!{Zg3xw`jJO1vCsOfg-m;gZ{`ciU7bq>*#e9puN^&Hr52 aH{JVw1?qg1JYBv1;oIu?7yG^S=i~=d4rki{ diff --git a/master/.doctrees/getting-started/tutorials/03-matrix-multiplication.doctree b/master/.doctrees/getting-started/tutorials/03-matrix-multiplication.doctree index 52d467dbbb8d10d4c79f50ccec7fc1e2ff35afdf..405936c08f187192200cdd51723074c4c2defe33 100644 GIT binary patch delta 2008 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 delta 2774 zcmeHI&ud*p6z0A*CcT(nZHbk<>a=OKc?sjpnO|p$rN*5~)Rj;{;U#&ssc915YY4UI zs~cM=TI?VdK~V7@kPCGoQpJTRxN|F6E4XsgrQh5d5v(ABxXE02cYd66zVCeJ%zZcC zX?#AU$2aXq-FD#s<&e_dJI9P2K79%;L)7mbzEqm2oT5!s@8T)?GbxfOM zwO(uu6_lPWRYBDo0Pq+< zBt{j5u;gn}j!LXx?+s=9psZARP`39n`lx-j*G3u_LiA~Cd)d!wD6rF(YXuaXO;A)bH8Ntb zFE#u{1naDZLr@p+pmbJYo^5IXr~zrAo`&2gm95ow9*U8&1~yhPeA&4=KFPE`G0~6G zqm(r~B+P6h{0(bqt@FW`1XPW#KotOQyhJY1)!{&$yyk2ljMOGOl!SiKIs{+a6KDkt z_*$)`Mc;&6$PlFCp#4!Q32RM+(qsS)4H$W30BvR9+;^#UUsE{gLsYpubtF}$tET=Dy zPVSnYF4K?GbLntPr}vv<>7^E>u_F_y!uzMziPV~TH2v_^F6}=92^1;iU?rLWx-S)pW45g3U|F*uR_>c8J zy!77iJ@{+%R;Mpt`DT0iR(EQ9db9gnaU~7+ZWULn?|aYh8oW`QnK;`ou3tWq#)bwO z^Eawfn@=!-@%YI^gE F`VAssZS?>E diff --git a/master/.doctrees/getting-started/tutorials/06-fused-attention.doctree b/master/.doctrees/getting-started/tutorials/06-fused-attention.doctree new file mode 100644 index 0000000000000000000000000000000000000000..a19207450aa1e7d72e36767c518dc675e5346ba7 GIT binary patch literal 37415 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 m>dSz2)6B4HlZ2+fHB?RRanzg<5dPyA1*(HkF z6arEo)a}n*h-d={mA8aMWl1h>)QC@C8Vyi2fj8?z(nj$G_~y%-p&6 zo;i2s?EU@NZ!Z($bHUeOu#b3jJuFu}qRE4YMST&o{a+6Tl(+*GV z-1*=Z+@p%5&P83BbW)QpE^E@O@;GZSET~eqbXMYJA2p;NsaLW_PN`Apb^D68tl1!0O-My5-IdLZPMajtU^iw6>5*_}Q@?F0|Un19TN+ z&_pY^8XDV9-7ZCqijo-%uuRjtNyUS3xS_oc zy&e{Bw1vs@z_$mBuVj^Yh;1@++$u9BAJTD}ZSurUnBA-yxG0a)u z7gLJFE0V}B2y-GIo1e?5ihwRYsw#XO#yZFTSNy`AJIJN-Jpk3F8VWhf6;OQ^nQjQE zo~PfCFslsllchrSf>5zLYUKhI?RHCLFqQ~2-9zD82^)u%)cVzCwO-j!>l&^IQFeQJde;71idtu1%QWciXEIu%2phu2GeIO*4z)L<^Z$ zi!-E)6TSJOI9GLX{#$;O*QhvCy|oV9EX+<0mTmj%E>WB&4(2)zK)rpM>F3~&&QbCX zebsx+wRC^6q5i zE+w)HrraTBrGm_fBAK&D#tMBNACu(ZF;93iuTLqFV;j8CTtr?rAYO;5%ngFxM;mTi zL3%itnSQYLw2=>B-TNZ*IS1mv408>EtnkaglcoX|z{^)Ti1^;?`i@%Ig6ebiSur7I z#dJ)JYY|e6X!egaenFR?U=ER3C|CmIGXVc8bBoJ60%3;fG3Mt&Z?g~I!jLZcFFMIL zarhC3ALyXwOljHT0t9eGb={;a>V{0e!*ZD delta 670 zcmaDmjqzPIYXj@l$F>_;-5CunDwEQTQnSkSEzC^}jgyisjZBS<(hN;f5=|`33=&h4 zObyHuEr8-?$)>5si58ZdYZ-ghCzqPVPF|?#z*sxkKvsIQp7}yXCKKk#7cFKpSu;=0 zv(x}lGc096)OO1#M)%1MI^vTxt)w|!nHd-|6tbL{Cx4Vtn4}=epTX9{UX+?vQdy8X zB`c75@iWy27^4{G*#kL^Da+5h&cvwMPOQ2yQlWVLU1dJhunF6WOq%5EV z&REaUD+UR&$4<#|1Tr)mr_@f-$Y9Nai@KqT0-dKkImbdnU`p#0sM-uRpe5DlF0R1t z;#QE0t~K!ZvVjt6lIp^g`woMWfM3HQL{g?16#P@VzMg_8xC z)F#U-N^&-5C}gOXCS^2D4)l_koMNBFw3B)A1^Wc1y&!YtCkHyjaP9{ASRrdW^W<#~ zE1AwQPfm1{WCHSP936OO04277Sr{0+Sts*)?PYA3Z0I1*S(+i2VFh$qEs&=$S=d{jshVZ7 Hi?=2Kt0c&9 diff --git a/master/.doctrees/getting-started/tutorials/sg_execution_times.doctree b/master/.doctrees/getting-started/tutorials/sg_execution_times.doctree index 34eeecbd34f4d94f59027db83ce0206e34a48137..2740ae7118e8dbdfab37fa939a499b5add17bb38 100644 GIT binary patch delta 1259 zcmZvb-)qxQ6vvyJw9>L)j@6~v+SReuwYu&mX__X8ZX!$_>`6iV!P>1UY2E5%t+pkKW38 z=e-Yaz*X-Q#gFB$6sC(4#Q|v?rbLm?=LM~RA7UYulBJ9w%4xokQ)DTxrD0CuQ|2=& zKm{@?RFa~oBob(n=FlcM+2Mo?ecxq6A6WA9wU`O%vX7HhUQA{Lc?ZMoh`H|1Gpr~i zB}s6oq}mZP)wF0)m{A-m5{e_{R_hGIN-zlp=ulp@Bj#B9J&Kq6CyV2G?Rs%S>n~Kx z6P4oCa&me$8|}+xp&LZu(1|uz@Ug88-3dW=_&)T_9c*yJvYQ+kBD*~`>pqIou@#gc zzn$fWP=zpwBW8DJnnK?LN6>5bEjUV}yP>n-7>%B^s6eGrE)YTYgDf~jqq&9ww7{MA z9nhntG>ta7PJmy(xl3S-x^YmppAu_=5OT#MO;4 z0CAV5E?ApIkn4Q0rX!IZjnV?`@!;Bd(#w{atCJb@KeqWJhZ{S5sQDaqak(XNIE|f~ z(enMdN<}O0GH?&U?zL0Lanb(02>aLYlJv7rG=u*5dV2SyVPBm2bsrx7mA%&uXRq(9 zy;7FKAy`bcv)-V z;w7Gec-fA}d0{Vkb(fb=uKNQmFGEqwVTmLxT70ysx01^Y g>%BPDTAAW;}k^lez delta 403 zcmZopoaD#az&e#(eIsiwqoGA*Qkqd}R=K`~xrw21QnICysgY5dp-D=jiG`U#VoH*! zfmxyjP~0rpG}SoK!gBLsMlMD!Gb=*_JyT0dEv?Bp%uOB=vMHt*m}VUaL0(K9nKM3#k!Y&PNRV39Di&@(VML&zFi zK}0rR5h`YpFgDS%FtS9*8d^a_Hph$iGEQDEJ9~1wqydl?pZs5*fAU?)Q(*Q!DVNDd zt*_SLVqdb%iBBLLFccztRk$+9?_tvKgvC$;~o)M;IBePi|CDX0^&t$hrb#$xqfW NFkrgGJUPlh698RMabo}g diff --git a/master/.doctrees/index.doctree b/master/.doctrees/index.doctree index abcb3bfaaec58893814d92e5032aa956d48c3b33..b0b8ae7db865947f955537ee2e547811655b51dc 100644 GIT binary patch delta 62 zcmaFj{lt4iJ)>cKN_JX7W^$&!X_A47v9V!FicxABkT6a&F)=r_FfukbGfYdgG&fC2 QH8V&wH8k10fzd<-0HIA2a{vGU delta 62 zcmaFj{lt4iJ)@yTWm1|^YF4?vg}I5LaZ<9Sk*SeUnxRQbqKSo>L1IdhsexId1yI~9 Q*)-KS(ZX``21XMV0F43@UjP6A diff --git a/master/.doctrees/programming-guide/chapter-1/introduction.doctree b/master/.doctrees/programming-guide/chapter-1/introduction.doctree index 8828c92c62f0d07083ea0a761e69fea3bd3c61b8..e6fafc875a45733f7b62f67b229adcbe1ac334a2 100644 GIT binary patch delta 74 zcmaFU&h)08X+t2Rd3;KCT0v%VroL&Cfr+uPVM>ZoY8sF*PBSqvH?=S_Ha9a&OSCjM cO-VH~NHjGx(ND=wF4mv?+eT*d5=M_E0Gpo}DgXcg delta 74 zcmaFU&h)08X+t2RxkY7Cno(+2xxR(DiJ@^)vZax!kx`nVNlK!Lg_%KON|LF8S)v6{ c+$`BN)i}|@Qa>d>xmbVlZyTA-OBg+x0EUbh761SM diff --git a/master/.doctrees/programming-guide/chapter-2/related-work.doctree b/master/.doctrees/programming-guide/chapter-2/related-work.doctree index 14fe225048cef4eaa98b7abb4b1fab033e1af7cf..bfc855a8e7edbe2d57e9dfa9d5385b38a8f176a5 100644 GIT binary patch delta 74 zcmZp8&D`*sc|#zhd3;KCT0v%VroL&Cfr+uPVM>ZoY8sF*PBSqvH?=S_Ha9a&OSCjM cO-VH~NHjGx(ND=wF4mvyuOPE|3FDp50FqG{SpWb4 delta 74 zcmZp8&D`*sc|#zhxkY7Cno(+2xxR(DiJ@^)vZax!kx`nVNlK!Lg_%KON|LF8S)v6{ d+$`BN)i}|@Qa>d>xmbU)zkC5(4I0|0$K7)1a8 diff --git a/master/.doctrees/python-api/generated/triton.Config.doctree b/master/.doctrees/python-api/generated/triton.Config.doctree index af4eee914ca72744d6cb2815f55109c4702dae3a..840d9931627860ce67b13740b504ef079f80442e 100644 GIT binary patch delta 408 zcmdmyy(4==Fr#67N_JX7W^$&!X_A47v9V!FicxABkT6a&F)=r_FfukbGfYdgG&fC2 zH8V&wH8h#btFE(o1LHa}v~KQacIP0&#(rkU%^p0SWY{r+HKC1D<;Fi Rn|amGGm~!PW?t>pTmZqdcU1rY delta 408 zcmdmyy(4==Fr%SGWm1|^YF4?vg}I5LaZ<9Sk*SeUnxRQbqKSo>L1IdhsexId1yI~9 z*)-KS(ZX^vue#3W4UFr^(7L&w*`0$78~d3ZH+%4Sl40XykXB~C@BC!hYPUI4u9yr5 SZ{}4$&rG_Fn|ZZYa{&O=OLoZs diff --git a/master/.doctrees/python-api/generated/triton.autotune.doctree b/master/.doctrees/python-api/generated/triton.autotune.doctree index 961b39c5721cea22010d8afe9a851531b9955bdb..14759549924e885f63087b0533ce803a4739d421 100644 GIT binary patch delta 176 zcmeyC_bqQjIHO^FN_JX7W^$&!X_A47v9V!FicxABkT6a&F)=r_FfukbGfYdgG&fC2 iH8V&wH8k1W!N|%)hPHjomK>yOo4k+Nd2==ow>ALBtTZ?P delta 176 zcmeyC_bqQjIHRFOWm1|^YF4?vg}I5LaZ<9Sk*SeUnxRQbqKSo>L1IdhsexId1yI~9 i*)-KS(ZX_b2O}#J8QS(STXK-DZSp>5=grwX+}Z$q_cQze diff --git a/master/.doctrees/python-api/generated/triton.heuristics.doctree b/master/.doctrees/python-api/generated/triton.heuristics.doctree index 95f4939bd13211378b5a8db92b239383a7f6a313..e13bad010b4b82b820c1bc71d990dfca8f67c2b5 100644 GIT binary patch delta 175 zcmca>bk}G@G^1gBN_JX7W^$&!X_A47v9V!FicxABkT6a&F)=r_FfukbGfYdgG&fC2 gH8V&wH8h#r!+4bpU1BWWo9{AlkYV9wF&1}G0Da#xQ~&?~ delta 175 zcmca>bk}G@G^3$KWm1|^YF4?vg}I5LaZ<9Sk*SeUnxRQbqKSo>L1IdhsexId1yI~9 g*)-KS(ZX_a593ubbcwNeZ@$aKL578!#aP@$0W*#>7ytkO diff --git a/master/.doctrees/python-api/generated/triton.jit.doctree b/master/.doctrees/python-api/generated/triton.jit.doctree index e28f973b0de3f921a29b3760a20bc52cf0c58ebf..c585e964269cfb4e8cd577fe5920459b83a3fd11 100644 GIT binary patch delta 176 zcmaE9|I&VgFQZ|6N_JX7W^$&!X_A47v9V!FicxABkT6a&F)=r_FfukbGfYdgG&fC2 hH8V&wH8j~=$9R$qZIkOc>^5&>p20$fjrAN^;sDL1IdhsexId1yI~9 i*)-KS(ZX_b9pgzdv`wz(u-m+ic?Js^Hr8`wi30$Xjx?eG diff --git a/master/.doctrees/python-api/generated/triton.language.arange.doctree b/master/.doctrees/python-api/generated/triton.language.arange.doctree index f6e0c711e7e8539ee0cede090dd3c85cd088a6e8..328bffa1766828ab42b12038011a592689309b1b 100644 GIT binary patch delta 176 zcmaE6{LFYmDx+b1N_JX7W^$&!X_A47v9V!FicxABkT6a&F)=r_FfukbGfYdgG&fC2 hH8V&wH8j~gjqyJj+9p?VdT$nFv0x>`#wyMn0RY7;G$Q~2 delta 176 zcmaE6{LFYmDx;xAWm1|^YF4?vg}I5LaZ<9Sk*SeUnxRQbqKSo>L1IdhsexId1yI~9 h*)-KS(ZX``G{*mAXq#Nc>AhKy#e$U#8>={T1OR%+Gv@#R diff --git a/master/.doctrees/python-api/generated/triton.language.atomic_add.doctree b/master/.doctrees/python-api/generated/triton.language.atomic_add.doctree index aed2fb8936a85fb8b05b762bb3322b0c93437477..d20fcb9f864adae3848c3285c1d94470cbd92491 100644 GIT binary patch delta 176 zcmbQ@GR0*>H=|*EN_JX7W^$&!X_A47v9V!FicxABkT6a&F)=r_FfukbGfYdgG&fC2 iH8V&wH8k10hf#)!3~ih&yVywAHkp&ff3q|9MKJ(7D>F&} delta 176 zcmbQ@GR0*>H>06NWm1|^YF4?vg}I5LaZ<9Sk*SeUnxRQbqKSo>L1IdhsexId1yI~9 i*)-KS(ZX``9!41^GPH5B>|!Hb+hk4_|IN06NWm1|^YF4?vg}I5LaZ<9Sk*SeUnxRQbqKSo>L1IdhsexId1yI~9 j*)-KS(ZX``9!41^(zQ+I;r8Dg!P3k|y4KA++!^8kZ+A0M diff --git a/master/.doctrees/python-api/generated/triton.language.atomic_cas.doctree b/master/.doctrees/python-api/generated/triton.language.atomic_cas.doctree index 109a816082193c245762e861dbaab416e72e4e03..bffe0c6e713f5ccdc206505c399f48269417841a 100644 GIT binary patch delta 176 zcmZ4KxYBV$H=|*EN_JX7W^$&!X_A47v9V!FicxABkT6a&F)=r_FfukbGfYdgG&fC2 jH8V&wH8k10hf$1)bZwIbxcoN06NWm1|^YF4?vg}I5LaZ<9Sk*SeUnxRQbqKSo>L1IdhsexId1yI~9 j*)-KS(ZX``9!4=H(zQ(%;PT%b#L~-3y4KACTrC diff --git a/master/.doctrees/python-api/generated/triton.language.atomic_max.doctree b/master/.doctrees/python-api/generated/triton.language.atomic_max.doctree index c96c0b82fd0b7e8e446b5db7d5784eb18feddf80..a4704bc1e70783b69dfaf950a45d6f06cc3cbbee 100644 GIT binary patch delta 176 zcmbQ@GR0*>H=|*EN_JX7W^$&!X_A47v9V!FicxABkT6a&F)=r_FfukbGfYdgG&fC2 iH8V&wH8k10hf#)!3~ih&yVywAHkp&ff3q|9MKJ(7D>F&} delta 176 zcmbQ@GR0*>H>06NWm1|^YF4?vg}I5LaZ<9Sk*SeUnxRQbqKSo>L1IdhsexId1yI~9 i*)-KS(ZX``9!41^GPH5B>|!Hb+hk4_|INH=|*EN_JX7W^$&!X_A47v9V!FicxABkT6a&F)=r_FfukbGfYdgG&fC2 iH8V&wH8k10hf#)!3~ih&yVywAHkp&ff3q|9MKJ(7D>F&} delta 176 zcmbQ@GR0*>H>06NWm1|^YF4?vg}I5LaZ<9Sk*SeUnxRQbqKSo>L1IdhsexId1yI~9 i*)-KS(ZX``9!41^GPH5B>|!Hb+hk4_|INL1IdhsexId1yI~9 k*)-KS(ZX``PDTkP(zQ+g&*ir{fTfO&bgi5JbH#`Q0E8qo-v9sr diff --git a/master/.doctrees/python-api/generated/triton.language.atomic_xchg.doctree b/master/.doctrees/python-api/generated/triton.language.atomic_xchg.doctree index 64d5a08470d00354ddd46098b973059d5d752271..95149aa002409cf8d0fe7f878100c2b9c82ae8fd 100644 GIT binary patch delta 175 zcmccXa@S=;AERM>N_JX7W^$&!X_A47v9V!FicxABkT6a&F)=r_FfukbGfYdgG&fC2 hH8V&wH8k10pHYE{3~d4|XV^&BHd%lrU~w$BH~@9JGeH0V delta 175 zcmccXa@S=;AETi~Wm1|^YF4?vg}I5LaZ<9Sk*SeUnxRQbqKSo>L1IdhsexId1yI~9 h*)-KS(ZX``entf*GPDV>oM9tf+hhTjfW@)g;s7f_GX($u diff --git a/master/.doctrees/python-api/generated/triton.language.atomic_xor.doctree b/master/.doctrees/python-api/generated/triton.language.atomic_xor.doctree index 9dbf4a3c896f9e84fbf0be423ec7b9b403e61fc5..ae15a586d05727394182ea15150f6b7881c9a597 100644 GIT binary patch delta 176 zcmez3^2KFCH=|*EN_JX7W^$&!X_A47v9V!FicxABkT6a&F)=r_FfukbGfYdgG&fC2 jH8V&wH8k10hf#)!bZwJ)xcxUrur#xgu5~jHcZN6sx!g02 delta 176 zcmez3^2KFCH>06NWm1|^YF4?vg}I5LaZ<9Sk*SeUnxRQbqKSo>L1IdhsexId1yI~9 j*)-KS(ZX``9!41^(zQ+I;r8Dg!P3k|y4KA++!^8kZ+A0M diff --git a/master/.doctrees/python-api/generated/triton.language.broadcast_to.doctree b/master/.doctrees/python-api/generated/triton.language.broadcast_to.doctree index 93997177745bf3ae2caf0ebe4e78285c3d47838d..358ab043e955809ae8cbeb269c470c5533e66cf0 100644 GIT binary patch delta 176 zcmeA-?Kj;pk7#V9omNEoM?n3$Vd7#W+J8Kxy#nwzGi jni(XT8k%fA#3;!`y0*#soPnETSr)R8u646MXM!LAF+4K` delta 176 zcmeA-?Kj;pkDngia|UjXWm(8Vy4KD5oC$&e=EyS1 diff --git a/master/.doctrees/python-api/generated/triton.language.cos.doctree b/master/.doctrees/python-api/generated/triton.language.cos.doctree index 49eb4707bafb578de72f2300511ce98f33bcff62..504e5e619d014a6cba78f2e226aaba7102e541d6 100644 GIT binary patch delta 176 zcmeyQ{z-j9JfmTJN_JX7W^$&!X_A47v9V!FicxABkT6a&F)=r_FfukbGfYdgG&fC2 iH8V&wH8j~gf$L1IdhsexId1yI~9 i*)-KS(ZX``1jbk7Xj{#EgPC;OCa-4p*!+k68#e%|&o(Lm diff --git a/master/.doctrees/python-api/generated/triton.language.dot.doctree b/master/.doctrees/python-api/generated/triton.language.dot.doctree index 3870262c661b2b562d7064a43b19edf65dec8ab0..ae6f8e68ac678319d65f735b23600df0bc51685b 100644 GIT binary patch delta 1604 zcmb7ESx8h-817uXvowxl&Vo5Emn@rdz?sx6D`hmUKgGC*iKxwnVZ!+Fjca3Dwutg=4Wr@dOTaiTe7+h9!&Y8W)EX^3ukJSbT9v zZV1H_5RNRCS9l~|t-Tza;1^YU1 z<=?JZ@$XF8=lOd`qjQoNm0CO00NuM_K;4J4s924#7NEWy2E}sEEouueLmGlj*28dB zbTk`%ja5z8H)0kWJQ4MvYEV-P_0#w8S)4D9Wg_$eytd43|B;Evw1P{MI#fCbpQkdN zi&Hf|fetl87t;G!$16s1iOeVV2iJUc#U?NXB5Lrwm4|F1`?GwX_PXf`?C9 zymnSfX3Q|;R0%A|zgJAD!OR?i<<*(j-{A?G;6DWN;CELlv zg;&GZnS#g^=EiuTB- z!EWkRLs01~B}35U+=$~*97kcG&<)?5CAJYWrMbA=HiQ7>K7*d(wYV1pg&y(>LM~6p z%+lg`7KNZRzKiUw(Zi_52`)N)@TG7e`8nQXoT|m;M;&L}vnzE%Y$!@^4#0$-{0Ook zxZvu*%wMjcooN>N*)?v*yem56Wu5UVPUeZjLcB-1Lz$x8BnzL4YK5Qx;i8HvHjJ5v z*drV@zu04Zo9I+P0LeL9z-gItgCij5c3=`NXr*tBh9}7#bq|Lko)M{ zJZ+U}tDgRst(&kAT`-&JDl}VtY}%gHIVIX<@hN2Agq?DjE#a)YM9T3_={~OIg}ak` z@!M51)AWBHcXE!++yJ~yRklkg4TWCRPU?9bC|cx*4hFTzK^;W-eu_*+1Y5n$(jC;K zSo@J74SUeRqaCXFdS|A^@wB%e~^%IP;VH{G5y;t5I=Q%0-VKN?QOHm1b MP;59GENdZu0Q6n&Q2+n{ delta 1058 zcmb7?Ur1AN6vy|wYkD``b~m>&Y z+nVjseCV}p2KB_3l5`@0kAWURYC5vTe7R7~tm z#0N_cksEp1(wSWQwS{ax7ZEZ!EH1(p^L77b@Wonowp9C+T(%Vi_wAFgRr3OfLxA<# z<
B4RDbV!=Ev!?5)ra9sVVJnqE1xVd<{D>t82zkOeZ&L4A4AnN)XBW%ql@gHb$ zzG2?wv zyy{Au-Vlx3-dP$~gOM7FfhQxzz1-mwy76&+uaorGVa&uexOP^iAYL`xI&hvAplmzJ zkoQJwoj|5(@*cTNBi=z@Rf zd{bB8Nu}MSV}T!jAJX`ma14~sb74$=>QsuP-eR^xb4hH{(jo>+9lCfBdwV5QzEoDWSOsPjUElMfl vT=F+PW>BH@l7DJFe1%rYG!0VGzL1y~RgFa72vG}D5*FxlA=4$P8@@i&}&D7L1IdhsexId1yI~9 h*)-KS(ZX`_B*uHB>)O1KX$v`)EoAcFe3hj_2LP1zHE{p{ diff --git a/master/.doctrees/python-api/generated/triton.language.log.doctree b/master/.doctrees/python-api/generated/triton.language.log.doctree index d0fd10524a4a5f283539a278ae167af11f45d194..d53a32dd4fc96521df5c1e1fbc0dcccd3ee7e0a9 100644 GIT binary patch delta 176 zcmbQNFL1IdhsexId1yI~9 i*)-KS(ZX``1jbk7Xj{$vlbLkeCa-4p*euKOjT-(tv2&uAE*lATtNnVhL_nq**NY;2g4Vw9Q&B#hHcOw3I!jEv3A4AT-V%}rBM h%?uJv4NW#rVEjUcw#kK@9-IF%JF}8uV(tv2&uC~-nUrRfnpLiEVQyk*oRn;7WNKuTW@wUucmW>sG!_5= diff --git a/master/.doctrees/python-api/generated/triton.language.maximum.doctree b/master/.doctrees/python-api/generated/triton.language.maximum.doctree index cc7f889466efe6e423cc81ae277c35b12cf4b166..7c78bb4a84bf3bc23aaa388fc332b885b6617d9e 100644 GIT binary patch delta 176 zcmexj_{DHTI-_BHN_JX7W^$&!X_A47v9V!FicxABkT6a&F)=r_FfukbGfYdgG&fC2 hH8V&wH8j~ggYh>R+9u0#x^L!YdB{SBjk28A`2pdZG>HHJ delta 176 zcmexj_{DHTI-{XQWm1|^YF4?vg}I5LaZ<9Sk*SeUnxRQbqKSo>L1IdhsexId1yI~9 i*)-KS(ZX``494GNXqzm{>Asnp(tv2&uAE*lATtNnVhL_nq**NY;2g4Vw9Q&B#hHcOw3I!jEv3A4AT-V%}rBM h%?uJv4NW#rVEjUcw#kK@9-IF%JF}8uV(tv2&uC~-nUrRfnpLiEVQyk*oRn;7WNKuTW@wUucmW>sG!_5= diff --git a/master/.doctrees/python-api/generated/triton.language.minimum.doctree b/master/.doctrees/python-api/generated/triton.language.minimum.doctree index 7a181d868dab6c4c129bef5ec3c826ca6b218b00..ebbf565bae86227d780d4ad3648ad51c5f7d9cf4 100644 GIT binary patch delta 176 zcmexj_{DHTI-_BHN_JX7W^$&!X_A47v9V!FicxABkT6a&F)=r_FfukbGfYdgG&fC2 hH8V&wH8j~ggYh>R+9u0#x^L!YdB{SBjk28A`2pdZG>HHJ delta 176 zcmexj_{DHTI-{XQWm1|^YF4?vg}I5LaZ<9Sk*SeUnxRQbqKSo>L1IdhsexId1yI~9 i*)-KS(ZX``494GNXqzm{>AsnpN_JX7W^$&!X_A47v9V!FicxABkT6a&F)=r_FfukbGfYdgG&fC2 gH8V&wH8h#LpYbypx_Vi{Hd`_)lVRcJUKVCP088#ON&o-= delta 175 zcmbQBIze?qAETi~Wm1|^YF4?vg}I5LaZ<9Sk*SeUnxRQbqKSo>L1IdhsexId1yI~9 g*)-KS(ZX`_e#Xya=;~z&+ic0KOooMW|)>}X>OX5 kYG#mVYG|_g5ThUy>Dngm<_O#z%3{hwy4KCRIUex<06wNPBme*a delta 176 zcmbQMJy(0fL`Fl4%A_=-)U0xS3v&}g@D2piz=~_4M=6J*d0Q535=l}o! diff --git a/master/.doctrees/python-api/generated/triton.language.program_id.doctree b/master/.doctrees/python-api/generated/triton.language.program_id.doctree index 0b28f85ff8b371f4051b74f7547f6b7b1c6ccecd..703f5d0beef64755a10f2cf538b7800e6479dd52 100644 GIT binary patch delta 176 zcmeyX^;c^{H=|*EN_JX7W^$&!X_A47v9V!FicxABkT6a&F)=r_FfukbGfYdgG&fC2 jH8V&wH8k10hmn(sbZwIta`06NWm1|^YF4?vg}I5LaZ<9Sk*SeUnxRQbqKSo>L1IdhsexId1yI~9 k*)-KS(ZX``9!5?k(zQ)q$l<@)l|`F{bgi2ga@^qo0A7JKJOBUy diff --git a/master/.doctrees/python-api/generated/triton.language.rand.doctree b/master/.doctrees/python-api/generated/triton.language.rand.doctree index 6232ace14469fe710592862306125d246d2fffd2..a73f482fb23192fb355d5781427937505245a004 100644 GIT binary patch delta 176 zcmX?YdD?PABBNn^N_JX7W^$&!X_A47v9V!FicxABkT6a&F)=r_FfukbGfYdgG&fC2 iH8V&wH8j~giBXM-3~eu&Pjiv3ZSqTIx6Ru83wQyJYBbaU delta 176 zcmX?YdD?PABBP;2Wm1|^YF4?vg}I5LaZ<9Sk*SeUnxRQbqKSo>L1IdhsexId1yI~9 j*)-KS(ZX``Bt|tRGPJ#9KFvkCw#hG<-8O6UFW?0LL$x%R diff --git a/master/.doctrees/python-api/generated/triton.language.randint.doctree b/master/.doctrees/python-api/generated/triton.language.randint.doctree index 27d4373a6a996ae2af3a906003d37b826c963f10..9c82149530ddc5494b0d28ff0b6f8dc7b0e44cff 100644 GIT binary patch delta 176 zcmca$cfoE$I-_BHN_JX7W^$&!X_A47v9V!FicxABkT6a&F)=r_FfukbGfYdgG&fC2 jH8V&wH8j~ggVBhIbZwIx`8+qfu<&q^u61)G-+2K5Vo)>6 delta 176 zcmca$cfoE$I-{XQWm1|^YF4?vg}I5LaZ<9Sk*SeUnxRQbqKSo>L1IdhsexId1yI~9 j*)-KS(ZX``3`Qd+(zQ))Q diff --git a/master/.doctrees/python-api/generated/triton.language.randint4x.doctree b/master/.doctrees/python-api/generated/triton.language.randint4x.doctree index bb31c78bc746ea00b6c39138e535965959cae141..772709f0d4e9a396608415a77dfd125fd7110e7c 100644 GIT binary patch delta 176 zcmdmJz0rC@HltyDN_JX7W^$&!X_A47v9V!FicxABkT6a&F)=r_FfukbGfYdgG&fC2 jH8V&wH8j~ghtZ0ObZwKn_`EjL1IdhsexId1yI~9 j*)-KS(ZX``97Zc9(zQ+Q;`81d#KO)+y4KBIeCqrF^(!*Y diff --git a/master/.doctrees/python-api/generated/triton.language.randn.doctree b/master/.doctrees/python-api/generated/triton.language.randn.doctree index 281efe064a3d05475e137319296d8d141f207e9b..4fd8f42eabb0da7664f0b61c8ad212f06dc7932b 100644 GIT binary patch delta 176 zcmexr`PFhmGNWO9N_JX7W^$&!X_A47v9V!FicxABkT6a&F)=r_FfukbGfYdgG&fC2 iH8V&wH8j~gg;9%%3~le3-*AzxZSs3&_szlli+BOn88wIi delta 176 zcmexr`PFhmGNYkIWm1|^YF4?vg}I5LaZ<9Sk*SeUnxRQbqKSo>L1IdhsexId1yI~9 j*)-KS(ZX``6hXWo&72(HxdCFEG`Ii& delta 176 zcmZqBXwcY@%xGv)nUrRfnpLiEVQyk*oRn;7WNKuTW@wU+nUrRfnpLiEVQyk*oRn;7WNKuTW@wUL1IdhsexId1yI~9 i*)-KS(ZX``48|YiXgkP!kC}AaCLd&W-z?7Yn;QT;Ml{?2 diff --git a/master/.doctrees/python-api/generated/triton.language.sin.doctree b/master/.doctrees/python-api/generated/triton.language.sin.doctree index 53c9b4122ea2f561f89bc1acf81fc848589d68cd..cb427d01dea76148d39168233d0b98ddb685174f 100644 GIT binary patch delta 176 zcmaE({ziR6JfmTJN_JX7W^$&!X_A47v9V!FicxABkT6a&F)=r_FfukbGfYdgG&fC2 iH8V&wH8j~gf$<$8`rVh@c;n+cQsZ3 delta 176 zcmaE({ziR6JfopSWm1|^YF4?vg}I5LaZ<9Sk*SeUnxRQbqKSo>L1IdhsexId1yI~9 i*)-KS(ZX``1jbinXq&u_-DC4-<}PM3Y+T1~#{&Sg5;YnC diff --git a/master/.doctrees/python-api/generated/triton.language.softmax.doctree b/master/.doctrees/python-api/generated/triton.language.softmax.doctree index 1d82361ea76c6adaa39f5a17f406c6f1e5be94c4..2d5becdfbb14a22418368cc1f9c8577b8dd035f7 100644 GIT binary patch delta 176 zcmbPWIKgm3I-_BHN_JX7W^$&!X_A47v9V!FicxABkT6a&F)=r_FfukbGfYdgG&fC2 jH8V&wH8j~ggHfM}bZwIbdE7VKvn*sMUF&8+o_Zbt_$M-e delta 176 zcmbPWIKgm3I-{XQWm1|^YF4?vg}I5LaZ<9Sk*SeUnxRQbqKSo>L1IdhsexId1yI~9 j*)-KS(ZX``3`Tt>(zQ(%-y diff --git a/master/.doctrees/python-api/generated/triton.language.sqrt.doctree b/master/.doctrees/python-api/generated/triton.language.sqrt.doctree index 34f3cc3ed8d3d5f7cfe110ec55122aafbf55ec23..3828ac4fdefe681da82659d0013c99db15509583 100644 GIT binary patch delta 176 zcmeCx=+)Se$Y>a!lATtNnVhL_nq**NY;2g4Vw9Q&B#hHcOw3I!jEv3A4AT-V%}rBM h%?uJv4NW#rVthxAwvEiMm`S&7@7%Q6!xsWj*S!2*p5?s9mgqYZMP+k<2Xr^hC)F^G$Djigo>J$^6u91w*|Ks3Oc-E|UU2N@2# zGyCSf_kHudH?yCOelpI_@vrUozt0~hp%d{_$xJGi3Pz$`J>hUD9`8;h@fA+?^z=pg zyTg6Gp`^I4FA`7mc8QTtPf;e#g!IBiuHBkAlZxe1>8TT$^yyS=cF5<0Yus1=Bj=*t zKu8egIiX6<;!lR#94zpbV^tPqscu5{OV0)J^7AjA=b9*W;IIoH|Aagv?UpWM9E-TV4$k>}B|J7Q zgP=T&TkYf~oUPkSZo#<4UA$g*j_@>0bUHX`K0@w;%jP|n{rD*fs`Y2{hc;y<5lJt( z$E4P=nJ68COLsj;o`CrVJ2?bR7JFIDy_Oa&=QdB^APuo}?!sI!H<@A2e=ayI>JQmR z2vX`~sgMX#=w_Ua^?Ab(o8-*{WO{>+N!!8{tkyqnozkK<(SN$(N%CSf|CNTpYW|&f zpCRWr{Qaf;m>K1F6iDZW)HKQP1j=9m6==~Epp(qrI-=J$0$q(Sk&mz>ZLsV#n69W% z3-CkZDPG;)__nL$dvx$Zcay812GFBm%FGVLPK(*BJcb=Wm({2x926p)*T2Dp^%Y%$ zeAC=xwyVOnxJttl0()EQE<=R>czNwp(qhGln~MY~iOPFX{|%C>0PbVl%AZ!^=+vF>K-?km+N3b{)kN*_ifSe9QADM_wr2 p-+n>A>lm)mqxi}e%v0iIg85|e4@ud=SXT1lpN$?Z8g`D7zX8MpRnq_f delta 1862 zcmb7FU1(ED6m}-YCXH>=+a}uH{8?*ljkPxYF;S#~xDQ(6T6W*8@g}`>7;P=4QL9!{ zq*x?^aIT<&id!MzzvNBbh5ccxEGvp{KIq%NZADQ;)Z&?YqnN0*dAN5tbIyF{eBYdz znfUQRr#WdpxvuV}c`IoS4n=zdD&N}_T+!Ox5{-odZGk{xp<{8%NnXg-8 zHQgF_;H1K8(W=9*zFSMMB|Ha}EYn7{5lt*Ir_d1T;F`UmgS}&}RI+KXZ$NwnD})5Y z#q5nJ6svy^zm<#-3#=(!9avppp*#fFOE-H%LW>;QIMML2atAywaX@QXOJH;1@TbdG zNngUle`R|%sRg6y3vjzW7nV2UER&H5@hvSE%JQI?ac?l8-fv*iev}-8q<5iZ%m^HX z3*|c~%2qD@POhTI3oj(On!QX}28LF~b}I3>78ZMX*@#cWl8S1QhIJL=;SLPw>ig}q8ycdNaF%I@vzpvM2f7=9anWBiT?f60HvLC5_=*fLKOc<7psz}G9? z`2V+Zmy{NsoP7|xN}mxp?r^)OX*iyS3CAi#K@H}h1~R`WDy{j&NOc|uZ02zsKJF@; z!-}wN-$T;*1Gxed&L--lFyi(2zEO2n4T*xkqDq#ij`-&ni2N?}&1<55fmLJ8Dpju| zL%*wpJ|Qsdk^^~aH6q+M@@CbN;DM`(V)h%AE+WCmd_@>n?EWI1Zke8MCVaP54I$sh zRgE+@6TT6HZ)6(2hpIQyeK~v+`FulpeD{BsZ#LmwI4n2N69&7in$y)XDYwxJIklY2 zuO(mm@$c87YmZ6@?IU1uE0U-ouTu}WJIUXWa(Jd~)Cib7{;w@x+fU5Co6PlJDH6F{_nbW?rlx)nbSa{A9C!D};b>pIB?{H`lF diff --git a/master/.doctrees/python-api/generated/triton.language.sum.doctree b/master/.doctrees/python-api/generated/triton.language.sum.doctree index 2e1d420934bfa7045e26940ccfeb1d39fbb0018e..3116943802c6ba112b08ec582f1132fbe4ec3907 100644 GIT binary patch delta 172 zcmeyX`&V~EJfmTJN_JX7W^$&!X_A47v9V!FicxABkT6a&F)=r_FfukbGfYdgG&fC2 cH8V&wH8j~gf$L1IdhsexId1yI~9 c*)-KS(ZX``1jaAqXxqwM&q{`Eshl%-0o}JVj{pDw diff --git a/master/.doctrees/python-api/generated/triton.language.where.doctree b/master/.doctrees/python-api/generated/triton.language.where.doctree index 8093efb0fbee7dccc2e7bd5bc44cdefd4bb79028..f5bca8b4b96142515e6fd030b09a21c3a7bae793 100644 GIT binary patch delta 175 zcmZqoZTH=f%xD;&lATtNnVhL_nq**NY;2g4Vw9Q&B#hHcOw3I!jEv3A4AT-V%}rBM i%?uJv4NVqLVPqm**W@)^UYq$@a@a`Mx_J%PZD|1U1T&cc delta 175 zcmZqoZTH=f%xGv)nUrRfnpLiEVQyk*oRn;7WNKuTW@wUvd2Qxr$zda1>*h6Fx1|B5vol=) diff --git a/master/.doctrees/python-api/generated/triton.language.zeros.doctree b/master/.doctrees/python-api/generated/triton.language.zeros.doctree index f32f1b54da3818dab6d2ecbf32267bb37785dd67..be2e95ee7bd971b796d794e9e9dbf3657d543317 100644 GIT binary patch delta 176 zcmbPXI>U5BGNWO9N_JX7W^$&!X_A47v9V!FicxABkT6a&F)=r_FfukbGfYdgG&fC2 iH8V&wH8j~gh4C*L+9ogO^xDkBlEq4fjmtSd3IG6br8JNL delta 176 zcmbPXI>U5BGNYkIWm1|^YF4?vg}I5LaZ<9Sk*SeUnxRQbqKSo>L1IdhsexId1yI~9 i*)-KS(ZX``6vn?~Xq&v8(`z#iOBO2`HZJG6Qf~#N_JX7W^$&!X_A47v9V!FicxABkT6a&F)=r_FfukbGfYdgG&fC2 jH8V&wH8k10nK6)wbZwKD2|8{rWBJcRy4KCh1o>nD*&sCA delta 176 zcmdlIy(M}>6QiL;Wm1|^YF4?vg}I5LaZ<9Sk*SeUnxRQbqKSo>L1IdhsexId1yI~9 k*)-KS(ZX``X2w7!(zQ)qCg`}ijO9NM=~_206XcTt0FJvfp8x;= diff --git a/master/.doctrees/python-api/generated/triton.testing.perf_report.doctree b/master/.doctrees/python-api/generated/triton.testing.perf_report.doctree index fd490963c18fe999495a14f8bf241db937a1e7ae..b1e92ec7627fb579b143e0edfa4c60062e0a9c17 100644 GIT binary patch delta 176 zcmaE?^H^s?H=|*EN_JX7W^$&!X_A47v9V!FicxABkT6a&F)=r_FfukbGfYdgG&fC2 jH8V&wH8k10hmnVgbZwKZI9)c|vYcTdUF&8mPEB3_jJGpe delta 176 zcmaE?^H^s?H>06NWm1|^YF4?vg}I5LaZ<9Sk*SeUnxRQbqKSo>L1IdhsexId1yI~9 j*)-KS(ZX``9!4G}(zQ*t;&j<;%W{T=bgi4MI5l|zLQ*py diff --git a/master/.doctrees/python-api/triton.doctree b/master/.doctrees/python-api/triton.doctree index 666b7335dc5c4c86cedd1aafd332fcca0fc4ba99..e8dd455f02b3ab7e54ad7b64f5c31d87d11befcc 100644 GIT binary patch delta 533 zcmexq^V4R7E2Ck2N_JX7W^$&!X_A47v9V!FicxABkT6a&F)=r_FfukbGfYdgG&fC2 zH8V&wH8h#LpHF)7M8*oTbn0);WRhngORMqbH*8kqxz~7e7sq^Zwf1s7Ay2Ex=4(7V c$k4iZKi^_9v;pJAWb<)>)#PfuF0_an056T93jhEB delta 533 zcmexq^V4R7E2E)BWm1|^YF4?vg}I5LaZ<9Sk*SeUnxRQbqKSo>L1IdhsexId1yI~9 z*)-KS(ZX`_em?2R6B#SW(y6~WlS!V1EUm_y->_Mc=U(H@T^#et)!NJTggmV#o3HWg cAVcfs{d|kb&<2bblg-BkR+Fpsy3itS0MbyPR{#J2 diff --git a/master/.doctrees/python-api/triton.language.doctree b/master/.doctrees/python-api/triton.language.doctree index 0ac2e2ebc5b0c1bdbe504047ea61ef5bc70a397a..214cb8df70d90e39ffb715cdccd117d86843e602 100644 GIT binary patch delta 4724 zcmbuCUr3W-6vom0F_XpENLDv8aEe8>Z+~1HI+%k>ios~%O_ZCTgE1;2BqZs=D2l<< zzKbw|VM!pR$c|val7?dli8LHUAzKcEB4`n%(1rB98%4K1@6C7jyuWjvbKY~_Z!NA| zi!0}PYJ`hoG&~ULiyX6u%r>i45JgLWSpHbUHk-qK++uaK3*n&CVHf+`%|W|hll-n` zdS0VJq(Y*Fw2GVppvqE7tI$aw!%FhiscSipNY`h;1pYE0~OuaKgN5+kRgS5@P8Cf4xUnD9!Taky;RO?C}{kJCSqppF+U)$V&`?^Eu+?&NpX0y4?t>!h^%E)q18E_fiP znRLUeM1~cUo;~>%X%8kH@9so%?KqPMsO0gT2JbPI0uxBEY>Jcu)o%LIBZ72kG{mOJ zKFVAeL<+_3@n|RuSSGJQlT0_zk~q&J{}g`BBiBc`==NxWhu(FGi!NT7;GsvazTlCM zUz_ET&kUlQqtZ6T>yLTp zy#2HhrS6@Esol?D>go(k)y%=v`$?FZn?H&=e0gC78GEd*(=QLBRBsB-b!1UfxBHi_ z#OBn_a`g{Kot?x2Z=s##2r6BCvyM5<0yj|o>M$~=(gi1#^GnEPNEh5>eBXgeSJsh@ zNa?~Ylt?A${lW75u$cv@l>7V}sVO76z6SOHeVi_|O50ny%AdOG=R>3!%8_4 D6M(Pc delta 4724 zcmbuCT}YE*6vxqhn8{*nByZiwz$q)LZEkBDI+%k>ios~%O@#Y!VA2;MGLkNgq8Lo= zy$B;1mIP9Y>1H3k%ogPWXoYt1TCTzx{%&yqv+QEbNj;o`JMAW=Q-zj*W&WE zxO~31&SZ}UBj)~#!^iB$EvAlO$YHjc%@LC&9I)7J#y~h|HQEAp>ANjt?e7TK9iq?K zO3&+5h}4v5Beg6q1E`WzRLeBt$B3M~4a$1XBhrmoFoAzj{AhZo0HW|Y_0*#Ih9n?K z#TJcL@<2g1_K))(5fxI12meR$%X%8ly=;=ap?L1QesO0vZ2JbPI{gX(rY>JfqwQl;-8wTm(SddMT zeU!a0gcOS1YNKd_>OE)Q^G}=N61zoQ$mB;<)Y-29+jS$hPEfm z^Y+tbl)85YruIC8sjIUvRW%P&?$>w~; delta 415 zcmZ2yy3TY%D5If8Wm1|^YF4?vg}I5LaZ<9Sk*SeUnxRQbqKSo>L1IdhsexId1yI~9 z*)-KS(ZX`_Zyx2zD;X=u(rLcAlj#mKSz4_(Ut|*_&%M^0gE=;ntF?$Lf{AnoZ~o20 QL54P9;M#01;J4!j0NTQQIRF3v diff --git a/master/_downloads/1bc2e471d2fb0ec017c4d1d0890db4e2/07-libdevice-function.ipynb b/master/_downloads/1bc2e471d2fb0ec017c4d1d0890db4e2/07-libdevice-function.ipynb new file mode 100644 index 000000000..d3b665487 --- /dev/null +++ b/master/_downloads/1bc2e471d2fb0ec017c4d1d0890db4e2/07-libdevice-function.ipynb @@ -0,0 +1,97 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%matplotlib inline" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n# Libdevice function\nTriton can invoke a custom function from an external library.\nIn this example, we will use the `libdevice` library to apply `asin` on a tensor.\nPlease refer to https://docs.nvidia.com/cuda/libdevice-users-guide/index.html regarding the semantics of all available libdevice functions.\n\nIn `trition/language/libdevice.py`, we try to aggregate functions with the same computation but different data types together.\nFor example, both `__nv_asin` and `__nvasinf` calculate the principal value of the arc sine of the input, but `__nv_asin` operates on `double` and `__nv_asinf` operates on `float`.\nUsing triton, you can simply call `tl.libdevice.asinf`.\ntriton automatically selects the correct underlying device function to invoke based on input and output types.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## asin Kernel\n\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "import torch\n\nimport triton\nimport triton.language as tl\n\n\n@triton.jit\ndef asin_kernel(\n x_ptr,\n y_ptr,\n n_elements,\n BLOCK_SIZE: tl.constexpr,\n):\n pid = tl.program_id(axis=0)\n block_start = pid * BLOCK_SIZE\n offsets = block_start + tl.arange(0, BLOCK_SIZE)\n mask = offsets < n_elements\n x = tl.load(x_ptr + offsets, mask=mask)\n x = tl.libdevice.asin(x)\n tl.store(y_ptr + offsets, x, mask=mask)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Using the default libdevice library path\nWe can use the default libdevice library path encoded in `triton/language/libdevice.py`\n\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "torch.manual_seed(0)\nsize = 98432\nx = torch.rand(size, device='cuda')\noutput_triton = torch.zeros(size, device='cuda')\noutput_torch = torch.asin(x)\nassert x.is_cuda and output_triton.is_cuda\nn_elements = output_torch.numel()\ngrid = lambda meta: (triton.cdiv(n_elements, meta['BLOCK_SIZE']),)\nasin_kernel[grid](x, output_triton, n_elements, BLOCK_SIZE=1024)\nprint(output_torch)\nprint(output_triton)\nprint(\n f'The maximum difference between torch and triton is '\n f'{torch.max(torch.abs(output_torch - output_triton))}'\n)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Customize the libdevice library path\nWe can also customize the libdevice library path by passing the path to the `libdevice` library to the `asin` kernel.\n\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "output_triton = torch.empty_like(x)\nasin_kernel[grid](x, output_triton, n_elements, BLOCK_SIZE=1024,\n extern_libs={'libdevice': '/usr/local/cuda/nvvm/libdevice/libdevice.10.bc'})\nprint(output_torch)\nprint(output_triton)\nprint(\n f'The maximum difference between torch and triton is '\n f'{torch.max(torch.abs(output_torch - output_triton))}'\n)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.10" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} \ No newline at end of file diff --git a/master/_downloads/3176accb6c7288b0e45f41d94eebacb9/06-fused-attention.ipynb b/master/_downloads/3176accb6c7288b0e45f41d94eebacb9/06-fused-attention.ipynb new file mode 100644 index 000000000..f3bc0d2e5 --- /dev/null +++ b/master/_downloads/3176accb6c7288b0e45f41d94eebacb9/06-fused-attention.ipynb @@ -0,0 +1,54 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%matplotlib inline" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n# Fused Attention\nThis is a Triton implementation of the Flash Attention algorithm \n(see: Dao et al., https://arxiv.org/pdf/2205.14135v2.pdf; Rabe and Staats https://arxiv.org/pdf/2112.05682v2.pdf)\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "import pytest\nimport torch\n\nimport triton\nimport triton.language as tl\n\n\n@triton.jit\ndef _fwd_kernel(\n Q, K, V, sm_scale,\n TMP, L, M, # NOTE: TMP is a scratchpad buffer to workaround a compiler bug\n Out,\n stride_qz, stride_qh, stride_qm, stride_qk,\n stride_kz, stride_kh, stride_kn, stride_kk,\n stride_vz, stride_vh, stride_vk, stride_vn,\n stride_oz, stride_oh, stride_om, stride_on,\n Z, H, N_CTX,\n BLOCK_M: tl.constexpr, BLOCK_DMODEL: tl.constexpr,\n BLOCK_N: tl.constexpr,\n):\n start_m = tl.program_id(0)\n off_hz = tl.program_id(1)\n # initialize offsets\n offs_m = start_m * BLOCK_M + tl.arange(0, BLOCK_M)\n offs_n = tl.arange(0, BLOCK_N)\n offs_d = tl.arange(0, BLOCK_DMODEL)\n off_q = off_hz * stride_qh + offs_m[:, None] * stride_qm + offs_d[None, :] * stride_qk\n off_k = off_hz * stride_qh + offs_n[:, None] * stride_kn + offs_d[None, :] * stride_kk\n off_v = off_hz * stride_qh + offs_n[:, None] * stride_qm + offs_d[None, :] * stride_qk\n # Initialize pointers to Q, K, V\n q_ptrs = Q + off_q\n k_ptrs = K + off_k\n v_ptrs = V + off_v\n # initialize pointer to m and l\n t_ptrs = TMP + off_hz * N_CTX + offs_m\n m_i = tl.zeros([BLOCK_M], dtype=tl.float32) - float(\"inf\")\n l_i = tl.zeros([BLOCK_M], dtype=tl.float32)\n acc = tl.zeros([BLOCK_M, BLOCK_DMODEL], dtype=tl.float32)\n # load q: it will stay in SRAM throughout\n q = tl.load(q_ptrs)\n # loop over k, v and update accumulator\n for start_n in range(0, (start_m + 1) * BLOCK_M, BLOCK_N):\n start_n = tl.multiple_of(start_n, BLOCK_N)\n # -- compute qk ----\n k = tl.load(k_ptrs + start_n * stride_kn)\n qk = tl.zeros([BLOCK_M, BLOCK_N], dtype=tl.float32)\n qk += tl.dot(q, k, trans_b=True)\n qk *= sm_scale\n qk += tl.where(offs_m[:, None] >= (start_n + offs_n[None, :]), 0, float(\"-inf\"))\n # -- compute m_ij, p, l_ij\n m_ij = tl.max(qk, 1)\n p = tl.exp(qk - m_ij[:, None])\n l_ij = tl.sum(p, 1)\n # -- update m_i and l_i\n m_i_new = tl.maximum(m_i, m_ij)\n alpha = tl.exp(m_i - m_i_new)\n beta = tl.exp(m_ij - m_i_new)\n l_i_new = alpha * l_i + beta * l_ij\n # -- update output accumulator --\n # scale p\n p_scale = beta / l_i_new\n p = p * p_scale[:, None]\n # scale acc\n acc_scale = l_i / l_i_new * alpha\n tl.store(t_ptrs, acc_scale)\n acc_scale = tl.load(t_ptrs) # BUG: have to store and immediately load\n acc = acc * acc_scale[:, None]\n # update acc\n v = tl.load(v_ptrs + start_n * stride_vk)\n p = p.to(tl.float16)\n acc += tl.dot(p, v)\n # update m_i and l_i\n l_i = l_i_new\n m_i = m_i_new\n # rematerialize offsets to save registers\n start_m = tl.program_id(0)\n offs_m = start_m * BLOCK_M + tl.arange(0, BLOCK_M)\n # write back l and m\n l_ptrs = L + off_hz * N_CTX + offs_m\n m_ptrs = M + off_hz * N_CTX + offs_m\n tl.store(l_ptrs, l_i)\n tl.store(m_ptrs, m_i)\n # initialize pointers to output\n offs_n = tl.arange(0, BLOCK_DMODEL)\n off_o = off_hz * stride_oh + offs_m[:, None] * stride_om + offs_n[None, :] * stride_on\n out_ptrs = Out + off_o\n tl.store(out_ptrs, acc)\n\n\n@triton.jit\ndef _bwd_preprocess(\n Out, DO, L,\n NewDO, Delta,\n BLOCK_M: tl.constexpr, D_HEAD: tl.constexpr,\n):\n off_m = tl.program_id(0) * BLOCK_M + tl.arange(0, BLOCK_M)\n off_n = tl.arange(0, D_HEAD)\n # load\n o = tl.load(Out + off_m[:, None] * D_HEAD + off_n[None, :]).to(tl.float32)\n do = tl.load(DO + off_m[:, None] * D_HEAD + off_n[None, :]).to(tl.float32)\n denom = tl.load(L + off_m).to(tl.float32)\n # compute\n do = do / denom[:, None]\n delta = tl.sum(o * do, axis=1)\n # write-back\n tl.store(NewDO + off_m[:, None] * D_HEAD + off_n[None, :], do)\n tl.store(Delta + off_m, delta)\n\n\n@triton.jit\ndef _bwd_kernel(\n Q, K, V, sm_scale, Out, DO,\n DQ, DK, DV,\n L, M,\n D,\n stride_qz, stride_qh, stride_qm, stride_qk,\n stride_kz, stride_kh, stride_kn, stride_kk,\n stride_vz, stride_vh, stride_vk, stride_vn,\n Z, H, N_CTX,\n num_block,\n BLOCK_M: tl.constexpr, BLOCK_DMODEL: tl.constexpr,\n BLOCK_N: tl.constexpr,\n):\n off_hz = tl.program_id(0)\n off_z = off_hz // H\n off_h = off_hz % H\n # offset pointers for batch/head\n Q += off_z * stride_qz + off_h * stride_qh\n K += off_z * stride_qz + off_h * stride_qh\n V += off_z * stride_qz + off_h * stride_qh\n DO += off_z * stride_qz + off_h * stride_qh\n DQ += off_z * stride_qz + off_h * stride_qh\n DK += off_z * stride_qz + off_h * stride_qh\n DV += off_z * stride_qz + off_h * stride_qh\n for start_n in range(0, num_block):\n lo = start_n * BLOCK_M\n # initialize row/col offsets\n offs_qm = lo + tl.arange(0, BLOCK_M)\n offs_n = start_n * BLOCK_M + tl.arange(0, BLOCK_M)\n offs_m = tl.arange(0, BLOCK_N)\n offs_k = tl.arange(0, BLOCK_DMODEL)\n # initialize pointers to value-like data\n q_ptrs = Q + (offs_qm[:, None] * stride_qm + offs_k[None, :] * stride_qk)\n k_ptrs = K + (offs_n[:, None] * stride_kn + offs_k[None, :] * stride_kk)\n v_ptrs = V + (offs_n[:, None] * stride_qm + offs_k[None, :] * stride_qk)\n do_ptrs = DO + (offs_qm[:, None] * stride_qm + offs_k[None, :] * stride_qk)\n dq_ptrs = DQ + (offs_qm[:, None] * stride_qm + offs_k[None, :] * stride_qk)\n # pointer to row-wise quantities in value-like data\n D_ptrs = D + off_hz * N_CTX\n m_ptrs = M + off_hz * N_CTX\n # initialize dv amd dk\n dv = tl.zeros([BLOCK_M, BLOCK_DMODEL], dtype=tl.float32)\n dk = tl.zeros([BLOCK_M, BLOCK_DMODEL], dtype=tl.float32)\n # k and v stay in SRAM throughout\n k = tl.load(k_ptrs)\n v = tl.load(v_ptrs)\n # loop over rows\n for start_m in range(lo, num_block * BLOCK_M, BLOCK_M):\n offs_m_curr = start_m + offs_m\n # load q, k, v, do on-chip\n q = tl.load(q_ptrs)\n # recompute p = softmax(qk, dim=-1).T\n # NOTE: `do` is pre-divided by `l`; no normalization here\n qk = tl.dot(q, k, trans_b=True)\n qk = tl.where(offs_m_curr[:, None] >= (offs_n[None, :]), qk, float(\"-inf\"))\n m = tl.load(m_ptrs + offs_m_curr)\n p = tl.exp(qk * sm_scale - m[:, None])\n # compute dv\n do = tl.load(do_ptrs)\n dv += tl.dot(p.to(tl.float16), do, trans_a=True)\n # compute dp = dot(v, do)\n Di = tl.load(D_ptrs + offs_m_curr)\n dp = tl.zeros([BLOCK_M, BLOCK_N], dtype=tl.float32) - Di[:, None]\n dp += tl.dot(do, v, trans_b=True)\n # compute ds = p * (dp - delta[:, None])\n ds = p * dp * sm_scale\n # compute dk = dot(ds.T, q)\n dk += tl.dot(ds.to(tl.float16), q, trans_a=True)\n # # compute dq\n dq = tl.load(dq_ptrs, eviction_policy=\"evict_last\")\n dq += tl.dot(ds.to(tl.float16), k)\n tl.store(dq_ptrs, dq, eviction_policy=\"evict_last\")\n # # increment pointers\n dq_ptrs += BLOCK_M * stride_qm\n q_ptrs += BLOCK_M * stride_qm\n do_ptrs += BLOCK_M * stride_qm\n # write-back\n dv_ptrs = DV + (offs_n[:, None] * stride_qm + offs_k[None, :] * stride_qk)\n dk_ptrs = DK + (offs_n[:, None] * stride_kn + offs_k[None, :] * stride_kk)\n tl.store(dv_ptrs, dv)\n tl.store(dk_ptrs, dk)\n\n\nclass _attention(torch.autograd.Function):\n\n @staticmethod\n def forward(ctx, q, k, v, sm_scale):\n BLOCK = 128\n # shape constraints\n Lq, Lk = q.shape[-1], k.shape[-1]\n assert Lq == Lk\n o = torch.empty_like(q)\n grid = (triton.cdiv(q.shape[2], BLOCK), q.shape[0] * q.shape[1])\n tmp = torch.empty((q.shape[0] * q.shape[1], q.shape[2]), device=q.device, dtype=torch.float32)\n L = torch.empty((q.shape[0] * q.shape[1], q.shape[2]), device=q.device, dtype=torch.float32)\n m = torch.empty((q.shape[0] * q.shape[1], q.shape[2]), device=q.device, dtype=torch.float32)\n _fwd_kernel[grid](\n q, k, v, sm_scale,\n tmp, L, m,\n o,\n q.stride(0), q.stride(1), q.stride(2), q.stride(3),\n k.stride(0), k.stride(1), k.stride(2), k.stride(3),\n v.stride(0), v.stride(1), v.stride(2), v.stride(3),\n o.stride(0), o.stride(1), o.stride(2), o.stride(3),\n q.shape[0], q.shape[1], q.shape[2],\n BLOCK_M=BLOCK, BLOCK_N=BLOCK,\n BLOCK_DMODEL=64, num_warps=4,\n num_stages=1,\n )\n ctx.save_for_backward(q, k, v, o, L, m)\n ctx.BLOCK = BLOCK\n ctx.grid = grid\n ctx.sm_scale = sm_scale\n ctx.BLOCK_DMODEL = 64\n return o\n\n @staticmethod\n def backward(ctx, do):\n q, k, v, o, l, m = ctx.saved_tensors\n do = do.contiguous()\n dq = torch.zeros_like(q, dtype=torch.float32)\n dk = torch.empty_like(k)\n dv = torch.empty_like(v)\n do_scaled = torch.empty_like(do)\n delta = torch.empty_like(l)\n _bwd_preprocess[(ctx.grid[0] * ctx.grid[1], )](\n o, do, l,\n do_scaled, delta,\n BLOCK_M=ctx.BLOCK, D_HEAD=ctx.BLOCK_DMODEL,\n )\n _bwd_kernel[(ctx.grid[1],)](\n q, k, v, ctx.sm_scale,\n o, do_scaled,\n dq, dk, dv,\n l, m,\n delta,\n q.stride(0), q.stride(1), q.stride(2), q.stride(3),\n k.stride(0), k.stride(1), k.stride(2), k.stride(3),\n v.stride(0), v.stride(1), v.stride(2), v.stride(3),\n q.shape[0], q.shape[1], q.shape[2],\n ctx.grid[0],\n BLOCK_M=ctx.BLOCK, BLOCK_N=ctx.BLOCK,\n BLOCK_DMODEL=ctx.BLOCK_DMODEL, num_warps=8,\n num_stages=1,\n )\n return dq, dk, dv, None\n\n\nattention = _attention.apply\n\n\n@pytest.mark.parametrize('Z, H, N_CTX, D_HEAD', [(3, 2, 2048, 64)])\ndef test_op(Z, H, N_CTX, D_HEAD, dtype=torch.float16):\n torch.manual_seed(20)\n q = torch.empty((Z, H, N_CTX, D_HEAD), dtype=dtype, device=\"cuda\").normal_(mean=0, std=.5).requires_grad_()\n k = torch.empty((Z, H, N_CTX, D_HEAD), dtype=dtype, device=\"cuda\").normal_(mean=0, std=.5).requires_grad_()\n v = torch.empty((Z, H, N_CTX, D_HEAD), dtype=dtype, device=\"cuda\").normal_(mean=0, std=.5).requires_grad_()\n sm_scale = 0.3\n dout = torch.randn_like(q)\n # reference implementation\n M = torch.tril(torch.ones((N_CTX, N_CTX), device=\"cuda\"))\n p = torch.matmul(q, k.transpose(2, 3)) * sm_scale\n for z in range(Z):\n for h in range(H):\n p[:, :, M == 0] = float(\"-inf\")\n p = torch.softmax(p.float(), dim=-1).half()\n ref_out = torch.matmul(p, v)\n ref_out.backward(dout)\n ref_dv, v.grad = v.grad.clone(), None\n ref_dk, k.grad = k.grad.clone(), None\n ref_dq, q.grad = q.grad.clone(), None\n # triton implementation\n tri_out = attention(q, k, v, sm_scale)\n tri_out.backward(dout)\n tri_dv, v.grad = v.grad.clone(), None\n tri_dk, k.grad = k.grad.clone(), None\n tri_dq, q.grad = q.grad.clone(), None\n # compare\n triton.testing.assert_almost_equal(ref_out, tri_out)\n triton.testing.assert_almost_equal(ref_dv, tri_dv)\n triton.testing.assert_almost_equal(ref_dk, tri_dk)\n triton.testing.assert_almost_equal(ref_dq, tri_dq)\n\n\ntry:\n from flash_attn.flash_attn_interface import flash_attn_func\n HAS_FLASH = True\nexcept BaseException:\n HAS_FLASH = False\n\nBATCH, N_HEADS, N_CTX, D_HEAD = 4, 48, 4096, 64\n# vary seq length for fixed head and batch=4\nconfigs = [triton.testing.Benchmark(\n x_names=['N_CTX'],\n x_vals=[2**i for i in range(10, 16)],\n line_arg='provider',\n line_vals=['triton'] + (['flash'] if HAS_FLASH else []),\n line_names=['Triton'] + (['Flash'] if HAS_FLASH else []),\n styles=[('red', '-'), ('blue', '-')],\n ylabel='ms',\n plot_name=f'fused-attention-batch{BATCH}-head{N_HEADS}-d{D_HEAD}-{mode}',\n args={'H': N_HEADS, 'BATCH': BATCH, 'D_HEAD': D_HEAD, 'dtype': torch.float16, 'mode': mode}\n) for mode in ['bwd']]\n\n\n@triton.testing.perf_report(configs)\ndef bench_flash_attention(BATCH, H, N_CTX, D_HEAD, mode, provider, dtype=torch.float16, device=\"cuda\"):\n assert mode in ['fwd', 'bwd']\n warmup = 25\n rep = 100\n if provider == \"triton\":\n q = torch.randn((BATCH, H, N_CTX, D_HEAD), dtype=dtype, device=\"cuda\", requires_grad=True)\n k = torch.randn((BATCH, H, N_CTX, D_HEAD), dtype=dtype, device=\"cuda\", requires_grad=True)\n v = torch.randn((BATCH, H, N_CTX, D_HEAD), dtype=dtype, device=\"cuda\", requires_grad=True)\n sm_scale = 1.3\n fn = lambda: attention(q, k, v, sm_scale)\n if mode == 'bwd':\n o = fn()\n do = torch.randn_like(o)\n fn = lambda: o.backward(do, retain_graph=True)\n ms = triton.testing.do_bench(fn, percentiles=None, warmup=warmup, rep=rep)\n return ms\n if provider == \"flash\":\n lengths = torch.full((BATCH,), fill_value=N_CTX, device=device)\n cu_seqlens = torch.zeros((BATCH + 1,), device=device, dtype=torch.int32)\n cu_seqlens[1:] = lengths.cumsum(0)\n qkv = torch.randn((BATCH * N_CTX, 3, H, D_HEAD), dtype=dtype, device=device, requires_grad=True)\n fn = lambda: flash_attn_func(qkv, cu_seqlens, 0., N_CTX, causal=True)\n if mode == 'bwd':\n o = fn()\n do = torch.randn_like(o)\n fn = lambda: o.backward(do, retain_graph=True)\n ms = triton.testing.do_bench(fn, percentiles=None, warmup=warmup, rep=rep)\n return ms\n\n# only works on A100 at the moment\n# bench_flash_attention.run(save_path='.', print_data=True)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.10" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} \ No newline at end of file diff --git a/master/_downloads/3ff29f967ace7985da24aab10352fc76/07-libdevice-function.py b/master/_downloads/3ff29f967ace7985da24aab10352fc76/07-libdevice-function.py new file mode 100644 index 000000000..bb5f7b26d --- /dev/null +++ b/master/_downloads/3ff29f967ace7985da24aab10352fc76/07-libdevice-function.py @@ -0,0 +1,74 @@ +""" +Libdevice function +=============== +Triton can invoke a custom function from an external library. +In this example, we will use the `libdevice` library to apply `asin` on a tensor. +Please refer to https://docs.nvidia.com/cuda/libdevice-users-guide/index.html regarding the semantics of all available libdevice functions. + +In `trition/language/libdevice.py`, we try to aggregate functions with the same computation but different data types together. +For example, both `__nv_asin` and `__nvasinf` calculate the principal value of the arc sine of the input, but `__nv_asin` operates on `double` and `__nv_asinf` operates on `float`. +Using triton, you can simply call `tl.libdevice.asinf`. +triton automatically selects the correct underlying device function to invoke based on input and output types. +""" + +# %% +# asin Kernel +# -------------------------- + +import torch + +import triton +import triton.language as tl + + +@triton.jit +def asin_kernel( + x_ptr, + y_ptr, + n_elements, + BLOCK_SIZE: tl.constexpr, +): + pid = tl.program_id(axis=0) + block_start = pid * BLOCK_SIZE + offsets = block_start + tl.arange(0, BLOCK_SIZE) + mask = offsets < n_elements + x = tl.load(x_ptr + offsets, mask=mask) + x = tl.libdevice.asin(x) + tl.store(y_ptr + offsets, x, mask=mask) + +# %% +# Using the default libdevice library path +# -------------------------- +# We can use the default libdevice library path encoded in `triton/language/libdevice.py` + + +torch.manual_seed(0) +size = 98432 +x = torch.rand(size, device='cuda') +output_triton = torch.zeros(size, device='cuda') +output_torch = torch.asin(x) +assert x.is_cuda and output_triton.is_cuda +n_elements = output_torch.numel() +grid = lambda meta: (triton.cdiv(n_elements, meta['BLOCK_SIZE']),) +asin_kernel[grid](x, output_triton, n_elements, BLOCK_SIZE=1024) +print(output_torch) +print(output_triton) +print( + f'The maximum difference between torch and triton is ' + f'{torch.max(torch.abs(output_torch - output_triton))}' +) + +# %% +# Customize the libdevice library path +# -------------------------- +# We can also customize the libdevice library path by passing the path to the `libdevice` library to the `asin` kernel. + +output_triton = torch.empty_like(x) +asin_kernel[grid](x, output_triton, n_elements, BLOCK_SIZE=1024, + extern_libs={'libdevice': '/usr/local/cuda/nvvm/libdevice/libdevice.10.bc'}) +print(output_torch) +print(output_triton) +print( + f'The maximum difference between torch and triton is ' + f'{torch.max(torch.abs(output_torch - output_triton))}' +) diff --git a/master/_downloads/54a35f6ec55f9746935b9566fb6bb1df/06-fused-attention.py b/master/_downloads/54a35f6ec55f9746935b9566fb6bb1df/06-fused-attention.py new file mode 100644 index 000000000..c19ee498a --- /dev/null +++ b/master/_downloads/54a35f6ec55f9746935b9566fb6bb1df/06-fused-attention.py @@ -0,0 +1,354 @@ +""" +Fused Attention +=============== +This is a Triton implementation of the Flash Attention algorithm +(see: Dao et al., https://arxiv.org/pdf/2205.14135v2.pdf; Rabe and Staats https://arxiv.org/pdf/2112.05682v2.pdf) +""" + +import pytest +import torch + +import triton +import triton.language as tl + + +@triton.jit +def _fwd_kernel( + Q, K, V, sm_scale, + TMP, L, M, # NOTE: TMP is a scratchpad buffer to workaround a compiler bug + Out, + stride_qz, stride_qh, stride_qm, stride_qk, + stride_kz, stride_kh, stride_kn, stride_kk, + stride_vz, stride_vh, stride_vk, stride_vn, + stride_oz, stride_oh, stride_om, stride_on, + Z, H, N_CTX, + BLOCK_M: tl.constexpr, BLOCK_DMODEL: tl.constexpr, + BLOCK_N: tl.constexpr, +): + start_m = tl.program_id(0) + off_hz = tl.program_id(1) + # initialize offsets + offs_m = start_m * BLOCK_M + tl.arange(0, BLOCK_M) + offs_n = tl.arange(0, BLOCK_N) + offs_d = tl.arange(0, BLOCK_DMODEL) + off_q = off_hz * stride_qh + offs_m[:, None] * stride_qm + offs_d[None, :] * stride_qk + off_k = off_hz * stride_qh + offs_n[:, None] * stride_kn + offs_d[None, :] * stride_kk + off_v = off_hz * stride_qh + offs_n[:, None] * stride_qm + offs_d[None, :] * stride_qk + # Initialize pointers to Q, K, V + q_ptrs = Q + off_q + k_ptrs = K + off_k + v_ptrs = V + off_v + # initialize pointer to m and l + t_ptrs = TMP + off_hz * N_CTX + offs_m + m_i = tl.zeros([BLOCK_M], dtype=tl.float32) - float("inf") + l_i = tl.zeros([BLOCK_M], dtype=tl.float32) + acc = tl.zeros([BLOCK_M, BLOCK_DMODEL], dtype=tl.float32) + # load q: it will stay in SRAM throughout + q = tl.load(q_ptrs) + # loop over k, v and update accumulator + for start_n in range(0, (start_m + 1) * BLOCK_M, BLOCK_N): + start_n = tl.multiple_of(start_n, BLOCK_N) + # -- compute qk ---- + k = tl.load(k_ptrs + start_n * stride_kn) + qk = tl.zeros([BLOCK_M, BLOCK_N], dtype=tl.float32) + qk += tl.dot(q, k, trans_b=True) + qk *= sm_scale + qk += tl.where(offs_m[:, None] >= (start_n + offs_n[None, :]), 0, float("-inf")) + # -- compute m_ij, p, l_ij + m_ij = tl.max(qk, 1) + p = tl.exp(qk - m_ij[:, None]) + l_ij = tl.sum(p, 1) + # -- update m_i and l_i + m_i_new = tl.maximum(m_i, m_ij) + alpha = tl.exp(m_i - m_i_new) + beta = tl.exp(m_ij - m_i_new) + l_i_new = alpha * l_i + beta * l_ij + # -- update output accumulator -- + # scale p + p_scale = beta / l_i_new + p = p * p_scale[:, None] + # scale acc + acc_scale = l_i / l_i_new * alpha + tl.store(t_ptrs, acc_scale) + acc_scale = tl.load(t_ptrs) # BUG: have to store and immediately load + acc = acc * acc_scale[:, None] + # update acc + v = tl.load(v_ptrs + start_n * stride_vk) + p = p.to(tl.float16) + acc += tl.dot(p, v) + # update m_i and l_i + l_i = l_i_new + m_i = m_i_new + # rematerialize offsets to save registers + start_m = tl.program_id(0) + offs_m = start_m * BLOCK_M + tl.arange(0, BLOCK_M) + # write back l and m + l_ptrs = L + off_hz * N_CTX + offs_m + m_ptrs = M + off_hz * N_CTX + offs_m + tl.store(l_ptrs, l_i) + tl.store(m_ptrs, m_i) + # initialize pointers to output + offs_n = tl.arange(0, BLOCK_DMODEL) + off_o = off_hz * stride_oh + offs_m[:, None] * stride_om + offs_n[None, :] * stride_on + out_ptrs = Out + off_o + tl.store(out_ptrs, acc) + + +@triton.jit +def _bwd_preprocess( + Out, DO, L, + NewDO, Delta, + BLOCK_M: tl.constexpr, D_HEAD: tl.constexpr, +): + off_m = tl.program_id(0) * BLOCK_M + tl.arange(0, BLOCK_M) + off_n = tl.arange(0, D_HEAD) + # load + o = tl.load(Out + off_m[:, None] * D_HEAD + off_n[None, :]).to(tl.float32) + do = tl.load(DO + off_m[:, None] * D_HEAD + off_n[None, :]).to(tl.float32) + denom = tl.load(L + off_m).to(tl.float32) + # compute + do = do / denom[:, None] + delta = tl.sum(o * do, axis=1) + # write-back + tl.store(NewDO + off_m[:, None] * D_HEAD + off_n[None, :], do) + tl.store(Delta + off_m, delta) + + +@triton.jit +def _bwd_kernel( + Q, K, V, sm_scale, Out, DO, + DQ, DK, DV, + L, M, + D, + stride_qz, stride_qh, stride_qm, stride_qk, + stride_kz, stride_kh, stride_kn, stride_kk, + stride_vz, stride_vh, stride_vk, stride_vn, + Z, H, N_CTX, + num_block, + BLOCK_M: tl.constexpr, BLOCK_DMODEL: tl.constexpr, + BLOCK_N: tl.constexpr, +): + off_hz = tl.program_id(0) + off_z = off_hz // H + off_h = off_hz % H + # offset pointers for batch/head + Q += off_z * stride_qz + off_h * stride_qh + K += off_z * stride_qz + off_h * stride_qh + V += off_z * stride_qz + off_h * stride_qh + DO += off_z * stride_qz + off_h * stride_qh + DQ += off_z * stride_qz + off_h * stride_qh + DK += off_z * stride_qz + off_h * stride_qh + DV += off_z * stride_qz + off_h * stride_qh + for start_n in range(0, num_block): + lo = start_n * BLOCK_M + # initialize row/col offsets + offs_qm = lo + tl.arange(0, BLOCK_M) + offs_n = start_n * BLOCK_M + tl.arange(0, BLOCK_M) + offs_m = tl.arange(0, BLOCK_N) + offs_k = tl.arange(0, BLOCK_DMODEL) + # initialize pointers to value-like data + q_ptrs = Q + (offs_qm[:, None] * stride_qm + offs_k[None, :] * stride_qk) + k_ptrs = K + (offs_n[:, None] * stride_kn + offs_k[None, :] * stride_kk) + v_ptrs = V + (offs_n[:, None] * stride_qm + offs_k[None, :] * stride_qk) + do_ptrs = DO + (offs_qm[:, None] * stride_qm + offs_k[None, :] * stride_qk) + dq_ptrs = DQ + (offs_qm[:, None] * stride_qm + offs_k[None, :] * stride_qk) + # pointer to row-wise quantities in value-like data + D_ptrs = D + off_hz * N_CTX + m_ptrs = M + off_hz * N_CTX + # initialize dv amd dk + dv = tl.zeros([BLOCK_M, BLOCK_DMODEL], dtype=tl.float32) + dk = tl.zeros([BLOCK_M, BLOCK_DMODEL], dtype=tl.float32) + # k and v stay in SRAM throughout + k = tl.load(k_ptrs) + v = tl.load(v_ptrs) + # loop over rows + for start_m in range(lo, num_block * BLOCK_M, BLOCK_M): + offs_m_curr = start_m + offs_m + # load q, k, v, do on-chip + q = tl.load(q_ptrs) + # recompute p = softmax(qk, dim=-1).T + # NOTE: `do` is pre-divided by `l`; no normalization here + qk = tl.dot(q, k, trans_b=True) + qk = tl.where(offs_m_curr[:, None] >= (offs_n[None, :]), qk, float("-inf")) + m = tl.load(m_ptrs + offs_m_curr) + p = tl.exp(qk * sm_scale - m[:, None]) + # compute dv + do = tl.load(do_ptrs) + dv += tl.dot(p.to(tl.float16), do, trans_a=True) + # compute dp = dot(v, do) + Di = tl.load(D_ptrs + offs_m_curr) + dp = tl.zeros([BLOCK_M, BLOCK_N], dtype=tl.float32) - Di[:, None] + dp += tl.dot(do, v, trans_b=True) + # compute ds = p * (dp - delta[:, None]) + ds = p * dp * sm_scale + # compute dk = dot(ds.T, q) + dk += tl.dot(ds.to(tl.float16), q, trans_a=True) + # # compute dq + dq = tl.load(dq_ptrs, eviction_policy="evict_last") + dq += tl.dot(ds.to(tl.float16), k) + tl.store(dq_ptrs, dq, eviction_policy="evict_last") + # # increment pointers + dq_ptrs += BLOCK_M * stride_qm + q_ptrs += BLOCK_M * stride_qm + do_ptrs += BLOCK_M * stride_qm + # write-back + dv_ptrs = DV + (offs_n[:, None] * stride_qm + offs_k[None, :] * stride_qk) + dk_ptrs = DK + (offs_n[:, None] * stride_kn + offs_k[None, :] * stride_kk) + tl.store(dv_ptrs, dv) + tl.store(dk_ptrs, dk) + + +class _attention(torch.autograd.Function): + + @staticmethod + def forward(ctx, q, k, v, sm_scale): + BLOCK = 128 + # shape constraints + Lq, Lk = q.shape[-1], k.shape[-1] + assert Lq == Lk + o = torch.empty_like(q) + grid = (triton.cdiv(q.shape[2], BLOCK), q.shape[0] * q.shape[1]) + tmp = torch.empty((q.shape[0] * q.shape[1], q.shape[2]), device=q.device, dtype=torch.float32) + L = torch.empty((q.shape[0] * q.shape[1], q.shape[2]), device=q.device, dtype=torch.float32) + m = torch.empty((q.shape[0] * q.shape[1], q.shape[2]), device=q.device, dtype=torch.float32) + _fwd_kernel[grid]( + q, k, v, sm_scale, + tmp, L, m, + o, + q.stride(0), q.stride(1), q.stride(2), q.stride(3), + k.stride(0), k.stride(1), k.stride(2), k.stride(3), + v.stride(0), v.stride(1), v.stride(2), v.stride(3), + o.stride(0), o.stride(1), o.stride(2), o.stride(3), + q.shape[0], q.shape[1], q.shape[2], + BLOCK_M=BLOCK, BLOCK_N=BLOCK, + BLOCK_DMODEL=64, num_warps=4, + num_stages=1, + ) + ctx.save_for_backward(q, k, v, o, L, m) + ctx.BLOCK = BLOCK + ctx.grid = grid + ctx.sm_scale = sm_scale + ctx.BLOCK_DMODEL = 64 + return o + + @staticmethod + def backward(ctx, do): + q, k, v, o, l, m = ctx.saved_tensors + do = do.contiguous() + dq = torch.zeros_like(q, dtype=torch.float32) + dk = torch.empty_like(k) + dv = torch.empty_like(v) + do_scaled = torch.empty_like(do) + delta = torch.empty_like(l) + _bwd_preprocess[(ctx.grid[0] * ctx.grid[1], )]( + o, do, l, + do_scaled, delta, + BLOCK_M=ctx.BLOCK, D_HEAD=ctx.BLOCK_DMODEL, + ) + _bwd_kernel[(ctx.grid[1],)]( + q, k, v, ctx.sm_scale, + o, do_scaled, + dq, dk, dv, + l, m, + delta, + q.stride(0), q.stride(1), q.stride(2), q.stride(3), + k.stride(0), k.stride(1), k.stride(2), k.stride(3), + v.stride(0), v.stride(1), v.stride(2), v.stride(3), + q.shape[0], q.shape[1], q.shape[2], + ctx.grid[0], + BLOCK_M=ctx.BLOCK, BLOCK_N=ctx.BLOCK, + BLOCK_DMODEL=ctx.BLOCK_DMODEL, num_warps=8, + num_stages=1, + ) + return dq, dk, dv, None + + +attention = _attention.apply + + +@pytest.mark.parametrize('Z, H, N_CTX, D_HEAD', [(3, 2, 2048, 64)]) +def test_op(Z, H, N_CTX, D_HEAD, dtype=torch.float16): + torch.manual_seed(20) + q = torch.empty((Z, H, N_CTX, D_HEAD), dtype=dtype, device="cuda").normal_(mean=0, std=.5).requires_grad_() + k = torch.empty((Z, H, N_CTX, D_HEAD), dtype=dtype, device="cuda").normal_(mean=0, std=.5).requires_grad_() + v = torch.empty((Z, H, N_CTX, D_HEAD), dtype=dtype, device="cuda").normal_(mean=0, std=.5).requires_grad_() + sm_scale = 0.3 + dout = torch.randn_like(q) + # reference implementation + M = torch.tril(torch.ones((N_CTX, N_CTX), device="cuda")) + p = torch.matmul(q, k.transpose(2, 3)) * sm_scale + for z in range(Z): + for h in range(H): + p[:, :, M == 0] = float("-inf") + p = torch.softmax(p.float(), dim=-1).half() + ref_out = torch.matmul(p, v) + ref_out.backward(dout) + ref_dv, v.grad = v.grad.clone(), None + ref_dk, k.grad = k.grad.clone(), None + ref_dq, q.grad = q.grad.clone(), None + # triton implementation + tri_out = attention(q, k, v, sm_scale) + tri_out.backward(dout) + tri_dv, v.grad = v.grad.clone(), None + tri_dk, k.grad = k.grad.clone(), None + tri_dq, q.grad = q.grad.clone(), None + # compare + triton.testing.assert_almost_equal(ref_out, tri_out) + triton.testing.assert_almost_equal(ref_dv, tri_dv) + triton.testing.assert_almost_equal(ref_dk, tri_dk) + triton.testing.assert_almost_equal(ref_dq, tri_dq) + + +try: + from flash_attn.flash_attn_interface import flash_attn_func + HAS_FLASH = True +except BaseException: + HAS_FLASH = False + +BATCH, N_HEADS, N_CTX, D_HEAD = 4, 48, 4096, 64 +# vary seq length for fixed head and batch=4 +configs = [triton.testing.Benchmark( + x_names=['N_CTX'], + x_vals=[2**i for i in range(10, 16)], + line_arg='provider', + line_vals=['triton'] + (['flash'] if HAS_FLASH else []), + line_names=['Triton'] + (['Flash'] if HAS_FLASH else []), + styles=[('red', '-'), ('blue', '-')], + ylabel='ms', + plot_name=f'fused-attention-batch{BATCH}-head{N_HEADS}-d{D_HEAD}-{mode}', + args={'H': N_HEADS, 'BATCH': BATCH, 'D_HEAD': D_HEAD, 'dtype': torch.float16, 'mode': mode} +) for mode in ['bwd']] + + +@triton.testing.perf_report(configs) +def bench_flash_attention(BATCH, H, N_CTX, D_HEAD, mode, provider, dtype=torch.float16, device="cuda"): + assert mode in ['fwd', 'bwd'] + warmup = 25 + rep = 100 + if provider == "triton": + q = torch.randn((BATCH, H, N_CTX, D_HEAD), dtype=dtype, device="cuda", requires_grad=True) + k = torch.randn((BATCH, H, N_CTX, D_HEAD), dtype=dtype, device="cuda", requires_grad=True) + v = torch.randn((BATCH, H, N_CTX, D_HEAD), dtype=dtype, device="cuda", requires_grad=True) + sm_scale = 1.3 + fn = lambda: attention(q, k, v, sm_scale) + if mode == 'bwd': + o = fn() + do = torch.randn_like(o) + fn = lambda: o.backward(do, retain_graph=True) + ms = triton.testing.do_bench(fn, percentiles=None, warmup=warmup, rep=rep) + return ms + if provider == "flash": + lengths = torch.full((BATCH,), fill_value=N_CTX, device=device) + cu_seqlens = torch.zeros((BATCH + 1,), device=device, dtype=torch.int32) + cu_seqlens[1:] = lengths.cumsum(0) + qkv = torch.randn((BATCH * N_CTX, 3, H, D_HEAD), dtype=dtype, device=device, requires_grad=True) + fn = lambda: flash_attn_func(qkv, cu_seqlens, 0., N_CTX, causal=True) + if mode == 'bwd': + o = fn() + do = torch.randn_like(o) + fn = lambda: o.backward(do, retain_graph=True) + ms = triton.testing.do_bench(fn, percentiles=None, warmup=warmup, rep=rep) + return ms + +# only works on A100 at the moment +# bench_flash_attention.run(save_path='.', print_data=True) diff --git a/master/_downloads/662999063954282841dc90b8945f85ce/tutorials_jupyter.zip b/master/_downloads/662999063954282841dc90b8945f85ce/tutorials_jupyter.zip index 6dc0a1b1e4f3e3213b3c662b1194af7ae7b95ce7..25a09311b472a752842a95b9a1376ac47bce8989 100644 GIT binary patch delta 15016 zcmcIrYiu0Xb*3WOPF%}&ZCRCN$-Wj5?^51fK19(njdd)EQl*HbWQ%rOlhSawGs_+A zymn@GNlLb-P7}0o(jfMX!$E-p z{n4W6ckW{z%cUec?n)$g?mhS1bI(2Rd*_FLvi~fckOw4{;9LGv(qfHYYop0BXivkSe;EK zjc(~AJIF-;$n=uS=LtF7U=G(S>6mlaDlfL0*%EUW|xw;s}srhyT_9M?oK5; z>|M#x-l4<{_9idm@1OOKCI8hsnoO=enpkV>>KE63`_@^j$>!PPYw$g z!DvOHquVx{-x3+0Y--DHnrnQD=1R`Ib8GU}@9#;B&;N8XN9|l?%fa*Y9Nc{JPcPm3 zDYxrrYkJ^^iT3yZfF`+J&H^> zvOM?dPm<|v@kwfAM^)pJyU?;ihW|QS2&~9+ndSJl>0pdbqnOuZQOjf}Z9Qyd_eM6YaevjPxMVoaC#~z307VQ)^v@F2J1l zfwvmyj%FF<@e#qeVVDgovUHp4U$YsSQ7C#aFw`6jl-OW-Bn`j0r7>0q`$ut{RN#c8bCbIl8wP3@kedW}Wus<7#NZ#$({Yj46G zLk?PMxH|xO+f}`TkhgQldz+A74|m65v0T?6xHiB{#S3sIe+*+MXVjmkwBNbLoJT27BvS9i(uPJfB?g&mQts+-C%&Jvx{kkBl(`HqzTCED2sGAf(txgKY!%}_SOrhGY zTr&*;k^!5S&P}_KuuD5)z&*?X4KFHpD#W7*(MG7P)E9!TS;Tk{Mnf9>jJOoTTFVT~ za=*SmURT^pRnkrMeI%|huvdvuRmf3p(gI^3k(VmWuP}(%rHlY-mfY6Y%N?vh89`!% zFS-zHp$j5Q(5b-~i8C~WRKSK^r;J(hSU4S0Y)CQ4yJA2#8jYH3uBCKX4v?U+!Y9nF zNVol#p3)Q(jG&5!=ipY%C<7y?O9R0`gq&9(K1gIillgG|kmFQ-6;K_&8^w7gfDmR2 z8fM(FGe2wcg|7$k9Q!CuMU&?s(C0%UC1lFy3__uW?one*Tf~Tn6gSbIq6RL$t_%V6 zAcVr2Wns%I+1MQO^7xeE2>20FwqsBK@-%DdJ(I<-kQ^P~QOj{m!-8qBH@Nx9W(7hl zjedh5MeM-kWws?7O+H4EAq+Tnh}(%+%PDZLom&FQtzV10G6r(}7@x}Z5+#}5LRfpb z&S7>fNhSW))z+QQh$KO*leA`AI?Mvo0Xu?X96@d+B<=;~s)alzkdcKnk`$io6=nbk zmE|l%8L^5ohS?edUX!ipjW)CSCP?>VD_1ppeMco-=-l-nQ`vb|VCR-ZGA`|N_{3aq zW!E6r%00QzA;ChvU>+}R4vswV0sX?)%J9ca;}<8Dqs*3jX>gPo%UrK3=j^5q9f7i3 zy|+(vrV9dbg2

S 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 diff --git a/master/_downloads/763344228ae6bc253ed1a6cf586aa30d/tutorials_python.zip b/master/_downloads/763344228ae6bc253ed1a6cf586aa30d/tutorials_python.zip index e46aa1875f6200111dc75e9c3658f89d8277e9f8..cafc4140835bd55e5384c4c41fb2d8c5caae139d 100644 GIT binary patch delta 14926 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 Lp+o2Yo8JBphN+!u delta 624 zcmZ4dhPmwp6K{YwGm8iV2>fEYy^%NEnt2=Z?ak@d!jil|M#zu%x$A7S85nFfw}))y zpB$N@D6DD4r2qv*`Q^n5whEb(KdLBA{+wbv*(B9)a%QU2;g#C{6{6 zfF!b0i}F%)CUX^iW;Qm`ne137!RlvgXk;;&u~1}kO0inKj)Gr)UaAh8VUA_Gy*YBbfhhAtAfx9@k1Q`ElL#|B$|k#i zaRWu!R5r0 N%ZHJHVaX;C7XT$UtLOj# diff --git a/master/_downloads/935c0dd0fbeb4b2e69588471cbb2d4b2/05-layer-norm.py b/master/_downloads/935c0dd0fbeb4b2e69588471cbb2d4b2/05-layer-norm.py index 9880b428f..333cb80ec 100644 --- a/master/_downloads/935c0dd0fbeb4b2e69588471cbb2d4b2/05-layer-norm.py +++ b/master/_downloads/935c0dd0fbeb4b2e69588471cbb2d4b2/05-layer-norm.py @@ -128,17 +128,19 @@ def _layer_norm_bwd_dwdb( cols = pid * BLOCK_SIZE_N + tl.arange(0, BLOCK_SIZE_N) dw = tl.zeros((BLOCK_SIZE_M, BLOCK_SIZE_N), dtype=tl.float32) db = tl.zeros((BLOCK_SIZE_M, BLOCK_SIZE_N), dtype=tl.float32) - for i in range(0, M, BLOCK_SIZE_M): - rows = i + tl.arange(0, BLOCK_SIZE_M) - mask = (rows[:, None] < M) & (cols[None, :] < N) - offs = rows[:, None] * N + cols[None, :] - a = tl.load(A + offs, mask=mask, other=0.).to(tl.float32) - dout = tl.load(DOut + offs, mask=mask, other=0.).to(tl.float32) - mean = tl.load(Mean + rows, mask=rows < M, other=0.) - rstd = tl.load(Var + rows, mask=rows < M, other=0.) - a_hat = (a - mean[:, None]) * rstd[:, None] - dw += dout * a_hat - db += dout + UNROLL: tl.constexpr = 4 + for i in range(0, M, BLOCK_SIZE_M * UNROLL): + for j in range(UNROLL): + rows = i + j * BLOCK_SIZE_M + tl.arange(0, BLOCK_SIZE_M) + mask = (rows[:, None] < M) & (cols[None, :] < N) + offs = rows[:, None] * N + cols[None, :] + a = tl.load(A + offs, mask=mask, other=0.).to(tl.float32) + dout = tl.load(DOut + offs, mask=mask, other=0.).to(tl.float32) + mean = tl.load(Mean + rows, mask=rows < M, other=0.) + rstd = tl.load(Var + rows, mask=rows < M, other=0.) + a_hat = (a - mean[:, None]) * rstd[:, None] + dw += dout * a_hat + db += dout sum_dw = tl.sum(dw, axis=0) sum_db = tl.sum(db, axis=0) tl.store(DW + cols, sum_dw, mask=cols < N) @@ -211,7 +213,15 @@ class LayerNorm(torch.autograd.Function): BLOCK_SIZE_N=ctx.BLOCK_SIZE, num_warps=ctx.num_warps, ) - # accumulate partial sums in separate kernel + if N > 10240: + BLOCK_SIZE_N = 128 + BLOCK_SIZE_M = 32 + num_warps = 4 + else: + # maximize occupancy for small N + BLOCK_SIZE_N = 16 + BLOCK_SIZE_M = 16 + num_warps = 8 grid = lambda meta: [triton.cdiv(N, meta["BLOCK_SIZE_N"])] _layer_norm_bwd_dwdb[grid]( a, dout, @@ -220,17 +230,11 @@ class LayerNorm(torch.autograd.Function): dbias, M, N, - BLOCK_SIZE_M=32, - BLOCK_SIZE_N=128, + BLOCK_SIZE_M=BLOCK_SIZE_M, + BLOCK_SIZE_N=BLOCK_SIZE_N, + num_warps=num_warps ) - return (da, None, dweight, dbias, None, None, - None, None, None, None, - None, - None, None, None, - None, - None, None, None, - None, None, None, - None, None, None) + return (da, None, dweight, dbias, None) def layer_norm(a, normalized_shape, weight, bias, eps): diff --git a/master/_downloads/ae7fff29e1b574187bc930ed94bcc353/05-layer-norm.ipynb b/master/_downloads/ae7fff29e1b574187bc930ed94bcc353/05-layer-norm.ipynb index 0930144cf..6838e6470 100644 --- a/master/_downloads/ae7fff29e1b574187bc930ed94bcc353/05-layer-norm.ipynb +++ b/master/_downloads/ae7fff29e1b574187bc930ed94bcc353/05-layer-norm.ipynb @@ -26,7 +26,7 @@ }, "outputs": [], "source": [ - "import torch\n\nimport triton\nimport triton.language as tl\n\ntry:\n # This is https://github.com/NVIDIA/apex, NOT the apex on PyPi, so it\n # should not be added to extras_require in setup.py.\n import apex\n HAS_APEX = True\nexcept ModuleNotFoundError:\n HAS_APEX = False\n\n\n@triton.jit\ndef _layer_norm_fwd_fused(\n Out,\n A,\n Weight,\n Bias,\n Mean, Rstd,\n stride, N, eps,\n BLOCK_SIZE: tl.constexpr,\n):\n # position of elements processed by this program\n row = tl.program_id(0)\n Out += row * stride\n A += row * stride\n # compute mean\n mean = 0\n _mean = tl.zeros([BLOCK_SIZE], dtype=tl.float32)\n for off in range(0, N, BLOCK_SIZE):\n cols = off + tl.arange(0, BLOCK_SIZE)\n a = tl.load(A + cols, mask=cols < N, other=0., eviction_policy=\"evict_last\").to(tl.float32)\n _mean += a\n mean = tl.sum(_mean, axis=0) / N\n # compute variance\n _var = tl.zeros([BLOCK_SIZE], dtype=tl.float32)\n for off in range(0, N, BLOCK_SIZE):\n cols = off + tl.arange(0, BLOCK_SIZE)\n a = tl.load(A + cols, mask=cols < N, other=0., eviction_policy=\"evict_last\").to(tl.float32)\n a = tl.where(cols < N, a - mean, 0.)\n _var += a * a\n var = tl.sum(_var, axis=0) / N\n rstd = 1 / tl.sqrt(var + eps)\n # write-back mean/rstd\n tl.store(Mean + row, mean)\n tl.store(Rstd + row, rstd)\n # multiply by weight and add bias\n for off in range(0, N, BLOCK_SIZE):\n cols = off + tl.arange(0, BLOCK_SIZE)\n mask = cols < N\n weight = tl.load(Weight + cols, mask=mask)\n bias = tl.load(Bias + cols, mask=mask)\n a = tl.load(A + cols, mask=mask, other=0., eviction_policy=\"evict_first\").to(tl.float32)\n a_hat = (a - mean) * rstd\n out = a_hat * weight + bias\n # # write-back\n tl.store(Out + cols, out, mask=mask)\n\n# Backward pass (DA + partial DW + partial DB)\n\n\n@triton.jit\ndef _layer_norm_bwd_dx_fused(\n _DA,\n _DOut,\n _A,\n Weight,\n Mean, Rstd,\n stride, NumRows, NumCols, eps,\n BLOCK_SIZE_N: tl.constexpr,\n):\n # position of elements processed by this program\n pid = tl.program_id(0)\n row = pid\n A = _A + row * stride\n DOut = _DOut + row * stride\n DA = _DA + row * stride\n mean = tl.load(Mean + row)\n rstd = tl.load(Rstd + row)\n # load data to SRAM\n _mean1 = tl.zeros([BLOCK_SIZE_N], dtype=tl.float32)\n _mean2 = tl.zeros([BLOCK_SIZE_N], dtype=tl.float32)\n for off in range(0, NumCols, BLOCK_SIZE_N):\n cols = off + tl.arange(0, BLOCK_SIZE_N)\n mask = cols < NumCols\n a = tl.load(A + cols, mask=mask, other=0).to(tl.float32)\n dout = tl.load(DOut + cols, mask=mask, other=0).to(tl.float32)\n weight = tl.load(Weight + cols, mask=mask, other=0).to(tl.float32)\n a_hat = (a - mean) * rstd\n wdout = weight * dout\n _mean1 += a_hat * wdout\n _mean2 += wdout\n mean1 = tl.sum(_mean1, axis=0) / NumCols\n mean2 = 0.\n mean2 = tl.sum(_mean2, axis=0) / NumCols\n for off in range(0, NumCols, BLOCK_SIZE_N):\n cols = off + tl.arange(0, BLOCK_SIZE_N)\n mask = cols < NumCols\n a = tl.load(A + cols, mask=mask, other=0).to(tl.float32)\n dout = tl.load(DOut + cols, mask=mask, other=0).to(tl.float32)\n weight = tl.load(Weight + cols, mask=mask, other=0).to(tl.float32)\n a_hat = (a - mean) * rstd\n wdout = weight * dout\n da = (wdout - (a_hat * mean1 + mean2)) * rstd\n # write-back dx\n tl.store(DA + cols, da, mask=mask)\n\n\n# Backward pass (total DW + total DB)\n@triton.jit\ndef _layer_norm_bwd_dwdb(\n A, DOut,\n Mean, Var,\n DW,\n DB,\n M, N,\n BLOCK_SIZE_M: tl.constexpr,\n BLOCK_SIZE_N: tl.constexpr,\n):\n pid = tl.program_id(0)\n cols = pid * BLOCK_SIZE_N + tl.arange(0, BLOCK_SIZE_N)\n dw = tl.zeros((BLOCK_SIZE_M, BLOCK_SIZE_N), dtype=tl.float32)\n db = tl.zeros((BLOCK_SIZE_M, BLOCK_SIZE_N), dtype=tl.float32)\n for i in range(0, M, BLOCK_SIZE_M):\n rows = i + tl.arange(0, BLOCK_SIZE_M)\n mask = (rows[:, None] < M) & (cols[None, :] < N)\n offs = rows[:, None] * N + cols[None, :]\n a = tl.load(A + offs, mask=mask, other=0.).to(tl.float32)\n dout = tl.load(DOut + offs, mask=mask, other=0.).to(tl.float32)\n mean = tl.load(Mean + rows, mask=rows < M, other=0.)\n rstd = tl.load(Var + rows, mask=rows < M, other=0.)\n a_hat = (a - mean[:, None]) * rstd[:, None]\n dw += dout * a_hat\n db += dout\n sum_dw = tl.sum(dw, axis=0)\n sum_db = tl.sum(db, axis=0)\n tl.store(DW + cols, sum_dw, mask=cols < N)\n tl.store(DB + cols, sum_db, mask=cols < N)\n\n\nclass LayerNorm(torch.autograd.Function):\n @staticmethod\n def forward(ctx, a, normalized_shape, weight, bias, eps):\n # allocate output\n out = torch.empty_like(a)\n # reshape input data into 2D tensor\n a_arg = a.reshape(-1, a.shape[-1])\n M, N = a_arg.shape\n mean = torch.empty((M,), dtype=torch.float32, device=\"cuda\")\n rstd = torch.empty((M,), dtype=torch.float32, device=\"cuda\")\n # Less than 64KB per feature: enqueue fused kernel\n MAX_FUSED_SIZE = 65536 // a.element_size()\n BLOCK_SIZE = min(MAX_FUSED_SIZE, triton.next_power_of_2(N))\n BLOCK_SIZE = max(BLOCK_SIZE, 128)\n BLOCK_SIZE = min(BLOCK_SIZE, 4096)\n # heuristics for number of warps\n num_warps = min(max(BLOCK_SIZE // 256, 1), 8)\n _layer_norm_fwd_fused[(M,)](\n out,\n a_arg,\n weight,\n bias,\n mean, rstd,\n a_arg.stride(0), N, eps,\n BLOCK_SIZE=BLOCK_SIZE,\n num_warps=num_warps,\n )\n ctx.save_for_backward(\n a, weight, bias, mean, rstd,\n )\n ctx.BLOCK_SIZE = BLOCK_SIZE\n ctx.num_warps = num_warps\n ctx.eps = eps\n if hasattr(bias, \"config\"):\n assert bias.config.grad_scale_name == weight.config.grad_scale_name\n grad_scale_name = bias.config.grad_scale_name\n else:\n grad_scale_name = None\n ctx.grad_scale_gain_bias_name = grad_scale_name\n return out\n\n @staticmethod\n def backward(ctx, dout):\n assert dout.is_contiguous()\n a, weight, bias, mean, var = ctx.saved_tensors\n # heuristics for amount of parallel reduction stream for DG/DB\n N = weight.shape[0]\n # allocate output\n da = torch.empty_like(dout)\n # enqueue kernel using forward pass heuristics\n # also compute partial sums for DW and DB\n x_arg = a.reshape(-1, a.shape[-1])\n M, N = x_arg.shape\n dweight = torch.empty((weight.shape[0],), dtype=weight.dtype, device=weight.device)\n dbias = torch.empty((weight.shape[0],), dtype=weight.dtype, device=weight.device)\n _layer_norm_bwd_dx_fused[(M,)](\n da,\n dout,\n a,\n weight,\n mean, var,\n x_arg.stride(0), M, N,\n ctx.eps,\n BLOCK_SIZE_N=ctx.BLOCK_SIZE,\n num_warps=ctx.num_warps,\n )\n # accumulate partial sums in separate kernel\n grid = lambda meta: [triton.cdiv(N, meta[\"BLOCK_SIZE_N\"])]\n _layer_norm_bwd_dwdb[grid](\n a, dout,\n mean, var,\n dweight,\n dbias,\n M,\n N,\n BLOCK_SIZE_M=32,\n BLOCK_SIZE_N=128,\n )\n return (da, None, dweight, dbias, None, None,\n None, None, None, None,\n None,\n None, None, None,\n None,\n None, None, None,\n None, None, None,\n None, None, None)\n\n\ndef layer_norm(a, normalized_shape, weight, bias, eps):\n return LayerNorm.apply(a, normalized_shape, weight, bias, eps)\n\n\ndef test_layer_norm(M, N, dtype, eps=1e-5, device='cuda'):\n torch.manual_seed(0)\n # create data\n x_shape = (M, N)\n w_shape = (x_shape[-1], )\n weight = torch.rand(w_shape, dtype=dtype, device='cuda', requires_grad=True)\n bias = torch.rand(w_shape, dtype=dtype, device='cuda', requires_grad=True)\n x = -2.3 + 0.5 * torch.randn(x_shape, dtype=dtype, device='cuda')\n dy = .1 * torch.randn_like(x)\n x.requires_grad_(True)\n # forward pass\n y_tri = layer_norm(x, w_shape, weight, bias, eps)\n y_ref = torch.nn.functional.layer_norm(x, w_shape, weight, bias, eps).to(dtype)\n # backward pass (triton)\n y_tri.backward(dy, retain_graph=True)\n dx_tri, dw_tri, db_tri = [_.grad.clone() for _ in [x, weight, bias]]\n x.grad, weight.grad, bias.grad = None, None, None\n # backward pass (torch)\n y_ref.backward(dy, retain_graph=True)\n dx_ref, dw_ref, db_ref = [_.grad.clone() for _ in [x, weight, bias]]\n # compare\n triton.testing.assert_almost_equal(y_tri, y_ref)\n triton.testing.assert_almost_equal(dx_tri, dx_ref)\n triton.testing.assert_almost_equal(db_tri, db_ref, decimal=1)\n triton.testing.assert_almost_equal(dw_tri, dw_ref, decimal=1)\n\n\n@triton.testing.perf_report(\n triton.testing.Benchmark(\n x_names=['N'],\n x_vals=[512 * i for i in range(2, 32)],\n line_arg='provider',\n line_vals=['triton', 'torch'] + (['apex'] if HAS_APEX else []),\n line_names=['Triton', 'Torch'] + (['Apex'] if HAS_APEX else []),\n styles=[('blue', '-'), ('green', '-'), ('orange', '-')],\n ylabel='GB/s',\n plot_name='layer-norm',\n args={'M': 4096, 'dtype': torch.float16, 'mode': 'forward'}\n )\n)\ndef bench_layer_norm(M, N, dtype, provider, mode, eps=1e-5, device='cuda'):\n # create data\n x_shape = (M, N)\n w_shape = (x_shape[-1], )\n weight = torch.rand(w_shape, dtype=dtype, device='cuda', requires_grad=True)\n bias = torch.rand(w_shape, dtype=dtype, device='cuda', requires_grad=True)\n x = -2.3 + 0.5 * torch.randn(x_shape, dtype=dtype, device='cuda')\n dy = .1 * torch.randn_like(x)\n x.requires_grad_(True)\n # utility functions\n if provider == 'triton':\n y_fwd = lambda: layer_norm(x, w_shape, weight, bias, eps)\n if provider == 'torch':\n y_fwd = lambda: torch.nn.functional.layer_norm(x, w_shape, weight, bias, eps)\n if provider == 'apex':\n apex_layer_norm = apex.normalization.FusedLayerNorm(w_shape).to(x.device).to(x.dtype)\n y_fwd = lambda: apex_layer_norm(x)\n # forward pass\n if mode == 'forward':\n gbps = lambda ms: 2 * x.numel() * x.element_size() / ms * 1e-6\n ms, min_ms, max_ms = triton.testing.do_bench(y_fwd, rep=500)\n # backward pass\n if mode == 'backward':\n gbps = lambda ms: 3 * x.numel() * x.element_size() / ms * 1e-6\n y = y_fwd()\n ms, min_ms, max_ms = triton.testing.do_bench(lambda: y.backward(dy, retain_graph=True),\n grad_to_none=[x], rep=500)\n return gbps(ms), gbps(max_ms), gbps(min_ms)\n\n\n# test_layer_norm(1151, 8192, torch.float16)\nbench_layer_norm.run(save_path='.', print_data=True)" + "import torch\n\nimport triton\nimport triton.language as tl\n\ntry:\n # This is https://github.com/NVIDIA/apex, NOT the apex on PyPi, so it\n # should not be added to extras_require in setup.py.\n import apex\n HAS_APEX = True\nexcept ModuleNotFoundError:\n HAS_APEX = False\n\n\n@triton.jit\ndef _layer_norm_fwd_fused(\n Out,\n A,\n Weight,\n Bias,\n Mean, Rstd,\n stride, N, eps,\n BLOCK_SIZE: tl.constexpr,\n):\n # position of elements processed by this program\n row = tl.program_id(0)\n Out += row * stride\n A += row * stride\n # compute mean\n mean = 0\n _mean = tl.zeros([BLOCK_SIZE], dtype=tl.float32)\n for off in range(0, N, BLOCK_SIZE):\n cols = off + tl.arange(0, BLOCK_SIZE)\n a = tl.load(A + cols, mask=cols < N, other=0., eviction_policy=\"evict_last\").to(tl.float32)\n _mean += a\n mean = tl.sum(_mean, axis=0) / N\n # compute variance\n _var = tl.zeros([BLOCK_SIZE], dtype=tl.float32)\n for off in range(0, N, BLOCK_SIZE):\n cols = off + tl.arange(0, BLOCK_SIZE)\n a = tl.load(A + cols, mask=cols < N, other=0., eviction_policy=\"evict_last\").to(tl.float32)\n a = tl.where(cols < N, a - mean, 0.)\n _var += a * a\n var = tl.sum(_var, axis=0) / N\n rstd = 1 / tl.sqrt(var + eps)\n # write-back mean/rstd\n tl.store(Mean + row, mean)\n tl.store(Rstd + row, rstd)\n # multiply by weight and add bias\n for off in range(0, N, BLOCK_SIZE):\n cols = off + tl.arange(0, BLOCK_SIZE)\n mask = cols < N\n weight = tl.load(Weight + cols, mask=mask)\n bias = tl.load(Bias + cols, mask=mask)\n a = tl.load(A + cols, mask=mask, other=0., eviction_policy=\"evict_first\").to(tl.float32)\n a_hat = (a - mean) * rstd\n out = a_hat * weight + bias\n # # write-back\n tl.store(Out + cols, out, mask=mask)\n\n# Backward pass (DA + partial DW + partial DB)\n\n\n@triton.jit\ndef _layer_norm_bwd_dx_fused(\n _DA,\n _DOut,\n _A,\n Weight,\n Mean, Rstd,\n stride, NumRows, NumCols, eps,\n BLOCK_SIZE_N: tl.constexpr,\n):\n # position of elements processed by this program\n pid = tl.program_id(0)\n row = pid\n A = _A + row * stride\n DOut = _DOut + row * stride\n DA = _DA + row * stride\n mean = tl.load(Mean + row)\n rstd = tl.load(Rstd + row)\n # load data to SRAM\n _mean1 = tl.zeros([BLOCK_SIZE_N], dtype=tl.float32)\n _mean2 = tl.zeros([BLOCK_SIZE_N], dtype=tl.float32)\n for off in range(0, NumCols, BLOCK_SIZE_N):\n cols = off + tl.arange(0, BLOCK_SIZE_N)\n mask = cols < NumCols\n a = tl.load(A + cols, mask=mask, other=0).to(tl.float32)\n dout = tl.load(DOut + cols, mask=mask, other=0).to(tl.float32)\n weight = tl.load(Weight + cols, mask=mask, other=0).to(tl.float32)\n a_hat = (a - mean) * rstd\n wdout = weight * dout\n _mean1 += a_hat * wdout\n _mean2 += wdout\n mean1 = tl.sum(_mean1, axis=0) / NumCols\n mean2 = 0.\n mean2 = tl.sum(_mean2, axis=0) / NumCols\n for off in range(0, NumCols, BLOCK_SIZE_N):\n cols = off + tl.arange(0, BLOCK_SIZE_N)\n mask = cols < NumCols\n a = tl.load(A + cols, mask=mask, other=0).to(tl.float32)\n dout = tl.load(DOut + cols, mask=mask, other=0).to(tl.float32)\n weight = tl.load(Weight + cols, mask=mask, other=0).to(tl.float32)\n a_hat = (a - mean) * rstd\n wdout = weight * dout\n da = (wdout - (a_hat * mean1 + mean2)) * rstd\n # write-back dx\n tl.store(DA + cols, da, mask=mask)\n\n\n# Backward pass (total DW + total DB)\n@triton.jit\ndef _layer_norm_bwd_dwdb(\n A, DOut,\n Mean, Var,\n DW,\n DB,\n M, N,\n BLOCK_SIZE_M: tl.constexpr,\n BLOCK_SIZE_N: tl.constexpr,\n):\n pid = tl.program_id(0)\n cols = pid * BLOCK_SIZE_N + tl.arange(0, BLOCK_SIZE_N)\n dw = tl.zeros((BLOCK_SIZE_M, BLOCK_SIZE_N), dtype=tl.float32)\n db = tl.zeros((BLOCK_SIZE_M, BLOCK_SIZE_N), dtype=tl.float32)\n UNROLL: tl.constexpr = 4\n for i in range(0, M, BLOCK_SIZE_M * UNROLL):\n for j in range(UNROLL):\n rows = i + j * BLOCK_SIZE_M + tl.arange(0, BLOCK_SIZE_M)\n mask = (rows[:, None] < M) & (cols[None, :] < N)\n offs = rows[:, None] * N + cols[None, :]\n a = tl.load(A + offs, mask=mask, other=0.).to(tl.float32)\n dout = tl.load(DOut + offs, mask=mask, other=0.).to(tl.float32)\n mean = tl.load(Mean + rows, mask=rows < M, other=0.)\n rstd = tl.load(Var + rows, mask=rows < M, other=0.)\n a_hat = (a - mean[:, None]) * rstd[:, None]\n dw += dout * a_hat\n db += dout\n sum_dw = tl.sum(dw, axis=0)\n sum_db = tl.sum(db, axis=0)\n tl.store(DW + cols, sum_dw, mask=cols < N)\n tl.store(DB + cols, sum_db, mask=cols < N)\n\n\nclass LayerNorm(torch.autograd.Function):\n @staticmethod\n def forward(ctx, a, normalized_shape, weight, bias, eps):\n # allocate output\n out = torch.empty_like(a)\n # reshape input data into 2D tensor\n a_arg = a.reshape(-1, a.shape[-1])\n M, N = a_arg.shape\n mean = torch.empty((M,), dtype=torch.float32, device=\"cuda\")\n rstd = torch.empty((M,), dtype=torch.float32, device=\"cuda\")\n # Less than 64KB per feature: enqueue fused kernel\n MAX_FUSED_SIZE = 65536 // a.element_size()\n BLOCK_SIZE = min(MAX_FUSED_SIZE, triton.next_power_of_2(N))\n BLOCK_SIZE = max(BLOCK_SIZE, 128)\n BLOCK_SIZE = min(BLOCK_SIZE, 4096)\n # heuristics for number of warps\n num_warps = min(max(BLOCK_SIZE // 256, 1), 8)\n _layer_norm_fwd_fused[(M,)](\n out,\n a_arg,\n weight,\n bias,\n mean, rstd,\n a_arg.stride(0), N, eps,\n BLOCK_SIZE=BLOCK_SIZE,\n num_warps=num_warps,\n )\n ctx.save_for_backward(\n a, weight, bias, mean, rstd,\n )\n ctx.BLOCK_SIZE = BLOCK_SIZE\n ctx.num_warps = num_warps\n ctx.eps = eps\n if hasattr(bias, \"config\"):\n assert bias.config.grad_scale_name == weight.config.grad_scale_name\n grad_scale_name = bias.config.grad_scale_name\n else:\n grad_scale_name = None\n ctx.grad_scale_gain_bias_name = grad_scale_name\n return out\n\n @staticmethod\n def backward(ctx, dout):\n assert dout.is_contiguous()\n a, weight, bias, mean, var = ctx.saved_tensors\n # heuristics for amount of parallel reduction stream for DG/DB\n N = weight.shape[0]\n # allocate output\n da = torch.empty_like(dout)\n # enqueue kernel using forward pass heuristics\n # also compute partial sums for DW and DB\n x_arg = a.reshape(-1, a.shape[-1])\n M, N = x_arg.shape\n dweight = torch.empty((weight.shape[0],), dtype=weight.dtype, device=weight.device)\n dbias = torch.empty((weight.shape[0],), dtype=weight.dtype, device=weight.device)\n _layer_norm_bwd_dx_fused[(M,)](\n da,\n dout,\n a,\n weight,\n mean, var,\n x_arg.stride(0), M, N,\n ctx.eps,\n BLOCK_SIZE_N=ctx.BLOCK_SIZE,\n num_warps=ctx.num_warps,\n )\n if N > 10240:\n BLOCK_SIZE_N = 128\n BLOCK_SIZE_M = 32\n num_warps = 4\n else:\n # maximize occupancy for small N\n BLOCK_SIZE_N = 16\n BLOCK_SIZE_M = 16\n num_warps = 8\n grid = lambda meta: [triton.cdiv(N, meta[\"BLOCK_SIZE_N\"])]\n _layer_norm_bwd_dwdb[grid](\n a, dout,\n mean, var,\n dweight,\n dbias,\n M,\n N,\n BLOCK_SIZE_M=BLOCK_SIZE_M,\n BLOCK_SIZE_N=BLOCK_SIZE_N,\n num_warps=num_warps\n )\n return (da, None, dweight, dbias, None)\n\n\ndef layer_norm(a, normalized_shape, weight, bias, eps):\n return LayerNorm.apply(a, normalized_shape, weight, bias, eps)\n\n\ndef test_layer_norm(M, N, dtype, eps=1e-5, device='cuda'):\n torch.manual_seed(0)\n # create data\n x_shape = (M, N)\n w_shape = (x_shape[-1], )\n weight = torch.rand(w_shape, dtype=dtype, device='cuda', requires_grad=True)\n bias = torch.rand(w_shape, dtype=dtype, device='cuda', requires_grad=True)\n x = -2.3 + 0.5 * torch.randn(x_shape, dtype=dtype, device='cuda')\n dy = .1 * torch.randn_like(x)\n x.requires_grad_(True)\n # forward pass\n y_tri = layer_norm(x, w_shape, weight, bias, eps)\n y_ref = torch.nn.functional.layer_norm(x, w_shape, weight, bias, eps).to(dtype)\n # backward pass (triton)\n y_tri.backward(dy, retain_graph=True)\n dx_tri, dw_tri, db_tri = [_.grad.clone() for _ in [x, weight, bias]]\n x.grad, weight.grad, bias.grad = None, None, None\n # backward pass (torch)\n y_ref.backward(dy, retain_graph=True)\n dx_ref, dw_ref, db_ref = [_.grad.clone() for _ in [x, weight, bias]]\n # compare\n triton.testing.assert_almost_equal(y_tri, y_ref)\n triton.testing.assert_almost_equal(dx_tri, dx_ref)\n triton.testing.assert_almost_equal(db_tri, db_ref, decimal=1)\n triton.testing.assert_almost_equal(dw_tri, dw_ref, decimal=1)\n\n\n@triton.testing.perf_report(\n triton.testing.Benchmark(\n x_names=['N'],\n x_vals=[512 * i for i in range(2, 32)],\n line_arg='provider',\n line_vals=['triton', 'torch'] + (['apex'] if HAS_APEX else []),\n line_names=['Triton', 'Torch'] + (['Apex'] if HAS_APEX else []),\n styles=[('blue', '-'), ('green', '-'), ('orange', '-')],\n ylabel='GB/s',\n plot_name='layer-norm',\n args={'M': 4096, 'dtype': torch.float16, 'mode': 'forward'}\n )\n)\ndef bench_layer_norm(M, N, dtype, provider, mode, eps=1e-5, device='cuda'):\n # create data\n x_shape = (M, N)\n w_shape = (x_shape[-1], )\n weight = torch.rand(w_shape, dtype=dtype, device='cuda', requires_grad=True)\n bias = torch.rand(w_shape, dtype=dtype, device='cuda', requires_grad=True)\n x = -2.3 + 0.5 * torch.randn(x_shape, dtype=dtype, device='cuda')\n dy = .1 * torch.randn_like(x)\n x.requires_grad_(True)\n # utility functions\n if provider == 'triton':\n y_fwd = lambda: layer_norm(x, w_shape, weight, bias, eps)\n if provider == 'torch':\n y_fwd = lambda: torch.nn.functional.layer_norm(x, w_shape, weight, bias, eps)\n if provider == 'apex':\n apex_layer_norm = apex.normalization.FusedLayerNorm(w_shape).to(x.device).to(x.dtype)\n y_fwd = lambda: apex_layer_norm(x)\n # forward pass\n if mode == 'forward':\n gbps = lambda ms: 2 * x.numel() * x.element_size() / ms * 1e-6\n ms, min_ms, max_ms = triton.testing.do_bench(y_fwd, rep=500)\n # backward pass\n if mode == 'backward':\n gbps = lambda ms: 3 * x.numel() * x.element_size() / ms * 1e-6\n y = y_fwd()\n ms, min_ms, max_ms = triton.testing.do_bench(lambda: y.backward(dy, retain_graph=True),\n grad_to_none=[x], rep=500)\n return gbps(ms), gbps(max_ms), gbps(min_ms)\n\n\n# test_layer_norm(1151, 8192, torch.float16)\nbench_layer_norm.run(save_path='.', print_data=True)" ] } ], diff --git a/master/_images/sphx_glr_01-vector-add_001.png b/master/_images/sphx_glr_01-vector-add_001.png index 264f2bc3fd90e80b73d29da9de65df5aa2678239..faedfc5df66ff267211d58dbbd821f5771354533 100644 GIT binary patch literal 24638 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�x~_vckssU72~NAixqN%KG)re(NH4p^IH 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 E6P?&R)c^nh diff --git a/master/_images/sphx_glr_01-vector-add_thumb.png b/master/_images/sphx_glr_01-vector-add_thumb.png index bf1427cde69752e26da5f52205dafb2ff16db599..3d6da8f70c6786d7fd5403518fb4c2ec3947eaf1 100644 GIT binary patch literal 15731 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 diff --git a/master/_images/sphx_glr_02-fused-softmax_001.png b/master/_images/sphx_glr_02-fused-softmax_001.png index ca3de72d8a6ab5bb90885706df1db4599b304c3a..4ccac83a34715e6a5a41730f16cb488cc1f03735 100644 GIT binary patch literal 37029 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 literal 37562 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 diff --git a/master/_images/sphx_glr_02-fused-softmax_thumb.png b/master/_images/sphx_glr_02-fused-softmax_thumb.png index 38856739b05c80462099b11fbcb84566ba76299a..b527155622ade1bf2741a48cddcaf6ddb74f473f 100644 GIT binary patch literal 23681 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 C;LX+m literal 23943 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 diff --git a/master/_images/sphx_glr_03-matrix-multiplication_001.png b/master/_images/sphx_glr_03-matrix-multiplication_001.png index 5a1c163782a915949e952835ac5610c8c91546c1..61fb63b0db6a3938a4073e4e0d237f8edc7829f2 100644 GIT binary patch literal 60190 zcmeFYRalj67d1+Ugn*PFARsLv-M#4U?(XjHMx?u>)}oQ_7LbzeZjkQUkG|jj&-TGS z|G9wmT(EM^dCwSQ%t!?}akMuCZ=j%{&?F^9m7t(t0-&Iv*O3r_zpza%Zv!`6E+7pT zWqUIhcS9#rC|N@n2OE1A8%v{)Zl+GomiBfm46F>ypFdi-xHvd-Gcwx#pF1$vJDD@m z1#fBqPlD_qq3H|-_15t34|J(Oi6s=&VYH;Ekcvmvakjfh;?7do__53Bijq|RanVO4 zGU}gVf(nW%Sxq>DC3&0Md&Ci&J@8TQ;QIsLlztQua;VN1d|%{U_3QR=i{fnDvDA_6M&!0bWa}%_8cn~-OByKka*gg%#lncV zII)tc8jHySsVeJ?f!?dFc{-alu6^4%Lg(uX4?jOY>U-vp+S=L+ zUrM>GpSz=(_Xj1pce|PP8Z}1niB$40RjdDuh}0t~Qev6mR*R=d;=)aYg2!O;EA2}_ z)C)*l+-;VI*PSmYPR<*RYX+CQiS6HB5oD(% zhNMX$pN>ozizJ=2W}$F#aB8gQDlY~BM{iVhzL0Tprs2|SF_{iyoBc`?%4D~dkdQEV zxH=FO7f*G6(`dhzlP?nP)QiS(Hb7{)Ga&pPq|6{>2E<`cjI}wKsjDT zqu1`~4#vQOAr}ui|AD&oAs0&=d8xL+(0#$NiRcHqm28r}O0b?tM`xx1THe1}LUD5v z-0n^K8P$aw2|X+Zl@mNyBf0LtHJ{m-YUKSzXf`jgJ&Q8--|@}Y+;qx5#>q-6AX9xT znG3F}@)}zr%#xe0L(EV@AFpU$$nDJiwJ9UqE;9Ky?MTWJUW@A zU_o%aSTu`|t9D=CB`6^oSj-y#v4SZ!I1~~29KAb_BkOpF)$_mlHX8R!CRtcklFQZi z+Q}(NqF!s}L;?nulu^DYJQIeii0k`y$-4DTzYS9^@F0}`Jt(S{Swa@x-#-~)wG}Te z?ZQ)P-GTaCT>(l+HL2%4sucF01?R(x_6F>w=!L{q#CEy(_=P{b zV&izcxJ}T_kS&$pAJUVn6M_5dl!?z1tjQ10=i+x4(m#iTJTFzkD{^zAV0L%1pV)|b zOX12=@zUaz(MzVvw7Q-j`}=O-o13eR5qWQQ z`khBoAwP4+H-6W(0};GFM8=`+`qHuj7CRTcyDy6{l#<%2svsSr9U`L;fcKB?WcAJZ z^q)m#iA$70uQ~pDo=1UEImyZ0=DB5qLPFpJqqUC2EzErvu=U<9xTP~g=AJ2i+IEef zn#S^pjU6tuLHK6-PqzuvhV2Fa!iZ(V|18A2uyEFoS8WvPb-V?OjBNFoD4*o<``{z1 z3JC5k(ZlInT0(wER&m)+Jy~Q_6 z(CjTEqib$fc|k-8Ekk2;QXBS#)Fsk&N^yMR|AJjIF$ICetQ6fKfZaCF-5y_{!zj1e znXWInvC#^3p%qU`n$X`jqj)wgr5G;De4DUT<%+JVD~s#wC%Khub2IqQc(7g-S%#%0 zRcB-oH>>QH!G_T9sNYEE=m}r!OQ6W0fb0@NDXoa9LC+fp4*t!rsIHoSU`26 z9YY-ZJY?ek;s?_X^X0t^Q1@Z}_bO4vG={gwbvWZ_#Hckj7{ryI)hK03Jx+q((l)qq z@4N*}o*_1*U<4R=Ek}bdO#jt&;0pnXH^qd?SZ5V$x9q#mukvT4-K+2s$^oB_Q%U296P`kB4Q<7?v~@b5IL zO`(-j_>-gc0Dn;PFarTZ#Bz+b%rY z+LADqTN^iQ)rN;v`o_#4AD*?V1=;fY277;{W4tRAweo1fiVz7G?({q48_Q5_c2k^^ zt5_KDH1*t0+MTxgwe&E39rNnLJJdWB;u-GPo6f~8wUvZD}MrqUjbT#axR#sLOv-S7y;aC#o;;#M4v(0GQLvD)&yw2LK{Qf;B(B-Yi-g^0ZO-?8Ko(Mu0L zioYWOiwzR-&NIp4-rwWscAA=2yV>@8wzsYCW~z!-S1S}jf`jQuNZ!FVE*CVc`L&X{ zo@^Du?R5B3`SUyYY4QU(8crjQW#W#>Zgf=IT5t2E=yuD22mc#q$lF0bYPT=35&sny z$@AUJv!g1jCF2?;mG5N!;^MD@k$v+ToVPmHcfD`pR|XAA(^|FHyaZFFk%u;oC}{P4 zadP~$KqT>fcIspdWCe$1K-*VBmMUfpDvX)|6O(YeIPJk&XNUo{n%l*KVak!bq$p0Q z_;Y#>p??Q-m#q0}->-a@b7oIf|E~)6R=9~cf7@HJf~Kb3!f`oKCuW&kz4LjiP)L

ly9eP$yR)r$T7uLp)X2!>+ZruZ7spdQoTAI=W7Y7b3Ofe%{)$qhmnY@O z)=eXiE5-RbaS#pPz%=ojH%WI8JIdyxcA0ZY@Mc zQebnVp#d|D?|?Bp(ZjLafA_6R3~`IV-*vvD}aAKhE?zl$0xOOYP2i!%GW zePGYbVWVqnzRs~3`=c-HP#WF!5${o|(c#jaBS9@mERXH$La+H0d5icn9^Ew3zlNbl zvNtiOUMsm%S5Pn%qntrYoyfkuNUY`HTIy?GUsnXCR8vT(D*k8n!G1jT=~v%pwx_jM zRlBh>3<7Y0wRlO;^+Qx8!^!cg~<2^V;1hB-~X1`QSEMZAyW^z$M@HJ)tdbku-Nio=&MDumuvx+;rrEy7h z`&>cnOXjx|pL0E4_Dtfs{@4ncacTLmZ<&d`c^myco!91iE53-Pl~`Kv4V$Bi_P@#U zKr48()BiO?FnOZNwjg!iGge_Zc$$Q5H^^Rtt@1cX4E&f;e$WNIbB~Bawv(crbcce@ zug0nhdVQhY$;hcBvp~Tuy*i)7N42u8HykCPP{& z?QO749yez0?tM!qAoA9$9W3kf>`L+Eb)!O7-=yKoFf)UZ6S1u0y4uD|@v9w7Gek$L zr1&%IL-i8dn-BLs_d=}q&0=K6AD-68-+xXc`I({b>v4LGG5g8hSo@Sv=(HfwUx4`d ziI(4u^a}(2w#2+=0a^`q`DvAk)(u|9s3Qn=QbjT`_mStMks1c4M>zhV#c-bbuh9acy%fBum|qHF{mJsDojCltoxbmc~!3jEC~uQ}v@W zQM35flG0ML_G355K6s&A&-=!bh^O(+pr)zW*orcLV_2nTK6~(ng))Ez0e38z2(R`e zG=F8Chpn$mx;y-Txb*08@K!!WgnCoa&{)5r60}G_fus5B=AxSH;^w9 z>&@4y3wo8CzPDzjCB?%kDA35{fFxPy>47qC*M-=2V3V5Opoe|`L?ILSoOv8dz7u%iQ`GCeuGr1^@M{{#%e7pI}o> z6%xktC7ty*I)Ue9kwJzr3I=@!Q%`{UKkX97OeLyHAZ?^^2bmXzR z!jhIdJy9gt)s7(*%P=8fP;5o8eJ%(F2cC#eYZQ?^ef{xtBaDz1ZZ(!eSU4!^X*3(6 z)Ode?*rK}O2FV@V9hIW?B9L-vi5jBv^rU@m^QxDkdAz5|_ccknYdtmSE;)>(quTpj zru`nORr+<)-<#pnN=K%FGU}8TgNZ~V1Mi&*cfuERC+C=DXJc%LU)jD&jhAIeSSvnz zaRA#$kR%_qQqh;M@~QwD`TnvSvD&c^i^%tZI-l7X;dr@>TaYm08x~IeYIxNbJgkJCg9Ro9v2B@n&_gNNrAV$;gEf;61l_6G>)p9J!S`QVCD&eP#^$s(thb&(*RcSR!lr7hf zkE1d=3in`BlS*60ZI@_KOGeGE-^*np^oEro?N{m!x1Mc;&rBy27N+_?L05Hvg=>2m zhx6C&`=OfH@J>rsr6YNA;jG<>W$rRGta+e%dUSc2$g^*1#?U6jFA2Q!u zgiWe{=o!~PgeHXjSC~ezGtr2>By17kN(Vv$pm5H;{&3CYFMahWcAB@Thm7zL)M+A@ zr?bp#l~PkAjd6;AI-{b1%3o=HE$TrQClXdVsP9+SrzAVcN+I@^SS8oouClhd`F0gd zsAZqy(4zZO$`e9!+Yr+b?wQdwSU6sm0K!hNznx>ZJ>YlFB(gLSn%E2lF zD?F#Pa-_%)J(GjZ@%@ML+4RIhu}w7M^3}SfibG^r*yNuKG>Vv$jjLdZ?$h~vGltd` zZm+8m!{egxU&UbG(3s_ER|TnHQI&poQCMNPd8tCQ7}(U z&3xf;r`_1a%yw%%{6Ng9P!xOOM!~7?0bMMkcv`58~8gY(ckAi@lp$|abqslGCc2rBr@T>J}Z|PX7AoE9jOA8GY*2O_`&TP4+ z6Lz-vrthNJN9ThZ{doDtgTr%tr@T!sUiEzDabTj+k>I8j^vX7Rct&fG;`&9_?T{-m z*#ySW{60^_S>(rIMuOHQp_;;`-=41A`#gF0uTbvy&Ye&D(pq5rWLC<5155_#TfXlF zBHi6mtU$Z+qiUhtY9=T+Ir5BUoO(k+-^odZPs^7NVQ*A9_N^HC)rodOPunpwg@KRH z^j3y~QbCBNE9wW0ns#rFrS-zR z5KoqpVo^$pmMjrCK9a^~2G==%TBO_M6|VgRo}lQ|Y2Wsk=c*RWZYZEp*mqWt`A`w0 z?n%mfM?^TSZ|R5iYnRG7Dc~c&;oJ<(QmbPGBmD<*5AH97`6RO61>3EyOIWgy%ZTd3wJ3U`lmM z(5yJ>(|gp3s@x0)XekW4HNPi|h4Y_3OV2tXbefv9-*#NU3@ga*rjz2jgH_=mr4lpD zIn+J-PG#2~-jKzXG<=EJlkOYLk^h>4K3XLRA~T}?nYZ52nJT*P$>&BVV6{X`!)nAN+qEn*}1;YH1# z|8>5H1meSl&uZ6962XstY7eckW)Wi(j%dByjMmU_mE3#VSMTdYqsrs9^M`W>CeJ zq!gL4qr-}%PBXHXW0jL#>Cg=_zG$Zo1Iz-EBW=7m*N<1q8chl(-s5}@E4B-HjfQMx zNZC`!`lcNb%5{^&i@`63Ta!oNl=o)A=@y+9EiSA^H7#ilwv;D4>Q7KHVzCg)y)T>J zM3%kO`Fh5M>m@<~8nj2z#H7^G!mjax(|YcYNmZ$#L#yi5+oZeuGm)kXDGHd;-6*au z8X76olhuki=$UISi?0`%kh135Vw!xjx|ym=_gxuP|Gk}}!+pWI{xXSU~D+VY8J>gY#exgKBQ}>4>>7;^zYaFc;{R?!$P_m?j8uJX~Fws z2oxIjow|`LgCy#?iZ8Fi60=ab{1 zk?xW0(Bf|O+=n{L=*;#l++bu%QMti6AD=3c!qvV!KcP>Qy9!oPCDVq$Jwcjfalf(n z3^(K$@H2zs<+slTKIF^&8>Tp;QuV<5FIim5MU!$@@V?wk?v)o0ESai{j{R>aprWIb zsV~mUFx+Wq&ir3XGC;fuHB>nYXfP|SbH|rI$JJ#Ct}UN5T2zXNpvMICXEvU%5-$p1 zaq{bzAb(P>*D-Y}v}h8%uNJSp*u3Wq6s8z;D&OP^XQL0qsp{6?MtjMx`M~1om+SeT zgV@sh*7S9IHxz<~TccJ($)E39Tmma~=_uo}BHq)Pojq5cLjPq8_U3rUrLFY~eEEUPmFwgpW`EI_57N#9&cA68D9KPXLobw7fPoq&X-Se$Yd)w6l@`z_1Bx1hb;C&ssqldm^lgjg5_gfg$MU$N$3ito|9P zhelQ}2Mac*g;rnx8lHsYbxr3r(>}?fWj7-XC!2x-+`K+PO2Pf+jf$7^G&RKpuOic1 zAeWKdJf7l&jpQk1*|#bB8V4h$LX32@b*Y@bf2a0N1*$i93ZpvaP^P`wfxg1t?YUyv zM&Z#stL)6}`&im2JY2V@BTupv@0-$yG^&D>ObCCtDkN!8UkS?xKrbF31nme`Rs*+d zbQ`z3nS**GcIvq$@$ptImTMimYHTBJj9Wo(83aX)t=7t*d^(T3U*uj}eMm?|pkT=u zH!s}g9L+RHT*PU*(Fl`NWrPABc=;MPja>Cr(Y7bE{P}-nz-ui#+4IdSh_==o} z?5EY3DX-5-xNP=-&iC_*<_k8rbJOuSbyf!VJ$;S+WbY9camQNjlMfMqfvfPA<{kyc zkX>XS+=b&{;BCYc^YPs7Im^vax72fWGwRSMoZ3f10rCVDqZ=EFm(8tYsHHk_&+mMX zHY?WiR>KXpQu9qKR(%VIBw0;`^~JomSy&vzup3>1t`%TP1wqqEcB`aAI0RD|UXN<4 zu2S0J9a0|cl|$MWDQVR=b)^#blg}@$4>|~FN-NC@ijaLv9WJa?=|~L$0g4x^-vI?v zWk~sxr7fO(mr(#$s8`3HvOJNYxzwqXQgki4s^KJC4hP#7; zb#D4iEi6#&S+cwzmPN`6lMHRc6iw(hAt(AZ7LR1iQ7m^i>)t-zXM9*si(j~3qy{MT zM4B3%a{0GVT_NbL?X@4Tmho`P*6>oL*$|SG1IOs%C+2xwC@{B8-cKB@l%up04p4UE zk3U~-WRh_mcMvRAjbNd*uj)CVF=+=c2E`of&ub|HzdNkzL z^pj?c^k-{Mj!=(d0+IpW*Upb{`IZ}!p=RcEgm0tai9H01CK_yc9O243biB%ios_)$~=vsy@ zU+v5Y>4L-6ZHXAe%yzV7a5Fjm*vOj7l*^=Jhu8T>Zxrze??U`0o|A3I+Iads7mpFs zmbUIlR};#YgZL>@WwZ>nNzQi|P>*jH?{B;8KC5x$2kIqZAKY8s#HX<|%eWf7V??0{11S||$bdTgt~FId&C7LkZT0ydWg-Q#<#e4-_3CHEi4`};S*FA<<3$d-Aw%_o-D~_asJu6}IWy+(B>gCExwZDb zWY@%W(S5nui}x9KfXVn7`@*)lUQ5Ky4TQ}`i9n`pib;?fotuiswSbV7k!X*SgOFD> z=NdyqphcYTdrtvtY02R8%dhYGo*1yU3xm$qfN|tfP+?!@ae;7_-%yf<`#0;6ylKU# z1%qOcAWFe=;Uq`s=8`h@y$L{sDZoDwCvE`9C1^NN9!%z?08>r6w@Dm3D7M{psUmeA z%aIhYSPebKuRYT{6DpfY+rq&YHaMqKs8pPgAT__eN4J4ZQpF!$P%ylQgr+KNJ`nT9 zI-#mlji|;nS-dr6spIZ`hTin$v=fKu2ghnDnFT_yl^8OzV$ZOR8e6ou{4h{7=j>;s z+WmN?(=sryzl-M0fImC5wW+9#ze{Mp)tmV_SrDpaZD9eb(6=nZS`Z1N#?;X6SiHd* zuks`gcs;uG&m!_>=iiOGu@;CXaeQ&aUWj&RnJMqcGr%MDdqI7Z-ACu!v3cFG=BPMw zgv1p7)p~q8IGfS=K;HMB=UKj1x|WVe8wUV)SZrnv&%E6ih8(|7k`2fxc_T*JeklKS z9}`^Edj18@NjbF@37IvK^;jH0unKPbaw8&{>o(jOJDwz-tF>Z0!z;}>k*H6?8v6yq z8&-crUH66tCp}^RJ#iF_p=92e3H%9th<#h8<%Lmranb)M7?pNiD=-$0KS^bUz@rTt z8!13^v%A}E>3E-L%{&=0m9jdBg+)=fU#CQg{aGyP3!#G7Cj8T(Ju{T;o&&aT+dxQ0 zM}MnMHu_FiMoLLBN39~sgNCNeCuc%|0)xj@DM2y7a%$Q}Q=W7Zn337)qqx2;>)?Q# zIaMmw`XbNv3u%KE@`IzqJiX~0-A!i4rgR~ehrWFS>^iWqot@kzRaH_$M=nwy1uh~U zK6AS$pDK&q2?%g_WfKe3k>s!DYoMCd zO4ZJ%*CpyUw>ntcl^1jSMD!s4g<6E`1`kxk2J;I1@9$|tJx1BU>z&r>*NeZ>r9QB+ z0;BjJ#J6gS4DptX)R^<&WboF}oV;e^bP|Phl4;arsaVH>i&W_y00thVM@%-@f@s;u zgptd8dW;Lb^YdvJXF59#KsM z4l&n4p>FHqjAhF*gOw7(=@I1j5D|B&7JtB+pK>P$Kfe`PS(y}Tu4C9k%+}^1E;PM! z%9lTNj@a{W_AzDym&RIRHC{Dj!i;;<5!wTRf1fdXDjFzn8~{v^nmtDm1r8p^q3l&G zeou5eKUEK1%2h2a@5?Qk$&&Kq(G~D4fW*hp`^K%o)YjN~k-@FR6ayn6+}_}QM)8IN zmjt~`|I)VZsv+;`si#Sb3DyDOkTJP^k+wOD0NyV{`ysP7w7{6SrsyXfSdQhK{(kjs z$Bq8`q~x^7NM?+wp1_68-PnrwI?Csgi+ZgXwV?JOS;R`WxDrW>-kVM(7JJy8>85a=`_8%UUBm8Y_a#s$y*vGD#np@1W6v!KMM z*Q_*(10Z)~5+xAry$kEAGH1=tv|hLOdpL=7fE30cHooeEqBA$0{7tDPy}ytq^qik7 zJ(1o~7ya65&!I1b#`S~#g10vvVfF}va(pU%@M(u~*+%(i3f^%ZdA6YG63e|Y3ik{3 zMSVC87!R8+<39L4Op^*dMeocuOU#KNC2<Kn1u!i`%J>f2g{>o4hCp~60FBJ zUtCk`3fJvnK0}9igkx;ugml}IvGs;c*)uML`QP)L*uRY4r2_dT$_8|op3EU9XNhia zt6&!6p5==81zK^x{nEo00yb^>F(dl}38iOgFm|M<#5h&ygB#HoM>(>BY<$#e)@y0p zqPFpvPP>XvFo74Pd2%I?1PMH=_`k_2gUycP>D1q<)mB?|4-c=zs%4B%9l7e;w>RCF zPnS6LF4v$b6|Z;Gzcl>)DOhCCkg>;}+1XTDbxlo{E>(sovc_ z`StzwF8HY4LQzwLJ6p;J1e&Q_*b3Jbm^i z>eQmAtvBK#nyir(Pj(96VGL_pXz2KEnlP+6$Fr}IvxCP9`ZW7Q{PjldEv2C*EWM;q zd@bG|$?mZSir$57*%BJDiC45Y8Hjpsl4|yj z1Yucsoj+q zhh~xGG0mco)CPlEMSb1V5Dzp_*w^+f&yCZpsTRVD;BQO>uK1{j1Y+bnOX30yv`Vg# zo}S=hyD7@+hnV+L0b-!Cr37nNZq;deGU1{@>)*$J`}{v7r)FaaMOnsAMrqTwSe+-2 zv8s=18^5O~%-iMU<4cKSj+o-4d32@9^*ILD7CY4DmVn>lc4u+xSh@ZY;5`yb0je)S-fRU z1W5SWc&|*u8i=(z{3UB1bgP$KO}-QU9A!6Pvbei%724Zw_CMW76^Z_`AHzFs%Wf{N zqu^JLFT_Di26Ytp1cTgj5L;aKQ0sc6vUd`Ob{PFs)k#aHnNi%a{dy-73Enoj_Lu=b zun{z^IP9h$Y5@R%9i{Sh!sk}q$f;_kJ3#z1wz_1eJoP>f6^rjK@6h1pQrU> zw^$K~=>1`l-(oH_Lw9pp1-Cxw?4-*;Vbj|?GhRr!d79eZ>2O^DksMO5m`-(TOL}}* zRp*DWm#~JPy8Df95=AehHPk$D)^*Et;y$NMSi%@D#Zt`EHSxlvd@CReGBmul=cK8{ zo4l;Zu^Cwv1034MxeW>`7y5x>9j>T<>4~;Lv0yX0C>1~f)wnVoS7G+c3=N__qkqZJ zn5d~uycrG)uH2}_1ysGBiRaf4r(35#j|co6i!V6lV%bCS>Q55Y?o9HpH>^`BvW4n0 zjJt8^+P2fbPr{yf`O+=LE-tS%J`?EiyXCB@)FWX-&wE5bl_OrDd_pSW7)dF!Q?Anl zUGq-XZuCM{$1PO!4eT1d#-`A;@o+yY6pT-upny|OJUl2VLqf|WNf|pzb2{&g*tTYD z)O1TFC26fJn9GbQWtA{T0O9d0cYkmBn)&(IfcxJ7%KDvUH3vZ3P3ov$R+0N2K4EMn zc8xR28qI}iuo@%(nHaTT;A=wrx{AiihmiO#8Wf(o5YnBeY$=%9!j(5|47UQhwgg;%4)dCoB8 zR$3AOO0wEc0|88a%n!@e1mQ6JD`qv0m1+}ZvF1yJ^lzi^?LA1N`35? z+!!Gdy*V-D-`8HuTfwp5K#M-s_Bjcc;7C3Ozh)>O)r!Mhy7dRX> z`xR|-uj)bchGbBLn3w_Af_{N;8&_uQf^7OX1<@*qw54+L{{Hict>MeRby`5KBH=mE zuqqW=Hsu$^gsc*g)h#YwEjkm;b>PWNPQ_UEIt?qc_nR)XnD`&c$x`BZ3&z}E?!jE! zv)ai;vI<|pxz-CxuAFZPRGu{&^(eI$W&^*b@F(wUe)i?twFlU$$VIoWRu?y$+P*xR$6yNG)gG!gTwPimTV;j?yLrlY%SdntN{4UA=XQ*sM^$ zXp}ffsCAVpW<7X5xjmX?FH178BEa!v&=Ck*i}&+b0wXm&73C^}IVSHYKwd$@Ix|uF zsVG3F0uOTYTW(5L^*65-SU}wCU?HVKh7vhl$l`jzdkBrAa9z;wdm0;d9zWP$zMr?# zi@!rbQ_XG~eCN+z5{sBB@bgza3xI+Mw+W{?zMziDmwGqN?zq)3xDu@$--VHU^QUgq zfsVL|HgoxHLFtmy#pSp+ZROMt$P2H08yNu^?9zBkHl#%_6rG5uhkM-=+bFMXqDz9t{vh0(E7Aqmr>MY?M|$5w@JKIz=*? z(s1Ja-FXxVSLe)qxrC-rlRM`^(E^+XEEqeMEx%kvT&*~;92HhB9K90?&y2-pDHZf; zM=uJ+4(Ln&S6Bc>t7o$x%wV@Cw?8G$W(tSULoOiDvqh)EYI1Y7u>AWHSCH+q%~J8P zs#;}8jq%0^qqVzkt1faqpLY@yA+spxg;y3XG?cc#d=A2B(b&4FA%7V%Sqi6Tn16_U zgHP>EnVjVq#%yA@pu|S^!&bZg>kls5tm_-ir^J`Hy5ubv8z7RLGnBUP8iP5yls2Z^ zLBh*}E4LC-BUw+$*N6hATKz4u_el>gC<((0ivj8QUJhb5R9>RjyD<~|efN|G%xM#> zMCs|Yd^u?zPiE2AWk=0c8>&Ecc++*p-s^d{9B!R0#YYU7UjO!G*uAx5YmZMr`LMh? zKJqf&Sf=%h&gy}aSN{#S9ULQ2p;%UV{|?;`_4|WI*=>b)^k_Pj{`ilpeg2LgXn3wXY0dc z1#R9aUwYddFWS)wf|^D7cdQZthLXws=32GqPg#k|o_$$e2rgs&$5xeQ!gwHWFf!a1 zJdN;jX?otSI0R!EXR^}>sVlE~hj63G6W&2e13O^*ALN*V6$)4Of%I=D=Kk>9UXy<938R&6ak=jxR@vEb#YS# z!hGI|vYa0<@Ku~K_q&Ul=d&)U=#=~oWOuP@Pr~CCsQR#klmt1jM%y`gDmen%JADTP1WW#9&d$@EJCUYwizG>Vo?o$*lE5t^N6;OUPk-Wh2TX;k< z9ecBP49uSRbABJ*@yKt-l(Nu93N`MUT~QU@n+a8gZf-iJ|11k+5irg0UhnF(&}}@Tr32=d_4JfOvBNGTl$QkwQ}g>DA^l zqQCPGjdbz4>6OtA8yy$RgG@0)_Am=1hjdIJu0NH&QhoYDf)(uz%2iv-u53YlUDNlu zW+3aq{hzFtIKmJt&#zc-2Ji*w(*mz5Gy@#7oqtuJF$)F*e`?=t;s_5XC0!J}KKTH0 zHyq88p9*C<^5TCYsp(Z|eod>Gk}?|vTs*U60tC&#V6I0-s5rJ)h~dM=#gDv?6mV>^ zAf%;wOHUl^Hfi?tb9 z`U%_|(=3N&4)3uZ#{NLFly3ZKcNKL2T5Ia~gh2HzEAbZ_KotqRe}!@of}s5MNQjrZ z@|gxAZ$VX`UQk#V07?p4f4pz-0c!P5Sbyj7bLgqN?|7BBfB$Z6GRYckHO>}KjJZ*2 zqzn4#uR2JM>0xbI8k*TE$umDuFOQN9W3h+^B1}0nTEibedk&;KBgT3MYA$?6dk(W` zF}nt0M*G;5Nc6TgND34H;5e_$%_V51Nj1rHQnp6|TPEo~115UJH_Tz$+n)sVL={2mE;%C^f1+WKN-J%%<==oP9X^Zt9$)8tqhKn z>jf>TFMZ3({PlW$FQBLY$_*UCj`m~iFsicI_0ddK*zi4nxoA*!T?;`gx#s~zGJjl* z$}Bwqn!|B_kkT0FD~+3PVNKcIruG+Qb*8{sK{k{*gPz?V34oe7zd&R@iyfvSP$LF6>ZJdv_7<;W z>7I!0rlQp3b2fg`&zv?sfFHfRZjQHZ)tB~Cm_^u@ z2nt$h(nVLgNt?iFJ-;c-MsnFIp4W>RwWPzd%|K|@6k80XbQBu#DAzNd%qMTB&h}?{ zHB}y9IkEbi@L$JX_1mrYz*xRtUcMxYt|b6=2D(zDn>V`(lcda1%+%F5 z0C3V5@f|Zpf zmpjn}aLRymqgRpTa=G~D%QF}jPo)o4g)gTB_I6=r9EK@>3$Ea)06&2>h_TUkXx!U> z;J_^<^Me08x;`#ADx)q6N@$AjOGv9p|8)7Ut9sAjY{gNxVM&YC&BkbBwAV;!2} zWwAjuXtwGNi@xks(|IQ00uam?RTyUI>5+=|eFtveRKI~r-KkB-m;qvqiSXB5`m>yc zBNoLU_!q~In1Z;OvFn`1R%$h41|{O6kc`OCoYPQkch zP_b%62b8s7?5aRO{6aX;+ybx)r-sMZ<8L-H2+GY4AJSRBB}kG3^J0z5t=0!j;f}LWiu1oyo4-1TwJQUTV%3dXKH%2 zY^HB5b+k*Z>~43>s6+PG4xb^K-UjqQqHFb9gD+)J3ZPHdo=<2mTwZ6Vk-We4Jqxtz zqNY_kSb5I^?y$3~jKT^63;b9}nvn#q$p-poAk zs@uHnu(q7@5flD$T7?w0kprMlf$Lh^l(!H>^27B9$f%5BE82JQEQRwG&2%eX16O?& z&5q5woGWrV87+-GC-XY&9~cnb8i~S}gwpF!QO7O~tlZgh zME2+8K*JRbk0{9~H8^)1U8OlXan1I~T)dKYVay!Of_#l`JK@z2KKt^BK{6l2yocT< z!|o)d%c&EN$a~Zk0A1J}0YvE9W_;riVf18>quBG{fXp+ua3ao$T*V7rvtd2g)9crdP9zca_WvN!yGAi|Mr+3@ReYAs@5Mws&YI6#=EExHB2K$mkOMOu%GexKySW0Yi><1@zDq6mJs{{*C}YJOKfltzYf){XU=!D)$x+TPgQs&)kB61C@MfP=+a1JoR+LYcBN z#9E&L*g2Q0w$)udV&pGW!ylviH2&hgxVHTAd;+!XH+ymwcM`i|N(ER9{}o>gq2Y6U zT&P$0-}(WJKIPv&13c6awgaL|gCUafBUXmKGh4LH`s9rNUoAmu6furoi(0NW_W>tQAw0>-8#GC_Kj7V5-+gSqHy&1uHn+Gs}YmJ z9o=y_iw}&xz}83kw{j=aeS6iOVSstZ4jvPX@t3JsQ`SYgL@xZPCkhlZ$YfOf5Mte= z4#NfSEtOXEg28S|P9qcGR)ngNcQ4w&LDFgWVk;DnH|s;%ptIC{4K>B{ZZj0(zp zOr@t$m&Y`A(*-P%*A2x}>wY%VPzBXgcblCIHwO5mTwZtlf^Wn#Zw+>*isDlj+Z?r` zB{Pj7pLav;H?D6nsIImOlLE<O72*ig=_k8Ua1*7` z6HwL>eg-x9L`g>cz%q#F(#DHfJ&-ockNd5J6X@Eiy62?u70Z8hbug<|4?sjH9PaFo zh=G%q(2)SA1q+-HstW2@VQo?&Jt1J1=)(3M-~s16n2}30J0Uk!n@=fw#_SoB`64A# zM9%s+UfDSSeatEgQBRZsP<#L^V{1T#x%NH!turXT=j}3;&J<$l+*`orH|ToJ`Y5PhnxRds0;t`gB1adK*di+P!Ou!>)L2EgN+O- zlydM&Q~T%2@8IPVH#ZV$vd`uB)Lp=G%9!BH;?AzHhX-hM6<8h<7TH?H-TTc^XKCffD@*fdV){J~851z4;;5n(0vy z2#6eQcRV=2T4W#Mz`ISNp8OsW6KwN!2OgwqxM|v;6u`N;?hjwHGG$sP+;|sX6|sWf zP3HF{h<_qV3EaQ-y4s&Sy58wgsG8a`z3Q?0@ps1(|8pAJE&*~mu&rvR;R8G8)|sLv zR1sHJ#G6rQO&9A$?v>r)LzI&V%m}3%#LhfUx#T4YNND0fzEUocE6U3Ya64HvWWsl7 z)&cmFSL4mTNGPEGKx1GkHd}utBP)2SFRWRxnYY1Nm4hc<@)hDlyL0=0nELK`tk>{= zWs^}tb`dIB$zCZDh05L{J1cuW3Q<;N@9dS4k-bCq${vsX*qg`pyPos?tv@>F^*VL( z8TaSDuj{?8nVAb|U6VymG_`nDqUwS}K*nDnr0&vyiSxili}t>5&g*oLPgGx^Pq3iP zk2L!85}maneJt}`Exe^nv~Hn2Up=ypijEjmCnh^wnkg$BNOv-DsMUB)KWZK+2Zl<4 z7Hmp=qIylw6qctLBu>dm8C9;<=d6h6AI(wLP8_p>d?D&nweO%AYu$bQF7$qAp6YR* zVF{)tf{Fs#38*Ok-fe^K5%&1-;Za--Y{0Fc4pp(T7<~J>EQdK#;VJ-x(pf9b@p6kk)rqlPH8!Wj0KH7^0@FR|{&+6-*o@@l2&8*A zt~^gHiOGFD;#w1ZSQi>sBHzDp*{k!(?#S2~*hu<&uWfeDj!C^jF>_oFq(o3;{y4YY z`lsgB?V472!u=Zgc>kg1rNdFvBwob1hs5y`i-^38|r* zL}x^8_qv%g@B14R7&Lk|5*Fe-{QEF4A!d_*|v#TI%rqmD5?=+P*1i9f#Wth*rYm04+_J=*q^7r zHw7g|_XtHCCdN@y@^ylwQ9kfcp?m~A%M_c& z^C(;Y-e$!@OrCHEWUfb_d3f9u)&5*NSv51Dl&sE;IST6b90qZ&QL66iOpR>~X|J4q z`*tsafzfMC0`^j!)1zjg2~xa2WCo9039pNOk-H*)yPZ2nY9$Bm@SF+(ozI_2LwGE& z3kJQRAA`!#U9NWj4 zxxKw?dhg6=9nEH3H>EiG!D&tYF5ANrbB;%Gc_~kZyj*TH1q-SL$;O=w>%b-oz~*8l zUw-a^7`8UapLaa=gO1dlUfm@w?p_Jj^D~=#8c#CN80;oEA3Lyf^Lkqu*t&u(Dm9&<^KujhPs6*d% zO~?a0miackeWPUe&lmP3ngI$#pd>f|Zu{MikUh>wTv7JmvXqG1a4KY*i-IIteDjz`2bzN3LnXX?s>{ z@Vb*indMfoihj_d<$>{|j!UP}rz~Ln7LmaMyAY{PDA{y|!U~@4$XnR=S4`2D+vQEh z9+rw*T;E$(cAWb&P$%AnuBvT)$FqCr8Vbh@Gq2D$+oXGs{kpD{EiUFsB4=xpHd1@_ zo4p@v%2JxsrKmN!wG=W;z`rBlouvHpW z#&@mg_S8DD_Dy^QD%qaN&|$o<^xAP^w{{Qj`s498BX10(y=ry2ExCCVvn;8EKOMg_=%<0GT~xMv*l zbIYnqyPY|v<>@HS>IZ8PVfWq_CI%9XNm7{u+lO8zcS~3^hM0^tEtZ?BB8`~{#p{&_6f5uf zU{JTv$E#N1nM+7>g#C}LdfozjoO*GzikJ1N%f5$Wn6O2YGqOPtndPtm&l>N|cI!D8z1hLjyK#D1JjLxt@(iG- z_KPOazO~)$dSf#+b>ZL%n`U+C3}>RoHV&4$L&ZmP)C9;M8IKIR{|mIeA9HKxcw zkTfiBqz9dv-IiQCPHs1Ps9Or7D;`x`>!JXFa8_s#NI?h89utDWh| zCnYLuN*9m?*u?_l51*G$dVSn6+?HrznpL0&1t7zv&{m{?6 zPI{3rQTIvL&ei5-a;5^>$1S1$a$zb1vYx4k<>h+|aY+T;N2j~3G8gc$h$YIs7u+Mm z$fN5gc1Ohc^kVBUkp~Am($LV_UcCUA+wUsxC{@>`0`7(B(S>mphXXE-Z^m52FZc^jLUaVsF0d-RnFv5mne$s=uooez@BI^s{7^*&i$y zul-$b`BkSYs~U5=A@a1i^-67$sz;Tfp|tq;^0vpv0-b+rzza0XeOE4_?jBjgD5BE@ zUZzH{S|Z&ky)JX*L(6UTl{>~`{pNe|17RJt?Lg~%zrrU^Q+r#$)!sF;L(^l_ zP>=qU8S}$I2m)^;uH=y7`VIw^FWZ+cJYs4_HD{DqmqO2d)EU{@+EgCPN{}PgX=P1J{Gt7+wYBY$&1OHJHEn>3D8(uet9;?7w#7cK=mYcHSQwd#p}Sqg$%GS~ z!%Esulhd;Z@)t@4OONx3!RaYeD}IzlE9JcRJ$*sOV9UgM)muvyS}oG<1iC+CD_z{n9yNx zF(v=HCumw4Y^;Ldo0_sUArnNN;<*bxef>J+-HX`E>FKs7>lUI9ud5ZP86j&=i&93L z`3~|B9tfzUvIdWOLPXzmCRlCGDQfMTZJ35Cge0$Ck zN%F2N_qy%LK`Z0x(1gy(erdRnJO-(@UUq$+x7Z=T3jN&+U6F|4;X2Ys0qO)~`|bg9 zli>lm!9R9*Pi#TO#vhU%|DcldhW{*v(;puPVI_1|Cq*t1``fOibV<; z6FW8_yuaRvADNbEXY=`7?kyB?AjAGm;?mdag*P9{LDC8@FIJn6@ZS0El8)YuD_cF1 zJXY_ud9vc?PxLp%T#2n7Ic@wb^xSq3MB4f9wC}zUbG4eZ3>WTLx<2%Id%bmdStL=U zJ_&suG@$EA+iUpBiSz6@J7D_aEQyvT>Ra;b3T*tws?8j&=A39gS;q(ZPB9kDpFazG zt)N5noNcX7E7+SGr3e0K>Kfgv}3+`)XtPI zDJ*c~JPw=R?I8=iS$Fm|Oj;{BPJqyY zz~k}dwG!{><=<^G$*q&yZj&BRSx=bEpYrd*LnY>>m?p}F%7%DW<)1ieC^&Yw zlUa#h2V@FB672`Sds&M*?9gRe$&QwkXI0xWE+__u~;Gfn(Z|EPQ^rM>mt)K4*7 zDZ=_l&Is52Z}bVrHD^D^IfD0dIAOoQ+qo{aV1%NjHnRCp>> zgAr&ed<~TlslIB9MKrfGni=g&)gJh#hs+KA31rb#Ym?U%%$Jurv8eBRGa*!hnFQj# zl!zbSxy_dI&HN?r0p}2Rq}(Li;E@(k`xxf{27e38(~p0N%?Q(s-*#Mh`~&n7=>w1=jucZ~f z9If^KlCiMZ_=GH5QAcU6^_vlr%`r~J#y$L%T&hMXg0cgBAJum$bm-pL+tQpnYd&N- z0n^D(R!mBB@FGhd@>krxjl<~v(}H3-waRNX?6|aQE$GPM3S9Rk@>QnizBV{Nm{p61 zyIMAK%-#qrE5NCEb&k48lh@Sld5<<0(EM`=B%6gS?)akiPVWo14ANHtXyw{);l%<_ z6*jTQxj)pP$mka+=hS24j*q3t?2s!#JlwuyabMe;-&_4t%}2;9TXveY75%rqH3zR{ z45v(Z<4)ZL5qB6hboB$AMRcKLF7Z||<2-a-00d7vRk<2AQvmB4wRy4REek1o*QPQC zc9Ds;ZkSAh*c-bjj!Vg8qduadmjab&j9S&W&^6PSDL+3(UGDlj(Ok8J%ryD-Q#lya zPXAOOB#+|3!KVLA69*kDlkma%F<*WGnqQVJ_$`p_r{9k8HCZ)%k9-G@>D6*`u3jNg z?P5lp6S65ck5pzWCxZoH0`plX^t%&L8BI2p#b(&e&C+$Sd@i`+?w9uUi}^G7(7##9 zz{9zTPfYe6q{pOXKAuM>BT;n)ugiYDvYF2#u~8L404XnbOYSx>;M?^vB4HJW002HmlIobM#=8@0Hs%kC zty_mD9?};24v;}oNAI7*LnFt{-)}Dy?uplVFBP`0r;58}T{Q-GO`Uf{uGPqT>rhO> z%IPjy^=Z*q?Xd-Gq)hNfD$aX?FI-w`b%&N805kFv?I`N&cvIqLA_#eEN4H79A)L{T zD$-K*w=uf|iJKnVe)1Q3;J!0s?81DE_~N>ZdAY>@?I9Ou5&)kA6aS)TDG>^bzxTUu zk8s?8SFA+hmg9i{lu*VF51%;v=9S%i@>&2D*^+o;o*|!ofBfByqCdl$$CVcqU zf~=mEg1+_NQ<`8N11yjI2)Fnm&B05FikExWKgC(UzFIt@F?i=HC2pRUsuxo(y1=CC z13%CLY)QfuQu%oU%NRmpuO`4(fXaKm?NGI}Lz5eWrl zwyTdBHO{fH$_}a{W~@GiUH|SoX>1CTQ0U*bOApn)yrkKeNjXaaNqYvnc&IQ++;c;C zv4RDpJ8z@j&Y5n5cBbPVuAwpj*Zm+g@HxH8OtAm-odHfVA+JqhC7D?bE}kMw(YVYf zl6>(7Z)N>l^9Wq}g9haU`Wjn}|ZqoYUBy$!2 z$iBD}4~R{0cclXDcTGP=fdOqy~m~|19+xdJKTn zfP{N)Xv+-HV^B)a+}Py5@CT+eP>jIm(Z^MyTTFrYXq$rxI*cWV#Y^(c_-&Pd^wle_ zSpSS5*eA) z7>-L^bsMBO4xX!$I8Cj%KxML!jWop*f0E_A^qDN@(`k{1d_1d|=#u8frn@A-4iTp_ zu&;yAz=2@(5y+9DNe1WHienAvV+f@PLFv!JQ1H=~2$OFbORze0m+x(ApMqw;*iSco zx3aa5QEj}9 zXspN6^%*oXe%W~Q5r51>wl?9miMl;6tc?v%!87e4&iy$3$ezqN31g)xMxeJk;vVME zF`(cLTRqc;uD=0<0D9qixn@7K?ZI9}_-Op=?>|Sa{D)UA%*e=|T}2Ra8@6+E%L$Jg!Bt2Q!{3KX!*}>UO5| zH!s0HcK zGtQLG1)G2)n=iQqMV)BUcHoVVpWTwJvV1P-|Y;ScDI8a*0g9g6*L z##>{g6>Q!e>78FM5fM!kx{yj}+uR;OA5NJCQa81e^<0_|+F{lxt}TBxR3^?E#lI^5 z_wUOAk(Dn4gu{B;+b)N;G6wdeH==pI_F3g7j%riJX7pX0oll&u zcfD(yc+J?5^94RG>_U(Ly1z&NTdDaM&Z1n`qrc^mAa;dcVQy&C+ITrJU4uleJ4hl- zts&3CSbxsw;8i5oEjcqY;OggWRT&;|{iY7nj(uLD|4=Sj&d`yWAoC`~yCf5C4Jfrg z8tKqZy`PG^q@&}MeeR1_jE(~gqU^>-CnbyM!vHl{{6JOBtc`ObW=MWJ01FHjcVZJuK8Ruu8z4G-}v9_sfX|l z385k^ETdWZW9LxOH@`fe5jbq>B`11m&(&*QeCm;(IR5KY@}1n)?U$P-&#-=hOgtDI z;L3V33WeTCHpRStWuyi6~A8Y z!1{c{0@-C-t1`7D2-|7ZVEQbDAr{r}29MUM$UoGBeNxh8?iuv*0-_j?tf@TB3 zHwj1rPgk$|4$#Mu)JjbFe2vR|Y>{_jb+fI%g&9Z5i@Oyw+N;A_VDscFCYHw;M}_fdG5iK zCn_t>i@h;}0v7b4pr(yET#$bFP=+;lHh;?bDiq{5OI_d%f&m=!2FJK#nYFLp(z{hc zW~IOR${kXzC16#~JT#qoY)ns2j>Rhc!QlRzB?9eWRG^;i2h-ps8?RtIBPO1 zO+fUqJ3$I@h$!r$iKE$TxcOe*9@7Gbwjy2tc2lZl2{fK8!t?seNZ$3PG5aPOL9D{} zNcn?>_1v9uXb=c?NmEB&b&^$iWexJ@&i#c=#T5A@sa(QQq$jjZ^7YF7bW;bVMB2ma zun&_=`K=o7F!SE|7Ba&iMlxD!`3R%(#PXVcW1pKcn|HO4DfW*2qhQS`6y%ZFa2##U2o&ufp{zHRk(W^>l>`%o=*=YH=lfc=egnvu7`jkPadv5ygSK zs6?gz5gYEp@?D~zsu;3#tW2ohY31$J4ZG;72&v!7QZeBqiD4LYp;fd ze5AkNN$4mXyy~CoUbp?IU;|B(JU#1L$GEJP9W8ZfT>#fN-87mfs%87&Re1(0vv!)s&ozc?fNG+B$|jjcV~j;pTQ_b~b><=PKI)Y;>BXYKD{ z5wG@tTiKEhlnd{8UWq>BU#H90@nR%Qc;IsG>axmtgAdQcLq&HwUw0+G#_g_DbU03J zZK0qIH>yiK^k0e!6shw~ff8xjZ_7jm%b>)H)T;<@GgVyN35im-NUTVkV}%BAM87a8 z={q84=aBdscYT`RFTfEH>1V2|t3E}F6=x^o74~fjSirLCxi#==KUzK}xcnoqu4A zQ+EkyiPX#1hLMnryg*gs>iVP>Q zqHc$Q#XP$>oF}R9o-(ROcZ>dF7kN$ZrV3F`=dJBN)jl|xpRbH6gxpR{j-hSrP6Ph56G!si zQq8ZzEpga?nfnEc6u%YL39S5zyf+@MYN=DcDm40Tu8#F~!8$>C#TpU*kt^HYu@P#| z&1@CvLoM=?c`RPKmcs}CH<_XFBJ*oy{@?Fjef*^_8Sv$DnYsvOfr5CK*^|Z9X3u>u zWK|b+{99MJ%1p3|Aytwlczm6$T`*_N^GVGU=m8>vLPP%;;TO;J;`ImiE4i$LzfZ}3 zl%bu|glpNB5TSE{ukKt`Ibf^<%||4Gn-%v9+3m}=wwCw({7UHu?4m^(M~S^Fnv{Yz9|TQId|A?W{NuvD z$N;X}ix1Gy?Ir=>Wi4-QjzK}PArv&l2XxG&&2cRZ9^YjxZ+ z&|!Mkg5Sb4%*+ay5@?ay*EK_6C0Rm44^osvi&pi)M2yfbmrAdBEA$hF<>vL`_25~= zUJOo<4XlriQ**bi(0y@g$n5`xwC_P7E1!So?Fqr^A=FizWLHdIq4)%lAH?}92^V)X zBb9~j;;`@;F^}0-IRA7PTl@9pEj>f_9D-E?BLb=oJcx|_yp|jceo8&!7`fIxu#QOc zzj&r2c(6Q(avP|W{!tv-|wdm(UTv@&X2GdM7TB`gmd$CoBwc8 z{JO#E=*FaUb`T!BZCSFj^EHaYk%t%}f&4LhKS_+B(qwD%hw(h0CC5XV^!GCJG>#zw z&3_(MIZ=9fCwWC_t=dnV)QOuZ5?78$md{k*imTe$Z#*dW5s_*@ieC62<+r|=CfN`E^li^MWOCq!0C%v+Y zz|w*5;el+kMi>mJ;5s{fjS+$a_^gFfGVK#6VbJYoA3zpVF#I;;O`iWZkih$(#QuIA zdO|y~q)G0Zfl0p;>gp}|l6_;r%Tre(&0WPAdVm#HHaxO?A*X#UYW_82tRHDO5}w@G zz4Mz8trnIaGCpLRIQcGUTv2O0cL^5YP?K_^8w&3B2Z|z(NnR5Oo`~`v}b}@q`;!S>P;R5%;HHM9kl|U@w zB@dM0p_a$0;|2@rGSe8Nte008<+Oc)@${V?|N6-Zu}XYbR}qiZLi$XKTHSYVQ9BY> z?zqyVcKg;fC&fH5eQ?LFmr%Ks{qev<@V5|QQa4gym!u6`oRMoHM3b_E1_)Q1ntr#k z&A`w$<(M2fxhZ@E)c zUvexTQsN}5{kIWPNSf@rmSX6508=ZEF^>#{0Gc50MRJJk~4Bpbt4<7yI(BQRRPN z_X)S5yi$u;-j!gTQPr+=clV}oSo6PpjyyV09;Ig-S42QUML6>vu z>n}}e<5L+s7EPa&&@!Ogs9EQkh_Ee5)pf5+>E$P@l_F$|JSr+TM=8c`(=I3d3oAD4 zVIGsL)LXV9gVx}F?K@tZAQvCL)b5}A+rvqA;y+eSp(GVu+y@0q#CSQz+J73jxH~b8 z!r(|Pb4MYq7;6D25up7oAuy9#{W?UlQvm@-)#QL;XI>4Yl2VKO60*NeoWW>+%Z>(f z!lwSq$}k^^|2?-+?2sLzX7n%M+o0tne-5^XnG7SAgeju2;*F7=5b5~9zwh6#X%x#? zB{?U4c@MM_!hD87A8{T_ ziR<%ALLA5UJzlU=@qzk}l#2fL-P_q?X5r13v5&Pz&+ewJ2e5D}vE0czCK$*Wv_3ee zBf+CfD3@ptwn+ANhxX3S-qHf0OGX1p5e| zM`g}h955lgGTNZBwyK5{d$9jKm#FidDAEz}b(;2T;QlANzzvu9lo@lb78(mSe+-PjJae#7v~h1iup`YcIdOC)Qy)p_jRf6XV;SQ2-B!tWYO{+ zhm85DT@P_)@Od4JM@V>YMezM?-@$^>vTHz3otNz(u&&sM$5UM@O)9s02$4JCBJ#jp z+12zoG7m9obad3!U8x`NNzAYbtPS>3fD8|T@0Y232fS05Axool-Ck&bZgf@fI|&y! zGH>?Mx-{C~pQt2%$!EGRB5vGWWTB91WVB~nez1u~=1QXW*o&ozKL{Z07HH-QDIc4e zDIisi9Yo4EL~ig*+j<(Eov^mMzS$=R(rf@uRduJDBB@wjSSD}(p56l0FB}v&Zn#5; zT8 zWdXCpF!n2AOFgXVkm3zMmTRTD$M0oPg5Wz`Ok1(6Kn!l#Wtujx4PNuRa-u|IjOmQ!GVEXYYBV6Bo; z7vA^n>2LVH^hP#X-7l+M6yRrtyrWL>M3`uOz|b+ocr-ADGMh|Dtuur0y1r{zio zxqtNkEweAhhJHCmd^ZeM)%JA?wsRlhCp3y)U3WG_R4WO1Uat4E;+`)ksf*rex{eVO z$kPwfiIdUkd}Gtydg7Ko+}=JNp&ssXg>mbum1EP^&TI3D%B?drj}@)Q4q-_a!c|Wg zV6UxXw?Pq4_06h)Jxh(I`P?eqU@21rqcIskEUKh>#4nPLUYwgep!Rxy3y4Cqx+Oeu z=s>&ZFyFx!KKI|1Hj`TE&sbO*rq=nf;G3`SdGFD>092#ehBjgSLIQW@Kh5^ae~$O% z^d2jkE0(sBFsW@Lo0#g<)tu~66?fYAKX_knNn{FcGPzrz@RJj=XikgAHjqpyDJxEi zIfWJPFgu-TYhu@uQz~7x6BkH2J@(>c%>;0O$b3I1D0rEtsOy=CtOHfCsT4WwbEuzy{5N0T1gAC9ycMGqXocsuML{cG$GM)L_VHaUbqqMj5WOY!aOm&s3fpc&{V=Ex#Fx|wvoOkGt$Eiu&>8L!l; zbF0p2=tGqg$f<8&KL&+2w*TVIyF%H0%x0iqx(51f@KyoKS1??G5ol;V{0uZD!8Xy% zWZ&kjjnyN;cMw$Egee=8uV+$BxyoAUJ6si_&w1ix^(pqePdrBy_9u2RC7@PB9B^E5 zBP5+whjXzGt&lcrkTAUdi>a3KOLCJlmdDW(JgiU&$8z_>PT`<0)r7?r8=tzIM1QJ` znsZh7iU@vlfy6HBlMR6ughb*hwZ77?n)1FlcA%&?L%otPPTygNZ+S7=<|h`~wIj#4 zP^`r~G3mcst=z<^0;A;!q_Kz^@3yBrEksC0cNLn46@B;|;BD-Fuca=*?6|eM4z;~h z5Q^c^Y8Sr@jpbj}1qm1-P+pmFlFbWFs;<>h&Cd*@o?!hvX{tZo-$GeP_KGe!HLzWt z_`Lt+{A?Q^a@605x;aetV1qj?ro`-8K^}sHL1gxH&g^RMtfYA&hT?(t{;p%>&|Q)> z2T@+SP7rkj?1s*r5hGDMTv39J@{rGW9RpKcZ{|ZoSgdXloq%^=RlwkhIyOWJY!aSb zOle%;Vd9J8`UO>USO%6IUaW`^dKZ)-6q0M)li_3T{o?ckx^ zSK%WqlX*AtV*{U5rHj)s9rAK8cF`G0Cc|DDm)UCe@?5ko|Cg@<*Fm0)kw5!o^N-cR zpMvNFaI%;_Z=r%_F-H8I07CIRjH62Tu1OEThWB1;-Umo~{I{w@OJwBZX9N=t6sPe; z*Fhr}Zgbu0@fdxX@U%gL6dX&$^}dP}A+BdT-BG*iAvVk7DcmtnV+Iu|MvH7aXE?Fz zxRfop-RcdsXe1gp4@v%d%Xe@+^CYe5uKybl_lx$P^s0iOls_qt!yQMe?;!kX@p$mb z*gX=gW3Cp{%J2+6lW(?|A7_Pt$8h6ln~{`~(QrI(yqAfc`yBM96FcjiKvv z%prJ59*V2hYDNGN`g0>6)SkHzt>Fskgxu@lvz~u-uV64VXvu|S<^Ib7P^{(-`b>FBbZW#j%)@xXBP`M+|yt%Bu$!e%4rXmZ2-pe6u}ZxA=sa zCKqq$ad>NfLDgYM&yfg(a;C#}9Atr>{WKZ`}% zqZvIp!CH+bhkkg!HD44Xja;uEChz=tfY^RC8|AWkHd-wj z_nf`l_5H?X_>on9DLTp2R~Muka87Oy`WD<6w|-Y@zIH(r%0BHZTE|lGu;BDayRIgp z%BwsOf*V0#T{Qh2x7u@N9Q^k3c}X`3*l~}NWXTn8JtTp62CJ$`@*4zU>^_jFe~g|u zv?tsp6wSBYlD?>vb<9-wyWO>K@-x1HV^#0XdEM?^`$&e}N=1Cnlc=2ap$?%Qlo~y0 zY3Kok@ZB zXIE)V5=10^ikYeIZ=Fv$*^%6vZ~<}zFMa?B4Qx0h=2%enGQA_s|s{K{?sG<8B;zO4)U3plkrTliTA`4wmvzb zC)OxuApZjnf-_`QLgf>^RPE$ipKG|ZJ+>CxZK2THg+~POAz*m?gNl>nRw`g@3%DwB zde&gEb?d=v*^WqZhCGWyqFlSL%Zmt!P*$$Fu_bE4{hS+HRhHEBVp+60krH--`bvkf zkP`yh-(Aq{^t!28PF<{?8C4SwGip4CcM}F?v$$yijLQtv1&Uzx7}l9wx40t0TB)A) zvmUvo1Ya%?FQJ2G;%&JUI8rbFJ3W2(9AE@xskouiLP{xnZ{gq3X+EE+h49Lqox9$ECT289L9cKxCCy#z&~5*ci%`#7Sg?MyEh)%KCRn{I*bBh2zmJejAMTTLS?h~rO|Ie=jjl<<|aSf8*DE4 z38-8nfoP?J*D!c4M;g;V5=}caj@#r~#VMrAu`sJ(gMF?x{hy|Mkp2}@=>)rp4J06_ zH-M?)(zGR1Q|=moeDm=>;2*iVnokj^xuKBtEkK{Gw4c3DG2CoppYdm!Zs&-w-B0tC z96O;ed$-b}PQ!g|ky2}!o=)J-rX=DbN45^!zdHaHl;^Cff|3aW9Nvy58e{EQ_Jt11 zR(rJvN|G_3!%*S~^Zv_Q(+xg4cFmN&zP{573r|tq37U0Yo=2;(8QU<8kb;uZFDi-} zrWG5)@37l7KejjCHXJEavN}1$IMiX3X3y`e4dkv?qHNmcHY(k<5@Ty??-tz@ ztGzgPZ)|KFsjz34lJ!^>J6S94jO7okut$CW`n7&K@22T5BSclC(@S z6?0x0uWLmMkZ2`E1?7bXMtV&O4Y=SsRehoVSX91^2L1o^TCs34I;q(#8E~&D`Xe>~ z`#?knrcW3aff-DgV_tN5E5fdKArNz$Q$<1zY zDmb1TA7#h1h$MWud_3G(#9dEo`*@rV#wI5_JsiEhHLQhSL8pxNev+m7H7%!gJ;#?eq`%lA_ z@8{y*F<=eGiBRwxp*m;eH2=;xec!9Rf{$$Cs=QZ7%=c@9`*chNI2#{v!IXLL8q8F> z8Lxv0g{Yd0w`-vhJDLx3*qlme3uCv(Or`#0+O5Xm^8Zcb=AZuJxA@ne>9HNJi#x~m zaE|Izhj-ft&0yq!(9mTNQG_+9th@e~mOG>d=NPqfb-A9U1;YfbH}`L^50l0PeY`NB z6l~1G1@`#XwFWq!Key8^uH?=v#?3_OhZC&*Bdm1H9p1q#JiH%mMDVCoF3V>%_Hbu+x5EYo$lLfv5O)#wAX!*svK9k+S!kWb zuhu{a93h%Sa>ErvSxyoojbV@hOy3!@R8V)UA@T;b^$UwP7QrFQ6vO@nY#z;gK8Xz$ z0@o-~ar7_%^@oyWX-f{(a&B>XV$g)0t{XbL1-TvQH zai<7WiN^iIlM{7#gSwhEw19JTU57bb{|YwW^vpvO?e*;Zk~d)f2|Q=ovv-m~h;6-M zr(Dxt_rrof8^0_A`VH9&4~NDxegzg_$iZ0vTk)&&Q}0V#txUc732yIr?(9Mzk25nr z@D_Jk*LkvetklwVr;UBI)RLOXbMLB6%{~>F;yHeN`mGf6zz@t=Tl>TMyD%O8{h+Ek zCj29s*GO?=*3YD&#C)apDKU%yPIP0m42S*+lhkmF=L27AkJyZKC{PzyM4AY#3@t#E zWAu7h4(t9z?bipUnx!ZCqU9kKh@R%flBBUNxZL9{xwwcJX$e9Wcv?=5+*4DrrvAR_IRQvTi45w-Scf>%cI5YPoF-8f#uR- zSbj3>EZ8tScbu2ERV&ry^c0Wnidb^;E?;iq8_nS#9s~f?!bVf5gEV_RmKDblohvpdUn^}?F zBjd7%!&+8`7YIKuVX%IBYkbiEsS*{iKrFk>cl$8tiGwU9^QC}#n^=C=Gp0EFHy?^R zjMcnuacJU&HcWq`5K;J{?2?IB^BXh4yZqsC(i#kOpMkw4dv5~LCt&FOO);@}_^6GF zM`_(@KH9c#&4(FCuI0Z+C6H6%wy>OE-%Ue+M@Blp`LA8i0xv>>eIuTtn=qf#M~h@O zCtv+de;k<1bN0rlwQHvVM%xl_<%0_%p>oAc9zUm})y0DNi@A4G)fK1PbrEdG zu*F7;INl4S=3dOsOte@thWRH=xdk~VBN_{zo&UI4favAW9Ib>&ZoF(0=3I(`m)29} zL0W$pGDr8+HzL%ZqoXOW;*xD;g4o{f6D*y{eGAaYS!}HW>_-s%Je9bh3)m6o^Fo6au zA-?0zxkSsRWRkVEai3;`H}9%`1s6?$(|hw`Ujp(%p8-yT#dLah2~`R3 zphguUF?YBW9T%rMmo1lIj*Rza z4wr6Rz1ol{?v7PBzW#2c@WWJ%dsLmChDLy#3^qX*VA#=;`v2XV^qs)#WB?F@^XR%a zgbDqk4YiTI{+5Ip1MnGOwHWcjX)t`wh58TZ3u_? zlU`v)*Z;d;I(X&AxYvE+7VhbO#VCRPFO-RWwqUw16gJ`ms2<$SfP4$AIAW%cx1{#r zPE#m}edsewLtLE0*^Ei=Al|+DR0({xTt4_@)|dq&*SwGuecG2v_NQ4j$a8mVlq%w! zAztXvcUixx12PJ6^aE{tVkFgNqXM`bJ}-T2S~ob9ZTeNU2Bs$d75@KzQhJ{!){`es zG=CZ59vvMW9v>U>s4!CQAEA=w-1h{NZ$9MJ^Q4rQ|92408_`<(fp+1yN6-65=?H~S zD;><>g!I#4L$-z&2tKtr5bni z&VZ8SjIEFmdcuDBUv}d|fy1SHV6^@SgJ&wq$o%zc?uB|{AHH9W0$geR$#@daS=B+k z7Mlm}hi6I8oF-~hzp3fOV44Hi;ch`eN!MLIBUzDw`L1&ZI5)S40_}~v7P^#ZqjY>70b?dK#99;6ZB(p9ql?ZofwAtQXfxm5% zE$M_OmVd`9bLIfdGIQ%+;`biNR6>0u=9-2w`>m-d=J>ZodZPIcjB#heXY#B5)ihtG zU{_;2!TYKg-p%cfxTJDC{G&jJ&F(fB;XiT`W0jX1%{gAE`HdP-ZL`D0O2gtUHy>b2 z^w^P0Nl76fBATs0C9<%v_^hq1wbYitN+KdM*taP4oN^_nz?O|@hy-t$pR>rDW9QKg zW6&MWfVEtuKTAfd6m#?cV0~)5eEG=C%#>S?)y83TVkImY1;zl`C?a8A7m8Mom zRbV_>YzRANh!qNdWI1iugYF-T!s2J!kUqie8IK)L*%fX|o^D}Zx^!tFbkZ8KkU5PY z;%cEs*JZ}ZZOsnK^4ZYO4+?Q`&3nu3SjT1k0|-j%Lfce-t7f6WqENf9*L|-SG;?@!s+i1B06%K74?V z$R9S^$}}!+-w!r*gJ*lYK1aKb9hSrAWoK^`;`qMzVuCYQ-`m9*A5Z2xzLK9 zNA3%mPNPV@7zk`h$}hZq$sY%ZU3b51W^OL0(=BMoc#F5A>HRVDIrfOm z+l%E0FNx`b-rG)Uj)z~Mrp^HKlRV%jjifv!R?F9k**vG@Q0q;38aPY(gaFIySZ-L3 zg`L-Z?ejx;=qATkIDPPz6aN=oZvmCn8ib901|?z8EvSTaBdI7|(%mJEfOIJmB8VU< z4FV$F(hbr`H%NDP-ucdd|5)q4_pEi+IVj)$_I~%gGtWHp%)FPkoQ3=8FEZR-lp?0Y({JnAnV$l6qlV;-uU6ld~- zFa3aj{-&tdtT)5+{AjZB-DmTG425h}rU=D&AqB0?}7})QYJMc$qNON)?J`v@KafsvYD_yVYz5Evd>RZbf@q(l>dnY4Y zv>rI;`CDy0lV46ZmyJxVqN?sCM^GO~&>@=E@3Is`7u*v;e_IzMc*AO}=!u@kE(&tG z+>FP5NQ02LxVX^ug@b0Pg$fwV3%ANVU$hlIpAz#lQH^OI#@|HF_p_x`t){KSi%oZq zXY_4w+S@B9DzC08)x07;gbMXD9j~DzCRTJ>U7PXSZh7MRjPO;9RXyF@6HF3I``AvTtnjg3t?PrKrABb_1! z2FB>b1THA!b##q91KAe?D3jft?HoTwGBiwI(rAS*_5IC%M8Qol8aJWTl#Z&#{QYkZ z@nm&Y6@CsLJR75S%(1nOPx){=$Gr|#6iB!%UODyD zn~UImi$`5aez>#yp7MdP@nRAK#%J_LC1!MEWnOLeTQOHjkR3*V!h0e$He~SxG z+LK_tsA*>yQ$_xCeCUpQ*V!HC`$?2f@A6O>p;)X)ygx-`lR3R)F{fhlV=~#*f!FRi zkF56Q_}3`Z&jhPwQ-Tr)JqeY=B7NAG_Qxf*+Z*lyNj+B|D+-@Uzl>5GNH=|7h%>_( z|Fx7VzQ&V4T)K_=XAM}2fy9I73RD|oX>m82|DbbQ`RIg+2Ug>M$_k@DoLmcw3H!q_ zBiOV#IH4U}C7~$xKuqj)`km_I#I4wdx@-T%&VL8yO%8QCAGR_h@v$gvesA|$db3-$ zF(NX`Vx(y6Z1!$I3noIznx(pW`N6|c z^gNQTBZG;oMa9pg^gJ;q^RM!rXwNHNJSi&CAR=9NJ6aM*ffK`RXu>Q<9M{WjoBpO% zE>72Aqj||m$m`FJ+-e^*?N5?bD!v zB=5$d?CZmoch;5Pgo_n-3-_shXrdz$of54`%R+`za!=QX^{O9S-LZY=g=xuQshy*J za%QR1JI!I{nCqRbx@vl_U6PTM`?lW9bza5N3du0JUH~|E6mr7XGr3oS{0=#Sl~JQ5 z>H^k+#6-LWzo&5^w4|Qk*6%O(5*|PKNcUQ9TTe$ifx7>a>(9pUp7u)q7gVz1ju% z1v9j+uJX4J%iro*9a3XYkrGrs63^iN2C<8H>J8@-&C=c1O30VK6Ld*jU$xEJNp7YP z&TZX)xiL-NHR1JVTIqV$WLcEw+6ILp^Y0rM=9OnQ>63rRY;}(-frsnQPg}8z8@s?hmg| z>SU$e3m&ngu=^!e7+U$cHyts)C$!Wgow9PXFF_*9Uby-S5p`7H+L&YN^LJHU_i4HRR4v2)ZHs=MkneW4Vff)L%I+q-C(Gt449eM6_ng zlpTIK=`9x)7tAMobq;GOZp z%bGL5Kj-N&OY&?5X1k!M=;@X;M#}NwNF^J>!FX6x-ejV~aerI&r`i7A-27})#}pH~Z2Z$vp(8 z(|cH*bgzYJ`H00QwrytCBWk+TZC-zMr+%5UpGaYcTIJYi)O!7CqCAFVmBI}HAQ-P8)p?1(!$&yk*L^wjD}g{Q;prkECotKa-0WmPF}P92f4Ff zQSgN)hNM2W9>1-j;cWHu5<9m>OR1?sEbM|=GfrcmzUBspR`+8jhLDc3$hQS{zw;e} zE!n@s(en_K@t)M$kYd73iKe`IP*1|Ob=l&6ezX~mE~<=p25J@=ys;xQg*@6-H8a;R z8cn$Pv0Md^t+98 zVYlsO>)-#btc+?-e}z(Rg83u;eHru1YI6CHk>0{S=hNMf=nI7@`Ug;gu!qvx_ zOI_198C=F)qcjD;T96ruW^UPU7OL9_;Vbk{pAbQV6FvGA@=4>D+f@NJ3UP(jsAzfQ z^}}6JPjsSQS1DQtbGA&MFvDFgNZ0zks@R>G?IkIw3DWBRT(WO{{9LIHUqdFd_HXDZ zPu-=*_(@qq*J#e*+kSu?sA-hR*cmtSu; zxouQc=l_{&A2xLmIuf{%cjMy`R!dt$=ARxWcs>C}Nkq#dmPfa|PX2wtF0D;ht2g4+ z;v?k63R5-DTGu3WCUs_R(My$mL#jJ<_*C=Ijy&4y;#~ad_a2&pqyqfvyydo*MS049 zh+R4GwjB&Me#1#ZBcGTv69t8}lim5ZPEM_@t^P1T-2U?Hupd)VprFS6-$kHbdo^^Ajx-4(DZUnB6mPf3b)bwAj_nad7^N zGBnpan6#Y-oGHEo?mk-XcO)WW?C`wlvNQVvInQ)$DBG;y(vMJgwraa}K0CkGa3oJh zyUHm<$nz{hF=FmT`j7hMr1hv=%WePZM=sUHx8w-qPUSA6ViP2nOB1q=4Fu(Mg+D=B zlCH|KYZ0JU$Xcl1n=UwbUO=HmT|TMC*iPJjaFxnKA4`A2e>RXO1+G&%AFT*(BrM53 z0YUTR37hesdqSrRxMbwyhZFPj^BScV_%P`XIis7?W-)q1wC%Y+?DtFx_rr4+tmgUu|eqJs2p5|Qh-?JiDsktMy^ zS$*Hl0332^4vqnR_gu}=o!wo7ncCEK^oK!e%6MeFh~?f}But~)Y443JJvKctt1sg? zm}iWJD4V8Q$$2b!e(|f(f-5|;Inm#@i9t1J!zV$XV`qzvRBYZuB-GN?v62*Ke)Y{VVWF~9os``kw zPVb5w_Yv;d;FfPyZdI+XzpvjdrzNM~8dd)+Hl?gI83{57$UX@*E>P0$8?F<^jyf9V zrI>tqMQ+e9{|!Mz$ob{!#%1~d!0SNvTMR5vHY1_Z0Ib-z(KEmRyzYTZ?nGSyXh8m6AZ%6X=+NP!i zXZCwQJaBU2a=E^@h_+7ulpVveCxn@Gd zLH5*L*y}REdp5Uu*w`C}#v`APJQrHKx{v!^rXIrN(f-8hULCWC*M);k#^i$A-a8te zxUR32FV!!b*W7UgklrK$1@0CQ3~pN}B`r0z$n~8&cMSi0r8+ZFQc`l-7)=qTVP_AA zO#n{fvqvu|R=*@9Bs54z6aq!GHbXPzP&lJeRcLl z#+v3vq4%D9U( zVLCZOx|=#L7wI1aIu<#6%F4=aqoR^n6_=H@j*V&5dBUJ4nOJrdT3TA5p<{U8QZs3m zB)je}rQa{2`*`9K!!A0qKGJ+UL$23&_uLf0J2E5Qq?w0ORxhY>P0uLH_(}eAW|8%x zM-pz=XTMJUHuXi z2`dxjEY=fcEmKnoA=llsG#xR)ST3g~Aa|OABa0d{NmJW{9mJLB!(&-!=iiv<%?{d@ zE7~ZGm9aBbYt6p-7h_xT!DZBKXDWI7WVZ0`?eP zCyyWN+uF)|cvMf~FpEhwH2UpyFjO8wQC3Xwn9aW1YH%1|poTTxfa*QcPP0obDcTtF zX!Vvg=eP`&jIvg>aar8+1HMRS52d~izrdhsek4{~$6$w z+j*}6U7g)HV@%IzTbz-BVc7PlcNOzi8X6jZ$jmiM zT;`>8*A>p(?yG$Hw(#lqVPUwyoB|D#PpV8%@W-twswXJlIo~gJ8?>NZ3+0W!!I$T@ zl&yMd-TtSizHJ&!TB%c@cYpf*@oPE~SI$&;*Euq|QUwG^oH2%sO^+W?3`6ylC zTJ@As2pL7J6;<<%8deOQ#vVN<)QDrRY62JXtwFjqjl` z&S)5JbTEI5fKwRBXDZy6yh$fD6;LUDxYCb8MsBcYtX{?Zd8j-fEUWuRh&(AOD$ZkO zCL9)b7BVKx#5Nf1n`8u(&@)PB3UGd&>~Z8qxolxT1xi9bar5OQdCKNMn0 zgcQ)OyylqKOE2*v-15_iU4fncE8qJuM3S`5@D$W6z`!Z)x6@W8jg3_%=_HMHhL)@9 z|6rS2aq~a$Lrl0cr1H1(f=^#8S)9{w(F<_w95tF+~c%} zYE+#_L}2CeN2m(rO7uvyPV`j0R{FhJSCr&Cf&)9Z@g#Zo*hBR-c(k8?7ARur@Si0J zuMNHz3&At{;D+mcPQaC5iOl|yp2}DUgNL+SB%!yd)i*ZR^Z_JAn^L8p+3b-!{Vy%p z^;=@%dnCWKY^F%$-qg<4Z|bq~aGU9#y8>`!lwsT{+hMh>9o;jPjf`qN@9e18|NW67Xd&jWZE=XVM8I=9P*$bPZT2x@dUGPnH5GAM%~m9d2;%BUTjB(4uIfevkc5`TJ(eHSwiF z08yzc-q=%Q5v1Vf05$QkJbdu?U9hYN#rBKdoi@{-UR8Per+<2akWFtm!@@1A%t zEE3dk!-VihVMv6swaey2;M77?irnc}60p;oBN=u&St=JR-!(j0Q0jYbH>3{%$F8{6 zc|A!n=;OidN|km0fDp9oM0LN=8hMOYEJ)~rH0TGrf5nrBL=M+jJ?6N2T;$P`F&8;^`&1a{RUzZ2Nn*|!&^yd8*xop1z)+zgMG!>gk7>YKXB&5bI* zE#p)DO^*HD%L{=$_a8nUmt{Ij=bOXl%R39f1Lq=Sxm zpVCYkdhgspe%cO9s>O6&b&5&fXN{|P%(4XG1AcMdX7fwMC)dO_ouInrzbk3#G3q;R znIjmEn9WVYX+Ii~8@EG{7*z}}4xiyl%VyA)U(fjQtogbmn($N?<>}iJ$Az>l%3b+M z;oB-WjU&_L^h#0%f0q3NSppwa5_ z#CTpeerZ?g)UD!mm3OKwTOE{N!?Hi#+cexrpy#e96TEyhBC)E?+92DNZHB;ZMX0)C2p zcX#J>xzdD^a@2N@;J+=Dl%|*W%%h3rW7=!ZtjUiViL$#$;ADYhDMj$eT|0E~VrAnV zzTo+Q`7$xY@NWg>e^mzY&yxecv2%Iw&@j>F6z5^lS{fQtZl@th_ovLT>B1yrF7o#S zLa=`f>iM53{hcg+CMyuP@a$XL;g5CR82(x7<&c2ffXOrbci^YVs)c(aF*Q4~Px=(x?FZ#l*!# zJN}uwAD)nqD}NQAU}Eu{s<}o(b8YEs=%-H&LqjSyXv;6$ZhQ_1k3z+zU2{WJRlN*& z5pX)+K^a37%SvbWI&Z;7?t~06ep>eEr~TL9Q`#;1IKBQ4`Vvc!(bVoc1XdRR;}J)jXSv?w*^WQnF1GS&E>Vz( zA>CXH?7!XmqfKAo>p`Y~kM&mvy%OD0>6J?FDo>p`7~Nedg%i#(9);ZR<@E9g`qlv( z3yEz4!>MNK=iVEeHlFNOniv_m?8~;Gd9U$#W8ES9SRDDU>CDWi*U-#HJo=Z;n~lFj z{0>#&I2wWC9dJ&}-#46R(dp?=K#SyYvD=2aC>BigB44*=%e9t4El=OnR7_uAKk?jo zb6m9T3;A1n`$niZ1JlI;Dm`{M$uN}_vI4$nVdK8D5y@HK+#VWc!&& zNt-UzieoE0X%L?42kDg#?|k%ACY;~i4y~wo zCL|;Tdf?YHmCnoc!}sss2RO#8{afD-M@>x)%zbx%e;(9sZN0srO#ydj)X1dhMP9xn z=C&dN0?BmfmkR2+_vs=b{H8{=3meFUl(SVs;FduEowO1#fQ<3|C`yy%rI!C1QFPiu z+bDd|hwY%!R%TizW5L%xJ61cxa@q5Vly;|dzh$U35-_k7i=BcEUAjcO41J`fRxE+n z!!?a!(_OeC%r%1?@|`7U*?2)^dP_%*z6FE|UFp)%Z-#TmJjqEZDCDH1?tl))#m%iB zPK29wT_(@TeMepjclaqNXs&$5D-AOLyLd?eOTi!fW?5Zj^{%z4(Bg41l6;U*-i4}f z)u&G4#yJ?RBE@#P+)h^Q^mUm;xGkGpw*?qy&PIYo87b2{+_n)t2k#||!|f04dZi5w zsgVMs&S)01lbwGECIaPUxxCR2Xx*_tP1y>!ajx>9B%##qF z>0}_uM#snJ*4CuJS_6ZFIqBeFkN=zbRSY`$yK{AJw@W=b-dJEz@NdsBH9QqCvw`8j zCsd|K!WWmf(DKQfyGDcGzrXdi$nj~*A3r*cO!*`lLBRwtP{Bc0r|oH3=qmx^@Hkt| zMD|YPXjc^VwY9ah6uzAo^T#3oHNy@40lpLUz&U^P_qSi{z$akQ4bIG@1;rR2?5$U# zqJqj7kRxYJmLayrOFx4t5B!kCEh;Kc#>OHDrLyxbUnZBr$U;)R~0-9FsDYN1qPrTu!NI-eD4Zhd_8^E zeFeB7ZIZ@E`10UegPXcKQC?mi8J}YyNXi~iQuh8*$yTrP5`;E|+YdQ8BcM58ALQ+Q zpb76suaa@Ue5dmOz4FUL%2z$qTnv#kk#VfmS9ZQdaXnVl)OF8p1*(Z-@SV`{M$E7PbRA7G~_cle+~^rt8bTd zCf(~xd1-8F`hbiqheZh_Q63&1&~uUW*vI)(&0R{=TT|p6OqOH#)*kIApHvM z{)vD|u|zRygfF`q8X8JSOFshJyM=~R;IyfEcDQc#ng+a-+RfFCjjmj+au7(fLj65W zHCGe$91WYK8A=TuA5bun4+=JVur(EDG4v}8cEfirOJ3K##~_CD3ae!S>q`-N3{|Np zkl_#fQen7!`19}IzcI0~tG2ldb`B1Y`1tsG_ksKVmYA5QC;!JBCmW&br7?2jcCx2? z%lHH?VnrpJP|)IlmF~QyorTwR{xOt?WX#!6NQ?Vj)%61Vk2)Cg^$iUhp@jY0X_JJ4 zfrH-!TyH>2u6L+dEqh3@CFM>+wo^uw^cD*R)zdq`7n=4ac5jRoJ8W7G{lbSJ$T8}) z%<+D6qMS#)S03!$;Mw)_ZQrV@s)mQXmLqvJ+Yabd6grD#gmzyraA`nqJA+F>kw+h}Lb<|lI$9o9F0MnJ*8B6Bx;Q)1HbD6bsXeLuibGxMwXV@-g&*#(-hLu(oo+e z7IfoO%8+SjZ^z*0=Z9_@3HZJrxBk>cd@vty?9|nLo$hvrR7n@1FZG!ov?LaXt@*{G>b|wD3B8XLO3j{eim4(TGMy&P?3%d_0#V4>c zzJ9$YbTaGv;7iHIcoE9c<}D>9mosx-jYE{9i*FLimJf|cLfGiyqGDS&^voQd{JS%3 zI_&uC%+7b_zl`oAV&ZlI>s@&*b@c+nmOH9B>IygS3u+b>&9)G}>$D#CDV=#+`|O$? zQLNe9__zOW^2OW?A@VYi7t2_f@=_xCJ*p0Z(WH1TuYA!v4H#U^isFTv6CY%$tfei3ib0x4Z0Prd$%i^RUHV^7VZp$}dU)kOZ2y5; zDRnmV zRv-cFtYTUoYwcxcexptQis2(2@JgdEAYfyg61XaV^z&Q%{-8v_a;8=gq|D5ltQ6x& zar53D^|NOcB`;l#fde?`Nd%GaAQJv)e{V8bJzR0gh0uTs{R!Ca5!Gz2pw6;2u7IA?Kf4 zSojzji9eLBhQuPq#>RLq)5xx~y-pS*D=TgNipK9ewiMVToOIz1f>QQE+f`;ipGuFH z+vZ<;mJ}2ui-nL>gK*xD#PyN*i$g{_s*yLG9_O3oh`}tS06-+gj;sA>Km8C;#3o9i^J`t`lK%Og@KYb}EhY3u6BsgJ6G)=|5y$!BLr zn{l?W5It7g^q3@%rLqCrW#O#9P$%Vs|y#zY%@HMt|NC@Z)+Uo1ypV>o!8Ecw11~{L$JL4~i_e2A4zA4p2 zLYcZc;iaXelarGI2v-lcRlf!XqC>7o$gIuE8=9TXu(h>ya(cRZvEMttyxjJ$DPWs{ zARR9yB?XI=JGj9Yt=MAdsqbYSoEiYX$*5Z$Q(ylapn({a$f4m=zM!O}>$sYf+bS6# zqq;htELs7q%2IDq@82}>Lnc`R0|SJ1rQ;{)LNYWm@=Zt}zdS!)hS+#!SfqdZQaZp&cnhYql2VVF)}_Zew%@bA-B&&i9-of<;V-}^D~^oxC;^4 z4h(8IUoSK+ZsOJmWDN4cm(Bkl83PtMUj#NOH<5tw;?|a&vN9f6--Ks^GxQ7JMnRbx zVM8H?a})qdJ$d-h2eLOvLWtlG08hYMS*zPAx1MMP?B3*a;}+HzVfQ0OkZ@y@^4L74 zroNf0Dh=y3TII}geLi!|`)&;n;sg6{odi%?PuSLVLkvHK&dcA9s}Bb3ml_!BA>e8h z8Dl`x7cCT=gGsnL^sk{q`Q&KA_Vns}8~HD?!4$6IHhXLe(Qjj-JQVKUZex@U+3f=x zr~}Sl#(u7;Ndn7n3hyJH_w5I>L|1=`Ku?3eX+PVaCdFzRi~G-lC!0)z$T;FZo85^EPw;zABNF zKmpXgQGUV(>Bm`2A$yh@!F;J?u~x#kxbJqWMPTr&t^ZGO?Vc4$*H;>Bci~UYjMk+= zTa@x6BjXn=Y8FIm?Q?rC%6&J%vMn~>B2~=XJ*Elfl7tr;(JjobQB{;6JMWmB)b@nj z(sc`azx_hs&B4?CW$X@hEiDF1OG^_&!_?s5;6VU|SUp^jsSkn1|K>cg zfJ?!50oNk08n4TmI!z#Gp4P@O&vT@>zDp2g+mYS6z)U(f|7xWlnK zO_+=h&Zn^5NUhEnp+&l|un<)7;a(GfB=M7R$as^5dj z%>~5?%1`+Aweno`LXnD!ibYaAI77tq-089mu#abS`mpOgo% z)d|X-r~F~_b1k1cMn~0kYTSnO-62B)xLCX=Xa*)Z1m5^?9bCQ=;7LV*Pil}ZSs-_& zXI55L$KSsSp1UoCXVxI1RN7za=HQ)%8`OaH0aXAB9VRAbDdbclZ5poyp)W78rp7bz z-HpKv**L7S!>uW;5F$3}-aVAdO*)pDnY%B)+unv+v)A|UA}4xi6@#-xWdvn1md|8o z8VREb+Ws&-x2Rv0}4OuL;OEK&%saH6~zWWCRq020&!!EM2YToTXdihT4XJ zrpwv+`CHE;pQ;p;mey?VFD-(=3L5m5e~H6W_4M>0;D`OQ_56LX4g1426+pQX^73sR zFwrgs65#JKF+@jOQ`z1#&v^vbpixyFj;%-fZ!j$6rexA8BO((92m$FP zol)SFi~8OYJOP9WXL$x)RO7#Y?1Mk~{?-n(4J~%b@Vd#oc*!&$7o1tE<>^`RNmy!>6J3ImrFhKb= zN6>OHINNkr*!b$=)HQLUrNs}d)z|vPix-fDu8hpMZwuz>)^s5Ipl6O)%NsEbt*xyK zyz+Z*)FaWkPTF6*Uux?KZRS_x{2+25aGB;mo(To@Z*WM+GoTdmriUSDA*v6DwW`mz zsu;D(g27wCMY^F!-Qk_T`Dg)Ez+FmHuyXLxt43%pz)+ZjV^Yi0rh;@E35V9#E$tw^ z61=*)f|+iM(J&5RpxV{pgRd_pzS#>$~E1E*QxWB^M*H(d9XStv23_o_5-v6&rPgNJ-0<# zw7G==e6>O123h~k!GQeoc+!9rK8#06OMB$=qF?zQn7E>n(zecy9+C=zL#r#?=Dv{f ze1VTGpKE`IUxU;UWPxD1CI#L7{fbEs5wLZ_zJAp&$bIN~C;%)QcQlLM(%xd{ znQA?_(EEgh;=ma03911!{B6G|mG|mcVE`^sR9yV&)29^KIBwUdF^E9`qKsGiQV?gi zueXjfp}7d!{6E5M2Y`oNaJ9qpwc%W8Kn6)LcoB?%XEd6Sl$4Z4_Ioo(i+Le(r_3=* zK!9!U=%A*i{s4e+wS3vpt@4~h;O*RPU{I>I*U=>r3?+i@v(b82S|gmAetWzfUBi^K z=F6ay>@B6(pXgmS?U1F&KXsvh^|U$d|CcE+2C)#lvH8u-Zs1JRf7?-cUmg-lM=`eV zYr`%Du4dKtMm{XXNVG1H6nVG%$Hrp8E4)3~F#rlq9AtJ_M|Vj$1J(3ABT+C33IK?~ zO|MK<@c{Amh>0nL%W~LmZ$T32`aRZ(A3SIT4fT<}t)kE`<*Y^sD~IK_V6+%GI2krm zl~}~=A7O8XMMky&mGK7f%KL=Z5WU4G%B)vGRRlV#7U*K+FzZSF`(_3HB4uu@#2mNS zw0jQvt3_2r5m799J>X~Uu~!`~PTu-zwULDQLuBEA{g34NfCdo(qNxIS5`L$RWN<-9 z=^#L*edN@L^XCzPtyc03(LrA#LVYCWlhA}ZQ1y*D1m$jKmUf&_{*0;8n z-JY)5)(C~?i5k&$53#L1^@qqe#nIzFR17x?s3HiO++IU-865B(E8xn03l+w+?$>Q+ z03T)tjtsd+4!u5CMQl9^3@sBsrBcjQ&2rkjf>uxCu%9tosW3bKHGpR4h=E_YBl16m z^RLVcbOOT_`+O%&bex>ZGz;|K?;RehWMpJ?w6%%X0MT=H3B-lMyY*oe0s?|xV3WXo z)^-%*O7wI#H@|}J@GJnES>OULUH$J;+Pr37=5jlD!v*bHDi8n#=067oDT;}SSwK)* z0|#mWhTH+pD>g2U!OYBTsLWcc6kgEHb(i&FCKCgLl%Du!-)v*gH*beWMP)$VkWEHL zhL^mZW4}8mdI$}fbV$Ge={yoO;ggeF+a*--hb}ZD&3tiVBL`H7%KG}rX8^b&6^=zXNYo!8Iz}HXC%$;%V$$b&OM#r0_oG0#l-x-bC`YkrI;SX z4y_`vp?^WdT?4NF%9dQ`hn7SY z@qRQ6F5D{`<7(!2>laTt1$IwyORjSSd6aAvLA*jQ3JLZ)#Kn;O{Ow!LcK1wPnwru8 zYgc`-*U4!+UEM|FolJ^%kshtv!E=gxOw)@{eJ*@?+xsGg^eBC}FOrN$^K-s~Nk(am ze^@JeI$m0NFpZF4VrAYt^TmOuYAljeAOHNDovoKt z!NTeN!dqG$Np&m+K%5U$#eC*$4qC7|;a2ElVXNx4Vw7b9MLEaC#J?ZL8GVDr^gz(C z6FpS^?=w(*#{V;-*R(nS)ZUQw&!TU;vTc7m#Ea~E?b=>Tw>Kap&A7j(Rw3f{!l6+Z=nY@{YVCOIx&f(`4 z;C@fRMQQZB9s%k%4~I3q zP-ijhVj=uP*@o$}-N9ur3MAjt_A&Tf*T6V&$9*OzZ5H=nj z7~Ug@TJE#l9oL3z^Z_#FFxMaWq1&^7NFi6d4_GliA;EPi)=WZ5s$Y*kb8!dK%GRc) zTi_d8Ln)D9kG>igsBj5QL}y`z!@nh2)}l(kvR&GPtf2s*(lb`uWdSFhNk1r^fH6lu z{h}hpuS~V|S@CPQBHu_^(TCKv$HFi%Xxi)C`j={MP+D4=P{XaM%~=>;0d-3l4MB&H zlaqT)OAGpO5y($@UEtUYHa3CFg8^hU2WXAU-GBf7xwyF8qoC*k@Q=)@fsNAdieVGQ zt-d!GMuVaMEHWNzyEa>E`1?$2YyXGn@#^Nog>}a1Dk2{ga)Q2e&1l77#Xz)g;WyLY zWpdJEBE$K(ByCt;aJcT@C(H`Mfn%RSb0%Nrc}$pT|Cn!@u7`kv}cuR~zj2Ni?gK zzS*~^sK2y1a=7$!&^raLCrb_gFKSL6viQ8|CK4$A8SW8SnB<|G->p{oV@}DZjV^Z& zIrAoo2pI?w+PON?JQ7qCAHBKi2+219 zc&KpQrvVlc(9vy3Eg^3Ae8Qy#U}84c{0SH^8Sis7Xu1)Fjrv%K;_L{e&*v>)nP(=) zuLcP*TVm|zGvl7HW0e!nap&%{nRXFb4ChD!0ELvx5HO6ohQ{uGudu`Uku{`mB6VJu zE1-9WoR?)2DBI9`A&OFwPWM88K{SG`^C>j6t*0kX*{J=G&(@T|xzqD+7&^2Z+oEb- zeCN2{+NZuCVe=x{!v!5hI!WfeV+H_$(ANgUU4WmTK>5>;bnzdqoFdYNGBl4Ob5wG9~`pz0DJDs}Fik5bz+G_#xi^nD`@!nGd<)pn*?@vbs!R>Rvqs4|NBGWWhs z-2L~hDanrh>H*;#^SwwsQD~Cfn}nu#bgI3_7_*NSj%QNLlIfQe}@d{NU$UIIeb$fwjz-T(`2YG_C)X`*`oaby{iQ~FKTS142%`ozw=)X?QB zDT%oA!K|MnnF0Fw8o>C&u*Hfpj!B?1541pj_ne^x9Hkb#Z}fT$fK`xg;9Q;s-hTwc zuhc%ZRGV}Xc6N63>wRtjp}Sh!qx4#k ziv)WH+-csXvv(~^-32@N{a4vT(<7yRF89I_Q3iki_EmCC)?RM=SFW%0jeieKJn{J@ zr!pp>&(T@Q+%z;^syvS;vOs{3pY9E00v42@e63-k&HzXlAX9;^Z){*G(h2t6w`k@gqTe7|taU$+-LxFG;8!a`61Lrd@VjTxkZzNNh}C&5 zbrD-xTc1MB!hG^K8!+g=Yqrf2>_94a0z~y_wQF&$ACk2~K&dhw!m**b`KRJy4&($3 z$;ye__1;X}%JFl3%4YI6lJ$luQA?n`X@YDKv>CqakTM%WasTWv zz8Au!ZxoXjJER>z?L8L}5lNY6yaVw;;Aqqc27skV^fJ8C1t0GF05`?K>|{OPo98!0 zo3Vsmc#$pJVl+L(2x!%6>lpk6?&!d`!F% z2UEU)bjgI;>6vO1d~tYuyo`hd`j;3&%T^tY9jRROd(b$5sC?AQU= z3N0;t2bS|Rl0gkg((I8X(>bx@=o51qoXK)u>ia8d5>a4r|K+r^tnZ*;fcS^^C}d$% zBmxcSvt!RL;4icE>S~3a-FO3qcPKLesSMA8Ku1UKE7!jP01DYy=+PVZ{dXMcaupB{$hDdY~Bu3|;y^2B`X_P*%}pW0?uc#kx?BW48K z)yLm2Z-jn$E53E>xs1$}$+peG(<~tzXPUR7-T#vr9R0O0HzxwCnzsqsW%?}V$w#1d z;zN!OgVKbn?y}co==g*NYZy}X%`yo#Ka}H=#X~8A$@!!FFbSa$+6<)`BB;$16BC~` zcTP^mLk}i$@Gp{P55-P~QpjMwUJ@`sed*GKa)|=%KpA1@nHU>?tgEwG>w*pC0M$mw z6FT94G4YpcKywAEo+L|mZEZ3j+)*cNW@U}plmzyCge2pBu0 z@H8Z(1z7yL%O2yW0YF$oAaR|wTzoV5^FA~mo-M4~Kr5+8_E3>=`-98e)oPn-5@O;) zP|Tp-rI3NY8im2eV0pva-av_JlvxoYa~xh?B3s+-oAcjcY%tJY^U$rE3^RU?gZFg- za6=(AS9=?)RWK&Gz|z_D0plp_5T+hJbuAxHF}Sb zkPw)0X=up{Dj-0b8c=gsWx%GeoAr>n9jv?$4ZRDXy6MlKK+wY2!<`T?s{24O7Qklp z_0>5t06>Ky8njrfy_O)TD~85VNDNy#7&9!%MPzn`1is5rR_}Rdf zuU(M}YU`oJ&S=cbtDp<~gYq=qx;jey|EIGnkA`~fn0;f`z-N$%Gln{nUy_7M^SHg8fnqr{X}liyIAKEt&7KNgwf7BBUyTP{no8<5FCqr`b|-uom#uZ>NuQONTUU%PlT83x)3zy z6Jhg^-hM&IYP0*BD^LRXo9;~Yzq!SIDS}L|isWTwcQ01hwMhk?zPkEsLU6x# z38L#ZUgw1;X+}}e(K;q33(3ZDpM#fwSiYUr^z!8upfbXp1BO?wvu<{?;Vz zf{mC4#FM@h%Z%H(B$KhqPw^VnNF#Nq#fqYbkT44J^SbPVnu79*A&aW(>gH|SSkx?( zz8l|e?6;j-Y8i#SW_mgDyB%2R5i~P}<$eX(iot4B*Vc7}5?Y)^cpOh4Ff!j_KP%%D}Zm6(^d;|GdE}Mw$kj#1=Z1 zxpA6@&5Vr?0bKxeL&(y_@`vBRtX3mQI+)Mc#888k1B7xtHrA@y>P0W2hdqD;w-NmX z`mLP)Y!^ChL_viOg_}x}OLOOrq1G;ssR;bG6$Wi}W1|rAxBAys?xE45wG)vQc?I|h zwf)oQ&#oig&z?Dy+4HQpB5U-2pGrcg(apTiB6|>kMH_xMeAs7rewZU75)wzvv$BH@ z`}5u#rt4o-+O~~Mkwh8jE@YgoX(_{6s?g;2GtM-onAj8zVybQqy@(Oi)Uj027K1={ z4t$A^XN&S2xTBu}`dt1tNW+?;$@Sh7?(NQdUqM~9N(H4O*zD*9u}%gbAf z4~0!Zm#_lIw8C7;iEmgT#4HdH60$akl(GO)3HA2!vVi+T#avzz+-v~>;$WRDNx|4j z=R3i8!us}h$3Wz(20pw>9|)Icm6*l9)&WlzG`o8z+b0`ube^Vw)h zerTe|$)>J6GqkCI(EsRIK%|{e_xc^@7T%In zalKOAFDWhkV>ibSZ`ci~k^$%#GyswTNboe+JOfX|MU8Ss#{!mS74~+GJ$#4J(3U97 zmLOOy8HU%#-?3iz+cJQaA{%b)pmU0xcCrJ#yu9ksJ_9E>^r_=W4_JpFj+RU_ia#YT zA(8Xp!;!#5tQ;zMZ7hS~m|xs+?ZNfc1=e{8^>ge_Jj(1?x@_5P5Cu+ua&RF!AYQ(J z`P@Y-TjB{ujnz-L0Qj*oqD)lJl~%w^#ZYD?&Lqf%9%w{+5})y+#p-U zz|eLL6j5wrE)@tfLh)S7-<$2!GM9QjlABMZyJvcNW0M)#uU$7VS`p%vSA z!Oy^Ug{iw(b~UxNVYpsr+&R&q2@Ce}&6_tX2@`~41HyLKd7Za(WAaWjU*A&gHq`f{ zZ}Jnh+hAv5u5WWZ49e$#NnnzLtkUD}mZGT#CL$^dbq=jcF|}2!5&K=d{QNTUwh2Op zN&4}NMy}u0pPBC$^A(sKzv0;>lGfZdX;d?M(&pDd#&Fo%+s|9L&>7+>ddP<_8g70K zjg78ofRK1!BT4Q(9nkK;mFoRCM$*Ped$5<71^mmNwfuUskd|07o(vpSA8s+WUmOH8 zC+9AR%9{%RHF~5L^E5CAUr-Bg3`6UZrq#aH=O(=!jhJp^Rxp{8L)$iOLbCQn%9Z3~ zr$V3KhkSf}*T;Pwro(+j30j2plC;A=GT!lYI2_tye0We?rC%`J%4{(b#{_CD-at#O zg;-U|WUL{$&Xz4pjEz~{*|f^h+;xvJZFyv3A`@SY)Q*!^NL(F6Ypcimefu@MKQFP& zk{vt^qt>?ch&Hea03pd4BatmEB4WYQWPcwJ=?|kW<~ovyh)@&OPN*$PCH0Rx5qd#> z1&9PxOsbo7lvN+Bp_?*pws15;|>TWAh$Eg`$drK_9SeyHL*_r_;HACA}l# z*?{ z?CZ6dR$qig0c-&WuIA~}S;)qp{G;_5l&i4t@cAAd9=$vt#Uj}m`C2Gks?b94q2RH^ z{~UJGAuS>C0^z=Kc7ExRSLb?auPv8d1m*7ufN-!~`g)vFfsHk7DIQo;LmgEeDIRze z*sihLsSl@>=#dzRQaSDjJ?`qumnMOU*epcqx3bT-Z5t6P=>kCn^X9vTwN4{`2Jqwv zHi`5xhUGl-4T3-Z=ojFAhpo{wObh+iTFIW%1$-E23Go1 zz)5_Wc!i><#=)~^&)x*OH0>Sm!=81unRj7z1RGZb2Ui9MAp{N>yp^Zt9nwzVrWjEi z=z-GG(i3>H3lvC5le{! z4~RrYZ-e8*?3iZ3nLVAIDO*pp=L523!JAI(S5iWh&=Po`PP}@kn%l%Bq1HiOYGV3u|}kxZ=2Cc&0lAouQ1Xjho+CbTrT1oRwTDd7!L9JbHU7V@nu}IbU56Y zgb+e&CTd|3dC9K$eY51%DU!^iVKF|WJFr;&iOCPnsK(!Bm#IUQl3I=eKKkjCIdr7@ z*RS^qiYsZ|(l}#XwG)jN_PVLs_U%-NA{@{{1a(|IBjILeqnc2lK=pQar(q(0E+h|Q zCbi;xSlGH%Tz6!vjVNvAN<|MxBM1wExJh!1RAuGnPARN=8b*cEP%a1syDFtdlUuu1 zGDZzF$*ql9ro3$%9U6uk+P|EY-lKB^H=?7{z%kQcsbqjb#e&fN?6#i-j5H+u8uB7T z1Ox>+@swPgqW#H}lcGJ-#nm+n2ArGc)o9NmrX$nWu8t+KMR9#=GE1VhkN!{qN2s~}CYOo2l8fJyZ+AAkOR06e26=`l1pZu?J^ zDPwd~edb?y^S{9JAKp;di>T#UjQ7H(6;{~^pi3Y{{FlWsZU?A3VleQ^h&}aLO;uHR z=~C-sT*iNb>Pm0#fr6vaB_N}s>`{fGfxy4#6?_ou`VEB_fyb%ih$cWGTnTYzad;Q7 z%mK6{0ErJMLjG8xllE zP|CxfDtUG9f^>n{;^}bvVGl@*xI{Hca9ho%FUDvgMoSnk*1{|}Jc0t^iW7r*^deVe z&A+JgKmf5JN9^lqBoc=M7|4hMB|k%S$LT`?x4_Py?G8`t8>63`h5(l6jQ)U1lG?;w zhCzSIlt1{$s1K--F6g=T4^N4NK&!rc;K`hmy!SSpUI0RCaX8UqWk{r79#$ezjegJz z^mPyhDnyr#u>^U>sdMPNOZGi~{kr7wG+sGL207k(Hx?gx zm8K(?qUW_hH7qoACOX3!Sy_^O!(L5OL;efGdiowS7Rc0Z2G&G0&}hp=RG8-CLk8HX zXf)151%ocU5g$`ip~DVD8*S6@t;IM=%IUJm3;-QVh33Cew12o#2-PDD@BiNYyY$)l W8gnjA_k8EWKSMp!U4=UP&;1*U^pq9= literal 60831 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 IqOt$~1Dk=KtN;K2 literal 34727 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 A=Kufz literal 36304 zcmeFZ^;gti_%AxN(jcLvAS#k7-6$XkA}ES?-(2%vC|lRl~u;)x+4?9HMIM>S*WSYG-Y7*WKLN#oEDMfKQO`DbHOiS64?D zaejX2|N8|#2WLxu?x1BYaFUyjO4=?E2!%2Bg_9?fYYl;XmU=1w?44)I)|`iDy!lMm z(n8j0F#bruaP~bVI6V!mM2R`oa5cP(S+0 z>FdWE$|_HL`rW+y;~qIY7-9_T7gDQZOhf2iXe97U%a4Z zVCb!PLt(GR&fY$$YU4^10fN<6UP|Lwu?5+Zvk?8iV>Zs)<#f(tw86u{P(%(R`(MzX zME0#+^!3eoEHw3<&bp4O`hu^_Bk2u1*(_6>UUUfQxT{3TV#ll0%-r0owB>Z(XVz;Y zmB+Ao*2nPGt52u(E26b?_9iAKHgo)+gS@e8#jG?dC&!zAe}5lL*Y37?-#02o#=g#o zTYr&o{-vd*SE=IF6O?=4q6269E9YC4Lyb+LGMKY_5E6R6)hW}M`%j;K$;#s3YuI`U zCag)OA!lQ+9Kmvrm-jPxyQKafS3yC6?_RRi#TXtZuBT*dIt49lY!WdS;yydsfK%%S zq0C=D|LyF~L*a8>rZG}4&?np06GcBn7C({^@$1*ex3@nxfL*yksBhhR^yrcC=5Qt{ zi{$s|O3Saw$$j?|_1eEbF}*EfpK^+Zoh=cKjEtNug|TW?+t6;L`S3OQoUV_k@E0d{ z5m6Gz-n0^GXY8KRUC?s;aHs!R*ZW>^3pMF83S!cpf|m z?e13M;^Ii<1Ho(2MDaJelY+USQkGOihmwk^bQOd4T$GugFMf$4n&g_>knGeFirwabif`V#pq`@ZqMd;k84N#_lasc%bp3r5lLE`#w~{8w0NvDzIse-3*K z2M_4~dpmSiPYX`|jUO)NkD8cv+^vDeel<;ujGTjA2j6_`RT0uvB{*eW5D^|e_ECku zDV`N}8Rvg>@kURtpF-xc^^YR!z-rIex|12(zY8rgZ{EBiWtC2OnC96&IdH7Yhj3yt z6#1FY#lyoPEu9t^h`YSJ>^qkd@a-#}$Sj1_7viH!&GqEZ`bBp3v%YV8+i+od-|H*K z)wtoxha4PZwv`GTvI&Wal@zwJx&Po@7e(8J$1I%g5e;YJk+Rqc;XYKYpv+4GJLqx@4J7;J4=Kir(=en% z*n#urB!z(|PDwLEz586tBE0g?uWeNDO<}=CDDop*TV6h^{0+FP%-ShBFH#2lmMe=U zU-$xfj3jQ8kM6F%=h?^W6qmt|WslFUJhWQo*J&}+k;Y&{&QZouXJ~r)HA9iY^WY_8 zniR%UciU&iy2imFjGXe0wunrjwt$a8nL+D;GZ|h~c=$EA%nNQ2`WK(d6qr#H&uq9P zPrlPaUn`Z3H#3WmU9JDUr#Lg&^A(z~|BcrTeF2^R2OpJ zBdQedg5%!z@1LPhjx}=DI&Woqxg=kUIHV;6J>o7zr{4pEz)c)5l6Q%bNO8o~^UNeD zd!4$NomeEPa=1>{sjR|#Ddb=v1HC~KbT|Y@8TwnhKuAbX8mXEV*p!w;PC>6XzHW8Ja=%c6$5>*sU#1E@Nvh1H zQAg|j`^RVj1$hRE#J=Oi#D?8wAg5Ia`#?`Hy$dvulg7LUSTOufbjZwYxFM`WvYCbwzl?sAIM({dU|@rX#4uVIey;F z1x<5}`u|dJGtT;JppRWS8!`1E^{A4dhMmB?JZ6NaWSLjxz^N^A;$#QPdGCc5Ws1lU z?&kWyL|Ru)70oyPFanah0;4t$xJVg`iQTK62$O`)MP!(NB$Cqi5Wn6Q3@)mE`+ zIqUcNYX0u;tY}K`F6H*quP?(8tgsY%L*F=Qzl*&Y+ft_)>)dkBeG_rFf2&eEHAwrF zeFST+TDmk?lzW$lLoOX;B74Jf6iy>AAHGpnZ>_Q(wUIiNI-Tvf7bDsJD@M8(c8xZC z@#%IOs0fr^y^_ojCVEOBYwf6!+kVGV%k!mb^_(Oj>6B0wSnWcXnd-_be?Q|RE0O?1 zKLXfw1MhQdQk=2^Vqs{73drUPPZAP@4V{p}x__AH;rB=<-nZFN<@;p6&+hzGywaZI zlYe$%^0VV7#ikgG&(;(Bren=PiCswui~pIiKiD+Wy#GB)^E=Vrb(+-oV75$k`*wPA zb-FP0S!BMudeQ*ZR0_MsRHvcaN%&VUx7Y5l`0hPR^S`jR7)bgZ0rILWl-x|!`9>`i zS<{f}>plMd1CF|Z!QlH3`U-E~Qa^d}1e<@spUzOZ|CM(r8RLt0?`S|!%=#V(J(e(5^+z&>HxV5t7deU9PQZd;T46^S*e z-#qJ$IXHxd#dlD^55zW7Eu$>ce5vRC=%vx5(wM1#kNi*W^nb?@6GOwBQjt)h+ax60 z*M^$k61KIgy1ktb4~33+sPl+PNP7DFSIauc3*D}b!gh4n)z!HTAGD5h_&_X&(mwm-dMqhK(K%i2BM#v$S7ZUG z(v~#-mdh^`(q{o@XP#Z3?sRBdrmk(jb#Is>WfcB2Huf$@E&a8oCf%( zhaYaN?lK{4&gWcW=A{2|dhWH&O&%0#+x=;7+Vw%2m@f4T@Yebt)4J~1Z5PJij`=L_ zYeDqkgX?I&GdABt)$QSG`?<9Ahn(Fr3qM1SnR2q9IX~sNKkewFm!fZCx=l@m!^TF( zP*||__D~=wXuJIKlDXqJKfmUKiyY4c)&9dbnQv$o47MuM=hT0CT)bngOYES|gnh?b z1!aU_*UM>DrLUv`ygF5RZs^P~mY;HAftN2_f= z_@A%Q6Ou7>P8z}nzT8(i1E0Tq`7+aEcYfAm!Ee?ZRXpo=Iu{%ga=u)3sp(Z$eB_6Q zHe8*ybQHsP{I%eHdqT+r*4E10d3`Zrjn~rssSPXT zZ9z*FeLSy9buF6`>gwoviAjos2Wp`1Jwx!j+Acol2Tkbnwl+HAl@(~qYH%=fqQyXw zzv)ogNyBvgIA$R`Yifn8&QUSzkxQK(kt8XK8$gS!+*|?Zj9|3*KhE8&(HvFN)&LyX zg&zPlRZ!%&-DY&OX|z}lTM`#is0UJ8+1sl;4`#r=c8L(=Gnb9Q?1F+wHn~vGn7*SB&*$(ef-J{a^Y|Bm`Qnmc3<(^OC(pq2QXN^9d2 zE;Z9Q?LC~MTAB6}RSMUae(rwQ%gt4hF`5~4tRzH-V76@1nVx=Z`z<6xvzWpDjk3FN z;HFnca;v3AP zt}s!NTl-0iT9ssJNa#>PqUAGJkM{NqHCD!v-9LEZ?o|d|WA8{Jhy&R%+v~{=>m?04 z*m*zNnM(%qntFb?;q&1F^8@Ti$=oHifvc-#uf_jzL`Ft_7ltx?F!Xc7tCoB$bPhTD zo16Y6J$)#I-r$C;ySuQlu`$PGX4HfG_d~X}>~^0#f=wy^Tz4OM(jefzrL~iPrz2iU zr>0-?qQn3iCAQNrbTU0RH*BOj^e*@HXYR|71c`C?mi{OjFUyN=Jtk3l`SKX;0*3}6 zSi=$xYwnT>vmR_!LVvr$?T2#)N?bTP+KY(zo>1w)YaVN9S+SLt4Tn06j__n`^M&vB zZ`Y`Ujat73ilm}cQQoS9Lo1C^l1T(CX9%{gy>{p6h-1Wi*B?E&zkO~QsWj?3AT+5C zQaZ?uO7`}AbMFJf3!y}ZQKq|Z4-=3H+LB#UeSykwuDNyL}9BDigh z1VeY9hvyT2^BHace8E3CimyITQ;it}7oO<)cT-P*Tok$z#=qS6o z3L5$y(>_df9kGW^?07?T;r6P}p5Zt(rxi_f`(8_tvf8)tNzDcJvxRM8riyiWX{sCy zuQP36ym~j9ytO4{&O6<2{+%lK_t(_?7BT<^D1cz%t1wtqo83yNk9O0}3+?e>_CMU( zjEv%S4GYuV%|Jq%!rs4^psU9x&@MIB`c5#gY1P0&XR$!fV1sz~p(91C#^Yc}rlYiF zM@LlR$sbK0R#+p!R1kSV@r6zL4TuT-vG|2}t>1rZ>RY^& zm?xW8?<2}$DQ^pQhr&omcsnr%QOAUslVsY_`5LkZsug{oMP|I1e2NnA#gE^ObJ0*) zE2)Y@nlTqBj)xBg?4};?`uU+x?t|2hO%_WXVR&V}=gt$QhC_>OK{&T1Js(p@?m@sl z!r{Q`a0!-HcvRFcFtcPZc7GF;X6@l?&mFM_zgeffRy^TrR16a$l+@G|I%qhM*7A9J z^N(W(8J*ESn<%`ZNB2DvW=!&jZz%%Md5Sgz<2duj5mTFX5OmxtWJB|~P zcb{)`42X0r|1NX-MNlEbqqJbjLZRn~<9ierlG{NZ)W;9ce2XYoppQ0f$*roo&{kS< z9#{Lg`Tcf7R?bXV5XkAD21Dp|AgKZfZw;9%njE#TX1{H>!(q7-DR%a^uq3JJS7Z;5ly!tK+aC{IE#d;tKpV3&} zn_0jLka-cSrXk5zx~BC?koJ{(ljXl?*)Ww)`Nzj6?#0KOA%qk5i0G7Gi?)@hrP*!h zdP5q7#iEZn{g2{~o28Cv8V@2vS_-&OY@fr+&O?iJgy!B?3AxbuoK#IJTjgENlS|*m zTsffi(_Ft?Nq5D-O<6pRCdGomy?Z2GvQruokG;%_HtooO&)Y=ZYqe?CcfNVK?Esrk zey44H*!tybv0~w)Z@Rvx`ly?)R6{)G%jaHU$})UQr7)tiu3zLZ9>|74s zYCvgATLvgfOKQ>vQkZl(R-LCWht3bTPt`S&%jAe^QGCg)x9M}+N0tq%Ze(Gssk#kq zE96?28C^EodErxBhGk-A^m;~zEAAqbr7u*^RMg-EY^v2X-G6g+Z}$w=>>(TL2xk2B zTlY?o6736aliFv6kA|6;8h%IQZkCGDOVVbr7)prcR+)Rf9xmYE_xHwoE(8&@nU2xOC6jF#ZJ zJ9!lC{&yLD6~m~b9(zpaj;i@3Y@`r!9P59PKM+xrS9YGWkz#7@Ove*&Uxi0-GQJ-` z=%&eFv`Ln9LP8r1W6J&17WefvriOke0LO=ZH8N`3OWd`Lwg~ffV|%ZIx4%S}NF#Sf z9jY^v=Ceh|TXAlupdg%beztOge#Bdy_U9Y#RmhRCkmd70G7?KmJ{a!=mp>jXc0lqhxe@k*dc-)pz(sOs- ziiEgmGRIUAHGPl>f_~&hbQMadqZL+dGVWw&-0{OwC+2;FyC!#e)tEP~gj>b?ijPbf zcRDI#oCY5cT_X*3BUWj!2X=ibZy&3)L|(Si8&=(Ib}KB^NV@j~$?r`I_B zI_{cv3L`ruXRPs12xLZt3fP_;&n?haeAZX}j}3WzIsLc{Nyh!5J)Ek{CgE7K>9V3Y zn2fACBlXL&Ax>RMXXlh{o{tA39Y0^q@ag!6$F6xzUGx5oJ57@Yr3}P$)>;A<{dYx0 zYbPv7M_f4}%DmU-F@924uE{VV=hb=onprKt6nJ#90`A)gfY|)Q_&s!tEz0-q&iZ{cQF(h6RqC--sQW9cvwh*}6j`vaXvFx!;ZOTIDT{0Dv18BtP4b!r-53_( z+^T}!X3Vz3$ys4(dyXoR=67BB69XrwCs?@s!NBW&M<|);Y^~Eg!vAt#5tOZl{^$3b zypI8~5(rAwa;rZ-b%vg}{d*TJx_pEE-aYHNdZ9@@7qa`vKCZ_7F2>Hz&NAmU<=y@3 zQ`og)BA-6zxXh7wCWO;~zuC$#Msg%@c0Mn!tmnemctUQpM1OJ2TH;iXq_0p@d#bOm z5`B1JH@Elvc)XdKImUy(v0st=_ldqBc)S~}3KC89qArC|rG+Mg#igg`wh(&nOS~DuFNGu~k4KHW zzcN3%M6z*smr}rv$3N6929iKT0afydlhdd-{t=Vk(VuzKoq7~sv<$`*(iOw1R;XEg zw)#~~bR)&(wuC#+y%(Pr0ZD_Gp^^Jq^6F?53&|v}FAuRq1lX=e3P13d)U7i}W6n%> zn$h+bC)>J~xlEf!nj8Vg?-Js*nwsxLpP@|q`k*C-W?9EJ)wcAWOQkOc9`C^yW+?am zjhET|I6m`|6i#$LveNCR+%z}%m(*u&ygOqHjqCn5t|{w1`hYfqE?*7H@lF(Jr@%1h zkl^58$DO*30{{#s#O?PM+vZUb5fQFCvp=#`5^?uH<@dyXRul*kjft6ZVaxlTT9p=L zkbxwjmGKXTYv&v3xu8^@bw@(UTth!TlL`o2nOep#6L*8rtxK|?j$N3#yUXT_a%$5Z z^u^E3P&a4m$7@1uCkKfwKfKfG0k<&PZg{sp;wXWf*{*z~a%iRuU5=RXeFifK=J4kd z{U4_MbfmDfS=r4^= zprD@K-k(`n!BbOHP4>B$LIkqL>#va7Y?8B~Fpu1#emXA>j;YvE+|M^jD!r_Rq-`a# z?PhPBp94S=@zCzsCpw?8(pphQ3)rqycW)qnOVu7dYl}yAlsp4jqHTJpv0r9=eUiw$ zCqOc=lv}SwGbc=ev_rTHNJbzl;4CH@`tOITf@83}IF$67A9dM7Z4Fk|icV6l@DiOC|cW7))Ny zgGK%pEyyc1_#F4e(VH_{&O3MZVqjCp`zyRR?B}g)rhDFLo zACyf7wztpbeRkIX{4@RYQ$f#jDMZj=K1E_-knTJ+yRqM( zZ7t+`=D6Pfqa%=j1md}w8CHwc1c0(NJw5Ha|C>G-nl3U1mPpR4AMKH}+@j0j_clj! zDLm%Aay_)pK~}jhE}jI)8One(DW3zN&^Vv3B~}7Kgiu`fdfgdQYp;8vV{FU@pGS-W#;6}NEaV$NT1`gctUoXk?RCD<%%8L zJXHyk9&_eWr4CKz+?B|hW4Ate_xJxF{N%4m{|`jN>UYyXlM|1ZEH8 zmvJOa+lsNt=NCXfwjk&-xk#r@N-_YpCynVQkI`VQECp)1lC-T!bg>rgK-s9N)d#6=D)>~(n{_P{eH1Wul@q*TxOOG$P!~1;A9X;m(y)7!>l5RU28Ga^3 z&NcP)ns}VUyIv`DAlk|1uvoOpcVTnesj4l~Y z3xLC_%}K_1a>UVF%uzCcSSPia`jEt)*tcE;%Cb4k(I|6M!1%Z{G$~x^*H6gpjIPg> zEMEpwGhwiX(u$FPGk@ih1j{*$#t1n8{8bk2z z8w#}`)oIJ-cn6M%W&hjfWc(5S`Sw(Vw0t8{bizEGqOo+^?s(3&#Qd3g{Vfn=EE5m&-Vqa6C3Q;(r6bpZl zAKv0ZXRLB5_F2ozha2GI7MDjF02Ol6q$UtBi|6I)`tl12(Y7+;X4~KA;P8YYD!9Q3 z4lhtO3>AtLqN|kHL3FYbC|0cka}+N`ORAm$=xaPVB<+K^`u#gL-mLJR!sQ!P{>251h149QNc(CJ@E0IEBf|07!MXSU z71nUKw-Lz=rMVlrRX2%E91%vI71oMc%`v?AT!9>tad0sb5ZIQB4Ohx|10jWskMAAy zxr0sAg9pRORgt+crL|D4n#DGDgq!BgRb^-GV+^}2-zKeazE4AUQ6Iw2PNo8)=~aqV zhr!L8nzxEyC=hTwMEY`4!RYCUtgRjQf4igC5{q}tweRp4mNW$_aFlHp%Rn0U0{x`+ zJDH=TdVBA(KaY~(a2(qr2N}!tpPAHRX|v5CE;GU#*Ts3OK0Lfd19Ieon$V`WJ2l8E z6d7r^V<;c&Fmr#I#K~y_r9Vn?)^gpJA~qqxLPuDrIUV>Y29Y~JLzNH2Xa5~=am8N_ zhMV(qJ1z~|%~>1^HL6*e<43qG?zfM2Dc05=J99{0Rr%eHjQA*ITV!D2Rt+js0GDYX zS6c5A$ecd%V)7md8tU1R$N-UaQkcpxA}WZEcM*dIbaXL%ciM6(ki^bOsnSB&(*4+G z{3Z?6bv9%ZA$`qMQ3=gE&HCy-Yp7|#&0c*Ni~lpppmo!#_SC?0`6gOc&>_uFJxTP> zI)Q~HGS*T1N2x9k``c6Ol?Mh{AEr0{f|vemkCe9E55uph6(#W^Ab4zd+xO%Slk<)E z_*PzcD-=E*y9cnDUy2PuWO&OP$dN|NHTiW7#YMwsv@@j@whAZj61;_I@nHdt11_Y5;pjcvfA%B)B zs89rIDwPJUyt+Iz(Rc7bn*QiG`at*Y!Mu+!X`@LrBXI7#G*#@#OZ!9m}on zs1I*V4$}lLxlKNn>PzS{r^gzxJ(gkhKCNL}(on0Wcy)cnujf-denYRky(UJZSeDBA zA9(KJhv`~sKuB~F#T<7f15o*D4Df2pUZ z9WVDM7^fQG0|bp%?j#{9i8@WKVEM!K=ycT3@e$IyQTYT%nHTg=Hw(M-}AG%L~aT+IncY`J_=LODi437?e zy1&ij_3pKMaMKrRZuHMo8Tk{{SD*Z1|4j_!s8vBpRuH;SRXEa}((C9A(1Yj2O_>$GiWwkMFD~%FD1?8MqUY z$cu@N@uKl6Eq6Ds8ZHl*W8S}?Zp^kA@EsAPYI#$s&cW8EIUU0SJ(W2mZ9I%7!&~r! zAK!ij1Ofi0;gN2VZh2Pj5#wn@AwQq7m z5HBS=gqru+ol;W8bt&VN-9%RWwu$q@)Fl*dPLPpH*dbQT%_;BXgYo&NV#QhIK#{12 zdwr2ec1tadRAe@Tl9T;&GOp3Bghco+!fBt~X}?5$&4%34+NqN(GKy1GMg`nwO5xB) z9!nv@M2|V}{m*bp>ImuhYnVOdQ1x;iBQ(>?2y75Mj2pHQ_DYcV^YyK*e)* zfyN=g=I(9hT+#F>LaE~haiC_g9b*@QrLveFb~T=3*`HpDebTVyXSd#HTT8(R2Zgu9TREAD#8B&hW555E?%r z^FPtnjRpQBz(&7Hw$Km*9xw%*GAb9QsoFp87fQ+%2h>ImEK&5jpIhSYc`&uO6*5m2 zBoNC)3DWiS09{`4x)FLG?p}P1kGZTY-URngK+yW4z#y&`(~w&0 z(Fc6Bi@0CDd>Pcph{=U8yAm82tTzkZ=hZSZ$)L052Y5Y?dZj9u?4K%G0e%;dHn~7%NrW#kzA!&gsTFumPCPR9RmF z{U6KRGmVUn)&ZiV?r%;qgp-r=E)ct%R=S+#y*A2S|Govnf7jM@<=@FtR>;=}s>=Y= zTdZ__2Fl}ZIde!zNGAfJp{_2g#~jmSVLlz%79Y=iI_Dfk3u6%zaWD4G{HxF^X}Qgbp{N^yGos}c6^SRdnec<{cA|(It4hS_JKV88K`s@ zM}Ir|gxuZ)2-!}=rlt;n$!R?OjX(%EF3MT}(Y*E39RXmH+yj0zAY)R}&~$bbP8c`{heD&<(@#Uk-2tlbgZ-(=~Zqr|O-V&BpwwJY*99lbRGnAQ8L4v29Q z1Ox>0eZZUW?|5Sz*!85(T1yPwe;i*byqGCiNSX;?9}y%Vm@Z*cWF;$YAxE&-w(Uks z*cljE=a=eovSadI61G-V34&?WL^YS_H&g(p1LUoS22S^RM@4-~3e&D>et!Py`uc=- zBLMlpD&ZA#{tI|qfcwlwpP`-6Vd})b$-9j$OxCL|q$P=2RzB;m?F8w?QTcgOqJfPI zWWkFlTD}PySahww;9%vT4M0IGwGpwJjTgLcygETP9*wBzxsAVv0Q)FVhsAeV zuKlI2FJ0*P^t$uj{8Ca=+xR3f2q{AB0RnCnSTW53NAxOL_%qPL9l=uA9w%N5Js6az zv9t;!pOA=+%_yFiztjdhnyn?;x8)#`_o#QUhHY77e$Ndh-)Sh=1DR@p!KBYuZ-Jwk zy^l8AfQb()H=$5O2(2p21D1g@Gd7RuQ{=i(gkt&S4cRZ;{t?Y9n zsvGkbVwVL7@}~mO!G*dFn?jK|Sxo_cfKH$?d!6!H6`kI=QU5tets`k3F=Qq+J;NE4 zMuz&|yXS{|K($|-d3QQm0+5mwes#1Pjc}Zy z7ph@p;ah+gc(DmAXDcyFB@I>M$>CcD@8bQGe7Bz5AP=RGsWRCwK;32ck=y@CMNC}5 z#!MC0Ld{G@Z(v38Y^S#4ggQDZC^zi@@Euv@8Wb7fO1J13Nld$@PMjcsf=`H|qB;jY zJy6sF!_BNSiQNL(SM*LL`vE&U4BG_INx{L<+H~5U_r@K)o?NW=X&pbZdk1TzJd5a* z*QIe@|3PhpjGU-hxhm{d>GRtu8}t`-mVUlsiZUqXo)98x8Cy0{Quxum26p zWmb%YhCFMg)tI+x1Mc5Ka#9e`kAIhhnkpUT$ zqPOTDj%H)W8o-y~dVC}>hZZs@vVDEPaZv2BN6GUHrHucsWXea+Iym zE82oWKi~!4r^UL_W$0<}@d#UW9klbm3)wDKjV|`_XEx4a@v@;hxY3)Cwl>F3DmvWJ zQ8sRpK^fLG7z;58_IPV6>|o)rbKr-PevFY0lq3IG@e~+RYX3gy?%4-xCyNbhX2*|> zr39YOc^?W8Fgrfy=E?N6zIAkA;rPVh`f-q3)F$^$0JyJRA-_Qu@f9f*mkit>=N`gqMqWo3qozFATjO z&AL#muASGrvA;F^?{mF(@x_#YjTXgtIyNlDDK55?7jXKu9bo2R7`!J>${aI!$Gi%aAoc>el(Ny>1Rfw+!Wl=9BobjP+o$^m&d$Qk0ryCIi{I~$pnYA z6=~OG&qCp#@YB2*C8+S<2^1qD9OvBjmcktO+SCom)ugT0OacFPLQ5ByBZoc5iL$F8 zDYMPT-Sq3=T2Za)UgDQA30k_nu*cK^df`QTL zZ*FGU@MJMfoD{aRCC+czd792SjD@(gnRrN=q*%9Oq8RH8AkI|_!y>wO@|gcRVYU)u zDY=<|<=Xd{R?juAm?`ZEUbGaQeI0?bOSO`G))VZ&#^Hh0IoE*1wC%P~H2EM)*wm!V zn}S*W%%Wb%XYKzta(JMIK3uPX&gQ1Kw_KC$@9&{^Ym`<21<)3bSV4V@yz$@oGZT{p z2}2iil0o$HQi?|(HKcNPN$dD%ohaQ&}pMy(K} z;@SBIpbl@#7(@XGlZ0&n8k0yQNfHXW^*SI%CX|S^O5t9zu=e?P4YiO3|50|TxX}Ol zHOL-t;Oo>>EiII`gaZ3sVBjLs0s1fwc13b<;5(;Gb)Acy6EZ&WnSTV$d$^5P!mcPn zb8}$utkF5E9IE;XN(|uL*01Z!tbj0m{tf&SPIY&mPz{QcJa`?9v=5rn(yF5dtT;%g z|8CgCg)7ZzK;mb(4l|5yuJQ-Bo2!@8O4=L3mE|wBtnv~f&L>;!w9c}=ZehS(`(N4Z zD_Q3|AUT&E7$hOz5)$6jkG8D3p(ggnG}QKwCk;hhHOwrdiIfF0jqZ4Iu@(I|#--ya zS2?%X%d<)hA4~s!n-Sx;Lgsn=-fEKk;IP)Pic? z$JltdxhWy){6GbWlBg@6Q+;4{2XtPv7~xLKLc4JYhACp}7BE|F9nAou^&7A5ix)2l zfmB95*Wj@M>Jt;7dIA}$Zeq{T^uvFSBuP;Bb^iW+UN463a>_6vi7%>VY1-p(B$!rr zTykz;nILVazROv3a{8WL&h2Kf{4@CiKL@3(QsBS8OhK4R`GeJB=!*kn>>6i@zV3iu z(ScyW>c2=5fge0&Zy3#5XhA6j5w#jLc{}yoPXzeWa^#mH1t>~7L2dR!!h;Xo(me@@ z2DW4u*`zI!ZVj^RFv+yt)Vf+B94}9f9MG1lA#nK$RJ~-Pkt~@mvDQc z@@+P*4tpX3^y-*=C+z*Z)^EIYgd0O))}u!2ue7T2PG(!n9_va1W)YMC3CTApPTv=1 zKe4IUU2w|-Qvzn9d*K@6F>5b^VD?Dy*hfs2o1TLS`7Y{YA}72NAlO5%?sg}>DCj`% zMs)CihH-~tnYnn`RW>D)bz4aVWGd#R@Di`lu&9-nGqbRse5YtMlo`<03JPWZO(AWD z{^fq5F3vWr>E8$yS*#1A)FcMnIpSI;IKY@_1rf;x0P|l(MTO|uV$jW*c|{r92_8@l zZvqRhoQP$MP#wLxc^dCYcQTQfjO;po9@p%?=LkfJkr?_y)|K!bt!xhirvXKRE_5)x zfwbUYyN=7YdB-)Mt2Ho-#QT!bd)~aGhn@Yna~s(HbZnY}Na)+g@+TzDkPg)(%DK6^ zbw6O29dwCGMmEm73&$C4xJDpYa#P(IurCCQ4-Xp~8`-`o>it(Q95EK|wF9(mnKdp= z>FmCinRt~r$=m445SAxUwxtIdEDn|rkH4PfRDZo zZo3W&UqANy#?Br-5CTLg#kMlaAhQ;P6Jc?vhhTLOMdHPh6?BlKRmeQZ{7} zQS)9JY$=U>2|LX94`<4WZC8!n7Ph;6^X5&mKf&UYn})J1B4+*s-05Lk4sFwzC!(CB zZ)3tHIx^3VP(3bncXK)niGz z2306Wl7Z4^P|R_`Z#Xju)FWh>f0|(;chm7(Q_aoIpBT5}V+X1ky(2LLcNprRkm)Zo z?(m&1Y8v4*lpQyJoJkU20!L;#4Ij9Y`0wj`Fm2RAJz~o6!?(+9uUeYcJd3^={jS+Q z#8+vfwU80v?DX#{oouhEbN59@W%Q9zj?YB@QM9MBHj2gz2@w{&Tnqwg#vCgx!3RAY z_=3H;Stm@W_jH$V{SY{UK{Me4wX|1uc06*Sr2B3zCwXt01HN6;uN#FOWWX7cp?BVDej|Hzj(ep}Bo zk)VCEW*8+MzHJuun*9rkFFZ1Q3lGjH><~I>5R{uf|K>%G#zUmF*_k8b1G?)!oAWJx z8Ep?t);2b6aWVP)G+mH-b%MrP7V`ot&r9{oJij6oS{ zW&FNo`~3p4&Z@%nJt9qf@p{@$k8<@7X||cA$J&mY$QmD|9-Z%g1a@imlZW(j+BLj_ zpetCmtqrsiip-fEw54LZ;bc!&oX>fr6~b zZgJs?w6H&O1b7Y9Z2632bdZOyQ@Vk(puYuk%rAYhc@OK7?}}#b1KTdPRSk5nJ+8DI znlId_NAEO%-kEAX3Hn$*e*TSu!V>mJk0QQ*zYT=<*MqFe9i@gXX~rF)RJ61T&dyIo z7JLQ9$5m@jtp_}jOZNnEX3`AN<&n?;qGj^HyrWQkPbwzks8`G4+AqH!4A7AhHIYLV zXPy+M1)alX)q_LEmW71h@v<-D#l_Y5&GzwkWW99UDxW}~_B>`gH%(CsL548YhP)n|wS#Qg2KI78`HY24IOj2SyZ- z;wipAH7EY@<420yg!VjQ&Rzs;e7`CxzF=(vpu4i`Gb19^V_uuc@*my~m)22+{_Y-y zt|t!iRHe6C;jUAv--l1rv}R2K`}%Bx^Tf&$2{pTLgJZNtq#tgw0JYFD+jwbi=+ zi*VjHEq$k?bOUfS^D2kiwkIUS#Gb%N;05AE^km8uYZ?G0jQD7-8kPdVSp+>E7Cm3? zH=eI2W9{%?UyDb8DT}d8_xsk{+bb@LB&@k`ZYP_q8g;R;i3Qfpg)D76=#`e51cr;3YHGP4DSx{C zB=8tjyfZgj=K|bN1@B+vfOb-gKqpGX*B|$5{G@+TOeXW8a znC*?QL%FX&@b8Y+4~vMe8Ls!tRI4D2X=9>8&*X96IzG$|M>q44v7-pm%R+$Gn$7fb|So zy)+z#T85N`+j=dxy^{~2P9Y6Uj?dl|cCn^B|H*c87pYQf7PQSYvgE9F=D^L6>R%Bu z9d3rjY+2s`lexgc;zP>UG)DXqwujT7L?9R1`tqSR<<=Z>l9zV6iI5Q&WChFi;G6SE zEO{w1>lkzjs4uvBbNW|KU?~vY%m~6ZL4$aHr>O~gFAP!N0SSpEBvF2sD+P;5NFl`5 z;5K~W^|NOmPb)wsxw3Ic&6^@jmJVvaUlacGN};CgC)dLIXvlAL2^7uF+1WeN=~3M} zv#f3l`%TxKVnvYso>5(%A%D+tbG%QJ6m~6@;`#IVQZ?nq)kRz08}+a&R(7|XHrz!p zsh+@X(*#fVTE7E2p9UMf4!?^yuw0`Tu04TI>;zR86%}<3TFzdosQhwRXa+un1JH8r z#cJ5>D~6gZwFDM22)6ATWbiM^$tWq{m~UnS3WEJy{ng(gYwO5fv2OZd)D&QzTucwLHC0q(U|Vc(5-QoIk3IF z`tdZR+II3Oa9?426oD5)3^?#2{74M*;g3z+Z_2MBazP#kwLdqM3St zF}(}hu)Gp2QTwl;@CF4%>7h%h2EcT}?dx}9Pq}NKXLkIqF`3XH`%~;Ohlc0hh^V^y zC@@$(_nb>u?xb^DBDfYy0>w#1ehvZX7WB#58*L1#>k!AtkP|VRb+q5V-)x_)1gNF= zg_?gVE!B3n!^3X`2D)FK;ouRLnenR>In36^fliimtfz8NY$G;4z7zDYJqJEYh$mo6 z#n$3AZcF=$DzbQSfS~dPAaQ<|f}Gp}#2`Kqk$~r(5mp1j`YD@E=XDh=bz^!(g(}|zsa^apP6$|;v-(ozggjLZaDra1ip7&DW+LSgG(s;vH`OE(*};p$Y|jH?e= zdrR6UpMKCMw}lT~*?L9te$V3z%A3GYVE_W|teX2nQhUOSA}H!VH7^8gkBVd2F=XC_ zqCbrc(3^bsfCKi?5C1E`jX;^xmE^3;{u^JHjZ}}Fny}KMqE9|MbzxvV3cYhlN~_?} zy`!5zG`#@f+w?p?$y}gw-+yQvF}%J@Igi_02~}|Ps=+*uRQgIwZIW%u0%Nim3?|{P zdf$1t(eWs^^^IcNkPNy$ftr)S?uO{Yhhg(gKDX%Ty1;KHG@^0&4V$r!$IyTOY}N;o z;VK{3yNcTCW4R9jlYp<-8VHkH#|LnWD271oey2y!@YDtRy!mZ20o?*c-?ix>BZVIc zHH9@3awa02DI=0ttCq4WI%G(?GSei$xWg{F4*a446n*(4G=T9j1Q+`=8Qi6fU$BZ> z5-ZBNP84&t;ssW})k3qMoKW^_!ES7U8q#NnF?=7l9siMt{Cdj0C;Ttu4=?DxMkgW2 zkn0`sw~9|I`v!*hO}JT#snP7q4|{uy0*-egGlt)B%JrVaw^Jf>ZYK6xSZ~ zAOU&J1pH3NbhzdwbEV@CEF6r)Cgmk}i`P=(B&v?%{6A5?amHIa57V#{t$uVE&4L^;k{yu8}~?E8)>k9yZ6@ z{3*%u>MqPYgBWt%$CQuwSI%#WX3gtZUYp3z;V$(u4HjHysI`zVj^=tt zMz#r|Zl-+*Tu zTi%@H_AcQ@9SVGZr5k+@f^n#mP|8}937?*)>HYf<><&$4dibP3Z_;UN@+Ym?#FX92 z;-(TC-!n}qH(R1mm72NQ%E}KU`@YZDjjRWy=3CmlBCb$r4m8_4^d})V6&Eq#!uUCWEU*>>FD9tsTnxEgxu=!ne z2S&88yUnt0Stk>Oc!$QAt>b7`yGiFcV?kA!ug{=J%|fF0Pyv)w;kcNAsM5sTV3 zabIIjMhrS;JJs7)1ejh#%N#6dS0AN*qrNpGQeL_HjDu(9%uLPvVltV7iLGyd z>kR-a2=-Y&n4K%e*9#0-<>YLe$EwZ0w}oeR-fz9AIJcRB~M$;pgA)Ya=v-XrjWRRo%m9(_u3_tFo2n;M47 zUSP3=0+R=07T&!B_Xpz670geJ2cZ#WP#SsKsf_LN9g{kXc)%$_cY(-jZ@hrXaoCs& zJMHNYQpdL2RQQc&Fh7;aevy(dttj)Fr`+y;LPLK3x(U;k%?J`eI;Srj1qm4lAsQ%t zMhM9=iH#;kGu8c)nN{~q9pFtAHrkE;V0PTu)xPI&-EnkMu*xhh;NdlD2J`DL#i0G^ zR2JFj1)U1@5i-MG5yrg`c+Mc{W=Ih4`AZ0ggr92!Wz6*Wp0;R%3r&SpV5o$BcPK~>%n&ib&~-|)!!Oa?B`lO(ZJg9T*T=MP>iXC z0LY08ihMBRf?SkVJbQVk!mB-D7uB1iClg&$F9VEwZ<$e(8PAF^uyOek(N3m@aT0dK z;y~kS=u#I}hahAtlf*)V3IFSy%^ysmy@vGD;Xo5IG2z_Holwt`HG0(@FZ5lJ#b*!2 zF4a-cenUgb(P!q~ql=gb-SIL9E%!K*5M_dEn1Hj8fa`X|Uv(>e&jP3B{AX(UYct&b z5CqrC*C%VP+EA>|YE5yx&cb-!Ujz$wse%=2Bkau6xO7d<7X-|_qde>r8m?Nlt=Ez{@0kvzpBEiJ&C%D^ZFg4$&4dtBs9;fHv~PC3G+mO;zB|G)w2dY_z9-B#K4s zj+ic&c=#b#;|6mNOH_=cUJ9D~&ubUsr?h%h;0 z9b_!OP(8cacI;1tvsb}*$4}BU4ZU+-TFSsfNo9oj{nsZ`1)bm+PY&pqbke>HDbjif z<=B2faeSF0{EPq0g4w2){HcLB-7yW)XamXGK>vG+Ww{!x%+mrQiS&|J=b{Dg$}S@P>pSm=*uGfTsYF>2zCBlu2hQKNzxi!Sz z<)mD`#P*2$sx-!;1vG0zGI2;H;%2xIwtAvoF}1kvRIY(&No(!qexVbb-i3U6AbG3I;!Ad`>q};Nl7)}ZWFWQi{Ga( zRkDns)jMs^+vR#FOh)ePr9iZHC!HI$5_&!-)`AdK>cfY13)~}SCYE!WDatmt*arP? zutM=T=7Bs)G)bd~Gn($VD(Ll6Z;VtYqbF(=E+(>DeqS|dZ_GfANs2^yl$d&m>@qDn zpJ&<5a|?iXv>bRYx%m`7G*79PKG&1$Zi;O}l;4mJ4#Cw0;YC;a!fL$FJ*NAr07?pl zoF!er#yn{+gY)?LPddYH5_(jlZ@6>1s;lTPy%v3&sqHtdl(%T!9FGuP^P814Q^g!c zTuLVs_h~H`>U98@1ASji+_IAPSef51<5Ovb69kT*Eo>^*t>@OYEUY@qUoI?f_VZ00 z8T?F6MuyadNqFUQ#Cd8OeHUyM%C|G9;Ix+e@#Qa%yux2-Tza8|4JnCFBvB*DFF8I~ zpkDSw9e{Ty_~slhV}&Sb6`puJp2@`9KU}C}D3F;&7~`pa;gkme-*IWNTi;5i3W<#{tc_enN{b0~?tybxYl6~r>znLFImyaKvFT5-$hdZo zUEx52N)HYM18Jq_mvKc(2{mFx(+hHZm$H2t_cSb+?)BVTv=cA9?5ev(3|><>Oc`AH zFIM;=z9pf`6u0iQ`?=v(oufbNR3^4axTqle)~Q%xQ)mNr#V;cs~#a$tKDr!DpwxC(d4`3MGKdoDz;*c?=YBrxD zk^aa}HmZ@;ezS`PhhKM6Jz7t<<<{k@x81)qeAzE6?Wy^9C4GNkj>v0BKAJ#H2VPjp z_ZkM0z#mAjsdhAZ1mP4H(;Z4?jp6I;^mXr<99`tM{iKO5JnU6cecqg_R((gnhTA5e zb2WPy^(MEvT1k`R@atZxhqK3pLb`i!Efy)3J{|AIg@3O_o@7av&hC@X$)=9Ok@$8s z_ig2I8r>z7C>yKVy>~`fo1)1ljZ{=c)IUrY1c^(pmu3x?dCh6W6j-l3cJDk&*qF4u zP{hzcc15O(<14iU(LUDalKhWOYFi&8kxe7z#jY!V#u(xl;$#=Tbl94WN3H!DTZ-+A zYMXxQ-g*$?izHA(y}Gi3-#@iFKOtN0W54}u{mI$(Dd8JrK-H34AhAiw0V;Inmbi_x5-)MaZD5Xn)LAYY&UdCjQ3*S<|hYaI~WIrh?k#f3&xBE1Hiy zkN)M%U6=^2{7*w`QeRh`f^>G7ewhN0qMV@5DFLbu$4(Vb{4u zLiaZu0e7^AeCI?*@=5v==R|%yrG`qL^~hsoGmXaB3cjpgI+Bl+e(AV-n5uI6f1$6d zi9V0yoVgX+Ea>$*0=LTLSy5W-MDa<-=TT|SHmzpNj~1M&j74|M2P9cS_TUW!9z7EAvukt`wipOMV0R;t>8Stp6@=WyYKzs1bGi)DR|6YM?9vKw!z4v?K>48<9PX)%r z1lH8@>PqS>PM;-HuXI@>Fn^vIrf>3$K95H-R6XX6>EQbQ!R*z@pfW0?=lctFsbVHR z)~JtpA5WY+em+>A!1u(J;$br07BMGq=M(-Q_*>Yw?hPdQbhFyLi!ADfi@7eHlPdP+ z7Pwa)K}xmW+q)s4Fd#SgNv$&vCbU|kngO-pI{BB=r>d5h+f!pHR`I`OmA!*2wPdz# z3MQVI%jI!=+#a;OGkw=+B1<%ZT)6w{kMjwULcJ+!xG(GU?MKQLwY54{pA~#U>CyBG zJT=tb72&5cADt^H*$_PZw)09pQ({{d{p|H~RstI;=X#~*ue!}gD9Okr;`aFqP5MJ+ z0~0Xww2XKC{sY&a+#3yTZa z(M7VHcl|}C8Rc)vr)mPeJkcJtDw$O;?Z%hYJ0ln(J0|Aj_>Be@A-ls+eUJSm< z%yJIbKmYrkAok#orBZr7cXBt43WJK zZ>VsPSN$i7h3}_%TEmxBexDens0fur8Ev(39gnf4L%#DlQ-9oJ*4NK|j`bWBpPR($ zCU|)4mp1H-AW*4^J*z!*Fk2Dw9PH@YdEG3CTldm!L{@xbxMHBhwQf$)<-3CuC(Jym z=Uhf)V_xv%Vc?^y*M)px?dW;g`!MX;joZu-U6b+_OaPn`43+dP_j=z#{`mW2wrtL? zU%ofElz;i|121_U&F(;XW%G*d)76J*Uu12K`roE^rJqk!P+rP0&^i_RmXp*1Gx$@C zXc*X)<5witR1s$M1F`n)!!QlJ1s3h#KvyY|sak$lS_X1iBYC4rpUO(5rJO=i<>w9Y zZOEq+f(aA(9{PG~bz{Us{oCXWV4R=u^Gx{{iT5p65?sVjF|?M$n8cZ3Mwz4!Vhs-( z$mwaG8Cfpspc-c!*>btlzU2GB5_w>S4r?3c4R#vZYUb$_pR^&mh<}xzGkPQ3@=xoZ zn-1$^{vT-CnPa<|%Wx1lb2zgx3+tOjdBOsOWpA7O#i}|d_Efe{(KoO*fGjo*k@f}X zy`9TQOFWlcQ4vpTQ4s;mFaUt!W2jk>7m|705;}JZiGhU{j@(&@t}_9xwL4V?Lyx+D zf7hJBSNqk_ltUSzvr^rHChXadOs#0<1i~h z*{daUmmczK6jw&y|9M~Q6wQk$!DFRGxFM6vc^g`39P9$>SGx{enLjVE2>AA z1QHb-eCD%xFmny1Q#bPnS{Bs|?!IS^G-4QvpMTyS2zHT$&4)>al$h9e&exQExZ&I9 zX9m=-A~j-L=X=^sZw|ez4E)-k`cWmZc!Wfd&r4IH!KaawmdYe%gC70eSVL2aZc}fQ zMT+%S-rPM{)JE4QTGtj&Mo7+0LZ1Q>il~55Gy`qOn-^*@aa;`G4*D6$7#TYunv92! z{}P%X5Wp7(zT-0}Lk|->WP>!`I~u+q45Jmgs4a8dQQG%<`l6JgHep8ny7_B!7w@Z7 z8tIziJ>zfad--cxgB#tuW^0}e?p-HI;qLFz8k{bQu#7Is$!v{J?;%Q7!&@Df8`1&@ ziQ+{QL__`a*=h541sUoj>ncTEPEoN%Jz9^zCxB(NZJamm3aw$D!4`SX%O1gRW4Fgk zyc_z>GRnDQ^P(MwOh-~_EA^mR;@(sI0+5k9@=Ezmd^i;9G`iUnU3gg(Xc{$ zbPtyS)$8|a@qxG`?R9Yxm!hOz7?58iySRI|_-r)R9(`P!HgE6NedItv;@Q~PNN3%A zRb+3}X4K>C1d|y~OLPtb$gFyyQ7v!}+J_92h-xs2i{T;;=#JOzN|tyUFBqX9i}VF1 zwngqF0Z&B@;3rxjB7c!!WJ~-pIK(#(-A2}3tB!40&%{0@4V+c98vIG`V(ZcGF{T`N z&;KK%FywKvhSX($6>e6u5xJ6hbkb@ZBeoy>PvJ=f2q2pLbU}i z`@p&}#I5>(H zxx7Trc5}OcNYIKYIE0A{))-(^05*oC=$o;m_wVo9+oSeACe-V+&+vtzWiiw}N@3PK zDymcIXM7QEv%4iL25fCsbl|b*{#lRwRPu%ymd;#0lAD8+PdjH5=@P93)97sR{ZV2c zKIUB(3H7h|Bcg1f(Y}2A`?w12&`+7Auh7kkaiX|8m|&F36iWm_Ni{VAGT~~ zt0f$*LiKJA%Agq{C5oxWmij-_ioSR0s+4vpLoF@~%w5~<-zMrs?j$G-foB0r*UzNe ziQq8rk6ES#@IHf98uP)twUkH| z?AV5ZYLCj+Hw|#<3n-fA2(!@H2I3n%LREaX^==pWefH9-m9}n0YP7tu}$B$bK0~59S^t-e1*afK|LM zAP^%-jBId88bQyeCAm+3GECI_GyChG40k5=Ey!>ITocoG^NG(yIeVe~*RM@6l<>MCPs9*pZ-StLrV`Qd+>m~QdQJ5-&P~k z>9fzlDwc-iqv4l2gcJEI6zP7hux< z$BviaJK#k9j#6~CCq$zx`V%EzkmzB&dDx*)b#pxoD(ot*7CyInKrMd}6EN~E|BScS z|HO7a>;r z+2k+Y7+*3pkbWtAP%p_rGu=XIjXme1B~EU;2a%^uc~WbnWD*M(e|r-bMTB?{SYIN~ za+~dL85b2S@2Iy2fSv&=JRQJ1G3`Kzr%7V;gU>Hu`2CQ<_JM*DOyV8z@t^P9%2(m1 zG@tg8yQiGy#x~AIN zO@@M2bi!%8(FXLs^bn*DL-%GzH+qJBMBe!|Vl`C7&}ICj`c zLb&BoiDu4N|8D|o95Py}CllLMbp407!13QLkIBjV96q&9vM};{f_xT#`cPtEtMl6F zqn8HL?xINneLR&O0^L_9D>tD`o*X*)Hm2%LD7|vX=;+#fE>e{IY2mm6IKuAk?sp8L zu>iUo@XwC^HeK*4X)~P+nZ0E^PEI0`!*t*4J{}SAbzZg)u+_DY z_$}UFHH`d-7_TW#%k>c9=Vj~Dcvw>FD|P=VZGaK+D`eLnMI$Q~)5A;s?{1{)-hO_! z;|BYIk>I|Bkr=6_gd$(=OUsp7aMv^bC_Y!yS{fTSeX>N=KbNboH6_G<$yC>^*7;8G zonM?SU*H2B?a{P;VzaV(sYkyT$$}=mfTC-LJ@hM>g)T*wuOw?P$U3jEP+4d{m9oUv z_kTC{d7PSzF$KK^Jq&;181CtG-3X{rP*(aGqBGIFWs``Ttnl*2snfprQq*v8zg0Fk zQn|mkF6Dg>GL?z=qdD@@9IcVJsXyX9NJ*IOFWKqBlymp^*LudVf>~{smUL8F5W7Q^ zZ+*)PRJ6q_vvGC)OXkU0Wq|Pa948%K%^(3Qic1>9>rvs3jIrLjj3 zDxFI!u{L)%5oJeYVzoQq_DcxYjV$c?TsaO85|C}4|(XxBd1f&dI+ zTTlCwUmTqya|`^zMh}wu#I`Mll3*uudQx9~Gn@UZ*?kRdnq6}LB4n1H|G2b4^}mt( zOPA@Irb>~WRx`7-5EuxD_Bb>Dv7dRe^+uEvK|TT4Is!kefW6XIaPXE=BSrUOmMg;_ zj}doI0^$6c$^T15T_QOlhaW)f6~rxMS-UuB{m>pFo;*p+ME zRQ{3%?0wy5N3k>kd?}VDOUm=F+h4i&yHc5JH^XPV{bZ#nL1z3>+I&J`QQSj{&;O>1 zW}d4nJ(hh=%z?^Ic2cx~@Khi{*fj`cKo|}dn_c83_miW6cc%utL)V9VuzfAnCR#7| zdb}$R$X~r7$ERrS4Y}(!T)EP*1@0e|4Qnsb*>N0hE5?{sU$Uq+t=3jDZHjp{vRO-J z+4Z~2oL8#&ZP($!+01T9WlCOQ{v}+0*!8-Rk{Z8+eO6PZXX6=g&Sf7FCvl&A=u~m- z=v?vm2GPI8E+Zip`((F*UCe&d`+ZiPgR+MVpE2v?>S+ z76zF$N;Zi%Ttv$;-DH1Mj-*RZCJlJ#m-m{VMKjtMtIG-zwsUEEu(6gZP>{GUi_&V) zU9`E%WAl8T85O77B~*vk+L@P6BI)?&4(IbG*tj?pl$WFxjrvZb9B)qG9}pz#-u__j znJf?O2g#NMKWeA!%jc`YV{@PL8{T2*2_?WU*7vSM@7-k15Bn#1BY=uFpYy)XxY6Ac z_OZ-;S$jRd`wr?=w)|kWv;eFuEU-5Rn+`h$wa8+>=SlBgx_7uD{Oo9cN;Zi~!A3iF zLP;+v>UEnEULznbAiY9kadp(? z(da4P#kx2NRWJJ958@kw#Fsd|vU1Vy_c$8t-YOg3|2e^=E{w!s|2Ha5BP(k~%*cHZ z9v1E1fO%cR3TQV@2rTFi)7PtMbxaT1H|4Wh5LLfEYw?Q5!GtT}<2@_X)--s?f{rap zl`J4;k-5ILHtldTgZ(NjZRKHQaZe7lKT9)&XxZI_Somm0KdovRgQdg>WZ54Fn2}7i zukbfJe$VcEwsfIc$4DaA66ewxaidA{n*quOZ8GEjZvoMsw4;=h8Rz719NE#+<4a{} z)<^myVOA>V63c{Rs%O2zKce++>opDRo1?sh*OD*1X%b@_!}}D;xiNQ&M;Ui^Jowrz z`S((|6>)=uSsrW9`oED)#p?dq?5W6CNgGq|Ne*7k@Dx3EEPP_rGJ;DPr{uiKc!I1w$9KvGThEWXq)~d6 z5fQ>gwUlLUj;^GYIkGu z%bM#}8LOSycaMdQ-7nkj;}#;%YTS!)KQlAtSNpA6FfHH`ObHX<`@hDOET{_aBKi|k zH-D3#u)1KdL%BvoUyy~^GxySk}e}Yvx4gwO?Aq@=44Ex%;_d(HpoT0)m5xI z6)~*zSI}bOoY(GzCS#15{tE~aF!2i7R=X>IEq@O&qFX#B4ApbTKl8a-F%IpiQ-gR> zu%yDQAb*2;J~6)=R%>G3Eedj?gk1lALv>ODxx?P+-tzQ|Zr9^qVxraNPPYPDY4?Rh2-+jfzzBmVkY6079LyS8IPNV>JP%l7nl7Q%|@H%i_v z57#dPy>`=)6QTT@v*hM5166P~Y9`t^&yIiGlZM8k(ukhNx53@z>}ZTp>1*DBA%PoG zTpgLBeq@QO)@kt4!{o_JMiU*Qib^U??sU$=s|TwV*)g{)w9yLzrZ`;wYPEl6ubJUh zRw>4)hP3sdW8T}z=er-FL*!B2p;!TL%reI!!~FVYR_mqpxdqpA@@%Y1O~)-Bnx-1( z{+sr;!>oNHRh1!UT>D9TRS-+5RB*O=TCRV&?+vN(ZDSVc>k)JbPhA~d6QZ2S#1*t& zT6}g2)?HFLkV?knnZ(a`SwMB*q)Q&AYC6qL*G}Et9+25mwHDc2JHs z%WaR%Q$hWDW3Wa^UA~Pc^F<=Kp6LM3M8mb%k4QCCe@iP^W#lYvdZJio!o8fcz&_5K zd3EnfcO8|nG>b*`7t^!Yvfi(2)K=)H|3tr&&#OTACbC-O*NOO;+#{un+?s@@eBt^d z46WT}VXTlXf#uI)BbX?dXqBtqV7-s8rpA(W?YJ6pTB>(l>bDiu z)|I8JxCRF|ZbLd_Jci~r+HCV)i`58$g3ORtVEAH!m$vF;R*PMXhJ~&Zv4J~5oY-5g zUWe^3I5KJv*DM3k1eIyhilO=v)~!zo^fU}L*0r5Fa+>^D?@jO4#JFB=U@-8lseEf8 z{s3o`lIlXMjb1M{?Tc}d_7MOgqcP))*qxy>(m6-e-aeJtx|)uDZH`e|xJsG(z^zjm39@LdF_&Uh3*4BK zBSH&edLHi_fwc*z%%y>0Ec>H%yZWX3!K^6mn+SOa5Hu1xptu zkR9}tS%`DEi7T45NtmUA3K-|tNmRppI0o-OimTSZv!x@rGBhz*QI%b=!JUs6>b0%c zwan{6@zYG=8gt`#{IZQvUWO$d0hW@ld>&zcHA$RU@pv}P?F2}Qr<||_ywOkjl23|i z_sy=Z=`ZasP|5exS`aN`D&uOf^Yvk%I*#4(&Kpd4Jl|&}7cujrQ98#Wjm9W5#ntQP%r?El-P@2gyL7 zK&hd(rD!tHuZ9{v2owJ8!+Ng=v2vBrqRQ=ZwdGNl`_%41;>f~V<#paR9j!wBL8maU ztYYpvV`93}MX2AuyV0B7p@NsqyRjKSN$34;b@!P#RYGidVK?irt z+<%;8ZRD(8wCkUszR?-yNdCJOR;{Mli5us;M7|?q_A28Qh=qJxmLEg@1kwd#Gj+rf zl`rnHXcp2aixH?nPcFnJ=g-A;MxPKV&aLk!Hn{VjWi~$VZ=J^X+rTDpPuYCi+ghAU z*W^B-E!BOj1}!oldN}LlusG#1^ZmgzwM|v=I>Dk1&vvFx3c!;?%W>4Bn~##$lRZ zoY^aSG`xbM&0&fwr}^}nV<1(1=z3WQPQ{=-|J+qJ+ond!e225J_*kb5zOTun_LXII z&fcvBT(?-a^Gf6G9{&5Cx+%zO*HkL3%`K_PDWEf0VRKh)cSIXQXMORi#8n?0e{iC% z|GNEaSoz6vblNa$UyQj=mWA$+KL44C;S^W$jvDmUt#n()tnnIVIHktcjI;C+UZu+Q zFFGqI{otXQLQ7*|cQ9Qx^mweHioZ{rV%O_htUdjG9m{w$fg`@|*3-e`Yo-bMd%uTu zgn!z%T^z4Uvp0&b{8>MJm1VrjuTet&1H|{_44*Zd44>)zn=&32W@xHk+0tG}nmCIb zCC_YfFj|o;HSe-33^jQcRUQOe74@G*eN-kdJm_%QQKsuenirq^RF9bdpr2jLW1LL% z%9$M-q&twBKyn8%#dN@lkue+b7JScjUrk3VT{!Ofyd#Q4R!sX=dSC3-@~ta|q?+ zvX3_*wtz?AO7@Fi#l(Y(ygAVc6_fa!r+Obs8lZ5gFA@^4<|n(#DRoOq38C@yr^F!W_-@ea}>sxwt1c}_pP;* z#g8r-{M=@gyl>#;=knDG55MTqs$M&1xQ|g(X#h4A&b^Gg=3#LZ<05a9`cJS`)nZm~ zb>!Cj#$j(o0nUC?LnvJ6XYE{m;2K~h9%9Kax9RsX&ZOCilhM<(?|A1dv~e50c%gJZ zs{C<%CDiqV1e{Cm3xw=#$ySpv7HnMz>xpR|JW>kubHUU)UB$VF)P)ev0}r9t#}3!M z)rqF}iJMGHRG9pePysiE^Y_l9_?O^X zOVc-#T7M7{rAS7w9c5*Ge+T=8x*12ooH48T{yE-Z*23#j8X`~=#d{IoGr!aPXpLXl zT;mbs2Ly<#BKSAW0`Nor*cCu^jRBBtTf{!)+vA@l9Oxj-g|=D2qBGrmymbnHjU|W6 zn>0o>zB{zNL`;0cP9*SdS-b?Kp>pG{V@k4M{C9`#B6IX176J*=QuM}%5ygbxWU{V~ zz!NyZZUj7F6pxDQugooNoXODo^<)`q5@yM3Zlmm&$76)slW}_Gr1_`uIwHRNfUslL znKdvXPz-9Ap`wciE}zO#UGaW(+7#j{2Yb)YSRu4F@C>SqBF@9Zdn}Dfum6D*jOEny zss37;$yQG69@MDyG{9pe4J(!eX5P>ysyPttSa`>6Xf&P#XJwQ}d>FHK8P&W!g^&7R zp7P9;|V5VIj#%q#z_a6DB-z6Eb9jQ;F0Y*e=FBH@X?gc@xrXMAnZ zY6N$+1U)i>*q2H2uzb9rz`HI7MPXrV2z&&jmrXfF9zgzjK&~qBILKA#x;^IpphN() z{$OrI2z^0Zo`ih)(2IQE`1hE6vf-%33~UV9!K{h6{3-Zb!4n8${Gti4r;3nz(|BAQ zt`J`jmvz*yrNxwEARyp9>b{Sr8#onYEPerZx9ojR*Yjo$=WCl^udSb0tHo7E3s6`5 zf*dzY4;Z6{&>PkR&mFp}UwL?Gs$T=ePYmAVye9~uDp5sfyl;gN1SUsU9y~tRJD2nV zopE9EBdW=AuiL>!b)~*=QW74q^Csf(c9Rub78^^Npnvu&jUmnaPbAUqHAle{X+2sO zp>~9Lt|N7Awq&=7jQmTCH_TL~F5#-A7M{)<<$`gL^0}GCHjCLo^?MbwWpm>s%e`S- z6Iqs(MJ`^#5r^SHq&m2ZE51;xYsu#L#nZX4MVWNh{nQbX@Q6i7OE}P3;TqbB216c~ z5jxX=R40MeMPddwUUD$wXxJ@08?}Jd1=R-T;>Y$6w&^6K(w7h6bHD~MGjRnt?Z%#8 zfzcK-LcOVIK3dXZ>a!R%89fzx22)4)5NgU74ae2CiG%rhnAv%Q%0nxHIgWH5nL1|u zXWC;-3S&lk&ZPL=v-36S+NmXT8yc>o%rK*k-zhE)gkd5$RCC#0er9b43%L7QPsk&nO6(SPn7BqI6sIy>DG>w@m9Hx|8| zt-S_%0hrrn2IOLTMZSpkrz3oX%66sKVxAFW@k4l7u|a?d!${>h?*O`26B7%^be{nw z&zX_uf9ffgm6gq2P_1?s#qcQD*@FNRhvDge&&;GfRNNhb7v9YM>zkU?UG8<4(%d-E zQDpwB2nM>n(~z})3H@yViSq{u*Jyz0B{T+8pSL{O8Q211_y+XK-2$2cMon!ctDs_H z-M;(^U<{(7q987xusPFo7jW=v6@h+CY%m)-JEkf8~ zt?l?=>l4z36{7-?DieljW8OKu3*%^ykB?swLqyBpx6*l(3ahl-@gHmiCfPZrZfnw& z!~?f^n(}LnmWqn%0kpYdEkai`q<-hc&kjg1a=Y+CXBQR*mT}sC{kjTpYEMYUfk>dz z%E24uivx58!k{SZ zzY51qK)LHU+*!e-DG;E_^Lnbz7dU#(VbFU0k8aY>p-g3T#{7>fVN;Wqwj-E&EzjII zu)5686eCx$FrYf*(w9icS0|^Z2S7G34kH=+EAj>fR4>2;Z6gvGz4!7Z^FP_5|5cAB z2sc9JnBM`K$W^rLqU2omPg~xPUjG|IHm7l=fC>UJ^9cCDd6ghRJ3l{v=S?3Q^uY&& zg{480@Y6(*Pat;1;CUm-^?hHhPFA~)EQG6l=j*&9Z zfrDN|DnENU6#WVc@@!6$SN>z*Hm|{5^xZ8;!qRmto+`BHA8*PAyGQ2n88L`=0zRR5 z_E8{|a0n1pU5sg+`{(YSBTRi5k~ReqlEQ>@lYQQ9qcm{Lroc069$k;U!ObvC6`Gn> zCv)@HcieDmc28We7!l~}nA-YnNMcCVz%QAxWH7w0|DWXM@4Jq9euF{-1oYgyjlw!Z zHl)F~KEk&?1GMuE1SqCsb%E$PV=-oYc9ot#Cj$m1Xvji&$Gy;M+~%3h@K2u}0b+zZ zrgfklsSD6hjN&+azW)&-;KfTQI7_lgPT*OLx9d2~;O-o-qJ#V~Fd1*KvE4GP&%oV4 zVB_F)e^=tr5l96lS0hdXVJ1=Jd;uV~ZefTdE(edzwJy;yOVDW$vS{y340b+kj-ia2ltN^Z(L)2v# zL#^H3wuQ!O>DRAcM~Y5}CTuZkSv67uaTA1FGt~EvW{?=6^j=xv5KtTaoSKS3i9m7O zp4eKLM?Ec$%yA2_gAzcoaZIhyDB>=ZQ7=F;*dCUvc;I8M-&WDI^6iDGwg7cAHXxTV zLrBBhjNI;$tPE38Q4tn(-nR53yfWPuC(wz>tH(oW5~if0eDCA$Oci0!*X{uOImxM( z-*B+*akc{O;KI;z`=)DaYzVr3<3U$s-7y69l@4eGj<0e%>UR$PW?SVV zw2rbKuJ@2~gf`BK*4Ov@FZj3Yv zE6A%az>;PIgFAmh-*>zUK!Jgso9J%9F~xfv&oCCP34;?DPj>AA+?U6~ag#ucpGY+@ z2b#bqRL$N6o<>(GG-|JG(>d&_=%oW?yMV4nt=K$aM)28@EB!)erxTEpWx?M|09roM zY`8Fk5^=H_-zmDMxd4)V`@QR%O_)LR^E}Z6sZ0dCUj)!^V?gBsGml08&j6GkP$8C- zI{z_t!N>@fdrI($N4`Egb*ut+8hLWKGh^X#L<`@_3lQJg<_L_0GKgin#WbCu<3$-r zFe+ZS^tPnnSX>8PkGJP>`)OEr|BeRirM4VJG#$q5=@Ftc=7{pw$_Hrw+^7}Xuw&7g~bPi!rTrkc|VMpmxo{=OhDizrJ;G8B<5BE z!d91Wzm&?}-S0)NXI<@F?+o3XJBW#iu>tIcHQ)y+Ku2SL;Xn-LB1TdQq*qsWtvrMm zKsF^PIM@jUeK2BK2f!spZngd0TL5Dys5tv{SD@kt-lpC8FQ*tdF$N(6G@`?@n>(-J zO=`NJi(uFUU>(~pLlV`^Y<7X(Ge*=JfdONGmJSBHM15J*xiCyaMSR@j%x&Cxg=^gX z$gIp^y#t)*Qn+zgMfXN*s1%fx8lg7U8w$7JgR3%^t;8Vx&JH>~_5sZZ1Sj~F_lBbg zA|6!UG(Aps5SW@!D306$F>TAf=Q0QRPVRD|p6+j8-}3b1t+ybA^cKvZ)4JTVXJ3Ji zbbNfQ-n1|~8y*|GEIJ>?k@d!Wed!~}Z^HVra%g+n2Uwq9?d@~nlEhbGv;psm5i^1v z*fXFR-Mo3z-L48@Y;0@`HDdj4TIKdTIkB0>|9M6K9Y&4rUH_VbnM~u_HK28L$9nc* zPW7p?MQ*Nm;#LREpX1Zj%R2EM&-Ov2lzzf>E2MajbNv%wH7z({fBkMo5YXa&VEBC2tIraFr1RUk;=ci3);0cT z;7k9Zq{3EH@jT-)0256_W!i7^b#}{#3a<%bAk*+VDq{d`e*0wu-nyNKkd9|Ps3XMm zh;b-qB|nSfM--Y2g!c9IsiV0#ISpWOE9yXsizk)ZEWic=kUg7@A{c|?(gv%Il#)`^ z-d`j<*sNYKJI=z@V>h|DuCt}@CS`&&s0E4FKf^)OYEsF1oUK{<9`;Sq@b##N9gQ4> z(jnjD5K#3UYD6a{cC-sjv;o$o(rhQqhM0gL6-3lM4))q6#tUdDb#m`Vl-U8mNeG;} z4p?ax4PL!+;`#dZ>$pB<>v!YYwR+6$B_M6)1!2=;4@#@6ZWXT|om{*TKiQTfKJkgy z_H#N&uIlH83d1 z8lzUdew##eJ3KNxeA0Dy$gl$xvf^RZxD{WQgpXjREgsqXNyzSdFMK!Zb1Z*gar^M$ zk|9`}4!CAKl;aP;iT*sg@)64Jg}F3P+tF`9ZZa(4uWvAF9lZDPn|p_}v^0kG6Au#s z>A3|9w;*i4w{o1#(zoLH&0_!F8^E9kAwV$3_JU(-czS$L zbQ+DWC@Z>|u%6iAs13M8RpAeePv~VIDaLm#K8ui{{vQs@KhpQQ`Zf@RIR#DN{)n)SY_t$rD5E!4BDDNm7L8lL_Jm-!{RnD|?lZkLA zs#z~t-`TNi>*#p!^+g~k&~F6NK51)f2QlDG_Tt_1B#DlR>0Mkj z5<((xI$!dXyN19L10_2dAu%yoLqkItuZ%@2gqSZJ+&Da}{(WF&X=5XA@%i6hEv5{a zers)QwRLb%*=9qy-9TVDt7>XK<>25jwy?;B|Lbrq=`${3UxAM%L@{@u7ors1sfg{U z8=i>j+fZZ7&(Ghpv;;Nh@H@ByiHwX)M(@%k(F^xz>% diff --git a/master/_images/sphx_glr_05-layer-norm_thumb.png b/master/_images/sphx_glr_05-layer-norm_thumb.png index 98d623bcf57053cda09bca7191284b4d22ec41bc..588cf049c84b4a4cd790e9cf400711f339791651 100644 GIT binary patch literal 22208 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 I(DvW|0oLgYBme*a literal 22367 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 T-8qACu4I|H^^!|w8xQ^;3veZi diff --git a/master/_images/sphx_glr_06-fused-attention_thumb.png b/master/_images/sphx_glr_06-fused-attention_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..8a5fed589d17fe6ee62d6a9788519dba471fbd65 GIT binary patch literal 26794 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 literal 0 HcmV?d00001 diff --git a/master/_images/sphx_glr_07-libdevice-function_thumb.png b/master/_images/sphx_glr_07-libdevice-function_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..8a5fed589d17fe6ee62d6a9788519dba471fbd65 GIT binary patch literal 26794 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 literal 0 HcmV?d00001 diff --git a/master/_sources/getting-started/tutorials/01-vector-add.rst.txt b/master/_sources/getting-started/tutorials/01-vector-add.rst.txt index 20f8ec750..e3022bcf7 100644 --- a/master/_sources/getting-started/tutorials/01-vector-add.rst.txt +++ b/master/_sources/getting-started/tutorials/01-vector-add.rst.txt @@ -238,7 +238,7 @@ We can now run the decorated function above. Pass `print_data=True` to see the p 3 32768.0 76.800002 76.800002 4 65536.0 127.999995 127.999995 5 131072.0 219.428568 219.428568 - 6 262144.0 341.333321 384.000001 + 6 262144.0 341.333321 341.333321 7 524288.0 472.615390 472.615390 8 1048576.0 614.400016 614.400016 9 2097152.0 722.823517 722.823517 @@ -255,7 +255,7 @@ We can now run the decorated function above. Pass `print_data=True` to see the p .. rst-class:: sphx-glr-timing - **Total running time of the script:** ( 1 minutes 34.829 seconds) + **Total running time of the script:** ( 1 minutes 50.020 seconds) .. _sphx_glr_download_getting-started_tutorials_01-vector-add.py: diff --git a/master/_sources/getting-started/tutorials/02-fused-softmax.rst.txt b/master/_sources/getting-started/tutorials/02-fused-softmax.rst.txt index 6766f31b8..b4b0ad79a 100644 --- a/master/_sources/getting-started/tutorials/02-fused-softmax.rst.txt +++ b/master/_sources/getting-started/tutorials/02-fused-softmax.rst.txt @@ -278,17 +278,17 @@ We will then compare its performance against (1) :code:`torch.softmax` and (2) t softmax-performance: N Triton Torch (native) Torch (jit) - 0 256.0 546.133347 512.000001 188.321838 - 1 384.0 614.400016 585.142862 153.600004 - 2 512.0 655.360017 585.142849 154.566038 + 0 256.0 546.133347 546.133347 186.181817 + 1 384.0 614.400016 585.142862 151.703707 + 2 512.0 655.360017 606.814814 154.566038 3 640.0 706.206879 640.000002 160.000000 - 4 768.0 722.823517 664.216187 162.754967 + 4 768.0 722.823517 664.216187 163.839992 .. ... ... ... ... 93 12160.0 812.359066 406.179533 198.936606 - 94 12288.0 812.429770 415.222812 199.298541 - 95 12416.0 812.498981 412.149375 198.954424 - 96 12544.0 812.566838 412.758863 199.209928 - 97 12672.0 811.007961 412.097543 199.264875 + 94 12288.0 812.429770 415.222812 199.096718 + 95 12416.0 812.498981 412.149375 198.854847 + 96 12544.0 810.925276 412.971190 199.012395 + 97 12672.0 811.007961 412.097543 199.167004 [98 rows x 4 columns] @@ -306,7 +306,7 @@ In the above plot, we can see that: .. rst-class:: sphx-glr-timing - **Total running time of the script:** ( 3 minutes 18.076 seconds) + **Total running time of the script:** ( 3 minutes 32.089 seconds) .. _sphx_glr_download_getting-started_tutorials_02-fused-softmax.py: diff --git a/master/_sources/getting-started/tutorials/03-matrix-multiplication.rst.txt b/master/_sources/getting-started/tutorials/03-matrix-multiplication.rst.txt index 612443a28..5a0558c63 100644 --- a/master/_sources/getting-started/tutorials/03-matrix-multiplication.rst.txt +++ b/master/_sources/getting-started/tutorials/03-matrix-multiplication.rst.txt @@ -459,37 +459,37 @@ We can now compare the performance of our kernel against that of cuBLAS. Here we matmul-performance: M cuBLAS ... Triton Triton (+ LeakyReLU) - 0 256.0 2.730667 ... 2.978909 2.978909 + 0 256.0 2.730667 ... 3.276800 2.978909 1 384.0 7.372800 ... 7.899428 7.899428 - 2 512.0 14.563555 ... 15.420235 15.420235 + 2 512.0 14.563555 ... 16.384000 15.420235 3 640.0 22.260869 ... 24.380953 24.380953 4 768.0 32.768000 ... 35.389441 34.028308 - 5 896.0 37.971025 ... 40.140799 39.025776 + 5 896.0 39.025776 ... 40.140799 39.025776 6 1024.0 49.932191 ... 53.773130 52.428801 - 7 1152.0 45.242181 ... 48.161033 47.396572 + 7 1152.0 45.242181 ... 47.396572 47.396572 8 1280.0 51.200001 ... 57.690139 57.690139 - 9 1408.0 64.138541 ... 68.147202 65.684049 - 10 1536.0 79.526831 ... 81.355034 78.643199 - 11 1664.0 63.372618 ... 63.372618 62.492442 + 9 1408.0 64.138541 ... 68.147202 66.485074 + 10 1536.0 80.430545 ... 80.430545 78.643199 + 11 1664.0 62.929456 ... 63.372618 62.492442 12 1792.0 72.983276 ... 72.983276 59.154861 - 13 1920.0 68.776119 ... 71.626943 70.892307 - 14 2048.0 73.584279 ... 78.033565 76.959706 - 15 2176.0 83.155572 ... 87.494120 86.367588 - 16 2304.0 68.446623 ... 78.064941 77.057651 - 17 2432.0 71.305746 ... 86.179335 85.393507 - 18 2560.0 77.833728 ... 82.956960 81.715711 - 19 2688.0 83.737433 ... 91.185232 89.464755 - 20 2816.0 82.446516 ... 84.523664 83.712490 - 21 2944.0 81.967162 ... 83.758038 82.373605 - 22 3072.0 82.420822 ... 88.750943 86.579673 - 23 3200.0 81.528664 ... 91.233074 95.665176 - 24 3328.0 83.516586 ... 85.908470 83.323259 - 25 3456.0 81.435930 ... 92.138932 90.180725 - 26 3584.0 83.954614 ... 91.189190 95.858629 - 27 3712.0 85.822459 ... 83.806497 87.783251 - 28 3840.0 80.901241 ... 89.259080 89.548180 - 29 3968.0 87.913500 ... 92.829164 84.096442 - 30 4096.0 93.825748 ... 89.299883 90.139506 + 13 1920.0 69.120002 ... 71.257735 71.257735 + 14 2048.0 73.584279 ... 78.398206 77.314362 + 15 2176.0 83.155572 ... 87.494120 85.998493 + 16 2304.0 68.446623 ... 78.320893 77.558029 + 17 2432.0 71.305746 ... 86.711310 75.421383 + 18 2560.0 77.833728 ... 82.747477 81.715711 + 19 2688.0 83.552988 ... 90.532356 89.464755 + 20 2816.0 84.197315 ... 84.035084 84.035084 + 21 2944.0 82.784108 ... 83.969728 83.060049 + 22 3072.0 81.825298 ... 89.593522 88.473602 + 23 3200.0 84.768213 ... 96.096095 95.808380 + 24 3328.0 83.226931 ... 85.908470 84.596116 + 25 3456.0 81.766291 ... 91.824110 91.097818 + 26 3584.0 87.466332 ... 91.194972 94.847460 + 27 3712.0 85.822459 ... 87.246590 87.860458 + 28 3840.0 81.859361 ... 87.011801 90.168771 + 29 3968.0 89.921841 ... 91.954739 85.271796 + 30 4096.0 93.596744 ... 88.243079 90.382307 [31 rows x 5 columns] @@ -499,7 +499,7 @@ We can now compare the performance of our kernel against that of cuBLAS. Here we .. rst-class:: sphx-glr-timing - **Total running time of the script:** ( 5 minutes 52.578 seconds) + **Total running time of the script:** ( 7 minutes 13.827 seconds) .. _sphx_glr_download_getting-started_tutorials_03-matrix-multiplication.py: diff --git a/master/_sources/getting-started/tutorials/04-low-memory-dropout.rst.txt b/master/_sources/getting-started/tutorials/04-low-memory-dropout.rst.txt index 0f9d8dc7a..edbf188ee 100644 --- a/master/_sources/getting-started/tutorials/04-low-memory-dropout.rst.txt +++ b/master/_sources/getting-started/tutorials/04-low-memory-dropout.rst.txt @@ -240,7 +240,7 @@ References .. rst-class:: sphx-glr-timing - **Total running time of the script:** ( 0 minutes 0.476 seconds) + **Total running time of the script:** ( 0 minutes 0.279 seconds) .. _sphx_glr_download_getting-started_tutorials_04-low-memory-dropout.py: diff --git a/master/_sources/getting-started/tutorials/05-layer-norm.rst.txt b/master/_sources/getting-started/tutorials/05-layer-norm.rst.txt index 8750ca528..295b2a90c 100644 --- a/master/_sources/getting-started/tutorials/05-layer-norm.rst.txt +++ b/master/_sources/getting-started/tutorials/05-layer-norm.rst.txt @@ -21,7 +21,7 @@ Layer Normalization ==================== -.. GENERATED FROM PYTHON SOURCE LINES 5-312 +.. GENERATED FROM PYTHON SOURCE LINES 5-316 @@ -40,34 +40,34 @@ Layer Normalization N Triton Torch Apex 0 1024.0 585.142849 277.694907 468.114273 1 1536.0 630.153868 323.368435 511.999982 - 2 2048.0 682.666643 334.367358 520.126988 - 3 2560.0 694.237267 365.714281 518.481028 - 4 3072.0 712.347810 378.092307 501.551037 - 5 3584.0 725.873439 384.859062 458.751978 - 6 4096.0 728.177767 381.023256 458.293714 - 7 4608.0 670.254540 396.387087 426.173427 - 8 5120.0 694.237267 397.669909 426.666652 - 9 5632.0 704.000002 396.969169 413.357796 - 10 6144.0 702.171410 402.885254 411.313806 + 2 2048.0 668.734716 337.814445 528.516136 + 3 2560.0 694.237267 362.477870 512.000013 + 4 3072.0 712.347810 375.206126 501.551037 + 5 3584.0 725.873439 384.859062 451.527536 + 6 4096.0 728.177767 381.023256 455.111095 + 7 4608.0 670.254540 396.387087 421.302872 + 8 5120.0 688.403381 395.748783 422.268057 + 9 5632.0 698.542675 396.969169 409.599997 + 10 6144.0 702.171410 402.885254 409.600010 11 6656.0 700.631610 400.360920 400.360920 - 12 7168.0 695.078767 396.844306 388.772874 - 13 7680.0 682.666656 393.846167 387.634072 - 14 8192.0 642.509816 393.609605 372.363633 - 15 8704.0 627.315309 389.005597 380.502740 - 16 9216.0 606.814809 407.337026 383.999986 - 17 9728.0 589.575753 409.599987 383.369452 - 18 10240.0 566.920437 408.578556 382.803739 - 19 10752.0 549.623009 411.559798 381.445676 - 20 11264.0 536.380957 406.826188 373.134567 - 21 11776.0 523.377770 410.492372 377.587162 - 22 12288.0 517.389457 414.784810 383.251457 - 23 12800.0 505.679014 410.420828 376.470582 - 24 13312.0 494.180982 405.699062 376.976995 - 25 13824.0 482.934503 411.888257 379.389355 - 26 14336.0 471.967074 406.695045 374.185964 - 27 14848.0 461.297068 408.192434 375.304904 - 28 15360.0 454.269882 406.214870 378.092307 - 29 15872.0 447.887117 407.627589 376.225175 + 12 7168.0 678.627194 386.154893 384.859062 + 13 7680.0 682.666656 391.337574 386.415087 + 14 8192.0 645.674867 390.095241 376.643677 + 15 8704.0 624.502255 390.095225 379.465939 + 16 9216.0 604.327881 405.098894 383.002605 + 17 9728.0 585.142883 409.599987 382.427505 + 18 10240.0 564.965524 409.600010 382.803739 + 19 10752.0 546.133312 410.577576 380.601764 + 20 11264.0 531.634232 395.228063 370.069806 + 21 11776.0 520.486200 409.599991 376.831982 + 22 12288.0 516.031509 413.911572 383.251457 + 23 12800.0 504.433489 410.420828 375.779805 + 24 13312.0 494.180982 405.699062 376.310952 + 25 13824.0 481.882350 411.888257 378.739711 + 26 14336.0 471.967074 401.709294 372.969090 + 27 14848.0 461.297068 407.492270 375.898745 + 28 15360.0 453.431739 406.887417 378.092307 + 29 15872.0 447.098578 406.323209 376.225175 @@ -204,17 +204,19 @@ Layer Normalization cols = pid * BLOCK_SIZE_N + tl.arange(0, BLOCK_SIZE_N) dw = tl.zeros((BLOCK_SIZE_M, BLOCK_SIZE_N), dtype=tl.float32) db = tl.zeros((BLOCK_SIZE_M, BLOCK_SIZE_N), dtype=tl.float32) - for i in range(0, M, BLOCK_SIZE_M): - rows = i + tl.arange(0, BLOCK_SIZE_M) - mask = (rows[:, None] < M) & (cols[None, :] < N) - offs = rows[:, None] * N + cols[None, :] - a = tl.load(A + offs, mask=mask, other=0.).to(tl.float32) - dout = tl.load(DOut + offs, mask=mask, other=0.).to(tl.float32) - mean = tl.load(Mean + rows, mask=rows < M, other=0.) - rstd = tl.load(Var + rows, mask=rows < M, other=0.) - a_hat = (a - mean[:, None]) * rstd[:, None] - dw += dout * a_hat - db += dout + UNROLL: tl.constexpr = 4 + for i in range(0, M, BLOCK_SIZE_M * UNROLL): + for j in range(UNROLL): + rows = i + j * BLOCK_SIZE_M + tl.arange(0, BLOCK_SIZE_M) + mask = (rows[:, None] < M) & (cols[None, :] < N) + offs = rows[:, None] * N + cols[None, :] + a = tl.load(A + offs, mask=mask, other=0.).to(tl.float32) + dout = tl.load(DOut + offs, mask=mask, other=0.).to(tl.float32) + mean = tl.load(Mean + rows, mask=rows < M, other=0.) + rstd = tl.load(Var + rows, mask=rows < M, other=0.) + a_hat = (a - mean[:, None]) * rstd[:, None] + dw += dout * a_hat + db += dout sum_dw = tl.sum(dw, axis=0) sum_db = tl.sum(db, axis=0) tl.store(DW + cols, sum_dw, mask=cols < N) @@ -287,7 +289,15 @@ Layer Normalization BLOCK_SIZE_N=ctx.BLOCK_SIZE, num_warps=ctx.num_warps, ) - # accumulate partial sums in separate kernel + if N > 10240: + BLOCK_SIZE_N = 128 + BLOCK_SIZE_M = 32 + num_warps = 4 + else: + # maximize occupancy for small N + BLOCK_SIZE_N = 16 + BLOCK_SIZE_M = 16 + num_warps = 8 grid = lambda meta: [triton.cdiv(N, meta["BLOCK_SIZE_N"])] _layer_norm_bwd_dwdb[grid]( a, dout, @@ -296,17 +306,11 @@ Layer Normalization dbias, M, N, - BLOCK_SIZE_M=32, - BLOCK_SIZE_N=128, + BLOCK_SIZE_M=BLOCK_SIZE_M, + BLOCK_SIZE_N=BLOCK_SIZE_N, + num_warps=num_warps ) - return (da, None, dweight, dbias, None, None, - None, None, None, None, - None, - None, None, None, - None, - None, None, None, - None, None, None, - None, None, None) + return (da, None, dweight, dbias, None) def layer_norm(a, normalized_shape, weight, bias, eps): @@ -389,7 +393,7 @@ Layer Normalization .. rst-class:: sphx-glr-timing - **Total running time of the script:** ( 5 minutes 24.641 seconds) + **Total running time of the script:** ( 5 minutes 32.552 seconds) .. _sphx_glr_download_getting-started_tutorials_05-layer-norm.py: diff --git a/master/_sources/getting-started/tutorials/06-fused-attention.rst.txt b/master/_sources/getting-started/tutorials/06-fused-attention.rst.txt new file mode 100644 index 000000000..2876c4654 --- /dev/null +++ b/master/_sources/getting-started/tutorials/06-fused-attention.rst.txt @@ -0,0 +1,416 @@ + +.. DO NOT EDIT. +.. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. +.. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: +.. "getting-started/tutorials/06-fused-attention.py" +.. LINE NUMBERS ARE GIVEN BELOW. + +.. only:: html + + .. note:: + :class: sphx-glr-download-link-note + + Click :ref:`here ` + to download the full example code + +.. rst-class:: sphx-glr-example-title + +.. _sphx_glr_getting-started_tutorials_06-fused-attention.py: + + +Fused Attention +=============== +This is a Triton implementation of the Flash Attention algorithm +(see: Dao et al., https://arxiv.org/pdf/2205.14135v2.pdf; Rabe and Staats https://arxiv.org/pdf/2112.05682v2.pdf) + +.. GENERATED FROM PYTHON SOURCE LINES 7-355 + + + + + + + +.. code-block:: default + + + import pytest + import torch + + import triton + import triton.language as tl + + + @triton.jit + def _fwd_kernel( + Q, K, V, sm_scale, + TMP, L, M, # NOTE: TMP is a scratchpad buffer to workaround a compiler bug + Out, + stride_qz, stride_qh, stride_qm, stride_qk, + stride_kz, stride_kh, stride_kn, stride_kk, + stride_vz, stride_vh, stride_vk, stride_vn, + stride_oz, stride_oh, stride_om, stride_on, + Z, H, N_CTX, + BLOCK_M: tl.constexpr, BLOCK_DMODEL: tl.constexpr, + BLOCK_N: tl.constexpr, + ): + start_m = tl.program_id(0) + off_hz = tl.program_id(1) + # initialize offsets + offs_m = start_m * BLOCK_M + tl.arange(0, BLOCK_M) + offs_n = tl.arange(0, BLOCK_N) + offs_d = tl.arange(0, BLOCK_DMODEL) + off_q = off_hz * stride_qh + offs_m[:, None] * stride_qm + offs_d[None, :] * stride_qk + off_k = off_hz * stride_qh + offs_n[:, None] * stride_kn + offs_d[None, :] * stride_kk + off_v = off_hz * stride_qh + offs_n[:, None] * stride_qm + offs_d[None, :] * stride_qk + # Initialize pointers to Q, K, V + q_ptrs = Q + off_q + k_ptrs = K + off_k + v_ptrs = V + off_v + # initialize pointer to m and l + t_ptrs = TMP + off_hz * N_CTX + offs_m + m_i = tl.zeros([BLOCK_M], dtype=tl.float32) - float("inf") + l_i = tl.zeros([BLOCK_M], dtype=tl.float32) + acc = tl.zeros([BLOCK_M, BLOCK_DMODEL], dtype=tl.float32) + # load q: it will stay in SRAM throughout + q = tl.load(q_ptrs) + # loop over k, v and update accumulator + for start_n in range(0, (start_m + 1) * BLOCK_M, BLOCK_N): + start_n = tl.multiple_of(start_n, BLOCK_N) + # -- compute qk ---- + k = tl.load(k_ptrs + start_n * stride_kn) + qk = tl.zeros([BLOCK_M, BLOCK_N], dtype=tl.float32) + qk += tl.dot(q, k, trans_b=True) + qk *= sm_scale + qk += tl.where(offs_m[:, None] >= (start_n + offs_n[None, :]), 0, float("-inf")) + # -- compute m_ij, p, l_ij + m_ij = tl.max(qk, 1) + p = tl.exp(qk - m_ij[:, None]) + l_ij = tl.sum(p, 1) + # -- update m_i and l_i + m_i_new = tl.maximum(m_i, m_ij) + alpha = tl.exp(m_i - m_i_new) + beta = tl.exp(m_ij - m_i_new) + l_i_new = alpha * l_i + beta * l_ij + # -- update output accumulator -- + # scale p + p_scale = beta / l_i_new + p = p * p_scale[:, None] + # scale acc + acc_scale = l_i / l_i_new * alpha + tl.store(t_ptrs, acc_scale) + acc_scale = tl.load(t_ptrs) # BUG: have to store and immediately load + acc = acc * acc_scale[:, None] + # update acc + v = tl.load(v_ptrs + start_n * stride_vk) + p = p.to(tl.float16) + acc += tl.dot(p, v) + # update m_i and l_i + l_i = l_i_new + m_i = m_i_new + # rematerialize offsets to save registers + start_m = tl.program_id(0) + offs_m = start_m * BLOCK_M + tl.arange(0, BLOCK_M) + # write back l and m + l_ptrs = L + off_hz * N_CTX + offs_m + m_ptrs = M + off_hz * N_CTX + offs_m + tl.store(l_ptrs, l_i) + tl.store(m_ptrs, m_i) + # initialize pointers to output + offs_n = tl.arange(0, BLOCK_DMODEL) + off_o = off_hz * stride_oh + offs_m[:, None] * stride_om + offs_n[None, :] * stride_on + out_ptrs = Out + off_o + tl.store(out_ptrs, acc) + + + @triton.jit + def _bwd_preprocess( + Out, DO, L, + NewDO, Delta, + BLOCK_M: tl.constexpr, D_HEAD: tl.constexpr, + ): + off_m = tl.program_id(0) * BLOCK_M + tl.arange(0, BLOCK_M) + off_n = tl.arange(0, D_HEAD) + # load + o = tl.load(Out + off_m[:, None] * D_HEAD + off_n[None, :]).to(tl.float32) + do = tl.load(DO + off_m[:, None] * D_HEAD + off_n[None, :]).to(tl.float32) + denom = tl.load(L + off_m).to(tl.float32) + # compute + do = do / denom[:, None] + delta = tl.sum(o * do, axis=1) + # write-back + tl.store(NewDO + off_m[:, None] * D_HEAD + off_n[None, :], do) + tl.store(Delta + off_m, delta) + + + @triton.jit + def _bwd_kernel( + Q, K, V, sm_scale, Out, DO, + DQ, DK, DV, + L, M, + D, + stride_qz, stride_qh, stride_qm, stride_qk, + stride_kz, stride_kh, stride_kn, stride_kk, + stride_vz, stride_vh, stride_vk, stride_vn, + Z, H, N_CTX, + num_block, + BLOCK_M: tl.constexpr, BLOCK_DMODEL: tl.constexpr, + BLOCK_N: tl.constexpr, + ): + off_hz = tl.program_id(0) + off_z = off_hz // H + off_h = off_hz % H + # offset pointers for batch/head + Q += off_z * stride_qz + off_h * stride_qh + K += off_z * stride_qz + off_h * stride_qh + V += off_z * stride_qz + off_h * stride_qh + DO += off_z * stride_qz + off_h * stride_qh + DQ += off_z * stride_qz + off_h * stride_qh + DK += off_z * stride_qz + off_h * stride_qh + DV += off_z * stride_qz + off_h * stride_qh + for start_n in range(0, num_block): + lo = start_n * BLOCK_M + # initialize row/col offsets + offs_qm = lo + tl.arange(0, BLOCK_M) + offs_n = start_n * BLOCK_M + tl.arange(0, BLOCK_M) + offs_m = tl.arange(0, BLOCK_N) + offs_k = tl.arange(0, BLOCK_DMODEL) + # initialize pointers to value-like data + q_ptrs = Q + (offs_qm[:, None] * stride_qm + offs_k[None, :] * stride_qk) + k_ptrs = K + (offs_n[:, None] * stride_kn + offs_k[None, :] * stride_kk) + v_ptrs = V + (offs_n[:, None] * stride_qm + offs_k[None, :] * stride_qk) + do_ptrs = DO + (offs_qm[:, None] * stride_qm + offs_k[None, :] * stride_qk) + dq_ptrs = DQ + (offs_qm[:, None] * stride_qm + offs_k[None, :] * stride_qk) + # pointer to row-wise quantities in value-like data + D_ptrs = D + off_hz * N_CTX + m_ptrs = M + off_hz * N_CTX + # initialize dv amd dk + dv = tl.zeros([BLOCK_M, BLOCK_DMODEL], dtype=tl.float32) + dk = tl.zeros([BLOCK_M, BLOCK_DMODEL], dtype=tl.float32) + # k and v stay in SRAM throughout + k = tl.load(k_ptrs) + v = tl.load(v_ptrs) + # loop over rows + for start_m in range(lo, num_block * BLOCK_M, BLOCK_M): + offs_m_curr = start_m + offs_m + # load q, k, v, do on-chip + q = tl.load(q_ptrs) + # recompute p = softmax(qk, dim=-1).T + # NOTE: `do` is pre-divided by `l`; no normalization here + qk = tl.dot(q, k, trans_b=True) + qk = tl.where(offs_m_curr[:, None] >= (offs_n[None, :]), qk, float("-inf")) + m = tl.load(m_ptrs + offs_m_curr) + p = tl.exp(qk * sm_scale - m[:, None]) + # compute dv + do = tl.load(do_ptrs) + dv += tl.dot(p.to(tl.float16), do, trans_a=True) + # compute dp = dot(v, do) + Di = tl.load(D_ptrs + offs_m_curr) + dp = tl.zeros([BLOCK_M, BLOCK_N], dtype=tl.float32) - Di[:, None] + dp += tl.dot(do, v, trans_b=True) + # compute ds = p * (dp - delta[:, None]) + ds = p * dp * sm_scale + # compute dk = dot(ds.T, q) + dk += tl.dot(ds.to(tl.float16), q, trans_a=True) + # # compute dq + dq = tl.load(dq_ptrs, eviction_policy="evict_last") + dq += tl.dot(ds.to(tl.float16), k) + tl.store(dq_ptrs, dq, eviction_policy="evict_last") + # # increment pointers + dq_ptrs += BLOCK_M * stride_qm + q_ptrs += BLOCK_M * stride_qm + do_ptrs += BLOCK_M * stride_qm + # write-back + dv_ptrs = DV + (offs_n[:, None] * stride_qm + offs_k[None, :] * stride_qk) + dk_ptrs = DK + (offs_n[:, None] * stride_kn + offs_k[None, :] * stride_kk) + tl.store(dv_ptrs, dv) + tl.store(dk_ptrs, dk) + + + class _attention(torch.autograd.Function): + + @staticmethod + def forward(ctx, q, k, v, sm_scale): + BLOCK = 128 + # shape constraints + Lq, Lk = q.shape[-1], k.shape[-1] + assert Lq == Lk + o = torch.empty_like(q) + grid = (triton.cdiv(q.shape[2], BLOCK), q.shape[0] * q.shape[1]) + tmp = torch.empty((q.shape[0] * q.shape[1], q.shape[2]), device=q.device, dtype=torch.float32) + L = torch.empty((q.shape[0] * q.shape[1], q.shape[2]), device=q.device, dtype=torch.float32) + m = torch.empty((q.shape[0] * q.shape[1], q.shape[2]), device=q.device, dtype=torch.float32) + _fwd_kernel[grid]( + q, k, v, sm_scale, + tmp, L, m, + o, + q.stride(0), q.stride(1), q.stride(2), q.stride(3), + k.stride(0), k.stride(1), k.stride(2), k.stride(3), + v.stride(0), v.stride(1), v.stride(2), v.stride(3), + o.stride(0), o.stride(1), o.stride(2), o.stride(3), + q.shape[0], q.shape[1], q.shape[2], + BLOCK_M=BLOCK, BLOCK_N=BLOCK, + BLOCK_DMODEL=64, num_warps=4, + num_stages=1, + ) + ctx.save_for_backward(q, k, v, o, L, m) + ctx.BLOCK = BLOCK + ctx.grid = grid + ctx.sm_scale = sm_scale + ctx.BLOCK_DMODEL = 64 + return o + + @staticmethod + def backward(ctx, do): + q, k, v, o, l, m = ctx.saved_tensors + do = do.contiguous() + dq = torch.zeros_like(q, dtype=torch.float32) + dk = torch.empty_like(k) + dv = torch.empty_like(v) + do_scaled = torch.empty_like(do) + delta = torch.empty_like(l) + _bwd_preprocess[(ctx.grid[0] * ctx.grid[1], )]( + o, do, l, + do_scaled, delta, + BLOCK_M=ctx.BLOCK, D_HEAD=ctx.BLOCK_DMODEL, + ) + _bwd_kernel[(ctx.grid[1],)]( + q, k, v, ctx.sm_scale, + o, do_scaled, + dq, dk, dv, + l, m, + delta, + q.stride(0), q.stride(1), q.stride(2), q.stride(3), + k.stride(0), k.stride(1), k.stride(2), k.stride(3), + v.stride(0), v.stride(1), v.stride(2), v.stride(3), + q.shape[0], q.shape[1], q.shape[2], + ctx.grid[0], + BLOCK_M=ctx.BLOCK, BLOCK_N=ctx.BLOCK, + BLOCK_DMODEL=ctx.BLOCK_DMODEL, num_warps=8, + num_stages=1, + ) + return dq, dk, dv, None + + + attention = _attention.apply + + + @pytest.mark.parametrize('Z, H, N_CTX, D_HEAD', [(3, 2, 2048, 64)]) + def test_op(Z, H, N_CTX, D_HEAD, dtype=torch.float16): + torch.manual_seed(20) + q = torch.empty((Z, H, N_CTX, D_HEAD), dtype=dtype, device="cuda").normal_(mean=0, std=.5).requires_grad_() + k = torch.empty((Z, H, N_CTX, D_HEAD), dtype=dtype, device="cuda").normal_(mean=0, std=.5).requires_grad_() + v = torch.empty((Z, H, N_CTX, D_HEAD), dtype=dtype, device="cuda").normal_(mean=0, std=.5).requires_grad_() + sm_scale = 0.3 + dout = torch.randn_like(q) + # reference implementation + M = torch.tril(torch.ones((N_CTX, N_CTX), device="cuda")) + p = torch.matmul(q, k.transpose(2, 3)) * sm_scale + for z in range(Z): + for h in range(H): + p[:, :, M == 0] = float("-inf") + p = torch.softmax(p.float(), dim=-1).half() + ref_out = torch.matmul(p, v) + ref_out.backward(dout) + ref_dv, v.grad = v.grad.clone(), None + ref_dk, k.grad = k.grad.clone(), None + ref_dq, q.grad = q.grad.clone(), None + # triton implementation + tri_out = attention(q, k, v, sm_scale) + tri_out.backward(dout) + tri_dv, v.grad = v.grad.clone(), None + tri_dk, k.grad = k.grad.clone(), None + tri_dq, q.grad = q.grad.clone(), None + # compare + triton.testing.assert_almost_equal(ref_out, tri_out) + triton.testing.assert_almost_equal(ref_dv, tri_dv) + triton.testing.assert_almost_equal(ref_dk, tri_dk) + triton.testing.assert_almost_equal(ref_dq, tri_dq) + + + try: + from flash_attn.flash_attn_interface import flash_attn_func + HAS_FLASH = True + except BaseException: + HAS_FLASH = False + + BATCH, N_HEADS, N_CTX, D_HEAD = 4, 48, 4096, 64 + # vary seq length for fixed head and batch=4 + configs = [triton.testing.Benchmark( + x_names=['N_CTX'], + x_vals=[2**i for i in range(10, 16)], + line_arg='provider', + line_vals=['triton'] + (['flash'] if HAS_FLASH else []), + line_names=['Triton'] + (['Flash'] if HAS_FLASH else []), + styles=[('red', '-'), ('blue', '-')], + ylabel='ms', + plot_name=f'fused-attention-batch{BATCH}-head{N_HEADS}-d{D_HEAD}-{mode}', + args={'H': N_HEADS, 'BATCH': BATCH, 'D_HEAD': D_HEAD, 'dtype': torch.float16, 'mode': mode} + ) for mode in ['bwd']] + + + @triton.testing.perf_report(configs) + def bench_flash_attention(BATCH, H, N_CTX, D_HEAD, mode, provider, dtype=torch.float16, device="cuda"): + assert mode in ['fwd', 'bwd'] + warmup = 25 + rep = 100 + if provider == "triton": + q = torch.randn((BATCH, H, N_CTX, D_HEAD), dtype=dtype, device="cuda", requires_grad=True) + k = torch.randn((BATCH, H, N_CTX, D_HEAD), dtype=dtype, device="cuda", requires_grad=True) + v = torch.randn((BATCH, H, N_CTX, D_HEAD), dtype=dtype, device="cuda", requires_grad=True) + sm_scale = 1.3 + fn = lambda: attention(q, k, v, sm_scale) + if mode == 'bwd': + o = fn() + do = torch.randn_like(o) + fn = lambda: o.backward(do, retain_graph=True) + ms = triton.testing.do_bench(fn, percentiles=None, warmup=warmup, rep=rep) + return ms + if provider == "flash": + lengths = torch.full((BATCH,), fill_value=N_CTX, device=device) + cu_seqlens = torch.zeros((BATCH + 1,), device=device, dtype=torch.int32) + cu_seqlens[1:] = lengths.cumsum(0) + qkv = torch.randn((BATCH * N_CTX, 3, H, D_HEAD), dtype=dtype, device=device, requires_grad=True) + fn = lambda: flash_attn_func(qkv, cu_seqlens, 0., N_CTX, causal=True) + if mode == 'bwd': + o = fn() + do = torch.randn_like(o) + fn = lambda: o.backward(do, retain_graph=True) + ms = triton.testing.do_bench(fn, percentiles=None, warmup=warmup, rep=rep) + return ms + + # only works on A100 at the moment + # bench_flash_attention.run(save_path='.', print_data=True) + + +.. rst-class:: sphx-glr-timing + + **Total running time of the script:** ( 0 minutes 0.072 seconds) + + +.. _sphx_glr_download_getting-started_tutorials_06-fused-attention.py: + + +.. only :: html + + .. container:: sphx-glr-footer + :class: sphx-glr-footer-example + + + + .. container:: sphx-glr-download sphx-glr-download-python + + :download:`Download Python source code: 06-fused-attention.py <06-fused-attention.py>` + + + + .. container:: sphx-glr-download sphx-glr-download-jupyter + + :download:`Download Jupyter notebook: 06-fused-attention.ipynb <06-fused-attention.ipynb>` + + +.. only:: html + + .. rst-class:: sphx-glr-signature + + `Gallery generated by Sphinx-Gallery `_ diff --git a/master/_sources/getting-started/tutorials/07-libdevice-function.rst.txt b/master/_sources/getting-started/tutorials/07-libdevice-function.rst.txt new file mode 100644 index 000000000..5761392dc --- /dev/null +++ b/master/_sources/getting-started/tutorials/07-libdevice-function.rst.txt @@ -0,0 +1,183 @@ + +.. DO NOT EDIT. +.. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. +.. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: +.. "getting-started/tutorials/07-libdevice-function.py" +.. LINE NUMBERS ARE GIVEN BELOW. + +.. only:: html + + .. note:: + :class: sphx-glr-download-link-note + + Click :ref:`here ` + to download the full example code + +.. rst-class:: sphx-glr-example-title + +.. _sphx_glr_getting-started_tutorials_07-libdevice-function.py: + + +Libdevice function +=============== +Triton can invoke a custom function from an external library. +In this example, we will use the `libdevice` library to apply `asin` on a tensor. +Please refer to https://docs.nvidia.com/cuda/libdevice-users-guide/index.html regarding the semantics of all available libdevice functions. + +In `trition/language/libdevice.py`, we try to aggregate functions with the same computation but different data types together. +For example, both `__nv_asin` and `__nvasinf` calculate the principal value of the arc sine of the input, but `__nv_asin` operates on `double` and `__nv_asinf` operates on `float`. +Using triton, you can simply call `tl.libdevice.asinf`. +triton automatically selects the correct underlying device function to invoke based on input and output types. + +.. GENERATED FROM PYTHON SOURCE LINES 15-17 + +asin Kernel +-------------------------- + +.. GENERATED FROM PYTHON SOURCE LINES 17-39 + +.. code-block:: default + + + import torch + + import triton + import triton.language as tl + + + @triton.jit + def asin_kernel( + x_ptr, + y_ptr, + n_elements, + BLOCK_SIZE: tl.constexpr, + ): + pid = tl.program_id(axis=0) + block_start = pid * BLOCK_SIZE + offsets = block_start + tl.arange(0, BLOCK_SIZE) + mask = offsets < n_elements + x = tl.load(x_ptr + offsets, mask=mask) + x = tl.libdevice.asin(x) + tl.store(y_ptr + offsets, x, mask=mask) + + + + + + + + +.. GENERATED FROM PYTHON SOURCE LINES 40-43 + +Using the default libdevice library path +-------------------------- +We can use the default libdevice library path encoded in `triton/language/libdevice.py` + +.. GENERATED FROM PYTHON SOURCE LINES 43-61 + +.. code-block:: default + + + + torch.manual_seed(0) + size = 98432 + x = torch.rand(size, device='cuda') + output_triton = torch.zeros(size, device='cuda') + output_torch = torch.asin(x) + assert x.is_cuda and output_triton.is_cuda + n_elements = output_torch.numel() + grid = lambda meta: (triton.cdiv(n_elements, meta['BLOCK_SIZE']),) + asin_kernel[grid](x, output_triton, n_elements, BLOCK_SIZE=1024) + print(output_torch) + print(output_triton) + print( + f'The maximum difference between torch and triton is ' + f'{torch.max(torch.abs(output_torch - output_triton))}' + ) + + + + + +.. rst-class:: sphx-glr-script-out + + Out: + + .. code-block:: none + + tensor([0.4105, 0.5430, 0.0249, ..., 0.0424, 0.5351, 0.8149], device='cuda:0') + tensor([0.4105, 0.5430, 0.0249, ..., 0.0424, 0.5351, 0.8149], device='cuda:0') + The maximum difference between torch and triton is 2.384185791015625e-07 + + + + +.. GENERATED FROM PYTHON SOURCE LINES 62-65 + +Customize the libdevice library path +-------------------------- +We can also customize the libdevice library path by passing the path to the `libdevice` library to the `asin` kernel. + +.. GENERATED FROM PYTHON SOURCE LINES 65-75 + +.. code-block:: default + + + output_triton = torch.empty_like(x) + asin_kernel[grid](x, output_triton, n_elements, BLOCK_SIZE=1024, + extern_libs={'libdevice': '/usr/local/cuda/nvvm/libdevice/libdevice.10.bc'}) + print(output_torch) + print(output_triton) + print( + f'The maximum difference between torch and triton is ' + f'{torch.max(torch.abs(output_torch - output_triton))}' + ) + + + + +.. rst-class:: sphx-glr-script-out + + Out: + + .. code-block:: none + + tensor([0.4105, 0.5430, 0.0249, ..., 0.0424, 0.5351, 0.8149], device='cuda:0') + tensor([0.4105, 0.5430, 0.0249, ..., 0.0424, 0.5351, 0.8149], device='cuda:0') + The maximum difference between torch and triton is 2.384185791015625e-07 + + + + + +.. rst-class:: sphx-glr-timing + + **Total running time of the script:** ( 0 minutes 0.501 seconds) + + +.. _sphx_glr_download_getting-started_tutorials_07-libdevice-function.py: + + +.. only :: html + + .. container:: sphx-glr-footer + :class: sphx-glr-footer-example + + + + .. container:: sphx-glr-download sphx-glr-download-python + + :download:`Download Python source code: 07-libdevice-function.py <07-libdevice-function.py>` + + + + .. container:: sphx-glr-download sphx-glr-download-jupyter + + :download:`Download Jupyter notebook: 07-libdevice-function.ipynb <07-libdevice-function.ipynb>` + + +.. only:: html + + .. rst-class:: sphx-glr-signature + + `Gallery generated by Sphinx-Gallery `_ diff --git a/master/_sources/getting-started/tutorials/index.rst.txt b/master/_sources/getting-started/tutorials/index.rst.txt index c8a39cdaf..ecb119afe 100644 --- a/master/_sources/getting-started/tutorials/index.rst.txt +++ b/master/_sources/getting-started/tutorials/index.rst.txt @@ -122,6 +122,48 @@ To install the dependencies for the tutorials: :hidden: /getting-started/tutorials/05-layer-norm + +.. raw:: html + +

+ + +.. toctree:: + :hidden: + + /getting-started/tutorials/06-fused-attention + +.. raw:: html + +
+ +.. only:: html + + .. figure:: /getting-started/tutorials/images/thumb/sphx_glr_07-libdevice-function_thumb.png + :alt: Libdevice function + + :ref:`sphx_glr_getting-started_tutorials_07-libdevice-function.py` + +.. raw:: html + +
+ + +.. toctree:: + :hidden: + + /getting-started/tutorials/07-libdevice-function .. raw:: html
diff --git a/master/_sources/getting-started/tutorials/sg_execution_times.rst.txt b/master/_sources/getting-started/tutorials/sg_execution_times.rst.txt index 7e379c471..44bfca6b7 100644 --- a/master/_sources/getting-started/tutorials/sg_execution_times.rst.txt +++ b/master/_sources/getting-started/tutorials/sg_execution_times.rst.txt @@ -5,16 +5,20 @@ Computation times ================= -**16:10.599** total execution time for **getting-started_tutorials** files: +**18:09.339** total execution time for **getting-started_tutorials** files: +---------------------------------------------------------------------------------------------------------+-----------+--------+ -| :ref:`sphx_glr_getting-started_tutorials_03-matrix-multiplication.py` (``03-matrix-multiplication.py``) | 05:52.578 | 0.0 MB | +| :ref:`sphx_glr_getting-started_tutorials_03-matrix-multiplication.py` (``03-matrix-multiplication.py``) | 07:13.827 | 0.0 MB | +---------------------------------------------------------------------------------------------------------+-----------+--------+ -| :ref:`sphx_glr_getting-started_tutorials_05-layer-norm.py` (``05-layer-norm.py``) | 05:24.641 | 0.0 MB | +| :ref:`sphx_glr_getting-started_tutorials_05-layer-norm.py` (``05-layer-norm.py``) | 05:32.552 | 0.0 MB | +---------------------------------------------------------------------------------------------------------+-----------+--------+ -| :ref:`sphx_glr_getting-started_tutorials_02-fused-softmax.py` (``02-fused-softmax.py``) | 03:18.076 | 0.0 MB | +| :ref:`sphx_glr_getting-started_tutorials_02-fused-softmax.py` (``02-fused-softmax.py``) | 03:32.089 | 0.0 MB | +---------------------------------------------------------------------------------------------------------+-----------+--------+ -| :ref:`sphx_glr_getting-started_tutorials_01-vector-add.py` (``01-vector-add.py``) | 01:34.829 | 0.0 MB | +| :ref:`sphx_glr_getting-started_tutorials_01-vector-add.py` (``01-vector-add.py``) | 01:50.020 | 0.0 MB | +---------------------------------------------------------------------------------------------------------+-----------+--------+ -| :ref:`sphx_glr_getting-started_tutorials_04-low-memory-dropout.py` (``04-low-memory-dropout.py``) | 00:00.476 | 0.0 MB | +| :ref:`sphx_glr_getting-started_tutorials_07-libdevice-function.py` (``07-libdevice-function.py``) | 00:00.501 | 0.0 MB | ++---------------------------------------------------------------------------------------------------------+-----------+--------+ +| :ref:`sphx_glr_getting-started_tutorials_04-low-memory-dropout.py` (``04-low-memory-dropout.py``) | 00:00.279 | 0.0 MB | ++---------------------------------------------------------------------------------------------------------+-----------+--------+ +| :ref:`sphx_glr_getting-started_tutorials_06-fused-attention.py` (``06-fused-attention.py``) | 00:00.072 | 0.0 MB | +---------------------------------------------------------------------------------------------------------+-----------+--------+ diff --git a/master/getting-started/tutorials/01-vector-add.html b/master/getting-started/tutorials/01-vector-add.html index 4447503c2..3917cd1d1 100644 --- a/master/getting-started/tutorials/01-vector-add.html +++ b/master/getting-started/tutorials/01-vector-add.html @@ -105,6 +105,8 @@
  • Matrix Multiplication
  • Low-Memory Dropout
  • Layer Normalization
  • +
  • Fused Attention
  • +
  • Libdevice function
  • @@ -328,7 +330,7 @@ for different problem sizes.

    3 32768.0 76.800002 76.800002 4 65536.0 127.999995 127.999995 5 131072.0 219.428568 219.428568 -6 262144.0 341.333321 384.000001 +6 262144.0 341.333321 341.333321 7 524288.0 472.615390 472.615390 8 1048576.0 614.400016 614.400016 9 2097152.0 722.823517 722.823517 @@ -340,7 +342,7 @@ for different problem sizes.

    15 134217728.0 849.737435 850.656574 -

    Total running time of the script: ( 1 minutes 34.829 seconds)

    +

    Total running time of the script: ( 1 minutes 50.020 seconds)