BLENDER_v230REND LeSceneSRd Z R SR1-Animation   U   T .DATA S4 DATA4 S-  DATA- S 4 DATA S: - DATA: SdP DATAdP S : DATA S\ dP DATA\ S<  DATA< S\ |DATAS < |DATA S DATA S DATA T 4 - DATA Tt   DATAt T  dP : DATA T t  4 DATA Ts  - \ DATAs T  \ DATA T s < : DATA T  dP < DATA Td:  DATAd: TP  \ DATAP T` d: < DATA` T< P dP \ DATA< Tb `  : DATAb T <  DATA T\ b : DATA\ Tt  dP DATAt TU \  DATAU Tt  DATA Vj   Ji $ T DATA$ U Link and MaterialsEditing>DATA U\ $ MeshEditingF>DATA\ U Anim settingsObject>DATA Ud \ DrawObjectF>DATAd UT ConstraintsObject>DATAT Ud EffectsObjectDATAi E 333?@DhC5:@DhCC(BDC?z?DATAT Gi 333?/9DATAj Vk   4 - \ DATAk Vn j :  < |+9= z=o?{{{|S' |l < DATA U< Transform PropertiesView3d>DATA< U 3D Viewport propertiesView3d>"DATA ' @|l 333?d"????????|+9= z=o?;AK A?|+9= z=o??????;A  B?=C DATAT|l G' 333?d"/9DATAn V k < \ dP ??Pף}}}n | u u DATAu UTransform PropertiesIpo!>DATAn D] 333?(zC̽̌?zC@CC #< #<`jFzD Dp OBzC̽̌?DATA] H n 333?(@zAAQAQAB A@CC #<@ l DATA, dl BO`A DATA,l d BOp=A DATAx K- ] 333?(6 j>DATA - @| 333?(??? ???? A???PA A!O?j?}GCHB? A  B? #<C@h@hDATAT| G- 333?(/9DATA Vn : dP   ,C  =܈ DATA=U܈ Link and MaterialsEditing>DATA܈ U=MeshEditingF>DATA,C  333?l2zCCHBC?CFC= ADATA E ,C 333?l2#DhC`DpJgChCC(BDC?z?DATAT G 333?l2/9SRd Rl Z SR2-Model t  <Y  T . DATAt S DATA STU t DATATU S$ DATA$ S< TU DATA< S $ DATA S} < DATA} SH DATAH SJ } DATAJ S H DATA SJ DATA<T̝ TU DATA̝ T <$ t DATA T$ ̝ < t DATA$ T4  $ DATA4 T $ < DATA TH 4 } DATAH T5  H TU DATA5 T H } H DATA TC 5 < } DATAC T H DATA T~ C < J DATA~ T [ J DATA [ TD ~ }  DATAD TY [ H  DATAY TD  J DATA Vt t < $ ?@PףJ 4 d; \b g $s DATAg U$} PreviewLamp>DATA$} U g LampLampF>DATA U! $} SpotLamp>DATA! U Texture and InputLamp>DATA U ! Map ToLamp>! DATA Uԁ PreviewMaterial>DATAԁ U MaterialMaterialF>DATA U$ ԁ PreviewWorld>DATA$ U| WorldWorldF>DATA| U $ Mist Stars PhysicsWorld>DATA U | Texture and InputWorld>DATA U Map ToWorld> DATA U OutputRender>DATA UD RenderRenderF>DATAD Ul  AnimRender>DATAl U D FormatRender>DATA U l Link and MaterialsEditing>DATA U MeshEditingF>DATA U Mesh ToolsEditing>DATA U4 Mesh Tools 1Editing>DATA4 U\ CameraEditing@>DATA\ U 4 ShadersMaterial>DATA U \ TextureMaterial>DATA U Anim settingsObject>DATA U DrawObjectF>DATA U$ ConstraintsObject>DATA$ Ul~ ScriptlinksScript>DATAl~ U} $ EffectsObject DATA} U| l~ Map InputMaterial> DATA| U{ } Map ToMaterial> DATA{ U | AnimAnim>DATA U| { SoundSound>DATA| Uw ListenerSoundF>DATAw Uv | SequencerSound>DATAv Utx w PreviewTexture>DATAtx Ut v Mirror TranspMaterial>\ DATAt U$s tx Curve and SurfaceEditingF>DATA$s Ut Shadow and SpotLamp>DATA E 333? DhCHDATA L[ @T 333? ??? ???? A??@PA Aj?c3>}GCHB? A  B? #<CzzDATAT H4 L[ 333? @̌AR|B1@lA A@CC #<@DATAT4 GT 333? /9DATAt Vl } TU H  m DATAl V t J  H ?T?AHM   d , $ $ Lr Lr DATALr UTransform PropertiesView3dG >" DATAxd K l G&  >$DATA Db d 333?l B̽̌?zC A #< #<`jFzD s OBB̽̌?DATA b @   333?l LJ>6h?FHzlK >]]z<4h?kK >R5L?GH]]\I?u Ma4A?{C]>;?;JI?FH?4Ƚ->g>]]>I<2~?n[IUq!BvB;bvB8>ce<g30>L^=>#?@CʪBoa՟Jקõly_By'@?T?AHMLJ>6h?FHzlK >]]}2?ɽB  B?=C@x7@2A DATA  E, b 333?l DdC8CnD fCC(BDC?z?DATAT, G  333?l 0Save AsEPUT PICTURES\\Rnwlserver\workfolder\Transfer\er/../Drop2Group.blenddDATA Vl < }  J HO<^<o? > $ |n |n DATA|n UTransform PropertiesView3dR9>" DATA  @ 333? Ђ>N7K>;rj;s)n>Tq"7>Žs? }>%A=A?Ђ>m;sy"7>V7K>)n>Ƚs?;rT }>t\iLR@ƥ?S;E0; :YDqN;(9I;lS<#>#>ul<?FA2ˆ,bAFjAHABPCBt\iLR@ƥ?HO<^<o?Ђ>N7K>;rj;s)n>Tq"7>Žs? }>%A=A?(?[ї>P)>B  B?=Ct\AeLRƥA DATA E 333? DdC8CnD fCC(BDC?z?DATA D$  333? zC AzC A #< #<`jFzD OBDATAT$ G 333? P 9Save AsEPUT PICTURES\\Rnwlserver\workfolder\Transfer\er/../FollowTerrainPath.blend0@SRdl R SR3-Materialodel Sing L> :  T 5DATA S\ DATA\ Sԓ  DATAԓ S,] \ DATA,] S\ ԓ DATA\ St ,] ,DATAt S$P \ ,DATA$P SĚ t DATAĚ St $P DATAt SZ Ě ,DATAZ S. t DATA. ST Z DATAT S .  DATA SL> T  DATAL> S DATA: T4/ \ ԓ DATA4/ TT :  ,] DATAT T 4/  \ DATA T: T ,] t DATA: TT \ t DATAT TT( : \ $P DATAT( T[ T Ě ԓ DATA[ TA T( Ě $P DATAA T [ Ě t DATA T A t \ DATA Tԇ t t DATAԇ T9 Z Ě DATA9 T^ ԇ t Z DATA^ T 9 . \ DATA T ^ . $P DATA Ta  Z T DATAa TdV  t T DATAdV T40 a . T DATA40 T dV . DATA T  40 T DATA  Ty  $P L> DATAy T  Z L> DATA Ty L> DATA V  \ t ,] ?@Pף++ , \ m \ DATAm Ul OutputRender>DATAl U m RenderRenderF>DATA U\ l AnimRender>DATA\ U FormatRender>DATA  333?zCCHBC,?CFC= ADATA E 333?DhC?DhCC(BDC?z?mDATA  @< 333???? ???? A??@PA Aj?c3>}GCHB? A  B? #<CzzDATA< H\  333?@̌AR|B1@lA A@CC #<@DATAT\ G< 333?/9DATA V  $P \ ԓ Ě DATA VD9 t Z Ě t G@? JL - -G Hh~D3 7 l2 DATA U OutputRender>DATA U RenderRender>DATA U\ AnimRender0>DATA\ U4 FormatRenderH>DATA4 U \ PreviewMaterial>DATA U/ 4 MaterialMaterial>DATA/ U0 ShadersMaterial0>DATA0 U1 / TextureMaterialH>DATA1 Ul2 0 Map InputMaterialD>DATAl2 U1 Map ToMaterial`>DATAD3 EL4 333?lCqhCC~qLmCC(BDC?z?hyDATA L4 @6 D3 333?lJ>H!?)xu?i6>Pbܗ=(?^L?a?滎z?J>#xu?ܗ=Hi6>(? ?Pb^L?\FAA?4[?[!?@jG>gb>Pb>4Im>k&?]M^L<0@AzA=>Kc<2֍7&> ?:x¸A1vB,jB~@G@? JLJ>H!?)xu?i6>Pbܗ=(?^L?a?滎z?@?$$OA  B?=Ch?j(4?t'>SSdDATA6 D7 L4 333?lzC AzC A #< #<`jFzD OBDATAT7 G6 333?l;SAVE FILE/usr/home/intrr/blender/blend/untitled.blendDATAD9 V \ . T t U.=z=o?- -GH S<: D DATA <: @$ 333?\???h?j(4?t'>????hj(4t'?U.=z=o??OA  B?=Ch?j(4?t'>dDATA$ E, <: 333?\DdC>9C,DeCC(BDC?z?DATA, DD $ 333?\zC AzC A #< #<`jFzD OBDATATD G, 333?\ SAVE FILE/Users/ton/Desktop/der/blend/untitled.blendDATA V D9 L> Z T e?8?AHM    S < DATA  @ 333?,L?В ?K?ȳ>?M?K?<ȳ>T5L?В ?ZI? @μ@?ƾ\?lU В (??3>>]`b4AAVl>K?x<4쓾S>>3ApןAAA)@e?8?AHML?В ?K?ȳ>?L?ՙξAE;OA  B?=Ch?j(4?t'>dDATA E$ 333?,DdC>9C,DeCC(BDC?z?DATA$ D<  333?,zC AzC A #< #<`jFzD OBDATAT< G$ 333?, SAVE FILE/Users/ton/Desktop/der/blend/untitled.blendDATA V . $P L> (.=^=o?    S DATA  @ 333??3?3^I2(o(4?? 3?3^=i(4J2(A?(.=0n;^=ꉖW5jOT{:?OA2 5AC^=k(4J2(A?(.=^=o??3?3^I2(o(4?5?5OA  B?=C^j(4?J2( Z ZdDATA El  333?DdC>9C,DeCC(BDC?z?DATAl D 333?zC AzC A #< #<`jFzD OBDATAT Gl 333? SAVE FILE/Users/ton/Desktop/der/blend/untitled.blendSRd Rl SR4-SequencedH ^ ]  x T 5DATAdH SL~ DATAL~ S dH DATA St] L~ DATAt] S DATA S t] DATA S4 DATA4 SY  DATAY Sd 4 DATAd SW Y \DATAW S d \DATA S^ W \DATA^ S DATA] T$ L~ DATA$ T< ] dH t] DATA< T $ dH DATA T] < t]  DATA] T  DATA T ] 4 L~ DATA TD Y DATAD TtX 4 Y DATAtX Td D d DATAd Tc tX d 4 DATAc T4 d W Y DATA4 TT c W  DATAT T 4 d W DATA T T d DATA T4  W DATA4 TTS  4 ^ DATATS T 4 ^ Y DATA TTS ^ DATA VD dH  t]  < DATA< U OutputRender>DATA U < RenderRenderF>DATA U AnimRender>DATA U FormatRender>DATA E 333?uDhC&ԓDhCC(BDC?z?DATAT G 333?u/9DATAD V< 4 L~ Y DATA< Vt D d W  8=i>o?[  [P 4 |r DATA4 F$p 333?}|zCAzCAPP A@FB= A DATA $p @|r 4 333?}|????????8=i>o?fffAD&@??fffA  B? #<CDATAT|r G$p 333?}|AVE TARGA/t1.blend9DATAt Vx < ^ Y W 8=H>o?]]]]S  Tw DATA Ft 333? zCAzCA1||1 A@FB= A DATA t @Tw 333? ????????8=H>o?fffA*@??fffA  B? #<C>>DATATTw Gt 333? AVE TARGA/t1.blend9DATAx Vt d 4 ^ 8=>o?]]wx8y n DATAy Dz 333?ሜB̽̌?B̽̌?88 #< #<`jFzD SQB̽̌?DATA z @n y 333?ሜ????????8=>o?fffA@??fffA  B? #<CzzDATATn Gz 333?ሜOAD FILE/9SC(T >SCScenetageain D= )Ybϰ1< edd??< d@dd??Z@??//backbuf/tmp/ballonhill.avi//ftype@&#@^@&^#DDATA 8 ?  DATA ? 8=   DATA= 8= ? / DATA= 8D= =  DATAD= 8= s DATA(< 7,d'=A@OB 5 OBCameraamera.001 L. u Ma4A???{l?oc)@??LJ>z<5h?lK >S5L?GH^][I?u Ma4A??????!FI2g1?/ج?bDA5?d??)d??>)d????OB 5  OBGroundD} ']????????']?????LJ>z<+h?eK >Z5L?FH_][I?%c/$#B?Dd?? #=?>=?@???DATA OB 5s OBLamp g @???????? g @??????PUPM?? Ag@ ?DOBd?? #=?>=@???OBs 5 OBSphere.001 T- d d y ڑAΰ1????????Y gA@2????Aڑΰ1B?LJ>z<7h?iK >Q5L?FHc]YI?sFMAWB?DOBd?? #=?>=F $ ?@???e e DATAy DATAF DATA$ DATA  DATA`e   Const?OB 5s OBCurve xv?Z@N????????xv?Z@N?????Dd?? #=?>=?@???MED} 2\, MEPlane.001Tz    $ $ !g1F^e9BB@ADATA y DATA$ /!An B]AejAn ]AM`n ]HQ{n B]w 4n $3q٨xAB ]ARu46n Bg6;pg>'ӂ."v><6I>G&| hpANT'@7%shcAٯ/@([0cJY^'cWA* dqkAFAÂ?C'sFm ?LEwA]Wd^|A|AAd{b}(WAڪbzY8WX~R$ B>NW&w95#K6@vxRz}AffvqIb}AnA@p|vƒAnn7Aϫr}J0s֗HaIi\2s?>nA AWy` A @rxn9@yB+txtm>@#ݯ?l_A=HAdmmap3pFP B g$zzAEaqm>A~VJ@ڔgkqvA ʔq BXUL|e8AAAN?:aeUtAAN~@[$*o@A?B~B@YD ? hnAA A@ddzq)A@2AP `s,A-9Av|@;};A#?A O{ϹAA@?Ji(ApA2ABsuvA gGPA!aA^AAR$[LANA0W{8m_|@@PWA0 f~dA( q@w/W\+n7n%AQ#AyuA0 !@b/%fao O -Ht9§ nW+Gw8“8 p~A^-(wy°:JR|9{k8x!k* x W3L_AY9á"0k&@w?un¦@yfO>@ᣙ 9XAA{@AASAAf%t@Aq.? h@uA:*?$!tnLAg :A\qpP@{ǵR9A{lް=q)A A9@ACtWA{@lt]sL(XBxr&f{ɋBGo~Uv"@z C#-t+} ¹N{kBDL Y޺=j5hLP+tv]@k@-sTE?kt9 q5j|Ÿc[$pz蚏4n s-@T\gXgdGe3@cfBYbo9aC P41KyV=Z\ ^q{T<\vd[ L0n$b 5y"*|gB޾!hCZxf3õ@HZ.nXVwˤ on8" c qjC.n" ¯(tv#iq Ru9|I6jlA|Ew?~ɆkBA M]@P c71Aʸ>l2{IA fAW\{"@A.AaOb@$j5EF@L[>A˭$AdMi@+ FyulH@WLYW@ 倏n@WUh@r BQkS@@1Q֭b 5AHO"[pA콏 h?5A z@{MfO *ASur@*eu@@z `anAZ30Alf%Wli^@'Y%=oS pAa*UkAQ{*AeTB@A* x/AmuOKA-1o/AaAP*qA07ZclAAU^*'AvdFA(sA~#Ay~A֔u ADWkA˼s9AW~xANQo=A xAKAvA,jZ}A,FA@hQ{A\A9Ab"uċA=A)ATwvuATOAS2@ɷ{rAJA@NqԄATA @}WSAC@r&A25r:yiA⃈@@#ggA|@f"HAMqD/4AA5@ &XnI@Uo@{?Di.y@AbWAw@xh@GCA5> g$> C:A,2&_KKz@@^ |e:@<}A:3~]m >(~@=DzPaF@Aܥ=?jM@A݉]n$>KСAקǶa%>yAFAb@_̬$;o8AAg@АWt0AA%D?}=t@EIAd?J|FpAgA@.%pLn >3A׮nnk@?uBĂ>i4>{ȅAi4Dqt[ DA )o߱I2A| g"L B vi<"oAA_?ƒdsA$"$f+RAQ@Rly^A8$5Au*Q- 1#AOx)Uv@ {UǐkA}"e@\ʐWb*t\"A)B~InEALʱq* NqAEkϖsf8AfU8p| B}>R}4OEQA&exSzA3~-uFQb7 B3Y ryA+A@/pfAAJ@ʼ.lڗAAES@[)ekAhAZ@IzċAA)AܲxLAbAÀotA=uBK*AjAD'AK!HAbDmrA)AB#l|!A:gAA{|ArJ@,{yAe@J8cm0A (P@|~`*uA@ĺxjoA=w gϙۃw1kix|Sr |j lzxLx+ZF_ܢ,rKDz>x©;it{zAÄ@d_A{5)AS WJAHAG{AWA Az?AAg^@~xŘAŗA@l iAJGV^zAbeŔAY4˭r٤~[0A"<{4ԢDMARzIo@z;Sp%C[Z@䰫Ū^FSA|M\bAHP_e9AEIA0@l4/A@2@L7lgؖA@9 A*7"ev5AJA.@ٞyAAA A=zOAV_A;en*dAU {A,,t̘A4W=[A~a{/A/@2V:ASCA6KxM@Z|ՅGDZ@Y@LI>dAA@GQEA#Vz?cuc;H RqBMP1A-(l{; "* &fV`qwa\ɍKuIn\3X\dϪFV\T-?l{YY+8rNjR'u,mwa~(NUK_bTkB{@q >}LX@<ې&okAQ.Ax7~:(A}@H6,A %vwl@X@Ukv@9A92هjx&`)A8 f%Ey|@Z>OB>e@ s&vqfAqvAnAy AnrAlCA!j.HF\*{DATA $ * \e@fzoop ef@[\QTUWXZ Z _` U  b d d ij `ln qtuw  iy yb}u@  @}  @ @  _X  w  qnWjQ@ P >Q >W P:j:n P? 8 O 5q 5w O0 0 O7 . N + + N& & N- $ M ! ! M  M# L L  LX _@K@ K@  K@" J J!!J  ' I &&I% % I"H %%H) ) H( , G ))G++G* 1 F 00@F/} / F,(E~@ /~@/~}@E{~@3u{@ 3{y@ E|{@2b| 6xi Dvx 3yv@3vu@Drv5wr 5rqDsr4ts ;ml Ckm :nk:k jCg k9` g 9g dCh g6i h2c bBa c@ 9d a9a `B] a@<U ] <] Z B^ ]@_ ^@YXAVY <ZV<VUARV>WR>RQASR=TS =S[ AYS\Y^e@ Bc^@2fc@6hoCmh;pm4sz Dxs6ox2|fE|(, F1* G,(H" I'  J"@K@e@\L#M$- N.7 O8?  P @ MET- 2\, MESphere.001 V V Dw u *P~/?(???DATADw D{ DATAH /*?}/?P?!?@ 4?\=9Ⱦ!?-y>>9衿!?~/?=9Ⱦ!?{)@>9lP?!?, @\=9JC>!3y>`#P!A 4?bƶP!, @bJC>!{)@`#l?!~/?{r/??!???p6lsBk!?vZ=?5l^V>]V>?z>!JCt?!?_?p6l'?3V>?~/?lJCU>?}/?l&y?PZ=?JCBk"? @5l?&y=V>? @JC?^V>_V>?%@!JCg(?r}2o?y'(?y}??ysT?2(>;Ks}O@Q=T2(>Ŵs(y}??Es(r}2o?E'T2(3 %@Ŵg|O397@T?2(3 %@;Kg&y?=V>QZ=?X^V`V>~>[޶t3V>~/?^V^V>%@[޶g&y? @X?U>?/?JCBk>#yZ=?!??s!a?'Bk>" @?DATAu *P        @@@ @!"@#$@ %& !&' "'( #() $)%  )$  %)  $%@(#  )(  #)'"@ (' "(@&! '& !'  % @ &%  & @ $@ $ ##@"@"@!!@  @ @@@@@ @@    @  @  @ @   CU (CUCurveġ P P $ ̰ @斿zAA?d????DATA0P '  , DATA, %A+5A`qՄAD5gB{8@K Aݪ?cI:K>===?A@pATXdTXFollowTerrain: \s \s \s XXd ~V DATA:  FREEDATA U : |w DATAU  < DATA  T U << DATA T  | (o FlDATA  T w DATA  +DATA \, +DATA\, < -DATA<  \, d +DATA * < ; DATA* Y  DATAY  * ,DATA |O Y 4 .DATA|O tI ,DATAtI  |O  -DATA  tI ; DATA   ̭ DATA l l 3DATAl d  /DATAd / l 4; $DATA/ B d  DATAB L / r DATAL $t B TO DATA$t  L t: DATA  $t |  *DATA L Ą DATAL M 9 DATAM  L CDATA L M DATAL / \9 DATA/ 4 L 9 DATA4 c / @DATAc  4 DATA | c  @DATA| $? | DATA$?D/ | 8 DATAD/  $?4 ]DATA T D/ FREEDATAT ̔  T8 'FREEDATA̔ l T L7 ce.nDATAl \a ̔ 6 FREEDATA\a  l T6 FREEDATA Tx \a FREEDATATx   < (FREEDATA  ̟ Tx QFREEDATA̟ |  < FREEDATA| Q ̟ l5 &DATAQ  | 4 FREEDATA TL Q t FREEDATATL \M DATA\M F TL  ;DATAF 7 \M d ;DATA7  : F 3 $DATA :  7 T DATA + : , DATA+ l  t Y = DATAl d + DATAd s l Dt DATAs u d 3 $DATAu 4Y s 1 #REEDATA4Y < u \ FREEDATA< E 4Y TD FREEDATAE 4 < FREEDATA4 L E |t :DATAL $ 4 DU :DATA$ Z L DATAZ  $ V DATA & Z  x:DATA& LE lt DATALE T & ' :DATAT V LE <~  DATAV  T  exiDATA  V 4 x DATA   x DATA  $ DATA DV )DATADV   1 DATA  DV + DATA 4  41 'DATA4 - 6DATA-  4 l FREEDATA  - T5 #FREEDATA lr  4 "FREEDATAlr t d FREEDATAt * lr 4 FREEDATA* $ t FREEDATA$ L* e DATAL\- $ /DATA\- $ LD XDATA$ D \- -DATAD $b $ D -DATA$b  D 0 DATA ܬ $b 0 DATAܬ DH ,0 DATADH  ~ ܬ D DATA ~ dc DH  DATAdc ܊ ~ i :FREEDATA܊ 4O dc :FREEDATA4O 9 ܊ :FREEDATA9 l 4O  :FREEDATAl s 9 L ]DATAs T l DATAT | s  DATA| lW T  DATAlW , | DATA, t. lW \ !FREEDATAt.  , ĕ oDATA t) t. V DATAt)   7 DATA % t)  !FREEDATA% d&  !FREEDATAd& ^ % !FREEDATA^ $ d& 4' DATA$ ` ^ & DATA`  $ L DATA  ` c DATA \s  FREEDATA\s  t kDATA # Follow TerrainDATA|w #DATA < # by Harkyman aka Roland HessDATA<< # rolandhess@comcast.net1%DATA,| # license: Do whatever you want with it.DATAw #DrDATA, # This Script will lock the linked object'sDATA, # z-value to the surface of the mesh calledDATA0 # 'Ground', allowing you to move your objectsDATA,d # in x and y space and have them follow theDATA; # contours of the terrain. DATA #naDATA0 # The script uses the mesh of Ground, so youDATA04 # can use irregular shapes like mountainsides,DATA0 # stairsteps, etc. It uses the Object CenterDATA0 # for the object that follows the terrain, soDATA; # place it appropriately.DATA̭ #apDATA4l # Currently, the script only works on an unrotated,DATA0 # unscaled Ground object, so hit Cntl-A on yourDATA(4; # ground object before you use this.owDATA #coDATAr DATATO import BlenderDATAt: from Blender import NMeshDATA| from math import *DATAĄ  DATA9 def sideofline(PA,PB,PP):%DATAD  return ((PA[0]-PP[0])*(PB[1]-PP[1]))-((PB[0]-PP[0])*(PA[1]-PP[1]))DATA ex DATA \9 def InsideQuad(p0,p1,p2,p3,p4):DATA 9  if (sideofline(p1,p3,p0)>=0):_DATAD  return (sideofline(p1,p4,p0)<=0) and (sideofline(p4,p3,p0)<=0) DATA  else:DATAD  return (sideofline(p1,p2,p0)>=0) and (sideofline(p2,p3,p0)>=0)DATA|  DATA8 def InsideTri(p0,p1,p2,p3):DATA`4  return (sideofline(p1,p2,p0)>=0) and (sideofline(p2,p3,p0)>=0) and (sideofline(p3,p1,p0)>=0)DATA  32DATA(T8 def FindZ(TriangleFace,tx,ty,tz,px,py):DATAL7  [A,B,C]=TriangleFace.no1yDATA6  D=-((A*tx)+(B*ty)+(C*tz))DATA T6  return -((A*px)+(B*py)+D)/CDATA  32DATA,< def InverseTranslate(InCoords,DeltaVec):DATAT  return [InCoords[0]+DeltaVec[0],InCoords[1]+DeltaVec[1],InCoords[2]+DeltaVec[2]]EEDATA<  32DATA(l5 Ground = Blender.Object.Get ('Ground')DATA 4 InvVec = Ground.getLocation ()DATAt DATA bleDATA< #determine min and max bounding values of the ground objectDATA<d #so we can ignore selected objects not even over the groundDATA(3 GroundBounds = Ground.getBoundBox ()DATA T GBminX = 0DATA , GBminY = 0DATA t GBmaxX = 0DATA GBmaxY = 0DATADt BmiDATA( 3 for [gbx, gby, gbz] in GroundBounds: DATA$1  #adjust for Ground object locationDATA\  gbx = gbx + InvVec[0]DATATD  gby = gby + InvVec[1]DATA  gbz = gbz + InvVec[2]DATA|t  32DATADU  if GBminX > gbx:EEDATA  GBminX = gbxDATAV  else:DATA  if GBmaxX < gbx:DATAlt  GBmaxX = gbxDATA'  if GBminY > gby:DATA<~  GBminY = gbyDATA  else:DATA4  if GBmaxY < gby:DATA  GBmaxY = gbyDATA$ 7.DATA, #get the list of selected objects to dropDATA1 DropObject = Blender.link_DATA+ DATA(41 #get the face list of the ground objectDATA8 GroundMesh = Blender.NMesh.GetRawFromObject ('Ground')DATAl  32DATA$T5 DropMatrix = DropObject.getMatrix()DATA$4 DropLoc = DropObject.getLocation()EDATAd DropX = DropMatrix[3][0]1%DATA4 DropY = DropMatrix[3][1]1 DATA DropZ = DropMatrix[3][2]1%DATAe DATA0 #is the object above the ground's bounding box?DATA\D if ((DropX <= GBmaxX) and (DropX >= GBminX) and (DropY >=GBminY) and (DropY <= GBmaxY)):DATA0  #find which face the object is over - if theDATA0D  #object isn't over a ground face, do nothingDATA 0  GroundFaces = GroundMesh.facesDATA 0  for GroundFace in GroundFaces:DATA ,0  GroundVerts = GroundFace.vDATAD  if len(GroundVerts) == 4:DATA  #check for quad facesDATA< i  [x1,y1,z1] = InverseTranslate(GroundVerts[0].co,InvVec)DATA<  [x2,y2,z2] = InverseTranslate(GroundVerts[1].co,InvVec)DATA<  [x3,y3,z3] = InverseTranslate(GroundVerts[2].co,InvVec)DATA<  [x4,y4,z4] = InverseTranslate(GroundVerts[3].co,InvVec)DATAL  p0=[DropX,DropY,0] DATA  p1=[x1,y1,0]DATA  p2=[x2,y2,0]DATA  p3=[x3,y3,0]DATA  p4=[x4,y4,0]DATA$\  if InsideQuad(p0,p1,p2,p3,p4):DATApĕ  DropObject.setLocation(DropLoc[0],DropLoc[1],FindZ(GroundFace,x1,y1,z1,DropX,DropY)-(DropZ-DropLoc[2])) DATAV  else:DATA7  #check for tri facesDATA$  [x1,y1,z1] = GroundVerts[0].coEDATA$  [x2,y2,z2] = GroundVerts[1].coEDATA$  [x3,y3,z3] = GroundVerts[2].coEDATA4'  p0=[DropX,DropY,0] DATA&  p1=[x1,y1,0]DATAL  p2=[x2,y2,0]DATAc  p3=[x3,y3,0]DATA  if InsideTri(p0,p1,p2,p3):DATAlt  DropObject.setLocation(DropLoc[0],DropLoc[1],FindZ(GroundFace,x1,y1,z1,DropX,DropY)-(DropZ-DropLoc[2]))GLOB\W @DNA1K$ SDNANAMEZ*next*prev*first*lastxyzwxminxmaxyminymax*newid*libname[24]usflagpadid*idblock*filedataname[160]totcurvecurblocktypeshowkeypostotelemtypert*dataname[32]sliderminslidermax*refkeyelemstr[32]elemsizecurvalblock*ipo*fromtotkeyslurphactkey**scripts*flagactscripttotscript*linelenblen*nameflagsnlineslines*curl*sellcurcselc*undo_bufundo_posundo_len*compiledsizeseekdrawzoomholdclipstaclipendnetstanetendlensdrawsizehololenhololen1scriptlink*anim*ibuf*mipmap[10]oklastframelastqualitytpageflagtotbindxrepyreptwstatwendbindcode*repbind*packedfilelastupdateanimspeedreserved1texcomaptomaptonegblendtype*object*texprojxprojyprojzmappingofs[3]size[3]texflagcolormodelrgbkdef_varcolfacnorfacvarfac*handle*pname*stnamesstypesvars*varstr*result*cfradata[32](*doit)()(*callback)()versionaipotypedata[16]*ima*cube[6]imat[4][4]stypenotlaycuberesdepthrecalclastsizepad1noisesizeturbulbrightcontrastrfacgfacbfacfiltersizenoisedepthnoisetypeimaflagcropxmincropymincropxmaxcropymaxxrepeatyrepeatextendframesoffsetsfrafie_ima*nor*plugin*coba*envfradur[4][2]modetotexenergydistspotsizespotblendhaintatt1att2bufsizesampshadspotsizebiassofttexactshadhalostep*mtex[8]layspecrspecgspecbmirrmirgmirbambrambbambgambemitangspectraalpharefspeczoffsaddkfacharseed1seed2mode2flarecstarclinecringchasizeflaresizesubsizeflareboostrgbselpr_typeseptexpr_backpr_lampdiff_shaderspec_shaderroughnessrefracparam[4]*renfrictionfhreflectfhdistxyfrictdynamodename[256]scale*bbi1j1k1i2j2k2selcolexpxexpyexpzradrad2smaxrad2*mat*imatelemsdisp**mattotcolloc[3]rot[3]wiresizerendersizethreshvec[3][3]alfas[3][2]h1h2f1f2f3hidevec[4]s[2]mat_nrpntsupntsvresoluresolvorderuordervflaguflagv*knotsu*knotsv*bp*beztnurb*bevobj*textoncurve*path*keybev*orcopathlenbevresolwidthext1ext2spacemodespacinglinedistshearfsizexofyof*strfamily[24]*vfontmaxrcttotrctadrcodevartypetotvertipoextrapbitmaskv1v2v3v4punoedcode*tpageuv[4][2]col[4]transptiledef_nrweight*dwtotweightco[3]no[3]co[2]effect*mface*dface*tface*mvert*dvert*mcol*msticky*texcomesh*oc*sumohandletotfacesmoothreshsubdivsubdivrreserved2reserved3cubemapsizertfpntswtypeutypevtypew*defpartypepar1par2par3parsubstr[32]*pardata*parent*track*action*pose*activeconconstraintChannelsnetworkdefbasedloc[3]orig[3]dsize[3]drot[3]quat[4]dquat[4]obmat[4][4]parentinv[4][4]colbitstransflagipoflagtrackflagupflagipowinscaflagscavisflagboundtypedupondupoffdupstadupendsfctimemassdampinginertiaformfactordummy_1rdampingsizefacdtdtxactcolpropsensorscontrollersactuatorsbbsize[3]dfrasactdefgameflaggameflag2anisotropicFriction[3]constraintsnlastripsmistypehorrhorghorbhorkzenrzengzenbzenkambkfastcolexposuregravityactivityBoxRadiusskytypemisimiststamistdistmisthistarrstargstarbstarkstarsizestarmindiststardiststarcolnoisedofstadofenddofmindofmaxhemiresmaxiterdrawtypesubshootpsubshootenodelimmaxsublamppamapamielmaelmimaxnodeconvergenceradfacgammasxsy*lpFormat*lpParmscbFormatcbParmsfccTypefccHandlerdwKeyFrameEverydwQualitydwBytesPerSeconddwFlagsdwInterleaveEveryavicodecname[128]*cdParms*padcdSizepad2qtcodecname[128]mixratemainpad[3]*avicodecdata*qtcodecdatacfraefraimagesframaptoframelenblurfacedgeRedgeGedgeBfullscreenxplayyplayfreqplayattribrt1rt2stereomodemaximsizexschyschxaspyaspxpartsypartssafetyborderwinposplanesimtypebufflagqualityscemodealphamodedogammaosafrs_secedgeintsame_mat_reduxpad_3[3]postmulpostgammapostaddpostigammabackbuf[160]pic[160]ftype[160]col[3]pad3*camera*world*setbase*basact*groupcursor[3]*fcam*ed*radioframingaudiozoomblendximyim*rectspacetypeblockscale*areablockhandler[8]viewmat[4][4]viewinv[4][4]persmat[4][4]persinv[4][4]winmat1[4][4]viewmat1[4][4]viewquat[4]perspview*bgpic*localvdlocalviewlayactscenelockaroundcamzoomgridnearfarmxmymxomyogridlinesviewbutmodeselectpad4pad5pad6verthormaskmin[2]max[2]minzoommaxzoomscrollkeeptotkeepaspectkeepzoomoldwinxoldwinyrowbutv2d*editipoipokeytotipopinbutofschannelmenunrlockmedian[3]cursenscuractaligntabomainbmainbo*lockpointexnrtexfromshowgrouprectxrectycurymodeltypescriptblockre_aligntab[7]*filelisttotfiletitle[24]dir[160]file[80]ofssortmaxnamelencollums*libfiledataretvalmenuact(*returnfunc)()*menupoopsvisiflag*imageimanrcurtile*texttopviewlinesfont_idlheightleftshowlinenrspix_per_linetxtscrolltxtbar*py_draw*py_event*py_button*py_globaldicttitle[28]fasesubfasemouse_move_redrawimafasedirslidirsli_linesdirsli_sxdirsli_eydirsli_exdirsli_himaslifileselmenuitemimasli_sximasli_eyimasli_eximasli_hdssxdssydsexdseydesxdesydeexdeeyfssxfssyfsexfseydsdhfsdhfesxfesyfeexfeeyinfsxinfsyinfexinfeydnsxdnsydnwdnhfnsxfnsyfnwfnhfole[128]dor[128]file[128]dir[128]*firstdir*firstfiletopdirtotaldirshilitetopfiletotalfilesimage_sliderslider_heightslider_spacetopimatotalimacurimaxcurimay*first_sel_ima*hilite_imatotal_selectedima_redraw*cmap*arg1neutral[4]action[4]setting[4]setting1[4]setting2[4]num[4]textfield[4]popup[4]text[4]text_hi[4]menu_back[4]menu_item[4]menu_hilite[4]menu_text[4]menu_text_hi[4]but_drawtypeback[4]header[4]panel[4]shade1[4]shade2[4]hilite[4]grid[4]wire[4]select[4]active[4]transform[4]vertex[4]vertex_select[4]edge[4]edge_select[4]face[4]face_select[4]vertex_sizetuitbutstv3dtfiletipotinfotsndtacttnlatseqtimatimaseltexttoopsspec[4]dupflagsavetimetempdir[160]fontdir[160]renderdir[160]textudir[160]plugtexdir[160]plugseqdir[160]pythondir[160]sounddir[160]versionsvrmlflaggameflagswheellinescrolluiflaglanguageuserprefconsole_bufferconsole_outmixbufsizefontsizeencodingtransoptsmenuthreshold1menuthreshold2fontname[64]themesundostepspad0tb_leftmousetb_rightmouselight[3]vertbaseedgebaseareabase*scenestartxendxstartyendysizexsizeyscenenrscreennrfullmainwinwinakt*newvvec*v1*v2panelname[64]tabname[64]ofsxofsyactivecontrolold_ofsxold_ofsy*paneltab*v3*v4*fullwinmat[4][4]headrctwinrctheadwinwinheadertypebutspacetypewinxwinyhead_swaphead_equalwin_swapwin_equalheadbutlenheadbutofscursorspacedatauiblockspanels*curscreendisplaymodefileflagsglobalfname[40]*se1*se2*se3nrdone*stripdatadir[80]orxoryname[80]*newseqstartstartofsendofsstartstillendstillmachinestartdispenddispmulhandsize*strip*curelemfacf0facf1*seq1*seq2*seq3seqbase*soundlevelpancurpos*seqbasepmetastackbuttypestaendlifetimetotpartseednormfacobfacrandfactexfacrandlifeforce[3]dampnablavectsizedefvec[3]mult[4]life[4]child[4]mat[4]texmapcurmultstaticstep*keysheightnarrowspeedminfactimeoffs*obpremat[4][4]postmat[4][4]vec[3]faclenoalphaoeff[2]iterlastfralimbbaseeff[3]effg[3]effn[3]memslowtotytotxxyconstrainttotdefdef_scrolllimb_scrolldxdy*idlinkotypedataold*poin*oldpoinresetdistlastval*makeyqualqual2targetName[32]toggleName[32]value[32]maxvalue[32]materialName[32]damptimeranglerangeaxisdelaypropname[32]matname[32]axisflag*fromObjectsubject[32]body[32]pulsefreqtotlinks**linksinvertfreq2str[128]*mynewinputstotslinks**slinksvalvalotime*actblendinprioritystridelengthstrideaxissndnrmakecopycopymadepad[1]trackvolume*melinVelocity[3]localflagforceloc[3]forcerot[3]linearvelocity[3]angularvelocity[3]addedlinearvelocity[3]anotherpad[4]butstabutendminmaxvisifacminloc[3]maxloc[3]minrot[3]maxrot[3]distributionint_arg_1int_arg_2float_arg_1float_arg_2toPropName[32]*toObjectbodyTypefilename[64]loadaniname[64]goaccellerationmaxspeedmaxrotspeedmaxtiltspeedrotdamptiltdampspeeddamp*sample*stream*newpackedfile*snd_soundpanningattenuationpitchmin_gainmax_gaindistancestreamlenloopstartloopendchannelshighpriopad[10]gaindopplerfactordopplervelocitynumsoundsblendernumsoundsgameengine*gkeypadfokeygobjectgkey*activechildbaserollhead[3]tail[3]parmat[4][4]defmat[4][4]irestmat[4][4]posemat[4][4]boneclassfiller1filler2filler3bonebasechainbaseres1res2res3chanbase*achan*pchanactnrname[30]enforceoffset[3]orient[3]roll[3]*tartoleranceiterationssubtarget[32]cacheeff[3]cachemat[4][4]lockflagfollowflagzminzmaxactstartactendstridelenrepeatblendoutTYPEcharucharshortushortintlongulongfloatdoublevoidLinkListBasevec2svec2ivec2fvec2dvec3ivec3fvec3dvec4ivec4fvec4drctirctfIDLibraryFileDataIpoKeyBlockKeyScriptLinkTextLineTextPackedFileCameraImageanimImBufMTexObjectTexPluginTexCBDataColorBandEnvMapLampWaveMaterialVFontVFontDataMetaElemBoundBoxMetaBallBezTripleBPointNurbCurvePathIpoCurveMFaceMFaceIntTFaceMDeformWeightBoneMDeformVertMVertMColMStickyMeshOcInfoLatticebDeformGroupbActionbPosebConstraintChannelWorldRadioBaseAviCodecDataQuicktimeCodecDataAudioDataRenderDataGameFramingSceneGroupFreeCameraBGpicView3DSpaceLinkScrAreaView2DSpaceInfoSpaceIpoSpaceButsSpaceSeqSpaceFiledirentryBlendHandleSpaceOopsSpaceImageSpaceNlaSpaceTextSpaceImaSelImaDirOneSelectableImaThemeUIThemeSpacebThemeSolidLightUserDefbScreenScrVertScrEdgePanelFileGlobalStripElemStripPluginSeqSequencebSoundEditingEffectBuildEffPartEffParticleWaveEffDeformLimbIkaOopsbPropertybNearSensorbMouseSensorbTouchSensorbKeyboardSensorbPropertySensorbCollisionSensorbRadarSensorbRandomSensorbRaySensorbMessageSensorbSensorbControllerbExpressionContbPythonContbActuatorbAddObjectActuatorbActionActuatorbSoundActuatorbCDActuatorbEditObjectActuatorbSceneActuatorbPropertyActuatorbObjectActuatorbIpoActuatorbCameraActuatorbConstraintActuatorbGroupActuatorbRandomActuatorbMessageActuatorbGameActuatorbVisibilityActuatorbSamplebSoundListenerSpaceSoundGroupKeyObjectKeyGroupObjectbArmaturebPoseChannelbActionChannelSpaceActionbConstraintbKinematicConstraintbTrackToConstraintbRotateLikeConstraintbLocateLikeConstraintbActionConstraintbLockTrackConstraintbFollowPathConstraintbRotationConstraintbActionStripTLEN  0PDtdl(PP4(@d<0P <  L,@,((D($ $x$Tx@Px8(d@l 8(,@0,HhH,(lDLP< <@Lx0848l@0pP<`|,,,8,8STRC                    !" #$%& '()*+,-./0123 456 789:;<=> ?!@A5 "BCDEFGHIJK(L#$M%N%OPQRSTUVWXYZ![\]^&_`ab'c(defghijklmnopqrst) uvwxy z{|}~ *mno+*,'c##DEPQ(#2s(#)+,-lmnopDE&(L.(/>lmno_`&(/L01![2223243 (/kj5      6 777658&3  ' '!(9"#/ $%jk&'()*27+,-./012304:::6556789:;  <&;=>?@AB<=>?@AB= CDEFG>HI?@>JK^ALMBmnoCND"3 O (#/ P Q RAS@TBUCVDW%EX Y9Zkj[\]^^_`aF bcde6f(#GGG 'Oghijk l'm'n(9"3HoIp Jq r O s t/uvjwxyz{|}~L     YE  K+l(&LLMMM'cN  O  PQ8NO@     RS'KS# MTU L! YR"QmP#LV #(d01@$%&'(W-XX)*Y+,-./012345'V6W789:;<H=>?i@ABCDEFGHIZJKLMNOPQRSTUVXXX)*Y+,[XX)*Y+,\XX)*Y+,WZX Y Z()[\]^_`a]XX)*Y+,bcdeZXf_\g hijklm(nopqr^ XX)*Y+,ZXf$_XX)*Y+,`stuvwxyz{a|}~ b XX)*Y+,ZX \ hcXX)*Y+,ZX#$\01`d XX)*Y+,_`ZXeXX)*Y+, 5_    fQXX)*Y+@Agghh%  ijkkk ijjjjjjjjjjj j j lE m!  !"#$%& '()*+l,n - . /S0123456789:;oooo< =pppo>o?qqq@ABC56DEFGqHYYYo>o?oIoJnKL6MNOPQ)RSTUVWXYZ[ \ ] ^r _`absc%NsdsesfPgt tt2hsijklu m uvy z|} ~ v%vvvn 2opqrstuvwxtysz(S0$M{|uv}v~v wx   yyyzzz2{{{*|}}}13(~ 'ghij 2g ('mhij~f        /     ' '  H' H ^^_ w 'D S0' ' ux  '  T '      'U w ![! (5 !"#$%&'()*XX)Y+ZXw01` +ghij'm'n(uvjwxyz{|~,' -T . /0????m 1 234Iujwyz{56789:;< = >?@A  jy{ ^I B( r ^H BCD XX)Y+ZXHo\^E`JJJ(F (^FGHIJ'KLMNO^P'K^^N'K^N'K^N'KoHN'KQN'KR   ST^(HoUVWXYENDB