From 6e168eb90fdad73a05e89396c40abdbcfc25b446 Mon Sep 17 00:00:00 2001 From: nimakha Date: Thu, 19 Jul 2012 19:18:35 -0700 Subject: [PATCH 001/897] Added libtool to Ubuntu install, as was required on 12.04 LTS server. --- sites/installfest/ubuntu.step | 1 + 1 file changed, 1 insertion(+) diff --git a/sites/installfest/ubuntu.step b/sites/installfest/ubuntu.step index 4427ce289..790ae5493 100644 --- a/sites/installfest/ubuntu.step +++ b/sites/installfest/ubuntu.step @@ -19,6 +19,7 @@ Open a terminal (Applications > Accessories > Terminal). You may want to right- libsqlite3-0 libsqlite3-dev libssl-dev + libtool libxml2-dev libxslt-dev libxslt1-dev From 7027dccd998961ddfd7af8ef1e947fa70e27034a Mon Sep 17 00:00:00 2001 From: ais Date: Thu, 19 Jul 2012 20:28:00 -0700 Subject: [PATCH 002/897] Add friendly warning about needing to check checkbox in Ubuntu 12 --- .../railsbridge_ubuntu12-checkbox.png | Bin 0 -> 53918 bytes sites/installfest/ubuntu.step | 4 ++++ 2 files changed, 4 insertions(+) create mode 100644 sites/installfest/railsbridge_ubuntu12-checkbox.png diff --git a/sites/installfest/railsbridge_ubuntu12-checkbox.png b/sites/installfest/railsbridge_ubuntu12-checkbox.png new file mode 100644 index 0000000000000000000000000000000000000000..f95651b5df20a3cc3ae7b3c2dd1dd0a2b692d27d GIT binary patch literal 53918 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 Date: Mon, 20 Aug 2012 12:26:03 -0700 Subject: [PATCH 003/897] combine REST, MVC, architecture slides into Web Apps deck --- sites/workshop/ruby_for_beginners.deck.md | 8 -------- sites/workshop/{rest.deck.md => web_apps.deck.md} | 8 ++++++++ 2 files changed, 8 insertions(+), 8 deletions(-) rename sites/workshop/{rest.deck.md => web_apps.deck.md} (84%) diff --git a/sites/workshop/ruby_for_beginners.deck.md b/sites/workshop/ruby_for_beginners.deck.md index 5a2b92ad3..b3e93faca 100644 --- a/sites/workshop/ruby_for_beginners.deck.md +++ b/sites/workshop/ruby_for_beginners.deck.md @@ -285,11 +285,3 @@ then open a browser to ...now it'll automatically reload when you edit a file. -!SLIDE -## Web App Network Architecture -![](img/web-application.png) - -!SLIDE -## Web App MVC Architecture -![](img/mvc_simple.png) - diff --git a/sites/workshop/rest.deck.md b/sites/workshop/web_apps.deck.md similarity index 84% rename from sites/workshop/rest.deck.md rename to sites/workshop/web_apps.deck.md index 0ab3c3952..08d0b5bdb 100644 --- a/sites/workshop/rest.deck.md +++ b/sites/workshop/web_apps.deck.md @@ -1,3 +1,11 @@ +!SLIDE +## Web App Network Architecture +![](img/web-application.png) + +!SLIDE +## Web App MVC Architecture +![](img/mvc_simple.png) + !SLIDE # REST * Representational State Transfer From f9f72f2fe247edf6798de5a461d954ace0401d1e Mon Sep 17 00:00:00 2001 From: Kerri Miller Date: Thu, 23 Aug 2012 09:55:40 -0700 Subject: [PATCH 004/897] use a clearer loop variable name --- sites/workshop/ruby_for_beginners.deck.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/sites/workshop/ruby_for_beginners.deck.md b/sites/workshop/ruby_for_beginners.deck.md index 5a2b92ad3..8af1c5542 100644 --- a/sites/workshop/ruby_for_beginners.deck.md +++ b/sites/workshop/ruby_for_beginners.deck.md @@ -179,7 +179,7 @@ The hard way: The easy way: - >> fruits.each {|f| puts f} + >> fruits.each { |fruit| puts fruit } kiwi strawberry plum @@ -190,8 +190,8 @@ The easy way: The easy way, with "do...end" rather than "{...}" - >> fruits.each do |f| - ?> puts f + >> fruits.each do |fruit| + ?> puts fruit >> end kiwi strawberry @@ -203,8 +203,8 @@ The easy way, with "do...end" rather than "{...}" ### doing something only if a condition is met - >> fruits.each do |f| - ?> puts f if f == "plum" + >> fruits.each do |fruit| + ?> puts fruit if fruit == "plum" >> end plum => ["kiwi", "strawberry", "plum"] From 64b49d66dd45ef70dd9abdd274282588227d5ff2 Mon Sep 17 00:00:00 2001 From: Kerri Miller Date: Thu, 23 Aug 2012 10:02:09 -0700 Subject: [PATCH 005/897] Add some text to reassure people when they don't see their password echo'd --- sites/installfest/create_and_deploy_a_rails_app.step | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sites/installfest/create_and_deploy_a_rails_app.step b/sites/installfest/create_and_deploy_a_rails_app.step index 39b89a491..c2423ce8b 100644 --- a/sites/installfest/create_and_deploy_a_rails_app.step +++ b/sites/installfest/create_and_deploy_a_rails_app.step @@ -98,9 +98,9 @@ With Git, there are usually many ways to do very similar things. * `git add foo.txt` adds a file named `foo.txt` * `git add .` ("git add dot") adds all new files and changed files, but *keeps* files that you've deleted * `git add -A` adds everything, including deletions - + "Adding deletions" may sound weird, but if you think of a version control system as keeping track of *changes*, it might make more sense. - + MARKDOWN end @@ -115,7 +115,7 @@ step "Deploy your app to Heroku" do step "Create a Heroku application from this local Rails application." do - message "The very first time you use `heroku` you must enter your Heroku email address and password." + message "The very first time you use `heroku` you must enter your Heroku email address and password. Your password may not be shown as you type it, but don't worry, its being entered!" console "heroku create" result <<-OUTPUT From cc7de37df3b9ee364b54936a605f6d2ea6d56690 Mon Sep 17 00:00:00 2001 From: Michele Date: Thu, 23 Aug 2012 12:11:53 -0700 Subject: [PATCH 006/897] Update sites/installfest/macintosh.step Updated Macintosh homepage to include Mountain Lion, 10.8. --- sites/installfest/macintosh.step | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/sites/installfest/macintosh.step b/sites/installfest/macintosh.step index 9f1f92df9..4c0cc7775 100644 --- a/sites/installfest/macintosh.step +++ b/sites/installfest/macintosh.step @@ -9,6 +9,7 @@ step "Learn your Mac OS X Version" do * Click on the Apple icon in the top left of your screen. * Select "About this Mac" * In the window that comes up, under the title "Mac OS X" there will be a version number. + * If it starts with 10.8, you have **Mountain Lion**. * If it starts with 10.7, you have **Lion**. * If it starts with 10.6, you have **Snow Leopard**. * If it starts with 10.5, you have **Leopard**. @@ -25,6 +26,11 @@ Below is an example. end step "Choose your instructions" do + + option "Mountain Lion" do + link "osx_lion" + message "The instructions for Mountain Lion and Lion are mostly the same." + end option "Lion" do link "osx_lion" From fd0d169c30028c8addc25bb5bc618fa7bfb4cdf3 Mon Sep 17 00:00:00 2001 From: cczona Date: Thu, 23 Aug 2012 15:37:40 -0700 Subject: [PATCH 007/897] substantial additions to Ruby intro deck, adapted & expanded from https://github.com/JumpstartLab/curriculum/blob/master/source/projects/ruby_in_100_minutes.markdown --- sites/workshop/img/rubygems.png | Bin 0 -> 12342 bytes sites/workshop/ruby_for_beginners.deck.md | 685 +++++++++++++++++----- 2 files changed, 530 insertions(+), 155 deletions(-) create mode 100644 sites/workshop/img/rubygems.png diff --git a/sites/workshop/img/rubygems.png b/sites/workshop/img/rubygems.png new file mode 100644 index 0000000000000000000000000000000000000000..84547551ac0544791a780e6504ac5dee683e078b GIT binary patch literal 12342 zcmai4bx_++un!(w3&CBBLm{{oC=`d{6f4Dw6)5gn2vP{ey+E*{_iX5sYrjU!S{S&<_!Q4Qv634v#X(ZkCk{n8rrIOzp;SWTm(EKZ94z} z3qa$!l97MjQBOdv^UFpSeWM!A*)b~iWsNK% ze)a5`H)%#N!)MPpbJD(-4Oj9fmsT3_&(Wro7`>6wp8&Vo5m0dI)B908Z4mP7>sfg{ zd0Bflx_`V(gRRIy8@(`|f>x~QSNfyF2 z9j^qeirkg@@O=qyw7*(Rdnm6)hEg6-pXche6|F^g;@orndTd$zznYx7h5%@Ia`L42 zaH=IR!#l^&hh<`hKx8*Ppz(=9BfXv^wvSmZZ2~FN$|okN&Dd61;ecd?(y=&=AeFM# z+nfB;fhcTC6p6&J>?h?2Rr4hd=xoKq0>dUr5|29~*bMDY+`Jmh1XU=U$| zF!cWR!qM(rKgitMwTH44G?JMDsUi3L-CN&)0l(_o$9;NID&{5!Oe95qD7bIFsnDiq z=dfKI6u;A^Hw)N$OVW>}2M|tX2o4w1*@g8k2wx7wVQd*xxKSFTy?pNe=ra6m*jz>Z zaxSLY;(CwvC6<#4u)$7HI4-%er5yEi{{Ak_UqU1Jcg=0{-nBjQUJs+AYl=WNyD-iH zd#84J9Wp1(6*Hp^YFdXlt5)dV_t|XkZ0-sOt?{4KIqrq}cp`-iUWP4m;J0}(w2NQ3 zQP8-hMN4R4=5q9YH}C#8t)jHw+9fra_ATcY#oFyhA9;!ocEhOdTG!r&I1l~-%@5D~ z+HPa*rb$F~Uu;;{N#&PUq<9n={q;1Xkmh|lE$w4YEL9d#;k(|vtK+Q0Iel}C>R6GF znZa8_$4VO1Qmb(pBl`1kYIZy&Jm=qo5kpHv^B)o@tC{^^vUEM?{|bvi-KHyzM*@WC z≫(U1IVi^nmkyweg`XNNl@VP`WIDx!u@P4MS~6BjySr#3mI?RxN++8l}pV*A(u1 zJz>@_)h`Y25yB7*_w8-c8Cv=(EdStV`_oZ+N)9a`Y82Sp?y&sQ6e))BCxcZPK%rIh4?!xjdaQ(_x-wISMrWSEYqY`^mLqbi{8a=wjig zgyACLGvUuXmjLsaj|71A)27FT)V4H9M2e6@K5hjb<$`EKi<^(&G;qF?I+?w<4I(8p zG-#7tjDUsJO3NIv+MWIB*gB7R1nFGin#Cp5gQ#x8jN3I*bn69h zegzkd`&isghQ>8Y$pe+2nm|0w8eF^L!n{aMR9F5{&8W*_7w!o%lk;fc?q zIID~moaW9+Eps5*V8IR!Mo+&LzxGFMqB5K3Zfi2nv@({`dIk6baK@TN2Er%n*mZSO)1hdD40S)W7Qv2**L%-gTq@D} z@V!Eh);d4#!*&3?{H~V>Z>jt)T4;V|ak;&{_O&PU>JV<_Cu_2J zdPy&cu$I)3Oia>W{rJ$JJ=cd!Yk#xFu_x8Zyp#_13s@pXXb^FCO*K(TyxeF69T`8_ zD!jqwV!AD4m0=wFfY&%TaEe4r*-#zBuUX>_a3Xk=J!kx+@_y*@+jp_{(O)JhdAn#< zTu1}H0N4PG05`T_$wZXf;ef{`?%qb1V9_%8(zp6P{^eHPqBx`IBncKb3Ry{Y!Zxd~&@ed|0?L5a-&&*e#75m=l6 zhAq20w8a$f8?Y_BN@XLyE)LD zN!P+XT6m?)qymdAcWk?u;S&Z~Q-!XkwOs*bL%cYZ29VJ0QcnoG^Us|k8OAsI^codO z;x482AJ|hhy3Z#(O2o}!pHT{tMMfAk7><~bz>{p!&3}4A%e4dSyI5_2fWENG(3|14 zB$8v>GHt)G-^_GwmQmLKB7NOP=klYHx5%r1twqci#u!KZPCykcy_Pp|F%yhq8r$j2 zoD<{F$4YRb@(acG^2TufrA9XzFYU&mk0<)lwk+}!fiWKy%$Plqp&;ZS<>Y%CT5R?$ zrL=Zx>!H(p`Lz2_wq$D7<%uT75Yj;2{pMKni-XkhMr(z;u&^VmG2Q4x;{~eD2?J)$ zo(1Q7scPSK=&qj2_)Z{x)e((1LF?iB^fF;*Jm;>6b~BYWsi9|rmcf1uYSSxbRXGEjyROyC72yNeLZOY>NJLBnB;51f2{&6#@&pN9((n1XCH3#?>L-@TjpW<*o`D!5L z&&#?6)S$9mYf=~(D3pr}g5T?OA7wH}Fh|?usc`c`wTj+grc#4Z1F{h@h7~sX`!Tm{ z;cHoUXXx^{;|`ST&PAJbrtL#cevCfr3*5uADRGSpz>$RlZJ6uxL=2 z9u|EW>}5t1t=-U|siwjZ%Pi2rEe2@XojQBC7{wVkY3Zxn7%k~~&5ObN`0>Uy@C`G1 zNX9ci_S$vRCpYd-!rTqkUaW7$w!!f{uEdY0r|)bDs?4I2?7zNcluj<%0yWM>h)^f{ z^o<>een;M7Yo(oI(DN3HWyhfkmb2cO_II8G3G#vMyb{TPJZI z%$F{)HGLD6KU8-wxBAs<)rCbagh7Y*c{+Ddsf1Az{<4nZi?+I9DbS%!epCwy%UFb; zMIJjd8XGb@ogI0AIpt9m)+FlZxAJxKyjmzK{Z2vVJc}~byI-N(QAnrzLHhVlBaYun z%ahYhHegx({Gb$`8ZWqXMan9za+_tlP3L|jj2#~PYRweYipn4M6@Q6vX`TD{?q|%c z0xDaeHGPH9hC6)99AT3b`-*PTjI8l|NCsgeU{iAxb=>=e-x6Ml8?I|qzmIy5^T|^j zA@`wDQ57-zr8NJss01kb-Fhk~@ejJELa7D^LB+yRXsSNlr$7@7Sclrk0?9~-i^V$$ zLY;y0OAkq8m}-?=(O>45j1vB)Gzy%ON*rBn7Zao84d~5+bR%7ZF)g(#<`$Vl9bGHf zt%(?I-bq5}SMjv*$JLdN-kYSueMZ0GM#$h1g`977bcx|-RNcw{VCgEh@?)$k8@_8$ z5jKdLy=$75+vimZWdOVg`|(+FP{^CamAFKWQNNT#5PR@D+4t)CK}w98hWdHWL(7l) zblB2&d29dV<-FJXCK<0znM0anJ5MuY)*dRyiBb2OwP5j2>vTSAuZj117AukGt!_&O z#60iVRkA@)n|=^2aLvQ#B3q#o=QBnHr2};B)@u(usnP`%UL~s&!&#j`n(wB_T+mrQ zP=kox;{v>nyH9Y+PWJv`%^H+gSt)jP0?4Czl9P(Tq8OT>niflED>iQ6cUM@$htYCt z4@r7vxywOj$GYQ(g|KH0rvq}X$cHkMwr<2}^})l_C-9)6`-5?sr%mdGRwlXdu6*eZ z!()p-Emwn>;j%t7c}h0ovaUAyGLEJ=pA|2{E%0h?n8O%H;^Z+YM^p8Qp7;{>e4P`x z`iGF79J;H_EL3qVCQ-u&J9=W#i+pXz67cDgii$+r$%O^hN0X- z;oRAN{Knhg$H&&`P4_D%CJk3_F|*Rv6O$#IsRJ3N9Luijo)($4>&mC0m^DD3+GoOm z&S!pKMg7jz4_)Sh+H&7{IfCM?MoLI0X>(dgbVA*9C4CS9WYGR7ReaoH?;-@aTV{W1tJZFy212#$1O!Q;Y` zP2uOi>4vomeyn*adID|rKj6aq8;E0lUA-5CyaOr-+b#OXd$-uLIKr$xuzgAN&4c&R zK-0QYhyDqtV6c-8GGE}_-4TsV9VbSU0zP})ZPGB$7`RyF7tYnH322rWH_3|s0x?>z z(pf$G^ub)fux_$Mzxs%JW9)It%mpjwm%6o182**hALpfwG@3-i?huE&$@g!9ngZWB zt_O7u>ah@E*LcTo5$Wd@&m{;y>j{5L7lDmkz-4;h9WX~qUe7aFVlzQM*cpaAGDYh? z@cN`(E+17fPnJ3q!_N!-iZ+22mq+_5e*KGWOZ4H)!m$J>MdyY4e$^psD4oh7q5mGU z{7Tq_c}1yC-sIHe^Zd6h;~+Pm)w)Pw@r#&%xpzi0E)sq;aT0$Q>yK2@{dx}@USs%= zbN7!ZBD(^2r%9iBkA~j8aC1TGtRcFBHVbqEZ?mH=;sZccTJV zA`;ks=7Vuv&##L~gAYYEqCRmVtoiSfCBBx^hHjLi){{xs!di7_%*uUwj1R@D&L;TX zTe^;Q)l9Tslu=Q;5;{q^I7#Mqb>XaYwgKQoH=@%mf28a6x7K<_}|{ zFyB~E&QUR1gB4Vy z=u%X1@baH)c^!*GpDsq<*Fg?pJ&f6l4GFF!q%>NlJS_ZBmOFsxOa1)Z2#G&EH_36A zHLG`U6QOc|Ed9Cs9_(kt_rIT*YpZpUs|6z$`H&f_!L9mvwjWfASX8kdaVDlQUq65( zEc(Yh@iq89l~c65#q++vt(u_b;bid%Q0=~XhQ%cG>aSw~pw(3c0erWx@m>0Ftz=Qs zz&svvzYO}OZcr#i(Kpb2QYD}+elBFeuamqeYH5X`M&v#(R6YqGqqX}xy?<8NC-fH1OHQbJaivga%Ne|OndnjY86g$zAefHwmeqICe#`8WHTk309UoaEjn zhf^AFBCFJQ_DhFmgX>T?Zp-oCsTn7*++PLa(l8?VsmJ-_J7kRY+MdsU{uV_U0| z_rgb-cT;@mT}wo^Ipgd$BRiA=T1Bm*?iNSP|MO?#=!2O0td=)5I%!#JrX{W3nPu1bQviDLS^!h;h{Wgfsj-iFR$O*)lS! z9i1s*bGzm*?BSa?Gp`UDOg$%-m{r%RUl|Re=iP5O{mvFXe%&#$e{IgEaGh(t*yDBB zg{Dxf74Zfp?T6SWddKPIu0+B9J`e+r@lJ%pSCyQDr*gFWz#Z4ceTz>4nK5W4pV`Vn z5|rE-UW(d;GeFVd?pw&n#syE(O7iR<*#4)MWpjXN?M3R$fqN}SBL}R3=3yJ5;f5An zchuBO`oKN0+V=-$X;1$9E#XfL${>Mu+<5wx&dLiUXi`|Q{WpF9Y zaBT}o`?F-faDz`>-4^RRF;<~%OUN*eayybUxb_)6+z3)1s zZ>9ZWHQj%UF2v*b&)LT2&xnTIJN;kfuT{E2-(vxw>XMtiqz^(0T}SY^+x1MPx`JSL zSLgHO{nI4mJKO8UnKd1A*ZZQG1J9Kz`M`C&KJ*t2n)yP~tD?!>2PbP{xHJAHVE#;- z)IZcIfRr&jeS*YX^srMttQK$0H(wXu^A@)3b(^1yktlfbZF%di^-pqFz8E6*^)`bl z41UsyRfJz;1=s$YiejTf*mM;I>GSmY@dPoDKBUL#Gm!{O8jk!8rX+m%4fe->=UrT? z9e!|&v0Itg*{QYc`Pf$2!+IRELUL2w@qo~FKDuN+?r3s@VKM;)DoD;P%6ivvvIsN+;Wr9wk< z*YdR8`H(L3j!wy8mZ|T&*m)!e_UIoceD-xRY zy^6IT`oW{96_0+1VZ-eShwG1`BZ>K1+JO^Ka!8*@WS&Y-*#aj(#eOS;hyN-JIU05y z#|c3150EN^vf5vGT%i)3E1JGoEuSvUq5q!g82cq9eHJ`NTh%ve6;nFIQ-0h%m8Mgt zi`V@yttBcx$B(uRij!IYAbACPIdztrp->Kpm5TBpYW70-+++*3K@}+*sXDs^kuu$A zGZGlaXQ`75ocap~Y!w_L;+QPcXVJ>Gs$4Tp0O@40kgKu3%zX&lEYs3~^0@iO_jZ{xTdsDw_* zDC=gD5pP8yZ&KT~dw1R#hX8HcjT@ETfKQ)Oa4!uKXzflUph_m0di*z8pgPN%Y9URp zyp5Aji*;@x>rvmk+fKC-=#^IPK-~7P24%1dq{t@Dx3gcBL=1MHv zbB7VD`|^Xxu!G53(vXYv!dpb$CgwmN?YaDk=BH!6Cv~f`3S|PDJgU$a%{0>B%UOM8D0ViLye0GFYBWUtK$B5JaV+j^w|sg6F*!BQ~v;wR^(O*7g! zub#`26;6S@saBUD-M$}v$tc@{xNhbm`0gx;L#78_p#?@m0ZdaW?JdHqsJY>RZxqw6 z$|uES?Ch$LB&hzk=!MJCe)@i9?9_ExfqHKx#|l)a#-=Y$u-=aq>!bBQ ziH2Fy^?>yK2a^wSf3SLj=B0&|6={zUcil%N!mP58Ys_dv5TYo7%Eb*JNjE6;C?+BM zcQwJu5ppbq%z2ubFaKBlgCJaMU_yaAhX2 z;5O4vj;FW?A{Y~LxGtOYJzs^VrjCUNXQ8%wO^aJ+63b^hZym3=iBbr?m`qvsus~0J zm3{D>b`z}9m2Go*5x@}UfSVr!ngr`9|0{llSN|JxBL|a!Qq|}?D-8A>#MIka3(c6n z?nf0h^{n0AGyXQ5>T?JuJs>^~v!!UMO9#P-;MX7*X&(BANPfDha4 zFYd6jr`D^F9wOvqSW5je6p1o1(Un7Yd8n>CRxLujw)gnU-_m)|niT3*=$g#DJFJj@ zbgtJ5lI|fW27o$-jg#HWAB5_KmGd&Xz9lsZRTswTEhHLM(=MaJuo6oG_-ua@e<9-= zpV&e)3OyaxqtHyik|%XO^!?Xi7xVtF>zFaGsHpOzHWYw{P|CIG4;^)bjp@$BO=ez=H;LRjKTu9jX#yR znm7^r`vE?)K=$fHvOHGL0b)Y9Q`E=^P|SOx;<;YHZZBS#!&)*bB(PJq@rJlQs55o3 zz8FHE(P6J(?dP&){cd4#b5c`kHE8BIeOm2=Wve@!mM5ZbH1q_tU zGk6BXwm)f3(e~3?5tfqwLFLjSL0xrJVO-mDn;pb-)j#*2J%mFl&UB(Xri*_MR8Ct| zkc6Vn@^2bet{1%Eb-!h@@|-s-gbFZAsbZ#8I=1aYTN8K^MH)MS$K?J@I88)@H-Car zIn@%HA9$tJd*v&tr^*vwZJJ%ggC{#pKXBd$}c+8f>m&&`UymArtRwVRdoz_Htw zK)m!h?O=3;x@}U-2{?F7MdVyh5GSj!x+Gl{bR;boS1@H#5gTd6y)MLQZ5=O&f0NmJ z&e@IZK@MPfbQM~ZE;u;NI)=qvREbB9BOZtu-8yU@e_!b=>CsZyS31`{!)UkOpu znLsc~U47bxvq&6iO%us}A_pZ1pv%e4SLgmH+*qE4@K*b*f~WW;F7>t@aol3!*6+Y# zJ>-?xVfcF#eO<`(pgV?u)n*B14>V3N|+tMgGS0 zCt6U5{uzmo`J=v*Fc!cDROY_6S=1LtQxcf*p=@I!urh)9ewjD2*V~lfkQ;FlW~qd? zUG}o%!x5u;KsjiFd}O~$4((6D=UF+DMyvY3PGbzQu(|a|--4Js7 zfkEoSVBlb4j15qQG)7q{?}jH96NY*A8@r;yA}im+?h)?k%+%UPQE}>0hyI}VR^4)$ zhO@rXR_4zaEo_%8a(v2->4HD=YUwUC_@Oy;bc7VsuqB}3eh#JMMS|5yBT{kmba~!J zuFvAS)LmEX$(XPzu$d}OsG=wsl=)sbr)or9n`5dOHZRj^sv^_QdZBa^Z=)RxWft+^ zgo{0^RWHHhML;@AEjSJ&mh}F4%J_t=PlCrEA=RF$^kkP<{uDOS5UT1C zDuXGv#5`ig7#b3jDSNh-G~?w>%XS;iT8Sn_Jd3Bnl!xvOUxO|f>A3~3Q2Q-)GWxil zSTs3=#A|fnhuJQiEo?}bRGa~UejbnVKjPr{AAb2ZKL>;{VN=9?lu!9vMX8jNXEp#a zdUj5b<~leXyRkW-ALn}v#l;8-Adluw@s>{W zsi}MTAZH9RD6gr`srJ@!Tr&^w6dt42IhPvWQuMkvTT%Ym{=|l(!PYM$`iLSBqd*Z^ zZ^M5uO_^LGQgeTiDw3x3{4rO-jCYMz!Z%ZATb-u)r2mbL+j;o+C7gx_=Y&u+J&Z4S z2L1l&#@&;M0uSEZqUP5wh|AEEm(dE(R%6MihBBx!-XGryQ<;8k^?cv>u_HzTTp`@r z)tSNX_V{F7BH)J6X*Aq0P);}P@y!Z?u;S78cy802uN>yHZ<(?rgkj3`xpj&S*Ml*^PoC~mzyGo(k9@WmURJ9ztpHEFg$t&der=igXuwg~ z`6u}P?SYqVHuQ_U%*$PxT?{ZZ#pp`ZYK6^_8UiP!>AM5QX6sF zK81JyfVAzuTma_Z|6~bL#I7O-P*QjODj-iNf&BL}z)qTC*>DUXup-GzD|_Acpp%+;vr`#G$YGamS$X*kuOIOi zaq_omYS4)o29ogT#j}3+m${L5RTH_G1UIV;BB@ zT)ksY$UAgBh>R(2)GYLjM^#b@z~k)TwD9<{66%M3xEBXvv1de9P&GrJW6Nu#{c>CWfaL5! zJH(;*wLi}1@YM+ot9p6!vug!$s$?F z0wz(ipG{6OZ%0f_&FO{{c}qs9ps}Vc`*QHg@_MKUUcbI_ya+W!Y!{;1TW~oWYbrz- z$e^yLIY6gUHowjkWsHOREB|pKS7DF%jPGO4=unZF8}7h$(6TW>FBDgk9<(}fgnc4M zqOg9VO44JpXszk(R+iB$`Uti8IU3Z9Rhrv|r&2AMJ7;M4`QuMsUM1cL?;@zaCNQrw zQ&KC$Y`P3;10lC3qJMY$HhcJ`P|us8dPVhENsi(+xKK;^xPMmxHCEojeI}tbFIFWH zbW$km zyy?-w41b#!W%+W?7R07u0AR5tQ{=_L>pug3fjWuPxx0U$Rt8cL;HV3eYeB_2L&0Wk zowHyHY|ISJjT$V0OzbtW)Fox#v(A=|W!kd!*RMGOBX_th+Rk=e_>wqE%p==5Kh=AI z(1Ir$zir8|VP}Msfke{R>WV6 z{Doh<|L}^FfS@?VKq@%uRtVV3y8cty-*ndp5O7w%@VbwnST2cUQ!PPK+xA}`#Pm_$A;F~F5gaN?@As8^Sa{5{1bDXa-@JL?4(+17S zxV-av5hLs>4$ahi@)0`gT)TlE@u50~|HpbByB9+`hekX!ZH%AYfcFJ&aYm#;0`w&( zT`a3TWcK}wz5Ht8o)9g#n30`=Oy+F_C*JaLdDpxYI30=YP#Y!UarYX63Dv*5Qm?aZ zG#;IP?xk9cvRwT(@`6)kE{S!3?4Y(8sA#BJi}30Sv}<{q`6Da0(60c&3dGcd=>b)M zGci^?idXWoQ&Ca&%2!3uNHJVppqQ*IWRxlBZ(66FP}jJGm{?R2y`;1%%zY_4<O<3Ky{g+tYLZ+;on;pk?J!cjnggQl((nU*4slMS#Ah|A>9?lVPRRhNo-?Z3>b zX?c-Dk#8OemT>A4@fqVW&}Pz3KQA(JF$a>1OxB*rB5r%nLYVWs5x4RLG0M!%$lLV- zys54DEo>$Ph@M`Bi?haC%fG-Lq6FN~+-a2Yv{5MV-}Dm<=yw?THvbE&a9E@r!Rpe+ znt_dA+T_99f^cXM)IJe`4T7ThUw(vAsL@l5ikKfs6i26S6tkvjXe5b14K#tQP%(9P z>ybanGL~*%Al-)-{Dw7wYmW8!&b2sYFEfxRzdp#g`B7R?wNa^65_y~GaCtllEOpw} z$?c&+T>Fw!BhUaib1o}%8Z%u$CJ4klFS_m}g@O1oMAO7$5ctBdbuSXw83~6bEer-D zQ)TooV1b!Ke>l)!V+hiK>y@V?%2dggTiu2>?Xb+9{R{AvfoUAL4tY*x089=qB1cB( z{4gjAoGcq-pqP&xJ+zC8Cw+*PP$IdwWkx?nzCHb=SpPT?m7{KA& zk3wkV)~~r5xx%&TYyYEIX{44jJgqr|F}$?0W5B0}`Rl+pPuiCtF){Hz%utgY@Fw^j z%iS&T#+s=L&rVt%=&zlhV7rMEQjoh~cuGTwjPMGcR<|5}APb{m*eA=Uz7KweqS^1L#M=^1P?F@{XPsTgThIWbZD?`l`(`8U|tFPM&0UTNEeocIwUu{9QLBuofw z07QgC+pq*$qRGpaQ8EcK|7P@@l}HU!Nlj8`8X-|P1LBo|CSoM0hM8p|7mHk-$$nG# zP#bcX7ik-_m#Tyn>Uqoz{BAbL=h4ZT>=--iehy@fK|W3KKDzCFqHH=T)sB!#@uqrT zlq`a~Mp~4C=|BV#p-NN*+5elQLFn;kOuI;kNK4H7J*yW@XPGLm4&Zf@JsqY5Oi$gm zxDb!(<^fo-HF-A!O|@W;R1uUo5{E2xluDH9$lo0=HpZK`ImDe!ivcMxUUd>qwl@J&AV z8{c_BAQqZb;Z9iMooPx#gI9CTgu4fAj6oGL)KS0)?lTaATE#2lsA(9pefpv--XQIZ zvzpIw=y%Z8h;js;5=)+U@u=IzrI(RJoxTDiFV^jAnMiwXL{Wy)TdZc0)6s^f_XVxb zookaMV0^VitiOO$a|H5fWY$nY#SDXI>v-~@tsoRs;+KccEH|vlD_uo7c*?GVL~%^D6#BC@d?Y%4#^^K zr4W;6vX7cdt!&B~y_;vj8ciJ8f5G=&8JJK;0s4_Bf>;kca<6^D;}Bw!`NN_6;YJD2 z&Q*lxJ5h}Ckw8sNO_iDgGdmQBFyF0qKFNl%jOB(k(&IyBQVqy!sb)i)sklkUcTRp6wE=o%iK;o6> zQ%91m?5f>7t7lGLD?UC8b+P|CpF?XOkG1|zp6&&(!D{cb_i;4YXRk+fwv=C11G7Gd ztLyMapY(&{p3OJ77fLx0IpSe18#h&>0J#W4U{M+%|8wy3_(6Lez(*)PM#+ve6K!>)&IA315>zPhwo;9q0h+|hfJ$(&@pq_tGV&_PP3My<~OY_+Dl({xneOGTt} zeP5p*&*d&c3Xg>-_)T`Sx8R!eh}jnn0$t#vJtEU&Z6bnF*wuJXE(KQ*m!2+8ghyBFnc z{Et1Z-}KVX_J-Vk?&)=3m4-kd{6TJOy&?Yp#<}Y@XRJb2sir-gJHAaF<$CNV{6D$v f|9ATPL)e +# What we'll cover -!SLIDE +* Programming: languages & applications +* What is Ruby? +* Ruby's common objects +* Ruby syntax basics +* Object oriented programming concepts +* Passing code to a Ruby interpreter -# What is a program? +!SLIDE +# Programming !SLIDE -# Operating Systems +# Operating System (OS) +Talk to a computer's `hardware`. -
- - - - - + + + + + +
!SLIDE -# Applications +# Application +The `software`. It sends `input` (`commands`, `data`, etc) to the operating system and receive `output` after the operating system has acted on it. ![](img/acrobat.jpg) -![](img/finder.png) ![](img/firefox.png) ![](img/itunes.png) -![](img/quicktime.jpg) -![](img/safari.png) -![](img/ms_office.png) ![](img/wordpress.jpg) -!SLIDE centereverything +!SLIDE +# Language +A set of code that can be used to create an application. + +* Ruby +* Python +* Perl +* Java +* C++ + +Many others. + +# Library +A collection of resuable code to accomplish a generic activity. + +!SLIDE +# Framework +Collection of resuable code to facilitate development of a particular product or solution. + +!SLIDE +## Ruby vs. Rails + +### Ruby is a language + + +### Gems are Ruby libraries + + +### Rails is a framework + + + +!SLIDE +## Ruby vs. Rails +* Rails is written in Ruby language. +* Rails contains many Ruby gems. +* Rails is a framework. +* Rails' purpose is to build websites. + +The rest of this tutorial isn't about Rails. +You're learning how to do _any_ kind of programming with Ruby. + + +# Ruby Philosophy + + +``` +I believe people want to express themselves when they program. + +They don't want to fight with the language. -# Web Application In Rails -![](img/web_app_in_rails.jpg) +Programming languages must feel natural to programmers. -!SLIDE incremental smbullets -# How do I write one? +I tried to make people enjoy programming and concentrate on the fun and creative part of programming when they use Ruby. +``` + -- [Matz](http://linuxdevcenter.com/pub/a/linux/2001/11/29/ruby.html) (Yukihiro Matsumoto), Ruby creator + + +!SLIDE bullets +# Ruby is a scripting language + +* Scripting languages: + * Don't require a compiler. + * Have an interpreter _(more on that later...)_ + * Run "on the fly" + * Easy to change frequently + +Python, Perl, and JavaScript are scripting languages too. + +Java and C++ are examples of compiled languages. + + +!SLIDE centereverything -* Learn about customer's requirements -* Translate to "stories" -* Pick a story that seems doable -* Write code that does it -* Show your work to the customer, get feedback -* Based on feedback, adjust your stories -* When a story is done, go back to "pick a story" -* Repeat until app is finished! !SLIDE subsection -# Let's start writing code! +# Let's start coding! !SLIDE bullets -# "The Terminal" +# Open Your Terminal +You may also hear it called "command Line", "console", "shell", or "Bash" + +* Windows: `git bash` ![](img/git_bash.png) -* Windows: git bash ![](img/git_bash.png) +* Mac OS X & Ubuntu: `Terminal` ![](img/mac_terminal_sm.png) -* Mac OS X: Terminal ![](img/mac_terminal_sm.png) -* aka "The Shell" or "The Command Line" or "The Console" or "Bash" or "Shell" +!SLIDE +# Prompt + +* Terminals show a line of text when you login & after a command finishes +* It's called the `prompt`, and customarily ends with a dollar sign + +Whenever instructions start with `"$ "`, type the rest of the line into terminal. + +Let's give the terminal a `command`, to open Interactive Ruby (IRB) + +```bash + $ irb +``` + !SLIDE commandline -# irb: the Interactive Ruby Browser +# irb: Interactive Ruby + +IRB has its own prompt, which customarily ends with `>` + +``` + $ irb + > +``` + +You can use `Control-C` to exit IRB any time. +Or type `exit` on its own line. + +```ruby + > exit + $ +``` - $ irb +Now you're back to the terminal's prompt. !SLIDE ## Variables -### words that hold information - - > my_variable = 5 - => 5 - > my_other_variable = "hi" - => "hi" +### A variable holds information. +* We give it a name so we can refer to it +* The info it holds can be changed + +``` + $ irb + > my_variable = 5 + => 5 + > another_variable = "hi" + => "hi" + > my_variable = 10 + => 10 +``` + +What is happening on the lines beginning with `=>` ? !SLIDE -## Many types of information +## Variable +### Variable Assignment + +Variables are assigned using a single equals sign (`=`). + +The *right* side of the equals sign is evaluated first, then the value is assigned to the variable named on the *left* side of the equals. + +```ruby + apples = 5 + bananas = 10 + 5 + fruits = 2 + apples + bananas + bananas = fruits - apples +``` + +What happened on each line? Is it what you expected? + + + +What could you do to see each's `return value` for confirmation? + + +!SLIDE !bullets +## Variable +### Variable Naming + +Create a variable whose name has: -* Strings -* Numbers +* all letters (like 'folders') + +* all numbers like '2000' + +* an underscore (like `first_name`) + +* a dash (like 'last-name') + +* a number anywhere (like `y2k`) + +* a number at the start (like '101dalmations') + +* a number at the end (like 'starwars2') + +What did you learn? + + +!SLIDE bullets +# Common types of information + +* String +* Number * Collections -* Dates -* Booleans (true/false) -* etc. +* Booleans + +!SLIDE bullets +## String + +A string is text. It must be wrapped in a matched pair of quotation marks. + +```ruby + $ irb + > 'Single quotes work' + => "Single quotes work" + > "Double quotes work" + => "Double quotes work" + > "Start and end have to match' + "> +``` + +What is happening on the last two lines? How would you solve it? + !SLIDE -## Strings (text) +## Number +### Integer +### Float !SLIDE -## Numbers +## Number +### Integer +"Whole number" (no decimal) + +``` + 42 + 101 + 0 +``` !SLIDE -## Collections +## Number +### Float +"Real number" (decimal) -* Arrays -* Hashes +``` + 4.99 + 98.7 + 6000.0 +``` !SLIDE -## Arrays +## Collection +### Array +### Hash -An Array is a list of objects. +!SLIDE +## Collection +### Array +An array is a list. + +Each array must be surrounded by `square braces` aka `square brackets`. A comma separates each `member`. - >> fruits = ["kiwi", "strawberry", "plum"] - => ["kiwi", "strawberry", "plum"] +``` + > fruits = ["kiwi", "strawberry", "plum"] + => ["kiwi", "strawberry", "plum"] +``` +``` + > letters = ['a', 'b', 'c'] + => ["a", "b", "c"] +``` !SLIDE -# Array Indexing +## Collection +### Array +#### Indexing -Ruby starts counting at zero. +Members are stored in order. Each can be accessed by its `index`. Ruby starts counting at _zero_. - >> fruits[0] - => "kiwi" - >> fruits[2] - => "plum" - >> fruits[3] - => nil +``` + > fruits[0] + => "kiwi" + > fruits[1] + => "strawberry" + > fruits[2] + => "plum" +``` !SLIDE -# Array methods +## Collection +### Hash +A hash has key/value pairs. It must be surrounded by `curly braces` aka `curly brackets`. A comma separates each member pair. A `key` uses `=>` (the `rocket`) to point to its `value`. -* first, last -* push, pop -* shift, unshift +``` + > states = {"CA" => "California", + "DE" => "Delaware"} + => {"CA"=>"California", "DE"=>"Delaware"} +``` - fruits.first #=> "kiwi" +A hash is also known as a `dictionary` or `map`. !SLIDE -# Hashes +## Collection +### Hash +#### Hash Indexing -* aka Dictionary or Map -* collection of key/value pairs +Member pairs can be accessed by their key. - >> states = {"CA" => "California", - "DE" => "Delaware"} - => {"CA"=>"California", "DE"=>"Delaware"} +``` + > states["CA"] + => "California" +``` - >> states["CA"] - => "California" !SLIDE -## Operators +## Boolean + +A boolean is one of only two possible values: `true` or `false`. + +``` + > 1 + 1 == 2 + => true + > 1 + 1 == 0 + => false +``` -### doing stuff with variables +( `==` means "is equal to". _More on that later._) - > my_variable + 2 - => 7 - > my_variable * 3 - => 15 - > my_fruits = my_fruits + ["lychee"] - => ["kiwi", "strawberry", "plum", "lychee"] - > my_fruits = my_fruits - ["lychee"] - => ["kiwi", "strawberry", "plum"] +!SLIDE +## Operators + +### Do stuff with objects + +``` + > my_variable + 2 + => 7 + > my_variable * 3 + => 15 +``` +``` + > fruits = my_fruits + ["lychee"] + => ["kiwi", "strawberry", "plum", "lychee"] + > fruits = my_fruits - ["lychee"] + => ["kiwi", "strawberry", "plum"] +``` !SLIDE -# Loops +## Loop +### Does something repeatedly +#### Single-line syntax -### doing the same thing a bunch of times +We can put a single-line action into curly braces. -The hard way: +``` + >> fruits.each {|fruit| puts fruit} + kiwi + strawberry + plum + => ["kiwi", "strawberry", "plum"] +``` - >> puts fruits[0] - kiwi - => nil - >> puts fruits[1] - strawberry - => nil - >> puts fruits[2] - plum - => nil +(`puts` means to print the result. _More on that later._) !SLIDE -# Loops +## Loop +### Does something repeatedly +#### Multi-line syntax + +Put a multi-line action between `do` and `end` + +``` + > fruits.each do |fruit| + ?> puts fruit + > end + kiwi + strawberry + plum + => ["kiwi", "strawberry", "plum"] +``` +On the second line, what does `?>` indicate? -### doing the same thing a bunch of times +!SLIDE +## Conditional -The easy way: +### Do something only if a condition is true - >> fruits.each {|f| puts f} - kiwi - strawberry - plum - => ["kiwi", "strawberry", "plum"] +``` + > fruits.each do |fruit| + ?> puts fruit if fruit == "plum" + > end + plum + => ["kiwi", "strawberry", "plum"] +``` !SLIDE -# Loops (multi-line) +# Running Your Code + +!SLIDE subsection +# Interpreter + +Ruby is an interpreted language. Its code can't run by the computer directly. It first must go through a Ruby interpreter. + +The most common interpreter is Matz's Ruby Interpreter ("MRI"). There are many others. -The easy way, with "do...end" rather than "{...}" +There are various ways to run code through a Ruby interpreter: + +!SLIDE commandline +## Pass code to interpreter +### *Directly*... - >> fruits.each do |f| - ?> puts f - >> end - kiwi - strawberry - plum - => ["kiwi", "strawberry", "plum"] +``` + $ ruby -e "puts 'Hello World'" + Hello World + + $ ruby -e "1+2" + + $ ruby -e "puts 1+2" + 3 +``` + +Why did we get an unexpected outcome for the second example? What was the output of that command? + +!SLIDE commandline +## Pass code to interpreter +### ...Or via *IRB*... + + +```bash + $ irb + ruby > puts 'Hello World' + Hello World +``` + +How is interactive Ruby different from speaking directly to the interpreter? + + +!SLIDE +## Pass code to interpreter +### ...Or via a *file*... + +Why use a file? What's different from, say, irb? !SLIDE -## Conditionals +## Running code from a file +### Create the file + +Note which folder your terminal is currently in, this is your `working directory` + +In your text editor, create a file named `my_program.rb` inside your working directory. + +@@@ruby + class Sample + def hello + puts "Hello World!" + end + end + + s = Sample.new + s.hello + + + +!SLIDE commandline +## Passing code from a file +### Give permission to run the new file + +You need to set 'execute' permission on the file first. + + +```bash + $ ruby chmod u+x my_program.rb +```` + +(This is an operating system command, not Ruby. You only need to do it once per file.) + +!SLIDE commandline +## Passing code from a file +### Run the saved code + +``` + $ ruby my_program.rb + Hello World! +``` + + +!SLIDE commandline +## Passing code from a file +### We can even load that file's code into IRB! + +```bash + $ irb + ruby > load 'my_program.rb' + ruby > second_time=Sample.new + ruby > second_time.hello +``` + +When might it be useful to do this? + + + -### doing something only if a condition is met - >> fruits.each do |f| - ?> puts f if f == "plum" - >> end - plum - => ["kiwi", "strawberry", "plum"] !SLIDE subsection -# Command-Line Programs +# Your Own Command Line Program !SLIDE bullets # Hello World -hello.rb: + +`hello.rb` @@@ Ruby puts "Hello, World!" @@ -223,29 +545,31 @@ hello.rb: !SLIDE bullets # Arguments (ARGV) -hello.rb: +`hello.rb` @@@ Ruby puts "Hello, #{ARGV.first}!" -terminal: +`terminal` - $ ruby hello.rb Alice - Hello, Alice! +``` +$ ruby hello.rb Alice +Hello, Alice! +``` !SLIDE bullets # Conditionals -hello.rb: +`hello.rb` @@@ Ruby if ARGV.empty? - puts "Hello, World!" + puts "Hello, World!" else - puts "Hello, #{ARGV.first}!" + puts "Hello, #{ARGV.first}!" end -terminal: +`terminal` $ ruby hello.rb Hello, World! @@ -253,35 +577,86 @@ terminal: Hello, Alice! !SLIDE -# Sinatra +# Object Oriented Programming (OOP) -hello_app.rb: +!SLIDE subsection +## Ruby is very object oriented +### Nearly everything in Ruby is an object. - @@@ Ruby - require 'rubygems' - require 'sinatra' - get '/' do - "Hello, bang bang!" - end +!SLIDE +## Class +Describes the generic characteristics of a single type of object. -!SLIDE commandline -# Sinatra +e.g. Dog, Vehicle, Baby - $ gem install sinatra - $ ruby hello_app.rb - == Sinatra/1.2.6 has taken the stage on 4567 for development with backup from Thin - >> Thin web server (v1.2.7 codename No Hup) - >> Maximum connections set to 1024 - >> Listening on 0.0.0.0:4567, CTRL+C to stop -then open a browser to +!SLIDE +## Method +Defines behavioral characteristic. -!SLIDE bullets -# sinatra with rerun +e.g. Chase, Drive, Talk + + +!SLIDE +## Variable +Defines attribute characteristic. + +e.g. Breed, Model Year, Favorite Ice Cream + + +!SLIDE +## Instance +A specific incarnation of the class. + +e.g. Rin Tin Tin, garbage truck, the neighbor's kid + + + + +!SLIDE +# Let's Create Projects! + +!SLIDE +## Project 1: +### [Personal Chef Lab](http://tutorials.jumpstartlab.com/projects/ruby_in_100_minutes.html) +_(start at "4. Objects, Attributes, and Methods")_ + +Topics: + +* Practice in Ruby syntax and OOP concepts, and creating commandline programs. + +* Explore strings: concatenation, manipulation, interpolation, coersion. + +* Symbols, nil, basic math operators, blocks, method chaining, passing parameters to methods, iteration, branching, conditionals & conditional looping. + +!SLIDE +## Project 2: +### [Encryptor Lab](http://tutorials.jumpstartlab.com/projects/encryptor.html) + +Topics: + +* Creating a commandline program that reinforces skills learned in Personal Chef. + +* Explore how to manipulate arrays, do more elaborate strings manipulations, refactor code, take advantage of character mapping, and access the filesystem from within code. + + +!SLIDE +## Project 3: +### [Event Manager Lab](http://tutorials.jumpstartlab.com/projects/eventmanager.html) + +Topics: + +* Extract-Translate-Load operations against a large dataset + +!SLIDE +## Project 4: +### Testing & More - gem install rerun - rerun hello_app.rb +A follow-up to EventManager focusing more on Ruby object decomposition and working with Command Line Interfaces and program control flow. -...now it'll automatically reload when you edit a file. +4. [Testing](http://tutorials.jumpstartlab.com/topics/internal_testing/rspec_and_bdd.html) Topics: TDD, BDD, Rspec +_(stop at "Exceptions")_ +4. [Event Reporter Lab](http://tutorials.jumpstartlab.com/projects/event_reporter.html) Topics: Object decomposition, working with Command Line Interfaces, and program control flow. Continues project created in Event Manager lab. +6. [Rspec](http://tutorials.jumpstartlab.com/topics/internal_testing/rspec_practices.html ) From e17636d611c2a416aae83b356ac5a5343426e9ef Mon Sep 17 00:00:00 2001 From: cczona Date: Thu, 23 Aug 2012 15:38:44 -0700 Subject: [PATCH 008/897] cleanup app logos used by Ruby intro deck --- sites/workshop/img/firefox.png | Bin 6032 -> 22873 bytes sites/workshop/img/ms_office.png | Bin 17362 -> 14075 bytes sites/workshop/img/wordpress.jpg | Bin 3408 -> 8486 bytes 3 files changed, 0 insertions(+), 0 deletions(-) diff --git a/sites/workshop/img/firefox.png b/sites/workshop/img/firefox.png index e40f29d1da6ba987b0330f62ed43c079c76c3b26..36baae5ebce4737e11bbf4d45d90c7462c6f7d54 100644 GIT binary patch literal 22873 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 IM6N<$g2P<4oB#j- literal 6032 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 KMNUMnLSTZM6ir3| diff --git a/sites/workshop/img/ms_office.png b/sites/workshop/img/ms_office.png index 42ab719c74699ab3b5d4ea43a4e8ee16c40c2343..818c455289f2d18dbe255f1b4a3355ac9ba205c6 100644 GIT binary patch literal 14075 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

AT=8_v;HtB6IGm~33A^pffq&|13IKGq^|9P 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 From 231f5ecd87a4d93620282ccdd1415336fc57dc54 Mon Sep 17 00:00:00 2001 From: cczona Date: Thu, 23 Aug 2012 19:01:00 -0700 Subject: [PATCH 009/897] add Rake task to (A) run slides and (B) see updates w/simple refresh instead of server restart --- Rakefile | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Rakefile b/Rakefile index 1d88753a8..ebb90ddec 100644 --- a/Rakefile +++ b/Rakefile @@ -11,3 +11,7 @@ end task :run do exec "rerun -- rackup -s thin" end + +task :present do + exec "rerun --pattern *.deck.md -- rackup -s thin" +end \ No newline at end of file From 1c3c2c7dc9c751690f0bbb132925e668ecc6c51d Mon Sep 17 00:00:00 2001 From: Travis Grathwell Date: Thu, 23 Aug 2012 23:35:34 -0700 Subject: [PATCH 010/897] ruby for beginners: remove chmod instructions and fix mangled ruby syntax on previous page --- sites/workshop/ruby_for_beginners.deck.md | 23 ++++------------------- 1 file changed, 4 insertions(+), 19 deletions(-) diff --git a/sites/workshop/ruby_for_beginners.deck.md b/sites/workshop/ruby_for_beginners.deck.md index 0c7d29de1..a7dd87db4 100644 --- a/sites/workshop/ruby_for_beginners.deck.md +++ b/sites/workshop/ruby_for_beginners.deck.md @@ -477,31 +477,16 @@ Note which folder your terminal is currently in, this is your `working directory In your text editor, create a file named `my_program.rb` inside your working directory. -@@@ruby + @@@ Ruby class Sample - def hello - puts "Hello World!" - end + def hello + puts "Hello World!" + end end s = Sample.new s.hello - - -!SLIDE commandline -## Passing code from a file -### Give permission to run the new file - -You need to set 'execute' permission on the file first. - - -```bash - $ ruby chmod u+x my_program.rb -```` - -(This is an operating system command, not Ruby. You only need to do it once per file.) - !SLIDE commandline ## Passing code from a file ### Run the saved code From 6075e3383e384239a3fc10bbae073f1fcda17f75 Mon Sep 17 00:00:00 2001 From: Kerri Miller Date: Thu, 23 Aug 2012 09:31:01 -0700 Subject: [PATCH 011/897] adding notice for windows users about irb bug in git bash --- sites/workshop/ruby_for_beginners.deck.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sites/workshop/ruby_for_beginners.deck.md b/sites/workshop/ruby_for_beginners.deck.md index a7dd87db4..20cd9aafd 100644 --- a/sites/workshop/ruby_for_beginners.deck.md +++ b/sites/workshop/ruby_for_beginners.deck.md @@ -161,6 +161,10 @@ Or type `exit` on its own line. Now you're back to the terminal's prompt. + Windows Users! Some people have experienced trouble with backspace, delete, and arrow keys working properly in irb - what a pain! If you run into this problem, use this command instead to launch irb. + + $ irb --noreadline + !SLIDE ## Variables From da7cb375895bb714879002f9455a3f7647dc1e0d Mon Sep 17 00:00:00 2001 From: cczona Date: Fri, 24 Aug 2012 12:27:20 -0700 Subject: [PATCH 012/897] teacher training feedback: leabout out second hash example --- sites/workshop/ruby_for_beginners.deck.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sites/workshop/ruby_for_beginners.deck.md b/sites/workshop/ruby_for_beginners.deck.md index 0c7d29de1..af3392801 100644 --- a/sites/workshop/ruby_for_beginners.deck.md +++ b/sites/workshop/ruby_for_beginners.deck.md @@ -295,9 +295,12 @@ Each array must be surrounded by `square braces` aka `square brackets`. A comma => ["kiwi", "strawberry", "plum"] ``` ``` + !SLIDE ## Collection From 125cc29c7614777d9ff22c24d326f393bddeff9d Mon Sep 17 00:00:00 2001 From: cczona Date: Fri, 24 Aug 2012 12:29:52 -0700 Subject: [PATCH 013/897] teacher training feedback: more on hashes (over concept, synonyms, key/pair concept, indexing) --- sites/workshop/ruby_for_beginners.deck.md | 40 +++++++++++++++++------ 1 file changed, 30 insertions(+), 10 deletions(-) diff --git a/sites/workshop/ruby_for_beginners.deck.md b/sites/workshop/ruby_for_beginners.deck.md index af3392801..2af5d61c9 100644 --- a/sites/workshop/ruby_for_beginners.deck.md +++ b/sites/workshop/ruby_for_beginners.deck.md @@ -321,28 +321,48 @@ Members are stored in order. Each can be accessed by its `index`. Ruby starts co !SLIDE ## Collection ### Hash -A hash has key/value pairs. It must be surrounded by `curly braces` aka `curly brackets`. A comma separates each member pair. A `key` uses `=>` (the `rocket`) to point to its `value`. +In a `hash` we can refer to a member by a keyword instead of a number. Each member is a pair: + +* *Key*: address of the hash member + +* *Value*: variable contained by the member, and located by key name ``` - > states = {"CA" => "California", - "DE" => "Delaware"} - => {"CA"=>"California", "DE"=>"Delaware"} + > states["CA"] + => "California" ``` -A hash is also known as a `dictionary` or `map`. +A hash may also be known as a `dictionary`, `associative array`, or `map`. + + +!SLIDE +## Collection +### Hash +#### Hash Syntax + +A hash is surrounded by `curly braces` aka `curly brackets`. A comma separates each member pair. A key uses `=>` (the `rocket`) to point to its value. + + @@@ Ruby + > states = {"CA" => "California", + "DE" => "Delaware"} + => {"CA"=>"California", "DE"=>"Delaware"} + +In real life, what lists do we make in key/value pairs? + !SLIDE ## Collection ### Hash #### Hash Indexing -Member pairs can be accessed by their key. +Member pairs can be accessed by their key. So each hash key has to be unique. -``` - > states["CA"] - => "California" -``` +Values don't have to be unique. + @ Ruby + > states = {"CA" => "California", + "DE" => "Delaware"} + => {"CA"=>"California", "DE"=>"Delaware"} !SLIDE ## Boolean From e46e700c77514cfac9f43959837b363fd084f55f Mon Sep 17 00:00:00 2001 From: cczona Date: Fri, 24 Aug 2012 12:32:14 -0700 Subject: [PATCH 014/897] teacher training feedback: leave out 2nd & 3rd examples of IRB use --- sites/workshop/ruby_for_beginners.deck.md | 7 ------- 1 file changed, 7 deletions(-) diff --git a/sites/workshop/ruby_for_beginners.deck.md b/sites/workshop/ruby_for_beginners.deck.md index 2af5d61c9..168168ea8 100644 --- a/sites/workshop/ruby_for_beginners.deck.md +++ b/sites/workshop/ruby_for_beginners.deck.md @@ -463,15 +463,8 @@ There are various ways to run code through a Ruby interpreter: ``` $ ruby -e "puts 'Hello World'" Hello World - - $ ruby -e "1+2" - - $ ruby -e "puts 1+2" - 3 ``` -Why did we get an unexpected outcome for the second example? What was the output of that command? - !SLIDE commandline ## Pass code to interpreter ### ...Or via *IRB*... From d1ba55fad71e0f9e20d8dc7e009f65e2452d9a46 Mon Sep 17 00:00:00 2001 From: cczona Date: Fri, 24 Aug 2012 12:35:04 -0700 Subject: [PATCH 015/897] format fix for some code examples --- sites/workshop/ruby_for_beginners.deck.md | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/sites/workshop/ruby_for_beginners.deck.md b/sites/workshop/ruby_for_beginners.deck.md index 168168ea8..f8574fa62 100644 --- a/sites/workshop/ruby_for_beginners.deck.md +++ b/sites/workshop/ruby_for_beginners.deck.md @@ -290,11 +290,10 @@ An array is a list. Each array must be surrounded by `square braces` aka `square brackets`. A comma separates each `member`. -``` - > fruits = ["kiwi", "strawberry", "plum"] - => ["kiwi", "strawberry", "plum"] -``` -``` + @@@ Ruby + > fruits = ["kiwi", "strawberry", "plum"] + => ["kiwi", "strawberry", "plum"] + !SLIDE commandline ## Passing code from a file From f1bd7e6f78c6b525500b1b3abb7f329ff0e8450d Mon Sep 17 00:00:00 2001 From: cczona Date: Fri, 24 Aug 2012 12:38:14 -0700 Subject: [PATCH 017/897] clarify class/method/variable distinction --- sites/workshop/ruby_for_beginners.deck.md | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/sites/workshop/ruby_for_beginners.deck.md b/sites/workshop/ruby_for_beginners.deck.md index be986bd42..101e72896 100644 --- a/sites/workshop/ruby_for_beginners.deck.md +++ b/sites/workshop/ruby_for_beginners.deck.md @@ -599,21 +599,27 @@ Hello, Alice! !SLIDE ## Class -Describes the generic characteristics of a single type of object. +Describes the generic characteristics of a single _type_ of object. + +What things of this type _are_. e.g. Dog, Vehicle, Baby !SLIDE ## Method -Defines behavioral characteristic. +Defines _behavioral_ characteristic. + +What the things of the class's type _do_. e.g. Chase, Drive, Talk !SLIDE ## Variable -Defines attribute characteristic. +Defines _attribute_ characteristic. + +What things of the class's type _have_. e.g. Breed, Model Year, Favorite Ice Cream From dca293acbe6c0407f789ea6dd8fb99306c410130 Mon Sep 17 00:00:00 2001 From: cczona Date: Fri, 24 Aug 2012 12:39:09 -0700 Subject: [PATCH 018/897] elaborate on topics of Ruby for Beginners project 1 "Personal Chef" --- sites/workshop/ruby_for_beginners.deck.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sites/workshop/ruby_for_beginners.deck.md b/sites/workshop/ruby_for_beginners.deck.md index 101e72896..73aca2bfb 100644 --- a/sites/workshop/ruby_for_beginners.deck.md +++ b/sites/workshop/ruby_for_beginners.deck.md @@ -643,7 +643,7 @@ _(start at "4. Objects, Attributes, and Methods")_ Topics: -* Practice in Ruby syntax and OOP concepts, and creating commandline programs. +* Commandline program. Practice in Ruby syntax and OOP concepts, and creating commandline programs. * Explore strings: concatenation, manipulation, interpolation, coersion. From 62c374df17592aa176499b55d06d791a0dabec2c Mon Sep 17 00:00:00 2001 From: cczona Date: Fri, 24 Aug 2012 12:39:49 -0700 Subject: [PATCH 019/897] clarify topics of Ruby for Beginners project 2: Encyptor --- sites/workshop/ruby_for_beginners.deck.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sites/workshop/ruby_for_beginners.deck.md b/sites/workshop/ruby_for_beginners.deck.md index 73aca2bfb..d2b4c6217 100644 --- a/sites/workshop/ruby_for_beginners.deck.md +++ b/sites/workshop/ruby_for_beginners.deck.md @@ -655,7 +655,7 @@ Topics: Topics: -* Creating a commandline program that reinforces skills learned in Personal Chef. +* Commandline program. Reinforce skills learned in Personal Chef. * Explore how to manipulate arrays, do more elaborate strings manipulations, refactor code, take advantage of character mapping, and access the filesystem from within code. From d1143583eaebcbc844de0e72977e02071f33cc0b Mon Sep 17 00:00:00 2001 From: cczona Date: Fri, 24 Aug 2012 12:40:43 -0700 Subject: [PATCH 020/897] clarify & expand on topics of Ruby for Beginners project 2: Encyptor --- sites/workshop/ruby_for_beginners.deck.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/sites/workshop/ruby_for_beginners.deck.md b/sites/workshop/ruby_for_beginners.deck.md index d2b4c6217..cdfeb579e 100644 --- a/sites/workshop/ruby_for_beginners.deck.md +++ b/sites/workshop/ruby_for_beginners.deck.md @@ -666,7 +666,10 @@ Topics: Topics: -* Extract-Translate-Load operations against a large dataset +* Commandline program. Reusing others code & data, refactoring your own code & cleaning up data, writing custom code to solve requirements. + +* Gems, `initialize` method, parameters, file input/output, processing/sanitizing data, looping, conditional branching, using file-based data storage (CSV, XML, JSON), accessing an external API, nils, DRY principle, constants, sort_by, more string manipulations. + !SLIDE ## Project 4: From 5b70444a3e6fff109b59b073ae2e9f90874523cd Mon Sep 17 00:00:00 2001 From: Kerri Miller Date: Fri, 24 Aug 2012 16:15:14 -0500 Subject: [PATCH 021/897] Revert "use a clearer loop variable name" This reverts commit f9f72f2fe247edf6798de5a461d954ace0401d1e. --- sites/workshop/ruby_for_beginners.deck.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/sites/workshop/ruby_for_beginners.deck.md b/sites/workshop/ruby_for_beginners.deck.md index 8af1c5542..5a2b92ad3 100644 --- a/sites/workshop/ruby_for_beginners.deck.md +++ b/sites/workshop/ruby_for_beginners.deck.md @@ -179,7 +179,7 @@ The hard way: The easy way: - >> fruits.each { |fruit| puts fruit } + >> fruits.each {|f| puts f} kiwi strawberry plum @@ -190,8 +190,8 @@ The easy way: The easy way, with "do...end" rather than "{...}" - >> fruits.each do |fruit| - ?> puts fruit + >> fruits.each do |f| + ?> puts f >> end kiwi strawberry @@ -203,8 +203,8 @@ The easy way, with "do...end" rather than "{...}" ### doing something only if a condition is met - >> fruits.each do |fruit| - ?> puts fruit if fruit == "plum" + >> fruits.each do |f| + ?> puts f if f == "plum" >> end plum => ["kiwi", "strawberry", "plum"] From be70dee270b3943084d31586b0f6dd9197b77bad Mon Sep 17 00:00:00 2001 From: Travis Grathwell Date: Fri, 24 Aug 2012 18:55:08 -0700 Subject: [PATCH 022/897] ruby for beginners: Cleaning up some malformed/misplaced hash examples --- sites/workshop/ruby_for_beginners.deck.md | 34 +++++++---------------- 1 file changed, 10 insertions(+), 24 deletions(-) diff --git a/sites/workshop/ruby_for_beginners.deck.md b/sites/workshop/ruby_for_beginners.deck.md index c40c8339b..2a3f332c9 100644 --- a/sites/workshop/ruby_for_beginners.deck.md +++ b/sites/workshop/ruby_for_beginners.deck.md @@ -298,13 +298,6 @@ Each array must be surrounded by `square braces` aka `square brackets`. A comma > fruits = ["kiwi", "strawberry", "plum"] => ["kiwi", "strawberry", "plum"] - - !SLIDE ## Collection ### Array @@ -312,14 +305,13 @@ Each array must be surrounded by `square braces` aka `square brackets`. A comma Members are stored in order. Each can be accessed by its `index`. Ruby starts counting at _zero_. -``` - > fruits[0] - => "kiwi" - > fruits[1] - => "strawberry" - > fruits[2] - => "plum" -``` + @@@ Ruby + > fruits[0] + => "kiwi" + > fruits[1] + => "strawberry" + > fruits[2] + => "plum" !SLIDE ## Collection @@ -330,11 +322,6 @@ In a `hash` we can refer to a member by a keyword instead of a number. Each memb * *Value*: variable contained by the member, and located by key name -``` - > states["CA"] - => "California" -``` - A hash may also be known as a `dictionary`, `associative array`, or `map`. @@ -362,10 +349,9 @@ Member pairs can be accessed by their key. So each hash key has to be unique. Values don't have to be unique. - @ Ruby - > states = {"CA" => "California", - "DE" => "Delaware"} - => {"CA"=>"California", "DE"=>"Delaware"} + @@@ Ruby + > states["CA"] + => "California" !SLIDE ## Boolean From e5fb1c173d8695b8d9aa6eb7ad1fb13e8fcbc2fc Mon Sep 17 00:00:00 2001 From: Dave Strock Date: Sat, 25 Aug 2012 15:41:36 -0500 Subject: [PATCH 023/897] my_fruits was undefined --- sites/workshop/ruby_for_beginners.deck.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sites/workshop/ruby_for_beginners.deck.md b/sites/workshop/ruby_for_beginners.deck.md index 2a3f332c9..d991af23d 100644 --- a/sites/workshop/ruby_for_beginners.deck.md +++ b/sites/workshop/ruby_for_beginners.deck.md @@ -379,7 +379,7 @@ A boolean is one of only two possible values: `true` or `false`. => 15 ``` ``` - > fruits = my_fruits + ["lychee"] + > my_fruits = fruits + ["lychee"] => ["kiwi", "strawberry", "plum", "lychee"] > fruits = my_fruits - ["lychee"] => ["kiwi", "strawberry", "plum"] From 9a189979c43cfd412f8f47aefe887028d97bb0ec Mon Sep 17 00:00:00 2001 From: Dave Strock Date: Sat, 25 Aug 2012 15:44:19 -0500 Subject: [PATCH 024/897] Makes it clear that subtracting arrays doesn't have to remove items from the end --- sites/workshop/ruby_for_beginners.deck.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sites/workshop/ruby_for_beginners.deck.md b/sites/workshop/ruby_for_beginners.deck.md index d991af23d..a5d5e0e36 100644 --- a/sites/workshop/ruby_for_beginners.deck.md +++ b/sites/workshop/ruby_for_beginners.deck.md @@ -381,8 +381,8 @@ A boolean is one of only two possible values: `true` or `false`. ``` > my_fruits = fruits + ["lychee"] => ["kiwi", "strawberry", "plum", "lychee"] - > fruits = my_fruits - ["lychee"] - => ["kiwi", "strawberry", "plum"] + > my_fruits = my_fruits - ["plum"] + => ["kiwi", "strawberry", "lychee"] ``` !SLIDE From 4f9a12b55c72770af22e8cb3d45b0e9ddf43284b Mon Sep 17 00:00:00 2001 From: Travis Grathwell Date: Sun, 26 Aug 2012 15:03:21 -0700 Subject: [PATCH 025/897] removing organizers site --- sites/organizers/1_wedding_planning.step | 28 ------------------------ sites/organizers/2_stage_direction.step | 22 ------------------- sites/organizers/3_lounge_host.step | 18 --------------- sites/organizers/hosts.step | 13 ----------- sites/organizers/organizers.step | 14 ------------ 5 files changed, 95 deletions(-) delete mode 100644 sites/organizers/1_wedding_planning.step delete mode 100644 sites/organizers/2_stage_direction.step delete mode 100644 sites/organizers/3_lounge_host.step delete mode 100644 sites/organizers/hosts.step delete mode 100644 sites/organizers/organizers.step diff --git a/sites/organizers/1_wedding_planning.step b/sites/organizers/1_wedding_planning.step deleted file mode 100644 index 1fde06f3e..000000000 --- a/sites/organizers/1_wedding_planning.step +++ /dev/null @@ -1,28 +0,0 @@ -goals do - goal "Pre-workshop logistics, a.k.a wedding planning. It includes coordinating with the venue, planning food, talking with with volunteers and participants and making sure the invites get sent out on time, all in an effort to make the big day beautiful for the lucky...nevermind" -end - -steps do - - step do - message"Set the day." - - message "Contact the venue and make sure everyone's on board for the day you have in mind." - message "Post two events on [meetup](http://www.sfruby.info/events/calendar/), one for volunteers and one for participants. Make sure to set a limit on RSVPs that's appropriate for the venue." - message "Second, post it to the [RailsBridge calendar](http://workshops.railsbridge.org/list/) with links to the meetup events, where people should look to RSVP." - message "Promote it!" - end - - step do - message "Feed people!" - message "Plan pizza and beer for Friday's Installfest." - message "Plan bagels and coffee for Saturday Morning." - message "Plan lunch for Saturday." - end - - step do - message "Interact with participants. Make sure they download XCode. " - message "Interact with volunteers. Plan a teacher training." - message "A few days before the event, ask people to confirm that they're able to come and change their RSVP if they realize they're unable to come." - end -end diff --git a/sites/organizers/2_stage_direction.step b/sites/organizers/2_stage_direction.step deleted file mode 100644 index c4cad10cc..000000000 --- a/sites/organizers/2_stage_direction.step +++ /dev/null @@ -1,22 +0,0 @@ -goals do - goal "Stage Direction is the logistics role during the installfest, teacher training and workshop. This role is to make make sure there's a volunteer handing out extension cords, a volunteer with display adapters, a volunteer directing people to install instructions and teacher training, as appropriate." -end - -steps do - - step do - message "Teacher Training" - end - - step do - message "Installfest" - end - - step do - message "Workshop" - message "Sign people in." - message "Divide people into classes" - message "Get ready for lunch" - message "Remind people of breaks" - end -end diff --git a/sites/organizers/3_lounge_host.step b/sites/organizers/3_lounge_host.step deleted file mode 100644 index f2ee8ad45..000000000 --- a/sites/organizers/3_lounge_host.step +++ /dev/null @@ -1,18 +0,0 @@ -goals do - goal "The Lounge Host organizer role gives the somewhat technical intro and closing presentations, makes changes to the repository, and is a good person to make last minute changes if there's a bug in the curriculum" -end - -steps do - - step do - message "Intro Presentation" - end - - step do - message "Closing Presentation" - end - - step do - message "Make changes to the installfest or workshop content" - end -end diff --git a/sites/organizers/hosts.step b/sites/organizers/hosts.step deleted file mode 100644 index 39432ee0c..000000000 --- a/sites/organizers/hosts.step +++ /dev/null @@ -1,13 +0,0 @@ -goals do - goal "Thanks for welcoming RailsBridge into your space. Here are things to think about before hosting an event." -end - -steps do - - step do - message "Who from your organization will be available during the teacher training, installfest and workshop?" - message "Are you able to sponsor the event by providing food?" - message "How many people fit in your space?" - message "You'll have about 5 minutes in front of everyone. What do you want to say?" - end -end diff --git a/sites/organizers/organizers.step b/sites/organizers/organizers.step deleted file mode 100644 index 8fc6ff9e8..000000000 --- a/sites/organizers/organizers.step +++ /dev/null @@ -1,14 +0,0 @@ -message <<-MARKDOWN -### Organizers are super - -RailsBridge Workshops don't happen without organizers. The role of the organizers fall into roughly three buckets: - -* pre-workshop logistics planning -* day-of logistics, mostly pointing. -* presenting and talking - -It's easier to cover all the bases if you have at least two organizers for each workshop. - -### Hosts are super, too! - -MARKDOWN From a86d94f75d9defadf5be7d21e1e9b7a5c0eff3b6 Mon Sep 17 00:00:00 2001 From: Lillie Chilen Date: Sun, 26 Aug 2012 19:29:44 -0700 Subject: [PATCH 026/897] remove console command overviews where redundant --- sites/curriculum/creating_a_migration.step | 8 +------- sites/curriculum/getting_started.step | 10 ---------- 2 files changed, 1 insertion(+), 17 deletions(-) diff --git a/sites/curriculum/creating_a_migration.step b/sites/curriculum/creating_a_migration.step index e6f0e6354..c5a71c50f 100644 --- a/sites/curriculum/creating_a_migration.step +++ b/sites/curriculum/creating_a_migration.step @@ -18,13 +18,6 @@ goals { steps { - console <<-SHELL -rails generate scaffold topic title:string description:text -rake db:migrate -rails server - SHELL - - message "If you want, take some time to poke around the files listed in the generate step." step { console "rails generate scaffold topic title:string description:text" @@ -34,6 +27,7 @@ rails server * `title:string` says that topics have a title, which is a string. * `description:text` says that topics have a description which is a "text". (We're befuddled by the difference too). MARKDOWN + message "If you want, take some time to poke around the files listed in this step." } step { diff --git a/sites/curriculum/getting_started.step b/sites/curriculum/getting_started.step index 243783bb7..ecda943f1 100644 --- a/sites/curriculum/getting_started.step +++ b/sites/curriculum/getting_started.step @@ -10,16 +10,6 @@ steps do tip "If you have _any_ problems, contact a TA immediately." - console <<-SHELL -mkdir railsbridge -cd railsbridge -rails new suggestotron -cd suggestotron -ls - SHELL - - message "Here's a step-by-step breakdown, with explanations:" - step do console "mkdir railsbridge" message "'mkdir' stands for make directory (folder)." From 79fcc96aa825e085e34bce8c7ce3476f85ef2643 Mon Sep 17 00:00:00 2001 From: Lillie Chilen Date: Sun, 26 Aug 2012 19:45:03 -0700 Subject: [PATCH 027/897] fixed text styling --- sites/curriculum/CRUD_with_scaffolding.step | 2 +- sites/curriculum/allow_people_to_vote.step | 6 +++--- sites/curriculum/setting_the_default_page.step | 8 ++++---- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/sites/curriculum/CRUD_with_scaffolding.step b/sites/curriculum/CRUD_with_scaffolding.step index a42d65907..d08dcdfa0 100644 --- a/sites/curriculum/CRUD_with_scaffolding.step +++ b/sites/curriculum/CRUD_with_scaffolding.step @@ -16,7 +16,7 @@ goals { steps { step { - message "Run `rails server` in your terminal." + console "rails server" } step { diff --git a/sites/curriculum/allow_people_to_vote.step b/sites/curriculum/allow_people_to_vote.step index 87b80eb1c..6d6081890 100644 --- a/sites/curriculum/allow_people_to_vote.step +++ b/sites/curriculum/allow_people_to_vote.step @@ -52,7 +52,7 @@ explanation { HTML message <<-MARKDOWN - * `pluralize(topic.votes.length, "vote")' displays the number of votes the topic has, plus the word 'vote' or 'votes' accordingly. + * `pluralize(topic.votes.length, "vote")` displays the number of votes the topic has, plus the word 'vote' or 'votes' accordingly. * `button_to '+1'` creates an html button with the value '+1'. * `votes_path(topic_id: topic.id)` creates the right url for the action we want to invoke. In this case, we want to create a vote for the current topic. * `votes_path(topic_id: 42)` would output `/votes?topic_id=42` @@ -60,9 +60,9 @@ explanation { The changes we made to votes controller are a bit more complicated so let's work through them line by line. - * topic = Topic.find(params[:topic_id]) + * `topic = Topic.find(params[:topic_id])` * Finds the topic in the database with that id and stores it in the variable 'topic'. - * params[:topic_id] corresponds to the topic_id part of the votes_path above (eg `?topic_id=42`). + * `params[:topic_id]` corresponds to the topic_id part of the votes_path above (eg `?topic_id=42`). * `vote = topic.votes.build` creates a new vote for the current topic. * `vote.save!` saves the vote to the database. * `redirect_to(topics_path)` tells the browser to go back to topics_path (the topics list). diff --git a/sites/curriculum/setting_the_default_page.step b/sites/curriculum/setting_the_default_page.step index 0b640ff5b..1960e3c4a 100644 --- a/sites/curriculum/setting_the_default_page.step +++ b/sites/curriculum/setting_the_default_page.step @@ -40,15 +40,15 @@ root :to => 'topics#index' explanation { message <<-MARKDOWN - * root :to => 'topics#index' is a rails route that says the default - address for your site is topics#index. topics#index is the topics + * `root :to => 'topics#index'` is a rails route that says the default + address for your site is `topics#index`. `topics#index` is the topics list page (the topics controller with the index action). * Rails routes control how URLs (web addresses) get matched with code on the server. Similar to how addresses match with houses and apartments. - * The file config/routes.rb is like an address directory listing the + * The file `config/routes.rb` is like an address directory listing the possible addresses and which code goes with each one - * routes.rb uses some shortcuts so it doesn't always show all the + * `routes.rb` uses some shortcuts so it doesn't always show all the possible URLs. To explore the URLs in more detail we can use the terminal. From a811c799032345139e6edff3f03e339a3686564a Mon Sep 17 00:00:00 2001 From: Lillie Chilen Date: Sun, 26 Aug 2012 22:28:42 -0700 Subject: [PATCH 028/897] clean up tools page --- sites/curriculum/credits_and_next_steps.step | 21 +++++++------- sites/curriculum/tools.step | 29 +++++--------------- 2 files changed, 18 insertions(+), 32 deletions(-) diff --git a/sites/curriculum/credits_and_next_steps.step b/sites/curriculum/credits_and_next_steps.step index 5672b1361..da87806c2 100644 --- a/sites/curriculum/credits_and_next_steps.step +++ b/sites/curriculum/credits_and_next_steps.step @@ -1,20 +1,21 @@ h1 "Authors" -ul { +ul do li "Sarah Allen" li "Sarah Mei" li "Alex Chaffee" li "Ryan Davis" li "Steven! Ragnarok" - li "...and many others" -} + li "...and many, many others" +end h1 "What next?" -ul { - li "Learn More Ruby" - li "Learn More Rails" - li "Take a class" - li "Be a TA at an upcoming workshop" - li "...?" -} +ul do + li "Probably time for the closing presentation." + li "After that, start a project, tutorial, and come back again!" + li do + span "All our favorite resources can be found on the RailsBridge site: " + a "http://workshops.railsbridge.org/whats-next/", href: "http://workshops.railsbridge.org/whats-next/" + end +end diff --git a/sites/curriculum/tools.step b/sites/curriculum/tools.step index 821384905..88744f815 100644 --- a/sites/curriculum/tools.step +++ b/sites/curriculum/tools.step @@ -2,17 +2,16 @@ message <<-MARKDOWN ## Other Tools to help you learn Ruby ### ri - -ri is a tool to look up ruby documentation: +ri is a tool to look up ruby documentation. It lives on your computer, so if you're in a plane or underground bunker and can't get to google, all the information right within the terminal! If you do prefer the internet, you can get the same information at [ruby-doc.org](http://ruby-doc.org). $ ri String.split = String.split (from ruby core) - ------------------------------------------------------------------------------ + ------------------------------------------------------------------------- str.split(pattern=$;, [limit]) => anArray - ------------------------------------------------------------------------------ + ------------------------------------------------------------------------- Divides str into substrings based on a delimiter, returning an array of these substrings. @@ -20,8 +19,7 @@ ri is a tool to look up ruby documentation: MARKDOWN -important "If running ri doesn't work and you've installed ruby using rvm, try -running this command first: +important "If running ri doesn't work and you've installed ruby using rvm, try running this command first: $ rvm docs generate " @@ -35,28 +33,15 @@ You can do a lot with it: ### irb -We've already introduced irb above, but it can't be stressed enough -that having an interactive live session with ruby is invaluable. You -can learn a lot from it. +We've already introduced irb above, but it can't be stressed enough that having an interactive live session with ruby is invaluable. You can learn a lot from it. You can do stuff like: $ irb >> "blah".methods - => [:<=>, :==, :===, :eql?, :hash, :casecmp, :+, :*, :%, :[], :[]=, :insert, :length, :size...] - -All of these methods are available for any string. You can then use -`ri` to look up the method documentation. It is a great way to find goodies! - -### online resources + => [:<=>, :==, :===, :eql?, :hash, :casecmp...] -* [Ruby Quickref](http://www.zenspider.com/Languages/Ruby/QuickRef.html) -* Google - searching "ruby" and whatever you're looking for usually leads to good stuff. -* [Ruby Koans](http://rubykoans.com/) - a great set of lessons in an interactive form. -* [Test First Training](http://testfirst.org) - learn Ruby, one test at a time. -* [Learn to Program by Chris Pine](http://pine.fm/LearnToProgram) - also available as [a book](http://pragprog.com/book/ltp2/learn-to-program). -* [The Pickaxe](http://pragprog.com/book/ruby3/programming-ruby-1-9) - The definitive ruby reference (and has a great tutorial too). -* [Why's (poignant) Guide to Ruby](http://www.scribd.com/doc/8545174/whys-Poignant-Guide-to-Ruby) - the (crazy) guide to ruby... Try it, you might like it. +All of these methods are available for any string. You can then use `ri` to look up the method documentation. It is a great way to find goodies! MARKDOWN From ba5e3e229e21f705652ec3dd5972af1fbf28e811 Mon Sep 17 00:00:00 2001 From: Alex Chaffee Date: Mon, 27 Aug 2012 10:45:12 -0700 Subject: [PATCH 029/897] add line about Travis CI, which this PR will prove (or disprove) --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 51aeed527..490a5101c 100644 --- a/README.md +++ b/README.md @@ -19,6 +19,8 @@ If you make any changes, and especially before a pull request, run which will run some unit tests and also do syntax validation on all pages, to make sure you didn't break anything. +When you submit a Pull Request, Travis CI will also run all the tests. + # Overview This is a Sinatra app, deployed at . The Railsbridge documentation project is home to a few subprojects, including the Railsbridge installfest instructions, which leads students through the various complicated setup instructions for getting Ruby, Rails, Git, etc. installed on their computer (whatever combination of computer, OS, and version they happened to bring the the workshop!), as well as the Railsbridge workshop "Suggestotron" curriculum. From 84dd7f2d6644fd24be602537f0786895a1c7d539 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steven!=20Ragnaro=CC=88k?= Date: Wed, 29 Aug 2012 17:22:05 -0700 Subject: [PATCH 030/897] Add a CONTRIBUTING.md file. This file tells would-be contributors how to make our lives as maintainers easier. It's very much a first draft and I welcome your suggestions and contributions. I have submitted this pull request from the primary repo into itself so that other maintainers may add stuff directly. I purposefully made it much larger than most CONTRIBUTING files due to the (ideally) large number of people contributing who are not as familiar with the tools as we are. You might even note my standing offer to help *anyone* who wants to contribute do so. --- CONTRIBUTING.md | 74 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 CONTRIBUTING.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 000000000..ac6d0cb84 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,74 @@ +# Thanks! + +RailsBridge wouldn't be what it is without your help. Thanks for contributing. + +We ask that contributions be made as pull requests via GitHub. If those words +are totally foreign to you +[see here](#its-my-first-time-on-github-ever-what-do-i-do) + + +# When Submitting a Pull Request + +*Here's a couple tricks to grease the wheels and make it easy for the maintainers +to love you. :heart:* + +## Before You Start! + +- If you have an existing fork, please make sure it's up to date. + It just makes your life easier! + +- Create a local topic branch before you start working. This branch is going to + be named for what you plan to change. `fix-typo-in-slides`, `move-resources`, + and `mountain-lion-support` are all good names for topic branches. If you've + never created a local branch before, you can use `git checkout -b + new-branch-name` + +## Before Submitting + +- Please, please, *please* run `rake` from the terminal before you submit. It + not only runs our test suite but also checks the docs for syntax errors. + +- Push to a branch on GitHub. Just like you developed in a local branch, you + should push to a branch of your repo on GitHub as well. The `master` branch is + best used as a clean copy of the upstream docs repo in case you need to make + some unrelated changes. To push to a branch, use `git push origin pr-branch`. + +## Discussion and Waiting On A Merge + +- Every pull request will receive a response from the team. +- Not every pull request will be merged as is. +- Not every pull request will be merged at all. +- If a pull request falls significantly behind master, we may ask that you close +it, rebase your changes off of master, and submit a new pull request. + +# It's My First Time on GitHub Ever What Do I Do? + +Relax, you came to the right place. In order to contribute you'll need to be +able to familiarize yourself with some concepts from git and GitHub. It's going +to be a lot of information, but you're :sparkles:awesome:sparkles:! So you it'll +be fine. + +First, you'll need a GitHub account, which is totally free. You can sign up +[here](https://github.com/signup/free). + +You'll want to read about +[forking](https://help.github.com/articles/fork-a-repo) and then make your own +fork of [railsbridge/docs](https://github.com/railsbridge/docs). Once you've +done so, you can clone it and get started by reading up on [what to do when +submitting a pull request](#when-submitting-a-pull-request), read up on +[pull requests](https://help.github.com/articles/using-pull-requests) +themselves. If this is all too much, or you'd like a helping hand, +[@nuclearsandwich](https://github.com/nuclearsandwich) has volunteered to help +anyone who wants to contribute do so. His email is behind that profile link. + +# Closing + +If you haven't taken the time to go through the Git Immersion lab. + +Do it. It's worth it no matter how much git-fu you have. +http://git-immersion.com + +Well. I hope you're all sick of me talking, but I think I addressed +everything in the thread with respect to git, contributors, and github +to the best of my knowledge. Let me know if you think I'm wild crazy or +have a better suggestion. I'm always on the lookout. From c7efcb797c08d874f9c1f263f589b994529be979 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steven!=20Ragnaro=CC=88k?= Date: Wed, 29 Aug 2012 20:09:05 -0700 Subject: [PATCH 031/897] Fix erroneous link. --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ac6d0cb84..90414734a 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -66,7 +66,7 @@ anyone who wants to contribute do so. His email is behind that profile link. If you haven't taken the time to go through the Git Immersion lab. Do it. It's worth it no matter how much git-fu you have. -http://git-immersion.com +http://gitimmersion.com Well. I hope you're all sick of me talking, but I think I addressed everything in the thread with respect to git, contributors, and github From 5409bc9fc1f3aff1d411e6a0a82933e91c29cf56 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steven!=20Ragnaro=CC=88k?= Date: Wed, 29 Aug 2012 20:14:25 -0700 Subject: [PATCH 032/897] Warn people to fork before cloning. --- CONTRIBUTING.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 90414734a..f6209c58e 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -15,7 +15,8 @@ to love you. :heart:* ## Before You Start! - If you have an existing fork, please make sure it's up to date. - It just makes your life easier! + It just makes your life easier! If not, make sure you fork *before* cloning, + otherwise you'll need to spend some time juggling remotes. - Create a local topic branch before you start working. This branch is going to be named for what you plan to change. `fix-typo-in-slides`, `move-resources`, From d3a93a34f9dee331ce63d426e22f446599fa8eca Mon Sep 17 00:00:00 2001 From: Alex Chaffee Date: Thu, 30 Aug 2012 15:27:23 -0700 Subject: [PATCH 033/897] upgrade eventmachine to 1.0.0.rc.4 so it works on Windows see http://stackoverflow.com/questions/6927907/ruby-problem-installing-eventmachine-under-windows-7 --- Gemfile | 1 + Gemfile.lock | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/Gemfile b/Gemfile index c41e28f8b..d4349e023 100644 --- a/Gemfile +++ b/Gemfile @@ -5,6 +5,7 @@ gem "sinatra" gem "nokogiri" gem "rdiscount" gem "thin" +gem "eventmachine", "1.0.0.rc.4" gem 'rack-codehighlighter' gem 'coderay' gem "deckrb", ">=0.3.0" diff --git a/Gemfile.lock b/Gemfile.lock index 6bed551d9..f354eade2 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -23,12 +23,14 @@ GEM diff-lcs (1.1.3) erector (0.9.0.pre1) treetop (>= 1.2.3) - eventmachine (0.12.10) + eventmachine (1.0.0.rc.4) + eventmachine (1.0.0.rc.4-x86-mingw32) file-tail (1.0.8) tins (~> 0.3) files (0.2.1) json (1.6.6) nokogiri (1.5.2) + nokogiri (1.5.2-x86-mingw32) polyglot (0.3.3) predicated (0.2.6) rack (1.4.1) @@ -89,12 +91,14 @@ GEM PLATFORMS ruby + x86-mingw32 DEPENDENCIES bourbon coderay deckrb (>= 0.3.0) erector (~> 0.9.0.pre1) + eventmachine (= 1.0.0.rc.4) files nokogiri rack-codehighlighter From 17f2569de1c04bb106dd792522a36b2965f4747a Mon Sep 17 00:00:00 2001 From: Doug May Date: Fri, 20 Jul 2012 13:53:23 -0700 Subject: [PATCH 034/897] updates for the Windows Railsinstaller, plus the common flow through the first deployment and getting your sticker --- sites/installfest/configure_git.step | 3 +- .../installfest/create_a_heroku_account.step | 17 ++++++-- .../create_and_deploy_a_rails_app.step | 43 ++++++++++++------- sites/installfest/get_a_sticker.step | 26 +++++------ sites/installfest/windows.step | 8 ++-- sites/installfest/windows_colors.step | 12 +++--- 6 files changed, 65 insertions(+), 44 deletions(-) diff --git a/sites/installfest/configure_git.step b/sites/installfest/configure_git.step index 5dde85a9f..b94c567cf 100644 --- a/sites/installfest/configure_git.step +++ b/sites/installfest/configure_git.step @@ -22,7 +22,8 @@ git config --global color.branch auto BASH important do - message "If you are using Windows, you may need to install AnsiCon to see colors (otherwise you'll see gibberish)." + message "If you are using Windows, you may need to install AnsiCon to see colors (otherwise you'll see gibberish). If you didn't do this earlier, then you should do it now." + link "windows_colors" end end diff --git a/sites/installfest/create_a_heroku_account.step b/sites/installfest/create_a_heroku_account.step index 91672e8fc..5a004ca57 100644 --- a/sites/installfest/create_a_heroku_account.step +++ b/sites/installfest/create_a_heroku_account.step @@ -16,23 +16,32 @@ end step "Install the heroku gem" do - option "if you are using rvm" do + option "if you are using rvm (on OS X or Linux)" do console "rvm @global gem install heroku" end - option "otherwise" do + option "otherwise (on Windows)" do console "gem install heroku" end verify do console "heroku -v" - result "2.26.7" + result "2.26.7 or higher" end end step "Add your SSH key to your Heroku account" do - link "create_an_ssh_key" + + option "on OS X or Linux" do + link "create_an_ssh_key" + end + + option "on Windows, Railsinstaller already did this for you" do + end + console "heroku keys:add" + + message "hit enter to accept the default key file to use" end tip "If you have further Heroku issues" do diff --git a/sites/installfest/create_and_deploy_a_rails_app.step b/sites/installfest/create_and_deploy_a_rails_app.step index c2423ce8b..fcd6ec6ad 100644 --- a/sites/installfest/create_and_deploy_a_rails_app.step +++ b/sites/installfest/create_and_deploy_a_rails_app.step @@ -11,11 +11,12 @@ step "Create a new Rails app" do console "rails new test_app" - message "The command's output is voluminous. :-)" + message "The command's output is voluminous, and will take some time to complete, with a long pause in the middle, after all the 'create...' statements ending in 'bundle install'. When it fully completes, it will return you to your home prompt. Look for the 'Your bundle is complete!' message just above." tip do - message "On Linux, you may have to add this line to your Gemfile:" + message "On Linux, you may have to enable this line to your Gemfile:" pre "gem 'therubyracer', :platforms => :ruby" + message "Just delete the '#' in front of the statement" end console "cd test_app" @@ -56,35 +57,43 @@ message <<-MARKDOWN * In your browser, go to +message "In Windows, you may need to let Ruby and Rails communicate through your firewall. Say yes." + ![Successful Rails Install](successful-rails-install.jpg) * Back in the Terminal window where you ran rails server, type **Control-C** to kill(stop) the server. MARKDOWN - important "On Windows, sometimes Control-C doesn't work. In that case, look for the key called 'Break' or 'Pause' and press Control-Break." + important "On Windows, sometimes Control-C doesn't work. In that case, look for the key called 'Break' or 'Pause' and press Control-Break, then answer Y at the prompt." end step "Generate a database model" do + option "if your prompt doesn't already show that you are (still) in the test_app folder" do + cd test_app + end + console <<-BASH -cd test_app rails generate scaffold user name:string email:string address:text active:boolean rake db:migrate rails server BASH - message "In the browser, visit " + message "Wait until your console shows that the Webrick server has started (just like before). Then, in the browser, visit " - message "Click *New user* to create a user to make sure we can save to the database. (The window where you ran `rails server` will display debugging information as you do so.)" + message "Click *New user* to create a user to make sure we can save to the database. Click *Back* to see your results. (The window where you ran `rails server` will display debugging information as you do so.)" - message "In your Terminal window where you ran `rails server`, type Control-C to kill(stop) the server." + message "In your Terminal window where you ran `rails server`, type Control-C (or Control-Break,Y) to kill(stop) the server." end step "Use git" do + option "if your prompt doesn't already show that you are (still) in the test_app folder" do + cd test_app + end + console <<-BASH -cd test_app git init BASH @@ -115,7 +124,7 @@ step "Deploy your app to Heroku" do step "Create a Heroku application from this local Rails application." do - message "The very first time you use `heroku` you must enter your Heroku email address and password. Your password may not be shown as you type it, but don't worry, its being entered!" + message "The very first time you use `heroku` you must enter your Heroku email address and password. Your password may not be shown as you type it, but don't worry, it's being entered! If you are still in your original console session (where you installed the heroku gem), you won't be prompted for your credentials again." console "heroku create" result <<-OUTPUT @@ -128,6 +137,8 @@ http://floating-winter-18.heroku.com/ | git@heroku.com:floating-winter-18.git Git remote heroku added OUTPUT + message "Heroku apps are automatically given lyrical names that look like '[adjective]-[noun]-[number]'. Each name is different." + console "git remote show" result "heroku" @@ -137,7 +148,7 @@ Git remote heroku added step "Prepare your rails app for deploying to Heroku" do message <<-MARKDOWN -Find your test_app and open it in a text-editor. +Find your test_app folder and open it in a text-editor. Inside, find a file named Gemfile. Edit your Gemfile and change the line: @@ -158,7 +169,7 @@ To this: bundle install --without production BASH - message "if this fails, edit `config/environments/production.rb` " + message "Again, wait for the console prompt, and look for the 'Your bundle is complete!' message just above. If this fails, get a volunteer to help you edit `config/environments/production.rb` " end step "Add the changes to git" do @@ -197,7 +208,7 @@ To git@heroku.com:floating-winter-18.git important "Be sure to find and learn your Heroku application name in the output." - message "[What to do if git seems stuck](what_to_do_if_git_seems_stuck)" + message "This process will probably take about twice as long as your 'bundle install' and then will return you to your console prompt. If it takes longer than that, click: [What to do if git seems stuck](what_to_do_if_git_seems_stuck)" console "heroku run rake db:migrate" @@ -221,15 +232,15 @@ Migrating to CreateUsers (20111204065949) console "heroku info" end - message "The URL for your app is *application name*.heroku.com -- so with the example output in the previous step, it would be floating-winter-18.heroku.com. Verify you see the welcome page. Leave this browser window open." - tip "To quickly open your heroku application in a browser" do console "heroku open" end + + message "The URL for your app is *application name*.heroku.com -- so with the example output in the previous step, it would be floating-winter-18.heroku.com. Verify you see the welcome page. Leave this browser window open." - message "In the browser, add /users to the end of the URL. Verify you see the user list page." + message "In the browser, add /users to the end of the URL and hit *enter*. Verify you see the user list page." - message "Create a new user to verify you can write to the database on Heroku." + message "Create and save a new user to verify you can write to the database on Heroku." end end diff --git a/sites/installfest/get_a_sticker.step b/sites/installfest/get_a_sticker.step index f8b9c2634..1d1c2f7d7 100644 --- a/sites/installfest/get_a_sticker.step +++ b/sites/installfest/get_a_sticker.step @@ -24,29 +24,29 @@ verify "tool installation" do result "git version 1.7.4.4" console "gem -v" - result "1.8.21" + result "1.8.16" console "rake --version" result "rake, version 0.9.2.2" console "bundle -v" - result "Bundler version 1.1.3" + result "Bundler version 1.0.22" -end + console "rails -v" + result "Rails 3.2.1" -section "Change to your home directory" do - option "Windows" do - console "cd c:\\Sites" - end - option "Mac or Linux" do - console "cd ~" - end end -verify "rails" do +Create the "sticker" application do - console "rails -v" - result "Rails 3.2.6" + section "Change to your home directory" do + option "Windows" do + console "cd c:\\Sites" + end + option "Mac or Linux" do + console "cd ~" + end + end console "rails new sticker" result "# ...most output omitted for brevity... diff --git a/sites/installfest/windows.step b/sites/installfest/windows.step index 61c4b8912..23192e834 100644 --- a/sites/installfest/windows.step +++ b/sites/installfest/windows.step @@ -44,7 +44,7 @@ step "Sanity Check" do result "ruby 1.9.3p125" console "rails -v" - result "Rails 3.2.6" + result "Rails 3.2.1" end @@ -70,7 +70,7 @@ step "Open a Terminal" do end step "Configure the Windows Terminal" do - message "Take a moment to configure the *Command Prompt with Ruby and Rails* so that it is a good height and width and has a nice font." + message "Take a moment to configure the *Command Prompt with Ruby and Rails* so that it is a good height and width and has a nice font. Hint -- click to open the link below, and when you finish those steps, hit the **back** button in your browser to resume this procedure." link "configure_the_windows_terminal" @@ -80,7 +80,7 @@ step "Configure the Windows Terminal" do end tip "command history" do - message "The terminal window stores a \"command history.\" To view and re-run previous commands, use the <up arrow> and <down arrow> keys. You can also edit a previous command and run it -- this is handy for long commands, or fixing mistakes." + message "The terminal window stores a \"command history.\" To view and re-run previous commands, use the <up arrow> and <down arrow> keys. You can also edit a previous command and run it -- this is handy for long commands, or fixing mistakes, or for cycles (series of commands) that you repeat." end tip "copy and paste" do @@ -93,7 +93,7 @@ end step "Install Windows Colors" do - message "This step is optional, but **highly** recommended." + message "This step is optional, but **highly** recommended. Hint -- click to open the link below, and when you finish those steps, hit the **back** button in your browser to resume this procedure." link "windows_colors" diff --git a/sites/installfest/windows_colors.step b/sites/installfest/windows_colors.step index 73f95fc7e..e1edcc550 100644 --- a/sites/installfest/windows_colors.step +++ b/sites/installfest/windows_colors.step @@ -1,26 +1,26 @@ -message "The Rails server logging and test results are much easier to read with colored output but the Console with Ruby and Rails defaults to white on black. Add colors by following these steps." +message "The Rails server logging and test results are much easier to read with colored output, but the 'Command Prompt with Ruby and Rails' defaults to white on black. Add colors by following these steps." step "Download ANSICON" do message "In the browser, visit " message "Click the `ansi153.zip` link to download the file (or whatever the most recent version is)" - message "Double-click the file to unzip it" + message "Double-click the downloaded file to unzip it" end step "Determine if you have a 32 or 64 bit Operating System" do message <<-MARKDOWN * In Windows 7 or Vista, from the Start menu, type system in the Start Search box, and then click system in the Programs list. System Type under System will say whether it's a 32 or 64 bit Operating System - * In WIndows XP, right click on the "My Computer" icon, choose Properties, then General + * In Windows XP, right click on the "My Computer" icon, choose Properties, then General * if System says Windows XP Professional x64 Edition Version then yours is 64 bit - * if it says Windows XP Professional Version then it's 32 bit + * if it says Windows XP Professional Version then it's 32 bit MARKDOWN end option "if your OS is 32 bit" do - message "copy all the files from the subdirectory 'x86' of the downloaded files to C:\\Windows\\system32" + message "open the subdirectory 'x86' of the downloaded files, select and copy all the files, and paste them into C:\\Windows\\system32; provide admin permissions when prompted" end option "if your OS is 64 bit" do - message "copy all the files from the subdirectory 'x64' of the downloaded files to C:\\Windows\\system32" + message "open the subdirectory 'x64' of the downloaded files, select and copy all the files, and paste them into C:\\Windows\\system32; provide admin permissions when prompted" end step "Set up colors" do From 3d4ad6f436d25823c0b8a9aac14a2e1152443c29 Mon Sep 17 00:00:00 2001 From: Doug May Date: Fri, 20 Jul 2012 14:27:36 -0700 Subject: [PATCH 035/897] updates for the current Ubuntu 10 install, up through initial deploy and getting the sticker --- sites/installfest/get_a_sticker.step | 4 ++-- sites/installfest/ubuntu.step | 12 ++++++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/sites/installfest/get_a_sticker.step b/sites/installfest/get_a_sticker.step index 1d1c2f7d7..72fc87a74 100644 --- a/sites/installfest/get_a_sticker.step +++ b/sites/installfest/get_a_sticker.step @@ -13,7 +13,7 @@ verify "tool installation" do result "rvm 1.11.2 by Wayne E. Seguin (wayneeseguin@gmail.com) [https://rvm.beginrescueend.com/]" console "sqlite3 --version" - result "3.7.5" + result "3.6.22" h3 "On all operating systems:" @@ -21,7 +21,7 @@ verify "tool installation" do result "ruby 1.9.3p125 (2012-02-16 revision 34643) [x86_64-darwin11.3.0]" console "git --version" - result "git version 1.7.4.4" + result "git version 1.7.0.4" console "gem -v" result "1.8.16" diff --git a/sites/installfest/ubuntu.step b/sites/installfest/ubuntu.step index 27287beb4..ed8838868 100644 --- a/sites/installfest/ubuntu.step +++ b/sites/installfest/ubuntu.step @@ -13,7 +13,11 @@ Open a terminal (Applications > Accessories > Terminal). You may want to right- bison build-essential curl - libc6-dev + git-core + libapr1 + libaprutil1 + libc6-dev + libltdl-dev libreadline6 libreadline6-dev libsqlite3-0 @@ -38,7 +42,11 @@ end step "Install git" do console "sudo apt-get install git" - message "If this results in an error, you may try installing `git-core` instead of `git`" + message "If this results in an error, you should be ok, as the prior step should have installed `git-core`" +end + +step "Configure Git" do + link "configure_git" end step "Install RVM" do From 295df38b4866cdf972004e4f14c3fd966419f2e2 Mon Sep 17 00:00:00 2001 From: Doug May Date: Fri, 20 Jul 2012 14:49:09 -0700 Subject: [PATCH 036/897] adjust clean-up to get rid of both deployed apps --- sites/installfest/clean_up.step | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/sites/installfest/clean_up.step b/sites/installfest/clean_up.step index 64ab57dc1..4f798b7f2 100644 --- a/sites/installfest/clean_up.step +++ b/sites/installfest/clean_up.step @@ -1,15 +1,15 @@ message <<-MARKDOWN -Ok, there is one more step. You won't be using the test application in the workshop; we just created it to make sure everything was working. **You should delete it now to reduce confusion during the workshop.** Don't worry about losing information - you'll repeat all the steps tomorrow, but more slowly so you can better understand what's going on under the hood. +Ok, there is one more step. You won't be using the test applications in the workshop; we just created them to make sure everything was working. **You should delete them now to reduce confusion during the workshop.** Don't worry about losing information - you'll repeat all the steps tomorrow, but more slowly so you can better understand what's going on under the hood. MARKDOWN -step "Delete the app from Heroku" do - message "Go to and then click on your app name. Scroll to the bottom of the page and click Destroy App." +step "Delete the apps from Heroku" do + message "Go to , login if needed, and then click on your (lyrical) app name. Scroll to the bottom of the page and click Destroy App. Confirm, and then repeat for the second app." end -step "Delete test_app from your computer" do +step "Delete the apps from your computer" do option "Windows" do - message "Right click on the test_app folder (inside C:\\Sites) and choose Delete." + message "From the Explorer, right click on the test_app folder (inside C:\\Sites) and choose Delete." end option "Mac" do message "Open your home directory and drag the test_app folder to the trash." @@ -17,5 +17,9 @@ step "Delete test_app from your computer" do option "Linux" do console "rm -rf ~/test_app" end + + option "All" do + message "Do the same for the sticker folder." + end end From 308b9418df04e2fff2f4b3d059baa3c5637ce825 Mon Sep 17 00:00:00 2001 From: Doug May Date: Sat, 1 Sep 2012 12:46:21 -0700 Subject: [PATCH 037/897] post-rebase clean-up --- sites/installfest/clean_up.step | 10 +++++----- .../create_and_deploy_a_rails_app.step | 4 ++-- sites/installfest/get_a_sticker.step | 18 ++++++++++++++---- 3 files changed, 21 insertions(+), 11 deletions(-) diff --git a/sites/installfest/clean_up.step b/sites/installfest/clean_up.step index 4f798b7f2..f1b71a253 100644 --- a/sites/installfest/clean_up.step +++ b/sites/installfest/clean_up.step @@ -4,10 +4,10 @@ Ok, there is one more step. You won't be using the test applications in the work MARKDOWN step "Delete the apps from Heroku" do - message "Go to , login if needed, and then click on your (lyrical) app name. Scroll to the bottom of the page and click Destroy App. Confirm, and then repeat for the second app." + message "Go to , login if needed, and then click on your first (lyrical) app name. Scroll to the bottom of the page and click Destroy App. Confirm, and then repeat for the second app." end -step "Delete the apps from your computer" do +step "Delete the test_app from your computer" do option "Windows" do message "From the Explorer, right click on the test_app folder (inside C:\\Sites) and choose Delete." end @@ -17,9 +17,9 @@ step "Delete the apps from your computer" do option "Linux" do console "rm -rf ~/test_app" end - - option "All" do +end +step "Delete the sticker app from your computer" do message "Do the same for the sticker folder." - end + message "Now you're really done!" end diff --git a/sites/installfest/create_and_deploy_a_rails_app.step b/sites/installfest/create_and_deploy_a_rails_app.step index fcd6ec6ad..d8aaa85d4 100644 --- a/sites/installfest/create_and_deploy_a_rails_app.step +++ b/sites/installfest/create_and_deploy_a_rails_app.step @@ -70,7 +70,7 @@ message "In Windows, you may need to let Ruby and Rails communicate through your step "Generate a database model" do option "if your prompt doesn't already show that you are (still) in the test_app folder" do - cd test_app + console "cd test_app" end console <<-BASH @@ -90,7 +90,7 @@ end step "Use git" do option "if your prompt doesn't already show that you are (still) in the test_app folder" do - cd test_app + console "cd test_app" end console <<-BASH diff --git a/sites/installfest/get_a_sticker.step b/sites/installfest/get_a_sticker.step index 72fc87a74..9dee8f9c0 100644 --- a/sites/installfest/get_a_sticker.step +++ b/sites/installfest/get_a_sticker.step @@ -1,8 +1,7 @@ +step "Have a volunteer check your tool versions" do message "Find a volunteer and have them watch the next steps." -message "If this works - get a sticker from them for your computer!" - verify "tool installation" do tip "Most of the time, the version numbers don't have to match exactly. In general, if the *first two* numbers match, or if the full number you have is *greater* than the one below, then you're cool." @@ -37,7 +36,13 @@ verify "tool installation" do end -Create the "sticker" application do +message "If this works - proceed to build the sticker app." + +end + +step "Build the sticker app" do + +verify "rails" do section "Change to your home directory" do option "Windows" do @@ -97,6 +102,7 @@ Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem == CreateDrinks: migrated (0.0033s) ========================================== " + console "rails server" result " => Booting WEBrick @@ -265,8 +271,12 @@ You should see the same screen as you did at `http://localhost:3000/drinks` and end +message "If this works -- find a volunteer and show them" + +end + step "Congratulations!" do - message "You got a sticker!" + message "Show a volunteer -- you get a sticker!" end next_step "clean_up" From 1ee416fc88bbe761a16e03580522ce5d436d21d4 Mon Sep 17 00:00:00 2001 From: Alex Chaffee Date: Sun, 2 Sep 2012 10:11:16 -0700 Subject: [PATCH 038/897] explicitly require Site to fix 'rake spec' under Travis --- spec/site_syntax_spec.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/spec/site_syntax_spec.rb b/spec/site_syntax_spec.rb index cf72f4a4c..12b07a245 100644 --- a/spec/site_syntax_spec.rb +++ b/spec/site_syntax_spec.rb @@ -1,7 +1,8 @@ here = File.expand_path File.dirname(__FILE__) require "#{here}/spec_helper" - require "#{here}/../app" +require "site" + require "rack/test" # todo: use a dummy set of sites instead of the real "installfest" and "curriculum" From 56635e3bea1b888850f6825218b89b10a19bd93a Mon Sep 17 00:00:00 2001 From: Alex Chaffee Date: Sun, 2 Sep 2012 10:29:00 -0700 Subject: [PATCH 039/897] 'rake run' should work on Windows now --- Rakefile | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/Rakefile b/Rakefile index ebb90ddec..b08d7d5c3 100644 --- a/Rakefile +++ b/Rakefile @@ -8,10 +8,16 @@ RSpec::Core::RakeTask.new(:spec) do |t| # t.ruby_opts="-w" end -task :run do - exec "rerun -- rackup -s thin" +def rerun cmd, rerun_opts = nil + if Rake::Win32.windows? + exec cmd + else + exec "rerun #{rerun_opts} -- #{cmd}" + end + end -task :present do - exec "rerun --pattern *.deck.md -- rackup -s thin" -end \ No newline at end of file +desc "run the site locally (visit http://localhost:9292" +task :run do + rerun "rackup -s thin" +end From ee22f36647144cb446bd32a37fd8f46f1c33d47e Mon Sep 17 00:00:00 2001 From: Alex Chaffee Date: Sun, 2 Sep 2012 11:00:54 -0700 Subject: [PATCH 040/897] some edits based off comments on the PR page --- CONTRIBUTING.md | 58 ++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 48 insertions(+), 10 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index f6209c58e..468120b0f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -6,17 +6,18 @@ We ask that contributions be made as pull requests via GitHub. If those words are totally foreign to you [see here](#its-my-first-time-on-github-ever-what-do-i-do) - # When Submitting a Pull Request -*Here's a couple tricks to grease the wheels and make it easy for the maintainers -to love you. :heart:* +*Here's a couple of tricks to grease the wheels and make it easy for the +maintainers to love you. :heart:* ## Before You Start! - If you have an existing fork, please make sure it's up to date. It just makes your life easier! If not, make sure you fork *before* cloning, otherwise you'll need to spend some time juggling remotes. + Look at the section "Pull in upstream changes" in GitHub's + [Fork A Repo](https://help.github.com/articles/fork-a-repo) article. - Create a local topic branch before you start working. This branch is going to be named for what you plan to change. `fix-typo-in-slides`, `move-resources`, @@ -32,7 +33,22 @@ to love you. :heart:* - Push to a branch on GitHub. Just like you developed in a local branch, you should push to a branch of your repo on GitHub as well. The `master` branch is best used as a clean copy of the upstream docs repo in case you need to make - some unrelated changes. To push to a branch, use `git push origin pr-branch`. + some unrelated changes. To push to a branch, + if your branch is named "fix-typo-in-slides", + use `git push origin fix-typo-in-slides`. + +## Submitting a Pull Request + +- Read the article ["Using Pull Requests"](https://help.github.com/articles/using-pull-requests) + on GitHub. + +- When you submit a pull request (PR), make sure your topic branch is selected + on the right-hand side of the Pull Request Preview page, like this: + + ![choosing pull request branch](https://github-images.s3.amazonaws.com/help/change-branches.png) + +- Remember, pull requests are submitted *from* your repo, but show up on the + *upstream* repo. ## Discussion and Waiting On A Merge @@ -40,7 +56,21 @@ to love you. :heart:* - Not every pull request will be merged as is. - Not every pull request will be merged at all. - If a pull request falls significantly behind master, we may ask that you close -it, rebase your changes off of master, and submit a new pull request. + it, rebase your changes off of master, and submit a new pull request. +- feel free to "ping" the team by adding a short comment to your pull request + if it's been more than a week with no reply + +## After your merge has been accepted + +- go back to your fork and keep it up to date, e.g. + + git checkout master + git pull upstream master + git push origin master + +- you can also delete your topic branch if you like + + git branch -dr fix-typo-in-slides # It's My First Time on GitHub Ever What Do I Do? @@ -52,13 +82,17 @@ be fine. First, you'll need a GitHub account, which is totally free. You can sign up [here](https://github.com/signup/free). +Next, browse the [GitHub Help site](https://help.github.com). + You'll want to read about [forking](https://help.github.com/articles/fork-a-repo) and then make your own fork of [railsbridge/docs](https://github.com/railsbridge/docs). Once you've done so, you can clone it and get started by reading up on [what to do when submitting a pull request](#when-submitting-a-pull-request), read up on [pull requests](https://help.github.com/articles/using-pull-requests) -themselves. If this is all too much, or you'd like a helping hand, +themselves. + +If this is all too much, or you'd like a helping hand, [@nuclearsandwich](https://github.com/nuclearsandwich) has volunteered to help anyone who wants to contribute do so. His email is behind that profile link. @@ -69,7 +103,11 @@ If you haven't taken the time to go through the Git Immersion lab. Do it. It's worth it no matter how much git-fu you have. http://gitimmersion.com -Well. I hope you're all sick of me talking, but I think I addressed -everything in the thread with respect to git, contributors, and github -to the best of my knowledge. Let me know if you think I'm wild crazy or -have a better suggestion. I'm always on the lookout. +Also, [Pro Git](http://git-scm.com/book) is a great (and free!) book about Git. + +We apologize for how long this document is! Hopefully it addressed +most of your concerns about git, contributing, and github. Feel free +to ask more questions on the +[railsbridge-workshops](http://groups.google.com/group/railsbridge-workshops) +mailing list. And we're open to any suggestions about improvements, +including to this document. From 46532322da32e37f618ff1912255bea54ca71ffb Mon Sep 17 00:00:00 2001 From: Alex Chaffee Date: Sun, 2 Sep 2012 11:11:40 -0700 Subject: [PATCH 041/897] fix minor typo (thanks @kerrizor) --- Rakefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Rakefile b/Rakefile index b08d7d5c3..fe4585820 100644 --- a/Rakefile +++ b/Rakefile @@ -17,7 +17,7 @@ def rerun cmd, rerun_opts = nil end -desc "run the site locally (visit http://localhost:9292" +desc "run the site locally (visit http://localhost:9292)" task :run do rerun "rackup -s thin" end From 7f7291d5c401b264710b33101284c5e597a7b95c Mon Sep 17 00:00:00 2001 From: "Jessie A. Young" Date: Wed, 12 Sep 2012 16:04:15 -0700 Subject: [PATCH 042/897] added exercises to ruby for beginners slides --- .../_border-radius.scssc | Bin 0 -> 6850 bytes sites/workshop/ruby_for_beginners.deck.md | 118 +++++++++++++++--- 2 files changed, 104 insertions(+), 14 deletions(-) create mode 100644 .sass-cache/33a0e9ccf6a493b966dc0182dcbaccb60465a006/_border-radius.scssc diff --git a/.sass-cache/33a0e9ccf6a493b966dc0182dcbaccb60465a006/_border-radius.scssc b/.sass-cache/33a0e9ccf6a493b966dc0182dcbaccb60465a006/_border-radius.scssc new file mode 100644 index 0000000000000000000000000000000000000000..32f892b9abb1b0b632d2d6ddadeeeac07927ad76 GIT binary patch literal 6850 zcmb`L-&5O05XYHL$2M}}2$Dd6BnU&&(AG5k@FYlWN2Top5AAdsCNF+qWcwU$VoM%L zl+aB6nEt0dtz_Tnw3ZIpe$#rrpWUy%chdRz;PBwEZM-`39qQg1XCw@7_q8r@21keO zetR%DI&Hss-Ea5E@ew&W={w}q85|C}Z%?`da;kk@^URHRP7s*pg-?iS{_T0;pI)D6 zX2b4X(P7^wZl~dy&%~rZ=qKv_Mg~!0-PCN?8IkkmYS;7o#BcddpI!$Qv-0}|`_Az{ z1f5E!>X}<{iFZApjziOY@A%Z|4oS_boj0}UN3>!sUzlt5wadx`J+#v ztM-)>TuzL85#@STwI1Ezt;7PMH*O8dAe{I#0&Cz+7S&F-IP+G z4Fm)+4oa;U?qt9zTX_@VKrF>cS-I3aTL=eYoU@(waw*JH1OqXS$u*dY2c98}IHuEe z$<5CbH+Q`-^hOKYmtRVLo>5+9njK^sh;hYsMMuwpY9c6zaa2=8C7zCnciNzL5fa2w zq^Yatm}w6oL5!1jxUc5`y+A+^9>Db{xg3u2s=T1hE;15tU`{vJU=EQON&U23Wpf`S-FH8Tb;MLIx8 z5aXmG%c)r62LuzxbhA#1Z|w@FsN-lJcAEW2Zg1ED zm7N=tqZEAMS&!j#ko(kQD^&q>0>Z6L>&MqRJ(5Iwl8BZu!JRgQ>H<4|D|HUnlln!T zQWNJ?Ld4fPeItppA#IwaO_ki&f<0fY`Jbfb;d-(9{462jYn}cm>9d~bGuH`r>YcoU zi<&fNQr~brk!B&{|0)sUYn}d*D8rU^NJitK6SDuHzWT3fkD`C4jL9Mc0~xROqNfSn zH$H2IAw56i=ZtB@DHcm$AMv4wCa{d@^8-&X__jYIfpJo8@*ciuT6zxY^qM!1l*)@{ z2FuSxG?@GoAk`GLD5xojQk2QnnVE^oB<`z4I*GZ`P@)5(269qoC)L3Rh6{L zO-+l1r)Jd3zHaB~mCcrB6BR2=#x#q66m4x%Wl^=_%7ShR$y~X-g8n5mJfa;)kgHotDO}vH#?&so}G~pRu$~eDdlYH_J-GeGT9rY)j!FNHfk(Yg!9}C z97}_zgL=&@KXDLN+tM;EOtOn5$U2ixHg6Zgo5ZB(OdXJ1>^9`J`$dCO9Q(6Ad4B&7 Dsw7b9 literal 0 HcmV?d00001 diff --git a/sites/workshop/ruby_for_beginners.deck.md b/sites/workshop/ruby_for_beginners.deck.md index 5a2b92ad3..3f1b07d65 100644 --- a/sites/workshop/ruby_for_beginners.deck.md +++ b/sites/workshop/ruby_for_beginners.deck.md @@ -77,6 +77,9 @@ > my_other_variable = "hi" => "hi" +* Setting a variable equal to something is called "assignment." In the above examples, we are assigning my_variable to 5 and my_other_variable to "hi." +* What types of information can we hold in a variable? (see next slide for answers) + !SLIDE ## Many types of information @@ -90,14 +93,48 @@ !SLIDE ## Strings (text) +* "This is a string." +* This is not a string. + + +### exercise +* Create variables called first_name, last_name, and favorite_color. +* Assign the variables to strings. +* Can you print out a sentence that reads "Hi, my name is (first name) (last name) and my favorite color is (favorite color)." with these variables? + * Hint: you can use a "+" to add strings together. + !SLIDE ## Numbers +* Numbers without decimal points are called **integers** and numbers with decimal points are called **floats**. +* Examples of integers: + * 0 + * -105 + * 898989898 + * 2 +* Examples of floats: + * .0.0 + * -105.56 + * .33 + * .00004 +* You can perform operations on both types of numbers with these characters: +, -, /, * + +### exercises +* Try dividing an integer by an integer. Try dividing an integer by a float. How are the results different? +* Create two integer variables called num1 and num2 and assign them your favorite numbers. +* Next, compute the sum, difference, quotient, and product of these two numbers and assign these values to variables called sum, difference, quotient, and product, respectively. + !SLIDE ## Collections * Arrays + * In the following slides, we will cover the following topics: + * Definition of an Array + * Array indexing + * Array methods + * Hashes + * We will cover what a hash is and how you can use it. !SLIDE ## Arrays @@ -107,6 +144,10 @@ An Array is a list of objects. >> fruits = ["kiwi", "strawberry", "plum"] => ["kiwi", "strawberry", "plum"] +### exercises +* Make your own array and name it grocery_list. +* Include at least 5 items from your grocery list in the array. + !SLIDE # Array Indexing @@ -119,6 +160,10 @@ Ruby starts counting at zero. >> fruits[3] => nil +### exercises +* Still have your grocery_list array? Good, because we're going to use it in this exercise. +* What is at index zero in your grocery_list array? How about index 5? Guess the answers and then use the syntax in the examples above (eg: fruits[0]) to see if your guesses were right. + !SLIDE # Array methods @@ -126,7 +171,16 @@ Ruby starts counting at zero. * push, pop * shift, unshift - fruits.first #=> "kiwi" +### exercises +* Assign the first item in your grocery_list array to a variable named "first". +* Assign the last item in your grocery_list array to a variable named "last". +* Use the pop method to take the last item off of your grocery_list array. +* Has the value of your "last" variable changed? Why? +* Use the shift method to take off the first item in your grocery_list array. +* Has the value of your "first" variable changed? Why? +* Use the unshift and push methods to return your grocery_list array to its original state. + * Hint: it will look something like this: grocery_list.push("bananas") + !SLIDE # Hashes @@ -141,6 +195,14 @@ Ruby starts counting at zero. >> states["CA"] => "California" +### exercises +* When do you think you would use a hash vs an array? +* Define a Hash variable called my_info which has the following keys: + * :first_name + * :last_name + * :hometown + * :favorite_food + !SLIDE ## Operators @@ -155,6 +217,30 @@ Ruby starts counting at zero. > my_fruits = my_fruits - ["lychee"] => ["kiwi", "strawberry", "plum"] +* You can perform operations on variables and arrays the same way you perform operations on numbers. + +### exercises + +* Create an array called "vegetables" than contains 3 vegetables you like and 1 vegetable you don't like. +* Using the vegetables array, create an array called "my_vegetables" that contains only the vegetables you like. +* Extra: can you use the first two arrays to create a third array called "your_vegetables" that only contains the vegetable you don't like? + +!SLIDE +## Methods + +### things that do stuff. + +* "If objects (like strings, integers, and floats) are the nouns in the Ruby language, then methods are like the verbs." - Chris Pine's "Learn to Program" +* Methods are called (used) with a "." + * Example: 5.to_s (to_s is the method) +* As it turns out, 5 + 5 is really just a shortcut way of writing 5.+ 5. +* Each data type (string, integer, float) has a set of built in methods. You can see all of the string methods here: http://ruby-doc.org/core-1.9.3/String.html (there are tons - don't worry about memorizing them, just good to know where you can go to find out more) + +### exercises +* Create a String variable called old_string and assign it the value "Ruby is cool" +* Use String methods to modify the old_string variable so that it is now "LOOC SI YBUR" and assign this to another variable called new_string. + * Hint: look at the string methods "upcase" and "reverse" + !SLIDE # Loops @@ -172,6 +258,11 @@ The hard way: plum => nil +### exercises +* Create an array of 4 places you would like to visit. +* Print out each of these places. + * Example: "I would like to visit " + places[0] + !SLIDE # Loops @@ -179,24 +270,19 @@ The hard way: The easy way: - >> fruits.each {|f| puts f} + >> fruits.each do |f| + ?> puts f + >> end + kiwi strawberry plum => ["kiwi", "strawberry", "plum"] -!SLIDE -# Loops (multi-line) - -The easy way, with "do...end" rather than "{...}" - - >> fruits.each do |f| - ?> puts f - >> end - kiwi - strawberry - plum - => ["kiwi", "strawberry", "plum"] +### exercises +* Still have that array of places you'd like to visit? +* Print out each of these places with a loop. +* Wasn't that better? !SLIDE ## Conditionals @@ -209,6 +295,10 @@ The easy way, with "do...end" rather than "{...}" plum => ["kiwi", "strawberry", "plum"] +### exercises +* Create an array called "class" that contains the names of some of the people in your Railsbridge class. Make sure you include your own name. +* Using your class array, create a conditional that prints "My Name is (your name)" for your name only. + !SLIDE subsection # Command-Line Programs From 5ccdd2f13d31d1a162db9ffc049c08d2c3deef4a Mon Sep 17 00:00:00 2001 From: Alex Chaffee Date: Thu, 13 Sep 2012 00:55:56 -0700 Subject: [PATCH 043/897] work better under Windows --- Gemfile | 2 +- Rakefile | 11 ++++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/Gemfile b/Gemfile index d4349e023..a348e634b 100644 --- a/Gemfile +++ b/Gemfile @@ -17,6 +17,6 @@ group :development do gem "rerun" gem "rake" gem "rack-test" - gem "files" + gem "files", ">=0.3.0" gem "bourbon" # do 'cd public/css; bourbon update' to get new bourbon end diff --git a/Rakefile b/Rakefile index fe4585820..b508efcb2 100644 --- a/Rakefile +++ b/Rakefile @@ -2,19 +2,24 @@ require 'rspec/core/rake_task' task :default => :spec +def windows? + Rake::Win32.windows? +end + RSpec::Core::RakeTask.new(:spec) do |t| t.pattern = "spec/**/*_spec.rb" - t.rspec_opts = "--color --format d --fail-fast --backtrace" + t.rspec_opts = + "--format d --fail-fast --backtrace" + t.rspec_opts += " --color" if !windows? # t.ruby_opts="-w" end def rerun cmd, rerun_opts = nil - if Rake::Win32.windows? + if windows? exec cmd else exec "rerun #{rerun_opts} -- #{cmd}" end - end desc "run the site locally (visit http://localhost:9292)" From 52bf4b11a0e3a55233d66112c033c3d52394972f Mon Sep 17 00:00:00 2001 From: Alex Chaffee Date: Wed, 12 Sep 2012 18:19:39 -0700 Subject: [PATCH 044/897] use new files gem (works on Windows) --- Gemfile.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index f354eade2..789024520 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -27,7 +27,7 @@ GEM eventmachine (1.0.0.rc.4-x86-mingw32) file-tail (1.0.8) tins (~> 0.3) - files (0.2.1) + files (0.3.0) json (1.6.6) nokogiri (1.5.2) nokogiri (1.5.2-x86-mingw32) @@ -99,7 +99,7 @@ DEPENDENCIES deckrb (>= 0.3.0) erector (~> 0.9.0.pre1) eventmachine (= 1.0.0.rc.4) - files + files (>= 0.3.0) nokogiri rack-codehighlighter rack-test From 5c163ae59aba266a43aaabf810439f59d357c724 Mon Sep 17 00:00:00 2001 From: Audrey Roy Date: Fri, 21 Sep 2012 19:34:11 -0700 Subject: [PATCH 045/897] Fixed broken Heroku version check step. --- sites/installfest/create_a_heroku_account.step | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sites/installfest/create_a_heroku_account.step b/sites/installfest/create_a_heroku_account.step index 5a004ca57..7f081e787 100644 --- a/sites/installfest/create_a_heroku_account.step +++ b/sites/installfest/create_a_heroku_account.step @@ -25,7 +25,7 @@ step "Install the heroku gem" do end verify do - console "heroku -v" + console "heroku version" result "2.26.7 or higher" end end @@ -49,4 +49,4 @@ tip "If you have further Heroku issues" do message "try following [these directions](http://support.heroku.com/forums/43117/entries/32505) to install (or re-install) the `heroku` client." end -next_step "create_and_deploy_a_rails_app" \ No newline at end of file +next_step "create_and_deploy_a_rails_app" From 96d38161dcd80c447531c978c758e3d9cf7622c7 Mon Sep 17 00:00:00 2001 From: evilzero Date: Fri, 12 Oct 2012 19:18:24 -0700 Subject: [PATCH 046/897] Update sites/installfest/osx_lion.step --- sites/installfest/osx_lion.step | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sites/installfest/osx_lion.step b/sites/installfest/osx_lion.step index ef860776e..ca62f7a0e 100644 --- a/sites/installfest/osx_lion.step +++ b/sites/installfest/osx_lion.step @@ -38,7 +38,7 @@ step "Install Rails" do console "gem install rails" verify do console "rails -v" - result "Rails 3.2.6" + result "Rails 3.2.8" end end From f15df975273e22f4f353f606035326375119ffa4 Mon Sep 17 00:00:00 2001 From: evilzero Date: Fri, 12 Oct 2012 20:29:58 -0700 Subject: [PATCH 047/897] Update sites/installfest/clean_up.step --- sites/installfest/clean_up.step | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sites/installfest/clean_up.step b/sites/installfest/clean_up.step index f1b71a253..6ac286c6d 100644 --- a/sites/installfest/clean_up.step +++ b/sites/installfest/clean_up.step @@ -4,7 +4,7 @@ Ok, there is one more step. You won't be using the test applications in the work MARKDOWN step "Delete the apps from Heroku" do - message "Go to , login if needed, and then click on your first (lyrical) app name. Scroll to the bottom of the page and click Destroy App. Confirm, and then repeat for the second app." + message "Go to , login if needed, and then click on your first (lyrical) app name. Click on settings. Scroll to the bottom of the page and click Delete App. Enter app name, confirm, and then repeat for the second app." end step "Delete the test_app from your computer" do From e5cea6fc15d908f11afa5f92cbc5737109c97c0f Mon Sep 17 00:00:00 2001 From: Elle Yoko Suzuki Date: Mon, 15 Oct 2012 23:40:19 -0700 Subject: [PATCH 048/897] fixed various non-code typos, grammar items, styling --- sites/curriculum/CRUD_with_scaffolding.step | 20 +++++++++---------- .../add_the_project_to_the_git_repo.step | 2 +- .../curriculum/commit_and_push_to_heroku.step | 4 ++-- sites/curriculum/creating_a_migration.step | 10 +++++----- sites/curriculum/deploy_to_heroku.step | 4 ++-- sites/curriculum/getting_started.step | 4 ++-- .../hooking_up_votes_and_topics.step | 4 ++-- .../make_the_topic_title_a_link.step | 2 +- sites/curriculum/ruby_language.step | 4 ++-- .../running_your_application_locally.step | 6 +++--- .../curriculum/setting_the_default_page.step | 2 +- sites/curriculum/tools.step | 6 +++--- 12 files changed, 34 insertions(+), 34 deletions(-) diff --git a/sites/curriculum/CRUD_with_scaffolding.step b/sites/curriculum/CRUD_with_scaffolding.step index d08dcdfa0..3f7df617d 100644 --- a/sites/curriculum/CRUD_with_scaffolding.step +++ b/sites/curriculum/CRUD_with_scaffolding.step @@ -9,7 +9,7 @@ goals { * **U**pdate existing records * **D**estroy or delete records - Because these 4 actions (CRUD) are so common rails includes the scaffold command to make creating them easier. + Because these 4 actions (CRUD) are so common, rails includes the scaffold command to make creating them easier. MARKDOWN } @@ -39,7 +39,7 @@ steps { step { message <<-MARKDOWN * Click on "back" - * You should see the topic list again, this time with your new topic listed + * You should see the topic list again, this time with your new topic listed: ![list with topic](img/Seattle_list_with_topic.png) @@ -57,10 +57,10 @@ explanation { Let's take a closer look at some of the files rails created: * `app/models/topic.rb` - * This file contains code for our topic model. If you look at it - its nearly blank. Creating, reading, updating, and deleting - records is built into rails. - * If you've written HTML before many lines in the views should + * This file contains code for our topic model. If you look at it, + it's nearly blank. Creating, reading, updating, and deleting + records are built into rails. + * If you've written HTML before, many lines in the views should look familiar. Rails views are HTML with some extra code added to display data from the database. @@ -71,13 +71,13 @@ explanation { * `app/views/topics/index.html.erb` * This is the code for the page that lists all the topics. - * Index is the name given to the "default" page for a website or a - section of a website. When you navigate to + * Index is the name given to the "default" page for a web site or a + section of a web site. When you navigate to http://localhost:3000/topics the topics index page is what is sent to your computer. * `app/views/topics/show.html.erb` - * This the page you get when you click the "show" link on the + * This is the page you get when you click the "show" link on the "Listing topics" page. * `app/views/topics/new.html.erb` @@ -96,7 +96,7 @@ explanation { * Challenge question: Can you find the line of code in new.html.erb and edit.html.erb that makes the form partial appear? - * app/controllers/topics_controller.rb + * `app/controllers/topics_controller.rb` * This is the controller file that rails created as part of the scaffold * If you look you'll see a method (a line beginning with def) for each of the views listed above (except diff --git a/sites/curriculum/add_the_project_to_the_git_repo.step b/sites/curriculum/add_the_project_to_the_git_repo.step index c3a7018b3..047bdb558 100644 --- a/sites/curriculum/add_the_project_to_the_git_repo.step +++ b/sites/curriculum/add_the_project_to_the_git_repo.step @@ -39,7 +39,7 @@ end explanation do message <<-MARKDOWN -By checking your application into git now, you're creating a record of your starting point. Whenever you make a change during today's workshop, we'll add it to git before moving on. This way, if anything ever breaks, or you make a change you don't like. You can use git as an all-powerful "undo" technique. But that only works when you remember to commit early and often! +By checking your application into git now, you're creating a record of your starting point. Whenever you make a change during today's workshop, we'll add it to git before moving on. This way, if anything ever breaks, or you make a change you don't like, you can use git as an all-powerful "undo" technique. But that only works when you remember to commit early and often! MARKDOWN end diff --git a/sites/curriculum/commit_and_push_to_heroku.step b/sites/curriculum/commit_and_push_to_heroku.step index 1d21e8eb7..db6815e8c 100644 --- a/sites/curriculum/commit_and_push_to_heroku.step +++ b/sites/curriculum/commit_and_push_to_heroku.step @@ -15,12 +15,12 @@ git push heroku master heroku run rake db:migrate SHELL - tip "there is a period after the word add in the first line" + tip "There is a period after the word add in the first line." end step "Check that it worked" do message <<-HEROKU_TOPICS -Open your heroku app in the browser again by typing `heroku open`, then add "topics" to the end of the url. So if your app is called at `http://fierce-meadow-4845.heroku.com/` it should look lile `http://fierce-meadow-4845.heroku.com/topics` +Open your heroku app in the browser again by typing `heroku open`, then add "topics" to the end of the url. So if your app is called at `http://fierce-meadow-4845.heroku.com/` it should look like `http://fierce-meadow-4845.heroku.com/topics` You should see a page that looks shockingly similar to the one you had locally. Test that you can create new topics on Heroku. When you've had enough fun, move on. HEROKU_TOPICS diff --git a/sites/curriculum/creating_a_migration.step b/sites/curriculum/creating_a_migration.step index c5a71c50f..421d15417 100644 --- a/sites/curriculum/creating_a_migration.step +++ b/sites/curriculum/creating_a_migration.step @@ -22,17 +22,17 @@ steps { step { console "rails generate scaffold topic title:string description:text" message <<-MARKDOWN -* `generate scaffold` tells rails to create everything necessary to get up and running with topics -* `topic` tells rails the name of the new model +* `generate scaffold` tells rails to create everything necessary to get up and running with topics. +* `topic` tells rails the name of the new model. * `title:string` says that topics have a title, which is a string. -* `description:text` says that topics have a description which is a "text". (We're befuddled by the difference too). +* `description:text` says that topics have a description which is a "text". (We're befuddled by the difference too.) MARKDOWN message "If you want, take some time to poke around the files listed in this step." } step { console "rake db:migrate" - message "tells rails to update the database to include a table for our new model" + message "This tells rails to update the database to include a table for our new model." } } @@ -60,7 +60,7 @@ explanation { h3 "Controller" message <<-MARKDOWN * acts as the glue between the models and the views -* combines data from multple models +* combines data from multiple models * summarizes and filters data MARKDOWN diff --git a/sites/curriculum/deploy_to_heroku.step b/sites/curriculum/deploy_to_heroku.step index c3cb5571c..e94a7b1b9 100644 --- a/sites/curriculum/deploy_to_heroku.step +++ b/sites/curriculum/deploy_to_heroku.step @@ -43,7 +43,7 @@ end git add . git commit -m "Changed Gemfile for heroku" SHELL - tip "there is a period after the word add in the third line" + tip "There is a period after the word add in the third line." end step "Push changes to heroku" do @@ -66,7 +66,7 @@ explanation { which is made for the type of database that heroku uses. * Bundler is how Ruby projects keep track of the gems that they use. We told - bundler what we wanted to use in the `Gemfile`, now we need make sure those + bundler what we wanted to use in the `Gemfile`, now we need to make sure those gems are installed. Since we don't have the type of database heroku does, we skip the production gems. Don't worry though! Bundler still logs them so Heroku will install them when they get your code. diff --git a/sites/curriculum/getting_started.step b/sites/curriculum/getting_started.step index ecda943f1..a6c59a6b9 100644 --- a/sites/curriculum/getting_started.step +++ b/sites/curriculum/getting_started.step @@ -3,7 +3,7 @@ img :src => "img/Start_page.png", :alt => "Start Page" goals do goal "Create Your New Application" -message "Let's get started! By the end of this step, we'll have brand-spankin'-new (empty) rails app." +message "Let's get started! By the end of this step, we'll have a brand-spankin'-new (empty) rails app." end steps do @@ -64,7 +64,7 @@ steps do } tr { td " public/" - td " The only folder seen to the world as-is. This is where your images, JavaScript, stylesheets (CSS), and other static files go" + td " The only folder seen to the world as-is. This is where your images, JavaScript, stylesheets (CSS), and other static files go." } end diff --git a/sites/curriculum/hooking_up_votes_and_topics.step b/sites/curriculum/hooking_up_votes_and_topics.step index 36f59ad5b..53371d195 100644 --- a/sites/curriculum/hooking_up_votes_and_topics.step +++ b/sites/curriculum/hooking_up_votes_and_topics.step @@ -10,7 +10,7 @@ goals { steps { step { - message "Edit app/models/topic.rb so that it looks like this:" + message "Edit `app/models/topic.rb` so that it looks like this:" source_code :ruby, <<-RUBY class Topic < ActiveRecord::Base @@ -21,7 +21,7 @@ end } step { - message "Edit app/models/vote.rb so that it looks like this:" + message "Edit `app/models/vote.rb` so that it looks like this:" source_code :ruby, <<-RUBY class Vote < ActiveRecord::Base attr_accessible :topic_id diff --git a/sites/curriculum/make_the_topic_title_a_link.step b/sites/curriculum/make_the_topic_title_a_link.step index 34ea97546..dade9ad9d 100644 --- a/sites/curriculum/make_the_topic_title_a_link.step +++ b/sites/curriculum/make_the_topic_title_a_link.step @@ -1,7 +1,7 @@ goals { message "Your friends recommended two changes for the site:" goal "Don't show the description on the list page" - goal "Make the title a link and when its clicked show the description" + goal "Make the title a link and when it's clicked show the description" } steps { diff --git a/sites/curriculum/ruby_language.step b/sites/curriculum/ruby_language.step index 624cc1168..00ab255d2 100644 --- a/sites/curriculum/ruby_language.step +++ b/sites/curriculum/ruby_language.step @@ -29,7 +29,7 @@ my_variable + 2 my_variable * 3 RUBY - message "Ruby remembers that we are holding a `5` with the words `my_variable` and can use that `5` do to math." + message "Ruby remembers that we are holding a `5` with the words `my_variable` and can use that `5` to do math." end @@ -43,7 +43,7 @@ my_variable * 3 step do console 'fruits = ["kiwi", "strawberry", "plum"]' - message "Variables can also hold more than one value. Here were using the variable fruits to hold a collection of fruit names. This type of collection is called an array." + message "Variables can also hold more than one value. Here we're using the variable `fruits` to hold a collection of fruit names. This type of collection is called an array." end diff --git a/sites/curriculum/running_your_application_locally.step b/sites/curriculum/running_your_application_locally.step index 940af802f..1bc768993 100644 --- a/sites/curriculum/running_your_application_locally.step +++ b/sites/curriculum/running_your_application_locally.step @@ -14,7 +14,7 @@ steps do end step do - message "When at the terminal with your running rails server, Type Control+C to stop rails server, you can do this now." + message "When at the terminal with your running rails server, type Control+C to stop rails server. You can do this now." result <<-STOPPING_RAILS_SERVER ^C[2012-03-31 08:33:11] INFO going to shutdown ... [2012-03-31 08:33:11] INFO WEBrick::HTTPServer#start done. @@ -25,8 +25,8 @@ end explanation do message "`bundle` installs software your application needs and prepares it to run." - message "`rails server` ran your application locally just like heroku will be running it on their servers." - message "This provides a very simple means to see your changes before you commit and push them to heroku." + message "`rails server` ran your application locally just like Heroku will be running it on their servers." + message "This provides a very simple means to see your changes before you commit and push them to Heroku." message "Control+C is a way of closing or cancelling terminal programs. Since rails server runs forever, you need to interrupt it with Control+C." end diff --git a/sites/curriculum/setting_the_default_page.step b/sites/curriculum/setting_the_default_page.step index 1960e3c4a..2a8cef4d5 100644 --- a/sites/curriculum/setting_the_default_page.step +++ b/sites/curriculum/setting_the_default_page.step @@ -52,7 +52,7 @@ explanation { possible URLs. To explore the URLs in more detail we can use the terminal. - At the terminal type `rake routes` you should get something that + At the terminal type `rake routes`. You should get something that looks like this: $ rake routes diff --git a/sites/curriculum/tools.step b/sites/curriculum/tools.step index 88744f815..11a4775c6 100644 --- a/sites/curriculum/tools.step +++ b/sites/curriculum/tools.step @@ -2,7 +2,7 @@ message <<-MARKDOWN ## Other Tools to help you learn Ruby ### ri -ri is a tool to look up ruby documentation. It lives on your computer, so if you're in a plane or underground bunker and can't get to google, all the information right within the terminal! If you do prefer the internet, you can get the same information at [ruby-doc.org](http://ruby-doc.org). +ri is a tool to look up ruby documentation. It lives on your computer, so if you're in a plane or underground bunker and can't get to google, all the information is right within the terminal! If you do prefer the internet, you can get the same information at [ruby-doc.org](http://ruby-doc.org). $ ri String.split = String.split @@ -27,8 +27,8 @@ important "If running ri doesn't work and you've installed ruby using rvm, try r message <<-MARKDOWN You can do a lot with it: -* `ri Class` -- looks up the class documentation and shows all the methods available. -* `ri Class.method` -- looks up a specific method on a class or module. +* `ri Class` -- looks up the class documentation and shows all the methods available +* `ri Class.method` -- looks up a specific method on a class or module * `ri method` -- searches all classes for matching methods ### irb From b8b673a74def5d87941662815568d74d55f0c13e Mon Sep 17 00:00:00 2001 From: Travis Grathwell Date: Sun, 14 Oct 2012 23:20:31 -0700 Subject: [PATCH 049/897] Moved Heroku deployment into a separate page Previously, users were prompted to deploy to Heroku four times in the normal Railsbridge flow. Now, users are periodically prompted to go to a separate page that instructs them on how to deploy to Heroku if desired. They can choose to visit this page as often or as seldomly as they like. --- lib/step.rb | 51 ++++++++++-------- sites/curriculum/CRUD_with_scaffolding.step | 4 +- sites/curriculum/allow_people_to_vote.step | 4 +- .../clean_up_links_on_the_topics_list.step | 4 +- .../curriculum/commit_and_push_to_heroku.step | 40 -------------- .../commit_and_push_to_heroku_again.step | 22 -------- .../commit_and_push_to_heroku_yet_again.step | 21 -------- sites/curriculum/credits_and_next_steps.step | 6 +++ ...o_heroku.step => deploying_to_heroku.step} | 52 +++++++++++++------ .../running_your_application_locally.step | 4 +- 10 files changed, 85 insertions(+), 123 deletions(-) delete mode 100644 sites/curriculum/commit_and_push_to_heroku.step delete mode 100644 sites/curriculum/commit_and_push_to_heroku_again.step delete mode 100644 sites/curriculum/commit_and_push_to_heroku_yet_again.step rename sites/curriculum/{deploy_to_heroku.step => deploying_to_heroku.step} (59%) diff --git a/lib/step.rb b/lib/step.rb index b3e49a187..ce1fa6aca 100644 --- a/lib/step.rb +++ b/lib/step.rb @@ -83,6 +83,9 @@ class Step < Erector::Widget .explanation>h1 { background-color: #C8FFC9; } +.deploying>h1 { + background-color: #B0DEE7; +} .console > pre { border: 4px solid #dde; @@ -149,6 +152,15 @@ def explanation end end + def consider_deploying + div :class => "deploying" do + h1 "Deploying" + blockquote do + message "Before the next step, you could try deploying your app to Heroku!" + link 'deploying_to_heroku' + end + end + end def step name = nil, options = {} num = next_step_number @@ -160,13 +172,7 @@ def step name = nil, options = {} prefix "Step #{num}: " text name end - if block_given? - @step_stack.push 0 - blockquote do - yield - end - @step_stack.pop - end + _render_inner_content &Proc.new if block_given? end end @@ -190,13 +196,14 @@ def next_step name end end + def situation name + h1 name + _render_inner_content &Proc.new if block_given? + end + def choice name = "between..." step "Choose #{name}" do - blockquote do - @step_stack.push 0 - yield - @step_stack.pop - end + _render_inner_content &Proc.new if block_given? end end @@ -207,14 +214,7 @@ def option name span "Option #{num}: " text name end - if block_given? - blockquote do - @step_stack.push 0 - yield # if block_given? - @step_stack.pop - end - end - + _render_inner_content &Proc.new if block_given? end def section text @@ -304,5 +304,14 @@ def source_code *args src = "\n:::#{lang}\n#{src}" if lang pre src, :class => "code" end -end + private + + def _render_inner_content + blockquote do + @step_stack.push 0 + yield + @step_stack.pop + end + end +end diff --git a/sites/curriculum/CRUD_with_scaffolding.step b/sites/curriculum/CRUD_with_scaffolding.step index 3f7df617d..55b8d2cb6 100644 --- a/sites/curriculum/CRUD_with_scaffolding.step +++ b/sites/curriculum/CRUD_with_scaffolding.step @@ -104,4 +104,6 @@ explanation { MARKDOWN } -next_step "commit_and_push_to_heroku" +consider_deploying + +next_step "voting_on_topics" diff --git a/sites/curriculum/allow_people_to_vote.step b/sites/curriculum/allow_people_to_vote.step index 6d6081890..1b4e65805 100644 --- a/sites/curriculum/allow_people_to_vote.step +++ b/sites/curriculum/allow_people_to_vote.step @@ -69,4 +69,6 @@ explanation { MARKDOWN } -next_step "commit_and_push_to_heroku_again" +consider_deploying + +next_step "setting_the_default_page" diff --git a/sites/curriculum/clean_up_links_on_the_topics_list.step b/sites/curriculum/clean_up_links_on_the_topics_list.step index 904f2b08e..2b3fb3b24 100644 --- a/sites/curriculum/clean_up_links_on_the_topics_list.step +++ b/sites/curriculum/clean_up_links_on_the_topics_list.step @@ -39,4 +39,6 @@ explanation { MARKDOWN } -next_step "commit_and_push_to_heroku_yet_again" +consider_deploying + +next_step "credits_and_next_steps" diff --git a/sites/curriculum/commit_and_push_to_heroku.step b/sites/curriculum/commit_and_push_to_heroku.step deleted file mode 100644 index db6815e8c..000000000 --- a/sites/curriculum/commit_and_push_to_heroku.step +++ /dev/null @@ -1,40 +0,0 @@ -goals { - - goal "We just added a whole new feature. Let's push it to heroku so our friends can play with it." - -} - -steps { - - step "Redeploy" do - -console <<-SHELL -git add . -git commit -m "Added topics" -git push heroku master -heroku run rake db:migrate -SHELL - - tip "There is a period after the word add in the first line." - end - - step "Check that it worked" do - message <<-HEROKU_TOPICS -Open your heroku app in the browser again by typing `heroku open`, then add "topics" to the end of the url. So if your app is called at `http://fierce-meadow-4845.heroku.com/` it should look like `http://fierce-meadow-4845.heroku.com/topics` - -You should see a page that looks shockingly similar to the one you had locally. Test that you can create new topics on Heroku. When you've had enough fun, move on. - HEROKU_TOPICS - - end -} - -explanation { - message <<-MARKDOWN - * We've done the 'git' steps before, so we won't go over that again... - - * `heroku run rake` executes a rake task on your server, in this case, - `db:migrate`, just like you did locally. - MARKDOWN -} - -next_step "voting_on_topics" diff --git a/sites/curriculum/commit_and_push_to_heroku_again.step b/sites/curriculum/commit_and_push_to_heroku_again.step deleted file mode 100644 index 84e084ae0..000000000 --- a/sites/curriculum/commit_and_push_to_heroku_again.step +++ /dev/null @@ -1,22 +0,0 @@ -goals { - goal "We just made some awesome changes. Let's push them so our friends can play with it." -} - -steps { - console <<-SHELL -git add . -git commit -m "Added votes" -git push heroku master -heroku run rake db:migrate - SHELL -} - -explanation { - - message " - We commit our changes, push them out and run the - remote migration... By this time it should be fairly old hat. - " -} - -next_step "setting_the_default_page" diff --git a/sites/curriculum/commit_and_push_to_heroku_yet_again.step b/sites/curriculum/commit_and_push_to_heroku_yet_again.step deleted file mode 100644 index 0eb71b9bd..000000000 --- a/sites/curriculum/commit_and_push_to_heroku_yet_again.step +++ /dev/null @@ -1,21 +0,0 @@ -goals { - goal "Push to heroku, again" -} - -steps { - console <<-SHELL -git add . -git commit -m "Made stuff look prettier" -git push heroku master - SHELL -} - -explanation { - message " - Nothing new here... Except... _**you're done!!!**_ Congratulations, you just \"finished\" your first rails app! - - (They're never _really_ ever finished... have fun tweaking it!) - " -} - -next_step "credits_and_next_steps" diff --git a/sites/curriculum/credits_and_next_steps.step b/sites/curriculum/credits_and_next_steps.step index da87806c2..2f68c4087 100644 --- a/sites/curriculum/credits_and_next_steps.step +++ b/sites/curriculum/credits_and_next_steps.step @@ -1,3 +1,9 @@ +message < '#first-time' + span ". Otherwise, start at " + a 'Every time', :href => '#every-time' + span "." end -steps do - +a :name => 'first-time' +situation "First-time setup" do step "Create a heroku application" do console "heroku create" - message "`heroku create` registers a new application on heroku's system." + message "`heroku create` registers a new application on heroku's system. You should see some output including your new app's URL." end step "Edit the Gemfile" do @@ -45,20 +48,42 @@ git commit -m "Changed Gemfile for heroku" SHELL tip "There is a period after the word add in the third line." end +end + +a :name => 'every-time' +situation "Every time" do + step "Commit any pending changes to git" do + message "Heroku will only receive the files we've committed into our local git repository. So we need to make sure all changed files have been committed." + console "git status" + message "`git status` shows you any pending changes you've created. If it has no output, you're already ready to deploy! Otherwise..." + + console <<-SHELL +git add . +git commit -m "Some helpful message for your future self" + SHELL + message "Your commit reference should reference whatever your outstanding changes are: something like 'added votes to the topics index'." + end step "Push changes to heroku" do console "git push heroku master" message "This takes all changes you've committed locally and pushes them to heroku." end + step "Run database migrations on Heroku" do + console "heroku run rake db:migrate" + message "This tells Heroku to run your migrations on its database, like running rake db:migrate locally. Since Heroku's database is separate from the one on your computer, it needs to be updated every time you make database changes" + end + step "Visit your application" do console "heroku open" message "This opens the new application in your browser." end end -explanation { +explanation do message <<-MARKDOWN + First, we had to do some work to make Heroku happy with our application. This required updating the Gemfile and bundling. + * The Gemfile is a list of all the Ruby libraries your application needs. What we've declared here is that we want to use the `sqlite3` library while we're developing on our computer (the development group) but when @@ -72,15 +97,12 @@ explanation { Heroku will install them when they get your code. MARKDOWN - message "While I realize that at this point this isn't all that exciting, the point is that it doesn't get more difficult than this as we add more functionality to the application. Your typical workflow will look like:" + message "You should be able to deploy your application any time it's in a good, working state. Your typical workflow will look like:" img :src => "img/workflow.png", :alt => "workflow", :style => "border: none" - ol { + ol do li { message "Add or change some code" } li { message "Commit your changes (`git commit`)" } - li { message "Deploy your changes (`git push heroku`)" } li { message "(repeat)" } - } - message "and boom! Your changes are live!" -} - -next_step "creating_a_migration" + end + message "Any time your changes are committed, you should feel free to `git push heroku master` and boom! Your changes are live!" +end diff --git a/sites/curriculum/running_your_application_locally.step b/sites/curriculum/running_your_application_locally.step index 1bc768993..15290d486 100644 --- a/sites/curriculum/running_your_application_locally.step +++ b/sites/curriculum/running_your_application_locally.step @@ -30,4 +30,6 @@ explanation do message "Control+C is a way of closing or cancelling terminal programs. Since rails server runs forever, you need to interrupt it with Control+C." end -next_step "deploy_to_heroku" +consider_deploying + +next_step "creating_a_migration" From ac7d1bdc9a23de8c8741094f23e25dd1969e6b4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steven!=20Ragnaro=CC=88k?= Date: Fri, 2 Nov 2012 18:56:49 -0700 Subject: [PATCH 050/897] Update Homebrew installation url. --- sites/installfest/install_homebrew.step | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sites/installfest/install_homebrew.step b/sites/installfest/install_homebrew.step index 5521b7d90..aca9aa903 100644 --- a/sites/installfest/install_homebrew.step +++ b/sites/installfest/install_homebrew.step @@ -1,5 +1,5 @@ -console %q{/usr/bin/ruby -e "$(/usr/bin/curl -fksSL https://raw.github.com/mxcl/homebrew/master/Library/Contributions/install_homebrew.rb)"} +console %q{ruby -e "$(curl -fsSkL raw.github.com/mxcl/homebrew/go)"} important "If that doesn't work, visit and follow the instructions there." From e3c67982e2c40f7d3a775728fed5127032a7677b Mon Sep 17 00:00:00 2001 From: Gabe Kopley Date: Fri, 2 Nov 2012 19:10:49 -0700 Subject: [PATCH 051/897] Update rvm syntax for installing gem in gemset --- sites/installfest/create_a_heroku_account.step | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sites/installfest/create_a_heroku_account.step b/sites/installfest/create_a_heroku_account.step index 7f081e787..caca6de70 100644 --- a/sites/installfest/create_a_heroku_account.step +++ b/sites/installfest/create_a_heroku_account.step @@ -17,7 +17,7 @@ end step "Install the heroku gem" do option "if you are using rvm (on OS X or Linux)" do - console "rvm @global gem install heroku" + console "rvm @global exec gem install heroku" end option "otherwise (on Windows)" do From fbc864ed5e7680929d74730ab895d17ea4784a07 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steven!=20Ragnaro=CC=88k?= Date: Fri, 2 Nov 2012 19:11:16 -0700 Subject: [PATCH 052/897] Update Komodo link. --- sites/installfest/install_komodo_edit_for_mac.step | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sites/installfest/install_komodo_edit_for_mac.step b/sites/installfest/install_komodo_edit_for_mac.step index 17387ff10..71875db43 100644 --- a/sites/installfest/install_komodo_edit_for_mac.step +++ b/sites/installfest/install_komodo_edit_for_mac.step @@ -11,7 +11,7 @@ step "Download KomodoEdit" do link "intel_or_ppc_mac" option "Intel Mac CPU" do - message "Download the [KomodoEdit installer](http://downloads.activestate.com/Komodo/releases/7.0.2/Komodo-Edit-7.0.2-9923-macosx-x86.dmg)" + message "Download the [KomodoEdit installer](http://downloads.activestate.com/Komodo/releases/7.1.3/Komodo-Edit-7.1.3-11027-macosx-x86.dmg)" end option "PowerPC" do From d6338ab9f0e8f530058278309412a1888cc26bca Mon Sep 17 00:00:00 2001 From: Travis Grathwell Date: Fri, 2 Nov 2012 20:08:49 -0700 Subject: [PATCH 053/897] 'type yes and hit enter' was missing the 'enter' due to html sadness --- sites/installfest/create_and_deploy_a_rails_app.step | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sites/installfest/create_and_deploy_a_rails_app.step b/sites/installfest/create_and_deploy_a_rails_app.step index d8aaa85d4..46a0844c1 100644 --- a/sites/installfest/create_and_deploy_a_rails_app.step +++ b/sites/installfest/create_and_deploy_a_rails_app.step @@ -184,7 +184,7 @@ git commit -m "Updates for heroku deployment" console "git push heroku master" - message "It may ask: \"The authenticity of host 'heroku.com (75.101.145.87)' can't be established. RSA key fingerprint is 8b:48:5e:67:0e:c9:16:47:32:f2:87:0c:1f:c8:60:ad. Are you sure you want to continue connecting (yes/no)?\" Type yes and hit **." + message "It may ask: \"The authenticity of host 'heroku.com (75.101.145.87)' can't be established. RSA key fingerprint is 8b:48:5e:67:0e:c9:16:47:32:f2:87:0c:1f:c8:60:ad. Are you sure you want to continue connecting (yes/no)?\" Type yes and hit *enter*." result <<-OUTPUT The authenticity of host 'heroku.com (75.101.145.87)' can't be established. From 29d20dca32d423c02f373c7a582b02e275b916f1 Mon Sep 17 00:00:00 2001 From: Travis Grathwell Date: Sat, 3 Nov 2012 10:32:16 -0700 Subject: [PATCH 054/897] Replace 'InstallFest' on site footer with 'Docs' --- lib/doc_page.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/doc_page.rb b/lib/doc_page.rb index a2387d01a..1a74eff41 100755 --- a/lib/doc_page.rb +++ b/lib/doc_page.rb @@ -250,7 +250,7 @@ def body_content } div(:class=>:bottom) { - p "Railsbridge InstallFest" + p "Railsbridge Docs" p do text "Source: " url "https://github.com/railsbridge/docs" From 4d3ac2f65dfe9a7ca6307bc57d38e5e5cb515570 Mon Sep 17 00:00:00 2001 From: Travis Grathwell Date: Sat, 3 Nov 2012 11:48:28 -0700 Subject: [PATCH 055/897] Added a Site Index page to the upper-right menus --- lib/contents.rb | 2 +- lib/doc_page.rb | 5 ++++- lib/site_index.rb | 29 +++++++++++++++++++++++++++++ spec/site_index_spec.rb | 15 +++++++++++++++ 4 files changed, 49 insertions(+), 2 deletions(-) create mode 100644 lib/site_index.rb create mode 100644 spec/site_index_spec.rb diff --git a/lib/contents.rb b/lib/contents.rb index b2e99693f..2152f551c 100755 --- a/lib/contents.rb +++ b/lib/contents.rb @@ -149,7 +149,7 @@ def toc_list toc_items end def content - div class: "toc" do + div id: "table_of_contents", class: "toc" do h1 "Contents" toc_list hierarchy diff --git a/lib/doc_page.rb b/lib/doc_page.rb index 1a74eff41..d89b3bbe6 100755 --- a/lib/doc_page.rb +++ b/lib/doc_page.rb @@ -1,6 +1,7 @@ require 'erector' require "github_flavored_markdown" require "contents" +require "site_index" class InstallfestExternalRenderer < ExternalRenderer # render

RailsBridge Frontend HTML Quick Reference

HTML Skeleton

-  <!DOCTYPE html>
-  <html>
-    <head>
-      <meta charset="utf-8">
-      <title>Title</title>
-    </head>
-    <body>
+  <!DOCTYPE html>
+  <html>
+    <head>
+      <meta charset="utf-8">
+      <title>Title</title>
+    </head>
+    <body>
       
-    </body>
-  </html>
+    </body>
+  </html>
   

Headers

-  <h1>Header</h1>
-  <h2>Header</h2>
-  <h2>Header</h2>
-  <h4>Header</h4>
-  <h5>Header</h5>
-  <h6>Header</h6>
+  <h1>Header</h1>
+  <h2>Header</h2>
+  <h2>Header</h2>
+  <h4>Header</h4>
+  <h5>Header</h5>
+  <h6>Header</h6>
   

Paragraphs and more

-  <p>Paragraph content.</p>
-  <em>emphasized content, styled italic by default</em>
-  <strong>strong content, styled bold by default</strong>
+  <p>Paragraph content.</p>
+  <em>emphasized content, styled italic by default</em>
+  <strong>strong content, styled bold by default</strong>
   

Images

-  <img src="https://github.com/name-of-my-image.png">
-  <img src="http://www.othersite.com/image-name.jpg">
+  <img src="https://github.com/name-of-my-image.png">
+  <img src="http://www.othersite.com/image-name.jpg">
   

Links

-  <a href="#anchor">Scroll to element on the current page with id "anchor"</a>
-  <a href="https://github.com/my-other-page.html">Go to a page on my site</a>
-  <a href="https://github.com/my-other-page.html" target="_blank">Open a new window for a page on my site</a>
-  <a href="http://www.othersite.com/">Go to a page on some other site</a>
-  <a href="http://www.othersite.com/" target="_blank">Open a new window for a page on some other site</a>
+  <a href="#anchor">Scroll to element on the current page with id "anchor"</a>
+  <a href="https://github.com/my-other-page.html">Go to a page on my site</a>
+  <a href="https://github.com/my-other-page.html" target="_blank">Open a new window for a page on my site</a>
+  <a href="http://www.othersite.com/">Go to a page on some other site</a>
+  <a href="http://www.othersite.com/" target="_blank">Open a new window for a page on some other site</a>
   

Lists

Lists can be ordered (styled with numbers by default) or unordered (styled with bullets by default). Both contain list items with the actual content of the list.

-  <ol>
-    <li>First list item</li>
-    <li>Second list item</li>
-  </ol>
+  <ol>
+    <li>First list item</li>
+    <li>Second list item</li>
+  </ol>
 
-  <ul>
-    <li>One list item</li>
-    <li>Another list item</li>
-  </ul>
+  <ul>
+    <li>One list item</li>
+    <li>Another list item</li>
+  </ul>
   

Lists can be nested.

-  <ul>
-    <li>One list item
-      <ul>
-        <li>A list item nested under "One list item"</li>
-        <li>Another nest list item</li>
-      </ul>
-    </li>
-    <li>Another list item</li>
-  </ul>
+  <ul>
+    <li>One list item
+      <ul>
+        <li>A list item nested under "One list item"</li>
+        <li>Another nest list item</li>
+      </ul>
+    </li>
+    <li>Another list item</li>
+  </ul>
   

Containers

- Divs and spans are generic containers used to organize HTML. Often, they are given ids and classes so that they can be given specific styling. +

Divs and spans are generic containers used to organize HTML. Often, they are given ids and classes so that they can be given specific styling.

-  <div>The content in the div</div>
-  <span>span content</span>
+  <div>The content in the div</div>
+  <span>span content</span>
   

Ids and Classes

Ids and classes provide a way to use CSS to target specific element(s). Many tags can have the same class. Only one tag can have a particular id. Any tag can be given an id and classes.

-  <tagname id="a-name-uniquely-identifying-this-element">content</tagname>
-  <tagname class="one-class another-class">content</tagname>
+  <tagname id="a-name-uniquely-identifying-this-element">content</tagname>
+  <tagname class="one-class another-class">content</tagname>
   
\ No newline at end of file From 8ad20593ce5c8a5ab32508b332228ebaa47a8337 Mon Sep 17 00:00:00 2001 From: Clark Cutler Date: Tue, 29 Jan 2013 18:53:55 -0800 Subject: [PATCH 128/897] HTML Quick Reference uses markdown instead of HTML. Print CSS hides table of contents, etc. --- public/css/doc_page.css | 38 ++++++++ public/frontend/quick-reference/html.html | 108 ---------------------- sites/frontend/dev_tools.step | 2 +- sites/frontend/html_quick_reference.md | 75 +++++++++++++++ 4 files changed, 114 insertions(+), 109 deletions(-) delete mode 100644 public/frontend/quick-reference/html.html create mode 100644 sites/frontend/html_quick_reference.md diff --git a/public/css/doc_page.css b/public/css/doc_page.css index 81ce2826b..64dcc2efd 100644 --- a/public/css/doc_page.css +++ b/public/css/doc_page.css @@ -180,3 +180,41 @@ img { .bottom:after { clear: both; } + + + +@media print { + .toc, .top_links { + display: none; + } + + .top { + padding-left: 0; + margin-left: 20px; + margin-bottom: 0; + background-color: white; + } + + .top h1 { + margin-left: 0; + padding: 0; + font-weight: bold; + } + + .top h1, .top h1 a, .top h1 a:visited { + color: black; + } + + .main { + margin-left: 20px; + font-size: 13px; + } + + .doc pre { + font-size: 10px; + overflow-x: visible; + background-color: white; + border: 1px solid #ccc; + page-break-inside: avoid; + } +} \ No newline at end of file diff --git a/public/frontend/quick-reference/html.html b/public/frontend/quick-reference/html.html deleted file mode 100644 index 8c66c9b2b..000000000 --- a/public/frontend/quick-reference/html.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - - HTML Quick Reference - Railsbridge Frontend - - - -

RailsBridge Frontend HTML Quick Reference

- -

HTML Skeleton

-
-  <!DOCTYPE html>
-  <html>
-    <head>
-      <meta charset="utf-8">
-      <title>Title</title>
-    </head>
-    <body>
-      
-    </body>
-  </html>
-  
- -

Headers

-
-  <h1>Header</h1>
-  <h2>Header</h2>
-  <h2>Header</h2>
-  <h4>Header</h4>
-  <h5>Header</h5>
-  <h6>Header</h6>
-  
- -

Paragraphs and more

-
-  <p>Paragraph content.</p>
-  <em>emphasized content, styled italic by default</em>
-  <strong>strong content, styled bold by default</strong>
-  
- -

Images

-
-  <img src="https://github.com/name-of-my-image.png">
-  <img src="http://www.othersite.com/image-name.jpg">
-  
- -

Links

-
-  <a href="#anchor">Scroll to element on the current page with id "anchor"</a>
-  <a href="https://github.com/my-other-page.html">Go to a page on my site</a>
-  <a href="https://github.com/my-other-page.html" target="_blank">Open a new window for a page on my site</a>
-  <a href="http://www.othersite.com/">Go to a page on some other site</a>
-  <a href="http://www.othersite.com/" target="_blank">Open a new window for a page on some other site</a>
-  
- -

Lists

-

Lists can be ordered (styled with numbers by default) or unordered (styled with bullets by default). Both contain list items with the actual content of the list.

-
-  <ol>
-    <li>First list item</li>
-    <li>Second list item</li>
-  </ol>
-
-  <ul>
-    <li>One list item</li>
-    <li>Another list item</li>
-  </ul>
-  
- -

Lists can be nested.

-
-  <ul>
-    <li>One list item
-      <ul>
-        <li>A list item nested under "One list item"</li>
-        <li>Another nest list item</li>
-      </ul>
-    </li>
-    <li>Another list item</li>
-  </ul>
-  
- -

Containers

-

Divs and spans are generic containers used to organize HTML. Often, they are given ids and classes so that they can be given specific styling.

-
-  <div>The content in the div</div>
-  <span>span content</span>
-  
- -

Ids and Classes

-

Ids and classes provide a way to use CSS to target specific element(s). Many tags can have the same class. Only one tag can have a particular id. Any tag can be given an id and classes.

-
-  <tagname id="a-name-uniquely-identifying-this-element">content</tagname>
-  <tagname class="one-class another-class">content</tagname>
-  
- - \ No newline at end of file diff --git a/sites/frontend/dev_tools.step b/sites/frontend/dev_tools.step index 41f6c1553..a9546793c 100644 --- a/sites/frontend/dev_tools.step +++ b/sites/frontend/dev_tools.step @@ -46,7 +46,7 @@ CSS styles or JavaScript animations, you can always look under the hood and figu they're done. It's a great way to keep learning as a front end developer. ## Quick References -* [HTML](quick-reference/html.html) +* [HTML](html_quick_reference) ## Resources for Later diff --git a/sites/frontend/html_quick_reference.md b/sites/frontend/html_quick_reference.md new file mode 100644 index 000000000..37fe461a8 --- /dev/null +++ b/sites/frontend/html_quick_reference.md @@ -0,0 +1,75 @@ +## HTML Skeleton + + + + + Title + + + + + + +## Headers +

Header

+

Header

+

Header

+

Header

+
Header
+
Header
+ +## Paragraphs and more +

Paragraph content.

+ emphasized content, styled italic by default + strong content, styled bold by default + +## Images + + + +## Links +
Scroll to element on the current page with id "anchor" + Go to a page on my site + Open a new window for a page on my site + Go to a page on some other site + Open a new window for a page on some other site + +## Lists + +Lists can be ordered (styled with numbers by default) or unordered (styled with bullets by default). Both contain list items with the actual content of the list. + +
    +
  1. First list item
  2. +
  3. Second list item
  4. +
+ +
    +
  • One list item
  • +
  • Another list item
  • +
+ +Lists can be nested. + +
    +
  • One list item +
      +
    • A list item nested under "One list item"
    • +
    • Another nest list item
    • +
    +
  • +
  • Another list item
  • +
+ +## Containers + +Divs and spans are generic containers used to organize HTML. Often, they are given ids and classes so that they can be given specific styling. + +
The content in the div
+ span content + +## Ids and Classes + +Ids and classes provide a way to use CSS to target specific element(s). Many tags can have the same class. Only one tag can have a particular id. Any tag can be gi +an id and classes.

+ content + content From 69bf255c8c72279c5e19029e1bcd72e3121a770b Mon Sep 17 00:00:00 2001 From: Dave Strock Date: Tue, 29 Jan 2013 22:15:34 -0600 Subject: [PATCH 129/897] Configure ubuntu terminal before installing rvm instead of after; students were not catching it. --- sites/installfest/ubuntu.step | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sites/installfest/ubuntu.step b/sites/installfest/ubuntu.step index ed8838868..bd1c77f66 100644 --- a/sites/installfest/ubuntu.step +++ b/sites/installfest/ubuntu.step @@ -50,12 +50,12 @@ step "Configure Git" do end step "Install RVM" do - link "install_rvm_and_ruby" - message "Restart your terminal before continuing." important do - message "If you're using Ubuntu 12.04 or the latest version of Mint, ensure that the Run command as login shell option is checked under the Title and Command tab in Profile Preferences. After changing this setting, you may need to exit your console session and start a new one before the changes take affect." + message "If you're using Ubuntu 12.04 or the latest version of Mint, ensure that the Run command as login shell option is checked under the Title and Command tab in Profile Preferences. After changing this setting, you may need to exit your console session and start a new one before the changes take affect." img src: 'railsbridge_ubuntu12-checkbox.png', alt: "Ubuntu 12.04 terminal settings" end + link "install_rvm_and_ruby" + message "Restart your terminal before continuing." end step "Install Rails" do From 93322f78f12fcbbb2fe752eed9ed52f9f982c462 Mon Sep 17 00:00:00 2001 From: Travis Grathwell Date: Tue, 29 Jan 2013 23:15:11 -0800 Subject: [PATCH 130/897] Highlight markdown syntax in .md files using Redcarpet+CodeRay Currently, there are something like three ways we do syntax highlighting in this app: In .step files, you can have a 'source_code' step that specifies a language parameter. This makes a
 tag that
contains the language name as ':::ruby', to be scooped out by
Rack::Codehighlighter.

In .deck.md files, you can use Github-flavored "```ruby" style
'fenced code blocks', which get parsed by redcarpet into 

blocks, which inexplicably and briefly have an '@@@ ruby' directive
that is picked up by the Rack::Codehighlighter middleware.

In .md files (as of this diff) you can do Github-flavored fenced
code blocks, which are parsed in the original render time into
 blocks that have the real syntax highlighting.

'Fenced code blocks' produced in Markdown-aware erector functions
(like 'message') don't seem to produce highlighted code. Will
probably improve on this in a subsequent diff.
---
 Gemfile                                |   1 +
 Gemfile.lock                           |   9 +-
 config.ru                              |   4 -
 lib/markdown_page.rb                   |  21 ++++-
 lib/rack_static_patch.rb               |  13 ---
 sites/frontend/html_quick_reference.md | 113 +++++++++++++++----------
 spec/markdown_spec.rb                  |  45 ++++++++++
 spec/spec_helper.rb                    |   4 +
 spec/step_spec.rb                      |   4 -
 9 files changed, 141 insertions(+), 73 deletions(-)
 delete mode 100644 lib/rack_static_patch.rb
 create mode 100644 spec/markdown_spec.rb

diff --git a/Gemfile b/Gemfile
index c9af78d28..5dd52b9eb 100644
--- a/Gemfile
+++ b/Gemfile
@@ -10,6 +10,7 @@ gem 'rack-codehighlighter'
 gem 'coderay'
 gem "deckrb", ">=0.3.0"
 gem "sass"
+gem "redcarpet"
 
 group :development do
   gem "wrong", ">=0.6.2"
diff --git a/Gemfile.lock b/Gemfile.lock
index 7de7ba1bf..2eca91a2b 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -9,7 +9,7 @@ GEM
     ZenTest (4.7.0)
     bourbon (1.4.0)
       sass (>= 3.1)
-    coderay (1.0.5)
+    coderay (1.0.8)
     daemons (1.1.8)
     deckrb (0.3.0)
       coderay
@@ -29,11 +29,11 @@ GEM
       tins (~> 0.3)
     files (0.3.0)
     json (1.6.6)
-    nokogiri (1.5.2)
-    nokogiri (1.5.2-x86-mingw32)
+    nokogiri (1.5.6)
+    nokogiri (1.5.6-x86-mingw32)
     polyglot (0.3.3)
     predicated (0.2.6)
-    rack (1.4.1)
+    rack (1.5.1)
     rack-codehighlighter (0.5.0)
       nokogiri (>= 1.4.1)
       rack (>= 1.0.0)
@@ -105,6 +105,7 @@ DEPENDENCIES
   rack-test
   rake
   rdiscount
+  redcarpet
   rerun
   rspec
   sass
diff --git a/config.ru b/config.ru
index 5e325e6b5..fc2ced9d4 100644
--- a/config.ru
+++ b/config.ru
@@ -1,9 +1,6 @@
 require 'rack/codehighlighter'
 require 'coderay'
 
-# Fix Rack bug https://github.com/rack/rack/issues/301
-require './lib/rack_static_patch'
-
 use Rack::ShowExceptions
 use Rack::ShowStatus
 use Rack::Static, :urls => ["/css", "/img"], :root => "public"
@@ -13,7 +10,6 @@ use Rack::Codehighlighter, :coderay,
   :markdown => true,
   :pattern => /\A[:@]{3}\s?(\w+)\s*(\n|
)/i
 
-
 # require 'thin/logging'
 # Thin::Logging.debug = true
 
diff --git a/lib/markdown_page.rb b/lib/markdown_page.rb
index 007dc4a45..275b7e86d 100644
--- a/lib/markdown_page.rb
+++ b/lib/markdown_page.rb
@@ -1,8 +1,27 @@
 require 'erector'
 require 'doc_page'
+require 'redcarpet'
+require 'coderay'
+
+class HTMLwithCodeRay < Redcarpet::Render::HTML
+  def block_code(code, language)
+    if language
+      "
#{CodeRay.scan(code, language).html}
" + else + "
#{CodeRay.scan(code, :text).html}
" + end + end +end + +MarkdownRenderer = Redcarpet::Markdown.new( + HTMLwithCodeRay, + :autolink => true, + :space_after_headers => true, + :fenced_code_blocks => true +) class MarkdownPage < DocPage def doc_content - rawtext md2html(src) + rawtext MarkdownRenderer.render(src) end end diff --git a/lib/rack_static_patch.rb b/lib/rack_static_patch.rb deleted file mode 100644 index 207e07266..000000000 --- a/lib/rack_static_patch.rb +++ /dev/null @@ -1,13 +0,0 @@ -# Fix Rack bug https://github.com/rack/rack/issues/301 -module Rack - class Static - def initialize(app, options={}) - @app = app - @urls = options[:urls] || ["/favicon.ico"] - @index = options[:index] - root = options[:root] || Dir.pwd - cache_control = options[:cache_control] - @file_server = Rack::File.new(root, cache_control) - end - end -end diff --git a/sites/frontend/html_quick_reference.md b/sites/frontend/html_quick_reference.md index 37fe461a8..baf5ec602 100644 --- a/sites/frontend/html_quick_reference.md +++ b/sites/frontend/html_quick_reference.md @@ -1,75 +1,94 @@ ## HTML Skeleton - - - - - Title - - - - - + +```html + + + + + Title + + + + + +``` ## Headers -

Header

-

Header

-

Header

-

Header

-
Header
-
Header
+```html +

Header

+

Header

+

Header

+

Header

+
Header
+
Header
+``` ## Paragraphs and more -

Paragraph content.

- emphasized content, styled italic by default - strong content, styled bold by default +```html +

Paragraph content.

+emphasized content, styled italic by default +strong content, styled bold by default +``` ## Images - - +```html + + +``` ## Links - Scroll to element on the current page with id "anchor" - Go to a page on my site - Open a new window for a page on my site - Go to a page on some other site - Open a new window for a page on some other site +```html +Scroll to element on the current page with id "anchor" +Go to a page on my site +Open a new window for a page on my site +Go to a page on some other site +Open a new window for a page on some other site +``` ## Lists Lists can be ordered (styled with numbers by default) or unordered (styled with bullets by default). Both contain list items with the actual content of the list. -
    -
  1. First list item
  2. -
  3. Second list item
  4. -
+```html +
    +
  1. First list item
  2. +
  3. Second list item
  4. +
-
    -
  • One list item
  • -
  • Another list item
  • -
+
    +
  • One list item
  • +
  • Another list item
  • +
+``` Lists can be nested. +```html +
    +
  • One list item
      -
    • One list item -
        -
      • A list item nested under "One list item"
      • -
      • Another nest list item
      • -
      -
    • -
    • Another list item
    • +
    • A list item nested under "One list item"
    • +
    • Another nest list item
    +
  • +
  • Another list item
  • +
+``` ## Containers Divs and spans are generic containers used to organize HTML. Often, they are given ids and classes so that they can be given specific styling. -
The content in the div
- span content +```html +
The content in the div
+span content +``` ## Ids and Classes -Ids and classes provide a way to use CSS to target specific element(s). Many tags can have the same class. Only one tag can have a particular id. Any tag can be gi -an id and classes.

- content - content +Ids and classes provide a way to use CSS to target specific element(s). Many tags can have the same class. Only one tag can have a particular id. Any tag can be given an id and classes. + +```html +content +content +``` \ No newline at end of file diff --git a/spec/markdown_spec.rb b/spec/markdown_spec.rb new file mode 100644 index 000000000..fe8475e61 --- /dev/null +++ b/spec/markdown_spec.rb @@ -0,0 +1,45 @@ +here = File.expand_path File.dirname(__FILE__) +require "#{here}/spec_helper" + +require "markdown_page" + +describe MarkdownPage do + + it "renders markdown into html" do + src = <This text is preformatted and escaped + +```html +This text is preformatted and ready to be syntax highlighted as HTML source. +``` +MARKDOWN + + page = MarkdownPage.new( + src: src, + site_name: "greetings", + page_name: 'hello', + doc_title: "Hello", + doc_path: "/tmp/hello.step" + ) + html_doc = Nokogiri.parse(page.to_html) + main_html = html_doc.css(".main").first.serialize(:save_with => 0).chomp + + expected = < +

Hello

+
+

This is a heading

+

This is a subheading

+
<h2>This text is preformatted and escaped</h2>\n
+
This text is preformatted and ready to be <strong>syntax highlighted</strong> as HTML source.
+
+ +HTML + + assert_loosely_equal(main_html, expected) + end +end + diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index e763e61f4..e60f70901 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -6,6 +6,10 @@ require "wrong/adapters/rspec" require "nokogiri" +def assert_loosely_equal lhs, rhs + assert { lhs.gsub(/\n\s*/, '') == rhs.gsub(/\n\s*/, '') } +end + require "files" include Files # todo: include this in an RSpec config block instead diff --git a/spec/step_spec.rb b/spec/step_spec.rb index fae7a531d..c52025477 100644 --- a/spec/step_spec.rb +++ b/spec/step_spec.rb @@ -3,10 +3,6 @@ require "step_page" -def assert_loosely_equal lhs, rhs - assert { lhs.gsub(/\n\s*/, '') == rhs.gsub(/\n\s*/, '') } -end - describe Step do def to_html nokogiri_node From 6a23536c1cf2028056b682b3283d9dfcff3368f2 Mon Sep 17 00:00:00 2001 From: Travis Grathwell Date: Tue, 29 Jan 2013 23:53:33 -0800 Subject: [PATCH 131/897] Remove rdiscount/GithubFlavoredMarkdown class in favor of Redcarpet --- Gemfile | 1 - Gemfile.lock | 2 -- app.rb | 8 ------- lib/doc_page.rb | 3 --- lib/github_flavored_markdown.rb | 37 --------------------------------- lib/markdown_page.rb | 20 +----------------- lib/markdown_renderer.rb | 19 +++++++++++++++++ lib/step.rb | 7 +++++-- 8 files changed, 25 insertions(+), 72 deletions(-) delete mode 100644 lib/github_flavored_markdown.rb create mode 100644 lib/markdown_renderer.rb diff --git a/Gemfile b/Gemfile index 5dd52b9eb..e1b6d630e 100644 --- a/Gemfile +++ b/Gemfile @@ -3,7 +3,6 @@ source :rubygems gem "erector", "~>0.9.0" gem "sinatra" gem "nokogiri" -gem "rdiscount" gem "thin" gem "eventmachine", "1.0.0.rc.4" gem 'rack-codehighlighter' diff --git a/Gemfile.lock b/Gemfile.lock index 2eca91a2b..44b3299b3 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -42,7 +42,6 @@ GEM rack-test (0.6.1) rack (>= 1.0) rake (0.9.2.2) - rdiscount (1.6.8) redcarpet (2.1.1) rerun (0.6.5) rspec (2.9.0) @@ -104,7 +103,6 @@ DEPENDENCIES rack-codehighlighter rack-test rake - rdiscount redcarpet rerun rspec diff --git a/app.rb b/app.rb index 8e524eabe..edbdb5ae7 100755 --- a/app.rb +++ b/app.rb @@ -5,14 +5,6 @@ # require 'wrong' # include Wrong::D -begin - require 'rdiscount' -rescue LoadError - require 'bluecloth' - Object.send(:remove_const,:Markdown) - Markdown = BlueCloth -end - here = File.expand_path File.dirname(__FILE__) lib = File.expand_path "#{here}/lib" $: << lib diff --git a/lib/doc_page.rb b/lib/doc_page.rb index 010724159..235e210fd 100644 --- a/lib/doc_page.rb +++ b/lib/doc_page.rb @@ -1,5 +1,4 @@ require 'erector' -require "github_flavored_markdown" require "contents" require "site_index" @@ -20,8 +19,6 @@ def inline_styles end class DocPage < Erector::Widgets::Page - include GithubFlavoredMarkdown - needs :site_name, :doc_title, :doc_path, :page_name needs :back => nil attr_reader :site_name, :doc_title, :page_name diff --git a/lib/github_flavored_markdown.rb b/lib/github_flavored_markdown.rb deleted file mode 100644 index bd6d18e8e..000000000 --- a/lib/github_flavored_markdown.rb +++ /dev/null @@ -1,37 +0,0 @@ -module GithubFlavoredMarkdown - # From http://github.github.com/github-flavored-markdown/ - def gfm(text) - # Extract pre blocks - extractions = {} - text.gsub!(%r{
.*?
}m) do |match| - md5 = Digest::MD5.hexdigest(match) - extractions[md5] = match - "{gfm-extraction-#{md5}}" - end - - # prevent foo_bar_baz from ending up with an italic word in the middle - text.gsub!(/(^(?! {4}|\t)\w+_\w+_\w[\w]*)/) do |x| - x.gsub('_', '\_') if x.split('').sort.to_s[0..1] == '__' - end - - # in very clear cases, let newlines become
tags - text.gsub!(/^[\w\<][^\n]*\n+/) do |x| - x =~ /\n{2}/ ? x : (x.strip!; x << " \n") - end - - # Insert pre block extractions - text.gsub!(/\{gfm-extraction-([0-9a-f]{32})\}/) do - "\n\n" + extractions[$1] - end - - # make bare URLs into hot links - text.gsub!(%r{(?') - - text - end - - def md2html(md) - Markdown.new(gfm(md)).to_html - end - -end diff --git a/lib/markdown_page.rb b/lib/markdown_page.rb index 275b7e86d..ded84062d 100644 --- a/lib/markdown_page.rb +++ b/lib/markdown_page.rb @@ -1,24 +1,6 @@ require 'erector' require 'doc_page' -require 'redcarpet' -require 'coderay' - -class HTMLwithCodeRay < Redcarpet::Render::HTML - def block_code(code, language) - if language - "
#{CodeRay.scan(code, language).html}
" - else - "
#{CodeRay.scan(code, :text).html}
" - end - end -end - -MarkdownRenderer = Redcarpet::Markdown.new( - HTMLwithCodeRay, - :autolink => true, - :space_after_headers => true, - :fenced_code_blocks => true -) +require 'markdown_renderer' class MarkdownPage < DocPage def doc_content diff --git a/lib/markdown_renderer.rb b/lib/markdown_renderer.rb new file mode 100644 index 000000000..46773298e --- /dev/null +++ b/lib/markdown_renderer.rb @@ -0,0 +1,19 @@ +require 'redcarpet' +require 'coderay' + +class HTMLwithCodeRay < Redcarpet::Render::HTML + def block_code(code, language) + if language + "
#{CodeRay.scan(code, language).html}
" + else + "
#{CodeRay.scan(code, :text).html}
" + end + end +end + +MarkdownRenderer = Redcarpet::Markdown.new( + HTMLwithCodeRay, + :autolink => true, + :space_after_headers => true, + :fenced_code_blocks => true +) \ No newline at end of file diff --git a/lib/step.rb b/lib/step.rb index b61ef6a49..d1f42e5f9 100644 --- a/lib/step.rb +++ b/lib/step.rb @@ -1,10 +1,9 @@ require 'erector' require 'big_checkbox' require 'erector_scss' +require 'markdown_renderer' class Step < Erector::Widget - include GithubFlavoredMarkdown - external :style, <<-CSS @import url(https://github.com/css/step.css); CSS @@ -267,6 +266,10 @@ def source_code *args pre src, :class => "code" end + def md2html text + MarkdownRenderer.render(text) + end + private def _render_inner_content From 4debda4fa262078502fd25a95e05456927e97d02 Mon Sep 17 00:00:00 2001 From: Travis Grathwell Date: Wed, 30 Jan 2013 00:11:10 -0800 Subject: [PATCH 132/897] Clean up use of __FILE__ in tests where a simple 'require' works fine Remove old railsbridge-apps.md todo-lookin' file --- app.rb | 12 +++++------ md2step | 3 +-- railsbridge-apps.md | 43 ---------------------------------------- spec/app_spec.rb | 5 ++--- spec/contents_spec.rb | 9 +++++---- spec/markdown_spec.rb | 3 +-- spec/media_wiki_spec.rb | 4 +--- spec/site_index_spec.rb | 7 +++---- spec/site_spec.rb | 3 +-- spec/site_syntax_spec.rb | 6 +++--- spec/step_page_spec.rb | 3 +-- spec/step_spec.rb | 4 +--- 12 files changed, 25 insertions(+), 77 deletions(-) delete mode 100644 railsbridge-apps.md diff --git a/app.rb b/app.rb index edbdb5ae7..d5d826d62 100755 --- a/app.rb +++ b/app.rb @@ -153,19 +153,19 @@ def render_page end get "/:site/:name.:ext" do - if not sites.include?(params[:site]) - forward # send it on to the downstream file server - else + if sites.include?(params[:site]) send_file "#{site_dir}/#{params[:name]}.#{params[:ext]}" + else + forward # send it on to the downstream file server end end # todo: make this work in a general way, without hardcoded 'img' get "/:site/img/:name.:ext" do - if not sites.include?(params[:site]) - forward # send it on to the downstream file server - else + if sites.include?(params[:site]) send_file "#{site_dir}/img/#{params[:name]}.#{params[:ext]}" + else + forward # send it on to the downstream file server end end diff --git a/md2step b/md2step index a41db2860..3a1ac6b39 100755 --- a/md2step +++ b/md2step @@ -1,8 +1,7 @@ #!/usr/bin/env ruby here = File.expand_path File.dirname __FILE__ $:< 0).chomp end From 5382760083a7bf438221ebb33a9553fbde167a5d Mon Sep 17 00:00:00 2001 From: Bill DePhillips Date: Wed, 30 Jan 2013 09:38:58 -0800 Subject: [PATCH 133/897] removed accidentally checked in empty slide --- sites/workshop/welcome.deck.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/sites/workshop/welcome.deck.md b/sites/workshop/welcome.deck.md index 644ec4841..3a975bfba 100644 --- a/sites/workshop/welcome.deck.md +++ b/sites/workshop/welcome.deck.md @@ -31,9 +31,6 @@ We want the community of software developers to reflect the diversity of our soc # What is Ruby on Rails? - -# - !SLIDE center # Ruby vs. Rails From e73aad3d103921e6a5ba4b020339ff1ab9065ddb Mon Sep 17 00:00:00 2001 From: Nick Howard Date: Fri, 1 Feb 2013 23:07:10 -0700 Subject: [PATCH 134/897] fix syntax for float examples in beginner slide deck Previous examples were not valid Ruby syntax. `.0.0` and `.33` would result in a syntax error if typed as is. --- sites/workshop/ruby_for_beginners.deck.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sites/workshop/ruby_for_beginners.deck.md b/sites/workshop/ruby_for_beginners.deck.md index bf2610c49..a2e24d336 100644 --- a/sites/workshop/ruby_for_beginners.deck.md +++ b/sites/workshop/ruby_for_beginners.deck.md @@ -278,10 +278,10 @@ What is happening on the last two lines? How would you solve it? * 898989898 * 2 * Examples of floats: - * .0.0 + * 0.0 * -105.56 - * .33 - * .00004 + * 0.33 + * 0.00004 * You can perform operations on both types of numbers with these characters: +, -, /, * ### exercises From e4ae9b85926c678832677794749242f8fb0919fb Mon Sep 17 00:00:00 2001 From: Travis Grathwell Date: Thu, 7 Feb 2013 18:31:26 -0800 Subject: [PATCH 135/897] TOC now shows nested items of the selected page. Previously, if a page was selected, all its children didn't show on the TOC. This looked really dumb now that the TOC is always visible. --- lib/contents.rb | 12 +++++------- spec/contents_spec.rb | 6 +++--- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/lib/contents.rb b/lib/contents.rb index 634851223..e8308ac8a 100755 --- a/lib/contents.rb +++ b/lib/contents.rb @@ -130,15 +130,13 @@ def nextpages def toc_link page link_text = page.split(/[-_]/).map{|s|s.capitalize}.join(' ') - - if page == page_name - return li do - span link_text, class: 'current' - end - end path = "/#{@site_name}/" + page li do - a(link_text, :href => path) + if page == page_name + span link_text, class: 'current' + else + a link_text, href: path + end yield if block_given? end end diff --git a/spec/contents_spec.rb b/spec/contents_spec.rb index f40677525..84cd96d22 100644 --- a/spec/contents_spec.rb +++ b/spec/contents_spec.rb @@ -7,7 +7,7 @@ describe Contents do before :all do - @meals_toc = Contents.new(site_name: 'meals', site_dir: "#{here}/sites/meals", page_name: 'clean_up') + @meals_toc = Contents.new(site_name: 'meals', site_dir: "#{here}/sites/meals", page_name: 'prepare_a_meal') end it "scans for subpage links" do @@ -64,17 +64,17 @@ toc_html = Nokogiri.parse(@meals_toc.to_html) current_page = toc_html.css(".current").first.text - current_page.should == 'Clean Up' + current_page.should == 'Prepare A Meal' other_pages = toc_html.css('a').map(&:text) other_pages.should =~ [ "Breakfast", + "Clean Up", "Eat A Meal", "Find Some Vegetables", "Meals", "Omnivorous", "Orphaned Page", - "Prepare A Meal", "Vegetarian" ] end From f36e7cf3a9cfb8d369b4f4d936579bbc6d5f7c1d Mon Sep 17 00:00:00 2001 From: Godfrey Chan Date: Thu, 7 Feb 2013 23:44:27 -0800 Subject: [PATCH 136/897] Updated rack to 1.5.2 which addresses CVE-2013-0262, CVE-2013-0263 --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 44b3299b3..a42fd4565 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -33,7 +33,7 @@ GEM nokogiri (1.5.6-x86-mingw32) polyglot (0.3.3) predicated (0.2.6) - rack (1.5.1) + rack (1.5.2) rack-codehighlighter (0.5.0) nokogiri (>= 1.4.1) rack (>= 1.0.0) From d58c6aaf339c3189f9dcef18cc4ac99306cce36c Mon Sep 17 00:00:00 2001 From: Alex Chaffee Date: Fri, 8 Feb 2013 07:01:10 -0800 Subject: [PATCH 137/897] update gems, jquery --- Gemfile | 1 + Gemfile.lock | 98 +- Rakefile | 2 +- app.rb | 10 +- lib/doc_page.rb | 2 +- public/jquery-1.6.1.js | 8936 ------------------------------------ public/jquery-1.6.1.min.js | 18 - public/jquery-1.7.2.min.js | 4 + spec/app_spec.rb | 19 +- 9 files changed, 67 insertions(+), 9023 deletions(-) delete mode 100644 public/jquery-1.6.1.js delete mode 100644 public/jquery-1.6.1.min.js create mode 100755 public/jquery-1.7.2.min.js diff --git a/Gemfile b/Gemfile index e1b6d630e..089e567e7 100644 --- a/Gemfile +++ b/Gemfile @@ -19,4 +19,5 @@ group :development do gem "rack-test" gem "files", ">=0.3.0" gem "bourbon" # do 'cd public/css; bourbon update' to get new bourbon + gem 'rb-fsevent', :platform => :ruby end diff --git a/Gemfile.lock b/Gemfile.lock index a42fd4565..97170e0df 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,34 +1,29 @@ GEM remote: http://rubygems.org/ specs: - ParseTree (3.0.8) - RubyInline (>= 3.7.0) - sexp_processor (>= 3.0.0) - RubyInline (3.11.2) - ZenTest (~> 4.3) - ZenTest (4.7.0) - bourbon (1.4.0) - sass (>= 3.1) + bourbon (3.0.1) + sass (>= 3.2.0) + thor coderay (1.0.8) - daemons (1.1.8) - deckrb (0.3.0) + daemons (1.1.9) + deckrb (0.5.0) coderay - erector (>= 0.9.0.pre1) + erector (>= 0.9.0) json nokogiri - rack + rack (>= 1.4.1) rack-codehighlighter redcarpet (~> 2) + thin trollop diff-lcs (1.1.3) erector (0.9.0) treetop (>= 1.2.3) eventmachine (1.0.0.rc.4) eventmachine (1.0.0.rc.4-x86-mingw32) - file-tail (1.0.8) - tins (~> 0.3) - files (0.3.0) - json (1.6.6) + files (0.3.1) + json (1.7.6) + listen (0.7.2) nokogiri (1.5.6) nokogiri (1.5.6-x86-mingw32) polyglot (0.3.3) @@ -37,56 +32,50 @@ GEM rack-codehighlighter (0.5.0) nokogiri (>= 1.4.1) rack (>= 1.0.0) - rack-protection (1.2.0) + rack-protection (1.3.2) rack - rack-test (0.6.1) + rack-test (0.6.2) rack (>= 1.0) - rake (0.9.2.2) - redcarpet (2.1.1) - rerun (0.6.5) - rspec (2.9.0) - rspec-core (~> 2.9.0) - rspec-expectations (~> 2.9.0) - rspec-mocks (~> 2.9.0) - rspec-core (2.9.0) - rspec-expectations (2.9.0) + rake (10.0.3) + rb-fsevent (0.9.3) + redcarpet (2.2.2) + rerun (0.8.0) + listen + rspec (2.12.0) + rspec-core (~> 2.12.0) + rspec-expectations (~> 2.12.0) + rspec-mocks (~> 2.12.0) + rspec-core (2.12.2) + rspec-expectations (2.12.1) diff-lcs (~> 1.1.3) - rspec-mocks (2.9.0) - ruby2ruby (1.3.1) - ruby_parser (~> 2.0) - sexp_processor (~> 3.0) - ruby_parser (2.0.6) - sexp_processor (~> 3.0) - sass (3.1.15) - sexp_processor (3.1.0) - sinatra (1.3.2) - rack (~> 1.3, >= 1.3.6) - rack-protection (~> 1.2) + rspec-mocks (2.12.2) + ruby2ruby (2.0.3) + ruby_parser (~> 3.1) + sexp_processor (~> 4.0) + ruby_parser (3.1.1) + sexp_processor (~> 4.1) + sass (3.2.5) + sexp_processor (4.1.4) + sinatra (1.3.4) + rack (~> 1.4) + rack-protection (~> 1.3) tilt (~> 1.3, >= 1.3.3) - sourcify (0.5.0) - file-tail (>= 1.0.5) - ruby2ruby (>= 1.2.5) - ruby_parser (>= 2.0.5) - sexp_processor (>= 3.0.5) - thin (1.3.1) + thin (1.5.0) daemons (>= 1.0.9) eventmachine (>= 0.12.6) rack (>= 1.0.0) + thor (0.17.0) tilt (1.3.3) - tins (0.3.12) treetop (1.4.12) polyglot polyglot (>= 0.3.1) - trollop (1.16.2) - wrong (0.6.2) - ParseTree (~> 3.0) + trollop (2.0) + wrong (0.7.0) diff-lcs (~> 1.1.2) - file-tail (~> 1.0) - predicated (>= 0.2.3) - ruby2ruby (~> 1.2) - ruby_parser (~> 2.0.4) - sexp_processor (~> 3.0) - sourcify (>= 0.3.0) + predicated (~> 0.2.6) + ruby2ruby (>= 2.0.1) + ruby_parser (>= 3.0.1) + sexp_processor (>= 4.0) PLATFORMS ruby @@ -103,6 +92,7 @@ DEPENDENCIES rack-codehighlighter rack-test rake + rb-fsevent redcarpet rerun rspec diff --git a/Rakefile b/Rakefile index b508efcb2..e7e02c395 100644 --- a/Rakefile +++ b/Rakefile @@ -9,7 +9,7 @@ end RSpec::Core::RakeTask.new(:spec) do |t| t.pattern = "spec/**/*_spec.rb" t.rspec_opts = - "--format d --fail-fast --backtrace" + "--format d --backtrace" t.rspec_opts += " --color" if !windows? # t.ruby_opts="-w" end diff --git a/app.rb b/app.rb index d5d826d62..536ad6334 100755 --- a/app.rb +++ b/app.rb @@ -49,11 +49,11 @@ def site_dir def sites_dir= dir @sites_dir = dir.tap { set_downstream_app } end - + def set_downstream_app @app = ::Deck::RackApp.public_file_server end - + def sites_dir @sites_dir || "#{@here}/sites" end @@ -84,7 +84,7 @@ def doc_path def title_for_page page_name page_name.split(/[-_]/).map do |w| w == "osx" ? "OS X" : w.capitalize - end.join(' ') + end.join(' ') end def render_page @@ -99,7 +99,7 @@ def render_page } case ext - + when "md" if doc_path =~ /\.deck\.md$/ # todo: refactor # todo: render with page nav elements too @@ -180,7 +180,7 @@ def render_page get "/:file.:ext" do # treat root URLs with dots in them like static assets and serve them - # from the downstream file server (coderay.css, jquery-1.6.1.js) + # from the downstream file server (coderay.css, jquery-1.7.2.js) forward end diff --git a/lib/doc_page.rb b/lib/doc_page.rb index 235e210fd..ea9a4c08b 100644 --- a/lib/doc_page.rb +++ b/lib/doc_page.rb @@ -42,7 +42,7 @@ def html_attributes def head_content title page_title - script :src => "/jquery-1.6.1.js" + script :src => "/jquery-1.7.2.min.js" end def site_title diff --git a/public/jquery-1.6.1.js b/public/jquery-1.6.1.js deleted file mode 100644 index 33e87732d..000000000 --- a/public/jquery-1.6.1.js +++ /dev/null @@ -1,8936 +0,0 @@ -/*! - * jQuery JavaScript Library v1.6.1 - * http://jquery.com/ - * - * Copyright 2011, John Resig - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * Includes Sizzle.js - * http://sizzlejs.com/ - * Copyright 2011, The Dojo Foundation - * Released under the MIT, BSD, and GPL Licenses. - * - * Date: Thu May 12 15:04:36 2011 -0400 - */ -(function( window, undefined ) { - -// Use the correct document accordingly with window argument (sandbox) -var document = window.document, - navigator = window.navigator, - location = window.location; -var jQuery = (function() { - -// Define a local copy of jQuery -var jQuery = function( selector, context ) { - // The jQuery object is actually just the init constructor 'enhanced' - return new jQuery.fn.init( selector, context, rootjQuery ); - }, - - // Map over jQuery in case of overwrite - _jQuery = window.jQuery, - - // Map over the $ in case of overwrite - _$ = window.$, - - // A central reference to the root jQuery(document) - rootjQuery, - - // A simple way to check for HTML strings or ID strings - // (both of which we optimize for) - quickExpr = /^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/, - - // Check if a string has a non-whitespace character in it - rnotwhite = /\S/, - - // Used for trimming whitespace - trimLeft = /^\s+/, - trimRight = /\s+$/, - - // Check for digits - rdigit = /\d/, - - // Match a standalone tag - rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>)?$/, - - // JSON RegExp - rvalidchars = /^[\],:{}\s]*$/, - rvalidescape = /\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, - rvalidtokens = /"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, - rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g, - - // Useragent RegExp - rwebkit = /(webkit)[ \/]([\w.]+)/, - ropera = /(opera)(?:.*version)?[ \/]([\w.]+)/, - rmsie = /(msie) ([\w.]+)/, - rmozilla = /(mozilla)(?:.*? rv:([\w.]+))?/, - - // Keep a UserAgent string for use with jQuery.browser - userAgent = navigator.userAgent, - - // For matching the engine and version of the browser - browserMatch, - - // The deferred used on DOM ready - readyList, - - // The ready event handler - DOMContentLoaded, - - // Save a reference to some core methods - toString = Object.prototype.toString, - hasOwn = Object.prototype.hasOwnProperty, - push = Array.prototype.push, - slice = Array.prototype.slice, - trim = String.prototype.trim, - indexOf = Array.prototype.indexOf, - - // [[Class]] -> type pairs - class2type = {}; - -jQuery.fn = jQuery.prototype = { - constructor: jQuery, - init: function( selector, context, rootjQuery ) { - var match, elem, ret, doc; - - // Handle $(""), $(null), or $(undefined) - if ( !selector ) { - return this; - } - - // Handle $(DOMElement) - if ( selector.nodeType ) { - this.context = this[0] = selector; - this.length = 1; - return this; - } - - // The body element only exists once, optimize finding it - if ( selector === "body" && !context && document.body ) { - this.context = document; - this[0] = document.body; - this.selector = selector; - this.length = 1; - return this; - } - - // Handle HTML strings - if ( typeof selector === "string" ) { - // Are we dealing with HTML string or an ID? - if ( selector.charAt(0) === "<" && selector.charAt( selector.length - 1 ) === ">" && selector.length >= 3 ) { - // Assume that strings that start and end with <> are HTML and skip the regex check - match = [ null, selector, null ]; - - } else { - match = quickExpr.exec( selector ); - } - - // Verify a match, and that no context was specified for #id - if ( match && (match[1] || !context) ) { - - // HANDLE: $(html) -> $(array) - if ( match[1] ) { - context = context instanceof jQuery ? context[0] : context; - doc = (context ? context.ownerDocument || context : document); - - // If a single string is passed in and it's a single tag - // just do a createElement and skip the rest - ret = rsingleTag.exec( selector ); - - if ( ret ) { - if ( jQuery.isPlainObject( context ) ) { - selector = [ document.createElement( ret[1] ) ]; - jQuery.fn.attr.call( selector, context, true ); - - } else { - selector = [ doc.createElement( ret[1] ) ]; - } - - } else { - ret = jQuery.buildFragment( [ match[1] ], [ doc ] ); - selector = (ret.cacheable ? jQuery.clone(ret.fragment) : ret.fragment).childNodes; - } - - return jQuery.merge( this, selector ); - - // HANDLE: $("#id") - } else { - elem = document.getElementById( match[2] ); - - // Check parentNode to catch when Blackberry 4.6 returns - // nodes that are no longer in the document #6963 - if ( elem && elem.parentNode ) { - // Handle the case where IE and Opera return items - // by name instead of ID - if ( elem.id !== match[2] ) { - return rootjQuery.find( selector ); - } - - // Otherwise, we inject the element directly into the jQuery object - this.length = 1; - this[0] = elem; - } - - this.context = document; - this.selector = selector; - return this; - } - - // HANDLE: $(expr, $(...)) - } else if ( !context || context.jquery ) { - return (context || rootjQuery).find( selector ); - - // HANDLE: $(expr, context) - // (which is just equivalent to: $(context).find(expr) - } else { - return this.constructor( context ).find( selector ); - } - - // HANDLE: $(function) - // Shortcut for document ready - } else if ( jQuery.isFunction( selector ) ) { - return rootjQuery.ready( selector ); - } - - if (selector.selector !== undefined) { - this.selector = selector.selector; - this.context = selector.context; - } - - return jQuery.makeArray( selector, this ); - }, - - // Start with an empty selector - selector: "", - - // The current version of jQuery being used - jquery: "1.6.1", - - // The default length of a jQuery object is 0 - length: 0, - - // The number of elements contained in the matched element set - size: function() { - return this.length; - }, - - toArray: function() { - return slice.call( this, 0 ); - }, - - // Get the Nth element in the matched element set OR - // Get the whole matched element set as a clean array - get: function( num ) { - return num == null ? - - // Return a 'clean' array - this.toArray() : - - // Return just the object - ( num < 0 ? this[ this.length + num ] : this[ num ] ); - }, - - // Take an array of elements and push it onto the stack - // (returning the new matched element set) - pushStack: function( elems, name, selector ) { - // Build a new jQuery matched element set - var ret = this.constructor(); - - if ( jQuery.isArray( elems ) ) { - push.apply( ret, elems ); - - } else { - jQuery.merge( ret, elems ); - } - - // Add the old object onto the stack (as a reference) - ret.prevObject = this; - - ret.context = this.context; - - if ( name === "find" ) { - ret.selector = this.selector + (this.selector ? " " : "") + selector; - } else if ( name ) { - ret.selector = this.selector + "." + name + "(" + selector + ")"; - } - - // Return the newly-formed element set - return ret; - }, - - // Execute a callback for every element in the matched set. - // (You can seed the arguments with an array of args, but this is - // only used internally.) - each: function( callback, args ) { - return jQuery.each( this, callback, args ); - }, - - ready: function( fn ) { - // Attach the listeners - jQuery.bindReady(); - - // Add the callback - readyList.done( fn ); - - return this; - }, - - eq: function( i ) { - return i === -1 ? - this.slice( i ) : - this.slice( i, +i + 1 ); - }, - - first: function() { - return this.eq( 0 ); - }, - - last: function() { - return this.eq( -1 ); - }, - - slice: function() { - return this.pushStack( slice.apply( this, arguments ), - "slice", slice.call(arguments).join(",") ); - }, - - map: function( callback ) { - return this.pushStack( jQuery.map(this, function( elem, i ) { - return callback.call( elem, i, elem ); - })); - }, - - end: function() { - return this.prevObject || this.constructor(null); - }, - - // For internal use only. - // Behaves like an Array's method, not like a jQuery method. - push: push, - sort: [].sort, - splice: [].splice -}; - -// Give the init function the jQuery prototype for later instantiation -jQuery.fn.init.prototype = jQuery.fn; - -jQuery.extend = jQuery.fn.extend = function() { - var options, name, src, copy, copyIsArray, clone, - target = arguments[0] || {}, - i = 1, - length = arguments.length, - deep = false; - - // Handle a deep copy situation - if ( typeof target === "boolean" ) { - deep = target; - target = arguments[1] || {}; - // skip the boolean and the target - i = 2; - } - - // Handle case when target is a string or something (possible in deep copy) - if ( typeof target !== "object" && !jQuery.isFunction(target) ) { - target = {}; - } - - // extend jQuery itself if only one argument is passed - if ( length === i ) { - target = this; - --i; - } - - for ( ; i < length; i++ ) { - // Only deal with non-null/undefined values - if ( (options = arguments[ i ]) != null ) { - // Extend the base object - for ( name in options ) { - src = target[ name ]; - copy = options[ name ]; - - // Prevent never-ending loop - if ( target === copy ) { - continue; - } - - // Recurse if we're merging plain objects or arrays - if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) { - if ( copyIsArray ) { - copyIsArray = false; - clone = src && jQuery.isArray(src) ? src : []; - - } else { - clone = src && jQuery.isPlainObject(src) ? src : {}; - } - - // Never move original objects, clone them - target[ name ] = jQuery.extend( deep, clone, copy ); - - // Don't bring in undefined values - } else if ( copy !== undefined ) { - target[ name ] = copy; - } - } - } - } - - // Return the modified object - return target; -}; - -jQuery.extend({ - noConflict: function( deep ) { - if ( window.$ === jQuery ) { - window.$ = _$; - } - - if ( deep && window.jQuery === jQuery ) { - window.jQuery = _jQuery; - } - - return jQuery; - }, - - // Is the DOM ready to be used? Set to true once it occurs. - isReady: false, - - // A counter to track how many items to wait for before - // the ready event fires. See #6781 - readyWait: 1, - - // Hold (or release) the ready event - holdReady: function( hold ) { - if ( hold ) { - jQuery.readyWait++; - } else { - jQuery.ready( true ); - } - }, - - // Handle when the DOM is ready - ready: function( wait ) { - // Either a released hold or an DOMready/load event and not yet ready - if ( (wait === true && !--jQuery.readyWait) || (wait !== true && !jQuery.isReady) ) { - // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). - if ( !document.body ) { - return setTimeout( jQuery.ready, 1 ); - } - - // Remember that the DOM is ready - jQuery.isReady = true; - - // If a normal DOM Ready event fired, decrement, and wait if need be - if ( wait !== true && --jQuery.readyWait > 0 ) { - return; - } - - // If there are functions bound, to execute - readyList.resolveWith( document, [ jQuery ] ); - - // Trigger any bound ready events - if ( jQuery.fn.trigger ) { - jQuery( document ).trigger( "ready" ).unbind( "ready" ); - } - } - }, - - bindReady: function() { - if ( readyList ) { - return; - } - - readyList = jQuery._Deferred(); - - // Catch cases where $(document).ready() is called after the - // browser event has already occurred. - if ( document.readyState === "complete" ) { - // Handle it asynchronously to allow scripts the opportunity to delay ready - return setTimeout( jQuery.ready, 1 ); - } - - // Mozilla, Opera and webkit nightlies currently support this event - if ( document.addEventListener ) { - // Use the handy event callback - document.addEventListener( "DOMContentLoaded", DOMContentLoaded, false ); - - // A fallback to window.onload, that will always work - window.addEventListener( "load", jQuery.ready, false ); - - // If IE event model is used - } else if ( document.attachEvent ) { - // ensure firing before onload, - // maybe late but safe also for iframes - document.attachEvent( "onreadystatechange", DOMContentLoaded ); - - // A fallback to window.onload, that will always work - window.attachEvent( "onload", jQuery.ready ); - - // If IE and not a frame - // continually check to see if the document is ready - var toplevel = false; - - try { - toplevel = window.frameElement == null; - } catch(e) {} - - if ( document.documentElement.doScroll && toplevel ) { - doScrollCheck(); - } - } - }, - - // See test/unit/core.js for details concerning isFunction. - // Since version 1.3, DOM methods and functions like alert - // aren't supported. They return false on IE (#2968). - isFunction: function( obj ) { - return jQuery.type(obj) === "function"; - }, - - isArray: Array.isArray || function( obj ) { - return jQuery.type(obj) === "array"; - }, - - // A crude way of determining if an object is a window - isWindow: function( obj ) { - return obj && typeof obj === "object" && "setInterval" in obj; - }, - - isNaN: function( obj ) { - return obj == null || !rdigit.test( obj ) || isNaN( obj ); - }, - - type: function( obj ) { - return obj == null ? - String( obj ) : - class2type[ toString.call(obj) ] || "object"; - }, - - isPlainObject: function( obj ) { - // Must be an Object. - // Because of IE, we also have to check the presence of the constructor property. - // Make sure that DOM nodes and window objects don't pass through, as well - if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) { - return false; - } - - // Not own constructor property must be Object - if ( obj.constructor && - !hasOwn.call(obj, "constructor") && - !hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) { - return false; - } - - // Own properties are enumerated firstly, so to speed up, - // if last one is own, then all properties are own. - - var key; - for ( key in obj ) {} - - return key === undefined || hasOwn.call( obj, key ); - }, - - isEmptyObject: function( obj ) { - for ( var name in obj ) { - return false; - } - return true; - }, - - error: function( msg ) { - throw msg; - }, - - parseJSON: function( data ) { - if ( typeof data !== "string" || !data ) { - return null; - } - - // Make sure leading/trailing whitespace is removed (IE can't handle it) - data = jQuery.trim( data ); - - // Attempt to parse using the native JSON parser first - if ( window.JSON && window.JSON.parse ) { - return window.JSON.parse( data ); - } - - // Make sure the incoming data is actual JSON - // Logic borrowed from http://json.org/json2.js - if ( rvalidchars.test( data.replace( rvalidescape, "@" ) - .replace( rvalidtokens, "]" ) - .replace( rvalidbraces, "")) ) { - - return (new Function( "return " + data ))(); - - } - jQuery.error( "Invalid JSON: " + data ); - }, - - // Cross-browser xml parsing - // (xml & tmp used internally) - parseXML: function( data , xml , tmp ) { - - if ( window.DOMParser ) { // Standard - tmp = new DOMParser(); - xml = tmp.parseFromString( data , "text/xml" ); - } else { // IE - xml = new ActiveXObject( "Microsoft.XMLDOM" ); - xml.async = "false"; - xml.loadXML( data ); - } - - tmp = xml.documentElement; - - if ( ! tmp || ! tmp.nodeName || tmp.nodeName === "parsererror" ) { - jQuery.error( "Invalid XML: " + data ); - } - - return xml; - }, - - noop: function() {}, - - // Evaluates a script in a global context - // Workarounds based on findings by Jim Driscoll - // http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context - globalEval: function( data ) { - if ( data && rnotwhite.test( data ) ) { - // We use execScript on Internet Explorer - // We use an anonymous function so that context is window - // rather than jQuery in Firefox - ( window.execScript || function( data ) { - window[ "eval" ].call( window, data ); - } )( data ); - } - }, - - nodeName: function( elem, name ) { - return elem.nodeName && elem.nodeName.toUpperCase() === name.toUpperCase(); - }, - - // args is for internal usage only - each: function( object, callback, args ) { - var name, i = 0, - length = object.length, - isObj = length === undefined || jQuery.isFunction( object ); - - if ( args ) { - if ( isObj ) { - for ( name in object ) { - if ( callback.apply( object[ name ], args ) === false ) { - break; - } - } - } else { - for ( ; i < length; ) { - if ( callback.apply( object[ i++ ], args ) === false ) { - break; - } - } - } - - // A special, fast, case for the most common use of each - } else { - if ( isObj ) { - for ( name in object ) { - if ( callback.call( object[ name ], name, object[ name ] ) === false ) { - break; - } - } - } else { - for ( ; i < length; ) { - if ( callback.call( object[ i ], i, object[ i++ ] ) === false ) { - break; - } - } - } - } - - return object; - }, - - // Use native String.trim function wherever possible - trim: trim ? - function( text ) { - return text == null ? - "" : - trim.call( text ); - } : - - // Otherwise use our own trimming functionality - function( text ) { - return text == null ? - "" : - text.toString().replace( trimLeft, "" ).replace( trimRight, "" ); - }, - - // results is for internal usage only - makeArray: function( array, results ) { - var ret = results || []; - - if ( array != null ) { - // The window, strings (and functions) also have 'length' - // The extra typeof function check is to prevent crashes - // in Safari 2 (See: #3039) - // Tweaked logic slightly to handle Blackberry 4.7 RegExp issues #6930 - var type = jQuery.type( array ); - - if ( array.length == null || type === "string" || type === "function" || type === "regexp" || jQuery.isWindow( array ) ) { - push.call( ret, array ); - } else { - jQuery.merge( ret, array ); - } - } - - return ret; - }, - - inArray: function( elem, array ) { - - if ( indexOf ) { - return indexOf.call( array, elem ); - } - - for ( var i = 0, length = array.length; i < length; i++ ) { - if ( array[ i ] === elem ) { - return i; - } - } - - return -1; - }, - - merge: function( first, second ) { - var i = first.length, - j = 0; - - if ( typeof second.length === "number" ) { - for ( var l = second.length; j < l; j++ ) { - first[ i++ ] = second[ j ]; - } - - } else { - while ( second[j] !== undefined ) { - first[ i++ ] = second[ j++ ]; - } - } - - first.length = i; - - return first; - }, - - grep: function( elems, callback, inv ) { - var ret = [], retVal; - inv = !!inv; - - // Go through the array, only saving the items - // that pass the validator function - for ( var i = 0, length = elems.length; i < length; i++ ) { - retVal = !!callback( elems[ i ], i ); - if ( inv !== retVal ) { - ret.push( elems[ i ] ); - } - } - - return ret; - }, - - // arg is for internal usage only - map: function( elems, callback, arg ) { - var value, key, ret = [], - i = 0, - length = elems.length, - // jquery objects are treated as arrays - isArray = elems instanceof jQuery || length !== undefined && typeof length === "number" && ( ( length > 0 && elems[ 0 ] && elems[ length -1 ] ) || length === 0 || jQuery.isArray( elems ) ) ; - - // Go through the array, translating each of the items to their - if ( isArray ) { - for ( ; i < length; i++ ) { - value = callback( elems[ i ], i, arg ); - - if ( value != null ) { - ret[ ret.length ] = value; - } - } - - // Go through every key on the object, - } else { - for ( key in elems ) { - value = callback( elems[ key ], key, arg ); - - if ( value != null ) { - ret[ ret.length ] = value; - } - } - } - - // Flatten any nested arrays - return ret.concat.apply( [], ret ); - }, - - // A global GUID counter for objects - guid: 1, - - // Bind a function to a context, optionally partially applying any - // arguments. - proxy: function( fn, context ) { - if ( typeof context === "string" ) { - var tmp = fn[ context ]; - context = fn; - fn = tmp; - } - - // Quick check to determine if target is callable, in the spec - // this throws a TypeError, but we will just return undefined. - if ( !jQuery.isFunction( fn ) ) { - return undefined; - } - - // Simulated bind - var args = slice.call( arguments, 2 ), - proxy = function() { - return fn.apply( context, args.concat( slice.call( arguments ) ) ); - }; - - // Set the guid of unique handler to the same of original handler, so it can be removed - proxy.guid = fn.guid = fn.guid || proxy.guid || jQuery.guid++; - - return proxy; - }, - - // Mutifunctional method to get and set values to a collection - // The value/s can be optionally by executed if its a function - access: function( elems, key, value, exec, fn, pass ) { - var length = elems.length; - - // Setting many attributes - if ( typeof key === "object" ) { - for ( var k in key ) { - jQuery.access( elems, k, key[k], exec, fn, value ); - } - return elems; - } - - // Setting one attribute - if ( value !== undefined ) { - // Optionally, function values get executed if exec is true - exec = !pass && exec && jQuery.isFunction(value); - - for ( var i = 0; i < length; i++ ) { - fn( elems[i], key, exec ? value.call( elems[i], i, fn( elems[i], key ) ) : value, pass ); - } - - return elems; - } - - // Getting an attribute - return length ? fn( elems[0], key ) : undefined; - }, - - now: function() { - return (new Date()).getTime(); - }, - - // Use of jQuery.browser is frowned upon. - // More details: http://docs.jquery.com/Utilities/jQuery.browser - uaMatch: function( ua ) { - ua = ua.toLowerCase(); - - var match = rwebkit.exec( ua ) || - ropera.exec( ua ) || - rmsie.exec( ua ) || - ua.indexOf("compatible") < 0 && rmozilla.exec( ua ) || - []; - - return { browser: match[1] || "", version: match[2] || "0" }; - }, - - sub: function() { - function jQuerySub( selector, context ) { - return new jQuerySub.fn.init( selector, context ); - } - jQuery.extend( true, jQuerySub, this ); - jQuerySub.superclass = this; - jQuerySub.fn = jQuerySub.prototype = this(); - jQuerySub.fn.constructor = jQuerySub; - jQuerySub.sub = this.sub; - jQuerySub.fn.init = function init( selector, context ) { - if ( context && context instanceof jQuery && !(context instanceof jQuerySub) ) { - context = jQuerySub( context ); - } - - return jQuery.fn.init.call( this, selector, context, rootjQuerySub ); - }; - jQuerySub.fn.init.prototype = jQuerySub.fn; - var rootjQuerySub = jQuerySub(document); - return jQuerySub; - }, - - browser: {} -}); - -// Populate the class2type map -jQuery.each("Boolean Number String Function Array Date RegExp Object".split(" "), function(i, name) { - class2type[ "[object " + name + "]" ] = name.toLowerCase(); -}); - -browserMatch = jQuery.uaMatch( userAgent ); -if ( browserMatch.browser ) { - jQuery.browser[ browserMatch.browser ] = true; - jQuery.browser.version = browserMatch.version; -} - -// Deprecated, use jQuery.browser.webkit instead -if ( jQuery.browser.webkit ) { - jQuery.browser.safari = true; -} - -// IE doesn't match non-breaking spaces with \s -if ( rnotwhite.test( "\xA0" ) ) { - trimLeft = /^[\s\xA0]+/; - trimRight = /[\s\xA0]+$/; -} - -// All jQuery objects should point back to these -rootjQuery = jQuery(document); - -// Cleanup functions for the document ready method -if ( document.addEventListener ) { - DOMContentLoaded = function() { - document.removeEventListener( "DOMContentLoaded", DOMContentLoaded, false ); - jQuery.ready(); - }; - -} else if ( document.attachEvent ) { - DOMContentLoaded = function() { - // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). - if ( document.readyState === "complete" ) { - document.detachEvent( "onreadystatechange", DOMContentLoaded ); - jQuery.ready(); - } - }; -} - -// The DOM ready check for Internet Explorer -function doScrollCheck() { - if ( jQuery.isReady ) { - return; - } - - try { - // If IE is used, use the trick by Diego Perini - // http://javascript.nwbox.com/IEContentLoaded/ - document.documentElement.doScroll("left"); - } catch(e) { - setTimeout( doScrollCheck, 1 ); - return; - } - - // and execute any waiting functions - jQuery.ready(); -} - -// Expose jQuery to the global object -return jQuery; - -})(); - - -var // Promise methods - promiseMethods = "done fail isResolved isRejected promise then always pipe".split( " " ), - // Static reference to slice - sliceDeferred = [].slice; - -jQuery.extend({ - // Create a simple deferred (one callbacks list) - _Deferred: function() { - var // callbacks list - callbacks = [], - // stored [ context , args ] - fired, - // to avoid firing when already doing so - firing, - // flag to know if the deferred has been cancelled - cancelled, - // the deferred itself - deferred = { - - // done( f1, f2, ...) - done: function() { - if ( !cancelled ) { - var args = arguments, - i, - length, - elem, - type, - _fired; - if ( fired ) { - _fired = fired; - fired = 0; - } - for ( i = 0, length = args.length; i < length; i++ ) { - elem = args[ i ]; - type = jQuery.type( elem ); - if ( type === "array" ) { - deferred.done.apply( deferred, elem ); - } else if ( type === "function" ) { - callbacks.push( elem ); - } - } - if ( _fired ) { - deferred.resolveWith( _fired[ 0 ], _fired[ 1 ] ); - } - } - return this; - }, - - // resolve with given context and args - resolveWith: function( context, args ) { - if ( !cancelled && !fired && !firing ) { - // make sure args are available (#8421) - args = args || []; - firing = 1; - try { - while( callbacks[ 0 ] ) { - callbacks.shift().apply( context, args ); - } - } - finally { - fired = [ context, args ]; - firing = 0; - } - } - return this; - }, - - // resolve with this as context and given arguments - resolve: function() { - deferred.resolveWith( this, arguments ); - return this; - }, - - // Has this deferred been resolved? - isResolved: function() { - return !!( firing || fired ); - }, - - // Cancel - cancel: function() { - cancelled = 1; - callbacks = []; - return this; - } - }; - - return deferred; - }, - - // Full fledged deferred (two callbacks list) - Deferred: function( func ) { - var deferred = jQuery._Deferred(), - failDeferred = jQuery._Deferred(), - promise; - // Add errorDeferred methods, then and promise - jQuery.extend( deferred, { - then: function( doneCallbacks, failCallbacks ) { - deferred.done( doneCallbacks ).fail( failCallbacks ); - return this; - }, - always: function() { - return deferred.done.apply( deferred, arguments ).fail.apply( this, arguments ); - }, - fail: failDeferred.done, - rejectWith: failDeferred.resolveWith, - reject: failDeferred.resolve, - isRejected: failDeferred.isResolved, - pipe: function( fnDone, fnFail ) { - return jQuery.Deferred(function( newDefer ) { - jQuery.each( { - done: [ fnDone, "resolve" ], - fail: [ fnFail, "reject" ] - }, function( handler, data ) { - var fn = data[ 0 ], - action = data[ 1 ], - returned; - if ( jQuery.isFunction( fn ) ) { - deferred[ handler ](function() { - returned = fn.apply( this, arguments ); - if ( returned && jQuery.isFunction( returned.promise ) ) { - returned.promise().then( newDefer.resolve, newDefer.reject ); - } else { - newDefer[ action ]( returned ); - } - }); - } else { - deferred[ handler ]( newDefer[ action ] ); - } - }); - }).promise(); - }, - // Get a promise for this deferred - // If obj is provided, the promise aspect is added to the object - promise: function( obj ) { - if ( obj == null ) { - if ( promise ) { - return promise; - } - promise = obj = {}; - } - var i = promiseMethods.length; - while( i-- ) { - obj[ promiseMethods[i] ] = deferred[ promiseMethods[i] ]; - } - return obj; - } - }); - // Make sure only one callback list will be used - deferred.done( failDeferred.cancel ).fail( deferred.cancel ); - // Unexpose cancel - delete deferred.cancel; - // Call given func if any - if ( func ) { - func.call( deferred, deferred ); - } - return deferred; - }, - - // Deferred helper - when: function( firstParam ) { - var args = arguments, - i = 0, - length = args.length, - count = length, - deferred = length <= 1 && firstParam && jQuery.isFunction( firstParam.promise ) ? - firstParam : - jQuery.Deferred(); - function resolveFunc( i ) { - return function( value ) { - args[ i ] = arguments.length > 1 ? sliceDeferred.call( arguments, 0 ) : value; - if ( !( --count ) ) { - // Strange bug in FF4: - // Values changed onto the arguments object sometimes end up as undefined values - // outside the $.when method. Cloning the object into a fresh array solves the issue - deferred.resolveWith( deferred, sliceDeferred.call( args, 0 ) ); - } - }; - } - if ( length > 1 ) { - for( ; i < length; i++ ) { - if ( args[ i ] && jQuery.isFunction( args[ i ].promise ) ) { - args[ i ].promise().then( resolveFunc(i), deferred.reject ); - } else { - --count; - } - } - if ( !count ) { - deferred.resolveWith( deferred, args ); - } - } else if ( deferred !== firstParam ) { - deferred.resolveWith( deferred, length ? [ firstParam ] : [] ); - } - return deferred.promise(); - } -}); - - - -jQuery.support = (function() { - - var div = document.createElement( "div" ), - documentElement = document.documentElement, - all, - a, - select, - opt, - input, - marginDiv, - support, - fragment, - body, - bodyStyle, - tds, - events, - eventName, - i, - isSupported; - - // Preliminary tests - div.setAttribute("className", "t"); - div.innerHTML = "
a"; - - all = div.getElementsByTagName( "*" ); - a = div.getElementsByTagName( "a" )[ 0 ]; - - // Can't get basic test support - if ( !all || !all.length || !a ) { - return {}; - } - - // First batch of supports tests - select = document.createElement( "select" ); - opt = select.appendChild( document.createElement("option") ); - input = div.getElementsByTagName( "input" )[ 0 ]; - - support = { - // IE strips leading whitespace when .innerHTML is used - leadingWhitespace: ( div.firstChild.nodeType === 3 ), - - // Make sure that tbody elements aren't automatically inserted - // IE will insert them into empty tables - tbody: !div.getElementsByTagName( "tbody" ).length, - - // Make sure that link elements get serialized correctly by innerHTML - // This requires a wrapper element in IE - htmlSerialize: !!div.getElementsByTagName( "link" ).length, - - // Get the style information from getAttribute - // (IE uses .cssText instead) - style: /top/.test( a.getAttribute("style") ), - - // Make sure that URLs aren't manipulated - // (IE normalizes it by default) - hrefNormalized: ( a.getAttribute( "href" ) === "/a" ), - - // Make sure that element opacity exists - // (IE uses filter instead) - // Use a regex to work around a WebKit issue. See #5145 - opacity: /^0.55$/.test( a.style.opacity ), - - // Verify style float existence - // (IE uses styleFloat instead of cssFloat) - cssFloat: !!a.style.cssFloat, - - // Make sure that if no value is specified for a checkbox - // that it defaults to "on". - // (WebKit defaults to "" instead) - checkOn: ( input.value === "on" ), - - // Make sure that a selected-by-default option has a working selected property. - // (WebKit defaults to false instead of true, IE too, if it's in an optgroup) - optSelected: opt.selected, - - // Test setAttribute on camelCase class. If it works, we need attrFixes when doing get/setAttribute (ie6/7) - getSetAttribute: div.className !== "t", - - // Will be defined later - submitBubbles: true, - changeBubbles: true, - focusinBubbles: false, - deleteExpando: true, - noCloneEvent: true, - inlineBlockNeedsLayout: false, - shrinkWrapBlocks: false, - reliableMarginRight: true - }; - - // Make sure checked status is properly cloned - input.checked = true; - support.noCloneChecked = input.cloneNode( true ).checked; - - // Make sure that the options inside disabled selects aren't marked as disabled - // (WebKit marks them as disabled) - select.disabled = true; - support.optDisabled = !opt.disabled; - - // Test to see if it's possible to delete an expando from an element - // Fails in Internet Explorer - try { - delete div.test; - } catch( e ) { - support.deleteExpando = false; - } - - if ( !div.addEventListener && div.attachEvent && div.fireEvent ) { - div.attachEvent( "onclick", function click() { - // Cloning a node shouldn't copy over any - // bound event handlers (IE does this) - support.noCloneEvent = false; - div.detachEvent( "onclick", click ); - }); - div.cloneNode( true ).fireEvent( "onclick" ); - } - - // Check if a radio maintains it's value - // after being appended to the DOM - input = document.createElement("input"); - input.value = "t"; - input.setAttribute("type", "radio"); - support.radioValue = input.value === "t"; - - input.setAttribute("checked", "checked"); - div.appendChild( input ); - fragment = document.createDocumentFragment(); - fragment.appendChild( div.firstChild ); - - // WebKit doesn't clone checked state correctly in fragments - support.checkClone = fragment.cloneNode( true ).cloneNode( true ).lastChild.checked; - - div.innerHTML = ""; - - // Figure out if the W3C box model works as expected - div.style.width = div.style.paddingLeft = "1px"; - - // We use our own, invisible, body - body = document.createElement( "body" ); - bodyStyle = { - visibility: "hidden", - width: 0, - height: 0, - border: 0, - margin: 0, - // Set background to avoid IE crashes when removing (#9028) - background: "none" - }; - for ( i in bodyStyle ) { - body.style[ i ] = bodyStyle[ i ]; - } - body.appendChild( div ); - documentElement.insertBefore( body, documentElement.firstChild ); - - // Check if a disconnected checkbox will retain its checked - // value of true after appended to the DOM (IE6/7) - support.appendChecked = input.checked; - - support.boxModel = div.offsetWidth === 2; - - if ( "zoom" in div.style ) { - // Check if natively block-level elements act like inline-block - // elements when setting their display to 'inline' and giving - // them layout - // (IE < 8 does this) - div.style.display = "inline"; - div.style.zoom = 1; - support.inlineBlockNeedsLayout = ( div.offsetWidth === 2 ); - - // Check if elements with layout shrink-wrap their children - // (IE 6 does this) - div.style.display = ""; - div.innerHTML = "
"; - support.shrinkWrapBlocks = ( div.offsetWidth !== 2 ); - } - - div.innerHTML = "
t
"; - tds = div.getElementsByTagName( "td" ); - - // Check if table cells still have offsetWidth/Height when they are set - // to display:none and there are still other visible table cells in a - // table row; if so, offsetWidth/Height are not reliable for use when - // determining if an element has been hidden directly using - // display:none (it is still safe to use offsets if a parent element is - // hidden; don safety goggles and see bug #4512 for more information). - // (only IE 8 fails this test) - isSupported = ( tds[ 0 ].offsetHeight === 0 ); - - tds[ 0 ].style.display = ""; - tds[ 1 ].style.display = "none"; - - // Check if empty table cells still have offsetWidth/Height - // (IE < 8 fail this test) - support.reliableHiddenOffsets = isSupported && ( tds[ 0 ].offsetHeight === 0 ); - div.innerHTML = ""; - - // Check if div with explicit width and no margin-right incorrectly - // gets computed margin-right based on width of container. For more - // info see bug #3333 - // Fails in WebKit before Feb 2011 nightlies - // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right - if ( document.defaultView && document.defaultView.getComputedStyle ) { - marginDiv = document.createElement( "div" ); - marginDiv.style.width = "0"; - marginDiv.style.marginRight = "0"; - div.appendChild( marginDiv ); - support.reliableMarginRight = - ( parseInt( ( document.defaultView.getComputedStyle( marginDiv, null ) || { marginRight: 0 } ).marginRight, 10 ) || 0 ) === 0; - } - - // Remove the body element we added - body.innerHTML = ""; - documentElement.removeChild( body ); - - // Technique from Juriy Zaytsev - // http://thinkweb2.com/projects/prototype/detecting-event-support-without-browser-sniffing/ - // We only care about the case where non-standard event systems - // are used, namely in IE. Short-circuiting here helps us to - // avoid an eval call (in setAttribute) which can cause CSP - // to go haywire. See: https://developer.mozilla.org/en/Security/CSP - if ( div.attachEvent ) { - for( i in { - submit: 1, - change: 1, - focusin: 1 - } ) { - eventName = "on" + i; - isSupported = ( eventName in div ); - if ( !isSupported ) { - div.setAttribute( eventName, "return;" ); - isSupported = ( typeof div[ eventName ] === "function" ); - } - support[ i + "Bubbles" ] = isSupported; - } - } - - return support; -})(); - -// Keep track of boxModel -jQuery.boxModel = jQuery.support.boxModel; - - - - -var rbrace = /^(?:\{.*\}|\[.*\])$/, - rmultiDash = /([a-z])([A-Z])/g; - -jQuery.extend({ - cache: {}, - - // Please use with caution - uuid: 0, - - // Unique for each copy of jQuery on the page - // Non-digits removed to match rinlinejQuery - expando: "jQuery" + ( jQuery.fn.jquery + Math.random() ).replace( /\D/g, "" ), - - // The following elements throw uncatchable exceptions if you - // attempt to add expando properties to them. - noData: { - "embed": true, - // Ban all objects except for Flash (which handle expandos) - "object": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000", - "applet": true - }, - - hasData: function( elem ) { - elem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ]; - - return !!elem && !isEmptyDataObject( elem ); - }, - - data: function( elem, name, data, pvt /* Internal Use Only */ ) { - if ( !jQuery.acceptData( elem ) ) { - return; - } - - var internalKey = jQuery.expando, getByName = typeof name === "string", thisCache, - - // We have to handle DOM nodes and JS objects differently because IE6-7 - // can't GC object references properly across the DOM-JS boundary - isNode = elem.nodeType, - - // Only DOM nodes need the global jQuery cache; JS object data is - // attached directly to the object so GC can occur automatically - cache = isNode ? jQuery.cache : elem, - - // Only defining an ID for JS objects if its cache already exists allows - // the code to shortcut on the same path as a DOM node with no cache - id = isNode ? elem[ jQuery.expando ] : elem[ jQuery.expando ] && jQuery.expando; - - // Avoid doing any more work than we need to when trying to get data on an - // object that has no data at all - if ( (!id || (pvt && id && !cache[ id ][ internalKey ])) && getByName && data === undefined ) { - return; - } - - if ( !id ) { - // Only DOM nodes need a new unique ID for each element since their data - // ends up in the global cache - if ( isNode ) { - elem[ jQuery.expando ] = id = ++jQuery.uuid; - } else { - id = jQuery.expando; - } - } - - if ( !cache[ id ] ) { - cache[ id ] = {}; - - // TODO: This is a hack for 1.5 ONLY. Avoids exposing jQuery - // metadata on plain JS objects when the object is serialized using - // JSON.stringify - if ( !isNode ) { - cache[ id ].toJSON = jQuery.noop; - } - } - - // An object can be passed to jQuery.data instead of a key/value pair; this gets - // shallow copied over onto the existing cache - if ( typeof name === "object" || typeof name === "function" ) { - if ( pvt ) { - cache[ id ][ internalKey ] = jQuery.extend(cache[ id ][ internalKey ], name); - } else { - cache[ id ] = jQuery.extend(cache[ id ], name); - } - } - - thisCache = cache[ id ]; - - // Internal jQuery data is stored in a separate object inside the object's data - // cache in order to avoid key collisions between internal data and user-defined - // data - if ( pvt ) { - if ( !thisCache[ internalKey ] ) { - thisCache[ internalKey ] = {}; - } - - thisCache = thisCache[ internalKey ]; - } - - if ( data !== undefined ) { - thisCache[ jQuery.camelCase( name ) ] = data; - } - - // TODO: This is a hack for 1.5 ONLY. It will be removed in 1.6. Users should - // not attempt to inspect the internal events object using jQuery.data, as this - // internal data object is undocumented and subject to change. - if ( name === "events" && !thisCache[name] ) { - return thisCache[ internalKey ] && thisCache[ internalKey ].events; - } - - return getByName ? thisCache[ jQuery.camelCase( name ) ] : thisCache; - }, - - removeData: function( elem, name, pvt /* Internal Use Only */ ) { - if ( !jQuery.acceptData( elem ) ) { - return; - } - - var internalKey = jQuery.expando, isNode = elem.nodeType, - - // See jQuery.data for more information - cache = isNode ? jQuery.cache : elem, - - // See jQuery.data for more information - id = isNode ? elem[ jQuery.expando ] : jQuery.expando; - - // If there is already no cache entry for this object, there is no - // purpose in continuing - if ( !cache[ id ] ) { - return; - } - - if ( name ) { - var thisCache = pvt ? cache[ id ][ internalKey ] : cache[ id ]; - - if ( thisCache ) { - delete thisCache[ name ]; - - // If there is no data left in the cache, we want to continue - // and let the cache object itself get destroyed - if ( !isEmptyDataObject(thisCache) ) { - return; - } - } - } - - // See jQuery.data for more information - if ( pvt ) { - delete cache[ id ][ internalKey ]; - - // Don't destroy the parent cache unless the internal data object - // had been the only thing left in it - if ( !isEmptyDataObject(cache[ id ]) ) { - return; - } - } - - var internalCache = cache[ id ][ internalKey ]; - - // Browsers that fail expando deletion also refuse to delete expandos on - // the window, but it will allow it on all other JS objects; other browsers - // don't care - if ( jQuery.support.deleteExpando || cache != window ) { - delete cache[ id ]; - } else { - cache[ id ] = null; - } - - // We destroyed the entire user cache at once because it's faster than - // iterating through each key, but we need to continue to persist internal - // data if it existed - if ( internalCache ) { - cache[ id ] = {}; - // TODO: This is a hack for 1.5 ONLY. Avoids exposing jQuery - // metadata on plain JS objects when the object is serialized using - // JSON.stringify - if ( !isNode ) { - cache[ id ].toJSON = jQuery.noop; - } - - cache[ id ][ internalKey ] = internalCache; - - // Otherwise, we need to eliminate the expando on the node to avoid - // false lookups in the cache for entries that no longer exist - } else if ( isNode ) { - // IE does not allow us to delete expando properties from nodes, - // nor does it have a removeAttribute function on Document nodes; - // we must handle all of these cases - if ( jQuery.support.deleteExpando ) { - delete elem[ jQuery.expando ]; - } else if ( elem.removeAttribute ) { - elem.removeAttribute( jQuery.expando ); - } else { - elem[ jQuery.expando ] = null; - } - } - }, - - // For internal use only. - _data: function( elem, name, data ) { - return jQuery.data( elem, name, data, true ); - }, - - // A method for determining if a DOM node can handle the data expando - acceptData: function( elem ) { - if ( elem.nodeName ) { - var match = jQuery.noData[ elem.nodeName.toLowerCase() ]; - - if ( match ) { - return !(match === true || elem.getAttribute("classid") !== match); - } - } - - return true; - } -}); - -jQuery.fn.extend({ - data: function( key, value ) { - var data = null; - - if ( typeof key === "undefined" ) { - if ( this.length ) { - data = jQuery.data( this[0] ); - - if ( this[0].nodeType === 1 ) { - var attr = this[0].attributes, name; - for ( var i = 0, l = attr.length; i < l; i++ ) { - name = attr[i].name; - - if ( name.indexOf( "data-" ) === 0 ) { - name = jQuery.camelCase( name.substring(5) ); - - dataAttr( this[0], name, data[ name ] ); - } - } - } - } - - return data; - - } else if ( typeof key === "object" ) { - return this.each(function() { - jQuery.data( this, key ); - }); - } - - var parts = key.split("."); - parts[1] = parts[1] ? "." + parts[1] : ""; - - if ( value === undefined ) { - data = this.triggerHandler("getData" + parts[1] + "!", [parts[0]]); - - // Try to fetch any internally stored data first - if ( data === undefined && this.length ) { - data = jQuery.data( this[0], key ); - data = dataAttr( this[0], key, data ); - } - - return data === undefined && parts[1] ? - this.data( parts[0] ) : - data; - - } else { - return this.each(function() { - var $this = jQuery( this ), - args = [ parts[0], value ]; - - $this.triggerHandler( "setData" + parts[1] + "!", args ); - jQuery.data( this, key, value ); - $this.triggerHandler( "changeData" + parts[1] + "!", args ); - }); - } - }, - - removeData: function( key ) { - return this.each(function() { - jQuery.removeData( this, key ); - }); - } -}); - -function dataAttr( elem, key, data ) { - // If nothing was found internally, try to fetch any - // data from the HTML5 data-* attribute - if ( data === undefined && elem.nodeType === 1 ) { - var name = "data-" + key.replace( rmultiDash, "$1-$2" ).toLowerCase(); - - data = elem.getAttribute( name ); - - if ( typeof data === "string" ) { - try { - data = data === "true" ? true : - data === "false" ? false : - data === "null" ? null : - !jQuery.isNaN( data ) ? parseFloat( data ) : - rbrace.test( data ) ? jQuery.parseJSON( data ) : - data; - } catch( e ) {} - - // Make sure we set the data so it isn't changed later - jQuery.data( elem, key, data ); - - } else { - data = undefined; - } - } - - return data; -} - -// TODO: This is a hack for 1.5 ONLY to allow objects with a single toJSON -// property to be considered empty objects; this property always exists in -// order to make sure JSON.stringify does not expose internal metadata -function isEmptyDataObject( obj ) { - for ( var name in obj ) { - if ( name !== "toJSON" ) { - return false; - } - } - - return true; -} - - - - -function handleQueueMarkDefer( elem, type, src ) { - var deferDataKey = type + "defer", - queueDataKey = type + "queue", - markDataKey = type + "mark", - defer = jQuery.data( elem, deferDataKey, undefined, true ); - if ( defer && - ( src === "queue" || !jQuery.data( elem, queueDataKey, undefined, true ) ) && - ( src === "mark" || !jQuery.data( elem, markDataKey, undefined, true ) ) ) { - // Give room for hard-coded callbacks to fire first - // and eventually mark/queue something else on the element - setTimeout( function() { - if ( !jQuery.data( elem, queueDataKey, undefined, true ) && - !jQuery.data( elem, markDataKey, undefined, true ) ) { - jQuery.removeData( elem, deferDataKey, true ); - defer.resolve(); - } - }, 0 ); - } -} - -jQuery.extend({ - - _mark: function( elem, type ) { - if ( elem ) { - type = (type || "fx") + "mark"; - jQuery.data( elem, type, (jQuery.data(elem,type,undefined,true) || 0) + 1, true ); - } - }, - - _unmark: function( force, elem, type ) { - if ( force !== true ) { - type = elem; - elem = force; - force = false; - } - if ( elem ) { - type = type || "fx"; - var key = type + "mark", - count = force ? 0 : ( (jQuery.data( elem, key, undefined, true) || 1 ) - 1 ); - if ( count ) { - jQuery.data( elem, key, count, true ); - } else { - jQuery.removeData( elem, key, true ); - handleQueueMarkDefer( elem, type, "mark" ); - } - } - }, - - queue: function( elem, type, data ) { - if ( elem ) { - type = (type || "fx") + "queue"; - var q = jQuery.data( elem, type, undefined, true ); - // Speed up dequeue by getting out quickly if this is just a lookup - if ( data ) { - if ( !q || jQuery.isArray(data) ) { - q = jQuery.data( elem, type, jQuery.makeArray(data), true ); - } else { - q.push( data ); - } - } - return q || []; - } - }, - - dequeue: function( elem, type ) { - type = type || "fx"; - - var queue = jQuery.queue( elem, type ), - fn = queue.shift(), - defer; - - // If the fx queue is dequeued, always remove the progress sentinel - if ( fn === "inprogress" ) { - fn = queue.shift(); - } - - if ( fn ) { - // Add a progress sentinel to prevent the fx queue from being - // automatically dequeued - if ( type === "fx" ) { - queue.unshift("inprogress"); - } - - fn.call(elem, function() { - jQuery.dequeue(elem, type); - }); - } - - if ( !queue.length ) { - jQuery.removeData( elem, type + "queue", true ); - handleQueueMarkDefer( elem, type, "queue" ); - } - } -}); - -jQuery.fn.extend({ - queue: function( type, data ) { - if ( typeof type !== "string" ) { - data = type; - type = "fx"; - } - - if ( data === undefined ) { - return jQuery.queue( this[0], type ); - } - return this.each(function() { - var queue = jQuery.queue( this, type, data ); - - if ( type === "fx" && queue[0] !== "inprogress" ) { - jQuery.dequeue( this, type ); - } - }); - }, - dequeue: function( type ) { - return this.each(function() { - jQuery.dequeue( this, type ); - }); - }, - // Based off of the plugin by Clint Helfers, with permission. - // http://blindsignals.com/index.php/2009/07/jquery-delay/ - delay: function( time, type ) { - time = jQuery.fx ? jQuery.fx.speeds[time] || time : time; - type = type || "fx"; - - return this.queue( type, function() { - var elem = this; - setTimeout(function() { - jQuery.dequeue( elem, type ); - }, time ); - }); - }, - clearQueue: function( type ) { - return this.queue( type || "fx", [] ); - }, - // Get a promise resolved when queues of a certain type - // are emptied (fx is the type by default) - promise: function( type, object ) { - if ( typeof type !== "string" ) { - object = type; - type = undefined; - } - type = type || "fx"; - var defer = jQuery.Deferred(), - elements = this, - i = elements.length, - count = 1, - deferDataKey = type + "defer", - queueDataKey = type + "queue", - markDataKey = type + "mark", - tmp; - function resolve() { - if ( !( --count ) ) { - defer.resolveWith( elements, [ elements ] ); - } - } - while( i-- ) { - if (( tmp = jQuery.data( elements[ i ], deferDataKey, undefined, true ) || - ( jQuery.data( elements[ i ], queueDataKey, undefined, true ) || - jQuery.data( elements[ i ], markDataKey, undefined, true ) ) && - jQuery.data( elements[ i ], deferDataKey, jQuery._Deferred(), true ) )) { - count++; - tmp.done( resolve ); - } - } - resolve(); - return defer.promise(); - } -}); - - - - -var rclass = /[\n\t\r]/g, - rspace = /\s+/, - rreturn = /\r/g, - rtype = /^(?:button|input)$/i, - rfocusable = /^(?:button|input|object|select|textarea)$/i, - rclickable = /^a(?:rea)?$/i, - rboolean = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i, - rinvalidChar = /\:/, - formHook, boolHook; - -jQuery.fn.extend({ - attr: function( name, value ) { - return jQuery.access( this, name, value, true, jQuery.attr ); - }, - - removeAttr: function( name ) { - return this.each(function() { - jQuery.removeAttr( this, name ); - }); - }, - - prop: function( name, value ) { - return jQuery.access( this, name, value, true, jQuery.prop ); - }, - - removeProp: function( name ) { - name = jQuery.propFix[ name ] || name; - return this.each(function() { - // try/catch handles cases where IE balks (such as removing a property on window) - try { - this[ name ] = undefined; - delete this[ name ]; - } catch( e ) {} - }); - }, - - addClass: function( value ) { - if ( jQuery.isFunction( value ) ) { - return this.each(function(i) { - var self = jQuery(this); - self.addClass( value.call(this, i, self.attr("class") || "") ); - }); - } - - if ( value && typeof value === "string" ) { - var classNames = (value || "").split( rspace ); - - for ( var i = 0, l = this.length; i < l; i++ ) { - var elem = this[i]; - - if ( elem.nodeType === 1 ) { - if ( !elem.className ) { - elem.className = value; - - } else { - var className = " " + elem.className + " ", - setClass = elem.className; - - for ( var c = 0, cl = classNames.length; c < cl; c++ ) { - if ( className.indexOf( " " + classNames[c] + " " ) < 0 ) { - setClass += " " + classNames[c]; - } - } - elem.className = jQuery.trim( setClass ); - } - } - } - } - - return this; - }, - - removeClass: function( value ) { - if ( jQuery.isFunction(value) ) { - return this.each(function(i) { - var self = jQuery(this); - self.removeClass( value.call(this, i, self.attr("class")) ); - }); - } - - if ( (value && typeof value === "string") || value === undefined ) { - var classNames = (value || "").split( rspace ); - - for ( var i = 0, l = this.length; i < l; i++ ) { - var elem = this[i]; - - if ( elem.nodeType === 1 && elem.className ) { - if ( value ) { - var className = (" " + elem.className + " ").replace(rclass, " "); - for ( var c = 0, cl = classNames.length; c < cl; c++ ) { - className = className.replace(" " + classNames[c] + " ", " "); - } - elem.className = jQuery.trim( className ); - - } else { - elem.className = ""; - } - } - } - } - - return this; - }, - - toggleClass: function( value, stateVal ) { - var type = typeof value, - isBool = typeof stateVal === "boolean"; - - if ( jQuery.isFunction( value ) ) { - return this.each(function(i) { - var self = jQuery(this); - self.toggleClass( value.call(this, i, self.attr("class"), stateVal), stateVal ); - }); - } - - return this.each(function() { - if ( type === "string" ) { - // toggle individual class names - var className, - i = 0, - self = jQuery( this ), - state = stateVal, - classNames = value.split( rspace ); - - while ( (className = classNames[ i++ ]) ) { - // check each className given, space seperated list - state = isBool ? state : !self.hasClass( className ); - self[ state ? "addClass" : "removeClass" ]( className ); - } - - } else if ( type === "undefined" || type === "boolean" ) { - if ( this.className ) { - // store className if set - jQuery._data( this, "__className__", this.className ); - } - - // toggle whole className - this.className = this.className || value === false ? "" : jQuery._data( this, "__className__" ) || ""; - } - }); - }, - - hasClass: function( selector ) { - var className = " " + selector + " "; - for ( var i = 0, l = this.length; i < l; i++ ) { - if ( (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) > -1 ) { - return true; - } - } - - return false; - }, - - val: function( value ) { - var hooks, ret, - elem = this[0]; - - if ( !arguments.length ) { - if ( elem ) { - hooks = jQuery.valHooks[ elem.nodeName.toLowerCase() ] || jQuery.valHooks[ elem.type ]; - - if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) { - return ret; - } - - return (elem.value || "").replace(rreturn, ""); - } - - return undefined; - } - - var isFunction = jQuery.isFunction( value ); - - return this.each(function( i ) { - var self = jQuery(this), val; - - if ( this.nodeType !== 1 ) { - return; - } - - if ( isFunction ) { - val = value.call( this, i, self.val() ); - } else { - val = value; - } - - // Treat null/undefined as ""; convert numbers to string - if ( val == null ) { - val = ""; - } else if ( typeof val === "number" ) { - val += ""; - } else if ( jQuery.isArray( val ) ) { - val = jQuery.map(val, function ( value ) { - return value == null ? "" : value + ""; - }); - } - - hooks = jQuery.valHooks[ this.nodeName.toLowerCase() ] || jQuery.valHooks[ this.type ]; - - // If set returns undefined, fall back to normal setting - if ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) === undefined ) { - this.value = val; - } - }); - } -}); - -jQuery.extend({ - valHooks: { - option: { - get: function( elem ) { - // attributes.value is undefined in Blackberry 4.7 but - // uses .value. See #6932 - var val = elem.attributes.value; - return !val || val.specified ? elem.value : elem.text; - } - }, - select: { - get: function( elem ) { - var value, - index = elem.selectedIndex, - values = [], - options = elem.options, - one = elem.type === "select-one"; - - // Nothing was selected - if ( index < 0 ) { - return null; - } - - // Loop through all the selected options - for ( var i = one ? index : 0, max = one ? index + 1 : options.length; i < max; i++ ) { - var option = options[ i ]; - - // Don't return options that are disabled or in a disabled optgroup - if ( option.selected && (jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null) && - (!option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" )) ) { - - // Get the specific value for the option - value = jQuery( option ).val(); - - // We don't need an array for one selects - if ( one ) { - return value; - } - - // Multi-Selects return an array - values.push( value ); - } - } - - // Fixes Bug #2551 -- select.val() broken in IE after form.reset() - if ( one && !values.length && options.length ) { - return jQuery( options[ index ] ).val(); - } - - return values; - }, - - set: function( elem, value ) { - var values = jQuery.makeArray( value ); - - jQuery(elem).find("option").each(function() { - this.selected = jQuery.inArray( jQuery(this).val(), values ) >= 0; - }); - - if ( !values.length ) { - elem.selectedIndex = -1; - } - return values; - } - } - }, - - attrFn: { - val: true, - css: true, - html: true, - text: true, - data: true, - width: true, - height: true, - offset: true - }, - - attrFix: { - // Always normalize to ensure hook usage - tabindex: "tabIndex" - }, - - attr: function( elem, name, value, pass ) { - var nType = elem.nodeType; - - // don't get/set attributes on text, comment and attribute nodes - if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { - return undefined; - } - - if ( pass && name in jQuery.attrFn ) { - return jQuery( elem )[ name ]( value ); - } - - // Fallback to prop when attributes are not supported - if ( !("getAttribute" in elem) ) { - return jQuery.prop( elem, name, value ); - } - - var ret, hooks, - notxml = nType !== 1 || !jQuery.isXMLDoc( elem ); - - // Normalize the name if needed - name = notxml && jQuery.attrFix[ name ] || name; - - hooks = jQuery.attrHooks[ name ]; - - if ( !hooks ) { - // Use boolHook for boolean attributes - if ( rboolean.test( name ) && - (typeof value === "boolean" || value === undefined || value.toLowerCase() === name.toLowerCase()) ) { - - hooks = boolHook; - - // Use formHook for forms and if the name contains certain characters - } else if ( formHook && (jQuery.nodeName( elem, "form" ) || rinvalidChar.test( name )) ) { - hooks = formHook; - } - } - - if ( value !== undefined ) { - - if ( value === null ) { - jQuery.removeAttr( elem, name ); - return undefined; - - } else if ( hooks && "set" in hooks && notxml && (ret = hooks.set( elem, value, name )) !== undefined ) { - return ret; - - } else { - elem.setAttribute( name, "" + value ); - return value; - } - - } else if ( hooks && "get" in hooks && notxml ) { - return hooks.get( elem, name ); - - } else { - - ret = elem.getAttribute( name ); - - // Non-existent attributes return null, we normalize to undefined - return ret === null ? - undefined : - ret; - } - }, - - removeAttr: function( elem, name ) { - var propName; - if ( elem.nodeType === 1 ) { - name = jQuery.attrFix[ name ] || name; - - if ( jQuery.support.getSetAttribute ) { - // Use removeAttribute in browsers that support it - elem.removeAttribute( name ); - } else { - jQuery.attr( elem, name, "" ); - elem.removeAttributeNode( elem.getAttributeNode( name ) ); - } - - // Set corresponding property to false for boolean attributes - if ( rboolean.test( name ) && (propName = jQuery.propFix[ name ] || name) in elem ) { - elem[ propName ] = false; - } - } - }, - - attrHooks: { - type: { - set: function( elem, value ) { - // We can't allow the type property to be changed (since it causes problems in IE) - if ( rtype.test( elem.nodeName ) && elem.parentNode ) { - jQuery.error( "type property can't be changed" ); - } else if ( !jQuery.support.radioValue && value === "radio" && jQuery.nodeName(elem, "input") ) { - // Setting the type on a radio button after the value resets the value in IE6-9 - // Reset value to it's default in case type is set after value - // This is for element creation - var val = elem.value; - elem.setAttribute( "type", value ); - if ( val ) { - elem.value = val; - } - return value; - } - } - }, - tabIndex: { - get: function( elem ) { - // elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set - // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ - var attributeNode = elem.getAttributeNode("tabIndex"); - - return attributeNode && attributeNode.specified ? - parseInt( attributeNode.value, 10 ) : - rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ? - 0 : - undefined; - } - } - }, - - propFix: { - tabindex: "tabIndex", - readonly: "readOnly", - "for": "htmlFor", - "class": "className", - maxlength: "maxLength", - cellspacing: "cellSpacing", - cellpadding: "cellPadding", - rowspan: "rowSpan", - colspan: "colSpan", - usemap: "useMap", - frameborder: "frameBorder", - contenteditable: "contentEditable" - }, - - prop: function( elem, name, value ) { - var nType = elem.nodeType; - - // don't get/set properties on text, comment and attribute nodes - if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { - return undefined; - } - - var ret, hooks, - notxml = nType !== 1 || !jQuery.isXMLDoc( elem ); - - // Try to normalize/fix the name - name = notxml && jQuery.propFix[ name ] || name; - - hooks = jQuery.propHooks[ name ]; - - if ( value !== undefined ) { - if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) { - return ret; - - } else { - return (elem[ name ] = value); - } - - } else { - if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== undefined ) { - return ret; - - } else { - return elem[ name ]; - } - } - }, - - propHooks: {} -}); - -// Hook for boolean attributes -boolHook = { - get: function( elem, name ) { - // Align boolean attributes with corresponding properties - return elem[ jQuery.propFix[ name ] || name ] ? - name.toLowerCase() : - undefined; - }, - set: function( elem, value, name ) { - var propName; - if ( value === false ) { - // Remove boolean attributes when set to false - jQuery.removeAttr( elem, name ); - } else { - // value is true since we know at this point it's type boolean and not false - // Set boolean attributes to the same name and set the DOM property - propName = jQuery.propFix[ name ] || name; - if ( propName in elem ) { - // Only set the IDL specifically if it already exists on the element - elem[ propName ] = value; - } - - elem.setAttribute( name, name.toLowerCase() ); - } - return name; - } -}; - -// Use the value property for back compat -// Use the formHook for button elements in IE6/7 (#1954) -jQuery.attrHooks.value = { - get: function( elem, name ) { - if ( formHook && jQuery.nodeName( elem, "button" ) ) { - return formHook.get( elem, name ); - } - return elem.value; - }, - set: function( elem, value, name ) { - if ( formHook && jQuery.nodeName( elem, "button" ) ) { - return formHook.set( elem, value, name ); - } - // Does not return so that setAttribute is also used - elem.value = value; - } -}; - -// IE6/7 do not support getting/setting some attributes with get/setAttribute -if ( !jQuery.support.getSetAttribute ) { - - // propFix is more comprehensive and contains all fixes - jQuery.attrFix = jQuery.propFix; - - // Use this for any attribute on a form in IE6/7 - formHook = jQuery.attrHooks.name = jQuery.valHooks.button = { - get: function( elem, name ) { - var ret; - ret = elem.getAttributeNode( name ); - // Return undefined if nodeValue is empty string - return ret && ret.nodeValue !== "" ? - ret.nodeValue : - undefined; - }, - set: function( elem, value, name ) { - // Check form objects in IE (multiple bugs related) - // Only use nodeValue if the attribute node exists on the form - var ret = elem.getAttributeNode( name ); - if ( ret ) { - ret.nodeValue = value; - return value; - } - } - }; - - // Set width and height to auto instead of 0 on empty string( Bug #8150 ) - // This is for removals - jQuery.each([ "width", "height" ], function( i, name ) { - jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], { - set: function( elem, value ) { - if ( value === "" ) { - elem.setAttribute( name, "auto" ); - return value; - } - } - }); - }); -} - - -// Some attributes require a special call on IE -if ( !jQuery.support.hrefNormalized ) { - jQuery.each([ "href", "src", "width", "height" ], function( i, name ) { - jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], { - get: function( elem ) { - var ret = elem.getAttribute( name, 2 ); - return ret === null ? undefined : ret; - } - }); - }); -} - -if ( !jQuery.support.style ) { - jQuery.attrHooks.style = { - get: function( elem ) { - // Return undefined in the case of empty string - // Normalize to lowercase since IE uppercases css property names - return elem.style.cssText.toLowerCase() || undefined; - }, - set: function( elem, value ) { - return (elem.style.cssText = "" + value); - } - }; -} - -// Safari mis-reports the default selected property of an option -// Accessing the parent's selectedIndex property fixes it -if ( !jQuery.support.optSelected ) { - jQuery.propHooks.selected = jQuery.extend( jQuery.propHooks.selected, { - get: function( elem ) { - var parent = elem.parentNode; - - if ( parent ) { - parent.selectedIndex; - - // Make sure that it also works with optgroups, see #5701 - if ( parent.parentNode ) { - parent.parentNode.selectedIndex; - } - } - } - }); -} - -// Radios and checkboxes getter/setter -if ( !jQuery.support.checkOn ) { - jQuery.each([ "radio", "checkbox" ], function() { - jQuery.valHooks[ this ] = { - get: function( elem ) { - // Handle the case where in Webkit "" is returned instead of "on" if a value isn't specified - return elem.getAttribute("value") === null ? "on" : elem.value; - } - }; - }); -} -jQuery.each([ "radio", "checkbox" ], function() { - jQuery.valHooks[ this ] = jQuery.extend( jQuery.valHooks[ this ], { - set: function( elem, value ) { - if ( jQuery.isArray( value ) ) { - return (elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0); - } - } - }); -}); - - - - -var hasOwn = Object.prototype.hasOwnProperty, - rnamespaces = /\.(.*)$/, - rformElems = /^(?:textarea|input|select)$/i, - rperiod = /\./g, - rspaces = / /g, - rescape = /[^\w\s.|`]/g, - fcleanup = function( nm ) { - return nm.replace(rescape, "\\$&"); - }; - -/* - * A number of helper functions used for managing events. - * Many of the ideas behind this code originated from - * Dean Edwards' addEvent library. - */ -jQuery.event = { - - // Bind an event to an element - // Original by Dean Edwards - add: function( elem, types, handler, data ) { - if ( elem.nodeType === 3 || elem.nodeType === 8 ) { - return; - } - - if ( handler === false ) { - handler = returnFalse; - } else if ( !handler ) { - // Fixes bug #7229. Fix recommended by jdalton - return; - } - - var handleObjIn, handleObj; - - if ( handler.handler ) { - handleObjIn = handler; - handler = handleObjIn.handler; - } - - // Make sure that the function being executed has a unique ID - if ( !handler.guid ) { - handler.guid = jQuery.guid++; - } - - // Init the element's event structure - var elemData = jQuery._data( elem ); - - // If no elemData is found then we must be trying to bind to one of the - // banned noData elements - if ( !elemData ) { - return; - } - - var events = elemData.events, - eventHandle = elemData.handle; - - if ( !events ) { - elemData.events = events = {}; - } - - if ( !eventHandle ) { - elemData.handle = eventHandle = function( e ) { - // Discard the second event of a jQuery.event.trigger() and - // when an event is called after a page has unloaded - return typeof jQuery !== "undefined" && (!e || jQuery.event.triggered !== e.type) ? - jQuery.event.handle.apply( eventHandle.elem, arguments ) : - undefined; - }; - } - - // Add elem as a property of the handle function - // This is to prevent a memory leak with non-native events in IE. - eventHandle.elem = elem; - - // Handle multiple events separated by a space - // jQuery(...).bind("mouseover mouseout", fn); - types = types.split(" "); - - var type, i = 0, namespaces; - - while ( (type = types[ i++ ]) ) { - handleObj = handleObjIn ? - jQuery.extend({}, handleObjIn) : - { handler: handler, data: data }; - - // Namespaced event handlers - if ( type.indexOf(".") > -1 ) { - namespaces = type.split("."); - type = namespaces.shift(); - handleObj.namespace = namespaces.slice(0).sort().join("."); - - } else { - namespaces = []; - handleObj.namespace = ""; - } - - handleObj.type = type; - if ( !handleObj.guid ) { - handleObj.guid = handler.guid; - } - - // Get the current list of functions bound to this event - var handlers = events[ type ], - special = jQuery.event.special[ type ] || {}; - - // Init the event handler queue - if ( !handlers ) { - handlers = events[ type ] = []; - - // Check for a special event handler - // Only use addEventListener/attachEvent if the special - // events handler returns false - if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) { - // Bind the global event handler to the element - if ( elem.addEventListener ) { - elem.addEventListener( type, eventHandle, false ); - - } else if ( elem.attachEvent ) { - elem.attachEvent( "on" + type, eventHandle ); - } - } - } - - if ( special.add ) { - special.add.call( elem, handleObj ); - - if ( !handleObj.handler.guid ) { - handleObj.handler.guid = handler.guid; - } - } - - // Add the function to the element's handler list - handlers.push( handleObj ); - - // Keep track of which events have been used, for event optimization - jQuery.event.global[ type ] = true; - } - - // Nullify elem to prevent memory leaks in IE - elem = null; - }, - - global: {}, - - // Detach an event or set of events from an element - remove: function( elem, types, handler, pos ) { - // don't do events on text and comment nodes - if ( elem.nodeType === 3 || elem.nodeType === 8 ) { - return; - } - - if ( handler === false ) { - handler = returnFalse; - } - - var ret, type, fn, j, i = 0, all, namespaces, namespace, special, eventType, handleObj, origType, - elemData = jQuery.hasData( elem ) && jQuery._data( elem ), - events = elemData && elemData.events; - - if ( !elemData || !events ) { - return; - } - - // types is actually an event object here - if ( types && types.type ) { - handler = types.handler; - types = types.type; - } - - // Unbind all events for the element - if ( !types || typeof types === "string" && types.charAt(0) === "." ) { - types = types || ""; - - for ( type in events ) { - jQuery.event.remove( elem, type + types ); - } - - return; - } - - // Handle multiple events separated by a space - // jQuery(...).unbind("mouseover mouseout", fn); - types = types.split(" "); - - while ( (type = types[ i++ ]) ) { - origType = type; - handleObj = null; - all = type.indexOf(".") < 0; - namespaces = []; - - if ( !all ) { - // Namespaced event handlers - namespaces = type.split("."); - type = namespaces.shift(); - - namespace = new RegExp("(^|\\.)" + - jQuery.map( namespaces.slice(0).sort(), fcleanup ).join("\\.(?:.*\\.)?") + "(\\.|$)"); - } - - eventType = events[ type ]; - - if ( !eventType ) { - continue; - } - - if ( !handler ) { - for ( j = 0; j < eventType.length; j++ ) { - handleObj = eventType[ j ]; - - if ( all || namespace.test( handleObj.namespace ) ) { - jQuery.event.remove( elem, origType, handleObj.handler, j ); - eventType.splice( j--, 1 ); - } - } - - continue; - } - - special = jQuery.event.special[ type ] || {}; - - for ( j = pos || 0; j < eventType.length; j++ ) { - handleObj = eventType[ j ]; - - if ( handler.guid === handleObj.guid ) { - // remove the given handler for the given type - if ( all || namespace.test( handleObj.namespace ) ) { - if ( pos == null ) { - eventType.splice( j--, 1 ); - } - - if ( special.remove ) { - special.remove.call( elem, handleObj ); - } - } - - if ( pos != null ) { - break; - } - } - } - - // remove generic event handler if no more handlers exist - if ( eventType.length === 0 || pos != null && eventType.length === 1 ) { - if ( !special.teardown || special.teardown.call( elem, namespaces ) === false ) { - jQuery.removeEvent( elem, type, elemData.handle ); - } - - ret = null; - delete events[ type ]; - } - } - - // Remove the expando if it's no longer used - if ( jQuery.isEmptyObject( events ) ) { - var handle = elemData.handle; - if ( handle ) { - handle.elem = null; - } - - delete elemData.events; - delete elemData.handle; - - if ( jQuery.isEmptyObject( elemData ) ) { - jQuery.removeData( elem, undefined, true ); - } - } - }, - - // Events that are safe to short-circuit if no handlers are attached. - // Native DOM events should not be added, they may have inline handlers. - customEvent: { - "getData": true, - "setData": true, - "changeData": true - }, - - trigger: function( event, data, elem, onlyHandlers ) { - // Event object or event type - var type = event.type || event, - namespaces = [], - exclusive; - - if ( type.indexOf("!") >= 0 ) { - // Exclusive events trigger only for the exact event (no namespaces) - type = type.slice(0, -1); - exclusive = true; - } - - if ( type.indexOf(".") >= 0 ) { - // Namespaced trigger; create a regexp to match event type in handle() - namespaces = type.split("."); - type = namespaces.shift(); - namespaces.sort(); - } - - if ( (!elem || jQuery.event.customEvent[ type ]) && !jQuery.event.global[ type ] ) { - // No jQuery handlers for this event type, and it can't have inline handlers - return; - } - - // Caller can pass in an Event, Object, or just an event type string - event = typeof event === "object" ? - // jQuery.Event object - event[ jQuery.expando ] ? event : - // Object literal - new jQuery.Event( type, event ) : - // Just the event type (string) - new jQuery.Event( type ); - - event.type = type; - event.exclusive = exclusive; - event.namespace = namespaces.join("."); - event.namespace_re = new RegExp("(^|\\.)" + namespaces.join("\\.(?:.*\\.)?") + "(\\.|$)"); - - // triggerHandler() and global events don't bubble or run the default action - if ( onlyHandlers || !elem ) { - event.preventDefault(); - event.stopPropagation(); - } - - // Handle a global trigger - if ( !elem ) { - // TODO: Stop taunting the data cache; remove global events and always attach to document - jQuery.each( jQuery.cache, function() { - // internalKey variable is just used to make it easier to find - // and potentially change this stuff later; currently it just - // points to jQuery.expando - var internalKey = jQuery.expando, - internalCache = this[ internalKey ]; - if ( internalCache && internalCache.events && internalCache.events[ type ] ) { - jQuery.event.trigger( event, data, internalCache.handle.elem ); - } - }); - return; - } - - // Don't do events on text and comment nodes - if ( elem.nodeType === 3 || elem.nodeType === 8 ) { - return; - } - - // Clean up the event in case it is being reused - event.result = undefined; - event.target = elem; - - // Clone any incoming data and prepend the event, creating the handler arg list - data = data ? jQuery.makeArray( data ) : []; - data.unshift( event ); - - var cur = elem, - // IE doesn't like method names with a colon (#3533, #8272) - ontype = type.indexOf(":") < 0 ? "on" + type : ""; - - // Fire event on the current element, then bubble up the DOM tree - do { - var handle = jQuery._data( cur, "handle" ); - - event.currentTarget = cur; - if ( handle ) { - handle.apply( cur, data ); - } - - // Trigger an inline bound script - if ( ontype && jQuery.acceptData( cur ) && cur[ ontype ] && cur[ ontype ].apply( cur, data ) === false ) { - event.result = false; - event.preventDefault(); - } - - // Bubble up to document, then to window - cur = cur.parentNode || cur.ownerDocument || cur === event.target.ownerDocument && window; - } while ( cur && !event.isPropagationStopped() ); - - // If nobody prevented the default action, do it now - if ( !event.isDefaultPrevented() ) { - var old, - special = jQuery.event.special[ type ] || {}; - - if ( (!special._default || special._default.call( elem.ownerDocument, event ) === false) && - !(type === "click" && jQuery.nodeName( elem, "a" )) && jQuery.acceptData( elem ) ) { - - // Call a native DOM method on the target with the same name name as the event. - // Can't use an .isFunction)() check here because IE6/7 fails that test. - // IE<9 dies on focus to hidden element (#1486), may want to revisit a try/catch. - try { - if ( ontype && elem[ type ] ) { - // Don't re-trigger an onFOO event when we call its FOO() method - old = elem[ ontype ]; - - if ( old ) { - elem[ ontype ] = null; - } - - jQuery.event.triggered = type; - elem[ type ](); - } - } catch ( ieError ) {} - - if ( old ) { - elem[ ontype ] = old; - } - - jQuery.event.triggered = undefined; - } - } - - return event.result; - }, - - handle: function( event ) { - event = jQuery.event.fix( event || window.event ); - // Snapshot the handlers list since a called handler may add/remove events. - var handlers = ((jQuery._data( this, "events" ) || {})[ event.type ] || []).slice(0), - run_all = !event.exclusive && !event.namespace, - args = Array.prototype.slice.call( arguments, 0 ); - - // Use the fix-ed Event rather than the (read-only) native event - args[0] = event; - event.currentTarget = this; - - for ( var j = 0, l = handlers.length; j < l; j++ ) { - var handleObj = handlers[ j ]; - - // Triggered event must 1) be non-exclusive and have no namespace, or - // 2) have namespace(s) a subset or equal to those in the bound event. - if ( run_all || event.namespace_re.test( handleObj.namespace ) ) { - // Pass in a reference to the handler function itself - // So that we can later remove it - event.handler = handleObj.handler; - event.data = handleObj.data; - event.handleObj = handleObj; - - var ret = handleObj.handler.apply( this, args ); - - if ( ret !== undefined ) { - event.result = ret; - if ( ret === false ) { - event.preventDefault(); - event.stopPropagation(); - } - } - - if ( event.isImmediatePropagationStopped() ) { - break; - } - } - } - return event.result; - }, - - props: "altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "), - - fix: function( event ) { - if ( event[ jQuery.expando ] ) { - return event; - } - - // store a copy of the original event object - // and "clone" to set read-only properties - var originalEvent = event; - event = jQuery.Event( originalEvent ); - - for ( var i = this.props.length, prop; i; ) { - prop = this.props[ --i ]; - event[ prop ] = originalEvent[ prop ]; - } - - // Fix target property, if necessary - if ( !event.target ) { - // Fixes #1925 where srcElement might not be defined either - event.target = event.srcElement || document; - } - - // check if target is a textnode (safari) - if ( event.target.nodeType === 3 ) { - event.target = event.target.parentNode; - } - - // Add relatedTarget, if necessary - if ( !event.relatedTarget && event.fromElement ) { - event.relatedTarget = event.fromElement === event.target ? event.toElement : event.fromElement; - } - - // Calculate pageX/Y if missing and clientX/Y available - if ( event.pageX == null && event.clientX != null ) { - var eventDocument = event.target.ownerDocument || document, - doc = eventDocument.documentElement, - body = eventDocument.body; - - event.pageX = event.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0); - event.pageY = event.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc && doc.clientTop || body && body.clientTop || 0); - } - - // Add which for key events - if ( event.which == null && (event.charCode != null || event.keyCode != null) ) { - event.which = event.charCode != null ? event.charCode : event.keyCode; - } - - // Add metaKey to non-Mac browsers (use ctrl for PC's and Meta for Macs) - if ( !event.metaKey && event.ctrlKey ) { - event.metaKey = event.ctrlKey; - } - - // Add which for click: 1 === left; 2 === middle; 3 === right - // Note: button is not normalized, so don't use it - if ( !event.which && event.button !== undefined ) { - event.which = (event.button & 1 ? 1 : ( event.button & 2 ? 3 : ( event.button & 4 ? 2 : 0 ) )); - } - - return event; - }, - - // Deprecated, use jQuery.guid instead - guid: 1E8, - - // Deprecated, use jQuery.proxy instead - proxy: jQuery.proxy, - - special: { - ready: { - // Make sure the ready event is setup - setup: jQuery.bindReady, - teardown: jQuery.noop - }, - - live: { - add: function( handleObj ) { - jQuery.event.add( this, - liveConvert( handleObj.origType, handleObj.selector ), - jQuery.extend({}, handleObj, {handler: liveHandler, guid: handleObj.handler.guid}) ); - }, - - remove: function( handleObj ) { - jQuery.event.remove( this, liveConvert( handleObj.origType, handleObj.selector ), handleObj ); - } - }, - - beforeunload: { - setup: function( data, namespaces, eventHandle ) { - // We only want to do this special case on windows - if ( jQuery.isWindow( this ) ) { - this.onbeforeunload = eventHandle; - } - }, - - teardown: function( namespaces, eventHandle ) { - if ( this.onbeforeunload === eventHandle ) { - this.onbeforeunload = null; - } - } - } - } -}; - -jQuery.removeEvent = document.removeEventListener ? - function( elem, type, handle ) { - if ( elem.removeEventListener ) { - elem.removeEventListener( type, handle, false ); - } - } : - function( elem, type, handle ) { - if ( elem.detachEvent ) { - elem.detachEvent( "on" + type, handle ); - } - }; - -jQuery.Event = function( src, props ) { - // Allow instantiation without the 'new' keyword - if ( !this.preventDefault ) { - return new jQuery.Event( src, props ); - } - - // Event object - if ( src && src.type ) { - this.originalEvent = src; - this.type = src.type; - - // Events bubbling up the document may have been marked as prevented - // by a handler lower down the tree; reflect the correct value. - this.isDefaultPrevented = (src.defaultPrevented || src.returnValue === false || - src.getPreventDefault && src.getPreventDefault()) ? returnTrue : returnFalse; - - // Event type - } else { - this.type = src; - } - - // Put explicitly provided properties onto the event object - if ( props ) { - jQuery.extend( this, props ); - } - - // timeStamp is buggy for some events on Firefox(#3843) - // So we won't rely on the native value - this.timeStamp = jQuery.now(); - - // Mark it as fixed - this[ jQuery.expando ] = true; -}; - -function returnFalse() { - return false; -} -function returnTrue() { - return true; -} - -// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding -// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html -jQuery.Event.prototype = { - preventDefault: function() { - this.isDefaultPrevented = returnTrue; - - var e = this.originalEvent; - if ( !e ) { - return; - } - - // if preventDefault exists run it on the original event - if ( e.preventDefault ) { - e.preventDefault(); - - // otherwise set the returnValue property of the original event to false (IE) - } else { - e.returnValue = false; - } - }, - stopPropagation: function() { - this.isPropagationStopped = returnTrue; - - var e = this.originalEvent; - if ( !e ) { - return; - } - // if stopPropagation exists run it on the original event - if ( e.stopPropagation ) { - e.stopPropagation(); - } - // otherwise set the cancelBubble property of the original event to true (IE) - e.cancelBubble = true; - }, - stopImmediatePropagation: function() { - this.isImmediatePropagationStopped = returnTrue; - this.stopPropagation(); - }, - isDefaultPrevented: returnFalse, - isPropagationStopped: returnFalse, - isImmediatePropagationStopped: returnFalse -}; - -// Checks if an event happened on an element within another element -// Used in jQuery.event.special.mouseenter and mouseleave handlers -var withinElement = function( event ) { - // Check if mouse(over|out) are still within the same parent element - var parent = event.relatedTarget; - - // set the correct event type - event.type = event.data; - - // Firefox sometimes assigns relatedTarget a XUL element - // which we cannot access the parentNode property of - try { - - // Chrome does something similar, the parentNode property - // can be accessed but is null. - if ( parent && parent !== document && !parent.parentNode ) { - return; - } - - // Traverse up the tree - while ( parent && parent !== this ) { - parent = parent.parentNode; - } - - if ( parent !== this ) { - // handle event if we actually just moused on to a non sub-element - jQuery.event.handle.apply( this, arguments ); - } - - // assuming we've left the element since we most likely mousedover a xul element - } catch(e) { } -}, - -// In case of event delegation, we only need to rename the event.type, -// liveHandler will take care of the rest. -delegate = function( event ) { - event.type = event.data; - jQuery.event.handle.apply( this, arguments ); -}; - -// Create mouseenter and mouseleave events -jQuery.each({ - mouseenter: "mouseover", - mouseleave: "mouseout" -}, function( orig, fix ) { - jQuery.event.special[ orig ] = { - setup: function( data ) { - jQuery.event.add( this, fix, data && data.selector ? delegate : withinElement, orig ); - }, - teardown: function( data ) { - jQuery.event.remove( this, fix, data && data.selector ? delegate : withinElement ); - } - }; -}); - -// submit delegation -if ( !jQuery.support.submitBubbles ) { - - jQuery.event.special.submit = { - setup: function( data, namespaces ) { - if ( !jQuery.nodeName( this, "form" ) ) { - jQuery.event.add(this, "click.specialSubmit", function( e ) { - var elem = e.target, - type = elem.type; - - if ( (type === "submit" || type === "image") && jQuery( elem ).closest("form").length ) { - trigger( "submit", this, arguments ); - } - }); - - jQuery.event.add(this, "keypress.specialSubmit", function( e ) { - var elem = e.target, - type = elem.type; - - if ( (type === "text" || type === "password") && jQuery( elem ).closest("form").length && e.keyCode === 13 ) { - trigger( "submit", this, arguments ); - } - }); - - } else { - return false; - } - }, - - teardown: function( namespaces ) { - jQuery.event.remove( this, ".specialSubmit" ); - } - }; - -} - -// change delegation, happens here so we have bind. -if ( !jQuery.support.changeBubbles ) { - - var changeFilters, - - getVal = function( elem ) { - var type = elem.type, val = elem.value; - - if ( type === "radio" || type === "checkbox" ) { - val = elem.checked; - - } else if ( type === "select-multiple" ) { - val = elem.selectedIndex > -1 ? - jQuery.map( elem.options, function( elem ) { - return elem.selected; - }).join("-") : - ""; - - } else if ( jQuery.nodeName( elem, "select" ) ) { - val = elem.selectedIndex; - } - - return val; - }, - - testChange = function testChange( e ) { - var elem = e.target, data, val; - - if ( !rformElems.test( elem.nodeName ) || elem.readOnly ) { - return; - } - - data = jQuery._data( elem, "_change_data" ); - val = getVal(elem); - - // the current data will be also retrieved by beforeactivate - if ( e.type !== "focusout" || elem.type !== "radio" ) { - jQuery._data( elem, "_change_data", val ); - } - - if ( data === undefined || val === data ) { - return; - } - - if ( data != null || val ) { - e.type = "change"; - e.liveFired = undefined; - jQuery.event.trigger( e, arguments[1], elem ); - } - }; - - jQuery.event.special.change = { - filters: { - focusout: testChange, - - beforedeactivate: testChange, - - click: function( e ) { - var elem = e.target, type = jQuery.nodeName( elem, "input" ) ? elem.type : ""; - - if ( type === "radio" || type === "checkbox" || jQuery.nodeName( elem, "select" ) ) { - testChange.call( this, e ); - } - }, - - // Change has to be called before submit - // Keydown will be called before keypress, which is used in submit-event delegation - keydown: function( e ) { - var elem = e.target, type = jQuery.nodeName( elem, "input" ) ? elem.type : ""; - - if ( (e.keyCode === 13 && !jQuery.nodeName( elem, "textarea" ) ) || - (e.keyCode === 32 && (type === "checkbox" || type === "radio")) || - type === "select-multiple" ) { - testChange.call( this, e ); - } - }, - - // Beforeactivate happens also before the previous element is blurred - // with this event you can't trigger a change event, but you can store - // information - beforeactivate: function( e ) { - var elem = e.target; - jQuery._data( elem, "_change_data", getVal(elem) ); - } - }, - - setup: function( data, namespaces ) { - if ( this.type === "file" ) { - return false; - } - - for ( var type in changeFilters ) { - jQuery.event.add( this, type + ".specialChange", changeFilters[type] ); - } - - return rformElems.test( this.nodeName ); - }, - - teardown: function( namespaces ) { - jQuery.event.remove( this, ".specialChange" ); - - return rformElems.test( this.nodeName ); - } - }; - - changeFilters = jQuery.event.special.change.filters; - - // Handle when the input is .focus()'d - changeFilters.focus = changeFilters.beforeactivate; -} - -function trigger( type, elem, args ) { - // Piggyback on a donor event to simulate a different one. - // Fake originalEvent to avoid donor's stopPropagation, but if the - // simulated event prevents default then we do the same on the donor. - // Don't pass args or remember liveFired; they apply to the donor event. - var event = jQuery.extend( {}, args[ 0 ] ); - event.type = type; - event.originalEvent = {}; - event.liveFired = undefined; - jQuery.event.handle.call( elem, event ); - if ( event.isDefaultPrevented() ) { - args[ 0 ].preventDefault(); - } -} - -// Create "bubbling" focus and blur events -if ( !jQuery.support.focusinBubbles ) { - jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) { - - // Attach a single capturing handler while someone wants focusin/focusout - var attaches = 0; - - jQuery.event.special[ fix ] = { - setup: function() { - if ( attaches++ === 0 ) { - document.addEventListener( orig, handler, true ); - } - }, - teardown: function() { - if ( --attaches === 0 ) { - document.removeEventListener( orig, handler, true ); - } - } - }; - - function handler( donor ) { - // Donor event is always a native one; fix it and switch its type. - // Let focusin/out handler cancel the donor focus/blur event. - var e = jQuery.event.fix( donor ); - e.type = fix; - e.originalEvent = {}; - jQuery.event.trigger( e, null, e.target ); - if ( e.isDefaultPrevented() ) { - donor.preventDefault(); - } - } - }); -} - -jQuery.each(["bind", "one"], function( i, name ) { - jQuery.fn[ name ] = function( type, data, fn ) { - var handler; - - // Handle object literals - if ( typeof type === "object" ) { - for ( var key in type ) { - this[ name ](key, data, type[key], fn); - } - return this; - } - - if ( arguments.length === 2 || data === false ) { - fn = data; - data = undefined; - } - - if ( name === "one" ) { - handler = function( event ) { - jQuery( this ).unbind( event, handler ); - return fn.apply( this, arguments ); - }; - handler.guid = fn.guid || jQuery.guid++; - } else { - handler = fn; - } - - if ( type === "unload" && name !== "one" ) { - this.one( type, data, fn ); - - } else { - for ( var i = 0, l = this.length; i < l; i++ ) { - jQuery.event.add( this[i], type, handler, data ); - } - } - - return this; - }; -}); - -jQuery.fn.extend({ - unbind: function( type, fn ) { - // Handle object literals - if ( typeof type === "object" && !type.preventDefault ) { - for ( var key in type ) { - this.unbind(key, type[key]); - } - - } else { - for ( var i = 0, l = this.length; i < l; i++ ) { - jQuery.event.remove( this[i], type, fn ); - } - } - - return this; - }, - - delegate: function( selector, types, data, fn ) { - return this.live( types, data, fn, selector ); - }, - - undelegate: function( selector, types, fn ) { - if ( arguments.length === 0 ) { - return this.unbind( "live" ); - - } else { - return this.die( types, null, fn, selector ); - } - }, - - trigger: function( type, data ) { - return this.each(function() { - jQuery.event.trigger( type, data, this ); - }); - }, - - triggerHandler: function( type, data ) { - if ( this[0] ) { - return jQuery.event.trigger( type, data, this[0], true ); - } - }, - - toggle: function( fn ) { - // Save reference to arguments for access in closure - var args = arguments, - guid = fn.guid || jQuery.guid++, - i = 0, - toggler = function( event ) { - // Figure out which function to execute - var lastToggle = ( jQuery.data( this, "lastToggle" + fn.guid ) || 0 ) % i; - jQuery.data( this, "lastToggle" + fn.guid, lastToggle + 1 ); - - // Make sure that clicks stop - event.preventDefault(); - - // and execute the function - return args[ lastToggle ].apply( this, arguments ) || false; - }; - - // link all the functions, so any of them can unbind this click handler - toggler.guid = guid; - while ( i < args.length ) { - args[ i++ ].guid = guid; - } - - return this.click( toggler ); - }, - - hover: function( fnOver, fnOut ) { - return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver ); - } -}); - -var liveMap = { - focus: "focusin", - blur: "focusout", - mouseenter: "mouseover", - mouseleave: "mouseout" -}; - -jQuery.each(["live", "die"], function( i, name ) { - jQuery.fn[ name ] = function( types, data, fn, origSelector /* Internal Use Only */ ) { - var type, i = 0, match, namespaces, preType, - selector = origSelector || this.selector, - context = origSelector ? this : jQuery( this.context ); - - if ( typeof types === "object" && !types.preventDefault ) { - for ( var key in types ) { - context[ name ]( key, data, types[key], selector ); - } - - return this; - } - - if ( name === "die" && !types && - origSelector && origSelector.charAt(0) === "." ) { - - context.unbind( origSelector ); - - return this; - } - - if ( data === false || jQuery.isFunction( data ) ) { - fn = data || returnFalse; - data = undefined; - } - - types = (types || "").split(" "); - - while ( (type = types[ i++ ]) != null ) { - match = rnamespaces.exec( type ); - namespaces = ""; - - if ( match ) { - namespaces = match[0]; - type = type.replace( rnamespaces, "" ); - } - - if ( type === "hover" ) { - types.push( "mouseenter" + namespaces, "mouseleave" + namespaces ); - continue; - } - - preType = type; - - if ( liveMap[ type ] ) { - types.push( liveMap[ type ] + namespaces ); - type = type + namespaces; - - } else { - type = (liveMap[ type ] || type) + namespaces; - } - - if ( name === "live" ) { - // bind live handler - for ( var j = 0, l = context.length; j < l; j++ ) { - jQuery.event.add( context[j], "live." + liveConvert( type, selector ), - { data: data, selector: selector, handler: fn, origType: type, origHandler: fn, preType: preType } ); - } - - } else { - // unbind live handler - context.unbind( "live." + liveConvert( type, selector ), fn ); - } - } - - return this; - }; -}); - -function liveHandler( event ) { - var stop, maxLevel, related, match, handleObj, elem, j, i, l, data, close, namespace, ret, - elems = [], - selectors = [], - events = jQuery._data( this, "events" ); - - // Make sure we avoid non-left-click bubbling in Firefox (#3861) and disabled elements in IE (#6911) - if ( event.liveFired === this || !events || !events.live || event.target.disabled || event.button && event.type === "click" ) { - return; - } - - if ( event.namespace ) { - namespace = new RegExp("(^|\\.)" + event.namespace.split(".").join("\\.(?:.*\\.)?") + "(\\.|$)"); - } - - event.liveFired = this; - - var live = events.live.slice(0); - - for ( j = 0; j < live.length; j++ ) { - handleObj = live[j]; - - if ( handleObj.origType.replace( rnamespaces, "" ) === event.type ) { - selectors.push( handleObj.selector ); - - } else { - live.splice( j--, 1 ); - } - } - - match = jQuery( event.target ).closest( selectors, event.currentTarget ); - - for ( i = 0, l = match.length; i < l; i++ ) { - close = match[i]; - - for ( j = 0; j < live.length; j++ ) { - handleObj = live[j]; - - if ( close.selector === handleObj.selector && (!namespace || namespace.test( handleObj.namespace )) && !close.elem.disabled ) { - elem = close.elem; - related = null; - - // Those two events require additional checking - if ( handleObj.preType === "mouseenter" || handleObj.preType === "mouseleave" ) { - event.type = handleObj.preType; - related = jQuery( event.relatedTarget ).closest( handleObj.selector )[0]; - - // Make sure not to accidentally match a child element with the same selector - if ( related && jQuery.contains( elem, related ) ) { - related = elem; - } - } - - if ( !related || related !== elem ) { - elems.push({ elem: elem, handleObj: handleObj, level: close.level }); - } - } - } - } - - for ( i = 0, l = elems.length; i < l; i++ ) { - match = elems[i]; - - if ( maxLevel && match.level > maxLevel ) { - break; - } - - event.currentTarget = match.elem; - event.data = match.handleObj.data; - event.handleObj = match.handleObj; - - ret = match.handleObj.origHandler.apply( match.elem, arguments ); - - if ( ret === false || event.isPropagationStopped() ) { - maxLevel = match.level; - - if ( ret === false ) { - stop = false; - } - if ( event.isImmediatePropagationStopped() ) { - break; - } - } - } - - return stop; -} - -function liveConvert( type, selector ) { - return (type && type !== "*" ? type + "." : "") + selector.replace(rperiod, "`").replace(rspaces, "&"); -} - -jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " + - "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + - "change select submit keydown keypress keyup error").split(" "), function( i, name ) { - - // Handle event binding - jQuery.fn[ name ] = function( data, fn ) { - if ( fn == null ) { - fn = data; - data = null; - } - - return arguments.length > 0 ? - this.bind( name, data, fn ) : - this.trigger( name ); - }; - - if ( jQuery.attrFn ) { - jQuery.attrFn[ name ] = true; - } -}); - - - -/*! - * Sizzle CSS Selector Engine - * Copyright 2011, The Dojo Foundation - * Released under the MIT, BSD, and GPL Licenses. - * More information: http://sizzlejs.com/ - */ -(function(){ - -var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g, - done = 0, - toString = Object.prototype.toString, - hasDuplicate = false, - baseHasDuplicate = true, - rBackslash = /\\/g, - rNonWord = /\W/; - -// Here we check if the JavaScript engine is using some sort of -// optimization where it does not always call our comparision -// function. If that is the case, discard the hasDuplicate value. -// Thus far that includes Google Chrome. -[0, 0].sort(function() { - baseHasDuplicate = false; - return 0; -}); - -var Sizzle = function( selector, context, results, seed ) { - results = results || []; - context = context || document; - - var origContext = context; - - if ( context.nodeType !== 1 && context.nodeType !== 9 ) { - return []; - } - - if ( !selector || typeof selector !== "string" ) { - return results; - } - - var m, set, checkSet, extra, ret, cur, pop, i, - prune = true, - contextXML = Sizzle.isXML( context ), - parts = [], - soFar = selector; - - // Reset the position of the chunker regexp (start from head) - do { - chunker.exec( "" ); - m = chunker.exec( soFar ); - - if ( m ) { - soFar = m[3]; - - parts.push( m[1] ); - - if ( m[2] ) { - extra = m[3]; - break; - } - } - } while ( m ); - - if ( parts.length > 1 && origPOS.exec( selector ) ) { - - if ( parts.length === 2 && Expr.relative[ parts[0] ] ) { - set = posProcess( parts[0] + parts[1], context ); - - } else { - set = Expr.relative[ parts[0] ] ? - [ context ] : - Sizzle( parts.shift(), context ); - - while ( parts.length ) { - selector = parts.shift(); - - if ( Expr.relative[ selector ] ) { - selector += parts.shift(); - } - - set = posProcess( selector, set ); - } - } - - } else { - // Take a shortcut and set the context if the root selector is an ID - // (but not if it'll be faster if the inner selector is an ID) - if ( !seed && parts.length > 1 && context.nodeType === 9 && !contextXML && - Expr.match.ID.test(parts[0]) && !Expr.match.ID.test(parts[parts.length - 1]) ) { - - ret = Sizzle.find( parts.shift(), context, contextXML ); - context = ret.expr ? - Sizzle.filter( ret.expr, ret.set )[0] : - ret.set[0]; - } - - if ( context ) { - ret = seed ? - { expr: parts.pop(), set: makeArray(seed) } : - Sizzle.find( parts.pop(), parts.length === 1 && (parts[0] === "~" || parts[0] === "+") && context.parentNode ? context.parentNode : context, contextXML ); - - set = ret.expr ? - Sizzle.filter( ret.expr, ret.set ) : - ret.set; - - if ( parts.length > 0 ) { - checkSet = makeArray( set ); - - } else { - prune = false; - } - - while ( parts.length ) { - cur = parts.pop(); - pop = cur; - - if ( !Expr.relative[ cur ] ) { - cur = ""; - } else { - pop = parts.pop(); - } - - if ( pop == null ) { - pop = context; - } - - Expr.relative[ cur ]( checkSet, pop, contextXML ); - } - - } else { - checkSet = parts = []; - } - } - - if ( !checkSet ) { - checkSet = set; - } - - if ( !checkSet ) { - Sizzle.error( cur || selector ); - } - - if ( toString.call(checkSet) === "[object Array]" ) { - if ( !prune ) { - results.push.apply( results, checkSet ); - - } else if ( context && context.nodeType === 1 ) { - for ( i = 0; checkSet[i] != null; i++ ) { - if ( checkSet[i] && (checkSet[i] === true || checkSet[i].nodeType === 1 && Sizzle.contains(context, checkSet[i])) ) { - results.push( set[i] ); - } - } - - } else { - for ( i = 0; checkSet[i] != null; i++ ) { - if ( checkSet[i] && checkSet[i].nodeType === 1 ) { - results.push( set[i] ); - } - } - } - - } else { - makeArray( checkSet, results ); - } - - if ( extra ) { - Sizzle( extra, origContext, results, seed ); - Sizzle.uniqueSort( results ); - } - - return results; -}; - -Sizzle.uniqueSort = function( results ) { - if ( sortOrder ) { - hasDuplicate = baseHasDuplicate; - results.sort( sortOrder ); - - if ( hasDuplicate ) { - for ( var i = 1; i < results.length; i++ ) { - if ( results[i] === results[ i - 1 ] ) { - results.splice( i--, 1 ); - } - } - } - } - - return results; -}; - -Sizzle.matches = function( expr, set ) { - return Sizzle( expr, null, null, set ); -}; - -Sizzle.matchesSelector = function( node, expr ) { - return Sizzle( expr, null, null, [node] ).length > 0; -}; - -Sizzle.find = function( expr, context, isXML ) { - var set; - - if ( !expr ) { - return []; - } - - for ( var i = 0, l = Expr.order.length; i < l; i++ ) { - var match, - type = Expr.order[i]; - - if ( (match = Expr.leftMatch[ type ].exec( expr )) ) { - var left = match[1]; - match.splice( 1, 1 ); - - if ( left.substr( left.length - 1 ) !== "\\" ) { - match[1] = (match[1] || "").replace( rBackslash, "" ); - set = Expr.find[ type ]( match, context, isXML ); - - if ( set != null ) { - expr = expr.replace( Expr.match[ type ], "" ); - break; - } - } - } - } - - if ( !set ) { - set = typeof context.getElementsByTagName !== "undefined" ? - context.getElementsByTagName( "*" ) : - []; - } - - return { set: set, expr: expr }; -}; - -Sizzle.filter = function( expr, set, inplace, not ) { - var match, anyFound, - old = expr, - result = [], - curLoop = set, - isXMLFilter = set && set[0] && Sizzle.isXML( set[0] ); - - while ( expr && set.length ) { - for ( var type in Expr.filter ) { - if ( (match = Expr.leftMatch[ type ].exec( expr )) != null && match[2] ) { - var found, item, - filter = Expr.filter[ type ], - left = match[1]; - - anyFound = false; - - match.splice(1,1); - - if ( left.substr( left.length - 1 ) === "\\" ) { - continue; - } - - if ( curLoop === result ) { - result = []; - } - - if ( Expr.preFilter[ type ] ) { - match = Expr.preFilter[ type ]( match, curLoop, inplace, result, not, isXMLFilter ); - - if ( !match ) { - anyFound = found = true; - - } else if ( match === true ) { - continue; - } - } - - if ( match ) { - for ( var i = 0; (item = curLoop[i]) != null; i++ ) { - if ( item ) { - found = filter( item, match, i, curLoop ); - var pass = not ^ !!found; - - if ( inplace && found != null ) { - if ( pass ) { - anyFound = true; - - } else { - curLoop[i] = false; - } - - } else if ( pass ) { - result.push( item ); - anyFound = true; - } - } - } - } - - if ( found !== undefined ) { - if ( !inplace ) { - curLoop = result; - } - - expr = expr.replace( Expr.match[ type ], "" ); - - if ( !anyFound ) { - return []; - } - - break; - } - } - } - - // Improper expression - if ( expr === old ) { - if ( anyFound == null ) { - Sizzle.error( expr ); - - } else { - break; - } - } - - old = expr; - } - - return curLoop; -}; - -Sizzle.error = function( msg ) { - throw "Syntax error, unrecognized expression: " + msg; -}; - -var Expr = Sizzle.selectors = { - order: [ "ID", "NAME", "TAG" ], - - match: { - ID: /#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/, - CLASS: /\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/, - NAME: /\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/, - ATTR: /\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/, - TAG: /^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/, - CHILD: /:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/, - POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/, - PSEUDO: /:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/ - }, - - leftMatch: {}, - - attrMap: { - "class": "className", - "for": "htmlFor" - }, - - attrHandle: { - href: function( elem ) { - return elem.getAttribute( "href" ); - }, - type: function( elem ) { - return elem.getAttribute( "type" ); - } - }, - - relative: { - "+": function(checkSet, part){ - var isPartStr = typeof part === "string", - isTag = isPartStr && !rNonWord.test( part ), - isPartStrNotTag = isPartStr && !isTag; - - if ( isTag ) { - part = part.toLowerCase(); - } - - for ( var i = 0, l = checkSet.length, elem; i < l; i++ ) { - if ( (elem = checkSet[i]) ) { - while ( (elem = elem.previousSibling) && elem.nodeType !== 1 ) {} - - checkSet[i] = isPartStrNotTag || elem && elem.nodeName.toLowerCase() === part ? - elem || false : - elem === part; - } - } - - if ( isPartStrNotTag ) { - Sizzle.filter( part, checkSet, true ); - } - }, - - ">": function( checkSet, part ) { - var elem, - isPartStr = typeof part === "string", - i = 0, - l = checkSet.length; - - if ( isPartStr && !rNonWord.test( part ) ) { - part = part.toLowerCase(); - - for ( ; i < l; i++ ) { - elem = checkSet[i]; - - if ( elem ) { - var parent = elem.parentNode; - checkSet[i] = parent.nodeName.toLowerCase() === part ? parent : false; - } - } - - } else { - for ( ; i < l; i++ ) { - elem = checkSet[i]; - - if ( elem ) { - checkSet[i] = isPartStr ? - elem.parentNode : - elem.parentNode === part; - } - } - - if ( isPartStr ) { - Sizzle.filter( part, checkSet, true ); - } - } - }, - - "": function(checkSet, part, isXML){ - var nodeCheck, - doneName = done++, - checkFn = dirCheck; - - if ( typeof part === "string" && !rNonWord.test( part ) ) { - part = part.toLowerCase(); - nodeCheck = part; - checkFn = dirNodeCheck; - } - - checkFn( "parentNode", part, doneName, checkSet, nodeCheck, isXML ); - }, - - "~": function( checkSet, part, isXML ) { - var nodeCheck, - doneName = done++, - checkFn = dirCheck; - - if ( typeof part === "string" && !rNonWord.test( part ) ) { - part = part.toLowerCase(); - nodeCheck = part; - checkFn = dirNodeCheck; - } - - checkFn( "previousSibling", part, doneName, checkSet, nodeCheck, isXML ); - } - }, - - find: { - ID: function( match, context, isXML ) { - if ( typeof context.getElementById !== "undefined" && !isXML ) { - var m = context.getElementById(match[1]); - // Check parentNode to catch when Blackberry 4.6 returns - // nodes that are no longer in the document #6963 - return m && m.parentNode ? [m] : []; - } - }, - - NAME: function( match, context ) { - if ( typeof context.getElementsByName !== "undefined" ) { - var ret = [], - results = context.getElementsByName( match[1] ); - - for ( var i = 0, l = results.length; i < l; i++ ) { - if ( results[i].getAttribute("name") === match[1] ) { - ret.push( results[i] ); - } - } - - return ret.length === 0 ? null : ret; - } - }, - - TAG: function( match, context ) { - if ( typeof context.getElementsByTagName !== "undefined" ) { - return context.getElementsByTagName( match[1] ); - } - } - }, - preFilter: { - CLASS: function( match, curLoop, inplace, result, not, isXML ) { - match = " " + match[1].replace( rBackslash, "" ) + " "; - - if ( isXML ) { - return match; - } - - for ( var i = 0, elem; (elem = curLoop[i]) != null; i++ ) { - if ( elem ) { - if ( not ^ (elem.className && (" " + elem.className + " ").replace(/[\t\n\r]/g, " ").indexOf(match) >= 0) ) { - if ( !inplace ) { - result.push( elem ); - } - - } else if ( inplace ) { - curLoop[i] = false; - } - } - } - - return false; - }, - - ID: function( match ) { - return match[1].replace( rBackslash, "" ); - }, - - TAG: function( match, curLoop ) { - return match[1].replace( rBackslash, "" ).toLowerCase(); - }, - - CHILD: function( match ) { - if ( match[1] === "nth" ) { - if ( !match[2] ) { - Sizzle.error( match[0] ); - } - - match[2] = match[2].replace(/^\+|\s*/g, ''); - - // parse equations like 'even', 'odd', '5', '2n', '3n+2', '4n-1', '-n+6' - var test = /(-?)(\d*)(?:n([+\-]?\d*))?/.exec( - match[2] === "even" && "2n" || match[2] === "odd" && "2n+1" || - !/\D/.test( match[2] ) && "0n+" + match[2] || match[2]); - - // calculate the numbers (first)n+(last) including if they are negative - match[2] = (test[1] + (test[2] || 1)) - 0; - match[3] = test[3] - 0; - } - else if ( match[2] ) { - Sizzle.error( match[0] ); - } - - // TODO: Move to normal caching system - match[0] = done++; - - return match; - }, - - ATTR: function( match, curLoop, inplace, result, not, isXML ) { - var name = match[1] = match[1].replace( rBackslash, "" ); - - if ( !isXML && Expr.attrMap[name] ) { - match[1] = Expr.attrMap[name]; - } - - // Handle if an un-quoted value was used - match[4] = ( match[4] || match[5] || "" ).replace( rBackslash, "" ); - - if ( match[2] === "~=" ) { - match[4] = " " + match[4] + " "; - } - - return match; - }, - - PSEUDO: function( match, curLoop, inplace, result, not ) { - if ( match[1] === "not" ) { - // If we're dealing with a complex expression, or a simple one - if ( ( chunker.exec(match[3]) || "" ).length > 1 || /^\w/.test(match[3]) ) { - match[3] = Sizzle(match[3], null, null, curLoop); - - } else { - var ret = Sizzle.filter(match[3], curLoop, inplace, true ^ not); - - if ( !inplace ) { - result.push.apply( result, ret ); - } - - return false; - } - - } else if ( Expr.match.POS.test( match[0] ) || Expr.match.CHILD.test( match[0] ) ) { - return true; - } - - return match; - }, - - POS: function( match ) { - match.unshift( true ); - - return match; - } - }, - - filters: { - enabled: function( elem ) { - return elem.disabled === false && elem.type !== "hidden"; - }, - - disabled: function( elem ) { - return elem.disabled === true; - }, - - checked: function( elem ) { - return elem.checked === true; - }, - - selected: function( elem ) { - // Accessing this property makes selected-by-default - // options in Safari work properly - if ( elem.parentNode ) { - elem.parentNode.selectedIndex; - } - - return elem.selected === true; - }, - - parent: function( elem ) { - return !!elem.firstChild; - }, - - empty: function( elem ) { - return !elem.firstChild; - }, - - has: function( elem, i, match ) { - return !!Sizzle( match[3], elem ).length; - }, - - header: function( elem ) { - return (/h\d/i).test( elem.nodeName ); - }, - - text: function( elem ) { - var attr = elem.getAttribute( "type" ), type = elem.type; - // IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc) - // use getAttribute instead to test this case - return elem.nodeName.toLowerCase() === "input" && "text" === type && ( attr === type || attr === null ); - }, - - radio: function( elem ) { - return elem.nodeName.toLowerCase() === "input" && "radio" === elem.type; - }, - - checkbox: function( elem ) { - return elem.nodeName.toLowerCase() === "input" && "checkbox" === elem.type; - }, - - file: function( elem ) { - return elem.nodeName.toLowerCase() === "input" && "file" === elem.type; - }, - - password: function( elem ) { - return elem.nodeName.toLowerCase() === "input" && "password" === elem.type; - }, - - submit: function( elem ) { - var name = elem.nodeName.toLowerCase(); - return (name === "input" || name === "button") && "submit" === elem.type; - }, - - image: function( elem ) { - return elem.nodeName.toLowerCase() === "input" && "image" === elem.type; - }, - - reset: function( elem ) { - var name = elem.nodeName.toLowerCase(); - return (name === "input" || name === "button") && "reset" === elem.type; - }, - - button: function( elem ) { - var name = elem.nodeName.toLowerCase(); - return name === "input" && "button" === elem.type || name === "button"; - }, - - input: function( elem ) { - return (/input|select|textarea|button/i).test( elem.nodeName ); - }, - - focus: function( elem ) { - return elem === elem.ownerDocument.activeElement; - } - }, - setFilters: { - first: function( elem, i ) { - return i === 0; - }, - - last: function( elem, i, match, array ) { - return i === array.length - 1; - }, - - even: function( elem, i ) { - return i % 2 === 0; - }, - - odd: function( elem, i ) { - return i % 2 === 1; - }, - - lt: function( elem, i, match ) { - return i < match[3] - 0; - }, - - gt: function( elem, i, match ) { - return i > match[3] - 0; - }, - - nth: function( elem, i, match ) { - return match[3] - 0 === i; - }, - - eq: function( elem, i, match ) { - return match[3] - 0 === i; - } - }, - filter: { - PSEUDO: function( elem, match, i, array ) { - var name = match[1], - filter = Expr.filters[ name ]; - - if ( filter ) { - return filter( elem, i, match, array ); - - } else if ( name === "contains" ) { - return (elem.textContent || elem.innerText || Sizzle.getText([ elem ]) || "").indexOf(match[3]) >= 0; - - } else if ( name === "not" ) { - var not = match[3]; - - for ( var j = 0, l = not.length; j < l; j++ ) { - if ( not[j] === elem ) { - return false; - } - } - - return true; - - } else { - Sizzle.error( name ); - } - }, - - CHILD: function( elem, match ) { - var type = match[1], - node = elem; - - switch ( type ) { - case "only": - case "first": - while ( (node = node.previousSibling) ) { - if ( node.nodeType === 1 ) { - return false; - } - } - - if ( type === "first" ) { - return true; - } - - node = elem; - - case "last": - while ( (node = node.nextSibling) ) { - if ( node.nodeType === 1 ) { - return false; - } - } - - return true; - - case "nth": - var first = match[2], - last = match[3]; - - if ( first === 1 && last === 0 ) { - return true; - } - - var doneName = match[0], - parent = elem.parentNode; - - if ( parent && (parent.sizcache !== doneName || !elem.nodeIndex) ) { - var count = 0; - - for ( node = parent.firstChild; node; node = node.nextSibling ) { - if ( node.nodeType === 1 ) { - node.nodeIndex = ++count; - } - } - - parent.sizcache = doneName; - } - - var diff = elem.nodeIndex - last; - - if ( first === 0 ) { - return diff === 0; - - } else { - return ( diff % first === 0 && diff / first >= 0 ); - } - } - }, - - ID: function( elem, match ) { - return elem.nodeType === 1 && elem.getAttribute("id") === match; - }, - - TAG: function( elem, match ) { - return (match === "*" && elem.nodeType === 1) || elem.nodeName.toLowerCase() === match; - }, - - CLASS: function( elem, match ) { - return (" " + (elem.className || elem.getAttribute("class")) + " ") - .indexOf( match ) > -1; - }, - - ATTR: function( elem, match ) { - var name = match[1], - result = Expr.attrHandle[ name ] ? - Expr.attrHandle[ name ]( elem ) : - elem[ name ] != null ? - elem[ name ] : - elem.getAttribute( name ), - value = result + "", - type = match[2], - check = match[4]; - - return result == null ? - type === "!=" : - type === "=" ? - value === check : - type === "*=" ? - value.indexOf(check) >= 0 : - type === "~=" ? - (" " + value + " ").indexOf(check) >= 0 : - !check ? - value && result !== false : - type === "!=" ? - value !== check : - type === "^=" ? - value.indexOf(check) === 0 : - type === "$=" ? - value.substr(value.length - check.length) === check : - type === "|=" ? - value === check || value.substr(0, check.length + 1) === check + "-" : - false; - }, - - POS: function( elem, match, i, array ) { - var name = match[2], - filter = Expr.setFilters[ name ]; - - if ( filter ) { - return filter( elem, i, match, array ); - } - } - } -}; - -var origPOS = Expr.match.POS, - fescape = function(all, num){ - return "\\" + (num - 0 + 1); - }; - -for ( var type in Expr.match ) { - Expr.match[ type ] = new RegExp( Expr.match[ type ].source + (/(?![^\[]*\])(?![^\(]*\))/.source) ); - Expr.leftMatch[ type ] = new RegExp( /(^(?:.|\r|\n)*?)/.source + Expr.match[ type ].source.replace(/\\(\d+)/g, fescape) ); -} - -var makeArray = function( array, results ) { - array = Array.prototype.slice.call( array, 0 ); - - if ( results ) { - results.push.apply( results, array ); - return results; - } - - return array; -}; - -// Perform a simple check to determine if the browser is capable of -// converting a NodeList to an array using builtin methods. -// Also verifies that the returned array holds DOM nodes -// (which is not the case in the Blackberry browser) -try { - Array.prototype.slice.call( document.documentElement.childNodes, 0 )[0].nodeType; - -// Provide a fallback method if it does not work -} catch( e ) { - makeArray = function( array, results ) { - var i = 0, - ret = results || []; - - if ( toString.call(array) === "[object Array]" ) { - Array.prototype.push.apply( ret, array ); - - } else { - if ( typeof array.length === "number" ) { - for ( var l = array.length; i < l; i++ ) { - ret.push( array[i] ); - } - - } else { - for ( ; array[i]; i++ ) { - ret.push( array[i] ); - } - } - } - - return ret; - }; -} - -var sortOrder, siblingCheck; - -if ( document.documentElement.compareDocumentPosition ) { - sortOrder = function( a, b ) { - if ( a === b ) { - hasDuplicate = true; - return 0; - } - - if ( !a.compareDocumentPosition || !b.compareDocumentPosition ) { - return a.compareDocumentPosition ? -1 : 1; - } - - return a.compareDocumentPosition(b) & 4 ? -1 : 1; - }; - -} else { - sortOrder = function( a, b ) { - // The nodes are identical, we can exit early - if ( a === b ) { - hasDuplicate = true; - return 0; - - // Fallback to using sourceIndex (in IE) if it's available on both nodes - } else if ( a.sourceIndex && b.sourceIndex ) { - return a.sourceIndex - b.sourceIndex; - } - - var al, bl, - ap = [], - bp = [], - aup = a.parentNode, - bup = b.parentNode, - cur = aup; - - // If the nodes are siblings (or identical) we can do a quick check - if ( aup === bup ) { - return siblingCheck( a, b ); - - // If no parents were found then the nodes are disconnected - } else if ( !aup ) { - return -1; - - } else if ( !bup ) { - return 1; - } - - // Otherwise they're somewhere else in the tree so we need - // to build up a full list of the parentNodes for comparison - while ( cur ) { - ap.unshift( cur ); - cur = cur.parentNode; - } - - cur = bup; - - while ( cur ) { - bp.unshift( cur ); - cur = cur.parentNode; - } - - al = ap.length; - bl = bp.length; - - // Start walking down the tree looking for a discrepancy - for ( var i = 0; i < al && i < bl; i++ ) { - if ( ap[i] !== bp[i] ) { - return siblingCheck( ap[i], bp[i] ); - } - } - - // We ended someplace up the tree so do a sibling check - return i === al ? - siblingCheck( a, bp[i], -1 ) : - siblingCheck( ap[i], b, 1 ); - }; - - siblingCheck = function( a, b, ret ) { - if ( a === b ) { - return ret; - } - - var cur = a.nextSibling; - - while ( cur ) { - if ( cur === b ) { - return -1; - } - - cur = cur.nextSibling; - } - - return 1; - }; -} - -// Utility function for retreiving the text value of an array of DOM nodes -Sizzle.getText = function( elems ) { - var ret = "", elem; - - for ( var i = 0; elems[i]; i++ ) { - elem = elems[i]; - - // Get the text from text nodes and CDATA nodes - if ( elem.nodeType === 3 || elem.nodeType === 4 ) { - ret += elem.nodeValue; - - // Traverse everything else, except comment nodes - } else if ( elem.nodeType !== 8 ) { - ret += Sizzle.getText( elem.childNodes ); - } - } - - return ret; -}; - -// Check to see if the browser returns elements by name when -// querying by getElementById (and provide a workaround) -(function(){ - // We're going to inject a fake input element with a specified name - var form = document.createElement("div"), - id = "script" + (new Date()).getTime(), - root = document.documentElement; - - form.innerHTML = ""; - - // Inject it into the root element, check its status, and remove it quickly - root.insertBefore( form, root.firstChild ); - - // The workaround has to do additional checks after a getElementById - // Which slows things down for other browsers (hence the branching) - if ( document.getElementById( id ) ) { - Expr.find.ID = function( match, context, isXML ) { - if ( typeof context.getElementById !== "undefined" && !isXML ) { - var m = context.getElementById(match[1]); - - return m ? - m.id === match[1] || typeof m.getAttributeNode !== "undefined" && m.getAttributeNode("id").nodeValue === match[1] ? - [m] : - undefined : - []; - } - }; - - Expr.filter.ID = function( elem, match ) { - var node = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id"); - - return elem.nodeType === 1 && node && node.nodeValue === match; - }; - } - - root.removeChild( form ); - - // release memory in IE - root = form = null; -})(); - -(function(){ - // Check to see if the browser returns only elements - // when doing getElementsByTagName("*") - - // Create a fake element - var div = document.createElement("div"); - div.appendChild( document.createComment("") ); - - // Make sure no comments are found - if ( div.getElementsByTagName("*").length > 0 ) { - Expr.find.TAG = function( match, context ) { - var results = context.getElementsByTagName( match[1] ); - - // Filter out possible comments - if ( match[1] === "*" ) { - var tmp = []; - - for ( var i = 0; results[i]; i++ ) { - if ( results[i].nodeType === 1 ) { - tmp.push( results[i] ); - } - } - - results = tmp; - } - - return results; - }; - } - - // Check to see if an attribute returns normalized href attributes - div.innerHTML = ""; - - if ( div.firstChild && typeof div.firstChild.getAttribute !== "undefined" && - div.firstChild.getAttribute("href") !== "#" ) { - - Expr.attrHandle.href = function( elem ) { - return elem.getAttribute( "href", 2 ); - }; - } - - // release memory in IE - div = null; -})(); - -if ( document.querySelectorAll ) { - (function(){ - var oldSizzle = Sizzle, - div = document.createElement("div"), - id = "__sizzle__"; - - div.innerHTML = "

"; - - // Safari can't handle uppercase or unicode characters when - // in quirks mode. - if ( div.querySelectorAll && div.querySelectorAll(".TEST").length === 0 ) { - return; - } - - Sizzle = function( query, context, extra, seed ) { - context = context || document; - - // Only use querySelectorAll on non-XML documents - // (ID selectors don't work in non-HTML documents) - if ( !seed && !Sizzle.isXML(context) ) { - // See if we find a selector to speed up - var match = /^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec( query ); - - if ( match && (context.nodeType === 1 || context.nodeType === 9) ) { - // Speed-up: Sizzle("TAG") - if ( match[1] ) { - return makeArray( context.getElementsByTagName( query ), extra ); - - // Speed-up: Sizzle(".CLASS") - } else if ( match[2] && Expr.find.CLASS && context.getElementsByClassName ) { - return makeArray( context.getElementsByClassName( match[2] ), extra ); - } - } - - if ( context.nodeType === 9 ) { - // Speed-up: Sizzle("body") - // The body element only exists once, optimize finding it - if ( query === "body" && context.body ) { - return makeArray( [ context.body ], extra ); - - // Speed-up: Sizzle("#ID") - } else if ( match && match[3] ) { - var elem = context.getElementById( match[3] ); - - // Check parentNode to catch when Blackberry 4.6 returns - // nodes that are no longer in the document #6963 - if ( elem && elem.parentNode ) { - // Handle the case where IE and Opera return items - // by name instead of ID - if ( elem.id === match[3] ) { - return makeArray( [ elem ], extra ); - } - - } else { - return makeArray( [], extra ); - } - } - - try { - return makeArray( context.querySelectorAll(query), extra ); - } catch(qsaError) {} - - // qSA works strangely on Element-rooted queries - // We can work around this by specifying an extra ID on the root - // and working up from there (Thanks to Andrew Dupont for the technique) - // IE 8 doesn't work on object elements - } else if ( context.nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) { - var oldContext = context, - old = context.getAttribute( "id" ), - nid = old || id, - hasParent = context.parentNode, - relativeHierarchySelector = /^\s*[+~]/.test( query ); - - if ( !old ) { - context.setAttribute( "id", nid ); - } else { - nid = nid.replace( /'/g, "\\$&" ); - } - if ( relativeHierarchySelector && hasParent ) { - context = context.parentNode; - } - - try { - if ( !relativeHierarchySelector || hasParent ) { - return makeArray( context.querySelectorAll( "[id='" + nid + "'] " + query ), extra ); - } - - } catch(pseudoError) { - } finally { - if ( !old ) { - oldContext.removeAttribute( "id" ); - } - } - } - } - - return oldSizzle(query, context, extra, seed); - }; - - for ( var prop in oldSizzle ) { - Sizzle[ prop ] = oldSizzle[ prop ]; - } - - // release memory in IE - div = null; - })(); -} - -(function(){ - var html = document.documentElement, - matches = html.matchesSelector || html.mozMatchesSelector || html.webkitMatchesSelector || html.msMatchesSelector; - - if ( matches ) { - // Check to see if it's possible to do matchesSelector - // on a disconnected node (IE 9 fails this) - var disconnectedMatch = !matches.call( document.createElement( "div" ), "div" ), - pseudoWorks = false; - - try { - // This should fail with an exception - // Gecko does not error, returns false instead - matches.call( document.documentElement, "[test!='']:sizzle" ); - - } catch( pseudoError ) { - pseudoWorks = true; - } - - Sizzle.matchesSelector = function( node, expr ) { - // Make sure that attribute selectors are quoted - expr = expr.replace(/\=\s*([^'"\]]*)\s*\]/g, "='$1']"); - - if ( !Sizzle.isXML( node ) ) { - try { - if ( pseudoWorks || !Expr.match.PSEUDO.test( expr ) && !/!=/.test( expr ) ) { - var ret = matches.call( node, expr ); - - // IE 9's matchesSelector returns false on disconnected nodes - if ( ret || !disconnectedMatch || - // As well, disconnected nodes are said to be in a document - // fragment in IE 9, so check for that - node.document && node.document.nodeType !== 11 ) { - return ret; - } - } - } catch(e) {} - } - - return Sizzle(expr, null, null, [node]).length > 0; - }; - } -})(); - -(function(){ - var div = document.createElement("div"); - - div.innerHTML = "
"; - - // Opera can't find a second classname (in 9.6) - // Also, make sure that getElementsByClassName actually exists - if ( !div.getElementsByClassName || div.getElementsByClassName("e").length === 0 ) { - return; - } - - // Safari caches class attributes, doesn't catch changes (in 3.2) - div.lastChild.className = "e"; - - if ( div.getElementsByClassName("e").length === 1 ) { - return; - } - - Expr.order.splice(1, 0, "CLASS"); - Expr.find.CLASS = function( match, context, isXML ) { - if ( typeof context.getElementsByClassName !== "undefined" && !isXML ) { - return context.getElementsByClassName(match[1]); - } - }; - - // release memory in IE - div = null; -})(); - -function dirNodeCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) { - for ( var i = 0, l = checkSet.length; i < l; i++ ) { - var elem = checkSet[i]; - - if ( elem ) { - var match = false; - - elem = elem[dir]; - - while ( elem ) { - if ( elem.sizcache === doneName ) { - match = checkSet[elem.sizset]; - break; - } - - if ( elem.nodeType === 1 && !isXML ){ - elem.sizcache = doneName; - elem.sizset = i; - } - - if ( elem.nodeName.toLowerCase() === cur ) { - match = elem; - break; - } - - elem = elem[dir]; - } - - checkSet[i] = match; - } - } -} - -function dirCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) { - for ( var i = 0, l = checkSet.length; i < l; i++ ) { - var elem = checkSet[i]; - - if ( elem ) { - var match = false; - - elem = elem[dir]; - - while ( elem ) { - if ( elem.sizcache === doneName ) { - match = checkSet[elem.sizset]; - break; - } - - if ( elem.nodeType === 1 ) { - if ( !isXML ) { - elem.sizcache = doneName; - elem.sizset = i; - } - - if ( typeof cur !== "string" ) { - if ( elem === cur ) { - match = true; - break; - } - - } else if ( Sizzle.filter( cur, [elem] ).length > 0 ) { - match = elem; - break; - } - } - - elem = elem[dir]; - } - - checkSet[i] = match; - } - } -} - -if ( document.documentElement.contains ) { - Sizzle.contains = function( a, b ) { - return a !== b && (a.contains ? a.contains(b) : true); - }; - -} else if ( document.documentElement.compareDocumentPosition ) { - Sizzle.contains = function( a, b ) { - return !!(a.compareDocumentPosition(b) & 16); - }; - -} else { - Sizzle.contains = function() { - return false; - }; -} - -Sizzle.isXML = function( elem ) { - // documentElement is verified for cases where it doesn't yet exist - // (such as loading iframes in IE - #4833) - var documentElement = (elem ? elem.ownerDocument || elem : 0).documentElement; - - return documentElement ? documentElement.nodeName !== "HTML" : false; -}; - -var posProcess = function( selector, context ) { - var match, - tmpSet = [], - later = "", - root = context.nodeType ? [context] : context; - - // Position selectors must be done after the filter - // And so must :not(positional) so we move all PSEUDOs to the end - while ( (match = Expr.match.PSEUDO.exec( selector )) ) { - later += match[0]; - selector = selector.replace( Expr.match.PSEUDO, "" ); - } - - selector = Expr.relative[selector] ? selector + "*" : selector; - - for ( var i = 0, l = root.length; i < l; i++ ) { - Sizzle( selector, root[i], tmpSet ); - } - - return Sizzle.filter( later, tmpSet ); -}; - -// EXPOSE -jQuery.find = Sizzle; -jQuery.expr = Sizzle.selectors; -jQuery.expr[":"] = jQuery.expr.filters; -jQuery.unique = Sizzle.uniqueSort; -jQuery.text = Sizzle.getText; -jQuery.isXMLDoc = Sizzle.isXML; -jQuery.contains = Sizzle.contains; - - -})(); - - -var runtil = /Until$/, - rparentsprev = /^(?:parents|prevUntil|prevAll)/, - // Note: This RegExp should be improved, or likely pulled from Sizzle - rmultiselector = /,/, - isSimple = /^.[^:#\[\.,]*$/, - slice = Array.prototype.slice, - POS = jQuery.expr.match.POS, - // methods guaranteed to produce a unique set when starting from a unique set - guaranteedUnique = { - children: true, - contents: true, - next: true, - prev: true - }; - -jQuery.fn.extend({ - find: function( selector ) { - var self = this, - i, l; - - if ( typeof selector !== "string" ) { - return jQuery( selector ).filter(function() { - for ( i = 0, l = self.length; i < l; i++ ) { - if ( jQuery.contains( self[ i ], this ) ) { - return true; - } - } - }); - } - - var ret = this.pushStack( "", "find", selector ), - length, n, r; - - for ( i = 0, l = this.length; i < l; i++ ) { - length = ret.length; - jQuery.find( selector, this[i], ret ); - - if ( i > 0 ) { - // Make sure that the results are unique - for ( n = length; n < ret.length; n++ ) { - for ( r = 0; r < length; r++ ) { - if ( ret[r] === ret[n] ) { - ret.splice(n--, 1); - break; - } - } - } - } - } - - return ret; - }, - - has: function( target ) { - var targets = jQuery( target ); - return this.filter(function() { - for ( var i = 0, l = targets.length; i < l; i++ ) { - if ( jQuery.contains( this, targets[i] ) ) { - return true; - } - } - }); - }, - - not: function( selector ) { - return this.pushStack( winnow(this, selector, false), "not", selector); - }, - - filter: function( selector ) { - return this.pushStack( winnow(this, selector, true), "filter", selector ); - }, - - is: function( selector ) { - return !!selector && ( typeof selector === "string" ? - jQuery.filter( selector, this ).length > 0 : - this.filter( selector ).length > 0 ); - }, - - closest: function( selectors, context ) { - var ret = [], i, l, cur = this[0]; - - // Array - if ( jQuery.isArray( selectors ) ) { - var match, selector, - matches = {}, - level = 1; - - if ( cur && selectors.length ) { - for ( i = 0, l = selectors.length; i < l; i++ ) { - selector = selectors[i]; - - if ( !matches[ selector ] ) { - matches[ selector ] = POS.test( selector ) ? - jQuery( selector, context || this.context ) : - selector; - } - } - - while ( cur && cur.ownerDocument && cur !== context ) { - for ( selector in matches ) { - match = matches[ selector ]; - - if ( match.jquery ? match.index( cur ) > -1 : jQuery( cur ).is( match ) ) { - ret.push({ selector: selector, elem: cur, level: level }); - } - } - - cur = cur.parentNode; - level++; - } - } - - return ret; - } - - // String - var pos = POS.test( selectors ) || typeof selectors !== "string" ? - jQuery( selectors, context || this.context ) : - 0; - - for ( i = 0, l = this.length; i < l; i++ ) { - cur = this[i]; - - while ( cur ) { - if ( pos ? pos.index(cur) > -1 : jQuery.find.matchesSelector(cur, selectors) ) { - ret.push( cur ); - break; - - } else { - cur = cur.parentNode; - if ( !cur || !cur.ownerDocument || cur === context || cur.nodeType === 11 ) { - break; - } - } - } - } - - ret = ret.length > 1 ? jQuery.unique( ret ) : ret; - - return this.pushStack( ret, "closest", selectors ); - }, - - // Determine the position of an element within - // the matched set of elements - index: function( elem ) { - if ( !elem || typeof elem === "string" ) { - return jQuery.inArray( this[0], - // If it receives a string, the selector is used - // If it receives nothing, the siblings are used - elem ? jQuery( elem ) : this.parent().children() ); - } - // Locate the position of the desired element - return jQuery.inArray( - // If it receives a jQuery object, the first element is used - elem.jquery ? elem[0] : elem, this ); - }, - - add: function( selector, context ) { - var set = typeof selector === "string" ? - jQuery( selector, context ) : - jQuery.makeArray( selector && selector.nodeType ? [ selector ] : selector ), - all = jQuery.merge( this.get(), set ); - - return this.pushStack( isDisconnected( set[0] ) || isDisconnected( all[0] ) ? - all : - jQuery.unique( all ) ); - }, - - andSelf: function() { - return this.add( this.prevObject ); - } -}); - -// A painfully simple check to see if an element is disconnected -// from a document (should be improved, where feasible). -function isDisconnected( node ) { - return !node || !node.parentNode || node.parentNode.nodeType === 11; -} - -jQuery.each({ - parent: function( elem ) { - var parent = elem.parentNode; - return parent && parent.nodeType !== 11 ? parent : null; - }, - parents: function( elem ) { - return jQuery.dir( elem, "parentNode" ); - }, - parentsUntil: function( elem, i, until ) { - return jQuery.dir( elem, "parentNode", until ); - }, - next: function( elem ) { - return jQuery.nth( elem, 2, "nextSibling" ); - }, - prev: function( elem ) { - return jQuery.nth( elem, 2, "previousSibling" ); - }, - nextAll: function( elem ) { - return jQuery.dir( elem, "nextSibling" ); - }, - prevAll: function( elem ) { - return jQuery.dir( elem, "previousSibling" ); - }, - nextUntil: function( elem, i, until ) { - return jQuery.dir( elem, "nextSibling", until ); - }, - prevUntil: function( elem, i, until ) { - return jQuery.dir( elem, "previousSibling", until ); - }, - siblings: function( elem ) { - return jQuery.sibling( elem.parentNode.firstChild, elem ); - }, - children: function( elem ) { - return jQuery.sibling( elem.firstChild ); - }, - contents: function( elem ) { - return jQuery.nodeName( elem, "iframe" ) ? - elem.contentDocument || elem.contentWindow.document : - jQuery.makeArray( elem.childNodes ); - } -}, function( name, fn ) { - jQuery.fn[ name ] = function( until, selector ) { - var ret = jQuery.map( this, fn, until ), - // The variable 'args' was introduced in - // https://github.com/jquery/jquery/commit/52a0238 - // to work around a bug in Chrome 10 (Dev) and should be removed when the bug is fixed. - // http://code.google.com/p/v8/issues/detail?id=1050 - args = slice.call(arguments); - - if ( !runtil.test( name ) ) { - selector = until; - } - - if ( selector && typeof selector === "string" ) { - ret = jQuery.filter( selector, ret ); - } - - ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret; - - if ( (this.length > 1 || rmultiselector.test( selector )) && rparentsprev.test( name ) ) { - ret = ret.reverse(); - } - - return this.pushStack( ret, name, args.join(",") ); - }; -}); - -jQuery.extend({ - filter: function( expr, elems, not ) { - if ( not ) { - expr = ":not(" + expr + ")"; - } - - return elems.length === 1 ? - jQuery.find.matchesSelector(elems[0], expr) ? [ elems[0] ] : [] : - jQuery.find.matches(expr, elems); - }, - - dir: function( elem, dir, until ) { - var matched = [], - cur = elem[ dir ]; - - while ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) { - if ( cur.nodeType === 1 ) { - matched.push( cur ); - } - cur = cur[dir]; - } - return matched; - }, - - nth: function( cur, result, dir, elem ) { - result = result || 1; - var num = 0; - - for ( ; cur; cur = cur[dir] ) { - if ( cur.nodeType === 1 && ++num === result ) { - break; - } - } - - return cur; - }, - - sibling: function( n, elem ) { - var r = []; - - for ( ; n; n = n.nextSibling ) { - if ( n.nodeType === 1 && n !== elem ) { - r.push( n ); - } - } - - return r; - } -}); - -// Implement the identical functionality for filter and not -function winnow( elements, qualifier, keep ) { - - // Can't pass null or undefined to indexOf in Firefox 4 - // Set to 0 to skip string check - qualifier = qualifier || 0; - - if ( jQuery.isFunction( qualifier ) ) { - return jQuery.grep(elements, function( elem, i ) { - var retVal = !!qualifier.call( elem, i, elem ); - return retVal === keep; - }); - - } else if ( qualifier.nodeType ) { - return jQuery.grep(elements, function( elem, i ) { - return (elem === qualifier) === keep; - }); - - } else if ( typeof qualifier === "string" ) { - var filtered = jQuery.grep(elements, function( elem ) { - return elem.nodeType === 1; - }); - - if ( isSimple.test( qualifier ) ) { - return jQuery.filter(qualifier, filtered, !keep); - } else { - qualifier = jQuery.filter( qualifier, filtered ); - } - } - - return jQuery.grep(elements, function( elem, i ) { - return (jQuery.inArray( elem, qualifier ) >= 0) === keep; - }); -} - - - - -var rinlinejQuery = / jQuery\d+="(?:\d+|null)"/g, - rleadingWhitespace = /^\s+/, - rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig, - rtagName = /<([\w:]+)/, - rtbody = /", "" ], - legend: [ 1, "
", "
" ], - thead: [ 1, "", "
" ], - tr: [ 2, "", "
" ], - td: [ 3, "", "
" ], - col: [ 2, "", "
" ], - area: [ 1, "", "" ], - _default: [ 0, "", "" ] - }; - -wrapMap.optgroup = wrapMap.option; -wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; -wrapMap.th = wrapMap.td; - -// IE can't serialize and " + source_code :html, < + +HTML message "Save and refresh the page in the browser. It should look unchanged." end step do message "Type in this short script. Javascript is case-specific and picky about syntax, so if your script doesn't run, check carefully for typos." - source_code "HTML", "" + source_code :html, < + function replaceName() { + var myNewName = window.prompt('Pick a new name!'); + document.getElementById('user-name').innerHTML = myNewName; + } + + document.onclick = replaceName; + +HTML message "Refresh the page, and click on one of your paragraphs. You should see a browser prompt like this:" message "" message "Once you answer the prompt, you should see the bold text that was your name change to whatever you entered." From 32782db3e2494156bff7a24559f0c9f916f971bc Mon Sep 17 00:00:00 2001 From: Travis Grathwell Date: Mon, 29 Apr 2013 19:16:39 -0700 Subject: [PATCH 206/897] Heredocify the remaining crazy strings in frontend site --- sites/frontend/HTML_structure.step | 40 +++-- sites/frontend/HTML_tags.step | 192 ++++++++++++----------- sites/frontend/add_more_elements.step | 43 +++-- sites/frontend/basic_CSS.step | 10 +- sites/frontend/basic_javascript.step | 28 ++-- sites/frontend/frontend.step | 8 +- sites/frontend/introduction_to_html.step | 2 +- sites/frontend/jquery.step | 34 ++-- sites/frontend/jquery_vs_javascript.step | 14 +- sites/frontend/make_a_web_page.step | 55 +++++-- 10 files changed, 260 insertions(+), 166 deletions(-) diff --git a/sites/frontend/HTML_structure.step b/sites/frontend/HTML_structure.step index d0d86b5e4..6ab1acd99 100644 --- a/sites/frontend/HTML_structure.step +++ b/sites/frontend/HTML_structure.step @@ -20,9 +20,15 @@ The `` encloses all the rest of your page, and states unequivocally, "Here ## Pages, Like People, Have a Head and a Body -MARKDOWN -source_code "HTML", "\n\n\s\sInvisible, Important Stuff\n\s\sActual Visible Content\n" -message <<-MARKDOWN + MARKDOWN + source_code :html, < + + Invisible, Important Stuff + Actual Visible Content + +HTML + message <<-MARKDOWN ### The Head @@ -42,27 +48,33 @@ program more about the file, like who wrote it or what keywords are relevant. The Body contains the actual content of your file, the things you'll want your users to be able to see, read, or interact with! - - - -MARKDOWN + MARKDOWN end steps do step do - message "Let's add the doctype, HTML, head, and body tags to your file. It should look like this:" - message "" - message "Save the file and refresh your browser. Everything should look mostly the same." + message <<-MARKDOWN +Let's add the doctype, HTML, head, and body tags to your file. It should look like this: + + + +Save the file and refresh your browser. Everything should look mostly the same. + + MARKDOWN end step do message "Let's add a title to our page within the `` section. Add this line:" - source_code "HTML", "My Sample HTML page" - message "When you refresh your browser, you should see the title on the tab in Chrome." - message "" - message "(If it doesn't show up, double check that you put the line between the opening and closing head tags, and that you saved your file before refreshing.)" + source_code :html, "My Sample HTML page" + message <<-MARKDOWN +When you refresh your browser, you should see the title on the tab in Chrome. + + + +(If it doesn't show up, double check that you put the line between the opening and closing head tags, and that you saved your file before refreshing.) + MARKDOWN end end diff --git a/sites/frontend/HTML_tags.step b/sites/frontend/HTML_tags.step index 23303489e..ff0c34619 100644 --- a/sites/frontend/HTML_tags.step +++ b/sites/frontend/HTML_tags.step @@ -5,72 +5,89 @@ end overview do -## Use Tags to Separate Blocks of Content - -message <<-MARKDOWN + message <<-MARKDOWN - Tags convey meaning. And in order to display your content well, everything should be inside of a tag, not just words you want emphasized. So let's use the paragraph tag `

` and the header 1 tag `

`. +## Use Tags to Separate Blocks of Content - You'll notice that even if you put in extra lines and spaces, HTML will treat any number of - new line or space characters like there's just one space there. When you're getting started - with HTML, this can seem like a pain, because you have to type -MARKDOWN -source_code "HTML", "

first sentence

\n

second sentence

" +Tags convey meaning. And in order to display your content well, everything should be inside of a tag, not just words you want emphasized. So let's use the paragraph tag `

` and the header 1 tag `

`. -message <<-MARKDOWN +You'll notice that even if you put in extra lines and spaces, HTML will treat any number of +new line or space characters like there's just one space there. When you're getting started +with HTML, this can seem like a pain, because you have to type + MARKDOWN - when all you want is a blank line between two sentences. But as you get more advanced, this - aspect of HTML will feel more useful, because it means you can format your code however is - most readable for **you**, without worrying about what the browser will think of your blank - lines and spaces. -MARKDOWN + source_code :html, <first sentence

+

second sentence

+HTML + message <<-MARKDOWN +when all you want is a blank line between two sentences. But as you get more advanced, this +aspect of HTML will feel more useful, because it means you can format your code however is +most readable for **you**, without worrying about what the browser will think of your blank +lines and spaces. -message <<-MARKDOWN ## Nested Tags +It's common for an HTML tag to be nested inside another tag. In the example above, you saw: + MARKDOWN - It's common for an HTML tag to be nested inside another tag. In the example above, you saw: -MARKDOWN - -source_code "HTML", "

" - -important do - message "Just make sure that the tags are correctly _nested_. For example, you can't do:" - - source_code "HTML", "

Hello World!

I like you!" - - message "The inner tag, `em`, needs to close before the outer tag closes." -end - + source_code :html, "

" + important do + message "Just make sure that the tags are correctly _nested_. For example, you can't do:" + source_code :html, "

Hello World!

I like you!" + message "The inner tag, `em`, needs to close before the outer tag closes." + end end steps do step do message "Add some more lines of content to your HTML file. Introduce yourself." - source_code "HTML", "Hello World!\n\nMy name is Rachel." + + source_code :html, <<-HTML +Hello World! + +My name is Rachel. + HTML + message "Now save the file and refresh your browser." - message "" + img src: 'img/hello_world_2line.png' end step do message "Even though we put in some blank lines, the browser ignored them. So we'll have to use tags to break up our content." message "Update your HTML with an `h1` tag and a `p` tag:" - source_code "HTML", "

Hello World!

\n\n

My name is Rachel.

" + + source_code :html, <<-HTML +

Hello World!

+

My name is Rachel.

+ HTML + message "Now save the file and refresh your browser." - message "" + img src: 'img/hello_world_2line2.png' end step do message "Now let's add a list of things we like." - source_code "HTML", "

Hello World!

\n

My name is Rachel.

\n

I like:

\n
    \n\s\s
  • Polka Dots
  • \n\s\s
  • Soccer
  • \n\s\s
  • Programming
  • \n
" + + source_code :html, <<-HTML +

Hello World!

+

My name is Rachel.

+

I like:

+
    +
  • Polka Dots
  • +
  • Soccer
  • +
  • Programming
  • +
+ HTML + message "Now save the file and refresh your browser." - message "" + img src: 'img/html_tags_list.png' end end @@ -78,8 +95,7 @@ end explanation do -message <<-MARKDOWN - + message <<-MARKDOWN ## Tags for Every Occasion @@ -93,56 +109,56 @@ are a ton of other tags you might use: ## More Tags -MARKDOWN - -table :border=>"1", :cellspacing=>"0", :cellpadding=>"3", :align=>"center" do - tr { - th "Tag" - th "Purpose" - } - tr { - td "a" - td "A link (the 'a' stands for Anchor)" - } - tr { - td "h1-h6" - td "Various headers, h1 is the most important, h6 the least." - } - tr { - td "ul" - td "Start a bulleted list (an 'unordered list')" - } - tr { - td "ol" - td "Start a numbered list (an 'ordered list')" - } - tr { - td "li" - td "A single thing within a list (a 'list item')" - } - tr { - td "table, tr, td" - td "You can make tables (like this one) with table rows and data cells" - } - tr { - td "form" - td "A form that can collect data from user input" - } - tr { - td "input" - td "A text input, a button, or a checkbox in a form" - } - tr { - td "div" - td "A section marker that doesn't do anything specific to the contents itself, but does make a new line after. (More on this later.)" - } - tr { - td "span" - td "Another section marker that doesn't do anything to its contents, but is inline - it does not make a new line after." - } -end + MARKDOWN + + table border: "1", cellspacing: "0", cellpadding: "3", align: "center" do + tr { + th "Tag" + th "Purpose" + } + tr { + td "a" + td "A link (the 'a' stands for Anchor)" + } + tr { + td "h1-h6" + td "Various headers, h1 is the most important, h6 the least." + } + tr { + td "ul" + td "Start a bulleted list (an 'unordered list')" + } + tr { + td "ol" + td "Start a numbered list (an 'ordered list')" + } + tr { + td "li" + td "A single thing within a list (a 'list item')" + } + tr { + td "table, tr, td" + td "You can make tables (like this one) with table rows and data cells" + } + tr { + td "form" + td "A form that can collect data from user input" + } + tr { + td "input" + td "A text input, a button, or a checkbox in a form" + } + tr { + td "div" + td "A section marker that doesn't do anything specific to the contents itself, but does make a new line after. (More on this later.)" + } + tr { + td "span" + td "Another section marker that doesn't do anything to its contents, but is inline - it does not make a new line after." + } + end -message <<-MARKDOWN + message <<-MARKDOWN Don't try to memorize all the tags! You can always look them up on sites like: @@ -156,10 +172,8 @@ Can you link your favorite things to their respective Wikipedia pages? Here's an CLASS DISCUSSION: What are all the individual parts of the code to add a link? -MARKDOWN + MARKDOWN end next_step "HTML_structure" - - diff --git a/sites/frontend/add_more_elements.step b/sites/frontend/add_more_elements.step index d9c306b52..f26ad74fe 100644 --- a/sites/frontend/add_more_elements.step +++ b/sites/frontend/add_more_elements.step @@ -8,24 +8,39 @@ end steps do step do - message "CHALLENGE: The index.html page you downloaded is a simple profile page. Do a quick read through of the HTML and see if you can guess from the context what any unfamiliar tags might do." - message "Take 5 or 10 minutes to replace some of the existing text with some info about yourself. You don't have to write a novella, but filling in some tags is a good way to get oriented in the file. Then, save the page and refresh the browser." + message <<-MARKDOWN +CHALLENGE: The index.html page you downloaded is a simple profile page. Do a quick read through of the HTML and see if you can guess from the context what any unfamiliar tags might do. + +Take 5 or 10 minutes to replace some of the existing text with some info about yourself. You don't have to write a novella, but filling in some tags is a good way to get oriented in the file. Then, save the page and refresh the browser. + MARKDOWN end - step do - message "CHALLENGE: Add an image tag to the page, right above the word 'Contents'. There's a sample image in the resources folder that you can use called 'picture.jpg', but if you want to personalize your page, copy a picture of yourself into the resources folder and add that to the page instead." - message "Two hints: images are usually included with an `img` tag, and the tag's `src` attribute provides the path to the actual file. When you're done, you'll have something like this:" - message "" - message "Don't forget that, because it doesn't wrap text content, the `img` tag is self-closing, meaning it doesn't need an ending tag. You should never code ``." + step do + message <<-MARKDOWN +CHALLENGE: Add an image tag to the page, right above the word 'Contents'. There's a sample image in the resources folder that you can use called 'picture.jpg', but if you want to personalize your page, copy a picture of yourself into the resources folder and add that to the page instead. + +Two hints: images are usually included with an `img` tag, and the tag's `src` attribute provides the path to the actual file. When you're done, you'll have something like this: + + + +Don't forget that, because it doesn't wrap text content, the `img` tag is self-closing, meaning it doesn't need an ending tag. You should never code ``. + MARKDOWN end step do - message "CHALLENGE: Add two kinds of anchor links." - message "Links in html are created by the `a` tag. Add an `a` tag somewhere in the document that creates a link to another page on the web." - message "If you're not sure what attributes an `a` tag can have, see if you can look it up on [MDN](https://developer.mozilla.org/en/HTML/Element/a)." - message "You can also make links that stay on the current page and just point to another block of content. Instead of linking to a url, they'll link to the id of an element you want to jump to, with an attribute like `href='#id-name'`" - message "See if you can turn the list items under the word 'Contents' into links that jump down the page to the relevant content. They'll look like this:" - message "" + message <<-MARKDOWN +CHALLENGE: Add two kinds of anchor links. + +Links in html are created by the `a` tag. Add an `a` tag somewhere in the document that creates a link to another page on the web. + +If you're not sure what attributes an `a` tag can have, see if you can look it up on [MDN](https://developer.mozilla.org/en/HTML/Element/a). + +You can also make links that stay on the current page and just point to another block of content. Instead of linking to a url, they'll link to the id of an element you want to jump to, with an attribute like `href='#id-name'` + +See if you can turn the list items under the word 'Contents' into links that jump down the page to the relevant content. They'll look like this: + + + MARKDOWN end @@ -49,4 +64,4 @@ end consider_deploying_to_github -next_step "make_columns" +next_step 'make_columns' diff --git a/sites/frontend/basic_CSS.step b/sites/frontend/basic_CSS.step index 57faa340e..b634fc8a9 100644 --- a/sites/frontend/basic_CSS.step +++ b/sites/frontend/basic_CSS.step @@ -75,9 +75,13 @@ p { } HTML - message "When you save and refresh your browser, you should see the styles you added:" - message "" - message "The `type` and `media` attributes inside of the `" + source_code :html, <<-HTML + + HTML message <<-MARKDOWN * A CSS tag looks like this when it's a link: MARKDOWN - source_code "HTML", "" + source_code :html, <<-HTML + + HTML end consider_deploying_to_github From 424334df334e82e73606303ce3ae37ac87addab5 Mon Sep 17 00:00:00 2001 From: Travis Grathwell Date: Fri, 3 May 2013 22:25:12 -0700 Subject: [PATCH 207/897] Update RailsInstaller instructions ...to be less fearful that people will watch the video --- sites/curriculum/curriculum.step | 2 +- sites/installfest/osx_railsinstaller.step | 10 +++++----- sites/installfest/windows.step | 16 ++++++++-------- sites/ruby/ruby.step | 2 +- 4 files changed, 15 insertions(+), 15 deletions(-) diff --git a/sites/curriculum/curriculum.step b/sites/curriculum/curriculum.step index 952a66ad9..fe81498bc 100755 --- a/sites/curriculum/curriculum.step +++ b/sites/curriculum/curriculum.step @@ -38,7 +38,7 @@ day... unless I really screwed something up. :D We're going to be working with: -* ruby 1.9.3 installed via rvm (mac or linux) or railsinstaller (windows) +* ruby 1.9.3 installed via rvm (mac or linux) or RailsInstaller (windows) * rails 3.2.x * bundler * sqlite diff --git a/sites/installfest/osx_railsinstaller.step b/sites/installfest/osx_railsinstaller.step index 1cfd4fff0..fd8e91567 100644 --- a/sites/installfest/osx_railsinstaller.step +++ b/sites/installfest/osx_railsinstaller.step @@ -2,13 +2,13 @@ message "These instructions should work on Snow Leopard, Lion, and Mountain Lion step "Run RailsInstaller" do - message "RailsInstaller includes Rails, Ruby, Git, and SQLite." + message <<-MARKDOWN +RailsInstaller includes Rails, Ruby, Git, and SQLite. - message "Go to and download the kit." +Go to , scroll to the 'Downloads' section, and download the RailsInstaller for your OS. - important "**Don't watch the video!** After you download the file, come back to this site!" - - message "Click on the downloaded file to run the install wizard. Click Next at each step to accept the defaults. Enter your full name and email when prompted." +Click on the downloaded file to run the install wizard. Click Next at each step to accept the defaults. Enter your full name and email when prompted. + MARKDOWN end step "Open Terminal" do diff --git a/sites/installfest/windows.step b/sites/installfest/windows.step index 555222a32..671c445e0 100644 --- a/sites/installfest/windows.step +++ b/sites/installfest/windows.step @@ -4,20 +4,20 @@ step "Run RailsInstaller" do - message "RailsInstaller includes Rails, Ruby, Git, and SQLite." + message <<-MARKDOWN +RailsInstaller includes Rails, Ruby, Git, and SQLite. - message "Go to and download the kit." +Go to , scroll to the 'Downloads' section, and download the RailsInstaller for Windows/Ruby 1.9. - important "**Don't watch the video!** After you download the file, come back to this site!" +Click on the downloaded file to run the install wizard. Click Next at each step to accept the defaults. - message "Click on the downloaded file to run the install wizard. Click Next at each step to accept the defaults." +Be sure to check the box for *Add executables for Ruby, Git and DevKit to the PATH* - message "Be sure to check the box for *Add executables for Ruby, Git and DevKit to the PATH*" +![WinXPRailsInstaller.jpg](WinXPRailsInstaller.jpg) - message "![WinXPRailsInstaller.jpg](WinXPRailsInstaller.jpg)" - - message "Rails will be installed in C:\\RailsInstaller and the directory for your Rails projects will be C:\\Sites" +Rails will be installed in C:\\RailsInstaller and the directory for your Rails projects will be C:\\Sites + MARKDOWN end step "Configure your git and ssh environment" do diff --git a/sites/ruby/ruby.step b/sites/ruby/ruby.step index 2c5c616e6..574c350cf 100755 --- a/sites/ruby/ruby.step +++ b/sites/ruby/ruby.step @@ -15,7 +15,7 @@ When you have completed this curriculum you should understand: We're going to be working with: -* ruby 1.9.3 installed via rvm (mac or linux) or railsinstaller (windows) +* ruby 1.9.3 installed via rvm (mac or linux) or RailsInstaller (windows) * a command line program like Terminal (mac) or CMD.EXE (windows) * the text editor of your choice From d2b0993deeba10135846bc4d07165b28c4574df2 Mon Sep 17 00:00:00 2001 From: Anna Carey Date: Tue, 21 May 2013 21:27:20 -0400 Subject: [PATCH 208/897] minor clarifications and edits for windows installfest Conflicts: sites/installfest/windows.step --- sites/installfest/WinRailsInstaller.jpg | Bin 0 -> 65811 bytes sites/installfest/WinXPRailsInstaller.jpg | Bin 35798 -> 0 bytes sites/installfest/WindowsFirewall.jpg | Bin 0 -> 86795 bytes sites/installfest/create_a_heroku_account.step | 1 + .../create_and_deploy_a_rails_app.step | 10 +++++++--- sites/installfest/get_a_sticker.step | 2 +- sites/installfest/windows.step | 12 ++++++------ sites/installfest/windows_colors.step | 4 ++-- 8 files changed, 17 insertions(+), 12 deletions(-) create mode 100644 sites/installfest/WinRailsInstaller.jpg delete mode 100644 sites/installfest/WinXPRailsInstaller.jpg create mode 100644 sites/installfest/WindowsFirewall.jpg diff --git a/sites/installfest/WinRailsInstaller.jpg b/sites/installfest/WinRailsInstaller.jpg new file mode 100644 index 0000000000000000000000000000000000000000..33214260c771dfb7612be1d26504b337ca159e4c GIT binary patch literal 65811 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 literal 0 HcmV?d00001 diff --git a/sites/installfest/WinXPRailsInstaller.jpg b/sites/installfest/WinXPRailsInstaller.jpg deleted file mode 100644 index 9697b2a4d687283b98f4a7a0b3510c554c157f7d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35798 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 bUHJ#-;Ee(nU&7VE?e3ap$ooR|9}E8rOwQl> diff --git a/sites/installfest/WindowsFirewall.jpg b/sites/installfest/WindowsFirewall.jpg new file mode 100644 index 0000000000000000000000000000000000000000..42e03d2288145817074730449e7aede8057e410b GIT binary patch literal 86795 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%0D~FG@p-kvX3j=8pz7-+)z;9j8z45g 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 f$UObF4cj?ZR~n2WFPfd6YCQY(( -* In Windows, you may need to let Ruby and Rails communicate through your firewall. Say yes. - ![Successful Rails Install](successful-rails-install.jpg) -* Back in the Terminal window where you ran rails server, type **Control-C** (don't type this into the console, but hold the Control and C keys at the same time) to kill(stop) the server. +* Back in the Terminal window where you ran rails server, type **Control-C** (don't type this into the console, but hold the Control and C keys at the same time) to kill(stop) the server. Windows will ask "Terminate batch job (Y/N)?". Type "Y". MARKDOWN important "On Windows, sometimes Control-C doesn't work. In that case, look for the key called 'Break' or 'Pause' and press Control-Break, then answer Y at the prompt. If there is no Pause/Break key on your keyboard, you can run `ruby script/rails server` instead of `rails server` which should allow Control-C to stop the server." @@ -174,6 +174,10 @@ end message "Save the file." + tip "Why Sqlite (sqlite3) and PostgreSQL (pg)?" do + message "SQLite and PostgreSQL are different kinds of databases. We're using SQLite for our development and test environments because it's simple to install. We're using PostgreSQL in our production envornment because Heroku has done the hard work of installing it for us and it's more powerful than SQLite. We have seperate test, development and production databases by default in Rails." + end + console <<-BASH bundle install --without production BASH diff --git a/sites/installfest/get_a_sticker.step b/sites/installfest/get_a_sticker.step index 8fb20092a..cc18458ce 100644 --- a/sites/installfest/get_a_sticker.step +++ b/sites/installfest/get_a_sticker.step @@ -186,7 +186,7 @@ end verify "heroku deploy" do important "Each application has its own `Gemfile`. Be sure you're opening the one inside your sticker app's folder." - message "Use your editor to open the Gemfile and find the line containing:" + message "Use your editor to open the Gemfile (`C:\\sites\\sticker\\Gemfile` or `~/sticker/Gemfile`) and find the line containing:" source_code :ruby, <<-RUBY gem 'sqlite3' diff --git a/sites/installfest/windows.step b/sites/installfest/windows.step index 671c445e0..485925365 100644 --- a/sites/installfest/windows.step +++ b/sites/installfest/windows.step @@ -5,17 +5,17 @@ step "Run RailsInstaller" do message <<-MARKDOWN -RailsInstaller includes Rails, Ruby, Git, and SQLite. + RailsInstaller includes Rails, Ruby, Git, and SQLite. -Go to , scroll to the 'Downloads' section, and download the RailsInstaller for Windows/Ruby 1.9. + Go to , scroll to the 'Downloads' section, and download the RailsInstaller for Windows/Ruby 1.9. -Click on the downloaded file to run the install wizard. Click Next at each step to accept the defaults. + Click on the downloaded file to run the install wizard. Click Next at each step to accept the defaults. -Be sure to check the box for *Add executables for Ruby, Git and DevKit to the PATH* + Be sure to check the boxes for *Install git (recommended)* and *Add executables for Ruby, DevKit Git (if checked above) to the PATH* -![WinXPRailsInstaller.jpg](WinXPRailsInstaller.jpg) + ![WinRailsInstaller.jpg](WinRailsInstaller.jpg) -Rails will be installed in C:\\RailsInstaller and the directory for your Rails projects will be C:\\Sites + Rails will be installed in C:\\RailsInstaller and the directory for your Rails projects will be C:\\Sites MARKDOWN end diff --git a/sites/installfest/windows_colors.step b/sites/installfest/windows_colors.step index 34574ae1b..812f3209f 100644 --- a/sites/installfest/windows_colors.step +++ b/sites/installfest/windows_colors.step @@ -8,7 +8,7 @@ end step "Determine if you have a 32 or 64 bit Operating System" do message <<-MARKDOWN - * In Windows 7 or Vista, from the Start menu, type system in the Start Search box, and then click system in the Programs list. System Type under System will say whether it's a 32 or 64 bit Operating System + * In Windows 7 or Vista, from the Start menu, type *system* in the Start Search box, and then click *system* or *System Information* in the Programs list. *System Type* under *System* will say whether it's a 32 or 64 bit Operating System * In Windows XP, right click on the "My Computer" icon, choose Properties, then General * if System says Windows XP Professional x64 Edition Version then yours is 64 bit * if it says Windows XP Professional Version then it's 32 bit @@ -24,7 +24,7 @@ option "if your OS is 64 bit" do end step "Set up colors" do - message "open Console with Ruby and Rails" + message "open Command Prompt with Ruby and Rails" console "ansicon" message "now, when you use git and rspec, the output will not be all white-on-black" end From db7ed93ea07df3739aa3231d100257dd05875aca Mon Sep 17 00:00:00 2001 From: Anna Carey Date: Tue, 21 May 2013 21:53:49 -0400 Subject: [PATCH 209/897] clarified local data does not go to heroku --- sites/curriculum/deploying_to_heroku.step | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sites/curriculum/deploying_to_heroku.step b/sites/curriculum/deploying_to_heroku.step index 96641887d..2a088688d 100644 --- a/sites/curriculum/deploying_to_heroku.step +++ b/sites/curriculum/deploying_to_heroku.step @@ -73,7 +73,7 @@ git commit -m "Some helpful message for your future self" step "Run database migrations on Heroku" do console "heroku run rake db:migrate" - message "This tells Heroku to run your migrations on its database, like running rake db:migrate locally. Since Heroku's database is separate from the one on your computer, it needs to be updated every time you make database changes" + message "This tells Heroku to run your migrations on its database, like running rake db:migrate locally. Heroku's database is separate from the one on your computer, which means it needs to be updated every time you make changes to the structure of your database. It also means that you'll not see any of the data you entered into the sqlite3 database on your computer." end step "Visit your application" do From 4435c8b4e88811e5a12973f79e7ea459bc04e0e6 Mon Sep 17 00:00:00 2001 From: Anna Carey Date: Tue, 21 May 2013 21:56:32 -0400 Subject: [PATCH 210/897] fixed diagram to show that show and edit read from the db --- sites/workshop/diagrams.mw | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sites/workshop/diagrams.mw b/sites/workshop/diagrams.mw index 9d59872a7..16d5cb14d 100644 --- a/sites/workshop/diagrams.mw +++ b/sites/workshop/diagrams.mw @@ -36,14 +36,14 @@ shows the list of all topics - +Read GET /topics/2 show shows only topic number 2 - +Read GET /topics/2/edit edit From 933732e8eda5f869c79cab0f5f947f3334231c4d Mon Sep 17 00:00:00 2001 From: Anna Date: Tue, 21 May 2013 23:59:59 -0300 Subject: [PATCH 211/897] Update create_and_deploy_a_rails_app.step spelling fix --- sites/installfest/create_and_deploy_a_rails_app.step | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sites/installfest/create_and_deploy_a_rails_app.step b/sites/installfest/create_and_deploy_a_rails_app.step index 7d75758b6..6059f5e53 100644 --- a/sites/installfest/create_and_deploy_a_rails_app.step +++ b/sites/installfest/create_and_deploy_a_rails_app.step @@ -175,7 +175,7 @@ end message "Save the file." tip "Why Sqlite (sqlite3) and PostgreSQL (pg)?" do - message "SQLite and PostgreSQL are different kinds of databases. We're using SQLite for our development and test environments because it's simple to install. We're using PostgreSQL in our production envornment because Heroku has done the hard work of installing it for us and it's more powerful than SQLite. We have seperate test, development and production databases by default in Rails." + message "SQLite and PostgreSQL are different kinds of databases. We're using SQLite for our development and test environments because it's simple to install. We're using PostgreSQL in our production environment because Heroku has done the hard work of installing it for us and it's more powerful than SQLite. We have seperate test, development and production databases by default in Rails." end console <<-BASH From 8abeb6e75f58c47309fd367f94bd92704834495e Mon Sep 17 00:00:00 2001 From: Travis Grathwell Date: Wed, 22 May 2013 19:20:47 -0700 Subject: [PATCH 212/897] Revert ansicon to use the Github download to avoid broken link --- sites/installfest/windows_colors.step | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sites/installfest/windows_colors.step b/sites/installfest/windows_colors.step index 812f3209f..add720a29 100644 --- a/sites/installfest/windows_colors.step +++ b/sites/installfest/windows_colors.step @@ -1,8 +1,8 @@ message "The Rails server logging and test results are much easier to read with colored output, but the 'Command Prompt with Ruby and Rails' defaults to white on black. Add colors by following these steps." step "Download ANSICON" do - message "In the browser, visit " - message "Click the `ANSICON v1.61` link to download the file (or whatever the most recent version is)" + message "In the browser, visit " + message "Click the `ansi160.zip` link to download the file (or whatever the most recent version is)" message "Double-click the downloaded file to unzip it" end From 9a1ef9f1239a695a5a88c06ce9a8d2c441d72792 Mon Sep 17 00:00:00 2001 From: Travis Grathwell Date: Sat, 25 May 2013 21:14:37 -0700 Subject: [PATCH 213/897] Remove 'git seems stuck' and 'diagnostics for rvm' pages from installfest * The "what to do if git seems stuck" page is outdated, a little strange, and windows-specific. * The 'rvm diagnostics' page doesn't provide students with much information, it just gives TAs a place to start. In both situations, it's probably better to just leave it up to the judgement of the TA. --- sites/installfest/create_and_deploy_a_rails_app.step | 6 ++---- sites/installfest/diagnostics_for_rvm.step | 12 ------------ sites/installfest/what_to_do_if_git_seems_stuck.md | 12 ------------ 3 files changed, 2 insertions(+), 28 deletions(-) delete mode 100644 sites/installfest/diagnostics_for_rvm.step delete mode 100644 sites/installfest/what_to_do_if_git_seems_stuck.md diff --git a/sites/installfest/create_and_deploy_a_rails_app.step b/sites/installfest/create_and_deploy_a_rails_app.step index 6059f5e53..035bd34ae 100644 --- a/sites/installfest/create_and_deploy_a_rails_app.step +++ b/sites/installfest/create_and_deploy_a_rails_app.step @@ -50,9 +50,7 @@ If `rails server` starts up with no errors, you're golden! It'll look something message "If it does, congratulations! You've successfully installed Ruby AND Rails and started your server." -tip "If it doesn't work..." do - link "diagnostics_for_rvm" -end +tip "If it doesn't work, ask a TA for help." message <<-MARKDOWN @@ -221,7 +219,7 @@ To git@heroku.com:floating-winter-18.git important "Be sure to find and learn your Heroku application name in the output." - message "This process will probably take about twice as long as your 'bundle install' and then will return you to your console prompt. If it takes longer than that, click: [What to do if git seems stuck](what_to_do_if_git_seems_stuck)" + message "This process will probably take about twice as long as your 'bundle install' and then will return you to your console prompt. If it takes longer than that, talk to a TA." console "heroku run rake db:migrate" diff --git a/sites/installfest/diagnostics_for_rvm.step b/sites/installfest/diagnostics_for_rvm.step deleted file mode 100644 index 402f01ecc..000000000 --- a/sites/installfest/diagnostics_for_rvm.step +++ /dev/null @@ -1,12 +0,0 @@ -console "which git" -result "/usr/local/bin/git" - -console "which ruby" -result "~/.rvm/rubies/ruby-1.9.3-p0/bin/ruby" - -console "which rails" -result "~/.rvm/gems/ruby-1.9.3-p0@global/bin/rails" - -console "gem list --local" -message "this will show a lot of gems... check with a TA to make sure you have all the gems you need" - diff --git a/sites/installfest/what_to_do_if_git_seems_stuck.md b/sites/installfest/what_to_do_if_git_seems_stuck.md deleted file mode 100644 index 962c81f68..000000000 --- a/sites/installfest/what_to_do_if_git_seems_stuck.md +++ /dev/null @@ -1,12 +0,0 @@ -Sometimes during a git remote push (i.e., to github or heroku), the client seems to stall. - - smei@NINOHE ~/Desktop/ruby_on_rails/test_app_2 (master) - $ git push heroku master - Warning: Permanently added the RSA host key for IP address '75.101.163.44' to the list of known hosts. - Counting objects: 63, done. - Compressing objects: 100% (57/57), done. - Writing objects: 25% (15/63), 19.30 KiB - -When this happens, control-c to end the process, then close the Git Bash window. Open the task manager (right click on the lower menu bar, select Task Manager). Switch tab to "Processes" and click "Image Name" to sort by process name. Scroll down and see if there are any zombie ssh.exe processes. If there are, select them, and hit End Process. - -Then, reopen Git Bash. cd to the test_app directory and do a git remote. Make sure the remote you're trying to push to (origin or heroku) is there - if not, re-add it before trying the push again. From 9921ee9baf329e2df41e7fb44ab7e5ce9790e760 Mon Sep 17 00:00:00 2001 From: Travis Grathwell Date: Sun, 26 May 2013 23:17:52 -0700 Subject: [PATCH 214/897] Remove unreferenced images from installfest, moved rest to img/ --- sites/installfest/DeveloperToolsPage.png | Bin 150259 -> 0 bytes sites/installfest/Win7_search_programs.jpg | Bin 17269 -> 0 bytes sites/installfest/WindowsFirewall.jpg | Bin 86795 -> 0 bytes .../create_and_deploy_a_rails_app.step | 2 +- sites/installfest/get_a_sticker.step | 2 +- sites/installfest/{ => img}/Komodo-Edit-5.png | Bin .../{ => img}/MacOSXSnowLeopard.png | Bin .../{ => img}/WinRailsInstaller.jpg | Bin sites/installfest/{ => img}/appstore.jpg | Bin .../{ => img}/get_a_sticker_you_should_see.png | Bin .../{ => img}/install_sublime_text.png | Bin .../railsbridge_findingCommandPrompt.png | Bin .../railsbridge_ubuntu12-checkbox.png | Bin ...creenshot-commandprompt-pinnedtotaskbar.png | Bin ...dge_windowsScreenshot-commandprompt_ror.jpg | Bin .../{ => img}/successful-rails-install.jpg | Bin sites/installfest/{ => img}/xcode-prefs.jpg | Bin .../install_komodo_edit_for_mac.step | 10 +++++----- .../install_sublime_text_2_for_mac.step | 2 +- .../install_xcode_from_app_store.step | 4 ++-- sites/installfest/macintosh.step | 10 ++-------- ...bridge_setupScreenshot-2TerminalWindows.jpg | Bin 102765 -> 0 bytes ...bridge_windowsScreenshot-command-railss.png | Bin 73296 -> 0 bytes ...lsbridge_windowsScreenshot-railsdefault.png | Bin 172216 -> 0 bytes sites/installfest/texmate.png | Bin 47239 -> 0 bytes sites/installfest/ubuntu.step | 2 +- sites/installfest/windows.step | 10 ++++------ 27 files changed, 17 insertions(+), 25 deletions(-) delete mode 100644 sites/installfest/DeveloperToolsPage.png delete mode 100644 sites/installfest/Win7_search_programs.jpg delete mode 100644 sites/installfest/WindowsFirewall.jpg rename sites/installfest/{ => img}/Komodo-Edit-5.png (100%) rename sites/installfest/{ => img}/MacOSXSnowLeopard.png (100%) rename sites/installfest/{ => img}/WinRailsInstaller.jpg (100%) rename sites/installfest/{ => img}/appstore.jpg (100%) rename sites/installfest/{ => img}/get_a_sticker_you_should_see.png (100%) rename sites/installfest/{ => img}/install_sublime_text.png (100%) rename sites/installfest/{ => img}/railsbridge_findingCommandPrompt.png (100%) rename sites/installfest/{ => img}/railsbridge_ubuntu12-checkbox.png (100%) rename sites/installfest/{ => img}/railsbridge_windowsScreenshot-commandprompt-pinnedtotaskbar.png (100%) rename sites/installfest/{ => img}/railsbridge_windowsScreenshot-commandprompt_ror.jpg (100%) rename sites/installfest/{ => img}/successful-rails-install.jpg (100%) rename sites/installfest/{ => img}/xcode-prefs.jpg (100%) delete mode 100644 sites/installfest/railsbridge_setupScreenshot-2TerminalWindows.jpg delete mode 100644 sites/installfest/railsbridge_windowsScreenshot-command-railss.png delete mode 100644 sites/installfest/railsbridge_windowsScreenshot-railsdefault.png delete mode 100644 sites/installfest/texmate.png diff --git a/sites/installfest/DeveloperToolsPage.png b/sites/installfest/DeveloperToolsPage.png deleted file mode 100644 index 39946c91f7a7ce6844b9140af6e12432edae3536..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 150259 zcmagFb95)o^9CAQ8#~$9wr$%^HpwTpZD(WKwrz7`+ct0B@9*Bf?>RGPra3h|UENPT zRTHitCk_vT4Fd!O1TQHeq67p4+zJE)at;OZlLM*+P6z~qsAwT9tRN{YOsL>sYi40( z3IyZ^T&3Zvf;w?`6GN{% zJ*=@DXrqy?4g_%m47&r-?k41x8lRQLN^)nrHgg=uvM7dD+B}RATl=>VuJLN~^VB*l zvh~q6@oQGb#9R=_;0~#8wFIx6j)304MJMKT= z``8H2%F0DrpbSxrK&36H;}Ik#%ou)ExG<�Ya70X?GuTwRH^!qO46J%l8^A{A)94d zkehF-co&UT)gS4dx=B?`yX8&LWcF|z@_u@c)i}`Fs>N>Es{K{_ua4WCAe7qW#3|EG z%k`HND=+4m+Ag09)M495FYD375FKB4B{10o{;qb9iAo>dpHM1 zo6{o08aWw9vKP&fo6<%Z%IU2IG#0rs%KqQ{1W=_+IjoZLOfw!{-ygQ!@Rd zjn(AJAgg2CU>%dIiq7-bk{NgO((Dq>@8a6S{2 z^^V}y$3o(c`(Ep{^-ovi4!8~q*N*ns=aa{Pt*!1vpL5TPXFYh8ZGNWGXTROPicol8 zQXU64n%kFmh2@)5@+aa>;_Do?7<@ctH?i-F)%$vkzWp_N3q8J!QV+D-wFmg)40&5_ zvWBf+#VlLQ-QPT$+>Td)*OlWJ!yAFIuQ^aTtlbPguN?e$&IX1C_Fm!jR-F#Jke@T< ztg+7bvfGzBFyMDRzf%42{2d3xf3e3;mA;>-YVo!^!kNpE?7JRusP!g8z2*$EP7+Vx zOt~ibsv*&m&~_3?qjFMe(YeTbi6PUH(puA@P-T!W)A3i078aJtsBl)S6*U*qRqy7e z6+3IcN77yD3GzCBenM1-kQ9*YgCtZGyH18ol|0dE=hC`Ynp8R?XsooZK&;|5$qyfL zC35RIV%zy#!|+oaneD|qbGVl-HcSBKGxmsuYDq%gvY*fIzws%s51crd-TZ=}SfRP? z3v)WL`miXGNWD~Ow5Y_m)ZS7T?Z-IgP`qw0pq-#I$T5(&$#~^#gmML+b}Y8{!;H!1*gy@ z$|fSJsHlXfoT@gc$S*hQPM1D*=ldkxo`tqozeU0yh*gkRyoE8I0Us$1>vkN~#Kmj3s9RviJ4OV_}82^fNJi|Gl@L%FeAnjJ3MvDR*CQ zme@0^5lsG(J&xkT_F{UqdIe{{zGXH4?ZOBsd(wWs8yr7F?9TC2?^^on^RJ43Q)3f( zjV%}R@+F7BEr2f-qViWYVveAW2(rSPxh6KSmL3rdjLb9xDa^1TP3oK@IkzJ8K&ljjF5zpXuUX< zrk1{kZn0`I2|4+*Vz*eIyrPo5T$viDgsA9YsAZ^DKfa?g#3N%gk!)vjQ#;)Lr6&`(ZE?Q)L4#6PGa_r<_xtm`?)QD~%&O9D)O_2?Xs|5Vb&~e^`PLQsu+cUloFw9-z+dSK< zZAxD+Kf_!*Lei7X-RzyaIOW0t1)Vt_A`!6!jDCHQ2eBn_GNNU8YUiCGVG9meu z<8;rI34pxLZM&sHXqEV)uO+6Xl?9cBTo<~_X4g=qYFqR-#M|)v)bi!C4XaC{lgoDY zX~5>;rP{guN%U#Or7u6BC%=!~m*EO=`iN_2g_xGOdd^6vlc(+--F4tpN;yHY%J=mV zpQW4t0LTt_9BNv@$4LkzZUN2@HL-`I3%J%8tXC1I_w*6S${VJa>K)f=pz-bBT3vLD9g1^Q_}6L7wj<;Y8dxL*!~`nPH(ZoSE0K z$@t?RVT~aE3;D)%$7& z_^FU+!cb|@m43C;U(j~O@Y2_do5-*TMG0Sov}U{{50Xk6k8zecS%{t*rb%e(t;%uA zyA$f?8I&_rq*jyEuoU7}7?o3%zDZvWWurd|MH{DoX+5oxae1^`da^#iJRhRK@BBel`bI8MiHzM-~AN`)FOsVSp8@ddO!v%o$dGn-H-uSVd=o3^kk;cov8o1;!BXjqf?56eG`&R1|kgce#*J^YWmi z6eSPDcf|86+LhEE7&+BRhdW?dznYi=9?K@C)lJUK&r)zoGDd3ntuK4#)_q#`moA^G zo3GBhWIy3S)gfzmXna*TRXz$2PK)XqkIVMkP#$Y?x^*-6vee!Ucv`L#?*5E>9S6Mc zEwWb}rY98doM}!fGp{en9#aW;Ted1dio@A<(C&R_a*lYEJq9{lE~7 zDN8aXtfjbyx%P{Tvt6a#!o&E@0ixIM&&iO4;XH$MRCScMjF!yQn>5kX3nR`Udwa9JqBbVg$I9n3VK5JQcYr@4ts< zsEUC_ev2q`7mI%uDW|AsX4g}56AScArEFHr*i6}sqG{n7+SlCeJ;O$8Qlo3f0!34m zS(%@|Ht@t#6N(&TCI$r++5dW0j1-rYsfRq5BGUJzXk3pR`TmY0rr=IxB_U3vyr98C z$^IpYk%Tt&OW8^0!tES-;AJksP?BbBS)Q|~I-63uWom_IJ?=7VB8A<7ZohL1d~!&9 z$encB6y%UO>G9vM6zA&P>Zc_X>|NQEnq94(Dp_`rby6Ey=j5&5TWHr`E1pd`EQGGU zw}O}YK_dae@;Qb4thl<~YWMwzq-J|dfa{jhu@K7jXZ=6(W_6Cs{F*-5nTYT0b#8As z%MOpOhXj`u?@QS=DD2J6(^oJ0NT~sYC!4mA2@G1PRFf#l2p#a+evt#byQDYIQ0^i; zd#p+Xnt?{bSt3;ewy!MF7*pC>wriAJzU|;|m=IvX=n#<>Ml6PzM&qVz##?3396f#voNbAU6WzP~G z3MX+^F&vEVh+zgIn)kCRTR1k@Xrzs)%KSzzeJBU zW977M@m+sXqF*NKSD7O0SktZXHT>yY8qvnzIFbe84h*pWLow5J%j4`(OenktE^ z-2q&%BMTrH@p*9%(yMS>kaF^aU<}zmn9AHTBA)P%tOwnR7}dLtTb+F}Po0XUjnwNn zCf?7!3WFcRWYN!~I_uogn^JY?`B&&v@_B2PHb0*Ac}$12$Tlq#X+5mb} zUPWzBUE81TpXOjvU_E$Kd@etaWDT4WXBXrfzs{WMWx9{?Dc)&)$R3h>cRZBYE-W#p z@X5^Fda-;Q+`q1*6uu_b90UtTrb|ys(|0G)byPA`Ir+GLe%*_|$zSCpRm@im0VV;G zfNh^$pQdWZD)Acr4TJ5QmC`MZmBo#ywaQhm=HRup2GNc2^|N)YRrJl~&6v&VEuZ=> z!T9_g3j0K@am;_;9goPYzCa!cvpWh*OKV_Mc3%~=Bpk@)c`n#E50SrLS5}00(R|?| zYYUbFbY`3I@ed6k9%&Rf2lp_{ZEkUl!`+mrp_6gxu{o5dR zX)g&U!FCDt|0WFB@^R6)l?)e+7Y2)BDj&KN>RjO1Jc$>xvh~g#wp;;mA|Hbp+Dn*S z*p;HGX16b4&n-VZZ|z7Z)kd=p3VVh)f{AG;JkJ0dY8oKi_`!Yn(<=Zi^@4dcxcJr~ z#Rd=O%~sMwg&vr>9DGS|UPpm`$0mc^tk+>Q6*yu}3UU3`^A9%}U8>%M^aHYYqj32) zOFU2Hr?maTx~#Z>ARtAg z8h<8XT!@c~(+G?{7JL8-Gs-JLTli}ps0?<>0&!|P^V^fY zsjnVYLBa=k;}VxpIjr2gKLsx&Xpb9tBnt1}t3+M}dF}W>3A44B4!OPpU`tSM4!hK` zO@zNt59`Xusi=1Jb9>Ak>)JNLe{5`MI|)rkARt(j|4v|_^h``3AVMHX5kVC<;0s+? z9of|{{o({Us&Kow#lcb}VlkE|Y<5PmFvfk>H2Zx^8@QGz@u>}mHq+r9`jl#b%oek$ zh_EpQGfV0%99np)oq|%9(|q2y>!mmT`^A0f1JdQ^ZsU_y&!hIw0r-5ft?BA{U#@Iz zO@#{01r`JifB=KXT3JXpKUh!IFSoSxWUfG*!g{s7C^|Y?uO8bpIWaMl+qGIa6hXJc zrAkrM|G!TC$tr*qK_5Cb8_aHRZzUxqYh%sK%&gZM<0lRg@p%Ng%gRo*ZMzecDk&=rGo0-J@(Ukq^ z<$Murv1XQpl7>dBbhwF6=9`{mzf4{P2FIwNZ{5UpyEA~Bo4b#zdKHeh~BX^G{csunT_neHQ_jFFS#V ziwT8nAc-j{#=I@I+ueU=vMcAx_}DR9qoShv0wHmj62)WjgF%5Oz|%_Pves(!`SBfP zd{R&OzdsxY!+seLNA-aXP`%9feu26huwQTY#Qr4sPLnaSwT<=S z0AmoYbnkM%H=S(V>cNYln}PITieS>{R579%N*Rzb3>wv8 zs-dwRZgqL48mu4$WIzP`=$X2{HyTSSRc(@dHjiOVz|SWTqmN7Vjs2OL5`&nc&>SDv)Ca=;Ow6Vt_E z;vM8l;cdy-fs3{Oh9gak1Q3TrEVFTi2R3PT51g*+KvFucb3r3ISm^!V^XI3JA0r-n(;>vdw%2K?qQM*hC`{SK4_N0}V0 z(rz&_+kZoZ^*oxylEJ{V*SQzGS^blfhfYRx1a?HNXZ7||x5I8%XcAe5yAr8!I%ChH zgVw+jse1JXUPa1>=|yy!1FA0*5M5EO_8z(@?9Ti(?8I1B^`!cMK>!2H5O zi`6Pf1sFGz{hr7qyUL&}A{oyTn-8P$@Ab7NfW7F57*F|5dt}?-8Ss+jOg8Vf_cPwo zE1;$;#HBByX_N+-hVlYowEO$ZQ^r$+O9I4w7ViO-#r#+E-OKI%ii_V+8ly49;F9xf zt)2kTXKF@90iDz1&91OS3`^s~?Fhj@_0aHe037>it%#tYAj5d-`Uw*l5SAKNCyLX3 zD1lEeB~yuP1_TbgyPdOt29x8_Bnr7)ui(#nGAH`+_51YA_rVI*{q z1gSK_lyZUr$>jINe;e@#5)7TMeNX^wwAyPVnZtgeqhsr(3bGq2DMqN}V(H-2riH}# zVdCIv zU*O@2!SO(Vq6G#9+BXF5iffb0XAg>u%pzbhfqC~Wkn5}};4vd6VlKblAD>UlRj&xO z>#_O)55bJIHdGl*Ai4m9hW-nNH4zX1k|80R|IyiC#gJvtZ7^mqFp43M0g}O5qqIK% zez0DXR2B#WdfKIAAtxmS&lbHF{pTssF}%-x5N3o*=m((1>j6?Fl_*AIJ??K ziHZ7vP!tC#qro)E6&9Tqo(2~g<|u@k3c!BmsdCmyCtq{`x^!%9q7@nBJ^Gl5E|m| z!xXQR>KHTXE-FJR13SW|IGLjxL-Zg*z;Ex64Hj*;{@OUHwCrp zA~|3SfMP3srI zWNAo90!OffdVy^+tTpV`2MD9T@@6nR>q2yf%yrfI$7mJ;M;ZdW59VPGiBI4J z^J&zXM>eUY^UB!Pm)tdMq+`!G*ckF}K*AU^E(CekDgemKE+RZwHAvaT5eA34RS?us zMyeI)=L+ve1bKvr%fOI&o=Q|2bHqS3DvsTQ1o1a8shwMBugx52KiJSHi?UL3qsg$U z|G-ed5N!1obRX(Il!bSld|Oh`g9_yGq06lpMJn9fKW z54{a<5f(vo&L&6PizJGo9b$WF>O^_9g|Q8sMa7JS{V8m$ZHnt4c0n$ zqI5`4v=$}U%N(d>#?7HO*$7qRRS?1mYD`VAObg#FMdPkEr1d}m?nROztkM?2IC_c^ z_XJ}r$iD!d8rm_68YKi1$Go-#35|DXFBpHNJD2-L_;v+o`m5*r^ZMk(To=An+xJLB z_-DO_+mDW6i^Cg(Y|=2NRx_8y_C{i=>@ zJvJH|SlRCerH02~q~WKbh2t@!I^x2|$XA@?X@yQbsV%f}eHf=VVT*!bK*H=koJcV) z?n^hQT=iymlW)x$%p%MbbTb(ZitnH7i-w}uMK^2}^y5Y6ATt1I0fzu*GL~6oL9Xrm z(anuLi{D3RouV5d`-03LOfsBSM+Wvr$B<17ML#wOA|MP$V9WF&OxMpX^2y`vV`y$z*V_{JBa#d=(w<8^LsXM^?eS8 zp}=r+tffDyn`jWZRAyr_)b!`B)mr_R#jzlab3Ah2+V#CXD z*g$PJ8^oyhd!*D@&R83$8Cl))rDP`xo$+_=*3RxeswZO{e4;rB?OBrks1+uB?`L0_ zfr&l%5X_(|))HhICLbIlIxQJyb-eHEguVglPL#os!ERr-9}o(11IV(%As)WCbi6(JrFeXvjL)sNULV$`+n2vaOKy`590`(byf!jmCNDT21J_5+$P=4}} zAMlL)ATs<;n2^o!-~};PY(9+8gn=lqCg)gRPEW`V{3i`!Oc7X(JYk9$4$V=G22zbK z{osTl`eyZ^fUE`3W|1`nrOm-p;2*%B16rd5qcPPeVA3#6o!}wC1gH(5;EfH9b^|e= zfV~HA{=E(YI7|>kMnut;U|@pBXW7lM@YuGf%^}+bXkGl=KSP%UdZ%%kp$136y3&!+ z7*|Hcg{K|fqvLIJ*Y80i|a5T90WFxf0zcuR_Nk-ayw0By_{ zLbotYg0pJdUGT2}h%+hBl?EeryIozQWf0c~JGAqNSJ)A8hQyEGf$NbKL~IH#;Qehs zltVGFm8KC2(DQVw?65V*`5-GJ9z_Q==6EsZl~4`%4@Xk!5Ao3HtQxrXL)ib1iAneS zp;}hKAT&?%|I27v@H3zQlV}qn8j?7nOz3Jl6$#RzMIi5{iln;DgeT zRugjmKVoMw31Y2rk>H?7>;pWuUhE7x>^~vRBYwyrQ)OJ|yqW*Fn?;EqDJtXJ!T!ev zrRV=AFsgXh?{^)&x7tLXgIWu`Ls7(}9HyFgAAVYo!dC;g&4wD*k+%!as$fqwh=4pV zwJFwHkBAM{K59oyV>=tbO9-+1Z0O!q9qTvun6k{U@5pc_Bc^$R_y=6cVT%$*4~7#( zN{C&rVq(+#!cHpAVId1ZeGt8B$Ct+cO+6)-=ecA^pCpM1^{|D-!Wk`{q6ewY07JSU zsmA%v&M`Jt4#UE@sN686m`@6<+M8h=b>QWANTmg*0!#>Ukf9`VQ>+( zPwQdp{Zd$#yMGVrat0pz+VjWW5M*Tee0H54PYqL_0w4WU&(39pl{IrgtX`=5`1fPO ziZ8*Kn6C}qw*6cLf$YNKq@K>7Yqb-_^u4~EbzkWh%Nh4#ncMaDRZo|aM2axYP~d$C z*I8x3q$25Diney|f<$LuG(;8)RrsSC$xwS`h}r9G9Nu)qMkdx-fT+cgOWR(Bv?*NR z__o~G6KYb5dA=>yp)_oUGdjESaCg~XHCcr(^S9XGLcn?DGxu<;<@>UnDx@?;&;8EA z{>&X!WL@_Jb@R4ycYZZ`Wi>KdEc*9N?w3rh0mZpxZaOx>1TeuHKF=dLWsf_M?zUTV z7{&BuLd>HR&FC7QIk|n~{gzMi@QpG7yHAY0$vyojs%RQu>)z!fa`3jx6a&^E-6T8* zoaT!N3M}V~oYGzu2-*LeGaN)z@eM{{O%mOf*Z2fs%RSC^DTRMaK)UEu+hso%?JH%Q zv+bRt-x=$ml1KqI3=?V*sQyW|P-X%-@U!L57*sqpiu~2ZmPdW^RcgZu$@z>Dm7V)4 z`Wfy#2U~=AtlHqV!$x|`%d_~2#c5W5FTs@$cFu9Ds>jaVKyMYxt+pa*-`}JO{y^JS z*6W3B>EGctLz1`ilG^vp+jARv$2v4zHk(X^DQ#F5W`-6^J=Dk%prO}(V`1KiSN$^T ziK4^O#E2VWatGj?WpOpHhjZDPkO>GpH2?B+aD5>Iz`yhyna6|774-#CW5<_rC%Er% z_pkL6f17C@4mmy(_7)Oc$*j3w=O-s?TFjlVhr27xBn*1Dq#^K`BBMbn5!ldsv-li$ z(Nt;80yc4fR0@ZeO_0t7e``dUeq)ql;W-EAPe-ACd(!Q@>~nY49Xou+=XBl1#R4pP zPlv8!sD_=@$wQEJ$$j;4QRlJI>-)0aGP!m8SHr`K{^9l4Jwp?0Ny1R}?`3*|&i5KD z_P6i%w?mQDD`h(*pYOF}Hi~<>aQ^oZ%})g3@cSD?b+}mB>A%~b*7EN|bH4tUy>2Q8 zf6!->til@7{g_>#p6U;3u3zOnW_%}WNllQVKb2C`)P$}h(PZ|Z6?wkyW%v%iFT{%+ z$tTdzV-v1c3;~q<^FcE+_#e)_T1(gW z)Y134z*gE)_rsH>(30phzmX!>QNr!nsjA1l>mKsXR<>D~Nc{%O-i2*sqxB!p`ghAy z?AQ^u?rQ{lLXs>b`D-6!Asgm+TGN(q5>K{ia>~E+y91Sr7mZE&QY3l=;Lq!wO)oyH zg<*W(pXx*FH97tYzyr}uPn|3abEln*NvK(#Uo62m$@(jK|h zHE3!wSyVps+xy-QTqsu^>-;`mrOHGdsfYbvBLhuS)JH{yGCLa0`jx0dkX8f+iD1lV)@tA)wJk5MgmL$eEEUlrTq`| zMwSI4DiCL9XGOT?6?Of&?#26(SD{`q7z7AFUPo|8CQo6R-yErnJ8Sslyz(DHlNl-BIyW!iv0M->N8 zCRYxBLmppC#^X+41oXUlM1cx}d@H0o>K_~kL|4AWC8;#t;&R*NFSpxohd42PYU$=m zo$Oaq?SGjjldac7Jr_^r>4X+xi8GB6k}@v)Ih?Dr(|YQx7FQhhqJW>^gHtR|UEZl_7jKM_BnR99DAO6^cbD_s zwJXe4#7BJ|8m+$uhVI4*IK0-IS*P-C=*`9!_6JScDEo>znvxHHT(XC)0_5Y}c2rBM z^*>{p6a*+jnh!(TljEH0CLPrlpTZX_a-Cn%qNPn`9TS1{Y6U!i)#e4V za5N}t0VWzGtL-rjkIR*Rjvpp9s-Qd^ZKtiWyFbecqHPOv@y%}D zd!(X%r}zPJk;O>_0I2QUF56r8c^j)G$9~rigy$%8oCtvc7*tT z%hoI&{voM`GZ8spt)|nlYz;USP~x;KHBr)zNi%FTG5eSK@oF&G7x7{kLfK}mLT(Lm zDm`-DDa)$?n6M7ix?FX29b7fjgh`m{P9{26e|q%7t$%NJ{BzGpL>pW0-JXFJ-}q6MmIht0HQo^%p|(^U z@e#_4m`sqih|i6<5x6WK2BvF2TvXqfKi{v?flxi??EhHJEbM-@!D*8c)R^o4Hru-& z>Iyq$wVv_gY=1K^pmR$;*hX7r@nJmAui)aboO?F2NZX4hEhH_=JW%56mGT@AEXlJp zd-x$V(-Xx;&xRHHr4aCWRwS5(;{OjQW9xzbIFqVSgvVT!ak|NcBLB~=Xnyb?RwX7N z6y*62(q{Mkpwrin5rH^?|1h#x^?w-o4j6e5WUyBFe5Oj%r?6Dv0e%z!@q&%XJf4z6nz<|o>iPFCU?lf! zjXo_e5o2p)q)L>{+FCC?hVmddxKUos+S>9%^SpdSKNsmgRE~{p4&<5N8rOLo07qb~ zh#xEISaS8b;ptrY-Yh-+-f}NNsz)C20}g9+*l!fwSiX97WyLwG_Ct{j!Z*U$Fu`)2aw|Dh@8qOjaB0dlXRlVY03eIm0Ns8z|=0lTNVzr1hDI=Fab zWVsb>XwP?HNm;O!e!5CRu>N&Xtz6Twi zJT#+pK&_?To3j)>L*y*m%()BeJX)|~6Vs;W~a?+Hd!gb^=T5E$sf zKRDT#D3iuG)&m9UZ_d=X95E;2`7-$}OJOr2K4UeE+ciSNsQp;yjtkm}4^= z#LwHdyRfwtNtZZ_tvLo5elP>L)kqGva6b}oinGf71Iain(mXJy{1Fw(Et?aUzsib89I`U3}G>lpG&B59`wf82o>+0O0k*B@02|b%WG)hPmn< zdw0JP9P3flcs-jXWMp($0klH>bHYAmmzAogv>hv&@s*d%x?+=(GOigNcGWnNS|7HXn2EjURHuON)zDC>xt4BSy+V_FBD# z=MW*`hDWh-!nswjA#N|$;F0Htm2;}>BeJFKT0$z6iP-TY62DStothj{-!oOiZIqA1 zL})Vil6~IT9z}!pMVElsRJU&N8TY#CP;M0+9fP8EIH(vbKXm|r^M55_7fOpHg?2Jh zoeyz5JbYswi+S8Zl5lTd5dov};4u+z%D=fA)0cYdzIcp?M&+#|4W=Qg_=8BvaGU-K zfMQEkm$FTFR~7}ix|*?Pt0L{WdVGhN;yl%qyw>%YBy+^3_QzRm+Jh0qkh8}O4)BPA z^#F)x-j)wE4n%PI9vsb9x`dgU(KYmA0NS_*i1i9c_;eW3Uzc(LK+5Vdh+PX z9R_9qhHrrp<<8z4Pnv~)gpChhRb747_D2aHOC`+9fBwzX$L zZc#53G*+w0_eq`s?{^YG3m6KZ{7)^-SIoxC`CZ>$vNHG^9PI#2rSAiMdN~(~Om=fk z8xgg>&4aK#i@@$yB9{}{7$4WG8Sav&FA2KOkCCR21n7?TcGu+NN|^7XEY-1=tF83; z0VN;O-OE+|s(0GsjcIoD7vGd`5X-{4@Q+M5Qg;DFC?({Q9)7c^7S8vT z)!1M{EI;~1d^TQt;Lp)zFNA5bg!0LLU`vbg zdoO6p9hzxuUPvl9uy1Tz#CnOg9b<5T3pUcf>bHia?ptw=bF9b2Sv$)IyL&tFR4P~3 z)XI7$@)EX{JDiU>OJwd)l3{CEvW}Z2`N2dzw-q9{+PRl5I;-#9j1}i6@ zLl!UsUYg3ZP^q)j0?Qucyt0*X+Fyx9mPbuqg*GDi#G+OhNNj+4_Gg-Rdf1Exs;ol# zoX4j--3o$2u;s}X)m!8*Hhg#%_Lj!;4gWal6q_WY^ky|FvU(>%abG!4j?X4--;aQ0 z&Pmb22?k$eK3A;p*3^H;`S&NL2U*)}t3(^A?}^T$%3pQ0%HLSNIDZ?`^oGboKK@K= zXB{FEAd{tP?w?*nQb_)&26Itx{5C%dqc=!FB_#penfY=#|L;X=ujBpNxf=}5&?%sv zV3TQwzg*s6U7Xu&(1{$0ULe~USX^UiV{_jFZ>fma{no*xlswJkznpCFdH#IeyAwPq7lk#^>``XTvD2&-LlYBIwyW2*-_7YWz)iC?a`r?_?>b zO}2Zw!0yEv7Wd9VYR!Pl?zYsCKi6M{mh?y`d%M z;dVXYs)K~~1(c&a;?qI8VBZl}2@xgt7{6*wCS_wSTc`#-a;9HU8oIJf-)}AF=FzTSvgQ9P!80{pdJOhTj;HI7nZ8ha zl>T*#7dormAm9;-i8~+^;sA5 zFsYT$xh*H~wRzA5gPoB(kK|%sFg@eBg_~F7TQ-zgpWa|&9qYOkxvo`fvJCehmkL6; zqWhrHK)$6`UX1-%+AZxS9Iv?TEY_yuZHnwPh>S`ilbEVbMn;|K+8yojhr5ny zbyFSS_$!Y^%q7SF5~OlH>R1Tt8!Kakp|s0oixX~*oI4aH*TeD|sH7;0)51j5)W(6H zRLx;1PX02fFtpUqLlaJwQPES<6nIrxEm}#l#aeLk##heJWSq*tT&K)2EtyxGt0uIi zcfUdN-j!0}P%6dm)ClP*sR^RODBVL!;nE4+xtjy&BO>!fC>}?Qh%>@@^OjcUGq4fa zf-Om1GOI}^5!J~$ccc7no-d-JFQ!f856Eh&vzTazm)ZYkqDL#(6#g()P{^P(xceJ< zf4r9y?mzOapMsXHNqy*}P@ao=W_mvOlPgwGQkT%SKB3P2}hpzoWs#O2c zw^XPksIWircRzUyiT$|$yO|Y0`w!uw!5~L~!*|MH$6;)BKz7Q>B7o($>uWSnu^N6G z%`UwwUoTZ@_h6<(&om$NPnqi2xE84oS$XPXK}U`))+(NTd4B<4G!%YKoO(!9=j z`6pr*OBy|;)_v2lJ+~QOPj}$kg&2?z<)`FdEc0pbq{34-STSb=#cDAx_(XxZRX#;2 zF-onEKBplnC$kfUz(?A^#9~qR_;|HNFN3H;#kNwaas6HK<93Acw;1M8evDH@3APR4 zY3mI)kBO|t!xvq*3_iurizo1rNLPiL4Xl)ev$&eK@m2!yjPbWGLKQsZdRRyO~x+o<7NQus(Q$5VX5f)UtU;3@pp**y}~fdG;8 zAWuFx`mUTg8Qq`EJvVy;E#o$y*l2ux)}G0#^6JRlmnyrL`;N$x7p{L`u1lsQoh~+q z3U_SImcTpSeB6n~BPUlMGdv0uvl})|h1?c*wb7mtFhb>_wz5erpO>~ghfERYkBdiq zoEZ`*>XYHqlDZk{T4~t(qhI@7BwZc?G_(`Lk6}zx!m+4?!On!5qnOpqBhd60V3_aG; zyw^!4s#ZlnBJVhv$tNVA+MZmN{dx32`TE~~%E*7I8c10=}GP`K+6W_CLi9mYO78apXF@v zW?Exk{8%Xva9;{;zD@_sL1|EnKTCX-H8VL=NaV7+3(7V<*#`%3FBv_sX2zuns3x^E zSrVDhL|0dzE4f^fHF_`!ew8CWq8^%Vt7&j@Nw`tPO+<`~E;;9>z9FskZallcSH<8V zK?+?9?(YQmT=sfZYyckpCwKa+$9hX2L&e=1twQoCD||mw`PS|6fTi65kLP$F+V@j(^Z$$KL-AV}1Trv+ooZzkc< z;3CIqnYoEjXHIG(>gyxM6KOrEA}03UwZb9%{F-}NdPsYvHeBUNtNb$+Y(2EM3u7SI z64B93q33Qf^7bklr^d9|^oJ6sxqoF5F1^c21QHuQo%JB2Y@b$s^8N{2`~VpW%v=eQ zbL{zec6;alD88%&m0sPL99}62d<9uN)3N7foN_#k2+LK>+7A$#2RQkc)f*-tpcKO^ z4BxRzWPWc##zV&g!J(U3;BR=flDXF#z4YN3@qinKk1$XF)v7bmqof z%9cy6{T+Bt?;CN(mJ(70uP;<(bBJmtvB@|o)S%MN`OV*lOX(r3FdC6^(TgXQ@2%MCnZfh5Iw%O|B>lb3}^-?^!+reBE$`;3&7J)goVi)rtNQuVFTz>Op)m{iEGW35P;Ztsx6U~Zw; z)6*MhB(DnV()~gXO^%I8Ze546OyiNvu5a&<{;oR3H2jY21LNFRaLz7G2<~QKzCb4+ zd-G_brxPD#oxkn>aKt1LIX*K{L9K%mNy9v+_>FTP$nce#NKSxses*;QYAj^NDof#@ ziWeQ>*H0z^e;E*~}Ht-Sm^Uwza!LhrBGd?(3n=)QUgnbocR&9=LhuYdsV zWETzZG&do_QDhUyYR3TSR^w|c^GX|e8u!3wU@s+w?r=iF!czkG_DI&CkDAN8l&x(k z35o786Vc2D!6g>%QO;8i=*m?|bg(cjunLZ#J-K0vX%t@?+;wY$4lDK*Q+!di3F=H^ z>85FOcRo3JAFS+z#vWQdcS0%HwET9ok?pr1sq|m%`J~D70xMSuftPy1 z@|zoyG#*b=1@nGng73IZCMBPvcW>7d6%fdB`Y1|qVj-njpdafLM~dilH@tN5cwXM5 z)#I)GZ-Z|pw+qLrZ)w8l67kjEzaJ*UA4~ho5sbR_!c0u-!NuL{O!0e}27g0dI!wmt z-OD$XT=TD+l-xmy&wG{MaFyvO8wO;F&$%Qrvi#wgfZo^?EUw0n$ z6ycdx+(9b*Vmyj<>=%xblF?Qud8V(`R222TW05UnFlhVDB)jWdxG;@j$ z!-(P4-W?n#EspL=Wln7sq%{-nJ8qQ!4*;t`RKG33^`md|PHl{xaj@KO_~%PKT|@V; z80SKi0_Vs1%$|NKHzi^1^r^1p7%To*5ZUSEf>%G0=ACel{pOOQThNzbo}q~eE5=!p zih_%mfqM}KrCT-eVC?{H5Buit0 z`?_S)5^1r*=>Z|WV+Y%bNr^qv8OeZgK?8KV^+;A>Gw;MjHwRl;`a$2YQ4X}7+c0ly zzL`wBbRQc&1Q$sB>_O4mEH>a&drv2-qDF1S+u<@QuFSX_5woTK3ZCFn{xNasR z>(RCIx}lExkY&VfA%$cmAy8G?k<8%tJ3}p#`a|F3HDAw+%YVvxkaFL!VRjI+TYp~? zbz8MLV5G}8e?R29G)6)vqevvX$?vj)K=Y$qEJgB;zMeNgMDMLNP?6?Db~A~1uCj#; z#HqXe72UBQPafO&emus7h-BS8F;j>MZAp3G0#8Fu1}gqpeO324fB@6WA(WzL0?m- zP!I*RtvEzTV$sGdeiou;k`85P@r`kFlN+ny0Dm|ggPOxWgXoK znY?uMIJ(N|F(V>^P0(N215#Md2xMtzPyE+?6*JC(EoGksSax(GWa<|&E7)9Fdd!S8 zcWJ`=CzoA2MW{V<8y6uR7Z@VxcjUc159c1lclzp>QThhJc3eclxWFVyzu5PrbKWFr z1#r{Er1)N%uQP!2#cZSaEia_K$I)Y~pP$!E;e6 zSAKYkr6T1DDn3t6Wtrv=)p0AgaS76KKLtrv9eFQil%2XT_uz)K;2q}z;p%?m**(Z_ z(;wqMwBR6R*b)v}2OeX!;iV0r+!_m=jm+jvemJyy-G{eOj zwJh7|bXlc&j1oX37;yTdJ{}XXm5WkK`Dq7|&EC-MBlQt6O*98LO>Xy>*Dx5Wfn9CIoqNKN`TNq~?5(?wA|$e>T~LlMNn5fq zz0{Om_fJA~l&QQ(`K18MkBU)HNUa{4<{3Z}#ui@y@Y`*&m)z zziLbCnZlSp=B^Ygr4f|`?q9XGpPhezziKB@*^Kg!jgrnIcz>I<9um5dsNBV)9Bc>g zUuEtgk6RV)`KHaqwprXQ66q72U6g?xGJpSRr+t_9lVGP|_A2|8cF4dUqV`6h zEPFfMZJRd3H_T5$>;e;)M)steXMR`0z8LAiNWzAbv~V3p{JMH4Wy>rb`}@Ph4{;RP z^_)sbz=$41+-{O@@?eSgCvoX%k#m!Bsb8m*URzFO*VKP(pd49z03`7LFv0(WeiC&F zE;>K1&D=O`u*6n^e*-3bO16BP@kB&2qWe%)3~mv+#Vl_wC)8EyC@Yt@LzRrFp_6;0mfU2m}^&o4IQ02R)&-e;g}xrQI~%M_hN> zxsvFSbia}j4;lTI`i5diXT{lMEQwCaMz(5JC@EfmKTjTK-6*~-Q@a;W3h9=SaMXbY z>OEX7z8+M~k76j~2;Yu}Yzlk@N)_z=8G0x`nRKYa-pTY%irHNPH& z=q@#inIpeft-g%mYN;u~frVe2;Z#&efB$;r%0e5L=pCt(YHTGL0jgmiK*x_a&q~dW zI*&9nu^B6=hqJ1jt;zZ26>xcSsF0)!+u#91N6TOg^pF_l$r9`Doh~C$YwuAK`1oo; zL{?qAJHX@DV9BZyMjoD$ zH)j~`u~1UC8W492n%9lXQrvA+kX8n_P)OHM16ZJ@&AVEgJNIl!&Odp0e$Tn1O*>Un_iyC=b?4ng^2++L z&NE*#S7i%-YoLLK-=j1v9FTdL+0r7_Q&Pi(O}j*1RHWKit7}C7|7TeJ@}m4_Y!_@B zc&`iq$IM*mi!zg{_qGY z1Wx;@UyrsUNtFG~!DU5wR2v4m|E#LR((6@tfqq$g7 zNyRlc^CpUW%*z}POB8;suqCPYcuLI8JqX!0w#Sx_-L_2VWN?d9Z*3t{rGW-Flq$>_ z9JGLNK>YAZ$FfYB2AP)$fL#(rE&@!pYrA-HZs6PKpt@b zF1RzF$di`+b4zmQXz%b$nG&FeS6dj!Ah`PPPN$|%TL6_lwEs%H=7*8!HL2;lBR>q? zzXbRm9=cARy_0>Bh$aFkHW6%9NI?xRy=0v3qmNwqai+z#AU7!}bjuQ-uHic~@kTaD zJFrZJ=R+Gjk+|wAzjN~YU+++qApnU10eEjo!T>0FNKGC5pGI=%Z8sey?|>O|lL=jA zch2nl6^K7BB9n^<q?eawMn+zFBTsrc?B;NKyUD9BAF&MNI{M}qf5qbT}yt38;7l#!>BLAd_xm2 zM!b(Vy#Z57Q{(xHbVTB+3+SMW`HzU$B_bsyVg2H^X&Hf|JuHb-8>y*-|3e$91A3cX zFdd_@e(@)+h4fu?MgHadM-^I#OgzuwAOh7uPi51zXK;uzgiyUk~cyP|11HZRO;& zXB0pO^yuR1c>W)Kj{U7qvsehLEHzyz{+ANo zdlA`o@Fb^i$#evuLg+d040ow337a~U-uW=-x~>#ZC}IJHY80GE-Ixj~sKrZFswU%g zpD(`-J=KRPlgns>;`wZW=hG(=S6vz*@;8ngd@cH5#Bc`|sX6nya2jm}N;->#h{ zaT;-H4@97n6+Hx>iU0s007*naRLx_K(%kI(ZM!)D;ln#%*UJfuUDQR_QCc*3<&R^; z^-Z>--hLS;vDta|T>Pu6JZL#p)CfXQ>)}9YANdMG;==Ny%k87I7qzb zZce6HI_6NbWl!;IoDB3l`9(Tx+r91?J+do4GDdl-;d?Z}7fFkN!Qsg=chA^@uUKrv z9wqZ(F>R!#F8+_QP#z9%&zu@N9-E6Z|98yQp3_0O79vv%5vUeVg#rZ5bj=5ofO7Ph z-Qvq>Zo1mgu8vmpbxI`?@2~F2!lUGfz>wp9g@?0LkA78PM_zNnY17m|BZ4q;2Y>;v z0Vu)PGj4(5G)1s!0nh-2R9I?*QnWyFhFMin!bjIt6LVPwnLhcopqxO~X(R49V)8}e z6d6ovAvJ012CycU)2PCjRW$%j&$`zF$*F7BG{F~6gWfaBsR}ZE@@w(a zLELdl`66+O3?{XZ+^W{~QfpCiD75p9$VWGzd5BLPZRl37NvEn9Ssk1urx#4JCT;QS z3g=Bg12u5jnt(QhF21B1(7{>0r2Q1SRbLu-9($Aq`hu``rCOW%2I%S}yAi=9YXA)_ z&40*w@LVT~Fvg??K)^<%PlG*b&Ip7sxIrT&HGl>_+}v~QIRlTIjI{7@{nScp;F9$a$WW`LYMdB_ z2J-4RAH;^Y;APj#sU9GpA$*}mpWW&}l)8bR>Jh}i1e2?SS?Wb+>S5HdS@Ijwa0{y_ zTg6wW=zChEtSEBBdGD2{ryimxiITiqV^*H+9d&lY4S1ZD7mi(N7InJW%8a8ADsxWc z%*row|N8vq8wzc*hV8&h(OQEWN)E)02c%Q!lLsj?7R%5;G(@~O`1}GHY9s2jvHDwt)aOo`5pM3#oetlPur*Mlk#{!$R(;}klw zZQ@DkZCJ+J`QZ;+?3(AkWf-7hB>R*!v2*A13tpeu1pwQ7ZfT0lf4JukAwv!qIC(g% zwlMuQsCPgYkrr9qO5ZfNHMpVF;1Szt1L;)y=Eu)77Ryk7G(?z&=NHJ3hp5ZLYtriQ zha6C2wV;8799ua!(k&j*2~$>&SJ&2QLMvz@A0P<5s>4jSJ*yojQl)d4ZEc9BejwnB z0Y6m(UJXnz?dX^eqg25xT`ZO8OzohLaNAC-@wxTMQE5uT7vtTp6=+2j(P*$1DPvy` zDtox<4v9aJ6ZtdH1tkY>D6AYhZnJ;XF6wk7<6ydZIWGM3Mzg5&y?Kffz*R}vXPYlB zIbE@^gYuXzeska*9CcAQ)8}d*!1T~3e=&3gvA~-$AK!yyWZWMh> zUWJu3*9U53$)J4^g$5o~^&X;ggEe|)9U@CN0I3N&%}D7qp%pZ-gAPCtAQU#tr0iOb zR-8ypt3-zb6T{`Bv!t( z5FOBkpX#Vog@2_2aF41c82m%6=$LF>73hhcF&sESA7$5$k=H-yfD${W?u6eSTfbJn z?AL?Zv}vQuCFk_5)K~3p`OwiAdi=_eUkav7Za3+J-jnX#YW7Xuw0^FgEL$&|*Lvou z42PfYR*r80L;2Omu1-oukL8b4F-o2@Q09lZ5}0F{4{wipo?Sx=nC{CPp!<1mns@RkC3w zdAe2cqknaIGW%g%5;m=TG@#of6hA-sskWR(Czvc_mv(f_C+c998ZKOrC=qvdC*PjG zHpQ{sp0!KJ>jyPtb(F%_gA9BZL!R(^#rIR%b+pDegh>732&*Bv;XNN7rTDf&5L)M)AesZtwSy>vgIug4{ zv3VYbQi(64K)Uz(*=_UnEVP)gH|Bllor3=;q%74#BJuTfweVXNGZL{3{UqMs`@4_? zpJ<=U<5zX}k$Soo`YxT1Scbv-55DIi+2-k*_UfvuD`*Hn=0G6Bu3noxT{C>c;@Lok z(|SrGT}g(0*ok=#groyp$Mjqo$Z+G)y`z{whHukAhNcK)*oy`-l(B&fef{mz5|WbM z*^ehFN_ZkqNESoQG))n8@zW&Ukt8D{Y{v;;CDE9&7AqX{OQC_YeI&8O)8E(C-kU9< zWPk=bXm!xN=SazRi0*#y>SC5mrwQ54fUdD6o*8NW@nI56Tc9cjJD`qh2C-3cRt6NT ziP+eR;{yTFyberL)ipKzbT8nijHY)40)C1IwHz)iG2o}%gTgocJiNd6b@5D&4ok{i z-iLvo79HI`+dzM{RH_ny!_w#kW1?enW>juC8_W`O0AD&&a#PDp6QaQj4xatTT!&bf zuu=Y2Y-D3jYqd`ru##Xb4xRV9hQDRI$^|sOL*+j@mppmJsyVfuy@vIy7@|;^h{TLj zJYcAE<=`hJj|uy+4BrX8%gUaJ@Hq@SEiw&HAyqvMJa-7A7LZOOGZ#`u;dK<8XegGU ze)t-##R2DV8ETrLsrm?Hs9z-QcHt!Qf-y6w<(_ zO##BlS>0Uiav^0Zc%7kGhWg=as#;2}T!!3+D723G?uK@z>I~x1q#75g%4hx>ZCV7*Ypw#n7fAyR|9a5#(N2TH*BT9;uj*dQW%-8VE>?f2>V`}8+j~~Z8h|pN zwF#l#OR0gTVkoPGuhre?))SsjDPVc_uArFH>Hvqv#jdi~vW(dGV$Op}?a+Hg-}W4P zs>T321~!!3 z_=q~u7S;WH)|h!5te(sOK9U9hNxXyNbYeI1fsY0_@X55}1#0kohvQY)xMTYRnAo|p z^f>Q;I3PXP^`E^voPKd#;vIJ;A6@4l9eE&5wO&Yh=DvM_^WJPl)Bz5)(S)FsrLJT! zkCG5&bX(*B)#n|OiI2T2vXMYOg?=)ayje?@STPo^=IA}{P?|I+H#aN`!iUhk!;|1y z8ibbWjI6fyv~|l3?x-I&F zkl$0LFC4kNo+7)2qv15rz=o0&A5l-VMRm8IHD;a~tLGxqi;v7dwr0i^#A3`_&?0ox z=_2jejXdBZFI1sgHXa!-E@QqroaEc%RoJ*U``RaOz9c7C4uxhUZ_bgEj2{wR`*v|0 zxk!q*k@3SeAGrzc8l)pHE}*7mazE#aO?!&))dV=yjwOi>eh}?;4wy&ja#ziR_lj#7 z*UGT66lF-@?}-?nTk}o;lec*CRQ6r;nxpqPLy3k8fywzqns>rI_M1yGVhCD_UTQ}} z?eR<;rj5PE7{PQ8?;F0}cPwTM1Cp6K&CsF#+hNI%XbG#?0%ZLILssjx=W8 zrc@#p%jLxLqhL=JR*wxdxaN!bhb>C|gU74!X}7a3k>uFf}V~h&VryMTYw&a~)o5P2G66b`j3%iqiC{=#C$J9`ZjJ<1C z?#*dyk!k<>C`xRgk4iqwpOOdncuRqYCcOFkA=jlb5<03J%%hrxG63t>mTt04XW67bnZcX zr>~9~#dbSAMmu(+7VvStJ0X*ot{!KntD@(IkFUu@ z$*J?4lK6U%NZ)mh5eM*_0>8BsP+EZRT3fV1qC!@FPyUqsjL^LW-P$sAA){KI$goZs zV|)L?l?lad$`*7I-MeG@%{9*jt`+j~)E4cE7j!VaksGk{c0|8!xySC1?lk1La8y$R zdJjZggA7}M(QG|tud-ihC-L{k&S1KX7yGav zdprG>*0dSEVSW;Q99ZdqkK~Z)jTfkek4(yzSu*&@$rK;i6ZpsgijQo^;v+waOHYfO zo0Ln#MM6S)7>)~Q@tSvs=uMf-SI$*ERn=mu+j@Mo%6)rxX76)*CM*zBDt>KxV4;tL zWc1un2D>SKd)}(p5Bi`N|2tO5=c9w(b4#AG=QOvwL*$VXe^)J!vRcs@)e=9~gt4y& z5q#C6b;2jTQ$Fc^WNa%^s`|(U22%SoLLz$aLYMQOH%i?)wSbc?Y9;m}_bT)WCCrFaltwjE|@v?p9|p^Yp>jFl_)}!|gf~ z;!y==LkvJ$#oJRLLVgvYl*@OKR!Jai*V2T8OrNVMnN zp6cgT6?#uIl)Clxh@p36dD`O%rW>76t0jdrFTa&UqPV`h>)_)j@>Z~ch}9%|WKfsY zU80r{#?4!IzV+rnM+acd`A134^_KCZc!49#T*-~=EqBs%c2as$H|OxKro^Nfp`Q^d z%3a{v`bv&phE2+t*0;}Qb;`1-{GdJVubai(yZVowMF-MQHx=8S$0>S{_d{oSC2 zTDD2WRP`6kX;Rg;Dx3XlfM+ZBpjhWB0_W&O`|%~=_f)%e)mc^OJ4BFA%{LnO_IR9N_RGQR=^w@FYbDot1l^z*1bsI~{@YjPdIhqkur59;RG-)`D zC3!bm?$mrnh_tdKm#_EUQFiRT&g;)yX}0n2;R$n}UQqaH)pn+O?l+WJ7Cr{L$5u!|$E{=&oX;KWZRnUFp9z;U^(OU7$1@ z<*=BTupe7f3TI-%T1lLW&GlGG$>iV&HJQ(xsunlCocz`}Osdqsx~^Ufr5dSOoA8t7E$tbUrn)I1A!wk+ z8fb7ssU06tmirS6xC?^o#EGBB!@%)Q;c5j0gopT3=o((W(dx7|f4m)&uw@w~^j^li zEu#%<%S{Rj-Lk}|YdAvdX;&OP=aZ!W9MF32g$>RZM481T{lo@Gj5#I+SR^SNuN$F> zkTdy;Gcf_-Kjl%8ijD!fsAX%lnvm@d@{gl3$(0GbI+M12egGIrg5pl1Y5DCF@yG9j z6Aw(uQQE1bW&hlg96H)Noar5_iTsWJ{z-Y%AfG_;}A!l)5xtjC9L@#g@zTRq7YFVbF1OCJ5z)y>n~ zco;a|Db_`Da=}O6N>6Qkb>+S*+!4~|k2qB&8ISsWE6v^LvgW{*B0j9mVbqslzM+X1 zBi?u6RTSAe*xxMBe!2|!UBVj+w_QEBG;&5%?|9RWnO;zYW7d&hqG9qeD` z_g@p=fhw>Om66xPgUqxN3MEl63E(L3D!$G5rTe8<50-{5JP#HX1()*i790;u$yHjP zQK6x}u3_J$M7S^y&}lQo*3*y7p!e+Z{R<-pywxVgYsTmkxhc}Tz_Qt&C+F!2)5uhV zC#~UT3}DKWlLtf0*D$f<>tERp^M{AFWH6L1J>M+(dJlq7$oGUtBP@posmZO$rp1nn z4yFJCI&91LIrLh|n-ckPKC`Ev%1udFJAJBaJ%n%26-dZ=nKjVRhLXYmrS+6ZR{oR? zpkWg69N{5>f+;dV9Y2pS7`WN($DAcDr$3O&KU8A*)cDxxCZo-h)m4QXzMhp-@<^PkoeQ2 zr8yD1j0`2w2Q$-mEFpgz)s4%?KocTmTv5t@M1MOmu~Y&#m33ve0j8Y&#r!#uJN$!R zGvO&sCuSjPx%hqRx@JduCa~pUejV-tCfJpNEJZBHlGb1jC7@Ax#{NMWjew{JV5%nL z$;rSFwfJ*H;^|+_0|^FgIf93_bQ$wW+L8mgxrdgJXdi^!F?>+?=^SYNt3$+!c8E76 zWH&Lj>}|op(y6<>_65%{Q=vrAfB_8{dqvGam0D(V@qhD&k+ih*e3!nqu#%K7i=QKW z3|xUd@n82<%s2C z>lc=zJ-UsUq5Mt(k~&fStjBE(^zia=4c-x<@$y&(T-iQ{eWcRMGEy?gn`}83-q+cZ zTw`+i;VPv(rEzhDEE{6&F>mU4AFnOJJI+~KDs*6ilnMjS4b!NsNWI!}^tuKBQ#~-m z2V9Z##%n}#`q7rQ1K0U~;Nd|+<1a#arE0Ns5*fRA@Kfz6A+~Z+f+O?O4kYtXnmWuH zGz0IlG-!K5V|Af{hBlPi@e!Foj3aw)N4!Ky;MJ(t)DioDf#Zf({Fdse2M`O~ zLz_Q&z;o$xGKFsw5}7? zFQVJfF`guL!i0fb!I0LL&2q@RKo6g;2{c$D@isMK;eC_*({Sx@kKT`nlByk2ez-~+ zy;7~T)o-d|7B1?h@xVkwr!FO1&W;^Oz4gGvrQ9HtmLff28kM3dQHh9vI4^Ojc05IO zXBZeFM^3wT+WgTGwMeL>8YoSI<;0*ZCv|5cOa`Q0eO*Z@9x^SIBs?7FVat-K2U^`e zo8ZN6yfjsNN{G76Ts76Fr-Zor`Vv>=b%@8}d7Mt0^xpGmR%o-f8h9Qrobxbh2!SUf z2JnAcK>@1^N8|J7>xjokgOO8JROBU1Tq65+^ZR^5$>*dxrxhvkg^d%b$lYz{k$X`( zPr24rRP?W^2{sRBz>cUdR&c6CN&O@ zRLQ7QUS}EAf8o5&niLpSPXkAf9_`boPxWYxQPuw>(rulGQ8NrPlW zQ1WKPS3Oh&JTN7<6S_D;+2yQG@gH&U;9#rWls;g(QYf`$#nLs0Gz?cS}hev5l9-&Ooz>B8=!J}-nV^&ulWkWypZUBYq zgS(YKd}!psfI&>2K2~+pgSy1kRUK=wZe*@Lmlq`{WA%F^P&RQ5G#*1)x;uQ?1tZps zR7t=Nr9QY@>AA7a8y*^pHK>Eh<0I$lA_O3Bp4B0)u9S(j$m6d(t&Zf?q0!IXP_8N{ zW8HH$)FLmxno~tnOEuz}93drWfUAMVV<^q~PI$M2`VlEtMrFE60wtY3xSPn{g+3nF zi<85PlsxPpA30~zVZyWl5KS-MQIDk6$f`?RU2`)V`n*LR7Zj4NdQz?wK_$5{iK;_m ztiEoUnU$wKeYep7=W3~ugM-vJhJsvryhdHPG;eQVY1o2|ZYT=KFnj z%2_O02m=%hN=n_$033sk(U6H;0xo`03qfdn7*(+bwa{<$y&P@qARjr$ga9no;2n?i zFoK#!YlExfAUJuL#q6Y&-rm6DF@Y6zLMpPY=O(FwK61c}#9;73jmTOwAq*}wC?+*& zC6JVofQ?M7%FJ;8pm06dOr~Uop>+T}o>ccvU*wk~}fB~zeUX{){5;ASyl~MEh4qLQKDi)=NNRH$z!K>>=4rQ!C2K^=$Nta22az20G zRzxv*A1>V%v-V0r*SY7%rSw$fU(A1`;iGtb<5d1D4ikZQJksyWc>`=S9}};*bm<~j ziV@t9tD)59+=DNwJ&UUwWv56A8Lbm=lp;6-Ph1`DAX_H!0qAg}_!qlA+x?^;ADj_A zEb(H>0H$wpRY*mm45`Sr?l1~LAFuSc4 z*@Z{*q~?c1`fWNb4XW^&U5J5mKu}zVe^IGaoN2ttaboGQWs{EFoHmcbMp-rH9}8!K zVs88;#BS4RzeO6+88GFsQ(vY8+2*H8xUDSeAv>MiX2A*Ra0en!*Du(cud1dBm3+d| zt9f&d*!4R&U)s%(B&8Qpm=RaPF~>QGehRVsJo$~7VSEl8#j%R7*{|@ndCl}yZR+}d zLA9X`B|l7{D)b;nA?3bdtMi5F0>d=^K^eDumu_74-UnHQD1a^=L`uMOJCU}QAHWq<*#2CScK9W7L7%+lo zY5Tm5IUA`;;ObH_t_}gNj)75!B0Yk$`y5~vX(1%Xtv$9U5;jjS-*kNU%Tx6|W)6X< z0~rA~L&BQVp@hbAF(t8o9{NH&pWJD)Zp9w~QaZ|!*v?O3H}Up;0=ubc!Prfsh?w1t z$IuLacoIOqsyK_x9}qN~#Vt8r9F4dTwHhov;|zU5rV zs^zy_*H+Q21rB|2)NJ`67V2-iLFCyVD^uW_Da1_|NfFreQn#BCOB#OB1VIS%RI};2 zzSJ1~1~rVZgY|k^eFj(8=<$wpjG&$bCdjvmt0NJd#+XIK;XQe<`N^+dn3Vd>Q|~Op z@?f=q3aMxi-`fdrOw*)mxT&3Kq;wjL+w7&qRK#TFu$yDud=L`<^PM-nFa^>yRG~99 z-2hc;t1SLrK|O4)Bh{Ihjk1j9eUneV{kPKuC1pmVpqK<3!yg@(k|_n8G697_J9CN| zSU`>*RMN60x+-H`P2ip#3=Ry|wuAe~0>iyVX+BIK)8Hg(4Q3SjfPhBdc=WI~3PBhH z?zHwdp`^!B&KrHr&~tVqCQSrR&M5ezN{7jVkbw(Fr~EHq2O;T2=ok>yT?xD+vD!so z1kq{|Bd8Z*#2KL6dOmn=M&Rn60goU-uYA`z!>Cc1iLSv$AtbvCo`d$S{@cOT&-`%` zG7hPT>k(4M%vgqmzCp%*=V%Sbq%=$+d5HfqX+}C4!wo?(JbXfz(6F0E(IQ!1OH;*P z{lRo6Ce_BHiH=|KdOkEZ7M<3#G?7}Zo?dQOH>FOZti_a*TRg6xfzlI=V zSre#1*w8pCB<4itK<8}B-%l2}GaJrt2e@XYcPK0yi6AsXU{XZY(4pU8PDx=0Z!*Q! z;~kALf|Lj&&Q!7C*J@lH1G5MgqeF9yLn>12`wjX?5e@Dyw1)o=Uk8s$*GdaJIs!L>5MGW5#S zUbqSxJ7K&9gp+B7yQ~CWy)CU#4%UYAn~V!XWRTkdu9;DZf~t`SLNf#=MN|zP`VCuw zDl(yE6i|1!2}Y2jqS)v-Q^kf~ioj4}Ax9q=jbWa~Ar&bWmddH~L+}gjA?DyDYsP^= znsK~I%8Z!8vO#FjOr{hA;{oUT(?rK?&}3PqoT~oo*OI?Ls0Y3tj`o=O#M6IUJZ-#H zHO&)sXLYW% z@1;eycH9{YXyg~O4rH~={Bzh7i+gq?1kdu!{RLKfZ#|7#fEJ9>Ei_rjg*Da-A*WGy zX3}Jxig%pqt{5o0E}gG#XtuPvc*kvY8wywiN8XI*Emyo5W83+=%>u;u^yg)NUA!VJ zv#Dq;IBCu~u0dA|CF{l!Nh19PHk_uf8z=etH!>5Ge-1Vsq_107c=4(rL5R^lp5 zn*J>i7}7bZgygVJA_Z8Qs$M#eJf0VG;y3)w^WuptqGaOpM-Xy=g6^-=Vn~v7>|x)Q z3>LWa17)}D{fGYe+D9K8tRI4|xm5BF?4Bk+gsU!Ta1}QYDW-GW? zEzqkWuCcKXFJ6gIRpT%D|9pCz{BX^cnxl!^o}HI}ZtQeFwC$6huKso^?g+~ItnzAG zS=nIX^!vSc<^AcoE&$p($N?kX;mdm zWL(h#_|j^AHp08z0_2OYO3{Fjn{#h_En4`@?8%(TvsS>!d0DCAKc0vVeD>jcpDkRw zcIJ`KKHU4k!ua4R&?q^YDUk^Ik4%6mVQq(gpw!6Q5n8!y{$$pK*?(Jzer{KGUp|!- z>^|}FxNo7BLW5MwT7*(p3&wILdw4++j+*hRWbKidf22K%IEZj!J-s!-Xhyd`tN&-9g6Ok4{9b3BREzotfQ=@7- zkt>P&1;vL8#&g}!@gqNXBh}ec__dhD8t=DcEjo~}=1!Ql_Vv`Y4NKj}O`NxJt>mZ}UWCU!^k-PVTqxmB_WqM_ zA*^IBc?iE9kHl+>IE{oOhmkNZ9YvIIrma1i8XmLA6IdKro4P|h(`g!vkO@A{8|qe~ z<8hKo&CHim!;d5^_w-qM0P4GqWNFSuxI2$?pS1^}#N?H>cW=V3x9;tUph{S1;T`xs}K2iMS~WzWC#@CP|vt;%QLc;wwADa^Qy2@dhROTaH zW^Q|9g3UQkefa`}iG>lcxeZO4z!-5Aa`l7-Pt0E<*tPn@cn@|8=3yKp5?)da3K+pI z8Q{o?JtpBK^%cj{af(Zr*gGs#pA=mnkE5w7K05!UG<2=`d@F0J7c3pv((laz7B;00 zpqWNnLaEKYut8PFgt1u{ml@R2SY#<2Z=zN$`z%(nD*ue)K9hzo0`EDO=M4 zg2t$_u~Q+4;1;h*K{5M|>allvq#(ti?a1!x_n%!jX~HDvHj{_VoXIKegc1#Yh9#b1pnv zAS$Hu?m3e%E5h}e4gkk!3q~lKfFmtcgfW_dQ-r!E$T`dqjTni(f97Ej?6Gl7>azjk zu3b2|aLxhP{9#Kr3)n0$bQZWvA&kZVL1R=|KS2a<#a5c`uB!m98$Zqv5zz`Z)&MbK zlr;rMTB>LP|3_D)>z$zJxrg7Mfr$8n^fR{nowLAQ1!25%X1HUL?^_6?2|&>Jg~0Ic zFeshF8as~p!fh2-Yu=3T(grBcT;Z@((NZ~0n-RXNX4$jo2te9NTlQYCz%cj(yBExG zkLk#~gYOpQF+lKc(dF*aW9(mEe&O!Y$fnHzEnvxg!vNXX$PE@426xEAy+&zhoGoXw zfXxCn3)~|Xunm;=NJrV!v{}Grfjegb+dz5eY;Tinvw+P4_lO0CV~rBN3Em^tu&HUY zfXxCn3z)IMkPnm{9UW%G+KOxzuvuWpETB?e*NhxF7KiV!rNOa)?bUm5>}ca+v%t_< zpz+5#@fTNMPp*~er>}n5cJ?~D-Wj|9SL=OSRDE+c-6V#xl@fpVWVV6wci+Xf2Hxuy zQ0+fBjlT*%mpfeV zm8u^||Epi*40|2pzMkyw6-hp0wZHu)-hUaqxrhQE%wEPV_~@5V?BU$LZ2j~J)pb#A zO0=^w>*<++^)26fbA89!Rh8B9zLoR9pXK}q6Bjrt8-Eoa?U|^)mU)epA2xH12P()v zlXRsI**kx?{twvg;C+y650LwylWk4ByDgy6^z&A&J@##T;$uFW9(R$RY`%;ea-;HE zU)U2o?Mn|T$}gT$f)BpFl53;Vq66hmJ4Stexl`ZRz8e?X)M}(m-G4do@fq5tV!)N$180NyYvPAbDk`9cW;a82I^|zeXFj1C9pEiPx<|YLoHf_ z`lMGiFRl-4SjLwGEW|%gUCqS>VoC;K^#zUv5N?+`NP#+eovWN!#(PVgLoxE_u|bnOzuh3^AM zsVqRO5Mr9i8exa}R9}2q9kTaKZW|g$_*ubnX`g)*5V@8;+8vjS@?)dwt7@dVA(-jz zZ;zZ@?46<5-m!fCn5F6EA%}ib;L7(!vJI5?MK{|Tc{f|2^JTSx9xcHd0j({P}hpCu^w^7t7r8J@N0!MEea_b#`#S= zd-*Fo-@Gr9ZH@B2=w@3Z?`8`;wsf)EV)R$+eWUtk%BrZ`Y`&jlP zsKF4|*Id^q5ztr~2ek_24IMZ0;)b=fAFCcee*BR~9=UyO=*GEyZZ-}!3)n0$#1X8@ZoR5(r0dsgL1k#0c_znj9tJ9ETi0b^P!TYb2}R&)If& z&nQXLdI+=k=^CX*)!EWwepP4)jm==K!5ZkJi!x5##(_prS5wn?xwD_osJFr0R`o8h zz(|KpA@1~1jN{?HX#svGwxyx7z>p7=s@kJsLFD0DJS1E`Sr8dy2Z%DRy(WAVg^dkh;Xuqwt0hj4HUB8CxI$TAJ z(Va(k#qxqoGLpoxc~lEjC-=o-P9gCp zTN&fOqUIFysTJM&6L~O=i7Z*<9TN zmnKcLE$Xsu+i%&nZQJUy)n(hZZQFKr*=CoG+ut7hjB(HT51AQ}5zkyxD`B6XvN<|$ zb6&N_(YiAJG!s&zt+Pxt)43z88`vxM2=82}C^M)|tfX-8BJ_T+MjlFX*6ieH8U{Yc zjhxHpT!2QkyzDM4ds;RQ-DqFwHzMk6v)`LxwY#O&d2bkJINv1p8_%BLZfa6z6;l~m zQvob{B|PW33r6T{rUO5>%PeN;I3vb==ojYl=8`{ndQE<(M>$x@M6&iTHz40hqttY& zVD`XYEQgDLJBPxzZ%`@uh+ZCAjiNlIY@ZEZdENEw#?aEm7}TPWZp?fGn_@tr$|~lB z^%SfH7t{2#x2;kSE0@oUl$-?<11*=!H3>J1hooPVw}hsuFhT)Rwl#0Jr@Ti)bE^yPNcJD!Ve!bWZ@#dSxmkoKgbM^s?NoH7F+*r!=^fXElk)*6uD`^&Z z_5VC#oO>AZ+aVE3Nc8Ovr`!r0edF%dCP*+-oTWxvqT|@##LJ{(3D|X{VgAQ9sUHLQ zh?_mZao~`3-qK)7-Qp&8@xcX`sgQJt`uv+^4Me%=U2AtE*stQsE5r9e2P%oT(G*nd zb%vO;w}(cW>TEypx5CflU)`c=;La(pLmsJ><>Px{S0>Z^>77El!$VR>ysPvT`7l#f zw6SEGQKTb`5~I#WA|x*QsGrJYU?$>en<4vzZ_{wZu|tjJ~9{iOm3L z+61RW_L!9xC7Le+ir1F&3g$hC%Bl+($qcv8@x!!+o=Su=MQv3@lso&Gfow@sI(On^wet=L)bb0p! z33Ek;-o6AS zQL~g&SZU=UC-LLt(+AUuusIj&>Jvol;t7a^o(L26BCg?;&;YQBfwjk3I~IU z9mn|ii(DCi=kMY&)fFFJN?tCRKgxg{)E<&L^ahNvqwy4JEk9Xv7xNaF9InJfQq)v- zm+_`MKKls7wWA6SH&~=ZG`8*s){mC+f~Q21mQE?1R7|M>mbcs8Xt|fRMQNn<$5pwAQ_pO=9(3=wA>A zCdZ_NV=}|O>qg7~J{t5nlq>IAFS5C8G@`n zymVGQzxzdQbF2DHEdO?8_lcGgYi)IX>>w~iL?Ax1t`c?%byr>UqVV#}#T>G8U_rde z@WF_oq7;XCG;-Q48G00y&O%^x`)m0Y zmihW^Om2BGrsz1;!%h89$ZZo_xW;$q;32n4P;!;zwJ3JNnL~P=4;EoK_EY`$N>O#{ z<%;fL3UzC4tb?dOck}K~9q_hwEe~l4r~(RWAT>x(2sn)7hRn8SCrj^r5@?+(R>eGmOQI zH5E!L%1%4gew{@?k^gqZ(br+f;|8&hjYmtv)lu8>XTu%btNlg72KeHTW6bd znUkxAOVh3Xih&Y&59^sJPTwoD3G^vCpzrOl!F0peM>9&_nNZPo5 zaHhfa8$&J0r?9q@aWcANu40s{1x64Vfp-*j2v!*Ipb1qWC|)49)9hen%_zx;#KQEx zIl(jr_sT7hKiyOT{7OJOYw@gXb+?1$CG$kdw9)Jt(8j{Xx7Xyu4i+`&`OAqE!L`d8 zff`|B=Jj!ZWj5VESE=J>LD}j8JHgx$vRvOh^e1}{J-&(_Oxqb*O6PsTa9BGmoc?$r z8pj!P9paxLex57T5;ULp^DWJHX(_!K7B4O;*MtHa>#t%BpiECzlQ2l4XFMm&iE<2HkLy^axd?m__X6Qm3IlwM-7qfb|H1q4JSQ zrUA_2r2rb%E8^H4!q4==1II8mSKEfoM|$(niM06Rq?J;?BvXeCI(7GS{wyTZFIv$^ z1Jp#ktzk*)O#_f3Jrgm+^)wYxQE=F$7-vo(%v99DRuqLN41<-Yc$&3cwJ^FP5~VbE zl(Hlhp+)D#(;HGzFOV%ltl){%W{yNqE7ej_;URN3N|hD;WsytdtZQZ|UeWj_%&fxG zAVRC@CTHlZ=PRp(thGHQf>;yEWjD}p3PaC%ClFK%o&9}&8D+|&r4v)Y7EesUlOvy- z<+t#o|2iqaqNcZ^9{EC7DHjkkJ!-eFNG4Ab@m^xYmp?Z%G#Tmo9yb8trh+B!M6GWJ zrkqqs^A{@!!8aqy(SY*W@;x8g0tHo*URR9!_Eo?Cwlb2!TvpS!J?hzo(hFrd=PXip zvE6aRxqg*;{kt?M>?3x3vXcB_xbdk#v+xYl{8hH4opkA)@3l4Z_@#*+S~`HWe>4;` zz0m(CTVb@$PDmWtVf;&qUh*fBwiwnhmZIW zTv}4o^;#RoJ{ei#EeHCvV(YD}pmunt09g4ZxEdT5bG)ZDyL0AP!Qg;9uVhg*%ATiE zg%Ul}0marV0KGh`VjO=e5yzG-hA3LxX^x?K=P53}OdcqvL6_ZY#|y#5y~# zP?K|9YIl7?0GA{gm^Vs{6wu-m#Oj za*xYX)kJI;y6#?TWc#HU!EB?Zyw(#rZRFT~0wI9lED1)llvOAII8;JGnYxnOG7uA+ zX)EhSUHYTdl|G^<>wLY5s7&^B-JS2E6*#{2YD9~}G2I@`X`XF}-2#zmW{LpOp%tpg zX$WA(QfghM4w?(VfkW8AjcDDH(Khlol6U^hRAFy_N)OZ*x#O9<4VXme=g>1t+f-dLOmbQY#zgk-*gY?0- zSy{5f3OWb3IffTxecL(wNnpsyhQ;L(MJXT&2hk*SSa4z61KWbre3B5Yx}CF~xp}g_ z`vjchZ4pq`w$1Gf*Y6$QmbSiXJm@`dd`n=8_=6evlD}K4>);wIg#VmKIAmrWoTDDC z*)UE1w1&+y5!Z!le$m#P(re~(Zug4`j$ z;Um(fpF2jvJ;87xJ|77vPTPh-P0aR)e}2EL4b$G_@oEO!MdLb3uC8#2I{Y$7-+0_T zPy6cena=elU*7~G1cK6HU<`-x)Yj{5fvuJi2gRzoiai$7@NYc}y&%DdzCJ>}nrMP}l2DkNxylTVcotSsp>SPQ5RcG>;FXm&aS}$u6 zF_#MYmVEfKE)^#?(@9AXu6lGTt7RIOs+xO!!n>~B1)9{;JJXmC=C7lPsD%y@E>z=8 zl#{_7sgDQ@OtP5G{(B^e0|dN@yOX_`3{XkDIPe3rS;Ybx(nixiIt;*%iF`1%h_JM4 zJKt@8I)c1owC3$zBjIaldC48 zT0n*KdH)qsP+cG-Iq*4(gKNQt?jIB*3EmG7Cuynxy8^F6CF%Itf~W3i3lhOHeJ-4} zEQr!i`vndYN$VEOtD+ln5>X-NX%w9E5}+hIWyHff3H`{Jfg6YlHQB_36??b z9b(HtzY}UFPQdm!EI6hBg-NOxJL0!2D6}?^l%(AUA_>nVMj6~g#Et8-RZ}x|iD-66 zLWHx!%aemFZag#Xp22m)Q6j}0!~WB8i!d_j+-I#B`~A&5JxRtOkkD?tH z;Mpl8!6X-!|3;h;jB$`$B>HeI>}FJCMQ>)|1GyN!+zOy7_wR3QBTzv8yZ8iUn^GEcx3wpzI1>SU!Cw7^b;phG%6L`ZjtYnm^=JazvUTEvx)ld`BHiP!t<3m-8 zoYub$!ycB8G>|S$s;I~fw~rlXN^J@tL-DDHKu@V^@F2{fR@IWS0b!=ON8Irf`P>eI zmBET`PbRC&o>OJ_R&t!#+2UcLxhbCi?%|DBhcBWjjS9-Z|5Ks9$;eG}5IpFV#ML`- zoH9S0lJOD2Vc4O%@m#37885&_P1u@{MbUx>&6{2BR2v4wDE;_rhg%TV{VSlcVj*hH z%^1a=e-c-$55ss2;pn&*l2CrV2+wq3;nfVUFP%jW@{6o4xiH1RnrG3}(Q)NrWdlL# ztAP8H>G?eb6^YGX78T4!$x@svS}v~_t8K3VJ6YbYsq_Sor${lID-l!>XFQvR^Y2f1 zQRi`4stsNqTLy}evDK9P88g73ch1%F-aF0)ULyL=!=GTLC{X=Y- z^yCqai>HO*+Jm6tXG8evPM}`xSuNAr&|GsdHF-(h^{P2=CU~fG{&Iv`6&_i`?_-kL zpl{(!if~M|*0*sIhceeSOIO(%H>B!3L_5TG7GbbP7WkY-h27wgxz(mvk2n+3kr5Cw zD6J!i>RWSG_AV)$Hj?UU%T;dU_LcbvbWF2w%sp`X2)sI=08k&~?pJ5>#85k=u-^{) zkM*z*l#Gnh(Blb#2)Lh#rM}1t&4!#r zl|^|9eYb1y?I#AhCq5)l!w>qqrb6VB#@<bsnxv@ zeWg;JI2+!Q@{@et&XB*&e>GB#z#Gk{Mtn$M6aesiC^|lKUsZ%>oH^Zfa*?o6zQ)fI zsM0YXu?*~(t?!a1rpaUG?%vD#=Z;Nn~m-utm|mym)mQD9{D=}KHBK^Yv1KKH>gV*f+RrXOG3-mO-|nUMtIW{wQj_)s%H!&6jp%V~8-AZfo7f*vf8*wh+4s8o<24;t1$~udm=a@N6sv3@FE(hbrl+e9eW_XB2 zI!&z3+>^55Ixx_1BuTT06^cDkCc2P2WSamW*L4<)DXlj}9`ZW`H}{wUF4+fBE|3B5?m<~h0bM84nqNp!~r{E9~7FEk#| znCu5rh6-wv{2hN>{n5^SD@cTer1|iyP?gF*7D7~#SO_TS_0gH}(#-@1qrox`wZGzm^ zTb0YL9a>K3q4K)b;iM8A_p9Fl6%MaVaVnt}*3hTfD{-}4X?C{mz+0+F@p3BBwS%6K zrc~!(V->>pbfw?xvZ2<}tj$f*H(_ylI(2}sUQjj8F2whDF&Q~~n&!wblvgccOBh{N zR^I`Z3JWN+Ovb09!w>ya!4wlAjn=Thutxd9+hWcj} zzk&xRlY7};bq@wKkP4IZh>qftnywLRJigF^^_F)J2fl+5&Bs&xGE#$fnh z6&K@`^DjponaphDzWQgnFXO@$C+wI(Bq8yDb0cOG~y{dc-O_(G&}CYf0se%eV@D~XCob{(9?MVr8qj1yu?bFtJ;1DwW<6F-z0bIYTHBlkc33_X%Mu(~{;FVd&)}?q+ z>Y8_#tbjC5@NFo^?3dL0gc4_=cQWz2SGdiCs8_io`cP@?Zd-p1ZJ@=@{Sg^?)PI8B z(YDp&&{5#3rdxy^;-K2}#S7z!ZK8HEO*y(kq}v#oEQKdDNGOC{%)5

cRm*k;}1m`IbPtk%ZnxNhyeSgF#1Q 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

E42*X>r*^X~(3?04hZPKuEHk2yAUZ`<9CPiQj2 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 diff --git a/sites/installfest/railsbridge_windowsScreenshot-railsdefault.png b/sites/installfest/railsbridge_windowsScreenshot-railsdefault.png deleted file mode 100644 index 5e816c799981ab7a694663881370d5a055d0d942..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 172216 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%0Dj$`V<3}UOx-mTBIE3;Ngwy<>ImIc{ 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 ycdgTvI#S0tUHY>bXK`dCYF" message "[Sublime Text 2](http://www.sublimetext.com/2) is a good option, if you don't have one yet." - - end next_step "create_a_heroku_account" From d91769e31b75730bdbe8d7dd123d702aa982c873 Mon Sep 17 00:00:00 2001 From: Travis Grathwell Date: Tue, 28 May 2013 19:02:44 -0700 Subject: [PATCH 215/897] Updating ansicon link for 1.61 (again) --- sites/installfest/windows_colors.step | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sites/installfest/windows_colors.step b/sites/installfest/windows_colors.step index add720a29..e922f7d64 100644 --- a/sites/installfest/windows_colors.step +++ b/sites/installfest/windows_colors.step @@ -1,8 +1,8 @@ message "The Rails server logging and test results are much easier to read with colored output, but the 'Command Prompt with Ruby and Rails' defaults to white on black. Add colors by following these steps." step "Download ANSICON" do - message "In the browser, visit " - message "Click the `ansi160.zip` link to download the file (or whatever the most recent version is)" + message "In the browser, visit " + message "Click the `ANSICON v1.61` link to download the file (or whatever the most recent version is)" message "Double-click the downloaded file to unzip it" end From 9d5d7bedc126a1c4e968254d3799c8c46d06fe92 Mon Sep 17 00:00:00 2001 From: Ryan Sullivan Date: Sun, 2 Jun 2013 11:04:40 -0700 Subject: [PATCH 216/897] do everything in the railsbridge directory --- sites/curriculum/getting_started.step | 15 ++++++++++----- .../create_and_deploy_a_rails_app.step | 14 ++++++++++++++ sites/installfest/get_a_sticker.step | 6 ++++-- 3 files changed, 28 insertions(+), 7 deletions(-) diff --git a/sites/curriculum/getting_started.step b/sites/curriculum/getting_started.step index b2ece188f..d21a3bb19 100644 --- a/sites/curriculum/getting_started.step +++ b/sites/curriculum/getting_started.step @@ -11,15 +11,20 @@ steps do tip "If you have _any_ problems, contact a TA immediately." step do - console "mkdir railsbridge" - message "'mkdir' stands for make directory (folder)." - message "We've made a folder called `railsbridge`." + message "'cd' stands for change directory." + + option "Windows" do + console "cd c:\\Sites" + message "'cd c:\\Sites' sets our Sites directory to our current directory." + end + option "Mac or Linux" do + console "cd ~" + message "'cd ~' sets our home directory to our current directory." + end end step do console "cd railsbridge" - message "'cd' stands for change directory." - message "'cd railsbridge' makes railsbridge our current directory." end step do diff --git a/sites/installfest/create_and_deploy_a_rails_app.step b/sites/installfest/create_and_deploy_a_rails_app.step index 2ddd77ca6..d6926e3b4 100644 --- a/sites/installfest/create_and_deploy_a_rails_app.step +++ b/sites/installfest/create_and_deploy_a_rails_app.step @@ -1,12 +1,26 @@ step "Change to your home directory" do + message "'cd' stands for change directory." + option "Windows" do console "cd c:\\Sites" + message "'cd c:\\Sites' sets our Sites directory to our current directory." end option "Mac or Linux" do console "cd ~" + message "'cd ~' sets our home directory to our current directory." end end +step "Create a railbridge directory" do + console "mkdir railsbridge" + message "'mkdir' stands for make directory (folder)." + message "We've made a folder called `railsbridge`." +end + +step "Change to your new railsbridge directory" do + console "cd railsbridge" +end + step "Create a new Rails app" do console "rails new test_app" diff --git a/sites/installfest/get_a_sticker.step b/sites/installfest/get_a_sticker.step index 7dfbb21e0..62452850a 100644 --- a/sites/installfest/get_a_sticker.step +++ b/sites/installfest/get_a_sticker.step @@ -45,11 +45,13 @@ verify "rails" do section "Change to your home directory" do option "Windows" do - console "cd c:\\Sites" + console "cd c:\\Sites" end option "Mac or Linux" do - console "cd ~" + console "cd ~" end + + console "cd railsbridge" end console "rails new sticker" From 0299c96e3a3de369a1394dff4e48b75d0c910e53 Mon Sep 17 00:00:00 2001 From: Ryan Sullivan Date: Sun, 2 Jun 2013 11:18:23 -0700 Subject: [PATCH 217/897] Change `topic.votes.length` to `topic.votes.count` `.length` will do a `SELECT "votes".* FROM "votes"` where `.count` will perform a more efficient `SELECT COUNT(*) FROM "votes"` --- sites/curriculum/allow_people_to_vote.step | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sites/curriculum/allow_people_to_vote.step b/sites/curriculum/allow_people_to_vote.step index 1b4e65805..3a9ce3f47 100644 --- a/sites/curriculum/allow_people_to_vote.step +++ b/sites/curriculum/allow_people_to_vote.step @@ -13,7 +13,7 @@ steps { <%= topic.title %> <%= topic.description %> - <%= pluralize(topic.votes.length, "vote") %> + <%= pluralize(topic.votes.count, "vote") %> <%= button_to '+1', votes_path(topic_id: topic.id), method: :post %> <%= link_to 'Show', topic %> <%= link_to 'Edit', edit_topic_path(topic) %> @@ -47,12 +47,12 @@ explanation { message "First we added these two lines to `app/views/topics/index.html.erb`" source_code :erb, <<-HTML - <%= pluralize(topic.votes.length, "vote") %> + <%= pluralize(topic.votes.count, "vote") %> <%= button_to '+1', votes_path(topic_id: topic.id), method: :post %> HTML message <<-MARKDOWN - * `pluralize(topic.votes.length, "vote")` displays the number of votes the topic has, plus the word 'vote' or 'votes' accordingly. + * `pluralize(topic.votes.count, "vote")` displays the number of votes the topic has, plus the word 'vote' or 'votes' accordingly. * `button_to '+1'` creates an html button with the value '+1'. * `votes_path(topic_id: topic.id)` creates the right url for the action we want to invoke. In this case, we want to create a vote for the current topic. * `votes_path(topic_id: 42)` would output `/votes?topic_id=42` From 3c2d245b5ad170509fa0d2094e0359f22c0ad1fc Mon Sep 17 00:00:00 2001 From: Bernie Telles Date: Sun, 2 Jun 2013 23:29:39 -0700 Subject: [PATCH 218/897] [Retro 2013-06-01] Add link to "get a sticker" step for those who have completed installation before installfest --- sites/installfest/installfest.step | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sites/installfest/installfest.step b/sites/installfest/installfest.step index b61640381..276214155 100644 --- a/sites/installfest/installfest.step +++ b/sites/installfest/installfest.step @@ -51,6 +51,8 @@ You will also create an account on Heroku, an application hosting platform. If you already have an account on Heroku, make sure you know your username and password. +If you've already installed the above tools and are confident they are setup correctly, skip ahead to the [Get a Sticker](get_a_sticker) step. + MARKDOWN end From cc986395b040991b897533647d21aea11ec654cc Mon Sep 17 00:00:00 2001 From: Alpha Chen Date: Fri, 7 Jun 2013 20:00:47 -0600 Subject: [PATCH 219/897] Update ubuntu.step Clarify how to get to Profile Preferences --- sites/installfest/ubuntu.step | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sites/installfest/ubuntu.step b/sites/installfest/ubuntu.step index a2e2ecaa0..85cb03534 100644 --- a/sites/installfest/ubuntu.step +++ b/sites/installfest/ubuntu.step @@ -51,7 +51,7 @@ end step "Install RVM" do important do - message "If you're using Ubuntu 12.04 or the latest version of Mint, ensure that the Run command as login shell option is checked under the Title and Command tab in Profile Preferences. After changing this setting, you may need to exit your console session and start a new one before the changes take affect." + message "If you're using Ubuntu 12.04 or the latest version of Mint, ensure that the Run command as login shell option is checked under the Title and Command tab in Profile Preferences (located in Terminal's Edit menu). After changing this setting, you may need to exit your console session and start a new one before the changes take affect." img src: 'img/railsbridge_ubuntu12-checkbox.png', alt: "Ubuntu 12.04 terminal settings" end link "install_rvm_and_ruby" From 79784f5fd1505e50bb7edecdc845ac151454e171 Mon Sep 17 00:00:00 2001 From: Alpha Chen Date: Fri, 7 Jun 2013 20:25:38 -0600 Subject: [PATCH 220/897] Update windows_colors.step --- sites/installfest/windows_colors.step | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sites/installfest/windows_colors.step b/sites/installfest/windows_colors.step index e922f7d64..afb0cfb02 100644 --- a/sites/installfest/windows_colors.step +++ b/sites/installfest/windows_colors.step @@ -20,7 +20,7 @@ option "if your OS is 32 bit" do end option "if your OS is 64 bit" do - message "open the subdirectory 'x64' of the downloaded files, select and copy all the files, and paste them into C:\\Windows\\system32; provide admin permissions when prompted" + message "open the subdirectory 'x64' of the downloaded files, select and copy all the files, and paste them directly into C:\\Windows\\system32 (do not copy the x64 folder itself!); provide admin permissions when prompted" end step "Set up colors" do From 2711ec00e97ba6ec337dbe27a8d8d111bfec30ed Mon Sep 17 00:00:00 2001 From: Bernie Telles Date: Fri, 7 Jun 2013 20:56:17 -0700 Subject: [PATCH 221/897] Add links to Google Drive presentations --- sites/workshop/workshop.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/sites/workshop/workshop.md b/sites/workshop/workshop.md index 79c50515b..8df1463ae 100644 --- a/sites/workshop/workshop.md +++ b/sites/workshop/workshop.md @@ -1,9 +1,8 @@ # Slide Decks: ## Workshop Intros/Outros: -* [Welcome](welcome) -* [Current](current) -* [Closing](closing) +* [Welcome](https://docs.google.com/presentation/d/1VT8J6CTuN8ot_-0ZElLv49_-cxuNmXTp83DBonD1x5w/edit#slide=id.p) +* [Closing](https://docs.google.com/presentation/d/19ik5tm_enCNRIM4zaY9rIoeRhDoMMfFUDgNXnd2lW6A/edit#slide=id.p) ## Breakout Sessions: * [Foundational Skills](foundational_skills) From 0d984ec8510196631f85eb62566f61a1a1e602df Mon Sep 17 00:00:00 2001 From: Troy Denkinger Date: Sat, 8 Jun 2013 12:11:35 -0400 Subject: [PATCH 222/897] Test was failing under Ruby 2.0. Removed single quote since we should not care about entity encoding in this test. --- spec/step_spec.rb | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/spec/step_spec.rb b/spec/step_spec.rb index 133e736ba..3acf92769 100644 --- a/spec/step_spec.rb +++ b/spec/step_spec.rb @@ -12,7 +12,7 @@ def html_doc(src = "step 'hello'; step 'goodbye'") step = Step.new(src: src, doc_path: "/tmp/hello.step" ) - @html = step.to_html + @html = step.to_html Nokogiri.parse("#{@html}") end end @@ -43,12 +43,12 @@ def html_doc(src = "step 'hello'; step 'goodbye'") assert { to_html(step.previous) == "" } end end - + it "puts anchors in based on optional step name" do html_doc(<<-RUBY) step "Test", {:anchor_name => 'happy_step'} RUBY - + anchors = html_doc.css("a") names = anchors.map{|a| a["name"]} assert { names == ["step1", "happy_step"] } @@ -106,16 +106,16 @@ def html_doc(src = "step 'hello'; step 'goodbye'") assert { @html == "

\n:::ruby\nx = 2
" } end end - + describe 'console' do it "emits a 'console' div with a 'pre' block" do html_doc(<<-RUBY) - console "echo 'hi'" + console "echo hi" RUBY assert_loosely_equal(@html, <<-HTML)
#{Step::TERMINAL_CAPTION} -
echo 'hi'
+
echo hi
HTML end From 32627e64bc582c4db66202c948a4a751721e0b1a Mon Sep 17 00:00:00 2001 From: Alpha Chen Date: Sat, 8 Jun 2013 12:10:51 -0600 Subject: [PATCH 223/897] Update loops.step Emphasizing the message about exponentiation breaks the `**` characters. --- sites/ruby/loops.step | 134 +++++++++++++++++++++--------------------- 1 file changed, 67 insertions(+), 67 deletions(-) diff --git a/sites/ruby/loops.step b/sites/ruby/loops.step index 967075ab4..d82fef9ee 100644 --- a/sites/ruby/loops.step +++ b/sites/ruby/loops.step @@ -1,67 +1,67 @@ -goals do - goal "Use loops to do operations for every element in an array." - goal do - rawtext(md2html("Use `puts` to print strings to the screen.")) - end - goal 'Learn the two different syntaxes for creating blocks in Ruby.' -end - -step do - irb <<-IRB -puts 'Hello World' - IRB - message '`puts` (**put** **s**tring) is a way of printing information to the user of your program.' - message 'Take some time to contemplate the output of `puts` in irb:' - result <<-RESULT -1.9.3p125 :006 > puts 'Hello World' -Hello World - => nil -1.9.3p125 :007 > - RESULT - message 'The method `puts` always has the **return value** of `nil`, which is what we see after the `=>` in the output. Printing \'Hello World\' to the screen is just a side-effect.' -end - -step do - irb <<-IRB -fruits = ['peach', 'plum', 'pear'] -fruits.each { |fruit| puts fruit } - IRB - message 'The straight up-and-down `|` is called the \'pipe character\', and is typically the shifted version of the `\` (backslash) on your keyboard.' - message 'Loops are a way of doing something here multiple times. In this loop, we printed each fruit to the screen in order.' -end - -step do - irb <<-IRB -numbers = [109, 10, 1001] -numbers.each { |n| puts n * 2 } - IRB - message 'The curly braces here define a **block**, and whatever\'s in the pipes is a **block variable**.' - message '`each` takes the first element in the array and sends it to the block, which temporarily stores it in the **block variable** and then runs the code after the pipes. It then goes back and does this again for each of the remaining items in the array.' - irb <<-'IRB' -ducks = ['huey', 'dewey', 'louie'] -ducks.each { |duck| puts "#{duck} quacks!" } -ducks.each { |zombie| puts "#{zombie} quacks!" } - IRB - message 'It doesn\'t matter what you call your block variable: the previous two statements are exactly equivalent to Ruby. But you should try to name your variables something useful so the code makes sense to you later!' -end - -step do - irb <<-'IRB' -total = 256 ** 3 -colors = ['red', 'blue', 'green'] -colors.each do |color| - puts "#{total} colors of paint on the wall..." - puts "Take #{color} down, pass it around..." - total = total - 1 - puts "#{total} colors of paint on the wall!" -end - IRB - message "*The ** operator means 'to the power of', as in '256 to the third power'*" - message "There's more than one way to make a block in ruby. The `do ... end` syntax is typically used when a block needs to span multiple lines, while the `{ ... }` syntax is for a single line block." -end - -explanation do - message "As you build complex programs, you'll want to do something to many pieces of data without typing it all out. Loops help solve this problem." -end - -next_step 'running_programs_from_a_file' \ No newline at end of file +goals do + goal "Use loops to do operations for every element in an array." + goal do + rawtext(md2html("Use `puts` to print strings to the screen.")) + end + goal 'Learn the two different syntaxes for creating blocks in Ruby.' +end + +step do + irb <<-IRB +puts 'Hello World' + IRB + message '`puts` (**put** **s**tring) is a way of printing information to the user of your program.' + message 'Take some time to contemplate the output of `puts` in irb:' + result <<-RESULT +1.9.3p125 :006 > puts 'Hello World' +Hello World + => nil +1.9.3p125 :007 > + RESULT + message 'The method `puts` always has the **return value** of `nil`, which is what we see after the `=>` in the output. Printing \'Hello World\' to the screen is just a side-effect.' +end + +step do + irb <<-IRB +fruits = ['peach', 'plum', 'pear'] +fruits.each { |fruit| puts fruit } + IRB + message 'The straight up-and-down `|` is called the \'pipe character\', and is typically the shifted version of the `\` (backslash) on your keyboard.' + message 'Loops are a way of doing something here multiple times. In this loop, we printed each fruit to the screen in order.' +end + +step do + irb <<-IRB +numbers = [109, 10, 1001] +numbers.each { |n| puts n * 2 } + IRB + message 'The curly braces here define a **block**, and whatever\'s in the pipes is a **block variable**.' + message '`each` takes the first element in the array and sends it to the block, which temporarily stores it in the **block variable** and then runs the code after the pipes. It then goes back and does this again for each of the remaining items in the array.' + irb <<-'IRB' +ducks = ['huey', 'dewey', 'louie'] +ducks.each { |duck| puts "#{duck} quacks!" } +ducks.each { |zombie| puts "#{zombie} quacks!" } + IRB + message 'It doesn\'t matter what you call your block variable: the previous two statements are exactly equivalent to Ruby. But you should try to name your variables something useful so the code makes sense to you later!' +end + +step do + irb <<-'IRB' +total = 256 ** 3 +colors = ['red', 'blue', 'green'] +colors.each do |color| + puts "#{total} colors of paint on the wall..." + puts "Take #{color} down, pass it around..." + total = total - 1 + puts "#{total} colors of paint on the wall!" +end + IRB + message "The ** operator means 'to the power of', as in '256 to the third power'" + message "There's more than one way to make a block in ruby. The `do ... end` syntax is typically used when a block needs to span multiple lines, while the `{ ... }` syntax is for a single line block." +end + +explanation do + message "As you build complex programs, you'll want to do something to many pieces of data without typing it all out. Loops help solve this problem." +end + +next_step 'running_programs_from_a_file' From d617d32ff51d4c1e9fd1903d905e9b00f3e0f07c Mon Sep 17 00:00:00 2001 From: Alpha Chen Date: Sat, 8 Jun 2013 12:23:15 -0600 Subject: [PATCH 224/897] Update variables.step Be clear that you need to run `irb` again after exiting it in the previous lesson. --- sites/ruby/variables.step | 115 ++++++++++++++++++++------------------ 1 file changed, 60 insertions(+), 55 deletions(-) diff --git a/sites/ruby/variables.step b/sites/ruby/variables.step index 700482a4a..ef869269f 100755 --- a/sites/ruby/variables.step +++ b/sites/ruby/variables.step @@ -1,55 +1,60 @@ -goals do - goal "Store data in variables" - goal "Replace data in an existing variable" -end - -step do - irb 'my_variable = 5' - message 'This creates a new variable called my_variable and stores the value 5 in it.' - irb 'another_variable = "hi"' - message 'This creates another variable and stores the value "hi" in it.' -end - -step do - irb 'my_variable = 10' - message 'This reassigns my_variable, which already exists, to 10.' -end - -step do - irb <<-IRB -apples = 5 -bananas = 10 + 5 -fruits = 2 + apples + bananas -bananas = fruits - apples - IRB - message 'Variables are assigned using a single equals sign (=).' - message 'The right side of the equals sign is evaluated first, then the value is assigned to the variable named on the left side of the equals.' -end - -step do - message <<-VARIABLE_NAMES -Try making variables with the following kinds of names names in irb: - -* all letters (like 'folders') - -* all numbers (like '2000') - -* an underscore (like 'first_name') - -* a dash (like 'last-name') - -* a number anywhere (like 'y2k') - -* a number at the start (like '101dalmations') - -* a number at the end (like 'starwars2') - -Which worked? Which didn't? - VARIABLE_NAMES -end - -explanation do - message "Variables allow you to store data so you can refer to it by name later. The data you store in variables will persist as long as your program keeps running." -end - -next_step "strings" +goals do + goal "Store data in variables" + goal "Replace data in an existing variable" +end + +step do + message 'Start irb again' + console 'irb' +end + +step do + irb 'my_variable = 5' + message 'This creates a new variable called my_variable and stores the value 5 in it.' + irb 'another_variable = "hi"' + message 'This creates another variable and stores the value "hi" in it.' +end + +step do + irb 'my_variable = 10' + message 'This reassigns my_variable, which already exists, to 10.' +end + +step do + irb <<-IRB +apples = 5 +bananas = 10 + 5 +fruits = 2 + apples + bananas +bananas = fruits - apples + IRB + message 'Variables are assigned using a single equals sign (=).' + message 'The right side of the equals sign is evaluated first, then the value is assigned to the variable named on the left side of the equals.' +end + +step do + message <<-VARIABLE_NAMES +Try making variables with the following kinds of names names in irb: + +* all letters (like 'folders') + +* all numbers (like '2000') + +* an underscore (like 'first_name') + +* a dash (like 'last-name') + +* a number anywhere (like 'y2k') + +* a number at the start (like '101dalmations') + +* a number at the end (like 'starwars2') + +Which worked? Which didn't? + VARIABLE_NAMES +end + +explanation do + message "Variables allow you to store data so you can refer to it by name later. The data you store in variables will persist as long as your program keeps running." +end + +next_step "strings" From b5869eabcff96ca78b75f2d393d037a0b13f3649 Mon Sep 17 00:00:00 2001 From: cherimarie Date: Sat, 8 Jun 2013 15:53:48 -0600 Subject: [PATCH 225/897] Correct step two: console not irb Step two suggested making a directory through irb instead of the console. --- sites/ruby/command_line.step | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sites/ruby/command_line.step b/sites/ruby/command_line.step index 09cdf76a6..7af292146 100755 --- a/sites/ruby/command_line.step +++ b/sites/ruby/command_line.step @@ -15,7 +15,7 @@ step do end step do - irb 'mkdir railsbridge_ruby' + console 'mkdir railsbridge_ruby' message '`mkdir` means **m**ake **d**irectory. You use mkdir when you want to create a new directory.' message 'The command line is just one way of manipulating the files on your computer. Try to find the new directory you created in Finder or Windows Explorer.' message 'If you get an error saying the directory already exists, maybe someone did these steps on your computer before. Don\'t fret.' From fc9d32838ee0c9ad61ed8d26ddc8355cb03f776e Mon Sep 17 00:00:00 2001 From: Travis Grathwell Date: Sat, 8 Jun 2013 16:18:48 -0700 Subject: [PATCH 226/897] Add gitattributes file to force line endings as LF --- .gitattributes | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .gitattributes diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 000000000..9151357bd --- /dev/null +++ b/.gitattributes @@ -0,0 +1,5 @@ +# See https://help.github.com/articles/dealing-with-line-endings + +# Set default behaviour, in case users don't have core.autocrlf set. +* text=auto + From 1813ca12f615dcf4b5fad182e3ffaaae42dba94b Mon Sep 17 00:00:00 2001 From: Travis Grathwell Date: Sat, 8 Jun 2013 16:39:27 -0700 Subject: [PATCH 227/897] Renormalize line endings --- sites/ruby/loops.step | 132 +++++++++++++++++++------------------- sites/ruby/variables.step | 120 +++++++++++++++++----------------- 2 files changed, 126 insertions(+), 126 deletions(-) diff --git a/sites/ruby/loops.step b/sites/ruby/loops.step index d82fef9ee..3be331c69 100644 --- a/sites/ruby/loops.step +++ b/sites/ruby/loops.step @@ -1,67 +1,67 @@ -goals do - goal "Use loops to do operations for every element in an array." - goal do - rawtext(md2html("Use `puts` to print strings to the screen.")) - end - goal 'Learn the two different syntaxes for creating blocks in Ruby.' -end - -step do - irb <<-IRB -puts 'Hello World' - IRB - message '`puts` (**put** **s**tring) is a way of printing information to the user of your program.' - message 'Take some time to contemplate the output of `puts` in irb:' - result <<-RESULT -1.9.3p125 :006 > puts 'Hello World' -Hello World - => nil -1.9.3p125 :007 > - RESULT - message 'The method `puts` always has the **return value** of `nil`, which is what we see after the `=>` in the output. Printing \'Hello World\' to the screen is just a side-effect.' -end - -step do - irb <<-IRB -fruits = ['peach', 'plum', 'pear'] -fruits.each { |fruit| puts fruit } - IRB - message 'The straight up-and-down `|` is called the \'pipe character\', and is typically the shifted version of the `\` (backslash) on your keyboard.' - message 'Loops are a way of doing something here multiple times. In this loop, we printed each fruit to the screen in order.' -end - -step do - irb <<-IRB -numbers = [109, 10, 1001] -numbers.each { |n| puts n * 2 } - IRB - message 'The curly braces here define a **block**, and whatever\'s in the pipes is a **block variable**.' - message '`each` takes the first element in the array and sends it to the block, which temporarily stores it in the **block variable** and then runs the code after the pipes. It then goes back and does this again for each of the remaining items in the array.' - irb <<-'IRB' -ducks = ['huey', 'dewey', 'louie'] -ducks.each { |duck| puts "#{duck} quacks!" } -ducks.each { |zombie| puts "#{zombie} quacks!" } - IRB - message 'It doesn\'t matter what you call your block variable: the previous two statements are exactly equivalent to Ruby. But you should try to name your variables something useful so the code makes sense to you later!' -end - -step do - irb <<-'IRB' -total = 256 ** 3 -colors = ['red', 'blue', 'green'] -colors.each do |color| - puts "#{total} colors of paint on the wall..." - puts "Take #{color} down, pass it around..." - total = total - 1 - puts "#{total} colors of paint on the wall!" -end - IRB - message "The ** operator means 'to the power of', as in '256 to the third power'" - message "There's more than one way to make a block in ruby. The `do ... end` syntax is typically used when a block needs to span multiple lines, while the `{ ... }` syntax is for a single line block." -end - -explanation do - message "As you build complex programs, you'll want to do something to many pieces of data without typing it all out. Loops help solve this problem." -end - +goals do + goal "Use loops to do operations for every element in an array." + goal do + rawtext(md2html("Use `puts` to print strings to the screen.")) + end + goal 'Learn the two different syntaxes for creating blocks in Ruby.' +end + +step do + irb <<-IRB +puts 'Hello World' + IRB + message '`puts` (**put** **s**tring) is a way of printing information to the user of your program.' + message 'Take some time to contemplate the output of `puts` in irb:' + result <<-RESULT +1.9.3p125 :006 > puts 'Hello World' +Hello World + => nil +1.9.3p125 :007 > + RESULT + message 'The method `puts` always has the **return value** of `nil`, which is what we see after the `=>` in the output. Printing \'Hello World\' to the screen is just a side-effect.' +end + +step do + irb <<-IRB +fruits = ['peach', 'plum', 'pear'] +fruits.each { |fruit| puts fruit } + IRB + message 'The straight up-and-down `|` is called the \'pipe character\', and is typically the shifted version of the `\` (backslash) on your keyboard.' + message 'Loops are a way of doing something here multiple times. In this loop, we printed each fruit to the screen in order.' +end + +step do + irb <<-IRB +numbers = [109, 10, 1001] +numbers.each { |n| puts n * 2 } + IRB + message 'The curly braces here define a **block**, and whatever\'s in the pipes is a **block variable**.' + message '`each` takes the first element in the array and sends it to the block, which temporarily stores it in the **block variable** and then runs the code after the pipes. It then goes back and does this again for each of the remaining items in the array.' + irb <<-'IRB' +ducks = ['huey', 'dewey', 'louie'] +ducks.each { |duck| puts "#{duck} quacks!" } +ducks.each { |zombie| puts "#{zombie} quacks!" } + IRB + message 'It doesn\'t matter what you call your block variable: the previous two statements are exactly equivalent to Ruby. But you should try to name your variables something useful so the code makes sense to you later!' +end + +step do + irb <<-'IRB' +total = 256 ** 3 +colors = ['red', 'blue', 'green'] +colors.each do |color| + puts "#{total} colors of paint on the wall..." + puts "Take #{color} down, pass it around..." + total = total - 1 + puts "#{total} colors of paint on the wall!" +end + IRB + message "The ** operator means 'to the power of', as in '256 to the third power'" + message "There's more than one way to make a block in ruby. The `do ... end` syntax is typically used when a block needs to span multiple lines, while the `{ ... }` syntax is for a single line block." +end + +explanation do + message "As you build complex programs, you'll want to do something to many pieces of data without typing it all out. Loops help solve this problem." +end + next_step 'running_programs_from_a_file' diff --git a/sites/ruby/variables.step b/sites/ruby/variables.step index ef869269f..a6c2b57db 100755 --- a/sites/ruby/variables.step +++ b/sites/ruby/variables.step @@ -1,60 +1,60 @@ -goals do - goal "Store data in variables" - goal "Replace data in an existing variable" -end - -step do - message 'Start irb again' - console 'irb' -end - -step do - irb 'my_variable = 5' - message 'This creates a new variable called my_variable and stores the value 5 in it.' - irb 'another_variable = "hi"' - message 'This creates another variable and stores the value "hi" in it.' -end - -step do - irb 'my_variable = 10' - message 'This reassigns my_variable, which already exists, to 10.' -end - -step do - irb <<-IRB -apples = 5 -bananas = 10 + 5 -fruits = 2 + apples + bananas -bananas = fruits - apples - IRB - message 'Variables are assigned using a single equals sign (=).' - message 'The right side of the equals sign is evaluated first, then the value is assigned to the variable named on the left side of the equals.' -end - -step do - message <<-VARIABLE_NAMES -Try making variables with the following kinds of names names in irb: - -* all letters (like 'folders') - -* all numbers (like '2000') - -* an underscore (like 'first_name') - -* a dash (like 'last-name') - -* a number anywhere (like 'y2k') - -* a number at the start (like '101dalmations') - -* a number at the end (like 'starwars2') - -Which worked? Which didn't? - VARIABLE_NAMES -end - -explanation do - message "Variables allow you to store data so you can refer to it by name later. The data you store in variables will persist as long as your program keeps running." -end - -next_step "strings" +goals do + goal "Store data in variables" + goal "Replace data in an existing variable" +end + +step do + message 'Start irb again' + console 'irb' +end + +step do + irb 'my_variable = 5' + message 'This creates a new variable called my_variable and stores the value 5 in it.' + irb 'another_variable = "hi"' + message 'This creates another variable and stores the value "hi" in it.' +end + +step do + irb 'my_variable = 10' + message 'This reassigns my_variable, which already exists, to 10.' +end + +step do + irb <<-IRB +apples = 5 +bananas = 10 + 5 +fruits = 2 + apples + bananas +bananas = fruits - apples + IRB + message 'Variables are assigned using a single equals sign (=).' + message 'The right side of the equals sign is evaluated first, then the value is assigned to the variable named on the left side of the equals.' +end + +step do + message <<-VARIABLE_NAMES +Try making variables with the following kinds of names names in irb: + +* all letters (like 'folders') + +* all numbers (like '2000') + +* an underscore (like 'first_name') + +* a dash (like 'last-name') + +* a number anywhere (like 'y2k') + +* a number at the start (like '101dalmations') + +* a number at the end (like 'starwars2') + +Which worked? Which didn't? + VARIABLE_NAMES +end + +explanation do + message "Variables allow you to store data so you can refer to it by name later. The data you store in variables will persist as long as your program keeps running." +end + +next_step "strings" From 1d32d07170a18515dae771f82ae6675ed51c9f4e Mon Sep 17 00:00:00 2001 From: Travis Grathwell Date: Mon, 10 Jun 2013 21:36:13 -0700 Subject: [PATCH 228/897] Add dependent: :destroy to votes assoc to stop database leaks --- .../hooking_up_votes_and_topics.step | 31 +++++++++++-------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/sites/curriculum/hooking_up_votes_and_topics.step b/sites/curriculum/hooking_up_votes_and_topics.step index 8b42a2c39..aea6e0886 100644 --- a/sites/curriculum/hooking_up_votes_and_topics.step +++ b/sites/curriculum/hooking_up_votes_and_topics.step @@ -24,7 +24,7 @@ steps { source_code :ruby, <<-RUBY class Topic < ActiveRecord::Base attr_accessible :description, :title - has_many :votes + has_many :votes, dependent: :destroy end RUBY } @@ -44,18 +44,23 @@ explanation { message <<-MARKDOWN - `has_many` and `belongs_to`: - - * In rails, relationships between models are called associations. - * Associations (usually) come in pairs. - * A topic will have many votes so we put `has_many :votes` in the - topic model. - * When you ask a topic for its votes, you get an array of votes - for that topic. - * A vote is for a particular topic, so we put `belongs_to :topic` - in the vote model. - * When you ask a vote for its topic, you get the topic for that - vote. +`has_many` and `belongs_to`: + +* In rails, relationships between models are called associations. +* Associations (usually) come in pairs. +* A topic will have many votes so we put `has_many :votes` in the + topic model. + * When you ask a topic for its votes, you get an array of votes + for that topic. +* A vote is for a particular topic, so we put `belongs_to :topic` + in the vote model. + * When you ask a vote for its topic, you get the topic for that + vote. + +It can still be important to clean up after yourself! `dependent: :destroy` + on `has_many :votes` means when a **Topic** gets destroyed, all + the **votes** that correspond to it will be destroyed, too. Without + `dependent :destroy`, those votes would live on the database forever. MARKDOWN } From f119c6a840b3dfa0634c9ed1c3db5217d00d3b8d Mon Sep 17 00:00:00 2001 From: Nick Howard Date: Sat, 22 Jun 2013 13:50:27 -0500 Subject: [PATCH 229/897] change load file example slide to use same prompt as other irb examples Some students in my group got confused when the irb prompts in the slides changed and typed in `ruby >` which didn't work. --- sites/workshop/ruby_for_beginners.deck.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sites/workshop/ruby_for_beginners.deck.md b/sites/workshop/ruby_for_beginners.deck.md index 0c45032e2..130da2599 100644 --- a/sites/workshop/ruby_for_beginners.deck.md +++ b/sites/workshop/ruby_for_beginners.deck.md @@ -539,9 +539,9 @@ In your text editor, create a file named `my_program.rb` inside your working dir ```bash $ irb - ruby > load 'my_program.rb' - ruby > second_time=Sample.new - ruby > second_time.hello + > load 'my_program.rb' + > second_time=Sample.new + > second_time.hello ``` When might it be useful to do this? From 9ffbc5d21afc42eb371f1cf8477cc3dfb61828d1 Mon Sep 17 00:00:00 2001 From: Travis Grathwell Date: Sat, 22 Jun 2013 22:45:19 -0700 Subject: [PATCH 230/897] Add explanation of Rake when it is first used in curriculum Also, I think Seattle tested the Ruby curriclum on humans. Not sure how it went. --- sites/curriculum/creating_a_migration.step | 7 +++++++ sites/docs/docs.step | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/sites/curriculum/creating_a_migration.step b/sites/curriculum/creating_a_migration.step index 3adc5fb78..a0d61bf01 100644 --- a/sites/curriculum/creating_a_migration.step +++ b/sites/curriculum/creating_a_migration.step @@ -38,6 +38,13 @@ steps { explanation { + h2 "Rake" + message <<-MARKDOWN +`rake` _(Ruby Make)_ is a tool that allows you to run small Ruby programs (**tasks**) that you use often in your application. Here, `rake db:migrate` is a task provided by the Rails framework. + +You can run `rake -T` to see a list of all the `rake` commands your app currently responds to, along with a short description of each task. + MARKDOWN + h2 "Explaining MVC and Records" img src: "img/mvc.png", alt: "MVC" diff --git a/sites/docs/docs.step b/sites/docs/docs.step index de243db78..c43a10cbf 100644 --- a/sites/docs/docs.step +++ b/sites/docs/docs.step @@ -17,7 +17,7 @@ HTML + CSS for beginners. Make a website, no server required! # [Ruby](/ruby) -A ruby-specific curriculum, expanded from the "Ruby for Beginners" slide deck. Still yet to be tested on humans! +A ruby-specific curriculum, expanded from the "Ruby for Beginners" slide deck. Still new, with room for your contributions. # [Workshop](/workshop) From 41e1636462e6c0c2011685c0e6baa1308d04c662 Mon Sep 17 00:00:00 2001 From: Travis Grathwell Date: Sun, 23 Jun 2013 21:48:12 -0700 Subject: [PATCH 231/897] Fix some mediawiki formatting troubles on workshop pages (by converting them to markdown) --- sites/workshop/resources.md | 53 +++++++++++++++++++++++++++ sites/workshop/resources.mw | 63 --------------------------------- sites/workshop/teaching_tips.md | 30 ++++++++++++++++ sites/workshop/teaching_tips.mw | 31 ---------------- 4 files changed, 83 insertions(+), 94 deletions(-) create mode 100644 sites/workshop/resources.md delete mode 100644 sites/workshop/resources.mw create mode 100644 sites/workshop/teaching_tips.md delete mode 100644 sites/workshop/teaching_tips.mw diff --git a/sites/workshop/resources.md b/sites/workshop/resources.md new file mode 100644 index 000000000..467553b29 --- /dev/null +++ b/sites/workshop/resources.md @@ -0,0 +1,53 @@ +### Learning Ruby +* [TryRuby](http://tryruby.org/) a browser-based interactive tutorial in Ruby +* ["Learning to Program" by Chris Pine](http://www.pragprog.com/titles/ltp2/learn-to-program-2nd-edition) - a beginner's programming book with lots of Ruby exercises. (earlier version [online](http://pine.fm/LearnToProgram)) +* [Why's Poignant Guide](http://mislav.uniqpath.com/poignant-guide/book/chapter-1.html) +* [Hackety Hack](http://hackety-hack.com/) a fun way for beginners to learn Ruby. +* [Ruby Koans](http://rubykoans.com/) - a self-guided journey through topics in Ruby for beginners and experts alike +* [Test-First Teaching](http://testfirst.org) - click on 'Learn Ruby' +* [Ruby Warrior](https://github.com/ryanb/ruby-warrior) - write and refine some Ruby code to get your warrior to the top of a hazardous tower +* [Ruby Quiz](http://www.rubyquiz.com) - a guided tour through the world of possibility; use your Ruby to build simple apps, games, and solve problems +* [Why's Poignant Guide to Ruby](http://mislav.uniqpath.com/poignant-guide/book/chapter-2.html) - A whimsical comic book that teaches you Ruby. Legendary in the community. +* [Learn Ruby the Hard Way](http://ruby.learncodethehardway.org/) It's not actually hard. A great place to start if you're new to programming and want to learn with hands-on examples. +* [PDX tech workshop](http://github.com/caylee-hogg/pdx-ruby-course) This are the slides from the ruby/rails workshop organized in Portland, OR by [PDXtech](http://pdxtechworkshops.org/) + +### Learn about Rails + +* [Rails Guides](http://guides.rubyonrails.org/) - the official how-to articles for Rails +* [Rails API](http://railsapi.com) - online documentation +* [Rails for Zombies](http://railsforzombies.org/) - a series of videos and browser-based Rails exercises +* [Rails Tutorial](http://ruby.railstutorial.org/) - a tutorial that leads you through writing a Rails messaging app + +### Watch screen casts + +* [RailsCasts](http://railscasts.com) (also available as [blog posts](http://asciicasts.com/)) +* [PeepCode](http://peepcode.com) + +### Classes & events in San Francisco + +* [San Francisco Ruby Meetups (we'd love to have you when you're in the area!)](http://www.meetup.com/sfruby/) +* [RailsBridge Workshops organizing team](http://groups.google.com/group/railsbridge-workshops) +* [Women Who Code meetup](http://www.meetup.com/Women-Who-Code-SF/) (monthly hack nights & speakers) + +### Online + +* [RailsBridge](http://railsbridge.org) +* [DevChix](http://www.devchix.com) -blog and mailing list for women developers +* [Stack Overflow](http://stackoverflow.com/) -for answers to programming questions +* [Apprenticeship Patterns](http://apprenticeship-patterns.labs.oreilly.com/) -advice for aspiring programmers + +### Get experience + +* Just do it. Write and publish your own Rails app. +* Volunteer at the next workshop +* Volunteer on a RailsBridge Builders project +* Come to a hack session + +### Meetups and User Groups outside of San Francisco + +* Boulder Ruby (monthly events): http://boulderruby.org/ +* DeRailed - Denver Rails UG: http://groups.google.com/group/derailed +* Mountain.rb (Boulder, Colorado) http://mountainrb.com +* Chicago Ruby (beginners welcome!) http://www.meetup.com/ChicagoRuby/ + +Check for Ruby and Rails meetups anywhere at [Ruby in Person](http://www.rubyinperson.com/) diff --git a/sites/workshop/resources.mw b/sites/workshop/resources.mw deleted file mode 100644 index 9d6cb6510..000000000 --- a/sites/workshop/resources.mw +++ /dev/null @@ -1,63 +0,0 @@ -== Resources and Next Steps == -short link to this page: http://bit.ly/ruby-resources - -== Self-Organized Study Groups == -* [http://www.meetup.com/Women-Who-Code-SF/events/32515272/ WWCode-Rails study group] in San Francisco meets every Tuesday. Started on Sept 27, 2011. - * [http://groups.google.com/group/wwcode-rails/ WWCode-Rails Mailing List] - * Our devchix wiki page: [[WWCode Rails]] - -=== Learning Ruby === -* [http://tryruby.org/ TryRuby] a browser-based interactive tutorial in Ruby -* [http://www.pragprog.com/titles/ltp2/learn-to-program-2nd-edition"Learning to Program" by Chris Pine] - a beginner's programming book with lots of Ruby exercises. (earlier version [http://pine.fm/LearnToProgram online]) -* [http://mislav.uniqpath.com/poignant-guide/book/chapter-1.html Why's Poignant Guide] -* [http://hackety-hack.com/ Hackety Hack] a fun way for beginners to learn Ruby. -* [http://rubykoans.com/ Ruby Koans] - a self-guided journey through topics in Ruby for beginners and experts alike -* [http://testfirst.org Test-First Teaching] - click on 'Learn Ruby' -* [https://github.com/ryanb/ruby-warrior Ruby Warrior] - write and refine some Ruby code to get your warrior to the top of a hazardous tower -* [http://www.rubyquiz.com Ruby Quiz] - a guided tour through the world of possibility; use your Ruby to build simple apps, games, and solve problems -* [http://mislav.uniqpath.com/poignant-guide/book/chapter-2.html Why's Poignant Guide to Ruby] - A whimsical comic book that teaches you Ruby. Legendary in the community. -* [http://ruby.learncodethehardway.org/ Learn Ruby the Hard Way] It's not actually hard. A great place to start if you're new to programming and want to learn with hands-on examples. -* [http://github.com/caylee-hogg/pdx-ruby-course PDX tech workshop] This are the slides from the ruby/rails workshop organized in Portland, OR by [http://pdxtechworkshops.org/ PDXtech] - -=== Learn about Rails === - -* [http://guides.rubyonrails.org/ Rails Guides] - the official how-to articles for Rails -* [http://railsapi.com Rails API] - online documentation -* [http://railsforzombies.org/ Rails for Zombies] - a series of videos and browser-based Rails exercises -* [http://ruby.railstutorial.org/ Rails Tutorial] - a tutorial that leads you through writing a Rails messaging app - -=== Watch screen casts === - -* [http://railscasts.com RailsCasts] (also available as [http://asciicasts.com/ blog posts]) -* [http://peepcode.com PeepCode] -* [http://pivotallabs.com/talks Pivotal Labs talks] - -=== Classes & events in San Francisco === - -* [http://www.meetup.com/sfruby/ San Francisco Ruby Meetups (we'd love to have you when you're in the area!)] -* [http://groups.google.com/group/railsbridge-workshops RailsBridge Workshops organizing team] -* [http://www.meetup.com/Women-Who-Code-SF/ Women Who Code meetup] (monthly hack nights & speakers) - -=== Online === - -* [http://valobox.com Valobox] -use Promocode 'RailsBridge' to read free. -* [http://railsbridge.org RailsBridge] -* [http://www.devchix.com DevChix] -blog and mailing list for women developers -* [http://stackoverflow.com/ Stack Overflow] -for answers to programming questions -* [http://apprenticeship-patterns.labs.oreilly.com/ Apprenticeship Patterns] -advice for aspiring programmers - -=== Get experience === - -* Just do it. Write and publish your own Rails app. -* Volunteer at the next workshop -* Volunteer on a RailsBridge Builders project -* Come to a hack session - -=== Meetups and User Groups outside of San Francisco === - -* Boulder Ruby (monthly events): http://boulderruby.org/ -* DeRailed - Denver Rails UG: http://groups.google.com/group/derailed -* Mountain.rb (Boulder, Colorado) http://mountainrb.com -* Chicago Ruby (beginners welcome!) http://www.meetup.com/ChicagoRuby/ - -Check for Ruby and Rails meetups anywhere at [http://www.rubyinperson.com/ Ruby in Person] diff --git a/sites/workshop/teaching_tips.md b/sites/workshop/teaching_tips.md new file mode 100644 index 000000000..030ee44c9 --- /dev/null +++ b/sites/workshop/teaching_tips.md @@ -0,0 +1,30 @@ +## General Teaching Advice + +When planning, don't think about what _you're_ going to do. Think about what _they're_ going to do. + + +## Metaphors and Stories for Teaching Programming: + +A program is like a recipe. There's two parts: a list of ingredients and a list of instructions. Think of code as the instructions and data as the ingredients. + +Also, to extend the metaphor, think about doubling a recipe: the instructions don't change even though the data are different this time. + +Computer memory is like a warehouse with lots of boxes. Each box has something inside (the data) and it also has a label (the variable name). + +The command line as Zork. You are "in" a room (a directory) and can either act on things in the room (commands) or move to a new room (cd). It's very important that you know where you are! Learn how to read the command line, and do an "ls" (or "dir") to look around. + +# Notes +* Have one volunteer be a runner to remind people when it's 10 minutes until the next break. (This worked really well.) +* Make sure all of the projectors have Mac adaptors +* Handouts with all of the code that people need to type +* Tell people at the beginning that the slides are online +* Have a volunteer leader, make sure they are distributed evenly +* Advertise that the Friday night setup is **required**, send notes out 1 week ahead of time, so people can get started ahead of time +* USB keys and/or DVDs with the big stuff like XCode +* Ask the venue about bike policy (can participants bring bikes inside?) and communicate that to participants ahead of time. +* Start with live coding - watch and type along, don't even use slides. make sure students & teachers irb prompts display line numbers, so we can say go to line 32 +* Go into IRB to practice basic concepts first, don't discuss what agile and a variable is in the abstract right away. Learning by doing first and talking later worked better. +* At the very beginning, show a designed version of app so people can recognize it as finished product like other web sites they see: screenshots are on Sarah Allen's site. +* Have TAs wear different badge colors so they can recognize each other. +* Discuss rubyisms where appropriate. use code to show elegance & readability of ruby vs other languages: each vs (for i; i = "lame"; i ++) +* Ask students to discuss what they learned, what they thought of it, at end of the day. As beginning of wrap-up session or just before it. diff --git a/sites/workshop/teaching_tips.mw b/sites/workshop/teaching_tips.mw deleted file mode 100644 index ba2b344e4..000000000 --- a/sites/workshop/teaching_tips.mw +++ /dev/null @@ -1,31 +0,0 @@ -== General Teaching Advice == - -When planning, don't think about what ''you're'' going to do. Think about what ''they're'' going to do. - - -== Metaphors and Stories for Teaching Programming: == - -A program is like a recipe. There's two parts: a list of ingredients and a list of instructions. Think of code as the instructions and data as the ingredients. - -Also, to extend the metaphor, think about doubling a recipe: the instructions don't change even though the data are different this time. - -Computer memory is like a warehouse with lots of boxes. Each box has something inside (the data) and it also has a label (the variable name). - -The command line as Zork. You are "in" a room (a directory) and can either act on things in the room (commands) or move to a new room (cd). It's very important that you know where you are! Learn how to read the command line, and do an "ls" (or "dir") to look around. - -= Notes = -* [[Workshop Advice]] -** Have one volunteer be a runner to remind people when it's 10 minutes until the next break. (This worked really well.) -** Make sure all of the projectors have Mac adaptors -** Handouts with all of the code that people need to type -** Tell people at the beginning that the slides are online -** Have a volunteer leader, make sure they are distributed evenly -** Advertise that the Friday night setup is '''required''', send notes out 1 week ahead of time, so people can get started ahead of time -** USB keys and/or DVDs with the big stuff like XCode -** Ask the venue about bike policy (can participants bring bikes inside?) and communicate that to participants ahead of time. -** Start with live coding - watch and type along, don't even use slides. make sure students & teachers irb prompts display line numbers, so we can say go to line 32 -** Go into IRB to practice basic concepts first, don't discuss what agile and a variable is in the abstract right away. Learning by doing first and talking later worked better. -** At the very beginning, show a designed version of app so people can recognize it as finished product like other web sites they see: screenshots are on Sarah Allen's site. -** Have TAs wear different badge colors so they can recognize each other. -** Discuss rubyisms where appropriate. use code to show elegance & readability of ruby vs other languages: each vs (for i; i = "lame"; i ++) -** Ask students to discuss what they learned, what they thought of it, at end of the day. As beginning of wrap-up session or just before it. From adbab489f793e2baf2e1ebf8d307be708e32242f Mon Sep 17 00:00:00 2001 From: Travis Grathwell Date: Mon, 24 Jun 2013 21:41:26 -0700 Subject: [PATCH 232/897] Reorganize 'Workshop' site frontpage Fix markup in probably-should-just-be-deleted 'topics' page --- sites/workshop/{topics.mw => topics.md} | 36 +++++++++++-------------- sites/workshop/workshop.md | 31 ++++++++++++++------- 2 files changed, 37 insertions(+), 30 deletions(-) rename sites/workshop/{topics.mw => topics.md} (60%) diff --git a/sites/workshop/topics.mw b/sites/workshop/topics.md similarity index 60% rename from sites/workshop/topics.mw rename to sites/workshop/topics.md index f3c7ab4d6..e275521d0 100644 --- a/sites/workshop/topics.mw +++ b/sites/workshop/topics.md @@ -1,7 +1,7 @@ -=== Explain what they installed last night === +### Explain what they installed last night The Friday night install process is very cut-and-paste, and people new to Ruby don't understand any of the things that they did. Show them the components (git, github, ruby, rails, heroku) and explain what each is for and how they fit together in plain language and ''why'' each one is important. Diagrams can help. Don't assume beginners have any context: for example, git is not the only version-control software out there, it is just one way to do it. -=== Make sure they know basic *nix commands === +### Make sure they know basic *nix commands * Remember that some people don't yet know that when you're at the command line, you're actually sitting in a folder, and when you change a directory it's like moving into a folder with a GUI. This is NOT obvious if you've never used it before. * If they are learning this for the first time, give them a little challenge like: go into the Desktop folder, create a subfolder and then cd into it. Use pwd to prove you're in the right place. * Check in to make sure everyone knows at least the following unix commands: cd, ls, mkdir, irb, pwd. @@ -9,44 +9,40 @@ The Friday night install process is very cut-and-paste, and people new to Ruby d curl -O http://whatever.com/text.txt * (Someone who knows DOS should write the equivalent of this section for DOS) -=== Explain other foundational concepts. === +### Explain other foundational concepts. * How does a web server work? * What is versioning? Why would you need to use it? * What is the difference between running code at the command line and running code out of a file? * What is the difference between Ruby and Rails? -See [https://github.com/railsbridge/workshop/blob/master/basics/foundational_skills.md] for a slide set describing the basic skills required to be a programmer that don't involve writing code. +See [Foundational Skills](foundational_skills) for a slide set describing the basic skills required to be a programmer that don't involve writing code. -=== Slides === +### Slides -The Railsbridge Workshop slides are (mostly) in a GitHub repository. They're in a "lightweight markup" file format (Markdown and Showoff) so they're easy for you to read and edit. +The Railsbridge Workshop curriculum lives on http://docs.railsbridge.org, which is backed by the code in http://github.com/railsbridge/docs -* http://github.com/railsbridge/workshop - -To present the slides, check out the github repo on your own laptop and follow the [http://github.com/railsbridge/workshop/blob/master/README.md README] instructions. - -Here's a whiteboarded roadmap/flowchart of the slides: +Here's a whiteboarded roadmap/flowchart of the old slides: * http://www.flickr.com/photos/alexchaffee/5885335854 Contact Sarah Allen (sarah _at_ ultrasaurus _dot_ com) and send your github name if you want to be a collaborator. Or just fork the github project and send a pull request when you've made changes. -=== Ruby Language === -* For novices group: [[beginners guide to programming]] -* [[Programming intro|Intro to Ruby with IRB]] +### Ruby Language +* For novices group: [Ruby for Beginners](ruby_for_beginners) +* [Ruby for Programmers](ruby_for_programmers) -==== Key Concepts ==== +#### Key Concepts * everything is an object * everything returns something * open classes * blocks * symbols -==== Additional Notes for Programmers ==== + +#### Additional Notes for Programmers * http://gist.github.com/190567 * http://betterexplained.com/articles/starting-ruby-on-rails-what-i-wish-i-knew/ -=== Rails === +### Rails -* [[Rails 3 Curriculum|Building a Web Application with Rails]] (updated for Rails 3) -* [[Rails_3_Curriculum_Part_2 | Workshop 2 Curriculum]] -* [[ Workshop_in_Spanish | Rails 3 Curriculum - Spanish Workshop ]] +* Intro (Suggestotron) Curriculum +* Intermediate (Message Board) Curriculum diff --git a/sites/workshop/workshop.md b/sites/workshop/workshop.md index 8df1463ae..fed7c3120 100644 --- a/sites/workshop/workshop.md +++ b/sites/workshop/workshop.md @@ -1,17 +1,28 @@ -# Slide Decks: +# Materials for Workshop Days -## Workshop Intros/Outros: -* [Welcome](https://docs.google.com/presentation/d/1VT8J6CTuN8ot_-0ZElLv49_-cxuNmXTp83DBonD1x5w/edit#slide=id.p) -* [Closing](https://docs.google.com/presentation/d/19ik5tm_enCNRIM4zaY9rIoeRhDoMMfFUDgNXnd2lW6A/edit#slide=id.p) - -## Breakout Sessions: * [Foundational Skills](foundational_skills) * [Ruby for Beginners](ruby_for_beginners) * [Ruby for Programmers](ruby_for_programmers) -* [REST](diagrams) +* [Diagrams (Git, MVC, REST) ](diagrams) + +# Materials for Workshop Preparation + +### Workshop Intros/Outros +Either copy these Google Docs presentations + +* [Welcome (google doc)](https://docs.google.com/presentation/d/1VT8J6CTuN8ot_-0ZElLv49_-cxuNmXTp83DBonD1x5w/edit#slide=id.p) +* [Closing (google doc)](https://docs.google.com/presentation/d/19ik5tm_enCNRIM4zaY9rIoeRhDoMMfFUDgNXnd2lW6A/edit#slide=id.p) + +Or copy these deck.rb versions + +* [Welcome](welcome) +* [Closing](closing) + +Or make a presentation in the format of your choice. Powerpoint, Keynote, [reveal.js](http://lab.hakim.se/reveal-js/)-- follow your heart! -## Workshop Prep: +### Teacher Training * [Teacher Training](teacher_training) -* [Updated Teacher Training Slides (as of 1/16/13)](more_teacher_training) +* [Another take on Teacher Training (1/16/13)](more_teacher_training) -See the Table of Contents full list of materials. +# Other? +See the Table of Contents for a full list of materials. From 8adc6a9077cbb8029d20229d99feac6f37a74529 Mon Sep 17 00:00:00 2001 From: Travis Grathwell Date: Tue, 25 Jun 2013 21:37:35 -0700 Subject: [PATCH 233/897] DRY up similar 'switch to home directory' instructions --- lib/step.rb | 13 +++++++++++++ sites/curriculum/getting_started.step | 11 +---------- .../installfest/create_and_deploy_a_rails_app.step | 13 ++----------- sites/installfest/get_a_sticker.step | 11 +++-------- 4 files changed, 19 insertions(+), 29 deletions(-) diff --git a/lib/step.rb b/lib/step.rb index 073694326..a8f5e1f8c 100644 --- a/lib/step.rb +++ b/lib/step.rb @@ -63,6 +63,19 @@ def page_name end end + def switch_to_home_directory + message "`cd` stands for change directory." + + option "Windows" do + console "cd c:\\Sites" + message "`cd c:\\Sites` sets our Sites directory to our current directory." + end + option "Mac or Linux" do + console "cd ~" + message "`cd ~` sets our home directory to our current directory." + end + end + def consider_deploying div :class => "deploying" do h1 "Deploying" diff --git a/sites/curriculum/getting_started.step b/sites/curriculum/getting_started.step index d21a3bb19..827c2eaf2 100644 --- a/sites/curriculum/getting_started.step +++ b/sites/curriculum/getting_started.step @@ -11,16 +11,7 @@ steps do tip "If you have _any_ problems, contact a TA immediately." step do - message "'cd' stands for change directory." - - option "Windows" do - console "cd c:\\Sites" - message "'cd c:\\Sites' sets our Sites directory to our current directory." - end - option "Mac or Linux" do - console "cd ~" - message "'cd ~' sets our home directory to our current directory." - end + switch_to_home_directory end step do diff --git a/sites/installfest/create_and_deploy_a_rails_app.step b/sites/installfest/create_and_deploy_a_rails_app.step index d6926e3b4..81b803f4f 100644 --- a/sites/installfest/create_and_deploy_a_rails_app.step +++ b/sites/installfest/create_and_deploy_a_rails_app.step @@ -1,19 +1,10 @@ step "Change to your home directory" do - message "'cd' stands for change directory." - - option "Windows" do - console "cd c:\\Sites" - message "'cd c:\\Sites' sets our Sites directory to our current directory." - end - option "Mac or Linux" do - console "cd ~" - message "'cd ~' sets our home directory to our current directory." - end + switch_to_home_directory end step "Create a railbridge directory" do console "mkdir railsbridge" - message "'mkdir' stands for make directory (folder)." + message "`mkdir` stands for make directory (folder)." message "We've made a folder called `railsbridge`." end diff --git a/sites/installfest/get_a_sticker.step b/sites/installfest/get_a_sticker.step index 62452850a..ef52084db 100644 --- a/sites/installfest/get_a_sticker.step +++ b/sites/installfest/get_a_sticker.step @@ -44,16 +44,11 @@ step "Build the sticker app" do verify "rails" do section "Change to your home directory" do - option "Windows" do - console "cd c:\\Sites" - end - option "Mac or Linux" do - console "cd ~" - end - - console "cd railsbridge" + switch_to_home_directory end + console "cd railsbridge" + console "rails new sticker" result "# ...most output omitted for brevity... Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed." From 4376ce097e6cdb4665ad8498fb794f74919629be Mon Sep 17 00:00:00 2001 From: Travis Grathwell Date: Wed, 26 Jun 2013 18:31:57 -0700 Subject: [PATCH 234/897] Soft-deprecate Leopard by telling people to upgrade to Snow Leopard if possible --- sites/installfest/macintosh.step | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/sites/installfest/macintosh.step b/sites/installfest/macintosh.step index cde9edc3f..0e9c6c95a 100644 --- a/sites/installfest/macintosh.step +++ b/sites/installfest/macintosh.step @@ -28,18 +28,14 @@ step "Choose your instructions" do link "osx_railsinstaller" end option "Manually" do - message "If something went wrong with RailsInstaller, fall back to these instructions." + message "If something went wrong with RailsInstaller, or you want to do things the 'long way', use these instructions." link "osx_lion" end end - option "Panther" do + option "Leopard/Tiger/Panther" do + important "If at all possible, you should try upgrading to at least **Snow Leopard**. Apple doesn't sell it the Apple store anymore, so you'll have to [buy it from them online](http://store.apple.com/us/product/MC573Z/A/mac-os-x-106-snow-leopard) or find a copy from a friend." + message "Otherwise, you can try following the Panther instructions, but be prepared for some things to be difficult." link "osx_panther" end - - option "Tiger, or Leopard" do - important "Panther and Tiger are **very** old and you should seriously consider upgrading, or buying a new computer!" - link "osx_panther" - message "Follow the Panther instructions but be prepared for some things to be difficult." - end end \ No newline at end of file From c0da3547bb14f7e222cfdd5c0cca8e46c6adf5f5 Mon Sep 17 00:00:00 2001 From: Paul Morganthall Date: Thu, 27 Jun 2013 01:02:47 -0400 Subject: [PATCH 235/897] correct capitalization of About This Mac The word "This" was capitalized sometime in the 10.3 days. Our docs should match what the student sees. --- sites/installfest/macintosh.step | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sites/installfest/macintosh.step b/sites/installfest/macintosh.step index 0e9c6c95a..b32dcc249 100644 --- a/sites/installfest/macintosh.step +++ b/sites/installfest/macintosh.step @@ -2,7 +2,7 @@ step "Learn your Mac OS X Version" do message <<-MARKDOWN * Click on the Apple icon in the top left of your screen. -* Select "About this Mac" +* Select "About This Mac" * In the window that comes up, under the title "Mac OS X" there will be a version number. * If it starts with 10.8, you have **Mountain Lion**. * If it starts with 10.7, you have **Lion**. @@ -11,7 +11,7 @@ step "Learn your Mac OS X Version" do * If it starts with 10.4, you have **Tiger**. * If it starts with 10.3, you have **Panther**. -* Write down the one you have and close the "About this Mac" window. +* Write down the one you have and close the "About This Mac" window. Below is an example. @@ -38,4 +38,4 @@ step "Choose your instructions" do message "Otherwise, you can try following the Panther instructions, but be prepared for some things to be difficult." link "osx_panther" end -end \ No newline at end of file +end From bda014a6ddcfcde53f0a5246b8e1020c88980c9e Mon Sep 17 00:00:00 2001 From: Rachel Myers Date: Mon, 8 Jul 2013 00:57:42 -0700 Subject: [PATCH 236/897] Starting a javascript curriculum, you guys!! --- sites/javascript/javascript.step | 50 +++++++++++++++++ .../numbers_strings_and_booleans.step | 56 +++++++++++++++++++ 2 files changed, 106 insertions(+) create mode 100644 sites/javascript/javascript.step create mode 100644 sites/javascript/numbers_strings_and_booleans.step diff --git a/sites/javascript/javascript.step b/sites/javascript/javascript.step new file mode 100644 index 000000000..265074306 --- /dev/null +++ b/sites/javascript/javascript.step @@ -0,0 +1,50 @@ +message <<-MARKDOWN + +### Goal + +This curriculum is meant to introduce the javascript programming language. It builds on the [Front End RailsBridge Curriculum](http://curriculum.railsbridge.org/frontend). Anyone familiar with HTML, will be able to work through this curriculum. + +In the workshop, we will: + +* Learn about and use the primitive types of javascript, +* Learn about and use functions and callbacks, +* Understand scope, and the changing value of the keyword 'this' +* Use javascript to create a simple single page application. +* Use git to version control our application. + +This is just a rough guideline, not a mandate. Some steps you'll go over and some you'll go under. It'll all work out by the end of the day. :D + +### Requirements + +We're going to be working with: + +* [Chrome](https://www.google.com/chrome) + (If you're experienced with the developer tools in another browser, that may work too.) +* The code editor of your choice. + [Sublime Text 2](http://www.sublimetext.com/2) is popular and free to download, but you should buy a license if you keep using it after the workshop. + [Komodo Edit](http://www.activestate.com/komodo-edit) is a good open source option, if you don't have one yet. + +Optional tools if you're checking in to GitHub: + +* Git +* Your [GitHub](http://github.com) account + +### Working Effectively and Efficiently + +We highly recommend you do the following: + +* Open your browser fresh or hide any windows you already have open. + * Bring up one window with two tabs + * One for this content + * One for interacting with your app. +* Open your text editor and _do not ever close it_. We're not quitters. +* Hide all extra applications. Turn off twitter, IM, and all other distractions. + +By minimizing the number of things you interact with, you reduce the +amount of time spent switching between them and the context lost as +you work through the lessons. Having 50 tabs open in your web +browser gets confusing and wastes time. + +MARKDOWN + +next_step 'numbers_strings_and_booleans' diff --git a/sites/javascript/numbers_strings_and_booleans.step b/sites/javascript/numbers_strings_and_booleans.step new file mode 100644 index 000000000..16b360b1b --- /dev/null +++ b/sites/javascript/numbers_strings_and_booleans.step @@ -0,0 +1,56 @@ +goals do + goal "Use the browser's console" + goal "Understand the primitive types of numbers, strings and booleans" +end + +overview do + message <<-MARKDOWN + +## Using the Browser's Console + +We'll experiment with javascript using the console of our browser. We recommend everyone use Chrome, for consistency through the class. + +To open the console on a Mac, use the shortcut `Command` + `Option` + `J`. To open the console in Windows or Linux, use the keyboard shortcut `Control` + `Shift` + `J`. Alternatively, right click, select 'Inspect Element' from the right-click menu, and click the 'Console' tab. + +The console is where we can experiment with javascript, by typing after the `>` prompt. The console will also show us the return value of an expression we type and will display any errors we get. + +## Numbers +MARKDOWN + +steps do + + step { message "In the console, type `5` and press enter. Notice that it will display the value `5` in response. Thus, our return value for the expression `5` is `5`." } + step { message "Try `typeof(5)` and note what kind of object `5` is."} + step { message "Try creating decimal numbers."} + step { message "Try creating irrational numbers (a number that can only be fully expressed as the ratio of two numbers, like 2/3). Notice that it will convert it to a decimal."} + step { message "Try adding or subtracting numbers in the console by typing `6 + 12` or `15 - 32`."} + step { message "Try an edge case with numbers, like `12 / 0`." } + step { message "To assign a number to a variable, type `favoriteNumber = 5` into the console prompt. Then use favoriteNumber in the next expression, like `favoriteNumber + 7`. Variables in Javascript are traditionally 'camel-cased' with capital letters separating words in a variable name." } + step { message "More complex math, like exponents, will require us to use the Math object, as in `Math.pow(12, 2)`, but that shouldn't stop us from trying it out!"} + step { message "Bonus Points: Check out [Mozilla Developer Network Docs](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math) for the Math object, and try using some of the other methods they describe in your console!"} +end + + +message <<-MARKDOWN +## Strings +Strings are units of text, and we encapsulate them in `'single quotes'` or `"double quotes"`. +MARKDOWN +steps do + step { message "Try creating a string by typing `'this is a string'` into the console prompt."} + step { message "You can grab a string's individual characters with `'this is a string'[6]`, where the number 6 is the index of the character you want, starting at 0."} + step { message "Concatenate strings with `'my name is' + 'Michelle' + '.'`."} + step { message "Assign a string to a variable by writing `myName = 'Michelle'`."} + step { message "Use the variable as you would a literal string: `'Is your name ' + myName + '?'`"} + step { message "If you're ahead of others, check out the [MDN docs on strings](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)."} +end + + +message <<-MARKDOWN +## Booleans (True/False) +Booleans are a type of object used to indicate true or false values in Javascript. +MARKDOWN +steps do + step {message "fill this shit in later."} +end + +end \ No newline at end of file From 61a25dd869ae63f4b46f8e426a1ee067c9476b2b Mon Sep 17 00:00:00 2001 From: Rachel Myers Date: Sat, 13 Jul 2013 12:03:12 -0700 Subject: [PATCH 237/897] Add a few more elements introduced by HTML5 --- sites/frontend/HTML_tags.step | 39 +++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/sites/frontend/HTML_tags.step b/sites/frontend/HTML_tags.step index ff0c34619..aa6535f12 100644 --- a/sites/frontend/HTML_tags.step +++ b/sites/frontend/HTML_tags.step @@ -160,11 +160,50 @@ are a ton of other tags you might use: message <<-MARKDOWN + And HTML5 introduced lots of new HTML tags to make the HTML more *symantic*, meaning the tags should describe the content they describe. Some of the new elements introduced by HTML5 include: + + MARKDOWN + + table border: "1", cellspacing: "0", cellpadding: "3", align: "center" do + tr { + th "Tag" + th "Purpose" + } + tr { + td "section" + td "A section of a document" + } + tr { + td "nav" + td "A navigation section" + } + tr { + td "header" + td "The header for a page. (This is different from the head element, which contains metadata about the page!)" + } + tr { + td "footer" + td "The footer for a page" + } + tr { + td "main" + td "The important content on a page" + } + tr{ + td "aside" + td "Content not essential to the main content" + } + end + + message <<-MARKDOWN + Don't try to memorize all the tags! You can always look them up on sites like: * [Mozilla Developer Network](https://developer.mozilla.org/en/HTML/Element) * [DocHub](http://dochub.io/#html/) + + ## Try This What happens if you change the `
    ` to `
      `? (Don't forget to change the closing tag, too.) From 02cbbec965cb53573655a017dcaab13cbe24e659 Mon Sep 17 00:00:00 2001 From: Rachel Myers Date: Sat, 13 Jul 2013 13:15:25 -0700 Subject: [PATCH 238/897] It's apparently spelled 'semantic':grey_exclamation: --- sites/frontend/HTML_tags.step | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sites/frontend/HTML_tags.step b/sites/frontend/HTML_tags.step index aa6535f12..b9d529af5 100644 --- a/sites/frontend/HTML_tags.step +++ b/sites/frontend/HTML_tags.step @@ -160,7 +160,7 @@ are a ton of other tags you might use: message <<-MARKDOWN - And HTML5 introduced lots of new HTML tags to make the HTML more *symantic*, meaning the tags should describe the content they describe. Some of the new elements introduced by HTML5 include: + And HTML5 introduced lots of new HTML tags to make the HTML more *semantic*, meaning the tags should describe the content they describe. Some of the new elements introduced by HTML5 include: MARKDOWN From ec22d9fb139412bc546d89980d4b9b190e9be4b7 Mon Sep 17 00:00:00 2001 From: Andre Arko Date: Sat, 13 Jul 2013 13:44:17 -0700 Subject: [PATCH 239/897] Clarify where to drag files. In the class I TAed, students were dragging the `index.html` file directly onto the already open text editor window, which simply inserted the contents of the file into their `hello.html`. This was pretty confusing to them, so I had to teach them about dragging onto the text editor icon instead of the window that was open. --- sites/frontend/make_a_web_page.step | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sites/frontend/make_a_web_page.step b/sites/frontend/make_a_web_page.step index 74568abca..bf939b8b1 100644 --- a/sites/frontend/make_a_web_page.step +++ b/sites/frontend/make_a_web_page.step @@ -7,7 +7,7 @@ steps do step do message <<-MARKDOWN -Drag the 'index.html' page from your project into a web browser. Your browser should look like this: +Drag the 'index.html' page from your project onto the icon of your web browser. Your browser should look like this: @@ -16,7 +16,7 @@ Drag the 'index.html' page from your project into a web browser. Your browser sh step do message <<-MARKDOWN -Drag the 'index.html' page from your project into a text editor. The text editor should look like this: +Drag the 'index.html' page from your project onto the icon of your text editor. The text editor should look like this: From e0323c5a5fe55760bcc006f22c8718f57be478fc Mon Sep 17 00:00:00 2001 From: Jed Schneider Date: Sun, 14 Jul 2013 09:15:40 -0400 Subject: [PATCH 240/897] Rails 4 routing and attr_accessible changes * Routing ** Rails 4 moved the root example from bottom to top of routes file ** the static index.html page is now a dynamic file at welcome#index and not a static file in public * attr_accessible ** Rails 4 has moved Mass Assignment responsibilities to an external gem ** In order to mass assign object attributes through a model you have to add the strong_paramters gem --- .../curriculum/hooking_up_votes_and_topics.step | 13 +++++++++++++ sites/curriculum/setting_the_default_page.step | 16 ++++------------ 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/sites/curriculum/hooking_up_votes_and_topics.step b/sites/curriculum/hooking_up_votes_and_topics.step index aea6e0886..5a560e13e 100644 --- a/sites/curriculum/hooking_up_votes_and_topics.step +++ b/sites/curriculum/hooking_up_votes_and_topics.step @@ -17,6 +17,19 @@ goals { } steps { + step 'Edit the Gemfile' do + message "In order to save votes through the Topic model we must allow Rails to whitelist specific attributes for each model." + message "In Rails 4, this functionality is provided in a separate gem. We need to install that gem in order to save the votes." + message "Open the `Gemfile` in your text editor. Under the declaration for the `rails` gem add the following line of code:" + + source_code :ruby, <<-RUBY +gem 'strong_parameters' + RUBY + end + + step "Apply the Gemfile changes" do + console "bundle install" + end step { message "Edit `app/models/topic.rb` so that it looks like this:" diff --git a/sites/curriculum/setting_the_default_page.step b/sites/curriculum/setting_the_default_page.step index 153194f87..b4d3c4efe 100644 --- a/sites/curriculum/setting_the_default_page.step +++ b/sites/curriculum/setting_the_default_page.step @@ -13,20 +13,12 @@ goals { steps { step "Add a root route" do - message "Open `config/routes.rb`. Near the end of the file but before the final end add `root :to => 'topics#index'`. When you are done the last few lines should look like this:" + message "Open `config/routes.rb`. Search the file for 'root' (near the top) uncomment that line and change it to read `root 'topics#index'`. When you are done the line should look like this:" + end source_code :ruby, <<-RUBY -root :to => 'topics#index' +root 'topics#index' RUBY - end - - step "Remove the static welcome file" do - - message " You also need to remove the welcome aboard page for the new route to work." - - console "git rm public/index.html" - - end step "Confirm your changes" do message "Go back to . You should be taken to the topics list automatically." @@ -36,7 +28,7 @@ root :to => 'topics#index' explanation { message <<-MARKDOWN - * `root :to => 'topics#index'` is a rails route that says the default + * `root 'topics#index'` is a rails route that says the default address for your site is `topics#index`. `topics#index` is the topics list page (the topics controller with the index action). * Rails routes control how URLs (web addresses) get matched with From 0e953e2e0f6785cf9301f965ebeb1b24db26e695 Mon Sep 17 00:00:00 2001 From: Jed Schneider Date: Sun, 14 Jul 2013 10:14:26 -0400 Subject: [PATCH 241/897] updating rails -v references --- sites/installfest/get_a_sticker.step | 2 +- sites/installfest/osx_lion.step | 2 +- sites/installfest/osx_railsinstaller.step | 2 +- sites/installfest/windows.step | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/sites/installfest/get_a_sticker.step b/sites/installfest/get_a_sticker.step index ef52084db..0da802848 100644 --- a/sites/installfest/get_a_sticker.step +++ b/sites/installfest/get_a_sticker.step @@ -32,7 +32,7 @@ verify "tool installation" do fuzzy_result "Bundler version 1{FUZZY}.x.x{/FUZZY}" console "rails -v" - fuzzy_result "Rails 3.2{FUZZY}.x{/FUZZY}" + fuzzy_result "Rails 4.0{FUZZY}.x{/FUZZY}" end message "If this works - proceed to build the sticker app." diff --git a/sites/installfest/osx_lion.step b/sites/installfest/osx_lion.step index 232acf197..bf6301973 100644 --- a/sites/installfest/osx_lion.step +++ b/sites/installfest/osx_lion.step @@ -42,7 +42,7 @@ step "Install Rails" do console "gem install rails" verify do console "rails -v" - fuzzy_result "Rails 3.2{FUZZY}.x{/FUZZY}" + fuzzy_result "Rails 4.0{FUZZY}.x{/FUZZY}" end end diff --git a/sites/installfest/osx_railsinstaller.step b/sites/installfest/osx_railsinstaller.step index fd8e91567..823213e16 100644 --- a/sites/installfest/osx_railsinstaller.step +++ b/sites/installfest/osx_railsinstaller.step @@ -41,7 +41,7 @@ verify "successful installation" do fuzzy_result "ruby 1.9.3{FUZZY}p194{/FUZZY}" console "rails -v" - fuzzy_result "Rails 3.2{FUZZY}.x{/FUZZY}" + fuzzy_result "Rails 4.0{FUZZY}.x{/FUZZY}" end step "Generate an ssh public key" do diff --git a/sites/installfest/windows.step b/sites/installfest/windows.step index 03789a9e5..518e4bf79 100644 --- a/sites/installfest/windows.step +++ b/sites/installfest/windows.step @@ -58,7 +58,7 @@ step "Sanity Check" do fuzzy_result "ruby 1.9.3{FUZZY}p125{/FUZZY}" console "rails -v" - fuzzy_result "Rails 3.2{FUZZY}.x{/FUZZY}" + fuzzy_result "Rails 4.0{FUZZY}.x{/FUZZY}" end From c4c573431dad26b00c454123a0eb010a7b398682 Mon Sep 17 00:00:00 2001 From: Aimee Knight Date: Tue, 16 Jul 2013 21:02:14 -0400 Subject: [PATCH 242/897] added warning for Heroku deployment --- lib/step.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/step.rb b/lib/step.rb index a8f5e1f8c..b4fb61097 100644 --- a/lib/step.rb +++ b/lib/step.rb @@ -80,7 +80,7 @@ def consider_deploying div :class => "deploying" do h1 "Deploying" blockquote do - message "Before the next step, you could try deploying your app to Heroku!" + message "Before the next step, you could try deploying your app to Heroku! Note, that until you reach the stage 'Setting The Default Page', Heroku may tell you 'The page you were looking for doesn't exist'." link 'deploying_to_heroku' end end From 89bf52a4b1678bfe533e0eda0cae2122a37020a8 Mon Sep 17 00:00:00 2001 From: Alex Chaffee Date: Wed, 17 Jul 2013 22:07:55 -0700 Subject: [PATCH 243/897] insert --- lib/step.rb | 9 +++++++++ spec/step_spec.rb | 27 +++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/lib/step.rb b/lib/step.rb index b4fb61097..8db062fbb 100644 --- a/lib/step.rb +++ b/lib/step.rb @@ -40,6 +40,15 @@ def page_name @doc_path.split('/').last.split('.').first end + def insert file + # todo: unify into common 'find & process a document file' unit + dir = File.dirname(@doc_path) + path = File.join(dir, "#{file}.step") # todo: other file types + src = File.read(path) + step = Step.new(src: src, doc_path: path) + widget step + end + ## steps @@header_sections = { diff --git a/spec/step_spec.rb b/spec/step_spec.rb index 3acf92769..0bf273b7b 100644 --- a/spec/step_spec.rb +++ b/spec/step_spec.rb @@ -154,5 +154,32 @@ def html_doc(src = "step 'hello'; step 'goodbye'") HTML end end + + describe 'insert' do + it 'renders a stepfile inside another stepfile' do + path = dir 'testing-insert' do + file "outer.step", <<-RUBY +div 'hello' +insert 'inner' +insert 'inner' +div 'goodbye' + RUBY + file "inner.step", <<-RUBY +div 'yum' + RUBY + end + + outer_path = File.join(path, 'outer.step') + src = File.read(outer_path) + + step = Step.new(src: src, + doc_path: outer_path + ) + @html = step.to_html + + assert_loosely_equal @html, "
      hello
      yum
      yum
      goodbye
      " + + end + end end From f39fa501afb665a42b4be9ab047bf46f854a177a Mon Sep 17 00:00:00 2001 From: Jed Schneider Date: Thu, 18 Jul 2013 07:48:47 -0600 Subject: [PATCH 244/897] remove references to attr_accessible --- sites/curriculum/hooking_up_votes_and_topics.step | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/sites/curriculum/hooking_up_votes_and_topics.step b/sites/curriculum/hooking_up_votes_and_topics.step index 5a560e13e..9aabeb244 100644 --- a/sites/curriculum/hooking_up_votes_and_topics.step +++ b/sites/curriculum/hooking_up_votes_and_topics.step @@ -17,26 +17,12 @@ goals { } steps { - step 'Edit the Gemfile' do - message "In order to save votes through the Topic model we must allow Rails to whitelist specific attributes for each model." - message "In Rails 4, this functionality is provided in a separate gem. We need to install that gem in order to save the votes." - message "Open the `Gemfile` in your text editor. Under the declaration for the `rails` gem add the following line of code:" - - source_code :ruby, <<-RUBY -gem 'strong_parameters' - RUBY - end - - step "Apply the Gemfile changes" do - console "bundle install" - end step { message "Edit `app/models/topic.rb` so that it looks like this:" source_code :ruby, <<-RUBY class Topic < ActiveRecord::Base - attr_accessible :description, :title has_many :votes, dependent: :destroy end RUBY @@ -46,7 +32,6 @@ end message "Edit `app/models/vote.rb` so that it looks like this:" source_code :ruby, <<-RUBY class Vote < ActiveRecord::Base - attr_accessible :topic_id belongs_to :topic end RUBY From 85e488728c2d8d351598521b901f0805e752716e Mon Sep 17 00:00:00 2001 From: Aimee Knight Date: Thu, 18 Jul 2013 13:11:05 -0400 Subject: [PATCH 245/897] reorder steps for Heroku deployment --- lib/step.rb | 2 +- sites/curriculum/CRUD_with_scaffolding.step | 4 +--- sites/curriculum/allow_people_to_vote.step | 2 +- sites/curriculum/running_your_application_locally.step | 2 -- sites/curriculum/setting_the_default_page.step | 4 +++- 5 files changed, 6 insertions(+), 8 deletions(-) diff --git a/lib/step.rb b/lib/step.rb index b4fb61097..a8f5e1f8c 100644 --- a/lib/step.rb +++ b/lib/step.rb @@ -80,7 +80,7 @@ def consider_deploying div :class => "deploying" do h1 "Deploying" blockquote do - message "Before the next step, you could try deploying your app to Heroku! Note, that until you reach the stage 'Setting The Default Page', Heroku may tell you 'The page you were looking for doesn't exist'." + message "Before the next step, you could try deploying your app to Heroku!" link 'deploying_to_heroku' end end diff --git a/sites/curriculum/CRUD_with_scaffolding.step b/sites/curriculum/CRUD_with_scaffolding.step index 258b9bec4..5bd2c83fd 100644 --- a/sites/curriculum/CRUD_with_scaffolding.step +++ b/sites/curriculum/CRUD_with_scaffolding.step @@ -104,6 +104,4 @@ explanation { MARKDOWN } -consider_deploying - -next_step "voting_on_topics" +next_step "setting_the_default_page" diff --git a/sites/curriculum/allow_people_to_vote.step b/sites/curriculum/allow_people_to_vote.step index 3a9ce3f47..dfaf22a7e 100644 --- a/sites/curriculum/allow_people_to_vote.step +++ b/sites/curriculum/allow_people_to_vote.step @@ -71,4 +71,4 @@ explanation { consider_deploying -next_step "setting_the_default_page" +next_step "redirect_to_the_topics_list_after_creating_a_new_topic" diff --git a/sites/curriculum/running_your_application_locally.step b/sites/curriculum/running_your_application_locally.step index 97bc29b6d..38ec8c6f2 100644 --- a/sites/curriculum/running_your_application_locally.step +++ b/sites/curriculum/running_your_application_locally.step @@ -30,6 +30,4 @@ explanation do message "Control+C is a way of closing or cancelling terminal programs. Since rails server runs forever, you need to interrupt it with Control+C." end -consider_deploying - next_step "creating_a_migration" diff --git a/sites/curriculum/setting_the_default_page.step b/sites/curriculum/setting_the_default_page.step index 153194f87..b195ee635 100644 --- a/sites/curriculum/setting_the_default_page.step +++ b/sites/curriculum/setting_the_default_page.step @@ -92,4 +92,6 @@ explanation { MARKDOWN } -next_step "redirect_to_the_topics_list_after_creating_a_new_topic" +consider_deploying + +next_step "voting_on_topics" From fe1e1a23b388770f869100a46356d27e84346b8d Mon Sep 17 00:00:00 2001 From: Charlie Moseley Date: Fri, 26 Jul 2013 23:07:18 -0700 Subject: [PATCH 246/897] Add the rails_12factor heroku gem to support deploys on rails4.: --- sites/installfest/create_and_deploy_a_rails_app.step | 2 ++ sites/installfest/get_a_sticker.step | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/sites/installfest/create_and_deploy_a_rails_app.step b/sites/installfest/create_and_deploy_a_rails_app.step index 81b803f4f..de46dbb52 100644 --- a/sites/installfest/create_and_deploy_a_rails_app.step +++ b/sites/installfest/create_and_deploy_a_rails_app.step @@ -170,8 +170,10 @@ To this: group :development, :test do gem 'sqlite3' end + group :production do gem 'pg' + gem 'rails_12factor' end RUBY diff --git a/sites/installfest/get_a_sticker.step b/sites/installfest/get_a_sticker.step index 0da802848..eaf645325 100644 --- a/sites/installfest/get_a_sticker.step +++ b/sites/installfest/get_a_sticker.step @@ -192,12 +192,13 @@ gem 'sqlite3' message "Remove this line and replace it with:" source_code :ruby, <<-RUBY -group :development do +group :development, :test do gem 'sqlite3' end group :production do gem 'pg' + gem 'rails_12factor' end RUBY From 78f566f7626e1ea9ced52da66694b797d0e865c4 Mon Sep 17 00:00:00 2001 From: Travis Grathwell Date: Sat, 27 Jul 2013 00:34:47 -0700 Subject: [PATCH 247/897] Add rails_12factor gem when deploying to heroku in curriculum --- sites/curriculum/deploying_to_heroku.step | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sites/curriculum/deploying_to_heroku.step b/sites/curriculum/deploying_to_heroku.step index 2a088688d..bb3864da6 100644 --- a/sites/curriculum/deploying_to_heroku.step +++ b/sites/curriculum/deploying_to_heroku.step @@ -27,12 +27,13 @@ gem 'sqlite3' message "**Remove that line** and replace it with:" source_code :ruby, <<-RUBY -group :development do +group :development, :test do gem 'sqlite3' end group :production do gem 'pg' + gem 'rails_12factor' end RUBY end From 861e8dd67ef23cda0032d39b0b112badbd9d5fcc Mon Sep 17 00:00:00 2001 From: Charlie Moseley Date: Sat, 27 Jul 2013 07:03:32 -0700 Subject: [PATCH 248/897] Adds CPU type checking for OSX during version check. --- sites/installfest/macintosh.step | 8 +++++++- sites/installfest/osx_railsinstaller.step | 2 ++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/sites/installfest/macintosh.step b/sites/installfest/macintosh.step index b32dcc249..df8ab8d50 100644 --- a/sites/installfest/macintosh.step +++ b/sites/installfest/macintosh.step @@ -11,7 +11,13 @@ step "Learn your Mac OS X Version" do * If it starts with 10.4, you have **Tiger**. * If it starts with 10.3, you have **Panther**. -* Write down the one you have and close the "About This Mac" window. +* Write down the Mac OS X version you have. +* In addition, to the right of the "Processor", there will be the a processor type. + * If it ends with **Intel Core i7**, **Intel Core i5**, or **Intel Core i3**, you are good to go. + * If it ends with **Intel Core 2 Duo**, you are good to go. + * If it ends with **Intel Core Duo** or something else, you are **NOT** good to go. Please flag down a volunteer. + +* Once complete, you may close the "About This Mac" window. Below is an example. diff --git a/sites/installfest/osx_railsinstaller.step b/sites/installfest/osx_railsinstaller.step index 823213e16..225623764 100644 --- a/sites/installfest/osx_railsinstaller.step +++ b/sites/installfest/osx_railsinstaller.step @@ -1,3 +1,5 @@ +important "If you wrote down **Core Duo** as your processor type in the previous step, **DO NOT** continue with these steps. Please flag down a volunteer for additional help." + message "These instructions should work on Snow Leopard, Lion, and Mountain Lion." step "Run RailsInstaller" do From d9fc9f2fdff1fac5ef47f8553861079c4fc6ba01 Mon Sep 17 00:00:00 2001 From: Charlie Moseley Date: Sat, 27 Jul 2013 07:11:37 -0700 Subject: [PATCH 249/897] Added an updated image to show processor type. --- sites/installfest/img/AboutThisMac.png | Bin 0 -> 68164 bytes sites/installfest/img/MacOSXSnowLeopard.png | Bin 47459 -> 0 bytes sites/installfest/macintosh.step | 2 +- 3 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 sites/installfest/img/AboutThisMac.png delete mode 100644 sites/installfest/img/MacOSXSnowLeopard.png diff --git a/sites/installfest/img/AboutThisMac.png b/sites/installfest/img/AboutThisMac.png new file mode 100644 index 0000000000000000000000000000000000000000..70096b2cd6d85f1f8abd698ce290c13f5200a1d7 GIT binary patch literal 68164 zcmcdy^;ergvrce|1SwKniWEwbV#NZ*9f~^?FYXS(3lz5&cXtUCcPK7JgBOZJaEF_I z=iYnnUvST!_lLkRvu3oNg<1o$FK$59J7J8F31o`}-#)eW}l=x-aS z{L4=C`y1;fwB>UO_zW)!QaMtpUj~8a)F6|v5-k`rW|HNAs1lWS#Cc+aJ=Up-^BMFm-R?Sq zF{=J4YZ8EZ6MHx9i{weIdQqC-=eoKhZDdsWausbA)o04F7)$Z~iyNm81!?WnCBwn@ zA$tCKH%o&00usoH=1s$b>27?E5yJx6cXAyV!}zMJWXJ`;`Jf+&tS;6I+Av_Jk>(M!D`3OU$xp` zwMF0q_2>FS4suJvf*QVs^g|5!Zh>xG)ECZn0z@n`e$1EWZOU%y!~#kxXAh!&%wJW< z7f;CU#$uns(rV;cFX)vgIl1+Y2x-s>t=#ygMT%`~z=ya(!)UEH<3}AfHm(m&=g})s zc7wb%_5;wKn}zCHwgkjUut&yC5lr@W_9`x2uPlHY5BUqW697QOak@nd~t_G9v6e^iKc)oG!7d~J~2 z5&sVLL+eRNV!1_Xqjm91M2-D<*vj!uXK5hqc~eS@3tk(#pFZVYc2Yl@IBpArc<1O(RY-YPH*z2D3faMF~#c;T8pIcDIG zwuYN0Tkbx`J4~dtSY1~A2Ge)Anaf~SI-F>Xn`mO2nb)Jay(cRFbw@B=%&yq#eTSs` z3bx&`o<#U_kKlo(m0k&<-x1zrC)rXMT*>$E`@AUh%a-=doqU-sw0Jdvnzeh%J^9TQ z*QO~?$hF1tVIxYYJF~h$HDEsL( z8~_jn$V!N*djbzL(Q`EV8=vNXX3Dcq$LD?S4nkG!Tm8&OmiYa%cR*=}x|$I|V(RBr z@Za`}&jgB}>8|Y6zfqzRNvOs%(lAeNIFEdIK4}`)2|qeDlt2w$ezoASl*aSk#v;H{ zaph;wH#g&@sNrpAN|oaE*Ma{=KsCxz?_0TsH_O9zFHoM_XJvmfVZKHTTR+U->K4F+ zptOVe>L#~?x#WEMHu?fKLJJDG7sJJmg3P%ekNw^Zb+Au$tDk(Wy0k_PW{Y4{0yu7< z#3k_S)8WGkYHgCat`2cL{d$Y&#)bxMJG;t8C{$NZFa4a=LuHAjI=+F7 zO-sXk)%7mXVMLEMn?1~ujQd3}Wi)vxW&n||T$e1Va+REDnQsv9Nb&U1g&D3}*N{ve3XQbo8$3zke+T ztH+SU1jv(-;GV`vc=ii5xgTHlE2(N3Id}oL(5$2FsT|9{t5zjc@ zgMqcI)3Zor=?0zENejh3RL~}i_3+c^h-}MngL#WB8iT(W^{tt8l!=Cl_v*OTLwz*C z1>#$EzgkW`%;*gI1i|L2m=y6KS9X^ArIi3t`3)TrLqk*vou2XO^%yP*-vZWYq6d%G zvOG$9MfjJA@v~k7>$+R@0cm|WjU9txAvM{wMv-0YyBk!$Ej3wrA(MxE#U5pEg-L0C z_mFTHvcL`D9-Y8&Aho7WZ9BjHACLhQySw=N)ArhP&PY)(wI|X$2qx)rNa!1zAiQ(Y zuQ*mAXxfQE_BzWb?H?kC%+u*h`#+MbzuHoh;G2X2Q`yia4ru&)LlE&!a3?)S^_ zA57ps-dn~f{^06Qd1tWiMKISH5Foe?LAKqU%rz{!n(hgQufO*=UUt9zM$R`LhW%=@ zEf{2-r?AjHVzlrX=F^5S37TdZl8Z&pWsL7ao`54;OV;oxMjN_k+g=In6kHGJ1H4FF zn%>9v4Yq)1h(S3uQ|aE9M9ul-QZ8fBJC1nEf(W>rpdQ+0-97Z6DNjOl$L53&d!xl!&7(-Z$2CHG`eZ( zWuE*0ATijYHV@)^77}}dV~$DaHasn@zff&?PlDCrb)hBY zxkvRr{e&m=XuVuPEA(w7VgO=_s2ck_?!UC}jZ@Ptcu~g-G!akLZGDEa9>$xuA7#9csr%@Xn98rGbR(UKIY@bH zzKvv1J6Z%SspSn!t3g-w_DqKCgce5GO(ksOhQU8ZUeu?|wc${I==nR|yh5eFJT~%~ zEvb;dQZ<=%A?Sm$o?X)uZ%qIQ{UZb0-|&3(`8Xp*x8(L3+gdimx}`8&YU}ovS)KA1 zYL&T%SQBgw3?qCCUsZc6v#g1yM>xzsYL(aqY{nUtrYD(;d49Jdd`Jom2(c49GCKUD zDq_oSBx|3%G1Zip*^7I-87o52MyGg_$>coQxtkbbA`?ri2>;w7zhzG+VpUUbqErBm z&*ER+h`p(K!zzj)g-s>20K{v$?w)QvOr!bcxx2N>i5kLLu%$&xh$@!I!0fkkIeqhL0PAgD=Z9A? zhbBU0p{aow$^*jGzU#e}LH7j{^n=;*R0EF{x4C?2(EJu)*A`i2b^X29*;XoiZ>9Bm zYcI0ZGxR+nk?A%cH6iu`9-Ac)bb1~ba>41>?LP5S}VB17(P zB}?cfsq0_!WxsXd%#x~cBI|*e{OYNC=^A{mRBmshdR+l6#Ijs6a0y=$R3Fn774wV7 z4GuJNbBh)&m!e#JK%c_O<^Kz*?D`6n>yld)GPkWAv=p)TLyNBISUITFInrR>`d!6y z)%Q*C$g;Cz4h?6|63cR;!Tfd=IzJw4`_#65_2az5ifv*7DoAx?aw1T_w4cPJYZR3w zaN2g&M54XcD`Mp!YyzG)yTwO4oTSma0H~98RVdLs3_Z>-N{ign-&bR?*Vf0t)&dq> zG{_I9v;9{5ojq3VZ|?wVb;C+Do}{)0;UaxH|+g#FzF=BJucc>)VFa zhd)l}h2qy|(hFMt8eXGvNN4B8uke~E=bZDU{g*E+?`hs)v(F*V>zjtN7+d*evbFB` zm$z(djzo0i+&1~n+rOy3ym>RPZ-*QXYT_-V?Jc1R9RS-cag%d?4sknLnk5~U%I#sy z@Z2S(qURWv@tqU8m=v%6uFP$g0@^n_D4ovlr$ElYAcMXq?uH9O&a_t(mcM;DV zvF&tq=jWy-iqFrFr%l@ay}IQ#CAI0rt+ZG@ z>2ZB~6JynB6>HU56AxzG?2U0XAt~jBo~GCaoK>Lwu}~78zg}=OeC*+v!rLeoSwy4D;?HvQ>G`DFBO4s?5X58> zkL&RrqZgOYsUVyLwDG-y(swr0_6RHLaEbNVddF{viTBS^HjMIGxoJxLf^e=ZG%xKP z?|n!5;lrSPEvh{6m*%DZj?><1Sf8KNVqS6466(%#*V0`KmtK2U85*V4^X)ItLe~J! z)yzb;jp^F0waX)$nqSCu| z7oH$r|M!usL53mc7naaGUn%=uEyZJT6kCRW>f`PM%=T{ulbzxi$Nd~%=jZ#_T@$T` zeWU{y_~JAQsOH|`=jgk(U0tA>15Aa~!szZSyh6IY>xTj6^kD&M*_TQvtSbMgbWiOt z0+ng8yY;#${5bpb$~FIxxBL9&kCz=qvsgzD)qW#stvJwamm*l#qf)&K_*ChjG;rdg zwW|K)aear^_`(osvG~Gg#0P9KNC_<_2B7v7cGMj;fgfuY*76)YrKhrYv!|5vlyc$E{)DWy{Uh$6mUx@kCaZHa3Zll0T?_}@K%$pXirKydBefCmSbZ37v%`X=F-?EW+ z$~)Yz#DX12p7zjS9y`|yJe{}k8YgaLekU#`waaH-S4PiHc?NeAoL5tcS3Izq@tw2D z5@yr$uvsXrkgO2BjuRTa+Aozn?^E8rl3m~}>99i*3;QuPMqYr) zTMjB!E>S#g*?ZBtew}#8x^vmY-tosa{qpyF=yM4tR4mO>t=?>|ZuPkHvYOXw8FmDF zKGiHVD5hRyv|+I`6s2HE;HfmS`4c19zyDXU@xExHu02d0)_MHHx;V=zWrgon6PDBQ zn{o2-_q@MVZx~LaWzmXR_QTo4;q7(%7}=b#DT(j)2=8$)xJJ4C+AP{}PDf3?d#*~S zX%+_Fdil7~*Z^+ZMV@NvrG7*K+n+(ug44NA{U!A;N^=55$VqPTs2dhG7=_Mo()qF7 zlQ?&4fuqb?lcAIwr%$L8HT9(3t>c2ARftW$K!+!{4qEq67gm>}80If*IIRhf{fnw% z%_x!&jQ2d2sRv6|8c1BFT8y7ZY=Ye`m)z2*2o|jPvHSomUJ_zX`HQMD(Asq=aV!YZ zvK96VWeTEvg{0Us3HmMvm)ovvSJf;$fwo@C?Ow*WJ+-j+VyV$lHS0vy^lb^2P(lgx zZ`|-`*P~NBw zy82b8vglVlLv!-)mmMBBuO^I?o3>erVfijt?wfD!ONF&`t2)9d{RZw2L28z;yZo!V zJNqwMr5>Y$xq&=$d^ewE>bYys9+`QYb_bQo49jhKN>WR;(H~i`UY<`cT-5*R{Uk*- z#-_nC@&d=_c?4I`7-VD6`rG~0dtD;daml~?WJ%f3&zS4DLU*>U`{ir36Qcpkt547w zyV3F9g4;LL+%GlS8;R^x#2*JXpwE5Chp|nH^{)^JWVnjnHda+|0bFfZ-tl`=4ah#4 zWioHT^NY8_YrMr~>tnY6(+||EkDZ+ETlnE6$K|$mYUOt#X|_X+uUF%oOS8?y`DP6p zG@y^UINm)?68F9A3h)8yjjdqJbhs^rAM@tsN{)VWZj=a`VhXhGuy3X*7xQTWU+EQ{ z@P-)S#!(@|yWtRWvImoO-~u{XqI^-6D0H2SP}qnKWY?vFgb<^PULG#a0HbS? zS$R$hNOo^`vONT*`-B+mhY5mU6e1%jZ1rgE6l-6t$j;^=> zk9F+%=wEXW9_%nJ5s*pA z?eu-c??heDbq!xGA9r!CV)kZMQ!9D?%N^O{_dRrJR%j#7wEtY?RX+}@454m0(e~<- zO_^A1gO5PM*-Q9#BlE{q#ZSMSdD8Cigk56T_B~a3ZNvJ>W$5oRh-up>^MY9_ippj+ z+iFJlb?3@#_m|)L-lR}jSLPYDTeKgE9DCkBW_vWHS9cC~oF$(u@pYc#z%0$ElM_kQ zdp}RTPi^tGtB)q_OucNmLb~tIwpgNN>Xc^f@zP^@J^Q&)nDdDDep8FRR@r|iink2* zBK@{68AO`~=6K2%PP`{2@af+9DvD7B>IhXgsziIrtfo}!WBy|lMk1H)3bb2mD< z_#(&68>5R%TgtqLNio8w64Q0DBqG7Ab!CApju3PXDeXS#rF9aa9+0q!s>MS*<0jm4 zMF)I27#sbO$T|8!*kn)n70R!gGg{i@ol|VQB9sr>dPY=Jb16Wis;6G}255J%98C#r zuqJ)#xc@X&yc9pt3 zb2ODTN{RRHk10M=-`w$B&CSHt+=WT`sNcW0R9+Yfb9bnR*>@~SMf-$b&S|D058yT& zJb8s5347OUYmGLQKYNEBUFTBYinI=dS)|i@O$3y6zk41rvRf6nI-OEhPfKQBaG78y zTDWjj5wjSY7-5VXmapuY_?1U|8P!I$(YT+LdbO~{W$c`lY*K6*kmLVSweLlx;uXZ- zH~bJ9+wfcM2x`L!`()SpD;AI62UdfwpbP1;eY|s1t4Mc%2HiS9;fD;X{OAW$0rt zpLGx)w@DDlq%Rx^UnpWwLdf3pGX_1PkcEZ}f};?gn)u{AC5dq$)$tO2{lLc({p(Ey ztSfNt?$`sim2O|h>36>f$qnYgE}PX?NWL;@H-4WTFz(%PkU7VUQ!9%_!eXLB)1Cbh z+4rUUT!oI|s|GQa&@c$v&CQ=!7zBt+L7^jqiL3~%gD|gyF1{eAnDbzaqmhX_(T*;sc^HvB7Vs!rDe z)Vpvj{OtmaE+tr~weX_~zO!}Rxc z8{=C#$}jO`nyi@h3OBx_X0`i~Df>nF6^)lsXS_L`nzfBxoL??FpeK*1 z3-g`cSw}ywwbPrW16mIqw3gyxGt75k~6_gHDzhxo@30s3V?tSb^Wwse;o}>Qw~2qV#}6JT1Nz=6bF7 zaO8n$tngpfRsi9TTs!#M`@~LF$frq;Fa4(PE9EY*6Bk3$=YwRjIem1~8@~O;QGAM0 z-pF%a=nf8=wZ1`J(^#tNTBb7TQ=<|kASC%9p^w2A0>BafvJa&8&)qfC5$QvX3lqg7 zaP9M=H2-tu89C|`s_~+{fL<|))^;~oi@{-&qdWX8w6jj3oBj-UDF=({CO3qf7$z@;qPU`v%tZ0NoeJO08ae8 zoLYHe=hR%4ZfMFG}e2E&z;StTPjY6*~(q$xx zb^rH*q@E2o>q5a3tqH#(pJK7PEJML_ZP}uMxM~BK_(MzSx3SG$)lvJjU<>sDdJ+%^l z9jLAxmhiH|V;PjiXNjS8=mAQhi0NYUI<+alaW+0NKJ&ccDdMY`MDgE}O|!j=LpJG4 zzU3#fLF$(bWUihu8&6J7rC$J??ad8?q@MqW9l~D&Pwo5#liWbQ+xjW~>J2A- zLsk2Lt>bh1es6jQ_IyLRX;q8Q-#@-d1^;0T7?#b~IOw-gqx|j>lET0AW}kYS_C&LP zwzOA#@Q>3w(A77h9ek|e?0&H48GX-GE6elgyC5W&pn_f$(AgOWDl$PxqS5yN%X>9m z2ljo9{Z7@6IGpX?F=XMeGcB9c@bpjbf9kniTpPK!(JRRtE-{wGmVd7@6BI9k|)`V z%hj)<^F85}#bqQBGz}HojYEYOK2K@278} zO(;enEo<9QxF-agmL^H_NH7?E8-twhV%$>FNsM6=;oqzmic#nvuOHsXlyc@}&^f8S zwcyMi)+k&zD8Rm(uC|Wo49AUd<798$#8o zIg?APc)Jk=_Q$Jp3(`{LiNY__E`49hA$hysf7QYfuBm+@1g~!v6_{^E@uy9%c{A^A zoiHRcjBn0B>0%jTN~efG%@J@J>b5qj%_x(h39KC#r!$`pGIwcRD^HURMQ_8`o<57) z;aPX;GY;y-93kEGR=|7Ty}=~@ZzH1I{^AMKJ~k12Xk^nCIR3-OkMj5p<|Zz%&fi(x z4yHdNPZnA20wM=uQG81*4Ud!`;cD(w0mTyGI3I*+n-gH9DFWiZ$7V{~ zfy9&V`ghwaLqSNU%&!MfS<{V_KR(E4e9+I7e9nnRQ%P#A>_G}NfGe%&~z^KqTo4l-P0^3+jvyQ zn>aKN^Cb+A&1vc_ykZ?X#mUgM+k{ZEAbxg|F1%Y7B#$J%>BP`hS#8_7PgU%VIlZ2S zb;8uYz{JqalR7UoM)uS*=5Xmu z*-r`N*7^R;Ybr;|f#z)n00?#$?Sb=s>Ye0oLT`nemEPx}+{nTV2r0?k7qz_6FxV4Rahl0|}b{FCnOlH|T4CaNJ~h!b^WeZg0&L?A=3 zaP?1uIpnMN{A&nTG6$jr>8UnHxc!>~%8rm={^W%OjQ@JVl9;dYmLq!G3zITC_kwO;y#nn#kR5 zKCj!p`t=DEX3y)iDS_TE&))v~YS~5kV70v!v4HkS{Z9$w?+|B_*^X{&dMSM$mCN3{ zdV9VDJ8D|9UukixPgD~4CH0MTBW)uLhun57jfZM=dis-6eY6G>(GCs`;-?M}sr|Q- z*nmEZ;}b;QRKt|z*`p+KYep{Y-2ik)lxo>0P^+|S^A2&>58u|wT`oKSJCbd)AN=iT zm?(g{^+2EL0@)70S%k804+%Ic;K?idnmz_yKs4@W&)wbK+46=B^GCTQS%h8HB=SB$ zHSM^60-8FXA5VClw`2sLZvNP94<|$YAH8GqM@I?IYFHi+iJIPtLR{H-OM>PGyuYr*5@KZieevRnWKn?QdPJ|3P|to^}gIL z|70&AhJ7vLp6j;+#)Z8!UsxGO*8m;H{gcIbMk&#HqTehD0J{=I4)y^q(nP1Ty%!I| zKHcCDLR=@kqdO@UMWk-NPd0Yp=BQoTTg~^!tw%MzxQS8=#B)vuu_O4hs zf~m21u{UEtzwC3;ZV+sS%L!bE&J;QHCA`M-rH3xLf3g7B&X#FZJ=QXWZM=h^VdPx` zeQz+0+B|E)qm*@SVWBVo5+o8gXS#+3nDP){Jdua4E!Lx<{8&4fDUPKMFa^`xKLfya z5m!f?*vUVcfyQPN>$%}n`xgKjmk3#`!^8I7#(8kyx=pIdCY}E!NlEZ%%LBzZ7~6Pg|FqfZPle?~mcJ5z)!b*#Z>1=`S7&9T zg13n%bqHhso-F0;07d!CKf;lMuF{J_gGQ?H&KbcO5gG+{>i157b!xjPC$!IEdU7=C~w+3N# z6Yu=zQmVBL(WrL;j89v>hGmTRQNA98Ola}Fm(r2H4QQ)XOv`O?4fCs_C zLtX%M{D>WEup}1xvyL2B+cR=B?t~+fo&{tj7NPQ72P!uqdh%qTbu@lX5Wjco)Lgk1 zJNjEl6nZpB1({Um^*>?-n@(L{@BQ_OgOIR~m1o5a18EokU*caji0(aZ+aUwW%Qu1m zdEo?Ef|7p`NiO1bfDTfwFpv&H&i6q%OK1@oL2pysdFu+xUBlhZWyYLB$^}*8lOM&} zy_+dgJZC)vepCw2p+qWMY4JE0n%V_O101Si`fCwQTF0GC4`_aj!0-<0D-qlSX+H zAy*ilCe2U#-RRU8v>aqKWM+ugn@g=jTzbI=GISiY$^3vbfH$zAxn7xgOIzdbS4yT& z;OV?L6`x5^Ryela36TMCV5`HbEK2YNRXXbS6Qf?To}m&8q;Cmn-H82Q7i?P<8d%kZGMxlerr ziZC*--of)C-_20+95cx@4Kv1Jk7Xxmbg5$2WOkiQWu$)Dv~jHy^*=8#0c2L{Z?%^_ z*8JR;N{fG{pmgDdhozu0Cxn9`=z`oW80AAnhtUoAc>cDY@EV5jN-m)g5X|YjO>u2_ zO<_U5`8l?~xiPDCP=RFt9TsQ3#n_q4(CMH+Yn5` z3gtDCDlZ@brv$2PT@isOd@!-F+%-|_yQ66$@ev4aT20eyMEpTpk?~}B!+wiei0-5U zyc}&nZnwJZzZen0IOP2yZn1{%a5S?=vp{I$$l0U>$Eg zL6HLR(&T7Lg2Ejh$+3(1ryJ)6=$(OQqK93qjDRP9okq9&KT7i&FjT|CaU1{?IF92p zF8aN~XG8Rl+LSrEnEUbX7Bl4$Awf{f$Dt0Iu`7y&Vnxb=M9}Odz?FP@G^L3|(*|I| zUY9n6tks#bTVcs-p?9XGeHoj#Ycn8Q0*uM|Z-B^kvHf|y-=kQ}AgD>yN7Ba+8MVX# zORP4W=6A3k|JMJ$(H-5*Tm}OJsE{#jOp64;z#C;8K|(*43rK;|^R2(sCEbbpDUQcM z!DUtxtm(9%x4emDw~cJnBfy1^zF=pyv@Y&zUtl4I8lCER2I`>wK@V+t z2ms){8Nu`*#10vP*O!%f&baWJFsy6b)i-S5<^=L~y$S0$|2uXb`W=Xjwx1;9fWEP? z`O$k9__u;`!vtOV(DN%jxa$}}ySbJp4+Bvjuf6_-MC1Ao^LQ2s{>q<`1w=DntvRUz zi+KQekL)&HlFtLQPK9AIzCMg$ZGFfp1%GrJtm2J|x*q6LORi?=up7icmG_N>sD$gp z-1sLOOYAb9lM)o?kWr_++2h7}!;alVKux=*oQW*q;g%nu@>{ZYOrlevU&bGtS~DQW zGVsd=XsIF-l^cSIQ(tP`4lNeia0%!QKiNHZ>8lN37kvvD11dWKzbwKrOp%Q{YVZNU zj9n=cF30r~A{{-W9N!(M853W}B_kq61-HNta!~+j^WVr=$_+Fbq~#u|w|(Z1Iv$#~ zK(0P?W~YkivGJMW3HXPfoTgWf#z+r6aqp;lWXbnN>>E0;cg3i=dQh~1t_Y4RulaCrTDo42$=+&}os=)+)2rQrjh}kF zqNJ`m9@1Utc9ZWCQK* z2=B!E_IVOOFISRdgVDXDr6?HUku8$<-%jRFuG z0__WWS5iP-tg8f+r???VUCcnB;jV>h<0DUuZoFid873aVooYpj|Ew(l#|i4_US9)`4=GwN+V_qV$uJN!kAo<2>`|bNn&{2@s)(Qt^(lA{Jar@ zVWtaMoC@#4ZUWZUIH4o{)?`6vvK&QhH#kLzUfBI+C3mXYf=hTp8}Af;!6ci5j5x1D zQI1RoQansR!8j$*Cu+Fz*gw$L3}}q+k_6m zms$dJMf>t1nQVndYwD=!sTF7$0zM;5AUy$LxQepHgng*rRcGGVo{n>%`pm-49N39@T>~JHLZ|v`1;`%S>@TIThZxrR_>!J4-aPCnjq_2~ROEnpfGQGGF^Lhre2Z#;;iDG&90KVe{S7AWh1W@bx zs@l%v{MOsD6*Ks!b~f%o-D2u+hSi8^ZG`q8&3Fp+thJ?il7z0#~_MuIzG z$BpRJo1dU4rj^~WAUq~q1H;Zo4#~K-5CyLk<(nLs28EKf!*_uKCvJn$$lg>V#gkZv zBROa1X;g*Z2#LD~SYOkdsYq?2L(ZoRDISaflXr3=qhZ7UK$6f65su9DHNs3OWs3+y zkZ}QION8Qshb&IeI~~!WB3X}%S`4Ih3b)^?9Uwe12uBxYCvxIponSrlry+n5wqNi& zPxYdSuyDb2G(|ko9gF?=e5pJ0vf67-z3eR|f+0j@!dR0mbCk`~SrM0J;{{toPYiZW z?*>*wub%zS{=cI?SOG$x=8Z4i?64gxP}puPvfnzIcbA`i3W=GPxU0yVMZrYBSf~(I z@py>@*T)UaR7en&CfIGB_ei1(b>JfqMK3z@{-Ihc}{)XiG#pd8J%jfvCe4j~4 zsPA7oor z7EaXRSNa$@Ob5`c?S;b;$$dNl(Kq)crjQkHE1sn=|Gu8w$hw2e`Y474-tX~HYc@{i zGIHuC5_ubQ$3TNE%On_R%yf(lMDhKT8X8Z;s+lB)SL@hGa~^uV;?cR{4zufcl_sxh z%J4yy$p(GBpV11yj^({EUWDoK!48rK;M%O|9)b%x=6y(MkiJgc4F+Mo27w=H0z@Mn ze(3w(Zdc8IaxyEKkcB$uxjoNA}rzFz7Ct*YED4cH~{_XkZqt z2sgso5n4h7RlBd2@b&I1L`Iw%NDHx?E*N=i?HZ(TQSc(ANKCO1WqAfVN&&?(iZ{^q zhR-mm>}I;K6sValz($ZmB1&vs!>JQ6N9mNzYresS9yZ|XXOB4dMg)nwS!yT?M}nv};Fq3(%5$-T z50fYcA)%B`M~m!b3jJ<@z~Ah7@#r1c6B~m_c&>;FQ~rEO*m~!AB6}fn+`v z^cuV0SCPHTa72_V_=QAePQy+W%L+7|%PwRRnr@~)9~84u6W^FN2LbIDglvHy@Baj= zJlxJ%fOw-=?x_~sCOs%dl1D48sqBnh#h(PRIIsX% zoijjtIYN_#?{Z6DtG6;KucUM>bHKna`0uRL)}`1uHiN0sIkL!RV;|!V@y%e^gU@uU zlzYm>Nutvzg68#|4bzYp;+q*+D;{erfk;O&wDeBR;y$pXqid8%Ve3uWrmJQAFiLLw z)UbA{@3(50j>qiQ!9dqnXIwYUvk-(rk_g>G+Ttzg(AeJ%YS;1%8b$q8Eg)4j+=`ejV{| z06&Eim#|NA?kpl`?wuMI7rRrqcYx==e-~ACKHZS(A=JLMaMUCz4r*c!*(m1f>Qql z{4@wVbNww0+PO>SyL342-`|3X z#bidx_=?3B2#}l6Ct`-l+YI9Fjm0AcPb?=&^>7d#V9qEl^ z*Bc`w?_u_y8cGa#6P>%aigP&M>q&z&mZPA(P)E5JzJ_VK;iUO_Z#yGsd8|c;?~!Vqextcl1OMrQEl9 ztvkdp*euevGpQ&ij52!Icb02Kb$qHlXk|uBf0YI7F55=|ve*9J}_$ zg{7LRW!7?aw5PsF??_mEUv@(%L`UgwxQkXvc6X@a5>=_!KCFxKRdwJ6aprK8FMtN} z1>sx#i`SF246Pk}U@+U&HZR8@$AF!dVHFh9tU2YHTBKX;JokK%Jy&CrIqPP9ac6eEe`pWE zg_tPeRKnA2s%qour3G>-jXGDutF4Ry#zR7fag^)mpj`lWSg|j5M6$)^N5YUWe=!PI zIBh_K#Nn6A_e)g41{!JL*TNv{AIN4rHwp6ZYFFG>#{Pjpuf%^{fMf#Cu{0X&y&<;B z=^NKti;bdRS<+&Z+QQY}jTA|=@a}fYio#mFZ46rn<_>~Js=RZ*wC)pwp7sj0C&s8& zTJ#L&rJiph-o32-%Tu12l1dAywvF=9$^?`U#+fV?{OV>cP8BmkCfKcNfX?wAXyyS= zr)~g8ZX>Bax6Ul4Fa!(zcBHClDV(~drTw~TpQwK=YzTcdbCCvJ6a!-7?|8QLON3kG z^0!*F8iVg)#tqH0=KCmLY?oLTt?$ww1}lph{bQG>~;!KWNyF9l*w&ln+%B z{a)?f$@CYrUe5Z!NpWk+bCVbK?retE=cL|4C*3XRUrzQBNe=~OL}*sl1^GUmO>dtp z^>Xh(6%|LmjC=Hu$E9VlOH32&TM(@3q1XcZX5GKldSY$hs?XZwUAVa7p)HmsYQM!? zPF~nSU#PSq_|*@Qckd^JX2j4rP%1be8V`^-;-lEHVQl3e{@ShXl>uE5>H5v%)H&h@ zy#UBc!v`P8QaJ1LEh7dQjf)S2tqX%D%*j~Yw=?kZTWqCTn9<|DRtIMqNPM>J@eQAO z&RYaJRF^Xz38Gov8@;gXD)BHvZ~d5Q|Jwgh)ke@NZ+q1>M8n9b{aJ1Y)%{i+m(OQr zL(}E)$fBOAe$JzF%r>&C&dho3p1u5W(`(KE0{z_Y93V@&dUaTyYPv#Z^Vsv#;`!QU zf~jdoDJ9*rnaKZCu)O8Y*@pktwZ4Bs8%FXp^CI9$FCMLe>G1BW?|X;K-dW zFmJmvl>#>KGP)xf$-H!j<)oIXvYT>|GXUaH@aiVvh&THd*!@qj#Q)QL^25L?;rzWV z_co?1_teQSwZZo%E_^G}hg;_+jy}N_zYZF0n4{k+KK7g00VgjqIaXt!E2&1Pp-Tqj^a(s`Z`6|q2 z?24+q<~W5~aNsZuHkRex<7|2b4H950+DE1~6*9fO?t}qr_BX-0N~}J&)Q<}b+_|5&8cpcuADCkKkAK?Q-hR4O-}Qi1|L>nH|M|~a;m!vv_v7=e>hL41RSLrf zfq7$*Q~H~c0Gb-W!Y|6WapQb}WYT4mtp9-i4pMO+VF1r6%>zI3$Rjp$=1f1gJ8%q7;-xm%j8?XrJ( z`l|E3Y^{e02#-JBavBO3{`5DYWETy8pR>YGe<96pXRH3|*KB34zSedB1FcHm(a8Vb zZ>%tNs#P6-qS^2r%>;tgC!TB@`VX|J|N58p)G&+}2+bs!jS>K~90o+XafuZLDB(eXp3lifF48W#ful)Lk~S< z_uO+&xm`%h*=F_t0-mJdi6QXDk|$S^K>HHdDj-;BQf2}yUW~i-!5;3Yn|RX6w%d_M z6^F<7YYuPEF;=+wUzU5{yDTT*K|{k79)HT(M(phF_*1xda#6F?3)3uMZD1ip^Ld3O zT7ec(ZnrV^^y9N^=#E3I>$n50RUnwt1iCGH##!XX>}J-ZmpyR9jkf>93D#@;1Zxur z+Uj-1EL!vd9$fmq#`BtcT&3aGa5T}(+*6S-{f&7wR%y|+B9MD?002M$Nkl2pmKNZLL<0arx}*ijkbf+wkOr_L4_1z2!#3g2k{7(m zFUk~U4Zg`v5@=5XTLlC?BYldorzXNDXn4Z;%~e`x0QjmV9AI|O{Z`m5!aelqo3bRsMQdS7ldVlc4*82Vro2}5s=^Y1J)qw{U@ouMGiVZPMiy|7f=7x{5 zycRbKfBJ*v&N$O->^N)EVnr>0DqaN*k*bb3%<}g>U~RwrrFHw*N3AgPF>AZvf1M9o zZmPt?4jpfH`(2h7unvC9*=CPu@8bVyh>Y2FbkQzpe0j}Zb<>fpIt|^}*j=TUH@!?n z5w-Uh*<`^At&Fg&%mS3chEF9;N4z7Pv;m-iZZ>_EFYatyq)&E|z@{WnRKGSwvDtCb z$@FVonEkXB7A}@s8=e)!N-mv~Rl=oO@w17C`p`2!?GdxLyv1z5AbVJ=j7S63BuMS{qs!fE7=6*qfz&dCnUtvgznckx%d@32U+fvQ^j`&dr*_^b*wgPSk+Gx@eF-6324=~{>v9QY)zBp_8DXO ze`rzUs_U$(q0ZKcq(NI|YM<6t3-K&G@_-gW-e*-u9BDS;P*FreU>gG>)`7 zydCuNRD~pgO-NvifFMJkdI8hqTW_`I(lD}CepU>Li(hZHQg9{HLmK`n&=)%f>tMd` z{nGXZHpl)``@z@>Q?D&9%}wk5GJ|0{49}_{!yf?kIejgxpXTlAM(kqEAOD;c{zvnG zeWkZ8Tkimv`=0g+O0!$1y<-e*Z@v0z*GO4aZq?DcrgdwzSlr9T=?ECBj1TFu&3kXZ z-GLSW@2l-GY_?4cBb(?sDJn@|JCVR^2EmZSzySlSr*`hMeF4KHIa?^g0EB38oGgf= zPk!)r z%9TwQb=w>}@`4t3)*oTmkx%3we&Uiz5=au*x)RtTAV?8;aRCp%t}4nbVAPvm^eJ9M zML>gIaq-dzIXqqt0EkC}U!@l^U>X@MerHeK+} zhPCI0&f7E^1R}XPy%J@MbU_zFOt&p%wLN zy}+0jO(m?-R6s{%BOKFF8HfuS+^@xuhySR_MthH`1Imw_31iU+KQ{DH@5+3G7vX5; zb+u}X5@-=dnaPVbgjYv(2>!HvwtWfDmV@*`OI|hlfefC6lMfragN8CB(|INEnn93` zM8^eWy67qV^CsOspm{;9?&c1fU^P1JQP7-RgHC@GZoCcz;$W%e4nNYG1X#`5pzQN} zdI{81U2}vd55_xh>E%~ox#PwQ%A8{5+#}!{FDB`U?;$`cgD&%IbK!=w^EvTq1;yftbTXZ4}#tPPb&!g zauW`*hTi>b-I8a0uCqnpQLk-7bo#0}utcxE*HJ ztXY2X0d0gKj$6t3L4#LEhIWBJi))mHeuDwfMvort(m@oRpos zg4QF_pH3@**9?M4jt$XG03VkcoO-;Oj^y$Z)?P8mYEM1g{Ju+WnSRqremu?N=FYYa zJ^T1kxCSj!R5K^14xZN~s4W|s${HdsPENN6!!fjk2rKBiro1k4C7!1sH`{P(1bPJ> z+iO#K)(L>SX?Se6-C}L$zSpWRyu@m?cMz?sMlT;PQgul)VK~jvyfsR*L#tlKkG#e5 zGoQDr+itX$2}d|j(zJ=LTKCj(TXtSrC4lCDm;t4A;-7EcV1st(@GYVMq&MI7ySR6RIl6Xj~t+2&U93auFp((4OAN(N}( z80zFSiuWHB58eDf0f2xFbENE}y!hga?Qehkn{oGFd*;X^kF;~nImeDW?l=cc04abl z01z-`k?J4+_=of25`^{)bG_gB&UcJE3IQw9XAR{7%;wIWYwv#dyR%Vt-g)QQx##L~ z4$+W~GQi`z-~F!r{qH)4nK4`nn=NA|Dmgo$1YR=;7GE3=i|AKfoiBHwPJ}$BtFp9> zrES^+*5%aGtf5<1o#`!|*WGK3<+O)TYJpx<^Rv3Wdkb)+rRfdUm0KFRSWmx16L3W{ zK(7&J+n`R}vY}bS%;Ig-%Fy$zt_CDA#g`^0fDyV`UclHzmvMFhte$(`?4d={%2sL- z#cT&{gUO4gK`#}cBQ#YS0UTVOT_SB&ANcw0x&ZJnS;41VQ|SAFF+z?|Rp}?9YGxv-3iu`{_@AYNwrcns23IHvrly zcNYSH>^cYy^84TazF+wTO(p-$l~bbIz9bOnvBhdt(2HU{8ZGzc6Lfdr4VIH;M<#`P z{$;jHKg-qXgf$ zEPwIutzI|7H~`*zx8>h*l9`6rHGt_qZ?^pV-mdGgZnwg3erat-iqD76vE03PSyv5% zb2ndag^Pagbu3);2c0VUi(kjpMOswh_rJ2Xv(NDFqO_g+NvodvfDITpz~}4oPtMXE zg}U)ZSNsEdg$sXV`SU(+cHf=W_T~Sywl^JNZD0JX)y$itOJ1dI3P3iRk`~hRnW zDzFc|+X`1)YK5yNS=$LmsSaoA+OfY{S82fbXCHtC zFtQpCu(0Kb4e0d4Pu8*1x8R34k7{IaZ{BK(R9q-Y%Nv^Tn z4*jg~yNj*usN-~I_>v;<=t9lHpDq)xdqs?%CSHql{7&BlDLna9(Ld`+EBxV7YdiEv z%YWkwnuFBj`ftTYcNrEI%(cQ|X@J+?Y}S8}fI^ot2t>q10QR4{$n_)ATxXee*B9q5 z_?fltKTdwdOA{>o@po4E&JW91a^?U2S1X+VW8IJ~ZC6A6!qfAt@Pq%c)=zxIss*UE z(q_;Ai!X2%5WSc${v%+?N#n5v^R4jxpIAY>b2=eYyH@)Z&w0D$&(%>r{a9!fLFM{i zYt?bW!t{qsuxa`Es?%>S){lcOi9PL19Zy`N^jBM6XQ!Ei?4s#~q9*#{EH~u~t&O4P z2S4~h2RA?ukXkCu{bxV>nO~>>+u#1yKVWp(WtZ7deKQ7n00;2;&2N5VS6p#LdC>&0 znyNb+|M}qXh|H)5&V()w3`{$E47rx*-1fZiVfB3^6{Q5Q)wYbEU@-X*@;fl0RfBMsY=ODvmfHIjR0VJ^HdxA8x z!rFC~+hwPsgy#w7_K2#;qgbU@Qv@9?K{S*A9~WNufEx;@3__D z^I!g=&oN5%E7I$QbX3F#cwqFBxnbxilY95sR`bL&R&%=+8qPS`!wL^SWL4*Uz^c#$ zmoC;dU6)z)*UuMltTcO07b&30-803iuM`M>UKcXR6lTwH+s{AaD&?0OGR(uPe)v7B zdF*MczWFw@K{_LStpIk>LLW}MmeG+0hGLdg&iIlP_a0(&g%>7&{|65IgIvv%H)Pky-pAU#{1u9)K){VfGVG zJYi?P$}sChLmGtG_J$E;D?Wuz$-9-rw_%c;}rXhuKJ=3)G=pnBdp5m#)_Tm2s&pgcvm;9|r6MsvZXBkX1w8!KQJG5wz z7-hL#RVU2a)mi|Oc8Mlf40*}lf7`pXn*1Vy3Ge3#Aidtzgs-wRE0&{m_{bAs05@9Y-FM$@H|sKAKGGCJ-w%E8 zL%!{auMcjHOuQiJPp6Q;mIpxqN!v>F(`>o7YM$yU&0F1lr(bcO(-m2^MmNj2(JLAl z*1d=3!&>zj%omE7&{)!RG_=-oZ;{;X5()+gmN=EIl7<8b1TdE4^zymU3+P7YhugmP zRm-1ry5+y6Ik!U&*9Vr)D#n#Swdl$G4IU*B@`VfL6(K3T;Q4mS<~7itI_;BWzhoVI z8Fk@n7k%TH)m=AQ#9>jSEFXb2bA;<&&{iG+l=TvAv&v2xN+Qu)UEFd6gVG`c<)H3> zO&Pq4Idu3J&;fuR)5Q^NKu6OH!#6uZJIf9saRXdvbZB$T$$6eic;9{ZIk2(7GIHcd zX9Yb+6^TRRLqn|Bb|Z$|@W(`Y_iV-=fRv9s@y!y3yMQoP@S|zs2NcPNMH%KYDKGmI zUk+q9BkM%69Z6uzgJ1weqt5#t`z9+)xz#f4>-?=Jm8^#KQ{@Xnqh=2AmQql>LgU1hVjJc;rc^-tYGi z<~09SvqZzI&wW8l#>FA25<5+YJQVN12T#DOWFm|3yIqRU3(y5)HmFZ;>me}g-?N8S zoHb;WhU>X;!%dC$CTb-blh@@BjgsZK37T8gm-=jlrWkhDj|d>gFdBnZDr))1!XsYU zA2cI0CNx0|eul1`^JZZr=Fqa>0SzG3R|`VWv4w_sfDbT5Ya||R5yPrAX2ggQ{!L)M zH}bvjf6xA7bi2h#c&-!9#XJNrgSLoY<7c8es4Rj%(6<*L}KL$E|Mb3_zpke4gEH5pw z>QD_$fA=dhZKtuXeBM8{q`fRoUbyIQmfv^06_zj4V#R-ZSXui)gTm+~EWv}2wWRTt zv^TUWC(&?;tNl5)=SGVg`P*;N=RUQ#a^AO!VewZ(E(|Y^V~t+AQb5U4ZfL6*@|M@> ziXkeC0yIp<RApf#l4IbfPxl?K_g@3md(&;Y8`Q6h)9b8 zq!_aP?svbl_rL%B{=p;`EeHc7fApgt`E%llC)#`7^B$kGBOUp}tD}6OiM$yWGuQWy zcf7+FY(|b8>19H@rKbiOIu)3M0?zF zyNtHN0s9w$i7&cgw75{%WoLT2&-c~*_D^PS(+$$P0lMXc6SXRQh1r+RwVJPeQ;VKj z_0-&A%^!a4JlZ~^YqPZ4nEQb~qbXK}lJ-ylRPd|g1421gcDodhs})M~Ox5G|)2BQ4 z(g&7)ZmmD~mi99qY`L#~$?|vV%VkF%Yx&!5vfK~PFY%pw5PAoucz;OtYWC;ltn=B4b40Bx57@lSfNStVY8(z&3oSR3zrx9G-;Ey z%Isz58_mc}v^97COLE)C+606xXTC+3!9Hra-~8OF&(t;`jDW_|bnWKXe^D0d>0ugT z^RjP_Hs!oZe**aM0u=ZG66{SGw!_5mnLK&W#^8Y)AY}jE#oBZYK(a`|d?E`LXqhaI zuqW|t`Wz}N#Au|O3s&%lo?$SCv;P?ErF)&%KTe2Zfx8+nHe zw%Y5oy2)^@q-oXOKZPDx_SdjgrR1NXAs_qV`u_DYvkRpCJ+HaMp~KDk^s}Wp7IlO6 zeeJd1ezxy>K4`UU|KPhMgNJ$1t3RvZYY9MDSgC%y;#H0pbR3Qo90R`mb+gZZ#c4QV zl^e37^}g>R-8uNY&sSQFzIgWS?^*Tx-X~De5Se^soG&lFhOsrj_?_9$f9qve4Xoz( zmzZe_4|SWbq2mBZyt`W1ghLmHl;BS%@S&hxI+H)lE8#v1xioeBQ*?b)Pe-+@6v_OICu}yOPFgZ*zut z%FEoW<7>5=yW{2ITgR&fG&^WxFksj!Uh@QaT)x^z4`EHBf$wN75&$5)plmwk^44~N zNM+-g9-zVgLLg(U78f{MJ6F7ijT~ux1`e|7o?UIj{AXI7&BS#0akgfcUL%eapAspusWJ&4Ou`U%1JKP0@Vw znDfKzYoy%pM9aMBqKh1W+0w(0LjuE)T(Uy~uNee`5g*9rS9lpm;&Mf;qE6dV+%J@9 z?AmDEG<9bW|CyE9=w_la2oj8;u6 zcF~YW8jxN#KIPd*0LTl*kutz|XLWpDVzdK5n6O>-LecpbKC{r4C|t!;{`!!U0BE{a zD=AN-=Dzrn9bk?I1^qg0T;?Tjke0$q<8o<{EM%ZDaVs?d@x0fkSifO<@yL%f00A#C z8;z+KSB&{51;pEpWKyN$ew=k)qZgMlP?w1lCpzExlF0&rA-n)Q;>I6zko%DrU)-af zY!YTW3X1`JlNqg?wxGQ5+#CZP!$>Z)4TJ2tsDR53$b%n|EPzBB@|`wqngbl=!LU$5 zndlD~XaO^LV7M%Sv&M%Ua)>XSeDj;%^m#jEhhc7#1r=Y-rLo#E@MK8M>hE{7+RVHp z+i?Is<`|iW#LbE{^Md(9xY#zAbmCX~aBO3+{8ck(+81fMoc|wPQS0ydsS)P3k4o&>yY|{^?NHsKL%X200(9`DEudjOkNt!IP8d#eP+oonNCzGK zN#l97w0ays`QG=w*Dk;Oa{tjno|vEue(l-tp*)-)M*HL_A3qMP6f+0;m%seQL6jc^ z&JbU9)m6SY)55%KNk;AQO<|o+0wuNNwO2e|jNn8^<_XiDKbwXZg$S?Q!`cutmPu*(Z27ZAnIiy_})$K3yQtW;+R+j{!S| zryP@G12t^}I1^5}&@?#`$9Z7@2tYz(KjxTY{772>V6#@TIVy)?r5PUen%2OMQyvUo z0mP7B^nv!uOJj<0$3KO2J_&3w z5Dd}L!Lps~<@}@zny`ac){Z!AOxQtF>2HrF!h#k%`*ai^c|?4rKlo+C-A!2qVC!{) zrt$6Xw0>Ft;{F+JC6jkZs5j;UUZnXYjj=Gn$*t`tMygCUm=eJbz zm5Z*t-1gU&oIV;2uYc3gw(g@Jx7LG;dna@HsvgGY3}0O~TO<_#gNDV>k$rmrAOHd& zq0OPm#l~p-OgR8F01NYY-~RTu?PDMNSb69RJ;Q0VOZd>gFbq-Q$s!P-ho5*ZJ^0$! zzGk2K%xB8;iP?$)UgX7=92P^k$B-dB{gb&tj?AG6vSLoZ{qc`~?Dq-AP#qes^Wv0C zS|rIzcKdbn!_JR0Hx+_Wmm`^1 zDFMB>_0m+{)9YG*HhF-|mt_`yrclG@xScF&p|S z%knbG0%W)mhEEs#;SYcC#Rhafqz4*|=iy5ajPU;c{M2GE|bGw5u=K@*I=ind7q zMPmgt@pEbg4f3d?j_NRvml08leuGJXe#j3l3zVE5;;1Gg6#9ctuPHu(;Oo$+2)nPe zqOJo5+C#%f+N#D{8}jgUYk24ptNp`8x*khgWwZ*O*GsE0sXh{~Asgk&fMLdffG3=Ag8zsH2t~PAjcwLN zxBwlR7}_5|%J38(@ZyrxuYUEbzHk93(rNhxuQZeoSu#(_&=x?05A7ve+c_sh$A%W-%n*zZ!9DcppS}!oK^=b{(X3U-A7r`F($KP77 zXY>*)99_HV{BPO%Q{QZPotbtZENv;Fhy`h5HFw^o6DGR-di+Go>DZwk{oBG?I-Ld} z3#|)4L`!2Hk0B&}fCx>Fp(v};{Hn%KH_}sP-2CdIfi2b@kn^)h!nTPE1t8qp?$6Cv!A!7H=Sg89Wi8oVNS!&*7`bY z_}PWl<)&+G`QNX!8htQ|qkUV`07R4*0EzjN01o2NtN^2+%a$ceM@NJQ58)99J)i_1 z?8>+-zi>mtkT}bOxLC-E@UQ`Fz&1dYaDXyEJNPDh`;@@ufZ!I{C%AozZ|l^Gm$61K z~75!F4L{j`%Sva&s|qNv&_2bR_TWS_aocz(N9^^F~?b9lC`BToYDqROw&`Yj2e5(`|z`y`>fJ~*KgJFU$8=nOo+@x<0ct{%$=_6g1 zSJq8D6Wx_2ctm<^!T{HGI-OLUUr;JUrD_qEOp*W+NFexc=m-9y3cQBshMaB(jI)Pz z$KY}u8$9%Xe_@)owU!}6ty)Lr8o%;&YtYm3fp=TYo@1@c)am{XcmLsk+j8B&Q`Jv% zUecoUMsM|61mL~ei~^)yZTf7wjsPqGFlfWi9fD<(ahAi9qf<*Df#AQZ`K75anC+=! zUE}xI!yeU~*!8-R=7|6IUF)TD%`G}QnA7mFYQlHFe%?8f!9|8FI|Free>`1xp5P9owj-GGjgOhQ=e)#e*Fjb?C23z z`-1LG)LfwMWziL0eJnpfABn2d#iPr0TTf$8>naV=_(qG;`f71`yw~YPngoy}@QNgm zK=2ibYwHj*Y~w@jqqUFj|Fd@;fKgOi``eb@6G}n?1PBSC_a+@wKv9ZV5kwI|1-oKF ze72|l_TDLq6af_wk=}dnJ(Pr!g!H=E-TymxcES>Z;u95NE^Kyo=FTnW&i&?`bI&~| zu1hy8etZ;?8`Oagd5ZsKbS|Q;zDJ2 z=>PsZaAq>18|?@Gs#W4ki9|+Q3<_Lq3K$@Gu_^jz%Of}Fq6tXCx8qUw%kglA(SDFj zo-2S(WaZ;WFDTvwJnq79R*r(tf@Sdfc@`WD+VofLB>A&l`YZ3(SAZ|H4*eZ+q4|w` zmp=uJ)!|EMjK%cBN!L@B58h-Pm3L9h&EA&NsoYk_-E`%&)5&O@l$8WfIfssmiy zX(EB2#3`(lCC*$+SB}Lrgg@k(aEyNxJj$tFosu{ztcej7N^3e_)(bwb+U{JvUs0`r!&(}A*aBO;E*r`1^6mDN!xY6(;o#5NF~k+ccO5G-a=J_ z3ZnHV>7|!%d|z4=FhKCq8V^{wnb{ z>j$A#-6#|=+MRGy0+hnZ>0F|aL<1siH%IAp;rfUfa!tTP)@$ZY{{-6|b@0Hg-5IN; zK*iWn+@a(XZi_c~a${1KxC|4H?0nY+0G%b-m_Kh3w(Z=9T&FJv4IP5001NCT^k_{Q z9Y3&z9%5#o*yc?S(oS64?>4lq7wZOj0XEeM1^6asAr{T~5sTOF~AI5Cmv!ZRY-3vPyQky%)d|U=$z|Wu$`> zpSzbC$jXaiq`1f@7e+49&hz|_nhiUm0vK}Csd0qf%vZ{Za*wZz_mr?My<9;VS>Tqs zWc#38cMx<0d{lR3Jov*=QUtr%54EaCW8IFUa#Ce5S!}T9oWOVE#v`PDPu$t3J+>^E zj&Jxo^6^Jeqk=ENN?I)0X@kl3ByV4jxl6WSz{p3DP}vW^&X|B%vzDSkTvd3pF|1xC z#o4lhR>sFpKe`Lk82&ZeT2ZxM%VGSz94TOc;3YPy8kfaJl_G-HK;hCv)b*lXOB@I& z)R0S(j~{iP0*?~-1Vo@!n`Zca#X6*QYJm!V4E|)#$CeEnk-P>`zC=mU+wSgZ2 zt8u$7Sh{Qjw(Q)G*e*@Tk&;UmRCT9fa?wtcc)#{W2;(~k`unJ8g#z|2m*^5DiReu5 zlo-=R>G)yt_Xw%o1YTJg>gA*5`Ro4*5SN#<7h-u=jB|gM0_Ex3|7@AY{eJ-k6v(;3 zP5?u=LiLej)~9==7JZh(WkKz_jbP4B!p;LnVIyambs~u_yt2`-ZUTYBggqM<;>$_% zkkGON5~6Gv_vKh5rRBk9c4F81#rX8gaX6Oah5Cs#P?&KTeExZ;wT-5@>^oJ-M zp_SmZf6F4w+ptH4Jl(%}G2Z=nJOU$Yqh0I9*tudB#(p;o`A&+_1hzdJm*Jz2KEl=` z`DmC}6+eGJ8Jl+;AvlRg95*{AoUckQuJIHqkzHdG4kpIl^ zCI&9~c`EkXqtLJSHLy7eprv{Aychpl+A1Hw`@N#rc-j`obIX($ouIqE zT77N~f^c1MUW9iZk=4`}j7 z=8>)V?8EIUjH$yb5WWOF0h~ha#H&}0`Z9}?LFe<~6J8zHU)vGi&;FL8@@!n&s}DN1 zYDn>HPM?C3 zE?rPBp7EEt$RxmfQ4`CP5+!_raP4{@Jii@eaSOQsCN9a;0@isNAoM7&eTsG-_xxU- z-@7hFmCf@<>nN`bIj5IXwtTrJNx!cB`tyGc5d8BryyQxdIchI)p&G@&=)l$Z<);}q zLD9B07aa++9+}pn3YM74K~poQe+Ja3_(%;PGl4~5E|}B&h``zrDUUKoiOH+zPmXl zHq1fLIKohyiOsJ=bj2`OB3t3szD0Ov>{O&=7NBB45Y-17Bk3@Eq5X9?t9HwxPm!sJ zi#85~MO1(v(bOdiIC^I<(x}Ts7qx}}n;%09VC_n{7?_LpO$y|NZYG8(MO*@W={ik< zNXh3MfRMowFy%*q1b^!wde(V2%}asAeV=qkzgI6?^2kU3UEXzRpGxk!wIABwv)aMy zlFBPXZ;M>hKay8JFUKl*v{gTKF}@9*;KiWgC0B+x6D@&%XcQXPt%{9n*C0459@Qg5 z$w@F2rjH*QwrGS+^XFm1&I1ahPNf{diBlN_Ljt550Hs^98e5c=f|aY*!Q>Z?dI>dQ z=E8#np-z)JSn=z8>^zu^f}B*$o3{WZK2=aXI+P+hSDBetO&Rxu zkTz;Y%V!f%n<#diI(Zzar!&c^F*4n$6dq@>E*GlD*Fz<*Y%E%|My-x-UcmtHg}$iE zwh0IxKd=*DeKj8Yle4&pWFs9yuzl@n95{L$`PmsbaA+S&%mD}uB!FfmWAcQrv3kco zc=<)3HTP|I>f9OK8MvuyyQZw$fmWTmp-zp;C}uy;@=bVlv;XH`V!T}-9)qaHaEy8g zj%#|t(fMjPSg(ASwCRA7#27e#ny$hScym>q1I*U}hkzfkC=jzDp_>4znP4F{qCP&p zT*;@{&)*7Y-5{fmc~0yu^c-~WI{;NH zSAjP}5?Z+ms~$u?m`-wsi+=td^A^lQF>MoDcD@dYH7gKMO9-d|2yogcHk#0~Q!kv( zosLOkKZn0J1G*y+gYLQ&m4diBOdChPpuo~{<;nIX7v{rB!r5^a@sypQJqzD|^DRyn zI63isG3(o}5n8ww!ZVd4*XZTAWk7L=g>?E?^7DUf}mIG>k^ZCiJ+ zkKIWFFSP7>BaTmFPw))z|^7zOc|%)oHqxqALhV$ zLtmKaJ}o3ZQOnD}qAS$FPz<|^xe(+>-;{EWh(h#`r6dsivysm+kTDgG(?2*^0gz;q zB(>*dWFViMyAMGrfbQGKi85qt;lvHPsBD|vgE#gZem$s_1dnb_P zOVBLU4tE}@BbRju;Hxr1LzT6IfSmRW&`gWPWv6kM6u~=~*Yzv%t(C<%J={DX@op}b zev|;K65p_P<^J4=JFMvbum2+tmb^pd@e~e5-k{pc*nNc}F?IdO=0lrbR03cB08S3Z z?%*V`lOr)vq_uKOnoJs*{3SFq$)%AtmtqkT9Kr`uww`e%np~Q!s!CqrBF&t5nJlxI zU=$D(0)JXmEBiyX$Fp1(te!bBNzv=kiLQYS!J6$plcXJNGy5Suv)LGcor@}I^r#ca z9V6kP6l?hmGZVQG*+xe$L%1O3mK`5XE~cb1x*a!+Ae`cDFu6ckK$89mmuePWqr1OS zr``tPivP+TBT|o=d*rNRqod#)d^=p z1?SYMFcF|l&6~nGX(A9^1?C(2ku>C@7B7Hn&1$%g9)hVsQu%NRR#Wt>ixpN1&7 zzm)_ie=qK^!3q8r1^>m@v`2#zf-oQk%<`}(K;sz!3MIypQ3wbQMWFoVWRsl|l3zq1 zJ-?7Z%Cgb0I!snrS&kB86>UUsM=^{!0E!4zLL+g-EAU6J|COR@HLrVgz1W#T+gC815N|^$x0*2bfGUd9<^lXb> zs(j0Nsk7`yyQXklftjq9N}FW5Yt#A6y{c^0Fb(7dC?&t{JV7g~OuOWyJLzpWUmNv& z7xi29g`h-E&Ae$X0@l)BB;BRCsQ;8?;)=VXXFW|McJ15=>zALyeD}R@tzNDHVEsC< z@Yt4@4f7}OtNWY}JxG~27cS~qowsWMXr4g8N+u`x>{D8vk68~Lb~qmzseYRm&4ZQ3 zp*}8UWtK_&G`YVLNpKrpF%!w(M8^l}y6vN)iB+Yt}hG1Ch}TN2~3P zR~IkB9|Ht00uhZO{y7SWIC-~b!rrz6oOH13N<9fY z`3S|%*2>kITGD1d%O~Wp2H&GZS=Vxko^tM?hv9757DscrGC%Ncm^xhrY-A{gy?cNI z`^a7rV6MLgrd#hsNmNys?|%^HN#DRcXb4=}HZyF)L5ijg$-z-wK(QKhULnafVG704 zbgpFhXuszzhGWcga4uO4^YGyWLyELD?)&}+vifYKtdKLA?i&ot>x{m5ZFgkTR&zh&NdK0Z zkhN6eGJ|12c7vihHNN&qeWCm0vYl=}?oC4x?&KuK3@4 zyE^asMFS^SdKO&WDDvv5HpSkgy+F!Qn6JJXt})N@^AcPyzpjCaHz|nAh`nCEF6;H^le_M zc2kpP{5E6xoH;m>l7cw4C8|mlB`v57fAWt3f`5{L#_a|LE-D3d?xzpqO82;48EbRJ z3HeknY+tbgq4YXlC#tf>4SEL<8@PJ!pgxr5FsA70n$GhWw@R{6t!Usa<}=RZ<60Ai zqsz)s$F5Up%41P90nn6k49>+1$;H*8;#PwMQ{zOKSFhyWNdBf;f-54tkDN5U6w&IP z+~Whltz4{OXjm6RJh;A_4A+bQB?sCD=APHXbZrk<+O`FbCBwCSJ6znZ=$bYY&RR8L zd5L0mSb%CP($Z0l+^#t4z`?yRC8q!cI8#I=Wiq51OFgJSccrK*s8YQ;LPA2+?xTyP zrZB`|MP=iUL4iwz0$jc7+psXUr!!`9sVBRk@1)@Rt=M<@L9|-4+ zsoW}5pW-jC&!GNo&n}okx$v}MEu3^^=6q=kTwIlRy!AR9jB(>ywjAcJSHtq;D4068 zQ{~cV5YD9(lVyeX|K6Y&%=p;D9)M}kUE1|*a)4Y+16RH!IoLOUf^ZP^myWStt8=E_ zye1+y_0%e{kCObkY8@)8$^_<%1%Ohn2K#bkB!dD51^zh-P*o|5OgOw>0hx>3mT*5+ z$Q1>0;tK%Cf=B>u07X{^>cv!&g%om%Nn9YQ+`27A(kIE0y#`0q7V3Uo18RQvLzrmF zf|@jEdFwSeA9<21z#0&#a$3}<`3V;$Dw5Nq?$6PuKO7ypXm#+fw8hL-WfMW#eEp3m zdHy9h?->f`m}dya;lR#4aD_5Y1A-`5Z5{P%03Ush5`NIQ9XOe zFS7s!3oGGAPp)dgu#S90{d7sRMLFVjLHX7fs>JN&VkQFwFD5mOvJ49Rj}#CyA2Z#8 zVf24tzK1KN&6~qQ(5u8StfAoq87A2-Cp$TK0@feN$;rw$Z8igmojXpPz>#CeQ1w6m z1qfcw6-zZc!G_Jrt#tzu60v>THrTi`BmUthU}?}uiNLbpVrqF6Z47TfNmvB-6HF6& z-vsln?QqVT3DD%p(5>GH`}gfbCHlM!{NZP~e)@?EC={o~8xR+LOg(8E z8D2rzPWoI;eJ1@xnwrrphe-jVI=Z-j3}fkwOHZRTg93ku0-8~_3rCL}L1hA7rReBV zu4m8It!hhJ1jDc@6D0!RF#=tUTD1_&9UYQ#v$DA0OV2puzV_|iix_$&Pi)eJk!PsE zlWmGhpXk7j4eN1`;&>F_tz!@b{?r4_udl)4V(D!puL=2&2jX=Rg?0i%J0z<-{gaz^rVNNqzeCX>8{L zLLRrb35RFm?wd%8!gcD@p)t2+>@N9|lasM~*DlR51q-s$;Jh|hOREw5G6+69$;n9> z0o)bhMXs+XFP~e?ausMwSyI2$lh2(Wf#f1>G^Cf~LT-nvTD>}=3BpGRI7gF`=zh#s z?IbE8XP1|ogCL6KHMx)?V04Um#F*Vz#B*X;KCjEp7Xe{Edcrxlf4{OT^eZ{Kbb^0G zA83GJ*{AJa@LL8=9!Pnh#jy8}4EVpGdsk!=1-t~vM5*sXU@8lQI%ktlJ)msyk|Zxd z(F5uLDCZ=f+$;NLiwI1T}%kz~@uoMG$ zab6Hc&Qe@?$@3?5i0CbO?vr*%IkH1X zoGi$8Jt;@Zkmp+ZDrG1!pTA{Ka|mf9?T~)R9$~3V*g-$;R+2h&T1lN3k_-^M5Gq|l zd1Qb^+%F{2Hvj-Y07*naR5^I?AS%!lLf)ulC(I?(T%#!$NCBCM0&r<*X^4%DRoqtD zmz#{e{?Ut-vH!h%a$Wz(ePzqg%ladEey@!4U6;D_=k0oi@%(+Lum*>x3ml}Vs49TMdrW}`-q>R5K86fy~ zQ27Gtkhk99!-vt33Tpwt-+MsxBF}!<#F^;XlSa?y`7QTo;*;!~{d*oX&-%+A>kqro zKu_wNa7X%y%ivqaRmOKe^<|Y9$jUQ`2z&8y{+_Ly+u@IGWQSX1p-8tO`&t`h8{d!`Tui>esHSjsfd(3_@DVtpbr zvueBe{7c!k4DU`@foEQN67=KB39jkOq%LupWuntmmrHZKFZYQ*L>0)%-QIJ{mOC#_ zlCp&!@)4zfY2x_;+Q>QS;l?>)FkH*Gm&*xCexac)Cs+Aplrm(2LFlE#Xt^$6DPpx8 zyT{NXJ2=Ga3eT&s2F#& zv=J5I3^bL z#=JL&(@hdr1B){;vP*Z|Ieso~?Mkx_Hb%Kwrvp|gS0=UePk>R{qQHP8%1uwf`)~Y; z$DV%_PIo*K6{CdLRNbu4YPMs?);)-bsf|kXEG;YWl57ME!4N%MfZj%R@gn?@u@%lu z##e!myG(%^X`5N3g2e5Uqo=y;$nbFs73BZ6MPBlyX+Wh==c zoMJVbt&)@_04Pa^F#Vc%Y|f=)(n9vvi~8q)3Kbc0^o+Ve40rOmk}Ipe(mv_GXFFA) zm+2n^1TV3H)dBFgK+r)?AYNV$Mt+-urM5ee_3H!#nF?|IWIAIC(?vW1!fJNm(C%$G za^f^%=-#MW6b)_(9*1}CKo;$=YSyTVxWssDoc%Rg-7o|Tw(Lc{2yYt2n(28tTyc{b z87GkMpb|ffo`~s}

      )$cn5|uSh^kik`5s?s}MCopkGzGX?I}fh7HJPuyz|~dZUJ63d9{OFNY=?Nwjw> zgqJc94xwYx;|JHHUc>hI@Y@Br>FNgbJK)bCN>(Hv+=+ch(@=}?OQI?U(gcOxwFPA_ zQqloMKu}L|PIR+k&T{f(Dk}83nSjr+BiHJz^rHen)UE;Zh)2{dF75(xGUR}n-evr0 zGiRZlo`rt+oQsz*7!zIDckKcfoh-O$_-t;`1gGb4G_G9Mn)!ufS~><|3M^ZkehNa zZ+L~Oz=_u}<%dDIxyMyX*`8lO`!Poz#=i3+hCDS1H{8$=KmNE3pUs$y0aqvDlb2q^ zv7<-v^uSxO=U#NeDLvPbd2-EN2B`TtK)64Y5M=cl(ro= zUUwhfnK%vGCOnQYzoekP&v7g+s*6=qK0~v(FmCey9Amy*jTq-1obc;`dDH%b$?uNg zxn-ypkjhDRCq94uSyb>LcS#XfxH!&v)gS4*h-_wlM2{s=-V|Io3i0K0L$NT0qFd1k zELye^(d}--?6L2levB7Bef1d(d;UB0?AZo~HqW9fra|lvoeyLm#9ic|GW=^InVymp z?)eYKz4;Jke*K~9?}sl8#EOki;Io&8VZ~3M;f@DhLqhE+Y&{u{nbSW;qZ$<$dbEVx z;l%+$eQf31Gszf>Db%uMOI5IWFLKkpZ@U#1-Fbk}gW|GF913h$2j|Gg;Oc(^EEB(H z%ouMt*Q|o`=38Lu*9(?zj2!s*FghkZ2v^Ix+>W+GRV6h#JG6vl$`1&vNXG|zccG+n zb09gd^tv3FCys;ft#>M&V<8t{1fa{dSKV-#{n5GQ%dA`f&hE&BQ1K@C0E#iJER>x4 zkzhJSMyP-Atz;mGIfO70#2U%rZ;7j2}zN;8x#ER;SLso+TB0>4Q0SNdM4#74V#fiASe zo}YrHc>#Fs<7r6RwH^V>CSu~eRoJ~@IRWrPOk1`XQzlKos7D{AEnYV7XJDifUyNb? zpMRW&X>%vw=PyPhDbtR=_dSdV`VD#XmC5+{`9a7&z6k^R+>eJ|pMW2J`T=(&ZpB-Z z=FoK&W3#ZFbLn5+nEd`Z8Bh7h_I7;W2}lJ%KUc8*B2y_}+A zn0wu*Zgs6*4;NkBOHxix`E9yqs6?)UDYmwDK7hSkwG`Ini-B&PfF*0_IcBoD=6vTZ z1%T#HKZKPp8w>aDa(fA#DvSU!PczU~fa0cA<}2Wj!3kbMgRHnAic7`RrAdIF^C#g> zsLL|>VBn*#p=tXbcwywNXy1G>R_~m}ElsYCb*DnM;hWEnajoT1U5wcqUTM>Km2)3 zNMjVY5=|FJuBVt?5%HKjhl(3vaumVEvScAc+~L~^ju{zFyh-=%iLntVDfGk8N4jAZ zoqKLF=OLnIe>AC42}Mo|66-Lso_Qw<2&_TeVUT@vJzoCiYviP{m5Ht36#XB?afT66 z+qAssJ8$={-4HmLIsRR2nq$M}rAN6xH3zwQMKDv3D*IW@{D_uK#z$UMLVa!FiB$Uo zBD3gnB|b~pBxUG3GO}n(DCL(XvT+h`B!%jSz?u||?->Z^7vtdK);UuY0rPvhzhW{q zY{b99^J#Zmo_qrKR_){|f&cLPQ8I6l3X0@9od(y+bv(=DO&#w#f@6LjOsyNkwPY1_ zk!#`A^;#`x6*~|ik0iPqlPba zcw9wPp(DlIg20-?ewx*GCDF6V{S>n}sf82q4fSQjH^wS9d!u2qo*4i1*Z6Qx5PID{ z0>PCdBWaM0m!DhByVGQ$G ztZryvn+vn^;SSpDjEdCYv5-9#4l?Z|-Cxlbbr88nJtf3z zNAd#VQF-y8^{kiMw>+gr`j=5a=84T_#-44fuwuh@WOCzqdfF+7hdE#WFx07Cmk;`n zn7wQpIj$Vc{O(&`i9B@BixdNj^QF0drl z74Bp=_8!YeV#CIWsTc}}EI7zC6X2i+5~sxr)oZoDPU;VrZr)8`bYT6WnOL|t2{md| z!5?H9%tZSh{@w9>1>MfkQjj;r;htL{bsML7JUN zIw<}TwbcI}llfL#`-u8?Ga;3YKBO4Q;5uXBN(zdeto$u^q> zhj*>S^;dVm9k<M;J-kyS?gKoql4?K&lN3yv2Jp$qWkJ5BU+@*76lxSH*?xb1A8}P!2o6)axOZ4k=Bd)#uIlS`G_eiW9phRcy zfN&h%vJwy9dk4CYNIX6C20Z-I*DwXg;`J%BkuvXXT-CJ)u5J~N z&t|P9r)tBdS+C>e8SAK*^Fl%DQ9S>`^EiAepHid=>wkI+Z~a6w77Fr8T6T|{=Qw#D z%b4lE<@k4#;-Z;L-ckg@0PZNs;Oabm%+s~~y>QK*3+F2@1GKF)HET{6RGJ4CeIdv3 z{s-_Ts0HrXL8qmksp?EkxEK;qk+Dk>82ODJo|iA9$qgN?@`d0W{VW{!3;^g~(9VT7 zae5%_y%Lh)O6w9CWqIJ1En9|`EnBM9!m4Vxglb52>d!X@)`voqoO)`HE0N z4#%57OG{k3ZKC)}anM4M*=(i;uqX#78Hgv8F4lcrg*d^WIbjtd$UQM6r>fhgCa$dh zij80nmF=gqav3K$2tfgU1W9#SO)?P!r41I|o1A=i@`%cu}i0dcbw4 zdCN<v!LweQ$XuYtF~F=Gx8;|m-uAV_lvCFfO5 zVHKD81VQZF276rwaZ)9m`Qv)wS=dIuhyw=>s70Kz`$F{a-R(q9c<@ zB2E+%I0*y<1t89wcuf`$LK({;oZfszcVxG7Rh5snJlwMC8W0>#A8^#2@vSbaoa)Wa ziRMFvx26*mL)~J!O!q+)gV;zuwQGf(k2k?j*H7sI$YlqH(^Fxj zo4UW?h|2VgoX0lXmG~zsJhDGR0`RahgZqZBW zM76e@eWR24L_9O`WoV^Mpecs!q+z_YtFrWyZ9|)@fCf}~Y~2CNwbvq#?aN3{gH58f zsnI9tKAi|;(=FG^B|uZg`RH{6oFQS@N}I|$bh_$I`$E@`GvM5?2Bs?2VD8wNK-nIr zC^{e5zaMoH6IH*@Zr$bi%UBq>M8;Jf@~ZUMyK&=2WilaeVFg;h*FN5-L!~cQM9U^A z_d?3K(0qFNp7}kG_3LH7FEo#KpR82N5dnc<{Nxw2$)U+2g_&G3*LDdMp6R#BR@Z#B z{H0tGZ!Yhi^3HkI^Jk8w?2{)?VlxfLn-GNLciE)2)Dh%%bI~J?<}y@@DnLx31Jew0 zh)sE)I3IONY~by?;A&c*0M`PijvnIW3ryICU6(eEl-V&~U{b&kc!)XRM+W70Q zILeTfM`$P7h+dteXd7x7JVd>0s6oI1t~krS<^(!lEzj>^+4f#8zYP$)L`G7$3)x&R zo_pucovU0eiL*?_g}C4Dmq=6po@NMc5hnyHtkhqUJyQnO3INZ=kH4o)|3fVrCu>&Q z(S*wv@6IyLGOlHloD-*{;vIU!dfEaK5M}k;kNUv)_yp2|obOYQ!1da@>Q?jc2UMud zQz^-GSQ@N2ZKR%3G&2W^M9J9xMEqwj^<0YbEi&>Q+xu;=g(K58NmBwCs7{F zoorn3miASoFU#`USGK*E%Wne&FOiYdxsdqU@d^NiYY<(AoIk_sT_TPBJDTAEbj1{H zg)0;Wusjax?`Y1SsY3uo+-M2FgocDF@F}k!a!xp~x^?TKdiCns3y_`m@!^6NMSZas zG{wf!w1qoFI(372z#t?O&_s0-PA@bja)G8>ZUtFQP_`$Qt3L zRd)PSD8^PI2U&?~5+_ZOsKlgMQwp|GeG*?Mk(_2Oy^&W$WMpM7YSBXsb(o^t6CH1b zhze>OqSUR|U$%T{gXeX8G(U@-G}kc^Ex6+W!l?U^MwcDZm#V(MP$%a*+!Z zcUUG$0G{J76It}Vt5&X5rHZ$n0)n0}%d&tG#HeuM&1d!MRchys6e&AeB&LUOm9p(l z2S2@8SCY7^_xXI^hB$ma${6Pj3jEa+@Blz3g9zEyt%a3_%SD~L65up&lqLv(3D6}H z@Y3mYRRGL4x{4BCMQ^NK4?_L=^;K{qxh|FldSIur0QgsT>)%$s0fPUw5i{C*c~GDf z0Lirx0IiD`AneAz$n4e*g)~+16^90j*E^#J6;ShxJtN?zb9ACY(f1$g1d?k80P55@ z|F;2x=ckQv#h}1nLjfHCS-O*p9=16%5q9eUditiftiku8mNJa-SQ&D+LI=F^8YN(7 z0A6{N`TcW-_Wk#1WaKa?aPcT007wo^I5#J4`@E)4MkoPL?DSTSeifk&8gYA~IF~pV z1TS7AjFLPlV1S?}HH>3}0)Hh12z=r#TTES?+=}Nt;Y$SHeV?jvUaOC64ljFt#x4?cwAH>lF zhK78GSgX_QZ~8WLf`1dCjcTqi3JB{-79~;NMPiqrxkK0t7VK!saz&iV}TY-1AI_fCzl*F%1Ai zB5fVxT2sA>^NXBn%Mz=V))#e7RD9qOgMw3%s^$p+7_* z zi_d~zl}^x00MJ5iuTo`L34r^$c0@t1-l#!uEwW9{NdGJa3{LQ$rN2@8WkvzD7(!9l zbYLHRR?;0-0G-L2$m>x=ww^qVY=$`4KXf?aYt>ePpA0ehpML<1*U&#d21W}mGYUx1 zc&{BhmHCT{F;`GPS77w*C*eDtK^0Jk`-6iE^Np3@OJv*)5WGYN!f3{2LIDwl>EXp| z=|a^Z7h@L-5SmmRl|qCh9Ygf62jKkt1L_SKs(`>~q<@wIhB*As(%-24a-x9P_z?tM z$5Y_VaF{Lzzp`fJ(;rNsifx=+FCGUQH^qr2O%d6&8LFEk?7d+Y^G`nl1_=JsBVg2j z*-$|Afez{eZQHlQS3+8{XBky0;863fNMfAie0mKJ;p%YBhzNvnRoKQo!bbY%DPVx$ zKR*UW3oaK5h$x(&2kWMF*x$Gw_H^ok)3p=e%iSPV81%eia4-UVebmkn>9T;Nu|wpa zAAAD@&oc&PA5OLP={$Ka$J4UsRcN5EUP}MVqk){0e1C*qW%G+(OoE2%=k{U$Iq0HXg57Xx z@t?LQRKIq)eQQ(Aq{29QGcdVKHanI060wXfPD=Z)1A_!lmjLC8w-K5##zisndd@>V zublJZ9$GI63Z!BiyHs4@Vta`S!Y(4Bo%c#;VgW@9%eGq0=ag3-&GkC0R>t)u{uMLG zycUP|ESONYYI)sYsTL>B&7;?$<>fEcw=?yzDu;(^fxr1M%L6B~Tpnyz?SS?+>8>(R>7o_{&-SqFcdwV_{|Qtm>^d`Y!3uTC7^i_Keh zAiL0kgoe#gzjie^87N%`7OBrn5isZUDI7U=T-_wGF05Wbh^tkNlhfS?flcWQ`{?6k z!Lftev2OD&l+c}uKSMs&h^vE|)gn=laRNJ&PoqZdIC!&u6U)v@OTn?!JjB(mL5Bkx zXR7yE$}HPY3jy;~%0Z;%n^C()Rl2TXAa$u)4VUyxnn7UVy%q+U7qwhb5y8DIy;M#D zwvQi@w=TwKQ`X|)r$->j#@!$+P@}Dr{kOqta$x6%71*)wFykZpA|xyv33U@uA;g>X zqT>X2S*i}HpLHpExX+jNgTLii@~b{-jn;GV9NX>4$JQ-Ls8lr$6@zRze)J$tq-C=m zWh`=1Bnq`l$0^FrEP3 zBitKLstG0i@%Ez?^U1NBw5)Fm}d# zY+Sz*{~3N0hP^ZaPVT5k-Mt1KJGMhgzJt-y02}+aYt^sl*#23T$KSH(K-x?E3@eYl z*iYetG!Rj~O6iEeinR;BM*By{6J!~+jkLCsenJPKwGYb_r>0hxk(qV`+jb|hPrfXN zT$K3wlYAUgUyh*~50;;waS9VYTqdS|rQ<3zFcAP9`Dyszg$L2LOApLnu?{Pi{EWUg zUXO2nT?sQ?>0Pu0&sQRB|MR`rZ%V5<$0jIk9Zg(vXj zs3)-VL_Yl4#067dN0+W$@YoYipkKFc7&~V*U3KxfI0L=f?Z)5pQo!H@%OQ=-U8^;h zp}cxy?!*^xY~3u}bnnyne9AKPXjK=djvaz`XeC&SGjZ@}CK@$u1YdIr_HN&VW84)G zS}_`R5^8}{g!@7{3CSrO+`Sb?Po%>)Ad~^tYcT$709+-7*s*CdlGAb#n~;c_e1qG` zmDp?+oH)7-2;mL`Gjh^TV%@I2D0W#;xk`0ZkEuvtU|ib#Ol;n? z3+Xw=l7G$IU?` z^;-Tm2jXL#c;b`UxUOwOf|=Z_6OQ?vg=lp3Lzp#wG|VNrusaC)UIHpwCYkg;em>Z> zd^&C$F$S-E`6KS_-Cl8Nh0i^YwDc^RifCaZL%iuyia;b0*5qR)EdmH!0us47r;(nS zuU;a8|RB}|aC%=V< zez0QwxW^G59Du;U05}S>$^CMthfg@YyTmFzIJ|H!PNN6*9DEy-KYay{yf&`1v|C2Lh!-9kh6qarzIg9dJo(?RO0T^$_7@E9 zm5BcvJre)U zWJV*#dJH+i{jh%7C$JpfhtZGUhY52wmDcgXyWimcfxVG^WG(u)z7AnsuECK7bCHHl z*nMOoB7Dg4mI7JnZ9I^^3#Sx-n5ZC44@i#7X)oqxe_sVG#P-r8Q%yL+&HE1#V3Sd+ zYGniyfC>rbE_s{C>=jVs#9TG+TLg4^0C)E42$Q1_#SZGU$c05kkvrB!X9BL>QA~Xv zZRp6o7TcZ3Epm~YwP5`Mg6I98pi!Fyf>So;%vpx_#{P_fecK>Er$Dt`pZbLa8Y?-m zBkPu9IO$iXc^qba{}a-=d*kyTSD_;jz@*nCWk*}gk-AK&%DGdv@%*2Te)6x5$m(Z{t zU2LUB;QNX1ph5Kr6c(2d^EFP;o_icmKm8OQdhKiOJq}SXx}?KNNI98~$|1p|BlWTD zds&gYbij;*b0}bl!{?BMCpd9U)=1b-9>n<1-oXPSM<9o%d$w;t@t2Bw9&cK>6%W1r zIhL+^9@|&UQUEw`)LS@u>KNW1Jp_~9eGUs&Z^oAOixdD}Kjc|#-=BnyYnJ2cwzaW( z{tN|xFMT)-2X}2iGaSIX-!4FLp&gr+O;W9T`HhcoB#Sz>qK)czgl+$sTNXkn+WOgK47+MB zWAXNLL$D(yM~T>Wk%jf7NJJf+Jque3fyAf^B0X+TQclhzAA2Fc*E_^g& z5gb%aaJ2NANhAkSQ<7Mhrf;oWy%F{=_z9ijVliaY>o}60uSDtcx%@N57)NI)V1VEm zT6i4Eo1US+j<3VVAAE-5ux9vh{B+!TU2AegML5ZvH$L(thTb&*tsB%r`r)nW-X87R zqEcu@v})5;{ocNJH}>q_sgCdH+Z(Z!LJ(O!0o5w_V=sYE(vlxO#^cY9#(EyF_-YMu z>@L)8(nDRlqeojj^TroSv~oF3s2$$~!MyU~!visB*wZ+Wn!^cKgiTAA0MYHxwoL;r z;6$TK-@DZPDMyZSGJ4}Mf8F@#Q@D5F?P%SsK7mXF9+S#d&L5dzoO=EQ&}Bb-hK{}O z#|Km9p+}3_6xU^|mw=>jCMJS*5fWNcmcx)-iPdyTA*=RbO;Uh z!Hh3o$J>*RV&UXh5f>Fm&WB}|_aw7Y2f4~>F&**5uv<_uJP6TsTEdTQ5iia@)GxA? z)YUR}Z&4u*(8w9-yU6_w$Lk-AS542#DP(`yG7lWm`y?+5sg}||lSUIclDt-`NA@4& z*vH?2tLj##Wq}#3ujv6FUO#vsRdK#iRl4Gyo3BN1fDclWl90@6v%md-9OC1cx8yK# z^72tk-Ktt7k%Cnc-LpS+rWA!sOz7Ni1m@45h50Mz;qVv##d{nlmz8>7x87F2%lJM& z1q^YxJle=ZZ%;u$b4;YS<_ea_SXkk2X-q$!Ou^ za=Ez%S)j1;fs~Y6P{4_2qjH}BOR9TO43yNMWfye4sxbx)x{vz8Fy(T+137}VH5+5b z^yzr@-B&ST@pf#U^(hitUX69z)?oIJGw|ta|3%-Kv+%?GU#J_50aoRrg!RgTje{JV zN@iIg(T@G7H?tQP5Ht%E$0hStaL zd|8wrr&mG|*-mj)l=)W9{P5UB^uJ>S-oJ4aP8N(otw0-!*d`H|tv*(Yey#Az$Mcc# z$nB^|9ifdYttXCb#(V#_5s!^}KrjXV{xwm*VPn(`q&Uolo}we0P;z27+iE8FWWg`r zzJuXozQ)wWThKDG3Uaga6iA%a7nUOnD=HDJ1N{SG;>u~Uosh*!h#v~X9c;6&w@oeJ zC>^A;2(`L)!mtrHp_oR`!yb7NHDdyC;&=)3iD{5K@jy6b8}+8`n*cLcZN_cawNqu4 z5CCoLn=hXkwJ^k&6yINJfrg084RmaRJR^MB`IBzW61(Dx#WYB?47~>oLi1{Y$h-3% zL{yH1nQan)^&Bl76xlTbqV^mmHg1g(FW-V;%Xi~H_moiQdp>msi!#z#6e#cgc~*ui z@&});;=(*C;)|)5qMaI1ub?1biI5_iWRfVNbK<+7uY4cG*KMxI^!3zfShIF5X3f^b z*+%smqG5vu>e>tMe1LgN*JIU^`Pj1m6clbUMnmtKmk9Q5O`0@9XrLDXim1ji@^ZxHP)j1li#?tf$L$vC_2z#x3U7Tj z8R^;iYN2A|lG&L2>jos$YeTkgDrPO+#urd7W={N;1=K=9%?chU6bcxeV0q60mD{1wjnSYmhz}h_G$N323X;Tpq%or+hS4*KtlAY) z987H09TPuz8BaX$3_4DFlOjwcUU+vLIya7kzd0HcKY9hD9()?TuKAHA6yV+Qzu=xe z-7)3U*YWt!C(v!;d#dc1HiNOeO%v>0J_S#FJOnkX$KX_PJYM^Z97&iz=2Gk)IQV%~ zt5p-J`_nP(={KoFkA;8SV7zo79nU^J1aGsX%84{V`QZgLs1}NhgC;a`w^vp2dw)37 z1yu4gPr}roA`UH|fxD;^%uLyax;MUnac@43g481z{rqT*ZQKKG8$@FEk|`KIY62R> z2U6eVhv}caj8JlIV)QJWmvBVI6gR8XX^mxbCgPb#?njg9-=bq;6esT%E&|;naHTk; zh7FpMTh?qQh2s(PlK94v_6I)dZ#&G2)IJFuq|8Bxl+1?a$*-J%naOoO-nqBQ#)k*kKK`qS_|L7~ zVWEDK@XCKix)2I*&$mhxYwTQ(FQQ^P4>`Fx*tc&V>eZ{KY?ws(eZ?d`+_Di~c0AA$ zOxfIN6G-MWrz&Y7*TglFDF5Zn%pbG?Gb1Y_9l801@b(Kpco?$pg4L84~QL%x#1dI;XwAGnl3QI*x9fzmjo3TnQkMJ{<66BORfij(gbUJ)f<;twZ~|%*LA93?mB^*qd!{G9eWcx|)v4!{ z_G;~ucF1CZ)(>fu^j(0iM1dAzM$t$BR8K5RfRJTq+w4TMDr98;WLJlqmQt@L%>`t5 zO4TKG%5~2qd6kWzoM+jRq;AQjx7D*u{hF$S?{+hF9b#}T+ajeLDM5`R%ai*BtXQI| z*Rx$b=|1NkM@}ex`_sF*Z5V=D4J$iZaTa@^JG->yh zH<1LSq#atBQjY*d5k*5u@>|u-JZC2jVC0(U>^$>p`LuGSY|o^Fgq#ylI&X5{r|86d z?om-~)yphy6^Lu1JyBv@Fzg1S5Y=7dXHqrG0^a~eqW-ru_B zNhf(Rc&77R(;-Xmi`;V_4Du}Qoa5i>)4A8qxxMtnh33`!bD{Z5D=-euqJXCDKkJn7 z!=Qjc0fPcp4h0MlymH3c=&3;gg97DHzyQH=h+>>FC}2?F%AtS(f>+L18$C5BU{IhO z3K$?*4pEF#1_cZXTsaglK=8^LYon(I1q=$5LjeN>%OQ$!%AkNjfh&gs1_)j`V{P=* zpnySvawuScU^zrFP8k$1C~)OazyQH3XRM8$8Wb=nP!0tQ5G;o%#wmjW1_iDh3K$@G z<&3q_Q-cBq1J)63Uy zmuvDVdtR>p)-|~=u#f!8aKUW}0Cba~a7thr4Tf$lvv3$8- zituLL;;Fl&n6W$PAzhrzN*}}nVY%1n=TGj{AV=KzOB=y304$UDXy>KvJ}k+}x)=mq zyou8ZtMUvj^|AoXsi|4@)w3@w;+&*E1L8Q-J$L-p?x&Y(wolqEZLl(=fQ*@36M9Q57n09imgF*$Cj|@;^rXfgIhF^I z&PosN-iIu@)DNu`jp)kZbj41G`h0p1@7;;?Tsxwx#v&rrPXVD!8u`e>see4rX~&vp zU}=i{mZb8^Z}rQ4UVaE?rmkz}B)jC*@00BEn}3*3t6Kv1sB@*INv^Y#1|D=z&yWEJ zcCN*`&3oV^_WKg7B$MvdBWVDLFcRbbeJv=kgm&EtJF zU==5=?w5orTl(jwzw}MUMF6lMD-Ao3q_9@fkLM(WLR6J147=b(5T}Q0#uVALHwi_I zDSr zxNg@;PDDlk;p7mm!k;m2HEu=&E}0Y(??5;xZ*pD!j6b5{^|E|lKR?F3@D>bHKp~Sz zI1fLb_hUZcO5~gXo7C$~ZpK1a_dWz60SzfvVwPwVknuPyHl7m>p%iw??XyfwiSD*( z@f0+_>S}D*wg(?P)dxeLc^jE@VyuU=)Bw<%ahG>s#H}6Cv-e}zuw^TLnKl-^x_80y zttkvEX~Lw}?n9Sr2H}~<8DObF0zR3#5H7YwdL=E9_!{26KG?o|4z6$40Nr}_!m7=O z2(FA+M=#Xg0yj{fdt5pG7{ITXBmo@lk}66;97)V;m5k)9R9!6T_2| zOFOxH9XfXIf+xnjf|tfTgMQtcp;qVqSh#UNynOv(&riX~TRLLE@W=4-t1n{c;J&C` zvkAWVei5S%vP_p9Q{Q|LUAhd$D=$2aHZ7WB)a&Ds#~3f(7AF?Z`~>e${uPJzu1BBi zy5hC5b4YIq;;#4E-F4$jQNZ8?|HOkJ50#Bk)g&#Q_!D-Gyb~Q8L}BB+wV1zO&PJC4 znoP)}`?ll2(NlRh6auu9Dz72;@<)eP%rik#iW9`zFj7C|3 z98a8j%ZrGem3ACEcke~9%L}#Q6A)D~l%i5GGEOBkQ$o@ms5%Z(p1kx0Jd%_`GcrhtW-q0ukz)%`!NVQ-*|`6;|KR0&dg9|( zhG5jNFLCpA?HQKStb!4VE>**95*fcpr}D4 zSW~dCrV=S;z^PN|S(^Tk_lXYG#z5)844@^!&=mx+La8z=C0htlBjXwF0b2P4>lqrhkCm?Q0=BCkt~YeTbp=_C>`itI_|enkdXTh2d{Jj~9pD zjKyQ$Lf;XO;-=efz*Vuq=sxfT+<31)Duf51MM4Dny|Wxo3}l~(+-@db_0{;JQNZ8? z|KyW!21vGH&8FQd(9o*+Gu@?Xv5IXL7v_BP0UEVzhra##qC?we_;Auf_yh!C_sU<< zwoPjcAATR2x9x&{|KHwq07g}8?Jrxh+4Ksbh2Db{kt$V?CMqf_pn{5`SW%y%KA+Ft zQIP*xK%;I^)Nsi3kb}#?JL~aYKjZ7;yC<47z3jT3j{|vsdpzFk}DD zpZXFycDM}p+%*i{d-cKlZ@z_F+IPUe#!W+kAGwFZT)Z=;FP{ErHUW})wbF*4N&((0 zUgzJNqc6JpVYF#6>bDuBLyA zh^|Vo)YJe1X2KQuGn!iwb$v|+w1Aylo-Uq=$mpe>uu82ud^yyCDgThtVF{mTA!l`L z$3`p*sE6+DYUBIQC*z0t486(t$AJW&{aZF;A7dCl*wP^V!N1TuuBCb(0iv{3)X zILM;!RDTp%v+@fRhnJF^fcu6F#Jvwcfu|mSoY5Lv;F-y@$b}I^1p<8-u_BM?1tsE{ z8Id&_W6XbEXP#|Xxh4rFzU({<%_a5QclIRIvf?p@0E`=Q0ntcwO1Y z(B}>URufr#LCeFR}%u{WuqoK0|J(Ujxi}e-aL*=i&J7^_V#4DDEB7A9f3a z|D0((D9(r*59Bnv^&5nUeGAaL(`6Vr_8kK3t%$OlQBb^?Ocb@VQ?pdPRjbFqLj}CX zT4|!6V2tRr?2$F__0-9@wnryC_2yQ*_x#-mrI@TXS%gQGjHIP-gHCQt6c%ZsvM2*h z6x}nkxY3ce7mq&iBo?ht#N*fX#RJd0k33Fa38xrcttFxqS4n*=0iZTp&L@cdxx3 ziLnM&BOf>`BR%rx^ux#UyrR^;b6Kr<17V6a8J*H1C1i@aJ#+Z zVsKudZFud=xa|d(DtynWgT+q^HJ0GstX>?xTvbxE%*%LlD*1}@wI1*ADuG`{H7QW#gwB0@MtHbbyxcKMH2Y3y} z@=s^>llJE~wETB9KWI!LD*(y;Cp=HcZx2_2#1fjB&hN*Ldie9DuLur4SuySH_gUVq zm6ZBD%lN*WZQ*oN#*tcFST?} zOR3OjW`G3(fuY&-><|yw^}P@(y1~6>OBIeUM{AkO89pjit{VKqAzxjT-m_gqh zcd&2oD~>2UANYFN1Ii0J!)+rBXpiBFYx=!%SNhw`Uo8bP-i`az&M%~l!_pOrXN>ug z3_<<`sBMXK6qkS6N?Tl57YAV;3melG6?JonVWrHxBXl&>c47=rTxBk}TmvVYFrs`8 zG`!k(%r>08A)I6PC2SoQQKms7qm@&DOvFkqc=ney_HQ$94KZL za}qmYkwu7iV{u-Ym3D#RATRAD%R~?>%~J~0qxpwgK<^y>?h@QDw0W})Fbs1c>-HAf z$__IFZjI_Pr}V-0Vlf2g0!s7gpqhmJ=j~UXE+$5GsZ21W=iN! z*Wsa}qN+G&qmJRUH5LuP$9{9hb!|A^n@D-|hl~vr7JGOV_Y++g?;G~d z)i$cXDf&k6;CPTX9F&D08jaTeoYeZxT$A-|l|8WAd>N3w{S!Zzi)~h{P2g4k-|uH0 zn{!u8ZrW@vT4+91urf7lGMweO8F`1ZOom}V<}wv6>xGf3I9RlNF?n(FUorbH9vej3 zs};O#omC?o@nJp-iLxK&SQ!R{TOTjrC}~y^j!mn93RJXkm+g=JLWTGPHB3VW+oRl5 z$gAS_myNeN|FBq&3E*A%4ve})3=Ai1Z#N1I4rr@>c%mRvTI_)}4 zJO^k6M1zt1bYa?Si;ggW#32>bAM;(f6zURcMWDFM)alQ7_J{TgRwQ3H+`s76182$I zJA)RLh;!ZqXR5Hp;)AHdfC|FW$mlVt1t!wkN-(XB*iThju`fP_Gmmqm+DWt#&K}hj zFG}CLlDCCjl5-g>=W%^9VH+Jzk6cNTKC6eugivMuznS}g!^8CKyFT>8oSkJwb!X-# zhT0vaWLwBA(DdaKht{!JK%>!V6pYm=#Zo*M{W?oLY`t@c&u{=rKVW65pNn%~%+{{N zUc_n^OzlBVyBn2mDN~YGuZI}^TUp5J9LMmeRlwG|aJo&CM}9dlt>-IC(uzfMCQ4AD zE2XVbxzQ;aXlIdFfx;l+iO-2LOZ|(j24S)l7&ijvV#+dbeD9oSdsja@0LO}AJu}`B z#@!1se6nahJ=W{X#wfdV z1`eMOPWRL|not|8=y85*;kXGbdkTuL#(v$tnEk^F!^K7mkldy(Qwv-4`kyu&(y4es zko#Y8A+={R47=yeH@EkNH=A>lmd#$zO*HHdjL?{5@bO#s8j8@uV572J?+PV^9VR5^ z)DZ$Rhm>A=>zFnK3FaZUYK$Gf>_^H{mNB;6n?xf!kQ9f5nw9{tvXC*!rVN;(r zgZI-sJvyopHLU*GQVZ+4#yNr+-s%>7E`xsOH*3dI_V2al@+?87_%Zd7dZ-8Q@aR>k zl8_$t>&$hX+XW2k9%3AI2HGqQZkKbvy z8BeII)BX-k$L|gian#b^2vVCRFCpFfxTS)@=SKNN_x9Hr4W++5mz!Z<%hk4r(fxD) zyTbE<_VD4u6Jxwcdwu;zFiG58sc<{ISGpbq$w^S-HevT z{iX5oAOQe}&mQIiY}1=DfM_mH6BM%Uj+1)?0Rvamup^j>$F}zvs%EeNeO=&qzg%~h z$#!#6Mch)*1__;-+vB+{Euf9Tre!W74;SMt)-~tzyx*57Oy#4wlPG0(z!{e~&bE8C zxv?2>Ow>pPYF%7Blg>#S>F4Bl9|WX97Z3~D=O8V-_5 z3{A%Lm!kef2?T0(K;X>oz&Pjtd1|!(PPmiwh@QDvB`eNHQQ*$46<}_Tsa*b9$W56U z$fAH)JKATDUseUe4-F~Lnv`tI^T~#rr$2IlCAUBoqLs#h1&cek&ZvVB2Y7uVd;B43 zpWU7j*xz8bOe1?8>R@0YB!p6UJ`qw~%OW?$;enh32ON+GAwK@+6)AQbn&Zaf;2_#a z0%%|1SVJwXh$;pJDdwD0ddrgy56e-ImRu3bT#>lr$k$Unv&Z3ykDbW>e_MXpmEL%0WZPx&#RY7!Ys z7_H9MSiA}k4-AhSqxN8<)#i{qJakMD15?T%axbD@rP=EE&~n0NN1Fb!1;fKygQk@Q z8+~qd4@o{ z%lxi(JRx{Ic?J;&Eklu6sbJcir&QI6(=B5i zV*xaE2Fr+^k9m{86;!LESa{2St8~s?Zg{_ovW$IDp;P58mfoV8`g3J|Xg*yIJwc4~ zm$S0~Z|Q8-g23IlKX7&7V}|!v;S!$;*g7elRwu5Z83hMaq`yXE;;Z+1eop(yHwQKX z^T4iS1_*Cr+~EndU_?@I->X`JvEVp}GdeK;X!IT^LHA-&@{e&JyM;HDf=TTLP@{W+ zi6V5c3Ar7GkL;h(*QE>@y5XS#nuD=|#dOW&=Aw)37oy6j@IeIgQAo&_+t99#Vp<-H z?M5!p16JT#+|n88_KHucLr4S^gahT(Id+W&>b4IaXFc;i z9J97#ttPs(GQ&tc;kjeQp81~5=4(aKQ}0)S+I!6Vdgr9C1jdLlGh>|!u?Xcgw-jE& zZMR&^hd0oTagr1Y{tBe=r?v)Iw$ttcv0orPj1RBT_&;(CF#D-t8f(Fvt^h&L*a1ywmLl#k&z1v#xS$`S7-ka9Veh?b}S4qDQ&hnEBrN;*?*7)#i9oW zp&HQ-d&x{lC;+H6o6d3aK+q7-G-ckeDd6|;;6$S_^rLYIRH;y=aCW;@(%9^SJ&`|fjR*aKB|ChbAI)B!2gi_pk0%T-lq{2fas59df@-}70 zCA{e#Vma=tqup-)fKd9E6f6UM+x>fhWIr=0$=J>x)%@lwov9oM@utQq0w5obv(F#0 z+0o~l*(_IgXnCc}gxKYZqrmItl=lvb2hK`nBP?)uUYV^}=8o)g!Iksz>GT=uR9Xe6 zbL^4Pef&}62i8k>aH30a!Ozn(wjVA{uHh>kL&5hx0EmQgxEXAp&Nqo{YkAB;kGo7D zll_6OWKd6)-iRcI)H-6Y%lG7eCb3jg>f}2!y&`C1*O6hzOKyN%Ou&>Jj&OT1f2?cU zmT1^pK8P0}iokylEv>Zr0BSn5p-nUO%yx&uD+^>yIBnN-82z=hZ>ne=L1$2bwx>|o zgD|r+TbB#QjYBBNi1Y?z(y2gmeFt=s=(c+LHn=%PV@K-%;|g4m>Oc&KtoqTO-vH6J ztu*iN44FjLedtZ-Wc!&T1E$QrK&^_-7E9h)N4ClLej)OwjMy`F-EE4a{zC#)v+Cq& z5Mu-YZUp`H2?O6Cj?q+N5wnrHdNQJ8_uFhHF~mq3&8(dDkP(;{MTq?T_o!yvMg$dz^y}2!2-yWh zQ55SWKQ5xQ!Z%+mu8S{CIpY zwtUa|%zNYu@p+h_sOAG}J+ELMJS-@6V;c8^!EJ`>g;b6IXar>Hz9W5ieS=BX!srfU z2y>#yD!*m+wupUw`J}PE3vqwD6VZkno=kAu#~E11CR6$Hd+i8->EMskXEq{iH;{FG zeK9$e>4jysH;V}ni*6Zd0cmXnJa2np*~bG$ZAv!^f&%~eG&$2(@z4L6V;cnMg<=K; zd3Y%EMHjUt>CNq7Z;n#KQH7r7^#tDXvVqFMV8R(zod|6{1=vtwLLJ5!-P|AR{l+_w z+;EBAeRs_bqF}*fW3!CDyn`}- zl#gF<^%NZGVmF&WY&ls=(7iq#2s+5by6wPn9|>V*p%47BvV^)mZ@SuRRcJV;<>Io& zAX^vO-0t5xCY6$7pTq=ogz!#YX0jR&Zm46$z>XwOA^!RHhGI62yD%iKY zPHE9U9S$Q{{0_j+i5{*WpiT?K=u+4_u6G7S(fj2@-p{5`KN%X_#?e?fsXm4V6qN}; z=8h?V3G3l9d=d)QpMBip9Sd4$S}iZSzHbV1j%=^KC}UR-!H?=_^F&a&c2Fz+p#y3- zG5ihEj$x<~K5a-#Y<-(#5sAD6F!Y@4qFKI8^3sZtxjaCh{RM+f8Gi#}2i!8+w+1=j zD~6-%Z}7^bC{o~OK%^8ex_@m64LB6r0Zo$X>&RY1o#DWmXkR+33m!0Ft;6}s`E$i&NVSk3nggD zT9b%qV92cpq$zg(JpttYc8*`sXL_yHXYI{;EdAm7-~mcw zOUJKChAw5ze-sJ-5Z&Xb1EqxP>-$?BG3?#GGnU_@JPCpeHd}zX(r*Z{@Ru?=kQ}8u zmJm&|4gCkPTDchkK0es?k1D|Sla0W3uW6}v$BQ}^fA)ms8$%#qYAawNOUEPOK5hC3 zj>Qc5Q&lJU0K9FyQQqe_Yc*StwKv$xx3|%PSXqRW^*(_G6 zp$SmRSJL&Bj0kFUd2y^Y+t%QaX_JGtEl{;lA{x=C<_zSO{cZ*?)4w#dA$oE(Y&I)) zj|wJZ>B!;Eu`ju0?jCj-E=_iE z7dc?&*`Q%nqGru3;yr~Iv8yvf!F&fIty~<-e&Vju_zR}f=49}Q-t+~%vIwP=TxNOK zs?g+ouF7n+fod_#QDt9)^5>zAlYX^jy`(fcAr)Y4vqO{rURF0VWONp`(We z1%Vv8%C=Bzu%j|aXo(~>=BnHqyQ=QLO^NA!scTJ%K~MdWwmANY2(Pu6CvC8pAKC$$ zjM2n_5Eml#n_=rAk-H@q;< zGLcC>2KeQ4a>UR*80b_CP)PR9>g?#qe{>;{f00^rbN(!C|COr>Kh&nbg^BUw|0qe3 zNk4swZV~Wrr~k^og+H*8nHU*y>c3VSo#G!UN*sLYB;{XeCibuMj*%6m{l`h7Rs2U$ ziifM3rTJI>{3sYi4sLdo_J6FXqJJ$s5w3cn*1s|f_h%t)E>6r=7$^*s7V&@Wz6fWn zX!F04o$KF1E>1rRynoGqyyDOOMLOw6+x%C${9EYa#A!{t?cMVh+4U?JO;~Kt#hmwm z`FiFIvu%u$dg1EZ1n)s3&W(O){a{^RC6wLlFqh(DFFc> zsFa3W7&_w@;Nb*j26*%_HA)4okakdEwGjSruStv~`tF2*zgjmzp)iWLA+7Lw#O;7y zNLkkoT~L?%`DF%~^+`qDsN`qQCt%2nfO64M=p%6ZUC>%o4%o8csw&t~mnY1A5oLpT zCOF6|_i(=GAo+sR6J4}=*X6Mv+P;QF*Y z80GHKv_Ug?xWZEqpiYG(=$&X@jfPKj3K^61m=LkLsh-3>q9oyixaC zj=53`H+}fYaCh!-WQxrBV)taJldD23^v4Q-?lRF%A7sDJi#n4Jza2iCKR=gm&E?Af zKeI6(GoqB!_V zROvu2lP`nJe0*ZcskLCzLS)MLy!TH{cU(vVg=jBx{@S6$S?dZ4ez{4!M%1c-%wVyO z%3#QUdA)~c@Lg1W`P)H+YYZt|A_(7PrS6|=COy1SoVm(M1Onag*2-`n8Ll3e6c}@< zX)twcyBk^z2{VNk(a@Pme^qFUh`x=sc*)`B{ZTq%hp3EM*fN6^B&FFT`1Ev`_Au%7 zSWiHmCFs1H!!w0*!Iu^gGD#=U;LED(Wx)MZ%7JLrZ1_4cO>cDT(r`WlcF%_&+gh2R z{};S3J2fU*Dph|-Etkmt7!jy`NtX_APJsIN!UK}9I@8V3IX*GXHgseMrX*5tFir&* z8)~AiJHYhUHjFVxBSSndban6%U{TG?_E>GM$#7u9v2&(OpId#m*Qkk!30feDkX1$9 z?s&XAGyOt{sNZrfT}(8U&(K_uaT>>#s>9^l4-Wv#C??Ww8|l5>SeBeZ2zW5T219Qu z90=@ZOBy93N=d~L5|_5#U~WJR0G6gd#^Kjg7lXle0ljm)-yM|_GM6U)ar)?8vVK=+ zH zT635N1q~U#bQ05Bk1;QlBZrErT-YHt6!YW|A$!1J`D4xIr?u^os8!pMpdB3Ji0&Q1 zM0s7=H&kFpBiM3oeRx3rxm*No#T?$Hj1WGa(ot}mh`2`gm75xhKEaZquQJdAS+$06 z#UJ`U!Zm}07l;>jy-=5Zq)Ee#z zrlPHmBp9}r&iaeNvo_qnjTgM@8ZBt}EKY8#1rE;P=_fxyWV51I z{J_n)U3!GO9=l!cApdu4m-&1_4wek0qFgXURS8j*1_OE}k_$nT!S9F5RY(_IWLkOb z0-~;)zB0*Mvp6^Xd&?O6cwD%cTUE?`-cQuyv(fRs1QDq^qi_2c@X&oI-5Nx^ycVO= z!1$@`|6T=)vPkvmEb=KlClpopTQJaX;LZ^bIjb~I3J0EtXC z!V(QvW!S%p)C+|E&_ectt0Q6nZI2f*4@ICa1`0qNu-H#lx$LoesgWnnp;uGBy3f!p;iL6E@CPb4top(~RBcwwU+e9I& zWOcGmAd2^;=UjIo;IE|z%#?V0q-?#y@B(XuqUEvuYn2-bv{mD|up`l_hkFR0_u8m3 z^tbv@?NBpb8E^Ghqg-#74z3ZEnj!C8z9ZPao?*+J2e+yt8Q#L}M~ca{h)4X7b8tgH z$?ius70jRAMg=tE8!TzN(*7cPgTeIpv;4ieub-?%15aGmEC(%mMna`v*PmW0wv38p z=NR%CzPU=u-7!!?m&*-;R7%aWA73idq0#ItYdDVf{igiaOTi^66H$~FhdHeMA($1i zmtC+$l#uojv2!48zTCofe{VK;<~>^*v2eOv3^ycmwvQl-6Kf$DQ2`rX5X!~F-5nbb z=HblXm%MHI(bJ1Yw}HEExlp}5wk7zb!q-sYpZn+p^RjJ)eDSmwT=xi=V@bmKM^>cu zDnbwKvk(%kgfuizFI3M%AQ}ijz(N-a;z87cBZ5HSy#Wt4%)AZa59SeJqc-hOp3D|v zlFGPY=lVW^cBRP@l$8BGgqmV^57U-r*JSw{-G zB~2QDjtVNtoGhB+m)lnPO>ESg?LJ5Bw|C^v;~AHHZIBsJ%8g$y55iOD3y$>Mu2AX% zyI?Z|^1ejZ|Ao8?l{DGA$Z$8+Zugn@o5Aqla)c`_YJ!_>a1UU^{#ks3@xWt)-HLrp zd3?yXv}pXdtb6X4Cc8%OQoBKXX}rLmRdGeOzrWPxQrm+#-y`x~RvhpSoI)H>Vp zwPlBUiaSVTdC){g=(gAMnwYAEFk>MsfOxssPf=^2-t#=RUrTK_y;QF^Ckcm^dG&CS z)ZM=wLZz^v+|hvoZhpeEem@_8mKp=p28gm1jLJEzYg7s#I;xhK(1HxB*)o`Byu{$> zB3Qk{iKTZn`e2g_Q89QUc#WFey2UR_1CT3~wEG=#gj<*CZG#!>8SXSXE)46$(S#2~ zG?=i@W~d<7S6J9fkNfVV5aW5xx6bm6gyc$!nEa*C{d@|;{yX^ z#{!whRG+|~9l?KN5cNvw;rBZ$?T|0oR9{+nO}<+D+l`&rvSDNI!D#Ww6!(U@!_h&H zP|T{VtQvrPi@>KyQFm0wMtn>)c5H9I&G1iDOUOl##!6CFp9hO~MTZ}?59m)WE!t^} zmDj_RR2sK8;xHBHIonSV{04;KYOlWw`~BUH7~-bQat=-2838qO8aBObmy5$i26xUJ!<6$u;?)|Q&yTo?B&wEfZAY+dJYG*JuA-L$PNDGUr$R6ltcNG||>e2@pDZ91VyyUGy-I z+;&W?S+!8vW~6q;#7S0)v@w-yxU01;`0vXUjD;Gql51^0p@oY`q)zd4g^`$IQ}7d{ zd9;kWATjk?yVaVL)h0ZbDy`rFqx2SC)gVm_5d8ont3uYYCNFL@YpDLP^-zQ1KcBUs zqWZUT^R+BoI6r%*2;zcLM_dpwMNnkV<;b|&UMKOiKmQ-G#9VX^6u!*nYe-K8xGlFg zriLqa5Ca!L4>rbmrnqFOp4c);*~AiR>e2m)!BHGGBBDOKy%B?mUV(_fzlz(d-x=rL zX!eMM*Mi3Q>(P+5v0~kXa)km>sGiTb!sf;>dPI#gEfvU8zMEk~Y)(UW!S@Q4B2>a5 zAU%n>kssWtjBI1i)5lX@yr;rg@_HE=3E@A%J_kA6F-|sJU`YT3?n-mhKSMIdme%_k zbUoor&Ui!Ypdh`jflxjg;cwY!#Gc7Kog%eRQ-iIE2Ro!YUoCzJR|{*#!pPiPAv{|WNcek5-Z}YW0C^&1)P?>c)F?C~99Jhl@gcZ+t5=ZZ z+5mhR6aSWWg{D)v62#@*?ork3T)hwPBw+QbGrnv6mi3E0a+>}_ z15q)LSdG0L;)|#-XDCz&x3D~w8MX;7OORyLoW<2LoN#1tZBKU9b<7*INXJobINNm4u0hX`QzNLn6rT{-FQatk8Wp z#tQyccZ_K+w*=tQSY>bEA&xk&CHXurfe*ah^;*=+t79$axiRu>o<-*XK0>#~kD0mv zf|@HxQhHbVS$^4!DAXX|?N}-z2I9esu=K?EXo=xgkX=OUYI^!l ze%FRYQn)M=YKqoKuwKtG4H~qsmc{Wgzl$s$x>b-V+i7$sn>k;*(@CS*E?ERNVITx7B#6w_$a4Iy;3{!VK)Zgb zURV3M-e#oTvj8o*<9LL!2Z7 z5%^Y^t(vYiLpGCi#)**T6@Jvy z)+1=F{Gi<74~ns43U9Gns&$?V38d_jop-ql2GB4f+7N)DZ@g@$g`NE7v0|MCOPZGw zr@1q{VeUeG5F=gIhFV3muSzBCAIkfK=TO40>$w~0;iMArD!&QCw)+bWAr5HgCS($E zp!@m?<;8h)=!b{5DOCYHd?9-*wKYn@+N^}sjZwanZ&M4Ci#wOj=(6d$97{hi-e)m* z8723TP=$!-*7kJlS(n9+#Q_76xoH4@;+jW*_>=PK`&VlOhfL^E)u3O%GzNyCkT$p6RlBv6J)gdWLlV+3X94z}l zga1m*Iv@l{@p{gW&5`r$|848;Pj<LZvsYceI4*1Mw`+D{+6=wgtyC zjZe|+m0tSpolzl|I(eKSr#0G|*6K)Oeb;)H*nFW@eTmgP6uKbO$=5BnTyK&+PKRi* zh;u_BeDa$Jo%D0I#p$W6C7O5jYevm`;(&1b+P4gW_&&FUzZflavEZO6rBJDtdESo0 z!dL7j;hbnHY%&{1ZLXUNHz3cS+SF$(Jc_^AcaF5?WC9B1S-*HSG&y8mmh$gU!qqjG zXhsLImUU!U>2uA5knb>j)1lK8 zuIw^O=cK6(uey7~#9&t#ZsClWQ>MuYbV2mfwX7y8I%){mX&? z?YDaHYxTVPY|>@Q^2BSAQSj*tCYEA3hd??Akl<95(a+SIR?(5?Y$ZK8uikc^&dqGj zDecl=rQ3p+)axOebAe8EsK614mhjS?(RA_yZN5~l^mEe-N2c^HgVp*^R$&^4BOc?S z6}`W-lK|sr5%2Dbu|j6V-R)@*dL7|w(OSa{hr;VZM~xkFk(;X^4JR5wZh|qA6q4zD zpQD3k6WPwX?P`o|S8vDQ??$H4Dm718&yoj?Y8;A+hYZ!6FRgd#PSqz5i_bUb6lLuc zueYsbR+ElbiZp(vqyy%h3IsUG#;=EO@$`Dg1P^nrlphaP+0++>QnLMnDGt??KNFQ> z36klOXl&i*)>N&e?owY~>t#HZhjf>JlhiarKJH{TY6&+7Py1@Z+uc>Qt=^1dpB9c) zFfBVI&zGg<#+UgX?H7H2=N6lcT{HSpi%(bbRBj%t=q|sX+)LlGpB|1K`Q02b#y+$? zHmQ_MOTq_yZFp>U*#LsUcOh2(({XfESxtUPmlR18F{sPz za_qqK?v6r6c%C17N23qR5Z>6|Cq3zFq-$6bjZr4=E3OfGQO>)ksASU}7K|2K<38&q zzmu;bAc*(^L_5M?t^`G|!_6JhDjzsCDiD^SoFVw$!WAyT-HPso%21i@dgf5m&%Qio zKI`@*U85DsM_H#che8*JzL@kuAFFHTT(Co{&;B^IpH&8a7#p!X5#*gc!7lkR|k0@*gZ z7~<|5x3v2&{QX2rk}=8vtx@x!SET6OPF|T{>ilM5TQxK{<5iZe)w3*RaMQa9bKE*ARM^tNu2V%F9Da7j4oVxy6 zHrO#$Q_*(EpLDyzrg&I08QmVy>VqnpACoK1&OB(<>eGdGi;MoBCAX>h8aQMmt}IM) zB>R3I6Q0MYEHJ1M(axkqZJ_RpFp#PuD;9_h$T~H zlma1_%(KSDX4f_tKI6&eD6mnP=>zkqp9oeIeIbXAx0N`1wt2XF@cH(aT}967O`23S zp4UF++Eh@qVw^{x%<$`QC9@E1RBba#(za{!Q%$FO;`By?Orc2r$7Ig(&atX{eTFIqaV?PfTaUM5#L$G^W{36z4)UKH$!&I=Z z9HLX?+qB*eJj1Dx9=4CrB-;Lz;?T<3{~gM zub{&b$ZSa>Cr2ZIM@;eLAP@G<<@a>9E8EgJGu816za|aNQn@TTTmd>Rm)q+dmD6nS z@*aNp04o{ntNFrF> zm@A2d)~RCgA&5zSICKT@I@?ZMGu#k2JC?t(aqX6xv!-qnv=+okaT@By)2)vH0nW z(Sann(*D@t8O3Jm9#?49e&NE^5pz!HGNjRIdbfMU+uq;%2FDT!PpQlVabd5aedg5y zR;AJ#4~ga6V9h@%G2f^%nZv}?10gh2ru&htZ-igD^uG^X>RVRbu8W)XYvz$Ii?~w^ zS*A(h{&qBT*;+Im3+&c z#b>ApnoE8$z}Cx8@*g82^BtFKGPzi*`-$ad`Hg5g!7r7i?48WPTMcqudxfLvyc3|k z-^@0wGP5_`{b~RSJoVcXuLF*_O&sk^6k4l)Ae&I{LeFk@6;k0;tDR%#K3#5osSh$O z<>W=6t>~B!euY+}EQMwj8J4J+XtLHKq_H3*^=ag{KU^Jl-MyWCHk|y@ZYb(~Q;mtX z#bqwC8|4I(MUEEkK+bqL7lJ)_V`}x`woU;zlVx@f7 zTcR&g!AawNqfIQb!%Z5}?`~3v7k)MqJHz9(ThODC;)!&&KzNDwp97!Dt|f~Sr_d#p zr9n7^W{j%*8sKB;q@;mJ=v0!0QKixHXU9?yoelZpp3P6K(;2=;!vj1{_1%ng9r+SJ zln89w`KH(LF2jh|V$0t5>28x0*`R3!GYG?peYm<%kzLcf^BZi2OB#Q}&6;jdECM4v zRWHb(U(DcTGSJ@SSyuem;60Ag-bq*<-TAzk5M6vK2*=zQ)%Rkp4jPdKJKty09P1z@ z=QhqXV!CIsd#cwLuN!|f7?xqLgx8M=ITLy5-Yr`PcaQBB;X6i$OMVBPKV~W-d)<|= z-c*RWN=K!&PgCmK%f*vWQP!9!v~6%M6F*OS>3po;o3j+! zbD3sPz$2c*sl;fork&p5Ve@3Ioas-i4Lw#IGODa9Ybz&Q2QGYEN;X}2Xi;?c-GKx_ z>{GU1_>^Vh^JTGtJ6N`%6)j#U%o8zs`!k-}K7!V>LsZ+dt~OsSKGs4-$a&~ii~*Z& zsH_v2DnIr@1F>hFvn|$ok9{6n{)J9uS>ec$C_^Y(lQo%2t z9pQY>YhH6@vJloRLpWs)gW80EJOGT=2ITiTLVI|Z>Tl3#-gl&gc?#Y?8lxftpuDbH zi$Ev@Nv#StJ|jRWzz>a@j{}KDxdX+Ef8){`!`Q#~+WF;NjU~zvG;NWexN{Z$`TRZYoOz z#!9WAp(TUgcf-n0WG~zEZ;Q>%SOipMHa+=p!dqIRpjlqp!+Yvp( z9HLU90h$y}T!Ar)eT%aisFh}j6g^>&!&$DT)S;C-v(l-_L@{ub_{ZB7p5;E-WWPu_ zaziN``5S3k=NOw(@JTNCf&FLrp$)pB{p}iAeoeei{AlR};k(1|5j3CzJ5Z@W_$Uhg1R`AuR7fhrPnA!?$t+qv514ebtV-CedrRsqQokjyp|<#3Jmhh8uX5-MC#kF zg3E1jDRVg-N%r3x;q|pmzR$?V1fUK#BbapJ+|b1aF z!u%tsgX9f;alG5K;~X()u^v1$F~Ah4l?&}H!!-+JqXz^2(~0zFL;9`$K9nqxOp2Si zIersm=?EVw&?Z}R$DeC7_`?(DOc;DN-BJZ)woy%58~VXQFE$2+vHbi&%)A8?IyKTU zv~6$-m(i}%PdFaD5{)*fQxmztTsx3}g24XFArb4|9fdA)7-ABoR7Q1@BRJG=croTJ zI&-fY|9EE%ZW7Uw5FjyzWmQjXirpZKS=h0XMW9cEmYz#F>*I<;2m zj`>xO<7E+?%?XfvB3TR~fLO`xp1zXd1fZtN0)@Dc%W>y6LCFpG3I5QxHc(x*IXA?V z&)qYGX>@b}1D#x`kTt=`aZo)9&*U7jo9}XP$T3@Xne2A46rJ|8D9!Dq#WkQBoiB#S zW~t}Ek>gGd%;(DnE3==uTR)CPpx4o4CkS>wQBJ;UqNw?T1`lgkg#e`Yd1QUlkG+2b z$C0PN<~$H3VN2W?SHgw|ZPRt=fOlHZuf!6qk_f@syW!0`pYD&|3AXJ&aQQv7%=a0w z4!$)c^s&E4=!4xFg{B7AAJ-*w`{-Fiyon=DU%OLcfV+wgZG-WOKq~WrV6-%;gr{MH z#|xIqQaitE(W1!>)P~229c{acmfh|wR_bEi3VkKaZ;ZR~Jfh>~J2#%j#}hF9w%=8n zD|}sPE4r6?{le~ARy?3rSEMp6&al%X-0|@-UnGq9rY&b*qXr+<;eoG<`3@4>F>B;F^UKZj zqI$!=)Cjr)rePA5O0ebr*IPFa*OKAbg9-PVsZgjubD@Vh!r4fjmcpZn6l?Xb3lHIAs7nd>l$zq zFi1cJ?MHM< zGN=ua!zDAk&GtxG8**21=n<8p86{_a`Pw@gvVuHIs#&G8MfmN=@*u?xWRmQI+6xpV zng=AMBLqHIg5b=#ap>aFn5=NrTyI@DUdGcKewgGyHyuEHXA#W@=KS;pv1Yd_y)_yS zrTpNu#IV0W_Km+3)`617-5mOzMw4Y`<kz<-SWS=pxR$QsD1-*TK#Fm{})#UsQRlXbZTELpThnA zo&$wS34$`f3beSQwZrz>Z+)W6J^j0~q2q70Fu6#4Q%M;FRJB-{PXJ9lBN@3UJ&cF( z-h_9Nns0)Go}zj)Q4=RXY?d ziZ?P?Hes-&E%IHJ%ep0`rfMT;A$3UEexlD~L$r3V&3sz=s)=!>?d6SAl1^LslqApT zW1@d&PgUQ97ScC$oq1(}>*J-yf^E?0qn9h~VWvh?<=dN>YxzvM;cI}Xx+ zt$xW@o zb9a;N3!*8J7~>1)d_Gc{?w0v+y4uQ8zI^ubzfV`fKk?exfMBK63I3tM^Z~0s^jvXf z^>(I+6G}TY0VF-XtnZ{#Z{?E0|4PvME6XZr;5mIcuPyqWu_{aFbLz$!9%k>zg$Gba zE8e|?!*Wyqr*X)Ceb38ux6F^zHLq;_<+GRneYz4Z)@ud`UVxERVy9k@pdV9Zo^(1X zF2+v*T5+SVC+%fd7J&47#%IN#05wNOGALkBz@R|orGNo~m3Qooo*NV}C_oArAZSbj zg8~KxDm4WR5UkY0Z*<1d(RqUc1_e$9LCu!epo~EQg8~KxE>pT z1_k~&1$+Tc@Jz=s9ox#6SOx^;VfmBH!NI{uNJv07{maRp!{MOQMFtnAk2lRVQu(5c z-v$K?3K$gldnq7c7{tG)geDDQ$kWi!Q1w@{W=(}_I>!07vIGS6n<}OQK`=Z#oCm>+ z=&Ul3&N=N01O-vWp`(DH!4dkB(fDpqz@Wh2O##6$!7p(jE0`r97#0?Wh=>SA_Yl=dI3QZhvmAUs}6#C0mi360fPbt1u6;!bP$wqx`JKu zCpac}ro6Zl$HcYSX+cmrp@X12Ab_Wfy%xIT7G!nPg?Itob&KnGBN-GhC}2>aqEW!a z5EB-9ITsMrnK)7H37!eA2}lag`6k5)>Y}jR6nR<-(8XO}4p7$z`fil?7G``mC}2>) zpupcr0iBT(9Mh#)0YG8m1lQ!cp#Y!`kdntp1_cZX z7!;@|6cEhPfl$XX!7u?pofGs0Kxy|WAgFVLdSUXQ4t_cS8X#CvhTLd}K>>pTz7)^_ zPH@Z@421*KMPWUU{+x<7r~i;oU!ark`k(JT-~7gRg8~Kx3<^{v3g`@+v`Gg;`P9Kr zzWb(AKu~T9r>Ap!<-hwrYSOBZ1!{6DT_p>DNeIEO2tvmhEYKvkdzXd@>?EdSy&m7R1zs{ zgd38g0!RP}rod1@L18m**y&R1a>Ms>`mCwsDD(96G^70M4_1JEm7BO|Fz5~tBtD>Y zA&WpsUu}!Fj@J7H93X%_^sVq6>z={Z<8z3t{RMp~bdD8JW=)kwDX~_S<%y?SbAt2Jp|Av4vg4 z04x{4RpaL7f&f552s#_(5;tsw7#qybB<2m1EF&7oqiP;!t{PjH_s_kWn66JUgT)#wEyms^nZxm>J- zptoVXbw<<1bF(|XMZvz9Fb6^H-o>t5_|3S~ssv5bXZF;|0Tu@cKoWW*Y}8BoP$XOM zuwfBRKVLI*Qt*sh;XsYhZ)Ltw*Myvy*Sll+;tAlQkX75%L{CM0qJ{Ba)L@lH(f5j;pp*6vNMX?E3 z75dEjIF=dZNf5Fiv-C{@w;rErQv zzKi_MTUP+1q^3qlj-?h}%&X4hQgl^_RhTbBUtnj!m<%e(D~@-!4B3pn7Zop@p9!5o zKZZM2y|cL^xr6sWe?t}Svo|7T!ohNif+I&t^cw{w8B7^zGJZ*OnBY02!H6^&j4=FB zXR5Ad4b2AO3GIop7Ix9kH!x+eY|nuQC5KWP-2igmGj!l=MQxRC)m_K3C1~+41>NqT zUy-}9dja`S^+I~WEn&{Xfv4XAgCbsKJs{fN~r~ME)?M~ z>;cDJ^j*L;=QT3|LNp+nD;i&xQI<=VQx(((Lrw_rbH@`W`;mwCQIJwv?%MAQ2HNK^Jry z?BStCNXCuEji#Oe<~2&dO59Cp8z>t%ouHk-ZcPr64}V~YVUS@^q==+QrP!uesG?Ou zS8`fmSs`07p8?NY*$CLY*?gOMnrWL>kEWWOfZ9jNO9ebdAq6_2EXj=sM!G@*QaUHei!wM~ zDK#RlBHrVhEX^+le1;7oUXp%lBeF!QdGcFbRf#3pX7&4+b9qjaHpaFFN9CKS8;qOu zo9vrhG*UD#bZT@0ngldiv00hPuP__7XukBANA(N4!d=lxQCekO@2qMmtJ$x) zDF@2b(O@1#^FzMh1E&FVhjz18WVtUXw!8ikZV& z!qOb5zRz(qBOFdPSe~YY>#!xL2p_ZwIs>$7e#uC@Yv;V7=nU$Kw!;tPK z-{O1Bm&Cx*e$mjH7|0mW80C&Zm*I;)t_4o3dn%WWf2{YlcX=+poz+j9tR&B~t~6~R z93AevY}!n2th}YYyb>Jna(a^ANBogp=iUdMARo?NNFJSBxKG0E9i0E1wHjX=>KO8z z99}OSGh1Aqd1$@V;^*xt^pSpFeJ6W|16u_n1B>)u^)L397Hk(Z5u^cyfY3pN!V^Lj z!b`$7LT5rP{aO7u{ntCXJNU>^$oa@EB<>`rB!ps;Vh19!;#MMrk-Ej2O4GvvOrA!o zM(M~$S3X(l+AixdopN3#uVMkpeN7@E17QO%k|>hyl5nHsqen_JRNYi><*((~<;*X4 z580A|b6#`L4{(2`SNU^oGkk~x(~vW+)k?HYB@a`-OhIuqxYf@!9M;P=;5v?QE@V+a zu_CG-6*vVtiQk~z%I&{RJdF3K5veJt*8UuMnCa@j2^~kY!-PbOK`Teg<_h3NaWF1W zZ+R4g5teiu)h_>Oai%yn`&y_M<4%A}txR3XC&xqJ>eaqp(fJlM6HY?WOdUWyM1w$$ zTiIH9Q?VrfoQ=m_?0PE2D*sdP@54N(G&hHdcV3f3Nm(`WS9FcH)6&U#wv*-2>9kW0 z1II@peSz(Bz+3Rz--^F~G20k0SbGs15TsM@wQ;(vo!j0b?vk0KtD+%f^QfvVo+_3X z!%fEz->oc{tF+&>yMY~dv|SmZSWfP2l0F1ZRx@E z(b~@1n&PI)rCv7xwtUAA0N`6BW(uM~;f?|qApMA;@^K*AfepGM!U}bR#R!99gpwpW zav_`m8}3V_bXuTmq|uwFnFL|B1Lp z_LZfSU5yv$}6LK1wEkxGTi%RBW*d+pm5GV@MK{d~`6k<1^+5M(KBx{s z<8S|z5&g8bUfX0F!yoq+*V( zxQHm1NV%Akn4O~D(B0tDkjXFT>HTN`=yH0-vw;vXy;$^ zzu%7NvwYQC6y@8@7vnt2pKgZ5qDu-Y39H-md}l1@?^}f{neWBCmv0F&bO-rLGiTp^ zw?x>bA|xSTY>jq#>K|`+_4kKfnth;i@4gBgf)35M`jeQF>uO?ic>ZA3q^&#*+?Iow zcO?7vJIX_+wRBZF*B{2LR?Wq{Qhe^$)-#t;Z-wn_>DSfI)lb#=9-8gR-m`~2_Ye~* z?<%bbDfs_-@!gVn(j8YGw4X!H4?VXWZN0ErHP`z*ez2@!tZa&%$3kRzZJsOZlsR;9DfoxnQ6?a6^;d-+O$&8YoprsY7 zlC+LKC*&|`EnC;=Wbu+qihNxQcoxF$>-wf;Sg}itLO~W<%r{y)LOqr~+Cc-P7Na4f zx>S}_MNo87Ynhu_N}5NRF`WgSc`bXFvKR8(+E3RGA7?mZOSV~5YXrE*1y>fQCucMr z(_`Q^PGYWUbcEh}f0d0Xbvfc1!5DGZZ+E2BH{LK5&vb@tya`h7@NTG>#|BO z)K^hJAWs!ZcqVfjmv}J$-2i9DdB+LaCcaIvdNyIC6Dyn(UpksO$}C(@;#h(wX+NGe z6}*&3(q>&P4x`)GwOuhptmGN&g0{grH7hI-%4zywV=R~I(LJq0p=;zsLgqR?LAqF2 zd@Bhw+&2D0ZskXi8itAv7pKSRnT0=dGb@xO_mmG0gEFS~j>nrv;B)c9IB#^GoIb~djvk0!n>`T!JtObICOFufYEK_MGP zc&+}@9oZzPQvyx6jR?j5J0qJqr&cr`%=fQ5jI*g?ktvb)6c#BwGRs1~G5J|_aa5_C znPj0&e!r5sG79}0vMVz?GD|~SQfopT1A9dC1h0w|{Oz+w2o!mlz#NG9$Y#kkhz>|) z<8@Ok;$>4ClFX8G70nf*l;?hsQ}Qcumg5wa6gB5>7RLXwC?70iE!QbTEvU@vC}uCy zv#woM=(FEAPH~72??5L+@G4C>yv&9vj_kuYj}a*Af0UvI|4{OZbW$7?p#Pz6T0yjQW! z2*)I3m~QMsu2uC>MNIXAU&G^6>F?DEB5Plhq?!11d32=R z^TFQRc#q#+0q+63LMMd*3gQa*Wg0993H(<=-|AiNtl&w+Fj4(E1F?ru>Yi6bteIUP zC_>-{7I#vvzCUt!G5CjUi?xabh0za~;(V6{PGbGSxv)UV5h3d$)r#Xj9yq2xmb}Bh zJA;px=-eHDj2I2I@aN2WqLGHAN&iclNxMep;(E^-V<_i7C9Vy#&a+;~1LcnJ2-uR9 zV(V!Fg!UF}Bjg+IAR(hF8Zc?rv0iJ0GmWk(WzQ`eXBguiWE`xaKcj^v>r(rwh*s8> z!C6XJjaiLaNFOUWWB=9fLVQ++>m6aBVuprg#7b|YlF+fMq>R#nmDRsOxG>(3-xo`^Ce;#0v>b*+&l6Z)({~* zGBGL@J{bX>fJrp*fLE+e#F0#`+=SGr?0dRpXAR4RP5aNG=r2+l_?(AOM>k(Ft_a(e z%G6kNw6#wiWnNmJ!h^>Am9yrf`Lxu+o$n5fb zc77DUNNrfdgPp^o$js)z+TlIWyy?HB?{E|Xj7Sm*<~f`=;8Kc1e&qg4p$pZ?@D3me zRE}}Vs7zXmf|{J4_Vk+$5|U2eu0ak%WnEGFDQ?YSSlZ6 zP})Z*)~5(NtGm#bhFceT?F>^9t}6*KdO-#EvNAXEa4Bs!rOro`*2LcN?Z|>&E63`+ zJYYGr7!EZOGV-_dH|a~lM4C!kirkUPqF-DtQjO13>D!vC4UN@Mr+KEmhCN)5h=7zsCF74~ zB7ds|G9x&N-Y!6dl2sp^qR+aj@gG;kc-_3d8qj%X+wKjxZcd&OX7NY*{LV!<4x}V? zx&v5~G$Z=S34EC`QwKDQJ95}u!6sBX2rj)K;RNp^CC=I$vqpUueo+JaD$h)~bg z&KE;4AOZ#8gJx%Ew`6ViQ6?IIuumwVw{rQ}!cM4@9_a?pd_3IfAyxP&PElZe{gl~Z z>?Jgu0021De-9WSBMS=vAOc8=2&%Y&oqI$1Ee!tsIPy5yHiyDH*gh5&Igtg{5kX6$ ziIR~wBh6cfGY#E6&Zl9aex$5?!$2#X%_}IQgq2FB*74vyb; zXAoF;3#Qv#gAC+9QeL)cIM9Mo{~TE|;6Q;R;b&fu-!)Kn2FefE)tb%iYHKEURt5Yw zzG;A8thG$XKjXT=0sAb8jsd;uqe#BTGx>2BC6F45ivBk@j;$NES2{N&e0&5jFfd`! z(X5xm*c>P$!+Y0QKJd&8xvi}nd)yNJkX8}$D?-)<$$rTKq*8wB;@Xu&a-9A%hyh># zEQ*0}V6uLUpPH&_$ZIxt-Andw%8dp%+ zrC(Z#Dk`KzI2667f|?#Uj@&w2m4o;9p`8GkePyijSxXMvWKl;m5Y@K_*vIR71qfXh}Oo4IsM)SI4_5RkBovVVZz zTW>Nx)8*-EY}Uera~O`-$)wBY88i*KGe0y;fju}lII`vokWQr+jV0g>l6O((%YS5F zcr3&{GzzYS6U*JGn95YoJykmDt3@wEfI$iibM@Z~B3FVdst^T`YLbs63enNcU{BgC z)1UjiyEjV74Yf^X7G6ML5*0hqOR4&Xmz*sXe&Yk<&drTs0V^uGSi?o2jY9-u996t`)q@Z!9WQpgs?B3goF|~7 z8a2dG!`iMWLvm6FL|&7T4GOhLZz=~`I#fV-Jncj0qP22%QvxLTqUUh(jpV*+gI9Up zpM!xV@1@M{f2GR}WdFTgYHF~Nw0SJnFQ9Ebrtcgp%_xkrnO5_3^4q^-x&tz>)Hf)+ zty{>8wnOF}syj{F|8d`~%I8$-75ibkICBbI+m@;aK9fD9LK>Dn^Y$x`q(!Or^do5t z)!)m@>Vcv^!d+|%*IW}B@5uwMae4vbZr+p4tLO3LV2i+~gR-R;IhH)~vei5=L2#Ko zW(Td7ycR!6=JZyHpKVAz)>MY7H9}bcy{eASQ=_S(8f30Hrv#E2rtY#bq%O|~Hu462 zY98AsN3K(G<#wAjYp=B< zy17?YJRYIy(0s%mMKybdCIancC@`bZiW(S!3H=ZO11Luh{aUFyX)ot{j~5L}hgXE# zPo5=t-cs0nFApS?ZTqTG7euRXQ`6Tomp;LWMeSHVn453&Wbfa-L_z&Mx6U=wL+zIc zB8ZBRw<*3+u}mW(sbj7~(L9}A9~+OU20)qCx7^mh^$qa)9$$a;OCx@uPt)rY_g+kQ zpV?HpHxMFIgFy%e#2aQ?M1Toy6+x3o^bV&DfLH|Oga%SuXQ~`Xn0->?Xgie$nzu>A zCeSFt4pYAAuT+&`T@S}(YV7HInGYqX6^ca%1d!77k0O;M#@scHh90nrs5Rd*^K`l+ zZKk<@iBX#Zx#qs%seSE)XF=hGp{u)|^;Eo?IeR>BHtuv-D{g(NyLbDj&R2hbJb0Xs z;bt`ZjcV>e2Josy2>Hga7nRnKr%XL`3`+9!r0RCeIiCUu)yQR}wH z4eExw#-;2fXt6OnXRHZ4RtI*|=uHS)90MyAf z^;#~v1msnO!3H>d)>l82twNfwHmgBX->FcRg&-Fjj9ubC_Z}kFJ}IzFVe!~+-O_4> zgTcGPbao%_Z{Oo*7yJmp6hLwMgP|uyMrkHcTtloDbNfk;ar9`p0^JC^UB+KbyLwY5 zdW+h81xnZHk*q-zu}g-JO=kH~yHO4X{F6!!5QE+MC?I<51pygJu!ymJMDyQ@NntL7 zHF4N>$&Ep<;7K#%Zo1vQNdCp0Wq8A6lgfXDEHwTy35MTyz*+{t7IdpG6U{`nV=6nyZmmv6hlP0eMIGI zq$UU!k=exJOh()rd9K-F8y$_yUJwkRqF_5lJ64|p1wxsW%Mi4?peF|RgdkO$NHd)U zA)W|d8)&kpckT?xHMV+3nvP>_=%n?WS{`?vf~McY;cVUEa4GIZ3WJ=jJuXnK`CY%Q zmZa(rdNP15^F<|%EwyedZ8xi7Y_I3W2zZRTbiTC|x88N@5h)JMhh>kmT@GDM7*F`v zsd}b8f zi`L)PR3#rFWpHNEtAE%@;}*Gv$Bv(p*Y%>-F!Wy5;6&Vg2RGxwDOG{e>>u$FNdUgK zVyK_!6CIbrK=9Zy>FqJ#MdH`1)+)(_nSRH>V%YB6AQ9h>Y?L-N-J{1M;g1k$wfGil zzwqkl=vZsJ!G*`~gQuaPQ7=M{tsN?XV4q4mcrueOEMcSc`zACoGt+7bCIQhuE|HqW zAEqD+-IVJ@s7cbD74HKp<@Ml;_RF!nVyzAC*B6|Wg##h&7_+OL2rH)e5!40<-}LV= zYiXMY7@ZDw{Hz?I2g2lsg%LV9*V@z|6cDlx?D8-AfaK5%^TNtJ&( z(RDC>iKJtjjSq;nFSskRb~iMN6sqz| z#V=vc&#XM zpjCSxl+; zNl&V)HjwJY%OldnR7~(aHSf0c!%4C|G+FuVIF`9rsXXD~#B7ZypS%XXh$R2a5A;UQ!HS4vG2cQDv1) ztO{ft@fhMvB%=)-+?M&!6i;F>+e})JtlHGc*%RXM)PlM^5pnkzn>27)V=zFW<0QElmIrmNymW zcO8@aLlHCS?05Vkd5)n~fDAVU7!m?SYyxyKYsb*KTcm_`zX}eN$qPH%55efv=9@=xz#Y`5SNahvXm&CX~X2IH95LlXj z=1HFx|^6Tj`8sPyZuTSs@znc|}P;|a(5)2U1wRFu6)D{$upzM;SEto(}L}Tq$ zJ%M~Lmi&W^I{q(i9-r!7F^75dK^ zli{UHwv|Zv-6 z>PZ62v`#u`wh5o;R#hs$S>L-^aVDQvH+USDk;cGY@wh?~K)W{m7q3iqyCDs;?BLy9 zLsC-GH0KusGW&LvT4`fBHN%wdAu<6!eMO-$zKE(mQ<9pIa&jD}RGi!Z0`ED?^=|K%2@WDw zL9Pzkp)in7R{m!Y=j3l&H`h>rE#52yO-@gXKm6HG93CSBU2(-2uD6Nz+n~3 zW<69VGD}LHUam}@#E<@$qtRWuh^sOJBqPYZhf~>+;iwciHnC?P=I@ zGV+=E_dK7{7@L|Jes;dCcXQH{OPrPw6%eQ3Rx~O!{>=Z140C+O^TmrrSWbXLz=Yd+}vE$iL`Rsp5HIcrtf~~Sy|S{7wX%~e53MO(;;LYd9n z2V1t~C2bv!Aoy9aaD^C_6mg;XP6I5A^XJfk>8Yp$*x1;n6S4Z@vav=!@HM(!tLF%Z zyB2edgrIo9F;MWAaM=yZ#IK`R{L@GOR zc(r?feKKW-1~E`j3`gNBSrx&^T+Nd)ja?catUA;9+yC>N92eUp0~iDz1S2`4?cPxI zwgr7wLeTB#Yp&s1cY(C?0U#ya!O1{m}&oMmF4-T zZRp62$l`PL5e_wlQU{N*YDKxd&YHS99?1}`V|CkNuq_BU zzWz>kLR{3RwXOGNViR5sU%r2f^|{rF^DnE@M2C>|7DmPqy6+=1ce9&}q0Q`@aIw}) z33BY_fRRF7S%`L8@CmT=?#q^!UFrL7f`JV%fCgt+vMp9!j%PsT*7$>+F-N0}LUMk8 zvGUMalA-;psrBX{9=v+RZIaEtrW8ti)u5xI|85kMrH~)O>3MI>T=JNh`#Ru9=%0*J z_H&l_bHkXOon~EnW zc(zAiQZ3qfJH?HFgffACT*=zs&B6f_^hJ=Hdwsk8Wdc`3VY{&8Pwx92g|_$KMJz7o zvT%k6|Kxx;L9(Z-6OYY+NjQF%6r2nONx+O%fX8?~I)0!!Y1otWZBs|6@U#0tOMnvKPoV+$ckEi`5wSZI zdRV`OcP~`hKG6Q(_-jK>ADAx99CloEo|sFf=nOsUDpwn#CbpJ^Kxvcvi!BONN~p;J zsMKkD?RY-?r^-vZaj16iB)sXOr^#?ka0$ZAWaN73(yaV}S}@J(4#Xl*?S+9zjcRcRljnh856B2eo0#&*pBYa;DvjCm zg{23|Gx&KZM~{x>A+nc${ce|am6EI#QdU1_Bp0_Ny_6oxJe)OSzr=|IWQ~?#i3W^# ziO1l9J{w+;30FJ1{Fymy6QLr-X8?YhO~IB15G2ZD8&b~vcpT=(VV)%m&2)50vAEGw zi0B3a*EXguwaeDWUt3fpnK20%BdfjY)yTsJSXJwuZneh?n`j>`JYJU0!+x-_-Ea+{3 z_OezH83QI|QNH>j-KD+oa#{%!a#xrTG21ALy!eVSG&cQ%!YixTB6h$Dgg_sGQ#@@7 zbN8+~=AU;C7uqdzKfFC79U*@`Mk3>^8$)%$cy4)UzoTr|95BHRRq<^K-?IWW@J&0t zyJr3ht!g46Vn!L|G$Vg)$G&v^aF!WWsy(+XK)$NEK*)Ui%~WVyp^^Up3V)u07TT|g zxH>>!ViEban_#H4wxKNf?|v0sa;>eH5w^B2Q^-^zbdLGTzs2(Q^RD&F_KdkW2e;Gw zb}7$yXUmsC{pxQ&$w|%%2^z=?lSwT={Igus~%)_T?GFN*_m=q(N z{c>?e2z_15gzjB8V>H|0EbGC2&5j0aO)?oHUM=+PWcoc|it8V+L<>P~{>anUG^liO zy~atrV70J;x&f*;dd>`6{598~)GG(XCrm`nB&ckB%3MTNWc40a&`Hn$3vkaJ@zFRH zLSW?N90d^hhi@0h{y{d?L5FV|Z+yq8aZgHdzU=wnbK4fW-0XTggNE?~^27O2j~?IC zL5sP5;NB)@V98FKItJo434Cz@=MoFQP46}Jt<}%kPE2c)A(;qg=q;%ouEnNfp&UV! zyshw4it)>rKPxErX8EAJxw(NyXyUgt3*m!avFLn;bpd%n2$VSB+20;cn&QPZjG1ag zPq&cQBDcID!KgcNNcBJh;Vd;4LfitFW9yH)*BpnCC-@04>`=2Gq8;>({krue~xI zXFE6-74Pj-@d$<_(y&CrG%m25RAHD8=<`47)GCF^!B8q7p)FPGM1E3?{DmJeScOmS zf}yZ_#c4x8E+c5TR+ThK6fjOMcXqFREs>S*gL4L|lhNy>LlsOWU(RX?zg@Xl-VRq( zLj*=e?m`koR!{VGtkPKGn^~qQ$^P0~ohM{-3)@=-$ivyc!9e~>hzgNk^8Z?8sU9dG zWB?eL$k%Ds&}4$t3*$`(K1(;p0%mls_}E$K@`F)N>nuSIW>bk@ar(n1%wkVQ2~3_( z%ZrtwC;}EzgdA~Z&6SEYdl~%g0s`}`y>8uS{m<0+{>p244jF1@?LTjXy%T@?sKaoO z>az-lG8T|Yd*pj?k%V9-f_9`t_E1rmM<65&kLpX)OH4wgVkX;GxMGs+$@ zuG^`#*@;PIv(?t0G~eoA#1G(N7PV5!P0%^Pw~#wKVL3`I+mG=NMFg! zGYfx+MQ|E7OLRLz$#%v5@f!_Qb^2P*B4;WX@+4?Qm~Ed>P#JGr0aL1)O4nay{J0#jgsv7 zI5Gv!;$cgA?TbXrzLHv#i<2UPe%>C+h9xp_5X8&dM9G0n00rp8!A@1Ym%^t` ztaOL0)aPM5aHb^*nnR8JVSS2Prlg3HKKGLUxJ^wzZ#q!=$@|YCJd)V*a5`N%EVVzboVp>g*bepVn1r)iVV1uOVE@bVYIQO&!&cc z1L^=kzY5PMF1A>YR`io+%vSuM`C>Y82&6@rUuLv8R>$Nr>kL6Z&U(TUx8Lh`%kjC8 zG1J;NWojUZXWm)>CdX2Ze5Nw+pRVL5P;l^rf|et`S6If#;t$Fj$0%_xh&={?bH(hY z4&f)WZ^1}LR_ypZ!PAH|GdeYO|0N?pj#5uh4iw3k-EGAOj^FQmhyI8~PPYYfh*RQw zcdYouD-a5C=;mNtHtl*z112cpldXP+!1gsP_4?4zHFJ&W$QQ)Mots4@{rxTppb!Yh zCu6{k$$!Ifr7w%~ax5W9#Q9=%aUd}i9F2rUMz0@8ieTkc>pCijq2+ITT#t z!c>n%1;8YB3-1k3wZj~dPyQ?aEiWXasux5?Mz0p0zOS!^aEyFTif1(h z(Pe5MRTj1YX#rWIUWcdEV#`XQ=;YwYDBw60Uvryn;LRetl^pYTp35@pIZ91op3%F8 z4bDl9c$r@=jS;M-=e-@wHU=SK=)YAE2|h^ztrL|N4Xy0=H5ENo3bH`WlU0vsM8CMZM7h!5A*00Wc%E}B+kh_A0f)RR5w2n?Nxgr zcAE9Zu{Sf(A<5k7fYD#+>}7YOUP;tko?~>+Q+3@abCociS4Ec0;%(NOL~_b{j3rS$ z9`S!zH0n_xeee0H`sta%M{a?O7(oBvpy$IMroDhHJY*~ufe{kJM~I!9bQ9^+4BQj3 zC@cdxGvbw*S+(t1`|S?!%o3=>dFN;6Dc8wtVS=WDjyb+d>HTHSRd9u*!PRD(|biT8S-{P2g3dTNat;4nE zbK6F^S!xR<@ED=3CCAUcVQ07}p(guu6LrT1x2;%Q9-D;1*+Mz0%jNo~s&pa$2UFFi zR*4PGDI~dJB+FQzfX^9L1XdkZfqXW#+5(oX$RXsf&Pf)J`q#ben3HG59D`r6bKHAa zn{*EuReC)H%B6CwRyc%i+hFP223lQ?(6s%eE3sw&#HO;7Q&e238HLGmyRGh(T8C^* zg?&}dQ>|A=+80CYr7De!o@OObM0Y^^{Ic^<`Fw3+jKLzMWU0lN+EZCgr@9#g??I)- z^Pjuql;MjSjRwe6T@Nby?nlGU$K6QC^-(>OJg+K3oqvLk&YRA!CLkQ|O-?C4VS?z; zpPTQ3q&4ItaA~GJw=wG?%ky}k=?OVM1NB^i+TD(lS;YJ5WP^;vmbp2KFs2^nYy${k z2u|Vcuw~Z+QG(8k7#xF7qGiAFb2;5L2G^38HTG|z^uGwH?2$L86BLm(4A=-kI14TT zFLva=f+Fm+vn|*w0tYF9iF!k@cUQut92Oa=XV2Z}VDfX%Cr`lyMUh1F?dPB1i0ir2 zNPLfpX&Azz*w++_armB-kvE6??FISAKSO?O=ycV+UZ3@&1#H(BOS?sZH;+_NFE1nD zam=hE_c=pgLcl+trj-a3I-D|Z!iY&#Zj16w)y`QF{2h%oSkgGbUUK|Q+CcZl98J5D zYZjZ$78yQma*zz6uf|T zl0}qHROs+5=Ob5Zpngj&t549K_!(d1iI;&VGJAzQX#*Zq4Bg!0N_h($&zfIvS?xBp z{|NEx)HtwF8fin5;EjrUksytJ7Aux2bj9 zA=6$mg}XZD|GM2<$O^sDIUoqC@P>n$K78k%qvX~hAO%$gn#ezP?t9Kudi5)oJQrUS z3DUgU5j=AY4~yK>jSit%I(#Jw(i~GvuSD(M@6b;T`ip$8Vrl2!jptdCe;UjDGO<>L zfDn=KV?iXnkepo1$EuX63Xv0d)X-<$(u^CLcP%;Tu>1+DuZj5C!JJIFOX1mM(1QHH zzQ9N8&dBLE(sPmNd-8F;@S0b`04or3eBYlA-8=$hiLk!M#0E@_dO^@)R1k@8VK2cl z#pIP8GHv}BhnuKz&+^gNY0R+36o?DR#%P`YL)n6WgBHPRF)w+qN~aInl(n zPUnBVbNk($=RAG2tE;Q4c31Dc_IiKoEgWnZ?kSfd+R7nTS;0wITMfS5281B??x3Ui zB-!1Ga8IV}IrCINPecTQS&rKf~AUs)jc&5Es~Bq)GzymJ{@{FYOKCFZj? z5^Dkh)KjB`rYljbv3s6kI>PXsH_b@uWywO!^Amal|4#THD{~feVnSX@V$jS z<+aFOvbA2W>GdT&!XX|>zFHJb{!9<3`UG25`bAp!6JVdt6(cuUt(gqLwU#WyG9l1D zqDbSYY^ldwD{s%b%(6=NEN~vSU+ZP?$-ZlJB}utM@|&gv3mX|5j{<9K^hRPxy|?G= z8wpOti$9NS+8zA6(Jy9`un&I0Wu$bj4Ds7GCwPcHB=H??vFr^s%q$hyQ9DG&5Hs-{ zTh_&x+-{~@qK^4|G48}Z6EBv zX)=Msnl$79-FlcLfc=k+co$Yjc9<>F0U~NBR^_JLxd;r0PG>ix1H&^ByHSN9c;`x& zZGS7)pCkyG*m}$kBBws@Ee`Lq5+64WE=@p4O5Dk-}3Ulei4AP1&|%=p#PJ|zq-vN zDFzdtRBV((q$TWSkAWVazD|fbU^IvIJd_lzv!|&E;nHU%8w&d6njO>!Y&Wa z&a7PMYgXn6#VF|gWx>s&7OsyQmw{ng*AbVIqWYB~oe1p(QP341q$i55+{k&CI>Z9| zYpPCioYxaaPB-&_;<1(}1MG-eN*^R+)F_>cu5`H7bBQEAm8^WTG4)DFzROqq9LDRn zME8D2$m_BfQ0 zNrmEC3La#Ly)i{C=z!GVj*>UKEeFupfjE7IVZIs73lh?9WSOWW&;X556PB5uN)O5w z5Qj@i$(z1J`ZCR*bOg_n4cxy+kmN5n55!W7-R^{fW(L#F1T8X+aoX&!6MKkA3nvUL zcD8G>lq+i5tb;!E?9^D6T*3W4(6;%HVE&7Dq~8|bcEvaco~*_T#ZQmhf;Z*L z^~blD7`6|?f%8pZO5X0J<7wEeg5ma*wQ3}Th7JrKfC>V;@rNI_V6cl5C=oaeMuM!B z(<*(V)*I22ze>c;W8nm-s?=;wGi+-?56l^KcpIs<+Z}?ckPtqz-)M6x(z0*?g^lbv z5}N=qKT^W+>EMfsFT-Hw5cS@BlHy=SZhae>bV zf5OJc#~wE#G|W%W<8ET{QROY+Crni`v7sz9jtb%9_-GitEguLy?;FhObTmw}5=m5f zn1K0z4DF{ZtcIU~ZQ51e``b%8vydr0JRICaVlwYwDn|$EC8x=7C_F@(A3E?C;cm$p zvyF}p5f-D)Z`oE8J_a}aHV6X2=YKQ#Ca*S6*ZXE0ZH>$eusr}9!g_MTHT}#)fgHdw z0H7Wkc0eEd{Qf(^RLt9z(-SO_57F`e(V8&vQO7$7%1^-P&(fUiFWu$R5X9cR;Gg> zYobVhTY}H7UT;c@{+tV-4vdi?E{7*Kti#2x3no;`0^Yab>6@s*p!4JVj zZ<^o$QY_p1xfGlVlB0@-mpYjP)zh{21=J6dz#@R+fihzJ(Vm<*)1ENOZVDL{cZ*&+ z_E&}QJy&vbH>PjBF{@PLq>pxlBu7UnVw1`;M)1C3boXQ-fMW!Jlz615=cYG#h58Y6 z@4x~r0Hy7#m~?T2&)b(mY`K7!SxE`4Iusg+kU{h=# zJKBM2oghy0Wbr6xIkiXFv1eqK*OM1$V8C`>&LC57%&rTYrg_!ugmQce$&i%`Kr}N! zewz%metHcd;l#;jK;UtHVchxY?Z?NH?lPc^N%bOuS7n*1pF9WKq zzjxXq<3(M|wgy%G9(a;?zSKsSU2h@E$}+`03r8&!4kmkBY96gwDv zQ1BdNmw2>5M^o_z7P#n$7lNrBQEUkvtsLTn{Tx;Nx(|bv<9NwL-u+$|imaN|E{qh% z_l|64eMs36x)-kv2&I8)SR-#JI(H zl-S)HWXhb4m+dEzQ<5i_v+$A?=iVQ;Z=j>^m$d9xfdHbFu%Z}=!U$nnIrNOeSg2>| zyhXI)dECPMZL${1?|y47>(bKb?S8)|Q^aOGa1gD>dj8g=&VS2G=;g$_IN?mrALToZ3X zR&pPRuX9Hd)g6rlL#)3u6MIS}a%2T#FdZN8eIM!5Q5BDcp47W|h(-Ey)HT?=meoCCtGE^G(dU!+6CA~h0T|8Zg$Zy32(-=Z+pw%4(}KqeWPY^LUCb&=|0xX7 ztrr@C;z^aYYqpARSkKJ8X#9AS0#Gk=4b-tOrae`vcQm89mr zT=-Ti;d$5L^PHhU!BH1+oS3^&tJwPUf*9*UOH1EwNc<@F7hgQw0e*G2bB2wW%NdW$ zhKp@T2XobohLzGzD1FU~d<;(*F#v6`^S}A&3_VxMNCR&^x@b@JsH8&kz49J6O55`c?OH8wW%=S-dB{n7>tyfL;`n4`Ls+DtC10U$(6)$1XE=&RWfA`uNbi5!WT z3C0hWIV~Cuazb`Km*&l&;NoHRkRPrBl=4*%*D=I#9wTlNK7Wa+UuVv8V5L<_o$O@Z zfOPS0(i5ji_Qxh@@;YI&Qr(a);YlIbM7dha*W~f-+DK?O_dRE58Q(}Z9l)}O##C2XJ#At5L{oDlR$J$i|LbUH9F zI$&;Ufyo-GE0S;U6&Pmz&R}^pvdY>PkjWEsx&IAgTqL}0InIC)kxJ0>AhBpLVf=l8 zghz<;gh10)8cewadGO!d02QiMX>;Ft5J#K|j~sq9Ii$WsW(QC%f?Zh;YB?CF?N;GujAcI$ApU$E(P zTUu=Q1IJD0K1sD>F$k(MRVT%0)^CYYQa_6}eNzmdLe@IbtE4D%w1yx+Gjk2-#iS|2Cq-iZoEVQX)3F{WtWMffnK_Grf|+jW~YlSTmZ=U8(rxTgI?q z>24INbv_UJu-6oCmlWXxg@b0c(+n-p9o{eFN#^6OlJou0C*?=yU2C{OINT)n&~EdF zRaq*_gO`p)cwFpZwq0YfOuDns=9+aoA}FBXA=M!}m`o2=)o~Nmjr?O+V%`0AZ($dE z*@tfA8pfV2lm0zZ-Z)FlVbkp}m8{n*6=kAsY5=D&eXl#d;6_iG2O$7SV05I=g4lQgYi;RJaHORuHmI^a4a_9btBBtathVuE1qS@|TJoEO2y-!gNRY46zq`8R(&_ky zo!(Q&vIp|+2Tl=;Qw(bjo^H?wGu{f0mcU0~;Za#a#bYt}7F$8r*BAaPD-GFdM3*F< zjMb{Ud|n5q?EdI)UmO3>Py~Mu=`(kFCMz$!KK4UyRENl!yE+vliYwdhb4I&VhR?s3 zLh<+;N|mu9{kRiMTm|I|sG_azn7uUchQNNxWPpi#lHu4e5>T78yncDv`iO!i_N>wP zVKzpqHk;7>u<21=xR%_OC?Fym@lQdM*E8pFh!`GeFfG4{`sa_?F?Q>(a6VU>4sZz3 z(|Nn#2$D9P7S4$n8@GlI40_k5*=cOvQJwo#9wcAeOmGowt%dae2b zU=LR1(z;%SFZ;OTqbXr-h#_JS~9pSPL@&-lw(0uN`8Mc*edFCYQm)V>JAx z+uk?nTT0`i0!~r7bx1ys{lu?q1PPxr1M@ zT?16s{aOzqgnoA9iCQL%J$adguS;-sDBsiH2tb~r*+qU}jjee++^dW%cDk+r^BBaO zt1x_Cey+SP5?#IA_mF8`YuR@swL9S_i~_3{GAeW{q$@LbYfHc(9eAg2r3rzF{91f~ zyg8?d{3l`HZRw@w^HK5JD&dj&K@gr{zRF{A_v>JWQe{UeD))&T{hy;g8NUn~Ce#G; zO>RQL=xy=g@1;c}_Zh!mXGe#Fx^ZDe3b+W)ODb)}H53XkquPZgy0mA$nxETSW--^g zq22YqRx!ir;%=SV{NP%g#8CGe8oT zc;51nw|~OGSbu{~7!8zXSy$aBc!{FLGacJB7)I3@j#i$L3<;)@pR1tZu-}v5r+x2% zkkPf!eg3kyyfRAA_&qJN7c9n29cs8KWBc#k=yj27rp2s3IEncvk5XEEa*#SzF2_Kbem8Qp-L zg^5@TICp^hs(rzqR!>h!*+8!Jo);%<51UI+ISQo zO!8rS0i^UK$q5)AzvoPbLX~fv0+1{&nOnqTZ_#jA*yauq_9x=fMfxatgZ{)SQU*L~ z&?m>$fMa?X`(OFn)l>{_@(OKG$fD-m4*o=q$}IN=2}s1auQ2pnQQfxJ>>=@xQ|?PJ zZuZ}sZC5Kp;)%Pcw38-6o-|j*W!s|SJy`bGj&|+ObLKF0d5LPt#IDQ?4P}KHY<{V- zh)EyeIkSagp2Enog~EO(kW!SlPn+BcbAeDH$y6+dliqEIC@8uLCXULUT`2s+EM!p* zJovFMQJ-yJi1q5UCb&(=@9oLnW4tv##A&2GR-c=weKEOX3&A07W&9nnO*>LtBh>+h z(9q3W2kj6b;L`z^SPAIjJ@DQ`89rh~Ucydmm&!n}pqZffD(m|zUJV#Kh=w7zWak+X zPY!_Ln__Mh&;e*c1am`#TWH~dbO{SXwl^+y)PE(S_7&6SV$ic0$L)%I6a6l-i)yMq z6eu$!u5AXDG3B`9Q?P2wo^8^{F`MS+-yV-#b6C%m$|SbaIqmXriFe6E{c`3i5ccx% ziigkvmSd1pUwM+-GAbezE3sY7Z6`?^yL#H@2#~e%UF+<>%+V;GVVmML9;RhQ*j+d8 zR8s*d#6y!BDDm-MyUxv(F_Q5kd1`07PSQzM5J^js-DG=zm7pTz_)yi!saj7QNbCTDVk#<4TR~F@Z+rqNhz>kylY>PCW~8sREEk1aO;C@*{}y6@H1m9qXR? z_i@f1OmP`^|NPG{wG#**)W6VPQ&Xd1zrC!v{VUO8;2Q0*zbI8zk^i)(kQ~rrYiJI@ zd=u_*NAt}{I~_g7MCe)M1h@Sk7U0X|bw(R{(i{DF=w@`vk!Ua``6izTTAjk@jr&aa}->(_vyK&$xSL0d3e>|G#V|G zBLm>GTi1h-|1crUV<`8}Nb>>*pZXUEhv$P}zIoytthn_Gh&=&rVD)5K<8pF&6f^WD z+jKn68W)oCYGi>2^fGJAhC?ZVGZW||WS0$i3^rWKks2p*M6#^QrP^`H^*<*1??Q`d zvFXR38_9s~Ui&6zY^`Cmf;CzKF{=tQ&rbhpZXF6PHZ?>^a&cPY>K$(>sPQ=gm>thI z`1T;Q`ZjrhkWlteYpjnrQ}JaRd7@P>c~xN>RWSq8*+O1+vj7>;B|tPk)lwkh^E&l9 z#pDvh$W4|;nO!UnY4vzD<7Vt!-1j+#6Qsf?#Id@8Vv*($YwYOU))2z7Wjbq+4* zc%%Gl1oK;V*kvjOO3GoDdE%;yW7D;t4#C+XP?p$V z^@mo9A5%O~XBETyz6uMV6p%#=ME+41(<4^!;9GGmX6;5? zssiNcpjX7G@36G?bSfb!ZVOLN(;q@7ooz+SmUj!x$^jU$L&2z%{qBbhArjaYjnDE%YyStIuDJf=bLKZ<+ zl^TXVHz0pC8?aTcRyeCgI^n`$t1|3vPtr$M_xpIee)t`%_|;Dj3gAebz`TEsbFv@l z8z&bAFh_z(sWRpwSS%x2+v|^Dd86gD_kw}I5d6{K#Y%xPUQBIwI2@gT>nZI?aD=fn z5QnY;aiPo~ZHzYbtx zDH*D!CemXwM~b^u^D&7(sY)Tf_q`;=CwVfsU_~Rz>KT3(0?BGZI7?qPh^i!#W|)jH z3#W}19^MX*Wp&1OxqacL*9{0T6i4t+>G&bxy`w9U#EKv_93`G=7QJJgOSV14s2dcZ zUY#d>&T04X&wPls+`>@!^ZeN9L2Of2k%%(u-Ynh}ks`j*nS8&b=J))1U;Wvgj^lNF z_V0RX3^};2NTg5hKeb0Zw;w{dvZ8TXANH32oI`0eR7~}EeO5nZGy(d|{Xpb{X2vFh zEK@;h1z3qC;uBG`7e4oRivIEY#)6cjZ2Sp01GB1+$}@w}*OH;J+E?7_9~Z@UMlL;e zTxZ-WRhJD@pfaTG36KDBIbrPblM7Z4AZih0VwIaR%55_8@Uyj>)8)y4ZMD77^17{=-aikgB*MBGBz!6E=GV8rJ=sRm~=$G zVBJ|Gnk;|;Z&?xS!%}UL`?V(y&LSsAECeNF5AcS4}}0Ql2Ei{ z&u`d$Qk#Opr;jm)lvE^8wyiUY=~}>voxbcPH}>x*1XdG9@z!W@p?d-8 zw|f#m@ja?KqXFm#t-)%af(^2uJn6Ii02TdA&iq^G48f+S$Os?hkGTDq5ZH0zAXUNo z9qcr^@{fMG*=WZ-!G&;dDTmkXq*lRu#jtG=09FSD`;YzntE)yJM0QOhLbjTMp8=b2 zHG?&smJ`9kZBrh-t0)+g*W-mJwblm$1WN~qn@g*jQdCl4{A=3RJjA=M zIG`nBrsnm}J%avu{}h{aH_>{rXf6OG1|1#2Hl?&Ko>!f3HfJJ4iXR@m%g>{^%Qt{;cEjgF|&V5>=!{{W3aQz z+rYyEwmtq}aD+tSvR(+`3tP8MC=t(|lH16Q+``(iZQIpQMHq)JgF5n?pdxOQ?FDxQ ztwu3wOYZ{}!ReZuh6Z+&WoqF)T(nr(KLOc<)OjP>5qHw$%^eBeFEAW6S~!RR2@vP3Eso6Tu)CtoW(Ol6JBnVP3;Lb;3|`;k%&ic zwlgI<)Ki*)`#j+tp`?7{UQYIu$rz&>!=*CYx||qG7=(&IGI7}swBAOaVw`?~ouO9O zzp>(b>pkL3UW*3khkNRnvclan8}ePoL|LhPU*tMCiC4%d^G(g>E59 z8Sc>eYUrNTX6oO$Qn8`&KM>H!0e{ezpxzwN4_v8pgyD@-kAJNF;$*g_Q{bh%oF0X4HE z0uEsft6PVLnXUF@c%EC{Z(Yx`yB6m@l!Q|?zmJY?3L|sl!7dLqIHYs~Ey&?AY;2Zd znGliB@ho3wx2^A1j*mBgmUbVl5w~XO)jokPf-WFsS2%Tk`J1TuOLUY z#sWzv|$c=gWQ~qkf~sWUEY4o$|)m+_%>KlJVrJ;AIR$O2vwp%Js(F zqzMt$d@jI5IPYMFtCQIc?PdJeXjQIiIAk4x0E?@$y{Jv{oUSj3>~n&wL3)k`Q`6C+ z!|r_$5L_c@F#@e&?J(;aide*mc876vPfe9VaAmTuuIf~|M4e-dMn*?Q>ri+Ut`+JL z4$$h{b2R(V=-gfqZDXpI0%Ubqz@hp~7h`Br*1O#VRI0!KJJ?R`Z{+eI@SZJ(NynP( z&DeLSE%3ljrM5*OK`mujRO`AZ0hjPs=rX3RT>E~94t0G;6#(Pv#4C9V?R#64H(9k2 zZHQ)7#KAjUBO_1~nNMJxy#7`5(jK#8-#wO^IA!9A!RfKSK<#<}Te0Q> z_(!&{v9$fk%yJ*k;&7GM6v*ke>}veCr)0CG2@J(h>LQJ)vn`Fh`R3 zv60SJqdM}AdkzmZyved0f4dpO^x0<@d)Fl~?CJD2Ellnfbcrpi}$IOj! zu%eS^>#0f{e*4zvy_Lx@j7*eR{-d)^^XB|8BsDX*HQOq=gXs739vN%=dUjD)OXs-B zPH3^IA!BN>aeg*NxAS>%Oe>BnT$ADGs=d+esS%|(Z}6htGnt%WtqnB^1G6Lxrrv&9 zXCE&0*qZO;H8gpCtqRQZ89XY& zIS6f)==#_;Tcp1pnStLj8IeroI&p4q;j*PDalKtt!n4J-4sYCN3=qi$h(%*5)^;NWNN9(ncXt8(@Uc z<_U4%afzkl)yMIk=7dy*pK3Tp!^rj3I3Z_*qcwiogoNR^5!&IPJ8Ia|Pv3(IsjTSU z{lttPKLBtF4(Bu<3E(5@Kq(o`M3`sO29NQ5bkb@)9lA6St(*Ic(Dw@|)HV^`%5TCV z7>q%eA=)e{V<8e9jC*A$f&?EFF{ZX@Ush1AQC_}qX9c}qZf*nLZw zy!@}A7Lj(tf}h`F@#{Q-PxQA?JGvNr7ewmO{H(;`$JD9_P%g{A6Qd?f!F$^k3*mhI zpb@7U5eb%d&PbCI5IZQ1J{laA6N)G*Bvv-=;bTL9lc` zC~5EaSvC$5!)-_Tww`Mis!Q`Gi1A6^p;}@ZcZW2az;}%SRQ%1@Wj!-KcXXia2!_?FmJ8*3_VY z48ev#g-<{b!U+RHmHS3w$$DRmE6R02c%WMJv%d*r^?nAsB^DA9ZwSvt2Rewps8SKO zL{mi<@ATRsrn3NoWD-`eM^FNMJ7(RU!+e(f1J&ZL=~_XB8Q$-%q`wq=_7zmC2V=6^vQ!*Bgl{pWcy!UlC?xF{nPfhb6n+M3Z8zM{`A0&RBjK134;*HEKP8m+^ z?g|=5uIRa8P0ktMNL3;}R##Bhe@@DA8EuiOaX!;HD*y8C?|3r0#8_6YFIbc1$WQeH zgkwZ7Xt(94*B2egM%2yzda51SAY+-HD*n}%*i{os`woY!of=e;L9n-Hl&`)kRnyTU zRqiHx`>>tMXL$9~SQlYjCLTRePE7aZ$dafN;7_D+ZeuDc3Z6xj5G07Mv*YB}kC`pZ3Xt>;$u409I@e)l>s$!`DJAAXaXD^hoA zl0WRuKKEJJMOxH{OK+vqoEr}@D-zN}S43_LI39##KNFvTI<XTNzpX9)5db&r9HujZR7-Rp86AS~b#tW(pK{y;wNESA`Mg?ROp# zN3ICXo*JbFp~HUSrK|qnzy-lmetEyTFcHVo6-e_$K(GC&#w`RTn^jnmC*^u1WP8*& z@-=nV#}3KFkcQTB5skI?vDG@)<8Yth_n`3?xsR>6xI>kSZ`2(8n~=y`5wI@Zk-L4> z9iI5-*|w~Fn=S;zQoK(lCf^4ivwuWtQ*5#~eNt?9T+a{j5^N6Oy3h9`e@T9u;CH8bAwz%sQG3z&Nr^U+ zEzSM?DU+*Kwf!4ZudS{tRvFDta2PG_BaJ8CJr~G7q}{LE-_o`6_%wI1D-g&bcM5d- z$8&DlvfV9JbFuxsgWZ~n;lzXZe#m6I&ch_H_%*%N=*PRw^;64Pw~M5<$KSv|OS{oq z{KTDCynH&kbjBAwmOieC*>9FuP4HV`h{U^$+535><7#Zgwq%Q^+#&wyTf!4J{KIRy zv3yurd6};7OB{NCN*-$7eU@^LfDbbdb=kY;nC-TTly6BQxhA8wVckr-}j#!oIL;3L- zfIB2@@4k;@a7Vu!uEIagdPM8rBWJdHvcfc zX3eP8?Q*nqIKhYT1%kwXvu_7B7U4-kGZ-s`8ehp;DHz%jTO2n{w6=^8vo4$ntJHW1 z$DMh>{Lc&E7N=l8^VpqJ|%asj%$V5QwlI7V_>c$VGOR@2ZHr)rS}s!^KKf$mRJy0*0O z5n|D}by8{cP;_!F!=lvyKN7Du&;x9^zPwSsA&843_9Jsg4f?381JlFyyChqacoiP; zlyyCYO4oK5n)dQ!2XHDCq^Hy_IJGJ+Iu8f7zT}&1x4uc)y?8P1@|+<5Jvd^_TiWfR zKWQgxaz*r>w#IQPVupjhfErVa;w36Itfox$1`Cbc7d?+>-nky1(UR^DMYj=C zu@2(bUPGmQTAb33uFJl=(J4CTi(t0|p4Yw_lIT$f$jo;5;G_)q4@qRr8jA0UJrVfu zpi@NY4Yy%bzi_M~wiCL@Wk*VSrHxbn)2KF~Im0Nqw@k(Sir#j$)dfd}C#8-~^|x8Q zm1=$lC36QFDECrdP%vNyJhfSzYimpPJqv8R_;OZap9dud_6*|n%Y;tKnQ=CFvJ(xL0s(;iqo&@)wfkSU{*RchW5sdm1ZsBSRCe#Wdq zo!xJfZ5amt;v(=6i*0bW+dWuL))lUAg{IJ9#jKM^z_HGW+lk-alkREgxs7MZR8rQ} z>d%lguUfnB$_lFeMSgqUBO$B(rhPKaTa3)~p;$3?V_^rmmMn!Rre}uCs7J{G2?{gN zG32oZPp+cCuH8DTa`1Tiu61v_avruw=U1=~}Dr^09PuOBT%f$9TfC+Qk z$khnTE!84WHE;A(+Ik3=h|%2}cwS-H&1aS<*i+e))?75cF=V-i9Ebo-pzeS8{zS02 zry#p9*Fc#2`uONNmo07jLBwSbIJN20RDD3J>6Cx)(rXB4XkcTrn1=~AuJbR7d(VLh zdM5j&r}Qy>=+oaM|kN#<>B#t{f7<#yR(71KdcG3YKC3z8Z>nRq-_?7)%Iw_vT5^0N$PW4AGg&CzA zUbYkNJ15$sthFIq)+2#^)p6uj#1rab!Z4}i?`0fj{YGy)t6{@89^}7O;q4wL%XIjx z-;-4fUyfr~-&I}j#b0dg9_WOZ1cwMNJgvIo6xN zA2sY%F~@#QloJj71GwhxfsaM_ zExC)PJn6uuy84Hw%YEuS1=UX&-&523W{ao0ZCacK<(lN`rTFvW)Z2ZK|K(V z`UJz5_mp{rMdFA#a+Bq=Zz4NaXafZ%Ig)J%*C78XH&{4rYw~cn%3Y$dVL_9L->SLr zS8*Rkj+>s=EBNImJP)I7g8|jw*3`v?FPw8r=KUY{9LX)g<4`0H$M{1$RS|x%Xy$}w zYm*WYPD8lfgIOOTNk(&=IX3kxry#p{a?b+x%DEJ+Bbu$PW8-;nkA8tCjq5{~#&q*B zGye|eh+=aD-Wg`pYjw@VGN^TMEWC`?>M+E4Uyo8TTg+46o^Py8pz)ahZn-DdW7Mtw zv9gF`8infgZyFrr?>r3h31YHZWn&G;F=K&zXF^9$7rJC@iN6b!DgPq~D2`tqC@QXx zq*X|YS7PQn$~<71iB}UPYD1#0pA?aDf?%fT21F$e!$eCrAoNiQ3b2+qB&El|9xj~p zHdPv%6akDK%3?v5N_s{F#6%^RpPc)lr%Xsc6$ zXD|0>tS>$MFQ=>yU#CA^m_8}y_r_uKg=(D!L%+LnerYRC-zi}wm(yi^B&GdUM@Yy# z#L?(*ydbALO^EsBr{S<-u&Zdi==nTYX~by=y^Y&ULi7s!)@-}d*IYK6&Gm_|&Zo;W z6~uc3u+TSWZlI}R(T0wUs-cB7U~QKZeqy)^{&i@;XBAR3+sbM6Ygsx10qfuB5Pr&Y z4vI&+naTygNfEznv66+~DZd}7wqw+OR@A_8(xRW<#@I(e;R!M|-Y|sRHv%b;huIgj zn(#tPfsmxYPiwNhpP*IU-hF0e>t_q`v!E0aW~T0wH4D-DEKpkSs%LKowMxK0Gf&{8 z8d#rlL@X_6LW^B^-ni( zk*d$?4ePCyv`?4qdEd`Wxi1Pm{C{MiPe6ae8S8(#u(f_xW3_sj zT3Ua)uz{|CMD2@E1KsDc^y{beL)Lupd-6XnYyzOx|Nr8czp1yt+x?p+B^Yzb?05?L zPW%)oXx3i{Y3q!AusiLYl!~0pLsGlh*;ebmc%s(ABau$%WSK=ZJ zr-8ydxk;z>kkR@Wl1%KD9r`#IAqw-M%s(k~%=Ofy{*a@t0_}LRh`3>2&wSV0N{yg! z`07;8G&_CpwORPP7+>9(94^D8oDsxR%F76wk<*B1vko0A_KN!CuE2%FMTtH-;T)?z)^dX>=W>LbNZ zjksiduDKc~9D)18f>W;;Hr{DKdeE+kx4O4JUSszDBmjYu4dHp2 z-`mnIN?VYPRvaX5#NNw#I>+#Zv1er5dWhJYW8IchYrF4YNkll!6$^ zdg5`8?L&97^no|n>Ul|LR>z~}Tjff_QU@MpW562K^L4~PyhHPo#Zh10;d?-+H@zd? z;uA*XM!1Pyni+pt?i7;-TDWcizYO8gq0=9S?B~X&oVy>8ZfqA^%U~pu>5f0}6MB-! zs4RHfx3Z&FI^U6-;lQwn(9pkk!D_HSyw8JruH4U({@wXQV}YY)`+rz~_50&;D6mwl z?2M==uRy<1 z82#w(ya0xm{e1ZdBgu)+%khmX2uTyx7YwTQWk^DOA5@({M4bG!uG<8^N2zdLQ4RU> zRmt)t%$g!WEi^P0jWN&$ywXUomb;)7H^>hzjFX1x%X^l?#d<1F|0UIH@C279gTwig zPuHK$t(OdkKR=@TAiKc5QL@O|EKb#$M@Ys2{Sw0d8}n6&?Ji_VRp1KcCQBj}f?aDr z>6g6E1)w$=c*)p?RCb^)>^3j&?}s)X!LLMtBbxYd_2MZpi+Jzqmfh8wO^4;)1Eb~p zYSrKJ>L9LSlF=K2Er5A+bj9HoP6lx2F4iK?^<5$P?Uc;zINc{V>`AiG{vSJ(1aC%s z_y2bD6q^jM$f+_o1vxkof6l5-$8%9ZtQcF6cwqJ&itC@wKmbmf3C}7`_GplGL{vb6wa) z*VcUQk8X(~e|h^REPtPMs6RQ$SJNwOuIU>q$>ngDR&(ekXQjO-T~a8C>QLQ_e_5s0 z9OPOlmqk}7Cz1U=8umwEBZN$LcwlS|AZwqp>y;ZswHY*_}V0*UBYw*k1cswxrVJx3t;n(nU7E8@}Z$MxB zFLa6BeL%V`2TzZ%yaX#s{!g(h3e$)pn8{LMzeTj9Yu+Mv4-&l{R-yO2&cf#>;`)1c zM-jvd`_WjHxb3jZ0+LgnD;C~@ZIy2QWse4|#>PhKbrfLBk$PQg@%`Tczk%K=_1reR zy`tiLwU61{P(cjTfYj(e1BTI)0~4up+cqNx@Ko3wE!1T-Ko}GS&C8iF->AkcI1=}E zym3GA9;*V5nM;9O5ol~|*EpMyaGnedq-kX$5xh*|DG&UU#m>M#5}RCp69|ZAXZnUt z#wU8DA`kHQzkp@z;Y>pM@PXn?IuZyXVnyDYsjHaro#;27;_`1j4|L33q9(K49arCP zOo31oSQ*RSZX!=jII|MUt~3o+N27BOO8iv43_rg!UzFGyE_ug=$)^>waLcvuNJi@) zEzJ(ZV3Sl`VROlxVs*?Y~*u1jiD=ccK_Nw$B`OpdN}!xz1=x=+;=Ozo%CDaIq` z(8&%i;VTTqGXzz@k?;NA2xFR{EpdQSK!-p3P*2dDD?J0!)*{};eUGmI;1P1Vh64;7 zT+x<4RyvCL?#zH2*W29ej$pYSY8nWy4!d$S<%3V#FEwdQ?Ou!#k4t#xCbr$oP zuNu=BzAr~-MSNA%NH(Vog~r4S)Qmi#P-EyABX~}+2bJqbLHGRMqM~ini_w5lg2`%R2-?-GNW!cjQbFIo?{CO?y5vKnSpnghP_k; z;DLq+S8g75l=O1Y*1r@!$eGvE?{tC-Azu6j1R{OIZ%T_`=L)&-)Lngj3(o zYNK@U5@!gE3atSLB4Ahe4x*9jicu4fUqvRes6FgR8^^)Xi_kf_o?6_OB+AyX^MjGk z)y4~l61^{38U+Gzv5J^iEj{ESEOj-0)DCl$$aw{r%-(Y5cYy8xQ6yqimHsVA) zBFApRyK?x4N#0qzjt^3o3T^RjtwWLXXX?>6SDGQ2Nu^Lcl=TLCi6z0U~;XY3f$ zRmELt2WX?B&#c@i+JC#?=x!jpKw6KTL~nX|w@w%gK;vCeIj42Je3&?bRf^%;Ib@EkVMGmaRw@X;m?=e7S` zGhbk6F0IzH`74!DMNm{tf$;KeGnny*+1^yr4`zhOneAz83jn2cjXQme{`?8(86W>d zqh33Y^p?;&*`V8rUd@TbTRcbpY&d2qqx z@T0G=(pLFGPe@8JO828&1{!fccd1OCbHtL#W^|HkY33UFm&nfE!K?-Ks!oQR<+8yM z_w3)_>ilLxr;85*%XvXisB&Z(+Wl(6X>5wpEBH3whpAoiUQ4S9&64PlHNOvxF?Xu$ z6{{z@y32?Sd1u9}>zo`7*cwZ`$VpR$y$=PFJq?|8KtNA3o3*$;l`p6xXQC zaP3t$*sutajtenSd-DFWd3(9(mEFn7$UuNa-iS1|5fGb8qkxrETZe_S_qIn)Exrr& z%)Wn=L*IFn68UPeJE^K2Ll?yOld7J}rLDZb$?SMH&&ujv)PW9rW~%BEj}^-B-{my{ z)ZvQ37W@9%Ee>-=25M#pKD$_n(KcHS=MV7S1QWGo50>^pI>|5B@uvOpV=7Ts1E+fs zaLjGj8znUGsBunD}EO-mF|QD<<)6km|A018RoerIF#^lkvWcs%Cb}j%4c$ z6_oTgtxTyU=rBm-3%b|T=klqG@aTLC-l5Urc-~r>Syr)~jVbojY%u55);(#$#J@~l zrAl!!m1Fj@zAZ%c&NS-;qxs~ zTDv@Uy%`I+z|a-BR6CB+64}@9$_jZ4Yj%GfA?N3-Cd7Rccitr!O0XO_m@R|K6@DoI z^N(5f6#SM{WyNt~yO()k=g{S`P5M}+0w1;c!`!SoYb3pd8j`&n86m=z9{-AuyN2Ud z?1JI~O_IY3mmAXcBzEX4g{ZE+_g{l}7{6ticsC3=_D-_@tF*6*iX-U43^ya!uDVq{U8m~1`W@q+Dx}9Q z)n?Y3xK!eP@gYJOkxi7-hV_|d{yNTWDfqpAr6!UCMdUM_eyFRAk0p(is3QwH*G1R9 zW^`^l{13HXE{+UeDH}>la6wriwPFq=n$}uAosiv?FIYN_l~fqRWXkEK%oFm!l}6UZ zw`+!GxKRo0YhB3%cm;sY)i$y-i)Q#j?L7J^+A8-Bx2s zPz^96+ZyuEG;3sg54;&wzG($ElNDQTXw7E@QJH@sf|`jn=D@3n2T+ZM4D$#KyWZPA z$p_|%k6g>HcR?^YlAXBN6R(?^JTaO|Ca>+Kd7Lz;d3)2rCfk`n>#hpGrG2LPlUtFzGJ;>TPDZd-fsoVUuO%TA>50{1b&};-J$SQl^_nEV>NQ! zDZgaKNB`#E0+1M?5m!aM%`nt@LI@o!1v)vvf2~s=QW_g1cq)AhQ4 zu3LJ>5s-IIvBmh8AEB+RONKsANeT=i3K(b=UmRU!RtA_?F2Uc8uMI7=U<*k|D52bj zRun&l-d+bZ!e!-36D@%->}c$WRrkqJC1?bJf^*JFznG-D8}EYGjt|QupC_qrxXHOv z!)J45gdzLd(2%c3DyJvF8%1Mbf`XaNR$paKhL>#@ z-#5S-=kE200%B*dveTY5p}bC1zl(UtQBb)+Tbm~<_LuJT6ykH&tVe}5Ue%lcg!Ljp z22C`^zB9%uRR5(fk}S_E-;A!>KE(iHDQ-?p<6bUulf%`*`zSayEZ)JjHkz%79VOtL zAyqFASpXyP8Y(haJj!cN$aZAGWY0TPze)sfj`+Vu6~v5>&0wHNLW^cM;lR@Eu?}#Y zJwDxANoB&zc28+@VSWjcN5e~h>xisX(+BGV6e3}1qJl-FGX_Bh*=R3NMj44wb$^l< z%T#tATRIL40}^VHDyt*mdPWB=wrdB?jrT{bF4Mm6Ztg;IcLXx=QfU{PST z%)3`e?C9*CO2tUpS-n$VE?B4F3?BIk*#BPc^6Z54uW=(yhzo)kqlyFvs$b-nJH0^O zBfQkznRLSjQvs%dd5>mgspMreNH^f(6h-;zt*qn`y(b;KiyeOaZ~U_}xPp!~EUvbO z`0y=n_uGK#FLR~O>hCshCKRxW_|Ev_mW$0i+A_-$0{i0#Kq6yKK(XE^yN-|pPe|_Z zXPKKJ$=TJGNdMTe*kYjgcboJq9Co_PF4t+r?VG-`PkvUVAbqh_XI}VlBkM&52H96Q z+RyB$IsRSF?RKGTfXX86FRO(deoM(FdFw3vXvu7r!8xnhn*?&R?^b13ds6Zc1>g2b ziydX2Q34C7nmr>XyM$nY%5Tz$D}lpI2pqLnMWfI#P-I=qf#H83ICgV`pW%&VR4Hx_ zY1S{H$Yy#HJhs(6-(jFnGZlAa2>b}iSB6wy$4V)BS>$kO%TkRzOY=TGs|87ebg2ob zlAYXfP-1TGdMnMUNtMe6He3{kybZJU6@t0d&+jIe`G6FnS(8%YP`*|QUyIl^Y9aqY zN8ztQ#}cJLKq$qzMr7YNaas>8!i$D`u>Z@`Rt>3k`GPV2dGHTD0-K+Q5h#K@7kk^X zC?@@^^P){-n+2IU;2K^izcA3gzKsLF9Eesrv)|xdmWQPC)k#J(Ba7bWMD`CbF=R@8 zavBf7F(>6z87X=O{kni#^^eu8bc?PqMUrDO>gNj$YF)Y&$L(}5Z9;~#Z4AAroGx60 zM39t*xUw!)9Q=qGQO7F-*hvU0It}{z#q&oAu6jC9j^>!Y?xB}rKfHyOg5KKXb{o|@ z@6gnF)`HE8)fnHPV`n1$7hO+D58%>eIzK<(F81GcvFz+1jP|su{7wH9F@~vhjJVGlt-L9crEE`+Y|~@|@d~_etC~ z+_3+q-ar`?NUteaIK}Qi?_+Dc4#~+9Ac+biQv`*C)#-2VF|{R>t4+C z#dq>Hce6(Y;p(kU2tclWsC~A zE2?Y#lW*YkK#Uv^1T3RkJW`ruvxtLH{?j@re)%OW?SM0zAO_Avu9JgiUYmrYdxjV4 z-`AYp()~KpdG^UTy{XQDZhcx>}{_X^7O(6it# z^;4ssGAeT?mmqZXsy(UnBqZs@^mng6x!lhf#8(p-kFZ^pIZ(`>=0q+?`blIsWwGjk zNk-W=jgT6-461Dwe&yrv9(y|Qr85v6HG`1fmzS3rp7zeMN%L$b;qc=a+p$~^j|-!$ zP>O)AB}i+-x}gtJJprolDhIL6!-A%u;*&^e+bv-SPAt81!4eGj zRK_Ck>V~s9i_^2{33k)@t9hs9YdI$lbypP{_t&-N5u;?C8{=K?VlX8L2eR(B?Pk%Fto>D+YIINq^A%l4=L ztX=`VhyWS|M0h()}(bz>6S8E-46=ILE@aw~Ptr`2cf zhl_J%N$!qNW*@e~teEqgD0{b5Y6GT2vTO6@PCXvE&|nMY%uTZ8i0fijS7Om>zM=~> z%7!%~)zu^>0UG`w`83%ErWwvvLGTyg4Ks*piG3?_Z-3-hwSa0oT?3uzsG#OEh)$0j zUCIq%Rp!TPD@6*v>qPpTtuPP9;hk`5QrLW{+S5!l+hGUAYV32ENeAf35Az!u{)O(L zH~xZv6Jt$2kLzo@LdG+(Zf@MRhPwivTgA8}hYa=VdYDd`gMh)FQQ$@_Hb6DMFbB>& z?o$2}cg;r9eL@jmvkOVi6yCQwqxUiGS^Sg^e@CYq;jT(*R=3dL(Ru&Ky8fWUp5oGJaxaz?~Tqx|-DjC8nxMmn01pw})4k zyYYBjn!I?O4e}H&T+)G>fEgS(GO9+etWGg-k!|QS@;&FtRLa?W!$YC^w4!EH3T*Pk zG^QqVCv-PvZWEH;P7V1($J0b?auQ=#t3gO@dY+QfGs5YN(F#)C=caxuIKY1t!`r*a zPzklJm{ol&J!+?lpT9O$vEMqm_i*(peRE-0SPYl&UTJ;OP$Oh%G!nC4@guP`mYnGx zb*BA&E`%F0tOn5<_ageOfFb#ml)BhehJfo+pI{RvLC9+iIh|E zr$5FIP~wO}lq!uEz4cqBVbUu&XiH%{%1)R+Dn2LXM~jOT53%7WVCB;=68~*Vdb~x{$wCLe%PZ%kaZkBOHm7*^3!hFv=JaC{8ZK`WZnyFfu4>e4Yq2GfVorYKZ*#)G1&b zE8=XfMM*&?uGVQ$@j@7C3MvNa;idmjz*UN5@ z0AEzk2=(jcu5hEn+Nv-M2!1hsb5WQB=J;QlQ7DK&G8Pc3Qll<+1nYyaoYo4$ShASk zdTzH;DxW7^6cf2m6}(gPtYE~u=U5Dgx!vl|GCt2Ld_D6F{;*<0?gNPm3%uyNm{we_0 zh1|&?=CW`&DaD|?1Yi*{lCJaIU;IqDPi0PHOm_YWuU^nPK>t1ezq|m$oTEX9EAi=3 zFtvF6e>KB5cA2=Aj8@4(Vfja^;Fuy=FGzdSagAdlAFIv1cNk$PF2+OPrg3uRT3pS^ zPp&=GkSfC}fvPS!l|bYS`rW3qVKLmAH-ywdAAP#nu$3)0GJuFlIPhC_H+$RaU5UqC z7A4l=F*ge-Duh1-95S-7a2MvPB95#{h1x*iv4aq$APW+Pr1MILq}rdR2|AgYI!|tA z&|hV}ZxMX%81Qk4AVwH~IW-nf$*)k!((bZe*YcR|TiUO>yk2V3OP<5F_VRFM@1r-W zs092;^y3p^{@x5d$W;XwQYoI?pc99P*9z7iZThh`SXrj zG?H3Bc~{nFtDl+w$HosiwR5Pogb3{+@Y^2){itMI6HnB^+eWVZ=&~r$a=;2*MS7(O zO%QwHvV>P5>K6x3f}~)SevB7HVSWX+lSwGMF{DpI5zx=0g{5*~Rt;m^yrI_kr=0Bg z)EH=+>4eh^7AjOigeVun>5pniThorT52(u$mWVE%D5ST!OjANzK=m?yDkW%lv?8TP z=QX1Zcj|}W?%|e%U0ETe1|WlvkbV(q?`7dA=n`^Z`1`p=*mdA}XrOwM;cFs;xB^P> z^k2jd;NN@=Nuy_i8|fRzu7FWR;N#C)-wfu)gka2O8gO}OYI)J9Hc9+*mCED2wE356{9$;EHVWW>8eW53JwKc z6wa#D3a2+AT`MvkaCE^&wV*e!K6Iqy{ikOp0RD~!NoTwFb{VVUdp)HNH^WK}BdYjI zJuc?S!EQ{L<~?2m5A3K`C(aKJ3%;fP^wdiHoy5*c?C^r|@m~)ItUdBX@!xG*qI76R z>M*XJl1Q7UL8KF`6^<$T=u0Ei%bL(gmhJ5Gu&aVb$PM41Dfi^5_ixf0V1BStqwWst zfATUOj>5&H8Y>u7{){jW(*dsvunvrY?m2lL@a^Q-(Oc zWCCVpIlH>sh_#=aEH&X0RHV7bEoYVS=Tixe@bM4B;L8M&Z()9CV{Z)60nCnmp2Lud z!*geU7BnxCgu^}hv&e*I06j+gRpF=XV9W?XucoffmWt4u4H4WVLKNJw6+BVeQS(<= zf&xx3W=>|3;cH?Vlnx@oCPFI|7)ezqN^$P&Z)2Eb_(DKM&yYxvh>iJ{1?>-!Z z)F%2f+QgZ2qgs<1fA83?u}#>NgB7I@+>es91hV@!k?1i+JFp6#y~|s!DRUt&k8RE|BsADvO3iIDuPf zgn&VM1sdlC&4&PZFmg^++A{iRHAmVdGifb8#y|4kVFFl<;lJBs4sbOaO1ZfFc62Q) zxhkm-5eDT(u;g9l~wUY=;-n0wrJR8x`)^ZRFKC>8N@y983C{U21`|xB3wW`?AmMhIEeQ6_lw)N<>4-Q#f3DYNL_k0Y z?VXrF0bw)t)EMDAAPHj*qiG?JNZ31lN7{rD%j)l=^duU~k2eQb;53%5wY4=0U~6~t z$s1e^EcOiK4?P>nzz_ZyYiny3i*Z6Q-C_hvB3M-d`$ox)SO5utfD_A=cZ(b^nAhij z2RDIh(n5OH2xa@fe*Mz?<4ViM#s>AsreZ2Sr1$T`CG#)g^P<3Xi_5_!m_yMJ99!8_ z6J-^?{V5GFTe)_0In(J*wi6<1_!2R>MOLOJCzZR!=eCY)tNqhzP7z zlRODtq39-jUvuR{K~a6ca3E=`y&FE}xt)N!Mf5|tt78HA@wcP=6Z``%QIY{w?ayI1 zsr+P*IZ?uso_eu;N`@2<0)fKPbk}yLe?OT!%GVI+Ldxkp+$|V5-Jfa+JRKH_^N72< z&Tu30xGVJj;v%vh7Z)d*-iCbMc?ahx ze>rcmUM?90wInYBV-#wHPA+K08xv>$AUTb&7g40g0w|0c6&;z-N-r)vbLER{qP?6@ zl)c@1jYQdTVTrPBZQ=k?{A_Dajx$V?_nD!LPgi=;;WjO;aod|0aymHy*_5-E6dFrz>Bkc_#VpfL)R-nU>3#;O%?=vBSKeA>Q&;#PZFZjZ(1)T!0OZ<;x+*tx_N z5%LC<#zNkS)9sM~ub1%qUUzm)jNIsHzfvgCi2u?L#}20u*}jq{vnMwd0o_AnC(ARt zB6`<^U#4qhNFg&2O_L9&0TfAn^7cjY%=pOvf+uFFQG-xV`L6}e-!`iw<5YWpU$fs% zqsla7NsdzqfB%Qs_B4|@_Lf{r$BGIhArv;&r18#%G?vDQ!JR-thj#F zyw`;18pkm7--QPl7GYZ_+~EZaRMWFiN!Hjg4Sa|284YXtliQXw@{bL!=NvWFjv=49 zQ1}1!>>J+)M+}dg*pBM#M{fDy<;%2V2iWaqkUoAt7rQm9hcmk`KtjsJCbQm8-xw%) zZA@1OYPb@-vu`KwdfgqXiy)d_oBM5@-;;M0J3gC{t|EcS&9H=GO?oNZU8H-duS#&D zHqD>#kN}K+s5OULWWt=65yhAJ?i`4P>gAmiG^2iyn(bEs$`g@?BPc_k4 zju09X9w?1~a<*@AggXjQ9L)b+X;B;T=A} z`kqgQkpOm_5#l`B9w|gbTC(Xu;I~sfzUSd1-MWXdQiQI38 zRsnaP;ob4(by5@CCyfolYbJIUbqw7v-GZ8s-Zpg6NOWG!hwSBHxGehY$=um%FXZta zYbBa&e?_&P$9|fD`tgE`$2NH2+}hLz4#IGF#I+|C!dV=H?$7iXBs2W;wjFl{o~9>WP6d#)9Kc%SX@#aWME_BPNqx2Y`*G zc{U$W8~FADIA9r*VjuAwVo<}a-Cz-}05I6o>y16w{)qd40}JO)|fN4U#ZsA>#}vzE`EtVd#q#Sf%htmqc*eLKAa zaBWYw;@zpVvYKwBh{GgY@K?m#BZrzMoJkwL7!#BwqEqE^jB!}!Jp*F$rm%}dY5q(S z$x^uc3aa?arl+4|TX9_+9dVA!2j52Jhv=|O ze9bGnwox4{EAGjKctN&>O1ZRju1B)zC9bR*X6G{+z>|K{(*+A$PEG{bl4k@v+p>4~ zqw*%l^gXBC=(&K5IH3EkLrY{2xFkUPJBwu4;5Lc~akvUIF?}CwYn@Zu2yB3yFMf`w z4q%E+ksR54z@%b^tuj{#TW=nz{vh!wl_n(7Zr-f2v3!&0w9n)rpnHIez@+6u1N^xz z`4Srmw&Od&;fC&9JU4p;o;SyYFK1Ui!U(9Rr#hE^Da$uK(ddpz1{U8=@258>Bc6{I z4)|=i{@O1@d?lpBjpqV&D|$I>x~x2Ek_bXs1n^3!KMT8TyHK1S$IkMaj3tY0xqo?M zA3=85J2DM*#CneU@hQYXjaNllB{orr^bY*4o*>vHnsbi*R#98752_t8z?mZyRo zFtOY26(8aH`K1x3JobyBvo-4SZp69=(6IplP3#FnZVeWpUR)Ti*|0pl^639#=m5HB0J*g7#LkEE|k54rVl5>LToc2G23(Dw)O@{mgWLnu2tvY^e6{m z(~e z)wRj^tM*v(zS&)e0+E9F))=)|2?Ad(gl3ef+>8yRPpr#$3<8X?PXfzR*jq`x$&n z@Fm126A6B4)am>oJyEa_H7PJG>7RR(dQ`&H#WwFukE$Td}qBQHS2}?5_1rtR0$9t}i%DRXHOd z#h!liw6k-tFB1BaJfPxs%#X!raS4~>6{}JoKW5eA z4X{lxTk+5Eg!N0?b<>^aUW+3FP)tq~d8e~Nz0*+b&~Gw_A?OtnKTg3DRb+-Lm|??M zZPV{(>yY-`@{h68MD3HnZk{-H9ElRE*&1v@DMqsRe$q^PU&kssp=7m6CeXMtL9CGmw z0`W8qcz0g;v>y)5&C%@^isD;d=TzPSW9IXzvsUa#(#BFROfLZGY$LGl^G05M3?>}E zli^&YP2h8krra%IWKc*JZ7z{AE}-G>zg~yqS6peatDt`|=p59DVLhqQR{2dpzf*Zw z>t!l3j+wmqB><2qy}1j8gsMG~VLD;HO@gRfiDw#XR?`hm2j$sNL@jhOJSGc0h(U9{ zHGCa3teR#-7yI_*ZG%l&YbMEE%*^y`q@d0nNY9RFb`WE#Teu#!z&36YcI-rEgBTZ{ z-BpcE=I@hmzlye-Jb(5Tzx8ti*5Gf)I(<_eB6YM5Yy4F#gqSRr@AbZkx6odp%%Rmj z0Z4>L@px)y6LJ799>(?}vbnSA_y@8J#1!lV6~6}g3~Xnul-hfSj#8tim|+y-ymlhO z;ZW)^21kz&w9Vcv0wl|mZTu-6R!kH{C@%XoQ6wHfJj$V66lDIR6-lBjEp}x(3bVte z?@5oTgIPoKCHp3aKCXj~G%XD8AEcf{#Q^ci)vE{IExS_#F4%h6<6P@HTo^Uu@Pz9}7FuS^9|Y zU-dS-;~r%bJNN0c{8n*@-95I};e#yabxcf_wL4qIu}a@GiS>P?WSRBe@&b;GZ6zE8 zAuO4{spc_f^*c2u@SYeEo8|3 zZb(q}91J?Y#5E47L#f+hcZ=a6k(MC*^@j%ANYPw$*g~-}Ip0iHuW$3orF57b6Sfi(@3!wj}NW z0c}dRO0f<4w*1?X=4iDgl}m9IVS6l75&U9t`5gyzA{}A%q-*b1WysIczDAB8nmRr* zLmDo-pT^vTK5>)j4|u3IH1yQ8>}{i&Ccp7}*A!NI`glG*Z+dD8W(f#D_nt6S87%#s z&h(;eyfRdK=qwILSmwx`6KN`JTYDeD1+1*(CIL3Oqe>iCG z%s!X`FID}CL5~MXtR2&Ja2}pkE(I0=&sFhLLIYYYhwpXfVMMuL8IPj_*?9?%SWCN% z={X;;^W?M3W|IXuy78AH77qjyvAy|mpQjtk^`_5PMUmlg_;T7K-NDYuk(d1CL%G=!`L=`LyA=h2sQ2%3mEsimKaJE-qK(#`A{wZL{W>vkxJ^ zUVPtS-5Ao2lFdLa?9v&>0ocd}8C6dhMH{95%$}H4953Suu~l15HqxI z5_5eS)DIxsQw-TrBjm*iUGLj}W>2ayh;){kJ=P*ST0uaI#35(lv~GB)6E(Dj4WfvU zOOJ=fB7pC-1vWii6JZbSZhQ+sOV{Ox!CUF_xF=zC8q1WP{M>WtS@THkd)dwXu=8rd z$Pj^EzVq(?8L~Z{)qxFp4Rp=Idz&AkM=6K+uez#gtia&ho)WUYQBpR8T>d7JtXRS! z1JOEy`==RWJ+2m_kB|FG(}i~Zw|t;_&$vFsAd@^3*s)Tr^n9A{$YJq}tvjcie>BoT zW!A)Em#}Oh=BD!P*Tj^u!`OH1MfyX)%iZ_csMS~+xwz6MGV!dw)#dg3U^&f!k)HQ% z*z_=UkzYke_a*)fjKIdr)-Vmk`m~arfk?K-TK2~L9RYzbLI?|s12{el7m~CiLyTtI z#Ywprk64@FQ1K>b*IsGvX1!9)-V#-)p(jg|gUB~m*EMCmIB|1q#F`-Tc3~Ee(*d`l zop2rkvWfel9k8ifq!4G z8-F)dq%dm)w6*@r^Urr7N1!=1kfvHIkB)Pw+rc})mMnY!`&2Vy-caW8(`8EpA{kFc-Komx6f zQ%$J!^V1eu6$MI}omdg&xHij1FS5*Az=aO;vN44-$?mm8MmiR^<#JK72GL}<@Dke5 z3C(QwJneVx%4qzEmntuw3Ih|%oa_6n6=BxsdF11?`qdn+OKk@j$d|LrG2y$^w57=F z9^Hqq@NGGJZ2tlxo0Pf+2O{oL5=NW+i8@UE%aXotnTrXEpq=-B@QmyFk+6Da`DFr; z|5Ta~5bM@x?{lClP+7aP*THn)$FsmwKW@Co`bMS2RU=o#dn(Y$j(&_Fr7hmRn%}33 z_Q(8$4QgYooSdPriM)-%>Dc!C(<@hRh3$t$gre-yB$Wcq1Z6siG^4Px2GOC@VauvU zWdgF9*oWMrhx~BQH;61iLnQC`M@8|;1x8!1MDK5WOb=4VNi$xj>*>+Kbmf$;cx0tf z1Y&Aa1=pte_Fom4vL;BQgm3fSbumuiduFqW`p1MkZxc6+=&a}szDE%-gGp)!ozCU3 z;xPRsK`GSR>-pPk_+t~+y2iN?4QfXGXqz+KfW#4}4-i zze3@ZKxy-(q7AmF>r2iFsV+K9)m8F{uD0Y*+CxOoBif-t9KqPaAOfYlD~nxB4#Pe} zf|RzjXoJ#r@iQOj5NGZkVM?o#JFo)7ehY9Rdn@sdqeBS84=-qdz{Jw9@-Ub%c}nfok^?kUNHjQF;s-NN#u z+~=IKWDZ50(f>hluNHdDcJ1}klWvTk-ih}H&1t}a-6?%VxL!rrd}VQrJYtRDk-TZz zlOfg_Pp<}!^*Foemw1Pcp;YRCeh>|R5=l?b`tE*ts1lP8i|*RYGg+2(K9FV>Me zai>!1j&Oc|ec>$*Gkayf_=mK$Rfkrq|C+WC!U>?IX3K%9eydlgd0%TzOIfhz6s0z8 zZuN&+{64rw6e}#)@g6;puO3mm4}J7G7aVgU7#xL-$t0_1m*-%B^DBCwSdZE8Cgs?-!^WNg=nDhTkYoZOrk(YL9O*A_k-=TGjxE`fXZJZBl3A_V-N-s^y{ zDgaC@t}Gp!U6$}f;DF2CP{E_9jLffUwH+NdED}N;)SYbXk9UzbHa~madnSvC)}&eS zn1CUNJYpX<{o^G@rD}Z@;?J77>Y$yFx3}bFNIbSz#$`YF&>$NMQGO}YlFgqJttWjG z?6A$5TLwp&B=~DXD1PsEeM?CDNjsb*n;of=1heG+mR#dV4XxOv=yLc*z4z6q-b?Mj z^hm6HiN)q()N*xI)YeTTm4!$hY9))rhX`1wK2fhYY;H!}%8Q6AF9&W@hB1w4QlD2tkhbsmmn56iWPwPIMfNv45lVtZ>0qlM&49AMw=8*M+c|{6t z2`dyCc72mQ9r>K*_7!a>OZ9qLk8UoW$t8b5&?Tw)}*}& zo{#W-Y0kew|BFJ?Jl{ZrsN-UvPO>u0UOXxp%bBKvv1L*^UtZ42t8(;OZ+uC0-)YIY zUM`P_@F4j(rAV|~cTyKkL`~_4)|#W*tO$dc$P9huJZeAX#DeW!VAt$0*z(nuTs*ik z4!+an2CHY)1fu%j&_!}bYH-@sr9vvP1OLa}+DAisI4=mWDXl9z25chZ*Ya*V`?z!a zX!r-X3;kij^I!wZxG+7sYWxU{T=+=PItfp}`F{^)7zI_W98t8Ra8B@_5xdY5P!o7! zUo&`k;YToP?L7B%OfyWkslg+DlG;QT3%tVH;pClw*Q==qA<6ckpID;&>c8brh=Xvg zVf0(lPq&pK=k=PV_4rSRJRQ=mW)N2()XIGt!|*0L(I_tW%BU`x$TfbpaPYzqm~<2r zRwsUHSSjO^fw()!wb2ejo^p<}M2ko!h3FyrfDLD;hA;ha@rk7TOfw?k7*K2}^&+V- zG5;2;bum(A7eIPojsOTR8F3Lc@v;P}XotyCBcx#jb0Y>6Y7xkw|D>p`07n_R(=rJzL6>P9Ba%D6K&p#j#xQ~di%08|KYfo~$=>1=0 z49FsvLMqF9=g@wcu-f3=-9fm7WKyxn|GY^nu**}H4|hw(l*TF$68rFvQP|YImO}b8BmO7 k`yUQ|@M=(y+I;^!I@gJ{`!}@V6Zj`1p& Date: Sat, 27 Jul 2013 10:54:20 -0700 Subject: [PATCH 250/897] Corrections from railsbridge 20130727 Wrong directory to rm -rf specified for linux clean up Rails 4 is valid too rails installer can install ruby on osx --- sites/curriculum/curriculum.step | 4 ++-- sites/installfest/clean_up.step | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/sites/curriculum/curriculum.step b/sites/curriculum/curriculum.step index fe81498bc..73548990f 100755 --- a/sites/curriculum/curriculum.step +++ b/sites/curriculum/curriculum.step @@ -38,8 +38,8 @@ day... unless I really screwed something up. :D We're going to be working with: -* ruby 1.9.3 installed via rvm (mac or linux) or RailsInstaller (windows) -* rails 3.2.x +* ruby 1.9.3 installed via rvm (mac or linux) or RailsInstaller (mac or windows) +* rails 3.2.x or rails 4.0.x * bundler * sqlite * the text editor of your choice diff --git a/sites/installfest/clean_up.step b/sites/installfest/clean_up.step index 6ac286c6d..6c6568993 100644 --- a/sites/installfest/clean_up.step +++ b/sites/installfest/clean_up.step @@ -15,7 +15,7 @@ step "Delete the test_app from your computer" do message "Open your home directory and drag the test_app folder to the trash." end option "Linux" do - console "rm -rf ~/test_app" + console "rm -rf ~/railsbridge/test_app" end end step "Delete the sticker app from your computer" do From 533e9cdf56d60c34eb8b14d151e74e034a41629e Mon Sep 17 00:00:00 2001 From: Mr Rogers Date: Sat, 27 Jul 2013 18:09:58 -0400 Subject: [PATCH 251/897] added notes for rails 3.x users about routes and getting the root route starting --- sites/curriculum/setting_the_default_page.step | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sites/curriculum/setting_the_default_page.step b/sites/curriculum/setting_the_default_page.step index b121eb421..16cf8a0be 100644 --- a/sites/curriculum/setting_the_default_page.step +++ b/sites/curriculum/setting_the_default_page.step @@ -14,12 +14,16 @@ steps { step "Add a root route" do message "Open `config/routes.rb`. Search the file for 'root' (near the top) uncomment that line and change it to read `root 'topics#index'`. When you are done the line should look like this:" + + message "(Rails 3.x users should add `root to: 'topics#index'` and will need to remove their `public/index.html` file)." + end source_code :ruby, <<-RUBY root 'topics#index' RUBY + step "Confirm your changes" do message "Go back to . You should be taken to the topics list automatically." end From 4060a12c1568679b0eaf8f9a84a08c1b2c5427d5 Mon Sep 17 00:00:00 2001 From: Travis Gaff Date: Sat, 27 Jul 2013 15:46:00 -0700 Subject: [PATCH 252/897] At this point in the curriculum the votes routes do not exist - remove. --- sites/curriculum/setting_the_default_page.step | 7 ------- 1 file changed, 7 deletions(-) diff --git a/sites/curriculum/setting_the_default_page.step b/sites/curriculum/setting_the_default_page.step index b121eb421..0b056297a 100644 --- a/sites/curriculum/setting_the_default_page.step +++ b/sites/curriculum/setting_the_default_page.step @@ -46,13 +46,6 @@ explanation { ```` $ rake routes - votes GET /votes(.:format) votes#index - POST /votes(.:format) votes#create - new_vote GET /votes/new(.:format) votes#new - edit_vote GET /votes/:id/edit(.:format) votes#edit - vote GET /votes/:id(.:format) votes#show - PUT /votes/:id(.:format) votes#update - DELETE /votes/:id(.:format) votes#destroy topics GET /topics(.:format) topics#index POST /topics(.:format) topics#create new_topic GET /topics/new(.:format) topics#new From 69efadea1b60936f37060a08c6ca77b7b7b97c5e Mon Sep 17 00:00:00 2001 From: Travis Grathwell Date: Sun, 28 Jul 2013 11:08:00 -0700 Subject: [PATCH 253/897] Updated route console output to look like Rails 4 version Added references to in-browser routes page (/rails/info) --- .../img/rails4_rails_info_routing.png | Bin 0 -> 38766 bytes sites/curriculum/setting_the_default_page.step | 10 +++++++++- 2 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 sites/curriculum/img/rails4_rails_info_routing.png diff --git a/sites/curriculum/img/rails4_rails_info_routing.png b/sites/curriculum/img/rails4_rails_info_routing.png new file mode 100644 index 0000000000000000000000000000000000000000..463b07d50100025d7c34b2a111fea840392ed5c8 GIT binary patch literal 38766 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 F{{wu$XB7Yd literal 0 HcmV?d00001 diff --git a/sites/curriculum/setting_the_default_page.step b/sites/curriculum/setting_the_default_page.step index 62aef7d95..36201759d 100644 --- a/sites/curriculum/setting_the_default_page.step +++ b/sites/curriculum/setting_the_default_page.step @@ -50,17 +50,25 @@ explanation { ```` $ rake routes + Prefix Verb URI Pattern Controller#Action topics GET /topics(.:format) topics#index POST /topics(.:format) topics#create new_topic GET /topics/new(.:format) topics#new edit_topic GET /topics/:id/edit(.:format) topics#edit topic GET /topics/:id(.:format) topics#show + PATCH /topics/:id(.:format) topics#update PUT /topics/:id(.:format) topics#update DELETE /topics/:id(.:format) topics#destroy - root / topics#index + root GET / topics#index ```` This shows all the URLs your application responds to. The code that starts with colons are variables so :id means the id number of the record. The code in parenthesis is optional. + In Rails 4, you can also get this information on your site in development. Go to http://localhost:3000/rails/info and you'll see something like this: + + + + You'll also see that table in Rails 4 whenever you try to access an invalid route (try http://localhost:3000/sandwich) + ### Exploring Routes (optional) Now you can have a look at the paths that are available in your app. From 2a213df89f1d806fb36be4e89d8516e9b622070e Mon Sep 17 00:00:00 2001 From: Troy Denkinger Date: Thu, 1 Aug 2013 17:08:53 -0400 Subject: [PATCH 254/897] Changed test runner instructions to run under 'bundle exec' to match CI. The tests were failing under the prior instructions. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 54c19cfdc..29f51f100 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ Then open in a web browser. If you make any changes, and especially before a pull request, run - rake spec + bundle exec rspec which will run some unit tests and also do syntax validation on all pages, to make sure you didn't break anything. From 1f28bd3d01f5a73c76a35002fc317da81394c7ce Mon Sep 17 00:00:00 2001 From: Troy Denkinger Date: Fri, 2 Aug 2013 07:56:48 -0400 Subject: [PATCH 255/897] Incorporated suggestion to use 'rake spec' but run it in context of the bundled gems. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 29f51f100..a8008bd29 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ Then open in a web browser. If you make any changes, and especially before a pull request, run - bundle exec rspec + bundle exec rake spec which will run some unit tests and also do syntax validation on all pages, to make sure you didn't break anything. From 78439cda2306159630ce7afc6eb6c69f7881df94 Mon Sep 17 00:00:00 2001 From: Travis Grathwell Date: Wed, 14 Aug 2013 13:26:04 -0700 Subject: [PATCH 256/897] Fix malformed Textmate link and removed reference to missing image --- sites/installfest/install_textmate.step | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/sites/installfest/install_textmate.step b/sites/installfest/install_textmate.step index 07f2b9384..b6a86ef09 100644 --- a/sites/installfest/install_textmate.step +++ b/sites/installfest/install_textmate.step @@ -7,15 +7,13 @@ MARKDOWN important "Microsoft Word and other word processing programs, including TextEdit and Notepad, will not work." step "Download Textmate 1.5.11" do - message "Download the [Textmate] installer](http://archive.textmate.org/TextMate_1.5.11_r1635.zip)." + message "Download the [Textmate installer](http://archive.textmate.org/TextMate_1.5.11_r1635.zip)." end step 'Select "Open with Archive Utility" in the file save dialog' do message "This should be the default." - message "It will extract from the zip archive the Textmate application inside of your Downloads folder. It should look like this:" - - message "![textmate.png](textmate.png)" + message "It will extract from the zip archive the Textmate application inside of your Downloads folder." end From 56c811f9af7f6a74c0b338c5b30ed9aa0a941268 Mon Sep 17 00:00:00 2001 From: Travis Grathwell Date: Thu, 15 Aug 2013 22:50:41 -0700 Subject: [PATCH 257/897] Intermedia Curric: Add scary red thing telling you to not spend forever on Devise or Bootstrap --- sites/intermediate-rails/install_devise.step | 5 +++++ .../intermediate-rails/make_it_pretty_with_bootstrap.step | 7 ++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/sites/intermediate-rails/install_devise.step b/sites/intermediate-rails/install_devise.step index c5cd2713b..e58f84b1a 100644 --- a/sites/intermediate-rails/install_devise.step +++ b/sites/intermediate-rails/install_devise.step @@ -8,6 +8,11 @@ message <<-MARKDOWN MARKDOWN end +important do + h2 "Timebox It!" + p "The purpose of this section is to allow users to log in to your app and demonstrate how to add external libraries like Devise using the Gemfile. If you find yourself needing to write more than a couple of lines of code to make that happen, you may have gone too far. Talk to a TA!" +end + discussion do message <<-MARKDOWN * What is devise? diff --git a/sites/intermediate-rails/make_it_pretty_with_bootstrap.step b/sites/intermediate-rails/make_it_pretty_with_bootstrap.step index 8979f1999..16919e122 100644 --- a/sites/intermediate-rails/make_it_pretty_with_bootstrap.step +++ b/sites/intermediate-rails/make_it_pretty_with_bootstrap.step @@ -1,11 +1,16 @@ requirements do -message <<-MARKDOWN + message <<-MARKDOWN * The site should use Bootstrap for a superfun modern look. * When logged in, the user's email address should appear in the upper-right corner of a navigation bar. MARKDOWN img class: 'noborder', src: 'img/header.png' end +important do + h2 "Timebox It!" + p "The purpose of this section is to make your app a bit prettier and demonstrate how to add CSS frameworks like Bootstrap using the Gemfile. Don't get snagged on the details of getting your CSS exactly right, unless that's valuable to you." +end + discussion do message <<-MARKDOWN * Chrome developer tools / Firefox Firebug plugin — how to use ’em! From baec3a423bb63649502bcb5e8476ece94e8ab3dd Mon Sep 17 00:00:00 2001 From: "Natasha A. Hull" Date: Sat, 17 Aug 2013 14:40:46 -0700 Subject: [PATCH 258/897] Changed files to show whether the page dealt with hello.html or index.html --- sites/frontend/basic_javascript.step | 3 ++- sites/frontend/jquery.step | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/sites/frontend/basic_javascript.step b/sites/frontend/basic_javascript.step index b1a8c358d..7d719a9bc 100644 --- a/sites/frontend/basic_javascript.step +++ b/sites/frontend/basic_javascript.step @@ -6,7 +6,8 @@ end steps do step do - message "CSS lets you make your pages look good, but it's **JavaScript** that makes most web pages interactive. Add a script tag to your page so you can get started writing some JavaScript. At the very bottom of your document, under your paragraphs, add this:" + message "Now that we have completed the challenges for your index.html and related CSS files, we will be looking back at your hello.html file." + message "CSS lets you make your pages look good, but it's **JavaScript** that makes most web pages interactive. Pull up your hello.html file again. Add a script tag to your page so you can get started writing some JavaScript. At the very bottom of your document, under your paragraphs, add this:" source_code :html, < diff --git a/sites/frontend/jquery.step b/sites/frontend/jquery.step index 7d624e829..703754e82 100644 --- a/sites/frontend/jquery.step +++ b/sites/frontend/jquery.step @@ -6,7 +6,7 @@ end steps do step do - message "First, let's include the jQuery code in our HTML file, so we can start working with it. Google and Microsoft both host public copies of jQuery that you can link to, so you don't even need to download it. (The browser can download files from other sites, if you include links to them.) Add this line inside the `head` of your document:" + message "First, let's include the jQuery code in our index.html file (not the hello.html file), so we can start working with it. Google and Microsoft both host public copies of jQuery that you can link to, so you don't even need to download it. (The browser can download files from other sites, if you include links to them.) Add this line inside the `head` of your document:" source_code :html, <<-HTML HTML From 8419dee7d462c8e76d84531712ff25df12d396b7 Mon Sep 17 00:00:00 2001 From: Adrien Lamothe Date: Sat, 17 Aug 2013 14:42:28 -0700 Subject: [PATCH 259/897] Add a note to teaching tips to be well rested the day of teaching. --- sites/workshop/teaching_tips.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sites/workshop/teaching_tips.md b/sites/workshop/teaching_tips.md index 030ee44c9..8dcd35665 100644 --- a/sites/workshop/teaching_tips.md +++ b/sites/workshop/teaching_tips.md @@ -22,6 +22,7 @@ The command line as Zork. You are "in" a room (a directory) and can either act o * Advertise that the Friday night setup is **required**, send notes out 1 week ahead of time, so people can get started ahead of time * USB keys and/or DVDs with the big stuff like XCode * Ask the venue about bike policy (can participants bring bikes inside?) and communicate that to participants ahead of time. +* Get a good night's sleep before the class, it is important to be well rested and fresh when teaching or TA'ing. * Start with live coding - watch and type along, don't even use slides. make sure students & teachers irb prompts display line numbers, so we can say go to line 32 * Go into IRB to practice basic concepts first, don't discuss what agile and a variable is in the abstract right away. Learning by doing first and talking later worked better. * At the very beginning, show a designed version of app so people can recognize it as finished product like other web sites they see: screenshots are on Sarah Allen's site. From 958ca845596b0e2b5235d1af853a33407758b775 Mon Sep 17 00:00:00 2001 From: Travis Grathwell Date: Sat, 17 Aug 2013 14:55:37 -0700 Subject: [PATCH 260/897] Rewrite site index spec to care a little less about the current available sites --- spec/site_index_spec.rb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/spec/site_index_spec.rb b/spec/site_index_spec.rb index b9f09217a..868b013cf 100644 --- a/spec/site_index_spec.rb +++ b/spec/site_index_spec.rb @@ -8,8 +8,9 @@ @site_index = SiteIndex.new(site_name: 'frontend') end - it "lists all sites in the /sites/ directory, sorted, except 'es'" do - @site_index.sites.should =~ ["curriculum", "docs", "frontend", "installfest", "intermediate-rails", "ruby", "workshop"] + it "lists all sites in the /sites/ directory" do + all_sites = Dir['sites/**'].map { |site_path| site_path.sub('sites/', '') } + @site_index.sites.should =~ all_sites end it "emboldens the current site, links other sites" do From f154e1dd3517d625b35e57501ae6ea3b7e297376 Mon Sep 17 00:00:00 2001 From: Steven Miyakawa SAM Date: Sat, 17 Aug 2013 14:58:25 -0700 Subject: [PATCH 261/897] Add tip that welcome page will not show if using Rails 4.0.x. Some students using Rails 4.0.x were confused about why the Welcome page showed on their localhost, but not when they pushed to Heroku. --- sites/installfest/create_and_deploy_a_rails_app.step | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/sites/installfest/create_and_deploy_a_rails_app.step b/sites/installfest/create_and_deploy_a_rails_app.step index de46dbb52..d316682de 100644 --- a/sites/installfest/create_and_deploy_a_rails_app.step +++ b/sites/installfest/create_and_deploy_a_rails_app.step @@ -85,7 +85,7 @@ rails server BASH message "**Note:** the above are three separate commands. Type each line into the terminal separately, not as one single command." - + message "Wait until your console shows that the Webrick server has started (just like before). Then, in the browser, visit " message "Click *New user* to create a user to make sure we can save to the database. Click *Back* to see your results. (The window where you ran `rails server` will display debugging information as you do so.)" @@ -98,7 +98,7 @@ step "Use git" do tip "If your prompt doesn't already show that you are (still) in the test_app folder" do console "cd test_app" end - + console <<-BASH git init BASH @@ -144,7 +144,7 @@ Git remote heroku added OUTPUT message "Heroku apps are automatically given lyrical names that look like '[adjective]-[noun]-[number]'. Each name is different." - + console "git remote show" result "heroku" @@ -180,7 +180,7 @@ end message "Save the file." tip "Why Sqlite (sqlite3) and PostgreSQL (pg)?" do - message "SQLite and PostgreSQL are different kinds of databases. We're using SQLite for our development and test environments because it's simple to install. We're using PostgreSQL in our production environment because Heroku has done the hard work of installing it for us and it's more powerful than SQLite. We have seperate test, development and production databases by default in Rails." + message "SQLite and PostgreSQL are different kinds of databases. We're using SQLite for our development and test environments because it's simple to install. We're using PostgreSQL in our production environment because Heroku has done the hard work of installing it for us and it's more powerful than SQLite. We have seperate test, development and production databases by default in Rails." end console <<-BASH @@ -253,9 +253,11 @@ Migrating to CreateUsers (20111204065949) tip "To quickly open your heroku application in a browser" do console "heroku open" end - + message "The URL for your app is *application name*.heroku.com -- so with the example output in the previous step, it would be floating-winter-18.heroku.com. Verify you see the welcome page. Leave this browser window open." + tip "If using Rails 4.0.x, further configuration is needed to get the welcome page to show on Heroku. You will get a message saying that 'The page you were looking for doesn't exist.' Do not worry about this for now." + message "In the browser, add /users to the end of the URL and hit *enter*. Verify you see the user list page." message "Create and save a new user to verify you can write to the database on Heroku." From 7f443f6034b97bdc4e6c9ad139317148eb5d514b Mon Sep 17 00:00:00 2001 From: Adrien Lamothe Date: Sat, 17 Aug 2013 14:42:28 -0700 Subject: [PATCH 262/897] Add a note to teaching tips to be well rested the day of teaching. [ci skip] --- sites/workshop/teaching_tips.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sites/workshop/teaching_tips.md b/sites/workshop/teaching_tips.md index 030ee44c9..8dcd35665 100644 --- a/sites/workshop/teaching_tips.md +++ b/sites/workshop/teaching_tips.md @@ -22,6 +22,7 @@ The command line as Zork. You are "in" a room (a directory) and can either act o * Advertise that the Friday night setup is **required**, send notes out 1 week ahead of time, so people can get started ahead of time * USB keys and/or DVDs with the big stuff like XCode * Ask the venue about bike policy (can participants bring bikes inside?) and communicate that to participants ahead of time. +* Get a good night's sleep before the class, it is important to be well rested and fresh when teaching or TA'ing. * Start with live coding - watch and type along, don't even use slides. make sure students & teachers irb prompts display line numbers, so we can say go to line 32 * Go into IRB to practice basic concepts first, don't discuss what agile and a variable is in the abstract right away. Learning by doing first and talking later worked better. * At the very beginning, show a designed version of app so people can recognize it as finished product like other web sites they see: screenshots are on Sarah Allen's site. From 23bf9731e47f7c1b274c0c09073785306ef780b1 Mon Sep 17 00:00:00 2001 From: Steven Miyakawa SAM Date: Sat, 17 Aug 2013 15:24:53 -0700 Subject: [PATCH 263/897] Reword tip that I just added about the default welcome page not showing on Heroku if using Rails 4. --- sites/installfest/create_and_deploy_a_rails_app.step | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sites/installfest/create_and_deploy_a_rails_app.step b/sites/installfest/create_and_deploy_a_rails_app.step index d316682de..fa285ca29 100644 --- a/sites/installfest/create_and_deploy_a_rails_app.step +++ b/sites/installfest/create_and_deploy_a_rails_app.step @@ -256,7 +256,7 @@ Migrating to CreateUsers (20111204065949) message "The URL for your app is *application name*.heroku.com -- so with the example output in the previous step, it would be floating-winter-18.heroku.com. Verify you see the welcome page. Leave this browser window open." - tip "If using Rails 4.0.x, further configuration is needed to get the welcome page to show on Heroku. You will get a message saying that 'The page you were looking for doesn't exist.' Do not worry about this for now." + tip "If using Rails 4.0.x, the default welcome page will not show on Heroku. You will get a message saying that 'The page you were looking for doesn't exist.' Do not worry about this for now." message "In the browser, add /users to the end of the URL and hit *enter*. Verify you see the user list page." From c3d75d23665c9491d0f0eda02903c3bbb6b30652 Mon Sep 17 00:00:00 2001 From: Isaac Murchie Date: Sat, 17 Aug 2013 15:39:09 -0700 Subject: [PATCH 264/897] removed superfluous 'feel' --- sites/workshop/more_teacher_training.deck.md | 74 ++++++++++---------- 1 file changed, 37 insertions(+), 37 deletions(-) diff --git a/sites/workshop/more_teacher_training.deck.md b/sites/workshop/more_teacher_training.deck.md index c710352d3..649672bc8 100644 --- a/sites/workshop/more_teacher_training.deck.md +++ b/sites/workshop/more_teacher_training.deck.md @@ -4,11 +4,11 @@ You're probably at a teacher training for RailsBridge. -This slide deck is a tool to facilitate conversations about teaching best practices and challenges, specifically for RailsBridge workshops. +This slide deck is a tool to facilitate conversations about teaching best practices and challenges, specifically for RailsBridge workshops. It helps to have a whiteboard or those giant sticky notes for the discussions if possible. -### Discussion is key! +### Discussion is key! ### Don't let the presenter(s) do all the talking! # Why RailsBridge? @@ -25,28 +25,28 @@ We're making tech more diverse and more welcoming! * Have you been to a RailsBridge before? How many? * What do you do for a living? Care to share who you work for? * What's your favorite structure in the Bay Area? -* Alternate silly questions: +* Alternate silly questions: * What's your spirit animal? * If you could only eat one food for the rest of your life, what would it be? # What's a RailsBridge? Raise your hand if you've been to a workshop before! - + ### RailsBridge Fun Facts * Founded in 2009 as a variety of initiatives, including Rails Mentors, Rails Bug Smashes, and the Open Workshop Project. * The workshops project was led by Sarah Allen and Sarah Mei. -* Its goal: make the Rails community more diverse and more welcoming to newcomers. +* Its goal: make the Rails community more diverse and more welcoming to newcomers. * Workshops are happening all over the world! # How does a workshop work? There are a few different RailsBridge curricula: - + * Intro to Rails (a.k.a. "Suggestotron") * Intermediate Rails * Intro to Ruby * Front End (HTML, CSS, and a tiny bit of JavaScript). -First, we get all the necessary technologies onto the students' computers. +First, we get all the necessary technologies onto the students' computers. The next day we break into small groups and work through the curriculum. @@ -66,10 +66,10 @@ The next day we break into small groups and work through the curriculum. # Is RailsBridge Open Source? -### WHY YES, THANK YOU FOR ASKING! +### WHY YES, THANK YOU FOR ASKING! ### RAILSBRIDGE IS VERY OPEN SOURCE! -All the materials you're using were created by volunteers, and are on GitHub for forking and editing and using! +All the materials you're using were created by volunteers, and are on GitHub for forking and editing and using! If you see something that could be better, make a pull request. Pull requests are the lifeblood of RailsBridge. @@ -80,17 +80,17 @@ We've made three quasi-arbitrary categories of ways to make your class awesome: ### We want our students to feel: * socially comfortable * technically capable -* like you know what's going on (even if you don't feel like you do). +* like you know what's going on (even if you don't feel like you do). # Discussion: Social Comfort -#### Imagine: +#### Imagine: * You're in a group of strangers * You're trying to do something that sounds really difficult * You've tried some coding tutorials online but got lost / bored / confused -#### How can we help make this easier? -#### How can you help people feel socially comfortable? +#### How can we help make this easier? +#### How can you help people feel socially comfortable? # Social Comfort (Ideas) @@ -109,7 +109,7 @@ We've made three quasi-arbitrary categories of ways to make your class awesome: * Don't hit on people. No sexual advances. None. Even at the after party. * Don't make sexist jokes. Or racist, classist, or ableist jokes. Call people out if they do. * Don't make gender-based generalizations ("Women are better at X, because ...") -* Don't make references to people's bodies or state your opinion of them. +* Don't make references to people's bodies or state your opinion of them. * Don't use slurs. * Don't treat women as delicate flowers; do treat them like normal people. @@ -121,7 +121,7 @@ We've made three quasi-arbitrary categories of ways to make your class awesome: # Technical Capability (Ideas) #### Explain that: * Even professional developers are constantly learning new technologies, so being confused is normal. -* Initial code is often terrible: don't feel feel bad, just refactor! +* Initial code is often terrible: don't feel bad, just refactor! * Mistakes == Learning! #### Dealing with technical concepts: @@ -133,7 +133,7 @@ We've made three quasi-arbitrary categories of ways to make your class awesome: #### Encourage collaboration and interaction * Explicitly encourage students to try to answer each other's questions. * If a question is asked, ask if anyone in the class thinks they can explain. -* Be especially encouraging of the first few questions, to try to get things rolling. +* Be especially encouraging of the first few questions, to try to get things rolling. * Good responses to questions: "I'm glad you asked!" or "I actually wondered that, too." or "Great question!" #### Be Super Positive, Always @@ -146,8 +146,8 @@ We've made three quasi-arbitrary categories of ways to make your class awesome: #### Walk the Middle Path * Don't go too deep for your class level, but also, don't gloss over things. * When trying to be accurate, it's easy to go down a rabbit hole of specificity. Avoid. -* Work with the TAs to make sure no one goes down that rabbit hole. Accountability! -* Explain the big picture of a command *before* they type it in. +* Work with the TAs to make sure no one goes down that rabbit hole. Accountability! +* Explain the big picture of a command *before* they type it in. * i.e., before typing the command to deploy to Heroku, explain the difference between localhost and Heroku. # Discussion (Do you know what's up?) @@ -171,21 +171,21 @@ We've made three quasi-arbitrary categories of ways to make your class awesome: # Know What's Up (More Ideas) #### Don't be afraid to: * Call on people! By name! -* Correct people if they're wrong. Be polite and encouraging. For instance: - * "Well, this might work better and this is why." - * "Can you explain how you came to that conclusion?" +* Correct people if they're wrong. Be polite and encouraging. For instance: + * "Well, this might work better and this is why." + * "Can you explain how you came to that conclusion?" * "Does anyone have a different answer?" -* Ask yourself questions and answer them. +* Ask yourself questions and answer them. # Know What's Up (Even More Ideas) #### Pace yourself! -* Don't go too fast. You will probably go too fast. Check in occasionally to ensure everyone is still with you. -* You can say the same thing THREE TIMES and it will not be boring yet. -* When you ask a question, wait TEN WHOLE SECONDS before saying anything else. People need time to think. -* Don't let the most advanced students dictate the pacing or answer all the questions. +* Don't go too fast. You will probably go too fast. Check in occasionally to ensure everyone is still with you. +* You can say the same thing THREE TIMES and it will not be boring yet. +* When you ask a question, wait TEN WHOLE SECONDS before saying anything else. People need time to think. +* Don't let the most advanced students dictate the pacing or answer all the questions. # Discussion: Challenges -Talk about what problems you might anticipate, and what to do about them. +Talk about what problems you might anticipate, and what to do about them. #### Some issues: * Student is in the wrong class level @@ -204,11 +204,11 @@ Talk about what problems you might anticipate, and what to do about them. #### TAs: How can you best utilize the AWESOME POWER that is a TA? # TAs (Some Ideas) -* TAs can ask questions to encourage students to speak up. -* Ask your TA to explain a concept; they may be more technically advanced than you! +* TAs can ask questions to encourage students to speak up. +* Ask your TA to explain a concept; they may be more technically advanced than you! * TAs can help people who get lost -* Co-teaching is also an option if you feel like you can tag-team. There doesn't have to be a hierarchy. -* If someone falls behind, the TA can take them out of the room to do some 1-on-1, if there's another TA in the room. +* Co-teaching is also an option if you feel like you can tag-team. There doesn't have to be a hierarchy. +* If someone falls behind, the TA can take them out of the room to do some 1-on-1, if there's another TA in the room. # Discussion: Comprehension #### How can you tell if they understand the words you're saying? @@ -217,29 +217,29 @@ Talk about what problems you might anticipate, and what to do about them. # Student Comprehension (Some Ideas) * Pay attention to body language. -* People ask questions most often when they are actively processesing material. If they aren't, it might be that the materials is too easy or hard. Try to figure out which it is! +* People ask questions most often when they are actively processesing material. If they aren't, it might be that the materials is too easy or hard. Try to figure out which it is! #### Calling on people * Calling on people makes the class more interactive and engaging, and less lecture-y. * Don't always ask questions to the whole class: call on individuals by name. -* Consider breaking the class into two teams and addressing questions to teams. +* Consider breaking the class into two teams and addressing questions to teams. * Ask people what they expect a command to produce BEFORE you hit enter. * Ask "How would you do \#\{this\}?" or "If I wanted to do \#\{that\}, what would I do?" # Installfest! #### Keep in mind: -* There will be people with _all_ kinds of computers. +* There will be people with _all_ kinds of computers. * Even though Windows is not an ideal Rails development environment, we're here to encourage people and meet them wherever they are right now. * Do NOT say bad things about Windows, even if it's frustrating. -* If you're not sure about something, grab another volunteer. +* If you're not sure about something, grab another volunteer. # Very Important, Very Practical Things #### Where to find the curriculum: http://docs.railsbridge.org -You need to read the curriculum through, beginning to end, before teaching it. +You need to read the curriculum through, beginning to end, before teaching it. First workshop? Be a TA! #### Where to submit pull requests: https://github.com/railsbridge/docs -We need your help! Thank you!!! \ No newline at end of file +We need your help! Thank you!!! From 944ec03d79592967af2f2005241c8ae69e6a7f97 Mon Sep 17 00:00:00 2001 From: Tracy Weiss Date: Sat, 17 Aug 2013 16:23:07 -0700 Subject: [PATCH 265/897] fixed typo. [ci-skip] --- sites/workshop/more_teacher_training.deck.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sites/workshop/more_teacher_training.deck.md b/sites/workshop/more_teacher_training.deck.md index c710352d3..ed5fe2918 100644 --- a/sites/workshop/more_teacher_training.deck.md +++ b/sites/workshop/more_teacher_training.deck.md @@ -53,7 +53,7 @@ The next day we break into small groups and work through the curriculum. # Typical RailsBridge Schedule * Friday, 6-10pm-ish: installing things over pizza & beer (no formal presentations) - _NB: the Front End workshop doens't have an installfest._ + _NB: the Front End workshop doesn't have an installfest._ * Saturday's schedule, often: * 9-9:30am: Check-in, coffee, bagels From dfbdf73ba3c6dc0b84cec8fd28b84640b85c0cad Mon Sep 17 00:00:00 2001 From: Naomi Quinones Date: Sat, 17 Aug 2013 16:31:11 -0700 Subject: [PATCH 266/897] added javascript_not_java.step, linked to it from javascript.step --- sites/javascript/javascript.step | 2 +- sites/javascript/javascript_not_java.step | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 sites/javascript/javascript_not_java.step diff --git a/sites/javascript/javascript.step b/sites/javascript/javascript.step index 265074306..77cc8ab3e 100644 --- a/sites/javascript/javascript.step +++ b/sites/javascript/javascript.step @@ -47,4 +47,4 @@ browser gets confusing and wastes time. MARKDOWN -next_step 'numbers_strings_and_booleans' +next_step 'javascript_not_java' diff --git a/sites/javascript/javascript_not_java.step b/sites/javascript/javascript_not_java.step new file mode 100644 index 000000000..b14d80159 --- /dev/null +++ b/sites/javascript/javascript_not_java.step @@ -0,0 +1,19 @@ +message <<-MARKDOWN + +### JavaScript is not Java + +JavaScript is more a marketing term given to ECMAscript, which was developed by Netscape in 1995, because Java, a programming language, was popular back then. +But the two are different. + +The purpose of Java is more of a server language. JavaScript was originally meant to run on the client side, but when it didn't catch on, its creators rewrote it to use naming conventions similar to Java. + +JavaScript was meant to manipulate the web document after it was loaded. + +### HTML and JavaScript + +HTML lets you create the elements in your document (web page). JavaScript lets you interact with them. The curriculum that follows assumes an understanding of HTML. If you need more background info, please see the [Railsbridge Frontend Curriculum](http://curriculum.railsbridge.org/frontend). + + +MARKDOWN + +next_step 'clone_a_repo' \ No newline at end of file From c256e6a55a8f17ea42997d86d866737ab1239941 Mon Sep 17 00:00:00 2001 From: Doug May Date: Sat, 17 Aug 2013 17:06:56 -0700 Subject: [PATCH 267/897] fix typos in more_teacher_training.deck; add link to BT git ref --- sites/workshop/more_teacher_training.deck.md | 50 ++++++++++---------- 1 file changed, 26 insertions(+), 24 deletions(-) diff --git a/sites/workshop/more_teacher_training.deck.md b/sites/workshop/more_teacher_training.deck.md index 1901740ef..1cdc0788d 100644 --- a/sites/workshop/more_teacher_training.deck.md +++ b/sites/workshop/more_teacher_training.deck.md @@ -15,9 +15,9 @@ It helps to have a whiteboard or those giant sticky notes for the discussions if We're making tech more diverse and more welcoming! ### How? -* We throw super-welcoming, fun, free workshops -* We provide hella networking opportunities for students and volunteers -* We help our volunteers become more empathetic and better communicators +* We throw super-welcoming, fun, free workshops. +* We provide hella networking opportunities for students and volunteers. +* We help our volunteers become more empathetic and better communicators. # Introductions ### Who are you? @@ -46,14 +46,14 @@ There are a few different RailsBridge curricula: * Intro to Ruby * Front End (HTML, CSS, and a tiny bit of JavaScript). -First, we get all the necessary technologies onto the students' computers. +First, we get all the necessary technologies onto the students' computers (the InstallFest). The next day we break into small groups and work through the curriculum. # Typical RailsBridge Schedule -* Friday, 6-10pm-ish: installing things over pizza & beer (no formal presentations) +* Friday, 6-10pm-ish: InstallFest -- installing things over pizza & beer (no formal presentations) - _NB: the Front End workshop doesn't have an installfest._ + _n.b.: the Front End workshop doesn't have an InstallFest._ * Saturday's schedule, often: * 9-9:30am: Check-in, coffee, bagels @@ -62,7 +62,7 @@ The next day we break into small groups and work through the curriculum. * 12:30-1:30pm: Lunch * 1:30pm-4:30pm: Class! (with a break sometime mid-afternoon) * 4:30-5:00pm: Closing presentation & retros - * 5:00pm-late: Afterparty + * 5:00pm-late: After-party # Is RailsBridge Open Source? @@ -87,7 +87,7 @@ We've made three quasi-arbitrary categories of ways to make your class awesome: #### Imagine: * You're in a group of strangers * You're trying to do something that sounds really difficult -* You've tried some coding tutorials online but got lost / bored / confused +* You've tried some coding tutorials online but got lost / bored / confused. #### How can we help make this easier? #### How can you help people feel socially comfortable? @@ -96,17 +96,17 @@ We've made three quasi-arbitrary categories of ways to make your class awesome: # Social Comfort (Ideas) #### Introductions -* Include name, profession, why are you here, and something silly +* Include name, profession, why are you here, and something silly. * Don't rush, even if you have a big class. -* If someone joins the class late, ask them to introduce themselves +* If someone joins the class late, ask them to introduce themselves. #### Icebreakers -* Name games! Admit upfront that most people are bad at learning new names. -* Get people talking. The more comfortable they are at talking, the more likely they'll speak up when they don't understand something, or to answer someone else's question +* Name games! Admit up front that most people are bad at learning new names. +* Get people talking. The more comfortable they are at talking, the more likely they'll speak up when they don't understand something, or to answer someone else's question. # Social Comfort (More Ideas) #### Try to suppress your (understandable) culturally-influenced sexism -* Don't hit on people. No sexual advances. None. Even at the after party. +* Don't hit on people. No sexual advances. None. Even at the after-party. * Don't make sexist jokes. Or racist, classist, or ableist jokes. Call people out if they do. * Don't make gender-based generalizations ("Women are better at X, because ...") * Don't make references to people's bodies or state your opinion of them. @@ -127,7 +127,7 @@ We've made three quasi-arbitrary categories of ways to make your class awesome: #### Dealing with technical concepts: * Define technical terms! Several times! * Assume anyone you're teaching has zero knowledge but infinite intelligence. -* Remember people's professional and code backgrounds (QA, DBA, C++, Java, JS) and relate where possible. +* Remember people's professional and code backgrounds (QA, DBA, C++, Java, JS) and relate where possible. If they are a cook, try a cooking analogy. # Technical Capability (More Ideas) #### Encourage collaboration and interaction @@ -160,12 +160,12 @@ We've made three quasi-arbitrary categories of ways to make your class awesome: * Cover logistics at the beginning of class * Planned breaks, lunch time * Remind students that there is a closing presentation at the end - * Make sure they know the bathroom is + * Make sure they know where the bathroom is * Encourage them to attend the after-party #### Establish a few ground rules -* Questions are always welcome, even if the student thinks it might be dumb -* Explain that if someone has trouble not getting the expected output, the TAs will help troubleshoot +* Questions are always welcome, even if the student thinks it might be dumb. +* Explain that if someone has trouble (e.g., not getting the expected output), the TAs will help troubleshoot. * If anyone wants to switch classes, tell them they should feel TOTALLY COMFORTABLE switching at any point. # Know What's Up (More Ideas) @@ -204,11 +204,11 @@ Talk about what problems you might anticipate, and what to do about them. #### TAs: How can you best utilize the AWESOME POWER that is a TA? # TAs (Some Ideas) -* TAs can ask questions to encourage students to speak up. -* Ask your TA to explain a concept; they may be more technically advanced than you! -* TAs can help people who get lost -* Co-teaching is also an option if you feel like you can tag-team. There doesn't have to be a hierarchy. -* If someone falls behind, the TA can take them out of the room to do some 1-on-1, if there's another TA in the room. +* TAs can ask questions to encourage students to speak up. +* Ask your TA to explain a concept; they may be more technically advanced than you! +* TAs can help people who get lost. +* Co-teaching is also an option if you feel like you can tag-team. There doesn't have to be a hierarchy. +* If someone falls behind, the TA can take them out of the room to do some 1-on-1, if there's another TA in the room. # Discussion: Comprehension #### How can you tell if they understand the words you're saying? @@ -217,7 +217,7 @@ Talk about what problems you might anticipate, and what to do about them. # Student Comprehension (Some Ideas) * Pay attention to body language. -* People ask questions most often when they are actively processesing material. If they aren't, it might be that the materials is too easy or hard. Try to figure out which it is! +* People ask questions most often when they are actively processing material. If they aren't, it might be that the material is too easy or hard. Try to figure out which it is! #### Calling on people * Calling on people makes the class more interactive and engaging, and less lecture-y. @@ -226,7 +226,7 @@ Talk about what problems you might anticipate, and what to do about them. * Ask people what they expect a command to produce BEFORE you hit enter. * Ask "How would you do \#\{this\}?" or "If I wanted to do \#\{that\}, what would I do?" -# Installfest! +# InstallFest! #### Keep in mind: * There will be people with _all_ kinds of computers. * Even though Windows is not an ideal Rails development environment, we're here to encourage people and meet them wherever they are right now. @@ -242,4 +242,6 @@ First workshop? Be a TA! #### Where to submit pull requests: https://github.com/railsbridge/docs +#### How to submit pull requests: http://railsbridge.github.io/bridge_troll/ + We need your help! Thank you!!! From 5086130c29d3c50247b0f1ba87a4fc0d3619acff Mon Sep 17 00:00:00 2001 From: Naomi Quinones Date: Sat, 17 Aug 2013 17:46:08 -0700 Subject: [PATCH 268/897] modified historical info and added sample code --- sites/javascript/javascript_not_java.step | 8 +++----- sites/javascript/numbers_strings_and_booleans.step | 5 +++-- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/sites/javascript/javascript_not_java.step b/sites/javascript/javascript_not_java.step index b14d80159..692364f90 100644 --- a/sites/javascript/javascript_not_java.step +++ b/sites/javascript/javascript_not_java.step @@ -2,16 +2,14 @@ message <<-MARKDOWN ### JavaScript is not Java -JavaScript is more a marketing term given to ECMAscript, which was developed by Netscape in 1995, because Java, a programming language, was popular back then. +JavaScript, which was created at Netscape in 1995, was originally called LiveScript but was renamed around the same time that Java was becoming a popular new programming language. But the two are different. -The purpose of Java is more of a server language. JavaScript was originally meant to run on the client side, but when it didn't catch on, its creators rewrote it to use naming conventions similar to Java. - -JavaScript was meant to manipulate the web document after it was loaded. +Whereas Java was meant to run on the server, JavaScript was originally meant to run in the browser and allow the user to manipulate the web document after it was loaded. Nowadays it is also being used as a server-side language. ### HTML and JavaScript -HTML lets you create the elements in your document (web page). JavaScript lets you interact with them. The curriculum that follows assumes an understanding of HTML. If you need more background info, please see the [Railsbridge Frontend Curriculum](http://curriculum.railsbridge.org/frontend). +HTML lets you create the elements in your document (web page). JavaScript lets you interact with them. The curriculum that follows assumes an understanding of HTML. If you need more background info, please see the [Railsbridge Frontend Curriculum](/frontend). MARKDOWN diff --git a/sites/javascript/numbers_strings_and_booleans.step b/sites/javascript/numbers_strings_and_booleans.step index 16b360b1b..946d646bd 100644 --- a/sites/javascript/numbers_strings_and_booleans.step +++ b/sites/javascript/numbers_strings_and_booleans.step @@ -47,10 +47,11 @@ end message <<-MARKDOWN ## Booleans (True/False) -Booleans are a type of object used to indicate true or false values in Javascript. +Booleans are a type of object used to indicate true or false values in Javascript. They are most often used to help check whether a condition is true or not, or whether something exists. MARKDOWN steps do - step {message "fill this shit in later."} + step {message "Try creating a Boolean by typing `'x = false'`."} + step {message "`Type x==false?console.log(`'yes`'):console.log("no");`."} end end \ No newline at end of file From bad68de1dbced023573018ef72dcac4eec9ee946 Mon Sep 17 00:00:00 2001 From: Naomi Quinones Date: Sat, 17 Aug 2013 18:15:09 -0700 Subject: [PATCH 269/897] fixed sample code for booleans section --- sites/javascript/numbers_strings_and_booleans.step | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/sites/javascript/numbers_strings_and_booleans.step b/sites/javascript/numbers_strings_and_booleans.step index 946d646bd..c91b88fef 100644 --- a/sites/javascript/numbers_strings_and_booleans.step +++ b/sites/javascript/numbers_strings_and_booleans.step @@ -51,7 +51,6 @@ Booleans are a type of object used to indicate true or false values in Javascrip MARKDOWN steps do step {message "Try creating a Boolean by typing `'x = false'`."} - step {message "`Type x==false?console.log(`'yes`'):console.log("no");`."} + step {message "`Type x==false?console.log(`'yes`'):console.log(`'no`');`."} end - end \ No newline at end of file From 67db94c6c6042f9749a95e6ad900642297bd882c Mon Sep 17 00:00:00 2001 From: Doug May Date: Sun, 18 Aug 2013 01:39:46 -0700 Subject: [PATCH 270/897] update readme.md to suggest early `rake spec` and summarize pull req readiness criteria; flag organizer instructions as outdated --- README.md | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index a8008bd29..34664d76e 100644 --- a/README.md +++ b/README.md @@ -13,21 +13,25 @@ If the above fails (say, because `rerun` doesn't work on your system), try rackup -Then open in a web browser. +Then open in a web browser, and verify that you can navigate the installfest slides. -If you make any changes, and especially before a pull request, run +If you expect to make any changes, run bundle exec rake spec -which will run some unit tests and also do syntax validation on all pages, to make sure you didn't break anything. +which will install any additional needed gems, and then run the test suite to confirm that you are ready to (preliminarily) validate any changes you make. -When you submit a Pull Request, Travis CI will also run all the tests. +NOTE: Before submitting a pull request, you should make sure that you are on a feature branch, in sync with (rebased to) the current upstream master, and that you can cleanly run + + bundle exec rake spec + +which will run our standard unit tests and also do syntax validation on all pages, to make sure you didn't break anything. When you submit a Pull Request, Travis CI will also run all the tests. # Overview -This is a Sinatra app, deployed at . The Railsbridge documentation project is home to a few subprojects, including the Railsbridge installfest instructions, which leads students through the various complicated setup instructions for getting Ruby, Rails, Git, etc. installed on their computer (whatever combination of computer, OS, and version they happened to bring the the workshop!), as well as the Railsbridge workshop "Suggestotron" curriculum. +This is a Sinatra app, deployed at . The RailsBridge documentation project is home to a few subprojects, including the RailsBridge installfest instructions, which leads students through the various complicated setup instructions for getting Ruby, Rails, Git, etc. installed on their computer (whatever combination of computer, OS, and version they happened to bring to the workshop!), as well as the RailsBridge workshop "Suggestotron" curriculum. -Each subproject (a "site") comprises files stored under the "sites" directory; for instance, the installfest instructions are located at ROOT/sites/installfest, while the curriculum can be found under ROOT/sites/curriculum. +Each subproject (a "site") comprises files stored under the "sites" directory; for instance, the installfest instructions are located at ROOT/sites/installfest, while the standard curriculum can be found under ROOT/sites/curriculum. These files can be in any of these formats: @@ -46,9 +50,9 @@ StepFile is a new, Ruby-based DSL for describing complex, nested instructions in [Deck.rb](https://github.com/alexch/deck.rb) converts Markdown files into an interactive in-browser HTML+JavaScript slide deck. -#Organizer Instructions +#Organizer Instructions (probably outdated -- double check) -Slide contents that change with each workshop are contained in three files under the workshop project. The 'hello and welcome, this is when the breaks are' presentation slides are in current.deck.md. The 'this is what we will learn today' slides are in welcome.deck.md. And the 'this is what we have learned' slides are in closing.deck.md. +Slide contents that change with each workshop are contained in three files under the workshop project. The 'hello and welcome, this is when the breaks are' presentation slides are in current.deck.md. The 'this is what we will learn today' slides are in welcome.deck.md. And the 'this is what we have learned, and what comes next' slides are in closing.deck.md. To change those contents, clone this repo, make changes, and then to include your changes in the publicly available repo, send a pull request. @@ -222,6 +226,7 @@ StepFile is an [Erector](http://erector.rubyforge.org)-based DSL, so if you want * move fonts local # TODO (content) +* pull "organizer" content (from this readme.md) and point to the real stuff they should use * install ALL the operating systems! * troubleshooting page * look into installation scripts From b0f0596b9e31e84fa8453c6a44ecabc6727e9e06 Mon Sep 17 00:00:00 2001 From: zaiteki Date: Mon, 19 Aug 2013 19:13:41 -0700 Subject: [PATCH 271/897] javascript curriculum step to copy files from the fabulous Windows 8 GitHub client... Hope the linefeeds aren't changed --- sites/javascript/clone_a_repo.step | 51 ++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 sites/javascript/clone_a_repo.step diff --git a/sites/javascript/clone_a_repo.step b/sites/javascript/clone_a_repo.step new file mode 100644 index 000000000..79b0d7e76 --- /dev/null +++ b/sites/javascript/clone_a_repo.step @@ -0,0 +1,51 @@ +message <<-MARKDOWN + +# Clone a Repo Contining HTML & CSS + +To review these concepts we will be using Javascript to manipulate a deck of cards that will later be used to make a game. +The HTML and CSS files have been provided for you and can be copied to your local computer by cloning a repository from the Railsbridge GitHub account. +If you have a [graphical user interface client for git](http://git-scm.com/downloads/guis) that you like and know how to use you can use that; +otherwise you can use the console. If the wifi is out, or you have other problems, the instructor can probably supply the files +on a USB stick for you to copy. Remember to ask a TA if you get stuck or need help. + +## Install Git +If you have git installed already, great! If not, you can follow the instructions for installing git from the +[Railsbridge Installfest](http://installfest.railsbridge.org/installfest) for Rails, then return to this page. + + +## Configure Git +Follow the [instructions for configuring git](http://installfest.railsbridge.org/installfest/configure_git) from the +Railsbridge Rails workshop and then return to this page. + +## Clone the Repo / Copy the Files + +Create a directory that you want to save your Railsbridge files in (if you haven't done so before). If you're using the console type: +$`mkdir railsbridge` +then, to change to that directory +$`cd railsbridge` . + ++ To clone the repo from the Railsbridge repository type: +$`git clone http://whatever-i'll-look-this-up-later` _note: I don't think these files are in the repo yet, +so the correct URL can't be inserted yet_ - this +will save the files from Github to your computer. ++ If you have issues installing git: to download the files as a `.zip` archive, navigate in your browser +to the page containing them on the GitHub site, and click on _Download ZIP_ button and save to your `railsbridge` directory. ++ If you are getting the files from a USB drive, transfer them to your `railsbridge` directory. + +If you got the files as a `.zip` archive, extract them to a directory using your usual methods. +Look at a file listing in your directory to verify the files are there. + +Now you should be ready to start writing javascript to manipulate the elements on the HTML page (the next step). + +## more info on git (extra stuff you can read later if you want) +[Git](http://git-scm.com) is not just used for transferring files, it's one of a variety of +[version control systems](http://en.wikipedia.org/wiki/Comparison_of_revision_control_software) that let +you backup your files and share them with others in group development. Railsbridge has its files on [GitHub](http://github.com), +a [public Git hosting site](https://git.wiki.kernel.org/index.php/GitHosting). + +There are videos and written documentation on using git at [http://git-scm.com/documentation](http://git-scm.com/documentation). +For more information from Railsbridge on using git see: [Railsbridge Guide on How to Git](http://railsbridge.github.io/bridge_troll/). + +MARKDOWN + +next_step 'manipulate_card' From 03cccf66f573e563546f44f33ccac7a3db362621 Mon Sep 17 00:00:00 2001 From: Doug May Date: Wed, 21 Aug 2013 17:51:41 -0700 Subject: [PATCH 272/897] tweak more_teacher_training.deck --- sites/workshop/more_teacher_training.deck.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sites/workshop/more_teacher_training.deck.md b/sites/workshop/more_teacher_training.deck.md index 1cdc0788d..a5dd9dd8a 100644 --- a/sites/workshop/more_teacher_training.deck.md +++ b/sites/workshop/more_teacher_training.deck.md @@ -46,14 +46,14 @@ There are a few different RailsBridge curricula: * Intro to Ruby * Front End (HTML, CSS, and a tiny bit of JavaScript). -First, we get all the necessary technologies onto the students' computers (the InstallFest). +First, we get all the necessary technologies onto the students' computers (the installfest). The next day we break into small groups and work through the curriculum. # Typical RailsBridge Schedule -* Friday, 6-10pm-ish: InstallFest -- installing things over pizza & beer (no formal presentations) +* Friday, 6-10pm-ish: installfest -- installing things over pizza & beer (no formal presentations) - _n.b.: the Front End workshop doesn't have an InstallFest._ + _n.b.: the Front End workshop doesn't have an installfest._ * Saturday's schedule, often: * 9-9:30am: Check-in, coffee, bagels @@ -226,7 +226,7 @@ Talk about what problems you might anticipate, and what to do about them. * Ask people what they expect a command to produce BEFORE you hit enter. * Ask "How would you do \#\{this\}?" or "If I wanted to do \#\{that\}, what would I do?" -# InstallFest! +# Installfest! #### Keep in mind: * There will be people with _all_ kinds of computers. * Even though Windows is not an ideal Rails development environment, we're here to encourage people and meet them wherever they are right now. From 9f44ab54fe2dec81a47643016b8af710d96a85ab Mon Sep 17 00:00:00 2001 From: Doug May Date: Wed, 21 Aug 2013 18:06:36 -0700 Subject: [PATCH 273/897] remove incorrect note about installing gems --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 34664d76e..b1ce3d15c 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ If you expect to make any changes, run bundle exec rake spec -which will install any additional needed gems, and then run the test suite to confirm that you are ready to (preliminarily) validate any changes you make. +which will run the test suite to confirm that you are ready to (preliminarily) validate any changes you make. NOTE: Before submitting a pull request, you should make sure that you are on a feature branch, in sync with (rebased to) the current upstream master, and that you can cleanly run From 067b698a22400cd8fc0cecf5de4bfc6b99fc0103 Mon Sep 17 00:00:00 2001 From: aaronwbrown Date: Fri, 23 Aug 2013 19:54:35 -0700 Subject: [PATCH 274/897] Add a step to create a root route We discovered that rails 4.0 on heroku would throw an exception going to the index page if you did not have a root route defined. --- sites/installfest/get_a_sticker.step | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/sites/installfest/get_a_sticker.step b/sites/installfest/get_a_sticker.step index eaf645325..95da3d633 100644 --- a/sites/installfest/get_a_sticker.step +++ b/sites/installfest/get_a_sticker.step @@ -214,8 +214,27 @@ git commit -m "Add pg gem for Heroku." GIT_COMMIT result "[master 4a275be] Add pg gem for Heroku. 2 files changed, 6 insertions(+)" + + message "Use your editor to open the routes.rb (`C:\\sites\\sticker\\config\\routes.rb` or `~/sticker/config/routes.rb`) and find the line containing:" - message "The name of your heroku app will be different. That is fine." + source_code :ruby, <<-RUBY +# root 'welcome#index' + RUBY + + message "Remove this line and replace it with" + + source_code :ruby, <<-RUBY +root 'drinks#index' + RUBY + + message "Commit this change" + + console <<-GIT_COMMIT +git add . +git commit -m "Changed root route" + GIT_COMMIT + + message "The name of your heroku app will be different. That is fine." console "heroku create" result <<-HEROKU_CREATE From 86c5973e453f8f8540c14341c9487a671f3ce015 Mon Sep 17 00:00:00 2001 From: Alex Chaffee Date: Sat, 24 Aug 2013 08:54:59 -0700 Subject: [PATCH 275/897] link to Learn To Code --- sites/docs/docs.step | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sites/docs/docs.step b/sites/docs/docs.step index c43a10cbf..81690545f 100644 --- a/sites/docs/docs.step +++ b/sites/docs/docs.step @@ -19,8 +19,10 @@ HTML + CSS for beginners. Make a website, no server required! A ruby-specific curriculum, expanded from the "Ruby for Beginners" slide deck. Still new, with room for your contributions. +Railsbridge workshops can also use Alex's [Learn To Code In Ruby](http://codelikethis.com/lessons/learn_to_code) curriculum (currently in a separate site). It's also open source and may soon join the main Railsbridge Docs repo. It's geared towards people who may never have written code before. + # [Workshop](/workshop) The Railsbridge junkyard! Slide decks for opening/closing presentations, teacher training. -MARKDOWN \ No newline at end of file +MARKDOWN From 8ba4eff5ca724cd38a9973fb4ab273f081541134 Mon Sep 17 00:00:00 2001 From: Travis Grathwell Date: Mon, 26 Aug 2013 23:12:47 -0700 Subject: [PATCH 276/897] Add extra 'gem install rails' for RailsInstaller RailsInstaller by itself only installs Rails 3.2, and the instructions right now cater to 4.x --- sites/installfest/osx_railsinstaller.step | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/sites/installfest/osx_railsinstaller.step b/sites/installfest/osx_railsinstaller.step index 225623764..5e70f064f 100644 --- a/sites/installfest/osx_railsinstaller.step +++ b/sites/installfest/osx_railsinstaller.step @@ -29,6 +29,14 @@ step "Install Sublime Text 2" do link "install_sublime_text_2_for_mac" end +step "Update Rails" do + message "Currently, RailsInstaller installs Rails 3.2.x, but we want 4.x. Upgrading Rails is pretty easy:" + + console "gem install rails" + + message "...and you're done. New Rails! Woo." +end + verify "successful installation" do console "which git" result "/usr/bin/git" From 2af06fb8ab7545840daadd90e2173b694663604a Mon Sep 17 00:00:00 2001 From: Jason Noble Date: Fri, 13 Sep 2013 20:11:05 -0600 Subject: [PATCH 277/897] Add Missing Step In the directions, we have "cd ~", followed by "cd railsbridge". The students are getting directory not found. This change adds a step after "cd ~" and before "cd railsbridge" to create that directory. --- sites/curriculum/getting_started.step | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/sites/curriculum/getting_started.step b/sites/curriculum/getting_started.step index 827c2eaf2..9bed25a4a 100644 --- a/sites/curriculum/getting_started.step +++ b/sites/curriculum/getting_started.step @@ -1,4 +1,3 @@ - img src: "img/Start_page.png", alt: "Start Page" goals do @@ -13,6 +12,11 @@ steps do step do switch_to_home_directory end + + step do + console "mkdir railsbridge" + message "This command creates a new directory for us to store our project in." + end step do console "cd railsbridge" From 156844980a2ab15bcbd0995c4d4b8d1a9a58c75a Mon Sep 17 00:00:00 2001 From: Alex Chaffee Date: Sat, 14 Sep 2013 08:44:52 -0700 Subject: [PATCH 278/897] extract switch_to_home_directory into a partial (using 'insert') --- lib/step.rb | 13 ------------- sites/curriculum/getting_started.step | 2 +- sites/curriculum/switch_to_home_directory.step | 10 ++++++++++ .../installfest/create_and_deploy_a_rails_app.step | 2 +- sites/installfest/get_a_sticker.step | 4 +--- sites/installfest/switch_to_home_directory.step | 10 ++++++++++ 6 files changed, 23 insertions(+), 18 deletions(-) create mode 100644 sites/curriculum/switch_to_home_directory.step create mode 100644 sites/installfest/switch_to_home_directory.step diff --git a/lib/step.rb b/lib/step.rb index 02e700a30..d0389c7a5 100644 --- a/lib/step.rb +++ b/lib/step.rb @@ -72,19 +72,6 @@ def insert file end end - def switch_to_home_directory - message "`cd` stands for change directory." - - option "Windows" do - console "cd c:\\Sites" - message "`cd c:\\Sites` sets our Sites directory to our current directory." - end - option "Mac or Linux" do - console "cd ~" - message "`cd ~` sets our home directory to our current directory." - end - end - def consider_deploying div :class => "deploying" do h1 "Deploying" diff --git a/sites/curriculum/getting_started.step b/sites/curriculum/getting_started.step index 827c2eaf2..7d03f3215 100644 --- a/sites/curriculum/getting_started.step +++ b/sites/curriculum/getting_started.step @@ -11,7 +11,7 @@ steps do tip "If you have _any_ problems, contact a TA immediately." step do - switch_to_home_directory + insert 'switch_to_home_directory' end step do diff --git a/sites/curriculum/switch_to_home_directory.step b/sites/curriculum/switch_to_home_directory.step new file mode 100644 index 000000000..093920a03 --- /dev/null +++ b/sites/curriculum/switch_to_home_directory.step @@ -0,0 +1,10 @@ +message "`cd` stands for change directory." + +option "Windows" do + console "cd c:\\Sites" + message "`cd c:\\Sites` sets our Sites directory to our current directory." +end +option "Mac or Linux" do + console "cd ~" + message "`cd ~` sets our home directory to our current directory." +end diff --git a/sites/installfest/create_and_deploy_a_rails_app.step b/sites/installfest/create_and_deploy_a_rails_app.step index fa285ca29..95e1dce30 100644 --- a/sites/installfest/create_and_deploy_a_rails_app.step +++ b/sites/installfest/create_and_deploy_a_rails_app.step @@ -1,5 +1,5 @@ step "Change to your home directory" do - switch_to_home_directory + insert 'switch_to_home_directory' end step "Create a railbridge directory" do diff --git a/sites/installfest/get_a_sticker.step b/sites/installfest/get_a_sticker.step index eaf645325..cfcaab16c 100644 --- a/sites/installfest/get_a_sticker.step +++ b/sites/installfest/get_a_sticker.step @@ -43,9 +43,7 @@ step "Build the sticker app" do verify "rails" do - section "Change to your home directory" do - switch_to_home_directory - end + insert 'switch_to_home_directory' console "cd railsbridge" diff --git a/sites/installfest/switch_to_home_directory.step b/sites/installfest/switch_to_home_directory.step new file mode 100644 index 000000000..093920a03 --- /dev/null +++ b/sites/installfest/switch_to_home_directory.step @@ -0,0 +1,10 @@ +message "`cd` stands for change directory." + +option "Windows" do + console "cd c:\\Sites" + message "`cd c:\\Sites` sets our Sites directory to our current directory." +end +option "Mac or Linux" do + console "cd ~" + message "`cd ~` sets our home directory to our current directory." +end From 278504ac3e05bddec23e32be6ad80624ad545d2c Mon Sep 17 00:00:00 2001 From: Alex Chaffee Date: Sat, 14 Sep 2013 08:50:41 -0700 Subject: [PATCH 279/897] document 'insert' in readme --- README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/README.md b/README.md index b1ce3d15c..602358d21 100644 --- a/README.md +++ b/README.md @@ -138,6 +138,14 @@ Here Docs are especially useful with `message`s since you can just dump in markd * called out in a blue box * the name is *not* markdown, but is a bold title for the tip box * content should be inside a nested block + +`insert "filename"` + + * inserts the contents of one file inside another + * a way to do "partials" + * current limitations: + * only works with `.step` files + * inserted file must be in same directory as inserting file ## messages From 80749e54402eaaac002682e05689a3c6561f07ad Mon Sep 17 00:00:00 2001 From: Alex Chaffee Date: Sat, 14 Sep 2013 09:08:47 -0700 Subject: [PATCH 280/897] extract consider_deploying pages into partial (using 'insert') --- lib/step.rb | 20 ------------------- sites/curriculum/allow_people_to_vote.step | 2 +- .../clean_up_links_on_the_topics_list.step | 2 +- sites/curriculum/consider_deploying.step | 7 +++++++ .../curriculum/setting_the_default_page.step | 2 +- sites/frontend/add_more_elements.step | 2 +- .../consider_deploying_to_github.step | 7 +++++++ sites/frontend/make_a_web_page.step | 2 +- sites/frontend/make_columns.step | 2 +- 9 files changed, 20 insertions(+), 26 deletions(-) create mode 100644 sites/curriculum/consider_deploying.step create mode 100644 sites/frontend/consider_deploying_to_github.step diff --git a/lib/step.rb b/lib/step.rb index d0389c7a5..728dc152c 100644 --- a/lib/step.rb +++ b/lib/step.rb @@ -72,26 +72,6 @@ def insert file end end - def consider_deploying - div :class => "deploying" do - h1 "Deploying" - blockquote do - message "Before the next step, you could try deploying your app to Heroku!" - link 'deploying_to_heroku' - end - end - end - - def consider_deploying_to_github - div :class => "deploying" do - h1 "Deploying" - blockquote do - message "Before the next step, you could try deploying your page to Github!" - link 'deploying_to_github_pages' - end - end - end - def step name = nil, options = {} num = next_step_number a(:name => "step#{current_anchor_num}") diff --git a/sites/curriculum/allow_people_to_vote.step b/sites/curriculum/allow_people_to_vote.step index dfaf22a7e..cb66f086a 100644 --- a/sites/curriculum/allow_people_to_vote.step +++ b/sites/curriculum/allow_people_to_vote.step @@ -69,6 +69,6 @@ explanation { MARKDOWN } -consider_deploying +insert 'consider_deploying' next_step "redirect_to_the_topics_list_after_creating_a_new_topic" diff --git a/sites/curriculum/clean_up_links_on_the_topics_list.step b/sites/curriculum/clean_up_links_on_the_topics_list.step index 775f1eabc..3168b96e7 100644 --- a/sites/curriculum/clean_up_links_on_the_topics_list.step +++ b/sites/curriculum/clean_up_links_on_the_topics_list.step @@ -39,6 +39,6 @@ explanation { MARKDOWN } -consider_deploying +insert 'consider_deploying' next_step "credits_and_next_steps" diff --git a/sites/curriculum/consider_deploying.step b/sites/curriculum/consider_deploying.step new file mode 100644 index 000000000..79dcf7e68 --- /dev/null +++ b/sites/curriculum/consider_deploying.step @@ -0,0 +1,7 @@ +div :class => "deploying" do + h1 "Deploying" + blockquote do + message "Before the next step, you could try deploying your app to Heroku!" + link 'deploying_to_heroku' + end +end diff --git a/sites/curriculum/setting_the_default_page.step b/sites/curriculum/setting_the_default_page.step index 36201759d..f7f9f32a7 100644 --- a/sites/curriculum/setting_the_default_page.step +++ b/sites/curriculum/setting_the_default_page.step @@ -89,6 +89,6 @@ explanation { MARKDOWN } -consider_deploying +insert 'consider_deploying' next_step "voting_on_topics" diff --git a/sites/frontend/add_more_elements.step b/sites/frontend/add_more_elements.step index f26ad74fe..803bcdb16 100644 --- a/sites/frontend/add_more_elements.step +++ b/sites/frontend/add_more_elements.step @@ -62,6 +62,6 @@ what tags are available. Here are some good sites you can use for reference: MARKDOWN end -consider_deploying_to_github +insert 'consider_deploying_to_github' next_step 'make_columns' diff --git a/sites/frontend/consider_deploying_to_github.step b/sites/frontend/consider_deploying_to_github.step new file mode 100644 index 000000000..1403ca1b6 --- /dev/null +++ b/sites/frontend/consider_deploying_to_github.step @@ -0,0 +1,7 @@ +div :class => "deploying" do + h1 "Deploying" + blockquote do + message "Before the next step, you could try deploying your page to Github!" + link 'deploying_to_github_pages' + end +end diff --git a/sites/frontend/make_a_web_page.step b/sites/frontend/make_a_web_page.step index bf939b8b1..5fd8b0e09 100644 --- a/sites/frontend/make_a_web_page.step +++ b/sites/frontend/make_a_web_page.step @@ -92,6 +92,6 @@ change it in just one place, instead of having to update every page. HTML end -consider_deploying_to_github +insert 'consider_deploying_to_github' next_step "add_more_elements" diff --git a/sites/frontend/make_columns.step b/sites/frontend/make_columns.step index 555c929ed..07760bbb0 100644 --- a/sites/frontend/make_columns.step +++ b/sites/frontend/make_columns.step @@ -44,6 +44,6 @@ to get a sense of how limitless the possibilities are with CSS. MARKDOWN end -consider_deploying_to_github +insert 'consider_deploying_to_github' next_step "basic_javascript" From 7579155424382296ecfa3be9013b1ac383a0d83c Mon Sep 17 00:00:00 2001 From: Alex Chaffee Date: Sat, 14 Sep 2013 09:09:37 -0700 Subject: [PATCH 281/897] improve test checking syntax of all site pages --- spec/site_syntax_spec.rb | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/spec/site_syntax_spec.rb b/spec/site_syntax_spec.rb index 2db473ef5..dba563d0d 100644 --- a/spec/site_syntax_spec.rb +++ b/spec/site_syntax_spec.rb @@ -5,9 +5,7 @@ require "rack/test" -# todo: use a dummy set of sites instead of the real "installfest" and "curriculum" - -describe InstallFest do +describe "Syntax check all sites" do include Rack::Test::Methods def app @@ -19,8 +17,8 @@ def get! *args assert { last_response.status == 200 } end - describe "checking pages..." do - Site.all.each do |site| + Site.all.each do |site| + describe "checking #{site.name} pages..." do site.docs.each do |doc| it "renders #{doc.filename}" do get! "/#{site.name}/#{doc.name}" From 41adb8004012b64f85019e7bb77f70788dcff94a Mon Sep 17 00:00:00 2001 From: Lillie Chilen Date: Tue, 17 Sep 2013 19:16:49 -0700 Subject: [PATCH 282/897] Add FAQ and pull request request to docs index --- sites/docs/docs.step | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/sites/docs/docs.step b/sites/docs/docs.step index 81690545f..337f0ab0f 100644 --- a/sites/docs/docs.step +++ b/sites/docs/docs.step @@ -1,4 +1,6 @@ message < Date: Thu, 19 Sep 2013 09:25:51 -0700 Subject: [PATCH 283/897] Add creative commons license info --- sites/docs/docs.step | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sites/docs/docs.step b/sites/docs/docs.step index 337f0ab0f..dee8173ce 100644 --- a/sites/docs/docs.step +++ b/sites/docs/docs.step @@ -30,9 +30,9 @@ The Railsbridge junkyard! Slide decks for opening/closing presentations, teacher # RailsBridge curriculum-related FAQ ### Can I use the RailsBridge curricula at my event? -Anyone can use this site — it's very open source! +Anyone can use this site! It's under a Creative Commons license ([CC-BY, specifically](http://creativecommons.org/licenses/by/3.0/)), which means you're welcome to share, remix, or use our content commercially. We just ask for attribution. -If you're organizing an event and wonder if it could be considered a RailsBridge Workshop, we just have two requests: +Slightly different: if you're organizing an event and wonder if it could be considered a RailsBridge Workshop, we just have two requests: * The event should be free of charge. * The event should work toward making tech more welcoming! From 7584f7f29433d3728593007b2243ee039b21ae4f Mon Sep 17 00:00:00 2001 From: Lillie Chilen Date: Tue, 24 Sep 2013 09:07:07 -0700 Subject: [PATCH 284/897] Add generalized reveal.js presentation template - Improve presentation words - Add Code of Conduct and Anti-Harassment policy info to deck --- sites/workshop/workshop.md | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/sites/workshop/workshop.md b/sites/workshop/workshop.md index fed7c3120..b833c0a22 100644 --- a/sites/workshop/workshop.md +++ b/sites/workshop/workshop.md @@ -1,28 +1,39 @@ -# Materials for Workshop Days +# Materials for Teachers * [Foundational Skills](foundational_skills) * [Ruby for Beginners](ruby_for_beginners) * [Ruby for Programmers](ruby_for_programmers) * [Diagrams (Git, MVC, REST) ](diagrams) -# Materials for Workshop Preparation +### Teacher Training +* [Original Teacher Training](teacher_training) +* [Newer Teacher Training (1/16/13)](more_teacher_training) + +# Materials for Organizers + +### Workshop Intro & Closing Presentation Slide Decks + +If you can edit HTML, this is the presentation for you. It's the prettiest: + +* [Welcome and Closing Reveal.js deck (zip file)](http://cl.ly/0T341w3X130q) -### Workshop Intros/Outros -Either copy these Google Docs presentations +Download, then open up the index.html file in a text editor. Edit pages 0 +(dates, location, logo), 1 (sponsor logos), and 7 (after party location), and +you're good to go. (Run it locally for the presentation itself.) + +#### Or copy one of these other formats: + +Google Docs presentations * [Welcome (google doc)](https://docs.google.com/presentation/d/1VT8J6CTuN8ot_-0ZElLv49_-cxuNmXTp83DBonD1x5w/edit#slide=id.p) * [Closing (google doc)](https://docs.google.com/presentation/d/19ik5tm_enCNRIM4zaY9rIoeRhDoMMfFUDgNXnd2lW6A/edit#slide=id.p) -Or copy these deck.rb versions +deck.rb * [Welcome](welcome) * [Closing](closing) -Or make a presentation in the format of your choice. Powerpoint, Keynote, [reveal.js](http://lab.hakim.se/reveal-js/)-- follow your heart! - -### Teacher Training -* [Teacher Training](teacher_training) -* [Another take on Teacher Training (1/16/13)](more_teacher_training) +Or make a presentation in the format of your choice. Powerpoint, Keynote, your own [reveal.js](http://lab.hakim.se/reveal-js/)deck — follow your heart! # Other? See the Table of Contents for a full list of materials. From 6e24f0452727c9564dd1c48b6548c1d755410894 Mon Sep 17 00:00:00 2001 From: Joanne Date: Wed, 25 Sep 2013 15:24:21 -0600 Subject: [PATCH 285/897] Change `Topic.new(params[:topic])` to `Topic.new(topic_params)` because of strong parameters in Rails 4 --- .../redirect_to_the_topics_list_after_creating_a_new_topic.step | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sites/curriculum/redirect_to_the_topics_list_after_creating_a_new_topic.step b/sites/curriculum/redirect_to_the_topics_list_after_creating_a_new_topic.step index 67e611872..97ae08db2 100644 --- a/sites/curriculum/redirect_to_the_topics_list_after_creating_a_new_topic.step +++ b/sites/curriculum/redirect_to_the_topics_list_after_creating_a_new_topic.step @@ -27,7 +27,7 @@ steps { source_code :ruby, <<-RUBY def create - @topic = Topic.new(params[:topic]) + @topic = Topic.new(topic_params) respond_to do |format| if @topic.save From a172bbc1329d661ab4be51ecc58bde5843439f63 Mon Sep 17 00:00:00 2001 From: Travis Grathwell Date: Fri, 27 Sep 2013 23:21:06 -0700 Subject: [PATCH 286/897] Add Heroku root route instructions to create_and_deploy page --- .../create_and_deploy_a_rails_app.step | 18 ++++++++++++++++-- sites/installfest/get_a_sticker.step | 18 ++++++++---------- 2 files changed, 24 insertions(+), 12 deletions(-) diff --git a/sites/installfest/create_and_deploy_a_rails_app.step b/sites/installfest/create_and_deploy_a_rails_app.step index 95e1dce30..26275ce93 100644 --- a/sites/installfest/create_and_deploy_a_rails_app.step +++ b/sites/installfest/create_and_deploy_a_rails_app.step @@ -103,7 +103,7 @@ step "Use git" do git init BASH - result "Initialized empty Git repository in c:/Sites/test_app/.git/" + result "Initialized empty Git repository in c:/Sites/railsbridge/test_app/.git/" console "git add -A" tip "git add" do @@ -154,7 +154,7 @@ Git remote heroku added step "Prepare your rails app for deploying to Heroku" do message <<-MARKDOWN -Launch your text editor and open the "Gemfile" file located inside of your test_app folder. (On Windows, this should be in `C:\\Sites\\test_app` and on Linux/OS X, it should be under `~/test_app`.) +Launch your text editor and open the "Gemfile" file located inside of your test_app folder. (On Windows, this should be in `C:\\Sites\\railsbridge\\test_app` and on Linux/OS X, it should be under `~/railsbridge/test_app`.) Inside this file, change the line: MARKDOWN @@ -190,6 +190,20 @@ bundle install --without production message "Again, wait for the console prompt, and look for the 'Your bundle is complete!' message just above. If this fails, get a volunteer to help you edit `config/environments/production.rb` " end + step "Set the root route" do + message "Use your editor to open the file routes.rb (`C:\\sites\\railsbridge\\test_app\\config\\routes.rb` or `~/railsbridge/test_app/config/routes.rb`) and find the line containing:" + + source_code :ruby, <<-RUBY +# root 'welcome#index' + RUBY + + message "Remove this line and replace it with:" + + source_code :ruby, <<-RUBY +root 'users#index' + RUBY + end + step "Add the changes to git" do console <<-BASH diff --git a/sites/installfest/get_a_sticker.step b/sites/installfest/get_a_sticker.step index 1346947c1..a3e421c67 100644 --- a/sites/installfest/get_a_sticker.step +++ b/sites/installfest/get_a_sticker.step @@ -141,7 +141,7 @@ verify "git" do message "Make sure you're still in the sticker directory." console "git init" - result "Initialized empty Git repository in /home/steven/Code/ruby/sticker/.git/" + result "Initialized empty Git repository in /home/steven/railsbridge/sticker/.git/" console "git add ." console "git status" @@ -181,7 +181,7 @@ end verify "heroku deploy" do important "Each application has its own `Gemfile`. Be sure you're opening the one inside your sticker app's folder." - message "Use your editor to open the Gemfile (`C:\\sites\\sticker\\Gemfile` or `~/sticker/Gemfile`) and find the line containing:" + message "Use your editor to open the Gemfile (`C:\\sites\\railsbridge\\sticker\\Gemfile` or `~/railsbridge/sticker/Gemfile`) and find the line containing:" source_code :ruby, <<-RUBY gem 'sqlite3' @@ -213,27 +213,23 @@ GIT_COMMIT result "[master 4a275be] Add pg gem for Heroku. 2 files changed, 6 insertions(+)" - message "Use your editor to open the routes.rb (`C:\\sites\\sticker\\config\\routes.rb` or `~/sticker/config/routes.rb`) and find the line containing:" + message "Use your editor to open the file routes.rb (`C:\\sites\\railsbridge\\sticker\\config\\routes.rb` or `~/railsbridge/sticker/config/routes.rb`) and find the line containing:" source_code :ruby, <<-RUBY # root 'welcome#index' RUBY - message "Remove this line and replace it with" + message "Remove this line and replace it with:" - source_code :ruby, <<-RUBY + source_code :ruby, <<-RUBY root 'drinks#index' RUBY - message "Commit this change" - - console <<-GIT_COMMIT + console_with_message "Commit this change:", <<-GIT_COMMIT git add . git commit -m "Changed root route" GIT_COMMIT - message "The name of your heroku app will be different. That is fine." - console "heroku create" result <<-HEROKU_CREATE Creating evening-wind-5284... done, stack is cedar @@ -241,6 +237,8 @@ http://evening-wind-5284.heroku.com/ | git@heroku.com:evening-wind-5284.git Git remote heroku added HEROKU_CREATE + message "The name of your Heroku app will be different. That is fine." + console "git push heroku master" result <<-HEROKU_PUSH Counting objects: 7, done. From fe5eae65ca4f4015d06a08683b432b8307aeb036 Mon Sep 17 00:00:00 2001 From: Zuyu Zhang Date: Fri, 4 Oct 2013 21:46:07 -0500 Subject: [PATCH 287/897] Fix public key permission deny issue when ssh to Heroku --- sites/installfest/create_an_ssh_key.step | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/sites/installfest/create_an_ssh_key.step b/sites/installfest/create_an_ssh_key.step index e34325ea4..414ed97ca 100644 --- a/sites/installfest/create_an_ssh_key.step +++ b/sites/installfest/create_an_ssh_key.step @@ -49,6 +49,15 @@ verify do message "`id_rsa` is your **private key** and must be kept secret." message "If someone else gets your private key and your passphrase, then they can pretend to be you and log on to your Heroku or Github accounts and cause mischief!" end + + message "Add your generated public key to the authentication agent using the following command:" + + console "ssh-add ~/.ssh/id_rsa" + + result <<-OUTPUT + Enter passphrase for /Users/student/.ssh/id_rsa: + Identity added: /Users/student/.ssh/id_rsa (/Users/student/.ssh/id_rsa)" + OUTPUT end end From 948018920092931e0b83d3acb982b1fd48e48979 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steven!=20Ragnaro=CC=88k?= Date: Sat, 5 Oct 2013 10:25:34 -0700 Subject: [PATCH 288/897] Use docs as the default app. --- app.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app.rb b/app.rb index 58794ac5b..4d7e04ceb 100755 --- a/app.rb +++ b/app.rb @@ -23,7 +23,7 @@ class InstallFest < Sinatra::Application # should this be Sinatra::Base instead def initialize super @here = File.expand_path(File.dirname(__FILE__)) - @default_site = "installfest" + @default_site = "docs" set_downstream_app # todo: test end From 91a9e12e2e3b46da0c7119a1f9f156ee9d3d735a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steven!=20Ragnaro=CC=88k?= Date: Sat, 5 Oct 2013 12:14:00 -0700 Subject: [PATCH 289/897] Update spec to use docs as default site. --- spec/app_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/app_spec.rb b/spec/app_spec.rb index 5a9d8ebf6..d0bc8eab8 100755 --- a/spec/app_spec.rb +++ b/spec/app_spec.rb @@ -40,7 +40,7 @@ def get! *args get "/" assert { last_response.redirect? } follow_redirect! while last_response.redirect? - assert { last_request.path == "/installfest/" } + assert { last_request.path == "/docs/" } end it "redirects /site to /site/" do From 6128788acf93db4396aee96323027e2b8ba4a0d3 Mon Sep 17 00:00:00 2001 From: Travis Grathwell Date: Sun, 6 Oct 2013 18:32:46 -0700 Subject: [PATCH 290/897] Don't show 'partial' steppages in the table of contents 'Partials' (like consider_deploying) now have filenames prefixed with an underscore so they can be ignored by the TOC parser --- lib/contents.rb | 12 ++++++++++-- lib/step.rb | 2 +- ...sider_deploying.step => _consider_deploying.step} | 0 ...directory.step => _switch_to_home_directory.step} | 0 ...ithub.step => _consider_deploying_to_github.step} | 0 ...directory.step => _switch_to_home_directory.step} | 0 spec/sites/meals/_find_utensils.step | 1 + spec/sites/meals/omnivorous.step | 2 ++ spec/sites/meals/vegetarian.step | 2 ++ spec/step_spec.rb | 2 +- 10 files changed, 17 insertions(+), 4 deletions(-) rename sites/curriculum/{consider_deploying.step => _consider_deploying.step} (100%) rename sites/curriculum/{switch_to_home_directory.step => _switch_to_home_directory.step} (100%) rename sites/frontend/{consider_deploying_to_github.step => _consider_deploying_to_github.step} (100%) rename sites/installfest/{switch_to_home_directory.step => _switch_to_home_directory.step} (100%) create mode 100644 spec/sites/meals/_find_utensils.step diff --git a/lib/contents.rb b/lib/contents.rb index 2b9c27486..8660b7475 100755 --- a/lib/contents.rb +++ b/lib/contents.rb @@ -22,6 +22,14 @@ def site_files ext Dir.glob("#{site_dir}/*.{#{ext}}").sort end + def parseable_site_files + site_files("mw,md,step") + end + + def site_page_files + parseable_site_files.reject { |file| File.basename(file).start_with?('_') } + end + def subpages_for filename links = [] content = open("#{site_dir}/#{filename}").read() @@ -104,7 +112,7 @@ def hierarchy end def all_pages - site_files("mw,md,step").map { |file| File.basename(file).sub(/(\..*)$/, '') }.sort + site_page_files.map { |file| File.basename(file).sub(/(\..*)$/, '') }.sort end def orphans @@ -112,7 +120,7 @@ def orphans end def _page_links type="subpages" - site_files("mw,md,step").inject({}) do |result, filename| + site_page_files.inject({}) do |result, filename| page = File.basename(filename) page_no_ext = page.sub(/(\..*)$/, '') result[page_no_ext] = send("#{type}_for", page) diff --git a/lib/step.rb b/lib/step.rb index 728dc152c..3f5b8c3e5 100644 --- a/lib/step.rb +++ b/lib/step.rb @@ -43,7 +43,7 @@ def page_name def insert file # todo: unify into common 'find & process a document file' unit dir = File.dirname(@doc_path) - path = File.join(dir, "#{file}.step") # todo: other file types + path = File.join(dir, "_#{file}.step") # todo: other file types src = File.read(path) step = Step.new(src: src, doc_path: path) widget step diff --git a/sites/curriculum/consider_deploying.step b/sites/curriculum/_consider_deploying.step similarity index 100% rename from sites/curriculum/consider_deploying.step rename to sites/curriculum/_consider_deploying.step diff --git a/sites/curriculum/switch_to_home_directory.step b/sites/curriculum/_switch_to_home_directory.step similarity index 100% rename from sites/curriculum/switch_to_home_directory.step rename to sites/curriculum/_switch_to_home_directory.step diff --git a/sites/frontend/consider_deploying_to_github.step b/sites/frontend/_consider_deploying_to_github.step similarity index 100% rename from sites/frontend/consider_deploying_to_github.step rename to sites/frontend/_consider_deploying_to_github.step diff --git a/sites/installfest/switch_to_home_directory.step b/sites/installfest/_switch_to_home_directory.step similarity index 100% rename from sites/installfest/switch_to_home_directory.step rename to sites/installfest/_switch_to_home_directory.step diff --git a/spec/sites/meals/_find_utensils.step b/spec/sites/meals/_find_utensils.step new file mode 100644 index 000000000..fdaca4416 --- /dev/null +++ b/spec/sites/meals/_find_utensils.step @@ -0,0 +1 @@ +Maybe they are in the drawer? \ No newline at end of file diff --git a/spec/sites/meals/omnivorous.step b/spec/sites/meals/omnivorous.step index deee09443..5e44644ba 100644 --- a/spec/sites/meals/omnivorous.step +++ b/spec/sites/meals/omnivorous.step @@ -1,3 +1,5 @@ You could use meat if you wanted to. +insert 'find_utensils' + next_step "eat_a_meal" \ No newline at end of file diff --git a/spec/sites/meals/vegetarian.step b/spec/sites/meals/vegetarian.step index a1aa3bfc9..84cd8ac91 100644 --- a/spec/sites/meals/vegetarian.step +++ b/spec/sites/meals/vegetarian.step @@ -1,3 +1,5 @@ Make sure not to use any meat! +insert 'find_utensils' + link "find_some_vegetables" \ No newline at end of file diff --git a/spec/step_spec.rb b/spec/step_spec.rb index 0bf273b7b..54acda5c5 100644 --- a/spec/step_spec.rb +++ b/spec/step_spec.rb @@ -164,7 +164,7 @@ def html_doc(src = "step 'hello'; step 'goodbye'") insert 'inner' div 'goodbye' RUBY - file "inner.step", <<-RUBY + file "_inner.step", <<-RUBY div 'yum' RUBY end From 1499c00b0b3775d1e70d3da8806f906e256a4329 Mon Sep 17 00:00:00 2001 From: Travis Grathwell Date: Sun, 6 Oct 2013 18:39:45 -0700 Subject: [PATCH 291/897] Fix another test to deal with changed default site. --- spec/app_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/app_spec.rb b/spec/app_spec.rb index d0bc8eab8..702cb5cae 100755 --- a/spec/app_spec.rb +++ b/spec/app_spec.rb @@ -56,7 +56,7 @@ def get! *args end it "has a default site" do - assert { true_app.default_site == "installfest" } + assert { true_app.default_site == "docs" } end describe "settings" do From 7e8c6d9bcaed2c4c89dded2ab5133d26240b5b07 Mon Sep 17 00:00:00 2001 From: Travis Grathwell Date: Tue, 8 Oct 2013 18:21:30 -0700 Subject: [PATCH 292/897] Add instructions for windows users to install Rails 4 --- sites/installfest/windows.step | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/sites/installfest/windows.step b/sites/installfest/windows.step index 518e4bf79..d8ba9f861 100644 --- a/sites/installfest/windows.step +++ b/sites/installfest/windows.step @@ -52,6 +52,14 @@ step "Windows 8 Only — Install Node.js" do fuzzy_result "v0{FUZZY}.8.x{/FUZZY}" end +step "Update Rails" do + message "Currently, RailsInstaller installs Rails 3.2.x, but we want 4.x. Upgrading Rails is pretty easy:" + + console "gem install rails" + + message "...and you're done. New Rails! Woo." +end + step "Sanity Check" do console "ruby -v" From 10e3aef00b23c4a2e3db6b0811ec1f385d57bb3f Mon Sep 17 00:00:00 2001 From: Travis Grathwell Date: Wed, 9 Oct 2013 23:02:02 -0700 Subject: [PATCH 293/897] Upgrade jQuery to 1.10.2 because why not? --- lib/doc_page.rb | 2 +- public/jquery-1.7.2.min.js | 4 ---- public/jquery.min.js | 6 ++++++ 3 files changed, 7 insertions(+), 5 deletions(-) delete mode 100755 public/jquery-1.7.2.min.js create mode 100644 public/jquery.min.js diff --git a/lib/doc_page.rb b/lib/doc_page.rb index 406489db6..fc5dff353 100644 --- a/lib/doc_page.rb +++ b/lib/doc_page.rb @@ -42,7 +42,7 @@ def html_attributes def head_content title page_title - script :src => "/jquery-1.7.2.min.js" + script :src => "/jquery.min.js" script :src => "/js/doc_page.js" end diff --git a/public/jquery-1.7.2.min.js b/public/jquery-1.7.2.min.js deleted file mode 100755 index 93adea19f..000000000 --- a/public/jquery-1.7.2.min.js +++ /dev/null @@ -1,4 +0,0 @@ -/*! jQuery v1.7.2 jquery.com | jquery.org/license */ -(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cu(a){if(!cj[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){ck||(ck=c.createElement("iframe"),ck.frameBorder=ck.width=ck.height=0),b.appendChild(ck);if(!cl||!ck.createElement)cl=(ck.contentWindow||ck.contentDocument).document,cl.write((f.support.boxModel?"":"")+""),cl.close();d=cl.createElement(a),cl.body.appendChild(d),e=f.css(d,"display"),b.removeChild(ck)}cj[a]=e}return cj[a]}function ct(a,b){var c={};f.each(cp.concat.apply([],cp.slice(0,b)),function(){c[this]=a});return c}function cs(){cq=b}function cr(){setTimeout(cs,0);return cq=f.now()}function ci(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ch(){try{return new a.XMLHttpRequest}catch(b){}}function cb(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g0){if(c!=="border")for(;e=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?+d:j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.2",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a!=null&&a==a.window},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){if(typeof c!="string"||!c)return null;var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c
      a",d=p.getElementsByTagName("*"),e=p.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=p.getElementsByTagName("input")[0],b={leadingWhitespace:p.firstChild.nodeType===3,tbody:!p.getElementsByTagName("tbody").length,htmlSerialize:!!p.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:p.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,pixelMargin:!0},f.boxModel=b.boxModel=c.compatMode==="CSS1Compat",i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete p.test}catch(r){b.deleteExpando=!1}!p.addEventListener&&p.attachEvent&&p.fireEvent&&(p.attachEvent("onclick",function(){b.noCloneEvent=!1}),p.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),i.setAttribute("name","t"),p.appendChild(i),j=c.createDocumentFragment(),j.appendChild(p.lastChild),b.checkClone=j.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,j.removeChild(i),j.appendChild(p);if(p.attachEvent)for(n in{submit:1,change:1,focusin:1})m="on"+n,o=m in p,o||(p.setAttribute(m,"return;"),o=typeof p[m]=="function"),b[n+"Bubbles"]=o;j.removeChild(p),j=g=h=p=i=null,f(function(){var d,e,g,h,i,j,l,m,n,q,r,s,t,u=c.getElementsByTagName("body")[0];!u||(m=1,t="padding:0;margin:0;border:",r="position:absolute;top:0;left:0;width:1px;height:1px;",s=t+"0;visibility:hidden;",n="style='"+r+t+"5px solid #000;",q="

      "+""+"
      ",d=c.createElement("div"),d.style.cssText=s+"width:0;height:0;position:static;top:0;margin-top:"+m+"px",u.insertBefore(d,u.firstChild),p=c.createElement("div"),d.appendChild(p),p.innerHTML="
      t
      ",k=p.getElementsByTagName("td"),o=k[0].offsetHeight===0,k[0].style.display="",k[1].style.display="none",b.reliableHiddenOffsets=o&&k[0].offsetHeight===0,a.getComputedStyle&&(p.innerHTML="",l=c.createElement("div"),l.style.width="0",l.style.marginRight="0",p.style.width="2px",p.appendChild(l),b.reliableMarginRight=(parseInt((a.getComputedStyle(l,null)||{marginRight:0}).marginRight,10)||0)===0),typeof p.style.zoom!="undefined"&&(p.innerHTML="",p.style.width=p.style.padding="1px",p.style.border=0,p.style.overflow="hidden",p.style.display="inline",p.style.zoom=1,b.inlineBlockNeedsLayout=p.offsetWidth===3,p.style.display="block",p.style.overflow="visible",p.innerHTML="
      ",b.shrinkWrapBlocks=p.offsetWidth!==3),p.style.cssText=r+s,p.innerHTML=q,e=p.firstChild,g=e.firstChild,i=e.nextSibling.firstChild.firstChild,j={doesNotAddBorder:g.offsetTop!==5,doesAddBorderForTableAndCells:i.offsetTop===5},g.style.position="fixed",g.style.top="20px",j.fixedPosition=g.offsetTop===20||g.offsetTop===15,g.style.position=g.style.top="",e.style.overflow="hidden",e.style.position="relative",j.subtractsBorderForOverflowNotVisible=g.offsetTop===-5,j.doesNotIncludeMarginInBodyOffset=u.offsetTop!==m,a.getComputedStyle&&(p.style.marginTop="1%",b.pixelMargin=(a.getComputedStyle(p,null)||{marginTop:0}).marginTop!=="1%"),typeof d.style.zoom!="undefined"&&(d.style.zoom=1),u.removeChild(d),l=p=d=null,f.extend(b,j))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e1,null,!1)},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,b){a&&(b=(b||"fx")+"mark",f._data(a,b,(f._data(a,b)||0)+1))},_unmark:function(a,b,c){a!==!0&&(c=b,b=a,a=!1);if(b){c=c||"fx";var d=c+"mark",e=a?0:(f._data(b,d)||1)-1;e?f._data(b,d,e):(f.removeData(b,d,!0),n(b,c,"mark"))}},queue:function(a,b,c){var d;if(a){b=(b||"fx")+"queue",d=f._data(a,b),c&&(!d||f.isArray(c)?d=f._data(a,b,f.makeArray(c)):d.push(c));return d||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e={};d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),f._data(a,b+".run",e),d.call(a,function(){f.dequeue(a,b)},e)),c.length||(f.removeData(a,b+"queue "+b+".run",!0),n(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){var d=2;typeof a!="string"&&(c=a,a="fx",d--);if(arguments.length1)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,f.prop,a,b,arguments.length>1)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,g,h,i;if(f.isFunction(a))return this.each(function(b){f(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(p);for(c=0,d=this.length;c-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.type]||f.valHooks[this.nodeName.toLowerCase()];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.type]||f.valHooks[g.nodeName.toLowerCase()];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h,i=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;i=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/(?:^|\s)hover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function( -a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")};f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler,g=p.selector),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;le&&j.push({elem:this,matches:d.slice(e)});for(k=0;k0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));o.match.globalPOS=p;var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

      ";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
      ";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h0)for(h=g;h=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/]","i"),bd=/checked\s*(?:[^=]|=\s*.checked.)/i,be=/\/(java|ecma)script/i,bf=/^\s*",""],legend:[1,"
      ","
      "],thead:[1,"","
      "],tr:[2,"","
      "],td:[3,"","
      "],col:[2,"","
      "],area:[1,"",""],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div
      ","
      "]),f.fn.extend({text:function(a){return f.access(this,function(a){return a===b?f.text(this):this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a))},null,a,arguments.length)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f -.clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){return f.access(this,function(a){var c=this[0]||{},d=0,e=this.length;if(a===b)return c.nodeType===1?c.innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1>");try{for(;d1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||f.isXMLDoc(a)||!bc.test("<"+a.nodeName+">")?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,b,d,e){var g,h,i,j=[];b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);for(var k=0,l;(l=a[k])!=null;k++){typeof l=="number"&&(l+="");if(!l)continue;if(typeof l=="string")if(!_.test(l))l=b.createTextNode(l);else{l=l.replace(Y,"<$1>");var m=(Z.exec(l)||["",""])[1].toLowerCase(),n=bg[m]||bg._default,o=n[0],p=b.createElement("div"),q=bh.childNodes,r;b===c?bh.appendChild(p):U(b).appendChild(p),p.innerHTML=n[1]+l+n[2];while(o--)p=p.lastChild;if(!f.support.tbody){var s=$.test(l),t=m==="table"&&!s?p.firstChild&&p.firstChild.childNodes:n[1]===""&&!s?p.childNodes:[];for(i=t.length-1;i>=0;--i)f.nodeName(t[i],"tbody")&&!t[i].childNodes.length&&t[i].parentNode.removeChild(t[i])}!f.support.leadingWhitespace&&X.test(l)&&p.insertBefore(b.createTextNode(X.exec(l)[0]),p.firstChild),l=p.childNodes,p&&(p.parentNode.removeChild(p),q.length>0&&(r=q[q.length-1],r&&r.parentNode&&r.parentNode.removeChild(r)))}var u;if(!f.support.appendChecked)if(l[0]&&typeof (u=l.length)=="number")for(i=0;i1)},f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=by(a,"opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":f.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!!a&&a.nodeType!==3&&a.nodeType!==8&&!!a.style){var g,h,i=f.camelCase(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||i;if(d===b){if(k&&"get"in k&&(g=k.get(a,!1,e))!==b)return g;return j[c]}h=typeof d,h==="string"&&(g=bu.exec(d))&&(d=+(g[1]+1)*+g[2]+parseFloat(f.css(a,c)),h="number");if(d==null||h==="number"&&isNaN(d))return;h==="number"&&!f.cssNumber[i]&&(d+="px");if(!k||!("set"in k)||(d=k.set(a,d))!==b)try{j[c]=d}catch(l){}}},css:function(a,c,d){var e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||c,c==="cssFloat"&&(c="float");if(g&&"get"in g&&(e=g.get(a,!0,d))!==b)return e;if(by)return by(a,c)},swap:function(a,b,c){var d={},e,f;for(f in b)d[f]=a.style[f],a.style[f]=b[f];e=c.call(a);for(f in b)a.style[f]=d[f];return e}}),f.curCSS=f.css,c.defaultView&&c.defaultView.getComputedStyle&&(bz=function(a,b){var c,d,e,g,h=a.style;b=b.replace(br,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b))),!f.support.pixelMargin&&e&&bv.test(b)&&bt.test(c)&&(g=h.width,h.width=c,c=e.width,h.width=g);return c}),c.documentElement.currentStyle&&(bA=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f==null&&g&&(e=g[b])&&(f=e),bt.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),by=bz||bA,f.each(["height","width"],function(a,b){f.cssHooks[b]={get:function(a,c,d){if(c)return a.offsetWidth!==0?bB(a,b,d):f.swap(a,bw,function(){return bB(a,b,d)})},set:function(a,b){return bs.test(b)?b+"px":b}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bq.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bp,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bp.test(g)?g.replace(bp,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){return f.swap(a,{display:"inline-block"},function(){return b?by(a,"margin-right"):a.style.marginRight})}})}),f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)}),f.each({margin:"",padding:"",border:"Width"},function(a,b){f.cssHooks[a+b]={expand:function(c){var d,e=typeof c=="string"?c.split(" "):[c],f={};for(d=0;d<4;d++)f[a+bx[d]+b]=e[d]||e[d-2]||e[0];return f}}});var bC=/%20/g,bD=/\[\]$/,bE=/\r?\n/g,bF=/#.*$/,bG=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bH=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bI=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bJ=/^(?:GET|HEAD)$/,bK=/^\/\//,bL=/\?/,bM=/)<[^<]*)*<\/script>/gi,bN=/^(?:select|textarea)/i,bO=/\s+/,bP=/([?&])_=[^&]*/,bQ=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bR=f.fn.load,bS={},bT={},bU,bV,bW=["*/"]+["*"];try{bU=e.href}catch(bX){bU=c.createElement("a"),bU.href="",bU=bU.href}bV=bQ.exec(bU.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bR)return bR.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("
      ").append(c.replace(bM,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bN.test(this.nodeName)||bH.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bE,"\r\n")}}):{name:b.name,value:c.replace(bE,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.on(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?b$(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b$(a,b);return a},ajaxSettings:{url:bU,isLocal:bI.test(bV[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bW},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bY(bS),ajaxTransport:bY(bT),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?ca(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=cb(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.Callbacks("once memory"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bG.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bF,"").replace(bK,bV[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bO),d.crossDomain==null&&(r=bQ.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bV[1]&&r[2]==bV[2]&&(r[3]||(r[1]==="http:"?80:443))==(bV[3]||(bV[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),bZ(bS,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bJ.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bL.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bP,"$1_="+x);d.url=y+(y===d.url?(bL.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bW+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=bZ(bT,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){if(s<2)w(-1,z);else throw z}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)b_(g,a[g],c,e);return d.join("&").replace(bC,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cc=f.now(),cd=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cc++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=typeof b.data=="string"&&/^application\/x\-www\-form\-urlencoded/.test(b.contentType);if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(cd.test(b.url)||e&&cd.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(cd,l),b.url===j&&(e&&(k=k.replace(cd,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var ce=a.ActiveXObject?function(){for(var a in cg)cg[a](0,1)}:!1,cf=0,cg;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ch()||ci()}:ch,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,ce&&delete cg[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n);try{m.text=h.responseText}catch(a){}try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cf,ce&&(cg||(cg={},f(a).unload(ce)),cg[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var cj={},ck,cl,cm=/^(?:toggle|show|hide)$/,cn=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,co,cp=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cq;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(ct("show",3),a,b,c);for(var g=0,h=this.length;g=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){h.style["overflow"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0),f.removeData(h,"toggle"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,c){var d=/Y/.test(c);f.fn[a]=function(e){return f.access(this,function(a,e,g){var h=cy(a);if(g===b)return h?c in h?h[c]:f.support.boxModel&&h.document.documentElement[e]||h.document.body[e]:a[e];h?h.scrollTo(d?f(h).scrollLeft():g,d?g:f(h).scrollTop()):a[e]=g},a,e,arguments.length,null)}}),f.each({Height:"height",Width:"width"},function(a,c){var d="client"+a,e="scroll"+a,g="offset"+a;f.fn["inner"+a]=function(){var a=this[0];return a?a.style?parseFloat(f.css(a,c,"padding")):this[c]():null},f.fn["outer"+a]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,c,a?"margin":"border")):this[c]():null},f.fn[c]=function(a){return f.access(this,function(a,c,h){var i,j,k,l;if(f.isWindow(a)){i=a.document,j=i.documentElement[d];return f.support.boxModel&&j||i.body&&i.body[d]||j}if(a.nodeType===9){i=a.documentElement;if(i[d]>=i[e])return i[d];return Math.max(a.body[e],i[e],a.body[g],i[g])}if(h===b){k=f.css(a,c),l=parseFloat(k);return f.isNumeric(l)?l:k}f(a).css(c,h)},c,a,arguments.length,null)}}),a.jQuery=a.$=f,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return f})})(window); \ No newline at end of file diff --git a/public/jquery.min.js b/public/jquery.min.js new file mode 100644 index 000000000..da4170647 --- /dev/null +++ b/public/jquery.min.js @@ -0,0 +1,6 @@ +/*! jQuery v1.10.2 | (c) 2005, 2013 jQuery Foundation, Inc. | jquery.org/license +//@ sourceMappingURL=jquery-1.10.2.min.map +*/ +(function(e,t){var n,r,i=typeof t,o=e.location,a=e.document,s=a.documentElement,l=e.jQuery,u=e.$,c={},p=[],f="1.10.2",d=p.concat,h=p.push,g=p.slice,m=p.indexOf,y=c.toString,v=c.hasOwnProperty,b=f.trim,x=function(e,t){return new x.fn.init(e,t,r)},w=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,T=/\S+/g,C=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,N=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,k=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,E=/^[\],:{}\s]*$/,S=/(?:^|:|,)(?:\s*\[)+/g,A=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,j=/"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,D=/^-ms-/,L=/-([\da-z])/gi,H=function(e,t){return t.toUpperCase()},q=function(e){(a.addEventListener||"load"===e.type||"complete"===a.readyState)&&(_(),x.ready())},_=function(){a.addEventListener?(a.removeEventListener("DOMContentLoaded",q,!1),e.removeEventListener("load",q,!1)):(a.detachEvent("onreadystatechange",q),e.detachEvent("onload",q))};x.fn=x.prototype={jquery:f,constructor:x,init:function(e,n,r){var i,o;if(!e)return this;if("string"==typeof e){if(i="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:N.exec(e),!i||!i[1]&&n)return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e);if(i[1]){if(n=n instanceof x?n[0]:n,x.merge(this,x.parseHTML(i[1],n&&n.nodeType?n.ownerDocument||n:a,!0)),k.test(i[1])&&x.isPlainObject(n))for(i in n)x.isFunction(this[i])?this[i](n[i]):this.attr(i,n[i]);return this}if(o=a.getElementById(i[2]),o&&o.parentNode){if(o.id!==i[2])return r.find(e);this.length=1,this[0]=o}return this.context=a,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):x.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),x.makeArray(e,this))},selector:"",length:0,toArray:function(){return g.call(this)},get:function(e){return null==e?this.toArray():0>e?this[this.length+e]:this[e]},pushStack:function(e){var t=x.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return x.each(this,e,t)},ready:function(e){return x.ready.promise().done(e),this},slice:function(){return this.pushStack(g.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},map:function(e){return this.pushStack(x.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:h,sort:[].sort,splice:[].splice},x.fn.init.prototype=x.fn,x.extend=x.fn.extend=function(){var e,n,r,i,o,a,s=arguments[0]||{},l=1,u=arguments.length,c=!1;for("boolean"==typeof s&&(c=s,s=arguments[1]||{},l=2),"object"==typeof s||x.isFunction(s)||(s={}),u===l&&(s=this,--l);u>l;l++)if(null!=(o=arguments[l]))for(i in o)e=s[i],r=o[i],s!==r&&(c&&r&&(x.isPlainObject(r)||(n=x.isArray(r)))?(n?(n=!1,a=e&&x.isArray(e)?e:[]):a=e&&x.isPlainObject(e)?e:{},s[i]=x.extend(c,a,r)):r!==t&&(s[i]=r));return s},x.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),noConflict:function(t){return e.$===x&&(e.$=u),t&&e.jQuery===x&&(e.jQuery=l),x},isReady:!1,readyWait:1,holdReady:function(e){e?x.readyWait++:x.ready(!0)},ready:function(e){if(e===!0?!--x.readyWait:!x.isReady){if(!a.body)return setTimeout(x.ready);x.isReady=!0,e!==!0&&--x.readyWait>0||(n.resolveWith(a,[x]),x.fn.trigger&&x(a).trigger("ready").off("ready"))}},isFunction:function(e){return"function"===x.type(e)},isArray:Array.isArray||function(e){return"array"===x.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?c[y.call(e)]||"object":typeof e},isPlainObject:function(e){var n;if(!e||"object"!==x.type(e)||e.nodeType||x.isWindow(e))return!1;try{if(e.constructor&&!v.call(e,"constructor")&&!v.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(r){return!1}if(x.support.ownLast)for(n in e)return v.call(e,n);for(n in e);return n===t||v.call(e,n)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw Error(e)},parseHTML:function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||a;var r=k.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=x.buildFragment([e],t,i),i&&x(i).remove(),x.merge([],r.childNodes))},parseJSON:function(n){return e.JSON&&e.JSON.parse?e.JSON.parse(n):null===n?n:"string"==typeof n&&(n=x.trim(n),n&&E.test(n.replace(A,"@").replace(j,"]").replace(S,"")))?Function("return "+n)():(x.error("Invalid JSON: "+n),t)},parseXML:function(n){var r,i;if(!n||"string"!=typeof n)return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(o){r=t}return r&&r.documentElement&&!r.getElementsByTagName("parsererror").length||x.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&x.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(D,"ms-").replace(L,H)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r,i=0,o=e.length,a=M(e);if(n){if(a){for(;o>i;i++)if(r=t.apply(e[i],n),r===!1)break}else for(i in e)if(r=t.apply(e[i],n),r===!1)break}else if(a){for(;o>i;i++)if(r=t.call(e[i],i,e[i]),r===!1)break}else for(i in e)if(r=t.call(e[i],i,e[i]),r===!1)break;return e},trim:b&&!b.call("\ufeff\u00a0")?function(e){return null==e?"":b.call(e)}:function(e){return null==e?"":(e+"").replace(C,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(M(Object(e))?x.merge(n,"string"==typeof e?[e]:e):h.call(n,e)),n},inArray:function(e,t,n){var r;if(t){if(m)return m.call(t,e,n);for(r=t.length,n=n?0>n?Math.max(0,r+n):n:0;r>n;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,o=0;if("number"==typeof r)for(;r>o;o++)e[i++]=n[o];else while(n[o]!==t)e[i++]=n[o++];return e.length=i,e},grep:function(e,t,n){var r,i=[],o=0,a=e.length;for(n=!!n;a>o;o++)r=!!t(e[o],o),n!==r&&i.push(e[o]);return i},map:function(e,t,n){var r,i=0,o=e.length,a=M(e),s=[];if(a)for(;o>i;i++)r=t(e[i],i,n),null!=r&&(s[s.length]=r);else for(i in e)r=t(e[i],i,n),null!=r&&(s[s.length]=r);return d.apply([],s)},guid:1,proxy:function(e,n){var r,i,o;return"string"==typeof n&&(o=e[n],n=e,e=o),x.isFunction(e)?(r=g.call(arguments,2),i=function(){return e.apply(n||this,r.concat(g.call(arguments)))},i.guid=e.guid=e.guid||x.guid++,i):t},access:function(e,n,r,i,o,a,s){var l=0,u=e.length,c=null==r;if("object"===x.type(r)){o=!0;for(l in r)x.access(e,n,l,r[l],!0,a,s)}else if(i!==t&&(o=!0,x.isFunction(i)||(s=!0),c&&(s?(n.call(e,i),n=null):(c=n,n=function(e,t,n){return c.call(x(e),n)})),n))for(;u>l;l++)n(e[l],r,s?i:i.call(e[l],l,n(e[l],r)));return o?e:c?n.call(e):u?n(e[0],r):a},now:function(){return(new Date).getTime()},swap:function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i}}),x.ready.promise=function(t){if(!n)if(n=x.Deferred(),"complete"===a.readyState)setTimeout(x.ready);else if(a.addEventListener)a.addEventListener("DOMContentLoaded",q,!1),e.addEventListener("load",q,!1);else{a.attachEvent("onreadystatechange",q),e.attachEvent("onload",q);var r=!1;try{r=null==e.frameElement&&a.documentElement}catch(i){}r&&r.doScroll&&function o(){if(!x.isReady){try{r.doScroll("left")}catch(e){return setTimeout(o,50)}_(),x.ready()}}()}return n.promise(t)},x.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){c["[object "+t+"]"]=t.toLowerCase()});function M(e){var t=e.length,n=x.type(e);return x.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||"function"!==n&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}r=x(a),function(e,t){var n,r,i,o,a,s,l,u,c,p,f,d,h,g,m,y,v,b="sizzle"+-new Date,w=e.document,T=0,C=0,N=st(),k=st(),E=st(),S=!1,A=function(e,t){return e===t?(S=!0,0):0},j=typeof t,D=1<<31,L={}.hasOwnProperty,H=[],q=H.pop,_=H.push,M=H.push,O=H.slice,F=H.indexOf||function(e){var t=0,n=this.length;for(;n>t;t++)if(this[t]===e)return t;return-1},B="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",P="[\\x20\\t\\r\\n\\f]",R="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",W=R.replace("w","w#"),$="\\["+P+"*("+R+")"+P+"*(?:([*^$|!~]?=)"+P+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+W+")|)|)"+P+"*\\]",I=":("+R+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+$.replace(3,8)+")*)|.*)\\)|)",z=RegExp("^"+P+"+|((?:^|[^\\\\])(?:\\\\.)*)"+P+"+$","g"),X=RegExp("^"+P+"*,"+P+"*"),U=RegExp("^"+P+"*([>+~]|"+P+")"+P+"*"),V=RegExp(P+"*[+~]"),Y=RegExp("="+P+"*([^\\]'\"]*)"+P+"*\\]","g"),J=RegExp(I),G=RegExp("^"+W+"$"),Q={ID:RegExp("^#("+R+")"),CLASS:RegExp("^\\.("+R+")"),TAG:RegExp("^("+R.replace("w","w*")+")"),ATTR:RegExp("^"+$),PSEUDO:RegExp("^"+I),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+P+"*(even|odd|(([+-]|)(\\d*)n|)"+P+"*(?:([+-]|)"+P+"*(\\d+)|))"+P+"*\\)|)","i"),bool:RegExp("^(?:"+B+")$","i"),needsContext:RegExp("^"+P+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+P+"*((?:-\\d)?\\d*)"+P+"*\\)|)(?=[^-]|$)","i")},K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,et=/^(?:input|select|textarea|button)$/i,tt=/^h\d$/i,nt=/'|\\/g,rt=RegExp("\\\\([\\da-f]{1,6}"+P+"?|("+P+")|.)","ig"),it=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:0>r?String.fromCharCode(r+65536):String.fromCharCode(55296|r>>10,56320|1023&r)};try{M.apply(H=O.call(w.childNodes),w.childNodes),H[w.childNodes.length].nodeType}catch(ot){M={apply:H.length?function(e,t){_.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function at(e,t,n,i){var o,a,s,l,u,c,d,m,y,x;if((t?t.ownerDocument||t:w)!==f&&p(t),t=t||f,n=n||[],!e||"string"!=typeof e)return n;if(1!==(l=t.nodeType)&&9!==l)return[];if(h&&!i){if(o=Z.exec(e))if(s=o[1]){if(9===l){if(a=t.getElementById(s),!a||!a.parentNode)return n;if(a.id===s)return n.push(a),n}else if(t.ownerDocument&&(a=t.ownerDocument.getElementById(s))&&v(t,a)&&a.id===s)return n.push(a),n}else{if(o[2])return M.apply(n,t.getElementsByTagName(e)),n;if((s=o[3])&&r.getElementsByClassName&&t.getElementsByClassName)return M.apply(n,t.getElementsByClassName(s)),n}if(r.qsa&&(!g||!g.test(e))){if(m=d=b,y=t,x=9===l&&e,1===l&&"object"!==t.nodeName.toLowerCase()){c=mt(e),(d=t.getAttribute("id"))?m=d.replace(nt,"\\$&"):t.setAttribute("id",m),m="[id='"+m+"'] ",u=c.length;while(u--)c[u]=m+yt(c[u]);y=V.test(e)&&t.parentNode||t,x=c.join(",")}if(x)try{return M.apply(n,y.querySelectorAll(x)),n}catch(T){}finally{d||t.removeAttribute("id")}}}return kt(e.replace(z,"$1"),t,n,i)}function st(){var e=[];function t(n,r){return e.push(n+=" ")>o.cacheLength&&delete t[e.shift()],t[n]=r}return t}function lt(e){return e[b]=!0,e}function ut(e){var t=f.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function ct(e,t){var n=e.split("|"),r=e.length;while(r--)o.attrHandle[n[r]]=t}function pt(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||D)-(~e.sourceIndex||D);if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function ft(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function dt(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function ht(e){return lt(function(t){return t=+t,lt(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}s=at.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},r=at.support={},p=at.setDocument=function(e){var n=e?e.ownerDocument||e:w,i=n.defaultView;return n!==f&&9===n.nodeType&&n.documentElement?(f=n,d=n.documentElement,h=!s(n),i&&i.attachEvent&&i!==i.top&&i.attachEvent("onbeforeunload",function(){p()}),r.attributes=ut(function(e){return e.className="i",!e.getAttribute("className")}),r.getElementsByTagName=ut(function(e){return e.appendChild(n.createComment("")),!e.getElementsByTagName("*").length}),r.getElementsByClassName=ut(function(e){return e.innerHTML="
      ",e.firstChild.className="i",2===e.getElementsByClassName("i").length}),r.getById=ut(function(e){return d.appendChild(e).id=b,!n.getElementsByName||!n.getElementsByName(b).length}),r.getById?(o.find.ID=function(e,t){if(typeof t.getElementById!==j&&h){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},o.filter.ID=function(e){var t=e.replace(rt,it);return function(e){return e.getAttribute("id")===t}}):(delete o.find.ID,o.filter.ID=function(e){var t=e.replace(rt,it);return function(e){var n=typeof e.getAttributeNode!==j&&e.getAttributeNode("id");return n&&n.value===t}}),o.find.TAG=r.getElementsByTagName?function(e,n){return typeof n.getElementsByTagName!==j?n.getElementsByTagName(e):t}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},o.find.CLASS=r.getElementsByClassName&&function(e,n){return typeof n.getElementsByClassName!==j&&h?n.getElementsByClassName(e):t},m=[],g=[],(r.qsa=K.test(n.querySelectorAll))&&(ut(function(e){e.innerHTML="",e.querySelectorAll("[selected]").length||g.push("\\["+P+"*(?:value|"+B+")"),e.querySelectorAll(":checked").length||g.push(":checked")}),ut(function(e){var t=n.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("t",""),e.querySelectorAll("[t^='']").length&&g.push("[*^$]="+P+"*(?:''|\"\")"),e.querySelectorAll(":enabled").length||g.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),g.push(",.*:")})),(r.matchesSelector=K.test(y=d.webkitMatchesSelector||d.mozMatchesSelector||d.oMatchesSelector||d.msMatchesSelector))&&ut(function(e){r.disconnectedMatch=y.call(e,"div"),y.call(e,"[s!='']:x"),m.push("!=",I)}),g=g.length&&RegExp(g.join("|")),m=m.length&&RegExp(m.join("|")),v=K.test(d.contains)||d.compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},A=d.compareDocumentPosition?function(e,t){if(e===t)return S=!0,0;var i=t.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(t);return i?1&i||!r.sortDetached&&t.compareDocumentPosition(e)===i?e===n||v(w,e)?-1:t===n||v(w,t)?1:c?F.call(c,e)-F.call(c,t):0:4&i?-1:1:e.compareDocumentPosition?-1:1}:function(e,t){var r,i=0,o=e.parentNode,a=t.parentNode,s=[e],l=[t];if(e===t)return S=!0,0;if(!o||!a)return e===n?-1:t===n?1:o?-1:a?1:c?F.call(c,e)-F.call(c,t):0;if(o===a)return pt(e,t);r=e;while(r=r.parentNode)s.unshift(r);r=t;while(r=r.parentNode)l.unshift(r);while(s[i]===l[i])i++;return i?pt(s[i],l[i]):s[i]===w?-1:l[i]===w?1:0},n):f},at.matches=function(e,t){return at(e,null,null,t)},at.matchesSelector=function(e,t){if((e.ownerDocument||e)!==f&&p(e),t=t.replace(Y,"='$1']"),!(!r.matchesSelector||!h||m&&m.test(t)||g&&g.test(t)))try{var n=y.call(e,t);if(n||r.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(i){}return at(t,f,null,[e]).length>0},at.contains=function(e,t){return(e.ownerDocument||e)!==f&&p(e),v(e,t)},at.attr=function(e,n){(e.ownerDocument||e)!==f&&p(e);var i=o.attrHandle[n.toLowerCase()],a=i&&L.call(o.attrHandle,n.toLowerCase())?i(e,n,!h):t;return a===t?r.attributes||!h?e.getAttribute(n):(a=e.getAttributeNode(n))&&a.specified?a.value:null:a},at.error=function(e){throw Error("Syntax error, unrecognized expression: "+e)},at.uniqueSort=function(e){var t,n=[],i=0,o=0;if(S=!r.detectDuplicates,c=!r.sortStable&&e.slice(0),e.sort(A),S){while(t=e[o++])t===e[o]&&(i=n.push(o));while(i--)e.splice(n[i],1)}return e},a=at.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=a(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=a(t);return n},o=at.selectors={cacheLength:50,createPseudo:lt,match:Q,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(rt,it),e[3]=(e[4]||e[5]||"").replace(rt,it),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||at.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&at.error(e[0]),e},PSEUDO:function(e){var n,r=!e[5]&&e[2];return Q.CHILD.test(e[0])?null:(e[3]&&e[4]!==t?e[2]=e[4]:r&&J.test(r)&&(n=mt(r,!0))&&(n=r.indexOf(")",r.length-n)-r.length)&&(e[0]=e[0].slice(0,n),e[2]=r.slice(0,n)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(rt,it).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=N[e+" "];return t||(t=RegExp("(^|"+P+")"+e+"("+P+"|$)"))&&N(e,function(e){return t.test("string"==typeof e.className&&e.className||typeof e.getAttribute!==j&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=at.attr(r,e);return null==i?"!="===t:t?(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i+" ").indexOf(n)>-1:"|="===t?i===n||i.slice(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,l){var u,c,p,f,d,h,g=o!==a?"nextSibling":"previousSibling",m=t.parentNode,y=s&&t.nodeName.toLowerCase(),v=!l&&!s;if(m){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===y:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&v){c=m[b]||(m[b]={}),u=c[e]||[],d=u[0]===T&&u[1],f=u[0]===T&&u[2],p=d&&m.childNodes[d];while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if(1===p.nodeType&&++f&&p===t){c[e]=[T,d,f];break}}else if(v&&(u=(t[b]||(t[b]={}))[e])&&u[0]===T)f=u[1];else while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===y:1===p.nodeType)&&++f&&(v&&((p[b]||(p[b]={}))[e]=[T,f]),p===t))break;return f-=i,f===r||0===f%r&&f/r>=0}}},PSEUDO:function(e,t){var n,r=o.pseudos[e]||o.setFilters[e.toLowerCase()]||at.error("unsupported pseudo: "+e);return r[b]?r(t):r.length>1?(n=[e,e,"",t],o.setFilters.hasOwnProperty(e.toLowerCase())?lt(function(e,n){var i,o=r(e,t),a=o.length;while(a--)i=F.call(e,o[a]),e[i]=!(n[i]=o[a])}):function(e){return r(e,0,n)}):r}},pseudos:{not:lt(function(e){var t=[],n=[],r=l(e.replace(z,"$1"));return r[b]?lt(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:lt(function(e){return function(t){return at(e,t).length>0}}),contains:lt(function(e){return function(t){return(t.textContent||t.innerText||a(t)).indexOf(e)>-1}}),lang:lt(function(e){return G.test(e||"")||at.error("unsupported lang: "+e),e=e.replace(rt,it).toLowerCase(),function(t){var n;do if(n=h?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===d},focus:function(e){return e===f.activeElement&&(!f.hasFocus||f.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName>"@"||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!o.pseudos.empty(e)},header:function(e){return tt.test(e.nodeName)},input:function(e){return et.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||t.toLowerCase()===e.type)},first:ht(function(){return[0]}),last:ht(function(e,t){return[t-1]}),eq:ht(function(e,t,n){return[0>n?n+t:n]}),even:ht(function(e,t){var n=0;for(;t>n;n+=2)e.push(n);return e}),odd:ht(function(e,t){var n=1;for(;t>n;n+=2)e.push(n);return e}),lt:ht(function(e,t,n){var r=0>n?n+t:n;for(;--r>=0;)e.push(r);return e}),gt:ht(function(e,t,n){var r=0>n?n+t:n;for(;t>++r;)e.push(r);return e})}},o.pseudos.nth=o.pseudos.eq;for(n in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})o.pseudos[n]=ft(n);for(n in{submit:!0,reset:!0})o.pseudos[n]=dt(n);function gt(){}gt.prototype=o.filters=o.pseudos,o.setFilters=new gt;function mt(e,t){var n,r,i,a,s,l,u,c=k[e+" "];if(c)return t?0:c.slice(0);s=e,l=[],u=o.preFilter;while(s){(!n||(r=X.exec(s)))&&(r&&(s=s.slice(r[0].length)||s),l.push(i=[])),n=!1,(r=U.exec(s))&&(n=r.shift(),i.push({value:n,type:r[0].replace(z," ")}),s=s.slice(n.length));for(a in o.filter)!(r=Q[a].exec(s))||u[a]&&!(r=u[a](r))||(n=r.shift(),i.push({value:n,type:a,matches:r}),s=s.slice(n.length));if(!n)break}return t?s.length:s?at.error(e):k(e,l).slice(0)}function yt(e){var t=0,n=e.length,r="";for(;n>t;t++)r+=e[t].value;return r}function vt(e,t,n){var r=t.dir,o=n&&"parentNode"===r,a=C++;return t.first?function(t,n,i){while(t=t[r])if(1===t.nodeType||o)return e(t,n,i)}:function(t,n,s){var l,u,c,p=T+" "+a;if(s){while(t=t[r])if((1===t.nodeType||o)&&e(t,n,s))return!0}else while(t=t[r])if(1===t.nodeType||o)if(c=t[b]||(t[b]={}),(u=c[r])&&u[0]===p){if((l=u[1])===!0||l===i)return l===!0}else if(u=c[r]=[p],u[1]=e(t,n,s)||i,u[1]===!0)return!0}}function bt(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function xt(e,t,n,r,i){var o,a=[],s=0,l=e.length,u=null!=t;for(;l>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),u&&t.push(s));return a}function wt(e,t,n,r,i,o){return r&&!r[b]&&(r=wt(r)),i&&!i[b]&&(i=wt(i,o)),lt(function(o,a,s,l){var u,c,p,f=[],d=[],h=a.length,g=o||Nt(t||"*",s.nodeType?[s]:s,[]),m=!e||!o&&t?g:xt(g,f,e,s,l),y=n?i||(o?e:h||r)?[]:a:m;if(n&&n(m,y,s,l),r){u=xt(y,d),r(u,[],s,l),c=u.length;while(c--)(p=u[c])&&(y[d[c]]=!(m[d[c]]=p))}if(o){if(i||e){if(i){u=[],c=y.length;while(c--)(p=y[c])&&u.push(m[c]=p);i(null,y=[],u,l)}c=y.length;while(c--)(p=y[c])&&(u=i?F.call(o,p):f[c])>-1&&(o[u]=!(a[u]=p))}}else y=xt(y===a?y.splice(h,y.length):y),i?i(null,a,y,l):M.apply(a,y)})}function Tt(e){var t,n,r,i=e.length,a=o.relative[e[0].type],s=a||o.relative[" "],l=a?1:0,c=vt(function(e){return e===t},s,!0),p=vt(function(e){return F.call(t,e)>-1},s,!0),f=[function(e,n,r){return!a&&(r||n!==u)||((t=n).nodeType?c(e,n,r):p(e,n,r))}];for(;i>l;l++)if(n=o.relative[e[l].type])f=[vt(bt(f),n)];else{if(n=o.filter[e[l].type].apply(null,e[l].matches),n[b]){for(r=++l;i>r;r++)if(o.relative[e[r].type])break;return wt(l>1&&bt(f),l>1&&yt(e.slice(0,l-1).concat({value:" "===e[l-2].type?"*":""})).replace(z,"$1"),n,r>l&&Tt(e.slice(l,r)),i>r&&Tt(e=e.slice(r)),i>r&&yt(e))}f.push(n)}return bt(f)}function Ct(e,t){var n=0,r=t.length>0,a=e.length>0,s=function(s,l,c,p,d){var h,g,m,y=[],v=0,b="0",x=s&&[],w=null!=d,C=u,N=s||a&&o.find.TAG("*",d&&l.parentNode||l),k=T+=null==C?1:Math.random()||.1;for(w&&(u=l!==f&&l,i=n);null!=(h=N[b]);b++){if(a&&h){g=0;while(m=e[g++])if(m(h,l,c)){p.push(h);break}w&&(T=k,i=++n)}r&&((h=!m&&h)&&v--,s&&x.push(h))}if(v+=b,r&&b!==v){g=0;while(m=t[g++])m(x,y,l,c);if(s){if(v>0)while(b--)x[b]||y[b]||(y[b]=q.call(p));y=xt(y)}M.apply(p,y),w&&!s&&y.length>0&&v+t.length>1&&at.uniqueSort(p)}return w&&(T=k,u=C),x};return r?lt(s):s}l=at.compile=function(e,t){var n,r=[],i=[],o=E[e+" "];if(!o){t||(t=mt(e)),n=t.length;while(n--)o=Tt(t[n]),o[b]?r.push(o):i.push(o);o=E(e,Ct(i,r))}return o};function Nt(e,t,n){var r=0,i=t.length;for(;i>r;r++)at(e,t[r],n);return n}function kt(e,t,n,i){var a,s,u,c,p,f=mt(e);if(!i&&1===f.length){if(s=f[0]=f[0].slice(0),s.length>2&&"ID"===(u=s[0]).type&&r.getById&&9===t.nodeType&&h&&o.relative[s[1].type]){if(t=(o.find.ID(u.matches[0].replace(rt,it),t)||[])[0],!t)return n;e=e.slice(s.shift().value.length)}a=Q.needsContext.test(e)?0:s.length;while(a--){if(u=s[a],o.relative[c=u.type])break;if((p=o.find[c])&&(i=p(u.matches[0].replace(rt,it),V.test(s[0].type)&&t.parentNode||t))){if(s.splice(a,1),e=i.length&&yt(s),!e)return M.apply(n,i),n;break}}}return l(e,f)(i,t,!h,n,V.test(e)),n}r.sortStable=b.split("").sort(A).join("")===b,r.detectDuplicates=S,p(),r.sortDetached=ut(function(e){return 1&e.compareDocumentPosition(f.createElement("div"))}),ut(function(e){return e.innerHTML="","#"===e.firstChild.getAttribute("href")})||ct("type|href|height|width",function(e,n,r){return r?t:e.getAttribute(n,"type"===n.toLowerCase()?1:2)}),r.attributes&&ut(function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||ct("value",function(e,n,r){return r||"input"!==e.nodeName.toLowerCase()?t:e.defaultValue}),ut(function(e){return null==e.getAttribute("disabled")})||ct(B,function(e,n,r){var i;return r?t:(i=e.getAttributeNode(n))&&i.specified?i.value:e[n]===!0?n.toLowerCase():null}),x.find=at,x.expr=at.selectors,x.expr[":"]=x.expr.pseudos,x.unique=at.uniqueSort,x.text=at.getText,x.isXMLDoc=at.isXML,x.contains=at.contains}(e);var O={};function F(e){var t=O[e]={};return x.each(e.match(T)||[],function(e,n){t[n]=!0}),t}x.Callbacks=function(e){e="string"==typeof e?O[e]||F(e):x.extend({},e);var n,r,i,o,a,s,l=[],u=!e.once&&[],c=function(t){for(r=e.memory&&t,i=!0,a=s||0,s=0,o=l.length,n=!0;l&&o>a;a++)if(l[a].apply(t[0],t[1])===!1&&e.stopOnFalse){r=!1;break}n=!1,l&&(u?u.length&&c(u.shift()):r?l=[]:p.disable())},p={add:function(){if(l){var t=l.length;(function i(t){x.each(t,function(t,n){var r=x.type(n);"function"===r?e.unique&&p.has(n)||l.push(n):n&&n.length&&"string"!==r&&i(n)})})(arguments),n?o=l.length:r&&(s=t,c(r))}return this},remove:function(){return l&&x.each(arguments,function(e,t){var r;while((r=x.inArray(t,l,r))>-1)l.splice(r,1),n&&(o>=r&&o--,a>=r&&a--)}),this},has:function(e){return e?x.inArray(e,l)>-1:!(!l||!l.length)},empty:function(){return l=[],o=0,this},disable:function(){return l=u=r=t,this},disabled:function(){return!l},lock:function(){return u=t,r||p.disable(),this},locked:function(){return!u},fireWith:function(e,t){return!l||i&&!u||(t=t||[],t=[e,t.slice?t.slice():t],n?u.push(t):c(t)),this},fire:function(){return p.fireWith(this,arguments),this},fired:function(){return!!i}};return p},x.extend({Deferred:function(e){var t=[["resolve","done",x.Callbacks("once memory"),"resolved"],["reject","fail",x.Callbacks("once memory"),"rejected"],["notify","progress",x.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return x.Deferred(function(n){x.each(t,function(t,o){var a=o[0],s=x.isFunction(e[t])&&e[t];i[o[1]](function(){var e=s&&s.apply(this,arguments);e&&x.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[a+"With"](this===r?n.promise():this,s?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?x.extend(e,r):r}},i={};return r.pipe=r.then,x.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=g.call(arguments),r=n.length,i=1!==r||e&&x.isFunction(e.promise)?r:0,o=1===i?e:x.Deferred(),a=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?g.call(arguments):r,n===s?o.notifyWith(t,n):--i||o.resolveWith(t,n)}},s,l,u;if(r>1)for(s=Array(r),l=Array(r),u=Array(r);r>t;t++)n[t]&&x.isFunction(n[t].promise)?n[t].promise().done(a(t,u,n)).fail(o.reject).progress(a(t,l,s)):--i;return i||o.resolveWith(u,n),o.promise()}}),x.support=function(t){var n,r,o,s,l,u,c,p,f,d=a.createElement("div");if(d.setAttribute("className","t"),d.innerHTML="
      a",n=d.getElementsByTagName("*")||[],r=d.getElementsByTagName("a")[0],!r||!r.style||!n.length)return t;s=a.createElement("select"),u=s.appendChild(a.createElement("option")),o=d.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t.getSetAttribute="t"!==d.className,t.leadingWhitespace=3===d.firstChild.nodeType,t.tbody=!d.getElementsByTagName("tbody").length,t.htmlSerialize=!!d.getElementsByTagName("link").length,t.style=/top/.test(r.getAttribute("style")),t.hrefNormalized="/a"===r.getAttribute("href"),t.opacity=/^0.5/.test(r.style.opacity),t.cssFloat=!!r.style.cssFloat,t.checkOn=!!o.value,t.optSelected=u.selected,t.enctype=!!a.createElement("form").enctype,t.html5Clone="<:nav>"!==a.createElement("nav").cloneNode(!0).outerHTML,t.inlineBlockNeedsLayout=!1,t.shrinkWrapBlocks=!1,t.pixelPosition=!1,t.deleteExpando=!0,t.noCloneEvent=!0,t.reliableMarginRight=!0,t.boxSizingReliable=!0,o.checked=!0,t.noCloneChecked=o.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!u.disabled;try{delete d.test}catch(h){t.deleteExpando=!1}o=a.createElement("input"),o.setAttribute("value",""),t.input=""===o.getAttribute("value"),o.value="t",o.setAttribute("type","radio"),t.radioValue="t"===o.value,o.setAttribute("checked","t"),o.setAttribute("name","t"),l=a.createDocumentFragment(),l.appendChild(o),t.appendChecked=o.checked,t.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,d.attachEvent&&(d.attachEvent("onclick",function(){t.noCloneEvent=!1}),d.cloneNode(!0).click());for(f in{submit:!0,change:!0,focusin:!0})d.setAttribute(c="on"+f,"t"),t[f+"Bubbles"]=c in e||d.attributes[c].expando===!1;d.style.backgroundClip="content-box",d.cloneNode(!0).style.backgroundClip="",t.clearCloneStyle="content-box"===d.style.backgroundClip;for(f in x(t))break;return t.ownLast="0"!==f,x(function(){var n,r,o,s="padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",l=a.getElementsByTagName("body")[0];l&&(n=a.createElement("div"),n.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",l.appendChild(n).appendChild(d),d.innerHTML="
      t
      ",o=d.getElementsByTagName("td"),o[0].style.cssText="padding:0;margin:0;border:0;display:none",p=0===o[0].offsetHeight,o[0].style.display="",o[1].style.display="none",t.reliableHiddenOffsets=p&&0===o[0].offsetHeight,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",x.swap(l,null!=l.style.zoom?{zoom:1}:{},function(){t.boxSizing=4===d.offsetWidth}),e.getComputedStyle&&(t.pixelPosition="1%"!==(e.getComputedStyle(d,null)||{}).top,t.boxSizingReliable="4px"===(e.getComputedStyle(d,null)||{width:"4px"}).width,r=d.appendChild(a.createElement("div")),r.style.cssText=d.style.cssText=s,r.style.marginRight=r.style.width="0",d.style.width="1px",t.reliableMarginRight=!parseFloat((e.getComputedStyle(r,null)||{}).marginRight)),typeof d.style.zoom!==i&&(d.innerHTML="",d.style.cssText=s+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=3===d.offsetWidth,d.style.display="block",d.innerHTML="
      ",d.firstChild.style.width="5px",t.shrinkWrapBlocks=3!==d.offsetWidth,t.inlineBlockNeedsLayout&&(l.style.zoom=1)),l.removeChild(n),n=d=o=r=null)}),n=s=l=u=r=o=null,t +}({});var B=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,P=/([A-Z])/g;function R(e,n,r,i){if(x.acceptData(e)){var o,a,s=x.expando,l=e.nodeType,u=l?x.cache:e,c=l?e[s]:e[s]&&s;if(c&&u[c]&&(i||u[c].data)||r!==t||"string"!=typeof n)return c||(c=l?e[s]=p.pop()||x.guid++:s),u[c]||(u[c]=l?{}:{toJSON:x.noop}),("object"==typeof n||"function"==typeof n)&&(i?u[c]=x.extend(u[c],n):u[c].data=x.extend(u[c].data,n)),a=u[c],i||(a.data||(a.data={}),a=a.data),r!==t&&(a[x.camelCase(n)]=r),"string"==typeof n?(o=a[n],null==o&&(o=a[x.camelCase(n)])):o=a,o}}function W(e,t,n){if(x.acceptData(e)){var r,i,o=e.nodeType,a=o?x.cache:e,s=o?e[x.expando]:x.expando;if(a[s]){if(t&&(r=n?a[s]:a[s].data)){x.isArray(t)?t=t.concat(x.map(t,x.camelCase)):t in r?t=[t]:(t=x.camelCase(t),t=t in r?[t]:t.split(" ")),i=t.length;while(i--)delete r[t[i]];if(n?!I(r):!x.isEmptyObject(r))return}(n||(delete a[s].data,I(a[s])))&&(o?x.cleanData([e],!0):x.support.deleteExpando||a!=a.window?delete a[s]:a[s]=null)}}}x.extend({cache:{},noData:{applet:!0,embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(e){return e=e.nodeType?x.cache[e[x.expando]]:e[x.expando],!!e&&!I(e)},data:function(e,t,n){return R(e,t,n)},removeData:function(e,t){return W(e,t)},_data:function(e,t,n){return R(e,t,n,!0)},_removeData:function(e,t){return W(e,t,!0)},acceptData:function(e){if(e.nodeType&&1!==e.nodeType&&9!==e.nodeType)return!1;var t=e.nodeName&&x.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),x.fn.extend({data:function(e,n){var r,i,o=null,a=0,s=this[0];if(e===t){if(this.length&&(o=x.data(s),1===s.nodeType&&!x._data(s,"parsedAttrs"))){for(r=s.attributes;r.length>a;a++)i=r[a].name,0===i.indexOf("data-")&&(i=x.camelCase(i.slice(5)),$(s,i,o[i]));x._data(s,"parsedAttrs",!0)}return o}return"object"==typeof e?this.each(function(){x.data(this,e)}):arguments.length>1?this.each(function(){x.data(this,e,n)}):s?$(s,e,x.data(s,e)):null},removeData:function(e){return this.each(function(){x.removeData(this,e)})}});function $(e,n,r){if(r===t&&1===e.nodeType){var i="data-"+n.replace(P,"-$1").toLowerCase();if(r=e.getAttribute(i),"string"==typeof r){try{r="true"===r?!0:"false"===r?!1:"null"===r?null:+r+""===r?+r:B.test(r)?x.parseJSON(r):r}catch(o){}x.data(e,n,r)}else r=t}return r}function I(e){var t;for(t in e)if(("data"!==t||!x.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}x.extend({queue:function(e,n,r){var i;return e?(n=(n||"fx")+"queue",i=x._data(e,n),r&&(!i||x.isArray(r)?i=x._data(e,n,x.makeArray(r)):i.push(r)),i||[]):t},dequeue:function(e,t){t=t||"fx";var n=x.queue(e,t),r=n.length,i=n.shift(),o=x._queueHooks(e,t),a=function(){x.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return x._data(e,n)||x._data(e,n,{empty:x.Callbacks("once memory").add(function(){x._removeData(e,t+"queue"),x._removeData(e,n)})})}}),x.fn.extend({queue:function(e,n){var r=2;return"string"!=typeof e&&(n=e,e="fx",r--),r>arguments.length?x.queue(this[0],e):n===t?this:this.each(function(){var t=x.queue(this,e,n);x._queueHooks(this,e),"fx"===e&&"inprogress"!==t[0]&&x.dequeue(this,e)})},dequeue:function(e){return this.each(function(){x.dequeue(this,e)})},delay:function(e,t){return e=x.fx?x.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){var r,i=1,o=x.Deferred(),a=this,s=this.length,l=function(){--i||o.resolveWith(a,[a])};"string"!=typeof e&&(n=e,e=t),e=e||"fx";while(s--)r=x._data(a[s],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(l));return l(),o.promise(n)}});var z,X,U=/[\t\r\n\f]/g,V=/\r/g,Y=/^(?:input|select|textarea|button|object)$/i,J=/^(?:a|area)$/i,G=/^(?:checked|selected)$/i,Q=x.support.getSetAttribute,K=x.support.input;x.fn.extend({attr:function(e,t){return x.access(this,x.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){x.removeAttr(this,e)})},prop:function(e,t){return x.access(this,x.prop,e,t,arguments.length>1)},removeProp:function(e){return e=x.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,o,a=0,s=this.length,l="string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).addClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(T)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(U," "):" ")){o=0;while(i=t[o++])0>r.indexOf(" "+i+" ")&&(r+=i+" ");n.className=x.trim(r)}return this},removeClass:function(e){var t,n,r,i,o,a=0,s=this.length,l=0===arguments.length||"string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).removeClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(T)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(U," "):"")){o=0;while(i=t[o++])while(r.indexOf(" "+i+" ")>=0)r=r.replace(" "+i+" "," ");n.className=e?x.trim(r):""}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):x.isFunction(e)?this.each(function(n){x(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if("string"===n){var t,r=0,o=x(this),a=e.match(T)||[];while(t=a[r++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else(n===i||"boolean"===n)&&(this.className&&x._data(this,"__className__",this.className),this.className=this.className||e===!1?"":x._data(this,"__className__")||"")})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(U," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,o=this[0];{if(arguments.length)return i=x.isFunction(e),this.each(function(n){var o;1===this.nodeType&&(o=i?e.call(this,n,x(this).val()):e,null==o?o="":"number"==typeof o?o+="":x.isArray(o)&&(o=x.map(o,function(e){return null==e?"":e+""})),r=x.valHooks[this.type]||x.valHooks[this.nodeName.toLowerCase()],r&&"set"in r&&r.set(this,o,"value")!==t||(this.value=o))});if(o)return r=x.valHooks[o.type]||x.valHooks[o.nodeName.toLowerCase()],r&&"get"in r&&(n=r.get(o,"value"))!==t?n:(n=o.value,"string"==typeof n?n.replace(V,""):null==n?"":n)}}}),x.extend({valHooks:{option:{get:function(e){var t=x.find.attr(e,"value");return null!=t?t:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,a=o?null:[],s=o?i+1:r.length,l=0>i?s:o?i:0;for(;s>l;l++)if(n=r[l],!(!n.selected&&l!==i||(x.support.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&x.nodeName(n.parentNode,"optgroup"))){if(t=x(n).val(),o)return t;a.push(t)}return a},set:function(e,t){var n,r,i=e.options,o=x.makeArray(t),a=i.length;while(a--)r=i[a],(r.selected=x.inArray(x(r).val(),o)>=0)&&(n=!0);return n||(e.selectedIndex=-1),o}}},attr:function(e,n,r){var o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return typeof e.getAttribute===i?x.prop(e,n,r):(1===s&&x.isXMLDoc(e)||(n=n.toLowerCase(),o=x.attrHooks[n]||(x.expr.match.bool.test(n)?X:z)),r===t?o&&"get"in o&&null!==(a=o.get(e,n))?a:(a=x.find.attr(e,n),null==a?t:a):null!==r?o&&"set"in o&&(a=o.set(e,r,n))!==t?a:(e.setAttribute(n,r+""),r):(x.removeAttr(e,n),t))},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(T);if(o&&1===e.nodeType)while(n=o[i++])r=x.propFix[n]||n,x.expr.match.bool.test(n)?K&&Q||!G.test(n)?e[r]=!1:e[x.camelCase("default-"+n)]=e[r]=!1:x.attr(e,n,""),e.removeAttribute(Q?n:r)},attrHooks:{type:{set:function(e,t){if(!x.support.radioValue&&"radio"===t&&x.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},propFix:{"for":"htmlFor","class":"className"},prop:function(e,n,r){var i,o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return a=1!==s||!x.isXMLDoc(e),a&&(n=x.propFix[n]||n,o=x.propHooks[n]),r!==t?o&&"set"in o&&(i=o.set(e,r,n))!==t?i:e[n]=r:o&&"get"in o&&null!==(i=o.get(e,n))?i:e[n]},propHooks:{tabIndex:{get:function(e){var t=x.find.attr(e,"tabindex");return t?parseInt(t,10):Y.test(e.nodeName)||J.test(e.nodeName)&&e.href?0:-1}}}}),X={set:function(e,t,n){return t===!1?x.removeAttr(e,n):K&&Q||!G.test(n)?e.setAttribute(!Q&&x.propFix[n]||n,n):e[x.camelCase("default-"+n)]=e[n]=!0,n}},x.each(x.expr.match.bool.source.match(/\w+/g),function(e,n){var r=x.expr.attrHandle[n]||x.find.attr;x.expr.attrHandle[n]=K&&Q||!G.test(n)?function(e,n,i){var o=x.expr.attrHandle[n],a=i?t:(x.expr.attrHandle[n]=t)!=r(e,n,i)?n.toLowerCase():null;return x.expr.attrHandle[n]=o,a}:function(e,n,r){return r?t:e[x.camelCase("default-"+n)]?n.toLowerCase():null}}),K&&Q||(x.attrHooks.value={set:function(e,n,r){return x.nodeName(e,"input")?(e.defaultValue=n,t):z&&z.set(e,n,r)}}),Q||(z={set:function(e,n,r){var i=e.getAttributeNode(r);return i||e.setAttributeNode(i=e.ownerDocument.createAttribute(r)),i.value=n+="","value"===r||n===e.getAttribute(r)?n:t}},x.expr.attrHandle.id=x.expr.attrHandle.name=x.expr.attrHandle.coords=function(e,n,r){var i;return r?t:(i=e.getAttributeNode(n))&&""!==i.value?i.value:null},x.valHooks.button={get:function(e,n){var r=e.getAttributeNode(n);return r&&r.specified?r.value:t},set:z.set},x.attrHooks.contenteditable={set:function(e,t,n){z.set(e,""===t?!1:t,n)}},x.each(["width","height"],function(e,n){x.attrHooks[n]={set:function(e,r){return""===r?(e.setAttribute(n,"auto"),r):t}}})),x.support.hrefNormalized||x.each(["href","src"],function(e,t){x.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}}),x.support.style||(x.attrHooks.style={get:function(e){return e.style.cssText||t},set:function(e,t){return e.style.cssText=t+""}}),x.support.optSelected||(x.propHooks.selected={get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}}),x.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){x.propFix[this.toLowerCase()]=this}),x.support.enctype||(x.propFix.enctype="encoding"),x.each(["radio","checkbox"],function(){x.valHooks[this]={set:function(e,n){return x.isArray(n)?e.checked=x.inArray(x(e).val(),n)>=0:t}},x.support.checkOn||(x.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var Z=/^(?:input|select|textarea)$/i,et=/^key/,tt=/^(?:mouse|contextmenu)|click/,nt=/^(?:focusinfocus|focusoutblur)$/,rt=/^([^.]*)(?:\.(.+)|)$/;function it(){return!0}function ot(){return!1}function at(){try{return a.activeElement}catch(e){}}x.event={global:{},add:function(e,n,r,o,a){var s,l,u,c,p,f,d,h,g,m,y,v=x._data(e);if(v){r.handler&&(c=r,r=c.handler,a=c.selector),r.guid||(r.guid=x.guid++),(l=v.events)||(l=v.events={}),(f=v.handle)||(f=v.handle=function(e){return typeof x===i||e&&x.event.triggered===e.type?t:x.event.dispatch.apply(f.elem,arguments)},f.elem=e),n=(n||"").match(T)||[""],u=n.length;while(u--)s=rt.exec(n[u])||[],g=y=s[1],m=(s[2]||"").split(".").sort(),g&&(p=x.event.special[g]||{},g=(a?p.delegateType:p.bindType)||g,p=x.event.special[g]||{},d=x.extend({type:g,origType:y,data:o,handler:r,guid:r.guid,selector:a,needsContext:a&&x.expr.match.needsContext.test(a),namespace:m.join(".")},c),(h=l[g])||(h=l[g]=[],h.delegateCount=0,p.setup&&p.setup.call(e,o,m,f)!==!1||(e.addEventListener?e.addEventListener(g,f,!1):e.attachEvent&&e.attachEvent("on"+g,f))),p.add&&(p.add.call(e,d),d.handler.guid||(d.handler.guid=r.guid)),a?h.splice(h.delegateCount++,0,d):h.push(d),x.event.global[g]=!0);e=null}},remove:function(e,t,n,r,i){var o,a,s,l,u,c,p,f,d,h,g,m=x.hasData(e)&&x._data(e);if(m&&(c=m.events)){t=(t||"").match(T)||[""],u=t.length;while(u--)if(s=rt.exec(t[u])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){p=x.event.special[d]||{},d=(r?p.delegateType:p.bindType)||d,f=c[d]||[],s=s[2]&&RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),l=o=f.length;while(o--)a=f[o],!i&&g!==a.origType||n&&n.guid!==a.guid||s&&!s.test(a.namespace)||r&&r!==a.selector&&("**"!==r||!a.selector)||(f.splice(o,1),a.selector&&f.delegateCount--,p.remove&&p.remove.call(e,a));l&&!f.length&&(p.teardown&&p.teardown.call(e,h,m.handle)!==!1||x.removeEvent(e,d,m.handle),delete c[d])}else for(d in c)x.event.remove(e,d+t[u],n,r,!0);x.isEmptyObject(c)&&(delete m.handle,x._removeData(e,"events"))}},trigger:function(n,r,i,o){var s,l,u,c,p,f,d,h=[i||a],g=v.call(n,"type")?n.type:n,m=v.call(n,"namespace")?n.namespace.split("."):[];if(u=f=i=i||a,3!==i.nodeType&&8!==i.nodeType&&!nt.test(g+x.event.triggered)&&(g.indexOf(".")>=0&&(m=g.split("."),g=m.shift(),m.sort()),l=0>g.indexOf(":")&&"on"+g,n=n[x.expando]?n:new x.Event(g,"object"==typeof n&&n),n.isTrigger=o?2:3,n.namespace=m.join("."),n.namespace_re=n.namespace?RegExp("(^|\\.)"+m.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,n.result=t,n.target||(n.target=i),r=null==r?[n]:x.makeArray(r,[n]),p=x.event.special[g]||{},o||!p.trigger||p.trigger.apply(i,r)!==!1)){if(!o&&!p.noBubble&&!x.isWindow(i)){for(c=p.delegateType||g,nt.test(c+g)||(u=u.parentNode);u;u=u.parentNode)h.push(u),f=u;f===(i.ownerDocument||a)&&h.push(f.defaultView||f.parentWindow||e)}d=0;while((u=h[d++])&&!n.isPropagationStopped())n.type=d>1?c:p.bindType||g,s=(x._data(u,"events")||{})[n.type]&&x._data(u,"handle"),s&&s.apply(u,r),s=l&&u[l],s&&x.acceptData(u)&&s.apply&&s.apply(u,r)===!1&&n.preventDefault();if(n.type=g,!o&&!n.isDefaultPrevented()&&(!p._default||p._default.apply(h.pop(),r)===!1)&&x.acceptData(i)&&l&&i[g]&&!x.isWindow(i)){f=i[l],f&&(i[l]=null),x.event.triggered=g;try{i[g]()}catch(y){}x.event.triggered=t,f&&(i[l]=f)}return n.result}},dispatch:function(e){e=x.event.fix(e);var n,r,i,o,a,s=[],l=g.call(arguments),u=(x._data(this,"events")||{})[e.type]||[],c=x.event.special[e.type]||{};if(l[0]=e,e.delegateTarget=this,!c.preDispatch||c.preDispatch.call(this,e)!==!1){s=x.event.handlers.call(this,e,u),n=0;while((o=s[n++])&&!e.isPropagationStopped()){e.currentTarget=o.elem,a=0;while((i=o.handlers[a++])&&!e.isImmediatePropagationStopped())(!e.namespace_re||e.namespace_re.test(i.namespace))&&(e.handleObj=i,e.data=i.data,r=((x.event.special[i.origType]||{}).handle||i.handler).apply(o.elem,l),r!==t&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,e),e.result}},handlers:function(e,n){var r,i,o,a,s=[],l=n.delegateCount,u=e.target;if(l&&u.nodeType&&(!e.button||"click"!==e.type))for(;u!=this;u=u.parentNode||this)if(1===u.nodeType&&(u.disabled!==!0||"click"!==e.type)){for(o=[],a=0;l>a;a++)i=n[a],r=i.selector+" ",o[r]===t&&(o[r]=i.needsContext?x(r,this).index(u)>=0:x.find(r,this,null,[u]).length),o[r]&&o.push(i);o.length&&s.push({elem:u,handlers:o})}return n.length>l&&s.push({elem:this,handlers:n.slice(l)}),s},fix:function(e){if(e[x.expando])return e;var t,n,r,i=e.type,o=e,s=this.fixHooks[i];s||(this.fixHooks[i]=s=tt.test(i)?this.mouseHooks:et.test(i)?this.keyHooks:{}),r=s.props?this.props.concat(s.props):this.props,e=new x.Event(o),t=r.length;while(t--)n=r[t],e[n]=o[n];return e.target||(e.target=o.srcElement||a),3===e.target.nodeType&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,o):e},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,i,o,s=n.button,l=n.fromElement;return null==e.pageX&&null!=n.clientX&&(i=e.target.ownerDocument||a,o=i.documentElement,r=i.body,e.pageX=n.clientX+(o&&o.scrollLeft||r&&r.scrollLeft||0)-(o&&o.clientLeft||r&&r.clientLeft||0),e.pageY=n.clientY+(o&&o.scrollTop||r&&r.scrollTop||0)-(o&&o.clientTop||r&&r.clientTop||0)),!e.relatedTarget&&l&&(e.relatedTarget=l===e.target?n.toElement:l),e.which||s===t||(e.which=1&s?1:2&s?3:4&s?2:0),e}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==at()&&this.focus)try{return this.focus(),!1}catch(e){}},delegateType:"focusin"},blur:{trigger:function(){return this===at()&&this.blur?(this.blur(),!1):t},delegateType:"focusout"},click:{trigger:function(){return x.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):t},_default:function(e){return x.nodeName(e.target,"a")}},beforeunload:{postDispatch:function(e){e.result!==t&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=x.extend(new x.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?x.event.trigger(i,null,t):x.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},x.removeEvent=a.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof e[r]===i&&(e[r]=null),e.detachEvent(r,n))},x.Event=function(e,n){return this instanceof x.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?it:ot):this.type=e,n&&x.extend(this,n),this.timeStamp=e&&e.timeStamp||x.now(),this[x.expando]=!0,t):new x.Event(e,n)},x.Event.prototype={isDefaultPrevented:ot,isPropagationStopped:ot,isImmediatePropagationStopped:ot,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=it,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=it,e&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=it,this.stopPropagation()}},x.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){x.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return(!i||i!==r&&!x.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),x.support.submitBubbles||(x.event.special.submit={setup:function(){return x.nodeName(this,"form")?!1:(x.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=x.nodeName(n,"input")||x.nodeName(n,"button")?n.form:t;r&&!x._data(r,"submitBubbles")&&(x.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),x._data(r,"submitBubbles",!0))}),t)},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&x.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){return x.nodeName(this,"form")?!1:(x.event.remove(this,"._submit"),t)}}),x.support.changeBubbles||(x.event.special.change={setup:function(){return Z.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(x.event.add(this,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this._just_changed=!0)}),x.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),x.event.simulate("change",this,e,!0)})),!1):(x.event.add(this,"beforeactivate._change",function(e){var t=e.target;Z.test(t.nodeName)&&!x._data(t,"changeBubbles")&&(x.event.add(t,"change._change",function(e){!this.parentNode||e.isSimulated||e.isTrigger||x.event.simulate("change",this.parentNode,e,!0)}),x._data(t,"changeBubbles",!0))}),t)},handle:function(e){var n=e.target;return this!==n||e.isSimulated||e.isTrigger||"radio"!==n.type&&"checkbox"!==n.type?e.handleObj.handler.apply(this,arguments):t},teardown:function(){return x.event.remove(this,"._change"),!Z.test(this.nodeName)}}),x.support.focusinBubbles||x.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){x.event.simulate(t,e.target,x.event.fix(e),!0)};x.event.special[t]={setup:function(){0===n++&&a.addEventListener(e,r,!0)},teardown:function(){0===--n&&a.removeEventListener(e,r,!0)}}}),x.fn.extend({on:function(e,n,r,i,o){var a,s;if("object"==typeof e){"string"!=typeof n&&(r=r||n,n=t);for(a in e)this.on(a,n,r,e[a],o);return this}if(null==r&&null==i?(i=n,r=n=t):null==i&&("string"==typeof n?(i=r,r=t):(i=r,r=n,n=t)),i===!1)i=ot;else if(!i)return this;return 1===o&&(s=i,i=function(e){return x().off(e),s.apply(this,arguments)},i.guid=s.guid||(s.guid=x.guid++)),this.each(function(){x.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,o;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,x(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if("object"==typeof e){for(o in e)this.off(o,n,e[o]);return this}return(n===!1||"function"==typeof n)&&(r=n,n=t),r===!1&&(r=ot),this.each(function(){x.event.remove(this,e,r,n)})},trigger:function(e,t){return this.each(function(){x.event.trigger(e,t,this)})},triggerHandler:function(e,n){var r=this[0];return r?x.event.trigger(e,n,r,!0):t}});var st=/^.[^:#\[\.,]*$/,lt=/^(?:parents|prev(?:Until|All))/,ut=x.expr.match.needsContext,ct={children:!0,contents:!0,next:!0,prev:!0};x.fn.extend({find:function(e){var t,n=[],r=this,i=r.length;if("string"!=typeof e)return this.pushStack(x(e).filter(function(){for(t=0;i>t;t++)if(x.contains(r[t],this))return!0}));for(t=0;i>t;t++)x.find(e,r[t],n);return n=this.pushStack(i>1?x.unique(n):n),n.selector=this.selector?this.selector+" "+e:e,n},has:function(e){var t,n=x(e,this),r=n.length;return this.filter(function(){for(t=0;r>t;t++)if(x.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(ft(this,e||[],!0))},filter:function(e){return this.pushStack(ft(this,e||[],!1))},is:function(e){return!!ft(this,"string"==typeof e&&ut.test(e)?x(e):e||[],!1).length},closest:function(e,t){var n,r=0,i=this.length,o=[],a=ut.test(e)||"string"!=typeof e?x(e,t||this.context):0;for(;i>r;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(11>n.nodeType&&(a?a.index(n)>-1:1===n.nodeType&&x.find.matchesSelector(n,e))){n=o.push(n);break}return this.pushStack(o.length>1?x.unique(o):o)},index:function(e){return e?"string"==typeof e?x.inArray(this[0],x(e)):x.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){var n="string"==typeof e?x(e,t):x.makeArray(e&&e.nodeType?[e]:e),r=x.merge(this.get(),n);return this.pushStack(x.unique(r))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function pt(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}x.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return x.dir(e,"parentNode")},parentsUntil:function(e,t,n){return x.dir(e,"parentNode",n)},next:function(e){return pt(e,"nextSibling")},prev:function(e){return pt(e,"previousSibling")},nextAll:function(e){return x.dir(e,"nextSibling")},prevAll:function(e){return x.dir(e,"previousSibling")},nextUntil:function(e,t,n){return x.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return x.dir(e,"previousSibling",n)},siblings:function(e){return x.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return x.sibling(e.firstChild)},contents:function(e){return x.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:x.merge([],e.childNodes)}},function(e,t){x.fn[e]=function(n,r){var i=x.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=x.filter(r,i)),this.length>1&&(ct[e]||(i=x.unique(i)),lt.test(e)&&(i=i.reverse())),this.pushStack(i)}}),x.extend({filter:function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?x.find.matchesSelector(r,e)?[r]:[]:x.find.matches(e,x.grep(t,function(e){return 1===e.nodeType}))},dir:function(e,n,r){var i=[],o=e[n];while(o&&9!==o.nodeType&&(r===t||1!==o.nodeType||!x(o).is(r)))1===o.nodeType&&i.push(o),o=o[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}});function ft(e,t,n){if(x.isFunction(t))return x.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return x.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(st.test(t))return x.filter(t,e,n);t=x.filter(t,e)}return x.grep(e,function(e){return x.inArray(e,t)>=0!==n})}function dt(e){var t=ht.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}var ht="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",gt=/ jQuery\d+="(?:null|\d+)"/g,mt=RegExp("<(?:"+ht+")[\\s/>]","i"),yt=/^\s+/,vt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bt=/<([\w:]+)/,xt=/\s*$/g,At={option:[1,""],legend:[1,"
      ","
      "],area:[1,"",""],param:[1,"",""],thead:[1,"","
      "],tr:[2,"","
      "],col:[2,"","
      "],td:[3,"","
      "],_default:x.support.htmlSerialize?[0,"",""]:[1,"X
      ","
      "]},jt=dt(a),Dt=jt.appendChild(a.createElement("div"));At.optgroup=At.option,At.tbody=At.tfoot=At.colgroup=At.caption=At.thead,At.th=At.td,x.fn.extend({text:function(e){return x.access(this,function(e){return e===t?x.text(this):this.empty().append((this[0]&&this[0].ownerDocument||a).createTextNode(e))},null,e,arguments.length)},append:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Lt(this,e);t.appendChild(e)}})},prepend:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Lt(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){var n,r=e?x.filter(e,this):this,i=0;for(;null!=(n=r[i]);i++)t||1!==n.nodeType||x.cleanData(Ft(n)),n.parentNode&&(t&&x.contains(n.ownerDocument,n)&&_t(Ft(n,"script")),n.parentNode.removeChild(n));return this},empty:function(){var e,t=0;for(;null!=(e=this[t]);t++){1===e.nodeType&&x.cleanData(Ft(e,!1));while(e.firstChild)e.removeChild(e.firstChild);e.options&&x.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return x.clone(this,e,t)})},html:function(e){return x.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return 1===n.nodeType?n.innerHTML.replace(gt,""):t;if(!("string"!=typeof e||Tt.test(e)||!x.support.htmlSerialize&&mt.test(e)||!x.support.leadingWhitespace&&yt.test(e)||At[(bt.exec(e)||["",""])[1].toLowerCase()])){e=e.replace(vt,"<$1>");try{for(;i>r;r++)n=this[r]||{},1===n.nodeType&&(x.cleanData(Ft(n,!1)),n.innerHTML=e);n=0}catch(o){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=x.map(this,function(e){return[e.nextSibling,e.parentNode]}),t=0;return this.domManip(arguments,function(n){var r=e[t++],i=e[t++];i&&(r&&r.parentNode!==i&&(r=this.nextSibling),x(this).remove(),i.insertBefore(n,r))},!0),t?this:this.remove()},detach:function(e){return this.remove(e,!0)},domManip:function(e,t,n){e=d.apply([],e);var r,i,o,a,s,l,u=0,c=this.length,p=this,f=c-1,h=e[0],g=x.isFunction(h);if(g||!(1>=c||"string"!=typeof h||x.support.checkClone)&&Nt.test(h))return this.each(function(r){var i=p.eq(r);g&&(e[0]=h.call(this,r,i.html())),i.domManip(e,t,n)});if(c&&(l=x.buildFragment(e,this[0].ownerDocument,!1,!n&&this),r=l.firstChild,1===l.childNodes.length&&(l=r),r)){for(a=x.map(Ft(l,"script"),Ht),o=a.length;c>u;u++)i=l,u!==f&&(i=x.clone(i,!0,!0),o&&x.merge(a,Ft(i,"script"))),t.call(this[u],i,u);if(o)for(s=a[a.length-1].ownerDocument,x.map(a,qt),u=0;o>u;u++)i=a[u],kt.test(i.type||"")&&!x._data(i,"globalEval")&&x.contains(s,i)&&(i.src?x._evalUrl(i.src):x.globalEval((i.text||i.textContent||i.innerHTML||"").replace(St,"")));l=r=null}return this}});function Lt(e,t){return x.nodeName(e,"table")&&x.nodeName(1===t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function Ht(e){return e.type=(null!==x.find.attr(e,"type"))+"/"+e.type,e}function qt(e){var t=Et.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function _t(e,t){var n,r=0;for(;null!=(n=e[r]);r++)x._data(n,"globalEval",!t||x._data(t[r],"globalEval"))}function Mt(e,t){if(1===t.nodeType&&x.hasData(e)){var n,r,i,o=x._data(e),a=x._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;i>r;r++)x.event.add(t,n,s[n][r])}a.data&&(a.data=x.extend({},a.data))}}function Ot(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!x.support.noCloneEvent&&t[x.expando]){i=x._data(t);for(r in i.events)x.removeEvent(t,r,i.handle);t.removeAttribute(x.expando)}"script"===n&&t.text!==e.text?(Ht(t).text=e.text,qt(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),x.support.html5Clone&&e.innerHTML&&!x.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&Ct.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}}x.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){x.fn[e]=function(e){var n,r=0,i=[],o=x(e),a=o.length-1;for(;a>=r;r++)n=r===a?this:this.clone(!0),x(o[r])[t](n),h.apply(i,n.get());return this.pushStack(i)}});function Ft(e,n){var r,o,a=0,s=typeof e.getElementsByTagName!==i?e.getElementsByTagName(n||"*"):typeof e.querySelectorAll!==i?e.querySelectorAll(n||"*"):t;if(!s)for(s=[],r=e.childNodes||e;null!=(o=r[a]);a++)!n||x.nodeName(o,n)?s.push(o):x.merge(s,Ft(o,n));return n===t||n&&x.nodeName(e,n)?x.merge([e],s):s}function Bt(e){Ct.test(e.type)&&(e.defaultChecked=e.checked)}x.extend({clone:function(e,t,n){var r,i,o,a,s,l=x.contains(e.ownerDocument,e);if(x.support.html5Clone||x.isXMLDoc(e)||!mt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(Dt.innerHTML=e.outerHTML,Dt.removeChild(o=Dt.firstChild)),!(x.support.noCloneEvent&&x.support.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||x.isXMLDoc(e)))for(r=Ft(o),s=Ft(e),a=0;null!=(i=s[a]);++a)r[a]&&Ot(i,r[a]);if(t)if(n)for(s=s||Ft(e),r=r||Ft(o),a=0;null!=(i=s[a]);a++)Mt(i,r[a]);else Mt(e,o);return r=Ft(o,"script"),r.length>0&&_t(r,!l&&Ft(e,"script")),r=s=i=null,o},buildFragment:function(e,t,n,r){var i,o,a,s,l,u,c,p=e.length,f=dt(t),d=[],h=0;for(;p>h;h++)if(o=e[h],o||0===o)if("object"===x.type(o))x.merge(d,o.nodeType?[o]:o);else if(wt.test(o)){s=s||f.appendChild(t.createElement("div")),l=(bt.exec(o)||["",""])[1].toLowerCase(),c=At[l]||At._default,s.innerHTML=c[1]+o.replace(vt,"<$1>")+c[2],i=c[0];while(i--)s=s.lastChild;if(!x.support.leadingWhitespace&&yt.test(o)&&d.push(t.createTextNode(yt.exec(o)[0])),!x.support.tbody){o="table"!==l||xt.test(o)?""!==c[1]||xt.test(o)?0:s:s.firstChild,i=o&&o.childNodes.length;while(i--)x.nodeName(u=o.childNodes[i],"tbody")&&!u.childNodes.length&&o.removeChild(u)}x.merge(d,s.childNodes),s.textContent="";while(s.firstChild)s.removeChild(s.firstChild);s=f.lastChild}else d.push(t.createTextNode(o));s&&f.removeChild(s),x.support.appendChecked||x.grep(Ft(d,"input"),Bt),h=0;while(o=d[h++])if((!r||-1===x.inArray(o,r))&&(a=x.contains(o.ownerDocument,o),s=Ft(f.appendChild(o),"script"),a&&_t(s),n)){i=0;while(o=s[i++])kt.test(o.type||"")&&n.push(o)}return s=null,f},cleanData:function(e,t){var n,r,o,a,s=0,l=x.expando,u=x.cache,c=x.support.deleteExpando,f=x.event.special;for(;null!=(n=e[s]);s++)if((t||x.acceptData(n))&&(o=n[l],a=o&&u[o])){if(a.events)for(r in a.events)f[r]?x.event.remove(n,r):x.removeEvent(n,r,a.handle); +u[o]&&(delete u[o],c?delete n[l]:typeof n.removeAttribute!==i?n.removeAttribute(l):n[l]=null,p.push(o))}},_evalUrl:function(e){return x.ajax({url:e,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})}}),x.fn.extend({wrapAll:function(e){if(x.isFunction(e))return this.each(function(t){x(this).wrapAll(e.call(this,t))});if(this[0]){var t=x(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&1===e.firstChild.nodeType)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return x.isFunction(e)?this.each(function(t){x(this).wrapInner(e.call(this,t))}):this.each(function(){var t=x(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=x.isFunction(e);return this.each(function(n){x(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){x.nodeName(this,"body")||x(this).replaceWith(this.childNodes)}).end()}});var Pt,Rt,Wt,$t=/alpha\([^)]*\)/i,It=/opacity\s*=\s*([^)]*)/,zt=/^(top|right|bottom|left)$/,Xt=/^(none|table(?!-c[ea]).+)/,Ut=/^margin/,Vt=RegExp("^("+w+")(.*)$","i"),Yt=RegExp("^("+w+")(?!px)[a-z%]+$","i"),Jt=RegExp("^([+-])=("+w+")","i"),Gt={BODY:"block"},Qt={position:"absolute",visibility:"hidden",display:"block"},Kt={letterSpacing:0,fontWeight:400},Zt=["Top","Right","Bottom","Left"],en=["Webkit","O","Moz","ms"];function tn(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=en.length;while(i--)if(t=en[i]+n,t in e)return t;return r}function nn(e,t){return e=t||e,"none"===x.css(e,"display")||!x.contains(e.ownerDocument,e)}function rn(e,t){var n,r,i,o=[],a=0,s=e.length;for(;s>a;a++)r=e[a],r.style&&(o[a]=x._data(r,"olddisplay"),n=r.style.display,t?(o[a]||"none"!==n||(r.style.display=""),""===r.style.display&&nn(r)&&(o[a]=x._data(r,"olddisplay",ln(r.nodeName)))):o[a]||(i=nn(r),(n&&"none"!==n||!i)&&x._data(r,"olddisplay",i?n:x.css(r,"display"))));for(a=0;s>a;a++)r=e[a],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[a]||"":"none"));return e}x.fn.extend({css:function(e,n){return x.access(this,function(e,n,r){var i,o,a={},s=0;if(x.isArray(n)){for(o=Rt(e),i=n.length;i>s;s++)a[n[s]]=x.css(e,n[s],!1,o);return a}return r!==t?x.style(e,n,r):x.css(e,n)},e,n,arguments.length>1)},show:function(){return rn(this,!0)},hide:function(){return rn(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){nn(this)?x(this).show():x(this).hide()})}}),x.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Wt(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":x.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var o,a,s,l=x.camelCase(n),u=e.style;if(n=x.cssProps[l]||(x.cssProps[l]=tn(u,l)),s=x.cssHooks[n]||x.cssHooks[l],r===t)return s&&"get"in s&&(o=s.get(e,!1,i))!==t?o:u[n];if(a=typeof r,"string"===a&&(o=Jt.exec(r))&&(r=(o[1]+1)*o[2]+parseFloat(x.css(e,n)),a="number"),!(null==r||"number"===a&&isNaN(r)||("number"!==a||x.cssNumber[l]||(r+="px"),x.support.clearCloneStyle||""!==r||0!==n.indexOf("background")||(u[n]="inherit"),s&&"set"in s&&(r=s.set(e,r,i))===t)))try{u[n]=r}catch(c){}}},css:function(e,n,r,i){var o,a,s,l=x.camelCase(n);return n=x.cssProps[l]||(x.cssProps[l]=tn(e.style,l)),s=x.cssHooks[n]||x.cssHooks[l],s&&"get"in s&&(a=s.get(e,!0,r)),a===t&&(a=Wt(e,n,i)),"normal"===a&&n in Kt&&(a=Kt[n]),""===r||r?(o=parseFloat(a),r===!0||x.isNumeric(o)?o||0:a):a}}),e.getComputedStyle?(Rt=function(t){return e.getComputedStyle(t,null)},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),l=s?s.getPropertyValue(n)||s[n]:t,u=e.style;return s&&(""!==l||x.contains(e.ownerDocument,e)||(l=x.style(e,n)),Yt.test(l)&&Ut.test(n)&&(i=u.width,o=u.minWidth,a=u.maxWidth,u.minWidth=u.maxWidth=u.width=l,l=s.width,u.width=i,u.minWidth=o,u.maxWidth=a)),l}):a.documentElement.currentStyle&&(Rt=function(e){return e.currentStyle},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),l=s?s[n]:t,u=e.style;return null==l&&u&&u[n]&&(l=u[n]),Yt.test(l)&&!zt.test(n)&&(i=u.left,o=e.runtimeStyle,a=o&&o.left,a&&(o.left=e.currentStyle.left),u.left="fontSize"===n?"1em":l,l=u.pixelLeft+"px",u.left=i,a&&(o.left=a)),""===l?"auto":l});function on(e,t,n){var r=Vt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function an(e,t,n,r,i){var o=n===(r?"border":"content")?4:"width"===t?1:0,a=0;for(;4>o;o+=2)"margin"===n&&(a+=x.css(e,n+Zt[o],!0,i)),r?("content"===n&&(a-=x.css(e,"padding"+Zt[o],!0,i)),"margin"!==n&&(a-=x.css(e,"border"+Zt[o]+"Width",!0,i))):(a+=x.css(e,"padding"+Zt[o],!0,i),"padding"!==n&&(a+=x.css(e,"border"+Zt[o]+"Width",!0,i)));return a}function sn(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=Rt(e),a=x.support.boxSizing&&"border-box"===x.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=Wt(e,t,o),(0>i||null==i)&&(i=e.style[t]),Yt.test(i))return i;r=a&&(x.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return i+an(e,t,n||(a?"border":"content"),r,o)+"px"}function ln(e){var t=a,n=Gt[e];return n||(n=un(e,t),"none"!==n&&n||(Pt=(Pt||x("

B4BNvzd$X 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 diff --git a/sites/installfest/Win7_search_programs.jpg b/sites/installfest/Win7_search_programs.jpg deleted file mode 100644 index 6fd59511a79651a8f4437b479188ca2553d91d56..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17269 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 HQYQZgp(K+U diff --git a/sites/installfest/WindowsFirewall.jpg b/sites/installfest/WindowsFirewall.jpg deleted file mode 100644 index 42e03d2288145817074730449e7aede8057e410b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 86795 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%0D~FG@p-kvX3j=8pz7-+)z;9j8z45g z$M#U!Y{K0m{&krsHQwRh=;FKYg0XHa>ux$E-d9E3(!;X*_Q-i%myj}}f~mGF_aik* zv?6&N%;bz%_H6mJpx5Um9sfv#`H3AbTAnYCHBt?MGI&U`WoXbdqCun<$R}9|Z|cn1#%z2P(t0opb;&R2SwyRn zpO;*xhD5{rgR>DiXeW=Ayd3?Ypd&If(B&WL@Gu`h3ITS{q7CwpNAA!@2C`$kHzFIx-y2_7 zLqzRn1Ux9Y*ApNZT|lfI(qNNQ&BPoHZ>yy&kVkG0Mi0&h^-dJDLHVHf^iOqX!xV%G)~BMR6P;Ts4GQyJ17&> z8GJM7nFV$R+Z1V-vIp5n6h_3qZ&@=$dWAj*IRZv4({H7{NSqYC;Ld92IsLIdfc8Ek zNxlebTq5^Apv{~lD*&M_G;-B+dWKEAy(T_tV^@nedMCQtg!rs%0Ec`AntbIvR9!_ z5F)RgtP2=}jZ~ll@bp%d-I85Az5?q$H93hbTE}3O83@eI>KH!t(kZ@nb3nd4o#n-T z3a-$hUYh0yQ8rT|EONn&gIX7Vbs7q2M3XgCAndLt2qooLb_FI}zBMW-h!pz9&# z(5X(9-nX@f_n;x;!n}h7wGOI)Tb*atjN0$+dAe%5(E&kpY!qdJWbgle{rkO1_Z=+` zKp$A~booeCf96wv@PYLG3z6m4dMacY%omA($oDL28wVGk5=e>BRig<=8Uyhqzd2zK zY#8Q)gLopcnd(IeV0=z+UA`-A!kERd^2j z#T#5+M`EDF1~TX~mF7@z?tg-y0CYN47~o8kT0lMz0$Ag>)8(7K#69M?YLH0pa4@PH zaKY9fj01#CT`n%f9~lX?m}~Q0e6;7-6x<11y|sWLo-`Pj7tM^a{Rm9tEa=NHTm2>c z01`94ailiiZNPp}IHas+Bh$JtPa#I<>f@@6Teh+;{gA_0ck|KS*+=Y7IkWiE&4I#^QA(-WAvN2& zGXH=&54pjc!y>ZvZrEv4Q)pT!r*wc!7IguQ$?aiXz3BywUO{v(%_eL`O|zci!oZva zkg8$Y5mPIJW;L&XK$MiVWQM}^nv0$fbUQD87fHK(*Vc4Hjd7BrhUU;AZEE~L)hFmN zt~N~tX2_f?pv4Z-1rNap=@UU?PjcOI)(Fe3R#{c|#Dub@yx-mDp)q4vVnCZ(eCBVX zx+hs)E&e-vFS$~p>>~HhT>JSob2ltaP$=9^#bYzW!6LcLHWKy5Uue$*cvkN2p50us z3fF3ocL^}~gcTrSqx2;u2;qKMA*4H5xo>3?P1CYkV9CKm8yWecZ8ItUuNdDBTK}+k zSuJ~__fFEbyxG0cjnG7tLs?^V{;GWE2#9hImn|uzVYB9@1VD2DUxHK(Aif7ffGii9 z$Ia#e2ccoE0nLYi5KwSXHu>P1o1jx~6O6)wc&gp7waLcIYC<()${6b*q1@u(-g~NMEp$O)#Nza! zFTtQcI5ZcHpTR9Z_L-TO1dknJ1%+rzGx-D#?xXxNYvlZf-OrO3m36x`mBWPhyw5gl zSC5>e?HGe0v--z&K~JFzGKzd2-()`$MprwEmTe1^oez9G8NV7e(Cg55T5Pnkaj3-C z8PTew@pPP4HY<7bnuFrkT$=s{ZSmc`WlkO>u-8GHK6s1xnm>;xCcC%7bUJQu(q!Rhk^-E zGQuksKI|vCI-{d6WuzVgaf~J?NSE%7rVzD~-aC#hk`FL{hU?1b%v+DIBw_Owue8^f z_WEUyy9+!O<<`ZdyJ81s;ssi5yiM*Wr(H+RZbHVx*l&h(wK-SZKretzF=1_UPoJCfPI(vv`wcsJMpZ3iaYsul&mDj46Vh zyWt%deqRf$yo(=5kSu_UMQL+x@|q;p{JlM8C1KhtMimErd)-w zlKU~SOV4?HM-WK;E`CiVd6GDE$#l5tp!MM9AsNamhdPJvU1<()WY9S^h7+>eN09tDCY9X-EX_d2TkZkcApy)x z7;bN8F`R%->unj2)7t4FmP!Z=w7I$MzVAU@#@VFsxzzr3gPHsO4+V)vjvnSa<`S7{ z(}EMAj-kEvu)KV9lXP`{ z#G$T@IjWm;&8(Bio%SA7*CNNxr99`^o|A01og3qBQ!Hzw@KgIn(bYI4)5Jl0M*I1w z!4TK(fuHDy(SlGFgBA;Sv5Vi`rR9jDG!DG9^36w549qCh)=U@p;VmuJu7_ja*nK0r z`xe8$I3)sCryY&iDf=;MMmZY%yRKy3g+#eHow42WrQmN@kC0uz7spn6bOIzgo-2Zw zQEP>SVNaIstI0gszlnUOa7L3^#{&c&%LZ8?St_Tch zc$5Z%@2rru!6|WJ!5)OSo~waLOVRbWnW--}@O!DC8gv2Xg0YO1hl8YT8!Z@n;@SDf z*eefCU;Glc4|?`ON(go@wn^Tm1wv%t+a#&S(GoizI*!A{a7yeaGBS4apcliF(H6f# zl3ylh5-Y!FH%VL*lJoCZ7$n*`fD4k$ZX@|LubZq;2R-VWjuf^-3me3?lC>&7GQV3H zKXy9*_0@$TPtElG&%0Dsk`2Y`!iyh%?^}yjgv>wyCBb&VaPn_SbjMmJ=BO>xXsT>R zPrAE>Z6Cr&DLCFQGonbUO}7Yo`*7l%TaaA5$AMmr&y{~5&lmN4Rn4vAfXj>r$Gou9>?yD28FmN!Ch{5F}lEM!7Z9S*R9 zcyR17O@TidCuh`zdvnmd-e#U8@RnBM1>(N2dM0aVZm9a3^T$7*sEW-&D(+R=q*|Pm zgS}~KZ$AAQ1_-v|0VVAY?Chp4_Nz+ntY-(n4>V6BS$GKAZLIc1UI*_uo5rh-#_Ms#6 ztXg3%v-49YYGLU2@ay{y_Y{9A=tAd6ikYiqRg1Im3Pv*Qj^4$yJy50?E7TvcMl0;_BR=2 zZ}R&88Yq!eb!c4h$R?f7%-Do0KT|E7BVqwXLOa}R#thH8J~Lz7LINW4dJBjk&!xGl zUP8tIbA+ASG->DLAn`+p30*;w{vCACF+gNfN96M&9stQaT= z*ls*{B=Sn)Mek;?aW&5Zza|xdMp;wKg`?KRDZ@bnm>y5erFqR)YKSvS1d(}Ztq%jl zx0o~7=BGl`d4UjTnWSrQF?yHDz@oT!U$mTQis85Ax2B>uDX9|}DpFkcZZUvrO7W*2 z4c45IazRuv;k=3xx2*sP$G7Ee(!{5QBGrh(yv)m|2UX&$73d0WYxS_x4)L>i5sHUe z43+4$oW-J=H-vo(42a?iGbb!P(Bp0amJUF|rl;TT1*&;K{qYI=PK8v_R%fJM=*|Ab z*63vKvxCW+%mVpIowcuyMQd%_%SrV{YJsNYBGn#8CM++lA=Owc-NR0Ofc!hQ3CuVA zyk^HgBfpz@qrK%CdBEkvNVR$Rt9hOpnKZbGfc=QF9F`#~`45z3=O)zjMI}9{_pTQ- zD8n@4kCQdH4nV~Ny16hq;3{y9PIxKd1?H4^*e5Y_Zv-BnkjVU;7DL^(W=c-%vx#1g zD}D8OU+i2CL72tII}BlE57I(#vDGN^-vDe&7O|uU%fOrU~t9H2-t<(~G83 zy7QAWVwgMZ^{x zY;a<=v;dHcn{sVtV)CuJ7D?Fd&VLVz+$2M z%nKH^wjj(GEsC*u^_3arr;SE_WW;GXJ~h^2A(RtKbs6Q0K@j2K^S~e^^a-QkGRvpA z0*I7yvZ$*ivjm_2y{Edg+;@9LA#tR4d4x3LS!v(e*QzKC(J=hNN(m->=r?V<;+Z;D z@4xO(p*~(4ypJdtHCi*x+oojJ=k|tDTm%96f&>iY8XXdqhL7DqnTPsg)cZ9jPzRVy z>@jpKN43KQ{TKldA{uiALhfh1=Nw?2QZ1a9Ge+KHL6)s%R%7(l$s@rbGt?-3^(&rX zrQmedvcVp;dy*nxnzeqTLfHMhrrhy~>yc;m+a$TOZxS<+gBo{D*Nu#plPPO=5A5Ev z+~8;_nHKpJl&u1!?Z!Ydse~-8A6pcwwExD4qy|4+ypi$nQO2BUzMXz8;E{_8hXjm0d1YZF zDtq{B_VfSWPv3W!vK+A$!}~qQn-51Y=h^GaLPjVcYj2t%a8f1s4Cl(}6Myf4v8=E& zX^Mc&vKm)ZoNkS0VtS`Z(SArBj)y8GkCeTsWF$c^~Jastc$oP`GyCe;r5qz15KjpgP>O|B(;Kp?s zr7f!JlP4nY;YZnHc+*qj)>5{y@zJVa$b=5W&J) z0N~}FGoSo1`XgtwMtSmKSF3ThjW3JOBp@nIyd5fa%~d}hZqavm^=zro&2xGnQ%Bst zQF3I$os-t+Kux8QdV53aWxq7&a74Hg%&6u@uTOR6&E}Ez$WUFF_P8ci&>rpBE}(oj z^~d&#O3E3LGEVjE5dL+@e!mpxAzh{X;ET8>t*H~tO-k6A54>*NwOF$Vjn?Y1s^#Wy zYHwsF)|Mwor<_Fl`tJs8Vqtw`!^>t0ts( z_j=_C-+m;wocYc`aY8%f+SY_gG5$qNs}^zcDfpF9!~W_Dl*;6A_(>YY$+oK5cl_uw%(6qZ5^7jY4)*kspj3rM$h~}NTOZvL|b5|Lg$Vq+p zu=Z}w(iW9VoeH@;gZ;)gZQKf8s260)Qfz{TXPzEtkavBep`!{)J^B*0~2l)aXetHUC>qvwqCuAceitgZ))ACmKaX!hqGy{dOYO5;6atCSw`*#Bt(kV{5X9~W%Ii9QxU7165|3#O6 zGVrb;?%8GTqJ;JA0xGzAkcsqOwoIaEJM`)^QnN=Z!M7r^=Zd`0e|@t!@F9LyBGG>~5~PLL4SCHpw_z5Qr(Os^Gtn(u`u{ z1?9}wW&evkdO z78NXbYLxV%SIwf*kq=+DO1x8go_fsw)hggW!Rve5Ec7%!hgFlf)FbsMZGO;tlo33h zpO_TSp4}MvP8jI*t2FO~R{5=d>!97Jr|Zc&g7+EuOrxNpXw)qU{TFn8te~B08Lj(q z{7iz5a@g@8zxYQXG2!P{bnn0N(e(kt1ayFCjw%o|Jyn#`;ltc&i83*%F3Ji;tDPBi z33a{yF~N4~^21l3O3o#35942%8SiCE&UAD*Ag(j-K}9s6zXj`zY^q7Xb0)758f!A1 z(L>I=4Sc_`^Ee~3sK{7qI>Z03M-AzJjDLrPe=nq%TRp8IHI8F7R}~j)iAzEGsxH1e zW4ohIK@X1a+P4|>I@e4Glv+`cNrI4!X)q0-S~t*>QD zpLU-sO(@>ufBVa!JtLX%%&HdYQ;q%QzN<%FwZuW60N!}uF=>z44KMF!|ifk9%Ggu(wlNJmTMbw71C9iMrHJ$O=-kU_?M&Pj3WxXycD&5~7UwryqR6Td@(ok3B8#rwZ;{NlJ=#2@sARy&JS380_#ytsGiIq+N^^nA5ETUoN zh>YJa<+?qDneIcB4a)`i9Zx>|rS*OyYPc{D;{UzQeq@cv@PgF`Ry2BHNR(bIxr-O| z8wr(mJSKZ~b7A?-LL>AaH&qqlJep0Yg&Yc zf-L>c;`yz*{EXs-siQ+HDyr2Jr0NDzvPbSY=9jqmQ_o)zTa>KAUXPHGfFS4E66JSY zqnX^nvW90g53Rvg3?Fj_P^J@N3t0M;0(j9P*13LI_G8HPjaZ%Zpma3jOF*IlJC;9d zwxqQ9>zm8e3J3ej^*3*@S_Dd3O-|u=Cq@Wn)~kQBveHd!89xr$4_=>zje=B#MD!H2 zP@;GTnWAOWMjxYE(nQNsPti_}8I&G;@!U;LR_{mx_T^8t8@sXOqiFA$)=H4!dWbAx z3!AyLlEvCP0XViRj9Si@+$$TijmoSNwK|>jr+1G3pUOXQFF{5bPo8T5I!L2|NWtHh zu%O}xF*}S{W=ThL2yWu`W$E^9f)NBMg&4^RZ~65Vhg;cqZTk;A^zSV1{e)*)V5Neu zj_|}?OK4@{#-sXLu2Uyj+7XNu4^$xHX%kw;)yx6a zPb`Tx0pl+_CvXn*g1)jdaPd2xvN-m@r1`wMN%7igNryLL`{IU>;6nTe8v!|yA7d^a z48}yz-<}!55@$l3T2cafq*hZ;A>9wyP6$8yvo-Vnc1>&SyR&;gVO^o)NV<6>#Y-6p zY8m#REf{MnCDFI&C=+EdR93x_*xQTfrWH4pIJUz4hMhB2BkpGch% zkJ2^B3O1-6X*k8^9R&PXdo5Xz2u5}H=Q3TZr|(f>?0C(3J>G=6YU`tCi9aUfl8V%y zy-0bi-0AadX+hkA!cE~3VATxw^tm4iE7WauQ`PZFZc0rZWlH}zATaF}wH5309#C%% zly638rgcBaMNC}z)ZcXcrN~wP6AX{rgzGhZaSt{3-sq+kL}^Sw1ji@PSVK|`^RK-I zF*+w+YdpE$Cs=j%p216p8OaN4I%?OAf~}YwcEfH7k%4I9NwN6CbVa8*6bL$0M*z|~ zJ{R@m{4CK!(X#PPK0Y77S-9CNR6dWEX77LN853?G&Hl-|gl#hA>3}gQH~-#qY&MFf zO3FrE*^1Lu&qZUTgm055m8mANb}8dKL6n-h9)1vUI@cqFXtiQUrdW}jP?x&Yl0gO* zGPrD!`u3fQCVF#pww&UN*hcs#am4A+WgDi~jEKZNM^ymE>}|U+pDL~$=#7#VuOK_< zquvHDML!T~okDc0txBctr_Mbz*Q_eRe1!^Xg1g>D{WBCMBuve3_koHGW$0(WN^V0V z%+xZ-D8>5v%IRbwlNRCGI%U;^2gq<>lJgKVh&c$*+?YR`9QQLvTk*oK(vnpy>jvL= zg|8zMmI-U@wX;v?ygrsdZVl{|ez z<@Q0jR11Cror4 zW6SWbWrc7*zY>J;4`NNuQT=e3bX zd~t{81I`5%U_?Bg?0?Uovq9vu(fSUr83SRh?KW#hPvv8k*d zzrv`6Jew#c(FZZ*Q|$Ccv4Wu~=x#Lc2-k*{2H@JD2YDxe)K(?m)b3(;vRFk!BO=^n z#x#7uuy^j9!QsfS*IS>TI@|Fq3(zrPw&xU2xz$;x7fddVUgub4j*p#5viNx1_+Xmz z?IVc?vt#snl4>;W(XK+yqbNtJy~YsiL_j4MZ9^AqMa3e;fZV1MH~lj}R51|k66b3F zubrjCjh z{j1smgWxA~B+^F{mvG0cQd!9-FFIS+KTf_E?xkw-Bnj)AB}U#>OWYQkbzL{FB;^&z z14g?mqxSef3rBDn*ta`yhAAF_kwJ^!vNq@E>ayB+v9$R}-E`#xk>f0tGbbb;)CAS4 z^z$8jb?&IhZ!oqMYqR%7g9WRd+5tUA6mTAd0jXlI^Qb_|%D}|(l3%`?ipPUvF_#|P zcBx&PF}%8_9^Y>2knvJpt2VF+9tcb9E+_A-R0lTh_a|TypJGbVRtG0BL2ixYm~8Ul zN|sTIyc!7PUXS zH2(b4MZ$@QTVh*2#%^j~^IZ+9MuI!9YfATGRU}7w0?C8*l}{!uJxg+=cJy(M$X*B4 z<&k&2Z+1pv0H0|pqo0Ln4FGSiZn#GGfYDe$5KE_xcbe&|l@cgF97)MGD#$OBvo9U> zp6v8GJ(e$cMXmBi#oMhz2OZ*@(MdFyR>A$;M=WT|>Jen{Jr*)D8+V;`w1~DVNngn- zMv>3-*=@QSP39Adrp7z-r_B9RJT!BK5n%SUujZik2*^@Vd6Z;wKOIV{-y~#Q^ z)qB~4QPm5mjbUUe{0UVn_6}jx)(3;LK&DSgj;ummDc=Z91Bx*`^(Gd=4&RyvZIP1c z?HJWcdqIl2lg6)Sb2mhv!C0NH2-UID93C3|^XA8snL(`yVD>o*?}RH<7)-;VJD;i5 zw*irGV*zz*bo!vpV0K+~Z6-uuaX>C#algU&m*u(MrN8YvCIELX8uXLy0L_Z7L9r`blwiG6cGfMf)oko*8oW=Tgw zt~T>?sl|Mx&w(=e2?q^J{T%hL6<0pv-F;0UExx#M9eQtz`GFp~lw_-YXA*ri>Gg3#w60 zm`LjhEK^N#4V?=utO=%oE9CAdCBJ+exj7!QEy?x-HtEoC$YEV`8p11lN}r`2&D~FT z>DTNIQKy@*s;$*j;)y#B8CI?0{x+6Pv-eshM9nX19~F~{aNy!;TU-(InU$RP=pZ}R zDeOVT0Zl3GCi}_VnzuP%;vp3ey4#N`gl%5X=pmKTij#4(wztY`sAlv63WX5 zyuV`vimBVSTY7J#<7n>%xPp3{%R!eGrOJc3H+c zc9T6xvS%j7jO^PC8iSeXzCQQw{yq2ic%J7t?mzE8E{9_{%w^`B^L)SGuPvmc2-%q9 z+2|j4=6l*EyunmH!|Kt&O2_8q6UP>QfAM9j0Id=qYghuvQap(afFHr@%P|hOG1ynl zAxkxfM5b;MXqJ1*qW0EOM z8^pwd`PQ&gYsj`nR?^^ZVdeIy_=e;zXtNA zCLG{0hUP-#U-}u;R5REFEy;Rc>#)b%CE52nf4=qMDHENK7sG2@=*K)wC~*Iw>tNGo&BQEd1*D6--!K^b6Tm zx0$@n0XJ4xdPl!`Z#4n5KzBLm)vYlpg&`3O+Tsk#iXQzU`X#Y;stjEY^B7_Q*7huO zY82b0bb{1%ihFugWZg2_tmK`A5YSm!Z#sHCcvX0fsf19?OTN3u74hCF(}?sMeiQUB zy*bu(gH!!!8#I_^=p4--G3GTreU zQ`eOX=$6@f@E>sYDRFS(9tb1fq7N;`Ey>e#xq*=BkK>`sObF}p#3BudYENJ%(P#aK zx%_{w6c8~%hjNkpEb^^KB~4thkjw$jFbla`hX37XGyWJFbJ9^t&!kNNoUm6|agtk& zc$Drbv2wz9IAt$P%)-(AmW7cR&%c-LZya0ZRx-<_19G_81FHM`rXj724&*flU?5Zyo(~$W(EfM|a3`8_2&5I4Aks z?@xZG#$c})<3wKE8|s^q2cbvKoWNILZvY1um{kURorej^Ved2#{z2(ZR*gH0rw7&7 zgmbqB&RJB6CLMUK25IJ#+Vz>XUCE{2V9v3w%@8F>Y;aRXx3hFrB&-TK+#?yO!7f0^ zY(x6htLAxP)1=N^DG$+zdy*aQ-uX4pAO(!rgoLjetD7)xn=8ro>t&vj>U@9JDst&J z*6P$9h2l-CloJK>Ajc$28-x*Bg0t>Va@;x0J>oab*QyV^Hg^qW7dOdY$694lp+b}D zXL%(iO`~?UGC$%M^Nt;5>u|z|s1{o)0L+4>apAxV+N@WMNxCrGPQrqaMK}8^-Gko6 zPcw8zH^DD%S??Q7Im)Fh)Y(cl8kCMd1(l6ds`nplWr!wz4gdV*aO>fr)}Yt*Def3Z zS&+)z@1zy>FnPADDNE--WK}H9+FMGxXyL53q|K=$1j;ufZf~OwtuTt6ok6oy*2-oC zfLgnk#bB5j4{FpdVoi`A?OEuyi;KHXfToMDke)xlZ^jKgBXt| zVh%9pSty1kjnnh8rr)H~0{LUwQP zMCrwP-ZTDk_Tnn^T@Hyd+pusO;E-f3NRju(wYk z#-V!*v379qu5v*9X@_fC=X>kluSe^Azc2j56Ar-PFaBgIFST#B845R5w$`>*HV`sQ z>XOuBf);O%S2VuqF!5FuR7;GqJM^?CJ)l!C*1^3a;Ur7tdTS^bMwDHuMw|@#968u= z&c+s8I+XPJ^~UOBo+6j}qR$5tjRi@fH?wEPa_P$}>5Jo9WNGOgm4v%VL7+68*M;y@ zgDIOs**XpnPkLce>@(X(RQEoqdr{Ow9G;8&XM+K{jtqB0FalC#+m3(LsPV3VWkOBs zSm#HOGzxadvXOZh|L@(>{M%t4g6fl0M_n>My2XC^aK%{d?s4@W$m9|31w=Zun|UO{dDKi6Atojx#T)#Pot@R!G=kEM-H)G;O3 zE#sGQZ-GyBIIth_STHoheJLj~&$n-lY3<3tZjXEnLN=*?5eW(^diyXp3C!zsOHurE zsDKYq2%sY3dDu>kNjM3NTpL$43w04CVycZgN%}L@?q-tyH-E3^dZWg)oZqO<6*%BUBu`esm+Lioj%%95($M`F_w2MoF#81tPRL2CRf z*W%^6g7$%XBj;+0PIV|Yt)Vr}5b6?+lp622#s$cw1h_`>{PS!wp90MoqUez((GMrf zLU4ZB)Li{#05%Nu4H-!P9+8ho%ibR%Fo|dsD>KYMfJ190P7nWn93@4)as21cJfUK> zeF`Ufj2!*zD7-ag(3$XeGs{tbq-s&3M)g0o_H5n+M}Jq3%1I5hIp46E{pF>Z#AUnB z_nO`l(q3_uJhBYN^i2vE!9-*eJu6Qu(*~k^i`(amqBaQ6zB$b4?*ujQ!Ly~loc0=S z+IHQ9GdF6v-Z*a%$Yo1*qfv~jK-gesTACe6XM&>i5rjug z-6IVR7O&cW-9CJLqHh%9j*cMBevi^#e~Fa|1c&?a$H7bjw_phA+s*ZEforJV>yOfH z0^AeNe|L&fOm<}d<*AJi%|>k05QQCgLbMV-6S&sRCVSVnRyN%tE*>Mdy=(44l^XUM zjy}-<=KSPjO_W~QF^TKg42@}&XmY$2~`kHqB-HeYcEh@AAd)Jn@Tmtdm zNsRdVA2MEy{qHCSh8H7|e=b{jww|hPPPVP9^Hvo4rIlEjemT=R5iWmXKaWDo(FSOw z+zH=-2w5%q-LPO@c3p_UsN0a%_DkX1aJ$lSw0*wPOTJmsmwoqoye(evDFoWY%x~i6 zBnd5P)3t1{DAo2e`~a43XsD-6mY<&e>Pc>$nReZet(ah4rI(7SHzUufeo*MuUz0o` zp!ND#lju7dbfWJDL#0O#Dwh#=ef<7O#i>)HPiR6036U!@?`A?buAF&BlajTK%{_BA z%UUVP_y%SCEaSk;@ptr@?kv6^_z%R?^`6F3l5rMYLF;LscuN1WR$hg?ev>_q+KDx_ z^ZOLR>v}ED#ApO(v4(TaBOQiIN#9F{{*KqX#(5EPfMrV^YnbL}PG`3pfZLr_lB84XIb+T=swZ-aGePNr60y6m%=vMjA#lh>s=EGT`5Bp0z^(DS;}S$vp5 zwNJlxHofhR5-M-g`ti31t|J$E#g}~VkpUjy&>(h*Tmgc}_27tjpJ+}tmlpxA#&_81 zU&(h`dj1g%h~Bxy#l5G}cDq);4H)!Kb{I#7+q?Qd5*C(}w-6S;@4_-;o@HrI%edH# zXlcIAK2`(cgfIontQsolEpauZxDmi6IGS4zFsEc9!c%Z+3>_`x1D*t_CEvpuFhbea=@L=+{P5g- z<+_KwyAz&A5+_M~F1EtAi@ud8tab3Z@w^IsJ`}MX(%%YLRWX;bJ(}ymCG1t??izkW ze|%bHMSz~h^kzu3;4wa*rzD{gtej=bhEcYeMvR+wnYre=>;^J$EjLUtRcKAzqIX9j zR;J6x#y9)tnQ7;j^g3(0c0?N*(Dn0;m%Fr#upx(EYq7Rkj4@x|&ZSR05;j$M<5c?f z7U?`jd|Ar^1sXQmxVwnWYRyH}ecNsVyz+OlTo_2E3hNSs36jzepeFzZaaJ9vlt)9h z&h*;&Jgxf6oNxO*GQK9v!c)#0TJ(rZ_Mj)Mpsc|{)=3bgGfRPm)9mQKTFL*vazp$(P?ojqa!M9y`6kEF}n_eR&Cy&<~oq0(!vks$@uXFPn{a7g7@h?XDT*k8~r8l+3|*Ya~P6 zCR*?zKYlA85ZGAXb&f{VYJ?Dw>!y$v_2-BRNJLux@J^xMwn4Dpm0;X7F0|S9VL8b& zONic@kEF%v8l15Y2Mj_z{vcI5L-k-`t_mLa%v9|tY6lZuZk}SK7p@$jpMkL+7GRXO zrwiN71`c_oS;7&dgIvMk-$N@JiUaSoY`W#tu1Kr+sD(az7Kn%CB##ny|MF!16fK`K7Gu#e9%a*NpTm~!PT_ct+aP){mYYM8r-Yc4A4COtK9jwBKP{3>19S?j0yJ^%Zr$UW?lZV%1LNG zg?BdtN$OOkR`GIZ&tzE3pFz%1@ zHTYORPH~sK%IYc*gomE=!qKOI$GY@werz3;LyoBCME?f=Cj&(dnJ%6k<(m;BaGk{8 zr#}Ze`G7YljId1zIo3LgRmq)lHVfutKB{=Dka{DH+#(ga ztMT*$4-e12tupbpbXU7`eaGnbaVN&|NM54RZ(uO6lyZ6b%4&Z9(?3i1K9yJ`$BwQH zSKChYBk@)}ICsIH0iTK0nvs5!J~xMla6+u4nN{8RVtoWNCcGQ+nkTnaY+q83)FWu6 zg^};Wr!`MUaw9t0t_#~(M4KuSOhF``(IE%N0E!eZ z5-x#mwwlR+9K>E2VdJQMLFSSUquMf-q@Rj9iDjFUeF8H^vrc__H^-l8zDeQ{{i6}R zZ2kDdbR$q)?D(xNXy?6Y3NeJ1Wjpzq%+2>uUStbF5OO3JGgicm-~_U3N|COew|h>q zm48$l&hHHO^d=*?is2@yher+D8H&4cAAfEivpbJ!u(6)0!LgJBx&{O%$XzP0wQC0t zCHRS#XMbR&xA$25I5$_#NGBt7(nM~##3OIj245UJb?7Bb+U$n(dCvWu9BBH*2vb}N zv4mao4Pf zGpVnC>w!Q5opie2>{#mf+PQMO0guYgJCC3WB$J9`&6?eO*1k}nnf(b zM3`65`w$`W^gr{V8q@S8(xQ$3wnOmjS{{-7wA1TD6JloAOEDZ%{`=uO<#*7fTCuE8 zlS6QyWFo%#&q~tzGhL5nKm+GwU@%%h32VK}v7e|xXhOZQFnVk;3#o&4$hgeduDCLw?Xm#Ic*7Au?fwW{Y@g7unJ7$$ z1>C%L=He%jThcMAGS76!zd~wk*&=^=?o`Lnj%QN^Uvh=VvHXDn(`aE6>MhXLm$GJ~ z;KHRkOV5=G$HuE@*Gi8WMERXZ)8|dz#C74Wsph)|m91rS_pi11*;cEkFQ=^HXOP^Z zQ*qgEC^E#yg2&kxIAvQ+aaK$d0>e3(ae#JjbQM*Tp$T9{ox7bZLk#&g5XkpaIGwb{ zA2oG0if~2nRMHnRk^*tZy-Jg-#D!un&?u7ZOXinu(8-mOh<+z0 zou(!7c>dZJxvV@F9jXu6y8!Ni3$pm9*Q2bBMk6}<(cM$$_S!yqx-J!-fbVz3<#p`ym<6f-DUwxJU2Rr}j5I4j4609P^g8Rnx7H+EGH1IkZy4Zlt>Zhlzc24?)Zz;} z;8Mg#MDdU@5v&!XC(7`|Lb_(BpafQKSPLycUV2{En$vn}Y)a-K8uh5&yiJPt_r2O7 zDN4WtXN=zh-3xYe96h zHGlSWwjQ7hwn2e3p)GSWn$L18A44*tBjZ&b>*CD4WIGAx$FN+;#J`zWZUv{VM_A%O zZ=VRR{^cRKuhcPYEg6Lo%@*{%PThpKY?G!@4ZzWg4--!|PUv{f500qSGxIZwo|;!)y1o+_?r~!QSGmtE&g;f~mb+ z3bAUQEt26FGb52)$V#SaRJzkWp+a^@-G~Ubt^0JJbfB`iv{Ow(lGCM*kLP4nl7g@J zSM@8#RDU~H`3R!HsSFVSsEkN@LFF_w3U^#zWd>y1nI%2yEB9(jE*RZ03}-33kNnel9}5_H1Q&W-W}C>6+O8+ zi`SX73My|}!{+WG*gA~t)dSR3ogN3)CEx{E57if(DG6L}mgm$J_W$MKmo(vieNfHG zTDpZ2Of33U5}d@ew&f0N-jLXM!%_iiB$kR~Y_keIffn9`_h?jkt#5s}!_;>@qA{!R z)3t<%EZ2cZ*Z6Mr$j9i)+LSO(X0Fp!|4-^i@{+XhL+R>L##^)I!R3VIzP_L*>rHH2DE&7LWx=bzYo6<5nBu?u<(a_4S+0!KJ{mlND}cTD!|)_allB`JSbJ*| z!UCv!WC6)D{%Mb_lzUFsjHj~jD)ib9E?mh_s&*GllC)~%EHi=#NeKZ_qpsRnYC zq$q}k0aUzfZ@FplPEuhOq_(`=tK9m;>3g5HEf4a-j*97QCi%`q=PReR46g-mO_AB@ z2l0wo(Yw1LxP-E?h<+6=zeO(Afpw*LnQ{~>Rm{S78lGZAMCe04E!gaCht~!g5sI<@ z@VPWpj44)5O`D%opFC`eC8TOct{XsCf&f_M*qFZm?%lANgad4&+7^aNv_3Q!;Vj=+ zH7si0kk!6t;XAya{OcWip>$OWOR3%w(K>c;;{tCZFh&n`M+EFjMh!c#@)@?BvhobI z1(?2(@2)`$Gk#b5cUpQ7sRLEm<<{z0bt*4){nX2=zE22iW^LJ3lrG{S%s`v&MT|)s zck^kN;rU%7V;3+e5SuEIs~>}s>GY^NhnP>{CAquu6|D#1 z*@x8WNy$iL{Y34zC|d*^x&-}mo0E)EaSMjfaWpU+v>uiv$AB^gqX0tz;zRLmrb*wGH}kynk~rdEb#hv?fiV3vPdK?W)HTI88@-rbugCCrQSSb3x0f?oYF2?`1DszIgqEufS$^6& zzTL_q|87}cZ5(ns&ppp2+d``4dYl|I#qBU@Fghhl3v_6+z0vSp;nm%A=U<+S8ph1F_AJG7PjcOSiTvX-J)e>#%gRhXyn# z)TOqAtnsr7t{dqv05a=%92Kp8s|CDjy(a;90L;j}(#-)RVP*85&I-@8s^*T>lbLU> zxo_~F_$7fPn;Y6(w(L6=EoJuDjSVm?L%lFK8l($_?nKStBXteaXmFv$EcMZ5?E=C( z*>^>rsryGCG$ff+1r2Z5e=ZYh5PoQSq%^=X2}^)&LfD7Ro_kC+?hVFA-8R4JKOSPe zkvcGL9fZisBt+}mP6x2XmwhRZ$7*mAY-5IGyq{(*26~gu%+6m-i!1D)_DfneZBUzu zagTk2wv$%|9VaJI{v@SaF`C|o+2XlIgXh?Hy!81P>RnG+icWw!d9(&4(fz&W>admd zNa?|i{O;Vj+b-Pxw~cLc<_a$rJ~zc$5FLU4>Iz2AmURW(@sl0EP#AC1O}}=iA*X&2 zzrwz8OveHB-qc%WD)YSY&7o=EbV_gf6~&Y!qpt^7^$h?lYM3q;jy=p!?;wy0W6UGE zK+3_=_Ys<>15qDRx2>984xGSvE0;XomyG+G_*g_LyTB{MVs;UonFNnB`*xJ|( z2B6{Uty%u98R{m%meX7{T$`;W?$uwOQ`$rT8xquq)2@UFJ0Q<%R70393*)*4>5Lw4 z_j5qYKiQOPI`^b8dLlm@jJflo8*W8|vc&`1DSW_&3Z`zyHiKw_2QYO#gw%eQL&Y>X z{$3wfZ{H!KgU{^RO3Z>!UpjpQ)Kc>!bmAhfy_AkNk);I4^Sx&VPO>7pfbkh6W?kQf znh9+il(|;()BT5U#!l?e1lfsf-w~jAi**6?YkNP4sLc0hM4HRznh!^AOQt7u5n~)O z2_ zl-h)!pdc$SeG&`)I5lN9?+Jb${IP2+$Ie&@kukveg*s(EyEn~gRpFF|@MCXhPXiyF zxn}x$#PPyhR@GAXH;?hODg+@tC9@Q%Sf(GRCF#B2s9NpO)o=LOh~#!S{Wkg-_FUzV z5?!+s9&O0WkciBgqQHkWw3=diYIOZGA1dV~I{h3#DBexCev?;o$S74ub)oc2aP@Td z=O9QZfb`SGY6pZo4K+t{M*qN8@00nwG%UNvzSP4okKzLI^Sr(m9oi25c>j~86T%q# zUDwb_YdF0ZHR`ZBS=b*;`x2Jh=jRvfH|f-}>p!&X@1BIY1Q^{>A+nR^I`07GtDF<& zIoWDZ%U=H`fqBLZ+*mQ}Fm$5Ni7$Ug`U%L0RU9L@aMPvn#iT71!=AlX}}@rO}ae-mQ=zH9bx6%zw~y5`RUpY-qbBaoht=x1j99 zln-?~DGYR`XCO_fC2ZX^@)`pfx%44V8dg7kU%iHl%2H6@c3XLev z9V3cj50`ti$`1QNk1Xoy6y`YDQThV{ih6>SKO`u9!Q|eulfHV;bdG1Ai#mEjPP;Iq zJze6}o*DKmLn9@Bp%MN%}zPXx@Yopz|MK29~414lof6!jKYf7ZJdM#+kY)~2jZEr0Lp1za{XS!ZpE>9)+z z+3jE;5773*Vk0_oOYk@hqY2xTX9UF2Mo*4`M{9~5mb7)48_r@Elrno0YnJmjT^{KZ zgE{4F*bIOGX>fni4a+`yBoy9N9$BjusSM7Lm7ItSyuKdNCLU%e(_q+C8dg%)SJ)B&jjTjV&$UM zpS`l5Qslg;4ZhK4<6slT$ej@k(|qzL&csHyD|0QQ$oZGjZ0B&sS;>1<4KK*oUHN!~ z4@X~ivBn;ne4WfZmF>9>*Yu|(XqA=6fm(hps$bA6n?qsNVAQk>rp%%Np)ZC4GI zF=p+p;$vRM+(4&5_5(TG;*Z=&|?O}%A{3>=U zsKttVbe6g**@bW|!hmVYDJ6D}(3~ai@ie2V#_@B1Zs2kq$UXCIMFz#TPHtoO6fUXv zoOd~AE^53>tZ`?Hir!^qPeVdOPSOLS{!sQ$u+NM>OftCr9pj~a!}Vn8=QES!UtNmb zyW`Nz*unGO$6m|?BNi!iGx)(CS|+&jd3F@r56>zm-#RT%4onoWZJ z*Cw;}bTX=p3}DRJ5x+(KGc;9Sh!{)S{D(dkD>_3FV1@D@YOM|`({ITL9IJNxe67BI zIQp&E(W+l5E-klht@jK=C?v_%qgf}DC~YASdb8{W`sjE}jVT~5RK5GLfE*(;d@y{; zHns`g{i*8Hg^heg-VKszh#t4gCR>Pm2xUVDCZIk43=T&#;D^y&s6Z^u@^lOq|a^IwSg++>vX=3${8Uj-I+M zJ)YI10cO*c9C_0BLz|DHrQUq}$q0AV-%e8`rVrLVp47?iy>Gh485_;Gz3s87F^+qd zGTz@t&S^&HPs{?D(QNTMn7*#vS#B*A5*Z*T*la@MNSgl8zx~Ab%NFIhMoAvx(uCdQ zr(ZDzNoFOJ1-Cxd$H~r$=UdBZHnXKU)mSj2r>jvTB6rbQA;xlKi(|>%RexJH&J|`3 z|Jhe)jt(TakuN!&TL^_*fUQ)^d{za`0m3~%O!y{5oMlmju&KaaWu=v1G;b4!w7sV} z*PYI8Wt818tFErCYD&GeV)-Z2unnox_Dlis=wMIHoAOtmaTP;|#=;)J{M5RMPAFqk zab{wy=$UK+DL&#sYR(CVsX(zEu%T~Sz~k-=31s1A|6l7voXioMUWlzn`&r1k&lS@a z^oe}N744(zwz;Ul`~Ve|sjoU_djqxjmkd4b(LeMED&T5{qT5;$K{R`9Gnu1veq+8K zMyVg4S8CTbRHg44+zqA$dC!sU`;We>7}87wr${sbhe;62oeJl{q;;Moq|jPqH4n(Y z>hdQ=F#Ynf#6}!;o|O4EO(-_mDKs>s)OB+abwa56RLqB@EAT;ECM5X=Yq41o~ zo?#ga3OPG083J}25lrjvi8TJV^6`}KZ=CH0eE3Zdp6>>@-dQ~DN>BLs^}L?}O9iAa zu0&{ErVT{?vn&gWmW~Uui@8UL-?kfFT~FHWgT0Btor61kZBp161hM1((HFUP>_X4$ zkQ2q|@iiETn31|}+xsnP4sF)GUAM6~MA}5Q0C{1~K6@tKDH}0dUS2wT=xol@hxPvm>;a_doIUYp@IxV|kPv?MS>?=f z%wL`^qVT#bwcuo7WZ71|#>{oGBi9$l{Qp@wD8d)nYBwACSq6nLgzdGYQBXL!rlwzC zB?+y#tn3$nT9xVOuc`Tg>LC< z!v}lVr=tD2-66t|KNmf-|0nkG9!eUSXDR?WH(d3E|LpKt1I~=YeT=5t1__@z;J-Z9 zzr;B{;~Nl~nGev&y}FIX^&cOO$E{^{z{h#j_Dp{GKHvS9K{nTBBzAA#|E25jd?EW( zlK0*Tz^fc!9{lA2Jf}o#H(%}9>a737Q8nx0vHv~p*ybKL0}|&o>1mwU^#3&%Im|2p z9+G1LKX4g{A#T0uupSnqLad~)?k%ivp%5j6dBV;|QUJH)CvtZH|9cqVTYCEr?8!I& z*F$}|!ZpGB6W~_B>fM3&Rj*yaZVvfa2HgH$qe)%q`w|K1Fc zLH}kaATW2{xpqDoSjVQY&yd=H1h)1}V6#CE8$y5Nc}M$5nT9JdysPLXU*}1RU-Xy2YtX(_qVnY?mMW{OhkV2eh8nn;^VK z|Mt`>M71Di9p7LNsGnK|omhtRu;k8dro@<$Z&r^@iy}X&p$BXRq&1Na5jFo&s0FY5M+Z*u-)4th5q-S70ZQlNoeYax#3@pg* z%Cb+Lm18bXL{&8y6zH@<+VB< z1PUrvw=Y&eheHTcxh^w!VHT7&9}cJya8*vw}&D+5m%;SY!9fnsmKa zK3+=;KLS0IZgLUF+Ag$e~ zL@HE;+v?E9EjJb4+#D>v@Jd1G>ocHoP|8mWed5f)njz>jnp z0ukCE-K8;%=Er!cRd!Qg>X7Oh%67kbG{Y1npEBDsOq|Y?lVs~Lkk+i11z05gRLDif zCC@0po{c_6L&~Y`l1*Ne5LYzy((W-E`1T+)Q&cMT#zO41yoV~l0Z zBX~rN8YG`&yu&u=%wQjInwt6O2WYheVQg4YZ5jE-Lrx~50Fj3uuvrp~3GfRJE`)cs34RNE;)i1ZHI=FNOxi$xyDE7*g(+tcbEtTR? zQ^keuIrCn?9Tigqa)8RPMdM6)9~FIqom= znjvl;;!4&C%UTNeXaL=x)P7c@7A}PtAJ={T+=-BYo0b!@Uk*s_MH_Tpm(hVKHNR7g z9{Zh_*xoB2YGmVPY|+lz0wSk7G1>^M3mWi`Oa|Wm=S3ft%@m7(-SBhhwhqd_y z(n=e{+P{9LNQs9QSyrh+r(BiO)Z+?sZFlz8`eymn7x5-#O9kmYz?OTkY`dumS?D}j z4osGL?O388rj`xO@IVr8%g6;cT=mLtjN64t=fLx~ z|LIlGGmf2^2TIB5w7)#UL=W_9-MZIYMa(!5tR7Z|HKTEm9lFK<=^S;td&aVU^Z}u% zxrIBJq+S$Op0Aa2WSW2)x+w!})JxomJzzG}rlEx=Suw+_S<$I*UhT|lHF~K1+yRe#;$V zZeqva>c{|;FQI?yxd~fr`Ew#`o96to9Fe6n#jU%rUFn`2Vyl@Eet_ZdSUpV7ML~Tc;$n}^ocHNzc~#0GHc0T zJin~{XGQAQISI2|(Q|_*-try&$jBy{arvN-)dMu5h?65AN8#pvTyh50FuLD;VAWBV zFbU>_k=&u-+gW<`&Kru2)j^Lbr#vhAkL@`+>f+x7>oN5?(KDQs+J38haqI(+wVn8( zgYk*e_`?bO3;rl%K(V6~YSnPqdv>Sr-cDNJ&W!snZ2u?A>Vo%N#hmPn+3jpt5GBGW zSlnE$VVu5A*sQ_HwlHuWI5N(P1!fe&hM)Li{y+pUk|x9RV~^r_Nb$syrEQdZ9zsXN zRR6q@`t6L_B-B?44<7!8OyA}!d**B_IGQF{XUU?HsI=hwc8(8b-rXde(MY9#8u(D2O{NulEx!LE@1YfPhvD} zB5dfj-5GR19Ai|AtD16f;wN9xMz}X_erSGh%+{Z#6Ryk?x3rYun3lTD*4!z>Hi$Vi zJy9+v#nkO=l%R+H^6Y>wK3DyR)yMqJNay|_$R4B^zJhRiOe zpE}vw40tcNiiXV2Lsk1FoK<_?9xNSv4qZuRBs;U3=zn=^UUiL;oba)1sq!fd(wX}$ zj#k-FU+4O`Aru@at6Er>#5V>G@aQD-w@$A9PNh_&b(+idga|Pb*yr$k6jp>8qjo&L z+45DJ=s8{X#^S5nFxWxe9L`ILPVqwsji|S!vE*w}Eti-VSb;Pk5=gU4R)GQjT1WrX**jK4fe+kbiXvKN_g(1{*qR6T3&6ZU#d6Ft6idO2YqCX=l*wwpOxx-I$g z$*M-!z^+zOcO-2A1;3EtVM#qzgP70acU>XF^tvVdp^xUeYF8cE z-bbk{d9=iC$bU9HejAI=Z&}8sHBw;8spZQ)%o$Eev-O?|1_>Rjf%CC0b?Q3i+?wZ3 zGBP~Cw%gd?4D+GYnW`qBp1W7ynWK(1YDp2dkD1u+|_1Dg>W| zFA^>|v5=OPl_Q!fSZct-Lm&0|T(n1wr-Fa<=;_EOR#=-I!^aY-n?niGZmA{h26ivsA4*dL%SVsNiIl8=mn12uxRk3Rs2|n4xansQyzDw$bQ&vX4^BC?U(H9jNkZL~At9SDQc; zD`US{%QH0DK=;*65%(Q9u>=>^x2MBthhx}Qxr>DkqkOkNwg#yeSk zt`ubrmO7z4rzgi_dxl0K?{%gtZMP#=!EIdLvE~bm+ho(EUK*pBzD&xU(sG+#)P*hP zm@R-#r)Vf81=Ku#eQW&`QcAmN?=eQNyN*=Y7K}8ZrA>w)+IVv z@?IsfXolDvreB*rchN<(`K4+1#+7+Z+yjV=CyuXKklr{?%X$fJ#~(wq%GI=1094!y zX-*BM|i5@z-K=79n@`H#k$chYWWglD=@vJh*W6hEFEC&nrp4i-5OlM1; zCw1j`ikj&^e3TmKa!4<8sOUv?u>77%$RLhBh}-{=k>9`Gp;zyk>IarRz(`{&?OwPQ zf1FH3qFS$BJ07a}Cf3Vy=P%Dy;Q4NQ_S~te84pofOe<`Aeo9v|6umWYxFECGp^Q+7 zD4ysqHD?w}-cORwkoG5^@=v^yv=|#SCm@%H(c|)wsYHFL8&i>Q^#fmUJit6A4ld*e8#sy~t~v|Sp&bJeby>W0+3FIHlfDj(U&s9~{+#-9 z&aaQPZeBlpI&orVxUbUDXtO?I0U9A!p-uS=6v4tv0PK|a{4PF-S|THPvwp-Ey(%_T z{vmXVZ*9&>S30c0Oj_`wk_U9{L=^b);|!xNy_WmgSsNCED=Wz<6tWG=-kf9(b87*4 zP@FUwdRncW$)+`KY&A}ep&HwdWnbjU6<{Igb)6?uQ)qm?@77maRqk?yn`+}nm4iym z?R~>jf9HKiIf)EBGC%g!_1hh_@fG(y2cTMsW|ckFep@3AoJldCpUcJj@}KZ6M%9|j zYyNJGTlHEK_%-OXszXh+%XtAvi=O@|x24IkMVn{|30P^GBIJa=D4Hf1X{h+hp3#nL zZ>a}9?LnOcf2Q!nje-ot(WIrzQV+rkLBaC%KL;VZdNtytknhe%07luKGY0R#NQ>aj zj0ZZaGadJqnFPXf{}h_~TaESkBs1v~fB5?{Fyb1Ioa)Y%)$3e5?@{O#9E4i~<3R3c zy~4h=iV|1TjrBtA`}nModF@??{yp+FB(T7ZShzgaI?X1G29uNWuwotPvcTAkbWvrz zIBZjIr98=_sip#n;7eSl6*I_1EA)gwTj#k`&)-98O%8zD>j1jP*!dg>9UlTt?V60E`mM^I~tF?T{#BJ2${ z;3AplwB*S1Ho6^7!I6Cc0knJPEhppqm)9$sbs@|gF!KT$XruPhF5PB6pTs{04+1e> zrY0m34Eqx>c-C$dH(ii@m<`cMlqmUx=`*Syosm35v7$>5T?~`G#^v11 zT8yuhrfiW--d@b_UkI1n_^tNac-H3+j-@X78O0ADsUhP}cvd8LB-f2 z6IM{&{LW3HK&7s>-YHGAtmv1E*Q&54HS4HG=K#eWakBfxY&Da^*A#c0Hk+;%*M@ z$ht(|=;I_1du8QET}BSpZ*tMqJ0Z@$62N-Za+77Jb1^;!2FvW^*}cg$r?sKVi%Yq) zyYO*5Dy0EmX!Hr#sq78+FQl*K7CN#ztmA`~X>(I^*Qn+X%hFcr%n<<>zk}{T(J0-O z`g-H@k8OhMdRbmn$D)6S+z=u{Yn*0 zdXc0l+pn-^Ya3-jz#hk`1MVEqw!WVE${nEtD**!Vsa(7^h}3^?9=qC#gSb!3u726P z)O2A6_3ST?C~o>qmImPdoRNJ5%J4BE&;h(fBT8ty2sIvs`XCCttPNk z6FLf5Pxb8@(cOGnXMC6s)v#w6F5f7Pn^-E(Fm@PSo%mF=S0!$T)*wi7;qqk^h7AAZ zkwRn5N-*VfJ$FWGB7K804N0E^yS0Y>`a~A5Bp>ZWIzRaKWFG-YnRX3C#{;owlqk7c z!(?hvt1|mKOLL}xPIGd|kH^!KXqz{(t_<-?y5G%kNYY%r++2Ln*8Q1r+9lOj$4tNH zCRzS=Dq~T$R*~zV=z^4)fjW58uI)IgR<93m#vbTcRhfy1!m8tBiL!Ay7#9E z14p=DWUsJHize6_^vQ&HY73z`jT-P`xXs@J)L-@4O(M<*gMaq%+NS-N2bINlH1%vO zoX01cNbJ_|Mf?V6 zELS!emG6j=c76qGu1_6;eX)_zUg`Q>3~CnDw^Tfrv~%&Go9pQ(SZhuLTYZ}H^HnEB zMqlqxK8+&ip=&gjFP^6(nYtYy0;}$3Zd`qU%m@^D?D1RVMx#i=oZ8BhrxXF)bhfi< z9Vf?EGa7LH2|2ScrOxP12=u^fBv5S!pLl8QnS<|Fhf=--kyGuPC!Lo9l{b$Pge6oz zPde2QD_`4YR}Lf?3PWk8oz9mH6+k7|9s@~M%-Y$>AL^o))ZdzqP2Cclo#$`bXJhIU zWDtbAJI)3Xn&RWD6AVdkM(g;XM`K;kBE4L2+MO+K)`k;mRm0?Vr0*>^N+ooqw#xlD zIp3x`8){sq>-U;&QfzKe5#K#$zm|7vrcr10^hSHG2*3Y5U~p?F04?yWE9`v!ODFxY z@Z>cuuIQLNRLBU_36K@?Bx?`YnkuIsG#=*uIQ6To&d@igQY-r>7&c~jiWOtd2#D9p z1pHXx30m+|OW;O$gyJv?jF>SyMA8e?RPhyw)56ZVsk-Uw`~oMi&jXvD>I7SsDp~4$5AWS)R@`;U3B0A@0ZTeb3nM+53z$_WI5k=bvUcO!CY-_nh;(ud;fDY*k2*PW(6y21aK* z?Ol7jmeTV(2gKP=e+|hZ=5o+hyLn4S5}Zn_b8uyD{8Za)ATe6A6RTCP)0NyTYaA}GjWdsKJo^!4NH8ZXG2rQgB0Oi0|fjwI+<&DtiBM_B;8$lFneOs^3!#u??iCKZ< zsr+=G2`hCM%RJ@!20XS=32PRVo}Ju4*O(u-Wede<^&EC;^?$dZBjrinx;WaZHr{kS z*+wh&)FtHydqd=rCbnIgd-lp7;n6r(SvJ!ef32?^T*Q}S`lNCy?icZ{49!&m`9r1O z8jbQpLlme{w^3dm(r1X~+EcK>b6dsiLJ=%kPD%@{ni@aQ|eZO zp+*TKmKkTm(iKL*yu;L16`ck+#-V38Q)L?bRb>j4z!&AvrbL&CW$1fDS*<`7yRWqY zjE0Hg5?XV4+m7R_W4hM8U%$aK*CpPV-}>uxUA@_d5L`T8m>0yNHoxV0PFi_SYmc#!@&tG%9yQ4^YgAN$juo3x+^4ns3&yndT_!*qd zpMY4EbRmObjFSOKu{?uG#el+$^}kJ8ijj5AsPI>1F9x9#*5Uw>H#`@?JMv^E*3r6~ zDQ0u|`)0P@)?ygAUNl6>E6YL&iS0YmG+?CQliA+l25AZ!p?Cw~CDK+mcSbs1hKOz1 z=>5*^T!MGQuQXN2d7tqN*v7NlXw&zH&|yL^W_R=RIi<6lZtd;6i&j&_UQ7o{OQ-Mg z@ic@%&(d?y*T#mPF*3_0+dX!g@XTF@1LAsHzP$_ZttW;kCuo3MVxrrJ{uOOEvzE;4 zEgCZ8TnaP%d(J}V(b%ZW*)JmXa%snspr>p4=K^!361`Hm++Zd?U6a^v^)7Q})(sd@ zA55PPB`hzFf_tS@)@YjooM{683*|UFp=vtTCP7x~nFU(Epc#*PCUjzcBu8mzW#u8s zXR?>b5Vy(Ht$lGTaIxf({0$+A=iVh~Vh zGbbbx0ncT2=yWRm`8wnP%Fc|_fneJ;^Ut#jXJ)<>=0URMmR6l%l|G$2uS#~aLxiDP zKldn$IC;bm%Om67+KT@P_5vsn{9ceW?~+D@_bxuL=lJ}@p^*Ux3fqV{oh@*OKNwQ& z6(Jn@*1+*Xftg%X*^Enwl+w1VvgoVAF2$`FtNEex-SY#e!r3ur_jwaH`E@wWJ!jRK zmpzh7w*>b+RbeEK0fElKE8xjYU|+%`U2J4p8Cc;_pI%hGOT_@$#=i{p#P%K#>I4Tj zS2-`FAKMZx6FOyg{q2bKcLm`jve1;wNLvyE*Z~Dv9YG+n)w{1&@FKH3Kyk#WZ`LV6 zh)1owTo{ph@x*QPOS?_PSIgqX)`Db^TK~F*T*$b3YU$1RO`O_@n=TKJNnjRaIjw;o zzSAa$;Ma(REz&$phk;wj7TpF~)q&s9IS4a$1W_n@ zW1m*p@NKh#2^uu0NEjikR;tkdS^Zg=yqs#z6c@#@V~9tiO(u_G570ToUq;#>P?lHq znBcd~#e8GbCP}DN-;AGU85*kcfq}c=U`hNv*u3Cg_GD4&@>u0+AFPI87W!m)oTy!C ze^q{|ESrZ9-ck#s!v{$H8{zDu42NhI!K`{vdy)R$8RF~k^p;4-WlPG!GD9DRV#Tx| zGVi#xz}-e4?2*TyQJX6aY?PMZQ8!LCwc3*quANkd--v8}yYT}lE%Ri!%j$ilqM?e^ zv%B32<@f;MJHg+QXk+sUgWxq}kLADGX|$FBMh$ zbNm>a3x+y}SSh4_o)MRKn?v(t_cYOk&JJi9DlyVu7}x}U{esF363SBVqkVR_Yp-u+xNaf%@{V;kEbFY0Vclb z=$|C!&@I#a^QVtO4V<$q=C+@xjc8AxFZ5#0LcsuOGHy6iBhg5a)77fsT?#tp+B4a6 zisS9xUjUO|og^l@f2bewyK6%+pA9LHE?gZrdg9ut-5tNMK{ZMS5|k|I(s9Dz6Wa}NfRJOC=dyxU?AVd*VZqK+P8frJ^ao#i0GKME9IQ0# zGB-!pTL)D=Kcp>;dxU%1`oGH%3xJ;NmQS3yU1z=eRB@n&dcVuYNkO96&ugh{UBt0+ zv^u9=g+hsSa^}_f5y6({317Z$2#tBSW5fnG;8JvkVq`h0=h_fCH2>>(w49#WQjqu# zvMBM~w+9pB->eGU)XL}@V`poF?V@EXF{jXa?DSS_ywT}iv}OrrFcb1Ilo|BV_cEv0 zo^6`S5Fks5RgT3N4sjK81)ty4dMu@DZZtr4d9P4vZ?$%XlE$S$d3gg?rF2WBK;zW> z&%E703qqEa7PU3>N;M{&_Ycb3nu)dmpduD4G0{kh=RdqeIdhk@ETd^ZWMB(^<}f_5 zL%&`@gkv^g;e+=jkTG0y_>MS}?eUb@Cg=ePfxWVZu|yq?E0 zF{4}%>Y5N%1h68ALM2dNuh29t#K0BaOjKa3dD(JN? zEM8ntgUe)f-^bIT{D-#WgqSYGWfeH|;hC2ke4P1Zu<%$0+tSGuH@jKp|KfG_*XZ+AH^jqZ{_8+p#VRJe_M(642s zCu7t!@Hwe4rR$mK-GRV_<)FXPf|Qc20{?eL;Q>QP^QP<>9V()ts(~xmG)@c46HQrK zQxEFQ`fF@j>DX0CgQ3pz`CU8wYN3n&OQ`s7@ucweE)C%c*opb!6AL>pgk9Vq3UzAT zpKT?j&QJWVd--hI?ROSO9s+H=d*T1?-uItQe*c|63-!=BSNbQ%`0W^B|3Op=KvEnu zZb9;9`CscY$h$EZkxR^J1Yqe0EIif($9i(OeF+NGlBD*(Ye|=h0BXtNKWeEmYq!hY z>z5{T&E-#Al$3`D-^VW-5N2*l@hf24w};j4a7ry7q3Nvr>Xltb*2sp7shX2<@A(GL zUlrn?6)w7lV``T!oIu~NPmr;^Q$r&4S2vW%62m-Th*?Tme`goM|Bx!C=g9Jt$EO^l z7rZ->{QWHSPC{W>BcmHC)$EWg=|v>o2yHiOxs-md`Pm`Ei^0W_ zuNgBk$@P4S&lmes&Nd}mt)grMlLj0f1lZuEA+EWvyLg`gV8COOZq7=`V5q5l+?h@H zM>25H;_13|uY`)`ZNzegE$%uQONmz2(G)&<-Oh(2Gb4GYI>$DT!fmWr0xhWZyGW+D z@j>{xHYc=|f8p3dCEzA1#FUuOanfp|0o0f8YjP%%-pR)nj7QsZ;0n~dzVU`Sf^|)A zzjCK*5`ANWKAhyFek zhdlFKo$yS(72-4GB>8~^e3j2U!(JmvAqftlkuHorFx73@d=XXJyfq=8c(W?9rKZZ& z**UMNX*+GGWotO9jW^bohqy?6m3S`M$}(vspF04X?GJMKvED1U0+Ze3-QIPm_pQgd z+X7C;p?rYW?hU|aQxV0i{EuTJ31tSh(=hrWR7{uE5E=Z|b^h|TLMzPv;6HrZnoL!` zTh>WO58kLcd(`ObV!weLPzbu5uxa^*rQ??WuhalCYmx!iSo(N#2r<%m0|m;?($vbc=a zaB9?>N(u{wv#QWU&2}!@)(lM7SA?sN-H5Xa_4=G13qPN*ptJgEoCE@FN?CSXo5QG{ zX%j+xAXVH-sd;f;JKN5JSpB}XmJ^cOKE*vc3%9_}UP|5)3OM~hSzSJ(rAUp{sG4+G z_cK=!_z%QSjl7%PN*}G7t?H#%Tzyg)97qAO1+!@mwVNiQv-HXlrYw%A)U3t6AuG%_ zd!btHtW#;_6{a(f)Q6slK@rr-wHE8^otWP(Oh*ztI^UlWb}a_(=CqM(K=j3}yJ%$+ zt2mDA!icVp#h&n$GvR+}i!bU48jcQ?chr6St>;K5epdUnuB`c=h#MT-ID7zy+V}hlE1aw;T-nV^~5b0HQ8Wc#8fTO2aMXCfoBP=lPTZ+bi7T zK!HZ^(@L9S8tv-t;88vKo1n*g5Ppth8`Wn znpFtT@6?E7lfvELf_whJ4rAwJGs3 z;|i}dUpJ#7U(D`h*>5Xixjj+drV@Z z0o`i#icrT}n(t0deetMvQ3lepsOH^f&!$W5`1i1@nErSX1JpU4K-|R<8?F$x(Gnwr znP8*v267ss8e}Q8!a+R5txx-})8fC`9i#j7YY^andhBoRf;!l*uJ*mF)RZ}$)1i#c z>6xPz)r(A|FEiJGjIn_ctDamRLJDvTen#e8(u#FiBt+81RMmJU2U545x9q^9v)XkW zo#Sh8GUIVTD5CrW7)|FP*#&wd*p`%L%A^1;gqzs|Mki3ljXTuXKn-C|h=G$_qZ)Z0 zZjgDbq}Y{S=WcM);>1{5a(kV4>ajx6yAgsn8ouf!_bDN8_6s$z!1bV~r`~+q7US~p zp*t=v8_xOtZwXoQz(>mA+}yg+`z3ag9tGqoX+)nH_>w)9byQzrNTI$Ce#0=fdc>Ay zZ1}#PkQtygFLLO2CzBEofpS@Q*3_WmDUH5kXm!2UNYOOCnc%uAzU3K{sKQfM2@-l^$!bq3;CXLxMd+#hJtbV!PP$>+F^mDPEk9Mq405#3$VX{ zd1A+VTArpqH?W*s*@Geg0-&QCE58A{}fVgvpZ3 zJI>?jks26b^n(G+S>NEzVF%2y9GV&2ouQwl($xiPU@xe7%aEgsC(P!!iD77yY5gIOFlobKHZSTOx>j?@1q=TxB{Ea&Pm z?@dis8u-V<|I6*;A-`s4!3&J+G*&e2PP!B8510!KsU>|rJ z8MV0Gzgr0(*7!=8k^rsiaeyxJJuzaj?ltx?J)=j7JD39f)-p@F zq12;VyBgESiPJu_WVoYSU-j;Bh9XjDUhwr+)s4>jU;#Dk#RqqviC)~hpA^B9+)d}X z_G|O1K{SKFpnh(A4GS5vEBuffj1u7Is=peI#B6E8HbzHz0bQp8C zf5R-9KiJI(m3gwrd>W3Q4$HcLzhY(qM@LV8{jGEFJ^C$MCz>VJ<;iG}Yn@g#%q$n( zla)o_iT&K8Gq$u@F-zZ%*}Dii%+oHJcb;p7L}5>=t>jvU2D1(H^el_d~d%SeEYZKfYUJ+<;~b1k6XQHd(mx%#AuLCCvOy=N0_cIb{3r%^N9xh`j#%_FtJ}E>3DvDq%YMSJfsC&)t^&`pKZb z>s)2NnuY+j@hS#{l52TtS^`!4u%%}fy9SGUHoAccUWJD7BfI#5Kv%Z|Qgp@=;??MJd^t|SNE7HD zi4|Xj5Al%42*0ly#1l^qFx}KdoX&-@iolKNKrTkIbP&Z;=7y>=;BPPsfqIIb;ZNfz7=bj&FBS&PM`ccLz;i{4J^TnT; zuq~c5a5?EYmjCejuK!awI9e4(v2V^7|L)0FCbvL=k$Um zu_ztOpw+w&^NsGR#Ty_0hm+L|IYtT@BIMs^rb#Ny#JCX~7r8Opc5mcpe&mD$}|HFWR7Gp=OW_ zc_QV^oIa`yLg zf5RESA1>FNBJoa2H_?yt6?s?K$0%Ctxu_++h!fx^s|IqCy0f_>C#YknXK}yQ@)Q-K zBe7+1sE(`usWr~^Jfz@9;larj&|>g*&8|ymP0P>_4u;N7;r3f>IU8yj#4K*AvxxMT zX!IW=JDfp9w(Eq3PYY}N+_KwAuH;K06{A0Dwm*JZ(adhe-26^f;O?8xInLp-LV?U* zwf0EN5zYmO;E#T{o2$O*BojGO1hnbh?>BTxpS*1h_M_r_;w=SsF2wxdr*>uC0{zPK zz?P}i*{%sIBWl?z+{AEkD*DduOSCroDJ0sa1Oj^riouB2uyXL5&^$=hSmS1Q;=v!Z zN5#zk@05*gyCWBaL(<~_Qj+Xp_RMT8yoA%tP-_p@)*bd+UpY#giG}7!Q-|_0RTjBA zIuVOskhS$=DLq=kS+zko^6%NaeOr`elL2^i?}qKf*ZkZAZUXEZG>SgU@E$zZUres4Pb%}gTZB;b zOv?M#`O)lxK*a9{os|pzxbw1^l2@8NsD->7sE-;kIlyWd#UrlPkSx)m%vYN_S48B@>`ya+K7A3 zt6o#&%2c!h@F2ec*;N!V)O1tY4k1>N#EG3MWX;xxX%E$s$%z!hyzTtAyUQ+ zf;7sw&0qcRz;W3157kcVP*ul2;^kxXV?*AgbVu6N$J_y85l7w3O_0Y8+hW{Am@sq= zw@e|gk_G`Rr%R^AsTE~Ux1xB$_(gz$A6CA|KQXW&BenKNeWHZ}+X07Wbr@#zF5NAp zrq@jz(=KyZ{Yy-D3Kx873dd2PHp}d5(hG`w%$Fb5T7(>epmf*>jX}$@#t`{rD`bGG zZ9&9J;FjmZ_?H?q#k1EgIR02r)+!q@11{zm+4bxia@P1aC=nh+njC<{K%ThBqqlys zmPd2ZU`}=cYTAk2)1nb2tJAlVTNmrfJ~j5ZF71%2#v}MrHe8j-xM*4z{{77hk?Jb3 zkkj{JZ#Y-EA}H@kjg}M!_Sga+UDZj7ZZ>kbi_RRbs8~k7WvooLu7)3 z8PxRB(kuH;zuU8+fL8)(X4f^r9_F&+5;m?M2$;kby!l@+&^`YLf8V#p}7hO8kXYngLkl9OkQTY%q}ODSyvQR)_5aFla!6BkKSfFL1s#aZ`y^D`OT#{DoJV zLB0quwIBEMo3V#GuFAE$tDpY4XCyMBv@UD6+1*=fWW{!Q=Npb4q%{QKl`_TH1#$!x z@5?twc3>H+(9)lK?tp(0YeEiSU4|s^`9JJsDS#`O!VyjlxS4Xp|KKH}ZE3_)$H+vj#Qh{(BovBfLVN|et-5~Q( zV7F#Vj&9gVr{TO0dVU>cOLLVV*!X6=#R-~)s+Hl3iy@`*q;u{0Y(iV26isIE{RE zQXiqY1h~ho8bE?|lj^zPp4GJ?rHrc2Lpt8x8JqeB+t^3xOTWv^h<=|C=Zs8Sg)-De zUd*so{+wnXjP)p5aPBUXRi>sd>1-kVvZjN8mfdWEe<#ONaJyCE*x;Ff!X8+rAp?|pKqM*ZQ3pOC4R3J$SHCvQx zm1cz+`l<*?e{-Xx>zfr>8r;Bol}sdkTR0xWcS?dU9Ttuq75rPE@c*Z3B>csf=d84i z!3$?7&sqJeyap@a}uTEuZ#v!K5_dP@Z;Y0XU z_y4$KyvI|tIsGFHhv!p*cFmN1)oihwo z$)2g&H#Nh{XiHqFO^) z3sys8OTn)kabuh+hCQ*6yi@#wEC3aezYNimRjy5u8 zwqkTySh^O|l13s~VsuG#Z-m)b?8wGePU$~i>i^c}FrAF)rKt8%R8WvcDN-aEa1}GK z^g{0S@L(94a%eQ;-AoN7Z@2UE{`s!H$|t|{Mo$cP>@_97athq}hnrV8AZRJ4XTC?0 zHt4JRohsddLeWP0gFI8M(0GBVJm1Yf0DQGZhobx8L+t?L^=PTZOt$vjBGbxq-iH+R zkfa?d(P~p=>>s}CpTIjk|Hm8IuQbwZ-LI7KDWScz5S%v`lEmQFlH=*4d~AC5C4=r9 zuaf^<_&qD<|8Y|j{-BxB;UC`Lh^4zOT!?EFrF3|?HmT3*Tpuc&=$c)(oL#>*`?OoMasD4Zk|qwA zYYYRO;Gc(}TyFOTN?SGvDv^dC_9F!?|A@4v#PpbbfO%-u!5eD3eC?Qu_95p;F*oA7 z#!Vimxup}jOt1}wYro$5KTMwf(*O#T17bZX=4EIAT2;4gZ~kBwh$)U{SUe^Vbx zYU_hebAWd>8IT*^z-u(`*v}+n$+wA8Q>9&Zzf2xJ*6HH2Zx&wq^0?VEo)oK_-bOvd zbK*?Dn|B;j)k}{=@U*9_bar*V-G%<)Y&~G!HCj}w5G`}$%Kp+L+|oACelmDEQ6&4p z2J&yDSWQCr?EB#r0AId*e!|SelawJ^Q(bw&Txrf=*t(djjsjt3Gy?O=&Y6u41ZsqD-E|geQr?@$Oq3x6xY36rp>#VyO^rVo3xo1#o zn=!k!U}(HZkNtpwIID{x_I#=V)Dj$QB#=4FZ4nMjp1nF^J$Pi4R@m~mE;sYWP+TZO zHW1@H3jAuAP{v9$Uwb!W0~?-3k>#vl0Y5)S_T-2xSP&*I7W~w8*m(_VTe$LSc;r)) zi;$v(J3Qfi{yDvOLRbW?zKLE1Vm7czO*vOB@dC}Ox{+k#gLvqa+Ra(*)MgmwexVNF`H zZ;juUV}J?c@T1{=*bn&_sOM^VCTe0L=$@3M&RooE$~eAj+XRN`@T-I5;?)$8buhLA zk<8tIB0OfO@v?_Gsrc@)1px4eV}0<(AJdL%_e2)3O{mdAQL5SlQ;8>9L$u#5#Ar*0 z289GxC+CaI!(gU3~YqcNT0GP#A5D~&(KlfCcwC@Of1xTbK zB7o41t7HCi&&@S7fX;z4+`a-JM-)#F5xK85wupBx~uHFcCN0g>UJgpi5MqtlMrVbw%C#E2kZpGacgVqaag* zn9D3hAQ@zlQBGxmWasln?hGTA*Xv!*iq-9ad6wl5#ZJ7*l+pi`J$;?VFus&vRs6h< zauk)`4z7emx79P~i5R24^&W8)*!@GF91GF{ISPBK_1M>E?8R`EZ(ZtaA)4;J9j9~h z@{QqAdE4#sGR#OHb+U*qfHs+`$2&CNWqZz4Uv^P={g@-|9-57IjUGF!_2B?6>)j1D z&DC6?!eV;$O|lj36cNUIuv-J<*{^LXv%zgl5!!9GL-^G0xjDOpPU)i`G?bEm`?T5r z@g6KTM8w`_#_8<%Ub8jPARSH16naf;N*F;hpmfV>VG|LW)wz}&=`i!1u7i8l7kG1F zxOdyprPt`{{7!N7BLm$~_7j`q^Nu9h6MZWhMT0YS^+fjJ+PYX<*~cfZ_J7{Fb&g?I zH-4Xdz0=`33YVZmmp)!P{R6F}%aj4NLUh}pgwA$ngkbseP0PmIn%F-Bt3qb64<-0* zg3Fkpxo7Bw9mFK!mk0~;KSfy5W{fU~&=0|Y$?PYMaxU3=O(?m+qMWa09s#Obm*xG( zrGs9E+_#NBP=6j^$$$RcK_->0De=vX2%Fd6#h z1{}=XJ2op=yOuxh|J2llTSIsAkkqHnHhiPD49B!6yVcYe!=RxZK6NHP@@mK@hk(2@ zea_-!dOSsdKia<_24<0nh!;9zx)B~Dep>b2j<#&Y;;_weFY^NK{Sc+P%4ZCQVr|un z@=r6*<(AX{=Q-TrcMea7GobvNXi3w;kO3qcp=VIaK z8oW*^=z1eOhRtD2fL9Nj(b_J4rYK07;T+{0k^-tE?88Tsv58xmFOCV`&v+B?-Bm z3a%oYQ&YsvoU>H*uWL!DNIhbNuLN?bPcGzW0oghrVY;skW3T6?n|1r|gMRDg-y34C z;?Lmh5)M|@p%BrN^mP=}Jc!DR#pX8OFidh%>|3?0AsAr_}PN_^OHEyCd5W)+N>Cnf+ zKleQ7<>>=in`I)M6FU}Z6KxYv=LvmSy?64|oo3LOoFmffNC-HF&bkdb*mxO=6WRzx zoP>!P$+4C*-u3Jzh3O=D!%E!e-?}h6V_|dJMfs=uG+tZoBg>UN*$WR)Fwuyy-8KpV zCvWwy+9qsj#uDF=ut5%CBNrU0j)hzudcb$ki(rV9SuFn;NYoXLVe6FM*9NTOV|TL{ zE62tP$?kF#<5E{&;f`Q$eHkO^`|3D?Sh6{qWZ5SlKlc>N6EmAs8%gA!aaq(E1GVCv zr~lwMF{py`Pf#Yr`qDc?o-j$ZGj+uGYR5Zl{jB{MI?H{g<(Bdnj1v2SIcNb+V1pUZ zyo1Rmpq|^Mx3ul^)J}ha%qlgBV9Ybs)QdkP3^v1I0hh0kYP0*L!*8<imF=`_ORU(WdM@~}Ha@jSNxiD4?EKJPegA2v;{rZMkewA`gbenrYJJ<@;l;%*JiNsBDgJ$0(=0Qvpvtma-z{3$T~!4iLPXf-Dx_w1YZZjz4)G|AUBs zg$d>^f5%<|JYn`tf^5T4kk1C?F2W`hBd!$yN$V z+sg8f`aZfx$U?=B4#fVFi^w>$Q@*cL0e*o-T#f;Y-VVpw4TF884G~RJ+MD^4`j%<| zPVb*h-?qZGAoeCqDA`kf?lHBxYC_Jt>nuh(c&<=|+4BNNoO{LxkD_wXXG2Q?IP3PQ z%+(%87C%4lOUVWEUh5?H=A&J3ja0=BhTy3j7iK{9bT|0n3P*Y58ODew+)IRQBi9%M zlU+8V3w4;RNj!YI!88GIvw21J3Mer--Tw|$q1|!)hr~<-Vk|)4Nojv}P2ZY@7ODC+ z+>LT4g%Z=zq2Gm6#<;%gDQ*a?Ca%B`7%=}xtN*ki)`Ddgi8i9>_cFB)tsoTGN)drS z_el7rxVW1p$%|<~r|M~vjy-Dy{{A74)gEv!9gF)SX;8Xp!2)c{;y_~6Ks-?);9S%V zvKrv&>yQHWL42Reyco-a%AQ2^-vd zR0)`JsfLn*f~1B~w=*yH9lX9MZ>Cyz-6}w7W`cXwC|+TEo0Z}W;BxdoDM#3#W<%I! z;c#I6O61NXoLKorF#8O7P$7+L4)y94x3eD)d?fCyzkdH2Uh=v(>~>iD=1tD86pNpG zs)rLakQ#}@;QfIi8@rZGwy5V0?BiM3;L~pqNz zzQ%QN=Iz-nROgEq#ZT>mo18(B)g6H_L!*ACdfTGm6NY7|kJ_6I`NLvK5(y{XPuWy zeA(o%aGUW1RL5exc_(#wh_9l-UhBY48dPp#yWS0ToV;RWZ2^53ylxALAJJU=k+HTC zgONaGO^!U52bw>eYg)OPYLaaJ!pa4r(${PnYcxUl%lCz0RQm#l+1(0O*{({rQM)8{cYmn^QmFH=k%^!yG42Y zWf_bm^MVC@>A{k^AvKMeZ6_z3c zq?8IYfs-OlU2=s3tP}Pn;ChCe*S2fIR>_udO;Gt$59^3jAcai^70mcj0e+#51mYu0 zP1$0&Txz6}oi?wsM=UP}dCC9uW%u{#pE5k`W^5|>1NFP*eA!Vn{3D~AIe|bdK$bH$n3G*#cP+SqiWT%{P@=DI_uT=A9-~!79<)N{q)H44sn8~ zLP0`{*wbj?$%cTI2`yZUrm;{W*%K-AV|W&>2&sfhHPjUD4{&by7U2`?V!d4HT9#}e zlCaoh1mcVbaJ^B^2r-^B5N{xu+8*(9&->*`AkRu^z`&+x_t|Intb(dRar1$K4|Uw9 zoplYdtw{+xnurOli&G=edrpbP}#vNPu_8=s=bmwU(VuQ+V%oq3hZp!BeDF=2dc)gxdF` z$DnUV$tj@mwkk2Ny&&Iw$CR|fWs;j;YWB`}K|k};psRZv(hjHfv>qVyA@sMAR$G)3 zyzLs5xeba>Wa6jHdVAVH!e1M5QV{T|?t@?vpB=+eom@?~1&w#mMfKDtH_n&nWS6%5 zHGQP_Tg#W*kPH2oJ-j=+IIuS;e3LI$yZgqO=E`v^A|;kFiEh@bTQ*#y++4Lm=dkKH zM{A0ko|~gt&qcM_ocQ{~d59nN zV6dhA;E#EB`)S)3anW9v(uLGL;%J}6@th2V57AKN;JrXrSrbF0 z8+3;Z*uhEOul2gC7^U^zSk*ki*!}F9a4sslzxaZ^sJ>e*d?3U)wY=mD)MzEuO~vU> ziKKh}n6fV2MAFSDEzS?$zv3{?myK;5a0VEk>mW%05h0R60vpm;Q8yq>p+7MpF}56^ z7k1!58qY;}Sk!}@e&>YYw(X3?i3c7&jZCZuS0g?X#6+?dgrd{I5@;s|ZfV>|NH`ix zT89fX@gb2ft-Ix~+Z=~M4X4u{6ao5{XEbMq)=|)pf(h{fz&09zw35#8}AtcnJCEh*tl{lX_n0EL< zm%P7ZG3?o%uj&3(CnU`$F&8-EtpE|%z@LEfZXrR4_A8BQCtZday|b*GQbriWJ+wos zK?-hQ5$d%HY!(lo+JDBacKBB9NjV`R3h9%9eAE+Z;Re zi?`NZ%1_)VJK8#X<_PW3w><*qh^2?F_xbKnV8C(wTMfxuRJwH$O45)s0f$*E0rV{> zy)JkNd%<=-fRQ*VFcld?*5tzPa&U|y9Q&}*IiOAHMx1M)R@Dv7vZ{B8l@RrkW2O7D zFDu&?{FS75rz3UjSlTPxRSu0sVDMA8mx_o`1|lvkn4-wZEp4AZJOMrl+sgEg%%cvA zTZ=vQN)PjXYldj3UWHgCDWc*`jkW78JN{sb;-R4y0ZwWNPf~05!@3|Y_v@GB?}-}8 z?oW-A`BZ2SG{|f&v8moI*mBqiG|IDOJ2FM5AwrG0z>_@WMF39UM>&hlNmeC4_xQR+ z=MOW_B)eU6I1jG!FdHsRzWN{mYFTBW2{L4vMer|inn1^)&Tu-@&?D?^V=fI1!MWCr z;GNarWRs%kFY&4`T-srq#$_Rd{3I`cPUS5hXKJ<(erihPj=ciDFw`&yKe}bTv*rJs zs{^MewL$|a4mIO71H>8L80G;L(8I*-oSqQtXBrrDO|9-T4Bc05j(DX*hP^XKtgG0R zZ1{sNl}oS(W18cBAFfw^Yo9H@jC36%Lha zXJcI4E;qLhJ8Z@y_SQyVi86-?N3;uAboVotRr_5J6@uQb-!UGK^MI|^8a`c9#H-Ik zMjYSOI&QsAONaTTh3P*cS3CP){4if2RdWeOs<1kv@N%Bb?i&M>$tzkAk@2#co!|r` z8A~WizK_xYQ>`mpuOl`(=vKC@j=#UJ+V}R-4G(uCAP>%hlL9<-eY6>HKlF+BV7!)^ zYi63=2!|s%Xk}PYOXdyImUy4@i~jCT_jr>cml;^Wg}8SW@{g$R0_{yki)rcZq`24R zI1Bx^q|zCOV82D3^31S1>75oztNoi}%bPWk-+LP2($nLK%^D{sP_Yd0b{FcYZ}Y>4 zr|HL?cn0j$_@#YZ_fNhgDTl%kY)G+TOAromcbdg}98#jgMKzoJ*1m4WI~h6E{VV;; z2O_=zcmWwH%=4uOk%mFjH>m9KvaV8|$a*)2w&4cpYvT$&IcIm3l~C2h-kP9y*xbep=XTiXB^geH(N7{$Txaq%Rj?drE0w4~@KI`{ zk(|Z5&bri|CH6ZP^zQ@5KcsO7Q7@JbRTz;Zc6T#;rV^Hwvvv=%r*@_C-UYnMrVV$a zGc8wd_8|L5Jgmn;=(E%wLa55bC*C%v5umK+Z+`4YON+N8N^or2n1%VyjUEI*AAT;~ zI9Y$NUrfI?aIthVM$H;j(4l*F`oO4J_ai_zV})0ygb zNIO^?NAs7ftUXQa$3U6oCzKE7Qj>#B5sv)@r2i%!y?|1>`q8lxb}uS8pl|@ZbXd&UK!X#mD8Mu@q3QaI6AC=|6UQ zXO+?*+H-cy3hnv{zC$^#G9zJ29IRC%Ore@rzX%TzD4-p#@}Fu4iPT>=c$&&`3H46T z8xrLh#LxU3YO(Q!tGwnSmSm zN;;JHFPLgGaaEs)H<{yh9hi%Bti+w9@#h$S+T0!&mtKrYPl<<_$3@y_eD#pG`e$Xx z?V(Ch~ByK%C>nYys~BNt;5Mo>nF|&wpqy8ML^c^U0aK3{PKdrmFY2sz3zGYf2sfHP+oAim1w*ko)n znRf)LvkzFRNKQcQ!=7NhLGv}C)0|iIV%p>` z?c`B8l0TzqnKspPkpfYc>6>hhQSG*^F0vlEb8}^?bQCnWDGxV}s@M7() zlsfCU`eUW9^n^7wzUhPc4ejA4FY<#Hs@VjPm>1s~T7rYL()mZe^A7ZAXy5wKIfwK; zpqtzKLvBkX!{+>hmlUx?$*2L_`edugYut#4vgRgw4{XIVr9Ut}tGnZNhrOUu0v?#L zG{g?b=&3T5J10>EO3{XJaFihJ5I8HA!4Z<;}Xn_~+E)|BXHVodpj-uuI z6qQkb+1eP18aqpe?ya0%gwITq)#nTkoIG#j?>{MXK&8-3CE($*U)JDUam7PK9^s+y z%&N~vrhMT{Qyzy*AODqj!VBCWK>%>CZWGMJL$IqgY_U+zIN2){j4KDFpaT3#TP&%IMc z-pmR|WXAg0bipH=e!SbU6XxD-<9CrRd`C*!lnX^u{aNy7=^ZR>^8oslBclg8PCev_Bvgi+?#Iy zq^{hxyG)*tL~+znJaaP{c4D+u_?2Y2Gex8K12F;8KBe~L9-=;t(AXADZQ7kX%lJfU zJ=nL*gYjLG@3i8G2i~EBP*Ef`)-xUSfaxV z9!!{(o4Nn)v0So6yl}kUYQsKJ(KhL!m$rD~pbu|X;^?tJ!Py$0(sC@D%!}Yw+O)!h z$sZD*mPG&BlOk5!Sqj^NADT#lE#`1<9`?y2s@vj?dwB;R|fmER(=FyVzD%Jg4=?U zg3b5B^&>Ncke)^q`4$pZ4_$98I{ZCI#p7N>23mnj`&e1dQ7SyGt!rYbdzyeyLd4B1 zGgt8Y9eZn_TB)Qy$VcbE#Kj{K7d?-RfoU+O=i^+W@{=|3gVZIyBc?qd10&DX5qvQf z0oYTQ3DMyGQq_ZZ8Y=ZK=!Z|iiwkm)Be};)FL@}L5AFRLpk%4{Tjxr5GX0Sj9lXkZ zLn%Lj(X~ITnd_M^6G8f2JOh6q2(mF$dTTjKJtY$I2>uSsW!irIqviX^~x<9rt&pm{v^pBT7v8y@t1C#pIcwV4`Eh) z<+*Uoq-#NeUu@0XCQfm!U>ED9`dj(UKYid!6%5l}T10@K^oOGUidqeY17@z`{guUi z13C?n>Ybr8Qs+G;%83Y3thvuAv; zZji_MG@EEyTn$!&17KuTSkh5%E1!=U!Jj&f1-pq(y+AwdIv6LDvLVb2S$6w=18L!_ zkD)IunsMjgF5B}a9np=JX1qR215)G#5@Eq+>`hN2qXL=x4Lr|`e{R>~TTT8=Eu zX{|0FuZ~isb(hhS=Ysp1qgum)noxV}+fVtbCL}1h_r$0^A64GD;wP8!WJbD9!{*75 zbhi)n3AA{Q5>P2j*Gg6H8wC(D`_S38Oj4HQlA>NPhj6W%)p$GZLf75jdhMUvbA^L}}c46-l)K(*%#Xh|q@lTxZ9r{)%D{ z5zIB`U>&*AaoK2=DV2>?Zv_P+P=ppiYwwtULhk4Y_bfGtPl6}rNG$hTfR>nNv{h z7qpK03pRJ>vsb9ST;tXwT^J%30h^-|n&#&WX1LqNL1^>wJ^v4^LCv`V&%L^a|<-Cm736(&YA)C0Nfl_2LaKJGekew!*giYX{&Ypb4T(F4gd z0tei1)Ez474IfwhbwSgish%BA;&U-%t%ac04@3U)qr28sO+rghp-Z@r{)T?h5)5E4 z%@cuc@UZ7%=4SXQZm;f;T%aZS%X9ssD}KrBz>tM6y0|_A%4+L(;v1v-aQ2!|@rn!f zv0iQ<$&Ve>s`IrJt_|t4=Ponmc@@oEQ;Po&zn2$;|6jQ)&mdx)dK*qQ_Y~UZYKKq$ zL$$j+?cC#@z9`Y5N$*qagm0eRhn64SFZYb<@VPN7HdLj7LV0WEWl_4{z5VZ!h{amP z{?`3%_2l2Y5LO@nP{Qi#dBMR&ljs`Ayh{n0yU*~CaJ1RNA2v1X1=^%U@K|dBw0f7{ zMyzu@s3tREXcBlbLapG^y}yyz@^_M7{;%{|zd#XezYJ;!sxZm?XHI{V6&zb;gR?G9 zmIFfYZc;&6K`QON;01Yj)Mn)fTohb{Yu{t1AoQ~W6czzrIb0YFWt;pg*=Q}0E$G8m z1!WtPBPzvQS;D+Tq_*J8^JI`IGrL7lp}r!?+R<9?tO2O7qXWC-Tm|p3Ggoq7-3}@c zejy#hc(cSPI0+9!(|C`xra=Fh3;?n&0&Id7+m5Fecpea?AE>^tW{glyDILh7viKC|Nq+OaG~lV@PIBn7;fyB|BQfka_JO5GjkxI%9q#wsx`tiUx1uUgR$AUk(fZPP?OoKm8|zv- zM;AZ9?QC;)ANy1}y0IX~{YO$8aHxCMw~S2DNgqbe+g>1_X;`$LN}DYxDef)(*apg; zZ7~>b4Kdxy6jT-<9=0T2FR=DU9vr$OYnIuPte06uD2p0ST2lGs{=@!DF)ZrywhDrp zXUA}T9m9ieQ;Q1g+X%pLwM!TV)w0#!uS^9qNUi9Q_HJZ`CZ+M#{@eG?ok@Z1RYkiN z;)pg}X`W5bNYBlZHl9gpKj(e-Y(4Bbg?_9hdt>e3U~hN|e4C~6omiI^=?3=(+tj8J zy$OLh)1nTw3C*qP8_j--+0ZS}INThNX~mKq%}b!|jSwqQ6nvIYFS$^ciRpkey?7M9 zpXK<#<(=jAm1BMJg|>zPZC+e^Yl~Md487Yk{pLQ0zxOx?cm|ywDK&UM8k^YLOOWb{ zPkMm7;)4Sr9UEbs)*1!*xU)UVJs7B$eDRelRD|K1+71(*K2+mDVo`~*wU?Cb@JY_i zV3n(y`6$5_)nSw<=4OYnXf7ongY%djpe|S8k#A$^Sd!aR8kLHV9dMBgPhM_YuabAE zI&&pXMA1frIX82ib?Rgpc>MucZ`eyk%-4sUCK3!FJHI|ybtM|${ld3w#(?UN3mU1m z^EzKH_r6n?#Cg2Pun-?jf>cM_5t|d#p(S8Wy$vOnXW<3EWx+0NpYAaJJcYak-w@8 z%3csra`>{mglI+~_X4_jICyY2o;JAtLb)YzXTC?e1K!GVd!m;I+iOqe?Kf8DDG04J z8JWo1l0)L_+-j-J3uIB=p|(O?ZMj%DMl+|k!A-t03Bir(YsQcw1Mw=oj`+kiWSL;GS(a(6t20L8PR*k(5)uX-$_liJm!) zl5Y(e+p^2C?#m?pvfKTlt-qEH&(Dzi&+4u0g2j^qq+*x-4YLGYi;)l2>lpE2^&=)P zolOHW-wxndgaBR6=(mEjlFVKo`+GsScka(d}zxZ7*n7Kcne` zmnGuy`Z|`%FY4k-kRmJ3zjxe?BUGZ=oPesH9`UP|zW$k*b1$0% z$EYS#B2NYK@ya_Il;0=6#A!KLXzlJ!c*Hg2on`jStOm(Dp(SWDvhHPuPyIkJ*G?@> zEk>bf7rV49{5o?LRx^1|vP)btQvHdH?dKtFt){Hb$xj(m>RcvS)%jSN1I%glX#O79 zOPUvFf?K)^S1zbwG$Zv!#~$_*`ml}hb5Zb8Q1$?pg@&6kQK81zRFCrPNEIfVjB+oR z^Kg<0shz`=aP4Xm&Mll)^u6b5qukKg^wFb&pN_q2vrX{jqx)e_De5-9OX)5ZpPkWf z7}hAVr^=*L;{4~MH}EeS12#6;nfeV=A3>xrs)1Q|q!lEY_GS6srx(x(z$?v(I$GA{ z`J*Uc$L%W^lRYQI2fHM1ocTQe;`N)_93G1QTA;;4^^^uo`e<)K`w7HNB!Q(&$pGjX z&bG}?w@>@wD6vfn9md3J*6iSd=jU1r;a}q)Ue3ySf3YI&Qq-twB~B;tAXnP?Wqkh~ z)yTSlgQeHT8S*bLJGU)I<#9)KBKgcGn&T7K<&x{3|gl-kYc8 zm_>Tt#GG~TP46AhSV{I5>DdbPaSU3 zPQg{~2{zkH&dG7lPwjWKH9H(Xa(~WH7By2k!d1f<7xPRxf$vCe}kWLcL6QDTIDZDQ58CA+Y%k8&*zeSf!> zD*naQk{+*`xv{>1U-5H?uZtdPjMuE?Sh3wXiNhdLiGy+uts;q(bsFoSJhobUv9usHwpJ3p)#OpCkqR7PaW$q?Af#=IK?$gF}4WS7yqMs{gZ5m|rr zs_JiJ2VZ8TgU6?XPYc^7M&+FEls>>$d|x$U$MCZjQN59$*)Ds#XR^vaRDP2BT#%oM z7=rC`lLP4+r!W9B4q*s=WW2KwA!`tZfkA2v!gYfXy-ehiH8344P6PM1mOjtqor>8JT; z-w1seqa*KbZgs<4SC&KH6A_lESrZZpI_d)Q$vtSTVv{K%%sl9}+u?ajawvr+-*+~9 z9!NL_YkJXE6t~*nE#3_~x_6`UkrmF}+)Wc5cCOn4Dg^WTrJ1)Fs+pa>&&wP1(oh9> z*9f~?G@1MJliV_R@?hU2)?atAUDL$L^Oc@C)^i@4h7P8d2u_*9xi0U*~qDR+|Y zz|4#fSII_ijl3P*R9?Pq?DGt8o8A9U zN^~}EuCOFOTobBDM4Gk;lDtu~DOF4YyYVBZjGoX|Lfycj%S~JPd+I6PPY{uc8yy(x zdzoZbq4w47W4usU!<&f#E%y0K)llXo8)5XSjN&)&I^*mOvp#8Z6k%vBh|Kvqr&8M0 z2z`UZs=O~~I##vKusmMwBMQ?q=TSp(1fH8Z1C0;U!TI9abb|B*D8=H%- zp3)mj_5P&nw8Jh@uwPtVa^3b?#T~A9>Vu)T#Ujh4Yeb>D?mTn|HMY+G{@aF2cc44Z zoypl&xkU5|V-O9t-bvLHiEexw`_6KBw)~Z+os7fi4+I86bRxedN#lw6$|?C3=XADK zy|-S-B{VmkbVgRzc3mO@nj}pD(i{c}{hJd1OtSyv{jm4Sd>NJ*xn8 zwnOal&XtQY04x6r<;(buPrXspr%+K-b)Hm;h%WgTp7EzcXsk7}kDp678+n4dKE9&$ zV8V(^87GZ=qutAGxla^kLg+mpIX{fxqKIdbpLllLbxHMDmvf?xoDh_YWf4;oryVFw zhX-{}guYT@41KDjT_1WoH zb>dFW21J(z-HOS8+&2Z`Tz|Aj&5(ST?;9gZkRGwk=TqLthY1%Bx(vEd+%z*^s&$CS z`kT$1J@Q!h+R)9neK0JIz<{M=%zzQ+wFuwoZmLugu`;(fXsP+E&%=rTqU64=j-{OR z^VOl#hbwX%j=5g5C;CyKMWFa>^cIXlCr=tNOx`FeZw`}tNrXyxcC+i~jYI9C2%7J= zlcA?vH{gyGC2osXdtj#qb%j6EH^_b8*EfMrQBMgd^VQyI!P*l@zG4+muvB~{7Ghnr zzsbt(($>RTfDd|jLq?;1NEb<7+%t8ER)2aAK2@|&BRU9pdw=#s`w5J{2Cww}|k z4&E;Hc;S0yRyfM#`MMUl^Y?jJubIrR#Qs%TThs=xHV)*cY-6f&1R)S(wGM zh_!0C`_)T{a^x!dKFojpZ;JOZFHV_niEr3Q(&oP=sc{xAboy?CRhx>Gck9`RouaMy z?qn&T$8EIiesf974t?t3bL-5N57tk8>C#+KQw@}P0VT}A)(Ez>Ycce;nc6@c9i1n2 z2JRT1J<4@!@|68L6j)lsy-a*CCmR>rZx^vbprHCFbl`lQsm!(-?c-}t4=A2c?j~19_b$^ztD5D`e{9D{Fjw76 z2F?3zqY8ueT6rm=b-yfjU1+Aw)NMVSqp8qfAib_yM{znkv`MWksQE<0{G1`m?Lnz$ z^R%=_R_sIl_OTSzL%DX|3u>8~sd~AQRy51f0KEX+f%us??8W|yhF^5UM=R7cUbS>Q zHxKBT%6g)=R2S;HKL>?y%dz}LZ$OH$&3l7{q+I(kMb!{mDg|s`iOK&%pp3(JEWftdkQys~~hTT7TF03}l zcjebQOPMc61wJ74^xvHug%f^)?fZad&^uN~4IUh&L2`z`pXJRQSejTG@7;pUEH{?-edvUxg*!Q}C|dMwAqgUU;G zv0%m3V?~1`PI&F^H1_fjKq-Gb(lj!+^ThUva0%q~`*YffPsm@MJO8%Aeik!DWqx!M z%s^t+gk%BC1$?GCpNHYZ6`nxQN0~%%iZAkh?oD<=nd*h|%7ajJutj{J@VjH|VgD4X z#M+Ugk1J9`qHFa;nsZAMUOelo2$(OWdWRl%j7x8N*=FZq5*HgmaLA2f^iASU@Qk`l z6*!fQ{8Aayz3!{QUt?-zqZQB*9thc!X?v9o4mJ?WgBNT~YG{7Gg;t4dH1iG7S~-z) z?DTQRSHyrqp|`%ud^|~!4|WHU@6C>9kzNo?Wg;z~SV-*?>7F?E9o8T4ZUj4+y-DuC zcLlExYeHzZXPkKMX-+~tn_0p6JhX*%&PBYq=N1PB4IlE@*cKA|1$j2Cnc8pMR#=pS zE%pzPo@2Rqiiy=6HHLnmUp+{n({Z{=N1L@rms1badb^m;86gaEKlX&wkA7P9kdE*2 zRck^VZ8RvI%XkSZvT<>CBEWEgXjNJ(#U?!IZX!vJWf4X^;kGl%CD4FwU+O0=qxjrs zV>)TCXT+5Zg`9ndXpfAb%oZ1^H6a{X9%Rb+7h>m;LFWa{xKjOGrr)q2Idgz_1^$S% zvy+il`H6L*xZ{U`VH7#oSRbF{m;COOUXg!}N)2%Rk6W|vnopN5%s!wpFG8NB?5_CG ziMf)Kxea38PTGr3w-hu-=ysGOR~Q+Ai2v`>aIM9u#N*@5YeFY?CLD-Ixs>eE>h6X| zAo&fJ;Gl=+p)Ocwj$^Ab2(x`wnS;saxMYD$Q#EyAd4$Z<)|(Spr~m2i!g#C)q_3$C zy8(OC<`;QTVGw<(UO^EFJx^v`Ud>8;izp8q?@bB_*P5NnLm?SyFKU%N@Ga&D1?3CL zk%h6C4d6Bqf-a={k{?~;M6oJtIJYKm?(I-5Nj8swh7*|6(s)}6JDIy9_J$GcTqZ~z zKTOt=(sOUqi5-2JCiq$wFzu$PncL=Lz2d}>zWUx-wtTUY1UJ%RK;Dx7LS@KbT7r+aw^*{T_r4%N02GxKoVDJ5%niB|Ap)?pu>q& zJT@Ze=n$uzS_2o?6zqp1x|0H%YiDEhV*+WQ%#}xodkHsL4LKXPd7l^}=cJb6!NbZ^ zLmq+N;H_E;J6p8^VZDF7$L9uCBHHb`=_ZwysP~-d<8hZdm#iS$(2tP1D|&JvWn~dV z&W3dhO^9Ue{k>Wl>s}Wlw}>3gFN`uhOy>AAFVzk0ZO@Wg%?hRsT3sl9nfB?qd%jAH zoX0QQWlmIWP*{4z)SscEd+3;YnZ%k0cfC5^tUr^BD;4G?3)fJ&5=+tiy(t+Y*Z4SH zXVYDeM_f2DSg*|@Dql&)-6Q_r?_JGvK*+}WS08+oA_Ri-szaG;Li`N^MIbnzS;9cy zcNm`-S;;S*{$5Q9n^nH}BH*w>=_P>_aBUAhnTL)XmnPFraj=5N*c~7UZ5aIooEiWu zAXp6Cg;qs)r`CihkLY3o>%wOM8PG___;q%WwN{a-99Pp3)Y8dc5>`&-mtIch2SU|Q^70ai9Mx314KX4pi0gwnS`L9Da1 z(qw;^54VPJxw5DOZk1@8&~?2$RQkxBLwggX;0NOMoAyjKkP4`gPHRGmxER~W^HymN zOKm1bbEwNfKu7;|!5~z33j|yO79}{Lpi;s58VD~L{sxc3JJexAa9fNe3#K8GDBmtl zG;_8eu=3LEqbxJj@MDy2m}jZn>Boa2XON|$;jcXVXzP#X9e-ww3}q#=1uVfMmhj0o z-g*$;ZqUg)pb(>wp1~p4xg7eYo2 zz05|vxir-e*X_eQSIHO@+*Yj@3%!TY<>=5`B{%^!E~Xu&ty|rfA2vU0=hWMg zL!0rzK|sf`W)Np@!c1`vgIm(8MPPOChD*su}aFbXILz$O*?|)s+~R` z6^62C$Ce7cyRbhF04Z{Ytt6d-f-=3sbnO+L=xrb%!w=k?0MMx&j}_ETp1%p-f}IIq z`3aJFdhl;^ygg=sVZCT%?)EA2Y8WSioTB}IkgU*;IZkE;=zo zWRexZLUH^dGaz=!Y+;xnkXm(H6H-VQC|Gcfux%KQCXfr#t2Lqe+}N*u<0Wk_pg~ND z|Ast4!hqwdntEEDe=~ zWlce8Kd{9FzI5wjDhD=+<2{T#RL0PCi2UmikUvk_?6<4zB=uVIpGS!P>jKigY6VzJ z(y4zQ!h&ZU&3>>Zl(xcz0hJf1vnCXM@wW8eC&Rm9(UcA|G~qvu^Pec=7~G0TBf|bl z&v$<%jYjqV5V-#TqXgC)rOFev3z|j>w@C$n>V@(yC#2 zn7+f9w#opA2GjL^J6Lkm+8J`tF{0eiaQ2#<7Xbtm;{04#EQwy21fQcA#;eIHATqMO|tqQ728jO}>VX#Ckge47te60;Ljr3zNi zV0Pu#mge__EvoaiWD0iYU9>bQiBUf$^y2NOmUTyGJevQa#{aVtKH-a`^Id4Ovmo-j zv2W_fN^va;n`*Q5zJbP0@O1pjPvY^#^M_+D0yrT~y5OmpJa*Xp5m=)W;qS4n)b;z> zZ0!i>#Bo-SV1qk^SDMb1u7xb_MNfmu6}n;qr!HWT{*B`esGWG|M+}(AN#W;YrqXf1 zK>3jGB(*i6)b;gn&d#^k`R;sR8UFd8`%kA-4nL9}y}HBLcTMP#EHFql-37HQ3;t#W zLja~8wH}CYDe7;Y2xHPw00y9`-gI-1G1PS!)NH=Wi9Y|St$WU{Qx|=A#(r%7qw$wj zfyS9PEoJZ-cfVd<2RENOuiWV=bH)|1`|o z*kPL}=!%2cF7uMu52I%dK2bT&?ViBIZ)y9uCImOt1v_h}$m!pY<`V)a%v7%<^WLXLn3O!}RfN*K2e54u?qrVi&u*7SI9-Om{Nlw+02jeU z@8?u@U1Ve^G)V2`j4Qk0`VGvX?1d2^AZReefRUIEY)OkhR>UVh>D_mWpL$&$ zdpBQBuqMRmSQCo(Jt%0?A1P$Sfu7Vk8K4LYA`S!~go{q~u%qzn1vW|+YeM89VCsxI zYx8t{34Dd~F>69tBCzxt%hj@SznH}Cfg%Xy{iU-jp&}AlZEiK zfH^s_un6aE`7hF=_Oj2QIlcPF0AW!7Xr2IuXRiTY;XxD-qTeayyzA0x4Irt*$ldh9 z-#6MJ3cF%w1CN>)TOl%}!Jc7$?%8{_jA^hWX@T@J+@gPKfkIex~3i(-SCH+g=n$X-bxInKsSnza_falDk|H*Tij2{XO!hdNu=cjAh z@P_`qClC%1z>AVdK*4`u@o0{FE^5{I4Fre*y7lM&UbMi!2vAlEYSaILZTRuOSMbh_ z|MvO|FRm-#&Hmp7<{v%XoH3q9;)>ZVZJ~VP?=0ebQE;TCKDz%DNU{A~C<`R%eS{jj zUF=o}xas^TgDgCh)fR00z3XLc^=R4e@{VO{|3T9~2=%9C;6u}FpUSlggXc^tg~PRe=b|k z`Nb+r2WeyeTeHg6`-lfrRBKA<#@*J<5FbN1bP(g0kC{ f$UObF4cj?ZR~n2WFPfd6YCQY(( -![Successful Rails Install](successful-rails-install.jpg) +![Successful Rails Install](img/successful-rails-install.jpg) * Back in the Terminal window where you ran rails server, type **Control-C** (don't type this into the console, but hold the Control and C keys at the same time) to kill(stop) the server. Windows will ask "Terminate batch job (Y/N)?". Type "Y". diff --git a/sites/installfest/get_a_sticker.step b/sites/installfest/get_a_sticker.step index cc18458ce..7dfbb21e0 100644 --- a/sites/installfest/get_a_sticker.step +++ b/sites/installfest/get_a_sticker.step @@ -121,7 +121,7 @@ In your web browser, go to 3. Enter 135 for the temperature. 4. Click on "Create Drink". -You should see: ![Drink was successfully created](get_a_sticker_you_should_see.png) +You should see: ![Drink was successfully created](img/get_a_sticker_you_should_see.png) In your terminal, Hold Control and hit C to stop the rails server. BROWSER_VERIFY diff --git a/sites/installfest/Komodo-Edit-5.png b/sites/installfest/img/Komodo-Edit-5.png similarity index 100% rename from sites/installfest/Komodo-Edit-5.png rename to sites/installfest/img/Komodo-Edit-5.png diff --git a/sites/installfest/MacOSXSnowLeopard.png b/sites/installfest/img/MacOSXSnowLeopard.png similarity index 100% rename from sites/installfest/MacOSXSnowLeopard.png rename to sites/installfest/img/MacOSXSnowLeopard.png diff --git a/sites/installfest/WinRailsInstaller.jpg b/sites/installfest/img/WinRailsInstaller.jpg similarity index 100% rename from sites/installfest/WinRailsInstaller.jpg rename to sites/installfest/img/WinRailsInstaller.jpg diff --git a/sites/installfest/appstore.jpg b/sites/installfest/img/appstore.jpg similarity index 100% rename from sites/installfest/appstore.jpg rename to sites/installfest/img/appstore.jpg diff --git a/sites/installfest/get_a_sticker_you_should_see.png b/sites/installfest/img/get_a_sticker_you_should_see.png similarity index 100% rename from sites/installfest/get_a_sticker_you_should_see.png rename to sites/installfest/img/get_a_sticker_you_should_see.png diff --git a/sites/installfest/install_sublime_text.png b/sites/installfest/img/install_sublime_text.png similarity index 100% rename from sites/installfest/install_sublime_text.png rename to sites/installfest/img/install_sublime_text.png diff --git a/sites/installfest/railsbridge_findingCommandPrompt.png b/sites/installfest/img/railsbridge_findingCommandPrompt.png similarity index 100% rename from sites/installfest/railsbridge_findingCommandPrompt.png rename to sites/installfest/img/railsbridge_findingCommandPrompt.png diff --git a/sites/installfest/railsbridge_ubuntu12-checkbox.png b/sites/installfest/img/railsbridge_ubuntu12-checkbox.png similarity index 100% rename from sites/installfest/railsbridge_ubuntu12-checkbox.png rename to sites/installfest/img/railsbridge_ubuntu12-checkbox.png diff --git a/sites/installfest/railsbridge_windowsScreenshot-commandprompt-pinnedtotaskbar.png b/sites/installfest/img/railsbridge_windowsScreenshot-commandprompt-pinnedtotaskbar.png similarity index 100% rename from sites/installfest/railsbridge_windowsScreenshot-commandprompt-pinnedtotaskbar.png rename to sites/installfest/img/railsbridge_windowsScreenshot-commandprompt-pinnedtotaskbar.png diff --git a/sites/installfest/railsbridge_windowsScreenshot-commandprompt_ror.jpg b/sites/installfest/img/railsbridge_windowsScreenshot-commandprompt_ror.jpg similarity index 100% rename from sites/installfest/railsbridge_windowsScreenshot-commandprompt_ror.jpg rename to sites/installfest/img/railsbridge_windowsScreenshot-commandprompt_ror.jpg diff --git a/sites/installfest/successful-rails-install.jpg b/sites/installfest/img/successful-rails-install.jpg similarity index 100% rename from sites/installfest/successful-rails-install.jpg rename to sites/installfest/img/successful-rails-install.jpg diff --git a/sites/installfest/xcode-prefs.jpg b/sites/installfest/img/xcode-prefs.jpg similarity index 100% rename from sites/installfest/xcode-prefs.jpg rename to sites/installfest/img/xcode-prefs.jpg diff --git a/sites/installfest/install_komodo_edit_for_mac.step b/sites/installfest/install_komodo_edit_for_mac.step index e22ab93b4..e5cfbcb9d 100644 --- a/sites/installfest/install_komodo_edit_for_mac.step +++ b/sites/installfest/install_komodo_edit_for_mac.step @@ -11,12 +11,12 @@ step "Download KomodoEdit" do end step 'Select "Open with DiskImageMounter" in the file save dialog' do - message "This should be the default." - - message "It will open an installer with a KomodoEdit icon and a picture of your Applications folder. Something like this:" - - message "![Komodo-Edit-5.png](Komodo-Edit-5.png)" + message <<-MARKDOWN +This should be the default. +It will open an installer with a KomodoEdit icon and a picture of your Applications folder. Something like this: + MARKDOWN + img src: 'img/Komodo-Edit-5.png', alt: 'Komodo Edit 5' end step "Drag KomodoEdit into your Applications folder." do diff --git a/sites/installfest/install_sublime_text_2_for_mac.step b/sites/installfest/install_sublime_text_2_for_mac.step index 2fab870a5..ea8148c2d 100644 --- a/sites/installfest/install_sublime_text_2_for_mac.step +++ b/sites/installfest/install_sublime_text_2_for_mac.step @@ -15,7 +15,7 @@ step 'Select "Open with DiskImageMounter" in the file save dialog' do message "It will open an installer with a Sublime Text 2 icon and a picture of your Applications folder. Something like this:" - message "![install_sublime_text.png](install_sublime_text.png)" + img src: 'img/install_sublime_text.png' end diff --git a/sites/installfest/install_xcode_from_app_store.step b/sites/installfest/install_xcode_from_app_store.step index c211da39d..f9e96d2a8 100644 --- a/sites/installfest/install_xcode_from_app_store.step +++ b/sites/installfest/install_xcode_from_app_store.step @@ -6,7 +6,7 @@ end step "Install XCode" do message "Search for 'XCode' and click the 'Install' button" - message "![XCode in the App Store](appstore.jpg)" + img src: 'img/appstore.jpg', alt: 'XCode in the App Store' end step "Launch XCode" @@ -14,6 +14,6 @@ step "Launch XCode" step "Install the Command Line Tools" do message "Open the Preferences menu and select the Downloads tab." message "Then click the 'Install' button next to 'Command Line Tools'." - message "![XCode Preferences](xcode-prefs.jpg)" + img src: 'img/xcode-prefs.jpg', alt: 'XCode Preferences' end diff --git a/sites/installfest/macintosh.step b/sites/installfest/macintosh.step index 86f54f19e..cde9edc3f 100644 --- a/sites/installfest/macintosh.step +++ b/sites/installfest/macintosh.step @@ -1,8 +1,3 @@ -div do -message <<-MARKDOWN - MARKDOWN -end - step "Learn your Mac OS X Version" do message <<-MARKDOWN @@ -20,7 +15,7 @@ step "Learn your Mac OS X Version" do Below is an example. -![OS X Snow Leopard](MacOSXSnowLeopard.png) +![OS X Snow Leopard](img/MacOSXSnowLeopard.png) MARKDOWN end @@ -47,5 +42,4 @@ step "Choose your instructions" do link "osx_panther" message "Follow the Panther instructions but be prepared for some things to be difficult." end -end - +end \ No newline at end of file diff --git a/sites/installfest/railsbridge_setupScreenshot-2TerminalWindows.jpg b/sites/installfest/railsbridge_setupScreenshot-2TerminalWindows.jpg deleted file mode 100644 index eee0e58156e1f4b640d99f0795a3d6570bde47c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 102765 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 Q7>+FXefZ=eD)as8 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 z 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%0Db<=>FW0niu*`enqVVKsXo5emmxm0l zQ|Hs>2;R_6tj|2aYxQQqe^C)GdfC8ibi)zIM`Y3*_z|LfFoL3az%;slkck?i#eLN? zH9-c6jP$~ey>UwUQ&NYw)978_E%OU*gdI(BKNsdt9xKTb`9OCT@|y7svMMOqh8i#= z{a%bypmoXZy?v*5rIsUqt+-D12L4iC1!cQXl=T|8CrWNc2{9#1iU)^uor-FPn|1OS zv*pSF`5;@A@C9&MAo4h&R5wHFDRtm3^tzf@-D6REc)FK@Eitknyb7gF5PO)VAy?zQ z7vGL77bLv*+r?I3?|$u!%JsivHX$YQXW$`V>aCS;^+}ovnS~iO_!ta+kY5F9arek4 zmX=p>kb8KX?-ie3u~F}Vwfc$lsY3%m6KKVUN(Qj!L`=@cIjZ`zI7m~lhe^<4*-XLi z3E;m_)yRs)?q@DG`!LJcLU*Kr`-?ssB#{1|cmSYro4aoi3<5-n2$dJy;e|H1K;bK6t1EPPgHL$Jr}|U*}7* zOc!rZqQ;=>bLTSV;1p;opRjSx=Q6Y#@nBpj?c|n_g`Y&)l?5Y;GA^(tY$Bgal$?Q3 zR2Kk{b2*F27KOQ||J;o-f%Wk(c};${afd$EGl;dYKUiDo(NNTo?2F}!=U_M|Dxa;K z57`m5MIVDvKQSnhB7SZmj|2vhpbK<(MVi+Ng&yNA`m_Lzh(4vj>=uS*WR5JX!kc{y zt31SRoWj0#Kbn0 z{rkRUQ}uVH|KMcxF=2X4{D6+sMT<*&FYi}981v!fj#n42U-EvL8pK?by!6wKpfC`u zh3lS;{P4%N_hK*kJpbKKo&Vm0FV_JOI6x=G!61cdWvke*5u2j7syoNl+UP=NhtIK1%eUw*`v~4zrA+W;Up6)B)BIF71Su+%>54BDtWK6aI z{P%3xG6F;O2)uoAH!a>&ay{8DVW*0-v`M#e}K4``ZqDxJOOgI5~>ia1D8@80cRLb8NFs^Md7|+y$z3cEhSN ze6J}-O32aV;(V|EeW6b^f6l)BS6>ES*iE7)7=5PXKujMv-HtKDS9F;5s5-S$82q?p zdf}b~dCL7#`ce|Rt~!asOc#=Sm*db+LvWmcx(1EfL?QGPWbSeRStZWo`s~=Nhebg% z1NE{K9y3bmBqNci|1MmfEe^xT10ybtoaJrd_Jq7bes$!nE zAFbRc=UF#TOJhm)y4&tknh#u0GpCixB(U8p6#At&XK^XJ7>o0LDNfDQ0M^Ix@Iq*9 zz@6HWIxl1_Cd@IqLj&7{=?Fw|pey=w!8D&%_bcoKlf#x=?K5*H1{L)+QcFX7f{vi)x}+jRUeY{_xBO*7Jdl zRgG1<1Hm7!iR8Hnv$W$EyNYBP;Y0_ib;8&LVS*JOs2g)7U%6Lb(h)l~Y$=e4d4p9P+q0zmu z9df;ZAt~n)@!F5Y0e71Je8o7NbO+WOzkGQ!>49hvD@zHBXVCcGPC1zHa{7%au1r