PK\NP8J  py_dbmigration/.DS_StoreYMo19lR ڞPqi%!T)T$.p6MS/9!~ ??Nˮ[@ԯr^3c[K( r"RBM>hL uCGn[&V>5zNTn)26ڮ\W-Yƺi| 4[ߚǍrgӴp_F~H'x({)۪eI|T|wdF#==EM)jvv-;]'ãV}tk)Bs(^QLRb B?_gWN|tkN<ȑ y v7:2! T=vyȷ]6O*y ?(T"q-O5{vYHr;v,G#W$.3/ylx^BGա*fȲ"ͣTfOqM# h/U-~gѓTh Z89 eBWĂLV p-aQ[u t"$gטЮ-X7}\k[ǫyЧ$g>![qPK\N:`6P!py_dbmigration/__init__.py_org.pyK+UKI/-)V-/*QJ'$Ƨe`&䧧g#dPK\N.[XB| %py_dbmigration/build_travis_docker.shVmo6\l 6Y'm H &En_ HIl$R )7އɊۗ ̗wLJ7/C.|&:챐뛋هKYL̸f聩Qdzۻ_%b2ArQr_P>̂">Z./gW([|O`<SSOIpE8JwV\+&/V )]) 9O[T js2"YAvPhӶyMq?^B` U'd'ޛ!kp1DP%9}@&]`2i!Sj),+J|OpA"TgVjT*՞*lr]B*k9>&DK W'GG;캼&5"O|`aiR/aʂږ[ޝݜ_r Sa{:5bYe36u" ۂ;u3(H^ xMR6=u+M Ӯu06Le>f6`as{o/kim0"+Z )n0l2a{} lN+;"LQa3^::}xͥH DD[PI;dxm-_c'dIQ2gf<ό3ϥsᛢUh~ NBAI_*̇ UH(iAjR8a:2<*N X0Fy`P}'BPP9 .*T`#*]m%!l$5>,=^HX QRR#*BRL!5HTãm?]3#` ]-X5f#.jj pBYJe> -ڙm»ӷQpezd:O߿|؄gSC^!Z›7ؠ C/B*AI0zIDO`ߞ̬{ CPq<(+tV,ձmW,) $f!w3&EF&Gڗy)M9݊ XdmP4 {a/ K\Dʞ_L.}6sKuyx'WrQ_13ڴѣe+j@쟧`|Ŗ˟y=}_דE_yԽMbsv<,N~dl^Q|:MMX7o;1ã*:ty9|wZn~"n|-jϞhΕy=C-~ɴp)ueZ8avpJ@JJimIteհJ/)+/1u_\ҿzH63QPK\N #py_dbmigration/create_virtualenv.sh,,*)MI+S+T-P(,PK~Na`&py_dbmigration/data_load.pyo8T:@ːEImFNM03l*6g fғ(R2&+aE&[)L-r4ɶA]QkEE6 vMIJ Ea$,v%i1+[D (8L2dZbdC?vqth^_h\issx#- FA c.G{~t}o<ّ0bFݣN(^DiShO %H!KK(:YB dͅ f#@`2$L W)i$|q k3a4CY _Y&G6XCH*}i+FYYu+,W`nn7m5h˰ 8?H OYW;NY(,yIg|fi2m]@YBrd |n}qf6>WCbw5kA,ܑ㐂HBn&88t1Kj0T1}t jv5RL#7XZ!g|fՙ6ɃcDhڞ'Smx^2q̾y95}ZFX8y<;f;NF|v2Fz 'wsźyF2VYq+2NF^ kF_:02w( `\Vp&w Aİc(@Z{Y!ZъBT)UsYŪfwaY*^l\Vl_㾱M bl[VQ(c tFoP5 1klv2,VeEE:6z MXkeizhK nX^MӡeE[lX|q/O;Īܟ/ny<_>}w@X>GUUq#3R DEg{TiYsCNW葁uCu.rIЍ,"4 zii]MVݼ{DϝX"n>GDF/ ݇0?Ye<,d[&wDnꨡ䢻&?K釃Mk R{q= -$:\K,F]y!pǦqkR0O7Ӻ>L:"TdZmqhax_~2PV^S5?dЧ(!R|6 ʞd_HJqz͵'TxܗLՂ UYP9ʶ3ԎYJxt' >!GSm2O_8걳2]Z}'Ķe1c0Vvb PK\NMmpy_dbmigration/data_load.yamlXmo6_qh+-03m4kTIʎHJe[IS:^{!O\VWr&F(YU 95~5cMAFcxͮ_2%# 51P5q0r 9ӌ[(` 3t4[Nl:ϫd9Zh fD, X8ǛːDg 3׉JQrgpº^|2Rڦ%\eDg/޼Jߝ=K/xvMb2# 1L>髳ϯ܃8*Kb.D(]dV,-[$/<":Q`҂8]gfJV<HRg L]YSB5jUxB2<6}|Gc4B$5#tDcU0 PEo]up(+gE'~1QR]~!qjVejt|W^ 2Q* U! ȘliqUM :U'uRO5ԿyJ$?LKOJW%G/YA%1&(9Ԛf.`5"!?P>`rE> !p%w\j0"C'⵱ "9J$ŘR]kSm7c'M]Y=' ]#&1Fcm4$4yٖ|OA)&诳M#\sYhd7uԥA -P\JdAd]*uGQUQ2-8W'j=lXmZ_LGuKeiVK}IMaH2D'Y֑]9~ߎFzDdwɆcABK.]7pF'.oCB4H>*,#u] . b_`A]2 RKaMG3 gTEvv %^oΞAюeԞmCRoaJNQxģvu8Lh}L u7[k<;!8^`'}9X"3>/8p}e4xM#ٺ̦ V-UV}t>@8@ Щ&:w+;]h>Eyo܉IKyټ-MWvxN[<:s ǭ\=K6"/w;vkax]ʊ'.Mͅݜt|տ_Ƀ0׽Q?]עk&s?,jIS6gB{5.T̘l\wƫt$,n<@V]Liod<|Gr=ƣ Y:.h cL9J<^!q`  zY9ʲ"K&j] |qϋ0jx0;OlCsm3c]eN~X˗y*~ї:[ @=y=E+4M>} ӘQXABWl'ЏcYi)ele8m(]m8G} ePK\NM py_dbmigration/docker-compose.she̱0Oq"`dp D؜I m_H ta5l{% VA\<-$KϞyd'U~Mn#=ѓX>*iemDۗ(>xqL0p(J \vK~ PK\NQ!py_dbmigration/docker-compose.yml}A 0 azĩŋ2]'i 2tl[C/!|yWh9B0*ψQ /gl*Fad/TSd*|;*u ƣp !LYI߮Xo p0zxUjJ(JQPK2lNH9.p-py_dbmigration/extract_db_tables_to_sqitch.pyTn8)A2 iwl&)z0F2[cCR4MZ a3of9cYvJd?pے \7ܕdŕ@+qd9nÎ5r6u`,8ijU{cs٣,hN(8G{eN.UIqnt+bji`gu(-]}^dY6tGAo5z]~چ{nny@,yn0ZSh@K"L(ɐ`W,G(m:]nAOQ#Cʛ&EK Twvrjr3aAK y.t '2RyI0Y>*_s'˩ZId8 檼W/qhu\TWFC, )AQ5)YWGcKϢanT1>Nk`Oj.pF)FO,=?j!ּ6Stk n@߷/CYqSb^R,%\Ί46U5O^yHO 4vt}B`ເG1dDa1a`p&C}\^T G߃bߧ D}%Jύ*99Z:ŭ:R qo</EUL'[ ~bnyJq1TkTzܯcWIj%;Xh*?T0IHƽQtoa[E[e *3+cyjPK\N[ !py_dbmigration/increase_ec2_hd.sheAK1+[hw![ADij"6,iՂ0dx}/jc˷J7,&Z|#L9ze OER#AV7H(zﺚMX6ucxj`JFWrV'|HI LA ę pvHyNW`B Y,0 YE&yt, 0>UQ{A~ 3}f#\p;PiuzQPPK\N3# %py_dbmigration/move_schema_table.yamlVmo6_q[$)t݆pnutDPmqDxY(V4MN@b[ǻ{7r0LGZ穖༭tUBIo($-L,U%=xӇ`:R[{ >?nGü@2G9Yf3q}lG]Z)z9̔L/vA*Lk.,tDO # LUY̭YFR.[d-R>ƣ@fSEћuQ>| }8^`2eoxǝ4 ` yPnMa=b)@b #Ӳ!wA`ގVyjO0-[ Cq>ETdi<*i6tnxJ ?q+|.?FC*G~`Ee1k~5k*{XzFL_&89q @`ȺUM0WkߵчbbI-WMtbb?}ӗg38WV2.2ev 1Qhv2Na R4^0TaQhc03(o7߰Z@VZa{ a% jLxscߜ 6|sOh:D80E0KcҺ(Ќ 6OH>@@c @0ʚp&syj&t%jo5hBjI e42q'q$!2ҍ  Bζs*Y'27D߽Ie~/sŬJ12f>ɾ}`#u"u}H% {*MzVq)zM1Lڻ{`x;ó{Btz%5gc*n _'Fg;c,#\kB>תiHjvYXט%qRV! d>)+ލG!0b=pD;-&b."[E[z{ uw'uۯ5[) V!7ަ.Q~#h$ET1X+bDl uh].й;N`ϖk ]0\O|/p|:\lP+ǻ[+/8PKrNh$py_dbmigration/move_schema_tables.py=r8 \u(ѪٓUxǷ#;M9)%6!)_?ݍ %G"Fwoh4dQe͞EeZ'EyU%-*(˨-w^oݲNҝ2_9gAkoK^!xR !Zhg^~-L22oo%(Qd4ϋg\z;EU2?̳?QwtKxU?-~;ם7G?`밎f)o~'炞TsI䁗n%Av|2 /~jij̳`z _Χg<7}xyiu@fNëdzà 48>9!O5!w|oWUHv?<:7 /^a#x $v;FE/<|wE  N?|NWO=f^p:AޟLN'Y$J.o|]b\=D3 (nyTG -^o"Pݫreg:^V?ͣX&зG?sQ8 Oqіg-`1I<t !]Tݱ29 2c$b012X}W;85Kv4fQ)kh~d?OαZwvvW|^ӓſ`ƣ~"6'[ԇQy_d#b`/~2 ٜ 3Z+8Ԃp-xQOs t$g{y__XG[ $J^/K{0~s3p04mH4 %Z؎;:<ƿPʠ$ t5\\CΆ 6O=iA > VP'~ً5k_?Tla_~P.4$ǫ5q?񎗼8x_2&rZf#?%U]-2)m/kw|hNAW`/I.laVppr56:0+y˨N,EU(6 (/oo[◂gnC)-Ǝ>( SJ&-B@QʹE3'EH 7 )n|NAT<+Ǽ7H0^C 83dVпEQX\ۢG"g]rtbJE+4I9 ΀;.@H.9껑3NJ X}`)γm((nk`^i΋_N5>ao# k@l'֠@~eh2Uۡ߈e0ժX*y'&m>z81K;`._q$GICr,8ny͢eL3&]*~DTy Hl20F=@Hm $:h Z' cŎxjXIq0=FenwQ$u! Mb7Pw% vLIv{FE!vW:{71ShLrNU(_zVpoI,( b9Kl;k*܅RA^B6L+Y%"uVS({p9 Ϯ&ӳ4`5afCmXf^[W0d sϲOpAh+z4홌˼!V.9z_OEY,Kahx_CPe2ZQTY׵Uj#{ 7̇PwgFy("HÇ$ \oiG6I`DL& E/"\Bo6Pd"m g8X1Q l^{5Q}:8cɦh6Vrd^[wNa6(V6 )ZTW5p{qYƿo7m3 z.NhRVm*/,6 `La5Y_/?5qMMPBdߌ }p#si衦iKm 6h@C ;OW2YߞK$Hx2L`՚HwrHeZ'ʅ:Wk|R;gk񎰑u?(cHT+X$Ţ8Vn=rv=WBYVB"a4L( afiܙLh`w`JAٽi^ Xd4 ,Pv u{hk ~ w X9_07ٰ vRkT`o6"Z&N7O܂LSA֏ڗ `snԧgs0--?x [;Vs]s9 biwu;*OTY;_IG1oj :#(pe5(V6- XE}bI]wi7;ML/}(QGY3L3dH5eiʝ]lx3S.rh7aUH$@30l,W٠B<ܑ7ĮJgA͠S]a'4L*BM)06ɪ䧛[7c#$b-u~9z=i$̽RRp r[cm?I[m[$K -ǎb״ý7/e(,Y"%'F3ϒA3(6=;'[T MѦMZq dFpe.~ wRaف.h>nYcj0J苵]<8~;9>rSsvv~هwLi_p;7E5|fx/dؚ>0Ck> g xNkT++s ܑ q`4ag<3v$G!];>}(v,Gw)Nn9D"?մsNd)$M~?==Q髆m C|S"IJq"bڊNSvXeh*w iǷj`{dPh`pb-AHxxC@LNWVSmkepu o7f_@{an#즿OU%Z,j2Qt8a *~A@j]@RaMrvU;Q<|&]]N[ٟOOλX-a؁x/\tlYG/9l d!k+['޵ޒE)EqS)+`:EZ ="Uq Oڻ.}V0yoS/恽/6&gG6|;q  S`,L&gqHWHZ8˧x]Bh+}ؓd䒿P,N~ϖ{7JsKA` qBGOӳ5Igtz>]ژ{'[r1SfPݻ`4̇%^i>B%KDA9ȕZX/Ig7oct 3j r }N.Q BCJ2:zG:.WScTXEߙ5i_C()[»8t>=6pFo]X;[&2mUjuR1zU5UO P߯fͰߠfzJA,5J֩7qG-ߡff\co#E羊o;]G|FJ-=' k!!a&CX뽯f8(^1_bצwW#WCBÉ:#>ϡ :jl9^9"{}ȡN]:]lr,) jnBCmKl-yk~/-6Z1lr\&JɞyXrơY. ixrrw2ԅxX<{ 4+ɾvǿ#'I^MpƴSN8vt67%Z "kImc4ӗzyeZfXpUe뮛o=zǭ 2G1W- `HV96Zy-.88>8a({WЭ/߳.TUHb\s4I^%Nj"5^SvI'ۅ0}M@i˛tݕz17{B%]9DN{KDSxVBcuyw KfsbXxenL'E3%njIɎLESsυeKusޜCEIEX8CPr518TN{$JGƒ1%ȲPej #5 6ЈjZ QĪNaQ\*zvߢF\| ^]9.XAyī.T4a=q$L/]^tbmF@PVBj"C'qP ZtMb TŠcm)rcm=:nlɋmYZ[Du--粍{]`z1Ds2PK\N|4py_dbmigration/nginx.confWmOHL~@"!bzF@A-JzR{~ubygፐ )\d@f|^H;q 1h>f<,Q6OZPDE,,2t%BcXBW ԗCS$,"|}/PXo:P(82YjT8؄JD NѬ9T&L`LXdg3RYٯO u Y [>",wDAgn aCA8_p|ERYgHth*u ,}i]%ԭhi9dhABL+=%Jȥ6gq3*{\H,y_am?'ZlbGÚL\X=WUFUZ^=+^>yAlwgOja\AEچx*ƳiNNz{BGnKW/_䇵Uk$CUVNכh7C4["|Ô _( &:VcFDs^]WjHt)Y 0L.?o.F.ޏDV-p6ng  Db1#FGA:T ~p({9R>+$ilMQkxY|f&رkmSnڕ=*Kn6ya k\@*Jg@8WI~˝u$N,sHVy 6\j m`yD%.)=CjQS 1XFVtSKDA1^l#@'S^Nf;95l77VU(b_hMtz;4WIoSHI߫||A8F`}*r}8G`2gN/Ȇc7a4wi׃"7y}15\?ܴLܮg7g?}j^4<5'}lr0PK\NQݝpy_dbmigration/publish.yamlX[o6~8[-`wmҡP7`v=H\$Q%nËb B;GigBCw4G@ Sڨ21 r(RFSqS%n4U뛋\X!j8P5&9TR[I\DkY}JQ~?y/he%~YKOb5LDʉ Yh+@.Muj* @"s#,`݊0II%POWHAO7(F'2?Ku˕~ }d{EAFFX`p-Bl3 (dPBԎ0LF{ֽY-lCMeµ/xBbxT;EcLS`1ΑvpF -b Vbqޕ@l U9mʁ6OϑS-H#K,M'@,y8Im"0\ȵyXg+W'9Ǧx#픺ۯ:(C36, :9>!NV8Ɍg#ˣpqTPWiAbwB;"pxyé}dٺGjI$hVOZkHeBSӛ>-kíJovywDAo6ܬ, MA(@l2CE)?1Mnu')\5u~]S7 AZ[B4j9q6-wP?a3p~jw؏1n%rπs:xOfrp3!.BGɬo{@51͂6 ӥ Ұ-K$Q Y!pVĭ ?ߝ۪^7DF^_6j _qWЃ;o\藄}yY{tYGg7(-\ѪWjV[ۜKaT$wę!dA5Aj yR`\p~vHp!&N+ p0sGlI {u.-_w/ndm3`h>d>n{۵C&pvP6!K9qq啒0m/peϣob?8'gXJ++/ӡm{PK|N^qwu!py_dbmigration/publish_project.py=]s8\gdx]ۗty2'7$g+ݥ-%Qǖ4$?HQ{wK$AAtQe-|'ye>K*nETE *yUw:ܔBOaOjd L3S0oo:?Q 4ˋ'(ݙߎQ&vt14& '%jУ &dއǧ?FVY H갎dyO}e9K8|rTٛ)v~?/%*- ,Y2G&ëWo_$<>R\^ΏTã3U<8VR?Y/X&;..s(&>rvp$3`]^YHٻw0꧓_'P^LN&NGƢJ4.o%5.*YbO g'' gQ\zqrl^3W6mêeUy_ږ8B<@eM_ğ5n[.>_'E?;bխfH4;\gPI@;)sGVN#M`2D}W;8Kq&XDY,ʤG3@.e8SE9APPm@O  Ζ C<ݢ_HuPi2ا`4jMЭjߠ9V!X`廂~0Mn2Ph`M%(GaRi0,cGPP0{)`c , oDװJӪ@z NkBi~^sO@TA^^zDCK2ef |Eؚ#ͦ_=aCxD\}œJR5 ̳y& x(5Wi8r]8d gwbxj`fA/u}AWdD'Z/"0/"wIمZ'Y rr(@]"Ab$rɫqV~ӒI2Γ-F60YRrR~ _qpQ mZh,NqIXZ/Ք ~OBF GcШ QZ%Fx6%<jxkwvlۋ'R, *_4/y5P!6ip4VF${4jbhskaέq *bo~XI6ulȻ2 n;+IH-eC\898i 6d룇;/UcMbUp}]ˤ7&Ώ1qQ yj9Jy7NA7N*yd@4f;h1p{fɚuO{cHFmlFPL۷ Hk䂱*4>?jcN2qVgan-oȽX0qA2ddhb¿ Z -9`H>ٝmIZNt X- )qxAYA}? O-Dw9Vqxpyxp4iK|ko3w|/oBw͵?9.uA#]7WLmUÇiF?tԯtyž>_iS\c")Y\hz7#,DZtVwSm͞Ø5LgdQV:f:p٫As.YDMlP3*k[3|Xk9`Pz Ć w+9k9@ p3}h>bT^drB֚MM 2AZx2!_.Fp}mt(L$ORzfg.I]+ 'Y} `!IGCin5tb4$i7OPU,oAl'!=L2gtC" eiJ5˩ʐӬ9'jʰ8xE{մĢE.wit_pJ6XU&}ŽOibG?}ND:߾M[6A:Ó,g2%?S=({wnϺWjaF>/QkwڛZu{=|O;Ckxl=DOovoy6{"-W;pn0>U7>=#pхi"*-$SP .uܞO>.HkiK9hj"Xʻ|xviߞIޤQjWT\f]7:Zt[$ uj P 1*tk02ϕ|e=E]83TFZ}(sհoFwM$ o=.[.&kh{SU8t\_' /|d`|/<<.{{3h*#jU*쳃}fYX8^6Y32ҷV/x`毈IS^ibՔE^o/z26-M,K5F9:LЧ5Q]9>rљ8=[ˀso@N=v kjf,׮>omHH2K|.ͭxʴ ^:>௾Rd7]b ] ?]qE%O~I=Sz2dAVw@b]|7زQ?zea:Gms̍a k6u= :9)R\i|q@O^0P/c:ːVq7#-W^aj70vܺFb}?pD :v @A"5Hk <~H m4L\DMjvDګ~ qiz9j}3.[ſ27)Ъ |`a~M7hm疭x;\nhU:O...6:\Âh8PZr1~c:La6ѦvRGUu?K/lO:)@PᅸG@K4HUT++V2T0TI7:b_ kQ~<"t$PxYa/ETU 5b9NU%rPyJ&5F*G_űdR0L[&>2MX,+9Ajb0gq|?bPz0ZB,EŗRTƹ/AKȡA7'& One%`z6<=.UbpcG&*,#>])]Nj+TXE>wmNb;J5p;Or%ʭ;:ZT̨&9#9WŃ̫~C_TkofTT;wm_ub9Ā 7D-4jҿ,~;S1k?<ͱHߚqf"EjėUPa0_ev<<&jھ̛HPDz &`|Ս 9>^.O 6uVCW7)7PDI ;K䨭>\ZSsx+WxpEi%eZ !1e渧NfYmĒhIǜ!U&P> :pNdy|f*|5CMg}n"́ F$E-뻼L$P.P']!ZPnk3f1\^$UEWjW'BkmN 7v]P>WiXM w}ʟ㱅d8;UaKy*Y &4IY^=DWr{KR7fG$8}92drLdg/k*d ^+;}XC B2|ifB]{~z[cTT.eOBY+=zsUu[tl VƇG 3q*.E^'tEG,nl(ӳI0c#u] >ZҟxD( 1 Y=|!cMa<lK/>S9Vp5%=*7FmlYuo4Dr#;?3lƛCgRPϊĺx&t԰!5ПG񧧎[9nHF}8piP۝ꔇ^:CTlPNJ%€-N2SraHe)oɈ KHٝF&XlӜ,3=:lqCf$Q:~"-OcCGo<6dH %ԝwɼt#¤Gk!5VJ8j`^V :7-9.Jl_Lٌ1YT)hiMg A.j=2vLVEH.?F#0q1N6*mG8oōQEJޔ|\HKRlZ.0M[h}0WmH|EK!RJX۷\NU唀4vDjfnjn̏ W u5g#;NżͩՃPKaN<6py_dbmigration/requirements.txt11 {j< JK|)}O\x=jH,a.u`h`kŚ^U3L2E!qXkmkqRPZ727n^x3XPY5٠CPQ|e0G/%Y|PK\N'!py_dbmigration/aws-scripts/rds.shSr0+Dr腵3)ʭ3 WNA6z֎m: i3Koi…м-6).m4魼Cfbrr H d97[ Min>4b~Nݾxͼc% @{$,pKT}L"K+) EHnTDtUE҅occ: X2:Rbuu"ɷĀ}k# ,zL.)&4KU4"XUCWP?n#Y(J٨\X9%߹.ht͛9ukQ9ڷioi꒴Phs bY$Z2Qjjmo.W/b(˅:B= kҪ]8fNzzwj)e!ZVuf$Mך2I,ǥjb3&vɶ@̑vw }4ĝNY-&i>PK\N|{[lpy_dbmigration/bash/tar_venv.shM1 @ѝS8C(($rz[;*9|x) ȅ*+ S%-|G§yM'3j|77@$7PK\N1F'py_dbmigration/custom_logic/__init__.pyK+US-/*QPKN[1py_dbmigration/custom_logic/abort_if_duplicate.pyUK6WLـ{€IEA@ȑ̄"U>A{r)΃S&Xʴm6wڹ폕=@U:dkFyV5Raյ'+f]uYp +1fN_ndTGUuʲBcYc?GexptYJkꬒ;R+M t|4N;Xq(2ߔ&h/uj̐ـILQBb\e+I-bP!DM7C 3rLPjJY+`*e[>kʴ,>;+)_YAa|tS u/E,JjKOo'7`t y1P8HKxpT@k#Iԣ\4$qHLb,|BATMм'ODB}Bs=yUm*J=@}Ѣ?!Bn%0+)o*n=}]w&FFWWV%FWPKxN=p0py_dbmigration/custom_logic/abort_if_obsolete.pyVK6zCsl-Pl $)@#-EjFR^yL㛙o#O'im]+SOߖ۟].+MECik ,:nTW֤RxWJcG#%=xp;L'0L'Ci!HoT=:Knd$ako[ovhz-#C鐿__q@yhT:c玁 85N_ҩֳ\ F'me H5!5ӈ UVi t /jb),[1OCG[Z10 ʉ [']N$VPvmlXBedxlĒ.x, /kLl70/Td6"(;R>Bx?"~bq#-tΖHx7-"b,ҍaif3B^8>f4ȵ\}I\<4?/Q#p*g4&z~" gd)*tjLn+f"Hz,5>>%a0sPt9I_Xɯ ]V:x39,^ž/^Oo\] mؾa#Ko1#©:g]p3F (Xw @V<Ý팜tV [| Jr.Є<*p$t}Otsn:oT؍=jyUoֶoɑ݁6{qϪAI0sRy ѻwï$J7#.*PK\N|K-py_dbmigration/custom_logic/append_file_id.py}TMs0W;Cp(2 3-i  EZ;Y2L&ʖӤ`kVo~ȉc=(SURWI4Vn{XezlYQJE]i?ֲ㩫k5Kb|ɜ.e)\뫯8I4M+cgUu-Gbz~1}#)FRiKu/踕>JQ{`҄T XӠq!ccoʪ"n3p;XzJi`z e5.R-1hCfVa9~ PZo+2v~Ô,2(9'uӟ~~g#DZZgr4|^;RA^(S=PΙR[R/q,o7uA%rCy(^HI]:|h5Ҡ;ZC :'t0"W3:w|$A@[k gy1L_'p/F0ޣ.9!}OBWІ[rq д4vQfaN2ZXC 0Vk%:>Z2 ZY"*x4Akw]~ Dn4SH9cLszb~0]~Ώa ʆmVNPK\N6py_dbmigration/custom_logic/append_file_id_w_header.pyuTo0 ~_aGoeh!@ *׸@tN4I6H,sM&O,ɚfLL,&R<*8g*\(D Ha$<l*]L0xLԚ-K *pI>p&ipT649 B:bB΋TG|.Z3NPAN?CDD ǹYJч:!7 11flA2’'TPM%xED+3f5D8Z)S%I_l,yu#MaMʥ5 .7 44>v(cqPbXJ-@) ))TrR{ i``B춍@Y8}X y`iu1Bhk}Y:DvE83SaіMP2qyEp7| 93b2:]mٺ݄yrAv/Ӥ?1z Q4t:P*;prY T;/md cɃ(QMa5Ʈ s2"Ц@\L<6X.=b_Gg&ނ-G'F6Rt9w?ү]M2m<)Zb"@1wΙU,u NC(,0_bW.1\8fR?&[w'6}(DRB3hSls~6H#}KIe&!U&41ptxE@сTڽ|q}usuX=I!%ݠ|ۘ>GفR#OʓSʾAK<t G'#RjHk:mPݟSF_ͩ ijP[Zxwr5[$% v dq;[ίn?O/`d66G9%c4Զ-v9Lk2i<uxc7ykݜLNJ\+%wVRv6mj4TS͞`iq&j LճRɨg9=QR!7\Ӡ,ܱl_iGϘ9xpl&O?NLp 0S 97mgxh/Ec@+B"-7J_.DwOe+'p,=)<ăKJ'+qܱӋ?x_p0V7H>l@9^(SYH{\1hk!>"w҉T hw݌J{G FYR8Í' b-(L`(F˥PP/,{xLPKr]N׸o#J2py_dbmigration/custom_logic/count_file_linux_wc.pyuTn8}W ـ4-,!ݤh6>58*/v!%I ,pnH.׶/WƝh0cthmDU_ E ):ɀs\j_7hrYeYy krg!>q6t_{'ǯ^s\Z?W|qV yM ^US$z[~=k.%Fx [AOQ{m6yG^D6w8W͢ i9:'ܒ[']1ň/ח9d=E0 H-wkt w8GQ-v4NբmVБ^A-<ȫ5rA6]1 &VC,%2g˓ϺkĈ]"M{h 2谴M"xțM]~)Ym.] gfb.ȋdQ5/%_vqC8TtNxDjfxN۰xl4<`;2h%hUT`V%zUSB$1 )Tx*\UuV{vsw{gHK-#w_'Ma,M~gb͆__]_V5gM5: SGgouw~}|Eɒf'x(~PK\N o  6py_dbmigration/custom_logic/extract_compressed_file.pyVmo6_qp>Xl2,/]Ѯ+l-d6)Tߑkbc"y7eB幐*ӎ̾Voj+ WLIHfV(sfY2o۶I,؜GTUvd6M~WtHV rH0Iޚ9VZ_ eH5ً҇g/X(x~OV%ڐ+xhR-*Kk~~p%AExg5K)^h rw9p&9Riw(a*r"/x{puL8fƪ2D|LlMB֘TZpkbśVig/4rM dJ:$Y\"ŨZ8rREwIeZ: 9lcΊ-i*`*!#:ah e:1:MvJ"\v׿ٛLNI_ mЏ\_<>y1Dlm.Gk~¯A'.Muu%dLkLo+7J>WffޙjGmrIbu^"{nA@(dLu vӆʣ(ӥTRXaxǴo4=>)RWT>[Tܡ|bx_ y%E0Fث!"*iIK>x5hAidئ>+=o%ţxP[𔟯_$yaMfTHeEޠ@]DiI mvuF֒AxQkZ+RӘ*qWuMtld4Њ$TmP +DniX8DFot/5qpi&HZJ0)FSkz~JӮ8Ǻ?PKN[ q3py_dbmigration/custom_logic/extract_msaccess_csv.pyWo6_qp,wfC8[+-l6T/,)H~ j rb3 K7ۿֻ4_7:Ba40 :u{o3\8g/1681S%鿼6Xb2f)*\kTqs4Jf1d /'/^ڝLd Î JK9s Ֆk-/K;XFLVB1:`".n(Rlm떋H-E5pF:5{O$FYΚ(_/|y1ֺTf [Ǘ tH3'޺?B(28p`Z+#jѺ?ܸ4LmФ_@Q E\!DFe8t&︦H 8qcƅ[kZ3%Ji3l㯒T8kJ[w-{؊JǕfuͧ1,@̜HcY&ྋ.`䂕B.,"E##fR ֨Bґ;sz- 7r[t$-P:yU佗[seq | (dj2F5$xSO3 N ˰6C[EDmBM>Q)J@.X\HQ3.%Pk(lB3 ]&zc.Ys[YrQȤ?`A41ڨLiE>" m|l,I0`"U\܊pdearԋlV>m]|wyzv+˻;mKll>6ɆG.Ryؒ;dM+|#{퐅TF {'DcTڇhX4 L|a-ڝG2hސ".N qj'+Q֨^{hҲ?a|wcWk4J q7H 11m*|07j 2zQNl{LB2l鵴[J;7Us(\{xgf0!|_{PKNMb0py_dbmigration/custom_logic/generate_checksum.pyUMo8W \,$Zw€MvlMOZIPE{m`[̛7OFmHuBuYz6xnrBrd,]β! 3 yrX )3x 2%S;ZQVC̲m~:b Hlz2 ؐOʿ~=oeGrN5$V<',?UI(Un$|]hEnZ? 3E?1%Tҽ1dN6asB;t`;OFz2~O]_*󱓿)ɘښ2X8XG,py_dbmigration/custom_logic/log_file_size.pyuTMo0 WM1Cֵ8l+"ю6[DYVfk:À-|zxt[硵MMKK?RV;A*x^84@ULkY\uU cH\ 5n]7iy?p L(rmk14a&_3HQ 8;m fՖQ ܢ#mN˳!I:{K#&b@70 Ak:dD)g P;^%Rcu:!P;.ƺqeCLa0Ln.^_>a \S"#fA+xxd, yUeV3_t"M'fŊψ}mLj/N:ԗ|9GTi&`;+s`Z.`2Qy@bt{|VaCr+ֽkvTƿզ฿C!by2(?FcTNan!=+'p g6-&w' }w>ä/>f:;jTUP~gNG~ V/o QFW]_fIH:T>Dyi^XTE%[ܰqZ!M+c]e +5Ռ'2MfQ/#B(&L)F-0؉/N)Fb1s͖OK*ckAvwxyq>kWi>PKr]N&,py_dbmigration/custom_logic/pandas_import.pyYo6_AE[tTlkӡX >@%a+*I5#-:p6y_<w:BC\ f~|g}%*.XJ۹.NՂt(l/bxHŻ"YEZ\kMLEcr%K^2c{7_h:/~G[,VgD9ۉX0* *NI"VSLXř 0L5Hb\"0@*IeuT,VPྨA\)͈d'g> h 5 InS$_4ܬax2W'Tʞ1`HxXYӨ!AM.z'_H=)YT'Ma6j yi4exqL.uE|eP6YY y-n1Hj!")莋O3 -aDAxhŞޒ[Z yҴ,W"NLVo!hhאXr&ljQӹkkzsZU_exbೂ8z s&\.LRM͚#*ZQƓT.B2Lҳ&r{.sLY^v>ߛE[XAAD4nxquupyE~,񯾬uJ# ⡧u|}q L62ץVcuqm=,=yE6MW X% LT ]XsSޑj0[XY{ BΈkS> XGM[YI8:D~)a{\sEX18DCZAW!}C?>l4XO32E|NaC= DŽ!S eԒFM7ETr yf{C}u?Sr-j7fכ-٬få>Xc2>\$1yὯ ع@9ظ:vi᱘l<⎛Wlς~v7SeJ3V?.DY6"l3s6^kYh@\`[ꎢrK>b*CIԻޒg- Z-Yu5PA 3^6 yϬ"]{W)^gvx%G{#GFp*FO ƃdAxFNT"uo5kNQl V s>;l9.f<Ln(?q,ؒCO"l2hD#@6b 57#c6 Z|o"%gZ%eKU0nQ.F-ť+}M IR@:&ʩdB.3@Ͽ69iQ7uV84/Z>H b*K.U QM"ѵkM'4-2 .ED_+'EM'xI1o&WZf4Ⱥ21z1!rI5yC+܇!!YAK tj+sŤ4U|*f~qWͣxxf52g Ldlc;+u lp@7ABt\'5xje=r4)´@K*kZ16T@pŮ&XzY>O6$4- "G!/ƊYiJYl^A%m $*(~mb- 'Bƪ7;ѦBFĞ$@pCm18_O%!ښ.ܛf3eR9VCov F!݃t_}J(;KK3UNO|(ypuzZGyM2nREgۄ |۱tnKhz'9C zX=1>Y xI {|k?kc$˳ӣO+ه% vt_W.<:\jĞͦb< y4O$xt))$g@{u~rgGdy[x3F_Nr9HA*WDPTK?Ĺ::qzB惩&!̦dD}fbAg3=r^.Dopq8q62@bfW~ ^GsID~6fdlozb۽ {N !˟)-8S~a3F Mg$ M16I_#Z:[P_dk'Ј{4܀YgPSy0q*}+}X [yLkcd?g*^/PKKNĜi.py_dbmigration/custom_logic/purge_temp_file.pyUKo6W ItHj'%!mM!pɑ E*$eG(;}k|)v2[֯;?y:05r?=,;4 Ms<(kVuoZ;x!Z#[U{њVuGuvYXe1Oc7Nh{B^rwۻW?dUu"T^Ww%z[:@Ȟ)RbLP|%WPoρX?g7|<*_e+?eZoP/6l= fS+fފYo+: vpyt8' atc7 :% V%jLT8˘4f#ƒi,Ibc-̩zTAQ~`K:Jʹ •LWȥT1n\?bS\ysG__ڟM f>/Dv_$s K PK\NM˄ .I+py_dbmigration/custom_logic/read_from_s3.py}TQo0~ϯ8ևSvL xiR;ܹInV:ɓiݴfڮCmMTή VH@Z\ur ݌i/=-\xP4::,Q"|2ߊ?iv6_p7ؠ\QV$PK\N*N.py_dbmigration/custom_logic/row_count_excel.pyuTKo0 WM/6YKW m"ӎ6YE(i4XOɏdAɆqۿ, ^{jV6{\rŝFײ)nP&gYs&QHjӋ鷣MqGJݞP5urb-+j&* fJ:?5NҕL(N|hODY#9JhۀɜVȐ5WUH]PhI"X˜,nMf\Lpyvφb=FǥKE< qB>If 61S[#qz!ʬJܡ:>OYKt1riEqס~$kJ#}@՟u5ZB~w e⋊uUUn4+Kor{&)Xxoz֕WS|/P"ç\\ :TPK\N#:(py_dbmigration/custom_logic/sasreader.pyT]o0}:ePi``34~&$!dP`{=ѻ*~"^J r%K>{̨2mRwouo\W9/j *g\{͔WX7r- I3Ӆ>$O?U? R-:弚~$t?DH5P,dYAj|rR rB@ U3aUyr-LВsai~FEXcȂ䖥 l,cʱjf Bkymjy+ŅqB΍VQ~,Al݂klǩtJc]jbɌiE |:atdܵm-{߮a #J^ _ bU!A 6ԤvH"Bf\,Sk9>?~'~$0ET靪ٰ=/Ga,ˇlsi0E] MiQ-8 lv6񵬅(EFntCF;(8ۇ$!Xyݬf~M.C͂'\?a_Zګvl?1!C{UA`ޠkgƌ~Sk LӴitt<6菍KַFݒ#O|V2kdU7qX{׬s mBj1q5 C>ě=vk+u9@l!<_;yhPK\NO!( 4py_dbmigration/custom_logic/upsert_table_from_stg.pyVn6+*h7{Ia@f-ZA)@S#D$0REm-mq83 gSBZ:_~g-z+YVTV[Qkfq:f[fIJqOϟ(Z;7s/k=J~Mp5WwW>q5йxnOBm] h5~ VR>;*0m^*E@?}@TӞlcF;n7;7%=!0h#ݢuh*"ri*[`r?K>]0H^6Q=z*ر;&=DYJ?³f]Z?~|BiezїC)<_kjQHQXUmᣍmJ*JZ!{,:8x񁫦oec X%}U Y ' yijCҜ}k cKa(g22`nFV)2A),Ƀ?31yX"ipW*/TKԅ&mf5``cpfzI)_jF#["awBŖy<{u Q&yu(CbSOw߸0I^׈c_pkEO9|W @oI_Gen"<e W4SyD+q`}Y7_8tۮtL u 1BF)__kjV<7h}qE/_GoORQ VшIBOV< +hV1*KԚ4YqUy813SʻFYY 1kB`2C7l"Jϕ^Mv>~4(.\v)Y2֤PKNY[O ($py_dbmigration/custom_logic/wyman.pyX[oܶ~ׯ`hM[47΃#pWԮjITH^# )<TE"3Ù73ZHMYY}/vW[){Skͪ)?uƪqPNٺA&EIDͫq_N0K!BZVxTy#,߆Œ^~+V?_.BlEE4w菝Q4eT2ŵ!aRqw4(;tZu#+H+J3P E8SĪ$mv$e RZ W*"i< 530RG:d m)ͷB>0 *NT-)򌎍vy 5PNk5ћDeY[eV |̪p_9us7fhOTÄ́Y:&gp^ fB%c%L!|>,&bg홈hvq7Y 1 AB^(~>n?+.Eaɍ 1!7K 8׼Tas킘@nU7>Uh#9'9͸jG՞'09 u{QĨ7{!OoN .0?Kaxf& ?4hEvpbQ8D Vu됾[|Fbj sǨK4xA{Bg Z]n+g7wN[zwX׀*+P'[ e٧]SISZ-%(0\bOنe # y;\lz +Ȩ;!VKZ074Y Be&SkFV\}!H")6=0oKef; ͣd6N(2?T7KM#XpYC% uZˎ*t?[jk<8w<%قC;0Mmȁ{ !hHڲl-EKr%~3i4H7I*Уߎ2>{GW6:{E5D͔&4#d AR;K^lG蠊=1ݬTswTOO;Ṏ7w=NZ5 uxҒ~ 1W<!;8B֓9yGsxi9pYsW! cDOvsUN3XHT"ӱў.fl[_"w4${wx0p|~= T9şBϙ;>.Mr+4G]rks9ƷCY('02ЮiRhARA7$W{1ĹȞtDP]/ޢI3xZQ^]f{G.<@߫}S.M_B%eTb`au>^]zR<"Ղ[ 9oW_-Iؗ=Sg~&|rKеQltl5=7nvzR^,ڙ yOkm!rI⃝u`[ Ij'\dIڋ#N<ݏh0-PFx+c qJe2(=hBm#-Qhl:ae 2&K#4^uG"4gQ)몎WM,e15d|M}O ДWIl81T86X%# Ot{1ܲӏak`8S7Z@)G\rZ&v[7 #At(D@Vjf],IfUrrSr +!t:IVW%L}"IvsIs`sze.b"upFU\P# Y-Uih4wY Fnw2 +ue ]3otO.V5o1lZʸ0RЁ4pUD5!YQ`UJf*L b*n [$m;b2<cͬQe>n![7aEsjA%s>H:?oO~dGoO߽9cgog1E0xh;Miyv7V$oQ6^w0#Te9!`cGX? 4l,)s 5w$_Ip~4ѓ8m/m(ɶLDf-NL?{du4#1i뤽V?SNQ1V$ˮn.3HL78 5Oߥ\h.Sנ[Jf/\H[؁K[xsGe[oRԚ@]5k 'r2 A*T`Ǵ֨^᧷AvUa|~xv|x 9OOER&YL&a&hwhd&ō ZbXb%a85_;f9)d-;H.$WSmD읜4˟ؠ&vTBq- zBi&KXĨYC| A1FUI9fn*\[6Ԣ*M([yeاЧ m|&~p6PSF!8{%/*C{)zw&uh&Ƹ J$XEl/6@<5Lo!3,ҫ:;lk)t@ ,U&6%:eDzעuմLq]Bl2O2pE)ﻙ f+'!z'XkDB$ AVo!ϒUҫGXM Q`kǎjPJ56!^'[èwo7Bބ[df#Y,iEqm&ӃXI.;a݋ /^l Kt[ֻ$ A`C0vpPG*h8LPԩLt1hsOi|w(0?L ]$hw0P a7vq-OgWmRBA@VO75щ*sb=AW[+]8 EljFcH&,vg6sQb0 YJJA]+o82)t ;=7gZ4NZ`#lcE'w [-HIclVGE dhg{ZaoT wBw@e4X&޴TMqɉwKD&с[߉HS&@-$X\t"זF/i (!VPym=xIHƙN*"x`[aO$SI j6`@Bo ۤ}%j`^& |S yC?40gÞVgdmf\!YE]S+x31IV*Ehg^'^QN/xzȷDFq=]2IT!Mui+5&*k' c=ز8 %`e7E& l3\RI r;֖6]иy!} Sm ʿP4 {zl☺l8G0c=CJh WHzeOɐDkSTJȟbU=VdviUsTqOpXUD.Ӆg{;ۄאC (+ ”7iQS $i.!l<П{&vH(D, ՜7I|w>"gJ[KAzDxi 7E"v<)~Pݕ#"|ta6|hV̲Mn8IzJˍ ,IRձ+< ! \U1<`[Ej`'vQmُ5Վt2HnBR|,ci^ ngm.eGn(A70>֎4~x#6{]aƆ If'0{)+@DM"=~  0)>AT֒]\P?8_ڦOj@MhjƊh6HKrc_ƙ|6Kܮz-j܆) tq۰Z.2{ d2d,0iދh"dOmC }z<8΋ =tҟs+pFJO'C\{e {[U{Kx7-9 eNZeSHSH^!f\oRj"_<uBx ` 7R]j\rUJ&eI+3=Nsq@~]Жmuil X ͸˫I^--b1L~gC+-i&"ãB; [\F;fotY<hA°na=grJ{ŢQQozFx2aV3W*]~',0a.+Aҧ349e>U#S vQM~D% 1K-G]U!d=M&ќktz~NSTU?%tMҞ?ݬ|"ˆ2oB b3 alə'䤤.0w>;l 'NtwK;/sLG`US*1VNMJ) 0@݀`<\UU lB2Sd^m1S$i>7۸G>+sAݿK癝Pa=q|%+ 9kJPni^n _qeo+NP= lS~3l%Խ|0<"6;ew[e`V=:껌΄'CDy޼UPzIƞׯ⳶U1 atB\.SADc3O-6<mcQ'6c=/|og_MO[2GL'x GmFl2n0+~]4Q6Q38L(ܝϠُ3%y)ILW;БGf_ci &SSX&yDNY; Fb5*I 9JsCH:Û0DR,xFu-os&3qͩ! Gvɓ:"%~ ;̔S-@hnBs7Fò8⺪0r3Ղ4cCcXjU0bY#;WFۏ-J*/b/q~0}֞?I,DAGqR,$ƴp^03pG+ri>K 1OBS߸fl׬5F޲? B4qZܬ@.zxL wӏUIRǵ> KޓRa]|U}^[4Ҭ\X8j#J^w tz)hp:=^Rn%@`ń'v ϺV/EC㩾 B0n3{@x|'tWlX~(ѕk3iBxyXC$x():g6xv^av}3֥/8B~o_%H-8ٯ`Hfao2 J]!UTU5ۉIB*O"- Cu a4rQUgqEp[lK pp' (ȜgSPN:Nt4,ۖػ G[f z Rn9.w7{.q~(yc}Dyy$ڲj_ I'sg1vcZ‡c_3ƁV r_pd6rZ.zTq^lᥜzz?mAnJUJO厉?rY9!Ux0 t!rq=cbz,KΗ3D\?OkϗEO`tݘt}RSs{/EI_ `{<h'Љx'3 >]P©#?eO@o<ɡ>%E5Ï) n[)_NȺKsPѥ|Qװ/ГXkxRJ^J 6J|p3ߌ0% +Ρ g4U+ʠyR*֬#V j-JyS.QݩߐKgTwjH%jKrwPɗeWW|5yΡ=YOF^$lV u| *oF*AyDύ`P ‚_<5 H9q[wFRn Oi17…n0*"7BwT^#^\Z΍ . 8Ab8"bl+~)j!f> QK uŌ p- 9\$9X;\+}d+|O(P[O`s`"9hL.мVT8v.:)M ߠ)r#"Ht#5n֚ӻ\;{hG$5 !ٌ*)cKo)I7kPK\N`1 +py_dbmigration/data_file_mgnt/logic_sql.ymlՖo0WC !*eTډ YCَw@~l`|׹ď$HS ix O`E% +xD)I),"D j\RȓD:)AG\^4@ITްR⌀5'X3`.!ZC5tLwS R2JFvzsK&dnF[_g1`fkr"*D($2*1%N9g<\Ep}?7;ܧD<ɨo-9)h$.[W'8idn:$+VSh7tf^AG)[,lqY*+ G!9.1Ȑ}ٺ>%EWfOn1sz pF$1.u[8ԗnjόL*2(ݨLβfZyRi5Ἰp23*R+7PKVNB[e&py_dbmigration/data_file_mgnt/utils.pyXMoFW,)D!CQ@piOAȡ̘2Kۂ7KR\J4aIΛ7C,Ӫ.N7eyY+mE{jK6/^6B_4%q0Oz5u[*8 b w8ax\n+;z3lE%{ Lfgȍ*wh`e]ȄD^ =; 2B3-KLɥTiXQ%?:i0͢QN(.{O$7TʸrȻ4-cpeY:))#`D_T^Jk04FW⡋=PҠ0,9Nȏˀ'$יu^Yu_pVo ]{U4rJ8{:{=AQ!>矮+1hy& F'gA-{T8-l%7Rk°IJ݇b)D]F.i$mS*, ⵰^^6{h þJ*M) aoh0)щ|hJNpT)iTJȘ[4=к #:tGRrӂtJ3˂4kưMO.$gDMhPT#R€;sn^'(DKڻ(q#VVR֝;iKe 7i׎]HE%R'6ֱщkOԌ`, qt$Κ*;i'PG I ۊhUSoޛh1p!QǼGp8 BM=`MCة2;ΌSM qxVk,q˟@! 0|8edX bŝ093nƎ܍vu{2po J+7_$2u07@cS'҇+UY~aQSSS8~dHTSbC"2{e:D3.i)=3+()mm|t?3}O55ZFl5&0 Bf吋#RIs~BTa;^N,npe_}Y$Zjѝynpw]q]xY-L41HaZE5 h+? BE:,5Xذ3|9j%H0K<>zUˣI*B?jIئ<.cn5R>uH/eݓgOh㽲cr/i x,Ѳl9~2_MXNG6⼏8?Hq_WRWx PhTb oꮒ[2sMyz&߿ ;wmӡ|AR]z~Ja |E$q79w/S+tss|;}vzX=nӾsQ"+vȠK⇳|x}0LQv m3a;;O5ʀGU.6ywXmYޜ~F}QxSᩭmqP1M+ JVjPK\Ni('#py_dbmigration/db_logging/README.md ,V(QHJU(H-JUHO.M+I, gPK\NC%py_dbmigration/db_logging/__init__.pyK+US-/*QOOO-PKtNHhҹ#py_dbmigration/db_logging/logger.pyWM6 Wڋ@.]趇ފBPl&1Ʋy4D 2*᠙ 欀ף)>a`F.H->szgY6kc)`."2=Fi`21M^Gx|X'^1b(-BAwa&Bo~"P()9T{&|Il˵ߣ0g+ej?x0 m:ܶU7UdVkh^Y@M*Ggne{43LTc$|oNϱl $y뎼n<8U/c14eqEJm|Ŋ59*Y [)A'UL!O|>Clg@gC1cVl[8b0zS+i${ҤDR1@[.#|^ޛ4.omhQ@ !a-צWЕe0xDuqhN{@rj5bG:I]iݜOo9ENX`t,+-x*'zK[f%g$'xOz}x39+yXtȐzf*Mgs;\2{ dk!I\gA 4Ega^ΗMRq4sE|DoZA*P>k jeůgK`oDއ ,16fTQF.c-N6&9m@l:1])AH^^L^bcޱn ,N;Bj~-ݞ\mNh5b*GZK`ecŠi%Z^h$ib63hK뺞H+uAzqj} Nd|!tdx_]Mx%) txlMmp)I,IedZ=:U=lA:0Gu|6EaPh#S7-0÷HKm2, 6-0_qa(x VYPn 76Ib¡_W<;4iz|Kzռ[weE}= N79C?gdl9DŽe ͰY*p̲|+#]?]7zbVtߚW-}O:N~8ZuKȼw,7޾LEGh>v(Ͳx4}T{ᛔa',@Fװp55XڤъmŋEiIhoqr2 5dw۶E9 #M4cvPK\NW l (py_dbmigration/db_table/db_table_func.pyWYo6~ H]W@_ n-mQ8vEE{DJ!#t!GWܿϊwfuPD}ӕ=54R)KF_P^LŠTQß!JI> *Ԇ6j/HW-qz"+5 ZogPE]`#G 5ƇO @ 3U*'4Xj fEq5︩B8lk6dp#cbgؒ5BW F3wh^WVy4>[Ճ>ָ5!;rr;@@dx "EN飋tHcӆv-b\u<*lX0rt( CP a4Ʋ=zě|.gx_ٶاy˸,L՛1PK\NQU(py_dbmigration/migrate_utils/__init__.pyK+US-/*Q(.I,LO+KPKЀNqP=+py_dbmigration/migrate_utils/static_func.py}m{Fӯv1DIx2+Ul9Ѯ-$e9I$@6(QQt߁E*vf&gNF&:bi~yd Y[^oQXU27666Y"٨JU9l(SZ6|0g3H&,.K}k&J৬¢ @W_S(/;w)ݻy1 Y8} TvE"fEmv#:~eqWs|tEWe)j^dlS/1EkNu4΂YXr mL7e?1@8QI@|G <T2\ @x(gU.u<c-ё/tqQ `H\000I&3GUu"a($t:SP+Gfie8/cL4s `Y]u+xYViIX$M6 !Q*`xhI7Hׇ4@Pl^$#^ghL#:LKH85DG#Y7T8ghOC+ 9H D".y |D"Wc^r3z>I0`&͌4)a [3S0E0dny5,^Qv! ;1G"c4R1`Iɀr6/6rU|v}oEGN!ڃZD4/oٕ?aC zKUظAi1*K-FbN7Sp~ /CX^ 2ʳ(!IlP:}"'5ȵAIX3",q `SqO:F-WMQQH MAJ1AjaY.`Cd]vRH,zi*LɲN{+ʹ]̑ ]-o=XmhҼ bX`>&YbD#rt*&]@G @q2'g7A4WI+ĵ JS>4Fq7Xw)p$!bʮ{I3jPӘ5@h0͋L4.0Qψ'TER򘎻0E5Jp : ssx@@)QE$PQO|,q6F|kC3&|F+LPlw;y&饘X|s^}'UVDhi%hqIB5WTI+Z#I4ѴWNylu5^4'ƞMbHi<,@&);Jl>poH0Mߤ4NBo,DHE]Q5I4%g mv;ĚjY`/4z3p1 F8;[#̡QKqX49t!߅qӪdpB= QX6LLh/Uc@nc e\!+A7SM kEe9k`"/)- iԜZwKj2"[2ؿ.,9GdI=Va W I*΃\C΃3^k=DO(LcU(:Ha:$"3-i҄XWpB.Q)C`Ö@F!Q a%#V WqnRT*HP$jE-.A,Ǡ8$f ϤЦiXDZ|)- lY7OU fxzK MnGzX޽f]RvJ KhKYy1"-RusMS$lV۔Z##"y!4'9Q9dsٚUvb?C0 \bM 7l6.E>؏pQ=Rx..ڗ:smZi`3ZXʈF~{ "?461Rn]ӕбr&XBYg NBtJKwڀFqVaǩq=?,ϓUeOz/H20Ʉqcς DV$@Vp0J& ~Ó8 i8TYPEw)s9@ ( &W`[[(ǥr }{, e6t& PE&L2l=I2y>ae` d|n hf3e;G= 6M dw;Ջ{5'VѫN>Y/[|CnF.X&Βj"H8t3OwQ jR.!o~8 (]4aM6 hpQSQ/·EX`w`Ie8$$DN]Pje1iqbcg=9}FUyJXɵ&X*}?$1G߃ ҁoUvwE<}_8BT cֿVޅfe7ۈm䏸[gO N+58q1s$ ]1sn(G5M[4M@Cg:?F|x$/ˑQЅ7*euYe .ݲoyVדQ;ؕ>c x3t V؇ A/0@ۻ^/*5ͣ-s'lN$?`0wy=ôW<&rUio?T57zy1jO/H4% wa,v8:.Y󄓃7/O(Hh*,P R^1+Dk}HjO8ԒA3]dBB#~2~2}?_y ;rY91 >h1Aǐ^{˺[=E. ! 'ͅ}L3ȒQQhir *!}^ d7P49\w` T FC-#"d%hD$/Ch@Z S-C=@vHQX\9(/cċ;`]$36,wyG_;XZpa /Ҫq ¤VκHᣢː'JXKB7P Qߠ-y 8 ]2F/~6p_Xz^yѵl 2;c44*6W2#69raA4hA/N8@ºѮo/߽yz}o{B) ^ ^'!ױVpw4-$BTXI>OqVs_U%[V:hhFl,Q.ͯa?e*d!g_u,UekM:g+^Z^$HyKDAˢ b~Lc0URЭT9l\*AϝTլ޾F/A$Ѭ=ɀOǻ6 ?wGwv>&[bʷdD@ټcoI.#LcAѦ-Kqʾ*n^`cܚ4~T`!Q:"Gg!N.'U: w|ݱ3߆ fbj ϳu 9sq\aqOB`ĤZy4`o4R_=OkL4J|fUb_%KqL}*PTw.dQj- `H,yPw_uWYTc.z _䩕F4_F Li<UnXB]Qʛ2B}o 1G[)P!j\*ҁ ț]LktڊڌOP&ă]Xqcd R4|^ s{%kUd~a^Vq7[8ϼF8%sc(RN#6z\RQ-pt!zo*uWouilgUL[}lKǠD=7<yuyEl U10l -8B}MaM8- 6E2O`;դa78(wF NV/F<䃴M( r7P;4!;J5#谑.`=b[c &|ElވZhɎqVy5*a_`~ 8hAv,A5X%ƋN`E(MץNޏ꺔r|IYI5폭_,%51 WAV8r5}?X͎b'kB*h0*ȿM>R?[UfZ r;sa}.pWlGQYjV0_GZX3?#t"3OR%pVگPt7Ji\5kɧt?E7]%)DCC->0u)ŜY fsQ̸H&[zуϫdqC&RE VPG#aEjָAeZWf.j<ʘA(UNiAg1 ň BXliJj=+Ͷ~d&&s&@ 0MF}Y0N*v eP*fe4 t 0M=cd;8kqK:MV vJ'Ӧ=}Bxd78X530KG%?N*L9u _ulYsD,oZYޖ><ԬZkڐu01p*F K2ZAdt`Ltpκ?r߲&Qo% b ě\)x 21[[4̶(B¼it){95z:Tdi)ڱRU%K# c{☁F{ǣkF1O}gepg%|k}(V* NN{ =}ֹML[kwss^NCHxcD,xIY@!N?r&Tqk4${f&5tr͑s C:.D J6*x2&V8A*0z~↛1WCN4We/SژQcXTNrI5Meo.LX6*iy>:\4?&/:<5B5NJz.lSód!Ӟ\逇=%cYg YF> e7懺fW=+MD5{<D =/`:xΫUBxaadHV@PI;,ib뻦owIڔz\cם^#WžAg ;)Ӻ^x^gcY~`}APPT"7t0n^gK:?9l&aiƴ /CqJCz}o:WAeC|Fdg3 \9pUХO2ve@ 1#Ϣ{-,(lך|y.%EB uRW:oJo][eWOhފ1G tVJ7 #]Ϛb[Ӝ]D]۬jBb1yA2fBABY08kYp3o[T~-Ͻӟ=_{#~@}O߼WGoNQ7>Wk閨۝; ̡R< r +!F-#H(Z (M %<74,b)28ڐ`&W3/Z+QE7dr yL/yʑCT.g('#s2ffԼ>1loo/ۓ<ǃbn q/c0Dݫ{-O=̿EA|[>oC7DnQS=響̟FMal2}n kּdujj?6fGQO]oyY(lW`˔4~R)?scO<`YM+`/i85Ή ~e2NJi͸]K~m DcN*K+Z5nYds=ڱ[(+7.w"wZډH;=kmEFy9ܔGTWn@Y;H&a`ayWv&4ҥ+Ί-u~*~ȭ($ݭSoi?j/Z 䄰7C hyw ѹZ?T(~++;r&ת͉K.OFWEgf"1VB \yQg$ayg  ut4 wo|sCҙ}9>(pOF^F}bv|'ݗhzCC\C3ۙ+(f5WeSشh= K -+cGS S ;`RtM3L T}-8.X9zK ߞmwVck(ފt 3z3b˕0{CkQHMZSR թҢ IQRm*S402Bb 5G^UWSi1Ȱ0piC  deJ7b,.Ա?RV5ג0k C!EshCqiDVȦ?Bsw)?2}^ew3clA]KbcֱyVZ![NsSymj \fB(W!{㌂ө#CڔQ/gX\7i.oX#PJ0LXi]?Vw߳6 h=\Cm,*rzXg7[4\>D}`j ,+]z^(!!=ṕ`(( S:qo/OWHt_D-CaE:-a=ϬE[PFTHgG*# $O -̯|H:ss>iW0fzvv(LڹŻ/pzhjb(Ug>UE^KĮVe;Ll-YOtxtha]~9sڌ5WQS/>B&l6,A6}}jv)5ynX^t GQ (s6W sѢcr ƣ}09()HꃴWWՔWWK}*J2оQ%وP*ᷯ臞mk6W`sr2k^\W׻༾<>>A+-ju <>V(׾Ut\v(4{굴xh(2k*gZyIWΥ_]:l鋩uv7- Eާ1{P!ᅳѼP/H> y4B峙2b(,Ga$q-˕q`BF΢8\G>sQi|*4N^r" YR}*&z+xl*@œy;yv': :?ö ؘ`\ +Gёgi[!t [*?E8@ ׊p0OPxnND> $IN@R<=EjѧŢӍEDմѱ )|G9΋C'yYL "9띢P*Moh8eOL(iXV?}qF kT{6$wDa)@(Yf7 s7lg}gSg>7keZ Dy >z]%Ӹd9lZyT+)1ϷELzQl2XнzY5 +vM*[;paCenma<` 8rX Jٌx-Z|_Qz6w)F74K#L?{NQ#D5]h~C |kga#A ? 4~0)P`vGkCkۅwIH-"^:Tc7+X=i-Xo@k ؒM<+ h6݇Yt IxEBн^5 h2Bgw6u|{X`1PG9`ƩW>}ew؃nk:(bj>ᐾ]L-835;1Sl$^}'I+Atd3/vc_YWVU*V \XS-7PS,EV͇3 90$@`9]u( tO6^ES\.jj?T"wU’"'%Np(.o:QP_3z(1QDH*Cؙwxtz1:q~w=o?x =y o%/",hADqȣ"h{|%Y  ǷLJ/YuI]TlwzFoNN߾_Y[L} &SvL :H>Oczc m|#M wMtȢ(wvlđAsҨq⢇Ib@7kTyk*^`qڇ:9/?{Nr1R(yXNJ{g㌣a8k-6~9wRO*: 9uFaS-y0YIM#,P7LW_ə|AC0#!Ӧ4ĸP ePcn4~9:HF"-n|cQ6Z7#EZ6u5~`m= mr^ľ`. ::k >i$M.dDV=%ɹexz$^De\VUl5YVŲ=E;fl+"f~Pw/Ա%r]fb޵rTh7e*2B4(A("r~FrhG(H,byJ,79{ԥ)їfeUg.g4[Tm`;6 $ 6G~%=<_T/ V)>3Ӭcf=YqIKm磦Ĥ]kNddz4ӔG'w^'ِȢ%5|Bp2΄Mn;`. kĠ QU䕮@ӎcBy̡_Hd+zu؁ ibEZ:L?j\ EYԷ0} `4UeSabGi^]i>ʯuLj|]I'g1cƷدִĠ94~b2gqڬe{J` `y EFGzZsG[$/|:=kT{چm&7o=6Y5,F˷Q/֨pK* q ȮbǪKVmijD1._S1 `XWӒyWʃή1iq;/WevGnd摢ug%š-(.kEoaIG ] XmMb˙оUd$^Au[Zu>ȝ3&#p$5 'A%[63ҬU#Ni9;7-{ b}ah50z&߲QnMx1Ƣ=9Р1D-@֮YZ^#!ct#{@C]WКAiWWZHk8Q|FJh<[.+.]8ae}334;bla.@gU%I^!xb}NOaaOFw ?"H>(%|;/~s9X/W؏_ғScDOXco4^TOLvnFˍEcVpO'ٺb/M9 ajGԪs& Ɵ227ê"H0CE1]"΁B Ti]%}(O?94 ]8680PR(L*uTfv\\X]ɪpY΅FG:^t0TUCq/bGrmr$oռnmkvmʟotv]Ǐ6cmE۷W=[+kNamj!֮YtBX37%.қ!ta6N)PN[ /0/Ucqi&ʫ'g^#<n Y1pk~5Z>xiJSEفhL IVd}DuJ::>ue8E6M`-FB s F> U975]ԖϪB0.࠵DzvR#Awa Z2i␰&4!tN5FݢM.}N]m )^" hU^G| Y8wt4- ?^ @Xiuȫ(6T^1HL޽!9ڛ)I"㳖S˺Y\bp(LA}1 '{(v{mmmyЍj2#^XHClZ F-Ʋcg*M*ex ?㦞D}H>؈I?cǩ5zrb(-Pú@-K0vz9rWah>^mR}+s,YB9T4ωp_u}0H0 b-v/z͵'ZFFFYc$19|/s<7Ft,96>N2O# y(7 pZ;!qbT)T v\ c&(,g)& 10 dWBAR( \T7쩥4Z}@H x<35goH %ְG S2ͯdq ߀8< ߚq :T谎߃Ce#%pG캙$?lFzOCO ~cdEκ{}Du)oJt!ioI,@gUdENTg}54lz VBϊ\M]Q(*Ɛ!4s@yopxb$ZاiQ*'+"kF]o#(cҳ?PmW}{=02J._i^Lfjh:C3m~9*F),T Z5jy]굮onj N[m.R^'m4k2h/',XَVU@ iu>©4uP:S+(FrvaسfWߴ7?춳XGM `f뛵Pe]"Cji8M 7UN`{4BI2fLk^|IH]K<8ێ@~6#ȓ_(n:;rɆ~'Y5]B. ީRy9VZG+"YdcU&)9:av!gjlGК֓'Rĕ$HyN%%ёnIJ N90gq\ڃX-el op ĶaRr=b[Ui];ܷ+dϪ<M B me-G ~➌;ؠwhʷZTXgVa^1yN [iPb:w=|o+(녱V ~6?/{Ei(^M"9_5+PӸ/*.QH2Ӕ<=ǣ2P[S8iì/cGj5M61|b4V`y c EQ[JSS5^ɉ5ݪV;= l<`/b̒DAV n{3Ǎy̠9+izk, 7 o8꛶]o-ws-y46/`=LNjv,˓ƚtg,c\f 'qo8|Fk83[L~1N4'qV#W`j-_2୉*S2hh%N+PmIAby, Ǽ0uGݻdʬv GVKz U҆ZukG%7/GN9w;V($Z}48cu5UٽZsU_ $,2]X5pw\؋8a ɜg蝸I4|cH%$mܦXmSόm}Q+}-fy&. L%au5(0smK ehw$o1WC2;6ufb >QM)&'RwtJ2c6 ӾPYA5 gDe@ P@Fd=nޝg=Ѐe)=R$h@{m\ k'Q^JCyQVٛyn}! Aw/c4Pآz" ZKf6e>P6^%O6|clE-m6ۊlۧ = g 7Zt?w,E"r*} lyFKĚ7`Vl,>pTG .)RqFLx493,|\@,M4j'U;LHڽTt0R;%pײՒAW @蛵I|V}ARo5'>3> kikPt異BtQh<2z>:F'>ɿTͦEZ.(qo 1$RUQvB!h }G 7 Vg-ߚIw k'ޡf13Qtm8!4٥WVE#A zx<5." 򭚚 !i6 ~pU⍘#^dx>يwAjX ks+ Tq}PK\Ni('#py_dbmigration/misc_utils/README.md ,V(QHJU(H-JUHO.M+I, gPK\Ny%py_dbmigration/misc_utils/__init__.pyK+US-/*Q,N/-)PKcNR'py_dbmigration/misc_utils/misc_utils.pyTQo0~WCҦ-}UCU;0I% yTL*"by/Riȩf\J%e`c\QU6\]=jGC4q% i4ˡ ~"\%<=GOϰ|zcLT4fiAOQsBb1-dN*M4;'$_&Kh$6T2,t)uCֶ9 Rhb-ľDPT]Ef4q7/CѼP(WU (anfH\%YqCa" z[3Y0dk]T!AӮuej+Ym6p 73x]5^έ1o/ذ3+TghƇF^ 0vHς3J(v1fME<8Il=LxIF$B> ~=zzh# *\bu1ϑ~YΝ'={vnwNG)PX^-#1nI7mv(vjrC-zƿP\E 'Y]J;A*I/ՒD0_ۿc׹)6K,>v}.PKaN`0py_dbmigration/sample_code/create_table_files.pyS0+2@aͽUygu|pLH]H0 o)kyn#"XO[ƤfZ0qϊ)^BqAODF/yFsV9"j0VCG eB"iƜ3sYL,AُytlDjKb>SKi~nO/nN.`eg8p}'K;bzqn5 à-8a+Fk^ML6*ŀC -8kHd&E+fdÝ1QF&(nLÕmV߾17U%}zΔcTg/ŝ/^+!X/$ &(Sǔ5h1ўJt)aރZh@C}Np%&]1 iPxi>kR!W5LY2Ls0@y㼅2貥U~䶫%ekwA};M8Rnqr˘ϋ6vݮ'nb.ַ={3oO(ܑqnIi*Hx^g.5Iv|{f wpށJeC]@l x"A5x7Yz^n!7 Ӥyй2pDPKaN@y1py_dbmigration/sample_code/create_table_upsert.pyn0| B9(]qir("W[lK)NNp0 [>KIP Ī BI e-$뀉ǬVcS H]/Zp.4Gh8L+] ~.a H/KBg z+|yNΉ@ʇ盯A^n֛ض`I.qLeL"L@0GnNgqZ,觤2'u=NP.&( F2pE7FANk[嚷{M}by@0L@QH&uh򭨸IVGk{x_9t"2Ь 2@PK\NuX?[&(py_dbmigration/sample_code/import_csv.pyZ_s8P1[eHyٷʃLjwXL6;+a$&@.YCUbɭ[w J6rGlP"fQqd´r.G8QdrIrQʵ*JWV< Ģ&2Zc+}?]M WBLjA[#g gwѶ4hLy?˙\^O)F\ t)xDR@O:\tM &tW!h_鳩]ϡ+Ї , ǾsƔV(YLP3x;@dG( `aF2`e 9FlQF_ )+M̘bS2}{̿=C8דږ GG>矾 פ59%WE̼~Rb/$2[B %(eKLNq(m.3 (_~{4b-\J_Y&@M{Nj풡O^X]yA_`p+ND)|rU cbJ %f P(XXx)V5Q҆pL c5 V`M֚̀7ӏ>>8Ǝ5!\'5uLGojR}o-ߞXn=mέ#HCfOw츞5MQ-~*.T:f YҥW+o$:+ 17@k5F!W .Tm68 M aes>/;x9~vf _ɾ*e+ z8)0m) Hw ={).;ȜCǵSnO/w@# Oo[Wh!:^z=<%o%Ӄ'WnuOp|ڣ\~p_ NN׊ƫu1Ai.S>N ȌD*bi/M4xA#E2v"D<~iP &,oe8{o"Z(^;;. e1g~A΂QJ5TE(r?BRnKzRX{ h?.P:$%B׻:04fPX/U*ԚtYkٶ{WABvc ;P,;;us,2ܻoT8\K{gavenӬ?τZ\=PS,ٿFȨ Gq?n-@pECa[*t;ށp) s_1׭X!u@v&~u.+GYku.?.[sf;y'B8K -N@WV,_)gB~"Pg^ȍr959jWRm^g'&gYR,JW1 ߡb5 C kI㢌E!KU Re P-%dl" ؅jb&Q]lٕ,ym/J.#&2W"V8GIV_Q=6<$I\y JhV)I&:U{08/p٧04ñ,U^%%  ~ #_QMӲTŞ@h̽b{tlKhOp<Ķ:Vѝj5*@&7Npks<;K&F 6]LqG\ޮ7풺ݾYFoyDPEy6-\B PK&NE+py_dbmigration/sample_code/publish_delta.pyXn8Sv]9Y࿨7"ni'@KDUADqc/Z#@$q㧙h^2.Q"EEU?%Y c1UUӥx:ET2!J^)8ьZbŜ9h5x5ӌ8HDҜh Y)9-;(<^ү>|NU bFAFH6~C(8)(gŕyZR+wϩX.V$>Jxʾ'` {#``@PŠ$ \iioo?y^Jf(gw$VF`93"ð9 AC6˼#֏fX F4A(R EJjBg]_g snDLQRXДK71;R*35c t$EC e+X.o.2t - * Nkb(L3D'/,p"pz[y) de4|,\'ݭ 8iu VǓxSVxKA8MW.wU<7tDl?w滝^ݮx}^]fYH8I<%$8]^ijeDZw-er P4bq*'ݫ\͉͎AH;5LzӡtyNAk_ S}isX=c$o*8ʖp x@n-xZwʀC24ӁP4da`QnV?*}wԡj~ڷڏBv]k,7&.\C~%zlfNU}ݕF0$U㥿yY5^sAuL$|LoRVj2O qfy}W+ӹ|F54`mKwluiͮ᯽VzZkyAn[5-f,'3t9:Yc>5=n}*-dʼnP亗So'/FH-g%Ԕ*%9e CI{3VZ$BSz?Ds%^Fw=;EM"Þ{>zB2F:5E@S+t4V' z׷`:<XjL7'6aYKA^95 iiK0< ޽{2rNnD1#d+uߪ0v!%g*$EU8;D~:`neߣn{&`͔VLa*G* 9%>k&t[^*a^:5߭!zOϽ5H!Dz% "{(ïr !GR!3hmPK\N*,py_dbmigration/sample_code/sample_tables.sqlUn }GGVi]ԏA&-  lӯ8(/=s93঑`ȜG:bd_30D)(BxVL}n<@\LQ >ﷇCؾm'sgzaxze+&7Y'"Q-[P\*vA=Y,K?c *HS )!B;+ō;Re*IA<߆dL3D´aHj}nf})BJ2yNP%r\t]XĩG_DADgRݚu/{נ1[!_/:zW0`jLj`{`E8ZWS#]Zm8ťOQG!KpC2b'2nHee߮ _"Oqv]WIe{3_(A&u)KdrabpUHAN.PK\Ns $py_dbmigration/sample_code/scrape.pyVmk8M7±`[B 8.9]BkkQr%~3K6i -h43 mo]^tRN?S5=z2YޯVv6ζA ~;<R\M>ʇ#yЩtC3ͤ*VV:zpse~;݅qT˙ Y w)X!g)Ӂ+S`Of*+)`Y~rK%UשzQʶѢz(W]1wTQH{`/&UZō;/䄞1Ei҄z];%Uڭ/ҊnU58nEIQ䃻2Ƃ˳?^]_lVe[koW) 5#WnLG3t翼x mARkZGҟ6*g=\:6_r+r@TY&h佳 >7^EVIp*s?=PK\NÔ'1(py_dbmigration/sample_code/test_data.csvKLI1QHFPژ+Q'I'PHNJ142@ PK\N'py_dbmigration/scrape_utils/__init__.pyK+US-/*Q(N.J,H/-PK\NC *py_dbmigration/scrape_utils/scrape_util.pyWo6p>H4cE3X]E@KFU wLJ$NMbx/~wVHM>)L}jśd)ņԻMMZosǔVmynjv/Rtd2ؒ~/븓ŧ(Mr1!H{J [?)#t_ Z%Fѱ4iKLw!T`9xKgUH{NKJC0#@i/;l%ET ~3)ْ7UA:4EI(VlDTʽR#wF 4т5#kۚЦ"6xP5-kI)$)E_/QT>1%&rh膥sePpzmHFw4՝%fY- ƽnlH)zBh-8(h2{:r.OtpL%ljK~Sqis爉2hzMD˚xtv%*<g1\w5P"Lh4o P;ܶ V` 7v%kÜ!ah9ir$soth2|C.!7t`)2ѸL`90X@|#Sa`[rr~( R9)b^]#CYSe)iF(`\yDtx]:Ik(E&hD$z-nh~6'kZB%/ǚ$y y>Kg>B߽~f+EB~_CKbyvy>K*N&db7a* p]`2%ZPGx$Qʛu*Z_} 7HS^*-8bZ BFkwpeA F2*sc3oU2jUiΆSWn'Cۙ8(p>-*VUg#c'Q/eJ/ &ϸ00~5U'L%({%[]_cW!d/:l>phT /|맖?/n@vh)WԳMA_/ @ꡊZwy6T׋-l\^E!9qg@!3ņǝ&3IK;f%:qr:.PF؎nlf]Ӄ`!,<8E0h=rXiVR q[-DzI>P&)1*)NJKɀ;{ӹ]8v0zqKkv=ǧqc1 &w2ՊFacnE=@lЇ=at0/F)ђ{n^`(mMM*I|~GXu0̨S9G̃ II=:c l'`_uƭY@Z. G #^d֯ ({mk) {sb͕(=d3/Ln4AxaA˗=π?M$'4}lk|[~[nK0[|<.l$!\a2փ^PK\NK%3?"py_dbmigration/sql_files/roles.sqlK.JM,IU(IU/H-J,K̉OIJJ/J+AV(W(/.I/J-PK\NQCf )py_dbmigration/template/jquery_table.htmlV[o6~~T/q ]Þ "U|CRRa/6y.w+,AH4 cJQM\ddf:|?!J02N$' g۲G2 #yz\rz# "LH$ v$+SbYFmk=7*hp+{7s;Pmhd]XF=/$ Mj|V!Զznv+!+CȀ[RكBse+wH+Q~аv9L eI }~_K7mí ba$ۮ،wB~8WLP_<ʎ V~9cjTl IkCK՚>jTQE0|,S-߼m3c;Ggʢt*-DLx*՗smN6_AfBEH*g(  5VSyz R58< yx\^-.o7ߌK,Msے`й{G_Q @k=ftdivUz/mjN @rHUֳ[]/Q =,Ci'ko7PK\NmN`70py_dbmigration/template/table_upsert_file_id.sqlX[o8~ϯ8uZ+J[ԇ -$lfڧ(%"A&N= Iis||&ܦm~_Q/6dtCsM`l[ ]#wjj&K&1"9x-Ҷ¸KtrvK..7.7!D!_h)s2hW/xo7HBK1aS.v]`-%~O>A^w2b88< * Wuk*+ezʾ^O.0\jc26óSơ0 LML 70 >(thن/m Chb-ܴd6حp4d-Vm&\,!0N>*\#(xې{˸ TBL Oʼ.;z Nʜ tœ4lďyܺ"W`0^_:ǝΉlU%fȘà&3^0j$Cha g0Ed4'qw8ji\CY`){Z^zЀ+ nL6AZֻz1*lz?ӰI IeVIhS)^!32rat|s׭m͛2?ј*xrZ+F2N^IVNCoZkM_fFA,JqN(DA4h VJѳ#N}=xod-MsVasˆXZ'Qm@Y~BfH!Y'Aa3/xE쇘vn~i™ScbZ;9Gl뛗9i(U, ߷;b|W8M6aMj wuf:!mrE&,qkP} }1&šnv bZɃwjeUOۭ[iݲ?vsI1 @x iOC\ey$ļ!UlU$}r$Kiz{9YHߠsįM,TtJRC"h bу>ރ7{5FրGbP6IT׊2j95w3z%"2TBZ7/ }a }.'RPvuO?Mߔ/o WfoRmsZJ>T*T<׋3g ^^_rFQ\<dP[4^?o&bF*T;/xPK\Ni('"py_dbmigration/zip_utils/README.md ,V(QHJU(H-JUHO.M+I, gPK\N$py_dbmigration/zip_utils/__init__.pyK+US-/*Q(ͫ,(H-PKNN^$py_dbmigration/zip_utils/unzipper.pyT;o0+` <Hҽ Z>)l)R 8I#)٢".С#x픶» LxZ׆#H 4\6<$I*-1X>Y*u3z]ᠹE}w;& >w^ -kPLI֢WX%MSjeĝbe@I78w?ӢVe62'ydB42L\uR|1˧wKfjUl,&Bn/T2Tie1DYHY' ք¼T 3W%7/1ʓˇ^ dHwf1ҟcp 9y o`vE,545&PKN\F:L+py_dbmigration-0.1.10.dist-info/AUTHORS.rstE.̤Ғb.[d.-Ҽt< !#$713G/9?׎ PKNҼaz6+py_dbmigration-0.1.10.dist-info/LICENSE.txt]RK0W8Jqkol9f)ǐ*(v n[ {c: +ip,K:cy||P[Bp~_8CmZhz<zَ~k78dACR[CZL';:6CDX<"{..v~0GGnh%oޝ]st |&p;пc}B@z?EljηL('?B}ϐ9뇻y~@KO&qq@I;cZ'&R5~h% 38v,?^> ].+H!ûgc>~.RKZ`իD ^aH`+M6pC@-;!,sEULօؓeZl2Y3JISIQJ4ǒ?B]–ҔĹT862\zת(!m)˥FyBUxI1AA;-_r*2gs!nR*-\%3J!fvs\P8R#UI1RUe)yne%ZVtV9fĕB^WT2 LߖPKN0g@(py_dbmigration-0.1.10.dist-info/METADATAuRn0 +S/,ECuK4h]Ŧm TP&X3 {$ԆM#Y?hx_8rQmaA_e9+gj31kk0@ 5RmÈԭwXJ9NC4vK4jS+K ϝ1PVީ;[@RYVp`6p`ذD5\A_guXȸ3CDH^g2']çżz/-ijmO;4=VON+*n9 Z#G,pqb^M-*xg Bըa4 p]l\Q睫"UQg؃`}~٨^+G' SUH4ZF9|P`>!KgTP2=5oᛏbRX,YjINl+s0j8vG.}-k;x(;%t\{!Y* G#:s; c1Q$;8gFhBi#^]XL!bȇ-Ip 6o 𪢮%CDWy N GK:ɭ5lUr`.iq?'takh @Twyu3]4tvB|U_^7:Iz/~ 6rds`tw]%c;ƈ KLJazʦui JI v﫤 rse7*_!3p bX\JbB/ /%3ǒeփ']G@}L0YZ'5޵Z]w(nr']UxK Ndm6r9ʄ%nSl-&i7QA ͐A}_WJ6I^:MOu7avBBAgkiUl5U˾ DX| ] yĽs"M,\ ]K> Yb#ѡ}AJ6/ h ^:@q8BqHowZ^ct1.b,!L̩/TBIA;9ŴB?t}U3J)9c%4-fevٺq ֮mbUIhC'_^V̝U\kA%A63ʛ]45AhSfܮʃ7CU N|16ClIigv`խ o;Q]kGSoTgkќR+˫ f5=)G]%t~A.u]^^G+KOeE<H5?a lnI;7zdb۫B&OJќk;$ yyN pw%y*ppS)aeByR=z/T}Anۡ!CQD򻏍jqAMP?2?mt]#/tXYQ-:%nvtkOZR<̂Y]9^|Ja*%F:Cxb`&0*sں7((æ]˺x!'*P~$T&|fʁ#5^h㲺dytۃwx."C器fBDHpa}"ڃQ/>SNg'+j_[I;F#*9 2&q䏊̦כ0ՑyYz<ȅƢ'(-a;mu.iCvg`N2J0NnUkP:+u\fҶp.f5as7)̩.C3k1՟hRTiY9Q\ &/_h ?J_ +}8I9]!דѸ"H-#>@Xp)1eaP> AHFfp|%ZI7OaPʗ4ǹlp%A*^6f`m<ϫ_G@?N!OL&k}Ѐ4lEyV덃8N&OD֋20lXEVXŅܭ!{QoGu[oȡR|/8OթNI٭er;L4ܡa8x/1 S5xjjT%cmU @,'Pl:pu%˪S&@4aE;B፦>|u_g8O鲔$rOv6Uep }ÐH.5EyH<]sy$Vحjl{VN~؟s᪭2eUM@f\m@k? Bq00LPNUaLqJg7CCs]kZ| PMt;tܕg]SbN vNkW_/Avh W\K^u!f0*D0p;"ná|5R,m&[YIUƥ" ch"%!?w~cg =VzAUCޗuω}WQnyf!ja"ގXZy1 CQ-, ;U\h:v:؀]U]?1͚B鰐g$?; ~$vNQz*?O5/MH'\pj\Jb|yXCW;+я^t@\ԋ?[J"gQ޳ڕeZ-ߘ~OޛeFEJIqX='V҂ݩ$;[=&_ ~mR AL!Lt'<^nzUF#|( v3]j#&^9~>\Vm\:icXppGI y+T:!RIR>/\|>Q[>/ ,܎}GC/'~ 0I t*<"j ko࿟b:nup0.5y t O{* `D',BS*;yN#G 4$gG/ūCڷ&dC0%{*|Zi[~["XEW +_ 5XݧF<=32F:cSÌ*mCVŗ&0t@ӖjY4m<7L랈Qg ۏa*_k?i3s=/G-tm}j(=U'um('7Z~/v^^p@C.G :C[]o1L0|*KR?_T2:H}/ |˙r}9‰CψS'8<\ROr>!>{;}o~@R?7Yv5i((*xhn-}eeܸ#>gA8¼?( <9n O(#"uTrJi]Wܑ,IM*cĊG]82("!ܑqv #𤀲ҲYق$QHcWi\fa~ͲJ>m|ka*fYNIteɒ3Ų=W `Z:e2bFvPY+-nqPK\NP8J  py_dbmigration/.DS_StorePK\NђUg@py_dbmigration/MakefilePK\NƩ,{py_dbmigration/README.mdPK\Nzm{py_dbmigration/__init__.pyPK\N:`6P!{py_dbmigration/__init__.py_org.pyPK\N.[XB| %py_dbmigration/build_travis_docker.shPK\NB^ u py_dbmigration/cloud9.shPK\N #큦py_dbmigration/create_virtualenv.shPK~Na`&py_dbmigration/data_load.pyPK\NMmpy_dbmigration/data_load.yamlPK\NM 큀py_dbmigration/docker-compose.shPK\NQ!f py_dbmigration/docker-compose.ymlPK2lNH9.p-e!py_dbmigration/extract_db_tables_to_sqitch.pyPK\N[ !$py_dbmigration/increase_ec2_hd.shPK\N3# %*&py_dbmigration/move_schema_table.yamlPKrNh$!+py_dbmigration/move_schema_tables.pyPK\N|4Dpy_dbmigration/nginx.confPK\NQݝIpy_dbmigration/publish.yamlPK|N^qwu!=Ppy_dbmigration/publish_project.pyPKaN<6:lpy_dbmigration/requirements.txtPK\N'!mpy_dbmigration/aws-scripts/rds.shPK\NBB"6opy_dbmigration/bash/chmod_files.shPK\N[fx큸opy_dbmigration/bash/headfile.shPK\N|{[lmppy_dbmigration/bash/tar_venv.shPK\N1F'qpy_dbmigration/custom_logic/__init__.pyPKN[1\qpy_dbmigration/custom_logic/abort_if_duplicate.pyPKxN=p0upy_dbmigration/custom_logic/abort_if_obsolete.pyPK\N|K-xpy_dbmigration/custom_logic/append_file_id.pyPK\N6{py_dbmigration/custom_logic/append_file_id_w_header.pyPKlNP 7*~py_dbmigration/custom_logic/client_copy.pyPKr]N׸o#J2py_dbmigration/custom_logic/count_file_linux_wc.pyPK\N o  6Spy_dbmigration/custom_logic/extract_compressed_file.pyPKN[ q3py_dbmigration/custom_logic/extract_msaccess_csv.pyPKNMb0 py_dbmigration/custom_logic/generate_checksum.pyPKr]Na >,py_dbmigration/custom_logic/log_file_size.pyPKr]N&,Rpy_dbmigration/custom_logic/pandas_import.pyPKbNVx+Upy_dbmigration/custom_logic/pg_bulk_copy.pyPKKNĜi.py_dbmigration/custom_logic/purge_temp_file.pyPK\NM˄ .I+@py_dbmigration/custom_logic/read_from_s3.pyPK\N*N.py_dbmigration/custom_logic/row_count_excel.pyPK\N#:(ڶpy_dbmigration/custom_logic/sasreader.pyPKgN}.py_dbmigration/custom_logic/sed_modify_file.pyPK\NO!( 4lpy_dbmigration/custom_logic/upsert_table_from_stg.pyPKNY[O ($py_dbmigration/custom_logic/wyman.pyPK\Ni(''/py_dbmigration/data_file_mgnt/README.mdPK\NJyw)py_dbmigration/data_file_mgnt/__init__.pyPKXNG!r+py_dbmigration/data_file_mgnt/data_files.pyPK\N`1 +py_dbmigration/data_file_mgnt/logic_sql.ymlPKVNB[e&Tpy_dbmigration/data_file_mgnt/utils.pyPK\Ni('#py_dbmigration/db_logging/README.mdPK\NC%\py_dbmigration/db_logging/__init__.pyPKtNHhҹ#py_dbmigration/db_logging/logger.pyPK\N)#)#ypy_dbmigration/db_table/__init__.pyPK\NO'py_dbmigration/db_table/db_table_def.pyPK\NW l (qpy_dbmigration/db_table/db_table_func.pyPK\NQU(Dpy_dbmigration/migrate_utils/__init__.pyPKЀNqP=+py_dbmigration/migrate_utils/static_func.pyPK\Ni('#큶@py_dbmigration/misc_utils/README.mdPK\Ny%Apy_dbmigration/misc_utils/__init__.pyPKcNR'}Apy_dbmigration/misc_utils/misc_utils.pyPKaN`0PDpy_dbmigration/sample_code/create_table_files.pyPKaN@y1$Gpy_dbmigration/sample_code/create_table_upsert.pyPK\NuX?[&(7Ipy_dbmigration/sample_code/import_csv.pyPK&NE+Ppy_dbmigration/sample_code/publish_delta.pyPK\N*,Xpy_dbmigration/sample_code/sample_tables.sqlPK\Ns $'[py_dbmigration/sample_code/scrape.pyPK\NÔ'1(7`py_dbmigration/sample_code/test_data.csvPK\N'`py_dbmigration/scrape_utils/__init__.pyPK\NC *apy_dbmigration/scrape_utils/scrape_util.pyPK\N P 5Vgpy_dbmigration/sql_files/logging.finished_imports.sqlPK\N1|n6클hpy_dbmigration/sql_files/logging.meta_source_files.sqlPK\NK%3?"kpy_dbmigration/sql_files/roles.sqlPK\NQCf )큑kpy_dbmigration/template/jquery_table.htmlPK\NmN`70>ppy_dbmigration/template/table_upsert_file_id.sqlPK\Ni('"upy_dbmigration/zip_utils/README.mdPK\N$Tvpy_dbmigration/zip_utils/__init__.pyPKNN^$vpy_dbmigration/zip_utils/unzipper.pyPKN\F:L+ypy_dbmigration-0.1.10.dist-info/AUTHORS.rstPKNҼaz6+ypy_dbmigration-0.1.10.dist-info/LICENSE.txtPKN0g@(T|py_dbmigration-0.1.10.dist-info/METADATAPKNxMB_n%i~py_dbmigration-0.1.10.dist-info/WHEELPKN|([0 py_dbmigration-0.1.10.dist-info/entry_points.txtPKNHT<-py_dbmigration-0.1.10.dist-info/top_level.txtPKN^7t,&py_dbmigration-0.1.10.dist-info/RECORDPKTTۏ