From 834c88147b51835c7e8f30dca900bd13c1d1a4db Mon Sep 17 00:00:00 2001 From: "yufang.wu" <2435731537@qq.com> Date: Tue, 19 Nov 2019 15:25:12 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=E9=83=A8=E5=88=86=E6=96=87?= =?UTF-8?q?=E6=A1=A3=20(#1081)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 完善部分文档 * commit changes --- en/publish/publish-huawei-quick-games.md | 4 +- en/scripting/assets/setting-vscode.png | Bin 0 -> 27206 bytes en/scripting/typescript.md | 91 ++++++++++---------- zh/scripting/assets/setting-vscode.png | Bin 0 -> 27206 bytes zh/scripting/typescript.md | 102 +++++++++++------------ 5 files changed, 99 insertions(+), 98 deletions(-) create mode 100644 en/scripting/assets/setting-vscode.png create mode 100644 zh/scripting/assets/setting-vscode.png diff --git a/en/publish/publish-huawei-quick-games.md b/en/publish/publish-huawei-quick-games.md index 1c923ad1b..14a494dba 100644 --- a/en/publish/publish-huawei-quick-games.md +++ b/en/publish/publish-huawei-quick-games.md @@ -2,7 +2,7 @@ ## Environment Configuration -- Download [Huawei Quick APP Loader](https://developer.huawei.com/consumer/en/service/hms/catalog/fastgame.html?page=fastapp_fastgame_devprepare_install_tool) and install it on your Android device (Android Phone 6.0 or above is recommended) +- Download [Huawei Quick APP Loader](https://developer.huawei.com/consumer/en/service/hms/catalog/fastgameRuntime.html?page=fastapp_fastgameRuntime_devprepare_install_tool) and install it on your Android device (Android Phone 6.0 or above is recommended) - Install [nodejs-8.1.4](https://nodejs.org/en/download/) or above, globally. @@ -140,4 +140,4 @@ After the build is complete, the generated subpackages and main package are merg ## Related Reference Links -[Huawei Quick Game development documentation](https://developer.huawei.com/consumer/en/service/hms/catalog/fastgame.html?page=fastapp_fastgame_introduction) +[Huawei Quick Game development documentation](https://developer.huawei.com/consumer/en/service/hms/catalog/fastgameRuntime.html?page=fastapp_fastgameRuntime_introduction) diff --git a/en/scripting/assets/setting-vscode.png b/en/scripting/assets/setting-vscode.png new file mode 100644 index 0000000000000000000000000000000000000000..fd0f6275f0f1fbb7d7597b6afc81457af8e2a807 GIT binary patch literal 27206 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 H5%T{4lueRB literal 0 HcmV?d00001 diff --git a/en/scripting/typescript.md b/en/scripting/typescript.md index 3229c7ea2..1c73bc062 100644 --- a/en/scripting/typescript.md +++ b/en/scripting/typescript.md @@ -8,8 +8,6 @@ For more information on how to use TypeScript, please visit [TypeScript official Many of Cocos Creator users used to use other strong type programming language (such as C++ / C#) to write game, so they hope to use strong type language to enhance the project in the larger scale team when developing games with Cocos Creator. -From v1.5 version on, Cocos Creator supports using TypeScript in the project as a script language. Users' source code can be all TypeScript, or TypeScript and JavaScript mixed. - As with other JavaScript scripts, the TypeScript file (`.ts`) in the project `assets` directory will be compiled into an ES5 JavaScript script that is compatible with the browser standard once created or modified. The compiled script is stored in the `library` directories in the project folder. ## Setup @@ -24,11 +22,13 @@ When editing the TypeScript script, we recommend using Microsoft's [VS Code](htt ### Add a TypeScript setting to an existing project -If you want to add a TypeScript script to the original project and get the full support of the IDE such as VS Code, you need to execute the '`Developer -> VS Code Workflow -> Update VS Code API Source` and `Developer -> VS Code Workflow -> Add TypeScript Config` in the main menu. This will add `creator.d.ts` and `tsconfig.json` file to your project root directory. `creator.d.ts` declares all APIs for the engine and is used to support VS Code's intellisense and auto complete. `tsconfig.json` is used to set the TypeScript project configuration and can be further customized by referring to the official [tsconfig.json instructions](https://www.typescriptlang.org/docs/handbook/tsconfig-json.html). +If you want to add a TypeScript script to the original project and get the full support of the IDE such as VS Code, you need to execute the **Developer -> VS Code Workflow -> Update VS Code API Source** and **Developer -> VS Code Workflow -> Add TypeScript Config** in the main menu. This will add `creator.d.ts` and `tsconfig.json` file to your project root directory. `creator.d.ts` declares all APIs for the engine and is used to support VS Code's intellisense and auto complete. `tsconfig.json` is used to set the TypeScript project configuration and can be further customized by referring to the official [tsconfig.json instructions](https://www.typescriptlang.org/docs/handbook/tsconfig-json.html). + + ### Create a TypeScript script in the project -As with creating a JavaScript script, you can create a new `.ts` file directly in the text editor, or create via Assets panel's context menu, right-click on a folder and select `New -> TypeScript`. +As with creating a JavaScript script, you can create a new `.ts` file directly in the text editor, or create via Assets panel's context menu, right-click on a folder and select **Create -> TypeScript**. ## Declare CCClass with TypeScript @@ -62,56 +62,55 @@ The decorator uses the `@` character as the marker, the decorator is mainly used ### More property declaration example -Declare value types: +- Declare value types -```typescript -@property({ - type: cc.Integer -}) -myInteger = 1; + ```typescript + @property({ + type: cc.Integer + }) + myInteger = 1; -@property -myNumber = 0; + @property + myNumber = 0; -@property -myText = ""; + @property + myText = ""; -@property(cc.Node) -myNode: cc.Node = null; + @property(cc.Node) + myNode: cc.Node = null; -@property -myOffset = new cc.Vec2(100, 100); -``` + @property + myOffset = new cc.Vec2(100, 100); + ``` -Declare arrays +- Declare arrays -```typescript -@property([cc.Node]) -public myNodes: cc.Node[] = []; + ```typescript + @property([cc.Node]) + public myNodes: cc.Node[] = []; -@property([cc.Color]) -public myColors: cc.Color[] = []; -``` + @property([cc.Color]) + public myColors: cc.Color[] = []; + ``` -Declare getset +- Declare getset -```typescript -@property -_width = 100; + ```typescript + @property + _width = 100; -@property -get width () { - return this._width; -} + @property + get width () { + return this._width; + } -@property -set width (value) { - cc.log('width changed'); - return this._width = value; -} -``` + set width (value) { + cc.log('width changed'); + this._width = value; + } + ``` -Note:The public, private modifiers of TypeScript does not affect the default visibility of the member in the **Properties** panel, and the default visibility still depends on whether the member variable name begins with an underscore. +**Note**: The public, private modifiers of TypeScript does not affect the default visibility of the member in the **Properties** panel, and the default visibility still depends on whether the member variable name begins with an underscore. ## Intellisense @@ -175,7 +174,7 @@ When you enter `this.myModule.`, you will be prompt the properties declared in `  -__Node: If the declared property is modified to an Array type, but it does not take effect in the editor. Please Reset the component through the component menu.__ +**Node: If the declared property is modified to an Array type, but it does not take effect in the editor. Please Reset the component through the component menu.**  @@ -227,16 +226,18 @@ So for typescript scripts that contain namespaces, we can neither compile and mo } ``` -4. Press `Ctrl/Cmd + Shift + P`, enter `task` in Command Palette and select `Tasks: Configure Task Runner`. In the pop-up dialog box, select `TypeScript - tsconfig`. This will create a new `tasks.json` profile under the `. Vscode` folder and configures the task of compiling the ts script specified in the project according to `Tsconfig.json`. +4. Press **Ctrl/Cmd + Shift + P**, enter `task` in Command Palette and select `Tasks: Configure Task Runner`. In the pop-up dialog box, select **TypeScript -> tsconfig**. This will create a new `tasks.json` profile under the `.vscode` folder and configures the task of compiling the ts script specified in the project according to `tsconfig.json`. +  -5. Now you can write a ts script containing namespaces in the `namespace` directory. By pressing `Ctrl/Cmd + Shift + B` to trigger the default build task after programming, the script content in `namespace` is compiled into the specified file in the `assets` directory. Each time you modify a script in `namespace`, you should perform a build task to update the compiled file. + +5. Now you can write a ts script containing namespaces in the `namespace` directory. By pressing **Ctrl/Cmd + Shift + B** to trigger the default build task after programming, the script content in `namespace` is compiled into the specified file in the `assets` directory. Each time you modify a script in `namespace`, you should perform a build task to update the compiled file. 6. Return to the Creator editor, select the newly generated namespace script `Namespace.js` in the explorer and set `import as plugin` in the property check, avoid further compiler encapsulation of the script by the editor. This is the complete workflow for using the Typescript namespace in Creator. ## Update engine interface declaration data -Each new version of Creator will update the engine interface statement, so after upgrading the Creator, it is recommended to update existing project `creator.d.ts` file to the latest. Go through the main menu 'Developer -> VS Code Workflow -> Update VS Code API Source` to complete the update. +Each new version of Creator will update the engine interface statement, so after upgrading the Creator, it is recommended to update existing project `creator.d.ts` file to the latest. Go through the main menu **Developer -> VS Code Workflow -> Update VS Code API Source** to complete the update. --- diff --git a/zh/scripting/assets/setting-vscode.png b/zh/scripting/assets/setting-vscode.png new file mode 100644 index 0000000000000000000000000000000000000000..fd0f6275f0f1fbb7d7597b6afc81457af8e2a807 GIT binary patch literal 27206 zcmbrmWmH^C)Gdm8&;)mPcXxtAfB?bWp>cP2cL{{x?(WdI1b26Lm)kk#eD^;4_j-&T z-Me<#+Euk`u357?TuDLd69O&*7#P?m>96A7z`(#;KyOhv7*L8ec>Xo$1KjbOlqgu` z1pX1|0v_;H(-8~|x&QAQJedv|50s(LLRG^_Ltc*8$j*k*z}U{vgwf3g0Ll#p#_z@p z`f6k1WI*g@V{Plm>n1?@PYzzt_rJ+Zq{RPZak3I1)sR;r7PE6OA?9FYXJjT7L?9+6 z=65hQ<^3iu`CoC+l>n)^lM{fKiOJQ~mC==r(ayn)iG_!Uhl!b$iItTBl!L+1-PXy# zjltHD?B7cMryg+=M<WLdfRlxtE%D!a4Gis^odifp|2Fi$U;p*f2JpWdvUU8=Dv*6l zZUz7*7Di^K|F1$$7N-BFd;hmmfA9QT>>sQCZHyoEXn4gOObndt98~S>tOZqUEdU0N zPA2?J|Ia)Br-%H1tKwC3urLAH_}3Ca7JjDxSK5F1`I-Kj`F}C{-)H(yD(ImKB7j=@ zp8*m?xNNbp1_KiYlNJ|Ibpt=^_*6}&?o8PV^$x8bWe-gGR)aR%E~R#PnJ8QO14~y1 zeichGEeTm#Ep8-^$60z)Sm6EIFTqqFU(uAbBM!lrqt9P1jSXB<rW8(UkHziWUwi;k z_AbE4=T!CT_zT>IJK54rl>Nx!6_JP4*?O6$YgyY|h3!%O@3|(YHqVQO1>KVs@B8D1 z`|}ROj~RJ0Q{qr!VmLU606*gDV7Slk??k4CyWeN4Ax<OwzBIx>(D{rY-2)4hyWCsS zdVk+*7f~N?VK^jyda-T}3QMzbn2^Zsd4_7={do5Eg$O3Uq$E}7<;FQH?GO9ZL8&c% zG5oM9tk3rHH6WZ_)v<n<c$MZ@O@Jw$xUyz?DPmpCOz3GiD?-Fs`G>|cejqlyNIOL2 zz$_nUSGUYQ#*WLh=0YU#BqBy!f_n$J^JC)lY<gk29`eT<MN)V5z;h<~wnor<X>EsD zdbm}}HY!u1Yw>JG+zB$>&ej3h{aR`1{xm;Q`}Ei!kGehEP*m#Aj~3krT&7akh=kjC zfkX=zRebc`%4;>FHS37R#y+Z5dO(TV-@{xd<G*d^Q-cxytmxTMIy+{Qn3XzeTF)eX zLK~F+E*Wz%7PI`8xTU>=pE*Tc*DH%j^=)5mR`JX6Nc3n+h6ZEGOw9<IiGayt2sfYH zerbGAJBhH3Nu$pCZX})JSWNO_dUn~;R&W6mI*AL93NS9_=ZRrXp;uPZG22|WMaS<4 z2ygX@#NnScd-de4g*2mg(Aff#jA8m%GtGJtCW=Ugtx>c_am&@X&{3o2Ly&L>kCKjy z!`gK^*i{W+2H)krR5o1S;${$_xN3-4$Z*)0r!jh;J?$x7au}~(n)q-m>kf-X<G<Me zpFN}Gn>|qLFoW+N9#s4@P+8D{G&^}Lw(N)~o@6WXC~{HiO{2!HRm}o8KpU}McF}Sz z%#hHhjCStm<1HtJ{2N6G;H^esa<-8N7dg>r)^|)+5BpC#DR-3dnJdAg#sz#gqbEGG zL-F0KI8)BXp{SX0+!goSYRYir41V@FrPZO58&l!PDk!Zeau3YJv@dYd`_?>GP`%8U ze!tMD`A;+(?Jt9e19&gYNEiqTYuNZ!$O&wIIV_i{Cco^eT0D1&^N$CBFG#ny(Vq-p z*QjT}dCQ9?kifs2E;TP$9P39-k6>Hu%1IQ9U5Z$kwk_1auaTCuZY$8ItfGmMv*K#w ze7DsOad?=*{^C9zJq;6{jVsD6Wp)`isv_=3B!lU{5__TUw2vIPRCLDuSt#FePczLR z`$t?2nWjeN?`v{eDF@);W1q3vSVGQ@hpXm7S(Gl4cj9p!y+G5KRK3QE60hl6Rm#SA zvTb>RF&~p9!2x=+Ys7&dL~>@Ah$`h6w-;MAXAz5tDJtwgPYJ5-PfSv9N|5$}`(Ml1 zf6>oa6rI7%4AGf1;rWY8GTv_(S@+%rW(J$DQlV7^hl*Hh!(irng%-swCKky~7Ceoh z;!yo*=*zU-O%v<xAMCe@Q9{Qg)yHMHIm_hdZRMK5WQ`;avr)oub5zway*}#dme_GN zaFZw|%r<dbDwd<J&}2e0DR4CpE{cmE8lpk<5)E;I@zEB8_eSD6oUcmIGl`{@ixLMG zga+B}Uq?Z;-Yyszx3vereOebkJlMfZp~D~ox~?c~O)!)xL<5f=mH4A$=Jc@E9C4Fb z22awY66%KOz7f^!6d@qtyxk4#A2DG&Ozt>GMiG2DXeD!oFQH=QDfCC7ZwnBgkJY65 z<CtE1o;b`=c`Vmqso?P)b5FIO#Y29_0oi%vX7?ns#YxA3aZSZ7rh|MJ9{k3C_k?3u zDjVjbw)EQ-TNL5VovTt7p_A_SLUL!Qxwd0=PM5Muv&6?Di#l$T1+!gj=XWx}FNl4j z%?B!IeaynZ0=gvoJr-S<8hZ<+7e*trr;(uw;y5y>#l?Z6F$Z#&ckwIF8WMEYb&@5# z^ek@eqlJX%pxdI#gMqZin(I|I{jYMVH6y5ydOR|$qqs{+dwES5ryuDt=VRBD(b|(n zM%$E+^uol%a;CU+$SPN3vaJX8&{<@4Eiu9EV=*6}MN@x^t3D>&>6>63_XQc4sp$RE z%%3nIHHlZ?mM}<M9;%5mm1?md03XgN7^7suzygjqQW}zPvl`qwKDFXsWsD-qAd>#- zbrUyUg1YVs6rP`q=v(wP5QJM5_Q{C4c*~}(i9P1WRI7T#At>86aVpm)S`c~2!em#F za+hl>wjD9kb?T_bAGH{g+Ixk)(H@%AW8Tf_O;rwI{Jr=iQPZrFoo+3iDErM>=|_Uc z*!8=^35t5ct=AM$?bFV!3U{Vq+S}+4aTZ>d9oA|~MZq;}cwm8w3*)#tkR&Pcm9!hh z%!eY1B7F%h9Xeo|Cfe6$IoB!Clwg4#^5=rGneH)h_JX~!+T;-~kI*-(CPp7{g{yUD zL7+*lu;Y^?gw8Vx*~&NqG16CuqrDN4%~?VfP8Tm1^5rZ<P6RL0;WvT|_lu%WbbUve zE-`#K6iA^3cN9hgT?Ogojl?I`f+&%ew=<@gAS3QwA=*~mpPe5-V^UaI;z!BKcrZk5 zz^F$Ba!9^92Dh9IZ$hb`XzixYo*Tj|!j~GiL<vHKUK3@cW)LrfVOkuwpC5CMcj`?} zINc?#+4kz-Q!7}NdAjl<5eza~e-8|xCEVRNgeP_xU{Olau{ikfH;aYM;h@^ni~2Gw zty3lNh|K-Qy+LLGK9g;cdIZjzntf(w%r5<PNI>e1rn;_3_Tb{lTDcMyx?~XNQ}m}M z0ZHU8q=3mXbaBtn<vmI{E-KPkI&tz2Jy!16)LXL{HQ#LhB!TgCDb1<G@s#t%UN16! zhgTkslrMNOXw2RDK;?^s77lPEX`rfxvLP`V0$5P=l~_Rek@jlJoqH&nI1UX$)}?&4 z<b_XLL62PLmqTF`34zd@*>x1%ASutzzT;Z@ysU@RA)b0;`Jsl?K9<x%11=Ay^}=L0 z(m%dP^y`xox625%zV@>Cqp#8rB}3xuJ_$xRa9GE7%JzAOv}A{1tFkOQIoExK(bID7 zXl~eoOp7DSNjnQRFPtx}V^uIu@$?^(G4F9)rzl(sHyO0hcWQ)$a#2A}En(}#t~H1> zctcFY@$L!Qk;e~1oq=3YvEfUcJ^HvL^K=zkEbgG4Nq{=~m~%!m#fGo0XSA(mr*TB9 zEh{5_C&mv<a}kG}RCkTcHUdrdyj<cBF!btrbf-!oab+0I1o8=*vbFrsQu&SZ?)=?u zyAN>Ahzrk-0vB%&Yl+JtlTTFeG}FS#mOaxup$)qyl|uIP7zVeO{u;)gKy?$zT~}k2 zz?`4z++hhrsV;K>mz^GE^0kcZ29ZxiAo7@-gUk$JJlp^3Fl}kwiZn*zkfAZ6tz4YM z89Ol80k<D$V$OmRZ7-JUly(PGAkh-zf6J-$v=J)&eKI2U?A1moa6-i-r#BmyO?UQ+ zS!YV~iuDsb`jwBf!L4@J2bqI{BCX=71HIW;j8F-_$g=}3P6xBtAiEQ#PHnk5P6zgL z25b3s#!AG=<w*u2*<i2D_R^`!SD*98#ACyho13hif&Q;Usp1&lV=PoV4}gppOb2B4 zbXOP?@RaZ^qJArpc<k!E3{*(2=I=4qXk3g^PST@{+YC=nlAD^doBJ2+1AAS=!L0q1 z+Cwys0rcYef;8W|`hzmk?D~?fFWJMQWfhfC1op-#7I#U833VNex`K?ayx>wEseic| z;xYn*=6jH24!n4oM)V?51bFKJ-OdTEkP(v<Phx3~P`v)f<Mp=FslEouhP(@-2XNEL zCVLZ!Y<&Jh6Eo!GZlvMrAsaF{nY2%H*=1?r@o|iOho4w8gFzc4?<wRF&4N1k474#% z`);pfchE$?P3C2u0)uR9_<fn<BTgP`-Oj#Oo!DI{Q)&-)ag4Cw?9q+E(2%rO%y=v! zJ$Gh^t@2~SiD@}zbxf-K-}xUa?V{>KfGFhlh;w7d*p|V%ZOqRZ$wNu1J7#M{6NSma zXjF#LCI@98{@t3##s5;3a7m@a>C2mbw+iOe5)3&{>^y1yCTa#2_*}-)xif#Sn=0eN zfch1;<W_BS3<Zrs-gIx~dz0@L@wFM&yT0@=SJ$H5Th)i*O)}~yC~y&BR8%N_xX(V1 zeMA$4o~JBs$0bF%uXIee#^=-HefdNX7gi0j9+8zGR8I_N%?6Rm|Ngjhxtply;q>~R zy>YW@cQcM?=M(=e7U@k*U8iBZG{W|uyr=jOlh=67*<!+UayjMr|D?e|tOWZ#2kEz| z{!qwN!A8+hP@<vuH)KG?^Y^mJz}2!Q`3&`6w=l_24R#3w68AN^J?9@e6gTq*_!Cw5 zogl{5t`r#Mg~MStZ<<yie)@K2-gO_?`J;S9bJ?7q`%m^UG<gwvNgNE3i-4>H)kf?I zh3SR#9tl`EBj9$e(76($l7DQdQ+b@#u?xtoO_ktA_#3wTjb748QMZQ27aY%8kXL<H zyf2p$lOG*#zQ{!UPizwh0fJ94$1V2<dXSgNUCzBJ4?e(8W}L}aZCHYijqrs8<QbEz zR<b;bLQEafj`K)H$JP5ChsqAv$xpP5puEzqqw)Md{V~*lbg7zkEu^vOIlIqxg0K8; z>o=zx4DXASEYo?TT|LZHGYm+slxV`{(El?`<eUzs7OavF?c0paCydW)$W>1xp;OIk zP+cB)OCtC8=fR$WSDbFpK(4?e`54Y|txc7T10BGNRVPH3>5tl~b%dY64@*x?8!!(Y zdu+L<R5;C^x?404B!kmF5S_n9n)B4{D(ZLR>MkRNWH&az?R;vi`iH)DJdV3^*Bftk z-X9b7#QKPLUG!Fc>|IPmZ_#Y?ts@cn3pE~fz7$<XI}(LR^m!;yIFS51sBv)q&_)g< z?YiFrtp23Fth|5;UWM0P!Uvw(*v+o5hfb~Vxgu9~JP<ZtH0lL&k-SO62_&WUh%vWZ z*j$#x@NK)EwQ%*WOsqpbbRJQ9;$LFf1wLF6Z#5ijM%#&rd0u4ZvMY~mmFr;-JlkAK zGWMxGO|%ymF)cNF6TBX|3c+^ScVvoVD8ARVdV`&Rz;xR*37|}M@(os807vn%wO+QJ zeGz=e<SIWtxjj^v<A3Z6Tq1UD<|k_Xvo4_gXW>AP{K4nyyWjR%tKmieXZ4Jqp$pxi zn|4Ic?tYW&uvP9Gnaq*=ZKxhD&)P7uI&a%HO=4yfX-C{g5HW}ZEzo=5`_Z|yq%*Ww zq*PG<%&~F=fAK9D1g_3K!TaBp!PByx2u(gLLt)y82kVdMk0V%JaC+{;cz35`)E?hs z%>}{jSb7stvb`_`uNu{x>v+1Jzp&?I5Dp#+mWkypr07EEb=*a|940JPoOubXKFT1O zy&quv5AwaEcLGCDK-nBtDlRRrw&&-+eTxUp;!{irM1CH2!!8%hDc8E#rY((hG@14z z`KCUbalO7_LS+9J_a6Bwztr|U20!>L`1sol%NUrx#3nrFUZzf{LZaSbM!f=vMzi98 zOs)=iGoNWH<QV2l&T_o`EGr(LErE?-p^m))?!2I~wl4}kK?Ywt_ij#f;U7L2W6st@ z;2R&fr26U|F#lcVUxS6WJU3o)*meT2=qAn}#@XAh#lS93HZ}BU8`gR&CpJP4gg$V& zjJ~LY?zn=#KRR}S1E<z$EzxuSTe4xozW@cql>bgSkds1(Fx<_WcfkKaCBgWgE8)cR zmo-0r-L~s@_(kr+I(1YonKJMb)mVwihxM{$(xh8T;~(OJ7_MJ*Ghvjm4JpTM8y<xv zR>d8?=`{opC-$!+(QiX--tBxjcVzd-b8PU$qC{>h>M*DO+jO@JX|5m%cPL$A@lIPC zA7cU9;>35%ibe$g#6%3hyJ?dQo3bS85GMGuR(v?sk|FKte|>WZ>JEtQaU?GZBL&rS zBDFaXe78WufdD}XK|>ZbG9+**<YQhtw)_07Zg$t=Lb(l>$U$=1z2G+9z@bJx_fNl3 z{r%h=&^EuOfX3Gx>RYEgVoZRrArxx_Y5D5VaHjWm;o1<yc8i^HUHDW$_dFRfhGJu9 zxP-_*)7%9MoW-GS<^EU8KR!+?)(^X-!p=}x>95WHYZAgytLKd!=8XSX2`VdTdy=W~ z`5!l}?}|1Q9N+e0w9q@)wPhCsyZQLD3qFSEw^M5;X2il$*BcZ6CY8$t(W~s@f|Iz= z<O0Q~j%T1$?qdy)zvwWD-+K>J`|x1jJV^<EKb4$bZ?x0zSAC>DiIgla(#xZd%MvdH zPO3RL-eBY?{v(ycvojI9W9cYowzIRIbyjFB0Fg7o)D=QFg&faOD_A`u{M#>+%W2Gg z9HzLC+CV_0GLkf0ey=V{0T;?oIcVU|<3AqIBNn@4I>h0c<1l&$y+heNFCvdku1`@T zfqJ1vZUR{y$kmV^JlyLqd})G@anBu)oya5iPk!nldxbAs1Q{`hle({?!awx>I5kyy zalDTD-f%RpY+Zw`I=@PMe)Y*ej|5!F5(U*&IfYH@<g$D`uK7Z2ND{>AGQC6<L9z)I zT(q8?09Go9f(8ja>4il1BoZu8?)Q10%(u!d@qR%5OwL5kg>^2*{IlyMGgYQI>ta;D zr-1<@NcQVVWi1#zDw8eL<vRhB$y7cC@@RH%u9?V+Wp}(Hfgi3D)sISP0uKt0r|Mju zBhiZaVCk7_7K%O%aO_$}4C>f}wC54)a~sAe{4pGOKiIB!Xul5i9_PaWo%R>?tLd|$ z$@cdJmNj25$oJO@v&|UTjZbD#<@!GYi4#ZhHbZ<pxU`K&%aCqixAc0kHW?LOfD4-& zKAUrdOROb7(yR#}u$b0S#veW|03UBci@a;|m2qmpE>?coot|>A0)8G}BFra%`MA2j z8fHS(s*IjrS$Hk|f+c&5n96x)1H%p?ixf%vqFUJlqZ)@hG=e>Bpms{q54#Banm0m9 zjb0*@s`$8kwxhcyL*oP0dzVmN1)C@E-9?RehN^W?%pSmyZJ)!oXrMO<`@#TjiopUO zEk|4FTS`dry0=$F0P;{_fxWbel&i-R-YAccH)=1)bw3Bk<v^^9kW9N~f5hTTLsUgR z{%~E~xdX&>TE#owq>Bq?a?hEI?rgnh0ymnqIuhsR%x7#begieV$E4o&&S!iVhZ+~C zp~RPku7|446TKIq1zp$gUzYPk$>{g5dZV0>JdvYh)HGtmZ1B-36ia9Qe7e9X$l4{H z#Y1r!iW{|<0p<Aa;vf@vzvTUZHK(2&MAbicfC@~p_`DA{MB%hc%}pYfIWcQi#dVL# zIqH6Sl@M>xI7ADLZNp@e#fO(D^VOTOFz1qb*b>MQ?a8;gS||291Gu{r;@`2QmZ*b2 zoSHWr9uIjLL?5k0LF2r3A_S=t_1+P~`z}ltnDcWo?6HR!@`3lUN@3_`#Z%8O^;jXh zHxJf~`yzIV^{rDY3#m`1>ORTSw>xdqnJdemFZPW2c+K@qFso(DL&*Yb*f2vfv$txi zR%yVs^UjA`mSn*dw?;l`r(m#Z@N(Bo|Kh-hAm;oHqxtFQw`TMU0b2$fCOfwW<i{_b z+802)EmPz?+9=;I=ks=$BaWO=)rfxD@DQV9Q>93`5eC8t(8w&aF1f(9Q@~R3s6j7n z6rOicg5ldDJiJ1yIZ}yS4e}tqPkuG&{ljcHa;fc5#X27x5|M{!iezyDt*Y}Ua9U$k zF<$Sq7z0&0v8DJaSCQ<Fi1#P4kguWc1tG!lB77I99#h-fs<ukb&J_>rf^yvlX!s;3 zD>v78Hidr<{-CitQO~FDv@|fE^7cF*2KTUQ2U$Re5T?tpFerDiG_K&{g+}EJA853+ z&z{4Ag|3=Hwfkx>keO0)wXist4o!bj!{zO~UK^RB-ubM5s2ymSWY0*m`y|rb$Bets z@vh^6KmOBI;Iv~WP(hkC=hDt+;A&U*d7h~^dj!Bkeh(e2-Q^^tt-7TqaK9g9V8MTm zw3-_g-zCVpO&>XaysyaFZZN*{AbPdK)!X!;qLemI1uFwUdxv_T!Y<-d`M_|X+3Gpb zh4$nPlEMDzKG?Py#p&@o0SEowG5O_=6tI`9-rM!u;rpq|<L;w&J%X*WLcn_aFwR@! zMaPdY+TEZTsTFY8|4hGlF&~wo!&DUntP&!`bN7<Yll1!@EYO0^{_G7$&e2Z9r8?|& zY0aTlRLT2BET&E$I7gKp7)yg-cq|RmQqm#it6Q@k)MzT^UhKC69&*f!D_o}IY@daw zdH)A*jytYK02#UEx!@o*oFs#6WeTm(1{;?}lcI`g_2i)Mq2atU<<EUe+so>;oIkc9 z9#8FdrU)Wt@b{L}>w{Np9x7vL-ANp`&_B|d$2t$sLIGlq<&kW|vR88Nn^6*GtipfT zxqPRyZ+}sCVFRZbO2jJla^cyy0tnJ(jhywqauK>xeRrs1&9$`|)oC%9i^Q7TB*#vA zLW;)ofjn<r$=R*L*P}_MfZ$pMki8NSJsUM&0kMpSIgNA=m+0|d;7bzt^W*59yl2bD zSrva{*Gj|D>dQ4x<s|$O!h>FX$(z8UGUf)(5%-K5zM;z7p}?rv@#dnaSEiFF`uaS+ zxt)3xi>Nj*de$ws!7J&r3vWy^hXf<6p&%j2<FBSh<UR*Xm+u2?S6RateQ<Hu5Jv`b z(apu3wc=fcG6|}@wArL26+-ES-gUVJjTEN3FINV~uIf<poz|-Q_yF1$&V)>{qq-<u zSv~wlV@EwqUaE>vHPJJJ*{I|xPtAChs)XBGZGU$BTN&({!TWp%^`<aPsg?1PjU4$I zWm0lOAwI3H6ZOO+EHGlHst)|A?!EBC`PR|)z!xL8&~bbRhSdhZTEzaz;|UY9@u1wS zC4UWHsrPLmw0o(pDnQHb#oKMdF{iFmCbhH#&IEB|Bv#vzV*rpRq-r{0{d*YCvKLl9 zMp&kaI(Vm^MG0o=j93kph<d~8&EJ?;IhdXgdqTWw;*N>gYo4WOSLFb|ADYUP-9E)M zxaeSoeMVO*SSr#4@g}MoFNVnF7CT3$N((kw1fu|%cEJuG2Pk9arf~0;yTGh}h$SHL z1$Z|F?C8OQXM;LwcS0>>h$7CgiMX!C(qt4HXRh3`$sc@05^OZSAML$%7@V7wO{F6% z5>3&2CXJcIF;X_CzMoi+#h^d6>y21=L+HkO+fi!#X14x>S_~)@d(nN(uNCtGUAh9? zn$TQ+Uoo7;XS*Nx2D90{@em~RvwGS#qch7rpDC`}#KKy38f>)EKnCdM;oPf8PN!m0 zL^ioc@gXeGiZvas2=$)`r9Ut3_)eI?e6DTBi{>_pBAH_oe2V(9=P(YJ^>Nlz-U8e! ztINPRj2Q#q#Rxo!n%HE0>%|Z=j{*{Aisaib2FGJq;tQwuCG*Y}0fzwX=9^FtN(wgk z?%UyA@1i}->^=?D#^HIa9PWL?Vmzfrp4t(>!rAU0VP+yE@*Dy``|_c={k&HYd-!qr zjMEV*UWE;Q3DAz^*L>x;4|c}Sb$9hr@#Pu&S%=uEL=mX~tg903%GwsnC)o+-b(CY_ z*XE=g!M=WGVYoX!r-D<q*(qC}9L#YGa3ezLu}sP`BXz=`9b_7}+3F2OtV``&&2st~ zlC5>`(P2?)-LPX=JFY&xeqyy|=X+zz?RviILAxu^k+P^5LlpugzBy0UHe0&{_uK7W z;|c_`hf=8q6NWYa#p=SSLtr3ai{nR4{~yx64(}dug_$f`CQSw*-Ev&;XUx&;-J0X& zpe|z6C=i0~Y5rRJ4+akC#w4zG05w8x4gURC0C9C2+$Fgm2nw@rC_yE~x4jby_=*i+ z)!c;m@yohfp~Xv~F4{nSKNx0U*>h{k6s^aCatQN#B{-;77XM8SH<YH0ULW-RzZfDP z6_u<>d7Ps6Khl9*L^$gI-+f{|$#Z{<$FDE3o1AZa&o1a{*Wxe4uc^KtG>=RuP(!z8 zLaw(e9zN&mV5D}_TtcBQ!#4Dox;nFKwP$jB?{Dzu^aK}a>rXUTR{7f8IS;+cE9P9b zbotip8BIS+n~IvU;FqQO#O^GpAlGSt?JlL*TPZAZo8%C3o}T)47lwK_E<%xwE_uA$ z)3|dusm)SrIj$Q#WNeQKPD)yD<*+mQB!IRbv)L?&`Ahw`bKX>`sGpAG1l=d+nrSvX zxAt03xi0#V&k7ER0f9?FuZ|KvJL7;81}>WT;=Z?`?1i2-yH3XJFk>*m*p-70ot?cd z#X*6(>G-p(f-&=4!KV(aUM(%$Si7IasWHAT-bu7vJwBthSYTetPs?P0{Z~(s<l%3P z)M%XKvG>q;STIU=XGB=)UdKwXb2z`(LqhMv%QhL8hK6*g5?#OsyMo0|d8Yh|1^xhF zE$3pRJS_8Pp2mADq^=R7W);?22Ybd9J)3>a*G%x$J9eGUNXE7UL?rE%q7{i$aDQ0c za#NmB#_#nfwqc#C!kmAK@h3yo^SQyq<=&XNy7qN|<iDN@?3}gf(9z>l{CFV)+(qi{ zcM@-neyjIi`99X9!{mu|?BABo(P|6XZ6li((P+s_C{m&8{1dXw*3RiTFxcgk64K1> zxRlL4ajF5E`zO6aCIiIN<!+}p(d#BKbyKiy3)Y?g?Zx?hjw!IoGB%h$kT5IQ_qBs> z>s$(~(r3V~r_Fc2YO9ftk#-xa{k)_4<6HZz-S!-oH_`LMs{lHBEc)tFCx(x3Qi!XG zC*Ifm7`&;r`e>%%%W+=^wr+wO6F*U{R)yv(lQ=KD9|-pE>C+-=RzvyFHHyCni@KnT zX$gODlAR@<+4UgmzOg?3S+K@+u3}+kQRObUBeV(M{vev0@F7sz&-~zPI78fWfAB*5 ziE`_sho|~w>we*~&hDX;_>10^sGs5o4*pw|?MKV6&l$H(WCd%mOm=VRuUxi~iXUjN zLQL;J!8>1k>Bi*w(<ua)T;IpEP7k6m?r!$o=Ce8r%vRX&AXI6mNC^lggL+*l%x`T5 zR{C&MVWEque?in+>ZIjzg^4Q}lCJW3a?kKt4R%Mm3|HnRTm5Jp<!D&rUa3}#cP)X+ zc1T(<ck?m0%TsTX;<GvNn(ni2AF8YUBHGb5#o_KYLh&b(e-t^1>Rw^*vkybGz3VmY zd41&xZN24`+S3hoqP6NiSccMtn)NHkyhM`Xl~KF1mV1X4lVX#=S@nJ{?(BTwHcx9| zc8}sqn%7Zc9g6RfzY@#&(`l$_*Td2U_mlYK!|^kUAWxgO%+f~s+n^A$dDmR#+j>_U zbEeY#ZSQGc+Ta~^j_*|FnwWbj{*4m+gm0mBp2=sseEzwUq220QChEyQd;UvjALn9q zACC+~<5AN(AeF+eJP!>bTEpw>gQs%>!ctl$U*EH`R<0VP@;<7%wZ>IRjowtd8)6+K zToj`>{>Np~dV)E}?shM1=y@A;Nr#CB1E>zEehS;`OD?|5Pi8jeJ0JHf)_q8xZr+OS z4VtO%mmz03E^&@O(7lCge`PvZ)n(Ai4e0RRERRklnXsPBJFOw3?In7>J5e%^I%e4C zIGJ%MYKjT@5+04#C#jz-zoFD1_J|hHJ$;pYWnq>h8Xl~wDnr~l918g6WEE8)Yh-Sr zZ!_b7xA-ftNFHKk**GQ9>RD?zm`eRMy=*J~LTQN6T>Dt$(JnT3@Y;ot4xD=33scw6 zZgnFlb9QBUu4-{6ulQuMsOp{O@o2$v`Q#^xdM4B7!;ZOzhi~ooMVrS~zS5ymC0Wwu z?RzTM(UsOrZUml4Ts@<9?HHXUl&P<%-SOZ@de5?eeJiv-XD=81@Mx~32+2|sIg|v2 zTwzU2#OwRm(~v?zQiLsVyYk#1L@^kS&55kAyb5gqcNxeB_%=ykyN~b7WksR>=L}za zZ?0;S^Lh_2hiGp#Ix+c>VdZM|OADcqN<DYp?yFW-oQXbPhDO=7^2ZbZg(rLCslT2t z^7`9-@%2jT0%7fg1WCUj60q2)B`Q7+;WXJhubb!YjD=-yQ(3ny{3Cu6?I8D=mKodN z&4f=?y3hXHK*TX5C-u7Y9!y6{Z>Sb&Zy64#0ye6m;D{Xy-Wn>2gLvNt1{+8-JKD)_ zMbtVZOQ2D?VJFfxRef>fds|q@?ZK@cz4O%iTc5)qOxG^Y*wfn4<ns|W@J+D(85&?E z;xSuLUTV}5sZ_DBDNG~%+?ZRd{$2N$UvD@3{V<OOV6lYISFfwy0MmHKPbT5H{IS<N z1dfx>XPrNgsGxv?%?fbsQQQd%^gg~Fy7Z#@fs6Yg?F5iA$Nc5ddGD1)eFbv|n=6`c zDyRpWyw^T-qqs$m(3BWUuA^p}awaDUMU`9(PYS*z6N~Uw%NIIC@S-O*c}%o^p-0G* zPeG<90-`UO5ZvVvX0Rc~%=rr;-RI}s-^~Vsu$ai><NA^W1sNJ!#=zFixILei&_)qO z)~i%;P2@I#6>b~?Zk(Cgxlm*r2F2E&J+A`MPa?CzvT;`#W*8aY7#BouR--nVsh3;g z^5O1waAt=OcgiPxWN^f2hvgjvDRcCxR6DLnZv|8uuH>H_*>zrdAD7BlCetj1I&K&_ zLYmM6AG@J^g5EbKkDH$Dd<F?uA}v`s-W@0P^36(O?LHd#8i5vw6C+BxI@6$#x|hrS z^$)$2<o0`8fRH@%(S9X-Usq^bSNo%5aLX@EO7TX=lrQmHPmU-GGofx#94j6{TKrHE zcSgBx8l!At;;Gp&20`ocnw}8({yUQcMhdFzqqTGXfrK8;DOypKNw-n!KKzuvzVAvo zGLVDkL#9{$!0&7MTnN#Sfs=4CQ#PgQkxIW=x`1dSRk45K+1|}PYu2CB>F04y)OP@h zytl|6i&!uOjq39($w;J#GAc~OV*NIoBUOiSRL{Y%Fq82W)#pD0()PF*h;s0^Z?3i0 z5hb3Z!1@&K4Lk{NSF!A#7&y@U#Jui*qj7naAR0S<BVY;X<bHMD`4stNspxO4?kmcE zwR>#5o=p(2$GrdPG5`;<biiZ%jraBuz}mmYyOJ*K@HV<h)c3PQsgR)dX6=P#SDFrd zuAG&oG`pv$Z@dPIB=-1|W70sT9>fPx<DgBJ7$E?cX@V*<W9+v(mK{)<N*m=Tjrj8( zdb^e{ZSU}k!}-|}Jf)}05S=R1^@!WIkPIb5E#f_QwbgK{aZUwEnnhs6nr&z;;$*eh zZ-y*$du!A$_NIH-9mx<y@eAm?6(z`BQHcUx_42e~>xY0S12Hc0uY@JzA?;#Wp9A)0 zMKBb(wWayJ_W)U=e1S8J(0(L36@rDiW}G6Lv}9Qt0T7>ARxQ8e&eE*>{8T(i8K$eq zul&<7sXIL4+L&-(!1X>PL>kNT%b-#|O`Q-Li(AMR=OCXiJTz_^pKDC7paY0O7B+>` ze|&;l-^{j8N4o(b>A0??sP504TG3!{6}x2GEpyC~4sBuGTwOPCuTH<h>D$5*4(Z{_ z3H?`t=+vu9XF+fp#Xoi98gsH2=A=y15*@_uV}M`n%CYbM_z(7${e``1<1{1xG3{w^ zVexE#;;jBVYN-$f@yy>jim1u{^2~n3`lKL|`oH4saP5mvy<?e-t^wVxsE>>cM=h@; zIjh%;($fEx&LShu(VoEj+K&O{;4eJVbfkSqENYDjfg^#|pSV(Pie>TNAsRaIrkexG zE6OUPB=Wyy!A0~VQ2|k_cOQpOTEA0@|FZD^oGkd2>(HS1{}&J3lM)*_tgJNtN++&{ zfhwF@q3h16dC&k9+yjfxT^K3V0PFQlu+YoTzy~eu)M37fh6>1q#I&wuuX-bEHH@MO zRNRhun$hj04aVPJoodUp%*44ba9*}0Qdd*7SsYfT6Mlsf190KwV5jPq_0#b}P02%- z&7DKqf+qn+iVau<I+FnpMzYEW#VP^1-oM;1J}8kyIjKLDh@VL;sCw20D;*lMa&JjW z;@nMRXULdoEgW-O*UcVgWN9z=&-Du2eq};@D99u@@xH{5sOSO>#hpAo0s=&tm_F~} zR^h7rUoH~PW#+rOJ7rc8GvVAU<Hp!T>4KsGto5?ZYQWZ*6}_SqrlcX?gyC*uK7j<H z$mVC%wBFoMK8Kyg>G~PhQM0`<z>conX*?6{q!_l7SX=Z(I$;c62%a;7e(0W4+Kkvi z$T>B>c_;*ECxB#^A=#2te4HvIS$gmg@Wiq=6lHHE<g@!N+UznE|MYDQgw|d(utxS{ z#bRKlEY-<6M5d$r(hA=loogrB>G;lgb%}Yr3=BpNlmJCoM<y^FeTBcn<5!YW(0QQ! z+evao4O)#FOQ&o<RpZUUy5v&qr7s#Zi5-g2DG<(xXIFS1l6LhZosdHQaq0zBjDVH$ z?sC=R0&;<f!$bIB_{-NyaGz-#!M_<Ow-zA({1jvuEtxkP_#8Catot3r`kk2n3VtAX zlN>BDn<g;e2$DfN9>h4Dx16Hz>2#R6g0tMKjZO5Fg{g#aS&SErP4qyK3CVLh>F3P_ zmr^a53tFoFG*#$Oc^W~7vp+JF5?oyx^9QW$&SoYVyT!&*{*MHz1{p-Y2;%ZCumn<o zm&{l?+r{(HrF_5xLu&4nj8-v`o_lFsT~Ujt3V*h!?e51vWL-_P!I*B+wJxo>lN58# zap@3o^_9L@Q9Ip&TZZUd>r0-ldWGj9wst|2#j89e(7DE1#FwA*+n6juNuz-|wxp0= zlR|GH44D*5Vyu0%^IbF+WG+@{Mtqk<DrnS;StP!Q=zGIOf!W~K)7rvSh(16%kbnVq z08PZSOqH**!&)P5dHDH^r*#$4#(p89o^Hldrr?Rp5qDyPvf8^k65o^AF*=%mAQ`14 z*<io@a7M&1ls_`uorkJdC4;m60x>db-)GkNr&}|wA|~TkCGZfC6-rQGQMD69mw&x& z6qJ)6Od`wfl<zUerX2K%;R=_41I#R0-v?);0n=$;(7Btrkc2A3?Do-`Cc?7%ocJo~ zrIWRj6Q$rGpoUW-oQ*y65MF&TQZ<|&PsYw52Q4RRd;!zw+*hlK?AGK?B=6wz0ljc} zs1Ca&+L{yX2P(G?)GLXo7A}J3JqvGG;io=dcEaz|7<kCJ=RtI2H|WJC2F3OMoaLHK z9x@GA7+^U{B0Cy`v_FCUA&(_u!^3rh8_XTNF1z%fX~Dz<#&ZNeVH*;#D~liXB!1<e z8(*6(XTdk`knP}=%VN$aF#VL}7NA{TNN6=<f*1_x=j~ZoG}m9#h$c^5V{&z!jbUI9 zaqRMSCs=zSx4mI&1jLwNnI24JYavA_{dMAusN6g}{ta*A*D{yxtHFMzu*ju3()jEm zMoI;Cy$VGo=7l@p_@?g+8^;ZK>8b1ng9MY>-r0zjLz_$aU0<$tF*oU#K&~%N3W_?( zOu=h7KPr<<W%<%9hhscEz7G~N6~<6KYeMpo=d;ku3u?@BXu`l`E>|D-m%#(-BzIxI zLRm)*%Kf^6{z8WwmIP{(L-|FokUsUsux(Oz7S!CXnSc(NVGDO_mfvGM;ScWe1n*-t zjXW$4L2>UsL8b!ot<0tUk-i7mT4)Tga8r>=B-SOr#U<%uSb?VkxT8D(D&2k>26h&- zshPL48csVL+y!3wKB<jW=;6I&RutFzeynlkxvrfVjXe_q?%kmw90aT~r7E0_YHUph z8n}L`&CjVazhd)WxK)@st3_!*j-F1K_@|_8L}cf-b$Kb9#R%R6QVg|+1;2sRm-S7h z1RP1$QT=B(XgI{t88Kmb$0``#dRblV67aW90m!%<8ot*x$5bnXq^z8DY~_&RR>&ur zUw^432!DJWo{mDiXsgY!C9y&8LWN-T#Rfv&(W_=Z)M!_VD-y<l9qaVGKD-f*BIaqd zdvmv`<DGWV2WyuwI<n1$atG^A5b;Fq)3*Sm$OTZGsy`GWrmZ~6!2ko(WwLGG;_o`Y zv0W?rS7%Ws+`WY3^<^ya>Ng9|vtTfcIA1fPjt*0_7?Ih1-W=0rgtZs(+2_j}1wm^1 z*<i69Pn?FVNpQvkl_HHg8>sA9f*PYtLyHF036@C?;Dt$sjX6?UQ5F{gc!TP+ev~CQ ziGMI{Fylgh4v{1EB9r)8o)xjZ2#x0#cZo<Mn*6=pqR2>_)AS-oyK)H9$4b&TGR2ro zFj(<VcB2X$Ft>BU76}6J){tC4aEra+KPzp9GQh->q?_-gN)vz*^6S^xI;qIh)=4r? zKf>4B(8ilGE4SiZNf2n5_Y;oc=MmHTLH}7SJR7Zp;>Lmh1+6Y64kSi^?I;y9Vme^! zadl%g<)AiVPe5M&D2?6m4t<Q#u~7%46YWO=QM=l}SM`-*7(~FL<?Eu$nl6$J3`4s3 z9{*T5Hq;HzE=ORyUZ^Fu$L*m$@cTgJh^2}DekF|)Q;g}Z6$@p!!vWWYWgIjL;8omV zJTL-h5TB5}!H;4%8~($}yU!}beXeeoDYxf=h#K~T7Tz3_38u&5sAO|kP6TYK4%18x z?rnA03`&GpCWE+|6Utb#szHR|3p~UUarL}OM=hFWGaN)wfFJ#dGi|kO!GBtY6H(%# ztr6!Ern~<@2uN}T^1Ln15?mtsdvH^ydjT)<mge5~MI!fDr9Quk`F}N>0OlL#AdAzh zbWX6WmOLl7G44q}+YfqKU<EhVkA_QW-1K5E%}TKHZIClj&C1Az$7|8F_iCdqIzSaR z^Ty8sy_cgtao4G)ck=WPq-87m9kRt7b6-goYDRpHR9{(D!ZfqqK|U_BgF7_I3wYVP z>cs^eCI{;A$q~GTEchxWwq3XD7Gd+$aqRuYdgvs=KX*0eD1BmP0(!RJS<&oB3l;t8 zCt)Ab%;)Yz(ZZLqzk&ZiN;h?=I+P%8{C>-$hUcn!0Ku)&e7*|Up3fc_ve8M55d91F z{^E;`OhX|HwUw!BO`ZnGAmr$?C(MxO5yt|eo?H``5!)EgU|j;c858Ts&-KVO?!*d1 zjxjE~m&$~xXb!hQD9L8SUWVlc$8a(md$>#x@m^7JzsRWE4c?tyqdmpeMT-vdO-QV9 zXpt2a7R(Yu3rWUkAD;k-0?NzMZ^#>OpCemyvXS}lyyQ;XZPr!jv??|`hKfE96_z-L zeGLFD^?osZry#4Y@AjI|{N@Y6^I%yDh<vTz`g(`b2yprODHdv~>SK%f3-fNAkn(XE zZc%-1@d!F987jpCH~0y8Ai&a2;z}oQS5dcruLmalfo$`-ZK{LR_DnJ+`gJ9l&q9GV z#7v;%%)2V3{54RjIjJ)X+Up1Ce0inP$eaTZkEqrb8*VTAN=v4VsXQ9IrELZ;78u1S zuo0b6n`mH|U1QrDdQ9OF1ZMu!io;lZ$-CkGXOL)|L^UloTxXT@=T54i2!G2hHUg}O zJ{21Fr?KpojvNGrm^H#yqVX97=0){VGTKQ<;~J#-fU^k8H8Fx#deH{mz(0!|aOb?g zRXnqQ7=7ZTh&4#k5v=b;uZ(W1>T|1S$4BHK<ZJs*9UG^e^=FaOPY%N!n4CKDwc0N> zJo86j6IWPe;A2CkEnMpND2JdNtg!obGDwBU#T#3OS<1soo*Y~F3S*)tN+G~7A8={W zHsZ1E%zxAyds6J0Hz667EES0<@2`L;7%Ujw8Cy1#TulQcGoT>c2@5vJzg9Ik5b~53 z8lRRHm_wWlLSJc1e=vn07q=^$sm&ehAH9Y*l!p=5ob($DBmZ$VeA{WY7Jk-Y$>ab8 z(gsMa(px%?Dht|{SReKenFQto(4brp{r`adc#pxQQm@w{;J8ta{^Puw{imoS2BR`+ z<R%~tgA8C6_k94{QxsymfjZ#eK&6p6$~5R8iQk66@(w+8BVN7e4v`9BC=Wn-u47(f z*5((>(`ZrEqcsqW9I4d!JcVbjm~7f`480#Y$6Kl826cY|J+El6+dXh#KQ`7a930rt zY&nRWDCLK1k+9w5p7A4KG$I}mDDe#x*APR1+Z89k(-@cV8Lsxl0~5`4ln~AcHfi&0 zLg`6kEgqx1OhM7N4F6J~+gV#4PoWl|F@xKbi?!Dtggg>FXqz`5SkB@MhtQuj{m`E2 zk^qS2_)LzaTHQsTAgQbmD|;e$Ebd9$UDkWB>5-*LyZX+D7Dub`(JTA!R7bh*3s?G6 zWJ8nC4#I~aEfxuBAq%K-;==DXnEci!Vmt^9Su}FK&R1#^^3l-1Wg$S+y6ly7cZwuW z(@SNvZ^wl1E4W?TqKu8#sFRU^qD{xL?72fa?SJC6MGvS`C3=r;p844|1e-h2eL8LF z`D`7FJ{?^iq*C3taYUU^Zz*)ru$SyGS$*H4{G9_^2N?C+l>HD}?%$}XHP7EEEb^Mi zTmxb{)g7*ircipMC;c#Bw(rrhT(`ryy(v1pMJ>{mPD_(7@6JrIUFOsdfI}q{P3*vA z@Y^Orx5}6`|C3}05teKIw)>dt*`Dv{OrtxW2N5~E7jf{J9laKA*P@)J1(hB#i_&hm zq#v`;vu*|ApDSgAx{g;!T`k}lsm(<6q2Z<?Xn{8e)~M|Pr70#Q&l+MtZttmD=ckc9 za&4Xfvb(Kft`O@v`}sJ07ziUz%^V|zUncHu3amxLPq%1Obk4gxx=zo;;ZOnHKTwB4 zsfr58)X$PJL}%}V0;2%G2r%(^NPbUIxI1Ax%&s{0%EaWOfB8io8`7sJ*+F6mLlt_- z><rS5T4;LEzV7L9nzxv^^9t}G$vH2&Eg7hmcCoRF5|k4SmkE0OS~B-|b_ql7LAY?E z6`agJ_u0K^-+>E%4(MJ+1&O^>^!lW{#=d5=3;=lW>t_@Ap)9(<3ApQ@<Ur`{F**#z z^>`81!<`5T_VOE-U@3GHwxPJyaZr;JwZ9Xt>XP?Q;SSeLpO-*~7`2>*x`GJN)IE}& zV$$@CBD7lbyVHWOfbR%)&<rHvGmU2rUZ`b8S(OCkeGmgp+--JpWDh=l!Fu*3_m%1c zee2t>!m2C8P!0yWv!P*mvO~u8<R~066^Nnu>wVbvGuq4?xqoUkkAd%Db;_)tXpf95 zF_n8`xnAm*W4&{;+Dn!EH13;madjqZ`I~Y1D<wW33e;yhzb3IihBXB##Ub~+x{%G` zC+4SuiCH~=#p;5`z%$b)O%3R#A&o;MgSCVPL%PZ$MKw?x)I2WKu5_OtySb^QqEIyu zHc&){-;QvLaV>(4PK+7I7`-m{Sjy5Tc+D8;SoWaYE)YcpF(m$Xq;V)@MIE#kn5duc z^Oll#C5)@dQMQ&Zz^fv}=ptM(t#{B|OEP(QcfF^;E<?)AVLn$RDX^MP9#WTR4qmaD z5u@Fu$7EwcdVYbJ(TaK?hGru9{C$3wB+4{(<_um{%_@}zbq(6ziv-k8Xqp=^V^%yC z6j$(#r3@$V2YHSMT=~D}NHa9B3GMG$<b)O2k{-?SI^zRHjn2H()dF<abUD_lRPs;< zg();r2CuLM5+>Gy7)XrmvU@QU1Dw;08c*O^D3#85#ea1XSKC6lm}xR)r1`ttOr^!u z*jC?sCsOp0#-$w3By6LMr9Ww~Vqkn`jQq<f0TZ>p!_!dx57!bzLM+LMgd>ghuPSuW z4a#M3Xlpmc2wu&DPy-h>S*ZXPy+u08PeAvC-W2sm4kiH{o@>kqS;&4Gb4*EQVwLF0 zC~4sC_60H4@L}1cHoresVy@%2C5tqQ{l`{Ch?Y6H)0p@~N>Bs-r)aqs5EYynWy>H^ z@<|jPxWAk`SJMU%y~oADx8P(^BxXz4(Vh-KIG!QSQr2M;#7bxy;XX8xA(LcO;SL5d zKw5Cc7Z7FgtMm=ffxq?o`~4ysjcY<W!vfVFeEf(4W8+R4L9orG=}f{=gqQ+C1^X5t zp!UkB<Xv=B=U{1uMo_wP5-s2?vDXshk#`byfou^1m|CvA$E_ecxXGU4u(^^|`69{D z8)<vUK`L%B)rQF5oFJu#rl)Re=bbfS@GUU$+7fYd8qeJUCjunbR5B<3t579H!zK{v zD_xcy-fCH6{mvjtru2<3a?z@UaGMm4!4xwY^ec|S0c1-P>P!ouv#HhcFXLqJDrLU@ zsS^<=?j)ovv97U<#?LT&&Q>LzWDUiTHZHu!3Lxf&h*F}jxbrMqWD2()hTh>wOgJhF z1-0c1=wZ6SMZqwb^NqGG@)=jNNu6|NoczK(kvF$$RCdqFh%~8wZth5;inn9cp24KR z<25pA-W0{kJ)n>7ziT<5pRacoSVG8HM2jkFUNBnf<=B<A#L#WxZ0-G$1ejKE-{$ht zrENi!1f7sGGbYf2rb|4W67?T#V|-VHJWrcFbB4KU5J1s_>1bZI1U|Rlk#|MbfrLZq ztbl?V9u^6e<6+u4@L>9A0ELJq8zun7i2leQL_8t}NudATInluzg3{aGk_8e0VI-q5 z2zMnct;iJuRz#m8b^s=-IZX<ypPQFLz7HH;#{0S5%|2J*R9HkN)W9Mfs%>dwZM4=2 zmLv_DgkpE_T%8XMEx1{+WMm(E5-G{zXRI4n#L#ho1ZediM(w;oBOoDdR%9?p+!i1# z2i2Y@!zfNN+DULMR%L9?k^7rU1Ap^g?7t0LZhibWatFHN5Op{BY1vZp`<>oDBtbP9 zTbQHdaMFXgvnp5!Vs8NT%x^x?%$<>>{zr|^C<E2MGngHjVaiNL4?~y{g<H8-0!plL z2kSoRY}=h}3s(=Yx7E4qVRHQfv3+nu%gLIJT;opo!p@EQHTU#opLMOogh3lM-t0d@ zaZm)(Z9yDY1t@q&4(jrhMu+$col~mL#3Q}{pZbTT4@u@eDPU&S{0Y-E98>51NqTmF z-44WH_#JpMAR85UA*TonNBj+AQ2bZ1c}%EfjCNk)aa0G-yBieGt?evyMw7M>Cauc~ zfY92>=9`+G!S+{Sj$fW$$yp8UE&FH=CR`QnA3rsu3q17-qS&VmX6q7#7ENU#L$J?N z<c-Yq_y{!U*5+7Z&KX`5^WO?sfA8ol&fP_X2oqk<A?o-xD2FQrS`-SPUzWHzSn}5D z@{mBGDRK|NQBC8$>e|)2JrTZf3W+|q0L*7I1uJa3x2W>hQCS3r$sNs%gPO)JlZTsT z#GckHrd@apB}`bNET=N)yT2-S*2hWBj(3K8_!QgN7v1}8<Qz#oE=|f!>i!spEQas< zyh3h0=atB~iMxm6{BV{m3{guV{WqQs6$VLfD~LC}xX^R?oS(k{x`xwdJ(XB_i+u6} zwR}|4!cvBMN?IU0#8H4zKg@+6wFtBoz<2@Xp~;jw*lL(ghQ{J)SRqBl>w$^3#Cu?1 z)Tn>|3m~U&oQ$SIwHr8vuV|%azMsN?=PMS}L4T?yIhB2gs_u;RX`_ji(a~s_MCB(` zZA*LO4ej+)o)UYbGe{x~-v}v{@Dg3K#+Vfchii@DbCs8hs;J2x^JqO^CZSlm`ga-} z5ra0oqLezESTWQgz!Tx=VV0d@^^Fyy29Ln-wZMK_7EjJTqm8kz*zei?kLR<(wuIJ( z*cJPrVmn42@e{~nlbD1dOrX2gbpFqu`V3YEIhY-O)R5nMu}~J$a4uAbrtlMQq7SA9 zJ09iJ7Mt}~Db!FkxFG&lV{a7@)%$%910vnsDcvdEEuGTcJ%r2vA}unsbT`r^DN3gx zAq^_sog(1>4D$KD7r&eLhMR{uXXc#qthLwPYwy#_4SHk#clK+a>1>RQTwuwGHa>a^ z<m^fxX9w)3On;<LYitt^9{qayTPrDku%{%j)5Mynd476^Z&c(hb?R)S{Q80b;wjIG z99WMeafz*`cfKRDTY_Y_2dmI!;#8a@<hyu`5gm#+E!iwK7F7hl^%vyO4?m*Oe$I(j z3652w*%yd~p>h7yx$3Bjtc}Ywsay@qNbE}0_Zsl9z2fFX?nv81vx(-Cj%6kmlicGI zx<pK471v>t*rqoS224j5JP5zJLCmE_H8Dh-9KX6fck`CL<EF_y>!RGJ{rNZh423>} zTy`=MOEaFXJu!Kw7!x#qOW#_y;jhG4P4YzV9+Sf7!bx=uH+#Jz5<MdO)N=OM;$gw; zFUomTu1YVw!KV0GA{;q!NzF<txVoYo4yP}7FK<@cq6S7^zQ;<)fopIg2Ru{4r7FC> zTi<dcUvRd{-Mv0d%I%!ekaUd`T_Y*_>o?PoLzuBuirN0<eDcLgx_u6Ox$}JJx{^-L zZpZEE$VwDb&P#nnJ<ci$-TV1(uLZ>}zU#ag>9YRqcntIO748P@*A1kkSR3cYEE~>5 z_Zwk(yneUF!g<GDnMX5P@V+=)A8vo9!G>NjA`*j=^1Gq7gZTDf0e$;^{m6S-wJDZT z0nVaDLIV@{zsJ~raf<Br8yi8I;O@I2rd+6LX)ZT9{i|s`1D2*ZiJP+A!2Lh2fr6m5 zp+2`Lj%WNmHO6H*WsQu8gN1q2)Y1{LBD^A#B+R^=>#gz6oA;$b3Z!d70rUP*vgC5I z{o%(-704YH+||+->?&*ZjtlFp-vX=4BR*Z*#<8ytt~JmqxXm-s=?R}MIW))xj-OxJ zcGsAgjfuv<`Ka6Q1Lwd>6%VD+e4AomhdLaWq(DhZ{z2$mnqOBU#*;SZnPNOGb~zV2 zM->HB)bjIw*FkdsATE)2(Ft?&#rzy4edL<Oz`%$^gkfr7aoBNYRpmU|mu$H=B8vA~ zr5f3GFSouSak5LIzH#)crBL2In*x>YYiNLS^|4r~!(V9|CXQz|hCQV;Y*Z$rV%H&~ z(iKz#Cw2u00-+Mm4bV{I3m44&jgDO$^;vIdkn(VPqvHsEjo7gT>Gr4n1VZfoXE78b zDH|ZeokS#!{$TL>ny9dX(%56>DMTs);KdOfRm;bYym&6e-ocFuaXGTb8XE>KAiQbQ zx>W!y10HS~bJ+hI_`l_UJOU{l5W~rGhr`Tu0BA^k1`2+uHJ3P!kM=uWIe^6@EYR2< zj~4)o`OFV!Ct(}`e8%Q2fR85b8Z~*fvoD$?O(LXvEd~0j-hAb{L5H+&Yn8(N$Sz#- zSi~i>FLiB?v0jtgz!SsHY2q0UZ^o>mZbKIT5%2N6ZgGY=vn4!bTEJ6Y8`j;p3JcZ^ zB&lS`|6+R8VygR<I>_$M$A}*KPIwyAKV7D4)u}aWE8`U_t}`l4nk}q|y@*zop(kQN zBrDUd!NTv@T*e@NN?Ch?#-X$qNhRB%gxDy3gmT5zD{!_=Y9iC5WGZVLj{*FsmjW<t zTaNp~@cxo>UbayvB{*2GhWypMiTVJ2+4R*kQv18Y@b)kEJtB;$7dvD+G_?4@m5h<% z6cY||o-;!YPx2<2it=0`e;z5w^G%(x4GSu?6t?59j`2<iIl0cc2qJW=WV`)2<j>DW z*0j&wbF3{Akg1=0F%-X(p%GtW->KMOOxGP2WpY#}*6?KvFp#(UFc@Z^bIz9pd%a95 z)pe5k@>8?DI_XeQLcD!c+(M}MIHcC+<X4szp_)-40WNRO00z!<Y<G%ZO5Vf~J$isI z7WS6S8f04)G!{i%Tmej~0HP*~1C;fdBxgM&?xN$QLn!1Ai4hsKbPt)8($G(zraazG z@1kbWnkU<OEClkDbMS7+>Xyvi`mbEJP2blwl*1+SfJeED;X+y6LaiCeM<)ly8pmt# znZ3a-1MU3sa)C+{?%sLTGFH!!PaU1phvs}Bwcql28BQ@=5?I_3`8YIbI7j<H<gAq& z+F*l?yI*Y%i-o9uzD~KZsMM4TMcVIiu4rC2)VtE;M_4Li$u3|Z@UZco(S0|y+&|v< zaVA#JV>>6TJzFb7S~5iiYBavuNHwp1-8hO;(|K4E(M+S<kc>JlA27L(oElD1^!%uB zbC&NgaN%xU3A>vfGv~G-+fGvW2cZNe6|fVja$}arS})^!Oo((B14*DKbsVYrGv%FT z^X?`dV&Cdii1uH>V|i$nm{IqT{2VvFLvUyhQ?13%QiqR>$nz($8lt<G*~H9LrqHK; zr!Mdc`+`K1bXefMwfU?DgeMb_Tv<ft^NHFbZsj7=(qE)ZvamAKv+i48Hs#fjaeVdw zZ1GHuI}Tkr)Jz2X2X>3HXSQ-j6QvGUaIf;GUp^@sfOd#0!uj_YLzKI=+(=E+b%^X2 zX#Whe)r3`4x2a@*Si|B28GcvHw#>jvx1sqxNrJR04T}F!3g#Yje8r+s@#Ld0rOma* z8Gw!n#`MH<n!7O_)iMg<GSs464N2(i!BGxyfon3ug?oi3CPR$n(id8J99{XM8bMKY zlC*$tE!+l<o*!YzoFU-dj&E~MvZAKMCNT{)<ucuYWpk-HXq9{pPF(>H?9V4KrnoX( zcv?3*^-bHLaHb_SPV5xrq2GAUI*z3#M1<@x;7*J=4*G)ZiEKo;Z=U+vQ1L~c5*P0- zj2q1R<gOey@=n(~aPCK_zU!aAI9v4?6__pCrG9<AV%z5-NVeQ$PoHWHiZ=T2QZfQ4 z!B%xCB{g-n_QtQ{wz*!g`gpAKe9T)TEi9y4r?h(O<>n#ZV0=TMZ;lXA-m~ALvxrYH zO2|T%$!NJxx+oWi(o-LW@fxGJM4ZcP%~Mk01BUWUnRA3TIvbEoh2={24)nNh*N$+W z96x7tB4D)$V_p=p&tgi@M2alm#tc9qiYeS_X2{XB5?~sq)XVbDskG9Y@KaC~)3OFh zm{k|8T(t6|R}VUq8Ucoik+1dg$tKTU>CWqI7z*hNeYpC*j%S<-$oZ@S4ML)dZPHeJ zjnyHk>oI@NJ_upIkYm_ML7o25OQ2%}OE1jjJY++zKO5nCfuOiTnkf~4+*&h4G-6JZ zv~1B=ZXF-(jL6kiNu+!@pQSr8bgSYFG9WN9F?rnIf(dyGm664cHIO8?<2{Or2~iE& z{9N`L63{iq!VRk*(H)T0FubQs>4wF+Fn+K{ahcg4mO6IW_1pdJADqRY^>4wV0T)NZ ztzl84=uz#zl>&$XQ7G||cxvYXVp-h3#NT<y0RplXI507MtPP-?9=gy40c|bVekTWc zBoY*WsN~<!8$R+-W(=T+N8Kb7%pSi80$>AwY>tElvv%~gPpL!QeV@EN50NrL^s{vO zEBw}dE+a*{(bCaQ+>$?fG77mSx#g`Od+r9xi23`mjU9kMiK*Cwj7-zM)o)cE51!5g z4hk1%6=7)_CX_VFXfWk7vkdk4-#pk7UXVn-)D5r1dPY~Gjj7{b^#Ovm(f(?-zlocn zxv|4j5+05l$7gDgZx?66j^Ki=`T(<t$RQ@C6_o|>ysLwDY;&)ne%Cmt(W}uuu0eCy zh3~6t2sE-S-cF-^YLda&My6%{Tkn#ftl_q*7*z1>B4VTEZkAZ^<kT3+4LEj0EMDW2 z+=7eOvgEGjtZC_&&tij8yc^P3iNRQs3Z<U8#9}Y6vPguTa)5rp%h*1|#13pj<YuYm z#2%+z%5+ca_KbYz@l6}!0uZY}$&+nE*Cq60=2cP}*_Kp?P(xnb@JW(cQJ>t8yD#0> zRk-NVNf=Btd?v$<s?hNrf9l2s6A&Rz0!2XjExmBT(k$<j7(X`ycdqOuS0;ohY3xcT zor7P8hc`L;1`7f|Lh{{@q${eQgVaXMhS7nT;SguADuKS}-L#05JDd*YV%b^*|3NKo zc=#vxQ@I|lwX^fH>rDO}oDW#hG25f&kvVBKt5y-z*~d&nQ^7f`Yst=^?abc|eJjP6 z+Yokv;-r81B-_A33?yLK%T_n>oCeOM*c8o7P|5B-cSN_9dcqA_pE1BgVFnXgk8fz* zEt3dKL{y85ZlbGovwQRT1HyJthM_unTx9(hV<DX>H1W>#_ExI>4w@S{Q;54APcU>0 zYkx9`Zl_6;G%l2TVU#=<w#tnZW8?mADMv{sAlmTy2_WFMtgjt)C$dR>-iDT!E(Nc7 zHszHLQ^<B~S8<)I`_#UnikNZNjx-x8tH4XN=gzu}|13Je%TTuXD<N|PXh36kg&r@t zVIs(+$d^%*=l>+J?Aq}|{0I_$sfNacy$I(Dp)$F>iQzdEi95gx4dS*|hGk}^<Y@jX zjIqk%1`6-z9y4T$3;)4<Ep`d^zb=v3JzUF#2z8(fPBdCNc$@V>rWW&8(}rn{%dIFg z4v6A)q_d0f`rSu#oX+z#y2}bN)i?`vh_c_B`_FlcW0;#-f*F5W&4;`$<Ui_2lOqR- zlQrg<+6JMEi^Tk~IvJ_}E%t)V&ZDEd2OUfMmfjYW<dni0*`K0`M{|@Rg8#txJ$q2Z z(NfhhOWS4ezdnJ<lLQ(E3ioyD(6+BSE#6U5_}X2twrkLyldc#8BVP^zN&9&VSrh9f z@Qur#?5^WSs3c7{TJ7RO);7^GA&cG`?!@TWr-%EOY2MD)tG}Gd15%uV%~oXk&k(Qa zK$SVNr;I1ILjjCi9~k5TTu?_1ULq4FRH3M2(hI8(x8_omrlj<Baj<|WDhiR;e2@*( zI*0O4{336`%_)k{wf|b8(XTVLmg%n;DdSqRgA!6?d8j<rTho`X$+}&^#?DoSRS{)5 zTTR-HSupIGLH68Bc94I{SCG6Qa#@)_npacyfYu<3N4KCLm0rA^w>JJ6(EZWLNDpk3 zQYM`3+Bh;cQD6HGL$v^Fs)-^vEJL!;JO0;GPAkuzVtK;LP3{q$O}&Ts9KAn+Nkvoh z56Bl$SS$rR#p$^e1$5~c#_6}<<Fn}Uk*|DC1<H6(%$=1mL(B}dmh%W!Lo2|)5>scO z&V?|l=JdWcCIC~a!7DV&`2tV#NO}kyiv@Ri;Z@TA7jP_^yf{z)q)7k0@~tPH<_Gvd ziYboY>+d!hS^;p47eD|UC!Al$vPDw`evWP_T650*r6h~+Jxj*JY{G;!x(fx}i<$V& z+j{g78kF&IM9Fc9Nh5Qm_EKXbPq3@BpANIF0J1L3J_l@v>*#RbkbAeUyAgE)Ob&Sp zP`HBwr6=#?u=ED%p8@J1F?F9{{#%d=H5Zq^iPxw=`F0Ps<R^A?`}B{l{(_+OA&zB1 z?T03H*nA8Wn7W{0Ph|d=Qm(~B8AKShtWs*&itXWLFny#Rd>nv!@Qsvh9;b}FL<6|t zMHgfEBZ~>b!=oCw$*@I1L!=N9_<N2LUvLJ$;Ofx5E3h-b;~33(!Iu=bOGl;qtsZ%( ztG;MOT7=7gyi#G3wu%aRR}b>Ib6g0kEuzPyTB34<DayKAoi>+ffG4DIgai;LRk6Pr zZP$LIsIO*%{&bvmA5KO#Y`U1o(HIMu1e}s{Qi$9BA4_vzljT5mSuO%8z(|(aj2l|^ zDJ8On%|7L9qpv{g97QY|qjDR{vHZwjF2{8mag;rNKrr7FpX9xa<Oc!FOq*kp@dby4 z?cb${cZLbMHn5z~BVY2PJi{{h0okiUPp!?j4RUKgXyOMc8~$4bh+6<5N=(>@m}890 z)zd-y1t-S;DE=wRv(t4yT+P+rkwMpy!IeM%-d`b?ynuOL9z+~a0>A@<D)7gaC+2e; z8*fW;8?l!mubxlTN9wAaUN;9DQpR>a_Gfj<(KIn_U5(#fG3vB!-g3u%)4-Mz1ye6( z=1dAcFUERre;?Sk`C@~<7)fAh-wToGo)2r`);kQGBS&w}`4}4Lzw4aLS#rPMbRR<{ zdM~I*z?A>cIBxwTSyVk;r=*U3iMe5m&`)GLSZ}~oeB&W90d55$Vu~QBCSZeY3lU2t zlU^n3O}}gqyK??l@u_&I$S%DK;p);}@N6$!nWkme59y^P;r6^K7p<?FED_57gHtHt z3u60m0^&Y@&Y7o(raOXZdr)G@S_*x@7=e+3s>CXa!kB?3xZT5WX(9&~5JBwf=uei& z&tDPy5RS<k4M$H#&JR9ZhF~=X8s8RP=6#aq96VBm^bS&#jPk6G()b1r4y=sdSE#$n zVl7p7d)eS*zcxV8`foBYq@G5!)Q65$QTJ53*=zrRCmUIV;9^>$k`YZ(;!~1-!qXSl z4YR>P(leqAabr1xgXmFe>k;$^ZHVw!AyC9@Lw5*1?;jQ}DI#gT<$PE0G#P#<Iys?k z@7%)tK!r*h$x+2YF0#S8SaL_Vn~g!(Qno#Vp6jD={Oa?NbUci_=_hFxW)tzM|L(w? z0wU0gOJ!}1!_5DiIOv2ppkhqgQ95E=XRvigwoq4UO+k@d^r&qLwF2u?*F8?`a{h>Z zzb1`0wm4F(VT_3XczuR?sat7MaHUjq)PkCiKtE5zA*~^U$U9B<rhJ~fJr<~<1CG(t zW{i?@E83Z^@}>#RnDN2n{K)E;cQ|___*_>glYQE^n)a??o#is^lA7`?Y-OsX;T5De z#1qHOu3dHN=Tv_<wuxQ%^$tFAI@x>}@tx|MNml(AxXwu+reGP|U{XlqzbB&R&G56T z`S6^NF{=#gH53V5JZ|0vVL4;eQ|vHQPk)BC<=q5{sE@>8=ZYNBrliXrln45UD6E0U zw%*oSv^PuK9_WwQ7PuIX-pfyrSDf$)+gYVOT@Fh&EDKt^L<47cr=Ow)e%*NJ1Pta- zv~Z+v<}@ket4SX5_0i#{TF9rb`Jm@Hkf92$+~iT+6=yyXTK2BAlc?t*$DGUU;c4(4 zN#hQo9m3io%y-Fu1r9qj*)K%l=btU(A17_-U~B;9b27&K6{&<yQp;wz3<3^?Jx@Bb zk3?j~W9NLy{tsK+7cqE=T-f<bw0@zD2DdOtXtB7kl!oIZr8LkrQ!71%Y0%3fWV?+f zl#V!XmErI;&G*fUrbOi?4*RCL5L{U%cw0D@^>CdigQEMX>=>)d+x)IOFgbF5Ti9{I z`Z#ad-*G1?<-MRcA|i>zdmdtqy4SP!hnkG(a#HND5WTh!g@Dtfg<BNJOv(`6S%c8g z9YU_HL7u|ZDY4z5$R1^k#g$DZ(AF~>eAE|q7%rdZv$L`~-Tz*?_t>VIA{m%?hKtld zDk#gD4)jGGn_Ker!G~VC=#uv*aXJE;M#3n2BV1p^W<ZgaA*ay}8CAa3pKqKlc<&3T z@0cqy!gmZ^J|+#=(_i)`xe<$(GsKSag7^=pvxWVQw(u5m%n}kfgw(SWtY>jN`c0=> zK8pKNL<B37E8sI_|L)DlEXY6gJ{Eq<sBV;TYGX3F+a*$z5PG3HLSMycB7qI!u7-~C z+RxB8CA9mUtnyy0e}-nvt$bbTolokSUkXbwVU^A?{;={oR1sh8md_N#(t?sKfMB=P zJ8S9VA@K^%(pziC@I+~?H9mk{@qMKhST_gLl)zM%YD8+Qalr9xP$sp~&*ryFuOP^g zoV#YjaX<D;?nnhR7&OtcsDMUQ76S_`fUAs$2$DRpVK741c|`qeKxHkd^EWWVe2*cW zZa}uq?fIf<<HH~xK(7LV27i=Y<=>|>VG?ZAm$>QyXXj7>204)9i%xuySo@5y;%39L z{6Fu$FHB#FPJAsWdZ2;!C_sKKyS$osF#ZSspVP+U)7!f{?JoBtUHLBdxPm-1_>Igb z%|0xC#&%*YnCBDJY#5m{UW1D8G-q^SYJlZEeEOF=8bqu{;)`UyeENJ4kywjo^zfsa zaD%f*S{)o51C<xPwu_6!Hv94V-WQuuGD0FfD}=q8#%Qha9owOlA0stSNX8sk3cb`w z3s~?s$xb;J?)>u)Q7ec*4@WwU?Y!g|SFJcRfQxAH^IUMXcepyZw}85)rRe;iev+U8 ziywjy<Sa&@OK>6#OUMBrjLrU~^)8HZzA`K{O-C(RqP+0-R~mRO+~t1n+qs>7MR+Zv zLL%O*e8)TH6mOK*n5yrowyn&4)xopJNSdL-jn;QFoH8Lq4M*XW{(e@k1Txr3_p^g% ze;{#|Ep$P}0owky&|r5qP_>0bgmTrljzJ&gij>+(!%vj@?qFhf@&%WVpjt7eSRwG2 zTa41N$tNGvsA0~9|G<~E=qlO3EWMl-wSpgn1LUPM=%WQ&*YVofG(r`LK<g*-bFB2U zich|m9#hVTzX_FzkmdKNu0y2(C643x7>)Py1~fw6(2kSd_}CN;(ybsR54^7!Aedm@ zU;9xH>jeAgN!GaVrU}zR%G*0ExhiCux|4+E-Jm;nIqf36>fUz3YOAeYzH;B4Vg<re z+ZLWsZ$-8R3L{M+GU>n|3}k{P@uv8#Plwj*tGja0W!K0-A*x>_rLHzC8nK_~j=%DK zgB2*MeD_LXS%(L0>;CYOwlL-R(ItB-Ih&Mm47P~<UQhav!2pyba$<qlCv$=;rmonY zrix<m#>J&5fu3vNQU%UwxT3zws7f>p64yU5_eA?3XJ4|%f%!*@@u%f=obAW{G^sD@ z)B@Y;@Rd&4m08wV3d@1ESqiEVcI+)K_~i#^WX+6_{3j&SnPt(g=N4iiz5?UD!V#mE z8pK2px9yKaD$MwhWI+)sw5|T>sKmjS25(#$jr>%jSr2LxqJhD`B8oR!ii(n_lh;*C zT>3<rM%t7nxw%1!{)cHv?|B>>;)Ab?lS8@Hdgy^siaB61VIUeD9O_NteeX<9Qkd}8 zD_*f5bM=CMSW}WJWSUuCgEOkUH*Iib<A6(UMa&?Uw9R`M%%-1@B~GF`gfHh_PG<8g zWMq=W!kIf{hom;^>9h#g8<4-p3#YTxf##frOljM{xJzfE>~01hrnGfN&;vWtAPi_@ zLyDNYPP@b!e^D-*7h_S-$rrK5DCDb;`ge(@_GN(_?=Z(UNiKU!U$o{xyyek03S?XB zWG*X{T8l_F(G^3DDrQ9Ghz=57I0k>(rCBm!aY8uC+2`3Zk2rcDjs2vE2dlA?zOuN| z_0-|lwHFT>dej46{Fb9(Qi!E<0Y(^j1Sk)bzQ9C}fD}B9!PfGtC!F;l-1C@w>hOLO zGy61!m1OwEg&HXt?*UK!C#u&r?~OPxOp(${%IeqaK3eEjFG$O55MIh&ZzI3!t{`iW zf&YT8+wekhe0iV^H?m~<P2#;Bo%X8&*XFzeFs8?9)W4~OE+YSvHO)Jax3?jk>U16; z5CTv!du3-Zxi6R@CB-Entw@xF?tnzC)~LjHpXBSyxC5BQ47v*AB*^|(vbsGPppFAd zR`KTAj!@6}wG8KKE%}G!qhZ-rL}YM^Z6ZKC&vTaQ^BxqzzdRWR0H2nFN^Spw=+1uF zgsrtqO@hZ*6$LO`n2_)$KFr?&fc*pp&DV?sPamW5Zdi6K0$K#5Pad*kVzBJkXH@xr zLjw_mxdH4Br={O{SVch~hmH4&ahK78)ka`xy8m<f+63bR7qQ&}K=9EbH0l!HIYhDC zR6z{6s<~p&p4l&iru3+cFu8*J=`g9yX4qU<nuLTr=lMbLoQ|m%R${Az6beZS$eWH5 z<W}n>gu>_u<nQ3Bz=Qr36OhF3TArm_22rQmN)74-h7TKIwdeF1%Rr;9;OI>{REv!2 z8M^g15QBJ<Wgfj+CU>l(w<VyY^6DK=EZARCJyq}i`_*2yI~lbLA0%xtg{w3Lw)ybK zal~`sf-eP}5V}4T&2BiH0OOdsokK=NkF}CQ|4V)0#%Zh$A40S<<1HKpO1TF6{Uf{7 zt}1)(IA6TyXS%_8e?6!L+o{UYgCNlvG?PV+b+$^wFSj36h79gtR04XkhAqL~fE2l2 zb0p;IzyVb6q`5n7$?IG`s^G}v`C}s!s#bKs>x)D!!;s@?@(g=3led?K81IpOF>vNS z^9X-*WbX9PZ+=dt29M{;yFd+12>rn+`jm?WW^DoPQ0;3(!S1AJ>=8JTVyf><O~?Zq zbN+=59X)=h*<FNjX4se9P{&9KmaOugj5Is{NCMxB2;I>(Q*7Qmc2axmW)SOE#LI-5 zgaOEZV=!pQf~$BzcM4C84j8}7QgES>E?9me{TfRQhB&+x;czhEK<?7V{)J=jZK=iY zf$Uvax`YMK%71U)^_ut$NypR<F;t%%gD6cMi8Ifo4nsc(!&(n-B*v*1<--XHW}a<w zU#{-lV9>+U)vIVhA435a7L)G1@P%_)ru9~28JI949BoJJxIxUQjtTWm!lWlFd`(Tp zkWz@i!S89^sMN=5C^ah-)Aq;7WZX5ewjQXXaPYe+MJc%IDq6=dx<i|%P6n-AOwB<5 zjS3ByQiqxVMUq7&In)vGdcp*O&do^}o@fom#TxC)813_QJUaq!LB<?E@Smtfp~J0V zp3EI(o<3HxQYws+b=25AGmabd)j$tJvL`P2$(gb6Bl!~*Ns7<IrLk);t;stz6Cd{$ z0uFHF*<|KrzHPr<BKZS=V_xtk-M9j`*01@H%_8)|cduO7<GpwOhmDo*G!?IEUU?&m zvoU*<Y0Z?&kax5cdK&JinXQz0y$L9na38Ny`!8qS4STK%SuXJjoz}T+K3H~X#$`@C zcfSlvNQ<a=87WIa?)-jpC%IWyS>mJ@o%SE@J@v9eAuZNNuavrCD`yA0kX*AH9GpCV z06ss4MA66R4gCM*_9YaxVH^DlB@2k7f1how)Q@n6vQ@XpWILuaLw=)))W6I<hE;@^ zaszm$6O9@rEHfC&l$wD85gJwC`2>xCbtynn!}ynRlJ|c5B6nf81zC2&RnFC|3Uz_k zE0K5m)<4~Wf&jS&r|%1t{Qt56IQRgv@dV@XK7OT90Lhj%Kc*`^3`~4O^MBVZ{>)S_ zeG<fpdK#>YV)FX;hSZlWu`OYzQ|0fy_&M>3c5F#NGKOF~)vf?>C_w=U0qU*pUz8kL zTQbCSZhSddpyqIjPRUPdKTnS?e0uHjHo^EZDjpOfrH<pb8pT8rdU8IcQ4?T){ON1; zvuj)5;yau~Pvz(V!O?2|I-s_32Oa$Th?B-|0i5J;(bak^XLJG{v@9{y|5l@c)hbsb zE!BT03R`>f|7#6+b}8Jr+n#^nz;dk%{S&*nP9lvgX;F;L*zpBxU7<INhQW$Gt}{~d zc4Y(o1+2d{O%@<XH}z@?#$R@o5T;}0W~7gYa!2YvR6pnMG$Q+N-g^mu*OwEaM7-av zxkvl)d+b$rT+r>>6t0vLAz~8@-;HPT3dT0+kME9xsDIpUKJU5ueAO{(pui6#LP>*T zctC~fUHEPMM+eT&vy^Dn(R>yx<@qpnCpCYVxjXgLh*xM?q^EJniDhY);C55^EFCj~ z-Q^5m)#NvLlNBD7xr}znGEE&Q@l03MuR72_-)?ZZ*ChVyl?B<X-;6T@bH`L-Ub~<e zCBy5oWC`tbmubIwBBZ+__bI#|H!h=<c3|EGMSpFOQbV?I3Y8sS7LnHk7^WtY6;+vE zP)Qssu-Ymr-O7B_g4Jh58LL$WD>tY*8^QDQloR|1v3)2&&)2kxbzaQVn7}^q1zB-H zefBjHL-LG^0#+k-V=AKRNP}RajFvjzO^<j?tX9>JSRW@yghqO3w(Z1x#rQVF^^M@l z18|3lNZorHGTEpj?W*ISxd<aP7IrF1-e~z9IGeX`WW0lfbUNV<CL|bF74&9fm^dzd z$5&vC?~LFisuuqqfLVk2!ceWPru&UdI&G5L>Nq=*6m!$lVB*im;m11~L1bp<1;nn= zDg{8puM>(3G=VMEd7R8+&J*#8cS<7FnkO~TJZkD9^2Y4e!NFT^uwiBw4*O&jUnh+q zhV|S6XP2r!KYfdxWih;y>+dO7&w#`w@cI_7+;-kR=7spkwZ;vhgPT^&Q#$0KBx1w* z_tw^zNo+Hj<D9yAc~E2W1=rVdtGQKy6nSjPdE=eD0_(VvfC(BkrU7$6vy(^ON)0*C z>W!?&^_@AYpMzHM2WBV2UCr(&CQJuxCe1^{iMfFFzsoYe#E-xlR^g7+++JtuZCHEH z{Jz!J-U=mq1$sL4I83_m4vQ&AHU`u)!|W^HBxg8w(ub!K6mkLg&VNNmPL>iGE`axh zrGBliBaY=tVmI=g14f|yF;A#ThH2|ry(8;E2uEhg0``i)tVtm!6;Q`5&Q%cvEnd2~ zsJ4K1Qj$U*H=QVKLuR`|v`qdfHAMhwE}QEd9@4>`V=%F6pJ_($P;s>Q12|cl?_Al* z{)ycNSVT2nLfrRH?7jv9Cf6YH=!l0y@3X_iZqtsu=L3p0QNw>+MGe$sjr<SgYF$xG zPJ^)n;Bvs5q;Y26f4}Q!bm41=<&Obxq|x}k+CxPbC~H2X^EzW~!5Mhd1{H)E6a8bQ z7MZXTwh><Bx!L8fV({c(*U0Jh;<G4K!%7p6o#NE;ExH&^LoxDH^Vh8qtfcLuQZ+VY zOX+q5vC~2N*E4lT2ESd#`D8^-C)ERDIkIrj5R9Rnf3X)(KA>*fC`7?t?xZZQE>|sM H5%T{4lueRB literal 0 HcmV?d00001 diff --git a/zh/scripting/typescript.md b/zh/scripting/typescript.md index b83ab3822..c1b3e1bfe 100644 --- a/zh/scripting/typescript.md +++ b/zh/scripting/typescript.md @@ -8,8 +8,6 @@ TypeScript 是一种由微软开发的自由和开源的编程语言。它是 Ja Cocos Creator 的很多用户之前是使用其他强类型语言(如 C++/C#)来编写游戏的,因此在使用 Cocos Creator 的时候也希望能够使用强类型语言来增强项目在较大规模团队中的表现。 -从 v1.5 版本开始 Cocos Creator 支持在项目中使用 TypeScript 编写脚本,用户的源码可以完全使用 TypeScript,或者 TypeScript 和 JavaScript 混合使用。 - 和其他 JavaScript 脚本一样,项目 `assets` 目录下的 TypeScript 脚本(.ts 文件) 在创建或修改后激活编辑器,就会被编译成兼容浏览器标准的 ES5 JavaScript 脚本。编译后的脚本存放在项目下的 `library`(还包括其他资源)目录。 ## 使用准备 @@ -24,11 +22,13 @@ Cocos Creator 的很多用户之前是使用其他强类型语言(如 C++/C# ### 在已有项目中添加 TypeScript 设置 -如果希望在原有项目中添加 TypeScript 脚本,并获得 VS Code 等 IDE 的完整支持,需要执行主菜单的 `开发者 -> VS Code 工作流 -> 更新 VS Code 智能提示数据` 和 `开发者 -> VS Code 工作流 -> 添加 TypeScript 项目配置`,来添加 `creator.d.ts` 和 `tsconfig.json` 文件到你的项目根目录中。`creator.d.ts` 声明了引擎的所有 API,用于支持 VS Code 的智能提示。`tsconfig.json` 用于设置 TypeScript 项目环境,您可以参考官方的 [tsconfig.json 说明](https://www.typescriptlang.org/docs/handbook/tsconfig-json.html) 进行定制。 +如果希望在原有项目中添加 TypeScript 脚本,并获得 VS Code 等 IDE 的完整支持,需要执行主菜单的 **开发者 -> VS Code 工作流 -> 更新 VS Code 智能提示数据** 和 **开发者 -> VS Code 工作流 -> 添加 TypeScript 项目配置**,来添加 `creator.d.ts` 和 `tsconfig.json` 文件到你的项目根目录中。`creator.d.ts` 声明了引擎的所有 API,用于支持 VS Code 的智能提示。`tsconfig.json` 用于设置 TypeScript 项目环境,您可以参考官方的 [tsconfig.json 说明](https://www.typescriptlang.org/docs/handbook/tsconfig-json.html) 进行定制。 + + ### 在项目中创建 TypeScript 脚本 -和创建 JavaScript 脚本一样,你可以直接在文本编辑器里新建 `.ts` 文件,或通过编辑器的 **资源管理器** 的创建菜单,右键点击一个文件夹,并选择 `新建 -> TypeScript`。 +和创建 JavaScript 脚本一样,你可以直接在文本编辑器里新建 `.ts` 文件,或通过编辑器的 **资源管理器** 的创建菜单,右键点击一个文件夹,并选择 **新建 -> TypeScript**。 ## 使用 TypeScript 声明 CCClass @@ -62,56 +62,55 @@ export default class NewClass extends cc.Component { // ES6 Class 声明语法 ### 更多属性类型声明方法 -声明值类型 +- 声明值类型 -```typescript -@property({ - type: cc.Integer -}) -myInteger = 1; + ```typescript + @property({ + type: cc.Integer + }) + myInteger = 1; -@property -myNumber = 0; + @property + myNumber = 0; -@property -myText = ""; + @property + myText = ""; -@property(cc.Node) -myNode: cc.Node = null; + @property(cc.Node) + myNode: cc.Node = null; -@property -myOffset = new cc.Vec2(100, 100); -``` + @property + myOffset = new cc.Vec2(100, 100); + ``` -声明数组 +- 声明数组 -```typescript -@property([cc.Node]) -public myNodes: cc.Node[] = []; + ```typescript + @property([cc.Node]) + public myNodes: cc.Node[] = []; -@property([cc.Color]) -public myColors: cc.Color[] = []; -``` + @property([cc.Color]) + public myColors: cc.Color[] = []; + ``` -声明 getset +- 声明 getset -```typescript -@property -_width = 100; + ```typescript + @property + _width = 100; -@property -get width () { - return this._width; -} + @property + get width () { + return this._width; + } -@property -set width (value) { - cc.log('width changed'); - return this._width = value; -} -``` + set width (value) { + cc.log('width changed'); + this._width = value; + } + ``` -注意:TypeScript 的 public, private 修饰符不影响成员在 **属性检查器** 中的默认可见性,默认的可见性仍然取决于成员变量名是否以下划线开头。 +**注意**:TypeScript 的 public, private 修饰符不影响成员在 **属性检查器** 中的默认可见性,默认的可见性仍然取决于成员变量名是否以下划线开头。 ## 完善的智能提示功能 @@ -175,13 +174,13 @@ export class MyUser extends cc.Component {  -__注意:如果将已声明属性修改为数组类型,但是在编辑器中却未生效。那么请通过组件菜单对组件进行重置。__ +**注意:如果将已声明属性修改为数组类型,但是在编辑器中却未生效。那么请通过组件菜单对组件进行重置。**  ## 1.10 版本之后的特殊类型 -在 v1.10 包括之后的版本,Creator 对资源类型进行了部分调整。`cc.Texture2D`, `cc.AudioClip`, `cc.ParticleAsset` 类型数据在 ts 中的声明一定要按照以下的格式进行声明: +在 v1.10 包括之后的版本,Creator 对资源类型进行了部分调整。`cc.Texture2D`、`cc.AudioClip`、`cc.ParticleAsset` 类型数据在 ts 中的声明一定要按照以下的格式进行声明: ```typescript @property({ @@ -205,10 +204,12 @@ Creator 中默认所有 assets 目录下的脚本都会进行编译,自动为 ### 命名空间工作流程 -1. 在项目的根目录下(assets 目录外),新建一个文件夹用于存放我们所有包含命名空间的 ts 脚本,比如 `namespaces`。 +- 在项目的根目录下(assets 目录外),新建一个文件夹用于存放我们所有包含命名空间的 ts 脚本,比如 `namespaces`。 +  -2. 修改 `tsconfig.json` 文件,将刚创建的 `namespace` 文件夹加入到 `include` 字段中,表示我们将会通过 VSCode 编译这部分文件。 -3. 在 `tsconfig.json` 的 `compilerOptions` 字段中,加入 `outFile` 字段,并设置一个 `assets` 文件夹下的文件路径。通过这些设置,我们会将所有 `namespace` 目录下的 ts 文件编译到 `assets` 目录下的某个 js 文件中。 + +- 修改 `tsconfig.json` 文件,将刚创建的 `namespace` 文件夹加入到 `include` 字段中,表示我们将会通过 VSCode 编译这部分文件。 +- 在 `tsconfig.json` 的 `compilerOptions` 字段中,加入 `outFile` 字段,并设置一个 `assets` 文件夹下的文件路径。通过这些设置,我们会将所有 `namespace` 目录下的 ts 文件编译到 `assets` 目录下的某个 js 文件中。 ```json { @@ -225,18 +226,17 @@ Creator 中默认所有 assets 目录下的脚本都会进行编译,自动为 } ``` -4. 按下 `Ctrl/Cmd + Shift + P`,在 Command Palette 里输入 `task`,并选择 `Tasks: Configure Task Runner`。在弹出的对话框里选择 `TypeScript - tsconfig`。这将在 `.vscode` 文件夹下新建一个 `tasks.json` 配置文件,并配置根据 `tsconfig.json` 来编译项目中指定的 ts 脚本的任务。 +- 按下 **Ctrl/Cmd + Shift + P**,在 Command Palette 里输入 `task`,并选择 `Tasks: Configure Task Runner`。在弹出的对话框里选择 **TypeScript -> tsconfig**。这将在 `.vscode` 文件夹下新建一个 `tasks.json` 配置文件,并根据 `tsconfig.json` 来编译项目中指定的 ts 脚本的任务。  -5. 现在你可以在 `namespace` 目录下书写包含命名空间的 ts 脚本了,编程完成后按下 `Ctrl/Cmd + Shift + B` 触发默认构建任务,就会将 `namespace` 里的脚本内容编译到 `assets` 目录下的指定文件里。每次修改 `namespace` 中的脚本后,都应该执行构建任务来更新编译后的文件。 -6. 回到 Creator 编辑器,在资源管理器里选中刚生成的 namespace 脚本 `namespace.js`,在属性检查里设置 「导入为插件」。避免编辑器对该脚本进行进一步的编译封装。 +- 现在你可以在 `namespace` 目录下书写包含命名空间的 ts 脚本了,编程完成后按下 **Ctrl/Cmd + Shift + B** 触发默认构建任务,就会将 `namespace` 里的脚本内容编译到 `assets` 目录下的指定文件里。每次修改 `namespace` 中的脚本后,都应该执行构建任务来更新编译后的文件。 +- 回到 Creator 编辑器,在资源管理器里选中刚生成的 namespace 脚本 `namespace.js`,在 **属性检查器** 中设置 **导入为插件**。避免编辑器对该脚本进行进一步的编译封装。 这就是在 Creator 里使用 TypeScript 命名空间的完整工作流程。 ## 更新引擎接口声明数据 -Creator 每个新版本都会更新引擎接口声明,建议升级了 Creator 后,通过主菜单的 `开发者 -> VS Code 工作流 -> 更新 VS Code 智能提示数据` 来更新已有项目的 `creator.d.ts` 文件。 +Creator 每个新版本都会更新引擎接口声明,建议升级了 Creator 后,通过主菜单的 **开发者 -> VS Code 工作流 -> 更新 VS Code 智能提示数据** 来更新已有项目的 `creator.d.ts` 文件。 --- Cocos Creator 中对 TypeScript 的支持参考了很多 [Creator TypeScript Boilerplate](https://github.com/toddlxt/Creator-TypeScript-Boilerplate) 项目的设置和做法,在此特别感谢。另外这个项目中也包含了很多关于使用 TypeScript 项目的工作流程和高级功能,可供参考。 -