From 47d1c5feca263307c1191699e04bf887e32a3b30 Mon Sep 17 00:00:00 2001 From: "WINDOWS-8IMA9MH\\jasfu" Date: Thu, 8 Aug 2024 01:41:46 +0100 Subject: [PATCH] rclone basic test --- .../workflows/cloud-runner-ci-pipeline.yml | 103 ++++++------------ dist/index.js.map | Bin 14784413 -> 14797291 bytes game-ci/command-hooks/rclone-pre-build.yaml | 3 + .../tests/cloud-runner-hooks.test.ts | 2 +- .../rlcone/cloud-runner-rclone-core.test.ts | 42 +++++++ 5 files changed, 80 insertions(+), 70 deletions(-) create mode 100644 game-ci/command-hooks/rclone-pre-build.yaml create mode 100644 src/model/cloud-runner/tests/rlcone/cloud-runner-rclone-core.test.ts diff --git a/.github/workflows/cloud-runner-ci-pipeline.yml b/.github/workflows/cloud-runner-ci-pipeline.yml index 440b80c2..7b238ac6 100644 --- a/.github/workflows/cloud-runner-ci-pipeline.yml +++ b/.github/workflows/cloud-runner-ci-pipeline.yml @@ -35,20 +35,6 @@ jobs: name: Tests if: github.event.event_type != 'pull_request_target' runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - test: - - 'cloud-runner-end2end-locking' - - 'cloud-runner-end2end-caching' - - 'cloud-runner-end2end-retaining' - - 'cloud-runner-caching' - - 'cloud-runner-environment' - - 'cloud-runner-image' - - 'cloud-runner-hooks' - - 'cloud-runner-local-persistence' - - 'cloud-runner-locking-core' - - 'cloud-runner-locking-get-locked' steps: - name: Checkout (default) uses: actions/checkout@v4 @@ -61,7 +47,7 @@ jobs: aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} aws-region: eu-west-2 - run: yarn - - run: yarn run test "${{ matrix.test }}" --detectOpenHandles --forceExit --runInBand + - run: yarn run test --detectOpenHandles --forceExit --runInBand timeout-minutes: 60 env: UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }} @@ -81,17 +67,6 @@ jobs: name: K8s Tests if: github.event.event_type != 'pull_request_target' runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - test: - # - 'cloud-runner-async-workflow' - - 'cloud-runner-end2end-locking' - - 'cloud-runner-end2end-caching' - - 'cloud-runner-end2end-retaining' - - 'cloud-runner-kubernetes' - - 'cloud-runner-environment' - - 'cloud-runner-github-checks' steps: - name: Checkout (default) uses: actions/checkout@v2 @@ -102,7 +77,7 @@ jobs: uses: debianmaster/actions-k3s@v1.0.5 with: version: 'latest' - - run: yarn run test "${{ matrix.test }}" --detectOpenHandles --forceExit --runInBand + - run: yarn run test --detectOpenHandles --forceExit --runInBand timeout-minutes: 60 env: UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }} @@ -118,48 +93,38 @@ jobs: AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} GIT_PRIVATE_TOKEN: ${{ secrets.GIT_PRIVATE_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - #awsTests: - # name: AWS Tests - # if: github.event.event_type != 'pull_request_target' - # runs-on: ubuntu-latest - # strategy: - # fail-fast: false - # matrix: - # test: - # - 'cloud-runner-end2end-locking' - # - 'cloud-runner-end2end-caching' - # - 'cloud-runner-end2end-retaining' - # - 'cloud-runner-environment' - # - 'cloud-runner-s3-steps' - # steps: - # - name: Checkout (default) - # uses: actions/checkout@v2 - # with: - # lfs: false - # - name: Configure AWS Credentials - # uses: aws-actions/configure-aws-credentials@v1 - # with: - # aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} - # aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - # aws-region: eu-west-2 - # - run: yarn - # - run: yarn run test "${{ matrix.test }}" --detectOpenHandles --forceExit --runInBand - # timeout-minutes: 60 - # env: - # UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }} - # UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }} - # UNITY_SERIAL: ${{ secrets.UNITY_SERIAL }} - # PROJECT_PATH: test-project - # TARGET_PLATFORM: StandaloneWindows64 - # cloudRunnerTests: true - # versioning: None - # KUBE_STORAGE_CLASS: local-path - # PROVIDER_STRATEGY: aws - # AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - # AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - # GIT_PRIVATE_TOKEN: ${{ secrets.GIT_PRIVATE_TOKEN }} - # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - # + awsTests: + name: AWS Tests + if: github.event.event_type != 'pull_request_target' + runs-on: ubuntu-latest + steps: + - name: Checkout (default) + uses: actions/checkout@v2 + with: + lfs: false + - name: Configure AWS Credentials + uses: aws-actions/configure-aws-credentials@v1 + with: + aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + aws-region: eu-west-2 + - run: yarn + - run: yarn run test --detectOpenHandles --forceExit --runInBand + timeout-minutes: 60 + env: + UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }} + UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }} + UNITY_SERIAL: ${{ secrets.UNITY_SERIAL }} + PROJECT_PATH: test-project + TARGET_PLATFORM: StandaloneWindows64 + cloudRunnerTests: true + versioning: None + KUBE_STORAGE_CLASS: local-path + PROVIDER_STRATEGY: aws + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + GIT_PRIVATE_TOKEN: ${{ secrets.GIT_PRIVATE_TOKEN }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} buildTargetTests: name: Local Build Target Tests diff --git a/dist/index.js.map b/dist/index.js.map index f243b1f68908fd868dda2ce7759d2af13102f607..0ac72d2d722bf335c676a5abb9ca55f13354cd9b 100644 GIT binary patch delta 61368 zcmd44cX(Ar*Ef6x(tB^aoj@Q7gd}uGfl!qmI?|Gm93T*qkc6fnK@ku^u#lxF#fkz# zKm?R-0Yqs^5djH`s0adfQRMy2nzPS23Gsfszwf%<_sJjG`|Le4d&=r-&6*V(=Xrep z)O?SMxh`|-&8rTNa|7oF%?+L#GBPps-rPd%!H(oX|3!suw1 zG(XyK690}psx(5ypC45k;FA2Drcla4r6F}1nI1wpe=ELJvQSCHtLGLfU2r+SP|;jU zE1$LK6d$ezQc4R;AX&XLf~cccj2HELObJD)O|fbyO?^!1NUwBF3!pzwsos?PaatH% zcnlrf+$Al7f)*($^iunzdR&RFUplggp4g8O^0>~PRsHDV<4Ph8zMK|Ht4^hP z(Xo-~o>Y;FDLQjj4fRZ#WGySp9cQJzhtfkmOQ#g|$t@^~CztD~YUQ7)?o{{{7V?wn zdPWGE&MV9yXXnI~4?lw+I@D%0d(%0_-P_DN>=s_2r1fcMTZ$GI-{Zow)DiO__|2*l9Clw#M z_%3?GtyDBkaHBhEYC!EG^)68eHF_F#d6@m51`vp^g_h@*7vx#SS<5Z<1?Pc;6Aydi z(@L=H))7%N_RT>b7~Z=?j7Sv4=q#L+ZV}=9&8QxzF|r8 zc9)Y)`^KgzTd^MXwk^$0f4rWFTFaL!tKPzKtnG`Ce* zxk71=f~Qs}J#jHsDkZqYbRHW;3SW&W<9X%J=dV`MWVwy2l^*ooq4c0i&oob-MGAXC38DAKrbY1_I+3X6uPTi_ z1!NZ&m6g-#Hi?_-q*U z^|Ca<{f}#uez;`5#sue~*OYYp+VvWvGSk0~-7JFi&AwkxqLl7@e=*IHPFZU}xNf|q zihoCu2U9EN;!7D@(3PWS+6X_rR)vmDO}t(D1C70 zzd`9Mp(p#TFFa|>21TKSW$8W?cr(?Lsy8Tpf+B{9J9pYuy3EV*(W+ZzfuII$dn}_ z&6SiYB^+IulX@zI=2j_zWW1#WcvwJ9EOBv^dkGCZSf$(}x*0+@JY!wy^D3n${TO>+(?U@!&pKrmNpEfI*;+rZ}-%NF-es3xsRJ9TGk>8fS z32?68?Vw73Z%p@+J$ma+rGo_V#4VVCfGtdypSY-pQ-^jj9@Kt|5-Wk1Y0J8v8Gdx9 z+d(&4AWJUWqO`+^KHj1zxLn@Cc#!;-(gD8;<;A7^V7+se3}wN)93 zhwHW~QMkOfmEYak$^;;6o6-gktDjE{rP13I3-0&5t%UhIp?M;xws=OLZ3BbcvrUP! z6{1_)6v3_e<$~LWFZJK2Lh12cJfin^Dc$U4+{xIjv~&77X*c&}5Wte&2d!OibWwjnk zEA}bHc1%u9 zc>t8O)87x-~~~hY=f;7_XAT-14!-rIQlKMW85Cl3zu&8kEE> zC?~flzqGgjWG!zZB$6B^8#?tpgr$7x7qDSa88@0PeuC&|;zdCH+%fpnFBB$U9zTTT zpLVCAA1Ti`(VA-CXM8-z78F`h$;J#*K31Ag zo0E`fmX6fisOV#6aF5H&&2J8c(R&~BB>(m?h=j?vJgD_yOf)ku=8p3YGx)xB7;LF? z1i;t-h%&4egL?P~*jil-$|ghanPU;?71NL}_nc5N8rgY4m)yMZR>1*A7FqCDCMA=p z*3yEpGbkrCEsRn^&byLd6H64GJOR?Q!0#D|X(w?9Nx&u+b~$N^4M$_2a;MoR!323( zSEa^z($XGjK2qo&|EkM1rik+dZkYf_5f9Es{4fqTKBTEL=AM5V)$Y%iCypx!R)1N6#>2@$U(7B&eg9$>0 z2U*Tw?Rc@6SX&AVFUdM5pMf~Z>~#4VNYK+eK>*#etb-T5(KEw`Itm7O?F?ur%kk$c zc6w6q=K#&gL((-G)j2Jc)-2bWVo(@yD|ZZO7AWt=&y_SD(2ehu2r+aIPfLbn#Hcj9 z3pk6;HM)hbG&}i57%jc{Mi6Raj;!?JvGiy;tvAks0ovh&APiokZ@*9mqGVCIK9@T9 z9rRchjm4_|o+>E+DlMl=)k;TK@%?QV-%K0tLIK~Ue@R2X0tKBJ2YsOME7l}B9aN*; zM>a?hJrSY?8oc%u(}hkm^b9i6Eq-+2YjEsi_eZ)>U<%X{o1~J{&5}e~x+Rt#?V}0} zO6{+wP>-(_9rwy~h%v{$Rsv|$^vE#t18;oIJ#PLnIOYPESpUkt8EzEtkl{@ur$_oz z=4HhVbs-pO)ca?E$LEoTMRXy7qM{6&{FFjJTvmJoF)*o>bSW%g0CRZ)qF&TDSQuWr zfNueencpaV<$Wd|a%7p?eK@pc7hjgllR;RZV2 z^;@M&9pw~y=_CXj0FJxROTDP4dzv?0{FVilkG@j|(7oR&28P1-+rMK46Zezw=!q-n zXU{9F!mhskMzl{{N>WNv^Eh4syc~owm##34&z-7TXz|ZjF~-QqYv|F`@0H$C3tD~^ zq~n|KnU(fAtVh$3tBPS@UQ9F**Q5!>Q0sCmGc7p@{Dq}gmD%_LE-E#-#$1{2=U-#4 z!}k}iv2elnEq-7DfbT1Q;4(XZVEN$7AD{!WfF6Av9b>U`{I80y?|>;qSd{n#UY6e1 znHL*3AVIFU4!q}~ux_97yyi!MqCo1H2;}?iI`z78Z}|QB*Re+%~q0Ke6=n!YU=qr$^tc!GltB zoLAAYd{&`MX2%$iq<_YMSakOO1(e|G&!!}epKN6asSIuAO6k8~Zn@aXUlc!YFsE_l zyr$27ksuO6DKRl_)c02i<@J6AnXe^LfBzG7Q`Vuz{fenzN(tRS zhzl^4Sm@W^umU{%Y+d)D>$lO@k&96$?KdUPvB31eZ{W6d))tF!+tl0su@NXIe)RtD zXx+IHQ4#eojI>0O^$(WBp7?_)5mbOM`t}bHSqHD}_qEYLl5f~f+~`=(YBw5w3!^gO zD}wgCq6bm&S;N!2KrC8Per|a##dL>0zy^_TZtDK@)h!IKb}yVj;KJWv1}pyrA28?5 zkG}e|jymZ1v5!IX7XQVvJ3uRuRw;S_&F%|G`t2`N!OTXIaT@}Vqpd!-fy8xx-<-Y- zM{$p#x#fA|ozyz9bdCvUphb_H2p%2mmz{6TD=y6~x5keEaqqNAZ%G61C=Hr}M2t$b z07VlmBO90?J+eWfrD#fFp#b2KMcH-K{q&BKfY1GTM=^rxF0yR63Xyl&e6`6x6}YJi z0b6rX8~#HHs&L^V>s{1F|5RjEJ=KlE>#2>=R9ZbX_CJ&pRN=#V|NOPY`l82lUwu^# z#h9$qONvX&%aR07$q+N-u)jFj4xaQ>g@EqNIj?%ELZSxCOrvaHNa+qn8BUYlGy=(W zd!s;lc!MDoE)hi6ir5VZa08|R=lGp1Jps1 z^xq0lg*wcwjkdr>d{3a-$9ynTRb%P_yblGc_mkBZ`qQ(0)i|N0hf(q%V0c;x2K8!? znnInD4u)3#44UvqkeV#$L z%t{3F$sPG16`d=`m$W_z$}6l6FD2j~{1M$1WjH41$k_9ys5 zW{~O%$ap?V-A*C5$wGTP2EwWu1v;FftKs!KSW*PAMNp28H9r=uwv`{hajFVdCq;cl z{@{mdM;#!LusB>laGv_z;q>pc7 za@#djN6Tl`kAC4s>l*@Jehb#3#6mtp`4X?L!UTyT8ojax2mHN>dI6J zv(!k)1HrUA0C%2o>b?IsU*@E;c=}PCIsp$Zo@o&Ed)==$q|Z{c;?q_Qf@(wM}nW_Cot0Q ztyWvo*#xyUYuhv@Ru!(U^d@QtTwGoNq*rvq6c38Bc?ay==^U*~Ru!q?^_Zaxi=mCD znAYVOp-}l!#do^9Ru_NhR$5vtnZ&*nwL9ty3QtMR)kLY0pH(BMw7Dv*&I>){ToM)OoPL|QdU+W?wa-(1rMFu-!% z@iywisJAo|{={)@)mVOCc?uLAlMzMx+Nxvmx^X*oCN3|uQ|HtEY`|2z_G*kM8bVd+ zU^~rH)gII-6hB+FN3B(Jbzi#E9!$PQky-MSTT_9YAE8R#q5*qH%&zizb)(FG^PyNvs`!gNVMb>jxEcPWBa=U=mDw+3+GuII(INVkV-qsXSOaL z>xe1j*3gq+dgf`6n{2E^L zr9GY0H2Kz}vrWEnj}uBlob-vcZm)*fL?e&5JYj5$qkV_cL*QQWqV>rDC%}}>Sg~ob z4(nnE)s;T&4Ezv=8Wa3ZknlBO5g5GSQ))w=Ym`7d$m*&J8$nT5wYj7o8@j54rS1{Z zP0gxlXcG_~UaR5aaxH~Qic~ib7;u=*-38Nr_oxl=jpTd4M0uV^-=j{xyJa7`mWxIE z`ySwqK*iebvY)baA%gJ`ps}aXf5-gh=(I2ksMetS!Dt$~ z`HKLG?T?=hs&>6e6L`?yiu0jS{V`8$0-DiZ?O$h+EB!&*>Mu%cT)( z#V2gP{0CuTncsCB1Qx{>gOogo3kwISVKk%5jz9_>1Zk^BzD=>XFc=v5=OADoTZzI3 zse$hOra>8Tem{1w+R^deYk;++xGzldjv`k1w*L^U3d1rws}T)REp_zx_z+cixEwu> zpk2KzUQQJk4aHRD4OP2IveUY^C0xpxE2iSbxe@5?bGNfSZmpYIJ0 z+Ig7T)5!v1=@jQmuMY!^nT1x>uE|hI?n(+$E-Z ze|;n*$usw{g33TjkHm#u^ zlsZ!Nb7$4SMnqr919Gkyi7z@n@ySR?3*0)t^&N#TI^K32g;nLZZw&^~esENcx^IqB zL+V)W>QSn2H`?ZNWu67%$Y`jFj%KHg2AAVzE3(xv_wMlcl-Xd5;pq3#YU8>a)@ew# zDhRf%^%>bF)8dK;vrS$3`)mlx{Kf2CKuO0OOe}w~Fvk=V_{E+a)u`iBzvno^L}ISV z#ZV_xwzEFhTnr#yBf67o)2jQ=uL`FoV?gul%T7bbsIA1pXq4IgyayHaf5wA0*DP{j z40x_%?SR65wYwGIAmW{-l{pB)w7eQ~us=`L{zKJX?VPG=`6j#>R)_~h`Ox@zmVV3! z(5=dstUZ|UHjd8bgUy<6H95I>(Oy2YS}`9y;oQ_)R-jQW;w8eD1jz&m6t1co>?f%` zR?Zk(1HJ~0RTFBrp*z|bTwYLEP(H(wRRw8C`!H$D==q_VK-O&4ZWElU@mm{Y&zfLD zHrlgQ8?-_Tp|2-^9C6Do6M@gXNSK!HwdWS&e|(}dbJ;Z!>adBnDuouRF?H1GSLj^l z!9o*P_LL#iYI~tgadHF#vAV=Ej)AmXoSk zDR7QIo1F!j9$G>$&71-hTv!TlWk-c&wr(M9s_N^LBpnYH(`>>vf!|9ZJHw0vGx~hA zuxF1F!lh|`8B}$)Yp}d_ybJ)ry1pZ{=2+q$gb$61ce4v}!NhuWZaKtebSsc@^6~bu za@2L0dOj$JJ;mXxWjnWJ3T$X@mne|F$$<{He~PJtZ@9meH{G7Xd=oaqFuE~SRfW6t z0kIwguS`=pPRx5-K`;>`sAB9WmTmW#_&GxHq;832@RM$CD6Kx!Z@TL3H5EY%mK4#b zF$3R8nGQOL-wc?m;uap9c4U?6hzOiwMum zV9W5K8K4@rs5YD0fi@CZ6{snupQC$bV;0%F3*EmpU09|Gsof@>|2bP7ieLRJ)GlEF zPFqap(1D$E%d7*-5qm*7A!*@MJv7smZoG)ma%X&A0_MNzh8I3_Fh-UHlIN(gXvvrZ zxScph6){aO&QTk(CbaKNYxwWysUEIE=%>Ad(-9=M6$AHp1Q3as5`&Dln|M*1hnNm_ ze@Go*@)$wwMv2*cqF)Rc!5a`LcRi#E(e}(k%o+c9NENX(ogP-j#G0jia6j{5wza(U zu$pyOYZuQp4X>*+sJ8AMfLYF5)rY&DTcw5tmZdsL$RcPe=Mk9qxZjCeF#-Drrw2F& z^k28JY97dS)gx>k|L_sE`R}>P#*{hpv@jYlk1afW|MEPwO^qpyq+6ZS0;uD@wtm!h zJMgyUe5?(+7Df7PM8eFz8tX>0=VO`~sDYh@5*=Z-^PX!x)_W1?FBd^vwL4}04tFctRs+4OY^K4b-O_w1u$L9&=VC`UIs=7ELKt=`PnXk0pe!UnFVV2`(4QSBgrXAZ+m+$)J zXtA{CaS+&A{X_FDWqUoAKn%g#czSpVyw&9*1~Kq>J9ny>kJ*^hElrV;l9>BO6ulG< z11=o6{Tzxc1u5WhU?L*uv!$|YvC?=v+goo)!=Heaj(zAg45hFjpT*QQHDFKK`vfaX zcUw7ab~@0N07`li@-!2&=bl7IZXbr(?ckHlERCnsMuOo947Rz-$z`n?ROYuhQTt)$?Sz_q`YNnS76+$ z%hZul>FhQ18Jl#NPzlA0Ymcb}54A@DqpKPnuLPP4n@nwbIeZleQ+XV0f_2bK(;V2Q z2DPkV9*v@gD^wAP4I615<=IdW2jF(aZ_1c$!PIi^D1QfM_*Rg*7y}qGhb03L%F@D43&<23N$!!<{bLA=R#(cf8a63a ztOpR8kzby4V!fI}!I{{L(en*e1hU$Bj|uex^6^K_Z(<`y)&`)Q>=wGQ0ivDX z1~tTDLlIflVwqJtvdvyS+Fmm-u3!>^B5RlY4|M~4;cb{&kY^Rv69h_&%_!(XgMa_^ z0KeYFEe?iNGX83)r9kH(jD58-eWRYy{FD8`ZA=MSo~!732{|^|e)M_`j@v zqYBVwubC+JY(NLhFDU)5y8qxNAg;X?ZBp@+qVj)ggK~F5|H)clxY7LeswJq#hgiM= zwRj&ubYe3!fSz9yWTQ7h6dB%Iya{^6B*ByvB5C%U7`%fSzw{>h!cY#54FBkxpcD>{ zEd0}SEW6sR^0*dE@moL^*LWRdX6Z^5S7Arp8`s#2O1I#P%xN;SJHcch12@*FA}xS+ zY=N7T8OoQNK{e4muInjTmGv!{%q3p6zz!(OjdtEt{h{Vn>8)GbTBoF>Bv4Gxv^WZM zhYgi6sfN%bWI2|(=519Ya4%#lyXfUtL-Zm)-wZ{{HAhct4QcUdgot(9riu_0_IZZw z0gVvyjQL>iHlddY|LD;(t=)wT>O(EIt6faLzdJ%0Te;Db+d(`reXs{^S99f1S+tqe z>9jZXecNQ9JOl^F#Ks3#>5M)7wu;E=nl8aeIoSJzJn4`S^?c2n=p8n7W7tCLt1)6% zjCh2M=xT8jJAwq=@MZ$+gm)~*2>fOEbD1R(T9mKc32}{q(kv55-FJc^h-c0PB|)m% z34yw1ard0&DeY2nxXHUKB<+IpxMl^)-US`6?)Du7&+Lw*dR#o@E?Q?9C6^e+_#mN% zhS82OfIldG*rE3#Lb^;D4_h;Y4E6YFgwK7w8!Cr{KbuTzlf>@ZqmFmNf`FJ9o7~46 zRv;U>lUO%d7t0MH@nhgZUG4<%G!I(6m+gs}TU8N41Q9)){P(fuZR}HL)0;^LgNgTd zTu)7Rquu*hnE_X6SRd#v*h`r20BadQurmxQYG)p$!g_A=|@2D z*uubQ!QhnQftZKcM_@Q+h=g43Mb%e?aKG?THAt}F zz5*Jl@+i;dJ4a!*!#2(kx_J~M<_(?Nu^Ol~@EDfLfe8;E1K}1w>wxN65~?pBg9A@S z?byQ+{t(qx9%m?WIfD?_BgY{XJN64GpK#RIh)-Ci5+Wt-`GghU3!j*t_+~WxEbwK_ zr|MH;@`VFF-~{^5@lKB)uX3lpC-B}LCL-(}adASahHTlKHlBc@BsTKVHz!b)%}UB< zNK*Y0bq~*^q$C-@S~OK_LHD0jGX&_E(n=w=JX)t0l#5M+++fSL5iy`v<>FV(V&wp` zu5hG^VlJm(Z*kbPu73^!r9Yz~9O@Lq$oNx|Y{LcIr9u$o5qHGh7Xx5&_GOE7`^iu$VaW=M_h(l6MF_8 zLAEz#Wuhg)wzzf#y$-eu0lYa?a)j$gY3|VdFWDW!Q0!C&6Z0xOonU$@0aXb+Mil ze;)IPwNE1BgAPIdeTyw(!7O7T)#S%HMaae#V$a8G=fOe;j)IQV5qpx!|129`0iDUU zfQBhS^)Da0)5Bjd<=Xazh-KOK=NIZI7mN&5n$g^9j-5n&%TzpSeG#C?5>VbnU^d^) zyQqfX)zPJfg3IQMP|UgK0GyT{%^_pJ(@mQ?L#a&plGVYoFV#6H`O}w(-g0aYX83M& zIX#dLq(C*l_7zryC$94)Hmmix2KZlcNfkReZL_rLlFi@}kc=Jcv%dns6rY6kL;Kov z%Rlrr49nc;dtW02iOs0WWr==)#5$e-w`!p8gyJ!lDMb^DrWF_Qd@2Mei=thZG4C+3 zhEnxqCIwi}njC}-7?G@((3tN{xzJ&N;TSeZQ8BdeG6Ju7K4UJYBPd1$PTjbQ z(WYI6yu?~Nn{+2#Wi!N6S2+Y&tcnciFe^mSmHp{HmHpB@=#AeIP&xk;z(3~_(EFD2qVO~QA+SnoWk4l?B4X>+VPPW-w zKVTNvo{JX=OnzKuYK^Jvx*BEv3fZ>$y83KOX%~5>p=Nm5nJryx2z-38M+Smc8fp>r zdqXXptKoU*wuZ6V19EG!L$9CH9>vx-)O@6J-#$V26WV($ebY`8;Sztg(?l4U+Fp}h zuWh~BYsCQ$V+Ys2bgw2{^>^;odhyrrFmhX753Rahox(=%{+h596i?CG(&qk}a8@}> z9L)x3!n~V5KogrYZSu#y0h%x+=;O3TlsQlnp}x+7$Bu!TE^XRZ25KQTGx8uUNt%&+ z4T4_6^yG&@D7SEsCh**4h?XWVN#r|N^J4qXvXXPI&c2`K-Sh}*oeg_f_FzpFun|s+ z2ctO#p(?+&9&~1+7EQ-Q1N`>;!I)9U$C8I=e$sNpPI)$Kj~Su~nd*h*T65F&R$Pcc zi9zFYix41R^UYX9$g_9N{svX6I$-k+e)mw` zH)s2Ge7Pnlo%~hVNf*IDiF>tZ5%%HSoiSq1_dQbz@|{2WpPN$Y>5+&AwM^H7$bYyd zJVwTFEtz`s!4|Qh!?i5i@T(&^AMDD;eFmj|b6>GafSO{jZ2Mr$HSpG!n#YlEZ}=)r7^jmhBZY^{lt>~FRTFGep-@bda=_m2pbD^`%%SR;QKSuM<%eLhU2`?zvE6q{i^5h=h{NT% znpnlVt)*V{U^dL?@8xR3H^%~;{}?Td(eOsGrqzD{D+`svLa*oX(%Tr16yxkF5C&z- ze)4xQG@_s%Q^V-a7)^K|Q}Qq(7EJang{(SFHdDJv{@~k7LGK*};3LS_L`013o6Lr@XM4iTJEzu^@B8ZI&OgOG0MFQ?Y z9NIY1!Uu=+xBfN4r7Gc_W zo^!xt6h$rsQtuuQRAzAYT&Okh?AB$V+<)-bcumB}n#zlS)xrV|atL)AaxR?q7igUO zC5*l+&_tw|siJ^{i!kZKB_Jo?PSQHkn-efd$z~^L!z2@AJ+kjat)Bol=UfGB>exR~ z>xCA1+gC~60mFx^P1o&bRXt=J;|p&WTo#j{P^L@V*qN^^fPpj|Z2{@TsOT5EgwHk76@ zSYp2t^rEgYWW50&=7s{vuj@^RHkXFj%kU#KPDTuX0PJh2tixg4|2U*+P4}doWLe~I6y&S-@*fqoJKY$<{ zo{3@)swefH!ZZdoa3Aao_e){7bn+L5}xuxKXF9e?5IOrYX_`30z#4M~h#%vKXA{8jvDadpRRmzl9{ z|I<{t(Vq_jOq}QI??<&n2ih0U)&`0Z&(`{jK~w-exSv@Sm=l;JLTF+IFdLh+V@NWH z3ax`g`Rf$`Uz@NC15zIX zW=Rwfg0bm&fc_>tiHs^(3|D&cAwk52#12u~hYmdiND%ULrTb>YMLdj`tlK``EzMtg zG0m2s6N;AD4Z8YafX4j~V;y%Hh-JFleJm~ zF@a%h`xbBdbS|i$bzOP@Rd<0!m5rfwt>nx{fQP08@gKohou`eZL)#&Nvt_$-o;KL& z=bd?4U-8q2hRny8c>=x=ra;!mm&^wYJKz|S5FQ0s^1nQuUeaD9x~Xp_g_ zs$)()?lCPFFO5auN?$yt3HK20?~%GF&)JGaEGN~Xr`Qh+1LR^XzG)rtCSD^D_h3O! z{b=f9%&vr}nr`iOWY5k`oq&2k*~~>WHWf~ zB3`4CbUjjt|BdO!hnkx(EMc>}2nuT34IBMx=n8?)Ep1nh5O_^0wGVDvVu7 z27=s5c40f*_PC_fI<>$$tzS{$4EwwPKNtYC=hz-au(SCK}%5S z;q~dk)bTk@b>p5<(6qgg)b>@)LbJt=`j?*5?w62hZo?6-W%ik1OH(sC_Pn;%&SAai zi51L2{_$&rdh7_IVJjhYu)4GuDg&Bhkuj&IE?6Po_gbZiKpf7-SF%bIx=diNR-r!D zqH>`cutop`2&28LFhtO1Wb;|2b+cK?gwq!<+^ENDNWA9TP@1_K@*X4p>#H@fljYKC z=4`Pq@Fo8Rt(&=OV&xFzDT3C)ryG-D*&Zr7(KkMnU14D_0x;PXw&y;ieAqMloEzQy zBARz#U*J29J!r;@=wGX@&WWEwh3RwBjDAzfv5g#~kp|V>FEZc0{Gv7;-+>a;oM}>3 zhM{d+|B}{G(4;FbYoltLyvG*ijzfUJw75hH%7iY<4v?DB0ocOUfG)j)#bWzS#I(H# z-FX$J2Zw4<@~SpVzGd0-u_t4FD0q$bAwD|0S6l?`EsJrLR_!xoF~Kyo6Sx!tW;`kR zHE=G_lu+qNy1ooqUz(K1_|`1qORv5L8C9g;X?nNorsk7biI(!xDU$lQzs}&1`?@xQ zXM=MRIs*CrcwK8Md(DyP9oK?d+ers+4oXeUoOjm%OzP-15~;SR%TUce*wy;{5 zE`JTfMa)p;eq2$Go`^vG9{aQqTdnGWh$L9IPxIHg6^DVne0)J!QbCCw4*%SuiS0%G z-vTVR$3J;5bTB*$r6=Cf1Rdr3&);G*4&Sfcfw^zKRcm2dSb#rt@e@cN^S81Jb@QvH zA#{2xE2@m*VcWD$(rz$*8ykvdZG%ko{x((?e%}U=HBrf(CcUILBi~{Oz@xSUj3IhD zXYgc@y|5JCiapy|uiLjyZ%+YlvneV5Z8l(ad0T7CAk_cKRK&Qvt#N>iDA(d0Xpn5) zVOtXO^P*p%m_PB3CZbXHjcXD@=iXs~uw*^dv-lfHv)Lf7f@i!|$xQXD-Z~t!#+Wh{1?ZjIAo3^ue-PMVvOw?ru?459|z96LX zm!NcaTg3kNb2;S6+biQzrBST58B8UYrZ5`M{s8QN`A+75SHkGteVW(`I{5?e%O&;J zxCzt{vKsTXzxHWUY@Ect7r6T8RB!3zb!^#X9xFJQbl4y~E|$i>2YUE&Pe%2XIec`|9-@Q#JJ@q~-NM=WT>D2pLne1u^ zfeeTM1$6r!^HHxYK)e$lKtSh#`S0fvW_3U6wjbsOj>6oqUlaRMV_t+H=J1BYW6)j- zg)n^iQtJbdHCaYvS3=bRkTxkY3a2+_29eDNv=L54W*>wY#6^mekm?|79b!MCnq%uM z%7xRX2epY#*0frlbk<^E7K@V&m;oTjEh_XGyu}`Ok@aNYA@qt}xYZWyu4DF7(E|$2 z+MXHyB8e6vH-(Z^aPCT{dZ z(m`y97fr3W35oB(M?fg<3nnL+3J;rBi5fnC3mrX$d4V-A@_#S`vQOvNkD1)XOhY0y z#7j12aG~LcHLl5!4t)Y>?J=zjS-lP-L1y205%yz| zVovgl5OeHc15MV0dL7rU)m%6cxr1GiV(}_J(I&_{&W2F&7rZp|4#0im4h^oFPtA#C z5Lodkdd<~L5U3Rc6b`?%=DZys>p`@VeF6~1E~>iV>f{M6-qwS=A~b@j(@Ag`j!B<< zQj0ZtC%t)680*|%8FN3yn8dv5-cyj`*vO2PhF4S!VaX{rR>F`g;^0k$^P#^t<7N73 z*tA&EyxS1mRvHR8a9H~cePpvB&%=z*V5Q`Fr~zQkSwsDr0z%P?#*}mhwB#SY(UNwa zVF?=gTMGSpMhIyl7Zw!A2Gr|35Pk6HHHPQw4MnA>plrMqK3i-LilTp|JmiZ#7PHT4 zqopiaE6X3Ns|n|v<}Qvpqz*?4*>fzsVD4Jc(dGlO`*6@uBs_dqiT`RS1*yON#T&?b){MzpH-&rLDQ&=iO=+=WI%(v%I(JBBS%Zi`ttK;XcTwalgdi0d9-gZyrXNsV&&-|F15G(mRl!@oSIe{E8`~W@NG0DT>?4dY$O~p z;~=BcE&+i}GU`h&U4mf35iTg=OXn{^K(xO#Bfvy$^IlL^mr+txU@9vDbY$Gx0ciLPAy>>jy`6b4+z6g)w&+vdA zzYIJzOZd~9m$e1{{AX;;aFqL>MzL%MB4B>F27$)DmNk|cQ14FtegKj) z=%ZmzJ3vCn_#w%YYQVp3DbN0ZxiMSxueFpmSVvpF-h~BYt$8!@3MInvn)rIc3^cI3 zxWtBdVlW;S#6{Ur(J?#$*6zr8;0zA7E@(Hj7ad&?Q{wG3GFiw8s%m%A0ek<1sP6RQ zO&bCF=O8ta6La2hr%H2D$K8&oaIF=<}oi_6Nha?8itMr*km<4zlXge9J*j}6gP zTNB-Ua=I3jTJy?_OJ~@FNsEW18!~ll#828#j+m?uN_RJjj;`U_IYD+qp;CvwomHGK zb#8Xfr2GP(wyFOWgH4?KMSB33A-`(2%r(vE;IGWNzWEi_Z-*fw;WtnldvJ^g&OazZ zSh&pl@$F3run+tOJTaT@NL`mg?G%$`r9xti=TC1 z6$doO&>y$8A?Rb@zqS5SUf=jP)FqC*Lik<)-TWH@9_s}uceLIpX}JTj@Z~#zH@hhe zU=u_?-+>%vZIxbY+mgc+CKB`t%az#j$Ojo%#sD7Mw4!}qAra>1ZhWdhPM{v@2`@o8 z`!pE>qujAMltUKTk5J;S3paUx4{R2C!CeT^E55e1FYx?}?)aaygeKAXZ22 zKhZcdc%Xbkv113ax=gj_PLFyZHipIJEgt$ny0?eeiXb-PID-27dFoLz=;HxTy{o+Y z#8YqQFrZX^g#6zPypUaUbAEAdYtVXGzr4 zM;CEa9D}=3M?RNi4x2d=vn!N9p4R6Ab#u4cRGfHF z{SKi0=RgkYDGI_En+EaR^8FAzKt0?u&4rQ$Ns=sof=RN+X?hT7(1jq~79P1f2`8R} z2J77&AY$*ING>L}`*h076WdbiOj)@+LKpE{Hmj)-s0%NZbDWnwSX|^fsBPo~zbnNa zBnJT9nlUtxR`1Vsr;I2BnR6_m|FhVPQW2}W`VA>AoHEI3iNQe)2!lfCYbaGk>C^DV z#?gAKI&FcEM(aW+yAZ7llPom2X4F&RltZk|!K5HksqI&EY~AKmh{8Y~qw2OyL7Y8^ zq0G$Ss5_Z3>e6v|J4vv{i^q9e5wj*@16FJLFrj$|N=J2&jxRE%aPk+VWF0A^l4~f5 zwyl)E>AHx#vzrNU|BuQJ!V22Th8YpuEV|f6$iBM*3$GP}bJnxS9aG&(PZV2!kzs1- z7l@nI;iPqo(K|SMJ_G@tl_+EA$Hu@A!X#@!40iGZXAGPhv!$9FoSJZq$GQ z6!+28zkx0|XW#Q)rJ@VYimOqGWtE(P>(@{l?`S8tI({>1`rof882GH|4Ho_?`Bk-i;ai8OWA5)+6xIs>ZsA+%X^dQp-4A%A;W#n{waaZUjC|3mn)h#r`;QcE=> zp-rX6zVFtI%NASnMF*U=^_s8DunpK_3QCKMCLs{P9=2h&CuP?%c~XH(Pv*faaMX@$ zkb-CB@3egOc4`vygxpT%4=DImUSSjLN z3tNZi;pp`7F*-+9h+UQV^7!i~{6kTNQ6L2HOhjNBuki4e7O^`dI0B;&eR8 z!;pc6H4}$4v}CdF>nqa9cIS;Iv#?cUC`5ElFP}0v!;`WI68_m?dJE}yLOw2>5GvD$ z1Y$!c^eV*L(9Irj53zVud7u8IlX%6`pBeZplEn|#M`9eTRwNYx3_M3b5aU4iU9-=5 zQ1%GWE{b&ek8P zz0SNZ-<&lssz5Ftq(0^@V_Y}`*iXSAcgb78S?D4F+; zfzDAYd}YEAy&a1Gm*BxcFMObw4ZJw$-jeUDsY%LJecH?TMx)U4q|0J`|e5!^E-n$2iziqms zDXmaXCQZrkpu%S71u@hjpS(wQ(=u{(!}^vs!vaAJ@A)R`a{2WIN6SrICl331@UJm7QU zESw9$5OMmE)&Vqh7GRRy9uLma<3(^hwk^*B+rBy|14+W~%LoeT23xamNW{lYDIeQT zlJp;EA)OT$Zu%e^U?T#PkdlN(o;3PFwr^PKRm0;U?>9UMn~ZrNiyKlDTgwDFQwYp1 zLvD1!o{AU`YoS$0?joy94=S0XH*tOvE(3pnbPb#zbNU&7(lZfmgdY3TvlSpNoICH% zY9yC5?gO51;!8^l96*~T*ekPW(GZ=Vg9&lu({W%gzHal`)+iTG*CKG-Fwb7>L##T3 zu&2_LhlHBBZOKD=iHHQobtAnoSKp8O(ns`ir$u7cckFriOOod43#C_zmkSFdjLR$md6+9Q=Rr(F70Wwpx)__ z4?}%2f{F75RriEk!&3lq>rKrTf@@bjsv{sq1O}PUGUd->Kam?P>43Z;&n^VS@d3L` zg8TJFqqi37wsP!8G6`oQJ+x2{@w5rcWlmXwYLPPpjwX?15zOMqekPNrb9BgrMSv^e zHK`0Unh|)$Byo6wunNyvq^}i607QEw%;NMFBa4XPyWQiu>VWo=$MqLbI&g_Db_nGx z(Tn90I3iVpm%?cve1h8wmg>naHL3!4p3nz59<_Z^4|4oM+d4h;q<$}2#zK#!W6v5* z=)R})HGqISPeF>TQ5MNQmvL}0$~K_G%P@?(eR6&?;;<`hTM@^caFOpxz;dSA1($S?nN{&|D>tm|v=D-Y`jPer17M|yA ztt{*eF%+X`I?BsJ;Ld$S0M$n{n&pE8yS19VR2ckH0@r)bcxl9px1=wp<{Lc%i7`gM#wn83I2(ZkQ`B374&Rj~wa z(dxPIJc6<`bWf0Y;&^rA4ZXxkGg!I-M9P$(Q)ESfU-lD+a7d30y0JNTBjTu>VP15< z#)J4OUF=dev7$(fEu3yFPjHvoC2yE84W-!f+hvEFFgLj0eazoOXy)BbI`3z?`yjs- z)MB$P90i4&_11MCo!61BZDyYiio{TxH+8X*CUKe`g`8FnVZrlgA|_u6G>yX!pXrTa{g8j%g?(X^r0o|)7@$PR@Tsu zZ`GTkGMnz=wgD5lZ0BvD%3PMi8W)M5{9@}iDCIR?;2hZP0C;}eYCAIUm~Ug~#%a~l zW0JM33?5LKhW**?pwL`E9)~URX!9vZ=eC39GMJ7o1=!!1jh-}q8<^oh3I@T4-o|ho zB>rwuB!KGhS%!2eE-XZljWyqb^o(T^JvzU`2AY_V^C9w}=jHEUY!3DH+B*>RM07hv z?!f-LC&MwNT880IN2-7*$(vx!XTFb&2#qLtnc+icc0hr1$Uk*-gwUuLJ+M>vVy@Qw zlo}_}0)^7vo$xx9()&C0;m%o@las-25_aiL?|PWMi%(*jvl}jftle-%?B2!xxD&gW zJ(|yjHw5>>7W3+EeRTuK#=__;{@_-ySj4_Z=STS5m_2%DzZwte=6SVExJV!*G6>bI zKsSE}@AKS?<#Vj-k2@hTcijt8$xHf-cspw^92IQr!OuoA4cy&0DNTSt2oaVLuupiY z&E&JT=z*6$F+_0dg%5N-cT$YRmN!=(rAYmI>0s~$w_e+Yz3lm zH`lFFylaA{19ovj0$sjt4LvhWY^qAYbv@=T=}dUe=d*%P*cj zU}6zt+`a?MamAUpqKTIT}WJZ?t@Ay!_htM&(rHJ@Oe$@U$ z_^J49>JK=9#CD#NEnv6eLrl5jD6lIZqQ{&Z9s81%gqp`cH~MY4?{&2#J=(fP;p6dlK znnmnu|NaQt;B*tk$AFvaQ3&vi*DRR#I0^RY$o9YZ6}#WLO+Ene(NBN} zY)i@Hv>)t_KS&}O{!V><$e`hN=Y-hLFUBw1I;Qw-8JU#2CdDV_Qh zgq!QKyE)(lFo5U5K4$830@Xwjvp=>J~ zf+5L^2`%7@UjF!4m&yqotyX?S;sOMpgWA;^iUhgTH z4eyir?mS!4JADn(C~8peFEC4-LY8xrfpBWX=On#RjWvD!3m5|*If+=CfNDT~%mo%- zkpK?|GJKCP?BWZ|4DcXaoSljjw=RGlur-6vd^TH(^eLN?muI!+V<$uc%{dA4B^nee zGgmFSs7HEoiLx?VHntko8`%4hK<*b=$~EhWC^6iN&>RksIe!t|uGN8Amq6|kzl1Of zt{Wtistf9gI+%z|!7Xfq7A3vx`N4$%j=Vl12YcPc{l3OZKJ*oUocT|`uOUd(Xsm(f z)Z9XxK!HKC?sj*HR&`cI!>wz+z$Si?h1ITW@&_|M0Soy4Yd|71JeHwaUdEEK4PxPC zK$o4c0_vhD_$xi!jX5g?A&a3m40n9oCG_#*=Rhh2xSCGVbJX)&437ye@|-oKzh1|7 zqm^kEAr#vrM`z%)1F+*1#!c=kp1xbm4!{0K%=ulo%!e#ay-baC+et%8N`r{un3Jr|AF@`>M%I; z`vYbRmJ~SY(W*c6(I^DKv55eCmUZxwF*?`}>B&20T&7dZal~V-a)I$b{}zx68EZ7x zSwePr<`&D7+|v`ccr1%QZXZE0f9hgqtmySN`V;Oi+1a=L0_JjO8SKCO3piqmE%vlT zdnd+3QODbC;^*`vuiplH=G8fL8&l0;N$vmUDdKhd@NdXqa3F?~eh1@VNbazGi!U91 z9C6aMWQ9hO2>1jAHBF2v;=1TMl@; z+G$r3LV^abv{kV2r$Co2NuJomiUWPAezSygG+{=*0=@;Gr0Kt?L?3sv+ z8l1a^&2=jSkr$`h-zaABgG)^aFoajv8Cp33A^8|0R0y7rW|a3gDC_P!FsLSf5B0#I z0{8JXgbdGymF>PpZ)sR@&`73AO!wK?;+W+7{ESoyuP^!;LUKCoXAG2s$n-a4LeT$y z5YqyTGBY+w=zRraE%De!g5WX;^deR|Fwo%C$4O4cSj-8|@Zu&^GKNn=&Cp+mKY={^Ro~gybhRs6Kj4lNmLX~DR*CvD~$DH^=NjtiS8Y3l92O;yP zouNi+)AqjCiNKu+12zZ($fp|@FNT<$5Dsv(iv{5EQB)XiMB;NCZ%4SVB?ovU!AHS% zqXQ8}Ulc?#!PcbqFhr<|b6Qc{Yt;K^q;vZ`(&&wsEEC`~+9XQB8MrjNHG1=CA5|Eu zu)i~j-iu=BxELjnoPy#Tg-}>D=GH+4bD|A@Gr&l!h4@1fY?+fEC%Jpkv0DZ-pJ?z9 z5qHdwu0{jt?Y{zC5bEDeF`CwHM{JOx*@__&N8!?f?kFro@O^vL5CJAQ{`Oht6GTR# z3WSUic(qhBqCMi`qzzL1ptPmye1)coAHwGC;3F3_Lu5k0^KgHNT(J*KPl8}L#frcZ zn2{r0r$Z*AVLJFRXjl_kvs@FPa7ag@6fqTEWmanu2nsLw6TCd@GQq^1%A@RgU&X@46vLN9gD>TF}9x!eX&H9g6LV&l+lb1wk$lq7)4GOfeBg?J8{QDTiRpHV{1PeS|< zUjv9-7zt1Fu{btW@wW=Zk#0Gc$e?@TAuKu~hpOW7>4D-*K=EmJ>9wVOO1jNO%RRUq zk0s!J2`SM7T`7ey*37@j*D0>r(X0FfLu^W_NHBy8^m>BP)n{P00X;hPmYf0)L;$^b zPP3bEZx=Q(2FOPpD5@!F0ds6eivyYh{-Qf&Z~|$jSUB@Jj@CCdL@dj`(;~<#(MY6q zC91!`v*1KS$Wp!(MbaLXOKvzuWlcp`3WfNPDBHIX*uXIR8O4cpq-i6{tUOI~`HCiqsIhLMd= zGW-VFtebHuVrQT-Pb`O{n++5_4)WoCw#W#Zsm&HtVJG}Ga=&pe!=+8R%}NDK&UZ#0sny0&N5Xq12oRI~?7cfLfy zw4yyI1|+My4km%6$%B4u5A1d5Yqd5v)YxiZOA8?g7n8}QsSL6gQw>?43zFIffx)$r~|2+RL4VUxOR zqccfPTc5Va5~Gn!;|1%Pp11jV%AwA zJevlx{(DEGhggJ21XDBV9+wGPyR0d6@@K$voI;S^&jiGP134#;!m}U>>4cB6^jb@c z5|{=ps(NsGGy%`T=*dpNUpumS*mxuH_T*8WVJq_JEcjjM|EcXuz^bac{vU;VnI}O| zFK{+aAcA0qDT9LZgrJzFqJW5kf*_!n1CC|oZ0gQgE6piqBWEoub4bmx98fDwD#fAR z(yae)uYJxv_g=BL|Mz^K&$Hy-bN1b5pS{;!d(8`?X+#?w6tr`733zxLr7i8grZwOk za;A+EWEpm)CY<}bjS`OqY}Hl~vLr|)&d#e_o%r6i@Q9!e&$Pv{NsgBu?QrgDPFBvm zRXYSz>1Ub{<#};CyquowqVfd1R6cH}SOhE^^9K!sDM-%V<8~k?bR?r}nF9}PPdtZ~ z1kZ)9Z!ZwpFQx|nygg)Jm9RMTfDRyk)=HUX9Wnj1Is0~0gy*kW?}E>#Iub#&-l(ds zrb?zw*VP>AuGEyenzfykmW0SgiOAgRDX%Nt4S~R}JhTh&kFXeyDy^P}#dUdFHeR|@ zSIi~pSP!~yb>MN`alkC<3Py(zm{iDGhEp{{NJDD!Z|TT;cf;D-VEgiJN{ltOTY9?O zT@+&cpP@WLi@Pf?@r2Y^@3M{El}94}b44~7LqZVYOwPZ{2CfP=pR*ib4js?`mwThv zK9eUOISj|jKW&gJ!!V4%aurgW*72dPV<^ zNE}cn7vel^gdVw88(~te+z5>88n4PfuDJ5Exd@tQ5|)f5G0+J`KpvWC(%d4gmjmy(9doj^2;`Qq$|h{h zw@?ul%6~Nqp$pXp(C~l!Y}MT7!kc%*R_#y>j?7Ge{JgOi+heC{|ej+=inG>Xu%IEy@Jyv<8@wDoQohnp&F@o;Fr7I!{Q4P(WUl7Jk~D#sd$9EM@M(4qeDHQz9 z_VMwUBPph(!tYvmoXbqdBDTPJ2n8O{dsFc965&2RegY{uAfE`1do|fJS$d=Xkpp7* zjlNJ!P*?&v8IMkdiB#9_i6>Ss%I4`lU_Mey@nk|n8`l9M5UWb*SUFLukoBO(v)(Js zc)~;)LFPn~+o$21jwIx2@?-|iX;K+biIl*pK%+~O=+slaaIG*x4T7QITkDXSz$v7f zpupR%Q?OM?c~249;R|tSem(`HhYq6$Q%E<_dMX|C_!G?6OvNb3MM~u9lRU!Lm}YFe zVP(ChDYxw8^8Q=_&8VnDX0NFhYH_`;nc!FW#y8LvkzgWD#JAkBz9u9E9xwwZWV%Ul zGmIZkvGt<1CndzADxY-V*>wHRn^+E;t}k0()4KNLX<4Ab)YU(Cy5KF$i*2XY*R)P$ zz_va}pJx+?3?O&6S~95CrWS{lKb~bx0N{XPgBDJ+Kmds@pqj7nKzarXNG(K>Pj_c4 zj=c2^%Bc2_QB@y)pa}0t_c?@&5p!^2knArD7R^yIrKC=-n-z1EXtb?2m()|FUn4YH zH&+pks%lJk!F&*hqy-QXqvk2_ofC?<#{AR*5Ur*2h|uFg7%!hkQmwe@+715EA?etR zLX$(yyUZ6#pfdC|Rd^R`T{!dL1*9s~9zqI0wSVD8gNET8gNl*Tv3?-TTnMEt5sZ%) zDl3Ug;n|CnyUvv}c9K0guoT-<{I0BWsj>%SDOd00)l#%x-t zES1fAtx}uu*HrEem@3(X? zduDmnwW8~&n`FJ$6W7t)(q5mq9{XteI_UBAwLHI0nJw3n{Hf7I&5!Exi zx^}QR^vlr);9rom0Vk{Qu0pP+c#(+mdf636m#hMoKLq|fIK>5%gl1;vDxZx|I}yJr zTpP+jD%w@EkR3^DL~HVIw*e+adKc-2)yA8(Z2;=%&hvJFw)~I;D`reVEf4Lu122#K zqvP8+@JpK&cVg6$Lb;f;9bhjUw^;H1*7Hb`xj9Y&6Z7pBCEB9W%YdCqEh={3L0Se{HzuhNTx z_gJ`4`bq^vJLvDT3W-r56r25#G66qvE+g$=Mvn#FJgt~{t9FTgR}Dr4J&YO?%qMMx zk}T|Fyv>|4NautcdftIA`dxMBX(B1zl#NIZh;}d8Ho3GBdbISqFwj8P;Kg@*ti(&! zb8pFIC+@jh5&7+v-8gWmz88?#55 zhaVo_qlnBbL3@cgfO~DYW2bzz)WDm2X3h2jW`0-YQCbvpgF$2vv zuND;J&+}`?wBz%SDNUrW*xa7M4#M{UHYHk)jHj#)9$KycRzL1}91CpLtWhqHj>qM4 z58&)6Yxv*02tNU4(z=V(6QE4OZOvNYMXAhM^5hRNo8>>4U`!ZW%fLM&{RK0x5h+F9 z-xAD(7808)R$Qn@K|r{mI_1o{*8u+GIqx8U!`F(Fj&&V#iaU)OM6X%%EYwgSXTJR6 zSw#@6L1!@|LTB%*x)u&a4yb%2X&atX3~gQrzuz5-Ahq%BvoMT_#vT@pi?TDQl`m;a zze?~AuuI9#ATHAfbw6`5ndlOMteL|_b{E-}pFIacNuq1R^Em0or^k@S)l-hOiMhGt zRtwH!`UMr%p21MUQZZETJecl#>d(n9K_W@>c*5ur9{TOVtb%;=-3E?5@s(1}5KsKh z1xyZkIh?wH9YkbY5L*!uNu>6Li%JCMjE+a-29ovtnr>)VQ!@0&FDf;0yZoXOBo^g# zqz_+QPI}|juLOtkNp}?C?{l@B&hzx^*vzvp(eZ70`@|*ESzBH@JUZN)5Bx?kSy}{z zBq%-o)Ld#Su7fBOyYEABq0to_jifY~ zctz=0r9eO)MK!J}dogtFJmJ`#UcaWat(cwhYpDmtv8@j z1BqHTD`T-5eadM`|I1=kxf&P=7SZ?rcTxB);q-FEgzP1z8;Vzzx$R8cw4{+U?|%b0 zLJpggZs54q)eJjsfD-E3TUPE9fSa84I1^xfpR1vi-!HVAg3$*4|WvBhBNR zG>38Dfv+J;6?vgxHOQ5|1}Bzv%=b8HE53tjjTVewfD&fqcfb;z6GD>|Gbg0_Hzd`I zLlDD>a(l;gsyLIC&d)rG4&bL(nBc|q171Nl_@5q*(i6$Ipf36CCt{xWUnGG}>>ioG z<=AjUnW2T?iV30W{Gx~u#-q3Bv=lWv_@Q5*x~F;_9d0XaMVJ|ijNO)#V_ABw;x-5f z%$2B5>lEb3pNaw^jeba%I)#Wkw&<_o6!;i{vT(uYtzM0pb1h|!zG>$EIlxX_y zejlPGi8F@uq%Ue^WdXm6I=GixWwr5fH5c zbLhu6R$_&<8z>oZ2i6$+3f-T9o9<)!s6YA{ti=Z2=Dup8*X2%LmCaFT+f~Q8ppGyF zoN|F*QpJ6+N)@R5&{mjt`je}H7S{`!s1i8H?g9TWaT zYEJq*{Xe7{rq5?_-O}#?dx!>ZfG|AB&M(jSW7^Sj;uhc;wCvm=Nnul<-T)AV3+59#@sjE4G! z1=bhDhShJ@dO~xO@I(>eUUYrg6WY}D`I^ON_NO9(#pyaeJMy%r!1dSvR3e}MmRJ4+ z&t)}vb)Wx&TBj|op5pcwo^tT1{_fNaS6e>+vAKT%p{yQ@s>dstXI-;xS`bX}Ppq1* z@x}#f-t>kpB;FGJ!|%i zqQ1ZZVV)tr{xD^~0FT*J19O%9mRkGUi_b7XGz5|G<7EaGFAXY4=VU{q`W5-)mO9AZJ-Dk8xfS<0Fl7A`1}`Kt_l7yx zIvyy-5u>%#0-b|L(_(Ml-HC;Y!&r*mo%0Zy*DGTvPxprOv(yPvHWAMKPHYusB-NR< zl5Uuln;JWzFI6JE_mB+iV#+FAuZYAOJ7#G5* zZ7zg1*IbyGb~jfx-Ngd0dAS1LnO&~5f_Gfm46VwNsM<5u4Kqgk)@C=1gJdQ9Bv#8Y zWz>)%Ib)#6UzGq)$xU72Tx*Ci4b6h&landcdt7WA!hg8ned~*A5c0ddx@<>VJ+0 z28*1u@Z7i+>%@fr>#zE5=+1lTg|L(`A&Z*j%et{SScUhuk zjyDUm%SlS1Su+AH#Cl<9VGao+1{db%45k~-NPZ^1Xg3XgvIceRMzm zwedpQ?5YFDoS+7v;1Fq4>2)YWnRtj@a>|Qxz4S>5b9iM?{+Of@S5^!BF@m=aUVeraCNC&Q(oHH`B2Ejc^n-0hB`MojVq1{9Z%-hbu5+tSLLpO}F;uIo8zIEAu?p*{D({_II`Z!o z?Zfu2F8Su;v{1xKL1PTD*t4_FjDH(4gyiJ zQiVC1X|ZM5l`AsDGO;c@FYPmp>d}GPzaE`u6YDYIBzv+RYav2*r4c+6$$$9a?@d8& z5#nPO%(P_vh^^0rc@h;wBlxWP6fX2med-1-DB*nl2PWaU_(-<$ZNL)nt#<<^tnCvU zFcJ5@y8$)7m$JAf9VED9YRH5kyyH1joM_jO&i}OC$o2@OPD6TN{5q5HA4>?PL%M41 z-RcN9{+tiSL|L9$SNJ=PF;CLPStcP;HORvAO*c0uWQsbjeKYcMduC+}<^#QvUn9MF zv{0CyYeXZ`qP!bQvb*F2Qu1^SWl`b;t;Li2z=3peC_`l*Q2^DhG0s=b-H~s7x2};l zYs`A;>xEG@Ag!ftI@lBj?AKzl8gREMFq2e9GJnl@4)tW7?sL~s9!s6!6k05Xtg62$ zN*2MZE<8hoB~TUe>m%FLgf+4m*^vkwr!+F_jEGnW z*!OM6Nq&M#Eb#Ohy{mWy%qWm0!d1Al7Hf#LuPGglH}1oPd#9;5w}eaBe;Yj#a|kzp zh+c3f`RoPu7Cw_gV_Y*Dh9S6ZTQeM$S#uD2>^EW=0LA&*D=1*6H1jPY! z$uVed9BU)+1WCrlnJ5qb_D2~f^O*MX;kSl&ViHWyv z&xGQM$O9r1vhdlG&LI02f)zSYo7fISjl?7h^IJq{C{}Do2bLhJlrr(ZqsiivKBKLZ5aDm*#YAe={hf%J z-IC-l)ZEolfz-E?;Pyyd-a%KW*8-FM)e>fi7*$oZbR)eUXa)SI1NmFY{#eb=`o4L|FA`;qdOv!zp+WZCWkrR{O1|gL++}7$x>m>0Gs$u_h6P z>1APC8JbfpY$>$!F&dRHYMs$Q;8A}I78&vyvbd>c8EcgrkIhw(Dg~cV!Y-8vSmaWTwW%#U`U2 ziC*_aa6wQ!!MV?09xJ$^Q<*N#@jNJy(6r&ty>FA78&Z$lMnAw z3MoLJHH9aYGGkQ@XFwlj(JcKJ;RfSrLxAd@!(YOmimpAsXzeg<&#wOqG861RU$=HOW=LYqbA?# zns7jy^t}Nrq{{Y02%H9DIkbLj@pc387#-tE25Qfz#_I=y6zQWoHxRUf_Tr*=e^2Ze zOOg_n28^Mb9}L2$ercE}{iie25Y$I6wr&tQxtNBj)$iJ;Loa3ity>~;QWd`1EhjIh zSbMWc=_Em|NM}No9(nsJlKc+>cMxYE3s*c5WO*9;2nXqb5iOljPGta_BQqe%lU}?k z7Yt%9M7wG&`08Ids*}uxR<4z4FT7~XP8hgf+qR1h=TWYf7+upKHpx78HNK26qGFJS z5ote{Dl#f0F77eADV33eZhC7>n^2V3D#=3xASZq)4Q zA1DvOInfu4{N!LfO+N&Q;-vky$APaq59Xc5EUt-wC<<|l$znAuAJ^5Pf&%%6>m80-I)>s#P5;HQ}jLON?BnWb#feV#NtKh660=w=H zVIpR7`KkKMAnMJN@y%b$iz3}ZoXkDx9IZvlCEal%i8ARB>lBnr!YI{x$;$$gP+cEm0MJq=Id`DF<*-!!p}ZM zEVGW8r%OhK&msARc~p&>28e{OAv}H>^N>$=DrUk|UWH4MRIm}2t|*2E2}%!d{)73G zj;-WXR8RqaZd+SO9_gc42bo@3Z(Ekt)y}+NIj6u?wu_XDwg$sDtUVNjT(Ew7#IPBm;UVj|xj6b>K z@Ec2c-MmzSvDfqP(t4(lE>nZ0i z*~A_AAEm4tp51OD>tHhpJ0`Lm>(}O<>p%utO#;VaJqCPK59O(Shj1)AYop)tin{Ldk{4OqE8;a}m-T(zW!GYh`-XIF|ETQp= zhh5y|={hH#_$IbDlKew=fxn-`n)AC2KjCI7RZAc2Mkig%YTc-w^$Q%u%8g@I4MsmfA&XOu-BMMY8uU88TiGUGuUMOA&32tnPh{=n285aNt_Yq z;W?X@+RB4(64z)TX%)?!dHGDtziz=L*_O@$zgakN=xE=+5W9TfEargTHLBvkOK0It z&ANNTnC34At0(2wS?n1nL_tv;G79soT7?_s6_M@Nx5~pZ{%D9dcb$*3ZvSksi@F^1 zc(%q`1k3>%&^QwpGIx|efTfvqsB18OeSFYUYvW_{SdhK2V%R>n#G%}SD|5lP6O9z@ zpf|3fA<@V3HO$!nqk(0&{KQa*$ArS6D6ogD*u*kZKoPcCr1U<)wieDn%G+#GRePv04_tuFSmj1)RplPK zwt%Ih!?=ZPB>sH3kclJ>j~BAKw(e2E;o)RBYO;v=i`uP%HPHSA=fJxddF!Y_#v&%{ z+W1qG?_5Nx&2JYG9eT2eg+$u^G(0>r8_Yps{$NqEQ}m$sO{ieAk;U=yzqE%V_3g{~ zVkW9pTv<${J9r7`Br=}Esx}4zHp7-+ziVGnvTq5H?A;|$V_IDcv;J!2!AqfZ(wmH0 zinB=nx^F3%HvMbqGIVOU%&Jqm)^Qp3j#WF#+)hKY=hWozGfj;AuVo;e`p;S}2b)1( z(^rCKlr9HB)4#G6IDalK*9JsQa7`V(_SK0`Tw&GZ=nAN(^H&%!Gh@R zLRY~qtbZM2{))*)me5sTZs;z3by^JrkN!1rwe}3U%U9z)$VKP;YC=2jcbQ1ALHS6; z(ONw*gIBAJ@z>Pg=eS@_(Lx-hHs^mI)Z)!Akrjx+mg(oeCx7XEad<462As}#A8SNh zq~8QEjqBbAs*uSv(i^G{w@_Al(Hd~cyr z+E+&>tX$K`ly+T1{>!1D{X*?Pr}E~hblc4Q@g8v<8~E|on<4D=-pulG;mBsJx}JZ@ zWeeM6@nTf#%Ak(jh&7a1Zi$UnkJYJ12CV=1~6e}YAP zq@Q$I==u=}r8YPPp8$J){3FIR9{_Lht-iG2QYNS~8)N+}91!%3QLb86y}o7t)U$_` zom{5!{--{@q`g6`v!k}IR#MJ6o?jf$ShI1e_Q{}nEJm-*l`J)+gbp`%<5(ch$$Jk} zOQg5yut(EKW$gjmOLyn&K|8v8cn?g1#2r4|11^$OE@T)E-V1tcMGNf3lX&vUm_RZc zSqRx!IP1`ulvfc8l}AI8(N~94C`BeHR4_S++&x4{kbErK zhu`atBxdCHz4C3;$tf>FZJ^eNL94>^VqpMEKphUxfpHEz{V)VbI8l4r2^5`m7zdl) zB7RG(fp4AuHdg;Iroi0n*Tax#^zx_SpRk%$dT=8CFnu*oB|?1Uxf3 z^yd_<6#2u44*ba{(&GtPd4hrrJmgdCx{CHNEmEZU-_cPH+^z98jQLZrWjGSlc9a3N zun%w;(u_Mdxq{R9^iv$zl)Cn}Pq9&nhuc!o2tKvz_c_`XrBNPGKOUcZ#h#ZRVF9j9 zhUMps2nj}pP~?KD*8XT+zVZl;8+wY?Do8qeczk2>k~N23`V7Yv6`>A%3LV$MzR^ZL z|1<3+4jJp4`1#L3_UJvSXc@UNdw$L`c-BUEPLzHwPKkaP@bb@rZS=H5pR;7~3ro-K zW?!HebDvI+@Gr86`g1>|eYyB>qKm$t^lwJ2)w&M`WZG#NR7|8)$! zkWQ={9EbR?i!SK4voyg!I<9R%^1}!_!CI-=2B)4Nu6O+jaP8C)a(u|zBU0sd@5`M= z`=b6$2iQ2om7G+`zlS9MFN^#=w6lH|Tbwqm@)dM|R(sVz&1k}`ZM^6BdomIEtg|Ev zKRipagQX|M#B(f0SJbJN04*f`mRJRpdEJP%CuzxJYB9`V9w8Z z;(so%Wa|!+E&~15JILrHZtkQ`&-NW4UrG_fX4oq)vUb*;{B#jZEZ(+u^T_A@D)JI* zYW*vc^2c8S`$kyCFOd@DhfAc-@&AStIYPF#^xT~gCRsMBL7>jco8Pbm>z=><2DDC$ zhw=+0d<#Tw@GTuu_$=&d_@nTp-?IAV-(gYIBtw^ElWN=Hjlg?Wm&S{5 zueEYa$wDDbM3t%S++K3w?pKKy(Rv~!56UpAw;cJntJt&pnY#5V>u+Y8oYYBbaE)~} zyJiZzddW4`+v>u(Yor0*mK=o?N#!im>Sp(HR?j?Fx{ii;Y2T~Zj!3>)gYPQGOcO(Y z>Oz2vaYz;%%fM<1XM;Tr;R@q%ogCY0UuWIqbjHWQb8zZ)h8lLldFOHk5=d8G2TEgN zYjSpjw9jYmBl4m6dmLtSZh&-AD!xbVbyHZuQ-M$hT2mS_u$(w_`lu( zDsyr>+1Mq{jUzFyt09jvD^pqogti!}!_!z#w;+zu>N&+c{Ww%y!rRgw89K9NgAE;k z8Fb7eDVR|teW=Ox01MJmqD(`PoK20rq|z=L?pC|QUaVpslkZ@S=`Hi_;M^e3B7}|m zRXtVw#!r~fKkl#~E5r_}U@2A?##OLhRXnVs0_r)L7z3!yO+N`SQ{b!~P+j00hq#=( zICsYULhK-{%IvydvrbLVGl zH9BDEq^R`^i?KW@FlGL{^p`40?y+Aql8bq(!~gz;xP)4F3IF2n0(G!)yyTk{-6bv+ z>EC5KdZP@<6t7d4-@W@>)HmK^&8ryoqzBC24vv{3>eg2#|9$lyv^^GQ+@5&*#6CRVk?(k*q2QKPID_3DVjEk$RojOw!ulm> zqt1GW1AgvQu0CDU=Cm|U>;yT;BCMHz(T+x00+DSSPWPKSPEDMSPobLSP57KSPgg=@E+iO zz#70>zz2YJfc1b4fQ^7nfDZwi0b2lD0owrE0XqOY0lNSn0m=X$19k)U0QLg*0rmq9 z01g5U0S*H`0elKL0{9H@Ip7PxQNWjgV}Rp;6M&O|uK=e2rvYaGUjxnp&H>H?E&wh9 bE&;v)d<(b?xB|EexCSUMoABg1TlW6|if;*f delta 56917 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 Hw)X!3=<3Z} diff --git a/game-ci/command-hooks/rclone-pre-build.yaml b/game-ci/command-hooks/rclone-pre-build.yaml new file mode 100644 index 00000000..392d0b3f --- /dev/null +++ b/game-ci/command-hooks/rclone-pre-build.yaml @@ -0,0 +1,3 @@ +hook: before +commands: | + curl https://rclone.org/install.sh | bash diff --git a/src/model/cloud-runner/tests/cloud-runner-hooks.test.ts b/src/model/cloud-runner/tests/cloud-runner-hooks.test.ts index cb849aaa..4ffe101a 100644 --- a/src/model/cloud-runner/tests/cloud-runner-hooks.test.ts +++ b/src/model/cloud-runner/tests/cloud-runner-hooks.test.ts @@ -48,7 +48,7 @@ commands: echo "test"`; const getCustomStepsFromFiles = ContainerHookService.GetContainerHooksFromFiles(`before`); CloudRunnerLogger.log(JSON.stringify(getCustomStepsFromFiles, undefined, 4)); }); - if (CloudRunnerOptions.cloudRunnerDebug && CloudRunnerOptions.providerStrategy !== `k8s`) { + if (CloudRunnerOptions.cloudRunnerDebug) { it('Should be 1 before and 1 after hook', async () => { const overrides = { versioning: 'None', diff --git a/src/model/cloud-runner/tests/rlcone/cloud-runner-rclone-core.test.ts b/src/model/cloud-runner/tests/rlcone/cloud-runner-rclone-core.test.ts new file mode 100644 index 00000000..8349ddff --- /dev/null +++ b/src/model/cloud-runner/tests/rlcone/cloud-runner-rclone-core.test.ts @@ -0,0 +1,42 @@ +import CloudRunner from '../../cloud-runner'; +import { BuildParameters, ImageTag } from '../../..'; +import UnityVersioning from '../../../unity-versioning'; +import { Cli } from '../../../cli/cli'; +import CloudRunnerLogger from '../../services/core/cloud-runner-logger'; +import { v4 as uuidv4 } from 'uuid'; +import CloudRunnerOptions from '../../options/cloud-runner-options'; +import setups from './../cloud-runner-suite.test'; + +async function CreateParameters(overrides: any) { + if (overrides) { + Cli.options = overrides; + } + + return await BuildParameters.create(); +} + +describe('Cloud Runner RClone Hooks And Steps', () => { + it('Responds', () => {}); + setups(); + if (CloudRunnerOptions.cloudRunnerDebug) { + it('Run build with rclone steps', async () => { + const overrides = { + versioning: 'None', + projectPath: 'test-project', + unityVersion: UnityVersioning.determineUnityVersion('test-project', UnityVersioning.read('test-project')), + targetPlatform: 'StandaloneLinux64', + cacheKey: `test-case-${uuidv4()}`, + commandHookFiles: `rclone-pre-build`, + customJob: ` + - name: 'step 1' + image: 'ubuntu' + commands: 'echo "my test"' + `, + }; + const buildParameter2 = await CreateParameters(overrides); + const baseImage2 = new ImageTag(buildParameter2); + await CloudRunner.run(buildParameter2, baseImage2.toString()); + CloudRunnerLogger.log(`rclone run succeeded`); + }, 1_000_000_000); + } +});